@itcenteratunihelsinki/huds-lib 0.5.21 → 0.5.25

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 (70) hide show
  1. package/dist/cjs/huds-lib.cjs.js +1 -1
  2. package/dist/cjs/hy-accordion-container_5.cjs.entry.js +578 -0
  3. package/dist/cjs/hy-desktop-menu-links.cjs.entry.js +4 -3
  4. package/dist/cjs/hy-list-item.cjs.entry.js +1 -1
  5. package/dist/cjs/{hy-menu-language_2.cjs.entry.js → hy-menu-language.cjs.entry.js} +0 -19
  6. package/dist/cjs/hy-menu-mobile-breadcrumb.cjs.entry.js +25 -0
  7. package/dist/cjs/hy-menu.cjs.entry.js +4 -8
  8. package/dist/cjs/hy-paragraph-text.cjs.entry.js +1 -1
  9. package/dist/cjs/hy-person-profile.cjs.entry.js +61 -0
  10. package/dist/cjs/hy-site-header_3.cjs.entry.js +14 -6
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/collection/collection-manifest.json +2 -0
  13. package/dist/collection/components/accordion-item/accordion-item.css +5 -4
  14. package/dist/collection/components/accordion-item/accordion-item.js +20 -20
  15. package/dist/collection/components/hy-list-item/hy-list-item.css +9 -4
  16. package/dist/collection/components/navigation/menu/menu.js +21 -10
  17. package/dist/collection/components/paragraph-text/paragraph-text.css +9 -7
  18. package/dist/collection/components/person-profile/person-profile-listing/person-profile-listing.css +188 -0
  19. package/dist/collection/components/person-profile/person-profile-listing/person-profile.listing.js +124 -0
  20. package/dist/collection/components/person-profile/person-profile.css +506 -0
  21. package/dist/collection/components/person-profile/person-profile.js +199 -0
  22. package/dist/collection/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.css +20 -10
  23. package/dist/collection/components/site-header/hy-desktop-menu-links/hy-desktop-menu-links.js +3 -2
  24. package/dist/collection/components/site-header/site-header.css +12 -0
  25. package/dist/collection/components/site-header/site-header.js +21 -2
  26. package/dist/collection/components/site-header/site-logo/site-logo.css +22 -0
  27. package/dist/collection/components/site-header/site-search/site-search.css +10 -10
  28. package/dist/collection/components/site-header/site-search/site-search.js +8 -1
  29. package/dist/esm/huds-lib.js +1 -1
  30. package/dist/esm/hy-accordion-container_5.entry.js +570 -0
  31. package/dist/esm/hy-desktop-menu-links.entry.js +4 -3
  32. package/dist/esm/hy-list-item.entry.js +1 -1
  33. package/dist/esm/{hy-menu-language_2.entry.js → hy-menu-language.entry.js} +1 -19
  34. package/dist/esm/hy-menu-mobile-breadcrumb.entry.js +21 -0
  35. package/dist/esm/hy-menu.entry.js +4 -8
  36. package/dist/esm/hy-paragraph-text.entry.js +1 -1
  37. package/dist/esm/hy-person-profile.entry.js +57 -0
  38. package/dist/esm/hy-site-header_3.entry.js +14 -6
  39. package/dist/esm/loader.js +1 -1
  40. package/dist/huds-lib/huds-lib.esm.js +1 -1
  41. package/dist/huds-lib/p-0b2e3057.entry.js +1 -0
  42. package/dist/huds-lib/p-22e9d015.entry.js +1 -0
  43. package/dist/huds-lib/p-3d35d226.entry.js +1 -0
  44. package/dist/huds-lib/{p-b526249a.entry.js → p-4252e76e.entry.js} +1 -1
  45. package/dist/huds-lib/{p-bf84b857.entry.js → p-557d5e62.entry.js} +1 -1
  46. package/dist/huds-lib/{p-401ead3c.entry.js → p-70d43477.entry.js} +1 -1
  47. package/dist/huds-lib/p-8f62c5a4.entry.js +1 -0
  48. package/dist/huds-lib/p-ac362729.entry.js +1 -0
  49. package/dist/huds-lib/p-c3afba74.entry.js +1 -0
  50. package/dist/types/components/navigation/menu/menu.d.ts +2 -1
  51. package/dist/types/components/person-profile/person-profile-listing/person-profile.listing.d.ts +14 -0
  52. package/dist/types/components/person-profile/person-profile.d.ts +12 -0
  53. package/dist/types/components/site-header/site-header.d.ts +1 -0
  54. package/dist/types/components.d.ts +51 -0
  55. package/package.json +1 -1
  56. package/dist/cjs/hy-accordion-container.cjs.entry.js +0 -29
  57. package/dist/cjs/hy-accordion-item.cjs.entry.js +0 -216
  58. package/dist/cjs/hy-tabs-item.cjs.entry.js +0 -20
  59. package/dist/cjs/hy-tabs.cjs.entry.js +0 -308
  60. package/dist/esm/hy-accordion-container.entry.js +0 -25
  61. package/dist/esm/hy-accordion-item.entry.js +0 -212
  62. package/dist/esm/hy-tabs-item.entry.js +0 -16
  63. package/dist/esm/hy-tabs.entry.js +0 -304
  64. package/dist/huds-lib/p-0a3ee940.entry.js +0 -1
  65. package/dist/huds-lib/p-63334950.entry.js +0 -1
  66. package/dist/huds-lib/p-85cad30d.entry.js +0 -1
  67. package/dist/huds-lib/p-8eb879d5.entry.js +0 -1
  68. package/dist/huds-lib/p-9c2f38a6.entry.js +0 -1
  69. package/dist/huds-lib/p-d4a8d85f.entry.js +0 -1
  70. package/dist/huds-lib/p-df368663.entry.js +0 -1
