@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
|
@@ -15,7 +15,7 @@ import { ValidatorsMixin, } from "../../../mixins/validators.mixin.js";
|
|
|
15
15
|
import { FormMixin } from "../../../mixins/form.mixin.js";
|
|
16
16
|
import { FormLabelMixin, } from "../../../mixins/form-label.mixin.js";
|
|
17
17
|
import { EditableMixin, } from "../../../mixins/editable.mixin.js";
|
|
18
|
-
import {
|
|
18
|
+
import { FieldAppearanceMixin, } from "../../../mixins/field-appearance.mixin.js";
|
|
19
19
|
import { ChangeEvent } from "../../../events/change.event.js";
|
|
20
20
|
import { findRichTextColor, formatRichText, getPlainTextLength, populateEditableRoot, RICH_TEXT_COLORS, serializeEditableRoot, splitAlign, } from "../../../utils/rich-text.utils.js";
|
|
21
21
|
import { formLabelsStyles } from "../shared-styles/form-labels.styles.js";
|
|
@@ -467,7 +467,7 @@ function getActiveColorName(root, kind) {
|
|
|
467
467
|
* @internal
|
|
468
468
|
*/
|
|
469
469
|
const Base = DisabledMixin(ValidatorsMixin(LitElement));
|
|
470
|
-
const EunomiaTextareaMixinBase =
|
|
470
|
+
const EunomiaTextareaMixinBase = FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(EditableMixin(FormMixin(Base)))));
|
|
471
471
|
/**
|
|
472
472
|
* A multi-line text field, sharing its label, hint, and error chrome and
|
|
473
473
|
* theming with the input component. It grows and shrinks to fit its
|
|
@@ -485,7 +485,7 @@ const EunomiaTextareaMixinBase = FieldVariantMixin(FormLabelMixin(ReadonlyMixin(
|
|
|
485
485
|
* typed by hand. See the Accessibility tab for the full keyboard and ARIA
|
|
486
486
|
* details of the toolbar and both readonly behaviors.
|
|
487
487
|
*
|
|
488
|
-
* @prop {'outline' | '
|
|
488
|
+
* @prop {'outline' | 'flat' | 'underline'} [appearance='outline'] - How the field's surface is drawn: a bordered box, a muted background with no border, or a bottom border only
|
|
489
489
|
* @prop {string} label - The title label of the field, rendered through the label component
|
|
490
490
|
* @prop {string} instructions - Instructions displayed below the label
|
|
491
491
|
* @prop {string} placeholder - The placeholder shown when the field is empty
|
|
@@ -495,7 +495,8 @@ const EunomiaTextareaMixinBase = FieldVariantMixin(FormLabelMixin(ReadonlyMixin(
|
|
|
495
495
|
* @prop {boolean} [disabled=false] - Whether the field is disabled
|
|
496
496
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
497
497
|
* @prop {boolean} [required=false] - Whether the field is required
|
|
498
|
-
* @prop {boolean} [hideError=false] - Whether the errors are hidden
|
|
498
|
+
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
499
|
+
* @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
|
|
499
500
|
* @prop {Array<import('../../../types/form-validators.type.js').Validators<string>>} validators - The list of validation rules applied to the field value
|
|
500
501
|
* @prop {number} rows - The fixed number of visible rows. When omitted, the field automatically grows and shrinks its height to fit its content
|
|
501
502
|
* @prop {boolean} [readonlyAvailable=false] - Whether the field can switch between a static display and an editable one
|
|
@@ -527,6 +528,8 @@ const EunomiaTextareaMixinBase = FieldVariantMixin(FormLabelMixin(ReadonlyMixin(
|
|
|
527
528
|
* @cssprop [--field-border-color-focus] - Sets the border color on focus
|
|
528
529
|
* @cssprop [--field-border-radius] - Sets the corner radius of the field
|
|
529
530
|
* @cssprop [--field-padding] - Sets the padding of the field
|
|
531
|
+
* @cssprop [--field-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --field-padding is set
|
|
532
|
+
* @cssprop [--field-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --field-padding is set
|
|
530
533
|
* @cssprop [--field-text-color] - Sets the text color of the field
|
|
531
534
|
* @cssprop [--field-placeholder-color] - Sets the color of the placeholder
|
|
532
535
|
* @cssprop [--field-error-color] - Sets the color of the error message
|
|
@@ -535,6 +538,9 @@ const EunomiaTextareaMixinBase = FieldVariantMixin(FormLabelMixin(ReadonlyMixin(
|
|
|
535
538
|
* @cssprop [--field-edit-confirm-color] - Sets the color of the confirm button in readonly-available edit mode
|
|
536
539
|
* @cssprop [--field-edit-cancel-color] - Sets the color of the cancel button in readonly-available edit mode
|
|
537
540
|
* @cssprop [--field-shadow] - Sets a box shadow on the field, none by default
|
|
541
|
+
* @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
|
|
542
|
+
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
543
|
+
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
538
544
|
* @element eun-textarea
|
|
539
545
|
*/
|
|
540
546
|
let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
@@ -996,13 +1002,13 @@ let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
|
996
1002
|
if (this.minlength !== undefined && length > 0 && length < this.minlength) {
|
|
997
1003
|
return {
|
|
998
1004
|
validity: { tooShort: true },
|
|
999
|
-
message:
|
|
1005
|
+
message: this.validationDictionary.validation.tooShort(this.minlength, length),
|
|
1000
1006
|
};
|
|
1001
1007
|
}
|
|
1002
1008
|
if (this.maxlength !== undefined && length > this.maxlength) {
|
|
1003
1009
|
return {
|
|
1004
1010
|
validity: { tooLong: true },
|
|
1005
|
-
message:
|
|
1011
|
+
message: this.validationDictionary.validation.tooLong(this.maxlength, length),
|
|
1006
1012
|
};
|
|
1007
1013
|
}
|
|
1008
1014
|
return { validity: {} };
|
|
@@ -1204,7 +1210,7 @@ let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
|
1204
1210
|
return;
|
|
1205
1211
|
}
|
|
1206
1212
|
this.handleEditableInput();
|
|
1207
|
-
this.updateComplete.then(() => {
|
|
1213
|
+
void this.updateComplete.then(() => {
|
|
1208
1214
|
root.focus();
|
|
1209
1215
|
this.syncToolbarToSelection();
|
|
1210
1216
|
});
|
|
@@ -1260,7 +1266,7 @@ let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
|
1260
1266
|
const [align] = event.target.value;
|
|
1261
1267
|
root.style.textAlign = align === "start" ? "" : align;
|
|
1262
1268
|
this.handleEditableInput();
|
|
1263
|
-
this.updateComplete.then(() => root.focus());
|
|
1269
|
+
void this.updateComplete.then(() => root.focus());
|
|
1264
1270
|
}
|
|
1265
1271
|
/**
|
|
1266
1272
|
* Opens or closes a color picker popover, wiring up (or tearing down) the
|
|
@@ -1321,7 +1327,7 @@ let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
|
1321
1327
|
}
|
|
1322
1328
|
}
|
|
1323
1329
|
this.closeColorPicker();
|
|
1324
|
-
this.updateComplete.then(() => this.fieldEl?.focus());
|
|
1330
|
+
void this.updateComplete.then(() => this.fieldEl?.focus());
|
|
1325
1331
|
}
|
|
1326
1332
|
/**
|
|
1327
1333
|
* Renders the formatting toolbar, shown above the field itself (never
|
|
@@ -1539,7 +1545,7 @@ let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
|
1539
1545
|
?required=${this.required}
|
|
1540
1546
|
minlength=${ifDefined(this.minlength)}
|
|
1541
1547
|
maxlength=${ifDefined(this.maxlength)}
|
|
1542
|
-
aria-invalid=${
|
|
1548
|
+
aria-invalid=${this.showError}
|
|
1543
1549
|
aria-label=${ifDefined(this.label)}
|
|
1544
1550
|
aria-describedby=${describedBy || nothing}
|
|
1545
1551
|
@input=${this.handleInput}
|
|
@@ -1570,7 +1576,7 @@ let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
|
1570
1576
|
role="textbox"
|
|
1571
1577
|
aria-multiline="true"
|
|
1572
1578
|
aria-required=${this.required ? "true" : nothing}
|
|
1573
|
-
aria-invalid=${
|
|
1579
|
+
aria-invalid=${this.showError}
|
|
1574
1580
|
aria-label=${ifDefined(this.label)}
|
|
1575
1581
|
aria-describedby=${describedBy || nothing}
|
|
1576
1582
|
@beforeinput=${this.handleEditableBeforeInput}
|
|
@@ -1625,7 +1631,7 @@ let EunomiaTextarea = class EunomiaTextarea extends EunomiaTextareaMixinBase {
|
|
|
1625
1631
|
<eun-button
|
|
1626
1632
|
class="cancel"
|
|
1627
1633
|
size="s"
|
|
1628
|
-
|
|
1634
|
+
color="critical"
|
|
1629
1635
|
appearance="flat"
|
|
1630
1636
|
rounded
|
|
1631
1637
|
type="button"
|
|
@@ -36,7 +36,8 @@ const timePickerColumns = css `
|
|
|
36
36
|
padding: var(--eun-space-xxs, 1.6px);
|
|
37
37
|
color: var(--_iconColor, var(--eun-text-secondary, #484e61));
|
|
38
38
|
cursor: pointer;
|
|
39
|
-
transition: background-color
|
|
39
|
+
transition: background-color var(--eun-duration-s, 150ms)
|
|
40
|
+
var(--eun-easing-default, ease);
|
|
40
41
|
}
|
|
41
42
|
.tp-arrow:hover:not(:disabled) {
|
|
42
43
|
background-color: var(
|
|
@@ -109,7 +110,8 @@ const timePickerColumns = css `
|
|
|
109
110
|
color: var(--_placeholderColor, var(--eun-color-grey-400, #c1c9d6));
|
|
110
111
|
font: inherit;
|
|
111
112
|
cursor: pointer;
|
|
112
|
-
transition: color
|
|
113
|
+
transition: color var(--eun-duration-s, 150ms)
|
|
114
|
+
var(--eun-easing-default, ease);
|
|
113
115
|
}
|
|
114
116
|
.tp-wheel-item.selected {
|
|
115
117
|
color: var(--_textColor, var(--eun-text-color, #071621));
|
|
@@ -27,7 +27,8 @@ const timePickerList = css `
|
|
|
27
27
|
font-variant-numeric: tabular-nums;
|
|
28
28
|
text-align: start;
|
|
29
29
|
cursor: pointer;
|
|
30
|
-
transition: background-color
|
|
30
|
+
transition: background-color var(--eun-duration-s, 150ms)
|
|
31
|
+
var(--eun-easing-default, ease);
|
|
31
32
|
}
|
|
32
33
|
.tp-list-item:hover:not(:disabled) {
|
|
33
34
|
background-color: var(
|
|
@@ -4,7 +4,7 @@ import { ReadonlyMixinInterface } from "../../../mixins/readonly.mixin.js";
|
|
|
4
4
|
import { ValidatorsMixinInterface, Validity } from "../../../mixins/validators.mixin.js";
|
|
5
5
|
import { FormMixinInterface } from "../../../mixins/form.mixin.js";
|
|
6
6
|
import { FormLabelMixinInterface } from "../../../mixins/form-label.mixin.js";
|
|
7
|
-
import {
|
|
7
|
+
import { FieldAppearanceMixinInterface } from "../../../mixins/field-appearance.mixin.js";
|
|
8
8
|
import { AnchorPositionMixinInterface } from "../../../mixins/anchor-position.mixin.js";
|
|
9
9
|
import { LocalizableMixinInterface } from "../../../mixins/localizable.mixin.js";
|
|
10
10
|
import { Constructor } from "../../../utils/constructor.type.js";
|
|
@@ -19,7 +19,7 @@ export declare const EunomiaTimePickerTagName = "eun-time-picker";
|
|
|
19
19
|
* interface element.
|
|
20
20
|
* @internal
|
|
21
21
|
*/
|
|
22
|
-
type EunomiaTimePickerBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<Date | null> & FormMixinInterface<Date | null> & FormLabelMixinInterface &
|
|
22
|
+
type EunomiaTimePickerBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<Date | null> & FormMixinInterface<Date | null> & FormLabelMixinInterface & FieldAppearanceMixinInterface & AnchorPositionMixinInterface & LocalizableMixinInterface;
|
|
23
23
|
declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
24
24
|
/**
|
|
25
25
|
* A time field entered across segmented numeric hour and minute inputs,
|
|
@@ -39,7 +39,7 @@ declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
|
39
39
|
* each hour, minute, and period column is its own spin button, grouped
|
|
40
40
|
* under a labeled group.
|
|
41
41
|
*
|
|
42
|
-
* @prop {'outline' | '
|
|
42
|
+
* @prop {'outline' | 'flat' | 'underline'} [appearance='outline'] - How the field's surface is drawn: a bordered box, a muted background with no border, or a bottom border only
|
|
43
43
|
* @prop {Date | null} value - The picked instant
|
|
44
44
|
* @prop {Date | null} defaultValue - The default value applied when the field connects, and restored on form reset
|
|
45
45
|
* @prop {string} [timezone] - The time zone the hour and minute are displayed and edited in. Defaults to the runtime's own
|
|
@@ -64,7 +64,8 @@ declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
|
64
64
|
* @prop {boolean} [disabled=false] - Whether the field is disabled
|
|
65
65
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
66
66
|
* @prop {boolean} [required=false] - Whether the field is required
|
|
67
|
-
* @prop {boolean} [hideError=false] - Whether the errors are hidden
|
|
67
|
+
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
68
|
+
* @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
|
|
68
69
|
* @prop {Array<Validators<Date | null>>} validators - The list of custom validation rules applied to the value
|
|
69
70
|
* @prop {string} [applyLabel='Apply'] - The label of the mobile modal's confirm button
|
|
70
71
|
* @attr {string} [apply-label='Apply'] - The label of the mobile modal's confirm button
|
|
@@ -96,6 +97,9 @@ declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
|
96
97
|
* @cssprop [--time-picker-selected-color] - Sets the text color of the selected item in the list panel mode
|
|
97
98
|
* @cssprop [--time-picker-panel-background] - Sets the background color of the popover panel
|
|
98
99
|
* @cssprop [--time-picker-panel-transition-duration=200ms] - Sets the duration of the popover panel's open and close transition
|
|
100
|
+
* @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
|
|
101
|
+
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
102
|
+
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
99
103
|
* @element eun-time-picker
|
|
100
104
|
*/
|
|
101
105
|
export declare class EunomiaTimePicker extends EunomiaTimePickerMixinBase {
|
|
@@ -429,7 +433,7 @@ export declare class EunomiaTimePicker extends EunomiaTimePickerMixinBase {
|
|
|
429
433
|
* The popover's open/close animation duration, in ms : `0` if
|
|
430
434
|
* `noAnimation` is set or the browser reports `prefers-reduced-motion:
|
|
431
435
|
* reduce`, otherwise `--time-picker-panel-transition-duration` (default
|
|
432
|
-
* `
|
|
436
|
+
* `--eun-duration-m`).
|
|
433
437
|
*
|
|
434
438
|
* @param el the popover to read `--time-picker-panel-transition-duration` off.
|
|
435
439
|
* @private
|
|
@@ -9,9 +9,9 @@ import { html, LitElement, nothing } from "lit";
|
|
|
9
9
|
import { DisabledMixin, } from "../../../mixins/disabled.mixin.js";
|
|
10
10
|
import { ReadonlyMixin, } from "../../../mixins/readonly.mixin.js";
|
|
11
11
|
import { ValidatorsMixin, } from "../../../mixins/validators.mixin.js";
|
|
12
|
-
import { FormMixin } from "../../../mixins/form.mixin.js";
|
|
12
|
+
import { FormMixin, hasErrorDisplayChange, } from "../../../mixins/form.mixin.js";
|
|
13
13
|
import { FormLabelMixin, } from "../../../mixins/form-label.mixin.js";
|
|
14
|
-
import {
|
|
14
|
+
import { FieldAppearanceMixin, } from "../../../mixins/field-appearance.mixin.js";
|
|
15
15
|
import { AnchorPositionMixin, } from "../../../mixins/anchor-position.mixin.js";
|
|
16
16
|
import { LocalizableMixin, } from "../../../mixins/localizable.mixin.js";
|
|
17
17
|
import { ChangeEvent } from "../../../events/change.event.js";
|
|
@@ -24,6 +24,8 @@ import { timePickerColumnsStyles } from "./time-picker-columns.styles.js";
|
|
|
24
24
|
import { renderTimePickerColumns } from "./time-picker-columns.js";
|
|
25
25
|
import { timePickerListStyles } from "./time-picker-list.styles.js";
|
|
26
26
|
import { renderTimePickerList } from "./time-picker-list.js";
|
|
27
|
+
import { resolveDurationMs, resolveEasing, } from "../../../utils/motion.utils.js";
|
|
28
|
+
import { mediaBelow } from "../../../breakpoints.js";
|
|
27
29
|
/**
|
|
28
30
|
* Tag name of the time-picker component.
|
|
29
31
|
*/
|
|
@@ -34,7 +36,7 @@ export const EunomiaTimePickerTagName = "eun-time-picker";
|
|
|
34
36
|
* @internal
|
|
35
37
|
*/
|
|
36
38
|
const Base = DisabledMixin(ValidatorsMixin(LitElement));
|
|
37
|
-
const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(
|
|
39
|
+
const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(FormMixin(Base))))));
|
|
38
40
|
/**
|
|
39
41
|
* A time field entered across segmented numeric hour and minute inputs,
|
|
40
42
|
* plus an AM/PM toggle segment at a 12-hour format, with a trailing clock
|
|
@@ -53,7 +55,7 @@ const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldVar
|
|
|
53
55
|
* each hour, minute, and period column is its own spin button, grouped
|
|
54
56
|
* under a labeled group.
|
|
55
57
|
*
|
|
56
|
-
* @prop {'outline' | '
|
|
58
|
+
* @prop {'outline' | 'flat' | 'underline'} [appearance='outline'] - How the field's surface is drawn: a bordered box, a muted background with no border, or a bottom border only
|
|
57
59
|
* @prop {Date | null} value - The picked instant
|
|
58
60
|
* @prop {Date | null} defaultValue - The default value applied when the field connects, and restored on form reset
|
|
59
61
|
* @prop {string} [timezone] - The time zone the hour and minute are displayed and edited in. Defaults to the runtime's own
|
|
@@ -78,7 +80,8 @@ const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldVar
|
|
|
78
80
|
* @prop {boolean} [disabled=false] - Whether the field is disabled
|
|
79
81
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
80
82
|
* @prop {boolean} [required=false] - Whether the field is required
|
|
81
|
-
* @prop {boolean} [hideError=false] - Whether the errors are hidden
|
|
83
|
+
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
84
|
+
* @prop {string} [error] - An error computed outside the field, by the form or by the server. While set, the field is invalid and shows this message right away
|
|
82
85
|
* @prop {Array<Validators<Date | null>>} validators - The list of custom validation rules applied to the value
|
|
83
86
|
* @prop {string} [applyLabel='Apply'] - The label of the mobile modal's confirm button
|
|
84
87
|
* @attr {string} [apply-label='Apply'] - The label of the mobile modal's confirm button
|
|
@@ -110,6 +113,9 @@ const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldVar
|
|
|
110
113
|
* @cssprop [--time-picker-selected-color] - Sets the text color of the selected item in the list panel mode
|
|
111
114
|
* @cssprop [--time-picker-panel-background] - Sets the background color of the popover panel
|
|
112
115
|
* @cssprop [--time-picker-panel-transition-duration=200ms] - Sets the duration of the popover panel's open and close transition
|
|
116
|
+
* @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
|
|
117
|
+
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
118
|
+
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
113
119
|
* @element eun-time-picker
|
|
114
120
|
*/
|
|
115
121
|
let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBase {
|
|
@@ -227,7 +233,10 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
227
233
|
const format = this.resolvedHourFormat();
|
|
228
234
|
if (isPartiallyFilled(this.segments) &&
|
|
229
235
|
!clockSegmentsToTime(this.segments, format)) {
|
|
230
|
-
return {
|
|
236
|
+
return {
|
|
237
|
+
validity: { badInput: true },
|
|
238
|
+
message: this.dictionary.validation.invalidTime,
|
|
239
|
+
};
|
|
231
240
|
}
|
|
232
241
|
if (this.value) {
|
|
233
242
|
const { hour, minute } = getZonedParts(this.value, this.timezone);
|
|
@@ -285,7 +294,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
285
294
|
this.isModalOpen = true;
|
|
286
295
|
return;
|
|
287
296
|
}
|
|
288
|
-
this.updateComplete.then(() => {
|
|
297
|
+
void this.updateComplete.then(() => {
|
|
289
298
|
const popover = this.popoverEl;
|
|
290
299
|
if (!popover) {
|
|
291
300
|
return;
|
|
@@ -318,7 +327,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
318
327
|
});
|
|
319
328
|
}
|
|
320
329
|
this.observeAnchorVisibility(this.fieldWrapperEl, () => this.closePopover());
|
|
321
|
-
this.updateComplete.then(() => this.panelMode === "list"
|
|
330
|
+
void this.updateComplete.then(() => this.panelMode === "list"
|
|
322
331
|
? this.focusListSelection()
|
|
323
332
|
: this.focusFirstSpinbutton());
|
|
324
333
|
return;
|
|
@@ -469,10 +478,8 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
469
478
|
*/
|
|
470
479
|
updated(changed) {
|
|
471
480
|
super.updated(changed);
|
|
472
|
-
if (changed
|
|
473
|
-
|
|
474
|
-
changed.has("disabled")) {
|
|
475
|
-
this.setAttribute("aria-invalid", String(!this.hideError && !this.disabled && !this.valid));
|
|
481
|
+
if (hasErrorDisplayChange(changed)) {
|
|
482
|
+
this.setAttribute("aria-invalid", String(this.showError));
|
|
476
483
|
}
|
|
477
484
|
}
|
|
478
485
|
/**
|
|
@@ -498,7 +505,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
498
505
|
* @private
|
|
499
506
|
*/
|
|
500
507
|
isMobileViewport() {
|
|
501
|
-
return window.matchMedia(
|
|
508
|
+
return window.matchMedia(mediaBelow("tablet")).matches;
|
|
502
509
|
}
|
|
503
510
|
/**
|
|
504
511
|
* The hour format actually in effect, resolving `hourFormat`/`locale`
|
|
@@ -599,7 +606,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
599
606
|
* The popover's open/close animation duration, in ms : `0` if
|
|
600
607
|
* `noAnimation` is set or the browser reports `prefers-reduced-motion:
|
|
601
608
|
* reduce`, otherwise `--time-picker-panel-transition-duration` (default
|
|
602
|
-
* `
|
|
609
|
+
* `--eun-duration-m`).
|
|
603
610
|
*
|
|
604
611
|
* @param el the popover to read `--time-picker-panel-transition-duration` off.
|
|
605
612
|
* @private
|
|
@@ -609,18 +616,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
609
616
|
window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
610
617
|
return 0;
|
|
611
618
|
}
|
|
612
|
-
|
|
613
|
-
.getPropertyValue("--time-picker-panel-transition-duration")
|
|
614
|
-
.trim();
|
|
615
|
-
if (raw) {
|
|
616
|
-
const parsed = raw.endsWith("ms")
|
|
617
|
-
? Number.parseFloat(raw)
|
|
618
|
-
: Number.parseFloat(raw) * 1000;
|
|
619
|
-
if (Number.isFinite(parsed) && parsed >= 0) {
|
|
620
|
-
return parsed;
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
return 200;
|
|
619
|
+
return resolveDurationMs(el, "--time-picker-panel-transition-duration", "m", 200);
|
|
624
620
|
}
|
|
625
621
|
/**
|
|
626
622
|
* Plays the fade/scaleY-in, replacing any {@link popoverAnimation}
|
|
@@ -638,7 +634,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
638
634
|
this.popoverAnimation = popover.animate([
|
|
639
635
|
{ opacity: 0, transform: "scaleY(0.01)" },
|
|
640
636
|
{ opacity: 1, transform: "scaleY(1)" },
|
|
641
|
-
], { duration, easing:
|
|
637
|
+
], { duration, easing: resolveEasing(popover), fill: "forwards" });
|
|
642
638
|
}
|
|
643
639
|
/**
|
|
644
640
|
* Closes the popover, if open — accepting an instant, unanimated close
|
|
@@ -676,7 +672,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
676
672
|
const animation = popover.animate([
|
|
677
673
|
{ opacity: 1, transform: "scaleY(1)" },
|
|
678
674
|
{ opacity: 0, transform: "scaleY(0.01)" },
|
|
679
|
-
], { duration, easing:
|
|
675
|
+
], { duration, easing: resolveEasing(popover), fill: "forwards" });
|
|
680
676
|
this.popoverAnimation = animation;
|
|
681
677
|
animation.finished
|
|
682
678
|
.then(() => {
|
|
@@ -949,7 +945,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
949
945
|
renderTimezoneLabel() {
|
|
950
946
|
if (this.hideTimezoneLabel ||
|
|
951
947
|
!this.timezone ||
|
|
952
|
-
isSameTimeZone(this.timezone
|
|
948
|
+
isSameTimeZone(this.timezone)) {
|
|
953
949
|
return nothing;
|
|
954
950
|
}
|
|
955
951
|
const label = getTimeZoneOffsetLabel(this.value ?? new Date(), this.timezone, {
|
|
@@ -28,8 +28,8 @@ const timePicker = css `
|
|
|
28
28
|
outline: 1px solid transparent;
|
|
29
29
|
box-sizing: border-box;
|
|
30
30
|
transition:
|
|
31
|
-
border-color
|
|
32
|
-
outline-color
|
|
31
|
+
border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
|
|
32
|
+
outline-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
|
|
33
33
|
}
|
|
34
34
|
:host(:not([aria-readonly="true"]))
|
|
35
35
|
#field-wrapper:hover:not(:has(:disabled)) {
|
|
@@ -55,22 +55,22 @@ const timePicker = css `
|
|
|
55
55
|
:host([aria-invalid="true"]) #field-wrapper:focus-within {
|
|
56
56
|
outline-color: var(--_errorColor);
|
|
57
57
|
}
|
|
58
|
-
:host([
|
|
58
|
+
:host([appearance="flat"]) {
|
|
59
59
|
--_background: var(--field-background, var(--eun-content-hover, #edeff0));
|
|
60
60
|
}
|
|
61
|
-
:host([
|
|
61
|
+
:host([appearance="flat"]) #field-wrapper {
|
|
62
62
|
border-color: transparent;
|
|
63
63
|
}
|
|
64
|
-
:host([
|
|
64
|
+
:host([appearance="flat"][aria-invalid="true"]) #field-wrapper {
|
|
65
65
|
box-shadow: inset 0 0 0 var(--eun-border-width-m, 1.5px) var(--_errorColor);
|
|
66
66
|
}
|
|
67
|
-
:host([
|
|
67
|
+
:host([appearance="underline"]) #field-wrapper {
|
|
68
68
|
border: none;
|
|
69
69
|
outline: none;
|
|
70
70
|
border-bottom: var(--eun-border-width-m, 1.5px) solid var(--_borderColor);
|
|
71
71
|
border-radius: 0;
|
|
72
72
|
}
|
|
73
|
-
:host([
|
|
73
|
+
:host([appearance="underline"]) #field-wrapper:focus-within {
|
|
74
74
|
outline: none;
|
|
75
75
|
}
|
|
76
76
|
.segment-group {
|
|
@@ -120,7 +120,8 @@ const timePicker = css `
|
|
|
120
120
|
color: var(--_iconColor);
|
|
121
121
|
outline: 2px solid transparent;
|
|
122
122
|
cursor: pointer;
|
|
123
|
-
transition: outline
|
|
123
|
+
transition: outline var(--eun-duration-m, 200ms)
|
|
124
|
+
var(--eun-easing-out, ease-out);
|
|
124
125
|
}
|
|
125
126
|
#clock-trigger:hover:not(:disabled) {
|
|
126
127
|
color: var(--_textColor);
|
|
@@ -20,14 +20,19 @@ export type EunomiaAnimateAnimation = "none" | "fade" | "scroll-right" | "scroll
|
|
|
20
20
|
*
|
|
21
21
|
* @slot [default] - The content to animate on scroll. Always present in the DOM and readable by assistive technology, regardless of viewport intersection
|
|
22
22
|
* @prop {EunomiaAnimateAnimation} [animation='fade'] - Which transition to apply. None renders the content immediately, with no transition
|
|
23
|
-
* @prop {number} [duration=
|
|
23
|
+
* @prop {number} [duration=1000] - The transition duration, in milliseconds. Left unset, it follows --animate-duration
|
|
24
24
|
* @prop {number} [delay=0] - The transition delay, in milliseconds
|
|
25
|
+
* @prop {number} [tabletDelay] - Overrides `delay` below the tablet breakpoint (width < 768px)
|
|
26
|
+
* @attr {number} [tablet-delay] - Overrides `delay` below the tablet breakpoint (width < 768px)
|
|
27
|
+
* @prop {number} [mobileDelay] - Overrides `delay` (and `tabletDelay`, if also set) below the mobile breakpoint (width < 600px)
|
|
28
|
+
* @attr {number} [mobile-delay] - Overrides `delay` (and `tabletDelay`, if also set) below the mobile breakpoint (width < 600px)
|
|
25
29
|
* @prop {boolean} [once=true] - Whether the animation plays only the first time it enters the viewport, or replays every time it re-enters
|
|
26
30
|
* @prop {number} [threshold=0.1] - The ratio of the element, from 0 to 1, that must be visible before the animation triggers
|
|
27
31
|
* @prop {string} [rootMargin='0px'] - The margin applied around the viewport before threshold is evaluated, accepting CSS-like values such as -50px 0px
|
|
28
|
-
* @prop {EunomiaAnimateAnimation} [tabletAnimation] - Overrides `animation`
|
|
29
|
-
* @prop {EunomiaAnimateAnimation} [mobileAnimation] - Overrides `animation` (and `tabletAnimation`, if also set)
|
|
32
|
+
* @prop {EunomiaAnimateAnimation} [tabletAnimation] - Overrides `animation` below the tablet breakpoint (width < 768px). Left unset, the viewport keeps using `animation`
|
|
33
|
+
* @prop {EunomiaAnimateAnimation} [mobileAnimation] - Overrides `animation` (and `tabletAnimation`, if also set) below the mobile breakpoint (width < 600px)
|
|
30
34
|
* @cssprop [--animate-distance] - Sets the travel distance for the scroll and faded-scroll animations
|
|
35
|
+
* @cssprop [--animate-duration=1000ms] - Sets the transition duration of every animate that has no duration of its own, for example once for the whole site
|
|
31
36
|
* @element eun-animate
|
|
32
37
|
*/
|
|
33
38
|
export declare class EunomiaAnimate extends LitElement {
|
|
@@ -47,15 +52,30 @@ export declare class EunomiaAnimate extends LitElement {
|
|
|
47
52
|
*/
|
|
48
53
|
animation: EunomiaAnimateAnimation;
|
|
49
54
|
/**
|
|
50
|
-
* Transition duration, in milliseconds.
|
|
51
|
-
*
|
|
55
|
+
* Transition duration, in milliseconds. Left `undefined`, the stylesheet
|
|
56
|
+
* applies `--animate-duration`, `1000ms` by default.
|
|
57
|
+
* @default undefined
|
|
52
58
|
*/
|
|
53
|
-
duration
|
|
59
|
+
duration?: number;
|
|
54
60
|
/**
|
|
55
61
|
* Transition delay, in milliseconds.
|
|
56
62
|
* @default 0
|
|
57
63
|
*/
|
|
58
64
|
delay: number;
|
|
65
|
+
/**
|
|
66
|
+
* Overrides `delay` at tablet-width viewports and narrower, with the same
|
|
67
|
+
* `@media` switch as {@link tabletAnimation}. A stagger between cards in
|
|
68
|
+
* a desktop grid, for example, makes no sense once they're stacked.
|
|
69
|
+
* @default undefined
|
|
70
|
+
*/
|
|
71
|
+
tabletDelay?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Overrides `delay` (and `tabletDelay`, if also set) at mobile-width
|
|
74
|
+
* viewports and narrower, with the same `@media` switch as
|
|
75
|
+
* {@link mobileAnimation}.
|
|
76
|
+
* @default undefined
|
|
77
|
+
*/
|
|
78
|
+
mobileDelay?: number;
|
|
59
79
|
/**
|
|
60
80
|
* Whether the animation plays only the first time it enters the
|
|
61
81
|
* viewport (unobserved right after), or replays every time it re-enters.
|
|
@@ -75,8 +95,8 @@ export declare class EunomiaAnimate extends LitElement {
|
|
|
75
95
|
*/
|
|
76
96
|
rootMargin: string;
|
|
77
97
|
/**
|
|
78
|
-
* Overrides `animation`
|
|
79
|
-
* (`
|
|
98
|
+
* Overrides `animation` below the tablet breakpoint
|
|
99
|
+
* (`mediaBelow("tablet")`, `width < 768px`). Purely a
|
|
80
100
|
* CSS `@media` switch (`animate.styles.ts`, mirrored in
|
|
81
101
|
* `animate-ssr.css` for the pre-hydration state) — never read from JS,
|
|
82
102
|
* so there's no `matchMedia` listener to keep in sync with the actual
|
|
@@ -87,9 +107,9 @@ export declare class EunomiaAnimate extends LitElement {
|
|
|
87
107
|
*/
|
|
88
108
|
tabletAnimation?: EunomiaAnimateAnimation;
|
|
89
109
|
/**
|
|
90
|
-
* Overrides `animation` (and `tabletAnimation`, if also set)
|
|
91
|
-
*
|
|
92
|
-
* `
|
|
110
|
+
* Overrides `animation` (and `tabletAnimation`, if also set)
|
|
111
|
+
* below the mobile breakpoint (`mediaBelow("mobile")`,
|
|
112
|
+
* `width < 600px`). Same pure-CSS mechanism as
|
|
93
113
|
* {@link tabletAnimation}.
|
|
94
114
|
* @default undefined
|
|
95
115
|
*/
|
|
@@ -129,6 +149,16 @@ export declare class EunomiaAnimate extends LitElement {
|
|
|
129
149
|
* @private
|
|
130
150
|
*/
|
|
131
151
|
private teardownObserver;
|
|
152
|
+
/**
|
|
153
|
+
* Forwards `duration`, `delay` and the per-breakpoint delays to the
|
|
154
|
+
* host's transition through a shadow-internal `<style>`, only when they
|
|
155
|
+
* differ from the stylesheet's own defaults : an inline style on the host
|
|
156
|
+
* would be a hydration mismatch for an SSR framework, since the server
|
|
157
|
+
* never renders it. The breakpoints match {@link tabletAnimation} and
|
|
158
|
+
* {@link mobileAnimation}.
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
private renderTiming;
|
|
132
162
|
render(): TemplateResult;
|
|
133
163
|
}
|
|
134
164
|
declare global {
|
|
@@ -5,8 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { customElement, property } from "lit/decorators.js";
|
|
8
|
-
import { html, LitElement } from "lit";
|
|
8
|
+
import { html, LitElement, nothing } from "lit";
|
|
9
9
|
import { animateStyles } from "./animate.styles.js";
|
|
10
|
+
import { mediaBelow } from "../../../breakpoints.js";
|
|
10
11
|
/**
|
|
11
12
|
* Tag name of the animate component.
|
|
12
13
|
*/
|
|
@@ -31,14 +32,19 @@ const IN_VIEW_ATTR = "in-view";
|
|
|
31
32
|
*
|
|
32
33
|
* @slot [default] - The content to animate on scroll. Always present in the DOM and readable by assistive technology, regardless of viewport intersection
|
|
33
34
|
* @prop {EunomiaAnimateAnimation} [animation='fade'] - Which transition to apply. None renders the content immediately, with no transition
|
|
34
|
-
* @prop {number} [duration=
|
|
35
|
+
* @prop {number} [duration=1000] - The transition duration, in milliseconds. Left unset, it follows --animate-duration
|
|
35
36
|
* @prop {number} [delay=0] - The transition delay, in milliseconds
|
|
37
|
+
* @prop {number} [tabletDelay] - Overrides `delay` below the tablet breakpoint (width < 768px)
|
|
38
|
+
* @attr {number} [tablet-delay] - Overrides `delay` below the tablet breakpoint (width < 768px)
|
|
39
|
+
* @prop {number} [mobileDelay] - Overrides `delay` (and `tabletDelay`, if also set) below the mobile breakpoint (width < 600px)
|
|
40
|
+
* @attr {number} [mobile-delay] - Overrides `delay` (and `tabletDelay`, if also set) below the mobile breakpoint (width < 600px)
|
|
36
41
|
* @prop {boolean} [once=true] - Whether the animation plays only the first time it enters the viewport, or replays every time it re-enters
|
|
37
42
|
* @prop {number} [threshold=0.1] - The ratio of the element, from 0 to 1, that must be visible before the animation triggers
|
|
38
43
|
* @prop {string} [rootMargin='0px'] - The margin applied around the viewport before threshold is evaluated, accepting CSS-like values such as -50px 0px
|
|
39
|
-
* @prop {EunomiaAnimateAnimation} [tabletAnimation] - Overrides `animation`
|
|
40
|
-
* @prop {EunomiaAnimateAnimation} [mobileAnimation] - Overrides `animation` (and `tabletAnimation`, if also set)
|
|
44
|
+
* @prop {EunomiaAnimateAnimation} [tabletAnimation] - Overrides `animation` below the tablet breakpoint (width < 768px). Left unset, the viewport keeps using `animation`
|
|
45
|
+
* @prop {EunomiaAnimateAnimation} [mobileAnimation] - Overrides `animation` (and `tabletAnimation`, if also set) below the mobile breakpoint (width < 600px)
|
|
41
46
|
* @cssprop [--animate-distance] - Sets the travel distance for the scroll and faded-scroll animations
|
|
47
|
+
* @cssprop [--animate-duration=1000ms] - Sets the transition duration of every animate that has no duration of its own, for example once for the whole site
|
|
42
48
|
* @element eun-animate
|
|
43
49
|
*/
|
|
44
50
|
let EunomiaAnimate = class EunomiaAnimate extends LitElement {
|
|
@@ -51,11 +57,6 @@ let EunomiaAnimate = class EunomiaAnimate extends LitElement {
|
|
|
51
57
|
* @default fade
|
|
52
58
|
*/
|
|
53
59
|
this.animation = "fade";
|
|
54
|
-
/**
|
|
55
|
-
* Transition duration, in milliseconds.
|
|
56
|
-
* @default 600
|
|
57
|
-
*/
|
|
58
|
-
this.duration = 600;
|
|
59
60
|
/**
|
|
60
61
|
* Transition delay, in milliseconds.
|
|
61
62
|
* @default 0
|
|
@@ -105,12 +106,6 @@ let EunomiaAnimate = class EunomiaAnimate extends LitElement {
|
|
|
105
106
|
}
|
|
106
107
|
updated(changed) {
|
|
107
108
|
super.updated(changed);
|
|
108
|
-
if (changed.has("duration")) {
|
|
109
|
-
this.style.setProperty("--_duration", `${this.duration}ms`);
|
|
110
|
-
}
|
|
111
|
-
if (changed.has("delay")) {
|
|
112
|
-
this.style.setProperty("--_delay", `${this.delay}ms`);
|
|
113
|
-
}
|
|
114
109
|
if (this.isConnected &&
|
|
115
110
|
(changed.has("animation") ||
|
|
116
111
|
changed.has("tabletAnimation") ||
|
|
@@ -155,8 +150,39 @@ let EunomiaAnimate = class EunomiaAnimate extends LitElement {
|
|
|
155
150
|
this.observer?.disconnect();
|
|
156
151
|
this.observer = undefined;
|
|
157
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Forwards `duration`, `delay` and the per-breakpoint delays to the
|
|
155
|
+
* host's transition through a shadow-internal `<style>`, only when they
|
|
156
|
+
* differ from the stylesheet's own defaults : an inline style on the host
|
|
157
|
+
* would be a hydration mismatch for an SSR framework, since the server
|
|
158
|
+
* never renders it. The breakpoints match {@link tabletAnimation} and
|
|
159
|
+
* {@link mobileAnimation}.
|
|
160
|
+
* @private
|
|
161
|
+
*/
|
|
162
|
+
renderTiming() {
|
|
163
|
+
const host = [
|
|
164
|
+
this.duration !== undefined
|
|
165
|
+
? `--_duration: ${Number(this.duration)}ms;`
|
|
166
|
+
: "",
|
|
167
|
+
this.delay !== 0 ? `--_delay: ${Number(this.delay)}ms;` : "",
|
|
168
|
+
].join("");
|
|
169
|
+
const rules = [
|
|
170
|
+
host ? `:host { ${host} }` : "",
|
|
171
|
+
this.tabletDelay !== undefined
|
|
172
|
+
? `@media ${mediaBelow("tablet")} { :host { --_delay: ${Number(this.tabletDelay)}ms; } }`
|
|
173
|
+
: "",
|
|
174
|
+
this.mobileDelay !== undefined
|
|
175
|
+
? `@media ${mediaBelow("mobile")} { :host { --_delay: ${Number(this.mobileDelay)}ms; } }`
|
|
176
|
+
: "",
|
|
177
|
+
].join("");
|
|
178
|
+
return rules
|
|
179
|
+
? html `<style>
|
|
180
|
+
${rules}
|
|
181
|
+
</style>`
|
|
182
|
+
: nothing;
|
|
183
|
+
}
|
|
158
184
|
render() {
|
|
159
|
-
return html
|
|
185
|
+
return html `${this.renderTiming()}<slot></slot>`;
|
|
160
186
|
}
|
|
161
187
|
};
|
|
162
188
|
/**
|
|
@@ -176,6 +202,12 @@ __decorate([
|
|
|
176
202
|
__decorate([
|
|
177
203
|
property({ type: Number })
|
|
178
204
|
], EunomiaAnimate.prototype, "delay", void 0);
|
|
205
|
+
__decorate([
|
|
206
|
+
property({ type: Number, attribute: "tablet-delay" })
|
|
207
|
+
], EunomiaAnimate.prototype, "tabletDelay", void 0);
|
|
208
|
+
__decorate([
|
|
209
|
+
property({ type: Number, attribute: "mobile-delay" })
|
|
210
|
+
], EunomiaAnimate.prototype, "mobileDelay", void 0);
|
|
179
211
|
__decorate([
|
|
180
212
|
property({ type: Boolean })
|
|
181
213
|
], EunomiaAnimate.prototype, "once", void 0);
|