@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
|
@@ -21,6 +21,7 @@ import { ChangeEvent } from "../events/change.event.js";
|
|
|
21
21
|
export const ERROR_DISPLAY_PROPERTIES = [
|
|
22
22
|
"valid",
|
|
23
23
|
"hideError",
|
|
24
|
+
"invalid",
|
|
24
25
|
"disabled",
|
|
25
26
|
"touched",
|
|
26
27
|
"dirty",
|
|
@@ -46,6 +47,13 @@ export const FormMixin = (superClass) => {
|
|
|
46
47
|
* @default false
|
|
47
48
|
*/
|
|
48
49
|
this.hideError = false;
|
|
50
|
+
/**
|
|
51
|
+
* When true, the field is shown as invalid (error styling and
|
|
52
|
+
* `aria-invalid`) without any message, for an error whose message is
|
|
53
|
+
* displayed elsewhere. Does not change the field's validity.
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
this.invalid = false;
|
|
49
57
|
/**
|
|
50
58
|
* Whether this field behaves like a checkbox/radio (checkable).
|
|
51
59
|
* @default false
|
|
@@ -99,6 +107,25 @@ export const FormMixin = (superClass) => {
|
|
|
99
107
|
* @default false
|
|
100
108
|
*/
|
|
101
109
|
this.controlled = false;
|
|
110
|
+
/**
|
|
111
|
+
* Whether the hint or error is exposed through the host's own
|
|
112
|
+
* `aria-description`, for a component whose host is the control itself
|
|
113
|
+
* (a checkbox, a radio, a switch). The rendered message is then hidden
|
|
114
|
+
* from assistive technology, so it isn't read again as part of the
|
|
115
|
+
* control's name, which is computed from the host's content.
|
|
116
|
+
* @default false
|
|
117
|
+
* @internal
|
|
118
|
+
*/
|
|
119
|
+
this.descriptionOnHost = false;
|
|
120
|
+
/**
|
|
121
|
+
* Whether a change alone reveals the error, without waiting for focus
|
|
122
|
+
* to leave the field, for a field whose every change is a complete
|
|
123
|
+
* choice (a checkbox, a radio, a select) rather than an entry still
|
|
124
|
+
* being typed.
|
|
125
|
+
* @default false
|
|
126
|
+
* @internal
|
|
127
|
+
*/
|
|
128
|
+
this.errorOnChange = false;
|
|
102
129
|
/**
|
|
103
130
|
* Marks the field dirty on its own `eunchange` — dispatched only from a
|
|
104
131
|
* genuine user-interaction handler, never from the `value`/`checked`
|
|
@@ -130,16 +157,29 @@ export const FormMixin = (superClass) => {
|
|
|
130
157
|
}
|
|
131
158
|
}
|
|
132
159
|
/**
|
|
133
|
-
* Whether the field currently shows its error
|
|
134
|
-
* not
|
|
135
|
-
*
|
|
136
|
-
* left empty stays quiet until then.
|
|
160
|
+
* Whether the field currently shows its error state (styling and
|
|
161
|
+
* `aria-invalid`): not disabled, and either forced by {@link invalid} or
|
|
162
|
+
* showing its error messages.
|
|
137
163
|
*/
|
|
138
164
|
get showError() {
|
|
165
|
+
return (this.invalid && !this.disabled) || this.showErrorMessages;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Whether the field currently shows its error messages : invalid, not
|
|
169
|
+
* disabled, not `hideError`, and either left once (`touched`), changed
|
|
170
|
+
* while {@link errorOnChange} is set (`dirty`), checked by its form, or
|
|
171
|
+
* given an external `error`. Typing alone never reveals an error, so an
|
|
172
|
+
* unfinished entry isn't reported as invalid; once shown, the error
|
|
173
|
+
* follows the value live.
|
|
174
|
+
*/
|
|
175
|
+
get showErrorMessages() {
|
|
139
176
|
return (!this.valid &&
|
|
140
177
|
!this.hideError &&
|
|
141
178
|
!this.disabled &&
|
|
142
|
-
(this.touched ||
|
|
179
|
+
(this.touched ||
|
|
180
|
+
(this.dirty && this.errorOnChange) ||
|
|
181
|
+
this.validationRequested ||
|
|
182
|
+
!!this.error));
|
|
143
183
|
}
|
|
144
184
|
/**
|
|
145
185
|
* Whether the value hasn't changed since the field connected (or since
|
|
@@ -198,13 +238,13 @@ export const FormMixin = (superClass) => {
|
|
|
198
238
|
this.setFormValue(value);
|
|
199
239
|
}
|
|
200
240
|
/**
|
|
201
|
-
* Gets the validation errors while {@link
|
|
202
|
-
* otherwise.
|
|
241
|
+
* Gets the validation errors while {@link showErrorMessages} is true, the
|
|
242
|
+
* hint otherwise.
|
|
203
243
|
*
|
|
204
244
|
* @returns Error message string, array of messages, or the hint.
|
|
205
245
|
*/
|
|
206
246
|
get description() {
|
|
207
|
-
if (!this.
|
|
247
|
+
if (!this.showErrorMessages) {
|
|
208
248
|
return this.hint;
|
|
209
249
|
}
|
|
210
250
|
if (this.errorMessages.length) {
|
|
@@ -282,6 +322,29 @@ export const FormMixin = (superClass) => {
|
|
|
282
322
|
}
|
|
283
323
|
super.willUpdate(changedProperties);
|
|
284
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* LitElement lifecycle method called after update. Mirrors the hint or
|
|
327
|
+
* error onto the host's `aria-description` while
|
|
328
|
+
* {@link descriptionOnHost} is set.
|
|
329
|
+
*
|
|
330
|
+
* @param changedProperties - Map of changed properties and their old values.
|
|
331
|
+
*/
|
|
332
|
+
updated(changedProperties) {
|
|
333
|
+
super.updated(changedProperties);
|
|
334
|
+
if (!this.descriptionOnHost) {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
const { description } = this;
|
|
338
|
+
const text = Array.isArray(description)
|
|
339
|
+
? description.join(" ")
|
|
340
|
+
: description;
|
|
341
|
+
if (text) {
|
|
342
|
+
this.setAttribute("aria-description", text);
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
this.removeAttribute("aria-description");
|
|
346
|
+
}
|
|
347
|
+
}
|
|
285
348
|
/**
|
|
286
349
|
* Syncs the field value with the form submission internals.
|
|
287
350
|
* If disabled or unchecked (for checkable), sets empty form data.
|
|
@@ -351,8 +414,8 @@ export const FormMixin = (superClass) => {
|
|
|
351
414
|
return this.renderError();
|
|
352
415
|
}
|
|
353
416
|
/**
|
|
354
|
-
* Renders the error messages while {@link
|
|
355
|
-
* otherwise.
|
|
417
|
+
* Renders the error messages while {@link showErrorMessages} is true, the
|
|
418
|
+
* hint otherwise.
|
|
356
419
|
*
|
|
357
420
|
* @returns Template result with error messages, hint or nothing.
|
|
358
421
|
*/
|
|
@@ -361,15 +424,23 @@ export const FormMixin = (superClass) => {
|
|
|
361
424
|
if (!description?.length) {
|
|
362
425
|
return nothing;
|
|
363
426
|
}
|
|
364
|
-
if (!this.
|
|
427
|
+
if (!this.showErrorMessages) {
|
|
365
428
|
return html `
|
|
366
|
-
<p
|
|
429
|
+
<p
|
|
430
|
+
id="description"
|
|
431
|
+
class="hint-messages"
|
|
432
|
+
aria-hidden=${this.descriptionOnHost ? "true" : nothing}
|
|
433
|
+
>
|
|
367
434
|
<span>${description}</span>
|
|
368
435
|
</p>
|
|
369
436
|
`;
|
|
370
437
|
}
|
|
371
438
|
return html `
|
|
372
|
-
<p
|
|
439
|
+
<p
|
|
440
|
+
id="description"
|
|
441
|
+
class="error-messages"
|
|
442
|
+
aria-hidden=${this.descriptionOnHost ? "true" : nothing}
|
|
443
|
+
>
|
|
373
444
|
${when(Array.isArray(description), () => description.map((msg) => html `<span>${msg}</span>`), () => html `<span>${description}</span>`)}
|
|
374
445
|
</p>
|
|
375
446
|
`;
|
|
@@ -386,6 +457,9 @@ export const FormMixin = (superClass) => {
|
|
|
386
457
|
__decorate([
|
|
387
458
|
property({ type: Boolean, attribute: "hide-error" })
|
|
388
459
|
], FormMixinClass.prototype, "hideError", void 0);
|
|
460
|
+
__decorate([
|
|
461
|
+
property({ type: Boolean })
|
|
462
|
+
], FormMixinClass.prototype, "invalid", void 0);
|
|
389
463
|
__decorate([
|
|
390
464
|
state()
|
|
391
465
|
], FormMixinClass.prototype, "valueState", void 0);
|
|
@@ -14,7 +14,7 @@ export declare class LocalizableMixinInterface {
|
|
|
14
14
|
* it: user-facing strings with no dedicated override property at all
|
|
15
15
|
* (navigation button labels, ARIA group names, and the like), and
|
|
16
16
|
* strings that *do* have their own override property (e.g. `eun-chip`'s
|
|
17
|
-
* `
|
|
17
|
+
* `removeLabel`) but fall back to `this.dictionary` — instead of a
|
|
18
18
|
* hardcoded English literal — when that property is left unset, so the
|
|
19
19
|
* default follows `locale` while an explicit override still wins.
|
|
20
20
|
*
|
|
@@ -12,7 +12,7 @@ import { dictionaries, getDefaultLocale } from "../i18n/index.js";
|
|
|
12
12
|
* it: user-facing strings with no dedicated override property at all
|
|
13
13
|
* (navigation button labels, ARIA group names, and the like), and
|
|
14
14
|
* strings that *do* have their own override property (e.g. `eun-chip`'s
|
|
15
|
-
* `
|
|
15
|
+
* `removeLabel`) but fall back to `this.dictionary` — instead of a
|
|
16
16
|
* hardcoded English literal — when that property is left unset, so the
|
|
17
17
|
* default follows `locale` while an explicit override still wins.
|
|
18
18
|
*
|
|
@@ -37,6 +37,17 @@ export const RadioMixin = (superClass) => {
|
|
|
37
37
|
* @default true
|
|
38
38
|
*/
|
|
39
39
|
this.checkable = true;
|
|
40
|
+
/**
|
|
41
|
+
* The host is the control, so its hint or error goes on its own
|
|
42
|
+
* `aria-description`.
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
this.descriptionOnHost = true;
|
|
46
|
+
/**
|
|
47
|
+
* Every change is a complete choice, so its error shows right away.
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
this.errorOnChange = true;
|
|
40
51
|
/**
|
|
41
52
|
* Overrides `ValidatorsMixin`'s own `required` check, which validates
|
|
42
53
|
* emptiness of `this.value` — meaningless here, since a radio's `value`
|
|
@@ -124,7 +135,6 @@ export const RadioMixin = (superClass) => {
|
|
|
124
135
|
* - Prevents propagation.
|
|
125
136
|
* - Ignores action if `disabled` or `readonly`.
|
|
126
137
|
* - Sets `checked` to `true` ; never unchecks (see the class doc).
|
|
127
|
-
* - Updates ARIA attributes (`aria-description`).
|
|
128
138
|
* - Dispatches a custom `ChangeEvent`.
|
|
129
139
|
*
|
|
130
140
|
* @param event The triggered mouse or keyboard event
|
|
@@ -141,15 +151,6 @@ export const RadioMixin = (superClass) => {
|
|
|
141
151
|
this.checked = true;
|
|
142
152
|
this.updateInternals();
|
|
143
153
|
this.checkValidity(this.checked);
|
|
144
|
-
if (this.description) {
|
|
145
|
-
const attribute = this.description instanceof Array
|
|
146
|
-
? this.description.join(",")
|
|
147
|
-
: this.description;
|
|
148
|
-
this.setAttribute("aria-description", attribute);
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
this.removeAttribute("aria-description");
|
|
152
|
-
}
|
|
153
154
|
this.dispatchEvent(new ChangeEvent(this.checked));
|
|
154
155
|
}
|
|
155
156
|
/**
|
|
@@ -10,7 +10,8 @@ export declare class ReadonlyMixinInterface {
|
|
|
10
10
|
* A mixin that adds a `readonly` property to a LitElement component.
|
|
11
11
|
*
|
|
12
12
|
* When the `readonly` state changes, it automatically updates the `aria-readonly` attribute
|
|
13
|
-
* for accessibility compliance.
|
|
13
|
+
* for accessibility compliance. The attribute is only present while readonly, so an SSR
|
|
14
|
+
* framework hydrating a non-readonly field doesn't see an attribute it never rendered.
|
|
14
15
|
*
|
|
15
16
|
* @param superClass - The base LitElement class to extend.
|
|
16
17
|
* @returns A class extending the base class with `readonly` functionality.
|
|
@@ -9,7 +9,8 @@ import { property } from "lit/decorators.js";
|
|
|
9
9
|
* A mixin that adds a `readonly` property to a LitElement component.
|
|
10
10
|
*
|
|
11
11
|
* When the `readonly` state changes, it automatically updates the `aria-readonly` attribute
|
|
12
|
-
* for accessibility compliance.
|
|
12
|
+
* for accessibility compliance. The attribute is only present while readonly, so an SSR
|
|
13
|
+
* framework hydrating a non-readonly field doesn't see an attribute it never rendered.
|
|
13
14
|
*
|
|
14
15
|
* @param superClass - The base LitElement class to extend.
|
|
15
16
|
* @returns A class extending the base class with `readonly` functionality.
|
|
@@ -28,12 +29,18 @@ export const ReadonlyMixin = (superClass) => {
|
|
|
28
29
|
* LitElement lifecycle method.
|
|
29
30
|
* Called when reactive properties are updated.
|
|
30
31
|
*
|
|
31
|
-
* Updates `aria-readonly` whenever `readonly` changes.
|
|
32
|
+
* Updates `aria-readonly` whenever `readonly` changes. Removed rather
|
|
33
|
+
* than set to "false", which means the same.
|
|
32
34
|
*/
|
|
33
35
|
updated(_changedProperties) {
|
|
34
36
|
super.updated(_changedProperties);
|
|
35
37
|
if (_changedProperties.has("readonly")) {
|
|
36
|
-
|
|
38
|
+
if (this.readonly) {
|
|
39
|
+
this.setAttribute("aria-readonly", "true");
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.removeAttribute("aria-readonly");
|
|
43
|
+
}
|
|
37
44
|
}
|
|
38
45
|
}
|
|
39
46
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import { Constructor } from "../utils/constructor.type.js";
|
|
3
|
+
/**
|
|
4
|
+
* Interface defining the contract for components using RoundedMixin.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RoundedMixinInterface {
|
|
7
|
+
rounded?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A mixin that adds a `rounded` property to a single-line control, the same
|
|
11
|
+
* as `eun-button`'s own : set, the control takes a pill shape through the
|
|
12
|
+
* `--eun-border-radius-xl` token, without reaching for its own radius
|
|
13
|
+
* custom property. That custom property still wins over it when set.
|
|
14
|
+
*
|
|
15
|
+
* @param superClass - The base class to extend.
|
|
16
|
+
* @returns A new class extending the base with `rounded` behavior.
|
|
17
|
+
*/
|
|
18
|
+
export declare const RoundedMixin: <T extends Constructor<LitElement>>(superClass: T) => Constructor<RoundedMixinInterface> & T;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { property } from "lit/decorators.js";
|
|
8
|
+
/**
|
|
9
|
+
* A mixin that adds a `rounded` property to a single-line control, the same
|
|
10
|
+
* as `eun-button`'s own : set, the control takes a pill shape through the
|
|
11
|
+
* `--eun-border-radius-xl` token, without reaching for its own radius
|
|
12
|
+
* custom property. That custom property still wins over it when set.
|
|
13
|
+
*
|
|
14
|
+
* @param superClass - The base class to extend.
|
|
15
|
+
* @returns A new class extending the base with `rounded` behavior.
|
|
16
|
+
*/
|
|
17
|
+
export const RoundedMixin = (superClass) => {
|
|
18
|
+
class RoundedMixinClass extends superClass {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
/**
|
|
22
|
+
* Whether the control is fully rounded, as a pill.
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
this.rounded = false;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
__decorate([
|
|
29
|
+
property({ type: Boolean, reflect: true })
|
|
30
|
+
], RoundedMixinClass.prototype, "rounded", void 0);
|
|
31
|
+
return RoundedMixinClass;
|
|
32
|
+
};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
eun-alert:not(:defined) {
|
|
2
|
+
--_background: var(--eun-surface-sunken, #f7f8fa);
|
|
3
|
+
--_backgroundFilled: var(--_background);
|
|
4
|
+
--_borderColor: var(--eun-color-grey-300, #dee0e7);
|
|
5
|
+
--_titleColor: var(--eun-text-color, #071621);
|
|
6
|
+
--_bw: var(--alert-border-width, var(--eun-border-width-s, 1px));
|
|
7
|
+
--_frame: transparent;
|
|
8
|
+
--_textColumn: 2;
|
|
9
|
+
--_contentColor: var(--alert-content-color, var(--eun-text-color, #071621));
|
|
10
|
+
--_headingColor: var(--alert-color, var(--_titleColor));
|
|
11
|
+
display: grid;
|
|
12
|
+
grid-template-columns: auto 1fr;
|
|
13
|
+
align-items: start;
|
|
14
|
+
column-gap: var(--alert-gap, var(--eun-space-m, 16px));
|
|
15
|
+
row-gap: var(--alert-row-gap, var(--eun-space-s, 8px));
|
|
16
|
+
box-sizing: border-box;
|
|
17
|
+
width: 100%;
|
|
18
|
+
border: var(--_bw) solid var(--alert-border-color, var(--_frame));
|
|
19
|
+
padding: var(
|
|
20
|
+
--alert-padding,
|
|
21
|
+
var(
|
|
22
|
+
--alert-padding-block,
|
|
23
|
+
max(0px, calc(var(--eun-space-m, 16px) - var(--_bw)))
|
|
24
|
+
)
|
|
25
|
+
var(
|
|
26
|
+
--alert-padding-inline,
|
|
27
|
+
max(0px, calc(var(--eun-space-m, 16px) - var(--_bw)))
|
|
28
|
+
)
|
|
29
|
+
);
|
|
30
|
+
border-radius: var(--alert-border-radius, var(--eun-border-radius-m, 8px));
|
|
31
|
+
background: linear-gradient(
|
|
32
|
+
to right,
|
|
33
|
+
var(--alert-border-color, var(--_borderColor)) 4px,
|
|
34
|
+
var(--alert-background-color, var(--_background)) 4px
|
|
35
|
+
)
|
|
36
|
+
border-box;
|
|
37
|
+
color: var(--_headingColor);
|
|
38
|
+
font-family: var(--eun-font-family, "Mulish", sans-serif);
|
|
39
|
+
font-size: var(--eun-font-size-s, 14px);
|
|
40
|
+
font-weight: var(--eun-font-weight-l, 700);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
eun-alert[severity="info"]:not(:defined) {
|
|
44
|
+
--_background: var(--eun-color-info-alpha-5, #097faf0d);
|
|
45
|
+
--_backgroundFilled: var(--eun-color-info-100, #097faf);
|
|
46
|
+
--_borderColor: var(--eun-color-info-100, #097faf);
|
|
47
|
+
--_titleColor: var(--eun-color-info-100, #097faf);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
eun-alert[severity="success"]:not(:defined) {
|
|
51
|
+
--_background: var(--eun-color-success-alpha-5, #1a99480d);
|
|
52
|
+
--_backgroundFilled: var(--eun-color-success-100, #1a9948);
|
|
53
|
+
--_borderColor: var(--eun-color-success-100, #1a9948);
|
|
54
|
+
--_titleColor: var(--eun-color-success-100, #1a9948);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
eun-alert[severity="warning"]:not(:defined) {
|
|
58
|
+
--_background: var(--eun-color-warning-alpha-5, #c852070d);
|
|
59
|
+
--_backgroundFilled: var(--eun-color-warning-100, #c85207);
|
|
60
|
+
--_borderColor: var(--eun-color-warning-100, #c85207);
|
|
61
|
+
--_titleColor: var(--eun-color-warning-100, #c85207);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
eun-alert[severity="critical"]:not(:defined) {
|
|
65
|
+
--_background: var(--eun-color-critical-alpha-5, #aa00140d);
|
|
66
|
+
--_backgroundFilled: var(--eun-color-critical-100, #aa0014);
|
|
67
|
+
--_borderColor: var(--eun-color-critical-100, #aa0014);
|
|
68
|
+
--_titleColor: var(--eun-color-critical-100, #aa0014);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
eun-alert[severity="neutral"]:not(:defined) {
|
|
72
|
+
--_onFilled: var(--eun-color-grey-0, #ffffff);
|
|
73
|
+
--_background: var(--eun-surface-sunken-strong, #ecedf0);
|
|
74
|
+
--_backgroundFilled: var(--eun-color-grey-700, #484e61);
|
|
75
|
+
--_borderColor: var(--eun-color-grey-700, #484e61);
|
|
76
|
+
--_titleColor: var(--eun-color-grey-700, #484e61);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
eun-alert[appearance="flat"]:not(:defined) {
|
|
80
|
+
background: var(--alert-background-color, var(--_background));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
eun-alert[appearance="outline"]:not(:defined) {
|
|
84
|
+
--_frame: var(--_borderColor);
|
|
85
|
+
background: var(--alert-background-color, var(--eun-surface-color, #ffffff));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
eun-alert[appearance="fill"]:not(:defined) {
|
|
89
|
+
--_contentColor: var(--alert-content-color, var(--_onFilled, #fff));
|
|
90
|
+
--_headingColor: var(--alert-color, var(--_onFilled, #fff));
|
|
91
|
+
background: var(--alert-background-color, var(--_backgroundFilled));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
eun-alert[closeable]:not(:defined) {
|
|
95
|
+
padding-right: calc(
|
|
96
|
+
var(
|
|
97
|
+
--alert-padding,
|
|
98
|
+
var(
|
|
99
|
+
--alert-padding-inline,
|
|
100
|
+
max(0px, calc(var(--eun-space-m, 16px) - var(--_bw)))
|
|
101
|
+
)
|
|
102
|
+
) +
|
|
103
|
+
var(--eun-space-l, 32px)
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
eun-alert:is(
|
|
108
|
+
[hide-icon],
|
|
109
|
+
:not([severity], [icon]):not(:has(> [slot="icon"]))
|
|
110
|
+
):not(:defined) {
|
|
111
|
+
--_textColumn: 1;
|
|
112
|
+
grid-template-columns: 1fr;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
eun-alert:not(:defined)::before {
|
|
116
|
+
content: "";
|
|
117
|
+
grid-column: 1;
|
|
118
|
+
grid-row: 1;
|
|
119
|
+
align-self: center;
|
|
120
|
+
width: 20px;
|
|
121
|
+
height: 20px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
eun-alert:is([hide-icon], :has(> [slot="icon"]), :not([severity], [icon])):not(
|
|
125
|
+
:defined
|
|
126
|
+
)::before {
|
|
127
|
+
display: none;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
eun-alert:not(:defined) > [slot="icon"] {
|
|
131
|
+
grid-column: 1;
|
|
132
|
+
grid-row: 1;
|
|
133
|
+
align-self: center;
|
|
134
|
+
display: flex;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
eun-alert[hide-icon]:not(:defined) > [slot="icon"] {
|
|
138
|
+
grid-column: 1;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
eun-alert:not([heading]):not(:defined) > :not([slot]) {
|
|
142
|
+
grid-column: var(--_textColumn);
|
|
143
|
+
grid-row: 1;
|
|
144
|
+
align-self: center;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
eun-alert:not(:defined) > :not([slot]) {
|
|
148
|
+
justify-self: start;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
eun-alert[heading]:not(:defined)::after {
|
|
152
|
+
content: attr(heading);
|
|
153
|
+
order: -1;
|
|
154
|
+
grid-column: var(--_textColumn);
|
|
155
|
+
grid-row: 1;
|
|
156
|
+
align-self: center;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
eun-alert[heading]:not(:defined) > :not([slot]),
|
|
160
|
+
eun-alert:not(:defined) > [slot="description"],
|
|
161
|
+
eun-alert:not(:defined) > [slot="action"] {
|
|
162
|
+
grid-column: var(--_textColumn);
|
|
163
|
+
font-weight: normal;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
:where(
|
|
167
|
+
eun-alert[heading]:not(:defined) > :not([slot]),
|
|
168
|
+
eun-alert:not(:defined) > [slot="description"],
|
|
169
|
+
eun-alert:not(:defined) > [slot="icon"],
|
|
170
|
+
eun-alert:not(:defined) > [slot="action"]:not(:any-link)
|
|
171
|
+
) {
|
|
172
|
+
color: var(--_contentColor);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
eun-alert[heading]:not(:defined) > :not([slot]) {
|
|
176
|
+
order: 1;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
eun-alert:not(:defined) > [slot="description"] {
|
|
180
|
+
order: 2;
|
|
181
|
+
margin: 0;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
eun-alert:not(:defined) > [slot="action"] {
|
|
185
|
+
order: 3;
|
|
186
|
+
justify-self: start;
|
|
187
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
eun-badge:not(:defined) {
|
|
2
|
+
--_background: var(
|
|
3
|
+
--badge-background,
|
|
4
|
+
var(--eun-color-critical-100, #aa0014)
|
|
5
|
+
);
|
|
6
|
+
--_color: var(--badge-color, #fff);
|
|
7
|
+
--_size: var(--badge-size, 18px);
|
|
8
|
+
--_paddingInline: var(--badge-padding-inline, 6px);
|
|
9
|
+
--_fontSize: var(--badge-font-size, 11px);
|
|
10
|
+
display: inline-flex;
|
|
11
|
+
align-items: center;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
box-sizing: border-box;
|
|
14
|
+
min-width: var(--_size);
|
|
15
|
+
height: var(--_size);
|
|
16
|
+
padding: 0 var(--_paddingInline);
|
|
17
|
+
border-radius: 999px;
|
|
18
|
+
background: var(--_background);
|
|
19
|
+
color: var(--_color);
|
|
20
|
+
font-family: var(--eun-font-family, "Mulish", sans-serif);
|
|
21
|
+
font-size: var(--_fontSize);
|
|
22
|
+
font-weight: var(--eun-font-weight-l, 700);
|
|
23
|
+
line-height: 1;
|
|
24
|
+
white-space: nowrap;
|
|
25
|
+
vertical-align: baseline;
|
|
26
|
+
user-select: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
eun-badge:empty:not(:defined) {
|
|
30
|
+
width: var(--_size);
|
|
31
|
+
padding: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
eun-badge[size="s"]:not(:defined) {
|
|
35
|
+
--_size: var(--badge-size, 14px);
|
|
36
|
+
--_paddingInline: var(--badge-padding-inline, 5px);
|
|
37
|
+
--_fontSize: var(--badge-font-size, 10px);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
eun-badge[size="l"]:not(:defined) {
|
|
41
|
+
--_size: var(--badge-size, 22px);
|
|
42
|
+
--_paddingInline: var(--badge-padding-inline, 7px);
|
|
43
|
+
--_fontSize: var(--badge-font-size, 12px);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
eun-badge[color="primary"]:not(:defined) {
|
|
47
|
+
--_background: var(--badge-background, var(--eun-color-primary-500, #3d6fff));
|
|
48
|
+
--_color: var(--badge-color, var(--eun-color-on-primary-500, #ffffff));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
eun-badge[color="secondary"]:not(:defined) {
|
|
52
|
+
--_background: var(
|
|
53
|
+
--badge-background,
|
|
54
|
+
var(--eun-color-secondary-500, #e5a030)
|
|
55
|
+
);
|
|
56
|
+
--_color: var(--badge-color, var(--eun-color-on-secondary-500, #000000de));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
eun-badge[color="success"]:not(:defined) {
|
|
60
|
+
--_background: var(--badge-background, var(--eun-color-success-100, #1a9948));
|
|
61
|
+
--_color: var(--badge-color, #fff);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
eun-badge[color="warning"]:not(:defined) {
|
|
65
|
+
--_background: var(--badge-background, var(--eun-color-warning-100, #c85207));
|
|
66
|
+
--_color: var(--badge-color, #fff);
|
|
67
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
eun-breadcrumb:not(:defined) {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-wrap: wrap;
|
|
4
|
+
align-items: center;
|
|
5
|
+
row-gap: var(--breadcrumb-gap, var(--eun-space-xs, 4px));
|
|
6
|
+
font-family: var(--eun-font-family, "Mulish", sans-serif);
|
|
7
|
+
font-size: var(--breadcrumb-font-size, var(--eun-font-size-s, 14px));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:where(eun-breadcrumb:not(:defined) > *) {
|
|
11
|
+
max-width: var(--breadcrumb-item-max-width, 240px);
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
text-overflow: ellipsis;
|
|
14
|
+
white-space: nowrap;
|
|
15
|
+
color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
|
|
16
|
+
font-weight: var(--eun-font-weight-m, 500);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:where(eun-breadcrumb:not(:defined) > a[href]) {
|
|
20
|
+
color: var(--breadcrumb-link-color, var(--eun-color-primary-500, #3d6fff));
|
|
21
|
+
font-weight: inherit;
|
|
22
|
+
text-decoration: var(--breadcrumb-link-text-decoration, underline);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
:where(
|
|
26
|
+
eun-breadcrumb:not(:defined) > a[aria-current="page"],
|
|
27
|
+
eun-breadcrumb:not(:defined):not(:has(> [aria-current="page"])) > a:last-child
|
|
28
|
+
) {
|
|
29
|
+
color: var(--breadcrumb-current-color, var(--eun-text-secondary, #484e61));
|
|
30
|
+
font-weight: var(--eun-font-weight-m, 500);
|
|
31
|
+
text-decoration: none;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
eun-breadcrumb:not(:defined) > :not(:last-child)::after {
|
|
35
|
+
content: var(--breadcrumb-separator, "/");
|
|
36
|
+
display: inline-block;
|
|
37
|
+
margin-inline: var(--breadcrumb-separator-gap, var(--eun-space-s, 8px));
|
|
38
|
+
color: var(--breadcrumb-separator-color, var(--eun-text-secondary, #484e61));
|
|
39
|
+
font-weight: var(--eun-font-weight-m, 500);
|
|
40
|
+
text-decoration: none;
|
|
41
|
+
}
|
package/dist/ssr/button-ssr.css
CHANGED
|
@@ -120,8 +120,8 @@
|
|
|
120
120
|
}
|
|
121
121
|
:is(eun-button, eun-dropdown-button)[size="s"]:not(:defined) {
|
|
122
122
|
--_defaultFontSize: var(--eun-font-size-xs, 10px);
|
|
123
|
-
--_defaultPaddingBlock: calc(var(--eun-space-s) / 2);
|
|
124
|
-
--_defaultPaddingInline: var(--eun-space-s);
|
|
123
|
+
--_defaultPaddingBlock: calc(var(--eun-space-s, 8px) / 2);
|
|
124
|
+
--_defaultPaddingInline: var(--eun-space-s, 8px);
|
|
125
125
|
--_defaultLineHeight: 10px;
|
|
126
126
|
--_defaultBorderRadius: var(--eun-border-radius-s, 999px);
|
|
127
127
|
}
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
--_fg: var(--_onSolid);
|
|
150
150
|
--_bd: transparent;
|
|
151
151
|
}
|
|
152
|
-
:is(eun-button, eun-dropdown-button)[appearance="
|
|
152
|
+
:is(eun-button, eun-dropdown-button)[appearance="soft"]:not(:defined) {
|
|
153
153
|
--_bg: var(--_tint);
|
|
154
154
|
--_fg: var(--_fgTint);
|
|
155
155
|
--_bd: transparent;
|
|
@@ -236,8 +236,8 @@ eun-button:not(:defined) > [slot="end"] {
|
|
|
236
236
|
content: "";
|
|
237
237
|
order: -1;
|
|
238
238
|
flex-shrink: 0;
|
|
239
|
-
width:
|
|
240
|
-
height:
|
|
239
|
+
width: var(--icon-size);
|
|
240
|
+
height: var(--icon-size);
|
|
241
241
|
}
|
|
242
242
|
|
|
243
243
|
eun-dropdown-button[label]:not(:defined)::after {
|