@ebrains/react 2.4.0 → 3.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 (130) hide show
  1. package/color-primary-palette_6.entry.esm.js +106 -106
  2. package/components-section.entry.esm.js +1 -1
  3. package/correct-use-of-colors.entry.esm.js +33 -33
  4. package/docs-palettes.entry.esm.js +1 -1
  5. package/docs-tokens.entry.esm.js +1 -1
  6. package/eds-accordion_52.entry.esm.js +1823 -0
  7. package/eds-app-root.entry.esm.js +4 -4
  8. package/eds-cookies-preference.entry.esm.js +3 -3
  9. package/eds-feedback.entry.esm.js +5 -5
  10. package/eds-frame.entry.esm.js +7 -7
  11. package/eds-gauge.entry.esm.js +8 -9
  12. package/eds-gitlab-contributors.entry.esm.js +277 -0
  13. package/eds-icon-bluesky.entry.esm.js +1 -1
  14. package/eds-icon-eu.entry.esm.js +2 -2
  15. package/eds-icon-facebook.entry.esm.js +1 -1
  16. package/eds-icon-gitlab.entry.esm.js +1 -1
  17. package/eds-icon-linkedin.entry.esm.js +1 -1
  18. package/eds-icon-mastodon.entry.esm.js +1 -1
  19. package/eds-icon-twitter.entry.esm.js +1 -1
  20. package/eds-icon-youtube.entry.esm.js +1 -1
  21. package/eds-modal.entry.esm.js +88 -31
  22. package/eds-pie.entry.esm.js +38 -4
  23. package/eds-section-core_2.entry.esm.js +5 -5
  24. package/eds-splash-screen.entry.esm.js +4 -12
  25. package/eds-timeline.entry.esm.js +8 -14
  26. package/eds-toast-manager.entry.esm.js +1 -1
  27. package/eu-8ac3e99c.esm.js +7 -0
  28. package/incorrect-use-of-colors.entry.esm.js +8 -8
  29. package/index.esm.js +1 -1
  30. package/index.esm2.js +14 -143
  31. package/logo-space.entry.esm.js +138 -17
  32. package/logo-variations-horizontal_2.entry.esm.js +28 -54
  33. package/logo-variations-tabs.entry.esm.js +1 -1
  34. package/logo-wrong-usage.entry.esm.js +33 -33
  35. package/negative-84eec72e.esm.js +104 -0
  36. package/package.json +1 -1
  37. package/positive-cc986d7c.esm.js +65 -0
  38. package/src/components.d.ts +8 -2
  39. package/src/generated/components.d.ts +0 -1
  40. package/svg-repository.entry.esm.js +7 -254
  41. package/token-list_3.entry.esm.js +79 -51
  42. package/token-ratios.entry.esm.js +3 -3
  43. package/token-spacing.entry.esm.js +26 -26
  44. package/token-typography.entry.esm.js +88 -79
  45. package/arrow-diagonal-black-8f0494c3.esm.js +0 -3
  46. package/arrow-right-9322ba8a.esm.js +0 -5
  47. package/bin-37cad2f0.esm.js +0 -3
  48. package/bookmark-c200037c.esm.js +0 -16
  49. package/chevron-down-6144c823.esm.js +0 -12
  50. package/chevron-left-ca6c66e1.esm.js +0 -11
  51. package/chevron-right-b88ed2d4.esm.js +0 -5
  52. package/chevron-up-c66bd477.esm.js +0 -12
  53. package/clone-dab56639.esm.js +0 -3
  54. package/close-87fc0d63.esm.js +0 -5
  55. package/copy-03b72cb6.esm.js +0 -5
  56. package/download-47746956.esm.js +0 -18
  57. package/draft-dd5dada2.esm.js +0 -3
  58. package/edit-3893a517.esm.js +0 -3
  59. package/eds-accordion_37.entry.esm.js +0 -1201
  60. package/eds-card-desc_2.entry.esm.js +0 -85
  61. package/eds-card-generic.entry.esm.js +0 -116
  62. package/eds-card-project.entry.esm.js +0 -209
  63. package/eds-card-section.entry.esm.js +0 -56
  64. package/eds-card-tags.entry.esm.js +0 -27
  65. package/eds-card-tool.entry.esm.js +0 -105
  66. package/eds-footer.entry.esm.js +0 -135
  67. package/eds-fullscreen-menu.entry.esm.js +0 -143
  68. package/eds-icon-arrow-diagonal.entry.esm.js +0 -21
  69. package/eds-icon-arrow-right.entry.esm.js +0 -21
  70. package/eds-icon-bin.entry.esm.js +0 -21
  71. package/eds-icon-bookmark.entry.esm.js +0 -21
  72. package/eds-icon-chevron-down.entry.esm.js +0 -21
  73. package/eds-icon-chevron-left.entry.esm.js +0 -21
  74. package/eds-icon-chevron-right.entry.esm.js +0 -21
  75. package/eds-icon-chevron-up.entry.esm.js +0 -21
  76. package/eds-icon-clone.entry.esm.js +0 -21
  77. package/eds-icon-close.entry.esm.js +0 -21
  78. package/eds-icon-copy.entry.esm.js +0 -21
  79. package/eds-icon-download.entry.esm.js +0 -21
  80. package/eds-icon-draft.entry.esm.js +0 -21
  81. package/eds-icon-edit.entry.esm.js +0 -21
  82. package/eds-icon-external.entry.esm.js +0 -21
  83. package/eds-icon-loader.entry.esm.js +0 -21
  84. package/eds-icon-menu.entry.esm.js +0 -21
  85. package/eds-icon-minus.entry.esm.js +0 -21
  86. package/eds-icon-more.entry.esm.js +0 -21
  87. package/eds-icon-paper.entry.esm.js +0 -21
  88. package/eds-icon-plus.entry.esm.js +0 -21
  89. package/eds-icon-portal.entry.esm.js +0 -21
  90. package/eds-icon-private.entry.esm.js +0 -21
  91. package/eds-icon-public.entry.esm.js +0 -21
  92. package/eds-icon-search.entry.esm.js +0 -21
  93. package/eds-icon-star.entry.esm.js +0 -21
  94. package/eds-icon-start.entry.esm.js +0 -21
  95. package/eds-icon-success.entry.esm.js +0 -21
  96. package/eds-icon-thumbs-down.entry.esm.js +0 -21
  97. package/eds-icon-thumbs-up.entry.esm.js +0 -21
  98. package/eds-icon-tutorial.entry.esm.js +0 -21
  99. package/eds-icon-unknown.entry.esm.js +0 -21
  100. package/eds-icon-updown.entry.esm.js +0 -21
  101. package/eds-icon-user.entry.esm.js +0 -21
  102. package/eds-icon-view.entry.esm.js +0 -21
  103. package/eds-progress-bar.entry.esm.js +0 -52
  104. package/eds-social-networks.entry.esm.js +0 -73
  105. package/eds-trl.entry.esm.js +0 -68
  106. package/eu-9ddde93a.esm.js +0 -30
  107. package/index-39c58238.esm.js +0 -58
  108. package/loader-c9628637.esm.js +0 -30
  109. package/logo-color-7f1fd803.esm.js +0 -115
  110. package/logo-color-margins-ff8ce71b.esm.js +0 -118
  111. package/logo-white-no-bg-f382f86f.esm.js +0 -1021
  112. package/menu-340ea948.esm.js +0 -11
  113. package/minus-b30a7c71.esm.js +0 -11
  114. package/more-4449d549.esm.js +0 -13
  115. package/paper-8e74ea31.esm.js +0 -15
  116. package/plus-89c07be2.esm.js +0 -12
  117. package/portal-d6c8ce56.esm.js +0 -18
  118. package/private-1c25ff8e.esm.js +0 -25
  119. package/public-d4d8c585.esm.js +0 -16
  120. package/search-fbcd79c2.esm.js +0 -12
  121. package/star-0da9b5e9.esm.js +0 -5
  122. package/start-65126a4f.esm.js +0 -3
  123. package/success-443809da.esm.js +0 -18
  124. package/thumbs-down-a18fd049.esm.js +0 -5
  125. package/thumbs-up-c19a71bc.esm.js +0 -6
  126. package/tutotial-150ee1fd.esm.js +0 -27
  127. package/unknown-ed01a24c.esm.js +0 -22
  128. package/up-and-down-8b69ca97.esm.js +0 -12
  129. package/user-71ebdc15.esm.js +0 -16
  130. package/view-e900f2d4.esm.js +0 -3
