@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.
@@ -81,10 +81,10 @@ const EdsLogin = class {
81
81
  }
82
82
  render() {
83
83
  return h("div", {
84
- key: 'cd30a135920ae77959330a43a8544bb9c231986e',
84
+ key: '62768f8a6cc8ac16b13f9b2bb9cf5835f7f63844',
85
85
  class: "block"
86
86
  }, !this.authenticated && h("eds-button", {
87
- key: '98fa63c46b063a67c215ff9160c6dfbfee2265f7',
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 };
@@ -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-1cde8e4a.esm.js';
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-1cde8e4a.esm.js';
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-1cde8e4a.esm.js';
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: 'aa94a55d3ae658797df6ae75724238a17a80a169',
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: '0e38c695467c272198a605efdb2705b14239756e',
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: '525f56d02b41e236d3b713fb972b6803e3f908d5',
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: 'e5da088cec99dd0e40560b70fbd9940ac5a7f56f'
132
+ key: '8f014081c3bc2a8a3013aea3aff32690d6f71c85'
133
133
  })));
134
134
  }
135
135
  get el() {
@@ -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-1cde8e4a.esm.js';
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: 'f5c9e076fc1fb95b57e0148d85865ce62c14fbe7',
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: '7d382167fb62999e39b784ce8bfba24267c87a64',
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: '99bbfabd817bada1984ddf87a274bf9304a1e6a0',
129
+ key: '71ca3465da106b2d1ed59eca28eabfe60a1ac0fc',
130
130
  ref: el => this.tabContainer = el,
131
131
  class: "inline-flex",
132
132
  "aria-label": this.navAriaLabel
@@ -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-1cde8e4a.esm.js';
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';
@@ -88,7 +88,7 @@ const EdsUser = class {
88
88
  render() {
89
89
  var _a;
90
90
  return h("div", {
91
- key: '22ee744979511dd2f8a1e1a15bb99215eadd535b',
91
+ key: '8fe0aaf06ed421d8ca6e512247b4d15b092c895f',
92
92
  class: "block"
93
93
  }, !this.authenticated ? h("eds-button", {
94
94
  label: "Login",