@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
package/dist/hydrate/index.mjs
CHANGED
|
@@ -2331,7 +2331,7 @@ class ColorPrimaryPalette {
|
|
|
2331
2331
|
];
|
|
2332
2332
|
}
|
|
2333
2333
|
render() {
|
|
2334
|
-
return (hAsync("ul", { key: '
|
|
2334
|
+
return (hAsync("ul", { key: 'baff427c72d8e73945459cd7988112758685e9dc', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, this.colors.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } }, hAsync("div", { class: "grid" }, hAsync("span", { class: "f-body-02" }, color.rgb), hAsync("span", { class: "f-body-02 w-full" }, color.cmyk), hAsync("eds-code-block", { code: color.hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { class: "grid" }, hAsync("span", { class: "f-body-02" }, color.pantoneC), hAsync("span", { class: "f-body-02" }, color.pantoneU))))))));
|
|
2335
2335
|
}
|
|
2336
2336
|
static get cmpMeta() { return {
|
|
2337
2337
|
"$flags$": 0,
|
|
@@ -2403,7 +2403,7 @@ class ColorSecondaryPalette {
|
|
|
2403
2403
|
this.show = undefined;
|
|
2404
2404
|
}
|
|
2405
2405
|
render() {
|
|
2406
|
-
return (hAsync("ul", { key: '
|
|
2406
|
+
return (hAsync("ul", { key: 'f72b4b776eb902f9525ed7d8daf22f58e76adf6c', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, this.colors.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } }, hAsync("div", { class: "grid" }, hAsync("span", { class: "f-body-02" }, color.rgb), hAsync("span", { class: "f-body-02 w-full" }, color.cmyk), hAsync("eds-code-block", { code: color.hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { class: "grid" }, hAsync("span", { class: "f-body-02" }, color.pantoneC), hAsync("span", { class: "f-body-02" }, color.pantoneU))))))));
|
|
2407
2407
|
}
|
|
2408
2408
|
static get cmpMeta() { return {
|
|
2409
2409
|
"$flags$": 0,
|
|
@@ -2477,7 +2477,7 @@ class ColorSupportPalette {
|
|
|
2477
2477
|
return 'text-default';
|
|
2478
2478
|
}
|
|
2479
2479
|
render() {
|
|
2480
|
-
return (hAsync("ul", { key: '
|
|
2480
|
+
return (hAsync("ul", { key: '0f2cc155ce4e73dc47272a4640834cb0ee2e22a5', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, this.colors.map((color) => {
|
|
2481
2481
|
// compute once
|
|
2482
2482
|
const textClass = this.getTextColor(color.background);
|
|
2483
2483
|
return (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } }, hAsync("div", { class: "grid" }, hAsync("span", { class: `f-body-02 ${textClass}` }, color.cmyk), hAsync("eds-code-block", { code: color.hex, style: { minWidth: '150px', marginRight: '5px' }, class: textClass })), hAsync("div", { class: "grid" }, hAsync("span", { class: `f-body-02 ${textClass}` }, color.pantoneC), hAsync("span", { class: `f-body-02 ${textClass}` }, color.pantoneU)))));
|
|
@@ -2637,7 +2637,7 @@ class ComponentsSection {
|
|
|
2637
2637
|
}
|
|
2638
2638
|
}
|
|
2639
2639
|
render() {
|
|
2640
|
-
return hAsync("div", { key: '
|
|
2640
|
+
return hAsync("div", { key: '8d781f8e27f93eb003bd4390da57503dc17a945b', class: "container" }, this.renderContent());
|
|
2641
2641
|
}
|
|
2642
2642
|
static get cmpMeta() { return {
|
|
2643
2643
|
"$flags$": 0,
|
|
@@ -2715,7 +2715,7 @@ class CorrectUseOfColors {
|
|
|
2715
2715
|
registerInstance(this, hostRef);
|
|
2716
2716
|
}
|
|
2717
2717
|
render() {
|
|
2718
|
-
return (hAsync("div", { key: '
|
|
2718
|
+
return (hAsync("div", { key: '1448b252afd426048e14a56782bad097bbc2cb04', class: "container" }, hAsync("p", { key: '0a0a0ead35d299893d307a1eb9a71e4234d066aa', class: "f-body-01" }, "This guide demonstrates the correct usage of the", hAsync("eds-link", { key: '83f480812bba9e85716bae68885b3fdc7ed241a7', label: "primary", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#primary-palette", "extra-class": "inline-block ml-4" }), "and", hAsync("eds-link", { key: '5c19085f34284f1a2aa3c525c9389611b75bfb1c', label: "support", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#support-palette", "extra-class": "inline-block ml-4" }), "color palettes."), hAsync("div", { key: 'd660baa9e8a74688099c0ec5e8c0a6a3f0519952', class: "flex" }, hAsync("div", { key: 'e3402503bc727c66c39dd6fdc38e8f41a79f6fda', class: "w-full" }, hAsync("ul", { key: '0b797f5b7339979cedb7fe29ecfa6ea36c656df7', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, primary$1.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[150px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } })))))), hAsync("div", { key: '36362208d138fa0e1d892f52c0f2e8d063dedfd2', class: "w-full" }, hAsync("ul", { key: '5cbeeaf57b89f04f55e0a0c289d6d4b3ea3f5a64', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, support.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[90px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } }))))))), hAsync("p", { key: '9b409f7d4d271ebd6334d1a973e3a3e4c329ab9b', class: "f-body-01" }, "This guide demonstrates the correct usage of the", hAsync("eds-link", { key: '1b4b5713f609774b37e2a84ae992098f4412da6b', label: "purple", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#primary-palette", "extra-class": "inline-block ml-4" }), "and", hAsync("eds-link", { key: '2aaef87146f0777ec614c27e5c309a862a32008a', label: "support", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#support-palette", "extra-class": "inline-block ml-4" }), "color palettes."), hAsync("div", { key: '8b0114f367da96c44094e88b642c3d80cc03eb3a', class: "flex" }, hAsync("div", { key: '0e7031b26c356592194c9590969d87f59a533b99', class: "w-full" }, hAsync("ul", { key: '9b081bf5903f907c50c3bd70b021dc1d5f13047f', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, purple$1.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[225px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } })))))), hAsync("div", { key: '7a48e557e56d0f76556bddd5c0d7348347b522e5', class: "w-full" }, hAsync("ul", { key: 'de47269f2887ede6f63d78ea27216bdfca092e00', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, support.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[90px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } }))))))), hAsync("p", { key: '6462727e41d5adbb78e6516cc514deab0c82a4ff', class: "f-body-01" }, "This guide demonstrates the correct usage of the", hAsync("eds-link", { key: '4e451a7a19184ea9febc308440f18aa9ffd7ba20', label: "blue", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#primary-palette", "extra-class": "inline-block ml-4" }), "and", hAsync("eds-link", { key: '00b0bfd638b09f74045600e1f8712ff291a9fefb', label: "support", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#support-palette", "extra-class": "inline-block ml-4" }), "color palettes."), hAsync("div", { key: 'defd084d15e5ea4ba08fc3bbd6e0b49177c5272f', class: "flex" }, hAsync("div", { key: 'd6bf7ff0ae322e935cc5757470a46ebe3d0d9044', class: "w-full" }, hAsync("ul", { key: 'e5446d344666bf651ea95740defb7ddc7a7b11c1', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, blue.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[225px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } })))))), hAsync("div", { key: 'fea82f2022e4649db4f0e7496682d1da56b081fd', class: "w-full" }, hAsync("ul", { key: 'e678cd5f9af9969b3d5832102dc37ea2b720f88a', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, support.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[90px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } }))))))), hAsync("p", { key: 'd2e63f7de74f17c40529f04195dfceab6d2064ce', class: "f-body-01" }, "This guide demonstrates the correct usage of the", hAsync("eds-link", { key: 'e038092dd9503209b495fcd19648891c8dcfd6e3', label: "redish", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#primary-palette", "extra-class": "inline-block ml-4" }), "and", hAsync("eds-link", { key: '8a08ec7cdb4f054bdf44b949da4490b6ffce4e2a', label: "support", size: "small", intent: "underline", icon: "chevron-right", url: "../color-palette/#support-palette", "extra-class": "inline-block ml-4" }), "color palettes."), hAsync("div", { key: '8d082cd4dddffb42b6d16d1c8b1269a2ba6f9b20', class: "flex" }, hAsync("div", { key: '9d5794ab3a57398babcd8d6f27df2d9ed2154c45', class: "w-full" }, hAsync("ul", { key: 'b83da37b2a99897f68c44cf5c8b910c7626f828e', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, red$1.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[225px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } })))))), hAsync("div", { key: '2842ef771db390b7e486e3926107238b3f91f7f9', class: "w-full" }, hAsync("ul", { key: '59dda1da69095cda6ca70c92dec362b7ec6ae521', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, support.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[90px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } })))))))));
|
|
2719
2719
|
}
|
|
2720
2720
|
static get cmpMeta() { return {
|
|
2721
2721
|
"$flags$": 0,
|
|
@@ -2754,7 +2754,7 @@ class DocsContent {
|
|
|
2754
2754
|
}
|
|
2755
2755
|
}
|
|
2756
2756
|
render() {
|
|
2757
|
-
return hAsync("div", { key: '
|
|
2757
|
+
return hAsync("div", { key: '4104127b2816de8034a5bde49162486930647142', class: "container" }, this.renderContent());
|
|
2758
2758
|
}
|
|
2759
2759
|
static get cmpMeta() { return {
|
|
2760
2760
|
"$flags$": 0,
|
|
@@ -2787,7 +2787,7 @@ class DocsPalettes {
|
|
|
2787
2787
|
}
|
|
2788
2788
|
}
|
|
2789
2789
|
render() {
|
|
2790
|
-
return hAsync("div", { key: '
|
|
2790
|
+
return hAsync("div", { key: 'b6a79a91f8609cc1dd6fdd09c15b33e90dea202b', class: "container" }, this.renderContent());
|
|
2791
2791
|
}
|
|
2792
2792
|
static get cmpMeta() { return {
|
|
2793
2793
|
"$flags$": 0,
|
|
@@ -2856,7 +2856,7 @@ function matomoOptOut() {
|
|
|
2856
2856
|
}
|
|
2857
2857
|
}
|
|
2858
2858
|
|
|
2859
|
-
const edsAccordionCss = ":host{display:block;width:100%}.accordion-card{border-radius:16px;padding:1.5rem;transition:all 0.4s ease;position:relative;overflow:hidden;border:1px solid rgba(0, 0, 0, 0.1)}.accordion-card-default{background:var(--brand-black);color:var(--white)}.accordion-card-default:hover{border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.accordion-card-default .accordion-title{color:var(--white)}.accordion-card-default .accordion-description{color:var(--grey-light)}.accordion-card-default .accordion-chevron{color:var(--white)}.accordion-card-default .accordion-content{color:var(--grey-light)}.accordion-card-inverse{background:var(--white);color:var(--brand-black)}.accordion-card-inverse:hover{border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.accordion-card-inverse .accordion-title{color:var(--brand-black)}.accordion-card-inverse .accordion-description{color:var(--grey-
|
|
2859
|
+
const edsAccordionCss = ":host{display:block;width:100%}.accordion-card{border-radius:16px;padding:1.5rem;transition:all 0.4s ease;position:relative;overflow:hidden;border:1px solid rgba(0, 0, 0, 0.1)}.accordion-card-default{background:var(--brand-black);color:var(--white)}.accordion-card-default:hover{border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.accordion-card-default .accordion-title{color:var(--white)}.accordion-card-default .accordion-description{color:var(--grey-light)}.accordion-card-default .accordion-chevron{color:var(--white)}.accordion-card-default .accordion-content{color:var(--grey-light)}.accordion-card-inverse{background:var(--white);color:var(--brand-black)}.accordion-card-inverse:hover{border-color:rgba(0, 255, 157, 0.4);box-shadow:0 4px 20px rgba(0, 0, 0, 0.1)}.accordion-card-inverse .accordion-title{color:var(--brand-black)}.accordion-card-inverse .accordion-description{color:var(--grey-700)}.accordion-card-inverse .accordion-chevron{color:var(--brand-black)}.accordion-card-inverse .accordion-content{color:var(--grey-700)}.accordion-header{display:flex;align-items:center;gap:1rem;cursor:pointer;width:100%;background:none;border:none;padding:0;text-align:left;-webkit-user-select:none;user-select:none}.accordion-header:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px;border-radius:8px}.accordion-icon{width:48px;height:48px;min-width:48px;display:flex;align-items:center;justify-content:center;background:rgba(0, 255, 157, 0.1);border-radius:12px;color:var(--brand-green);flex-shrink:0}.accordion-card-inverse .accordion-icon{background:rgba(0, 0, 0, 0.05);color:var(--brand-black)}.accordion-header-text{flex-grow:1;min-width:0}.accordion-title{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:1.25rem;line-height:1.4;margin:0}.accordion-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.9375rem;line-height:1.6;margin-top:0.25rem;margin-bottom:0}.accordion-chevron{flex-shrink:0;transition:transform 0.3s ease}.accordion-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows 0.4s ease}.accordion-panel.expanded{grid-template-rows:1fr}.accordion-panel-inner{overflow:hidden}.accordion-content{padding-top:1rem;font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:0.9375rem;line-height:1.6}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}@media (max-width: 768px){.accordion-card{padding:1.25rem}.accordion-icon{width:40px;height:40px;min-width:40px}.accordion-title{font-size:1.125rem}.accordion-header{gap:0.75rem}}h3,p{margin:0}";
|
|
2860
2860
|
var EdsAccordionStyle0 = edsAccordionCss;
|
|
2861
2861
|
|
|
2862
2862
|
/**
|
|
@@ -2914,7 +2914,7 @@ class EdsAccordion {
|
|
|
2914
2914
|
'accordion-card',
|
|
2915
2915
|
`accordion-card-${this.variant}`
|
|
2916
2916
|
].join(' ');
|
|
2917
|
-
return (hAsync("div", { key: '
|
|
2917
|
+
return (hAsync("div", { key: '08061b87dfd54b49f8aa782f29e2a9c5c8bcd2ef', class: cardClasses }, hAsync("div", { key: '728033232d8e6aa348bc98d028a5bd62d32fd934', class: "accordion-header", onClick: this.handleClick, onKeyDown: this.handleKeyDown, role: "button", tabindex: 0, "aria-expanded": String(this.isExpanded), "aria-controls": "accordionSection" }, this.icon && (hAsync("div", { key: 'eeb4260c955a2d4394bc3663dc749afc45b6f87f', class: "accordion-icon" }, hAsync("eds-icon-wrapper", { key: '0896625a235bda97a098ac7b9a4ebec00e5fa587', name: this.icon, size: 24 }))), hAsync("div", { key: '3e6b85780bc597a84dc0eb5d2526f9e54c16148d', class: "accordion-header-text" }, hAsync("h3", { key: 'b5c5c0023bc23dc225183736f02683134a40da93', class: "accordion-title" }, this.heading), this.description && (hAsync("p", { key: 'eb04c90cef03a838a4f852b988f3a9984e593120', class: `accordion-description ${!this.isExpanded && this.clampText ? 'line-clamp-1' : ''}` }, this.description))), hAsync("eds-icon-wrapper", { key: '583d0bcc82a178c2a47eef586aede9c87e8ea456', name: this.toggleIcon, size: 20, class: "accordion-chevron" })), hAsync("section", { key: '8f820377d639ced2d0a4fe505452b6b408640400', id: "accordionSection", "aria-hidden": String(!this.isExpanded), class: `accordion-panel ${this.isExpanded ? 'expanded' : ''}` }, hAsync("div", { key: 'd41dc9c3ef21f14df3ca25138440356703fa35ed', class: "accordion-panel-inner" }, hAsync("div", { key: '156c3c9b139efcb964525147338ecdeeca538123', class: "accordion-content" }, hAsync("slot", { key: 'b19b54c279cca1a32b4ed0f5b0a319d87b7bf937' }))))));
|
|
2918
2918
|
}
|
|
2919
2919
|
get el() { return getElement(this); }
|
|
2920
2920
|
static get style() { return EdsAccordionStyle0; }
|
|
@@ -3048,7 +3048,7 @@ class EdsAppRoot {
|
|
|
3048
3048
|
this.combinedInitPromise = Promise.all([initKeycloakPromise, authStatusPromise]);
|
|
3049
3049
|
}
|
|
3050
3050
|
render() {
|
|
3051
|
-
return (hAsync("div", { key: '
|
|
3051
|
+
return (hAsync("div", { key: 'c9192fb7e315fa8fe41c9ee512f4573951865208' }, hAsync("eds-splash-screen", { key: 'e3d413597cc370692c593abd4017d97e1c172219', inverse: true, initPromise: this.combinedInitPromise }), hAsync("eds-login", { key: '2821e64738053db4809663aa918f98c4df358201', "keycloak-url": "http://localhost:8080", "keycloak-realm": "nigeor-realm", "keycloak-client-id": "stencil-app" }), hAsync("main", { key: '4680b74ec0f74b8060b020f726f6696b41b43a9e' }, this.isAuthenticated ? hAsync("h1", null, "Welcome, authenticated user!") : hAsync("h1", null, "Please log in."))));
|
|
3052
3052
|
}
|
|
3053
3053
|
static get cmpMeta() { return {
|
|
3054
3054
|
"$flags$": 9,
|
|
@@ -3131,7 +3131,7 @@ class EdsAvatar {
|
|
|
3131
3131
|
* @returns {JSX.Element} The rendered avatar component.
|
|
3132
3132
|
*/
|
|
3133
3133
|
render() {
|
|
3134
|
-
return (hAsync("div", { key: '
|
|
3134
|
+
return (hAsync("div", { key: '36f8cb598e0e53793ce8a49e9e2419f41ba8f160', class: this.containerClasses }, this.picture ? (hAsync("eds-img", { src: this.picture, width: 54, height: 54, sizes: "120px", alt: `${this.firstName} ${this.lastName}`, lazyload: true, withBg: true })) : (hAsync("abbr", { title: this.computedInitials || `${this.firstName} ${this.lastName}`, class: "!no-underline f-ui-01" }, this.computedInitials))));
|
|
3135
3135
|
}
|
|
3136
3136
|
static get style() { return EdsAvatarStyle0; }
|
|
3137
3137
|
static get cmpMeta() { return {
|
|
@@ -3162,7 +3162,7 @@ class EdsBlockBreak {
|
|
|
3162
3162
|
this.inverse = false;
|
|
3163
3163
|
}
|
|
3164
3164
|
render() {
|
|
3165
|
-
return hAsync("hr", { key: '
|
|
3165
|
+
return hAsync("hr", { key: '2531c44fa20745f7860e4647f77ffa038a56d832', class: `${this.inverse ? 'border-default' : 'border-softer'} my-16 inline-block w-full border-t-2` });
|
|
3166
3166
|
}
|
|
3167
3167
|
static get style() { return EdsBlockBreakStyle0; }
|
|
3168
3168
|
static get cmpMeta() { return {
|
|
@@ -3322,7 +3322,7 @@ class EdsBreadcrumb {
|
|
|
3322
3322
|
*/
|
|
3323
3323
|
render() {
|
|
3324
3324
|
const itemsToRender = this.getTruncatedItems();
|
|
3325
|
-
return (hAsync("nav", { key: '
|
|
3325
|
+
return (hAsync("nav", { key: '95c13ac07de20bc04fb57ee990e5d21f928f3a86', "aria-label": "Breadcrumb" }, hAsync("ol", { key: '2a03ff53ac27eaa5e37ddfef32e9a4fe322755dd', class: "flex items-center space-x-2" }, itemsToRender.map((item, index) => {
|
|
3326
3326
|
const isLast = index === itemsToRender.length - 1;
|
|
3327
3327
|
return (hAsync("li", { class: "flex items-center" }, !item.isHidden ? ((() => {
|
|
3328
3328
|
const { fullLabel } = this.getLabels(item, isLast);
|
|
@@ -3403,7 +3403,7 @@ const cva = (base, config)=>{
|
|
|
3403
3403
|
};
|
|
3404
3404
|
};
|
|
3405
3405
|
|
|
3406
|
-
const edsButtonCss = "/* ============================================\n EDS BUTTON - NEW EBRAINS VISUAL SYSTEM\n ============================================ */\n\n*,\n::before,\n::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: currentColor;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\n 1. Change the font styles in all browsers.\n 2. Remove the margin in Firefox and Safari.\n 3. Remove default padding in all browsers.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\n/*\n Remove the inheritance of text transform in Edge and Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n 1. Correct the inability to style clickable types in iOS and Safari.\n 2. Remove default button styles.\n */\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\np {\n margin: 0;\n}\n\n/*\n Set the default cursor for buttons.\n */\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\n Make sure disabled buttons don't get the pointer cursor.\n */\n:disabled {\n cursor: default;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n/* ============================================\n TYPOGRAPHY CLASSES\n ============================================ */\n\n.f-body-01 {\n font-family: var(--f-body-01-fontFamily);\n font-weight: var(--f-body-01-fontWeight);\n font-size: var(--f-body-01-fontSize);\n line-height: var(--f-body-01-lineHeight);\n letter-spacing: var(--f-body-01-letterSpacing);\n}\n\n.f-body-02 {\n font-family: var(--f-body-02-fontFamily);\n font-weight: var(--f-body-02-fontWeight);\n font-size: var(--f-body-02-fontSize);\n line-height: var(--f-body-02-lineHeight);\n letter-spacing: var(--f-body-02-letterSpacing);\n}\n\n.f-ui-01 {\n font-family: var(--f-ui-01-fontFamily);\n font-weight: var(--f-ui-01-fontWeight);\n font-size: var(--f-ui-01-fontSize);\n line-height: var(--f-ui-01-lineHeight);\n letter-spacing: var(--f-ui-01-letterSpacing);\n}\n\n.f-ui-02 {\n font-family: var(--f-ui-02-fontFamily);\n font-weight: var(--f-ui-02-fontWeight);\n font-size: var(--f-ui-02-fontSize);\n line-height: var(--f-ui-02-lineHeight);\n letter-spacing: var(--f-ui-02-letterSpacing);\n}\n\n/* ============================================\n BUTTON BORDER EFFECTS - NEW SYSTEM\n ============================================ */\n\n.border-inside {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 1;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(7, 20, 13, 1); /* brand-black with opacity */\n content: '';\n }\n}\n\n.border-inside-inverse {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 1;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 1); /* white border */\n content: '';\n }\n}\n\n.border-inside-pill {\n &::after {\n border-radius: 100px; /* pill shape */\n content: '';\n }\n}\n\n.border-inside-inverse.border-inside-pill {\n &::after {\n border-radius: 100px; /* pill shape for inverse border */\n }\n}\n\n/* ============================================\n LOADER SPINNER\n ============================================ */\n\n.loader {\n box-sizing: border-box;\n display: inline-block;\n height: 1rem;\n width: 1rem;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.loader {\n animation: spin 1s linear infinite;\n border-radius: 9999px;\n border: 3px solid rgba(7, 20, 13, 0.3); /* brand-black */\n border-bottom-color: #07140D; /* brand-black */\n}\n\n/* ============================================\n TRANSITIONS & EFFECTS\n ============================================ */\n\n.effect-color {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.effect-focus {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green); /* NEW: brand-green for focus */\n}\n\n.effect-focus:focus-visible {\n outline-style: solid;\n}\n\n.effect-focus-within {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green); /* NEW: brand-green for focus */\n}\n\n.effect-focus-within:focus-within {\n outline-style: solid;\n}\n\n/* ============================================\n BRAND HOVER TRANSFORM EFFECT\n ============================================ */\n.brand-hover-transform {\n transition-property: transform, box-shadow, color, background-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.brand-hover-transform:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 20px rgba(0, 255, 157, 0.3);\n}\n\n.brand-hover-transform[aria-disabled=\"true\"]:hover,\n.brand-hover-transform:disabled:hover {\n transform: none;\n box-shadow: none;\n}\n\n/* Secondary Inverse Transform Effect */\n.secondary-inverse-transform {\n transition-property: transform, background-color, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.secondary-inverse-transform:hover {\n transform: translateY(-2px);\n}\n\n.secondary-inverse-transform[aria-disabled=\"true\"]:hover,\n.secondary-inverse-transform:disabled:hover {\n transform: none;\n}\n\n/* ============================================\n UTILITY CLASSES\n ============================================ */\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.static {\n position: static;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.inset-0 {\n inset: 0rem;\n}\n\n.inset-x-16 {\n left: 1rem;\n right: 1rem;\n}\n\n/* ============================================\n POSITIONING\n ============================================ */\n\n.-top-8 {\n top: -0.5rem;\n}\n\n.left-0 {\n left: 0rem;\n}\n\n.left-1\\/2 {\n left: 50%;\n}\n\n.left-4 {\n left: 0.25rem;\n}\n\n.left-\\[4px\\] {\n left: 4px;\n}\n\n.right-0 {\n right: 0rem;\n}\n\n.right-4 {\n right: 0.25rem;\n}\n\n.right-8 {\n right: 0.5rem;\n}\n\n.right-\\[6px\\] {\n right: 6px;\n}\n\n.top-0 {\n top: 0rem;\n}\n\n.top-1\\/2 {\n top: 50%;\n}\n\n/* ============================================\n SPACING\n ============================================ */\n\n.m-0 {\n margin: 0rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-16 {\n margin-left: -1rem;\n}\n\n.-mr-16 {\n margin-right: -1rem;\n}\n\n.ml-0 {\n margin-left: 0rem;\n}\n\n.ml-4 {\n margin-left: 0.25rem;\n}\n\n.ml-64 {\n margin-left: 4rem;\n}\n\n.ml-8 {\n margin-left: 0.5rem;\n}\n\n.ml-auto {\n margin-left: auto;\n}\n\n.mr-4 {\n margin-right: 0.25rem;\n}\n\n.mr-8 {\n margin-right: 0.5rem;\n}\n\n.mr-auto {\n margin-right: auto;\n}\n\n/* ============================================\n DISPLAY\n ============================================ */\n\n.block {\n display: block;\n}\n\n.\\!block {\n display: block !important;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.hidden {\n display: none;\n}\n\n/* ============================================\n DIMENSIONS\n ============================================ */\n\n.h-20 {\n height: 1.25rem;\n}\n\n.h-24 {\n height: 1.5rem;\n}\n\n.h-36 {\n height: 2.25rem;\n}\n\n.h-40 {\n height: 2.5rem;\n}\n\n.h-44 {\n height: 2.75rem;\n}\n\n.h-48 {\n height: 3rem;\n}\n\n.h-auto {\n height: auto;\n}\n\n.h-full {\n height: 100%;\n}\n\n.\\!min-h-20 {\n min-height: 1.25rem !important;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-20 {\n width: 1.25rem;\n}\n\n.w-24 {\n width: 1.5rem;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-auto {\n width: auto;\n}\n\n/* ============================================\n FLEXBOX\n ============================================ */\n\n.flex-none {\n flex: none;\n}\n\n.grow {\n flex-grow: 1;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.resize {\n resize: both;\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-4 {\n gap: 0.25rem;\n}\n\n.gap-8 {\n gap: 0.5rem;\n}\n\n.space-x-2> :not([hidden])~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.125rem * var(--tw-space-x-reverse));\n margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse)));\n}\n\n/* ============================================\n OVERFLOW\n ============================================ */\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-x-auto {\n overflow-x: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n\n/* ============================================\n TEXT\n ============================================ */\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.break-words {\n overflow-wrap: break-word;\n}\n\n/* ============================================\n BORDERS & RADIUS - NEW SYSTEM\n ============================================ */\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: 16px;\n}\n\n.rounded-md {\n border-radius: 12px;\n}\n\n.rounded-pill {\n border-radius: 100px; /* NEW: pill shape */\n}\n\n.rounded-sm {\n border-radius: 8px;\n}\n\n.rounded-xxs {\n border-radius: 2px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-\\[\\#0034CB\\] {\n --tw-border-opacity: 1;\n border-color: rgb(0 52 203 / var(--tw-border-opacity));\n}\n\n.border-\\[\\#d2d2d2\\] {\n --tw-border-opacity: 1;\n border-color: rgb(210 210 210 / var(--tw-border-opacity));\n}\n\n.border-softest {\n border-color: var(--grey-light);\n}\n\n.border-b-softer {\n border-bottom-color: rgba(7, 20, 13, 0.1); /* NEW: brand-black */\n}\n\n/* ============================================\n BACKGROUNDS - NEW EBRAINS COLORS\n ============================================ */\n\n/* Accent backgrounds - NEW green */\n.\\!bg-accent-dark {\n background-color: var(--brand-green-dark) !important; /* NEW: #00C87B */\n}\n\n.bg-accent {\n background-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.bg-accent-dark {\n background-color: var(--brand-green-dark); /* NEW: #00C87B */\n}\n\n/* Neutral backgrounds - NEW simplified greys */\n.\\!bg-darker {\n background-color: var(--grey-dark) !important; /* NEW: #7A7B7A */\n}\n\n.bg-dark {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.bg-darker {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n/* Strong backgrounds - NEW brand-black */\n.\\!bg-strong-dark {\n background-color: var(--brand-black) !important; /* NEW: #07140D */\n}\n\n.bg-strong {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.bg-strong-dark {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.bg-stronger {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.bg-strongest {\n background-color: var(--brand-black); /* NEW: #07140D (was pure black) */\n}\n\n/* Overlay */\n.bg-overlay {\n background-color: rgba(7, 20, 13, 0.25); /* NEW: brand-black overlay */\n}\n\n/* ============================================\n PADDING\n ============================================ */\n\n.p-12 {\n padding: 0.75rem;\n}\n\n.p-6 {\n padding: 0.375rem;\n}\n\n.p-8 {\n padding: 0.5rem;\n}\n\n.\\!px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n}\n\n.px-12 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.px-16 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.px-32 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.py-8 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-12 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n\n.pl-2 {\n padding-left: 0.125rem;\n}\n\n.pl-4 {\n padding-left: 0.25rem;\n}\n\n.pl-8 {\n padding-left: 0.5rem;\n}\n\n.pr-2 {\n padding-right: 0.125rem;\n}\n\n.pr-4 {\n padding-right: 0.25rem;\n}\n\n.pr-8 {\n padding-right: 0.5rem;\n}\n\n/* ============================================\n TEXT COLORS - NEW SYSTEM\n ============================================ */\n\n.\\!text-current {\n color: currentColor !important;\n}\n\n.text-accent {\n color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-default {\n color: var(--brand-black); /* NEW: #07140D (was pure black) */\n}\n\n.text-inverse {\n color: var(--white);\n}\n\n.text-light {\n color: var(--grey-dark); /* NEW: simplified to grey-dark */\n}\n\n\n.text-lightest {\n color: var(--grey-light); /* NEW: simplified to grey-dark */\n}\n\n/* ============================================\n OPACITY\n ============================================ */\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-20 {\n opacity: 20;\n}\n\n/* ============================================\n SHADOWS - NEW SYSTEM\n ============================================ */\n\n.shadow {\n --tw-shadow: 0 1px 3px rgba(7, 20, 13, 0.1); /* NEW: brand-black */\n --tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-accent {\n --tw-shadow: 0 0 16px rgba(0, 255, 157, 0.5); /* NEW: brand-green glow */\n --tw-shadow-colored: 0 0 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.underline-offset-4 {\n text-underline-offset: 0.2em;\n}\n\n.\\@container {\n container-type: inline-size;\n}\n\n/* ============================================\n PSEUDO-ELEMENT EFFECTS\n ============================================ */\n\n.after\\:effect-opacity::after {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.even\\:bg-inverse-softer:nth-child(even) {\n background-color: rgba(255, 255, 255, .15);\n}\n\n.invalid\\:text-lightest:invalid {\n color: var(--grey-dark); /* NEW: simplified */\n}\n\n/* ============================================\n INTERACTIVE STATES - NEW COLORS\n ============================================ */\n\n.focus-within\\:bg-transparent:focus-within {\n background-color: transparent;\n}\n\n/* Hover states with NEW colors */\n\n.hover\\:border-0::hover {\n border-width: 0px;\n}\n\n.hover\\:border-accent::hover {\n border-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.hover\\:text-default:hover {\n color: var(--brand-black);\n}\n\n.hover\\:text-light:hover {\n color: var(--grey-dark);\n}\n\n.hover\\:text-inverse:hover {\n color: var(--white);\n}\n\n\n.hover\\:bg-accent:hover {\n background-color: var(--brand-green); /* NEW: #00C87B */\n}\n\n.hover\\:bg-accent-dark:hover {\n background-color: var(--brand-green-dark); /* NEW: #00C87B */\n}\n\n.hover\\:bg-dark:hover {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.hover\\:bg-darker:hover {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.hover\\:bg-default:hover {\n background-color: var(--grey-light);\n}\n\n.hover\\:bg-inverse:hover {\n background-color: var(--white);\n}\n\n.hover\\:bg-strong-dark:hover {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.hover\\:bg-transparent:hover {\n background-color: transparent;\n}\n\n.hover\\:bg-strongest:hover {\n background-color: var(--brand-black);\n}\n\n.hover\\:text-default:hover {\n color: var(--brand-black); /* NEW: #07140D */\n}\n\n.hover\\:text-lighter:hover {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.hover\\:\\!underline:hover {\n text-decoration-line: underline !important;\n}\n\n.hover\\:no-underline:hover {\n text-decoration-line: none;\n}\n\n.hover\\:shadow-hover:hover {\n --tw-shadow: 0 8px 24px rgba(7, 20, 13, 0.2); /* NEW: brand-black */\n --tw-shadow-colored: 0 8px 24px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:shadow-none:focus {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n/* ============================================\n DISABLED STATES - NEW COLORS\n ============================================ */\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:bg-dark:disabled {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.disabled\\:text-lightest:disabled {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:cursor-not-allowed[aria-disabled=\"true\"] {\n cursor: not-allowed;\n}\n\n.aria-disabled\\:\\!border-transparent[aria-disabled=\"true\"] {\n border-color: transparent !important;\n}\n\n.aria-disabled\\:bg-dark[aria-disabled=\"true\"] {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.aria-disabled\\:bg-transparent[aria-disabled=\"true\"] {\n background-color: transparent;\n}\n\n.aria-disabled\\:text-light[aria-disabled=\"true\"] {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:text-lightest[aria-disabled=\"true\"] {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:line-through[aria-disabled=\"true\"] {\n text-decoration-line: line-through;\n}\n\n.aria-disabled\\:shadow-none[aria-disabled=\"true\"] {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.aria-current-page\\:bg-darker[aria-current=\"page\"] {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n/* ============================================\n AFTER PSEUDO-ELEMENTS\n ============================================ */\n\n.after\\:absolute::after {\n position: absolute;\n}\n\n.after\\:inset-0::after {\n inset: 0rem;\n}\n\n.after\\:inset-x-0::after {\n left: 0rem;\n right: 0rem;\n}\n\n.after\\:bottom-0::after {\n bottom: 0rem;\n}\n\n.after\\:left-16::after {\n left: 1rem;\n}\n\n.after\\:right-16::after {\n right: 1rem;\n}\n\n.after\\:z-10::after {\n z-index: 10;\n}\n\n.after\\:rounded-lg::after {\n border-radius: 16px;\n}\n\n.after\\:rounded-t-lg::after {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n\n.after\\:border-3::after {\n border-width: 3px;\n}\n\n.after\\:border-b-2::after {\n border-bottom-width: 2px;\n}\n\n.after\\:\\!border-transparent::after {\n border-color: transparent !important;\n}\n\n.after\\:border-accent::after {\n border-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.after\\:border-accent-dark::after {\n border-color: var(--brand-green-dark); /* NEW: #00FF9D */\n}\n\n.after\\:border-soft::after {\n border-color: var(--grey-dark);\n}\n\n.after\\:border-softest::after {\n border-color: var(--grey-light);\n}\n\n.after\\:opacity-0::after {\n opacity: 0;\n}\n\n.after\\:content-\\[\\'\\'\\]::after {\n --tw-content: '';\n content: var(--tw-content);\n}\n\n.hover\\:text-accent:hover {\n color: var(--brand-green);\n}\n\n.hover\\:after\\:\\border-accent:hover::after {\n border-color: var(--brand-green);\n}\n\n.hover\\:after\\:\\!border-transparent:hover::after {\n border-color: transparent !important;\n}\n\n.hover\\:after\\:opacity-100:hover::after {\n opacity: 1;\n}\n\n.focus-visible\\:after\\:opacity-100:focus-visible::after {\n opacity: 1;\n}\n\n.aria-disabled\\:after\\:\\!border-transparent[aria-disabled=\"true\"]::after {\n border-color: transparent !important;\n}\n\n.aria-disabled\\:after\\:\\!border-0[aria-disabled=\"true\"]::after {\n border-width: 0 !important;\n}\n\n.hover\\:before\\:opacity-100:hover::before {\n opacity: 1;\n}\n\n/* ============================================\n CTA BUTTON STYLES\n ============================================ */\n\n/* CTA link style */\n.cta-link {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-01-fontSize);\n color: var(--grey-dark);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.cta-link:hover {\n color: var(--brand-green);\n}\n\n/* CTA brand link style - always green */\n.cta-link-brand {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-02-fontSize);\n color: var(--brand-green);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.cta-link-brand:hover {\n color: var(--brand-green-dark);\n}\n\n@media (min-width: 750px) {\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:flex {\n display: flex;\n }\n}";
|
|
3406
|
+
const edsButtonCss = "/* ============================================\n EDS BUTTON - NEW EBRAINS VISUAL SYSTEM\n ============================================ */\n\n*,\n::before,\n::after {\n box-sizing: border-box;\n border-width: 0;\n border-style: solid;\n border-color: currentColor;\n}\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\n 1. Change the font styles in all browsers.\n 2. Remove the margin in Firefox and Safari.\n 3. Remove default padding in all browsers.\n */\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n font-size: 100%;\n font-weight: inherit;\n line-height: inherit;\n letter-spacing: inherit;\n color: inherit;\n margin: 0;\n padding: 0;\n}\n\n/*\n Remove the inheritance of text transform in Edge and Firefox.\n */\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n 1. Correct the inability to style clickable types in iOS and Safari.\n 2. Remove default button styles.\n */\nbutton,\ninput:where([type='button']),\ninput:where([type='reset']),\ninput:where([type='submit']) {\n -webkit-appearance: button;\n /* 1 */\n background-color: transparent;\n /* 2 */\n background-image: none;\n /* 2 */\n}\n\np {\n margin: 0;\n}\n\n/*\n Set the default cursor for buttons.\n */\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\n Make sure disabled buttons don't get the pointer cursor.\n */\n:disabled {\n cursor: default;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n/* ============================================\n TYPOGRAPHY CLASSES\n ============================================ */\n\n.f-body-01 {\n font-family: var(--f-body-01-fontFamily);\n font-weight: var(--f-body-01-fontWeight);\n font-size: var(--f-body-01-fontSize);\n line-height: var(--f-body-01-lineHeight);\n letter-spacing: var(--f-body-01-letterSpacing);\n}\n\n.f-body-02 {\n font-family: var(--f-body-02-fontFamily);\n font-weight: var(--f-body-02-fontWeight);\n font-size: var(--f-body-02-fontSize);\n line-height: var(--f-body-02-lineHeight);\n letter-spacing: var(--f-body-02-letterSpacing);\n}\n\n.f-ui-01 {\n font-family: var(--f-ui-01-fontFamily);\n font-weight: var(--f-ui-01-fontWeight);\n font-size: var(--f-ui-01-fontSize);\n line-height: var(--f-ui-01-lineHeight);\n letter-spacing: var(--f-ui-01-letterSpacing);\n}\n\n.f-ui-02 {\n font-family: var(--f-ui-02-fontFamily);\n font-weight: var(--f-ui-02-fontWeight);\n font-size: var(--f-ui-02-fontSize);\n line-height: var(--f-ui-02-lineHeight);\n letter-spacing: var(--f-ui-02-letterSpacing);\n}\n\n/* ============================================\n BUTTON BORDER EFFECTS - NEW SYSTEM\n ============================================ */\n\n.border-inside {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 1;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(7, 20, 13, 1); /* brand-black with opacity */\n content: '';\n }\n}\n\n.border-inside-inverse {\n position: relative;\n\n &::after {\n pointer-events: none;\n position: absolute;\n inset: 0rem;\n z-index: 1;\n border-radius: 8px;\n border-width: 2px;\n border-color: rgba(255, 255, 255, 1); /* white border */\n content: '';\n }\n}\n\n.border-inside-pill {\n &::after {\n border-radius: 100px; /* pill shape */\n content: '';\n }\n}\n\n.border-inside-inverse.border-inside-pill {\n &::after {\n border-radius: 100px; /* pill shape for inverse border */\n }\n}\n\n/* ============================================\n LOADER SPINNER\n ============================================ */\n\n.loader {\n box-sizing: border-box;\n display: inline-block;\n height: 1rem;\n width: 1rem;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.loader {\n animation: spin 1s linear infinite;\n border-radius: 9999px;\n border: 3px solid rgba(7, 20, 13, 0.3); /* brand-black */\n border-bottom-color: #07140D; /* brand-black */\n}\n\n/* ============================================\n TRANSITIONS & EFFECTS\n ============================================ */\n\n.effect-color {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.effect-focus {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green); /* NEW: brand-green for focus */\n}\n\n.effect-focus:focus-visible {\n outline-style: solid;\n}\n\n.effect-focus-within {\n outline-width: 3px;\n outline-offset: 2px;\n outline-color: var(--brand-green); /* NEW: brand-green for focus */\n}\n\n.effect-focus-within:focus-within {\n outline-style: solid;\n}\n\n/* ============================================\n BRAND HOVER TRANSFORM EFFECT\n ============================================ */\n.brand-hover-transform {\n transition-property: transform, box-shadow, color, background-color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.brand-hover-transform:hover {\n transform: translateY(-2px);\n box-shadow: 0 8px 20px rgba(0, 255, 157, 0.3);\n}\n\n.brand-hover-transform[aria-disabled=\"true\"]:hover,\n.brand-hover-transform:disabled:hover {\n transform: none;\n box-shadow: none;\n}\n\n/* Secondary Inverse Transform Effect */\n.secondary-inverse-transform {\n transition-property: transform, background-color, color;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n}\n\n.secondary-inverse-transform:hover {\n transform: translateY(-2px);\n}\n\n.secondary-inverse-transform[aria-disabled=\"true\"]:hover,\n.secondary-inverse-transform:disabled:hover {\n transform: none;\n}\n\n/* ============================================\n UTILITY CLASSES\n ============================================ */\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n}\n\n.pointer-events-none {\n pointer-events: none;\n}\n\n.static {\n position: static;\n}\n\n.fixed {\n position: fixed;\n}\n\n.absolute {\n position: absolute;\n}\n\n.relative {\n position: relative;\n}\n\n.sticky {\n position: sticky;\n}\n\n.inset-0 {\n inset: 0rem;\n}\n\n.inset-x-16 {\n left: 1rem;\n right: 1rem;\n}\n\n/* ============================================\n POSITIONING\n ============================================ */\n\n.-top-8 {\n top: -0.5rem;\n}\n\n.left-0 {\n left: 0rem;\n}\n\n.left-1\\/2 {\n left: 50%;\n}\n\n.left-4 {\n left: 0.25rem;\n}\n\n.left-\\[4px\\] {\n left: 4px;\n}\n\n.right-0 {\n right: 0rem;\n}\n\n.right-4 {\n right: 0.25rem;\n}\n\n.right-8 {\n right: 0.5rem;\n}\n\n.right-\\[6px\\] {\n right: 6px;\n}\n\n.top-0 {\n top: 0rem;\n}\n\n.top-1\\/2 {\n top: 50%;\n}\n\n/* ============================================\n SPACING\n ============================================ */\n\n.m-0 {\n margin: 0rem;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.-ml-16 {\n margin-left: -1rem;\n}\n\n.-mr-16 {\n margin-right: -1rem;\n}\n\n.ml-0 {\n margin-left: 0rem;\n}\n\n.ml-4 {\n margin-left: 0.25rem;\n}\n\n.ml-64 {\n margin-left: 4rem;\n}\n\n.ml-8 {\n margin-left: 0.5rem;\n}\n\n.ml-auto {\n margin-left: auto;\n}\n\n.mr-4 {\n margin-right: 0.25rem;\n}\n\n.mr-8 {\n margin-right: 0.5rem;\n}\n\n.mr-auto {\n margin-right: auto;\n}\n\n/* ============================================\n DISPLAY\n ============================================ */\n\n.block {\n display: block;\n}\n\n.\\!block {\n display: block !important;\n}\n\n.inline-block {\n display: inline-block;\n}\n\n.inline {\n display: inline;\n}\n\n.flex {\n display: flex;\n}\n\n.inline-flex {\n display: inline-flex;\n}\n\n.hidden {\n display: none;\n}\n\n/* ============================================\n DIMENSIONS\n ============================================ */\n\n.h-20 {\n height: 1.25rem;\n}\n\n.h-24 {\n height: 1.5rem;\n}\n\n.h-36 {\n height: 2.25rem;\n}\n\n.h-40 {\n height: 2.5rem;\n}\n\n.h-44 {\n height: 2.75rem;\n}\n\n/* Min-height variants — used for button sizing so a label that wraps to\n two lines grows (with its py-12 padding) instead of being clipped at a\n fixed height. Single-line buttons keep the same height. */\n.min-h-36 {\n min-height: 2.25rem;\n}\n\n.min-h-44 {\n min-height: 2.75rem;\n}\n\n.h-48 {\n height: 3rem;\n}\n\n.h-auto {\n height: auto;\n}\n\n.h-full {\n height: 100%;\n}\n\n.\\!min-h-20 {\n min-height: 1.25rem !important;\n}\n\n.min-h-screen {\n min-height: 100vh;\n}\n\n.w-20 {\n width: 1.25rem;\n}\n\n.w-24 {\n width: 1.5rem;\n}\n\n.w-full {\n width: 100%;\n}\n\n.w-auto {\n width: auto;\n}\n\n/* ============================================\n FLEXBOX\n ============================================ */\n\n.flex-none {\n flex: none;\n}\n\n.grow {\n flex-grow: 1;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.resize {\n resize: both;\n}\n\n.flex-row {\n flex-direction: row;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse;\n}\n\n.flex-col {\n flex-direction: column;\n}\n\n.flex-wrap {\n flex-wrap: wrap;\n}\n\n.items-center {\n align-items: center;\n}\n\n.justify-center {\n justify-content: center;\n}\n\n.justify-between {\n justify-content: space-between;\n}\n\n.gap-4 {\n gap: 0.25rem;\n}\n\n.gap-8 {\n gap: 0.5rem;\n}\n\n.space-x-2> :not([hidden])~ :not([hidden]) {\n --tw-space-x-reverse: 0;\n margin-right: calc(0.125rem * var(--tw-space-x-reverse));\n margin-left: calc(0.125rem * calc(1 - var(--tw-space-x-reverse)));\n}\n\n/* ============================================\n OVERFLOW\n ============================================ */\n\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-x-auto {\n overflow-x: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.overflow-y-scroll {\n overflow-y: scroll;\n}\n\n/* ============================================\n TEXT\n ============================================ */\n\n.whitespace-nowrap {\n white-space: nowrap;\n}\n\n.break-words {\n overflow-wrap: break-word;\n}\n\n/* ============================================\n BORDERS & RADIUS - NEW SYSTEM\n ============================================ */\n\n.rounded {\n border-radius: 0.25rem;\n}\n\n.rounded-full {\n border-radius: 9999px;\n}\n\n.rounded-lg {\n border-radius: 16px;\n}\n\n.rounded-md {\n border-radius: 12px;\n}\n\n.rounded-pill {\n border-radius: 100px; /* NEW: pill shape */\n}\n\n.rounded-sm {\n border-radius: 8px;\n}\n\n.rounded-xxs {\n border-radius: 2px;\n}\n\n.border {\n border-width: 1px;\n}\n\n.border-\\[\\#0034CB\\] {\n --tw-border-opacity: 1;\n border-color: rgb(0 52 203 / var(--tw-border-opacity));\n}\n\n.border-\\[\\#d2d2d2\\] {\n --tw-border-opacity: 1;\n border-color: rgb(210 210 210 / var(--tw-border-opacity));\n}\n\n.border-softest {\n border-color: var(--grey-light);\n}\n\n.border-b-softer {\n border-bottom-color: rgba(7, 20, 13, 0.1); /* NEW: brand-black */\n}\n\n/* ============================================\n BACKGROUNDS - NEW EBRAINS COLORS\n ============================================ */\n\n/* Accent backgrounds - NEW green */\n.\\!bg-accent-dark {\n background-color: var(--brand-green-dark) !important; /* NEW: #00C87B */\n}\n\n.bg-accent {\n background-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.bg-brand-light {\n background-color: var(--green-200); /* light brand tint #d3ffdc — brandLight intent */\n}\n\n.bg-accent-dark {\n background-color: var(--brand-green-dark); /* NEW: #00C87B */\n}\n\n/* Neutral backgrounds - NEW simplified greys */\n.\\!bg-darker {\n background-color: var(--grey-dark) !important; /* NEW: #7A7B7A */\n}\n\n.bg-dark {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.bg-darker {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n/* Strong backgrounds - NEW brand-black */\n.\\!bg-strong-dark {\n background-color: var(--brand-black) !important; /* NEW: #07140D */\n}\n\n.bg-strong {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.bg-strong-dark {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.bg-stronger {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.bg-strongest {\n background-color: var(--brand-black); /* NEW: #07140D (was pure black) */\n}\n\n/* Overlay */\n.bg-overlay {\n background-color: rgba(7, 20, 13, 0.25); /* NEW: brand-black overlay */\n}\n\n/* ============================================\n PADDING\n ============================================ */\n\n.p-12 {\n padding: 0.75rem;\n}\n\n.p-6 {\n padding: 0.375rem;\n}\n\n.p-8 {\n padding: 0.5rem;\n}\n\n.\\!px-0 {\n padding-left: 0rem !important;\n padding-right: 0rem !important;\n}\n\n.px-12 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n\n.px-16 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.px-32 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n\n.py-8 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-12 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n\n.pl-2 {\n padding-left: 0.125rem;\n}\n\n.pl-4 {\n padding-left: 0.25rem;\n}\n\n.pl-8 {\n padding-left: 0.5rem;\n}\n\n.pr-2 {\n padding-right: 0.125rem;\n}\n\n.pr-4 {\n padding-right: 0.25rem;\n}\n\n.pr-8 {\n padding-right: 0.5rem;\n}\n\n/* ============================================\n TEXT COLORS - NEW SYSTEM\n ============================================ */\n\n.\\!text-current {\n color: currentColor !important;\n}\n\n.text-accent {\n color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.text-current {\n color: currentColor;\n}\n\n.text-default {\n color: var(--brand-black); /* NEW: #07140D (was pure black) */\n}\n\n.text-inverse {\n color: var(--white);\n}\n\n.text-light {\n color: var(--grey-dark); /* NEW: simplified to grey-dark */\n}\n\n\n.text-lightest {\n color: var(--grey-light); /* NEW: simplified to grey-dark */\n}\n\n/* ============================================\n OPACITY\n ============================================ */\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-20 {\n opacity: 20;\n}\n\n/* ============================================\n SHADOWS - NEW SYSTEM\n ============================================ */\n\n.shadow {\n --tw-shadow: 0 1px 3px rgba(7, 20, 13, 0.1); /* NEW: brand-black */\n --tw-shadow-colored: 0 1px 3px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.shadow-accent {\n --tw-shadow: 0 0 16px rgba(0, 255, 157, 0.5); /* NEW: brand-green glow */\n --tw-shadow-colored: 0 0 16px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.underline-offset-4 {\n text-underline-offset: 0.2em;\n}\n\n.\\@container {\n container-type: inline-size;\n}\n\n/* ============================================\n PSEUDO-ELEMENT EFFECTS\n ============================================ */\n\n.after\\:effect-opacity::after {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 300ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n}\n\n.even\\:bg-inverse-softer:nth-child(even) {\n background-color: rgba(255, 255, 255, .15);\n}\n\n.invalid\\:text-lightest:invalid {\n color: var(--grey-dark); /* NEW: simplified */\n}\n\n/* ============================================\n INTERACTIVE STATES - NEW COLORS\n ============================================ */\n\n.focus-within\\:bg-transparent:focus-within {\n background-color: transparent;\n}\n\n/* Hover states with NEW colors */\n\n.hover\\:border-0::hover {\n border-width: 0px;\n}\n\n.hover\\:border-accent::hover {\n border-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.hover\\:text-default:hover {\n color: var(--brand-black);\n}\n\n.hover\\:text-light:hover {\n color: var(--grey-dark);\n}\n\n.hover\\:text-inverse:hover {\n color: var(--white);\n}\n\n\n.hover\\:bg-accent:hover {\n background-color: var(--brand-green); /* NEW: #00C87B */\n}\n\n.hover\\:bg-accent-dark:hover {\n background-color: var(--brand-green-dark); /* NEW: #00C87B */\n}\n\n.hover\\:bg-dark:hover {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.hover\\:bg-darker:hover {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.hover\\:bg-default:hover {\n background-color: var(--grey-light);\n}\n\n.hover\\:bg-inverse:hover {\n background-color: var(--white);\n}\n\n.hover\\:bg-strong-dark:hover {\n background-color: var(--brand-black); /* NEW: #07140D */\n}\n\n.hover\\:bg-transparent:hover {\n background-color: transparent;\n}\n\n.hover\\:bg-strongest:hover {\n background-color: var(--brand-black);\n}\n\n.hover\\:text-default:hover {\n color: var(--brand-black); /* NEW: #07140D */\n}\n\n.hover\\:text-lighter:hover {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.hover\\:\\!underline:hover {\n text-decoration-line: underline !important;\n}\n\n.hover\\:no-underline:hover {\n text-decoration-line: none;\n}\n\n.hover\\:shadow-hover:hover {\n --tw-shadow: 0 8px 24px rgba(7, 20, 13, 0.2); /* NEW: brand-black */\n --tw-shadow-colored: 0 8px 24px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:shadow-none:focus {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.focus\\:outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n/* ============================================\n DISABLED STATES - NEW COLORS\n ============================================ */\n\n.disabled\\:cursor-not-allowed:disabled {\n cursor: not-allowed;\n}\n\n.disabled\\:bg-dark:disabled {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.disabled\\:text-lightest:disabled {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:cursor-not-allowed[aria-disabled=\"true\"] {\n cursor: not-allowed;\n}\n\n.aria-disabled\\:\\!border-transparent[aria-disabled=\"true\"] {\n border-color: transparent !important;\n}\n\n.aria-disabled\\:bg-dark[aria-disabled=\"true\"] {\n background-color: var(--grey-light); /* NEW: #ECECEC */\n}\n\n.aria-disabled\\:bg-transparent[aria-disabled=\"true\"] {\n background-color: transparent;\n}\n\n.aria-disabled\\:text-light[aria-disabled=\"true\"] {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:text-lightest[aria-disabled=\"true\"] {\n color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n.aria-disabled\\:line-through[aria-disabled=\"true\"] {\n text-decoration-line: line-through;\n}\n\n.aria-disabled\\:shadow-none[aria-disabled=\"true\"] {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n\n.aria-current-page\\:bg-darker[aria-current=\"page\"] {\n background-color: var(--grey-dark); /* NEW: #7A7B7A */\n}\n\n/* ============================================\n AFTER PSEUDO-ELEMENTS\n ============================================ */\n\n.after\\:absolute::after {\n position: absolute;\n}\n\n.after\\:inset-0::after {\n inset: 0rem;\n}\n\n.after\\:inset-x-0::after {\n left: 0rem;\n right: 0rem;\n}\n\n.after\\:bottom-0::after {\n bottom: 0rem;\n}\n\n.after\\:left-16::after {\n left: 1rem;\n}\n\n.after\\:right-16::after {\n right: 1rem;\n}\n\n.after\\:z-10::after {\n z-index: 10;\n}\n\n.after\\:rounded-lg::after {\n border-radius: 16px;\n}\n\n.after\\:rounded-t-lg::after {\n border-top-left-radius: 16px;\n border-top-right-radius: 16px;\n}\n\n.after\\:border-3::after {\n border-width: 3px;\n}\n\n.after\\:border-b-2::after {\n border-bottom-width: 2px;\n}\n\n.after\\:\\!border-transparent::after {\n border-color: transparent !important;\n}\n\n.after\\:border-accent::after {\n border-color: var(--brand-green); /* NEW: #00FF9D */\n}\n\n.after\\:border-accent-dark::after {\n border-color: var(--brand-green-dark); /* NEW: #00FF9D */\n}\n\n.after\\:border-soft::after {\n border-color: var(--grey-dark);\n}\n\n.after\\:border-softest::after {\n border-color: var(--grey-light);\n}\n\n.after\\:opacity-0::after {\n opacity: 0;\n}\n\n.after\\:content-\\[\\'\\'\\]::after {\n --tw-content: '';\n content: var(--tw-content);\n}\n\n.hover\\:text-accent:hover {\n color: var(--brand-green);\n}\n\n.hover\\:after\\:\\border-accent:hover::after {\n border-color: var(--brand-green);\n}\n\n.hover\\:after\\:\\!border-transparent:hover::after {\n border-color: transparent !important;\n}\n\n.hover\\:after\\:opacity-100:hover::after {\n opacity: 1;\n}\n\n.focus-visible\\:after\\:opacity-100:focus-visible::after {\n opacity: 1;\n}\n\n.aria-disabled\\:after\\:\\!border-transparent[aria-disabled=\"true\"]::after {\n border-color: transparent !important;\n}\n\n.aria-disabled\\:after\\:\\!border-0[aria-disabled=\"true\"]::after {\n border-width: 0 !important;\n}\n\n.hover\\:before\\:opacity-100:hover::before {\n opacity: 1;\n}\n\n/* ============================================\n CTA BUTTON STYLES\n ============================================ */\n\n/* CTA link style */\n.cta-link {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-01-fontSize);\n color: var(--grey-dark);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.cta-link:hover {\n color: var(--brand-green);\n}\n\n/* CTA brand link style - always green */\n.cta-link-brand {\n font-family: 'IBM Plex Mono', monospace;\n font-size: var(--f-ui-02-fontSize);\n color: var(--brand-green);\n text-decoration: none;\n transition: color 0.3s ease;\n display: inline-flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.cta-link-brand:hover {\n color: var(--brand-green-dark);\n}\n\n@media (min-width: 750px) {\n .md\\:w-full {\n width: 100%;\n }\n\n .md\\:flex {\n display: flex;\n }\n}";
|
|
3407
3407
|
var EdsButtonStyle0 = edsButtonCss;
|
|
3408
3408
|
|
|
3409
3409
|
/**
|
|
@@ -3429,7 +3429,10 @@ class EdsButton {
|
|
|
3429
3429
|
constructor(hostRef) {
|
|
3430
3430
|
registerInstance(this, hostRef);
|
|
3431
3431
|
this.button = cva([
|
|
3432
|
-
'relative items-center
|
|
3432
|
+
'relative items-center cursor-pointer',
|
|
3433
|
+
// Brand-green focus-visible outline (rules live in eds-button.css);
|
|
3434
|
+
// without this class keyboard focus falls back to the browser ring.
|
|
3435
|
+
'effect-focus',
|
|
3433
3436
|
'aria-disabled:text-lightest aria-disabled:bg-dark aria-disabled:cursor-not-allowed',
|
|
3434
3437
|
'disabled:text-lightest disabled:bg-dark disabled:cursor-not-allowed'
|
|
3435
3438
|
], {
|
|
@@ -3441,6 +3444,10 @@ class EdsButton {
|
|
|
3441
3444
|
ghost: '',
|
|
3442
3445
|
ghostInverse: 'text-inverse',
|
|
3443
3446
|
brand: 'bg-accent text-default hover:bg-strongest hover:text-inverse aria-disabled:shadow-none',
|
|
3447
|
+
// Light-green tint with brand-black text — an on-brand "unselected"
|
|
3448
|
+
// state (e.g. eds-rating / eds-nps) that brightens to solid brand on
|
|
3449
|
+
// hover/selection. Lives start-to-finish in the brand palette.
|
|
3450
|
+
brandLight: 'bg-brand-light text-default hover:bg-accent hover:text-default aria-disabled:shadow-none',
|
|
3444
3451
|
brandInverse: 'bg-accent text-default hover:bg-inverse hover:text-default aria-disabled:shadow-none',
|
|
3445
3452
|
neutral: 'bg-darker after:border-softest bg-inverse hover:bg-dark hover:text-light text-inverse aria-disabled:shadow-none',
|
|
3446
3453
|
cta: [
|
|
@@ -3459,8 +3466,8 @@ class EdsButton {
|
|
|
3459
3466
|
true: ''
|
|
3460
3467
|
},
|
|
3461
3468
|
size: {
|
|
3462
|
-
small: 'h-36 f-ui-02',
|
|
3463
|
-
large: 'h-44 f-ui-01'
|
|
3469
|
+
small: 'min-h-36 f-ui-02 py-8',
|
|
3470
|
+
large: 'min-h-44 f-ui-01 py-12'
|
|
3464
3471
|
},
|
|
3465
3472
|
hasIcon: {
|
|
3466
3473
|
true: '',
|
|
@@ -3633,7 +3640,7 @@ class EdsButton {
|
|
|
3633
3640
|
const loaderBottomColor = this.intent === 'primary' || this.intent === 'secondaryInverse'
|
|
3634
3641
|
? '#FFFFFF' // White for dark backgrounds
|
|
3635
3642
|
: '#07140D'; // Brand-black for light backgrounds (secondary, brand, etc.)
|
|
3636
|
-
return (hAsync(Host, { key: '
|
|
3643
|
+
return (hAsync(Host, { key: '263f3fd25c17d5f9d8ddcfcc57848d6c8e729994' }, hAsync(ElementType, { key: '9c9f68e332ca6fe14387fc239e880069596b0072', tabindex: isInteractive ? '0' : '-1', "aria-label": this.label ? undefined : this.ariaLabel, "aria-disabled": this.disabled || this.loading ? 'true' : undefined, "aria-busy": this.loading ? 'true' : undefined, disabled: this.elementType === 'button' ? this.disabled || this.loading : undefined, role: this.elementType === 'a' ? 'button' : undefined, class: `${classes || ''}`, onClick: (event) => this.handleClick(event), onKeyDown: (event) => this.handleKeyDown(event) }, this.label && (hAsync("span", { key: '285a0b07089eb7ebab3bd439000ea89c454164d0', class: `${this.loading ? 'opacity-0' : ''} ${this.icon && (this.intent !== 'cta' && this.intent !== 'cta-brand') ? (this.iconPos === 'right' ? (this.size === 'large' ? 'pr-4' : 'pr-2') : (this.size === 'large' ? 'pl-4' : 'pl-2')) : ''}`, "aria-hidden": this.loading ? 'true' : undefined }, this.label)), this.loading && (hAsync("span", { key: '36da873de3be79f2cfc3e4851dadd953e17109dc', class: "absolute inset-0 flex items-center justify-center", "aria-hidden": "true" }, hAsync("span", { key: '961913b2c22e6bd803c6639e617129843c877bfe', class: "loader", style: {
|
|
3637
3644
|
border: `3px solid ${loaderBorderColor}`,
|
|
3638
3645
|
borderBottomColor: loaderBottomColor
|
|
3639
3646
|
} }))), this.icon ? (hAsync("eds-icon-wrapper", { name: this.icon, size: 20, "aria-hidden": "true" })) : null)));
|
|
@@ -3728,7 +3735,7 @@ class EdsCardApp {
|
|
|
3728
3735
|
}; }
|
|
3729
3736
|
}
|
|
3730
3737
|
|
|
3731
|
-
const edsCardCtaCss = ":host{display:flex;height:100%}.cta-container{height:auto;text-align:center;border-radius:16px;padding:1.5rem;position:relative;overflow:hidden;display:flex;flex-direction:column;flex-grow:1;justify-content:
|
|
3738
|
+
const edsCardCtaCss = ":host{display:flex;height:100%}.cta-container{height:auto;text-align:center;border-radius:16px;padding:1.5rem;position:relative;overflow:hidden;display:flex;flex-direction:column;flex-grow:1;justify-content:flex-start}.cta-container-default{background-color:var(--brand-black);border:1px solid rgba(0, 255, 157, 0.25)}.cta-container-default .cta-title{color:var(--white)}.cta-container-default .cta-description{color:var(--grey-light)}.cta-container-default .cta-link{color:var(--grey-dark)}.cta-container-inverse{background-color:var(--white);border:1px solid rgba(0, 255, 157, 0.15)}.cta-container-inverse .cta-title{color:var(--brand-black)}.cta-container-inverse .cta-description{color:var(--grey-dark)}.cta-container-inverse .cta-link{color:var(--grey-dark)}.cta-container::before{content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at center, rgba(0, 255, 157, 0.1) 0%, transparent 50%);animation:rotate 20s linear infinite;pointer-events:none}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.cta-content{position:relative;z-index:1;width:100%;flex-grow:1;display:flex;flex-direction:column}.cta-title{font-family:'Inter', var(--f-heading-fontFamily);font-weight:300;font-size:clamp(1.5rem, 4vw, 2rem);letter-spacing:-0.02em;margin-bottom:1rem;line-height:1.2}.cta-description{font-family:'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:1rem;margin:0 0 1.5rem;line-height:1.6}.cta-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem;flex-wrap:wrap;margin-top:auto}.cta-links{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}@media (max-width: 768px){.cta-container{padding:1.5rem}.cta-title{font-size:1.25rem}.cta-description{font-size:0.875rem;margin-bottom:1rem}.cta-actions{gap:0.75rem;margin-bottom:1rem}.cta-links{gap:0.75rem}}";
|
|
3732
3739
|
var EdsCardCtaStyle0 = edsCardCtaCss;
|
|
3733
3740
|
|
|
3734
3741
|
/**
|
|
@@ -3782,7 +3789,7 @@ class EdsCardCta {
|
|
|
3782
3789
|
const primaryButtonIntent = this.variant === 'default' ? 'brandInverse' : 'brand';
|
|
3783
3790
|
const secondaryButtonIntent = this.variant === 'default' ? 'secondaryInverse' : 'secondary';
|
|
3784
3791
|
const linkIntent = this.variant === 'default' ? 'cta' : 'underline';
|
|
3785
|
-
return (hAsync("div", { key: 'ee2163e6096ad05dc55ac40c6626236723a23b72', class: containerClasses }, hAsync("div", { key: 'f51481133015ef5eafce48bab525cf166c000e3a', class: "cta-content" }, hAsync("h2", { key: '577441d8bc7cb4c906408faf995e106ef2779e8b', class: "cta-title", innerHTML: this.title }), hAsync("p", { key: 'b8cbcf891b95f82c3dd57f1db9335f55c1d7162c', class: "cta-description" }, this.description), hAsync("div", { key: 'f167262a521b9e15176a4fc65e3e45a8cf24feb1', class: "cta-actions" }, hAsync("eds-button", { key: '
|
|
3792
|
+
return (hAsync("div", { key: 'ee2163e6096ad05dc55ac40c6626236723a23b72', class: containerClasses }, hAsync("div", { key: 'f51481133015ef5eafce48bab525cf166c000e3a', class: "cta-content" }, hAsync("h2", { key: '577441d8bc7cb4c906408faf995e106ef2779e8b', class: "cta-title", innerHTML: this.title }), hAsync("p", { key: 'b8cbcf891b95f82c3dd57f1db9335f55c1d7162c', class: "cta-description" }, this.description), hAsync("div", { key: 'f167262a521b9e15176a4fc65e3e45a8cf24feb1', class: "cta-actions" }, hAsync("slot", { key: 'c114de9b72bf56a2bda67d21aab0a1a24efba2e4', name: "actions" }, hAsync("eds-button", { key: '75c4508fad3377ae1788bca7cda5f8315c8301a3', label: this.primaryButtonText, intent: primaryButtonIntent, icon: "arrow-right", "icon-pos": "right", size: "large", triggerClick: this.handlePrimaryClick }), this.secondaryButtonText && (hAsync("eds-button", { key: '2c6de6b1032c62619b7225d3f7cbc04617fca465', label: this.secondaryButtonText, intent: secondaryButtonIntent, size: "large", triggerClick: this.handleSecondaryClick })))), this.parsedLinks && this.parsedLinks.length > 0 && (hAsync("div", { key: 'a78f81632c85cb729d738b0bb533d260bc7e3727', class: "cta-links" }, this.parsedLinks.map((link, index) => (hAsync("eds-link", { key: index, label: link.label, url: link.url, intent: linkIntent }))))))));
|
|
3786
3793
|
}
|
|
3787
3794
|
get el() { return getElement(this); }
|
|
3788
3795
|
static get style() { return EdsCardCtaStyle0; }
|
|
@@ -3831,7 +3838,7 @@ class EdsCardDesc {
|
|
|
3831
3838
|
return this.truncate && this.truncateLines ? `line-clamp-${this.truncateLines}` : '';
|
|
3832
3839
|
}
|
|
3833
3840
|
render() {
|
|
3834
|
-
return (hAsync("p", { key: '
|
|
3841
|
+
return (hAsync("p", { key: 'd7d9f5d40d82700388753a165a998574bd69e674', class: `f-body-02 ${this.intent === 'secondary' ? 'text-inverse' : 'text-default'}` }, hAsync("span", { key: 'bff2551896e726ce02a78b448a0e3f2a3df0c697', class: this.getTruncateClass() }, this.description)));
|
|
3835
3842
|
}
|
|
3836
3843
|
static get style() { return EdsCardDescStyle0; }
|
|
3837
3844
|
static get cmpMeta() { return {
|
|
@@ -3878,7 +3885,7 @@ class EdsCardFeature {
|
|
|
3878
3885
|
'feature-card',
|
|
3879
3886
|
`feature-card-${this.variant}`
|
|
3880
3887
|
].join(' ');
|
|
3881
|
-
return (hAsync("div", { key: '
|
|
3888
|
+
return (hAsync("div", { key: 'f76c056bbca7b38892cdecf56291fe3882c9e3bb', class: cardClasses }, this.icon && (hAsync("div", { key: '9e22a5f6c5e30b55c4bac84f5f11f773b1b37ab9', class: "feature-icon" }, hAsync("eds-icon-wrapper", { key: '64154c38f3655cb55f14c2963a62ead699d8a533', name: this.icon, size: 24 }))), hAsync("h3", { key: '99ed95a90796dbb6baa3f73cb2830fcd0954328c', class: "feature-title" }, this.title), hAsync("p", { key: 'f91109a10f62a58d8b650987fbbf1a5a4f68beaa', class: "feature-description" }, this.description), this.url && (hAsync("eds-link", { key: 'b94b57e5385da9db54a3767d0413349000add755', label: this.linkText, url: this.url, intent: "cta", icon: "arrow-right", "icon-pos": "right" }))));
|
|
3882
3889
|
}
|
|
3883
3890
|
get el() { return getElement(this); }
|
|
3884
3891
|
static get style() { return EdsCardFeatureStyle0; }
|
|
@@ -3989,7 +3996,7 @@ class EdsCardGeneric {
|
|
|
3989
3996
|
this.isHovered = false;
|
|
3990
3997
|
}
|
|
3991
3998
|
render() {
|
|
3992
|
-
return (hAsync("article", { key: '
|
|
3999
|
+
return (hAsync("article", { key: '6efb0c2c0c3d196b9759307bb98f4bf1e12504d5', class: this.articleClasses(), onClick: this.url ? () => this.handleClick() : undefined, onMouseEnter: this.url ? () => this.handleMouseEnter() : undefined, onMouseLeave: this.url ? () => this.handleMouseLeave() : undefined }, this.icon && (hAsync("div", { key: '9c29cae822923b524668da65f3e341f9626d7e95', class: "card-icon-wrapper" }, hAsync("eds-icon-wrapper", { key: '104a3551d3d8b910528dd43e8a12494faf4764a0', name: this.icon, size: 32 }))), hAsync("div", { key: 'cc9d326aa6e55d1ed26b73f46d5fbb8087d55bf0', class: "p-12 flex flex-col grow" }, this.parsedTags && this.parsedTags.length > 0 && (hAsync("div", { key: 'f740e184ec400d6083d04e4fa99259aa061c5dbf', class: "flex mb-12 gap-x-4" }, this.parsedTags.map((tag, index) => (hAsync("eds-tag", { key: index, intent: tag.intent, label: tag.label, size: tag.size }))))), hAsync("eds-card-title", { key: 'e263ce9bd116857648439bf9f356fc110e048547', title: this.title, url: this.url, intent: this.intent, size: this.titleSize }), this.description && (hAsync("div", { key: 'aa6687dc61c548dd52e2d2f3eb9598f85c2af0a5', class: "mt-8" }, this.description && (hAsync("eds-card-desc", { key: '8b82f70b5dc513396d08affc4958d9c1040583d6', "truncate-lines": "3", description: this.description, intent: this.intent })))), hAsync("slot", { key: 'ff4d0ba6184b01b80e44c78a7cccec124f2b1706', name: "card" }), this.url && (hAsync("div", { key: '889b5fbaf026df0e826626020ff201d06f047cc8', class: `flex items-center justify-between mt-auto pt-16 ${this.getLearnMoreColor()}` }, hAsync("span", { key: '3a5b5d603a7f3d852b5e92ba57f7214f7b9754ec', class: "f-ui-01" }, "Learn more"), hAsync("eds-icon-wrapper", { key: 'de15571bd4892f72646c205b14105f328d5a596d', name: this.isHovered ? 'arrow-right' : 'arrow-up-right', size: 32 }))))));
|
|
3993
4000
|
}
|
|
3994
4001
|
get el() { return getElement(this); }
|
|
3995
4002
|
static get style() { return EdsCardGenericStyle0; }
|
|
@@ -4064,7 +4071,7 @@ class EdsCardHero {
|
|
|
4064
4071
|
`hero-card-${this.variant}`,
|
|
4065
4072
|
this.url ? 'hero-card-clickable' : ''
|
|
4066
4073
|
].filter(Boolean).join(' ');
|
|
4067
|
-
return (hAsync("div", { key: '
|
|
4074
|
+
return (hAsync("div", { key: 'c92f2acc8065b4142b28ca213abbb646e61f44fc', class: cardClasses, onClick: () => this.handleClick() }, hAsync("div", { key: '38b8ec832d05a4891646ac31f24d32f62c5ac2e1', class: "card-category" }, this.category), hAsync("div", { key: 'd356e4651ed9d136c72c519ecb9b484570c9b3be', class: "card-title" }, this.title), this.description && (hAsync("div", { key: '52afdf7988667f73d8725e6a5f5b7816d4b38b30', class: "card-description" }, this.description)), this.parsedTags && this.parsedTags.length > 0 && (hAsync("div", { key: 'a50fb41278d3b98da7054e0bee52d2a98ab5d8f3', class: "card-tags" }, this.parsedTags.map((tag, index) => (hAsync("span", { key: index, class: "card-tag" }, tag.label)))))));
|
|
4068
4075
|
}
|
|
4069
4076
|
get el() { return getElement(this); }
|
|
4070
4077
|
static get style() { return EdsCardHeroStyle0; }
|
|
@@ -4129,7 +4136,7 @@ class EdsCardStat {
|
|
|
4129
4136
|
`stat-card-${this.variant}`,
|
|
4130
4137
|
this.url ? 'stat-card-clickable' : ''
|
|
4131
4138
|
].filter(Boolean).join(' ');
|
|
4132
|
-
const content = (hAsync("div", { key: '
|
|
4139
|
+
const content = (hAsync("div", { key: 'f1dadeadd1d893b7a33aa92772baf7245954f6e7', class: cardClasses, onClick: () => this.handleClick() }, hAsync("div", { key: '6adb8cc68740cd2dabf0bacf0af446e1499171a8', class: "stat-number" }, this.number), hAsync("div", { key: 'adc7a8ffd44bceda51fcb98f68cfc8d7e454db5f', class: "stat-label" }, this.label), this.description && (hAsync("div", { key: 'f70549244277e2c08c7bd94a1d297c00655faff5', class: "stat-description" }, this.description))));
|
|
4133
4140
|
return content;
|
|
4134
4141
|
}
|
|
4135
4142
|
get el() { return getElement(this); }
|
|
@@ -6691,7 +6698,7 @@ class EdsCodeBlock {
|
|
|
6691
6698
|
return this.code; // Fallback if language is not provided or unsupported
|
|
6692
6699
|
}
|
|
6693
6700
|
render() {
|
|
6694
|
-
return (hAsync("div", { key: '
|
|
6701
|
+
return (hAsync("div", { key: '4d73fa52c489b6995dd8a6d83c05e323bb1f5431', class: "relative bg-strongest rounded-sm" }, hAsync("div", { key: 'c0df3237009310833b417f5ede5b7c204f2752bc', class: "text-inverse flex justify-between items-center p-8" }, this.language ? (hAsync("span", { class: "f-ui-03" }, this.language.toUpperCase())) : (hAsync("pre", { class: "bg-stronger pl-8", role: "region", "aria-label": "Code block without language" }, hAsync("code", { innerHTML: this.getHighlightedCode() }))), hAsync("span", { key: '016505a0749baaa52c6e4aa77f00b4da31e7ec45', "aria-hidden": "true", class: "w-20 h-20 mt-8" }, hAsync("eds-icon-wrapper", { key: '21474f1b28af95251aca639c349aaac489d8519b', name: this.copied ? 'checkmark-filled' : 'copy', onClick: () => this.copyToClipboard() })), hAsync("span", { key: '64450529ad3cf3dab7e74f8455307cdb3298bbc4', class: "sr-only" }, "Copy Code")), this.language && (hAsync("pre", { key: 'affcb4719ef29d7ed9ed676eab975c98ceca31fa', class: `language-${this.language} bg-stronger pl-8 pb-8`, role: "region", "aria-label": `Code block in ${this.language}` }, hAsync("code", { key: '43fa1b80c2e02233076c4da15a5aa04f0b49bfc3', innerHTML: this.getHighlightedCode() })))));
|
|
6695
6702
|
}
|
|
6696
6703
|
get el() { return getElement(this); }
|
|
6697
6704
|
static get style() { return EdsCodeBlockStyle0; }
|
|
@@ -6739,7 +6746,7 @@ class EdsCookiesPreference {
|
|
|
6739
6746
|
}
|
|
6740
6747
|
}
|
|
6741
6748
|
render() {
|
|
6742
|
-
return (hAsync("div", { key: '
|
|
6749
|
+
return (hAsync("div", { key: '0a1f75fe95820dd8f994193f86b52b684f5fd240' }, hAsync("eds-link", { key: 'd3b5740fa53b30a39296b23cd95da1ad2d8d730d', size: "small", intent: this.intent, label: this.buttonText, onClick: () => this.toggleCookiesPopup() }), this.showMatomoNotice && hAsync("eds-matomo-notice", { "force-show": true, key: this.noticeKey })));
|
|
6743
6750
|
}
|
|
6744
6751
|
static get style() { return EdsCookiesPreferenceStyle0; }
|
|
6745
6752
|
static get cmpMeta() { return {
|
|
@@ -6797,6 +6804,13 @@ class EdsDropdown {
|
|
|
6797
6804
|
if (this.isOpen) {
|
|
6798
6805
|
// refresh focusables each open in case slot changed
|
|
6799
6806
|
this.focusableItems = Array.from(((_a = this.panelEl) === null || _a === void 0 ? void 0 : _a.querySelectorAll('a, button, [role="menuitem"]')) || []);
|
|
6807
|
+
// The panel declares role="menu"; slotted links/buttons need
|
|
6808
|
+
// role="menuitem" or screen readers announce an empty menu.
|
|
6809
|
+
this.focusableItems.forEach((item) => {
|
|
6810
|
+
if (!item.hasAttribute('role')) {
|
|
6811
|
+
item.setAttribute('role', 'menuitem');
|
|
6812
|
+
}
|
|
6813
|
+
});
|
|
6800
6814
|
this.focusIndex = this.focusableItems.length ? 0 : -1;
|
|
6801
6815
|
this.focusItem();
|
|
6802
6816
|
}
|
|
@@ -6835,7 +6849,6 @@ class EdsDropdown {
|
|
|
6835
6849
|
const path = (e.composedPath && e.composedPath()) || [];
|
|
6836
6850
|
if (!path.includes(this.host)) {
|
|
6837
6851
|
this.closeDropdown();
|
|
6838
|
-
this.dropdown.emit({ expanded: false });
|
|
6839
6852
|
}
|
|
6840
6853
|
}
|
|
6841
6854
|
/**
|
|
@@ -6843,12 +6856,22 @@ class EdsDropdown {
|
|
|
6843
6856
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
6844
6857
|
*/
|
|
6845
6858
|
handleKeyDown(event) {
|
|
6859
|
+
var _a;
|
|
6846
6860
|
if (this.isOpen) {
|
|
6847
6861
|
const key = event.key;
|
|
6848
6862
|
switch (key) {
|
|
6849
6863
|
case 'Tab':
|
|
6864
|
+
// ARIA menu pattern: Tab does not walk the items — it closes
|
|
6865
|
+
// the menu and lets focus continue to the next element on the
|
|
6866
|
+
// page (no preventDefault on purpose).
|
|
6867
|
+
this.closeDropdown();
|
|
6868
|
+
break;
|
|
6869
|
+
case 'Escape':
|
|
6870
|
+
// Close and hand focus back to the trigger so keyboard users
|
|
6871
|
+
// can back out without committing to a Tab.
|
|
6872
|
+
event.preventDefault();
|
|
6850
6873
|
this.closeDropdown();
|
|
6851
|
-
this.
|
|
6874
|
+
(_a = this.buttonEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
6852
6875
|
break;
|
|
6853
6876
|
case 'ArrowUp':
|
|
6854
6877
|
event.preventDefault();
|
|
@@ -6860,6 +6883,16 @@ class EdsDropdown {
|
|
|
6860
6883
|
this.focusIndex = (this.focusIndex + 1) % this.focusableItems.length;
|
|
6861
6884
|
this.focusItem();
|
|
6862
6885
|
break;
|
|
6886
|
+
case 'Home':
|
|
6887
|
+
event.preventDefault();
|
|
6888
|
+
this.focusIndex = this.focusableItems.length ? 0 : -1;
|
|
6889
|
+
this.focusItem();
|
|
6890
|
+
break;
|
|
6891
|
+
case 'End':
|
|
6892
|
+
event.preventDefault();
|
|
6893
|
+
this.focusIndex = this.focusableItems.length - 1;
|
|
6894
|
+
this.focusItem();
|
|
6895
|
+
break;
|
|
6863
6896
|
}
|
|
6864
6897
|
}
|
|
6865
6898
|
}
|
|
@@ -6927,13 +6960,13 @@ class EdsDropdown {
|
|
|
6927
6960
|
* @returns {JSX.Element} The rendered dropdown component.
|
|
6928
6961
|
*/
|
|
6929
6962
|
render() {
|
|
6930
|
-
return (hAsync("div", { key: '
|
|
6963
|
+
return (hAsync("div", { key: '1ce4926a15ac67d653ef03de877e64be83f61b4e', class: "z-focus relative", ref: (el) => (this.dropdownContent = el) }, hAsync("eds-button", { key: '8b45fc57c018dd620701b2b9db5403c30f88a6ed', ref: (el) => (this.buttonEl = el), label: this.label, "aria-label": this.ariaLabel, icon: this.icon, iconSmall: false, intent: this.intent, onClick: this.handleClick, "aria-expanded": this.isOpen.toString(), "aria-haspopup": "menu", size: "small", pill: true }), hAsync("nav", { key: '35854d55ea595e35513348bf36145794b2c57007', ref: (el) => (this.panelEl = el), role: "menu", class: {
|
|
6931
6964
|
'shadow-small bg-inverse border-softest z-10 z-on-top absolute top-full mt-4 flex flex-col gap-y-4 border-2 p-8': true,
|
|
6932
6965
|
'left-4': this.dropdownPos === 'left' && this.dropdownOffset,
|
|
6933
6966
|
'left-0': this.dropdownPos === 'left' && !this.dropdownOffset,
|
|
6934
6967
|
'right-4': this.dropdownPos === 'right' && this.dropdownOffset,
|
|
6935
6968
|
'right-0': this.dropdownPos === 'right' && !this.dropdownOffset
|
|
6936
|
-
}, style: { display: this.isOpen ? 'block' : 'none' }, "aria-label": "Dropdown", "aria-hidden": !this.isOpen }, hAsync("slot", { key: '
|
|
6969
|
+
}, style: { display: this.isOpen ? 'block' : 'none' }, "aria-label": "Dropdown", "aria-hidden": !this.isOpen }, hAsync("slot", { key: 'd6b153bb5968fa958be4d96d60cce774a9a0713c' }))));
|
|
6937
6970
|
}
|
|
6938
6971
|
get host() { return getElement(this); }
|
|
6939
6972
|
static get style() { return EdsDropdownStyle0; }
|
|
@@ -7017,7 +7050,7 @@ class EdsFeedback {
|
|
|
7017
7050
|
const HeadingTag = this.headingLevel;
|
|
7018
7051
|
const levelNum = this.headingLevel.replace('h', '');
|
|
7019
7052
|
const headingClass = `f-heading-${levelNum.padStart(2, '0')} my-4`;
|
|
7020
|
-
return (hAsync("div", { key: '
|
|
7053
|
+
return (hAsync("div", { key: '5eddbd664389530e209698e5e435c853c8f50b9f', class: "grid inline" }, hAsync(HeadingTag, { key: '22d1d4a44a116f78bbfa66946d8b7a9f95779524', class: headingClass }, this.label), hAsync("p", { key: 'd3e5abefa5d0e1e32281b5088251fb9c304b8d2a', class: "f-body-01 text-light" }, this.description), hAsync("eds-rating", { key: '65f1e772ac885d20f46e147aedeb55ab2ec871fe', "rating-type": this.type, "rating-count": this.count }), this.selectedRating > 0 && this.parsedMappings[this.selectedRating - 1] && (hAsync("span", { key: 'f660ceb9889d560ec1687c6f17bdbbe6a89f90ee', class: "f-ui-04 text-lighter" }, this.parsedMappings[this.selectedRating - 1]))));
|
|
7021
7054
|
}
|
|
7022
7055
|
get el() { return getElement(this); }
|
|
7023
7056
|
static get style() { return EdsFeedbackStyle0; }
|
|
@@ -7039,53 +7072,134 @@ class EdsFeedback {
|
|
|
7039
7072
|
}; }
|
|
7040
7073
|
}
|
|
7041
7074
|
|
|
7042
|
-
const edsFooterCss = "p{margin:0}
|
|
7075
|
+
const edsFooterCss = ":host{display:block}p{margin:0}ul{list-style:none;padding:0;margin:0}.eds-footer-root{position:relative;padding:4rem 4rem 2rem;border-top:1px solid rgba(0, 0, 0, 0.06);font-family:var(--f-ui-02-fontFamily)}.eds-footer-root.theme-inverse{background-color:var(--brand-black, #000000);color:var(--grey-light, rgba(255, 255, 255, 0.7));border-top-color:rgba(255, 255, 255, 0.06)}.eds-footer-root.theme-default{background-color:var(--white, #ffffff);color:var(--grey-dark, #4b5563);border-top-color:rgba(0, 0, 0, 0.06)}.footer-container{max-width:1400px;margin:0 auto}.footer-grid{display:grid;grid-template-columns:2fr repeat(3, 1fr);gap:4rem;margin-bottom:4rem}.footer-brand-row{display:flex;align-items:center;gap:1rem}.footer-flag-link{display:inline-block;width:54px;flex-shrink:0;border-radius:4px}.footer-flag-link:focus-visible{outline:3px solid var(--brand-green);outline-offset:2px}.footer-flag-svg{height:auto;width:100%;display:block}.footer-funded{font-size:0.875rem;line-height:1.6;max-width:300px}.theme-inverse .footer-funded{color:var(--grey-dark, rgba(255, 255, 255, 0.55))}.theme-default .footer-funded{color:var(--grey-dark, #4b5563)}.footer-copyright{font-size:0.875rem;margin-top:0.75rem}.theme-inverse .footer-copyright{color:var(--grey-dark, rgba(255, 255, 255, 0.55))}.theme-default .footer-copyright{color:var(--grey-dark, #4b5563)}.footer-column-heading{font-size:0.8125rem;font-weight:500;margin:0 0 1.5rem 0}.theme-inverse .footer-column-heading{color:var(--white, #ffffff)}.theme-default .footer-column-heading{color:var(--brand-black, #111827)}.footer-column-list li{margin-bottom:0.75rem}.footer-column-list li:last-child{margin-bottom:0}.footer-link,.footer-text-item{font-size:0.875rem;text-decoration:none;transition:color 0.3s ease}.footer-link{cursor:pointer}.theme-inverse .footer-link,.theme-inverse .footer-text-item{color:var(--grey-dark, rgba(255, 255, 255, 0.55))}.theme-default .footer-link,.theme-default .footer-text-item{color:var(--grey-dark, #4b5563)}.footer-link:hover{color:var(--brand-green)}.footer-link:focus-visible{outline:2px solid var(--brand-green);outline-offset:2px;border-radius:2px}.footer-social{padding-bottom:2rem;margin-bottom:2rem}.theme-inverse .footer-social{border-bottom:1px solid rgba(255, 255, 255, 0.06)}.theme-default .footer-social{border-bottom:1px solid rgba(0, 0, 0, 0.06)}.footer-back-to-top{position:absolute;top:1.5rem;right:2rem;opacity:0;transition:opacity 75ms cubic-bezier(0.4, 0, 0.2, 1)}@media (max-width: 1200px){.footer-grid{grid-template-columns:repeat(2, 1fr);gap:3rem}}@media (max-width: 768px){.eds-footer-root{padding:3rem 2rem 2rem}.footer-grid{grid-template-columns:1fr;gap:2rem;margin-bottom:2rem}.footer-funded{max-width:none}}";
|
|
7043
7076
|
var EdsFooterStyle0 = edsFooterCss;
|
|
7044
7077
|
|
|
7045
7078
|
/**
|
|
7046
|
-
*
|
|
7047
|
-
*
|
|
7048
|
-
*
|
|
7079
|
+
* EBRAINS-wide default link columns. Used when a consumer doesn't pass
|
|
7080
|
+
* the `columns` prop. URLs are absolute so the same footer renders
|
|
7081
|
+
* correctly from any app's domain (handbook.ebrains.eu, forms.ebrains.eu,
|
|
7082
|
+
* design.ebrains.eu, …) — the previous eds-docs design used relative
|
|
7083
|
+
* paths which only worked from design.ebrains.eu itself.
|
|
7049
7084
|
*
|
|
7050
|
-
*
|
|
7051
|
-
*
|
|
7052
|
-
|
|
7053
|
-
|
|
7054
|
-
|
|
7085
|
+
* If EBRAINS adds / renames a canonical resource, change it here once
|
|
7086
|
+
* and every consumer's footer updates on the next component release.
|
|
7087
|
+
*/
|
|
7088
|
+
const DEFAULT_COLUMNS = [
|
|
7089
|
+
{
|
|
7090
|
+
heading: 'Resources',
|
|
7091
|
+
links: [
|
|
7092
|
+
{ label: 'Documentation', href: 'https://design.ebrains.eu/get-started/', external: true },
|
|
7093
|
+
{ label: 'Components', href: 'https://design.ebrains.eu/ui-components/', external: true },
|
|
7094
|
+
{ label: 'Foundations', href: 'https://design.ebrains.eu/foundations/', external: true },
|
|
7095
|
+
{ label: 'Analytics', href: 'https://design.ebrains.eu/analytics/', external: true },
|
|
7096
|
+
],
|
|
7097
|
+
},
|
|
7098
|
+
{
|
|
7099
|
+
heading: 'Community',
|
|
7100
|
+
links: [
|
|
7101
|
+
{ label: 'GitLab', href: 'https://gitlab.ebrains.eu/ri/tech-hub/ebrains-ui-ecosystem/', external: true },
|
|
7102
|
+
{ label: 'Storybook', href: 'https://storybook.design.ebrains.eu', external: true },
|
|
7103
|
+
{ label: 'Report Issues', href: 'https://gitlab.ebrains.eu/ri/tech-hub/ebrains-ui-ecosystem/-/issues', external: true },
|
|
7104
|
+
{ label: 'Contribute', href: 'https://design.ebrains.eu/get-started/contributing/', external: true },
|
|
7105
|
+
],
|
|
7106
|
+
},
|
|
7107
|
+
{
|
|
7108
|
+
heading: 'Legal',
|
|
7109
|
+
links: [
|
|
7110
|
+
{ label: 'MIT License' },
|
|
7111
|
+
{ label: 'Cookie Preferences', action: 'cookies' },
|
|
7112
|
+
],
|
|
7113
|
+
},
|
|
7114
|
+
];
|
|
7115
|
+
/**
|
|
7116
|
+
* `EdsFooter` is the EBRAINS-wide footer component.
|
|
7117
|
+
*
|
|
7118
|
+
* Renders a 4-column layout matching the eds-docs landing footer:
|
|
7119
|
+
* [ Brand (EU flag + funding text + copyright) | Resources | Community | Legal ]
|
|
7055
7120
|
*
|
|
7056
|
-
*
|
|
7057
|
-
*
|
|
7121
|
+
* Defaults are designed so a consumer that writes `<eds-footer></eds-footer>`
|
|
7122
|
+
* with no props gets the full canonical EBRAINS footer rendered — same
|
|
7123
|
+
* brand block, same link columns, same dark theme as the eds-docs
|
|
7124
|
+
* landing page. The previous minimal-strip footer is replaced; consumers
|
|
7125
|
+
* that need different link content pass the `columns` prop (array or
|
|
7126
|
+
* JSON-stringified array for HTML attribute use).
|
|
7127
|
+
*
|
|
7128
|
+
* Configurability without breakage:
|
|
7129
|
+
* - All previous props remain (`social`, `variant`, `fundedBy`,
|
|
7130
|
+
* `rightsReserved`, `enableScrollTop`, `enableCookiesSettings`,
|
|
7131
|
+
* `cookiesPreferences`, `backToTopAriaLabel`). Their meanings are
|
|
7132
|
+
* preserved.
|
|
7133
|
+
* - New `columns` prop is optional — omit it for the defaults.
|
|
7134
|
+
* - The `enableCookiesSettings` toggle now decides whether any column
|
|
7135
|
+
* link with `action: 'cookies'` is rendered (default false; pass
|
|
7136
|
+
* true to surface the Cookie Preferences entry in the Legal column).
|
|
7058
7137
|
*/
|
|
7059
7138
|
class EdsFooter {
|
|
7060
7139
|
constructor(hostRef) {
|
|
7061
7140
|
registerInstance(this, hostRef);
|
|
7062
7141
|
this.cookies = createEvent(this, "cookies", 7);
|
|
7063
|
-
/**
|
|
7064
|
-
* Scrolls the page smoothly back to the top.
|
|
7065
|
-
* Called when the "Back to top" button is clicked.
|
|
7066
|
-
* @private
|
|
7067
|
-
*/
|
|
7068
7142
|
this.backToTop = () => {
|
|
7069
7143
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
7070
7144
|
};
|
|
7145
|
+
this.emitCookies = () => {
|
|
7146
|
+
this.cookies.emit('toggle');
|
|
7147
|
+
};
|
|
7071
7148
|
this.social = false;
|
|
7072
|
-
this.variant = '
|
|
7149
|
+
this.variant = 'inverse';
|
|
7073
7150
|
this.enableScrollTop = false;
|
|
7074
7151
|
this.fundedBy = 'EBRAINS is funded by the Horizon Europe Framework Programme.';
|
|
7075
7152
|
this.rightsReserved = `${new Date().getFullYear()} EBRAINS. All rights reserved.`;
|
|
7076
|
-
this.cookiesPreferences = '
|
|
7153
|
+
this.cookiesPreferences = 'Cookie Preferences';
|
|
7077
7154
|
this.enableCookiesSettings = false;
|
|
7078
7155
|
this.backToTopAriaLabel = 'Back to Top';
|
|
7079
|
-
this.
|
|
7156
|
+
this.columns = undefined;
|
|
7157
|
+
this.resolvedColumns = DEFAULT_COLUMNS;
|
|
7158
|
+
}
|
|
7159
|
+
componentWillLoad() {
|
|
7160
|
+
this.resolvedColumns = this.parseColumns(this.columns);
|
|
7161
|
+
}
|
|
7162
|
+
onColumnsChange(value) {
|
|
7163
|
+
this.resolvedColumns = this.parseColumns(value);
|
|
7164
|
+
}
|
|
7165
|
+
/**
|
|
7166
|
+
* Resolve the `columns` prop to a usable array.
|
|
7167
|
+
* - undefined / null → defaults
|
|
7168
|
+
* - JSON-parseable str → parsed array
|
|
7169
|
+
* - already an array → used as-is
|
|
7170
|
+
* - anything else (malformed JSON, wrong shape) → defaults + console warning
|
|
7171
|
+
*
|
|
7172
|
+
* Defensive parsing so a typo in a Hugo template's attribute doesn't
|
|
7173
|
+
* render an empty footer in production. Failure logs a warning but
|
|
7174
|
+
* keeps the footer working with sensible defaults.
|
|
7175
|
+
*/
|
|
7176
|
+
parseColumns(value) {
|
|
7177
|
+
if (value === undefined || value === null || value === '')
|
|
7178
|
+
return DEFAULT_COLUMNS;
|
|
7179
|
+
if (Array.isArray(value))
|
|
7180
|
+
return value;
|
|
7181
|
+
if (typeof value === 'string') {
|
|
7182
|
+
try {
|
|
7183
|
+
const parsed = JSON.parse(value);
|
|
7184
|
+
if (Array.isArray(parsed))
|
|
7185
|
+
return parsed;
|
|
7186
|
+
console.warn('eds-footer: `columns` JSON parsed but is not an array; using defaults');
|
|
7187
|
+
return DEFAULT_COLUMNS;
|
|
7188
|
+
}
|
|
7189
|
+
catch (e) {
|
|
7190
|
+
console.warn('eds-footer: failed to parse `columns` JSON, using defaults', e);
|
|
7191
|
+
return DEFAULT_COLUMNS;
|
|
7192
|
+
}
|
|
7193
|
+
}
|
|
7194
|
+
return DEFAULT_COLUMNS;
|
|
7080
7195
|
}
|
|
7081
7196
|
componentDidLoad() {
|
|
7082
7197
|
var _a;
|
|
7083
7198
|
this.backBtn = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#toTop');
|
|
7084
7199
|
}
|
|
7085
7200
|
handleScroll() {
|
|
7086
|
-
if (!this.backBtn)
|
|
7201
|
+
if (!this.backBtn)
|
|
7087
7202
|
return;
|
|
7088
|
-
}
|
|
7089
7203
|
const shouldShow = window.scrollY > 100 && document.body.scrollHeight > window.innerHeight;
|
|
7090
7204
|
this.backBtn.style.opacity = shouldShow ? '1' : '0';
|
|
7091
7205
|
this.backBtn.style.pointerEvents = shouldShow ? 'auto' : 'none';
|
|
@@ -7095,44 +7209,59 @@ class EdsFooter {
|
|
|
7095
7209
|
btn.setAttribute('tabindex', shouldShow ? '0' : '-1');
|
|
7096
7210
|
}
|
|
7097
7211
|
}
|
|
7098
|
-
toggleCookiesConsent() {
|
|
7099
|
-
this.cookies.emit('toggle');
|
|
7100
|
-
}
|
|
7101
7212
|
/**
|
|
7102
|
-
*
|
|
7103
|
-
*
|
|
7104
|
-
*
|
|
7213
|
+
* Render one link inside a column.
|
|
7214
|
+
* - `action: 'cookies'` → button-like anchor that fires the cookies event
|
|
7215
|
+
* - `href` present → real anchor (target=_blank when `external`)
|
|
7216
|
+
* - neither → plain text span (e.g. "MIT License")
|
|
7105
7217
|
*/
|
|
7218
|
+
renderLink(link, index) {
|
|
7219
|
+
if (link.action === 'cookies') {
|
|
7220
|
+
if (!this.enableCookiesSettings)
|
|
7221
|
+
return null;
|
|
7222
|
+
return (hAsync("li", { key: `cookies-${index}` }, hAsync("a", { href: "javascript:void(0)", class: "footer-link", onClick: this.emitCookies, role: "button" }, this.cookiesPreferences || link.label)));
|
|
7223
|
+
}
|
|
7224
|
+
if (link.href) {
|
|
7225
|
+
const external = link.external === true;
|
|
7226
|
+
return (hAsync("li", { key: `${link.label}-${index}` }, hAsync("a", Object.assign({ class: "footer-link", href: link.href }, (external ? { target: '_blank', rel: 'noopener noreferrer' } : {})), link.label)));
|
|
7227
|
+
}
|
|
7228
|
+
return (hAsync("li", { key: `text-${index}` }, hAsync("span", { class: "footer-text-item" }, link.label)));
|
|
7229
|
+
}
|
|
7106
7230
|
render() {
|
|
7107
7231
|
const year = new Date().getFullYear();
|
|
7108
7232
|
const rights = this.rightsReserved || `${year} EBRAINS. All rights reserved.`;
|
|
7109
7233
|
const isInverse = this.variant === 'inverse';
|
|
7110
|
-
|
|
7111
|
-
|
|
7112
|
-
|
|
7113
|
-
|
|
7114
|
-
|
|
7115
|
-
|
|
7234
|
+
// Class hooks driven by variant — the CSS file styles each
|
|
7235
|
+
// selector independently rather than relying on prop-based
|
|
7236
|
+
// inline styles, so theme tokens stay overridable from outside
|
|
7237
|
+
// via the host's CSS custom properties.
|
|
7238
|
+
const rootClasses = ['eds-footer-root', isInverse ? 'theme-inverse' : 'theme-default']
|
|
7239
|
+
.join(' ');
|
|
7240
|
+
return (hAsync("footer", { key: 'b09063376e3bd78845302473a96884bd473cea09', class: rootClasses }, this.social ? (hAsync("div", { class: "footer-social" }, hAsync("div", { class: "footer-container" }, hAsync("eds-social-networks", { variant: this.variant })))) : null, hAsync("div", { key: '3aeb8f496bb4c3c73da907ba9b9fbb72841be213', class: "footer-container" }, hAsync("div", { key: 'e7e33ce7dee8079a9aff17d45963dfaff9576121', class: "footer-grid" }, hAsync("div", { key: 'e6fc738e086774e114c5ceef1b82fea2e2840990', class: "footer-brand" }, hAsync("div", { key: '96f7030269174c122ffe0117897a79b00020dd29', class: "footer-brand-row" }, hAsync("a", { key: '5967c33efff435ceee2a45c21cae67749b91b9ba', target: "_blank", rel: "noopener noreferrer", class: "footer-flag-link", href: "https://research-and-innovation.ec.europa.eu/funding/funding-opportunities/funding-programmes-and-open-calls/horizon-europe_en", "aria-label": "Learn about Horizon Europe funding" }, hAsync("svg", { key: '3de7debe64d431152e47a4daefb7c9facf7bf951', class: "footer-flag-svg", width: "63", height: "50", viewBox: "0 0 640 480", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, hAsync("path", { key: '50e3f0c5ae41e3e7cc5689ddf01a8944a6c5d2eb', d: "M0 0h640v480H0V0z", fill: "#039" }), hAsync("path", { key: '2c0f61e6de734d7214accd10cefd3a39e31f36a1', d: "M325.032 93.15l17.513-.398-14.401 9.972 5.789 16.53L320 108.639l-13.933 10.615 5.789-16.531-14.399-9.97 17.51.396L320 76.374l5.032 16.775zm0 284.444l17.513-.398-14.401 9.972 5.789 16.53L320 393.083l-13.933 10.615 5.789-16.531-14.399-9.97 17.51.397L320 360.818l5.032 16.776zm-147.25-158.983l5.029 16.761 17.511-.397-14.4 9.969 5.79 16.533-13.933-10.616-13.932 10.616 5.788-16.531-14.401-9.971 17.511.397 5.028-16.761.004-.015.001.003.001-.003.003.015zm77.885-105.334l17.511-.397-14.401 9.971 5.79 16.531-13.932-10.614-13.933 10.615 5.788-16.531-14.4-9.971h.005l-.003-.001 17.51.397 5.033-16.775 5.032 16.775zm-52.729 52.729l17.511-.398h.002l-14.402 9.971 5.79 16.531-13.933-10.615-13.932 10.615 5.789-16.532-14.4-9.97 17.51.397 5.033-16.776 5.032 16.777zm-5.001 125.803l5.027 16.759 17.513-.397-14.401 9.971 5.79 16.531-.005-.005.003.006-13.932-10.615-13.933 10.615 5.788-16.532-14.398-9.97 17.51.396 5.029-16.759.004-.016v.003l.002-.003.003.016zm51.445 47.71l5.027 16.76 17.513-.397-14.401 9.97 5.791 16.532-.004-.004.002.004-13.933-10.615-13.933 10.615 5.788-16.532-14.398-9.97 17.51.397 5.029-16.76.004-.016v.003l.002-.003.003.016zm217.873-104.147l17.511-.397-14.401 9.969 5.79 16.533-13.934-10.616-13.931 10.616 5.789-16.533-14.399-9.969 17.509.397 5.034-16.776 5.032 16.776zm-63.958-95.997l-5.786-16.522 14.401-9.972-17.511.398-5.033-16.778-5.034 16.777-17.51-.398 14.4 9.972-5.789 16.53 13.932-10.614 13.934 10.614-.004-.007zm38.797 42.122l13.934 10.614-.004-.007-5.787-16.524 14.401-9.971-17.51.399-5.033-16.778-5.033 16.777-17.51-.398h-.001l14.399 9.972-5.787 16.529 13.931-10.613zm5.007 127.071l17.51-.397-14.4 9.971 5.79 16.531-13.933-10.614-13.932 10.615 5.788-16.531-14.401-9.971h.005l-.003-.001 17.51.397 5.033-16.775 5.033 16.775zm-51.446 47.711l17.511-.397-14.4 9.97 5.79 16.532-13.933-10.615-13.933 10.615 5.789-16.531-14.401-9.971h.002l17.51.397 5.033-16.776 5.032 16.776z", fill: "#FC0" }))), hAsync("p", { key: '9ff8e10db0e213754bfc73bcce1b3dd36bc62e30', class: "footer-funded" }, this.fundedBy)), hAsync("p", { key: 'a24c4fbfe48c4c3c8d076f24da9c84b739a982d8', class: "footer-copyright" }, "\u00A9 ", rights)), this.resolvedColumns.map((col, ci) => (hAsync("div", { class: "footer-column", key: `col-${ci}` }, hAsync("h4", { class: "footer-column-heading" }, col.heading), hAsync("ul", { class: "footer-column-list" }, (col.links || []).map((link, li) => this.renderLink(link, li)))))))), this.enableScrollTop ? (hAsync("div", { id: "toTop", class: "footer-back-to-top" }, hAsync("eds-button", { id: "backToTop", "aria-label": this.backToTopAriaLabel, intent: isInverse ? 'ghostInverse' : 'ghost', size: "large", icon: "chevron-up", onClick: this.backToTop, tabindex: "-1" }))) : null));
|
|
7116
7241
|
}
|
|
7117
7242
|
get el() { return getElement(this); }
|
|
7243
|
+
static get watchers() { return {
|
|
7244
|
+
"columns": ["onColumnsChange"]
|
|
7245
|
+
}; }
|
|
7118
7246
|
static get style() { return EdsFooterStyle0; }
|
|
7119
7247
|
static get cmpMeta() { return {
|
|
7120
7248
|
"$flags$": 9,
|
|
7121
7249
|
"$tagName$": "eds-footer",
|
|
7122
7250
|
"$members$": {
|
|
7123
7251
|
"social": [4],
|
|
7124
|
-
"variant": [
|
|
7252
|
+
"variant": [513],
|
|
7125
7253
|
"enableScrollTop": [4, "enable-scroll-top"],
|
|
7126
7254
|
"fundedBy": [1, "funded-by"],
|
|
7127
7255
|
"rightsReserved": [1, "rights-reserved"],
|
|
7128
7256
|
"cookiesPreferences": [1, "cookies-preferences"],
|
|
7129
7257
|
"enableCookiesSettings": [4, "enable-cookies-settings"],
|
|
7130
7258
|
"backToTopAriaLabel": [1, "back-to-top-aria-label"],
|
|
7131
|
-
"
|
|
7259
|
+
"columns": [1],
|
|
7260
|
+
"resolvedColumns": [32]
|
|
7132
7261
|
},
|
|
7133
7262
|
"$listeners$": [[9, "scroll", "handleScroll"]],
|
|
7134
7263
|
"$lazyBundleId$": "-",
|
|
7135
|
-
"$attrsToReflect$": []
|
|
7264
|
+
"$attrsToReflect$": [["variant", "variant"]]
|
|
7136
7265
|
}; }
|
|
7137
7266
|
}
|
|
7138
7267
|
|
|
@@ -7265,7 +7394,8 @@ isFieldVisible) {
|
|
|
7265
7394
|
delete errors[field.name];
|
|
7266
7395
|
return;
|
|
7267
7396
|
}
|
|
7268
|
-
|
|
7397
|
+
// 'content' is a presentational text block — no input, never validated.
|
|
7398
|
+
if (field.type !== 'hidden' && field.type !== 'content') {
|
|
7269
7399
|
if ((field.type === 'checkbox' || field.type === 'radio') && !field.options) {
|
|
7270
7400
|
// Single checkbox or radio without multiple options
|
|
7271
7401
|
const fieldErrors = validateSingleBox(field.name, field.required, formEl);
|
|
@@ -7332,6 +7462,46 @@ isFieldVisible) {
|
|
|
7332
7462
|
return { errors, hasError };
|
|
7333
7463
|
}
|
|
7334
7464
|
|
|
7465
|
+
/**
|
|
7466
|
+
* safeInlineFormat — the single, audited text→HTML formatter used everywhere a
|
|
7467
|
+
* form renders author-supplied text via innerHTML (form/step description, Text
|
|
7468
|
+
* Blocks, and field messages).
|
|
7469
|
+
*
|
|
7470
|
+
* SECURITY: escape-first, then a tiny whitelisted inline subset. Because all of
|
|
7471
|
+
* &, <, >, " are turned into entities BEFORE any markup is generated, author
|
|
7472
|
+
* text can never inject a tag or attribute — the only HTML produced is the
|
|
7473
|
+
* <strong>, <a> and <br> emitted here. Links are restricted to http/https/mailto
|
|
7474
|
+
* (others fall back to plain text), URLs cannot contain whitespace or a quote,
|
|
7475
|
+
* and external links get rel="noopener noreferrer".
|
|
7476
|
+
*
|
|
7477
|
+
* DO NOT reorder: escaping MUST happen before tag generation, or the guarantee
|
|
7478
|
+
* breaks. Keep this in sync with the JS mirror in
|
|
7479
|
+
* apps/live/forms-app/src/utils/descriptionFormat.ts.
|
|
7480
|
+
*
|
|
7481
|
+
* **bold** → <strong>bold</strong>
|
|
7482
|
+
* [label](url) → <a href="url" …>label</a> (http/https/mailto only)
|
|
7483
|
+
* newline → <br>
|
|
7484
|
+
*/
|
|
7485
|
+
function safeInlineFormat(text) {
|
|
7486
|
+
if (!text) {
|
|
7487
|
+
return '';
|
|
7488
|
+
}
|
|
7489
|
+
let s = String(text)
|
|
7490
|
+
.replace(/&/g, '&')
|
|
7491
|
+
.replace(/</g, '<')
|
|
7492
|
+
.replace(/>/g, '>')
|
|
7493
|
+
.replace(/"/g, '"');
|
|
7494
|
+
// bold
|
|
7495
|
+
s = s.replace(/\*\*([^*]+)\*\*/g, '<strong>$1</strong>');
|
|
7496
|
+
// links — safe schemes only; otherwise drop to the plain label
|
|
7497
|
+
s = s.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (_m, label, url) => /^(https?:|mailto:)/i.test(url)
|
|
7498
|
+
? `<a href="${url}" target="_blank" rel="noopener noreferrer" class="eds-desc-link">${label}</a>`
|
|
7499
|
+
: label);
|
|
7500
|
+
// newlines → line breaks
|
|
7501
|
+
s = s.replace(/\n/g, '<br>');
|
|
7502
|
+
return s;
|
|
7503
|
+
}
|
|
7504
|
+
|
|
7335
7505
|
/**
|
|
7336
7506
|
* Validates a field based on its type and returns an array of error messages.
|
|
7337
7507
|
* @param field - The field configuration object.
|
|
@@ -7366,7 +7536,7 @@ function getFormInitData({ initData, parsedFields, currentValues
|
|
|
7366
7536
|
return { updatedValues };
|
|
7367
7537
|
}
|
|
7368
7538
|
|
|
7369
|
-
const edsFormCss = ".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}.flex{display:flex}.flex-col{flex-direction:column}.f-body-01{font-family:var(--f-body-01-fontFamily);font-weight:var(--f-body-01-fontWeight);font-size:var(--f-body-01-fontSize);line-height:var(--f-body-01-lineHeight);letter-spacing:var(--f-body-01-letterSpacing)}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-body-01 b,.f-body-01 strong{font-weight:var(--f-body-01---bold-weight, bold)}.f-body-02 b,.f-body-02 strong{font-weight:var(--f-body-02---bold-weight, bold)}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:600;font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-heading-05{font-family:var(--f-heading-05-fontFamily);font-weight:600;font-size:var(--f-heading-05-fontSize);line-height:var(--f-heading-05-lineHeight);letter-spacing:var(--f-heading-05-letterSpacing);overflow:visible}.text-light{color:var(--grey-dark)}.rounded-xs{border-radius:4px}.rounded-sm{border-radius:8px}.border-softer{border-color:rgba(0, 0, 0, .1)}.border-2{border-width:2px}.border-t-2{border-top-width:2px}.mt-20{margin-top:1.25rem}.mt-32{margin-top:2rem}.mt-64{margin-top:4rem}.mb-32{margin-bottom:2rem}.pt-28{padding-top:1.75rem}.pt-32{padding-top:2rem}.pt-64{padding-top:4rem}.pl-8{padding-left:0.5rem}.pl-16{padding-left:1rem}.border-l-2{border-left-width:2px}.gap-y-8{row-gap:0.5rem}.gap-y-16{row-gap:1rem}.gap-y-20{row-gap:1.25rem}.gap-y-24{row-gap:1.5rem}.border-group{border-left:1px solid var(--soft-color, #ddd);padding-left:1rem}.bg-inverse{background-color:var(--white)}.form-brand{box-shadow:0 2px 12px rgba(0, 0, 0, 0.08);border-left:4px solid var(--brand-green);animation:fadeInUp 0.6s ease}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.effect-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.shadow-hover{--tw-shadow:0px 0px 16px rgba(0, 0, 0, 0.2);--tw-shadow-colored:0px 0px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.cursor-pointer{cursor:pointer}.effect-focus-within{outline-width:3px;outline-offset:2px;outline-color:var(--brand-green)}.effect-focus-within:focus-within{outline-style:solid}.relative{position:relative}.rounded-sm{border-radius:8px}.rounded-lg{border-radius:16px}.px-16{padding-left:1rem;padding-right:1rem}.pb-4{padding-bottom:0.25rem}.pb-16{padding-bottom:1rem}.p-32{padding:2rem}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.w-full{width:100%}.justify-between{justify-content:space-between}.items-center{align-items:center}@media (min-width: 750px){.md\\:flex-row-reverse{flex-direction:row-reverse}.md\\:justify-between{justify-content:space-between}.md\\:gap-y-0{row-gap:0}.md\\:w-auto{width:auto}.md\\:mt-64{margin-top:4rem}.md\\:pt-64{padding-top:4rem}}";
|
|
7539
|
+
const edsFormCss = ".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}.flex{display:flex}.flex-col{flex-direction:column}.f-body-01{font-family:var(--f-body-01-fontFamily);font-weight:var(--f-body-01-fontWeight);font-size:var(--f-body-01-fontSize);line-height:var(--f-body-01-lineHeight);letter-spacing:var(--f-body-01-letterSpacing)}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-body-01 b,.f-body-01 strong{font-weight:var(--f-body-01---bold-weight, bold)}.f-body-02 b,.f-body-02 strong{font-weight:var(--f-body-02---bold-weight, bold)}.f-heading-04{font-family:var(--f-heading-04-fontFamily);font-weight:600;font-size:var(--f-heading-04-fontSize);line-height:var(--f-heading-04-lineHeight);letter-spacing:var(--f-heading-04-letterSpacing)}.f-heading-05{font-family:var(--f-heading-05-fontFamily);font-weight:600;font-size:var(--f-heading-05-fontSize);line-height:var(--f-heading-05-lineHeight);letter-spacing:var(--f-heading-05-letterSpacing);overflow:visible}.text-light{color:var(--grey-dark)}.rounded-xs{border-radius:4px}.rounded-sm{border-radius:8px}.border-softer{border-color:rgba(0, 0, 0, .1)}.border-2{border-width:2px}.border-t-2{border-top-width:2px}.mt-20{margin-top:1.25rem}.mt-32{margin-top:2rem}.mt-64{margin-top:4rem}.mb-32{margin-bottom:2rem}.pt-28{padding-top:1.75rem}.pt-32{padding-top:2rem}.pt-64{padding-top:4rem}.pl-8{padding-left:0.5rem}.pl-16{padding-left:1rem}.border-l-2{border-left-width:2px}.gap-y-8{row-gap:0.5rem}.gap-y-16{row-gap:1rem}.gap-y-20{row-gap:1.25rem}.gap-y-24{row-gap:1.5rem}.border-group{border-left:1px solid var(--soft-color, #ddd);padding-left:1rem}.bg-inverse{background-color:var(--white)}.form-brand{box-shadow:0 2px 12px rgba(0, 0, 0, 0.08);border-left:4px solid var(--brand-green);animation:fadeInUp 0.6s ease}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.effect-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.shadow-hover{--tw-shadow:0px 0px 16px rgba(0, 0, 0, 0.2);--tw-shadow-colored:0px 0px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.cursor-pointer{cursor:pointer}.effect-focus-within{outline-width:3px;outline-offset:2px;outline-color:var(--brand-green)}.effect-focus-within:focus-within{outline-style:solid}.relative{position:relative}.rounded-sm{border-radius:8px}.rounded-lg{border-radius:16px}.px-16{padding-left:1rem;padding-right:1rem}.pb-4{padding-bottom:0.25rem}.pb-16{padding-bottom:1rem}.p-32{padding:2rem}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.w-full{width:100%}.justify-between{justify-content:space-between}.items-center{align-items:center}@media (min-width: 750px){.md\\:flex-row-reverse{flex-direction:row-reverse}.md\\:justify-between{justify-content:space-between}.md\\:gap-y-0{row-gap:0}.md\\:w-auto{width:auto}.md\\:mt-64{margin-top:4rem}.md\\:pt-64{padding-top:4rem}}.eds-desc-link{position:relative;display:inline-block;color:var(--brand-black);text-decoration:none}.eds-desc-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--brand-green);transition:width 0.3s ease}.eds-desc-link:hover::after{width:100%}.eds-desc-link:focus-visible::after{width:0}.eds-content-block{line-height:1.5;color:var(--brand-black, #07140d)}.eds-content-block strong{font-weight:600}.eds-content-block .eds-desc-link{font-weight:600}";
|
|
7370
7540
|
var EdsFormStyle0 = edsFormCss;
|
|
7371
7541
|
|
|
7372
7542
|
/**
|
|
@@ -7566,7 +7736,20 @@ class EdsForm {
|
|
|
7566
7736
|
if (this.setFormUrl && typeof window !== 'undefined') {
|
|
7567
7737
|
formData.set('form_url', window.location.href);
|
|
7568
7738
|
}
|
|
7739
|
+
// Group fields by name so we can drop values for fields hidden by a condition.
|
|
7740
|
+
// A name may be reused across mutually-exclusive conditional variants (e.g. a
|
|
7741
|
+
// `web_app_url` shown for service_type=web_app AND another for =platform), so a
|
|
7742
|
+
// value is dropped ONLY when EVERY field with that name is hidden — if any
|
|
7743
|
+
// variant is visible, its value is kept.
|
|
7744
|
+
const fieldsByName = {};
|
|
7745
|
+
this.parsedFields.forEach((f) => {
|
|
7746
|
+
(fieldsByName[f.name] = fieldsByName[f.name] || []).push(f);
|
|
7747
|
+
});
|
|
7569
7748
|
Object.keys(this.values).forEach((key) => {
|
|
7749
|
+
const fields = fieldsByName[key];
|
|
7750
|
+
if (fields && fields.length && !fields.some((f) => this.isFieldVisible(f))) {
|
|
7751
|
+
return; // all fields with this name are conditionally hidden — skip
|
|
7752
|
+
}
|
|
7570
7753
|
const value = this.values[key];
|
|
7571
7754
|
// Handle File arrays (from file inputs)
|
|
7572
7755
|
if (Array.isArray(value)) {
|
|
@@ -7861,29 +8044,53 @@ class EdsForm {
|
|
|
7861
8044
|
return map;
|
|
7862
8045
|
}
|
|
7863
8046
|
renderField(field) {
|
|
7864
|
-
var _a, _b, _c, _d;
|
|
8047
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
7865
8048
|
if (!this.isFieldVisible(field)) {
|
|
7866
8049
|
return null;
|
|
7867
8050
|
}
|
|
8051
|
+
// 0) Presentational "Text Block" — static formatted text, NOT an input.
|
|
8052
|
+
// It has no value, is never added to the submission (makeFormData only
|
|
8053
|
+
// iterates this.values) and is never validated (see formValidators). The
|
|
8054
|
+
// text runs through formatDescription, which escapes HTML first, so author
|
|
8055
|
+
// content can never inject markup — only the **bold**/[link]/newline subset.
|
|
8056
|
+
if (field.type === 'content') {
|
|
8057
|
+
const raw = ((_b = (_a = field.content) !== null && _a !== void 0 ? _a : field.label) !== null && _b !== void 0 ? _b : '');
|
|
8058
|
+
return (hAsync("div", { class: "eds-content-block f-body-02 text-default", key: field.name, innerHTML: this.formatDescription(raw) }));
|
|
8059
|
+
}
|
|
7868
8060
|
// 1) Handle rating
|
|
7869
8061
|
if (field.type === 'rating') {
|
|
7870
8062
|
// pull the current value (or zero)
|
|
7871
8063
|
const val = this.values[field.name] || 0;
|
|
7872
|
-
return (hAsync("div", { class: "form-group rating-field", key: field.name }, hAsync("div", { class: "flex justify-between" }, field && (hAsync("eds-input-label", { name: `rating-${field.name}`, label: field.label, disabled: field.disabled, required: field.required }))), hAsync("eds-rating", { id: `rating-${field.name}`, "rating-type": field.ratingType, "rating-count": field.ratingCount, "selected-rating": val, onRating: (e) => this.handleRating(e, field) }), hAsync("div", { class: "mt-6" }, hAsync("eds-input-footer", { id: `${field.name}-footer`, name: field.name, message: field.message, "error-message": (
|
|
8064
|
+
return (hAsync("div", { class: "form-group rating-field", key: field.name }, hAsync("div", { class: "flex justify-between" }, field && (hAsync("eds-input-label", { name: `rating-${field.name}`, label: field.label, disabled: field.disabled, required: field.required }))), hAsync("eds-rating", { id: `rating-${field.name}`, "rating-type": field.ratingType, "rating-count": field.ratingCount, "selected-rating": val, onRating: (e) => this.handleRating(e, field) }), hAsync("div", { class: "mt-6" }, hAsync("eds-input-footer", { id: `${field.name}-footer`, name: field.name, message: field.message, "error-message": (_c = this.errors[field.name]) === null || _c === void 0 ? void 0 : _c.join('<br/>'), error: !!this.errors[field.name], link: field.link }))));
|
|
7873
8065
|
}
|
|
7874
8066
|
else if (field.type === 'nps') {
|
|
7875
8067
|
// pull the current value (or null)
|
|
7876
8068
|
const val = this.values[field.name] !== undefined ? this.values[field.name] : null;
|
|
7877
|
-
return (hAsync("div", { class: "form-group nps-field", key: field.name }, hAsync("div", { class: "flex justify-between" }, field && (hAsync("eds-input-label", { name: `nps-${field.name}`, label: field.question, disabled: field.disabled, required: field.required }))), hAsync("eds-nps", { id: `nps-${field.name}`, "right-label": field.rightLabel, "left-label": field.leftLabel, "selected-value": val, onNps: (e) => this.handleNPS(e, field) }), hAsync("div", { class: "mt-6" }, hAsync("eds-input-footer", { id: `${field.name}-footer`, name: field.name, "error-message": (
|
|
8069
|
+
return (hAsync("div", { class: "form-group nps-field", key: field.name }, hAsync("div", { class: "flex justify-between" }, field && (hAsync("eds-input-label", { name: `nps-${field.name}`, label: field.question, disabled: field.disabled, required: field.required }))), hAsync("eds-nps", { id: `nps-${field.name}`, "right-label": field.rightLabel, "left-label": field.leftLabel, "selected-value": val, onNps: (e) => this.handleNPS(e, field) }), hAsync("div", { class: "mt-6" }, hAsync("eds-input-footer", { id: `${field.name}-footer`, name: field.name, "error-message": (_d = this.errors[field.name]) === null || _d === void 0 ? void 0 : _d.join('<br/>'), error: !!this.errors[field.name] }))));
|
|
8070
|
+
}
|
|
8071
|
+
else if (field.type === 'search-select') {
|
|
8072
|
+
return (hAsync("eds-search-select", { key: field.name, name: field.name, label: field.label, source: field.source, options: field.options, multiple: !!field.multiple, "api-base": field.apiBase || '/api/v1', placeholder: field.placeholder, required: field.required, disabled: field.disabled, hint: field.hint, message: field.message, error: !!this.errors[field.name], "error-message": (_e = this.errors[field.name]) === null || _e === void 0 ? void 0 : _e.join('<br/>'), value: this.values[field.name], onEdsinput: (e) => this.handleInput(e, field), onEdschange: (e) => this.handleChange(e, field) }));
|
|
7878
8073
|
}
|
|
7879
8074
|
else if (field.type === 'kg-web-service') {
|
|
7880
|
-
return (hAsync("eds-kg-web-services-select", { key: field.name, name: field.name, label: field.label, "api-endpoint": field.apiEndpoint || '/api/v1/kg/web-services/cached', placeholder: field.placeholder, required: field.required, disabled: field.disabled, hint: field.hint, message: field.message, error: !!this.errors[field.name], "error-message": (
|
|
8075
|
+
return (hAsync("eds-kg-web-services-select", { key: field.name, name: field.name, label: field.label, "api-endpoint": field.apiEndpoint || '/api/v1/kg/web-services/cached', placeholder: field.placeholder, required: field.required, disabled: field.disabled, hint: field.hint, message: field.message, error: !!this.errors[field.name], "error-message": (_f = this.errors[field.name]) === null || _f === void 0 ? void 0 : _f.join('<br/>'), value: this.values[field.name], size: field.size || 500, onEdsinput: (e) => this.handleInput(e, field), onEdschange: (e) => this.handleChange(e, field) }));
|
|
7881
8076
|
}
|
|
7882
|
-
return (hAsync("eds-input-field", { key: field.name, name: field.name, label: field.label, placeholder: field.placeholder, type: field.type, value: this.values[field.name], required: field.required, hint: field.hint, message: field.message, link: field.link, error: !!this.errors[field.name], errorMessage: (
|
|
8077
|
+
return (hAsync("eds-input-field", { key: field.name, name: field.name, label: field.label, placeholder: field.placeholder, type: field.type, value: this.values[field.name], required: field.required, hint: field.hint, message: field.message, link: field.link, error: !!this.errors[field.name], errorMessage: (_g = this.errors[field.name]) === null || _g === void 0 ? void 0 : _g.join('<br/>'), options: field.options, onInput: (e) => this.handleInput(e, field), onChangeNative: (e) => this.handleChange(e, field) }));
|
|
7883
8078
|
}
|
|
7884
8079
|
async getData() {
|
|
7885
8080
|
return this.makeFormData();
|
|
7886
8081
|
}
|
|
8082
|
+
/**
|
|
8083
|
+
* Render the form/step description with a small, safe subset of inline
|
|
8084
|
+
* formatting so authors can add links and emphasis:
|
|
8085
|
+
* **bold** → <strong>
|
|
8086
|
+
* [label](url) → <a> (only http/https/mailto; others render as text)
|
|
8087
|
+
* blank line / \n → paragraph / line break
|
|
8088
|
+
* HTML is escaped FIRST, so author text can never inject markup — only the
|
|
8089
|
+
* whitelisted patterns above produce tags.
|
|
8090
|
+
*/
|
|
8091
|
+
formatDescription(text) {
|
|
8092
|
+
return safeInlineFormat(text);
|
|
8093
|
+
}
|
|
7887
8094
|
render() {
|
|
7888
8095
|
const hiddenFields = this.parsedFields.filter((field) => field.type === 'hidden');
|
|
7889
8096
|
//const otherFields = this.parsedFields.filter((field) => field.type !== 'hidden');
|
|
@@ -7899,9 +8106,9 @@ class EdsForm {
|
|
|
7899
8106
|
else if (this.formStyle === 'brand') {
|
|
7900
8107
|
styleClasses = 'bg-inverse form-brand relative rounded-xs p-32';
|
|
7901
8108
|
}
|
|
7902
|
-
return (hAsync("form", { key: '
|
|
8109
|
+
return (hAsync("form", { key: '5717a276eb4bcb1b40bb6c3a3d68e2372ccf0b37', class: styleClasses, ref: (el) => (this.formEl = el), autocomplete: "on", onSubmit: this.handleSubmit }, hAsync("div", { key: '8e9fec59b6cafccabbb67381a12541f12201cc48', class: "flex flex-col gap-y-20 overflow-visible" }, this.title && (hAsync("span", { key: 'f47c68db954de63773257f9c898141be27278a00', role: "heading", class: "f-heading-05 pb-4 block" }, this.title)), this.description && hAsync("span", { key: '4287bb5f9c31cf5d3953a032de4a8c269e1feb7e', class: "f-body-02 text-light", innerHTML: this.formatDescription(this.description) }), hAsync("slot", { key: 'e9e52696eab6477354ac5ee6cbe08399483b1b37' })), hiddenFields.map((field, index) => (hAsync("eds-input", { key: index, type: "hidden", name: field.name, value: field.value }))), this.parsedGroups
|
|
7903
8110
|
.filter((g) => Array.isArray(buckets[g.id]) && buckets[g.id].length > 0)
|
|
7904
|
-
.map((g) => (hAsync("div", { class: "mt-32", key: g.id }, hAsync("span", { class: "f-body-02" }, hAsync("b", null, g.title)), hAsync("div", { class: "border-group mt-32 mb-32 flex flex-col gap-y-24" }, buckets[g.id].map((f) => this.renderField(f)))))), hAsync("div", { key: '
|
|
8111
|
+
.map((g) => (hAsync("div", { class: "mt-32", key: g.id }, hAsync("span", { class: "f-body-02" }, hAsync("b", null, g.title)), hAsync("div", { class: "border-group mt-32 mb-32 flex flex-col gap-y-24" }, buckets[g.id].map((f) => this.renderField(f)))))), hAsync("div", { key: '22d248217ea85d68e2be652ddcbfd13ed4775934', class: "flex flex-col mt-32 gap-y-24" }, buckets['__ungrouped'].map((f) => this.renderField(f))), (this.formBtn || this.clearBtn) && (hAsync("div", { key: '101f9e275d68f59b762938ff3f7d7102660b80f0', class: "mt-32 md:mt-64 flex flex-col items-center md:flex-row-reverse md:justify-between gap-y-16 md:gap-y-0" }, this.formBtn && (hAsync("eds-button", { key: '02d427d951c715634605b6977f61cee67abaa8b0', intent: this.buttonIntent, pill: true, label: this.formBtnLabel, disabled: this.isSubmitting, loading: this.isSubmitting, icon: 'arrow-right', size: "large", onClick: () => this.handleSubmit() })), this.clearBtn && (hAsync("eds-button", { key: 'abf330715df3acf2a4bdc8d4f322fc13c70c267f', intent: "neutral", pill: true, size: "large", label: this.clearBtnLabel, disabled: this.isSubmitting || !this.values || Object.keys(this.values).length === 0, onClick: (e) => this.handleClear(e) }))))));
|
|
7905
8112
|
}
|
|
7906
8113
|
get el() { return getElement(this); }
|
|
7907
8114
|
static get watchers() { return {
|
|
@@ -8031,7 +8238,7 @@ class EdsFrame {
|
|
|
8031
8238
|
}
|
|
8032
8239
|
}
|
|
8033
8240
|
render() {
|
|
8034
|
-
return (hAsync("div", { key: '
|
|
8241
|
+
return (hAsync("div", { key: 'ddbc978054f645eb990cde6bdd26647bd01eeb1a', class: this.articleClasses() }, hAsync("div", { key: '0a16fbd950742b8a75428b3705deaa03ef785a5b', class: "effect-height flex items-center justify-between py-8 px-12" }, hAsync("span", { key: '0c2a84cae101ec1e5352ed7be7b874b6ec45f37d', class: "f-ui-02" }, this.frameLabel), !this.iframeError && this.url && this.urlLabel ? (hAsync("eds-link", { label: this.urlLabel, url: this.url, intent: this.intent, class: "ml-auto", external: true, disabled: false, icon: "arrow-up-right" })) : null), hAsync("div", { key: 'c001f1b33c5136820155b0299e83b6dc49fbbd43', class: "border-softer" }, this.iframeError ? (hAsync("div", { class: "container ml-8 mr-8 mt-16" }, this.errorMessage)) : (hAsync("iframe", { src: this.frameSrc, width: "100%", height: this.getFrameHeight(), title: this.frameLabel, frameBorder: "0", allowFullScreen: true })))));
|
|
8035
8242
|
}
|
|
8036
8243
|
get el() { return getElement(this); }
|
|
8037
8244
|
static get style() { return EdsFrameStyle0; }
|
|
@@ -8215,7 +8422,7 @@ class EdsGauge {
|
|
|
8215
8422
|
const textStyle = {
|
|
8216
8423
|
fontSize: `${fontSize}px`
|
|
8217
8424
|
};
|
|
8218
|
-
return (hAsync("div", { key: '
|
|
8425
|
+
return (hAsync("div", { key: '5629f8adbc6f144aad49062883cb85ecf24fc16c', role: "progressbar", "aria-valuemin": this.valueMin, "aria-valuemax": this.valueMax, "aria-valuenow": clamped, "aria-label": `Gauge value: ${clamped} of ${this.valueMax}`, class: "relative inline-block rounded-full overflow-hidden", style: containerStyle }, hAsync("div", { key: 'd668b54b0a5f4bf260a2f1153781c59741bd8694', class: "absolute bg-inverse rounded-full", style: maskStyle }), hAsync("div", { key: 'f08feba97d30ed893a72a7e07e412aa82ea8cd3d', class: "absolute inset-0 flex items-center justify-center" }, hAsync("span", { key: '2a8dccde44677d4a4b742cd992144d6cf399ee9b', class: "f-body-01 text-default", style: textStyle }, clamped))));
|
|
8219
8426
|
}
|
|
8220
8427
|
static get style() { return EdsGaugeStyle0; }
|
|
8221
8428
|
static get cmpMeta() { return {
|
|
@@ -8235,7 +8442,7 @@ class EdsGauge {
|
|
|
8235
8442
|
}; }
|
|
8236
8443
|
}
|
|
8237
8444
|
|
|
8238
|
-
const edsGitlabContributorsCss = ".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}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.grid{display:grid}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.gap-2{gap:0.5rem;}.gap-4{gap:1rem;}.gap-6{gap:1.5rem;}.p-5{padding:1.25rem;}.p-12{padding:3rem;}.pb-2{padding-bottom:0.25rem;}.pb-4{padding-bottom:1rem;}.mb-6{margin-bottom:1.5rem;}.m-0{margin:0}.mt-auto{margin-top:auto}.w-full{width:100%}.min-w-0{min-width:0}.text-xs{font-size:0.75rem;line-height:1rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-semibold{font-weight:600}.whitespace-nowrap{white-space:nowrap}.overflow-hidden{overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.no-underline{text-decoration:none}.text-gray-600{color:var(--eds-color-gray-600, #4b5563)}.text-gray-900{color:var(--eds-color-gray-900, #111827)}.border-gray-200{border-color:var(--eds-color-gray-200, #e5e7eb)}.bg-white{background-color:var(--eds-color-white, #ffffff)}.text-primary-600{color:var(--eds-color-primary-600, #2563eb)}.hover\\:text-primary-600:hover{color:var(--eds-color-primary-600, #2563eb)}.border-primary-300{border-color:var(--eds-color-primary-300, #93c5fd)}.hover\\:border-primary-300:hover{border-color:var(--eds-color-primary-300, #93c5fd)}.text-success-600{color:var(--eds-color-success-600, #16a34a)}.text-error-600{color:var(--eds-color-error-600, #dc2626)}.border{border-width:1px}.border-b{border-bottom-width:1px}.rounded-lg{border-radius:var(--eds-radius-lg, 0.5rem);}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-colors{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.duration-200{transition-duration:200ms}.shadow-md{box-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)}.hover\\:shadow-md:hover{box-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)}.-translate-y-0\\.5{transform:translateY(-0.125rem);}.hover\\:-translate-y-0\\.5:hover{transform:translateY(-0.125rem)}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}@media (min-width: 640px){.sm\\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (min-width: 768px){.md\\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (min-width: 1024px){.lg\\:grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.lg\\:grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr))}}.contributor-card{will-change:transform, box-shadow, border-color}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.text-default{color:var(--black)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}";
|
|
8445
|
+
const edsGitlabContributorsCss = ".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}.flex{display:flex}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.grid{display:grid}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.gap-2{gap:0.5rem;}.gap-4{gap:1rem;}.gap-6{gap:1.5rem;}.p-5{padding:1.25rem;}.p-12{padding:3rem;}.pb-2{padding-bottom:0.25rem;}.pb-4{padding-bottom:1rem;}.mb-6{margin-bottom:1.5rem;}.m-0{margin:0}.mt-auto{margin-top:auto}.w-full{width:100%}.min-w-0{min-width:0}.text-xs{font-size:0.75rem;line-height:1rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-2xl{font-size:1.5rem;line-height:2rem}.font-semibold{font-weight:600}.whitespace-nowrap{white-space:nowrap}.overflow-hidden{overflow:hidden}.text-ellipsis{text-overflow:ellipsis}.no-underline{text-decoration:none}.text-gray-600{color:var(--eds-color-gray-600, #4b5563)}.text-gray-900{color:var(--eds-color-gray-900, #111827)}.border-gray-200{border-color:var(--eds-color-gray-200, #e5e7eb)}.bg-white{background-color:var(--eds-color-white, #ffffff)}.text-primary-600{color:var(--eds-color-primary-600, #2563eb)}.hover\\:text-primary-600:hover{color:var(--eds-color-primary-600, #2563eb)}.border-primary-300{border-color:var(--eds-color-primary-300, #93c5fd)}.hover\\:border-primary-300:hover{border-color:var(--eds-color-primary-300, #93c5fd)}.text-success-600{color:var(--eds-color-success-600, #16a34a)}.text-error-600{color:var(--eds-color-error-600, #dc2626)}.border{border-width:1px}.border-b{border-bottom-width:1px}.rounded-lg{border-radius:var(--eds-radius-lg, 0.5rem);}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-colors{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.duration-200{transition-duration:200ms}.shadow-md{box-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)}.hover\\:shadow-md:hover{box-shadow:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)}.-translate-y-0\\.5{transform:translateY(-0.125rem);}.hover\\:-translate-y-0\\.5:hover{transform:translateY(-0.125rem)}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}@media (min-width: 640px){.sm\\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media (min-width: 768px){.md\\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media (min-width: 1024px){.lg\\:grid-cols-4{grid-template-columns:repeat(4, minmax(0, 1fr))}.lg\\:grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr))}}.contributor-card{will-change:transform, box-shadow, border-color}.loading{position:relative;min-height:8rem;padding:1rem 1.25rem;color:var(--grey-dark, #7A7B7A);font-size:0.9375rem;border:1px solid rgba(0, 0, 0, 0.08);border-radius:0.25rem;background-color:rgba(0, 0, 0, 0.02)}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.text-default{color:var(--black)}.text-light{color:var(--grey-700)}.text-lighter{color:var(--grey-600)}";
|
|
8239
8446
|
var EdsGitlabContributorsStyle0 = edsGitlabContributorsCss;
|
|
8240
8447
|
|
|
8241
8448
|
/**
|
|
@@ -8477,7 +8684,14 @@ class EdsGitlabContributors {
|
|
|
8477
8684
|
}
|
|
8478
8685
|
render() {
|
|
8479
8686
|
if (this.loading) {
|
|
8480
|
-
|
|
8687
|
+
// Spinner placeholder mirrors eds-kg-learning-resources exactly —
|
|
8688
|
+
// same `.loading` wrapper (position: relative + min-height so the
|
|
8689
|
+
// absolutely-positioned spinner anchors inside the box instead of
|
|
8690
|
+
// escaping to the page), same eds-spinner props (sm/primary/
|
|
8691
|
+
// transparent + message-as-prop), and the same role+aria-live for
|
|
8692
|
+
// screen-reader announcement. Keep these two components in sync if
|
|
8693
|
+
// the loading affordance ever changes.
|
|
8694
|
+
return (hAsync("div", { class: "loading", role: "status", "aria-live": "polite" }, hAsync("eds-spinner", { size: "sm", variant: "primary", background: "transparent", message: "Loading contributors..." })));
|
|
8481
8695
|
}
|
|
8482
8696
|
if (this.error) {
|
|
8483
8697
|
return (hAsync("eds-alert", { message: "Error loading contributors", intent: "error" }));
|
|
@@ -8518,7 +8732,7 @@ class EdsGitlabContributors {
|
|
|
8518
8732
|
}; }
|
|
8519
8733
|
}
|
|
8520
8734
|
|
|
8521
|
-
const edsGlobalSearchCss = ":host{display:block;width:100%}p{margin:0}ol,ul,menu{list-style:none;margin:0;padding:0}.search-wrapper{position:relative;width:100%}.search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:white;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.12),\n 0 2px 8px rgba(0, 0, 0, 0.08),\n 0 0 0 1px rgba(0, 255, 157, 0.08);max-height:500px;overflow:hidden;z-index:9999;display:flex;flex-direction:column;animation:dropdownFadeIn 0.25s cubic-bezier(0.4, 0, 0.2, 1)}.dropdown-state{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:#616161;font-size:14px}.dropdown-results{list-style:none;margin:0;overflow-y:auto;overflow-x:hidden;max-height:440px}.result-item{padding:7px 7px;cursor:pointer;border-left:4px solid transparent;margin-bottom:2px;transition:all 0.25s cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden;word-wrap:break-word;word-break:break-word}.result-item:hover,.result-item--selected{background:linear-gradient(\n 90deg,\n rgba(0, 255, 157, 0.08) 0%,\n rgba(0, 255, 157, 0.03) 100%\n );border-left-color:var(--green-600);box-shadow:0 2px 8px rgba(0, 255, 157, 0.15)}.result-item:hover .result-title,.result-item--selected .result-title{color:var(--green-700)}.result-title{color:var(--black);transition:color 0.2s ease}.result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.result-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.result-badge{display:inline-block;padding:3px 8px;background:rgba(0, 255, 157, 0.12);color:var(--green-800);border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;transition:all 0.2s ease}.result-item:hover .result-badge,.result-item--selected .result-badge{background:rgba(0, 255, 157, 0.2);color:var(--green-900)}.result-url{font-size:12px;color:var(--grey-600)}.external-icon{display:inline-block;width:14px;height:14px;margin-left:4px;color:var(--green-600)}.result-snippet{font-size:13px;color:#616161;line-height:1.5;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color 0.2s ease}.result-item:hover .result-snippet,.result-item--selected .result-snippet{color:#424242}.dropdown-footer{border-top:1px solid rgba(0, 255, 157, 0.15);padding:10px 16px;background:linear-gradient(\n 180deg,\n rgba(0, 255, 157, 0.02) 0%,\n rgba(0, 255, 157, 0.05) 100%\n );flex-shrink:0}.footer-hint{font-size:11px;color:#616161;display:flex;align-items:center;gap:6px;flex-wrap:wrap}kbd{display:inline-block;padding:3px 7px;font-size:11px;font-family:monospace;line-height:1.2;font-weight:500;color:var(--green-700);background:rgba(0, 255, 157, 0.1);border:1px solid rgba(0, 200, 123, 0.3);border-radius:4px;box-shadow:0 2px 0 rgba(0, 255, 157, 0.15),\n inset 0 1px 0 rgba(255, 255, 255, 0.5)}.dropdown-results::-webkit-scrollbar{width:8px}.dropdown-results::-webkit-scrollbar-track{background:rgba(0, 255, 157, 0.05);border-radius:4px}.dropdown-results::-webkit-scrollbar-thumb{background:#33FFB8;border-radius:4px}.dropdown-results::-webkit-scrollbar-thumb:hover{background:#00FF9D}.flex{display:flex}.inline-flex{display:inline-flex}.text-center{text-align:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-error{color:var(--red-700)}.text-lighter{color:var(--grey-600)}.text-lightest{color:var(--grey-500)}.ml-4{margin-left:0.25rem}.ml-8{margin-left:0.5rem}.ml-16{margin-left:1rem}.p-16{padding:1rem}.p-64{padding:4rem}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.f-ui-03-light{font-family:var(--f-ui-03-light-fontFamily);font-weight:var(--f-ui-03-light-fontWeight);font-size:var(--f-ui-03-light-fontSize);line-height:var(--f-ui-03-light-lineHeight);letter-spacing:var(--f-ui-03-light-letterSpacing)}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}";
|
|
8735
|
+
const edsGlobalSearchCss = ":host{display:block;width:100%}p{margin:0}ol,ul,menu{list-style:none;margin:0;padding:0}.search-wrapper{position:relative;width:100%}.search-pill{display:flex;align-items:center;gap:12px;height:48px;padding:0 18px;border-radius:999px;font-family:var(--plex-sans, 'IBM Plex Sans', system-ui, sans-serif);font-size:15px;cursor:text;transition:background 120ms ease, box-shadow 120ms ease, color 120ms ease}.search-pill .search-icon{flex-shrink:0}.search-pill .search-input{flex:1;min-width:0;border:0;background:transparent;outline:none;font:inherit;color:inherit;-webkit-appearance:none;appearance:none}.search-pill .search-input::-webkit-search-cancel-button{-webkit-appearance:none}.search-pill .search-kbd{flex-shrink:0;font-family:'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;font-size:11px;font-weight:500;line-height:1;padding:3px 6px;border-radius:4px;box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.05);letter-spacing:0.02em}.search-pill:focus-within .search-kbd{display:none}.search-pill .search-clear{flex-shrink:0;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer;opacity:0.7;transition:opacity 120ms ease, background 120ms ease}.search-pill .search-clear:hover{opacity:1;background:rgba(0, 0, 0, 0.06)}.search-pill .search-clear:focus-visible{outline:none;box-shadow:0 0 0 2px var(--brand-green, #00C87B);opacity:1}.search-pill--black .search-clear:hover{background:rgba(255, 255, 255, 0.10)}.search-pill--gray{background:var(--grey-light, #ECECEC);color:var(--grey-dark, #7A7B7A);border:0}.search-pill--gray:hover{background:#E0E0E0}.search-pill--gray .search-input{color:var(--brand-black, #07140D)}.search-pill--gray .search-input::placeholder{color:var(--grey-dark, #7A7B7A)}.search-pill--gray .search-kbd{color:var(--grey-dark, #7A7B7A);background:var(--white, #FFFFFF);border:1px solid #DCDCDC}.search-pill--gray:focus-within{background:var(--white, #FFFFFF);box-shadow:0 0 0 2px var(--brand-green, #00C87B)}.search-pill--white{background:var(--white, #FFFFFF);color:var(--grey-dark, #7A7B7A);border:1px solid var(--grey-light, #ECECEC)}.search-pill--white:hover{background:#FAFAFA}.search-pill--white .search-input{color:var(--brand-black, #07140D)}.search-pill--white .search-input::placeholder{color:var(--grey-dark, #7A7B7A)}.search-pill--white .search-kbd{color:var(--grey-dark, #7A7B7A);background:var(--grey-light, #ECECEC);border:1px solid #DCDCDC}.search-pill--white:focus-within{background:var(--white, #FFFFFF);box-shadow:0 0 0 2px var(--brand-green, #00C87B)}.search-pill--black{background:var(--brand-black, #07140D);color:rgba(255, 255, 255, 0.7);border:1px solid rgba(255, 255, 255, 0.12)}.search-pill--black:hover{background:#11221A}.search-pill--black .search-input{color:var(--white, #FFFFFF)}.search-pill--black .search-input::placeholder{color:rgba(255, 255, 255, 0.55)}.search-pill--black .search-kbd{color:rgba(255, 255, 255, 0.75);background:rgba(255, 255, 255, 0.08);border:1px solid rgba(255, 255, 255, 0.15)}.search-pill--black:focus-within{background:var(--brand-black, #07140D);box-shadow:0 0 0 2px var(--brand-green, #00C87B)}.search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:white;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.12),\n 0 2px 8px rgba(0, 0, 0, 0.08),\n 0 0 0 1px rgba(0, 255, 157, 0.08);max-height:500px;overflow:hidden;z-index:9999;display:flex;flex-direction:column;animation:dropdownFadeIn 0.25s cubic-bezier(0.4, 0, 0.2, 1)}.dropdown-state{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:#616161;font-size:14px}.dropdown-results{list-style:none;margin:0;overflow-y:auto;overflow-x:hidden;max-height:440px}.result-item{padding:7px 7px;cursor:pointer;border-left:4px solid transparent;margin-bottom:2px;transition:all 0.25s cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden;word-wrap:break-word;word-break:break-word}.result-item:hover,.result-item--selected{background:linear-gradient(\n 90deg,\n rgba(0, 255, 157, 0.08) 0%,\n rgba(0, 255, 157, 0.03) 100%\n );border-left-color:var(--green-600);box-shadow:0 2px 8px rgba(0, 255, 157, 0.15)}.result-item:hover .result-title,.result-item--selected .result-title{color:var(--green-700)}.result-title{color:var(--black);transition:color 0.2s ease}.result-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.result-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.result-badge{display:inline-block;padding:3px 8px;background:rgba(0, 255, 157, 0.12);color:var(--green-800);border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;transition:all 0.2s ease}.result-badge--parent{background:rgba(120, 0, 255, 0.08);color:var(--purple-800, #6b21a8)}.result-badge--lr{background:rgba(0, 120, 255, 0.1);color:var(--blue-800, #1565c0)}.result-item:hover .result-badge,.result-item--selected .result-badge{background:rgba(0, 255, 157, 0.2);color:var(--green-900)}.result-item:hover .result-badge--parent,.result-item--selected .result-badge--parent{background:rgba(120, 0, 255, 0.15);color:var(--purple-900, #581c87)}.result-item:hover .result-badge--lr,.result-item--selected .result-badge--lr{background:rgba(0, 120, 255, 0.18);color:var(--blue-900, #0d47a1)}.result-url{font-size:12px;color:var(--grey-600)}.external-icon{display:inline-block;width:14px;height:14px;margin-left:4px;color:var(--green-600)}.result-snippet{font-size:13px;color:#616161;line-height:1.5;margin:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;transition:color 0.2s ease}.result-item:hover .result-snippet,.result-item--selected .result-snippet{color:#424242}.dropdown-footer{border-top:1px solid rgba(0, 255, 157, 0.15);padding:10px 16px;background:linear-gradient(\n 180deg,\n rgba(0, 255, 157, 0.02) 0%,\n rgba(0, 255, 157, 0.05) 100%\n );flex-shrink:0}.footer-hint{font-size:11px;color:#616161;display:flex;align-items:center;gap:6px;flex-wrap:wrap}kbd{display:inline-block;padding:3px 7px;font-size:11px;font-family:monospace;line-height:1.2;font-weight:500;color:var(--green-700);background:rgba(0, 255, 157, 0.1);border:1px solid rgba(0, 200, 123, 0.3);border-radius:4px;box-shadow:0 2px 0 rgba(0, 255, 157, 0.15),\n inset 0 1px 0 rgba(255, 255, 255, 0.5)}.dropdown-results::-webkit-scrollbar{width:8px}.dropdown-results::-webkit-scrollbar-track{background:rgba(0, 255, 157, 0.05);border-radius:4px}.dropdown-results::-webkit-scrollbar-thumb{background:#33FFB8;border-radius:4px}.dropdown-results::-webkit-scrollbar-thumb:hover{background:#00FF9D}.flex{display:flex}.inline-flex{display:inline-flex}.text-center{text-align:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.text-error{color:var(--red-700)}.text-lighter{color:var(--grey-600)}.text-lightest{color:var(--grey-500)}.ml-4{margin-left:0.25rem}.ml-8{margin-left:0.5rem}.ml-16{margin-left:1rem}.p-16{padding:1rem}.p-64{padding:4rem}.f-body-02{font-family:var(--f-body-02-fontFamily);font-weight:var(--f-body-02-fontWeight);font-size:var(--f-body-02-fontSize);line-height:var(--f-body-02-lineHeight);letter-spacing:var(--f-body-02-letterSpacing)}.f-ui-03{font-family:var(--f-ui-03-fontFamily);font-weight:var(--f-ui-03-fontWeight);font-size:var(--f-ui-03-fontSize);line-height:var(--f-ui-03-lineHeight);letter-spacing:var(--f-ui-03-letterSpacing)}.f-ui-03-light{font-family:var(--f-ui-03-light-fontFamily);font-weight:var(--f-ui-03-light-fontWeight);font-size:var(--f-ui-03-light-fontSize);line-height:var(--f-ui-03-light-lineHeight);letter-spacing:var(--f-ui-03-light-letterSpacing)}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}";
|
|
8522
8736
|
var EdsGlobalSearchStyle0 = edsGlobalSearchCss;
|
|
8523
8737
|
|
|
8524
8738
|
class EdsGlobalSearch {
|
|
@@ -8526,6 +8740,23 @@ class EdsGlobalSearch {
|
|
|
8526
8740
|
registerInstance(this, hostRef);
|
|
8527
8741
|
this.resultSelected = createEvent(this, "resultSelected", 7);
|
|
8528
8742
|
this.searchClosed = createEvent(this, "searchClosed", 7);
|
|
8743
|
+
/** Clear the current query and results; keep focus in the input so the
|
|
8744
|
+
* user can start typing again without an extra click. */
|
|
8745
|
+
this.handleClear = () => {
|
|
8746
|
+
if (this.debounceTimer) {
|
|
8747
|
+
clearTimeout(this.debounceTimer);
|
|
8748
|
+
}
|
|
8749
|
+
this.query = '';
|
|
8750
|
+
this.results = [];
|
|
8751
|
+
this.hasSearched = false;
|
|
8752
|
+
this.showDropdown = false;
|
|
8753
|
+
this.selectedIndex = -1;
|
|
8754
|
+
// Re-focus and reflect the empty value on the underlying DOM input.
|
|
8755
|
+
if (this.inputRef) {
|
|
8756
|
+
this.inputRef.value = '';
|
|
8757
|
+
this.inputRef.focus();
|
|
8758
|
+
}
|
|
8759
|
+
};
|
|
8529
8760
|
this.handleInput = (event) => {
|
|
8530
8761
|
var _a;
|
|
8531
8762
|
const target = event.target;
|
|
@@ -8558,6 +8789,7 @@ class EdsGlobalSearch {
|
|
|
8558
8789
|
this.currentOrigin = '';
|
|
8559
8790
|
this.currentSource = '';
|
|
8560
8791
|
this.authToken = '';
|
|
8792
|
+
this.variant = 'gray';
|
|
8561
8793
|
this.query = '';
|
|
8562
8794
|
this.results = [];
|
|
8563
8795
|
this.loading = false;
|
|
@@ -8567,15 +8799,26 @@ class EdsGlobalSearch {
|
|
|
8567
8799
|
this.selectedIndex = -1;
|
|
8568
8800
|
}
|
|
8569
8801
|
componentDidLoad() {
|
|
8570
|
-
//
|
|
8571
|
-
|
|
8572
|
-
|
|
8573
|
-
|
|
8802
|
+
// ⌘K / Ctrl+K focuses the search pill from anywhere on the page.
|
|
8803
|
+
// Bound here (not via @Listen) so it works across shadow boundaries.
|
|
8804
|
+
this.cmdKListener = (event) => {
|
|
8805
|
+
var _a;
|
|
8806
|
+
const isMac = navigator.platform.toUpperCase().includes('MAC');
|
|
8807
|
+
const modifier = isMac ? event.metaKey : event.ctrlKey;
|
|
8808
|
+
if (modifier && event.key.toLowerCase() === 'k') {
|
|
8809
|
+
event.preventDefault();
|
|
8810
|
+
(_a = this.inputRef) === null || _a === void 0 ? void 0 : _a.focus();
|
|
8811
|
+
}
|
|
8812
|
+
};
|
|
8813
|
+
document.addEventListener('keydown', this.cmdKListener);
|
|
8574
8814
|
}
|
|
8575
8815
|
disconnectedCallback() {
|
|
8576
8816
|
if (this.debounceTimer) {
|
|
8577
8817
|
clearTimeout(this.debounceTimer);
|
|
8578
8818
|
}
|
|
8819
|
+
if (this.cmdKListener) {
|
|
8820
|
+
document.removeEventListener('keydown', this.cmdKListener);
|
|
8821
|
+
}
|
|
8579
8822
|
}
|
|
8580
8823
|
handleDocumentClick(event) {
|
|
8581
8824
|
const path = event.composedPath();
|
|
@@ -8722,10 +8965,19 @@ class EdsGlobalSearch {
|
|
|
8722
8965
|
return this.hasSearched && !this.loading && !this.hasResults && this.query.trim();
|
|
8723
8966
|
}
|
|
8724
8967
|
render() {
|
|
8725
|
-
return (hAsync("div", { key: '
|
|
8968
|
+
return (hAsync("div", { key: '841c9a013a1c4cee9697f3465759bf638b28475e', class: "search-wrapper" }, hAsync("label", { key: 'ff1b37fff6e94019d2da63060aba77d82ee1bafb', class: `search-pill search-pill--${this.variant}`, htmlFor: "search-global" }, hAsync("svg", { key: '150aff8a31a68195e7b333b9bcfccbc3affb3901', class: "search-icon", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, hAsync("circle", { key: 'cb424f39cd5f6316056dbcc6b80d11ce8ade1410', cx: "11", cy: "11", r: "7" }), hAsync("line", { key: '004bce39d3a9ee7a53ef0e942cf986e38b76b921', x1: "20", y1: "20", x2: "16.5", y2: "16.5" })), hAsync("input", { key: '97f4c012d7152f29fac9723ced4f06207b8a2453', id: "search-global", class: "search-input", type: "search", name: "search-box-global", placeholder: this.placeholder, value: this.query, autoComplete: "off", onInput: this.handleInput, ref: (el) => (this.inputRef = el) }), this.query && this.query.length > 0 ? (hAsync("button", { type: "button", class: "search-clear", "aria-label": "Clear search", onMouseDown: (e) => e.preventDefault() /* keep focus in input */, onClick: () => this.handleClear() }, hAsync("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2.2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, hAsync("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), hAsync("line", { x1: "6", y1: "6", x2: "18", y2: "18" })))) : (hAsync("kbd", { class: "search-kbd", "aria-hidden": "true" }, "\u2318K"))), this.showDropdown && (hAsync("div", { key: '3354848b17ba065a64919defd74de0616a29c25c', class: "search-dropdown", ref: (el) => (this.dropdownRef = el) }, this.loading && (hAsync("div", { key: '5c5f731e969f60c8c3d2ce21683fec35302a2954', class: "flex text-center justify-center p-64" }, hAsync("eds-spinner", { key: '6d0b5223f03bb0ed2f83f2ab3c77cf4e116d87e7', variant: "primary", size: "sm" }))), this.error && !this.loading && (hAsync("div", { key: '9cbca9b3f62c2969478e34a654a973196a5e9187', class: "flex text-center justify-center p-16" }, hAsync("span", { key: 'ce2bd2f6c6b05fb5fdfec4da67460b72445970bc', class: "text-error f-body-02" }, this.error))), this.showEmpty && (hAsync("div", { key: 'b7d446aa72732c9932c90bb5ef08a2f27c357ae4', class: "dropdown-state" }, hAsync("eds-icon-wrapper", { key: 'ac5377b3efa4f26e10781f369843a69c3409ec83', name: "search" }), hAsync("div", { key: '774784c1dbe4c6e6eda9e8d70833d0a2a6821b4f' }, hAsync("p", { key: 'bbce9a267889eee40b54fd471f203b530de42a86', class: "f-body-02" }, "No results found"), hAsync("p", { key: 'd440e4e0ff4f59ea14eef7aa5db0692c4a2352fa', class: "f-ui-04 text-lightest" }, "Try different keywords")))), this.hasResults && !this.loading && (hAsync("ul", { key: 'b89e31f5931705e750f0f19fb159f93a05324e6d', class: "dropdown-results" }, this.results.map((result, index) => (hAsync("li", { key: result.id, "data-index": index, class: {
|
|
8726
8969
|
'result-item': true,
|
|
8727
8970
|
'result-item--selected': index === this.selectedIndex
|
|
8728
|
-
}, onClick: () => this.selectResult(result), onMouseEnter: () => (this.selectedIndex = index) }, hAsync("div", { class: "result-header" }, hAsync("span", { class: "result-title f-body-02" }, result.title)), hAsync("div", { class: "result-meta" },
|
|
8971
|
+
}, onClick: () => this.selectResult(result), onMouseEnter: () => (this.selectedIndex = index) }, hAsync("div", { class: "result-header" }, hAsync("span", { class: "result-title f-body-02" }, result.title)), hAsync("div", { class: "result-meta" }, result.parent_software ? ([
|
|
8972
|
+
hAsync("span", { class: "result-badge result-badge--parent" }, result.parent_software),
|
|
8973
|
+
result.section && hAsync("span", { class: "result-badge result-badge--lr" }, result.section)
|
|
8974
|
+
]) : result.source === 'kg-services' ? ([
|
|
8975
|
+
hAsync("span", { class: "result-badge" }, "EBRAINS KG"),
|
|
8976
|
+
result.section && hAsync("span", { class: "result-badge" }, result.section)
|
|
8977
|
+
]) : ([
|
|
8978
|
+
hAsync("span", { class: "result-badge" }, result.source),
|
|
8979
|
+
result.section && hAsync("span", { class: "result-badge" }, result.section)
|
|
8980
|
+
]), hAsync("span", { class: "result-url" }, result.url)), result.snippet && hAsync("p", { class: "result-snippet" }, this.stripHtml(result.snippet))))))), this.hasResults && !this.loading && (hAsync("div", { key: 'fd07f17d78ba2d95c30d95b35d89151b27e3a957', class: "dropdown-footer" }, hAsync("span", { key: '20a6bc436e135e29b89a94b150c505bab6281d6f', class: "footer-hint" }, hAsync("kbd", { key: '08e43dd318b0dde7d67f74731055e2bbc00bdc78' }, "\u2191"), " ", hAsync("kbd", { key: '676535d717d5fb4b98cbf09050883630dbecaf6e' }, "\u2193"), " navigate \u2022 ", hAsync("kbd", { key: 'cd9ac17223ae195b0508c7ea37ad2a9459341b8b' }, "\u21B5"), " select \u2022 ", hAsync("kbd", { key: 'dbaa3eacc337eee81404518e9bd4c9b9fbc44205' }, "esc"), " close")))))));
|
|
8729
8981
|
}
|
|
8730
8982
|
get el() { return getElement(this); }
|
|
8731
8983
|
static get style() { return EdsGlobalSearchStyle0; }
|
|
@@ -8741,6 +8993,7 @@ class EdsGlobalSearch {
|
|
|
8741
8993
|
"currentOrigin": [1, "current-origin"],
|
|
8742
8994
|
"currentSource": [1, "current-source"],
|
|
8743
8995
|
"authToken": [1, "auth-token"],
|
|
8996
|
+
"variant": [513],
|
|
8744
8997
|
"query": [32],
|
|
8745
8998
|
"results": [32],
|
|
8746
8999
|
"loading": [32],
|
|
@@ -8751,7 +9004,7 @@ class EdsGlobalSearch {
|
|
|
8751
9004
|
},
|
|
8752
9005
|
"$listeners$": [[4, "click", "handleDocumentClick"], [0, "keydown", "handleKeydown"]],
|
|
8753
9006
|
"$lazyBundleId$": "-",
|
|
8754
|
-
"$attrsToReflect$": []
|
|
9007
|
+
"$attrsToReflect$": [["variant", "variant"]]
|
|
8755
9008
|
}; }
|
|
8756
9009
|
}
|
|
8757
9010
|
|
|
@@ -8814,7 +9067,7 @@ class EdsHeader {
|
|
|
8814
9067
|
const logoType = this.variant === 'strong' ? 'negative' : 'positive';
|
|
8815
9068
|
// Link intent based on header variant
|
|
8816
9069
|
const linkIntent = this.variant === 'strong' ? 'underlineInverse' : 'underline';
|
|
8817
|
-
return (hAsync("header", { key: '
|
|
9070
|
+
return (hAsync("header", { key: 'fd95f6b0126d620ab1d4f58240d471301d607fa5', role: "banner", class: `flex items-center justify-between relative z-10 ${classes}` }, hAsync("div", { key: 'e7b1bd9a146543107d87ff6f4c8575ad63fc3889', class: "w-[250px]" }, hAsync("div", { key: '257a8bf3d0efea39bd0e7f5c92d2a6bcbaa66d48', class: "p-[24px]" }, hAsync("eds-logo", { key: '71365268524d0db6999dc6ff4a9227e388d53cdf', variant: logoType, href: this.url }))), this.parsedLinks && (hAsync("nav", { key: '085b2bd5f667ea7e0be4de77cb4bd3d1a2bb6e3c', role: "navigation", "aria-label": "Primary", class: "flex-1 flex justify-center items-center hidden md:flex" }, hAsync("ul", { key: 'b5c015e6e1fb376f6b48805cc5d0db436234a5fc', class: "flex gap-x-16" }, this.parsedLinks.map((link) => (hAsync("eds-link", { label: link.label, "aria-label": link.label, url: link.url, intent: linkIntent, size: "large", icon: link.icon, external: link.external })))))), hAsync("div", { key: '9bca10c081cd1b8157579fa587615538dc624817', class: "w-[250px] flex justify-end items-center" }, hAsync("slot", { key: '360fb5fe76b41b2513cba2f8705ea5ea91cae9a9', name: "actions" })), this.menu && (hAsync("div", { key: '7feaa2b97062e7ceb94bacc35e61a12edc0b2e54', class: "md:hidden flex overflow-hidden px-16" }, hAsync("eds-button", { key: '706c1668e3b04517cfe0cb92da5b459980986df0', "aria-label": "Menu", intent: this.variant === 'strong' ? 'ghostInverse' : 'ghost', icon: "menu", size: "small", onClick: () => this.handleToggleMenu() })))));
|
|
8818
9071
|
}
|
|
8819
9072
|
get hostEl() { return getElement(this); }
|
|
8820
9073
|
static get style() { return EdsHeaderStyle0; }
|
|
@@ -9144,7 +9397,7 @@ class EdsIconBluesky {
|
|
|
9144
9397
|
this.class = '';
|
|
9145
9398
|
}
|
|
9146
9399
|
render() {
|
|
9147
|
-
return hAsync("span", { key: '
|
|
9400
|
+
return hAsync("span", { key: 'f2c2ad35173c7bfeae50e5b4de8f59e362d9656f', class: this.class, innerHTML: bluesky });
|
|
9148
9401
|
}
|
|
9149
9402
|
static get cmpMeta() { return {
|
|
9150
9403
|
"$flags$": 0,
|
|
@@ -9167,7 +9420,7 @@ class EdsIconEu {
|
|
|
9167
9420
|
this.class = '';
|
|
9168
9421
|
}
|
|
9169
9422
|
render() {
|
|
9170
|
-
return hAsync("span", { key: '
|
|
9423
|
+
return hAsync("span", { key: '56f0efdfb37b2dd4474dc2e69ef649915a9f4bbc', class: this.class, innerHTML: euSvg });
|
|
9171
9424
|
}
|
|
9172
9425
|
static get cmpMeta() { return {
|
|
9173
9426
|
"$flags$": 0,
|
|
@@ -9190,7 +9443,7 @@ class EdsIconFacebook {
|
|
|
9190
9443
|
this.class = '';
|
|
9191
9444
|
}
|
|
9192
9445
|
render() {
|
|
9193
|
-
return hAsync("span", { key: '
|
|
9446
|
+
return hAsync("span", { key: '798a3ad6a040dfce879fe62c0a32c83cbd529ad0', class: this.class, innerHTML: facebook });
|
|
9194
9447
|
}
|
|
9195
9448
|
static get cmpMeta() { return {
|
|
9196
9449
|
"$flags$": 0,
|
|
@@ -9213,7 +9466,7 @@ class EdsIconGitlab {
|
|
|
9213
9466
|
this.class = '';
|
|
9214
9467
|
}
|
|
9215
9468
|
render() {
|
|
9216
|
-
return hAsync("span", { key: '
|
|
9469
|
+
return hAsync("span", { key: 'd1c7c0c1e3cae3b45377e305792192df46ef064a', class: this.class, innerHTML: gitlabBlack });
|
|
9217
9470
|
}
|
|
9218
9471
|
static get cmpMeta() { return {
|
|
9219
9472
|
"$flags$": 0,
|
|
@@ -9236,7 +9489,7 @@ class EdsIconLinkedin {
|
|
|
9236
9489
|
this.class = '';
|
|
9237
9490
|
}
|
|
9238
9491
|
render() {
|
|
9239
|
-
return hAsync("span", { key: '
|
|
9492
|
+
return hAsync("span", { key: 'd8c97d9140baa6609917021bbc67fc7cca47ee32', class: this.class, innerHTML: linkedin });
|
|
9240
9493
|
}
|
|
9241
9494
|
static get cmpMeta() { return {
|
|
9242
9495
|
"$flags$": 0,
|
|
@@ -9259,7 +9512,7 @@ class EdsIconMastodon {
|
|
|
9259
9512
|
this.class = '';
|
|
9260
9513
|
}
|
|
9261
9514
|
render() {
|
|
9262
|
-
return hAsync("span", { key: '
|
|
9515
|
+
return hAsync("span", { key: '8498500cd0da2784b889a7b2b2ca9ff4e8414ab6', class: this.class, innerHTML: mastodon });
|
|
9263
9516
|
}
|
|
9264
9517
|
static get cmpMeta() { return {
|
|
9265
9518
|
"$flags$": 0,
|
|
@@ -9282,7 +9535,7 @@ class EdsIconTwitter {
|
|
|
9282
9535
|
this.class = '';
|
|
9283
9536
|
}
|
|
9284
9537
|
render() {
|
|
9285
|
-
return hAsync("span", { key: '
|
|
9538
|
+
return hAsync("span", { key: '1d2f811831f0c876e8b1133c0df03b6f15acaccb', class: this.class, innerHTML: twitter });
|
|
9286
9539
|
}
|
|
9287
9540
|
static get cmpMeta() { return {
|
|
9288
9541
|
"$flags$": 0,
|
|
@@ -11722,6 +11975,7 @@ class EdsIconWrapper {
|
|
|
11722
11975
|
registerInstance(this, hostRef);
|
|
11723
11976
|
this.name = undefined;
|
|
11724
11977
|
this.size = 20;
|
|
11978
|
+
this.label = undefined;
|
|
11725
11979
|
}
|
|
11726
11980
|
render() {
|
|
11727
11981
|
const iconSvg = ICONS[this.name];
|
|
@@ -11729,7 +11983,8 @@ class EdsIconWrapper {
|
|
|
11729
11983
|
console.warn(`Icon "${this.name}" not found in ICONS`);
|
|
11730
11984
|
return null;
|
|
11731
11985
|
}
|
|
11732
|
-
|
|
11986
|
+
const decorative = !this.label;
|
|
11987
|
+
return (hAsync(Host, { role: decorative ? null : 'img', "aria-label": decorative ? null : this.label, "aria-hidden": decorative ? 'true' : null }, hAsync("span", { class: `icon icon--${this.size}`, innerHTML: iconSvg })));
|
|
11733
11988
|
}
|
|
11734
11989
|
static get style() { return EdsIconWrapperStyle0; }
|
|
11735
11990
|
static get cmpMeta() { return {
|
|
@@ -11737,7 +11992,8 @@ class EdsIconWrapper {
|
|
|
11737
11992
|
"$tagName$": "eds-icon-wrapper",
|
|
11738
11993
|
"$members$": {
|
|
11739
11994
|
"name": [1],
|
|
11740
|
-
"size": [2]
|
|
11995
|
+
"size": [2],
|
|
11996
|
+
"label": [1]
|
|
11741
11997
|
},
|
|
11742
11998
|
"$listeners$": undefined,
|
|
11743
11999
|
"$lazyBundleId$": "-",
|
|
@@ -11754,7 +12010,7 @@ class EdsIconYoutube {
|
|
|
11754
12010
|
this.class = '';
|
|
11755
12011
|
}
|
|
11756
12012
|
render() {
|
|
11757
|
-
return hAsync("span", { key: '
|
|
12013
|
+
return hAsync("span", { key: '7ebb80fd84ed9ed7c227b1f1ddf213d0502160f9', class: this.class, innerHTML: youtube });
|
|
11758
12014
|
}
|
|
11759
12015
|
static get cmpMeta() { return {
|
|
11760
12016
|
"$flags$": 0,
|
|
@@ -11830,10 +12086,10 @@ class EdsImg {
|
|
|
11830
12086
|
imgOpts['loading'] = 'lazy';
|
|
11831
12087
|
imgOpts['decoding'] = 'async';
|
|
11832
12088
|
}
|
|
11833
|
-
return (hAsync("div", { key: '
|
|
12089
|
+
return (hAsync("div", { key: '122ae0673a7a2c9afd88cdcf8a83b52c11f0643e', class: {
|
|
11834
12090
|
'items-center justify-center': true,
|
|
11835
12091
|
'effect-bg-pattern': this.lazyload && this.showBg
|
|
11836
|
-
} }, hAsync("picture", { key: '
|
|
12092
|
+
} }, hAsync("picture", { key: 'b0bb1af0c95375db18bd45453016ee2fd78a6e2a' }, this.formats.map((format) => (hAsync("source", { type: format.type, srcSet: format.srcset, media: format.media, sizes: this.sizes }))), hAsync("img", Object.assign({ key: '2a8500ea92db1a846f0f6dbb41fa664c3d514f19', ref: (el) => (this.img = el), class: {
|
|
11837
12093
|
'effect-opacity object-cover object-center': true,
|
|
11838
12094
|
'opacity-100': this.loaded,
|
|
11839
12095
|
'opacity-0': !this.loaded
|
|
@@ -11893,6 +12149,7 @@ class EdsInput {
|
|
|
11893
12149
|
this.min = undefined;
|
|
11894
12150
|
this.max = undefined;
|
|
11895
12151
|
this.step = undefined;
|
|
12152
|
+
this.inputTabIndex = undefined;
|
|
11896
12153
|
this.innerVal = '';
|
|
11897
12154
|
this.maxLengthReached = false;
|
|
11898
12155
|
}
|
|
@@ -11915,7 +12172,7 @@ class EdsInput {
|
|
|
11915
12172
|
render() {
|
|
11916
12173
|
const withIcon = !!this.icon;
|
|
11917
12174
|
const describedBy = this.hasMessage || this.error ? `${this.name}-error` : '';
|
|
11918
|
-
return (hAsync("div", { key: '
|
|
12175
|
+
return (hAsync("div", { key: '0261b14034860a2f59dde8de72d6729ec411d2cf', class: "relative flex items-center" }, this.type === 'textarea' ? (hAsync("textarea", { id: this.inputId || this.name, name: this.name, placeholder: this.placeholder, value: this.innerVal.toString(), required: this.required, disabled: this.disabled, class: `min-h-80 input input-textarea ${withIcon ? 'input-with-icon' : ''} ${this.error ? 'input-error' : ''} ${this.extraClass}`, "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": describedBy, maxlength: this.maxLength, onInput: this.handleInput, onChange: this.handleInput })) : this.type === 'select' ? (hAsync("select", { id: this.inputId || this.name, name: this.name, required: this.required, disabled: this.disabled, class: `input input-select ${this.error ? 'input-error' : ''} ${this.extraClass}`, "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": describedBy, onInput: this.handleInput, onChange: this.handleInput }, this.options.map((option) => (hAsync("option", { value: option.value, selected: option.value === this.innerVal, key: option.value }, option.label))))) : (hAsync("input", Object.assign({ id: this.inputId || this.name, name: this.name, placeholder: this.placeholder, value: this.innerVal.toString(), required: this.required, disabled: this.disabled, type: this.type, tabindex: this.inputTabIndex, checked: ['radio', 'checkbox'].includes(this.type) ? this.checked : undefined }, (this.type === 'number'
|
|
11919
12176
|
? {
|
|
11920
12177
|
min: this.min,
|
|
11921
12178
|
max: this.max,
|
|
@@ -11926,7 +12183,7 @@ class EdsInput {
|
|
|
11926
12183
|
input ${this.type === 'radio' ? 'input-radio' : this.type === 'checkbox' ? 'input-checkbox' : ''}
|
|
11927
12184
|
${withIcon && this.type !== 'radio' && this.type !== 'checkbox' ? 'input-icon pl-36' : ''}
|
|
11928
12185
|
${this.error ? 'input-error' : ''}
|
|
11929
|
-
`, "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": describedBy, maxlength: this.maxLength, onInput: this.handleInput, onChange: this.handleInput }))), this.maxLength && this.type === 'textarea' && (hAsync("span", { key: '
|
|
12186
|
+
`, "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": describedBy, maxlength: this.maxLength, onInput: this.handleInput, onChange: this.handleInput }))), this.maxLength && this.type === 'textarea' && (hAsync("span", { key: 'f2a7b410ee586d3266d05d422f3376488392fc6b', class: `input-counter f-ui-05 absolute bottom-8 right-8 ${this.maxLengthReached ? 'input-counter-error' : ''}` }, this.maxLength)), this.icon && (hAsync("eds-icon-wrapper", { key: '37581bbd64652b25a00a401ab359736169814b1f', class: `absolute top-1/2 left-[12px] -translate-y-1/2 ${this.disabled ? 'text-lightest' : 'text-lightest'}`, name: this.icon }))));
|
|
11930
12187
|
}
|
|
11931
12188
|
get el() { return getElement(this); }
|
|
11932
12189
|
static get watchers() { return {
|
|
@@ -11953,6 +12210,7 @@ class EdsInput {
|
|
|
11953
12210
|
"min": [2],
|
|
11954
12211
|
"max": [2],
|
|
11955
12212
|
"step": [2],
|
|
12213
|
+
"inputTabIndex": [2, "input-tab-index"],
|
|
11956
12214
|
"innerVal": [32],
|
|
11957
12215
|
"maxLengthReached": [32]
|
|
11958
12216
|
},
|
|
@@ -12059,7 +12317,7 @@ class EdsInputDropzone {
|
|
|
12059
12317
|
}
|
|
12060
12318
|
render() {
|
|
12061
12319
|
const dropzoneClass = `eds-input-dropzone ${this.isDragging ? 'dragging' : ''} ${this.disabled ? 'disabled' : ''}`;
|
|
12062
|
-
return (hAsync("div", { key: '
|
|
12320
|
+
return (hAsync("div", { key: '8c6d9cdd919e72f5e85a7b01a2db3cb6fadface0', class: "eds-input-dropzone-container" }, hAsync("input", { key: 'fb643c39fa588971f825a01b20e8da6ac2da7d36', ref: (el) => (this.fileInputRef = el), type: "file", id: this.inputId || this.name, name: this.name, class: "eds-input-dropzone-hidden", disabled: this.disabled, required: this.required, multiple: this.multiple, accept: this.accept, onChange: this.handleFileSelect }), hAsync("div", { key: 'fd000cfb95b10eb54798ea5575810692c8cce65d', class: dropzoneClass, onClick: this.handleDropzoneClick, onDragOver: this.handleDragOver, onDragLeave: this.handleDragLeave, onDrop: this.handleDrop }, hAsync("svg", { key: 'ed7588f87e4182351f5301992ae582df1f21be5e', class: "dropzone-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, hAsync("path", { key: '9977271ac6bb26c6d642708eb6a7d2f2ca242dcc', d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), hAsync("polyline", { key: 'f32b1ff2bea2718e075d78985837ba71acf23ce9', points: "17 8 12 3 7 8" }), hAsync("line", { key: '326bc6f0e24c191a26859567653f807c81745a77', x1: "12", y1: "3", x2: "12", y2: "15" })), hAsync("div", { key: 'f880855ecf537d527663101a5348591f975e7074', class: "dropzone-text" }, hAsync("p", { key: '4747da3e157c6b1c3e56774867fc0258e2e77059', class: "dropzone-primary" }, this.primaryText), hAsync("p", { key: '7852be7ecdcdfabf5fed632065b14128941461ee', class: "dropzone-secondary" }, this.secondaryText))), this.selectedFiles.length > 0 && (hAsync("div", { key: '36347980293d2ea800a845a4ab5bb9c28fedc485', class: "eds-input-dropzone-chips" }, this.selectedFiles.map((item) => (hAsync("div", { key: item.id, class: "eds-input-dropzone-chip" }, this.getFileIcon(item.file.name), hAsync("span", { class: "eds-input-dropzone-chip-name" }, item.file.name), hAsync("span", { class: "eds-input-dropzone-chip-size" }, this.formatFileSize(item.file.size)), hAsync("button", { type: "button", class: "eds-input-dropzone-chip-remove", onClick: () => this.handleRemoveFile(item.id), disabled: this.disabled, "aria-label": `Remove ${item.file.name}` }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, hAsync("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), hAsync("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))))))))));
|
|
12063
12321
|
}
|
|
12064
12322
|
get hostEl() { return getElement(this); }
|
|
12065
12323
|
static get style() { return EdsInputDropzoneStyle0; }
|
|
@@ -12206,9 +12464,12 @@ class EdsInputField {
|
|
|
12206
12464
|
return [];
|
|
12207
12465
|
}
|
|
12208
12466
|
render() {
|
|
12209
|
-
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,
|
|
12210
|
-
|
|
12211
|
-
|
|
12467
|
+
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,
|
|
12468
|
+
// Icons are only supported on text inputs for now — ignore the prop for
|
|
12469
|
+
// every other type so e.g. number/select/checkbox never render one.
|
|
12470
|
+
icon: this.type === 'text' ? this.icon : undefined, checked: this.checked }, (this.type === 'number' ? { min: this.min, max: this.max, step: this.step } : {}));
|
|
12471
|
+
return (hAsync("div", { key: '2072cce16b572431b41363beff779d8631de7abc' }, this.type === 'checkbox' || this.type === 'radio' ? (this.parsedOptions.length > 0 ? (hAsync("fieldset", { class: "space-y-4" }, (this.label || this.hint) && (hAsync("div", { class: "flex justify-between mb-4" }, this.label && (hAsync("eds-input-label", { name: this.inputId || this.name, label: this.label, required: this.required })), this.hint && (hAsync("p", { id: `${this.name}-hint`, class: "f-ui-05 text-lighter mt-8 ml-8" }, this.hint)))), this.parsedOptions.map((option) => (hAsync("div", { class: "flex items-center gap-x-4 gap-y-4", key: option.value }, hAsync("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)) })), hAsync("label", { htmlFor: `${this.inputId || this.name}-${option.value}`, class: `input-label-options ${this.disabled ? 'text-lighter' : ''}` }, option.label)))))) : (hAsync("div", { class: "flex items-center gap-x-8" }, hAsync("eds-input", Object.assign({}, inputOpts, { inputTabIndex: 0, value: this.value, checked: this.value === 'on' || this.checked })), this.label && (hAsync("eds-input-label", { name: this.inputId || this.name, label: this.label, disabled: this.disabled, required: this.required }))))) : (hAsync("div", null, (this.label || this.hint) && (hAsync("div", { class: "flex justify-between mb-4" }, this.label && (hAsync("eds-input-label", { name: this.inputId || this.name, label: this.label, disabled: this.disabled, required: this.required })), this.hint && (hAsync("p", { id: `${this.name}-hint`, class: "f-ui-05 text-lighter mt-8 ml-8" }, this.hint)))), this.type === 'select' ? (hAsync("eds-input-select", Object.assign({}, inputOpts, { options: this.parsedOptions }))) : this.type === 'file' ? (hAsync("eds-input-file", { name: this.name, inputId: this.inputId, disabled: this.disabled, required: this.required, multiple: true, onEdsfile: this.handleFileChange })) : this.type === 'dropzone' ? (hAsync("eds-input-dropzone", { name: this.name, inputId: this.inputId, disabled: this.disabled, required: this.required, multiple: true, onEdsfile: this.handleFileChange })) : this.type === 'range' ? ((() => {
|
|
12472
|
+
var _a, _b, _c, _d, _e, _f;
|
|
12212
12473
|
const rangeProps = {
|
|
12213
12474
|
name: inputOpts.name,
|
|
12214
12475
|
inputId: inputOpts.id || inputOpts.name,
|
|
@@ -12219,8 +12480,11 @@ class EdsInputField {
|
|
|
12219
12480
|
};
|
|
12220
12481
|
const opt = this.parsedOptions;
|
|
12221
12482
|
const numberValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
|
|
12222
|
-
|
|
12223
|
-
|
|
12483
|
+
// Prefer the explicit min/max/step props (consistent with
|
|
12484
|
+
// type="number"); fall back to options[0..2].value for
|
|
12485
|
+
// backward compatibility with existing range fields.
|
|
12486
|
+
return (hAsync("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 })));
|
|
12487
|
+
})()) : (hAsync("eds-input", Object.assign({}, inputOpts))))), hAsync("div", { key: 'f3ab7ef07c5c35f6d5e5d7a3ec35f98fe133ab5b', class: "mt-6" }, hAsync("eds-input-footer", { key: 'a72af69114cd3916e9ffa6ca8a65dced572dadf7', id: `${this.name}-footer`, name: this.name, message: this.message, "error-message": this.errorMessage, error: this.error, link: this.link }))));
|
|
12224
12488
|
}
|
|
12225
12489
|
static get delegatesFocus() { return true; }
|
|
12226
12490
|
get hostEl() { return getElement(this); }
|
|
@@ -12325,7 +12589,7 @@ class EdsInputFile {
|
|
|
12325
12589
|
}
|
|
12326
12590
|
render() {
|
|
12327
12591
|
const effectiveLabel = this.buttonLabel || (this.multiple ? 'Choose Files' : 'Choose File');
|
|
12328
|
-
return (hAsync("div", { key: '
|
|
12592
|
+
return (hAsync("div", { key: 'e02d98fbc01dbe7a89eeb3010f966ed4a373ede6', class: "eds-input-file-container" }, hAsync("input", { key: '2013826fda9453aade4528c9f051aac98780662f', 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 }), hAsync("button", { key: 'f5e5cf91376ccb69b39ef3c9b11095aca8bfb728', type: "button", class: "eds-input-file-btn", onClick: this.handleButtonClick, disabled: this.disabled }, hAsync("svg", { key: '563066375b42d0a8c14f14ac9fdfb587539f4e76', viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, hAsync("path", { key: 'ebe5549fffa0c2453ab98891da75a464c09e9fa2', d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), hAsync("polyline", { key: '69036b82e15103e481770d0ef2c500b0dcad0399', points: "17 8 12 3 7 8" }), hAsync("line", { key: 'e0531be95796ec6dc7f9fe359e4736a15a0e3640', x1: "12", y1: "3", x2: "12", y2: "15" })), effectiveLabel), this.selectedFiles.length > 0 && (hAsync("div", { key: '62590fb46cee89d2524f1ede71c7af341c3e426a', class: "eds-input-file-chips" }, this.selectedFiles.map((item) => (hAsync("div", { key: item.id, class: "eds-input-file-chip" }, this.getFileIcon(item.file.name), hAsync("span", { class: "eds-input-file-chip-name" }, item.file.name), hAsync("span", { class: "eds-input-file-chip-size" }, this.formatFileSize(item.file.size)), hAsync("button", { type: "button", class: "eds-input-file-chip-remove", onClick: () => this.handleRemoveFile(item.id), disabled: this.disabled, "aria-label": `Remove ${item.file.name}` }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, hAsync("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), hAsync("line", { x1: "6", y1: "6", x2: "18", y2: "18" }))))))))));
|
|
12329
12593
|
}
|
|
12330
12594
|
get hostEl() { return getElement(this); }
|
|
12331
12595
|
static get style() { return EdsInputFileStyle0; }
|
|
@@ -12349,7 +12613,7 @@ class EdsInputFile {
|
|
|
12349
12613
|
}; }
|
|
12350
12614
|
}
|
|
12351
12615
|
|
|
12352
|
-
const edsInputFooterCss = "p{margin:0}.text-error{color:var(--red-700)}.flex{display:flex}.items-center{align-items:center}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}.ml-4{margin-left:0.25rem}.pt-4{padding-top:0.25rem}.mb-4{margin-bottom:0.25rem}.f-ui-05{font-family:var(--f-ui-05-fontFamily);font-weight:var(--f-ui-05-fontWeight);font-size:var(--f-ui-05-fontSize);line-height:var(--f-ui-05-lineHeight);letter-spacing:var(--f-ui-05-letterSpacing)}.text-lighter{color:var(--grey-600)}.effect-color{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.hover\\:text-lighter:hover{color:var(--grey-600)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}";
|
|
12616
|
+
const edsInputFooterCss = "p{margin:0}.eds-desc-link{position:relative;display:inline-block;color:var(--brand-black);text-decoration:none}.eds-desc-link::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:2px;background-color:var(--brand-green);transition:width 0.3s ease}.eds-desc-link:hover::after{width:100%}.eds-desc-link:focus-visible::after{width:0}eds-link{--f-ui-02-fontSize:var(--f-ui-04-fontSize)}.text-error{color:var(--red-700)}.flex{display:flex}.items-center{align-items:center}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}.ml-4{margin-left:0.25rem}.pt-4{padding-top:0.25rem}.mb-4{margin-bottom:0.25rem}.f-ui-05{font-family:var(--f-ui-05-fontFamily);font-weight:var(--f-ui-05-fontWeight);font-size:var(--f-ui-05-fontSize);line-height:var(--f-ui-05-lineHeight);letter-spacing:var(--f-ui-05-letterSpacing)}.text-lighter{color:var(--grey-600)}.effect-color{transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms;transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.hover\\:text-lighter:hover{color:var(--grey-600)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}";
|
|
12353
12617
|
var EdsInputFooterStyle0 = edsInputFooterCss;
|
|
12354
12618
|
|
|
12355
12619
|
class EdsInputFooter {
|
|
@@ -12362,7 +12626,7 @@ class EdsInputFooter {
|
|
|
12362
12626
|
this.link = undefined;
|
|
12363
12627
|
}
|
|
12364
12628
|
render() {
|
|
12365
|
-
return (hAsync("div", { key: '
|
|
12629
|
+
return (hAsync("div", { key: '866e375b5dd1d9c958f2255537e919a8c1f25dc7' }, this.error && this.errorMessage && (hAsync("div", { key: '95d11c9cbb7746cc727ad9e037d00a28d9475bfc', id: `error_${this.name}`, class: "text-error flex items-center" }, hAsync("eds-icon-wrapper", { key: 'face7f905ffa7c5f4dc7a7e6825d185e0d6b7901', name: "warning", size: 20 }), hAsync("p", { key: '2011af93e06df1d91972843a510e843763f53b0b', class: "f-ui-04 ml-4 mb-4 pt-4", innerHTML: this.errorMessage }))), this.message && hAsync("p", { key: '39d6833a30e7b93f75154a14bee1e6b4500575cb', id: `desc_${this.name}`, class: "f-ui-04 text-lighter", innerHTML: safeInlineFormat(this.message) }), this.link && (hAsync("eds-link", { key: 'bfbf95e704574ada6f857ca08a90409ab38c1a5e', label: this.link.label, url: this.link.url, intent: "underline", size: "small", external: true }))));
|
|
12366
12630
|
}
|
|
12367
12631
|
static get style() { return EdsInputFooterStyle0; }
|
|
12368
12632
|
static get cmpMeta() { return {
|
|
@@ -12393,7 +12657,7 @@ class EdsInputLabel {
|
|
|
12393
12657
|
this.disabled = false;
|
|
12394
12658
|
}
|
|
12395
12659
|
render() {
|
|
12396
|
-
return (hAsync("label", { key: '
|
|
12660
|
+
return (hAsync("label", { key: '40867ae01e94ab7a69b6f82658e4ee1b1e5b87cf', htmlFor: this.name, class: `input-label ${this.disabled ? 'text-lighter' : ''}` }, this.label, this.required && (hAsync("span", { key: 'e3cfc44ea2a7f53f51c544648b3c635557cb8248' }, hAsync("span", { key: 'ff7559b58cb22ce2a3066ed15e77f6088f299aaa', "aria-hidden": "true" }, "*"), hAsync("span", { key: '2c831682aae410ac71589171e2b04981c60052bb', class: "sr-only" }, "required")))));
|
|
12397
12661
|
}
|
|
12398
12662
|
static get style() { return EdsInputLabelStyle0; }
|
|
12399
12663
|
static get cmpMeta() { return {
|
|
@@ -12461,7 +12725,7 @@ class EdsInputRange {
|
|
|
12461
12725
|
render() {
|
|
12462
12726
|
var _a;
|
|
12463
12727
|
const currentValue = (_a = this.sliderVal) !== null && _a !== void 0 ? _a : Math.round(this.min + (this.max - this.min) / 2);
|
|
12464
|
-
return (hAsync("div", { key: '
|
|
12728
|
+
return (hAsync("div", { key: '231ae0f34900dfa3b8edeb9745ce07220735c613', class: "relative flex flex-col items-start" }, hAsync("input", { key: '2cbfbbb410694a4764f44c26a74f4cbca9b98f3c', id: this.inputId || this.name, name: this.name, min: this.min, max: this.max, step: this.step, value: currentValue, required: this.required, disabled: this.disabled, type: "range", class: "w-full py-6 input", tabindex: "0", role: "slider", "aria-describedby": `desc_${this.name}`, "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": currentValue, onInput: this.onInput, onChange: this.onChange }), hAsync("p", { key: '8e7036cbaeebb62c6cd4b7f2105d3fa487ad463e', id: `desc_${this.name}`, class: "block f-ui-05 mt-4 text-light" }, "Current value: ", currentValue)));
|
|
12465
12729
|
}
|
|
12466
12730
|
get el() { return getElement(this); }
|
|
12467
12731
|
static get watchers() { return {
|
|
@@ -12556,7 +12820,7 @@ class EdsInputSearch {
|
|
|
12556
12820
|
return this.inputElement;
|
|
12557
12821
|
}
|
|
12558
12822
|
render() {
|
|
12559
|
-
return (hAsync("div", { key: '
|
|
12823
|
+
return (hAsync("div", { key: '52676b3559e14b5153f7d8f0fa6cd12e49354d87', class: "relative flex items-center" }, hAsync("eds-icon-wrapper", { key: '754e8753607c01dab63d156d306f3325547049aa', name: "search", class: "absolute top-1/2 left-[14px] -translate-y-1/2 text-lightest", "aria-hidden": "true" }), hAsync("input", { key: 'b49d523195711316c0817de67776d379a6c7248b', id: this.inputId || this.name, name: this.name, placeholder: this.placeholder, value: this.value || '', required: this.required, disabled: this.disabled, type: "search", "aria-label": this.placeholder, class: `input pl-36 ${this.decorate}`,
|
|
12560
12824
|
//onInput={this.onInput}
|
|
12561
12825
|
onChange: this.onChange })));
|
|
12562
12826
|
}
|
|
@@ -12610,12 +12874,12 @@ class EdsInputSelect {
|
|
|
12610
12874
|
const selectId = this.inputId || this.name;
|
|
12611
12875
|
const placeholderText = this.placeholder || `Pick from the list`;
|
|
12612
12876
|
const describedBy = this.hasMessage || this.error ? `${this.name}-error` : undefined;
|
|
12613
|
-
return (hAsync("div", { key: '
|
|
12877
|
+
return (hAsync("div", { key: '8365ffbc8f6f6386edfc1626d16c9152fd3cce9f', class: "relative" }, hAsync("select", { key: '52e712898a3251cea5447a379886449175e7c8b8', id: selectId, name: this.name, class: {
|
|
12614
12878
|
input: true,
|
|
12615
12879
|
'input-error': this.error,
|
|
12616
12880
|
'px-4': true,
|
|
12617
12881
|
'py-2': true
|
|
12618
|
-
}, "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": describedBy, disabled: this.disabled, required: this.required, onChange: this.handleChange }, hAsync("option", { key: '
|
|
12882
|
+
}, "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": describedBy, disabled: this.disabled, required: this.required, onChange: this.handleChange }, hAsync("option", { key: 'd52c376ffb683abc0dec72177dba445273d148f7', value: "", disabled: true, selected: !this.value || this.value === '' }, placeholderText), this.options.map((opt, index) => (hAsync("option", { key: index, value: opt.value, selected: opt.value === this.value }, opt.label)))), hAsync("span", { key: 'fecbcb47793f8a57de44711b33d3650be5297aa7', class: "bg-dark rounded-xs absolute top-1/2 right-[6px] flex h-28 w-28 -translate-y-1/2 items-center justify-center" }, hAsync("eds-icon-wrapper", { key: '4fda1345a62eeb212093057382d877f31bb6112d', class: "w-20 h-20", name: "chevron-right" }))));
|
|
12619
12883
|
}
|
|
12620
12884
|
static get cmpMeta() { return {
|
|
12621
12885
|
"$flags$": 0,
|
|
@@ -12637,6 +12901,172 @@ class EdsInputSelect {
|
|
|
12637
12901
|
}; }
|
|
12638
12902
|
}
|
|
12639
12903
|
|
|
12904
|
+
const edsKgLearningResourcesCss = ":host{display:block;font-family:var(--plex-sans, 'IBM Plex Sans', system-ui, sans-serif);color:var(--brand-black, #07140D)}.lr-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.75rem;margin-bottom:1.5rem}.lr-heading{font-family:var(--inter, 'Inter', sans-serif);font-weight:300;font-size:1.75rem;line-height:110%;margin:0;color:var(--brand-black, #07140D)}.summary{display:flex;gap:0.5rem}.filters{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:0.75rem;margin-bottom:1.5rem;align-items:flex-end}.filter-search{grid-column:span 2}.filter-select{grid-column:span 1}.accordion-list{display:flex;flex-direction:column;gap:0.5rem}.resources-content{padding-top:0.5rem}.kg-link{margin-bottom:1rem}.resources-table{width:100%;border-collapse:collapse;font-size:0.875rem}.resources-table thead th{text-align:left;font-family:var(--plex-sans, 'IBM Plex Sans', system-ui, sans-serif);font-weight:500;font-size:0.75rem;text-transform:uppercase;letter-spacing:0.04em;color:var(--grey-dark, #7A7B7A);padding:0.5rem 0.75rem;border-bottom:1px solid rgba(0, 0, 0, 0.1)}.resource-row{transition:background-color 0.2s ease}.resource-row--clickable{cursor:pointer}.resource-row--clickable:hover{background-color:rgba(0, 255, 157, 0.04)}.resource-row td{padding:0.625rem 0.75rem;border-bottom:1px solid rgba(0, 0, 0, 0.04);vertical-align:top}.resource-row:last-child td{border-bottom:none}.resource-name{font-weight:500;font-size:1.0625rem;color:var(--brand-black, #07140D);transition:color 0.2s ease}.resource-row--clickable:hover .resource-name{color:var(--brand-green-dark, #00C87B)}.resource-desc{margin:0.25rem 0 0;font-size:0.9375rem;color:var(--grey-dark, #7A7B7A);line-height:145%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.col-name{width:auto}.col-type{width:160px;white-space:nowrap}.col-level{width:110px;white-space:nowrap}.loading{position:relative;min-height:8rem;padding:1rem 1.25rem;color:var(--grey-dark, #7A7B7A);font-size:0.9375rem;border:1px solid rgba(0, 0, 0, 0.08);border-radius:0.25rem;background-color:rgba(0, 0, 0, 0.02)}.no-results{padding:2rem;text-align:center;color:var(--grey-dark, #7A7B7A);font-size:0.875rem}@media (max-width: 750px){.lr-header{flex-direction:column;align-items:flex-start}.filters{grid-template-columns:1fr}.filter-search,.filter-select{grid-column:span 1}.col-type,.col-level{width:auto}.resources-table thead{display:none}.resource-row{display:flex;flex-wrap:wrap;gap:0.375rem;padding:0.625rem 0;border-bottom:1px solid rgba(0, 0, 0, 0.04)}.resource-row td{border:none;padding:0}.col-name{width:100%}}";
|
|
12905
|
+
var EdsKgLearningResourcesStyle0 = edsKgLearningResourcesCss;
|
|
12906
|
+
|
|
12907
|
+
let cachedData = null;
|
|
12908
|
+
let cacheTimestamp = 0;
|
|
12909
|
+
const CACHE_TTL = 10 * 60 * 1000;
|
|
12910
|
+
class EdsKgLearningResources {
|
|
12911
|
+
constructor(hostRef) {
|
|
12912
|
+
registerInstance(this, hostRef);
|
|
12913
|
+
this.apiEndpoint = '/api/v1/kg/learning-resources/cached';
|
|
12914
|
+
this.resolveNames = true;
|
|
12915
|
+
this.size = 500;
|
|
12916
|
+
this.heading = '';
|
|
12917
|
+
this.variant = 'inverse';
|
|
12918
|
+
this.loading = false;
|
|
12919
|
+
this.error = '';
|
|
12920
|
+
this.software = [];
|
|
12921
|
+
this.meta = null;
|
|
12922
|
+
this.filterType = '';
|
|
12923
|
+
this.filterLevel = '';
|
|
12924
|
+
this.searchQuery = '';
|
|
12925
|
+
}
|
|
12926
|
+
componentWillLoad() {
|
|
12927
|
+
this.fetchData();
|
|
12928
|
+
}
|
|
12929
|
+
async fetchData() {
|
|
12930
|
+
const now = Date.now();
|
|
12931
|
+
if (cachedData && (now - cacheTimestamp) < CACHE_TTL) {
|
|
12932
|
+
this.software = cachedData;
|
|
12933
|
+
return;
|
|
12934
|
+
}
|
|
12935
|
+
this.loading = true;
|
|
12936
|
+
this.error = '';
|
|
12937
|
+
try {
|
|
12938
|
+
const params = new URLSearchParams({
|
|
12939
|
+
size: this.size.toString(),
|
|
12940
|
+
resolve_names: this.resolveNames.toString(),
|
|
12941
|
+
});
|
|
12942
|
+
const response = await fetch(`${this.apiEndpoint}?${params}`);
|
|
12943
|
+
if (!response.ok) {
|
|
12944
|
+
throw new Error(`Failed to fetch: ${response.statusText}`);
|
|
12945
|
+
}
|
|
12946
|
+
const data = await response.json();
|
|
12947
|
+
this.software = data.data || [];
|
|
12948
|
+
this.meta = data.meta || null;
|
|
12949
|
+
cachedData = this.software;
|
|
12950
|
+
cacheTimestamp = now;
|
|
12951
|
+
}
|
|
12952
|
+
catch (err) {
|
|
12953
|
+
this.error = err instanceof Error ? err.message : 'Failed to load learning resources';
|
|
12954
|
+
}
|
|
12955
|
+
finally {
|
|
12956
|
+
this.loading = false;
|
|
12957
|
+
}
|
|
12958
|
+
}
|
|
12959
|
+
getFilteredSoftware() {
|
|
12960
|
+
let filtered = this.software;
|
|
12961
|
+
if (this.filterType) {
|
|
12962
|
+
filtered = filtered.filter(sw => sw.learning_resources_types.includes(this.filterType));
|
|
12963
|
+
}
|
|
12964
|
+
if (this.filterLevel) {
|
|
12965
|
+
filtered = filtered.filter(sw => sw.learning_resources_levels.includes(this.filterLevel));
|
|
12966
|
+
}
|
|
12967
|
+
if (this.searchQuery) {
|
|
12968
|
+
const q = this.searchQuery.toLowerCase();
|
|
12969
|
+
filtered = filtered.filter(sw => sw.name.toLowerCase().includes(q) ||
|
|
12970
|
+
sw.learning_resources.some(lr => {
|
|
12971
|
+
var _a, _b;
|
|
12972
|
+
return ((_a = lr.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(q)) ||
|
|
12973
|
+
((_b = lr.abstract) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(q));
|
|
12974
|
+
}));
|
|
12975
|
+
}
|
|
12976
|
+
return filtered;
|
|
12977
|
+
}
|
|
12978
|
+
getFilteredResources(resources) {
|
|
12979
|
+
let filtered = resources;
|
|
12980
|
+
if (this.filterType) {
|
|
12981
|
+
filtered = filtered.filter(lr => lr.type === this.filterType);
|
|
12982
|
+
}
|
|
12983
|
+
if (this.filterLevel) {
|
|
12984
|
+
filtered = filtered.filter(lr => lr.educational_level === this.filterLevel);
|
|
12985
|
+
}
|
|
12986
|
+
return filtered;
|
|
12987
|
+
}
|
|
12988
|
+
/* TODO: Uncomment when filters are enabled
|
|
12989
|
+
private getAllTypes(): string[] {
|
|
12990
|
+
const types = new Set<string>();
|
|
12991
|
+
this.software.forEach(sw =>
|
|
12992
|
+
sw.learning_resources_types.forEach(t => types.add(t))
|
|
12993
|
+
);
|
|
12994
|
+
return Array.from(types).sort();
|
|
12995
|
+
}
|
|
12996
|
+
|
|
12997
|
+
private getAllLevels(): string[] {
|
|
12998
|
+
const levels = new Set<string>();
|
|
12999
|
+
this.software.forEach(sw =>
|
|
13000
|
+
sw.learning_resources_levels.forEach(l => levels.add(l))
|
|
13001
|
+
);
|
|
13002
|
+
return Array.from(levels).sort();
|
|
13003
|
+
}
|
|
13004
|
+
*/
|
|
13005
|
+
getTagIntent(type) {
|
|
13006
|
+
const map = {
|
|
13007
|
+
'interactive tutorial': 'brand',
|
|
13008
|
+
'video tutorial': 'primary',
|
|
13009
|
+
'user documentation': 'dark',
|
|
13010
|
+
'video presentation': 'inverse',
|
|
13011
|
+
'slide deck': 'strong',
|
|
13012
|
+
};
|
|
13013
|
+
return map[type] || 'brand-dark';
|
|
13014
|
+
}
|
|
13015
|
+
getLevelTagIntent(level) {
|
|
13016
|
+
const map = {
|
|
13017
|
+
'beginner': 'brand',
|
|
13018
|
+
'intermediate': 'dark',
|
|
13019
|
+
'advanced': 'strong',
|
|
13020
|
+
};
|
|
13021
|
+
return map[level] || 'brand-dark';
|
|
13022
|
+
}
|
|
13023
|
+
renderAccordionDescription(sw) {
|
|
13024
|
+
const count = sw.learning_resources_count;
|
|
13025
|
+
const types = sw.learning_resources_types.join(', ');
|
|
13026
|
+
return `${count} resource${count !== 1 ? 's' : ''} — ${types}`;
|
|
13027
|
+
}
|
|
13028
|
+
renderResources(sw) {
|
|
13029
|
+
const filtered = this.getFilteredResources(sw.learning_resources);
|
|
13030
|
+
return (hAsync("div", { class: "resources-content" }, sw.kg_search_url && (hAsync("div", { class: "kg-link" }, hAsync("eds-link", { url: sw.kg_search_url, label: "View in EBRAINS Knowledge Graph", intent: "cta", external: true }))), hAsync("table", { class: "resources-table" }, hAsync("thead", null, hAsync("tr", null, hAsync("th", { class: "col-name" }, "Name"), hAsync("th", { class: "col-type" }, "Type"), hAsync("th", { class: "col-level" }, "Level"))), hAsync("tbody", null, filtered.map(lr => (hAsync("tr", { class: `resource-row ${lr.iri ? 'resource-row--clickable' : ''}`, onClick: () => {
|
|
13031
|
+
if (lr.iri) {
|
|
13032
|
+
window.open(lr.iri, '_blank', 'noopener,noreferrer');
|
|
13033
|
+
}
|
|
13034
|
+
} }, hAsync("td", { class: "col-name" }, hAsync("span", { class: "resource-name" }, lr.name || 'Untitled'), lr.abstract && (hAsync("p", { class: "resource-desc" }, lr.abstract))), hAsync("td", { class: "col-type" }, lr.type && (hAsync("eds-tag", { label: lr.type, intent: this.getTagIntent(lr.type), size: "medium" }))), hAsync("td", { class: "col-level" }, lr.educational_level && (hAsync("eds-tag", { label: lr.educational_level, intent: this.getLevelTagIntent(lr.educational_level), size: "medium" })))))))), filtered.length === 0 && (hAsync("p", { class: "no-results" }, "No resources match the current filters."))));
|
|
13035
|
+
}
|
|
13036
|
+
render() {
|
|
13037
|
+
// Always render the same outer scaffold (header + content area) so the
|
|
13038
|
+
// heading sits in identical position across loading / error / loaded
|
|
13039
|
+
// states and the spinner appears where the accordion list will render.
|
|
13040
|
+
const filtered = !this.loading && !this.error ? this.getFilteredSoftware() : [];
|
|
13041
|
+
// const allTypes = this.getAllTypes();
|
|
13042
|
+
// const allLevels = this.getAllLevels();
|
|
13043
|
+
return (hAsync("div", { key: '154b59a74cb32996f1bee10ee7758d916bebdd43', class: "lr-container" }, hAsync("div", { key: '0c5c04b65f0c4e4c032b1b1a7d96e98fd6775563', class: "lr-header" }, hAsync("h2", { key: '01ef66537b31a63521f0406cd2ec9976b532d18f', class: "lr-heading" }, this.heading)), this.loading && (hAsync("div", { key: '134ca8e5f7349127b40aa1ae0967cd12dc12cc0b', class: "loading", role: "status", "aria-live": "polite" }, hAsync("eds-spinner", { key: 'a3a0621b6ea041f8da4ef6f36c1688974f3c5591', size: "sm", variant: "primary", background: "transparent", message: "Loading learning resources..." }))), this.error && !this.loading && (hAsync("eds-alert", { key: 'a0334442c175374daf8ce2be4da60ac004e4d0e2', intent: "error", message: this.error })), !this.loading && !this.error && (hAsync("div", { key: 'f2b8244f1ee5c052cabd5eec8cbfc36d06f4d08d', class: "accordion-list" }, filtered.map(sw => (hAsync("eds-accordion", { heading: sw.name, description: this.renderAccordionDescription(sw), variant: this.variant, icon: "book", switchBg: true, clampText: false }, this.renderResources(sw)))), filtered.length === 0 && (hAsync("p", { key: 'd572c9eb76279c93ba2bd5f0fae20b4e1d9fc816', class: "no-results" }, "No software matches the current filters."))))));
|
|
13044
|
+
}
|
|
13045
|
+
get el() { return getElement(this); }
|
|
13046
|
+
static get style() { return EdsKgLearningResourcesStyle0; }
|
|
13047
|
+
static get cmpMeta() { return {
|
|
13048
|
+
"$flags$": 9,
|
|
13049
|
+
"$tagName$": "eds-kg-learning-resources",
|
|
13050
|
+
"$members$": {
|
|
13051
|
+
"apiEndpoint": [1, "api-endpoint"],
|
|
13052
|
+
"resolveNames": [4, "resolve-names"],
|
|
13053
|
+
"size": [2],
|
|
13054
|
+
"heading": [1],
|
|
13055
|
+
"variant": [1],
|
|
13056
|
+
"loading": [32],
|
|
13057
|
+
"error": [32],
|
|
13058
|
+
"software": [32],
|
|
13059
|
+
"meta": [32],
|
|
13060
|
+
"filterType": [32],
|
|
13061
|
+
"filterLevel": [32],
|
|
13062
|
+
"searchQuery": [32]
|
|
13063
|
+
},
|
|
13064
|
+
"$listeners$": undefined,
|
|
13065
|
+
"$lazyBundleId$": "-",
|
|
13066
|
+
"$attrsToReflect$": []
|
|
13067
|
+
}; }
|
|
13068
|
+
}
|
|
13069
|
+
|
|
12640
13070
|
const edsKgWebServicesSelectCss = ".kg-web-services-select-container{width:100%}.loading-container,.error-container{width:100%}";
|
|
12641
13071
|
var EdsKgWebServicesSelectStyle0 = edsKgWebServicesSelectCss;
|
|
12642
13072
|
|
|
@@ -13047,7 +13477,7 @@ class EdsLink {
|
|
|
13047
13477
|
const labelClasses = this.hideLabelOnSmallScreen
|
|
13048
13478
|
? 'hidden lg:flex' // Tailwind example: hidden on small screens, visible on larger
|
|
13049
13479
|
: '';
|
|
13050
|
-
return (hAsync("a", { key: '
|
|
13480
|
+
return (hAsync("a", { key: 'd167c16280b7f0b4c1fcf14f0f0d3468111e715b', 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) }, hAsync("span", { key: '000476a609888f5f848722015ce5e6137f26e371', class: "z-1 relative inline-flex items-center justify-center" }, this.renderLeftIcon(), this.label && (hAsync("span", { key: '15232cde31d23c5a466189c69fbdb9db48f08274', 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())));
|
|
13051
13481
|
}
|
|
13052
13482
|
get el() { return getElement(this); }
|
|
13053
13483
|
static get style() { return EdsLinkStyle0; }
|
|
@@ -13131,7 +13561,7 @@ class EdsLogo {
|
|
|
13131
13561
|
}
|
|
13132
13562
|
render() {
|
|
13133
13563
|
const logoContent = this.getLogo();
|
|
13134
|
-
return (hAsync("a", { key: '
|
|
13564
|
+
return (hAsync("a", { key: '3f8257c9481079f011278b114e13effe9057d823', href: this.href, onClick: () => this.handleClick(), class: "eds-logo-wrapper", "aria-label": this.label }, hAsync("div", { key: '4dac45a1a0c38c6e1613995aad2005b41acac775', innerHTML: logoContent })));
|
|
13135
13565
|
}
|
|
13136
13566
|
get el() { return getElement(this); }
|
|
13137
13567
|
static get style() { return EdsLogoStyle0; }
|
|
@@ -13150,7 +13580,7 @@ class EdsLogo {
|
|
|
13150
13580
|
}; }
|
|
13151
13581
|
}
|
|
13152
13582
|
|
|
13153
|
-
const edsMatomoNoticeCss = "
|
|
13583
|
+
const edsMatomoNoticeCss = ":host{display:block;background-color:var(--white, #FFFFFF);border-radius:16px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.12);overflow:hidden}.flex{display:flex}.items-center{align-items:center}.gap-8{gap:0.5rem}";
|
|
13154
13584
|
var EdsMatomoNoticeStyle0 = edsMatomoNoticeCss;
|
|
13155
13585
|
|
|
13156
13586
|
class EdsMatomoNotice {
|
|
@@ -13261,7 +13691,13 @@ class EdsMatomoNotice {
|
|
|
13261
13691
|
if (!this.showNotice) {
|
|
13262
13692
|
return null;
|
|
13263
13693
|
}
|
|
13264
|
-
return (
|
|
13694
|
+
return (
|
|
13695
|
+
// Content-only render — no positioning, no overlay, no sizing.
|
|
13696
|
+
// The host application wraps this component in whatever positioned
|
|
13697
|
+
// container makes sense (fixed bottom banner, modal, sidebar slot,
|
|
13698
|
+
// etc.). See packages/shared-hugo/layouts/_default/baseof.html for
|
|
13699
|
+
// the bottom-centered card wrapper used by handbook/eds-docs.
|
|
13700
|
+
hAsync("div", null, hAsync("eds-accordion", { title: this.heading, description: this.hasCookieConsent() ? this.optOutMessage : this.description, switchBg: true, expanded: true }, this.hasCookieConsent() ? (hAsync("div", { class: "flex items-center gap-8" }, this.optedOut() ? (hAsync("eds-button", { intent: "brand", label: "Opt me in again", pill: true, "aria-label": "Opt me in again", onClick: () => this.optInAnalytics() })) : (hAsync("eds-button", { intent: "brand", label: "Keep Me In", pill: true, "aria-label": "Keep Me In", onClick: () => this.keepMeIn() })), hAsync("eds-button", { intent: "ghost", label: "Opt-out", pill: true, "aria-label": "Opt-out from analytics", onClick: () => this.optOutAnalytics() }))) : (hAsync("div", { class: "flex items-center gap-8" }, hAsync("eds-button", { intent: "brand", pill: true, label: "I agree", "aria-label": "Opt-in for analytics", onClick: () => this.optInAnalytics() }), hAsync("eds-button", { intent: "ghost", pill: true, label: "No, thanks", "aria-label": "Opt-out from analytics", onClick: () => this.noThanks() }))))));
|
|
13265
13701
|
}
|
|
13266
13702
|
get el() { return getElement(this); }
|
|
13267
13703
|
static get style() { return EdsMatomoNoticeStyle0; }
|
|
@@ -13503,7 +13939,7 @@ class EdsModal {
|
|
|
13503
13939
|
}; }
|
|
13504
13940
|
}
|
|
13505
13941
|
|
|
13506
|
-
const edsNpsCss = ".flex{display:flex}.justify-between{justify-content:space-between}.mt-4{margin-top:0.25rem}.mt-8{margin-top:0.5rem}.ml-4{margin-left:0.25rem}.mr-4{margin-right:0.25rem}.gap-2{gap:0.125rem}.gap-4{gap:0.25rem}.grid{display:grid}.grid-col-span-1{--container-grid-columns:1;grid-column:span 1 / span 1}.grid-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr))}.grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"]>*:nth-child(n)::before{border-bottom-width:1px}.grid-cols-11[class*=\"grid-line-xfull\"]>*:nth-child(n)::before{inset-inline-start:calc(var(--inner-gutter) / -2);inset-inline-end:calc(var(--inner-gutter) / -2)}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1)::before{inset-inline-start:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+11)::before{inset-inline-end:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1):nth-last-child(-n+11)::before{border-bottom-width:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1):nth-last-child(-n+11)~*::before{border-bottom-width:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(n)::after{border-inline-end-width:1px}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+11)::after{border-inline-end-width:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(-n+11)::after{top:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+1):nth-last-child(-n+11)::after{bottom:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+1):nth-last-child(-n+11)~li::after{bottom:0}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}.text-light{color:var(--grey-dark)}.flex-wrap{flex-wrap:wrap}";
|
|
13942
|
+
const edsNpsCss = ".eds-nps__labels{padding-top:0.75rem;padding-bottom:0.5rem}.eds-nps__scale{display:block;width:fit-content;max-width:100%;padding-top:0.5rem;}#nps-buttons{gap:0.6rem}.eds-nps__btn{border-radius:9999px;transition:transform 0.15s ease-in-out}.eds-nps__btn.is-selected{transform:scale(1.12)}.flex{display:flex}.justify-between{justify-content:space-between}.mt-4{margin-top:0.25rem}.mt-8{margin-top:0.5rem}.ml-4{margin-left:0.25rem}.mr-4{margin-right:0.25rem}.gap-2{gap:0.125rem}.gap-4{gap:0.25rem}.grid{display:grid}.grid-col-span-1{--container-grid-columns:1;grid-column:span 1 / span 1}.grid-cols-11{grid-template-columns:repeat(11, minmax(0, 1fr))}.grid-cols-11[class*=\"grid-line-x\"][class*=\"grid-line-x\"]>*:nth-child(n)::before{border-bottom-width:1px}.grid-cols-11[class*=\"grid-line-xfull\"]>*:nth-child(n)::before{inset-inline-start:calc(var(--inner-gutter) / -2);inset-inline-end:calc(var(--inner-gutter) / -2)}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1)::before{inset-inline-start:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+11)::before{inset-inline-end:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1):nth-last-child(-n+11)::before{border-bottom-width:0}.grid-cols-11[class*=\"grid-line-x\"]>*:nth-child(11n+1):nth-last-child(-n+11)~*::before{border-bottom-width:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(n)::after{border-inline-end-width:1px}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+11)::after{border-inline-end-width:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(-n+11)::after{top:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+1):nth-last-child(-n+11)::after{bottom:0}.grid-cols-11[class*=\"grid-line-y\"][class*=\"grid-line-y\"]>*:nth-child(11n+1):nth-last-child(-n+11)~li::after{bottom:0}.f-ui-04{font-family:var(--f-ui-04-fontFamily);font-weight:var(--f-ui-04-fontWeight);font-size:var(--f-ui-04-fontSize);line-height:var(--f-ui-04-lineHeight);letter-spacing:var(--f-ui-04-letterSpacing)}.text-light{color:var(--grey-dark)}.flex-wrap{flex-wrap:wrap}";
|
|
13507
13943
|
var EdsNpsStyle0 = edsNpsCss;
|
|
13508
13944
|
|
|
13509
13945
|
class EdsNps {
|
|
@@ -13584,14 +14020,14 @@ class EdsNps {
|
|
|
13584
14020
|
}
|
|
13585
14021
|
render() {
|
|
13586
14022
|
const count = this.max - this.min + 1;
|
|
13587
|
-
return (hAsync("div", { key: '
|
|
14023
|
+
return (hAsync("div", { key: '412ddeabf0cc97829202063af25f17e3309b0754', class: "eds-nps" }, hAsync("eds-input-label", { key: '100a47e710fa75d6a5761a87ca68e8bc8910e248', id: "nps-question", name: "nps-question", label: this.question }), hAsync("div", { key: '9a7a63112e17f4c725005e1ae8e42c98107db7c4', class: "eds-nps__scale" }, hAsync("div", { key: '501029dad573cd31d956ae3cae67f2db9f2649f1', id: "nps-buttons", role: "radiogroup", "aria-labelledby": "nps-question", onKeyDown: this.handleKeyNav, class: "flex flex-wrap gap-2 my-8" }, Array.from({ length: count }, (_, i) => {
|
|
13588
14024
|
const val = this.min + i;
|
|
13589
14025
|
const isSelected = val === this.internalValue;
|
|
13590
14026
|
const tabIndex = isSelected || (this.internalValue == null && i === 0) ? 0 : -1;
|
|
13591
|
-
return (hAsync("div", { class: "flex", key: val }, hAsync("eds-button", { ref: (el) => (this.btnRefs[i] = el), size: "large", role: "radio", "aria-checked": isSelected ? 'true' : 'false', "aria-label": `${val}`, onClick: () => this.onSelect(val), tabIndex: tabIndex, intent: isSelected ? 'brand' : '
|
|
14027
|
+
return (hAsync("div", { class: "flex", key: val }, hAsync("eds-button", { ref: (el) => (this.btnRefs[i] = el), size: "large", role: "radio", "aria-checked": isSelected ? 'true' : 'false', "aria-label": `${val}`, onClick: () => this.onSelect(val), tabIndex: tabIndex, intent: isSelected ? 'brand' : 'brandLight', class: isSelected ? 'eds-nps__btn is-selected' : 'eds-nps__btn', "extra-class": "!block !px-0 w-full", label: `${val}`, pill: true, onFocus: () => {
|
|
13592
14028
|
this.internalValue = val;
|
|
13593
14029
|
} })));
|
|
13594
|
-
})), hAsync("div", { key: '
|
|
14030
|
+
})), hAsync("div", { key: 'aa15457591f1edf6e59eed384bcfbb25d49c9fd5', class: "flex justify-between eds-nps__labels" }, hAsync("span", { key: 'a468b290491e368e3084f17ce40c6aa39e00ad3a', class: "f-ui-04 text-light ml-4" }, this.leftLabel), hAsync("span", { key: '146b9eea4bbc360f7765e69e319738c77beae69d', class: "f-ui-04 text-light mr-4" }, this.rightLabel)))));
|
|
13595
14031
|
}
|
|
13596
14032
|
get el() { return getElement(this); }
|
|
13597
14033
|
static get watchers() { return {
|
|
@@ -13867,7 +14303,7 @@ class EdsPagination {
|
|
|
13867
14303
|
}
|
|
13868
14304
|
render() {
|
|
13869
14305
|
const navigableIndex = -1; // Track index for keyboard navigation
|
|
13870
|
-
return (hAsync("div", { key: '
|
|
14306
|
+
return (hAsync("div", { key: '5c11fd306f0ebf47a452e44d633e18b2e3860d78' }, this.total > 0 && this.mode === 'default' && (hAsync("p", { key: 'fe8b7f7b6c7785152f1edd90a750f4a9a7e2768b', class: "f-ui-03 text-light mb-28 w-full text-center", "aria-live": "polite", id: "pagination-info" }, hAsync("span", { key: '5e2c67535dbf765dc662770164404f0de69315a1', class: "text-light sr-only" }, "Results:"), this.pageResults())), this.mode === 'navigator' || (this.lastPage && this.lastPage > 1) ? (hAsync("nav", { "aria-label": "Pagination Navigation", "aria-describedby": this.mode === 'default' ? 'pagination-info' : undefined, onKeyDown: this.handleKeyDown }, hAsync("ul", { class: "flex items-center justify-center gap-x-8", role: "list" }, hAsync("li", { class: "mr-auto" }, this.useButtons ? (hAsync("div", { class: "pagination-button-wrapper", onFocus: () => this.handleItemFocus(navigableIndex) }, hAsync("eds-button", { label: this.prevLabel, disabled: this.mode === 'navigator' ? !this.prevUrl : this.isFirstPage(), "aria-label": "Go to previous page", icon: "chevron-left", "icon-pos": "left", size: "small", "icon-small": "true", intent: "ghost", "extra-class": "!p-8 lg:!pr-12 pagination-button", onClick: (event) => {
|
|
13871
14307
|
if (this.mode === 'default' && !this.isFirstPage()) {
|
|
13872
14308
|
this.handlePageClick(event, (this.currentPage || 1) - 1);
|
|
13873
14309
|
}
|
|
@@ -13876,7 +14312,7 @@ class EdsPagination {
|
|
|
13876
14312
|
: this.isFirstPage()
|
|
13877
14313
|
? '#'
|
|
13878
14314
|
: this.generateLink(this.currentPage - 1).url, disabled: this.mode === 'navigator' ? !this.prevUrl : this.isFirstPage(), "aria-label": "Go to previous page", icon: "chevron-left", "icon-pos": "left", size: "small", "icon-small": "true", intent: "strong", "hide-label-on-small-screen": true, class: "!p-8 lg:!pr-12" }))), this.mode === 'default' &&
|
|
13879
|
-
this.links.map((link, index) => (hAsync("li", { key: index, class: "f-ui-02 flex h-36 items-center justify-center" }, typeof link === 'string' ? (hAsync("span", { class: "flex items-center justify-center", "aria-hidden": "true" }, link)) : this.useButtons ? (hAsync("div", { class: "pagination-button-wrapper", onFocus: () => this.handleItemFocus(navigableIndex) }, hAsync("eds-button", { label: link.label, "aria-label": link.current ? `Current page, page ${link.label}` : `Go to page ${link.label}`, "aria-current": link.current ? 'page' : undefined, size: "small", "extra-class": "!p-8 pagination-button", intent: link.current ? '
|
|
14315
|
+
this.links.map((link, index) => (hAsync("li", { key: index, class: "f-ui-02 flex h-36 items-center justify-center" }, typeof link === 'string' ? (hAsync("span", { class: "flex items-center justify-center", "aria-hidden": "true" }, link)) : this.useButtons ? (hAsync("div", { class: "pagination-button-wrapper", onFocus: () => this.handleItemFocus(navigableIndex) }, hAsync("eds-button", { label: link.label, "aria-label": link.current ? `Current page, page ${link.label}` : `Go to page ${link.label}`, "aria-current": link.current ? 'page' : undefined, size: "small", "extra-class": "!p-8 pagination-button", intent: link.current ? 'brand' : 'ghost', onClick: (event) => this.handlePageClick(event, parseInt(link.label)) }))) : (hAsync("eds-link", { url: link.url, "aria-label": link.ariaLabel, label: link.label, current: link.current, "aria-current": link.current ? 'page' : undefined, size: "small", class: "!p-8", intent: link.current ? 'primary' : 'secondary', onClick: (event) => this.handlePageClick(event, parseInt(link.label)) }))))), hAsync("li", { class: "ml-auto" }, this.useButtons ? (hAsync("div", { class: "pagination-button-wrapper", onFocus: () => this.handleItemFocus(navigableIndex) }, hAsync("eds-button", { label: this.nextLabel, disabled: this.mode === 'navigator' ? !this.nextUrl : this.isLastPage(), "aria-label": "Go to next page", size: "small", "icon-small": "true", icon: "chevron-right", intent: "ghost", "extra-class": "!p-8 lg:!pl-12 pagination-button", onClick: (event) => {
|
|
13880
14316
|
if (this.mode === 'default' && !this.isLastPage()) {
|
|
13881
14317
|
this.handlePageClick(event, (this.currentPage || 1) + 1);
|
|
13882
14318
|
}
|
|
@@ -14102,7 +14538,7 @@ class EdsProgressBar {
|
|
|
14102
14538
|
}; }
|
|
14103
14539
|
}
|
|
14104
14540
|
|
|
14105
|
-
const edsRatingCss = ":host{display:inline-block}.block{display:block}.stars{display:flex;gap:0.25rem;cursor:pointer}.star{color:var(--star-empty-color, #ccc);transition:color 0.2s ease-in-out}.star.filled{color:var(--brand-green);}.star:hover,.star.filled:hover{transform:scale(1.2)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.mt-4{margin-top:0.25rem}.mt-6{margin-top:0.375rem}.mt-8{margin-top:0.5rem}.my-4{margin-top:0.25rem;margin-bottom:0.25rem}.my-8{margin-top:0.5rem;margin-bottom:0.5rem}.my-16{margin-top:1rem;margin-bottom:1rem}.my-20{margin-top:1.25rem;margin-bottom:1.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.0625rem * var(--tw-space-x-reverse));margin-left:calc(0.0625rem * calc(1 - var(--tw-space-x-reverse)))}";
|
|
14541
|
+
const edsRatingCss = ":host{display:inline-block}.block{display:block}.stars{display:flex;gap:0.25rem;cursor:pointer}.star{color:var(--star-empty-color, #ccc);transition:color 0.2s ease-in-out}.star.filled{color:var(--brand-green);}.star:hover,.star.filled:hover{transform:scale(1.2)}.eds-rating__btn{transition:transform 0.15s ease-in-out}.eds-rating__btn.is-selected{transform:scale(1.05)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.mt-4{margin-top:0.25rem}.mt-6{margin-top:0.375rem}.mt-8{margin-top:0.5rem}.my-4{margin-top:0.25rem;margin-bottom:0.25rem}.my-8{margin-top:0.5rem;margin-bottom:0.5rem}.my-16{margin-top:1rem;margin-bottom:1rem}.my-20{margin-top:1.25rem;margin-bottom:1.25rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.0625rem * var(--tw-space-x-reverse));margin-left:calc(0.0625rem * calc(1 - var(--tw-space-x-reverse)))}";
|
|
14106
14542
|
var EdsRatingStyle0 = edsRatingCss;
|
|
14107
14543
|
|
|
14108
14544
|
class EdsRating {
|
|
@@ -14181,12 +14617,12 @@ class EdsRating {
|
|
|
14181
14617
|
this.onSelect(next);
|
|
14182
14618
|
}
|
|
14183
14619
|
render() {
|
|
14184
|
-
return (hAsync("div", { key: '
|
|
14620
|
+
return (hAsync("div", { key: '01857f12c63fbe53b95152902ddba594aa736f6f', id: "rating-buttons", role: "group", "aria-labelledby": "rating", class: "stars flex space-x-1 my-8", onKeyDown: (e) => this.handleKeyNav(e) }, Array.from({ length: this.ratingCount }, (_, index) => {
|
|
14185
14621
|
const starRating = index + 1;
|
|
14186
14622
|
const isSelected = starRating <= this.internalRating;
|
|
14187
14623
|
// Use the mapping text if available; otherwise, fall back to a generic label.
|
|
14188
14624
|
const checked = this.internalRating === starRating;
|
|
14189
|
-
return (hAsync("eds-button", { ref: (el) => (this.buttonRefs[index] = el), icon: this.ratingType, "aria-label": `${starRating} ${this.ratingType}${starRating > 1 ? 's' : ''}`, onClick: () => this.onSelect(starRating), tabIndex: checked || (this.internalRating === 0 && index === 0) ? 0 : -1, intent: isSelected ? 'brand' : '
|
|
14625
|
+
return (hAsync("eds-button", { ref: (el) => (this.buttonRefs[index] = el), icon: this.ratingType, "aria-label": `${starRating} ${this.ratingType}${starRating > 1 ? 's' : ''}`, onClick: () => this.onSelect(starRating), tabIndex: checked || (this.internalRating === 0 && index === 0) ? 0 : -1, intent: isSelected ? 'brand' : 'brandLight', class: isSelected ? 'eds-rating__btn is-selected' : 'eds-rating__btn', size: "large" }));
|
|
14190
14626
|
})));
|
|
14191
14627
|
}
|
|
14192
14628
|
get el() { return getElement(this); }
|
|
@@ -14209,6 +14645,346 @@ class EdsRating {
|
|
|
14209
14645
|
}; }
|
|
14210
14646
|
}
|
|
14211
14647
|
|
|
14648
|
+
const edsSearchSelectCss = ":host{display:block;width:100%;font-family:var(--f-ui-02-fontFamily, 'IBM Plex Sans', system-ui, sans-serif)}.eds-ss{position:relative;display:block;width:100%}.eds-ss__labelrow{display:flex;justify-content:space-between;margin-bottom:0.25rem}.eds-ss__hint{margin-top:0.5rem;margin-left:0.5rem;font-family:var(--f-ui-05-fontFamily);font-weight:var(--f-ui-05-fontWeight);font-size:var(--f-ui-05-fontSize);line-height:var(--f-ui-05-lineHeight);letter-spacing:var(--f-ui-05-letterSpacing);color:var(--grey-600)}.eds-ss__control{position:relative}.eds-ss__box{display:flex;flex-wrap:wrap;align-items:center;gap:0.35rem;width:100%;box-sizing:border-box;min-height:2.5rem;padding:6px 0.75rem;padding-right:3.75rem;border-width:2px;border-style:solid;border-color:rgba(0, 0, 0, 0.1);border-radius:8px;background:var(--white, #fff);transition-property:color, background-color, border-color;transition-timing-function:cubic-bezier(0, 0, 0.2, 1);transition-duration:300ms}.eds-ss__box:hover{border-color:var(--brand-black)}.eds-ss__box:focus-within{border-color:var(--brand-black);outline:3px solid var(--brand-green);outline-offset:2px}.eds-ss__box.is-error{border-color:var(--red-700)}.eds-ss__box.is-disabled{cursor:not-allowed;background-color:var(--grey-300)}.eds-ss__input{flex:1;min-width:6rem;border:none;outline:none;background:transparent;padding:4px 0;color:var(--brand-black);font-family:var(--f-ui-02-light-fontFamily);font-weight:var(--f-ui-02-light-fontWeight);font-size:var(--f-ui-02-light-fontSize);line-height:var(--f-ui-02-light-lineHeight);letter-spacing:var(--f-ui-02-light-letterSpacing)}.eds-ss__input::placeholder{color:var(--grey-500)}.eds-ss__input:disabled{cursor:not-allowed;color:var(--grey-500)}.eds-ss__chip{display:inline-flex;align-items:center;gap:0.35rem;padding:4px 0.4rem 4px 0.7rem;background:rgba(0, 200, 123, 0.12);color:var(--brand-green-dark, #00A867);border-radius:6px;font-family:var(--f-ui-02-fontFamily);font-size:var(--f-ui-02-fontSize);font-weight:600;line-height:1.4;max-width:100%}.eds-ss__chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eds-ss__chip-x{flex-shrink:0;border:none;background:none;cursor:pointer;color:var(--brand-green-dark, #00A867);font-size:1.2rem;line-height:1;padding:0 2px}.eds-ss__chip-x:hover{color:var(--brand-black, #07140D)}.eds-ss__clear,.eds-ss__chevron{position:absolute;top:50%;transform:translateY(-50%)}.eds-ss__chevron{right:6px;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;background-color:var(--grey-300);border-radius:4px;color:var(--brand-black);pointer-events:none}.eds-ss__clear{right:2.6rem;color:var(--grey-600, #6e6e6e);background:none;border:none;cursor:pointer;font-size:1.05rem;line-height:1}.eds-ss__clear:hover{color:var(--brand-black, #07140D)}.eds-ss__list{position:absolute;z-index:50;left:0;right:0;margin:0.25rem 0 0;padding:0.25rem;list-style:none;max-height:18rem;overflow-y:auto;background:var(--white, #fff);border:2px solid rgba(0, 0, 0, 0.1);border-radius:8px;box-shadow:0 8px 24px rgba(0, 0, 0, 0.12)}.eds-ss__option{padding:0.5rem 0.6rem;border-radius:6px;cursor:pointer;color:var(--brand-black, #07140D);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)}.eds-ss__option.is-active{background:rgba(0, 200, 123, 0.1)}.eds-ss__option.is-selected{font-weight:600;color:var(--brand-green-dark, #00A867)}.eds-ss__status,.eds-ss__more{padding:0.5rem 0.6rem;font-family:var(--f-ui-05-fontFamily);font-size:var(--f-ui-05-fontSize);line-height:var(--f-ui-05-lineHeight);color:var(--grey-600, #6e6e6e)}.eds-ss__status.is-error{color:var(--red-700, #d64545)}.eds-ss__more{border-top:1px solid rgba(0, 0, 0, 0.1);margin-top:0.25rem;font-style:italic}";
|
|
14649
|
+
var EdsSearchSelectStyle0 = edsSearchSelectCss;
|
|
14650
|
+
|
|
14651
|
+
/**
|
|
14652
|
+
* Searchable, source-agnostic select for HUGE option lists (countries,
|
|
14653
|
+
* currencies, nationalities, …) — the generalised sibling of
|
|
14654
|
+
* eds-kg-web-services-select.
|
|
14655
|
+
*
|
|
14656
|
+
* It never talks to an external API directly. It either filters an inline
|
|
14657
|
+
* `options` array client-side, or queries a VETTED, NAMED `source` through our
|
|
14658
|
+
* own datasets registry (`/api/v1/datasets/<source>/search`), which returns the
|
|
14659
|
+
* one normalised shape `{ items: [{label, value}], total, nextOffset }`. Any
|
|
14660
|
+
* messy upstream schema is flattened server-side by an adapter — the component
|
|
14661
|
+
* stays dumb.
|
|
14662
|
+
*
|
|
14663
|
+
* Rendering is result-capped (we render at most `maxVisible` rows and tell the
|
|
14664
|
+
* user to keep typing) so a 5,000-item source never blows up the DOM. Remote
|
|
14665
|
+
* sources are additionally bounded by the server's page `limit`.
|
|
14666
|
+
*/
|
|
14667
|
+
class EdsSearchSelect {
|
|
14668
|
+
constructor(hostRef) {
|
|
14669
|
+
registerInstance(this, hostRef);
|
|
14670
|
+
this.edsinput = createEvent(this, "edsinput", 7);
|
|
14671
|
+
this.edschange = createEvent(this, "edschange", 7);
|
|
14672
|
+
this.debounceTimer = null;
|
|
14673
|
+
this.inlineOptions = [];
|
|
14674
|
+
this.listboxId = `eds-ss-list-${Math.round(performance.now())}`;
|
|
14675
|
+
// value -> label, so selected tags render readable labels even for remote
|
|
14676
|
+
// values whose label hasn't been fetched in the current page.
|
|
14677
|
+
this.labelCache = {};
|
|
14678
|
+
this.onInput = (e) => {
|
|
14679
|
+
this.query = e.target.value;
|
|
14680
|
+
this.open = true;
|
|
14681
|
+
this.activeIndex = -1;
|
|
14682
|
+
this.runSearch(this.query);
|
|
14683
|
+
};
|
|
14684
|
+
this.clear = () => {
|
|
14685
|
+
if (this.multiple) {
|
|
14686
|
+
this.value = [];
|
|
14687
|
+
this.emitValue([]);
|
|
14688
|
+
}
|
|
14689
|
+
else {
|
|
14690
|
+
this.value = undefined;
|
|
14691
|
+
this.selectedLabel = '';
|
|
14692
|
+
this.emitValue('');
|
|
14693
|
+
}
|
|
14694
|
+
this.query = '';
|
|
14695
|
+
};
|
|
14696
|
+
this.onKeyDown = (e) => {
|
|
14697
|
+
if (e.key === 'ArrowDown') {
|
|
14698
|
+
e.preventDefault();
|
|
14699
|
+
if (!this.open)
|
|
14700
|
+
return this.openMenu();
|
|
14701
|
+
this.activeIndex = Math.min(this.activeIndex + 1, this.visibleItems.length - 1);
|
|
14702
|
+
}
|
|
14703
|
+
else if (e.key === 'ArrowUp') {
|
|
14704
|
+
e.preventDefault();
|
|
14705
|
+
this.activeIndex = Math.max(this.activeIndex - 1, 0);
|
|
14706
|
+
}
|
|
14707
|
+
else if (e.key === 'Enter') {
|
|
14708
|
+
if (this.open && this.activeIndex >= 0) {
|
|
14709
|
+
e.preventDefault();
|
|
14710
|
+
this.select(this.visibleItems[this.activeIndex]);
|
|
14711
|
+
}
|
|
14712
|
+
}
|
|
14713
|
+
else if (e.key === 'Escape') {
|
|
14714
|
+
this.closeMenu();
|
|
14715
|
+
}
|
|
14716
|
+
else if (e.key === 'Backspace' && this.multiple && !this.query && this.selectedValues.length) {
|
|
14717
|
+
// Backspace on an empty query removes the last selected tag.
|
|
14718
|
+
this.removeValue(this.selectedValues[this.selectedValues.length - 1]);
|
|
14719
|
+
}
|
|
14720
|
+
};
|
|
14721
|
+
// Close when a click lands outside the component. Must be shadow-aware:
|
|
14722
|
+
// this component is nested inside eds-form's shadow root, so a document-level
|
|
14723
|
+
// listener sees the event retargeted to the OUTER host — `host.contains(target)`
|
|
14724
|
+
// would be false even for our own clicks and wrongly close on open. composedPath()
|
|
14725
|
+
// walks through every shadow boundary and contains our host iff the click was ours.
|
|
14726
|
+
this.onDocumentClick = (e) => {
|
|
14727
|
+
if (this.open && !e.composedPath().includes(this.host))
|
|
14728
|
+
this.closeMenu();
|
|
14729
|
+
};
|
|
14730
|
+
this.name = undefined;
|
|
14731
|
+
this.label = undefined;
|
|
14732
|
+
this.placeholder = 'Search…';
|
|
14733
|
+
this.required = false;
|
|
14734
|
+
this.disabled = false;
|
|
14735
|
+
this.hint = undefined;
|
|
14736
|
+
this.message = undefined;
|
|
14737
|
+
this.error = false;
|
|
14738
|
+
this.errorMessage = undefined;
|
|
14739
|
+
this.value = undefined;
|
|
14740
|
+
this.multiple = false;
|
|
14741
|
+
this.options = undefined;
|
|
14742
|
+
this.source = undefined;
|
|
14743
|
+
this.apiBase = '/api/v1';
|
|
14744
|
+
this.searchParam = 'q';
|
|
14745
|
+
this.limit = 50;
|
|
14746
|
+
this.debounceMs = 250;
|
|
14747
|
+
this.maxVisible = 100;
|
|
14748
|
+
this.open = false;
|
|
14749
|
+
this.query = '';
|
|
14750
|
+
this.loading = false;
|
|
14751
|
+
this.fetchError = '';
|
|
14752
|
+
this.items = [];
|
|
14753
|
+
this.total = 0;
|
|
14754
|
+
this.activeIndex = -1;
|
|
14755
|
+
this.selectedLabel = '';
|
|
14756
|
+
}
|
|
14757
|
+
componentWillLoad() {
|
|
14758
|
+
this.parseInlineOptions();
|
|
14759
|
+
this.resolveSelectedLabel();
|
|
14760
|
+
}
|
|
14761
|
+
onOptionsChange() {
|
|
14762
|
+
this.parseInlineOptions();
|
|
14763
|
+
this.resolveSelectedLabel();
|
|
14764
|
+
}
|
|
14765
|
+
onValueChange() {
|
|
14766
|
+
this.resolveSelectedLabel();
|
|
14767
|
+
}
|
|
14768
|
+
parseInlineOptions() {
|
|
14769
|
+
if (!this.options) {
|
|
14770
|
+
this.inlineOptions = [];
|
|
14771
|
+
return;
|
|
14772
|
+
}
|
|
14773
|
+
if (typeof this.options === 'string') {
|
|
14774
|
+
try {
|
|
14775
|
+
this.inlineOptions = JSON.parse(this.options) || [];
|
|
14776
|
+
}
|
|
14777
|
+
catch (_a) {
|
|
14778
|
+
this.inlineOptions = [];
|
|
14779
|
+
}
|
|
14780
|
+
}
|
|
14781
|
+
else {
|
|
14782
|
+
this.inlineOptions = this.options;
|
|
14783
|
+
}
|
|
14784
|
+
this.cacheLabels(this.inlineOptions);
|
|
14785
|
+
}
|
|
14786
|
+
cacheLabels(opts) {
|
|
14787
|
+
(opts || []).forEach((o) => {
|
|
14788
|
+
if (o && o.value != null)
|
|
14789
|
+
this.labelCache[String(o.value)] = o.label;
|
|
14790
|
+
});
|
|
14791
|
+
}
|
|
14792
|
+
/** The current selection as a value array (works for single + multi). */
|
|
14793
|
+
get selectedValues() {
|
|
14794
|
+
const v = this.value;
|
|
14795
|
+
if (Array.isArray(v))
|
|
14796
|
+
return v.map(String).filter((s) => s !== '');
|
|
14797
|
+
if (typeof v === 'string' && v !== '') {
|
|
14798
|
+
return this.multiple ? v.split(',').filter(Boolean) : [v];
|
|
14799
|
+
}
|
|
14800
|
+
return [];
|
|
14801
|
+
}
|
|
14802
|
+
labelFor(val) {
|
|
14803
|
+
var _a, _b;
|
|
14804
|
+
return (this.labelCache[String(val)] ||
|
|
14805
|
+
((_a = this.inlineOptions.find((o) => String(o.value) === String(val))) === null || _a === void 0 ? void 0 : _a.label) ||
|
|
14806
|
+
((_b = this.items.find((o) => String(o.value) === String(val))) === null || _b === void 0 ? void 0 : _b.label) ||
|
|
14807
|
+
String(val));
|
|
14808
|
+
}
|
|
14809
|
+
emitValue(v) {
|
|
14810
|
+
this.edsinput.emit({ value: v });
|
|
14811
|
+
this.edschange.emit({ value: v });
|
|
14812
|
+
}
|
|
14813
|
+
get isRemote() {
|
|
14814
|
+
return !!this.source && this.inlineOptions.length === 0;
|
|
14815
|
+
}
|
|
14816
|
+
resolveSelectedLabel() {
|
|
14817
|
+
if (!this.value) {
|
|
14818
|
+
this.selectedLabel = '';
|
|
14819
|
+
return;
|
|
14820
|
+
}
|
|
14821
|
+
// Inline: resolve label from the known list. Remote: best-effort — show the
|
|
14822
|
+
// value until/unless it appears in a fetched page.
|
|
14823
|
+
const pool = this.inlineOptions.length ? this.inlineOptions : this.items;
|
|
14824
|
+
const found = pool.find((o) => String(o.value) === String(this.value));
|
|
14825
|
+
this.selectedLabel = found ? found.label : String(this.value);
|
|
14826
|
+
}
|
|
14827
|
+
// --- Data --------------------------------------------------------------
|
|
14828
|
+
filterInline(q) {
|
|
14829
|
+
const needle = q.trim().toLowerCase();
|
|
14830
|
+
if (!needle)
|
|
14831
|
+
return this.inlineOptions;
|
|
14832
|
+
return this.inlineOptions.filter((o) => o.label.toLowerCase().includes(needle) ||
|
|
14833
|
+
String(o.value).toLowerCase().includes(needle));
|
|
14834
|
+
}
|
|
14835
|
+
async fetchRemote(q) {
|
|
14836
|
+
this.loading = true;
|
|
14837
|
+
this.fetchError = '';
|
|
14838
|
+
try {
|
|
14839
|
+
const params = new URLSearchParams({ [this.searchParam]: q, limit: String(this.limit) });
|
|
14840
|
+
const url = `${this.apiBase}/datasets/${encodeURIComponent(this.source)}/search?${params}`;
|
|
14841
|
+
const resp = await fetch(url);
|
|
14842
|
+
if (!resp.ok)
|
|
14843
|
+
throw new Error(`Search failed: ${resp.statusText}`);
|
|
14844
|
+
const data = await resp.json();
|
|
14845
|
+
this.items = data.items || [];
|
|
14846
|
+
this.cacheLabels(this.items);
|
|
14847
|
+
this.total = typeof data.total === 'number' ? data.total : this.items.length;
|
|
14848
|
+
this.resolveSelectedLabel();
|
|
14849
|
+
}
|
|
14850
|
+
catch (e) {
|
|
14851
|
+
this.fetchError = e instanceof Error ? e.message : 'Search failed';
|
|
14852
|
+
this.items = [];
|
|
14853
|
+
this.total = 0;
|
|
14854
|
+
}
|
|
14855
|
+
finally {
|
|
14856
|
+
this.loading = false;
|
|
14857
|
+
}
|
|
14858
|
+
}
|
|
14859
|
+
runSearch(q, immediate = false) {
|
|
14860
|
+
if (this.isRemote) {
|
|
14861
|
+
// Show the loading state synchronously so the debounce window renders
|
|
14862
|
+
// "Searching…" rather than a misleading "No matches" before the fetch.
|
|
14863
|
+
this.loading = true;
|
|
14864
|
+
clearTimeout(this.debounceTimer);
|
|
14865
|
+
if (immediate) {
|
|
14866
|
+
this.fetchRemote(q);
|
|
14867
|
+
}
|
|
14868
|
+
else {
|
|
14869
|
+
this.debounceTimer = setTimeout(() => this.fetchRemote(q), this.debounceMs);
|
|
14870
|
+
}
|
|
14871
|
+
}
|
|
14872
|
+
else {
|
|
14873
|
+
this.items = this.filterInline(q);
|
|
14874
|
+
this.total = this.items.length;
|
|
14875
|
+
}
|
|
14876
|
+
}
|
|
14877
|
+
// --- The capped, render-ready slice ------------------------------------
|
|
14878
|
+
get visibleItems() {
|
|
14879
|
+
return this.items.slice(0, this.maxVisible);
|
|
14880
|
+
}
|
|
14881
|
+
get hiddenCount() {
|
|
14882
|
+
return Math.max(0, this.total - this.visibleItems.length);
|
|
14883
|
+
}
|
|
14884
|
+
// --- Interaction -------------------------------------------------------
|
|
14885
|
+
openMenu() {
|
|
14886
|
+
if (this.disabled)
|
|
14887
|
+
return;
|
|
14888
|
+
this.open = true;
|
|
14889
|
+
this.activeIndex = -1;
|
|
14890
|
+
// Populate on first open (initial page for remote, full list for inline).
|
|
14891
|
+
// Immediate fetch on open — debounce only applies to typing.
|
|
14892
|
+
if (!this.items.length || this.isRemote)
|
|
14893
|
+
this.runSearch(this.query, true);
|
|
14894
|
+
}
|
|
14895
|
+
closeMenu() {
|
|
14896
|
+
this.open = false;
|
|
14897
|
+
this.activeIndex = -1;
|
|
14898
|
+
}
|
|
14899
|
+
select(opt) {
|
|
14900
|
+
this.labelCache[String(opt.value)] = opt.label;
|
|
14901
|
+
if (this.multiple) {
|
|
14902
|
+
const current = this.selectedValues;
|
|
14903
|
+
const key = String(opt.value);
|
|
14904
|
+
const next = current.includes(key)
|
|
14905
|
+
? current.filter((v) => v !== key) // toggle off if already chosen
|
|
14906
|
+
: [...current, key];
|
|
14907
|
+
this.value = next;
|
|
14908
|
+
this.query = '';
|
|
14909
|
+
this.emitValue(next);
|
|
14910
|
+
// Keep the menu open so more can be picked; reset the list to all results.
|
|
14911
|
+
this.runSearch('', true);
|
|
14912
|
+
return;
|
|
14913
|
+
}
|
|
14914
|
+
this.value = opt.value;
|
|
14915
|
+
this.selectedLabel = opt.label;
|
|
14916
|
+
this.query = '';
|
|
14917
|
+
this.closeMenu();
|
|
14918
|
+
this.emitValue(opt.value);
|
|
14919
|
+
}
|
|
14920
|
+
removeValue(val, e) {
|
|
14921
|
+
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
14922
|
+
const next = this.selectedValues.filter((v) => v !== String(val));
|
|
14923
|
+
this.value = next;
|
|
14924
|
+
this.emitValue(next);
|
|
14925
|
+
}
|
|
14926
|
+
connectedCallback() {
|
|
14927
|
+
document.addEventListener('click', this.onDocumentClick, true);
|
|
14928
|
+
}
|
|
14929
|
+
disconnectedCallback() {
|
|
14930
|
+
document.removeEventListener('click', this.onDocumentClick, true);
|
|
14931
|
+
clearTimeout(this.debounceTimer);
|
|
14932
|
+
}
|
|
14933
|
+
render() {
|
|
14934
|
+
const selected = this.selectedValues;
|
|
14935
|
+
const hasSelection = selected.length > 0;
|
|
14936
|
+
const inputValue = this.multiple ? this.query : (this.open ? this.query : this.selectedLabel);
|
|
14937
|
+
const placeholder = this.multiple
|
|
14938
|
+
? (hasSelection ? '' : this.placeholder)
|
|
14939
|
+
: (hasSelection && !this.open ? this.selectedLabel : this.placeholder);
|
|
14940
|
+
return (hAsync("div", { key: 'f5224332aa395be2a9dd8a1312dcd1b631ad2129', class: "eds-ss" }, (this.label || this.hint) && (hAsync("div", { key: 'e28da19abdedb4107a7b7be2a59e6444780f8251', class: "eds-ss__labelrow" }, this.label && (hAsync("eds-input-label", { key: '81933dbc2d370b8ddbbf8f4286c3420e4f140ca7', name: `${this.name}-input`, label: this.label, required: this.required, disabled: this.disabled })), this.hint && (hAsync("p", { key: '1ff5b7a62cc20bb2ce710ca2e06c728d94aef895', id: `${this.name}-hint`, class: "eds-ss__hint" }, this.hint)))), hAsync("div", { key: '84fbdccc6326707ac854e06d7209dd149d9c26a7', class: "eds-ss__control relative" }, hAsync("div", { key: 'ae99c3d9c706fa6619459d8d6c9baa3df610169e', class: { 'eds-ss__box': true, 'is-error': this.error || !!this.fetchError, 'is-disabled': this.disabled } }, this.multiple &&
|
|
14941
|
+
selected.map((v) => (hAsync("span", { class: "eds-ss__chip", key: v }, hAsync("span", { class: "eds-ss__chip-label" }, this.labelFor(v)), !this.disabled && (hAsync("button", { type: "button", class: "eds-ss__chip-x", "aria-label": `Remove ${this.labelFor(v)}`, onMouseDown: (e) => { e.preventDefault(); this.removeValue(v, e); } }, "\u00D7"))))), hAsync("input", { key: '18dcd5787c7636c09be7285fb85b77f5cae334c8', id: `${this.name}-input`, class: "eds-ss__input", type: "text", role: "combobox", autocomplete: "off", "aria-expanded": this.open ? 'true' : 'false', "aria-controls": this.listboxId, "aria-autocomplete": "list", placeholder: placeholder, value: inputValue, disabled: this.disabled, required: this.required && !hasSelection, onFocus: () => this.openMenu(), onInput: this.onInput, onKeyDown: this.onKeyDown })), !this.multiple && hasSelection && !this.disabled && (hAsync("button", { key: 'c927fa49fb58b7abec13f6d436f1d1452f9644c5', type: "button", class: "eds-ss__clear", "aria-label": "Clear selection", onClick: this.clear }, "\u00D7")), hAsync("span", { key: 'bff4bf41fb388f849ef9c0928f4aa88e065d718d', class: "eds-ss__chevron", "aria-hidden": "true" }, hAsync("eds-icon-wrapper", { key: '7871955d6fc5626914995d51c1b4b3511b60febe', name: "chevron-right", size: 20 }))), this.open && (hAsync("ul", { key: 'e529fe82576be45a0e99d4a020aa4f721b71686b', class: "eds-ss__list", id: this.listboxId, role: "listbox" }, this.loading && hAsync("li", { key: 'fe8d73dfa0d6a5cf7e9bea4220511a22489884f8', class: "eds-ss__status" }, "Searching\u2026"), !this.loading && this.fetchError && hAsync("li", { key: 'b708b1de4eee8e45287fd23f0bf63327032616d6', class: "eds-ss__status is-error" }, this.fetchError), !this.loading && !this.fetchError && this.visibleItems.length === 0 && (hAsync("li", { key: '9400ac7a022f38935f05df3705e2a65acb9d4a04', class: "eds-ss__status" }, "No matches")), !this.loading &&
|
|
14942
|
+
!this.fetchError &&
|
|
14943
|
+
this.visibleItems.map((opt, i) => (hAsync("li", { key: opt.value, class: { 'eds-ss__option': true, 'is-active': i === this.activeIndex, 'is-selected': selected.includes(String(opt.value)) }, role: "option", "aria-selected": selected.includes(String(opt.value)) ? 'true' : 'false', onMouseEnter: () => (this.activeIndex = i), onMouseDown: (e) => { e.preventDefault(); this.select(opt); } }, opt.label))), !this.loading && !this.fetchError && this.hiddenCount > 0 && (hAsync("li", { key: '8e82d65e9da3755ad10ffaf0fc4a45f5bc365a48', class: "eds-ss__more" }, "+", this.hiddenCount, " more \u2014 keep typing to narrow")))), hAsync("eds-input-footer", { key: '0564f006a874a3556118ce99441cbfabc230ac57', name: this.name, message: this.message, error: this.error, "error-message": this.errorMessage })));
|
|
14944
|
+
}
|
|
14945
|
+
get host() { return getElement(this); }
|
|
14946
|
+
static get watchers() { return {
|
|
14947
|
+
"options": ["onOptionsChange"],
|
|
14948
|
+
"value": ["onValueChange"]
|
|
14949
|
+
}; }
|
|
14950
|
+
static get style() { return EdsSearchSelectStyle0; }
|
|
14951
|
+
static get cmpMeta() { return {
|
|
14952
|
+
"$flags$": 9,
|
|
14953
|
+
"$tagName$": "eds-search-select",
|
|
14954
|
+
"$members$": {
|
|
14955
|
+
"name": [1],
|
|
14956
|
+
"label": [1],
|
|
14957
|
+
"placeholder": [1],
|
|
14958
|
+
"required": [4],
|
|
14959
|
+
"disabled": [4],
|
|
14960
|
+
"hint": [1],
|
|
14961
|
+
"message": [1],
|
|
14962
|
+
"error": [4],
|
|
14963
|
+
"errorMessage": [1, "error-message"],
|
|
14964
|
+
"value": [1025],
|
|
14965
|
+
"multiple": [4],
|
|
14966
|
+
"options": [1],
|
|
14967
|
+
"source": [1],
|
|
14968
|
+
"apiBase": [1, "api-base"],
|
|
14969
|
+
"searchParam": [1, "search-param"],
|
|
14970
|
+
"limit": [2],
|
|
14971
|
+
"debounceMs": [2, "debounce-ms"],
|
|
14972
|
+
"maxVisible": [2, "max-visible"],
|
|
14973
|
+
"open": [32],
|
|
14974
|
+
"query": [32],
|
|
14975
|
+
"loading": [32],
|
|
14976
|
+
"fetchError": [32],
|
|
14977
|
+
"items": [32],
|
|
14978
|
+
"total": [32],
|
|
14979
|
+
"activeIndex": [32],
|
|
14980
|
+
"selectedLabel": [32]
|
|
14981
|
+
},
|
|
14982
|
+
"$listeners$": undefined,
|
|
14983
|
+
"$lazyBundleId$": "-",
|
|
14984
|
+
"$attrsToReflect$": []
|
|
14985
|
+
}; }
|
|
14986
|
+
}
|
|
14987
|
+
|
|
14212
14988
|
const edsSectionCoreCss = "";
|
|
14213
14989
|
var EdsSectionCoreStyle0 = edsSectionCoreCss;
|
|
14214
14990
|
|
|
@@ -14234,7 +15010,7 @@ class EdsSectionCore {
|
|
|
14234
15010
|
}
|
|
14235
15011
|
render() {
|
|
14236
15012
|
const TagType = this.tag; // Set dynamic tag type (div or section)
|
|
14237
|
-
return (hAsync(TagType, { key: '
|
|
15013
|
+
return (hAsync(TagType, { key: '635230d1ec9a0dcc945990a6a58dc3508345d984' }, hAsync("eds-section-heading", { key: '0b6b94df22af707cbd6964132f3a5190b4b7e83c', headingLevel: this.headingLevel, sectionTitle: this.sectionTitle }), hAsync("slot", { key: '8834c29c25249fb5c384fb5d51866eadb93a97d6' })));
|
|
14238
15014
|
}
|
|
14239
15015
|
static get style() { return EdsSectionCoreStyle0; }
|
|
14240
15016
|
static get cmpMeta() { return {
|
|
@@ -14289,12 +15065,12 @@ class EdsSectionHeading {
|
|
|
14289
15065
|
render() {
|
|
14290
15066
|
const TagType = this.tag; // Dynamically set tag type for the container
|
|
14291
15067
|
const HeadingTag = this.headingLevel; // Dynamically set heading level
|
|
14292
|
-
return (hAsync(TagType, { key: '
|
|
15068
|
+
return (hAsync(TagType, { key: '7275284a1158ab982f1e53117b72738d0a001c97', class: {
|
|
14293
15069
|
'ui-section-header flex flex-wrap items-center justify-between gap-x-12 gap-y-8': true,
|
|
14294
15070
|
container: this.withContainer,
|
|
14295
15071
|
'pt-48': this.spacingLarge,
|
|
14296
15072
|
'pt-28': !this.spacingLarge
|
|
14297
|
-
} }, hAsync(HeadingTag, { key: '
|
|
15073
|
+
} }, hAsync(HeadingTag, { key: 'a3c68baa56a0337348405c88544225ed7c7ff0ed', class: this.getHeadingClass() }, this.sectionTitle)));
|
|
14298
15074
|
}
|
|
14299
15075
|
static get cmpMeta() { return {
|
|
14300
15076
|
"$flags$": 0,
|
|
@@ -14463,10 +15239,10 @@ class EdsSidebar {
|
|
|
14463
15239
|
} }, hasChildren && (hAsync("span", { class: "sidebar-toggle -ml-4", "aria-hidden": "true" }, hAsync("eds-icon-wrapper", { name: isOpen ? 'chevron-down' : 'chevron-right' }))), hAsync("span", { class: "sidebar-link-wrapper" }, hAsync("eds-link", { label: item.title, url: item.url || '#', intent: isActive ? 'strong' : 'weak', size: "small", "aria-label": item.title, "extra-class": "sidebar-link", tabindex: "-1" }))), hasChildren && isOpen && (hAsync("ul", { id: childrenId, class: "sidebar-children" }, item.children.map((child) => this.renderItem(child, level + 1))))));
|
|
14464
15240
|
}
|
|
14465
15241
|
render() {
|
|
14466
|
-
return (hAsync(Host, { key: '
|
|
15242
|
+
return (hAsync(Host, { key: 'f5221c19e8148ca62a76fb470a4aa6786c3e41b5', class: {
|
|
14467
15243
|
'eds-sidebar': true,
|
|
14468
15244
|
[`theme-${this.theme}`]: true
|
|
14469
|
-
} }, hAsync("nav", { key: '
|
|
15245
|
+
} }, hAsync("nav", { key: '0a975a10a3892f6eabaf2a1c2be21963f0e76549', class: "sidebar-nav", "aria-label": "Sidebar" }, hAsync("ul", { key: '498436fa1f4ec7ff2f3feea843fe58b415d20a3f', class: "sidebar-list" }, this.parsedItems.map((item) => this.renderItem(item, 0))))));
|
|
14470
15246
|
}
|
|
14471
15247
|
get el() { return getElement(this); }
|
|
14472
15248
|
static get watchers() { return {
|
|
@@ -14552,7 +15328,7 @@ class EdsSocialNetworks {
|
|
|
14552
15328
|
const isInverse = this.variant === 'inverse';
|
|
14553
15329
|
const textClass = isInverse ? 'text-inverse' : '';
|
|
14554
15330
|
const linkIntent = isInverse ? 'inverse' : 'strong';
|
|
14555
|
-
return (hAsync("nav", { key: '
|
|
15331
|
+
return (hAsync("nav", { key: '924bdf5a32b65cd0968ad92461cb8203f3305fce', "aria-label": "Social media" }, hAsync("p", { key: 'f406d71ed2d7ff9048e5db05f5ad62566081aa45', class: `f-ui-02 ${textClass}` }, this.heading), hAsync("ul", { key: '40d000bc78780d7ec3c0c9bf2e10ec0a26f3b72e', class: "mt-12 flex gap-4" }, this.socialNetworks.map((network, index) => (hAsync("li", { key: index }, hAsync("eds-link", { external: true, "aria-label": `EBRAINS on ${network.label}`, url: network.url, icon: network.icon, intent: linkIntent })))))));
|
|
14556
15332
|
}
|
|
14557
15333
|
static get style() { return EdsSocialNetworksStyle0; }
|
|
14558
15334
|
static get cmpMeta() { return {
|
|
@@ -14644,7 +15420,7 @@ class EdsSpinner {
|
|
|
14644
15420
|
alignItems: 'center',
|
|
14645
15421
|
justifyContent: 'center'
|
|
14646
15422
|
};
|
|
14647
|
-
return (hAsync(Host, { key: '
|
|
15423
|
+
return (hAsync(Host, { key: 'c09fa07856848a03aab44bbb56ecdd66a986bb40' }, hAsync("div", { key: '544c653e9e0457d2063eaefc5ff1fe88de89f14e', class: "spinner-overlay", style: overlayStyle }, hAsync("span", { key: 'e389aa572863a265c9aa68d587ad744f1c8db0a7', class: "spinner", style: spinnerStyle }), this.message && hAsync("p", { key: '5e554fe1b870e673c5b3da3ec2a227e92dd9863d', class: "f-ui-01" }, this.message))));
|
|
14648
15424
|
}
|
|
14649
15425
|
static get style() { return EdsSpinnerStyle0; }
|
|
14650
15426
|
static get cmpMeta() { return {
|
|
@@ -15193,7 +15969,7 @@ class EdsStepsV2 {
|
|
|
15193
15969
|
const steps = this.parsedSteps;
|
|
15194
15970
|
const marginClass = this.orientation === 'horizontal' ? 'mt-64' : 'mt-32';
|
|
15195
15971
|
const themeClass = this.theme === 'brand' ? 'theme-brand' : 'theme-default';
|
|
15196
|
-
return (hAsync("div", { key: '
|
|
15972
|
+
return (hAsync("div", { key: 'e1d78d18506adb662bbcc100f6f886e33c21a996', class: this.articleClasses() }, this.imageSrc ? (hAsync("div", { class: "w-full mb-12 rounded-t-lg overflow-hidden border-2" }, hAsync("eds-img", { src: this.imageSrc, width: this.imageWidth, "with-bg": "true", "lazy-load": "true", alt: "Step illustration" }))) : (this.message && (hAsync("div", { class: `w-full ${this.theme === 'brand' ? 'bg-strongest' : 'bg-darker'} rounded-t-lg border-2` }, hAsync("div", { class: "p-24" }, hAsync("span", { class: `${this.theme === 'brand' ? 'text-accent' : 'text-inverse'} f-heading-04` }, this.message))))), hAsync("div", { key: '5b69e2c641d96025b34377fc647679f94d0e4e44', class: "mt-16 pb-20 px-8" }, this.type === 'linear' && this.orientation === 'horizontal' ? (hAsync("div", { class: `steps--horizontal ${themeClass}`, style: { '--step-count': steps.length.toString() } }, hAsync("div", { class: "horizontal-indicators" }, steps.map((step, index) => this.renderHorizontalIndicator(step, index))), steps.map((step, index) => {
|
|
15197
15973
|
const isLast = index === steps.length - 1;
|
|
15198
15974
|
if (this.activeStep !== index) {
|
|
15199
15975
|
return null;
|
|
@@ -15335,7 +16111,7 @@ class EdsSwitch {
|
|
|
15335
16111
|
}; }
|
|
15336
16112
|
}
|
|
15337
16113
|
|
|
15338
|
-
const edsTableCss = "table{text-indent:0;border-color:inherit;border-collapse:collapse;}
|
|
16114
|
+
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}}";
|
|
15339
16115
|
var EdsTableStyle0 = edsTableCss;
|
|
15340
16116
|
|
|
15341
16117
|
/**
|
|
@@ -15424,11 +16200,10 @@ class EdsTable {
|
|
|
15424
16200
|
this.paginationEnabled = true;
|
|
15425
16201
|
this.searchEnabled = false;
|
|
15426
16202
|
this.hostWidth = undefined;
|
|
15427
|
-
this.columnSize = 'default';
|
|
15428
16203
|
this.actions = [];
|
|
15429
16204
|
this.actionTemplate = undefined;
|
|
15430
16205
|
this.sortingEnabled = false;
|
|
15431
|
-
this.theme = '
|
|
16206
|
+
this.theme = 'brand';
|
|
15432
16207
|
this.view = 'table';
|
|
15433
16208
|
this.showViewToggle = false;
|
|
15434
16209
|
this.parsedActions = [];
|
|
@@ -15460,6 +16235,8 @@ class EdsTable {
|
|
|
15460
16235
|
}
|
|
15461
16236
|
}
|
|
15462
16237
|
componentWillLoad() {
|
|
16238
|
+
// 'default' / 'color' themes are disabled — always render the brand theme.
|
|
16239
|
+
this.theme = 'brand';
|
|
15463
16240
|
this.parseConfig();
|
|
15464
16241
|
this.handleActionsChange();
|
|
15465
16242
|
this.parseData();
|
|
@@ -15595,19 +16372,6 @@ class EdsTable {
|
|
|
15595
16372
|
this.columns.push('actions');
|
|
15596
16373
|
}
|
|
15597
16374
|
}
|
|
15598
|
-
getVisibleColumnsCount() {
|
|
15599
|
-
return this.columns.filter((column) => { var _a; return !((_a = this.parsedConfig[column]) === null || _a === void 0 ? void 0 : _a.hidden); }).length;
|
|
15600
|
-
}
|
|
15601
|
-
divisionFactor() {
|
|
15602
|
-
let divisionFactor = 1;
|
|
15603
|
-
if (this.columnSize === 'medium') {
|
|
15604
|
-
divisionFactor = 2;
|
|
15605
|
-
}
|
|
15606
|
-
else if (this.columnSize === 'large') {
|
|
15607
|
-
divisionFactor = 4;
|
|
15608
|
-
}
|
|
15609
|
-
return divisionFactor;
|
|
15610
|
-
}
|
|
15611
16375
|
capitalize(str) {
|
|
15612
16376
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
15613
16377
|
}
|
|
@@ -15642,24 +16406,23 @@ class EdsTable {
|
|
|
15642
16406
|
const dataColumns = this.columns.filter((col) => { var _a; return col !== 'actions' && !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); });
|
|
15643
16407
|
return (hAsync("div", { class: "card-grid" }, rows.map((row) => (hAsync("div", { class: "data-card" }, hAsync("div", { class: "card-content" }, dataColumns.map((col) => (hAsync("div", { class: "card-field" }, hAsync("span", { class: "card-label" }, this.capitalize(col)), hAsync("span", { class: "card-value" }, this.renderCell(row[col], col)))))), this.parsedActions.length > 0 && (hAsync("div", { class: "card-actions" }, this.parsedActions.map((act) => (hAsync("span", null, this.renderSingleActionCell(act.name, row)))))))))));
|
|
15644
16408
|
}
|
|
15645
|
-
renderTableView(paginatedRows
|
|
15646
|
-
const columnWidth = visibleColumnsCount > 0 ? Math.floor((currentContainerWidth / visibleColumnsCount) * this.divisionFactor()) : 100;
|
|
16409
|
+
renderTableView(paginatedRows) {
|
|
15647
16410
|
return (hAsync("div", { class: `mt-20 ${this.theme === 'brand' ? 'brand-table-wrapper' : ''}` }, hAsync("table", { class: `${this.theme === 'brand' ? '' : 'block overflow-x-auto'} mt-6 p-0 ${this.theme === 'brand' ? 'brand-table' : ''}` }, hAsync("thead", { class: this.theme === 'brand' ? 'brand-thead' : '' }, hAsync("tr", { class: `m-0 p-0 border border-softer table-row-${this.theme} ${this.theme === 'brand' ? 'brand-header-row' : ''}` }, this.columns
|
|
15648
16411
|
.filter((col) => { var _a; return col === 'actions' || !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); })
|
|
15649
16412
|
.map((col) => {
|
|
15650
16413
|
if (col === 'actions') {
|
|
15651
|
-
return (hAsync("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words"
|
|
16414
|
+
return (hAsync("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words" }));
|
|
15652
16415
|
}
|
|
15653
|
-
return (hAsync("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words"
|
|
16416
|
+
return (hAsync("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words" }, hAsync("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '0.25rem' } }, hAsync("span", null, this.capitalize(col)), this.sortingEnabled && (hAsync("eds-icon-wrapper", { name: this.sortColumn === col
|
|
15654
16417
|
? this.sortDirection === 'asc'
|
|
15655
16418
|
? 'chevron-up'
|
|
15656
16419
|
: 'chevron-down'
|
|
15657
16420
|
: 'chevron-down', "aria-label": `Sort by ${col}`, onClick: () => this.handleSort(col), style: { cursor: 'pointer' } })))));
|
|
15658
|
-
}))), hAsync("tbody", null, paginatedRows.map((row) => (hAsync("tr", { class: `m-0 p-0 border border-softer table-row-${this.theme} ${this.theme === 'brand' ? 'brand-row' : ''}` }, this.columns
|
|
16421
|
+
}))), hAsync("tbody", null, paginatedRows.map((row) => (hAsync("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
|
|
15659
16422
|
.filter((col) => { var _a; return col === 'actions' || !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); })
|
|
15660
16423
|
.map((col) => {
|
|
15661
16424
|
if (col === 'actions') {
|
|
15662
|
-
return (hAsync("td", { class: "text-center border border-softer m-0 f-ui-01 break-words actions-cell"
|
|
16425
|
+
return (hAsync("td", { class: "text-center border border-softer m-0 f-ui-01 break-words actions-cell" }, hAsync("div", { role: "toolbar", "aria-label": "Row actions", onKeyDown: this.onActionKeyDown, style: {
|
|
15663
16426
|
display: 'flex',
|
|
15664
16427
|
gap: '0.5rem',
|
|
15665
16428
|
justifyContent: 'center',
|
|
@@ -15667,18 +16430,16 @@ class EdsTable {
|
|
|
15667
16430
|
} }, this.parsedActions.map((act) => (hAsync("span", { style: { whiteSpace: 'nowrap' } }, this.renderSingleActionCell(act.name, row)))))));
|
|
15668
16431
|
}
|
|
15669
16432
|
// Regular data cell
|
|
15670
|
-
return (hAsync("td", { class: "text-center border border-softer m-0 py-8 f-ui-02 break-words"
|
|
16433
|
+
return (hAsync("td", { class: "text-center border border-softer m-0 py-8 f-ui-02 break-words" }, this.renderCell(row[col], col)));
|
|
15671
16434
|
}))))))));
|
|
15672
16435
|
}
|
|
15673
16436
|
render() {
|
|
15674
|
-
const currentContainerWidth = this.hostWidth && this.hostWidth.trim() !== '' ? Number(this.hostWidth) : this.containerWidth || 400;
|
|
15675
|
-
const visibleColumnsCount = this.getVisibleColumnsCount();
|
|
15676
16437
|
const paginatedRows = this.getPaginatedRows();
|
|
15677
16438
|
const lastPage = Math.ceil(this.totalRows / this.rowsPerPage);
|
|
15678
16439
|
const showControls = this.showViewToggle || this.searchEnabled;
|
|
15679
|
-
return (hAsync("div", { key: '
|
|
16440
|
+
return (hAsync("div", { key: '1e8a2f5f19df240ee3a57951641b60b947342fad' }, showControls && (hAsync("div", { key: '778fe091226330448bba089189e9dd6a6aa977a9', class: "controls-container flex-col flex-md-row items-start items-md-center justify-between gap-16 mb-16" }, this.showViewToggle && (hAsync("div", { key: '7ef287464bb2fba846be5341f4bb0e71d982be0e', class: "view-toggle-wrapper" }, hAsync("eds-switch", { key: '2d3a494a5b354a14c8e882a153633bd5e85a40ab', variant: "segmented", labelOff: "Table View", labelOn: "Card View", checked: this.view === 'card', onUiswitch: this.handleViewChange }))), this.searchEnabled && (hAsync("div", { key: 'dfcf6d0bdc23cb10481121881a7656b02a0599c1', class: `search-wrapper w-full ${this.showViewToggle ? 'w-md-400' : ''}` }, hAsync("eds-input-field", { key: 1, icon: "search", name: "search", "aria-label": "Search", type: "text", placeholder: "Search...", onInput: (event) => this.handleSearch(event) }))))), this.view === 'card'
|
|
15680
16441
|
? this.renderCardView(paginatedRows)
|
|
15681
|
-
: this.renderTableView(paginatedRows
|
|
16442
|
+
: this.renderTableView(paginatedRows), this.shouldEnablePagination() && (hAsync("div", { key: '3f7faafdd6147855cb8812ff6303c335c7fd1f35', class: "mt-20" }, hAsync("eds-pagination", { key: '17705ba01a8ca8cc79bacfce34e55f11ce53d70c', currentPage: this.currentPage, lastPage: lastPage, perPage: this.rowsPerPage, total: this.totalRows, mode: "default" })))));
|
|
15682
16443
|
}
|
|
15683
16444
|
get hostEl() { return getElement(this); }
|
|
15684
16445
|
static get watchers() { return {
|
|
@@ -15697,11 +16458,10 @@ class EdsTable {
|
|
|
15697
16458
|
"paginationEnabled": [4, "pagination-enabled"],
|
|
15698
16459
|
"searchEnabled": [4, "search-enabled"],
|
|
15699
16460
|
"hostWidth": [1, "host-width"],
|
|
15700
|
-
"columnSize": [1, "column-size"],
|
|
15701
16461
|
"actions": [1],
|
|
15702
16462
|
"actionTemplate": [16],
|
|
15703
16463
|
"sortingEnabled": [4, "sorting-enabled"],
|
|
15704
|
-
"theme": [
|
|
16464
|
+
"theme": [1025],
|
|
15705
16465
|
"view": [1025],
|
|
15706
16466
|
"showViewToggle": [4, "show-view-toggle"],
|
|
15707
16467
|
"parsedActions": [32],
|
|
@@ -15722,7 +16482,7 @@ class EdsTable {
|
|
|
15722
16482
|
}; }
|
|
15723
16483
|
}
|
|
15724
16484
|
|
|
15725
|
-
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:
|
|
16485
|
+
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}}";
|
|
15726
16486
|
var EdsTabsStyle0 = edsTabsCss;
|
|
15727
16487
|
|
|
15728
16488
|
/**
|
|
@@ -15761,14 +16521,28 @@ class EdsTabs {
|
|
|
15761
16521
|
}
|
|
15762
16522
|
/**
|
|
15763
16523
|
* Parses the `tabs` prop into an array of tab objects.
|
|
16524
|
+
*
|
|
16525
|
+
* Note: we deliberately do NOT clear `tabRefs` here. Consumers
|
|
16526
|
+
* often re-pass `tabs` with an updated `active` flag every time
|
|
16527
|
+
* the user switches tabs (Vue/React re-render on event). Wiping
|
|
16528
|
+
* the refs leaves a window in which a queued focus() call sees
|
|
16529
|
+
* `tabRefs[index] === undefined` and silently no-ops — focus
|
|
16530
|
+
* gets stuck on the previous tab even though `aria-selected` and
|
|
16531
|
+
* the background already moved. Stencil re-binds refs on render,
|
|
16532
|
+
* so the array stays in sync without us emptying it; we only
|
|
16533
|
+
* truncate when the new list is shorter to drop stale entries.
|
|
15764
16534
|
*/
|
|
15765
16535
|
parseTabs() {
|
|
15766
16536
|
this.parsedTabs = parseData(this.tabs);
|
|
15767
|
-
this.tabRefs
|
|
16537
|
+
if (this.tabRefs.length > this.parsedTabs.length) {
|
|
16538
|
+
this.tabRefs.length = this.parsedTabs.length;
|
|
16539
|
+
}
|
|
15768
16540
|
}
|
|
15769
16541
|
componentDidUpdate() {
|
|
15770
|
-
|
|
15771
|
-
|
|
16542
|
+
// Same reasoning as parseTabs: only shrink, never re-allocate
|
|
16543
|
+
// to nulls — that would re-introduce the silent-no-op window.
|
|
16544
|
+
if (this.tabRefs.length > this.parsedTabs.length) {
|
|
16545
|
+
this.tabRefs.length = this.parsedTabs.length;
|
|
15772
16546
|
}
|
|
15773
16547
|
}
|
|
15774
16548
|
setActiveIndex() {
|
|
@@ -15779,6 +16553,7 @@ class EdsTabs {
|
|
|
15779
16553
|
}
|
|
15780
16554
|
}
|
|
15781
16555
|
handleTabClick(index, tabLabel, shouldFocus = true) {
|
|
16556
|
+
var _a;
|
|
15782
16557
|
if (index < 0 || index >= this.parsedTabs.length) {
|
|
15783
16558
|
return;
|
|
15784
16559
|
}
|
|
@@ -15793,11 +16568,34 @@ class EdsTabs {
|
|
|
15793
16568
|
action: 'click'
|
|
15794
16569
|
});
|
|
15795
16570
|
}
|
|
15796
|
-
if (shouldFocus
|
|
15797
|
-
|
|
16571
|
+
if (shouldFocus) {
|
|
16572
|
+
// Focus must move SYNCHRONOUSLY, while the keydown event
|
|
16573
|
+
// that triggered this call is still on the stack. Otherwise
|
|
16574
|
+
// the browser's `:focus-visible` heuristic doesn't flag the
|
|
16575
|
+
// focus move as keyboard-driven and the outline never paints
|
|
16576
|
+
// — accessibility regression (WCAG 2.4.7).
|
|
16577
|
+
//
|
|
16578
|
+
// We query by static id (`#tab-${index}`) instead of using
|
|
16579
|
+
// `tabRefs[index]` because consumer-driven prop changes can
|
|
16580
|
+
// briefly drop the cached ref. The button id is set in
|
|
16581
|
+
// `render()` and doesn't depend on active state, so it is
|
|
16582
|
+
// always findable.
|
|
16583
|
+
const findBtn = () => { var _a; return ((_a = this.el.shadowRoot) !== null && _a !== void 0 ? _a : this.el).querySelector(`#tab-${index}`); };
|
|
16584
|
+
(_a = findBtn()) === null || _a === void 0 ? void 0 : _a.focus();
|
|
16585
|
+
// Belt-and-suspenders: if a consumer reacts to the `tab`
|
|
16586
|
+
// event by re-rendering our buttons (rare, but possible
|
|
16587
|
+
// when the `tabs` prop is recomputed), the sync focus above
|
|
16588
|
+
// landed on a button that is now detached. Re-focus once
|
|
16589
|
+
// the next frame's DOM is in place. We only act if focus
|
|
16590
|
+
// genuinely isn't on the right element, to avoid a redundant
|
|
16591
|
+
// focus call that would reset selection/IME state.
|
|
16592
|
+
requestAnimationFrame(() => {
|
|
15798
16593
|
var _a;
|
|
15799
|
-
|
|
15800
|
-
|
|
16594
|
+
const after = findBtn();
|
|
16595
|
+
if (after && ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) !== after) {
|
|
16596
|
+
after.focus();
|
|
16597
|
+
}
|
|
16598
|
+
});
|
|
15801
16599
|
}
|
|
15802
16600
|
}
|
|
15803
16601
|
onKeyDown(ev, idx) {
|
|
@@ -15831,7 +16629,7 @@ class EdsTabs {
|
|
|
15831
16629
|
'tabs-container',
|
|
15832
16630
|
`tabs-container-${this.variant}`
|
|
15833
16631
|
].join(' ');
|
|
15834
|
-
return (hAsync("div", { key: '
|
|
16632
|
+
return (hAsync("div", { key: '646f43031cde2e0ab84d2830fd9477841b3c757b', id: `${this.identifier}` }, hAsync("div", { key: '2eb01c96640c6fc602777f227525066e5970489e', class: containerClasses }, hAsync("nav", { key: 'b419fc7414574ea70b19433a3c5daa63b5ad6652', role: "tablist", class: "tabs-nav", "aria-label": this.navAriaLabel }, this.parsedTabs.map((tab, index) => {
|
|
15835
16633
|
const isActive = index === this.activeIndex;
|
|
15836
16634
|
const tabClasses = [
|
|
15837
16635
|
'tab',
|
|
@@ -15839,7 +16637,7 @@ class EdsTabs {
|
|
|
15839
16637
|
isActive ? 'tab-active' : ''
|
|
15840
16638
|
].filter(Boolean).join(' ');
|
|
15841
16639
|
return (hAsync("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));
|
|
15842
|
-
}))), hAsync("div", { key: '
|
|
16640
|
+
}))), hAsync("div", { key: '0ce244b3d2b2120d1bdf127144e9b42e2ad34e52', class: "tab-panels" }, this.parsedTabs.map((_, index) => (hAsync("div", { role: "tabpanel", id: `panel-${index}`, "aria-labelledby": `tab-${index}`, hidden: index !== this.activeIndex, tabIndex: index === this.activeIndex ? 0 : -1 }, hAsync("slot", { name: `panel-${index}` })))))));
|
|
15843
16641
|
}
|
|
15844
16642
|
get el() { return getElement(this); }
|
|
15845
16643
|
static get watchers() { return {
|
|
@@ -15902,7 +16700,7 @@ class EdsTag {
|
|
|
15902
16700
|
}
|
|
15903
16701
|
render() {
|
|
15904
16702
|
const classes = tagStyles({ intent: this.intent, size: this.size });
|
|
15905
|
-
return (hAsync("span", { key: '
|
|
16703
|
+
return (hAsync("span", { key: '20e1625ac01b0dc1f40356d02622e0649faa7fa7', class: classes }, hAsync("span", { key: '313c3f18c0a5df285afe6a40ded9e68035d9648f', style: { position: 'relative', zIndex: '1' } }, this.label)));
|
|
15906
16704
|
}
|
|
15907
16705
|
static get style() { return EdsTagStyle0; }
|
|
15908
16706
|
static get cmpMeta() { return {
|
|
@@ -15964,7 +16762,7 @@ class EdsTimeline {
|
|
|
15964
16762
|
}
|
|
15965
16763
|
}
|
|
15966
16764
|
render() {
|
|
15967
|
-
return (hAsync("div", { key: '
|
|
16765
|
+
return (hAsync("div", { key: '78b199b18d361ae3223e4f1fe9a2043d61f4271b', class: "max-w-sidebar mx-auto px-4 py-8" }, hAsync("div", { key: 'afdfdf7dc573a7f273703a02e38e755a9815bdf7', class: "relative" }, hAsync("div", { key: '7affc96f356ee901ca263c7347ae60b84869f28b', class: "absolute w-4 left-1/2 transform -translate-x-1/2 bg-strong h-full z-0" }), hAsync("div", { key: '7ba006234bd1365890e75b7f59aa118265ba727c', class: "space-y-16" }, this.parsedEvents.map((event, index) => (hAsync("div", { class: "relative flex" }, hAsync("div", { class: `w-1/2 ${index % 2 === 0 ? 'pr-4' : ''}` }, index % 2 === 0 && (hAsync("eds-card-generic", { title: event.title, url: "#", description: event.description, intent: "secondary", tags: JSON.stringify(event.completed
|
|
15968
16766
|
? [{ label: 'completed', style: 'accent' }]
|
|
15969
16767
|
: [{ label: 'pending', style: 'default' }]), onClick: () => this.handleEventClick(event) }))), hAsync("div", { class: "flex items-center justify-center relative" }, event.completed ? (hAsync("div", { class: "w-32 h-32 bg-accent rounded-full shadow flex items-center justify-center" })) : (hAsync("div", { class: "w-32 h-32 bg-strong rounded-full shadow flex items-center justify-center" }))), hAsync("div", { class: `w-1/2 ${index % 2 !== 0 ? 'pl-4' : ''}` }, index % 2 !== 0 && (hAsync("eds-card-generic", { title: event.title, url: "#", description: event.description, intent: "secondary", tags: JSON.stringify(event.completed
|
|
15970
16768
|
? [{ label: 'completed', style: 'accent' }]
|
|
@@ -16140,7 +16938,7 @@ class EdsToastManager {
|
|
|
16140
16938
|
this.toasts = this.toasts.filter((t) => t.id !== id);
|
|
16141
16939
|
}
|
|
16142
16940
|
render() {
|
|
16143
|
-
return (hAsync("div", { key: '
|
|
16941
|
+
return (hAsync("div", { key: '989e469e815c6af6b46a14fddee85e4707f86704', class: "toast-container" }, this.toasts.map((t) => (hAsync("div", { key: t.id }, hAsync("eds-toast", { message: t.message, intent: t.intent, onClick: () => this.removeToast(t.id) }))))));
|
|
16144
16942
|
}
|
|
16145
16943
|
get hostElement() { return getElement(this); }
|
|
16146
16944
|
static get style() { return EdsToastManagerStyle0; }
|
|
@@ -16179,7 +16977,7 @@ class EdsTooltip {
|
|
|
16179
16977
|
}
|
|
16180
16978
|
render() {
|
|
16181
16979
|
const positionClass = this.position === 'bottom' ? 'top-full mt-2' : 'bottom-full mb-2';
|
|
16182
|
-
return (hAsync("div", { key: '
|
|
16980
|
+
return (hAsync("div", { key: '8b4396894b1ec7cc1c2d928ffa5b3d7628f8c4ee', class: "relative w-full inline-block group" }, hAsync("slot", { key: 'c2547098aacc584960f217edcafeb060ce742adc' }), hAsync("div", { key: '1e6beac7e4294456f7a6130c4b0573cce3e4b548', class: `absolute ${positionClass}
|
|
16183
16981
|
rounded-xs bg-strongest text-inverse
|
|
16184
16982
|
f-ui-03-light pointer-events-none
|
|
16185
16983
|
z-10 px-4 opacity-0 transition-opacity duration-150 ease-in-out
|
|
@@ -16200,6 +16998,220 @@ class EdsTooltip {
|
|
|
16200
16998
|
}; }
|
|
16201
16999
|
}
|
|
16202
17000
|
|
|
17001
|
+
/* eslint-disable */
|
|
17002
|
+
/**
|
|
17003
|
+
* Official EBRAINS sphere mark, extracted from
|
|
17004
|
+
* packages/assets/EBRAINS_logo_25/new_ebrains_logo_rgb/250901_new_ebrains_logo_rgb_positive.svg
|
|
17005
|
+
* (the gradient-filled wave segments only — wordmark dropped).
|
|
17006
|
+
*
|
|
17007
|
+
* Gradient ids carry a `__UID__` placeholder so each badge instance can
|
|
17008
|
+
* namespace them (no <defs> collisions when several badges share a page).
|
|
17009
|
+
* Gradient template inheritance uses SVG2 `href` (no xlink namespace needed).
|
|
17010
|
+
* Use markDefs() inside the badge <defs> and markGroup() in the body.
|
|
17011
|
+
*/
|
|
17012
|
+
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"/>`;
|
|
17013
|
+
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"/>`;
|
|
17014
|
+
/** Gradient <defs> for the mark, namespaced with `uid`. */
|
|
17015
|
+
function markDefs(uid) {
|
|
17016
|
+
return MARK_DEFS.replace(/__UID__/g, uid);
|
|
17017
|
+
}
|
|
17018
|
+
/**
|
|
17019
|
+
* The mark paths wrapped in a positioned, scaled group.
|
|
17020
|
+
* The source artwork lives in a ~201×201 canvas; `size` is the rendered px.
|
|
17021
|
+
*/
|
|
17022
|
+
function markGroup(uid, x, y, size = 16) {
|
|
17023
|
+
const s = (size / 201.1).toFixed(4);
|
|
17024
|
+
const paths = MARK_PATHS.replace(/__UID__/g, uid);
|
|
17025
|
+
return `<g transform="translate(${x},${y}) scale(${s})">${paths}</g>`;
|
|
17026
|
+
}
|
|
17027
|
+
|
|
17028
|
+
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}";
|
|
17029
|
+
var EdsTrlBadgeStyle0 = edsTrlBadgeCss;
|
|
17030
|
+
|
|
17031
|
+
let _uid = 0;
|
|
17032
|
+
/**
|
|
17033
|
+
* `EdsTrlBadge` — public EBRAINS TRL badge, aligned with the EBRAINS visual
|
|
17034
|
+
* system (Black `#07140D`, Green `#00FF9D`, Dark Green `#00C87B`, Grey
|
|
17035
|
+
* `#7A7B7A`, IBM Plex Mono) and using the **official EBRAINS sphere mark**.
|
|
17036
|
+
*
|
|
17037
|
+
* Renders a self-contained inline `<svg>` (same markup the server-side
|
|
17038
|
+
* `badge.svg` endpoint emits), so it embeds anywhere and stays crisp.
|
|
17039
|
+
*
|
|
17040
|
+
* Variants:
|
|
17041
|
+
* - `tone` — CI-style label + value pill (dark or light `theme`).
|
|
17042
|
+
* - `full` — single bar with the full string.
|
|
17043
|
+
* - `pill` — compact rounded "TRL 7".
|
|
17044
|
+
* - `outline` — thin border, transparent fill, mono caps (dark or light).
|
|
17045
|
+
* - `scale` — nine readiness pips showing position on the 1–9 scale.
|
|
17046
|
+
*
|
|
17047
|
+
* The value/pip colour encodes maturity within the brand palette:
|
|
17048
|
+
* TRL 7–9 → green, 4–6 → dark green, 1–3 → grey.
|
|
17049
|
+
*
|
|
17050
|
+
* @example
|
|
17051
|
+
* <eds-trl-badge level={7} assessed="2026-06" methodology="v8.2"></eds-trl-badge>
|
|
17052
|
+
* <eds-trl-badge level={7} variant="outline" theme="light"></eds-trl-badge>
|
|
17053
|
+
* <eds-trl-badge level={7} variant="scale" size={32}></eds-trl-badge>
|
|
17054
|
+
*/
|
|
17055
|
+
class EdsTrlBadge {
|
|
17056
|
+
constructor(hostRef) {
|
|
17057
|
+
registerInstance(this, hostRef);
|
|
17058
|
+
/** Per-instance suffix so the mark's gradient ids never collide. */
|
|
17059
|
+
this.uid = `trl${++_uid}-`;
|
|
17060
|
+
this.level = undefined;
|
|
17061
|
+
this.assessed = undefined;
|
|
17062
|
+
this.methodology = undefined;
|
|
17063
|
+
this.theme = 'dark';
|
|
17064
|
+
this.variant = 'tone';
|
|
17065
|
+
this.size = undefined;
|
|
17066
|
+
this.label = 'EBRAINS TRL';
|
|
17067
|
+
this.href = undefined;
|
|
17068
|
+
}
|
|
17069
|
+
esc(s) {
|
|
17070
|
+
return String(s).replace(/&/g, '&').replace(/</g, '<')
|
|
17071
|
+
.replace(/>/g, '>').replace(/"/g, '"');
|
|
17072
|
+
}
|
|
17073
|
+
/** Maturity tier → value/pip colour (brand palette). */
|
|
17074
|
+
levelColor() {
|
|
17075
|
+
const n = Number(this.level);
|
|
17076
|
+
if (n >= 7)
|
|
17077
|
+
return '#00FF9D';
|
|
17078
|
+
if (n >= 4)
|
|
17079
|
+
return '#00C87B';
|
|
17080
|
+
return '#7A7B7A';
|
|
17081
|
+
}
|
|
17082
|
+
/** Readable value text on a coloured segment (black on green, light on grey). */
|
|
17083
|
+
valueText() {
|
|
17084
|
+
return Number(this.level) >= 4 ? '#07140D' : '#ECECEC';
|
|
17085
|
+
}
|
|
17086
|
+
fullText() {
|
|
17087
|
+
const parts = [`${this.label} ${this.level}`];
|
|
17088
|
+
if (this.assessed)
|
|
17089
|
+
parts.push(`assessed ${this.assessed}`);
|
|
17090
|
+
if (this.methodology)
|
|
17091
|
+
parts.push(`methodology ${this.methodology}`);
|
|
17092
|
+
return parts.join(' · ');
|
|
17093
|
+
}
|
|
17094
|
+
/** Build the inner markup + intrinsic dimensions for the chosen variant. */
|
|
17095
|
+
build() {
|
|
17096
|
+
const CW = EdsTrlBadge.CW;
|
|
17097
|
+
const uid = this.uid;
|
|
17098
|
+
const clip = `${uid}clip`;
|
|
17099
|
+
const valColor = this.levelColor();
|
|
17100
|
+
const logoSpace = 28; // 8 margin + ~16 mark + 4 gap
|
|
17101
|
+
const mono = `font-family="'IBM Plex Mono',monospace"`;
|
|
17102
|
+
const lvl = this.esc(String(this.level));
|
|
17103
|
+
if (this.variant === 'full') {
|
|
17104
|
+
const tail = (this.assessed ? ` · assessed ${this.esc(this.assessed)}` : '') +
|
|
17105
|
+
(this.methodology ? ` · methodology ${this.esc(this.methodology)}` : '');
|
|
17106
|
+
const w = Math.ceil(logoSpace + this.fullText().length * CW + 10);
|
|
17107
|
+
const inner = `<defs><clipPath id="${clip}"><rect width="${w}" height="24" rx="6"/></clipPath>${markDefs(uid)}</defs>` +
|
|
17108
|
+
`<g clip-path="url(#${clip})"><rect width="${w}" height="24" fill="#07140D"/></g>${markGroup(uid, 8, 4, 16)}` +
|
|
17109
|
+
`<text x="30" y="15.5" ${mono} font-size="11" letter-spacing=".2">` +
|
|
17110
|
+
`<tspan fill="#ECECEC">${this.esc(this.label)} </tspan>` +
|
|
17111
|
+
`<tspan fill="${valColor}" font-weight="600">${lvl}</tspan>` +
|
|
17112
|
+
`<tspan fill="#7A7B7A">${this.esc(tail)}</tspan></text>`;
|
|
17113
|
+
return { w, h: 24, inner };
|
|
17114
|
+
}
|
|
17115
|
+
if (this.variant === 'pill') {
|
|
17116
|
+
const txt = `TRL ${this.level}`;
|
|
17117
|
+
const w = Math.ceil(logoSpace + txt.length * CW + 14);
|
|
17118
|
+
const tx = logoSpace + (w - logoSpace) / 2 - 4;
|
|
17119
|
+
const inner = `<defs>${markDefs(uid)}</defs>` +
|
|
17120
|
+
`<rect width="${w}" height="24" rx="12" fill="#07140D"/>${markGroup(uid, 7, 4, 16)}` +
|
|
17121
|
+
`<text x="${tx}" y="16" ${mono} font-size="11" font-weight="500" letter-spacing=".5" text-anchor="middle">` +
|
|
17122
|
+
`<tspan fill="#ECECEC">TRL </tspan><tspan fill="${valColor}" font-weight="600">${lvl}</tspan></text>`;
|
|
17123
|
+
return { w, h: 24, inner };
|
|
17124
|
+
}
|
|
17125
|
+
if (this.variant === 'outline') {
|
|
17126
|
+
const dark = this.theme !== 'light';
|
|
17127
|
+
const bg = dark ? '#0c1c14' : '#ffffff';
|
|
17128
|
+
const stroke = dark ? '#34473d' : '#07140D';
|
|
17129
|
+
const labelColor = dark ? '#ECECEC' : '#07140D';
|
|
17130
|
+
const sep = dark ? '#5a6b62' : '#9aa39d';
|
|
17131
|
+
const value = dark ? valColor : (Number(this.level) >= 4 ? '#00966a' : '#7A7B7A');
|
|
17132
|
+
const w = Math.ceil(logoSpace + (this.label + ' · ' + this.level).length * CW + 12);
|
|
17133
|
+
const inner = `<defs>${markDefs(uid)}</defs>` +
|
|
17134
|
+
`<rect x=".5" y=".5" width="${w - 1}" height="23" rx="6" fill="${bg}" stroke="${stroke}"/>${markGroup(uid, 8, 4, 16)}` +
|
|
17135
|
+
`<text x="30" y="16" ${mono} font-size="11" letter-spacing=".3">` +
|
|
17136
|
+
`<tspan fill="${labelColor}">${this.esc(this.label)} </tspan>` +
|
|
17137
|
+
`<tspan fill="${sep}">· </tspan>` +
|
|
17138
|
+
`<tspan fill="${value}" font-weight="600">${lvl}</tspan></text>`;
|
|
17139
|
+
return { w, h: 24, inner };
|
|
17140
|
+
}
|
|
17141
|
+
if (this.variant === 'scale') {
|
|
17142
|
+
const dark = this.theme !== 'light';
|
|
17143
|
+
const bg = dark ? '#07140D' : '#ECECEC';
|
|
17144
|
+
const labelColor = dark ? '#ECECEC' : '#07140D';
|
|
17145
|
+
const emptyPip = dark ? '#2f4339' : '#c4ccc7';
|
|
17146
|
+
const sep = dark ? '#5a6b62' : '#9aa39d';
|
|
17147
|
+
const n = Math.max(0, Math.min(9, Number(this.level) || 0));
|
|
17148
|
+
const pipStart = Math.ceil(30 + this.label.length * CW + 12);
|
|
17149
|
+
const pipStep = 9, pipW = 6, pipH = 8, pipY = 9;
|
|
17150
|
+
let pips = '';
|
|
17151
|
+
for (let i = 0; i < 9; i++) {
|
|
17152
|
+
const x = pipStart + i * pipStep;
|
|
17153
|
+
pips += `<rect x="${x}" y="${pipY}" width="${pipW}" height="${pipH}" rx="1" fill="${i < n ? valColor : emptyPip}"/>`;
|
|
17154
|
+
}
|
|
17155
|
+
const valueX = pipStart + 9 * pipStep + 5;
|
|
17156
|
+
const w = Math.ceil(valueX + `${this.level}/9`.length * CW + 8);
|
|
17157
|
+
const inner = `<defs>${markDefs(uid)}</defs>` +
|
|
17158
|
+
`<rect width="${w}" height="26" rx="6" fill="${bg}"/>${markGroup(uid, 8, 5, 16)}` +
|
|
17159
|
+
`<text x="30" y="17" ${mono} font-size="11" letter-spacing=".3" fill="${labelColor}">${this.esc(this.label)}</text>` +
|
|
17160
|
+
`<g>${pips}</g>` +
|
|
17161
|
+
`<text x="${valueX}" y="17" ${mono} font-size="11" font-weight="500">` +
|
|
17162
|
+
`<tspan fill="${valColor}">${lvl}</tspan><tspan fill="${sep}">/9</tspan></text>`;
|
|
17163
|
+
return { w, h: 26, inner };
|
|
17164
|
+
}
|
|
17165
|
+
// tone (default) — dark or light theme
|
|
17166
|
+
const dark = this.theme !== 'light';
|
|
17167
|
+
const labelBg = dark ? '#07140D' : '#ECECEC';
|
|
17168
|
+
const labelTextColor = dark ? '#ECECEC' : '#07140D';
|
|
17169
|
+
const valTextColor = dark ? this.valueText() : '#07140D';
|
|
17170
|
+
const labelSegW = Math.ceil(logoSpace + this.label.length * CW + 12);
|
|
17171
|
+
const valSegW = Math.ceil(12 + String(this.level).length * CW + 12);
|
|
17172
|
+
const w = labelSegW + valSegW;
|
|
17173
|
+
const inner = `<defs><clipPath id="${clip}"><rect width="${w}" height="24" rx="6"/></clipPath>${markDefs(uid)}</defs>` +
|
|
17174
|
+
`<g clip-path="url(#${clip})"><rect width="${labelSegW}" height="24" fill="${labelBg}"/>` +
|
|
17175
|
+
`<rect x="${labelSegW}" width="${valSegW}" height="24" fill="${valColor}"/></g>${markGroup(uid, 8, 4, 16)}` +
|
|
17176
|
+
`<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>` +
|
|
17177
|
+
`<text x="${labelSegW + valSegW / 2}" y="16" ${mono} font-size="11" font-weight="600" fill="${valTextColor}" text-anchor="middle">${lvl}</text>`;
|
|
17178
|
+
return { w, h: 24, inner };
|
|
17179
|
+
}
|
|
17180
|
+
buildSvg() {
|
|
17181
|
+
const { w, h, inner } = this.build();
|
|
17182
|
+
const aria = this.esc(this.fullText());
|
|
17183
|
+
const k = this.size ? this.size / h : 1;
|
|
17184
|
+
const outW = Math.round(w * k);
|
|
17185
|
+
const outH = Math.round(h * k);
|
|
17186
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${outW}" height="${outH}" ` +
|
|
17187
|
+
`viewBox="0 0 ${w} ${h}" role="img" aria-label="${aria}"><title>${aria}</title>${inner}</svg>`;
|
|
17188
|
+
}
|
|
17189
|
+
render() {
|
|
17190
|
+
const svg = this.buildSvg();
|
|
17191
|
+
return (hAsync(Host, { key: 'eddfb49f35ff9771d76eef13a024b840b3a24cca' }, this.href ? (hAsync("a", { class: "link", href: this.href, "aria-label": this.fullText(), innerHTML: svg })) : (hAsync("span", { class: "link", innerHTML: svg }))));
|
|
17192
|
+
}
|
|
17193
|
+
static get style() { return EdsTrlBadgeStyle0; }
|
|
17194
|
+
static get cmpMeta() { return {
|
|
17195
|
+
"$flags$": 9,
|
|
17196
|
+
"$tagName$": "eds-trl-badge",
|
|
17197
|
+
"$members$": {
|
|
17198
|
+
"level": [2],
|
|
17199
|
+
"assessed": [1],
|
|
17200
|
+
"methodology": [1],
|
|
17201
|
+
"theme": [1],
|
|
17202
|
+
"variant": [1],
|
|
17203
|
+
"size": [2],
|
|
17204
|
+
"label": [1],
|
|
17205
|
+
"href": [1]
|
|
17206
|
+
},
|
|
17207
|
+
"$listeners$": undefined,
|
|
17208
|
+
"$lazyBundleId$": "-",
|
|
17209
|
+
"$attrsToReflect$": []
|
|
17210
|
+
}; }
|
|
17211
|
+
}
|
|
17212
|
+
// IBM Plex Mono advance width at 11px (used to size segments to the text).
|
|
17213
|
+
EdsTrlBadge.CW = 6.8;
|
|
17214
|
+
|
|
16203
17215
|
const edsUserCss = "hr,p{margin:0}.block{display:block}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.text-default{color:var(--black)}.min-w-\\[280px\\]{min-width:280px}.p-8{padding:0.5rem}.gap-x-16{-moz-column-gap:1rem;column-gap:1rem}.gap-y-8{row-gap:0.5rem}.pb-16{padding-bottom:1rem}.border-b-2{border-bottom-width:2px}.border-softer{border-color:rgba(0, 0, 0, .1 )}.max-w-full{max-width:100%}.w-full{width:100%}.f-ui-01{font-family:var(--f-ui-01-fontFamily);font-weight:var(--f-ui-01-fontWeight);font-size:var(--f-ui-01-fontSize);line-height:var(--f-ui-01-lineHeight);letter-spacing:var(--f-ui-01-letterSpacing)}.f-ui-03-light{font-family:var(--f-ui-03-light-fontFamily);font-weight:var(--f-ui-03-light-fontWeight);font-size:var(--f-ui-03-light-fontSize);line-height:var(--f-ui-03-light-lineHeight);letter-spacing:var(--f-ui-03-light-letterSpacing)}.text-light{color:var(--grey-700)}.mt-4{margin-top:0.25rem}.mt-16{margin-top:1rem}";
|
|
16204
17216
|
var EdsUserStyle0 = edsUserCss;
|
|
16205
17217
|
|
|
@@ -16251,7 +17263,7 @@ class EdsUser {
|
|
|
16251
17263
|
render() {
|
|
16252
17264
|
const user = this.parsedUser;
|
|
16253
17265
|
//const iconName = this.expanded ? 'chevron-down' : 'chevron-right';
|
|
16254
|
-
return (hAsync("div", { key: '
|
|
17266
|
+
return (hAsync("div", { key: '1a9c56a4868b68ea95fdbb19a61435f5fa23b1b5', class: "block" }, hAsync("div", { key: '242beb1cf3dc3e545be84003615eaed119be3e20', class: "flex items-center" }, hAsync("eds-dropdown", { key: 'e75e0305a60936df4deb5b012fa139ca9a6b024f', ref: (el) => (this.dropdownEl = el), intent: this.intent, "aria-label": "User Menu", "dropdown-pos": "right", "dropdown-offset": "false", icon: "user", label: this.dropdownLabel, class: "text-default", onDropdown: this.handleDropdown }, hAsync("div", { key: '09c74d1320e9637e50f7e0f8482e435db7a3319a', class: "min-w-[280px] p-8" }, hAsync("div", { key: 'fa70ecc13e477cf2d2ead8e8dbab4fa3c3587149', class: "flex gap-x-16", "data-dropdown-no-close": true }, hAsync("eds-avatar", { key: '69f059e2002237dd874ba62952c2b014ad94cb8a', "first-name": user.given_name, "last-name": user.family_name, initials: this.initials, color: "black" }), hAsync("div", { key: 'c300f3bbe7f57d82913cef614637188babb82818', class: "max-w-full" }, user.name && hAsync("p", { key: 'dc1a4a26f6c1da6c6e88e5aae484ca2ada2864e6', class: "f-ui-01 text-default w-full text-ellipsis" }, user.name), user.preferred_username && hAsync("p", { key: '76f94c7b0394125d9a6b547722df5545c6b479fd', class: "f-ui-03-light text-light mt-4" }, user.preferred_username), user.email && hAsync("p", { key: '8be3fe5ba1c302d5ef9bfb6d563070c07ed722ca', class: "f-ui-03-light text-light mt-4" }, user.email))), hAsync("div", { key: '191e365fa893122e09c07aa36d1fde5d28b9b3de', class: "text-default flex w-full flex-col gap-y-8" }, hAsync("slot", { key: '8d3fbd032340d5c32fd93ab89b034e7de25ef2e3' })))))));
|
|
16255
17267
|
}
|
|
16256
17268
|
get hostEl() { return getElement(this); }
|
|
16257
17269
|
static get style() { return EdsUserStyle0; }
|
|
@@ -16307,7 +17319,7 @@ class GradientPrimaryPalette {
|
|
|
16307
17319
|
];
|
|
16308
17320
|
}
|
|
16309
17321
|
render() {
|
|
16310
|
-
return (hAsync("ul", { key: '
|
|
17322
|
+
return (hAsync("ul", { key: 'a8696a25aafbfb13acf0966545e33caf6f65545d', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16", style: {
|
|
16311
17323
|
background: 'linear-gradient(to bottom, #9CE142 0%, #00C959 50%, #00A595 100%)'
|
|
16312
17324
|
} }, this.colors.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "effect-height flex items-center justify-between p-16" }, hAsync("div", { class: "grid" }, hAsync("span", { class: "f-body-02" }, color.rgb), hAsync("span", { class: "f-body-02 w-full" }, color.cmyk), hAsync("eds-code-block", { code: color.hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { class: "grid" }, hAsync("span", { class: "f-body-02" }, color.pantoneC), hAsync("span", { class: "f-body-02" }, color.pantoneU))))))));
|
|
16313
17325
|
}
|
|
@@ -16380,19 +17392,19 @@ class GradientSecondaryPalette {
|
|
|
16380
17392
|
];
|
|
16381
17393
|
}
|
|
16382
17394
|
render() {
|
|
16383
|
-
return (hAsync("div", { key: '
|
|
17395
|
+
return (hAsync("div", { key: '0ddb6899f2537c472edbdd0de348c4155a861fff' }, hAsync("ul", { key: 'f5dc4b1ec2fac8da8266e89b3ee51b13bbf2ab6c', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: 'f0c8c818f3fcf25c565890fc330f0381c5c0dbc6', class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { key: 'b6df1db077f85646585b918b155e49ea139bcc82', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16384
17396
|
background: this.colors[0].background
|
|
16385
|
-
} }, hAsync("div", { key: '
|
|
17397
|
+
} }, hAsync("div", { key: '77d1cb3761d5d5d1f415e9b47a31fee3f246dd7c', class: "grid" }, hAsync("span", { key: 'b1d79586fdd0126a44329a6478702803df065afc', class: "f-body-02" }, this.colors[0].rgb), hAsync("span", { key: '463fef5cd7531513f644605f4caba6218ddf08ad', class: "f-body-02 w-full" }, this.colors[0].cmyk), hAsync("eds-code-block", { key: 'e0ecb4d4ec8c30f2de553d8763d50b7346c1148a', code: this.colors[0].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: '1e8f1a7be1aa0418232458729a5bb85d2cb98e4f', class: "grid" }, hAsync("span", { key: 'a82f7eed64466929d0c366ad0cac1dd8d07095b3', class: "f-body-02" }, this.colors[0].pantoneC), hAsync("span", { key: '78c94eaf3d621a16ebc17d210fd3f6baef0e70fe', class: "f-body-02" }, this.colors[0].pantoneU))), hAsync("div", { key: '4b21c9633426e2d49421e9e93adb920306aced13', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16386
17398
|
background: this.colors[1].background
|
|
16387
|
-
} }, hAsync("div", { key: '
|
|
17399
|
+
} }, hAsync("div", { key: '118a50630946847b09f2792fda6fc86f9c4b458e', class: "grid" }, hAsync("span", { key: '4143c24062fcd7b3313867eb4c13a8a83fbbd644', class: "f-body-02" }, this.colors[1].rgb), hAsync("span", { key: '5ef264bd694c497e2ba0348a36ef1789bcada833', class: "f-body-02 w-full" }, this.colors[1].cmyk), hAsync("eds-code-block", { key: 'a1456423e9173eb95da41584ecded25d5c61766a', code: this.colors[1].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: 'e345d8cc8c51f2d9d1fea9b2c67051ce5ca8f358', class: "grid" }, hAsync("span", { key: '29b7d5bcfb5ac5f95474f053239a49e7fc91799f', class: "f-body-02" }, this.colors[1].pantoneC), hAsync("span", { key: 'b446728afaa56156a254499d335c2a1c8e1b0148', class: "f-body-02" }, this.colors[1].pantoneU))))), hAsync("eds-block-break", { key: 'b3d7bc7434cf9f707cd1827cb2dac72fe70d58e2' }), hAsync("ul", { key: 'c83274127086ebcb67f22d946480636059e313af', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: '27fbee38a641a525a3dd02f4ad7b6b03fa2f59b5', class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { key: '34b924874118811fef752e975532fb6c56692b67', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16388
17400
|
background: this.colors[2].background
|
|
16389
|
-
} }, hAsync("div", { key: '
|
|
17401
|
+
} }, hAsync("div", { key: '1e28e76e270583923233a207dcf14f155ec1a056', class: "grid" }, hAsync("span", { key: '25ddba2af4b76aff1d3c28711052e23e1f924f35', class: "f-body-02" }, this.colors[2].rgb), hAsync("span", { key: 'a2f75582478b7ac7cb5e5c954fbe6bc41c534714', class: "f-body-02 w-full" }, this.colors[2].cmyk), hAsync("eds-code-block", { key: '5ed9569671f7644be52a63735cd9f91dd0c38e45', code: this.colors[2].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: 'b6c65b860f91f5d1b0dea6320588807b54935260', class: "grid" }, hAsync("span", { key: '75fdc2677a0cf76e2fc458bf6ddafa8f25e47c25', class: "f-body-02" }, this.colors[2].pantoneC), hAsync("span", { key: '48a8182282ab4311ebe104ce812924261f350c52', class: "f-body-02" }, this.colors[2].pantoneU))), hAsync("div", { key: '40f5edd974eff3891f08fb4bb71e627a7fc6c3e3', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16390
17402
|
background: this.colors[3].background
|
|
16391
|
-
} }, hAsync("div", { key: '
|
|
17403
|
+
} }, hAsync("div", { key: '30e2c52d5dc2f14b2d31db28725602fa5db2c7cc', class: "grid" }, hAsync("span", { key: 'f38624cf43d3afc08c6ddf7fda4c0d8c8302cabb', class: "f-body-02" }, this.colors[3].rgb), hAsync("span", { key: '7fa03e96c202c03376214cf874de48ad3059a819', class: "f-body-02 w-full" }, this.colors[3].cmyk), hAsync("eds-code-block", { key: '5668f67a60cf3c148b2f411b5e990409f1b2a63d', code: this.colors[3].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: '944dbcbe0b74d5de3b7a6cb6249292c4f6198ce4', class: "grid" }, hAsync("span", { key: 'f85d29f44844bad53e1a8272792909ee655c3d11', class: "f-body-02" }, this.colors[3].pantoneC), hAsync("span", { key: 'a8565dd2fcd60b9e8f685ca91be4b91fd9310243', class: "f-body-02" }, this.colors[3].pantoneU))))), hAsync("eds-block-break", { key: '1736517e3b869da97268b88ca1e862e52afb72e3' }), hAsync("ul", { key: '89c5251e7c56a1858f98f9877721aaf3818d3ce3', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: 'f1bf325f0f4c4ff13212dd40a957a0407a0e2a31', class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { key: '8f324cbb1e6c24f786135607d511cc6040582902', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16392
17404
|
background: this.colors[4].background
|
|
16393
|
-
} }, hAsync("div", { key: '
|
|
17405
|
+
} }, hAsync("div", { key: '1eb01383979ac6d4a0b61964a7bcd19887c8908f', class: "grid" }, hAsync("span", { key: '2aaf61cb79ca93c7303ea37b0e23f755bf933948', class: "f-body-02" }, this.colors[4].rgb), hAsync("span", { key: '5814e3e62806533329488aa61f3528d6add22db1', class: "f-body-02 w-full" }, this.colors[4].cmyk), hAsync("eds-code-block", { key: 'e5a78ab4f2ee993cbf6f084314534b645b782dfa', code: this.colors[4].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: 'db666031e9fee9f2029992f776e1c468f5fb1ce7', class: "grid" }, hAsync("span", { key: '9888a56c6d738e2a175d89e6fe16fe5b4761fc56', class: "f-body-02" }, this.colors[4].pantoneC), hAsync("span", { key: '4337a6bedba3e7dbc09225a031c34f3e193d22bb', class: "f-body-02" }, this.colors[4].pantoneU))), hAsync("div", { key: '6cf755699eb3ff7f43b8694bb85fb4559372a0a3', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16394
17406
|
background: this.colors[5].background
|
|
16395
|
-
} }, hAsync("div", { key: '
|
|
17407
|
+
} }, hAsync("div", { key: 'c9864bbfb228691b623c2713e3655de3fb871caa', class: "grid" }, hAsync("span", { key: 'cc86cc9b24f429d7ebeca8ac8fff95346b8c149b', class: "f-body-02" }, this.colors[5].rgb), hAsync("span", { key: 'e46c02239ec074fe15cb2979b500a0b7e0a17a56', class: "f-body-02 w-full" }, this.colors[5].cmyk), hAsync("eds-code-block", { key: '5325d7f9e4a8c28884ba1bc0147d549b42be68c6', code: this.colors[5].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: '09af1ed381838dc60410fe2ba9116e4da0644307', class: "grid" }, hAsync("span", { key: 'bde38ea3998629f7ee7cf4cfafd96bfd3e11fb3a', class: "f-body-02" }, this.colors[5].pantoneC), hAsync("span", { key: 'f2da476b838b6124f8e1b77209fa1a524048e71a', class: "f-body-02" }, this.colors[5].pantoneU)))))));
|
|
16396
17408
|
}
|
|
16397
17409
|
static get cmpMeta() { return {
|
|
16398
17410
|
"$flags$": 0,
|
|
@@ -16455,11 +17467,11 @@ class GradientSupportPalette {
|
|
|
16455
17467
|
];
|
|
16456
17468
|
}
|
|
16457
17469
|
render() {
|
|
16458
|
-
return (hAsync("ul", { key: '
|
|
17470
|
+
return (hAsync("ul", { key: 'a74064ecc5a2d9646b76e50bd01fed9974cad718', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: '2a79cfc1423158ebe2479e5f4160874c5c57bba0', class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { key: 'f732817f063656d0f5083fbde7f53d78f4ce319b', class: "effect-height flex items-center justify-between p-16", style: { backgroundColor: this.colors[0].background } }, hAsync("div", { key: 'a780e52ac0812ba9f2d0933169a1ed408dcac017', class: "grid" }, hAsync("span", { key: '034c1c3f59ddb5d15b417eddd9049f61721c40e7', class: "f-body-02" }, this.colors[0].rgb), hAsync("span", { key: 'd85bde05df7d5e756d2c4e106ab364e7c3ec3d30', class: "f-body-02 w-full" }, this.colors[0].cmyk), hAsync("eds-code-block", { key: 'c4f3d8edad422dd905da51a2976b41df8833b2b2', code: this.colors[0].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: '6b6055393c1c086ef6c71fde0a06646d32c2cc49', class: "grid" }, hAsync("span", { key: '7678ac503bbfe96a8c7e4ba0833e5872afc4bda4', class: "f-body-02" }, this.colors[0].pantoneC || 'N/A'), hAsync("span", { key: 'e3861166afbbdcb1057d7aedf0363be1650ffef2', class: "f-body-02" }, this.colors[0].pantoneU || 'N/A')))), hAsync("li", { key: '51a63dafebd44287264876132b1a53c7ada24f59', class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { key: '26c3f5cd749a0ce810ce71283ba75292884c1802', class: "effect-height flex items-center justify-between p-16", style: { backgroundColor: this.colors[1].background } }, hAsync("div", { key: 'c2adcca45b3edb97cdc92f1bd177aee32c27d13b', class: "grid" }, hAsync("span", { key: '06ee04c8345bd3c7bee01f28ec79c839d3956812', class: "f-body-02" }, this.colors[1].rgb), hAsync("span", { key: '4118231fd5b280b10937136b05e420b3d4fa039d', class: "f-body-02 w-full" }, this.colors[1].cmyk), hAsync("eds-code-block", { key: '8053667bcbbe539b49a8fa490b28d7fed3c206fb', code: this.colors[1].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: 'ffbfe32727e433f64c2ca2fefb27348f46cdd123', class: "grid" }, hAsync("span", { key: '50199120a53270d4e9a2fdbfe7b0430fd810247e', class: "f-body-02" }, this.colors[1].pantoneC || 'N/A'), hAsync("span", { key: '9f1b49b9e3e9cc941e4047362a531ac39fa4acf2', class: "f-body-02" }, this.colors[1].pantoneU || 'N/A')))), hAsync("li", { key: '842be74ea7d2839282421c05c94de0ea08edc324', class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { key: 'e36fa05852a0e97af9f6d30b4bc7ac0a03c5ca46', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16459
17471
|
background: this.colors[2].background
|
|
16460
|
-
} }, hAsync("div", { key: '
|
|
17472
|
+
} }, hAsync("div", { key: '7c20aa597afc6623e4f48c96a5dfe35fcc794417', class: "grid" }, hAsync("span", { key: '9de55f6cf867d5ca0f359c34df82ea9ea9944b41', class: "f-body-02" }, this.colors[2].rgb), hAsync("span", { key: '64ca513c8cb69fa0e8bf8decc3b9315f59e78adc', class: "f-body-02 w-full" }, this.colors[2].cmyk), hAsync("eds-code-block", { key: 'fe4421e78d7c9f6b9fae2aab43046e68fa61b33a', code: this.colors[2].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: '1913674915edca8c83213f405465670bd1dc53b1', class: "grid" }, hAsync("span", { key: 'a53396290e785e8c055e152d15256388a278606b', class: "f-body-02" }, this.colors[2].pantoneC), hAsync("span", { key: 'd175bc7681febbde0bfbcf9816c8077cef210de3', class: "f-body-02" }, this.colors[2].pantoneU))), hAsync("div", { key: 'bbb39daa24f9881296be8b89fc5dd7d980acace6', class: "effect-height flex items-center justify-between p-16", style: {
|
|
16461
17473
|
background: this.colors[3].background
|
|
16462
|
-
} }, hAsync("div", { key: '
|
|
17474
|
+
} }, hAsync("div", { key: '8d2c43ece12d3b50970df5843d038c4866eeb18e', class: "grid" }, hAsync("span", { key: '2e2fc983f867ef09fffb61c6f82d796c68c73b17', class: "f-body-02" }, this.colors[3].rgb), hAsync("span", { key: '4d9f460a5f6f5b8166f41eee37e15809b2abf943', class: "f-body-02 w-full" }, this.colors[3].cmyk), hAsync("eds-code-block", { key: 'dfb80c0f00dc096561da4d5a85a98969e4568987', code: this.colors[3].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: '1d7d6041de03afec92b41519d8422a998ce25465', class: "grid" }, hAsync("span", { key: '5298461da58d328376cc3448da7b3994dabe0abd', class: "f-body-02" }, this.colors[3].pantoneC), hAsync("span", { key: 'a21f99e92de656addef78784d6c699ac17c82f36', class: "f-body-02" }, this.colors[3].pantoneU)))), hAsync("li", { key: '36b0e8aed142a859481083b733e2c72dbe88e2a7', class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { key: 'd6620556f763fc9b59ef96846c1121a78945e6df', class: "effect-height flex items-center justify-between p-16", style: { backgroundColor: this.colors[4].background } }, hAsync("div", { key: '3be07bea07803e9103ccaa26582502a746f9d832', class: "grid" }, hAsync("span", { key: '25ead831ce5dab6e3c145b8610f6654d85bb185a', class: "f-body-02" }, this.colors[4].rgb), hAsync("span", { key: 'f5993b7b320e904ee13f63152aa33dd82431c387', class: "f-body-02 w-full" }, this.colors[4].cmyk), hAsync("eds-code-block", { key: 'b01544b8316df980372cc834a39a9adbf7ec2e26', code: this.colors[4].hex, style: { minWidth: '150px', marginRight: '5px' } })), hAsync("div", { key: 'e7b4641f2fd27c0742439164bd1f10b08c593f4f', class: "grid" }, hAsync("span", { key: 'd4fe6aacd76c7aa6b0e5fa06ff553403b16d05b4', class: "f-body-02" }, this.colors[4].pantoneC || 'N/A'), hAsync("span", { key: 'a2eb07ff8a20e25ddf65e589285f016e1ecdc52e', class: "f-body-02" }, this.colors[4].pantoneU || 'N/A'))))));
|
|
16463
17475
|
}
|
|
16464
17476
|
static get cmpMeta() { return {
|
|
16465
17477
|
"$flags$": 0,
|
|
@@ -16513,7 +17525,7 @@ class IncorrectUseOfColors {
|
|
|
16513
17525
|
registerInstance(this, hostRef);
|
|
16514
17526
|
}
|
|
16515
17527
|
render() {
|
|
16516
|
-
return (hAsync("div", { key: '
|
|
17528
|
+
return (hAsync("div", { key: '2688817c691de1f39d1c25845642e99af13e1b00', class: "container" }, hAsync("div", { key: '823b5f324f9b7fe4143dd982e71f535b9c576dd6', class: "mb-8" }, hAsync("eds-alert", { key: '95cf4b07317e116636979fb2d72b4fe925b09fa2', message: "Note that, each of the four colour tones cannot be mixed in the same composition.", intent: "error" })), hAsync("div", { key: 'd4bfceeb122dddf376808ae187379c07ed0e1a06', class: "flex" }, hAsync("div", { key: '82eac813cc9b29424640fb2517992e3384d19a6e', class: "w-full" }, hAsync("ul", { key: 'da2ca77bd91a25c6a451910a6b3bf939e5e8abc9', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, primary.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[150px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } })))))), hAsync("div", { key: '538560ac8db9f9d023a5afbf4cd67dff80f6e7b6', class: "w-full" }, hAsync("ul", { key: '4b601f722730fbe1cbb78c1185d79b34654d3f76', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, incorrect.map((color) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col" }, hAsync("div", { class: "w-full min-h-[90px] effect-height flex items-center justify-between p-16", style: { backgroundColor: color.background } })))))))));
|
|
16517
17529
|
}
|
|
16518
17530
|
static get cmpMeta() { return {
|
|
16519
17531
|
"$flags$": 0,
|
|
@@ -16536,7 +17548,7 @@ class LogoSpace {
|
|
|
16536
17548
|
registerInstance(this, hostRef);
|
|
16537
17549
|
}
|
|
16538
17550
|
render() {
|
|
16539
|
-
return (hAsync("div", { key: '
|
|
17551
|
+
return (hAsync("div", { key: '9f72a0aaadd8ae1aaa8998ca3539bd7d2640de80', class: "container" }, hAsync("ul", { key: 'c4eae5e0c5c6adebbcdfa9f5ff5e505e8fca5364', class: "not-prose grid-layout grid-cols-6 gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: 'cc93430ed51397f9cc5f6885da73464eee4f50f0', class: "grid-col-span-6 xxl:grid-col-span-3 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: '7a10d36af753e4cc085a898385a79f86cfda4386', class: "logo-clear-space mx-auto", style: { position: 'relative', padding: '2.5rem', background: '#f5f5f5', borderRadius: '8px' } }, hAsync("div", { key: 'ca39c5c1d7692ac3e3f4c5f86b37ac315da32238', style: { position: 'absolute', top: '0', left: '50%', transform: 'translateX(-50%)', display: 'flex', flexDirection: 'column', alignItems: 'center' } }, hAsync("span", { key: '29dc95b66b0cc09fc4b4d45b317858262fd5f74c', style: { fontSize: '11px', fontWeight: '600', color: '#00C87B', fontFamily: 'IBM Plex Mono, monospace' } }, "E"), hAsync("div", { key: '314d8208cb5349457c1586eacbda115e9fb16d11', style: { width: '1px', height: '12px', borderLeft: '1px dashed #00C87B' } })), hAsync("div", { key: '4d8a568924c6891cd4be3c19e04fc31c2ea1fc70', style: { position: 'absolute', bottom: '0', left: '50%', transform: 'translateX(-50%)', display: 'flex', flexDirection: 'column', alignItems: 'center' } }, hAsync("div", { key: 'b09af7bd89b9f553b812190356ca62aa92ed6991', style: { width: '1px', height: '12px', borderLeft: '1px dashed #00C87B' } }), hAsync("span", { key: 'f093c84334e23c4f4f057e7e4b32d9107a3f41fc', style: { fontSize: '11px', fontWeight: '600', color: '#00C87B', fontFamily: 'IBM Plex Mono, monospace' } }, "E")), hAsync("div", { key: '91db9099f9e9a1523e19785fb7114e3f4fce7275', style: { position: 'absolute', left: '4px', top: '50%', transform: 'translateY(-50%)', display: 'flex', alignItems: 'center' } }, hAsync("span", { key: '88dd6f5d7954d2a1609db58f16242302f8d4f018', style: { fontSize: '11px', fontWeight: '600', color: '#00C87B', fontFamily: 'IBM Plex Mono, monospace' } }, "E"), hAsync("div", { key: '1a6cad75530619b5f7cdbd9044c61ddd05bb4882', style: { height: '1px', width: '12px', borderTop: '1px dashed #00C87B' } })), hAsync("div", { key: '1cf721720500db93522e8563a44260f1ad5d12a3', style: { position: 'absolute', right: '4px', top: '50%', transform: 'translateY(-50%)', display: 'flex', alignItems: 'center' } }, hAsync("div", { key: 'cd05bc1ca38fd5698f894f036ea4530833636dec', style: { height: '1px', width: '12px', borderTop: '1px dashed #00C87B' } }), hAsync("span", { key: 'ab0476740b19beb7c7799334370bff344e01a4de', style: { fontSize: '11px', fontWeight: '600', color: '#00C87B', fontFamily: 'IBM Plex Mono, monospace' } }, "E")), hAsync("div", { key: 'ce5dcd6aaa22c90084ac3f285c28726ef1dc241e', style: { border: '1px dashed rgba(0, 200, 123, 0.5)', borderRadius: '4px', padding: '1rem', display: 'flex', alignItems: 'center', justifyContent: 'center' } }, hAsync("eds-logo", { key: '457548ba3f0835a632c86521fce2fc828f72b7a5', variant: "positive", href: "#", style: { display: 'block', width: '250px' } })))), hAsync("li", { key: '676ceccfa0081fa6b05a2c6cb3c0ba88da61cd6a', class: "grid-col-span-6 xxl:grid-col-span-3 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: '5ca2e9f1c386afc3f70be756183b4fe93779022f', class: "text-center mt-16" }, hAsync("p", { key: '0c986326909c8de83e584f796c41198554741c3d', class: "f-body-01" }, "To ensure legibility, follow these minimum size guidelines:"), hAsync("eds-table", { key: 'c745fc8b37d5fe412b08c0f88283d5ba74492f30', data: '[\n { "Media": "Print", "Min Size": "0.75 cm" },\n { "Media": "Web", "Min Size": "29 px" }\n ]', config: '{\n "Media": { "format": "bold" }\n }' }))))));
|
|
16540
17552
|
}
|
|
16541
17553
|
static get style() { return LogoSpaceStyle0; }
|
|
16542
17554
|
static get cmpMeta() { return {
|
|
@@ -16560,7 +17572,7 @@ class LogoVariationsHorizontal {
|
|
|
16560
17572
|
registerInstance(this, hostRef);
|
|
16561
17573
|
}
|
|
16562
17574
|
render() {
|
|
16563
|
-
return (hAsync("div", { key: '
|
|
17575
|
+
return (hAsync("div", { key: 'bfd9df144e3cabfc1b2198909208d4d41b1d06b8', class: "container" }, hAsync("ul", { key: '318197fcbbf5ea30a3b7786c670dc6a3484063fe', class: "not-prose grid-layout grid-cols-6 gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: '7014dddeec695952b9b4041bacc7b509abd4425c', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("p", { key: '8be13e6c9f214d23941aae09653e6bae85536805', class: "f-body-01 text-center my-4" }, "#1 Positive"), hAsync("div", { key: 'a3eb696587b0fe2eaea6e6f02c6512d75b2319f4', class: "coloured" }, hAsync("eds-logo", { key: '530e57935491b485a8f1ab983c5c74aa62699e33', variant: "positive", href: "#" }))), hAsync("li", { key: '1664f259390ded9c4084a8734b275a24e4add82e', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("p", { key: 'c24b35b76fe5cd95462c3f5c435a445b4eed731d', class: "f-body-01 text-center my-4" }, "#2 Negative"), hAsync("div", { key: '0ef846b5bc472e082151994428a681e8ef888919', class: "bg-default" }, hAsync("eds-logo", { key: '647cbedbffc487740dda470fada93c7c4bfe88b7', variant: "negative", href: "#" }))))));
|
|
16564
17576
|
}
|
|
16565
17577
|
static get style() { return LogoVariationsHorizontalStyle0; }
|
|
16566
17578
|
static get cmpMeta() { return {
|
|
@@ -16592,7 +17604,7 @@ class LogoVariationsTabs {
|
|
|
16592
17604
|
}
|
|
16593
17605
|
}
|
|
16594
17606
|
render() {
|
|
16595
|
-
return hAsync("div", { key: '
|
|
17607
|
+
return hAsync("div", { key: '25f8ec6fcb189c14d9e6d1564a5705ba34296fe1', class: "container" }, this.renderContent());
|
|
16596
17608
|
}
|
|
16597
17609
|
static get cmpMeta() { return {
|
|
16598
17610
|
"$flags$": 0,
|
|
@@ -16619,7 +17631,7 @@ class LogoVariationsVertical {
|
|
|
16619
17631
|
this.type = undefined;
|
|
16620
17632
|
}
|
|
16621
17633
|
render() {
|
|
16622
|
-
return (hAsync("div", { key: '
|
|
17634
|
+
return (hAsync("div", { key: '7707346060f598bc4a33ed1b25591907bd1ed86f', class: "container" }, hAsync("ul", { key: '988427e4445b7238666a8865b40e39106574a020', class: "not-prose grid-layout grid-cols-6 gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: '09ebe2c5e0c4a17451cff4fa7f8d14f8dadccfb2', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("p", { key: 'b761f45824056d8022b25851dc92ec477ba5dd90', class: "f-body-01 text-center my-4" }, "#1 Positive"), hAsync("div", { key: 'b1d0c459aa5fe60c07d23d216873e8792a9b0bdb', class: "mx-auto coloured w-[300px]" }, hAsync("eds-logo", { key: '579c9c3bfe2156153d0a695ed164b5c143435935', orientation: "vertical", variant: "positive", href: "#" }))), hAsync("li", { key: 'e9392a9b97c7fee407bc49dbf1baf5844c002f4a', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("p", { key: '5335419cfe66e2454eebe227dcbb844bd9c28d65', class: "f-body-01 text-center my-4" }, "#2 Negative"), hAsync("div", { key: '85f26cc36d343225c543f55ebff8435b7c3b8128', class: "mx-auto bg-default w-[300px]" }, hAsync("eds-logo", { key: 'e50ba165a491eda6dbdf386cb7c82cfdb69aa7a7', orientation: "vertical", variant: "negative", href: "#" }))))));
|
|
16623
17635
|
}
|
|
16624
17636
|
static get style() { return LogoVariationsVerticalStyle0; }
|
|
16625
17637
|
static get cmpMeta() { return {
|
|
@@ -16646,7 +17658,7 @@ class LogoWrongUsage {
|
|
|
16646
17658
|
registerInstance(this, hostRef);
|
|
16647
17659
|
}
|
|
16648
17660
|
render() {
|
|
16649
|
-
return (hAsync("div", { key: '
|
|
17661
|
+
return (hAsync("div", { key: 'd2670fc81c458c6fa7830adc0bfe84a8d6edc808', class: "container" }, hAsync("ul", { key: '068ccd9ab65938f0d61f800410c0223e79b072a5', class: "not-prose grid-layout grid-cols-6 gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: '4600e980ce2d169750f3a06ad11ecc5280ac6816', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: 'db4d3fc8f5e35ae084c7f359fcc2553f913cc05a', class: "mx-auto no-other-bg-color logo", innerHTML: logoPositive }), hAsync("p", { key: 'b3f85315b376d5dae84a076fcefad660bb28f2b0', class: "f-ui-02 text-center" }, "Do not use with backgrounds that make legibility difficult")), hAsync("li", { key: '786ea943986e9948d465fc9bb07b3ea3ab9438f1', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: 'c9ee298d8c36b732e7a1855f26e08f000c16aa91', class: "mx-auto no-other-color logo non-brand-color", innerHTML: logoPositive }), hAsync("p", { key: '6e16a1cf4f03f8a8929c31b2df080dd89b0951c3', class: "f-ui-02 text-center" }, "Do not apply other colors")), hAsync("li", { key: '82a57b134dd2a559a8c755579bdad818d316742a', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: 'f32b83ca94652e22477a3ce0d2247eef0e47b7b8', class: "mx-auto distorted logo", innerHTML: logoPositive }), hAsync("p", { key: '3cf9e132199d325d430cfffa6bf4b4331e43a62e', class: "f-ui-02 text-center" }, "Do not deform the logo")), hAsync("li", { key: '89d4b3eed2c779ff71b3fd6c8315ce4a99cb871b', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: 'b765e1c704944ecded0d88aca1db3efffd0caeed', class: "mx-auto effects logo", innerHTML: logoPositive }), hAsync("p", { key: '822ac23c64ba745b46d21303a9bbfabe9a26d6dc', class: "f-ui-02 text-center" }, "Do not apply effects")), hAsync("li", { key: 'a5f157b40464fa3178f94147ce9017ffaad0bb69', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: 'c9b3e60f08ad15e0ca9eb11abe769510bf6f04c9', class: "mx-auto rotated logo", innerHTML: logoPositive }), hAsync("p", { key: 'c25fc7938948f5cb3fdf55719483e13ab4780bba', class: "f-ui-02 text-center" }, "Do not rotate the logo")), hAsync("li", { key: '8ed76fa89e0bf6b40f0b5478cebfe3a2b129cde6', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: 'a18962c12781071348a8ec0c10e62d7d3ebec881', class: "mx-auto outlined logo", innerHTML: logoPositive }), hAsync("p", { key: 'a967a5ef26f9d935756db41e632d88765fdc50c7', class: "f-ui-02 text-center" }, "Do not apply outlines")), hAsync("li", { key: '9fc5979179dc4d1defe578a6c4aa7b1e7bf6e355', class: "grid-col-span-6 xxl:grid-col-span-2 xl:grid-col-span-3 lg:grid-col-span-3 md:grid-col-span-3 flex flex-col" }, hAsync("div", { key: 'df9479358ca218d9b2f9ffa15dc9cb802cf71e04', class: "mx-auto" }, hAsync("div", { key: '2d06f90b92971701bbe6a76f8b8125846ac15d0c', class: "bg-accent p-16" }, hAsync("div", { key: 'a4178f35a86f8a5788f30137f75880f4c5f5c2a3', class: "text-inverse", innerHTML: logoPositive })), hAsync("p", { key: '567638cdb967150758210ddb0d52657834f65054', class: "f-ui-02 text-center" }, "Do not use the green background for the logo version of the logo with backgrounds with the same tones"))))));
|
|
16650
17662
|
}
|
|
16651
17663
|
static get style() { return LogoWrongUsageStyle0; }
|
|
16652
17664
|
static get cmpMeta() { return {
|
|
@@ -16690,7 +17702,7 @@ class SvgRepository {
|
|
|
16690
17702
|
icon: { format: 'svg' },
|
|
16691
17703
|
name: { format: 'bold' }
|
|
16692
17704
|
};
|
|
16693
|
-
return (hAsync("div", { key: '
|
|
17705
|
+
return (hAsync("div", { key: 'a7aebad6b026e51c822051cabd0826b6d9740d91', class: "full-width" }, hAsync("eds-table", { key: '5b5ce183d78d0a2259c99a949967dbbf4caf4ba4', "table-data": JSON.stringify(svgData), config: JSON.stringify(tableConfig), "rows-per-page": 10, "search-enabled": true, "pagination-enabled": true })));
|
|
16694
17706
|
}
|
|
16695
17707
|
get hostEl() { return getElement(this); }
|
|
16696
17708
|
static get style() { return SvgRepositoryStyle0; }
|
|
@@ -16964,7 +17976,7 @@ class TokenList {
|
|
|
16964
17976
|
render() {
|
|
16965
17977
|
// Check if `show` prop is provided; if not, display all sections
|
|
16966
17978
|
const sectionsToDisplay = this.show ? { [this.show]: colors[this.show] } : colors;
|
|
16967
|
-
return (hAsync("section", { key: '
|
|
17979
|
+
return (hAsync("section", { key: '19a7dd76a980e2815f8df3ee0cb083b2c77cafa4', class: "w-full mt-28" }, Object.entries(sectionsToDisplay).map(([sectionName, sectionContent]) =>
|
|
16968
17980
|
// Only render sections that exist in `colors`
|
|
16969
17981
|
sectionContent ? this.renderSection(sectionName, sectionContent) : null)));
|
|
16970
17982
|
}
|
|
@@ -16997,7 +18009,7 @@ class TokenRadii {
|
|
|
16997
18009
|
registerInstance(this, hostRef);
|
|
16998
18010
|
}
|
|
16999
18011
|
render() {
|
|
17000
|
-
return (hAsync("section", { key: '
|
|
18012
|
+
return (hAsync("section", { key: '80a475b807538a7c9c1186d0f167a793858ad439', class: "w-full mt-28" }, hAsync("ul", { key: 'e3fa97c0f627f2094c7eae87eb9f7079df2b35f2', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, Object.entries(radii).map(([key, value]) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { class: `w-full p-16 block lg:flex items-center justify-center text-center border-3 border-soft rounded-${key}` }, hAsync("eds-code-block", { language: "Utility Class", code: `rounded-${key}`, class: "mx-auto min-w-[200px] sm:mb-4 sm:max-w-[200px] mr-auto" }), hAsync("eds-code-block", { code: `border-radius:${value}`, language: "css", class: "mx-auto min-w-[200px] sm:max-w-[200px] ml-auto" }))))))));
|
|
17001
18013
|
}
|
|
17002
18014
|
static get cmpMeta() { return {
|
|
17003
18015
|
"$flags$": 0,
|
|
@@ -17026,7 +18038,7 @@ class TokenRatios {
|
|
|
17026
18038
|
registerInstance(this, hostRef);
|
|
17027
18039
|
}
|
|
17028
18040
|
render() {
|
|
17029
|
-
return (hAsync("section", { key: '
|
|
18041
|
+
return (hAsync("section", { key: 'd95a7a36fc37fb829c74e336d16de79f57ec1b83', class: "w-full" }, hAsync("eds-section-core", { key: '1e2fbe9a818a162d6acd148804a61b87f919eda5', tag: "div", "section-title": "Aspect Ratios", "heading-level": "h3" }, hAsync("ul", { key: 'a2429b25e2aef59bde0185115dc2ff908b075db5', class: "gap-y-8 md:gap-y-12 lg:gap-y-16" }, Object.entries(ratios).map(([key, value]) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { class: "container ratio-box flex items-center justify-center text-center border-2 border-soft", style: {
|
|
17030
18042
|
aspectRatio: value.replace('/', ':'), // Cast to string to resolve TypeScript error
|
|
17031
18043
|
width: '100%', // Full width to show the aspect ratio correctly
|
|
17032
18044
|
maxWidth: '300px'
|
|
@@ -17093,7 +18105,7 @@ class TokenShadows {
|
|
|
17093
18105
|
registerInstance(this, hostRef);
|
|
17094
18106
|
}
|
|
17095
18107
|
render() {
|
|
17096
|
-
return (hAsync("section", { key: '
|
|
18108
|
+
return (hAsync("section", { key: '0316f767a182da2f2e96c137034d84794947102a', class: "w-full mt-28" }, hAsync("ul", { key: '16586b6a4d565ee58f4ea2465d54d527390d41ca', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, Object.entries(shadowTokens).map(([category, tokens]) => Object.entries(tokens).map(([key, value]) => (hAsync("li", { class: "grid-col-span-12 md:grid-col-span-6 flex flex-col items-center mt-16" }, hAsync("div", { class: "w-full p-16 block lg:flex items-center justify-center text-center border-2 border-soft", style: { boxShadow: value } }, hAsync("eds-code-block", { code: `${category}-${key}`, language: "Utility Class", class: "mr-auto sm:mb-4 min-w-[200px]" }), hAsync("eds-code-block", { code: `${value}`, language: "css", class: "ml-auto min-w-[200px]" })))))))));
|
|
17097
18109
|
}
|
|
17098
18110
|
static get cmpMeta() { return {
|
|
17099
18111
|
"$flags$": 0,
|
|
@@ -17113,7 +18125,7 @@ class TokenSpacing {
|
|
|
17113
18125
|
registerInstance(this, hostRef);
|
|
17114
18126
|
}
|
|
17115
18127
|
render() {
|
|
17116
|
-
return (hAsync("div", { key: '
|
|
18128
|
+
return (hAsync("div", { key: '857d52883315b5be7edb90c89602b29f258cabda', class: "w-full" }, hAsync("ul", { key: 'e1dbf5d8e227c9014183c2465bf281e554f7e35b', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, hAsync("li", { key: '85795c6c4ad2c4fc05cda1183a06dadc78521b45', class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { key: 'e0d6a8712ab4d47dca6ca275c09592b8af381b20', class: "container p-8 item-center border-2 border-soft" }, hAsync("div", { key: 'cbfc5e4dcb4040b375d195246626d833d5b33057', class: "spacing-sample m-16 bg-strong" }, hAsync("span", { key: '8aa060bb7da7ffdbcd343c849f5e62c6db648fd7', class: "f-body-01 text-inverse" }, "Margin: 1rem / m-16")))), hAsync("li", { key: 'f4e5e7a4eedac3a350f8c68adc5cdc8ba742166a', class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { key: 'de4ce6ca17ba9c0a20a794e1ec55f2fcc1f0c440', class: "container p-8 item-center border-2 border-soft" }, hAsync("div", { key: '52766704ac7cb4b1336d4283991c5204c7dece18', class: "spacing-sample ml-64 bg-strong" }, hAsync("span", { key: '60c2b72b390ac0b204cf10cf2c01907915e0b3a1', class: "f-body-01 text-inverse" }, "Margin Left: 4rem / ml-64")))), hAsync("li", { key: '1b7922c2a246a1a95e2e26e455b55ea7b5a2a3e9', class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { key: '7d43b9c4bc7ebd4883d9d7871b9fb02a2cece586', class: "container p-8 item-center border-2 border-soft" }, hAsync("div", { key: '7afeb3b0db7c70f11e09b5df2d396ebfc4454f00', class: "spacing-sample mt-32 bg-strong" }, hAsync("span", { key: '3bccca0e93ad8accb3da8ce64c86ee70d2a6f255', class: "f-body-01 text-inverse" }, "Margin Top: 2rem / mt-32")))), hAsync("li", { key: '7cbdb2d1b0cd2f91c1b7a05d6654e89a26f74340', class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { key: 'a47cb7cce3d8947d07ceff06fea30e19df12c6ec', class: "container p-8 item-center border-2 border-soft" }, hAsync("div", { key: '2ee8dc2c52d8a689c12f0333cf7a4d0b36e572f7', class: "spacing-sample p-32 bg-strong" }, hAsync("span", { key: '2c19bbed58312c84d15ef45fc4bd5a699718b259', class: "f-body-01 text-inverse" }, "Padding: 2rem / p-32")))), hAsync("li", { key: '89283aab1c8e84f4d692e290e227d5b91e88cd56', class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { key: 'e341336d74199f51d440ad01217816939b4877eb', class: "container p-8 item-center border-2 border-soft" }, hAsync("div", { key: '6d59ec419924101b4b2d4daf1fa385cd7d921c2e', class: "spacing-sample pt-32 bg-strong" }, hAsync("span", { key: '378293318a5aa7c0c9fecb575e533aa97c7b0ecf', class: "f-body-01 text-inverse" }, "Padding Top: 2rem / pt-32")))), hAsync("li", { key: 'a8e4328bb418b7b878aebfdfe4022e3054b5167e', class: "grid-col-span-12 md:grid-col-span-4 flex flex-col items-center mt-16" }, hAsync("div", { key: '421adc7f90db876dca2304f0c0f794c2b93b4536', class: "container p-8 item-center border-2 border-soft" }, hAsync("div", { key: 'ebb689a6011c3da5282eb3bb1cc1a0581af86e90', class: "spacing-sample pl-32 bg-strong" }, hAsync("span", { key: '8924318c5edcb5d78c37dc1a768e1b3e0fa775ed', class: "f-body-01 text-inverse" }, "Padding Left: 2rem / pl-32")))))));
|
|
17117
18129
|
}
|
|
17118
18130
|
static get cmpMeta() { return {
|
|
17119
18131
|
"$flags$": 0,
|
|
@@ -17361,7 +18373,7 @@ class TokenTypography {
|
|
|
17361
18373
|
registerInstance(this, hostRef);
|
|
17362
18374
|
}
|
|
17363
18375
|
render() {
|
|
17364
|
-
return (hAsync("section", { key: '
|
|
18376
|
+
return (hAsync("section", { key: 'ce7e291884a4b1bef85050a04c798a365287a131', class: "w-full" }, hAsync("ul", { key: '070567197ed557c07284ebe733c4f9f3246c60d7', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, Object.entries(typography.typesets)
|
|
17365
18377
|
.filter(([typeKey]) => typeKey !== 'displays') // Exclude "displays"
|
|
17366
18378
|
.flatMap(([typeKey, typeValues]) => Object.entries(typeValues).map(([size, style]) => (hAsync("li", { class: "grid-col-span-12 flex flex-col mt-16" }, hAsync("div", { class: "w-full p-16 border border-soft rounded", style: { display: 'grid', gridTemplateColumns: '1fr 1fr', gap: '1.5rem', alignItems: 'center' } }, hAsync("div", { style: {
|
|
17367
18379
|
fontFamily: style.fontFamily || typography.families['plex-sans'],
|
|
@@ -17444,6 +18456,7 @@ registerComponents([
|
|
|
17444
18456
|
EdsInputRange,
|
|
17445
18457
|
EdsInputSearch,
|
|
17446
18458
|
EdsInputSelect,
|
|
18459
|
+
EdsKgLearningResources,
|
|
17447
18460
|
EdsKgWebServicesSelect,
|
|
17448
18461
|
EdsLink,
|
|
17449
18462
|
EdsLogo,
|
|
@@ -17454,6 +18467,7 @@ registerComponents([
|
|
|
17454
18467
|
EdsPie,
|
|
17455
18468
|
EdsProgressBar,
|
|
17456
18469
|
EdsRating,
|
|
18470
|
+
EdsSearchSelect,
|
|
17457
18471
|
EdsSectionCore,
|
|
17458
18472
|
EdsSectionHeading,
|
|
17459
18473
|
EdsSidebar,
|
|
@@ -17470,6 +18484,7 @@ registerComponents([
|
|
|
17470
18484
|
EdsToast,
|
|
17471
18485
|
EdsToastManager,
|
|
17472
18486
|
EdsTooltip,
|
|
18487
|
+
EdsTrlBadge,
|
|
17473
18488
|
EdsUser,
|
|
17474
18489
|
GradientPrimaryPalette,
|
|
17475
18490
|
GradientSecondaryPalette,
|