@eunomia/elements 1.0.0-beta.4 → 1.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/breakpoints.d.ts +37 -10
- package/dist/breakpoints.js +38 -10
- package/dist/cdn/components/chunks/{chunk-MMLIPCOY.js → chunk-22D3SRFR.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-4MXL6PZC.js → chunk-2Y2EU2CI.js} +28 -28
- package/dist/cdn/components/chunks/chunk-3MTUVMM5.js +1 -0
- package/dist/cdn/components/chunks/chunk-4PI6RDUS.js +1 -0
- package/dist/cdn/components/chunks/chunk-5GKM5DIB.js +1 -0
- package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-7KKWYPHY.js} +4 -2
- package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +1 -0
- package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
- package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-NHFWATVN.js → chunk-BQFJR2UP.js} +5 -5
- package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
- package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
- package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
- package/dist/cdn/components/chunks/{chunk-E4IS25H7.js → chunk-G5SBDQQ3.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-S2UCEWNG.js → chunk-JYIIWN2P.js} +13 -11
- package/dist/cdn/components/chunks/{chunk-EOWBYZV7.js → chunk-KDN4O5W2.js} +26 -13
- package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +1 -0
- package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-L2ADCEN7.js} +1 -1
- package/dist/cdn/components/chunks/chunk-LMVW522V.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-MOMYII3P.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-SIHZFOTK.js → chunk-MQQ4BGVJ.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
- package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
- package/dist/cdn/components/chunks/{chunk-KBH5PCUO.js → chunk-PE4DAXHQ.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-GSJEJLFA.js → chunk-PMPSJG5V.js} +7 -7
- package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-EJIX2D4Z.js → chunk-QZ5SHR3I.js} +15 -11
- package/dist/cdn/components/chunks/chunk-RS7TWEMQ.js +1 -0
- package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
- package/dist/cdn/components/chunks/{chunk-YGUJJ25C.js → chunk-SZYEBMG6.js} +11 -10
- package/dist/cdn/components/chunks/chunk-UDVB4LAE.js +56 -0
- package/dist/cdn/components/chunks/{chunk-UAGCQF23.js → chunk-UYZR4JXZ.js} +17 -12
- package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
- package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
- package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +38 -0
- package/dist/cdn/components/chunks/{chunk-BMQOI7HX.js → chunk-VYFR364B.js} +128 -74
- package/dist/cdn/components/chunks/{chunk-IJ5WFMK4.js → chunk-XDPRWUKN.js} +7 -6
- package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-RJCJXB7Y.js → chunk-ZKZV2YG5.js} +18 -18
- package/dist/cdn/components/eun-alert.js +24 -16
- package/dist/cdn/components/eun-animate.js +12 -6
- package/dist/cdn/components/eun-badge.js +7 -7
- package/dist/cdn/components/eun-breadcrumb.js +25 -41
- package/dist/cdn/components/eun-button.js +1 -1
- package/dist/cdn/components/eun-calendar.js +68 -66
- package/dist/cdn/components/eun-card.js +67 -13
- package/dist/cdn/components/eun-carousel.js +66 -35
- package/dist/cdn/components/eun-check-card.js +13 -6
- package/dist/cdn/components/eun-checkbox-list.js +4 -4
- package/dist/cdn/components/eun-checkbox.js +1 -1
- package/dist/cdn/components/eun-chip.js +1 -1
- package/dist/cdn/components/eun-collapse.js +87 -39
- package/dist/cdn/components/eun-color-picker.js +54 -53
- package/dist/cdn/components/eun-counter.js +14 -13
- package/dist/cdn/components/eun-date-picker.js +66 -63
- package/dist/cdn/components/eun-description-list.js +152 -0
- package/dist/cdn/components/eun-divider.js +1 -1
- package/dist/cdn/components/eun-drawer.js +26 -12
- package/dist/cdn/components/eun-dropdown-button.js +1 -1
- package/dist/cdn/components/eun-dropdown-item.js +6 -5
- package/dist/cdn/components/eun-fab.js +20 -19
- package/dist/cdn/components/eun-icon.js +1 -1
- package/dist/cdn/components/eun-image-card.js +79 -22
- package/dist/cdn/components/eun-image-carousel.js +92 -47
- package/dist/cdn/components/eun-infinite-list.js +23 -11
- package/dist/cdn/components/eun-input-file.js +14 -13
- package/dist/cdn/components/eun-input-phone.js +26 -26
- package/dist/cdn/components/eun-input.js +1 -1
- package/dist/cdn/components/eun-label.js +4 -4
- package/dist/cdn/components/eun-link.js +174 -27
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +29 -22
- package/dist/cdn/components/eun-pagination.js +17 -12
- package/dist/cdn/components/eun-password-strength.js +6 -2
- package/dist/cdn/components/eun-progress-bar.js +13 -5
- package/dist/cdn/components/eun-radio-card.js +16 -9
- package/dist/cdn/components/eun-radio-list.js +4 -4
- package/dist/cdn/components/eun-radio.js +1 -1
- package/dist/cdn/components/eun-scheduler-event-editor.js +8 -8
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +42 -42
- package/dist/cdn/components/eun-search.js +21 -20
- package/dist/cdn/components/eun-select.js +12 -11
- package/dist/cdn/components/eun-sidebar.js +34 -20
- package/dist/cdn/components/eun-skeleton.js +1 -1
- package/dist/cdn/components/eun-slider.js +15 -14
- package/dist/cdn/components/eun-sliding-card.js +8 -4
- package/dist/cdn/components/eun-step.js +17 -6
- package/dist/cdn/components/eun-stepper.js +17 -6
- package/dist/cdn/components/eun-switch.js +10 -8
- package/dist/cdn/components/eun-tab-group.js +22 -17
- package/dist/cdn/components/eun-tab-panel.js +11 -3
- package/dist/cdn/components/eun-tab.js +1 -1
- package/dist/cdn/components/eun-table-action-bar.js +1 -1
- package/dist/cdn/components/eun-table.js +572 -31
- package/dist/cdn/components/eun-tag.js +13 -7
- package/dist/cdn/components/eun-textarea.js +24 -24
- package/dist/cdn/components/eun-time-picker.js +21 -19
- package/dist/cdn/components/eun-toast.js +36 -16
- package/dist/cdn/components/eun-toggle-group.js +64 -37
- package/dist/cdn/components/eun-toggle-item.js +24 -21
- package/dist/cdn/components/eun-toggle.js +12 -10
- package/dist/cdn/components/eun-toolbar.js +62 -52
- package/dist/cdn/components/eun-tooltip.js +30 -14
- package/dist/cdn/styles/breakpoints.scss +8 -0
- package/dist/cdn/styles/eunomia-grid.scss +6 -0
- package/dist/cdn/styles/eunomia-themes.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
- package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
- package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
- package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
- package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
- package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
- package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
- package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
- package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
- package/dist/components/action/button/button.d.ts +51 -19
- package/dist/components/action/button/button.js +107 -24
- package/dist/components/action/button/button.styles.js +115 -62
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +10 -10
- package/dist/components/action/dropdown-button/dropdown-button.js +18 -17
- package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
- package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
- package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
- package/dist/components/action/fab/fab.d.ts +7 -6
- package/dist/components/action/fab/fab.js +11 -8
- package/dist/components/action/fab/fab.styles.js +18 -17
- package/dist/components/action/link/link.d.ts +72 -9
- package/dist/components/action/link/link.js +183 -23
- package/dist/components/action/link/link.styles.js +146 -10
- package/dist/components/action/shared-styles/button-palette.styles.d.ts +3 -3
- package/dist/components/action/shared-styles/button-palette.styles.js +29 -29
- package/dist/components/action/toggle/toggle-group.d.ts +17 -5
- package/dist/components/action/toggle/toggle-group.js +46 -19
- package/dist/components/action/toggle/toggle-group.styles.d.ts +4 -1
- package/dist/components/action/toggle/toggle-group.styles.js +56 -27
- package/dist/components/action/toggle/toggle-item.d.ts +4 -4
- package/dist/components/action/toggle/toggle-item.js +2 -2
- package/dist/components/action/toggle/toggle-item.styles.js +20 -17
- package/dist/components/action/toggle/toggle.d.ts +2 -0
- package/dist/components/action/toggle/toggle.js +2 -0
- package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
- package/dist/components/action/toggle/toggle.styles.js +12 -8
- package/dist/components/alert/alert/alert.d.ts +2 -0
- package/dist/components/alert/alert/alert.js +2 -0
- package/dist/components/alert/alert/alert.styles.js +23 -13
- package/dist/components/alert/drawer/drawer.d.ts +3 -1
- package/dist/components/alert/drawer/drawer.js +5 -3
- package/dist/components/alert/drawer/drawer.styles.js +25 -9
- package/dist/components/alert/modal/modal.d.ts +11 -9
- package/dist/components/alert/modal/modal.js +15 -13
- package/dist/components/alert/modal/modal.styles.js +16 -7
- package/dist/components/alert/toast/toast.d.ts +2 -0
- package/dist/components/alert/toast/toast.js +2 -0
- package/dist/components/alert/toast/toast.styles.js +37 -15
- package/dist/components/content/badge/badge.d.ts +6 -6
- package/dist/components/content/badge/badge.js +4 -4
- package/dist/components/content/badge/badge.styles.js +4 -4
- package/dist/components/content/card/card.d.ts +39 -7
- package/dist/components/content/card/card.js +71 -7
- package/dist/components/content/card/card.styles.js +58 -11
- package/dist/components/content/card/image-card.d.ts +62 -7
- package/dist/components/content/card/image-card.js +121 -11
- package/dist/components/content/card/image-card.styles.js +66 -15
- package/dist/components/content/card/sliding-card.d.ts +4 -1
- package/dist/components/content/card/sliding-card.js +3 -0
- package/dist/components/content/card/sliding-card.styles.js +5 -1
- package/dist/components/content/collapse/collapse.d.ts +39 -12
- package/dist/components/content/collapse/collapse.js +65 -25
- package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
- package/dist/components/content/collapse/collapse.styles.js +69 -18
- package/dist/components/content/description-list/description-list.d.ts +87 -0
- package/dist/components/content/description-list/description-list.js +107 -0
- package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
- package/dist/components/content/description-list/description-list.styles.js +185 -0
- package/dist/components/content/icon/icon.d.ts +14 -2
- package/dist/components/content/icon/icon.js +54 -22
- package/dist/components/content/icon/icon.style.d.ts +2 -0
- package/dist/components/content/icon/icon.style.js +8 -2
- package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
- package/dist/components/content/image-carousel/image-carousel.js +48 -45
- package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
- package/dist/components/content/password-strength/password-strength.styles.js +5 -1
- package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
- package/dist/components/content/shared-styles/card-link.styles.js +5 -3
- package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
- package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
- package/dist/components/content/tag/tag.d.ts +4 -0
- package/dist/components/content/tag/tag.js +4 -0
- package/dist/components/content/tag/tag.styles.js +14 -4
- package/dist/components/content/tooltip/tooltip.d.ts +3 -2
- package/dist/components/content/tooltip/tooltip.js +9 -16
- package/dist/components/content/tooltip/tooltip.styles.js +25 -7
- package/dist/components/form/checkbox/check-card.d.ts +4 -1
- package/dist/components/form/checkbox/check-card.js +4 -1
- package/dist/components/form/checkbox/check-card.styles.js +13 -4
- package/dist/components/form/checkbox/checkbox-list.d.ts +4 -1
- package/dist/components/form/checkbox/checkbox-list.js +11 -7
- package/dist/components/form/checkbox/checkbox.d.ts +4 -1
- package/dist/components/form/checkbox/checkbox.js +4 -1
- package/dist/components/form/checkbox/checkbox.styles.js +2 -2
- package/dist/components/form/color-picker/color-picker.d.ts +10 -4
- package/dist/components/form/color-picker/color-picker.js +23 -25
- package/dist/components/form/color-picker/color-picker.styles.js +6 -5
- package/dist/components/form/counter/counter.d.ts +7 -4
- package/dist/components/form/counter/counter.js +8 -5
- package/dist/components/form/counter/counter.styles.js +10 -9
- package/dist/components/form/date-picker/date-picker.d.ts +40 -36
- package/dist/components/form/date-picker/date-picker.js +35 -45
- package/dist/components/form/date-picker/date-picker.styles.js +13 -10
- package/dist/components/form/input/input.d.ts +10 -4
- package/dist/components/form/input/input.js +12 -6
- package/dist/components/form/input-file/input-file.d.ts +4 -1
- package/dist/components/form/input-file/input-file.js +8 -5
- package/dist/components/form/input-file/input-file.styles.js +3 -2
- package/dist/components/form/input-phone/input-phone.d.ts +11 -5
- package/dist/components/form/input-phone/input-phone.js +16 -20
- package/dist/components/form/input-phone/input-phone.styles.js +16 -16
- package/dist/components/form/label/label.styles.js +3 -3
- package/dist/components/form/radio/radio-card.d.ts +5 -2
- package/dist/components/form/radio/radio-card.js +5 -2
- package/dist/components/form/radio/radio-card.styles.js +14 -5
- package/dist/components/form/radio/radio-list.d.ts +5 -2
- package/dist/components/form/radio/radio-list.js +14 -10
- package/dist/components/form/radio/radio.d.ts +5 -2
- package/dist/components/form/radio/radio.js +5 -2
- package/dist/components/form/radio/radio.styles.js +4 -4
- package/dist/components/form/search/search.d.ts +2 -1
- package/dist/components/form/search/search.js +6 -15
- package/dist/components/form/search/search.styles.js +8 -7
- package/dist/components/form/select/select.d.ts +12 -5
- package/dist/components/form/select/select.js +18 -21
- package/dist/components/form/select/select.styles.js +3 -2
- package/dist/components/form/shared-styles/card.styles.js +5 -4
- package/dist/components/form/shared-styles/field.styles.js +21 -11
- package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
- package/dist/components/form/slider/slider.d.ts +4 -1
- package/dist/components/form/slider/slider.js +5 -2
- package/dist/components/form/slider/slider.styles.js +8 -7
- package/dist/components/form/switch/switch.d.ts +4 -1
- package/dist/components/form/switch/switch.js +4 -1
- package/dist/components/form/switch/switch.styles.js +7 -5
- package/dist/components/form/textarea/textarea.d.ts +10 -4
- package/dist/components/form/textarea/textarea.js +18 -12
- package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
- package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
- package/dist/components/form/time-picker/time-picker.d.ts +9 -5
- package/dist/components/form/time-picker/time-picker.js +25 -29
- package/dist/components/form/time-picker/time-picker.styles.js +9 -8
- package/dist/components/layout/animate/animate.d.ts +41 -11
- package/dist/components/layout/animate/animate.js +48 -16
- package/dist/components/layout/animate/animate.styles.js +9 -16
- package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
- package/dist/components/layout/infinite-list/infinite-list.js +115 -18
- package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
- package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
- package/dist/components/loader/loader/loader.styles.js +3 -1
- package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
- package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
- package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
- package/dist/components/navigation/carousel/carousel.d.ts +30 -10
- package/dist/components/navigation/carousel/carousel.js +37 -18
- package/dist/components/navigation/carousel/carousel.styles.js +60 -20
- package/dist/components/navigation/pagination/pagination.styles.js +8 -3
- package/dist/components/navigation/sidebar/sidebar.d.ts +2 -0
- package/dist/components/navigation/sidebar/sidebar.js +2 -0
- package/dist/components/navigation/sidebar/sidebar.styles.js +27 -11
- package/dist/components/navigation/stepper/step.styles.js +16 -5
- package/dist/components/navigation/stepper/stepper.styles.js +16 -5
- package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
- package/dist/components/navigation/tabs/tab/tab.js +11 -0
- package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
- package/dist/components/navigation/tabs/tab-group/tab-group.js +7 -8
- package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +19 -14
- package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
- package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
- package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
- package/dist/components/navigation/toolbar/toolbar.d.ts +17 -49
- package/dist/components/navigation/toolbar/toolbar.js +23 -71
- package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
- package/dist/events/table-row-click.event.d.ts +5 -4
- package/dist/events/table-row-click.event.js +10 -5
- package/dist/features/scheduler/calendar/calendar.d.ts +12 -12
- package/dist/features/scheduler/calendar/calendar.js +15 -14
- package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
- package/dist/features/scheduler/scheduler/scheduler.d.ts +7 -7
- package/dist/features/scheduler/scheduler/scheduler.js +21 -35
- package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
- package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +12 -8
- package/dist/features/scheduler/scheduler-event/scheduler-event.js +9 -7
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +16 -10
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +5 -5
- package/dist/features/scheduler/shared/scheduler-event-popover.js +2 -2
- package/dist/features/scheduler/shared/scheduler-hour-grid.d.ts +2 -2
- package/dist/features/scheduler/shared/scheduler-hour-grid.js +3 -3
- package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
- package/dist/features/scheduler/shared/scheduler-month-view.d.ts +3 -3
- package/dist/features/scheduler/shared/scheduler-month-view.js +2 -2
- package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
- package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
- package/dist/features/table/table/table-native.styles.d.ts +28 -0
- package/dist/features/table/table/table-native.styles.js +502 -0
- package/dist/features/table/table/table.d.ts +342 -294
- package/dist/features/table/table/table.js +820 -546
- package/dist/features/table/table/table.styles.js +31 -17
- package/dist/features/table/table/table.types.d.ts +18 -23
- package/dist/features/table/table/table.utils.d.ts +6 -36
- package/dist/features/table/table/table.utils.js +16 -65
- package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
- package/dist/features/table/table-action-bar/table-action-bar.js +18 -25
- package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
- package/dist/i18n/en.d.ts +34 -0
- package/dist/i18n/en.js +34 -0
- package/dist/i18n/fr.js +38 -0
- package/dist/index.d.ts +7 -13
- package/dist/index.js +6 -10
- package/dist/jsx.d.ts +1 -1
- package/dist/mixins/button.mixin.d.ts +10 -9
- package/dist/mixins/button.mixin.js +14 -6
- package/dist/mixins/card-link.mixin.d.ts +3 -2
- package/dist/mixins/card-link.mixin.js +12 -5
- package/dist/mixins/check.mixin.js +4 -5
- package/dist/mixins/disabled.mixin.d.ts +3 -3
- package/dist/mixins/disabled.mixin.js +10 -5
- package/dist/mixins/field-appearance.mixin.d.ts +19 -0
- package/dist/mixins/{field-variant.mixin.js → field-appearance.mixin.js} +11 -11
- package/dist/mixins/form.mixin.d.ts +17 -1
- package/dist/mixins/form.mixin.js +80 -25
- package/dist/mixins/radio.mixin.js +4 -5
- package/dist/mixins/validators.mixin.d.ts +7 -1
- package/dist/mixins/validators.mixin.js +36 -17
- package/dist/ssr/animate-ssr.css +27 -72
- package/dist/ssr/button-ssr.css +319 -0
- package/dist/ssr/card-ssr.css +184 -0
- package/dist/ssr/description-list-ssr.css +150 -0
- package/dist/ssr/links-ssr.css +35 -0
- package/dist/ssr/overlay-ssr.css +0 -41
- package/dist/ssr/rich-text.css +38 -0
- package/dist/ssr/sidebar-ssr.css +0 -38
- package/dist/ssr/table-ssr.css +472 -0
- package/dist/ssr/tag-ssr.css +197 -0
- package/dist/ssr/toolbar-ssr.css +77 -39
- package/dist/types/variant.type.d.ts +26 -10
- package/dist/utils/drag-drop.utils.js +18 -2
- package/dist/utils/dropdown-menu.utils.d.ts +2 -2
- package/dist/utils/dropdown-menu.utils.js +4 -14
- package/dist/utils/light-dom-styles.utils.d.ts +14 -0
- package/dist/utils/light-dom-styles.utils.js +37 -0
- package/dist/utils/media.styles.d.ts +19 -0
- package/dist/utils/media.styles.js +23 -0
- package/dist/utils/motion.utils.d.ts +40 -0
- package/dist/utils/motion.utils.js +51 -0
- package/dist/utils/navigation.utils.d.ts +14 -0
- package/dist/utils/navigation.utils.js +33 -0
- package/dist/utils/new-tab-anchor.controller.d.ts +44 -0
- package/dist/utils/new-tab-anchor.controller.js +102 -0
- package/dist/utils/severity-icon.utils.d.ts +1 -1
- package/dist/utils/severity-icon.utils.js +1 -1
- package/dist/utils/theme-generator.utils.d.ts +9 -2
- package/dist/utils/theme-generator.utils.js +62 -21
- package/package.json +24 -29
- package/styles/breakpoints.scss +8 -0
- package/styles/eunomia-grid.scss +6 -0
- package/styles/themes/eunomia-theme.scss +4 -3
- package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
- package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
- package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
- package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
- package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
- package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
- package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
- package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
- package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
- package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
- package/dist/cdn/components/chunks/chunk-2JLDJFYD.js +0 -48
- package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
- package/dist/cdn/components/chunks/chunk-ATH2OAMU.js +0 -1
- package/dist/cdn/components/chunks/chunk-BKHD4S57.js +0 -1
- package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
- package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
- package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
- package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
- package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
- package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
- package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
- package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
- package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
- package/dist/cdn/components/chunks/chunk-T7WABJEJ.js +0 -1
- package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
- package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
- package/dist/cdn/components/chunks/chunk-XSMCT4DF.js +0 -1
- package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
- package/dist/cdn/components/eun-table-cell.js +0 -1
- package/dist/cdn/components/eun-table-column.js +0 -1
- package/dist/cdn/components/eun-table-header.js +0 -1
- package/dist/cdn/components/eun-table-item.js +0 -1
- package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
- package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
- package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
- package/dist/features/table/native-table.css +0 -276
- package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
- package/dist/features/table/shared-styles/table-row.styles.js +0 -47
- package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
- package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
- package/dist/features/table/table-cell/table-cell.d.ts +0 -59
- package/dist/features/table/table-cell/table-cell.js +0 -73
- package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
- package/dist/features/table/table-cell/table-cell.styles.js +0 -46
- package/dist/features/table/table-column/table-column.d.ts +0 -73
- package/dist/features/table/table-column/table-column.js +0 -89
- package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
- package/dist/features/table/table-column/table-column.styles.js +0 -51
- package/dist/features/table/table-header/table-header.d.ts +0 -102
- package/dist/features/table/table-header/table-header.js +0 -165
- package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
- package/dist/features/table/table-header/table-header.styles.js +0 -147
- package/dist/features/table/table-item/table-item.d.ts +0 -179
- package/dist/features/table/table-item/table-item.js +0 -291
- package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
- package/dist/features/table/table-item/table-item.styles.js +0 -404
- package/dist/features/table/table-managed/table-managed.d.ts +0 -19
- package/dist/features/table/table-managed/table-managed.js +0 -128
- package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
- package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
- package/dist/mixins/field-variant.mixin.d.ts +0 -22
- package/dist/mixins/table-row.mixin.d.ts +0 -37
- package/dist/mixins/table-row.mixin.js +0 -103
- package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LitElement, TemplateResult } from "lit";
|
|
2
2
|
import { DropdownMenuContainer } from "../../../utils/dropdown-menu.utils.js";
|
|
3
3
|
import { EunomiaIconName } from "../../content/icon/icon.type.js";
|
|
4
|
-
import { ButtonSize,
|
|
4
|
+
import { ButtonSize, ButtonColor, EunomiaButtonAppearance } from "../../../mixins/button.mixin.js";
|
|
5
5
|
import { EunomiaSeverity } from "../../../types/variant.type.js";
|
|
6
6
|
/**
|
|
7
7
|
* Tag name of the dropdown-button component.
|
|
@@ -25,7 +25,7 @@ export interface EunomiaDropdownOption {
|
|
|
25
25
|
export type EunomiaDropdownPlacement = "top-start" | "top" | "top-end" | "right" | "bottom-end" | "bottom" | "bottom-start" | "left";
|
|
26
26
|
/**
|
|
27
27
|
* A button that opens a menu of actions on click. Its trigger is a regular
|
|
28
|
-
* button, so every button
|
|
28
|
+
* button, so every button color, size, and appearance works the same way.
|
|
29
29
|
*
|
|
30
30
|
* Choosing an option doesn't persist a value on the component itself, since
|
|
31
31
|
* this is a menu of actions rather than a form field. Each choice fires an
|
|
@@ -47,16 +47,16 @@ export type EunomiaDropdownPlacement = "top-start" | "top" | "top-end" | "right"
|
|
|
47
47
|
* @slot start - An icon or other content shown at the start of the trigger. Takes priority over the default icon from icon or severity
|
|
48
48
|
* @prop {string} label - The trigger button's label
|
|
49
49
|
* @prop {import('../../content/icon/icon.type.js').EunomiaIconName} icon - An optional leading icon for the trigger button. Ignored once something is slotted into start, and overridden by the default icon from severity when both are set
|
|
50
|
-
* @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this trigger leads to. When set, it supplies a default leading icon unless icon is also set or something is slotted into start. It has no effect on color, which is still controlled by
|
|
50
|
+
* @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this trigger leads to. When set, it supplies a default leading icon unless icon is also set or something is slotted into start. It has no effect on color, which is still controlled by color
|
|
51
51
|
* @prop {Array<EunomiaDropdownOption>} [options=[]] - The menu options
|
|
52
52
|
* @attr {string} [options] - The menu options, written as a JSON string for use directly in markup instead of the JavaScript property
|
|
53
53
|
* @prop {string[]} [disabledKeys=[]] - Keys of options to disable in addition to any option already marked disabled
|
|
54
54
|
* @attr {string} [disabled-keys] - The disabled option keys, written as a JSON string for use directly in markup instead of the JavaScript property
|
|
55
55
|
* @prop {boolean} [disabled=false] - Whether the trigger button is disabled
|
|
56
56
|
* @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The size of the trigger button
|
|
57
|
-
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'}
|
|
58
|
-
* @prop {boolean} [fixedColor=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
59
|
-
* @attr {boolean} [fixed-color=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
57
|
+
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'} color - The color applied to the trigger button
|
|
58
|
+
* @prop {boolean} [fixedColor=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
59
|
+
* @attr {boolean} [fixed-color=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
60
60
|
* @prop {boolean} [rounded=false] - Whether the trigger button has fully rounded corners
|
|
61
61
|
* @prop {'default' | 'fill' | 'outline' | 'flat' | 'raised' | 'ghost'} [appearance='default'] - The trigger button's surface style, using the same values as the button component. Defaults to a paler tint rather than a solid fill, since a menu trigger reads better as a lighter weight control than a standalone primary action
|
|
62
62
|
* @prop {EunomiaDropdownPlacement} [placement='bottom-start'] - Where the menu opens relative to the trigger
|
|
@@ -100,7 +100,7 @@ export declare class EunomiaDropdownButton extends LitElement implements Dropdow
|
|
|
100
100
|
* trigger `eun-button`. By default, once `severity` is set and `icon`
|
|
101
101
|
* isn't (and nothing is slotted into `start`), the leading icon is set
|
|
102
102
|
* according to it — same vocabulary as `eun-alert`/`eun-tag`. Has no
|
|
103
|
-
* effect on color, which stays driven by `
|
|
103
|
+
* effect on color, which stays driven by `color` : the two genuinely
|
|
104
104
|
* differ here, since a full severity range (`info`/`neutral` included)
|
|
105
105
|
* doesn't have a matching action color.
|
|
106
106
|
*/
|
|
@@ -134,7 +134,7 @@ export declare class EunomiaDropdownButton extends LitElement implements Dropdow
|
|
|
134
134
|
/**
|
|
135
135
|
* Forwarded to the trigger `eun-button`.
|
|
136
136
|
*/
|
|
137
|
-
|
|
137
|
+
color?: ButtonColor;
|
|
138
138
|
/**
|
|
139
139
|
* Forwarded to the trigger `eun-button`.
|
|
140
140
|
* @default false
|
|
@@ -162,8 +162,8 @@ export declare class EunomiaDropdownButton extends LitElement implements Dropdow
|
|
|
162
162
|
/**
|
|
163
163
|
* Whether the menu is currently open. Reflected as an attribute so a
|
|
164
164
|
* consumer (or its own CSS, via `eun-dropdown-button[open]`) can tell —
|
|
165
|
-
* `eun-table
|
|
166
|
-
*
|
|
165
|
+
* `eun-table`'s row end action cell relies on it to stay visible while
|
|
166
|
+
* this menu is open, since the menu itself is a `popover="auto"`
|
|
167
167
|
* element positioned outside the row's own box, so hovering it doesn't
|
|
168
168
|
* count as hovering the row anymore.
|
|
169
169
|
* @default false
|
|
@@ -12,13 +12,14 @@ import { SelectEvent } from "../../../events/select.event.js";
|
|
|
12
12
|
import { clampToViewport, dropdownMenuAnimationDuration, focusEntryAt, handleMenuKeydown, positionFlyout, } from "../../../utils/dropdown-menu.utils.js";
|
|
13
13
|
import { dropdownButtonStyles } from "./dropdown-button.styles.js";
|
|
14
14
|
import { resolveIcon } from "../../../utils/severity-icon.utils.js";
|
|
15
|
+
import { resolveEasing } from "../../../utils/motion.utils.js";
|
|
15
16
|
/**
|
|
16
17
|
* Tag name of the dropdown-button component.
|
|
17
18
|
*/
|
|
18
19
|
export const EunomiaDropdownButtonTagName = "eun-dropdown-button";
|
|
19
20
|
/**
|
|
20
21
|
* A button that opens a menu of actions on click. Its trigger is a regular
|
|
21
|
-
* button, so every button
|
|
22
|
+
* button, so every button color, size, and appearance works the same way.
|
|
22
23
|
*
|
|
23
24
|
* Choosing an option doesn't persist a value on the component itself, since
|
|
24
25
|
* this is a menu of actions rather than a form field. Each choice fires an
|
|
@@ -40,16 +41,16 @@ export const EunomiaDropdownButtonTagName = "eun-dropdown-button";
|
|
|
40
41
|
* @slot start - An icon or other content shown at the start of the trigger. Takes priority over the default icon from icon or severity
|
|
41
42
|
* @prop {string} label - The trigger button's label
|
|
42
43
|
* @prop {import('../../content/icon/icon.type.js').EunomiaIconName} icon - An optional leading icon for the trigger button. Ignored once something is slotted into start, and overridden by the default icon from severity when both are set
|
|
43
|
-
* @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this trigger leads to. When set, it supplies a default leading icon unless icon is also set or something is slotted into start. It has no effect on color, which is still controlled by
|
|
44
|
+
* @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this trigger leads to. When set, it supplies a default leading icon unless icon is also set or something is slotted into start. It has no effect on color, which is still controlled by color
|
|
44
45
|
* @prop {Array<EunomiaDropdownOption>} [options=[]] - The menu options
|
|
45
46
|
* @attr {string} [options] - The menu options, written as a JSON string for use directly in markup instead of the JavaScript property
|
|
46
47
|
* @prop {string[]} [disabledKeys=[]] - Keys of options to disable in addition to any option already marked disabled
|
|
47
48
|
* @attr {string} [disabled-keys] - The disabled option keys, written as a JSON string for use directly in markup instead of the JavaScript property
|
|
48
49
|
* @prop {boolean} [disabled=false] - Whether the trigger button is disabled
|
|
49
50
|
* @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The size of the trigger button
|
|
50
|
-
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'}
|
|
51
|
-
* @prop {boolean} [fixedColor=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
52
|
-
* @attr {boolean} [fixed-color=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
51
|
+
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'} color - The color applied to the trigger button
|
|
52
|
+
* @prop {boolean} [fixedColor=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
53
|
+
* @attr {boolean} [fixed-color=false] - Keeps a light or dark trigger button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
53
54
|
* @prop {boolean} [rounded=false] - Whether the trigger button has fully rounded corners
|
|
54
55
|
* @prop {'default' | 'fill' | 'outline' | 'flat' | 'raised' | 'ghost'} [appearance='default'] - The trigger button's surface style, using the same values as the button component. Defaults to a paler tint rather than a solid fill, since a menu trigger reads better as a lighter weight control than a standalone primary action
|
|
55
56
|
* @prop {EunomiaDropdownPlacement} [placement='bottom-start'] - Where the menu opens relative to the trigger
|
|
@@ -125,8 +126,8 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
125
126
|
/**
|
|
126
127
|
* Whether the menu is currently open. Reflected as an attribute so a
|
|
127
128
|
* consumer (or its own CSS, via `eun-dropdown-button[open]`) can tell —
|
|
128
|
-
* `eun-table
|
|
129
|
-
*
|
|
129
|
+
* `eun-table`'s row end action cell relies on it to stay visible while
|
|
130
|
+
* this menu is open, since the menu itself is a `popover="auto"`
|
|
130
131
|
* element positioned outside the row's own box, so hovering it doesn't
|
|
131
132
|
* count as hovering the row anymore.
|
|
132
133
|
* @default false
|
|
@@ -168,7 +169,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
168
169
|
if (toggleEvent.newState === "open") {
|
|
169
170
|
this.open = true;
|
|
170
171
|
this.positionMenu();
|
|
171
|
-
this.updateComplete.then(() => focusEntryAt(this.menuEntries, 0));
|
|
172
|
+
void this.updateComplete.then(() => focusEntryAt(this.menuEntries, 0));
|
|
172
173
|
window.addEventListener("resize", this.handleReposition);
|
|
173
174
|
window.addEventListener("scroll", this.handleReposition, true);
|
|
174
175
|
return;
|
|
@@ -237,7 +238,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
237
238
|
if (this.disabled) {
|
|
238
239
|
return;
|
|
239
240
|
}
|
|
240
|
-
this.updateComplete.then(() => {
|
|
241
|
+
void this.updateComplete.then(() => {
|
|
241
242
|
const menu = this.menuEl;
|
|
242
243
|
if (!menu) {
|
|
243
244
|
return;
|
|
@@ -278,7 +279,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
278
279
|
transform: `translate(${offsetX}, ${offsetY}) scale(0.96)`,
|
|
279
280
|
},
|
|
280
281
|
{ opacity: 1, transform: "translate(0, 0) scale(1)" },
|
|
281
|
-
], { duration, easing:
|
|
282
|
+
], { duration, easing: resolveEasing(menu), fill: "forwards" });
|
|
282
283
|
}
|
|
283
284
|
/**
|
|
284
285
|
* Closes the menu, if open. All state cleanup happens in
|
|
@@ -324,7 +325,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
324
325
|
opacity: 0,
|
|
325
326
|
transform: `translate(${offsetX}, ${offsetY}) scale(0.96)`,
|
|
326
327
|
},
|
|
327
|
-
], { duration, easing:
|
|
328
|
+
], { duration, easing: resolveEasing(menu), fill: "forwards" });
|
|
328
329
|
this.menuAnimation = animation;
|
|
329
330
|
animation.finished
|
|
330
331
|
.then(() => {
|
|
@@ -673,7 +674,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
673
674
|
this.submenuAnimation = submenu.animate([
|
|
674
675
|
{ opacity: 0, transform: `translate(${offsetX}, 0) scale(0.96)` },
|
|
675
676
|
{ opacity: 1, transform: "translate(0, 0) scale(1)" },
|
|
676
|
-
], { duration, easing:
|
|
677
|
+
], { duration, easing: resolveEasing(submenu), fill: "forwards" });
|
|
677
678
|
}
|
|
678
679
|
/**
|
|
679
680
|
* Plays an `options`-sourced submenu's fade/scale/slide-out, then
|
|
@@ -693,7 +694,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
693
694
|
const animation = submenu.animate([
|
|
694
695
|
{ opacity: 1, transform: "translate(0, 0) scale(1)" },
|
|
695
696
|
{ opacity: 0, transform: `translate(${offsetX}, 0) scale(0.96)` },
|
|
696
|
-
], { duration, easing:
|
|
697
|
+
], { duration, easing: resolveEasing(submenu), fill: "forwards" });
|
|
697
698
|
this.submenuAnimation = animation;
|
|
698
699
|
animation.finished
|
|
699
700
|
.then(() => {
|
|
@@ -756,7 +757,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
756
757
|
if (li) {
|
|
757
758
|
this.positionSubmenu(li, submenu);
|
|
758
759
|
}
|
|
759
|
-
this.updateComplete.then(() => {
|
|
760
|
+
void this.updateComplete.then(() => {
|
|
760
761
|
const subEntries = Array.from(submenu.querySelectorAll(":scope > li"));
|
|
761
762
|
focusEntryAt(subEntries, 0);
|
|
762
763
|
});
|
|
@@ -773,7 +774,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
773
774
|
*/
|
|
774
775
|
closeSubmenuAndRefocus(option) {
|
|
775
776
|
this.closeSubmenu();
|
|
776
|
-
this.updateComplete.then(() => {
|
|
777
|
+
void this.updateComplete.then(() => {
|
|
777
778
|
const li = this.menuEl?.querySelector(`li[data-key="${CSS.escape(option.key)}"]`);
|
|
778
779
|
li?.focus();
|
|
779
780
|
});
|
|
@@ -1071,7 +1072,7 @@ let EunomiaDropdownButton = class EunomiaDropdownButton extends LitElement {
|
|
|
1071
1072
|
id="trigger"
|
|
1072
1073
|
type="button"
|
|
1073
1074
|
size=${this.size}
|
|
1074
|
-
|
|
1075
|
+
color=${ifDefined(this.color)}
|
|
1075
1076
|
?fixed-color=${this.fixedColor}
|
|
1076
1077
|
appearance=${this.appearance}
|
|
1077
1078
|
?rounded=${this.rounded}
|
|
@@ -1128,7 +1129,7 @@ __decorate([
|
|
|
1128
1129
|
], EunomiaDropdownButton.prototype, "size", void 0);
|
|
1129
1130
|
__decorate([
|
|
1130
1131
|
property({ reflect: true })
|
|
1131
|
-
], EunomiaDropdownButton.prototype, "
|
|
1132
|
+
], EunomiaDropdownButton.prototype, "color", void 0);
|
|
1132
1133
|
__decorate([
|
|
1133
1134
|
property({ type: Boolean, reflect: true, attribute: "fixed-color" })
|
|
1134
1135
|
], EunomiaDropdownButton.prototype, "fixedColor", void 0);
|
|
@@ -83,8 +83,9 @@ const base = css `
|
|
|
83
83
|
outline: 2px solid transparent;
|
|
84
84
|
outline-offset: -2px;
|
|
85
85
|
transition:
|
|
86
|
-
background
|
|
87
|
-
outline-color
|
|
86
|
+
background var(--eun-duration-xl, 300ms) var(--eun-easing-out, ease-out),
|
|
87
|
+
outline-color var(--eun-duration-xl, 300ms)
|
|
88
|
+
var(--eun-easing-out, ease-out);
|
|
88
89
|
}
|
|
89
90
|
#menu li:hover:not([aria-disabled="true"]),
|
|
90
91
|
#menu li:focus-visible:not([aria-disabled="true"]),
|
|
@@ -8,6 +8,7 @@ import { customElement, property, query, queryAssignedElements, state, } from "l
|
|
|
8
8
|
import { html, LitElement, nothing } from "lit";
|
|
9
9
|
import { DROPDOWN_MENU_CONTAINER_SELECTOR, dropdownMenuAnimationDuration, focusEntryAt, handleMenuKeydown, positionFlyout, } from "../../../utils/dropdown-menu.utils.js";
|
|
10
10
|
import { dropdownItemStyles } from "./dropdown-item.styles.js";
|
|
11
|
+
import { resolveEasing } from "../../../utils/motion.utils.js";
|
|
11
12
|
/**
|
|
12
13
|
* Tag name of the dropdown-item component.
|
|
13
14
|
*/
|
|
@@ -91,14 +92,12 @@ let EunomiaDropdownItem = class EunomiaDropdownItem extends LitElement {
|
|
|
91
92
|
this.toggleAttribute("data-submenu-open", true);
|
|
92
93
|
this.container?.notifySubmenuOpened(this.key);
|
|
93
94
|
this.positionOwnSubmenu();
|
|
94
|
-
this.updateComplete.then(() => focusEntryAt(this.submenuItems, 0));
|
|
95
|
+
void this.updateComplete.then(() => focusEntryAt(this.submenuItems, 0));
|
|
95
96
|
return;
|
|
96
97
|
}
|
|
97
98
|
this.setAttribute("aria-expanded", "false");
|
|
98
99
|
this.toggleAttribute("data-submenu-open", false);
|
|
99
100
|
this.container?.notifySubmenuClosed(this.key);
|
|
100
|
-
// Cascade the close to this item's own open child, if any — mirrors
|
|
101
|
-
// `eun-dropdown-button`'s root-menu-close handling of a submenu.
|
|
102
101
|
this.closeOtherSubmenus(null);
|
|
103
102
|
};
|
|
104
103
|
/**
|
|
@@ -139,7 +138,7 @@ let EunomiaDropdownItem = class EunomiaDropdownItem extends LitElement {
|
|
|
139
138
|
onClose: parentItem
|
|
140
139
|
? () => {
|
|
141
140
|
parentItem.closeSubmenu();
|
|
142
|
-
this.updateComplete.then(() => parentItem.focus());
|
|
141
|
+
void this.updateComplete.then(() => parentItem.focus());
|
|
143
142
|
}
|
|
144
143
|
: undefined,
|
|
145
144
|
onTabAway: () => this.tabAway(),
|
|
@@ -293,7 +292,7 @@ let EunomiaDropdownItem = class EunomiaDropdownItem extends LitElement {
|
|
|
293
292
|
this.submenuAnimation = submenu.animate([
|
|
294
293
|
{ opacity: 0, transform: `translate(${offsetX}, 0) scale(0.96)` },
|
|
295
294
|
{ opacity: 1, transform: "translate(0, 0) scale(1)" },
|
|
296
|
-
], { duration, easing:
|
|
295
|
+
], { duration, easing: resolveEasing(submenu), fill: "forwards" });
|
|
297
296
|
}
|
|
298
297
|
/**
|
|
299
298
|
* Closes this item's own submenu, if open. Part of the
|
|
@@ -332,7 +331,7 @@ let EunomiaDropdownItem = class EunomiaDropdownItem extends LitElement {
|
|
|
332
331
|
const animation = submenu.animate([
|
|
333
332
|
{ opacity: 1, transform: "translate(0, 0) scale(1)" },
|
|
334
333
|
{ opacity: 0, transform: `translate(${offsetX}, 0) scale(0.96)` },
|
|
335
|
-
], { duration, easing:
|
|
334
|
+
], { duration, easing: resolveEasing(submenu), fill: "forwards" });
|
|
336
335
|
this.submenuAnimation = animation;
|
|
337
336
|
animation.finished
|
|
338
337
|
.then(() => {
|
|
@@ -33,8 +33,9 @@ const base = css `
|
|
|
33
33
|
outline: 2px solid transparent;
|
|
34
34
|
outline-offset: -2px;
|
|
35
35
|
transition:
|
|
36
|
-
background
|
|
37
|
-
outline-color
|
|
36
|
+
background var(--eun-duration-xl, 300ms) var(--eun-easing-out, ease-out),
|
|
37
|
+
outline-color var(--eun-duration-xl, 300ms)
|
|
38
|
+
var(--eun-easing-out, ease-out);
|
|
38
39
|
}
|
|
39
40
|
:host(:hover:not([aria-disabled="true"])) .content,
|
|
40
41
|
:host(:focus-visible:not([aria-disabled="true"])) .content,
|
|
@@ -8,10 +8,10 @@ export declare const EunomiaFabTagName = "eun-fab";
|
|
|
8
8
|
* The corner a positioned FAB is fixed to.
|
|
9
9
|
*/
|
|
10
10
|
export type EunomiaFabPosition = "bottom-right" | "bottom-left" | "top-right" | "top-left";
|
|
11
|
-
declare const EunomiaFab_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/button.mixin.js").ButtonMixinInterface> & import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/command.mixin.js").CommandMixinInterface> & import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/disabled.mixin.js").DisabledMixinInterface> & typeof LitElement;
|
|
11
|
+
declare const EunomiaFab_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/button.mixin.js").ButtonMixinInterface> & import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/command.mixin.js").CommandMixinInterface> & import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/disabled.mixin.js").DisabledMixinInterface> & import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/localizable.mixin.js").LocalizableMixinInterface> & typeof LitElement;
|
|
12
12
|
/**
|
|
13
13
|
* A circular icon button for a screen's single primary action. It shares
|
|
14
|
-
* its
|
|
14
|
+
* its color, size, href, loading, and keyboard behavior with the regular
|
|
15
15
|
* button.
|
|
16
16
|
*
|
|
17
17
|
* When label is set, the button becomes extendable. It stays a plain circle
|
|
@@ -25,13 +25,14 @@ declare const EunomiaFab_base: import("../../../utils/constructor.type.js").Cons
|
|
|
25
25
|
* @prop {EunomiaIconName} icon - The icon displayed at all times
|
|
26
26
|
* @prop {string} label - An optional text label, revealed on hover or focus by the slide animation. Omit it for an icon only button
|
|
27
27
|
* @prop {'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'} position - Fixes the button to a corner of the viewport. Left unset, the button follows the normal document flow
|
|
28
|
-
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'} [
|
|
29
|
-
* @prop {boolean} [fixedColor=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
30
|
-
* @attr {boolean} [fixed-color=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
28
|
+
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'} [color='primary'] - The color applied to the button
|
|
29
|
+
* @prop {boolean} [fixedColor=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
30
|
+
* @attr {boolean} [fixed-color=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
31
31
|
* @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The size of the button
|
|
32
32
|
* @prop {boolean} [disabled=false] - Whether the button is disabled. For a link button, this removes the href instead, since links have no native disabled state
|
|
33
33
|
* @prop {string} href - The URL the button navigates to. When set, the button renders as a link instead of a button
|
|
34
34
|
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically announces it to assistive technology, and adds an external link icon when label is also set
|
|
35
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
35
36
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
36
37
|
* @prop {boolean} [loading=false] - Whether the button shows a loading indicator. Like disabled, it blocks interaction, but keeps the icon and label in place so the button doesn't change size
|
|
37
38
|
* @prop {string} [loadingLabel='Loading…'] - The accessible label announced while the button is loading
|
|
@@ -40,7 +41,7 @@ declare const EunomiaFab_base: import("../../../utils/constructor.type.js").Cons
|
|
|
40
41
|
* @attr {string} aria-label - The accessible label for the button. Required when label isn't set, since an icon alone has no accessible name, and recommended even when it is if the label text alone doesn't describe the action
|
|
41
42
|
* @fires click - Fired when the button is activated by mouse, Enter, or Space
|
|
42
43
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
43
|
-
* @cssprop [--fab-background] - Sets the background color, for every
|
|
44
|
+
* @cssprop [--fab-background] - Sets the background color, for every color
|
|
44
45
|
* @cssprop [--fab-background-hover] - Sets the background color on hover
|
|
45
46
|
* @cssprop [--fab-text] - Sets the color of the text and icon
|
|
46
47
|
* @cssprop [--fab-focus-outline] - Sets the color of the focus outline
|
|
@@ -10,6 +10,7 @@ import { ifDefined } from "lit/directives/if-defined.js";
|
|
|
10
10
|
import { ButtonMixin } from "../../../mixins/button.mixin.js";
|
|
11
11
|
import { CommandMixin } from "../../../mixins/command.mixin.js";
|
|
12
12
|
import { DisabledMixin } from "../../../mixins/disabled.mixin.js";
|
|
13
|
+
import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
|
|
13
14
|
import { handleLinkNavigation } from "../../../utils/navigation.utils.js";
|
|
14
15
|
import { fabStyles } from "./fab.styles.js";
|
|
15
16
|
/**
|
|
@@ -18,7 +19,7 @@ import { fabStyles } from "./fab.styles.js";
|
|
|
18
19
|
export const EunomiaFabTagName = "eun-fab";
|
|
19
20
|
/**
|
|
20
21
|
* A circular icon button for a screen's single primary action. It shares
|
|
21
|
-
* its
|
|
22
|
+
* its color, size, href, loading, and keyboard behavior with the regular
|
|
22
23
|
* button.
|
|
23
24
|
*
|
|
24
25
|
* When label is set, the button becomes extendable. It stays a plain circle
|
|
@@ -32,13 +33,14 @@ export const EunomiaFabTagName = "eun-fab";
|
|
|
32
33
|
* @prop {EunomiaIconName} icon - The icon displayed at all times
|
|
33
34
|
* @prop {string} label - An optional text label, revealed on hover or focus by the slide animation. Omit it for an icon only button
|
|
34
35
|
* @prop {'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'} position - Fixes the button to a corner of the viewport. Left unset, the button follows the normal document flow
|
|
35
|
-
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'} [
|
|
36
|
-
* @prop {boolean} [fixedColor=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
37
|
-
* @attr {boolean} [fixed-color=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other
|
|
36
|
+
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning'} [color='primary'] - The color applied to the button
|
|
37
|
+
* @prop {boolean} [fixedColor=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
38
|
+
* @attr {boolean} [fixed-color=false] - Keeps a light or dark button white or black in every theme. Without it, they follow the grey scale, which flips with the active theme. Has no effect on the other colors
|
|
38
39
|
* @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The size of the button
|
|
39
40
|
* @prop {boolean} [disabled=false] - Whether the button is disabled. For a link button, this removes the href instead, since links have no native disabled state
|
|
40
41
|
* @prop {string} href - The URL the button navigates to. When set, the button renders as a link instead of a button
|
|
41
42
|
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically announces it to assistive technology, and adds an external link icon when label is also set
|
|
43
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
42
44
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
43
45
|
* @prop {boolean} [loading=false] - Whether the button shows a loading indicator. Like disabled, it blocks interaction, but keeps the icon and label in place so the button doesn't change size
|
|
44
46
|
* @prop {string} [loadingLabel='Loading…'] - The accessible label announced while the button is loading
|
|
@@ -47,7 +49,7 @@ export const EunomiaFabTagName = "eun-fab";
|
|
|
47
49
|
* @attr {string} aria-label - The accessible label for the button. Required when label isn't set, since an icon alone has no accessible name, and recommended even when it is if the label text alone doesn't describe the action
|
|
48
50
|
* @fires click - Fired when the button is activated by mouse, Enter, or Space
|
|
49
51
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
50
|
-
* @cssprop [--fab-background] - Sets the background color, for every
|
|
52
|
+
* @cssprop [--fab-background] - Sets the background color, for every color
|
|
51
53
|
* @cssprop [--fab-background-hover] - Sets the background color on hover
|
|
52
54
|
* @cssprop [--fab-text] - Sets the color of the text and icon
|
|
53
55
|
* @cssprop [--fab-focus-outline] - Sets the color of the focus outline
|
|
@@ -56,7 +58,7 @@ export const EunomiaFabTagName = "eun-fab";
|
|
|
56
58
|
* @cssprop [--fab-offset] - Sets the distance from the viewport edge for a positioned button
|
|
57
59
|
* @element eun-fab
|
|
58
60
|
*/
|
|
59
|
-
let EunomiaFab = class EunomiaFab extends ButtonMixin(CommandMixin(DisabledMixin(LitElement))) {
|
|
61
|
+
let EunomiaFab = class EunomiaFab extends ButtonMixin(CommandMixin(DisabledMixin(LocalizableMixin(LitElement)))) {
|
|
60
62
|
constructor() {
|
|
61
63
|
super(...arguments);
|
|
62
64
|
/**
|
|
@@ -132,7 +134,8 @@ let EunomiaFab = class EunomiaFab extends ButtonMixin(CommandMixin(DisabledMixin
|
|
|
132
134
|
if (!this.isBlank || this.ariaLabel) {
|
|
133
135
|
return nothing;
|
|
134
136
|
}
|
|
135
|
-
|
|
137
|
+
const hint = this.dictionary.link.opensInNewTab;
|
|
138
|
+
return html `<span class="sr-only"> (${hint})</span>`;
|
|
136
139
|
}
|
|
137
140
|
/**
|
|
138
141
|
* Renders `label`, with an appended external-link icon (mirroring
|
|
@@ -198,7 +201,7 @@ let EunomiaFab = class EunomiaFab extends ButtonMixin(CommandMixin(DisabledMixin
|
|
|
198
201
|
rel=${ifDefined(this.isBlank ? "noopener noreferrer" : undefined)}
|
|
199
202
|
download=${ifDefined(this.download)}
|
|
200
203
|
aria-label=${ifDefined(this.isBlank && this.ariaLabel
|
|
201
|
-
? `${this.ariaLabel} (
|
|
204
|
+
? `${this.ariaLabel} (${this.dictionary.link.opensInNewTab})`
|
|
202
205
|
: (this.ariaLabel ?? undefined))}
|
|
203
206
|
aria-disabled=${ifDefined(this.disabled ? "true" : undefined)}
|
|
204
207
|
aria-busy=${ifDefined(this.loading ? "true" : undefined)}
|
|
@@ -3,15 +3,15 @@ import { buttonPaletteStyles } from "../shared-styles/button-palette.styles.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Base style for the floating action button.
|
|
5
5
|
*
|
|
6
|
-
* The
|
|
6
|
+
* The color palette is shared with `eun-button` (see
|
|
7
7
|
* {@link buttonPaletteStyles}) and read *behind* the `--fab-*` custom
|
|
8
|
-
* properties, so those win over every
|
|
8
|
+
* properties, so those win over every color. A fab only has a solid look,
|
|
9
9
|
* so it only reads the solid slots.
|
|
10
10
|
*
|
|
11
11
|
* Custom css variables:
|
|
12
|
-
* [--fab-background] - Set a custom background color, for every
|
|
12
|
+
* [--fab-background] - Set a custom background color, for every color
|
|
13
13
|
* [--fab-background-hover] - Set a custom background color for hover state. Derived from --fab-background when only that one is set
|
|
14
|
-
* [--fab-text] - Set a custom text/icon color, for every
|
|
14
|
+
* [--fab-text] - Set a custom text/icon color, for every color
|
|
15
15
|
* [--fab-focus-outline] - Set a custom color to the focus outline
|
|
16
16
|
* [--fab-transition] - Set a custom transition time, shared by the slide-open animation and the hover/focus color changes (mirrors `eun-button`'s own `--button-transition`)
|
|
17
17
|
* [--fab-z-index] - Set a custom z-index for a positioned FAB
|
|
@@ -21,7 +21,7 @@ const base = css `
|
|
|
21
21
|
:host {
|
|
22
22
|
--_focusIndicator: var(--fab-focus-outline, var(--_solid));
|
|
23
23
|
--_hoverFromCustom: color-mix(in srgb, var(--fab-background) 88%, black);
|
|
24
|
-
--_transition: var(--fab-transition,
|
|
24
|
+
--_transition: var(--fab-transition, var(--eun-duration-xl, 300ms));
|
|
25
25
|
--_gap: var(--eun-space-xs, 4px);
|
|
26
26
|
--_circleSize: 56px;
|
|
27
27
|
--icon-size: 24px;
|
|
@@ -32,9 +32,9 @@ const base = css `
|
|
|
32
32
|
z-index: 0;
|
|
33
33
|
border-radius: var(--eun-border-radius-xl);
|
|
34
34
|
transition:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
outline var(--eun-duration-xl, 300ms) var(--eun-easing-out, ease-out),
|
|
36
|
+
outline-offset var(--eun-duration-xl, 300ms)
|
|
37
|
+
var(--eun-easing-out, ease-out);
|
|
38
38
|
}
|
|
39
39
|
:host(:focus-visible) {
|
|
40
40
|
outline-offset: 2px;
|
|
@@ -96,9 +96,10 @@ const base = css `
|
|
|
96
96
|
outline: 2px solid transparent;
|
|
97
97
|
box-shadow: var(--eun-shadow-m, 0 10px 15px -3px rgba(0, 0, 0, 0.1));
|
|
98
98
|
transition:
|
|
99
|
-
background-color
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
background-color var(--eun-duration-s, 150ms)
|
|
100
|
+
var(--eun-easing-default, ease),
|
|
101
|
+
box-shadow var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
|
|
102
|
+
outline var(--eun-duration-m, 200ms) var(--eun-easing-out, ease-out);
|
|
102
103
|
}
|
|
103
104
|
#fab slot[name="icon"] {
|
|
104
105
|
display: inline-flex;
|
|
@@ -157,10 +158,10 @@ const slide = css `
|
|
|
157
158
|
justify-content: start;
|
|
158
159
|
outline: 2px solid transparent;
|
|
159
160
|
transition:
|
|
160
|
-
background
|
|
161
|
-
box-shadow
|
|
162
|
-
outline
|
|
163
|
-
grid-template-columns ease var(--_transition);
|
|
161
|
+
background var(--eun-duration-xl, 300ms) var(--eun-easing-out, ease-out),
|
|
162
|
+
box-shadow var(--eun-duration-xl, 300ms) var(--eun-easing-out, ease-out),
|
|
163
|
+
outline var(--eun-duration-xl, 300ms) var(--eun-easing-out, ease-out),
|
|
164
|
+
grid-template-columns var(--eun-easing-default, ease) var(--_transition);
|
|
164
165
|
}
|
|
165
166
|
:host([slide]:not([loading])) #fab slot[name="icon"] {
|
|
166
167
|
grid-column: 1;
|
|
@@ -174,8 +175,8 @@ const slide = css `
|
|
|
174
175
|
margin-inline-start: 0;
|
|
175
176
|
opacity: 0;
|
|
176
177
|
transition:
|
|
177
|
-
margin-inline-start ease var(--_transition),
|
|
178
|
-
opacity ease var(--_transition);
|
|
178
|
+
margin-inline-start var(--eun-easing-default, ease) var(--_transition),
|
|
179
|
+
opacity var(--eun-easing-default, ease) var(--_transition);
|
|
179
180
|
}
|
|
180
181
|
:host([slide]:not([loading]):hover) #fab,
|
|
181
182
|
:host([slide]:not([loading]):focus-visible) #fab,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { LitElement, TemplateResult } from "lit";
|
|
1
|
+
import { LitElement, PropertyValues, TemplateResult } from "lit";
|
|
2
2
|
import { EunomiaIconName } from "../../content/icon/icon.type.js";
|
|
3
3
|
/**
|
|
4
4
|
* Tag name of the link component.
|
|
5
5
|
*/
|
|
6
6
|
export declare const EunomiaLinkTagName = "eun-link";
|
|
7
|
+
declare const EunomiaLink_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/localizable.mixin.js").LocalizableMixinInterface> & typeof LitElement;
|
|
7
8
|
/**
|
|
8
9
|
* A basic link with an optional decorative leading icon.
|
|
9
10
|
*
|
|
@@ -11,15 +12,23 @@ export declare const EunomiaLinkTagName = "eun-link";
|
|
|
11
12
|
* prevent the new page from controlling the original one, without affecting
|
|
12
13
|
* same-tab navigation.
|
|
13
14
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
15
|
+
* Without href, a native anchor placed as a direct child becomes the link
|
|
16
|
+
* instead, such as a framework's own link component. The anchor then exists
|
|
17
|
+
* in the server-rendered HTML, so crawlers that don't run JavaScript still
|
|
18
|
+
* find it, and it keeps the link styles and the current state. When that
|
|
19
|
+
* anchor opens in a new tab, the link shows the same end icon and announces
|
|
20
|
+
* it the same way, through the anchor's aria-description.
|
|
21
|
+
*
|
|
22
|
+
* @slot [default] - The link content, or a native anchor carrying the href itself when href is unset
|
|
23
|
+
* @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
|
|
16
24
|
* @prop {string} href - The destination URL
|
|
17
|
-
* @prop {'_blank' | '_self' | '_parent' | '_top'} [target='_self'] - Where to open the linked URL. Opening in a new tab automatically announces it to assistive technology
|
|
25
|
+
* @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
|
|
18
26
|
* @prop {import('../../content/icon/icon.type.js').EunomiaIconName} icon - An optional decorative icon displayed to the left of the link
|
|
19
|
-
* @prop {'light' | 'dark'} [theme='light'] - The text color theme. Use dark on a dark background
|
|
27
|
+
* @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
|
|
20
28
|
* @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
|
|
21
29
|
* @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
|
|
22
|
-
* @
|
|
30
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
31
|
+
* @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
|
|
23
32
|
* @fires {NavigationEvent} eunnavigate - Fired before following the link, so a client-side router can intercept the navigation. Cancelable
|
|
24
33
|
* @cssprop [--link-color] - Sets the color of the link
|
|
25
34
|
* @cssprop [--link-color-hover] - Sets the color of the link on hover
|
|
@@ -30,14 +39,19 @@ export declare const EunomiaLinkTagName = "eun-link";
|
|
|
30
39
|
* @cssprop [--link-line-height] - Sets the line-height of the link. Inherits the surrounding text's line-height when unset
|
|
31
40
|
* @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
|
|
32
41
|
* @cssprop [--link-icon-color] - Sets the color of the leading icon, independently of the link text color
|
|
42
|
+
* @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
|
|
43
|
+
* @cssprop [--link-transition-duration] - Sets the duration of the color, background and focus transitions. Defaults to --eun-duration-xl
|
|
33
44
|
* @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
|
|
45
|
+
* @cssprop [--link-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --link-padding is set
|
|
46
|
+
* @cssprop [--link-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --link-padding is set
|
|
34
47
|
* @cssprop [--link-background] - Sets a persistent background color behind the link. Defaults to transparent
|
|
35
48
|
* @cssprop [--link-background-focus] - Sets a background color shown while the link is keyboard-focused, falling back to --link-background when unset
|
|
36
49
|
* @cssprop [--link-border-radius] - Sets the corner radius of the link's own background/focus outline box
|
|
37
50
|
* @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
|
|
38
51
|
* @element eun-link
|
|
39
52
|
*/
|
|
40
|
-
export declare class EunomiaLink extends
|
|
53
|
+
export declare class EunomiaLink extends EunomiaLink_base {
|
|
54
|
+
#private;
|
|
41
55
|
/**
|
|
42
56
|
* Styles to import to the component.
|
|
43
57
|
*
|
|
@@ -60,14 +74,17 @@ export declare class EunomiaLink extends LitElement {
|
|
|
60
74
|
*/
|
|
61
75
|
icon?: EunomiaIconName;
|
|
62
76
|
/**
|
|
63
|
-
* Text color theme, use `dark` on a dark background.
|
|
77
|
+
* Text color theme, use `dark` on a dark background. Only reflected once
|
|
78
|
+
* it differs from the default, so an SSR framework doesn't see an
|
|
79
|
+
* attribute it never rendered.
|
|
64
80
|
* @default light
|
|
65
81
|
*/
|
|
66
82
|
theme: "light" | "dark";
|
|
67
83
|
/**
|
|
68
84
|
* Controls the visited-state color: `auto` follows the browser's real
|
|
69
85
|
* navigation history for `href`, `off` always renders as unvisited, `on`
|
|
70
|
-
* always renders as visited.
|
|
86
|
+
* always renders as visited. Only reflected once it differs from the
|
|
87
|
+
* default, like {@link theme}.
|
|
71
88
|
* @default auto
|
|
72
89
|
*/
|
|
73
90
|
visitedStyle: "auto" | "off" | "on";
|
|
@@ -101,6 +118,45 @@ export declare class EunomiaLink extends LitElement {
|
|
|
101
118
|
*/
|
|
102
119
|
static get observedAttributes(): string[];
|
|
103
120
|
attributeChangedCallback(name: string, oldValue: string | null, value: string | null): void;
|
|
121
|
+
/**
|
|
122
|
+
* The native `<a>` slotted as a direct child while `href` is unset, which
|
|
123
|
+
* then acts as the link itself : it's in the light DOM, so it's part of
|
|
124
|
+
* the server-rendered HTML, and a framework's own link component (Next's
|
|
125
|
+
* `<Link>`, Angular's `routerLink`, ...) can be that anchor. Navigation,
|
|
126
|
+
* `target`/`rel` and the new-tab hint are the consumer's own in this mode.
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
private get slottedAnchor();
|
|
130
|
+
connectedCallback(): void;
|
|
131
|
+
disconnectedCallback(): void;
|
|
132
|
+
protected updated(changed: PropertyValues): void;
|
|
133
|
+
/**
|
|
134
|
+
* Mirrors {@link current} onto the slotted anchor as `aria-current`,
|
|
135
|
+
* since that anchor, not the wrapper around it, is what assistive
|
|
136
|
+
* technology announces.
|
|
137
|
+
* @private
|
|
138
|
+
*/
|
|
139
|
+
private syncSlottedAnchor;
|
|
140
|
+
/**
|
|
141
|
+
* Re-renders when the default slot changes, so an anchor added or removed
|
|
142
|
+
* after the first render switches between the two modes.
|
|
143
|
+
* @private
|
|
144
|
+
*/
|
|
145
|
+
private handleDefaultSlotChange;
|
|
146
|
+
/**
|
|
147
|
+
* The slotted anchor's counterpart of {@link handleFocus} : it lives in
|
|
148
|
+
* the light DOM, so its focus reaches the host as a plain `focusin`.
|
|
149
|
+
* @param event the host's focusin event.
|
|
150
|
+
* @private
|
|
151
|
+
*/
|
|
152
|
+
private handleSlottedFocusIn;
|
|
153
|
+
/**
|
|
154
|
+
* Clears the `focus-visible` custom state once the slotted anchor loses
|
|
155
|
+
* focus.
|
|
156
|
+
* @param event the host's focusout event.
|
|
157
|
+
* @private
|
|
158
|
+
*/
|
|
159
|
+
private handleSlottedFocusOut;
|
|
104
160
|
/**
|
|
105
161
|
* Elements assigned to the `icon` slot, if any ; queried live so
|
|
106
162
|
* {@link render} can decide whether to fall back to the `icon` prop.
|
|
@@ -141,6 +197,12 @@ export declare class EunomiaLink extends LitElement {
|
|
|
141
197
|
* @private
|
|
142
198
|
*/
|
|
143
199
|
private handleClick;
|
|
200
|
+
/**
|
|
201
|
+
* The decorative icon at the end of a link opening in a new tab, the
|
|
202
|
+
* wording being announced separately.
|
|
203
|
+
* @private
|
|
204
|
+
*/
|
|
205
|
+
private renderExternalLinkIcon;
|
|
144
206
|
/**
|
|
145
207
|
* Renders the link template.
|
|
146
208
|
* @returns The rendered HTML template
|
|
@@ -152,3 +214,4 @@ declare global {
|
|
|
152
214
|
[EunomiaLinkTagName]: EunomiaLink;
|
|
153
215
|
}
|
|
154
216
|
}
|
|
217
|
+
export {};
|