@ebrains/react 0.5.0-alpha.0 → 0.6.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/{analytics-1cde8e4a.esm.js → analytics-44b1416b.esm.js} +9 -1
- package/eds-accordion_13.entry.esm.js +1064 -0
- package/eds-alert.entry.esm.js +104 -0
- package/eds-block-break.entry.esm.js +22 -0
- package/eds-breadcrumb.entry.esm.js +182 -0
- package/eds-card-project.entry.esm.js +1 -1
- package/eds-card-tool.entry.esm.js +1 -1
- package/eds-cookies-preference.entry.esm.js +47 -0
- package/eds-dropdown_2.entry.esm.js +12 -12
- package/eds-footer.entry.esm.js +102 -0
- package/eds-form.entry.esm.js +1 -1
- package/eds-fullscreen-menu.entry.esm.js +143 -0
- package/eds-header.entry.esm.js +130 -0
- package/eds-link.entry.esm.js +204 -0
- package/eds-login.entry.esm.js +2 -2
- package/eds-logo.entry.esm.js +87 -0
- package/eds-modal.entry.esm.js +1 -1
- package/eds-pagination_2.entry.esm.js +1 -1
- package/eds-rating.entry.esm.js +79 -0
- package/eds-social-networks.entry.esm.js +74 -0
- package/eds-steps.entry.esm.js +98 -0
- package/eds-switch.entry.esm.js +58 -0
- package/eds-tabs-content.entry.esm.js +5 -5
- package/eds-tabs.entry.esm.js +4 -4
- package/eds-tooltip.entry.esm.js +1 -1
- package/eds-user.entry.esm.js +1 -1
- package/index.esm2.js +41 -17
- package/package.json +1 -1
- package/eds-accordion.entry.esm.js +0 -126
- package/eds-alert_17.entry.esm.js +0 -187
- package/eds-avatar_4.entry.esm.js +0 -193
- package/eds-card-generic.entry.esm.js +0 -124
- package/eds-card-section.entry.esm.js +0 -70
- package/eds-matomo-notice.entry.esm.js +0 -128
package/eds-login.entry.esm.js
CHANGED
|
@@ -81,10 +81,10 @@ const EdsLogin = class {
|
|
|
81
81
|
}
|
|
82
82
|
render() {
|
|
83
83
|
return h("div", {
|
|
84
|
-
key: '
|
|
84
|
+
key: '62768f8a6cc8ac16b13f9b2bb9cf5835f7f63844',
|
|
85
85
|
class: "block"
|
|
86
86
|
}, !this.authenticated && h("eds-button", {
|
|
87
|
-
key: '
|
|
87
|
+
key: '31e341d628242fed472f673c0fe8346c7871515d',
|
|
88
88
|
label: "Login",
|
|
89
89
|
intent: "primary",
|
|
90
90
|
"extra-class": "text-default",
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { r as registerInstance, h, g as getElement } from './index.esm2.js';
|
|
2
|
+
import { h as hLogoColor } from './logo-color-7f1fd803.esm.js';
|
|
3
|
+
import { h as hLogoBlack, a as hLogoColorWhite, b as hLogoWhite, c as hLogoWhiteNoBg, v as vLogoColor, d as vLogoBlack, e as vLogoColorWhite, f as vLogoWhite, g as vLogoWhiteNoBg } from './logo-white-no-bg-f382f86f.esm.js';
|
|
4
|
+
import { s as sendAnalytics } from './analytics-44b1416b.esm.js';
|
|
5
|
+
import 'react';
|
|
6
|
+
import 'react/jsx-runtime';
|
|
7
|
+
import 'react-dom';
|
|
8
|
+
|
|
9
|
+
const edsLogoCss = ".w-\\[130px\\]{width:130px}.mr-auto{margin-right:auto}.text-current{color:currentColor}.text-default{color:var(--black)}.text-inverse{color:var(--white)}.h-full{height:100%}.w-full{width:100%}.flex{display:flex}.inline-flex{display:inline-flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}@media (min-width: 900px){.lg\\:w-\\[150px\\]{width:150px}}";
|
|
10
|
+
const EdsLogoStyle0 = edsLogoCss;
|
|
11
|
+
const EdsLogo = class {
|
|
12
|
+
constructor(hostRef) {
|
|
13
|
+
registerInstance(this, hostRef);
|
|
14
|
+
this.href = '/';
|
|
15
|
+
this.orientation = 'horizontal';
|
|
16
|
+
this.type = undefined;
|
|
17
|
+
this.label = 'Home';
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Handles the click event on the logo link.
|
|
21
|
+
* Emits a `matomoEvent` for analytics tracking with details about the interaction.
|
|
22
|
+
* - `category`: Component type (e.g., "ui-component").
|
|
23
|
+
* - `tag`: The HTML tag name of the component.
|
|
24
|
+
* - `name`: Event name, set as "logo".
|
|
25
|
+
* - `action`: The action, set as "click".
|
|
26
|
+
*/
|
|
27
|
+
handleClick() {
|
|
28
|
+
sendAnalytics({
|
|
29
|
+
category: 'ui-component',
|
|
30
|
+
tag: this.el.tagName.toLowerCase(),
|
|
31
|
+
name: 'logo',
|
|
32
|
+
action: 'click'
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Determines the appropriate SVG content based on the `orientation` and `type` props.
|
|
37
|
+
*/
|
|
38
|
+
getLogo() {
|
|
39
|
+
const logos = {
|
|
40
|
+
horizontal: {
|
|
41
|
+
color: hLogoColor,
|
|
42
|
+
black: hLogoBlack,
|
|
43
|
+
'color-white': hLogoColorWhite,
|
|
44
|
+
white: hLogoWhite,
|
|
45
|
+
'no-bg': hLogoWhiteNoBg
|
|
46
|
+
},
|
|
47
|
+
vertical: {
|
|
48
|
+
color: vLogoColor,
|
|
49
|
+
black: vLogoBlack,
|
|
50
|
+
'color-white': vLogoColorWhite,
|
|
51
|
+
white: vLogoWhite,
|
|
52
|
+
'no-bg': vLogoWhiteNoBg
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
// Validate the orientation and type
|
|
56
|
+
const validOrientation = logos[this.orientation];
|
|
57
|
+
if (!validOrientation) {
|
|
58
|
+
//console.error(`Invalid orientation "${this.orientation}". Falling back to "horizontal".`);
|
|
59
|
+
return hLogoColor; // Default fallback logo
|
|
60
|
+
}
|
|
61
|
+
const validLogo = validOrientation[this.type];
|
|
62
|
+
if (!validLogo) {
|
|
63
|
+
//console.error(`Invalid type "${this.type}" for orientation "${this.orientation}". Falling back to "color".`);
|
|
64
|
+
return validOrientation['color']; // Fallback to color logo
|
|
65
|
+
}
|
|
66
|
+
return validLogo;
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
const logoContent = this.getLogo();
|
|
70
|
+
return h("a", {
|
|
71
|
+
key: 'ee8de4071b0137020341982b4c5cb2c938f1c4df',
|
|
72
|
+
href: this.href,
|
|
73
|
+
onClick: () => this.handleClick(),
|
|
74
|
+
class: "eds-logo-wrapper",
|
|
75
|
+
"aria-label": this.label
|
|
76
|
+
}, h("div", {
|
|
77
|
+
key: '1eb620afbcc5a2a5c6914cc1c91a45ca62d0068c',
|
|
78
|
+
innerHTML: logoContent
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
get el() {
|
|
82
|
+
return getElement(this);
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
EdsLogo.style = EdsLogoStyle0;
|
|
86
|
+
|
|
87
|
+
export { EdsLogo as eds_logo };
|
package/eds-modal.entry.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h, g as getElement } from './index.esm2.js';
|
|
2
|
-
import { s as sendAnalytics } from './analytics-
|
|
2
|
+
import { s as sendAnalytics } from './analytics-44b1416b.esm.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react-dom';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h, g as getElement } from './index.esm2.js';
|
|
2
|
-
import { s as sendAnalytics } from './analytics-
|
|
2
|
+
import { s as sendAnalytics } from './analytics-44b1416b.esm.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react-dom';
|
|
@@ -0,0 +1,79 @@
|
|
|
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 edsRatingCss = ":host{display:inline-block;font-size:2rem}.stars{display:flex;gap:0.25rem;cursor:pointer}.star{color:var(--star-empty-color, #ccc);transition:color 0.2s ease-in-out}.star.filled{color:var(--green-500);}.star:hover,.star.filled:hover{transform:scale(1.2)}.f-heading-02{font-family:var(--f-heading-02-fontFamily);font-weight:var(--f-heading-02-fontWeight);font-size:var(--f-heading-02-fontSize);line-height:var(--f-heading-02-lineHeight);letter-spacing:var(--f-heading-02-letterSpacing)}.f-heading-03{font-family:var(--f-heading-03-fontFamily);font-weight:var(--f-heading-03-fontWeight);font-size:var(--f-heading-03-fontSize);line-height:var(--f-heading-03-lineHeight);letter-spacing:var(--f-heading-03-letterSpacing)}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:var(--f-heading-04-fontWeight);font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-heading-05{font-family:var(--f-heading-05-fontFamily);font-weight:var(--f-heading-05-fontWeight);font-size:var(--f-heading-05-fontSize);line-height:var(--f-heading-05-lineHeight);letter-spacing:var(--f-heading-05-letterSpacing)}.f-heading-06{font-family:var(--f-heading-06-fontFamily);font-weight:var(--f-heading-06-fontWeight);font-size:var(--f-heading-06-fontSize);line-height:var(--f-heading-06-lineHeight);letter-spacing:var(--f-heading-06-letterSpacing)}.f-body-01{font-family:var(--f-body-01-fontFamily);font-weight:var(--f-body-01-fontWeight);font-size:var(--f-body-01-fontSize);line-height:var(--f-body-01-lineHeight);letter-spacing:var(--f-body-01-letterSpacing)}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}.text-lightest{color:var(--grey-500)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.mt-4{margin-top:0.25rem}.mt-6{margin-top:0.375rem}.mt-8{margin-top:0.5rem}";
|
|
7
|
+
const EdsRatingStyle0 = edsRatingCss;
|
|
8
|
+
const EdsRating = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
this.ratingChange = createEvent(this, "ratingChange", 7);
|
|
12
|
+
this.stars = 5;
|
|
13
|
+
this.label = 'Rate your experience';
|
|
14
|
+
this.textMapping = ['Very Poor', 'Poor', 'Average', 'Good', 'Excellent'];
|
|
15
|
+
this.selectedRating = 0;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parses the `textMapping` prop into an array of strings.
|
|
19
|
+
*/
|
|
20
|
+
get parsedMappings() {
|
|
21
|
+
if (typeof this.textMapping === 'object') {
|
|
22
|
+
return this.textMapping;
|
|
23
|
+
} else if (typeof this.textMapping === 'string') {
|
|
24
|
+
try {
|
|
25
|
+
return JSON.parse(this.textMapping);
|
|
26
|
+
} catch (e) {
|
|
27
|
+
//console.error('Error parsing textMapping prop:', e);
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Handles the click event on a star.
|
|
35
|
+
* @param rating - The selected rating value.
|
|
36
|
+
*/
|
|
37
|
+
handleClick(rating) {
|
|
38
|
+
this.selectedRating = rating;
|
|
39
|
+
this.ratingChange.emit(rating);
|
|
40
|
+
}
|
|
41
|
+
render() {
|
|
42
|
+
return h("div", {
|
|
43
|
+
key: 'b613863ad54ae9b381a5741bce4b188eff806ef0',
|
|
44
|
+
class: "relative w-full flex flex-col"
|
|
45
|
+
}, h("span", {
|
|
46
|
+
key: 'f35cef9c3691aab73995e2ca6e2554cc19bae837',
|
|
47
|
+
class: "f-heading-05"
|
|
48
|
+
}, this.label), h("div", {
|
|
49
|
+
key: '37082eb4bbadf5c211c197f3f81501d0b0e61404',
|
|
50
|
+
role: "radiogroup",
|
|
51
|
+
"aria-label": this.label,
|
|
52
|
+
class: "stars flex space-x-2"
|
|
53
|
+
}, Array.from({
|
|
54
|
+
length: this.stars
|
|
55
|
+
}, (_, index) => {
|
|
56
|
+
const starRating = index + 1;
|
|
57
|
+
const isSelected = starRating <= this.selectedRating;
|
|
58
|
+
// Use the mapping text if available; otherwise, fall back to a generic label.
|
|
59
|
+
const mappingText = this.parsedMappings[starRating - 1] || `Rating ${starRating}`;
|
|
60
|
+
return h("eds-button", {
|
|
61
|
+
label: "\u2605",
|
|
62
|
+
role: "radio",
|
|
63
|
+
"aria-checked": isSelected ? 'true' : 'false',
|
|
64
|
+
"aria-label": mappingText,
|
|
65
|
+
onClick: () => this.handleClick(starRating),
|
|
66
|
+
tabIndex: this.selectedRating === 0 && index === 0 ? 0 : isSelected ? 0 : -1,
|
|
67
|
+
intent: isSelected ? 'primary' : 'ghost',
|
|
68
|
+
size: "small",
|
|
69
|
+
"extra-class": "p-2" // Optional padding or styling for the star button
|
|
70
|
+
});
|
|
71
|
+
})), this.selectedRating > 0 && this.parsedMappings[this.selectedRating - 1] && h("span", {
|
|
72
|
+
key: '61b4b92e476cfa0dd9bf405cb080dedd995ff9c6',
|
|
73
|
+
class: "f-ui-04 text-lighter mt-4"
|
|
74
|
+
}, this.parsedMappings[this.selectedRating - 1]));
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
EdsRating.style = EdsRatingStyle0;
|
|
78
|
+
|
|
79
|
+
export { EdsRating as eds_rating };
|
|
@@ -0,0 +1,74 @@
|
|
|
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 edsSocialNetworksCss = "blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-weight:var(--f-ui-02-fontWeight);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.f-ui-02-light{font-family:var(--f-ui-02-light-fontFamily);font-weight:var(--f-ui-02-light-fontWeight);font-size:var(--f-ui-02-light-fontSize);line-height:var(--f-ui-02-light-lineHeight);letter-spacing:var(--f-ui-02-light-letterSpacing)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.mt-12{margin-top:0.75rem}.mt-16{margin-top:1rem}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.gap-4{gap:0.25rem}.effect-color{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.effect-focus{outline-width:3px;outline-offset:2px;outline-color:var(--green-500)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}.hover\\:text-default:hover{color:var(--black)}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.rounded-sm{border-radius:8px}";
|
|
7
|
+
const EdsSocialNetworksStyle0 = edsSocialNetworksCss;
|
|
8
|
+
const EdsSocialNetworks = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
/**
|
|
12
|
+
* Array of social network objects, each containing label, URL, and icon.
|
|
13
|
+
* These are used to render the social network links.
|
|
14
|
+
*
|
|
15
|
+
* @private
|
|
16
|
+
* @type {SocialNetworks[]}
|
|
17
|
+
*/
|
|
18
|
+
this.socialNetworks = [{
|
|
19
|
+
label: 'Twitter',
|
|
20
|
+
url: 'https://twitter.com/ebrains_eu',
|
|
21
|
+
icon: 'twitter'
|
|
22
|
+
}, {
|
|
23
|
+
label: 'Linkedin',
|
|
24
|
+
url: 'https://www.linkedin.com/company/ebrains-eu/about/',
|
|
25
|
+
icon: 'linkedin'
|
|
26
|
+
}, {
|
|
27
|
+
label: 'Facebook',
|
|
28
|
+
url: 'https://www.facebook.com/people/Ebrains_eu/100046659909324/',
|
|
29
|
+
icon: 'facebook'
|
|
30
|
+
}, {
|
|
31
|
+
label: 'Youtube',
|
|
32
|
+
url: 'https://www.youtube.com/channel/UC6E796cVVR5Xrs2A5jJmleQ',
|
|
33
|
+
icon: 'youtube'
|
|
34
|
+
}, {
|
|
35
|
+
label: 'Mastodon',
|
|
36
|
+
url: 'https://mastodon.social/@ebrains',
|
|
37
|
+
icon: 'mastodon'
|
|
38
|
+
}, {
|
|
39
|
+
label: 'Bluesky',
|
|
40
|
+
url: 'https://bsky.app/profile/ebrains.bsky.social',
|
|
41
|
+
icon: 'bluesky'
|
|
42
|
+
}];
|
|
43
|
+
this.title = 'Follow EBRAINS to keep up-to-date';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Renders the component's HTML structure with links to EBRAINS social profiles.
|
|
47
|
+
* Each social network link uses the `eds-link` component with specific classes and styles.
|
|
48
|
+
*
|
|
49
|
+
* @returns {JSX.Element} The rendered JSX for the component.
|
|
50
|
+
*/
|
|
51
|
+
render() {
|
|
52
|
+
return h("div", {
|
|
53
|
+
key: '9efc31261e88c70f9c808251124178d807140594'
|
|
54
|
+
}, h("p", {
|
|
55
|
+
key: '383101de2aaba05e1024f3ba86d788ad5d92173c',
|
|
56
|
+
class: "f-ui-02"
|
|
57
|
+
}, this.title), h("ul", {
|
|
58
|
+
key: 'e27243a4e7b8aab085c4ef091d67df57dba70664',
|
|
59
|
+
class: "mt-12 flex gap-4"
|
|
60
|
+
}, this.socialNetworks.map((network, index) => h("li", {
|
|
61
|
+
key: index
|
|
62
|
+
}, h("eds-link", {
|
|
63
|
+
"extra-class": "effect-color effect-focus text-lighter hover:text-default flex items-center justify-center rounded-sm",
|
|
64
|
+
external: true,
|
|
65
|
+
"aria-label": network.label,
|
|
66
|
+
url: network.url,
|
|
67
|
+
icon: network.icon,
|
|
68
|
+
intent: "strong"
|
|
69
|
+
})))));
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
EdsSocialNetworks.style = EdsSocialNetworksStyle0;
|
|
73
|
+
|
|
74
|
+
export { EdsSocialNetworks as eds_social_networks };
|
|
@@ -0,0 +1,98 @@
|
|
|
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 edsStepsCss = ".steps{position:sticky;margin-left:16px;margin-bottom:12px;border-left:1px solid var(--soft-color, #ddd);padding-left:24px;counter-reset:step}.steps h3{counter-increment:step;font-size:var(--f-heading-05-fontSize);font-weight:var(--f-heading-05-fontWeight);line-height:var(--f-heading-05-lineHeight);position:relative}.steps h3::before{content:counter(step);position:absolute;left:-40px;top:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:1rem;border:1px solid #ccc;background:var(--grey-900);color:#fff;border-radius:50%}.steps h4{counter-increment:step;font-size:var(--f-heading-06-fontSize);font-weight:var(--f-heading-06-fontWeight);line-height:var(--f-heading-06-lineHeight);position:relative}.steps h4::before{content:counter(step);position:absolute;left:-40px;top:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;font-size:0.875rem;border:1px solid #ccc;background:#333;color:#fff;border-radius:50%}.steps blockquote{margin-top:16px;margin-bottom:16px;font-style:italic;color:#aaa;padding-left:6px}.f-body-01{font-family:var(--f-body-01-fontFamily);font-weight:var(--f-body-01-fontWeight);font-size:var(--f-body-01-fontSize);line-height:var(--f-body-01-lineHeight);letter-spacing:var(--f-body-01-letterSpacing)}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.text-default{color:var(--black)}.text-error{color:var(--red-700)}.text-extra-light{color:var(--grey-300)}.text-inverse{color:var(--white)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}.text-lightest{color:var(--grey-500)}.my-16{margin-top:1rem;margin-bottom:1rem}.my-20{margin-top:1.25rem;margin-bottom:1.25rem}.mb-28{margin-bottom:1.75rem}";
|
|
7
|
+
const EdsStepsStyle0 = edsStepsCss;
|
|
8
|
+
const EdsSteps = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
this.stepClick = createEvent(this, "stepClick", 7);
|
|
12
|
+
this.handleNext = () => {
|
|
13
|
+
if (this.activeStep < this.parsedSteps.length) {
|
|
14
|
+
this.activeStep = this.activeStep + 1;
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
this.handleBack = () => {
|
|
18
|
+
if (this.activeStep > 0) {
|
|
19
|
+
this.activeStep = this.activeStep - 1;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
this.steps = [];
|
|
23
|
+
this.type = 'static';
|
|
24
|
+
this.activeStep = 0;
|
|
25
|
+
}
|
|
26
|
+
handleStepClick(index) {
|
|
27
|
+
this.stepClick.emit(index);
|
|
28
|
+
// In linear mode, update the active step on header click.
|
|
29
|
+
if (this.type === 'linear') {
|
|
30
|
+
this.activeStep = index;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Parse the JSON string into an array of steps.
|
|
35
|
+
*/
|
|
36
|
+
get parsedSteps() {
|
|
37
|
+
if (typeof this.steps === 'string') {
|
|
38
|
+
try {
|
|
39
|
+
const stepsStr = this.steps;
|
|
40
|
+
return JSON.parse(stepsStr);
|
|
41
|
+
} catch (error) {
|
|
42
|
+
//console.error('Invalid steps JSON', error);
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return this.steps;
|
|
47
|
+
}
|
|
48
|
+
/*private handleReset = () => {
|
|
49
|
+
this.activeStep = 0;
|
|
50
|
+
};*/
|
|
51
|
+
render() {
|
|
52
|
+
const steps = this.parsedSteps;
|
|
53
|
+
if (this.type === 'linear') {
|
|
54
|
+
return h("div", null, h("div", {
|
|
55
|
+
class: "steps"
|
|
56
|
+
}, steps.map((step, index) => h("div", {
|
|
57
|
+
class: "step mb-28",
|
|
58
|
+
key: index
|
|
59
|
+
}, h("h3", {
|
|
60
|
+
onClick: () => this.handleStepClick(index)
|
|
61
|
+
}, step.title), this.activeStep === index && h("div", {
|
|
62
|
+
class: "content"
|
|
63
|
+
}, h("div", {
|
|
64
|
+
class: "f-body-02 text-lighter my-16"
|
|
65
|
+
}, step.content), h("eds-button", {
|
|
66
|
+
label: index === steps.length - 1 ? 'Finish' : 'Continue',
|
|
67
|
+
intent: "primary",
|
|
68
|
+
class: "next-btn",
|
|
69
|
+
onClick: this.handleNext
|
|
70
|
+
}), h("eds-button", {
|
|
71
|
+
label: "Back",
|
|
72
|
+
intent: "ghostInverse",
|
|
73
|
+
onClick: this.handleBack,
|
|
74
|
+
disabled: index === 0,
|
|
75
|
+
"extra-class": index === 0 ? 'hidden' : 'ml-8 block'
|
|
76
|
+
}))))), this.activeStep === steps.length && h("div", {
|
|
77
|
+
class: "completed"
|
|
78
|
+
}, h("eds-alert", {
|
|
79
|
+
intent: "success",
|
|
80
|
+
message: "All steps completed - you're finished!"
|
|
81
|
+
})));
|
|
82
|
+
}
|
|
83
|
+
// Static mode: show all steps with their content, no navigation buttons.
|
|
84
|
+
return h("div", {
|
|
85
|
+
class: "steps"
|
|
86
|
+
}, steps.map((step, index) => h("div", {
|
|
87
|
+
class: "step mb-28",
|
|
88
|
+
key: index
|
|
89
|
+
}, h("h3", null, step.title), h("div", {
|
|
90
|
+
class: "content"
|
|
91
|
+
}, h("div", {
|
|
92
|
+
class: "f-body-02 text-lighter my-16"
|
|
93
|
+
}, step.content)))));
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
EdsSteps.style = EdsStepsStyle0;
|
|
97
|
+
|
|
98
|
+
export { EdsSteps as eds_steps };
|
|
@@ -0,0 +1,58 @@
|
|
|
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 edsSwitchCss = ":host{display:inline-block}.switch-container{display:inline-flex;align-items:center}.switch-label{font-size:14px;margin:0 8px}button.switch{position:relative;display:inline-flex;align-items:center;width:50px;height:26px;border:none;border-radius:13px;background-color:#ccc;padding:0;cursor:pointer;transition:background-color 0.2s}button.switch:focus{outline:none;box-shadow:0 0 0 2px #007aff}button.switch.switch--checked{background-color:var(--green-500)}button.switch.switch--disabled{opacity:0.6;cursor:not-allowed}.switch-handle{position:absolute;width:22px;height:22px;border-radius:50%;background-color:#fff;top:2px;left:2px;transition:transform 0.2s}button.switch.switch--checked .switch-handle{transform:translateX(24px)}";
|
|
7
|
+
const EdsSwitchStyle0 = edsSwitchCss;
|
|
8
|
+
const EdsSwitch = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
this.change = createEvent(this, "change", 7);
|
|
12
|
+
this.toggleSwitch = () => {
|
|
13
|
+
if (this.disabled) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
this.checked = !this.checked;
|
|
17
|
+
this.change.emit(this.checked);
|
|
18
|
+
};
|
|
19
|
+
this.checked = false;
|
|
20
|
+
this.disabled = false;
|
|
21
|
+
this.labelOn = '';
|
|
22
|
+
this.labelOff = '';
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
// Compute an accessible name based on state.
|
|
26
|
+
const accessibleLabel = this.labelOn || this.labelOff ? this.checked ? this.labelOn : this.labelOff : 'Toggle switch';
|
|
27
|
+
return h("div", {
|
|
28
|
+
key: 'd4c727cbb562921b2bcba269e84f25c359c7061b',
|
|
29
|
+
class: "switch-container"
|
|
30
|
+
}, this.labelOff && h("span", {
|
|
31
|
+
key: '90b18fff27bd21501466deb5879e5fe6ff607043',
|
|
32
|
+
class: "switch-label switch-label--off"
|
|
33
|
+
}, this.labelOff), h("button", {
|
|
34
|
+
key: '8675f5d9f972d3932710fa7f9b28f74f95a83003',
|
|
35
|
+
type: "button",
|
|
36
|
+
role: "switch",
|
|
37
|
+
"aria-checked": this.checked ? 'true' : 'false',
|
|
38
|
+
"aria-disabled": this.disabled ? 'true' : 'false',
|
|
39
|
+
"aria-label": accessibleLabel,
|
|
40
|
+
class: {
|
|
41
|
+
switch: true,
|
|
42
|
+
'switch--checked': this.checked,
|
|
43
|
+
'switch--disabled': this.disabled
|
|
44
|
+
},
|
|
45
|
+
onClick: this.toggleSwitch,
|
|
46
|
+
disabled: this.disabled
|
|
47
|
+
}, h("span", {
|
|
48
|
+
key: '26aa30a01b10419c1665b1fd58b5696a02d1504a',
|
|
49
|
+
class: "switch-handle"
|
|
50
|
+
})), this.labelOn && h("span", {
|
|
51
|
+
key: '3680d67555e9193a97e129c0639b411263e070a8',
|
|
52
|
+
class: "switch-label switch-label--on"
|
|
53
|
+
}, this.labelOn));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
EdsSwitch.style = EdsSwitchStyle0;
|
|
57
|
+
|
|
58
|
+
export { EdsSwitch as eds_switch };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index.esm2.js';
|
|
2
|
-
import { s as sendAnalytics } from './analytics-
|
|
2
|
+
import { s as sendAnalytics } from './analytics-44b1416b.esm.js';
|
|
3
3
|
import { c as cva } from './index-39c58238.esm.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
@@ -108,13 +108,13 @@ const EdsTabsContent = class {
|
|
|
108
108
|
}
|
|
109
109
|
render() {
|
|
110
110
|
return h("div", {
|
|
111
|
-
key: '
|
|
111
|
+
key: 'd94df79c55522088de5445587758a5eea028b313',
|
|
112
112
|
class: "after:border-softest before:bg-gradient-y relative overflow-x-hidden before:absolute before:inset-x-0 before:bottom-0 before:h-12 before:opacity-5 before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:border-b-2 after:content-['']"
|
|
113
113
|
}, h("div", {
|
|
114
|
-
key: '
|
|
114
|
+
key: 'e7d01a2e6b424c25749c0d70305fb1c8c55bef74',
|
|
115
115
|
class: "scroller-x max-w-xxxl xxxl:px-0 relative z-[1] mx-auto px-16 pt-8 lg:px-28"
|
|
116
116
|
}, h("nav", {
|
|
117
|
-
key: '
|
|
117
|
+
key: 'ef8ff8a02e570dfcf8143997ace793a65917e6ca',
|
|
118
118
|
ref: el => this.tabContainer = el,
|
|
119
119
|
class: "inline-flex",
|
|
120
120
|
"aria-label": this.navAriaLabel
|
|
@@ -129,7 +129,7 @@ const EdsTabsContent = class {
|
|
|
129
129
|
onClick: () => this.handleTabClick(index, tab.label)
|
|
130
130
|
}));
|
|
131
131
|
})), h("slot", {
|
|
132
|
-
key: '
|
|
132
|
+
key: '8f014081c3bc2a8a3013aea3aff32690d6f71c85'
|
|
133
133
|
})));
|
|
134
134
|
}
|
|
135
135
|
get el() {
|
package/eds-tabs.entry.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, g as getElement } from './index.esm2.js';
|
|
2
|
-
import { s as sendAnalytics } from './analytics-
|
|
2
|
+
import { s as sendAnalytics } from './analytics-44b1416b.esm.js';
|
|
3
3
|
import { c as cva } from './index-39c58238.esm.js';
|
|
4
4
|
import 'react';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
@@ -119,14 +119,14 @@ const EdsTabs = class {
|
|
|
119
119
|
}
|
|
120
120
|
render() {
|
|
121
121
|
return h("div", {
|
|
122
|
-
key: '
|
|
122
|
+
key: '5a0c7dbdd059b2a1efdf31e91725dd1d49c88bd4',
|
|
123
123
|
id: `${this.id}`,
|
|
124
124
|
class: "after:border-softest before:bg-gradient-y relative overflow-x-hidden before:absolute before:inset-x-0 before:bottom-0 before:h-12 before:opacity-5 before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:border-b-2 after:content-['']"
|
|
125
125
|
}, h("div", {
|
|
126
|
-
key: '
|
|
126
|
+
key: '74bb7e66b88d845359caf285430fca079abfab03',
|
|
127
127
|
class: "scroller-x overflow-x-auto max-w-xxxl xxxl:px-0 relative z-[1] mx-auto px-16 pt-8 lg:px-28"
|
|
128
128
|
}, h("nav", {
|
|
129
|
-
key: '
|
|
129
|
+
key: '71ca3465da106b2d1ed59eca28eabfe60a1ac0fc',
|
|
130
130
|
ref: el => this.tabContainer = el,
|
|
131
131
|
class: "inline-flex",
|
|
132
132
|
"aria-label": this.navAriaLabel
|
package/eds-tooltip.entry.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as registerInstance, h, g as getElement } from './index.esm2.js';
|
|
2
|
-
import { s as sendAnalytics } from './analytics-
|
|
2
|
+
import { s as sendAnalytics } from './analytics-44b1416b.esm.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'react-dom';
|
package/eds-user.entry.esm.js
CHANGED