@ebrains/components 3.0.0 → 3.1.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 (371) hide show
  1. package/dist/cjs/color-primary-palette_6.cjs.entry.js +14 -14
  2. package/dist/cjs/components-section.cjs.entry.js +1 -1
  3. package/dist/cjs/components.cjs.js +1 -1
  4. package/dist/cjs/correct-use-of-colors.cjs.entry.js +1 -1
  5. package/dist/cjs/docs-palettes.cjs.entry.js +1 -1
  6. package/dist/cjs/docs-tokens.cjs.entry.js +1 -1
  7. package/dist/cjs/{eds-accordion_52.cjs.entry.js → eds-accordion_53.cjs.entry.js} +847 -207
  8. package/dist/cjs/eds-app-root.cjs.entry.js +1 -1
  9. package/dist/cjs/eds-cookies-preference.cjs.entry.js +1 -1
  10. package/dist/cjs/eds-feedback.cjs.entry.js +1 -1
  11. package/dist/cjs/eds-frame.cjs.entry.js +1 -1
  12. package/dist/cjs/eds-gauge.cjs.entry.js +1 -1
  13. package/dist/cjs/eds-gitlab-contributors.cjs.entry.js +9 -2
  14. package/dist/cjs/eds-icon-bluesky.cjs.entry.js +1 -1
  15. package/dist/cjs/eds-icon-eu.cjs.entry.js +1 -1
  16. package/dist/cjs/eds-icon-facebook.cjs.entry.js +1 -1
  17. package/dist/cjs/eds-icon-gitlab.cjs.entry.js +1 -1
  18. package/dist/cjs/eds-icon-linkedin.cjs.entry.js +1 -1
  19. package/dist/cjs/eds-icon-mastodon.cjs.entry.js +1 -1
  20. package/dist/cjs/eds-icon-twitter.cjs.entry.js +1 -1
  21. package/dist/cjs/eds-icon-youtube.cjs.entry.js +1 -1
  22. package/dist/cjs/eds-input-search.cjs.entry.js +76 -0
  23. package/dist/cjs/eds-section-core_2.cjs.entry.js +3 -3
  24. package/dist/cjs/eds-timeline.cjs.entry.js +1 -1
  25. package/dist/cjs/eds-toast-manager.cjs.entry.js +1 -1
  26. package/dist/cjs/eds-trl-badge.cjs.entry.js +181 -0
  27. package/dist/cjs/incorrect-use-of-colors.cjs.entry.js +1 -1
  28. package/dist/cjs/index-50bc1aa4.js +10 -2
  29. package/dist/cjs/loader.cjs.js +1 -1
  30. package/dist/cjs/logo-space.cjs.entry.js +1 -1
  31. package/dist/cjs/logo-variations-horizontal_2.cjs.entry.js +2 -2
  32. package/dist/cjs/logo-variations-tabs.cjs.entry.js +1 -1
  33. package/dist/cjs/logo-wrong-usage.cjs.entry.js +1 -1
  34. package/dist/cjs/svg-repository.cjs.entry.js +1 -1
  35. package/dist/cjs/token-list_3.cjs.entry.js +3 -3
  36. package/dist/cjs/token-ratios.cjs.entry.js +1 -1
  37. package/dist/cjs/token-spacing.cjs.entry.js +1 -1
  38. package/dist/cjs/token-typography.cjs.entry.js +1 -1
  39. package/dist/collection/collection-manifest.json +4 -1
  40. package/dist/collection/components/eds-accordion/eds-accordion.css +3 -2
  41. package/dist/collection/components/eds-accordion/eds-accordion.js +1 -1
  42. package/dist/collection/components/eds-accordion/eds-accordion.stories.js +7 -19
  43. package/dist/collection/components/eds-alert/eds-alert.stories.js +19 -147
  44. package/dist/collection/components/eds-avatar/eds-avatar.js +1 -1
  45. package/dist/collection/components/eds-avatar/eds-avatar.stories.js +2 -2
  46. package/dist/collection/components/eds-block-break/eds-block-break.js +1 -1
  47. package/dist/collection/components/eds-breadcrump/eds-breadcrump.js +1 -1
  48. package/dist/collection/components/eds-button/eds-button.css +15 -0
  49. package/dist/collection/components/eds-button/eds-button.js +13 -6
  50. package/dist/collection/components/eds-cards/eds-card-composer/eds-card-desc/eds-card-desc.js +1 -1
  51. package/dist/collection/components/eds-cards/eds-card-cta/eds-card-cta.css +10 -1
  52. package/dist/collection/components/eds-cards/eds-card-cta/eds-card-cta.js +1 -1
  53. package/dist/collection/components/eds-cards/eds-card-feature/eds-card-feature.js +1 -1
  54. package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.js +1 -1
  55. package/dist/collection/components/eds-cards/eds-card-hero/eds-card-hero.js +1 -1
  56. package/dist/collection/components/eds-cards/eds-card-stat/eds-card-stat.js +1 -1
  57. package/dist/collection/components/eds-charts/eds-gauge/eds-gauge.js +1 -1
  58. package/dist/collection/components/eds-code-block/eds-code-block.js +1 -1
  59. package/dist/collection/components/eds-dropdown/eds-dropdown.js +30 -4
  60. package/dist/collection/components/eds-feedback/eds-feedback.js +1 -1
  61. package/dist/collection/components/eds-footer/eds-footer.css +143 -203
  62. package/dist/collection/components/eds-footer/eds-footer.js +173 -76
  63. package/dist/collection/components/eds-footer/eds-footer.stories.js +108 -15
  64. package/dist/collection/components/eds-form/eds-form.css +37 -1
  65. package/dist/collection/components/eds-form/eds-form.js +45 -7
  66. package/dist/collection/components/eds-frame/eds-frame.js +1 -1
  67. package/dist/collection/components/eds-header/eds-header.js +1 -1
  68. package/dist/collection/components/eds-header/eds-header.stories.js +26 -12
  69. package/dist/collection/components/eds-icon-wrapper/eds-icon-wrapper.js +20 -1
  70. package/dist/collection/components/eds-icons/eds-icon-eu/eds-icon-eu.js +1 -1
  71. package/dist/collection/components/eds-icons/eds-icon-gitlab/eds-icon-gitlab.js +1 -1
  72. package/dist/collection/components/eds-icons/social/eds-icon-bluesky/eds-icon-bluesky.js +1 -1
  73. package/dist/collection/components/eds-icons/social/eds-icon-facebook/eds-icon-facebook.js +1 -1
  74. package/dist/collection/components/eds-icons/social/eds-icon-linkedin/eds-icon-linkedin.js +1 -1
  75. package/dist/collection/components/eds-icons/social/eds-icon-mastodon/eds-icon-mastodon.js +1 -1
  76. package/dist/collection/components/eds-icons/social/eds-icon-twitter/eds-icon-twitter.js +1 -1
  77. package/dist/collection/components/eds-icons/social/eds-icon-youtube/eds-icon-youtube.js +1 -1
  78. package/dist/collection/components/eds-img/eds-img.js +2 -2
  79. package/dist/collection/components/eds-img/eds-img.stories.js +29 -52
  80. package/dist/collection/components/eds-input-dropzone/eds-input-dropzone.js +1 -1
  81. package/dist/collection/components/eds-input-elements/eds-input/eds-input.js +20 -2
  82. package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.css +29 -0
  83. package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.js +2 -1
  84. package/dist/collection/components/eds-input-elements/eds-input-label/eds-input-label.js +1 -1
  85. package/dist/collection/components/eds-input-elements/eds-input-range/eds-input-range.js +1 -1
  86. package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.js +1 -1
  87. package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.stories.js +30 -0
  88. package/dist/collection/components/eds-input-elements/eds-input-select/eds-input-select.js +2 -2
  89. package/dist/collection/components/eds-input-field/eds-input-field.js +11 -5
  90. package/dist/collection/components/eds-input-field/eds-input-field.stories.js +82 -130
  91. package/dist/collection/components/eds-input-file/eds-input-file.js +1 -1
  92. package/dist/collection/components/eds-link/eds-link.js +1 -1
  93. package/dist/collection/components/eds-link/eds-link.stories.js +13 -8
  94. package/dist/collection/components/eds-logo/eds-logo.js +1 -1
  95. package/dist/collection/components/eds-modal/eds-modal.stories.js +9 -8
  96. package/dist/collection/components/eds-nps/eds-nps.css +32 -0
  97. package/dist/collection/components/eds-nps/eds-nps.js +3 -3
  98. package/dist/collection/components/eds-pagination/eds-pagination.js +2 -2
  99. package/dist/collection/components/eds-rating/eds-rating.css +9 -0
  100. package/dist/collection/components/eds-rating/eds-rating.js +2 -2
  101. package/dist/collection/components/eds-section/eds-section-core/eds-section-core.js +1 -1
  102. package/dist/collection/components/eds-section/eds-section-heading/eds-section-heading.js +2 -2
  103. package/dist/collection/components/eds-sidebar/eds-sidebar.js +2 -2
  104. package/dist/collection/components/eds-social-networks/eds-social-networks.js +1 -1
  105. package/dist/collection/components/eds-spinner/eds-spinner.js +1 -1
  106. package/dist/collection/components/eds-steps-v2/eds-steps-v2.js +1 -1
  107. package/dist/collection/components/eds-table/eds-table.css +21 -4
  108. package/dist/collection/components/eds-table/eds-table.js +17 -50
  109. package/dist/collection/components/eds-table/eds-table.stories.js +5 -109
  110. package/dist/collection/components/eds-tabs/eds-tabs.css +7 -1
  111. package/dist/collection/components/eds-tabs/eds-tabs.js +47 -9
  112. package/dist/collection/components/eds-tag/eds-tag.js +1 -1
  113. package/dist/collection/components/eds-timeline/eds-timeline.js +1 -1
  114. package/dist/collection/components/eds-toast-manager/eds-toast-manager.js +1 -1
  115. package/dist/collection/components/eds-tooltip/eds-tooltip.js +1 -1
  116. package/dist/collection/components/eds-tooltip/eds-tooltip.stories.js +1 -1
  117. package/dist/collection/components/eds-user/eds-user.js +1 -1
  118. package/dist/collection/eds-docs-ui/colors/color-palette/primary.js +1 -1
  119. package/dist/collection/eds-docs-ui/colors/color-palette/secondary.js +1 -1
  120. package/dist/collection/eds-docs-ui/colors/color-palette/support.js +1 -1
  121. package/dist/collection/eds-docs-ui/colors/gradient-palette/primary.js +1 -1
  122. package/dist/collection/eds-docs-ui/colors/gradient-palette/secondary.js +7 -7
  123. package/dist/collection/eds-docs-ui/colors/gradient-palette/support.js +3 -3
  124. package/dist/collection/eds-docs-ui/colors/use-of-colors/correct-use-of-colors.js +1 -1
  125. package/dist/collection/eds-docs-ui/colors/use-of-colors/incorrect-use-of-colors.js +1 -1
  126. package/dist/collection/eds-docs-ui/components-section/components-section.js +1 -1
  127. package/dist/collection/eds-docs-ui/design-tokens/docs-tokens/docs-tokens.js +1 -1
  128. package/dist/collection/eds-docs-ui/design-tokens/token-list/token-list.js +1 -1
  129. package/dist/collection/eds-docs-ui/design-tokens/token-radii/token-radii.js +1 -1
  130. package/dist/collection/eds-docs-ui/design-tokens/token-ratios/token-ratios.js +1 -1
  131. package/dist/collection/eds-docs-ui/design-tokens/token-shadows/token-shadows.js +1 -1
  132. package/dist/collection/eds-docs-ui/design-tokens/token-spacing/token-spacing.js +1 -1
  133. package/dist/collection/eds-docs-ui/design-tokens/token-typography/token-typography.js +1 -1
  134. package/dist/collection/eds-docs-ui/docs-palettes/docs-palettes.js +1 -1
  135. package/dist/collection/eds-docs-ui/logo/logo-space/logo-space.js +1 -1
  136. package/dist/collection/eds-docs-ui/logo/logo-variations/horizontal/logo-variations-horizontal.js +1 -1
  137. package/dist/collection/eds-docs-ui/logo/logo-variations/vertical/logo-variations-vertical.js +1 -1
  138. package/dist/collection/eds-docs-ui/logo/logo-variations-tabs/logo-variations.js +1 -1
  139. package/dist/collection/eds-docs-ui/logo/logo-wrong-usage/logo-wrong-usage.js +1 -1
  140. package/dist/collection/eds-docs-ui/svg-repository/svg-repository.js +1 -1
  141. package/dist/collection/shared-ui/eds-cookies-preference/eds-cookies-preference.js +1 -1
  142. package/dist/collection/shared-ui/eds-gitlab-contributors/eds-gitlab-contributors.css +19 -0
  143. package/dist/collection/shared-ui/eds-gitlab-contributors/eds-gitlab-contributors.js +8 -1
  144. package/dist/collection/shared-ui/eds-global-search/eds-global-search.css +166 -0
  145. package/dist/collection/shared-ui/eds-global-search/eds-global-search.js +62 -6
  146. package/dist/collection/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.css +205 -0
  147. package/dist/collection/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.js +257 -0
  148. package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.css +23 -102
  149. package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.js +7 -1
  150. package/dist/collection/shared-ui/eds-search-select/eds-search-select.css +203 -0
  151. package/dist/collection/shared-ui/eds-search-select/eds-search-select.js +685 -0
  152. package/dist/collection/shared-ui/eds-search-select/eds-search-select.stories.js +85 -0
  153. package/dist/collection/shared-ui/eds-trl-badge/ebrains-mark.js +26 -0
  154. package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.css +22 -0
  155. package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.js +321 -0
  156. package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.stories.js +96 -0
  157. package/dist/collection/shared-ui/examples/eds-app-root/eds-app-root.js +1 -1
  158. package/dist/collection/utils/eds-form/formValidators.js +2 -1
  159. package/dist/collection/utils/eds-form/safeFormat.js +39 -0
  160. package/dist/components/components-section.js +1 -1
  161. package/dist/components/components.css +3 -4
  162. package/dist/components/components.esm.js +1 -1
  163. package/dist/components/correct-use-of-colors.js +1 -1
  164. package/dist/components/docs-palettes.js +1 -1
  165. package/dist/components/docs-tokens.js +1 -1
  166. package/dist/components/eds-accordion2.js +2 -2
  167. package/dist/components/eds-app-root.js +1 -1
  168. package/dist/components/eds-avatar2.js +1 -1
  169. package/dist/components/eds-block-break2.js +1 -1
  170. package/dist/components/eds-breadcrumb.js +1 -1
  171. package/dist/components/eds-button2.js +12 -5
  172. package/dist/components/eds-card-cta.js +2 -2
  173. package/dist/components/eds-card-desc2.js +1 -1
  174. package/dist/components/eds-card-feature.js +1 -1
  175. package/dist/components/eds-card-generic2.js +1 -1
  176. package/dist/components/eds-card-hero.js +1 -1
  177. package/dist/components/eds-card-stat.js +1 -1
  178. package/dist/components/eds-code-block2.js +1 -1
  179. package/dist/components/eds-cookies-preference.js +1 -1
  180. package/dist/components/eds-dropdown2.js +30 -4
  181. package/dist/components/eds-feedback.js +1 -1
  182. package/dist/components/eds-footer2.js +115 -26
  183. package/dist/components/eds-form.js +61 -23
  184. package/dist/components/eds-frame.js +1 -1
  185. package/dist/components/eds-gauge.js +1 -1
  186. package/dist/components/eds-gitlab-contributors.js +9 -2
  187. package/dist/components/eds-global-search.js +48 -69
  188. package/dist/components/eds-header.js +1 -1
  189. package/dist/components/eds-icon-bluesky.js +1 -1
  190. package/dist/components/eds-icon-eu.js +1 -1
  191. package/dist/components/eds-icon-facebook.js +1 -1
  192. package/dist/components/eds-icon-gitlab.js +1 -1
  193. package/dist/components/eds-icon-linkedin.js +1 -1
  194. package/dist/components/eds-icon-mastodon.js +1 -1
  195. package/dist/components/eds-icon-twitter.js +1 -1
  196. package/dist/components/eds-icon-wrapper2.js +5 -2
  197. package/dist/components/eds-icon-youtube.js +1 -1
  198. package/dist/components/eds-img2.js +2 -2
  199. package/dist/components/eds-input-dropzone2.js +1 -1
  200. package/dist/components/eds-input-field2.js +25 -25
  201. package/dist/components/eds-input-file2.js +1 -1
  202. package/dist/components/eds-input-footer2.js +43 -3
  203. package/dist/components/eds-input-label2.js +1 -1
  204. package/dist/components/eds-input-range2.js +1 -1
  205. package/dist/components/eds-input-search.js +100 -1
  206. package/dist/components/eds-input-select2.js +2 -2
  207. package/dist/components/eds-input2.js +4 -2
  208. package/dist/components/eds-kg-learning-resources.d.ts +11 -0
  209. package/dist/components/eds-kg-learning-resources.js +221 -0
  210. package/dist/components/eds-kg-web-services-select2.js +16 -22
  211. package/dist/components/eds-link2.js +1 -1
  212. package/dist/components/eds-logo2.js +1 -1
  213. package/dist/components/eds-matomo-notice2.js +8 -2
  214. package/dist/components/eds-nps2.js +4 -4
  215. package/dist/components/eds-pagination2.js +2 -2
  216. package/dist/components/eds-rating2.js +3 -3
  217. package/dist/components/eds-search-select.d.ts +11 -0
  218. package/dist/components/eds-search-select.js +6 -0
  219. package/dist/components/eds-search-select2.js +361 -0
  220. package/dist/components/eds-section-core2.js +1 -1
  221. package/dist/components/eds-section-heading2.js +2 -2
  222. package/dist/components/eds-sidebar.js +2 -2
  223. package/dist/components/eds-social-networks2.js +1 -1
  224. package/dist/components/eds-spinner2.js +1 -1
  225. package/dist/components/eds-steps-v2.js +1 -1
  226. package/dist/components/eds-table2.js +31 -53
  227. package/dist/components/eds-tabs.js +48 -10
  228. package/dist/components/eds-tag2.js +1 -1
  229. package/dist/components/eds-timeline.js +1 -1
  230. package/dist/components/eds-toast-manager.js +1 -1
  231. package/dist/components/eds-tooltip2.js +1 -1
  232. package/dist/components/eds-trl-badge.d.ts +11 -0
  233. package/dist/components/eds-trl-badge.js +204 -0
  234. package/dist/components/eds-user.js +1 -1
  235. package/dist/components/incorrect-use-of-colors.js +1 -1
  236. package/dist/components/logo-space.js +19 -25
  237. package/dist/components/logo-variations-horizontal2.js +1 -1
  238. package/dist/components/logo-variations-tabs.js +1 -1
  239. package/dist/components/logo-variations-vertical2.js +1 -1
  240. package/dist/components/logo-wrong-usage.js +1 -1
  241. package/dist/components/p-00ba405d.entry.js +1 -0
  242. package/dist/components/p-03342030.entry.js +1 -0
  243. package/dist/components/{p-0fe10e6c.entry.js → p-0e2bac0f.entry.js} +1 -1
  244. package/dist/components/{p-7aa4edef.entry.js → p-12acc48d.entry.js} +1 -1
  245. package/dist/components/p-18399fe1.entry.js +1 -0
  246. package/dist/components/p-1e6f0572.entry.js +1 -0
  247. package/dist/components/{p-c46675c8.entry.js → p-1fbcc480.entry.js} +1 -1
  248. package/dist/components/{p-dfe93385.entry.js → p-25729ade.entry.js} +1 -1
  249. package/dist/components/p-27e093c3.entry.js +1 -0
  250. package/dist/components/{p-a6dc1f88.entry.js → p-37ef07d9.entry.js} +1 -1
  251. package/dist/components/{p-74b9c9a8.entry.js → p-3d1bb2fe.entry.js} +1 -1
  252. package/dist/components/{p-940a2d42.entry.js → p-42791331.entry.js} +1 -1
  253. package/dist/components/p-5ff4b1d0.entry.js +1 -0
  254. package/dist/components/{p-d16b5363.entry.js → p-62580004.entry.js} +1 -1
  255. package/dist/components/{p-d2576747.entry.js → p-62f53e7a.entry.js} +1 -1
  256. package/dist/components/p-6be1730a.entry.js +1 -0
  257. package/dist/components/p-786ff09b.entry.js +1 -0
  258. package/dist/components/p-80a32e20.entry.js +1 -0
  259. package/dist/components/p-85476a6f.entry.js +9 -0
  260. package/dist/components/{p-a63e14bb.entry.js → p-8a483358.entry.js} +1 -1
  261. package/dist/components/{p-04e9c2d7.entry.js → p-b1a10842.entry.js} +1 -1
  262. package/dist/components/p-bdcb71e1.entry.js +1 -0
  263. package/dist/components/p-c2127276.entry.js +1 -0
  264. package/dist/components/p-c3ee9163.entry.js +1 -0
  265. package/dist/components/{p-f55dd314.entry.js → p-c4cfbf98.entry.js} +1 -1
  266. package/dist/components/p-c65082fe.entry.js +1 -0
  267. package/dist/components/p-cc096938.entry.js +1 -0
  268. package/dist/components/p-d59d6fda.entry.js +1 -0
  269. package/dist/components/p-e027bc90.entry.js +1 -0
  270. package/dist/components/{p-f364296f.entry.js → p-e339d0b5.entry.js} +1 -1
  271. package/dist/components/{p-0d7aee0b.entry.js → p-e4df206e.entry.js} +1 -1
  272. package/dist/components/{p-c2fc62f7.entry.js → p-e71a4f29.entry.js} +1 -1
  273. package/dist/components/{p-773bd015.entry.js → p-e9e6ec19.entry.js} +1 -1
  274. package/dist/components/p-f4d2f882.entry.js +1 -0
  275. package/dist/components/{p-d1b3aa52.entry.js → p-f9a9fa34.entry.js} +1 -1
  276. package/dist/components/primary.js +1 -1
  277. package/dist/components/primary2.js +1 -1
  278. package/dist/components/secondary.js +1 -1
  279. package/dist/components/secondary2.js +7 -7
  280. package/dist/components/support.js +1 -1
  281. package/dist/components/support2.js +3 -3
  282. package/dist/components/svg-repository.js +19 -25
  283. package/dist/components/token-list2.js +1 -1
  284. package/dist/components/token-radii2.js +1 -1
  285. package/dist/components/token-ratios.js +1 -1
  286. package/dist/components/token-shadows2.js +1 -1
  287. package/dist/components/token-spacing.js +1 -1
  288. package/dist/components/token-typography.js +1 -1
  289. package/dist/esm/color-primary-palette_6.entry.js +14 -14
  290. package/dist/esm/components-section.entry.js +1 -1
  291. package/dist/esm/components.js +1 -1
  292. package/dist/esm/correct-use-of-colors.entry.js +1 -1
  293. package/dist/esm/docs-palettes.entry.js +1 -1
  294. package/dist/esm/docs-tokens.entry.js +1 -1
  295. package/dist/esm/{eds-accordion_52.entry.js → eds-accordion_53.entry.js} +846 -207
  296. package/dist/esm/eds-app-root.entry.js +1 -1
  297. package/dist/esm/eds-cookies-preference.entry.js +1 -1
  298. package/dist/esm/eds-feedback.entry.js +1 -1
  299. package/dist/esm/eds-frame.entry.js +1 -1
  300. package/dist/esm/eds-gauge.entry.js +1 -1
  301. package/dist/esm/eds-gitlab-contributors.entry.js +9 -2
  302. package/dist/esm/eds-icon-bluesky.entry.js +1 -1
  303. package/dist/esm/eds-icon-eu.entry.js +1 -1
  304. package/dist/esm/eds-icon-facebook.entry.js +1 -1
  305. package/dist/esm/eds-icon-gitlab.entry.js +1 -1
  306. package/dist/esm/eds-icon-linkedin.entry.js +1 -1
  307. package/dist/esm/eds-icon-mastodon.entry.js +1 -1
  308. package/dist/esm/eds-icon-twitter.entry.js +1 -1
  309. package/dist/esm/eds-icon-youtube.entry.js +1 -1
  310. package/dist/{components/eds-input-search2.js → esm/eds-input-search.entry.js} +9 -39
  311. package/dist/esm/eds-section-core_2.entry.js +3 -3
  312. package/dist/esm/eds-timeline.entry.js +1 -1
  313. package/dist/esm/eds-toast-manager.entry.js +1 -1
  314. package/dist/esm/eds-trl-badge.entry.js +177 -0
  315. package/dist/esm/incorrect-use-of-colors.entry.js +1 -1
  316. package/dist/esm/index-870ab08f.js +10 -2
  317. package/dist/esm/loader.js +1 -1
  318. package/dist/esm/logo-space.entry.js +1 -1
  319. package/dist/esm/logo-variations-horizontal_2.entry.js +2 -2
  320. package/dist/esm/logo-variations-tabs.entry.js +1 -1
  321. package/dist/esm/logo-wrong-usage.entry.js +1 -1
  322. package/dist/esm/svg-repository.entry.js +1 -1
  323. package/dist/esm/token-list_3.entry.js +3 -3
  324. package/dist/esm/token-ratios.entry.js +1 -1
  325. package/dist/esm/token-spacing.entry.js +1 -1
  326. package/dist/esm/token-typography.entry.js +1 -1
  327. package/dist/hydrate/index.js +1222 -207
  328. package/dist/hydrate/index.mjs +1222 -207
  329. package/dist/types/components/eds-accordion/eds-accordion.stories.d.ts +4 -8
  330. package/dist/types/components/eds-alert/eds-alert.stories.d.ts +7 -73
  331. package/dist/types/components/eds-button/eds-button.d.ts +1 -1
  332. package/dist/types/components/eds-dropdown/eds-dropdown.d.ts +1 -0
  333. package/dist/types/components/eds-footer/eds-footer.d.ts +84 -55
  334. package/dist/types/components/eds-footer/eds-footer.stories.d.ts +62 -1
  335. package/dist/types/components/eds-form/eds-form.d.ts +10 -0
  336. package/dist/types/components/eds-header/eds-header.stories.d.ts +6 -6
  337. package/dist/types/components/eds-icon-wrapper/eds-icon-wrapper.d.ts +8 -0
  338. package/dist/types/components/eds-img/eds-img.stories.d.ts +6 -20
  339. package/dist/types/components/eds-input-elements/eds-input/eds-input.d.ts +7 -0
  340. package/dist/types/components/eds-input-elements/eds-input-search/eds-input-search.stories.d.ts +36 -0
  341. package/dist/types/components/eds-input-field/eds-input-field.stories.d.ts +97 -38
  342. package/dist/types/components/eds-link/eds-link.stories.d.ts +9 -6
  343. package/dist/types/components/eds-table/eds-table.d.ts +8 -14
  344. package/dist/types/components/eds-table/eds-table.stories.d.ts +0 -107
  345. package/dist/types/components/eds-tabs/eds-tabs.d.ts +10 -0
  346. package/dist/types/components.d.ts +507 -86
  347. package/dist/types/shared-ui/eds-global-search/eds-global-search.d.ts +12 -0
  348. package/dist/types/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.d.ts +60 -0
  349. package/dist/types/shared-ui/eds-search-select/eds-search-select.d.ts +98 -0
  350. package/dist/types/shared-ui/eds-search-select/eds-search-select.stories.d.ts +81 -0
  351. package/dist/types/shared-ui/eds-trl-badge/ebrains-mark.d.ts +7 -0
  352. package/dist/types/shared-ui/eds-trl-badge/eds-trl-badge.d.ts +54 -0
  353. package/dist/types/shared-ui/eds-trl-badge/eds-trl-badge.stories.d.ts +112 -0
  354. package/dist/types/utils/eds-form/safeFormat.d.ts +21 -0
  355. package/package.json +1 -1
  356. package/dist/components/p-18e852e1.entry.js +0 -1
  357. package/dist/components/p-3ccd6948.entry.js +0 -1
  358. package/dist/components/p-3d3841d6.entry.js +0 -1
  359. package/dist/components/p-3f38df99.entry.js +0 -1
  360. package/dist/components/p-527e71d0.entry.js +0 -1
  361. package/dist/components/p-55047f7f.entry.js +0 -9
  362. package/dist/components/p-64c23098.entry.js +0 -1
  363. package/dist/components/p-7b93a385.entry.js +0 -1
  364. package/dist/components/p-878f65a6.entry.js +0 -1
  365. package/dist/components/p-92f6d9c0.entry.js +0 -1
  366. package/dist/components/p-9eedf771.entry.js +0 -1
  367. package/dist/components/p-b4355cec.entry.js +0 -1
  368. package/dist/components/p-d2f17fac.entry.js +0 -1
  369. package/dist/components/p-db5eea95.entry.js +0 -1
  370. package/dist/components/p-e205c269.entry.js +0 -1
  371. package/dist/components/p-f88b5f21.entry.js +0 -1
