@ebrains/react 1.4.0 → 2.0.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 (77) hide show
  1. package/bin-37cad2f0.esm.js +3 -0
  2. package/color-primary-palette_6.entry.esm.js +106 -106
  3. package/components-section.entry.esm.js +1 -1
  4. package/correct-use-of-colors.entry.esm.js +33 -33
  5. package/docs-palettes.entry.esm.js +1 -1
  6. package/docs-tokens.entry.esm.js +1 -1
  7. package/draft-dd5dada2.esm.js +3 -0
  8. package/edit-1dc8d11b.esm.js +3 -0
  9. package/eds-accordion.entry.esm.js +11 -10
  10. package/eds-app-root.entry.esm.js +4 -4
  11. package/{eds-avatar_29.entry.esm.js → eds-avatar_26.entry.esm.js} +305 -556
  12. package/eds-card-generic.entry.esm.js +4 -5
  13. package/eds-card-project.entry.esm.js +10 -11
  14. package/eds-cookies-preference.entry.esm.js +2 -2
  15. package/eds-feedback.entry.esm.js +5 -5
  16. package/eds-footer.entry.esm.js +129 -0
  17. package/eds-frame.entry.esm.js +4 -4
  18. package/eds-fullscreen-menu.entry.esm.js +124 -0
  19. package/eds-icon-bin.entry.esm.js +21 -0
  20. package/eds-icon-bluesky.entry.esm.js +1 -1
  21. package/eds-icon-bookmark.entry.esm.js +1 -1
  22. package/eds-icon-close.entry.esm.js +1 -1
  23. package/eds-icon-copy.entry.esm.js +1 -1
  24. package/eds-icon-draft.entry.esm.js +21 -0
  25. package/eds-icon-edit.entry.esm.js +21 -0
  26. package/eds-icon-eu.entry.esm.js +1 -1
  27. package/eds-icon-external.entry.esm.js +1 -1
  28. package/eds-icon-facebook.entry.esm.js +1 -1
  29. package/eds-icon-gitlab.entry.esm.js +1 -1
  30. package/eds-icon-linkedin.entry.esm.js +1 -1
  31. package/eds-icon-loader.entry.esm.js +1 -1
  32. package/eds-icon-mastodon.entry.esm.js +1 -1
  33. package/eds-icon-menu.entry.esm.js +1 -1
  34. package/eds-icon-minus.entry.esm.js +1 -1
  35. package/eds-icon-more.entry.esm.js +1 -1
  36. package/eds-icon-paper.entry.esm.js +1 -1
  37. package/eds-icon-plus.entry.esm.js +1 -1
  38. package/eds-icon-portal.entry.esm.js +1 -1
  39. package/eds-icon-private.entry.esm.js +1 -1
  40. package/eds-icon-public.entry.esm.js +1 -1
  41. package/eds-icon-search.entry.esm.js +1 -1
  42. package/eds-icon-star.entry.esm.js +1 -1
  43. package/eds-icon-start.entry.esm.js +21 -0
  44. package/eds-icon-success.entry.esm.js +1 -1
  45. package/eds-icon-thumbs-down.entry.esm.js +1 -1
  46. package/eds-icon-thumbs-up.entry.esm.js +1 -1
  47. package/eds-icon-tutorial.entry.esm.js +1 -1
  48. package/eds-icon-twitter.entry.esm.js +1 -1
  49. package/eds-icon-unknown.entry.esm.js +1 -1
  50. package/eds-icon-updown.entry.esm.js +1 -1
  51. package/eds-icon-user.entry.esm.js +1 -1
  52. package/eds-icon-youtube.entry.esm.js +1 -1
  53. package/eds-modal.entry.esm.js +150 -0
  54. package/eds-progress-bar.entry.esm.js +4 -4
  55. package/eds-section-core_2.entry.esm.js +5 -5
  56. package/eds-social-networks.entry.esm.js +74 -0
  57. package/eds-spinner.entry.esm.js +51 -14
  58. package/eds-splash-screen.entry.esm.js +1 -4
  59. package/eds-switch.entry.esm.js +8 -6
  60. package/eds-timeline.entry.esm.js +4 -4
  61. package/eds-toast-manager.entry.esm.js +1 -1
  62. package/eds-tooltip.entry.esm.js +12 -6
  63. package/eds-trl.entry.esm.js +2 -2
  64. package/incorrect-use-of-colors.entry.esm.js +8 -8
  65. package/index.esm2.js +27 -6
  66. package/logo-space.entry.esm.js +9 -9
  67. package/logo-variations-horizontal_2.entry.esm.js +28 -28
  68. package/logo-variations-tabs.entry.esm.js +1 -1
  69. package/logo-wrong-usage.entry.esm.js +25 -25
  70. package/package.json +1 -1
  71. package/start-65126a4f.esm.js +3 -0
  72. package/svg-repository.entry.esm.js +11 -3
  73. package/token-list_3.entry.esm.js +5 -5
  74. package/token-ratios.entry.esm.js +3 -3
  75. package/token-spacing.entry.esm.js +26 -26
  76. package/token-typography.entry.esm.js +2 -2
  77. package/eds-rating.entry.esm.js +0 -79
