@eunomia/elements 1.0.0-beta.4 → 1.0.0-beta.6
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/README.md +1 -1
- package/dist/breakpoints.d.ts +37 -10
- package/dist/breakpoints.js +38 -10
- package/dist/cdn/components/chunks/{chunk-MMLIPCOY.js → chunk-22D3SRFR.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-4MXL6PZC.js → chunk-2Y2EU2CI.js} +28 -28
- package/dist/cdn/components/chunks/chunk-3MTUVMM5.js +1 -0
- package/dist/cdn/components/chunks/chunk-4PI6RDUS.js +1 -0
- package/dist/cdn/components/chunks/chunk-5GKM5DIB.js +1 -0
- package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-7KKWYPHY.js} +4 -2
- package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +1 -0
- package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
- package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-NHFWATVN.js → chunk-BQFJR2UP.js} +5 -5
- package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
- package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
- package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
- package/dist/cdn/components/chunks/{chunk-E4IS25H7.js → chunk-G5SBDQQ3.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-S2UCEWNG.js → chunk-JYIIWN2P.js} +13 -11
- package/dist/cdn/components/chunks/{chunk-EOWBYZV7.js → chunk-KDN4O5W2.js} +26 -13
- package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +1 -0
- package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-L2ADCEN7.js} +1 -1
- package/dist/cdn/components/chunks/chunk-LMVW522V.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-MOMYII3P.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-SIHZFOTK.js → chunk-MQQ4BGVJ.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
- package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
- package/dist/cdn/components/chunks/{chunk-KBH5PCUO.js → chunk-PE4DAXHQ.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-GSJEJLFA.js → chunk-PMPSJG5V.js} +7 -7
- package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-EJIX2D4Z.js → chunk-QZ5SHR3I.js} +15 -11
- package/dist/cdn/components/chunks/chunk-RS7TWEMQ.js +1 -0
- package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
- package/dist/cdn/components/chunks/{chunk-YGUJJ25C.js → chunk-SZYEBMG6.js} +11 -10
- package/dist/cdn/components/chunks/chunk-UDVB4LAE.js +56 -0
- package/dist/cdn/components/chunks/{chunk-UAGCQF23.js → chunk-UYZR4JXZ.js} +17 -12
- package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
- package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
- package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +38 -0
- package/dist/cdn/components/chunks/{chunk-BMQOI7HX.js → chunk-VYFR364B.js} +128 -74
- package/dist/cdn/components/chunks/{chunk-IJ5WFMK4.js → chunk-XDPRWUKN.js} +7 -6
- package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-RJCJXB7Y.js → chunk-ZKZV2YG5.js} +18 -18
- package/dist/cdn/components/eun-alert.js +24 -16
- package/dist/cdn/components/eun-animate.js +12 -6
- package/dist/cdn/components/eun-badge.js +7 -7
- package/dist/cdn/components/eun-breadcrumb.js +25 -41
- package/dist/cdn/components/eun-button.js +1 -1
- package/dist/cdn/components/eun-calendar.js +68 -66
- package/dist/cdn/components/eun-card.js +67 -13
- package/dist/cdn/components/eun-carousel.js +66 -35
- package/dist/cdn/components/eun-check-card.js +13 -6
- package/dist/cdn/components/eun-checkbox-list.js +4 -4
- package/dist/cdn/components/eun-checkbox.js +1 -1
- package/dist/cdn/components/eun-chip.js +1 -1
- package/dist/cdn/components/eun-collapse.js +87 -39
- package/dist/cdn/components/eun-color-picker.js +54 -53
- package/dist/cdn/components/eun-counter.js +14 -13
- package/dist/cdn/components/eun-date-picker.js +66 -63
- package/dist/cdn/components/eun-description-list.js +152 -0
- package/dist/cdn/components/eun-divider.js +1 -1
- package/dist/cdn/components/eun-drawer.js +26 -12
- package/dist/cdn/components/eun-dropdown-button.js +1 -1
- package/dist/cdn/components/eun-dropdown-item.js +6 -5
- package/dist/cdn/components/eun-fab.js +20 -19
- package/dist/cdn/components/eun-icon.js +1 -1
- package/dist/cdn/components/eun-image-card.js +79 -22
- package/dist/cdn/components/eun-image-carousel.js +92 -47
- package/dist/cdn/components/eun-infinite-list.js +23 -11
- package/dist/cdn/components/eun-input-file.js +14 -13
- package/dist/cdn/components/eun-input-phone.js +26 -26
- package/dist/cdn/components/eun-input.js +1 -1
- package/dist/cdn/components/eun-label.js +4 -4
- package/dist/cdn/components/eun-link.js +174 -27
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +29 -22
- package/dist/cdn/components/eun-pagination.js +17 -12
- package/dist/cdn/components/eun-password-strength.js +6 -2
- package/dist/cdn/components/eun-progress-bar.js +13 -5
- package/dist/cdn/components/eun-radio-card.js +16 -9
- package/dist/cdn/components/eun-radio-list.js +4 -4
- package/dist/cdn/components/eun-radio.js +1 -1
- package/dist/cdn/components/eun-scheduler-event-editor.js +8 -8
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +42 -42
- package/dist/cdn/components/eun-search.js +21 -20
- package/dist/cdn/components/eun-select.js +12 -11
- package/dist/cdn/components/eun-sidebar.js +34 -20
- package/dist/cdn/components/eun-skeleton.js +1 -1
- package/dist/cdn/components/eun-slider.js +15 -14
- package/dist/cdn/components/eun-sliding-card.js +8 -4
- package/dist/cdn/components/eun-step.js +17 -6
- package/dist/cdn/components/eun-stepper.js +17 -6
- package/dist/cdn/components/eun-switch.js +10 -8
- package/dist/cdn/components/eun-tab-group.js +22 -17
- package/dist/cdn/components/eun-tab-panel.js +11 -3
- package/dist/cdn/components/eun-tab.js +1 -1
- package/dist/cdn/components/eun-table-action-bar.js +1 -1
- package/dist/cdn/components/eun-table.js +572 -31
- package/dist/cdn/components/eun-tag.js +13 -7
- package/dist/cdn/components/eun-textarea.js +24 -24
- package/dist/cdn/components/eun-time-picker.js +21 -19
- package/dist/cdn/components/eun-toast.js +36 -16
- package/dist/cdn/components/eun-toggle-group.js +64 -37
- package/dist/cdn/components/eun-toggle-item.js +24 -21
- package/dist/cdn/components/eun-toggle.js +12 -10
- package/dist/cdn/components/eun-toolbar.js +62 -52
- package/dist/cdn/components/eun-tooltip.js +30 -14
- package/dist/cdn/styles/breakpoints.scss +8 -0
- package/dist/cdn/styles/eunomia-grid.scss +6 -0
- package/dist/cdn/styles/eunomia-themes.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
- package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
- package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
- package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
- package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
- package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
- package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
- package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
- package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
- package/dist/components/action/button/button.d.ts +51 -19
- package/dist/components/action/button/button.js +107 -24
- package/dist/components/action/button/button.styles.js +115 -62
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +10 -10
- package/dist/components/action/dropdown-button/dropdown-button.js +18 -17
- package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
- package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
- package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
- package/dist/components/action/fab/fab.d.ts +7 -6
- package/dist/components/action/fab/fab.js +11 -8
- package/dist/components/action/fab/fab.styles.js +18 -17
- package/dist/components/action/link/link.d.ts +72 -9
- package/dist/components/action/link/link.js +183 -23
- package/dist/components/action/link/link.styles.js +146 -10
- package/dist/components/action/shared-styles/button-palette.styles.d.ts +3 -3
- package/dist/components/action/shared-styles/button-palette.styles.js +29 -29
- package/dist/components/action/toggle/toggle-group.d.ts +17 -5
- package/dist/components/action/toggle/toggle-group.js +46 -19
- package/dist/components/action/toggle/toggle-group.styles.d.ts +4 -1
- package/dist/components/action/toggle/toggle-group.styles.js +56 -27
- package/dist/components/action/toggle/toggle-item.d.ts +4 -4
- package/dist/components/action/toggle/toggle-item.js +2 -2
- package/dist/components/action/toggle/toggle-item.styles.js +20 -17
- package/dist/components/action/toggle/toggle.d.ts +2 -0
- package/dist/components/action/toggle/toggle.js +2 -0
- package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
- package/dist/components/action/toggle/toggle.styles.js +12 -8
- package/dist/components/alert/alert/alert.d.ts +2 -0
- package/dist/components/alert/alert/alert.js +2 -0
- package/dist/components/alert/alert/alert.styles.js +23 -13
- package/dist/components/alert/drawer/drawer.d.ts +3 -1
- package/dist/components/alert/drawer/drawer.js +5 -3
- package/dist/components/alert/drawer/drawer.styles.js +25 -9
- package/dist/components/alert/modal/modal.d.ts +11 -9
- package/dist/components/alert/modal/modal.js +15 -13
- package/dist/components/alert/modal/modal.styles.js +16 -7
- package/dist/components/alert/toast/toast.d.ts +2 -0
- package/dist/components/alert/toast/toast.js +2 -0
- package/dist/components/alert/toast/toast.styles.js +37 -15
- package/dist/components/content/badge/badge.d.ts +6 -6
- package/dist/components/content/badge/badge.js +4 -4
- package/dist/components/content/badge/badge.styles.js +4 -4
- package/dist/components/content/card/card.d.ts +39 -7
- package/dist/components/content/card/card.js +71 -7
- package/dist/components/content/card/card.styles.js +58 -11
- package/dist/components/content/card/image-card.d.ts +62 -7
- package/dist/components/content/card/image-card.js +121 -11
- package/dist/components/content/card/image-card.styles.js +66 -15
- package/dist/components/content/card/sliding-card.d.ts +4 -1
- package/dist/components/content/card/sliding-card.js +3 -0
- package/dist/components/content/card/sliding-card.styles.js +5 -1
- package/dist/components/content/collapse/collapse.d.ts +39 -12
- package/dist/components/content/collapse/collapse.js +65 -25
- package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
- package/dist/components/content/collapse/collapse.styles.js +69 -18
- package/dist/components/content/description-list/description-list.d.ts +87 -0
- package/dist/components/content/description-list/description-list.js +107 -0
- package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
- package/dist/components/content/description-list/description-list.styles.js +185 -0
- package/dist/components/content/icon/icon.d.ts +14 -2
- package/dist/components/content/icon/icon.js +54 -22
- package/dist/components/content/icon/icon.style.d.ts +2 -0
- package/dist/components/content/icon/icon.style.js +8 -2
- package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
- package/dist/components/content/image-carousel/image-carousel.js +48 -45
- package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
- package/dist/components/content/password-strength/password-strength.styles.js +5 -1
- package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
- package/dist/components/content/shared-styles/card-link.styles.js +5 -3
- package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
- package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
- package/dist/components/content/tag/tag.d.ts +4 -0
- package/dist/components/content/tag/tag.js +4 -0
- package/dist/components/content/tag/tag.styles.js +14 -4
- package/dist/components/content/tooltip/tooltip.d.ts +3 -2
- package/dist/components/content/tooltip/tooltip.js +9 -16
- package/dist/components/content/tooltip/tooltip.styles.js +25 -7
- package/dist/components/form/checkbox/check-card.d.ts +4 -1
- package/dist/components/form/checkbox/check-card.js +4 -1
- package/dist/components/form/checkbox/check-card.styles.js +13 -4
- package/dist/components/form/checkbox/checkbox-list.d.ts +4 -1
- package/dist/components/form/checkbox/checkbox-list.js +11 -7
- package/dist/components/form/checkbox/checkbox.d.ts +4 -1
- package/dist/components/form/checkbox/checkbox.js +4 -1
- package/dist/components/form/checkbox/checkbox.styles.js +2 -2
- package/dist/components/form/color-picker/color-picker.d.ts +10 -4
- package/dist/components/form/color-picker/color-picker.js +23 -25
- package/dist/components/form/color-picker/color-picker.styles.js +6 -5
- package/dist/components/form/counter/counter.d.ts +7 -4
- package/dist/components/form/counter/counter.js +8 -5
- package/dist/components/form/counter/counter.styles.js +10 -9
- package/dist/components/form/date-picker/date-picker.d.ts +40 -36
- package/dist/components/form/date-picker/date-picker.js +35 -45
- package/dist/components/form/date-picker/date-picker.styles.js +13 -10
- package/dist/components/form/input/input.d.ts +10 -4
- package/dist/components/form/input/input.js +12 -6
- package/dist/components/form/input-file/input-file.d.ts +4 -1
- package/dist/components/form/input-file/input-file.js +8 -5
- package/dist/components/form/input-file/input-file.styles.js +3 -2
- package/dist/components/form/input-phone/input-phone.d.ts +11 -5
- package/dist/components/form/input-phone/input-phone.js +16 -20
- package/dist/components/form/input-phone/input-phone.styles.js +16 -16
- package/dist/components/form/label/label.styles.js +3 -3
- package/dist/components/form/radio/radio-card.d.ts +5 -2
- package/dist/components/form/radio/radio-card.js +5 -2
- package/dist/components/form/radio/radio-card.styles.js +14 -5
- package/dist/components/form/radio/radio-list.d.ts +5 -2
- package/dist/components/form/radio/radio-list.js +14 -10
- package/dist/components/form/radio/radio.d.ts +5 -2
- package/dist/components/form/radio/radio.js +5 -2
- package/dist/components/form/radio/radio.styles.js +4 -4
- package/dist/components/form/search/search.d.ts +2 -1
- package/dist/components/form/search/search.js +6 -15
- package/dist/components/form/search/search.styles.js +8 -7
- package/dist/components/form/select/select.d.ts +12 -5
- package/dist/components/form/select/select.js +18 -21
- package/dist/components/form/select/select.styles.js +3 -2
- package/dist/components/form/shared-styles/card.styles.js +5 -4
- package/dist/components/form/shared-styles/field.styles.js +21 -11
- package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
- package/dist/components/form/slider/slider.d.ts +4 -1
- package/dist/components/form/slider/slider.js +5 -2
- package/dist/components/form/slider/slider.styles.js +8 -7
- package/dist/components/form/switch/switch.d.ts +4 -1
- package/dist/components/form/switch/switch.js +4 -1
- package/dist/components/form/switch/switch.styles.js +7 -5
- package/dist/components/form/textarea/textarea.d.ts +10 -4
- package/dist/components/form/textarea/textarea.js +18 -12
- package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
- package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
- package/dist/components/form/time-picker/time-picker.d.ts +9 -5
- package/dist/components/form/time-picker/time-picker.js +25 -29
- package/dist/components/form/time-picker/time-picker.styles.js +9 -8
- package/dist/components/layout/animate/animate.d.ts +41 -11
- package/dist/components/layout/animate/animate.js +48 -16
- package/dist/components/layout/animate/animate.styles.js +9 -16
- package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
- package/dist/components/layout/infinite-list/infinite-list.js +115 -18
- package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
- package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
- package/dist/components/loader/loader/loader.styles.js +3 -1
- package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
- package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
- package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
- package/dist/components/navigation/carousel/carousel.d.ts +30 -10
- package/dist/components/navigation/carousel/carousel.js +37 -18
- package/dist/components/navigation/carousel/carousel.styles.js +60 -20
- package/dist/components/navigation/pagination/pagination.styles.js +8 -3
- package/dist/components/navigation/sidebar/sidebar.d.ts +2 -0
- package/dist/components/navigation/sidebar/sidebar.js +2 -0
- package/dist/components/navigation/sidebar/sidebar.styles.js +27 -11
- package/dist/components/navigation/stepper/step.styles.js +16 -5
- package/dist/components/navigation/stepper/stepper.styles.js +16 -5
- package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
- package/dist/components/navigation/tabs/tab/tab.js +11 -0
- package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
- package/dist/components/navigation/tabs/tab-group/tab-group.js +7 -8
- package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +19 -14
- package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
- package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
- package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
- package/dist/components/navigation/toolbar/toolbar.d.ts +17 -49
- package/dist/components/navigation/toolbar/toolbar.js +23 -71
- package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
- package/dist/events/table-row-click.event.d.ts +5 -4
- package/dist/events/table-row-click.event.js +10 -5
- package/dist/features/scheduler/calendar/calendar.d.ts +12 -12
- package/dist/features/scheduler/calendar/calendar.js +15 -14
- package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
- package/dist/features/scheduler/scheduler/scheduler.d.ts +7 -7
- package/dist/features/scheduler/scheduler/scheduler.js +21 -35
- package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
- package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +12 -8
- package/dist/features/scheduler/scheduler-event/scheduler-event.js +9 -7
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +16 -10
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +5 -5
- package/dist/features/scheduler/shared/scheduler-event-popover.js +2 -2
- package/dist/features/scheduler/shared/scheduler-hour-grid.d.ts +2 -2
- package/dist/features/scheduler/shared/scheduler-hour-grid.js +3 -3
- package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
- package/dist/features/scheduler/shared/scheduler-month-view.d.ts +3 -3
- package/dist/features/scheduler/shared/scheduler-month-view.js +2 -2
- package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
- package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
- package/dist/features/table/table/table-native.styles.d.ts +28 -0
- package/dist/features/table/table/table-native.styles.js +502 -0
- package/dist/features/table/table/table.d.ts +342 -294
- package/dist/features/table/table/table.js +820 -546
- package/dist/features/table/table/table.styles.js +31 -17
- package/dist/features/table/table/table.types.d.ts +18 -23
- package/dist/features/table/table/table.utils.d.ts +6 -36
- package/dist/features/table/table/table.utils.js +16 -65
- package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
- package/dist/features/table/table-action-bar/table-action-bar.js +18 -25
- package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
- package/dist/i18n/en.d.ts +34 -0
- package/dist/i18n/en.js +34 -0
- package/dist/i18n/fr.js +38 -0
- package/dist/index.d.ts +7 -13
- package/dist/index.js +6 -10
- package/dist/jsx.d.ts +1 -1
- package/dist/mixins/button.mixin.d.ts +10 -9
- package/dist/mixins/button.mixin.js +14 -6
- package/dist/mixins/card-link.mixin.d.ts +3 -2
- package/dist/mixins/card-link.mixin.js +12 -5
- package/dist/mixins/check.mixin.js +4 -5
- package/dist/mixins/disabled.mixin.d.ts +3 -3
- package/dist/mixins/disabled.mixin.js +10 -5
- package/dist/mixins/field-appearance.mixin.d.ts +19 -0
- package/dist/mixins/{field-variant.mixin.js → field-appearance.mixin.js} +11 -11
- package/dist/mixins/form.mixin.d.ts +17 -1
- package/dist/mixins/form.mixin.js +80 -25
- package/dist/mixins/radio.mixin.js +4 -5
- package/dist/mixins/validators.mixin.d.ts +7 -1
- package/dist/mixins/validators.mixin.js +36 -17
- package/dist/ssr/animate-ssr.css +27 -72
- package/dist/ssr/button-ssr.css +319 -0
- package/dist/ssr/card-ssr.css +184 -0
- package/dist/ssr/description-list-ssr.css +150 -0
- package/dist/ssr/links-ssr.css +35 -0
- package/dist/ssr/overlay-ssr.css +0 -41
- package/dist/ssr/rich-text.css +38 -0
- package/dist/ssr/sidebar-ssr.css +0 -38
- package/dist/ssr/table-ssr.css +472 -0
- package/dist/ssr/tag-ssr.css +197 -0
- package/dist/ssr/toolbar-ssr.css +77 -39
- package/dist/types/variant.type.d.ts +26 -10
- package/dist/utils/drag-drop.utils.js +18 -2
- package/dist/utils/dropdown-menu.utils.d.ts +2 -2
- package/dist/utils/dropdown-menu.utils.js +4 -14
- package/dist/utils/light-dom-styles.utils.d.ts +14 -0
- package/dist/utils/light-dom-styles.utils.js +37 -0
- package/dist/utils/media.styles.d.ts +19 -0
- package/dist/utils/media.styles.js +23 -0
- package/dist/utils/motion.utils.d.ts +40 -0
- package/dist/utils/motion.utils.js +51 -0
- package/dist/utils/navigation.utils.d.ts +14 -0
- package/dist/utils/navigation.utils.js +33 -0
- package/dist/utils/new-tab-anchor.controller.d.ts +44 -0
- package/dist/utils/new-tab-anchor.controller.js +102 -0
- package/dist/utils/severity-icon.utils.d.ts +1 -1
- package/dist/utils/severity-icon.utils.js +1 -1
- package/dist/utils/theme-generator.utils.d.ts +9 -2
- package/dist/utils/theme-generator.utils.js +62 -21
- package/package.json +24 -29
- package/styles/breakpoints.scss +8 -0
- package/styles/eunomia-grid.scss +6 -0
- package/styles/themes/eunomia-theme.scss +4 -3
- package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
- package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
- package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
- package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
- package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
- package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
- package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
- package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
- package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
- package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
- package/dist/cdn/components/chunks/chunk-2JLDJFYD.js +0 -48
- package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
- package/dist/cdn/components/chunks/chunk-ATH2OAMU.js +0 -1
- package/dist/cdn/components/chunks/chunk-BKHD4S57.js +0 -1
- package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
- package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
- package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
- package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
- package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
- package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
- package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
- package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
- package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
- package/dist/cdn/components/chunks/chunk-T7WABJEJ.js +0 -1
- package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
- package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
- package/dist/cdn/components/chunks/chunk-XSMCT4DF.js +0 -1
- package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
- package/dist/cdn/components/eun-table-cell.js +0 -1
- package/dist/cdn/components/eun-table-column.js +0 -1
- package/dist/cdn/components/eun-table-header.js +0 -1
- package/dist/cdn/components/eun-table-item.js +0 -1
- package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
- package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
- package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
- package/dist/features/table/native-table.css +0 -276
- package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
- package/dist/features/table/shared-styles/table-row.styles.js +0 -47
- package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
- package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
- package/dist/features/table/table-cell/table-cell.d.ts +0 -59
- package/dist/features/table/table-cell/table-cell.js +0 -73
- package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
- package/dist/features/table/table-cell/table-cell.styles.js +0 -46
- package/dist/features/table/table-column/table-column.d.ts +0 -73
- package/dist/features/table/table-column/table-column.js +0 -89
- package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
- package/dist/features/table/table-column/table-column.styles.js +0 -51
- package/dist/features/table/table-header/table-header.d.ts +0 -102
- package/dist/features/table/table-header/table-header.js +0 -165
- package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
- package/dist/features/table/table-header/table-header.styles.js +0 -147
- package/dist/features/table/table-item/table-item.d.ts +0 -179
- package/dist/features/table/table-item/table-item.js +0 -291
- package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
- package/dist/features/table/table-item/table-item.styles.js +0 -404
- package/dist/features/table/table-managed/table-managed.d.ts +0 -19
- package/dist/features/table/table-managed/table-managed.js +0 -128
- package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
- package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
- package/dist/mixins/field-variant.mixin.d.ts +0 -22
- package/dist/mixins/table-row.mixin.d.ts +0 -37
- package/dist/mixins/table-row.mixin.js +0 -103
- package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { LitElement, TemplateResult } from "lit";
|
|
1
|
+
import { LitElement, PropertyValues, TemplateResult } from "lit";
|
|
2
2
|
/**
|
|
3
3
|
* Tag name of the image card component.
|
|
4
4
|
*/
|
|
5
5
|
export declare const EunomiaImageCardTagName = "eun-image-card";
|
|
6
|
-
declare const EunomiaImageCard_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/card-link.mixin.js").CardLinkMixinInterface> & typeof LitElement;
|
|
6
|
+
declare const EunomiaImageCard_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/card-link.mixin.js").CardLinkMixinInterface & import("../../../mixins/localizable.mixin.js").LocalizableMixinInterface> & typeof LitElement;
|
|
7
7
|
/**
|
|
8
8
|
* An image header with a title and description footer, such as a blog post
|
|
9
9
|
* preview, a product tile, or a team member card. It shares the same CSS
|
|
@@ -11,33 +11,52 @@ declare const EunomiaImageCard_base: import("../../../utils/constructor.type.js"
|
|
|
11
11
|
* family.
|
|
12
12
|
*
|
|
13
13
|
* Like every card in this family, setting href turns the whole card into a
|
|
14
|
-
* link.
|
|
14
|
+
* link. Without href, a native anchor slotted into title links the whole
|
|
15
|
+
* card instead, stretched over its surface, so the link exists in the
|
|
16
|
+
* server-rendered HTML and can be a framework's own link component. When
|
|
17
|
+
* it opens in a new tab, the card shows the external link badge and
|
|
18
|
+
* announces it through the anchor's aria-description.
|
|
19
|
+
*
|
|
20
|
+
* The footer stretches to the card's height, so a card in a grid row can
|
|
21
|
+
* push its last line to the bottom with margin-top auto. It isn't
|
|
22
|
+
* rendered at all while title and description are both empty.
|
|
15
23
|
*
|
|
16
24
|
* @slot [image] - The card's image, as a plain image element shown edge to edge, ignoring padding. The alt text is the author's own responsibility: describe the image, or leave it empty when it's purely decorative and the title or description already convey the same information
|
|
17
|
-
* @slot [title] - The card's title, below the image. Use a heading element at whatever level fits the surrounding page structure
|
|
18
|
-
* @slot [description] - The card's description, below the title
|
|
25
|
+
* @slot [title] - The card's title, below the image. Use a heading element at whatever level fits the surrounding page structure. A native anchor slotted here links the whole card when href is unset. The title typography is inherited, so a composition styles its own parts freely
|
|
26
|
+
* @slot [description] - The card's description, below the title. Its typography is inherited too
|
|
19
27
|
* @csspart card - The outer box, a link once href is set, a plain container otherwise. Exposed for effects the card's CSS custom properties don't cover, such as a hover accent
|
|
28
|
+
* @csspart footer - The box holding the title and description, below the image
|
|
20
29
|
* @prop {string} href - The URL the card navigates to. When set, the card renders as a link instead of a plain wrapper
|
|
21
30
|
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link badge and announces it to assistive technology
|
|
31
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
22
32
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
23
|
-
* @attr {string} aria-label - An accessible label that overrides the card content. When the card also opens in a new tab, a note announcing it is appended automatically
|
|
33
|
+
* @attr {string} aria-label - An accessible label that overrides the card content. When the card also opens in a new tab, a note announcing it is appended automatically. Ignored with a slotted anchor, which takes it instead
|
|
24
34
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
25
35
|
* @cssprop [--card-padding] - Sets the padding of the footer, holding the title and description
|
|
36
|
+
* @cssprop [--card-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --card-padding is set
|
|
37
|
+
* @cssprop [--card-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --card-padding is set
|
|
26
38
|
* @cssprop [--card-gap] - Sets the gap between the title and description
|
|
27
39
|
* @cssprop [--card-border-radius] - Sets the corner radius of the card
|
|
28
40
|
* @cssprop [--card-border-color] - Sets the border color of the card
|
|
29
41
|
* @cssprop [--card-border-width] - Sets the width of the border
|
|
30
42
|
* @cssprop [--card-background] - Sets the background color of the card
|
|
31
43
|
* @cssprop [--card-shadow] - Sets a box shadow, none by default
|
|
44
|
+
* @cssprop [--card-hover-shadow] - Sets the box shadow on hover or focus, linked or not. Defaults to the resting shadow
|
|
45
|
+
* @cssprop [--card-overflow] - Sets the overflow of the card, hidden by default so the image follows the rounded corners
|
|
32
46
|
* @cssprop [--card-hover-transform] - Sets a transform applied on hover or focus, for linked cards only, defaulting to a small lift
|
|
33
47
|
* @cssprop [--card-hover-border-color] - Sets the border color on hover or focus. Defaults to the primary color when `href` is set, otherwise the border stays exactly as it is at rest — hovering a non-link card gives no color feedback, since there's nothing to click
|
|
34
48
|
* @cssprop [--card-hover-background] - Sets the background color on hover or focus, linked or not, unchanged by default
|
|
35
49
|
* @cssprop [--card-hover-duration] - Sets the duration of the hover transition
|
|
36
50
|
* @cssprop [--card-transition] - Overrides the card's whole hover transition, for example to animate an extra property alongside the built-in ones. Defaults to transform, box shadow, background color, and border color
|
|
37
51
|
* @cssprop [--card-focus-outline-color] - Sets the focus outline color, for linked cards only
|
|
38
|
-
* @cssprop [--image-card-image-height] - Sets the height of the image
|
|
52
|
+
* @cssprop [--image-card-image-height] - Sets the height of the image, 180px by default. Set it to auto to size the image from its aspect ratio instead
|
|
53
|
+
* @cssprop [--image-card-image-aspect-ratio] - Sets the aspect ratio of the image, such as 4 / 3. Only applies once --image-card-image-height is auto
|
|
39
54
|
* @cssprop [--image-card-title-size] - Sets the font size of the title
|
|
55
|
+
* @cssprop [--image-card-title-weight] - Sets the font weight of the title
|
|
56
|
+
* @cssprop [--image-card-title-color] - Sets the color of the title
|
|
40
57
|
* @cssprop [--image-card-description-size] - Sets the font size of the description
|
|
58
|
+
* @cssprop [--image-card-description-weight] - Sets the font weight of the description
|
|
59
|
+
* @cssprop [--image-card-description-color] - Sets the color of the description
|
|
41
60
|
* @cssprop [--card-link-badge-offset] - Sets the inset of the external link badge from the card's top and right edges
|
|
42
61
|
* @cssprop [--card-link-badge-size] - Sets the diameter of the external link badge
|
|
43
62
|
* @cssprop [--card-link-badge-background] - Sets the background color of the external link badge
|
|
@@ -45,6 +64,7 @@ declare const EunomiaImageCard_base: import("../../../utils/constructor.type.js"
|
|
|
45
64
|
* @element eun-image-card
|
|
46
65
|
*/
|
|
47
66
|
export declare class EunomiaImageCard extends EunomiaImageCard_base {
|
|
67
|
+
#private;
|
|
48
68
|
/**
|
|
49
69
|
* Styles to import to the component.
|
|
50
70
|
*
|
|
@@ -53,6 +73,41 @@ export declare class EunomiaImageCard extends EunomiaImageCard_base {
|
|
|
53
73
|
* @readonly
|
|
54
74
|
*/
|
|
55
75
|
static readonly styles: import("lit").CSSResult[];
|
|
76
|
+
/**
|
|
77
|
+
* Whether the slotted anchor has keyboard focus. The ring is drawn on
|
|
78
|
+
* the card itself, since the card clips its content and an outline
|
|
79
|
+
* around the stretched anchor would be cut off.
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
private anchorFocusVisible;
|
|
83
|
+
/**
|
|
84
|
+
* The native `<a>` slotted into `title` while `href` is unset, which
|
|
85
|
+
* then links the whole card. Navigation, `target`/`rel` and the new-tab
|
|
86
|
+
* hint are the consumer's own in this mode.
|
|
87
|
+
* @internal
|
|
88
|
+
*/
|
|
89
|
+
private get slottedAnchor();
|
|
90
|
+
/**
|
|
91
|
+
* Whether anything is slotted into `title` or `description`. The footer
|
|
92
|
+
* isn't rendered otherwise, so an image-only card has no empty band
|
|
93
|
+
* under its image.
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
private get hasFooterContent();
|
|
97
|
+
connectedCallback(): void;
|
|
98
|
+
disconnectedCallback(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Tracks keyboard focus on the slotted anchor.
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
private handleFocusChange;
|
|
104
|
+
/**
|
|
105
|
+
* Re-renders when a slot changes, so an anchor or a footer slot added or
|
|
106
|
+
* removed after the first render is picked up.
|
|
107
|
+
* @private
|
|
108
|
+
*/
|
|
109
|
+
private handleSlotChange;
|
|
110
|
+
protected updated(changed: PropertyValues): void;
|
|
56
111
|
render(): TemplateResult;
|
|
57
112
|
}
|
|
58
113
|
declare global {
|
|
@@ -4,9 +4,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _EunomiaImageCard_newTab;
|
|
13
|
+
import { customElement, state } from "lit/decorators.js";
|
|
8
14
|
import { html, LitElement } from "lit";
|
|
15
|
+
import { classMap } from "lit/directives/class-map.js";
|
|
9
16
|
import { CardLinkMixin } from "../../../mixins/card-link.mixin.js";
|
|
17
|
+
import { warnIgnoredHostLinkAttributes } from "../../../utils/navigation.utils.js";
|
|
18
|
+
import { NewTabAnchorController } from "../../../utils/new-tab-anchor.controller.js";
|
|
10
19
|
import { imageCardStyles } from "./image-card.styles.js";
|
|
11
20
|
import { cardLinkStyles } from "../shared-styles/card-link.styles.js";
|
|
12
21
|
/**
|
|
@@ -20,33 +29,52 @@ export const EunomiaImageCardTagName = "eun-image-card";
|
|
|
20
29
|
* family.
|
|
21
30
|
*
|
|
22
31
|
* Like every card in this family, setting href turns the whole card into a
|
|
23
|
-
* link.
|
|
32
|
+
* link. Without href, a native anchor slotted into title links the whole
|
|
33
|
+
* card instead, stretched over its surface, so the link exists in the
|
|
34
|
+
* server-rendered HTML and can be a framework's own link component. When
|
|
35
|
+
* it opens in a new tab, the card shows the external link badge and
|
|
36
|
+
* announces it through the anchor's aria-description.
|
|
37
|
+
*
|
|
38
|
+
* The footer stretches to the card's height, so a card in a grid row can
|
|
39
|
+
* push its last line to the bottom with margin-top auto. It isn't
|
|
40
|
+
* rendered at all while title and description are both empty.
|
|
24
41
|
*
|
|
25
42
|
* @slot [image] - The card's image, as a plain image element shown edge to edge, ignoring padding. The alt text is the author's own responsibility: describe the image, or leave it empty when it's purely decorative and the title or description already convey the same information
|
|
26
|
-
* @slot [title] - The card's title, below the image. Use a heading element at whatever level fits the surrounding page structure
|
|
27
|
-
* @slot [description] - The card's description, below the title
|
|
43
|
+
* @slot [title] - The card's title, below the image. Use a heading element at whatever level fits the surrounding page structure. A native anchor slotted here links the whole card when href is unset. The title typography is inherited, so a composition styles its own parts freely
|
|
44
|
+
* @slot [description] - The card's description, below the title. Its typography is inherited too
|
|
28
45
|
* @csspart card - The outer box, a link once href is set, a plain container otherwise. Exposed for effects the card's CSS custom properties don't cover, such as a hover accent
|
|
46
|
+
* @csspart footer - The box holding the title and description, below the image
|
|
29
47
|
* @prop {string} href - The URL the card navigates to. When set, the card renders as a link instead of a plain wrapper
|
|
30
48
|
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link badge and announces it to assistive technology
|
|
49
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
31
50
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
32
|
-
* @attr {string} aria-label - An accessible label that overrides the card content. When the card also opens in a new tab, a note announcing it is appended automatically
|
|
51
|
+
* @attr {string} aria-label - An accessible label that overrides the card content. When the card also opens in a new tab, a note announcing it is appended automatically. Ignored with a slotted anchor, which takes it instead
|
|
33
52
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
34
53
|
* @cssprop [--card-padding] - Sets the padding of the footer, holding the title and description
|
|
54
|
+
* @cssprop [--card-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --card-padding is set
|
|
55
|
+
* @cssprop [--card-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --card-padding is set
|
|
35
56
|
* @cssprop [--card-gap] - Sets the gap between the title and description
|
|
36
57
|
* @cssprop [--card-border-radius] - Sets the corner radius of the card
|
|
37
58
|
* @cssprop [--card-border-color] - Sets the border color of the card
|
|
38
59
|
* @cssprop [--card-border-width] - Sets the width of the border
|
|
39
60
|
* @cssprop [--card-background] - Sets the background color of the card
|
|
40
61
|
* @cssprop [--card-shadow] - Sets a box shadow, none by default
|
|
62
|
+
* @cssprop [--card-hover-shadow] - Sets the box shadow on hover or focus, linked or not. Defaults to the resting shadow
|
|
63
|
+
* @cssprop [--card-overflow] - Sets the overflow of the card, hidden by default so the image follows the rounded corners
|
|
41
64
|
* @cssprop [--card-hover-transform] - Sets a transform applied on hover or focus, for linked cards only, defaulting to a small lift
|
|
42
65
|
* @cssprop [--card-hover-border-color] - Sets the border color on hover or focus. Defaults to the primary color when `href` is set, otherwise the border stays exactly as it is at rest — hovering a non-link card gives no color feedback, since there's nothing to click
|
|
43
66
|
* @cssprop [--card-hover-background] - Sets the background color on hover or focus, linked or not, unchanged by default
|
|
44
67
|
* @cssprop [--card-hover-duration] - Sets the duration of the hover transition
|
|
45
68
|
* @cssprop [--card-transition] - Overrides the card's whole hover transition, for example to animate an extra property alongside the built-in ones. Defaults to transform, box shadow, background color, and border color
|
|
46
69
|
* @cssprop [--card-focus-outline-color] - Sets the focus outline color, for linked cards only
|
|
47
|
-
* @cssprop [--image-card-image-height] - Sets the height of the image
|
|
70
|
+
* @cssprop [--image-card-image-height] - Sets the height of the image, 180px by default. Set it to auto to size the image from its aspect ratio instead
|
|
71
|
+
* @cssprop [--image-card-image-aspect-ratio] - Sets the aspect ratio of the image, such as 4 / 3. Only applies once --image-card-image-height is auto
|
|
48
72
|
* @cssprop [--image-card-title-size] - Sets the font size of the title
|
|
73
|
+
* @cssprop [--image-card-title-weight] - Sets the font weight of the title
|
|
74
|
+
* @cssprop [--image-card-title-color] - Sets the color of the title
|
|
49
75
|
* @cssprop [--image-card-description-size] - Sets the font size of the description
|
|
76
|
+
* @cssprop [--image-card-description-weight] - Sets the font weight of the description
|
|
77
|
+
* @cssprop [--image-card-description-color] - Sets the color of the description
|
|
50
78
|
* @cssprop [--card-link-badge-offset] - Sets the inset of the external link badge from the card's top and right edges
|
|
51
79
|
* @cssprop [--card-link-badge-size] - Sets the diameter of the external link badge
|
|
52
80
|
* @cssprop [--card-link-badge-background] - Sets the background color of the external link badge
|
|
@@ -54,21 +82,100 @@ export const EunomiaImageCardTagName = "eun-image-card";
|
|
|
54
82
|
* @element eun-image-card
|
|
55
83
|
*/
|
|
56
84
|
let EunomiaImageCard = class EunomiaImageCard extends CardLinkMixin(LitElement) {
|
|
85
|
+
constructor() {
|
|
86
|
+
super(...arguments);
|
|
87
|
+
/**
|
|
88
|
+
* Whether the slotted anchor has keyboard focus. The ring is drawn on
|
|
89
|
+
* the card itself, since the card clips its content and an outline
|
|
90
|
+
* around the stretched anchor would be cut off.
|
|
91
|
+
* @internal
|
|
92
|
+
*/
|
|
93
|
+
this.anchorFocusVisible = false;
|
|
94
|
+
/**
|
|
95
|
+
* Announces the slotted anchor opening in a new tab.
|
|
96
|
+
* @internal
|
|
97
|
+
*/
|
|
98
|
+
_EunomiaImageCard_newTab.set(this, new NewTabAnchorController(this, () => this.slottedAnchor, () => this.dictionary.link.opensInNewTab));
|
|
99
|
+
/**
|
|
100
|
+
* Tracks keyboard focus on the slotted anchor.
|
|
101
|
+
* @private
|
|
102
|
+
*/
|
|
103
|
+
this.handleFocusChange = () => {
|
|
104
|
+
const anchor = this.slottedAnchor;
|
|
105
|
+
this.anchorFocusVisible =
|
|
106
|
+
!!anchor &&
|
|
107
|
+
anchor === document.activeElement &&
|
|
108
|
+
anchor.matches(":focus-visible");
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Re-renders when a slot changes, so an anchor or a footer slot added or
|
|
112
|
+
* removed after the first render is picked up.
|
|
113
|
+
* @private
|
|
114
|
+
*/
|
|
115
|
+
this.handleSlotChange = () => {
|
|
116
|
+
this.requestUpdate();
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The native `<a>` slotted into `title` while `href` is unset, which
|
|
121
|
+
* then links the whole card. Navigation, `target`/`rel` and the new-tab
|
|
122
|
+
* hint are the consumer's own in this mode.
|
|
123
|
+
* @internal
|
|
124
|
+
*/
|
|
125
|
+
get slottedAnchor() {
|
|
126
|
+
return this.href ? null : this.querySelector(':scope > a[slot="title"]');
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Whether anything is slotted into `title` or `description`. The footer
|
|
130
|
+
* isn't rendered otherwise, so an image-only card has no empty band
|
|
131
|
+
* under its image.
|
|
132
|
+
* @internal
|
|
133
|
+
*/
|
|
134
|
+
get hasFooterContent() {
|
|
135
|
+
return !!this.querySelector(':scope > [slot="title"], :scope > [slot="description"]');
|
|
136
|
+
}
|
|
137
|
+
connectedCallback() {
|
|
138
|
+
super.connectedCallback();
|
|
139
|
+
this.addEventListener("focusin", this.handleFocusChange);
|
|
140
|
+
this.addEventListener("focusout", this.handleFocusChange);
|
|
141
|
+
}
|
|
142
|
+
disconnectedCallback() {
|
|
143
|
+
this.removeEventListener("focusin", this.handleFocusChange);
|
|
144
|
+
this.removeEventListener("focusout", this.handleFocusChange);
|
|
145
|
+
super.disconnectedCallback();
|
|
146
|
+
}
|
|
147
|
+
updated(changed) {
|
|
148
|
+
super.updated(changed);
|
|
149
|
+
if (this.slottedAnchor) {
|
|
150
|
+
warnIgnoredHostLinkAttributes(this);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
57
153
|
render() {
|
|
58
154
|
const inner = html `
|
|
59
155
|
<slot name="image"></slot>
|
|
60
|
-
<div id="footer">
|
|
61
|
-
<slot name="title"></slot>
|
|
62
|
-
<slot name="description"></slot>
|
|
156
|
+
<div id="footer" part="footer" ?hidden=${!this.hasFooterContent}>
|
|
157
|
+
<slot name="title" @slotchange=${this.handleSlotChange}></slot>
|
|
158
|
+
<slot name="description" @slotchange=${this.handleSlotChange}></slot>
|
|
63
159
|
</div>
|
|
64
|
-
${this.renderExternalLinkBadge()}
|
|
160
|
+
${this.renderExternalLinkBadge(__classPrivateFieldGet(this, _EunomiaImageCard_newTab, "f").isBlank)}
|
|
65
161
|
`;
|
|
66
162
|
if (this.href) {
|
|
67
163
|
return this.renderCardLink("card", inner);
|
|
68
164
|
}
|
|
69
|
-
|
|
165
|
+
const anchored = !!this.slottedAnchor;
|
|
166
|
+
return html `<div
|
|
167
|
+
id="card"
|
|
168
|
+
part="card"
|
|
169
|
+
class=${classMap({
|
|
170
|
+
"slotted-link": anchored,
|
|
171
|
+
"focus-visible": anchored && this.anchorFocusVisible,
|
|
172
|
+
})}
|
|
173
|
+
>
|
|
174
|
+
${inner}
|
|
175
|
+
</div>`;
|
|
70
176
|
}
|
|
71
177
|
};
|
|
178
|
+
_EunomiaImageCard_newTab = new WeakMap();
|
|
72
179
|
/**
|
|
73
180
|
* Styles to import to the component.
|
|
74
181
|
*
|
|
@@ -77,6 +184,9 @@ let EunomiaImageCard = class EunomiaImageCard extends CardLinkMixin(LitElement)
|
|
|
77
184
|
* @readonly
|
|
78
185
|
*/
|
|
79
186
|
EunomiaImageCard.styles = [imageCardStyles, cardLinkStyles];
|
|
187
|
+
__decorate([
|
|
188
|
+
state()
|
|
189
|
+
], EunomiaImageCard.prototype, "anchorFocusVisible", void 0);
|
|
80
190
|
EunomiaImageCard = __decorate([
|
|
81
191
|
customElement(EunomiaImageCardTagName)
|
|
82
192
|
], EunomiaImageCard);
|
|
@@ -16,10 +16,13 @@ const base = css `
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
#card {
|
|
19
|
-
display:
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-direction: column;
|
|
21
|
+
position: relative;
|
|
22
|
+
isolation: isolate;
|
|
20
23
|
box-sizing: border-box;
|
|
21
24
|
height: 100%;
|
|
22
|
-
overflow: hidden;
|
|
25
|
+
overflow: var(--card-overflow, hidden);
|
|
23
26
|
border-radius: var(--card-border-radius, var(--eun-border-radius-m, 8px));
|
|
24
27
|
border: var(--card-border-width, var(--eun-border-width-s, 1px)) solid
|
|
25
28
|
var(--card-border-color, var(--eun-border-color, #dee0e7));
|
|
@@ -29,10 +32,14 @@ const base = css `
|
|
|
29
32
|
text-decoration: none;
|
|
30
33
|
transition: var(
|
|
31
34
|
--card-transition,
|
|
32
|
-
transform var(--card-hover-duration,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
transform var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
36
|
+
var(--eun-easing-default, ease),
|
|
37
|
+
box-shadow var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
38
|
+
var(--eun-easing-default, ease),
|
|
39
|
+
background-color var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
40
|
+
var(--eun-easing-default, ease),
|
|
41
|
+
border-color var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
42
|
+
var(--eun-easing-default, ease)
|
|
36
43
|
);
|
|
37
44
|
}
|
|
38
45
|
|
|
@@ -49,6 +56,7 @@ const base = css `
|
|
|
49
56
|
#card:hover,
|
|
50
57
|
#card:focus-visible {
|
|
51
58
|
border-color: var(--card-hover-border-color, var(--_hoverBorderDefault));
|
|
59
|
+
box-shadow: var(--card-hover-shadow, var(--card-shadow, none));
|
|
52
60
|
background: var(
|
|
53
61
|
--card-hover-background,
|
|
54
62
|
var(--card-background, var(--eun-surface-color, #ffffff))
|
|
@@ -56,28 +64,63 @@ const base = css `
|
|
|
56
64
|
}
|
|
57
65
|
|
|
58
66
|
:host([href]) #card:hover,
|
|
59
|
-
:host([href]) #card:focus-visible
|
|
67
|
+
:host([href]) #card:focus-visible,
|
|
68
|
+
#card.slotted-link:hover,
|
|
69
|
+
#card.focus-visible {
|
|
60
70
|
transform: var(--card-hover-transform, translateY(-4px));
|
|
61
71
|
}
|
|
62
72
|
|
|
63
|
-
|
|
73
|
+
#card.slotted-link {
|
|
74
|
+
--_hoverBorderDefault: var(--eun-color-primary-500, #3d6fff);
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
}
|
|
77
|
+
#card.focus-visible {
|
|
78
|
+
border-color: var(--card-hover-border-color, var(--_hoverBorderDefault));
|
|
79
|
+
box-shadow: var(--card-hover-shadow, var(--card-shadow, none));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
a#card:focus-visible,
|
|
83
|
+
#card.focus-visible {
|
|
64
84
|
outline: 2px solid
|
|
65
85
|
var(--card-focus-outline-color, var(--eun-color-primary-500, #3d6fff));
|
|
66
86
|
outline-offset: 2px;
|
|
67
87
|
}
|
|
68
88
|
|
|
89
|
+
::slotted(a[slot="title"]) {
|
|
90
|
+
color: inherit;
|
|
91
|
+
text-decoration: none;
|
|
92
|
+
outline: none !important;
|
|
93
|
+
}
|
|
94
|
+
::slotted(a[slot="title"])::after {
|
|
95
|
+
content: "";
|
|
96
|
+
position: absolute;
|
|
97
|
+
inset: 0;
|
|
98
|
+
z-index: 1;
|
|
99
|
+
}
|
|
100
|
+
|
|
69
101
|
::slotted([slot="image"]) {
|
|
70
102
|
display: block;
|
|
103
|
+
flex: none;
|
|
71
104
|
width: 100%;
|
|
72
105
|
height: var(--image-card-image-height, 180px);
|
|
106
|
+
aspect-ratio: var(--image-card-image-aspect-ratio, auto);
|
|
73
107
|
object-fit: cover;
|
|
74
108
|
}
|
|
75
109
|
|
|
76
110
|
#footer {
|
|
111
|
+
flex: 1;
|
|
77
112
|
display: flex;
|
|
78
113
|
flex-direction: column;
|
|
79
114
|
gap: var(--card-gap, var(--eun-space-s, 8px));
|
|
80
|
-
padding: var(
|
|
115
|
+
padding: var(
|
|
116
|
+
--card-padding,
|
|
117
|
+
var(--card-padding-block, var(--eun-space-m, 16px))
|
|
118
|
+
var(--card-padding-inline, var(--eun-space-m, 16px))
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
#footer[hidden] {
|
|
123
|
+
display: none;
|
|
81
124
|
}
|
|
82
125
|
|
|
83
126
|
::slotted(h1),
|
|
@@ -89,18 +132,26 @@ const base = css `
|
|
|
89
132
|
::slotted(p) {
|
|
90
133
|
margin: 0;
|
|
91
134
|
padding: 0;
|
|
135
|
+
font-size: inherit;
|
|
136
|
+
font-weight: inherit;
|
|
92
137
|
}
|
|
93
138
|
|
|
94
|
-
|
|
95
|
-
font-weight: var(--eun-font-weight-l, 700);
|
|
139
|
+
slot[name="title"] {
|
|
140
|
+
font-weight: var(--image-card-title-weight, var(--eun-font-weight-l, 700));
|
|
96
141
|
font-size: var(--image-card-title-size, var(--eun-font-size-m, 16px));
|
|
97
|
-
color: var(--eun-text-color, #071621);
|
|
142
|
+
color: var(--image-card-title-color, var(--eun-text-color, #071621));
|
|
98
143
|
}
|
|
99
144
|
|
|
100
|
-
|
|
101
|
-
font-weight: var(
|
|
145
|
+
slot[name="description"] {
|
|
146
|
+
font-weight: var(
|
|
147
|
+
--image-card-description-weight,
|
|
148
|
+
var(--eun-font-weight-s, 300)
|
|
149
|
+
);
|
|
102
150
|
font-size: var(--image-card-description-size, var(--eun-font-size-s, 14px));
|
|
103
|
-
color: var(
|
|
151
|
+
color: var(
|
|
152
|
+
--image-card-description-color,
|
|
153
|
+
var(--eun-text-secondary, #484e61)
|
|
154
|
+
);
|
|
104
155
|
}
|
|
105
156
|
|
|
106
157
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -3,7 +3,7 @@ import { LitElement, TemplateResult } from "lit";
|
|
|
3
3
|
* Tag name of the sliding card component.
|
|
4
4
|
*/
|
|
5
5
|
export declare const EunomiaSlidingCardTagName = "eun-sliding-card";
|
|
6
|
-
declare const EunomiaSlidingCard_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/card-link.mixin.js").CardLinkMixinInterface> & typeof LitElement;
|
|
6
|
+
declare const EunomiaSlidingCard_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/card-link.mixin.js").CardLinkMixinInterface & import("../../../mixins/localizable.mixin.js").LocalizableMixinInterface> & typeof LitElement;
|
|
7
7
|
/**
|
|
8
8
|
* A card with a two layer slide reveal. The front layer is always visible
|
|
9
9
|
* and slides down to expose the back layer underneath.
|
|
@@ -35,6 +35,7 @@ declare const EunomiaSlidingCard_base: import("../../../utils/constructor.type.j
|
|
|
35
35
|
* @prop {boolean} [hint=false] - Loops a bounce animation on touch devices while closed, hinting that the card is interactive
|
|
36
36
|
* @prop {string} href - The URL the back layer navigates to. When set, the back layer renders as a link instead of a plain container
|
|
37
37
|
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link badge and announces it to assistive technology
|
|
38
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
38
39
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
39
40
|
* @attr {string} aria-label - The accessible label for the front layer's toggle control, touch devices only, since desktop has no such control. When the back layer also opens in a new tab, a note announcing it is appended automatically
|
|
40
41
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
@@ -45,6 +46,8 @@ declare const EunomiaSlidingCard_base: import("../../../utils/constructor.type.j
|
|
|
45
46
|
* @cssprop [--sliding-card-border-radius] - Sets the corner radius of both layers
|
|
46
47
|
* @cssprop [--sliding-card-back-inset] - Sets how far the back layer sits inside the front layer's own edge, on the top/left/right sides. Keeps the back layer fully hidden underneath the front layer at rest, rather than sized to match it exactly, so the front layer's rounded corners never cut through to whatever's behind the card on the page
|
|
47
48
|
* @cssprop [--sliding-card-padding] - Sets the padding of both layers
|
|
49
|
+
* @cssprop [--sliding-card-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --sliding-card-padding is set
|
|
50
|
+
* @cssprop [--sliding-card-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --sliding-card-padding is set
|
|
48
51
|
* @cssprop [--sliding-card-front-background] - Sets the background color of the front layer, and (since the host itself carries no visible box beyond what the front layer already covers) the host's own background showing through the front layer's rounded corners
|
|
49
52
|
* @cssprop [--sliding-card-back-background] - Sets the background color of the back layer
|
|
50
53
|
* @cssprop [--sliding-card-back-color] - Sets the text color of the back layer
|
|
@@ -47,6 +47,7 @@ export const EunomiaSlidingCardTagName = "eun-sliding-card";
|
|
|
47
47
|
* @prop {boolean} [hint=false] - Loops a bounce animation on touch devices while closed, hinting that the card is interactive
|
|
48
48
|
* @prop {string} href - The URL the back layer navigates to. When set, the back layer renders as a link instead of a plain container
|
|
49
49
|
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link badge and announces it to assistive technology
|
|
50
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
50
51
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
51
52
|
* @attr {string} aria-label - The accessible label for the front layer's toggle control, touch devices only, since desktop has no such control. When the back layer also opens in a new tab, a note announcing it is appended automatically
|
|
52
53
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
@@ -57,6 +58,8 @@ export const EunomiaSlidingCardTagName = "eun-sliding-card";
|
|
|
57
58
|
* @cssprop [--sliding-card-border-radius] - Sets the corner radius of both layers
|
|
58
59
|
* @cssprop [--sliding-card-back-inset] - Sets how far the back layer sits inside the front layer's own edge, on the top/left/right sides. Keeps the back layer fully hidden underneath the front layer at rest, rather than sized to match it exactly, so the front layer's rounded corners never cut through to whatever's behind the card on the page
|
|
59
60
|
* @cssprop [--sliding-card-padding] - Sets the padding of both layers
|
|
61
|
+
* @cssprop [--sliding-card-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --sliding-card-padding is set
|
|
62
|
+
* @cssprop [--sliding-card-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --sliding-card-padding is set
|
|
60
63
|
* @cssprop [--sliding-card-front-background] - Sets the background color of the front layer, and (since the host itself carries no visible box beyond what the front layer already covers) the host's own background showing through the front layer's rounded corners
|
|
61
64
|
* @cssprop [--sliding-card-back-background] - Sets the background color of the back layer
|
|
62
65
|
* @cssprop [--sliding-card-back-color] - Sets the text color of the back layer
|
|
@@ -65,7 +65,11 @@ const base = css `
|
|
|
65
65
|
--sliding-card-border-radius,
|
|
66
66
|
var(--eun-border-radius-l, 16px)
|
|
67
67
|
);
|
|
68
|
-
padding: var(
|
|
68
|
+
padding: var(
|
|
69
|
+
--sliding-card-padding,
|
|
70
|
+
var(--sliding-card-padding-block, var(--eun-space-l, 32px))
|
|
71
|
+
var(--sliding-card-padding-inline, var(--eun-space-l, 32px))
|
|
72
|
+
);
|
|
69
73
|
overflow: hidden;
|
|
70
74
|
}
|
|
71
75
|
|
|
@@ -37,14 +37,16 @@ export declare const EunomiaCollapseTagName = "eun-collapse";
|
|
|
37
37
|
* trigger, so it's never dropped into now-hidden content.
|
|
38
38
|
*
|
|
39
39
|
* @slot [default] - The panel's content, shown when expanded, combining with richText if both are set. Only the panel's own padding and text color apply to it, with no margins, typography, or list styles forced onto slotted content
|
|
40
|
+
* @slot [heading] - The trigger's heading as light DOM content, so it's part of the server-rendered HTML. Falls back to heading when empty. Keep it to text and inline phrasing, since it renders inside the trigger button
|
|
40
41
|
* @slot [icon] - Replaces the leading icon entirely with any content, not just an icon element. Falls back to icon when empty
|
|
41
|
-
* @slot [
|
|
42
|
+
* @slot [subheading] - The secondary text under the heading as light DOM content, so it's part of the server-rendered HTML. Falls back to subheading when empty
|
|
43
|
+
* @slot [tag] - The trigger's tag as light DOM content. Plain elements, such as a span of text, keep the default tag style, while a custom element, such as a colored eun-tag, replaces the tag entirely. Falls back to tag when empty
|
|
42
44
|
* @slot [chevron] - Replaces the trailing indicator entirely with any content, not just an icon element. Falls back to chevronIcon when empty. Whatever ends up there still rotates while open, unless that rotation is set to zero
|
|
43
|
-
* @prop {string} heading - The trigger's heading text
|
|
44
|
-
* @prop {string} [subheading] - Optional secondary text shown under the heading
|
|
45
|
+
* @prop {string} heading - The trigger's heading text. Ignored once something is slotted into heading
|
|
46
|
+
* @prop {string} [subheading] - Optional secondary text shown under the heading. Ignored once something is slotted into subheading
|
|
45
47
|
* @prop {2 | 3 | 4 | 5 | 6} [level] - Wraps the trigger in a heading element of this level, so screen reader users can jump between items, such as several FAQ entries, by heading. Matches the page's own outline, so it's opt-in rather than assumed
|
|
46
48
|
* @prop {import('../icon/icon.type.js').EunomiaIconName} [icon] - An optional leading icon for the trigger. Ignored once the icon slot has content
|
|
47
|
-
* @prop {string} [tag] - An optional short label rendered as a default tag in the trigger, such as a count or category.
|
|
49
|
+
* @prop {string} [tag] - An optional short label rendered as a default tag in the trigger, such as a count or category. Ignored once something is slotted into tag
|
|
48
50
|
* @prop {import('../icon/icon.type.js').EunomiaIconName} [chevronIcon='add'] - The trailing indicator icon. Ignored once the chevron slot has content. Pair a non-default icon with the chevron rotation custom property, since the default plus-sign-to-cross rotation doesn't suit every icon
|
|
49
51
|
* @prop {string} [richText] - Lightweight formatted content rendered above the default slot. Supports simple lists, links, bold, and italic text
|
|
50
52
|
* @prop {boolean} [open=false] - Whether the panel is currently expanded
|
|
@@ -66,7 +68,16 @@ export declare const EunomiaCollapseTagName = "eun-collapse";
|
|
|
66
68
|
* @cssprop [--collapse-focus-outline-color] - Sets the focus outline color of the trigger
|
|
67
69
|
* @cssprop [--collapse-disabled-opacity] - Sets the opacity while disabled
|
|
68
70
|
* @cssprop [--collapse-border-radius] - Sets the corner radius of the trigger and panel
|
|
69
|
-
* @cssprop [--collapse-padding] - Sets the padding of the trigger and panel
|
|
71
|
+
* @cssprop [--collapse-padding] - Sets the padding of the trigger, and of the panel unless --collapse-panel-padding is set
|
|
72
|
+
* @cssprop [--collapse-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --collapse-padding is set
|
|
73
|
+
* @cssprop [--collapse-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --collapse-padding is set
|
|
74
|
+
* @cssprop [--collapse-panel-padding] - Sets the padding of the panel, falling back to the trigger's padding
|
|
75
|
+
* @cssprop [--collapse-panel-padding-block] - Sets the vertical padding of the panel, as one length applied to both sides. Ignored when --collapse-panel-padding or --collapse-padding is set
|
|
76
|
+
* @cssprop [--collapse-panel-padding-inline] - Sets the horizontal padding of the panel, as one length applied to both sides. Ignored when --collapse-panel-padding or --collapse-padding is set
|
|
77
|
+
* @cssprop [--collapse-heading-font-size] - Sets the font size of the heading
|
|
78
|
+
* @cssprop [--collapse-subheading-font-size] - Sets the font size of the subheading
|
|
79
|
+
* @cssprop [--collapse-divider-width] - Sets the width of the line between the trigger and the panel. Zero removes it
|
|
80
|
+
* @cssprop [--collapse-divider-color] - Sets the color of the line between the trigger and the panel
|
|
70
81
|
* @cssprop [--collapse-gap] - Sets the gap between the trigger's leading icon, heading, and actions
|
|
71
82
|
* @cssprop [--collapse-panel-gap] - Sets the gap between the trigger and the panel while open, with independent set
|
|
72
83
|
* @cssprop [--collapse-transition-duration] - Sets the duration of the open, close, and color transitions
|
|
@@ -82,11 +93,16 @@ export declare class EunomiaCollapse extends LitElement {
|
|
|
82
93
|
*/
|
|
83
94
|
static readonly styles: import("lit").CSSResult[];
|
|
84
95
|
/**
|
|
85
|
-
* The trigger's heading text.
|
|
96
|
+
* The trigger's heading text. Only rendered in the shadow root, so the
|
|
97
|
+
* `heading` slot is preferred wherever the text must be in the server
|
|
98
|
+
* HTML (an indexed FAQ, for example) ; ignored once that slot is filled.
|
|
86
99
|
*/
|
|
87
100
|
heading: string;
|
|
88
101
|
/**
|
|
89
|
-
* Optional secondary text shown under the heading.
|
|
102
|
+
* Optional secondary text shown under the heading. Only rendered in the
|
|
103
|
+
* shadow root, like {@link heading}, so the `subheading` slot is
|
|
104
|
+
* preferred wherever the text must be in the server HTML ; ignored once
|
|
105
|
+
* that slot is filled.
|
|
90
106
|
*/
|
|
91
107
|
subheading?: string;
|
|
92
108
|
/**
|
|
@@ -194,12 +210,12 @@ export declare class EunomiaCollapse extends LitElement {
|
|
|
194
210
|
*/
|
|
195
211
|
private readonly iconSlotEls;
|
|
196
212
|
/**
|
|
197
|
-
* Elements assigned to the `
|
|
198
|
-
* {@link render} can decide whether to
|
|
213
|
+
* Elements assigned to the `subheading` slot, if any ; queried live so
|
|
214
|
+
* {@link render} can decide whether to render the subheading line at all.
|
|
199
215
|
* @internal
|
|
200
216
|
* @readonly
|
|
201
217
|
*/
|
|
202
|
-
private readonly
|
|
218
|
+
private readonly subheadingSlotEls;
|
|
203
219
|
/**
|
|
204
220
|
* Elements assigned to the `chevron` slot, if any ; queried live so
|
|
205
221
|
* {@link render} can skip instantiating the fallback `eun-icon` (and its
|
|
@@ -212,8 +228,9 @@ export declare class EunomiaCollapse extends LitElement {
|
|
|
212
228
|
private readonly chevronSlotEls;
|
|
213
229
|
/**
|
|
214
230
|
* Re-renders when a named slot's assigned content changes, so the
|
|
215
|
-
* `icon`/`tag`/`chevron` prop fallback correctly
|
|
216
|
-
* content is slotted in or removed after the
|
|
231
|
+
* `icon`/`subheading`/`tag`/`chevron` prop fallback correctly
|
|
232
|
+
* appears/disappears as content is slotted in or removed after the
|
|
233
|
+
* initial render.
|
|
217
234
|
* @private
|
|
218
235
|
*/
|
|
219
236
|
private handleSlotChange;
|
|
@@ -332,6 +349,16 @@ export declare class EunomiaCollapse extends LitElement {
|
|
|
332
349
|
* @private
|
|
333
350
|
*/
|
|
334
351
|
private renderHeadingWrapper;
|
|
352
|
+
/**
|
|
353
|
+
* Renders the `tag` slot. Plain elements slotted into it (a span of
|
|
354
|
+
* text, typically) are wrapped in the default tag, so server-rendered
|
|
355
|
+
* text keeps the tag style ; a custom element (a colored `eun-tag`, a
|
|
356
|
+
* badge, ...) replaces the tag entirely instead. Read from the light DOM
|
|
357
|
+
* rather than the slot's assigned elements, so the first render already
|
|
358
|
+
* picks the right shape before the slot exists.
|
|
359
|
+
* @private
|
|
360
|
+
*/
|
|
361
|
+
private renderTag;
|
|
335
362
|
render(): TemplateResult;
|
|
336
363
|
}
|
|
337
364
|
declare global {
|