@ebrains/components 0.3.0-alpha.0 → 0.5.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 (550) hide show
  1. package/dist/cjs/analytics-223ea8e5.js +51 -0
  2. package/dist/cjs/color-c00146a8.js +134 -0
  3. package/dist/cjs/color-primary-palette_6.cjs.entry.js +14 -14
  4. package/dist/cjs/components.cjs.js +1 -1
  5. package/dist/cjs/correct-use-of-colors.cjs.entry.js +1 -1
  6. package/dist/cjs/eds-accordion.cjs.entry.js +11 -20
  7. package/dist/cjs/{eds-avatar_17.cjs.entry.js → eds-alert_17.cjs.entry.js} +310 -372
  8. package/dist/cjs/{eds-card-desc_3.cjs.entry.js → eds-avatar_4.cjs.entry.js} +73 -3
  9. package/dist/cjs/eds-card-generic.cjs.entry.js +4 -5
  10. package/dist/cjs/eds-card-project.cjs.entry.js +4 -3
  11. package/dist/cjs/eds-card-section.cjs.entry.js +3 -3
  12. package/dist/cjs/eds-card-tags.cjs.entry.js +1 -1
  13. package/dist/cjs/eds-card-tool.cjs.entry.js +3 -4
  14. package/dist/cjs/eds-card-wrapper.cjs.entry.js +1 -1
  15. package/dist/cjs/eds-code-block.cjs.entry.js +49 -2
  16. package/dist/cjs/eds-components-section.cjs.entry.js +7 -3
  17. package/dist/cjs/eds-docs-palettes.cjs.entry.js +1 -1
  18. package/dist/cjs/eds-docs-tokens.cjs.entry.js +1 -1
  19. package/dist/cjs/eds-dropdown_2.cjs.entry.js +158 -0
  20. package/dist/cjs/eds-form.cjs.entry.js +62 -23
  21. package/dist/cjs/eds-frame.cjs.entry.js +1 -1
  22. package/dist/cjs/eds-icon-arrow-diagonal.cjs.entry.js +1 -1
  23. package/dist/cjs/eds-icon-arrow-right.cjs.entry.js +1 -1
  24. package/dist/cjs/eds-icon-bluesky.cjs.entry.js +1 -1
  25. package/dist/cjs/eds-icon-chevron-down.cjs.entry.js +1 -1
  26. package/dist/cjs/eds-icon-chevron-left.cjs.entry.js +1 -1
  27. package/dist/cjs/eds-icon-chevron-right.cjs.entry.js +1 -1
  28. package/dist/cjs/eds-icon-chevron-up.cjs.entry.js +1 -1
  29. package/dist/cjs/eds-icon-close.cjs.entry.js +1 -1
  30. package/dist/cjs/eds-icon-copy.cjs.entry.js +1 -1
  31. package/dist/cjs/eds-icon-eu.cjs.entry.js +1 -1
  32. package/dist/cjs/eds-icon-facebook.cjs.entry.js +1 -1
  33. package/dist/cjs/eds-icon-gitlab.cjs.entry.js +1 -1
  34. package/dist/cjs/eds-icon-linkedin.cjs.entry.js +1 -1
  35. package/dist/cjs/eds-icon-loader.cjs.entry.js +1 -1
  36. package/dist/cjs/eds-icon-mastodon.cjs.entry.js +1 -1
  37. package/dist/cjs/eds-icon-menu.cjs.entry.js +1 -1
  38. package/dist/cjs/eds-icon-more.cjs.entry.js +1 -1
  39. package/dist/cjs/eds-icon-search.cjs.entry.js +1 -1
  40. package/dist/cjs/eds-icon-success.cjs.entry.js +1 -1
  41. package/dist/cjs/eds-icon-twitter.cjs.entry.js +1 -1
  42. package/dist/cjs/eds-icon-user.cjs.entry.js +1 -1
  43. package/dist/cjs/eds-icon-youtube.cjs.entry.js +1 -1
  44. package/dist/cjs/eds-input_7.cjs.entry.js +18 -10
  45. package/dist/cjs/eds-login.cjs.entry.js +60 -41
  46. package/dist/cjs/eds-logo-variations.cjs.entry.js +1 -1
  47. package/dist/cjs/eds-matomo-notice.cjs.entry.js +2 -3
  48. package/dist/cjs/eds-modal.cjs.entry.js +49 -38
  49. package/dist/cjs/eds-navigator.cjs.entry.js +1 -1
  50. package/dist/cjs/eds-pagination_2.cjs.entry.js +34 -17
  51. package/dist/cjs/eds-progress-bar.cjs.entry.js +1 -1
  52. package/dist/cjs/eds-section-core_2.cjs.entry.js +3 -3
  53. package/dist/cjs/eds-svg-repository.cjs.entry.js +1 -1
  54. package/dist/cjs/eds-tab.cjs.entry.js +1 -1
  55. package/dist/cjs/eds-tabs-content.cjs.entry.js +4 -4
  56. package/dist/cjs/eds-tabs.cjs.entry.js +3 -3
  57. package/dist/cjs/eds-timeline.cjs.entry.js +3 -2
  58. package/dist/cjs/eds-tooltip.cjs.entry.js +10 -1
  59. package/dist/cjs/eds-trl.cjs.entry.js +7 -8
  60. package/dist/cjs/eds-user.cjs.entry.js +99 -0
  61. package/dist/cjs/eds-vertical-stepper.cjs.entry.js +45 -0
  62. package/dist/cjs/incorrect-use-of-colors.cjs.entry.js +1 -1
  63. package/dist/cjs/index-f08e4f5c.js +16 -12
  64. package/dist/cjs/{keycloak-5aaa21af.js → keycloak-93fc0315.js} +225 -170
  65. package/dist/cjs/loader.cjs.js +1 -1
  66. package/dist/cjs/logo-space.cjs.entry.js +1 -1
  67. package/dist/cjs/logo-variations-horizontal_2.cjs.entry.js +2 -2
  68. package/dist/cjs/logo-wrong-usage.cjs.entry.js +1 -1
  69. package/dist/cjs/token-list_3.cjs.entry.js +3 -3
  70. package/dist/cjs/token-ratios.cjs.entry.js +1 -1
  71. package/dist/cjs/token-spacing.cjs.entry.js +1 -1
  72. package/dist/cjs/token-typography.cjs.entry.js +1 -1
  73. package/dist/collection/collection-manifest.json +5 -2
  74. package/dist/collection/components/eds-accordion/eds-accordion.js +11 -20
  75. package/dist/collection/components/eds-alert/eds-alert.js +9 -8
  76. package/dist/collection/components/eds-alert/eds-alert.stories.js +4 -4
  77. package/dist/collection/components/eds-avatar/eds-avatar.js +8 -6
  78. package/dist/collection/components/eds-avatar/eds-avatar.stories.js +24 -22
  79. package/dist/collection/components/eds-block-break/eds-block-break.js +1 -1
  80. package/dist/collection/components/eds-breadcrump/eds-breadcrump.js +23 -28
  81. package/dist/collection/components/eds-button/eds-button.js +20 -25
  82. package/dist/collection/components/eds-cards/eds-card-composer/eds-card-desc/eds-card-desc.js +9 -1
  83. package/dist/collection/components/eds-cards/eds-card-composer/eds-card-tags/eds-card-tags.js +1 -1
  84. package/dist/collection/components/eds-cards/eds-card-composer/eds-card-title/eds-card-title.js +1 -1
  85. package/dist/collection/components/eds-cards/eds-card-composer/eds-card-wrapper/eds-card-wrapper.js +1 -1
  86. package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.js +15 -9
  87. package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.stories.js +1 -1
  88. package/dist/collection/components/eds-cards/eds-card-project/eds-card-project.js +3 -2
  89. package/dist/collection/components/eds-cards/eds-card-tool/eds-card-tool.js +2 -2
  90. package/dist/collection/components/eds-code-block/eds-code-block.js +58 -3
  91. package/dist/collection/components/eds-code-block/eds-code-block.stories.js +78 -0
  92. package/dist/collection/components/eds-dropdown/eds-dropdown.js +11 -21
  93. package/dist/collection/components/eds-form/eds-form.js +71 -45
  94. package/dist/collection/components/eds-form/eds-form.stories.js +0 -3
  95. package/dist/collection/components/eds-frame/eds-frame.js +1 -1
  96. package/dist/collection/components/eds-frame/eds-frame.stories.js +19 -18
  97. package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-down/eds-icon-chevron-down.js +1 -1
  98. package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-left/eds-icon-chevron-left.js +1 -1
  99. package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-right/eds-icon-chevron-right.js +1 -1
  100. package/dist/collection/components/eds-icons/chevron/eds-icon-chevron-up/eds-icon-chevron-up.js +1 -1
  101. package/dist/collection/components/eds-icons/eds-icon-arrow-diagonal/eds-icon-arrow-diagonal.js +1 -1
  102. package/dist/collection/components/eds-icons/eds-icon-arrow-right/eds-icon-arrow-right.js +1 -1
  103. package/dist/collection/components/eds-icons/eds-icon-close/eds-icon-close.js +1 -1
  104. package/dist/collection/components/eds-icons/eds-icon-copy/eds-icon-copy.js +1 -1
  105. package/dist/collection/components/eds-icons/eds-icon-eu/eds-icon-eu.js +1 -1
  106. package/dist/collection/components/eds-icons/eds-icon-gitlab/eds-icon-gitlab.js +1 -1
  107. package/dist/collection/components/eds-icons/eds-icon-loader/eds-icon-loader.js +1 -1
  108. package/dist/collection/components/eds-icons/eds-icon-menu/eds-icon-menu.js +1 -1
  109. package/dist/collection/components/eds-icons/eds-icon-more/eds-icon-more.js +1 -1
  110. package/dist/collection/components/eds-icons/eds-icon-search/eds-icon-search.js +1 -1
  111. package/dist/collection/components/eds-icons/eds-icon-success/eds-icon-success.js +1 -1
  112. package/dist/collection/components/eds-icons/eds-icon-user/eds-icon-user.js +1 -1
  113. package/dist/collection/components/eds-icons/social/eds-icon-bluesky/eds-icon-bluesky.js +1 -1
  114. package/dist/collection/components/eds-icons/social/eds-icon-facebook/eds-icon-facebook.js +1 -1
  115. package/dist/collection/components/eds-icons/social/eds-icon-linkedin/eds-icon-linkedin.js +1 -1
  116. package/dist/collection/components/eds-icons/social/eds-icon-mastodon/eds-icon-mastodon.js +1 -1
  117. package/dist/collection/components/eds-icons/social/eds-icon-twitter/eds-icon-twitter.js +1 -1
  118. package/dist/collection/components/eds-icons/social/eds-icon-youtube/eds-icon-youtube.js +1 -1
  119. package/dist/collection/components/eds-img/eds-img.js +13 -7
  120. package/dist/collection/components/eds-input-elements/eds-input/eds-input.js +2 -2
  121. package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.js +1 -1
  122. package/dist/collection/components/eds-input-elements/eds-input-label/eds-input-label.js +1 -1
  123. package/dist/collection/components/eds-input-elements/eds-input-range/eds-input-range.js +2 -2
  124. package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.js +1 -1
  125. package/dist/collection/components/eds-input-elements/eds-input-select/eds-input-select.js +14 -2
  126. package/dist/collection/components/eds-input-field/eds-input-field.js +2 -2
  127. package/dist/collection/components/eds-link/eds-link.js +8 -6
  128. package/dist/collection/components/eds-logo/eds-logo.js +21 -2
  129. package/dist/collection/components/eds-modal/eds-modal.css +16 -0
  130. package/dist/collection/components/eds-modal/eds-modal.js +75 -38
  131. package/dist/collection/components/eds-modal/eds-modal.stories.js +34 -18
  132. package/dist/collection/components/eds-navigator/eds-navigator.js +1 -1
  133. package/dist/collection/components/eds-pagination/eds-pagination.js +13 -9
  134. package/dist/collection/components/eds-progress-bar/eds-progress-bar.js +1 -1
  135. package/dist/collection/components/eds-rating/eds-rating.css +48 -0
  136. package/dist/collection/components/eds-rating/eds-rating.js +14 -14
  137. package/dist/collection/components/eds-section/eds-section-core/eds-section-core.js +1 -1
  138. package/dist/collection/components/eds-section/eds-section-core/eds-section-core.stories.js +12 -11
  139. package/dist/collection/components/eds-section/eds-section-heading/eds-section-heading.js +2 -2
  140. package/dist/collection/components/eds-steps/eds-steps.css +71 -0
  141. package/dist/collection/components/eds-steps/eds-steps.js +132 -0
  142. package/dist/collection/components/eds-steps/eds-steps.stories.js +35 -0
  143. package/dist/collection/components/eds-steps/eds-vertical-stepper.css +78 -0
  144. package/dist/collection/components/eds-steps/eds-vertical-stepper.js +72 -0
  145. package/dist/collection/components/eds-switch/eds-switch.css +59 -0
  146. package/dist/collection/components/eds-switch/eds-switch.js +131 -0
  147. package/dist/collection/components/eds-switch/eds-switch.stories.js +38 -0
  148. package/dist/collection/components/eds-tab/eds-tab.js +1 -1
  149. package/dist/collection/components/eds-table/eds-table.js +21 -8
  150. package/dist/collection/components/eds-tag/eds-tag.js +22 -1
  151. package/dist/collection/components/eds-timeline/eds-timeline.js +3 -2
  152. package/dist/collection/components/eds-toast/eds-toast.js +22 -1
  153. package/dist/collection/components/eds-tooltip/eds-tooltip.js +10 -1
  154. package/dist/collection/components/eds-trl/eds-trl.js +7 -8
  155. package/dist/collection/eds-docs-ui/colors/color-palette/primary.js +1 -1
  156. package/dist/collection/eds-docs-ui/colors/color-palette/secondary.js +1 -1
  157. package/dist/collection/eds-docs-ui/colors/color-palette/support.js +1 -1
  158. package/dist/collection/eds-docs-ui/colors/gradient-palette/primary.js +1 -1
  159. package/dist/collection/eds-docs-ui/colors/gradient-palette/secondary.js +7 -7
  160. package/dist/collection/eds-docs-ui/colors/gradient-palette/support.js +3 -3
  161. package/dist/collection/eds-docs-ui/colors/use-of-colors/correct-use-of-colors.js +1 -1
  162. package/dist/collection/eds-docs-ui/colors/use-of-colors/incorrect-use-of-colors.js +1 -1
  163. package/dist/collection/eds-docs-ui/design-tokens/token-list/token-list.js +1 -1
  164. package/dist/collection/eds-docs-ui/design-tokens/token-radii/token-radii.js +1 -1
  165. package/dist/collection/eds-docs-ui/design-tokens/token-ratios/token-ratios.js +1 -1
  166. package/dist/collection/eds-docs-ui/design-tokens/token-shadows/token-shadows.js +1 -1
  167. package/dist/collection/eds-docs-ui/design-tokens/token-spacing/token-spacing.js +1 -1
  168. package/dist/collection/eds-docs-ui/design-tokens/token-typography/token-typography.js +1 -1
  169. package/dist/collection/eds-docs-ui/eds-components-section/eds-components-section.js +1 -1
  170. package/dist/collection/eds-docs-ui/eds-docs-palettes/eds-docs-palettes.js +1 -1
  171. package/dist/collection/eds-docs-ui/eds-docs-tokens/eds-docs-tokens.js +1 -1
  172. package/dist/collection/eds-docs-ui/eds-logo-variations/eds-logo-variations.js +1 -1
  173. package/dist/collection/eds-docs-ui/eds-svg-repository/eds-svg-repository.js +1 -1
  174. package/dist/collection/eds-docs-ui/functional/installation.js +1 -1
  175. package/dist/collection/eds-docs-ui/functional/react.js +1 -1
  176. package/dist/collection/eds-docs-ui/logo/logo-space/logo-space.js +1 -1
  177. package/dist/collection/eds-docs-ui/logo/logo-variations/horizontal/logo-variations-horizontal.js +1 -1
  178. package/dist/collection/eds-docs-ui/logo/logo-variations/vertical/logo-variations-vertical.js +1 -1
  179. package/dist/collection/eds-docs-ui/logo/logo-wrong-usage/logo-wrong-usage.js +1 -1
  180. package/dist/collection/shared-ui/eds-card-section/eds-card-section.js +14 -7
  181. package/dist/collection/shared-ui/eds-card-section/eds-card-section.stories.js +8 -39
  182. package/dist/collection/shared-ui/eds-footer/eds-footer.js +1 -1
  183. package/dist/collection/shared-ui/eds-header/eds-header.js +2 -75
  184. package/dist/collection/shared-ui/eds-login/eds-login.js +66 -58
  185. package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.js +1 -1
  186. package/dist/collection/shared-ui/eds-social-networks/eds-social-networks.js +1 -1
  187. package/dist/collection/shared-ui/eds-tabs/eds-tabs.js +2 -2
  188. package/dist/collection/shared-ui/eds-tabs-content/eds-tabs-content.js +3 -3
  189. package/dist/collection/shared-ui/eds-toast-manager/eds-toast-manager.js +1 -1
  190. package/dist/collection/shared-ui/eds-user/eds-user.js +27 -24
  191. package/dist/collection/shared-ui/eds-user-modal/eds-user-modal.js +1 -1
  192. package/dist/collection/utils/analytics.js +85 -0
  193. package/dist/collection/utils/color.js +129 -0
  194. package/dist/collection/utils/global.js +8 -0
  195. package/dist/collection/utils/keycloak.js +11 -5
  196. package/dist/components/analytics.js +6 -1
  197. package/dist/components/color.js +0 -164
  198. package/dist/components/components.css +63 -0
  199. package/dist/components/components.esm.js +1 -1
  200. package/dist/components/correct-use-of-colors.js +1 -1
  201. package/dist/components/eds-accordion2.js +11 -20
  202. package/dist/components/eds-alert2.js +9 -8
  203. package/dist/components/eds-avatar2.js +3 -3
  204. package/dist/components/eds-block-break2.js +1 -1
  205. package/dist/components/eds-breadcrumb.js +23 -28
  206. package/dist/components/eds-button2.js +16 -14
  207. package/dist/components/eds-card-desc2.js +1 -1
  208. package/dist/components/eds-card-generic2.js +3 -4
  209. package/dist/components/eds-card-project.js +2 -2
  210. package/dist/components/eds-card-section.js +3 -3
  211. package/dist/components/eds-card-tags.js +1 -1
  212. package/dist/components/eds-card-title2.js +1 -1
  213. package/dist/components/eds-card-tool.js +1 -2
  214. package/dist/components/eds-card-wrapper.js +1 -1
  215. package/dist/components/eds-code-block2.js +49 -2
  216. package/dist/components/eds-components-section.js +7 -3
  217. package/dist/components/eds-docs-palettes.js +1 -1
  218. package/dist/components/eds-docs-tokens.js +1 -1
  219. package/dist/components/eds-dropdown2.js +11 -21
  220. package/dist/components/eds-footer2.js +1 -1
  221. package/dist/components/eds-form.js +67 -26
  222. package/dist/components/eds-frame.js +1 -1
  223. package/dist/components/eds-header.js +10 -48
  224. package/dist/components/eds-icon-arrow-diagonal.js +1 -1
  225. package/dist/components/eds-icon-arrow-right.js +1 -1
  226. package/dist/components/eds-icon-bluesky.js +1 -1
  227. package/dist/components/eds-icon-chevron-down.js +1 -1
  228. package/dist/components/eds-icon-chevron-left.js +1 -1
  229. package/dist/components/eds-icon-chevron-right.js +1 -1
  230. package/dist/components/eds-icon-chevron-up.js +1 -1
  231. package/dist/components/eds-icon-close.js +1 -1
  232. package/dist/components/eds-icon-copy.js +1 -1
  233. package/dist/components/eds-icon-eu.js +1 -1
  234. package/dist/components/eds-icon-facebook.js +1 -1
  235. package/dist/components/eds-icon-gitlab.js +1 -1
  236. package/dist/components/eds-icon-linkedin.js +1 -1
  237. package/dist/components/eds-icon-loader.js +1 -1
  238. package/dist/components/eds-icon-mastodon.js +1 -1
  239. package/dist/components/eds-icon-menu.js +1 -1
  240. package/dist/components/eds-icon-more.js +1 -1
  241. package/dist/components/eds-icon-search.js +1 -1
  242. package/dist/components/eds-icon-success.js +1 -1
  243. package/dist/components/eds-icon-twitter.js +1 -1
  244. package/dist/components/eds-icon-user.js +1 -1
  245. package/dist/components/eds-icon-youtube.js +1 -1
  246. package/dist/components/eds-img2.js +9 -4
  247. package/dist/components/eds-input-field2.js +2 -2
  248. package/dist/components/eds-input-footer2.js +1 -1
  249. package/dist/components/eds-input-label2.js +1 -1
  250. package/dist/components/eds-input-range2.js +2 -2
  251. package/dist/components/eds-input-search2.js +1 -1
  252. package/dist/components/eds-input-select2.js +11 -2
  253. package/dist/components/eds-input2.js +2 -2
  254. package/dist/components/eds-link2.js +7 -6
  255. package/dist/components/eds-login.js +60 -41
  256. package/dist/components/eds-logo-variations.js +1 -1
  257. package/dist/components/eds-logo2.js +4 -3
  258. package/dist/components/eds-matomo-notice.js +0 -1
  259. package/dist/components/eds-modal.js +51 -39
  260. package/dist/components/eds-navigator.js +1 -1
  261. package/dist/components/eds-pagination2.js +13 -9
  262. package/dist/components/eds-progress-bar2.js +1 -1
  263. package/dist/components/eds-rating.js +25 -13
  264. package/dist/components/eds-section-core2.js +1 -1
  265. package/dist/components/eds-section-heading2.js +2 -2
  266. package/dist/components/eds-social-networks2.js +1 -1
  267. package/dist/components/eds-steps.d.ts +11 -0
  268. package/dist/components/eds-steps.js +106 -0
  269. package/dist/components/eds-svg-repository.js +1 -1
  270. package/dist/components/eds-switch.d.ts +11 -0
  271. package/dist/components/eds-switch.js +57 -0
  272. package/dist/components/eds-tab2.js +1 -1
  273. package/dist/components/eds-table2.js +21 -8
  274. package/dist/components/eds-tabs-content.js +2 -3
  275. package/dist/components/eds-tabs.js +1 -2
  276. package/dist/components/eds-tag2.js +5 -1
  277. package/dist/components/eds-timeline.js +3 -2
  278. package/dist/components/eds-toast-manager.js +1 -1
  279. package/dist/components/eds-toast2.js +22 -1
  280. package/dist/components/eds-tooltip.js +10 -1
  281. package/dist/components/eds-trl.js +7 -8
  282. package/dist/components/eds-user-modal2.js +1 -1
  283. package/dist/components/eds-user.js +157 -1
  284. package/dist/components/eds-vertical-stepper.d.ts +11 -0
  285. package/dist/components/eds-vertical-stepper.js +86 -0
  286. package/dist/components/incorrect-use-of-colors.js +1 -1
  287. package/dist/components/keycloak.js +225 -170
  288. package/dist/components/logo-space.js +1 -1
  289. package/dist/components/logo-variations-horizontal2.js +1 -1
  290. package/dist/components/logo-variations-vertical2.js +1 -1
  291. package/dist/components/logo-wrong-usage.js +1 -1
  292. package/dist/components/p-030f67c1.entry.js +1 -0
  293. package/dist/components/{p-32f282a9.entry.js → p-06299762.entry.js} +1 -1
  294. package/dist/components/p-0ab85eee.entry.js +1 -0
  295. package/dist/components/p-0bafc5ae.entry.js +1 -0
  296. package/dist/components/p-0e0e1815.entry.js +1 -0
  297. package/dist/components/p-0e7bdd2c.entry.js +1 -0
  298. package/dist/components/p-1ed3fdb7.entry.js +1 -0
  299. package/dist/components/p-209fa119.entry.js +1 -0
  300. package/dist/components/p-2831a9d5.entry.js +1 -0
  301. package/dist/components/p-2c00bd76.entry.js +1 -0
  302. package/dist/components/p-38d70586.entry.js +1 -0
  303. package/dist/components/p-3babd772.entry.js +1 -0
  304. package/dist/components/p-4a12a131.entry.js +1 -0
  305. package/dist/components/p-505ddcda.entry.js +1 -0
  306. package/dist/components/{p-52ac3456.entry.js → p-59405ecf.entry.js} +1 -1
  307. package/dist/components/p-5980a142.entry.js +1 -0
  308. package/dist/components/p-599c7b97.entry.js +1 -0
  309. package/dist/components/{p-22762818.entry.js → p-65703520.entry.js} +1 -1
  310. package/dist/components/p-6af40c33.entry.js +1 -0
  311. package/dist/components/p-6df9db15.entry.js +1 -0
  312. package/dist/components/p-72b42d77.entry.js +1 -0
  313. package/dist/components/p-75795b05.entry.js +1 -0
  314. package/dist/components/{p-435a14c1.entry.js → p-759b2640.entry.js} +1 -1
  315. package/dist/components/p-80a185ba.entry.js +1 -0
  316. package/dist/components/p-81942665.entry.js +1 -0
  317. package/dist/components/p-86fbc239.entry.js +1 -0
  318. package/dist/components/p-89227919.js +1 -0
  319. package/dist/components/{p-6fc62452.entry.js → p-89f600a3.entry.js} +1 -1
  320. package/dist/components/{p-2e8459ef.entry.js → p-8b583210.entry.js} +1 -1
  321. package/dist/components/p-8c4a0fc9.entry.js +1 -0
  322. package/dist/components/p-8d19a05b.entry.js +1 -0
  323. package/dist/components/p-8eab748d.js +1 -0
  324. package/dist/components/p-911d9b37.entry.js +1 -0
  325. package/dist/components/p-92e16cc9.entry.js +1 -0
  326. package/dist/components/p-96fe2267.entry.js +1 -0
  327. package/dist/components/p-9739def5.entry.js +1 -0
  328. package/dist/components/p-9826acae.entry.js +1 -0
  329. package/dist/components/{p-87830085.entry.js → p-9b441a1f.entry.js} +1 -1
  330. package/dist/components/p-a2621d66.entry.js +1 -0
  331. package/dist/components/p-a535838c.entry.js +1 -0
  332. package/dist/components/p-a5b7d72d.entry.js +1 -0
  333. package/dist/components/p-a5d00633.entry.js +1 -0
  334. package/dist/components/p-a63bd0c9.entry.js +1 -0
  335. package/dist/components/{p-762c8c83.entry.js → p-a846dbca.entry.js} +1 -1
  336. package/dist/components/p-a927a455.entry.js +1 -0
  337. package/dist/components/p-aec9b8e1.entry.js +1 -0
  338. package/dist/components/{p-e6bfbf51.entry.js → p-b1af5000.entry.js} +2 -2
  339. package/dist/components/{p-d571d530.entry.js → p-b1de9a6c.entry.js} +1 -1
  340. package/dist/components/{p-0910d733.entry.js → p-b3c1aef5.entry.js} +1 -1
  341. package/dist/components/p-b60ed774.entry.js +1 -0
  342. package/dist/components/p-b67aafe7.entry.js +1 -0
  343. package/dist/components/p-b79999d5.entry.js +1 -0
  344. package/dist/components/{p-02e2a62f.entry.js → p-b80457ed.entry.js} +1 -1
  345. package/dist/components/p-b860b4aa.entry.js +1 -0
  346. package/dist/components/p-c034c395.entry.js +1 -0
  347. package/dist/components/p-c5fa170d.entry.js +1 -0
  348. package/dist/components/p-d69ef196.entry.js +1 -0
  349. package/dist/components/p-de12396f.entry.js +1 -0
  350. package/dist/components/p-de2fbcfc.entry.js +1 -0
  351. package/dist/components/p-def72462.entry.js +1 -0
  352. package/dist/components/p-e2c250c5.entry.js +1 -0
  353. package/dist/components/p-eb0b93d5.js +1 -0
  354. package/dist/components/p-eeeb0d83.entry.js +1 -0
  355. package/dist/components/p-f08eac56.entry.js +1 -0
  356. package/dist/components/p-f1cd83da.entry.js +1 -0
  357. package/dist/components/{p-22e6d7d5.entry.js → p-f36f2aeb.entry.js} +1 -1
  358. package/dist/components/p-f5dafbc8.entry.js +1 -0
  359. package/dist/components/p-f7493f41.entry.js +1 -0
  360. package/dist/components/p-fce25541.entry.js +1 -0
  361. package/dist/components/primary.js +1 -1
  362. package/dist/components/primary2.js +1 -1
  363. package/dist/components/secondary.js +1 -1
  364. package/dist/components/secondary2.js +7 -7
  365. package/dist/components/support.js +1 -1
  366. package/dist/components/support2.js +3 -3
  367. package/dist/components/token-list2.js +1 -1
  368. package/dist/components/token-radii2.js +1 -1
  369. package/dist/components/token-ratios.js +1 -1
  370. package/dist/components/token-shadows2.js +1 -1
  371. package/dist/components/token-spacing.js +1 -1
  372. package/dist/components/token-typography.js +1 -1
  373. package/dist/esm/analytics-1cde8e4a.js +48 -0
  374. package/dist/esm/color-2554aad6.js +132 -0
  375. package/dist/esm/color-primary-palette_6.entry.js +14 -14
  376. package/dist/esm/components.js +1 -1
  377. package/dist/esm/correct-use-of-colors.entry.js +1 -1
  378. package/dist/esm/eds-accordion.entry.js +11 -20
  379. package/dist/esm/{eds-avatar_17.entry.js → eds-alert_17.entry.js} +304 -366
  380. package/dist/esm/{eds-card-desc_3.entry.js → eds-avatar_4.entry.js} +73 -4
  381. package/dist/esm/eds-card-generic.entry.js +3 -4
  382. package/dist/esm/eds-card-project.entry.js +3 -2
  383. package/dist/esm/eds-card-section.entry.js +3 -3
  384. package/dist/esm/eds-card-tags.entry.js +1 -1
  385. package/dist/esm/eds-card-tool.entry.js +2 -3
  386. package/dist/esm/eds-card-wrapper.entry.js +1 -1
  387. package/dist/esm/eds-code-block.entry.js +50 -3
  388. package/dist/esm/eds-components-section.entry.js +7 -3
  389. package/dist/esm/eds-docs-palettes.entry.js +1 -1
  390. package/dist/esm/eds-docs-tokens.entry.js +1 -1
  391. package/dist/esm/eds-dropdown_2.entry.js +153 -0
  392. package/dist/esm/eds-form.entry.js +62 -23
  393. package/dist/esm/eds-frame.entry.js +1 -1
  394. package/dist/esm/eds-icon-arrow-diagonal.entry.js +1 -1
  395. package/dist/esm/eds-icon-arrow-right.entry.js +1 -1
  396. package/dist/esm/eds-icon-bluesky.entry.js +1 -1
  397. package/dist/esm/eds-icon-chevron-down.entry.js +1 -1
  398. package/dist/esm/eds-icon-chevron-left.entry.js +1 -1
  399. package/dist/esm/eds-icon-chevron-right.entry.js +1 -1
  400. package/dist/esm/eds-icon-chevron-up.entry.js +1 -1
  401. package/dist/esm/eds-icon-close.entry.js +1 -1
  402. package/dist/esm/eds-icon-copy.entry.js +1 -1
  403. package/dist/esm/eds-icon-eu.entry.js +1 -1
  404. package/dist/esm/eds-icon-facebook.entry.js +1 -1
  405. package/dist/esm/eds-icon-gitlab.entry.js +1 -1
  406. package/dist/esm/eds-icon-linkedin.entry.js +1 -1
  407. package/dist/esm/eds-icon-loader.entry.js +1 -1
  408. package/dist/esm/eds-icon-mastodon.entry.js +1 -1
  409. package/dist/esm/eds-icon-menu.entry.js +1 -1
  410. package/dist/esm/eds-icon-more.entry.js +1 -1
  411. package/dist/esm/eds-icon-search.entry.js +1 -1
  412. package/dist/esm/eds-icon-success.entry.js +1 -1
  413. package/dist/esm/eds-icon-twitter.entry.js +1 -1
  414. package/dist/esm/eds-icon-user.entry.js +1 -1
  415. package/dist/esm/eds-icon-youtube.entry.js +1 -1
  416. package/dist/esm/eds-input_7.entry.js +18 -10
  417. package/dist/esm/eds-login.entry.js +60 -41
  418. package/dist/esm/eds-logo-variations.entry.js +1 -1
  419. package/dist/esm/eds-matomo-notice.entry.js +1 -2
  420. package/dist/esm/eds-modal.entry.js +49 -38
  421. package/dist/esm/eds-navigator.entry.js +1 -1
  422. package/dist/esm/eds-pagination_2.entry.js +34 -17
  423. package/dist/esm/eds-progress-bar.entry.js +1 -1
  424. package/dist/esm/eds-section-core_2.entry.js +3 -3
  425. package/dist/esm/eds-svg-repository.entry.js +1 -1
  426. package/dist/esm/eds-tab.entry.js +1 -1
  427. package/dist/esm/eds-tabs-content.entry.js +3 -3
  428. package/dist/esm/eds-tabs.entry.js +2 -2
  429. package/dist/esm/eds-timeline.entry.js +3 -2
  430. package/dist/esm/eds-tooltip.entry.js +10 -1
  431. package/dist/esm/eds-trl.entry.js +7 -8
  432. package/dist/esm/eds-user.entry.js +95 -0
  433. package/dist/esm/eds-vertical-stepper.entry.js +41 -0
  434. package/dist/esm/incorrect-use-of-colors.entry.js +1 -1
  435. package/dist/esm/index-e96badea.js +16 -12
  436. package/dist/esm/{keycloak-13893af6.js → keycloak-d502ec16.js} +225 -170
  437. package/dist/esm/loader.js +1 -1
  438. package/dist/esm/logo-space.entry.js +1 -1
  439. package/dist/esm/logo-variations-horizontal_2.entry.js +2 -2
  440. package/dist/esm/logo-wrong-usage.entry.js +1 -1
  441. package/dist/esm/token-list_3.entry.js +3 -3
  442. package/dist/esm/token-ratios.entry.js +1 -1
  443. package/dist/esm/token-spacing.entry.js +1 -1
  444. package/dist/esm/token-typography.entry.js +1 -1
  445. package/dist/hydrate/index.js +992 -763
  446. package/dist/hydrate/index.mjs +992 -763
  447. package/dist/types/components/eds-accordion/eds-accordion.d.ts +5 -12
  448. package/dist/types/components/eds-alert/eds-alert.d.ts +1 -1
  449. package/dist/types/components/eds-avatar/eds-avatar.stories.d.ts +0 -18
  450. package/dist/types/components/eds-breadcrump/eds-breadcrump.d.ts +9 -8
  451. package/dist/types/components/eds-button/eds-button.d.ts +2 -3
  452. package/dist/types/components/eds-cards/eds-card-composer/eds-card-desc/eds-card-desc.d.ts +8 -0
  453. package/dist/types/components/eds-cards/eds-card-generic/eds-card-generic.d.ts +6 -2
  454. package/dist/types/components/eds-code-block/eds-code-block.d.ts +43 -3
  455. package/dist/types/components/eds-code-block/eds-code-block.stories.d.ts +54 -0
  456. package/dist/types/components/eds-dropdown/eds-dropdown.d.ts +0 -7
  457. package/dist/types/components/eds-form/eds-form.d.ts +3 -7
  458. package/dist/types/components/eds-form/eds-form.stories.d.ts +0 -5
  459. package/dist/types/components/eds-frame/eds-frame.stories.d.ts +0 -2
  460. package/dist/types/components/eds-img/eds-img.d.ts +3 -1
  461. package/dist/types/components/eds-input-elements/eds-input-select/eds-input-select.d.ts +9 -0
  462. package/dist/types/components/eds-link/eds-link.d.ts +1 -1
  463. package/dist/types/components/eds-logo/eds-logo.d.ts +1 -0
  464. package/dist/types/components/eds-modal/eds-modal.d.ts +20 -10
  465. package/dist/types/components/eds-modal/eds-modal.stories.d.ts +9 -0
  466. package/dist/types/components/eds-rating/eds-rating.d.ts +4 -7
  467. package/dist/types/components/eds-section/eds-section-core/eds-section-core.stories.d.ts +0 -1
  468. package/dist/types/components/eds-steps/eds-steps.d.ts +39 -0
  469. package/dist/types/components/eds-steps/eds-steps.stories.d.ts +34 -0
  470. package/dist/types/components/eds-steps/eds-vertical-stepper.d.ts +22 -0
  471. package/dist/types/components/eds-switch/eds-switch.d.ts +25 -0
  472. package/dist/types/components/eds-switch/eds-switch.stories.d.ts +32 -0
  473. package/dist/types/components/eds-table/eds-table.d.ts +5 -5
  474. package/dist/types/components/eds-tag/eds-tag.d.ts +5 -0
  475. package/dist/types/components/eds-toast/eds-toast.d.ts +9 -0
  476. package/dist/types/components.d.ts +227 -164
  477. package/dist/types/shared-ui/eds-card-section/eds-card-section.d.ts +28 -6
  478. package/dist/types/shared-ui/eds-card-section/eds-card-section.stories.d.ts +42 -21
  479. package/dist/types/shared-ui/eds-header/eds-header.d.ts +0 -20
  480. package/dist/types/shared-ui/eds-login/eds-login.d.ts +21 -18
  481. package/dist/types/shared-ui/eds-user/eds-user.d.ts +5 -5
  482. package/dist/types/utils/global.d.ts +1 -0
  483. package/dist/types/utils/keycloak.d.ts +2 -2
  484. package/package.json +1 -1
  485. package/dist/cjs/color-3ffe3072.js +0 -342
  486. package/dist/cjs/eds-alert.cjs.entry.js +0 -96
  487. package/dist/cjs/eds-rating.cjs.entry.js +0 -58
  488. package/dist/components/eds-user2.js +0 -156
  489. package/dist/components/p-005de86f.entry.js +0 -1
  490. package/dist/components/p-0c2e844e.entry.js +0 -1
  491. package/dist/components/p-145f13ad.entry.js +0 -1
  492. package/dist/components/p-16458a81.entry.js +0 -1
  493. package/dist/components/p-2851ff44.entry.js +0 -1
  494. package/dist/components/p-29648b47.entry.js +0 -1
  495. package/dist/components/p-297b2bc3.entry.js +0 -1
  496. package/dist/components/p-32cddd94.entry.js +0 -1
  497. package/dist/components/p-3617841d.entry.js +0 -1
  498. package/dist/components/p-373673ca.js +0 -1
  499. package/dist/components/p-388b4966.entry.js +0 -1
  500. package/dist/components/p-3ff76976.entry.js +0 -1
  501. package/dist/components/p-4037ad48.entry.js +0 -1
  502. package/dist/components/p-42b4ecff.entry.js +0 -1
  503. package/dist/components/p-490ba155.entry.js +0 -1
  504. package/dist/components/p-4932aab2.entry.js +0 -1
  505. package/dist/components/p-4a24c2ce.entry.js +0 -1
  506. package/dist/components/p-54c75346.entry.js +0 -1
  507. package/dist/components/p-57c964c5.entry.js +0 -1
  508. package/dist/components/p-5a43503a.entry.js +0 -1
  509. package/dist/components/p-5aad9d3f.entry.js +0 -1
  510. package/dist/components/p-5afb626c.entry.js +0 -1
  511. package/dist/components/p-5d7af761.entry.js +0 -1
  512. package/dist/components/p-5fc68438.entry.js +0 -1
  513. package/dist/components/p-6378fb3e.entry.js +0 -1
  514. package/dist/components/p-673dce11.entry.js +0 -1
  515. package/dist/components/p-7215789a.entry.js +0 -1
  516. package/dist/components/p-73bd0c97.entry.js +0 -1
  517. package/dist/components/p-7802e966.entry.js +0 -1
  518. package/dist/components/p-79887c2c.entry.js +0 -1
  519. package/dist/components/p-846fc91c.entry.js +0 -1
  520. package/dist/components/p-84957b6d.entry.js +0 -1
  521. package/dist/components/p-8c56e39a.entry.js +0 -1
  522. package/dist/components/p-96c4deda.entry.js +0 -1
  523. package/dist/components/p-a44a1abe.entry.js +0 -1
  524. package/dist/components/p-a4e9b68b.entry.js +0 -1
  525. package/dist/components/p-ac0112d5.entry.js +0 -1
  526. package/dist/components/p-acb16e1c.entry.js +0 -1
  527. package/dist/components/p-ae5dbd41.entry.js +0 -1
  528. package/dist/components/p-bdd86a3c.entry.js +0 -1
  529. package/dist/components/p-be6c80da.entry.js +0 -1
  530. package/dist/components/p-bf0f851d.entry.js +0 -1
  531. package/dist/components/p-c2d369bc.entry.js +0 -1
  532. package/dist/components/p-c9c417de.js +0 -1
  533. package/dist/components/p-d1670eec.entry.js +0 -1
  534. package/dist/components/p-d1f6a722.entry.js +0 -1
  535. package/dist/components/p-d53b7a75.entry.js +0 -1
  536. package/dist/components/p-d6d86366.entry.js +0 -1
  537. package/dist/components/p-d7a92efb.entry.js +0 -1
  538. package/dist/components/p-d9788b54.entry.js +0 -1
  539. package/dist/components/p-e20ed2c7.entry.js +0 -1
  540. package/dist/components/p-e74834bc.entry.js +0 -1
  541. package/dist/components/p-f7a6ce69.entry.js +0 -1
  542. package/dist/components/p-fd27e56c.entry.js +0 -1
  543. package/dist/esm/color-0ba8ed56.js +0 -338
  544. package/dist/esm/eds-alert.entry.js +0 -92
  545. package/dist/esm/eds-rating.entry.js +0 -54
  546. package/dist/types/Users/nigeor/Documents/Projects/EBRAINS/ebrains-ui-ecosystem/packages/components/.stencil/packages/utils/src/index.d.ts +0 -3
  547. package/dist/types/Users/nigeor/Documents/Projects/EBRAINS/ebrains-ui-ecosystem/packages/components/.stencil/packages/utils/src/lib/keycloak.d.ts +0 -30
  548. package/dist/types/Users/nigeor/Documents/Projects/EBRAINS/ebrains-ui-ecosystem/packages/components/.stencil/packages/utils/src/lib/render.d.ts +0 -8
  549. /package/dist/types/{Users/nigeor/Documents/Projects/EBRAINS/ebrains-ui-ecosystem/packages/components/.stencil/packages/utils/src/lib → utils}/analytics.d.ts +0 -0
  550. /package/dist/types/{Users/nigeor/Documents/Projects/EBRAINS/ebrains-ui-ecosystem/packages/components/.stencil/packages/utils/src/lib → utils}/color.d.ts +0 -0
