@ebrains/components 3.0.0 → 3.2.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 (427) 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} +1095 -336
  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 +35 -32
  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-modal.cjs.entry.js +18 -9
  24. package/dist/cjs/eds-pie.cjs.entry.js +2 -2
  25. package/dist/cjs/eds-section-core_2.cjs.entry.js +3 -3
  26. package/dist/cjs/eds-timeline.cjs.entry.js +1 -1
  27. package/dist/cjs/eds-toast-manager.cjs.entry.js +1 -1
  28. package/dist/cjs/eds-trl-badge.cjs.entry.js +184 -0
  29. package/dist/cjs/incorrect-use-of-colors.cjs.entry.js +1 -1
  30. package/dist/cjs/index-50bc1aa4.js +10 -2
  31. package/dist/cjs/loader.cjs.js +1 -1
  32. package/dist/cjs/logo-space.cjs.entry.js +58 -1
  33. package/dist/cjs/logo-variations-horizontal_2.cjs.entry.js +2 -2
  34. package/dist/cjs/logo-variations-tabs.cjs.entry.js +1 -1
  35. package/dist/cjs/logo-wrong-usage.cjs.entry.js +1 -1
  36. package/dist/cjs/svg-repository.cjs.entry.js +1 -1
  37. package/dist/cjs/token-list_3.cjs.entry.js +3 -3
  38. package/dist/cjs/token-ratios.cjs.entry.js +1 -1
  39. package/dist/cjs/token-spacing.cjs.entry.js +1 -1
  40. package/dist/cjs/token-typography.cjs.entry.js +8 -2
  41. package/dist/collection/collection-manifest.json +4 -1
  42. package/dist/collection/components/eds-accordion/eds-accordion.css +3 -2
  43. package/dist/collection/components/eds-accordion/eds-accordion.js +2 -5
  44. package/dist/collection/components/eds-accordion/eds-accordion.stories.js +7 -19
  45. package/dist/collection/components/eds-alert/eds-alert.css +14 -0
  46. package/dist/collection/components/eds-alert/eds-alert.js +2 -1
  47. package/dist/collection/components/eds-alert/eds-alert.stories.js +19 -147
  48. package/dist/collection/components/eds-avatar/eds-avatar.js +1 -1
  49. package/dist/collection/components/eds-avatar/eds-avatar.stories.js +2 -2
  50. package/dist/collection/components/eds-block-break/eds-block-break.js +1 -1
  51. package/dist/collection/components/eds-breadcrump/eds-breadcrump.js +1 -1
  52. package/dist/collection/components/eds-button/eds-button.css +15 -0
  53. package/dist/collection/components/eds-button/eds-button.js +17 -14
  54. package/dist/collection/components/eds-button/eds-button.stories.js +4 -1
  55. package/dist/collection/components/eds-cards/eds-card-app/eds-card-app.js +2 -5
  56. package/dist/collection/components/eds-cards/eds-card-composer/eds-card-desc/eds-card-desc.js +1 -1
  57. package/dist/collection/components/eds-cards/eds-card-composer/eds-card-title/eds-card-title.js +1 -1
  58. package/dist/collection/components/eds-cards/eds-card-cta/eds-card-cta.css +10 -1
  59. package/dist/collection/components/eds-cards/eds-card-cta/eds-card-cta.js +2 -5
  60. package/dist/collection/components/eds-cards/eds-card-cta/eds-card-cta.stories.js +4 -1
  61. package/dist/collection/components/eds-cards/eds-card-feature/eds-card-feature.js +2 -5
  62. package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.js +2 -4
  63. package/dist/collection/components/eds-cards/eds-card-hero/eds-card-hero.js +6 -7
  64. package/dist/collection/components/eds-cards/eds-card-stat/eds-card-stat.js +6 -7
  65. package/dist/collection/components/eds-charts/eds-gauge/eds-gauge.js +1 -1
  66. package/dist/collection/components/eds-charts/eds-pie/eds-pie.js +2 -2
  67. package/dist/collection/components/eds-code-block/eds-code-block.css +72 -106
  68. package/dist/collection/components/eds-code-block/eds-code-block.js +1 -1
  69. package/dist/collection/components/eds-dropdown/eds-dropdown.js +30 -4
  70. package/dist/collection/components/eds-feedback/eds-feedback.js +1 -1
  71. package/dist/collection/components/eds-footer/eds-footer.css +143 -203
  72. package/dist/collection/components/eds-footer/eds-footer.js +176 -74
  73. package/dist/collection/components/eds-footer/eds-footer.stories.js +109 -17
  74. package/dist/collection/components/eds-form/eds-form.css +493 -1
  75. package/dist/collection/components/eds-form/eds-form.js +256 -14
  76. package/dist/collection/components/eds-form/eds-form.stories.js +110 -3
  77. package/dist/collection/components/eds-frame/eds-frame.js +1 -1
  78. package/dist/collection/components/eds-header/eds-header.js +1 -1
  79. package/dist/collection/components/eds-header/eds-header.stories.js +26 -12
  80. package/dist/collection/components/eds-icon-wrapper/eds-icon-wrapper.js +20 -1
  81. package/dist/collection/components/eds-icons/eds-icon-eu/eds-icon-eu.js +1 -1
  82. package/dist/collection/components/eds-icons/eds-icon-gitlab/eds-icon-gitlab.js +1 -1
  83. package/dist/collection/components/eds-icons/social/eds-icon-bluesky/eds-icon-bluesky.js +1 -1
  84. package/dist/collection/components/eds-icons/social/eds-icon-facebook/eds-icon-facebook.js +1 -1
  85. package/dist/collection/components/eds-icons/social/eds-icon-linkedin/eds-icon-linkedin.js +1 -1
  86. package/dist/collection/components/eds-icons/social/eds-icon-mastodon/eds-icon-mastodon.js +1 -1
  87. package/dist/collection/components/eds-icons/social/eds-icon-twitter/eds-icon-twitter.js +1 -1
  88. package/dist/collection/components/eds-icons/social/eds-icon-youtube/eds-icon-youtube.js +1 -1
  89. package/dist/collection/components/eds-img/eds-img.js +2 -2
  90. package/dist/collection/components/eds-img/eds-img.stories.js +29 -52
  91. package/dist/collection/components/eds-input-dropzone/eds-input-dropzone.js +7 -4
  92. package/dist/collection/components/eds-input-elements/eds-input/eds-input.js +20 -2
  93. package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.css +39 -0
  94. package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.js +2 -1
  95. package/dist/collection/components/eds-input-elements/eds-input-label/eds-input-label.css +17 -5
  96. package/dist/collection/components/eds-input-elements/eds-input-label/eds-input-label.js +1 -1
  97. package/dist/collection/components/eds-input-elements/eds-input-range/eds-input-range.js +15 -5
  98. package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.js +1 -1
  99. package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.stories.js +30 -0
  100. package/dist/collection/components/eds-input-elements/eds-input-select/eds-input-select.js +6 -2
  101. package/dist/collection/components/eds-input-field/eds-input-field.css +219 -0
  102. package/dist/collection/components/eds-input-field/eds-input-field.js +16 -5
  103. package/dist/collection/components/eds-input-field/eds-input-field.stories.js +105 -125
  104. package/dist/collection/components/eds-input-file/eds-input-file.js +5 -3
  105. package/dist/collection/components/eds-link/eds-link.js +4 -8
  106. package/dist/collection/components/eds-link/eds-link.stories.js +13 -8
  107. package/dist/collection/components/eds-logo/eds-logo.js +13 -66
  108. package/dist/collection/components/eds-logo/eds-logo.stories.js +36 -17
  109. package/dist/collection/components/eds-modal/eds-modal.js +18 -9
  110. package/dist/collection/components/eds-modal/eds-modal.stories.js +11 -8
  111. package/dist/collection/components/eds-nps/eds-nps.css +32 -0
  112. package/dist/collection/components/eds-nps/eds-nps.js +3 -3
  113. package/dist/collection/components/eds-pagination/eds-pagination.js +2 -2
  114. package/dist/collection/components/eds-progress-bar/eds-progress-bar.js +1 -8
  115. package/dist/collection/components/eds-rating/eds-rating.css +9 -0
  116. package/dist/collection/components/eds-rating/eds-rating.js +2 -2
  117. package/dist/collection/components/eds-section/eds-section-core/eds-section-core.js +1 -1
  118. package/dist/collection/components/eds-section/eds-section-heading/eds-section-heading.js +2 -2
  119. package/dist/collection/components/eds-sidebar/eds-sidebar.js +2 -2
  120. package/dist/collection/components/eds-social-networks/eds-social-networks.js +1 -1
  121. package/dist/collection/components/eds-spinner/eds-spinner.js +1 -1
  122. package/dist/collection/components/eds-steps/eds-steps.css +56 -25
  123. package/dist/collection/components/eds-steps/eds-steps.js +27 -7
  124. package/dist/collection/components/eds-steps-v2/eds-steps-v2.css +93 -28
  125. package/dist/collection/components/eds-steps-v2/eds-steps-v2.js +57 -10
  126. package/dist/collection/components/eds-steps-v2/eds-steps-v2.stories.js +80 -17
  127. package/dist/collection/components/eds-switch/eds-switch.css +26 -3
  128. package/dist/collection/components/eds-switch/eds-switch.js +10 -7
  129. package/dist/collection/components/eds-switch/eds-switch.stories.js +20 -1
  130. package/dist/collection/components/eds-table/eds-table.css +21 -4
  131. package/dist/collection/components/eds-table/eds-table.js +16 -51
  132. package/dist/collection/components/eds-table/eds-table.stories.js +7 -115
  133. package/dist/collection/components/eds-tabs/eds-tabs.css +7 -1
  134. package/dist/collection/components/eds-tabs/eds-tabs.js +49 -18
  135. package/dist/collection/components/eds-tabs/eds-tabs.stories.js +2 -2
  136. package/dist/collection/components/eds-tag/eds-tag.js +1 -1
  137. package/dist/collection/components/eds-timeline/eds-timeline.js +1 -1
  138. package/dist/collection/components/eds-toast/eds-toast.css +146 -0
  139. package/dist/collection/components/eds-toast/eds-toast.js +106 -4
  140. package/dist/collection/components/eds-toast/eds-toast.stories.js +102 -5
  141. package/dist/collection/components/eds-toast-manager/eds-toast-manager.js +1 -1
  142. package/dist/collection/components/eds-tooltip/eds-tooltip.js +1 -1
  143. package/dist/collection/components/eds-tooltip/eds-tooltip.stories.js +7 -1
  144. package/dist/collection/components/eds-user/eds-user.js +2 -5
  145. package/dist/collection/components/eds-user/eds-user.stories.js +8 -11
  146. package/dist/collection/eds-docs-ui/colors/color-palette/primary.js +1 -1
  147. package/dist/collection/eds-docs-ui/colors/color-palette/secondary.js +1 -1
  148. package/dist/collection/eds-docs-ui/colors/color-palette/support.js +1 -1
  149. package/dist/collection/eds-docs-ui/colors/gradient-palette/primary.js +1 -1
  150. package/dist/collection/eds-docs-ui/colors/gradient-palette/secondary.js +7 -7
  151. package/dist/collection/eds-docs-ui/colors/gradient-palette/support.js +3 -3
  152. package/dist/collection/eds-docs-ui/colors/use-of-colors/correct-use-of-colors.js +1 -1
  153. package/dist/collection/eds-docs-ui/colors/use-of-colors/incorrect-use-of-colors.js +1 -1
  154. package/dist/collection/eds-docs-ui/components-section/components-section.js +1 -1
  155. package/dist/collection/eds-docs-ui/design-tokens/docs-tokens/docs-tokens.js +1 -1
  156. package/dist/collection/eds-docs-ui/design-tokens/token-list/token-list.js +1 -1
  157. package/dist/collection/eds-docs-ui/design-tokens/token-radii/token-radii.js +1 -1
  158. package/dist/collection/eds-docs-ui/design-tokens/token-ratios/token-ratios.js +1 -1
  159. package/dist/collection/eds-docs-ui/design-tokens/token-shadows/token-shadows.js +1 -1
  160. package/dist/collection/eds-docs-ui/design-tokens/token-spacing/token-spacing.js +1 -1
  161. package/dist/collection/eds-docs-ui/design-tokens/token-typography/token-typography.js +8 -2
  162. package/dist/collection/eds-docs-ui/docs-palettes/docs-palettes.js +1 -1
  163. package/dist/collection/eds-docs-ui/logo/logo-space/logo-space.js +58 -1
  164. package/dist/collection/eds-docs-ui/logo/logo-variations/horizontal/logo-variations-horizontal.js +1 -1
  165. package/dist/collection/eds-docs-ui/logo/logo-variations/vertical/logo-variations-vertical.js +1 -1
  166. package/dist/collection/eds-docs-ui/logo/logo-variations-tabs/logo-variations.js +1 -1
  167. package/dist/collection/eds-docs-ui/logo/logo-wrong-usage/logo-wrong-usage.js +1 -1
  168. package/dist/collection/eds-docs-ui/svg-repository/svg-repository.js +1 -1
  169. package/dist/collection/shared-ui/eds-cookies-preference/eds-cookies-preference.js +1 -1
  170. package/dist/collection/shared-ui/eds-gitlab-contributors/eds-gitlab-contributors.css +19 -0
  171. package/dist/collection/shared-ui/eds-gitlab-contributors/eds-gitlab-contributors.js +34 -31
  172. package/dist/collection/shared-ui/eds-global-search/eds-global-search.css +166 -0
  173. package/dist/collection/shared-ui/eds-global-search/eds-global-search.js +69 -7
  174. package/dist/collection/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.css +205 -0
  175. package/dist/collection/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.js +253 -0
  176. package/dist/collection/shared-ui/eds-kg-web-services-select/eds-kg-web-services-select.js +2 -2
  177. package/dist/collection/shared-ui/eds-kg-web-services-select/eds-kg-web-services-select.stories.js +1 -3
  178. package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.css +23 -102
  179. package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.js +7 -1
  180. package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.stories.js +1 -1
  181. package/dist/collection/shared-ui/eds-search-select/eds-search-select.css +213 -0
  182. package/dist/collection/shared-ui/eds-search-select/eds-search-select.js +706 -0
  183. package/dist/collection/shared-ui/eds-search-select/eds-search-select.stories.js +90 -0
  184. package/dist/collection/shared-ui/eds-trl-badge/ebrains-mark.js +26 -0
  185. package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.css +22 -0
  186. package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.js +324 -0
  187. package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.stories.js +99 -0
  188. package/dist/collection/shared-ui/examples/eds-app-root/eds-app-root.js +1 -1
  189. package/dist/collection/utils/eds-form/formValidators.js +2 -1
  190. package/dist/collection/utils/eds-form/safeFormat.js +35 -0
  191. package/dist/components/components-section.js +1 -1
  192. package/dist/components/components.css +12 -11
  193. package/dist/components/components.esm.js +1 -1
  194. package/dist/components/correct-use-of-colors.js +1 -1
  195. package/dist/components/docs-palettes.js +1 -1
  196. package/dist/components/docs-tokens.js +1 -1
  197. package/dist/components/eds-accordion2.js +3 -6
  198. package/dist/components/eds-alert2.js +3 -2
  199. package/dist/components/eds-app-root.js +1 -1
  200. package/dist/components/eds-avatar2.js +1 -1
  201. package/dist/components/eds-block-break2.js +1 -1
  202. package/dist/components/eds-breadcrumb.js +1 -1
  203. package/dist/components/eds-button2.js +16 -13
  204. package/dist/components/eds-card-app.js +2 -5
  205. package/dist/components/eds-card-cta.js +3 -6
  206. package/dist/components/eds-card-desc2.js +1 -1
  207. package/dist/components/eds-card-feature.js +2 -5
  208. package/dist/components/eds-card-generic2.js +2 -4
  209. package/dist/components/eds-card-hero.js +6 -7
  210. package/dist/components/eds-card-stat.js +6 -7
  211. package/dist/components/eds-card-title2.js +1 -1
  212. package/dist/components/eds-code-block2.js +2 -2
  213. package/dist/components/eds-cookies-preference.js +1 -1
  214. package/dist/components/eds-dropdown2.js +30 -4
  215. package/dist/components/eds-feedback.js +1 -1
  216. package/dist/components/eds-footer2.js +118 -24
  217. package/dist/components/eds-form.js +146 -45
  218. package/dist/components/eds-frame.js +1 -1
  219. package/dist/components/eds-gauge.js +1 -1
  220. package/dist/components/eds-gitlab-contributors.js +35 -32
  221. package/dist/components/eds-global-search.js +55 -70
  222. package/dist/components/eds-header.js +1 -1
  223. package/dist/components/eds-icon-bluesky.js +1 -1
  224. package/dist/components/eds-icon-eu.js +1 -1
  225. package/dist/components/eds-icon-facebook.js +1 -1
  226. package/dist/components/eds-icon-gitlab.js +1 -1
  227. package/dist/components/eds-icon-linkedin.js +1 -1
  228. package/dist/components/eds-icon-mastodon.js +1 -1
  229. package/dist/components/eds-icon-twitter.js +1 -1
  230. package/dist/components/eds-icon-wrapper2.js +5 -2
  231. package/dist/components/eds-icon-youtube.js +1 -1
  232. package/dist/components/eds-img2.js +2 -2
  233. package/dist/components/eds-input-dropzone2.js +7 -4
  234. package/dist/components/eds-input-field2.js +31 -26
  235. package/dist/components/eds-input-file2.js +5 -3
  236. package/dist/components/eds-input-footer2.js +39 -3
  237. package/dist/components/eds-input-label2.js +2 -2
  238. package/dist/components/eds-input-range2.js +15 -5
  239. package/dist/components/eds-input-search.js +100 -1
  240. package/dist/components/eds-input-select2.js +6 -2
  241. package/dist/components/eds-input2.js +4 -2
  242. package/dist/components/eds-kg-learning-resources.d.ts +11 -0
  243. package/dist/components/eds-kg-learning-resources.js +217 -0
  244. package/dist/components/eds-kg-web-services-select2.js +18 -24
  245. package/dist/components/eds-link2.js +3 -7
  246. package/dist/components/eds-logo2.js +4 -22
  247. package/dist/components/eds-matomo-notice2.js +8 -2
  248. package/dist/components/eds-modal.js +18 -9
  249. package/dist/components/eds-nps2.js +4 -4
  250. package/dist/components/eds-pagination2.js +2 -2
  251. package/dist/components/eds-pie.js +2 -2
  252. package/dist/components/eds-progress-bar.js +1 -8
  253. package/dist/components/eds-rating2.js +3 -3
  254. package/dist/components/eds-search-select.d.ts +11 -0
  255. package/dist/components/eds-search-select.js +6 -0
  256. package/dist/components/eds-search-select2.js +382 -0
  257. package/dist/components/eds-section-core2.js +1 -1
  258. package/dist/components/eds-section-heading2.js +2 -2
  259. package/dist/components/eds-sidebar.js +2 -2
  260. package/dist/components/eds-social-networks2.js +1 -1
  261. package/dist/components/eds-spinner2.js +1 -1
  262. package/dist/components/eds-steps-v2.js +41 -11
  263. package/dist/components/eds-steps2.js +28 -8
  264. package/dist/components/eds-switch2.js +8 -5
  265. package/dist/components/eds-table2.js +30 -54
  266. package/dist/components/eds-tabs.js +50 -19
  267. package/dist/components/eds-tag2.js +1 -1
  268. package/dist/components/eds-timeline.js +1 -1
  269. package/dist/components/eds-toast-manager.js +1 -1
  270. package/dist/components/eds-toast2.js +39 -3
  271. package/dist/components/eds-tooltip2.js +1 -1
  272. package/dist/components/eds-trl-badge.d.ts +11 -0
  273. package/dist/components/eds-trl-badge.js +207 -0
  274. package/dist/components/eds-user.js +1 -4
  275. package/dist/components/incorrect-use-of-colors.js +1 -1
  276. package/dist/components/logo-space.js +76 -25
  277. package/dist/components/logo-variations-horizontal2.js +1 -1
  278. package/dist/components/logo-variations-tabs.js +1 -1
  279. package/dist/components/logo-variations-vertical2.js +1 -1
  280. package/dist/components/logo-wrong-usage.js +1 -1
  281. package/dist/components/p-05e96609.entry.js +1 -0
  282. package/dist/components/p-0d778d10.entry.js +1 -0
  283. package/dist/components/{p-d2576747.entry.js → p-114f6d54.entry.js} +1 -1
  284. package/dist/components/p-1534204d.entry.js +1 -0
  285. package/dist/components/p-337d4ee3.entry.js +9 -0
  286. package/dist/components/p-340bc935.entry.js +1 -0
  287. package/dist/components/{p-a6dc1f88.entry.js → p-37ef07d9.entry.js} +1 -1
  288. package/dist/components/p-39dbb964.entry.js +1 -0
  289. package/dist/components/{p-dfe93385.entry.js → p-3f66bc26.entry.js} +1 -1
  290. package/dist/components/p-43f9e64f.entry.js +1 -0
  291. package/dist/components/p-46cc6c1a.entry.js +1 -0
  292. package/dist/components/{p-773bd015.entry.js → p-4b8a7979.entry.js} +1 -1
  293. package/dist/components/p-6b94b2ec.entry.js +1 -0
  294. package/dist/components/p-6d965fef.entry.js +1 -0
  295. package/dist/components/{p-d16b5363.entry.js → p-6e370182.entry.js} +1 -1
  296. package/dist/components/{p-7b93a385.entry.js → p-6ffe581c.entry.js} +1 -1
  297. package/dist/components/p-726637b1.entry.js +1 -0
  298. package/dist/components/{p-a63e14bb.entry.js → p-86ccc09f.entry.js} +1 -1
  299. package/dist/components/{p-c2fc62f7.entry.js → p-8755a21b.entry.js} +1 -1
  300. package/dist/components/{p-0d7aee0b.entry.js → p-8ab461e2.entry.js} +1 -1
  301. package/dist/components/p-8cb162b8.entry.js +1 -0
  302. package/dist/components/p-8cdbc280.entry.js +1 -0
  303. package/dist/components/{p-940a2d42.entry.js → p-8e034c4e.entry.js} +1 -1
  304. package/dist/components/p-9f649fa3.entry.js +1 -0
  305. package/dist/components/{p-d1b3aa52.entry.js → p-a26dad9b.entry.js} +1 -1
  306. package/dist/components/p-a2d6a9ca.entry.js +1 -0
  307. package/dist/components/p-afabe1be.entry.js +1 -0
  308. package/dist/components/{p-c46675c8.entry.js → p-b1519098.entry.js} +1 -1
  309. package/dist/components/{p-04e9c2d7.entry.js → p-b1a10842.entry.js} +1 -1
  310. package/dist/components/{p-7aa4edef.entry.js → p-b4023b45.entry.js} +1 -1
  311. package/dist/components/p-c53b3563.entry.js +1 -0
  312. package/dist/components/p-c7d612d1.entry.js +1 -0
  313. package/dist/components/p-dc9aef22.entry.js +1 -0
  314. package/dist/components/{p-f364296f.entry.js → p-f66a7cf9.entry.js} +1 -1
  315. package/dist/components/p-f97f62f2.entry.js +1 -0
  316. package/dist/components/primary.js +1 -1
  317. package/dist/components/primary2.js +1 -1
  318. package/dist/components/secondary.js +1 -1
  319. package/dist/components/secondary2.js +7 -7
  320. package/dist/components/support.js +1 -1
  321. package/dist/components/support2.js +3 -3
  322. package/dist/components/svg-repository.js +19 -25
  323. package/dist/components/token-list2.js +1 -1
  324. package/dist/components/token-radii2.js +1 -1
  325. package/dist/components/token-ratios.js +1 -1
  326. package/dist/components/token-shadows2.js +1 -1
  327. package/dist/components/token-spacing.js +1 -1
  328. package/dist/components/token-typography.js +8 -2
  329. package/dist/esm/color-primary-palette_6.entry.js +14 -14
  330. package/dist/esm/components-section.entry.js +1 -1
  331. package/dist/esm/components.js +1 -1
  332. package/dist/esm/correct-use-of-colors.entry.js +1 -1
  333. package/dist/esm/docs-palettes.entry.js +1 -1
  334. package/dist/esm/docs-tokens.entry.js +1 -1
  335. package/dist/esm/{eds-accordion_52.entry.js → eds-accordion_53.entry.js} +1094 -336
  336. package/dist/esm/eds-app-root.entry.js +1 -1
  337. package/dist/esm/eds-cookies-preference.entry.js +1 -1
  338. package/dist/esm/eds-feedback.entry.js +1 -1
  339. package/dist/esm/eds-frame.entry.js +1 -1
  340. package/dist/esm/eds-gauge.entry.js +1 -1
  341. package/dist/esm/eds-gitlab-contributors.entry.js +35 -32
  342. package/dist/esm/eds-icon-bluesky.entry.js +1 -1
  343. package/dist/esm/eds-icon-eu.entry.js +1 -1
  344. package/dist/esm/eds-icon-facebook.entry.js +1 -1
  345. package/dist/esm/eds-icon-gitlab.entry.js +1 -1
  346. package/dist/esm/eds-icon-linkedin.entry.js +1 -1
  347. package/dist/esm/eds-icon-mastodon.entry.js +1 -1
  348. package/dist/esm/eds-icon-twitter.entry.js +1 -1
  349. package/dist/esm/eds-icon-youtube.entry.js +1 -1
  350. package/dist/{components/eds-input-search2.js → esm/eds-input-search.entry.js} +9 -39
  351. package/dist/esm/eds-modal.entry.js +18 -9
  352. package/dist/esm/eds-pie.entry.js +2 -2
  353. package/dist/esm/eds-section-core_2.entry.js +3 -3
  354. package/dist/esm/eds-timeline.entry.js +1 -1
  355. package/dist/esm/eds-toast-manager.entry.js +1 -1
  356. package/dist/esm/eds-trl-badge.entry.js +180 -0
  357. package/dist/esm/incorrect-use-of-colors.entry.js +1 -1
  358. package/dist/esm/index-870ab08f.js +10 -2
  359. package/dist/esm/loader.js +1 -1
  360. package/dist/esm/logo-space.entry.js +58 -1
  361. package/dist/esm/logo-variations-horizontal_2.entry.js +2 -2
  362. package/dist/esm/logo-variations-tabs.entry.js +1 -1
  363. package/dist/esm/logo-wrong-usage.entry.js +1 -1
  364. package/dist/esm/svg-repository.entry.js +1 -1
  365. package/dist/esm/token-list_3.entry.js +3 -3
  366. package/dist/esm/token-ratios.entry.js +1 -1
  367. package/dist/esm/token-spacing.entry.js +1 -1
  368. package/dist/esm/token-typography.entry.js +8 -2
  369. package/dist/hydrate/index.js +1616 -397
  370. package/dist/hydrate/index.mjs +1616 -397
  371. package/dist/types/components/eds-accordion/eds-accordion.stories.d.ts +4 -8
  372. package/dist/types/components/eds-alert/eds-alert.stories.d.ts +7 -73
  373. package/dist/types/components/eds-button/eds-button.d.ts +1 -1
  374. package/dist/types/components/eds-dropdown/eds-dropdown.d.ts +1 -0
  375. package/dist/types/components/eds-footer/eds-footer.d.ts +84 -55
  376. package/dist/types/components/eds-footer/eds-footer.stories.d.ts +62 -1
  377. package/dist/types/components/eds-form/eds-form.d.ts +66 -0
  378. package/dist/types/components/eds-form/eds-form.stories.d.ts +63 -0
  379. package/dist/types/components/eds-header/eds-header.stories.d.ts +6 -6
  380. package/dist/types/components/eds-icon-wrapper/eds-icon-wrapper.d.ts +8 -0
  381. package/dist/types/components/eds-img/eds-img.stories.d.ts +6 -20
  382. package/dist/types/components/eds-input-elements/eds-input/eds-input.d.ts +7 -0
  383. package/dist/types/components/eds-input-elements/eds-input-search/eds-input-search.stories.d.ts +36 -0
  384. package/dist/types/components/eds-input-field/eds-input-field.stories.d.ts +97 -38
  385. package/dist/types/components/eds-link/eds-link.stories.d.ts +9 -6
  386. package/dist/types/components/eds-logo/eds-logo.d.ts +11 -28
  387. package/dist/types/components/eds-logo/eds-logo.stories.d.ts +22 -2
  388. package/dist/types/components/eds-steps/eds-steps.d.ts +7 -0
  389. package/dist/types/components/eds-steps-v2/eds-steps-v2.d.ts +14 -1
  390. package/dist/types/components/eds-steps-v2/eds-steps-v2.stories.d.ts +40 -9
  391. package/dist/types/components/eds-switch/eds-switch.d.ts +6 -2
  392. package/dist/types/components/eds-switch/eds-switch.stories.d.ts +8 -0
  393. package/dist/types/components/eds-table/eds-table.d.ts +8 -14
  394. package/dist/types/components/eds-table/eds-table.stories.d.ts +0 -107
  395. package/dist/types/components/eds-tabs/eds-tabs.d.ts +10 -0
  396. package/dist/types/components/eds-toast/eds-toast.d.ts +33 -1
  397. package/dist/types/components/eds-toast/eds-toast.stories.d.ts +49 -1
  398. package/dist/types/components/eds-user/eds-user.d.ts +0 -2
  399. package/dist/types/components/eds-user/eds-user.stories.d.ts +5 -9
  400. package/dist/types/components.d.ts +715 -144
  401. package/dist/types/shared-ui/eds-global-search/eds-global-search.d.ts +12 -0
  402. package/dist/types/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.d.ts +60 -0
  403. package/dist/types/shared-ui/eds-search-select/eds-search-select.d.ts +98 -0
  404. package/dist/types/shared-ui/eds-search-select/eds-search-select.stories.d.ts +81 -0
  405. package/dist/types/shared-ui/eds-trl-badge/ebrains-mark.d.ts +7 -0
  406. package/dist/types/shared-ui/eds-trl-badge/eds-trl-badge.d.ts +54 -0
  407. package/dist/types/shared-ui/eds-trl-badge/eds-trl-badge.stories.d.ts +112 -0
  408. package/dist/types/utils/eds-form/safeFormat.d.ts +21 -0
  409. package/package.json +1 -1
  410. package/dist/components/p-0fe10e6c.entry.js +0 -1
  411. package/dist/components/p-18e852e1.entry.js +0 -1
  412. package/dist/components/p-3ccd6948.entry.js +0 -1
  413. package/dist/components/p-3d3841d6.entry.js +0 -1
  414. package/dist/components/p-3f38df99.entry.js +0 -1
  415. package/dist/components/p-527e71d0.entry.js +0 -1
  416. package/dist/components/p-55047f7f.entry.js +0 -9
  417. package/dist/components/p-64c23098.entry.js +0 -1
  418. package/dist/components/p-74b9c9a8.entry.js +0 -1
  419. package/dist/components/p-878f65a6.entry.js +0 -1
  420. package/dist/components/p-92f6d9c0.entry.js +0 -1
  421. package/dist/components/p-9eedf771.entry.js +0 -1
  422. package/dist/components/p-b4355cec.entry.js +0 -1
  423. package/dist/components/p-d2f17fac.entry.js +0 -1
  424. package/dist/components/p-db5eea95.entry.js +0 -1
  425. package/dist/components/p-e205c269.entry.js +0 -1
  426. package/dist/components/p-f55dd314.entry.js +0 -1
  427. package/dist/components/p-f88b5f21.entry.js +0 -1
