@eunomia/elements 1.0.0-beta.5 → 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-OW7XKDCH.js → chunk-2Y2EU2CI.js} +16 -16
- package/dist/cdn/components/chunks/{chunk-LFCXUVDO.js → chunk-4PI6RDUS.js} +1 -1
- 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-EAKYD33D.js → chunk-BQFJR2UP.js} +4 -4
- 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-IDKZKLJR.js → chunk-KDN4O5W2.js} +24 -11
- 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-2XASWWKR.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-6ETDXUH2.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-AIS3UICU.js → chunk-QZ5SHR3I.js} +9 -5
- package/dist/cdn/components/chunks/{chunk-32DTNR52.js → chunk-RS7TWEMQ.js} +1 -1
- package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
- package/dist/cdn/components/chunks/{chunk-MPQP4R54.js → chunk-SZYEBMG6.js} +10 -9
- package/dist/cdn/components/chunks/{chunk-JRGM3W7I.js → chunk-UDVB4LAE.js} +5 -2
- package/dist/cdn/components/chunks/{chunk-L65WUTXM.js → chunk-UYZR4JXZ.js} +12 -7
- 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-DKOPI7QA.js → chunk-VYFR364B.js} +73 -63
- package/dist/cdn/components/chunks/{chunk-SD2WHGPF.js → chunk-XDPRWUKN.js} +1 -1
- 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-NBIENHLV.js → chunk-ZKZV2YG5.js} +18 -18
- package/dist/cdn/components/eun-alert.js +24 -16
- package/dist/cdn/components/eun-animate.js +12 -8
- package/dist/cdn/components/eun-badge.js +1 -1
- 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 +67 -65
- package/dist/cdn/components/eun-card.js +32 -17
- 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 +56 -27
- package/dist/cdn/components/eun-color-picker.js +53 -52
- package/dist/cdn/components/eun-counter.js +9 -8
- package/dist/cdn/components/eun-date-picker.js +59 -56
- 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 +32 -18
- 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 +17 -16
- 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 +15 -15
- 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 +78 -29
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +17 -10
- 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 +1 -1
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +36 -36
- package/dist/cdn/components/eun-search.js +11 -10
- 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 +23 -23
- package/dist/cdn/components/eun-time-picker.js +17 -15
- package/dist/cdn/components/eun-toast.js +36 -16
- package/dist/cdn/components/eun-toggle-group.js +53 -34
- package/dist/cdn/components/eun-toggle-item.js +16 -15
- 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 +7 -2
- package/dist/components/action/button/button.js +7 -2
- package/dist/components/action/button/button.styles.js +51 -36
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +2 -2
- package/dist/components/action/dropdown-button/dropdown-button.js +11 -10
- 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.styles.js +14 -13
- package/dist/components/action/link/link.d.ts +7 -3
- package/dist/components/action/link/link.js +11 -7
- package/dist/components/action/link/link.styles.js +66 -15
- package/dist/components/action/shared-styles/button-palette.styles.js +15 -15
- package/dist/components/action/toggle/toggle-group.d.ts +2 -0
- package/dist/components/action/toggle/toggle-group.js +5 -3
- package/dist/components/action/toggle/toggle-group.styles.d.ts +2 -0
- package/dist/components/action/toggle/toggle-group.styles.js +42 -21
- package/dist/components/action/toggle/toggle-item.styles.js +13 -12
- 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 +4 -2
- package/dist/components/alert/drawer/drawer.styles.js +25 -9
- package/dist/components/alert/modal/modal.d.ts +3 -1
- package/dist/components/alert/modal/modal.js +4 -2
- 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/card/card.d.ts +7 -3
- package/dist/components/content/card/card.js +7 -3
- package/dist/components/content/card/card.styles.js +26 -11
- package/dist/components/content/card/image-card.d.ts +60 -6
- package/dist/components/content/card/image-card.js +120 -11
- package/dist/components/content/card/image-card.styles.js +66 -15
- package/dist/components/content/card/sliding-card.d.ts +2 -0
- package/dist/components/content/card/sliding-card.js +2 -0
- package/dist/components/content/card/sliding-card.styles.js +5 -1
- package/dist/components/content/collapse/collapse.d.ts +10 -1
- package/dist/components/content/collapse/collapse.js +12 -2
- package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
- package/dist/components/content/collapse/collapse.styles.js +56 -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 +2 -0
- package/dist/components/content/icon/icon.js +2 -0
- package/dist/components/content/icon/icon.style.js +4 -1
- 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 +4 -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 +7 -1
- package/dist/components/form/color-picker/color-picker.js +19 -21
- package/dist/components/form/color-picker/color-picker.styles.js +6 -5
- package/dist/components/form/counter/counter.d.ts +4 -1
- package/dist/components/form/counter/counter.js +5 -2
- package/dist/components/form/counter/counter.styles.js +5 -4
- package/dist/components/form/date-picker/date-picker.d.ts +37 -33
- package/dist/components/form/date-picker/date-picker.js +32 -42
- package/dist/components/form/date-picker/date-picker.styles.js +8 -5
- package/dist/components/form/input/input.d.ts +7 -1
- package/dist/components/form/input/input.js +8 -2
- 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 +8 -2
- package/dist/components/form/input-phone/input-phone.js +13 -17
- package/dist/components/form/input-phone/input-phone.styles.js +4 -4
- 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 +5 -4
- package/dist/components/form/select/select.d.ts +9 -2
- package/dist/components/form/select/select.js +15 -18
- 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 +16 -6
- 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 +7 -1
- package/dist/components/form/textarea/textarea.js +14 -8
- 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 +6 -2
- package/dist/components/form/time-picker/time-picker.js +22 -26
- package/dist/components/form/time-picker/time-picker.styles.js +4 -3
- package/dist/components/layout/animate/animate.d.ts +37 -15
- package/dist/components/layout/animate/animate.js +35 -15
- 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 +6 -6
- package/dist/features/scheduler/calendar/calendar.js +6 -5
- package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
- package/dist/features/scheduler/scheduler/scheduler.d.ts +1 -1
- package/dist/features/scheduler/scheduler/scheduler.js +9 -23
- package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
- package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +2 -0
- package/dist/features/scheduler/scheduler-event/scheduler-event.js +2 -0
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +10 -4
- package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
- 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 +11 -20
- 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 +15 -22
- package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
- package/dist/i18n/en.d.ts +31 -0
- package/dist/i18n/en.js +31 -0
- package/dist/i18n/fr.js +35 -0
- package/dist/index.d.ts +4 -10
- package/dist/index.js +6 -10
- package/dist/mixins/check.mixin.js +4 -5
- 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 +3 -2
- 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 +1 -1
- package/dist/ssr/table-ssr.css +472 -0
- package/dist/ssr/tag-ssr.css +197 -0
- package/dist/ssr/toolbar-ssr.css +5 -1
- 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/theme-generator.utils.d.ts +6 -1
- package/dist/utils/theme-generator.utils.js +59 -20
- package/package.json +17 -28
- 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-A6KGFALA.js +0 -132
- 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-SJWRE6PW.js +0 -1
- package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
- package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
- package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
- 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/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
|
@@ -81,6 +81,8 @@ const EXIT_FALLBACK_MS = 600;
|
|
|
81
81
|
* @cssprop [--toast-content-color] - Sets the color of the description and action content, independently of the heading and icon color
|
|
82
82
|
* @cssprop [--toast-border-radius] - Sets the corner radius of the toast
|
|
83
83
|
* @cssprop [--toast-padding] - Sets the padding of the toast
|
|
84
|
+
* @cssprop [--toast-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --toast-padding is set
|
|
85
|
+
* @cssprop [--toast-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --toast-padding is set
|
|
84
86
|
* @cssprop [--toast-gap] - Sets the gap between the icon column and the heading and content column
|
|
85
87
|
* @cssprop [--toast-row-gap] - Sets the gap between the heading, description, and action rows
|
|
86
88
|
* @cssprop [--toast-shadow] - Sets the shadow of the toast
|
|
@@ -16,6 +16,8 @@ import { css } from "lit";
|
|
|
16
16
|
* [--toast-content-color] - Set a custom color for the description/action content, independent of the heading/icon color
|
|
17
17
|
* [--toast-border-radius] - Set a custom border radius
|
|
18
18
|
* [--toast-padding] - Set a custom padding
|
|
19
|
+
* [--toast-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --toast-padding is set
|
|
20
|
+
* [--toast-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --toast-padding is set
|
|
19
21
|
* [--toast-gap] - Set a custom gap between the icon column and the heading/content column
|
|
20
22
|
* [--toast-row-gap] - Set a custom gap between the heading, description, and action rows
|
|
21
23
|
* [--toast-shadow] - Set a custom shadow
|
|
@@ -33,14 +35,17 @@ const base = css `
|
|
|
33
35
|
z-index: var(--toast-z-index, 2147483000);
|
|
34
36
|
font-family: var(--eun-font-family, "Mulish", sans-serif);
|
|
35
37
|
--_gapEdge: var(--toast-viewport-gap, var(--eun-space-m, 16px));
|
|
36
|
-
--_transitionDuration: var(
|
|
38
|
+
--_transitionDuration: var(
|
|
39
|
+
--toast-transition-duration,
|
|
40
|
+
var(--eun-duration-xl, 300ms)
|
|
41
|
+
);
|
|
37
42
|
--_baseX: var(--_enterX, 0px);
|
|
38
43
|
--_baseY: var(--_enterY, 0px);
|
|
39
44
|
visibility: hidden;
|
|
40
45
|
opacity: 0;
|
|
41
46
|
transition:
|
|
42
|
-
opacity var(--_transitionDuration) ease,
|
|
43
|
-
transform var(--_transitionDuration) ease,
|
|
47
|
+
opacity var(--_transitionDuration) var(--eun-easing-default, ease),
|
|
48
|
+
transform var(--_transitionDuration) var(--eun-easing-default, ease),
|
|
44
49
|
visibility 0s linear var(--_transitionDuration);
|
|
45
50
|
}
|
|
46
51
|
|
|
@@ -50,8 +55,8 @@ const base = css `
|
|
|
50
55
|
--_baseX: 0px;
|
|
51
56
|
--_baseY: 0px;
|
|
52
57
|
transition:
|
|
53
|
-
opacity var(--_transitionDuration) ease,
|
|
54
|
-
transform var(--_transitionDuration) ease,
|
|
58
|
+
opacity var(--_transitionDuration) var(--eun-easing-default, ease),
|
|
59
|
+
transform var(--_transitionDuration) var(--eun-easing-default, ease),
|
|
55
60
|
visibility 0s linear 0s;
|
|
56
61
|
}
|
|
57
62
|
|
|
@@ -145,25 +150,25 @@ const base = css `
|
|
|
145
150
|
--_titleColor: var(--eun-text-color, #071621);
|
|
146
151
|
}
|
|
147
152
|
:host([severity="info"]) {
|
|
148
|
-
--_background: var(--eun-color-info-
|
|
153
|
+
--_background: var(--eun-color-info-alpha-5, #097faf0d);
|
|
149
154
|
--_backgroundFilled: var(--eun-color-info-100, #097faf);
|
|
150
155
|
--_borderColor: var(--eun-color-info-100, #097faf);
|
|
151
156
|
--_titleColor: var(--eun-color-info-100, #097faf);
|
|
152
157
|
}
|
|
153
158
|
:host([severity="success"]) {
|
|
154
|
-
--_background: var(--eun-color-success-
|
|
159
|
+
--_background: var(--eun-color-success-alpha-5, #1a99480d);
|
|
155
160
|
--_backgroundFilled: var(--eun-color-success-100, #1a9948);
|
|
156
161
|
--_borderColor: var(--eun-color-success-100, #1a9948);
|
|
157
162
|
--_titleColor: var(--eun-color-success-100, #1a9948);
|
|
158
163
|
}
|
|
159
164
|
:host([severity="warning"]) {
|
|
160
|
-
--_background: var(--eun-color-warning-
|
|
165
|
+
--_background: var(--eun-color-warning-alpha-5, #c852070d);
|
|
161
166
|
--_backgroundFilled: var(--eun-color-warning-100, #c85207);
|
|
162
167
|
--_borderColor: var(--eun-color-warning-100, #c85207);
|
|
163
168
|
--_titleColor: var(--eun-color-warning-100, #c85207);
|
|
164
169
|
}
|
|
165
170
|
:host([severity="critical"]) {
|
|
166
|
-
--_background: var(--eun-color-critical-
|
|
171
|
+
--_background: var(--eun-color-critical-alpha-5, #aa00140d);
|
|
167
172
|
--_backgroundFilled: var(--eun-color-critical-100, #aa0014);
|
|
168
173
|
--_borderColor: var(--eun-color-critical-100, #aa0014);
|
|
169
174
|
--_titleColor: var(--eun-color-critical-100, #aa0014);
|
|
@@ -189,8 +194,13 @@ const base = css `
|
|
|
189
194
|
/* Every appearance carries the same border box (transparent unless
|
|
190
195
|
drawn), taken out of the padding, so switching appearance or adding a
|
|
191
196
|
--toast-border-* never changes the size. */
|
|
192
|
-
border: var(--_bw) solid
|
|
193
|
-
|
|
197
|
+
border: var(--_bw) solid
|
|
198
|
+
var(--toast-border-color, var(--_frame, transparent));
|
|
199
|
+
padding: var(
|
|
200
|
+
--toast-padding,
|
|
201
|
+
var(--toast-padding-block, max(0px, calc(var(--eun-space-m, 16px) - var(--_bw))))
|
|
202
|
+
var(--toast-padding-inline, max(0px, calc(var(--eun-space-m, 16px) - var(--_bw))))
|
|
203
|
+
);
|
|
194
204
|
border-radius: var(--toast-border-radius, var(--eun-border-radius-m, 8px));
|
|
195
205
|
box-shadow: var(
|
|
196
206
|
--toast-shadow,
|
|
@@ -223,7 +233,10 @@ const base = css `
|
|
|
223
233
|
}
|
|
224
234
|
:host([appearance="outline"]) #toast {
|
|
225
235
|
--_frame: var(--_borderColor);
|
|
226
|
-
background: var(
|
|
236
|
+
background: var(
|
|
237
|
+
--toast-background-color,
|
|
238
|
+
var(--eun-surface-color, #ffffff)
|
|
239
|
+
);
|
|
227
240
|
}
|
|
228
241
|
:host([appearance="fill"]) #toast {
|
|
229
242
|
background: var(--toast-background-color, var(--_backgroundFilled));
|
|
@@ -242,14 +255,20 @@ const base = css `
|
|
|
242
255
|
}
|
|
243
256
|
|
|
244
257
|
slot[name="icon"] {
|
|
245
|
-
--icon-color: var(
|
|
258
|
+
--icon-color: var(
|
|
259
|
+
--toast-icon-color,
|
|
260
|
+
var(--toast-color, var(--_titleColor))
|
|
261
|
+
);
|
|
246
262
|
grid-column: 1;
|
|
247
263
|
grid-row: 1;
|
|
248
264
|
align-self: center;
|
|
249
265
|
display: flex;
|
|
250
266
|
}
|
|
251
267
|
:host([appearance="fill"]) slot[name="icon"] {
|
|
252
|
-
--icon-color: var(
|
|
268
|
+
--icon-color: var(
|
|
269
|
+
--toast-icon-color,
|
|
270
|
+
var(--toast-color, var(--_onFilled, #fff))
|
|
271
|
+
);
|
|
253
272
|
}
|
|
254
273
|
|
|
255
274
|
#description,
|
|
@@ -290,7 +309,10 @@ const base = css `
|
|
|
290
309
|
|
|
291
310
|
:host([closeable]) #toast {
|
|
292
311
|
padding-right: calc(
|
|
293
|
-
var(
|
|
312
|
+
var(
|
|
313
|
+
--toast-padding,
|
|
314
|
+
var(--toast-padding-inline, max(0px, calc(var(--eun-space-s, 8px) - var(--_bw))))
|
|
315
|
+
) +
|
|
294
316
|
var(--eun-space-l, 32px)
|
|
295
317
|
);
|
|
296
318
|
}
|
|
@@ -25,15 +25,17 @@ declare const EunomiaCard_base: import("../../../utils/constructor.type.js").Con
|
|
|
25
25
|
* and announces it through the anchor's aria-description.
|
|
26
26
|
*
|
|
27
27
|
* @slot [default] - The card's content, arranged in a column by `--card-gap`. A native anchor as a direct child links the whole card when href is unset
|
|
28
|
-
* @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 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. It isolates its own stacking context, so a decoration placed at z-index -1 stays above its background and below its content
|
|
29
29
|
* @prop {'default' | 'fill' | 'raised'} [appearance='default'] - The card's surface style. Default is a plain surface colored box with a border. Fill and raised both drop the border, fill for a muted tinted background and raised for a drop shadow. All three animate a border, tint, or shadow change on hover or focus regardless of whether the card is a link, though the accompanying lift is narrower
|
|
30
30
|
* @prop {string} href - The URL the card navigates to. When set, the card renders as a link instead of a plain wrapper
|
|
31
31
|
* @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, in the current locale
|
|
32
32
|
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
33
33
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
34
|
-
* @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
|
|
34
|
+
* @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
|
|
35
35
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
36
36
|
* @cssprop [--card-padding] - Sets the padding of the card
|
|
37
|
+
* @cssprop [--card-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --card-padding is set
|
|
38
|
+
* @cssprop [--card-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --card-padding is set
|
|
37
39
|
* @cssprop [--card-gap] - Sets the gap between the card's own direct children
|
|
38
40
|
* @cssprop [--card-border-radius] - Sets the corner radius of the card
|
|
39
41
|
* @cssprop [--card-border-color] - Sets the border color, for every appearance. Fill and raised have no border by default, so it draws one when set
|
|
@@ -42,7 +44,9 @@ declare const EunomiaCard_base: import("../../../utils/constructor.type.js").Con
|
|
|
42
44
|
* @cssprop [--card-fill-background] - Sets the background color for the fill appearance
|
|
43
45
|
* @cssprop [--card-fill-hover-background] - Sets the background color on hover for the fill appearance
|
|
44
46
|
* @cssprop [--card-shadow] - Sets a box shadow for the default appearance, none by default. Replaced by a subtle elevation for the raised appearance, and unused by fill
|
|
45
|
-
* @cssprop [--card-raised-hover-shadow] - Sets the box shadow on hover for the raised appearance
|
|
47
|
+
* @cssprop [--card-raised-hover-shadow] - Sets the box shadow on hover for the raised appearance. Ignored when --card-hover-shadow is set
|
|
48
|
+
* @cssprop [--card-hover-shadow] - Sets the box shadow on hover or focus, for every appearance, linked or not. Defaults to the resting shadow, or a deeper one for raised
|
|
49
|
+
* @cssprop [--card-overflow] - Sets the overflow of the card, visible by default. Set it to hidden to clip a decoration or a full-bleed image to the rounded corners
|
|
46
50
|
* @cssprop [--card-hover-transform] - Sets a transform applied on hover or focus, for every appearance. Setting this always applies it, link or not. Left unset, a small lift only applies to linked cards, since a non-linked card gets the border, tint, or shadow change on hover but stays in place otherwise
|
|
47
51
|
* @cssprop [--card-hover-border-color] - Sets the border color on hover or focus, for every appearance, including fill and raised, whose border is otherwise transparent rather than absent, reserving the space so the color reveals with no layout shift. Defaults to the primary color when `href` is set, otherwise the border stays exactly as it is at rest (unchanged for default, still transparent for fill/raised) — hovering a non-link card gives no color feedback, since there's nothing to click
|
|
48
52
|
* @cssprop [--card-hover-background] - Sets the background color on hover or focus, for the default appearance only, unchanged by default. See card-fill-hover-background for the fill appearance
|
|
@@ -42,15 +42,17 @@ export const EunomiaCardTagName = "eun-card";
|
|
|
42
42
|
* and announces it through the anchor's aria-description.
|
|
43
43
|
*
|
|
44
44
|
* @slot [default] - The card's content, arranged in a column by `--card-gap`. A native anchor as a direct child links the whole card when href is unset
|
|
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
|
|
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. It isolates its own stacking context, so a decoration placed at z-index -1 stays above its background and below its content
|
|
46
46
|
* @prop {'default' | 'fill' | 'raised'} [appearance='default'] - The card's surface style. Default is a plain surface colored box with a border. Fill and raised both drop the border, fill for a muted tinted background and raised for a drop shadow. All three animate a border, tint, or shadow change on hover or focus regardless of whether the card is a link, though the accompanying lift is narrower
|
|
47
47
|
* @prop {string} href - The URL the card navigates to. When set, the card renders as a link instead of a plain wrapper
|
|
48
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, in the current locale
|
|
49
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
|
|
50
50
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
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
|
|
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
|
|
52
52
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
53
53
|
* @cssprop [--card-padding] - Sets the padding of the card
|
|
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
|
|
54
56
|
* @cssprop [--card-gap] - Sets the gap between the card's own direct children
|
|
55
57
|
* @cssprop [--card-border-radius] - Sets the corner radius of the card
|
|
56
58
|
* @cssprop [--card-border-color] - Sets the border color, for every appearance. Fill and raised have no border by default, so it draws one when set
|
|
@@ -59,7 +61,9 @@ export const EunomiaCardTagName = "eun-card";
|
|
|
59
61
|
* @cssprop [--card-fill-background] - Sets the background color for the fill appearance
|
|
60
62
|
* @cssprop [--card-fill-hover-background] - Sets the background color on hover for the fill appearance
|
|
61
63
|
* @cssprop [--card-shadow] - Sets a box shadow for the default appearance, none by default. Replaced by a subtle elevation for the raised appearance, and unused by fill
|
|
62
|
-
* @cssprop [--card-raised-hover-shadow] - Sets the box shadow on hover for the raised appearance
|
|
64
|
+
* @cssprop [--card-raised-hover-shadow] - Sets the box shadow on hover for the raised appearance. Ignored when --card-hover-shadow is set
|
|
65
|
+
* @cssprop [--card-hover-shadow] - Sets the box shadow on hover or focus, for every appearance, linked or not. Defaults to the resting shadow, or a deeper one for raised
|
|
66
|
+
* @cssprop [--card-overflow] - Sets the overflow of the card, visible by default. Set it to hidden to clip a decoration or a full-bleed image to the rounded corners
|
|
63
67
|
* @cssprop [--card-hover-transform] - Sets a transform applied on hover or focus, for every appearance. Setting this always applies it, link or not. Left unset, a small lift only applies to linked cards, since a non-linked card gets the border, tint, or shadow change on hover but stays in place otherwise
|
|
64
68
|
* @cssprop [--card-hover-border-color] - Sets the border color on hover or focus, for every appearance, including fill and raised, whose border is otherwise transparent rather than absent, reserving the space so the color reveals with no layout shift. Defaults to the primary color when `href` is set, otherwise the border stays exactly as it is at rest (unchanged for default, still transparent for fill/raised) — hovering a non-link card gives no color feedback, since there's nothing to click
|
|
65
69
|
* @cssprop [--card-hover-background] - Sets the background color on hover or focus, for the default appearance only, unchanged by default. See card-fill-hover-background for the fill appearance
|
|
@@ -17,9 +17,15 @@ const base = css `
|
|
|
17
17
|
flex-direction: column;
|
|
18
18
|
gap: var(--card-gap, var(--eun-space-s, 8px));
|
|
19
19
|
position: relative;
|
|
20
|
+
isolation: isolate;
|
|
20
21
|
box-sizing: border-box;
|
|
21
22
|
height: 100%;
|
|
22
|
-
|
|
23
|
+
overflow: var(--card-overflow, visible);
|
|
24
|
+
padding: var(
|
|
25
|
+
--card-padding,
|
|
26
|
+
var(--card-padding-block, var(--eun-space-m, 16px))
|
|
27
|
+
var(--card-padding-inline, var(--eun-space-m, 16px))
|
|
28
|
+
);
|
|
23
29
|
border-radius: var(--card-border-radius, var(--eun-border-radius-m, 8px));
|
|
24
30
|
border: var(--card-border-width, var(--eun-border-width-s, 1px)) solid
|
|
25
31
|
var(--card-border-color, var(--eun-border-color, #dee0e7));
|
|
@@ -31,11 +37,15 @@ const base = css `
|
|
|
31
37
|
outline: 2px solid transparent;
|
|
32
38
|
transition: var(
|
|
33
39
|
--card-transition,
|
|
34
|
-
transform var(--card-hover-duration,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
transform var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
41
|
+
var(--eun-easing-default, ease),
|
|
42
|
+
outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out),
|
|
43
|
+
box-shadow var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
44
|
+
var(--eun-easing-default, ease),
|
|
45
|
+
background-color var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
46
|
+
var(--eun-easing-default, ease),
|
|
47
|
+
border-color var(--card-hover-duration, var(--eun-duration-xl, 300ms))
|
|
48
|
+
var(--eun-easing-default, ease)
|
|
39
49
|
);
|
|
40
50
|
}
|
|
41
51
|
|
|
@@ -95,6 +105,7 @@ const base = css `
|
|
|
95
105
|
#card:hover,
|
|
96
106
|
#card:focus-visible {
|
|
97
107
|
border-color: var(--card-hover-border-color, var(--_hoverBorderDefault));
|
|
108
|
+
box-shadow: var(--card-hover-shadow, var(--card-shadow, none));
|
|
98
109
|
}
|
|
99
110
|
|
|
100
111
|
:host([appearance="fill"]) #card {
|
|
@@ -122,11 +133,14 @@ const base = css `
|
|
|
122
133
|
:host([appearance="raised"]) #card:hover {
|
|
123
134
|
transform: var(--card-hover-transform, var(--_hoverLift));
|
|
124
135
|
box-shadow: var(
|
|
125
|
-
--card-
|
|
136
|
+
--card-hover-shadow,
|
|
126
137
|
var(
|
|
127
|
-
--
|
|
128
|
-
|
|
129
|
-
|
|
138
|
+
--card-raised-hover-shadow,
|
|
139
|
+
var(
|
|
140
|
+
--eun-shadow-m,
|
|
141
|
+
rgba(0, 0, 0, 0.1) 0px 10px 15px -3px,
|
|
142
|
+
rgba(0, 0, 0, 0.05) 0px 4px 6px -2px
|
|
143
|
+
)
|
|
130
144
|
)
|
|
131
145
|
);
|
|
132
146
|
}
|
|
@@ -148,7 +162,8 @@ const base = css `
|
|
|
148
162
|
z-index: 1;
|
|
149
163
|
border-radius: var(--card-border-radius, var(--eun-border-radius-m, 8px));
|
|
150
164
|
outline: 2px solid transparent;
|
|
151
|
-
transition: outline
|
|
165
|
+
transition: outline var(--eun-duration-m, 200ms)
|
|
166
|
+
var(--eun-easing-out, ease-out);
|
|
152
167
|
}
|
|
153
168
|
::slotted(a:focus-visible)::after {
|
|
154
169
|
outline-color: var(
|
|
@@ -1,4 +1,4 @@
|
|
|
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
|
*/
|
|
@@ -11,34 +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
|
|
22
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
|
|
23
32
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
24
|
-
* @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
|
|
25
34
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
26
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
|
|
27
38
|
* @cssprop [--card-gap] - Sets the gap between the title and description
|
|
28
39
|
* @cssprop [--card-border-radius] - Sets the corner radius of the card
|
|
29
40
|
* @cssprop [--card-border-color] - Sets the border color of the card
|
|
30
41
|
* @cssprop [--card-border-width] - Sets the width of the border
|
|
31
42
|
* @cssprop [--card-background] - Sets the background color of the card
|
|
32
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
|
|
33
46
|
* @cssprop [--card-hover-transform] - Sets a transform applied on hover or focus, for linked cards only, defaulting to a small lift
|
|
34
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
|
|
35
48
|
* @cssprop [--card-hover-background] - Sets the background color on hover or focus, linked or not, unchanged by default
|
|
36
49
|
* @cssprop [--card-hover-duration] - Sets the duration of the hover transition
|
|
37
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
|
|
38
51
|
* @cssprop [--card-focus-outline-color] - Sets the focus outline color, for linked cards only
|
|
39
|
-
* @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
|
|
40
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
|
|
41
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
|
|
42
60
|
* @cssprop [--card-link-badge-offset] - Sets the inset of the external link badge from the card's top and right edges
|
|
43
61
|
* @cssprop [--card-link-badge-size] - Sets the diameter of the external link badge
|
|
44
62
|
* @cssprop [--card-link-badge-background] - Sets the background color of the external link badge
|
|
@@ -46,6 +64,7 @@ declare const EunomiaImageCard_base: import("../../../utils/constructor.type.js"
|
|
|
46
64
|
* @element eun-image-card
|
|
47
65
|
*/
|
|
48
66
|
export declare class EunomiaImageCard extends EunomiaImageCard_base {
|
|
67
|
+
#private;
|
|
49
68
|
/**
|
|
50
69
|
* Styles to import to the component.
|
|
51
70
|
*
|
|
@@ -54,6 +73,41 @@ export declare class EunomiaImageCard extends EunomiaImageCard_base {
|
|
|
54
73
|
* @readonly
|
|
55
74
|
*/
|
|
56
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;
|
|
57
111
|
render(): TemplateResult;
|
|
58
112
|
}
|
|
59
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,34 +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
|
|
31
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
|
|
32
50
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
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
|
|
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
|
|
34
52
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
35
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
|
|
36
56
|
* @cssprop [--card-gap] - Sets the gap between the title and description
|
|
37
57
|
* @cssprop [--card-border-radius] - Sets the corner radius of the card
|
|
38
58
|
* @cssprop [--card-border-color] - Sets the border color of the card
|
|
39
59
|
* @cssprop [--card-border-width] - Sets the width of the border
|
|
40
60
|
* @cssprop [--card-background] - Sets the background color of the card
|
|
41
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
|
|
42
64
|
* @cssprop [--card-hover-transform] - Sets a transform applied on hover or focus, for linked cards only, defaulting to a small lift
|
|
43
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
|
|
44
66
|
* @cssprop [--card-hover-background] - Sets the background color on hover or focus, linked or not, unchanged by default
|
|
45
67
|
* @cssprop [--card-hover-duration] - Sets the duration of the hover transition
|
|
46
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
|
|
47
69
|
* @cssprop [--card-focus-outline-color] - Sets the focus outline color, for linked cards only
|
|
48
|
-
* @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
|
|
49
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
|
|
50
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
|
|
51
78
|
* @cssprop [--card-link-badge-offset] - Sets the inset of the external link badge from the card's top and right edges
|
|
52
79
|
* @cssprop [--card-link-badge-size] - Sets the diameter of the external link badge
|
|
53
80
|
* @cssprop [--card-link-badge-background] - Sets the background color of the external link badge
|
|
@@ -55,21 +82,100 @@ export const EunomiaImageCardTagName = "eun-image-card";
|
|
|
55
82
|
* @element eun-image-card
|
|
56
83
|
*/
|
|
57
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
|
+
}
|
|
58
153
|
render() {
|
|
59
154
|
const inner = html `
|
|
60
155
|
<slot name="image"></slot>
|
|
61
|
-
<div id="footer">
|
|
62
|
-
<slot name="title"></slot>
|
|
63
|
-
<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>
|
|
64
159
|
</div>
|
|
65
|
-
${this.renderExternalLinkBadge()}
|
|
160
|
+
${this.renderExternalLinkBadge(__classPrivateFieldGet(this, _EunomiaImageCard_newTab, "f").isBlank)}
|
|
66
161
|
`;
|
|
67
162
|
if (this.href) {
|
|
68
163
|
return this.renderCardLink("card", inner);
|
|
69
164
|
}
|
|
70
|
-
|
|
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>`;
|
|
71
176
|
}
|
|
72
177
|
};
|
|
178
|
+
_EunomiaImageCard_newTab = new WeakMap();
|
|
73
179
|
/**
|
|
74
180
|
* Styles to import to the component.
|
|
75
181
|
*
|
|
@@ -78,6 +184,9 @@ let EunomiaImageCard = class EunomiaImageCard extends CardLinkMixin(LitElement)
|
|
|
78
184
|
* @readonly
|
|
79
185
|
*/
|
|
80
186
|
EunomiaImageCard.styles = [imageCardStyles, cardLinkStyles];
|
|
187
|
+
__decorate([
|
|
188
|
+
state()
|
|
189
|
+
], EunomiaImageCard.prototype, "anchorFocusVisible", void 0);
|
|
81
190
|
EunomiaImageCard = __decorate([
|
|
82
191
|
customElement(EunomiaImageCardTagName)
|
|
83
192
|
], EunomiaImageCard);
|