@@ -11,7 +11,7 @@ const EdsIconPrivate = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '9466d1ce37e58f512579d63ec5049cc58e8b9836',
14
+ key: 'abd96f1775b99dc252a2b4783c133bc7ab0e07cc',
15
15
  class: this.class,
16
16
  innerHTML: privat
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconPublic = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: 'e4815b72c160ae98d66dbfa877f82f1d2f7c50b3',
14
+ key: 'c681e9c3a2e797225a6b4d7c21260cfbcd7b1a07',
15
15
  class: this.class,
16
16
  innerHTML: pub
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconSearch = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '6a35ea0c0de4916a867f760eb058a3cbb1bc218e',
14
+ key: '95fd209db33a21655b248b74933baf775aa6008f',
15
15
  class: this.class,
16
16
  innerHTML: search
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconStar = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: 'f7ebc68658fcf8c0df627871481cce90cd7800fb',
14
+ key: '4d66d4107547dc9669a155587e5e9f214525c103',
15
15
  class: this.class,
16
16
  innerHTML: star
17
17
  });
@@ -0,0 +1,21 @@
1
+ import { r as registerInstance, h } from './index.esm2.js';
2
+ import { s as start } from './start-65126a4f.esm.js';
3
+ import 'react';
4
+ import 'react/jsx-runtime';
5
+ import 'react-dom';
6
+
7
+ const EdsIconStart = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.class = '';
11
+ }
12
+ render() {
13
+ return h("span", {
14
+ key: 'd8af71df9336e0a1d8763c5f5eea4f19da127785',
15
+ class: this.class,
16
+ innerHTML: start
17
+ });
18
+ }
19
+ };
20
+
21
+ export { EdsIconStart as eds_icon_start };
@@ -11,7 +11,7 @@ const EdsIconSuccess = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: 'd78b06493302958306d408d823f4a7703d9b9adc',
14
+ key: 'f427b541cef236f90f132b436d3cd617e5a9381c',
15
15
  class: this.class,
16
16
  innerHTML: success
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconThumbsDown = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '84e6d8cff80004a650c6d0fc6b9702cf1ca85ba2',
14
+ key: 'b071c30d25352e18241561760669e099a2f22481',
15
15
  class: this.class,
16
16
  innerHTML: thumbsDown
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconThumbsUp = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '5f5198ad92684dc173d603499b485e7d0ca8811b',
14
+ key: 'ccb23aecc8c918e8428b06f9599969868f97d0e4',
15
15
  class: this.class,
16
16
  innerHTML: thumbsUp
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconTutorial = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '8be08569144889cca6f801cdd31e4cc31fdc11e5',
14
+ key: '6c73e2842e44f4e921399d2d303818b9c5c4b1a3',
15
15
  class: this.class,
16
16
  innerHTML: tutorial
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconTwitter = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: 'c2ee643b5da517a53bd97ec6263161927ad229a7',
14
+ key: 'db8fea43b7888da43821083ecc706a16c949932e',
15
15
  class: this.class,
16
16
  innerHTML: twitter
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconUnknown = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '449cd62f697607ebb17bed06835ee9529d7e8999',
14
+ key: 'a56cf8519a7969a8a51178a3424e36d4ae7dddbf',
15
15
  class: this.class,