@@ -5881,6 +5881,17 @@ video {
5881
5881
  .input::placeholder {
5882
5882
  color: var(--grey-500);
5883
5883
  }
5884
+ /* A <select> has no ::placeholder — when no option is chosen yet it shows the
5885
+ placeholder <option> in the normal dark text colour, which looks heavier than
5886
+ text-input placeholders. is-placeholder (set by eds-input-select while empty)
5887
+ matches them by rendering the closed select in grey-500; real options in the
5888
+ open dropdown stay dark for readability. */
5889
+ .input.is-placeholder {
5890
+ color: var(--grey-500);
5891
+ }
5892
+ .input.is-placeholder option {
5893
+ color: var(--brand-black);
5894
+ }
5884
5895
  .input {
5885
5896
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
5886
5897
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -6372,6 +6383,9 @@ input[type="range"]::-webkit-slider-thumb {
6372
6383
  .mt-8 {
6373
6384
  margin-top: 0.5rem;
6374
6385
  }
6386
+ .mb-8 {
6387
+ margin-bottom: 0.5rem;
6388
+ }
6375
6389
  .mt-auto {
6376
6390
  margin-top: auto;
6377
6391
  }
@@ -7768,3 +7782,208 @@ input[type="range"]::-webkit-slider-thumb {
7768
7782
  }
7769
7783
  }
7770
7784
 
7785
+ /* ============================================================
7786
+ Field input styling — the new "brand form" look, applied to
7787
+ every field type rendered through eds-input-field (the wrapper).
7788
+ Element+class selectors (input.input / textarea.input / select.input)
7789
+ beat the global utility-based `.input` reliably. Focus colour reads
7790
+ --eds-field-accent (set by eds-form's brand body) and falls back to
7791
+ the brand-green-dark default, so this looks consistent everywhere.
7792
+ ============================================================ */
7793
+
7794
+ /* Text-like inputs + select box.
7795
+ NB: radio/checkbox/range also carry the `.input` class, so they're excluded
7796
+ here (otherwise the box sizing would balloon them) — they're styled below. */
7797
+ input.input:not([type='radio']):not([type='checkbox']):not([type='range']),
7798
+ textarea.input,
7799
+ select.input {
7800
+ min-height: 50px;
7801
+ padding: 0 16px;
7802
+ border: 1px solid var(--line-color, #e2e2e2);
7803
+ border-radius: 10px;
7804
+ background: var(--white, #ffffff);
7805
+ color: var(--brand-black, #07140d);
7806
+ box-shadow: none;
7807
+ transition: border-color 0.14s ease, box-shadow 0.14s ease;
7808
+ }
7809
+
7810
+ /* Leading-icon inputs: restore the left padding that clears the icon (the icon
7811
+ sits absolutely at left:12px). The `.input-icon` + full :not() chain out-
7812
+ specifies the `padding: 0 16px` rule above, which would otherwise let the
7813
+ placeholder / text sit under the icon. */
7814
+ input.input.input-icon:not([type='radio']):not([type='checkbox']):not([type='range']) {
7815
+ padding-left: 42px;
7816
+ }
7817
+
7818
+ input.input:not([type='radio']):not([type='checkbox']):not([type='range'])::placeholder,
7819
+ textarea.input::placeholder {
7820
+ color: #a9aba9;
7821
+ }
7822
+
7823
+ input.input:not([type='radio']):not([type='checkbox']):not([type='range']):hover,
7824
+ textarea.input:hover,
7825
+ select.input:hover {
7826
+ border-color: #c9ccca;
7827
+ }
7828
+
7829
+ input.input:not([type='radio']):not([type='checkbox']):not([type='range']):focus,
7830
+ input.input:not([type='radio']):not([type='checkbox']):not([type='range']):focus-visible,
7831
+ textarea.input:focus,
7832
+ textarea.input:focus-visible,
7833
+ select.input:focus,
7834
+ select.input:focus-visible {
7835
+ outline: none;
7836
+ border-color: var(--eds-field-accent, #00c87b);
7837
+ box-shadow: 0 0 0 3px var(--eds-field-focus-ring, rgba(0, 200, 123, 0.16));
7838
+ }
7839
+
7840
+ input.input:not([type='radio']):not([type='checkbox']):not([type='range']):disabled,
7841
+ textarea.input:disabled,
7842
+ select.input:disabled {
7843
+ background: #f7f7f7;
7844
+ color: #a9aba9;
7845
+ cursor: not-allowed;
7846
+ }
7847
+
7848
+ /* Textarea — taller, top-aligned, resizable */
7849
+ textarea.input,
7850
+ textarea.input-textarea {
7851
+ min-height: 108px;
7852
+ padding: 14px 16px;
7853
+ line-height: 1.55;
7854
+ resize: vertical;
7855
+ align-items: flex-start;
7856
+ }
7857
+
7858
+ /* Select — keep room for the chevron the select renders on the right */
7859
+ select.input,
7860
+ select.input-select {
7861
+ padding-right: 44px;
7862
+ cursor: pointer;
7863
+ }
7864
+
7865
+ /* Range — not a boxed input; a clean track (green fill is painted inline
7866
+ by eds-input-range up to the current value) */
7867
+ input[type='range'].input {
7868
+ min-height: 0;
7869
+ height: 6px;
7870
+ padding: 0;
7871
+ border: none;
7872
+ border-radius: 3px;
7873
+ box-shadow: none;
7874
+ }
7875
+ input[type='range'].input:focus,
7876
+ input[type='range'].input:focus-visible {
7877
+ outline: none;
7878
+ border: none;
7879
+ box-shadow: none;
7880
+ }
7881
+
7882
+ /* Range thumb — brand-black knob with a green ring (matches the mockup). */
7883
+ input[type='range'].input::-webkit-slider-thumb {
7884
+ -webkit-appearance: none;
7885
+ appearance: none;
7886
+ width: 20px;
7887
+ height: 20px;
7888
+ border-radius: 50%;
7889
+ background: var(--brand-black, #07140d);
7890
+ border: 3px solid var(--eds-field-accent, #00c87b);
7891
+ cursor: pointer;
7892
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
7893
+ }
7894
+ input[type='range'].input::-moz-range-thumb {
7895
+ width: 18px;
7896
+ height: 18px;
7897
+ border-radius: 50%;
7898
+ background: var(--brand-black, #07140d);
7899
+ border: 3px solid var(--eds-field-accent, #00c87b);
7900
+ cursor: pointer;
7901
+ }
7902
+
7903
+ /* Range layout: value readout (top-right) + min/mid/max scale (below). */
7904
+ .eds-range {
7905
+ display: flex;
7906
+ flex-direction: column;
7907
+ padding-top: 6px;
7908
+ }
7909
+ .eds-range-top {
7910
+ display: flex;
7911
+ justify-content: flex-end;
7912
+ margin-bottom: 12px;
7913
+ }
7914
+ .eds-range-val {
7915
+ font-family: 'IBM Plex Mono', ui-monospace, monospace;
7916
+ font-size: 15px;
7917
+ font-weight: 500;
7918
+ color: var(--eds-field-accent, #00c87b);
7919
+ font-variant-numeric: tabular-nums;
7920
+ }
7921
+ .eds-range-scale {
7922
+ display: flex;
7923
+ justify-content: space-between;
7924
+ font-family: 'IBM Plex Mono', ui-monospace, monospace;
7925
+ font-size: 10px;
7926
+ color: #7a7b7a;
7927
+ margin-top: 10px;
7928
+ }
7929
+
7930
+ /* Radio & checkbox — brand-green when selected (white mark stays) */
7931
+ input.input-radio:checked,
7932
+ input.input-checkbox:checked {
7933
+ background-color: var(--eds-field-accent, #00c87b);
7934
+ border-color: var(--eds-field-accent, #00c87b);
7935
+ }
7936
+
7937
+ /* Radio / checkbox options as selectable cards (matches the brand mockup).
7938
+ :has(input:checked) works because eds-input is light-DOM, so there's no
7939
+ shadow boundary between the card and the control. */
7940
+ .eds-option-list {
7941
+ display: flex;
7942
+ flex-direction: column;
7943
+ gap: 11px;
7944
+ border: 0;
7945
+ padding: 0;
7946
+ margin: 0;
7947
+ }
7948
+
7949
+ .eds-option-card {
7950
+ display: flex;
7951
+ align-items: center;
7952
+ gap: 11px;
7953
+ padding: 13px 15px;
7954
+ border: 1px solid var(--line-color, #e2e2e2);
7955
+ border-radius: 10px;
7956
+ cursor: pointer;
7957
+ font-size: 14.5px;
7958
+ transition: border-color 0.14s ease, background-color 0.14s ease,
7959
+ box-shadow 0.14s ease;
7960
+ }
7961
+
7962
+ .eds-option-card:hover {
7963
+ border-color: #c9ccca;
7964
+ background: #fcfefd;
7965
+ }
7966
+
7967
+ .eds-option-card:has(input:checked) {
7968
+ border-color: var(--eds-field-accent, #00c87b);
7969
+ background: rgba(0, 255, 157, 0.05);
7970
+ box-shadow: 0 0 0 2px var(--eds-field-card-ring, rgba(0, 255, 157, 0.12));
7971
+ }
7972
+
7973
+ .eds-option-card.is-disabled {
7974
+ cursor: not-allowed;
7975
+ opacity: 0.6;
7976
+ }
7977
+
7978
+ .eds-option-text {
7979
+ flex: 0 1 auto;
7980
+ }
7981
+
7982
+ .eds-option-help {
7983
+ margin-left: auto;
7984
+ font-family: 'IBM Plex Mono', monospace;
7985
+ font-size: 10px;
7986
+ letter-spacing: 0.04em;
7987
+ color: #8a8c8a;
7988
+ }
7989
+
@@ -114,9 +114,17 @@ export class EdsInputField {
114
114
  return [];
115
115
  }
116
116
  render() {
117
- const inputOpts = Object.assign({ name: this.name, id: this.inputId, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleNativeInput, onChange: this.handleNativeChange, type: this.type, required: this.required, value: this.value, error: this.error, icon: this.icon, checked: this.checked }, (this.type === 'number' ? { min: this.min, max: this.max, step: this.step } : {}));
118
- return (h("div", { key: '1568054341b82bcaa01ffe4a48092d5f25a639ed' }, this.type === 'checkbox' || this.type === 'radio' ? (this.parsedOptions.length > 0 ? (h("fieldset", { class: "space-y-4" }, (this.label || this.hint) && (h("div", { class: "flex justify-between mb-4" }, this.label && (h("eds-input-label", { name: this.inputId || this.name, label: this.label, required: this.required })), this.hint && (h("p", { id: `${this.name}-hint`, class: "f-ui-05 text-lighter mt-8 ml-8" }, this.hint)))), this.parsedOptions.map((option) => (h("div", { class: "flex items-center gap-x-4 gap-y-4", key: option.value }, h("eds-input", Object.assign({}, inputOpts, { value: option.value, checked: typeof this.value === 'string' && this.value.split(',').includes(String(option.value)) })), h("label", { htmlFor: this.name, class: `input-label-options ${this.disabled ? 'text-lighter' : ''}` }, option.label)))))) : (h("div", { class: "flex items-center gap-x-8" }, h("eds-input", Object.assign({}, inputOpts, { value: this.value, checked: this.value === 'on' || this.checked })), this.label && (h("eds-input-label", { name: this.inputId || this.name, label: this.label, disabled: this.disabled, required: this.required }))))) : (h("div", null, (this.label || this.hint) && (h("div", { class: "flex justify-between mb-4" }, this.label && (h("eds-input-label", { name: this.inputId || this.name, label: this.label, disabled: this.disabled, required: this.required })), this.hint && (h("p", { id: `${this.name}-hint`, class: "f-ui-05 text-lighter mt-8 ml-8" }, this.hint)))), this.type === 'select' ? (h("eds-input-select", Object.assign({}, inputOpts, { options: this.parsedOptions }))) : this.type === 'file' ? (h("eds-input-file", { name: this.name, inputId: this.inputId, disabled: this.disabled, required: this.required, multiple: true, onEdsfile: this.handleFileChange })) : this.type === 'dropzone' ? (h("eds-input-dropzone", { name: this.name, inputId: this.inputId, disabled: this.disabled, required: this.required, multiple: true, onEdsfile: this.handleFileChange })) : this.type === 'search' ? (h("eds-input-search", { name: "search-box" })) : this.type === 'range' ? ((() => {
119
- var _a, _b, _c;
117
+ const inputOpts = Object.assign({ name: this.name, id: this.inputId, placeholder: this.placeholder, disabled: this.disabled, onInput: this.handleNativeInput, onChange: this.handleNativeChange, type: this.type, required: this.required, value: this.value, error: this.error,
118
+ // Icons are only supported on text inputs for now ignore the prop for
119
+ // every other type so e.g. number/select/checkbox never render one.
120
+ icon: this.type === 'text' ? this.icon : undefined, checked: this.checked }, (this.type === 'number' ? { min: this.min, max: this.max, step: this.step } : {}));
121
+ return (h("div", { key: '2f4fc787a53ec8b3afcd8a6c372075e9c077e220' }, this.type === 'checkbox' || this.type === 'radio' ? (this.parsedOptions.length > 0 ? (h("fieldset", { class: "eds-option-list" }, (this.label || this.hint) && (h("div", { class: "flex justify-between mb-12" }, this.label && (h("eds-input-label", { name: this.inputId || this.name, label: this.label, required: this.required })), this.hint && (h("p", { id: `${this.name}-hint`, class: "f-ui-05 text-lighter mt-8 ml-8" }, this.hint)))), this.parsedOptions.map((option) => (
122
+ // Each option is a selectable card. The native control lives in
123
+ // eds-input (light DOM), so the card highlights via :has(input:checked)
124
+ // — no JS state needed. The label wraps the control, so clicking
125
+ // anywhere on the card toggles it.
126
+ h("label", { class: `eds-option-card ${this.disabled ? 'is-disabled' : ''}`, key: option.value }, h("eds-input", Object.assign({}, inputOpts, { inputId: `${this.inputId || this.name}-${option.value}`, inputTabIndex: 0, value: option.value, checked: typeof this.value === 'string' && this.value.split(',').includes(String(option.value)) })), h("span", { class: "eds-option-text" }, option.label), option.description && h("span", { class: "eds-option-help" }, option.description)))))) : (h("div", { class: "flex items-center gap-x-8" }, h("eds-input", Object.assign({}, inputOpts, { inputTabIndex: 0, value: this.value, checked: this.value === 'on' || this.checked })), this.label && (h("eds-input-label", { name: this.inputId || this.name, label: this.label, disabled: this.disabled, required: this.required }))))) : (h("div", null, (this.label || this.hint) && (h("div", { class: "flex justify-between mb-8" }, this.label && (h("eds-input-label", { name: this.inputId || this.name, label: this.label, disabled: this.disabled, required: this.required })), this.hint && (h("p", { id: `${this.name}-hint`, class: "f-ui-05 text-lighter mt-8 ml-8" }, this.hint)))), this.type === 'select' ? (h("eds-input-select", Object.assign({}, inputOpts, { options: this.parsedOptions }))) : this.type === 'file' ? (h("eds-input-file", { name: this.name, inputId: this.inputId, disabled: this.disabled, required: this.required, multiple: true, onEdsfile: this.handleFileChange })) : this.type === 'dropzone' ? (h("eds-input-dropzone", { name: this.name, inputId: this.inputId, disabled: this.disabled, required: this.required, multiple: true, onEdsfile: this.handleFileChange })) : this.type === 'range' ? ((() => {
127
+ var _a, _b, _c, _d, _e, _f;
120
128
  const rangeProps = {
121
129
  name: inputOpts.name,
122
130
  inputId: inputOpts.id || inputOpts.name,
@@ -127,8 +135,11 @@ export class EdsInputField {
127
135
  };
128
136
  const opt = this.parsedOptions;
129
137
  const numberValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
130
- return (h("eds-input-range", Object.assign({}, rangeProps, { min: (_a = opt[0]) === null || _a === void 0 ? void 0 : _a.value, max: (_b = opt[1]) === null || _b === void 0 ? void 0 : _b.value, step: (_c = opt[2]) === null || _c === void 0 ? void 0 : _c.value, value: numberValue })));
131
- })()) : (h("eds-input", Object.assign({}, inputOpts))))), h("div", { key: '5df838f8bf73bc9e0dfa0792f76ad1b958f3d1fc', class: "mt-6" }, h("eds-input-footer", { key: 'daf5d0fd8d9cca3241e760b740a47e2663c3e665', id: `${this.name}-footer`, name: this.name, message: this.message, "error-message": this.errorMessage, error: this.error, link: this.link }))));
138
+ // Prefer the explicit min/max/step props (consistent with
139
+ // type="number"); fall back to options[0..2].value for
140
+ // backward compatibility with existing range fields.
141
+ return (h("eds-input-range", Object.assign({}, rangeProps, { min: (_a = this.min) !== null && _a !== void 0 ? _a : (_b = opt[0]) === null || _b === void 0 ? void 0 : _b.value, max: (_c = this.max) !== null && _c !== void 0 ? _c : (_d = opt[1]) === null || _d === void 0 ? void 0 : _d.value, step: (_e = this.step) !== null && _e !== void 0 ? _e : (_f = opt[2]) === null || _f === void 0 ? void 0 : _f.value, value: numberValue })));
142
+ })()) : (h("eds-input", Object.assign({}, inputOpts))))), h("div", { key: '33bfae3f5ef4a8a1a0c529fade0d1a8616eff100', class: "mt-8" }, h("eds-input-footer", { key: 'c4b6b192d052c486965b9b89fc6756324138975c', id: `${this.name}-footer`, name: this.name, message: this.message, "error-message": this.errorMessage, error: this.error, link: this.link }))));
132
143
  }
133
144
  static get is() { return "eds-input-field"; }
134
145
  static get encapsulation() { return "shadow"; }
@@ -1,52 +1,96 @@
1
+ import { ICONS } from "../../utils/icons";
2
+ // Derived from the single source of truth so the list never drifts.
3
+ // '' = no icon (the template treats it as falsy).
4
+ const ICON_OPTIONS = ['', ...Object.keys(ICONS).sort()];
1
5
  export default {
2
6
  title: 'Components/Input Field',
3
7
  component: 'eds-input-field',
4
8
  argTypes: {
5
- name: { control: 'text', description: 'Name attribute of the input field' },
6
- inputId: { control: 'text', description: 'ID attribute of the input field' },
7
- placeholder: { control: 'text', description: 'Placeholder text for the input field' },
8
- disabled: { control: 'boolean', description: 'Whether the input field is disabled' },
9
+ // ── Core ──
9
10
  type: {
10
11
  control: 'select',
11
- options: ['text', 'checkbox', 'radio', 'select', 'password', 'file', 'number', 'range'],
12
- description: 'Type of the input field'
12
+ options: ['text', 'checkbox', 'radio', 'select', 'password', 'file', 'dropzone', 'number', 'range'],
13
+ description: 'Type of the input field',
14
+ table: { category: 'Core' }
13
15
  },
14
- required: { control: 'boolean', description: 'Whether the input field is required' },
15
- label: { control: 'text', description: 'Label for the input field' },
16
- hint: { control: 'text', description: 'Hint text to provide additional guidance' },
17
- icon: { control: 'text', description: 'Icon name to display in the input field' },
18
- link: {
19
- control: 'object',
20
- description: 'An object containing the link URL and label'
16
+ name: { control: 'text', description: 'Name attribute of the input field', table: { category: 'Core' } },
17
+ label: { control: 'text', description: 'Label for the input field', table: { category: 'Core' } },
18
+ placeholder: { control: 'text', description: 'Placeholder text', table: { category: 'Core' } },
19
+ // ── State & validation ──
20
+ required: {
21
+ control: 'boolean',
22
+ description: 'Whether the input is required',
23
+ table: { category: 'State & validation' }
21
24
  },
22
- min: {
23
- control: 'number',
24
- description: 'Minimum value for number or range inputs'
25
+ disabled: {
26
+ control: 'boolean',
27
+ description: 'Whether the input is disabled',
28
+ table: { category: 'State & validation' }
25
29
  },
26
- max: {
27
- control: 'number',
28
- description: 'Maximum value for number or range inputs'
30
+ error: {
31
+ control: 'boolean',
32
+ description: 'Render the input in an error state',
33
+ table: { category: 'State & validation' }
29
34
  },
30
- step: {
31
- control: 'number',
32
- description: 'Step value for number or range inputs'
35
+ errorMessage: {
36
+ control: 'text',
37
+ description: 'Error message shown when invalid',
38
+ table: { category: 'State & validation' }
33
39
  },
34
- message: { control: 'text', description: 'Message displayed below the input field' },
35
- error: { control: 'boolean', description: 'Whether the input field is in an error state' },
36
40
  checked: {
37
41
  control: 'boolean',
38
- description: 'Whether the input field is checked (for checkbox/radio)'
42
+ description: 'Checked state (checkbox/radio only)',
43
+ table: { category: 'State & validation' },
44
+ if: { arg: 'type', eq: 'checkbox' }
39
45
  },
40
- errorMessage: {
46
+ // ── Helper text & decoration ──
47
+ hint: { control: 'text', description: 'Hint text next to the label', table: { category: 'Helper & decoration' } },
48
+ message: {
41
49
  control: 'text',
42
- description: 'Error message displayed when the input is invalid'
50
+ description: 'Message displayed below the input',
51
+ table: { category: 'Helper & decoration' }
52
+ },
53
+ icon: {
54
+ control: { type: 'select' },
55
+ options: ICON_OPTIONS,
56
+ description: 'Icon name to display inside the input (from the EDS icon set)',
57
+ table: { category: 'Helper & decoration' }
58
+ },
59
+ link: {
60
+ control: 'object',
61
+ description: 'Help/docs link `{ url, label }`',
62
+ table: { category: 'Helper & decoration' }
63
+ },
64
+ maxLength: {
65
+ control: 'number',
66
+ description: 'Maximum length for text input',
67
+ table: { category: 'Helper & decoration' }
43
68
  },
44
- value: { control: 'text', description: 'Value of the input field' },
45
- maxLength: { control: 'number', description: 'Maximum length for the input value' },
69
+ // ── Number & range (min/max/step apply to type="number" and type="range") ──
70
+ min: { control: 'number', description: 'Minimum value (number & range)', table: { category: 'Number & range' } },
71
+ max: { control: 'number', description: 'Maximum value (number & range)', table: { category: 'Number & range' } },
72
+ step: { control: 'number', description: 'Step value (number & range)', table: { category: 'Number & range' } },
73
+ // ── Choices ──
46
74
  options: {
47
75
  control: 'object',
48
- description: 'Options for select, checkbox, or radio input types'
76
+ description: 'Choices for select/checkbox/radio. For type="range", min/max/step props are preferred; options[0..2].value is a legacy fallback.',
77
+ table: { category: 'Choices' }
49
78
  }
79
+ },
80
+ // Default args so the Controls panel opens populated. The single-attribute
81
+ // variations (error, message, hint, value, maxLength, icon, link, disabled,
82
+ // password, custom icon, single checkbox/radio) are all reachable by toggling
83
+ // these controls — that's why they no longer need their own stories.
84
+ args: {
85
+ name: 'username',
86
+ placeholder: 'Enter your username',
87
+ type: 'text',
88
+ required: true,
89
+ label: 'Username',
90
+ hint: 'Choose a unique handle',
91
+ message: 'Your username should be unique.',
92
+ icon: 'user',
93
+ link: { url: 'https://docs.ebrains.eu', label: 'Help' }
50
94
  }
51
95
  };
52
96
  const Template = (args) => {
@@ -62,7 +106,6 @@ const Template = (args) => {
62
106
  ${args.required ? `required="${args.required}"` : ''}
63
107
  ${args.label ? `label="${args.label}"` : ''}
64
108
  ${args.hint ? `hint="${args.hint}"` : ''}
65
- ${args.link ? `link="${args.link}"` : ''}
66
109
  ${args.icon ? `icon="${args.icon}"` : ''}
67
110
  ${args.min !== undefined ? `min="${args.min}"` : ''}
68
111
  ${args.max !== undefined ? `max="${args.max}"` : ''}
@@ -78,36 +121,11 @@ const Template = (args) => {
78
121
  ></eds-input-field>
79
122
  `;
80
123
  };
81
- export const BasicTextInput = Template.bind({});
82
- BasicTextInput.args = {
83
- name: 'username',
84
- inputId: 'username-input',
85
- placeholder: 'Enter your username',
86
- type: 'text',
87
- required: true,
88
- label: 'Username'
89
- };
90
- export const PasswordInputWithHint = Template.bind({});
91
- PasswordInputWithHint.args = {
92
- name: 'password',
93
- inputId: 'password-input',
94
- placeholder: 'Enter your password',
95
- type: 'password',
96
- required: true,
97
- label: 'Password',
98
- hint: 'Must be at least 8 characters'
99
- };
100
- export const TextInputWithError = Template.bind({});
101
- TextInputWithError.args = {
102
- name: 'email',
103
- inputId: 'email-input',
104
- placeholder: 'Enter your email',
105
- type: 'text',
106
- required: true,
107
- label: 'Email Address',
108
- error: true,
109
- errorMessage: 'Invalid email address'
110
- };
124
+ // Control-driven text field. Everything the removed single-attribute stories
125
+ // showed — error/errorMessage, message, hint, value, maxLength, icon, link,
126
+ // disabled, password, custom icon — is reachable straight from the Controls
127
+ // panel on this story.
128
+ export const Default = Template.bind({});
111
129
  export const CheckboxGroup = Template.bind({});
112
130
  CheckboxGroup.args = {
113
131
  name: 'preferences',
@@ -149,76 +167,38 @@ FileUpload.args = {
149
167
  label: 'Upload Resume',
150
168
  hint: 'PDF or Word Document'
151
169
  };
152
- export const InputWithIconAndLink = Template.bind({});
153
- InputWithIconAndLink.args = {
154
- name: 'website',
155
- placeholder: 'Enter your website URL',
156
- type: 'text',
157
- label: 'Website',
158
- icon: 'success',
159
- link: { url: 'https://help.example.com', label: 'Help' }
160
- };
161
- export const NumberInputWithMaxLength = Template.bind({});
162
- NumberInputWithMaxLength.args = {
170
+ // The dropzone is just another field `type` — same label/hint/error wrapper as
171
+ // every other input, with the drag-and-drop control swapped in.
172
+ export const Dropzone = Template.bind({});
173
+ Dropzone.args = {
174
+ name: 'attachments',
175
+ type: 'dropzone',
176
+ label: 'Attachments',
177
+ hint: 'Drag and drop files, or click to browse'
178
+ };
179
+ // Number input kept separate because the min/max/step props apply ONLY to
180
+ // type="number" (they are ignored for every other type).
181
+ export const NumberInput = Template.bind({});
182
+ NumberInput.args = {
163
183
  name: 'age',
164
184
  placeholder: 'Enter your age',
165
185
  type: 'number',
166
186
  label: 'Age',
167
187
  min: 5,
168
- max: 10,
188
+ max: 100,
169
189
  step: 1,
170
190
  required: true
171
191
  };
172
- export const DisabledInput = Template.bind({});
173
- DisabledInput.args = {
174
- name: 'disabledInput',
175
- placeholder: 'This field is disabled',
176
- type: 'text',
177
- label: 'Disabled Field',
178
- disabled: true
179
- };
180
- export const InputWithMessage = Template.bind({});
181
- InputWithMessage.args = {
182
- name: 'username',
183
- placeholder: 'Enter your username',
184
- type: 'text',
185
- label: 'Username',
186
- message: 'Your username should be unique.'
187
- };
188
- export const InputWithMaxLength = Template.bind({});
189
- InputWithMaxLength.args = {
190
- name: 'shortBio',
191
- placeholder: 'Enter a short bio',
192
- type: 'text',
193
- label: 'Short Bio',
194
- maxLength: 100
195
- };
196
- export const InputWithValue = Template.bind({});
197
- InputWithValue.args = {
198
- name: 'city',
199
- placeholder: 'Enter your city',
200
- type: 'text',
201
- label: 'City',
202
- value: 'San Francisco'
203
- };
204
- export const CheckboxSingle = Template.bind({});
205
- CheckboxSingle.args = {
206
- name: 'agreeTerms',
207
- type: 'checkbox',
208
- label: 'I agree to the terms and conditions',
209
- required: true
210
- };
211
- export const RadioButtonSingle = Template.bind({});
212
- RadioButtonSingle.args = {
213
- name: 'subscribe',
214
- type: 'radio',
215
- label: 'Subscribe to newsletter'
216
- };
217
- export const InputWithCustomIcon = Template.bind({});
218
- InputWithCustomIcon.args = {
219
- name: 'search',
220
- placeholder: 'Search...',
221
- type: 'text',
222
- label: 'Search',
223
- icon: 'search'
192
+ // Range slider — uses the same min/max/step props as type="number".
193
+ // (Legacy fields may still pass these via options[0..2].value, which the
194
+ // component honors as a fallback.)
195
+ export const RangeSlider = Template.bind({});
196
+ RangeSlider.args = {
197
+ name: 'volume',
198
+ type: 'range',
199
+ label: 'Volume',
200
+ value: '40',
201
+ min: 0,
202
+ max: 100,
203
+ step: 5
224
204
  };
@@ -7,8 +7,9 @@ export class EdsInputFile {
7
7
  };
8
8
  this.handleFileSelect = (event) => {
9
9
  const input = event.target;
10
- if (!input.files)
10
+ if (!input.files) {
11
11
  return;
12
+ }
12
13
  const newFiles = Array.from(input.files).map((file) => ({
13
14
  file,
14
15
  id: `${file.name}-${Date.now()}-${Math.random()}`
@@ -40,8 +41,9 @@ export class EdsInputFile {
40
41
  this.edsfile.emit({ files });
41
42
  }
42
43
  formatFileSize(bytes) {
43
- if (bytes === 0)
44
+ if (bytes === 0) {
44
45
  return '0 B';
46
+ }
45
47
  const k = 1024;
46
48
  const sizes = ['B', 'KB', 'MB', 'GB'];
47
49
  const i = Math.floor(Math.log(bytes) / Math.log(k));
@@ -60,7 +62,7 @@ export class EdsInputFile {
60
62
  }
61
63
  render() {
62
64
  const effectiveLabel = this.buttonLabel || (this.multiple ? 'Choose Files' : 'Choose File');
63
- return (h("div", { key: 'c4c8f06b7d911cc7b9aa44a54bc1ec1144fc7901', class: "eds-input-file-container" }, h("input", { key: 'bf4d4f3b3a49a2b386780fd6d65056e2bfee327d', ref: (el) => (this.fileInputRef = el), type: "file", id: this.inputId || this.name, name: this.name, class: "eds-input-file-hidden", disabled: this.disabled, required: this.required, multiple: this.multiple, accept: this.accept, onChange: this.handleFileSelect }), h("button", { key: 'cb4447bab24a31ba0ab7ab852041a9117a4c8d16', type: "button", class: "eds-input-file-btn", onClick: this.handleButtonClick, disabled: this.disabled }, h("svg", { key: 'b5a98574c8b044b63bf4d6b5384f691d78179b25', viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { key: '9dcd73b3ea6b947052417dedbdedfbe9c1683d11', d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), h("polyline", { key: '17442a8caa70a37f77839b4a313a36aa8324d54a', points: "17 8 12 3 7 8" }), h("line", { key: 'de51aa410bd793d708280bc398766859afa59ff5', x1: "12", y1: "3", x2: "12", y2: "15" })), effectiveLabel), this.selectedFiles.length > 0 && (h("div", { key: '179a1541b71508f3bf78760079d04b2d98a8c7ec', class: "eds-input-file-chips" }, this.selectedFiles.map((item) => (h("div", { key: item.id, class: "eds-input-file-chip" }, this.getFileIcon(item.file.name), h("span", { class: "eds-input-file-chip-name" }, item.file.name), h("span", { class: "eds-input-file-chip-size" }, this.formatFileSize(item.file.size)), h("button", { type: "button", class: "eds-input-file-chip-remove", onClick: () => this.handleRemoveFile(item.id), disabled: this.disabled, "aria-label": `Remove ${item.file.name}` }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), h("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))))))))));
65
+ return (h("div", { key: '810e30b054b1a6a43c9cc79e318ae487679de1d7', class: "eds-input-file-container" }, h("input", { key: '21a2162df7e6cc430b230407891bd1568bb4fe18', ref: (el) => (this.fileInputRef = el), type: "file", id: this.inputId || this.name, name: this.name, class: "eds-input-file-hidden", disabled: this.disabled, required: this.required, multiple: this.multiple, accept: this.accept, onChange: this.handleFileSelect }), h("button", { key: 'd297cf5c5e63c002558e878a140b931a68a25f54', type: "button", class: "eds-input-file-btn", onClick: this.handleButtonClick, disabled: this.disabled }, h("svg", { key: 'eb08b7516dce89647e28ca0c0ec1f70ade64b2cd', viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { key: 'b0eefaf19325e60d5f974039644f8ab962bbfe92', d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), h("polyline", { key: 'd0bfb65f3c6e3e9d019d23e94ceeb08ba3f6976e', points: "17 8 12 3 7 8" }), h("line", { key: '3e7b0172924b54c26b9100ea264e85be73beabe9', x1: "12", y1: "3", x2: "12", y2: "15" })), effectiveLabel), this.selectedFiles.length > 0 && (h("div", { key: '633d574a840479eb58ec596078960c88fbf4ce94', class: "eds-input-file-chips" }, this.selectedFiles.map((item) => (h("div", { key: item.id, class: "eds-input-file-chip" }, this.getFileIcon(item.file.name), h("span", { class: "eds-input-file-chip-name" }, item.file.name), h("span", { class: "eds-input-file-chip-size" }, this.formatFileSize(item.file.size)), h("button", { type: "button", class: "eds-input-file-chip-remove", onClick: () => this.handleRemoveFile(item.id), disabled: this.disabled, "aria-label": `Remove ${item.file.name}` }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), h("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))))))))));
64
66
  }
65
67
  static get is() { return "eds-input-file"; }
66
68
  static get encapsulation() { return "shadow"; }
@@ -55,12 +55,8 @@ const linkStyles = cva([
55
55
  'rounded-full',
56
56
  'aria-disabled:bg-dark aria-disabled:text-lightest'
57
57
  ],
58
- cta: [
59
- 'cta-link !px-0 !py-0 !min-h-0 !h-auto'
60
- ],
61
- 'cta-brand': [
62
- 'cta-link-brand !px-0 !py-0 !min-h-0 !h-auto'
63
- ]
58
+ cta: ['cta-link !px-0 !py-0 !min-h-0 !h-auto'],
59
+ 'cta-brand': ['cta-link-brand !px-0 !py-0 !min-h-0 !h-auto']
64
60
  },
65
61
  iconSmall: {
66
62
  true: '',
@@ -290,7 +286,7 @@ export class EdsLink {
290
286
  const labelClasses = this.hideLabelOnSmallScreen
291
287
  ? 'hidden lg:flex' // Tailwind example: hidden on small screens, visible on larger
292
288
  : '';
293
- return (h("a", { key: 'b604585e484db17a87cba4fb492ef17014c0c88a', class: `${classes || ''}`, href: isInteractive ? safeUrl : undefined, target: this.external && isInteractive ? '_blank' : undefined, rel: this.external && isInteractive ? 'noopener noreferrer' : undefined, tabIndex: isInteractive ? 0 : -1, "aria-label": isIconOnly ? this.ariaLabel || 'Link' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-current": this.current ? 'page' : undefined, role: this.disabled ? 'link' : undefined, download: this.download ? '' : undefined, onClick: (event) => this.handleClick(event), onKeyDown: (event) => this.handleKeyDown(event) }, h("span", { key: 'c3d5d62b4740ecb9f4fa6330147bb1f23afe22e0', class: "z-1 relative inline-flex items-center justify-center" }, this.renderLeftIcon(), this.label && (h("span", { key: 'c4340d032516895b8ad9a01170998605875a5774', class: `${labelClasses} ${this.icon ? (this.iconPos === 'right' ? (this.size === 'large' ? 'pr-4' : 'pr-2') : (this.size === 'large' ? 'pl-4' : 'pl-2')) : ''}` }, this.label)), this.renderRightIcon())));
289
+ return (h("a", { key: 'a447ffc8ba377ceb4fe0dc199ad7225e222d4cf3', class: `${classes || ''}`, href: isInteractive ? safeUrl : undefined, target: this.external && isInteractive ? '_blank' : undefined, rel: this.external && isInteractive ? 'noopener noreferrer' : undefined, tabIndex: isInteractive ? 0 : -1, "aria-label": isIconOnly ? this.ariaLabel || 'Link' : undefined, "aria-disabled": this.disabled ? 'true' : undefined, "aria-current": this.current ? 'page' : undefined, role: this.disabled ? 'link' : undefined, download: this.download ? '' : undefined, onClick: (event) => this.handleClick(event), onKeyDown: (event) => this.handleKeyDown(event) }, h("span", { key: '72d84592cfd7e48e983e281d8e8f1d8a2b739e26', class: "z-1 relative inline-flex items-center justify-center" }, this.renderLeftIcon(), this.label && (h("span", { key: 'a101036d3206e7f610c04dfc9d0a4dcd5c1a2b4f', class: `${labelClasses} ${this.icon ? (this.iconPos === 'right' ? (this.size === 'large' ? 'pr-4' : 'pr-2') : this.size === 'large' ? 'pl-4' : 'pl-2') : ''}` }, this.label)), this.renderRightIcon())));
294
290
  }
295
291
  static get is() { return "eds-link"; }
296
292
  static get encapsulation() { return "shadow"; }
@@ -327,7 +323,7 @@ export class EdsLink {
327
323
  "type": "string",
328
324
  "mutable": false,
329
325
  "complexType": {
330
- "original": "'primary' | 'secondary' | 'secondaryInverse' | 'ghost' | 'strong' | 'weak' | 'inverse' | 'underline' | 'underlineInverse' | 'brand' | 'brandInverse' | 'cta' | 'cta-brand'",
326
+ "original": "| 'primary'\n | 'secondary'\n | 'secondaryInverse'\n | 'ghost'\n | 'strong'\n | 'weak'\n | 'inverse'\n | 'underline'\n | 'underlineInverse'\n | 'brand'\n | 'brandInverse'\n | 'cta'\n | 'cta-brand'",
331
327
  "resolved": "\"brand\" | \"brandInverse\" | \"cta\" | \"cta-brand\" | \"ghost\" | \"inverse\" | \"primary\" | \"secondary\" | \"secondaryInverse\" | \"strong\" | \"underline\" | \"underlineInverse\" | \"weak\"",
332
328
  "references": {}
333
329
  },