@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,6 +4,18 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
8
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
10
|
+
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");
|
|
11
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
12
|
+
};
|
|
13
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
14
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
15
|
+
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");
|
|
16
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
17
|
+
};
|
|
18
|
+
var _EunomiaButton_blockedAnchor, _EunomiaButton_newTab;
|
|
7
19
|
import { customElement, property } from "lit/decorators.js";
|
|
8
20
|
import { html, LitElement, nothing } from "lit";
|
|
9
21
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
@@ -11,7 +23,9 @@ import { ButtonMixin, } from "../../../mixins/button.mixin.js";
|
|
|
11
23
|
import { buttonStyles } from "./button.styles.js";
|
|
12
24
|
import { CommandMixin } from "../../../mixins/command.mixin.js";
|
|
13
25
|
import { DisabledMixin } from "../../../mixins/disabled.mixin.js";
|
|
14
|
-
import { handleLinkNavigation } from "../../../utils/navigation.utils.js";
|
|
26
|
+
import { handleLinkNavigation, warnIgnoredHostLinkAttributes, } from "../../../utils/navigation.utils.js";
|
|
27
|
+
import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
|
|
28
|
+
import { NewTabAnchorController } from "../../../utils/new-tab-anchor.controller.js";
|
|
15
29
|
import { resolveIcon } from "../../../utils/severity-icon.utils.js";
|
|
16
30
|
/**
|
|
17
31
|
* Tag name of the button component.
|
|
@@ -19,50 +33,56 @@ import { resolveIcon } from "../../../utils/severity-icon.utils.js";
|
|
|
19
33
|
export const EunomiaButtonTagName = "eun-button";
|
|
20
34
|
/**
|
|
21
35
|
* A clickable control for performing an action or navigating to a link,
|
|
22
|
-
* available in several
|
|
36
|
+
* available in several colors, sizes, and surface styles.
|
|
23
37
|
*
|
|
24
38
|
* @slot [default] - The button content
|
|
25
39
|
* @slot [start] - An icon or other content shown at the start of the button. Takes priority over the default icon from icon or severity. Leave empty to let one of those render instead
|
|
26
|
-
* @slot [end] - An icon or other content shown at the end of the button. Ignored when
|
|
40
|
+
* @slot [end] - An icon or other content shown at the end of the button. Ignored when the button opens a link in a new tab, through href and target or a slotted anchor, since an external link indicator takes its place
|
|
27
41
|
* @prop {'button' | 'submit' | 'reset'} [type='button'] - The button's native type. Ignored when href is set
|
|
28
|
-
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning' | 'light' | 'medium' | 'dark'} [
|
|
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
|
|
42
|
+
* @prop {'primary' | 'secondary' | 'critical' | 'success' | 'warning' | 'light' | 'medium' | 'dark'} [color='primary'] - The color applied to the button. light/medium/dark are neutral grey tones with no semantic meaning, matching eun-tag's color scale, for a de-emphasized action next to a semantically-colored one
|
|
43
|
+
* @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
|
|
44
|
+
* @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
45
|
* @prop {import('../../content/icon/icon.type.js').EunomiaIconName} icon - An optional leading icon, shown at the start of the button. Ignored once something is slotted into start, and overridden by the default icon from severity when both are set
|
|
32
|
-
* @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this button 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
|
|
46
|
+
* @prop {'info' | 'success' | 'warning' | 'critical' | 'neutral'} severity - The severity of the action this button 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
|
|
33
47
|
* @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The size of the button
|
|
34
48
|
* @prop {boolean} rounded - Whether the button has fully rounded corners
|
|
35
49
|
* @prop {boolean} slide - Whether the button uses a sliding open animation
|
|
36
50
|
* @prop {boolean} full - Whether the button stretches to fill 100% of the width available from its parent, instead of sizing to its content. Its content stays centered once stretched
|
|
37
51
|
* @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
|
|
38
52
|
* @prop {string} href - The URL the button navigates to. When set, the button renders as a link instead of a button
|
|
39
|
-
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link icon and announces it to assistive technology
|
|
53
|
+
* @prop {'_blank' | '_self' | '_parent' | '_top'} target - Where to open the linked URL. Only used when href is set. Opening in a new tab automatically adds an external link icon and announces it to assistive technology, in the current locale. A slotted anchor opening in a new tab gets the same icon and announcement
|
|
54
|
+
* @prop {string} [locale] - The locale used to resolve the "opens in a new tab" announcement. Defaults to the one set with setDefaultLocale, English otherwise
|
|
40
55
|
* @prop {string} download - The filename used when the linked URL is downloaded instead of navigated to. Only used when href is set
|
|
41
56
|
* @prop {boolean} [loading=false] - Whether the button shows a loading indicator. Like disabled, it blocks interaction, but keeps the original content in place so the button doesn't change size
|
|
42
57
|
* @prop {string} [loadingLabel='Loading…'] - The accessible label announced while the button is loading
|
|
43
58
|
* @prop {string} command - The command sent to the element targeted by commandFor when the button is clicked, following the Invoker Commands API
|
|
44
59
|
* @prop {string} commandFor - The id of the element that command is sent to
|
|
45
|
-
* @attr {string} aria-label - The accessible label for the button. When the button opens a link in a new tab, this automatically gets a note appended announcing it
|
|
46
|
-
* @prop {'default' | 'fill' | 'outline' | 'flat' | 'raised' | 'ghost'} [appearance='fill'] - The button's surface style. Fill is a solid, colored background with light text. Default is a paler tint of the same color. Outline keeps the color as a border instead of a fill. Flat always renders a muted, low emphasis surface regardless of
|
|
60
|
+
* @attr {string} aria-label - The accessible label for the button. When the button opens a link in a new tab, this automatically gets a note appended announcing it. Ignored with a slotted anchor, which takes it instead
|
|
61
|
+
* @prop {'default' | 'fill' | 'outline' | 'flat' | 'raised' | 'ghost'} [appearance='fill'] - The button's surface style. Fill is a solid, colored background with light text. Default is a paler tint of the same color. Outline keeps the color as a border instead of a fill. Flat always renders a muted, low emphasis surface regardless of color. Raised adds a drop shadow. Ghost shows no surface at rest, only gaining a border and a tinted background on hover, focus, or press
|
|
47
62
|
* @fires click - Fired when the button is activated by mouse, Enter, or Space
|
|
48
63
|
* @fires {NavigationEvent} eunnavigate - Fired before following href, so a client-side router can intercept the navigation. Not fired for downloads, and cancelable
|
|
49
64
|
* @cssprop [--button-background] - Sets the background color
|
|
50
65
|
* @cssprop [--button-background-hover] - Sets the background color on hover
|
|
51
66
|
* @cssprop [--button-background-active] - Sets the background color while pressed
|
|
52
67
|
* @cssprop [--button-text] - Sets the text color
|
|
53
|
-
* @cssprop [--button-padding] - Sets the button's padding
|
|
54
|
-
* @cssprop [--button-
|
|
68
|
+
* @cssprop [--button-padding] - Sets the button's padding, for every size
|
|
69
|
+
* @cssprop [--button-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --button-padding is set
|
|
70
|
+
* @cssprop [--button-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --button-padding is set
|
|
71
|
+
* @cssprop [--button-border-radius] - Sets the corner radius of the button, for every size and over rounded
|
|
55
72
|
* @cssprop [--button-focus-outline] - Sets the color of the focus outline
|
|
56
73
|
* @cssprop [--button-transition] - Sets the duration of the button's transitions
|
|
57
74
|
* @cssprop [--button-shadow] - Sets a box shadow. None is applied by default
|
|
58
75
|
* @cssprop [--button-shadow-hover] - Sets the box shadow on hover, falling back to button-shadow when unset
|
|
59
|
-
* @cssprop [--button-border-color] - Sets the border color, overriding the color the active
|
|
76
|
+
* @cssprop [--button-border-color] - Sets the border color, overriding the color the active color would otherwise use
|
|
60
77
|
* @cssprop [--button-border-color-hover] - Sets the border color on hover or focus, falling back to button-border-color when unset
|
|
61
|
-
* @cssprop [--button-border-size] - Sets the width of the border
|
|
78
|
+
* @cssprop [--button-border-size] - Sets the width of the border. Defaults to 1px for outline and 1.5px otherwise
|
|
79
|
+
* @cssprop [--button-font-size] - Sets the font size, for every size
|
|
80
|
+
* @cssprop [--button-font-weight] - Sets the font weight
|
|
81
|
+
* @cssprop [--button-line-height] - Sets the line height, for every size. Also sizes the icons
|
|
62
82
|
* @cssprop [--button-full] - Set to true to stretch the button like the full attribute does. Unlike the attribute, a container query can set it, keeping the responsive behavior in pure CSS. Needs a browser supporting the CSS if() function
|
|
63
83
|
* @element eun-button
|
|
64
84
|
*/
|
|
65
|
-
let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(DisabledMixin(LitElement))) {
|
|
85
|
+
let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(DisabledMixin(LocalizableMixin(LitElement)))) {
|
|
66
86
|
constructor() {
|
|
67
87
|
super(...arguments);
|
|
68
88
|
/**
|
|
@@ -72,13 +92,13 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
72
92
|
this.loadingLabel = "Loading…";
|
|
73
93
|
/**
|
|
74
94
|
* The button's surface treatment. `fill` is a solid, opaque
|
|
75
|
-
* `
|
|
95
|
+
* `color`-colored background with light text ; `default` is a pale
|
|
76
96
|
* tinted wash of the same color ; `outline` drops the fill for a colored
|
|
77
97
|
* border ; `flat` always renders the same muted, low-emphasis surface
|
|
78
|
-
* regardless of `
|
|
98
|
+
* regardless of `color` ; `raised` adds a drop shadow ; `ghost` has no
|
|
79
99
|
* visible surface at rest at all — a border (and a tinted background)
|
|
80
100
|
* only appear on hover/focus/active, defaulting to a neutral gray when
|
|
81
|
-
* `
|
|
101
|
+
* `color` isn't also set.
|
|
82
102
|
* @default fill
|
|
83
103
|
*/
|
|
84
104
|
this.appearance = "fill";
|
|
@@ -89,6 +109,25 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
89
109
|
* @default false
|
|
90
110
|
*/
|
|
91
111
|
this.full = false;
|
|
112
|
+
/**
|
|
113
|
+
* Whether {@link syncSlottedAnchor} is the one that took the slotted
|
|
114
|
+
* anchor out of the tab order, so it only ever restores what it changed.
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
_EunomiaButton_blockedAnchor.set(this, void 0);
|
|
118
|
+
/**
|
|
119
|
+
* Announces the slotted anchor opening in a new tab.
|
|
120
|
+
* @internal
|
|
121
|
+
*/
|
|
122
|
+
_EunomiaButton_newTab.set(this, new NewTabAnchorController(this, () => this.slottedAnchor, () => this.dictionary.link.opensInNewTab));
|
|
123
|
+
/**
|
|
124
|
+
* Re-renders when the default slot changes, so an anchor added or removed
|
|
125
|
+
* after the first render switches between the two modes.
|
|
126
|
+
* @private
|
|
127
|
+
*/
|
|
128
|
+
this.handleDefaultSlotChange = () => {
|
|
129
|
+
this.requestUpdate();
|
|
130
|
+
};
|
|
92
131
|
}
|
|
93
132
|
/**
|
|
94
133
|
* Lifecycle hook called whenever reactive properties change. Manages the
|
|
@@ -105,6 +144,13 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
105
144
|
*/
|
|
106
145
|
updated(_changedProperties) {
|
|
107
146
|
super.updated(_changedProperties);
|
|
147
|
+
const anchor = this.slottedAnchor;
|
|
148
|
+
if (anchor) {
|
|
149
|
+
this.removeAttribute("tabindex");
|
|
150
|
+
this.syncSlottedAnchor(anchor);
|
|
151
|
+
warnIgnoredHostLinkAttributes(this);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
108
154
|
if (_changedProperties.has("href") ||
|
|
109
155
|
_changedProperties.has("disabled") ||
|
|
110
156
|
_changedProperties.has("loading")) {
|
|
@@ -117,21 +163,55 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
117
163
|
}
|
|
118
164
|
}
|
|
119
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* The native `<a>` slotted as a direct child while `href` is unset, which
|
|
168
|
+
* then acts as the button's link : it's in the light DOM, so it's part of
|
|
169
|
+
* the server-rendered HTML, and a framework's own link component can be
|
|
170
|
+
* that anchor. Navigation, `target`/`rel` and the new-tab hint are the
|
|
171
|
+
* consumer's own in this mode.
|
|
172
|
+
* @internal
|
|
173
|
+
*/
|
|
174
|
+
get slottedAnchor() {
|
|
175
|
+
return this.href ? null : this.querySelector(":scope > a");
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Links have no native disabled state : while `disabled` or `loading`,
|
|
179
|
+
* the slotted anchor is announced as disabled and taken out of the tab
|
|
180
|
+
* order (its pointer events are cut by the stylesheet), then restored.
|
|
181
|
+
* @param anchor the slotted anchor.
|
|
182
|
+
* @private
|
|
183
|
+
*/
|
|
184
|
+
syncSlottedAnchor(anchor) {
|
|
185
|
+
if (this.disabled || this.loading) {
|
|
186
|
+
anchor.setAttribute("aria-disabled", "true");
|
|
187
|
+
anchor.setAttribute("tabindex", "-1");
|
|
188
|
+
__classPrivateFieldSet(this, _EunomiaButton_blockedAnchor, anchor, "f");
|
|
189
|
+
}
|
|
190
|
+
else if (__classPrivateFieldGet(this, _EunomiaButton_blockedAnchor, "f") === anchor) {
|
|
191
|
+
anchor.removeAttribute("aria-disabled");
|
|
192
|
+
anchor.removeAttribute("tabindex");
|
|
193
|
+
__classPrivateFieldSet(this, _EunomiaButton_blockedAnchor, undefined, "f");
|
|
194
|
+
}
|
|
195
|
+
}
|
|
120
196
|
/**
|
|
121
197
|
* Renders the end-of-content slot, replaced by an external-link indicator
|
|
122
|
-
* (icon + accessible hint) when navigating away in a new tab.
|
|
198
|
+
* (icon + accessible hint) when navigating away in a new tab. A slotted
|
|
199
|
+
* anchor gets the icon only : the hint would sit outside it, so it's
|
|
200
|
+
* announced through its aria-description instead.
|
|
123
201
|
* @private
|
|
124
202
|
*/
|
|
125
203
|
renderEndContent() {
|
|
126
|
-
|
|
204
|
+
const hrefBlank = !!this.href && this.target === "_blank";
|
|
205
|
+
const newTabHint = this.dictionary.link.opensInNewTab;
|
|
206
|
+
if (!hrefBlank && !__classPrivateFieldGet(this, _EunomiaButton_newTab, "f").isBlank) {
|
|
127
207
|
return html `<slot name="end"></slot>`;
|
|
128
208
|
}
|
|
129
209
|
return html `
|
|
130
210
|
<span id="external-link-icon">
|
|
131
211
|
<eun-icon name="arrow_forward" shape="round" size="12"></eun-icon>
|
|
132
|
-
${this.ariaLabel
|
|
212
|
+
${!hrefBlank || this.ariaLabel
|
|
133
213
|
? nothing
|
|
134
|
-
: html `<span class="sr-only"> (
|
|
214
|
+
: html `<span class="sr-only"> (${newTabHint})</span>`}
|
|
135
215
|
</span>
|
|
136
216
|
`;
|
|
137
217
|
}
|
|
@@ -152,7 +232,7 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
152
232
|
></eun-icon>`
|
|
153
233
|
: nothing}
|
|
154
234
|
</slot>
|
|
155
|
-
<slot></slot>
|
|
235
|
+
<slot @slotchange=${this.handleDefaultSlotChange}></slot>
|
|
156
236
|
${this.renderEndContent()}
|
|
157
237
|
`;
|
|
158
238
|
if (!this.loading) {
|
|
@@ -197,7 +277,7 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
197
277
|
rel=${ifDefined(isBlank ? "noopener noreferrer" : undefined)}
|
|
198
278
|
download=${ifDefined(this.download)}
|
|
199
279
|
aria-label=${ifDefined(isBlank && this.ariaLabel
|
|
200
|
-
? `${this.ariaLabel} (
|
|
280
|
+
? `${this.ariaLabel} (${this.dictionary.link.opensInNewTab})`
|
|
201
281
|
: (this.ariaLabel ?? undefined))}
|
|
202
282
|
aria-disabled=${ifDefined(this.disabled ? "true" : undefined)}
|
|
203
283
|
aria-busy=${ifDefined(this.loading ? "true" : undefined)}
|
|
@@ -210,6 +290,7 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
210
290
|
return html `
|
|
211
291
|
<div
|
|
212
292
|
id="button"
|
|
293
|
+
class=${ifDefined(this.slottedAnchor ? "slotted-link" : undefined)}
|
|
213
294
|
aria-busy=${ifDefined(this.loading ? "true" : undefined)}
|
|
214
295
|
>
|
|
215
296
|
${content}
|
|
@@ -217,6 +298,8 @@ let EunomiaButton = class EunomiaButton extends ButtonMixin(CommandMixin(Disable
|
|
|
217
298
|
`;
|
|
218
299
|
}
|
|
219
300
|
};
|
|
301
|
+
_EunomiaButton_blockedAnchor = new WeakMap();
|
|
302
|
+
_EunomiaButton_newTab = new WeakMap();
|
|
220
303
|
/**
|
|
221
304
|
* Style to import to the component.
|
|
222
305
|
*
|
|
@@ -4,28 +4,26 @@ import { buttonPaletteStyles } from "../shared-styles/button-palette.styles.js";
|
|
|
4
4
|
* Base style for button.
|
|
5
5
|
*
|
|
6
6
|
* Custom css variables:
|
|
7
|
-
* [--button-background] - Set a custom background color, for every appearance and
|
|
7
|
+
* [--button-background] - Set a custom background color, for every appearance and color
|
|
8
8
|
* [--button-background-hover] - Set a custom button background color for hover state. Derived from --button-background when only that one is set
|
|
9
9
|
* [--button-background-active] - Set a custom button background color for active state. Derived from --button-background when only that one is set
|
|
10
|
-
* [--button-text] - Set a custom button text color, for every appearance and
|
|
11
|
-
* [--button-padding] - Set a custom padding to the button
|
|
12
|
-
* [--button-
|
|
10
|
+
* [--button-text] - Set a custom button text color, for every appearance and color
|
|
11
|
+
* [--button-padding] - Set a custom padding to the button, for every size
|
|
12
|
+
* [--button-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --button-padding is set
|
|
13
|
+
* [--button-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --button-padding is set
|
|
14
|
+
* [--button-border-radius] - Set a custom radius to the button border, for every size and over `rounded`
|
|
13
15
|
* [--button-focus-outline] - Set a custom color to the focus outline
|
|
14
16
|
* [--button-transition] - Set a custom button transition time
|
|
15
17
|
* [--button-shadow] - Set a custom box shadow to the button (used by the `raised` variant)
|
|
16
18
|
* [--button-shadow-hover] - Set a custom box shadow to the button on hover state (used by the `raised` variant)
|
|
17
|
-
* [--button-border-color] - Set a custom border color, for every appearance and
|
|
19
|
+
* [--button-border-color] - Set a custom border color, for every appearance and color
|
|
18
20
|
* [--button-border-color-hover] - Set a custom border color for hover/focus-visible state, falling back to --button-border-color
|
|
19
|
-
* [--button-border-size] - Set a custom border width
|
|
21
|
+
* [--button-border-size] - Set a custom border width. Defaults to 1px for `outline` and 1.5px otherwise
|
|
22
|
+
* [--button-font-size] - Set a custom font size, for every size
|
|
23
|
+
* [--button-font-weight] - Set a custom font weight
|
|
24
|
+
* [--button-line-height] - Set a custom line height, for every size. Also sizes the icons
|
|
20
25
|
* [--button-full] - Set to `true` to get the same result as the `full` attribute. Meant to be set from a container query
|
|
21
26
|
*/
|
|
22
|
-
/*
|
|
23
|
-
* The variant fills the palette slots (see {@link buttonPaletteStyles}), the
|
|
24
|
-
* appearance reads them into --_bg / --_bg-hover / --_bg-active / --_fg /
|
|
25
|
-
* --_bd, and #button finally reads those *behind* the --button-* custom
|
|
26
|
-
* properties, so a custom property always wins over any variant, appearance
|
|
27
|
-
* and state. Only `disabled` stays above them, so it never loses its look.
|
|
28
|
-
*/
|
|
29
27
|
const base = css `
|
|
30
28
|
:host {
|
|
31
29
|
--_focusIndicator: var(--button-focus-outline, var(--_ring));
|
|
@@ -35,21 +33,24 @@ const base = css `
|
|
|
35
33
|
var(--button-background) 76%,
|
|
36
34
|
black
|
|
37
35
|
);
|
|
38
|
-
--
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
);
|
|
36
|
+
--_defaultBorderRadius: var(--eun-border-radius-m, 8px);
|
|
37
|
+
--_defaultPaddingBlock: var(--eun-space-s, 8px);
|
|
38
|
+
--_defaultPaddingInline: calc(var(--eun-space-l, 32px) / 2);
|
|
39
|
+
--_borderRadius: var(--button-border-radius, var(--_defaultBorderRadius));
|
|
42
40
|
--_padding: var(
|
|
43
41
|
--button-padding,
|
|
44
|
-
var(--
|
|
42
|
+
var(--button-padding-block, var(--_defaultPaddingBlock))
|
|
43
|
+
var(--button-padding-inline, var(--_defaultPaddingInline))
|
|
45
44
|
);
|
|
46
45
|
--_boxShadow: var(--button-shadow, none);
|
|
47
46
|
--_boxShadow-hover: var(--button-shadow-hover, var(--_boxShadow));
|
|
48
|
-
--_transition: var(--button-transition,
|
|
47
|
+
--_transition: var(--button-transition, var(--eun-duration-m, 200ms));
|
|
49
48
|
--_borderSize: var(--button-border-size, 1.5px);
|
|
50
|
-
--
|
|
49
|
+
--_defaultFontSize: var(--eun-font-size-s, 14px);
|
|
50
|
+
--_fontSize: var(--button-font-size, var(--_defaultFontSize));
|
|
51
51
|
--_gap: var(--eun-space-xs, 4px);
|
|
52
|
-
--
|
|
52
|
+
--_defaultLineHeight: 1rem;
|
|
53
|
+
--_lineHeight: var(--button-line-height, var(--_defaultLineHeight));
|
|
53
54
|
--icon-size: var(--_lineHeight);
|
|
54
55
|
--_before-display: none;
|
|
55
56
|
--_cursor: pointer;
|
|
@@ -59,7 +60,9 @@ const base = css `
|
|
|
59
60
|
user-select: none;
|
|
60
61
|
cursor: var(--_cursor);
|
|
61
62
|
outline: 2px solid transparent;
|
|
62
|
-
transition:
|
|
63
|
+
transition:
|
|
64
|
+
outline var(--eun-easing-out, ease-out) var(--_transition),
|
|
65
|
+
outline-offset var(--eun-easing-out, ease-out) var(--_transition);
|
|
63
66
|
border-radius: var(--_borderRadius);
|
|
64
67
|
z-index: 0;
|
|
65
68
|
}
|
|
@@ -72,31 +75,35 @@ const base = css `
|
|
|
72
75
|
outline-color: var(--_focusIndicator);
|
|
73
76
|
}
|
|
74
77
|
:host([size="xs"]) {
|
|
75
|
-
--
|
|
76
|
-
--
|
|
77
|
-
--
|
|
78
|
-
--
|
|
78
|
+
--_defaultFontSize: var(--eun-font-size-xs, 10px);
|
|
79
|
+
--_defaultPaddingBlock: var(--eun-space-xxs, 1.6px);
|
|
80
|
+
--_defaultPaddingInline: var(--eun-space-xs, 4px);
|
|
81
|
+
--_defaultLineHeight: 10px;
|
|
82
|
+
--_defaultBorderRadius: var(--eun-border-radius-s, 999px);
|
|
79
83
|
}
|
|
80
84
|
:host([size="s"]) {
|
|
81
|
-
--
|
|
82
|
-
--
|
|
83
|
-
--
|
|
84
|
-
--
|
|
85
|
+
--_defaultFontSize: var(--eun-font-size-xs, 10px);
|
|
86
|
+
--_defaultPaddingBlock: calc(var(--eun-space-s) / 2);
|
|
87
|
+
--_defaultPaddingInline: var(--eun-space-s);
|
|
88
|
+
--_defaultLineHeight: 10px;
|
|
89
|
+
--_defaultBorderRadius: var(--eun-border-radius-s, 999px);
|
|
85
90
|
}
|
|
86
91
|
:host([size="l"]) {
|
|
87
|
-
--
|
|
92
|
+
--_defaultFontSize: var(--eun-font-size-m, 16px);
|
|
88
93
|
--_gap: var(--eun-space-m, 16px);
|
|
89
|
-
--
|
|
90
|
-
--
|
|
94
|
+
--_defaultPaddingBlock: calc(var(--eun-space-s, 8px) * 1.25);
|
|
95
|
+
--_defaultPaddingInline: var(--eun-space-l, 32px);
|
|
96
|
+
--_defaultLineHeight: 1.1rem;
|
|
91
97
|
}
|
|
92
98
|
:host([size="xl"]) {
|
|
93
|
-
--
|
|
99
|
+
--_defaultFontSize: var(--eun-font-size-l, 1.3rem);
|
|
94
100
|
--_gap: var(--eun-space-m, 16px);
|
|
95
|
-
--
|
|
96
|
-
--
|
|
101
|
+
--_defaultPaddingBlock: calc(var(--eun-space-s, 8px) * 1.5);
|
|
102
|
+
--_defaultPaddingInline: var(--eun-space-l, 32px);
|
|
103
|
+
--_defaultLineHeight: 1.3rem;
|
|
97
104
|
}
|
|
98
105
|
:host([rounded]) {
|
|
99
|
-
--
|
|
106
|
+
--_defaultBorderRadius: var(--eun-border-radius-xl, 999px);
|
|
100
107
|
}
|
|
101
108
|
slot::slotted(*) {
|
|
102
109
|
color: var(--_textColor);
|
|
@@ -126,11 +133,13 @@ const base = css `
|
|
|
126
133
|
outline: 2px solid transparent;
|
|
127
134
|
padding: var(--_padding);
|
|
128
135
|
gap: var(--_gap);
|
|
129
|
-
transition: all ease-out var(--_transition);
|
|
136
|
+
transition: all var(--eun-easing-out, ease-out) var(--_transition);
|
|
130
137
|
font-size: var(--_fontSize);
|
|
138
|
+
font-weight: var(--button-font-weight, inherit);
|
|
131
139
|
line-height: var(--_lineHeight);
|
|
132
140
|
text-decoration: none;
|
|
133
141
|
align-items: center;
|
|
142
|
+
justify-content: center;
|
|
134
143
|
white-space: nowrap;
|
|
135
144
|
}
|
|
136
145
|
#button:hover,
|
|
@@ -178,6 +187,53 @@ const base = css `
|
|
|
178
187
|
border: 0;
|
|
179
188
|
}
|
|
180
189
|
`;
|
|
190
|
+
const slottedLink = css `
|
|
191
|
+
#button.slotted-link {
|
|
192
|
+
position: relative;
|
|
193
|
+
}
|
|
194
|
+
::slotted(a) {
|
|
195
|
+
color: inherit;
|
|
196
|
+
text-decoration: none;
|
|
197
|
+
outline: none !important;
|
|
198
|
+
}
|
|
199
|
+
::slotted(a)::after {
|
|
200
|
+
content: "";
|
|
201
|
+
position: absolute;
|
|
202
|
+
inset: calc(-1 * var(--_borderSize));
|
|
203
|
+
border-radius: var(--_borderRadius);
|
|
204
|
+
outline: 2px solid transparent;
|
|
205
|
+
transition: outline var(--eun-easing-out, ease-out) var(--_transition);
|
|
206
|
+
}
|
|
207
|
+
::slotted(a:focus-visible)::after {
|
|
208
|
+
outline-offset: 2px;
|
|
209
|
+
outline-color: var(--_focusIndicator);
|
|
210
|
+
}
|
|
211
|
+
:host(:focus-within) #button.slotted-link {
|
|
212
|
+
box-shadow: var(--_boxShadow-hover);
|
|
213
|
+
border-color: var(
|
|
214
|
+
--button-border-color-hover,
|
|
215
|
+
var(--button-border-color, var(--_bd))
|
|
216
|
+
);
|
|
217
|
+
}
|
|
218
|
+
:host(:not([disabled]):focus-within) #button.slotted-link {
|
|
219
|
+
background: var(
|
|
220
|
+
--button-background-hover,
|
|
221
|
+
var(--_hoverFromCustom, var(--_bg-hover))
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
:host([slide]:focus-within) #button.slotted-link {
|
|
225
|
+
grid-template-columns: auto 1fr auto;
|
|
226
|
+
}
|
|
227
|
+
:host([slide]:focus-within) #button.slotted-link slot:not([name]) {
|
|
228
|
+
margin-left: var(--_gap);
|
|
229
|
+
opacity: 1;
|
|
230
|
+
}
|
|
231
|
+
:host([disabled]) ::slotted(a),
|
|
232
|
+
:host([loading]) ::slotted(a) {
|
|
233
|
+
pointer-events: none;
|
|
234
|
+
cursor: inherit;
|
|
235
|
+
}
|
|
236
|
+
`;
|
|
181
237
|
const appearances = css `
|
|
182
238
|
:host([appearance="fill"]),
|
|
183
239
|
:host(:not([appearance])) {
|
|
@@ -195,6 +251,7 @@ const appearances = css `
|
|
|
195
251
|
--_bd: transparent;
|
|
196
252
|
}
|
|
197
253
|
:host([appearance="outline"]) {
|
|
254
|
+
--_borderSize: var(--button-border-size, 1px);
|
|
198
255
|
--_bg: transparent;
|
|
199
256
|
--_bg-hover: var(--_wash-hover);
|
|
200
257
|
--_bg-active: var(--_wash-active);
|
|
@@ -208,7 +265,7 @@ const appearances = css `
|
|
|
208
265
|
--_fg: var(--_accent);
|
|
209
266
|
--_bd: transparent;
|
|
210
267
|
}
|
|
211
|
-
:host([appearance="ghost"]:not([
|
|
268
|
+
:host([appearance="ghost"]:not([color])) {
|
|
212
269
|
--_accent: var(--eun-text-secondary, #484e61);
|
|
213
270
|
--_wash-hover: var(--eun-content-hover, #edeff0);
|
|
214
271
|
--_wash-active: var(--eun-disabled-color, #ecedf0);
|
|
@@ -221,13 +278,14 @@ const appearances = css `
|
|
|
221
278
|
--_bd: transparent;
|
|
222
279
|
--_boxShadow: var(
|
|
223
280
|
--button-shadow,
|
|
224
|
-
var(--eun-shadow-s,
|
|
281
|
+
var(--eun-shadow-s, rgba(149, 157, 165, 0.2) 0px 8px 24px)
|
|
225
282
|
);
|
|
226
283
|
--_boxShadow-hover: var(
|
|
227
284
|
--button-shadow-hover,
|
|
228
285
|
var(
|
|
229
286
|
--eun-shadow-m,
|
|
230
|
-
|
|
287
|
+
rgba(0, 0, 0, 0.1) 0px 10px 15px -3px,
|
|
288
|
+
rgba(0, 0, 0, 0.05) 0px 4px 6px -2px
|
|
231
289
|
)
|
|
232
290
|
);
|
|
233
291
|
}
|
|
@@ -239,7 +297,6 @@ const appearances = css `
|
|
|
239
297
|
--_bd: transparent;
|
|
240
298
|
}
|
|
241
299
|
|
|
242
|
-
/* States : a custom background wins, derived when only the rest one is set. */
|
|
243
300
|
:host(:not([disabled])) #button:is(:hover, :focus-visible),
|
|
244
301
|
:host(:not([disabled]):focus-visible) #button {
|
|
245
302
|
background: var(
|
|
@@ -256,32 +313,32 @@ const appearances = css `
|
|
|
256
313
|
:host([appearance="raised"]:not([disabled])) #button:active {
|
|
257
314
|
box-shadow: var(
|
|
258
315
|
--eun-shadow-l,
|
|
259
|
-
|
|
316
|
+
rgba(0, 0, 0, 0.1) 0px 10px 15px -3px,
|
|
317
|
+
rgba(0, 0, 0, 0.05) 0px 4px 6px -2px
|
|
260
318
|
);
|
|
261
319
|
}
|
|
262
320
|
|
|
263
|
-
/* A solid semantic button darkens instead of switching color. */
|
|
264
321
|
:host(
|
|
265
322
|
[appearance="fill"]:is(
|
|
266
|
-
[
|
|
267
|
-
[
|
|
268
|
-
[
|
|
323
|
+
[color="critical"],
|
|
324
|
+
[color="success"],
|
|
325
|
+
[color="warning"]
|
|
269
326
|
):not([disabled]):is(:hover, :focus-visible)
|
|
270
327
|
)
|
|
271
328
|
#button,
|
|
272
329
|
:host(
|
|
273
330
|
[appearance="fill"]:is(
|
|
274
|
-
[
|
|
275
|
-
[
|
|
276
|
-
[
|
|
331
|
+
[color="critical"],
|
|
332
|
+
[color="success"],
|
|
333
|
+
[color="warning"]
|
|
277
334
|
):not([disabled])
|
|
278
335
|
)
|
|
279
336
|
#button:is(:hover, :focus-visible) {
|
|
280
337
|
filter: brightness(0.9);
|
|
281
338
|
}
|
|
282
|
-
:host([appearance="fill"][
|
|
283
|
-
:host([appearance="fill"][
|
|
284
|
-
:host([appearance="fill"][
|
|
339
|
+
:host([appearance="fill"][color="critical"]:not([disabled])) #button:active,
|
|
340
|
+
:host([appearance="fill"][color="success"]:not([disabled])) #button:active,
|
|
341
|
+
:host([appearance="fill"][color="warning"]:not([disabled])) #button:active {
|
|
285
342
|
filter: brightness(0.8);
|
|
286
343
|
}
|
|
287
344
|
`;
|
|
@@ -314,7 +371,8 @@ const slide = css `
|
|
|
314
371
|
gap: 0;
|
|
315
372
|
align-items: center;
|
|
316
373
|
justify-content: start;
|
|
317
|
-
transition: grid-template-columns
|
|
374
|
+
transition: grid-template-columns var(--eun-easing-default, ease)
|
|
375
|
+
var(--_transition);
|
|
318
376
|
}
|
|
319
377
|
:host([slide]:hover) #button,
|
|
320
378
|
:host([slide]:focus-visible) #button,
|
|
@@ -329,8 +387,8 @@ const slide = css `
|
|
|
329
387
|
margin-left: 0;
|
|
330
388
|
opacity: 0;
|
|
331
389
|
transition:
|
|
332
|
-
margin-left ease var(--_transition),
|
|
333
|
-
opacity ease var(--_transition);
|
|
390
|
+
margin-left var(--eun-easing-default, ease) var(--_transition),
|
|
391
|
+
opacity var(--eun-easing-default, ease) var(--_transition);
|
|
334
392
|
}
|
|
335
393
|
:host([slide]:hover) slot:not([name]),
|
|
336
394
|
:host([slide]:focus-visible) slot:not([name]),
|
|
@@ -344,18 +402,12 @@ const full = css `
|
|
|
344
402
|
display: flex;
|
|
345
403
|
width: 100%;
|
|
346
404
|
}
|
|
347
|
-
:host([full]) #button {
|
|
348
|
-
justify-content: center;
|
|
349
|
-
}
|
|
350
405
|
`;
|
|
351
406
|
const fullVariable = css `
|
|
352
407
|
@supports (width: if(style(--a: b): 1px; else: 2px)) {
|
|
353
408
|
:host {
|
|
354
409
|
width: if(style(--button-full: true): 100%; else: fit-content);
|
|
355
410
|
}
|
|
356
|
-
#button {
|
|
357
|
-
justify-content: if(style(--button-full: true): center; else: normal);
|
|
358
|
-
}
|
|
359
411
|
}
|
|
360
412
|
`;
|
|
361
413
|
export const buttonStyles = [
|
|
@@ -364,6 +416,7 @@ export const buttonStyles = [
|
|
|
364
416
|
appearances,
|
|
365
417
|
disabled,
|
|
366
418
|
slide,
|
|
419
|
+
slottedLink,
|
|
367
420
|
fullVariable,
|
|
368
421
|
full,
|
|
369
422
|
];
|