@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.js
CHANGED
|
@@ -2335,7 +2335,7 @@ class ColorPrimaryPalette {
|
|
|
2335
2335
|
];
|
|
2336
2336
|
}
|
|
2337
2337
|
render() {
|
|
2338
|
-
return (hAsync("ul", { key: '
|
|
2338
|
+
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))))))));
|
|
2339
2339
|
}
|
|
2340
2340
|
static get cmpMeta() { return {
|
|
2341
2341
|
"$flags$": 0,
|
|
@@ -2407,7 +2407,7 @@ class ColorSecondaryPalette {
|
|
|
2407
2407
|
this.show = undefined;
|
|
2408
2408
|
}
|
|
2409
2409
|
render() {
|
|
2410
|
-
return (hAsync("ul", { key: '
|
|
2410
|
+
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))))))));
|
|
2411
2411
|
}
|
|
2412
2412
|
static get cmpMeta() { return {
|
|
2413
2413
|
"$flags$": 0,
|
|
@@ -2481,7 +2481,7 @@ class ColorSupportPalette {
|
|
|
2481
2481
|
return 'text-default';
|
|
2482
2482
|
}
|
|
2483
2483
|
render() {
|
|
2484
|
-
return (hAsync("ul", { key: '
|
|
2484
|
+
return (hAsync("ul", { key: '0f2cc155ce4e73dc47272a4640834cb0ee2e22a5', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16" }, this.colors.map((color) => {
|
|
2485
2485
|
// compute once
|
|
2486
2486
|
const textClass = this.getTextColor(color.background);
|
|
2487
2487
|
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)))));
|
|
@@ -2641,7 +2641,7 @@ class ComponentsSection {
|
|
|
2641
2641
|
}
|
|
2642
2642
|
}
|
|
2643
2643
|
render() {
|
|
2644
|
-
return hAsync("div", { key: '
|
|
2644
|
+
return hAsync("div", { key: '8d781f8e27f93eb003bd4390da57503dc17a945b', class: "container" }, this.renderContent());
|
|
2645
2645
|
}
|
|
2646
2646
|
static get cmpMeta() { return {
|
|
2647
2647
|
"$flags$": 0,
|
|
@@ -2719,7 +2719,7 @@ class CorrectUseOfColors {
|
|
|
2719
2719
|
registerInstance(this, hostRef);
|
|
2720
2720
|
}
|
|
2721
2721
|
render() {
|
|
2722
|
-
return (hAsync("div", { key: '
|
|
2722
|
+
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 } })))))))));
|
|
2723
2723
|
}
|
|
2724
2724
|
static get cmpMeta() { return {
|
|
2725
2725
|
"$flags$": 0,
|
|
@@ -2758,7 +2758,7 @@ class DocsContent {
|
|
|
2758
2758
|
}
|
|
2759
2759
|
}
|
|
2760
2760
|
render() {
|
|
2761
|
-
return hAsync("div", { key: '
|
|
2761
|
+
return hAsync("div", { key: '4104127b2816de8034a5bde49162486930647142', class: "container" }, this.renderContent());
|
|
2762
2762
|
}
|
|
2763
2763
|
static get cmpMeta() { return {
|
|
2764
2764
|
"$flags$": 0,
|
|
@@ -2791,7 +2791,7 @@ class DocsPalettes {
|
|
|
2791
2791
|
}
|
|
2792
2792
|
}
|
|
2793
2793
|
render() {
|
|
2794
|
-
return hAsync("div", { key: '
|
|
2794
|
+
return hAsync("div", { key: 'b6a79a91f8609cc1dd6fdd09c15b33e90dea202b', class: "container" }, this.renderContent());
|
|
2795
2795
|
}
|
|
2796
2796
|
static get cmpMeta() { return {
|
|
2797
2797
|
"$flags$": 0,
|
|
@@ -2860,7 +2860,7 @@ function matomoOptOut() {
|
|
|
2860
2860
|
}
|
|
2861
2861
|
}
|
|
2862
2862
|
|
|
2863
|
-
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-
|
|
2863
|
+
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}";
|
|
2864
2864
|
var EdsAccordionStyle0 = edsAccordionCss;
|
|
2865
2865
|
|
|
2866
2866
|
/**
|
|
@@ -2918,7 +2918,7 @@ class EdsAccordion {
|
|
|
2918
2918
|
'accordion-card',
|
|
2919
2919
|
`accordion-card-${this.variant}`
|
|
2920
2920
|
].join(' ');
|
|
2921
|
-
return (hAsync("div", { key: '
|
|
2921
|
+
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' }))))));
|
|
2922
2922
|
}
|
|
2923
2923
|
get el() { return getElement(this); }
|
|
2924
2924
|
static get style() { return EdsAccordionStyle0; }
|
|
@@ -3052,7 +3052,7 @@ class EdsAppRoot {
|
|
|
3052
3052
|
this.combinedInitPromise = Promise.all([initKeycloakPromise, authStatusPromise]);
|
|
3053
3053
|
}
|
|
3054
3054
|
render() {
|
|
3055
|
-
return (hAsync("div", { key: '
|
|
3055
|
+
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."))));
|
|
3056
3056
|
}
|
|
3057
3057
|
static get cmpMeta() { return {
|
|
3058
3058
|
"$flags$": 9,
|
|
@@ -3135,7 +3135,7 @@ class EdsAvatar {
|
|
|
3135
3135
|
* @returns {JSX.Element} The rendered avatar component.
|
|
3136
3136
|
*/
|
|
3137
3137
|
render() {
|
|
3138
|
-
return (hAsync("div", { key: '
|
|
3138
|
+
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))));
|
|
3139
3139
|
}
|
|
3140
3140
|
static get style() { return EdsAvatarStyle0; }
|
|
3141
3141
|
static get cmpMeta() { return {
|
|
@@ -3166,7 +3166,7 @@ class EdsBlockBreak {
|
|
|
3166
3166
|
this.inverse = false;
|
|
3167
3167
|
}
|
|
3168
3168
|
render() {
|
|
3169
|
-
return hAsync("hr", { key: '
|
|
3169
|
+
return hAsync("hr", { key: '2531c44fa20745f7860e4647f77ffa038a56d832', class: `${this.inverse ? 'border-default' : 'border-softer'} my-16 inline-block w-full border-t-2` });
|
|
3170
3170
|
}
|
|
3171
3171
|
static get style() { return EdsBlockBreakStyle0; }
|
|
3172
3172
|
static get cmpMeta() { return {
|
|
@@ -3326,7 +3326,7 @@ class EdsBreadcrumb {
|
|
|
3326
3326
|
*/
|
|
3327
3327
|
render() {
|
|
3328
3328
|
const itemsToRender = this.getTruncatedItems();
|
|
3329
|
-
return (hAsync("nav", { key: '
|
|
3329
|
+
return (hAsync("nav", { key: '95c13ac07de20bc04fb57ee990e5d21f928f3a86', "aria-label": "Breadcrumb" }, hAsync("ol", { key: '2a03ff53ac27eaa5e37ddfef32e9a4fe322755dd', class: "flex items-center space-x-2" }, itemsToRender.map((item, index) => {
|
|
3330
3330
|
const isLast = index === itemsToRender.length - 1;
|
|
3331
3331
|
return (hAsync("li", { class: "flex items-center" }, !item.isHidden ? ((() => {
|
|
3332
3332
|
const { fullLabel } = this.getLabels(item, isLast);
|
|
@@ -3407,7 +3407,7 @@ const cva = (base, config)=>{
|
|
|
3407
3407
|
};
|
|
3408
3408
|
};
|
|
3409
3409
|
|
|
3410
|
-
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}";
|
|
3410
|
+
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}";
|
|
3411
3411
|
var EdsButtonStyle0 = edsButtonCss;
|
|
3412
3412
|
|
|
3413
3413
|
/**
|
|
@@ -3433,7 +3433,10 @@ class EdsButton {
|
|
|
3433
3433
|
constructor(hostRef) {
|
|
3434
3434
|
registerInstance(this, hostRef);
|
|
3435
3435
|
this.button = cva([
|
|
3436
|
-
'relative items-center
|
|
3436
|
+
'relative items-center cursor-pointer',
|
|
3437
|
+
// Brand-green focus-visible outline (rules live in eds-button.css);
|
|
3438
|
+
// without this class keyboard focus falls back to the browser ring.
|
|
3439
|
+
'effect-focus',
|
|
3437
3440
|
'aria-disabled:text-lightest aria-disabled:bg-dark aria-disabled:cursor-not-allowed',
|
|
3438
3441
|
'disabled:text-lightest disabled:bg-dark disabled:cursor-not-allowed'
|
|
3439
3442
|
], {
|
|
@@ -3445,6 +3448,10 @@ class EdsButton {
|
|
|
3445
3448
|
ghost: '',
|
|
3446
3449
|
ghostInverse: 'text-inverse',
|
|
3447
3450
|
brand: 'bg-accent text-default hover:bg-strongest hover:text-inverse aria-disabled:shadow-none',
|
|
3451
|
+
// Light-green tint with brand-black text — an on-brand "unselected"
|
|
3452
|
+
// state (e.g. eds-rating / eds-nps) that brightens to solid brand on
|
|
3453
|
+
// hover/selection. Lives start-to-finish in the brand palette.
|
|
3454
|
+
brandLight: 'bg-brand-light text-default hover:bg-accent hover:text-default aria-disabled:shadow-none',
|
|
3448
3455
|
brandInverse: 'bg-accent text-default hover:bg-inverse hover:text-default aria-disabled:shadow-none',
|
|
3449
3456
|
neutral: 'bg-darker after:border-softest bg-inverse hover:bg-dark hover:text-light text-inverse aria-disabled:shadow-none',
|
|
3450
3457
|
cta: [
|
|
@@ -3463,8 +3470,8 @@ class EdsButton {
|
|
|
3463
3470
|
true: ''
|
|
3464
3471
|
},
|
|
3465
3472
|
size: {
|
|
3466
|
-
small: 'h-36 f-ui-02',
|
|
3467
|
-
large: 'h-44 f-ui-01'
|
|
3473
|
+
small: 'min-h-36 f-ui-02 py-8',
|
|
3474
|
+
large: 'min-h-44 f-ui-01 py-12'
|
|
3468
3475
|
},
|
|
3469
3476
|
hasIcon: {
|
|
3470
3477
|
true: '',
|
|
@@ -3637,7 +3644,7 @@ class EdsButton {
|
|
|
3637
3644
|
const loaderBottomColor = this.intent === 'primary' || this.intent === 'secondaryInverse'
|
|
3638
3645
|
? '#FFFFFF' // White for dark backgrounds
|
|
3639
3646
|
: '#07140D'; // Brand-black for light backgrounds (secondary, brand, etc.)
|
|
3640
|
-
return (hAsync(Host, { key: '
|
|
3647
|
+
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: {
|
|
3641
3648
|
border: `3px solid ${loaderBorderColor}`,
|
|
3642
3649
|
borderBottomColor: loaderBottomColor
|
|
3643
3650
|
} }))), this.icon ? (hAsync("eds-icon-wrapper", { name: this.icon, size: 20, "aria-hidden": "true" })) : null)));
|
|
@@ -3732,7 +3739,7 @@ class EdsCardApp {
|
|
|
3732
3739
|
}; }
|
|
3733
3740
|
}
|
|
3734
3741
|
|
|
3735
|
-
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:
|
|
3742
|
+
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}}";
|
|
3736
3743
|
var EdsCardCtaStyle0 = edsCardCtaCss;
|
|
3737
3744
|
|
|
3738
3745
|
/**
|
|
@@ -3786,7 +3793,7 @@ class EdsCardCta {
|
|
|
3786
3793
|
const primaryButtonIntent = this.variant === 'default' ? 'brandInverse' : 'brand';
|
|
3787
3794
|
const secondaryButtonIntent = this.variant === 'default' ? 'secondaryInverse' : 'secondary';
|
|
3788
3795
|
const linkIntent = this.variant === 'default' ? 'cta' : 'underline';
|
|
3789
|
-
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: '
|
|
3796
|
+
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 }))))))));
|
|
3790
3797
|
}
|
|
3791
3798
|
get el() { return getElement(this); }
|
|
3792
3799
|
static get style() { return EdsCardCtaStyle0; }
|
|
@@ -3835,7 +3842,7 @@ class EdsCardDesc {
|
|
|
3835
3842
|
return this.truncate && this.truncateLines ? `line-clamp-${this.truncateLines}` : '';
|
|
3836
3843
|
}
|
|
3837
3844
|
render() {
|
|
3838
|
-
return (hAsync("p", { key: '
|
|
3845
|
+
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)));
|
|
3839
3846
|
}
|
|
3840
3847
|
static get style() { return EdsCardDescStyle0; }
|
|
3841
3848
|
static get cmpMeta() { return {
|
|
@@ -3882,7 +3889,7 @@ class EdsCardFeature {
|
|
|
3882
3889
|
'feature-card',
|
|
3883
3890
|
`feature-card-${this.variant}`
|
|
3884
3891
|
].join(' ');
|
|
3885
|
-
return (hAsync("div", { key: '
|
|
3892
|
+
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" }))));
|
|
3886
3893
|
}
|
|
3887
3894
|
get el() { return getElement(this); }
|
|
3888
3895
|
static get style() { return EdsCardFeatureStyle0; }
|
|
@@ -3993,7 +4000,7 @@ class EdsCardGeneric {
|
|
|
3993
4000
|
this.isHovered = false;
|
|
3994
4001
|
}
|
|
3995
4002
|
render() {
|
|
3996
|
-
return (hAsync("article", { key: '
|
|
4003
|
+
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 }))))));
|
|
3997
4004
|
}
|
|
3998
4005
|
get el() { return getElement(this); }
|
|
3999
4006
|
static get style() { return EdsCardGenericStyle0; }
|
|
@@ -4068,7 +4075,7 @@ class EdsCardHero {
|
|
|
4068
4075
|
`hero-card-${this.variant}`,
|
|
4069
4076
|
this.url ? 'hero-card-clickable' : ''
|
|
4070
4077
|
].filter(Boolean).join(' ');
|
|
4071
|
-
return (hAsync("div", { key: '
|
|
4078
|
+
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)))))));
|
|
4072
4079
|
}
|
|
4073
4080
|
get el() { return getElement(this); }
|
|
4074
4081
|
static get style() { return EdsCardHeroStyle0; }
|
|
@@ -4133,7 +4140,7 @@ class EdsCardStat {
|
|
|
4133
4140
|
`stat-card-${this.variant}`,
|
|
4134
4141
|
this.url ? 'stat-card-clickable' : ''
|
|
4135
4142
|
].filter(Boolean).join(' ');
|
|
4136
|
-
const content = (hAsync("div", { key: '
|
|
4143
|
+
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))));
|
|
4137
4144
|
return content;
|
|
4138
4145
|
}
|
|
4139
4146
|
get el() { return getElement(this); }
|
|
@@ -6695,7 +6702,7 @@ class EdsCodeBlock {
|
|
|
6695
6702
|
return this.code; // Fallback if language is not provided or unsupported
|
|
6696
6703
|
}
|
|
6697
6704
|
render() {
|
|
6698
|
-
return (hAsync("div", { key: '
|
|
6705
|
+
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() })))));
|
|
6699
6706
|
}
|
|
6700
6707
|
get el() { return getElement(this); }
|
|
6701
6708
|
static get style() { return EdsCodeBlockStyle0; }
|
|
@@ -6743,7 +6750,7 @@ class EdsCookiesPreference {
|
|
|
6743
6750
|
}
|
|
6744
6751
|
}
|
|
6745
6752
|
render() {
|
|
6746
|
-
return (hAsync("div", { key: '
|
|
6753
|
+
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 })));
|
|
6747
6754
|
}
|
|
6748
6755
|
static get style() { return EdsCookiesPreferenceStyle0; }
|
|
6749
6756
|
static get cmpMeta() { return {
|
|
@@ -6801,6 +6808,13 @@ class EdsDropdown {
|
|
|
6801
6808
|
if (this.isOpen) {
|
|
6802
6809
|
// refresh focusables each open in case slot changed
|
|
6803
6810
|
this.focusableItems = Array.from(((_a = this.panelEl) === null || _a === void 0 ? void 0 : _a.querySelectorAll('a, button, [role="menuitem"]')) || []);
|
|
6811
|
+
// The panel declares role="menu"; slotted links/buttons need
|
|
6812
|
+
// role="menuitem" or screen readers announce an empty menu.
|
|
6813
|
+
this.focusableItems.forEach((item) => {
|
|
6814
|
+
if (!item.hasAttribute('role')) {
|
|
6815
|
+
item.setAttribute('role', 'menuitem');
|
|
6816
|
+
}
|
|
6817
|
+
});
|
|
6804
6818
|
this.focusIndex = this.focusableItems.length ? 0 : -1;
|
|
6805
6819
|
this.focusItem();
|
|
6806
6820
|
}
|
|
@@ -6839,7 +6853,6 @@ class EdsDropdown {
|
|
|
6839
6853
|
const path = (e.composedPath && e.composedPath()) || [];
|
|
6840
6854
|
if (!path.includes(this.host)) {
|
|
6841
6855
|
this.closeDropdown();
|
|
6842
|
-
this.dropdown.emit({ expanded: false });
|
|
6843
6856
|
}
|
|
6844
6857
|
}
|
|
6845
6858
|
/**
|
|
@@ -6847,12 +6860,22 @@ class EdsDropdown {
|
|
|
6847
6860
|
* @param {KeyboardEvent} event - The keyboard event.
|
|
6848
6861
|
*/
|
|
6849
6862
|
handleKeyDown(event) {
|
|
6863
|
+
var _a;
|
|
6850
6864
|
if (this.isOpen) {
|
|
6851
6865
|
const key = event.key;
|
|
6852
6866
|
switch (key) {
|
|
6853
6867
|
case 'Tab':
|
|
6868
|
+
// ARIA menu pattern: Tab does not walk the items — it closes
|
|
6869
|
+
// the menu and lets focus continue to the next element on the
|
|
6870
|
+
// page (no preventDefault on purpose).
|
|
6871
|
+
this.closeDropdown();
|
|
6872
|
+
break;
|
|
6873
|
+
case 'Escape':
|
|
6874
|
+
// Close and hand focus back to the trigger so keyboard users
|
|
6875
|
+
// can back out without committing to a Tab.
|
|
6876
|
+
event.preventDefault();
|
|
6854
6877
|
this.closeDropdown();
|
|
6855
|
-
this.
|
|
6878
|
+
(_a = this.buttonEl) === null || _a === void 0 ? void 0 : _a.focus();
|
|
6856
6879
|
break;
|
|
6857
6880
|
case 'ArrowUp':
|
|
6858
6881
|
event.preventDefault();
|
|
@@ -6864,6 +6887,16 @@ class EdsDropdown {
|
|
|
6864
6887
|
this.focusIndex = (this.focusIndex + 1) % this.focusableItems.length;
|
|
6865
6888
|
this.focusItem();
|
|
6866
6889
|
break;
|
|
6890
|
+
case 'Home':
|
|
6891
|
+
event.preventDefault();
|
|
6892
|
+
this.focusIndex = this.focusableItems.length ? 0 : -1;
|
|
6893
|
+
this.focusItem();
|
|
6894
|
+
break;
|
|
6895
|
+
case 'End':
|
|
6896
|
+
event.preventDefault();
|
|
6897
|
+
this.focusIndex = this.focusableItems.length - 1;
|
|
6898
|
+
this.focusItem();
|
|
6899
|
+
break;
|
|
6867
6900
|
}
|
|
6868
6901
|
}
|
|
6869
6902
|
}
|
|
@@ -6931,13 +6964,13 @@ class EdsDropdown {
|
|
|
6931
6964
|
* @returns {JSX.Element} The rendered dropdown component.
|
|
6932
6965
|
*/
|
|
6933
6966
|
render() {
|
|
6934
|
-
return (hAsync("div", { key: '
|
|
6967
|
+
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: {
|
|
6935
6968
|
'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,
|
|
6936
6969
|
'left-4': this.dropdownPos === 'left' && this.dropdownOffset,
|
|
6937
6970
|
'left-0': this.dropdownPos === 'left' && !this.dropdownOffset,
|
|
6938
6971
|
'right-4': this.dropdownPos === 'right' && this.dropdownOffset,
|
|
6939
6972
|
'right-0': this.dropdownPos === 'right' && !this.dropdownOffset
|
|
6940
|
-
}, style: { display: this.isOpen ? 'block' : 'none' }, "aria-label": "Dropdown", "aria-hidden": !this.isOpen }, hAsync("slot", { key: '
|
|
6973
|
+
}, style: { display: this.isOpen ? 'block' : 'none' }, "aria-label": "Dropdown", "aria-hidden": !this.isOpen }, hAsync("slot", { key: 'd6b153bb5968fa958be4d96d60cce774a9a0713c' }))));
|
|
6941
6974
|
}
|
|
6942
6975
|
get host() { return getElement(this); }
|
|
6943
6976
|
static get style() { return EdsDropdownStyle0; }
|
|
@@ -7021,7 +7054,7 @@ class EdsFeedback {
|
|
|
7021
7054
|
const HeadingTag = this.headingLevel;
|
|
7022
7055
|
const levelNum = this.headingLevel.replace('h', '');
|
|
7023
7056
|
const headingClass = `f-heading-${levelNum.padStart(2, '0')} my-4`;
|
|
7024
|
-
return (hAsync("div", { key: '
|
|
7057
|
+
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]))));
|
|
7025
7058
|
}
|
|
7026
7059
|
get el() { return getElement(this); }
|
|
7027
7060
|
static get style() { return EdsFeedbackStyle0; }
|
|
@@ -7043,53 +7076,134 @@ class EdsFeedback {
|
|
|
7043
7076
|
}; }
|
|
7044
7077
|
}
|
|
7045
7078
|
|
|
7046
|
-
const edsFooterCss = "p{margin:0}
|
|
7079
|
+
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}}";
|
|
7047
7080
|
var EdsFooterStyle0 = edsFooterCss;
|
|
7048
7081
|
|
|
7049
7082
|
/**
|
|
7050
|
-
*
|
|
7051
|
-
*
|
|
7052
|
-
*
|
|
7083
|
+
* EBRAINS-wide default link columns. Used when a consumer doesn't pass
|
|
7084
|
+
* the `columns` prop. URLs are absolute so the same footer renders
|
|
7085
|
+
* correctly from any app's domain (handbook.ebrains.eu, forms.ebrains.eu,
|
|
7086
|
+
* design.ebrains.eu, …) — the previous eds-docs design used relative
|
|
7087
|
+
* paths which only worked from design.ebrains.eu itself.
|
|
7053
7088
|
*
|
|
7054
|
-
*
|
|
7055
|
-
*
|
|
7056
|
-
|
|
7057
|
-
|
|
7058
|
-
|
|
7089
|
+
* If EBRAINS adds / renames a canonical resource, change it here once
|
|
7090
|
+
* and every consumer's footer updates on the next component release.
|
|
7091
|
+
*/
|
|
7092
|
+
const DEFAULT_COLUMNS = [
|
|
7093
|
+
{
|
|
7094
|
+
heading: 'Resources',
|
|
7095
|
+
links: [
|
|
7096
|
+
{ label: 'Documentation', href: 'https://design.ebrains.eu/get-started/', external: true },
|
|
7097
|
+
{ label: 'Components', href: 'https://design.ebrains.eu/ui-components/', external: true },
|
|
7098
|
+
{ label: 'Foundations', href: 'https://design.ebrains.eu/foundations/', external: true },
|
|
7099
|
+
{ label: 'Analytics', href: 'https://design.ebrains.eu/analytics/', external: true },
|
|
7100
|
+
],
|
|
7101
|
+
},
|
|
7102
|
+
{
|
|
7103
|
+
heading: 'Community',
|
|
7104
|
+
links: [
|
|
7105
|
+
{ label: 'GitLab', href: 'https://gitlab.ebrains.eu/ri/tech-hub/ebrains-ui-ecosystem/', external: true },
|
|
7106
|
+
{ label: 'Storybook', href: 'https://storybook.design.ebrains.eu', external: true },
|
|
7107
|
+
{ label: 'Report Issues', href: 'https://gitlab.ebrains.eu/ri/tech-hub/ebrains-ui-ecosystem/-/issues', external: true },
|
|
7108
|
+
{ label: 'Contribute', href: 'https://design.ebrains.eu/get-started/contributing/', external: true },
|
|
7109
|
+
],
|
|
7110
|
+
},
|
|
7111
|
+
{
|
|
7112
|
+
heading: 'Legal',
|
|
7113
|
+
links: [
|
|
7114
|
+
{ label: 'MIT License' },
|
|
7115
|
+
{ label: 'Cookie Preferences', action: 'cookies' },
|
|
7116
|
+
],
|
|
7117
|
+
},
|
|
7118
|
+
];
|
|
7119
|
+
/**
|
|
7120
|
+
* `EdsFooter` is the EBRAINS-wide footer component.
|
|
7121
|
+
*
|
|
7122
|
+
* Renders a 4-column layout matching the eds-docs landing footer:
|
|
7123
|
+
* [ Brand (EU flag + funding text + copyright) | Resources | Community | Legal ]
|
|
7059
7124
|
*
|
|
7060
|
-
*
|
|
7061
|
-
*
|
|
7125
|
+
* Defaults are designed so a consumer that writes `<eds-footer></eds-footer>`
|
|
7126
|
+
* with no props gets the full canonical EBRAINS footer rendered — same
|
|
7127
|
+
* brand block, same link columns, same dark theme as the eds-docs
|
|
7128
|
+
* landing page. The previous minimal-strip footer is replaced; consumers
|
|
7129
|
+
* that need different link content pass the `columns` prop (array or
|
|
7130
|
+
* JSON-stringified array for HTML attribute use).
|
|
7131
|
+
*
|
|
7132
|
+
* Configurability without breakage:
|
|
7133
|
+
* - All previous props remain (`social`, `variant`, `fundedBy`,
|
|
7134
|
+
* `rightsReserved`, `enableScrollTop`, `enableCookiesSettings`,
|
|
7135
|
+
* `cookiesPreferences`, `backToTopAriaLabel`). Their meanings are
|
|
7136
|
+
* preserved.
|
|
7137
|
+
* - New `columns` prop is optional — omit it for the defaults.
|
|
7138
|
+
* - The `enableCookiesSettings` toggle now decides whether any column
|
|
7139
|
+
* link with `action: 'cookies'` is rendered (default false; pass
|
|
7140
|
+
* true to surface the Cookie Preferences entry in the Legal column).
|
|
7062
7141
|
*/
|
|
7063
7142
|
class EdsFooter {
|
|
7064
7143
|
constructor(hostRef) {
|
|
7065
7144
|
registerInstance(this, hostRef);
|
|
7066
7145
|
this.cookies = createEvent(this, "cookies", 7);
|
|
7067
|
-
/**
|
|
7068
|
-
* Scrolls the page smoothly back to the top.
|
|
7069
|
-
* Called when the "Back to top" button is clicked.
|
|
7070
|
-
* @private
|
|
7071
|
-
*/
|
|
7072
7146
|
this.backToTop = () => {
|
|
7073
7147
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
7074
7148
|
};
|
|
7149
|
+
this.emitCookies = () => {
|
|
7150
|
+
this.cookies.emit('toggle');
|
|
7151
|
+
};
|
|
7075
7152
|
this.social = false;
|
|
7076
|
-
this.variant = '
|
|
7153
|
+
this.variant = 'inverse';
|
|
7077
7154
|
this.enableScrollTop = false;
|
|
7078
7155
|
this.fundedBy = 'EBRAINS is funded by the Horizon Europe Framework Programme.';
|
|
7079
7156
|
this.rightsReserved = `${new Date().getFullYear()} EBRAINS. All rights reserved.`;
|
|
7080
|
-
this.cookiesPreferences = '
|
|
7157
|
+
this.cookiesPreferences = 'Cookie Preferences';
|
|
7081
7158
|
this.enableCookiesSettings = false;
|
|
7082
7159
|
this.backToTopAriaLabel = 'Back to Top';
|
|
7083
|
-
this.
|
|
7160
|
+
this.columns = undefined;
|
|
7161
|
+
this.resolvedColumns = DEFAULT_COLUMNS;
|
|
7162
|
+
}
|
|
7163
|
+
componentWillLoad() {
|
|
7164
|
+
this.resolvedColumns = this.parseColumns(this.columns);
|
|
7165
|
+
}
|
|
7166
|
+
onColumnsChange(value) {
|
|
7167
|
+
this.resolvedColumns = this.parseColumns(value);
|
|
7168
|
+
}
|
|
7169
|
+
/**
|
|
7170
|
+
* Resolve the `columns` prop to a usable array.
|
|
7171
|
+
* - undefined / null → defaults
|
|
7172
|
+
* - JSON-parseable str → parsed array
|
|
7173
|
+
* - already an array → used as-is
|
|
7174
|
+
* - anything else (malformed JSON, wrong shape) → defaults + console warning
|
|
7175
|
+
*
|
|
7176
|
+
* Defensive parsing so a typo in a Hugo template's attribute doesn't
|
|
7177
|
+
* render an empty footer in production. Failure logs a warning but
|
|
7178
|
+
* keeps the footer working with sensible defaults.
|
|
7179
|
+
*/
|
|
7180
|
+
parseColumns(value) {
|
|
7181
|
+
if (value === undefined || value === null || value === '')
|
|
7182
|
+
return DEFAULT_COLUMNS;
|
|
7183
|
+
if (Array.isArray(value))
|
|
7184
|
+
return value;
|
|
7185
|
+
if (typeof value === 'string') {
|
|
7186
|
+
try {
|
|
7187
|
+
const parsed = JSON.parse(value);
|
|
7188
|
+
if (Array.isArray(parsed))
|
|
7189
|
+
return parsed;
|
|
7190
|
+
console.warn('eds-footer: `columns` JSON parsed but is not an array; using defaults');
|
|
7191
|
+
return DEFAULT_COLUMNS;
|
|
7192
|
+
}
|
|
7193
|
+
catch (e) {
|
|
7194
|
+
console.warn('eds-footer: failed to parse `columns` JSON, using defaults', e);
|
|
7195
|
+
return DEFAULT_COLUMNS;
|
|
7196
|
+
}
|
|
7197
|
+
}
|
|
7198
|
+
return DEFAULT_COLUMNS;
|
|
7084
7199
|
}
|
|
7085
7200
|
componentDidLoad() {
|
|
7086
7201
|
var _a;
|
|
7087
7202
|
this.backBtn = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#toTop');
|
|
7088
7203
|
}
|
|
7089
7204
|
handleScroll() {
|
|
7090
|
-
if (!this.backBtn)
|
|
7205
|
+
if (!this.backBtn)
|
|
7091
7206
|
return;
|
|
7092
|
-
}
|
|
7093
7207
|
const shouldShow = window.scrollY > 100 && document.body.scrollHeight > window.innerHeight;
|
|
7094
7208
|
this.backBtn.style.opacity = shouldShow ? '1' : '0';
|
|
7095
7209
|
this.backBtn.style.pointerEvents = shouldShow ? 'auto' : 'none';
|
|
@@ -7099,44 +7213,59 @@ class EdsFooter {
|
|
|
7099
7213
|
btn.setAttribute('tabindex', shouldShow ? '0' : '-1');
|
|
7100
7214
|
}
|
|
7101
7215
|
}
|
|
7102
|
-
toggleCookiesConsent() {
|
|
7103
|
-
this.cookies.emit('toggle');
|
|
7104
|
-
}
|
|
7105
7216
|
/**
|
|
7106
|
-
*
|
|
7107
|
-
*
|
|
7108
|
-
*
|
|
7217
|
+
* Render one link inside a column.
|
|
7218
|
+
* - `action: 'cookies'` → button-like anchor that fires the cookies event
|
|
7219
|
+
* - `href` present → real anchor (target=_blank when `external`)
|
|
7220
|
+
* - neither → plain text span (e.g. "MIT License")
|
|
7109
7221
|
*/
|
|
7222
|
+
renderLink(link, index) {
|
|
7223
|
+
if (link.action === 'cookies') {
|
|
7224
|
+
if (!this.enableCookiesSettings)
|
|
7225
|
+
return null;
|
|
7226
|
+
return (hAsync("li", { key: `cookies-${index}` }, hAsync("a", { href: "javascript:void(0)", class: "footer-link", onClick: this.emitCookies, role: "button" }, this.cookiesPreferences || link.label)));
|
|
7227
|
+
}
|
|
7228
|
+
if (link.href) {
|
|
7229
|
+
const external = link.external === true;
|
|
7230
|
+
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)));
|
|
7231
|
+
}
|
|
7232
|
+
return (hAsync("li", { key: `text-${index}` }, hAsync("span", { class: "footer-text-item" }, link.label)));
|
|
7233
|
+
}
|
|
7110
7234
|
render() {
|
|
7111
7235
|
const year = new Date().getFullYear();
|
|
7112
7236
|
const rights = this.rightsReserved || `${year} EBRAINS. All rights reserved.`;
|
|
7113
7237
|
const isInverse = this.variant === 'inverse';
|
|
7114
|
-
|
|
7115
|
-
|
|
7116
|
-
|
|
7117
|
-
|
|
7118
|
-
|
|
7119
|
-
|
|
7238
|
+
// Class hooks driven by variant — the CSS file styles each
|
|
7239
|
+
// selector independently rather than relying on prop-based
|
|
7240
|
+
// inline styles, so theme tokens stay overridable from outside
|
|
7241
|
+
// via the host's CSS custom properties.
|
|
7242
|
+
const rootClasses = ['eds-footer-root', isInverse ? 'theme-inverse' : 'theme-default']
|
|
7243
|
+
.join(' ');
|
|
7244
|
+
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));
|
|
7120
7245
|
}
|
|
7121
7246
|
get el() { return getElement(this); }
|
|
7247
|
+
static get watchers() { return {
|
|
7248
|
+
"columns": ["onColumnsChange"]
|
|
7249
|
+
}; }
|
|
7122
7250
|
static get style() { return EdsFooterStyle0; }
|
|
7123
7251
|
static get cmpMeta() { return {
|
|
7124
7252
|
"$flags$": 9,
|
|
7125
7253
|
"$tagName$": "eds-footer",
|
|
7126
7254
|
"$members$": {
|
|
7127
7255
|
"social": [4],
|
|
7128
|
-
"variant": [
|
|
7256
|
+
"variant": [513],
|
|
7129
7257
|
"enableScrollTop": [4, "enable-scroll-top"],
|
|
7130
7258
|
"fundedBy": [1, "funded-by"],
|
|
7131
7259
|
"rightsReserved": [1, "rights-reserved"],
|
|
7132
7260
|
"cookiesPreferences": [1, "cookies-preferences"],
|
|
7133
7261
|
"enableCookiesSettings": [4, "enable-cookies-settings"],
|
|
7134
7262
|
"backToTopAriaLabel": [1, "back-to-top-aria-label"],
|
|
7135
|
-
"
|
|
7263
|
+
"columns": [1],
|
|
7264
|
+
"resolvedColumns": [32]
|
|
7136
7265
|
},
|
|
7137
7266
|
"$listeners$": [[9, "scroll", "handleScroll"]],
|
|
7138
7267
|
"$lazyBundleId$": "-",
|
|
7139
|
-
"$attrsToReflect$": []
|
|
7268
|
+
"$attrsToReflect$": [["variant", "variant"]]
|
|
7140
7269
|
}; }
|
|
7141
7270
|
}
|
|
7142
7271
|
|
|
@@ -7269,7 +7398,8 @@ isFieldVisible) {
|
|
|
7269
7398
|
delete errors[field.name];
|
|
7270
7399
|
return;
|
|
7271
7400
|
}
|
|
7272
|
-
|
|
7401
|
+
// 'content' is a presentational text block — no input, never validated.
|
|
7402
|
+
if (field.type !== 'hidden' && field.type !== 'content') {
|
|
7273
7403
|
if ((field.type === 'checkbox' || field.type === 'radio') && !field.options) {
|
|
7274
7404
|
// Single checkbox or radio without multiple options
|
|
7275
7405
|
const fieldErrors = validateSingleBox(field.name, field.required, formEl);
|
|
@@ -7336,6 +7466,46 @@ isFieldVisible) {
|
|
|
7336
7466
|
return { errors, hasError };
|
|
7337
7467
|
}
|
|
7338
7468
|
|
|
7469
|
+
/**
|
|
7470
|
+
* safeInlineFormat — the single, audited text→HTML formatter used everywhere a
|
|
7471
|
+
* form renders author-supplied text via innerHTML (form/step description, Text
|
|
7472
|
+
* Blocks, and field messages).
|
|
7473
|
+
*
|
|
7474
|
+
* SECURITY: escape-first, then a tiny whitelisted inline subset. Because all of
|
|
7475
|
+
* &, <, >, " are turned into entities BEFORE any markup is generated, author
|
|
7476
|
+
* text can never inject a tag or attribute — the only HTML produced is the
|
|
7477
|
+
* <strong>, <a> and <br> emitted here. Links are restricted to http/https/mailto
|
|
7478
|
+
* (others fall back to plain text), URLs cannot contain whitespace or a quote,
|
|
7479
|
+
* and external links get rel="noopener noreferrer".
|
|
7480
|
+
*
|
|
7481
|
+
* DO NOT reorder: escaping MUST happen before tag generation, or the guarantee
|
|
7482
|
+
* breaks. Keep this in sync with the JS mirror in
|
|
7483
|
+
* apps/live/forms-app/src/utils/descriptionFormat.ts.
|
|
7484
|
+
*
|
|
7485
|
+
* **bold** → <strong>bold</strong>
|
|
7486
|
+
* [label](url) → <a href="url" …>label</a> (http/https/mailto only)
|
|
7487
|
+
* newline → <br>
|
|
7488
|
+
*/
|
|
7489
|
+
function safeInlineFormat(text) {
|
|
7490
|
+
if (!text) {
|
|
7491
|
+
return '';
|
|
7492
|
+
}
|
|
7493
|
+
let s = String(text)
|
|
7494
|
+
.replace(/&/g, '&')
|
|
7495
|
+
.replace(/</g, '<')
|
|
7496
|
+
.replace(/>/g, '>')
|
|
7497
|
+
.replace(/"/g, '"');
|
|
7498
|
+
// bold
|
|
7499
|
+
s = s.replace(/\*\*([^*]+)\*\*/g, '<strong>$1</strong>');
|
|
7500
|
+
// links — safe schemes only; otherwise drop to the plain label
|
|
7501
|
+
s = s.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g, (_m, label, url) => /^(https?:|mailto:)/i.test(url)
|
|
7502
|
+
? `<a href="${url}" target="_blank" rel="noopener noreferrer" class="eds-desc-link">${label}</a>`
|
|
7503
|
+
: label);
|
|
7504
|
+
// newlines → line breaks
|
|
7505
|
+
s = s.replace(/\n/g, '<br>');
|
|
7506
|
+
return s;
|
|
7507
|
+
}
|
|
7508
|
+
|
|
7339
7509
|
/**
|
|
7340
7510
|
* Validates a field based on its type and returns an array of error messages.
|
|
7341
7511
|
* @param field - The field configuration object.
|
|
@@ -7370,7 +7540,7 @@ function getFormInitData({ initData, parsedFields, currentValues
|
|
|
7370
7540
|
return { updatedValues };
|
|
7371
7541
|
}
|
|
7372
7542
|
|
|
7373
|
-
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}}";
|
|
7543
|
+
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}";
|
|
7374
7544
|
var EdsFormStyle0 = edsFormCss;
|
|
7375
7545
|
|
|
7376
7546
|
/**
|
|
@@ -7570,7 +7740,20 @@ class EdsForm {
|
|
|
7570
7740
|
if (this.setFormUrl && typeof window !== 'undefined') {
|
|
7571
7741
|
formData.set('form_url', window.location.href);
|
|
7572
7742
|
}
|
|
7743
|
+
// Group fields by name so we can drop values for fields hidden by a condition.
|
|
7744
|
+
// A name may be reused across mutually-exclusive conditional variants (e.g. a
|
|
7745
|
+
// `web_app_url` shown for service_type=web_app AND another for =platform), so a
|
|
7746
|
+
// value is dropped ONLY when EVERY field with that name is hidden — if any
|
|
7747
|
+
// variant is visible, its value is kept.
|
|
7748
|
+
const fieldsByName = {};
|
|
7749
|
+
this.parsedFields.forEach((f) => {
|
|
7750
|
+
(fieldsByName[f.name] = fieldsByName[f.name] || []).push(f);
|
|
7751
|
+
});
|
|
7573
7752
|
Object.keys(this.values).forEach((key) => {
|
|
7753
|
+
const fields = fieldsByName[key];
|
|
7754
|
+
if (fields && fields.length && !fields.some((f) => this.isFieldVisible(f))) {
|
|
7755
|
+
return; // all fields with this name are conditionally hidden — skip
|
|
7756
|
+
}
|
|
7574
7757
|
const value = this.values[key];
|
|
7575
7758
|
// Handle File arrays (from file inputs)
|
|
7576
7759
|
if (Array.isArray(value)) {
|
|
@@ -7865,29 +8048,53 @@ class EdsForm {
|
|
|
7865
8048
|
return map;
|
|
7866
8049
|
}
|
|
7867
8050
|
renderField(field) {
|
|
7868
|
-
var _a, _b, _c, _d;
|
|
8051
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
7869
8052
|
if (!this.isFieldVisible(field)) {
|
|
7870
8053
|
return null;
|
|
7871
8054
|
}
|
|
8055
|
+
// 0) Presentational "Text Block" — static formatted text, NOT an input.
|
|
8056
|
+
// It has no value, is never added to the submission (makeFormData only
|
|
8057
|
+
// iterates this.values) and is never validated (see formValidators). The
|
|
8058
|
+
// text runs through formatDescription, which escapes HTML first, so author
|
|
8059
|
+
// content can never inject markup — only the **bold**/[link]/newline subset.
|
|
8060
|
+
if (field.type === 'content') {
|
|
8061
|
+
const raw = ((_b = (_a = field.content) !== null && _a !== void 0 ? _a : field.label) !== null && _b !== void 0 ? _b : '');
|
|
8062
|
+
return (hAsync("div", { class: "eds-content-block f-body-02 text-default", key: field.name, innerHTML: this.formatDescription(raw) }));
|
|
8063
|
+
}
|
|
7872
8064
|
// 1) Handle rating
|
|
7873
8065
|
if (field.type === 'rating') {
|
|
7874
8066
|
// pull the current value (or zero)
|
|
7875
8067
|
const val = this.values[field.name] || 0;
|
|
7876
|
-
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": (
|
|
8068
|
+
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 }))));
|
|
7877
8069
|
}
|
|
7878
8070
|
else if (field.type === 'nps') {
|
|
7879
8071
|
// pull the current value (or null)
|
|
7880
8072
|
const val = this.values[field.name] !== undefined ? this.values[field.name] : null;
|
|
7881
|
-
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": (
|
|
8073
|
+
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] }))));
|
|
8074
|
+
}
|
|
8075
|
+
else if (field.type === 'search-select') {
|
|
8076
|
+
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) }));
|
|
7882
8077
|
}
|
|
7883
8078
|
else if (field.type === 'kg-web-service') {
|
|
7884
|
-
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": (
|
|
8079
|
+
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) }));
|
|
7885
8080
|
}
|
|
7886
|
-
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: (
|
|
8081
|
+
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) }));
|
|
7887
8082
|
}
|
|
7888
8083
|
async getData() {
|
|
7889
8084
|
return this.makeFormData();
|
|
7890
8085
|
}
|
|
8086
|
+
/**
|
|
8087
|
+
* Render the form/step description with a small, safe subset of inline
|
|
8088
|
+
* formatting so authors can add links and emphasis:
|
|
8089
|
+
* **bold** → <strong>
|
|
8090
|
+
* [label](url) → <a> (only http/https/mailto; others render as text)
|
|
8091
|
+
* blank line / \n → paragraph / line break
|
|
8092
|
+
* HTML is escaped FIRST, so author text can never inject markup — only the
|
|
8093
|
+
* whitelisted patterns above produce tags.
|
|
8094
|
+
*/
|
|
8095
|
+
formatDescription(text) {
|
|
8096
|
+
return safeInlineFormat(text);
|
|
8097
|
+
}
|
|
7891
8098
|
render() {
|
|
7892
8099
|
const hiddenFields = this.parsedFields.filter((field) => field.type === 'hidden');
|
|
7893
8100
|
//const otherFields = this.parsedFields.filter((field) => field.type !== 'hidden');
|
|
@@ -7903,9 +8110,9 @@ class EdsForm {
|
|
|
7903
8110
|
else if (this.formStyle === 'brand') {
|
|
7904
8111
|
styleClasses = 'bg-inverse form-brand relative rounded-xs p-32';
|
|
7905
8112
|
}
|
|
7906
|
-
return (hAsync("form", { key: '
|
|
8113
|
+
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
|
|
7907
8114
|
.filter((g) => Array.isArray(buckets[g.id]) && buckets[g.id].length > 0)
|
|
7908
|
-
.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: '
|
|
8115
|
+
.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) }))))));
|
|
7909
8116
|
}
|
|
7910
8117
|
get el() { return getElement(this); }
|
|
7911
8118
|
static get watchers() { return {
|
|
@@ -8035,7 +8242,7 @@ class EdsFrame {
|
|
|
8035
8242
|
}
|
|
8036
8243
|
}
|
|
8037
8244
|
render() {
|
|
8038
|
-
return (hAsync("div", { key: '
|
|
8245
|
+
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 })))));
|
|
8039
8246
|
}
|
|
8040
8247
|
get el() { return getElement(this); }
|
|
8041
8248
|
static get style() { return EdsFrameStyle0; }
|
|
@@ -8219,7 +8426,7 @@ class EdsGauge {
|
|
|
8219
8426
|
const textStyle = {
|
|
8220
8427
|
fontSize: `${fontSize}px`
|
|
8221
8428
|
};
|
|
8222
|
-
return (hAsync("div", { key: '
|
|
8429
|
+
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))));
|
|
8223
8430
|
}
|
|
8224
8431
|
static get style() { return EdsGaugeStyle0; }
|
|
8225
8432
|
static get cmpMeta() { return {
|
|
@@ -8239,7 +8446,7 @@ class EdsGauge {
|
|
|
8239
8446
|
}; }
|
|
8240
8447
|
}
|
|
8241
8448
|
|
|
8242
|
-
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)}";
|
|
8449
|
+
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)}";
|
|
8243
8450
|
var EdsGitlabContributorsStyle0 = edsGitlabContributorsCss;
|
|
8244
8451
|
|
|
8245
8452
|
/**
|
|
@@ -8481,7 +8688,14 @@ class EdsGitlabContributors {
|
|
|
8481
8688
|
}
|
|
8482
8689
|
render() {
|
|
8483
8690
|
if (this.loading) {
|
|
8484
|
-
|
|
8691
|
+
// Spinner placeholder mirrors eds-kg-learning-resources exactly —
|
|
8692
|
+
// same `.loading` wrapper (position: relative + min-height so the
|
|
8693
|
+
// absolutely-positioned spinner anchors inside the box instead of
|
|
8694
|
+
// escaping to the page), same eds-spinner props (sm/primary/
|
|
8695
|
+
// transparent + message-as-prop), and the same role+aria-live for
|
|
8696
|
+
// screen-reader announcement. Keep these two components in sync if
|
|
8697
|
+
// the loading affordance ever changes.
|
|
8698
|
+
return (hAsync("div", { class: "loading", role: "status", "aria-live": "polite" }, hAsync("eds-spinner", { size: "sm", variant: "primary", background: "transparent", message: "Loading contributors..." })));
|
|
8485
8699
|
}
|
|
8486
8700
|
if (this.error) {
|
|
8487
8701
|
return (hAsync("eds-alert", { message: "Error loading contributors", intent: "error" }));
|
|
@@ -8522,7 +8736,7 @@ class EdsGitlabContributors {
|
|
|
8522
8736
|
}; }
|
|
8523
8737
|
}
|
|
8524
8738
|
|
|
8525
|
-
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)}";
|
|
8739
|
+
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)}";
|
|
8526
8740
|
var EdsGlobalSearchStyle0 = edsGlobalSearchCss;
|
|
8527
8741
|
|
|
8528
8742
|
class EdsGlobalSearch {
|
|
@@ -8530,6 +8744,23 @@ class EdsGlobalSearch {
|
|
|
8530
8744
|
registerInstance(this, hostRef);
|
|
8531
8745
|
this.resultSelected = createEvent(this, "resultSelected", 7);
|
|
8532
8746
|
this.searchClosed = createEvent(this, "searchClosed", 7);
|
|
8747
|
+
/** Clear the current query and results; keep focus in the input so the
|
|
8748
|
+
* user can start typing again without an extra click. */
|
|
8749
|
+
this.handleClear = () => {
|
|
8750
|
+
if (this.debounceTimer) {
|
|
8751
|
+
clearTimeout(this.debounceTimer);
|
|
8752
|
+
}
|
|
8753
|
+
this.query = '';
|
|
8754
|
+
this.results = [];
|
|
8755
|
+
this.hasSearched = false;
|
|
8756
|
+
this.showDropdown = false;
|
|
8757
|
+
this.selectedIndex = -1;
|
|
8758
|
+
// Re-focus and reflect the empty value on the underlying DOM input.
|
|
8759
|
+
if (this.inputRef) {
|
|
8760
|
+
this.inputRef.value = '';
|
|
8761
|
+
this.inputRef.focus();
|
|
8762
|
+
}
|
|
8763
|
+
};
|
|
8533
8764
|
this.handleInput = (event) => {
|
|
8534
8765
|
var _a;
|
|
8535
8766
|
const target = event.target;
|
|
@@ -8562,6 +8793,7 @@ class EdsGlobalSearch {
|
|
|
8562
8793
|
this.currentOrigin = '';
|
|
8563
8794
|
this.currentSource = '';
|
|
8564
8795
|
this.authToken = '';
|
|
8796
|
+
this.variant = 'gray';
|
|
8565
8797
|
this.query = '';
|
|
8566
8798
|
this.results = [];
|
|
8567
8799
|
this.loading = false;
|
|
@@ -8571,15 +8803,26 @@ class EdsGlobalSearch {
|
|
|
8571
8803
|
this.selectedIndex = -1;
|
|
8572
8804
|
}
|
|
8573
8805
|
componentDidLoad() {
|
|
8574
|
-
//
|
|
8575
|
-
|
|
8576
|
-
|
|
8577
|
-
|
|
8806
|
+
// ⌘K / Ctrl+K focuses the search pill from anywhere on the page.
|
|
8807
|
+
// Bound here (not via @Listen) so it works across shadow boundaries.
|
|
8808
|
+
this.cmdKListener = (event) => {
|
|
8809
|
+
var _a;
|
|
8810
|
+
const isMac = navigator.platform.toUpperCase().includes('MAC');
|
|
8811
|
+
const modifier = isMac ? event.metaKey : event.ctrlKey;
|
|
8812
|
+
if (modifier && event.key.toLowerCase() === 'k') {
|
|
8813
|
+
event.preventDefault();
|
|
8814
|
+
(_a = this.inputRef) === null || _a === void 0 ? void 0 : _a.focus();
|
|
8815
|
+
}
|
|
8816
|
+
};
|
|
8817
|
+
document.addEventListener('keydown', this.cmdKListener);
|
|
8578
8818
|
}
|
|
8579
8819
|
disconnectedCallback() {
|
|
8580
8820
|
if (this.debounceTimer) {
|
|
8581
8821
|
clearTimeout(this.debounceTimer);
|
|
8582
8822
|
}
|
|
8823
|
+
if (this.cmdKListener) {
|
|
8824
|
+
document.removeEventListener('keydown', this.cmdKListener);
|
|
8825
|
+
}
|
|
8583
8826
|
}
|
|
8584
8827
|
handleDocumentClick(event) {
|
|
8585
8828
|
const path = event.composedPath();
|
|
@@ -8726,10 +8969,19 @@ class EdsGlobalSearch {
|
|
|
8726
8969
|
return this.hasSearched && !this.loading && !this.hasResults && this.query.trim();
|
|
8727
8970
|
}
|
|
8728
8971
|
render() {
|
|
8729
|
-
return (hAsync("div", { key: '
|
|
8972
|
+
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: {
|
|
8730
8973
|
'result-item': true,
|
|
8731
8974
|
'result-item--selected': index === this.selectedIndex
|
|
8732
|
-
}, 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" },
|
|
8975
|
+
}, 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 ? ([
|
|
8976
|
+
hAsync("span", { class: "result-badge result-badge--parent" }, result.parent_software),
|
|
8977
|
+
result.section && hAsync("span", { class: "result-badge result-badge--lr" }, result.section)
|
|
8978
|
+
]) : result.source === 'kg-services' ? ([
|
|
8979
|
+
hAsync("span", { class: "result-badge" }, "EBRAINS KG"),
|
|
8980
|
+
result.section && hAsync("span", { class: "result-badge" }, result.section)
|
|
8981
|
+
]) : ([
|
|
8982
|
+
hAsync("span", { class: "result-badge" }, result.source),
|
|
8983
|
+
result.section && hAsync("span", { class: "result-badge" }, result.section)
|
|
8984
|
+
]), 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")))))));
|
|
8733
8985
|
}
|
|
8734
8986
|
get el() { return getElement(this); }
|
|
8735
8987
|
static get style() { return EdsGlobalSearchStyle0; }
|
|
@@ -8745,6 +8997,7 @@ class EdsGlobalSearch {
|
|
|
8745
8997
|
"currentOrigin": [1, "current-origin"],
|
|
8746
8998
|
"currentSource": [1, "current-source"],
|
|
8747
8999
|
"authToken": [1, "auth-token"],
|
|
9000
|
+
"variant": [513],
|
|
8748
9001
|
"query": [32],
|
|
8749
9002
|
"results": [32],
|
|
8750
9003
|
"loading": [32],
|
|
@@ -8755,7 +9008,7 @@ class EdsGlobalSearch {
|
|
|
8755
9008
|
},
|
|
8756
9009
|
"$listeners$": [[4, "click", "handleDocumentClick"], [0, "keydown", "handleKeydown"]],
|
|
8757
9010
|
"$lazyBundleId$": "-",
|
|
8758
|
-
"$attrsToReflect$": []
|
|
9011
|
+
"$attrsToReflect$": [["variant", "variant"]]
|
|
8759
9012
|
}; }
|
|
8760
9013
|
}
|
|
8761
9014
|
|
|
@@ -8818,7 +9071,7 @@ class EdsHeader {
|
|
|
8818
9071
|
const logoType = this.variant === 'strong' ? 'negative' : 'positive';
|
|
8819
9072
|
// Link intent based on header variant
|
|
8820
9073
|
const linkIntent = this.variant === 'strong' ? 'underlineInverse' : 'underline';
|
|
8821
|
-
return (hAsync("header", { key: '
|
|
9074
|
+
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() })))));
|
|
8822
9075
|
}
|
|
8823
9076
|
get hostEl() { return getElement(this); }
|
|
8824
9077
|
static get style() { return EdsHeaderStyle0; }
|
|
@@ -9148,7 +9401,7 @@ class EdsIconBluesky {
|
|
|
9148
9401
|
this.class = '';
|
|
9149
9402
|
}
|
|
9150
9403
|
render() {
|
|
9151
|
-
return hAsync("span", { key: '
|
|
9404
|
+
return hAsync("span", { key: 'f2c2ad35173c7bfeae50e5b4de8f59e362d9656f', class: this.class, innerHTML: bluesky });
|
|
9152
9405
|
}
|
|
9153
9406
|
static get cmpMeta() { return {
|
|
9154
9407
|
"$flags$": 0,
|
|
@@ -9171,7 +9424,7 @@ class EdsIconEu {
|
|
|
9171
9424
|
this.class = '';
|
|
9172
9425
|
}
|
|
9173
9426
|
render() {
|
|
9174
|
-
return hAsync("span", { key: '
|
|
9427
|
+
return hAsync("span", { key: '56f0efdfb37b2dd4474dc2e69ef649915a9f4bbc', class: this.class, innerHTML: euSvg });
|
|
9175
9428
|
}
|
|
9176
9429
|
static get cmpMeta() { return {
|
|
9177
9430
|
"$flags$": 0,
|
|
@@ -9194,7 +9447,7 @@ class EdsIconFacebook {
|
|
|
9194
9447
|
this.class = '';
|
|
9195
9448
|
}
|
|
9196
9449
|
render() {
|
|
9197
|
-
return hAsync("span", { key: '
|
|
9450
|
+
return hAsync("span", { key: '798a3ad6a040dfce879fe62c0a32c83cbd529ad0', class: this.class, innerHTML: facebook });
|
|
9198
9451
|
}
|
|
9199
9452
|
static get cmpMeta() { return {
|
|
9200
9453
|
"$flags$": 0,
|
|
@@ -9217,7 +9470,7 @@ class EdsIconGitlab {
|
|
|
9217
9470
|
this.class = '';
|
|
9218
9471
|
}
|
|
9219
9472
|
render() {
|
|
9220
|
-
return hAsync("span", { key: '
|
|
9473
|
+
return hAsync("span", { key: 'd1c7c0c1e3cae3b45377e305792192df46ef064a', class: this.class, innerHTML: gitlabBlack });
|
|
9221
9474
|
}
|
|
9222
9475
|
static get cmpMeta() { return {
|
|
9223
9476
|
"$flags$": 0,
|
|
@@ -9240,7 +9493,7 @@ class EdsIconLinkedin {
|
|
|
9240
9493
|
this.class = '';
|
|
9241
9494
|
}
|
|
9242
9495
|
render() {
|
|
9243
|
-
return hAsync("span", { key: '
|
|
9496
|
+
return hAsync("span", { key: 'd8c97d9140baa6609917021bbc67fc7cca47ee32', class: this.class, innerHTML: linkedin });
|
|
9244
9497
|
}
|
|
9245
9498
|
static get cmpMeta() { return {
|
|
9246
9499
|
"$flags$": 0,
|
|
@@ -9263,7 +9516,7 @@ class EdsIconMastodon {
|
|
|
9263
9516
|
this.class = '';
|
|
9264
9517
|
}
|
|
9265
9518
|
render() {
|
|
9266
|
-
return hAsync("span", { key: '
|
|
9519
|
+
return hAsync("span", { key: '8498500cd0da2784b889a7b2b2ca9ff4e8414ab6', class: this.class, innerHTML: mastodon });
|
|
9267
9520
|
}
|
|
9268
9521
|
static get cmpMeta() { return {
|
|
9269
9522
|
"$flags$": 0,
|
|
@@ -9286,7 +9539,7 @@ class EdsIconTwitter {
|
|
|
9286
9539
|
this.class = '';
|
|
9287
9540
|
}
|
|
9288
9541
|
render() {
|
|
9289
|
-
return hAsync("span", { key: '
|
|
9542
|
+
return hAsync("span", { key: '1d2f811831f0c876e8b1133c0df03b6f15acaccb', class: this.class, innerHTML: twitter });
|
|
9290
9543
|
}
|
|
9291
9544
|
static get cmpMeta() { return {
|
|
9292
9545
|
"$flags$": 0,
|
|
@@ -11726,6 +11979,7 @@ class EdsIconWrapper {
|
|
|
11726
11979
|
registerInstance(this, hostRef);
|
|
11727
11980
|
this.name = undefined;
|
|
11728
11981
|
this.size = 20;
|
|
11982
|
+
this.label = undefined;
|
|
11729
11983
|
}
|
|
11730
11984
|
render() {
|
|
11731
11985
|
const iconSvg = ICONS[this.name];
|
|
@@ -11733,7 +11987,8 @@ class EdsIconWrapper {
|
|
|
11733
11987
|
console.warn(`Icon "${this.name}" not found in ICONS`);
|
|
11734
11988
|
return null;
|
|
11735
11989
|
}
|
|
11736
|
-
|
|
11990
|
+
const decorative = !this.label;
|
|
11991
|
+
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 })));
|
|
11737
11992
|
}
|
|
11738
11993
|
static get style() { return EdsIconWrapperStyle0; }
|
|
11739
11994
|
static get cmpMeta() { return {
|
|
@@ -11741,7 +11996,8 @@ class EdsIconWrapper {
|
|
|
11741
11996
|
"$tagName$": "eds-icon-wrapper",
|
|
11742
11997
|
"$members$": {
|
|
11743
11998
|
"name": [1],
|
|
11744
|
-
"size": [2]
|
|
11999
|
+
"size": [2],
|
|
12000
|
+
"label": [1]
|
|
11745
12001
|
},
|
|
11746
12002
|
"$listeners$": undefined,
|
|
11747
12003
|
"$lazyBundleId$": "-",
|
|
@@ -11758,7 +12014,7 @@ class EdsIconYoutube {
|
|
|
11758
12014
|
this.class = '';
|
|
11759
12015
|
}
|
|
11760
12016
|
render() {
|
|
11761
|
-
return hAsync("span", { key: '
|
|
12017
|
+
return hAsync("span", { key: '7ebb80fd84ed9ed7c227b1f1ddf213d0502160f9', class: this.class, innerHTML: youtube });
|
|
11762
12018
|
}
|
|
11763
12019
|
static get cmpMeta() { return {
|
|
11764
12020
|
"$flags$": 0,
|
|
@@ -11834,10 +12090,10 @@ class EdsImg {
|
|
|
11834
12090
|
imgOpts['loading'] = 'lazy';
|
|
11835
12091
|
imgOpts['decoding'] = 'async';
|
|
11836
12092
|
}
|
|
11837
|
-
return (hAsync("div", { key: '
|
|
12093
|
+
return (hAsync("div", { key: '122ae0673a7a2c9afd88cdcf8a83b52c11f0643e', class: {
|
|
11838
12094
|
'items-center justify-center': true,
|
|
11839
12095
|
'effect-bg-pattern': this.lazyload && this.showBg
|
|
11840
|
-
} }, hAsync("picture", { key: '
|
|
12096
|
+
} }, 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: {
|
|
11841
12097
|
'effect-opacity object-cover object-center': true,
|
|
11842
12098
|
'opacity-100': this.loaded,
|
|
11843
12099
|
'opacity-0': !this.loaded
|
|
@@ -11897,6 +12153,7 @@ class EdsInput {
|
|
|
11897
12153
|
this.min = undefined;
|
|
11898
12154
|
this.max = undefined;
|
|
11899
12155
|
this.step = undefined;
|
|
12156
|
+
this.inputTabIndex = undefined;
|
|
11900
12157
|
this.innerVal = '';
|
|
11901
12158
|
this.maxLengthReached = false;
|
|
11902
12159
|
}
|
|
@@ -11919,7 +12176,7 @@ class EdsInput {
|
|
|
11919
12176
|
render() {
|
|
11920
12177
|
const withIcon = !!this.icon;
|
|
11921
12178
|
const describedBy = this.hasMessage || this.error ? `${this.name}-error` : '';
|
|
11922
|
-
return (hAsync("div", { key: '
|
|
12179
|
+
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'
|
|
11923
12180
|
? {
|
|
11924
12181
|
min: this.min,
|
|
11925
12182
|
max: this.max,
|
|
@@ -11930,7 +12187,7 @@ class EdsInput {
|
|
|
11930
12187
|
input ${this.type === 'radio' ? 'input-radio' : this.type === 'checkbox' ? 'input-checkbox' : ''}
|
|
11931
12188
|
${withIcon && this.type !== 'radio' && this.type !== 'checkbox' ? 'input-icon pl-36' : ''}
|
|
11932
12189
|
${this.error ? 'input-error' : ''}
|
|
11933
|
-
`, "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: '
|
|
12190
|
+
`, "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 }))));
|
|
11934
12191
|
}
|
|
11935
12192
|
get el() { return getElement(this); }
|
|
11936
12193
|
static get watchers() { return {
|
|
@@ -11957,6 +12214,7 @@ class EdsInput {
|
|
|
11957
12214
|
"min": [2],
|
|
11958
12215
|
"max": [2],
|
|
11959
12216
|
"step": [2],
|
|
12217
|
+
"inputTabIndex": [2, "input-tab-index"],
|
|
11960
12218
|
"innerVal": [32],
|
|
11961
12219
|
"maxLengthReached": [32]
|
|
11962
12220
|
},
|
|
@@ -12063,7 +12321,7 @@ class EdsInputDropzone {
|
|
|
12063
12321
|
}
|
|
12064
12322
|
render() {
|
|
12065
12323
|
const dropzoneClass = `eds-input-dropzone ${this.isDragging ? 'dragging' : ''} ${this.disabled ? 'disabled' : ''}`;
|
|
12066
|
-
return (hAsync("div", { key: '
|
|
12324
|
+
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" }))))))))));
|
|
12067
12325
|
}
|
|
12068
12326
|
get hostEl() { return getElement(this); }
|
|
12069
12327
|
static get style() { return EdsInputDropzoneStyle0; }
|
|
@@ -12210,9 +12468,12 @@ class EdsInputField {
|
|
|
12210
12468
|
return [];
|
|
12211
12469
|
}
|
|
12212
12470
|
render() {
|
|
12213
|
-
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,
|
|
12214
|
-
|
|
12215
|
-
|
|
12471
|
+
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,
|
|
12472
|
+
// Icons are only supported on text inputs for now — ignore the prop for
|
|
12473
|
+
// every other type so e.g. number/select/checkbox never render one.
|
|
12474
|
+
icon: this.type === 'text' ? this.icon : undefined, checked: this.checked }, (this.type === 'number' ? { min: this.min, max: this.max, step: this.step } : {}));
|
|
12475
|
+
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' ? ((() => {
|
|
12476
|
+
var _a, _b, _c, _d, _e, _f;
|
|
12216
12477
|
const rangeProps = {
|
|
12217
12478
|
name: inputOpts.name,
|
|
12218
12479
|
inputId: inputOpts.id || inputOpts.name,
|
|
@@ -12223,8 +12484,11 @@ class EdsInputField {
|
|
|
12223
12484
|
};
|
|
12224
12485
|
const opt = this.parsedOptions;
|
|
12225
12486
|
const numberValue = typeof this.value === 'string' ? parseFloat(this.value) : this.value;
|
|
12226
|
-
|
|
12227
|
-
|
|
12487
|
+
// Prefer the explicit min/max/step props (consistent with
|
|
12488
|
+
// type="number"); fall back to options[0..2].value for
|
|
12489
|
+
// backward compatibility with existing range fields.
|
|
12490
|
+
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 })));
|
|
12491
|
+
})()) : (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 }))));
|
|
12228
12492
|
}
|
|
12229
12493
|
static get delegatesFocus() { return true; }
|
|
12230
12494
|
get hostEl() { return getElement(this); }
|
|
@@ -12329,7 +12593,7 @@ class EdsInputFile {
|
|
|
12329
12593
|
}
|
|
12330
12594
|
render() {
|
|
12331
12595
|
const effectiveLabel = this.buttonLabel || (this.multiple ? 'Choose Files' : 'Choose File');
|
|
12332
|
-
return (hAsync("div", { key: '
|
|
12596
|
+
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" }))))))))));
|
|
12333
12597
|
}
|
|
12334
12598
|
get hostEl() { return getElement(this); }
|
|
12335
12599
|
static get style() { return EdsInputFileStyle0; }
|
|
@@ -12353,7 +12617,7 @@ class EdsInputFile {
|
|
|
12353
12617
|
}; }
|
|
12354
12618
|
}
|
|
12355
12619
|
|
|
12356
|
-
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}";
|
|
12620
|
+
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}";
|
|
12357
12621
|
var EdsInputFooterStyle0 = edsInputFooterCss;
|
|
12358
12622
|
|
|
12359
12623
|
class EdsInputFooter {
|
|
@@ -12366,7 +12630,7 @@ class EdsInputFooter {
|
|
|
12366
12630
|
this.link = undefined;
|
|
12367
12631
|
}
|
|
12368
12632
|
render() {
|
|
12369
|
-
return (hAsync("div", { key: '
|
|
12633
|
+
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 }))));
|
|
12370
12634
|
}
|
|
12371
12635
|
static get style() { return EdsInputFooterStyle0; }
|
|
12372
12636
|
static get cmpMeta() { return {
|
|
@@ -12397,7 +12661,7 @@ class EdsInputLabel {
|
|
|
12397
12661
|
this.disabled = false;
|
|
12398
12662
|
}
|
|
12399
12663
|
render() {
|
|
12400
|
-
return (hAsync("label", { key: '
|
|
12664
|
+
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")))));
|
|
12401
12665
|
}
|
|
12402
12666
|
static get style() { return EdsInputLabelStyle0; }
|
|
12403
12667
|
static get cmpMeta() { return {
|
|
@@ -12465,7 +12729,7 @@ class EdsInputRange {
|
|
|
12465
12729
|
render() {
|
|
12466
12730
|
var _a;
|
|
12467
12731
|
const currentValue = (_a = this.sliderVal) !== null && _a !== void 0 ? _a : Math.round(this.min + (this.max - this.min) / 2);
|
|
12468
|
-
return (hAsync("div", { key: '
|
|
12732
|
+
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)));
|
|
12469
12733
|
}
|
|
12470
12734
|
get el() { return getElement(this); }
|
|
12471
12735
|
static get watchers() { return {
|
|
@@ -12560,7 +12824,7 @@ class EdsInputSearch {
|
|
|
12560
12824
|
return this.inputElement;
|
|
12561
12825
|
}
|
|
12562
12826
|
render() {
|
|
12563
|
-
return (hAsync("div", { key: '
|
|
12827
|
+
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}`,
|
|
12564
12828
|
//onInput={this.onInput}
|
|
12565
12829
|
onChange: this.onChange })));
|
|
12566
12830
|
}
|
|
@@ -12614,12 +12878,12 @@ class EdsInputSelect {
|
|
|
12614
12878
|
const selectId = this.inputId || this.name;
|
|
12615
12879
|
const placeholderText = this.placeholder || `Pick from the list`;
|
|
12616
12880
|
const describedBy = this.hasMessage || this.error ? `${this.name}-error` : undefined;
|
|
12617
|
-
return (hAsync("div", { key: '
|
|
12881
|
+
return (hAsync("div", { key: '8365ffbc8f6f6386edfc1626d16c9152fd3cce9f', class: "relative" }, hAsync("select", { key: '52e712898a3251cea5447a379886449175e7c8b8', id: selectId, name: this.name, class: {
|
|
12618
12882
|
input: true,
|
|
12619
12883
|
'input-error': this.error,
|
|
12620
12884
|
'px-4': true,
|
|
12621
12885
|
'py-2': true
|
|
12622
|
-
}, "aria-invalid": this.error ? 'true' : 'false', "aria-describedby": describedBy, disabled: this.disabled, required: this.required, onChange: this.handleChange }, hAsync("option", { key: '
|
|
12886
|
+
}, "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" }))));
|
|
12623
12887
|
}
|
|
12624
12888
|
static get cmpMeta() { return {
|
|
12625
12889
|
"$flags$": 0,
|
|
@@ -12641,6 +12905,172 @@ class EdsInputSelect {
|
|
|
12641
12905
|
}; }
|
|
12642
12906
|
}
|
|
12643
12907
|
|
|
12908
|
+
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%}}";
|
|
12909
|
+
var EdsKgLearningResourcesStyle0 = edsKgLearningResourcesCss;
|
|
12910
|
+
|
|
12911
|
+
let cachedData = null;
|
|
12912
|
+
let cacheTimestamp = 0;
|
|
12913
|
+
const CACHE_TTL = 10 * 60 * 1000;
|
|
12914
|
+
class EdsKgLearningResources {
|
|
12915
|
+
constructor(hostRef) {
|
|
12916
|
+
registerInstance(this, hostRef);
|
|
12917
|
+
this.apiEndpoint = '/api/v1/kg/learning-resources/cached';
|
|
12918
|
+
this.resolveNames = true;
|
|
12919
|
+
this.size = 500;
|
|
12920
|
+
this.heading = '';
|
|
12921
|
+
this.variant = 'inverse';
|
|
12922
|
+
this.loading = false;
|
|
12923
|
+
this.error = '';
|
|
12924
|
+
this.software = [];
|
|
12925
|
+
this.meta = null;
|
|
12926
|
+
this.filterType = '';
|
|
12927
|
+
this.filterLevel = '';
|
|
12928
|
+
this.searchQuery = '';
|
|
12929
|
+
}
|
|
12930
|
+
componentWillLoad() {
|
|
12931
|
+
this.fetchData();
|
|
12932
|
+
}
|
|
12933
|
+
async fetchData() {
|
|
12934
|
+
const now = Date.now();
|
|
12935
|
+
if (cachedData && (now - cacheTimestamp) < CACHE_TTL) {
|
|
12936
|
+
this.software = cachedData;
|
|
12937
|
+
return;
|
|
12938
|
+
}
|
|
12939
|
+
this.loading = true;
|
|
12940
|
+
this.error = '';
|
|
12941
|
+
try {
|
|
12942
|
+
const params = new URLSearchParams({
|
|
12943
|
+
size: this.size.toString(),
|
|
12944
|
+
resolve_names: this.resolveNames.toString(),
|
|
12945
|
+
});
|
|
12946
|
+
const response = await fetch(`${this.apiEndpoint}?${params}`);
|
|
12947
|
+
if (!response.ok) {
|
|
12948
|
+
throw new Error(`Failed to fetch: ${response.statusText}`);
|
|
12949
|
+
}
|
|
12950
|
+
const data = await response.json();
|
|
12951
|
+
this.software = data.data || [];
|
|
12952
|
+
this.meta = data.meta || null;
|
|
12953
|
+
cachedData = this.software;
|
|
12954
|
+
cacheTimestamp = now;
|
|
12955
|
+
}
|
|
12956
|
+
catch (err) {
|
|
12957
|
+
this.error = err instanceof Error ? err.message : 'Failed to load learning resources';
|
|
12958
|
+
}
|
|
12959
|
+
finally {
|
|
12960
|
+
this.loading = false;
|
|
12961
|
+
}
|
|
12962
|
+
}
|
|
12963
|
+
getFilteredSoftware() {
|
|
12964
|
+
let filtered = this.software;
|
|
12965
|
+
if (this.filterType) {
|
|
12966
|
+
filtered = filtered.filter(sw => sw.learning_resources_types.includes(this.filterType));
|
|
12967
|
+
}
|
|
12968
|
+
if (this.filterLevel) {
|
|
12969
|
+
filtered = filtered.filter(sw => sw.learning_resources_levels.includes(this.filterLevel));
|
|
12970
|
+
}
|
|
12971
|
+
if (this.searchQuery) {
|
|
12972
|
+
const q = this.searchQuery.toLowerCase();
|
|
12973
|
+
filtered = filtered.filter(sw => sw.name.toLowerCase().includes(q) ||
|
|
12974
|
+
sw.learning_resources.some(lr => {
|
|
12975
|
+
var _a, _b;
|
|
12976
|
+
return ((_a = lr.name) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes(q)) ||
|
|
12977
|
+
((_b = lr.abstract) === null || _b === void 0 ? void 0 : _b.toLowerCase().includes(q));
|
|
12978
|
+
}));
|
|
12979
|
+
}
|
|
12980
|
+
return filtered;
|
|
12981
|
+
}
|
|
12982
|
+
getFilteredResources(resources) {
|
|
12983
|
+
let filtered = resources;
|
|
12984
|
+
if (this.filterType) {
|
|
12985
|
+
filtered = filtered.filter(lr => lr.type === this.filterType);
|
|
12986
|
+
}
|
|
12987
|
+
if (this.filterLevel) {
|
|
12988
|
+
filtered = filtered.filter(lr => lr.educational_level === this.filterLevel);
|
|
12989
|
+
}
|
|
12990
|
+
return filtered;
|
|
12991
|
+
}
|
|
12992
|
+
/* TODO: Uncomment when filters are enabled
|
|
12993
|
+
private getAllTypes(): string[] {
|
|
12994
|
+
const types = new Set<string>();
|
|
12995
|
+
this.software.forEach(sw =>
|
|
12996
|
+
sw.learning_resources_types.forEach(t => types.add(t))
|
|
12997
|
+
);
|
|
12998
|
+
return Array.from(types).sort();
|
|
12999
|
+
}
|
|
13000
|
+
|
|
13001
|
+
private getAllLevels(): string[] {
|
|
13002
|
+
const levels = new Set<string>();
|
|
13003
|
+
this.software.forEach(sw =>
|
|
13004
|
+
sw.learning_resources_levels.forEach(l => levels.add(l))
|
|
13005
|
+
);
|
|
13006
|
+
return Array.from(levels).sort();
|
|
13007
|
+
}
|
|
13008
|
+
*/
|
|
13009
|
+
getTagIntent(type) {
|
|
13010
|
+
const map = {
|
|
13011
|
+
'interactive tutorial': 'brand',
|
|
13012
|
+
'video tutorial': 'primary',
|
|
13013
|
+
'user documentation': 'dark',
|
|
13014
|
+
'video presentation': 'inverse',
|
|
13015
|
+
'slide deck': 'strong',
|
|
13016
|
+
};
|
|
13017
|
+
return map[type] || 'brand-dark';
|
|
13018
|
+
}
|
|
13019
|
+
getLevelTagIntent(level) {
|
|
13020
|
+
const map = {
|
|
13021
|
+
'beginner': 'brand',
|
|
13022
|
+
'intermediate': 'dark',
|
|
13023
|
+
'advanced': 'strong',
|
|
13024
|
+
};
|
|
13025
|
+
return map[level] || 'brand-dark';
|
|
13026
|
+
}
|
|
13027
|
+
renderAccordionDescription(sw) {
|
|
13028
|
+
const count = sw.learning_resources_count;
|
|
13029
|
+
const types = sw.learning_resources_types.join(', ');
|
|
13030
|
+
return `${count} resource${count !== 1 ? 's' : ''} — ${types}`;
|
|
13031
|
+
}
|
|
13032
|
+
renderResources(sw) {
|
|
13033
|
+
const filtered = this.getFilteredResources(sw.learning_resources);
|
|
13034
|
+
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: () => {
|
|
13035
|
+
if (lr.iri) {
|
|
13036
|
+
window.open(lr.iri, '_blank', 'noopener,noreferrer');
|
|
13037
|
+
}
|
|
13038
|
+
} }, 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."))));
|
|
13039
|
+
}
|
|
13040
|
+
render() {
|
|
13041
|
+
// Always render the same outer scaffold (header + content area) so the
|
|
13042
|
+
// heading sits in identical position across loading / error / loaded
|
|
13043
|
+
// states and the spinner appears where the accordion list will render.
|
|
13044
|
+
const filtered = !this.loading && !this.error ? this.getFilteredSoftware() : [];
|
|
13045
|
+
// const allTypes = this.getAllTypes();
|
|
13046
|
+
// const allLevels = this.getAllLevels();
|
|
13047
|
+
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."))))));
|
|
13048
|
+
}
|
|
13049
|
+
get el() { return getElement(this); }
|
|
13050
|
+
static get style() { return EdsKgLearningResourcesStyle0; }
|
|
13051
|
+
static get cmpMeta() { return {
|
|
13052
|
+
"$flags$": 9,
|
|
13053
|
+
"$tagName$": "eds-kg-learning-resources",
|
|
13054
|
+
"$members$": {
|
|
13055
|
+
"apiEndpoint": [1, "api-endpoint"],
|
|
13056
|
+
"resolveNames": [4, "resolve-names"],
|
|
13057
|
+
"size": [2],
|
|
13058
|
+
"heading": [1],
|
|
13059
|
+
"variant": [1],
|
|
13060
|
+
"loading": [32],
|
|
13061
|
+
"error": [32],
|
|
13062
|
+
"software": [32],
|
|
13063
|
+
"meta": [32],
|
|
13064
|
+
"filterType": [32],
|
|
13065
|
+
"filterLevel": [32],
|
|
13066
|
+
"searchQuery": [32]
|
|
13067
|
+
},
|
|
13068
|
+
"$listeners$": undefined,
|
|
13069
|
+
"$lazyBundleId$": "-",
|
|
13070
|
+
"$attrsToReflect$": []
|
|
13071
|
+
}; }
|
|
13072
|
+
}
|
|
13073
|
+
|
|
12644
13074
|
const edsKgWebServicesSelectCss = ".kg-web-services-select-container{width:100%}.loading-container,.error-container{width:100%}";
|
|
12645
13075
|
var EdsKgWebServicesSelectStyle0 = edsKgWebServicesSelectCss;
|
|
12646
13076
|
|
|
@@ -13051,7 +13481,7 @@ class EdsLink {
|
|
|
13051
13481
|
const labelClasses = this.hideLabelOnSmallScreen
|
|
13052
13482
|
? 'hidden lg:flex' // Tailwind example: hidden on small screens, visible on larger
|
|
13053
13483
|
: '';
|
|
13054
|
-
return (hAsync("a", { key: '
|
|
13484
|
+
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())));
|
|
13055
13485
|
}
|
|
13056
13486
|
get el() { return getElement(this); }
|
|
13057
13487
|
static get style() { return EdsLinkStyle0; }
|
|
@@ -13135,7 +13565,7 @@ class EdsLogo {
|
|
|
13135
13565
|
}
|
|
13136
13566
|
render() {
|
|
13137
13567
|
const logoContent = this.getLogo();
|
|
13138
|
-
return (hAsync("a", { key: '
|
|
13568
|
+
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 })));
|
|
13139
13569
|
}
|
|
13140
13570
|
get el() { return getElement(this); }
|
|
13141
13571
|
static get style() { return EdsLogoStyle0; }
|
|
@@ -13154,7 +13584,7 @@ class EdsLogo {
|
|
|
13154
13584
|
}; }
|
|
13155
13585
|
}
|
|
13156
13586
|
|
|
13157
|
-
const edsMatomoNoticeCss = "
|
|
13587
|
+
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}";
|
|
13158
13588
|
var EdsMatomoNoticeStyle0 = edsMatomoNoticeCss;
|
|
13159
13589
|
|
|
13160
13590
|
class EdsMatomoNotice {
|
|
@@ -13265,7 +13695,13 @@ class EdsMatomoNotice {
|
|
|
13265
13695
|
if (!this.showNotice) {
|
|
13266
13696
|
return null;
|
|
13267
13697
|
}
|
|
13268
|
-
return (
|
|
13698
|
+
return (
|
|
13699
|
+
// Content-only render — no positioning, no overlay, no sizing.
|
|
13700
|
+
// The host application wraps this component in whatever positioned
|
|
13701
|
+
// container makes sense (fixed bottom banner, modal, sidebar slot,
|
|
13702
|
+
// etc.). See packages/shared-hugo/layouts/_default/baseof.html for
|
|
13703
|
+
// the bottom-centered card wrapper used by handbook/eds-docs.
|
|
13704
|
+
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() }))))));
|
|
13269
13705
|
}
|
|
13270
13706
|
get el() { return getElement(this); }
|
|
13271
13707
|
static get style() { return EdsMatomoNoticeStyle0; }
|
|
@@ -13507,7 +13943,7 @@ class EdsModal {
|
|
|
13507
13943
|
}; }
|
|
13508
13944
|
}
|
|
13509
13945
|
|
|
13510
|
-
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}";
|
|
13946
|
+
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}";
|
|
13511
13947
|
var EdsNpsStyle0 = edsNpsCss;
|
|
13512
13948
|
|
|
13513
13949
|
class EdsNps {
|
|
@@ -13588,14 +14024,14 @@ class EdsNps {
|
|
|
13588
14024
|
}
|
|
13589
14025
|
render() {
|
|
13590
14026
|
const count = this.max - this.min + 1;
|
|
13591
|
-
return (hAsync("div", { key: '
|
|
14027
|
+
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) => {
|
|
13592
14028
|
const val = this.min + i;
|
|
13593
14029
|
const isSelected = val === this.internalValue;
|
|
13594
14030
|
const tabIndex = isSelected || (this.internalValue == null && i === 0) ? 0 : -1;
|
|
13595
|
-
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' : '
|
|
14031
|
+
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: () => {
|
|
13596
14032
|
this.internalValue = val;
|
|
13597
14033
|
} })));
|
|
13598
|
-
})), hAsync("div", { key: '
|
|
14034
|
+
})), 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)))));
|
|
13599
14035
|
}
|
|
13600
14036
|
get el() { return getElement(this); }
|
|
13601
14037
|
static get watchers() { return {
|
|
@@ -13871,7 +14307,7 @@ class EdsPagination {
|
|
|
13871
14307
|
}
|
|
13872
14308
|
render() {
|
|
13873
14309
|
const navigableIndex = -1; // Track index for keyboard navigation
|
|
13874
|
-
return (hAsync("div", { key: '
|
|
14310
|
+
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) => {
|
|
13875
14311
|
if (this.mode === 'default' && !this.isFirstPage()) {
|
|
13876
14312
|
this.handlePageClick(event, (this.currentPage || 1) - 1);
|
|
13877
14313
|
}
|
|
@@ -13880,7 +14316,7 @@ class EdsPagination {
|
|
|
13880
14316
|
: this.isFirstPage()
|
|
13881
14317
|
? '#'
|
|
13882
14318
|
: 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' &&
|
|
13883
|
-
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 ? '
|
|
14319
|
+
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) => {
|
|
13884
14320
|
if (this.mode === 'default' && !this.isLastPage()) {
|
|
13885
14321
|
this.handlePageClick(event, (this.currentPage || 1) + 1);
|
|
13886
14322
|
}
|
|
@@ -14106,7 +14542,7 @@ class EdsProgressBar {
|
|
|
14106
14542
|
}; }
|
|
14107
14543
|
}
|
|
14108
14544
|
|
|
14109
|
-
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)))}";
|
|
14545
|
+
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)))}";
|
|
14110
14546
|
var EdsRatingStyle0 = edsRatingCss;
|
|
14111
14547
|
|
|
14112
14548
|
class EdsRating {
|
|
@@ -14185,12 +14621,12 @@ class EdsRating {
|
|
|
14185
14621
|
this.onSelect(next);
|
|
14186
14622
|
}
|
|
14187
14623
|
render() {
|
|
14188
|
-
return (hAsync("div", { key: '
|
|
14624
|
+
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) => {
|
|
14189
14625
|
const starRating = index + 1;
|
|
14190
14626
|
const isSelected = starRating <= this.internalRating;
|
|
14191
14627
|
// Use the mapping text if available; otherwise, fall back to a generic label.
|
|
14192
14628
|
const checked = this.internalRating === starRating;
|
|
14193
|
-
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' : '
|
|
14629
|
+
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" }));
|
|
14194
14630
|
})));
|
|
14195
14631
|
}
|
|
14196
14632
|
get el() { return getElement(this); }
|
|
@@ -14213,6 +14649,346 @@ class EdsRating {
|
|
|
14213
14649
|
}; }
|
|
14214
14650
|
}
|
|
14215
14651
|
|
|
14652
|
+
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}";
|
|
14653
|
+
var EdsSearchSelectStyle0 = edsSearchSelectCss;
|
|
14654
|
+
|
|
14655
|
+
/**
|
|
14656
|
+
* Searchable, source-agnostic select for HUGE option lists (countries,
|
|
14657
|
+
* currencies, nationalities, …) — the generalised sibling of
|
|
14658
|
+
* eds-kg-web-services-select.
|
|
14659
|
+
*
|
|
14660
|
+
* It never talks to an external API directly. It either filters an inline
|
|
14661
|
+
* `options` array client-side, or queries a VETTED, NAMED `source` through our
|
|
14662
|
+
* own datasets registry (`/api/v1/datasets/<source>/search`), which returns the
|
|
14663
|
+
* one normalised shape `{ items: [{label, value}], total, nextOffset }`. Any
|
|
14664
|
+
* messy upstream schema is flattened server-side by an adapter — the component
|
|
14665
|
+
* stays dumb.
|
|
14666
|
+
*
|
|
14667
|
+
* Rendering is result-capped (we render at most `maxVisible` rows and tell the
|
|
14668
|
+
* user to keep typing) so a 5,000-item source never blows up the DOM. Remote
|
|
14669
|
+
* sources are additionally bounded by the server's page `limit`.
|
|
14670
|
+
*/
|
|
14671
|
+
class EdsSearchSelect {
|
|
14672
|
+
constructor(hostRef) {
|
|
14673
|
+
registerInstance(this, hostRef);
|
|
14674
|
+
this.edsinput = createEvent(this, "edsinput", 7);
|
|
14675
|
+
this.edschange = createEvent(this, "edschange", 7);
|
|
14676
|
+
this.debounceTimer = null;
|
|
14677
|
+
this.inlineOptions = [];
|
|
14678
|
+
this.listboxId = `eds-ss-list-${Math.round(performance.now())}`;
|
|
14679
|
+
// value -> label, so selected tags render readable labels even for remote
|
|
14680
|
+
// values whose label hasn't been fetched in the current page.
|
|
14681
|
+
this.labelCache = {};
|
|
14682
|
+
this.onInput = (e) => {
|
|
14683
|
+
this.query = e.target.value;
|
|
14684
|
+
this.open = true;
|
|
14685
|
+
this.activeIndex = -1;
|
|
14686
|
+
this.runSearch(this.query);
|
|
14687
|
+
};
|
|
14688
|
+
this.clear = () => {
|
|
14689
|
+
if (this.multiple) {
|
|
14690
|
+
this.value = [];
|
|
14691
|
+
this.emitValue([]);
|
|
14692
|
+
}
|
|
14693
|
+
else {
|
|
14694
|
+
this.value = undefined;
|
|
14695
|
+
this.selectedLabel = '';
|
|
14696
|
+
this.emitValue('');
|
|
14697
|
+
}
|
|
14698
|
+
this.query = '';
|
|
14699
|
+
};
|
|
14700
|
+
this.onKeyDown = (e) => {
|
|
14701
|
+
if (e.key === 'ArrowDown') {
|
|
14702
|
+
e.preventDefault();
|
|
14703
|
+
if (!this.open)
|
|
14704
|
+
return this.openMenu();
|
|
14705
|
+
this.activeIndex = Math.min(this.activeIndex + 1, this.visibleItems.length - 1);
|
|
14706
|
+
}
|
|
14707
|
+
else if (e.key === 'ArrowUp') {
|
|
14708
|
+
e.preventDefault();
|
|
14709
|
+
this.activeIndex = Math.max(this.activeIndex - 1, 0);
|
|
14710
|
+
}
|
|
14711
|
+
else if (e.key === 'Enter') {
|
|
14712
|
+
if (this.open && this.activeIndex >= 0) {
|
|
14713
|
+
e.preventDefault();
|
|
14714
|
+
this.select(this.visibleItems[this.activeIndex]);
|
|
14715
|
+
}
|
|
14716
|
+
}
|
|
14717
|
+
else if (e.key === 'Escape') {
|
|
14718
|
+
this.closeMenu();
|
|
14719
|
+
}
|
|
14720
|
+
else if (e.key === 'Backspace' && this.multiple && !this.query && this.selectedValues.length) {
|
|
14721
|
+
// Backspace on an empty query removes the last selected tag.
|
|
14722
|
+
this.removeValue(this.selectedValues[this.selectedValues.length - 1]);
|
|
14723
|
+
}
|
|
14724
|
+
};
|
|
14725
|
+
// Close when a click lands outside the component. Must be shadow-aware:
|
|
14726
|
+
// this component is nested inside eds-form's shadow root, so a document-level
|
|
14727
|
+
// listener sees the event retargeted to the OUTER host — `host.contains(target)`
|
|
14728
|
+
// would be false even for our own clicks and wrongly close on open. composedPath()
|
|
14729
|
+
// walks through every shadow boundary and contains our host iff the click was ours.
|
|
14730
|
+
this.onDocumentClick = (e) => {
|
|
14731
|
+
if (this.open && !e.composedPath().includes(this.host))
|
|
14732
|
+
this.closeMenu();
|
|
14733
|
+
};
|
|
14734
|
+
this.name = undefined;
|
|
14735
|
+
this.label = undefined;
|
|
14736
|
+
this.placeholder = 'Search…';
|
|
14737
|
+
this.required = false;
|
|
14738
|
+
this.disabled = false;
|
|
14739
|
+
this.hint = undefined;
|
|
14740
|
+
this.message = undefined;
|
|
14741
|
+
this.error = false;
|
|
14742
|
+
this.errorMessage = undefined;
|
|
14743
|
+
this.value = undefined;
|
|
14744
|
+
this.multiple = false;
|
|
14745
|
+
this.options = undefined;
|
|
14746
|
+
this.source = undefined;
|
|
14747
|
+
this.apiBase = '/api/v1';
|
|
14748
|
+
this.searchParam = 'q';
|
|
14749
|
+
this.limit = 50;
|
|
14750
|
+
this.debounceMs = 250;
|
|
14751
|
+
this.maxVisible = 100;
|
|
14752
|
+
this.open = false;
|
|
14753
|
+
this.query = '';
|
|
14754
|
+
this.loading = false;
|
|
14755
|
+
this.fetchError = '';
|
|
14756
|
+
this.items = [];
|
|
14757
|
+
this.total = 0;
|
|
14758
|
+
this.activeIndex = -1;
|
|
14759
|
+
this.selectedLabel = '';
|
|
14760
|
+
}
|
|
14761
|
+
componentWillLoad() {
|
|
14762
|
+
this.parseInlineOptions();
|
|
14763
|
+
this.resolveSelectedLabel();
|
|
14764
|
+
}
|
|
14765
|
+
onOptionsChange() {
|
|
14766
|
+
this.parseInlineOptions();
|
|
14767
|
+
this.resolveSelectedLabel();
|
|
14768
|
+
}
|
|
14769
|
+
onValueChange() {
|
|
14770
|
+
this.resolveSelectedLabel();
|
|
14771
|
+
}
|
|
14772
|
+
parseInlineOptions() {
|
|
14773
|
+
if (!this.options) {
|
|
14774
|
+
this.inlineOptions = [];
|
|
14775
|
+
return;
|
|
14776
|
+
}
|
|
14777
|
+
if (typeof this.options === 'string') {
|
|
14778
|
+
try {
|
|
14779
|
+
this.inlineOptions = JSON.parse(this.options) || [];
|
|
14780
|
+
}
|
|
14781
|
+
catch (_a) {
|
|
14782
|
+
this.inlineOptions = [];
|
|
14783
|
+
}
|
|
14784
|
+
}
|
|
14785
|
+
else {
|
|
14786
|
+
this.inlineOptions = this.options;
|
|
14787
|
+
}
|
|
14788
|
+
this.cacheLabels(this.inlineOptions);
|
|
14789
|
+
}
|
|
14790
|
+
cacheLabels(opts) {
|
|
14791
|
+
(opts || []).forEach((o) => {
|
|
14792
|
+
if (o && o.value != null)
|
|
14793
|
+
this.labelCache[String(o.value)] = o.label;
|
|
14794
|
+
});
|
|
14795
|
+
}
|
|
14796
|
+
/** The current selection as a value array (works for single + multi). */
|
|
14797
|
+
get selectedValues() {
|
|
14798
|
+
const v = this.value;
|
|
14799
|
+
if (Array.isArray(v))
|
|
14800
|
+
return v.map(String).filter((s) => s !== '');
|
|
14801
|
+
if (typeof v === 'string' && v !== '') {
|
|
14802
|
+
return this.multiple ? v.split(',').filter(Boolean) : [v];
|
|
14803
|
+
}
|
|
14804
|
+
return [];
|
|
14805
|
+
}
|
|
14806
|
+
labelFor(val) {
|
|
14807
|
+
var _a, _b;
|
|
14808
|
+
return (this.labelCache[String(val)] ||
|
|
14809
|
+
((_a = this.inlineOptions.find((o) => String(o.value) === String(val))) === null || _a === void 0 ? void 0 : _a.label) ||
|
|
14810
|
+
((_b = this.items.find((o) => String(o.value) === String(val))) === null || _b === void 0 ? void 0 : _b.label) ||
|
|
14811
|
+
String(val));
|
|
14812
|
+
}
|
|
14813
|
+
emitValue(v) {
|
|
14814
|
+
this.edsinput.emit({ value: v });
|
|
14815
|
+
this.edschange.emit({ value: v });
|
|
14816
|
+
}
|
|
14817
|
+
get isRemote() {
|
|
14818
|
+
return !!this.source && this.inlineOptions.length === 0;
|
|
14819
|
+
}
|
|
14820
|
+
resolveSelectedLabel() {
|
|
14821
|
+
if (!this.value) {
|
|
14822
|
+
this.selectedLabel = '';
|
|
14823
|
+
return;
|
|
14824
|
+
}
|
|
14825
|
+
// Inline: resolve label from the known list. Remote: best-effort — show the
|
|
14826
|
+
// value until/unless it appears in a fetched page.
|
|
14827
|
+
const pool = this.inlineOptions.length ? this.inlineOptions : this.items;
|
|
14828
|
+
const found = pool.find((o) => String(o.value) === String(this.value));
|
|
14829
|
+
this.selectedLabel = found ? found.label : String(this.value);
|
|
14830
|
+
}
|
|
14831
|
+
// --- Data --------------------------------------------------------------
|
|
14832
|
+
filterInline(q) {
|
|
14833
|
+
const needle = q.trim().toLowerCase();
|
|
14834
|
+
if (!needle)
|
|
14835
|
+
return this.inlineOptions;
|
|
14836
|
+
return this.inlineOptions.filter((o) => o.label.toLowerCase().includes(needle) ||
|
|
14837
|
+
String(o.value).toLowerCase().includes(needle));
|
|
14838
|
+
}
|
|
14839
|
+
async fetchRemote(q) {
|
|
14840
|
+
this.loading = true;
|
|
14841
|
+
this.fetchError = '';
|
|
14842
|
+
try {
|
|
14843
|
+
const params = new URLSearchParams({ [this.searchParam]: q, limit: String(this.limit) });
|
|
14844
|
+
const url = `${this.apiBase}/datasets/${encodeURIComponent(this.source)}/search?${params}`;
|
|
14845
|
+
const resp = await fetch(url);
|
|
14846
|
+
if (!resp.ok)
|
|
14847
|
+
throw new Error(`Search failed: ${resp.statusText}`);
|
|
14848
|
+
const data = await resp.json();
|
|
14849
|
+
this.items = data.items || [];
|
|
14850
|
+
this.cacheLabels(this.items);
|
|
14851
|
+
this.total = typeof data.total === 'number' ? data.total : this.items.length;
|
|
14852
|
+
this.resolveSelectedLabel();
|
|
14853
|
+
}
|
|
14854
|
+
catch (e) {
|
|
14855
|
+
this.fetchError = e instanceof Error ? e.message : 'Search failed';
|
|
14856
|
+
this.items = [];
|
|
14857
|
+
this.total = 0;
|
|
14858
|
+
}
|
|
14859
|
+
finally {
|
|
14860
|
+
this.loading = false;
|
|
14861
|
+
}
|
|
14862
|
+
}
|
|
14863
|
+
runSearch(q, immediate = false) {
|
|
14864
|
+
if (this.isRemote) {
|
|
14865
|
+
// Show the loading state synchronously so the debounce window renders
|
|
14866
|
+
// "Searching…" rather than a misleading "No matches" before the fetch.
|
|
14867
|
+
this.loading = true;
|
|
14868
|
+
clearTimeout(this.debounceTimer);
|
|
14869
|
+
if (immediate) {
|
|
14870
|
+
this.fetchRemote(q);
|
|
14871
|
+
}
|
|
14872
|
+
else {
|
|
14873
|
+
this.debounceTimer = setTimeout(() => this.fetchRemote(q), this.debounceMs);
|
|
14874
|
+
}
|
|
14875
|
+
}
|
|
14876
|
+
else {
|
|
14877
|
+
this.items = this.filterInline(q);
|
|
14878
|
+
this.total = this.items.length;
|
|
14879
|
+
}
|
|
14880
|
+
}
|
|
14881
|
+
// --- The capped, render-ready slice ------------------------------------
|
|
14882
|
+
get visibleItems() {
|
|
14883
|
+
return this.items.slice(0, this.maxVisible);
|
|
14884
|
+
}
|
|
14885
|
+
get hiddenCount() {
|
|
14886
|
+
return Math.max(0, this.total - this.visibleItems.length);
|
|
14887
|
+
}
|
|
14888
|
+
// --- Interaction -------------------------------------------------------
|
|
14889
|
+
openMenu() {
|
|
14890
|
+
if (this.disabled)
|
|
14891
|
+
return;
|
|
14892
|
+
this.open = true;
|
|
14893
|
+
this.activeIndex = -1;
|
|
14894
|
+
// Populate on first open (initial page for remote, full list for inline).
|
|
14895
|
+
// Immediate fetch on open — debounce only applies to typing.
|
|
14896
|
+
if (!this.items.length || this.isRemote)
|
|
14897
|
+
this.runSearch(this.query, true);
|
|
14898
|
+
}
|
|
14899
|
+
closeMenu() {
|
|
14900
|
+
this.open = false;
|
|
14901
|
+
this.activeIndex = -1;
|
|
14902
|
+
}
|
|
14903
|
+
select(opt) {
|
|
14904
|
+
this.labelCache[String(opt.value)] = opt.label;
|
|
14905
|
+
if (this.multiple) {
|
|
14906
|
+
const current = this.selectedValues;
|
|
14907
|
+
const key = String(opt.value);
|
|
14908
|
+
const next = current.includes(key)
|
|
14909
|
+
? current.filter((v) => v !== key) // toggle off if already chosen
|
|
14910
|
+
: [...current, key];
|
|
14911
|
+
this.value = next;
|
|
14912
|
+
this.query = '';
|
|
14913
|
+
this.emitValue(next);
|
|
14914
|
+
// Keep the menu open so more can be picked; reset the list to all results.
|
|
14915
|
+
this.runSearch('', true);
|
|
14916
|
+
return;
|
|
14917
|
+
}
|
|
14918
|
+
this.value = opt.value;
|
|
14919
|
+
this.selectedLabel = opt.label;
|
|
14920
|
+
this.query = '';
|
|
14921
|
+
this.closeMenu();
|
|
14922
|
+
this.emitValue(opt.value);
|
|
14923
|
+
}
|
|
14924
|
+
removeValue(val, e) {
|
|
14925
|
+
e === null || e === void 0 ? void 0 : e.stopPropagation();
|
|
14926
|
+
const next = this.selectedValues.filter((v) => v !== String(val));
|
|
14927
|
+
this.value = next;
|
|
14928
|
+
this.emitValue(next);
|
|
14929
|
+
}
|
|
14930
|
+
connectedCallback() {
|
|
14931
|
+
document.addEventListener('click', this.onDocumentClick, true);
|
|
14932
|
+
}
|
|
14933
|
+
disconnectedCallback() {
|
|
14934
|
+
document.removeEventListener('click', this.onDocumentClick, true);
|
|
14935
|
+
clearTimeout(this.debounceTimer);
|
|
14936
|
+
}
|
|
14937
|
+
render() {
|
|
14938
|
+
const selected = this.selectedValues;
|
|
14939
|
+
const hasSelection = selected.length > 0;
|
|
14940
|
+
const inputValue = this.multiple ? this.query : (this.open ? this.query : this.selectedLabel);
|
|
14941
|
+
const placeholder = this.multiple
|
|
14942
|
+
? (hasSelection ? '' : this.placeholder)
|
|
14943
|
+
: (hasSelection && !this.open ? this.selectedLabel : this.placeholder);
|
|
14944
|
+
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 &&
|
|
14945
|
+
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 &&
|
|
14946
|
+
!this.fetchError &&
|
|
14947
|
+
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 })));
|
|
14948
|
+
}
|
|
14949
|
+
get host() { return getElement(this); }
|
|
14950
|
+
static get watchers() { return {
|
|
14951
|
+
"options": ["onOptionsChange"],
|
|
14952
|
+
"value": ["onValueChange"]
|
|
14953
|
+
}; }
|
|
14954
|
+
static get style() { return EdsSearchSelectStyle0; }
|
|
14955
|
+
static get cmpMeta() { return {
|
|
14956
|
+
"$flags$": 9,
|
|
14957
|
+
"$tagName$": "eds-search-select",
|
|
14958
|
+
"$members$": {
|
|
14959
|
+
"name": [1],
|
|
14960
|
+
"label": [1],
|
|
14961
|
+
"placeholder": [1],
|
|
14962
|
+
"required": [4],
|
|
14963
|
+
"disabled": [4],
|
|
14964
|
+
"hint": [1],
|
|
14965
|
+
"message": [1],
|
|
14966
|
+
"error": [4],
|
|
14967
|
+
"errorMessage": [1, "error-message"],
|
|
14968
|
+
"value": [1025],
|
|
14969
|
+
"multiple": [4],
|
|
14970
|
+
"options": [1],
|
|
14971
|
+
"source": [1],
|
|
14972
|
+
"apiBase": [1, "api-base"],
|
|
14973
|
+
"searchParam": [1, "search-param"],
|
|
14974
|
+
"limit": [2],
|
|
14975
|
+
"debounceMs": [2, "debounce-ms"],
|
|
14976
|
+
"maxVisible": [2, "max-visible"],
|
|
14977
|
+
"open": [32],
|
|
14978
|
+
"query": [32],
|
|
14979
|
+
"loading": [32],
|
|
14980
|
+
"fetchError": [32],
|
|
14981
|
+
"items": [32],
|
|
14982
|
+
"total": [32],
|
|
14983
|
+
"activeIndex": [32],
|
|
14984
|
+
"selectedLabel": [32]
|
|
14985
|
+
},
|
|
14986
|
+
"$listeners$": undefined,
|
|
14987
|
+
"$lazyBundleId$": "-",
|
|
14988
|
+
"$attrsToReflect$": []
|
|
14989
|
+
}; }
|
|
14990
|
+
}
|
|
14991
|
+
|
|
14216
14992
|
const edsSectionCoreCss = "";
|
|
14217
14993
|
var EdsSectionCoreStyle0 = edsSectionCoreCss;
|
|
14218
14994
|
|
|
@@ -14238,7 +15014,7 @@ class EdsSectionCore {
|
|
|
14238
15014
|
}
|
|
14239
15015
|
render() {
|
|
14240
15016
|
const TagType = this.tag; // Set dynamic tag type (div or section)
|
|
14241
|
-
return (hAsync(TagType, { key: '
|
|
15017
|
+
return (hAsync(TagType, { key: '635230d1ec9a0dcc945990a6a58dc3508345d984' }, hAsync("eds-section-heading", { key: '0b6b94df22af707cbd6964132f3a5190b4b7e83c', headingLevel: this.headingLevel, sectionTitle: this.sectionTitle }), hAsync("slot", { key: '8834c29c25249fb5c384fb5d51866eadb93a97d6' })));
|
|
14242
15018
|
}
|
|
14243
15019
|
static get style() { return EdsSectionCoreStyle0; }
|
|
14244
15020
|
static get cmpMeta() { return {
|
|
@@ -14293,12 +15069,12 @@ class EdsSectionHeading {
|
|
|
14293
15069
|
render() {
|
|
14294
15070
|
const TagType = this.tag; // Dynamically set tag type for the container
|
|
14295
15071
|
const HeadingTag = this.headingLevel; // Dynamically set heading level
|
|
14296
|
-
return (hAsync(TagType, { key: '
|
|
15072
|
+
return (hAsync(TagType, { key: '7275284a1158ab982f1e53117b72738d0a001c97', class: {
|
|
14297
15073
|
'ui-section-header flex flex-wrap items-center justify-between gap-x-12 gap-y-8': true,
|
|
14298
15074
|
container: this.withContainer,
|
|
14299
15075
|
'pt-48': this.spacingLarge,
|
|
14300
15076
|
'pt-28': !this.spacingLarge
|
|
14301
|
-
} }, hAsync(HeadingTag, { key: '
|
|
15077
|
+
} }, hAsync(HeadingTag, { key: 'a3c68baa56a0337348405c88544225ed7c7ff0ed', class: this.getHeadingClass() }, this.sectionTitle)));
|
|
14302
15078
|
}
|
|
14303
15079
|
static get cmpMeta() { return {
|
|
14304
15080
|
"$flags$": 0,
|
|
@@ -14467,10 +15243,10 @@ class EdsSidebar {
|
|
|
14467
15243
|
} }, 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))))));
|
|
14468
15244
|
}
|
|
14469
15245
|
render() {
|
|
14470
|
-
return (hAsync(Host, { key: '
|
|
15246
|
+
return (hAsync(Host, { key: 'f5221c19e8148ca62a76fb470a4aa6786c3e41b5', class: {
|
|
14471
15247
|
'eds-sidebar': true,
|
|
14472
15248
|
[`theme-${this.theme}`]: true
|
|
14473
|
-
} }, hAsync("nav", { key: '
|
|
15249
|
+
} }, 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))))));
|
|
14474
15250
|
}
|
|
14475
15251
|
get el() { return getElement(this); }
|
|
14476
15252
|
static get watchers() { return {
|
|
@@ -14556,7 +15332,7 @@ class EdsSocialNetworks {
|
|
|
14556
15332
|
const isInverse = this.variant === 'inverse';
|
|
14557
15333
|
const textClass = isInverse ? 'text-inverse' : '';
|
|
14558
15334
|
const linkIntent = isInverse ? 'inverse' : 'strong';
|
|
14559
|
-
return (hAsync("nav", { key: '
|
|
15335
|
+
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 })))))));
|
|
14560
15336
|
}
|
|
14561
15337
|
static get style() { return EdsSocialNetworksStyle0; }
|
|
14562
15338
|
static get cmpMeta() { return {
|
|
@@ -14648,7 +15424,7 @@ class EdsSpinner {
|
|
|
14648
15424
|
alignItems: 'center',
|
|
14649
15425
|
justifyContent: 'center'
|
|
14650
15426
|
};
|
|
14651
|
-
return (hAsync(Host, { key: '
|
|
15427
|
+
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))));
|
|
14652
15428
|
}
|
|
14653
15429
|
static get style() { return EdsSpinnerStyle0; }
|
|
14654
15430
|
static get cmpMeta() { return {
|
|
@@ -15197,7 +15973,7 @@ class EdsStepsV2 {
|
|
|
15197
15973
|
const steps = this.parsedSteps;
|
|
15198
15974
|
const marginClass = this.orientation === 'horizontal' ? 'mt-64' : 'mt-32';
|
|
15199
15975
|
const themeClass = this.theme === 'brand' ? 'theme-brand' : 'theme-default';
|
|
15200
|
-
return (hAsync("div", { key: '
|
|
15976
|
+
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) => {
|
|
15201
15977
|
const isLast = index === steps.length - 1;
|
|
15202
15978
|
if (this.activeStep !== index) {
|
|
15203
15979
|
return null;
|
|
@@ -15339,7 +16115,7 @@ class EdsSwitch {
|
|
|
15339
16115
|
}; }
|
|
15340
16116
|
}
|
|
15341
16117
|
|
|
15342
|
-
const edsTableCss = "table{text-indent:0;border-color:inherit;border-collapse:collapse;}
|
|
16118
|
+
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}}";
|
|
15343
16119
|
var EdsTableStyle0 = edsTableCss;
|
|
15344
16120
|
|
|
15345
16121
|
/**
|
|
@@ -15428,11 +16204,10 @@ class EdsTable {
|
|
|
15428
16204
|
this.paginationEnabled = true;
|
|
15429
16205
|
this.searchEnabled = false;
|
|
15430
16206
|
this.hostWidth = undefined;
|
|
15431
|
-
this.columnSize = 'default';
|
|
15432
16207
|
this.actions = [];
|
|
15433
16208
|
this.actionTemplate = undefined;
|
|
15434
16209
|
this.sortingEnabled = false;
|
|
15435
|
-
this.theme = '
|
|
16210
|
+
this.theme = 'brand';
|
|
15436
16211
|
this.view = 'table';
|
|
15437
16212
|
this.showViewToggle = false;
|
|
15438
16213
|
this.parsedActions = [];
|
|
@@ -15464,6 +16239,8 @@ class EdsTable {
|
|
|
15464
16239
|
}
|
|
15465
16240
|
}
|
|
15466
16241
|
componentWillLoad() {
|
|
16242
|
+
// 'default' / 'color' themes are disabled — always render the brand theme.
|
|
16243
|
+
this.theme = 'brand';
|
|
15467
16244
|
this.parseConfig();
|
|
15468
16245
|
this.handleActionsChange();
|
|
15469
16246
|
this.parseData();
|
|
@@ -15599,19 +16376,6 @@ class EdsTable {
|
|
|
15599
16376
|
this.columns.push('actions');
|
|
15600
16377
|
}
|
|
15601
16378
|
}
|
|
15602
|
-
getVisibleColumnsCount() {
|
|
15603
|
-
return this.columns.filter((column) => { var _a; return !((_a = this.parsedConfig[column]) === null || _a === void 0 ? void 0 : _a.hidden); }).length;
|
|
15604
|
-
}
|
|
15605
|
-
divisionFactor() {
|
|
15606
|
-
let divisionFactor = 1;
|
|
15607
|
-
if (this.columnSize === 'medium') {
|
|
15608
|
-
divisionFactor = 2;
|
|
15609
|
-
}
|
|
15610
|
-
else if (this.columnSize === 'large') {
|
|
15611
|
-
divisionFactor = 4;
|
|
15612
|
-
}
|
|
15613
|
-
return divisionFactor;
|
|
15614
|
-
}
|
|
15615
16379
|
capitalize(str) {
|
|
15616
16380
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
15617
16381
|
}
|
|
@@ -15646,24 +16410,23 @@ class EdsTable {
|
|
|
15646
16410
|
const dataColumns = this.columns.filter((col) => { var _a; return col !== 'actions' && !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); });
|
|
15647
16411
|
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)))))))))));
|
|
15648
16412
|
}
|
|
15649
|
-
renderTableView(paginatedRows
|
|
15650
|
-
const columnWidth = visibleColumnsCount > 0 ? Math.floor((currentContainerWidth / visibleColumnsCount) * this.divisionFactor()) : 100;
|
|
16413
|
+
renderTableView(paginatedRows) {
|
|
15651
16414
|
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
|
|
15652
16415
|
.filter((col) => { var _a; return col === 'actions' || !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); })
|
|
15653
16416
|
.map((col) => {
|
|
15654
16417
|
if (col === 'actions') {
|
|
15655
|
-
return (hAsync("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words"
|
|
16418
|
+
return (hAsync("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words" }));
|
|
15656
16419
|
}
|
|
15657
|
-
return (hAsync("th", { class: "m-0 py-8 border border-softer f-ui-02 break-words"
|
|
16420
|
+
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
|
|
15658
16421
|
? this.sortDirection === 'asc'
|
|
15659
16422
|
? 'chevron-up'
|
|
15660
16423
|
: 'chevron-down'
|
|
15661
16424
|
: 'chevron-down', "aria-label": `Sort by ${col}`, onClick: () => this.handleSort(col), style: { cursor: 'pointer' } })))));
|
|
15662
|
-
}))), 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
|
|
16425
|
+
}))), 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
|
|
15663
16426
|
.filter((col) => { var _a; return col === 'actions' || !((_a = this.parsedConfig[col]) === null || _a === void 0 ? void 0 : _a.hidden); })
|
|
15664
16427
|
.map((col) => {
|
|
15665
16428
|
if (col === 'actions') {
|
|
15666
|
-
return (hAsync("td", { class: "text-center border border-softer m-0 f-ui-01 break-words actions-cell"
|
|
16429
|
+
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: {
|
|
15667
16430
|
display: 'flex',
|
|
15668
16431
|
gap: '0.5rem',
|
|
15669
16432
|
justifyContent: 'center',
|
|
@@ -15671,18 +16434,16 @@ class EdsTable {
|
|
|
15671
16434
|
} }, this.parsedActions.map((act) => (hAsync("span", { style: { whiteSpace: 'nowrap' } }, this.renderSingleActionCell(act.name, row)))))));
|
|
15672
16435
|
}
|
|
15673
16436
|
// Regular data cell
|
|
15674
|
-
return (hAsync("td", { class: "text-center border border-softer m-0 py-8 f-ui-02 break-words"
|
|
16437
|
+
return (hAsync("td", { class: "text-center border border-softer m-0 py-8 f-ui-02 break-words" }, this.renderCell(row[col], col)));
|
|
15675
16438
|
}))))))));
|
|
15676
16439
|
}
|
|
15677
16440
|
render() {
|
|
15678
|
-
const currentContainerWidth = this.hostWidth && this.hostWidth.trim() !== '' ? Number(this.hostWidth) : this.containerWidth || 400;
|
|
15679
|
-
const visibleColumnsCount = this.getVisibleColumnsCount();
|
|
15680
16441
|
const paginatedRows = this.getPaginatedRows();
|
|
15681
16442
|
const lastPage = Math.ceil(this.totalRows / this.rowsPerPage);
|
|
15682
16443
|
const showControls = this.showViewToggle || this.searchEnabled;
|
|
15683
|
-
return (hAsync("div", { key: '
|
|
16444
|
+
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'
|
|
15684
16445
|
? this.renderCardView(paginatedRows)
|
|
15685
|
-
: this.renderTableView(paginatedRows
|
|
16446
|
+
: 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" })))));
|
|
15686
16447
|
}
|
|
15687
16448
|
get hostEl() { return getElement(this); }
|
|
15688
16449
|
static get watchers() { return {
|
|
@@ -15701,11 +16462,10 @@ class EdsTable {
|
|
|
15701
16462
|
"paginationEnabled": [4, "pagination-enabled"],
|
|
15702
16463
|
"searchEnabled": [4, "search-enabled"],
|
|
15703
16464
|
"hostWidth": [1, "host-width"],
|
|
15704
|
-
"columnSize": [1, "column-size"],
|
|
15705
16465
|
"actions": [1],
|
|
15706
16466
|
"actionTemplate": [16],
|
|
15707
16467
|
"sortingEnabled": [4, "sorting-enabled"],
|
|
15708
|
-
"theme": [
|
|
16468
|
+
"theme": [1025],
|
|
15709
16469
|
"view": [1025],
|
|
15710
16470
|
"showViewToggle": [4, "show-view-toggle"],
|
|
15711
16471
|
"parsedActions": [32],
|
|
@@ -15726,7 +16486,7 @@ class EdsTable {
|
|
|
15726
16486
|
}; }
|
|
15727
16487
|
}
|
|
15728
16488
|
|
|
15729
|
-
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:
|
|
16489
|
+
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}}";
|
|
15730
16490
|
var EdsTabsStyle0 = edsTabsCss;
|
|
15731
16491
|
|
|
15732
16492
|
/**
|
|
@@ -15765,14 +16525,28 @@ class EdsTabs {
|
|
|
15765
16525
|
}
|
|
15766
16526
|
/**
|
|
15767
16527
|
* Parses the `tabs` prop into an array of tab objects.
|
|
16528
|
+
*
|
|
16529
|
+
* Note: we deliberately do NOT clear `tabRefs` here. Consumers
|
|
16530
|
+
* often re-pass `tabs` with an updated `active` flag every time
|
|
16531
|
+
* the user switches tabs (Vue/React re-render on event). Wiping
|
|
16532
|
+
* the refs leaves a window in which a queued focus() call sees
|
|
16533
|
+
* `tabRefs[index] === undefined` and silently no-ops — focus
|
|
16534
|
+
* gets stuck on the previous tab even though `aria-selected` and
|
|
16535
|
+
* the background already moved. Stencil re-binds refs on render,
|
|
16536
|
+
* so the array stays in sync without us emptying it; we only
|
|
16537
|
+
* truncate when the new list is shorter to drop stale entries.
|
|
15768
16538
|
*/
|
|
15769
16539
|
parseTabs() {
|
|
15770
16540
|
this.parsedTabs = parseData(this.tabs);
|
|
15771
|
-
this.tabRefs
|
|
16541
|
+
if (this.tabRefs.length > this.parsedTabs.length) {
|
|
16542
|
+
this.tabRefs.length = this.parsedTabs.length;
|
|
16543
|
+
}
|
|
15772
16544
|
}
|
|
15773
16545
|
componentDidUpdate() {
|
|
15774
|
-
|
|
15775
|
-
|
|
16546
|
+
// Same reasoning as parseTabs: only shrink, never re-allocate
|
|
16547
|
+
// to nulls — that would re-introduce the silent-no-op window.
|
|
16548
|
+
if (this.tabRefs.length > this.parsedTabs.length) {
|
|
16549
|
+
this.tabRefs.length = this.parsedTabs.length;
|
|
15776
16550
|
}
|
|
15777
16551
|
}
|
|
15778
16552
|
setActiveIndex() {
|
|
@@ -15783,6 +16557,7 @@ class EdsTabs {
|
|
|
15783
16557
|
}
|
|
15784
16558
|
}
|
|
15785
16559
|
handleTabClick(index, tabLabel, shouldFocus = true) {
|
|
16560
|
+
var _a;
|
|
15786
16561
|
if (index < 0 || index >= this.parsedTabs.length) {
|
|
15787
16562
|
return;
|
|
15788
16563
|
}
|
|
@@ -15797,11 +16572,34 @@ class EdsTabs {
|
|
|
15797
16572
|
action: 'click'
|
|
15798
16573
|
});
|
|
15799
16574
|
}
|
|
15800
|
-
if (shouldFocus
|
|
15801
|
-
|
|
16575
|
+
if (shouldFocus) {
|
|
16576
|
+
// Focus must move SYNCHRONOUSLY, while the keydown event
|
|
16577
|
+
// that triggered this call is still on the stack. Otherwise
|
|
16578
|
+
// the browser's `:focus-visible` heuristic doesn't flag the
|
|
16579
|
+
// focus move as keyboard-driven and the outline never paints
|
|
16580
|
+
// — accessibility regression (WCAG 2.4.7).
|
|
16581
|
+
//
|
|
16582
|
+
// We query by static id (`#tab-${index}`) instead of using
|
|
16583
|
+
// `tabRefs[index]` because consumer-driven prop changes can
|
|
16584
|
+
// briefly drop the cached ref. The button id is set in
|
|
16585
|
+
// `render()` and doesn't depend on active state, so it is
|
|
16586
|
+
// always findable.
|
|
16587
|
+
const findBtn = () => { var _a; return ((_a = this.el.shadowRoot) !== null && _a !== void 0 ? _a : this.el).querySelector(`#tab-${index}`); };
|
|
16588
|
+
(_a = findBtn()) === null || _a === void 0 ? void 0 : _a.focus();
|
|
16589
|
+
// Belt-and-suspenders: if a consumer reacts to the `tab`
|
|
16590
|
+
// event by re-rendering our buttons (rare, but possible
|
|
16591
|
+
// when the `tabs` prop is recomputed), the sync focus above
|
|
16592
|
+
// landed on a button that is now detached. Re-focus once
|
|
16593
|
+
// the next frame's DOM is in place. We only act if focus
|
|
16594
|
+
// genuinely isn't on the right element, to avoid a redundant
|
|
16595
|
+
// focus call that would reset selection/IME state.
|
|
16596
|
+
requestAnimationFrame(() => {
|
|
15802
16597
|
var _a;
|
|
15803
|
-
|
|
15804
|
-
|
|
16598
|
+
const after = findBtn();
|
|
16599
|
+
if (after && ((_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) !== after) {
|
|
16600
|
+
after.focus();
|
|
16601
|
+
}
|
|
16602
|
+
});
|
|
15805
16603
|
}
|
|
15806
16604
|
}
|
|
15807
16605
|
onKeyDown(ev, idx) {
|
|
@@ -15835,7 +16633,7 @@ class EdsTabs {
|
|
|
15835
16633
|
'tabs-container',
|
|
15836
16634
|
`tabs-container-${this.variant}`
|
|
15837
16635
|
].join(' ');
|
|
15838
|
-
return (hAsync("div", { key: '
|
|
16636
|
+
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) => {
|
|
15839
16637
|
const isActive = index === this.activeIndex;
|
|
15840
16638
|
const tabClasses = [
|
|
15841
16639
|
'tab',
|
|
@@ -15843,7 +16641,7 @@ class EdsTabs {
|
|
|
15843
16641
|
isActive ? 'tab-active' : ''
|
|
15844
16642
|
].filter(Boolean).join(' ');
|
|
15845
16643
|
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));
|
|
15846
|
-
}))), hAsync("div", { key: '
|
|
16644
|
+
}))), 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}` })))))));
|
|
15847
16645
|
}
|
|
15848
16646
|
get el() { return getElement(this); }
|
|
15849
16647
|
static get watchers() { return {
|
|
@@ -15906,7 +16704,7 @@ class EdsTag {
|
|
|
15906
16704
|
}
|
|
15907
16705
|
render() {
|
|
15908
16706
|
const classes = tagStyles({ intent: this.intent, size: this.size });
|
|
15909
|
-
return (hAsync("span", { key: '
|
|
16707
|
+
return (hAsync("span", { key: '20e1625ac01b0dc1f40356d02622e0649faa7fa7', class: classes }, hAsync("span", { key: '313c3f18c0a5df285afe6a40ded9e68035d9648f', style: { position: 'relative', zIndex: '1' } }, this.label)));
|
|
15910
16708
|
}
|
|
15911
16709
|
static get style() { return EdsTagStyle0; }
|
|
15912
16710
|
static get cmpMeta() { return {
|
|
@@ -15968,7 +16766,7 @@ class EdsTimeline {
|
|
|
15968
16766
|
}
|
|
15969
16767
|
}
|
|
15970
16768
|
render() {
|
|
15971
|
-
return (hAsync("div", { key: '
|
|
16769
|
+
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
|
|
15972
16770
|
? [{ label: 'completed', style: 'accent' }]
|
|
15973
16771
|
: [{ 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
|
|
15974
16772
|
? [{ label: 'completed', style: 'accent' }]
|
|
@@ -16144,7 +16942,7 @@ class EdsToastManager {
|
|
|
16144
16942
|
this.toasts = this.toasts.filter((t) => t.id !== id);
|
|
16145
16943
|
}
|
|
16146
16944
|
render() {
|
|
16147
|
-
return (hAsync("div", { key: '
|
|
16945
|
+
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) }))))));
|
|
16148
16946
|
}
|
|
16149
16947
|
get hostElement() { return getElement(this); }
|
|
16150
16948
|
static get style() { return EdsToastManagerStyle0; }
|
|
@@ -16183,7 +16981,7 @@ class EdsTooltip {
|
|
|
16183
16981
|
}
|
|
16184
16982
|
render() {
|
|
16185
16983
|
const positionClass = this.position === 'bottom' ? 'top-full mt-2' : 'bottom-full mb-2';
|
|
16186
|
-
return (hAsync("div", { key: '
|
|
16984
|
+
return (hAsync("div", { key: '8b4396894b1ec7cc1c2d928ffa5b3d7628f8c4ee', class: "relative w-full inline-block group" }, hAsync("slot", { key: 'c2547098aacc584960f217edcafeb060ce742adc' }), hAsync("div", { key: '1e6beac7e4294456f7a6130c4b0573cce3e4b548', class: `absolute ${positionClass}
|
|
16187
16985
|
rounded-xs bg-strongest text-inverse
|
|
16188
16986
|
f-ui-03-light pointer-events-none
|
|
16189
16987
|
z-10 px-4 opacity-0 transition-opacity duration-150 ease-in-out
|
|
@@ -16204,6 +17002,220 @@ class EdsTooltip {
|
|
|
16204
17002
|
}; }
|
|
16205
17003
|
}
|
|
16206
17004
|
|
|
17005
|
+
/* eslint-disable */
|
|
17006
|
+
/**
|
|
17007
|
+
* Official EBRAINS sphere mark, extracted from
|
|
17008
|
+
* packages/assets/EBRAINS_logo_25/new_ebrains_logo_rgb/250901_new_ebrains_logo_rgb_positive.svg
|
|
17009
|
+
* (the gradient-filled wave segments only — wordmark dropped).
|
|
17010
|
+
*
|
|
17011
|
+
* Gradient ids carry a `__UID__` placeholder so each badge instance can
|
|
17012
|
+
* namespace them (no <defs> collisions when several badges share a page).
|
|
17013
|
+
* Gradient template inheritance uses SVG2 `href` (no xlink namespace needed).
|
|
17014
|
+
* Use markDefs() inside the badge <defs> and markGroup() in the body.
|
|
17015
|
+
*/
|
|
17016
|
+
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"/>`;
|
|
17017
|
+
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"/>`;
|
|
17018
|
+
/** Gradient <defs> for the mark, namespaced with `uid`. */
|
|
17019
|
+
function markDefs(uid) {
|
|
17020
|
+
return MARK_DEFS.replace(/__UID__/g, uid);
|
|
17021
|
+
}
|
|
17022
|
+
/**
|
|
17023
|
+
* The mark paths wrapped in a positioned, scaled group.
|
|
17024
|
+
* The source artwork lives in a ~201×201 canvas; `size` is the rendered px.
|
|
17025
|
+
*/
|
|
17026
|
+
function markGroup(uid, x, y, size = 16) {
|
|
17027
|
+
const s = (size / 201.1).toFixed(4);
|
|
17028
|
+
const paths = MARK_PATHS.replace(/__UID__/g, uid);
|
|
17029
|
+
return `<g transform="translate(${x},${y}) scale(${s})">${paths}</g>`;
|
|
17030
|
+
}
|
|
17031
|
+
|
|
17032
|
+
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}";
|
|
17033
|
+
var EdsTrlBadgeStyle0 = edsTrlBadgeCss;
|
|
17034
|
+
|
|
17035
|
+
let _uid = 0;
|
|
17036
|
+
/**
|
|
17037
|
+
* `EdsTrlBadge` — public EBRAINS TRL badge, aligned with the EBRAINS visual
|
|
17038
|
+
* system (Black `#07140D`, Green `#00FF9D`, Dark Green `#00C87B`, Grey
|
|
17039
|
+
* `#7A7B7A`, IBM Plex Mono) and using the **official EBRAINS sphere mark**.
|
|
17040
|
+
*
|
|
17041
|
+
* Renders a self-contained inline `<svg>` (same markup the server-side
|
|
17042
|
+
* `badge.svg` endpoint emits), so it embeds anywhere and stays crisp.
|
|
17043
|
+
*
|
|
17044
|
+
* Variants:
|
|
17045
|
+
* - `tone` — CI-style label + value pill (dark or light `theme`).
|
|
17046
|
+
* - `full` — single bar with the full string.
|
|
17047
|
+
* - `pill` — compact rounded "TRL 7".
|
|
17048
|
+
* - `outline` — thin border, transparent fill, mono caps (dark or light).
|
|
17049
|
+
* - `scale` — nine readiness pips showing position on the 1–9 scale.
|
|
17050
|
+
*
|
|
17051
|
+
* The value/pip colour encodes maturity within the brand palette:
|
|
17052
|
+
* TRL 7–9 → green, 4–6 → dark green, 1–3 → grey.
|
|
17053
|
+
*
|
|
17054
|
+
* @example
|
|
17055
|
+
* <eds-trl-badge level={7} assessed="2026-06" methodology="v8.2"></eds-trl-badge>
|
|
17056
|
+
* <eds-trl-badge level={7} variant="outline" theme="light"></eds-trl-badge>
|
|
17057
|
+
* <eds-trl-badge level={7} variant="scale" size={32}></eds-trl-badge>
|
|
17058
|
+
*/
|
|
17059
|
+
class EdsTrlBadge {
|
|
17060
|
+
constructor(hostRef) {
|
|
17061
|
+
registerInstance(this, hostRef);
|
|
17062
|
+
/** Per-instance suffix so the mark's gradient ids never collide. */
|
|
17063
|
+
this.uid = `trl${++_uid}-`;
|
|
17064
|
+
this.level = undefined;
|
|
17065
|
+
this.assessed = undefined;
|
|
17066
|
+
this.methodology = undefined;
|
|
17067
|
+
this.theme = 'dark';
|
|
17068
|
+
this.variant = 'tone';
|
|
17069
|
+
this.size = undefined;
|
|
17070
|
+
this.label = 'EBRAINS TRL';
|
|
17071
|
+
this.href = undefined;
|
|
17072
|
+
}
|
|
17073
|
+
esc(s) {
|
|
17074
|
+
return String(s).replace(/&/g, '&').replace(/</g, '<')
|
|
17075
|
+
.replace(/>/g, '>').replace(/"/g, '"');
|
|
17076
|
+
}
|
|
17077
|
+
/** Maturity tier → value/pip colour (brand palette). */
|
|
17078
|
+
levelColor() {
|
|
17079
|
+
const n = Number(this.level);
|
|
17080
|
+
if (n >= 7)
|
|
17081
|
+
return '#00FF9D';
|
|
17082
|
+
if (n >= 4)
|
|
17083
|
+
return '#00C87B';
|
|
17084
|
+
return '#7A7B7A';
|
|
17085
|
+
}
|
|
17086
|
+
/** Readable value text on a coloured segment (black on green, light on grey). */
|
|
17087
|
+
valueText() {
|
|
17088
|
+
return Number(this.level) >= 4 ? '#07140D' : '#ECECEC';
|
|
17089
|
+
}
|
|
17090
|
+
fullText() {
|
|
17091
|
+
const parts = [`${this.label} ${this.level}`];
|
|
17092
|
+
if (this.assessed)
|
|
17093
|
+
parts.push(`assessed ${this.assessed}`);
|
|
17094
|
+
if (this.methodology)
|
|
17095
|
+
parts.push(`methodology ${this.methodology}`);
|
|
17096
|
+
return parts.join(' · ');
|
|
17097
|
+
}
|
|
17098
|
+
/** Build the inner markup + intrinsic dimensions for the chosen variant. */
|
|
17099
|
+
build() {
|
|
17100
|
+
const CW = EdsTrlBadge.CW;
|
|
17101
|
+
const uid = this.uid;
|
|
17102
|
+
const clip = `${uid}clip`;
|
|
17103
|
+
const valColor = this.levelColor();
|
|
17104
|
+
const logoSpace = 28; // 8 margin + ~16 mark + 4 gap
|
|
17105
|
+
const mono = `font-family="'IBM Plex Mono',monospace"`;
|
|
17106
|
+
const lvl = this.esc(String(this.level));
|
|
17107
|
+
if (this.variant === 'full') {
|
|
17108
|
+
const tail = (this.assessed ? ` · assessed ${this.esc(this.assessed)}` : '') +
|
|
17109
|
+
(this.methodology ? ` · methodology ${this.esc(this.methodology)}` : '');
|
|
17110
|
+
const w = Math.ceil(logoSpace + this.fullText().length * CW + 10);
|
|
17111
|
+
const inner = `<defs><clipPath id="${clip}"><rect width="${w}" height="24" rx="6"/></clipPath>${markDefs(uid)}</defs>` +
|
|
17112
|
+
`<g clip-path="url(#${clip})"><rect width="${w}" height="24" fill="#07140D"/></g>${markGroup(uid, 8, 4, 16)}` +
|
|
17113
|
+
`<text x="30" y="15.5" ${mono} font-size="11" letter-spacing=".2">` +
|
|
17114
|
+
`<tspan fill="#ECECEC">${this.esc(this.label)} </tspan>` +
|
|
17115
|
+
`<tspan fill="${valColor}" font-weight="600">${lvl}</tspan>` +
|
|
17116
|
+
`<tspan fill="#7A7B7A">${this.esc(tail)}</tspan></text>`;
|
|
17117
|
+
return { w, h: 24, inner };
|
|
17118
|
+
}
|
|
17119
|
+
if (this.variant === 'pill') {
|
|
17120
|
+
const txt = `TRL ${this.level}`;
|
|
17121
|
+
const w = Math.ceil(logoSpace + txt.length * CW + 14);
|
|
17122
|
+
const tx = logoSpace + (w - logoSpace) / 2 - 4;
|
|
17123
|
+
const inner = `<defs>${markDefs(uid)}</defs>` +
|
|
17124
|
+
`<rect width="${w}" height="24" rx="12" fill="#07140D"/>${markGroup(uid, 7, 4, 16)}` +
|
|
17125
|
+
`<text x="${tx}" y="16" ${mono} font-size="11" font-weight="500" letter-spacing=".5" text-anchor="middle">` +
|
|
17126
|
+
`<tspan fill="#ECECEC">TRL </tspan><tspan fill="${valColor}" font-weight="600">${lvl}</tspan></text>`;
|
|
17127
|
+
return { w, h: 24, inner };
|
|
17128
|
+
}
|
|
17129
|
+
if (this.variant === 'outline') {
|
|
17130
|
+
const dark = this.theme !== 'light';
|
|
17131
|
+
const bg = dark ? '#0c1c14' : '#ffffff';
|
|
17132
|
+
const stroke = dark ? '#34473d' : '#07140D';
|
|
17133
|
+
const labelColor = dark ? '#ECECEC' : '#07140D';
|
|
17134
|
+
const sep = dark ? '#5a6b62' : '#9aa39d';
|
|
17135
|
+
const value = dark ? valColor : (Number(this.level) >= 4 ? '#00966a' : '#7A7B7A');
|
|
17136
|
+
const w = Math.ceil(logoSpace + (this.label + ' · ' + this.level).length * CW + 12);
|
|
17137
|
+
const inner = `<defs>${markDefs(uid)}</defs>` +
|
|
17138
|
+
`<rect x=".5" y=".5" width="${w - 1}" height="23" rx="6" fill="${bg}" stroke="${stroke}"/>${markGroup(uid, 8, 4, 16)}` +
|
|
17139
|
+
`<text x="30" y="16" ${mono} font-size="11" letter-spacing=".3">` +
|
|
17140
|
+
`<tspan fill="${labelColor}">${this.esc(this.label)} </tspan>` +
|
|
17141
|
+
`<tspan fill="${sep}">· </tspan>` +
|
|
17142
|
+
`<tspan fill="${value}" font-weight="600">${lvl}</tspan></text>`;
|
|
17143
|
+
return { w, h: 24, inner };
|
|
17144
|
+
}
|
|
17145
|
+
if (this.variant === 'scale') {
|
|
17146
|
+
const dark = this.theme !== 'light';
|
|
17147
|
+
const bg = dark ? '#07140D' : '#ECECEC';
|
|
17148
|
+
const labelColor = dark ? '#ECECEC' : '#07140D';
|
|
17149
|
+
const emptyPip = dark ? '#2f4339' : '#c4ccc7';
|
|
17150
|
+
const sep = dark ? '#5a6b62' : '#9aa39d';
|
|
17151
|
+
const n = Math.max(0, Math.min(9, Number(this.level) || 0));
|
|
17152
|
+
const pipStart = Math.ceil(30 + this.label.length * CW + 12);
|
|
17153
|
+
const pipStep = 9, pipW = 6, pipH = 8, pipY = 9;
|
|
17154
|
+
let pips = '';
|
|
17155
|
+
for (let i = 0; i < 9; i++) {
|
|
17156
|
+
const x = pipStart + i * pipStep;
|
|
17157
|
+
pips += `<rect x="${x}" y="${pipY}" width="${pipW}" height="${pipH}" rx="1" fill="${i < n ? valColor : emptyPip}"/>`;
|
|
17158
|
+
}
|
|
17159
|
+
const valueX = pipStart + 9 * pipStep + 5;
|
|
17160
|
+
const w = Math.ceil(valueX + `${this.level}/9`.length * CW + 8);
|
|
17161
|
+
const inner = `<defs>${markDefs(uid)}</defs>` +
|
|
17162
|
+
`<rect width="${w}" height="26" rx="6" fill="${bg}"/>${markGroup(uid, 8, 5, 16)}` +
|
|
17163
|
+
`<text x="30" y="17" ${mono} font-size="11" letter-spacing=".3" fill="${labelColor}">${this.esc(this.label)}</text>` +
|
|
17164
|
+
`<g>${pips}</g>` +
|
|
17165
|
+
`<text x="${valueX}" y="17" ${mono} font-size="11" font-weight="500">` +
|
|
17166
|
+
`<tspan fill="${valColor}">${lvl}</tspan><tspan fill="${sep}">/9</tspan></text>`;
|
|
17167
|
+
return { w, h: 26, inner };
|
|
17168
|
+
}
|
|
17169
|
+
// tone (default) — dark or light theme
|
|
17170
|
+
const dark = this.theme !== 'light';
|
|
17171
|
+
const labelBg = dark ? '#07140D' : '#ECECEC';
|
|
17172
|
+
const labelTextColor = dark ? '#ECECEC' : '#07140D';
|
|
17173
|
+
const valTextColor = dark ? this.valueText() : '#07140D';
|
|
17174
|
+
const labelSegW = Math.ceil(logoSpace + this.label.length * CW + 12);
|
|
17175
|
+
const valSegW = Math.ceil(12 + String(this.level).length * CW + 12);
|
|
17176
|
+
const w = labelSegW + valSegW;
|
|
17177
|
+
const inner = `<defs><clipPath id="${clip}"><rect width="${w}" height="24" rx="6"/></clipPath>${markDefs(uid)}</defs>` +
|
|
17178
|
+
`<g clip-path="url(#${clip})"><rect width="${labelSegW}" height="24" fill="${labelBg}"/>` +
|
|
17179
|
+
`<rect x="${labelSegW}" width="${valSegW}" height="24" fill="${valColor}"/></g>${markGroup(uid, 8, 4, 16)}` +
|
|
17180
|
+
`<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>` +
|
|
17181
|
+
`<text x="${labelSegW + valSegW / 2}" y="16" ${mono} font-size="11" font-weight="600" fill="${valTextColor}" text-anchor="middle">${lvl}</text>`;
|
|
17182
|
+
return { w, h: 24, inner };
|
|
17183
|
+
}
|
|
17184
|
+
buildSvg() {
|
|
17185
|
+
const { w, h, inner } = this.build();
|
|
17186
|
+
const aria = this.esc(this.fullText());
|
|
17187
|
+
const k = this.size ? this.size / h : 1;
|
|
17188
|
+
const outW = Math.round(w * k);
|
|
17189
|
+
const outH = Math.round(h * k);
|
|
17190
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${outW}" height="${outH}" ` +
|
|
17191
|
+
`viewBox="0 0 ${w} ${h}" role="img" aria-label="${aria}"><title>${aria}</title>${inner}</svg>`;
|
|
17192
|
+
}
|
|
17193
|
+
render() {
|
|
17194
|
+
const svg = this.buildSvg();
|
|
17195
|
+
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 }))));
|
|
17196
|
+
}
|
|
17197
|
+
static get style() { return EdsTrlBadgeStyle0; }
|
|
17198
|
+
static get cmpMeta() { return {
|
|
17199
|
+
"$flags$": 9,
|
|
17200
|
+
"$tagName$": "eds-trl-badge",
|
|
17201
|
+
"$members$": {
|
|
17202
|
+
"level": [2],
|
|
17203
|
+
"assessed": [1],
|
|
17204
|
+
"methodology": [1],
|
|
17205
|
+
"theme": [1],
|
|
17206
|
+
"variant": [1],
|
|
17207
|
+
"size": [2],
|
|
17208
|
+
"label": [1],
|
|
17209
|
+
"href": [1]
|
|
17210
|
+
},
|
|
17211
|
+
"$listeners$": undefined,
|
|
17212
|
+
"$lazyBundleId$": "-",
|
|
17213
|
+
"$attrsToReflect$": []
|
|
17214
|
+
}; }
|
|
17215
|
+
}
|
|
17216
|
+
// IBM Plex Mono advance width at 11px (used to size segments to the text).
|
|
17217
|
+
EdsTrlBadge.CW = 6.8;
|
|
17218
|
+
|
|
16207
17219
|
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}";
|
|
16208
17220
|
var EdsUserStyle0 = edsUserCss;
|
|
16209
17221
|
|
|
@@ -16255,7 +17267,7 @@ class EdsUser {
|
|
|
16255
17267
|
render() {
|
|
16256
17268
|
const user = this.parsedUser;
|
|
16257
17269
|
//const iconName = this.expanded ? 'chevron-down' : 'chevron-right';
|
|
16258
|
-
return (hAsync("div", { key: '
|
|
17270
|
+
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' })))))));
|
|
16259
17271
|
}
|
|
16260
17272
|
get hostEl() { return getElement(this); }
|
|
16261
17273
|
static get style() { return EdsUserStyle0; }
|
|
@@ -16311,7 +17323,7 @@ class GradientPrimaryPalette {
|
|
|
16311
17323
|
];
|
|
16312
17324
|
}
|
|
16313
17325
|
render() {
|
|
16314
|
-
return (hAsync("ul", { key: '
|
|
17326
|
+
return (hAsync("ul", { key: 'a8696a25aafbfb13acf0966545e33caf6f65545d', class: "not-prose gap-y-8 md:gap-y-12 lg:gap-y-16", style: {
|
|
16315
17327
|
background: 'linear-gradient(to bottom, #9CE142 0%, #00C959 50%, #00A595 100%)'
|
|
16316
17328
|
} }, 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))))))));
|
|
16317
17329
|
}
|
|
@@ -16384,19 +17396,19 @@ class GradientSecondaryPalette {
|
|
|
16384
17396
|
];
|
|
16385
17397
|
}
|
|
16386
17398
|
render() {
|
|
16387
|
-
return (hAsync("div", { key: '
|
|
17399
|
+
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: {
|
|
16388
17400
|
background: this.colors[0].background
|
|
16389
|
-
} }, hAsync("div", { key: '
|
|
17401
|
+
} }, 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: {
|
|
16390
17402
|
background: this.colors[1].background
|
|
16391
|
-
} }, hAsync("div", { key: '
|
|
17403
|
+
} }, 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: {
|
|
16392
17404
|
background: this.colors[2].background
|
|
16393
|
-
} }, hAsync("div", { key: '
|
|
17405
|
+
} }, 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: {
|
|
16394
17406
|
background: this.colors[3].background
|
|
16395
|
-
} }, hAsync("div", { key: '
|
|
17407
|
+
} }, 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: {
|
|
16396
17408
|
background: this.colors[4].background
|
|
16397
|
-
} }, hAsync("div", { key: '
|
|
17409
|
+
} }, 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: {
|
|
16398
17410
|
background: this.colors[5].background
|
|
16399
|
-
} }, hAsync("div", { key: '
|
|
17411
|
+
} }, 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)))))));
|
|
16400
17412
|
}
|
|
16401
17413
|
static get cmpMeta() { return {
|
|
16402
17414
|
"$flags$": 0,
|
|
@@ -16459,11 +17471,11 @@ class GradientSupportPalette {
|
|
|
16459
17471
|
];
|
|
16460
17472
|
}
|
|
16461
17473
|
render() {
|
|
16462
|
-
return (hAsync("ul", { key: '
|
|
17474
|
+
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: {
|
|
16463
17475
|
background: this.colors[2].background
|
|
16464
|
-
} }, hAsync("div", { key: '
|
|
17476
|
+
} }, 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: {
|
|
16465
17477
|
background: this.colors[3].background
|
|
16466
|
-
} }, hAsync("div", { key: '
|
|
17478
|
+
} }, 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'))))));
|
|
16467
17479
|
}
|
|
16468
17480
|
static get cmpMeta() { return {
|
|
16469
17481
|
"$flags$": 0,
|
|
@@ -16517,7 +17529,7 @@ class IncorrectUseOfColors {
|
|
|
16517
17529
|
registerInstance(this, hostRef);
|
|
16518
17530
|
}
|
|
16519
17531
|
render() {
|
|
16520
|
-
return (hAsync("div", { key: '
|
|
17532
|
+
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 } })))))))));
|
|
16521
17533
|
}
|
|
16522
17534
|
static get cmpMeta() { return {
|
|
16523
17535
|
"$flags$": 0,
|
|
@@ -16540,7 +17552,7 @@ class LogoSpace {
|
|
|
16540
17552
|
registerInstance(this, hostRef);
|
|
16541
17553
|
}
|
|
16542
17554
|
render() {
|
|
16543
|
-
return (hAsync("div", { key: '
|
|
17555
|
+
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 }' }))))));
|
|
16544
17556
|
}
|
|
16545
17557
|
static get style() { return LogoSpaceStyle0; }
|
|
16546
17558
|
static get cmpMeta() { return {
|
|
@@ -16564,7 +17576,7 @@ class LogoVariationsHorizontal {
|
|
|
16564
17576
|
registerInstance(this, hostRef);
|
|
16565
17577
|
}
|
|
16566
17578
|
render() {
|
|
16567
|
-
return (hAsync("div", { key: '
|
|
17579
|
+
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: "#" }))))));
|
|
16568
17580
|
}
|
|
16569
17581
|
static get style() { return LogoVariationsHorizontalStyle0; }
|
|
16570
17582
|
static get cmpMeta() { return {
|
|
@@ -16596,7 +17608,7 @@ class LogoVariationsTabs {
|
|
|
16596
17608
|
}
|
|
16597
17609
|
}
|
|
16598
17610
|
render() {
|
|
16599
|
-
return hAsync("div", { key: '
|
|
17611
|
+
return hAsync("div", { key: '25f8ec6fcb189c14d9e6d1564a5705ba34296fe1', class: "container" }, this.renderContent());
|
|
16600
17612
|
}
|
|
16601
17613
|
static get cmpMeta() { return {
|
|
16602
17614
|
"$flags$": 0,
|
|
@@ -16623,7 +17635,7 @@ class LogoVariationsVertical {
|
|
|
16623
17635
|
this.type = undefined;
|
|
16624
17636
|
}
|
|
16625
17637
|
render() {
|
|
16626
|
-
return (hAsync("div", { key: '
|
|
17638
|
+
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: "#" }))))));
|
|
16627
17639
|
}
|
|
16628
17640
|
static get style() { return LogoVariationsVerticalStyle0; }
|
|
16629
17641
|
static get cmpMeta() { return {
|
|
@@ -16650,7 +17662,7 @@ class LogoWrongUsage {
|
|
|
16650
17662
|
registerInstance(this, hostRef);
|
|
16651
17663
|
}
|
|
16652
17664
|
render() {
|
|
16653
|
-
return (hAsync("div", { key: '
|
|
17665
|
+
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"))))));
|
|
16654
17666
|
}
|
|
16655
17667
|
static get style() { return LogoWrongUsageStyle0; }
|
|
16656
17668
|
static get cmpMeta() { return {
|
|
@@ -16694,7 +17706,7 @@ class SvgRepository {
|
|
|
16694
17706
|
icon: { format: 'svg' },
|
|
16695
17707
|
name: { format: 'bold' }
|
|
16696
17708
|
};
|
|
16697
|
-
return (hAsync("div", { key: '
|
|
17709
|
+
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 })));
|
|
16698
17710
|
}
|
|
16699
17711
|
get hostEl() { return getElement(this); }
|
|
16700
17712
|
static get style() { return SvgRepositoryStyle0; }
|
|
@@ -16968,7 +17980,7 @@ class TokenList {
|
|
|
16968
17980
|
render() {
|
|
16969
17981
|
// Check if `show` prop is provided; if not, display all sections
|
|
16970
17982
|
const sectionsToDisplay = this.show ? { [this.show]: colors[this.show] } : colors;
|
|
16971
|
-
return (hAsync("section", { key: '
|
|
17983
|
+
return (hAsync("section", { key: '19a7dd76a980e2815f8df3ee0cb083b2c77cafa4', class: "w-full mt-28" }, Object.entries(sectionsToDisplay).map(([sectionName, sectionContent]) =>
|
|
16972
17984
|
// Only render sections that exist in `colors`
|
|
16973
17985
|
sectionContent ? this.renderSection(sectionName, sectionContent) : null)));
|
|
16974
17986
|
}
|
|
@@ -17001,7 +18013,7 @@ class TokenRadii {
|
|
|
17001
18013
|
registerInstance(this, hostRef);
|
|
17002
18014
|
}
|
|
17003
18015
|
render() {
|
|
17004
|
-
return (hAsync("section", { key: '
|
|
18016
|
+
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" }))))))));
|
|
17005
18017
|
}
|
|
17006
18018
|
static get cmpMeta() { return {
|
|
17007
18019
|
"$flags$": 0,
|
|
@@ -17030,7 +18042,7 @@ class TokenRatios {
|
|
|
17030
18042
|
registerInstance(this, hostRef);
|
|
17031
18043
|
}
|
|
17032
18044
|
render() {
|
|
17033
|
-
return (hAsync("section", { key: '
|
|
18045
|
+
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: {
|
|
17034
18046
|
aspectRatio: value.replace('/', ':'), // Cast to string to resolve TypeScript error
|
|
17035
18047
|
width: '100%', // Full width to show the aspect ratio correctly
|
|
17036
18048
|
maxWidth: '300px'
|
|
@@ -17097,7 +18109,7 @@ class TokenShadows {
|
|
|
17097
18109
|
registerInstance(this, hostRef);
|
|
17098
18110
|
}
|
|
17099
18111
|
render() {
|
|
17100
|
-
return (hAsync("section", { key: '
|
|
18112
|
+
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]" })))))))));
|
|
17101
18113
|
}
|
|
17102
18114
|
static get cmpMeta() { return {
|
|
17103
18115
|
"$flags$": 0,
|
|
@@ -17117,7 +18129,7 @@ class TokenSpacing {
|
|
|
17117
18129
|
registerInstance(this, hostRef);
|
|
17118
18130
|
}
|
|
17119
18131
|
render() {
|
|
17120
|
-
return (hAsync("div", { key: '
|
|
18132
|
+
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")))))));
|
|
17121
18133
|
}
|
|
17122
18134
|
static get cmpMeta() { return {
|
|
17123
18135
|
"$flags$": 0,
|
|
@@ -17365,7 +18377,7 @@ class TokenTypography {
|
|
|
17365
18377
|
registerInstance(this, hostRef);
|
|
17366
18378
|
}
|
|
17367
18379
|
render() {
|
|
17368
|
-
return (hAsync("section", { key: '
|
|
18380
|
+
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)
|
|
17369
18381
|
.filter(([typeKey]) => typeKey !== 'displays') // Exclude "displays"
|
|
17370
18382
|
.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: {
|
|
17371
18383
|
fontFamily: style.fontFamily || typography.families['plex-sans'],
|
|
@@ -17448,6 +18460,7 @@ registerComponents([
|
|
|
17448
18460
|
EdsInputRange,
|
|
17449
18461
|
EdsInputSearch,
|
|
17450
18462
|
EdsInputSelect,
|
|
18463
|
+
EdsKgLearningResources,
|
|
17451
18464
|
EdsKgWebServicesSelect,
|
|
17452
18465
|
EdsLink,
|
|
17453
18466
|
EdsLogo,
|
|
@@ -17458,6 +18471,7 @@ registerComponents([
|
|
|
17458
18471
|
EdsPie,
|
|
17459
18472
|
EdsProgressBar,
|
|
17460
18473
|
EdsRating,
|
|
18474
|
+
EdsSearchSelect,
|
|
17461
18475
|
EdsSectionCore,
|
|
17462
18476
|
EdsSectionHeading,
|
|
17463
18477
|
EdsSidebar,
|
|
@@ -17474,6 +18488,7 @@ registerComponents([
|
|
|
17474
18488
|
EdsToast,
|
|
17475
18489
|
EdsToastManager,
|
|
17476
18490
|
EdsTooltip,
|
|
18491
|
+
EdsTrlBadge,
|
|
17477
18492
|
EdsUser,
|
|
17478
18493
|
GradientPrimaryPalette,
|
|
17479
18494
|
GradientSecondaryPalette,
|