16
16
  innerHTML: unknown
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconUpdown = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '5b0e914205c9f3fb5e216e0ccb16e350a4449c02',
14
+ key: '3efe71bda81efa13e277ebfae2d6d6f588964ee5',
15
15
  class: this.class,
16
16
  innerHTML: upDonw
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconUser = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '297e73664320032b2f78dd3c43aa0852545c0723',
14
+ key: 'd2ab70229b5200b541a91d32ee0b7ea582a5f79d',
15
15
  class: this.class,
16
16
  innerHTML: user
17
17
  });
@@ -11,7 +11,7 @@ const EdsIconYoutube = class {
11
11
  }
12
12
  render() {
13
13
  return h("span", {
14
- key: '0a6abd6b62e24c07b4338f0f1f6febbec876791f',
14
+ key: 'dd1f0043450c0970da5487a4c7c69859d3d97e2f',
15
15
  class: this.class,
16
16
  innerHTML: youtube
17
17
  });
@@ -0,0 +1,150 @@
1
+ import { r as registerInstance, h, g as getElement } from './index.esm2.js';
2
+ import { s as sendAnalytics } from './analytics-d99780e3.esm.js';
3
+ import 'react';
4
+ import 'react/jsx-runtime';
5
+ import 'react-dom';
6
+
7
+ const edsModalCss = ".block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.fixed{position:fixed}.inset-0{inset:0rem}.z-10{z-index:10}.z-50{z-index:50}.z-50{z-index:50}.z-9999999{z-index:9999999}.w-full{width:100%}.min-w-full{min-width:100%}.max-w-full{max-width:100%}.absolute{position:absolute}.px-20{padding-left:1.25rem;padding-right:1.25rem}.py-20{padding-top:1.25rem;padding-bottom:1.25rem}.bg-inverse{background-color:var(--white)}.bg-dark{background-color:var(--grey-300)}.rounded-lg{border-radius:16px}.shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.p-6{padding:0.375rem}.p-8{padding:0.5rem}.left-1\\/2{left:50%}.left-20{left:1.25rem}.right-20{right:1.25rem}.top-1\\/2{top:50%}.top-0{top:0rem}.left-0{left:0rem}.top-20{top:1.25rem}.bottom-0{bottom:0rem}.bottom-20{bottom:1.25rem}.grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.border-b-2{border-bottom-width:2px}.border-softer{border-color:rgba(0, 0, 0, .1)}.pb-8{padding-bottom:0.5rem}.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)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}.text-lightest{color:var(--grey-500)}.text-default{color:var(--black)}.text-inverse{color:var(--white)}.bg-dark{background-color:var(--grey-300)}.bg-strong{background-color:var(--grey-700)}.bg-strongest{background-color:var(--black)}.ml-8{margin-left:0.5rem}.pt-8{padding-top:0.5rem}.bg-opacity-90{opacity:0.9}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}@media (min-width: 750px){.md\\:bottom-20{bottom:1.25rem}.md\\:w-auto{width:auto}.md\\:top-20{top:1.25rem}.md\\:top-1\\/2{top:50%}.md\\:left-1\\/2{left:50%}.md\\:flex{display:flex}.md\\:hidden{display:none}.md\\:-translate-x-1\\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:-translate-y-1\\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\\:gap-y-12{row-gap:0.75rem}}";
8
+ const EdsModalStyle0 = edsModalCss;
9
+ const EdsModal = class {
10
+ constructor(hostRef) {
11
+ registerInstance(this, hostRef);
12
+ this.heading = '';
13
+ this.truncate = 1;
14
+ this.position = 'middle';
15
+ this.inverseHeader = false;
16
+ this.isOpen = false;
17
+ }
18
+ getTruncateClass() {
19
+ return this.truncate ? `line-clamp-${this.truncate}` : '';
20
+ }
21
+ /**
22
+ * Returns the Tailwind CSS classes to position the modal based on the `position` prop.
23
+ *
24
+ * @private
25
+ * @returns {string} The concatenated CSS classes for modal positioning.
26
+ */
27
+ getModalPositionClasses() {
28
+ switch (this.position) {
29
+ case 'top':
30
+ return [
31
+ // mobile: pinned to top, full-width
32
+ 'top-0', 'left-0', 'w-full',
33
+ // desktop: half-width centred and offset down
34
+ 'md:left-1/2', 'md:w-auto', 'md:-translate-x-1/2', 'md:top-20'].join(' ');
35
+ case 'bottom':
36
+ return ['bottom-0', 'left-0', 'w-full', 'md:left-1/2', 'md:w-auto', 'md:-translate-x-1/2', 'md:bottom-20'].join(' ');
37
+ /*case 'left':
38
+
39
+ case 'right':
40
+ …*/
41
+ case 'middle':
42
+ default:
43
+ return [
44
+ // mobile: full-width, start from top with a little padding
45
+ 'top-0', 'left-0', 'w-full', 'pt-4',
46
+ // desktop: centred both axes
47
+ 'md:left-1/2', 'md:top-1/2', 'md:w-auto', 'md:-translate-x-1/2', 'md:-translate-y-1/2'].join(' ');
48
+ }
49
+ }
50
+ /**
51
+ * Opens the modal.
52
+ */
53
+ async open() {
54
+ var _a;
55
+ this.isOpen = true;
56
+ sendAnalytics({
57
+ category: 'ui-component',
58
+ parentContext: null,
59
+ tag: this.el.tagName.toLowerCase(),
60
+ name: ((_a = this.heading) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '',
61
+ action: 'opened'
62
+ });
63
+ }
64
+ /**
65
+ * Closes the modal.
66
+ */
67
+ async close() {
68
+ var _a;
69
+ this.isOpen = false;
70
+ sendAnalytics({
71
+ category: 'ui-component',
72
+ parentContext: null,
73
+ tag: this.el.tagName.toLowerCase(),
74
+ name: ((_a = this.heading) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || '',
75
+ action: 'closed'
76
+ });
77
+ }
78
+ /**
79
+ * Toggles the modal open or closed.
80
+ */
81
+ async toggle() {
82
+ this.isOpen = !this.isOpen;
83
+ }
84
+ /**
85
+ * Listens for global custom events to open the modal.
86
+ */
87
+ handleGlobalOpen() {
88
+ this.open();
89
+ }
90
+ /**
91
+ * Listens for global custom events to close the modal.
92
+ */
93
+ handleGlobalClose() {
94
+ this.close();
95
+ }
96
+ /**
97
+ * Closes the modal when the Escape key is pressed.
98
+ */
99
+ handleKeyDown(event) {
100
+ if (this.isOpen && event.key === 'Escape') {
101
+ this.close();
102
+ }
103
+ }
104
+ render() {
105
+ // Generate a unique id for the title so we can reference it for aria-labelledby.
106
+ const titleId = `modal-title-${this.el.tagName.toLowerCase()}`;
107
+ return h("div", {
108
+ key: 'b2b2c3a433049b28ec58dd7ebd0c074597c9e5d4',
109
+ id: "eds-modal",
110
+ class: `${this.isOpen ? 'block' : 'hidden'} fixed inset-0 z-9999999 flex`,
111
+ role: "dialog",
112
+ "aria-modal": "true",
113
+ "aria-labelledby": titleId
114
+ }, this.isOpen && h("div", {
115
+ key: '839115c4261e68289410b1a3e30eb28597cdae9e',
116
+ class: "fixed inset-0 bg-dark bg-opacity-90" // Add backdrop-blur utility class here
117
+ ,
118
+
119
+ onClick: () => this.close()
120
+ }), h("div", {
121
+ key: 'ffb82ca6bf618a842e5c6c5783caccac0b538f3d',
122
+ class: `container absolute bg-inverse z-10 ${this.getModalPositionClasses()} grow justify-center`
123
+ }, h("div", {
124
+ key: '8bd4b17956d04772ba690fce563aa929195cd3d0',
125
+ class: `flex justify-between items-center border-b-2 border-softer px-20 py-20 ${this.inverseHeader ? 'bg-strongest text-inverse' : 'bg-dark text-default'}`
126
+ }, h("span", {
127
+ key: 'dcbdb579245e406d2fc4e4a44fb1828625e1e7aa',
128
+ id: titleId,
129
+ class: `f-heading-04 ${this.getTruncateClass()}`
130
+ }, this.heading), h("eds-button", {
131
+ key: '533c582543fa09ff1d7a7a8a1d1b608eb02d5c72',
132
+ intent: "tertiary",
133
+ icon: "close",
134
+ "aria-label": "Close modal",
135
+ onClick: () => this.close(),
136
+ "extra-class": "ml-8 text-default"
137
+ })), h("div", {
138
+ key: '8d95e7649c535da3ddb4de5646579f12341a9e10',
139
+ class: "pt-8 px-20 py-20"
140
+ }, h("slot", {
141
+ key: '7b9678ff3cedbef291ea8dea53ef30a96237a60c'
142
+ }))));
143
+ }
144
+ get el() {
145
+ return getElement(this);
146
+ }
147
+ };
148
+ EdsModal.style = EdsModalStyle0;
149
+
150
+ export { EdsModal as eds_modal };
@@ -25,7 +25,7 @@ const EdsProgressBar = class {
25
25
  // Fill bar classes (conditionally rounded only when >0)
26
26
  const fillClasses = ['inner', 'h-full', 'transition-all', 'duration-300', 'bg-accent', progressValue > 0 && this.rounded ? 'rounded-lg' : '', 'z-0'].filter(Boolean).join(' ');
27
27
  return h("div", {
28
- key: '4d1905ce42ee1b539519c8bdbcc9cf8d8aad9f03',
28
+ key: '8406651d280d0a7f55ac627aa08fed80ff01028e',
29
29
  role: "progressbar",
30
30
  "aria-valuemin": "0",
31
31
  "aria-valuemax": "100",
@@ -33,16 +33,16 @@ const EdsProgressBar = class {
33
33
  "aria-valuetext": `${progressValue}%`,
34
34
  class: outerClasses
35
35
  }, h("div", {
36
- key: '7feec42063d2111f68e9957e1b5ca5550df284d0',
36
+ key: '0b784248450d7766879be03a2e1f83484090da2c',
37
37
  class: fillClasses,
38
38
  style: {
39
39
  width: `${progressValue}%`
40
40
  }
41
41
  }), h("div", {
42
- key: '13ab32e048f0b9e68e8bef96775b5204b653ed95',
42
+ key: '421253aa1f8dd3ea83936452607c4bcd49f47eb3',
43
43
  class: "absolute inset-0 flex items-center justify-center pointer-events-none z-10"
44
44
  }, h("span", {
45
- key: 'e46641bd65faf5ae4fb3a3c0542d312c9e9f1565',
45
+ key: 'ae649fcb7ed22741f3fedd129f0c0cb41254b721',
46
46
  class: "text-default f-body-02"
47
47
  }, progressValue, "%")));
48
48
  }
@@ -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: '0593fd387e636b25fd817a985db481b654ef169b'
18
+ key: 'b3469cabf7e1a59c7908f5440b76d0c3bed0395d'
19
19
  }, h("eds-section-heading", {
20
- key: '98805f9d6bdeb1a10f351d6d8277e7fb877b0e63',
20
+ key: '38e11acb4b491579573bee449680776d3ec23de3',
21
21
  headingLevel: this.headingLevel,
22
22
  sectionTitle: this.sectionTitle
23
23
  }), h("slot", {
24
- key: '6432856b8bf5f311a42406f4c6126982b2e05cf1'
24
+ key: '133fc1150fb7e300544388adc673c1446b36ac39'
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: '4fa6ecdd941eb943faa7311e94d9b67b63273414',
55
+ key: '1b819df75c9d61eebe7d11b9116dba7278a34d91',
56
56
  class: {
57
57
  'ui-section-header flex flex-wrap items-center justify-between gap-x-12 gap-y-8': 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: '945d7d615601806d670ab666971bc6b07e1f442c',
63
+ key: '8f99c7c15982f9190117f8eb71725af66afd0741',
64
64
  class: this.getHeadingClass()
65
65
  }, this.sectionTitle));
66
66
  }
@@ -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.heading = '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: '7bd6202c426d23ded6af47b26e025f2d1b42904a'
54
+ }, h("p", {
55
+ key: '0c66f58474ff55cc06bd9f3f15f3deb251c9fb87',
56
+ class: "f-ui-02"
57
+ }, this.heading), h("ul", {
58
+ key: '3e082ae50c77e2d8612b823aa3e474672d65d42f',
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 };
@@ -3,24 +3,56 @@ import 'react';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react-dom';
5
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)}}";
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)}}.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)}";
7
7
  const EdsSpinnerStyle0 = edsSpinnerCss;
