@ebrains/react 0.5.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.
Files changed (89) hide show
  1. package/{analytics-1cde8e4a.esm.js → analytics-44b1416b.esm.js} +9 -1
  2. package/color-primary-palette_6.entry.esm.js +106 -106
  3. package/correct-use-of-colors.entry.esm.js +33 -33
  4. package/eds-accordion_22.entry.esm.js +269 -0
  5. package/eds-alert.entry.esm.js +104 -0
  6. package/eds-app-root.entry.esm.js +53 -0
  7. package/eds-avatar_4.entry.esm.js +2 -10
  8. package/eds-breadcrumb.entry.esm.js +171 -0
  9. package/eds-card-generic.entry.esm.js +7 -17
  10. package/eds-card-project.entry.esm.js +1 -1
  11. package/eds-card-section.entry.esm.js +8 -22
  12. package/eds-card-tool.entry.esm.js +1 -1
  13. package/eds-components-section.entry.esm.js +1 -1
  14. package/eds-cookies-preference.entry.esm.js +47 -0
  15. package/eds-docs-palettes.entry.esm.js +1 -1
  16. package/eds-docs-tokens.entry.esm.js +1 -1
  17. package/{eds-dropdown_2.entry.esm.js → eds-dropdown.entry.esm.js} +20 -99
  18. package/eds-feedback.entry.esm.js +82 -0
  19. package/eds-form.entry.esm.js +254 -254
  20. package/eds-frame.entry.esm.js +34 -33
  21. package/eds-icon-arrow-diagonal.entry.esm.js +1 -1
  22. package/eds-icon-arrow-right.entry.esm.js +1 -1
  23. package/eds-icon-bluesky.entry.esm.js +1 -1
  24. package/eds-icon-chevron-down.entry.esm.js +1 -1
  25. package/eds-icon-chevron-left.entry.esm.js +1 -1
  26. package/eds-icon-chevron-right.entry.esm.js +1 -1
  27. package/eds-icon-chevron-up.entry.esm.js +1 -1
  28. package/eds-icon-close.entry.esm.js +1 -1
  29. package/eds-icon-copy.entry.esm.js +1 -1
  30. package/eds-icon-eu.entry.esm.js +1 -1
  31. package/eds-icon-facebook.entry.esm.js +1 -1
  32. package/eds-icon-gitlab.entry.esm.js +1 -1
  33. package/eds-icon-linkedin.entry.esm.js +1 -1
  34. package/eds-icon-loader.entry.esm.js +1 -1
  35. package/eds-icon-mastodon.entry.esm.js +1 -1
  36. package/eds-icon-menu.entry.esm.js +1 -1
  37. package/eds-icon-more.entry.esm.js +1 -1
  38. package/eds-icon-search.entry.esm.js +1 -1
  39. package/eds-icon-star.entry.esm.js +21 -0
  40. package/eds-icon-success.entry.esm.js +1 -1
  41. package/eds-icon-thumbs-down.entry.esm.js +21 -0
  42. package/eds-icon-thumbs-up.entry.esm.js +21 -0
  43. package/eds-icon-twitter.entry.esm.js +1 -1
  44. package/eds-icon-user.entry.esm.js +1 -1
  45. package/eds-icon-youtube.entry.esm.js +1 -1
  46. package/{keycloak-d502ec16.esm.js → eds-login_2.entry.esm.js} +172 -1
  47. package/eds-logo-variations.entry.esm.js +1 -1
  48. package/eds-modal.entry.esm.js +23 -10
  49. package/eds-progress-bar.entry.esm.js +2 -2
  50. package/eds-rating.entry.esm.js +79 -0
  51. package/eds-section-core_2.entry.esm.js +5 -5
  52. package/eds-spinner.entry.esm.js +67 -0
  53. package/eds-steps.entry.esm.js +89 -0
  54. package/eds-svg-repository.entry.esm.js +8 -2
  55. package/eds-switch.entry.esm.js +58 -0
  56. package/eds-tabs.entry.esm.js +15 -27
  57. package/eds-timeline.entry.esm.js +6 -23
  58. package/eds-toast-manager.entry.esm.js +62 -0
  59. package/eds-toast.entry.esm.js +92 -0
  60. package/eds-tooltip.entry.esm.js +4 -4
  61. package/eds-trl.entry.esm.js +2 -2
  62. package/eds-user.entry.esm.js +64 -87
  63. package/eds-vertical-stepper.entry.esm.js +5 -5
  64. package/formUtils-ac68474d.esm.js +247 -0
  65. package/incorrect-use-of-colors.entry.esm.js +7 -7
  66. package/index.esm.js +1 -1
  67. package/index.esm2.js +51 -27
  68. package/logo-space.entry.esm.js +4 -4
  69. package/logo-variations-horizontal_2.entry.esm.js +26 -26
  70. package/logo-wrong-usage.entry.esm.js +37 -37
  71. package/package.json +1 -1
  72. package/sharedUtils-a550989c.esm.js +17 -0
  73. package/src/components.d.ts +4 -1
  74. package/star-0da9b5e9.esm.js +5 -0
  75. package/thumbs-down-a18fd049.esm.js +5 -0
  76. package/thumbs-up-c19a71bc.esm.js +6 -0
  77. package/token-list_3.entry.esm.js +5 -5
  78. package/token-ratios.entry.esm.js +3 -3
  79. package/token-spacing.entry.esm.js +26 -26
  80. package/token-typography.entry.esm.js +2 -2
  81. package/eds-accordion.entry.esm.js +0 -126
  82. package/eds-alert_17.entry.esm.js +0 -187
  83. package/eds-input_7.entry.esm.js +0 -529
  84. package/eds-login.entry.esm.js +0 -97
  85. package/eds-matomo-notice.entry.esm.js +0 -128
  86. package/eds-navigator.entry.esm.js +0 -72
  87. package/eds-pagination_2.entry.esm.js +0 -472
  88. package/eds-tab.entry.esm.js +0 -41
  89. package/eds-tabs-content.entry.esm.js +0 -145