@@ -1,23 +1,22 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
2
2
  import { s as sendAnalytics } from './analytics.js';
3
3
  import { p as parseData } from './sharedUtils.js';
4
- import { d as defineCustomElement$f } from './eds-button2.js';
5
- import { d as defineCustomElement$e } from './eds-icon-wrapper2.js';
6
- import { d as defineCustomElement$d } from './eds-input2.js';
7
- import { d as defineCustomElement$c } from './eds-input-dropzone2.js';
8
- import { d as defineCustomElement$b } from './eds-input-field2.js';
9
- import { d as defineCustomElement$a } from './eds-input-file2.js';
10
- import { d as defineCustomElement$9 } from './eds-input-footer2.js';
11
- import { d as defineCustomElement$8 } from './eds-input-label2.js';
12
- import { d as defineCustomElement$7 } from './eds-input-range2.js';
13
- import { d as defineCustomElement$6 } from './eds-input-search2.js';
4
+ import { d as defineCustomElement$e } from './eds-button2.js';
5
+ import { d as defineCustomElement$d } from './eds-icon-wrapper2.js';
6
+ import { d as defineCustomElement$c } from './eds-input2.js';
7
+ import { d as defineCustomElement$b } from './eds-input-dropzone2.js';
8
+ import { d as defineCustomElement$a } from './eds-input-field2.js';
9
+ import { d as defineCustomElement$9 } from './eds-input-file2.js';
10
+ import { d as defineCustomElement$8 } from './eds-input-footer2.js';
11
+ import { d as defineCustomElement$7 } from './eds-input-label2.js';
12
+ import { d as defineCustomElement$6 } from './eds-input-range2.js';
14
13
  import { d as defineCustomElement$5 } from './eds-input-select2.js';
