@eunomia/elements 1.0.0-beta.5 → 1.0.0-beta.7
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 +2 -2
- 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-36KLGY6U.js +209 -0
- package/dist/cdn/components/chunks/chunk-3BMACIDO.js +1 -0
- package/dist/cdn/components/chunks/{chunk-IDKZKLJR.js → chunk-3PNGQEG4.js} +24 -11
- package/dist/cdn/components/chunks/{chunk-NBIENHLV.js → chunk-5XPOGBPL.js} +18 -18
- package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
- package/dist/cdn/components/chunks/chunk-62RLISRD.js +1 -0
- package/dist/cdn/components/chunks/{chunk-6ETDXUH2.js → chunk-6FYW5TQU.js} +7 -7
- package/dist/cdn/components/chunks/chunk-AK2DIJX7.js +1 -0
- package/dist/cdn/components/chunks/chunk-B5XMGWM7.js +10 -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-BVASCT2V.js +109 -0
- package/dist/cdn/components/chunks/{chunk-DKOPI7QA.js → chunk-DGI7TKCU.js} +83 -68
- 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-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
- package/dist/cdn/components/chunks/chunk-GVS6IUKC.js +1 -0
- package/dist/cdn/components/chunks/chunk-GWLD2I3P.js +8 -0
- package/dist/cdn/components/chunks/{chunk-JRGM3W7I.js → chunk-I4ERDXSM.js} +9 -4
- package/dist/cdn/components/chunks/{chunk-AIS3UICU.js → chunk-J3SZBXM6.js} +11 -7
- package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-LVKMAHMU.js} +11 -1
- package/dist/cdn/components/chunks/{chunk-SD2WHGPF.js → chunk-MQQJ6DID.js} +1 -1
- 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-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-MPQP4R54.js → chunk-PXF554MD.js} +10 -9
- package/dist/cdn/components/chunks/chunk-QL5GSW2A.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-QXQ25SQS.js} +24 -20
- package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
- package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-SVGWCKWT.js} +2 -2
- package/dist/cdn/components/chunks/{chunk-2XASWWKR.js → chunk-TFTRCIIK.js} +9 -8
- package/dist/cdn/components/chunks/chunk-TLBXTBMM.js +46 -0
- package/dist/cdn/components/chunks/chunk-UVHVQRPT.js +1 -0
- package/dist/cdn/components/chunks/{chunk-L65WUTXM.js → chunk-UYZR4JXZ.js} +12 -7
- package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
- package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
- package/dist/cdn/components/chunks/chunk-WW4BTWMH.js +1 -0
- package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-OW7XKDCH.js → chunk-Z3OFIE7S.js} +16 -16
- package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
- package/dist/cdn/components/eun-alert.js +33 -18
- package/dist/cdn/components/eun-animate.js +14 -10
- package/dist/cdn/components/eun-badge.js +2 -2
- package/dist/cdn/components/eun-breadcrumb.js +25 -41
- package/dist/cdn/components/eun-button.js +1 -1
- package/dist/cdn/components/eun-calendar.js +67 -65
- package/dist/cdn/components/eun-card.js +34 -19
- package/dist/cdn/components/eun-carousel.js +76 -42
- package/dist/cdn/components/eun-check-card.js +13 -6
- package/dist/cdn/components/eun-checkbox-list.js +11 -8
- package/dist/cdn/components/eun-checkbox.js +1 -1
- package/dist/cdn/components/eun-chip.js +3 -3
- package/dist/cdn/components/eun-collapse.js +56 -27
- package/dist/cdn/components/eun-color-picker.js +79 -86
- package/dist/cdn/components/eun-counter.js +16 -15
- package/dist/cdn/components/eun-date-picker.js +71 -67
- package/dist/cdn/components/eun-description-list.js +152 -0
- package/dist/cdn/components/eun-divider.js +3 -3
- package/dist/cdn/components/eun-drawer.js +34 -20
- package/dist/cdn/components/eun-dropdown-button.js +1 -1
- package/dist/cdn/components/eun-dropdown-item.js +6 -5
- package/dist/cdn/components/eun-fab.js +17 -16
- package/dist/cdn/components/eun-icon.js +1 -1
- package/dist/cdn/components/eun-image-card.js +79 -22
- package/dist/cdn/components/eun-image-carousel.js +92 -47
- package/dist/cdn/components/eun-infinite-list.js +23 -11
- package/dist/cdn/components/eun-input-file.js +20 -19
- package/dist/cdn/components/eun-input-phone.js +17 -16
- package/dist/cdn/components/eun-input.js +1 -1
- package/dist/cdn/components/eun-label.js +4 -4
- package/dist/cdn/components/eun-link.js +78 -29
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +27 -20
- package/dist/cdn/components/eun-pagination.js +24 -19
- package/dist/cdn/components/eun-password-strength.js +19 -11
- 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 +12 -9
- package/dist/cdn/components/eun-radio.js +1 -1
- package/dist/cdn/components/eun-rating.js +276 -0
- package/dist/cdn/components/eun-scheduler-event-editor.js +10 -10
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +27 -27
- package/dist/cdn/components/eun-search.js +24 -25
- package/dist/cdn/components/eun-select.js +32 -31
- package/dist/cdn/components/eun-sidebar.js +40 -24
- 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 +22 -10
- package/dist/cdn/components/eun-stepper.js +41 -30
- package/dist/cdn/components/eun-switch.js +10 -8
- package/dist/cdn/components/eun-tab-group.js +24 -19
- 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 +34 -29
- package/dist/cdn/components/eun-time-picker.js +24 -21
- package/dist/cdn/components/eun-toast.js +51 -22
- package/dist/cdn/components/eun-toggle-group.js +57 -36
- package/dist/cdn/components/eun-toggle-item.js +16 -15
- package/dist/cdn/components/eun-toggle.js +12 -10
- package/dist/cdn/components/eun-toolbar.js +64 -54
- 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 +9 -3
- package/dist/components/action/button/button.js +10 -4
- package/dist/components/action/button/button.styles.js +61 -41
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +2 -2
- package/dist/components/action/dropdown-button/dropdown-button.js +21 -15
- package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
- package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
- package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
- package/dist/components/action/fab/fab.styles.js +14 -13
- package/dist/components/action/link/link.d.ts +7 -3
- package/dist/components/action/link/link.js +11 -7
- package/dist/components/action/link/link.styles.js +66 -15
- package/dist/components/action/shared-styles/button-palette.styles.js +15 -15
- package/dist/components/action/toggle/toggle-group.d.ts +2 -0
- package/dist/components/action/toggle/toggle-group.js +6 -4
- package/dist/components/action/toggle/toggle-group.styles.d.ts +2 -0
- package/dist/components/action/toggle/toggle-group.styles.js +46 -23
- package/dist/components/action/toggle/toggle-item.styles.js +13 -12
- package/dist/components/action/toggle/toggle.d.ts +2 -0
- package/dist/components/action/toggle/toggle.js +3 -1
- 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 +11 -7
- package/dist/components/alert/alert/alert.js +13 -14
- package/dist/components/alert/alert/alert.styles.js +32 -15
- package/dist/components/alert/drawer/drawer.d.ts +8 -6
- package/dist/components/alert/drawer/drawer.js +12 -14
- package/dist/components/alert/drawer/drawer.styles.js +26 -10
- package/dist/components/alert/modal/modal.d.ts +13 -11
- package/dist/components/alert/modal/modal.js +17 -27
- package/dist/components/alert/modal/modal.styles.js +16 -7
- package/dist/components/alert/toast/toast.d.ts +9 -5
- package/dist/components/alert/toast/toast.js +11 -13
- package/dist/components/alert/toast/toast.styles.js +49 -18
- package/dist/components/content/badge/badge.js +2 -2
- package/dist/components/content/card/card.d.ts +7 -3
- package/dist/components/content/card/card.js +8 -4
- package/dist/components/content/card/card.styles.js +28 -13
- package/dist/components/content/card/image-card.d.ts +60 -6
- package/dist/components/content/card/image-card.js +120 -11
- package/dist/components/content/card/image-card.styles.js +66 -15
- package/dist/components/content/card/sliding-card.d.ts +2 -0
- package/dist/components/content/card/sliding-card.js +2 -0
- package/dist/components/content/card/sliding-card.styles.js +5 -1
- package/dist/components/content/chip/chip.d.ts +4 -4
- package/dist/components/content/chip/chip.js +8 -8
- package/dist/components/content/collapse/collapse.d.ts +10 -1
- package/dist/components/content/collapse/collapse.js +12 -2
- package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
- package/dist/components/content/collapse/collapse.styles.js +56 -18
- package/dist/components/content/description-list/description-list.d.ts +87 -0
- package/dist/components/content/description-list/description-list.js +107 -0
- package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
- package/dist/components/content/description-list/description-list.styles.js +185 -0
- package/dist/components/content/icon/icon.d.ts +5 -0
- package/dist/components/content/icon/icon.js +5 -0
- package/dist/components/content/icon/icon.style.d.ts +2 -0
- package/dist/components/content/icon/icon.style.js +8 -1
- package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
- package/dist/components/content/image-carousel/image-carousel.js +58 -55
- package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
- package/dist/components/content/password-strength/password-strength.d.ts +21 -6
- package/dist/components/content/password-strength/password-strength.js +37 -16
- package/dist/components/content/password-strength/password-strength.styles.js +9 -1
- package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
- package/dist/components/content/shared-styles/card-link.styles.js +4 -3
- package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
- package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
- package/dist/components/content/tag/tag.d.ts +4 -0
- package/dist/components/content/tag/tag.js +6 -2
- 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 +12 -19
- package/dist/components/content/tooltip/tooltip.styles.js +25 -7
- package/dist/components/form/checkbox/check-card.d.ts +5 -1
- package/dist/components/form/checkbox/check-card.js +5 -1
- package/dist/components/form/checkbox/check-card.styles.js +13 -4
- package/dist/components/form/checkbox/checkbox-list.d.ts +21 -1
- package/dist/components/form/checkbox/checkbox-list.js +50 -17
- package/dist/components/form/checkbox/checkbox.d.ts +5 -1
- package/dist/components/form/checkbox/checkbox.js +7 -2
- package/dist/components/form/checkbox/checkbox.styles.js +5 -4
- package/dist/components/form/color-picker/color-picker.d.ts +48 -29
- package/dist/components/form/color-picker/color-picker.js +85 -71
- package/dist/components/form/color-picker/color-picker.styles.js +7 -6
- package/dist/components/form/counter/counter.d.ts +26 -19
- package/dist/components/form/counter/counter.js +64 -63
- package/dist/components/form/counter/counter.styles.js +5 -4
- package/dist/components/form/date-picker/date-picker.d.ts +64 -39
- package/dist/components/form/date-picker/date-picker.js +107 -96
- package/dist/components/form/date-picker/date-picker.styles.js +8 -5
- package/dist/components/form/input/input.d.ts +45 -40
- package/dist/components/form/input/input.js +93 -111
- package/dist/components/form/input-file/input-file.d.ts +30 -14
- package/dist/components/form/input-file/input-file.js +43 -40
- package/dist/components/form/input-file/input-file.styles.js +7 -6
- package/dist/components/form/input-phone/input-phone.d.ts +30 -7
- package/dist/components/form/input-phone/input-phone.js +54 -30
- package/dist/components/form/input-phone/input-phone.styles.js +4 -4
- package/dist/components/form/label/label.styles.js +3 -3
- package/dist/components/form/radio/radio-card.d.ts +6 -2
- package/dist/components/form/radio/radio-card.js +6 -2
- package/dist/components/form/radio/radio-card.styles.js +14 -5
- package/dist/components/form/radio/radio-list.d.ts +28 -9
- package/dist/components/form/radio/radio-list.js +61 -32
- package/dist/components/form/radio/radio.d.ts +6 -2
- package/dist/components/form/radio/radio.js +6 -2
- package/dist/components/form/radio/radio.styles.js +4 -4
- package/dist/components/form/rating/rating.d.ts +349 -0
- package/dist/components/form/rating/rating.js +665 -0
- package/dist/components/form/rating/rating.styles.d.ts +1 -0
- package/dist/components/form/rating/rating.styles.js +213 -0
- package/dist/components/form/search/search.d.ts +10 -9
- package/dist/components/form/search/search.js +29 -56
- package/dist/components/form/search/search.styles.js +5 -4
- package/dist/components/form/select/select.d.ts +32 -12
- package/dist/components/form/select/select.js +74 -59
- package/dist/components/form/select/select.styles.js +3 -2
- package/dist/components/form/shared-styles/card.styles.js +5 -4
- package/dist/components/form/shared-styles/field.styles.js +16 -6
- package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
- package/dist/components/form/shared-styles/listbox.styles.js +10 -0
- package/dist/components/form/slider/slider.d.ts +11 -9
- package/dist/components/form/slider/slider.js +14 -14
- package/dist/components/form/slider/slider.styles.js +8 -7
- package/dist/components/form/switch/switch.d.ts +5 -1
- package/dist/components/form/switch/switch.js +5 -1
- package/dist/components/form/switch/switch.styles.js +7 -5
- package/dist/components/form/textarea/textarea.d.ts +96 -24
- package/dist/components/form/textarea/textarea.js +206 -51
- package/dist/components/form/time-picker/time-picker-columns.d.ts +2 -2
- package/dist/components/form/time-picker/time-picker-columns.js +8 -8
- package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
- package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
- package/dist/components/form/time-picker/time-picker.d.ts +30 -10
- package/dist/components/form/time-picker/time-picker.js +81 -64
- package/dist/components/form/time-picker/time-picker.styles.js +4 -3
- package/dist/components/layout/animate/animate.d.ts +37 -15
- package/dist/components/layout/animate/animate.js +36 -16
- package/dist/components/layout/animate/animate.styles.js +11 -18
- package/dist/components/layout/divider/divider.js +1 -1
- package/dist/components/layout/divider/divider.styles.js +1 -1
- 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.js +2 -2
- package/dist/components/loader/loader/loader.styles.js +17 -13
- package/dist/components/loader/skeleton/skeleton.js +1 -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 +55 -11
- package/dist/components/navigation/carousel/carousel.js +101 -43
- package/dist/components/navigation/carousel/carousel.styles.js +65 -22
- package/dist/components/navigation/pagination/pagination.d.ts +23 -21
- package/dist/components/navigation/pagination/pagination.js +30 -53
- package/dist/components/navigation/pagination/pagination.styles.js +8 -3
- package/dist/components/navigation/sidebar/sidebar.d.ts +17 -13
- package/dist/components/navigation/sidebar/sidebar.js +23 -33
- package/dist/components/navigation/sidebar/sidebar.styles.js +32 -14
- package/dist/components/navigation/stepper/step.js +9 -8
- package/dist/components/navigation/stepper/step.styles.js +16 -5
- package/dist/components/navigation/stepper/stepper.js +12 -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 +9 -10
- package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +21 -16
- 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 +30 -62
- package/dist/components/navigation/toolbar/toolbar.js +43 -105
- package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
- package/dist/events/table-row-click.event.d.ts +5 -4
- package/dist/events/table-row-click.event.js +10 -5
- package/dist/features/scheduler/calendar/calendar.d.ts +6 -6
- package/dist/features/scheduler/calendar/calendar.js +7 -6
- package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
- package/dist/features/scheduler/scheduler/scheduler.d.ts +8 -8
- package/dist/features/scheduler/scheduler/scheduler.js +24 -47
- package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
- package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +2 -0
- package/dist/features/scheduler/scheduler-event/scheduler-event.js +5 -3
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +11 -5
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.d.ts +6 -4
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +6 -7
- package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
- package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
- package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
- package/dist/features/table/table/table-native.styles.d.ts +28 -0
- package/dist/features/table/table/table-native.styles.js +502 -0
- package/dist/features/table/table/table.d.ts +342 -294
- package/dist/features/table/table/table.js +820 -546
- package/dist/features/table/table/table.styles.js +31 -17
- package/dist/features/table/table/table.types.d.ts +11 -20
- package/dist/features/table/table/table.utils.d.ts +6 -36
- package/dist/features/table/table/table.utils.js +16 -65
- package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
- package/dist/features/table/table-action-bar/table-action-bar.js +15 -22
- package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
- package/dist/i18n/en.d.ts +99 -0
- package/dist/i18n/en.js +99 -0
- package/dist/i18n/fr.js +103 -2
- package/dist/index.d.ts +6 -10
- package/dist/index.js +7 -10
- package/dist/mixins/button.mixin.js +3 -2
- package/dist/mixins/check.mixin.js +15 -15
- package/dist/mixins/disabled.mixin.d.ts +5 -0
- package/dist/mixins/disabled.mixin.js +21 -1
- package/dist/mixins/editable.mixin.js +28 -5
- package/dist/mixins/field-appearance.mixin.js +3 -2
- package/dist/mixins/form.mixin.d.ts +21 -1
- package/dist/mixins/form.mixin.js +156 -27
- package/dist/mixins/localizable.mixin.d.ts +1 -1
- package/dist/mixins/localizable.mixin.js +1 -1
- package/dist/mixins/radio.mixin.js +15 -15
- package/dist/mixins/readonly.mixin.d.ts +2 -1
- package/dist/mixins/readonly.mixin.js +10 -3
- package/dist/mixins/validators.mixin.d.ts +7 -1
- package/dist/mixins/validators.mixin.js +36 -17
- package/dist/ssr/alert-ssr.css +187 -0
- package/dist/ssr/animate-ssr.css +3 -2
- package/dist/ssr/badge-ssr.css +67 -0
- package/dist/ssr/breadcrumb-ssr.css +41 -0
- package/dist/ssr/button-ssr.css +319 -0
- package/dist/ssr/card-ssr.css +196 -0
- package/dist/ssr/carousel-ssr.css +238 -0
- package/dist/ssr/checkbox-ssr.css +67 -0
- package/dist/ssr/chip-ssr.css +242 -0
- package/dist/ssr/collapse-ssr.css +151 -0
- package/dist/ssr/description-list-ssr.css +150 -0
- package/dist/ssr/field-ssr.css +163 -0
- package/dist/ssr/icon-ssr.css +266 -0
- package/dist/ssr/image-carousel-ssr.css +24 -0
- package/dist/ssr/links-ssr.css +8 -2
- package/dist/ssr/pagination-ssr.css +4 -0
- package/dist/ssr/rating-ssr.css +254 -0
- package/dist/ssr/sidebar-ssr.css +9 -1
- package/dist/ssr/skeleton-ssr.css +63 -0
- package/dist/ssr/table-ssr.css +472 -0
- package/dist/ssr/tabs-ssr.css +129 -0
- package/dist/ssr/tag-ssr.css +197 -0
- package/dist/ssr/toggle-group-ssr.css +182 -0
- package/dist/ssr/toolbar-ssr.css +34 -1
- package/dist/utils/drag-drop.utils.js +18 -2
- package/dist/utils/dropdown-menu.utils.d.ts +2 -2
- package/dist/utils/dropdown-menu.utils.js +4 -14
- package/dist/utils/implicit-submission.utils.d.ts +18 -0
- package/dist/utils/implicit-submission.utils.js +79 -0
- package/dist/utils/light-dom-styles.utils.d.ts +14 -0
- package/dist/utils/light-dom-styles.utils.js +37 -0
- package/dist/utils/listbox-options.utils.d.ts +11 -0
- package/dist/utils/listbox-options.utils.js +41 -3
- package/dist/utils/media.styles.d.ts +19 -0
- package/dist/utils/media.styles.js +23 -0
- package/dist/utils/motion.utils.d.ts +40 -0
- package/dist/utils/motion.utils.js +51 -0
- package/dist/utils/theme-generator.utils.d.ts +6 -1
- package/dist/utils/theme-generator.utils.js +59 -20
- package/package.json +39 -31
- 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-32DTNR52.js +0 -1
- package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
- package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
- package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
- package/dist/cdn/components/chunks/chunk-E4IS25H7.js +0 -1
- package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
- package/dist/cdn/components/chunks/chunk-EAKYD33D.js +0 -110
- 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-KBH5PCUO.js +0 -3
- package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
- package/dist/cdn/components/chunks/chunk-LFCXUVDO.js +0 -1
- 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-S2UCEWNG.js +0 -207
- package/dist/cdn/components/chunks/chunk-SJWRE6PW.js +0 -1
- package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
- package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
- package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
- package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
- package/dist/cdn/components/eun-table-cell.js +0 -1
- package/dist/cdn/components/eun-table-column.js +0 -1
- package/dist/cdn/components/eun-table-header.js +0 -1
- package/dist/cdn/components/eun-table-item.js +0 -1
- package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
- package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
- package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
- package/dist/features/table/native-table.css +0 -276
- package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
- package/dist/features/table/shared-styles/table-row.styles.js +0 -47
- package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
- package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
- package/dist/features/table/table-cell/table-cell.d.ts +0 -59
- package/dist/features/table/table-cell/table-cell.js +0 -73
- package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
- package/dist/features/table/table-cell/table-cell.styles.js +0 -46
- package/dist/features/table/table-column/table-column.d.ts +0 -73
- package/dist/features/table/table-column/table-column.js +0 -89
- package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
- package/dist/features/table/table-column/table-column.styles.js +0 -51
- package/dist/features/table/table-header/table-header.d.ts +0 -102
- package/dist/features/table/table-header/table-header.js +0 -165
- package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
- package/dist/features/table/table-header/table-header.styles.js +0 -147
- package/dist/features/table/table-item/table-item.d.ts +0 -179
- package/dist/features/table/table-item/table-item.js +0 -291
- package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
- package/dist/features/table/table-item/table-item.styles.js +0 -404
- package/dist/features/table/table-managed/table-managed.d.ts +0 -19
- package/dist/features/table/table-managed/table-managed.js +0 -128
- package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
- package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
- package/dist/mixins/table-row.mixin.d.ts +0 -37
- package/dist/mixins/table-row.mixin.js +0 -103
- package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
|
@@ -17,6 +17,7 @@ import { ChangeEvent } from "../../../events/change.event.js";
|
|
|
17
17
|
import { FileRejectEvent, } from "../../../events/file-reject.event.js";
|
|
18
18
|
import { formLabelsStyles } from "../shared-styles/form-labels.styles.js";
|
|
19
19
|
import { inputFileStyles } from "./input-file.styles.js";
|
|
20
|
+
import { LocalizableMixin, } from "../../../mixins/localizable.mixin.js";
|
|
20
21
|
/**
|
|
21
22
|
* Tag name of the input-file component.
|
|
22
23
|
*/
|
|
@@ -26,7 +27,7 @@ export const EunomiaInputFileTagName = "eun-input-file";
|
|
|
26
27
|
* @internal
|
|
27
28
|
*/
|
|
28
29
|
const Base = DisabledMixin(ValidatorsMixin(LitElement));
|
|
29
|
-
const EunomiaInputFileMixinBase = FormLabelMixin(ReadonlyMixin(FormMixin(Base)));
|
|
30
|
+
const EunomiaInputFileMixinBase = LocalizableMixin(FormLabelMixin(ReadonlyMixin(FormMixin(Base))));
|
|
30
31
|
/**
|
|
31
32
|
* A file upload field with a dropzone, showing image thumbnails or generic
|
|
32
33
|
* file rows for the selected files.
|
|
@@ -44,24 +45,26 @@ const EunomiaInputFileMixinBase = FormLabelMixin(ReadonlyMixin(FormMixin(Base)))
|
|
|
44
45
|
* @prop {boolean} [disabled=false] - Whether the field is disabled
|
|
45
46
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
46
47
|
* @prop {boolean} [required=false] - Whether at least one file is required
|
|
47
|
-
* @prop {boolean} [hideError=false] - Whether the errors are hidden
|
|
48
|
+
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
49
|
+
* @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
|
|
50
|
+
* @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
|
|
48
51
|
* @prop {Array<import('../../../types/form-validators.type.js').Validators<File[]>>} validators - The list of validation rules applied to the field value
|
|
49
52
|
* @prop {string} [dropLabel='Drag and drop files here, or'] - Static text displayed in the dropzone
|
|
50
53
|
* @attr {string} [drop-label='Drag and drop files here, or'] - Static text displayed in the dropzone
|
|
51
54
|
* @prop {string} [browseLabel='browse files'] - The visible text of the dropzone's browse link
|
|
52
55
|
* @attr {string} [browse-label='browse files'] - The visible text of the dropzone's browse link
|
|
53
|
-
* @prop {string} [
|
|
54
|
-
* @attr {string} [
|
|
55
|
-
* @prop {string} [
|
|
56
|
-
* @attr {string} [
|
|
56
|
+
* @prop {string} [removeLabel] - The accessible label of each item's remove button. Defaults to the localized string for the current locale (English: "Remove file")
|
|
57
|
+
* @attr {string} [remove-label] - The accessible label of each item's remove button. Defaults to the localized string for the current locale (English: "Remove file")
|
|
58
|
+
* @prop {string} [selectLabel] - The accessible label prefix of each item's checkbox. Defaults to the localized string for the current locale (English: "Select file")
|
|
59
|
+
* @attr {string} [select-label] - The accessible label prefix of each item's checkbox. Defaults to the localized string for the current locale (English: "Select file")
|
|
57
60
|
* @prop {string} [removeAllLabel='Remove all'] - The label of the always-available bulk clear action
|
|
58
61
|
* @attr {string} [remove-all-label='Remove all'] - The label of the always-available bulk clear action
|
|
59
62
|
* @prop {string} [selectAllLabel='Select all'] - The label of the selection toolbar's select-all checkbox
|
|
60
63
|
* @attr {string} [select-all-label='Select all'] - The label of the selection toolbar's select-all checkbox
|
|
61
64
|
* @prop {string} [deleteSelectedLabel='Delete selected'] - The label of the selection toolbar's bulk delete button
|
|
62
65
|
* @attr {string} [delete-selected-label='Delete selected'] - The label of the selection toolbar's bulk delete button
|
|
63
|
-
* @prop {string} [
|
|
64
|
-
* @attr {string} [
|
|
66
|
+
* @prop {string} [openLabel] - Appended to each item's accessible name. Defaults to the localized string for the current locale (English: "Open in a new tab")
|
|
67
|
+
* @attr {string} [open-label] - Appended to each item's accessible name. Defaults to the localized string for the current locale (English: "Open in a new tab")
|
|
65
68
|
* @fires {ChangeEvent} eunchange - Fired whenever the selected files change
|
|
66
69
|
* @fires {FileRejectEvent} eunfilereject - Fired whenever one or more offered files are rejected, for the wrong type or exceeding the size or count limit
|
|
67
70
|
* @cssprop [--input-file-border-color] - Sets the border color of the dropzone
|
|
@@ -79,11 +82,18 @@ const EunomiaInputFileMixinBase = FormLabelMixin(ReadonlyMixin(FormMixin(Base)))
|
|
|
79
82
|
* @cssprop [--input-file-item-border-color] - Sets the border color of each item
|
|
80
83
|
* @cssprop [--input-file-gap] - Sets the gap between the dropzone, header, and items
|
|
81
84
|
* @cssprop [--input-file-thumbnail-size] - Sets the minimum size of image thumbnails
|
|
85
|
+
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
86
|
+
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
82
87
|
* @element eun-input-file
|
|
83
88
|
*/
|
|
84
89
|
let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase {
|
|
85
90
|
constructor() {
|
|
86
91
|
super(...arguments);
|
|
92
|
+
/**
|
|
93
|
+
* Every change is a complete choice, so its error shows right away.
|
|
94
|
+
* @internal
|
|
95
|
+
*/
|
|
96
|
+
this.errorOnChange = true;
|
|
87
97
|
/**
|
|
88
98
|
* Accepted content kind: image thumbnails vs. generic file rows.
|
|
89
99
|
* @default image
|
|
@@ -110,18 +120,6 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
110
120
|
* @default browse files
|
|
111
121
|
*/
|
|
112
122
|
this.browseLabel = "browse files";
|
|
113
|
-
/**
|
|
114
|
-
* Accessible label prefix of each item's remove button (suffixed with the
|
|
115
|
-
* file name).
|
|
116
|
-
* @default Remove file
|
|
117
|
-
*/
|
|
118
|
-
this.ariaLabelRemove = "Remove file";
|
|
119
|
-
/**
|
|
120
|
-
* Accessible label prefix of each item's checkbox (suffixed with the file
|
|
121
|
-
* name), when `selectable`.
|
|
122
|
-
* @default Select file
|
|
123
|
-
*/
|
|
124
|
-
this.ariaLabelSelect = "Select file";
|
|
125
123
|
/**
|
|
126
124
|
* Label of the always-available bulk clear action, shown once at least one
|
|
127
125
|
* file is present.
|
|
@@ -139,12 +137,6 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
139
137
|
* @default Delete selected
|
|
140
138
|
*/
|
|
141
139
|
this.deleteSelectedLabel = "Delete selected";
|
|
142
|
-
/**
|
|
143
|
-
* Appended to each item's accessible name (its primary action is opening
|
|
144
|
-
* the file in a new tab).
|
|
145
|
-
* @default Open in a new tab
|
|
146
|
-
*/
|
|
147
|
-
this.ariaLabelOpen = "Open in a new tab";
|
|
148
140
|
/**
|
|
149
141
|
* Whether a drag carrying files is currently over the host — reflected so
|
|
150
142
|
* `:host([dragging])` can drive the dropzone's highlight.
|
|
@@ -290,6 +282,14 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
290
282
|
}
|
|
291
283
|
}
|
|
292
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* The host is never a tab stop of its own : sequential navigation goes
|
|
287
|
+
* straight to the controls inside, in both directions, and
|
|
288
|
+
* {@link focus} covers a direct call on the host.
|
|
289
|
+
*/
|
|
290
|
+
get hostTabStop() {
|
|
291
|
+
return false;
|
|
292
|
+
}
|
|
293
293
|
/**
|
|
294
294
|
* Returns the element to focus/anchor on validation errors.
|
|
295
295
|
*
|
|
@@ -446,7 +446,7 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
446
446
|
const next = current.filter((candidate) => candidate !== file);
|
|
447
447
|
this.value = next;
|
|
448
448
|
this.dispatchEvent(new ChangeEvent(this.value));
|
|
449
|
-
this.updateComplete.then(() => {
|
|
449
|
+
void this.updateComplete.then(() => {
|
|
450
450
|
if (!next.length) {
|
|
451
451
|
this.firstFocusable()?.focus();
|
|
452
452
|
return;
|
|
@@ -463,7 +463,7 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
463
463
|
this.selected = new Set();
|
|
464
464
|
this.value = [];
|
|
465
465
|
this.dispatchEvent(new ChangeEvent(this.value));
|
|
466
|
-
this.updateComplete.then(() => this.firstFocusable()?.focus());
|
|
466
|
+
void this.updateComplete.then(() => this.firstFocusable()?.focus());
|
|
467
467
|
}
|
|
468
468
|
/**
|
|
469
469
|
* Removes every currently-selected file.
|
|
@@ -475,7 +475,7 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
475
475
|
this.selected = new Set();
|
|
476
476
|
this.value = next;
|
|
477
477
|
this.dispatchEvent(new ChangeEvent(this.value));
|
|
478
|
-
this.updateComplete.then(() => this.firstFocusable()?.focus());
|
|
478
|
+
void this.updateComplete.then(() => this.firstFocusable()?.focus());
|
|
479
479
|
}
|
|
480
480
|
toggleSelected(file, checked) {
|
|
481
481
|
const next = new Set(this.selected);
|
|
@@ -594,7 +594,7 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
594
594
|
?multiple=${this.multiple}
|
|
595
595
|
?disabled=${disabled}
|
|
596
596
|
aria-label=${ifDefined(this.label)}
|
|
597
|
-
aria-invalid=${
|
|
597
|
+
aria-invalid=${this.showError}
|
|
598
598
|
aria-describedby=${hasDescription ? "description" : nothing}
|
|
599
599
|
@change=${this.handleNativeChange}
|
|
600
600
|
/>
|
|
@@ -619,7 +619,8 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
619
619
|
class="item"
|
|
620
620
|
role="button"
|
|
621
621
|
tabindex=${this.disabled ? "-1" : "0"}
|
|
622
|
-
aria-label="${file.name} — ${this.
|
|
622
|
+
aria-label="${file.name} — ${this.openLabel ??
|
|
623
|
+
this.dictionary.inputFile.open}"
|
|
623
624
|
@click=${() => !this.disabled && this.openFile(file)}
|
|
624
625
|
@keydown=${(event) => this.handleItemKeydown(event, file)}
|
|
625
626
|
>
|
|
@@ -627,7 +628,8 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
627
628
|
<input
|
|
628
629
|
type="checkbox"
|
|
629
630
|
class="item-checkbox"
|
|
630
|
-
aria-label="${this.
|
|
631
|
+
aria-label="${this.selectLabel ??
|
|
632
|
+
this.dictionary.inputFile.select} ${file.name}"
|
|
631
633
|
.checked=${isSelected}
|
|
632
634
|
?disabled=${this.disabled || this.readonly}
|
|
633
635
|
@click=${(event) => event.stopPropagation()}
|
|
@@ -650,7 +652,8 @@ let EunomiaInputFile = class EunomiaInputFile extends EunomiaInputFileMixinBase
|
|
|
650
652
|
<button
|
|
651
653
|
type="button"
|
|
652
654
|
class="item-remove"
|
|
653
|
-
aria-label="${this.
|
|
655
|
+
aria-label="${this.removeLabel ??
|
|
656
|
+
this.dictionary.inputFile.remove} ${file.name}"
|
|
654
657
|
?disabled=${this.disabled || this.readonly}
|
|
655
658
|
@click=${(event) => {
|
|
656
659
|
event.stopPropagation();
|
|
@@ -739,7 +742,7 @@ EunomiaInputFile.styles = [
|
|
|
739
742
|
formLabelsStyles.hintMessages,
|
|
740
743
|
];
|
|
741
744
|
__decorate([
|
|
742
|
-
property({ reflect: true })
|
|
745
|
+
property({ reflect: true, useDefault: true })
|
|
743
746
|
], EunomiaInputFile.prototype, "kind", void 0);
|
|
744
747
|
__decorate([
|
|
745
748
|
property()
|
|
@@ -763,11 +766,11 @@ __decorate([
|
|
|
763
766
|
property({ attribute: "browse-label" })
|
|
764
767
|
], EunomiaInputFile.prototype, "browseLabel", void 0);
|
|
765
768
|
__decorate([
|
|
766
|
-
property({ attribute: "
|
|
767
|
-
], EunomiaInputFile.prototype, "
|
|
769
|
+
property({ attribute: "remove-label" })
|
|
770
|
+
], EunomiaInputFile.prototype, "removeLabel", void 0);
|
|
768
771
|
__decorate([
|
|
769
|
-
property({ attribute: "
|
|
770
|
-
], EunomiaInputFile.prototype, "
|
|
772
|
+
property({ attribute: "select-label" })
|
|
773
|
+
], EunomiaInputFile.prototype, "selectLabel", void 0);
|
|
771
774
|
__decorate([
|
|
772
775
|
property({ attribute: "remove-all-label" })
|
|
773
776
|
], EunomiaInputFile.prototype, "removeAllLabel", void 0);
|
|
@@ -778,8 +781,8 @@ __decorate([
|
|
|
778
781
|
property({ attribute: "delete-selected-label" })
|
|
779
782
|
], EunomiaInputFile.prototype, "deleteSelectedLabel", void 0);
|
|
780
783
|
__decorate([
|
|
781
|
-
property({ attribute: "
|
|
782
|
-
], EunomiaInputFile.prototype, "
|
|
784
|
+
property({ attribute: "open-label" })
|
|
785
|
+
], EunomiaInputFile.prototype, "openLabel", void 0);
|
|
783
786
|
__decorate([
|
|
784
787
|
property({ type: Boolean, reflect: true })
|
|
785
788
|
], EunomiaInputFile.prototype, "dragging", void 0);
|
|
@@ -99,8 +99,9 @@ const base = css `
|
|
|
99
99
|
cursor: pointer;
|
|
100
100
|
box-sizing: border-box;
|
|
101
101
|
transition:
|
|
102
|
-
border-color
|
|
103
|
-
background-color
|
|
102
|
+
border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
|
|
103
|
+
background-color var(--eun-duration-s, 150ms)
|
|
104
|
+
var(--eun-easing-default, ease);
|
|
104
105
|
}
|
|
105
106
|
#dropzone #drop-icon {
|
|
106
107
|
--icon-color: var(--_iconColor);
|
|
@@ -195,7 +196,7 @@ const base = css `
|
|
|
195
196
|
display: grid;
|
|
196
197
|
gap: var(--_gap);
|
|
197
198
|
}
|
|
198
|
-
:host([kind="image"]) #items {
|
|
199
|
+
:host(:is([kind="image"], :not([kind]))) #items {
|
|
199
200
|
grid-template-columns: repeat(
|
|
200
201
|
auto-fill,
|
|
201
202
|
minmax(var(--_thumbnailSize), 1fr)
|
|
@@ -218,7 +219,7 @@ const base = css `
|
|
|
218
219
|
.item:focus-visible {
|
|
219
220
|
outline: 1px solid var(--_focusIndicator);
|
|
220
221
|
}
|
|
221
|
-
:host([kind="image"]) .item {
|
|
222
|
+
:host(:is([kind="image"], :not([kind]))) .item {
|
|
222
223
|
aspect-ratio: 1 / 1;
|
|
223
224
|
overflow: hidden;
|
|
224
225
|
align-items: stretch;
|
|
@@ -257,7 +258,7 @@ const base = css `
|
|
|
257
258
|
.item-checkbox {
|
|
258
259
|
flex: none;
|
|
259
260
|
}
|
|
260
|
-
:host([kind="image"]) .item-checkbox {
|
|
261
|
+
:host(:is([kind="image"], :not([kind]))) .item-checkbox {
|
|
261
262
|
position: absolute;
|
|
262
263
|
top: var(--eun-space-xs, 4px);
|
|
263
264
|
left: var(--eun-space-xs, 4px);
|
|
@@ -283,7 +284,7 @@ const base = css `
|
|
|
283
284
|
:host([kind="file"]) .item-remove:hover {
|
|
284
285
|
color: var(--_textColor);
|
|
285
286
|
}
|
|
286
|
-
:host([kind="image"]) .item-remove {
|
|
287
|
+
:host(:is([kind="image"], :not([kind]))) .item-remove {
|
|
287
288
|
position: absolute;
|
|
288
289
|
top: var(--eun-space-xs, 4px);
|
|
289
290
|
right: var(--eun-space-xs, 4px);
|
|
@@ -7,6 +7,7 @@ import { FormLabelMixinInterface } from "../../../mixins/form-label.mixin.js";
|
|
|
7
7
|
import { FieldAppearanceMixinInterface } from "../../../mixins/field-appearance.mixin.js";
|
|
8
8
|
import { AnchorPositionMixinInterface } from "../../../mixins/anchor-position.mixin.js";
|
|
9
9
|
import { Constructor } from "../../../utils/constructor.type.js";
|
|
10
|
+
import { LocalizableMixinInterface } from "../../../mixins/localizable.mixin.js";
|
|
10
11
|
/**
|
|
11
12
|
* Tag name of the phone input component.
|
|
12
13
|
*/
|
|
@@ -16,7 +17,7 @@ export declare const EunomiaInputPhoneTagName = "eun-input-phone";
|
|
|
16
17
|
* interface element.
|
|
17
18
|
* @internal
|
|
18
19
|
*/
|
|
19
|
-
type EunomiaInputPhoneBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<string> & FormMixinInterface<string> & FormLabelMixinInterface & FieldAppearanceMixinInterface & AnchorPositionMixinInterface;
|
|
20
|
+
type EunomiaInputPhoneBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<string> & FormMixinInterface<string> & FormLabelMixinInterface & FieldAppearanceMixinInterface & AnchorPositionMixinInterface & LocalizableMixinInterface;
|
|
20
21
|
declare const EunomiaInputPhoneMixinBase: Constructor<EunomiaInputPhoneBase>;
|
|
21
22
|
/**
|
|
22
23
|
* A phone number field rendered in two adjacent parts: a compact country
|
|
@@ -54,15 +55,17 @@ declare const EunomiaInputPhoneMixinBase: Constructor<EunomiaInputPhoneBase>;
|
|
|
54
55
|
* @prop {boolean} [disabled=false] - Whether the field is disabled
|
|
55
56
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
56
57
|
* @prop {boolean} [required=false] - Whether the field is required
|
|
57
|
-
* @prop {boolean} [hideError=false] - Whether the errors are hidden
|
|
58
|
+
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
59
|
+
* @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
|
|
60
|
+
* @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
|
|
58
61
|
* @prop {Array<Validators<string>>} validators - The list of validation rules applied to the field value
|
|
59
62
|
* @prop {string} [placeholder] - The placeholder shown when the field is empty. Defaults to a generic formatted digit pattern, not a real per-country example, when unset
|
|
60
63
|
* @prop {string} [countrySearchPlaceholder='Search a country…'] - The placeholder of the search field inside the country dropdown
|
|
61
64
|
* @attr {string} [country-search-placeholder='Search a country…'] - The placeholder of the search field inside the country dropdown
|
|
62
65
|
* @prop {string} [noResultsLabel='No results'] - Text displayed in the dropdown when no country matches the search
|
|
63
66
|
* @attr {string} [no-results-label='No results'] - Text displayed in the dropdown when no country matches the search
|
|
64
|
-
* @prop {string} [
|
|
65
|
-
* @attr {string} [
|
|
67
|
+
* @prop {string} [countrySelectorLabel] - The accessible label of the leading country selector button. Defaults to the localized string for the current locale (English: "Select a country")
|
|
68
|
+
* @attr {string} [country-selector-label] - The accessible label of the leading country selector button. Defaults to the localized string for the current locale (English: "Select a country")
|
|
66
69
|
* @fires {ChangeEvent} eunchange - Fired on every value change
|
|
67
70
|
* @cssprop [--field-background] - Sets the background color of the field
|
|
68
71
|
* @cssprop [--field-border-color] - Sets the border color of the field
|
|
@@ -70,6 +73,8 @@ declare const EunomiaInputPhoneMixinBase: Constructor<EunomiaInputPhoneBase>;
|
|
|
70
73
|
* @cssprop [--field-border-color-focus] - Sets the border color on focus
|
|
71
74
|
* @cssprop [--field-border-radius] - Sets the corner radius of the field
|
|
72
75
|
* @cssprop [--field-padding] - Sets the padding of the field
|
|
76
|
+
* @cssprop [--field-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --field-padding is set
|
|
77
|
+
* @cssprop [--field-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --field-padding is set
|
|
73
78
|
* @cssprop [--field-text-color] - Sets the text color of the field
|
|
74
79
|
* @cssprop [--field-placeholder-color] - Sets the color of the placeholder
|
|
75
80
|
* @cssprop [--field-icon-color] - Sets the color of the country selector button
|
|
@@ -80,6 +85,9 @@ declare const EunomiaInputPhoneMixinBase: Constructor<EunomiaInputPhoneBase>;
|
|
|
80
85
|
* @cssprop [--field-listbox-transition-duration=200ms] - Sets the duration of the dropdown panel's open and close height transition, disabled entirely under reduced motion settings
|
|
81
86
|
* @cssprop [--eun-viewport-inset-top] - Reserves space, such as a page's sticky header height, that the dropdown panel keeps clear of at the top of the viewport. Set on the root or an ancestor rather than on the field itself
|
|
82
87
|
* @cssprop [--eun-viewport-inset-bottom] - The same as eun-viewport-inset-top, reserved at the bottom of the viewport, such as for a sticky footer
|
|
88
|
+
* @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
|
|
89
|
+
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
90
|
+
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
83
91
|
* @element eun-input-phone
|
|
84
92
|
*/
|
|
85
93
|
export declare class EunomiaInputPhone extends EunomiaInputPhoneMixinBase {
|
|
@@ -133,9 +141,9 @@ export declare class EunomiaInputPhone extends EunomiaInputPhoneMixinBase {
|
|
|
133
141
|
noResultsLabel: string;
|
|
134
142
|
/**
|
|
135
143
|
* Accessible label of the leading country-selector button.
|
|
136
|
-
*
|
|
144
|
+
* Falls back to the localized string for the current locale when unset.
|
|
137
145
|
*/
|
|
138
|
-
|
|
146
|
+
countrySelectorLabel?: string;
|
|
139
147
|
/**
|
|
140
148
|
* The raw national digits currently typed (no dial code, no separators) —
|
|
141
149
|
* *including* a leading trunk "0" if the user typed one, kept exactly as
|
|
@@ -205,6 +213,15 @@ export declare class EunomiaInputPhone extends EunomiaInputPhoneMixinBase {
|
|
|
205
213
|
* @internal
|
|
206
214
|
*/
|
|
207
215
|
private triggerPointerDownAt?;
|
|
216
|
+
constructor();
|
|
217
|
+
/**
|
|
218
|
+
* Submits the owning form on Enter in the number field, as a native text
|
|
219
|
+
* input does, since the browser never does it from a shadow root.
|
|
220
|
+
* Listened to on the host so the country list's own Enter handling is
|
|
221
|
+
* never mistaken for it.
|
|
222
|
+
* @private
|
|
223
|
+
*/
|
|
224
|
+
private readonly handleImplicitSubmission;
|
|
208
225
|
connectedCallback(): void;
|
|
209
226
|
/**
|
|
210
227
|
* Lifecycle hook called when the element is disconnected from the DOM.
|
|
@@ -262,6 +279,12 @@ export declare class EunomiaInputPhone extends EunomiaInputPhoneMixinBase {
|
|
|
262
279
|
* @param _changedProperties - Map of changed properties
|
|
263
280
|
*/
|
|
264
281
|
protected updated(_changedProperties: PropertyValues): void;
|
|
282
|
+
/**
|
|
283
|
+
* The host is never a tab stop of its own : sequential navigation goes
|
|
284
|
+
* straight to the controls inside, in both directions, and
|
|
285
|
+
* {@link focus} covers a direct call on the host.
|
|
286
|
+
*/
|
|
287
|
+
protected get hostTabStop(): boolean;
|
|
265
288
|
/**
|
|
266
289
|
* Returns the field element to focus/anchor on validation errors.
|
|
267
290
|
*
|
|
@@ -290,7 +313,7 @@ export declare class EunomiaInputPhone extends EunomiaInputPhoneMixinBase {
|
|
|
290
313
|
/**
|
|
291
314
|
* The listbox's open/close animation duration, in ms : `0` under
|
|
292
315
|
* `prefers-reduced-motion: reduce`, otherwise `--field-listbox-
|
|
293
|
-
* transition-duration` (default `
|
|
316
|
+
* transition-duration` (default `--eun-duration-m`) — same custom property
|
|
294
317
|
* `eun-select`/`eun-search` share.
|
|
295
318
|
*
|
|
296
319
|
* @param el the listbox to read `--field-listbox-transition-duration` off.
|
|
@@ -8,6 +8,7 @@ var EunomiaInputPhone_1;
|
|
|
8
8
|
import { customElement, property, query, state } from "lit/decorators.js";
|
|
9
9
|
import { html, LitElement, nothing } from "lit";
|
|
10
10
|
import { classMap } from "lit/directives/class-map.js";
|
|
11
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
11
12
|
import { DisabledMixin, } from "../../../mixins/disabled.mixin.js";
|
|
12
13
|
import { ReadonlyMixin, } from "../../../mixins/readonly.mixin.js";
|
|
13
14
|
import { ValidatorsMixin, } from "../../../mixins/validators.mixin.js";
|
|
@@ -20,6 +21,9 @@ import { formLabelsStyles } from "../shared-styles/form-labels.styles.js";
|
|
|
20
21
|
import { inputPhoneStyles } from "./input-phone.styles.js";
|
|
21
22
|
import { isWebKit } from "../../../utils/browser.utils.js";
|
|
22
23
|
import { COUNTRY_DIAL_CODES, formatNationalNumber, fromE164, getCountryName, getDialCode, getNationalLength, stripTrunkPrefix, getFlagEmoji, toE164, } from "./input-phone.type.js";
|
|
24
|
+
import { resolveDurationMs, resolveEasing, } from "../../../utils/motion.utils.js";
|
|
25
|
+
import { LocalizableMixin, } from "../../../mixins/localizable.mixin.js";
|
|
26
|
+
import { isImplicitSubmissionKey, submitImplicitly, } from "../../../utils/implicit-submission.utils.js";
|
|
23
27
|
/**
|
|
24
28
|
* Tag name of the phone input component.
|
|
25
29
|
*/
|
|
@@ -62,7 +66,7 @@ const TRIGGER_POINTER_DOWN_WINDOW_MS = 100;
|
|
|
62
66
|
* @internal
|
|
63
67
|
*/
|
|
64
68
|
const Base = DisabledMixin(ValidatorsMixin(LitElement));
|
|
65
|
-
const EunomiaInputPhoneMixinBase = AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(FormMixin(Base)))));
|
|
69
|
+
const EunomiaInputPhoneMixinBase = LocalizableMixin(AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(FormMixin(Base))))));
|
|
66
70
|
/**
|
|
67
71
|
* A phone number field rendered in two adjacent parts: a compact country
|
|
68
72
|
* selector, showing only the flag, on the leading side, and the phone
|
|
@@ -99,15 +103,17 @@ const EunomiaInputPhoneMixinBase = AnchorPositionMixin(FieldAppearanceMixin(Form
|
|
|
99
103
|
* @prop {boolean} [disabled=false] - Whether the field is disabled
|
|
100
104
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
101
105
|
* @prop {boolean} [required=false] - Whether the field is required
|
|
102
|
-
* @prop {boolean} [hideError=false] - Whether the errors are hidden
|
|
106
|
+
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
107
|
+
* @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
|
|
108
|
+
* @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
|
|
103
109
|
* @prop {Array<Validators<string>>} validators - The list of validation rules applied to the field value
|
|
104
110
|
* @prop {string} [placeholder] - The placeholder shown when the field is empty. Defaults to a generic formatted digit pattern, not a real per-country example, when unset
|
|
105
111
|
* @prop {string} [countrySearchPlaceholder='Search a country…'] - The placeholder of the search field inside the country dropdown
|
|
106
112
|
* @attr {string} [country-search-placeholder='Search a country…'] - The placeholder of the search field inside the country dropdown
|
|
107
113
|
* @prop {string} [noResultsLabel='No results'] - Text displayed in the dropdown when no country matches the search
|
|
108
114
|
* @attr {string} [no-results-label='No results'] - Text displayed in the dropdown when no country matches the search
|
|
109
|
-
* @prop {string} [
|
|
110
|
-
* @attr {string} [
|
|
115
|
+
* @prop {string} [countrySelectorLabel] - The accessible label of the leading country selector button. Defaults to the localized string for the current locale (English: "Select a country")
|
|
116
|
+
* @attr {string} [country-selector-label] - The accessible label of the leading country selector button. Defaults to the localized string for the current locale (English: "Select a country")
|
|
111
117
|
* @fires {ChangeEvent} eunchange - Fired on every value change
|
|
112
118
|
* @cssprop [--field-background] - Sets the background color of the field
|
|
113
119
|
* @cssprop [--field-border-color] - Sets the border color of the field
|
|
@@ -115,6 +121,8 @@ const EunomiaInputPhoneMixinBase = AnchorPositionMixin(FieldAppearanceMixin(Form
|
|
|
115
121
|
* @cssprop [--field-border-color-focus] - Sets the border color on focus
|
|
116
122
|
* @cssprop [--field-border-radius] - Sets the corner radius of the field
|
|
117
123
|
* @cssprop [--field-padding] - Sets the padding of the field
|
|
124
|
+
* @cssprop [--field-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --field-padding is set
|
|
125
|
+
* @cssprop [--field-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --field-padding is set
|
|
118
126
|
* @cssprop [--field-text-color] - Sets the text color of the field
|
|
119
127
|
* @cssprop [--field-placeholder-color] - Sets the color of the placeholder
|
|
120
128
|
* @cssprop [--field-icon-color] - Sets the color of the country selector button
|
|
@@ -125,11 +133,14 @@ const EunomiaInputPhoneMixinBase = AnchorPositionMixin(FieldAppearanceMixin(Form
|
|
|
125
133
|
* @cssprop [--field-listbox-transition-duration=200ms] - Sets the duration of the dropdown panel's open and close height transition, disabled entirely under reduced motion settings
|
|
126
134
|
* @cssprop [--eun-viewport-inset-top] - Reserves space, such as a page's sticky header height, that the dropdown panel keeps clear of at the top of the viewport. Set on the root or an ancestor rather than on the field itself
|
|
127
135
|
* @cssprop [--eun-viewport-inset-bottom] - The same as eun-viewport-inset-top, reserved at the bottom of the viewport, such as for a sticky footer
|
|
136
|
+
* @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
|
|
137
|
+
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
138
|
+
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
128
139
|
* @element eun-input-phone
|
|
129
140
|
*/
|
|
130
141
|
let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends EunomiaInputPhoneMixinBase {
|
|
131
142
|
constructor() {
|
|
132
|
-
super(
|
|
143
|
+
super();
|
|
133
144
|
/**
|
|
134
145
|
* Hides the leading country-selector part entirely. `country` can still
|
|
135
146
|
* be set programmatically, with no picker UI to change it.
|
|
@@ -151,11 +162,6 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
151
162
|
* @default No results
|
|
152
163
|
*/
|
|
153
164
|
this.noResultsLabel = "No results";
|
|
154
|
-
/**
|
|
155
|
-
* Accessible label of the leading country-selector button.
|
|
156
|
-
* @default Select a country
|
|
157
|
-
*/
|
|
158
|
-
this.ariaLabelCountrySelector = "Select a country";
|
|
159
165
|
/**
|
|
160
166
|
* The raw national digits currently typed (no dial code, no separators) —
|
|
161
167
|
* *including* a leading trunk "0" if the user typed one, kept exactly as
|
|
@@ -182,6 +188,23 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
182
188
|
* @internal
|
|
183
189
|
*/
|
|
184
190
|
this.highlightedIndex = -1;
|
|
191
|
+
/**
|
|
192
|
+
* Submits the owning form on Enter in the number field, as a native text
|
|
193
|
+
* input does, since the browser never does it from a shadow root.
|
|
194
|
+
* Listened to on the host so the country list's own Enter handling is
|
|
195
|
+
* never mistaken for it.
|
|
196
|
+
* @private
|
|
197
|
+
*/
|
|
198
|
+
this.handleImplicitSubmission = (event) => {
|
|
199
|
+
const form = this.internals.form;
|
|
200
|
+
if (!form ||
|
|
201
|
+
event.composedPath()[0] !== this.fieldEl ||
|
|
202
|
+
!isImplicitSubmissionKey(event)) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
event.preventDefault();
|
|
206
|
+
submitImplicitly(form);
|
|
207
|
+
};
|
|
185
208
|
/**
|
|
186
209
|
* Closes the dropdown when the browser window itself loses focus (e.g.
|
|
187
210
|
* Alt-Tab to another application). The Popover API's own light-dismiss
|
|
@@ -260,6 +283,7 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
260
283
|
this.unanchorFloatingElement();
|
|
261
284
|
this.unobserveAnchorVisibility();
|
|
262
285
|
};
|
|
286
|
+
this.addEventListener("keydown", this.handleImplicitSubmission);
|
|
263
287
|
}
|
|
264
288
|
connectedCallback() {
|
|
265
289
|
super.connectedCallback?.();
|
|
@@ -334,6 +358,14 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
334
358
|
?.scrollIntoView({ block: "nearest" });
|
|
335
359
|
}
|
|
336
360
|
}
|
|
361
|
+
/**
|
|
362
|
+
* The host is never a tab stop of its own : sequential navigation goes
|
|
363
|
+
* straight to the controls inside, in both directions, and
|
|
364
|
+
* {@link focus} covers a direct call on the host.
|
|
365
|
+
*/
|
|
366
|
+
get hostTabStop() {
|
|
367
|
+
return false;
|
|
368
|
+
}
|
|
337
369
|
/**
|
|
338
370
|
* Returns the field element to focus/anchor on validation errors.
|
|
339
371
|
*
|
|
@@ -382,7 +414,7 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
382
414
|
/**
|
|
383
415
|
* The listbox's open/close animation duration, in ms : `0` under
|
|
384
416
|
* `prefers-reduced-motion: reduce`, otherwise `--field-listbox-
|
|
385
|
-
* transition-duration` (default `
|
|
417
|
+
* transition-duration` (default `--eun-duration-m`) — same custom property
|
|
386
418
|
* `eun-select`/`eun-search` share.
|
|
387
419
|
*
|
|
388
420
|
* @param el the listbox to read `--field-listbox-transition-duration` off.
|
|
@@ -392,18 +424,7 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
392
424
|
if (window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
|
|
393
425
|
return 0;
|
|
394
426
|
}
|
|
395
|
-
|
|
396
|
-
.getPropertyValue("--field-listbox-transition-duration")
|
|
397
|
-
.trim();
|
|
398
|
-
if (raw) {
|
|
399
|
-
const parsed = raw.endsWith("ms")
|
|
400
|
-
? Number.parseFloat(raw)
|
|
401
|
-
: Number.parseFloat(raw) * 1000;
|
|
402
|
-
if (Number.isFinite(parsed) && parsed >= 0) {
|
|
403
|
-
return parsed;
|
|
404
|
-
}
|
|
405
|
-
}
|
|
406
|
-
return 200;
|
|
427
|
+
return resolveDurationMs(el, "--field-listbox-transition-duration", "m", 200);
|
|
407
428
|
}
|
|
408
429
|
/**
|
|
409
430
|
* Plays the fade/scaleY-in, replacing any {@link listboxAnimation}
|
|
@@ -421,7 +442,7 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
421
442
|
this.listboxAnimation = listbox.animate([
|
|
422
443
|
{ opacity: 0, transform: "scaleY(0.01)" },
|
|
423
444
|
{ opacity: 1, transform: "scaleY(1)" },
|
|
424
|
-
], { duration, easing:
|
|
445
|
+
], { duration, easing: resolveEasing(listbox), fill: "forwards" });
|
|
425
446
|
}
|
|
426
447
|
/**
|
|
427
448
|
* Closes the dropdown panel, if open. All state cleanup happens in
|
|
@@ -458,7 +479,7 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
458
479
|
const animation = listbox.animate([
|
|
459
480
|
{ opacity: 1, transform: "scaleY(1)" },
|
|
460
481
|
{ opacity: 0, transform: "scaleY(0.01)" },
|
|
461
|
-
], { duration, easing:
|
|
482
|
+
], { duration, easing: resolveEasing(listbox), fill: "forwards" });
|
|
462
483
|
this.listboxAnimation = animation;
|
|
463
484
|
animation.finished
|
|
464
485
|
.then(() => {
|
|
@@ -639,7 +660,8 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
639
660
|
aria-haspopup="listbox"
|
|
640
661
|
aria-expanded=${this.isOpen}
|
|
641
662
|
aria-controls="listbox"
|
|
642
|
-
aria-label=${this.
|
|
663
|
+
aria-label=${this.countrySelectorLabel ??
|
|
664
|
+
this.dictionary.inputPhone.selectCountry}
|
|
643
665
|
?disabled=${this.disabled || this.readonly}
|
|
644
666
|
@pointerdown=${this.handleTriggerPointerDown}
|
|
645
667
|
@click=${this.handleTriggerClick}
|
|
@@ -666,7 +688,8 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
666
688
|
<ul
|
|
667
689
|
id="listbox"
|
|
668
690
|
role="listbox"
|
|
669
|
-
aria-label=${this.
|
|
691
|
+
aria-label=${this.countrySelectorLabel ??
|
|
692
|
+
this.dictionary.inputPhone.selectCountry}
|
|
670
693
|
popover="auto"
|
|
671
694
|
@toggle=${this.handlePopoverToggle}
|
|
672
695
|
>
|
|
@@ -743,8 +766,9 @@ let EunomiaInputPhone = EunomiaInputPhone_1 = class EunomiaInputPhone extends Eu
|
|
|
743
766
|
placeholder=${this.effectivePlaceholder}
|
|
744
767
|
?disabled=${this.disabled}
|
|
745
768
|
?readonly=${this.readonly}
|
|
769
|
+
aria-label=${ifDefined(this.label)}
|
|
746
770
|
aria-describedby=${hasDescription ? "description" : nothing}
|
|
747
|
-
aria-invalid=${
|
|
771
|
+
aria-invalid=${this.showError}
|
|
748
772
|
@input=${this.handlePhoneInput}
|
|
749
773
|
/>
|
|
750
774
|
</div>
|
|
@@ -797,8 +821,8 @@ __decorate([
|
|
|
797
821
|
property({ attribute: "no-results-label" })
|
|
798
822
|
], EunomiaInputPhone.prototype, "noResultsLabel", void 0);
|
|
799
823
|
__decorate([
|
|
800
|
-
property({ attribute: "
|
|
801
|
-
], EunomiaInputPhone.prototype, "
|
|
824
|
+
property({ attribute: "country-selector-label" })
|
|
825
|
+
], EunomiaInputPhone.prototype, "countrySelectorLabel", void 0);
|
|
802
826
|
__decorate([
|
|
803
827
|
state()
|
|
804
828
|
], EunomiaInputPhone.prototype, "nationalDigits", void 0);
|
|
@@ -51,8 +51,8 @@ const inputPhone = css `
|
|
|
51
51
|
color: var(--_iconColor);
|
|
52
52
|
cursor: pointer;
|
|
53
53
|
transition:
|
|
54
|
-
border-color
|
|
55
|
-
outline-color
|
|
54
|
+
border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
|
|
55
|
+
outline-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
|
|
56
56
|
}
|
|
57
57
|
:host(:not([aria-readonly="true"])) #country-trigger:focus-visible {
|
|
58
58
|
z-index: 1;
|
|
@@ -82,8 +82,8 @@ const inputPhone = css `
|
|
|
82
82
|
outline: 1px solid transparent;
|
|
83
83
|
box-sizing: border-box;
|
|
84
84
|
transition:
|
|
85
|
-
border-color
|
|
86
|
-
outline-color
|
|
85
|
+
border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
|
|
86
|
+
outline-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
|
|
87
87
|
}
|
|
88
88
|
:host([hide-country-selector]) #field-wrapper {
|
|
89
89
|
margin-inline-start: 0;
|
|
@@ -13,17 +13,17 @@ const base = css `
|
|
|
13
13
|
}
|
|
14
14
|
#name {
|
|
15
15
|
color: var(--eun-text-color, #071621);
|
|
16
|
-
font-size: var(--eun-font-size-s, 14px);
|
|
16
|
+
font-size: var(--field-label-font-size, var(--eun-font-size-s, 14px));
|
|
17
17
|
font-weight: var(--eun-font-weight-l, 700);
|
|
18
18
|
}
|
|
19
19
|
slot[name="instructions"] {
|
|
20
20
|
display: block;
|
|
21
|
-
font-size: var(--eun-font-size-xs, 12px);
|
|
21
|
+
font-size: var(--field-message-font-size, var(--eun-font-size-xs, 12px));
|
|
22
22
|
color: var(--eun-text-secondary, #484e61);
|
|
23
23
|
}
|
|
24
24
|
.required {
|
|
25
25
|
color: var(--eun-color-critical-100, #aa0014);
|
|
26
|
-
font-size: var(--eun-font-size-s, 10px);
|
|
26
|
+
font-size: var(--field-label-font-size, var(--eun-font-size-s, 10px));
|
|
27
27
|
}
|
|
28
28
|
`;
|
|
29
29
|
export const labelStyles = base;
|
|
@@ -22,8 +22,10 @@ export declare const EunomiaRadioCardTagName = "eun-radio-card";
|
|
|
22
22
|
* @attr {boolean} [default-checked] - The checked state applied when the card connects, and restored on form reset
|
|
23
23
|
* @prop {boolean} [disabled=false] - Whether the card is disabled
|
|
24
24
|
* @prop {boolean} [readonly=false] - Whether the card is read only
|
|
25
|
-
* @prop {boolean} [hideError=false] - Whether the
|
|
26
|
-
* @
|
|
25
|
+
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
26
|
+
* @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
|
|
27
|
+
* @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
|
|
28
|
+
* @attr {boolean} [hide-error=false] - Whether the error message is hidden. The hint stays visible
|
|
27
29
|
* @prop {boolean} [required=false] - Whether a selection is required
|
|
28
30
|
* @prop {string} name - The name of the field
|
|
29
31
|
* @prop {string} value - The value submitted with the card
|
|
@@ -44,6 +46,8 @@ export declare const EunomiaRadioCardTagName = "eun-radio-card";
|
|
|
44
46
|
* @cssprop [--radio-card-border-width] - Sets the width of the border
|
|
45
47
|
* @cssprop [--radio-card-border-radius] - Sets the corner radius of the card
|
|
46
48
|
* @cssprop [--radio-card-padding] - Sets the padding inside the card
|
|
49
|
+
* @cssprop [--radio-card-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --radio-card-padding is set
|
|
50
|
+
* @cssprop [--radio-card-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --radio-card-padding is set
|
|
47
51
|
* @cssprop [--radio-card-min-width] - Sets the minimum width of the card
|
|
48
52
|
* @cssprop [--radio-card-icon-color] - Sets the color of the leading icon while not checked
|
|
49
53
|
* @cssprop [--radio-card-icon-color-checked] - Sets the color of the leading icon while checked
|