@eunomia/elements 1.0.0-beta.2 → 1.0.0-beta.4
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-2JLDJFYD.js +48 -0
- package/dist/cdn/components/chunks/chunk-4MXL6PZC.js +124 -0
- package/dist/cdn/components/chunks/{chunk-32KRPOPV.js → chunk-5XJGYXW7.js} +6 -6
- package/dist/cdn/components/chunks/{chunk-O2HNWH65.js → chunk-5XJLIHAU.js} +7 -7
- package/dist/cdn/components/chunks/{chunk-5GF2Q3NR.js → chunk-74AOAB4X.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-WYMBUIKX.js → chunk-A6KGFALA.js} +4 -4
- package/dist/cdn/components/chunks/chunk-BMQOI7HX.js +371 -0
- package/dist/cdn/components/chunks/{chunk-LJYTHDZP.js → chunk-D2M4BV5Y.js} +6 -6
- package/dist/cdn/components/chunks/{chunk-NEYBPT3D.js → chunk-EJIX2D4Z.js} +2 -2
- package/dist/cdn/components/chunks/{chunk-BYBUXKXC.js → chunk-EOWBYZV7.js} +2 -2
- package/dist/cdn/components/chunks/chunk-EST3M4AO.js +1 -0
- package/dist/cdn/components/chunks/{chunk-AQQMW353.js → chunk-GSJEJLFA.js} +3 -3
- package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5RCCZVFZ.js → chunk-IJ5WFMK4.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-RWONCXTF.js → chunk-KVYUNKUO.js} +2 -2
- package/dist/cdn/components/chunks/chunk-LGLQ36QB.js +16 -0
- package/dist/cdn/components/chunks/{chunk-74HHV4CX.js → chunk-NHFWATVN.js} +2 -2
- package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +38 -0
- package/dist/cdn/components/chunks/chunk-P32B7BFD.js +118 -0
- package/dist/cdn/components/chunks/{chunk-ZPFHTJSS.js → chunk-PCM7D3YF.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-ABYEBP57.js → chunk-PED5ATYN.js} +11 -8
- package/dist/cdn/components/chunks/{chunk-ON42P6FI.js → chunk-RJCJXB7Y.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-5C7YND22.js → chunk-S2UCEWNG.js} +8 -8
- package/dist/cdn/components/chunks/{chunk-7WTSHE7M.js → chunk-SIHZFOTK.js} +9 -9
- package/dist/cdn/components/chunks/{chunk-6UPI7GHJ.js → chunk-UAGCQF23.js} +7 -7
- package/dist/cdn/components/chunks/{chunk-6IILPCSQ.js → chunk-X2AUBZD2.js} +3 -3
- package/dist/cdn/components/chunks/chunk-YGUJJ25C.js +263 -0
- package/dist/cdn/components/chunks/chunk-YYCEPZUN.js +1 -0
- package/dist/cdn/components/eun-alert.js +65 -45
- package/dist/cdn/components/eun-animate.js +178 -2
- package/dist/cdn/components/eun-badge.js +1 -1
- package/dist/cdn/components/eun-breadcrumb-item.js +14 -10
- package/dist/cdn/components/eun-breadcrumb.js +11 -7
- package/dist/cdn/components/eun-button.js +1 -1
- package/dist/cdn/components/eun-calendar.js +16 -16
- package/dist/cdn/components/eun-card.js +29 -12
- package/dist/cdn/components/eun-carousel.js +36 -28
- package/dist/cdn/components/eun-check-card.js +3 -3
- package/dist/cdn/components/eun-checkbox-list.js +3 -3
- package/dist/cdn/components/eun-checkbox.js +1 -1
- package/dist/cdn/components/eun-chip.js +45 -210
- package/dist/cdn/components/eun-collapse.js +20 -26
- package/dist/cdn/components/eun-color-picker.js +28 -28
- package/dist/cdn/components/eun-counter.js +11 -11
- package/dist/cdn/components/eun-date-picker.js +50 -50
- package/dist/cdn/components/eun-drawer.js +3 -3
- package/dist/cdn/components/eun-dropdown-button.js +1 -1
- package/dist/cdn/components/eun-dropdown-item.js +6 -6
- package/dist/cdn/components/eun-fab.js +31 -53
- package/dist/cdn/components/eun-icon.js +1 -1
- package/dist/cdn/components/eun-image-card.js +18 -11
- package/dist/cdn/components/eun-image-carousel.js +16 -16
- package/dist/cdn/components/eun-infinite-list.js +1 -1
- package/dist/cdn/components/eun-input-file.js +20 -20
- package/dist/cdn/components/eun-input-phone.js +14 -14
- package/dist/cdn/components/eun-input.js +1 -1
- package/dist/cdn/components/eun-label.js +4 -4
- package/dist/cdn/components/eun-link.js +29 -11
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +6 -6
- package/dist/cdn/components/eun-pagination.js +3 -3
- package/dist/cdn/components/eun-password-strength.js +9 -6
- package/dist/cdn/components/eun-progress-bar.js +13 -13
- package/dist/cdn/components/eun-radio-card.js +2 -2
- package/dist/cdn/components/eun-radio-list.js +3 -3
- package/dist/cdn/components/eun-radio.js +1 -1
- package/dist/cdn/components/eun-scheduler-event-editor.js +2 -2
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +10 -10
- package/dist/cdn/components/eun-search.js +7 -7
- package/dist/cdn/components/eun-select.js +39 -18
- package/dist/cdn/components/eun-sidebar.js +10 -10
- package/dist/cdn/components/eun-skeleton.js +1 -1
- package/dist/cdn/components/eun-slider.js +9 -9
- package/dist/cdn/components/eun-sliding-card.js +7 -10
- package/dist/cdn/components/eun-step.js +8 -8
- package/dist/cdn/components/eun-stepper.js +8 -8
- package/dist/cdn/components/eun-switch.js +10 -10
- package/dist/cdn/components/eun-tab-group.js +19 -11
- 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-cell.js +1 -1
- package/dist/cdn/components/eun-table-column.js +1 -1
- package/dist/cdn/components/eun-table-header.js +1 -1
- package/dist/cdn/components/eun-table-item.js +1 -1
- package/dist/cdn/components/eun-table-skeleton-row.js +1 -1
- package/dist/cdn/components/eun-table.js +3 -3
- package/dist/cdn/components/eun-tag.js +34 -122
- package/dist/cdn/components/eun-textarea.js +28 -28
- package/dist/cdn/components/eun-time-picker.js +25 -25
- package/dist/cdn/components/eun-toast.js +40 -36
- package/dist/cdn/components/eun-toggle-group.js +199 -66
- package/dist/cdn/components/eun-toggle-item.js +42 -25
- package/dist/cdn/components/eun-toggle.js +13 -10
- package/dist/cdn/components/eun-toolbar.js +28 -19
- package/dist/cdn/components/eun-tooltip.js +122 -87
- package/dist/cdn/styles/eunomia-themes.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.scss +1 -0
- package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +71 -0
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +2 -0
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +2 -0
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +2 -0
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +2 -0
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +2 -0
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +2 -0
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +3 -13
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +2 -0
- package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +39 -0
- package/dist/cdn/styles/tools/mixins/settings/eunomia-border.mixin.scss +3 -3
- package/dist/cdn/styles/tools/mixins/settings/eunomia-font.mixin.scss +12 -12
- package/dist/cdn/styles/tools/mixins/settings/eunomia-radius.mixin.scss +4 -4
- package/dist/components/action/button/button.d.ts +7 -6
- package/dist/components/action/button/button.js +7 -6
- package/dist/components/action/button/button.styles.js +143 -373
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +7 -0
- package/dist/components/action/dropdown-button/dropdown-button.js +11 -0
- package/dist/components/action/dropdown-button/dropdown-button.styles.js +8 -8
- package/dist/components/action/dropdown-button/dropdown-item.styles.js +6 -6
- package/dist/components/action/fab/fab.d.ts +3 -1
- package/dist/components/action/fab/fab.js +3 -1
- package/dist/components/action/fab/fab.styles.js +26 -49
- package/dist/components/action/link/link.d.ts +50 -0
- package/dist/components/action/link/link.js +69 -1
- package/dist/components/action/link/link.styles.js +19 -2
- package/dist/components/action/shared-styles/button-palette.styles.d.ts +27 -0
- package/dist/components/action/shared-styles/button-palette.styles.js +151 -0
- package/dist/components/action/toggle/toggle-group.d.ts +41 -7
- package/dist/components/action/toggle/toggle-group.js +162 -46
- package/dist/components/action/toggle/toggle-group.styles.d.ts +6 -5
- package/dist/components/action/toggle/toggle-group.styles.js +152 -35
- package/dist/components/action/toggle/toggle-item.styles.js +38 -21
- package/dist/components/action/toggle/toggle.d.ts +1 -1
- package/dist/components/action/toggle/toggle.js +2 -2
- package/dist/components/action/toggle/toggle.styles.d.ts +2 -2
- package/dist/components/action/toggle/toggle.styles.js +13 -10
- package/dist/components/alert/alert/alert.d.ts +4 -3
- package/dist/components/alert/alert/alert.js +4 -3
- package/dist/components/alert/alert/alert.styles.js +57 -36
- package/dist/components/alert/drawer/drawer.styles.js +3 -3
- package/dist/components/alert/modal/modal.styles.js +6 -6
- package/dist/components/alert/toast/toast.d.ts +4 -3
- package/dist/components/alert/toast/toast.js +4 -3
- package/dist/components/alert/toast/toast.styles.js +41 -36
- package/dist/components/content/badge/badge.styles.js +1 -1
- package/dist/components/content/card/card.d.ts +4 -4
- package/dist/components/content/card/card.js +4 -4
- package/dist/components/content/card/card.styles.js +27 -10
- package/dist/components/content/card/image-card.d.ts +1 -1
- package/dist/components/content/card/image-card.js +1 -1
- package/dist/components/content/card/image-card.styles.js +17 -10
- package/dist/components/content/card/sliding-card.styles.js +3 -6
- package/dist/components/content/chip/chip.d.ts +16 -7
- package/dist/components/content/chip/chip.js +18 -6
- package/dist/components/content/chip/chip.styles.d.ts +1 -1
- package/dist/components/content/chip/chip.styles.js +43 -210
- package/dist/components/content/collapse/collapse.styles.js +10 -16
- package/dist/components/content/icon/icon.d.ts +48 -5
- package/dist/components/content/icon/icon.js +92 -20
- package/dist/components/content/icon/icon.style.js +1 -1
- package/dist/components/content/image-carousel/image-carousel.styles.js +14 -14
- package/dist/components/content/password-strength/password-strength.styles.js +7 -4
- package/dist/components/content/progress-bar/progress-bar.styles.js +9 -9
- package/dist/components/content/shared-styles/tone-surface.styles.d.ts +31 -0
- package/dist/components/content/shared-styles/tone-surface.styles.js +149 -0
- package/dist/components/content/tag/tag.d.ts +16 -6
- package/dist/components/content/tag/tag.js +19 -6
- package/dist/components/content/tag/tag.styles.d.ts +1 -1
- package/dist/components/content/tag/tag.styles.js +40 -121
- package/dist/components/content/tooltip/tooltip.d.ts +15 -4
- package/dist/components/content/tooltip/tooltip.js +21 -4
- package/dist/components/content/tooltip/tooltip.styles.js +115 -79
- package/dist/components/form/checkbox/check-card.styles.js +2 -2
- package/dist/components/form/checkbox/checkbox-list.d.ts +1 -1
- package/dist/components/form/checkbox/checkbox-list.js +1 -1
- package/dist/components/form/checkbox/checkbox.d.ts +1 -1
- package/dist/components/form/checkbox/checkbox.styles.js +6 -6
- package/dist/components/form/color-picker/color-picker.d.ts +1 -1
- package/dist/components/form/color-picker/color-picker.js +9 -7
- package/dist/components/form/color-picker/color-picker.styles.js +7 -7
- package/dist/components/form/counter/counter.d.ts +1 -1
- package/dist/components/form/counter/counter.js +3 -3
- package/dist/components/form/counter/counter.styles.js +7 -7
- package/dist/components/form/date-picker/date-picker-day-grid.styles.js +2 -2
- package/dist/components/form/date-picker/date-picker-grid.styles.js +15 -15
- package/dist/components/form/date-picker/date-picker-month-grid.styles.js +1 -1
- package/dist/components/form/date-picker/date-picker-year-grid.styles.js +1 -1
- package/dist/components/form/date-picker/date-picker.d.ts +1 -1
- package/dist/components/form/date-picker/date-picker.js +3 -3
- package/dist/components/form/date-picker/date-picker.styles.js +12 -12
- package/dist/components/form/input/input.d.ts +1 -1
- package/dist/components/form/input/input.js +2 -2
- package/dist/components/form/input-file/input-file.d.ts +1 -1
- package/dist/components/form/input-file/input-file.js +5 -5
- package/dist/components/form/input-file/input-file.styles.js +9 -9
- package/dist/components/form/input-phone/input-phone.d.ts +1 -1
- package/dist/components/form/input-phone/input-phone.js +3 -3
- package/dist/components/form/input-phone/input-phone.styles.js +7 -7
- package/dist/components/form/label/label.styles.js +4 -4
- package/dist/components/form/radio/radio-card.styles.js +1 -1
- package/dist/components/form/radio/radio-list.d.ts +1 -1
- package/dist/components/form/radio/radio-list.js +2 -2
- package/dist/components/form/radio/radio.d.ts +1 -1
- package/dist/components/form/radio/radio.styles.js +2 -2
- package/dist/components/form/search/search.styles.js +6 -6
- package/dist/components/form/select/select.d.ts +17 -1
- package/dist/components/form/select/select.js +28 -5
- package/dist/components/form/select/select.styles.js +16 -5
- package/dist/components/form/shared-styles/card.styles.js +1 -1
- package/dist/components/form/shared-styles/field.styles.js +7 -7
- package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
- package/dist/components/form/shared-styles/listbox.styles.js +6 -6
- package/dist/components/form/slider/slider.d.ts +1 -1
- package/dist/components/form/slider/slider.js +2 -2
- package/dist/components/form/slider/slider.styles.js +6 -6
- package/dist/components/form/switch/switch.d.ts +1 -1
- package/dist/components/form/switch/switch.styles.js +8 -8
- package/dist/components/form/textarea/textarea.d.ts +1 -1
- package/dist/components/form/textarea/textarea.js +4 -4
- package/dist/components/form/textarea/textarea.styles.js +6 -6
- package/dist/components/form/time-picker/time-picker-columns.styles.js +6 -6
- package/dist/components/form/time-picker/time-picker-list.styles.js +2 -2
- package/dist/components/form/time-picker/time-picker.d.ts +1 -1
- package/dist/components/form/time-picker/time-picker.js +3 -3
- package/dist/components/form/time-picker/time-picker.styles.js +8 -8
- package/dist/components/layout/animate/animate.d.ts +40 -5
- package/dist/components/layout/animate/animate.js +30 -11
- package/dist/components/layout/animate/animate.styles.d.ts +1 -1
- package/dist/components/layout/animate/animate.styles.js +191 -1
- package/dist/components/loader/loader/loader.styles.js +2 -2
- package/dist/components/loader/skeleton/skeleton.styles.js +8 -5
- package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +7 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-item.js +15 -1
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +3 -3
- package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +1 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.js +7 -1
- package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +3 -3
- package/dist/components/navigation/carousel/carousel.d.ts +40 -6
- package/dist/components/navigation/carousel/carousel.js +61 -12
- package/dist/components/navigation/carousel/carousel.styles.js +20 -8
- package/dist/components/navigation/pagination/pagination.styles.js +3 -3
- package/dist/components/navigation/sidebar/sidebar.styles.js +9 -9
- package/dist/components/navigation/stepper/step.styles.js +8 -8
- package/dist/components/navigation/stepper/stepper.styles.js +8 -8
- package/dist/components/navigation/tabs/tab/tab.styles.js +5 -5
- package/dist/components/navigation/tabs/tab-group/tab-group.d.ts +9 -0
- package/dist/components/navigation/tabs/tab-group/tab-group.js +19 -2
- package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +12 -4
- package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +1 -1
- package/dist/components/navigation/toolbar/toolbar.d.ts +24 -0
- package/dist/components/navigation/toolbar/toolbar.js +30 -2
- package/dist/components/navigation/toolbar/toolbar.styles.js +20 -10
- package/dist/events/change.event.d.ts +13 -1
- package/dist/events/change.event.js +2 -1
- package/dist/features/scheduler/calendar/calendar.js +1 -1
- package/dist/features/scheduler/calendar/calendar.styles.js +3 -3
- package/dist/features/scheduler/scheduler/scheduler.styles.js +2 -2
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +2 -2
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.styles.js +2 -2
- package/dist/features/scheduler/shared/scheduler-event-popover.styles.js +4 -4
- package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +1 -1
- package/dist/features/scheduler/shared/scheduler-month-view.styles.js +1 -1
- package/dist/features/scheduler/shared/scheduler-year-view.styles.js +1 -1
- package/dist/features/table/native-table.css +11 -11
- package/dist/features/table/table/table.styles.js +2 -2
- package/dist/features/table/table-action-bar/table-action-bar.styles.js +2 -2
- package/dist/features/table/table-cell/table-cell.styles.js +2 -2
- package/dist/features/table/table-column/table-column.styles.js +3 -3
- package/dist/features/table/table-header/table-header.styles.js +4 -4
- package/dist/features/table/table-item/table-item.styles.js +6 -6
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +6 -3
- package/dist/jsx.d.ts +18 -5
- package/dist/mixins/button.mixin.d.ts +1 -0
- package/dist/mixins/button.mixin.js +10 -0
- package/dist/mixins/check.mixin.d.ts +1 -1
- package/dist/mixins/check.mixin.js +6 -2
- package/dist/mixins/editable.mixin.d.ts +1 -1
- package/dist/mixins/form.mixin.d.ts +9 -1
- package/dist/mixins/form.mixin.js +110 -14
- package/dist/mixins/overflow-navigation.mixin.js +2 -1
- package/dist/mixins/radio.mixin.d.ts +1 -1
- package/dist/mixins/radio.mixin.js +6 -2
- package/dist/mixins/validators.mixin.d.ts +9 -3
- package/dist/ssr/animate-ssr.css +149 -0
- package/dist/ssr/overlay-ssr.css +57 -0
- package/dist/ssr/sidebar-ssr.css +57 -0
- package/dist/ssr/toolbar-ssr.css +41 -0
- package/dist/utils/rich-text.utils.d.ts +33 -0
- package/dist/utils/rich-text.utils.js +140 -49
- package/dist/utils/theme-generator.utils.d.ts +24 -3
- package/dist/utils/theme-generator.utils.js +66 -21
- package/package.json +14 -3
- package/styles/themes/eunomia-theme.scss +1 -0
- package/styles/themes/mixins/eunomia-neutrals.mixin.scss +71 -0
- package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +2 -0
- package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +2 -0
- package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +2 -0
- package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +2 -0
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +2 -0
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +2 -0
- package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +3 -13
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +2 -0
- package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +39 -0
- package/styles/tools/mixins/settings/eunomia-border.mixin.scss +3 -3
- package/styles/tools/mixins/settings/eunomia-font.mixin.scss +12 -12
- package/styles/tools/mixins/settings/eunomia-radius.mixin.scss +4 -4
- package/dist/cdn/components/chunks/chunk-27Q2SLRY.js +0 -603
- package/dist/cdn/components/chunks/chunk-2IQUMAMI.js +0 -38
- package/dist/cdn/components/chunks/chunk-5TH3P53V.js +0 -16
- package/dist/cdn/components/chunks/chunk-7Q6AHVI5.js +0 -1
- package/dist/cdn/components/chunks/chunk-DENMN3WH.js +0 -48
- package/dist/cdn/components/chunks/chunk-MBF52GEL.js +0 -1
- package/dist/cdn/components/chunks/chunk-ONYUXQV2.js +0 -1
- package/dist/cdn/components/chunks/chunk-ZKPCO5RB.js +0 -262
- package/dist/components/layout/animate/animate-ssr.css +0 -64
|
@@ -26,6 +26,13 @@ export const ButtonMixin = (superClass) => {
|
|
|
26
26
|
* @default "button"
|
|
27
27
|
*/
|
|
28
28
|
this.type = "button";
|
|
29
|
+
/**
|
|
30
|
+
* Keeps a `light` or `dark` button white or black in every theme.
|
|
31
|
+
* Without it, they follow the grey scale, which flips with the active
|
|
32
|
+
* theme. Has no effect on the other variants.
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
this.fixedColor = false;
|
|
29
36
|
/**
|
|
30
37
|
* The button size.
|
|
31
38
|
* @default "m"
|
|
@@ -152,6 +159,9 @@ export const ButtonMixin = (superClass) => {
|
|
|
152
159
|
__decorate([
|
|
153
160
|
property({ reflect: true })
|
|
154
161
|
], ButtonMixinClass.prototype, "variant", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
property({ type: Boolean, reflect: true, attribute: "fixed-color" })
|
|
164
|
+
], ButtonMixinClass.prototype, "fixedColor", void 0);
|
|
155
165
|
__decorate([
|
|
156
166
|
property({ reflect: true })
|
|
157
167
|
], ButtonMixinClass.prototype, "size", void 0);
|
|
@@ -21,4 +21,4 @@ export declare class CheckMixinInterface {
|
|
|
21
21
|
* @template T A LitElement class extended with other mixins (Disabled, Readonly, Validators, Form).
|
|
22
22
|
* @returns A class extending the provided superclass with checkable behavior.
|
|
23
23
|
*/
|
|
24
|
-
export declare const CheckMixin: <T extends Constructor<LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface & FormMixinInterface<string>>>(superClass: T) => Constructor<CheckMixinInterface> & T;
|
|
24
|
+
export declare const CheckMixin: <T extends Constructor<LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<unknown> & FormMixinInterface<string>>>(superClass: T) => Constructor<CheckMixinInterface> & T;
|
|
@@ -73,10 +73,14 @@ export const CheckMixin = (superClass) => {
|
|
|
73
73
|
* Resets `checked` to `defaultChecked` (or `false`, if never set) on a
|
|
74
74
|
* native form `reset()` — overrides `FormMixin`'s own
|
|
75
75
|
* `formResetCallback`, which unconditionally forces checkable fields
|
|
76
|
-
* to `false` with no notion of a default checked state.
|
|
76
|
+
* to `false` with no notion of a default checked state. Also resets
|
|
77
|
+
* `dirty`/`touched` itself, since it doesn't call `super` to reach
|
|
78
|
+
* `FormMixin`'s own reset of those two.
|
|
77
79
|
*/
|
|
78
80
|
formResetCallback() {
|
|
79
81
|
this.checked = this.defaultChecked ?? false;
|
|
82
|
+
this.dirty = false;
|
|
83
|
+
this.touched = false;
|
|
80
84
|
}
|
|
81
85
|
/**
|
|
82
86
|
* Lifecycle: Called when the component is disconnected from the DOM.
|
|
@@ -140,7 +144,7 @@ export const CheckMixin = (superClass) => {
|
|
|
140
144
|
else {
|
|
141
145
|
this.removeAttribute("aria-description");
|
|
142
146
|
}
|
|
143
|
-
this.dispatchEvent(new ChangeEvent());
|
|
147
|
+
this.dispatchEvent(new ChangeEvent(this.checked));
|
|
144
148
|
}
|
|
145
149
|
/**
|
|
146
150
|
* Handles keydown interactions.
|
|
@@ -29,4 +29,4 @@ export declare class EditableMixinInterface {
|
|
|
29
29
|
* shape (e.g. `string` for a single-value field, `string[]` for a multi-value one).
|
|
30
30
|
* @returns A class extending the provided superclass with editable behavior.
|
|
31
31
|
*/
|
|
32
|
-
export declare const EditableMixin: <U, T extends Constructor<LitElement & DisabledMixinInterface & ValidatorsMixinInterface & FormMixinInterface<U>>>(superClass: T) => Constructor<EditableMixinInterface> & T;
|
|
32
|
+
export declare const EditableMixin: <U, T extends Constructor<LitElement & DisabledMixinInterface & ValidatorsMixinInterface<unknown> & FormMixinInterface<U>>>(superClass: T) => Constructor<EditableMixinInterface> & T;
|
|
@@ -13,10 +13,16 @@ export declare class FormMixinInterface<T> {
|
|
|
13
13
|
setFormValue(value?: T): void;
|
|
14
14
|
renderDescription(): typeof nothing | TemplateResult;
|
|
15
15
|
name?: string;
|
|
16
|
+
hint?: string;
|
|
16
17
|
description?: string | string[] | undefined;
|
|
17
18
|
valueState?: T;
|
|
18
19
|
hideError?: boolean;
|
|
19
20
|
form: HTMLFormElement | null;
|
|
21
|
+
dirty: boolean;
|
|
22
|
+
touched: boolean;
|
|
23
|
+
controlled: boolean;
|
|
24
|
+
get pristine(): boolean;
|
|
25
|
+
get untouched(): boolean;
|
|
20
26
|
get value(): T;
|
|
21
27
|
set value(value: T);
|
|
22
28
|
get defaultValue(): T | undefined;
|
|
@@ -28,4 +34,6 @@ export declare class FormMixinInterface<T> {
|
|
|
28
34
|
* @param superClass - Base class to extend.
|
|
29
35
|
* @returns A class extending the provided base with form capabilities.
|
|
30
36
|
*/
|
|
31
|
-
|
|
37
|
+
type ValidatorsMixinShape = Omit<ValidatorsMixinInterface, "validators">;
|
|
38
|
+
export declare const FormMixin: <T extends Constructor<LitElement & ValidatorsMixinShape & DisabledMixinInterface>, U>(superClass: T) => Constructor<FormMixinInterface<U>> & T;
|
|
39
|
+
export {};
|
|
@@ -4,17 +4,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
import { html, nothing } from "lit";
|
|
8
13
|
import { property, state } from "lit/decorators.js";
|
|
9
14
|
import { when } from "lit/directives/when.js";
|
|
10
|
-
|
|
11
|
-
* Mixin that adds form-related behavior and value management.
|
|
12
|
-
*
|
|
13
|
-
* @template U - Type of the form field value.
|
|
14
|
-
* @param superClass - Base class to extend.
|
|
15
|
-
* @returns A class extending the provided base with form capabilities.
|
|
16
|
-
*/
|
|
15
|
+
import { ChangeEvent } from "../events/change.event.js";
|
|
17
16
|
export const FormMixin = (superClass) => {
|
|
17
|
+
var _FormMixinClass_markDirty, _FormMixinClass_markTouched;
|
|
18
18
|
class FormMixinClass extends superClass {
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
20
|
constructor(...args) {
|
|
@@ -36,11 +36,77 @@ export const FormMixin = (superClass) => {
|
|
|
36
36
|
* @private
|
|
37
37
|
*/
|
|
38
38
|
this.checked = false;
|
|
39
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Whether the value has changed since the field connected (or since the
|
|
41
|
+
* last reset). Derived from `eunchange`, the event every field's own
|
|
42
|
+
* user-interaction handler already dispatches (and only that: setting
|
|
43
|
+
* `.value`/`.defaultValue` from outside, as a controlled React field
|
|
44
|
+
* does on every render, never dispatches it), so a controlled field
|
|
45
|
+
* stays pristine across ordinary re-renders and only turns dirty from
|
|
46
|
+
* genuine user input.
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
this.dirty = false;
|
|
50
|
+
/**
|
|
51
|
+
* Whether the field has lost focus at least once since it connected (or
|
|
52
|
+
* since the last reset).
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
this.touched = false;
|
|
56
|
+
/**
|
|
57
|
+
* Opts this field out of the native reset algorithm's value wipe: when
|
|
58
|
+
* `true`, `formResetCallback` leaves `value`/`checked` untouched.
|
|
59
|
+
*
|
|
60
|
+
* Exists for consumers who drive `value` as a controlled React prop
|
|
61
|
+
* (or equivalent in another framework): a browser-native `form.reset()`
|
|
62
|
+
* cannot be observed by React's reconciler unless a prop actually
|
|
63
|
+
* changes, so a native input only "survives" a stray reset (e.g. the
|
|
64
|
+
* unconditional one `useActionState` triggers via `requestFormReset` on
|
|
65
|
+
* every `<form action={fn}>` submission, success or not) because
|
|
66
|
+
* react-dom force-resyncs its `.value` on every commit — a defense
|
|
67
|
+
* custom elements don't get. Setting `controlled` makes the field's own
|
|
68
|
+
* app state the sole source of truth for `value`: the app decides when
|
|
69
|
+
* to clear it, the same way it already decides what to display it as.
|
|
70
|
+
* @default false
|
|
71
|
+
*/
|
|
72
|
+
this.controlled = false;
|
|
73
|
+
/**
|
|
74
|
+
* Marks the field dirty on its own `eunchange` — dispatched only from a
|
|
75
|
+
* genuine user-interaction handler, never from the `value`/`checked`
|
|
76
|
+
* setters themselves — so a re-render setting the same property from
|
|
77
|
+
* outside never flips this.
|
|
78
|
+
*/
|
|
79
|
+
_FormMixinClass_markDirty.set(this, () => {
|
|
80
|
+
if (!this.dirty) {
|
|
81
|
+
this.dirty = true;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
/**
|
|
85
|
+
* Marks the field touched the first time focus leaves it.
|
|
86
|
+
*/
|
|
87
|
+
_FormMixinClass_markTouched.set(this, () => {
|
|
88
|
+
if (!this.touched) {
|
|
89
|
+
this.touched = true;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
40
92
|
if (!this.internals) {
|
|
41
93
|
this.internals = this.attachInternals();
|
|
42
94
|
}
|
|
43
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Whether the value hasn't changed since the field connected (or since
|
|
98
|
+
* the last reset). The inverse of {@link dirty}.
|
|
99
|
+
*/
|
|
100
|
+
get pristine() {
|
|
101
|
+
return !this.dirty;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Whether the field hasn't lost focus yet since it connected (or since
|
|
105
|
+
* the last reset). The inverse of {@link touched}.
|
|
106
|
+
*/
|
|
107
|
+
get untouched() {
|
|
108
|
+
return !this.touched;
|
|
109
|
+
}
|
|
44
110
|
/**
|
|
45
111
|
* Gets the default value of the field.
|
|
46
112
|
*
|
|
@@ -128,6 +194,17 @@ export const FormMixin = (superClass) => {
|
|
|
128
194
|
this.value = this.defaultValue;
|
|
129
195
|
}
|
|
130
196
|
this.checkValidity(this.value);
|
|
197
|
+
this.addEventListener(ChangeEvent.eventName, __classPrivateFieldGet(this, _FormMixinClass_markDirty, "f"));
|
|
198
|
+
this.addEventListener("focusout", __classPrivateFieldGet(this, _FormMixinClass_markTouched, "f"));
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Lifecycle callback called when element is disconnected from the DOM.
|
|
202
|
+
* Removes the listeners driving {@link dirty} and {@link touched}.
|
|
203
|
+
*/
|
|
204
|
+
disconnectedCallback() {
|
|
205
|
+
this.removeEventListener(ChangeEvent.eventName, __classPrivateFieldGet(this, _FormMixinClass_markDirty, "f"));
|
|
206
|
+
this.removeEventListener("focusout", __classPrivateFieldGet(this, _FormMixinClass_markTouched, "f"));
|
|
207
|
+
super.disconnectedCallback?.();
|
|
131
208
|
}
|
|
132
209
|
/**
|
|
133
210
|
* LitElement lifecycle method called before update.
|
|
@@ -188,14 +265,23 @@ export const FormMixin = (superClass) => {
|
|
|
188
265
|
* `value` attribute. Skipping the assignment there (as an earlier
|
|
189
266
|
* version of this method did) left a typed-in value stuck after
|
|
190
267
|
* `form.reset()`.
|
|
268
|
+
*
|
|
269
|
+
* Skips that assignment entirely when {@link controlled} is set: the
|
|
270
|
+
* consuming app owns `value` in that mode, so this callback only clears
|
|
271
|
+
* {@link dirty}/{@link touched}, leaving the value itself for the app
|
|
272
|
+
* to update (or not) on its own terms.
|
|
191
273
|
*/
|
|
192
274
|
formResetCallback() {
|
|
193
|
-
if (this.
|
|
194
|
-
this.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
275
|
+
if (!this.controlled) {
|
|
276
|
+
if (this.checkable) {
|
|
277
|
+
this.checked = false;
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
this.value = this.defaultValue;
|
|
281
|
+
}
|
|
198
282
|
}
|
|
283
|
+
this.dirty = false;
|
|
284
|
+
this.touched = false;
|
|
199
285
|
}
|
|
200
286
|
/**
|
|
201
287
|
* Renders the description or error messages.
|
|
@@ -237,6 +323,7 @@ export const FormMixin = (superClass) => {
|
|
|
237
323
|
`;
|
|
238
324
|
}
|
|
239
325
|
}
|
|
326
|
+
_FormMixinClass_markDirty = new WeakMap(), _FormMixinClass_markTouched = new WeakMap();
|
|
240
327
|
FormMixinClass.formAssociated = true;
|
|
241
328
|
__decorate([
|
|
242
329
|
property({ reflect: true })
|
|
@@ -250,6 +337,15 @@ export const FormMixin = (superClass) => {
|
|
|
250
337
|
__decorate([
|
|
251
338
|
state()
|
|
252
339
|
], FormMixinClass.prototype, "valueState", void 0);
|
|
340
|
+
__decorate([
|
|
341
|
+
state()
|
|
342
|
+
], FormMixinClass.prototype, "dirty", void 0);
|
|
343
|
+
__decorate([
|
|
344
|
+
state()
|
|
345
|
+
], FormMixinClass.prototype, "touched", void 0);
|
|
346
|
+
__decorate([
|
|
347
|
+
property({ type: Boolean })
|
|
348
|
+
], FormMixinClass.prototype, "controlled", void 0);
|
|
253
349
|
__decorate([
|
|
254
350
|
property({
|
|
255
351
|
attribute: "default-value",
|
|
@@ -77,9 +77,10 @@ export const NavigationOverflowMixin = (superClass) => {
|
|
|
77
77
|
}
|
|
78
78
|
/**
|
|
79
79
|
* Determines if the scrollable element is currently overflowing.
|
|
80
|
+
* Overridable, for content that isn't all in the `navigation` slot.
|
|
80
81
|
*
|
|
81
82
|
* @returns true if on overflow, false otherwise.
|
|
82
|
-
* @
|
|
83
|
+
* @protected
|
|
83
84
|
*/
|
|
84
85
|
isOnOverflow() {
|
|
85
86
|
const slot = this.shadowRoot?.querySelector('slot[name="navigation"]');
|
|
@@ -28,4 +28,4 @@ export declare class RadioMixinInterface {
|
|
|
28
28
|
* @template T A LitElement class extended with other mixins (Disabled, Readonly, Validators, Form).
|
|
29
29
|
* @returns A class extending the provided superclass with radio behavior.
|
|
30
30
|
*/
|
|
31
|
-
export declare const RadioMixin: <T extends Constructor<LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface & FormMixinInterface<string>>>(superClass: T) => Constructor<RadioMixinInterface> & T;
|
|
31
|
+
export declare const RadioMixin: <T extends Constructor<LitElement & DisabledMixinInterface & ReadonlyMixinInterface & ValidatorsMixinInterface<unknown> & FormMixinInterface<string>>>(superClass: T) => Constructor<RadioMixinInterface> & T;
|
|
@@ -80,10 +80,14 @@ export const RadioMixin = (superClass) => {
|
|
|
80
80
|
* Resets `checked` to `defaultChecked` (or `false`, if never set) on a
|
|
81
81
|
* native form `reset()` — overrides `FormMixin`'s own
|
|
82
82
|
* `formResetCallback`, which unconditionally forces checkable fields
|
|
83
|
-
* to `false` with no notion of a default checked state.
|
|
83
|
+
* to `false` with no notion of a default checked state. Also resets
|
|
84
|
+
* `dirty`/`touched` itself, since it doesn't call `super` to reach
|
|
85
|
+
* `FormMixin`'s own reset of those two.
|
|
84
86
|
*/
|
|
85
87
|
formResetCallback() {
|
|
86
88
|
this.checked = this.defaultChecked ?? false;
|
|
89
|
+
this.dirty = false;
|
|
90
|
+
this.touched = false;
|
|
87
91
|
}
|
|
88
92
|
/**
|
|
89
93
|
* Lifecycle: Called when the component is disconnected from the DOM.
|
|
@@ -147,7 +151,7 @@ export const RadioMixin = (superClass) => {
|
|
|
147
151
|
else {
|
|
148
152
|
this.removeAttribute("aria-description");
|
|
149
153
|
}
|
|
150
|
-
this.dispatchEvent(new ChangeEvent());
|
|
154
|
+
this.dispatchEvent(new ChangeEvent(this.checked));
|
|
151
155
|
}
|
|
152
156
|
/**
|
|
153
157
|
* Handles keydown interactions.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LitElement } from "lit";
|
|
2
|
-
import { Mutable } from "../types/form-validators.type.js";
|
|
2
|
+
import { Mutable, Validators } from "../types/form-validators.type.js";
|
|
3
3
|
import { Constructor } from "../utils/constructor.type.js";
|
|
4
4
|
/**
|
|
5
5
|
* Defines a Validity object.
|
|
@@ -11,8 +11,13 @@ export interface Validity {
|
|
|
11
11
|
/**
|
|
12
12
|
* Interface defining the contract for components using `ValidatorsMixin`.
|
|
13
13
|
* Provides integration with the native form lifecycle,
|
|
14
|
+
*
|
|
15
|
+
* @template U Type of value being validated — same as the type parameter
|
|
16
|
+
* passed to `ValidatorsMixin` itself, kept in sync by hand at each call
|
|
17
|
+
* site since it can't be inferred from `ValidatorsMixin(superClass)`'s own
|
|
18
|
+
* single argument.
|
|
14
19
|
*/
|
|
15
|
-
export declare class ValidatorsMixinInterface {
|
|
20
|
+
export declare class ValidatorsMixinInterface<U = unknown> {
|
|
16
21
|
checkLocalValidators: () => Validity;
|
|
17
22
|
buildCommonValidators: () => Validity;
|
|
18
23
|
checkValidity: (dataToCheck: any) => boolean;
|
|
@@ -21,6 +26,7 @@ export declare class ValidatorsMixinInterface {
|
|
|
21
26
|
required: boolean;
|
|
22
27
|
errorMessages: string[];
|
|
23
28
|
validationMessage: string | string[];
|
|
29
|
+
validators?: Validators<U>[];
|
|
24
30
|
}
|
|
25
31
|
/**
|
|
26
32
|
* Mixin that adds validation capabilities to a LitElement.
|
|
@@ -28,4 +34,4 @@ export declare class ValidatorsMixinInterface {
|
|
|
28
34
|
* @template U Type of value being validated.
|
|
29
35
|
* @param superClass Base class to extend.
|
|
30
36
|
*/
|
|
31
|
-
export declare const ValidatorsMixin: <T extends Constructor<LitElement>, U>(superClass: T) => Constructor<ValidatorsMixinInterface
|
|
37
|
+
export declare const ValidatorsMixin: <T extends Constructor<LitElement>, U>(superClass: T) => Constructor<ValidatorsMixinInterface<U>> & T;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional light-DOM stylesheet for `<eun-animate>` in server-rendered
|
|
3
|
+
* pages (Next.js, or any framework/setup without Declarative Shadow DOM
|
|
4
|
+
* for Lit components). It closes the SSR flash described in the eun-animate
|
|
5
|
+
* documentation's Accessibility/SSR notes : server HTML has no Shadow DOM
|
|
6
|
+
* yet, so `<eun-animate>`'s own `:host([animation="fade"]) { opacity: 0 }`
|
|
7
|
+
* (and the other animation variants) can't apply until the element is
|
|
8
|
+
* upgraded client-side, meaning content renders visible first, then snaps
|
|
9
|
+
* hidden the instant the custom element registers, then fades back in.
|
|
10
|
+
*
|
|
11
|
+
* This stylesheet lives in the host document instead, applying the exact
|
|
12
|
+
* same starting state through `:not(:defined)`, which is true from first
|
|
13
|
+
* paint and stops matching permanently the moment the browser upgrades the
|
|
14
|
+
* element — handing off to the component's own Shadow DOM styles at
|
|
15
|
+
* exactly the point they take over, with no gap and no double transition.
|
|
16
|
+
*
|
|
17
|
+
* Usage — link it in the page `<head>`, alongside (not instead of)
|
|
18
|
+
* importing "@eunomia/elements/animate.js" :
|
|
19
|
+
*
|
|
20
|
+
* <link
|
|
21
|
+
* rel="stylesheet"
|
|
22
|
+
* href="node_modules/@eunomia/elements/dist/ssr/animate-ssr.css"
|
|
23
|
+
* />
|
|
24
|
+
*
|
|
25
|
+
* Requires every server-rendered `<eun-animate>` to write its `animation`
|
|
26
|
+
* attribute explicitly (even when it's the "fade" default), since that
|
|
27
|
+
* default only ever becomes an attribute once Lit initializes the
|
|
28
|
+
* property client-side — invisible to this stylesheet, or any plain CSS,
|
|
29
|
+
* before then :
|
|
30
|
+
*
|
|
31
|
+
* <eun-animate animation="fade">...</eun-animate>
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
eun-animate:not(:defined) {
|
|
35
|
+
--_distance: var(--animate-distance, 80px);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
eun-animate[animation="fade"]:not(:defined),
|
|
39
|
+
eun-animate[animation="faded-scroll-right"]:not(:defined),
|
|
40
|
+
eun-animate[animation="faded-scroll-left"]:not(:defined),
|
|
41
|
+
eun-animate[animation="faded-scroll-top"]:not(:defined),
|
|
42
|
+
eun-animate[animation="faded-scroll-bottom"]:not(:defined) {
|
|
43
|
+
opacity: 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
eun-animate[animation="scroll-right"]:not(:defined),
|
|
47
|
+
eun-animate[animation="faded-scroll-right"]:not(:defined) {
|
|
48
|
+
transform: translateX(calc(-1 * var(--_distance)));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
eun-animate[animation="scroll-left"]:not(:defined),
|
|
52
|
+
eun-animate[animation="faded-scroll-left"]:not(:defined) {
|
|
53
|
+
transform: translateX(var(--_distance));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
eun-animate[animation="scroll-top"]:not(:defined),
|
|
57
|
+
eun-animate[animation="faded-scroll-top"]:not(:defined) {
|
|
58
|
+
transform: translateY(var(--_distance));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
eun-animate[animation="scroll-bottom"]:not(:defined),
|
|
62
|
+
eun-animate[animation="faded-scroll-bottom"]:not(:defined) {
|
|
63
|
+
transform: translateY(calc(-1 * var(--_distance)));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* `tablet-animation`/`mobile-animation` overrides, mirroring the rules
|
|
68
|
+
* above and the same-named `@media` blocks in the component's own
|
|
69
|
+
* `animate.styles.ts` — kept in sync by hand, since this file has to
|
|
70
|
+
* duplicate the shadow DOM's styles for the light-DOM pre-hydration
|
|
71
|
+
* window regardless. Placed after the unscoped rules above so an
|
|
72
|
+
* equal-specificity tie (e.g. both `animation="fade"` and
|
|
73
|
+
* `tablet-animation="none"` set at once) resolves in the narrower
|
|
74
|
+
* breakpoint's favor, once its `@media` condition is true — same
|
|
75
|
+
* source-order reasoning as `animate.styles.ts`.
|
|
76
|
+
*
|
|
77
|
+
* `max-width` values match `EUNOMIA_BREAKPOINTS.tablet`/`.mobile`
|
|
78
|
+
* (`breakpoints.ts`) — hardcoded here since plain CSS can't read a JS
|
|
79
|
+
* constant.
|
|
80
|
+
*/
|
|
81
|
+
@media (max-width: 768px) {
|
|
82
|
+
eun-animate[tablet-animation="none"]:not(:defined) {
|
|
83
|
+
opacity: 1;
|
|
84
|
+
transform: none;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
eun-animate[tablet-animation="fade"]:not(:defined),
|
|
88
|
+
eun-animate[tablet-animation="faded-scroll-right"]:not(:defined),
|
|
89
|
+
eun-animate[tablet-animation="faded-scroll-left"]:not(:defined),
|
|
90
|
+
eun-animate[tablet-animation="faded-scroll-top"]:not(:defined),
|
|
91
|
+
eun-animate[tablet-animation="faded-scroll-bottom"]:not(:defined) {
|
|
92
|
+
opacity: 0;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
eun-animate[tablet-animation="scroll-right"]:not(:defined),
|
|
96
|
+
eun-animate[tablet-animation="faded-scroll-right"]:not(:defined) {
|
|
97
|
+
transform: translateX(calc(-1 * var(--_distance)));
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
eun-animate[tablet-animation="scroll-left"]:not(:defined),
|
|
101
|
+
eun-animate[tablet-animation="faded-scroll-left"]:not(:defined) {
|
|
102
|
+
transform: translateX(var(--_distance));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
eun-animate[tablet-animation="scroll-top"]:not(:defined),
|
|
106
|
+
eun-animate[tablet-animation="faded-scroll-top"]:not(:defined) {
|
|
107
|
+
transform: translateY(var(--_distance));
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
eun-animate[tablet-animation="scroll-bottom"]:not(:defined),
|
|
111
|
+
eun-animate[tablet-animation="faded-scroll-bottom"]:not(:defined) {
|
|
112
|
+
transform: translateY(calc(-1 * var(--_distance)));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@media (max-width: 600px) {
|
|
117
|
+
eun-animate[mobile-animation="none"]:not(:defined) {
|
|
118
|
+
opacity: 1;
|
|
119
|
+
transform: none;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
eun-animate[mobile-animation="fade"]:not(:defined),
|
|
123
|
+
eun-animate[mobile-animation="faded-scroll-right"]:not(:defined),
|
|
124
|
+
eun-animate[mobile-animation="faded-scroll-left"]:not(:defined),
|
|
125
|
+
eun-animate[mobile-animation="faded-scroll-top"]:not(:defined),
|
|
126
|
+
eun-animate[mobile-animation="faded-scroll-bottom"]:not(:defined) {
|
|
127
|
+
opacity: 0;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
eun-animate[mobile-animation="scroll-right"]:not(:defined),
|
|
131
|
+
eun-animate[mobile-animation="faded-scroll-right"]:not(:defined) {
|
|
132
|
+
transform: translateX(calc(-1 * var(--_distance)));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
eun-animate[mobile-animation="scroll-left"]:not(:defined),
|
|
136
|
+
eun-animate[mobile-animation="faded-scroll-left"]:not(:defined) {
|
|
137
|
+
transform: translateX(var(--_distance));
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
eun-animate[mobile-animation="scroll-top"]:not(:defined),
|
|
141
|
+
eun-animate[mobile-animation="faded-scroll-top"]:not(:defined) {
|
|
142
|
+
transform: translateY(var(--_distance));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
eun-animate[mobile-animation="scroll-bottom"]:not(:defined),
|
|
146
|
+
eun-animate[mobile-animation="faded-scroll-bottom"]:not(:defined) {
|
|
147
|
+
transform: translateY(calc(-1 * var(--_distance)));
|
|
148
|
+
}
|
|
149
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional light-DOM stylesheet for server-rendered pages (Next.js, or
|
|
3
|
+
* any framework/setup without Declarative Shadow DOM for Lit
|
|
4
|
+
* components), covering every closed-by-default overlay/disclosure
|
|
5
|
+
* component in one file : `eun-collapse`, `eun-drawer`, `eun-modal`,
|
|
6
|
+
* `eun-dropdown-button`, and `eun-tooltip`. Each hides its own slotted
|
|
7
|
+
* content only through its own Shadow DOM (a `grid-template-rows: 0fr`
|
|
8
|
+
* panel for collapse, a `popover="manual"`/`popover="auto"` surface for
|
|
9
|
+
* the rest), which doesn't exist yet in server-rendered HTML. That
|
|
10
|
+
* content renders as plain, unstyled light-DOM children instead, on top
|
|
11
|
+
* of everything else on the page, until the element upgrades — the same
|
|
12
|
+
* SSR flash `animate-ssr.css`/`toolbar-ssr.css`/`sidebar-ssr.css`
|
|
13
|
+
* document for their own components, just for content that's meant to
|
|
14
|
+
* stay hidden until something opens it, rather than a starting animation
|
|
15
|
+
* state or a persistent, always-visible layout piece.
|
|
16
|
+
*
|
|
17
|
+
* This stylesheet lives in the host document instead, hiding that exact
|
|
18
|
+
* content through `:not(:defined)`, which is true from first paint and
|
|
19
|
+
* stops matching permanently the moment the browser upgrades the
|
|
20
|
+
* element — handing off to each component's own Shadow DOM at exactly
|
|
21
|
+
* the point it takes over, with no gap.
|
|
22
|
+
*
|
|
23
|
+
* Usage — link it in the page `<head>`, alongside (not instead of)
|
|
24
|
+
* importing whichever of these components the page actually uses :
|
|
25
|
+
*
|
|
26
|
+
* <link
|
|
27
|
+
* rel="stylesheet"
|
|
28
|
+
* href="node_modules/@eunomia/elements/dist/ssr/overlay-ssr.css"
|
|
29
|
+
* />
|
|
30
|
+
*
|
|
31
|
+
* `eun-drawer`/`eun-modal` are skipped whenever `open` is written
|
|
32
|
+
* explicitly in the server-rendered markup, so a dialog meant to be
|
|
33
|
+
* visible on first paint (a startup announcement, for instance) still
|
|
34
|
+
* renders — see the `open` attribute on the component's own doc page for
|
|
35
|
+
* the same requirement `animate-ssr.css` documents for `animation`, and
|
|
36
|
+
* `eun-collapse`'s own `open` attribute for the same reasoning there.
|
|
37
|
+
* `eun-dropdown-button`'s own trigger label (its default slot) and
|
|
38
|
+
* `eun-tooltip`'s own trigger (`slot="anchor"`) are never hidden, only
|
|
39
|
+
* their menu/panel content is.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
eun-collapse:not(:defined):not([open]) > :not([slot]) {
|
|
43
|
+
display: none;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
eun-drawer:not(:defined):not([open]) > *,
|
|
47
|
+
eun-modal:not(:defined):not([open]) > * {
|
|
48
|
+
display: none;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
eun-dropdown-button:not(:defined) > [slot="items"] {
|
|
52
|
+
display: none;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
eun-tooltip:not(:defined) > :not([slot="anchor"]) {
|
|
56
|
+
display: none;
|
|
57
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional light-DOM stylesheet for `<eun-sidebar>` in server-rendered
|
|
3
|
+
* pages (Next.js, or any framework/setup without Declarative Shadow DOM
|
|
4
|
+
* for Lit components). Closes the same SSR flash described in
|
|
5
|
+
* eun-toolbar's own SSR notes (see `toolbar-ssr.css`), but here it hits
|
|
6
|
+
* every instance, not just a mobile-only panel : `display: flex` and the
|
|
7
|
+
* sidebar's own width live in eun-sidebar's Shadow DOM, which doesn't
|
|
8
|
+
* exist yet in server-rendered HTML. An unregistered custom element
|
|
9
|
+
* defaults to `display: inline` with no layout of its own, so a
|
|
10
|
+
* server-rendered sidebar renders as a plain run of unstyled inline
|
|
11
|
+
* content (header, body, footer flowing one after another) first, then
|
|
12
|
+
* snaps into a proper flex column the instant the element upgrades. A
|
|
13
|
+
* sidebar meant to start `collapsed` (mini or fully hidden) makes this
|
|
14
|
+
* worse : that state lives in the same Shadow DOM too, so it renders at
|
|
15
|
+
* full width first, then shrinks down on upgrade instead of the other
|
|
16
|
+
* way around.
|
|
17
|
+
*
|
|
18
|
+
* This stylesheet lives in the host document instead, mirroring
|
|
19
|
+
* eun-sidebar's own resting layout through `:not(:defined)`, which is
|
|
20
|
+
* true from first paint and stops matching permanently the moment the
|
|
21
|
+
* browser upgrades the element — handing off to eun-sidebar's own Shadow
|
|
22
|
+
* DOM styles at exactly the point they take over, with no gap.
|
|
23
|
+
*
|
|
24
|
+
* Usage — link it in the page `<head>`, alongside (not instead of)
|
|
25
|
+
* importing "@eunomia/elements/sidebar.js" :
|
|
26
|
+
*
|
|
27
|
+
* <link
|
|
28
|
+
* rel="stylesheet"
|
|
29
|
+
* href="node_modules/@eunomia/elements/dist/ssr/sidebar-ssr.css"
|
|
30
|
+
* />
|
|
31
|
+
*
|
|
32
|
+
* `collapsed`/`collapse-mode`/`dragged-hidden` only take effect here when
|
|
33
|
+
* written explicitly in the server-rendered markup, same requirement
|
|
34
|
+
* `animate-ssr.css` documents for `animation` :
|
|
35
|
+
*
|
|
36
|
+
* <eun-sidebar collapsed collapse-mode="mini">...</eun-sidebar>
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
eun-sidebar:not(:defined) {
|
|
40
|
+
display: flex;
|
|
41
|
+
position: sticky;
|
|
42
|
+
top: 0;
|
|
43
|
+
flex-shrink: 0;
|
|
44
|
+
height: 100%;
|
|
45
|
+
box-sizing: border-box;
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
width: var(--sidebar-width, 280px);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
eun-sidebar[collapsed][collapse-mode="mini"]:not(:defined) {
|
|
51
|
+
width: var(--sidebar-mini-width, 64px);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
eun-sidebar[collapsed][collapse-mode="hidden"]:not(:defined),
|
|
55
|
+
eun-sidebar[dragged-hidden]:not(:defined) {
|
|
56
|
+
width: 0px;
|
|
57
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional light-DOM stylesheet for `<eun-toolbar>` in server-rendered
|
|
3
|
+
* pages (Next.js, or any framework/setup without Declarative Shadow DOM
|
|
4
|
+
* for Lit components). It closes the SSR flash described in the
|
|
5
|
+
* eun-toolbar documentation's Server-side rendering notes : the default
|
|
6
|
+
* slot (the mobile panel's own content, everything slotted in without a
|
|
7
|
+
* `slot` attribute) is only ever hidden by eun-toolbar's own Shadow DOM,
|
|
8
|
+
* either tucked inside a closed native popover once the element is
|
|
9
|
+
* upgraded and `mobile` is true, or simply never projected anywhere once
|
|
10
|
+
* upgraded and it's false. Server-rendered HTML has no Shadow DOM yet,
|
|
11
|
+
* so that content renders as plain, unstyled light-DOM children instead —
|
|
12
|
+
* visible, unpositioned, and often full-width/height, on top of
|
|
13
|
+
* everything else on the page, until the element upgrades.
|
|
14
|
+
*
|
|
15
|
+
* This stylesheet lives in the host document instead, hiding that exact
|
|
16
|
+
* content through `:not(:defined)`, which is true from first paint and
|
|
17
|
+
* stops matching permanently the moment the browser upgrades the
|
|
18
|
+
* element — handing off to eun-toolbar's own Shadow DOM at exactly the
|
|
19
|
+
* point it takes over, with no gap. Safe regardless of viewport : the
|
|
20
|
+
* content stays exactly as hidden post-upgrade whether `mobile` ends up
|
|
21
|
+
* true (closed popover) or false (never rendered at all), so this never
|
|
22
|
+
* has to guess at the breakpoint.
|
|
23
|
+
*
|
|
24
|
+
* Usage — link it in the page `<head>`, alongside (not instead of)
|
|
25
|
+
* importing "@eunomia/elements/toolbar.js" :
|
|
26
|
+
*
|
|
27
|
+
* <link
|
|
28
|
+
* rel="stylesheet"
|
|
29
|
+
* href="node_modules/@eunomia/elements/dist/ssr/toolbar-ssr.css"
|
|
30
|
+
* />
|
|
31
|
+
*
|
|
32
|
+
* The `start`/`center`/`end` slots aren't covered here : that content is
|
|
33
|
+
* meant to stay visible (and stay part of LCP) before upgrade too, same
|
|
34
|
+
* as after, so hiding it isn't this stylesheet's job. Style its own
|
|
35
|
+
* pre-upgrade layout, if needed, directly with `eun-toolbar:not(:defined)`
|
|
36
|
+
* in the host page's own CSS.
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
eun-toolbar:not(:defined) > :not([slot]) {
|
|
40
|
+
display: none;
|
|
41
|
+
}
|