15
14
  import { d as defineCustomElement$4 } from './eds-link2.js';
16
15
  import { d as defineCustomElement$3 } from './eds-pagination2.js';
17
16
  import { d as defineCustomElement$2 } from './eds-switch2.js';
18
17
  import { d as defineCustomElement$1 } from './eds-tooltip2.js';
19
18
 
20
- const edsTableCss = "table{text-indent:0;border-color:inherit;border-collapse:collapse;}tr.table-row-default{background-color:transparent}tr.table-row-color:nth-child(even){background-color:var(--grey-light)}tr.table-row-color:nth-child(odd){background-color:transparent}.brand-table-wrapper{margin-top:2rem;width:100%}.brand-table{width:100% !important;border-collapse:separate !important;border-spacing:0 !important;display:table !important;table-layout:fixed !important}.brand-thead{background:var(--grey-light)}.brand-header-row{border:none !important}.brand-header-row th{padding:1rem 1.5rem !important;text-align:center !important;font-weight:600 !important;font-size:0.9rem !important;text-transform:uppercase;letter-spacing:0.05em;color:var(--grey-dark) !important;border:none !important;overflow-wrap:break-word !important;word-wrap:break-word !important}.brand-header-row th:first-child{border-radius:0.5rem 0 0 0;padding-left:2rem !important}.brand-header-row th:last-child{border-radius:0 0.5rem 0 0;padding-right:2rem !important}.brand-row{border-bottom:1px solid var(--grey-light) !important;transition:all 0.3s ease;cursor:pointer;position:relative;background:transparent !important}.brand-row:hover{background:rgba(0, 255, 157, 0.05) !important}.brand-row td{padding:1.5rem 1.5rem !important;border:none !important;vertical-align:middle;position:relative;z-index:1;overflow-wrap:break-word !important;word-wrap:break-word !important}.brand-row td:first-child{padding-left:2rem !important}.brand-row td:last-child{padding-right:2rem !important}.brand-row .actions-cell{text-align:right !important}.brand-table tr.brand-row{border-left:none;border-right:none;border-top:none}.container{width:calc(var(--container-width, 100%) - (2 * var(--breakout-container-outer-gutter, var(--container-outer-gutter, var(--outer-gutter, 0)))));margin-right:auto;margin-left:auto}.container>*{--container-outer-gutter:0;--breakout-container-outer-gutter:0}.pt-32{padding-top:2rem}.pt-40{padding-top:2.5rem}.pt-48{padding-top:3rem}.pb-28{padding-bottom:1.75rem}.pb-60{padding-bottom:3.75rem}.mt-20{margin-top:1.25rem}.mt-28{margin-top:1.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.overflow-x-auto{overflow-x:auto}.mt-6{margin-top:0.375rem}.p-0{padding:0rem}.p-4{padding:0.25rem}.m-0{margin:0rem}.border{border-width:1px}.border-softer{border:1px solid rgba(0, 0, 0, .1)}.even\\:bg-inverse-softer:nth-child(even){background-color:rgba(255, 255, 255, .15)}.px-8{padding-left:0.5rem;padding-right:0.5rem}.px-20{padding-left:1.25rem;padding-right:1.25rem}.py-8{padding-top:0.5rem;padding-bottom:0.5rem}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-center{text-align:center}.break-words{overflow-wrap:anywhere}.controls-container{display:flex;width:100%}.view-toggle-wrapper{flex-shrink:0}.search-wrapper{min-width:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:1.5rem;margin-top:1.5rem}.data-card{background:var(--white);border:1px solid var(--grey-light);border-radius:0.75rem;padding:1.5rem;transition:all 0.3s ease;display:flex;flex-direction:column;gap:1rem}.data-card:hover{border-color:var(--brand-green);box-shadow:0 4px 12px rgba(0, 255, 157, 0.1);transform:translateY(-2px)}.card-content{display:flex;flex-direction:column;gap:0.75rem;flex:1}.card-field{display:flex;flex-direction:column;gap:0.25rem}.card-label{font-family:var(--f-ui-03-fontFamily);font-size:var(--f-ui-03-fontSize);font-weight:var(--f-ui-03-fontWeight);line-height:var(--f-ui-03-lineHeight);text-transform:uppercase;letter-spacing:0.05em;color:var(--grey-dark)}.card-value{font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);color:var(--brand-black);word-wrap:break-word}.card-actions{display:flex;gap:0.5rem;justify-content:flex-end;padding-top:0.75rem;border-top:1px solid var(--grey-light)}@media (min-width: 640px){.card-grid{grid-template-columns:repeat(auto-fill, minmax(320px, 1fr))}}@media (min-width: 1024px){.card-grid{grid-template-columns:repeat(auto-fill, minmax(350px, 1fr));gap:2rem}}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-start{align-items:flex-start}.items-center{align-items:center}.gap-16{gap:1rem}.mb-16{margin-bottom:1rem}.w-full{width:100%}.w-auto{width:auto}@media (min-width: 750px){.flex-md-row{flex-direction:row}.items-md-center{align-items:center}.w-md-auto{width:auto}.w-md-400{width:400px}}";
19
+ const edsTableCss = "table{text-indent:0;border-color:inherit;border-collapse:collapse;}.brand-table-wrapper{margin-top:2rem;width:100%}.brand-table{width:100% !important;border-collapse:separate !important;border-spacing:0 !important;display:table !important;table-layout:fixed !important}.brand-thead{background:var(--grey-light)}.brand-header-row{border:none !important}.brand-header-row th{padding:1rem 1.5rem !important;text-align:center !important;font-weight:600 !important;font-size:0.9rem !important;text-transform:uppercase;letter-spacing:0.05em;color:var(--grey-dark) !important;border:none !important;overflow-wrap:break-word !important;word-wrap:break-word !important}.brand-header-row th:first-child{border-radius:0.5rem 0 0 0;padding-left:2rem !important}.brand-header-row th:last-child{border-radius:0 0.5rem 0 0;padding-right:2rem !important}.brand-row{border-bottom:1px solid var(--grey-light) !important;transition:all 0.3s ease;position:relative;background:transparent !important}.brand-row.has-actions{cursor:pointer}.brand-row:hover{background:rgba(0, 255, 157, 0.05) !important}.brand-row td{padding:1.5rem 1.5rem !important;border:none !important;vertical-align:middle;position:relative;z-index:1;overflow-wrap:break-word !important;word-wrap:break-word !important}.brand-row td:first-child{padding-left:2rem !important}.brand-row td:last-child{padding-right:2rem !important}.brand-row .actions-cell{text-align:right !important}.brand-table tr.brand-row{border-left:none;border-right:none;border-top:none}.container{width:calc(var(--container-width, 100%) - (2 * var(--breakout-container-outer-gutter, var(--container-outer-gutter, var(--outer-gutter, 0)))));margin-right:auto;margin-left:auto}.container>*{--container-outer-gutter:0;--breakout-container-outer-gutter:0}.pt-32{padding-top:2rem}.pt-40{padding-top:2.5rem}.pt-48{padding-top:3rem}.pb-28{padding-bottom:1.75rem}.pb-60{padding-bottom:3.75rem}.mt-20{margin-top:1.25rem}.mt-28{margin-top:1.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.overflow-x-auto{overflow-x:auto}.mt-6{margin-top:0.375rem}.p-0{padding:0rem}.p-4{padding:0.25rem}.m-0{margin:0rem}.border{border-width:1px}.border-softer{border:1px solid rgba(0, 0, 0, .1)}.even\\:bg-inverse-softer:nth-child(even){background-color:rgba(255, 255, 255, .15)}.px-8{padding-left:0.5rem;padding-right:0.5rem}.px-20{padding-left:1.25rem;padding-right:1.25rem}.py-8{padding-top:0.5rem;padding-bottom:0.5rem}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-02{font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);letter-spacing:var(--f-ui-02-letterSpacing)}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-center{text-align:center}.break-words{overflow-wrap:anywhere}.controls-container{display:flex;width:100%}.view-toggle-wrapper{flex-shrink:0}.search-wrapper{min-width:0}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));gap:1.5rem;margin-top:1.5rem}.data-card{background:var(--white);border:1px solid var(--grey-light);border-radius:0.75rem;padding:1.5rem;transition:all 0.3s ease;display:flex;flex-direction:column;gap:1rem}.data-card:hover{border-color:var(--brand-green);box-shadow:0 4px 12px rgba(0, 255, 157, 0.1);transform:translateY(-2px)}.card-content{display:flex;flex-direction:column;gap:0.75rem;flex:1}.card-field{display:flex;flex-direction:column;gap:0.25rem}.card-label{font-family:var(--f-ui-03-fontFamily);font-size:var(--f-ui-03-fontSize);font-weight:var(--f-ui-03-fontWeight);line-height:var(--f-ui-03-lineHeight);text-transform:uppercase;letter-spacing:0.05em;color:var(--grey-dark)}.card-value{font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);line-height:var(--f-ui-02-lineHeight);color:var(--brand-black);word-wrap:break-word}.card-field:first-child .card-value{font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight)}.card-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.5rem;padding-top:0.75rem;border-top:1px solid var(--grey-light)}@media (min-width: 640px){.card-grid{grid-template-columns:repeat(auto-fill, minmax(320px, 1fr))}}@media (min-width: 1024px){.card-grid{grid-template-columns:repeat(auto-fill, minmax(350px, 1fr));gap:2rem}}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-start{align-items:flex-start}.items-center{align-items:center}.gap-16{gap:1rem}.mb-16{margin-bottom:1rem}.w-full{width:100%}.w-auto{width:auto}@media (min-width: 750px){.flex-md-row{flex-direction:row}.items-md-center{align-items:center}.w-md-auto{width:auto}.w-md-400{width:400px}}";
21
20
  const EdsTableStyle0 = edsTableCss;
