@eunomia/elements 1.0.0-beta.6 → 1.0.0-beta.8
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/cdn/components/chunks/{chunk-KDN4O5W2.js → chunk-32L2QYWQ.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-JYIIWN2P.js → chunk-36KLGY6U.js} +8 -8
- package/dist/cdn/components/chunks/chunk-3BMACIDO.js +1 -0
- package/dist/cdn/components/chunks/{chunk-2Y2EU2CI.js → chunk-3UUZM7X2.js} +1 -1
- package/dist/cdn/components/chunks/chunk-55PUDL7D.js +109 -0
- package/dist/cdn/components/chunks/chunk-5LA5DQMP.js +1 -0
- package/dist/cdn/components/chunks/chunk-5LXGJVJR.js +1 -0
- package/dist/cdn/components/chunks/{chunk-ZKZV2YG5.js → chunk-5XPOGBPL.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-LMVW522V.js → chunk-62RLISRD.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-PMPSJG5V.js → chunk-6FYW5TQU.js} +3 -3
- package/dist/cdn/components/chunks/chunk-6TIEBY34.js +1 -0
- package/dist/cdn/components/chunks/{chunk-MOMYII3P.js → chunk-AH2SKZ7T.js} +14 -1
- 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-GVS6IUKC.js +1 -0
- package/dist/cdn/components/chunks/chunk-GWLD2I3P.js +8 -0
- package/dist/cdn/components/chunks/{chunk-UDVB4LAE.js → chunk-I4ERDXSM.js} +5 -3
- package/dist/cdn/components/chunks/{chunk-QZ5SHR3I.js → chunk-J3SZBXM6.js} +2 -2
- package/dist/cdn/components/chunks/chunk-JAGZL7JH.js +1 -0
- package/dist/cdn/components/chunks/{chunk-VYFR364B.js → chunk-LD35BFNK.js} +18 -17
- package/dist/cdn/components/chunks/{chunk-XDPRWUKN.js → chunk-MQQJ6DID.js} +1 -1
- package/dist/cdn/components/chunks/chunk-P6LGU3FT.js +1 -0
- package/dist/cdn/components/chunks/chunk-QL5GSW2A.js +1 -0
- package/dist/cdn/components/chunks/{chunk-UYZR4JXZ.js → chunk-QSZO4GIH.js} +45 -9
- package/dist/cdn/components/chunks/{chunk-7KKWYPHY.js → chunk-QXQ25SQS.js} +21 -19
- package/dist/cdn/components/chunks/{chunk-SZYEBMG6.js → chunk-QYB6Z6FG.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-RIFF2D2F.js → chunk-RGC3I6MK.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-L2ADCEN7.js → chunk-SVGWCKWT.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-N6ZW5CDN.js → chunk-TCSB2MLU.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-MQQ4BGVJ.js → chunk-TFTRCIIK.js} +7 -6
- 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-WIUERJII.js +1 -0
- package/dist/cdn/components/chunks/chunk-WW4BTWMH.js +1 -0
- package/dist/cdn/components/eun-alert.js +13 -6
- package/dist/cdn/components/eun-animate.js +6 -6
- package/dist/cdn/components/eun-badge.js +1 -1
- package/dist/cdn/components/eun-button.js +1 -1
- package/dist/cdn/components/eun-calendar.js +2 -2
- package/dist/cdn/components/eun-card.js +4 -4
- package/dist/cdn/components/eun-carousel.js +26 -22
- package/dist/cdn/components/eun-check-card.js +1 -1
- 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 +17 -11
- package/dist/cdn/components/eun-collapse.js +1 -1
- package/dist/cdn/components/eun-color-picker.js +74 -69
- package/dist/cdn/components/eun-counter.js +16 -14
- package/dist/cdn/components/eun-date-picker.js +67 -63
- package/dist/cdn/components/eun-description-list.js +2 -2
- package/dist/cdn/components/eun-divider.js +3 -3
- package/dist/cdn/components/eun-drawer.js +21 -22
- package/dist/cdn/components/eun-dropdown-button.js +1 -1
- package/dist/cdn/components/eun-dropdown-item.js +3 -3
- package/dist/cdn/components/eun-fab.js +2 -2
- package/dist/cdn/components/eun-icon.js +1 -1
- package/dist/cdn/components/eun-image-card.js +1 -1
- package/dist/cdn/components/eun-image-carousel.js +10 -10
- package/dist/cdn/components/eun-infinite-list.js +1 -1
- package/dist/cdn/components/eun-input-file.js +21 -21
- package/dist/cdn/components/eun-input-phone.js +16 -12
- package/dist/cdn/components/eun-input.js +1 -1
- package/dist/cdn/components/eun-link.js +59 -13
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +33 -23
- package/dist/cdn/components/eun-pagination.js +16 -16
- package/dist/cdn/components/eun-password-strength.js +14 -10
- package/dist/cdn/components/eun-radio-card.js +1 -1
- package/dist/cdn/components/eun-radio-list.js +11 -8
- 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 +11 -11
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +28 -28
- package/dist/cdn/components/eun-search.js +36 -32
- package/dist/cdn/components/eun-select.js +27 -27
- package/dist/cdn/components/eun-sidebar.js +73 -26
- package/dist/cdn/components/eun-skeleton.js +1 -1
- package/dist/cdn/components/eun-slider.js +3 -3
- package/dist/cdn/components/eun-sliding-card.js +1 -1
- package/dist/cdn/components/eun-step.js +5 -4
- package/dist/cdn/components/eun-stepper.js +30 -30
- package/dist/cdn/components/eun-switch.js +1 -1
- package/dist/cdn/components/eun-tab-group.js +4 -4
- package/dist/cdn/components/eun-tab-panel.js +1 -1
- 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 +2 -2
- package/dist/cdn/components/eun-tag.js +3 -3
- package/dist/cdn/components/eun-textarea.js +36 -28
- package/dist/cdn/components/eun-time-picker.js +31 -28
- package/dist/cdn/components/eun-toast.js +24 -15
- package/dist/cdn/components/eun-toggle-group.js +75 -37
- package/dist/cdn/components/eun-toggle-item.js +9 -9
- package/dist/cdn/components/eun-toggle.js +2 -2
- package/dist/cdn/components/eun-toolbar.js +22 -22
- package/dist/cdn/components/eun-tooltip.js +6 -6
- package/dist/cdn/styles/eunomia-themes.css +1 -1
- package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +6 -2
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
- package/dist/components/action/button/button.d.ts +4 -3
- package/dist/components/action/button/button.js +6 -9
- package/dist/components/action/button/button.styles.js +13 -8
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +4 -6
- package/dist/components/action/dropdown-button/dropdown-button.js +16 -13
- package/dist/components/action/dropdown-button/dropdown-item.d.ts +10 -2
- package/dist/components/action/dropdown-button/dropdown-item.js +24 -9
- package/dist/components/action/link/link.d.ts +10 -1
- package/dist/components/action/link/link.js +13 -1
- package/dist/components/action/link/link.styles.js +50 -3
- package/dist/components/action/toggle/toggle-group.d.ts +12 -2
- package/dist/components/action/toggle/toggle-group.js +18 -3
- package/dist/components/action/toggle/toggle-group.styles.js +58 -20
- package/dist/components/action/toggle/toggle-item.js +1 -3
- package/dist/components/action/toggle/toggle-item.styles.js +7 -7
- package/dist/components/action/toggle/toggle.js +1 -1
- package/dist/components/alert/alert/alert.d.ts +9 -7
- package/dist/components/alert/alert/alert.js +11 -14
- package/dist/components/alert/alert/alert.styles.js +9 -2
- package/dist/components/alert/drawer/drawer.d.ts +30 -5
- package/dist/components/alert/drawer/drawer.js +48 -13
- package/dist/components/alert/drawer/drawer.styles.js +7 -7
- package/dist/components/alert/modal/modal.d.ts +35 -10
- package/dist/components/alert/modal/modal.js +55 -28
- package/dist/components/alert/modal/modal.styles.js +17 -6
- package/dist/components/alert/toast/toast.d.ts +7 -5
- package/dist/components/alert/toast/toast.js +12 -15
- package/dist/components/alert/toast/toast.styles.js +18 -9
- package/dist/components/content/badge/badge.js +2 -2
- package/dist/components/content/card/card.js +1 -1
- package/dist/components/content/card/card.styles.js +2 -2
- package/dist/components/content/chip/chip.d.ts +4 -4
- package/dist/components/content/chip/chip.js +11 -10
- package/dist/components/content/chip/chip.styles.js +9 -3
- package/dist/components/content/description-list/description-list.js +3 -3
- package/dist/components/content/icon/icon.d.ts +3 -0
- package/dist/components/content/icon/icon.js +3 -0
- package/dist/components/content/icon/icon.style.d.ts +2 -0
- package/dist/components/content/icon/icon.style.js +4 -0
- package/dist/components/content/image-carousel/image-carousel.d.ts +12 -12
- package/dist/components/content/image-carousel/image-carousel.js +29 -28
- 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 +4 -0
- package/dist/components/content/tag/tag.js +2 -2
- package/dist/components/content/tooltip/tooltip.d.ts +16 -9
- package/dist/components/content/tooltip/tooltip.js +31 -15
- package/dist/components/content/tooltip/tooltip.styles.js +1 -1
- package/dist/components/form/checkbox/check-card.d.ts +1 -0
- package/dist/components/form/checkbox/check-card.js +1 -0
- package/dist/components/form/checkbox/checkbox-list.d.ts +17 -0
- package/dist/components/form/checkbox/checkbox-list.js +39 -10
- package/dist/components/form/checkbox/checkbox.d.ts +1 -0
- package/dist/components/form/checkbox/checkbox.js +3 -1
- package/dist/components/form/checkbox/checkbox.styles.js +3 -2
- package/dist/components/form/color-picker/color-picker.d.ts +47 -28
- package/dist/components/form/color-picker/color-picker.js +73 -51
- package/dist/components/form/color-picker/color-picker.styles.js +14 -1
- package/dist/components/form/counter/counter.d.ts +24 -18
- package/dist/components/form/counter/counter.js +61 -61
- package/dist/components/form/counter/counter.styles.js +6 -4
- package/dist/components/form/date-picker/date-picker.d.ts +33 -7
- package/dist/components/form/date-picker/date-picker.js +82 -56
- package/dist/components/form/date-picker/date-picker.styles.js +9 -6
- package/dist/components/form/input/input.d.ts +43 -39
- package/dist/components/form/input/input.js +91 -110
- package/dist/components/form/input-file/input-file.d.ts +26 -13
- package/dist/components/form/input-file/input-file.js +35 -35
- package/dist/components/form/input-file/input-file.styles.js +4 -4
- package/dist/components/form/input-phone/input-phone.d.ts +28 -5
- package/dist/components/form/input-phone/input-phone.js +47 -13
- package/dist/components/form/input-phone/input-phone.styles.js +6 -3
- package/dist/components/form/radio/radio-card.d.ts +1 -0
- package/dist/components/form/radio/radio-card.js +1 -0
- package/dist/components/form/radio/radio-list.d.ts +23 -7
- package/dist/components/form/radio/radio-list.js +47 -22
- package/dist/components/form/radio/radio.d.ts +1 -0
- package/dist/components/form/radio/radio.js +1 -0
- 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 +72 -18
- package/dist/components/form/search/search.js +135 -72
- package/dist/components/form/search/search.styles.js +2 -0
- package/dist/components/form/select/select.d.ts +29 -10
- package/dist/components/form/select/select.js +65 -41
- package/dist/components/form/shared-styles/field.styles.js +45 -8
- package/dist/components/form/shared-styles/listbox.styles.js +15 -1
- package/dist/components/form/slider/slider.d.ts +7 -8
- package/dist/components/form/slider/slider.js +9 -12
- package/dist/components/form/switch/switch.d.ts +1 -0
- package/dist/components/form/switch/switch.js +1 -0
- package/dist/components/form/textarea/textarea.d.ts +90 -23
- package/dist/components/form/textarea/textarea.js +194 -44
- package/dist/components/form/textarea/textarea.styles.js +3 -0
- 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.d.ts +30 -9
- package/dist/components/form/time-picker/time-picker.js +66 -40
- package/dist/components/form/time-picker/time-picker.styles.js +7 -5
- package/dist/components/layout/animate/animate.js +3 -2
- package/dist/components/layout/animate/animate.styles.js +2 -2
- package/dist/components/layout/divider/divider.js +1 -1
- package/dist/components/layout/divider/divider.styles.js +1 -1
- package/dist/components/loader/loader/loader.js +2 -2
- package/dist/components/loader/loader/loader.styles.js +14 -12
- package/dist/components/loader/skeleton/skeleton.js +1 -1
- package/dist/components/navigation/carousel/carousel.d.ts +32 -9
- package/dist/components/navigation/carousel/carousel.js +88 -41
- package/dist/components/navigation/carousel/carousel.styles.js +10 -6
- package/dist/components/navigation/pagination/pagination.d.ts +23 -21
- package/dist/components/navigation/pagination/pagination.js +30 -53
- package/dist/components/navigation/sidebar/sidebar.d.ts +113 -65
- package/dist/components/navigation/sidebar/sidebar.js +161 -118
- package/dist/components/navigation/sidebar/sidebar.styles.d.ts +1 -1
- package/dist/components/navigation/sidebar/sidebar.styles.js +74 -24
- package/dist/components/navigation/stepper/step.js +9 -8
- package/dist/components/navigation/stepper/stepper.d.ts +1 -3
- package/dist/components/navigation/stepper/stepper.js +15 -26
- package/dist/components/navigation/tabs/tab-group/tab-group.js +2 -2
- package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +2 -2
- package/dist/components/navigation/toolbar/toolbar.d.ts +23 -13
- package/dist/components/navigation/toolbar/toolbar.js +28 -35
- package/dist/components/navigation/toolbar/toolbar.styles.js +18 -17
- package/dist/events/select.event.d.ts +3 -2
- package/dist/events/select.event.js +2 -1
- package/dist/features/scheduler/calendar/calendar.js +1 -1
- package/dist/features/scheduler/scheduler/scheduler.d.ts +7 -7
- package/dist/features/scheduler/scheduler/scheduler.js +15 -24
- package/dist/features/scheduler/scheduler-event/scheduler-event.js +3 -3
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +1 -1
- 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 +7 -8
- package/dist/features/table/table/table.js +1 -1
- package/dist/features/table/table-action-bar/table-action-bar.js +2 -2
- package/dist/i18n/en.d.ts +68 -0
- package/dist/i18n/en.js +68 -0
- package/dist/i18n/fr.js +68 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -0
- package/dist/mixins/button.mixin.d.ts +1 -1
- package/dist/mixins/button.mixin.js +9 -6
- package/dist/mixins/check.mixin.js +11 -10
- package/dist/mixins/dialog-surface.mixin.d.ts +8 -0
- 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/field-size.mixin.d.ts +19 -0
- package/dist/mixins/field-size.mixin.js +33 -0
- package/dist/mixins/form.mixin.d.ts +4 -0
- package/dist/mixins/form.mixin.js +87 -13
- package/dist/mixins/localizable.mixin.d.ts +1 -1
- package/dist/mixins/localizable.mixin.js +1 -1
- package/dist/mixins/radio.mixin.js +11 -10
- package/dist/mixins/readonly.mixin.d.ts +2 -1
- package/dist/mixins/readonly.mixin.js +10 -3
- package/dist/mixins/rounded.mixin.d.ts +18 -0
- package/dist/mixins/rounded.mixin.js +32 -0
- package/dist/ssr/alert-ssr.css +187 -0
- package/dist/ssr/badge-ssr.css +67 -0
- package/dist/ssr/breadcrumb-ssr.css +41 -0
- package/dist/ssr/button-ssr.css +5 -5
- package/dist/ssr/card-ssr.css +27 -15
- package/dist/ssr/carousel-ssr.css +247 -0
- package/dist/ssr/checkbox-ssr.css +67 -0
- package/dist/ssr/chip-ssr.css +250 -0
- package/dist/ssr/collapse-ssr.css +180 -0
- package/dist/ssr/field-ssr.css +202 -0
- package/dist/ssr/icon-ssr.css +266 -0
- package/dist/ssr/image-carousel-ssr.css +34 -0
- package/dist/ssr/links-ssr.css +44 -1
- package/dist/ssr/pagination-ssr.css +4 -0
- package/dist/ssr/rating-ssr.css +254 -0
- package/dist/ssr/sidebar-ssr.css +102 -3
- package/dist/ssr/skeleton-ssr.css +63 -0
- package/dist/ssr/tabs-ssr.css +129 -0
- package/dist/ssr/toggle-group-ssr.css +233 -0
- package/dist/ssr/toolbar-ssr.css +81 -2
- package/dist/types/variant.type.d.ts +4 -1
- package/dist/utils/boolean.utils.d.ts +14 -0
- package/dist/utils/boolean.utils.js +20 -0
- package/dist/utils/dropdown-menu.utils.d.ts +1 -1
- package/dist/utils/focusable-elements.utils.d.ts +12 -0
- package/dist/utils/focusable-elements.utils.js +26 -0
- package/dist/utils/implicit-submission.utils.d.ts +18 -0
- package/dist/utils/implicit-submission.utils.js +79 -0
- package/dist/utils/input-modality.utils.d.ts +13 -0
- package/dist/utils/input-modality.utils.js +34 -0
- package/dist/utils/listbox-options.utils.d.ts +11 -0
- package/dist/utils/listbox-options.utils.js +41 -3
- package/dist/utils/theme-generator.utils.d.ts +8 -2
- package/dist/utils/theme-generator.utils.js +30 -9
- package/package.json +26 -7
- package/styles/themes/mixins/eunomia-neutrals.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +6 -2
- package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +6 -2
- package/dist/cdn/components/chunks/chunk-4PI6RDUS.js +0 -1
- package/dist/cdn/components/chunks/chunk-6VK6SHCG.js +0 -1
- package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +0 -1
- package/dist/cdn/components/chunks/chunk-BQFJR2UP.js +0 -110
- package/dist/cdn/components/chunks/chunk-G5SBDQQ3.js +0 -1
- package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +0 -1
- package/dist/cdn/components/chunks/chunk-PE4DAXHQ.js +0 -3
- package/dist/cdn/components/chunks/chunk-RS7TWEMQ.js +0 -1
- package/dist/cdn/components/chunks/chunk-UDOZRIJZ.js +0 -1
- package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +0 -38
|
@@ -73,8 +73,8 @@ export function renderTimePickerColumns(props) {
|
|
|
73
73
|
disabled,
|
|
74
74
|
noAnimation,
|
|
75
75
|
label: props.ariaLabelHour ?? "Hour",
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
incrementLabel: props.incrementLabel ?? "Increase hour",
|
|
77
|
+
decrementLabel: props.decrementLabel ?? "Decrease hour",
|
|
78
78
|
min: hourMin,
|
|
79
79
|
max: hourMax,
|
|
80
80
|
current: display.hour,
|
|
@@ -89,8 +89,8 @@ export function renderTimePickerColumns(props) {
|
|
|
89
89
|
disabled,
|
|
90
90
|
noAnimation,
|
|
91
91
|
label: props.ariaLabelMinute ?? "Minute",
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
incrementLabel: props.incrementLabel ?? "Increase minute",
|
|
93
|
+
decrementLabel: props.decrementLabel ?? "Decrease minute",
|
|
94
94
|
min: 0,
|
|
95
95
|
max: 59,
|
|
96
96
|
current: minute,
|
|
@@ -106,8 +106,8 @@ export function renderTimePickerColumns(props) {
|
|
|
106
106
|
disabled,
|
|
107
107
|
noAnimation,
|
|
108
108
|
label: props.ariaLabelPeriod ?? "AM/PM",
|
|
109
|
-
|
|
110
|
-
|
|
109
|
+
incrementLabel: props.incrementLabel ?? "Toggle AM/PM",
|
|
110
|
+
decrementLabel: props.decrementLabel ?? "Toggle AM/PM",
|
|
111
111
|
min: 0,
|
|
112
112
|
max: 1,
|
|
113
113
|
current: period === "AM" ? 0 : 1,
|
|
@@ -164,7 +164,7 @@ function renderColumn(config) {
|
|
|
164
164
|
type="button"
|
|
165
165
|
class="tp-arrow tp-arrow-up"
|
|
166
166
|
tabindex="-1"
|
|
167
|
-
aria-label=${config.
|
|
167
|
+
aria-label=${config.incrementLabel}
|
|
168
168
|
?disabled=${disabled}
|
|
169
169
|
@click=${() => onStep(1)}
|
|
170
170
|
>
|
|
@@ -194,7 +194,7 @@ function renderColumn(config) {
|
|
|
194
194
|
type="button"
|
|
195
195
|
class="tp-arrow tp-arrow-down"
|
|
196
196
|
tabindex="-1"
|
|
197
|
-
aria-label=${config.
|
|
197
|
+
aria-label=${config.decrementLabel}
|
|
198
198
|
?disabled=${disabled}
|
|
199
199
|
@click=${() => onStep(-1)}
|
|
200
200
|
>
|
|
@@ -5,6 +5,8 @@ import { ValidatorsMixinInterface, Validity } from "../../../mixins/validators.m
|
|
|
5
5
|
import { FormMixinInterface } from "../../../mixins/form.mixin.js";
|
|
6
6
|
import { FormLabelMixinInterface } from "../../../mixins/form-label.mixin.js";
|
|
7
7
|
import { FieldAppearanceMixinInterface } from "../../../mixins/field-appearance.mixin.js";
|
|
8
|
+
import { RoundedMixinInterface } from "../../../mixins/rounded.mixin.js";
|
|
9
|
+
import { FieldSizeMixinInterface } from "../../../mixins/field-size.mixin.js";
|
|
8
10
|
import { AnchorPositionMixinInterface } from "../../../mixins/anchor-position.mixin.js";
|
|
9
11
|
import { LocalizableMixinInterface } from "../../../mixins/localizable.mixin.js";
|
|
10
12
|
import { Constructor } from "../../../utils/constructor.type.js";
|
|
@@ -19,7 +21,7 @@ export declare const EunomiaTimePickerTagName = "eun-time-picker";
|
|
|
19
21
|
* interface element.
|
|
20
22
|
* @internal
|
|
21
23
|
*/
|
|
22
|
-
type EunomiaTimePickerBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<Date | null> & FormMixinInterface<Date | null> & FormLabelMixinInterface & FieldAppearanceMixinInterface & AnchorPositionMixinInterface & LocalizableMixinInterface;
|
|
24
|
+
type EunomiaTimePickerBase = LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<Date | null> & FormMixinInterface<Date | null> & FormLabelMixinInterface & FieldAppearanceMixinInterface & RoundedMixinInterface & FieldSizeMixinInterface & AnchorPositionMixinInterface & LocalizableMixinInterface;
|
|
23
25
|
declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
24
26
|
/**
|
|
25
27
|
* A time field entered across segmented numeric hour and minute inputs,
|
|
@@ -40,6 +42,8 @@ declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
|
40
42
|
* under a labeled group.
|
|
41
43
|
*
|
|
42
44
|
* @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
|
|
45
|
+
* @prop {boolean} [rounded=false] - Whether the field is fully rounded, as a pill. A custom border radius still wins over it
|
|
46
|
+
* @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The field size. A field and a button of the same size share the same height
|
|
43
47
|
* @prop {Date | null} value - The picked instant
|
|
44
48
|
* @prop {Date | null} defaultValue - The default value applied when the field connects, and restored on form reset
|
|
45
49
|
* @prop {string} [timezone] - The time zone the hour and minute are displayed and edited in. Defaults to the runtime's own
|
|
@@ -65,14 +69,15 @@ declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
|
65
69
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
66
70
|
* @prop {boolean} [required=false] - Whether the field is required
|
|
67
71
|
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
72
|
+
* @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
|
|
68
73
|
* @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
|
|
69
74
|
* @prop {Array<Validators<Date | null>>} validators - The list of custom validation rules applied to the value
|
|
70
75
|
* @prop {string} [applyLabel='Apply'] - The label of the mobile modal's confirm button
|
|
71
76
|
* @attr {string} [apply-label='Apply'] - The label of the mobile modal's confirm button
|
|
72
|
-
* @prop {string} [cancelLabel
|
|
73
|
-
* @attr {string} [cancel-label
|
|
74
|
-
* @prop {string} [
|
|
75
|
-
* @attr {string} [
|
|
77
|
+
* @prop {string} [cancelLabel] - The label of the mobile modal's cancel button. Defaults to the localized string for the current locale (English: "Cancel")
|
|
78
|
+
* @attr {string} [cancel-label] - The label of the mobile modal's cancel button. Defaults to the localized string for the current locale (English: "Cancel")
|
|
79
|
+
* @prop {string} [clockLabel] - The accessible label of the trailing clock button. Defaults to the localized string for the current locale (English: "Open clock")
|
|
80
|
+
* @attr {string} [clock-label] - The accessible label of the trailing clock button. Defaults to the localized string for the current locale (English: "Open clock")
|
|
76
81
|
* @prop {string} [hourPlaceholder='hh'] - The placeholder shown in the empty hour segment
|
|
77
82
|
* @attr {string} [hour-placeholder='hh'] - The placeholder shown in the empty hour segment
|
|
78
83
|
* @prop {string} [minutePlaceholder='mm'] - The placeholder shown in the empty minute segment
|
|
@@ -98,6 +103,7 @@ declare const EunomiaTimePickerMixinBase: Constructor<EunomiaTimePickerBase>;
|
|
|
98
103
|
* @cssprop [--time-picker-panel-background] - Sets the background color of the popover panel
|
|
99
104
|
* @cssprop [--time-picker-panel-transition-duration=200ms] - Sets the duration of the popover panel's open and close transition
|
|
100
105
|
* @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
|
|
106
|
+
* @cssprop [--field-line-height] - Sets the line height of the field's value and placeholder
|
|
101
107
|
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
102
108
|
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
103
109
|
* @element eun-time-picker
|
|
@@ -186,14 +192,14 @@ export declare class EunomiaTimePicker extends EunomiaTimePickerMixinBase {
|
|
|
186
192
|
applyLabel: string;
|
|
187
193
|
/**
|
|
188
194
|
* Label of the mobile modal's cancel button.
|
|
189
|
-
*
|
|
195
|
+
* Falls back to the localized string for the current locale when unset.
|
|
190
196
|
*/
|
|
191
|
-
cancelLabel
|
|
197
|
+
cancelLabel?: string;
|
|
192
198
|
/**
|
|
193
199
|
* Accessible label of the trailing clock button.
|
|
194
|
-
*
|
|
200
|
+
* Falls back to the localized string for the current locale when unset.
|
|
195
201
|
*/
|
|
196
|
-
|
|
202
|
+
clockLabel?: string;
|
|
197
203
|
/**
|
|
198
204
|
* Placeholder shown in the empty hour segment.
|
|
199
205
|
* @default hh
|
|
@@ -227,6 +233,15 @@ export declare class EunomiaTimePicker extends EunomiaTimePickerMixinBase {
|
|
|
227
233
|
* @internal
|
|
228
234
|
*/
|
|
229
235
|
private isOpen;
|
|
236
|
+
constructor();
|
|
237
|
+
/**
|
|
238
|
+
* Submits the owning form on Enter in one of the field's segments, as a
|
|
239
|
+
* native time input does, since the browser never does it from a
|
|
240
|
+
* shadow root. Left alone while the panel is open, and on keys a
|
|
241
|
+
* segment already handles, such as Enter toggling the AM/PM segment.
|
|
242
|
+
* @private
|
|
243
|
+
*/
|
|
244
|
+
private readonly handleImplicitSubmission;
|
|
230
245
|
/**
|
|
231
246
|
* Whether the mobile modal is open.
|
|
232
247
|
* @internal
|
|
@@ -327,6 +342,12 @@ export declare class EunomiaTimePicker extends EunomiaTimePickerMixinBase {
|
|
|
327
342
|
* @returns validity state and optional message.
|
|
328
343
|
*/
|
|
329
344
|
checkLocalValidators: () => Validity;
|
|
345
|
+
/**
|
|
346
|
+
* The host is never a tab stop of its own : sequential navigation goes
|
|
347
|
+
* straight to the controls inside, in both directions, and
|
|
348
|
+
* {@link focus} covers a direct call on the host.
|
|
349
|
+
*/
|
|
350
|
+
protected get hostTabStop(): boolean;
|
|
330
351
|
/**
|
|
331
352
|
* Returns the first segment element to focus/anchor on validation errors.
|
|
332
353
|
*
|
|
@@ -12,6 +12,8 @@ import { ValidatorsMixin, } from "../../../mixins/validators.mixin.js";
|
|
|
12
12
|
import { FormMixin, hasErrorDisplayChange, } from "../../../mixins/form.mixin.js";
|
|
13
13
|
import { FormLabelMixin, } from "../../../mixins/form-label.mixin.js";
|
|
14
14
|
import { FieldAppearanceMixin, } from "../../../mixins/field-appearance.mixin.js";
|
|
15
|
+
import { RoundedMixin, } from "../../../mixins/rounded.mixin.js";
|
|
16
|
+
import { FieldSizeMixin, } from "../../../mixins/field-size.mixin.js";
|
|
15
17
|
import { AnchorPositionMixin, } from "../../../mixins/anchor-position.mixin.js";
|
|
16
18
|
import { LocalizableMixin, } from "../../../mixins/localizable.mixin.js";
|
|
17
19
|
import { ChangeEvent } from "../../../events/change.event.js";
|
|
@@ -26,6 +28,7 @@ import { timePickerListStyles } from "./time-picker-list.styles.js";
|
|
|
26
28
|
import { renderTimePickerList } from "./time-picker-list.js";
|
|
27
29
|
import { resolveDurationMs, resolveEasing, } from "../../../utils/motion.utils.js";
|
|
28
30
|
import { mediaBelow } from "../../../breakpoints.js";
|
|
31
|
+
import { isImplicitSubmissionKey, submitImplicitly, } from "../../../utils/implicit-submission.utils.js";
|
|
29
32
|
/**
|
|
30
33
|
* Tag name of the time-picker component.
|
|
31
34
|
*/
|
|
@@ -36,7 +39,7 @@ export const EunomiaTimePickerTagName = "eun-time-picker";
|
|
|
36
39
|
* @internal
|
|
37
40
|
*/
|
|
38
41
|
const Base = DisabledMixin(ValidatorsMixin(LitElement));
|
|
39
|
-
const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(FormMixin(Base))))));
|
|
42
|
+
const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(RoundedMixin(FieldSizeMixin(FieldAppearanceMixin(FormLabelMixin(ReadonlyMixin(FormMixin(Base))))))));
|
|
40
43
|
/**
|
|
41
44
|
* A time field entered across segmented numeric hour and minute inputs,
|
|
42
45
|
* plus an AM/PM toggle segment at a 12-hour format, with a trailing clock
|
|
@@ -56,6 +59,8 @@ const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldApp
|
|
|
56
59
|
* under a labeled group.
|
|
57
60
|
*
|
|
58
61
|
* @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
|
|
62
|
+
* @prop {boolean} [rounded=false] - Whether the field is fully rounded, as a pill. A custom border radius still wins over it
|
|
63
|
+
* @prop {'xs' | 's' | 'm' | 'l' | 'xl'} [size='m'] - The field size. A field and a button of the same size share the same height
|
|
59
64
|
* @prop {Date | null} value - The picked instant
|
|
60
65
|
* @prop {Date | null} defaultValue - The default value applied when the field connects, and restored on form reset
|
|
61
66
|
* @prop {string} [timezone] - The time zone the hour and minute are displayed and edited in. Defaults to the runtime's own
|
|
@@ -81,14 +86,15 @@ const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldApp
|
|
|
81
86
|
* @prop {boolean} [readonly=false] - Whether the field is read only
|
|
82
87
|
* @prop {boolean} [required=false] - Whether the field is required
|
|
83
88
|
* @prop {boolean} [hideError=false] - Whether the errors are hidden. The hint stays visible
|
|
89
|
+
* @prop {boolean} [invalid=false] - Shows the field as invalid without any message, for an error displayed elsewhere
|
|
84
90
|
* @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
|
|
85
91
|
* @prop {Array<Validators<Date | null>>} validators - The list of custom validation rules applied to the value
|
|
86
92
|
* @prop {string} [applyLabel='Apply'] - The label of the mobile modal's confirm button
|
|
87
93
|
* @attr {string} [apply-label='Apply'] - The label of the mobile modal's confirm button
|
|
88
|
-
* @prop {string} [cancelLabel
|
|
89
|
-
* @attr {string} [cancel-label
|
|
90
|
-
* @prop {string} [
|
|
91
|
-
* @attr {string} [
|
|
94
|
+
* @prop {string} [cancelLabel] - The label of the mobile modal's cancel button. Defaults to the localized string for the current locale (English: "Cancel")
|
|
95
|
+
* @attr {string} [cancel-label] - The label of the mobile modal's cancel button. Defaults to the localized string for the current locale (English: "Cancel")
|
|
96
|
+
* @prop {string} [clockLabel] - The accessible label of the trailing clock button. Defaults to the localized string for the current locale (English: "Open clock")
|
|
97
|
+
* @attr {string} [clock-label] - The accessible label of the trailing clock button. Defaults to the localized string for the current locale (English: "Open clock")
|
|
92
98
|
* @prop {string} [hourPlaceholder='hh'] - The placeholder shown in the empty hour segment
|
|
93
99
|
* @attr {string} [hour-placeholder='hh'] - The placeholder shown in the empty hour segment
|
|
94
100
|
* @prop {string} [minutePlaceholder='mm'] - The placeholder shown in the empty minute segment
|
|
@@ -114,13 +120,31 @@ const EunomiaTimePickerMixinBase = LocalizableMixin(AnchorPositionMixin(FieldApp
|
|
|
114
120
|
* @cssprop [--time-picker-panel-background] - Sets the background color of the popover panel
|
|
115
121
|
* @cssprop [--time-picker-panel-transition-duration=200ms] - Sets the duration of the popover panel's open and close transition
|
|
116
122
|
* @cssprop [--field-font-size] - Sets the font size of the field's value and placeholder
|
|
123
|
+
* @cssprop [--field-line-height] - Sets the line height of the field's value and placeholder
|
|
117
124
|
* @cssprop [--field-label-font-size] - Sets the font size of the label
|
|
118
125
|
* @cssprop [--field-message-font-size] - Sets the font size of the hint, error messages and instructions
|
|
119
126
|
* @element eun-time-picker
|
|
120
127
|
*/
|
|
121
128
|
let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBase {
|
|
129
|
+
/**
|
|
130
|
+
* The default value applied on connection and form reset. Overrides the
|
|
131
|
+
* `defaultValue` accessor inherited from `FormMixin` only to swap its
|
|
132
|
+
* attribute converter — the mixin's generic one always splits
|
|
133
|
+
* `default-value` on commas, which would silently produce the wrong thing
|
|
134
|
+
* for a `Date` ; matches `eun-date-picker`'s identical override. The
|
|
135
|
+
* actual get/set logic (applying the default when the field resets)
|
|
136
|
+
* still comes from `FormMixin` itself, via `super`.
|
|
137
|
+
* @default-value-format an ISO 8601 date-time string
|
|
138
|
+
*/
|
|
139
|
+
get defaultValue() {
|
|
140
|
+
return super.defaultValue;
|
|
141
|
+
}
|
|
142
|
+
set defaultValue(value) {
|
|
143
|
+
// @ts-expect-error — see comment above ; FormMixin's real setter exists.
|
|
144
|
+
super.defaultValue = value;
|
|
145
|
+
}
|
|
122
146
|
constructor() {
|
|
123
|
-
super(
|
|
147
|
+
super();
|
|
124
148
|
/**
|
|
125
149
|
* The minute column's increment step, and which minute values the mobile
|
|
126
150
|
* wheel enumerates (e.g. `15` only ever shows/lands on `:00`/`:15`/`:30`/
|
|
@@ -168,16 +192,6 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
168
192
|
* @default Apply
|
|
169
193
|
*/
|
|
170
194
|
this.applyLabel = "Apply";
|
|
171
|
-
/**
|
|
172
|
-
* Label of the mobile modal's cancel button.
|
|
173
|
-
* @default Cancel
|
|
174
|
-
*/
|
|
175
|
-
this.cancelLabel = "Cancel";
|
|
176
|
-
/**
|
|
177
|
-
* Accessible label of the trailing clock button.
|
|
178
|
-
* @default Open clock
|
|
179
|
-
*/
|
|
180
|
-
this.ariaLabelClock = "Open clock";
|
|
181
195
|
/**
|
|
182
196
|
* Placeholder shown in the empty hour segment.
|
|
183
197
|
* @default hh
|
|
@@ -199,6 +213,25 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
199
213
|
* @internal
|
|
200
214
|
*/
|
|
201
215
|
this.isOpen = false;
|
|
216
|
+
/**
|
|
217
|
+
* Submits the owning form on Enter in one of the field's segments, as a
|
|
218
|
+
* native time input does, since the browser never does it from a
|
|
219
|
+
* shadow root. Left alone while the panel is open, and on keys a
|
|
220
|
+
* segment already handles, such as Enter toggling the AM/PM segment.
|
|
221
|
+
* @private
|
|
222
|
+
*/
|
|
223
|
+
this.handleImplicitSubmission = (event) => {
|
|
224
|
+
const form = this.internals.form;
|
|
225
|
+
const origin = event.composedPath()[0];
|
|
226
|
+
if (!form ||
|
|
227
|
+
this.isOpen ||
|
|
228
|
+
!(origin instanceof Element && origin.matches(".segment")) ||
|
|
229
|
+
!isImplicitSubmissionKey(event)) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
event.preventDefault();
|
|
233
|
+
submitImplicitly(form);
|
|
234
|
+
};
|
|
202
235
|
/**
|
|
203
236
|
* Whether the mobile modal is open.
|
|
204
237
|
* @internal
|
|
@@ -411,23 +444,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
411
444
|
break;
|
|
412
445
|
}
|
|
413
446
|
};
|
|
414
|
-
|
|
415
|
-
/**
|
|
416
|
-
* The default value applied on connection and form reset. Overrides the
|
|
417
|
-
* `defaultValue` accessor inherited from `FormMixin` only to swap its
|
|
418
|
-
* attribute converter — the mixin's generic one always splits
|
|
419
|
-
* `default-value` on commas, which would silently produce the wrong thing
|
|
420
|
-
* for a `Date` ; matches `eun-date-picker`'s identical override. The
|
|
421
|
-
* actual get/set logic (applying the default when the field resets)
|
|
422
|
-
* still comes from `FormMixin` itself, via `super`.
|
|
423
|
-
* @default-value-format an ISO 8601 date-time string
|
|
424
|
-
*/
|
|
425
|
-
get defaultValue() {
|
|
426
|
-
return super.defaultValue;
|
|
427
|
-
}
|
|
428
|
-
set defaultValue(value) {
|
|
429
|
-
// @ts-expect-error — see comment above ; FormMixin's real setter exists.
|
|
430
|
-
super.defaultValue = value;
|
|
447
|
+
this.addEventListener("keydown", this.handleImplicitSubmission);
|
|
431
448
|
}
|
|
432
449
|
/**
|
|
433
450
|
* Lifecycle hook called before an update, ahead of render. Keeps the
|
|
@@ -482,6 +499,14 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
482
499
|
this.setAttribute("aria-invalid", String(this.showError));
|
|
483
500
|
}
|
|
484
501
|
}
|
|
502
|
+
/**
|
|
503
|
+
* The host is never a tab stop of its own : sequential navigation goes
|
|
504
|
+
* straight to the controls inside, in both directions, and
|
|
505
|
+
* {@link focus} covers a direct call on the host.
|
|
506
|
+
*/
|
|
507
|
+
get hostTabStop() {
|
|
508
|
+
return false;
|
|
509
|
+
}
|
|
485
510
|
/**
|
|
486
511
|
* Returns the first segment element to focus/anchor on validation errors.
|
|
487
512
|
*
|
|
@@ -905,7 +930,8 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
905
930
|
<div
|
|
906
931
|
class="segment-group"
|
|
907
932
|
role="group"
|
|
908
|
-
aria-label=${this.label ??
|
|
933
|
+
aria-label=${this.label ?? this.dictionary.timePicker.time}
|
|
934
|
+
aria-describedby=${this.description?.length ? "description" : nothing}
|
|
909
935
|
>
|
|
910
936
|
${order.map((kind, index) => {
|
|
911
937
|
const previous = order[index - 1];
|
|
@@ -924,13 +950,13 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
924
950
|
<button
|
|
925
951
|
type="button"
|
|
926
952
|
id="clock-trigger"
|
|
927
|
-
aria-label=${this.
|
|
953
|
+
aria-label=${this.clockLabel ?? this.dictionary.timePicker.openClock}
|
|
928
954
|
aria-haspopup=${this.panelMode === "list" ? "listbox" : "dialog"}
|
|
929
955
|
aria-expanded=${this.isOpen || this.isModalOpen ? "true" : "false"}
|
|
930
956
|
?disabled=${this.disabled}
|
|
931
957
|
@click=${this.handleTriggerClick}
|
|
932
958
|
>
|
|
933
|
-
<eun-icon name="access_time"
|
|
959
|
+
<eun-icon name="access_time"></eun-icon>
|
|
934
960
|
</button>
|
|
935
961
|
</div>
|
|
936
962
|
`;
|
|
@@ -1035,7 +1061,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
1035
1061
|
?open=${this.isModalOpen}
|
|
1036
1062
|
.closeable=${false}
|
|
1037
1063
|
confirm-label=${this.applyLabel}
|
|
1038
|
-
cancel-label=${this.cancelLabel}
|
|
1064
|
+
cancel-label=${this.cancelLabel ?? this.dictionary.common.cancel}
|
|
1039
1065
|
aria-label=${this.label ?? this.dictionary.timePicker.selectATime}
|
|
1040
1066
|
@eunconfirm=${this.handleModalConfirm}
|
|
1041
1067
|
@euncancel=${this.handleModalCancel}
|
|
@@ -1053,7 +1079,7 @@ let EunomiaTimePicker = class EunomiaTimePicker extends EunomiaTimePickerMixinBa
|
|
|
1053
1079
|
id="cancel"
|
|
1054
1080
|
@click=${() => this.modalEl?.cancel()}
|
|
1055
1081
|
>
|
|
1056
|
-
${this.cancelLabel}
|
|
1082
|
+
${this.cancelLabel ?? this.dictionary.common.cancel}
|
|
1057
1083
|
</eun-button>
|
|
1058
1084
|
<eun-button id="confirm" @click=${() => this.modalEl?.confirm()}>
|
|
1059
1085
|
${this.applyLabel}
|
|
@@ -1113,8 +1139,8 @@ __decorate([
|
|
|
1113
1139
|
property({ attribute: "cancel-label" })
|
|
1114
1140
|
], EunomiaTimePicker.prototype, "cancelLabel", void 0);
|
|
1115
1141
|
__decorate([
|
|
1116
|
-
property({ attribute: "
|
|
1117
|
-
], EunomiaTimePicker.prototype, "
|
|
1142
|
+
property({ attribute: "clock-label" })
|
|
1143
|
+
], EunomiaTimePicker.prototype, "clockLabel", void 0);
|
|
1118
1144
|
__decorate([
|
|
1119
1145
|
property({ attribute: "hour-placeholder" })
|
|
1120
1146
|
], EunomiaTimePicker.prototype, "hourPlaceholder", void 0);
|
|
@@ -18,15 +18,15 @@ const timePicker = css `
|
|
|
18
18
|
display: flex;
|
|
19
19
|
align-items: center;
|
|
20
20
|
gap: var(--eun-space-xs, 4px);
|
|
21
|
-
width: 100%;
|
|
22
21
|
color: var(--_textColor);
|
|
23
22
|
background-color: var(--_background);
|
|
24
23
|
border: var(--eun-border-width-m, 1.5px) solid var(--_borderColor);
|
|
25
24
|
border-radius: var(--_borderRadius);
|
|
26
|
-
padding: var(--
|
|
27
|
-
var(--
|
|
25
|
+
padding: var(--_paddingBlock) calc(var(--_defaultPaddingInline) / 2)
|
|
26
|
+
var(--_paddingBlock) var(--_defaultPaddingInline);
|
|
28
27
|
outline: 1px solid transparent;
|
|
29
|
-
box-sizing:
|
|
28
|
+
box-sizing: content-box;
|
|
29
|
+
height: var(--_lineHeight);
|
|
30
30
|
transition:
|
|
31
31
|
border-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease),
|
|
32
32
|
outline-color var(--eun-duration-s, 150ms) var(--eun-easing-default, ease);
|
|
@@ -81,9 +81,10 @@ const timePicker = css `
|
|
|
81
81
|
box-sizing: content-box;
|
|
82
82
|
border: none;
|
|
83
83
|
background: none;
|
|
84
|
-
padding:
|
|
84
|
+
padding: 0 1px;
|
|
85
85
|
color: inherit;
|
|
86
86
|
font: inherit;
|
|
87
|
+
line-height: var(--_lineHeight);
|
|
87
88
|
text-align: center;
|
|
88
89
|
outline: none;
|
|
89
90
|
overflow: visible;
|
|
@@ -109,6 +110,7 @@ const timePicker = css `
|
|
|
109
110
|
padding-inline: 2px;
|
|
110
111
|
}
|
|
111
112
|
#clock-trigger {
|
|
113
|
+
--icon-size: min(16px, var(--_lineHeight));
|
|
112
114
|
display: flex;
|
|
113
115
|
align-items: center;
|
|
114
116
|
justify-content: center;
|
|
@@ -8,6 +8,7 @@ import { customElement, property } from "lit/decorators.js";
|
|
|
8
8
|
import { html, LitElement, nothing } from "lit";
|
|
9
9
|
import { animateStyles } from "./animate.styles.js";
|
|
10
10
|
import { mediaBelow } from "../../../breakpoints.js";
|
|
11
|
+
import { defaultTrueConverter } from "../../../utils/boolean.utils.js";
|
|
11
12
|
/**
|
|
12
13
|
* Tag name of the animate component.
|
|
13
14
|
*/
|
|
@@ -194,7 +195,7 @@ let EunomiaAnimate = class EunomiaAnimate extends LitElement {
|
|
|
194
195
|
*/
|
|
195
196
|
EunomiaAnimate.styles = animateStyles;
|
|
196
197
|
__decorate([
|
|
197
|
-
property({ reflect: true })
|
|
198
|
+
property({ reflect: true, useDefault: true })
|
|
198
199
|
], EunomiaAnimate.prototype, "animation", void 0);
|
|
199
200
|
__decorate([
|
|
200
201
|
property({ type: Number })
|
|
@@ -209,7 +210,7 @@ __decorate([
|
|
|
209
210
|
property({ type: Number, attribute: "mobile-delay" })
|
|
210
211
|
], EunomiaAnimate.prototype, "mobileDelay", void 0);
|
|
211
212
|
__decorate([
|
|
212
|
-
property({
|
|
213
|
+
property({ converter: defaultTrueConverter })
|
|
213
214
|
], EunomiaAnimate.prototype, "once", void 0);
|
|
214
215
|
__decorate([
|
|
215
216
|
property({ type: Number })
|
|
@@ -20,11 +20,11 @@ const base = css `
|
|
|
20
20
|
transition-property: none;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
:host([animation="fade"]) {
|
|
23
|
+
:host(:is([animation="fade"], :not([animation]))) {
|
|
24
24
|
opacity: 0;
|
|
25
25
|
transition-property: opacity;
|
|
26
26
|
}
|
|
27
|
-
:host([animation="fade"][in-view]) {
|
|
27
|
+
:host(:is([animation="fade"], :not([animation]))[in-view]) {
|
|
28
28
|
opacity: 1;
|
|
29
29
|
}
|
|
30
30
|
|
|
@@ -64,7 +64,7 @@ let EunomiaDivider = class EunomiaDivider extends LitElement {
|
|
|
64
64
|
*/
|
|
65
65
|
EunomiaDivider.styles = dividerStyles;
|
|
66
66
|
__decorate([
|
|
67
|
-
property({ reflect: true })
|
|
67
|
+
property({ reflect: true, useDefault: true })
|
|
68
68
|
], EunomiaDivider.prototype, "orientation", void 0);
|
|
69
69
|
EunomiaDivider = __decorate([
|
|
70
70
|
customElement(EunomiaDividerTagName)
|
|
@@ -170,7 +170,7 @@ __decorate([
|
|
|
170
170
|
property()
|
|
171
171
|
], EunomiaLoader.prototype, "label", void 0);
|
|
172
172
|
__decorate([
|
|
173
|
-
property({ reflect: true })
|
|
173
|
+
property({ reflect: true, useDefault: true })
|
|
174
174
|
], EunomiaLoader.prototype, "variant", void 0);
|
|
175
175
|
__decorate([
|
|
176
176
|
property({ hasChanged: () => false })
|
|
@@ -182,7 +182,7 @@ __decorate([
|
|
|
182
182
|
property({ type: Boolean, reflect: true })
|
|
183
183
|
], EunomiaLoader.prototype, "sticky", void 0);
|
|
184
184
|
__decorate([
|
|
185
|
-
property({ attribute: "sticky-position", reflect: true })
|
|
185
|
+
property({ attribute: "sticky-position", reflect: true, useDefault: true })
|
|
186
186
|
], EunomiaLoader.prototype, "stickyPosition", void 0);
|
|
187
187
|
EunomiaLoader = __decorate([
|
|
188
188
|
customElement(EunomiaLoaderTagName)
|
|
@@ -19,9 +19,9 @@ const base = css `
|
|
|
19
19
|
font-size: var(--_size);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
:host([variant="dots"]) span,
|
|
23
|
-
:host([variant="dots"]) span::before,
|
|
24
|
-
:host([variant="dots"]) span::after {
|
|
22
|
+
:host(:is([variant="dots"], :not([variant]))) span,
|
|
23
|
+
:host(:is([variant="dots"], :not([variant]))) span::before,
|
|
24
|
+
:host(:is([variant="dots"], :not([variant]))) span::after {
|
|
25
25
|
border-radius: 50%;
|
|
26
26
|
width: 0.5em;
|
|
27
27
|
height: 0.5em;
|
|
@@ -30,22 +30,22 @@ const base = css `
|
|
|
30
30
|
animation: eun-loader-fade 1.4s infinite ease-in-out;
|
|
31
31
|
animation-fill-mode: both;
|
|
32
32
|
}
|
|
33
|
-
:host([variant="dots"]) span {
|
|
33
|
+
:host(:is([variant="dots"], :not([variant]))) span {
|
|
34
34
|
position: relative;
|
|
35
35
|
margin: 0 0.75em;
|
|
36
36
|
animation-delay: -0.16s;
|
|
37
37
|
}
|
|
38
|
-
:host([variant="dots"]) span::before,
|
|
39
|
-
:host([variant="dots"]) span::after {
|
|
38
|
+
:host(:is([variant="dots"], :not([variant]))) span::before,
|
|
39
|
+
:host(:is([variant="dots"], :not([variant]))) span::after {
|
|
40
40
|
content: "";
|
|
41
41
|
position: absolute;
|
|
42
42
|
top: 0;
|
|
43
43
|
}
|
|
44
|
-
:host([variant="dots"]) span::before {
|
|
44
|
+
:host(:is([variant="dots"], :not([variant]))) span::before {
|
|
45
45
|
left: -0.75em;
|
|
46
46
|
animation-delay: -0.32s;
|
|
47
47
|
}
|
|
48
|
-
:host([variant="dots"]) span::after {
|
|
48
|
+
:host(:is([variant="dots"], :not([variant]))) span::after {
|
|
49
49
|
left: 0.75em;
|
|
50
50
|
}
|
|
51
51
|
@keyframes eun-loader-fade {
|
|
@@ -77,9 +77,9 @@ const base = css `
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
@media (prefers-reduced-motion: reduce) {
|
|
80
|
-
:host([variant="dots"]) span,
|
|
81
|
-
:host([variant="dots"]) span::before,
|
|
82
|
-
:host([variant="dots"]) span::after {
|
|
80
|
+
:host(:is([variant="dots"], :not([variant]))) span,
|
|
81
|
+
:host(:is([variant="dots"], :not([variant]))) span::before,
|
|
82
|
+
:host(:is([variant="dots"], :not([variant]))) span::after {
|
|
83
83
|
animation-duration: 2.8s;
|
|
84
84
|
}
|
|
85
85
|
:host([variant="spinner"]) span {
|
|
@@ -140,7 +140,9 @@ const bar = css `
|
|
|
140
140
|
z-index: var(--loader-bar-z-index, 10);
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
:host(
|
|
143
|
+
:host(
|
|
144
|
+
[variant="bar"][sticky]:is([sticky-position="top"], :not([sticky-position]))
|
|
145
|
+
) {
|
|
144
146
|
top: var(--loader-bar-sticky-offset, 0);
|
|
145
147
|
}
|
|
146
148
|
|
|
@@ -82,7 +82,7 @@ let EunomiaSkeleton = class EunomiaSkeleton extends LitElement {
|
|
|
82
82
|
*/
|
|
83
83
|
EunomiaSkeleton.styles = skeletonStyles;
|
|
84
84
|
__decorate([
|
|
85
|
-
property({ reflect: true })
|
|
85
|
+
property({ reflect: true, useDefault: true })
|
|
86
86
|
], EunomiaSkeleton.prototype, "variant", void 0);
|
|
87
87
|
__decorate([
|
|
88
88
|
property()
|
|
@@ -64,10 +64,10 @@ declare const EunomiaCarousel_base: import("../../../utils/constructor.type.js")
|
|
|
64
64
|
* @prop {boolean} [showArrows=true] - Shows the previous and next buttons
|
|
65
65
|
* @prop {boolean} [showDots=true] - Shows the pagination dots
|
|
66
66
|
* @attr {string} aria-label - The accessible name for the carousel region. Defaults to Carousel, and is recommended whenever a page has more than one carousel, or its purpose isn't already clear from a preceding heading
|
|
67
|
-
* @prop {string} [
|
|
68
|
-
* @attr {string} [
|
|
69
|
-
* @prop {string} [
|
|
70
|
-
* @attr {string} [
|
|
67
|
+
* @prop {string} [previousLabel] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous slide")
|
|
68
|
+
* @attr {string} [previous-label] - The accessible label of the previous control. Defaults to the localized string for the current locale (English: "Previous slide")
|
|
69
|
+
* @prop {string} [nextLabel] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next slide")
|
|
70
|
+
* @attr {string} [next-label] - The accessible label of the next control. Defaults to the localized string for the current locale (English: "Next slide")
|
|
71
71
|
* @fires {SlideChangeEvent} eunslidechange - Fired once the active slide settles on a new index
|
|
72
72
|
* @cssprop [--carousel-visible-slides] - Sets how many slides are shown at once, overriding visibleSlides. Meant to be changed from your own media or container queries, so the slide count follows the available space without any script
|
|
73
73
|
* @cssprop [--carousel-scroll-step] - Sets how many slides a previous, next, or dot click advances by, overriding scrollStep. Read again whenever the carousel resizes
|
|
@@ -170,8 +170,7 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
|
|
|
170
170
|
* Fades the viewport's edges to hint there's more to scroll — hidden
|
|
171
171
|
* automatically on whichever side is already at its scroll bound (never
|
|
172
172
|
* shown on the left at the very start, or the right at the very end).
|
|
173
|
-
* On by default ;
|
|
174
|
-
* Examples tab for the boolean-attribute caveat that applies here too).
|
|
173
|
+
* On by default ; `edge-fade="false"` turns it off.
|
|
175
174
|
* @default true
|
|
176
175
|
*/
|
|
177
176
|
edgeFade: boolean;
|
|
@@ -210,13 +209,13 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
|
|
|
210
209
|
* dictionary when unset, so it follows `locale` automatically.
|
|
211
210
|
* @default {i18n:carousel.previous}
|
|
212
211
|
*/
|
|
213
|
-
|
|
212
|
+
previousLabel?: string;
|
|
214
213
|
/**
|
|
215
214
|
* Accessible label of the Next control. Resolved from the locale
|
|
216
215
|
* dictionary when unset, so it follows `locale` automatically.
|
|
217
216
|
* @default {i18n:carousel.next}
|
|
218
217
|
*/
|
|
219
|
-
|
|
218
|
+
nextLabel?: string;
|
|
220
219
|
/**
|
|
221
220
|
* Index of the currently active slide (see {@link ACTIVE_SLIDE_CLASS}).
|
|
222
221
|
* @internal
|
|
@@ -369,6 +368,29 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
|
|
|
369
368
|
* @private
|
|
370
369
|
*/
|
|
371
370
|
private getTrackInset;
|
|
371
|
+
/**
|
|
372
|
+
* Whether the track lays out right to left. Slides then start from the
|
|
373
|
+
* track's right edge and `scrollLeft` runs from `0` down to negative
|
|
374
|
+
* values, so every scroll measurement goes through the logical helpers
|
|
375
|
+
* below instead of reading `left`/`scrollLeft` directly.
|
|
376
|
+
* @private
|
|
377
|
+
*/
|
|
378
|
+
private isRtl;
|
|
379
|
+
/**
|
|
380
|
+
* How far the track has scrolled from its inline start, always positive
|
|
381
|
+
* whatever the direction.
|
|
382
|
+
* @private
|
|
383
|
+
*/
|
|
384
|
+
private getScrollProgress;
|
|
385
|
+
/**
|
|
386
|
+
* Distance from the track's inline-start edge to a rect's own
|
|
387
|
+
* inline-start edge (`left` in LTR, `right` in RTL), positive toward the
|
|
388
|
+
* end of the track.
|
|
389
|
+
* @param rect the measured element's rect.
|
|
390
|
+
* @param trackRect the track's own rect.
|
|
391
|
+
* @private
|
|
392
|
+
*/
|
|
393
|
+
private getInlineStartOffset;
|
|
372
394
|
/**
|
|
373
395
|
* The highest valid slide index a page can start on, without leaving
|
|
374
396
|
* empty space at the end of the track. Measured from the slides' actual
|
|
@@ -563,7 +585,8 @@ export declare class EunomiaCarousel extends EunomiaCarousel_base {
|
|
|
563
585
|
private updateFromScrollPosition;
|
|
564
586
|
/**
|
|
565
587
|
* Handles keyboard navigation on the track : arrow keys page by
|
|
566
|
-
* `scrollStep`, Home/End jump to the bounds.
|
|
588
|
+
* `scrollStep`, Home/End jump to the bounds. Right to left, the arrows
|
|
589
|
+
* swap so each one still moves toward the side it points to.
|
|
567
590
|
*
|
|
568
591
|
* @param event the native keyboard event.
|
|
569
592
|
* @private
|