@material/web 1.3.1-nightly.ec0a8eb.0 → 1.4.0
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/button/elevated-button.js +3 -3
- package/button/elevated-button.js.map +1 -1
- package/button/filled-button.js +3 -3
- package/button/filled-button.js.map +1 -1
- package/button/filled-tonal-button.js +3 -3
- package/button/filled-tonal-button.js.map +1 -1
- package/button/internal/_shared.scss +2 -0
- package/button/internal/elevated-button.js +1 -1
- package/button/internal/elevated-button.js.map +1 -1
- package/button/internal/elevated-styles.css +1 -0
- package/button/internal/elevated-styles.css.map +1 -0
- package/button/internal/{elevated-styles.css.js → elevated-styles.js} +7 -6
- package/button/internal/elevated-styles.js.map +1 -0
- package/button/internal/filled-button.js +1 -1
- package/button/internal/filled-button.js.map +1 -1
- package/button/internal/filled-styles.css +1 -0
- package/button/internal/filled-styles.css.map +1 -0
- package/button/internal/{filled-styles.css.js → filled-styles.js} +7 -6
- package/button/internal/filled-styles.js.map +1 -0
- package/button/internal/filled-tonal-button.js +1 -1
- package/button/internal/filled-tonal-button.js.map +1 -1
- package/button/internal/filled-tonal-styles.css +1 -0
- package/button/internal/filled-tonal-styles.css.map +1 -0
- package/button/internal/{filled-tonal-styles.css.js → filled-tonal-styles.js} +7 -6
- package/button/internal/filled-tonal-styles.js.map +1 -0
- package/button/internal/outlined-styles.css +1 -0
- package/button/internal/outlined-styles.css.map +1 -0
- package/button/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
- package/button/internal/outlined-styles.js.map +1 -0
- package/button/internal/shared-elevation-styles.css +1 -0
- package/button/internal/shared-elevation-styles.css.map +1 -0
- package/button/internal/{shared-elevation-styles.css.js → shared-elevation-styles.js} +7 -6
- package/button/internal/shared-elevation-styles.js.map +1 -0
- package/button/internal/shared-styles.css +1 -0
- package/button/internal/shared-styles.css.map +1 -0
- package/button/internal/shared-styles.js +10 -0
- package/button/internal/shared-styles.js.map +1 -0
- package/button/internal/text-styles.css +1 -0
- package/button/internal/text-styles.css.map +1 -0
- package/button/internal/{text-styles.css.js → text-styles.js} +7 -6
- package/button/internal/text-styles.js.map +1 -0
- package/button/outlined-button.js +2 -2
- package/button/outlined-button.js.map +1 -1
- package/button/text-button.js +2 -2
- package/button/text-button.js.map +1 -1
- package/checkbox/checkbox.js +1 -1
- package/checkbox/checkbox.js.map +1 -1
- package/checkbox/internal/checkbox-styles.css +1 -0
- package/checkbox/internal/checkbox-styles.css.map +1 -0
- package/checkbox/internal/{checkbox-styles.css.js → checkbox-styles.js} +7 -6
- package/checkbox/internal/checkbox-styles.js.map +1 -0
- package/chips/assist-chip.js +3 -3
- package/chips/assist-chip.js.map +1 -1
- package/chips/chip-set.js +1 -1
- package/chips/chip-set.js.map +1 -1
- package/chips/filter-chip.js +5 -5
- package/chips/filter-chip.js.map +1 -1
- package/chips/input-chip.js +4 -4
- package/chips/input-chip.js.map +1 -1
- package/chips/internal/_shared.scss +6 -0
- package/chips/internal/assist-chip.js +1 -1
- package/chips/internal/assist-chip.js.map +1 -1
- package/chips/internal/assist-styles.css +1 -0
- package/chips/internal/assist-styles.css.map +1 -0
- package/chips/internal/{assist-styles.css.js → assist-styles.js} +7 -6
- package/chips/internal/{assist-styles.css.js.map → assist-styles.js.map} +1 -1
- package/chips/internal/chip-set-styles.css +1 -0
- package/chips/internal/chip-set-styles.css.map +1 -0
- package/chips/internal/chip-set-styles.js +10 -0
- package/chips/internal/chip-set-styles.js.map +1 -0
- package/chips/internal/elevated-styles.css +1 -0
- package/chips/internal/elevated-styles.css.map +1 -0
- package/chips/internal/{elevated-styles.css.js → elevated-styles.js} +7 -6
- package/chips/internal/elevated-styles.js.map +1 -0
- package/chips/internal/filter-chip.js +1 -1
- package/chips/internal/filter-chip.js.map +1 -1
- package/chips/internal/filter-styles.css +1 -0
- package/chips/internal/filter-styles.css.map +1 -0
- package/chips/internal/{filter-styles.css.js → filter-styles.js} +7 -6
- package/chips/internal/{filter-styles.css.js.map → filter-styles.js.map} +1 -1
- package/chips/internal/input-styles.css +1 -0
- package/chips/internal/input-styles.css.map +1 -0
- package/chips/internal/{input-styles.css.js → input-styles.js} +7 -6
- package/chips/internal/input-styles.js.map +1 -0
- package/chips/internal/selectable-styles.css +1 -0
- package/chips/internal/selectable-styles.css.map +1 -0
- package/chips/internal/{selectable-styles.css.js → selectable-styles.js} +7 -6
- package/chips/internal/selectable-styles.js.map +1 -0
- package/chips/internal/shared-styles.css +1 -0
- package/chips/internal/shared-styles.css.map +1 -0
- package/chips/internal/{shared-styles.css.js → shared-styles.js} +7 -6
- package/chips/internal/{shared-styles.css.js.map → shared-styles.js.map} +1 -1
- package/chips/internal/suggestion-styles.css +1 -0
- package/chips/internal/suggestion-styles.css.map +1 -0
- package/chips/internal/{suggestion-styles.css.js → suggestion-styles.js} +7 -6
- package/chips/internal/suggestion-styles.js.map +1 -0
- package/chips/internal/trailing-icon-styles.css +1 -0
- package/chips/internal/trailing-icon-styles.css.map +1 -0
- package/chips/internal/{trailing-icon-styles.css.js → trailing-icon-styles.js} +7 -6
- package/chips/internal/trailing-icon-styles.js.map +1 -0
- package/chips/suggestion-chip.js +3 -3
- package/chips/suggestion-chip.js.map +1 -1
- package/dialog/dialog.js +1 -1
- package/dialog/dialog.js.map +1 -1
- package/dialog/internal/dialog-styles.css +1 -0
- package/dialog/internal/dialog-styles.css.map +1 -0
- package/dialog/internal/{dialog-styles.css.js → dialog-styles.js} +7 -6
- package/dialog/internal/dialog-styles.js.map +1 -0
- package/divider/divider.js +1 -1
- package/divider/divider.js.map +1 -1
- package/divider/internal/divider-styles.css +1 -0
- package/divider/internal/divider-styles.css.map +1 -0
- package/divider/internal/{divider-styles.css.js → divider-styles.js} +7 -6
- package/divider/internal/divider-styles.js.map +1 -0
- package/elevation/elevation.js +1 -1
- package/elevation/elevation.js.map +1 -1
- package/elevation/internal/_elevation.scss +6 -5
- package/elevation/internal/elevation-styles.css +1 -0
- package/elevation/internal/elevation-styles.css.map +1 -0
- package/elevation/internal/elevation-styles.js +10 -0
- package/elevation/internal/elevation-styles.js.map +1 -0
- package/fab/branded-fab.js +3 -3
- package/fab/branded-fab.js.map +1 -1
- package/fab/fab.js +3 -3
- package/fab/fab.js.map +1 -1
- package/fab/internal/_shared.scss +2 -0
- package/fab/internal/fab-branded-styles.css +1 -0
- package/fab/internal/fab-branded-styles.css.map +1 -0
- package/fab/internal/{fab-branded-styles.css.js → fab-branded-styles.js} +7 -6
- package/fab/internal/fab-branded-styles.js.map +1 -0
- package/fab/internal/fab-styles.css +1 -0
- package/fab/internal/fab-styles.css.map +1 -0
- package/fab/internal/{fab-styles.css.js → fab-styles.js} +7 -6
- package/fab/internal/fab-styles.js.map +1 -0
- package/fab/internal/forced-colors-styles.css +1 -0
- package/fab/internal/forced-colors-styles.css.map +1 -0
- package/fab/internal/{forced-colors-styles.css.js → forced-colors-styles.js} +7 -6
- package/fab/internal/forced-colors-styles.js.map +1 -0
- package/fab/internal/shared-styles.css +1 -0
- package/fab/internal/shared-styles.css.map +1 -0
- package/fab/internal/shared-styles.js +10 -0
- package/fab/internal/shared-styles.js.map +1 -0
- package/fab/internal/shared.js +1 -1
- package/fab/internal/shared.js.map +1 -1
- package/field/filled-field.js +2 -2
- package/field/filled-field.js.map +1 -1
- package/field/internal/filled-styles.css +1 -0
- package/field/internal/filled-styles.css.map +1 -0
- package/field/internal/{filled-styles.css.js → filled-styles.js} +7 -6
- package/field/internal/{filled-styles.css.js.map → filled-styles.js.map} +1 -1
- package/field/internal/outlined-styles.css +1 -0
- package/field/internal/outlined-styles.css.map +1 -0
- package/field/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
- package/field/internal/outlined-styles.js.map +1 -0
- package/field/internal/shared-styles.css +1 -0
- package/field/internal/shared-styles.css.map +1 -0
- package/field/internal/{shared-styles.css.js → shared-styles.js} +7 -6
- package/field/internal/{shared-styles.css.js.map → shared-styles.js.map} +1 -1
- package/field/outlined-field.js +2 -2
- package/field/outlined-field.js.map +1 -1
- package/focus/internal/focus-ring-styles.css +1 -0
- package/focus/internal/focus-ring-styles.css.map +1 -0
- package/focus/internal/{focus-ring-styles.css.js → focus-ring-styles.js} +7 -6
- package/focus/internal/focus-ring-styles.js.map +1 -0
- package/focus/md-focus-ring.js +1 -1
- package/focus/md-focus-ring.js.map +1 -1
- package/icon/icon.js +1 -1
- package/icon/icon.js.map +1 -1
- package/icon/internal/icon-styles.css +1 -0
- package/icon/internal/icon-styles.css.map +1 -0
- package/icon/internal/{icon-styles.css.js → icon-styles.js} +7 -6
- package/icon/internal/icon-styles.js.map +1 -0
- package/iconbutton/filled-icon-button.js +2 -2
- package/iconbutton/filled-icon-button.js.map +1 -1
- package/iconbutton/filled-tonal-icon-button.js +2 -2
- package/iconbutton/filled-tonal-icon-button.js.map +1 -1
- package/iconbutton/icon-button.js +2 -2
- package/iconbutton/icon-button.js.map +1 -1
- package/iconbutton/internal/filled-styles.css +1 -0
- package/iconbutton/internal/filled-styles.css.map +1 -0
- package/iconbutton/internal/{filled-styles.css.js → filled-styles.js} +7 -6
- package/iconbutton/internal/filled-styles.js.map +1 -0
- package/iconbutton/internal/filled-tonal-styles.css +1 -0
- package/iconbutton/internal/filled-tonal-styles.css.map +1 -0
- package/iconbutton/internal/{filled-tonal-styles.css.js → filled-tonal-styles.js} +7 -6
- package/iconbutton/internal/filled-tonal-styles.js.map +1 -0
- package/iconbutton/internal/outlined-styles.css +1 -0
- package/iconbutton/internal/outlined-styles.css.map +1 -0
- package/iconbutton/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
- package/iconbutton/internal/outlined-styles.js.map +1 -0
- package/iconbutton/internal/shared-styles.css +1 -0
- package/iconbutton/internal/shared-styles.css.map +1 -0
- package/iconbutton/internal/{shared-styles.css.js → shared-styles.js} +7 -6
- package/iconbutton/internal/shared-styles.js.map +1 -0
- package/iconbutton/internal/standard-styles.css +1 -0
- package/iconbutton/internal/standard-styles.css.map +1 -0
- package/iconbutton/internal/{standard-styles.css.js → standard-styles.js} +7 -6
- package/iconbutton/internal/standard-styles.js.map +1 -0
- package/iconbutton/outlined-icon-button.js +2 -2
- package/iconbutton/outlined-icon-button.js.map +1 -1
- package/labs/badge/badge.js +1 -1
- package/labs/badge/badge.js.map +1 -1
- package/labs/badge/internal/badge-styles.css +1 -0
- package/labs/badge/internal/badge-styles.css.map +1 -0
- package/labs/badge/internal/{badge-styles.css.js → badge-styles.js} +7 -6
- package/labs/badge/internal/badge-styles.js.map +1 -0
- package/labs/card/elevated-card.js +2 -2
- package/labs/card/elevated-card.js.map +1 -1
- package/labs/card/filled-card.js +2 -2
- package/labs/card/filled-card.js.map +1 -1
- package/labs/card/internal/elevated-styles.css +1 -0
- package/labs/card/internal/elevated-styles.css.map +1 -0
- package/labs/card/internal/{elevated-styles.css.js → elevated-styles.js} +7 -6
- package/labs/card/internal/elevated-styles.js.map +1 -0
- package/labs/card/internal/filled-styles.css +1 -0
- package/labs/card/internal/filled-styles.css.map +1 -0
- package/labs/card/internal/{filled-styles.css.js → filled-styles.js} +7 -6
- package/labs/card/internal/filled-styles.js.map +1 -0
- package/labs/card/internal/outlined-styles.css +1 -0
- package/labs/card/internal/outlined-styles.css.map +1 -0
- package/labs/card/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
- package/labs/card/internal/outlined-styles.js.map +1 -0
- package/labs/card/internal/shared-styles.css +1 -0
- package/labs/card/internal/shared-styles.css.map +1 -0
- package/labs/card/internal/{shared-styles.css.js → shared-styles.js} +7 -6
- package/labs/card/internal/shared-styles.js.map +1 -0
- package/labs/card/outlined-card.js +2 -2
- package/labs/card/outlined-card.js.map +1 -1
- package/labs/item/internal/item-styles.css +1 -0
- package/labs/item/internal/item-styles.css.map +1 -0
- package/labs/item/internal/{item-styles.css.js → item-styles.js} +7 -6
- package/labs/item/internal/item-styles.js.map +1 -0
- package/labs/item/item.js +1 -1
- package/labs/item/item.js.map +1 -1
- package/labs/navigationbar/internal/navigation-bar-styles.css +1 -0
- package/labs/navigationbar/internal/navigation-bar-styles.css.map +1 -0
- package/labs/navigationbar/internal/{navigation-bar-styles.css.js → navigation-bar-styles.js} +7 -6
- package/labs/navigationbar/internal/navigation-bar-styles.js.map +1 -0
- package/labs/navigationbar/internal/navigation-bar.js +1 -1
- package/labs/navigationbar/internal/navigation-bar.js.map +1 -1
- package/labs/navigationbar/navigation-bar.js +1 -1
- package/labs/navigationbar/navigation-bar.js.map +1 -1
- package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css +1 -0
- package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.map +1 -0
- package/labs/navigationdrawer/internal/{navigation-drawer-modal-styles.css.js → navigation-drawer-modal-styles.js} +7 -6
- package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.js.map +1 -0
- package/labs/navigationdrawer/internal/navigation-drawer-styles.css +1 -0
- package/labs/navigationdrawer/internal/navigation-drawer-styles.css.map +1 -0
- package/labs/navigationdrawer/internal/{navigation-drawer-styles.css.js → navigation-drawer-styles.js} +7 -6
- package/labs/navigationdrawer/internal/navigation-drawer-styles.js.map +1 -0
- package/labs/navigationdrawer/internal/navigation-drawer.js +1 -1
- package/labs/navigationdrawer/internal/navigation-drawer.js.map +1 -1
- package/labs/navigationdrawer/internal/shared-styles.css +1 -0
- package/labs/navigationdrawer/internal/shared-styles.css.map +1 -0
- package/labs/navigationdrawer/internal/{shared-styles.css.js → shared-styles.js} +7 -6
- package/labs/navigationdrawer/internal/shared-styles.js.map +1 -0
- package/labs/navigationdrawer/navigation-drawer-modal.js +2 -2
- package/labs/navigationdrawer/navigation-drawer-modal.js.map +1 -1
- package/labs/navigationdrawer/navigation-drawer.js +2 -2
- package/labs/navigationdrawer/navigation-drawer.js.map +1 -1
- package/labs/navigationtab/internal/_navigation-tab.scss +2 -0
- package/labs/navigationtab/internal/navigation-tab-styles.css +1 -0
- package/labs/navigationtab/internal/navigation-tab-styles.css.map +1 -0
- package/labs/navigationtab/internal/{navigation-tab-styles.css.js → navigation-tab-styles.js} +7 -6
- package/labs/navigationtab/internal/navigation-tab-styles.js.map +1 -0
- package/labs/navigationtab/navigation-tab.js +1 -1
- package/labs/navigationtab/navigation-tab.js.map +1 -1
- package/labs/segmentedbutton/internal/_shared.scss +2 -0
- package/labs/segmentedbutton/internal/outlined-styles.css +1 -0
- package/labs/segmentedbutton/internal/outlined-styles.css.map +1 -0
- package/labs/segmentedbutton/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
- package/labs/segmentedbutton/internal/outlined-styles.js.map +1 -0
- package/labs/segmentedbutton/internal/shared-styles.css +1 -0
- package/labs/segmentedbutton/internal/shared-styles.css.map +1 -0
- package/labs/segmentedbutton/internal/shared-styles.js +10 -0
- package/labs/segmentedbutton/internal/shared-styles.js.map +1 -0
- package/labs/segmentedbutton/outlined-segmented-button.js +2 -2
- package/labs/segmentedbutton/outlined-segmented-button.js.map +1 -1
- package/labs/segmentedbuttonset/internal/outlined-styles.css +1 -0
- package/labs/segmentedbuttonset/internal/outlined-styles.css.map +1 -0
- package/labs/segmentedbuttonset/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
- package/labs/segmentedbuttonset/internal/outlined-styles.js.map +1 -0
- package/labs/segmentedbuttonset/internal/shared-styles.css +1 -0
- package/labs/segmentedbuttonset/internal/shared-styles.css.map +1 -0
- package/labs/segmentedbuttonset/internal/{shared-styles.css.js → shared-styles.js} +7 -6
- package/labs/segmentedbuttonset/internal/shared-styles.js.map +1 -0
- package/labs/segmentedbuttonset/outlined-segmented-button-set.js +2 -2
- package/labs/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
- package/list/internal/list-controller.d.ts +6 -0
- package/list/internal/list-controller.js +16 -10
- package/list/internal/list-controller.js.map +1 -1
- package/list/internal/list-navigation-helpers.d.ts +8 -4
- package/list/internal/list-navigation-helpers.js +18 -6
- package/list/internal/list-navigation-helpers.js.map +1 -1
- package/list/internal/list-styles.css +1 -0
- package/list/internal/list-styles.css.map +1 -0
- package/list/internal/{list-styles.css.js → list-styles.js} +7 -6
- package/list/internal/list-styles.js.map +1 -0
- package/list/internal/listitem/list-item-styles.css +1 -0
- package/list/internal/listitem/list-item-styles.css.map +1 -0
- package/list/internal/listitem/{list-item-styles.css.js → list-item-styles.js} +7 -6
- package/list/internal/listitem/list-item-styles.js.map +1 -0
- package/list/list-item.js +1 -1
- package/list/list-item.js.map +1 -1
- package/list/list.js +1 -1
- package/list/list.js.map +1 -1
- package/menu/internal/menu-styles.css +1 -0
- package/menu/internal/menu-styles.css.map +1 -0
- package/menu/internal/{menu-styles.css.js → menu-styles.js} +7 -6
- package/menu/internal/menu-styles.js.map +1 -0
- package/menu/internal/menu.d.ts +6 -0
- package/menu/internal/menu.js +10 -0
- package/menu/internal/menu.js.map +1 -1
- package/menu/internal/menuitem/menu-item-styles.css +1 -0
- package/menu/internal/menuitem/menu-item-styles.css.map +1 -0
- package/menu/internal/menuitem/{menu-item-styles.css.js → menu-item-styles.js} +7 -6
- package/menu/internal/menuitem/menu-item-styles.js.map +1 -0
- package/menu/internal/submenu/sub-menu-styles.css +1 -0
- package/menu/internal/submenu/sub-menu-styles.css.map +1 -0
- package/menu/internal/submenu/sub-menu-styles.js +10 -0
- package/menu/internal/submenu/sub-menu-styles.js.map +1 -0
- package/menu/menu-item.js +1 -1
- package/menu/menu-item.js.map +1 -1
- package/menu/menu.js +1 -1
- package/menu/menu.js.map +1 -1
- package/menu/sub-menu.js +1 -1
- package/menu/sub-menu.js.map +1 -1
- package/package.json +20 -26
- package/progress/circular-progress.js +1 -1
- package/progress/circular-progress.js.map +1 -1
- package/progress/internal/circular-progress-styles.css +1 -0
- package/progress/internal/circular-progress-styles.css.map +1 -0
- package/progress/internal/{circular-progress-styles.css.js → circular-progress-styles.js} +7 -6
- package/progress/internal/circular-progress-styles.js.map +1 -0
- package/progress/internal/linear-progress-styles.css +1 -0
- package/progress/internal/linear-progress-styles.css.map +1 -0
- package/progress/internal/{linear-progress-styles.css.js → linear-progress-styles.js} +7 -6
- package/progress/internal/linear-progress-styles.js.map +1 -0
- package/progress/linear-progress.js +1 -1
- package/progress/linear-progress.js.map +1 -1
- package/radio/internal/radio-styles.css +1 -0
- package/radio/internal/radio-styles.css.map +1 -0
- package/radio/internal/{radio-styles.css.js → radio-styles.js} +7 -6
- package/radio/internal/radio-styles.js.map +1 -0
- package/radio/radio.js +1 -1
- package/radio/radio.js.map +1 -1
- package/ripple/internal/ripple-styles.css +1 -0
- package/ripple/internal/ripple-styles.css.map +1 -0
- package/ripple/internal/{ripple-styles.css.js → ripple-styles.js} +7 -6
- package/ripple/internal/ripple-styles.js.map +1 -0
- package/ripple/ripple.js +1 -1
- package/ripple/ripple.js.map +1 -1
- package/select/filled-select.js +2 -2
- package/select/filled-select.js.map +1 -1
- package/select/internal/filled-select-styles.css +1 -0
- package/select/internal/filled-select-styles.css.map +1 -0
- package/select/internal/{filled-select-styles.css.js → filled-select-styles.js} +7 -6
- package/select/internal/filled-select-styles.js.map +1 -0
- package/select/internal/outlined-select-styles.css +1 -0
- package/select/internal/outlined-select-styles.css.map +1 -0
- package/select/internal/{outlined-select-styles.css.js → outlined-select-styles.js} +7 -6
- package/select/internal/outlined-select-styles.js.map +1 -0
- package/select/internal/select.js +1 -1
- package/select/internal/select.js.map +1 -1
- package/select/internal/shared-styles.css +1 -0
- package/select/internal/shared-styles.css.map +1 -0
- package/select/internal/{shared-styles.css.js → shared-styles.js} +7 -6
- package/select/internal/shared-styles.js.map +1 -0
- package/select/outlined-select.js +2 -2
- package/select/outlined-select.js.map +1 -1
- package/select/select-option.js +1 -1
- package/select/select-option.js.map +1 -1
- package/slider/internal/_slider.scss +4 -4
- package/slider/internal/forced-colors-styles.css +1 -0
- package/slider/internal/forced-colors-styles.css.map +1 -0
- package/slider/internal/{forced-colors-styles.css.js → forced-colors-styles.js} +7 -6
- package/slider/internal/forced-colors-styles.js.map +1 -0
- package/slider/internal/slider-styles.css +1 -0
- package/slider/internal/slider-styles.css.map +1 -0
- package/slider/internal/slider-styles.js +10 -0
- package/slider/internal/slider-styles.js.map +1 -0
- package/slider/internal/slider.js +3 -1
- package/slider/internal/slider.js.map +1 -1
- package/slider/slider.js +2 -2
- package/slider/slider.js.map +1 -1
- package/switch/internal/switch-styles.css +1 -0
- package/switch/internal/switch-styles.css.map +1 -0
- package/switch/internal/{switch-styles.css.js → switch-styles.js} +7 -6
- package/switch/internal/switch-styles.js.map +1 -0
- package/switch/internal/switch.d.ts +1 -0
- package/switch/internal/switch.js +6 -1
- package/switch/internal/switch.js.map +1 -1
- package/switch/switch.js +1 -1
- package/switch/switch.js.map +1 -1
- package/tabs/internal/_tabs.scss +2 -0
- package/tabs/internal/primary-tab-styles.css +1 -0
- package/tabs/internal/primary-tab-styles.css.map +1 -0
- package/tabs/internal/{primary-tab-styles.css.js → primary-tab-styles.js} +7 -6
- package/tabs/internal/primary-tab-styles.js.map +1 -0
- package/tabs/internal/secondary-tab-styles.css +1 -0
- package/tabs/internal/secondary-tab-styles.css.map +1 -0
- package/tabs/internal/{secondary-tab-styles.css.js → secondary-tab-styles.js} +7 -6
- package/tabs/internal/secondary-tab-styles.js.map +1 -0
- package/tabs/internal/tab-styles.css +1 -0
- package/tabs/internal/tab-styles.css.map +1 -0
- package/tabs/internal/{tab-styles.css.js → tab-styles.js} +7 -6
- package/tabs/internal/tab-styles.js.map +1 -0
- package/tabs/internal/tab.d.ts +0 -1
- package/tabs/internal/tab.js +1 -2
- package/tabs/internal/tab.js.map +1 -1
- package/tabs/internal/tabs-styles.css +1 -0
- package/tabs/internal/tabs-styles.css.map +1 -0
- package/tabs/internal/tabs-styles.js +10 -0
- package/tabs/internal/tabs-styles.js.map +1 -0
- package/tabs/internal/tabs.js +5 -2
- package/tabs/internal/tabs.js.map +1 -1
- package/tabs/primary-tab.js +2 -2
- package/tabs/primary-tab.js.map +1 -1
- package/tabs/secondary-tab.js +2 -2
- package/tabs/secondary-tab.js.map +1 -1
- package/tabs/tabs.js +1 -1
- package/tabs/tabs.js.map +1 -1
- package/textfield/filled-text-field.js +2 -2
- package/textfield/filled-text-field.js.map +1 -1
- package/textfield/internal/_shared.scss +2 -0
- package/textfield/internal/filled-styles.css +1 -0
- package/textfield/internal/filled-styles.css.map +1 -0
- package/textfield/internal/{filled-styles.css.js → filled-styles.js} +7 -6
- package/textfield/internal/filled-styles.js.map +1 -0
- package/textfield/internal/outlined-styles.css +1 -0
- package/textfield/internal/outlined-styles.css.map +1 -0
- package/textfield/internal/{outlined-styles.css.js → outlined-styles.js} +7 -6
- package/textfield/internal/outlined-styles.js.map +1 -0
- package/textfield/internal/shared-styles.css +1 -0
- package/textfield/internal/shared-styles.css.map +1 -0
- package/textfield/internal/shared-styles.js +10 -0
- package/textfield/internal/shared-styles.js.map +1 -0
- package/textfield/outlined-text-field.js +2 -2
- package/textfield/outlined-text-field.js.map +1 -1
- package/tokens/_md-comp-filled-select.scss +0 -2
- package/tokens/_md-comp-linear-progress.scss +0 -2
- package/tokens/v0_192/index.test.css +1 -0
- package/tokens/v0_192/index.test.css.map +1 -0
- package/tokens/v0_192/lib.test.css +1 -0
- package/tokens/v0_192/lib.test.css.map +1 -0
- package/typography/_typescale.scss +109 -2
- package/typography/md-typescale-styles.css +1 -0
- package/typography/md-typescale-styles.css.map +1 -0
- package/typography/md-typescale-styles.js +10 -0
- package/typography/md-typescale-styles.js.map +1 -0
- package/typography/md-typescale-styles.scss +11 -0
- package/button/internal/elevated-styles.css.js.map +0 -1
- package/button/internal/filled-styles.css.js.map +0 -1
- package/button/internal/filled-tonal-styles.css.js.map +0 -1
- package/button/internal/outlined-styles.css.js.map +0 -1
- package/button/internal/shared-elevation-styles.css.js.map +0 -1
- package/button/internal/shared-styles.css.js +0 -9
- package/button/internal/shared-styles.css.js.map +0 -1
- package/button/internal/text-styles.css.js.map +0 -1
- package/checkbox/internal/checkbox-styles.css.js.map +0 -1
- package/chips/internal/chip-set-styles.css.js +0 -9
- package/chips/internal/chip-set-styles.css.js.map +0 -1
- package/chips/internal/elevated-styles.css.js.map +0 -1
- package/chips/internal/input-styles.css.js.map +0 -1
- package/chips/internal/selectable-styles.css.js.map +0 -1
- package/chips/internal/suggestion-styles.css.js.map +0 -1
- package/chips/internal/trailing-icon-styles.css.js.map +0 -1
- package/dialog/internal/dialog-styles.css.js.map +0 -1
- package/divider/internal/divider-styles.css.js.map +0 -1
- package/elevation/internal/elevation-styles.css.js +0 -9
- package/elevation/internal/elevation-styles.css.js.map +0 -1
- package/fab/internal/fab-branded-styles.css.js.map +0 -1
- package/fab/internal/fab-styles.css.js.map +0 -1
- package/fab/internal/forced-colors-styles.css.js.map +0 -1
- package/fab/internal/shared-styles.css.js +0 -9
- package/fab/internal/shared-styles.css.js.map +0 -1
- package/field/internal/outlined-styles.css.js.map +0 -1
- package/focus/internal/focus-ring-styles.css.js.map +0 -1
- package/icon/internal/icon-styles.css.js.map +0 -1
- package/iconbutton/internal/filled-styles.css.js.map +0 -1
- package/iconbutton/internal/filled-tonal-styles.css.js.map +0 -1
- package/iconbutton/internal/outlined-styles.css.js.map +0 -1
- package/iconbutton/internal/shared-styles.css.js.map +0 -1
- package/iconbutton/internal/standard-styles.css.js.map +0 -1
- package/labs/badge/internal/badge-styles.css.js.map +0 -1
- package/labs/card/internal/elevated-styles.css.js.map +0 -1
- package/labs/card/internal/filled-styles.css.js.map +0 -1
- package/labs/card/internal/outlined-styles.css.js.map +0 -1
- package/labs/card/internal/shared-styles.css.js.map +0 -1
- package/labs/item/internal/item-styles.css.js.map +0 -1
- package/labs/navigationbar/internal/navigation-bar-styles.css.js.map +0 -1
- package/labs/navigationdrawer/internal/navigation-drawer-modal-styles.css.js.map +0 -1
- package/labs/navigationdrawer/internal/navigation-drawer-styles.css.js.map +0 -1
- package/labs/navigationdrawer/internal/shared-styles.css.js.map +0 -1
- package/labs/navigationtab/internal/navigation-tab-styles.css.js.map +0 -1
- package/labs/segmentedbutton/internal/outlined-styles.css.js.map +0 -1
- package/labs/segmentedbutton/internal/shared-styles.css.js +0 -9
- package/labs/segmentedbutton/internal/shared-styles.css.js.map +0 -1
- package/labs/segmentedbuttonset/internal/outlined-styles.css.js.map +0 -1
- package/labs/segmentedbuttonset/internal/shared-styles.css.js.map +0 -1
- package/list/internal/list-styles.css.js.map +0 -1
- package/list/internal/listitem/list-item-styles.css.js.map +0 -1
- package/menu/internal/menu-styles.css.js.map +0 -1
- package/menu/internal/menuitem/menu-item-styles.css.js.map +0 -1
- package/menu/internal/submenu/sub-menu-styles.css.js +0 -9
- package/menu/internal/submenu/sub-menu-styles.css.js.map +0 -1
- package/progress/internal/circular-progress-styles.css.js.map +0 -1
- package/progress/internal/linear-progress-styles.css.js.map +0 -1
- package/radio/internal/radio-styles.css.js.map +0 -1
- package/ripple/internal/ripple-styles.css.js.map +0 -1
- package/select/internal/filled-select-styles.css.js.map +0 -1
- package/select/internal/outlined-select-styles.css.js.map +0 -1
- package/select/internal/shared-styles.css.js.map +0 -1
- package/slider/internal/forced-colors-styles.css.js.map +0 -1
- package/slider/internal/slider-styles.css.js +0 -9
- package/slider/internal/slider-styles.css.js.map +0 -1
- package/switch/internal/switch-styles.css.js.map +0 -1
- package/tabs/internal/primary-tab-styles.css.js.map +0 -1
- package/tabs/internal/secondary-tab-styles.css.js.map +0 -1
- package/tabs/internal/tab-styles.css.js.map +0 -1
- package/tabs/internal/tabs-styles.css.js +0 -9
- package/tabs/internal/tabs-styles.css.js.map +0 -1
- package/textfield/internal/filled-styles.css.js.map +0 -1
- package/textfield/internal/outlined-styles.css.js.map +0 -1
- package/textfield/internal/shared-styles.css.js +0 -9
- package/textfield/internal/shared-styles.css.js.map +0 -1
- package/tokens/v0_192/index.test.css.js +0 -9
- package/tokens/v0_192/index.test.css.js.map +0 -1
- package/tokens/v0_192/lib.test.css.d.ts +0 -1
- package/tokens/v0_192/lib.test.css.js +0 -9
- package/tokens/v0_192/lib.test.css.js.map +0 -1
- /package/button/internal/{elevated-styles.css.d.ts → elevated-styles.d.ts} +0 -0
- /package/button/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
- /package/button/internal/{filled-tonal-styles.css.d.ts → filled-tonal-styles.d.ts} +0 -0
- /package/button/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
- /package/button/internal/{shared-elevation-styles.css.d.ts → shared-elevation-styles.d.ts} +0 -0
- /package/button/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/button/internal/{text-styles.css.d.ts → text-styles.d.ts} +0 -0
- /package/checkbox/internal/{checkbox-styles.css.d.ts → checkbox-styles.d.ts} +0 -0
- /package/chips/internal/{assist-styles.css.d.ts → assist-styles.d.ts} +0 -0
- /package/chips/internal/{chip-set-styles.css.d.ts → chip-set-styles.d.ts} +0 -0
- /package/chips/internal/{elevated-styles.css.d.ts → elevated-styles.d.ts} +0 -0
- /package/chips/internal/{filter-styles.css.d.ts → filter-styles.d.ts} +0 -0
- /package/chips/internal/{input-styles.css.d.ts → input-styles.d.ts} +0 -0
- /package/chips/internal/{selectable-styles.css.d.ts → selectable-styles.d.ts} +0 -0
- /package/chips/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/chips/internal/{suggestion-styles.css.d.ts → suggestion-styles.d.ts} +0 -0
- /package/chips/internal/{trailing-icon-styles.css.d.ts → trailing-icon-styles.d.ts} +0 -0
- /package/dialog/internal/{dialog-styles.css.d.ts → dialog-styles.d.ts} +0 -0
- /package/divider/internal/{divider-styles.css.d.ts → divider-styles.d.ts} +0 -0
- /package/elevation/internal/{elevation-styles.css.d.ts → elevation-styles.d.ts} +0 -0
- /package/fab/internal/{fab-branded-styles.css.d.ts → fab-branded-styles.d.ts} +0 -0
- /package/fab/internal/{fab-styles.css.d.ts → fab-styles.d.ts} +0 -0
- /package/fab/internal/{forced-colors-styles.css.d.ts → forced-colors-styles.d.ts} +0 -0
- /package/fab/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/field/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
- /package/field/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
- /package/field/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/focus/internal/{focus-ring-styles.css.d.ts → focus-ring-styles.d.ts} +0 -0
- /package/icon/internal/{icon-styles.css.d.ts → icon-styles.d.ts} +0 -0
- /package/iconbutton/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
- /package/iconbutton/internal/{filled-tonal-styles.css.d.ts → filled-tonal-styles.d.ts} +0 -0
- /package/iconbutton/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
- /package/iconbutton/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/iconbutton/internal/{standard-styles.css.d.ts → standard-styles.d.ts} +0 -0
- /package/labs/badge/internal/{badge-styles.css.d.ts → badge-styles.d.ts} +0 -0
- /package/labs/card/internal/{elevated-styles.css.d.ts → elevated-styles.d.ts} +0 -0
- /package/labs/card/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
- /package/labs/card/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
- /package/labs/card/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/labs/item/internal/{item-styles.css.d.ts → item-styles.d.ts} +0 -0
- /package/labs/navigationbar/internal/{navigation-bar-styles.css.d.ts → navigation-bar-styles.d.ts} +0 -0
- /package/labs/navigationdrawer/internal/{navigation-drawer-modal-styles.css.d.ts → navigation-drawer-modal-styles.d.ts} +0 -0
- /package/labs/navigationdrawer/internal/{navigation-drawer-styles.css.d.ts → navigation-drawer-styles.d.ts} +0 -0
- /package/labs/navigationdrawer/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/labs/navigationtab/internal/{navigation-tab-styles.css.d.ts → navigation-tab-styles.d.ts} +0 -0
- /package/labs/segmentedbutton/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
- /package/labs/segmentedbutton/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/labs/segmentedbuttonset/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
- /package/labs/segmentedbuttonset/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/list/internal/{list-styles.css.d.ts → list-styles.d.ts} +0 -0
- /package/list/internal/listitem/{list-item-styles.css.d.ts → list-item-styles.d.ts} +0 -0
- /package/menu/internal/{menu-styles.css.d.ts → menu-styles.d.ts} +0 -0
- /package/menu/internal/menuitem/{menu-item-styles.css.d.ts → menu-item-styles.d.ts} +0 -0
- /package/menu/internal/submenu/{sub-menu-styles.css.d.ts → sub-menu-styles.d.ts} +0 -0
- /package/progress/internal/{circular-progress-styles.css.d.ts → circular-progress-styles.d.ts} +0 -0
- /package/progress/internal/{linear-progress-styles.css.d.ts → linear-progress-styles.d.ts} +0 -0
- /package/radio/internal/{radio-styles.css.d.ts → radio-styles.d.ts} +0 -0
- /package/ripple/internal/{ripple-styles.css.d.ts → ripple-styles.d.ts} +0 -0
- /package/select/internal/{filled-select-styles.css.d.ts → filled-select-styles.d.ts} +0 -0
- /package/select/internal/{outlined-select-styles.css.d.ts → outlined-select-styles.d.ts} +0 -0
- /package/select/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/slider/internal/{forced-colors-styles.css.d.ts → forced-colors-styles.d.ts} +0 -0
- /package/slider/internal/{slider-styles.css.d.ts → slider-styles.d.ts} +0 -0
- /package/switch/internal/{switch-styles.css.d.ts → switch-styles.d.ts} +0 -0
- /package/tabs/internal/{primary-tab-styles.css.d.ts → primary-tab-styles.d.ts} +0 -0
- /package/tabs/internal/{secondary-tab-styles.css.d.ts → secondary-tab-styles.d.ts} +0 -0
- /package/tabs/internal/{tab-styles.css.d.ts → tab-styles.d.ts} +0 -0
- /package/tabs/internal/{tabs-styles.css.d.ts → tabs-styles.d.ts} +0 -0
- /package/textfield/internal/{filled-styles.css.d.ts → filled-styles.d.ts} +0 -0
- /package/textfield/internal/{outlined-styles.css.d.ts → outlined-styles.d.ts} +0 -0
- /package/textfield/internal/{shared-styles.css.d.ts → shared-styles.d.ts} +0 -0
- /package/{tokens/v0_192/index.test.css.d.ts → typography/md-typescale-styles.d.ts} +0 -0
|
@@ -122,11 +122,17 @@ export function getLastActivatableItem(items, isActivatable = (isItemNotDisabled
|
|
|
122
122
|
* @param index {{index: number}} The index to search from.
|
|
123
123
|
* @param isActivatable Function to determine if an item can be activated.
|
|
124
124
|
* Defaults to non-disabled items.
|
|
125
|
+
* @param wrap If true, then the next item at the end of the list is the first
|
|
126
|
+
* item. Defaults to true.
|
|
125
127
|
* @return The next activatable item or `null` if none are activatable.
|
|
126
128
|
*/
|
|
127
|
-
export function getNextItem(items, index, isActivatable = (isItemNotDisabled)) {
|
|
129
|
+
export function getNextItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {
|
|
128
130
|
for (let i = 1; i < items.length; i++) {
|
|
129
131
|
const nextIndex = (i + index) % items.length;
|
|
132
|
+
if (nextIndex < index && !wrap) {
|
|
133
|
+
// Return if the index loops back to the beginning and not wrapping.
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
130
136
|
const item = items[nextIndex];
|
|
131
137
|
if (isActivatable(item)) {
|
|
132
138
|
return item;
|
|
@@ -141,11 +147,17 @@ export function getNextItem(items, index, isActivatable = (isItemNotDisabled)) {
|
|
|
141
147
|
* @param index {{index: number}} The index to search from.
|
|
142
148
|
* @param isActivatable Function to determine if an item can be activated.
|
|
143
149
|
* Defaults to non-disabled items.
|
|
150
|
+
* @param wrap If true, then the previous item at the beginning of the list is
|
|
151
|
+
* the last item. Defaults to true.
|
|
144
152
|
* @return The previous activatable item or `null` if none are activatable.
|
|
145
153
|
*/
|
|
146
|
-
export function getPrevItem(items, index, isActivatable = (isItemNotDisabled)) {
|
|
154
|
+
export function getPrevItem(items, index, isActivatable = (isItemNotDisabled), wrap = true) {
|
|
147
155
|
for (let i = 1; i < items.length; i++) {
|
|
148
156
|
const prevIndex = (index - i + items.length) % items.length;
|
|
157
|
+
if (prevIndex > index && !wrap) {
|
|
158
|
+
// Return if the index loops back to the end and not wrapping.
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
149
161
|
const item = items[prevIndex];
|
|
150
162
|
if (isActivatable(item)) {
|
|
151
163
|
return item;
|
|
@@ -157,9 +169,9 @@ export function getPrevItem(items, index, isActivatable = (isItemNotDisabled)) {
|
|
|
157
169
|
* Activates the next item and focuses it. If nothing is currently activated,
|
|
158
170
|
* activates the first item.
|
|
159
171
|
*/
|
|
160
|
-
export function activateNextItem(items, activeItemRecord, isActivatable = (isItemNotDisabled)) {
|
|
172
|
+
export function activateNextItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {
|
|
161
173
|
if (activeItemRecord) {
|
|
162
|
-
const next = getNextItem(items, activeItemRecord.index, isActivatable);
|
|
174
|
+
const next = getNextItem(items, activeItemRecord.index, isActivatable, wrap);
|
|
163
175
|
if (next) {
|
|
164
176
|
next.tabIndex = 0;
|
|
165
177
|
next.focus();
|
|
@@ -174,9 +186,9 @@ export function activateNextItem(items, activeItemRecord, isActivatable = (isIte
|
|
|
174
186
|
* Activates the previous item and focuses it. If nothing is currently
|
|
175
187
|
* activated, activates the last item.
|
|
176
188
|
*/
|
|
177
|
-
export function activatePreviousItem(items, activeItemRecord, isActivatable = (isItemNotDisabled)) {
|
|
189
|
+
export function activatePreviousItem(items, activeItemRecord, isActivatable = (isItemNotDisabled), wrap = true) {
|
|
178
190
|
if (activeItemRecord) {
|
|
179
|
-
const prev = getPrevItem(items, activeItemRecord.index, isActivatable);
|
|
191
|
+
const prev = getPrevItem(items, activeItemRecord.index, isActivatable, wrap);
|
|
180
192
|
if (prev) {
|
|
181
193
|
prev.tabIndex = 0;
|
|
182
194
|
prev.focus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-navigation-helpers.js","sourceRoot":"","sources":["list-navigation-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport interface ListItem extends HTMLElement {\n disabled: boolean;\n}\n\n/**\n * A record that describes a list item in a list with metadata such a reference\n * to the item and its index in the list.\n */\nexport interface ItemRecord<Item extends ListItem> {\n item: Item;\n index: number;\n}\n\n/**\n * Activates the first non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * first item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n */\nexport function activateFirstItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n // NOTE: These selector functions are static and not on the instance such\n // that multiple operations can be chained and we do not have to re-query\n // the DOM\n const firstItem = getFirstActivatableItem(items, isActivatable);\n if (firstItem) {\n firstItem.tabIndex = 0;\n firstItem.focus();\n }\n return firstItem;\n}\n\n/**\n * Activates the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * last item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @nocollapse\n */\nexport function activateLastItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n const lastItem = getLastActivatableItem(items, isActivatable);\n if (lastItem) {\n lastItem.tabIndex = 0;\n lastItem.focus();\n }\n return lastItem;\n}\n\n/**\n * Deactivates the currently active item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to deactivate the\n * active item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the deleselcted activated item including the item and\n * the index of the item or `null` if none are deactivated.\n * @nocollapse\n */\nexport function deactivateActiveItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n const activeItem = getActiveItem(items, isActivatable);\n if (activeItem) {\n activeItem.item.tabIndex = -1;\n }\n return activeItem;\n}\n\n/**\n * Retrieves the first activated item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the first activated item including the item and the\n * index of the item or `null` if none are activated.\n * @nocollapse\n */\nexport function getActiveItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.tabIndex === 0 && isActivatable(item)) {\n return {\n item,\n index: i,\n } as ItemRecord<Item>;\n }\n }\n return null;\n}\n\n/**\n * Retrieves the first non-disabled item of a given array of items. This\n * the first item that is not disabled.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The first activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getFirstActivatableItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (const item of items) {\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return null;\n}\n\n/**\n * Retrieves the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The last activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getLastActivatableItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return null;\n}\n\n/**\n * Retrieves the next non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The next activatable item or `null` if none are activatable.\n */\nexport function getNextItem<Item extends ListItem>(\n items: Item[],\n index: number,\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = 1; i < items.length; i++) {\n const nextIndex = (i + index) % items.length;\n const item = items[nextIndex];\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n}\n\n/**\n * Retrieves the previous non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The previous activatable item or `null` if none are activatable.\n */\nexport function getPrevItem<Item extends ListItem>(\n items: Item[],\n index: number,\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = 1; i < items.length; i++) {\n const prevIndex = (index - i + items.length) % items.length;\n const item = items[prevIndex];\n\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n}\n\n/**\n * Activates the next item and focuses it. If nothing is currently activated,\n * activates the first item.\n */\nexport function activateNextItem<Item extends ListItem>(\n items: Item[],\n activeItemRecord: null | ItemRecord<Item>,\n isActivatable = isItemNotDisabled<Item>,\n): Item | null {\n if (activeItemRecord) {\n const next = getNextItem(items, activeItemRecord.index, isActivatable);\n\n if (next) {\n next.tabIndex = 0;\n next.focus();\n }\n\n return next;\n } else {\n return activateFirstItem(items, isActivatable);\n }\n}\n\n/**\n * Activates the previous item and focuses it. If nothing is currently\n * activated, activates the last item.\n */\nexport function activatePreviousItem<Item extends ListItem>(\n items: Item[],\n activeItemRecord: null | ItemRecord<Item>,\n isActivatable = isItemNotDisabled<Item>,\n): Item | null {\n if (activeItemRecord) {\n const prev = getPrevItem(items, activeItemRecord.index, isActivatable);\n if (prev) {\n prev.tabIndex = 0;\n prev.focus();\n }\n return prev;\n } else {\n return activateLastItem(items, isActivatable);\n }\n}\n\n/**\n * Creates an event that requests the parent md-list to deactivate all other\n * items.\n */\nexport function createDeactivateItemsEvent() {\n return new Event('deactivate-items', {bubbles: true, composed: true});\n}\n\n/**\n * The type of the event that requests the parent md-list to deactivate all\n * other items.\n */\nexport type DeactivateItemsEvent = ReturnType<\n typeof createDeactivateItemsEvent\n>;\n\n/**\n * Creates an event that requests the menu to set `tabindex=0` on the item and\n * focus it. We use this pattern because List keeps track of what element is\n * active in the List by maintaining tabindex. We do not want list items\n * to set tabindex on themselves or focus themselves so that we can organize all\n * that logic in the parent List and Menus, and list item stays as dumb as\n * possible.\n */\nexport function createRequestActivationEvent() {\n return new Event('request-activation', {bubbles: true, composed: true});\n}\n\n/**\n * The type of the event that requests the list activates and focuses the item.\n */\nexport type RequestActivationEvent = ReturnType<\n typeof createRequestActivationEvent\n>;\n\n/**\n * The default `isActivatable` function, which checks if an item is not\n * disabled.\n *\n * @param item The item to check.\n * @return true if `item.disabled` is `false.\n */\nfunction isItemNotDisabled<Item extends ListItem>(item: Item) {\n return !item.disabled;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"list-navigation-helpers.js","sourceRoot":"","sources":["list-navigation-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport interface ListItem extends HTMLElement {\n disabled: boolean;\n}\n\n/**\n * A record that describes a list item in a list with metadata such a reference\n * to the item and its index in the list.\n */\nexport interface ItemRecord<Item extends ListItem> {\n item: Item;\n index: number;\n}\n\n/**\n * Activates the first non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * first item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n */\nexport function activateFirstItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n // NOTE: These selector functions are static and not on the instance such\n // that multiple operations can be chained and we do not have to re-query\n // the DOM\n const firstItem = getFirstActivatableItem(items, isActivatable);\n if (firstItem) {\n firstItem.tabIndex = 0;\n firstItem.focus();\n }\n return firstItem;\n}\n\n/**\n * Activates the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to activate the\n * last item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @nocollapse\n */\nexport function activateLastItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n const lastItem = getLastActivatableItem(items, isActivatable);\n if (lastItem) {\n lastItem.tabIndex = 0;\n lastItem.focus();\n }\n return lastItem;\n}\n\n/**\n * Deactivates the currently active item of a given array of items.\n *\n * @param items {Array<ListItem>} The items from which to deactivate the\n * active item.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the deleselcted activated item including the item and\n * the index of the item or `null` if none are deactivated.\n * @nocollapse\n */\nexport function deactivateActiveItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n const activeItem = getActiveItem(items, isActivatable);\n if (activeItem) {\n activeItem.item.tabIndex = -1;\n }\n return activeItem;\n}\n\n/**\n * Retrieves the first activated item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return A record of the first activated item including the item and the\n * index of the item or `null` if none are activated.\n * @nocollapse\n */\nexport function getActiveItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.tabIndex === 0 && isActivatable(item)) {\n return {\n item,\n index: i,\n } as ItemRecord<Item>;\n }\n }\n return null;\n}\n\n/**\n * Retrieves the first non-disabled item of a given array of items. This\n * the first item that is not disabled.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The first activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getFirstActivatableItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (const item of items) {\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return null;\n}\n\n/**\n * Retrieves the last non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @return The last activatable item or `null` if none are activatable.\n * @nocollapse\n */\nexport function getLastActivatableItem<Item extends ListItem>(\n items: Item[],\n isActivatable = isItemNotDisabled<Item>,\n) {\n for (let i = items.length - 1; i >= 0; i--) {\n const item = items[i];\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return null;\n}\n\n/**\n * Retrieves the next non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @param wrap If true, then the next item at the end of the list is the first\n * item. Defaults to true.\n * @return The next activatable item or `null` if none are activatable.\n */\nexport function getNextItem<Item extends ListItem>(\n items: Item[],\n index: number,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n) {\n for (let i = 1; i < items.length; i++) {\n const nextIndex = (i + index) % items.length;\n if (nextIndex < index && !wrap) {\n // Return if the index loops back to the beginning and not wrapping.\n return null;\n }\n\n const item = items[nextIndex];\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n}\n\n/**\n * Retrieves the previous non-disabled item of a given array of items.\n *\n * @param items {Array<ListItem>} The items to search.\n * @param index {{index: number}} The index to search from.\n * @param isActivatable Function to determine if an item can be activated.\n * Defaults to non-disabled items.\n * @param wrap If true, then the previous item at the beginning of the list is\n * the last item. Defaults to true.\n * @return The previous activatable item or `null` if none are activatable.\n */\nexport function getPrevItem<Item extends ListItem>(\n items: Item[],\n index: number,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n) {\n for (let i = 1; i < items.length; i++) {\n const prevIndex = (index - i + items.length) % items.length;\n if (prevIndex > index && !wrap) {\n // Return if the index loops back to the end and not wrapping.\n return null;\n }\n\n const item = items[prevIndex];\n\n if (isActivatable(item)) {\n return item;\n }\n }\n\n return items[index] ? items[index] : null;\n}\n\n/**\n * Activates the next item and focuses it. If nothing is currently activated,\n * activates the first item.\n */\nexport function activateNextItem<Item extends ListItem>(\n items: Item[],\n activeItemRecord: null | ItemRecord<Item>,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n): Item | null {\n if (activeItemRecord) {\n const next = getNextItem(\n items,\n activeItemRecord.index,\n isActivatable,\n wrap,\n );\n\n if (next) {\n next.tabIndex = 0;\n next.focus();\n }\n\n return next;\n } else {\n return activateFirstItem(items, isActivatable);\n }\n}\n\n/**\n * Activates the previous item and focuses it. If nothing is currently\n * activated, activates the last item.\n */\nexport function activatePreviousItem<Item extends ListItem>(\n items: Item[],\n activeItemRecord: null | ItemRecord<Item>,\n isActivatable = isItemNotDisabled<Item>,\n wrap = true,\n): Item | null {\n if (activeItemRecord) {\n const prev = getPrevItem(\n items,\n activeItemRecord.index,\n isActivatable,\n wrap,\n );\n if (prev) {\n prev.tabIndex = 0;\n prev.focus();\n }\n return prev;\n } else {\n return activateLastItem(items, isActivatable);\n }\n}\n\n/**\n * Creates an event that requests the parent md-list to deactivate all other\n * items.\n */\nexport function createDeactivateItemsEvent() {\n return new Event('deactivate-items', {bubbles: true, composed: true});\n}\n\n/**\n * The type of the event that requests the parent md-list to deactivate all\n * other items.\n */\nexport type DeactivateItemsEvent = ReturnType<\n typeof createDeactivateItemsEvent\n>;\n\n/**\n * Creates an event that requests the menu to set `tabindex=0` on the item and\n * focus it. We use this pattern because List keeps track of what element is\n * active in the List by maintaining tabindex. We do not want list items\n * to set tabindex on themselves or focus themselves so that we can organize all\n * that logic in the parent List and Menus, and list item stays as dumb as\n * possible.\n */\nexport function createRequestActivationEvent() {\n return new Event('request-activation', {bubbles: true, composed: true});\n}\n\n/**\n * The type of the event that requests the list activates and focuses the item.\n */\nexport type RequestActivationEvent = ReturnType<\n typeof createRequestActivationEvent\n>;\n\n/**\n * The default `isActivatable` function, which checks if an item is not\n * disabled.\n *\n * @param item The item to check.\n * @return true if `item.disabled` is `false.\n */\nfunction isItemNotDisabled<Item extends ListItem>(item: Item) {\n return !item.disabled;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:host{background:var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex;flex-direction:column;outline:none;padding:8px 0;position:relative}/*# sourceMappingURL=list-styles.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["_list.scss"],"names":[],"mappings":"AAiCE,MACE,gFACA,YACA,aACA,sBACA,aACA,cAGA","file":"list-styles.css"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
// Generated stylesheet for ./list/internal/list-styles.css.
|
|
6
7
|
import { css } from 'lit';
|
|
7
|
-
export const styles = css `:host{background:var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex;flex-direction:column;outline:none;padding:8px 0;position:relative}
|
|
8
|
+
export const styles = css `:host{background:var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex;flex-direction:column;outline:none;padding:8px 0;position:relative}
|
|
8
9
|
`;
|
|
9
|
-
//# sourceMappingURL=list-styles.
|
|
10
|
+
//# sourceMappingURL=list-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-styles.js","sourceRoot":"","sources":["list-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4DAA4D;AAC5D,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACxB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./list/internal/list-styles.css.\nimport {css} from 'lit';\nexport const styles = css`:host{background:var(--md-list-container-color, var(--md-sys-color-surface, #fef7ff));color:unset;display:flex;flex-direction:column;outline:none;padding:8px 0;position:relative}\n`;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}/*# sourceMappingURL=list-item-styles.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["_list-item.scss","../../../ripple/internal/_ripple.scss","../../../focus/internal/_focus-ring.scss"],"names":[],"mappings":"AAmCE,MAEE,aACA,0CCjBE,kYD6BJ,sDACE,eAGF,cACE,UEhCE,2BFyCJ,YAIE,gBACA,YACA,eACA,UACA,SACA,iBACA,qBAGF,WACE,sBACA,aACA,OACA,kBACA,kBACA,aAEA,0CACA,WAGF,uBACE,eAGF,oBACE,kDACA,oBAGF,iBACE,oBAGF,UACE,sBAGF,QACE,sBACA,OACA,YACA,oFACA,+HACA,6FACA,+GACA,yIACA,+DACA,gDACA,sDACA,6DACA,4DAGF,mBACE,+DAGF,uBACE,iGACA,qIACA,uGACA,sHACA,+IAGF,gCACE,0GACA,8IACA,iHACA,4HACA,uJAGF,yCACE,kBAGF,aACE,8FAGF,WACE,+FAGF,8BACE,eACE,eAGF,oBACE,eACA","file":"list-item-styles.css"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
// Generated stylesheet for ./list/internal/listitem/list-item-styles.css.
|
|
6
7
|
import { css } from 'lit';
|
|
7
|
-
export const styles = css `:host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}
|
|
8
|
+
export const styles = css `:host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}
|
|
8
9
|
`;
|
|
9
|
-
//# sourceMappingURL=list-item-styles.
|
|
10
|
+
//# sourceMappingURL=list-item-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-item-styles.js","sourceRoot":"","sources":["list-item-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,0EAA0E;AAC1E,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACxB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./list/internal/listitem/list-item-styles.css.\nimport {css} from 'lit';\nexport const styles = css`:host{display:flex;-webkit-tap-highlight-color:rgba(0,0,0,0);--md-ripple-hover-color: var(--md-list-item-hover-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-hover-opacity: var(--md-list-item-hover-state-layer-opacity, 0.08);--md-ripple-pressed-color: var(--md-list-item-pressed-state-layer-color, var(--md-sys-color-on-surface, #1d1b20));--md-ripple-pressed-opacity: var(--md-list-item-pressed-state-layer-opacity, 0.12)}:host(:is([type=button]:not([disabled]),[type=link])){cursor:pointer}md-focus-ring{z-index:1;--md-focus-ring-shape: 8px}a,button,li{background:none;border:none;cursor:inherit;padding:0;margin:0;text-align:unset;text-decoration:none}.list-item{border-radius:inherit;display:flex;flex:1;max-width:inherit;min-width:inherit;outline:none;-webkit-tap-highlight-color:rgba(0,0,0,0);width:100%}.list-item.interactive{cursor:pointer}.list-item.disabled{opacity:var(--md-list-item-disabled-opacity, 0.3);pointer-events:none}[slot=container]{pointer-events:none}md-ripple{border-radius:inherit}md-item{border-radius:inherit;flex:1;height:100%;color:var(--md-list-item-label-text-color, var(--md-sys-color-on-surface, #1d1b20));font-family:var(--md-list-item-label-text-font, var(--md-sys-typescale-body-large-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-label-text-size, var(--md-sys-typescale-body-large-size, 1rem));line-height:var(--md-list-item-label-text-line-height, var(--md-sys-typescale-body-large-line-height, 1.5rem));font-weight:var(--md-list-item-label-text-weight, var(--md-sys-typescale-body-large-weight, var(--md-ref-typeface-weight-regular, 400)));min-height:var(--md-list-item-one-line-container-height, 56px);padding-top:var(--md-list-item-top-space, 12px);padding-bottom:var(--md-list-item-bottom-space, 12px);padding-inline-start:var(--md-list-item-leading-space, 16px);padding-inline-end:var(--md-list-item-trailing-space, 16px)}md-item[multiline]{min-height:var(--md-list-item-two-line-container-height, 72px)}[slot=supporting-text]{color:var(--md-list-item-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-supporting-text-font, var(--md-sys-typescale-body-medium-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-supporting-text-size, var(--md-sys-typescale-body-medium-size, 0.875rem));line-height:var(--md-list-item-supporting-text-line-height, var(--md-sys-typescale-body-medium-line-height, 1.25rem));font-weight:var(--md-list-item-supporting-text-weight, var(--md-sys-typescale-body-medium-weight, var(--md-ref-typeface-weight-regular, 400)))}[slot=trailing-supporting-text]{color:var(--md-list-item-trailing-supporting-text-color, var(--md-sys-color-on-surface-variant, #49454f));font-family:var(--md-list-item-trailing-supporting-text-font, var(--md-sys-typescale-label-small-font, var(--md-ref-typeface-plain, Roboto)));font-size:var(--md-list-item-trailing-supporting-text-size, var(--md-sys-typescale-label-small-size, 0.6875rem));line-height:var(--md-list-item-trailing-supporting-text-line-height, var(--md-sys-typescale-label-small-line-height, 1rem));font-weight:var(--md-list-item-trailing-supporting-text-weight, var(--md-sys-typescale-label-small-weight, var(--md-ref-typeface-weight-medium, 500)))}:is([slot=start],[slot=end])::slotted(*){fill:currentColor}[slot=start]{color:var(--md-list-item-leading-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}[slot=end]{color:var(--md-list-item-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f))}@media(forced-colors: active){.disabled slot{color:GrayText}.list-item.disabled{color:GrayText;opacity:1}}\n`;\n"]}
|
package/list/list-item.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { customElement } from 'lit/decorators.js';
|
|
8
8
|
import { ListItemEl as ListItem } from './internal/listitem/list-item.js';
|
|
9
|
-
import { styles } from './internal/listitem/list-item-styles.
|
|
9
|
+
import { styles } from './internal/listitem/list-item-styles.js';
|
|
10
10
|
/**
|
|
11
11
|
* @summary
|
|
12
12
|
* Lists are continuous, vertical indexes of text or images. Items are placed
|
package/list/list-item.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-item.js","sourceRoot":"","sources":["list-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,UAAU,IAAI,QAAQ,EAAC,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAC,MAAM,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"list-item.js","sourceRoot":"","sources":["list-item.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,UAAU,IAAI,QAAQ,EAAC,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAC,MAAM,EAAC,MAAM,yCAAyC,CAAC;AAU/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEI,WAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,QAAQ;;AACtB,iBAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,UAAU;IADtB,aAAa,CAAC,cAAc,CAAC;GACjB,UAAU,CAEtB","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {ListItemEl as ListItem} from './internal/listitem/list-item.js';\nimport {styles} from './internal/listitem/list-item-styles.js';\n\nexport {type ListItemType} from './internal/listitem/list-item.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-list-item': MdListItem;\n }\n}\n\n/**\n * @summary\n * Lists are continuous, vertical indexes of text or images. Items are placed\n * inside the list.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n * as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n * item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * Acceptable slot child variants are:\n *\n * - `img[slot=end]`\n * - `img[slot=start]`\n *\n * @example\n * ```html\n * <md-list-item\n * headline=\"User Name\"\n * supportingText=\"user@name.com\">\n * <md-icon slot=\"start\">account_circle</md-icon>\n * <md-icon slot=\"end\">check</md-icon>\n * </md-list-item>\n * ```\n *\n * @example\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-list-item')\nexport class MdListItem extends ListItem {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
|
package/list/list.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import { __decorate } from "tslib";
|
|
7
7
|
import { customElement } from 'lit/decorators.js';
|
|
8
8
|
import { List } from './internal/list.js';
|
|
9
|
-
import { styles } from './internal/list-styles.
|
|
9
|
+
import { styles } from './internal/list-styles.js';
|
|
10
10
|
/**
|
|
11
11
|
* @summary Lists are continuous, vertical indexes of text or images.
|
|
12
12
|
*
|
package/list/list.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAGH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAQjD;;;;;;;;;;;;;;;;;;GAkBG;AAEI,WAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,IAAI;;AACd,aAAM,GAAwB,CAAC,MAAM,CAAC,AAAhC,CAAiC;AAD5C,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAElB","sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {CSSResultOrNative} from 'lit';\nimport {customElement} from 'lit/decorators.js';\n\nimport {List} from './internal/list.js';\nimport {styles} from './internal/list-styles.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-list': MdList;\n }\n}\n\n/**\n * @summary Lists are continuous, vertical indexes of text or images.\n *\n * @description\n * Lists consist of one or more list items, and can contain actions represented\n * by icons and text. List items come in three sizes: one-line, two-line, and\n * three-line.\n *\n * __Takeaways:__\n *\n * - Lists should be sorted in logical ways that make content easy to scan, such\n * as alphabetical, numerical, chronological, or by user preference.\n * - Lists present content in a way that makes it easy to identify a specific\n * item in a collection and act on it.\n * - Lists should present icons, text, and actions in a consistent format.\n *\n * @final\n * @suppress {visibility}\n */\n@customElement('md-list')\nexport class MdList extends List {\n static override styles: CSSResultOrNative[] = [styles];\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}/*# sourceMappingURL=menu-styles.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["_menu.scss","../../elevation/internal/_elevation.scss","../../focus/internal/_focus-ring.scss"],"names":[],"mappings":"AAqCE,MCfI,iKDuBF,gBACA,YACA,iBAGF,cE3BI,mGFmCJ,MACE,0FACA,aACA,WACA,YACA,YACA,iBAEA,+BACA,cACA,UACA,WACA,kBACA,iBACA,mBACA,eACA,kBACA,kBAGF,gBACE,aAGF,OACE,eAGF,OACE,cACA,qBACA,SACA,aACA,sBACA,gGACA,eACA,mBACA,cACA,kBACA,kBACA,sBAGF,cACE,kBAGF,oCACE,iBAGF,iDAEE,gBAGF,+BAIE,oBAGF,sCACE,UAGF,KACE,cACA,eACA,mBAGF,4CACE,aAGF,8BACE,MACE,mBACA,wBACA","file":"menu-styles.css"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2024 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
// Generated stylesheet for ./menu/internal/menu-styles.css.
|
|
6
7
|
import { css } from 'lit';
|
|
7
|
-
export const styles = css `:host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}
|
|
8
|
+
export const styles = css `:host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}
|
|
8
9
|
`;
|
|
9
|
-
//# sourceMappingURL=menu-styles.
|
|
10
|
+
//# sourceMappingURL=menu-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu-styles.js","sourceRoot":"","sources":["menu-styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4DAA4D;AAC5D,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACxB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2024 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n// Generated stylesheet for ./menu/internal/menu-styles.css.\nimport {css} from 'lit';\nexport const styles = css`:host{--md-elevation-level: var(--md-menu-container-elevation, 2);--md-elevation-shadow-color: var(--md-menu-container-shadow-color, var(--md-sys-color-shadow, #000));min-width:112px;color:unset;display:contents}md-focus-ring{--md-focus-ring-shape: var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px))}.menu{border-radius:var(--md-menu-container-shape, var(--md-sys-shape-corner-extra-small, 4px));display:none;inset:auto;border:none;padding:0px;overflow:visible;background-color:rgba(0,0,0,0);color:inherit;opacity:0;z-index:20;position:absolute;user-select:none;max-height:inherit;height:inherit;min-width:inherit;max-width:inherit}.menu::backdrop{display:none}.fixed{position:fixed}.items{display:block;list-style-type:none;margin:0;outline:none;box-sizing:border-box;background-color:var(--md-menu-container-color, var(--md-sys-color-surface-container, #f3edf7));height:inherit;max-height:inherit;overflow:auto;min-width:inherit;max-width:inherit;border-radius:inherit}.item-padding{padding-block:8px}.has-overflow:not([popover]) .items{overflow:visible}.has-overflow.animating .items,.animating .items{overflow:hidden}.has-overflow.animating .items{pointer-events:none}.animating ::slotted(.md-menu-hidden){opacity:0}slot{display:block;height:inherit;max-height:inherit}::slotted(:is(md-divider,[role=separator])){margin:8px 0}@media(forced-colors: active){.menu{border-style:solid;border-color:CanvasText;border-width:1px}}\n`;\n"]}
|
package/menu/internal/menu.d.ts
CHANGED
|
@@ -153,6 +153,12 @@ export declare abstract class Menu extends LitElement {
|
|
|
153
153
|
* `display: contents` when necessary.
|
|
154
154
|
*/
|
|
155
155
|
defaultFocus: FocusState;
|
|
156
|
+
/**
|
|
157
|
+
* Turns off navigation wrapping. By default, navigating past the end of the
|
|
158
|
+
* menu items will wrap focus back to the beginning and vice versa. Use this
|
|
159
|
+
* for ARIA patterns that do not wrap focus, like combobox.
|
|
160
|
+
*/
|
|
161
|
+
noNavigationWrap: boolean;
|
|
156
162
|
protected slotItems: HTMLElement[];
|
|
157
163
|
private typeaheadActive;
|
|
158
164
|
/**
|
package/menu/internal/menu.js
CHANGED
|
@@ -209,6 +209,12 @@ export class Menu extends LitElement {
|
|
|
209
209
|
* `display: contents` when necessary.
|
|
210
210
|
*/
|
|
211
211
|
this.defaultFocus = FocusState.FIRST_ITEM;
|
|
212
|
+
/**
|
|
213
|
+
* Turns off navigation wrapping. By default, navigating past the end of the
|
|
214
|
+
* menu items will wrap focus back to the beginning and vice versa. Use this
|
|
215
|
+
* for ARIA patterns that do not wrap focus, like combobox.
|
|
216
|
+
*/
|
|
217
|
+
this.noNavigationWrap = false;
|
|
212
218
|
this.typeaheadActive = true;
|
|
213
219
|
/**
|
|
214
220
|
* Whether or not the current menu is a submenu and should not handle specific
|
|
@@ -257,6 +263,7 @@ export class Menu extends LitElement {
|
|
|
257
263
|
}
|
|
258
264
|
return submenuNavKeys.has(key);
|
|
259
265
|
},
|
|
266
|
+
wrapNavigation: () => !this.noNavigationWrap,
|
|
260
267
|
});
|
|
261
268
|
/**
|
|
262
269
|
* The element that was focused before the menu opened.
|
|
@@ -865,6 +872,9 @@ __decorate([
|
|
|
865
872
|
__decorate([
|
|
866
873
|
property({ attribute: 'default-focus' })
|
|
867
874
|
], Menu.prototype, "defaultFocus", void 0);
|
|
875
|
+
__decorate([
|
|
876
|
+
property({ type: Boolean, attribute: 'no-navigation-wrap' })
|
|
877
|
+
], Menu.prototype, "noNavigationWrap", void 0);
|
|
868
878
|
__decorate([
|
|
869
879
|
queryAssignedElements({ flatten: true })
|
|
870
880
|
], Menu.prototype, "slotItems", void 0);
|