8
8
  const EdsSpinner = class {
9
9
  constructor(hostRef) {
10
10
  registerInstance(this, hostRef);
11
- this.size = '1rem';
12
- this.thickness = '10px';
13
- this.borderColor = 'var(--grey-400)';
14
- this.bottomColor = 'var(--grey-900)';
11
+ this.size = 'md';
12
+ this.variant = 'secondary';
13
+ this.message = undefined;
15
14
  this.background = 'var(--grey-200)';
16
15
  this.fullscreen = false;
17
16
  }
17
+ get spinnerSize() {
18
+ switch (this.size) {
19
+ case 'xs':
20
+ return '1rem';
21
+ case 'sm':
22
+ return '4rem';
23
+ case 'lg':
24
+ return '8rem';
25
+ case 'xl':
26
+ return '10rem';
27
+ case 'md':
28
+ default:
29
+ return '6rem';
30
+ }
31
+ }
32
+ get spinnerThickness() {
33
+ switch (this.size) {
34
+ case 'xs':
35
+ return '4px';
36
+ case 'sm':
37
+ return '8px';
38
+ case 'lg':
39
+ return '16px';
40
+ case 'xl':
41
+ return '20px';
42
+ case 'md':
43
+ default:
44
+ return '12px';
45
+ }
46
+ }
18
47
  render() {
48
+ // derive colors from variant
49
+ const borderColor = this.variant === 'primary' ? 'var(--grey-900)' : 'var(--grey-400)';
50
+ const bottomColor = this.variant === 'primary' ? 'var(--green-400)' : 'var(--grey-900)';
19
51
  const spinnerStyle = Object.assign({
20
- width: this.size,
21
- height: this.size,
22
- border: `${this.thickness} solid ${this.borderColor}`,
23
- borderBottomColor: this.bottomColor
52
+ width: this.spinnerSize,
53
+ height: this.spinnerSize,
54
+ border: `${this.spinnerThickness} solid ${borderColor}`,
55
+ borderBottomColor: bottomColor
24
56
  }, !this.fullscreen && {
25
57
  display: 'inline-block'
26
58
  });
@@ -35,6 +67,7 @@ const EdsSpinner = class {
35
67
  zIndex: '9999999',
36
68
  backgroundColor: this.background,
37
69
  display: 'flex',
70
+ flexDirection: 'column',
38
71
  alignItems: 'center',
39
72
  justifyContent: 'center'
40
73
  } : {
@@ -43,23 +76,27 @@ const EdsSpinner = class {
43
76
  left: '0',
44
77
  width: '100%',
45
78
  height: '100%',
46
- zIndex: '1000',
79
+ //zIndex: '1000',
47
80
  backgroundColor: this.background,
48
81
  display: 'flex',
82
+ flexDirection: 'column',
49
83
  alignItems: 'center',
50
84
  justifyContent: 'center'
51
85
  };
52
86
  return h(Host, {
53
- key: '7f8e9654757478a1b5298d133739d955dbf9a15f'
87
+ key: 'b2ba16cd90ebf036143f6ab52b996497464814c1'
54
88
  }, h("div", {
55
- key: '245e9e61a19c1cdff34ab8b9f70b7e69f1a229f7',
89
+ key: 'f619fb03d0364ae7032931559d591fab6ad40123',
56
90
  class: "spinner-overlay",
57
91
  style: overlayStyle
58
92
  }, h("span", {
59
- key: 'e8befeaef6af66d45e3c3b20042a3f626754cfc5',
93
+ key: '7c1e397ab319de1f67320e3836225e3733a483fd',
60
94
  class: "spinner",
61
95
  style: spinnerStyle
62
- })));
96
+ }), this.message && h("p", {
97
+ key: 'ddf6e08c8d2d00f114f815bab28b06c19a56cd6d',
98
+ class: "f-body-01"
99
+ }, this.message)));
63
100
  }