22
21
 
23
22
  const EdsTable = /*@__PURE__*/ proxyCustomElement(class EdsTable extends HTMLElement {
@@ -91,11 +90,10 @@ const EdsTable = /*@__PURE__*/ proxyCustomElement(class EdsTable extends HTMLEle
91
90
  this.paginationEnabled = true;
92
91
  this.searchEnabled = false;
93
92
  this.hostWidth = undefined;
94
- this.columnSize = 'default';
95
93
  this.actions = [];
96
94
  this.actionTemplate = undefined;
97
95
  this.sortingEnabled = false;
98
- this.theme = 'color';
96
+ this.theme = 'brand';
99
97
  this.view = 'table';
100
98
  this.showViewToggle = false;
101
99
  this.parsedActions = [];
@@ -127,6 +125,8 @@ const EdsTable = /*@__PURE__*/ proxyCustomElement(class EdsTable extends HTMLEle
127
125
  }
128
126
  }
129
127
  componentWillLoad() {
128
+ // 'default' / 'color' themes are disabled — always render the brand theme.
129
+ this.theme = 'brand';
130
130
  this.parseConfig();
131
131
  this.handleActionsChange();
132
132
  this.parseData();
@@ -262,19 +262,6 @@ const EdsTable = /*@__PURE__*/ proxyCustomElement(class EdsTable extends HTMLEle
262
262
  this.columns.push('actions');
263
263
  }
264
264
  }
265
- getVisibleColumnsCount() {
266
- return this.columns.filter((column) => { var _a; return !((_a = this.parsedConfig[column]) === null || _a === void 0 ? void 0 : _a.hidden); }).length;
267
- }
268
- divisionFactor() {
269
- let divisionFactor = 1;
270
- if (this.columnSize === 'medium') {
271
- divisionFactor = 2;
272
- }
273
- else if (this.columnSize === 'large') {
274
- divisionFactor = 4;
275
- }
276
- return divisionFactor;
277
- }
278
265
  capitalize(str) {
279
266
  return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
280
267
  }
@@ -309,24 +296,23 @@ const EdsTable = /*@__PURE__*/ proxyCustomElement(class EdsTable extends HTMLEle
309
296
  const dataColumns = this.columns.filter((col) => { var _a; return col !== 'actions' && !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); });
310
297
  return (h("div", { class: "card-grid" }, rows.map((row) => (h("div", { class: "data-card" }, h("div", { class: "card-content" }, dataColumns.map((col) => (h("div", { class: "card-field" }, h("span", { class: "card-label" }, this.capitalize(col)), h("span", { class: "card-value" }, this.renderCell(row[col], col)))))), this.parsedActions.length > 0 && (h("div", { class: "card-actions" }, this.parsedActions.map((act) => (h("span", null, this.renderSingleActionCell(act.name, row)))))))))));
311
298
  }
312
- renderTableView(paginatedRows, currentContainerWidth, visibleColumnsCount) {
313
- const columnWidth = visibleColumnsCount > 0 ? Math.floor((currentContainerWidth / visibleColumnsCount) * this.divisionFactor()) : 100;
299
+ renderTableView(paginatedRows) {
314
300
  return (h("div", { class: `mt-20 ${this.theme === 'brand' ? 'brand-table-wrapper' : ''}` }, h("table", { class: `${this.theme === 'brand' ? '' : 'block overflow-x-auto'} mt-6 p-0 ${this.theme === 'brand' ? 'brand-table' : ''}` }, h("thead", { class: this.theme === 'brand' ? 'brand-thead' : '' }, h("tr", { class: `m-0 p-0 border border-softer table-row-${this.theme} ${this.theme === 'brand' ? 'brand-header-row' : ''}` }, this.columns
315
301
  .filter((col) => { var _a; return col === 'actions' || !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); })
316
302
  .map((col) => {
317
303
  if (col === 'actions') {
318
- return (h("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words", style: this.theme === 'brand' ? {} : { minWidth: `${columnWidth - 4}px` } }));
304
+ return (h("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words" }));
319
305
  }
320
- return (h("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words", style: this.theme === 'brand' ? {} : { minWidth: `${columnWidth - 4}px` } }, h("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '0.25rem' } }, h("span", null, this.capitalize(col)), this.sortingEnabled && (h("eds-icon-wrapper", { name: this.sortColumn === col
306
+ return (h("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words" }, h("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '0.25rem' } }, h("span", null, this.capitalize(col)), this.sortingEnabled && (h("eds-icon-wrapper", { name: this.sortColumn === col
321
307
  ? this.sortDirection === 'asc'
322
308
  ? 'chevron-up'
323
309
  : 'chevron-down'
324
310
  : 'chevron-down', "aria-label": `Sort by ${col}`, onClick: () => this.handleSort(col), style: { cursor: 'pointer' } })))));
325
- }))), h("tbody", null, paginatedRows.map((row) => (h("tr", { class: `m-0 p-0 border border-softer table-row-${this.theme} ${this.theme === 'brand' ? 'brand-row' : ''}` }, this.columns
311
+ }))), h("tbody", null, paginatedRows.map((row) => (h("tr", { class: `m-0 p-0 border border-softer table-row-${this.theme} ${this.theme === 'brand' ? 'brand-row' : ''} ${this.parsedActions.length > 0 ? 'has-actions' : ''}` }, this.columns
326
312
  .filter((col) => { var _a; return col === 'actions' || !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); })
327
313
  .map((col) => {
328
314
  if (col === 'actions') {
329
- return (h("td", { class: "text-center border border-softer m-0 f-ui-01 break-words actions-cell", style: this.theme === 'brand' ? {} : { minWidth: `${columnWidth - 4}px` } }, h("div", { role: "toolbar", "aria-label": "Row actions", onKeyDown: this.onActionKeyDown, style: {
315
+ return (h("td", { class: "text-center border border-softer m-0 f-ui-01 break-words actions-cell" }, h("div", { role: "toolbar", "aria-label": "Row actions", onKeyDown: this.onActionKeyDown, style: {
330
316
  display: 'flex',
331
317
  gap: '0.5rem',
332
318
  justifyContent: 'center',
@@ -334,18 +320,16 @@ const EdsTable = /*@__PURE__*/ proxyCustomElement(class EdsTable extends HTMLEle
334
320
  } }, this.parsedActions.map((act) => (h("span", { style: { whiteSpace: 'nowrap' } }, this.renderSingleActionCell(act.name, row)))))));
335
321
  }
336
322
  // Regular data cell
337
- return (h("td", { class: "text-center border border-softer m-0 py-8 f-ui-02 break-words", style: this.theme === 'brand' ? {} : { minWidth: `${columnWidth - 4}px` } }, this.renderCell(row[col], col)));
323
+ return (h("td", { class: "text-center border border-softer m-0 py-8 f-ui-02 break-words" }, this.renderCell(row[col], col)));
338
324
  }))))))));
339
325
  }
340
326
  render() {
341
- const currentContainerWidth = this.hostWidth && this.hostWidth.trim() !== '' ? Number(this.hostWidth) : this.containerWidth || 400;
342
- const visibleColumnsCount = this.getVisibleColumnsCount();
343
327
  const paginatedRows = this.getPaginatedRows();
344
328
  const lastPage = Math.ceil(this.totalRows / this.rowsPerPage);
345
329
  const showControls = this.showViewToggle || this.searchEnabled;
346
- return (h("div", { key: 'ca547566767c7bccd7b894dad5819ed74e9e281d' }, showControls && (h("div", { key: '47c6fa14c2dbe499617dc31df1fd578bde473c6f', class: "controls-container flex-col flex-md-row items-start items-md-center justify-between gap-16 mb-16" }, this.showViewToggle && (h("div", { key: '7f63fd07e67eaca9abc9d0700d7824e0f474dc23', class: "view-toggle-wrapper" }, h("eds-switch", { key: 'f52b744b0e83295c1641f338212bae5843970ab9', variant: "segmented", labelOff: "Table View", labelOn: "Card View", checked: this.view === 'card', onUiswitch: this.handleViewChange }))), this.searchEnabled && (h("div", { key: '5ebb3620be6161a1d7e1881cb5d33f5aac2e12a4', class: `search-wrapper w-full ${this.showViewToggle ? 'w-md-400' : ''}` }, h("eds-input-field", { key: 1, icon: "search", name: "search", "aria-label": "Search", type: "text", placeholder: "Search...", onInput: (event) => this.handleSearch(event) }))))), this.view === 'card'
330
+ return (h("div", { key: '1e8a2f5f19df240ee3a57951641b60b947342fad' }, showControls && (h("div", { key: '778fe091226330448bba089189e9dd6a6aa977a9', class: "controls-container flex-col flex-md-row items-start items-md-center justify-between gap-16 mb-16" }, this.showViewToggle && (h("div", { key: '7ef287464bb2fba846be5341f4bb0e71d982be0e', class: "view-toggle-wrapper" }, h("eds-switch", { key: '2d3a494a5b354a14c8e882a153633bd5e85a40ab', variant: "segmented", labelOff: "Table View", labelOn: "Card View", checked: this.view === 'card', onUiswitch: this.handleViewChange }))), this.searchEnabled && (h("div", { key: 'dfcf6d0bdc23cb10481121881a7656b02a0599c1', class: `search-wrapper w-full ${this.showViewToggle ? 'w-md-400' : ''}` }, h("eds-input-field", { key: 1, icon: "search", name: "search", "aria-label": "Search", type: "text", placeholder: "Search...", onInput: (event) => this.handleSearch(event) }))))), this.view === 'card'
347
331
  ? this.renderCardView(paginatedRows)
348
- : this.renderTableView(paginatedRows, currentContainerWidth, visibleColumnsCount), this.shouldEnablePagination() && (h("div", { key: 'bed5232d5ff9d7cac22ac2537876a388f35c85a6', class: "mt-20" }, h("eds-pagination", { key: 'ec91525689028f6cfe2721e290f5c5c7097ab67a', currentPage: this.currentPage, lastPage: lastPage, perPage: this.rowsPerPage, total: this.totalRows, mode: "default" })))));
332
+ : this.renderTableView(paginatedRows), this.shouldEnablePagination() && (h("div", { key: '3f7faafdd6147855cb8812ff6303c335c7fd1f35', class: "mt-20" }, h("eds-pagination", { key: '17705ba01a8ca8cc79bacfce34e55f11ce53d70c', currentPage: this.currentPage, lastPage: lastPage, perPage: this.rowsPerPage, total: this.totalRows, mode: "default" })))));
349
333
  }
350
334
  get hostEl() { return this; }
351
335
  static get watchers() { return {
@@ -361,11 +345,10 @@ const EdsTable = /*@__PURE__*/ proxyCustomElement(class EdsTable extends HTMLEle
361
345
  "paginationEnabled": [4, "pagination-enabled"],
362
346
  "searchEnabled": [4, "search-enabled"],
363
347
  "hostWidth": [1, "host-width"],
364
- "columnSize": [1, "column-size"],
365
348
  "actions": [1],
366
349
  "actionTemplate": [16],
367
350
  "sortingEnabled": [4, "sorting-enabled"],
368
- "theme": [1],
351
+ "theme": [1025],
369
352
  "view": [1025],
370
353
  "showViewToggle": [4, "show-view-toggle"],
371
354
  "parsedActions": [32],
@@ -388,7 +371,7 @@ function defineCustomElement() {
388
371
  if (typeof customElements === "undefined") {
389
372
  return;
390
373
  }
391
- const components = ["eds-table", "eds-button", "eds-icon-wrapper", "eds-input", "eds-input-dropzone", "eds-input-field", "eds-input-file", "eds-input-footer", "eds-input-label", "eds-input-range", "eds-input-search", "eds-input-select", "eds-link", "eds-pagination", "eds-switch", "eds-tooltip"];
374
+ const components = ["eds-table", "eds-button", "eds-icon-wrapper", "eds-input", "eds-input-dropzone", "eds-input-field", "eds-input-file", "eds-input-footer", "eds-input-label", "eds-input-range", "eds-input-select", "eds-link", "eds-pagination", "eds-switch", "eds-tooltip"];
392
375
  components.forEach(tagName => { switch (tagName) {
393
376
  case "eds-table":
394
377
  if (!customElements.get(tagName)) {
@@ -396,51 +379,46 @@ function defineCustomElement() {
396
379
  }
397
380
  break;
398
381
  case "eds-button":
399
- if (!customElements.get(tagName)) {
400
- defineCustomElement$f();
401
- }
402
- break;
403
- case "eds-icon-wrapper":
404
382
  if (!customElements.get(tagName)) {
405
383
  defineCustomElement$e();
406
384
  }
407
385
  break;
408
- case "eds-input":
386
+ case "eds-icon-wrapper":
409
387
  if (!customElements.get(tagName)) {
410
388
  defineCustomElement$d();
411
389
  }
412
390
  break;
413
- case "eds-input-dropzone":
391
+ case "eds-input":
414
392
  if (!customElements.get(tagName)) {
415
393
  defineCustomElement$c();
416
394
  }
417
395
  break;
418
- case "eds-input-field":
396
+ case "eds-input-dropzone":
419
397
  if (!customElements.get(tagName)) {
420
398
  defineCustomElement$b();
421
399
  }
422
400
  break;
423
- case "eds-input-file":
401
+ case "eds-input-field":
424
402
  if (!customElements.get(tagName)) {
425
403
  defineCustomElement$a();
426
404
  }
427
405
  break;
428
- case "eds-input-footer":
406
+ case "eds-input-file":
429
407
  if (!customElements.get(tagName)) {
430
408
  defineCustomElement$9();
431
409
  }
432
410
  break;
433
- case "eds-input-label":
411
+ case "eds-input-footer":
434
412
  if (!customElements.get(tagName)) {
435
413
  defineCustomElement$8();
436
414
  }
437
415
  break;
438
- case "eds-input-range":
416
+ case "eds-input-label":
439
417
  if (!customElements.get(tagName)) {
440
418
  defineCustomElement$7();
441
419
  }
442
420
  break;
443
- case "eds-input-search":
421
+ case "eds-input-range":
444
422
  if (!customElements.get(tagName)) {
445
423
  defineCustomElement$6();
446
424
  }
@@ -2,7 +2,7 @@ import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/i
2
2
  import { s as sendAnalytics } from './analytics.js';
3
3
  import { p as parseData } from './sharedUtils.js';
4
4
 
5
- const edsTabsCss = ":host{display:block}.tabs-container{display:flex;gap:0.25rem;padding:0.25rem;border-radius:10px;width:fit-content;margin-bottom:3rem}.tabs-container-default{background-color:var(--brand-black, #07140D);border:1px solid rgba(255, 255, 255, 0.06)}.tabs-container-inverse{background:rgba(0, 0, 0, 0.02);border:1px solid rgba(0, 0, 0, 0.06)}.tabs-nav{display:flex;gap:0.25rem}.tab{padding:0.625rem 1.25rem;border-radius:8px;font-size:1.125rem;cursor:pointer;transition:all 0.2s ease;border:none;background:transparent;font-family:'IBM Plex Sans', sans-serif;white-space:nowrap;outline:none}.tab:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px}.tab-default{color:var(--grey-700)}.tab-default:hover{color:var(--white)}.tab-default.tab-active{background:rgba(0, 255, 157, 0.1);color:var(--brand-green)}.tab-inverse{color:var(--grey-700)}.tab-inverse:hover{color:var(--brand-black)}.tab-inverse.tab-active{background:rgba(0, 200, 123, 0.1);color:var(--brand-green-dark)}.tab-panels{margin-top:2rem}.tab-panels>div{outline:none}.tab-panels>div:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px;border-radius:4px}@media (max-width: 768px){.tabs-container{width:100%;overflow-x:auto}.tabs-nav{width:100%;min-width:fit-content}}";
5
+ const edsTabsCss = ":host{display:block}.tabs-container{display:flex;gap:0.25rem;padding:0.25rem;border-radius:10px;width:fit-content;margin-bottom:3rem}.tabs-container-default{background-color:var(--brand-black, #07140D);border:1px solid rgba(255, 255, 255, 0.06)}.tabs-container-inverse{background:rgba(0, 0, 0, 0.02);border:1px solid rgba(0, 0, 0, 0.06)}.tabs-nav{display:flex;gap:0.25rem}.tab{padding:0.625rem 1.25rem;border-radius:8px;font-size:1.125rem;cursor:pointer;transition:color 0.15s ease;border:none;background:transparent;font-family:'IBM Plex Sans', sans-serif;white-space:nowrap;outline:none}.tab:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px}.tab-default{color:var(--grey-700)}.tab-default:hover{color:var(--white)}.tab-default.tab-active{background:rgba(0, 255, 157, 0.1);color:var(--brand-green)}.tab-inverse{color:var(--grey-700)}.tab-inverse:hover{color:var(--brand-black)}.tab-inverse.tab-active{background:rgba(0, 200, 123, 0.1);color:var(--brand-green-dark)}.tab-panels{margin-top:2rem}.tab-panels>div{outline:none}.tab-panels>div:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px;border-radius:4px}@media (max-width: 768px){.tabs-container{width:100%;overflow-x:auto}.tabs-nav{width:100%;min-width:fit-content}}";
6
6
  const EdsTabsStyle0 = edsTabsCss;
7
7
 
8
8
  const EdsTabs$1 = /*@__PURE__*/ proxyCustomElement(class EdsTabs extends HTMLElement {
@@ -31,14 +31,28 @@ const EdsTabs$1 = /*@__PURE__*/ proxyCustomElement(class EdsTabs extends HTMLEle
31
31
  }
32
32
  /**
33
33
  * Parses the `tabs` prop into an array of tab objects.
34
+ *
35
+ * Note: we deliberately do NOT clear `tabRefs` here. Consumers
36
+ * often re-pass `tabs` with an updated `active` flag every time
37
+ * the user switches tabs (Vue/React re-render on event). Wiping
38
+ * the refs leaves a window in which a queued focus() call sees
39
+ * `tabRefs[index] === undefined` and silently no-ops — focus
40
+ * gets stuck on the previous tab even though `aria-selected` and
41
+ * the background already moved. Stencil re-binds refs on render,
42
+ * so the array stays in sync without us emptying it; we only
43
+ * truncate when the new list is shorter to drop stale entries.
34
44
  */
35
45
  parseTabs() {
36
46
  this.parsedTabs = parseData(this.tabs);
37
- this.tabRefs = [];
47
+ if (this.tabRefs.length > this.parsedTabs.length) {
48
+ this.tabRefs.length = this.parsedTabs.length;
49
+ }
38
50
  }
39
51
  componentDidUpdate() {
40
- if (this.tabRefs.length !== this.parsedTabs.length) {
41
- this.tabRefs = new Array(this.parsedTabs.length).fill(null);
52
+ // Same reasoning as parseTabs: only shrink, never re-allocate
53
+ // to nulls — that would re-introduce the silent-no-op window.
54
+ if (this.tabRefs.length > this.parsedTabs.length) {
55
+ this.tabRefs.length = this.parsedTabs.length;
42
56
  }
43
57
  }
44
58
  setActiveIndex() {
@@ -49,6 +63,7 @@ const EdsTabs$1 = /*@__PURE__*/ proxyCustomElement(class EdsTabs extends HTMLEle
49
63
  }
50
64
  }
51
65
  handleTabClick(index, tabLabel, shouldFocus = true) {
66
+ var _a;
52
67
  if (index < 0 || index >= this.parsedTabs.length) {
53
68
  return;
54
69
  }
@@ -63,11 +78,34 @@ const EdsTabs$1 = /*@__PURE__*/ proxyCustomElement(class EdsTabs extends HTMLEle
63
78
  action: 'click'
64
79
  });
65
80
  }
66
- if (shouldFocus && this.tabRefs[index]) {
67
- setTimeout(() => {
81
+ if (shouldFocus) {
82
+ // Focus must move SYNCHRONOUSLY, while the keydown event
83
+ // that triggered this call is still on the stack. Otherwise
84
+ // the browser's `:focus-visible` heuristic doesn't flag the
85
+ // focus move as keyboard-driven and the outline never paints
86
+ // — accessibility regression (WCAG 2.4.7).
87
+ //
88
+ // We query by static id (`#tab-${index}`) instead of using
89
+ // `tabRefs[index]` because consumer-driven prop changes can
90
+ // briefly drop the cached ref. The button id is set in
91
+ // `render()` and doesn't depend on active state, so it is
92
+ // always findable.
93
+ const findBtn = () => { var _a; return ((_a = this.el.shadowRoot) !== null && _a !== void 0 ? _a : this.el).querySelector(`#tab-${index}`); };
94
+ (_a = findBtn()) === null || _a === void 0 ? void 0 : _a.focus();
95
+ // Belt-and-suspenders: if a consumer reacts to the `tab`
96
+ // event by re-rendering our buttons (rare, but possible
97
+ // when the `tabs` prop is recomputed), the sync focus above
98
+ // landed on a button that is now detached. Re-focus once
99
+ // the next frame's DOM is in place. We only act if focus
100
+ // genuinely isn't on the right element, to avoid a redundant
101
+ // focus call that would reset selection/IME state.
102
+ requestAnimationFrame(() => {
68
103
  var _a;
69
- (_a = this.tabRefs[index]) === null || _a === void 0 ? void 0 : _a.focus();
70
- }, 0);
104
+ const after = findBtn();
105
+ if (after && ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) !== after) {
106
+ after.focus();
107
+ }
108
+ });
71
109
  }
72
110
  }
73
111
  onKeyDown(ev, idx) {
@@ -101,7 +139,7 @@ const EdsTabs$1 = /*@__PURE__*/ proxyCustomElement(class EdsTabs extends HTMLEle
101
139
  'tabs-container',
102
140
  `tabs-container-${this.variant}`
103
141
  ].join(' ');
104
- return (h("div", { key: '66e0871d6cd917c15598b6e3ea80e5ff82970029', id: `${this.identifier}` }, h("div", { key: 'c65163e33fcf4960bbcc367a2abf62c0aec99446', class: containerClasses }, h("nav", { key: 'fae5e0f23904318299d60e1d3212f84b8c5a0bed', role: "tablist", class: "tabs-nav", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
142
+ return (h("div", { key: '646f43031cde2e0ab84d2830fd9477841b3c757b', id: `${this.identifier}` }, h("div", { key: '2eb01c96640c6fc602777f227525066e5970489e', class: containerClasses }, h("nav", { key: 'b419fc7414574ea70b19433a3c5daa63b5ad6652', role: "tablist", class: "tabs-nav", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
105
143
  const isActive = index === this.activeIndex;
106
144
  const tabClasses = [
107
145
  'tab',
@@ -109,7 +147,7 @@ const EdsTabs$1 = /*@__PURE__*/ proxyCustomElement(class EdsTabs extends HTMLEle
109
147
  isActive ? 'tab-active' : ''
110
148
  ].filter(Boolean).join(' ');
111
149
  return (h("button", { class: tabClasses, type: "button", role: "tab", "aria-selected": isActive ? 'true' : 'false', tabIndex: isActive ? 0 : -1, "aria-label": tab.ariaLabel || tab.label, "aria-controls": `panel-${index}`, id: `tab-${index}`, ref: (el) => this.setTabRef(el, index), onClick: () => this.handleTabClick(index, tab.label, true), onKeyDown: (e) => this.onKeyDown(e, index) }, tab.label || tab.ariaLabel));
112
- }))), h("div", { key: 'a259d3e45fbcc5f75303cf8eb256374c67c62db1', class: "tab-panels" }, this.parsedTabs.map((_, index) => (h("div", { role: "tabpanel", id: `panel-${index}`, "aria-labelledby": `tab-${index}`, hidden: index !== this.activeIndex, tabIndex: index === this.activeIndex ? 0 : -1 }, h("slot", { name: `panel-${index}` })))))));
150
+ }))), h("div", { key: '0ce244b3d2b2120d1bdf127144e9b42e2ad34e52', class: "tab-panels" }, this.parsedTabs.map((_, index) => (h("div", { role: "tabpanel", id: `panel-${index}`, "aria-labelledby": `tab-${index}`, hidden: index !== this.activeIndex, tabIndex: index === this.activeIndex ? 0 : -1 }, h("slot", { name: `panel-${index}` })))))));
113
151
  }
114
152
  get el() { return this; }
115
153
  static get watchers() { return {
@@ -38,7 +38,7 @@ const EdsTag = /*@__PURE__*/ proxyCustomElement(class EdsTag extends HTMLElement
38
38
  }
39
39
  render() {
40
40
  const classes = tagStyles({ intent: this.intent, size: this.size });
41
- return (h("span", { key: 'ca20e54df5fc895110b39ce7875c3c0026e94fc3', class: classes }, h("span", { key: '5ad7ada1ae051ff2840bb033ec683b44477f6684', style: { position: 'relative', zIndex: '1' } }, this.label)));
41
+ return (h("span", { key: '20e1625ac01b0dc1f40356d02622e0649faa7fa7', class: classes }, h("span", { key: '313c3f18c0a5df285afe6a40ded9e68035d9648f', style: { position: 'relative', zIndex: '1' } }, this.label)));
42
42
  }
43
43
  static get style() { return EdsTagStyle0; }
44
44
  }, [1, "eds-tag", {
@@ -50,7 +50,7 @@ const EdsTimeline$1 = /*@__PURE__*/ proxyCustomElement(class EdsTimeline extends
50
50
  }
51
51
  }
52
52
  render() {
53
- return (h("div", { key: '9670bbe26e6f092d88c73268838d9349dca0c323', class: "max-w-sidebar mx-auto px-4 py-8" }, h("div", { key: '202722dc0cb384ce68b2239915f44bf90d87a77e', class: "relative" }, h("div", { key: '59760e5a62518dc6c3cc7fcfa711e060837f4c49', class: "absolute w-4 left-1/2 transform -translate-x-1/2 bg-strong h-full z-0" }), h("div", { key: '2f1f6c5f5e7f2a770fc762b1b886dd199f0cf953', class: "space-y-16" }, this.parsedEvents.map((event, index) => (h("div", { class: "relative flex" }, h("div", { class: `w-1/2 ${index % 2 === 0 ? 'pr-4' : ''}` }, index % 2 === 0 && (h("eds-card-generic", { title: event.title, url: "#", description: event.description, intent: "secondary", tags: JSON.stringify(event.completed
53
+ return (h("div", { key: '78b199b18d361ae3223e4f1fe9a2043d61f4271b', class: "max-w-sidebar mx-auto px-4 py-8" }, h("div", { key: 'afdfdf7dc573a7f273703a02e38e755a9815bdf7', class: "relative" }, h("div", { key: '7affc96f356ee901ca263c7347ae60b84869f28b', class: "absolute w-4 left-1/2 transform -translate-x-1/2 bg-strong h-full z-0" }), h("div", { key: '7ba006234bd1365890e75b7f59aa118265ba727c', class: "space-y-16" }, this.parsedEvents.map((event, index) => (h("div", { class: "relative flex" }, h("div", { class: `w-1/2 ${index % 2 === 0 ? 'pr-4' : ''}` }, index % 2 === 0 && (h("eds-card-generic", { title: event.title, url: "#", description: event.description, intent: "secondary", tags: JSON.stringify(event.completed
54
54
  ? [{ label: 'completed', style: 'accent' }]
55
55
  : [{ label: 'pending', style: 'default' }]), onClick: () => this.handleEventClick(event) }))), h("div", { class: "flex items-center justify-center relative" }, event.completed ? (h("div", { class: "w-32 h-32 bg-accent rounded-full shadow flex items-center justify-center" })) : (h("div", { class: "w-32 h-32 bg-strong rounded-full shadow flex items-center justify-center" }))), h("div", { class: `w-1/2 ${index % 2 !== 0 ? 'pl-4' : ''}` }, index % 2 !== 0 && (h("eds-card-generic", { title: event.title, url: "#", description: event.description, intent: "secondary", tags: JSON.stringify(event.completed
56
56
  ? [{ label: 'completed', style: 'accent' }]
@@ -67,7 +67,7 @@ const EdsToastManager$1 = /*@__PURE__*/ proxyCustomElement(class EdsToastManager
67
67
  this.toasts = this.toasts.filter((t) => t.id !== id);
68
68
  }
69
69
  render() {
70
- return (h("div", { key: 'd707822f33892171428aa926822dff5ffefac219', 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) }))))));
70
+ return (h("div", { key: '989e469e815c6af6b46a14fddee85e4707f86704', 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) }))))));
71
71
  }
72
72
  get hostElement() { return this; }
73
73
  static get style() { return EdsToastManagerStyle0; }
@@ -23,7 +23,7 @@ const EdsTooltip = /*@__PURE__*/ proxyCustomElement(class EdsTooltip extends HTM
23
23
  }
24
24
  render() {
25
25
  const positionClass = this.position === 'bottom' ? 'top-full mt-2' : 'bottom-full mb-2';
26
- return (h("div", { key: '240956acf8218cb0b36254aecd629058ad39f4eb', class: "relative w-full inline-block group" }, h("slot", { key: '4424c8de31fd4e2aa702369314cf0819447ca364' }), h("div", { key: 'f260ef6ee9700231dc77ddc9debc7f5b92f546c6', class: `absolute ${positionClass}
26
+ return (h("div", { key: '8b4396894b1ec7cc1c2d928ffa5b3d7628f8c4ee', class: "relative w-full inline-block group" }, h("slot", { key: 'c2547098aacc584960f217edcafeb060ce742adc' }), h("div", { key: '1e6beac7e4294456f7a6130c4b0573cce3e4b548', class: `absolute ${positionClass}
27
27
  rounded-xs bg-strongest text-inverse
28
28
  f-ui-03-light pointer-events-none
29
29
  z-10 px-4 opacity-0 transition-opacity duration-150 ease-in-out
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface EdsTrlBadge extends Components.EdsTrlBadge, HTMLElement {}
4
+ export const EdsTrlBadge: {
5
+ prototype: EdsTrlBadge;
6
+ new (): EdsTrlBadge;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,204 @@
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+
3
+ /* eslint-disable */
4
+ /**
5
+ * Official EBRAINS sphere mark, extracted from
6
+ * packages/assets/EBRAINS_logo_25/new_ebrains_logo_rgb/250901_new_ebrains_logo_rgb_positive.svg
7
+ * (the gradient-filled wave segments only — wordmark dropped).
8
+ *
9
+ * Gradient ids carry a `__UID__` placeholder so each badge instance can
10
+ * namespace them (no <defs> collisions when several badges share a page).
11
+ * Gradient template inheritance uses SVG2 `href` (no xlink namespace needed).
12
+ * Use markDefs() inside the badge <defs> and markGroup() in the body.
13
+ */
14
+ const MARK_DEFS = `<linearGradient id="__UID__Unbenannter_Verlauf_29" x1="-26.7" y1="64.8" x2="155" y2="-19.9" gradientUnits="userSpaceOnUse"> <stop offset="0" stop-color="#03a98f"/> <stop offset=".1" stop-color="#10a97b"/> <stop offset=".3" stop-color="#23aa5f"/> <stop offset="1" stop-color="#00ff9d"/> </linearGradient><linearGradient id="__UID__Unbenannter_Verlauf_291" x1="38.6" y1="205" x2="220.3" y2="120.2" href="#__UID__Unbenannter_Verlauf_29"/><linearGradient id="__UID__Unbenannter_Verlauf_292" x1="33" y1="193" x2="214.8" y2="108.3" href="#__UID__Unbenannter_Verlauf_29"/><linearGradient id="__UID__Unbenannter_Verlauf_293" x1="-3.5" y1="114.7" x2="178.3" y2="30" href="#__UID__Unbenannter_Verlauf_29"/><linearGradient id="__UID__Unbenannter_Verlauf_294" x1="4.5" y1="131.8" x2="186.2" y2="47.1" href="#__UID__Unbenannter_Verlauf_29"/><linearGradient id="__UID__Unbenannter_Verlauf_295" x1="28.6" y1="183.6" x2="210.4" y2="98.9" href="#__UID__Unbenannter_Verlauf_29"/><linearGradient id="__UID__Unbenannter_Verlauf_296" x1="3.8" y1="130.3" x2="185.5" y2="45.5" href="#__UID__Unbenannter_Verlauf_29"/><linearGradient id="__UID__Unbenannter_Verlauf_297" x1="18" y1="160.6" x2="199.7" y2="75.9" href="#__UID__Unbenannter_Verlauf_29"/>`;
15
+ const MARK_PATHS = `<path fill="url(#__UID__Unbenannter_Verlauf_29)" d="M67.3,19.9c11.2-2.3,22.5-1,32.1,1.5.8.2,1.2-.8.5-1.3-11.6-7.3-20.9-11.4-26.6-13.5l-18.3,4.9c-3.4.9-6.4,2.7-8.9,5.1l-29.6,29.6c-2.5,2.5-4.2,5.5-5.1,8.9l-.7,2.6c1.7-1.5,3.4-3.2,5.2-4.9,12.6-12,29.9-28.4,51.3-32.9Z"/><path fill="url(#__UID__Unbenannter_Verlauf_291)" d="M33.8,172.2l12.3,12.3c2.5,2.5,5.5,4.2,8.9,5.1l40.4,10.8c3.4.9,6.9.9,10.2,0l40.4-10.8c3.4-.9,6.4-2.7,8.9-5.1l2.8-2.8c-80-32.2-119-12.3-123.9-9.5Z"/><path fill="url(#__UID__Unbenannter_Verlauf_292)" d="M97.7,137.4c-25.1.2-51.1.4-78.8,19.8l10.5,10.5h.1c2-1.5,42.4-27.9,132.8,9.1h.2c0,.1,18.6-18.4,18.6-18.4-7.8-2.8-58.6-21-83.1-21h-.3Z"/><path fill="url(#__UID__Unbenannter_Verlauf_293)" d="M137.2,41h0c2.6,2.4,5.3,5,8,7.7,26.3,26.3,43.8,37.2,53.9,41.8l-9.5-35.5c-.9-3.4-2.7-6.4-5.1-8.9l-29.6-29.6c-2.5-2.5-5.5-4.2-8.9-5.1L105.7.7c-3.4-.9-6.9-.9-10.2,0l-12.1,3.2c12.4,5.6,31.5,16.5,53.7,37,0,0,.1.1.2.2Z"/><path fill="url(#__UID__Unbenannter_Verlauf_294)" d="M132.7,86.1c4.9,1.6,26.3,12,26.3,12,1.7.7,7.3,3.3,8.9,4.1.7.3,1.3-.6.8-1.1-1.5-1.4-5.8-5-10.9-8.6,0,0-21.8-15.4-27.2-18.5-7.8-4.3-47.4-26.7-81.3-10C25.8,75.6,8,89.7.6,96c-.8,3.2-.7,6.5.1,9.7l3.4,12.8c7.2-6.7,20.2-17.2,40.4-28.2,35.4-19.2,61.9-12.8,88.2-4.2Z"/><path fill="url(#__UID__Unbenannter_Verlauf_295)" d="M55.9,128c-3.1,1.7-17.5,10.3-17.5,10.3,0,0-4.9,3-.2,1.9,2-.5,7.8-3.1,9.7-3.6,0,0,19.1-7,49.8-5.4.1,0,.2,0,.4,0,27.6,0,84.2,21,86.6,21.9l1.1.5c1.8-2.2,3.2-4.7,3.9-7.5l2.7-10.2c-14.1-5.9-55.1-22.3-81-22.3s-55.3,14.3-55.5,14.4Z"/><path fill="url(#__UID__Unbenannter_Verlauf_296)" d="M131.7,44.5c-2-1.7-4.9-3.9-8.5-6.3-1.8-1.3-3.6-2.3-5.4-3.2-8.1-4.1-29.1-13.1-49.2-9-19.7,4.1-35.5,19.2-48.2,31.3-4.7,4.5-8.7,8.3-12.4,11.1l-4.6,17.2c9.4-7.4,24.4-18,43.2-27.2,36.9-18.1,79.2,5.4,87.3,10.3,12.1,7.3,47.9,34.4,64,46.8l2.6-9.8c.7-2.5.8-5,.5-7.5-10.4-3.8-29.7-14.5-60.2-45-3.1-3.1-6.1-5.9-9.1-8.6Z"/><path fill="url(#__UID__Unbenannter_Verlauf_297)" d="M47.5,95.8c-22.1,12-35.5,23.6-41.5,29.6l5.5,20.7c.3,1.2.8,2.4,1.4,3.5,9.5-9.3,38.6-26.3,39.8-27,1-.6,25.6-15.3,58.7-15.3s67.5,16,82.6,22.4l1.1-4.2c-9.9-6.7-37.4-24.5-64.4-33.5-24.9-8.3-50-14.3-83.2,3.8Z"/>`;
16
+ /** Gradient <defs> for the mark, namespaced with `uid`. */
17
+ function markDefs(uid) {
18
+ return MARK_DEFS.replace(/__UID__/g, uid);
19
+ }
20
+ /**
21
+ * The mark paths wrapped in a positioned, scaled group.
22
+ * The source artwork lives in a ~201×201 canvas; `size` is the rendered px.
23
+ */
24
+ function markGroup(uid, x, y, size = 16) {
25
+ const s = (size / 201.1).toFixed(4);
26
+ const paths = MARK_PATHS.replace(/__UID__/g, uid);
27
+ return `<g transform="translate(${x},${y}) scale(${s})">${paths}</g>`;
28
+ }
29
+
30
+ const edsTrlBadgeCss = ":host{display:inline-block;line-height:0;}.link{display:inline-block;line-height:0;text-decoration:none;color:inherit}.link svg{display:block}";
31
+ const EdsTrlBadgeStyle0 = edsTrlBadgeCss;
32
+
33
+ let _uid = 0;
34
+ const EdsTrlBadge$1 = /*@__PURE__*/ proxyCustomElement(class EdsTrlBadge extends HTMLElement {
35
+ constructor() {
36
+ super();
37
+ this.__registerHost();
38
+ this.__attachShadow();
39
+ /** Per-instance suffix so the mark's gradient ids never collide. */
40
+ this.uid = `trl${++_uid}-`;
41
+ this.level = undefined;
42
+ this.assessed = undefined;
43
+ this.methodology = undefined;
44
+ this.theme = 'dark';
45
+ this.variant = 'tone';
46
+ this.size = undefined;
47
+ this.label = 'EBRAINS TRL';
48
+ this.href = undefined;
49
+ }
50
+ esc(s) {
51
+ return String(s).replace(/&/g, '&amp;').replace(/</g, '&lt;')
52
+ .replace(/>/g, '&gt;').replace(/"/g, '&quot;');
53
+ }
54
+ /** Maturity tier → value/pip colour (brand palette). */
55
+ levelColor() {
56
+ const n = Number(this.level);
57
+ if (n >= 7)
58
+ return '#00FF9D';
59
+ if (n >= 4)
60
+ return '#00C87B';
61
+ return '#7A7B7A';
62
+ }
63
+ /** Readable value text on a coloured segment (black on green, light on grey). */
64
+ valueText() {
65
+ return Number(this.level) >= 4 ? '#07140D' : '#ECECEC';
66
+ }
67
+ fullText() {
68
+ const parts = [`${this.label} ${this.level}`];
69
+ if (this.assessed)
70
+ parts.push(`assessed ${this.assessed}`);
71
+ if (this.methodology)
72
+ parts.push(`methodology ${this.methodology}`);
73
+ return parts.join(' · ');
74
+ }
75
+ /** Build the inner markup + intrinsic dimensions for the chosen variant. */
76
+ build() {
77
+ const CW = EdsTrlBadge.CW;
78
+ const uid = this.uid;
79
+ const clip = `${uid}clip`;
80
+ const valColor = this.levelColor();
81
+ const logoSpace = 28; // 8 margin + ~16 mark + 4 gap
82
+ const mono = `font-family="'IBM Plex Mono',monospace"`;
83
+ const lvl = this.esc(String(this.level));
84
+ if (this.variant === 'full') {
85
+ const tail = (this.assessed ? ` · assessed ${this.esc(this.assessed)}` : '') +
86
+ (this.methodology ? ` · methodology ${this.esc(this.methodology)}` : '');
87
+ const w = Math.ceil(logoSpace + this.fullText().length * CW + 10);
88
+ const inner = `<defs><clipPath id="${clip}"><rect width="${w}" height="24" rx="6"/></clipPath>${markDefs(uid)}</defs>` +
89
+ `<g clip-path="url(#${clip})"><rect width="${w}" height="24" fill="#07140D"/></g>${markGroup(uid, 8, 4, 16)}` +
90
+ `<text x="30" y="15.5" ${mono} font-size="11" letter-spacing=".2">` +
91
+ `<tspan fill="#ECECEC">${this.esc(this.label)} </tspan>` +
92
+ `<tspan fill="${valColor}" font-weight="600">${lvl}</tspan>` +
93
+ `<tspan fill="#7A7B7A">${this.esc(tail)}</tspan></text>`;
94
+ return { w, h: 24, inner };
95
+ }
96
+ if (this.variant === 'pill') {
97
+ const txt = `TRL ${this.level}`;
98
+ const w = Math.ceil(logoSpace + txt.length * CW + 14);
99
+ const tx = logoSpace + (w - logoSpace) / 2 - 4;
100
+ const inner = `<defs>${markDefs(uid)}</defs>` +
101
+ `<rect width="${w}" height="24" rx="12" fill="#07140D"/>${markGroup(uid, 7, 4, 16)}` +
102
+ `<text x="${tx}" y="16" ${mono} font-size="11" font-weight="500" letter-spacing=".5" text-anchor="middle">` +
103
+ `<tspan fill="#ECECEC">TRL </tspan><tspan fill="${valColor}" font-weight="600">${lvl}</tspan></text>`;
104
+ return { w, h: 24, inner };
105
+ }
106
+ if (this.variant === 'outline') {
107
+ const dark = this.theme !== 'light';
108
+ const bg = dark ? '#0c1c14' : '#ffffff';
109
+ const stroke = dark ? '#34473d' : '#07140D';
110
+ const labelColor = dark ? '#ECECEC' : '#07140D';
111
+ const sep = dark ? '#5a6b62' : '#9aa39d';
112
+ const value = dark ? valColor : (Number(this.level) >= 4 ? '#00966a' : '#7A7B7A');
113
+ const w = Math.ceil(logoSpace + (this.label + ' · ' + this.level).length * CW + 12);
114
+ const inner = `<defs>${markDefs(uid)}</defs>` +
115
+ `<rect x=".5" y=".5" width="${w - 1}" height="23" rx="6" fill="${bg}" stroke="${stroke}"/>${markGroup(uid, 8, 4, 16)}` +
116
+ `<text x="30" y="16" ${mono} font-size="11" letter-spacing=".3">` +
117
+ `<tspan fill="${labelColor}">${this.esc(this.label)} </tspan>` +
118
+ `<tspan fill="${sep}">· </tspan>` +
119
+ `<tspan fill="${value}" font-weight="600">${lvl}</tspan></text>`;
120
+ return { w, h: 24, inner };
121
+ }
122
+ if (this.variant === 'scale') {
123
+ const dark = this.theme !== 'light';
124
+ const bg = dark ? '#07140D' : '#ECECEC';
125
+ const labelColor = dark ? '#ECECEC' : '#07140D';
126
+ const emptyPip = dark ? '#2f4339' : '#c4ccc7';
127
+ const sep = dark ? '#5a6b62' : '#9aa39d';
128
+ const n = Math.max(0, Math.min(9, Number(this.level) || 0));
129
+ const pipStart = Math.ceil(30 + this.label.length * CW + 12);
130
+ const pipStep = 9, pipW = 6, pipH = 8, pipY = 9;
131
+ let pips = '';
132
+ for (let i = 0; i < 9; i++) {
133
+ const x = pipStart + i * pipStep;
134
+ pips += `<rect x="${x}" y="${pipY}" width="${pipW}" height="${pipH}" rx="1" fill="${i < n ? valColor : emptyPip}"/>`;
135
+ }
136
+ const valueX = pipStart + 9 * pipStep + 5;
137
+ const w = Math.ceil(valueX + `${this.level}/9`.length * CW + 8);
138
+ const inner = `<defs>${markDefs(uid)}</defs>` +
139
+ `<rect width="${w}" height="26" rx="6" fill="${bg}"/>${markGroup(uid, 8, 5, 16)}` +
140
+ `<text x="30" y="17" ${mono} font-size="11" letter-spacing=".3" fill="${labelColor}">${this.esc(this.label)}</text>` +
141
+ `<g>${pips}</g>` +
142
+ `<text x="${valueX}" y="17" ${mono} font-size="11" font-weight="500">` +
143
+ `<tspan fill="${valColor}">${lvl}</tspan><tspan fill="${sep}">/9</tspan></text>`;
144
+ return { w, h: 26, inner };
145
+ }
146
+ // tone (default) — dark or light theme
147
+ const dark = this.theme !== 'light';
148
+ const labelBg = dark ? '#07140D' : '#ECECEC';
149
+ const labelTextColor = dark ? '#ECECEC' : '#07140D';
150
+ const valTextColor = dark ? this.valueText() : '#07140D';
151
+ const labelSegW = Math.ceil(logoSpace + this.label.length * CW + 12);
152
+ const valSegW = Math.ceil(12 + String(this.level).length * CW + 12);
153
+ const w = labelSegW + valSegW;
154
+ const inner = `<defs><clipPath id="${clip}"><rect width="${w}" height="24" rx="6"/></clipPath>${markDefs(uid)}</defs>` +
155
+ `<g clip-path="url(#${clip})"><rect width="${labelSegW}" height="24" fill="${labelBg}"/>` +
156
+ `<rect x="${labelSegW}" width="${valSegW}" height="24" fill="${valColor}"/></g>${markGroup(uid, 8, 4, 16)}` +
157
+ `<text x="${logoSpace + (labelSegW - logoSpace) / 2}" y="16" ${mono} font-size="11" letter-spacing=".4" fill="${labelTextColor}" text-anchor="middle">${this.esc(this.label)}</text>` +
158
+ `<text x="${labelSegW + valSegW / 2}" y="16" ${mono} font-size="11" font-weight="600" fill="${valTextColor}" text-anchor="middle">${lvl}</text>`;
159
+ return { w, h: 24, inner };
160
+ }
161
+ buildSvg() {
162
+ const { w, h, inner } = this.build();
163
+ const aria = this.esc(this.fullText());
164
+ const k = this.size ? this.size / h : 1;
165
+ const outW = Math.round(w * k);
166
+ const outH = Math.round(h * k);
167
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${outW}" height="${outH}" ` +
168
+ `viewBox="0 0 ${w} ${h}" role="img" aria-label="${aria}"><title>${aria}</title>${inner}</svg>`;
169
+ }
170
+ render() {
171
+ const svg = this.buildSvg();
172
+ return (h(Host, { key: 'eddfb49f35ff9771d76eef13a024b840b3a24cca' }, this.href ? (h("a", { class: "link", href: this.href, "aria-label": this.fullText(), innerHTML: svg })) : (h("span", { class: "link", innerHTML: svg }))));
173
+ }
174
+ static get style() { return EdsTrlBadgeStyle0; }
175
+ }, [1, "eds-trl-badge", {
176
+ "level": [2],
177
+ "assessed": [1],
178
+ "methodology": [1],
179
+ "theme": [1],
180
+ "variant": [1],
181
+ "size": [2],
182
+ "label": [1],
183
+ "href": [1]
184
+ }]);
185
+ // IBM Plex Mono advance width at 11px (used to size segments to the text).
186
+ EdsTrlBadge$1.CW = 6.8;
187
+ function defineCustomElement$1() {
188
+ if (typeof customElements === "undefined") {
189
+ return;
190
+ }
191
+ const components = ["eds-trl-badge"];
192
+ components.forEach(tagName => { switch (tagName) {
193
+ case "eds-trl-badge":
194
+ if (!customElements.get(tagName)) {
195
+ customElements.define(tagName, EdsTrlBadge$1);
196
+ }
197
+ break;
198
+ } });
199
+ }
200
+
201
+ const EdsTrlBadge = EdsTrlBadge$1;
202
+ const defineCustomElement = defineCustomElement$1;
203
+
204
+ export { EdsTrlBadge, defineCustomElement };