@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
|
@@ -4,12 +4,26 @@ 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
|
+
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
13
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
14
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
15
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
17
|
+
};
|
|
18
|
+
var _EunomiaLink_currentAnchor, _EunomiaLink_newTab;
|
|
7
19
|
import { customElement, property, queryAssignedElements, } from "lit/decorators.js";
|
|
8
20
|
import { html, LitElement, nothing } from "lit";
|
|
9
21
|
import { classMap } from "lit/directives/class-map.js";
|
|
10
22
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
11
23
|
import { linkStyles } from "./link.styles.js";
|
|
12
|
-
import { handleLinkNavigation } from "../../../utils/navigation.utils.js";
|
|
24
|
+
import { handleLinkNavigation, warnIgnoredHostLinkAttributes, } from "../../../utils/navigation.utils.js";
|
|
25
|
+
import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
|
|
26
|
+
import { NewTabAnchorController } from "../../../utils/new-tab-anchor.controller.js";
|
|
13
27
|
/**
|
|
14
28
|
* Tag name of the link component.
|
|
15
29
|
*/
|
|
@@ -21,15 +35,23 @@ export const EunomiaLinkTagName = "eun-link";
|
|
|
21
35
|
* prevent the new page from controlling the original one, without affecting
|
|
22
36
|
* same-tab navigation.
|
|
23
37
|
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
38
|
+
* Without href, a native anchor placed as a direct child becomes the link
|
|
39
|
+
* instead, such as a framework's own link component. The anchor then exists
|
|
40
|
+
* in the server-rendered HTML, so crawlers that don't run JavaScript still
|
|
41
|
+
* find it, and it keeps the link styles and the current state. When that
|
|
42
|
+
* anchor opens in a new tab, the link shows the same end icon and announces
|
|
43
|
+
* it the same way, through the anchor's aria-description.
|
|
44
|
+
*
|
|
45
|
+
* @slot [default] - The link content, or a native anchor carrying the href itself when href is unset
|
|
46
|
+
* @slot [icon] - Replaces the leading icon entirely with any content, not just an icon element, such as an icon from another set. Falls back to icon when empty. The icon is decorative : the focus ring surrounds the text only
|
|
26
47
|
* @prop {string} href - The destination URL
|
|
27
|
-
* @prop {'_blank' | '_self' | '_parent' | '_top'} [target='_self'] - Where to open the linked URL. Opening in a new tab automatically announces it to assistive technology
|
|
48
|
+
* @prop {'_blank' | '_self' | '_parent' | '_top'} [target='_self'] - Where to open the linked URL. Opening in a new tab automatically adds an external link icon at the end and announces it to assistive technology, in the current locale
|
|
28
49
|
* @prop {import('../../content/icon/icon.type.js').EunomiaIconName} icon - An optional decorative icon displayed to the left of the link
|
|
29
|
-
* @prop {'light' | 'dark'} [theme='light'] - The text color theme. Use dark on a dark background
|
|
50
|
+
* @prop {'light' | 'dark'} [theme='light'] - The text color theme. Use dark on a dark background, such as --eun-surface-inverse, where it takes the --eun-text-on-inverse colors
|
|
30
51
|
* @prop {'auto' | 'off' | 'on'} [visitedStyle='auto'] - Controls the visited state color. Auto follows the browser's real navigation history, off always renders as unvisited, and on always renders as visited
|
|
31
52
|
* @prop {boolean} [current=false] - Marks the link as the current page: it renders with aria-current="page" and keeps the --link-color-current color in every state (hover, focus, visited), for example an active item in a navigation
|
|
32
|
-
* @
|
|
53
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
54
|
+
* @attr {string} aria-label - An accessible label that overrides the link content. When the link also opens in a new tab, a note announcing it is appended automatically. Ignored with a slotted anchor, which takes it instead
|
|
33
55
|
* @fires {NavigationEvent} eunnavigate - Fired before following the link, so a client-side router can intercept the navigation. Cancelable
|
|
34
56
|
* @cssprop [--link-color] - Sets the color of the link
|
|
35
57
|
* @cssprop [--link-color-hover] - Sets the color of the link on hover
|
|
@@ -40,14 +62,18 @@ export const EunomiaLinkTagName = "eun-link";
|
|
|
40
62
|
* @cssprop [--link-line-height] - Sets the line-height of the link. Inherits the surrounding text's line-height when unset
|
|
41
63
|
* @cssprop [--link-text-decoration] - Sets the text decoration of the link, for example none, when embedding a link inside an already distinct interactive surface such as a card
|
|
42
64
|
* @cssprop [--link-icon-color] - Sets the color of the leading icon, independently of the link text color
|
|
65
|
+
* @cssprop [--link-icon-size] - Sets the size of the leading icon, 18px by default. Also sets the font size of the icon slot, so an icon from another set sized in em follows it
|
|
66
|
+
* @cssprop [--link-transition-duration] - Sets the duration of the color, background and focus transitions. Defaults to --eun-duration-xl
|
|
43
67
|
* @cssprop [--link-padding] - Sets padding around the link, for example to give its focus outline room to breathe. Defaults to 0, flush with the text
|
|
68
|
+
* @cssprop [--link-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --link-padding is set
|
|
69
|
+
* @cssprop [--link-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --link-padding is set
|
|
44
70
|
* @cssprop [--link-background] - Sets a persistent background color behind the link. Defaults to transparent
|
|
45
71
|
* @cssprop [--link-background-focus] - Sets a background color shown while the link is keyboard-focused, falling back to --link-background when unset
|
|
46
72
|
* @cssprop [--link-border-radius] - Sets the corner radius of the link's own background/focus outline box
|
|
47
73
|
* @cssstate focus-visible - Set while the link is keyboard-focused (never after a mouse click), so it can be styled from outside the shadow root with eun-link:state(focus-visible). Turbopack's CSS parser (lightningcss) doesn't recognize :state() yet and rejects the whole stylesheet it's in ; ship that rule as a runtime <style>/<link> instead until it's supported
|
|
48
74
|
* @element eun-link
|
|
49
75
|
*/
|
|
50
|
-
let EunomiaLink = class EunomiaLink extends LitElement {
|
|
76
|
+
let EunomiaLink = class EunomiaLink extends LocalizableMixin(LitElement) {
|
|
51
77
|
/**
|
|
52
78
|
* The element's custom state set, typed locally since the bundled DOM
|
|
53
79
|
* typings don't declare `ElementInternals.states` yet.
|
|
@@ -64,14 +90,17 @@ let EunomiaLink = class EunomiaLink extends LitElement {
|
|
|
64
90
|
*/
|
|
65
91
|
this.target = "_self";
|
|
66
92
|
/**
|
|
67
|
-
* Text color theme, use `dark` on a dark background.
|
|
93
|
+
* Text color theme, use `dark` on a dark background. Only reflected once
|
|
94
|
+
* it differs from the default, so an SSR framework doesn't see an
|
|
95
|
+
* attribute it never rendered.
|
|
68
96
|
* @default light
|
|
69
97
|
*/
|
|
70
98
|
this.theme = "light";
|
|
71
99
|
/**
|
|
72
100
|
* Controls the visited-state color: `auto` follows the browser's real
|
|
73
101
|
* navigation history for `href`, `off` always renders as unvisited, `on`
|
|
74
|
-
* always renders as visited.
|
|
102
|
+
* always renders as visited. Only reflected once it differs from the
|
|
103
|
+
* default, like {@link theme}.
|
|
75
104
|
* @default auto
|
|
76
105
|
*/
|
|
77
106
|
this.visitedStyle = "auto";
|
|
@@ -82,6 +111,48 @@ let EunomiaLink = class EunomiaLink extends LitElement {
|
|
|
82
111
|
* @default false
|
|
83
112
|
*/
|
|
84
113
|
this.current = false;
|
|
114
|
+
/**
|
|
115
|
+
* The anchor {@link current} was last mirrored onto, so its
|
|
116
|
+
* `aria-current` can be cleared once it's swapped out or removed.
|
|
117
|
+
* @internal
|
|
118
|
+
*/
|
|
119
|
+
_EunomiaLink_currentAnchor.set(this, void 0);
|
|
120
|
+
/**
|
|
121
|
+
* Announces the slotted anchor opening in a new tab.
|
|
122
|
+
* @internal
|
|
123
|
+
*/
|
|
124
|
+
_EunomiaLink_newTab.set(this, new NewTabAnchorController(this, () => this.slottedAnchor, () => this.dictionary.link.opensInNewTab));
|
|
125
|
+
/**
|
|
126
|
+
* Re-renders when the default slot changes, so an anchor added or removed
|
|
127
|
+
* after the first render switches between the two modes.
|
|
128
|
+
* @private
|
|
129
|
+
*/
|
|
130
|
+
this.handleDefaultSlotChange = () => {
|
|
131
|
+
this.requestUpdate();
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* The slotted anchor's counterpart of {@link handleFocus} : it lives in
|
|
135
|
+
* the light DOM, so its focus reaches the host as a plain `focusin`.
|
|
136
|
+
* @param event the host's focusin event.
|
|
137
|
+
* @private
|
|
138
|
+
*/
|
|
139
|
+
this.handleSlottedFocusIn = (event) => {
|
|
140
|
+
const target = event.target;
|
|
141
|
+
if (target === this.slottedAnchor && target.matches(":focus-visible")) {
|
|
142
|
+
this.states?.add("focus-visible");
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Clears the `focus-visible` custom state once the slotted anchor loses
|
|
147
|
+
* focus.
|
|
148
|
+
* @param event the host's focusout event.
|
|
149
|
+
* @private
|
|
150
|
+
*/
|
|
151
|
+
this.handleSlottedFocusOut = (event) => {
|
|
152
|
+
if (event.target === this.slottedAnchor) {
|
|
153
|
+
this.states?.delete("focus-visible");
|
|
154
|
+
}
|
|
155
|
+
};
|
|
85
156
|
/**
|
|
86
157
|
* Re-renders when the `icon` slot's assigned content changes, so the
|
|
87
158
|
* `icon` prop fallback correctly appears/disappears as content is
|
|
@@ -113,6 +184,56 @@ let EunomiaLink = class EunomiaLink extends LitElement {
|
|
|
113
184
|
}
|
|
114
185
|
super.attributeChangedCallback(name, oldValue, value);
|
|
115
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* The native `<a>` slotted as a direct child while `href` is unset, which
|
|
189
|
+
* then acts as the link itself : it's in the light DOM, so it's part of
|
|
190
|
+
* the server-rendered HTML, and a framework's own link component (Next's
|
|
191
|
+
* `<Link>`, Angular's `routerLink`, ...) can be that anchor. Navigation,
|
|
192
|
+
* `target`/`rel` and the new-tab hint are the consumer's own in this mode.
|
|
193
|
+
* @internal
|
|
194
|
+
*/
|
|
195
|
+
get slottedAnchor() {
|
|
196
|
+
return this.href ? null : this.querySelector(":scope > a");
|
|
197
|
+
}
|
|
198
|
+
connectedCallback() {
|
|
199
|
+
super.connectedCallback();
|
|
200
|
+
this.addEventListener("focusin", this.handleSlottedFocusIn);
|
|
201
|
+
this.addEventListener("focusout", this.handleSlottedFocusOut);
|
|
202
|
+
}
|
|
203
|
+
disconnectedCallback() {
|
|
204
|
+
this.removeEventListener("focusin", this.handleSlottedFocusIn);
|
|
205
|
+
this.removeEventListener("focusout", this.handleSlottedFocusOut);
|
|
206
|
+
super.disconnectedCallback();
|
|
207
|
+
}
|
|
208
|
+
updated(changed) {
|
|
209
|
+
super.updated(changed);
|
|
210
|
+
this.syncSlottedAnchor();
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Mirrors {@link current} onto the slotted anchor as `aria-current`,
|
|
214
|
+
* since that anchor, not the wrapper around it, is what assistive
|
|
215
|
+
* technology announces.
|
|
216
|
+
* @private
|
|
217
|
+
*/
|
|
218
|
+
syncSlottedAnchor() {
|
|
219
|
+
const anchor = this.slottedAnchor;
|
|
220
|
+
if (__classPrivateFieldGet(this, _EunomiaLink_currentAnchor, "f") && __classPrivateFieldGet(this, _EunomiaLink_currentAnchor, "f") !== anchor) {
|
|
221
|
+
__classPrivateFieldGet(this, _EunomiaLink_currentAnchor, "f").removeAttribute("aria-current");
|
|
222
|
+
__classPrivateFieldSet(this, _EunomiaLink_currentAnchor, undefined, "f");
|
|
223
|
+
}
|
|
224
|
+
if (!anchor) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
warnIgnoredHostLinkAttributes(this);
|
|
228
|
+
if (this.current) {
|
|
229
|
+
anchor.setAttribute("aria-current", "page");
|
|
230
|
+
__classPrivateFieldSet(this, _EunomiaLink_currentAnchor, anchor, "f");
|
|
231
|
+
}
|
|
232
|
+
else if (__classPrivateFieldGet(this, _EunomiaLink_currentAnchor, "f") === anchor) {
|
|
233
|
+
anchor.removeAttribute("aria-current");
|
|
234
|
+
__classPrivateFieldSet(this, _EunomiaLink_currentAnchor, undefined, "f");
|
|
235
|
+
}
|
|
236
|
+
}
|
|
116
237
|
/**
|
|
117
238
|
* Mirrors the inner anchor's real `:focus-visible` state onto the host as
|
|
118
239
|
* the `focus-visible` custom state, styled from outside with
|
|
@@ -147,6 +268,16 @@ let EunomiaLink = class EunomiaLink extends LitElement {
|
|
|
147
268
|
handleClick(event) {
|
|
148
269
|
handleLinkNavigation(this, event, this.href, this.target);
|
|
149
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* The decorative icon at the end of a link opening in a new tab, the
|
|
273
|
+
* wording being announced separately.
|
|
274
|
+
* @private
|
|
275
|
+
*/
|
|
276
|
+
renderExternalLinkIcon() {
|
|
277
|
+
return html `<span id="external-link-icon">
|
|
278
|
+
<eun-icon name="arrow_forward" shape="round" size="14"></eun-icon>
|
|
279
|
+
</span>`;
|
|
280
|
+
}
|
|
150
281
|
/**
|
|
151
282
|
* Renders the link template.
|
|
152
283
|
* @returns The rendered HTML template
|
|
@@ -154,6 +285,27 @@ let EunomiaLink = class EunomiaLink extends LitElement {
|
|
|
154
285
|
render() {
|
|
155
286
|
const isBlank = this.target === "_blank";
|
|
156
287
|
const hasIcon = !!this.icon || this.iconSlotEls?.length > 0;
|
|
288
|
+
const iconSlot = html `<slot
|
|
289
|
+
name="icon"
|
|
290
|
+
class=${classMap({ "has-icon": hasIcon })}
|
|
291
|
+
@slotchange=${this.handleIconSlotChange}
|
|
292
|
+
>
|
|
293
|
+
${this.icon ? html `<eun-icon name=${this.icon}></eun-icon>` : nothing}
|
|
294
|
+
</slot>`;
|
|
295
|
+
if (this.slottedAnchor) {
|
|
296
|
+
return html `
|
|
297
|
+
<span
|
|
298
|
+
id="link"
|
|
299
|
+
part="link"
|
|
300
|
+
class=${classMap({ "has-icon": hasIcon, "slotted-link": true })}
|
|
301
|
+
>
|
|
302
|
+
${iconSlot}
|
|
303
|
+
<slot @slotchange=${this.handleDefaultSlotChange}></slot>
|
|
304
|
+
${__classPrivateFieldGet(this, _EunomiaLink_newTab, "f").isBlank ? this.renderExternalLinkIcon() : nothing}
|
|
305
|
+
</span>
|
|
306
|
+
`;
|
|
307
|
+
}
|
|
308
|
+
const newTabHint = `(${this.dictionary.link.opensInNewTab})`;
|
|
157
309
|
return html `
|
|
158
310
|
<a
|
|
159
311
|
id="link"
|
|
@@ -164,29 +316,26 @@ let EunomiaLink = class EunomiaLink extends LitElement {
|
|
|
164
316
|
aria-current=${ifDefined(this.current ? "page" : undefined)}
|
|
165
317
|
rel=${ifDefined(isBlank ? "noopener noreferrer" : undefined)}
|
|
166
318
|
aria-label=${ifDefined(isBlank && this.ariaLabel
|
|
167
|
-
? `${this.ariaLabel}
|
|
319
|
+
? `${this.ariaLabel} ${newTabHint}`
|
|
168
320
|
: (this.ariaLabel ?? undefined))}
|
|
169
321
|
@click=${this.handleClick}
|
|
170
322
|
@focus=${this.handleFocus}
|
|
171
323
|
@blur=${this.handleBlur}
|
|
172
324
|
>
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
>
|
|
178
|
-
${this.icon
|
|
179
|
-
? html `<eun-icon name=${this.icon} size="18"></eun-icon>`
|
|
180
|
-
: nothing}
|
|
181
|
-
</slot>
|
|
182
|
-
<slot></slot>
|
|
325
|
+
${iconSlot}
|
|
326
|
+
<span id="label"
|
|
327
|
+
><slot @slotchange=${this.handleDefaultSlotChange}></slot
|
|
328
|
+
></span>
|
|
183
329
|
${isBlank && !this.ariaLabel
|
|
184
|
-
? html `<span class="sr-only">
|
|
330
|
+
? html `<span class="sr-only"> ${newTabHint}</span>`
|
|
185
331
|
: nothing}
|
|
332
|
+
${isBlank ? this.renderExternalLinkIcon() : nothing}
|
|
186
333
|
</a>
|
|
187
334
|
`;
|
|
188
335
|
}
|
|
189
336
|
};
|
|
337
|
+
_EunomiaLink_currentAnchor = new WeakMap();
|
|
338
|
+
_EunomiaLink_newTab = new WeakMap();
|
|
190
339
|
/**
|
|
191
340
|
* Styles to import to the component.
|
|
192
341
|
*
|
|
@@ -205,10 +354,21 @@ __decorate([
|
|
|
205
354
|
property()
|
|
206
355
|
], EunomiaLink.prototype, "icon", void 0);
|
|
207
356
|
__decorate([
|
|
208
|
-
property({
|
|
357
|
+
property({
|
|
358
|
+
reflect: true,
|
|
359
|
+
converter: {
|
|
360
|
+
toAttribute: (value) => (value === "light" ? null : value),
|
|
361
|
+
},
|
|
362
|
+
})
|
|
209
363
|
], EunomiaLink.prototype, "theme", void 0);
|
|
210
364
|
__decorate([
|
|
211
|
-
property({
|
|
365
|
+
property({
|
|
366
|
+
reflect: true,
|
|
367
|
+
attribute: "visited-style",
|
|
368
|
+
converter: {
|
|
369
|
+
toAttribute: (value) => (value === "auto" ? null : value),
|
|
370
|
+
},
|
|
371
|
+
})
|
|
212
372
|
], EunomiaLink.prototype, "visitedStyle", void 0);
|
|
213
373
|
__decorate([
|
|
214
374
|
property({ type: Boolean, reflect: true })
|
|
@@ -13,7 +13,11 @@ import { css } from "lit";
|
|
|
13
13
|
* [--link-color-current] - Set a custom link color for the current page link (the `current` attribute). It stays this color on hover, focus and visited states
|
|
14
14
|
* [--link-text-decoration] - Set a custom text-decoration for the link
|
|
15
15
|
* [--link-icon-color] - Set a custom color for the leading icon, independent from the link text color
|
|
16
|
+
* [--link-icon-size] - Set a custom size for the leading icon, 18px by default. Also the font size of the icon slot, for an icon sized in em
|
|
17
|
+
* [--link-transition-duration] - Set a custom duration for the link transitions, --eun-duration-xl by default
|
|
16
18
|
* [--link-padding] - Set custom padding around the link, for example to give its focus outline room to breathe. Defaults to 0, flush with the text
|
|
19
|
+
* [--link-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --link-padding is set
|
|
20
|
+
* [--link-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --link-padding is set
|
|
17
21
|
* [--link-background] - Set a persistent background color behind the link. Defaults to transparent
|
|
18
22
|
* [--link-background-focus] - Set a background color shown while the link is keyboard-focused, falling back to --link-background when unset
|
|
19
23
|
* [--link-border-radius] - Set a custom corner radius for the link's own background/focus outline box
|
|
@@ -42,6 +46,7 @@ const base = css `
|
|
|
42
46
|
var(--eun-color-primary-500, #3d6fff)
|
|
43
47
|
);
|
|
44
48
|
--_textDecoration: var(--link-text-decoration, underline);
|
|
49
|
+
--_duration: var(--link-transition-duration, var(--eun-duration-xl, 300ms));
|
|
45
50
|
--_iconColor: var(--link-icon-color, var(--_color));
|
|
46
51
|
--icon-color: var(--_iconColor);
|
|
47
52
|
font-size: var(--link-font-size, unset);
|
|
@@ -50,9 +55,12 @@ const base = css `
|
|
|
50
55
|
align-items: center;
|
|
51
56
|
}
|
|
52
57
|
:host([theme="dark"]) {
|
|
53
|
-
--_color: var(
|
|
54
|
-
|
|
55
|
-
|
|
58
|
+
--_color: var(
|
|
59
|
+
--link-color,
|
|
60
|
+
var(--eun-text-on-inverse-secondary, rgba(255, 255, 255, 0.7))
|
|
61
|
+
);
|
|
62
|
+
--_colorHover: var(--link-color-hover, var(--eun-text-on-inverse, #fff));
|
|
63
|
+
--_colorFocus: var(--link-color-focus, var(--eun-text-on-inverse, #fff));
|
|
56
64
|
--_colorVisited: var(
|
|
57
65
|
--link-color-visited,
|
|
58
66
|
var(--eun-color-purple-300, #bea0ed)
|
|
@@ -65,24 +73,42 @@ const base = css `
|
|
|
65
73
|
display: inline-flex;
|
|
66
74
|
flex-shrink: 0;
|
|
67
75
|
}
|
|
76
|
+
slot[name="icon"] {
|
|
77
|
+
--icon-size: var(--link-icon-size, 18px);
|
|
78
|
+
font-size: var(--link-icon-size, inherit);
|
|
79
|
+
}
|
|
80
|
+
#label {
|
|
81
|
+
border-radius: var(--link-border-radius, var(--eun-border-radius-m, 8px));
|
|
82
|
+
outline: 2px solid transparent;
|
|
83
|
+
transition: outline var(--_duration) var(--eun-easing-out, ease-out);
|
|
84
|
+
}
|
|
85
|
+
#external-link-icon {
|
|
86
|
+
display: inline-flex;
|
|
87
|
+
flex-shrink: 0;
|
|
88
|
+
margin-inline-start: calc(-1 * var(--eun-space-xs, 4px));
|
|
89
|
+
transform: rotate(-45deg);
|
|
90
|
+
}
|
|
68
91
|
#link {
|
|
69
92
|
display: inline-flex;
|
|
70
93
|
align-items: center;
|
|
71
94
|
gap: var(--eun-space-s, 8px);
|
|
72
|
-
padding: var(
|
|
95
|
+
padding: var(
|
|
96
|
+
--link-padding,
|
|
97
|
+
var(--link-padding-block, 0) var(--link-padding-inline, 0)
|
|
98
|
+
);
|
|
73
99
|
background: var(--link-background, transparent);
|
|
74
100
|
color: var(--_color);
|
|
75
101
|
font: inherit;
|
|
76
102
|
text-decoration: var(--_textDecoration);
|
|
77
|
-
text-wrap: pretty;
|
|
103
|
+
text-wrap-style: pretty;
|
|
78
104
|
border-radius: var(--link-border-radius, var(--eun-border-radius-m, 8px));
|
|
79
105
|
cursor: pointer;
|
|
80
106
|
outline: 2px solid transparent;
|
|
81
107
|
transition:
|
|
82
|
-
color
|
|
83
|
-
background-color
|
|
84
|
-
outline
|
|
85
|
-
text-decoration-color
|
|
108
|
+
color var(--_duration) var(--eun-easing-out, ease-out),
|
|
109
|
+
background-color var(--_duration) var(--eun-easing-out, ease-out),
|
|
110
|
+
outline var(--_duration) var(--eun-easing-out, ease-out),
|
|
111
|
+
text-decoration-color var(--_duration) var(--eun-easing-out, ease-out);
|
|
86
112
|
}
|
|
87
113
|
#link:visited {
|
|
88
114
|
color: var(--_colorVisited);
|
|
@@ -123,6 +149,18 @@ const base = css `
|
|
|
123
149
|
outline-offset: 2px;
|
|
124
150
|
--icon-color: var(--link-icon-color, var(--_colorHover));
|
|
125
151
|
}
|
|
152
|
+
#link.has-icon:focus-visible {
|
|
153
|
+
background: var(--link-background, transparent);
|
|
154
|
+
outline-color: transparent;
|
|
155
|
+
}
|
|
156
|
+
#link.has-icon:focus-visible #label {
|
|
157
|
+
background: var(
|
|
158
|
+
--link-background-focus,
|
|
159
|
+
var(--link-background, transparent)
|
|
160
|
+
);
|
|
161
|
+
outline-color: var(--_colorFocus);
|
|
162
|
+
outline-offset: 2px;
|
|
163
|
+
}
|
|
126
164
|
|
|
127
165
|
:host([current]) #link,
|
|
128
166
|
:host([current]) #link:visited,
|
|
@@ -134,8 +172,106 @@ const base = css `
|
|
|
134
172
|
--icon-color: var(--link-icon-color, var(--_colorCurrent));
|
|
135
173
|
}
|
|
136
174
|
|
|
175
|
+
#link.slotted-link {
|
|
176
|
+
position: relative;
|
|
177
|
+
text-decoration: none;
|
|
178
|
+
cursor: auto;
|
|
179
|
+
}
|
|
180
|
+
::slotted(a)::after {
|
|
181
|
+
content: "";
|
|
182
|
+
position: absolute;
|
|
183
|
+
inset: 0;
|
|
184
|
+
border-radius: inherit;
|
|
185
|
+
}
|
|
186
|
+
::slotted(a) {
|
|
187
|
+
color: var(--_color);
|
|
188
|
+
font: inherit;
|
|
189
|
+
text-decoration: var(--_textDecoration);
|
|
190
|
+
text-wrap-style: pretty;
|
|
191
|
+
border-radius: var(--link-border-radius, var(--eun-border-radius-m, 8px));
|
|
192
|
+
transition:
|
|
193
|
+
color var(--_duration) var(--eun-easing-out, ease-out),
|
|
194
|
+
background-color var(--_duration) var(--eun-easing-out, ease-out),
|
|
195
|
+
text-decoration-color var(--_duration) var(--eun-easing-out, ease-out);
|
|
196
|
+
}
|
|
197
|
+
::slotted(a:visited) {
|
|
198
|
+
color: var(--_colorVisited);
|
|
199
|
+
text-decoration-color: var(--_colorVisited);
|
|
200
|
+
}
|
|
201
|
+
::slotted(a:visited:hover) {
|
|
202
|
+
color: var(--_colorVisitedHover);
|
|
203
|
+
text-decoration-color: var(--_colorVisitedHover);
|
|
204
|
+
}
|
|
205
|
+
:host([visited-style="off"]) ::slotted(a:visited) {
|
|
206
|
+
color: var(--_color);
|
|
207
|
+
text-decoration-color: currentColor;
|
|
208
|
+
}
|
|
209
|
+
:host([visited-style="off"]) ::slotted(a:visited:hover) {
|
|
210
|
+
color: var(--_colorHover);
|
|
211
|
+
text-decoration-color: currentColor;
|
|
212
|
+
}
|
|
213
|
+
:host([visited-style="on"]) ::slotted(a) {
|
|
214
|
+
color: var(--_colorVisited);
|
|
215
|
+
text-decoration-color: var(--_colorVisited);
|
|
216
|
+
}
|
|
217
|
+
:host([visited-style="on"]) ::slotted(a:hover) {
|
|
218
|
+
color: var(--_colorVisitedHover);
|
|
219
|
+
text-decoration-color: var(--_colorVisitedHover);
|
|
220
|
+
}
|
|
221
|
+
::slotted(a:hover) {
|
|
222
|
+
color: var(--_colorHover);
|
|
223
|
+
}
|
|
224
|
+
#link.slotted-link:hover {
|
|
225
|
+
--icon-color: var(--link-icon-color, var(--_colorHover));
|
|
226
|
+
}
|
|
227
|
+
::slotted(a:focus-visible) {
|
|
228
|
+
color: var(--_colorHover) !important;
|
|
229
|
+
text-decoration: none;
|
|
230
|
+
outline: none;
|
|
231
|
+
}
|
|
232
|
+
#link.has-icon ::slotted(a) {
|
|
233
|
+
outline: 2px solid transparent;
|
|
234
|
+
transition:
|
|
235
|
+
color var(--_duration) var(--eun-easing-out, ease-out),
|
|
236
|
+
background-color var(--_duration) var(--eun-easing-out, ease-out),
|
|
237
|
+
outline var(--_duration) var(--eun-easing-out, ease-out),
|
|
238
|
+
text-decoration-color var(--_duration) var(--eun-easing-out, ease-out);
|
|
239
|
+
}
|
|
240
|
+
#link.has-icon ::slotted(a:focus-visible) {
|
|
241
|
+
background: var(
|
|
242
|
+
--link-background-focus,
|
|
243
|
+
var(--link-background, transparent)
|
|
244
|
+
);
|
|
245
|
+
outline-color: var(--_colorFocus);
|
|
246
|
+
outline-offset: 2px;
|
|
247
|
+
}
|
|
248
|
+
:host(:state(focus-visible)) #link.slotted-link.has-icon {
|
|
249
|
+
--icon-color: var(--link-icon-color, var(--_colorHover));
|
|
250
|
+
}
|
|
251
|
+
:host(:state(focus-visible)) #link.slotted-link:not(.has-icon) {
|
|
252
|
+
background: var(
|
|
253
|
+
--link-background-focus,
|
|
254
|
+
var(--link-background, transparent)
|
|
255
|
+
);
|
|
256
|
+
outline-color: var(--_colorFocus);
|
|
257
|
+
outline-offset: 2px;
|
|
258
|
+
--icon-color: var(--link-icon-color, var(--_colorHover));
|
|
259
|
+
}
|
|
260
|
+
:host([current]) ::slotted(a),
|
|
261
|
+
:host([current]) ::slotted(a:visited),
|
|
262
|
+
:host([current]) ::slotted(a:hover),
|
|
263
|
+
:host([current]) ::slotted(a:visited:hover),
|
|
264
|
+
:host([current]) ::slotted(a:focus-visible) {
|
|
265
|
+
color: var(--_colorCurrent) !important;
|
|
266
|
+
text-decoration-color: var(--_colorCurrent);
|
|
267
|
+
}
|
|
268
|
+
:host([current]) #link.slotted-link {
|
|
269
|
+
--icon-color: var(--link-icon-color, var(--_colorCurrent));
|
|
270
|
+
}
|
|
271
|
+
|
|
137
272
|
@media (prefers-reduced-motion: reduce) {
|
|
138
|
-
#link
|
|
273
|
+
#link,
|
|
274
|
+
::slotted(a) {
|
|
139
275
|
transition: none;
|
|
140
276
|
}
|
|
141
277
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared color palette of the button family (`eun-button`, `eun-fab`, and so
|
|
3
|
-
* `eun-dropdown-button`, which renders an `eun-button`). A `
|
|
3
|
+
* `eun-dropdown-button`, which renders an `eun-button`). A `color` fills
|
|
4
4
|
* the same slots on the host, and each component's stylesheet then reads
|
|
5
5
|
* them, per appearance and state, *behind* its public `--<component>-*`
|
|
6
|
-
* custom properties, so those always win over any
|
|
6
|
+
* custom properties, so those always win over any color and appearance.
|
|
7
7
|
*
|
|
8
8
|
* Slots :
|
|
9
9
|
* - `--_solid`, `--_solid-hover`, `--_solid-active` : the strong color, at
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* `light` and `dark` are absolute colors : white and black, whatever the
|
|
21
21
|
* appearance. They have no pale wash, so the tinted surface is as solid as
|
|
22
22
|
* the strong one, and `flat` is a faint wash of the color itself rather than
|
|
23
|
-
* the neutral surface every other
|
|
23
|
+
* the neutral surface every other color shares. By default they follow the
|
|
24
24
|
* grey scale, which flips with the active theme ; `fixed-color` pins them to
|
|
25
25
|
* the light theme's white and black instead.
|
|
26
26
|
*/
|