@@ -4,20 +4,33 @@ import 'react';
4
4
  import 'react/jsx-runtime';
5
5
  import 'react-dom';
6
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-9999991{z-index:9999991}.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\\:min-w-\\[500px\\]{width:500px}.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}}";
7
+ const edsModalCss = ".modal-open{display:flex}.modal-closed{display:none}.modal-backdrop{}.backdrop-visible{opacity:0.9}.backdrop-hidden{opacity:0}.modal-content{}.modal-content-visible{opacity:1}.modal-content-hidden{opacity:0}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.flex-col{flex-direction:column}.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-9999991{z-index:9999991}.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}.py-24{padding-top:1.5rem;padding-bottom:1.5rem}.leading-normal{line-height:1.5}.bg-inverse{background-color:var(--white)}.bg-dark{background-color:var(--grey-light)}.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}.top-16{top:1rem}.left-0{left:0rem}.top-20{top:1.25rem}.bottom-0{bottom:0rem}.bottom-16{bottom:1rem}.bottom-20{bottom:1.25rem}.grow{flex-grow:1}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.overflow-y-auto{overflow-y:auto}.max-h-\\[90vh\\]{max-height:90vh}.-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-default{color:var(--black)}.text-inverse{color:var(--white)}.bg-dark{background-color:var(--grey-light)}.bg-strong{background-color:var(--grey-dark)}.bg-strongest{background-color:var(--brand-black)}.mr-8{margin-right:0.5rem}.pt-8{padding-top:0.5rem}.bg-opacity-90{opacity:0.9}.modal-title{line-height:1.5;padding-bottom:2px;display:inline-block}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;padding-bottom:2px;}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;padding-bottom:2px;}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;padding-bottom:2px;}.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;padding-bottom:2px;}.modal-small{min-width:300px;max-width:500px}.modal-medium{min-width:300px;max-width:700px}.modal-large{min-width:300px;max-width:900px}@media (max-width: 749px){.modal-small,.modal-medium,.modal-large{min-width:calc(100% - 2rem);max-width:calc(100% - 2rem);margin:0 1rem}}@media (min-width: 750px){.md\\:bottom-20{bottom:1.25rem}.md\\:w-auto{width:auto}.md\\:min-w-\\[500px\\]{width:500px}.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
8
  const EdsModalStyle0 = edsModalCss;