@@ -1,216 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-dd5e5023.js');
6
- const utils = require('./utils-3692dcdb.js');
7
-
8
- const accordionItemCss = ":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}.hy-accordion__item{margin-bottom:12px}.hy-accordion__item__is-open{border:1px solid var(--grayscale-dark)}.hy-accordion__item__is-open .hy-accordion--heading{margin:0 auto}.hy-accordion__item__is-open .hy-accordion--heading .hy-accordion--heading__icon{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.hy-accordion__item.mini{margin-bottom:1rem;margin-top:1rem}.hy-accordion__item__is-open.mini{margin-bottom:0;margin-top:0}.hy-accordion__item__is-open.mini .hy-accordion__item--container{border-bottom:1px solid var(--grayscale-medium-dark);border-top:1px solid var(--grayscale-medium-dark);padding-top:16px;padding-bottom:32px;margin-top:-1px;-webkit-transition:padding 0.5s ease-in-out;transition:padding 0.5s ease-in-out}@media (min-width: 30rem){.hy-accordion__item__is-open.mini .hy-accordion__item--container{padding-top:28px;padding-bottom:30px}}@media (min-width: 60rem){.hy-accordion__item__is-open.mini .hy-accordion__item--container{padding-top:32px;padding-bottom:40px}}.hy-accordion__item.hy-accordion__item__is-open.mini{background-color:var(--grayscale-white);border:none;-webkit-box-shadow:0 -10px 10px -10px rgba(0, 49, 70, 0.05);box-shadow:0 -10px 10px -10px rgba(0, 49, 70, 0.05)}.hy-accordion--heading{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;letter-spacing:-0.69px;line-height:28px;margin:0 auto;-webkit-transition:all 0.25s ease-in-out;transition:all 0.25s ease-in-out;width:100%}.hy-accordion--heading .hy-accordion__link{text-decoration:none}.hy-accordion--heading .hy-accordion__link:hover{text-decoration:none}.hy-accordion--heading .hy-accordion__button{font-size:1.125rem;line-height:22px;font-weight:700;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;background-color:var(--grayscale-background-box);border:none;color:var(--brand-main-nearly-black);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;font-family:var(--main-font-family);height:100%;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;letter-spacing:-0.45px;padding:13px 20px 13px 16px;-webkit-transition:all 0.35s ease-in;transition:all 0.35s ease-in;width:100%}.hy-accordion--heading .hy-accordion__button:hover{cursor:pointer}@media (min-width: 30rem){.hy-accordion--heading .hy-accordion__button{padding:1rem 2rem 1rem 1.25rem}}@media (min-width: 1601px){.hy-accordion--heading .hy-accordion__button{font-size:1.25rem;line-height:24px;letter-spacing:-0.5px}}@media (min-width: 75.0625rem){.hy-accordion--heading .hy-accordion__button--large{font-size:1.25rem;line-height:24px;letter-spacing:-0.5px}}@media (min-width: 75.0625rem){.hy-accordion--heading .hy-accordion__button--large .hy-accordion--heading__icon svg{height:20px;width:20px}}.hy-accordion--heading .hy-accordion__button[aria-expanded=true]{background:none}.hy-accordion--heading .hy-accordion__button span{text-align:left}.hy-accordion--heading .hy-accordion__button[aria-expanded=true]{position:relative}.hy-accordion--heading .hy-accordion__button[aria-expanded=true]:after{background-color:var(--grayscale-medium-dark);bottom:0;content:\"\";height:1px;left:16px;position:absolute;right:20px}.hy-accordion--heading .hy-accordion--heading__icon{-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:22px;margin-right:8px;z-index:0}.hy-accordion--heading .hy-accordion--heading__icon svg{fill:var(--brand-main)}@media (min-width: 30rem){.hy-accordion--heading .hy-accordion--heading__icon svg{height:18px;width:18px}}@media (min-width: 1601px){.hy-accordion--heading .hy-accordion--heading__icon svg{height:20px;width:20px}}.hy-accordion--heading.mini .hy-accordion__button{font-size:1.125rem;line-height:22px;background-color:var(--grayscale-white);color:var(--link-blue);letter-spacing:-0.56px;padding:0}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion__button{font-size:1.375rem;line-height:28px;letter-spacing:-0.69px;padding:0}}.hy-accordion--heading.mini .hy-accordion__button[aria-expanded=true]{color:var(--grayscale-black);margin-bottom:20px}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion__button[aria-expanded=true]{margin-bottom:28px}}@media (min-width: 60rem){.hy-accordion--heading.mini .hy-accordion__button[aria-expanded=true]{margin-bottom:32px}}.hy-accordion--heading.mini .hy-accordion--heading__icon{margin-right:0.5rem;z-index:0}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion--heading__icon{margin-right:10px}}.hy-accordion--heading.mini .hy-accordion--heading__icon svg{fill:var(--brand-main-light);height:14px;width:14px}@media (min-width: 30rem){.hy-accordion--heading.mini .hy-accordion--heading__icon svg{height:16px;width:16px}}.hy-accordion__content{display:block;height:0;padding:0;overflow:hidden;-webkit-transition:all 0.25s ease-in-out;transition:all 0.25s ease-in-out}.hy-accordion__content--inner-wrapper{display:block;padding:16px 12px}@media (min-width: 30rem){.hy-accordion__content--inner-wrapper{padding:15px 16px}}@media (min-width: 60rem){.hy-accordion__content--inner-wrapper{padding:16px}}@media (min-width: 75.0625rem){.hy-accordion__content--inner-wrapper--large{padding:24px 20px}}@media (min-width: 1601px){.hy-accordion__content--inner-wrapper{padding:24px 20px}}.hy-accordion__content--inner-wrapper--mini{padding:0}.hy-accordion__content--inner-wrapper--mini .course-heading h4{padding-top:0 !important}";
9
-
10
- let keys = {
11
- enter: 'Enter',
12
- tab: 'Tab',
13
- pageUp: 'PageUp',
14
- pageDown: 'PageDown',
15
- arrowUp: 'ArrowUp',
16
- arrowDown: 'ArrowDown',
17
- home: 'Home',
18
- end: 'End', //35
19
- };
20
- const AccordionItem = class {
21
- constructor(hostRef) {
22
- index.registerInstance(this, hostRef);
23
- this.variant = utils.AccordionVariants.default;
24
- this.headerstyle = 'common';
25
- this.showOpen = false;
26
- this.ready = false;
27
- }
28
- componentDidLoad() {
29
- this.ready = true;
30
- let hyMainDiv = this.el.closest('.hy-main');
31
- if (hyMainDiv) {
32
- if (!hyMainDiv.classList.contains('with-sidebar')) {
33
- this.headerstyle = 'large';
34
- }
35
- }
36
- }
37
- componentDidRender() {
38
- if (window.location.hash) {
39
- this.expandPanelByAnchor(window.location.hash);
40
- }
41
- document.querySelectorAll('.hy-accordion__content').forEach(function (accordion) {
42
- let showOpen = accordion.classList.contains('open');
43
- let element = accordion;
44
- if (showOpen) {
45
- element.style.display = 'block';
46
- element.style.height = element.scrollHeight + 'px';
47
- }
48
- else {
49
- element.style.height = 0 + 'px';
50
- element.style.display = 'none';
51
- }
52
- });
53
- }
54
- onHashChange() {
55
- if (window.location.hash) {
56
- this.expandPanelByAnchor(window.location.hash);
57
- }
58
- }
59
- handleKeyDown(event) {
60
- const containerId = this.el.parentElement.id;
61
- let accordion = document.querySelectorAll(`#${containerId}`)[0];
62
- const triggers = Array.prototype.slice.call(accordion.querySelectorAll('.hy-accordion__button'));
63
- let target = event.target;
64
- const key = event.code;
65
- const ctrlModifier = event.ctrlKey && [keys.pageDown, keys.pageUp].includes(key); //key.match(/33|34/);
66
- if (target.classList.contains('hy-accordion__button')) {
67
- // Up/ Down arrow and Control + Page Up/ Page Down keyboard operations
68
- if ([keys.arrowDown, keys.arrowUp].includes(key) || ctrlModifier) {
69
- const index = triggers.indexOf(target);
70
- const direction = [keys.arrowDown, keys.pageDown].includes(key) ? 1 : -1;
71
- const length = triggers.length;
72
- const newIndex = (index + length + direction) % length;
73
- triggers[newIndex].focus();
74
- event.preventDefault();
75
- }
76
- else if ([keys.home, keys.end].includes(key)) {
77
- switch (key) {
78
- // Go to first accordion
79
- case keys.home:
80
- triggers[0].focus();
81
- break;
82
- // Go to last accordion
83
- case keys.end:
84
- triggers[triggers.length - 1].focus();
85
- break;
86
- }
87
- event.preventDefault();
88
- }
89
- }
90
- }
91
- handleClick(event) {
92
- const containerId = this.el.parentElement.id;
93
- let target = event.target;
94
- const targetElement = target.tagName.toLowerCase();
95
- const possibleTags = [targetElement].some((r) => ['svg', 'span', 'path', 'button', 'a'].indexOf(r) >= 0);
96
- let accordion = document.querySelectorAll(`#${containerId}`)[0];
97
- const allowMultiple = accordion.hasAttribute('data-allow-multiple');
98
- const allowToggle = allowMultiple ? allowMultiple : accordion.hasAttribute('data-allow-toggle');
99
- if (target && possibleTags) {
100
- if (targetElement !== 'button') {
101
- target = target.closest('.hy-accordion__button');
102
- }
103
- let targetParent = target.closest('.hy-accordion__item');
104
- let targetContent = targetParent.querySelectorAll('.hy-accordion__content')[0];
105
- const isExpanded = target.getAttribute('aria-expanded') == 'true';
106
- const active = accordion.querySelector('[aria-expanded="true"]');
107
- if (!allowMultiple && active && active !== target) {
108
- active.setAttribute('aria-expanded', 'false');
109
- this.collapseSection(targetContent);
110
- if (targetParent.classList.contains('hy-accordion__item__is-open')) {
111
- targetParent.classList.remove('hy-accordion__item__is-open');
112
- }
113
- accordion.querySelector(`#${active.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'true');
114
- if (!allowToggle) {
115
- active.removeAttribute('aria-disabled');
116
- }
117
- }
118
- if (!isExpanded) {
119
- this.expandSection(targetContent);
120
- target.setAttribute('aria-expanded', 'true');
121
- targetParent.classList.add('hy-accordion__item__is-open');
122
- accordion.querySelector(`#${target.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'false');
123
- if (!allowToggle) {
124
- target.setAttribute('aria-disabled', 'true');
125
- }
126
- }
127
- else if (allowToggle && isExpanded) {
128
- target.setAttribute('aria-expanded', 'false');
129
- this.collapseSection(targetContent);
130
- if (targetParent.classList.contains('hy-accordion__item__is-open')) {
131
- targetParent.classList.remove('hy-accordion__item__is-open');
132
- }
133
- accordion.querySelector(`#${target.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'true');
134
- }
135
- event.preventDefault();
136
- event.stopImmediatePropagation();
137
- }
138
- }
139
- expandPanelByAnchor(anchor) {
140
- setTimeout(() => {
141
- if (anchor.length > 0) {
142
- anchor = anchor.substr(1);
143
- let target = document.querySelectorAll(`[id=${anchor}]`)[0];
144
- if (target && target.classList.contains('hy-accordion__button')) {
145
- let targetParent = target.closest('.hy-accordion__item');
146
- let targetContent = targetParent.querySelectorAll('.hy-accordion__content')[0];
147
- this.expandSection(targetContent);
148
- target.setAttribute('aria-expanded', 'true');
149
- targetParent.classList.add('hy-accordion__item__is-open');
150
- const targetElementRect = target.getBoundingClientRect();
151
- window.scrollTo({ top: window.scrollY + targetElementRect.top - 200, behavior: 'smooth' });
152
- const containerId = targetParent.parentElement.parentElement.id;
153
- if (containerId.length > 0) {
154
- let accordion = document.querySelectorAll(`#${containerId}`)[0];
155
- accordion.querySelector(`#${target.getAttribute('aria-controls')}`).setAttribute('aria-hidden', 'false');
156
- }
157
- }
158
- }
159
- }, 200);
160
- }
161
- collapseSection(element) {
162
- element.style.height = 0 + 'px';
163
- element.setAttribute('data-collapsed', 'true');
164
- setTimeout(() => {
165
- element.style.display = 'none';
166
- }, 250);
167
- }
168
- expandSection(element) {
169
- element.style.display = 'block';
170
- element.style.height = element.scrollHeight + 'px';
171
- element.setAttribute('data-collapsed', 'false');
172
- }
173
- render() {
174
- const containerId = this.el.parentElement.id;
175
- if (this.ready && containerId.length > 0) {
176
- document.querySelectorAll(`#${containerId}`).forEach(function (accordion) {
177
- if (accordion) {
178
- accordion.querySelectorAll('.hy-accordion__button').forEach(function (trigger) {
179
- trigger.addEventListener('focus', function () {
180
- trigger.classList.add('focus');
181
- });
182
- trigger.addEventListener('blur', function () {
183
- trigger.classList.remove('focus');
184
- });
185
- });
186
- }
187
- });
188
- }
189
- const classIsOpen = this.showOpen ? 'hy-accordion__item__is-open' : '';
190
- const classContentIsOpen = this.showOpen ? 'open' : '';
191
- const classAttributes = ['hy-accordion__item', this.variant, classIsOpen].join(' ');
192
- const classInnerWrapper = ['hy-accordion__item--container', this.variant].join(' ');
193
- const classHeadingAttributes = ['hy-accordion--heading', this.variant].join(' ');
194
- const classContentAttributes = [
195
- 'hy-accordion__content',
196
- `hy-accordion__content--${this.variant}`,
197
- this.variant,
198
- classContentIsOpen,
199
- ].join(' ');
200
- const classContentInnerWrapper = [
201
- 'hy-accordion__content--inner-wrapper',
202
- `hy-accordion__content--inner-wrapper--${this.headerstyle}`,
203
- `hy-accordion__content--inner-wrapper--${this.variant}`,
204
- ].join(' ');
205
- const titleAsId = this.accordiontitle.toLowerCase().replace(/\W/g, '-');
206
- const accordionItemHref = '#' + titleAsId + '--title';
207
- const ariaExpanded = this.showOpen ? 'true' : 'false';
208
- const ariaHidden = this.showOpen ? 'false' : 'true';
209
- const dataCollapsed = this.showOpen ? 'false' : 'true';
210
- return (index.h("div", { class: classAttributes }, index.h("div", { class: classInnerWrapper }, index.h("div", { class: classHeadingAttributes }, index.h("a", { href: accordionItemHref, class: "hy-accordion__link", tabindex: "-1" }, index.h("button", { "aria-expanded": ariaExpanded, "aria-controls": `${titleAsId}--content`, class: `hy-accordion__button hy-accordion__button--${this.headerstyle}`, id: `${titleAsId}--title` }, index.h("span", { class: "hy-accordion--heading__icon" }, index.h("hy-icon", { icon: 'hy-icon-caret-down', size: 16 })), index.h("span", null, this.accordiontitle)))), index.h("div", { "aria-labelledBy": `${titleAsId}--title`, class: classContentAttributes, id: `${titleAsId}--content`, role: "region", "aria-hidden": ariaHidden, "data-collapsed": dataCollapsed, style: { display: 'none' } }, index.h("div", { class: classContentInnerWrapper }, index.h("slot", null))))));
211
- }
212
- get el() { return index.getElement(this); }
213
- };
214
- AccordionItem.style = accordionItemCss;
215
-
216
- exports.hy_accordion_item = AccordionItem;
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-dd5e5023.js');
6
-
7
- const hyTabsItemCss = ":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}";
8
-
9
- const HyTabsItem = class {
10
- constructor(hostRef) {
11
- index.registerInstance(this, hostRef);
12
- }
13
- render() {
14
- const id = this.tabTitle.toLowerCase().replace(/\W/g, '-');
15
- return (index.h("div", { tabindex: "0", role: "tabpanel", id: `${id}-tab`, "aria-labelledby": id, hidden: true }, index.h("slot", null)));
16
- }
17
- };
18
- HyTabsItem.style = hyTabsItemCss;
19
-
20
- exports.hy_tabs_item = HyTabsItem;
@@ -1,308 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-dd5e5023.js');
6
-
7
- const hyTabsCss = ":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}.hy-tabs__container .hy-tablist-container{border-bottom:1px solid var(--grayscale-tabs-border);position:relative}.hy-tabs__container .hy-tab-scroll{background-color:rgba(255, 255, 255, 0.8);border:0;height:100%;margin:0;padding:0;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:4}.hy-tabs__container .hy-tab-scroll.is-hidden{display:none;visibility:hidden}.hy-tabs__container .hy-tab-scroll.is-disabled{background-color:var(--grayscale-medium)}.hy-tabs__container .hy-tab-scroll.is-disabled:hover{cursor:none}.hy-tabs__container .hy-tab-scroll:focus,.hy-tabs__container .hy-tab-scroll:hover{outline:none;cursor:pointer}.hy-tabs__container .hy-tab-scroll span{-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-black);border-radius:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;height:32px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:32px}.hy-tabs__container .hy-tab-scroll span svg{fill:var(--grayscale-white);height:16px;width:16px}.hy-tabs__container .hy-tab-scroll__left{left:0;padding-right:8px}.hy-tabs__container .hy-tab-scroll__left svg{-webkit-transform:translateX(-1px);transform:translateX(-1px)}.hy-tabs__container .hy-tab-scroll__right{padding-left:8px;right:0}.hy-tabs__container .hy-tab-scroll__right svg{-webkit-transform:translateX(1px);transform:translateX(1px)}.hy-tabs__container [role=tablist]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;margin:0 0 -0.1em;overflow:scroll;position:relative;scrollbar-width:none;white-space:nowrap}.hy-tabs__container [role=tablist]::-webkit-scrollbar{display:none}.hy-tabs__container [role=tablist] a{display:-webkit-box;display:-ms-flexbox;display:flex;max-width:47.56%;text-decoration:none;-ms-flex-negative:0;flex-shrink:0}.hy-tabs__container [role=tablist] a:not(:first-of-type){margin-left:6px}@media (min-width: 30rem){.hy-tabs__container [role=tablist] a{max-width:35.37%}}@media (min-width: 60rem){.hy-tabs__container [role=tablist] a{max-width:23.13%}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tablist] a{max-width:23.03%}}.hy-tabs__container [role=tab]{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;background-color:transparent;border:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:6px;padding:0}.hy-tabs__container [role=tab]>span{font-size:0.875rem;line-height:14px;font-weight:700;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:var(--grayscale-background-box);border:0;color:var(--link-blue);display:-webkit-box;display:-ms-flexbox;display:flex;font-family:var(--main-font-family);-webkit-hyphens:auto;-ms-hyphens:auto;hyphens:auto;letter-spacing:-0.5px;padding:8px 8px 7px;pointer-events:none;position:relative;text-align:left;white-space:normal;word-break:break-word;overflow-wrap:break-word;overflow-wrap:break-word}@media (min-width: 30rem){.hy-tabs__container [role=tab]>span{font-size:1rem;line-height:18px;padding:16px 12px 10px}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab]>span{font-size:1.125rem;line-height:20px;letter-spacing:-0.6px;padding:16px 16px 14px}}@supports (overflow-wrap: anywhere){.hy-tabs__container [role=tab]>span{overflow-wrap:anywhere}}@supports (overflow-wrap: anywhere){.hy-tabs__container [role=tab]>span{overflow-wrap:anywhere}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab].large{margin:0 12px 0 0}}.hy-tabs__container [role=tab][aria-selected=true]{border-bottom-width:0;border:1px solid var(--grayscale-dark);margin-bottom:0;z-index:3}.hy-tabs__container [role=tab][aria-selected=true]>span{background-color:var(--grayscale-white);color:var(--grayscale-black);padding-bottom:13px}@media (min-width: 30rem){.hy-tabs__container [role=tab][aria-selected=true]>span{padding-bottom:16px}}@media (min-width: 75.0625rem){.hy-tabs__container [role=tab][aria-selected=true]>span{padding-bottom:20px}}.hy-tabs__container [role=tab][aria-selected=true]>span:before{background-color:var(--grayscale-white);bottom:0;content:\"\";height:4px;left:0;position:absolute;right:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.hy-tabs__container [role=tab][aria-selected=true]>span:after{background-color:var(--grayscale-black);bottom:0;content:\"\";height:4px;left:8px;position:absolute;right:8px}.hy-tabs__container [role=tab]:hover{border-radius:0;color:inherit;cursor:pointer;text-decoration:none}.hy-tabs__container [role=tab]:hover span{background-color:var(--hover-gray);color:var(--brand-main-active)}.hy-tabs__container [role=tabpanel]{border:1px solid var(--grayscale-dark);padding:28px 12px;position:relative;z-index:2}@media (min-width: 30rem){.hy-tabs__container [role=tabpanel]{padding:38px 15px}}@media (min-width: 60rem){.hy-tabs__container [role=tabpanel]{padding:40px 20px}}.hy-tabs__container [role=tabpanel]:focus{outline:0}";
8
-
9
- // For easy reference
10
- let keys = {
11
- end: 35,
12
- home: 36,
13
- left: 37,
14
- up: 38,
15
- right: 39,
16
- down: 40,
17
- delete: 46,
18
- };
19
- // Add or substract depending on key pressed
20
- let direction = {
21
- 37: -1,
22
- 38: -1,
23
- 39: 1,
24
- 40: 1,
25
- };
26
- let checkTimeout;
27
- let focusTimeout;
28
- let scrollTimeout;
29
- const HyTabs = class {
30
- constructor(hostRef) {
31
- index.registerInstance(this, hostRef);
32
- this.tabListLabel = '';
33
- this.focusTimeoutCleared = true;
34
- this.headerstyle = 'common';
35
- }
36
- componentWillLoad() {
37
- const tabItems = this.el.querySelectorAll('hy-tabs-item');
38
- if (tabItems) {
39
- this.tabButtonTitles = Array.from(tabItems).map((panel) => {
40
- return {
41
- title: panel.getAttribute('tab-title'),
42
- id: panel.getAttribute('tab-title').toLowerCase().replace(/\W/g, '-'),
43
- };
44
- });
45
- }
46
- }
47
- componentDidLoad() {
48
- let hyMainDiv = this.el.closest('.hy-main');
49
- if (hyMainDiv) {
50
- if (!hyMainDiv.classList.contains('with-sidebar')) {
51
- this.headerstyle = 'large';
52
- }
53
- }
54
- const tabContainer = this.el.querySelector('.hy-tabs__container');
55
- if (tabContainer) {
56
- this.generateArrays(tabContainer);
57
- const leftButton = this.el.querySelectorAll('.hy-tab-scroll__left')[0];
58
- const rightButton = this.el.querySelectorAll('.hy-tab-scroll__right')[0];
59
- const tabList = this.tabList;
60
- this.checkScrollHidden(tabList, leftButton, rightButton);
61
- tabList.addEventListener('scroll', () => {
62
- scrollTimeout = setTimeout(() => {
63
- window.clearTimeout(scrollTimeout);
64
- this.checkScrollHidden(tabList, leftButton, rightButton);
65
- }, 250);
66
- }, false);
67
- if (tabList.offSetWidth <= document.body.scrollWidth) {
68
- leftButton.classList.add('is-hidden');
69
- rightButton.classList.add('is-hidden');
70
- }
71
- const oneTabWidth = 250;
72
- rightButton.addEventListener('click', (e) => {
73
- e.preventDefault();
74
- rightButton.classList.add('is-disabled');
75
- tabList.scrollBy({
76
- top: 0,
77
- left: +oneTabWidth,
78
- behavior: 'smooth',
79
- });
80
- checkTimeout = window.setTimeout(() => {
81
- window.clearTimeout(checkTimeout);
82
- this.checkScrollHidden(tabList, leftButton, rightButton);
83
- rightButton.classList.remove('is-disabled');
84
- }, 250);
85
- });
86
- leftButton.addEventListener('click', (e) => {
87
- e.preventDefault();
88
- leftButton.classList.add('is-disabled');
89
- tabList.scrollBy({
90
- top: 0,
91
- left: -oneTabWidth,
92
- behavior: 'smooth',
93
- });
94
- checkTimeout = window.setTimeout(() => {
95
- window.clearTimeout(checkTimeout);
96
- this.checkScrollHidden(tabList, leftButton, rightButton);
97
- leftButton.classList.remove('is-disabled');
98
- }, 250);
99
- });
100
- }
101
- }
102
- generateArrays(tc) {
103
- this.tabList = tc.querySelectorAll('[role="tablist"]')[0];
104
- this.tabButtons = tc.querySelectorAll('[role="tab"]');
105
- this.tabPanelsState = [tc.querySelectorAll('[role="tabpanel"]')];
106
- if (this.tabButtons.length > 0) {
107
- this.addListeners(this.tabButtons, 1);
108
- this.activateTab(this.tabButtons[0], true);
109
- }
110
- }
111
- addListeners(tabs, index) {
112
- if (tabs.length > 1) {
113
- for (let i = 0; i < tabs.length; ++i) {
114
- tabs[index].addEventListener('click', this.clickEventListener);
115
- tabs[index].addEventListener('keydown', this.keydownEventListener);
116
- //tabs[index].addEventListener('keyup', this.keyupEventListener);
117
- tabs[index].index = index;
118
- }
119
- }
120
- }
121
- checkScrollHidden(tablist, leftButton, rightButton) {
122
- if (tablist.scrollLeft === 0) {
123
- leftButton.classList.add('is-hidden');
124
- }
125
- else {
126
- leftButton.classList.remove('is-hidden');
127
- }
128
- if (tablist.scrollLeft + tablist.clientWidth >= tablist.scrollWidth - 1) {
129
- rightButton.classList.add('is-hidden');
130
- }
131
- else {
132
- rightButton.classList.remove('is-hidden');
133
- }
134
- }
135
- // When a tab is clicked, activateTab is fired to activate it
136
- clickEventListener(event) {
137
- if (event) {
138
- const target = event.target;
139
- const tabs = this.tabButtonTitles;
140
- if (tabs) {
141
- tabs.forEach((tab) => {
142
- const id = Object.values(tab)[1];
143
- if (id === target.id) {
144
- this.activateTab(target, true);
145
- }
146
- });
147
- event.stopPropagation();
148
- event.stopImmediatePropagation();
149
- }
150
- }
151
- }
152
- keydownEventListener(event) {
153
- const key = event.keyCode;
154
- const tabs = this.tabButtonTitles;
155
- switch (key) {
156
- case keys.end:
157
- event.preventDefault();
158
- // Activate last tab
159
- this.activateTab(tabs[tabs.length - 1], true);
160
- break;
161
- case keys.home:
162
- event.preventDefault();
163
- // Activate first tab
164
- this.activateTab(tabs[0], true);
165
- break;
166
- // Up and down are in keydown
167
- // because we need to prevent page scroll >:)
168
- case keys.up:
169
- case keys.down:
170
- if (this.focusTimeoutCleared) {
171
- this.determineOrientation(event);
172
- }
173
- break;
174
- }
175
- }
176
- keyupEventListener(event) {
177
- const key = event.keyCode;
178
- switch (key) {
179
- case keys.left:
180
- case keys.right:
181
- event.preventDefault();
182
- if (this.focusTimeoutCleared) {
183
- this.determineOrientation(event);
184
- }
185
- break;
186
- }
187
- event.stopPropagation();
188
- event.stopImmediatePropagation();
189
- }
190
- determineOrientation(event) {
191
- const leftButton = this.el.querySelectorAll('.hy-tab-scroll__left')[0];
192
- const rightButton = this.el.querySelectorAll('.hy-tab-scroll__right')[0];
193
- const tabList = this.tabList;
194
- this.checkScrollHidden(tabList, leftButton, rightButton);
195
- const key = event.keyCode;
196
- const vertical = tabList.getAttribute('aria-orientation') == 'vertical';
197
- let proceed = false;
198
- if (vertical) {
199
- if (key === keys.up || key === keys.down) {
200
- event.preventDefault();
201
- proceed = true;
202
- }
203
- }
204
- else {
205
- if (key === keys.left || key === keys.right) {
206
- proceed = true;
207
- }
208
- }
209
- if (proceed) {
210
- this.switchTabOnArrowPress(event);
211
- }
212
- }
213
- switchTabOnArrowPress(event) {
214
- const pressed = event.keyCode;
215
- if (direction[pressed]) {
216
- const target = event.target;
217
- const tabs = this.tabButtons;
218
- for (let i = 0; i < tabs.length; i++) {
219
- if (tabs[i].id === target.id) {
220
- if (i > 0) {
221
- if (direction[pressed] === -1) {
222
- tabs[i - 1].focus();
223
- this.focusEventHandler(tabs[i - 1]);
224
- break;
225
- }
226
- }
227
- if (i < tabs.length - 1) {
228
- if (direction[pressed] === 1) {
229
- tabs[i + 1].focus();
230
- this.focusEventHandler(tabs[i + 1]);
231
- break;
232
- }
233
- }
234
- }
235
- }
236
- }
237
- }
238
- // Activates any given tab panel
239
- activateTab(tab, setFocus) {
240
- setFocus = setFocus || true;
241
- // Deactivate all other tabs
242
- this.deactivateTabs(this.tabButtons);
243
- // Remove tabindex attribute
244
- tab.removeAttribute('tabindex');
245
- tab.setAttribute('aria-selected', 'true');
246
- const controls = tab.getAttribute('aria-controls');
247
- this.el.querySelector(`#${controls}`).removeAttribute('hidden');
248
- if (setFocus) {
249
- tab.focus();
250
- }
251
- }
252
- // Deactivate all tabs and tab panels
253
- deactivateTabs(tabs) {
254
- for (let t = 0; t < tabs.length; t++) {
255
- tabs[t].setAttribute('tabindex', '-1');
256
- tabs[t].setAttribute('aria-selected', 'false');
257
- tabs[t].removeEventListener('focus', this.focusEventHandler);
258
- }
259
- const panels = this.tabPanelsState[0];
260
- for (let p = 0; p < panels.length; p++) {
261
- panels[p].setAttribute('hidden', 'hidden');
262
- }
263
- }
264
- focusEventHandler(tab) {
265
- const target = tab;
266
- this.focusTimeoutCleared = false;
267
- focusTimeout = window.setTimeout(() => {
268
- window.clearTimeout(focusTimeout);
269
- this.focusTimeoutCleared = true;
270
- const focused = document.activeElement;
271
- if (target === focused) {
272
- this.activateTab(target, false);
273
- }
274
- }, 250);
275
- }
276
- render() {
277
- const classComponentAttributes = ['hy-tabs__container', `hy-tabs__container__${this.headerstyle}`].join(' ');
278
- const id = this.tabId.toLowerCase().replace(/\W/g, '-');
279
- if (window.location.hash) {
280
- const tabHash = window.location.hash.substring(1);
281
- const isUrlHashed = this.tabButtonTitles.some((tab) => tab['id'] === tabHash);
282
- if (isUrlHashed) {
283
- const hashElement = document.getElementById(tabHash);
284
- if (hashElement) {
285
- this.activateTab(hashElement, true);
286
- const hashElementRect = hashElement.getBoundingClientRect();
287
- window.scrollTo({ top: window.scrollY + hashElementRect.top - 200, behavior: 'smooth' });
288
- }
289
- }
290
- }
291
- return [
292
- index.h("hy-box", { pt: "1.25, 1.25, 1.5, 2.5" }),
293
- index.h("div", { id: id, class: classComponentAttributes }, index.h("div", { class: "hy-tablist-container" }, index.h("button", { tabindex: "-1", class: "hy-tab-scroll hy-tab-scroll__left is-hidden", "aria-hidden": "true" }, index.h("span", null, index.h("hy-icon", { icon: 'hy-icon-caret-left', size: 16 }))), index.h("div", { role: "tablist", "aria-label": this.tabListLabel }, this.tabButtonTitles &&
294
- this.tabButtonTitles.map((item) => {
295
- const title = Object.values(item)[0];
296
- const id = title.toLowerCase().replace(/\W/g, '-');
297
- const titleAsId = title.toLowerCase().replace(/\W/g, '-');
298
- const tabItemHref = '#' + titleAsId;
299
- return (index.h("a", { href: tabItemHref, tabindex: "-1" }, index.h("button", { "aria-selected": "false", "aria-controls": `${id}-tab`, class: this.headerstyle, role: "tab", id: id }, index.h("span", null, title))));
300
- })), index.h("button", { tabindex: "-1", class: "hy-tab-scroll hy-tab-scroll__right", "aria-hidden": "true" }, index.h("span", null, index.h("hy-icon", { icon: 'hy-icon-caret-right', size: 16 })))), index.h("slot", null)),
301
- index.h("hy-box", { mb: "1.75, 1.75, 2, 2.5" }),
302
- ];
303
- }
304
- get el() { return index.getElement(this); }
305
- };
306
- HyTabs.style = hyTabsCss;
307
-
308
- exports.hy_tabs = HyTabs;
@@ -1,25 +0,0 @@
1
- import { r as registerInstance, h, H as Host } from './index-083c8c8a.js';
2
-
3
- const accordionContainerCss = ":root{--brand-main:#0e688b;--brand-main-soft:#b1e7ff;--brand-main-bright:#48c5f8;--brand-main-light:#107eab;--brand-main-active:#005379;--brand-main-dark:#003146;--brand-main-nearly-black:#000222;--link-blue:#0479a4;--link-disabled:#767676;--grayscale-white:#fff;--grayscale-slightly-gray:#fefefe;--grayscale-light:#f8f8f8;--grayscale-medium:#d2d2d2;--grayscale-background-box:#f5f5f5;--grayscale-tabs-border:#e6e6e6;--grayscale-background-arrow:#dfdfdf;--grayscale-medium-dark:#979797;--grayscale-dark:#555555;--grayscale-dark-text:#222222;--grayscale-black:#000000;--additional-red-light:#e5053a;--additional-red-dark:#a31621;--additional-purple-light:#420039;--additional-yellow:#f9a21a;--additional-skyblue:#48c5f8;--additional-orange:#d14600;--additional-green-light:#96ba3c;--additional-green-dark:#006400;--hover-gray:#eaeaea}*{-webkit-box-sizing:border-box;box-sizing:border-box}:root{--gutter-mobile:16px;--gutter-narrow:24px;--gutter-medium:24px;--gutter-wide:24px;--gutter-extrawide:32px}:root{--breakpoint-extrawide:75.0625rem;--breakpoint-max-width:75.0625rem;--breakpoint-medium:48rem;--breakpoint-narrow:30rem;--breakpoint-wide:60rem}:host{display:block}.hy-accordion-container{width:100%}";
4
-
5
- const AccordionContainer = class {
6
- constructor(hostRef) {
7
- registerInstance(this, hostRef);
8
- }
9
- /*
10
- * data-allow-toggle
11
- Allow for each toggle to both open and close individually
12
-
13
- data-allow-multiple
14
- Allow for multiple accordion sections to be expanded at the same time.
15
- Assumes data-allow-toggle otherwise you would not be able to close any of the accordions
16
- */
17
- render() {
18
- const classAttributes = ['hy-accordion-container', 'js-hy-accordion'];
19
- const id = this.accordionid.toLowerCase().replace(/\W/g, '-');
20
- return (h(Host, null, h("div", { id: id, class: classAttributes.join(' '), "data-allow-multiple": "true", "data-allow-toggle": "true" }, h("slot", null)), h("hy-box", { mb: "1.75, 1.75, 2, 2.5" })));
21
- }
22
- };
23
- AccordionContainer.style = accordionContainerCss;
24
-
25
- export { AccordionContainer as hy_accordion_container };