@uoguelph/web-components 1.2.0-rc.7 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -63
- package/dist/uofg-web-components/index-ClyJk2_i.js +977 -0
- package/dist/uofg-web-components/uofg-alert.esm.js +154 -0
- package/dist/uofg-web-components/uofg-footer.esm.js +429 -0
- package/dist/uofg-web-components/uofg-header.esm.js +2404 -0
- package/dist/uofg-web-components/uofg-modal.esm.js +329 -0
- package/dist/uofg-web-components/uofg-web-components.css +1 -1
- package/dist/uofg-web-components/uofg-web-components.esm.js +8 -1
- package/package.json +21 -33
- package/dist/cjs/app-globals-3a1e7e63.js +0 -5
- package/dist/cjs/index-eb919017.js +0 -1990
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/loader.cjs.js +0 -15
- package/dist/cjs/uofg-alert.cjs.entry.js +0 -21
- package/dist/cjs/uofg-back-to-top_5.cjs.entry.js +0 -1400
- package/dist/cjs/uofg-modal.cjs.entry.js +0 -168
- package/dist/cjs/uofg-web-components.cjs.js +0 -25
- package/dist/cjs/utils-93383c5b.js +0 -65
- package/dist/collection/collection-manifest.json +0 -18
- package/dist/collection/components/uofg-alert/uofg-alert.js +0 -15
- package/dist/collection/components/uofg-back-to-top/uofg-back-to-top.js +0 -64
- package/dist/collection/components/uofg-card/uofg-card.js +0 -40
- package/dist/collection/components/uofg-footer/improve-life.svg +0 -4
- package/dist/collection/components/uofg-footer/uofg-footer.js +0 -145
- package/dist/collection/components/uofg-header/decoration.svg +0 -1
- package/dist/collection/components/uofg-header/logo-full.svg +0 -1
- package/dist/collection/components/uofg-header/logo-reduced.svg +0 -1
- package/dist/collection/components/uofg-header/uofg-header.js +0 -280
- package/dist/collection/components/uofg-menu/uofg-menu.js +0 -438
- package/dist/collection/components/uofg-modal/uofg-modal.js +0 -408
- package/dist/collection/index.js +0 -1
- package/dist/collection/utils/font-awesome-icon.js +0 -7
- package/dist/collection/utils/utils.js +0 -29
- package/dist/components/font-awesome-icon.js +0 -10
- package/dist/components/index.d.ts +0 -50
- package/dist/components/index.js +0 -8
- package/dist/components/index2.js +0 -18
- package/dist/components/uofg-alert.d.ts +0 -11
- package/dist/components/uofg-alert.js +0 -37
- package/dist/components/uofg-back-to-top.d.ts +0 -11
- package/dist/components/uofg-back-to-top.js +0 -51
- package/dist/components/uofg-card.d.ts +0 -11
- package/dist/components/uofg-card.js +0 -41
- package/dist/components/uofg-footer.d.ts +0 -11
- package/dist/components/uofg-footer.js +0 -749
- package/dist/components/uofg-header.d.ts +0 -11
- package/dist/components/uofg-header.js +0 -418
- package/dist/components/uofg-menu.d.ts +0 -11
- package/dist/components/uofg-menu.js +0 -6
- package/dist/components/uofg-menu2.js +0 -268
- package/dist/components/uofg-modal.d.ts +0 -11
- package/dist/components/uofg-modal.js +0 -198
- package/dist/components/utils.js +0 -30
- package/dist/esm/app-globals-0f993ce5.js +0 -3
- package/dist/esm/index-06ec28fa.js +0 -1960
- package/dist/esm/index.js +0 -1
- package/dist/esm/loader.js +0 -11
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm/uofg-alert.entry.js +0 -17
- package/dist/esm/uofg-back-to-top_5.entry.js +0 -1392
- package/dist/esm/uofg-modal.entry.js +0 -164
- package/dist/esm/uofg-web-components.js +0 -20
- package/dist/esm/utils-acd1ee82.js +0 -56
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/types/components/uofg-alert/uofg-alert.d.ts +0 -5
- package/dist/types/components/uofg-back-to-top/uofg-back-to-top.d.ts +0 -11
- package/dist/types/components/uofg-card/uofg-card.d.ts +0 -9
- package/dist/types/components/uofg-footer/uofg-footer.d.ts +0 -8
- package/dist/types/components/uofg-header/uofg-header.d.ts +0 -37
- package/dist/types/components/uofg-menu/uofg-menu.d.ts +0 -68
- package/dist/types/components/uofg-modal/uofg-modal.d.ts +0 -77
- package/dist/types/components.d.ts +0 -303
- package/dist/types/index.d.ts +0 -1
- package/dist/types/stencil-public-runtime.d.ts +0 -1681
- package/dist/types/utils/font-awesome-icon.d.ts +0 -5
- package/dist/types/utils/utils.d.ts +0 -5
- package/dist/uofg-web-components/index.esm.js +0 -0
- package/dist/uofg-web-components/p-4a896033.js +0 -2
- package/dist/uofg-web-components/p-4e0da5c7.entry.js +0 -1
- package/dist/uofg-web-components/p-663d722e.entry.js +0 -1
- package/dist/uofg-web-components/p-84b2d8d2.js +0 -1
- package/dist/uofg-web-components/p-b0718d71.entry.js +0 -1
- package/dist/uofg-web-components/p-e1255160.js +0 -1
- package/loader/cdn.js +0 -3
- package/loader/index.cjs.js +0 -3
- package/loader/index.d.ts +0 -21
- package/loader/index.es2017.js +0 -3
- package/loader/index.js +0 -4
- package/loader/package.json +0 -11
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const index = require('./index-eb919017.js');
|
|
6
|
-
const utils = require('./utils-93383c5b.js');
|
|
7
|
-
|
|
8
|
-
const UofgModal = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
index.registerInstance(this, hostRef);
|
|
11
|
-
this.opened = index.createEvent(this, "opened", 2);
|
|
12
|
-
this.closed = index.createEvent(this, "closed", 2);
|
|
13
|
-
this.inertElements = [];
|
|
14
|
-
this.label = undefined;
|
|
15
|
-
this.alertDialog = false;
|
|
16
|
-
this.centered = false;
|
|
17
|
-
this.staticBackdrop = false;
|
|
18
|
-
this.autoOpen = false;
|
|
19
|
-
this.isOpen = false;
|
|
20
|
-
}
|
|
21
|
-
connectedCallback() {
|
|
22
|
-
utils.attachTailwind(this.el.shadowRoot);
|
|
23
|
-
// Bind event handlers so that 'this' is always the component instance.
|
|
24
|
-
this.handleClick = this.handleClick.bind(this);
|
|
25
|
-
this.handleKeyUp = this.handleKeyUp.bind(this);
|
|
26
|
-
this.handleFocusOut = this.handleFocusOut.bind(this);
|
|
27
|
-
if (this.autoOpen) {
|
|
28
|
-
this.isOpen = true;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
disconnectedCallback() {
|
|
32
|
-
// Just in case the modal is removed from the DOM before it is closed, make sure to remove the inert attribute from all elements that we marked as inert when the modal was opened.
|
|
33
|
-
for (const element of this.inertElements) {
|
|
34
|
-
element.removeAttribute('inert');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
handleClick(e) {
|
|
38
|
-
if (!this.staticBackdrop && e.target === e.currentTarget) {
|
|
39
|
-
this.isOpen = false;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
handleKeyUp(e) {
|
|
43
|
-
if (e.key === 'Escape') {
|
|
44
|
-
this.isOpen = false;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
handleFocusOut(e) {
|
|
48
|
-
var _a;
|
|
49
|
-
if (!this.isOpen)
|
|
50
|
-
return; // Don't do anything if the modal is closed.
|
|
51
|
-
const relatedTarget = e.relatedTarget;
|
|
52
|
-
// If the focus is moving outside the modal
|
|
53
|
-
if (!this.container.contains(relatedTarget) && !this.el.contains(relatedTarget)) {
|
|
54
|
-
e.preventDefault();
|
|
55
|
-
// If the focus is moving away from the dismiss button, focus the last focusable element in the modal.
|
|
56
|
-
if (e.target === this.dismissButton) {
|
|
57
|
-
const focusableElements = utils.getAllFocusableElements(this.el);
|
|
58
|
-
(_a = focusableElements[focusableElements.length - 1]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
// Otherwise, focus the dismiss button.
|
|
62
|
-
this.dismissButton.focus();
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
handleIsOpenChange(newValue) {
|
|
67
|
-
if (newValue) {
|
|
68
|
-
window.requestAnimationFrame(() => {
|
|
69
|
-
window.requestAnimationFrame(() => {
|
|
70
|
-
window.requestAnimationFrame(() => {
|
|
71
|
-
// Focus the container element when the modal is opened, so that the screen reader's will announce the modal when it opens.
|
|
72
|
-
this.container.focus();
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
// Mark outer elements as inert when the modal is open.
|
|
77
|
-
let current = this.el;
|
|
78
|
-
// We want to mark all elements outside the modal as inert, so we need to traverse up the DOM tree until we reach the body element.
|
|
79
|
-
while (current !== null && current !== document.body) {
|
|
80
|
-
const parent = current.parentElement;
|
|
81
|
-
// If parent is null, then we may be inside a shadow root. If so, we get the host element and continue traversing up the DOM tree.
|
|
82
|
-
if (parent === null) {
|
|
83
|
-
const root = current.getRootNode();
|
|
84
|
-
if (root instanceof ShadowRoot) {
|
|
85
|
-
current = root.host;
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (parent !== null) {
|
|
90
|
-
for (const child of parent.children) {
|
|
91
|
-
if (child !== current && !child.inert) {
|
|
92
|
-
// Mark the element as inert and store it in an array so that we can remove the inert attribute when the modal closes.
|
|
93
|
-
child.inert = true;
|
|
94
|
-
this.inertElements.push(child);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
current = parent;
|
|
99
|
-
this.opened.emit();
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
// Remove the inert attribute from all elements that we marked as inert when the modal was opened.
|
|
104
|
-
for (const element of this.inertElements) {
|
|
105
|
-
element.removeAttribute('inert');
|
|
106
|
-
}
|
|
107
|
-
// Clear the array of inert elements. This is important because we don't want to keep a reference to elements as they may be removed from the DOM and we could cause a memory leak.
|
|
108
|
-
this.inertElements = [];
|
|
109
|
-
this.closed.emit();
|
|
110
|
-
}
|
|
111
|
-
// Prevent scrolling of the body when the modal is open.
|
|
112
|
-
document.body.style.overflow = newValue ? 'hidden' : '';
|
|
113
|
-
}
|
|
114
|
-
render() {
|
|
115
|
-
return (index.h("div", { key: 'd4cbcdbf263ad8ea2aceb3a1718629cfc50056b0', class: {
|
|
116
|
-
'tw-visible tw-opacity-100': this.isOpen,
|
|
117
|
-
'tw-invisible tw-opacity-0': !this.isOpen,
|
|
118
|
-
'tw-fixed tw-left-0 tw-top-0 tw-z-[1000] tw-flex tw-h-screen tw-w-screen tw-bg-black tw-bg-opacity-50 tw-transition-[opacity,visibility]': true,
|
|
119
|
-
}, role: this.alertDialog ? 'alertdialog' : 'dialog', "aria-modal": this.isOpen ? 'true' : '', "aria-label": this.label, tabIndex: -1, onClick: this.handleClick, onKeyUp: this.handleKeyUp, onFocusout: this.handleFocusOut, ref: (el) => (this.container = el) }, index.h("div", { key: '56ec3bc88ac19f00c813eb1a3f8ef41139217174', part: "content", class: {
|
|
120
|
-
'tw-visible tw-opacity-100': this.isOpen,
|
|
121
|
-
'tw-translate-y-[calc(-50%_-_50px)]': !this.isOpen && this.centered,
|
|
122
|
-
'tw-translate-y-[-50px]': (!this.isOpen && !this.centered) || (this.isOpen && this.centered),
|
|
123
|
-
'tw-z-1 tw-absolute tw-left-1/2 tw-h-fit tw-max-h-full tw-w-fit tw-max-w-full -tw-translate-x-1/2 tw-overflow-auto tw-p-8 tw-transition-transform motion-reduce:tw-transition-none': true,
|
|
124
|
-
} }, index.h("button", { key: 'ca5eff3c18c70d9e0d3a05901ecec519e81e298e', class: "[&>svg]:h-[1em] tw-absolute tw-right-8 tw-top-8 tw-z-[2] tw-flex tw-h-12 tw-w-12 tw-items-center tw-justify-center tw-border-0 tw-bg-transparent tw-text-3xl tw-p-2 tw-text-[var(--uofg-modal-dismiss-color,white)] [&>svg]:tw-h-[1em] [&>svg]:tw-fill-current", part: "dismiss-button", "aria-label": "Close modal", ref: (el) => (this.dismissButton = el), onClick: () => (this.isOpen = false) }, index.h(utils.FontAwesomeIcon, { key: 'a8d1e9d10fdfd83d6059651dfba660c2446293d8', icon: utils.faTimes })), index.h("slot", { key: '3931cf9245a94e7aa1eac9d769d823a6e184da0b' }))));
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Get the current state of the modal.
|
|
128
|
-
* @returns A promise which will resolve to true when the modal is open, or false when the modal is closed.
|
|
129
|
-
*/
|
|
130
|
-
async getState() {
|
|
131
|
-
return this.isOpen;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Set the state of the modal.
|
|
135
|
-
* @param value The new state, set it to true to open the modal, or false to close the modal.
|
|
136
|
-
*/
|
|
137
|
-
async setState(value) {
|
|
138
|
-
this.isOpen = value;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Toggle the state of the modal.
|
|
142
|
-
* @returns A promise which will resolve to true (if the modal opened) or false (if the modal closed).
|
|
143
|
-
*/
|
|
144
|
-
async toggle() {
|
|
145
|
-
this.isOpen = !this.isOpen;
|
|
146
|
-
return this.isOpen;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Closes the modal.
|
|
150
|
-
* @returns empty Promise.
|
|
151
|
-
*/
|
|
152
|
-
async close() {
|
|
153
|
-
this.isOpen = false;
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Opens the modal.
|
|
157
|
-
* @returns empty Promise.
|
|
158
|
-
*/
|
|
159
|
-
async open() {
|
|
160
|
-
this.isOpen = true;
|
|
161
|
-
}
|
|
162
|
-
get el() { return index.getElement(this); }
|
|
163
|
-
static get watchers() { return {
|
|
164
|
-
"isOpen": ["handleIsOpenChange"]
|
|
165
|
-
}; }
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
exports.uofg_modal = UofgModal;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
const index = require('./index-eb919017.js');
|
|
6
|
-
const appGlobals = require('./app-globals-3a1e7e63.js');
|
|
7
|
-
|
|
8
|
-
/*
|
|
9
|
-
Stencil Client Patch Browser v4.12.4 | MIT Licensed | https://stenciljs.com
|
|
10
|
-
*/
|
|
11
|
-
const patchBrowser = () => {
|
|
12
|
-
const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('uofg-web-components.cjs.js', document.baseURI).href));
|
|
13
|
-
const opts = {};
|
|
14
|
-
if (importMeta !== '') {
|
|
15
|
-
opts.resourcesUrl = new URL('.', importMeta).href;
|
|
16
|
-
}
|
|
17
|
-
return index.promiseResolve(opts);
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
patchBrowser().then(async (options) => {
|
|
21
|
-
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["uofg-alert.cjs",[[1,"uofg-alert"]]],["uofg-modal.cjs",[[1,"uofg-modal",{"label":[1],"alertDialog":[4,"alert-dialog"],"centered":[4],"staticBackdrop":[4,"static-backdrop"],"autoOpen":[4,"auto-open"],"isOpen":[32],"getState":[64],"setState":[64],"toggle":[64],"close":[64],"open":[64]},null,{"isOpen":["handleIsOpenChange"]}]]],["uofg-back-to-top_5.cjs",[[1,"uofg-header",{"pageTitle":[1,"page-title"],"pageUrl":[1,"page-url"],"isFullSize":[32],"pageSpecificContent":[32],"isSubContainerOverflowing":[32]},[[9,"resize","updateFullSize"]]],[1,"uofg-back-to-top",{"threshold":[2],"isVisible":[32]},[[9,"scroll","onScroll"]]],[1,"uofg-card",{"href":[1]}],[1,"uofg-footer",{"extraLinks":[32]}],[0,"uofg-menu",{"autoCollapse":[4,"auto-collapse"],"isExpanded":[32],"getExpanded":[64],"setExpanded":[64],"toggle":[64],"collapse":[64],"expand":[64]},null,{"isExpanded":["handleIsExpandedChange"]}]]]], options);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
exports.setNonce = index.setNonce;
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const index = require('./index-eb919017.js');
|
|
4
|
-
|
|
5
|
-
const FontAwesomeIcon = props => {
|
|
6
|
-
const width = props.icon.icon[0];
|
|
7
|
-
const height = props.icon.icon[1];
|
|
8
|
-
const iconPathData = props.icon.icon[4];
|
|
9
|
-
return (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: `0 0 ${width} ${height}` }, Array.isArray(iconPathData) ? (iconPathData.map(path => index.h("path", { d: path }))) : (index.h("path", { d: iconPathData }))));
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
var faCircleExclamation = {
|
|
13
|
-
prefix: 'fas',
|
|
14
|
-
iconName: 'circle-exclamation',
|
|
15
|
-
icon: [512, 512, ["exclamation-circle"], "f06a", "M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]
|
|
16
|
-
};
|
|
17
|
-
var faChevronUp = {
|
|
18
|
-
prefix: 'fas',
|
|
19
|
-
iconName: 'chevron-up',
|
|
20
|
-
icon: [512, 512, [], "f077", "M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"]
|
|
21
|
-
};
|
|
22
|
-
var faXmark = {
|
|
23
|
-
prefix: 'fas',
|
|
24
|
-
iconName: 'xmark',
|
|
25
|
-
icon: [384, 512, [128473, 10005, 10006, 10060, 215, "close", "multiply", "remove", "times"], "f00d", "M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]
|
|
26
|
-
};
|
|
27
|
-
var faTimes = faXmark;
|
|
28
|
-
|
|
29
|
-
const twCss = "*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb;--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}::before,::after{--tw-content:''}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;}body{margin:0;line-height:inherit;}hr{height:0;color:inherit;border-top-width:1px;}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em;}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse;}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0;}button,select{text-transform:none}button,[type='button'],[type='reset'],[type='submit']{-webkit-appearance:button;background-color:transparent;background-image:none;}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type='search']{-webkit-appearance:textfield;outline-offset:-2px;}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit;}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af;}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af;}button,[role=\"button\"]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle;}img,video{max-width:100%;height:auto}[hidden]{display:none}*{box-sizing:border-box}uofg-menu{--uofg-menu-animation-type:slide;--uofg-menu-animation-duration:0.2s;--uofg-menu-animation-easing:ease-in-out}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scroll-snap-strictness:proximity;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;}.tw-visible{visibility:visible}.tw-invisible{visibility:hidden}.tw-fixed{position:fixed}.tw-absolute{position:absolute}.tw-relative{position:relative}.tw-bottom-0{bottom:0px}.tw-left-0{left:0px}.tw-left-1\\/2{left:50%}.tw-right-0{right:0px}.tw-right-8{right:2rem}.tw-top-0{top:0px}.tw-top-8{top:2rem}.tw-top-full{top:100%}.tw-z-50{z-index:50}.tw-z-\\[1000\\]{z-index:1000}.tw-z-\\[2\\]{z-index:2}.tw-m-4{margin:1rem}.tw-my-4{margin-top:1rem;margin-bottom:1rem}.tw-mr-auto{margin-right:auto}.tw-block{display:block}.tw-flex{display:flex}.tw-contents{display:contents}.tw-aspect-square{aspect-ratio:1 / 1}.tw-h-12{height:3rem}.tw-h-16{height:4rem}.tw-h-\\[10rem\\]{height:10rem}.tw-h-\\[3\\.5rem\\]{height:3.5rem}.tw-h-\\[5rem\\]{height:5rem}.tw-h-auto{height:auto}.tw-h-fit{height:-moz-fit-content;height:fit-content}.tw-h-full{height:100%}.tw-h-screen{height:100vh}.tw-max-h-\\[calc\\(100vh-5rem\\)\\]{max-height:calc(100vh - 5rem)}.tw-max-h-full{max-height:100%}.tw-w-12{width:3rem}.tw-w-\\[3\\.5rem\\]{width:3.5rem}.tw-w-\\[7\\.5rem\\]{width:7.5rem}.tw-w-fit{width:-moz-fit-content;width:fit-content}.tw-w-full{width:100%}.tw-w-screen{width:100vw}.tw-min-w-\\[20rem\\]{min-width:20rem}.tw-max-w-full{max-width:100%}.-tw-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-translate-y-\\[-50px\\]{--tw-translate-y:-50px;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-translate-y-\\[calc\\(-50\\%_-_50px\\)\\]{--tw-translate-y:calc(-50% - 50px);transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-cursor-pointer{cursor:pointer}.tw-flex-col{flex-direction:column}.tw-flex-wrap{flex-wrap:wrap}.tw-content-center{align-content:center}.tw-items-center{align-items:center}.tw-justify-end{justify-content:flex-end}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-gap-2{gap:0.5rem}.tw-gap-3{gap:0.75rem}.tw-gap-4{gap:1rem}.tw-gap-8{gap:2rem}.tw-overflow-auto{overflow:auto}.tw-overflow-hidden{overflow:hidden}.tw-overflow-y-auto{overflow-y:auto}.tw-whitespace-normal{white-space:normal}.tw-rounded{border-radius:0.25rem}.tw-rounded-\\[50\\%\\]{border-radius:50%}.tw-border{border-width:1px}.tw-border-0{border-width:0px}.tw-border-b{border-bottom-width:1px}.tw-border-b-2{border-bottom-width:2px}.tw-border-b-8{border-bottom-width:8px}.tw-border-l{border-left-width:1px}.tw-border-r-2{border-right-width:2px}.tw-border-solid{border-style:solid}.tw-border-dotted{border-style:dotted}.tw-border-transparent{border-color:transparent}.tw-border-uofg-blue-100{--tw-border-opacity:1;border-color:rgb(221 236 240 / var(--tw-border-opacity))}.tw-border-uofg-grey-300{--tw-border-opacity:1;border-color:rgb(209 209 209 / var(--tw-border-opacity))}.tw-border-uofg-grey-400{--tw-border-opacity:1;border-color:rgb(180 180 180 / var(--tw-border-opacity))}.tw-border-uofg-grey-500{--tw-border-opacity:1;border-color:rgb(154 154 154 / var(--tw-border-opacity))}.tw-border-uofg-grey-950{--tw-border-opacity:1;border-color:rgb(40 40 40 / var(--tw-border-opacity))}.tw-border-white{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.tw-bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.tw-bg-transparent{background-color:transparent}.tw-bg-uofg-blue-200{--tw-bg-opacity:1;background-color:rgb(190 218 227 / var(--tw-bg-opacity))}.tw-bg-uofg-blue-50{--tw-bg-opacity:1;background-color:rgb(241 248 250 / var(--tw-bg-opacity))}.tw-bg-uofg-grey{--tw-bg-opacity:1;background-color:rgb(221 221 221 / var(--tw-bg-opacity))}.tw-bg-uofg-red{--tw-bg-opacity:1;background-color:rgb(194 4 48 / var(--tw-bg-opacity))}.tw-bg-uofg-yellow{--tw-bg-opacity:1;background-color:rgb(255 199 42 / var(--tw-bg-opacity))}.tw-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.tw-bg-opacity-50{--tw-bg-opacity:0.5}.tw-fill-current{fill:currentColor}.tw-p-2{padding:0.5rem}.tw-p-4{padding:1rem}.tw-p-5{padding:1.25rem}.tw-p-6{padding:1.5rem}.tw-p-8{padding:2rem}.tw-px-4{padding-left:1rem;padding-right:1rem}.tw-px-5{padding-left:1.25rem;padding-right:1.25rem}.tw-px-6{padding-left:1.5rem;padding-right:1.5rem}.tw-px-8{padding-left:2rem;padding-right:2rem}.tw-px-\\[calc\\(\\(100\\%-1320px\\)\\/2\\)\\]{padding-left:calc((100% - 1320px) / 2);padding-right:calc((100% - 1320px) / 2)}.tw-px-\\[max\\(calc\\(\\(100\\%-1320px\\)\\/2\\)\\,2rem\\)\\]{padding-left:max(calc((100% - 1320px) / 2),2rem);padding-right:max(calc((100% - 1320px) / 2),2rem)}.tw-py-2{padding-top:0.5rem;padding-bottom:0.5rem}.tw-py-4{padding-top:1rem;padding-bottom:1rem}.tw-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.tw-py-8{padding-top:2rem;padding-bottom:2rem}.tw-pb-6{padding-bottom:1.5rem}.tw-pt-8{padding-top:2rem}.tw-font-condensed{font-family:Roboto Condensed, Arial, sans-serif}.tw-text-2xl{font-size:1.5rem;line-height:2rem}.tw-text-3xl{font-size:1.875rem;line-height:2.25rem}.tw-text-4xl{font-size:2.25rem;line-height:2.5rem}.tw-font-bold{font-weight:700}.tw-font-medium{font-weight:500}.tw-not-italic{font-style:normal}.tw-tracking-wide{letter-spacing:0.025em}.tw-text-\\[var\\(--uofg-modal-dismiss-color\\,white\\)\\]{color:var(--uofg-modal-dismiss-color,white)}.tw-text-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.tw-text-uofg-blue{--tw-text-opacity:1;color:rgb(105 163 185 / var(--tw-text-opacity))}.tw-text-uofg-blue-500{--tw-text-opacity:1;color:rgb(65 127 153 / var(--tw-text-opacity))}.tw-text-uofg-yellow{--tw-text-opacity:1;color:rgb(255 199 42 / var(--tw-text-opacity))}.tw-text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.tw-opacity-0{opacity:0}.tw-opacity-100{opacity:1}.tw-shadow-md{--tw-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.tw-transition{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.tw-transition-\\[opacity\\,visibility\\]{transition-property:opacity,visibility;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.tw-transition-colors{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.tw-transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.tw-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.first\\:tw-border-l-2:first-child{border-left-width:2px}.focus-within\\:tw-border-uofg-blue-400:focus-within{--tw-border-opacity:1;border-color:rgb(105 163 185 / var(--tw-border-opacity))}.hover\\:tw-border-uofg-yellow:hover{--tw-border-opacity:1;border-color:rgb(255 199 42 / var(--tw-border-opacity))}.hover\\:tw-bg-uofg-grey:hover{--tw-bg-opacity:1;background-color:rgb(221 221 221 / var(--tw-bg-opacity))}.hover\\:tw-bg-uofg-yellow:hover{--tw-bg-opacity:1;background-color:rgb(255 199 42 / var(--tw-bg-opacity))}.hover\\:tw-text-uofg-yellow:hover{--tw-text-opacity:1;color:rgb(255 199 42 / var(--tw-text-opacity))}.hover\\:tw-text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity))}.aria-expanded\\:tw-rotate-180[aria-expanded=\"true\"]{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.aria-expanded\\:tw-bg-uofg-grey[aria-expanded=\"true\"]{--tw-bg-opacity:1;background-color:rgb(221 221 221 / var(--tw-bg-opacity))}.aria-expanded\\:tw-bg-uofg-yellow[aria-expanded=\"true\"]{--tw-bg-opacity:1;background-color:rgb(255 199 42 / var(--tw-bg-opacity))}.aria-expanded\\:tw-bg-white[aria-expanded=\"true\"]{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.aria-expanded\\:tw-text-black[aria-expanded=\"true\"]{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity))}.hocus\\:tw-border-current:hover{border-color:currentColor}.hocus\\:tw-border-uofg-blue-400:hover{--tw-border-opacity:1;border-color:rgb(105 163 185 / var(--tw-border-opacity))}.hocus\\:tw-border-white:hover{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.hocus\\:tw-bg-uofg-red:hover{--tw-bg-opacity:1;background-color:rgb(194 4 48 / var(--tw-bg-opacity))}.hocus\\:tw-text-\\[\\#0077b5\\]:hover{--tw-text-opacity:1;color:rgb(0 119 181 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#1da1f2\\]:hover{--tw-text-opacity:1;color:rgb(29 161 242 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#4267b2\\]:hover{--tw-text-opacity:1;color:rgb(66 103 178 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#e1306c\\]:hover{--tw-text-opacity:1;color:rgb(225 48 108 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#f00\\]:hover{--tw-text-opacity:1;color:rgb(255 0 0 / var(--tw-text-opacity))}.hocus\\:tw-text-uofg-blue-950:hover{--tw-text-opacity:1;color:rgb(25 40 51 / var(--tw-text-opacity))}.hocus\\:tw-opacity-75:hover{opacity:0.75}.hocus\\:tw-border-current:focus{border-color:currentColor}.hocus\\:tw-border-uofg-blue-400:focus{--tw-border-opacity:1;border-color:rgb(105 163 185 / var(--tw-border-opacity))}.hocus\\:tw-border-white:focus{--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity))}.hocus\\:tw-bg-uofg-red:focus{--tw-bg-opacity:1;background-color:rgb(194 4 48 / var(--tw-bg-opacity))}.hocus\\:tw-text-\\[\\#0077b5\\]:focus{--tw-text-opacity:1;color:rgb(0 119 181 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#1da1f2\\]:focus{--tw-text-opacity:1;color:rgb(29 161 242 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#4267b2\\]:focus{--tw-text-opacity:1;color:rgb(66 103 178 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#e1306c\\]:focus{--tw-text-opacity:1;color:rgb(225 48 108 / var(--tw-text-opacity))}.hocus\\:tw-text-\\[\\#f00\\]:focus{--tw-text-opacity:1;color:rgb(255 0 0 / var(--tw-text-opacity))}.hocus\\:tw-text-uofg-blue-950:focus{--tw-text-opacity:1;color:rgb(25 40 51 / var(--tw-text-opacity))}.hocus\\:tw-opacity-75:focus{opacity:0.75}@media (prefers-reduced-motion: reduce){.motion-reduce\\:tw-transition-none{transition-property:none}}@media (min-width: 768px){.md\\:tw-col-span-2{grid-column:span 2 / span 2}.md\\:tw-row-start-2{grid-row-start:2}.md\\:tw-grid{display:grid}.md\\:tw-grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (min-width: 1024px){.lg\\:tw-relative{position:relative}.lg\\:tw-row-auto{grid-row:auto}.lg\\:tw-h-16{height:4rem}.lg\\:tw-w-\\[30rem\\]{width:30rem}.lg\\:tw-grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.lg\\:tw-whitespace-nowrap{white-space:nowrap}.lg\\:tw-border-l-0{border-left-width:0px}}@media (min-width: 1320px){.min-\\[1320px\\]\\:tw-absolute{position:absolute}.min-\\[1320px\\]\\:tw-left-\\[max\\(calc\\(\\(100\\%-1320px\\)\\/2\\)\\2c 7\\.5rem\\)\\]{left:max(calc((100% - 1320px) / 2),7.5rem)}}.\\[\\&\\>a\\]\\:last\\:tw-pb-4:last-child>a{padding-bottom:1rem}.\\[\\&\\>div\\>slot\\:\\:slotted\\(img\\)\\]\\:hocus\\:tw-scale-110:hover>div>slot::slotted(img){--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\[\\&\\>div\\>slot\\:\\:slotted\\(img\\)\\]\\:hocus\\:tw-transform:hover>div>slot::slotted(img){transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\[\\&\\>div\\>slot\\:\\:slotted\\(img\\)\\]\\:hocus\\:tw-transition-transform:hover>div>slot::slotted(img){transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.\\[\\&\\>div\\>slot\\:\\:slotted\\(img\\)\\]\\:hocus\\:tw-scale-110:focus>div>slot::slotted(img){--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\[\\&\\>div\\>slot\\:\\:slotted\\(img\\)\\]\\:hocus\\:tw-transform:focus>div>slot::slotted(img){transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\[\\&\\>div\\>slot\\:\\:slotted\\(img\\)\\]\\:hocus\\:tw-transition-transform:focus>div>slot::slotted(img){transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.\\[\\&\\>li\\]\\:tw-contents>li{display:contents}.\\[\\&\\>slot\\:\\:slotted\\(img\\)\\]\\:tw-w-full>slot::slotted(img){width:100%}.\\[\\&\\>slot\\:\\:slotted\\(img\\)\\]\\:tw-object-cover>slot::slotted(img){-o-object-fit:cover;object-fit:cover}.\\[\\&\\>slot\\:\\:slotted\\(img\\)\\]\\:tw-transition-transform>slot::slotted(img){transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.\\[\\&\\>slot\\[name\\=\\\"body\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-m-0>slot[name=\"body\"]::slotted(*){margin:0px}.\\[\\&\\>slot\\[name\\=\\\"body\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-text-xl>slot[name=\"body\"]::slotted(*){font-size:1.25rem;line-height:1.75rem}.\\[\\&\\>slot\\[name\\=\\\"body\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-font-normal>slot[name=\"body\"]::slotted(*){font-weight:400}.\\[\\&\\>slot\\[name\\=\\\"message\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-text-2xl>slot[name=\"message\"]::slotted(*){font-size:1.5rem;line-height:2rem}.\\[\\&\\>slot\\[name\\=\\\"subtitle\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-m-0>slot[name=\"subtitle\"]::slotted(*){margin:0px}.\\[\\&\\>slot\\[name\\=\\\"subtitle\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-mb-8>slot[name=\"subtitle\"]::slotted(*){margin-bottom:2rem}.\\[\\&\\>slot\\[name\\=\\\"subtitle\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-py-4>slot[name=\"subtitle\"]::slotted(*){padding-top:1rem;padding-bottom:1rem}.\\[\\&\\>slot\\[name\\=\\\"subtitle\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-text-2xl>slot[name=\"subtitle\"]::slotted(*){font-size:1.5rem;line-height:2rem}.\\[\\&\\>slot\\[name\\=\\\"subtitle\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-text-4xl>slot[name=\"subtitle\"]::slotted(*){font-size:2.25rem;line-height:2.5rem}.\\[\\&\\>slot\\[name\\=\\\"subtitle\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-font-bold>slot[name=\"subtitle\"]::slotted(*){font-weight:700}.\\[\\&\\>slot\\[name\\=\\\"subtitle\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-font-normal>slot[name=\"subtitle\"]::slotted(*){font-weight:400}.\\[\\&\\>slot\\[name\\=\\\"title\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-m-0>slot[name=\"title\"]::slotted(*){margin:0px}.\\[\\&\\>slot\\[name\\=\\\"title\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-py-4>slot[name=\"title\"]::slotted(*){padding-top:1rem;padding-bottom:1rem}.\\[\\&\\>slot\\[name\\=\\\"title\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-text-4xl>slot[name=\"title\"]::slotted(*){font-size:2.25rem;line-height:2.5rem}.\\[\\&\\>slot\\[name\\=\\\"title\\\"\\]\\:\\:slotted\\(\\*\\)\\]\\:tw-font-normal>slot[name=\"title\"]::slotted(*){font-weight:400}.\\[\\&\\>svg\\]\\:tw-mr-4>svg{margin-right:1rem}.\\[\\&\\>svg\\]\\:tw-block>svg{display:block}.\\[\\&\\>svg\\]\\:tw-h-\\[1\\.5em\\]>svg{height:1.5em}.\\[\\&\\>svg\\]\\:tw-h-\\[1\\.6em\\]>svg{height:1.6em}.\\[\\&\\>svg\\]\\:tw-h-\\[1em\\]>svg{height:1em}.\\[\\&\\>svg\\]\\:tw-h-full>svg{height:100%}.\\[\\&\\>svg\\]\\:tw-w-auto>svg{width:auto}.\\[\\&\\>svg\\]\\:tw-fill-current>svg{fill:currentColor}.\\[\\&\\>svg\\]\\:tw-fill-uofg-yellow>svg{fill:#ffc72a}.\\[\\&\\>svg\\]\\:tw-transition-transform>svg{transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.\\[\\&\\>svg\\]\\:aria-expanded\\:tw-rotate-180[aria-expanded=\"true\"]>svg{--tw-rotate:180deg;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\\[\\&\\>uofg-menu\\]\\:last\\:tw-pb-6:last-child>uofg-menu{padding-bottom:1.5rem}";
|
|
30
|
-
const tw = twCss;
|
|
31
|
-
|
|
32
|
-
const WEB_ANIMATIONS_SUPPORTED = () => {
|
|
33
|
-
return typeof window !== 'undefined' && 'animate' in HTMLElement.prototype;
|
|
34
|
-
};
|
|
35
|
-
const PREFERS_REDUCED_MOTION = () => {
|
|
36
|
-
return typeof window !== 'undefined' && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
37
|
-
};
|
|
38
|
-
const getAllFocusableElements = (container) => {
|
|
39
|
-
const query = 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, [contenteditable], audio[controls], video[controls], details, summary, [tabindex]:not([tabindex="-1"])';
|
|
40
|
-
return Array.from(container.querySelectorAll(query));
|
|
41
|
-
};
|
|
42
|
-
let stylesheet = null;
|
|
43
|
-
if (typeof CSSStyleSheet === 'function') {
|
|
44
|
-
stylesheet = new CSSStyleSheet();
|
|
45
|
-
stylesheet.replaceSync(tw);
|
|
46
|
-
}
|
|
47
|
-
const attachTailwind = (root) => {
|
|
48
|
-
if (stylesheet) {
|
|
49
|
-
root.adoptedStyleSheets = [...root.adoptedStyleSheets, stylesheet];
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
const style = document.createElement('style');
|
|
53
|
-
style.innerHTML = tw;
|
|
54
|
-
root.prepend(style);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
exports.FontAwesomeIcon = FontAwesomeIcon;
|
|
59
|
-
exports.PREFERS_REDUCED_MOTION = PREFERS_REDUCED_MOTION;
|
|
60
|
-
exports.WEB_ANIMATIONS_SUPPORTED = WEB_ANIMATIONS_SUPPORTED;
|
|
61
|
-
exports.attachTailwind = attachTailwind;
|
|
62
|
-
exports.faChevronUp = faChevronUp;
|
|
63
|
-
exports.faCircleExclamation = faCircleExclamation;
|
|
64
|
-
exports.faTimes = faTimes;
|
|
65
|
-
exports.getAllFocusableElements = getAllFocusableElements;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"entries": [
|
|
3
|
-
"components/uofg-alert/uofg-alert.js",
|
|
4
|
-
"components/uofg-back-to-top/uofg-back-to-top.js",
|
|
5
|
-
"components/uofg-card/uofg-card.js",
|
|
6
|
-
"components/uofg-footer/uofg-footer.js",
|
|
7
|
-
"components/uofg-header/uofg-header.js",
|
|
8
|
-
"components/uofg-menu/uofg-menu.js",
|
|
9
|
-
"components/uofg-modal/uofg-modal.js"
|
|
10
|
-
],
|
|
11
|
-
"compiler": {
|
|
12
|
-
"name": "@stencil/core",
|
|
13
|
-
"version": "4.12.4",
|
|
14
|
-
"typescriptVersion": "5.3.3"
|
|
15
|
-
},
|
|
16
|
-
"collections": [],
|
|
17
|
-
"bundles": []
|
|
18
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
2
|
-
import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
|
|
3
|
-
import { faCircleExclamation } from "@fortawesome/free-solid-svg-icons";
|
|
4
|
-
import { attachTailwind } from "../../utils/utils";
|
|
5
|
-
export class UofgAlert {
|
|
6
|
-
connectedCallback() {
|
|
7
|
-
attachTailwind(this.el.shadowRoot);
|
|
8
|
-
}
|
|
9
|
-
render() {
|
|
10
|
-
return (h("div", { key: 'eb903744c9729170ab2d76c26e19934e35e5f01f', class: "tw-flex tw-flex-col tw-text-3xl" }, h("div", { key: '16d4e504a789b755c36e51708c1b496eb9dbc875', class: "tw-flex tw-items-center tw-bg-uofg-red tw-p-8 tw-text-4xl tw-text-white [&>svg]:tw-mr-4 [&>svg]:tw-h-[1.5em] [&>svg]:tw-fill-current" }, h(FontAwesomeIcon, { key: '7447fb68a467e928b33db5b6a0699a19cddd6723', icon: faCircleExclamation }), h("slot", { key: '22900561c881994916379bf708d0c0be5f9c55c0', name: "title" })), h("div", { key: '1201aa1065fc23e6d3d2e0a2e284d8db50431ad4', class: 'tw-flex tw-flex-col tw-bg-white tw-px-8 tw-py-6 [&>slot[name="message"]::slotted(*)]:tw-text-2xl [&>slot[name="subtitle"]::slotted(*)]:tw-mb-8 [&>slot[name="subtitle"]::slotted(*)]:tw-text-4xl [&>slot[name="subtitle"]::slotted(*)]:tw-font-bold' }, h("slot", { key: 'ffcf1bad53e6f63ebc81550195030b98f7e22f53', name: "subtitle" }), h("slot", { key: 'd753d9c6ad31fb2b3ca24a0390d49937aa34a573', name: "message" })), h("div", { key: '51aba97b218c574c621a0fb5714531f242e27d03', class: "tw-flex tw-bg-uofg-grey tw-px-8 tw-py-4 tw-text-2xl" }, h("slot", { key: 'f56f00f341f418267d00c1208380bd5ecc28c260', name: "footer" }))));
|
|
11
|
-
}
|
|
12
|
-
static get is() { return "uofg-alert"; }
|
|
13
|
-
static get encapsulation() { return "shadow"; }
|
|
14
|
-
static get elementRef() { return "el"; }
|
|
15
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
2
|
-
import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
|
|
3
|
-
import { faChevronUp } from "@fortawesome/free-solid-svg-icons";
|
|
4
|
-
import { attachTailwind } from "../../utils/utils";
|
|
5
|
-
export class UofgBackToTop {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.threshold = 50;
|
|
8
|
-
this.isVisible = false;
|
|
9
|
-
}
|
|
10
|
-
connectedCallback() {
|
|
11
|
-
attachTailwind(this.el.shadowRoot);
|
|
12
|
-
this.onScroll();
|
|
13
|
-
}
|
|
14
|
-
onScroll() {
|
|
15
|
-
this.isVisible = window.scrollY >= this.threshold;
|
|
16
|
-
}
|
|
17
|
-
render() {
|
|
18
|
-
return (h("button", { key: '847d2b365d97efd1e642a87f2b7a7efa4fc6d43d', "aria-label": "Go back to the top", class: {
|
|
19
|
-
'tw-opacity-100': this.isVisible,
|
|
20
|
-
'tw-fixed tw-bottom-0 tw-right-0 tw-z-[1000] tw-m-4 tw-flex tw-h-[3.5rem] tw-w-[3.5rem] tw-cursor-pointer tw-items-center tw-justify-center tw-rounded-[50%] tw-border tw-border-solid tw-border-white tw-bg-black tw-text-white tw-opacity-0 tw-transition hocus:tw-bg-uofg-red [&>svg]:tw-h-[1em] [&>svg]:tw-fill-current': true,
|
|
21
|
-
}, onClick: () => {
|
|
22
|
-
window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
23
|
-
} }, h(FontAwesomeIcon, { key: '677b62f87847d592da099b729fc858a9bd525c70', icon: faChevronUp })));
|
|
24
|
-
}
|
|
25
|
-
static get is() { return "uofg-back-to-top"; }
|
|
26
|
-
static get encapsulation() { return "shadow"; }
|
|
27
|
-
static get properties() {
|
|
28
|
-
return {
|
|
29
|
-
"threshold": {
|
|
30
|
-
"type": "number",
|
|
31
|
-
"mutable": false,
|
|
32
|
-
"complexType": {
|
|
33
|
-
"original": "number",
|
|
34
|
-
"resolved": "number",
|
|
35
|
-
"references": {}
|
|
36
|
-
},
|
|
37
|
-
"required": false,
|
|
38
|
-
"optional": false,
|
|
39
|
-
"docs": {
|
|
40
|
-
"tags": [],
|
|
41
|
-
"text": "The number of pixels the user has to scroll down before the button appears."
|
|
42
|
-
},
|
|
43
|
-
"attribute": "threshold",
|
|
44
|
-
"reflect": false,
|
|
45
|
-
"defaultValue": "50"
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
static get states() {
|
|
50
|
-
return {
|
|
51
|
-
"isVisible": {}
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
static get elementRef() { return "el"; }
|
|
55
|
-
static get listeners() {
|
|
56
|
-
return [{
|
|
57
|
-
"name": "scroll",
|
|
58
|
-
"method": "onScroll",
|
|
59
|
-
"target": "window",
|
|
60
|
-
"capture": false,
|
|
61
|
-
"passive": true
|
|
62
|
-
}];
|
|
63
|
-
}
|
|
64
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Fragment, h } from "@stencil/core";
|
|
2
|
-
import { attachTailwind } from "../../utils/utils";
|
|
3
|
-
export class UofgCard {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.href = undefined;
|
|
6
|
-
}
|
|
7
|
-
connectedCallback() {
|
|
8
|
-
attachTailwind(this.el.shadowRoot);
|
|
9
|
-
}
|
|
10
|
-
render() {
|
|
11
|
-
var _a;
|
|
12
|
-
const Body = () => (h(Fragment, { key: '26ca92b107e66a75f4c9236e32b29fe1749cd69d' }, h("div", { key: '58bf291cdeb1cd51bda3f194c7df1cfea664d635', class: "tw-flex tw-items-center tw-justify-center tw-overflow-hidden [&>slot::slotted(img)]:tw-w-full [&>slot::slotted(img)]:tw-object-cover [&>slot::slotted(img)]:tw-transition-transform" }, h("slot", { key: '715c920fcbeeb7453d473e2483b363882adece46', name: "img" })), h("div", { key: '0f758e0f6e8af2ea15cc100c632d4ca3bc4d7c9c', class: 'tw-flex tw-p-4 tw-flex-col [&>slot[name="body"]::slotted(*)]:tw-m-0 [&>slot[name="body"]::slotted(*)]:tw-text-xl [&>slot[name="body"]::slotted(*)]:tw-font-normal [&>slot[name="subtitle"]::slotted(*)]:tw-m-0 [&>slot[name="subtitle"]::slotted(*)]:tw-py-4 [&>slot[name="subtitle"]::slotted(*)]:tw-text-2xl [&>slot[name="subtitle"]::slotted(*)]:tw-font-normal [&>slot[name="title"]::slotted(*)]:tw-m-0 [&>slot[name="title"]::slotted(*)]:tw-py-4 [&>slot[name="title"]::slotted(*)]:tw-text-4xl [&>slot[name="title"]::slotted(*)]:tw-font-normal' }, h("slot", { key: '37f41a48475dd04378c49851719a0fb96b9fa1a4', name: "title" }), h("slot", { key: '89b9560b7df9b3014628d7c88993cc301e41ff16', name: "subtitle" }), h("slot", { key: '6fcd3a1d466a086c8a3ebbd4fc8dcb9ae74f759a', name: "body" })), h("div", { key: 'a9879cd32b2eb3f3eae766b93866508c1089f8e8', class: "tw-bg-uofg-blue-200 tw-px-4 tw-py-2" }, h("slot", { key: 'd557982d2c393581515b93eed69d8e488f979af3', name: "footer" }))));
|
|
13
|
-
const classes = 'tw-flex tw-flex-col tw-bg-uofg-blue-50 tw-text-2xl tw-rounded tw-overflow-hidden';
|
|
14
|
-
return ((_a = this === null || this === void 0 ? void 0 : this.href) !== null && _a !== void 0 ? _a : '') != '' ? (h("a", { href: this.href, class: `${classes} tw-border tw-border-solid tw-border-transparent tw-transition-colors focus-within:tw-border-uofg-blue-400 hocus:tw-border-uofg-blue-400 [&>div>slot::slotted(img)]:hocus:tw-scale-110 [&>div>slot::slotted(img)]:hocus:tw-transform [&>div>slot::slotted(img)]:hocus:tw-transition-transform` }, h(Body, null))) : (h("div", { class: classes }, h(Body, null)));
|
|
15
|
-
}
|
|
16
|
-
static get is() { return "uofg-card"; }
|
|
17
|
-
static get encapsulation() { return "shadow"; }
|
|
18
|
-
static get properties() {
|
|
19
|
-
return {
|
|
20
|
-
"href": {
|
|
21
|
-
"type": "string",
|
|
22
|
-
"mutable": false,
|
|
23
|
-
"complexType": {
|
|
24
|
-
"original": "string",
|
|
25
|
-
"resolved": "string",
|
|
26
|
-
"references": {}
|
|
27
|
-
},
|
|
28
|
-
"required": false,
|
|
29
|
-
"optional": false,
|
|
30
|
-
"docs": {
|
|
31
|
-
"tags": [],
|
|
32
|
-
"text": "The URL the card should link to. If this property is set, the card will be rendered as an anchor (\"a\" tag)."
|
|
33
|
-
},
|
|
34
|
-
"attribute": "href",
|
|
35
|
-
"reflect": false
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
static get elementRef() { return "el"; }
|
|
40
|
-
}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" fill="#fff" viewBox="0 0 107.4 12">
|
|
2
|
-
<path
|
|
3
|
-
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"/>
|
|
4
|
-
</svg>
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { h } from "@stencil/core";
|
|
2
|
-
import { FontAwesomeIcon } from "../../utils/font-awesome-icon";
|
|
3
|
-
import improveLifeLogo from "./improve-life.svg";
|
|
4
|
-
import { faBriefcase } from "@fortawesome/free-solid-svg-icons/faBriefcase";
|
|
5
|
-
import { faCalendar } from "@fortawesome/free-solid-svg-icons/faCalendar";
|
|
6
|
-
import { faCircleCheck } from "@fortawesome/free-solid-svg-icons/faCircleCheck";
|
|
7
|
-
import { faHandHoldingHeart } from "@fortawesome/free-solid-svg-icons/faHandHoldingHeart";
|
|
8
|
-
import { faKey } from "@fortawesome/free-solid-svg-icons/faKey";
|
|
9
|
-
import { faList } from "@fortawesome/free-solid-svg-icons/faList";
|
|
10
|
-
import { faSitemap } from "@fortawesome/free-solid-svg-icons/faSitemap";
|
|
11
|
-
import { faTree } from "@fortawesome/free-solid-svg-icons/faTree";
|
|
12
|
-
import { faUniversalAccess } from "@fortawesome/free-solid-svg-icons/faUniversalAccess";
|
|
13
|
-
import { faPhoneFlip } from "@fortawesome/free-solid-svg-icons/faPhoneFlip";
|
|
14
|
-
import { faFacebookSquare } from "@fortawesome/free-brands-svg-icons/faFacebookSquare";
|
|
15
|
-
import { faInstagram } from "@fortawesome/free-brands-svg-icons/faInstagram";
|
|
16
|
-
import { faLinkedin } from "@fortawesome/free-brands-svg-icons/faLinkedin";
|
|
17
|
-
import { faTiktok } from "@fortawesome/free-brands-svg-icons/faTiktok";
|
|
18
|
-
import { faTwitterSquare } from "@fortawesome/free-brands-svg-icons/faTwitterSquare";
|
|
19
|
-
import { faYoutube } from "@fortawesome/free-brands-svg-icons/faYoutube";
|
|
20
|
-
import { attachTailwind } from "../../utils/utils";
|
|
21
|
-
const socials = [
|
|
22
|
-
{
|
|
23
|
-
text: 'Twitter',
|
|
24
|
-
icon: faTwitterSquare,
|
|
25
|
-
href: 'https://twitter.com/uofg',
|
|
26
|
-
class: 'hocus:tw-text-[#1da1f2]',
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
text: 'Facebook',
|
|
30
|
-
icon: faFacebookSquare,
|
|
31
|
-
href: 'https://www.facebook.com/uofguelph',
|
|
32
|
-
class: 'hocus:tw-text-[#4267b2]',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
text: 'Instagram',
|
|
36
|
-
icon: faInstagram,
|
|
37
|
-
href: 'https://www.instagram.com/uofguelph/',
|
|
38
|
-
class: 'hocus:tw-text-[#e1306c]',
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
text: 'Youtube',
|
|
42
|
-
icon: faYoutube,
|
|
43
|
-
href: 'https://www.youtube.com/user/uofguelph',
|
|
44
|
-
class: 'hocus:tw-text-[#f00]',
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
text: 'LinkedIn',
|
|
48
|
-
icon: faLinkedin,
|
|
49
|
-
href: 'https://www.linkedin.com/school/university-of-guelph/',
|
|
50
|
-
class: 'hocus:tw-text-[#0077b5]',
|
|
51
|
-
},
|
|
52
|
-
{
|
|
53
|
-
text: 'TikTok',
|
|
54
|
-
icon: faTiktok,
|
|
55
|
-
href: 'https://www.tiktok.com/@uofguelph',
|
|
56
|
-
class: 'hocus:tw-text-[#f00]',
|
|
57
|
-
},
|
|
58
|
-
];
|
|
59
|
-
const links = [
|
|
60
|
-
{
|
|
61
|
-
text: 'Accessibility',
|
|
62
|
-
icon: faUniversalAccess,
|
|
63
|
-
href: 'https://www.uoguelph.ca/diversity-human-rights/accessibility-u-g',
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
text: 'Privacy',
|
|
67
|
-
icon: faKey,
|
|
68
|
-
href: 'https://www.uoguelph.ca/web/privacy/',
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
text: 'Site Map',
|
|
72
|
-
icon: faSitemap,
|
|
73
|
-
href: 'https://www.uoguelph.ca/sitemap',
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
text: 'Status Page',
|
|
77
|
-
icon: faCircleCheck,
|
|
78
|
-
href: 'https://uoguelph.statuspage.io/',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
text: 'Land Acknowledgement',
|
|
82
|
-
icon: faTree,
|
|
83
|
-
href: 'https://www.uoguelph.ca/land-acknowledgement/',
|
|
84
|
-
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étis peoples and acknowledging them reminds us of our collective responsibility to the land where we learn and work.',
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
text: 'Careers',
|
|
88
|
-
icon: faBriefcase,
|
|
89
|
-
href: 'https://www.uoguelph.ca/hr/careers-guelph/current-opportunities',
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
text: 'Undergraduate Calendar',
|
|
93
|
-
icon: faCalendar,
|
|
94
|
-
href: 'https://www.uoguelph.ca/registrar/calendars/undergraduate/current/',
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
text: 'Graduate Calendar',
|
|
98
|
-
icon: faCalendar,
|
|
99
|
-
href: 'https://www.uoguelph.ca/registrar/calendars/graduate/current/',
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
text: 'Program Plans',
|
|
103
|
-
icon: faList,
|
|
104
|
-
href: 'https://admission.uoguelph.ca/programs',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
text: 'Give to U of G',
|
|
108
|
-
icon: faHandHoldingHeart,
|
|
109
|
-
href: 'https://www.alumni.uoguelph.ca/give-to-guelph/how-to-give',
|
|
110
|
-
},
|
|
111
|
-
];
|
|
112
|
-
export class UofgFooter {
|
|
113
|
-
constructor() {
|
|
114
|
-
this.extraLinks = [];
|
|
115
|
-
}
|
|
116
|
-
connectedCallback() {
|
|
117
|
-
var _a;
|
|
118
|
-
attachTailwind(this.el.shadowRoot);
|
|
119
|
-
this.updateExtraLinks();
|
|
120
|
-
(_a = this.observer) !== null && _a !== void 0 ? _a : (this.observer = new MutationObserver(() => {
|
|
121
|
-
this.updateExtraLinks();
|
|
122
|
-
}));
|
|
123
|
-
this.observer.observe(this.el, { childList: true, subtree: true });
|
|
124
|
-
}
|
|
125
|
-
updateExtraLinks() {
|
|
126
|
-
var _a;
|
|
127
|
-
this.extraLinks = Array.from((_a = this.el) === null || _a === void 0 ? void 0 : _a.children)
|
|
128
|
-
.filter(child => child.tagName === 'A')
|
|
129
|
-
.map(child => ({ text: child.textContent, href: child.getAttribute('href') }));
|
|
130
|
-
}
|
|
131
|
-
render() {
|
|
132
|
-
return (h("footer", { key: '35d147bc6c3c9f614104b191b7476723a842b17f' }, this.extraLinks.length > 0 && (h("ul", { class: "tw-flex tw-flex-wrap tw-items-center tw-justify-center tw-bg-uofg-blue-50 tw-p-6 tw-px-[max(calc((100%-1320px)/2),2rem)]" }, this.extraLinks.map(link => (h("li", { class: "tw-border-0 tw-border-r-2 tw-border-solid tw-border-uofg-blue-100 tw-p-2 first:tw-border-l-2" }, h("a", { class: "tw-text-uofg-blue-500 tw-transition-colors hocus:tw-text-uofg-blue-950", href: link.href }, link.text)))))), h("div", { key: 'bde0f631f44fde01c389e1e4904cf7b1d6e7a754', class: "tw-flex tw-flex-col tw-content-center tw-gap-8 tw-bg-black tw-px-[max(calc((100%-1320px)/2),2rem)] tw-py-8 tw-text-white md:tw-grid md:tw-grid-cols-2 lg:tw-grid-cols-4" }, h("div", { key: 'fa6435a938414cacce1011833fb52bc444fc7ae1', class: "tw-flex tw-flex-col tw-justify-between tw-gap-2" }, h("a", { key: '4dc21d37ccf73f564ecb94f7be406cfa21d6bc05', href: "https://www.uoguelph.ca/improve-life", "aria-label": "Improve Life", class: "tw-flex tw-transition-opacity hocus:tw-opacity-75 [&>svg]:tw-h-[1.6em]", innerHTML: improveLifeLogo }), h("ul", { key: '454bb903be7ea860ead363ec5d38707a13ada1f1', class: "tw-flex tw-gap-3 tw-text-4xl [&>li]:tw-contents" }, socials.map(item => (h("li", null, h("a", { href: item.href, "aria-label": item.text, class: `tw-transition-colors [&>svg]:tw-h-[1em] [&>svg]:tw-fill-current ${item.class}` }, h(FontAwesomeIcon, { icon: item.icon })))))), h("a", { key: 'fc97473b3f7f9d9b055b3212d1f72bf0b746dfab', class: "tw-w-fit tw-border-0 tw-border-b-2 tw-border-dotted tw-border-transparent tw-transition-colors hocus:tw-border-white", href: "https://www.uoguelph.ca/web/socialmedia/" }, "Social Media Directory"), h("a", { key: 'af71e4fa9d85ecbc2f92e920081cf4b7a6a122ca', class: "tw-w-fit tw-border-0 tw-border-b-2 tw-border-dotted tw-border-transparent tw-transition-colors hocus:tw-border-white", href: "https://www.uoguelph.ca/web/" }, "\u00A9 ", new Date().getFullYear(), " University of Guelph")), h("div", { key: '3eea01c2ba5f9085fc658b1b0dcbdd595a87cd21', class: "md:tw-col-span-2 md:tw-row-start-2 lg:tw-row-auto" }, h("ul", { key: '9f45c6777c248140ff741cdbdc0c8ffaaf38a0b4', class: "tw-flex tw-flex-col tw-gap-2 md:tw-grid md:tw-grid-cols-2 [&>li]:tw-contents" }, links.map(item => {
|
|
133
|
-
var _a;
|
|
134
|
-
return (h("li", null, h("a", { href: item.href, title: (_a = item === null || item === void 0 ? void 0 : item.title) !== null && _a !== void 0 ? _a : '', class: "tw-flex tw-justify-center tw-items-center tw-w-fit tw-gap-3 tw-border-0 tw-border-b-2 tw-border-dotted tw-border-transparent tw-transition-colors hocus:tw-border-white [&>svg]:tw-h-[1em] [&>svg]:tw-fill-uofg-yellow" }, h(FontAwesomeIcon, { icon: item.icon }), h("span", null, item.text))));
|
|
135
|
-
}))), h("address", { key: 'ea2e7206a264920238af7b899e979d0099013009', class: "tw-flex tw-flex-col tw-justify-between tw-gap-4 tw-not-italic" }, h("strong", { key: '9290d97ccc9b1c1de3f7c6eb498c39934d84a9b4' }, "University of Guelph"), h("span", { key: '0b1a22a47e2f8bc6e3695f5a25858ab4451b7b50' }, "50 Stone Road East,"), h("span", { key: 'f07582b60536191e4ad17179dca8f495c7190b57' }, "Guelph, Ontario, Canada"), h("span", { key: 'c0ee62b9f339b8b36b1ef340a0c1dc8249ae99af' }, "N1G 2W1"), h("a", { key: 'd14bcbc1f6a20cee635a149291052a26750a63af', href: "tel:1-519-824-4120", class: "tw-flex tw-justify-center tw-items-center tw-w-fit tw-gap-2 tw-border-0 tw-border-b-2 tw-border-dotted tw-border-transparent tw-text-uofg-blue tw-transition-colors hocus:tw-border-current [&>svg]:tw-h-[1em] [&>svg]:tw-fill-current" }, h(FontAwesomeIcon, { key: 'fc55b72b292ba4a856bec2978bc20630d50f9b92', icon: faPhoneFlip }), h("span", { key: '67134aae755352d841b834377593e9a34bf77fca' }, "519-824-4120"))))));
|
|
136
|
-
}
|
|
137
|
-
static get is() { return "uofg-footer"; }
|
|
138
|
-
static get encapsulation() { return "shadow"; }
|
|
139
|
-
static get states() {
|
|
140
|
-
return {
|
|
141
|
-
"extraLinks": {}
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
static get elementRef() { return "el"; }
|
|
145
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg viewBox="0 0 68 90" xmlns="http://www.w3.org/2000/svg"><path d="M23.131 0l44.847 90H0V0" fill="#c20430"/><path d="M23.131 0l16.03 32.044L55.1 0" fill="#ffc500"/></svg>
|