@eunomia/elements 1.0.0-beta.4 → 1.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/breakpoints.d.ts +37 -10
- package/dist/breakpoints.js +38 -10
- package/dist/cdn/components/chunks/{chunk-MMLIPCOY.js → chunk-22D3SRFR.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-4MXL6PZC.js → chunk-2Y2EU2CI.js} +28 -28
- package/dist/cdn/components/chunks/chunk-3MTUVMM5.js +1 -0
- package/dist/cdn/components/chunks/chunk-4PI6RDUS.js +1 -0
- package/dist/cdn/components/chunks/chunk-5GKM5DIB.js +1 -0
- package/dist/cdn/components/chunks/chunk-624VJYNA.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5XJLIHAU.js → chunk-7KKWYPHY.js} +4 -2
- package/dist/cdn/components/chunks/chunk-A3X4KD2X.js +1 -0
- package/dist/cdn/components/chunks/chunk-BKZGTCMF.js +1 -0
- package/dist/cdn/components/chunks/{chunk-GW3VP2L7.js → chunk-BO3JOEWM.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-NHFWATVN.js → chunk-BQFJR2UP.js} +5 -5
- package/dist/cdn/components/chunks/chunk-EUWUDCBZ.js +1 -0
- package/dist/cdn/components/chunks/{chunk-P32B7BFD.js → chunk-FF3I7C3C.js} +15 -15
- package/dist/cdn/components/chunks/{chunk-74AOAB4X.js → chunk-FOILAXLL.js} +6 -5
- package/dist/cdn/components/chunks/{chunk-E4IS25H7.js → chunk-G5SBDQQ3.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-LGLQ36QB.js → chunk-GDBPWZN6.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-S2UCEWNG.js → chunk-JYIIWN2P.js} +13 -11
- package/dist/cdn/components/chunks/{chunk-EOWBYZV7.js → chunk-KDN4O5W2.js} +26 -13
- package/dist/cdn/components/chunks/chunk-KSZRQRN4.js +1 -0
- package/dist/cdn/components/chunks/{chunk-PED5ATYN.js → chunk-L2ADCEN7.js} +1 -1
- package/dist/cdn/components/chunks/chunk-LMVW522V.js +1 -0
- package/dist/cdn/components/chunks/{chunk-5XJGYXW7.js → chunk-MOMYII3P.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-SIHZFOTK.js → chunk-MQQ4BGVJ.js} +5 -5
- package/dist/cdn/components/chunks/{chunk-A4EQSU36.js → chunk-O7PHBLH2.js} +1 -1
- package/dist/cdn/components/chunks/chunk-PD62MBOJ.js +1 -0
- package/dist/cdn/components/chunks/{chunk-KBH5PCUO.js → chunk-PE4DAXHQ.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-GSJEJLFA.js → chunk-PMPSJG5V.js} +7 -7
- package/dist/cdn/components/chunks/{chunk-5EVP7YNE.js → chunk-PPCHQG7P.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-EJIX2D4Z.js → chunk-QZ5SHR3I.js} +15 -11
- package/dist/cdn/components/chunks/chunk-RS7TWEMQ.js +1 -0
- package/dist/cdn/components/chunks/chunk-SMTIDNGW.js +1 -0
- package/dist/cdn/components/chunks/{chunk-YGUJJ25C.js → chunk-SZYEBMG6.js} +11 -10
- package/dist/cdn/components/chunks/chunk-UDVB4LAE.js +56 -0
- package/dist/cdn/components/chunks/{chunk-UAGCQF23.js → chunk-UYZR4JXZ.js} +17 -12
- package/dist/cdn/components/chunks/chunk-VG6NAAIV.js +1 -0
- package/dist/cdn/components/chunks/chunk-VJCNHMQZ.js +10 -0
- package/dist/cdn/components/chunks/chunk-VOTRXBDS.js +38 -0
- package/dist/cdn/components/chunks/{chunk-BMQOI7HX.js → chunk-VYFR364B.js} +128 -74
- package/dist/cdn/components/chunks/{chunk-IJ5WFMK4.js → chunk-XDPRWUKN.js} +7 -6
- package/dist/cdn/components/chunks/{chunk-XH6NREVZ.js → chunk-YITWLCD3.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-BQHYZB2W.js → chunk-ZBN4HTWP.js} +1 -1
- package/dist/cdn/components/chunks/{chunk-RJCJXB7Y.js → chunk-ZKZV2YG5.js} +18 -18
- package/dist/cdn/components/eun-alert.js +24 -16
- package/dist/cdn/components/eun-animate.js +12 -6
- package/dist/cdn/components/eun-badge.js +7 -7
- package/dist/cdn/components/eun-breadcrumb.js +25 -41
- package/dist/cdn/components/eun-button.js +1 -1
- package/dist/cdn/components/eun-calendar.js +68 -66
- package/dist/cdn/components/eun-card.js +67 -13
- package/dist/cdn/components/eun-carousel.js +66 -35
- package/dist/cdn/components/eun-check-card.js +13 -6
- package/dist/cdn/components/eun-checkbox-list.js +4 -4
- package/dist/cdn/components/eun-checkbox.js +1 -1
- package/dist/cdn/components/eun-chip.js +1 -1
- package/dist/cdn/components/eun-collapse.js +87 -39
- package/dist/cdn/components/eun-color-picker.js +54 -53
- package/dist/cdn/components/eun-counter.js +14 -13
- package/dist/cdn/components/eun-date-picker.js +66 -63
- package/dist/cdn/components/eun-description-list.js +152 -0
- package/dist/cdn/components/eun-divider.js +1 -1
- package/dist/cdn/components/eun-drawer.js +26 -12
- package/dist/cdn/components/eun-dropdown-button.js +1 -1
- package/dist/cdn/components/eun-dropdown-item.js +6 -5
- package/dist/cdn/components/eun-fab.js +20 -19
- package/dist/cdn/components/eun-icon.js +1 -1
- package/dist/cdn/components/eun-image-card.js +79 -22
- package/dist/cdn/components/eun-image-carousel.js +92 -47
- package/dist/cdn/components/eun-infinite-list.js +23 -11
- package/dist/cdn/components/eun-input-file.js +14 -13
- package/dist/cdn/components/eun-input-phone.js +26 -26
- package/dist/cdn/components/eun-input.js +1 -1
- package/dist/cdn/components/eun-label.js +4 -4
- package/dist/cdn/components/eun-link.js +174 -27
- package/dist/cdn/components/eun-loader.js +1 -1
- package/dist/cdn/components/eun-modal.js +29 -22
- package/dist/cdn/components/eun-pagination.js +17 -12
- package/dist/cdn/components/eun-password-strength.js +6 -2
- package/dist/cdn/components/eun-progress-bar.js +13 -5
- package/dist/cdn/components/eun-radio-card.js +16 -9
- package/dist/cdn/components/eun-radio-list.js +4 -4
- package/dist/cdn/components/eun-radio.js +1 -1
- package/dist/cdn/components/eun-scheduler-event-editor.js +8 -8
- package/dist/cdn/components/eun-scheduler-event.js +1 -1
- package/dist/cdn/components/eun-scheduler.js +42 -42
- package/dist/cdn/components/eun-search.js +21 -20
- package/dist/cdn/components/eun-select.js +12 -11
- package/dist/cdn/components/eun-sidebar.js +34 -20
- package/dist/cdn/components/eun-skeleton.js +1 -1
- package/dist/cdn/components/eun-slider.js +15 -14
- package/dist/cdn/components/eun-sliding-card.js +8 -4
- package/dist/cdn/components/eun-step.js +17 -6
- package/dist/cdn/components/eun-stepper.js +17 -6
- package/dist/cdn/components/eun-switch.js +10 -8
- package/dist/cdn/components/eun-tab-group.js +22 -17
- package/dist/cdn/components/eun-tab-panel.js +11 -3
- package/dist/cdn/components/eun-tab.js +1 -1
- package/dist/cdn/components/eun-table-action-bar.js +1 -1
- package/dist/cdn/components/eun-table.js +572 -31
- package/dist/cdn/components/eun-tag.js +13 -7
- package/dist/cdn/components/eun-textarea.js +24 -24
- package/dist/cdn/components/eun-time-picker.js +21 -19
- package/dist/cdn/components/eun-toast.js +36 -16
- package/dist/cdn/components/eun-toggle-group.js +64 -37
- package/dist/cdn/components/eun-toggle-item.js +24 -21
- package/dist/cdn/components/eun-toggle.js +12 -10
- package/dist/cdn/components/eun-toolbar.js +62 -52
- package/dist/cdn/components/eun-tooltip.js +30 -14
- package/dist/cdn/styles/breakpoints.scss +8 -0
- package/dist/cdn/styles/eunomia-grid.scss +6 -0
- package/dist/cdn/styles/eunomia-themes.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.css +1 -1
- package/dist/cdn/styles/themes/eunomia-theme.scss +4 -3
- package/dist/cdn/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
- package/dist/cdn/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
- package/dist/cdn/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.css +1 -1
- package/dist/cdn/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
- package/dist/cdn/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
- package/dist/cdn/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/dist/cdn/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
- package/dist/cdn/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
- package/dist/cdn/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
- package/dist/cdn/styles/tools/variables/eunomia.breakpoints.scss +4 -0
- package/dist/components/action/button/button.d.ts +51 -19
- package/dist/components/action/button/button.js +107 -24
- package/dist/components/action/button/button.styles.js +115 -62
- package/dist/components/action/dropdown-button/dropdown-button.d.ts +10 -10
- package/dist/components/action/dropdown-button/dropdown-button.js +18 -17
- package/dist/components/action/dropdown-button/dropdown-button.styles.js +3 -2
- package/dist/components/action/dropdown-button/dropdown-item.js +5 -6
- package/dist/components/action/dropdown-button/dropdown-item.styles.js +3 -2
- package/dist/components/action/fab/fab.d.ts +7 -6
- package/dist/components/action/fab/fab.js +11 -8
- package/dist/components/action/fab/fab.styles.js +18 -17
- package/dist/components/action/link/link.d.ts +72 -9
- package/dist/components/action/link/link.js +183 -23
- package/dist/components/action/link/link.styles.js +146 -10
- package/dist/components/action/shared-styles/button-palette.styles.d.ts +3 -3
- package/dist/components/action/shared-styles/button-palette.styles.js +29 -29
- package/dist/components/action/toggle/toggle-group.d.ts +17 -5
- package/dist/components/action/toggle/toggle-group.js +46 -19
- package/dist/components/action/toggle/toggle-group.styles.d.ts +4 -1
- package/dist/components/action/toggle/toggle-group.styles.js +56 -27
- package/dist/components/action/toggle/toggle-item.d.ts +4 -4
- package/dist/components/action/toggle/toggle-item.js +2 -2
- package/dist/components/action/toggle/toggle-item.styles.js +20 -17
- package/dist/components/action/toggle/toggle.d.ts +2 -0
- package/dist/components/action/toggle/toggle.js +2 -0
- package/dist/components/action/toggle/toggle.styles.d.ts +2 -0
- package/dist/components/action/toggle/toggle.styles.js +12 -8
- package/dist/components/alert/alert/alert.d.ts +2 -0
- package/dist/components/alert/alert/alert.js +2 -0
- package/dist/components/alert/alert/alert.styles.js +23 -13
- package/dist/components/alert/drawer/drawer.d.ts +3 -1
- package/dist/components/alert/drawer/drawer.js +5 -3
- package/dist/components/alert/drawer/drawer.styles.js +25 -9
- package/dist/components/alert/modal/modal.d.ts +11 -9
- package/dist/components/alert/modal/modal.js +15 -13
- package/dist/components/alert/modal/modal.styles.js +16 -7
- package/dist/components/alert/toast/toast.d.ts +2 -0
- package/dist/components/alert/toast/toast.js +2 -0
- package/dist/components/alert/toast/toast.styles.js +37 -15
- package/dist/components/content/badge/badge.d.ts +6 -6
- package/dist/components/content/badge/badge.js +4 -4
- package/dist/components/content/badge/badge.styles.js +4 -4
- package/dist/components/content/card/card.d.ts +39 -7
- package/dist/components/content/card/card.js +71 -7
- package/dist/components/content/card/card.styles.js +58 -11
- package/dist/components/content/card/image-card.d.ts +62 -7
- package/dist/components/content/card/image-card.js +121 -11
- package/dist/components/content/card/image-card.styles.js +66 -15
- package/dist/components/content/card/sliding-card.d.ts +4 -1
- package/dist/components/content/card/sliding-card.js +3 -0
- package/dist/components/content/card/sliding-card.styles.js +5 -1
- package/dist/components/content/collapse/collapse.d.ts +39 -12
- package/dist/components/content/collapse/collapse.js +65 -25
- package/dist/components/content/collapse/collapse.styles.d.ts +10 -1
- package/dist/components/content/collapse/collapse.styles.js +69 -18
- package/dist/components/content/description-list/description-list.d.ts +87 -0
- package/dist/components/content/description-list/description-list.js +107 -0
- package/dist/components/content/description-list/description-list.styles.d.ts +1 -0
- package/dist/components/content/description-list/description-list.styles.js +185 -0
- package/dist/components/content/icon/icon.d.ts +14 -2
- package/dist/components/content/icon/icon.js +54 -22
- package/dist/components/content/icon/icon.style.d.ts +2 -0
- package/dist/components/content/icon/icon.style.js +8 -2
- package/dist/components/content/image-carousel/image-carousel.d.ts +30 -19
- package/dist/components/content/image-carousel/image-carousel.js +48 -45
- package/dist/components/content/image-carousel/image-carousel.styles.js +69 -30
- package/dist/components/content/password-strength/password-strength.styles.js +5 -1
- package/dist/components/content/progress-bar/progress-bar.styles.js +12 -4
- package/dist/components/content/shared-styles/card-link.styles.js +5 -3
- package/dist/components/content/shared-styles/tone-surface.styles.d.ts +5 -0
- package/dist/components/content/shared-styles/tone-surface.styles.js +19 -14
- package/dist/components/content/tag/tag.d.ts +4 -0
- package/dist/components/content/tag/tag.js +4 -0
- package/dist/components/content/tag/tag.styles.js +14 -4
- package/dist/components/content/tooltip/tooltip.d.ts +3 -2
- package/dist/components/content/tooltip/tooltip.js +9 -16
- package/dist/components/content/tooltip/tooltip.styles.js +25 -7
- package/dist/components/form/checkbox/check-card.d.ts +4 -1
- package/dist/components/form/checkbox/check-card.js +4 -1
- package/dist/components/form/checkbox/check-card.styles.js +13 -4
- package/dist/components/form/checkbox/checkbox-list.d.ts +4 -1
- package/dist/components/form/checkbox/checkbox-list.js +11 -7
- package/dist/components/form/checkbox/checkbox.d.ts +4 -1
- package/dist/components/form/checkbox/checkbox.js +4 -1
- package/dist/components/form/checkbox/checkbox.styles.js +2 -2
- package/dist/components/form/color-picker/color-picker.d.ts +10 -4
- package/dist/components/form/color-picker/color-picker.js +23 -25
- package/dist/components/form/color-picker/color-picker.styles.js +6 -5
- package/dist/components/form/counter/counter.d.ts +7 -4
- package/dist/components/form/counter/counter.js +8 -5
- package/dist/components/form/counter/counter.styles.js +10 -9
- package/dist/components/form/date-picker/date-picker.d.ts +40 -36
- package/dist/components/form/date-picker/date-picker.js +35 -45
- package/dist/components/form/date-picker/date-picker.styles.js +13 -10
- package/dist/components/form/input/input.d.ts +10 -4
- package/dist/components/form/input/input.js +12 -6
- package/dist/components/form/input-file/input-file.d.ts +4 -1
- package/dist/components/form/input-file/input-file.js +8 -5
- package/dist/components/form/input-file/input-file.styles.js +3 -2
- package/dist/components/form/input-phone/input-phone.d.ts +11 -5
- package/dist/components/form/input-phone/input-phone.js +16 -20
- package/dist/components/form/input-phone/input-phone.styles.js +16 -16
- package/dist/components/form/label/label.styles.js +3 -3
- package/dist/components/form/radio/radio-card.d.ts +5 -2
- package/dist/components/form/radio/radio-card.js +5 -2
- package/dist/components/form/radio/radio-card.styles.js +14 -5
- package/dist/components/form/radio/radio-list.d.ts +5 -2
- package/dist/components/form/radio/radio-list.js +14 -10
- package/dist/components/form/radio/radio.d.ts +5 -2
- package/dist/components/form/radio/radio.js +5 -2
- package/dist/components/form/radio/radio.styles.js +4 -4
- package/dist/components/form/search/search.d.ts +2 -1
- package/dist/components/form/search/search.js +6 -15
- package/dist/components/form/search/search.styles.js +8 -7
- package/dist/components/form/select/select.d.ts +12 -5
- package/dist/components/form/select/select.js +18 -21
- package/dist/components/form/select/select.styles.js +3 -2
- package/dist/components/form/shared-styles/card.styles.js +5 -4
- package/dist/components/form/shared-styles/field.styles.js +21 -11
- package/dist/components/form/shared-styles/form-labels.styles.js +1 -1
- package/dist/components/form/slider/slider.d.ts +4 -1
- package/dist/components/form/slider/slider.js +5 -2
- package/dist/components/form/slider/slider.styles.js +8 -7
- package/dist/components/form/switch/switch.d.ts +4 -1
- package/dist/components/form/switch/switch.js +4 -1
- package/dist/components/form/switch/switch.styles.js +7 -5
- package/dist/components/form/textarea/textarea.d.ts +10 -4
- package/dist/components/form/textarea/textarea.js +18 -12
- package/dist/components/form/time-picker/time-picker-columns.styles.js +4 -2
- package/dist/components/form/time-picker/time-picker-list.styles.js +2 -1
- package/dist/components/form/time-picker/time-picker.d.ts +9 -5
- package/dist/components/form/time-picker/time-picker.js +25 -29
- package/dist/components/form/time-picker/time-picker.styles.js +9 -8
- package/dist/components/layout/animate/animate.d.ts +41 -11
- package/dist/components/layout/animate/animate.js +48 -16
- package/dist/components/layout/animate/animate.styles.js +9 -16
- package/dist/components/layout/infinite-list/infinite-list.d.ts +33 -10
- package/dist/components/layout/infinite-list/infinite-list.js +115 -18
- package/dist/components/layout/infinite-list/infinite-list.styles.d.ts +3 -0
- package/dist/components/layout/infinite-list/infinite-list.styles.js +17 -5
- package/dist/components/loader/loader/loader.styles.js +3 -1
- package/dist/components/navigation/breadcrumb/breadcrumb.d.ts +31 -45
- package/dist/components/navigation/breadcrumb/breadcrumb.js +111 -77
- package/dist/components/navigation/breadcrumb/breadcrumb.styles.d.ts +3 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.styles.js +22 -26
- package/dist/components/navigation/carousel/carousel.d.ts +30 -10
- package/dist/components/navigation/carousel/carousel.js +37 -18
- package/dist/components/navigation/carousel/carousel.styles.js +60 -20
- package/dist/components/navigation/pagination/pagination.styles.js +8 -3
- package/dist/components/navigation/sidebar/sidebar.d.ts +2 -0
- package/dist/components/navigation/sidebar/sidebar.js +2 -0
- package/dist/components/navigation/sidebar/sidebar.styles.js +27 -11
- package/dist/components/navigation/stepper/step.styles.js +16 -5
- package/dist/components/navigation/stepper/stepper.styles.js +16 -5
- package/dist/components/navigation/tabs/tab/tab.d.ts +11 -0
- package/dist/components/navigation/tabs/tab/tab.js +11 -0
- package/dist/components/navigation/tabs/tab/tab.styles.js +22 -16
- package/dist/components/navigation/tabs/tab-group/tab-group.js +7 -8
- package/dist/components/navigation/tabs/tab-group/tab-group.styles.js +19 -14
- package/dist/components/navigation/tabs/tab-panel/tab-panel.d.ts +4 -0
- package/dist/components/navigation/tabs/tab-panel/tab-panel.js +4 -0
- package/dist/components/navigation/tabs/tab-panel/tab-panel.styles.js +18 -1
- package/dist/components/navigation/toolbar/toolbar.d.ts +17 -49
- package/dist/components/navigation/toolbar/toolbar.js +23 -71
- package/dist/components/navigation/toolbar/toolbar.styles.js +59 -36
- package/dist/events/table-row-click.event.d.ts +5 -4
- package/dist/events/table-row-click.event.js +10 -5
- package/dist/features/scheduler/calendar/calendar.d.ts +12 -12
- package/dist/features/scheduler/calendar/calendar.js +15 -14
- package/dist/features/scheduler/calendar/calendar.styles.js +8 -6
- package/dist/features/scheduler/scheduler/scheduler.d.ts +7 -7
- package/dist/features/scheduler/scheduler/scheduler.js +21 -35
- package/dist/features/scheduler/scheduler/scheduler.styles.js +6 -4
- package/dist/features/scheduler/scheduler-event/scheduler-event.d.ts +12 -8
- package/dist/features/scheduler/scheduler-event/scheduler-event.js +9 -7
- package/dist/features/scheduler/scheduler-event/scheduler-event.styles.js +16 -10
- package/dist/features/scheduler/scheduler-event-editor/scheduler-event-editor.js +5 -5
- package/dist/features/scheduler/shared/scheduler-event-popover.js +2 -2
- package/dist/features/scheduler/shared/scheduler-hour-grid.d.ts +2 -2
- package/dist/features/scheduler/shared/scheduler-hour-grid.js +3 -3
- package/dist/features/scheduler/shared/scheduler-hour-grid.styles.js +3 -3
- package/dist/features/scheduler/shared/scheduler-month-view.d.ts +3 -3
- package/dist/features/scheduler/shared/scheduler-month-view.js +2 -2
- package/dist/features/scheduler/shared/scheduler-month-view.styles.js +2 -2
- package/dist/features/scheduler/shared/scheduler-year-view.styles.js +2 -2
- package/dist/features/table/table/table-native.styles.d.ts +28 -0
- package/dist/features/table/table/table-native.styles.js +502 -0
- package/dist/features/table/table/table.d.ts +342 -294
- package/dist/features/table/table/table.js +820 -546
- package/dist/features/table/table/table.styles.js +31 -17
- package/dist/features/table/table/table.types.d.ts +18 -23
- package/dist/features/table/table/table.utils.d.ts +6 -36
- package/dist/features/table/table/table.utils.js +16 -65
- package/dist/features/table/table-action-bar/table-action-bar.d.ts +33 -16
- package/dist/features/table/table-action-bar/table-action-bar.js +18 -25
- package/dist/features/table/table-action-bar/table-action-bar.styles.js +15 -3
- package/dist/i18n/en.d.ts +34 -0
- package/dist/i18n/en.js +34 -0
- package/dist/i18n/fr.js +38 -0
- package/dist/index.d.ts +7 -13
- package/dist/index.js +6 -10
- package/dist/jsx.d.ts +1 -1
- package/dist/mixins/button.mixin.d.ts +10 -9
- package/dist/mixins/button.mixin.js +14 -6
- package/dist/mixins/card-link.mixin.d.ts +3 -2
- package/dist/mixins/card-link.mixin.js +12 -5
- package/dist/mixins/check.mixin.js +4 -5
- package/dist/mixins/disabled.mixin.d.ts +3 -3
- package/dist/mixins/disabled.mixin.js +10 -5
- package/dist/mixins/field-appearance.mixin.d.ts +19 -0
- package/dist/mixins/{field-variant.mixin.js → field-appearance.mixin.js} +11 -11
- package/dist/mixins/form.mixin.d.ts +17 -1
- package/dist/mixins/form.mixin.js +80 -25
- package/dist/mixins/radio.mixin.js +4 -5
- package/dist/mixins/validators.mixin.d.ts +7 -1
- package/dist/mixins/validators.mixin.js +36 -17
- package/dist/ssr/animate-ssr.css +27 -72
- package/dist/ssr/button-ssr.css +319 -0
- package/dist/ssr/card-ssr.css +184 -0
- package/dist/ssr/description-list-ssr.css +150 -0
- package/dist/ssr/links-ssr.css +35 -0
- package/dist/ssr/overlay-ssr.css +0 -41
- package/dist/ssr/rich-text.css +38 -0
- package/dist/ssr/sidebar-ssr.css +0 -38
- package/dist/ssr/table-ssr.css +472 -0
- package/dist/ssr/tag-ssr.css +197 -0
- package/dist/ssr/toolbar-ssr.css +77 -39
- package/dist/types/variant.type.d.ts +26 -10
- package/dist/utils/drag-drop.utils.js +18 -2
- package/dist/utils/dropdown-menu.utils.d.ts +2 -2
- package/dist/utils/dropdown-menu.utils.js +4 -14
- package/dist/utils/light-dom-styles.utils.d.ts +14 -0
- package/dist/utils/light-dom-styles.utils.js +37 -0
- package/dist/utils/media.styles.d.ts +19 -0
- package/dist/utils/media.styles.js +23 -0
- package/dist/utils/motion.utils.d.ts +40 -0
- package/dist/utils/motion.utils.js +51 -0
- package/dist/utils/navigation.utils.d.ts +14 -0
- package/dist/utils/navigation.utils.js +33 -0
- package/dist/utils/new-tab-anchor.controller.d.ts +44 -0
- package/dist/utils/new-tab-anchor.controller.js +102 -0
- package/dist/utils/severity-icon.utils.d.ts +1 -1
- package/dist/utils/severity-icon.utils.js +1 -1
- package/dist/utils/theme-generator.utils.d.ts +9 -2
- package/dist/utils/theme-generator.utils.js +62 -21
- package/package.json +24 -29
- package/styles/breakpoints.scss +8 -0
- package/styles/eunomia-grid.scss +6 -0
- package/styles/themes/eunomia-theme.scss +4 -3
- package/styles/themes/mixins/eunomia-a11y-color.mixin.scss +34 -1
- package/styles/themes/mixins/eunomia-neutrals.mixin.scss +4 -0
- package/styles/themes/mixins/eunomia-states.mixin.scss +36 -12
- package/styles/themes/prebuilt-themes/eunomia/eunomia-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/eunomia/eunomia.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/eunomia/eunomia.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/fire/eunomia-fire-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/fire/eunomia-fire.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/forest/eunomia-forest-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/forest/eunomia-forest.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/gold/eunomia-gold-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/gold/eunomia-gold.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/ocean/eunomia-ocean.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/salmon/eunomia-salmon.theme.scss +3 -2
- package/styles/themes/prebuilt-themes/violet/eunomia-violet-dark.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.mixin.scss +10 -10
- package/styles/themes/prebuilt-themes/violet/eunomia-violet.theme.scss +3 -2
- package/styles/tools/indexes/eunomia-media-queries.index.scss +1 -3
- package/styles/tools/indexes/eunomia-tools.index.scss +1 -0
- package/styles/tools/mixins/layout/eunomia-grid.mixin.scss +117 -53
- package/styles/tools/mixins/media-queries/eunomia-media-queries.mixin.scss +69 -0
- package/styles/tools/mixins/settings/eunomia-alpha.mixin.scss +28 -4
- package/styles/tools/mixins/settings/eunomia-motion.mixin.scss +9 -0
- package/styles/tools/variables/eunomia.breakpoints.scss +4 -0
- package/dist/cdn/components/chunks/chunk-2JLDJFYD.js +0 -48
- package/dist/cdn/components/chunks/chunk-A6KGFALA.js +0 -132
- package/dist/cdn/components/chunks/chunk-ATH2OAMU.js +0 -1
- package/dist/cdn/components/chunks/chunk-BKHD4S57.js +0 -1
- package/dist/cdn/components/chunks/chunk-CEDHJUUH.js +0 -1
- package/dist/cdn/components/chunks/chunk-D2M4BV5Y.js +0 -328
- package/dist/cdn/components/chunks/chunk-E74CM7UG.js +0 -66
- package/dist/cdn/components/chunks/chunk-EST3M4AO.js +0 -1
- package/dist/cdn/components/chunks/chunk-GU6BVMFJ.js +0 -1
- package/dist/cdn/components/chunks/chunk-KVYUNKUO.js +0 -27
- package/dist/cdn/components/chunks/chunk-OAULRKHQ.js +0 -38
- package/dist/cdn/components/chunks/chunk-PCM7D3YF.js +0 -84
- package/dist/cdn/components/chunks/chunk-T4PTHUYF.js +0 -10
- package/dist/cdn/components/chunks/chunk-T7WABJEJ.js +0 -1
- package/dist/cdn/components/chunks/chunk-VRGRCYIO.js +0 -1
- package/dist/cdn/components/chunks/chunk-X2AUBZD2.js +0 -30
- package/dist/cdn/components/chunks/chunk-XSMCT4DF.js +0 -1
- package/dist/cdn/components/eun-breadcrumb-item.js +0 -93
- package/dist/cdn/components/eun-table-cell.js +0 -1
- package/dist/cdn/components/eun-table-column.js +0 -1
- package/dist/cdn/components/eun-table-header.js +0 -1
- package/dist/cdn/components/eun-table-item.js +0 -1
- package/dist/cdn/components/eun-table-skeleton-row.js +0 -1
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/dist/cdn/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
- package/dist/components/navigation/breadcrumb/breadcrumb-item.d.ts +0 -77
- package/dist/components/navigation/breadcrumb/breadcrumb-item.js +0 -130
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.d.ts +0 -6
- package/dist/components/navigation/breadcrumb/breadcrumb-item.styles.js +0 -78
- package/dist/features/table/native-table.css +0 -276
- package/dist/features/table/shared-styles/table-row.styles.d.ts +0 -7
- package/dist/features/table/shared-styles/table-row.styles.js +0 -47
- package/dist/features/table/shared-styles/table-shared.styles.d.ts +0 -23
- package/dist/features/table/shared-styles/table-shared.styles.js +0 -33
- package/dist/features/table/table-cell/table-cell.d.ts +0 -59
- package/dist/features/table/table-cell/table-cell.js +0 -73
- package/dist/features/table/table-cell/table-cell.styles.d.ts +0 -1
- package/dist/features/table/table-cell/table-cell.styles.js +0 -46
- package/dist/features/table/table-column/table-column.d.ts +0 -73
- package/dist/features/table/table-column/table-column.js +0 -89
- package/dist/features/table/table-column/table-column.styles.d.ts +0 -1
- package/dist/features/table/table-column/table-column.styles.js +0 -51
- package/dist/features/table/table-header/table-header.d.ts +0 -102
- package/dist/features/table/table-header/table-header.js +0 -165
- package/dist/features/table/table-header/table-header.styles.d.ts +0 -1
- package/dist/features/table/table-header/table-header.styles.js +0 -147
- package/dist/features/table/table-item/table-item.d.ts +0 -179
- package/dist/features/table/table-item/table-item.js +0 -291
- package/dist/features/table/table-item/table-item.styles.d.ts +0 -1
- package/dist/features/table/table-item/table-item.styles.js +0 -404
- package/dist/features/table/table-managed/table-managed.d.ts +0 -19
- package/dist/features/table/table-managed/table-managed.js +0 -128
- package/dist/features/table/table-skeleton-row/table-skeleton-row.d.ts +0 -46
- package/dist/features/table/table-skeleton-row/table-skeleton-row.js +0 -110
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.d.ts +0 -12
- package/dist/features/table/table-skeleton-row/table-skeleton-row.styles.js +0 -65
- package/dist/mixins/field-variant.mixin.d.ts +0 -22
- package/dist/mixins/table-row.mixin.d.ts +0 -37
- package/dist/mixins/table-row.mixin.js +0 -103
- package/styles/tools/mixins/media-queries/eunomia-device.mixin.scss +0 -14
- package/styles/tools/mixins/media-queries/eunomia-gte.mixin.scss +0 -26
- package/styles/tools/mixins/media-queries/eunomia-lte.mixin.scss +0 -26
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { css } from "lit";
|
|
2
|
+
import { cssBelow } from "../../../utils/media.styles.js";
|
|
2
3
|
/**
|
|
3
4
|
* Base style for the animate component.
|
|
4
5
|
*
|
|
5
6
|
* Custom css variables:
|
|
6
7
|
* [--animate-distance] - Set a custom travel distance for the scroll and faded-scroll animations
|
|
8
|
+
* [--animate-duration] - Set a custom transition duration for every animate without a duration of its own
|
|
7
9
|
*/
|
|
8
10
|
const base = css `
|
|
9
11
|
:host {
|
|
10
12
|
display: block;
|
|
11
13
|
--_distance: var(--animate-distance, 80px);
|
|
12
|
-
transition-duration: var(--_duration,
|
|
14
|
+
transition-duration: var(--_duration, var(--animate-duration, 1000ms));
|
|
13
15
|
transition-delay: var(--_delay, 0ms);
|
|
14
16
|
transition-timing-function: ease-in-out;
|
|
15
17
|
}
|
|
16
18
|
|
|
19
|
+
:host([animation="none"]) {
|
|
20
|
+
transition-property: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
:host([animation="fade"]) {
|
|
18
24
|
opacity: 0;
|
|
19
25
|
transition-property: opacity;
|
|
@@ -100,21 +106,8 @@ const base = css `
|
|
|
100
106
|
}
|
|
101
107
|
}
|
|
102
108
|
`;
|
|
103
|
-
/**
|
|
104
|
-
* \`tablet-animation\`/\`mobile-animation\` overrides — pure CSS \`@media\`
|
|
105
|
-
* switches, mirroring \`base\` above per animation value, so no JS ever
|
|
106
|
-
* needs to read the actual viewport width (see \`animate.ts\`'s own
|
|
107
|
-
* \`tabletAnimation\`/\`mobileAnimation\` doc comments). Placed after \`base\`
|
|
108
|
-
* so equal-specificity ties (e.g. both \`animation="fade"\` and
|
|
109
|
-
* \`tablet-animation="none"\` present at once) resolve in the narrower
|
|
110
|
-
* breakpoint's favor by source order, once its \`@media\` condition is true.
|
|
111
|
-
*
|
|
112
|
-
* \`max-width\` values match \`EUNOMIA_BREAKPOINTS.tablet\`/\`.mobile\`
|
|
113
|
-
* (\`breakpoints.ts\`) — hardcoded here since a plain CSS \`@media\` query
|
|
114
|
-
* can't read a JS constant.
|
|
115
|
-
*/
|
|
116
109
|
const breakpoints = css `
|
|
117
|
-
@media (
|
|
110
|
+
@media ${cssBelow("tablet")} {
|
|
118
111
|
:host([tablet-animation="none"]) {
|
|
119
112
|
opacity: 1;
|
|
120
113
|
transform: none;
|
|
@@ -202,7 +195,7 @@ const breakpoints = css `
|
|
|
202
195
|
}
|
|
203
196
|
}
|
|
204
197
|
|
|
205
|
-
@media (
|
|
198
|
+
@media ${cssBelow("mobile")} {
|
|
206
199
|
:host([mobile-animation="none"]) {
|
|
207
200
|
opacity: 1;
|
|
208
201
|
transform: none;
|
|
@@ -4,7 +4,13 @@ import "../../loader/loader/loader.js";
|
|
|
4
4
|
* Tag name of the infinite list component.
|
|
5
5
|
*/
|
|
6
6
|
export declare const EunomiaInfiniteListTagName = "eun-infinite-list";
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* How the list puts its items in the tab order: `roving` keeps the active
|
|
9
|
+
* item as the single Tab stop of the list, `none` leaves every item out of
|
|
10
|
+
* it, for items that already hold their own link or button.
|
|
11
|
+
*/
|
|
12
|
+
export type InfiniteListItemTabStop = "roving" | "none";
|
|
13
|
+
declare const EunomiaInfiniteList_base: import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/localizable.mixin.js").LocalizableMixinInterface> & import("../../../utils/constructor.type.js").Constructor<import("../../../mixins/load-more-sentinel.mixin.js").LoadMoreSentinelMixinInterface> & typeof LitElement;
|
|
8
14
|
/**
|
|
9
15
|
* Wraps a slotted list of items with scroll-triggered pagination: it
|
|
10
16
|
* reveals or fetches more as the user nears the end, shows a loading
|
|
@@ -32,21 +38,26 @@ declare const EunomiaInfiniteList_base: import("../../../utils/constructor.type.
|
|
|
32
38
|
* @slot [end] - Shown once hasMore is false, its own default, and every item has been slotted at least once. Empty by default, rendering nothing until you provide content
|
|
33
39
|
* @slot [empty] - Shown while there are zero items and loading is false
|
|
34
40
|
* @prop {number} [pageSize=20] - The number of items per page, both the unit the load-more event requests are made in, and the chunk size virtualization mounts and unmounts as a whole
|
|
35
|
-
* @prop {boolean} [virtualize=
|
|
41
|
+
* @prop {boolean} [virtualize=false] - Detaches pages far from the current scroll position once the list exceeds virtualizeThreshold, replacing each with a single sized spacer. Ignored while --infinite-list-columns is above 1, and best left off when a framework renders the items
|
|
36
42
|
* @prop {number} [virtualizeThreshold=100] - The total known item count above which virtualize actually starts detaching pages. Below it, every page stays mounted, since the bookkeeping isn't worth it for a short list
|
|
37
43
|
* @prop {number} [bufferPages=1] - The number of extra pages kept mounted before and after the page currently in view, so a small scroll doesn't immediately re-trigger a mount or unmount
|
|
38
44
|
* @prop {boolean} [loading=false] - Whether a load-more request is in flight. The list sets this to true itself right before dispatching the event, since only it can detect the scroll trigger. Setting it back to false once the new items are appended, or there aren't any, is your own responsibility, exactly like the search and select components' own loading
|
|
39
45
|
* @prop {boolean} [hasMore=false] - Whether more items can still be obtained, from local unrevealed children or a future load-more page. Defaults to false, so the zero-config, no script needed static case is the default, and API-paginated consumers opt in explicitly. Set it back to false once you've exhausted your dataset, or it keeps requesting empty pages forever
|
|
40
|
-
* @prop {string} [loadingLabel
|
|
46
|
+
* @prop {string} [loadingLabel] - The accessible label passed to the trailing loading indicator. Defaults to the localized string for the current locale (English: "Loading more items…")
|
|
47
|
+
* @prop {'roving' | 'none'} [itemTabStop='roving'] - How items enter the tab order. With roving, the active item is the list's single Tab stop. With none, no item is a Tab stop, so Tab only reaches the links and buttons inside them, while the arrow, Page Up/Down, Home and End keys still move between items
|
|
41
48
|
* @prop {string} [label] - The accessible name for the feed region. Strongly recommended
|
|
42
49
|
* @prop {string} [rootMargin='400px'] - How far before the physical end of the list the load-more event triggers, as a CSS-like margin. The default preloads a page before the user actually hits the bottom, so the loading indicator rarely shows for long
|
|
43
50
|
* @fires {LoadMoreEvent} eunloadmore - Fired when more items are needed and hasMore is true. Loading is already true by the time this fires
|
|
44
51
|
* @cssprop [--infinite-list-height] - Sets a fixed height, past which the list scrolls internally instead of the surrounding page. Unset, the default, the list grows with its content and the page scrolls it like any other block
|
|
52
|
+
* @cssprop [--infinite-list-columns] - Sets the number of columns items are laid out in, as a grid. Above 1, virtualization is turned off
|
|
45
53
|
* @cssprop [--infinite-list-gap] - Sets the gap between items
|
|
46
54
|
* @cssprop [--infinite-list-padding] - Sets the padding around the scrollable area
|
|
55
|
+
* @cssprop [--infinite-list-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
56
|
+
* @cssprop [--infinite-list-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
47
57
|
* @cssprop [--infinite-list-loading-padding] - Sets the padding around the trailing loading indicator
|
|
48
58
|
* @cssprop [--infinite-list-end-color] - Sets the color of the default end and empty slot area
|
|
49
59
|
* @cssprop [--infinite-list-focus-outline-color] - Sets a fallback focus outline color applied to slotted items that don't set their own
|
|
60
|
+
* @csspart feed - The element wrapping the items, laid out as a grid
|
|
50
61
|
* @element eun-infinite-list
|
|
51
62
|
*/
|
|
52
63
|
export declare class EunomiaInfiniteList extends EunomiaInfiniteList_base {
|
|
@@ -66,8 +77,10 @@ export declare class EunomiaInfiniteList extends EunomiaInfiniteList_base {
|
|
|
66
77
|
pageSize: number;
|
|
67
78
|
/**
|
|
68
79
|
* Detaches pages far from the current scroll position once the list
|
|
69
|
-
* exceeds `virtualizeThreshold`.
|
|
70
|
-
*
|
|
80
|
+
* exceeds `virtualizeThreshold`. Off by default, so a framework that
|
|
81
|
+
* renders the items (and can only set attributes before the element
|
|
82
|
+
* upgrades) never has to turn it off.
|
|
83
|
+
* @default false
|
|
71
84
|
*/
|
|
72
85
|
virtualize: boolean;
|
|
73
86
|
/**
|
|
@@ -98,10 +111,18 @@ export declare class EunomiaInfiniteList extends EunomiaInfiniteList_base {
|
|
|
98
111
|
*/
|
|
99
112
|
hasMore: boolean;
|
|
100
113
|
/**
|
|
101
|
-
* Accessible label passed to the trailing `eun-loader`.
|
|
102
|
-
*
|
|
114
|
+
* Accessible label passed to the trailing `eun-loader`. Falls back to
|
|
115
|
+
* `this.dictionary.infiniteList.loadingMore` (see `LocalizableMixin`)
|
|
116
|
+
* when unset.
|
|
117
|
+
*/
|
|
118
|
+
loadingLabel?: string;
|
|
119
|
+
/**
|
|
120
|
+
* How items enter the tab order : `roving` keeps the active item as the
|
|
121
|
+
* list's single Tab stop, `none` leaves them all out of it, for items
|
|
122
|
+
* that already hold their own link or button.
|
|
123
|
+
* @default roving
|
|
103
124
|
*/
|
|
104
|
-
|
|
125
|
+
itemTabStop: InfiniteListItemTabStop;
|
|
105
126
|
/**
|
|
106
127
|
* Accessible name for the feed region.
|
|
107
128
|
*/
|
|
@@ -119,8 +140,9 @@ export declare class EunomiaInfiniteList extends EunomiaInfiniteList_base {
|
|
|
119
140
|
*/
|
|
120
141
|
private itemCount;
|
|
121
142
|
/**
|
|
122
|
-
* The
|
|
123
|
-
*
|
|
143
|
+
* The container wrapping the feed, which scrolls internally (and becomes
|
|
144
|
+
* the `IntersectionObserver` root) only once `--infinite-list-height`
|
|
145
|
+
* bounds it.
|
|
124
146
|
* @internal
|
|
125
147
|
* @readonly
|
|
126
148
|
*/
|
|
@@ -139,6 +161,7 @@ export declare class EunomiaInfiniteList extends EunomiaInfiniteList_base {
|
|
|
139
161
|
* @readonly
|
|
140
162
|
*/
|
|
141
163
|
private readonly announcerEl?;
|
|
164
|
+
connectedCallback(): void;
|
|
142
165
|
disconnectedCallback(): void;
|
|
143
166
|
protected firstUpdated(): void;
|
|
144
167
|
protected updated(changed: PropertyValues): void;
|
|
@@ -15,13 +15,14 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
15
15
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
16
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
17
17
|
};
|
|
18
|
-
var _EunomiaInfiniteList_instances, _EunomiaInfiniteList_items, _EunomiaInfiniteList_mountedPages, _EunomiaInfiniteList_detachedByPage, _EunomiaInfiniteList_pageHeights, _EunomiaInfiniteList_avgItemHeight, _EunomiaInfiniteList_activeIndex, _EunomiaInfiniteList_mutatingSlot, _EunomiaInfiniteList_requestedPages, _EunomiaInfiniteList_resizeObserver, _EunomiaInfiniteList_applyItemAttributes, _EunomiaInfiniteList_handleScroll, _EunomiaInfiniteList_syncPages, _EunomiaInfiniteList_estimateCenterPage, _EunomiaInfiniteList_estimatePageHeight, _EunomiaInfiniteList_mountPage, _EunomiaInfiniteList_unmountPage, _EunomiaInfiniteList_setupLoadObserver, _EunomiaInfiniteList_maybeLoadMore, _EunomiaInfiniteList_focusItem, _EunomiaInfiniteList_focusOutside, _EunomiaInfiniteList_handleKeydown, _EunomiaInfiniteList_handleFocusIn, _EunomiaInfiniteList_handleSlotChange;
|
|
18
|
+
var _EunomiaInfiniteList_instances, _EunomiaInfiniteList_items, _EunomiaInfiniteList_mountedPages, _EunomiaInfiniteList_detachedByPage, _EunomiaInfiniteList_pageHeights, _EunomiaInfiniteList_avgItemHeight, _EunomiaInfiniteList_activeIndex, _EunomiaInfiniteList_mutatingSlot, _EunomiaInfiniteList_requestedPages, _EunomiaInfiniteList_resizeObserver, _EunomiaInfiniteList_contained, _EunomiaInfiniteList_columns, _EunomiaInfiniteList_applyItemAttributes, _EunomiaInfiniteList_syncLayout, _EunomiaInfiniteList_handleScroll, _EunomiaInfiniteList_handleWindowScroll, _EunomiaInfiniteList_syncPages, _EunomiaInfiniteList_estimateCenterPage, _EunomiaInfiniteList_estimatePageHeight, _EunomiaInfiniteList_mountPage, _EunomiaInfiniteList_unmountPage, _EunomiaInfiniteList_setupLoadObserver, _EunomiaInfiniteList_maybeLoadMore, _EunomiaInfiniteList_focusItem, _EunomiaInfiniteList_focusOutside, _EunomiaInfiniteList_handleKeydown, _EunomiaInfiniteList_handleFocusIn, _EunomiaInfiniteList_handleFocusOut, _EunomiaInfiniteList_handleSlotChange;
|
|
19
19
|
import { customElement, property, query, state } from "lit/decorators.js";
|
|
20
20
|
import { html, LitElement } from "lit";
|
|
21
21
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
22
22
|
import { infiniteListStyles } from "./infinite-list.styles.js";
|
|
23
23
|
import { LoadMoreEvent } from "../../../events/loadmore.event.js";
|
|
24
24
|
import { LoadMoreSentinelMixin } from "../../../mixins/load-more-sentinel.mixin.js";
|
|
25
|
+
import { LocalizableMixin } from "../../../mixins/localizable.mixin.js";
|
|
25
26
|
import "../../loader/loader/loader.js";
|
|
26
27
|
/**
|
|
27
28
|
* Tag name of the infinite list component.
|
|
@@ -72,24 +73,29 @@ const FOCUSABLE_SELECTOR = 'a[href], button:not([disabled]), input:not([disabled
|
|
|
72
73
|
* @slot [end] - Shown once hasMore is false, its own default, and every item has been slotted at least once. Empty by default, rendering nothing until you provide content
|
|
73
74
|
* @slot [empty] - Shown while there are zero items and loading is false
|
|
74
75
|
* @prop {number} [pageSize=20] - The number of items per page, both the unit the load-more event requests are made in, and the chunk size virtualization mounts and unmounts as a whole
|
|
75
|
-
* @prop {boolean} [virtualize=
|
|
76
|
+
* @prop {boolean} [virtualize=false] - Detaches pages far from the current scroll position once the list exceeds virtualizeThreshold, replacing each with a single sized spacer. Ignored while --infinite-list-columns is above 1, and best left off when a framework renders the items
|
|
76
77
|
* @prop {number} [virtualizeThreshold=100] - The total known item count above which virtualize actually starts detaching pages. Below it, every page stays mounted, since the bookkeeping isn't worth it for a short list
|
|
77
78
|
* @prop {number} [bufferPages=1] - The number of extra pages kept mounted before and after the page currently in view, so a small scroll doesn't immediately re-trigger a mount or unmount
|
|
78
79
|
* @prop {boolean} [loading=false] - Whether a load-more request is in flight. The list sets this to true itself right before dispatching the event, since only it can detect the scroll trigger. Setting it back to false once the new items are appended, or there aren't any, is your own responsibility, exactly like the search and select components' own loading
|
|
79
80
|
* @prop {boolean} [hasMore=false] - Whether more items can still be obtained, from local unrevealed children or a future load-more page. Defaults to false, so the zero-config, no script needed static case is the default, and API-paginated consumers opt in explicitly. Set it back to false once you've exhausted your dataset, or it keeps requesting empty pages forever
|
|
80
|
-
* @prop {string} [loadingLabel
|
|
81
|
+
* @prop {string} [loadingLabel] - The accessible label passed to the trailing loading indicator. Defaults to the localized string for the current locale (English: "Loading more items…")
|
|
82
|
+
* @prop {'roving' | 'none'} [itemTabStop='roving'] - How items enter the tab order. With roving, the active item is the list's single Tab stop. With none, no item is a Tab stop, so Tab only reaches the links and buttons inside them, while the arrow, Page Up/Down, Home and End keys still move between items
|
|
81
83
|
* @prop {string} [label] - The accessible name for the feed region. Strongly recommended
|
|
82
84
|
* @prop {string} [rootMargin='400px'] - How far before the physical end of the list the load-more event triggers, as a CSS-like margin. The default preloads a page before the user actually hits the bottom, so the loading indicator rarely shows for long
|
|
83
85
|
* @fires {LoadMoreEvent} eunloadmore - Fired when more items are needed and hasMore is true. Loading is already true by the time this fires
|
|
84
86
|
* @cssprop [--infinite-list-height] - Sets a fixed height, past which the list scrolls internally instead of the surrounding page. Unset, the default, the list grows with its content and the page scrolls it like any other block
|
|
87
|
+
* @cssprop [--infinite-list-columns] - Sets the number of columns items are laid out in, as a grid. Above 1, virtualization is turned off
|
|
85
88
|
* @cssprop [--infinite-list-gap] - Sets the gap between items
|
|
86
89
|
* @cssprop [--infinite-list-padding] - Sets the padding around the scrollable area
|
|
90
|
+
* @cssprop [--infinite-list-padding-block] - Sets the vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
91
|
+
* @cssprop [--infinite-list-padding-inline] - Sets the horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
87
92
|
* @cssprop [--infinite-list-loading-padding] - Sets the padding around the trailing loading indicator
|
|
88
93
|
* @cssprop [--infinite-list-end-color] - Sets the color of the default end and empty slot area
|
|
89
94
|
* @cssprop [--infinite-list-focus-outline-color] - Sets a fallback focus outline color applied to slotted items that don't set their own
|
|
95
|
+
* @csspart feed - The element wrapping the items, laid out as a grid
|
|
90
96
|
* @element eun-infinite-list
|
|
91
97
|
*/
|
|
92
|
-
let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixin(LitElement) {
|
|
98
|
+
let EunomiaInfiniteList = class EunomiaInfiniteList extends LocalizableMixin(LoadMoreSentinelMixin(LitElement)) {
|
|
93
99
|
constructor() {
|
|
94
100
|
super(...arguments);
|
|
95
101
|
_EunomiaInfiniteList_instances.add(this);
|
|
@@ -100,10 +106,12 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
100
106
|
this.pageSize = 20;
|
|
101
107
|
/**
|
|
102
108
|
* Detaches pages far from the current scroll position once the list
|
|
103
|
-
* exceeds `virtualizeThreshold`.
|
|
104
|
-
*
|
|
109
|
+
* exceeds `virtualizeThreshold`. Off by default, so a framework that
|
|
110
|
+
* renders the items (and can only set attributes before the element
|
|
111
|
+
* upgrades) never has to turn it off.
|
|
112
|
+
* @default false
|
|
105
113
|
*/
|
|
106
|
-
this.virtualize =
|
|
114
|
+
this.virtualize = false;
|
|
107
115
|
/**
|
|
108
116
|
* Total known item count above which `virtualize` actually starts
|
|
109
117
|
* detaching pages.
|
|
@@ -132,10 +140,12 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
132
140
|
*/
|
|
133
141
|
this.hasMore = false;
|
|
134
142
|
/**
|
|
135
|
-
*
|
|
136
|
-
*
|
|
143
|
+
* How items enter the tab order : `roving` keeps the active item as the
|
|
144
|
+
* list's single Tab stop, `none` leaves them all out of it, for items
|
|
145
|
+
* that already hold their own link or button.
|
|
146
|
+
* @default roving
|
|
137
147
|
*/
|
|
138
|
-
this.
|
|
148
|
+
this.itemTabStop = "roving";
|
|
139
149
|
/**
|
|
140
150
|
* How far before the physical end of the list `eunloadmore` triggers.
|
|
141
151
|
* @default 400px
|
|
@@ -205,9 +215,25 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
205
215
|
* @internal
|
|
206
216
|
*/
|
|
207
217
|
_EunomiaInfiniteList_resizeObserver.set(this, void 0);
|
|
218
|
+
/**
|
|
219
|
+
* Whether `--infinite-list-height` bounds {@link scrollerEl}, so the list
|
|
220
|
+
* scrolls internally instead of the page.
|
|
221
|
+
* @internal
|
|
222
|
+
*/
|
|
223
|
+
_EunomiaInfiniteList_contained.set(this, false);
|
|
224
|
+
/**
|
|
225
|
+
* Column count read from `--infinite-list-columns`.
|
|
226
|
+
* @internal
|
|
227
|
+
*/
|
|
228
|
+
_EunomiaInfiniteList_columns.set(this, 1);
|
|
208
229
|
_EunomiaInfiniteList_handleScroll.set(this, () => {
|
|
209
230
|
this.scheduleAnimationFrame(() => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncPages).call(this));
|
|
210
231
|
});
|
|
232
|
+
_EunomiaInfiniteList_handleWindowScroll.set(this, () => {
|
|
233
|
+
if (!__classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f")) {
|
|
234
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_handleScroll, "f").call(this);
|
|
235
|
+
}
|
|
236
|
+
});
|
|
211
237
|
_EunomiaInfiniteList_handleKeydown.set(this, (event) => {
|
|
212
238
|
if (event.defaultPrevented) {
|
|
213
239
|
return;
|
|
@@ -257,19 +283,47 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
257
283
|
__classPrivateFieldSet(this, _EunomiaInfiniteList_activeIndex, index, "f");
|
|
258
284
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
|
|
259
285
|
});
|
|
286
|
+
/**
|
|
287
|
+
* Drops the `tabindex` an item only got to take focus from the keyboard
|
|
288
|
+
* (`itemTabStop` set to `none`) once focus leaves it.
|
|
289
|
+
* @private
|
|
290
|
+
*/
|
|
291
|
+
_EunomiaInfiniteList_handleFocusOut.set(this, (event) => {
|
|
292
|
+
const target = event.target;
|
|
293
|
+
if (this.itemTabStop === "none" &&
|
|
294
|
+
target instanceof HTMLElement &&
|
|
295
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").includes(target)) {
|
|
296
|
+
target.removeAttribute("tabindex");
|
|
297
|
+
}
|
|
298
|
+
});
|
|
260
299
|
_EunomiaInfiniteList_handleSlotChange.set(this, () => {
|
|
261
300
|
this.syncItemsFromLightDom();
|
|
262
301
|
});
|
|
263
302
|
}
|
|
303
|
+
connectedCallback() {
|
|
304
|
+
super.connectedCallback();
|
|
305
|
+
window.addEventListener("scroll", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleWindowScroll, "f"), {
|
|
306
|
+
passive: true,
|
|
307
|
+
});
|
|
308
|
+
if (this.hasUpdated && this.scrollerEl) {
|
|
309
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_resizeObserver, "f")?.observe(this.scrollerEl);
|
|
310
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
264
313
|
disconnectedCallback() {
|
|
265
314
|
this.teardownLoadMoreSentinel();
|
|
266
315
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_resizeObserver, "f")?.disconnect();
|
|
316
|
+
window.removeEventListener("scroll", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleWindowScroll, "f"));
|
|
267
317
|
super.disconnectedCallback();
|
|
268
318
|
}
|
|
269
319
|
firstUpdated() {
|
|
320
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncLayout).call(this);
|
|
270
321
|
this.syncItemsFromLightDom();
|
|
271
322
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
|
|
272
|
-
__classPrivateFieldSet(this, _EunomiaInfiniteList_resizeObserver, new ResizeObserver(() => this.scheduleAnimationFrame(() =>
|
|
323
|
+
__classPrivateFieldSet(this, _EunomiaInfiniteList_resizeObserver, new ResizeObserver(() => this.scheduleAnimationFrame(() => {
|
|
324
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncLayout).call(this);
|
|
325
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncPages).call(this);
|
|
326
|
+
})), "f");
|
|
273
327
|
if (this.scrollerEl) {
|
|
274
328
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_resizeObserver, "f").observe(this.scrollerEl);
|
|
275
329
|
this.scrollerEl.addEventListener("scroll", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleScroll, "f"), {
|
|
@@ -278,13 +332,14 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
278
332
|
}
|
|
279
333
|
this.addEventListener("keydown", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleKeydown, "f"));
|
|
280
334
|
this.addEventListener("focusin", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleFocusIn, "f"));
|
|
335
|
+
this.addEventListener("focusout", __classPrivateFieldGet(this, _EunomiaInfiniteList_handleFocusOut, "f"));
|
|
281
336
|
}
|
|
282
337
|
updated(changed) {
|
|
283
338
|
super.updated(changed);
|
|
284
339
|
if (changed.has("rootMargin")) {
|
|
285
340
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
|
|
286
341
|
}
|
|
287
|
-
if (changed.has("hasMore")) {
|
|
342
|
+
if (changed.has("hasMore") || changed.has("itemTabStop")) {
|
|
288
343
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
|
|
289
344
|
}
|
|
290
345
|
if (changed.has("virtualize") ||
|
|
@@ -346,7 +401,8 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
346
401
|
__classPrivateFieldSet(this, _EunomiaInfiniteList_mountedPages, mountedPages, "f");
|
|
347
402
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
|
|
348
403
|
if (isAppend && addedCount > 0 && this.announcerEl) {
|
|
349
|
-
this.announcerEl.textContent =
|
|
404
|
+
this.announcerEl.textContent =
|
|
405
|
+
this.dictionary.infiniteList.itemsLoaded(addedCount);
|
|
350
406
|
}
|
|
351
407
|
this.scheduleAnimationFrame(() => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_syncPages).call(this));
|
|
352
408
|
this.reobserveSentinel(this.sentinelEl);
|
|
@@ -358,6 +414,7 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
358
414
|
<div id="scroller">
|
|
359
415
|
<div
|
|
360
416
|
id="feed"
|
|
417
|
+
part="feed"
|
|
361
418
|
role="feed"
|
|
362
419
|
aria-label=${ifDefined(this.label)}
|
|
363
420
|
aria-busy=${this.loading ? "true" : "false"}
|
|
@@ -366,7 +423,10 @@ let EunomiaInfiniteList = class EunomiaInfiniteList extends LoadMoreSentinelMixi
|
|
|
366
423
|
</div>
|
|
367
424
|
<div id="sentinel" aria-hidden="true"></div>
|
|
368
425
|
<div id="loading-row" ?hidden=${!this.loading}>
|
|
369
|
-
<eun-loader
|
|
426
|
+
<eun-loader
|
|
427
|
+
label=${this.loadingLabel ??
|
|
428
|
+
this.dictionary.infiniteList.loadingMore}
|
|
429
|
+
></eun-loader>
|
|
370
430
|
</div>
|
|
371
431
|
<div id="end" ?hidden=${!showEnd}><slot name="end"></slot></div>
|
|
372
432
|
<div id="empty" ?hidden=${!showEmpty}><slot name="empty"></slot></div>
|
|
@@ -389,13 +449,18 @@ _EunomiaInfiniteList_activeIndex = new WeakMap();
|
|
|
389
449
|
_EunomiaInfiniteList_mutatingSlot = new WeakMap();
|
|
390
450
|
_EunomiaInfiniteList_requestedPages = new WeakMap();
|
|
391
451
|
_EunomiaInfiniteList_resizeObserver = new WeakMap();
|
|
452
|
+
_EunomiaInfiniteList_contained = new WeakMap();
|
|
453
|
+
_EunomiaInfiniteList_columns = new WeakMap();
|
|
392
454
|
_EunomiaInfiniteList_handleScroll = new WeakMap();
|
|
455
|
+
_EunomiaInfiniteList_handleWindowScroll = new WeakMap();
|
|
393
456
|
_EunomiaInfiniteList_handleKeydown = new WeakMap();
|
|
394
457
|
_EunomiaInfiniteList_handleFocusIn = new WeakMap();
|
|
458
|
+
_EunomiaInfiniteList_handleFocusOut = new WeakMap();
|
|
395
459
|
_EunomiaInfiniteList_handleSlotChange = new WeakMap();
|
|
396
460
|
_EunomiaInfiniteList_instances = new WeakSet();
|
|
397
461
|
_EunomiaInfiniteList_applyItemAttributes = function _EunomiaInfiniteList_applyItemAttributes() {
|
|
398
462
|
const setSize = this.hasMore ? -1 : __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").length;
|
|
463
|
+
const roving = this.itemTabStop !== "none";
|
|
399
464
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").forEach((item, index) => {
|
|
400
465
|
if (!item.isConnected) {
|
|
401
466
|
return;
|
|
@@ -405,16 +470,40 @@ _EunomiaInfiniteList_applyItemAttributes = function _EunomiaInfiniteList_applyIt
|
|
|
405
470
|
}
|
|
406
471
|
item.setAttribute("aria-posinset", String(index + 1));
|
|
407
472
|
item.setAttribute("aria-setsize", String(setSize));
|
|
408
|
-
|
|
473
|
+
if (roving && index === __classPrivateFieldGet(this, _EunomiaInfiniteList_activeIndex, "f")) {
|
|
474
|
+
item.tabIndex = 0;
|
|
475
|
+
}
|
|
476
|
+
else if (!item.matches(":focus")) {
|
|
477
|
+
item.removeAttribute("tabindex");
|
|
478
|
+
}
|
|
409
479
|
});
|
|
410
480
|
};
|
|
481
|
+
_EunomiaInfiniteList_syncLayout = function _EunomiaInfiniteList_syncLayout() {
|
|
482
|
+
const scroller = this.scrollerEl;
|
|
483
|
+
if (!scroller) {
|
|
484
|
+
return;
|
|
485
|
+
}
|
|
486
|
+
const columns = Number.parseInt(getComputedStyle(this).getPropertyValue("--infinite-list-columns"), 10);
|
|
487
|
+
__classPrivateFieldSet(this, _EunomiaInfiniteList_columns, columns > 0 ? columns : 1, "f");
|
|
488
|
+
const contained = getComputedStyle(scroller).maxBlockSize !== "none";
|
|
489
|
+
if (contained === __classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f")) {
|
|
490
|
+
return;
|
|
491
|
+
}
|
|
492
|
+
__classPrivateFieldSet(this, _EunomiaInfiniteList_contained, contained, "f");
|
|
493
|
+
scroller.classList.toggle("contained", contained);
|
|
494
|
+
if (this.loadObserver) {
|
|
495
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_setupLoadObserver).call(this);
|
|
496
|
+
}
|
|
497
|
+
};
|
|
411
498
|
_EunomiaInfiniteList_syncPages = function _EunomiaInfiniteList_syncPages() {
|
|
412
499
|
const totalItems = __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f").length;
|
|
413
500
|
if (totalItems === 0) {
|
|
414
501
|
return;
|
|
415
502
|
}
|
|
416
503
|
const totalPages = Math.ceil(totalItems / this.pageSize);
|
|
417
|
-
if (!this.virtualize ||
|
|
504
|
+
if (!this.virtualize ||
|
|
505
|
+
__classPrivateFieldGet(this, _EunomiaInfiniteList_columns, "f") > 1 ||
|
|
506
|
+
totalItems <= this.virtualizeThreshold) {
|
|
418
507
|
for (let page = 0; page < totalPages; page++) {
|
|
419
508
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_mountPage).call(this, page);
|
|
420
509
|
}
|
|
@@ -440,7 +529,9 @@ _EunomiaInfiniteList_estimateCenterPage = function _EunomiaInfiniteList_estimate
|
|
|
440
529
|
if (!scroller) {
|
|
441
530
|
return 0;
|
|
442
531
|
}
|
|
443
|
-
const target =
|
|
532
|
+
const target = __classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f")
|
|
533
|
+
? scroller.scrollTop + scroller.clientHeight / 2
|
|
534
|
+
: window.innerHeight / 2 - scroller.getBoundingClientRect().top;
|
|
444
535
|
let offset = 0;
|
|
445
536
|
for (let page = 0; page < totalPages; page++) {
|
|
446
537
|
const height = __classPrivateFieldGet(this, _EunomiaInfiniteList_pageHeights, "f")[page] ?? __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_estimatePageHeight).call(this, page);
|
|
@@ -523,7 +614,7 @@ _EunomiaInfiniteList_unmountPage = function _EunomiaInfiniteList_unmountPage(pag
|
|
|
523
614
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_mountedPages, "f").delete(page);
|
|
524
615
|
};
|
|
525
616
|
_EunomiaInfiniteList_setupLoadObserver = function _EunomiaInfiniteList_setupLoadObserver() {
|
|
526
|
-
this.setupLoadObserver(this.sentinelEl, this.scrollerEl ?? null, this.rootMargin, () => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_maybeLoadMore).call(this));
|
|
617
|
+
this.setupLoadObserver(this.sentinelEl, __classPrivateFieldGet(this, _EunomiaInfiniteList_contained, "f") ? (this.scrollerEl ?? null) : null, this.rootMargin, () => __classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_maybeLoadMore).call(this));
|
|
527
618
|
};
|
|
528
619
|
_EunomiaInfiniteList_maybeLoadMore = function _EunomiaInfiniteList_maybeLoadMore() {
|
|
529
620
|
if (this.loading || !this.hasMore) {
|
|
@@ -542,6 +633,9 @@ _EunomiaInfiniteList_focusItem = function _EunomiaInfiniteList_focusItem(index)
|
|
|
542
633
|
__classPrivateFieldSet(this, _EunomiaInfiniteList_activeIndex, index, "f");
|
|
543
634
|
__classPrivateFieldGet(this, _EunomiaInfiniteList_instances, "m", _EunomiaInfiniteList_applyItemAttributes).call(this);
|
|
544
635
|
const target = __classPrivateFieldGet(this, _EunomiaInfiniteList_items, "f")[index];
|
|
636
|
+
if (this.itemTabStop === "none") {
|
|
637
|
+
target.tabIndex = 0;
|
|
638
|
+
}
|
|
545
639
|
target.focus();
|
|
546
640
|
target.scrollIntoView({ block: "nearest" });
|
|
547
641
|
};
|
|
@@ -587,6 +681,9 @@ __decorate([
|
|
|
587
681
|
__decorate([
|
|
588
682
|
property({ attribute: "loading-label" })
|
|
589
683
|
], EunomiaInfiniteList.prototype, "loadingLabel", void 0);
|
|
684
|
+
__decorate([
|
|
685
|
+
property({ attribute: "item-tab-stop" })
|
|
686
|
+
], EunomiaInfiniteList.prototype, "itemTabStop", void 0);
|
|
590
687
|
__decorate([
|
|
591
688
|
property()
|
|
592
689
|
], EunomiaInfiniteList.prototype, "label", void 0);
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Custom css variables:
|
|
5
5
|
* [--infinite-list-height] - Set a custom fixed height, past which the list scrolls internally instead of the surrounding page ; unset (the default), the list grows with its content and the page scrolls it like any other block
|
|
6
|
+
* [--infinite-list-columns] - Set the number of columns items are laid out in, as a grid
|
|
6
7
|
* [--infinite-list-gap] - Set a custom gap between items
|
|
7
8
|
* [--infinite-list-padding] - Set a custom padding around the scrollable area
|
|
9
|
+
* [--infinite-list-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
10
|
+
* [--infinite-list-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
8
11
|
* [--infinite-list-loading-padding] - Set a custom padding around the trailing loading indicator
|
|
9
12
|
* [--infinite-list-end-color] - Set a custom color for the "end" slot's default position
|
|
10
13
|
* [--infinite-list-focus-outline-color] - Set a custom focus outline color applied to slotted items
|
|
@@ -4,8 +4,11 @@ import { css } from "lit";
|
|
|
4
4
|
*
|
|
5
5
|
* Custom css variables:
|
|
6
6
|
* [--infinite-list-height] - Set a custom fixed height, past which the list scrolls internally instead of the surrounding page ; unset (the default), the list grows with its content and the page scrolls it like any other block
|
|
7
|
+
* [--infinite-list-columns] - Set the number of columns items are laid out in, as a grid
|
|
7
8
|
* [--infinite-list-gap] - Set a custom gap between items
|
|
8
9
|
* [--infinite-list-padding] - Set a custom padding around the scrollable area
|
|
10
|
+
* [--infinite-list-padding-block] - Set a custom vertical padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
11
|
+
* [--infinite-list-padding-inline] - Set a custom horizontal padding, as one length applied to both sides. Ignored when --infinite-list-padding is set
|
|
9
12
|
* [--infinite-list-loading-padding] - Set a custom padding around the trailing loading indicator
|
|
10
13
|
* [--infinite-list-end-color] - Set a custom color for the "end" slot's default position
|
|
11
14
|
* [--infinite-list-focus-outline-color] - Set a custom focus outline color applied to slotted items
|
|
@@ -17,17 +20,26 @@ export const infiniteListStyles = css `
|
|
|
17
20
|
}
|
|
18
21
|
#scroller {
|
|
19
22
|
max-block-size: var(--infinite-list-height, none);
|
|
23
|
+
padding: var(
|
|
24
|
+
--infinite-list-padding,
|
|
25
|
+
var(--infinite-list-padding-block, 0)
|
|
26
|
+
var(--infinite-list-padding-inline, 0)
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
#scroller.contained {
|
|
20
30
|
overflow-y: auto;
|
|
21
31
|
overscroll-behavior: contain;
|
|
22
|
-
padding: var(--infinite-list-padding, 0);
|
|
23
32
|
}
|
|
24
33
|
#feed {
|
|
25
|
-
display:
|
|
26
|
-
|
|
34
|
+
display: grid;
|
|
35
|
+
grid-template-columns: repeat(
|
|
36
|
+
var(--infinite-list-columns, 1),
|
|
37
|
+
minmax(0, 1fr)
|
|
38
|
+
);
|
|
27
39
|
gap: var(--infinite-list-gap, var(--eun-space-m, 16px));
|
|
28
40
|
}
|
|
29
|
-
.eun-il-spacer {
|
|
30
|
-
|
|
41
|
+
::slotted(.eun-il-spacer) {
|
|
42
|
+
grid-column: 1 / -1;
|
|
31
43
|
visibility: hidden;
|
|
32
44
|
}
|
|
33
45
|
#sentinel {
|
|
@@ -115,7 +115,9 @@ const bar = css `
|
|
|
115
115
|
height: 100%;
|
|
116
116
|
border-radius: inherit;
|
|
117
117
|
background-color: var(--loader-bar-fill-color, currentColor);
|
|
118
|
-
transition: width
|
|
118
|
+
transition: width
|
|
119
|
+
var(--loader-bar-transition-duration, var(--eun-duration-xl, 300ms))
|
|
120
|
+
var(--eun-easing-default, ease);
|
|
119
121
|
}
|
|
120
122
|
|
|
121
123
|
:host([variant="bar"]) #fill.indeterminate {
|