64
101
  };
65
102
  EdsSpinner.style = EdsSpinnerStyle0;
@@ -68,10 +68,7 @@ const EdsSplashScreen = class {
68
68
  })), h("div", {
69
69
  class: "content-container"
70
70
  }, h("eds-spinner", {
71
- size: "1rem",
72
- thickness: "3px",
73
- "border-color": "var(--grey-400)",
74
- "bottom-color": "var(--grey-900)",
71
+ size: "xs",
75
72
  background: "none",
76
73
  fullscreen: false
77
74
  }))));
@@ -15,7 +15,9 @@ const EdsSwitch = class {
15
15
  return;
16
16
  }
17
17
  this.checked = !this.checked;
18
- this.uiswitch.emit(this.checked);
18
+ this.uiswitch.emit({
19
+ value: this.checked
20
+ });
19
21
  sendAnalytics({
20
22
  category: 'ui-component',
21
23
  tag: this.el.tagName.toLowerCase(),
@@ -32,13 +34,13 @@ const EdsSwitch = class {
32
34
  // Compute an accessible name based on state.
33
35
  const accessibleLabel = this.labelOn || this.labelOff ? this.checked ? this.labelOn : this.labelOff : 'Toggle switch';
34
36
  return h("div", {
35
- key: 'f2c3cd27a317b64ac05b5b2841f87827ff9f18fc',
37
+ key: '1de6f7afd451f5d0276b62ef7bbf817f132e4440',
36
38
  class: "switch-container"
37
39
  }, this.labelOff && h("span", {
38
- key: '08e47e239c5a6de0440b731589fd5f365919df24',
40
+ key: 'd2d1017d7d26537eb2e65fa74b1f86453edc93d2',
39
41
  class: "switch-label switch-label--off mr-8"
40
42
  }, this.labelOff), h("button", {
41
- key: 'd731fa56f93b67daaeaac22c1080a7171360525c',
43
+ key: 'ade3ba909f5744a2b87238da52fcc33f600721cf',
42
44
  type: "button",
43
45
  role: "switch",
44
46
  "aria-checked": this.checked ? 'true' : 'false',
@@ -52,10 +54,10 @@ const EdsSwitch = class {
52
54
  onClick: this.toggleSwitch,
53
55
  disabled: this.disabled
54
56
  }, h("span", {
55
- key: '8bbe2bd4c2050dbda4723615b4eb0fa2936d35d8',
57
+ key: '64034f73021623f63523c7bb52ec5233ad291c55',
56
58
  class: "switch-handle"
57
59
  })), this.labelOn && h("span", {
58
- key: '73991400f5a8e0e6c6d1c09196639add3e98c71f',
60
+ key: 'a96a35565ac28ed6a27855b90b180f15adb0e711',
59
61
  class: "switch-label switch-label--on ml-8"
60
62
  }, this.labelOn));
61
63
  }
@@ -46,16 +46,16 @@ const EdsTimeline = class {
46
46
  }
47
47
  render() {
48
48
  return h("div", {
49
- key: 'cac0d2731a21edeef728166f1e3e4cedd2a9d336',
49
+ key: '58f12a81691ac711c82aa0db5786101cecadf7eb',
50
50
  class: "max-w-sidebar mx-auto px-4 py-8"
51
51
  }, h("div", {
52
- key: 'ecfe58e3e5f54fbfcdfe898b0349af4838e59d4e',
52
+ key: '9b9d5e83a7f9c93850b95590dda1ba38eef56131',
53
53
  class: "relative"
54
54
  }, h("div", {
55
- key: 'b6e0fe316d79d80db8cd7d855c10b9f1db045f20',
55
+ key: 'fd97d75bb70cbe629310e73f2017f3f188b3160a',
56
56
  class: "absolute w-4 left-1/2 transform -translate-x-1/2 bg-strong h-full z-0"
57
57
  }), h("div", {
58
- key: '95b8ff805c7b6f2f2a4635cf67d0ec7dfa127871',
58
+ key: 'c69f1e3755fadfa9234f51a5d9b3196f339164f5',
59
59
  class: "space-y-16"
60
60
  }, this.parsedEvents.map((event, index) => h("div", {
61
61
  class: "relative flex"
@@ -74,7 +74,7 @@ const EdsToastManager = class {
74
74
  }
75
75
  render() {
76
76
  return h("div", {
77
- key: '62a106f36d1693163c25aee615570967573bbbc9',
77
+ key: '5724dea66c7025b67571699860af8ff1c318ef48',
78
78
  class: "toast-container"
79
79
  }, this.toasts.map(t => h("div", {
80
80
  key: t.id