@@ -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';
@@ -73,6 +73,18 @@ const EdsModal = class {
73
73
  async toggle() {
74
74
  this.isOpen = !this.isOpen;
75
75
  }
76
+ /**
77
+ * Listens for global custom events to open the modal.
78
+ */
79
+ handleGlobalOpen() {
80
+ this.open();
81
+ }
82
+ /**
83
+ * Listens for global custom events to close the modal.
84
+ */
85
+ handleGlobalClose() {
86
+ this.close();
87
+ }
76
88
  /**
77
89
  * Closes the modal when the Escape key is pressed.
78
90
  */
@@ -85,39 +97,40 @@ const EdsModal = class {
85
97
  // Generate a unique id for the title so we can reference it for aria-labelledby.
86
98
  const titleId = `modal-title-${this.el.tagName.toLowerCase()}`;
87
99
  return h("div", {
88
- key: 'cd976fb0cd0c0663279dcd4dbd5823e26b6c32f7',
100
+ key: '980f396b79c32a36005b5f7813cc52b2e97457fa',
101
+ id: "eds-modal",
89
102
  class: `${this.isOpen ? 'block' : 'hidden'} fixed inset-0 z-50 flex`,
90
103
  role: "dialog",
91
104
  "aria-modal": "true",
92
105
  "aria-labelledby": titleId
93
106
  }, this.isOpen && h("div", {
94
- key: '40a2febed5d0ec15d5370183c97cfd05abd72007',
107
+ key: 'a2e4bb022c17c66266809f1a8dd706523a6ff07b',
95
108
  class: "fixed inset-0 bg-dark bg-opacity-90" // Add backdrop-blur utility class here
96
109
  ,
97
110
 
98
111
  onClick: () => this.close()
99
112
  }), h("div", {
100
- key: '50f2c23d80a2007aca4d0a8911816141e43b71ee',
101
- class: `max-w-full absolute px-20 py-20 bg-inverse rounded-lg shadow-lg z-10 ${this.getModalPositionClasses()} grow justify-center`
113
+ key: '53c0c2a9559a6a5116f88caa2a7d92810560521e',
114
+ class: `container max-w-full absolute px-20 py-20 bg-inverse rounded-lg shadow-lg z-10 ${this.getModalPositionClasses()} grow justify-center`
102
115
  }, h("div", {
103
- key: 'e1cba5879bc488a99b896c48c8a780336b2195e7',
116
+ key: '576b58f6bd78a969436c6a892f4dfec84a486cc4',
104
117
  class: "flex justify-between items-center border-b-2 border-softer pb-8"
105
118
  }, h("span", {
106
- key: '8f018e3d2890346d23e7dcb115676051048bcacb',
119
+ key: '63e682d4297a346426dc7559cf0d80e21cc51f4c',
107
120
  id: titleId,
108
121
  class: `f-heading-04 text-lighter ${this.getTruncateClass()}`
109
122
  }, this.title), h("eds-button", {
110
- key: '4ae4013dd45573648817ac95ee4370ed615aa6a0',
123
+ key: 'eed35b30903d65694f2944431e7f387a8ef3f3e9',
111
124
  intent: "tertiary",
112
125
  icon: "close",
113
126
  "aria-label": "Close modal",
114
127
  onClick: () => this.close(),
115
128
  "extra-class": "ml-8"
116
129
  })), h("div", {
117
- key: 'ac4e3d8f273d04ad02e0123c23b36b89bfc89db2',
130
+ key: '6c6e673640ed2ef2ae6139ae1931a4b0a0db9aa9',
118
131
  class: "pt-8"
119
132
  }, h("slot", {
120
- key: '60917e9f750bfd7948e580acc817cffe6424608a'
133
+ key: 'eaaf2c17470681dc799b74f5eaebbe2496564c0e'
121
134
  }))));
122
135
  }
123
136
  get el() {
@@ -20,7 +20,7 @@ const EdsProgressBar = class {
20
20
  render() {
21
21
  const progressValue = this.value;
22
22
  return h("div", {
23
- key: '0f47fedbf9d44887f65b399e184215f0937b1df1',
23
+ key: '9a7fa42058034305b22818d464e7b633d7831d67',
24
24
  role: "progressbar",
25
25
  "aria-valuemin": "0",
26
26
  "aria-valuemax": "100",
@@ -28,7 +28,7 @@ const EdsProgressBar = class {
28
28
  "aria-valuetext": `${progressValue}%`,
29
29
  class: "outer w-full bg-default rounded-lg h-24 border border-softer overflow-hidden"
30
30
  }, h("div", {
31
- key: 'a2d095d778842c969832ea6b1ba7f7ef917d1390',
31
+ key: '90b0ac9a538b575a30163c0dbbf437e1cfe8ce39',
32
32
  class: `inner h-full rounded-lg bg-accent transition-all duration-300 flex items-center justify-center text-default f-body-02`,
33
33
  style: {
34
34
  width: `${progressValue}%`
@@ -0,0 +1,79 @@
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 edsRatingCss = ":host{display:inline-block}.block{display:block}.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)}.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}.my-4{margin-top:0.25rem;margin-bottom:0.25rem}.my-8{margin-top:0.5rem;margin-bottom:0.5rem}.my-16{margin-top:1rem;margin-bottom:1rem}.my-20{margin-top:1.25rem;margin-bottom:1.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.0625rem * var(--tw-space-x-reverse));margin-left:calc(0.0625rem * calc(1 - var(--tw-space-x-reverse)))}";
7
+ const EdsRatingStyle0 = edsRatingCss;
8
+ const EdsRating = class {
9
+ constructor(hostRef) {
10
+ registerInstance(this, hostRef);
11
+ this.rating = createEvent(this, "rating", 7);
12
+ this.ratingType = 'star';
13
+ this.ratingCount = 5;
14
+ this.selectedRating = 0;
15
+ }
16
+ /**
17
+ * Lifecycle method that runs when the component has fully loaded.
18
+ * It emits a custom event for each `eds-button` element contained within the breadcrumb.
19
+ */
20
+ componentDidLoad() {
21
+ const btns = this.el.shadowRoot.querySelectorAll('eds-button');
22
+ btns.forEach(btn => {
23
+ this.emitContext(btn);
24
+ });
25
+ }
26
+ /**
27
+ * Emits a custom event called `parentContext` for a given link element.
28
+ * This event provides context information about the breadcrumb component.
29
+ *
30
+ * @param btnElement - The link element to which the event will be dispatched.
31
+ */
32
+ emitContext(btnElement) {
33
+ const event = new CustomEvent('parentContext', {
34
+ detail: {
35
+ componentName: this.el.tagName.toLowerCase(),
36
+ identifier: this.selectedRating
37
+ }
38
+ });
39
+ btnElement.dispatchEvent(event);
40
+ }
41
+ /**
42
+ * Handles the click event on a star.
43
+ * @param rating - The selected rating value.
44
+ */
45
+ handleClick(rating) {
46
+ this.selectedRating = rating;
47
+ this.rating.emit(rating);
48
+ }
49
+ render() {
50
+ return h("div", {
51
+ key: '2ab4f3dbc4cc3dd5272143e99c67b23086b03e18',
52
+ role: "radiogroup",
53
+ class: "stars flex space-x-1 my-8"
54
+ }, Array.from({
55
+ length: this.ratingCount
56
+ }, (_, index) => {
57
+ const starRating = index + 1;
58
+ const isSelected = starRating <= this.selectedRating;
59
+ // Use the mapping text if available; otherwise, fall back to a generic label.
60
+ return h("eds-button", {
61
+ icon: this.ratingType,
62
+ role: "radio",
63
+ "aria-checked": isSelected ? 'true' : 'false',
64
+ "aria-label": this.ratingType,
65
+ onClick: () => this.handleClick(starRating),
66
+ tabIndex: this.selectedRating === 0 && index === 0 ? 0 : isSelected ? 0 : -1,
67
+ intent: isSelected ? 'primary' : 'ghost',
68
+ size: "large",
69
+ "extra-class": "p-2" // Optional padding or styling for the star button
70
+ });
71
+ }));
72
+ }
73
+ get el() {
74
+ return getElement(this);
75
+ }
76
+ };
77
+ EdsRating.style = EdsRatingStyle0;
78
+
79
+ export { EdsRating as eds_rating };
@@ -15,13 +15,13 @@ const EdsSectionCore = class {
15
15
  render() {
16
16
  const TagType = this.tag; // Set dynamic tag type (div or section)
17
17
  return h(TagType, {
18
- key: 'e7ef9e7a589d8cde8aa54d73dff8421d74a7d0ac'
18
+ key: '39c4280156ca46b83538de499baa9b152360b1b4'
19
19
  }, h("eds-section-heading", {
20
- key: '379c6bc644612d3e0865ce2acd8eacb4d67c7769',
20
+ key: '34da742e606f0e9bb485faac8aba1519eccc8934',
21
21
  headingLevel: this.headingLevel,
22
22
  sectionTitle: this.sectionTitle
23
23
  }), h("slot", {
24
- key: '5828a28c2c8ac65fbc56652f733f148a0d0198b7'
24
+ key: '517b8ecc112565e8c6bb0bf85b02525deaa6f9df'
25
25
  }));
26
26
  }
27
27
  };
@@ -52,7 +52,7 @@ const EdsSectionHeading = class {
52
52
  const TagType = this.tag; // Dynamically set tag type for the container
53
53
  const HeadingTag = this.headingLevel; // Dynamically set heading level
54
54
  return h(TagType, {
55
- key: 'c15f83f8aaa4fb01c884fb1390965fcf9dbd61fb',
55
+ key: '766d3f317904f2d735b7b531cf6ad582f22084e3',
56
56
  class: {
57
57
  'ui-section-header flex flex-wrap items-center justify-between gap-x-12 gap-y-8 pb-20': true,
58
58
  container: this.withContainer,
@@ -60,7 +60,7 @@ const EdsSectionHeading = class {
60
60
  'pt-28': !this.spacingLarge
61
61
  }
62
62
  }, h(HeadingTag, {
63
- key: 'e65e13820553eefa5aec8bc9740e5e9da828ac92',
63
+ key: '41a9db3f627cf93f58d14cdebf3b991be6a6facf',
64
64
  class: this.getHeadingClass()
65
65
  }, this.sectionTitle));
66
66
  }
@@ -0,0 +1,67 @@
1
+ import { r as registerInstance, h, H as Host } from './index.esm2.js';
2
+ import 'react';
3
+ import 'react/jsx-runtime';
4
+ import 'react-dom';
5
+
6
+ const edsSpinnerCss = ":host{display:block}.spinner{box-sizing:border-box;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}";
7
+ const EdsSpinnerStyle0 = edsSpinnerCss;
8
+ const EdsSpinner = class {
9
+ constructor(hostRef) {
10
+ registerInstance(this, hostRef);
11
+ this.size = '1rem';
12
+ this.thickness = '10px';
13
+ this.borderColor = 'var(--grey-400)';
14
+ this.bottomColor = 'var(--grey-900)';
15
+ this.background = 'var(--grey-200)';
16
+ this.fullscreen = false;
17
+ }
18
+ render() {
19
+ const spinnerStyle = Object.assign({
20
+ width: this.size,
21
+ height: this.size,
22
+ border: `${this.thickness} solid ${this.borderColor}`,
23
+ borderBottomColor: this.bottomColor
24
+ }, !this.fullscreen && {
25
+ display: 'inline-block'
26
+ });
27
+ // Overlay style: use fixed positioning for fullscreen,
28
+ // and absolute positioning for inline mode.
29
+ const overlayStyle = this.fullscreen ? {
30
+ position: 'fixed',
31
+ top: '0',
32
+ left: '0',
33
+ width: '100vw',
34
+ height: '100vh',
35
+ zIndex: '9999999',
36
+ backgroundColor: this.background,
37
+ display: 'flex',
38
+ alignItems: 'center',
39
+ justifyContent: 'center'
40
+ } : {
41
+ position: 'absolute',
42
+ top: '0',
43
+ left: '0',
44
+ width: '100%',
45
+ height: '100%',
46
+ zIndex: '1000',
47
+ backgroundColor: this.background,
48
+ display: 'flex',
49
+ alignItems: 'center',
50
+ justifyContent: 'center'
51
+ };
52
+ return h(Host, {
53
+ key: '1e1e4ea2734fff8a680e55ca5163e69d2000a55d'
54
+ }, h("div", {
55
+ key: 'acf09f69d43404f317240c0d24e644ec0d046cd7',
56
+ class: "spinner-overlay",
57
+ style: overlayStyle
58
+ }, h("span", {
59
+ key: '3728629fdff738a0b753cd499dc26052b1e3cb7b',
60
+ class: "spinner",
61
+ style: spinnerStyle
62
+ })));
63
+ }
64
+ };
65
+ EdsSpinner.style = EdsSpinnerStyle0;
66
+
67
+ export { EdsSpinner as eds_spinner };
@@ -0,0 +1,89 @@
1
+ import { r as registerInstance, c as createEvent, h } from './index.esm2.js';
2
+ import { p as parseData } from './sharedUtils-a550989c.esm.js';
3
+ import 'react';
4
+ import 'react/jsx-runtime';
5
+ import 'react-dom';
6
+
7
+ const edsStepsCss = ".steps{position:sticky;margin-left:16px;margin-bottom:12px;border-left:1px solid var(--soft-color, #ddd);padding-left:23px;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}";
8
+ const EdsStepsStyle0 = edsStepsCss;
9
+ const EdsSteps = class {
10
+ constructor(hostRef) {
11
+ registerInstance(this, hostRef);
12
+ this.step = createEvent(this, "step", 7);
13
+ this.handleNext = () => {
14
+ this.activeStep = this.activeStep + 1;
15
+ if (this.activeStep < this.parsedSteps.length) {
16
+ this.step.emit(this.activeStep);
17
+ }
18
+ };
19
+ this.handleBack = () => {
20
+ if (this.activeStep > 0) {
21
+ this.activeStep = this.activeStep - 1;
22
+ this.step.emit(this.activeStep);
23
+ }
24
+ };
25
+ this.steps = [];
26
+ this.type = 'static';
27
+ this.activeStep = 0;
28
+ }
29
+ handleStepClick(index) {
30
+ this.step.emit(index);
31
+ // In linear mode, update the active step on header click.
32
+ if (this.type === 'linear') {
33
+ this.activeStep = index;
34
+ }
35
+ }
36
+ /**
37
+ * Parse the JSON string into an array of steps.
38
+ */
39
+ get parsedSteps() {
40
+ return parseData(this.steps);
41
+ }
42
+ render() {
43
+ const steps = this.parsedSteps;
44
+ if (this.type === 'linear') {
45
+ return h("div", null, h("div", {
46
+ class: "steps"
47
+ }, steps.map((step, index) => h("div", {
48
+ class: "step mb-28",
49
+ key: index
50
+ }, h("h3", {
51
+ onClick: () => this.handleStepClick(index)
52
+ }, step.title), this.activeStep === index && h("div", {
53
+ class: "content"
54
+ }, h("div", {
55
+ class: "f-body-02 text-lighter my-16"
56
+ }, step.content), h("eds-button", {
57
+ label: index === steps.length - 1 ? 'Finish' : 'Continue',
58
+ intent: "primary",
59
+ class: "next-btn",
60
+ onClick: this.handleNext
61
+ }), h("eds-button", {
62
+ label: "Back",
63
+ intent: "ghostInverse",
64
+ onClick: this.handleBack,
65
+ disabled: index === 0,
66
+ "extra-class": index === 0 ? 'hidden' : 'ml-8 block'
67
+ }))))), this.activeStep === steps.length && h("div", {
68
+ class: "completed"
69
+ }, h("eds-alert", {
70
+ intent: "success",
71
+ message: "All steps completed - you're finished!"
72
+ })));
73
+ }
74
+ // Static mode: show all steps with their content, no navigation buttons.
75
+ return h("div", {
76
+ class: "steps"
77
+ }, steps.map((step, index) => h("div", {
78
+ class: "step mb-28",
79
+ key: index
80
+ }, h("h3", null, step.title), h("div", {
81
+ class: "content"
82
+ }, h("div", {
83
+ class: "f-body-02 text-lighter my-16"
84
+ }, step.content)))));
85
+ }
86
+ };
87
+ EdsSteps.style = EdsStepsStyle0;
88
+
89
+ export { EdsSteps as eds_steps };
@@ -24,6 +24,9 @@ import { m as menu } from './menu-340ea948.esm.js';
24
24
  import { m as more } from './more-4449d549.esm.js';
25
25
  import { u as user } from './user-71ebdc15.esm.js';
26
26
  import { c as copy } from './copy-03b72cb6.esm.js';
27
+ import { t as thumbsUp } from './thumbs-up-c19a71bc.esm.js';
28
+ import { t as thumbsDown } from './thumbs-down-a18fd049.esm.js';
29
+ import { s as star } from './star-0da9b5e9.esm.js';
27
30
  import 'react';
28
31
  import 'react/jsx-runtime';
29
32
  import 'react-dom';
@@ -277,7 +280,10 @@ const svgs = /*#__PURE__*/Object.freeze({
277
280
  search: search,
278
281
  success: success,
279
282
  warning: warning,
280
- unknown: unknown
283
+ unknown: unknown,
284
+ thumbsUp: thumbsUp,
285
+ thumbsDown: thumbsDown,
286
+ star: star
281
287
  });
282
288
  const EdsSvgRepository = class {
283
289
  constructor(hostRef) {
@@ -308,7 +314,7 @@ const EdsSvgRepository = class {
308
314
  }
309
315
  };
310
316
  return h("eds-table", {
311
- key: 'a7d7fa426da72e174880a300202390c1016b74df',
317
+ key: 'e4c454638f02e043a5ad466ee95558be8723d214',
312
318
  data: JSON.stringify(svgData),
313
319
  config: JSON.stringify(tableConfig),
314
320
  "rows-per-page": 10,
@@ -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: '624776d666ada7b31cb8e84b08380b888451b1a5',
29
+ class: "switch-container"
30
+ }, this.labelOff && h("span", {
31
+ key: 'ced31e91b88f4cb032744bd846811dd012cb9dcd',
32
+ class: "switch-label switch-label--off"
33
+ }, this.labelOff), h("button", {
34
+ key: '8cb4594687313076f18f30fc26062e1440ae0ab9',
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: '88897b4368c337ea2dc4a017a8503171117a2070',
49
+ class: "switch-handle"
50
+ })), this.labelOn && h("span", {
51
+ key: 'bb66f4fd1d09935598d3e9485d3cdf28e182620e',
52
+ class: "switch-label switch-label--on"
53
+ }, this.labelOn));
54
+ }
55
+ };
56
+ EdsSwitch.style = EdsSwitchStyle0;
57
+
58
+ export { EdsSwitch as eds_switch };