9
9
  const EdsModal = class {
10
10
  constructor(hostRef) {
11
11
  registerInstance(this, hostRef);
12
+ this.previousActiveElement = null;
12
13
  this.heading = '';
13
- this.truncate = 1;
14
+ this.truncate = undefined;
14
15
  this.position = 'middle';
16
+ this.size = 'medium';
15
17
  this.inverseHeader = false;
16
18
  this.isOpen = false;
17
19
  }
18
20
  getTruncateClass() {
19
21
  return this.truncate ? `line-clamp-${this.truncate}` : '';
20
22
  }
23
+ getSizeClass() {
24
+ switch (this.size) {
25
+ case 'small':
26
+ return 'modal-small';
27
+ case 'large':
28
+ return 'modal-large';
29
+ case 'medium':
30
+ default:
31
+ return 'modal-medium';
32
+ }
33
+ }
21
34
  /**
22
35
  * Returns the Tailwind CSS classes to position the modal based on the `position` prop.
23
36
  *
@@ -28,12 +41,12 @@ const EdsModal = class {
28
41
  switch (this.position) {
29
42
  case 'top':
30
43
  return [
31
- // mobile: pinned to top, full-width
32
- 'top-0', 'left-0', 'w-full',
44
+ // mobile: small gap from top, full-width
45
+ 'top-16', 'left-0', 'w-full',
33
46
  // desktop: half-width centred and offset down
34
47
  'md:left-1/2', 'md:w-auto', 'md:-translate-x-1/2', 'md:top-20'].join(' ');
35
48
  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(' ');
49
+ return ['bottom-16', 'left-0', 'w-full', 'md:left-1/2', 'md:w-auto', 'md:-translate-x-1/2', 'md:bottom-20'].join(' ');
37
50
  /*case 'left':
38
51
 
39
52
  case 'right':
@@ -42,17 +55,53 @@ const EdsModal = class {
42
55
  default:
43
56
  return [
44
57
  // mobile: full-width, start from top with a little padding
45
- 'top-0', 'left-0', 'w-full', 'pt-4',
58
+ 'top-16', 'left-0', 'w-full',
46
59
  // desktop: centred both axes
47
60
  'md:left-1/2', 'md:top-1/2', 'md:w-auto', 'md:-translate-x-1/2', 'md:-translate-y-1/2'].join(' ');
48
61
  }
49
62
  }
63
+ trapFocus(event) {
64
+ var _a;
65
+ if (event.key !== 'Tab') return;
66
+ const focusableElements = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
67
+ if (!focusableElements || focusableElements.length === 0) return;
68
+ const firstElement = focusableElements[0];
69
+ const lastElement = focusableElements[focusableElements.length - 1];
70
+ if (event.shiftKey) {
71
+ if (document.activeElement === firstElement) {
72
+ lastElement.focus();
73
+ event.preventDefault();
74
+ }
75
+ } else {
76
+ if (document.activeElement === lastElement) {
77
+ firstElement.focus();
78
+ event.preventDefault();
79
+ }
80
+ }
81
+ }
82
+ lockBodyScroll() {
83
+ document.body.style.overflow = 'hidden';
84
+ }
85
+ unlockBodyScroll() {
86
+ document.body.style.overflow = '';
87
+ }
50
88
  /**
51
89
  * Opens the modal.
52
90
  */
53
91
  async open() {
54
92
  var _a;
93
+ // Store currently focused element
94
+ this.previousActiveElement = document.activeElement;
55
95
  this.isOpen = true;
96
+ this.lockBodyScroll();
97
+ // Focus first focusable element in modal after it renders
98
+ setTimeout(() => {
99
+ var _a;
100
+ const focusableElements = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
101
+ if (focusableElements && focusableElements.length > 0) {
102
+ focusableElements[0].focus();
103
+ }
104
+ }, 100);
56
105
  sendAnalytics({
57
106
  category: 'ui-component',
58
107
  parentContext: null,
@@ -67,6 +116,14 @@ const EdsModal = class {
67
116
  async close() {
68
117
  var _a;
69
118
  this.isOpen = false;
119
+ this.unlockBodyScroll();
120
+ // Return focus to previously focused element
121
+ if (this.previousActiveElement && typeof this.previousActiveElement.focus === 'function') {
122
+ setTimeout(() => {
123
+ var _a;
124
+ (_a = this.previousActiveElement) === null || _a === void 0 ? void 0 : _a.focus();
125
+ }, 100);
126
+ }
70
127
  sendAnalytics({
71
128
  category: 'ui-component',
72
129
  parentContext: null,
@@ -79,7 +136,11 @@ const EdsModal = class {
79
136
  * Toggles the modal open or closed.
80
137
  */
81
138
  async toggle() {
82
- this.isOpen = !this.isOpen;
139
+ if (this.isOpen) {
140
+ await this.close();
141
+ } else {
142
+ await this.open();
143
+ }
83
144
  }
84
145
  /**
85
146
  * Listens for global custom events to open the modal.
@@ -94,52 +155,48 @@ const EdsModal = class {
94
155
  this.close();
95
156
  }
96
157
  /**
97
- * Closes the modal when the Escape key is pressed.
158
+ * Closes the modal when the Escape key is pressed and handles focus trapping on Tab.
98
159
  */
99
160
  handleKeyDown(event) {
100
- if (this.isOpen && event.key === 'Escape') {
161
+ if (!this.isOpen) return;
162
+ if (event.key === 'Escape') {
101
163
  this.close();
164
+ } else if (event.key === 'Tab') {
165
+ this.trapFocus(event);
102
166
  }
103
167
  }
104
168
  render() {
105
169
  // Generate a unique id for the title so we can reference it for aria-labelledby.
106
170
  const titleId = `modal-title-${this.el.tagName.toLowerCase()}`;
171
+ // Don't render anything when modal is closed to prevent blocking clicks
172
+ if (!this.isOpen) {
173
+ return null;
174
+ }
107
175
  return h("div", {
108
- key: '25f038fe934339968388e7b5281a8f0b8509f789',
109
176
  id: "eds-modal",
110
- class: `${this.isOpen ? 'block' : 'hidden'} fixed inset-0 z-9999991 flex`,
177
+ class: "modal-open fixed inset-0 z-9999991 flex",
111
178
  role: "dialog",
112
179
  "aria-modal": "true",
113
180
  "aria-labelledby": titleId
114
- }, this.isOpen && h("div", {
115
- key: '57f180a65ef43fc8f8c5a232c4b80a880fdfc8e9',
116
- class: "fixed inset-0 bg-dark bg-opacity-90" // Add backdrop-blur utility class here
117
- ,
118
-
181
+ }, h("div", {
182
+ class: "modal-backdrop fixed inset-0 bg-dark backdrop-visible",
119
183
  onClick: () => this.close()
120
184
  }), h("div", {
121
- key: 'f8e4005425c463fbfd38c4174f3bc315a648d05f',
122
- class: `container absolute bg-inverse z-10 ${this.getModalPositionClasses()} grow justify-center`
185
+ class: `container absolute bg-inverse z-10 rounded-lg shadow-lg ${this.getModalPositionClasses()} ${this.getSizeClass()} grow justify-center max-h-[90vh] flex flex-col modal-content modal-content-visible`
123
186
  }, h("div", {
124
- key: 'dd9c641489dfea9ec2784de91ca3e819a8c2413c',
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'}`
187
+ class: `flex justify-between items-center border-b-2 border-softer px-20 py-24 flex-shrink-0 ${this.inverseHeader ? 'bg-strongest text-inverse' : 'bg-dark text-default'}`
126
188
  }, h("span", {
127
- key: '2e596080da1d79bcc91d542f592ab2b22c96b9d6',
128
189
  id: titleId,
129
- class: `f-heading-04 ${this.getTruncateClass()}`
190
+ class: `f-heading-04 mr-8 modal-title ${this.getTruncateClass()}`
130
191
  }, this.heading), h("eds-button", {
131
- key: '260a6ccb15c3aed11585b7d81c1c1d4912e3cd3f',
132
- intent: "tertiary",
192
+ intent: this.inverseHeader ? 'ghostInverse' : 'secondary',
193
+ size: "large",
133
194
  icon: "close",
134
195
  "aria-label": "Close modal",
135
- onClick: () => this.close(),
136
- "extra-class": "ml-8 text-default"
196
+ onClick: () => this.close()
137
197
  })), h("div", {
138
- key: '96f67530d2c0504507e3fb9becf537f5517081d1',
139
- class: "pt-8 px-20 py-20"
140
- }, h("slot", {
141
- key: '3ffc38832d4a4e8d61c5182f7ceda4ea7876fa31'
142
- }))));
198
+ class: "pt-8 px-20 py-20 overflow-y-auto flex-1"
199
+ }, h("slot", null))));
143
200
  }
144
201
  get el() {
145
202
  return getElement(this);
@@ -54,7 +54,7 @@ const EdsPie = class {
54
54
  const start = cumulative,
55
55
  end = cumulative + angle;
56
56
  cumulative = end;
57
- const color = s.color || palette.shift() || 'var(--color-chart-neutral-1)';
57
+ const color = s.color || palette.shift() || '#8c8c8c';
58
58
  return Object.assign(Object.assign({}, s), {
59
59
  start,
60
60
  end,
@@ -87,7 +87,7 @@ const EdsPie = class {
87
87
  cx: radius,
88
88
  cy: radius,
89
89
  r: innerRadius,
90
- fill: "var(--white)"
90
+ fill: "#FFFFFF"
91
91
  }), processed.map(s => {
92
92
  const midAngle = s.start + (s.end - s.start) / 2;
93
93
  const {
@@ -123,8 +123,42 @@ const EdsPie = class {
123
123
  };
124
124
  EdsPie.MAX_SLICES = 9;
125
125
  EdsPie.PALETTES = {
126
- semantic: ['var(--color-chart-accent)', 'var(--color-chart-strong)', 'var(--color-chart-accent-dark)', 'var(--color-chart-lighter)', 'var(--color-chart-accent-light)', 'var(--color-chart-lightest)', 'var(--color-chart-accent-lighter)', 'var(--color-chart-darker)', 'var(--color-chart-accent-lightest)'],
127
- mono: ['var(--grey-700)', 'var(--grey-500)', 'var(--grey-300)', 'var(--grey-100)', 'var(--grey-800)', 'var(--grey-600)', 'var(--grey-400)', 'var(--grey-200)', 'var(--grey-900)']
126
+ semantic: ['#00e766',
127
+ // green-500
128
+ '#666666',
129
+ // grey-700
130
+ '#00c959',
131
+ // green-600
132
+ '#8c8c8c',
133
+ // grey-500
134
+ '#63fb92',
135
+ // green-400
136
+ '#d8d8d8',
137
+ // grey-400
138
+ '#9dffb4',
139
+ // green-300
140
+ '#e6e6e6',
141
+ // grey-300
142
+ '#d3ffdc' // green-200
143
+ ],
144
+ mono: ['#666666',
145
+ // grey-700
146
+ '#8c8c8c',
147
+ // grey-500
148
+ '#e6e6e6',
149
+ // grey-300
150
+ '#f8f8f8',
151
+ // grey-100
152
+ '#4d4d4d',
153
+ // grey-800
154
+ '#6e6e6e',
155
+ // grey-600
156
+ '#d8d8d8',
157
+ // grey-400
158
+ '#f2f2f2',
159
+ // grey-200
160
+ '#242424' // grey-900
161
+ ]
128
162
  };
129
163
  EdsPie.style = EdsPieStyle0;
130
164
 
@@ -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: '97a75a0b2a26e912499d844df4e3eb10c2c9eb29'
18
+ key: '65cb765fe9b997b5e573f5befd4ca1ea6611f1c5'
19
19
  }, h("eds-section-heading", {
20
- key: 'fe5d0d7a0594bac513551c4a7ea45e34598ec265',
20
+ key: 'a48c9fef0a45fbed08749e8b4f17d762d38bbb5b',
21
21
  headingLevel: this.headingLevel,
22
22
  sectionTitle: this.sectionTitle
23
23
  }), h("slot", {
24
- key: '5f6492d074ffc9996ac39449a037e267a5b399d2'
24
+ key: '7e26bc40132c32670db60f5765b412d00d64c129'
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: '9003f6d452637cdc9ed3bea69689cd92546860b8',
55
+ key: '032f8629ef5ea1c45f40a135a54c32337f7181e9',
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: '2cb120e1bf8e4816cb56c8ba8f8bbae546bd7baf',
63
+ key: '37f821426fe05dba66445745da3d23c9ff75345e',
64
64
  class: this.getHeadingClass()
65
65
  }, this.sectionTitle));
66
66
  }
@@ -3,7 +3,7 @@ import 'react';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react-dom';
5
5
 
6
- const edsSplashScreenCss = ".splash-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999999;background-color:var(--grey-200);display:flex;flex-direction:column;align-items:center;justify-content:center}.logo-container{width:200px;height:200px;margin-bottom:1rem}.content-container{position:relative;width:5rem;height:5rem;display:flex;align-items:center;justify-content:center}";
6
+ const edsSplashScreenCss = ".splash-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999999;background-color:var(--grey-200);display:flex;flex-direction:column;align-items:center;justify-content:center}.logo-container{width:300px;height:60px;animation:loading-pulse 1.5s ease-in-out infinite}@keyframes loading-pulse{0%,100%{opacity:1}50%{opacity:0.6}}";
7
7
  const EdsSplashScreenStyle0 = edsSplashScreenCss;
8
8
  const EdsSplashScreen = class {
9
9
  constructor(hostRef) {
@@ -55,22 +55,14 @@ const EdsSplashScreen = class {
55
55
  return h(Host, null, h("div", {
56
56
  class: "splash-overlay",
57
57
  style: {
58
- background: this.inverse ? 'black' : 'var(--grey-200)'
58
+ background: this.inverse ? 'var(--brand-black)' : 'var(--grey-light)'
59
59
  }
60
60
  }, h("div", {
61
61
  class: "logo-container"
62
62
  }, this.inverse ? h("eds-logo", {
63
- orientation: "vertical",
64
- type: "color-white"
63
+ variant: "negative"
65
64
  }) : h("eds-logo", {
66
- orientation: "vertical",
67
- type: "color"
68
- })), h("div", {
69
- class: "content-container"
70
- }, h("eds-spinner", {
71
- size: "xs",
72
- background: "none",
73
- fullscreen: false
65
+ variant: "positive"
74
66
  }))));
75
67
  }
76
68
  static get watchers() {
@@ -46,29 +46,26 @@ const EdsTimeline = class {
46
46
  }
47
47
  render() {
48
48
  return h("div", {
49
- key: 'cc0184654ced150ab0500a77d89f831530ddc52c',
49
+ key: '9670bbe26e6f092d88c73268838d9349dca0c323',
50
50
  class: "max-w-sidebar mx-auto px-4 py-8"
51
51
  }, h("div", {
52
- key: '693b53e776bdf110d7f21e68b9e3f8fb6f5eab4b',
52
+ key: '202722dc0cb384ce68b2239915f44bf90d87a77e',
53
53
  class: "relative"
54
54
  }, h("div", {
55
- key: '030ef1b15f76a75292b2998cb7083da0e5f16bd4',
55
+ key: '59760e5a62518dc6c3cc7fcfa711e060837f4c49',
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: '0811245c700b23e10a3d2b83504673aee12a8bc4',
58
+ key: '2f1f6c5f5e7f2a770fc762b1b886dd199f0cf953',
59
59
  class: "space-y-16"
60
60
  }, this.parsedEvents.map((event, index) => h("div", {
61
61
  class: "relative flex"
62
62
  }, h("div", {
63
63
  class: `w-1/2 ${index % 2 === 0 ? 'pr-4' : ''}`
64
64
  }, index % 2 === 0 && h("eds-card-generic", {
65
- cardTitle: event.title,
65
+ title: event.title,
66
66
  url: "#",
67
67
  description: event.description,
68
- "heading-level": "h2",
69
- tiny: true,
70
- bg: !event.completed,
71
- "with-hover": "false",
68
+ intent: "secondary",
72
69
  tags: JSON.stringify(event.completed ? [{
73
70
  label: 'completed',
74
71
  style: 'accent'
@@ -86,13 +83,10 @@ const EdsTimeline = class {
86
83
  })), h("div", {
87
84
  class: `w-1/2 ${index % 2 !== 0 ? 'pl-4' : ''}`
88
85
  }, index % 2 !== 0 && h("eds-card-generic", {
89
- cardTitle: event.title,
86
+ title: event.title,
90
87
  url: "#",
91
88
  description: event.description,
92
- "heading-level": "h2",
93
- tiny: true,
94
- bg: !event.completed,
95
- "with-hover": "false",
89
+ intent: "secondary",
96
90
  tags: JSON.stringify(event.completed ? [{
97
91
  label: 'completed',
98
92
  style: 'accent'
@@ -74,7 +74,7 @@ const EdsToastManager = class {
74
74
  }
75
75
  render() {
76
76
  return h("div", {
77
- key: 'ac2e0d12975d88e9a22db8b92255a597e7f6ea6f',
77
+ key: 'd707822f33892171428aa926822dff5ffefac219',
78
78
  class: "toast-container"
79
79
  }, this.toasts.map(t => h("div", {
80
80
  key: t.id
@@ -0,0 +1,7 @@
1
+ const euSvg = `<svg width="63" height="50" viewBox="0 0 640 480" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 0h640v480H0V0z" fill="#039"/>
3
+ <path d="M325.032 93.15l17.513-.398-14.401 9.972 5.789 16.53L320 108.639l-13.933 10.615 5.789-16.531-14.399-9.97 17.51.396L320 76.374l5.032 16.775zm0 284.444l17.513-.398-14.401 9.972 5.789 16.53L320 393.083l-13.933 10.615 5.789-16.531-14.399-9.97 17.51.397L320 360.818l5.032 16.776zm-147.25-158.983l5.029 16.761 17.511-.397-14.4 9.969 5.79 16.533-13.933-10.616-13.932 10.616 5.788-16.531-14.401-9.971 17.511.397 5.028-16.761.004-.015.001.003.001-.003.003.015zm77.885-105.334l17.511-.397-14.401 9.971 5.79 16.531-13.932-10.614-13.933 10.615 5.788-16.531-14.4-9.971h.005l-.003-.001 17.51.397 5.033-16.775 5.032 16.775zm-52.729 52.729l17.511-.398h.002l-14.402 9.971 5.79 16.531-13.933-10.615-13.932 10.615 5.789-16.532-14.4-9.97 17.51.397 5.033-16.776 5.032 16.777zm-5.001 125.803l5.027 16.759 17.513-.397-14.401 9.971 5.79 16.531-.005-.005.003.006-13.932-10.615-13.933 10.615 5.788-16.532-14.398-9.97 17.51.396 5.029-16.759.004-.016v.003l.002-.003.003.016zm51.445 47.71l5.027 16.76 17.513-.397-14.401 9.97 5.791 16.532-.004-.004.002.004-13.933-10.615-13.933 10.615 5.788-16.532-14.398-9.97 17.51.397 5.029-16.76.004-.016v.003l.002-.003.003.016zm217.873-104.147l17.511-.397-14.401 9.969 5.79 16.533-13.934-10.616-13.931 10.616 5.789-16.533-14.399-9.969 17.509.397 5.034-16.776 5.032 16.776zm-63.958-95.997l-5.786-16.522 14.401-9.972-17.511.398-5.033-16.778-5.034 16.777-17.51-.398 14.4 9.972-5.789 16.53 13.932-10.614 13.934 10.614-.004-.007zm38.797 42.122l13.934 10.614-.004-.007-5.787-16.524 14.401-9.971-17.51.399-5.033-16.778-5.033 16.777-17.51-.398h-.001l14.399 9.972-5.787 16.529 13.931-10.613zm5.007 127.071l17.51-.397-14.4 9.971 5.79 16.531-13.933-10.614-13.932 10.615 5.788-16.531-14.401-9.971h.005l-.003-.001 17.51.397 5.033-16.775 5.033 16.775zm-51.446 47.711l17.511-.397-14.4 9.97 5.79 16.532-13.933-10.615-13.933 10.615 5.789-16.531-14.401-9.971h.002l17.51.397 5.033-16.776 5.032 16.776z" fill="#FC0"/>
4
+ </svg>
5
+ `;
6
+
7
+ export { euSvg as e };
@@ -29,23 +29,23 @@ const IncorrectUseOfColors = class {
29
29
  }
30
30
  render() {
31
31
  return h("div", {
32
- key: 'dc96e5e7e26b90d55edf211a12cca96331fd50ee',
32
+ key: '424c9b01d69068fa058b25dd89df08154912dfe7',
33
33
  class: "container"
34
34
  }, h("div", {
35
- key: '7168395a53d0d1ccb01ea8850dc78b9bafbc80db',
35
+ key: '5a9dae817344c3c92b8bdb55b806b1f96e26496d',
36
36
  class: "mb-8"
37
37
  }, h("eds-alert", {
38
- key: '66969d5478be8b0e07dc96e62aac4273fe23927c',
38
+ key: 'afeaa6e5320151800d31c3fecb85669000409a14',
39
39
  message: "Note that, each of the four colour tones cannot be mixed in the same composition.",
40
40
  intent: "error"
41
41
  })), h("div", {
42
- key: '1b31ee746e23288fc37c17e71bc9c5a4d9333a0a',
42
+ key: '87241b25b9f9e326183ba4496983d93bef766380',
43
43
  class: "flex"
44
44
  }, h("div", {
45
- key: 'f04c1b2349c82720f7e3d9a29c2aaf0ff9d73af0',
45
+ key: 'c018e1fffc8198b3e48e1df6b1e8d560e1c7b84a',
46
46
  class: "w-full"
47
47
  }, h("ul", {
48
- key: '2ba63701fdde544e5c510e03676d1b1c74061931',
48
+ key: '97845ca2dfe71ac0feb27762c4b3c71c80ca626c',
49
49
  class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16"
50
50
  }, primary.map(color => h("li", {
51
51
  class: "grid-col-span-12 md:grid-col-span-6 flex flex-col"
@@ -55,10 +55,10 @@ const IncorrectUseOfColors = class {
55
55
  backgroundColor: color.background
56
56
  }
57
57
  }))))), h("div", {
58
- key: '7642247ada8ff3201e3a1273a20cb37860a1581d',
58
+ key: '05adf9099f1b043d08577cf1f233551d83fc4242',
59
59
  class: "w-full"
60
60
  }, h("ul", {
61
- key: 'ef03781a8ed2067adc0b8cb65ba9268ba0920f04',
61
+ key: '55792bcf3ecb93df6884d7366aa8c7f2c3cf5ad5',
62
62
  class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16"
63
63
  }, incorrect.map(color => h("li", {
64
64
  class: "grid-col-span-12 md:grid-col-span-6 flex flex-col"
package/index.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- export { E as EdsAccordion, a as EdsAlert, b as EdsAvatar, d as EdsBlockBreak, e as EdsBreadcrumb, f as EdsButton, i as EdsCardGeneric, j as EdsCardSection, k as EdsCodeBlock, l as EdsDropdown, m as EdsFeedback, n as EdsFooter, o as EdsForm, p as EdsFullscreenMenu, q as EdsGauge, s as EdsGlobalSearch, t as EdsHeader, u as EdsIconWrapper, v as EdsImg, w as EdsInputField, x as EdsInputFooter, y as EdsInputLabel, z as EdsLink, A as EdsLogo, B as EdsMatomoNotice, C as EdsModal, D as EdsNps, F as EdsPagination, G as EdsPie, I as EdsProgressBar, J as EdsRating, K as EdsSidebar, L as EdsSocialNetworks, M as EdsSpinner, N as EdsSplashScreen, O as EdsSteps, P as EdsStepsV2, Q as EdsSwitch, R as EdsTable, S as EdsTabs, T as EdsTag, U as EdsToast, V as EdsTooltip, W as EdsUser } from './index.esm2.js';
1
+ export { E as EdsAccordion, a as EdsAlert, b as EdsAvatar, d as EdsBlockBreak, e as EdsBreadcrumb, f as EdsButton, i as EdsCardApp, j as EdsCardCta, k as EdsCardFeature, l as EdsCardGeneric, m as EdsCardHero, n as EdsCardStat, o as EdsCodeBlock, p as EdsDropdown, q as EdsFeedback, s as EdsFooter, t as EdsForm, u as EdsGauge, v as EdsGlobalSearch, w as EdsHeader, x as EdsIconWrapper, y as EdsImg, z as EdsInputDropzone, A as EdsInputField, B as EdsInputFile, C as EdsInputFooter, D as EdsInputLabel, F as EdsKgWebServicesSelect, G as EdsLink, I as EdsLogo, J as EdsMatomoNotice, K as EdsModal, L as EdsNps, M as EdsPagination, N as EdsPie, O as EdsProgressBar, P as EdsRating, Q as EdsSidebar, R as EdsSocialNetworks, S as EdsSpinner, T as EdsSplashScreen, U as EdsSteps, V as EdsStepsV2, W as EdsSwitch, X as EdsTable, Y as EdsTabs, Z as EdsTag, _ as EdsToast, $ as EdsTooltip, a0 as EdsUser } from './index.esm2.js';
2
2
  import 'react';
3
3
  import 'react/jsx-runtime';
4
4
  import 'react-dom';