@@ -1,72 +1,83 @@
1
1
  import { h } from "@stencil/core";
2
- import { initKeycloak, login, logout, isAuthenticated, getUser } from "../../utils/keycloak";
3
- /**
4
- * `EdsLogin` is a login component that integrates Keycloak authentication,
5
- * allowing users to log in and out and manage authentication states.
6
- * This component is used to handle user login, logout, and authentication status display.
7
- *
8
- * This component is ideal for applications that require Keycloak-based authentication,
9
- * providing a simple login/logout interface and managing user session states.
10
- */
2
+ import { login, logout, isAuthenticated, getUser, initKeycloak } from "../../utils/keycloak";
3
+ import { toast } from "../../utils/toastManager";
11
4
  export class EdsLogin {
12
5
  constructor() {
13
- // Method to handle user logout
14
- this.handleLogout = () => {
15
- logout();
16
- this.authenticated = false; // Reset authentication state after logout
6
+ /**
7
+ * Handles user login by invoking the Keycloak `login` function.
8
+ * Only triggers login if the user is not already authenticated.
9
+ */
10
+ this.handleLogin = async () => {
11
+ if (!this.authenticated) {
12
+ try {
13
+ await login();
14
+ toast.show('You are authenticated', 'success');
15
+ }
16
+ catch (error) {
17
+ toast.show(error.message, 'error');
18
+ }
19
+ }
20
+ };
21
+ /**
22
+ * Handles user logout by invoking the Keycloak `logout` function.
23
+ * Resets the `authenticated` state to `false` after logout.
24
+ */
25
+ this.handleLogout = async () => {
26
+ try {
27
+ await logout();
28
+ }
29
+ catch (error) {
30
+ toast.show(error.message, 'error');
31
+ }
32
+ this.authenticated = false;
33
+ this.user = null;
17
34
  };
18
- this.keycloakUrl = '';
19
- this.keycloakRealm = '';
20
- this.keycloakClientId = '';
35
+ this.keycloakUrl = undefined;
36
+ this.keycloakRealm = undefined;
37
+ this.keycloakClientId = undefined;
21
38
  this.authenticated = false;
22
39
  this.user = null;
23
40
  }
24
- // Lifecycle method to check authentication status before the component loads
41
+ /**
42
+ * Lifecycle method that runs when the component is about to load.
43
+ * It initializes authentication by calling the `initAuth` method.
44
+ */
25
45
  async componentWillLoad() {
26
- await this.checkAuthentication();
46
+ // Check if required props are provided (optional check)
47
+ if (!this.keycloakUrl || !this.keycloakRealm || !this.keycloakClientId) {
48
+ // eslint-disable-next-line
49
+ console.error('Keycloak configuration props are missing.');
50
+ return;
51
+ }
52
+ await this.initAuth();
27
53
  }
28
- // Method to initialize Keycloak and check if the user is authenticated
29
- async checkAuthentication() {
54
+ /**
55
+ * Initializes the Keycloak authentication by configuring Keycloak with the provided props.
56
+ * Sets the `authenticated` state and `user` data if the user is authenticated.
57
+ * Emits `authStatusChanged` event with the authentication status.
58
+ */
59
+ async initAuth() {
30
60
  try {
31
- const keycloakConfig = {
61
+ await initKeycloak({
32
62
  url: this.keycloakUrl,
33
63
  realm: this.keycloakRealm,
34
64
  clientId: this.keycloakClientId
35
- };
36
- await initKeycloak(keycloakConfig);
37
- // eslint-disable-next-line
38
- // Set authentication state and fetch user data if authenticated
39
- this.authenticated = isAuthenticated();
40
- if (this.authenticated) {
65
+ }, true);
66
+ if (isAuthenticated()) {
41
67
  this.user = getUser();
68
+ this.authenticated = true;
69
+ this.authStatusChanged.emit({
70
+ authenticated: this.authenticated,
71
+ user: this.user
72
+ }); // Emit auth status change
42
73
  }
43
- this.authStatusChanged.emit({
44
- authenticated: this.authenticated,
45
- user: this.user
46
- }); // Emit auth status change
47
74
  }
48
75
  catch (error) {
49
- // eslint-disable-next-line
50
- console.error('Keycloak initialization or login check failed:', error);
51
- }
52
- }
53
- // Method to handle user login
54
- async handleLogin() {
55
- try {
56
- if (!this.authenticated) {
57
- login(); // Start the Keycloak login process
58
- }
76
+ toast.show(error.message, 'error');
59
77
  }
60
- catch (error) {
61
- // eslint-disable-next-line
62
- console.error('Login failed:', error);
63
- }
64
- }
65
- getBtnLabel() {
66
- return this.authenticated ? 'Logout' : 'Login';
67
78
  }
68
79
  render() {
69
- return (h("eds-button", { key: '35f298ecf951d5b1087f988262ae7d312c5e2d38', label: this.getBtnLabel(), intent: "primary", "extra-class": "text-default", "aria-label": this.getBtnLabel(), triggerClick: this.authenticated ? this.handleLogout : this.handleLogin.bind(this) }));
80
+ return (h("div", { key: 'cd30a135920ae77959330a43a8544bb9c231986e', class: "block" }, !this.authenticated && (h("eds-button", { key: '98fa63c46b063a67c215ff9160c6dfbfee2265f7', label: "Login", intent: "primary", "extra-class": "text-default", "aria-label": "Login", triggerClick: this.handleLogin.bind(this) }))));
70
81
  }
71
82
  static get is() { return "eds-login"; }
72
83
  static get encapsulation() { return "shadow"; }
@@ -84,11 +95,10 @@ export class EdsLogin {
84
95
  "optional": false,
85
96
  "docs": {
86
97
  "tags": [],
87
- "text": "The URL of the Keycloak server.\nThis is the base URL where your Keycloak instance is hosted,"
98
+ "text": "The URL of the Keycloak server.\nThis is the base URL where your Keycloak instance is hosted."
88
99
  },
89
100
  "attribute": "keycloak-url",
90
- "reflect": false,
91
- "defaultValue": "''"
101
+ "reflect": false
92
102
  },
93
103
  "keycloakRealm": {
94
104
  "type": "string",
@@ -105,8 +115,7 @@ export class EdsLogin {
105
115
  "text": "The Keycloak Realm.\nA realm in Keycloak is a space where you manage a set of users, roles,\ngroups, and credentials."
106
116
  },
107
117
  "attribute": "keycloak-realm",
108
- "reflect": false,
109
- "defaultValue": "''"
118
+ "reflect": false
110
119
  },
111
120
  "keycloakClientId": {
112
121
  "type": "string",
@@ -123,8 +132,7 @@ export class EdsLogin {
123
132
  "text": "The Keycloak Client ID.\nThe client ID represents the client application that Keycloak protects.\nIt's configured in the Keycloak admin console and used to identify the app\nrequesting authentication.\nExample: `my-client-app`"
124
133
  },
125
134
  "attribute": "keycloak-client-id",
126
- "reflect": false,
127
- "defaultValue": "''"
135
+ "reflect": false
128
136
  }
129
137
  };
130
138
  }
@@ -143,10 +151,10 @@ export class EdsLogin {
143
151
  "composed": true,
144
152
  "docs": {
145
153
  "tags": [],
146
- "text": "Event emitted when the authentication status changes.\nIt emits a boolean value indicating the new authentication status."
154
+ "text": "Event emitted when the authentication status changes."
147
155
  },
148
156
  "complexType": {
149
- "original": "{\n authenticated: boolean;\n user: any;\n }",
157
+ "original": "{ authenticated: boolean; user: any }",
150
158
  "resolved": "{ authenticated: boolean; user: any; }",
151
159
  "references": {}
152
160
  }
@@ -1,6 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
2
  import { toast } from "../../utils/toastManager";
3
- import { matomoOptIn } from "../../../../../../../packages/utils/src/index";
3
+ import { matomoOptIn } from "../../utils/analytics";
4
4
  /**
5
5
  * A Stencil component for displaying a Matomo analytics consent notice.
6
6
  * Provides users with the option to opt in or opt out of anonymous analytics.
@@ -53,7 +53,7 @@ export class EdsSocialNetworks {
53
53
  * @returns {JSX.Element} The rendered JSX for the component.
54
54
  */
55
55
  render() {
56
- return (h("div", { key: 'a6a3e2084eb01def71f6fee67ebe8c5f4f613c89' }, h("p", { key: '43b92e9c33f8abef6070a6a3cd77f7573e2ab454', class: "f-ui-02" }, this.title), h("ul", { key: 'c0e0dfdeff373885f62250c8bf4385268410406c', class: "mt-12 flex gap-4" }, this.socialNetworks.map((network, index) => (h("li", { key: index }, h("eds-link", { "extra-class": "effect-color effect-focus text-lighter hover:text-default flex items-center justify-center rounded-sm", external: true, "aria-label": network.label, url: network.url, icon: network.icon, intent: "strong" })))))));
56
+ return (h("div", { key: '615a7cb2c26060d2d4cde875291a081b7de12e19' }, h("p", { key: '9e19ad59fcc94508cb60cd4aafa87c3878fb2ebc', class: "f-ui-02" }, this.title), h("ul", { key: 'a4811d16447ab148a7c129f188405f3f7050df70', class: "mt-12 flex gap-4" }, this.socialNetworks.map((network, index) => (h("li", { key: index }, h("eds-link", { "extra-class": "effect-color effect-focus text-lighter hover:text-default flex items-center justify-center rounded-sm", external: true, "aria-label": network.label, url: network.url, icon: network.icon, intent: "strong" })))))));
57
57
  }
58
58
  static get is() { return "eds-social-networks"; }
59
59
  static get encapsulation() { return "shadow"; }
@@ -1,4 +1,4 @@
1
- import { sendAnalytics } from "../../../../../../../packages/utils/src/index";
1
+ import { sendAnalytics } from "../../utils/analytics";
2
2
  import { h } from "@stencil/core";
3
3
  import { cva } from "class-variance-authority";
4
4
  /**
@@ -127,7 +127,7 @@ export class EdsTabs {
127
127
  });
128
128
  }
129
129
  render() {
130
- return (h("div", { key: '540bb667084b36ae2151ec39ef6b54a9ac6a4c4a', id: `${this.id}`, class: "after:border-softest before:bg-gradient-y relative overflow-x-hidden before:absolute before:inset-x-0 before:bottom-0 before:h-12 before:opacity-5 before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:border-b-2 after:content-['']" }, h("div", { key: 'f0266d39c943b82725ded757cce0b35fb85fa874', class: "scroller-x overflow-x-auto max-w-xxxl xxxl:px-0 relative z-[1] mx-auto px-16 pt-8 lg:px-28" }, h("nav", { key: 'fcedf94e6f6c14635291d9c8e6d672efc8055433', ref: (el) => (this.tabContainer = el), class: "inline-flex", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
130
+ return (h("div", { key: 'f5c9e076fc1fb95b57e0148d85865ce62c14fbe7', id: `${this.id}`, class: "after:border-softest before:bg-gradient-y relative overflow-x-hidden before:absolute before:inset-x-0 before:bottom-0 before:h-12 before:opacity-5 before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:border-b-2 after:content-['']" }, h("div", { key: '7d382167fb62999e39b784ce8bfba24267c87a64', class: "scroller-x overflow-x-auto max-w-xxxl xxxl:px-0 relative z-[1] mx-auto px-16 pt-8 lg:px-28" }, h("nav", { key: '99bbfabd817bada1984ddf87a274bf9304a1e6a0', ref: (el) => (this.tabContainer = el), class: "inline-flex", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
131
131
  //const TabComponent = tab.active ? 'span' : 'a';
132
132
  const tabProps = this.getTabOptions(tab.active, index);
133
133
  return (h("eds-tab", Object.assign({}, tabProps, { label: tab.label || tab.ariaLabel, url: tab.url, active: index === this.activeIndex, onClick: () => this.handleTabClick(index, tab.label) })));
@@ -1,4 +1,4 @@
1
- import { sendAnalytics } from "../../../../../../../packages/utils/src/index";
1
+ import { sendAnalytics } from "../../utils/analytics";
2
2
  import { h } from "@stencil/core";
3
3
  import { cva } from "class-variance-authority";
4
4
  /**
@@ -114,11 +114,11 @@ export class EdsTabsContent {
114
114
  });
115
115
  }
116
116
  render() {
117
- return (h("div", { key: '7bc954d9251bd15b5e3a49d5c74b83805f802b07', class: "after:border-softest before:bg-gradient-y relative overflow-x-hidden before:absolute before:inset-x-0 before:bottom-0 before:h-12 before:opacity-5 before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:border-b-2 after:content-['']" }, h("div", { key: '1bfda380604f1eae1cc5be147a5e3e6b537e0396', class: "scroller-x max-w-xxxl xxxl:px-0 relative z-[1] mx-auto px-16 pt-8 lg:px-28" }, h("nav", { key: 'b2ed26b52fd629ec99b01c7dc8e612eae4f3886d', ref: (el) => (this.tabContainer = el), class: "inline-flex", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
117
+ return (h("div", { key: 'aa94a55d3ae658797df6ae75724238a17a80a169', class: "after:border-softest before:bg-gradient-y relative overflow-x-hidden before:absolute before:inset-x-0 before:bottom-0 before:h-12 before:opacity-5 before:content-[''] after:absolute after:inset-x-0 after:bottom-0 after:border-b-2 after:content-['']" }, h("div", { key: '0e38c695467c272198a605efdb2705b14239756e', class: "scroller-x max-w-xxxl xxxl:px-0 relative z-[1] mx-auto px-16 pt-8 lg:px-28" }, h("nav", { key: '525f56d02b41e236d3b713fb972b6803e3f908d5', ref: (el) => (this.tabContainer = el), class: "inline-flex", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
118
118
  //const TabComponent = tab.active ? 'span' : 'a';
119
119
  const tabProps = this.getTabOptions(tab.active, index);
120
120
  return (h("eds-tab", Object.assign({}, tabProps, { label: tab.label, url: tab.url, active: index === this.activeIndex, ariaLabel: tab.ariaLabel, onClick: () => this.handleTabClick(index, tab.label) })));
121
- })), h("slot", { key: '5072b877786a23358d540d6d242d5fbdb3c63d7f' }))));
121
+ })), h("slot", { key: 'e5da088cec99dd0e40560b70fbd9940ac5a7f56f' }))));
122
122
  }
123
123
  static get is() { return "eds-tabs-content"; }
124
124
  static get properties() {
@@ -28,7 +28,7 @@ export class EdsToastManager {
28
28
  this.toasts = this.toasts.filter((t) => t.id !== id);
29
29
  }
30
30
  render() {
31
- return (h("div", { key: '459148404380e386117387f42183e24a069b2de6', class: "toast-container" }, this.toasts.map((t) => (h("div", { key: t.id }, h("eds-toast", { message: t.message, intent: t.intent, onClick: () => this.removeToast(t.id) }))))));
31
+ return (h("div", { key: '22cb79fd617ca1701fba63d3d4bf04f73ce1ac77', class: "toast-container" }, this.toasts.map((t) => (h("div", { key: t.id }, h("eds-toast", { message: t.message, intent: t.intent, onClick: () => this.removeToast(t.id) }))))));
32
32
  }
33
33
  static get is() { return "eds-toast-manager"; }
34
34
  static get originalStyleUrls() {
@@ -1,5 +1,6 @@
1
1
  import { h } from "@stencil/core";
2
- import { initKeycloak, isAuthenticated, getUser, login, logout, checkServerAvailability } from "../../utils/keycloak";
2
+ import { isAuthenticated, getUser, login, logout, checkServerAvailability, initKeycloak } from "../../utils/keycloak";
3
+ import { toast } from "../../utils/toastManager";
3
4
  /**
4
5
  * `EdsUser` is a user authentication component for managing and displaying
5
6
  * the user's authentication state using Keycloak. It provides login and logout
@@ -16,15 +17,25 @@ export class EdsUser {
16
17
  */
17
18
  this.handleLogin = () => {
18
19
  if (!this.authenticated) {
19
- login();
20
+ try {
21
+ login();
22
+ }
23
+ catch (error) {
24
+ toast.show(error.message, 'error');
25
+ }
20
26
  }
21
27
  };
22
28
  /**
23
29
  * Handles user logout by invoking the Keycloak `logout` function.
24
30
  * Resets the `authenticated` state to `false` after logout.
25
31
  */
26
- this.handleLogout = () => {
27
- logout();
32
+ this.handleLogout = async () => {
33
+ try {
34
+ await logout();
35
+ }
36
+ catch (error) {
37
+ toast.show(error.message, 'error');
38
+ }
28
39
  this.authenticated = false;
29
40
  this.user = null;
30
41
  };
@@ -33,8 +44,8 @@ export class EdsUser {
33
44
  this.keycloakClientId = undefined;
34
45
  this.user = null;
35
46
  this.authenticated = false;
36
- this.serverAvailable = false;
37
47
  this.username = '';
48
+ this.serverAvailable = false;
38
49
  }
39
50
  /**
40
51
  * Lifecycle method that runs when the component is about to load.
@@ -49,7 +60,7 @@ export class EdsUser {
49
60
  }
50
61
  this.serverAvailable = await checkServerAvailability(`${this.keycloakUrl}/realms/${this.keycloakRealm}`);
51
62
  if (!this.serverAvailable) {
52
- //toast.show('Keycloak server is unavailable.', 'error');
63
+ toast.show('Keycloak server is unavailable.', 'error');
53
64
  return; // Do not proceed further
54
65
  }
55
66
  await this.initAuth();
@@ -61,35 +72,27 @@ export class EdsUser {
61
72
  */
62
73
  async initAuth() {
63
74
  try {
64
- const keycloakConfig = {
75
+ await initKeycloak({
65
76
  url: this.keycloakUrl,
66
77
  realm: this.keycloakRealm,
67
78
  clientId: this.keycloakClientId
68
- };
69
- await initKeycloak(keycloakConfig, true);
70
- // Set authentication state and fetch user data if authenticated
71
- //this.authenticated = isAuthenticated();
79
+ }, true);
72
80
  if (isAuthenticated()) {
73
81
  this.user = getUser();
74
82
  this.authenticated = true;
83
+ this.authStatusChanged.emit({
84
+ authenticated: this.authenticated,
85
+ user: this.user
86
+ }); // Emit auth status change
75
87
  }
76
- this.authStatusChanged.emit({
77
- authenticated: this.authenticated,
78
- user: this.user
79
- }); // Emit auth status change
80
88
  }
81
89
  catch (error) {
82
- // eslint-disable-next-line
83
- console.error('Keycloak initialization failed:', error);
90
+ toast.show(error.message, 'error');
84
91
  }
85
92
  }
86
93
  render() {
87
94
  var _a;
88
- // If the server is unavailable, render null
89
- if (!this.serverAvailable) {
90
- return null;
91
- }
92
- return (h("div", { class: "block" }, !this.authenticated ? (h("eds-button", { label: "Login", intent: "primary", onClick: this.handleLogin, "extra-class": "text-default" })) : (h("div", { class: "flex items-center" }, h("eds-dropdown", { label: `Welcome, ${(_a = this.user) === null || _a === void 0 ? void 0 : _a.username}`, intent: "tertiary", "aria-label": "User Menu", "dropdown-pos": "right", "dropdown-offset": "false", icon: "chevron-down", class: "text-default" }, h("eds-user-modal", { user: JSON.stringify(this.user), onLogout: this.handleLogout.bind(this) }))))));
95
+ return (h("div", { key: '22ee744979511dd2f8a1e1a15bb99215eadd535b', class: "block" }, !this.authenticated ? (h("eds-button", { label: "Login", intent: "primary", onClick: this.handleLogin, "extra-class": "text-default" })) : (h("div", { class: "flex items-center" }, h("eds-dropdown", { label: `Welcome, ${(_a = this.user) === null || _a === void 0 ? void 0 : _a.username}`, intent: "tertiary", "aria-label": "User Menu", "dropdown-pos": "right", "dropdown-offset": "false", icon: "chevron-down", class: "text-default" }, h("eds-user-modal", { user: JSON.stringify(this.user), onLogout: this.handleLogout.bind(this) }))))));
93
96
  }
94
97
  static get is() { return "eds-user"; }
95
98
  static get properties() {
@@ -151,8 +154,8 @@ export class EdsUser {
151
154
  return {
152
155
  "user": {},
153
156
  "authenticated": {},
154
- "serverAvailable": {},
155
- "username": {}
157
+ "username": {},
158
+ "serverAvailable": {}
156
159
  };
157
160
  }
158
161
  static get events() {
@@ -30,7 +30,7 @@ export class EdsUserModal {
30
30
  }
31
31
  render() {
32
32
  var _a, _b, _c, _d, _e;
33
- return (h("div", { key: 'ad99ddd7c2710ef90840a5571ab6a161178cacc0', class: "min-w-[280px] p-8" }, h("div", { key: 'd1da12f3a965fa7503fb3e00566db0796b803352', class: "flex gap-x-16 pb-16 border-b-2 border-softer" }, h("eds-avatar", { key: 'c3d3ca80a9d23cc88f8ee6801b29995138c9b7c6', "first-name": (_a = this.parsedUser) === null || _a === void 0 ? void 0 : _a.firstname, "last-name": (_b = this.parsedUser) === null || _b === void 0 ? void 0 : _b.lastname, initials: this.initials, color: "grey", rounded: true, "initials-strong": true }), h("div", { key: '4efe378b3a9ce76d35e642db150be13d0434db72', class: "max-w-full" }, ((_c = this.parsedUser) === null || _c === void 0 ? void 0 : _c.fullname) && (h("p", { key: '1068082a2894e3c3e3f77d1eea923f9c39d8766c', class: "f-ui-01 text-default w-full text-ellipsis" }, this.parsedUser.fullname)), ((_d = this.parsedUser) === null || _d === void 0 ? void 0 : _d.username) && h("p", { key: 'b86e08b806a37c9957bca7f9ee268303e7ace134', class: "f-ui-03-light text-light mt-4" }, this.parsedUser.username), ((_e = this.parsedUser) === null || _e === void 0 ? void 0 : _e.email) && h("p", { key: 'b3514920e1eb4906cb7f7705bfbc986166e84946', class: "f-ui-03-light text-light mt-4" }, this.parsedUser.email))), h("div", { key: '61941fa0a19a19087da886a73d85d7e438d2c0b0', class: "text-default mt-16 flex w-full flex-col gap-y-8" }, h("div", { key: '5ad2be1763726c9d794b78a2593106fd8ba1dc7b', class: "border-softer mb-10 border-b-2 pb-16" }, h("eds-link", { key: 'dbe3a9de56bf5ccc26426ddb831f2d1a27a0e6ff', label: "My EBRAINS", "aria-label": "My EBRAINS", url: "https://www.ebrains.eu/dashboard", intent: "primary", "extra-class": "w-full", external: true })), h("eds-link", { key: 1, label: "Account Settings", url: "https://iam.ebrains.eu/auth/realms/hbp/account/", intent: "secondary", icon: "arrow-diagonal", external: true, "extra-class": "w-full" }), this.hasLogout && (h("eds-link", { key: '642890827e2fa6735bc616e680dbda481c2c0053', label: "Sign out", intent: "tertiary", "extra-class": "w-full justify-center", onClick: () => this.onLogout && this.onLogout() })))));
33
+ return (h("div", { key: '4a80335b6a59b9653130ca75a6e42c04fce68f4f', class: "min-w-[280px] p-8" }, h("div", { key: '9c97f6be46216587692d4852174cecfaacb70593', class: "flex gap-x-16 pb-16 border-b-2 border-softer" }, h("eds-avatar", { key: 'c778f6bdfb21068ca7c2deff6e298f61af6dbc67', "first-name": (_a = this.parsedUser) === null || _a === void 0 ? void 0 : _a.firstname, "last-name": (_b = this.parsedUser) === null || _b === void 0 ? void 0 : _b.lastname, initials: this.initials, color: "grey", rounded: true, "initials-strong": true }), h("div", { key: '7f453546c9cc54597069abb3e4b50312fe7bf364', class: "max-w-full" }, ((_c = this.parsedUser) === null || _c === void 0 ? void 0 : _c.fullname) && (h("p", { key: '34e080ef159535820c09378701de0e6f4fd96009', class: "f-ui-01 text-default w-full text-ellipsis" }, this.parsedUser.fullname)), ((_d = this.parsedUser) === null || _d === void 0 ? void 0 : _d.username) && h("p", { key: '2f85764e7d015dc3f3b22ca8a07126f8f57216ef', class: "f-ui-03-light text-light mt-4" }, this.parsedUser.username), ((_e = this.parsedUser) === null || _e === void 0 ? void 0 : _e.email) && h("p", { key: '002dec51e979c29f2343f55e004449e4cee4075c', class: "f-ui-03-light text-light mt-4" }, this.parsedUser.email))), h("div", { key: '740b78c504257fb755ba7ba04dd25f023d37ed33', class: "text-default mt-16 flex w-full flex-col gap-y-8" }, h("div", { key: 'ac307937bdd3fc86cce502e5eeb3e922d931f418', class: "border-softer mb-10 border-b-2 pb-16" }, h("eds-link", { key: 'bdd0f1ef62ac78ffb1b40ed6873475df360cec66', label: "My EBRAINS", "aria-label": "My EBRAINS", url: "https://www.ebrains.eu/dashboard", intent: "primary", "extra-class": "w-full", external: true })), h("eds-link", { key: 1, label: "Account Settings", url: "https://iam.ebrains.eu/auth/realms/hbp/account/", intent: "secondary", icon: "arrow-diagonal", external: true, "extra-class": "w-full" }), this.hasLogout && (h("eds-link", { key: 'd73016ad71f3b356b7fb7d0a2a84124eabb05da5', label: "Sign out", intent: "tertiary", "extra-class": "w-full justify-center", onClick: () => this.onLogout && this.onLogout() })))));
34
34
  }
35
35
  static get is() { return "eds-user-modal"; }
36
36
  static get properties() {
@@ -0,0 +1,85 @@
1
+ // Helper function to check if Matomo is initialized
2
+ function isMatomoAvailable() {
3
+ return typeof window !== 'undefined' && typeof window._paq !== 'undefined';
4
+ }
5
+ // General function to push data to Matomo
6
+ function pushToMatomo(action, ...args) {
7
+ //console.log('Pushing Matomo')
8
+ if (isMatomoAvailable()) {
9
+ window._paq.push([action, ...args]);
10
+ }
11
+ else {
12
+ // eslint-disable-next-line
13
+ console.warn('Matomo is not available or not initialized.');
14
+ }
15
+ }
16
+ // Function to send analytics data
17
+ export function sendAnalytics(eventData) {
18
+ var _a;
19
+ if (!isMatomoAvailable()) {
20
+ // eslint-disable-next-line
21
+ console.warn('Matomo is not available or not initialized.');
22
+ // eslint-disable-next-line
23
+ console.log(Object.assign({}, eventData));
24
+ return;
25
+ }
26
+ // Conditionally build the name field
27
+ const nameParts = [];
28
+ if ((_a = eventData.parentContext) === null || _a === void 0 ? void 0 : _a.componentName) {
29
+ nameParts.push(eventData.parentContext.componentName);
30
+ }
31
+ nameParts.push(eventData.tag || 'unknown-tag');
32
+ nameParts.push(eventData.name || 'unknown-name');
33
+ const name = nameParts.join('/');
34
+ //console.log('trackEvent', eventData.category, eventData.action, name)
35
+ pushToMatomo('trackEvent', eventData.category, eventData.action, name);
36
+ // eslint-disable-next-line
37
+ console.log(Object.assign({}, eventData));
38
+ }
39
+ // Function to opt-in the user
40
+ export function matomoOptIn() {
41
+ if (isMatomoAvailable()) {
42
+ window._paq.push(['rememberConsentGiven']);
43
+ // eslint-disable-next-line
44
+ console.log('User has opted in to tracking');
45
+ }
46
+ }
47
+ // Function to opt-out the user
48
+ export function matomoOptOut() {
49
+ if (isMatomoAvailable()) {
50
+ window._paq.push(['forgetConsentGiven']);
51
+ // eslint-disable-next-line
52
+ console.log('User has opted out of tracking');
53
+ }
54
+ }
55
+ // Check if consent was already given
56
+ export function isUserOptedIn() {
57
+ if (isMatomoAvailable()) {
58
+ return window._paq.push(['hasConsent']);
59
+ }
60
+ return null;
61
+ }
62
+ // Check if the user has opted out
63
+ export function isUserOptedOut() {
64
+ if (isMatomoAvailable()) {
65
+ return window._paq.push(['hasRememberedConsent']);
66
+ }
67
+ return null;
68
+ }
69
+ /**
70
+ * Emits a custom event called `parentContext` for a given link element.
71
+ * This event provides context information about the breadcrumb component.
72
+ *
73
+ * @param linkElement - The link element to which the event will be dispatched.
74
+ */
75
+ export function emitContext(linkElement, componentName, identifier) {
76
+ const event = new CustomEvent('parentContext', {
77
+ detail: {
78
+ componentName: componentName.toLowerCase(),
79
+ identifier: identifier || null
80
+ },
81
+ bubbles: true, // Allow the event to propagate up the DOM
82
+ cancelable: true
83
+ });
84
+ linkElement.dispatchEvent(event);
85
+ }
@@ -0,0 +1,129 @@
1
+ import { cva } from "class-variance-authority";
2
+ export const GRADIANT_TOKENS = ['green', 'yellow', 'among-blue', 'purple'];
3
+ export const gradientBGColorVariants = cva([], {
4
+ variants: {
5
+ color: GRADIANT_TOKENS.reduce((acc, token) => (Object.assign(Object.assign({}, acc), { [token]: '' })), {}),
6
+ direction: {
7
+ top: '',
8
+ bottom: ''
9
+ },
10
+ pseudo: {
11
+ true: 'before:effect-opacity effect-bg-behind',
12
+ false: ''
13
+ },
14
+ hover: {
15
+ true: 'before:opacity-0 hover:before:opacity-100',
16
+ false: ''
17
+ }
18
+ },
19
+ compoundVariants: [
20
+ // region GREEN
21
+ {
22
+ color: 'green',
23
+ direction: 'top',
24
+ pseudo: true,
25
+ className: 'before:bg-gradient-01-top'
26
+ },
27
+ {
28
+ color: 'green',
29
+ pseudo: true,
30
+ direction: 'bottom',
31
+ className: 'before:bg-gradient-01-bottom'
32
+ },
33
+ {
34
+ color: 'green',
35
+ direction: 'top',
36
+ pseudo: false,
37
+ className: 'bg-gradient-01-top'
38
+ },
39
+ {
40
+ color: 'green',
41
+ pseudo: false,
42
+ direction: 'bottom',
43
+ className: 'bg-gradient-01-bottom'
44
+ },
45
+ // endregion
46
+ // region YELLOW
47
+ {
48
+ color: 'yellow',
49
+ direction: 'top',
50
+ pseudo: true,
51
+ className: 'before:bg-gradient-02-top'
52
+ },
53
+ {
54
+ color: 'yellow',
55
+ direction: 'bottom',
56
+ pseudo: true,
57
+ className: 'before:bg-gradient-02-bottom'
58
+ },
59
+ {
60
+ color: 'yellow',
61
+ direction: 'top',
62
+ pseudo: false,
63
+ className: 'bg-gradient-02-top'
64
+ },
65
+ {
66
+ color: 'yellow',
67
+ direction: 'bottom',
68
+ pseudo: false,
69
+ className: 'bg-gradient-02-bottom'
70
+ },
71
+ // endregion
72
+ // region PURPLE
73
+ {
74
+ color: 'purple',
75
+ direction: 'top',
76
+ pseudo: true,
77
+ class: 'before:bg-gradient-03-top'
78
+ },
79
+ {
80
+ color: 'purple',
81
+ direction: 'bottom',
82
+ pseudo: true,
83
+ class: 'before:bg-gradient-03-bottom'
84
+ },
85
+ {
86
+ color: 'purple',
87
+ direction: 'top',
88
+ pseudo: false,
89
+ class: 'bg-gradient-03-top'
90
+ },
91
+ {
92
+ color: 'purple',
93
+ direction: 'bottom',
94
+ pseudo: false,
95
+ class: 'bg-gradient-03-bottom'
96
+ },
97
+ // endregion
98
+ // region AMONG-BLUE
99
+ {
100
+ color: 'among-blue',
101
+ direction: 'top',
102
+ pseudo: true,
103
+ class: 'before:bg-gradient-04-top'
104
+ },
105
+ {
106
+ color: 'among-blue',
107
+ direction: 'bottom',
108
+ pseudo: true,
109
+ class: 'before:bg-gradient-04-bottom'
110
+ },
111
+ {
112
+ color: 'among-blue',
113
+ direction: 'top',
114
+ pseudo: false,
115
+ class: 'bg-gradient-04-top'
116
+ },
117
+ {
118
+ color: 'among-blue',
119
+ direction: 'bottom',
120
+ pseudo: false,
121
+ class: 'bg-gradient-04-bottom'
122
+ }
123
+ // endregion
124
+ ],
125
+ defaultVariants: {
126
+ direction: 'top',
127
+ pseudo: true
128
+ }
129
+ });
@@ -0,0 +1,8 @@
1
+ import { initKeycloak } from "./keycloak";
2
+ const keycloakConfig = {
3
+ url: 'http://localhost:8080',
4
+ realm: 'nigeor-realm',
5
+ clientId: 'stencil-app'
6
+ };
7
+ // Initialize Keycloak and then trigger the login process.
8
+ initKeycloak(keycloakConfig);
@@ -1,7 +1,14 @@
1
1
  import Keycloak from "keycloak-js/lib/keycloak";
2
2
  let keycloak = null;
3
+ let keycloakInitPromise = null;
3
4
  // Initialize Keycloak with an optional silent check
4
5
  export function initKeycloak(config, silentCheck = true) {
6
+ // If already initializing or initialized, return the cached promise
7
+ if (keycloakInitPromise) {
8
+ // eslint-disable-next-line
9
+ console.log('Keycloak already initialized, returning from cache');
10
+ return keycloakInitPromise;
11
+ }
5
12
  if (!keycloak) {
6
13
  keycloak = new Keycloak({
7
14
  url: config.url,
@@ -9,7 +16,7 @@ export function initKeycloak(config, silentCheck = true) {
9
16
  clientId: config.clientId
10
17
  });
11
18
  }
12
- return keycloak
19
+ keycloakInitPromise = keycloak
13
20
  .init({
14
21
  onLoad: silentCheck ? 'check-sso' : 'login-required',
15
22
  checkLoginIframe: false
@@ -21,6 +28,7 @@ export function initKeycloak(config, silentCheck = true) {
21
28
  console.error('Failed to initialize Keycloak:', error);
22
29
  return false;
23
30
  });
31
+ return keycloakInitPromise;
24
32
  }
25
33
  // Get the username of the authenticated user
26
34
  export function getUsername() {
@@ -50,8 +58,7 @@ export function login() {
50
58
  keycloak.login();
51
59
  }
52
60
  else {
53
- // eslint-disable-next-line
54
- console.error('Keycloak is not initialized.');
61
+ throw new Error('Keycloak is not initialized.');
55
62
  }
56
63
  }
57
64
  // Log out the user
@@ -60,8 +67,7 @@ export function logout() {
60
67
  keycloak.logout();
61
68
  }
62
69
  else {
63
- // eslint-disable-next-line
64
- console.error('Keycloak is not initialized.');
70
+ throw new Error('Keycloak is not initialized.');
65
71
  }
66
72
  }
67
73
  // Check if the user is authenticated