@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.
- package/dist/cjs/color-primary-palette_6.cjs.entry.js +14 -14
- package/dist/cjs/components-section.cjs.entry.js +1 -1
- package/dist/cjs/components.cjs.js +1 -1
- package/dist/cjs/correct-use-of-colors.cjs.entry.js +1 -1
- package/dist/cjs/docs-palettes.cjs.entry.js +1 -1
- package/dist/cjs/docs-tokens.cjs.entry.js +1 -1
- package/dist/cjs/{eds-accordion_52.cjs.entry.js → eds-accordion_53.cjs.entry.js} +847 -207
- package/dist/cjs/eds-app-root.cjs.entry.js +1 -1
- package/dist/cjs/eds-cookies-preference.cjs.entry.js +1 -1
- package/dist/cjs/eds-feedback.cjs.entry.js +1 -1
- package/dist/cjs/eds-frame.cjs.entry.js +1 -1
- package/dist/cjs/eds-gauge.cjs.entry.js +1 -1
- package/dist/cjs/eds-gitlab-contributors.cjs.entry.js +9 -2
- package/dist/cjs/eds-icon-bluesky.cjs.entry.js +1 -1
- package/dist/cjs/eds-icon-eu.cjs.entry.js +1 -1
- package/dist/cjs/eds-icon-facebook.cjs.entry.js +1 -1
- package/dist/cjs/eds-icon-gitlab.cjs.entry.js +1 -1
- package/dist/cjs/eds-icon-linkedin.cjs.entry.js +1 -1
- package/dist/cjs/eds-icon-mastodon.cjs.entry.js +1 -1
- package/dist/cjs/eds-icon-twitter.cjs.entry.js +1 -1
- package/dist/cjs/eds-icon-youtube.cjs.entry.js +1 -1
- package/dist/cjs/eds-input-search.cjs.entry.js +76 -0
- package/dist/cjs/eds-section-core_2.cjs.entry.js +3 -3
- package/dist/cjs/eds-timeline.cjs.entry.js +1 -1
- package/dist/cjs/eds-toast-manager.cjs.entry.js +1 -1
- package/dist/cjs/eds-trl-badge.cjs.entry.js +181 -0
- package/dist/cjs/incorrect-use-of-colors.cjs.entry.js +1 -1
- package/dist/cjs/index-50bc1aa4.js +10 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/logo-space.cjs.entry.js +1 -1
- package/dist/cjs/logo-variations-horizontal_2.cjs.entry.js +2 -2
- package/dist/cjs/logo-variations-tabs.cjs.entry.js +1 -1
- package/dist/cjs/logo-wrong-usage.cjs.entry.js +1 -1
- package/dist/cjs/svg-repository.cjs.entry.js +1 -1
- package/dist/cjs/token-list_3.cjs.entry.js +3 -3
- package/dist/cjs/token-ratios.cjs.entry.js +1 -1
- package/dist/cjs/token-spacing.cjs.entry.js +1 -1
- package/dist/cjs/token-typography.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +4 -1
- package/dist/collection/components/eds-accordion/eds-accordion.css +3 -2
- package/dist/collection/components/eds-accordion/eds-accordion.js +1 -1
- package/dist/collection/components/eds-accordion/eds-accordion.stories.js +7 -19
- package/dist/collection/components/eds-alert/eds-alert.stories.js +19 -147
- package/dist/collection/components/eds-avatar/eds-avatar.js +1 -1
- package/dist/collection/components/eds-avatar/eds-avatar.stories.js +2 -2
- package/dist/collection/components/eds-block-break/eds-block-break.js +1 -1
- package/dist/collection/components/eds-breadcrump/eds-breadcrump.js +1 -1
- package/dist/collection/components/eds-button/eds-button.css +15 -0
- package/dist/collection/components/eds-button/eds-button.js +13 -6
- package/dist/collection/components/eds-cards/eds-card-composer/eds-card-desc/eds-card-desc.js +1 -1
- package/dist/collection/components/eds-cards/eds-card-cta/eds-card-cta.css +10 -1
- package/dist/collection/components/eds-cards/eds-card-cta/eds-card-cta.js +1 -1
- package/dist/collection/components/eds-cards/eds-card-feature/eds-card-feature.js +1 -1
- package/dist/collection/components/eds-cards/eds-card-generic/eds-card-generic.js +1 -1
- package/dist/collection/components/eds-cards/eds-card-hero/eds-card-hero.js +1 -1
- package/dist/collection/components/eds-cards/eds-card-stat/eds-card-stat.js +1 -1
- package/dist/collection/components/eds-charts/eds-gauge/eds-gauge.js +1 -1
- package/dist/collection/components/eds-code-block/eds-code-block.js +1 -1
- package/dist/collection/components/eds-dropdown/eds-dropdown.js +30 -4
- package/dist/collection/components/eds-feedback/eds-feedback.js +1 -1
- package/dist/collection/components/eds-footer/eds-footer.css +143 -203
- package/dist/collection/components/eds-footer/eds-footer.js +173 -76
- package/dist/collection/components/eds-footer/eds-footer.stories.js +108 -15
- package/dist/collection/components/eds-form/eds-form.css +37 -1
- package/dist/collection/components/eds-form/eds-form.js +45 -7
- package/dist/collection/components/eds-frame/eds-frame.js +1 -1
- package/dist/collection/components/eds-header/eds-header.js +1 -1
- package/dist/collection/components/eds-header/eds-header.stories.js +26 -12
- package/dist/collection/components/eds-icon-wrapper/eds-icon-wrapper.js +20 -1
- package/dist/collection/components/eds-icons/eds-icon-eu/eds-icon-eu.js +1 -1
- package/dist/collection/components/eds-icons/eds-icon-gitlab/eds-icon-gitlab.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-bluesky/eds-icon-bluesky.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-facebook/eds-icon-facebook.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-linkedin/eds-icon-linkedin.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-mastodon/eds-icon-mastodon.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-twitter/eds-icon-twitter.js +1 -1
- package/dist/collection/components/eds-icons/social/eds-icon-youtube/eds-icon-youtube.js +1 -1
- package/dist/collection/components/eds-img/eds-img.js +2 -2
- package/dist/collection/components/eds-img/eds-img.stories.js +29 -52
- package/dist/collection/components/eds-input-dropzone/eds-input-dropzone.js +1 -1
- package/dist/collection/components/eds-input-elements/eds-input/eds-input.js +20 -2
- package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.css +29 -0
- package/dist/collection/components/eds-input-elements/eds-input-footer/eds-input-footer.js +2 -1
- package/dist/collection/components/eds-input-elements/eds-input-label/eds-input-label.js +1 -1
- package/dist/collection/components/eds-input-elements/eds-input-range/eds-input-range.js +1 -1
- package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.js +1 -1
- package/dist/collection/components/eds-input-elements/eds-input-search/eds-input-search.stories.js +30 -0
- package/dist/collection/components/eds-input-elements/eds-input-select/eds-input-select.js +2 -2
- package/dist/collection/components/eds-input-field/eds-input-field.js +11 -5
- package/dist/collection/components/eds-input-field/eds-input-field.stories.js +82 -130
- package/dist/collection/components/eds-input-file/eds-input-file.js +1 -1
- package/dist/collection/components/eds-link/eds-link.js +1 -1
- package/dist/collection/components/eds-link/eds-link.stories.js +13 -8
- package/dist/collection/components/eds-logo/eds-logo.js +1 -1
- package/dist/collection/components/eds-modal/eds-modal.stories.js +9 -8
- package/dist/collection/components/eds-nps/eds-nps.css +32 -0
- package/dist/collection/components/eds-nps/eds-nps.js +3 -3
- package/dist/collection/components/eds-pagination/eds-pagination.js +2 -2
- package/dist/collection/components/eds-rating/eds-rating.css +9 -0
- package/dist/collection/components/eds-rating/eds-rating.js +2 -2
- package/dist/collection/components/eds-section/eds-section-core/eds-section-core.js +1 -1
- package/dist/collection/components/eds-section/eds-section-heading/eds-section-heading.js +2 -2
- package/dist/collection/components/eds-sidebar/eds-sidebar.js +2 -2
- package/dist/collection/components/eds-social-networks/eds-social-networks.js +1 -1
- package/dist/collection/components/eds-spinner/eds-spinner.js +1 -1
- package/dist/collection/components/eds-steps-v2/eds-steps-v2.js +1 -1
- package/dist/collection/components/eds-table/eds-table.css +21 -4
- package/dist/collection/components/eds-table/eds-table.js +17 -50
- package/dist/collection/components/eds-table/eds-table.stories.js +5 -109
- package/dist/collection/components/eds-tabs/eds-tabs.css +7 -1
- package/dist/collection/components/eds-tabs/eds-tabs.js +47 -9
- package/dist/collection/components/eds-tag/eds-tag.js +1 -1
- package/dist/collection/components/eds-timeline/eds-timeline.js +1 -1
- package/dist/collection/components/eds-toast-manager/eds-toast-manager.js +1 -1
- package/dist/collection/components/eds-tooltip/eds-tooltip.js +1 -1
- package/dist/collection/components/eds-tooltip/eds-tooltip.stories.js +1 -1
- package/dist/collection/components/eds-user/eds-user.js +1 -1
- package/dist/collection/eds-docs-ui/colors/color-palette/primary.js +1 -1
- package/dist/collection/eds-docs-ui/colors/color-palette/secondary.js +1 -1
- package/dist/collection/eds-docs-ui/colors/color-palette/support.js +1 -1
- package/dist/collection/eds-docs-ui/colors/gradient-palette/primary.js +1 -1
- package/dist/collection/eds-docs-ui/colors/gradient-palette/secondary.js +7 -7
- package/dist/collection/eds-docs-ui/colors/gradient-palette/support.js +3 -3
- package/dist/collection/eds-docs-ui/colors/use-of-colors/correct-use-of-colors.js +1 -1
- package/dist/collection/eds-docs-ui/colors/use-of-colors/incorrect-use-of-colors.js +1 -1
- package/dist/collection/eds-docs-ui/components-section/components-section.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/docs-tokens/docs-tokens.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-list/token-list.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-radii/token-radii.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-ratios/token-ratios.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-shadows/token-shadows.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-spacing/token-spacing.js +1 -1
- package/dist/collection/eds-docs-ui/design-tokens/token-typography/token-typography.js +1 -1
- package/dist/collection/eds-docs-ui/docs-palettes/docs-palettes.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-space/logo-space.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-variations/horizontal/logo-variations-horizontal.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-variations/vertical/logo-variations-vertical.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-variations-tabs/logo-variations.js +1 -1
- package/dist/collection/eds-docs-ui/logo/logo-wrong-usage/logo-wrong-usage.js +1 -1
- package/dist/collection/eds-docs-ui/svg-repository/svg-repository.js +1 -1
- package/dist/collection/shared-ui/eds-cookies-preference/eds-cookies-preference.js +1 -1
- package/dist/collection/shared-ui/eds-gitlab-contributors/eds-gitlab-contributors.css +19 -0
- package/dist/collection/shared-ui/eds-gitlab-contributors/eds-gitlab-contributors.js +8 -1
- package/dist/collection/shared-ui/eds-global-search/eds-global-search.css +166 -0
- package/dist/collection/shared-ui/eds-global-search/eds-global-search.js +62 -6
- package/dist/collection/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.css +205 -0
- package/dist/collection/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.js +257 -0
- package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.css +23 -102
- package/dist/collection/shared-ui/eds-matomo-notice/eds-matomo-notice.js +7 -1
- package/dist/collection/shared-ui/eds-search-select/eds-search-select.css +203 -0
- package/dist/collection/shared-ui/eds-search-select/eds-search-select.js +685 -0
- package/dist/collection/shared-ui/eds-search-select/eds-search-select.stories.js +85 -0
- package/dist/collection/shared-ui/eds-trl-badge/ebrains-mark.js +26 -0
- package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.css +22 -0
- package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.js +321 -0
- package/dist/collection/shared-ui/eds-trl-badge/eds-trl-badge.stories.js +96 -0
- package/dist/collection/shared-ui/examples/eds-app-root/eds-app-root.js +1 -1
- package/dist/collection/utils/eds-form/formValidators.js +2 -1
- package/dist/collection/utils/eds-form/safeFormat.js +39 -0
- package/dist/components/components-section.js +1 -1
- package/dist/components/components.css +3 -4
- package/dist/components/components.esm.js +1 -1
- package/dist/components/correct-use-of-colors.js +1 -1
- package/dist/components/docs-palettes.js +1 -1
- package/dist/components/docs-tokens.js +1 -1
- package/dist/components/eds-accordion2.js +2 -2
- package/dist/components/eds-app-root.js +1 -1
- package/dist/components/eds-avatar2.js +1 -1
- package/dist/components/eds-block-break2.js +1 -1
- package/dist/components/eds-breadcrumb.js +1 -1
- package/dist/components/eds-button2.js +12 -5
- package/dist/components/eds-card-cta.js +2 -2
- package/dist/components/eds-card-desc2.js +1 -1
- package/dist/components/eds-card-feature.js +1 -1
- package/dist/components/eds-card-generic2.js +1 -1
- package/dist/components/eds-card-hero.js +1 -1
- package/dist/components/eds-card-stat.js +1 -1
- package/dist/components/eds-code-block2.js +1 -1
- package/dist/components/eds-cookies-preference.js +1 -1
- package/dist/components/eds-dropdown2.js +30 -4
- package/dist/components/eds-feedback.js +1 -1
- package/dist/components/eds-footer2.js +115 -26
- package/dist/components/eds-form.js +61 -23
- package/dist/components/eds-frame.js +1 -1
- package/dist/components/eds-gauge.js +1 -1
- package/dist/components/eds-gitlab-contributors.js +9 -2
- package/dist/components/eds-global-search.js +48 -69
- package/dist/components/eds-header.js +1 -1
- package/dist/components/eds-icon-bluesky.js +1 -1
- package/dist/components/eds-icon-eu.js +1 -1
- package/dist/components/eds-icon-facebook.js +1 -1
- package/dist/components/eds-icon-gitlab.js +1 -1
- package/dist/components/eds-icon-linkedin.js +1 -1
- package/dist/components/eds-icon-mastodon.js +1 -1
- package/dist/components/eds-icon-twitter.js +1 -1
- package/dist/components/eds-icon-wrapper2.js +5 -2
- package/dist/components/eds-icon-youtube.js +1 -1
- package/dist/components/eds-img2.js +2 -2
- package/dist/components/eds-input-dropzone2.js +1 -1
- package/dist/components/eds-input-field2.js +25 -25
- package/dist/components/eds-input-file2.js +1 -1
- package/dist/components/eds-input-footer2.js +43 -3
- package/dist/components/eds-input-label2.js +1 -1
- package/dist/components/eds-input-range2.js +1 -1
- package/dist/components/eds-input-search.js +100 -1
- package/dist/components/eds-input-select2.js +2 -2
- package/dist/components/eds-input2.js +4 -2
- package/dist/components/eds-kg-learning-resources.d.ts +11 -0
- package/dist/components/eds-kg-learning-resources.js +221 -0
- package/dist/components/eds-kg-web-services-select2.js +16 -22
- package/dist/components/eds-link2.js +1 -1
- package/dist/components/eds-logo2.js +1 -1
- package/dist/components/eds-matomo-notice2.js +8 -2
- package/dist/components/eds-nps2.js +4 -4
- package/dist/components/eds-pagination2.js +2 -2
- package/dist/components/eds-rating2.js +3 -3
- package/dist/components/eds-search-select.d.ts +11 -0
- package/dist/components/eds-search-select.js +6 -0
- package/dist/components/eds-search-select2.js +361 -0
- package/dist/components/eds-section-core2.js +1 -1
- package/dist/components/eds-section-heading2.js +2 -2
- package/dist/components/eds-sidebar.js +2 -2
- package/dist/components/eds-social-networks2.js +1 -1
- package/dist/components/eds-spinner2.js +1 -1
- package/dist/components/eds-steps-v2.js +1 -1
- package/dist/components/eds-table2.js +31 -53
- package/dist/components/eds-tabs.js +48 -10
- package/dist/components/eds-tag2.js +1 -1
- package/dist/components/eds-timeline.js +1 -1
- package/dist/components/eds-toast-manager.js +1 -1
- package/dist/components/eds-tooltip2.js +1 -1
- package/dist/components/eds-trl-badge.d.ts +11 -0
- package/dist/components/eds-trl-badge.js +204 -0
- package/dist/components/eds-user.js +1 -1
- package/dist/components/incorrect-use-of-colors.js +1 -1
- package/dist/components/logo-space.js +19 -25
- package/dist/components/logo-variations-horizontal2.js +1 -1
- package/dist/components/logo-variations-tabs.js +1 -1
- package/dist/components/logo-variations-vertical2.js +1 -1
- package/dist/components/logo-wrong-usage.js +1 -1
- package/dist/components/p-00ba405d.entry.js +1 -0
- package/dist/components/p-03342030.entry.js +1 -0
- package/dist/components/{p-0fe10e6c.entry.js → p-0e2bac0f.entry.js} +1 -1
- package/dist/components/{p-7aa4edef.entry.js → p-12acc48d.entry.js} +1 -1
- package/dist/components/p-18399fe1.entry.js +1 -0
- package/dist/components/p-1e6f0572.entry.js +1 -0
- package/dist/components/{p-c46675c8.entry.js → p-1fbcc480.entry.js} +1 -1
- package/dist/components/{p-dfe93385.entry.js → p-25729ade.entry.js} +1 -1
- package/dist/components/p-27e093c3.entry.js +1 -0
- package/dist/components/{p-a6dc1f88.entry.js → p-37ef07d9.entry.js} +1 -1
- package/dist/components/{p-74b9c9a8.entry.js → p-3d1bb2fe.entry.js} +1 -1
- package/dist/components/{p-940a2d42.entry.js → p-42791331.entry.js} +1 -1
- package/dist/components/p-5ff4b1d0.entry.js +1 -0
- package/dist/components/{p-d16b5363.entry.js → p-62580004.entry.js} +1 -1
- package/dist/components/{p-d2576747.entry.js → p-62f53e7a.entry.js} +1 -1
- package/dist/components/p-6be1730a.entry.js +1 -0
- package/dist/components/p-786ff09b.entry.js +1 -0
- package/dist/components/p-80a32e20.entry.js +1 -0
- package/dist/components/p-85476a6f.entry.js +9 -0
- package/dist/components/{p-a63e14bb.entry.js → p-8a483358.entry.js} +1 -1
- package/dist/components/{p-04e9c2d7.entry.js → p-b1a10842.entry.js} +1 -1
- package/dist/components/p-bdcb71e1.entry.js +1 -0
- package/dist/components/p-c2127276.entry.js +1 -0
- package/dist/components/p-c3ee9163.entry.js +1 -0
- package/dist/components/{p-f55dd314.entry.js → p-c4cfbf98.entry.js} +1 -1
- package/dist/components/p-c65082fe.entry.js +1 -0
- package/dist/components/p-cc096938.entry.js +1 -0
- package/dist/components/p-d59d6fda.entry.js +1 -0
- package/dist/components/p-e027bc90.entry.js +1 -0
- package/dist/components/{p-f364296f.entry.js → p-e339d0b5.entry.js} +1 -1
- package/dist/components/{p-0d7aee0b.entry.js → p-e4df206e.entry.js} +1 -1
- package/dist/components/{p-c2fc62f7.entry.js → p-e71a4f29.entry.js} +1 -1
- package/dist/components/{p-773bd015.entry.js → p-e9e6ec19.entry.js} +1 -1
- package/dist/components/p-f4d2f882.entry.js +1 -0
- package/dist/components/{p-d1b3aa52.entry.js → p-f9a9fa34.entry.js} +1 -1
- package/dist/components/primary.js +1 -1
- package/dist/components/primary2.js +1 -1
- package/dist/components/secondary.js +1 -1
- package/dist/components/secondary2.js +7 -7
- package/dist/components/support.js +1 -1
- package/dist/components/support2.js +3 -3
- package/dist/components/svg-repository.js +19 -25
- package/dist/components/token-list2.js +1 -1
- package/dist/components/token-radii2.js +1 -1
- package/dist/components/token-ratios.js +1 -1
- package/dist/components/token-shadows2.js +1 -1
- package/dist/components/token-spacing.js +1 -1
- package/dist/components/token-typography.js +1 -1
- package/dist/esm/color-primary-palette_6.entry.js +14 -14
- package/dist/esm/components-section.entry.js +1 -1
- package/dist/esm/components.js +1 -1
- package/dist/esm/correct-use-of-colors.entry.js +1 -1
- package/dist/esm/docs-palettes.entry.js +1 -1
- package/dist/esm/docs-tokens.entry.js +1 -1
- package/dist/esm/{eds-accordion_52.entry.js → eds-accordion_53.entry.js} +846 -207
- package/dist/esm/eds-app-root.entry.js +1 -1
- package/dist/esm/eds-cookies-preference.entry.js +1 -1
- package/dist/esm/eds-feedback.entry.js +1 -1
- package/dist/esm/eds-frame.entry.js +1 -1
- package/dist/esm/eds-gauge.entry.js +1 -1
- package/dist/esm/eds-gitlab-contributors.entry.js +9 -2
- package/dist/esm/eds-icon-bluesky.entry.js +1 -1
- package/dist/esm/eds-icon-eu.entry.js +1 -1
- package/dist/esm/eds-icon-facebook.entry.js +1 -1
- package/dist/esm/eds-icon-gitlab.entry.js +1 -1
- package/dist/esm/eds-icon-linkedin.entry.js +1 -1
- package/dist/esm/eds-icon-mastodon.entry.js +1 -1
- package/dist/esm/eds-icon-twitter.entry.js +1 -1
- package/dist/esm/eds-icon-youtube.entry.js +1 -1
- package/dist/{components/eds-input-search2.js → esm/eds-input-search.entry.js} +9 -39
- package/dist/esm/eds-section-core_2.entry.js +3 -3
- package/dist/esm/eds-timeline.entry.js +1 -1
- package/dist/esm/eds-toast-manager.entry.js +1 -1
- package/dist/esm/eds-trl-badge.entry.js +177 -0
- package/dist/esm/incorrect-use-of-colors.entry.js +1 -1
- package/dist/esm/index-870ab08f.js +10 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/logo-space.entry.js +1 -1
- package/dist/esm/logo-variations-horizontal_2.entry.js +2 -2
- package/dist/esm/logo-variations-tabs.entry.js +1 -1
- package/dist/esm/logo-wrong-usage.entry.js +1 -1
- package/dist/esm/svg-repository.entry.js +1 -1
- package/dist/esm/token-list_3.entry.js +3 -3
- package/dist/esm/token-ratios.entry.js +1 -1
- package/dist/esm/token-spacing.entry.js +1 -1
- package/dist/esm/token-typography.entry.js +1 -1
- package/dist/hydrate/index.js +1222 -207
- package/dist/hydrate/index.mjs +1222 -207
- package/dist/types/components/eds-accordion/eds-accordion.stories.d.ts +4 -8
- package/dist/types/components/eds-alert/eds-alert.stories.d.ts +7 -73
- package/dist/types/components/eds-button/eds-button.d.ts +1 -1
- package/dist/types/components/eds-dropdown/eds-dropdown.d.ts +1 -0
- package/dist/types/components/eds-footer/eds-footer.d.ts +84 -55
- package/dist/types/components/eds-footer/eds-footer.stories.d.ts +62 -1
- package/dist/types/components/eds-form/eds-form.d.ts +10 -0
- package/dist/types/components/eds-header/eds-header.stories.d.ts +6 -6
- package/dist/types/components/eds-icon-wrapper/eds-icon-wrapper.d.ts +8 -0
- package/dist/types/components/eds-img/eds-img.stories.d.ts +6 -20
- package/dist/types/components/eds-input-elements/eds-input/eds-input.d.ts +7 -0
- package/dist/types/components/eds-input-elements/eds-input-search/eds-input-search.stories.d.ts +36 -0
- package/dist/types/components/eds-input-field/eds-input-field.stories.d.ts +97 -38
- package/dist/types/components/eds-link/eds-link.stories.d.ts +9 -6
- package/dist/types/components/eds-table/eds-table.d.ts +8 -14
- package/dist/types/components/eds-table/eds-table.stories.d.ts +0 -107
- package/dist/types/components/eds-tabs/eds-tabs.d.ts +10 -0
- package/dist/types/components.d.ts +507 -86
- package/dist/types/shared-ui/eds-global-search/eds-global-search.d.ts +12 -0
- package/dist/types/shared-ui/eds-kg-learning-resources/eds-kg-learning-resources.d.ts +60 -0
- package/dist/types/shared-ui/eds-search-select/eds-search-select.d.ts +98 -0
- package/dist/types/shared-ui/eds-search-select/eds-search-select.stories.d.ts +81 -0
- package/dist/types/shared-ui/eds-trl-badge/ebrains-mark.d.ts +7 -0
- package/dist/types/shared-ui/eds-trl-badge/eds-trl-badge.d.ts +54 -0
- package/dist/types/shared-ui/eds-trl-badge/eds-trl-badge.stories.d.ts +112 -0
- package/dist/types/utils/eds-form/safeFormat.d.ts +21 -0
- package/package.json +1 -1
- package/dist/components/p-18e852e1.entry.js +0 -1
- package/dist/components/p-3ccd6948.entry.js +0 -1
- package/dist/components/p-3d3841d6.entry.js +0 -1
- package/dist/components/p-3f38df99.entry.js +0 -1
- package/dist/components/p-527e71d0.entry.js +0 -1
- package/dist/components/p-55047f7f.entry.js +0 -9
- package/dist/components/p-64c23098.entry.js +0 -1
- package/dist/components/p-7b93a385.entry.js +0 -1
- package/dist/components/p-878f65a6.entry.js +0 -1
- package/dist/components/p-92f6d9c0.entry.js +0 -1
- package/dist/components/p-9eedf771.entry.js +0 -1
- package/dist/components/p-b4355cec.entry.js +0 -1
- package/dist/components/p-d2f17fac.entry.js +0 -1
- package/dist/components/p-db5eea95.entry.js +0 -1
- package/dist/components/p-e205c269.entry.js +0 -1
- 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$
|
|
5
|
-
import { d as defineCustomElement$
|
|
6
|
-
import { d as defineCustomElement$
|
|
7
|
-
import { d as defineCustomElement$
|
|
8
|
-
import { d as defineCustomElement$
|
|
9
|
-
import { d as defineCustomElement$
|
|
10
|
-
import { d as defineCustomElement$
|
|
11
|
-
import { d as defineCustomElement$
|
|
12
|
-
import { d as defineCustomElement$
|
|
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;}
|
|
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 = '
|
|
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
|
|
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"
|
|
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"
|
|
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"
|
|
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"
|
|
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: '
|
|
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
|
|
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": [
|
|
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-
|
|
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-
|
|
386
|
+
case "eds-icon-wrapper":
|
|
409
387
|
if (!customElements.get(tagName)) {
|
|
410
388
|
defineCustomElement$d();
|
|
411
389
|
}
|
|
412
390
|
break;
|
|
413
|
-
case "eds-input
|
|
391
|
+
case "eds-input":
|
|
414
392
|
if (!customElements.get(tagName)) {
|
|
415
393
|
defineCustomElement$c();
|
|
416
394
|
}
|
|
417
395
|
break;
|
|
418
|
-
case "eds-input-
|
|
396
|
+
case "eds-input-dropzone":
|
|
419
397
|
if (!customElements.get(tagName)) {
|
|
420
398
|
defineCustomElement$b();
|
|
421
399
|
}
|
|
422
400
|
break;
|
|
423
|
-
case "eds-input-
|
|
401
|
+
case "eds-input-field":
|
|
424
402
|
if (!customElements.get(tagName)) {
|
|
425
403
|
defineCustomElement$a();
|
|
426
404
|
}
|
|
427
405
|
break;
|
|
428
|
-
case "eds-input-
|
|
406
|
+
case "eds-input-file":
|
|
429
407
|
if (!customElements.get(tagName)) {
|
|
430
408
|
defineCustomElement$9();
|
|
431
409
|
}
|
|
432
410
|
break;
|
|
433
|
-
case "eds-input-
|
|
411
|
+
case "eds-input-footer":
|
|
434
412
|
if (!customElements.get(tagName)) {
|
|
435
413
|
defineCustomElement$8();
|
|
436
414
|
}
|
|
437
415
|
break;
|
|
438
|
-
case "eds-input-
|
|
416
|
+
case "eds-input-label":
|
|
439
417
|
if (!customElements.get(tagName)) {
|
|
440
418
|
defineCustomElement$7();
|
|
441
419
|
}
|
|
442
420
|
break;
|
|
443
|
-
case "eds-input-
|
|
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:
|
|
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
|
-
|
|
41
|
-
|
|
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
|
|
67
|
-
|
|
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
|
-
|
|
70
|
-
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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: '
|
|
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, '&').replace(/</g, '<')
|
|
52
|
+
.replace(/>/g, '>').replace(/"/g, '"');
|
|
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 };
|