@ebrains/react 0.6.0-alpha.0 → 0.7.0-alpha.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/color-primary-palette_6.entry.esm.js +106 -106
- package/correct-use-of-colors.entry.esm.js +33 -33
- package/eds-accordion_22.entry.esm.js +269 -0
- package/eds-app-root.entry.esm.js +53 -0
- package/eds-avatar_4.entry.esm.js +185 -0
- package/eds-breadcrumb.entry.esm.js +4 -15
- package/eds-card-generic.entry.esm.js +114 -0
- package/eds-card-section.entry.esm.js +56 -0
- package/eds-components-section.entry.esm.js +1 -1
- package/eds-cookies-preference.entry.esm.js +2 -2
- package/eds-docs-palettes.entry.esm.js +1 -1
- package/eds-docs-tokens.entry.esm.js +1 -1
- package/{eds-dropdown_2.entry.esm.js → eds-dropdown.entry.esm.js} +19 -98
- package/eds-feedback.entry.esm.js +82 -0
- package/eds-form.entry.esm.js +253 -253
- package/eds-frame.entry.esm.js +34 -33
- package/eds-icon-arrow-diagonal.entry.esm.js +1 -1
- package/eds-icon-arrow-right.entry.esm.js +1 -1
- package/eds-icon-bluesky.entry.esm.js +1 -1
- package/eds-icon-chevron-down.entry.esm.js +1 -1
- package/eds-icon-chevron-left.entry.esm.js +1 -1
- package/eds-icon-chevron-right.entry.esm.js +1 -1
- package/eds-icon-chevron-up.entry.esm.js +1 -1
- package/eds-icon-close.entry.esm.js +1 -1
- package/eds-icon-copy.entry.esm.js +1 -1
- package/eds-icon-eu.entry.esm.js +1 -1
- package/eds-icon-facebook.entry.esm.js +1 -1
- package/eds-icon-gitlab.entry.esm.js +1 -1
- package/eds-icon-linkedin.entry.esm.js +1 -1
- package/eds-icon-loader.entry.esm.js +1 -1
- package/eds-icon-mastodon.entry.esm.js +1 -1
- package/eds-icon-menu.entry.esm.js +1 -1
- package/eds-icon-more.entry.esm.js +1 -1
- package/eds-icon-search.entry.esm.js +1 -1
- package/eds-icon-star.entry.esm.js +21 -0
- package/eds-icon-success.entry.esm.js +1 -1
- package/eds-icon-thumbs-down.entry.esm.js +21 -0
- package/eds-icon-thumbs-up.entry.esm.js +21 -0
- package/eds-icon-twitter.entry.esm.js +1 -1
- package/eds-icon-user.entry.esm.js +1 -1
- package/eds-icon-youtube.entry.esm.js +1 -1
- package/{keycloak-d502ec16.esm.js → eds-login_2.entry.esm.js} +172 -1
- package/eds-logo-variations.entry.esm.js +1 -1
- package/eds-modal.entry.esm.js +22 -9
- package/eds-progress-bar.entry.esm.js +2 -2
- package/eds-rating.entry.esm.js +37 -37
- package/eds-section-core_2.entry.esm.js +5 -5
- package/eds-spinner.entry.esm.js +67 -0
- package/eds-steps.entry.esm.js +8 -17
- package/eds-svg-repository.entry.esm.js +8 -2
- package/eds-switch.entry.esm.js +5 -5
- package/eds-tabs.entry.esm.js +14 -26
- package/eds-timeline.entry.esm.js +6 -23
- package/eds-toast-manager.entry.esm.js +62 -0
- package/eds-toast.entry.esm.js +92 -0
- package/eds-tooltip.entry.esm.js +3 -3
- package/eds-trl.entry.esm.js +2 -2
- package/eds-user.entry.esm.js +64 -87
- package/eds-vertical-stepper.entry.esm.js +5 -5
- package/formUtils-ac68474d.esm.js +247 -0
- package/incorrect-use-of-colors.entry.esm.js +7 -7
- package/index.esm.js +1 -1
- package/index.esm2.js +46 -46
- package/logo-space.entry.esm.js +4 -4
- package/logo-variations-horizontal_2.entry.esm.js +26 -26
- package/logo-wrong-usage.entry.esm.js +37 -37
- package/package.json +1 -1
- package/sharedUtils-a550989c.esm.js +17 -0
- package/src/components.d.ts +4 -1
- package/star-0da9b5e9.esm.js +5 -0
- package/thumbs-down-a18fd049.esm.js +5 -0
- package/thumbs-up-c19a71bc.esm.js +6 -0
- package/token-list_3.entry.esm.js +5 -5
- package/token-ratios.entry.esm.js +3 -3
- package/token-spacing.entry.esm.js +26 -26
- package/token-typography.entry.esm.js +2 -2
- package/eds-accordion_13.entry.esm.js +0 -1064
- package/eds-block-break.entry.esm.js +0 -22
- package/eds-footer.entry.esm.js +0 -102
- package/eds-fullscreen-menu.entry.esm.js +0 -143
- package/eds-header.entry.esm.js +0 -130
- package/eds-input_7.entry.esm.js +0 -529
- package/eds-link.entry.esm.js +0 -204
- package/eds-login.entry.esm.js +0 -97
- package/eds-logo.entry.esm.js +0 -87
- package/eds-navigator.entry.esm.js +0 -72
- package/eds-pagination_2.entry.esm.js +0 -472
- package/eds-social-networks.entry.esm.js +0 -74
- package/eds-tab.entry.esm.js +0 -41
- package/eds-tabs-content.entry.esm.js +0 -145
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index.esm2.js';
|
|
2
|
-
import 'react';
|
|
3
|
-
import 'react/jsx-runtime';
|
|
4
|
-
import 'react-dom';
|
|
5
|
-
|
|
6
|
-
const edsBlockBreakCss = ".border-soft{border-color:rgba(0, 0, 0, .15)}.border-softer{border-color:rgba(0, 0, 0, .1)}.border-softest{border-color:rgba(0, 0, 0, .05)}.my-16{margin-top:1rem;margin-bottom:1rem}.my-20{margin-top:1.25rem;margin-bottom:1.25rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.w-full{width:100%}.border-t-2{border-top-width:2px}";
|
|
7
|
-
const EdsBlockBreakStyle0 = edsBlockBreakCss;
|
|
8
|
-
const EdsBlockBreak = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
registerInstance(this, hostRef);
|
|
11
|
-
this.extraClass = '';
|
|
12
|
-
}
|
|
13
|
-
render() {
|
|
14
|
-
return h("hr", {
|
|
15
|
-
key: '8cb39dda5d7f909b459390fe7e3f86dfd147ba98',
|
|
16
|
-
class: `border-softer my-20 inline-block w-full border-t-2 ${this.extraClass}`
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
EdsBlockBreak.style = EdsBlockBreakStyle0;
|
|
21
|
-
|
|
22
|
-
export { EdsBlockBreak as eds_block_break };
|
package/eds-footer.entry.esm.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index.esm2.js';
|
|
2
|
-
import 'react';
|
|
3
|
-
import 'react/jsx-runtime';
|
|
4
|
-
import 'react-dom';
|
|
5
|
-
|
|
6
|
-
const edsFooterCss = "";
|
|
7
|
-
const EdsFooterStyle0 = edsFooterCss;
|
|
8
|
-
const EdsFooter = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
registerInstance(this, hostRef);
|
|
11
|
-
/**
|
|
12
|
-
* Scrolls the page smoothly back to the top.
|
|
13
|
-
* Called when the "Back to top" button is clicked.
|
|
14
|
-
* @private
|
|
15
|
-
*/
|
|
16
|
-
this.backToTop = () => {
|
|
17
|
-
window.scrollTo({
|
|
18
|
-
top: 0,
|
|
19
|
-
behavior: 'smooth'
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
this.extraClass = '';
|
|
23
|
-
this.social = false;
|
|
24
|
-
this.enableScrollTop = false;
|
|
25
|
-
this.fundedBy = 'EBRAINS is funded by the Horizon Europe Framework Programme.';
|
|
26
|
-
this.rightsReserved = `${new Date().getFullYear()} EBRAINS. All rights reserved.`;
|
|
27
|
-
this.showMatomoNotice = false;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Renders the footer component with optional sections and elements,
|
|
31
|
-
* including social network links, a Horizon Europe funding acknowledgment, and
|
|
32
|
-
* legal links such as "Cookies Preferences" and copyright information.
|
|
33
|
-
*
|
|
34
|
-
* @returns {JSX.Element} The rendered JSX for the footer component.
|
|
35
|
-
*/
|
|
36
|
-
render() {
|
|
37
|
-
return h("footer", {
|
|
38
|
-
key: '9a7256325386a5072e9f1e391d838bb38458d99f',
|
|
39
|
-
class: `${this.extraClass} pb-banner`
|
|
40
|
-
}, this.social ? h("div", {
|
|
41
|
-
class: "border-softest border-t-2 pt-20 pb-28 md:pt-28"
|
|
42
|
-
}, h("div", {
|
|
43
|
-
class: "container pb-20 xl:pb-40 "
|
|
44
|
-
}, h("div", {
|
|
45
|
-
class: "grid-layout"
|
|
46
|
-
}, h("div", {
|
|
47
|
-
class: "grid-col-span-12 lg:grid-col-span-5"
|
|
48
|
-
}, h("eds-social-networks", {
|
|
49
|
-
class: "mt-28"
|
|
50
|
-
})), h("nav", {
|
|
51
|
-
"aria-label": "Secondary nav",
|
|
52
|
-
class: "grid-col-span-12 lg:grid-col-span-6 lg:grid-col-start-7 grid-layout mt-28 gap-y-12 lg:mt-0"
|
|
53
|
-
})))) : null, h("div", {
|
|
54
|
-
key: '747d4708e90c13fe9e5aa234eaba182df100fca9',
|
|
55
|
-
class: `border-softest ${this.social ? 'border-t-2' : ''} pt-20 pb-28 md:pt-28`
|
|
56
|
-
}, h("div", {
|
|
57
|
-
key: '3fecf340c536bb64aa98fd04c26c5b47d146630b',
|
|
58
|
-
class: "container flex flex-wrap items-center gap-20 lg:flex-nowrap"
|
|
59
|
-
}, h("div", {
|
|
60
|
-
key: '6b7f167ac50c6aef9c76e56634a7228585c211db',
|
|
61
|
-
class: "flex items-center gap-x-12"
|
|
62
|
-
}, h("a", {
|
|
63
|
-
key: '8e496d31c4b883a867b5f2c6a5fab8a60899470a',
|
|
64
|
-
target: "_blank",
|
|
65
|
-
rel: "noopener noreferrer",
|
|
66
|
-
class: "effect-focus focus-visible:rounded-xs flex w-[54px] ml-0",
|
|
67
|
-
href: "https://research-and-innovation.ec.europa.eu/funding/funding-opportunities/funding-programmes-and-open-calls/horizon-2020_en",
|
|
68
|
-
"aria-label": "Learn about Horizon 2020 funding"
|
|
69
|
-
}, h("eds-img", {
|
|
70
|
-
key: 'b3cdfc2cc428951d58fe5ae4f1fe1992fbded7f7',
|
|
71
|
-
width: 54,
|
|
72
|
-
height: 41,
|
|
73
|
-
src: "https://www.ebrains.eu/flags/4x3/eu.svg",
|
|
74
|
-
alt: "European Union Flag"
|
|
75
|
-
}))), h("div", {
|
|
76
|
-
key: '8c3a9f55f07b44ad633b11a1d4faa8396a5ae30a',
|
|
77
|
-
class: "order-last w-full lg:order-none lg:w-auto"
|
|
78
|
-
}, h("div", {
|
|
79
|
-
key: 'c268c107f6be692756d15a8f096e1a86df7bb62a',
|
|
80
|
-
class: "f-ui-04 text-light"
|
|
81
|
-
}, h("p", {
|
|
82
|
-
key: '528014cafcd1b498efa01482934b54c44dd03bd6'
|
|
83
|
-
}, this.fundedBy), h("div", {
|
|
84
|
-
key: 'ee5baffcf8f801b7480c8158b30777329699f57f',
|
|
85
|
-
class: "mt-4 flex flex-wrap gap-12 lg:flex-nowrap inline-block"
|
|
86
|
-
}, h("span", {
|
|
87
|
-
key: '79e600b799480904f47261be78262f344ada967b',
|
|
88
|
-
class: "effect-focus !no-underline decoration-2 underline-offset-4 hover:!underline"
|
|
89
|
-
}, "\u00A9 ", this.rightsReserved)))), h("div", {
|
|
90
|
-
key: '6bde5399c1044e0d85b71c9fab7e3e4c8b93e224',
|
|
91
|
-
class: "ml-auto pl-12"
|
|
92
|
-
}, this.enableScrollTop ? h("eds-button", {
|
|
93
|
-
"aria-label": "Back to top",
|
|
94
|
-
intent: "ghostInverse",
|
|
95
|
-
icon: "chevron-up",
|
|
96
|
-
onClick: this.backToTop
|
|
97
|
-
}) : null))));
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
EdsFooter.style = EdsFooterStyle0;
|
|
101
|
-
|
|
102
|
-
export { EdsFooter as eds_footer };
|
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h } from './index.esm2.js';
|
|
2
|
-
import 'react';
|
|
3
|
-
import 'react/jsx-runtime';
|
|
4
|
-
import 'react-dom';
|
|
5
|
-
|
|
6
|
-
const edsFullscreenMenuCss = "";
|
|
7
|
-
const EdsFullscreenMenuStyle0 = edsFullscreenMenuCss;
|
|
8
|
-
const EdsFullscreenMenu = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
registerInstance(this, hostRef);
|
|
11
|
-
this.menuClose = createEvent(this, "menuClose", 7);
|
|
12
|
-
this.links = undefined;
|
|
13
|
-
this.menuLinks = undefined;
|
|
14
|
-
this.homeUrl = '/';
|
|
15
|
-
this.inverseHeader = false;
|
|
16
|
-
this.isMenuOpen = false;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Listens for the toggleMenu event to open or close the menu.
|
|
20
|
-
* This event is emitted by the eds-header component.
|
|
21
|
-
*/
|
|
22
|
-
handleToggleMenu(event) {
|
|
23
|
-
this.isMenuOpen = event.detail; // Set isMenuOpen based on the event payload
|
|
24
|
-
}
|
|
25
|
-
/** Opens the menu */
|
|
26
|
-
openMenu() {
|
|
27
|
-
this.isMenuOpen = true;
|
|
28
|
-
}
|
|
29
|
-
/** Closes the menu */
|
|
30
|
-
closeMenu() {
|
|
31
|
-
this.isMenuOpen = false;
|
|
32
|
-
this.menuClose.emit();
|
|
33
|
-
}
|
|
34
|
-
// Lifecycle method to add the resize event listener when component loads
|
|
35
|
-
componentDidLoad() {
|
|
36
|
-
window.addEventListener('resize', this.handleResize.bind(this));
|
|
37
|
-
}
|
|
38
|
-
// Lifecycle method to remove the resize event listener when component unloads
|
|
39
|
-
disconnectedCallback() {
|
|
40
|
-
window.removeEventListener('resize', this.handleResize.bind(this));
|
|
41
|
-
}
|
|
42
|
-
// Function to close the menu if screen width is larger than a defined breakpoint (1024px)
|
|
43
|
-
handleResize() {
|
|
44
|
-
if (window.innerWidth >= 1024) {
|
|
45
|
-
this.isMenuOpen = false;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Parses the `links` prop into an array of link objects.
|
|
50
|
-
* Returns an empty array if parsing fails or if `links` is not a valid JSON string or object.
|
|
51
|
-
*
|
|
52
|
-
* @returns {any[]} Array of parsed link objects
|
|
53
|
-
*/
|
|
54
|
-
get parsedLinks() {
|
|
55
|
-
if (typeof this.links === 'object') {
|
|
56
|
-
return this.links;
|
|
57
|
-
} else if (typeof this.links === 'string') {
|
|
58
|
-
try {
|
|
59
|
-
return JSON.parse(this.links);
|
|
60
|
-
} catch (e) {
|
|
61
|
-
// eslint-disable-next-line
|
|
62
|
-
console.error('Error parsing links prop:', e);
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return [];
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Parses the `menuLinks` prop into an array of link objects.
|
|
70
|
-
* Returns an empty array if parsing fails or if `menuLinks` is not a valid JSON string or object.
|
|
71
|
-
*
|
|
72
|
-
* @returns {any[]} Array of parsed menu link objects
|
|
73
|
-
*/
|
|
74
|
-
get parsedMenuLinks() {
|
|
75
|
-
if (typeof this.menuLinks === 'object') {
|
|
76
|
-
return this.menuLinks;
|
|
77
|
-
} else if (typeof this.menuLinks === 'string') {
|
|
78
|
-
try {
|
|
79
|
-
return JSON.parse(this.menuLinks);
|
|
80
|
-
} catch (e) {
|
|
81
|
-
// eslint-disable-next-line
|
|
82
|
-
console.error('Error parsing menuLinks prop:', e);
|
|
83
|
-
return [];
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return [];
|
|
87
|
-
}
|
|
88
|
-
render() {
|
|
89
|
-
return this.isMenuOpen ? h("div", {
|
|
90
|
-
class: "eds-full-screen bg-default fixed inset-0 z-[999999] overflow-y-scroll"
|
|
91
|
-
}, h("div", {
|
|
92
|
-
class: "flex min-h-full flex-col"
|
|
93
|
-
}, h("div", {
|
|
94
|
-
class: `bg-default w-full sticky top-0 ${this.inverseHeader ? 'bg-strongest' : 'bg-default'}`
|
|
95
|
-
}, h("div", {
|
|
96
|
-
class: "mx-auto flex items-center justify-between"
|
|
97
|
-
}, h("div", {
|
|
98
|
-
class: "mr-auto w-[200px] h-[85px]"
|
|
99
|
-
}, h("eds-logo", {
|
|
100
|
-
type: this.inverseHeader ? 'color-white' : 'color',
|
|
101
|
-
href: this.homeUrl
|
|
102
|
-
})), h("div", {
|
|
103
|
-
class: "px-16"
|
|
104
|
-
}, h("eds-button", {
|
|
105
|
-
"aria-label": "Close menu",
|
|
106
|
-
intent: "ghostInverse",
|
|
107
|
-
icon: "close",
|
|
108
|
-
onClick: () => this.closeMenu()
|
|
109
|
-
})))), h("div", {
|
|
110
|
-
class: "py-16 px-16"
|
|
111
|
-
}, h("nav", {
|
|
112
|
-
class: "mt-28 flex flex-col gap-y-8"
|
|
113
|
-
}, this.parsedLinks.map((link, index) => h("eds-link", {
|
|
114
|
-
label: link.label,
|
|
115
|
-
key: index,
|
|
116
|
-
url: link.url,
|
|
117
|
-
intent: "tertiary",
|
|
118
|
-
size: "large",
|
|
119
|
-
class: "effect-color effect-focus rounded-xs f-heading-02 hover:text-lighter w-fit",
|
|
120
|
-
onClick: () => this.closeMenu(),
|
|
121
|
-
icon: "arrow-right"
|
|
122
|
-
}))), h("eds-block-break", null), h("nav", {
|
|
123
|
-
class: "mt-28 flex flex-col gap-y-8"
|
|
124
|
-
}, this.parsedMenuLinks.map((link, index) => h("eds-link", {
|
|
125
|
-
label: link.label,
|
|
126
|
-
key: index,
|
|
127
|
-
url: link.url,
|
|
128
|
-
intent: "tertiary",
|
|
129
|
-
size: "large",
|
|
130
|
-
class: "effect-color effect-focus rounded-xs f-heading-02 hover:text-lighter w-fit",
|
|
131
|
-
onClick: () => this.closeMenu(),
|
|
132
|
-
icon: "chevron-right"
|
|
133
|
-
})))), h("div", {
|
|
134
|
-
class: "mt-auto"
|
|
135
|
-
}, h("eds-footer", {
|
|
136
|
-
social: true,
|
|
137
|
-
"extra-class": "bg-darker"
|
|
138
|
-
})))) : null;
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
EdsFullscreenMenu.style = EdsFullscreenMenuStyle0;
|
|
142
|
-
|
|
143
|
-
export { EdsFullscreenMenu as eds_fullscreen_menu };
|
package/eds-header.entry.esm.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, g as getElement } from './index.esm2.js';
|
|
2
|
-
import 'react';
|
|
3
|
-
import 'react/jsx-runtime';
|
|
4
|
-
import 'react-dom';
|
|
5
|
-
|
|
6
|
-
const edsHeaderCss = "";
|
|
7
|
-
const EdsHeaderStyle0 = edsHeaderCss;
|
|
8
|
-
const EdsHeader = class {
|
|
9
|
-
constructor(hostRef) {
|
|
10
|
-
registerInstance(this, hostRef);
|
|
11
|
-
this.toggleMenu = createEvent(this, "toggleMenu", 7);
|
|
12
|
-
this.homeUrl = '/';
|
|
13
|
-
this.links = undefined;
|
|
14
|
-
this.inverseHeader = false;
|
|
15
|
-
this.menuEnabled = false;
|
|
16
|
-
this.isMenuOpen = false;
|
|
17
|
-
this.isUserMenuOpen = false;
|
|
18
|
-
this.isAuthenticated = false;
|
|
19
|
-
}
|
|
20
|
-
onAuthStatusChanged(event) {
|
|
21
|
-
var _a;
|
|
22
|
-
this.isAuthenticated = (_a = event.detail) === null || _a === void 0 ? void 0 : _a.authenticated;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Lifecycle method that runs when the component has fully loaded.
|
|
26
|
-
* It emits a custom event for each `eds-link` element contained within the breadcrumb.
|
|
27
|
-
*/
|
|
28
|
-
componentDidLoad() {
|
|
29
|
-
// Emit context for each eds-link element after the component is fully loaded
|
|
30
|
-
const links = this.hostEl.querySelectorAll('eds-link');
|
|
31
|
-
links.forEach(link => {
|
|
32
|
-
this.emitContext(link);
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Emits a custom event called `parentContext` for a given link element.
|
|
37
|
-
* This event provides context information about the breadcrumb component.
|
|
38
|
-
*
|
|
39
|
-
* @param linkElement - The link element to which the event will be dispatched.
|
|
40
|
-
*/
|
|
41
|
-
emitContext(linkElement) {
|
|
42
|
-
const event = new CustomEvent('parentContext', {
|
|
43
|
-
detail: {
|
|
44
|
-
componentName: this.hostEl.tagName.toLowerCase(),
|
|
45
|
-
identifier: null
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
linkElement.dispatchEvent(event);
|
|
49
|
-
}
|
|
50
|
-
/** Emits an event to open or close the menu */
|
|
51
|
-
handleToggleMenu() {
|
|
52
|
-
this.toggleMenu.emit(!this.isMenuOpen);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Toggles the visibility of the user menu.
|
|
56
|
-
* Opens the user menu if closed, and closes it if open.
|
|
57
|
-
*/
|
|
58
|
-
toggleUserMenu() {
|
|
59
|
-
this.isUserMenuOpen = !this.isUserMenuOpen;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Parses the `links` prop into an array of link objects.
|
|
63
|
-
* Returns an empty array if parsing fails or if `links` is not a valid JSON string or object.
|
|
64
|
-
*
|
|
65
|
-
* @returns {any[]} Array of parsed link objects
|
|
66
|
-
*/
|
|
67
|
-
get parsedLinks() {
|
|
68
|
-
// If it's already an array, return it immediately.
|
|
69
|
-
if (Array.isArray(this.links)) {
|
|
70
|
-
return this.links;
|
|
71
|
-
}
|
|
72
|
-
if (typeof this.links === 'object') {
|
|
73
|
-
return this.links;
|
|
74
|
-
} else if (typeof this.links === 'string') {
|
|
75
|
-
try {
|
|
76
|
-
return JSON.parse(this.links);
|
|
77
|
-
} catch (e) {
|
|
78
|
-
// eslint-disable-next-line
|
|
79
|
-
console.error('Error parsing links prop:', e);
|
|
80
|
-
return [];
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return [];
|
|
84
|
-
}
|
|
85
|
-
render() {
|
|
86
|
-
return h("header", {
|
|
87
|
-
key: '8447435914bd3cdf61ce03f2a6bc646fd6b39b01',
|
|
88
|
-
class: `flex items-center justify-between relative z-10
|
|
89
|
-
${this.inverseHeader ? 'text-inverse bg-strongest' : 'text-default bg-dark'}`
|
|
90
|
-
}, h("div", {
|
|
91
|
-
key: '2a7a525d9ec5f86437212ab5b6c60c901e1f69a8',
|
|
92
|
-
class: "mr-auto w-[200px] h-[85px]"
|
|
93
|
-
}, h("eds-logo", {
|
|
94
|
-
key: '29381ef7d9f600690a373a09be30b2dea6d5b936',
|
|
95
|
-
type: this.inverseHeader ? 'color-white' : 'color',
|
|
96
|
-
href: this.homeUrl
|
|
97
|
-
})), this.parsedLinks && h("nav", {
|
|
98
|
-
key: '8085c6dfa6dadce3d7eefb45505e9c9404fd422d',
|
|
99
|
-
class: "absolute left-1/2 top-1/2 grow -translate-x-1/2 -translate-y-1/2 justify-center hidden md:flex"
|
|
100
|
-
}, h("ul", {
|
|
101
|
-
key: 'cb8442be1efc058dc46c283c85e50c58dd627f3e',
|
|
102
|
-
class: "flex gap-x-2"
|
|
103
|
-
}, this.parsedLinks.map(link => h("eds-link", {
|
|
104
|
-
label: link.label,
|
|
105
|
-
"aria-label": link.label,
|
|
106
|
-
url: link.url,
|
|
107
|
-
intent: "ghost",
|
|
108
|
-
size: "small",
|
|
109
|
-
icon: link.icon,
|
|
110
|
-
external: link.external,
|
|
111
|
-
"extra-class": "after:effect-opacity aria-current-page:bg-darker whitespace-nowrap !text-current after:!border-transparent after:opacity-0 hover:after:!border-transparent hover:after:opacity-100"
|
|
112
|
-
})))), h("slot", {
|
|
113
|
-
key: '5d39561f4f43641640cc3f5d01edd35ebde794e3'
|
|
114
|
-
}), this.menuEnabled ? h("div", {
|
|
115
|
-
class: "md:hidden flex overflow-hidden px-16"
|
|
116
|
-
}, h("eds-button", {
|
|
117
|
-
"aria-label": "Menu",
|
|
118
|
-
intent: "ghostInverse",
|
|
119
|
-
icon: "menu",
|
|
120
|
-
size: "small",
|
|
121
|
-
onClick: () => this.handleToggleMenu()
|
|
122
|
-
})) : null);
|
|
123
|
-
}
|
|
124
|
-
get hostEl() {
|
|
125
|
-
return getElement(this);
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
EdsHeader.style = EdsHeaderStyle0;
|
|
129
|
-
|
|
130
|
-
export { EdsHeader as eds_header };
|