@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,440 @@
1
+ import { h, Host } from '@stencil/core';
2
+ import { PREFERS_REDUCED_MOTION, WEB_ANIMATIONS_SUPPORTED } from '../../utils/feature-check';
3
+ const DURATION_REGEX = /^(\d*\.?\d+)(s|ms)$/;
4
+ const EASING_FUNCTION_REGEX = /^cubic-bezier\((\s*-?\d*\.?\d+\s*,){3}\s*-?\d*\.?\d+\s*\)$|^steps\(\s*\d+\s*(,\s*(start|end))?\s*\)$/;
5
+ const observer = new MutationObserver((mutations) => {
6
+ for (const mutation of mutations) {
7
+ mutation.target.dispatchEvent(new CustomEvent('childListChange', { bubbles: false }));
8
+ }
9
+ });
10
+ const observerConfig = {
11
+ childList: true
12
+ };
13
+ export class UofgMenu {
14
+ constructor() {
15
+ this.computedStyle = null;
16
+ this.button = null;
17
+ this.content = null;
18
+ this.contentComputedStyle = null;
19
+ this.isExpanded = false;
20
+ this.autoCollapse = false;
21
+ }
22
+ connectedCallback() {
23
+ // Bind functions so that "this" correctly refers to the component's instance.
24
+ this.handleChildListChange = this.handleChildListChange.bind(this);
25
+ this.updateButton = this.updateButton.bind(this);
26
+ this.updateContent = this.updateContent.bind(this);
27
+ this.handleButtonClick = this.handleButtonClick.bind(this);
28
+ this.handleFocusout = this.handleFocusout.bind(this);
29
+ this.computedStyle = window.getComputedStyle(this.el);
30
+ this.isExpanded = false;
31
+ this.handleChildListChange();
32
+ observer.observe(this.el, observerConfig);
33
+ }
34
+ handleChildListChange() {
35
+ this.updateButton();
36
+ this.updateContent();
37
+ }
38
+ updateButton() {
39
+ var _a, _b, _c;
40
+ const button = this.el.querySelector('[slot="button"]');
41
+ // Clean up the old button before setting the new one
42
+ (_a = this.button) === null || _a === void 0 ? void 0 : _a.removeEventListener('click', this.handleButtonClick);
43
+ (_b = this.button) === null || _b === void 0 ? void 0 : _b.removeAttribute('aria-expanded');
44
+ (_c = this.button) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-haspopup');
45
+ // Set up the new button
46
+ button === null || button === void 0 ? void 0 : button.setAttribute('aria-expanded', this.isExpanded ? 'true' : 'false');
47
+ button === null || button === void 0 ? void 0 : button.setAttribute('aria-haspopup', 'true');
48
+ button === null || button === void 0 ? void 0 : button.addEventListener('click', this.handleButtonClick);
49
+ this.button = button;
50
+ }
51
+ updateContent() {
52
+ const content = this.el.querySelector('[slot="content"]');
53
+ if (content == null) {
54
+ this.content = null;
55
+ this.contentComputedStyle = null;
56
+ }
57
+ else {
58
+ this.content = content;
59
+ this.content.style.display = this.isExpanded ? '' : 'none';
60
+ this.contentComputedStyle = window.getComputedStyle(this.content);
61
+ }
62
+ }
63
+ handleButtonClick() {
64
+ this.isExpanded = !this.isExpanded;
65
+ }
66
+ handleFocusout(e) {
67
+ if (this.autoCollapse && !this.el.contains(e.relatedTarget)) {
68
+ this.isExpanded = false;
69
+ }
70
+ }
71
+ handleIsExpandedChange(newValue) {
72
+ var _a, _b, _c;
73
+ (_a = this.button) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', newValue ? 'true' : 'false');
74
+ newValue ? this.expanded.emit() : this.collapsed.emit();
75
+ // No content is slotted, so we don't need to do anything else.
76
+ if (this.content == null) {
77
+ return;
78
+ }
79
+ // Determine what animation type the user wants.
80
+ const type = this.getAnimationType();
81
+ // If Web Animations API isn't supported, or the user requested no animation, we can simply set display style
82
+ if (!WEB_ANIMATIONS_SUPPORTED || PREFERS_REDUCED_MOTION || type === 'none') {
83
+ this.content.style.display = newValue ? '' : 'none';
84
+ return;
85
+ }
86
+ // Check if we are in the middle of an animation.
87
+ const animations = (_b = this.content) === null || _b === void 0 ? void 0 : _b.getAnimations().filter((animation) => animation.id === 'uofg-menu-animation');
88
+ // If we are, then we want to reverse the existing one rather than starting a new animation.
89
+ if (animations.length > 0) {
90
+ animations === null || animations === void 0 ? void 0 : animations.forEach((animation) => animation.reverse());
91
+ return;
92
+ }
93
+ let animationDef;
94
+ const options = {
95
+ id: 'uofg-menu-animation',
96
+ duration: this.getAnimationDuration(),
97
+ fill: 'none',
98
+ easing: this.getAnimationEasing(),
99
+ direction: newValue ? 'normal' : 'reverse'
100
+ };
101
+ // Need to remove display none, otherwise keyframe values won't be calculated correctly.
102
+ this.content.style.display = '';
103
+ switch (type) {
104
+ case 'fade':
105
+ animationDef = this.fadeAnimation();
106
+ break;
107
+ case 'slide':
108
+ animationDef = this.slideAnimation();
109
+ break;
110
+ default:
111
+ animationDef = this.fadeAnimation();
112
+ }
113
+ // We can start the animation.
114
+ this.animationStarted.emit(newValue);
115
+ (_c = this.content) === null || _c === void 0 ? void 0 : _c.animate(animationDef.keyframes, options).finished.finally(() => {
116
+ var _a;
117
+ // Once the animation is done (or something went wrong during it), we update the content's display style.
118
+ if (this.content) {
119
+ this.content.style.display = this.isExpanded ? '' : 'none';
120
+ (_a = animationDef.callback) === null || _a === void 0 ? void 0 : _a.call(animationDef);
121
+ this.animationEnded.emit(this.isExpanded);
122
+ }
123
+ });
124
+ }
125
+ getAnimationType() {
126
+ var _a;
127
+ const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-type')) || '';
128
+ switch (str) {
129
+ case 'slide':
130
+ case 'fade':
131
+ return str;
132
+ default:
133
+ return 'none';
134
+ }
135
+ }
136
+ getAnimationDuration() {
137
+ var _a;
138
+ const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-duration')) || '';
139
+ const matches = DURATION_REGEX.exec(str);
140
+ if (matches == null) {
141
+ return 200;
142
+ }
143
+ return Number.parseFloat(matches[1]) * (matches[2] == 's' ? 1000 : 1);
144
+ }
145
+ getAnimationEasing() {
146
+ var _a;
147
+ const str = ((_a = this.computedStyle) === null || _a === void 0 ? void 0 : _a.getPropertyValue('--uofg-menu-animation-easing')) || '';
148
+ switch (str) {
149
+ case 'linear':
150
+ case 'ease':
151
+ case 'ease-in':
152
+ case 'ease-out':
153
+ case 'ease-in-out':
154
+ case 'step-start':
155
+ case 'step-end':
156
+ return str;
157
+ default:
158
+ return EASING_FUNCTION_REGEX.test(str) ? str : 'ease-in-out';
159
+ }
160
+ }
161
+ fadeAnimation() {
162
+ return { keyframes: [{ opacity: 0 }, { opacity: 1 }] };
163
+ }
164
+ slideAnimation() {
165
+ var _a, _b, _c, _d, _e;
166
+ this.content && (this.content.style.overflowY = 'hidden');
167
+ return {
168
+ keyframes: [
169
+ {
170
+ height: 0,
171
+ paddingTop: 0,
172
+ paddingBottom: 0,
173
+ marginTop: 0,
174
+ marginBottom: 0
175
+ },
176
+ {
177
+ height: ((_a = this.contentComputedStyle) === null || _a === void 0 ? void 0 : _a.height) || 0,
178
+ paddingTop: ((_b = this.contentComputedStyle) === null || _b === void 0 ? void 0 : _b.paddingTop) || 0,
179
+ paddingBottom: ((_c = this.contentComputedStyle) === null || _c === void 0 ? void 0 : _c.paddingBottom) || 0,
180
+ marginTop: ((_d = this.contentComputedStyle) === null || _d === void 0 ? void 0 : _d.marginTop) || 0,
181
+ marginBottom: ((_e = this.contentComputedStyle) === null || _e === void 0 ? void 0 : _e.marginBottom) || 0
182
+ }
183
+ ],
184
+ callback: () => {
185
+ this.content && (this.content.style.overflowY = '');
186
+ }
187
+ };
188
+ }
189
+ render() {
190
+ return h(Host, { tabindex: -1, "data-expanded": this.isExpanded, onFocusout: this.handleFocusout });
191
+ }
192
+ /**
193
+ * Get the current expanded state of the menu.
194
+ * @returns A promise which will resolve to the current expanded state.
195
+ */
196
+ async getExpanded() {
197
+ return this.isExpanded;
198
+ }
199
+ /**
200
+ * Set the expanded state of the menu.
201
+ * @param value The new expanded state.
202
+ */
203
+ async setExpanded(value) {
204
+ this.isExpanded = value;
205
+ }
206
+ /**
207
+ * Toggle the expanded state of the menu.
208
+ * @returns A promise which will resolve to the new expanded state.
209
+ */
210
+ async toggle() {
211
+ this.isExpanded = !this.isExpanded;
212
+ return this.isExpanded;
213
+ }
214
+ /**
215
+ * Collapse the menu. This is the same as setting the expanded state to false.
216
+ * @returns empty Promise.
217
+ */
218
+ async collapse() {
219
+ this.isExpanded = false;
220
+ }
221
+ /**
222
+ * Expand the menu. This is the same as setting the expanded state to true.
223
+ * @returns empty Promise.
224
+ */
225
+ async expand() {
226
+ this.isExpanded = true;
227
+ }
228
+ static get is() { return "uofg-menu"; }
229
+ static get properties() {
230
+ return {
231
+ "autoCollapse": {
232
+ "type": "boolean",
233
+ "mutable": false,
234
+ "complexType": {
235
+ "original": "boolean",
236
+ "resolved": "boolean",
237
+ "references": {}
238
+ },
239
+ "required": false,
240
+ "optional": false,
241
+ "docs": {
242
+ "tags": [],
243
+ "text": "Controls whether the menu should automatically collapse when the focused element in the page is not contained within the menu (e.g. it's button or content). This is useful for when you want the menu to collapse whenever a user interacts with any other part of the page."
244
+ },
245
+ "attribute": "auto-collapse",
246
+ "reflect": false,
247
+ "defaultValue": "false"
248
+ }
249
+ };
250
+ }
251
+ static get states() {
252
+ return {
253
+ "isExpanded": {}
254
+ };
255
+ }
256
+ static get events() {
257
+ return [{
258
+ "method": "expanded",
259
+ "name": "expanded",
260
+ "bubbles": false,
261
+ "cancelable": false,
262
+ "composed": true,
263
+ "docs": {
264
+ "tags": [],
265
+ "text": "Dispatched whenever the menu is expanded whether by user interaction or or programmatically (e.g. expand())."
266
+ },
267
+ "complexType": {
268
+ "original": "void",
269
+ "resolved": "void",
270
+ "references": {}
271
+ }
272
+ }, {
273
+ "method": "collapsed",
274
+ "name": "collapsed",
275
+ "bubbles": false,
276
+ "cancelable": false,
277
+ "composed": true,
278
+ "docs": {
279
+ "tags": [],
280
+ "text": "Dispatched whenever the menu is collapsed whether by user interaction or programmatically (e.g. collapse())."
281
+ },
282
+ "complexType": {
283
+ "original": "void",
284
+ "resolved": "void",
285
+ "references": {}
286
+ }
287
+ }, {
288
+ "method": "animationStarted",
289
+ "name": "animationStarted",
290
+ "bubbles": false,
291
+ "cancelable": false,
292
+ "composed": true,
293
+ "docs": {
294
+ "tags": [],
295
+ "text": "Dispatched whenever the menu is expanding or collapsing and the animation has started. This event is not dispatched if the animation is disabled (e.g. due to reduced motion, css variable set to none, or lack of Web Animations API support)."
296
+ },
297
+ "complexType": {
298
+ "original": "boolean",
299
+ "resolved": "boolean",
300
+ "references": {}
301
+ }
302
+ }, {
303
+ "method": "animationEnded",
304
+ "name": "animationEnded",
305
+ "bubbles": false,
306
+ "cancelable": false,
307
+ "composed": true,
308
+ "docs": {
309
+ "tags": [],
310
+ "text": "Dispatched whenever the menu is expanding or collapsing and the animation has ended. This event is not dispatched if the animation is disabled (e.g. due to reduced motion, css variable set to none, or lack of Web Animations API support)."
311
+ },
312
+ "complexType": {
313
+ "original": "boolean",
314
+ "resolved": "boolean",
315
+ "references": {}
316
+ }
317
+ }];
318
+ }
319
+ static get methods() {
320
+ return {
321
+ "getExpanded": {
322
+ "complexType": {
323
+ "signature": "() => Promise<boolean>",
324
+ "parameters": [],
325
+ "references": {
326
+ "Promise": {
327
+ "location": "global"
328
+ }
329
+ },
330
+ "return": "Promise<boolean>"
331
+ },
332
+ "docs": {
333
+ "text": "Get the current expanded state of the menu.",
334
+ "tags": [{
335
+ "name": "returns",
336
+ "text": "A promise which will resolve to the current expanded state."
337
+ }]
338
+ }
339
+ },
340
+ "setExpanded": {
341
+ "complexType": {
342
+ "signature": "(value: boolean) => Promise<void>",
343
+ "parameters": [{
344
+ "tags": [{
345
+ "name": "param",
346
+ "text": "value The new expanded state."
347
+ }],
348
+ "text": "The new expanded state."
349
+ }],
350
+ "references": {
351
+ "Promise": {
352
+ "location": "global"
353
+ }
354
+ },
355
+ "return": "Promise<void>"
356
+ },
357
+ "docs": {
358
+ "text": "Set the expanded state of the menu.",
359
+ "tags": [{
360
+ "name": "param",
361
+ "text": "value The new expanded state."
362
+ }]
363
+ }
364
+ },
365
+ "toggle": {
366
+ "complexType": {
367
+ "signature": "() => Promise<boolean>",
368
+ "parameters": [],
369
+ "references": {
370
+ "Promise": {
371
+ "location": "global"
372
+ }
373
+ },
374
+ "return": "Promise<boolean>"
375
+ },
376
+ "docs": {
377
+ "text": "Toggle the expanded state of the menu.",
378
+ "tags": [{
379
+ "name": "returns",
380
+ "text": "A promise which will resolve to the new expanded state."
381
+ }]
382
+ }
383
+ },
384
+ "collapse": {
385
+ "complexType": {
386
+ "signature": "() => Promise<void>",
387
+ "parameters": [],
388
+ "references": {
389
+ "Promise": {
390
+ "location": "global"
391
+ }
392
+ },
393
+ "return": "Promise<void>"
394
+ },
395
+ "docs": {
396
+ "text": "Collapse the menu. This is the same as setting the expanded state to false.",
397
+ "tags": [{
398
+ "name": "returns",
399
+ "text": "empty Promise."
400
+ }]
401
+ }
402
+ },
403
+ "expand": {
404
+ "complexType": {
405
+ "signature": "() => Promise<void>",
406
+ "parameters": [],
407
+ "references": {
408
+ "Promise": {
409
+ "location": "global"
410
+ }
411
+ },
412
+ "return": "Promise<void>"
413
+ },
414
+ "docs": {
415
+ "text": "Expand the menu. This is the same as setting the expanded state to true.",
416
+ "tags": [{
417
+ "name": "returns",
418
+ "text": "empty Promise."
419
+ }]
420
+ }
421
+ }
422
+ };
423
+ }
424
+ static get elementRef() { return "el"; }
425
+ static get watchers() {
426
+ return [{
427
+ "propName": "isExpanded",
428
+ "methodName": "handleIsExpandedChange"
429
+ }];
430
+ }
431
+ static get listeners() {
432
+ return [{
433
+ "name": "onChildListChange",
434
+ "method": "handleChildListChange",
435
+ "target": undefined,
436
+ "capture": false,
437
+ "passive": false
438
+ }];
439
+ }
440
+ }
@@ -0,0 +1 @@
1
+ export * from './components';
@@ -0,0 +1,2 @@
1
+ export const WEB_ANIMATIONS_SUPPORTED = 'animate' in HTMLElement.prototype;
2
+ export const PREFERS_REDUCED_MOTION = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
@@ -0,0 +1,7 @@
1
+ import { h } from '@stencil/core';
2
+ export const FontAwesomeIcon = (props) => {
3
+ const width = props.icon.icon[0];
4
+ const height = props.icon.icon[1];
5
+ const iconPathData = props.icon.icon[4];
6
+ 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 }))));
7
+ };
@@ -0,0 +1,36 @@
1
+ /* UofgWebComponents custom elements */
2
+ export { UofgFooter as UofgFooter } from '../types/components/uofg-footer/uofg-footer';
3
+ export { defineCustomElement as defineCustomElementUofgFooter } from './uofg-footer';
4
+ export { UofgHeader as UofgHeader } from '../types/components/uofg-header/uofg-header';
5
+ export { defineCustomElement as defineCustomElementUofgHeader } from './uofg-header';
6
+ export { UofgMenu as UofgMenu } from '../types/components/uofg-menu/uofg-menu';
7
+ export { defineCustomElement as defineCustomElementUofgMenu } from './uofg-menu';
8
+
9
+ /**
10
+ * Used to manually set the base path where assets can be found.
11
+ * If the script is used as "module", it's recommended to use "import.meta.url",
12
+ * such as "setAssetPath(import.meta.url)". Other options include
13
+ * "setAssetPath(document.currentScript.src)", or using a bundler's replace plugin to
14
+ * dynamically set the path at build time, such as "setAssetPath(process.env.ASSET_PATH)".
15
+ * But do note that this configuration depends on how your script is bundled, or lack of
16
+ * bundling, and where your assets can be loaded from. Additionally custom bundling
17
+ * will have to ensure the static assets are copied to its build directory.
18
+ */
19
+ export declare const setAssetPath: (path: string) => void;
20
+
21
+ /**
22
+ * Used to specify a nonce value that corresponds with an application's CSP.
23
+ * When set, the nonce will be added to all dynamically created script and style tags at runtime.
24
+ * Alternatively, the nonce value can be set on a meta tag in the DOM head
25
+ * (<meta name="csp-nonce" content="{ nonce value here }" />) which
26
+ * will result in the same behavior.
27
+ */
28
+ export declare const setNonce: (nonce: string) => void
29
+
30
+ export interface SetPlatformOptions {
31
+ raf?: (c: FrameRequestCallback) => number;
32
+ ael?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
33
+ rel?: (el: EventTarget, eventName: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions) => void;
34
+ }
35
+ export declare const setPlatformOptions: (opts: SetPlatformOptions) => void;
36
+ export * from '../types';
@@ -0,0 +1,4 @@
1
+ export { setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
2
+ export { UofgFooter, defineCustomElement as defineCustomElementUofgFooter } from './uofg-footer.js';
3
+ export { UofgHeader, defineCustomElement as defineCustomElementUofgHeader } from './uofg-header.js';
4
+ export { UofgMenu, defineCustomElement as defineCustomElementUofgMenu } from './uofg-menu.js';
@@ -0,0 +1,82 @@
1
+ import { h } from '@stencil/core/internal/client';
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 faTrees = {
11
+ prefix: 'fas',
12
+ iconName: 'trees',
13
+ 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"]
14
+ };
15
+ var faBars = {
16
+ prefix: 'fas',
17
+ iconName: 'bars',
18
+ 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"]
19
+ };
20
+ var faSitemap = {
21
+ prefix: 'fas',
22
+ iconName: 'sitemap',
23
+ 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"]
24
+ };
25
+ var faList = {
26
+ prefix: 'fas',
27
+ iconName: 'list',
28
+ 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"]
29
+ };
30
+ var faKey = {
31
+ prefix: 'fas',
32
+ iconName: 'key',
33
+ 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"]
34
+ };
35
+ var faRightToBracket = {
36
+ prefix: 'fas',
37
+ iconName: 'right-to-bracket',
38
+ 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"]
39
+ };
40
+ var faCalendarRange = {
41
+ prefix: 'fas',
42
+ iconName: 'calendar-range',
43
+ 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"]
44
+ };
45
+ var faCircleCheck = {
46
+ prefix: 'fas',
47
+ iconName: 'circle-check',
48
+ 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"]
49
+ };
50
+ var faUniversalAccess = {
51
+ prefix: 'fas',
52
+ iconName: 'universal-access',
53
+ 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"]
54
+ };
55
+ var faHandHoldingHeart = {
56
+ prefix: 'fas',
57
+ iconName: 'hand-holding-heart',
58
+ 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"]
59
+ };
60
+ var faPhoneFlip = {
61
+ prefix: 'fas',
62
+ iconName: 'phone-flip',
63
+ 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"]
64
+ };
65
+ var faCaretDown = {
66
+ prefix: 'fas',
67
+ iconName: 'caret-down',
68
+ 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"]
69
+ };
70
+ var faMagnifyingGlass = {
71
+ prefix: 'fas',
72
+ iconName: 'magnifying-glass',
73
+ 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"]
74
+ };
75
+ var faSearch = faMagnifyingGlass;
76
+ var faBriefcase = {
77
+ prefix: 'fas',
78
+ iconName: 'briefcase',
79
+ 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"]
80
+ };
81
+
82
+ export { FontAwesomeIcon as F, faKey as a, faSitemap as b, faCircleCheck as c, faTrees as d, faBriefcase as e, faUniversalAccess as f, faCalendarRange as g, faList as h, faHandHoldingHeart as i, faPhoneFlip as j, faCaretDown as k, faSearch as l, faRightToBracket as m, faBars as n };
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface UofgFooter extends Components.UofgFooter, HTMLElement {}
4
+ export const UofgFooter: {
5
+ prototype: UofgFooter;
6
+ new (): UofgFooter;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;