@material/web 1.0.0-pre.6 → 1.0.0-pre.7
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 +7 -7
- package/aria/aria.d.ts +43 -0
- package/aria/aria.js +56 -0
- package/aria/aria.js.map +1 -0
- package/aria/delegate.d.ts +37 -0
- package/aria/delegate.js +53 -0
- package/aria/delegate.js.map +1 -0
- package/badge/badge.d.ts +0 -1
- package/badge/badge.js +0 -1
- package/badge/badge.js.map +1 -1
- package/badge/lib/badge.d.ts +8 -7
- package/badge/lib/badge.js +5 -6
- package/badge/lib/badge.js.map +1 -1
- package/button/lib/_elevation.scss +13 -3
- package/button/lib/button.d.ts +1 -12
- package/button/lib/button.js +29 -60
- package/button/lib/button.js.map +1 -1
- package/button/lib/shared-elevation-styles.css.js +1 -1
- package/button/lib/shared-elevation-styles.css.js.map +1 -1
- package/checkbox/lib/checkbox.d.ts +0 -1
- package/checkbox/lib/checkbox.js +33 -43
- package/checkbox/lib/checkbox.js.map +1 -1
- package/chips/_filter-chip.scss +6 -0
- package/chips/filter-chip.d.ts +20 -0
- package/chips/filter-chip.js +24 -0
- package/chips/filter-chip.js.map +1 -0
- package/chips/lib/_filter-chip.scss +141 -0
- package/chips/lib/_shared.scss +18 -14
- package/chips/lib/assist-styles.css.js +1 -1
- package/chips/lib/assist-styles.css.js.map +1 -1
- package/chips/lib/chip.d.ts +8 -3
- package/chips/lib/chip.js +29 -30
- package/chips/lib/chip.js.map +1 -1
- package/chips/lib/filter-chip.d.ts +21 -0
- package/chips/lib/filter-chip.js +47 -0
- package/chips/lib/filter-chip.js.map +1 -0
- package/chips/lib/filter-styles.css.js +9 -0
- package/chips/lib/filter-styles.css.js.map +1 -0
- package/{fab/lib/fab-extended-styles.scss → chips/lib/filter-styles.scss} +3 -3
- package/chips/lib/shared-styles.css.js +1 -1
- package/chips/lib/shared-styles.css.js.map +1 -1
- package/chips/lib/suggestion-styles.css.js +1 -1
- package/chips/lib/suggestion-styles.css.js.map +1 -1
- package/circularprogress/harness.d.ts +1 -0
- package/circularprogress/harness.js +4 -0
- package/circularprogress/harness.js.map +1 -1
- package/circularprogress/lib/circular-progress.d.ts +0 -1
- package/circularprogress/lib/circular-progress.js +16 -19
- package/circularprogress/lib/circular-progress.js.map +1 -1
- package/dialog/lib/_dialog.scss +8 -8
- package/dialog/lib/dialog-styles.css.js +1 -1
- package/dialog/lib/dialog-styles.css.js.map +1 -1
- package/dialog/lib/dialog.js +25 -49
- package/dialog/lib/dialog.js.map +1 -1
- package/divider/lib/divider.js +4 -7
- package/divider/lib/divider.js.map +1 -1
- package/elevation/lib/_elevation.scss +5 -7
- package/elevation/lib/elevation-styles.css.js +1 -1
- package/elevation/lib/elevation-styles.css.js.map +1 -1
- package/fab/_fab.scss +1 -0
- package/fab/branded-fab.d.ts +53 -0
- package/fab/branded-fab.js +56 -0
- package/fab/branded-fab.js.map +1 -0
- package/fab/fab.d.ts +25 -5
- package/fab/fab.js +27 -10
- package/fab/fab.js.map +1 -1
- package/fab/harness.d.ts +1 -2
- package/fab/harness.js +1 -1
- package/fab/harness.js.map +1 -1
- package/fab/lib/_fab-branded.scss +27 -0
- package/fab/lib/_fab.scss +144 -16
- package/fab/lib/_shared.scss +155 -130
- package/fab/lib/fab-branded-styles.css.js +9 -0
- package/fab/lib/fab-branded-styles.css.js.map +1 -0
- package/fab/lib/fab-branded-styles.scss +10 -0
- package/fab/lib/fab-styles.css.js +1 -1
- package/fab/lib/fab-styles.css.js.map +1 -1
- package/fab/lib/fab.d.ts +14 -10
- package/fab/lib/fab.js +19 -12
- package/fab/lib/fab.js.map +1 -1
- package/fab/lib/forced-colors-styles.css.d.ts +1 -0
- package/fab/lib/forced-colors-styles.css.js +9 -0
- package/fab/lib/forced-colors-styles.css.js.map +1 -0
- package/fab/lib/forced-colors-styles.scss +26 -0
- package/fab/lib/shared-styles.css.d.ts +1 -0
- package/fab/lib/shared-styles.css.js +9 -0
- package/fab/lib/shared-styles.css.js.map +1 -0
- package/fab/lib/{fab-shared-styles.scss → shared-styles.scss} +1 -1
- package/fab/lib/{fab-shared.d.ts → shared.d.ts} +24 -16
- package/fab/lib/shared.js +137 -0
- package/fab/lib/shared.js.map +1 -0
- package/field/lib/field.js +14 -27
- package/field/lib/field.js.map +1 -1
- package/focus/focus-ring.d.ts +0 -1
- package/focus/focus-ring.js +0 -1
- package/focus/focus-ring.js.map +1 -1
- package/focus/lib/focus-ring.js +2 -3
- package/focus/lib/focus-ring.js.map +1 -1
- package/focus/strong-focus.js +5 -0
- package/focus/strong-focus.js.map +1 -1
- package/icon/icon.d.ts +0 -1
- package/icon/icon.js +0 -1
- package/icon/icon.js.map +1 -1
- package/icon/lib/_icon.scss +2 -0
- package/icon/lib/icon-styles.css.js +1 -1
- package/icon/lib/icon-styles.css.js.map +1 -1
- package/icon/lib/icon.d.ts +5 -4
- package/icon/lib/icon.js +3 -2
- package/icon/lib/icon.js.map +1 -1
- package/iconbutton/lib/icon-button.d.ts +0 -4
- package/iconbutton/lib/icon-button.js +28 -48
- package/iconbutton/lib/icon-button.js.map +1 -1
- package/linearprogress/_linear-progress.scss +6 -0
- package/linearprogress/harness.d.ts +13 -0
- package/linearprogress/harness.js +18 -0
- package/linearprogress/harness.js.map +1 -0
- package/linearprogress/lib/_linear-progress.scss +380 -0
- package/linearprogress/lib/linear-progress-styles.css.d.ts +1 -0
- package/linearprogress/lib/linear-progress-styles.css.js +9 -0
- package/linearprogress/lib/linear-progress-styles.css.js.map +1 -0
- package/linearprogress/lib/linear-progress-styles.scss +8 -0
- package/linearprogress/lib/linear-progress.d.ts +35 -0
- package/linearprogress/lib/linear-progress.js +127 -0
- package/linearprogress/lib/linear-progress.js.map +1 -0
- package/linearprogress/linear-progress.d.ts +23 -0
- package/linearprogress/linear-progress.js +26 -0
- package/linearprogress/linear-progress.js.map +1 -0
- package/list/lib/_list.scss +6 -49
- package/list/lib/list-styles.css.js +1 -1
- package/list/lib/list-styles.css.js.map +1 -1
- package/list/lib/list.d.ts +1 -3
- package/list/lib/list.js +18 -34
- package/list/lib/list.js.map +1 -1
- package/list/lib/listitem/_list-item.scss +10 -69
- package/list/lib/listitem/forced-colors-styles.css.js +1 -1
- package/list/lib/listitem/forced-colors-styles.css.js.map +1 -1
- package/list/lib/listitem/list-item-styles.css.js +1 -1
- package/list/lib/listitem/list-item-styles.css.js.map +1 -1
- package/list/lib/listitem/list-item.d.ts +2 -4
- package/list/lib/listitem/list-item.js +24 -53
- package/list/lib/listitem/list-item.js.map +1 -1
- package/list/lib/listitemlink/list-item-link.js +4 -6
- package/list/lib/listitemlink/list-item-link.js.map +1 -1
- package/menu/lib/_menu.scss +6 -28
- package/menu/lib/menu-styles.css.js +1 -1
- package/menu/lib/menu-styles.css.js.map +1 -1
- package/menu/lib/menu.d.ts +1 -2
- package/menu/lib/menu.js +38 -63
- package/menu/lib/menu.js.map +1 -1
- package/menu/lib/menuitem/_menu-item.scss +13 -32
- package/menu/lib/menuitem/menu-item-styles.css.js +1 -1
- package/menu/lib/menuitem/menu-item-styles.css.js.map +1 -1
- package/menu/lib/menuitem/menu-item.d.ts +1 -1
- package/menu/lib/menuitem/menu-item.js +4 -6
- package/menu/lib/menuitem/menu-item.js.map +1 -1
- package/menu/lib/menuitemlink/menu-item-link.d.ts +0 -2
- package/menu/lib/menuitemlink/menu-item-link.js +3 -6
- package/menu/lib/menuitemlink/menu-item-link.js.map +1 -1
- package/menu/lib/shared.d.ts +6 -2
- package/menu/lib/shared.js.map +1 -1
- package/menu/lib/submenuitem/sub-menu-item.d.ts +0 -2
- package/menu/lib/submenuitem/sub-menu-item.js +7 -15
- package/menu/lib/submenuitem/sub-menu-item.js.map +1 -1
- package/navigationbar/lib/_navigation-bar.scss +7 -1
- package/navigationbar/lib/navigation-bar-styles.css.js +1 -1
- package/navigationbar/lib/navigation-bar-styles.css.js.map +1 -1
- package/navigationbar/lib/navigation-bar.d.ts +5 -5
- package/navigationbar/lib/navigation-bar.js +17 -18
- package/navigationbar/lib/navigation-bar.js.map +1 -1
- package/navigationbar/navigation-bar.d.ts +0 -1
- package/navigationbar/navigation-bar.js +0 -1
- package/navigationbar/navigation-bar.js.map +1 -1
- package/navigationdrawer/lib/navigation-drawer-modal.d.ts +5 -10
- package/navigationdrawer/lib/navigation-drawer-modal.js +19 -41
- package/navigationdrawer/lib/navigation-drawer-modal.js.map +1 -1
- package/navigationdrawer/lib/navigation-drawer.d.ts +5 -9
- package/navigationdrawer/lib/navigation-drawer.js +17 -38
- package/navigationdrawer/lib/navigation-drawer.js.map +1 -1
- package/navigationdrawer/navigation-drawer-modal.d.ts +0 -1
- package/navigationdrawer/navigation-drawer-modal.js +0 -1
- package/navigationdrawer/navigation-drawer-modal.js.map +1 -1
- package/navigationdrawer/navigation-drawer.d.ts +0 -1
- package/navigationdrawer/navigation-drawer.js +0 -1
- package/navigationdrawer/navigation-drawer.js.map +1 -1
- package/navigationtab/lib/navigation-tab.d.ts +19 -24
- package/navigationtab/lib/navigation-tab.js +48 -68
- package/navigationtab/lib/navigation-tab.js.map +1 -1
- package/navigationtab/navigation-tab.d.ts +0 -1
- package/navigationtab/navigation-tab.js +0 -1
- package/navigationtab/navigation-tab.js.map +1 -1
- package/package.json +1 -1
- package/radio/lib/radio.d.ts +0 -1
- package/radio/lib/radio.js +30 -37
- package/radio/lib/radio.js.map +1 -1
- package/ripple/lib/ripple.js +7 -13
- package/ripple/lib/ripple.js.map +1 -1
- package/segmentedbutton/lib/outlined-segmented-button.d.ts +16 -7
- package/segmentedbutton/lib/outlined-segmented-button.js +3 -3
- package/segmentedbutton/lib/outlined-segmented-button.js.map +1 -1
- package/segmentedbutton/lib/segmented-button.d.ts +27 -33
- package/segmentedbutton/lib/segmented-button.js +42 -75
- package/segmentedbutton/lib/segmented-button.js.map +1 -1
- package/segmentedbutton/outlined-segmented-button.d.ts +0 -1
- package/segmentedbutton/outlined-segmented-button.js +0 -1
- package/segmentedbutton/outlined-segmented-button.js.map +1 -1
- package/segmentedbuttonset/lib/outlined-segmented-button-set.d.ts +6 -4
- package/segmentedbuttonset/lib/outlined-segmented-button-set.js +3 -2
- package/segmentedbuttonset/lib/outlined-segmented-button-set.js.map +1 -1
- package/segmentedbuttonset/lib/segmented-button-set.d.ts +3 -9
- package/segmentedbuttonset/lib/segmented-button-set.js +14 -20
- package/segmentedbuttonset/lib/segmented-button-set.js.map +1 -1
- package/segmentedbuttonset/outlined-segmented-button-set.d.ts +0 -1
- package/segmentedbuttonset/outlined-segmented-button-set.js +0 -1
- package/segmentedbuttonset/outlined-segmented-button-set.js.map +1 -1
- package/select/_filled-select.scss +6 -0
- package/select/_outlined-select.scss +6 -0
- package/select/filled-select.d.ts +41 -0
- package/select/filled-select.js +46 -0
- package/select/filled-select.js.map +1 -0
- package/select/harness.d.ts +24 -0
- package/select/harness.js +53 -0
- package/select/harness.js.map +1 -0
- package/select/lib/_filled-select.scss +163 -0
- package/select/lib/_outlined-select.scss +146 -0
- package/select/lib/_shared.scss +48 -0
- package/select/lib/filled-forced-colors-styles.css.d.ts +1 -0
- package/select/lib/filled-forced-colors-styles.css.js +9 -0
- package/select/lib/filled-forced-colors-styles.css.js.map +1 -0
- package/select/lib/filled-forced-colors-styles.scss +29 -0
- package/select/lib/filled-select-styles.css.d.ts +1 -0
- package/select/lib/filled-select-styles.css.js +9 -0
- package/select/lib/filled-select-styles.css.js.map +1 -0
- package/select/lib/filled-select-styles.scss +10 -0
- package/select/lib/filled-select.d.ts +10 -0
- package/select/lib/filled-select.js +16 -0
- package/select/lib/filled-select.js.map +1 -0
- package/select/lib/outlined-forced-colors-styles.css.d.ts +1 -0
- package/select/lib/outlined-forced-colors-styles.css.js +9 -0
- package/select/lib/outlined-forced-colors-styles.css.js.map +1 -0
- package/select/lib/outlined-forced-colors-styles.scss +29 -0
- package/select/lib/outlined-select-styles.css.d.ts +1 -0
- package/select/lib/outlined-select-styles.css.js +9 -0
- package/select/lib/outlined-select-styles.css.js.map +1 -0
- package/select/lib/outlined-select-styles.scss +10 -0
- package/select/lib/outlined-select.d.ts +10 -0
- package/select/lib/outlined-select.js +16 -0
- package/select/lib/outlined-select.js.map +1 -0
- package/select/lib/select.d.ts +218 -0
- package/select/lib/select.js +587 -0
- package/select/lib/select.js.map +1 -0
- package/select/lib/selectoption/harness.d.ts +11 -0
- package/select/lib/selectoption/harness.js +12 -0
- package/select/lib/selectoption/harness.js.map +1 -0
- package/select/lib/selectoption/select-option.d.ts +30 -0
- package/select/lib/selectoption/select-option.js +71 -0
- package/select/lib/selectoption/select-option.js.map +1 -0
- package/select/lib/shared-styles.css.d.ts +1 -0
- package/select/lib/shared-styles.css.js +9 -0
- package/select/lib/shared-styles.css.js.map +1 -0
- package/select/lib/shared-styles.scss +10 -0
- package/select/lib/shared.d.ts +52 -0
- package/select/lib/shared.js +41 -0
- package/select/lib/shared.js.map +1 -0
- package/select/outlined-select.d.ts +41 -0
- package/select/outlined-select.js +46 -0
- package/select/outlined-select.js.map +1 -0
- package/select/select-option.d.ts +44 -0
- package/select/select-option.js +51 -0
- package/select/select-option.js.map +1 -0
- package/slider/harness.d.ts +1 -0
- package/slider/harness.js +5 -0
- package/slider/harness.js.map +1 -1
- package/slider/lib/_slider.scss +146 -164
- package/slider/lib/forced-colors-styles.css.js +1 -1
- package/slider/lib/forced-colors-styles.css.js.map +1 -1
- package/slider/lib/forced-colors-styles.scss +2 -2
- package/slider/lib/slider-styles.css.js +1 -1
- package/slider/lib/slider-styles.css.js.map +1 -1
- package/slider/lib/slider.d.ts +2 -7
- package/slider/lib/slider.js +64 -118
- package/slider/lib/slider.js.map +1 -1
- package/switch/lib/switch.d.ts +0 -2
- package/switch/lib/switch.js +32 -54
- package/switch/lib/switch.js.map +1 -1
- package/textfield/lib/text-field.d.ts +0 -10
- package/textfield/lib/text-field.js +45 -115
- package/textfield/lib/text-field.js.map +1 -1
- package/tokens/_index.scss +3 -0
- package/tokens/_md-comp-assist-chip.scss +25 -20
- package/tokens/_md-comp-elevation.scss +0 -4
- package/tokens/_md-comp-fab-branded.scss +109 -1
- package/tokens/_md-comp-fab.scss +290 -0
- package/tokens/_md-comp-filled-select.scss +150 -1
- package/tokens/_md-comp-filter-chip.scss +103 -93
- package/tokens/_md-comp-input-chip.scss +77 -85
- package/tokens/_md-comp-linear-progress-indicator.scss +14 -1
- package/tokens/_md-comp-list-item.scss +201 -0
- package/tokens/_md-comp-list.scss +107 -26
- package/tokens/_md-comp-menu-item.scss +76 -0
- package/tokens/_md-comp-menu.scss +52 -2
- package/tokens/_md-comp-outlined-select.scss +150 -1
- package/tokens/_md-comp-slider.scss +13 -1
- package/tokens/_md-comp-suggestion-chip.scss +29 -21
- package/tokens/_values.scss +5 -2
- package/types/aria.d.ts +61 -1
- package/actionelement/action-element.d.ts +0 -79
- package/actionelement/action-element.js +0 -97
- package/actionelement/action-element.js.map +0 -1
- package/button/lib/state.d.ts +0 -10
- package/button/lib/state.js +0 -7
- package/button/lib/state.js.map +0 -1
- package/controller/action-controller.d.ts +0 -147
- package/controller/action-controller.js +0 -286
- package/controller/action-controller.js.map +0 -1
- package/decorators/aria-property.d.ts +0 -32
- package/decorators/aria-property.js +0 -99
- package/decorators/aria-property.js.map +0 -1
- package/fab/_fab-extended.scss +0 -6
- package/fab/fab-extended.d.ts +0 -23
- package/fab/fab-extended.js +0 -29
- package/fab/fab-extended.js.map +0 -1
- package/fab/lib/_fab-extended.scss +0 -73
- package/fab/lib/fab-extended-styles.css.js +0 -9
- package/fab/lib/fab-extended-styles.css.js.map +0 -1
- package/fab/lib/fab-extended.d.ts +0 -19
- package/fab/lib/fab-extended.js +0 -28
- package/fab/lib/fab-extended.js.map +0 -1
- package/fab/lib/fab-shared-styles.css.js +0 -9
- package/fab/lib/fab-shared-styles.css.js.map +0 -1
- package/fab/lib/fab-shared.js +0 -121
- package/fab/lib/fab-shared.js.map +0 -1
- package/slider/lib/_tokens.scss +0 -65
- /package/{fab/lib/fab-extended-styles.css.d.ts → chips/lib/filter-styles.css.d.ts} +0 -0
- /package/fab/lib/{fab-shared-styles.css.d.ts → fab-branded-styles.css.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -34,23 +34,23 @@ changes.
|
|
|
34
34
|
Component | Alpha | Beta | Stable
|
|
35
35
|
----------------------------- | :---: | :--: | :----:
|
|
36
36
|
Button | ✅ | ✅ | ❌
|
|
37
|
-
FAB | ✅ |
|
|
37
|
+
FAB | ✅ | ✅ | ❌
|
|
38
38
|
Icon button | ✅ | ✅ | ❌
|
|
39
39
|
Checkbox | ✅ | ✅ | ❌
|
|
40
40
|
Chips | 🟡 | ❌ | ❌
|
|
41
41
|
Dialog | ✅ | ✅ | ❌
|
|
42
42
|
Divider | ✅ | ✅ | 🟡
|
|
43
|
-
Elevation | ✅ |
|
|
43
|
+
Elevation | ✅ | ✅ | 🟡
|
|
44
44
|
Focus ring | ✅ | ❌ | ❌
|
|
45
45
|
Field | ✅ | ✅ | 🟡
|
|
46
46
|
Icon | ✅ | ✅ | ❌
|
|
47
|
-
List | ✅ |
|
|
48
|
-
Menu | ✅ |
|
|
49
|
-
Progress indicator (circular) | ✅ |
|
|
50
|
-
Progress indicator (linear) |
|
|
47
|
+
List | ✅ | ✅ | ❌
|
|
48
|
+
Menu | ✅ | ✅ | ❌
|
|
49
|
+
Progress indicator (circular) | ✅ | ✅ | ❌
|
|
50
|
+
Progress indicator (linear) | ✅ | ✅ | ❌
|
|
51
51
|
Radio button | ✅ | ✅ | ❌
|
|
52
52
|
Ripple | ✅ | ✅ | 🟡
|
|
53
|
-
Select |
|
|
53
|
+
Select | ✅ | ✅ | ❌
|
|
54
54
|
Slider | ✅ | ✅ | ❌
|
|
55
55
|
Switch | ✅ | ✅ | ❌
|
|
56
56
|
Tabs | 🟡 | ❌ | ❌
|
package/aria/aria.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Accessibility Object Model reflective aria property name types.
|
|
8
|
+
*/
|
|
9
|
+
export type ARIAProperty = Exclude<keyof ARIAMixin, 'role'>;
|
|
10
|
+
/**
|
|
11
|
+
* Accessibility Object Model reflective aria properties.
|
|
12
|
+
*/
|
|
13
|
+
export declare const ARIA_PROPERTIES: ARIAProperty[];
|
|
14
|
+
/**
|
|
15
|
+
* Accessibility Object Model aria attribute name types.
|
|
16
|
+
*/
|
|
17
|
+
export type ARIAAttribute = ARIAPropertyToAttribute<ARIAProperty>;
|
|
18
|
+
/**
|
|
19
|
+
* Accessibility Object Model aria attributes.
|
|
20
|
+
*/
|
|
21
|
+
export declare const ARIA_ATTRIBUTES: ("aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-current" | "aria-disabled" | "aria-expanded" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext")[];
|
|
22
|
+
/**
|
|
23
|
+
* Checks if an attribute is one of the AOM aria attributes.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* isAriaAttribute('aria-label'); // true
|
|
27
|
+
*
|
|
28
|
+
* @param attribute The attribute to check.
|
|
29
|
+
* @return True if the attribute is an aria attribute, or false if not.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isAriaAttribute(attribute: string): attribute is ARIAAttribute;
|
|
32
|
+
/**
|
|
33
|
+
* Converts an AOM aria property into its corresponding attribute.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ariaPropertyToAttribute('ariaLabel'); // 'aria-label'
|
|
37
|
+
*
|
|
38
|
+
* @param property The aria property.
|
|
39
|
+
* @return The aria attribute.
|
|
40
|
+
*/
|
|
41
|
+
export declare function ariaPropertyToAttribute<K extends ARIAProperty | 'role'>(property: K): ARIAPropertyToAttribute<K>;
|
|
42
|
+
type ARIAPropertyToAttribute<K extends string> = K extends `aria${infer Suffix}Element${infer OptS}` ? `aria-${Lowercase<Suffix>}` : K extends `aria${infer Suffix}` ? `aria-${Lowercase<Suffix>}` : K;
|
|
43
|
+
export {};
|
package/aria/aria.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Accessibility Object Model reflective aria properties.
|
|
8
|
+
*/
|
|
9
|
+
export const ARIA_PROPERTIES = [
|
|
10
|
+
'ariaAtomic', 'ariaAutoComplete', 'ariaBusy',
|
|
11
|
+
'ariaChecked', 'ariaColCount', 'ariaColIndex',
|
|
12
|
+
'ariaColIndexText', 'ariaColSpan', 'ariaCurrent',
|
|
13
|
+
'ariaDisabled', 'ariaExpanded', 'ariaHasPopup',
|
|
14
|
+
'ariaHidden', 'ariaInvalid', 'ariaKeyShortcuts',
|
|
15
|
+
'ariaLabel', 'ariaLevel', 'ariaLive',
|
|
16
|
+
'ariaModal', 'ariaMultiLine', 'ariaMultiSelectable',
|
|
17
|
+
'ariaOrientation', 'ariaPlaceholder', 'ariaPosInSet',
|
|
18
|
+
'ariaPressed', 'ariaReadOnly', 'ariaRequired',
|
|
19
|
+
'ariaRoleDescription', 'ariaRowCount', 'ariaRowIndex',
|
|
20
|
+
'ariaRowIndexText', 'ariaRowSpan', 'ariaSelected',
|
|
21
|
+
'ariaSetSize', 'ariaSort', 'ariaValueMax',
|
|
22
|
+
'ariaValueMin', 'ariaValueNow', 'ariaValueText',
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* Accessibility Object Model aria attributes.
|
|
26
|
+
*/
|
|
27
|
+
export const ARIA_ATTRIBUTES = ARIA_PROPERTIES.map(ariaPropertyToAttribute);
|
|
28
|
+
/**
|
|
29
|
+
* Checks if an attribute is one of the AOM aria attributes.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* isAriaAttribute('aria-label'); // true
|
|
33
|
+
*
|
|
34
|
+
* @param attribute The attribute to check.
|
|
35
|
+
* @return True if the attribute is an aria attribute, or false if not.
|
|
36
|
+
*/
|
|
37
|
+
export function isAriaAttribute(attribute) {
|
|
38
|
+
return attribute.startsWith('aria-');
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Converts an AOM aria property into its corresponding attribute.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ariaPropertyToAttribute('ariaLabel'); // 'aria-label'
|
|
45
|
+
*
|
|
46
|
+
* @param property The aria property.
|
|
47
|
+
* @return The aria attribute.
|
|
48
|
+
*/
|
|
49
|
+
export function ariaPropertyToAttribute(property) {
|
|
50
|
+
return property
|
|
51
|
+
.replace('aria', 'aria-')
|
|
52
|
+
// IDREF attributes also include an "Element" or "Elements" suffix
|
|
53
|
+
.replace(/Elements?/g, '')
|
|
54
|
+
.toLowerCase();
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=aria.js.map
|
package/aria/aria.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aria.js","sourceRoot":"","sources":["aria.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,YAAY,EAAW,kBAAkB,EAAE,UAAU;IACrD,aAAa,EAAU,cAAc,EAAM,cAAc;IACzD,kBAAkB,EAAK,aAAa,EAAO,aAAa;IACxD,cAAc,EAAS,cAAc,EAAM,cAAc;IACzD,YAAY,EAAW,aAAa,EAAO,kBAAkB;IAC7D,WAAW,EAAY,WAAW,EAAS,UAAU;IACrD,WAAW,EAAY,eAAe,EAAK,qBAAqB;IAChE,iBAAiB,EAAM,iBAAiB,EAAG,cAAc;IACzD,aAAa,EAAU,cAAc,EAAM,cAAc;IACzD,qBAAqB,EAAE,cAAc,EAAM,cAAc;IACzD,kBAAkB,EAAK,aAAa,EAAO,cAAc;IACzD,aAAa,EAAU,UAAU,EAAU,cAAc;IACzD,cAAc,EAAS,cAAc,EAAM,eAAe;CAC3D,CAAC;AAOF;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAE5E;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACnC,QAAW;IACb,OAAO,QAAQ;SACH,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,kEAAkE;SACjE,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACzB,WAAW,EAAgC,CAAC;AAC1D,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Accessibility Object Model reflective aria property name types.\n */\nexport type ARIAProperty = Exclude<keyof ARIAMixin, 'role'>;\n\n/**\n * Accessibility Object Model reflective aria properties.\n */\nexport const ARIA_PROPERTIES: ARIAProperty[] = [\n 'ariaAtomic', 'ariaAutoComplete', 'ariaBusy',\n 'ariaChecked', 'ariaColCount', 'ariaColIndex',\n 'ariaColIndexText', 'ariaColSpan', 'ariaCurrent',\n 'ariaDisabled', 'ariaExpanded', 'ariaHasPopup',\n 'ariaHidden', 'ariaInvalid', 'ariaKeyShortcuts',\n 'ariaLabel', 'ariaLevel', 'ariaLive',\n 'ariaModal', 'ariaMultiLine', 'ariaMultiSelectable',\n 'ariaOrientation', 'ariaPlaceholder', 'ariaPosInSet',\n 'ariaPressed', 'ariaReadOnly', 'ariaRequired',\n 'ariaRoleDescription', 'ariaRowCount', 'ariaRowIndex',\n 'ariaRowIndexText', 'ariaRowSpan', 'ariaSelected',\n 'ariaSetSize', 'ariaSort', 'ariaValueMax',\n 'ariaValueMin', 'ariaValueNow', 'ariaValueText',\n];\n\n/**\n * Accessibility Object Model aria attribute name types.\n */\nexport type ARIAAttribute = ARIAPropertyToAttribute<ARIAProperty>;\n\n/**\n * Accessibility Object Model aria attributes.\n */\nexport const ARIA_ATTRIBUTES = ARIA_PROPERTIES.map(ariaPropertyToAttribute);\n\n/**\n * Checks if an attribute is one of the AOM aria attributes.\n *\n * @example\n * isAriaAttribute('aria-label'); // true\n *\n * @param attribute The attribute to check.\n * @return True if the attribute is an aria attribute, or false if not.\n */\nexport function isAriaAttribute(attribute: string): attribute is ARIAAttribute {\n return attribute.startsWith('aria-');\n}\n\n/**\n * Converts an AOM aria property into its corresponding attribute.\n *\n * @example\n * ariaPropertyToAttribute('ariaLabel'); // 'aria-label'\n *\n * @param property The aria property.\n * @return The aria attribute.\n */\nexport function ariaPropertyToAttribute<K extends ARIAProperty|'role'>(\n property: K) {\n return property\n .replace('aria', 'aria-')\n // IDREF attributes also include an \"Element\" or \"Elements\" suffix\n .replace(/Elements?/g, '')\n .toLowerCase() as ARIAPropertyToAttribute<K>;\n}\n\n// Converts an `ariaFoo` string type to an `aria-foo` string type.\ntype ARIAPropertyToAttribute<K extends string> =\n K extends `aria${infer Suffix}Element${infer OptS}` ?\n `aria-${Lowercase < Suffix >}` :\n K extends `aria${infer Suffix}` ? `aria-${Lowercase < Suffix >}` : K;\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ReactiveElement } from 'lit';
|
|
7
|
+
/**
|
|
8
|
+
* Sets up a `ReactiveElement` constructor to enable updates when delegating
|
|
9
|
+
* aria attributes. Elements may bind `this.aria*` properties to `aria-*`
|
|
10
|
+
* attributes in their render functions.
|
|
11
|
+
*
|
|
12
|
+
* This function will:
|
|
13
|
+
* - Call `requestUpdate()` when an aria attribute changes.
|
|
14
|
+
* - Add `role="presentation"` to the host.
|
|
15
|
+
*
|
|
16
|
+
* NOTE: The following features are not currently supported:
|
|
17
|
+
* - Delegating IDREF attributes (ex: `aria-labelledby`, `aria-controls`)
|
|
18
|
+
* - Delegating the `role` attribute
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* class XButton extends LitElement {
|
|
22
|
+
* static {
|
|
23
|
+
* requestUpdateOnAriaChange(this);
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* override render() {
|
|
27
|
+
* return html`
|
|
28
|
+
* <button aria-label=${this.ariaLabel || nothing}>
|
|
29
|
+
* <slot></slot>
|
|
30
|
+
* </button>
|
|
31
|
+
* `;
|
|
32
|
+
* }
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* @param ctor The `ReactiveElement` constructor to patch.
|
|
36
|
+
*/
|
|
37
|
+
export declare function requestUpdateOnAriaChange(ctor: typeof ReactiveElement): void;
|
package/aria/delegate.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ARIA_PROPERTIES, ariaPropertyToAttribute } from './aria.js';
|
|
7
|
+
/**
|
|
8
|
+
* Sets up a `ReactiveElement` constructor to enable updates when delegating
|
|
9
|
+
* aria attributes. Elements may bind `this.aria*` properties to `aria-*`
|
|
10
|
+
* attributes in their render functions.
|
|
11
|
+
*
|
|
12
|
+
* This function will:
|
|
13
|
+
* - Call `requestUpdate()` when an aria attribute changes.
|
|
14
|
+
* - Add `role="presentation"` to the host.
|
|
15
|
+
*
|
|
16
|
+
* NOTE: The following features are not currently supported:
|
|
17
|
+
* - Delegating IDREF attributes (ex: `aria-labelledby`, `aria-controls`)
|
|
18
|
+
* - Delegating the `role` attribute
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* class XButton extends LitElement {
|
|
22
|
+
* static {
|
|
23
|
+
* requestUpdateOnAriaChange(this);
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* override render() {
|
|
27
|
+
* return html`
|
|
28
|
+
* <button aria-label=${this.ariaLabel || nothing}>
|
|
29
|
+
* <slot></slot>
|
|
30
|
+
* </button>
|
|
31
|
+
* `;
|
|
32
|
+
* }
|
|
33
|
+
* }
|
|
34
|
+
*
|
|
35
|
+
* @param ctor The `ReactiveElement` constructor to patch.
|
|
36
|
+
*/
|
|
37
|
+
export function requestUpdateOnAriaChange(ctor) {
|
|
38
|
+
for (const ariaProperty of ARIA_PROPERTIES) {
|
|
39
|
+
ctor.createProperty(ariaProperty, {
|
|
40
|
+
attribute: ariaPropertyToAttribute(ariaProperty),
|
|
41
|
+
reflect: true,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
ctor.addInitializer(element => {
|
|
45
|
+
const controller = {
|
|
46
|
+
hostConnected() {
|
|
47
|
+
element.setAttribute('role', 'presentation');
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
element.addController(controller);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=delegate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delegate.js","sourceRoot":"","sources":["delegate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAC,eAAe,EAAE,uBAAuB,EAAC,MAAM,WAAW,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAA4B;IACpE,KAAK,MAAM,YAAY,IAAI,eAAe,EAAE;QAC1C,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE;YAChC,SAAS,EAAE,uBAAuB,CAAC,YAAY,CAAC;YAChD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;KACJ;IAED,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAC5B,MAAM,UAAU,GAAG;YACjB,aAAa;gBACX,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YAC/C,CAAC;SACF,CAAC;QAEF,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {ReactiveElement} from 'lit';\n\nimport {ARIA_PROPERTIES, ariaPropertyToAttribute} from './aria.js';\n\n/**\n * Sets up a `ReactiveElement` constructor to enable updates when delegating\n * aria attributes. Elements may bind `this.aria*` properties to `aria-*`\n * attributes in their render functions.\n *\n * This function will:\n * - Call `requestUpdate()` when an aria attribute changes.\n * - Add `role=\"presentation\"` to the host.\n *\n * NOTE: The following features are not currently supported:\n * - Delegating IDREF attributes (ex: `aria-labelledby`, `aria-controls`)\n * - Delegating the `role` attribute\n *\n * @example\n * class XButton extends LitElement {\n * static {\n * requestUpdateOnAriaChange(this);\n * }\n *\n * override render() {\n * return html`\n * <button aria-label=${this.ariaLabel || nothing}>\n * <slot></slot>\n * </button>\n * `;\n * }\n * }\n *\n * @param ctor The `ReactiveElement` constructor to patch.\n */\nexport function requestUpdateOnAriaChange(ctor: typeof ReactiveElement) {\n for (const ariaProperty of ARIA_PROPERTIES) {\n ctor.createProperty(ariaProperty, {\n attribute: ariaPropertyToAttribute(ariaProperty),\n reflect: true,\n });\n }\n\n ctor.addInitializer(element => {\n const controller = {\n hostConnected() {\n element.setAttribute('role', 'presentation');\n }\n };\n\n element.addController(controller);\n });\n}\n"]}
|
package/badge/badge.d.ts
CHANGED
package/badge/badge.js
CHANGED
package/badge/badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["badge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAQjD
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["badge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAQjD;;;GAGG;AAEI,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,KAAK;;AAChB,cAAM,GAAG,CAAC,MAAM,CAAC,CAAC;AADvB,OAAO;IADnB,aAAa,CAAC,UAAU,CAAC;GACb,OAAO,CAEnB;SAFY,OAAO","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {customElement} from 'lit/decorators.js';\n\nimport {Badge} from './lib/badge.js';\nimport {styles} from './lib/badge-styles.css.js';\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'md-badge': MdBadge;\n }\n}\n\n/**\n * @final\n * @suppress {visibility}\n */\n@customElement('md-badge')\nexport class MdBadge extends Badge {\n static override styles = [styles];\n}\n"]}
|
package/badge/lib/badge.d.ts
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* Copyright 2022 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { LitElement
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
import { LitElement } from 'lit';
|
|
7
|
+
/**
|
|
8
|
+
* TODO(b/265340196): add docs
|
|
9
|
+
*/
|
|
9
10
|
export declare class Badge extends LitElement {
|
|
10
11
|
value: string;
|
|
11
|
-
|
|
12
|
-
protected
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
protected render(): import("lit-html").TemplateResult<1>;
|
|
13
|
+
protected getRenderClasses(): {
|
|
14
|
+
'md3-badge--large': string;
|
|
15
|
+
};
|
|
15
16
|
}
|
package/badge/lib/badge.js
CHANGED
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* Copyright 2022 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { __decorate
|
|
6
|
+
import { __decorate } from "tslib";
|
|
7
7
|
import { html, LitElement } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
9
|
import { classMap } from 'lit/directives/class-map.js';
|
|
10
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* TODO(b/265340196): add docs
|
|
12
|
+
*/
|
|
11
13
|
export class Badge extends LitElement {
|
|
12
14
|
constructor() {
|
|
13
15
|
super(...arguments);
|
|
14
16
|
this.value = '';
|
|
15
17
|
}
|
|
16
|
-
/** @soyTemplate */
|
|
17
18
|
render() {
|
|
18
19
|
return html `<div class="md3-badge ${classMap(this.getRenderClasses())}"><p class="md3-badge__value">${this.value}</p></div>`;
|
|
19
20
|
}
|
|
20
|
-
/** @soyTemplate */
|
|
21
21
|
getRenderClasses() {
|
|
22
22
|
return {
|
|
23
23
|
'md3-badge--large': this.value,
|
|
@@ -25,7 +25,6 @@ export class Badge extends LitElement {
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
__decorate([
|
|
28
|
-
property(
|
|
29
|
-
__metadata("design:type", Object)
|
|
28
|
+
property()
|
|
30
29
|
], Badge.prototype, "value", void 0);
|
|
31
30
|
//# sourceMappingURL=badge.js.map
|
package/badge/lib/badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badge.js","sourceRoot":"","sources":["badge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"badge.js","sourceRoot":"","sources":["badge.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,OAAO,EAAC,IAAI,EAAE,UAAU,EAAC,MAAM,KAAK,CAAC;AACrC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAC,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AAErD;;GAEG;AACH,MAAM,OAAO,KAAM,SAAQ,UAAU;IAArC;;QACc,UAAK,GAAG,EAAE,CAAC;IAazB,CAAC;IAXoB,MAAM;QACvB,OAAO,IAAI,CAAA,yBACP,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,iCACjC,IAAI,CAAC,KAAK,YAAY,CAAC;IAC7B,CAAC;IAES,gBAAgB;QACxB,OAAO;YACL,kBAAkB,EAAE,IAAI,CAAC,KAAK;SAC/B,CAAC;IACJ,CAAC;CACF;AAba;IAAX,QAAQ,EAAE;oCAAY","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {html, LitElement} from 'lit';\nimport {property} from 'lit/decorators.js';\nimport {classMap} from 'lit/directives/class-map.js';\n\n/**\n * TODO(b/265340196): add docs\n */\nexport class Badge extends LitElement {\n @property() value = '';\n\n protected override render() {\n return html`<div class=\"md3-badge ${\n classMap(this.getRenderClasses())}\"><p class=\"md3-badge__value\">${\n this.value}</p></div>`;\n }\n\n protected getRenderClasses() {\n return {\n 'md3-badge--large': this.value,\n };\n }\n}\n"]}
|
|
@@ -6,18 +6,28 @@
|
|
|
6
6
|
// stylelint-disable selector-class-pattern --
|
|
7
7
|
// Selector '.md3-*' should only be used in this project.
|
|
8
8
|
|
|
9
|
+
// go/keep-sorted start
|
|
10
|
+
@use 'sass:map';
|
|
11
|
+
// go/keep-sorted end
|
|
9
12
|
// go/keep-sorted start
|
|
10
13
|
@use '../../elevation/elevation';
|
|
14
|
+
@use '../../tokens';
|
|
11
15
|
// go/keep-sorted end
|
|
12
16
|
|
|
17
|
+
$_md-sys-motion: tokens.md-sys-motion-values();
|
|
18
|
+
|
|
13
19
|
@mixin styles() {
|
|
20
|
+
md-elevation {
|
|
21
|
+
// TODO: replace duration with animation tokens
|
|
22
|
+
transition-duration: 280ms;
|
|
23
|
+
transition-timing-function: map.get($_md-sys-motion, 'emphasized-easing');
|
|
24
|
+
}
|
|
25
|
+
|
|
14
26
|
.md3-button {
|
|
15
27
|
@include elevation.theme(
|
|
16
28
|
(
|
|
17
|
-
// TODO: replace duration with animation tokens
|
|
18
|
-
'duration': 280ms,
|
|
19
29
|
'level': var(--_container-elevation),
|
|
20
|
-
'shadow-color': var(--_container-shadow-color)
|
|
30
|
+
'shadow-color': var(--_container-shadow-color),
|
|
21
31
|
)
|
|
22
32
|
);
|
|
23
33
|
|
package/button/lib/button.d.ts
CHANGED
|
@@ -8,16 +8,11 @@ import '../../ripple/ripple.js';
|
|
|
8
8
|
import { LitElement, TemplateResult } from 'lit';
|
|
9
9
|
import { ClassInfo } from 'lit/directives/class-map.js';
|
|
10
10
|
import { MdRipple } from '../../ripple/ripple.js';
|
|
11
|
-
import { ARIAExpanded, ARIAHasPopup } from '../../types/aria.js';
|
|
12
|
-
import { ButtonState } from './state.js';
|
|
13
11
|
/**
|
|
14
12
|
* A button component.
|
|
15
13
|
*/
|
|
16
|
-
export declare abstract class Button extends LitElement
|
|
14
|
+
export declare abstract class Button extends LitElement {
|
|
17
15
|
static shadowRootOptions: ShadowRootInit;
|
|
18
|
-
ariaExpanded: ARIAExpanded;
|
|
19
|
-
ariaHasPopup: ARIAHasPopup;
|
|
20
|
-
ariaLabel: string;
|
|
21
16
|
/**
|
|
22
17
|
* Whether or not the button is disabled.
|
|
23
18
|
*/
|
|
@@ -38,12 +33,6 @@ export declare abstract class Button extends LitElement implements ButtonState {
|
|
|
38
33
|
* _Note:_ Link buttons cannot have trailing icons.
|
|
39
34
|
*/
|
|
40
35
|
trailingIcon: boolean;
|
|
41
|
-
/**
|
|
42
|
-
* The button's visible label.
|
|
43
|
-
*
|
|
44
|
-
* @deprecated Set text as content of the button instead.
|
|
45
|
-
*/
|
|
46
|
-
label: string;
|
|
47
36
|
/**
|
|
48
37
|
* Whether to display the icon or not.
|
|
49
38
|
*/
|
package/button/lib/button.js
CHANGED
|
@@ -3,18 +3,17 @@
|
|
|
3
3
|
* Copyright 2019 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
// tslint:disable:no-new-decorators
|
|
6
|
+
var _a;
|
|
7
|
+
import { __decorate } from "tslib";
|
|
9
8
|
import '../../focus/focus-ring.js';
|
|
10
9
|
import '../../ripple/ripple.js';
|
|
11
|
-
import { html, LitElement, nothing } from 'lit';
|
|
10
|
+
import { html, isServer, LitElement, nothing } from 'lit';
|
|
12
11
|
import { property, query, queryAssignedElements, queryAsync, state } from 'lit/decorators.js';
|
|
13
12
|
import { classMap } from 'lit/directives/class-map.js';
|
|
14
13
|
import { when } from 'lit/directives/when.js';
|
|
15
14
|
import { html as staticHtml, literal } from 'lit/static-html.js';
|
|
15
|
+
import { requestUpdateOnAriaChange } from '../../aria/delegate.js';
|
|
16
16
|
import { dispatchActivationClick, isActivationClick } from '../../controller/events.js';
|
|
17
|
-
import { ariaProperty } from '../../decorators/aria-property.js';
|
|
18
17
|
import { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';
|
|
19
18
|
import { ripple } from '../../ripple/directive.js';
|
|
20
19
|
/**
|
|
@@ -34,13 +33,6 @@ export class Button extends LitElement {
|
|
|
34
33
|
* _Note:_ Link buttons cannot have trailing icons.
|
|
35
34
|
*/
|
|
36
35
|
this.trailingIcon = false;
|
|
37
|
-
// TODO(b/272598771): remove label property
|
|
38
|
-
/**
|
|
39
|
-
* The button's visible label.
|
|
40
|
-
*
|
|
41
|
-
* @deprecated Set text as content of the button instead.
|
|
42
|
-
*/
|
|
43
|
-
this.label = '';
|
|
44
36
|
/**
|
|
45
37
|
* Whether to display the icon or not.
|
|
46
38
|
*/
|
|
@@ -67,7 +59,9 @@ export class Button extends LitElement {
|
|
|
67
59
|
this.renderRipple = () => {
|
|
68
60
|
return html `<md-ripple class="md3-button__ripple" ?disabled="${this.disabled}"></md-ripple>`;
|
|
69
61
|
};
|
|
70
|
-
|
|
62
|
+
if (!isServer) {
|
|
63
|
+
this.addEventListener('click', this.handleActivationClick);
|
|
64
|
+
}
|
|
71
65
|
}
|
|
72
66
|
focus() {
|
|
73
67
|
this.buttonElement.focus();
|
|
@@ -79,13 +73,15 @@ export class Button extends LitElement {
|
|
|
79
73
|
// Link buttons may not be disabled
|
|
80
74
|
const isDisabled = this.disabled && !this.href;
|
|
81
75
|
const button = this.href ? literal `a` : literal `button`;
|
|
76
|
+
// Needed for closure conformance
|
|
77
|
+
const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
|
|
82
78
|
return staticHtml `
|
|
83
79
|
<${button}
|
|
84
80
|
class="md3-button ${classMap(this.getRenderClasses())}"
|
|
85
81
|
?disabled=${isDisabled}
|
|
86
|
-
aria-label="${
|
|
87
|
-
aria-haspopup="${
|
|
88
|
-
aria-expanded="${
|
|
82
|
+
aria-label="${ariaLabel || nothing}"
|
|
83
|
+
aria-haspopup="${ariaHasPopup || nothing}"
|
|
84
|
+
aria-expanded="${ariaExpanded || nothing}"
|
|
89
85
|
href=${this.href || nothing}
|
|
90
86
|
target=${this.target || nothing}
|
|
91
87
|
@pointerdown="${this.handlePointerDown}"
|
|
@@ -102,7 +98,7 @@ export class Button extends LitElement {
|
|
|
102
98
|
${this.renderLeadingIcon()}
|
|
103
99
|
${this.renderLabel()}
|
|
104
100
|
${this.renderTrailingIcon()}
|
|
105
|
-
</${button}
|
|
101
|
+
</${button}>`;
|
|
106
102
|
}
|
|
107
103
|
getRenderClasses() {
|
|
108
104
|
return {
|
|
@@ -125,8 +121,7 @@ export class Button extends LitElement {
|
|
|
125
121
|
return html `<md-focus-ring .visible="${this.showFocusRing}"></md-focus-ring>`;
|
|
126
122
|
}
|
|
127
123
|
renderLabel() {
|
|
128
|
-
|
|
129
|
-
return html `<span class="md3-button__label">${this.label ? this.label : html `<slot></slot>`}</span>`;
|
|
124
|
+
return html `<span class="md3-button__label"><slot></slot></span>`;
|
|
130
125
|
}
|
|
131
126
|
renderLeadingIcon() {
|
|
132
127
|
return this.trailingIcon ? '' : this.renderIcon();
|
|
@@ -156,68 +151,42 @@ export class Button extends LitElement {
|
|
|
156
151
|
this.hasIcon = this.assignedIcons.length > 0;
|
|
157
152
|
}
|
|
158
153
|
}
|
|
154
|
+
_a = Button;
|
|
155
|
+
(() => {
|
|
156
|
+
requestUpdateOnAriaChange(_a);
|
|
157
|
+
})();
|
|
159
158
|
Button.shadowRootOptions = { mode: 'open', delegatesFocus: true };
|
|
160
159
|
__decorate([
|
|
161
|
-
property({ type:
|
|
162
|
-
ariaProperty,
|
|
163
|
-
__metadata("design:type", String)
|
|
164
|
-
], Button.prototype, "ariaExpanded", void 0);
|
|
165
|
-
__decorate([
|
|
166
|
-
property({ type: String, attribute: 'data-aria-has-popup', noAccessor: true }),
|
|
167
|
-
ariaProperty,
|
|
168
|
-
__metadata("design:type", String)
|
|
169
|
-
], Button.prototype, "ariaHasPopup", void 0);
|
|
170
|
-
__decorate([
|
|
171
|
-
property({ type: String, attribute: 'data-aria-label', noAccessor: true }),
|
|
172
|
-
ariaProperty,
|
|
173
|
-
__metadata("design:type", String)
|
|
174
|
-
], Button.prototype, "ariaLabel", void 0);
|
|
175
|
-
__decorate([
|
|
176
|
-
property({ type: Boolean, reflect: true }),
|
|
177
|
-
__metadata("design:type", Object)
|
|
160
|
+
property({ type: Boolean, reflect: true })
|
|
178
161
|
], Button.prototype, "disabled", void 0);
|
|
179
162
|
__decorate([
|
|
180
|
-
property(
|
|
181
|
-
__metadata("design:type", String)
|
|
163
|
+
property()
|
|
182
164
|
], Button.prototype, "href", void 0);
|
|
183
165
|
__decorate([
|
|
184
|
-
property(
|
|
185
|
-
__metadata("design:type", String)
|
|
166
|
+
property()
|
|
186
167
|
], Button.prototype, "target", void 0);
|
|
187
168
|
__decorate([
|
|
188
|
-
property({ type: Boolean, attribute: 'trailingicon' })
|
|
189
|
-
__metadata("design:type", Object)
|
|
169
|
+
property({ type: Boolean, attribute: 'trailingicon' })
|
|
190
170
|
], Button.prototype, "trailingIcon", void 0);
|
|
191
171
|
__decorate([
|
|
192
|
-
property({ type:
|
|
193
|
-
__metadata("design:type", Object)
|
|
194
|
-
], Button.prototype, "label", void 0);
|
|
195
|
-
__decorate([
|
|
196
|
-
property({ type: Boolean }),
|
|
197
|
-
__metadata("design:type", Object)
|
|
172
|
+
property({ type: Boolean })
|
|
198
173
|
], Button.prototype, "hasIcon", void 0);
|
|
199
174
|
__decorate([
|
|
200
|
-
property({ type: Boolean })
|
|
201
|
-
__metadata("design:type", Object)
|
|
175
|
+
property({ type: Boolean })
|
|
202
176
|
], Button.prototype, "preventClickDefault", void 0);
|
|
203
177
|
__decorate([
|
|
204
|
-
query('.md3-button')
|
|
205
|
-
__metadata("design:type", HTMLElement)
|
|
178
|
+
query('.md3-button')
|
|
206
179
|
], Button.prototype, "buttonElement", void 0);
|
|
207
180
|
__decorate([
|
|
208
|
-
queryAsync('md-ripple')
|
|
209
|
-
__metadata("design:type", Promise)
|
|
181
|
+
queryAsync('md-ripple')
|
|
210
182
|
], Button.prototype, "ripple", void 0);
|
|
211
183
|
__decorate([
|
|
212
|
-
state()
|
|
213
|
-
__metadata("design:type", Object)
|
|
184
|
+
state()
|
|
214
185
|
], Button.prototype, "showFocusRing", void 0);
|
|
215
186
|
__decorate([
|
|
216
|
-
state()
|
|
217
|
-
__metadata("design:type", Object)
|
|
187
|
+
state()
|
|
218
188
|
], Button.prototype, "showRipple", void 0);
|
|
219
189
|
__decorate([
|
|
220
|
-
queryAssignedElements({ slot: 'icon', flatten: true })
|
|
221
|
-
__metadata("design:type", Array)
|
|
190
|
+
queryAssignedElements({ slot: 'icon', flatten: true })
|
|
222
191
|
], Button.prototype, "assignedIcons", void 0);
|
|
223
192
|
//# sourceMappingURL=button.js.map
|
package/button/lib/button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sourceRoot":"","sources":["button.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\n// This is required for @ariaProperty\n// tslint:disable:no-new-decorators\n\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, LitElement, nothing, TemplateResult} from 'lit';\nimport {property, query, queryAssignedElements, queryAsync, state} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\nimport {when} from 'lit/directives/when.js';\nimport {html as staticHtml, literal} from 'lit/static-html.js';\n\nimport {dispatchActivationClick, isActivationClick} from '../../controller/events.js';\nimport {ariaProperty} from '../../decorators/aria-property.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../focus/strong-focus.js';\nimport {ripple} from '../../ripple/directive.js';\nimport {MdRipple} from '../../ripple/ripple.js';\nimport {ARIAExpanded, ARIAHasPopup} from '../../types/aria.js';\n\nimport {ButtonState} from './state.js';\n\n/**\n * A button component.\n */\nexport abstract class Button extends LitElement implements ButtonState {\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n @property({type: String, attribute: 'data-aria-expanded', noAccessor: true})\n @ariaProperty\n override ariaExpanded!: ARIAExpanded;\n\n @property({type: String, attribute: 'data-aria-has-popup', noAccessor: true})\n @ariaProperty\n override ariaHasPopup!: ARIAHasPopup;\n\n @property({type: String, attribute: 'data-aria-label', noAccessor: true})\n @ariaProperty\n override ariaLabel!: string;\n\n /**\n * Whether or not the button is disabled.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * The URL that the link button points to.\n */\n @property({type: String}) href?: string;\n\n /**\n * Where to display the linked `href` URL for a link button. Common options\n * include `_blank` to open in a new tab.\n */\n @property({type: String}) target?: string;\n\n /**\n * Whether to render the icon at the inline end of the label rather than the\n * inline start.\n *\n * _Note:_ Link buttons cannot have trailing icons.\n */\n @property({type: Boolean, attribute: 'trailingicon'}) trailingIcon = false;\n\n // TODO(b/272598771): remove label property\n /**\n * The button's visible label.\n *\n * @deprecated Set text as content of the button instead.\n */\n @property({type: String}) label = '';\n\n /**\n * Whether to display the icon or not.\n */\n @property({type: Boolean}) hasIcon = false;\n\n /**\n * Whether `preventDefault()` should be called on the underlying button.\n * Useful for preventing certain native functionalities like preventing form\n * submissions.\n */\n @property({type: Boolean}) preventClickDefault = false;\n\n @query('.md3-button') protected buttonElement!: HTMLElement;\n\n @queryAsync('md-ripple') protected ripple!: Promise<MdRipple|null>;\n\n @state() protected showFocusRing = false;\n\n @state() protected showRipple = false;\n\n @queryAssignedElements({slot: 'icon', flatten: true})\n protected assignedIcons!: HTMLElement[];\n\n constructor() {\n super();\n this.addEventListener('click', this.handleActivationClick);\n }\n\n private readonly handleActivationClick = (event: MouseEvent) => {\n if (!isActivationClick((event))) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.buttonElement);\n };\n\n override focus() {\n this.buttonElement.focus();\n }\n\n override blur() {\n this.buttonElement.blur();\n }\n\n protected readonly getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n protected override render(): TemplateResult {\n // Link buttons may not be disabled\n const isDisabled = this.disabled && !this.href;\n\n const button = this.href ? literal`a` : literal`button`;\n return staticHtml`\n <${button}\n class=\"md3-button ${classMap(this.getRenderClasses())}\"\n ?disabled=${isDisabled}\n aria-label=\"${this.ariaLabel || nothing}\"\n aria-haspopup=\"${this.ariaHasPopup || nothing}\"\n aria-expanded=\"${this.ariaExpanded || nothing}\"\n href=${this.href || nothing}\n target=${this.target || nothing}\n @pointerdown=\"${this.handlePointerDown}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n @click=\"${this.handleClick}\"\n ${ripple(this.getRipple)}\n >\n ${this.renderFocusRing()}\n ${this.renderElevation()}\n ${when(this.showRipple, this.renderRipple)}\n ${this.renderOutline()}\n ${this.renderTouchTarget()}\n ${this.renderLeadingIcon()}\n ${this.renderLabel()}\n ${this.renderTrailingIcon()}\n </${button}}>`;\n }\n\n protected getRenderClasses(): ClassInfo {\n return {\n 'md3-button--icon-leading': !this.trailingIcon && this.hasIcon,\n 'md3-button--icon-trailing': this.trailingIcon && this.hasIcon,\n };\n }\n\n protected renderTouchTarget(): TemplateResult {\n return html`\n <span class=\"md3-button__touch\"></span>\n `;\n }\n\n protected renderElevation(): TemplateResult {\n return html``;\n }\n\n protected renderRipple = () => {\n return html`<md-ripple class=\"md3-button__ripple\" ?disabled=\"${\n this.disabled}\"></md-ripple>`;\n };\n\n protected renderOutline(): TemplateResult {\n return html``;\n }\n\n protected renderFocusRing(): TemplateResult {\n return html`<md-focus-ring .visible=\"${\n this.showFocusRing}\"></md-focus-ring>`;\n }\n\n protected renderLabel(): TemplateResult {\n // TODO(b/272598771): remove the ternary when label property is removed\n return html`<span class=\"md3-button__label\">${\n this.label ? this.label : html`<slot></slot>`}</span>`;\n }\n\n protected renderLeadingIcon(): TemplateResult|string {\n return this.trailingIcon ? '' : this.renderIcon();\n }\n\n protected renderTrailingIcon(): TemplateResult|string {\n return this.trailingIcon ? this.renderIcon() : '';\n }\n\n protected renderIcon(): TemplateResult {\n return html`<slot name=\"icon\" @slotchange=\"${\n this.handleSlotChange}\"></slot>`;\n }\n\n protected handlePointerDown(e: PointerEvent) {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleClick(e: MouseEvent) {\n if (this.preventClickDefault) {\n e.preventDefault();\n }\n }\n\n protected handleFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleBlur() {\n this.showFocusRing = false;\n }\n\n protected handleSlotChange() {\n this.hasIcon = this.assignedIcons.length > 0;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"button.js","sourceRoot":"","sources":["button.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/focus-ring.js';\nimport '../../ripple/ripple.js';\n\nimport {html, isServer, LitElement, nothing, TemplateResult} from 'lit';\nimport {property, query, queryAssignedElements, queryAsync, state} from 'lit/decorators.js';\nimport {ClassInfo, classMap} from 'lit/directives/class-map.js';\nimport {when} from 'lit/directives/when.js';\nimport {html as staticHtml, literal} from 'lit/static-html.js';\n\nimport {requestUpdateOnAriaChange} from '../../aria/delegate.js';\nimport {dispatchActivationClick, isActivationClick} from '../../controller/events.js';\nimport {pointerPress, shouldShowStrongFocus} from '../../focus/strong-focus.js';\nimport {ripple} from '../../ripple/directive.js';\nimport {MdRipple} from '../../ripple/ripple.js';\nimport {ARIAMixinStrict} from '../../types/aria.js';\n\n/**\n * A button component.\n */\nexport abstract class Button extends LitElement {\n static {\n requestUpdateOnAriaChange(this);\n }\n\n static override shadowRootOptions:\n ShadowRootInit = {mode: 'open', delegatesFocus: true};\n\n /**\n * Whether or not the button is disabled.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * The URL that the link button points to.\n */\n @property() href?: string;\n\n /**\n * Where to display the linked `href` URL for a link button. Common options\n * include `_blank` to open in a new tab.\n */\n @property() target?: string;\n\n /**\n * Whether to render the icon at the inline end of the label rather than the\n * inline start.\n *\n * _Note:_ Link buttons cannot have trailing icons.\n */\n @property({type: Boolean, attribute: 'trailingicon'}) trailingIcon = false;\n\n /**\n * Whether to display the icon or not.\n */\n @property({type: Boolean}) hasIcon = false;\n\n /**\n * Whether `preventDefault()` should be called on the underlying button.\n * Useful for preventing certain native functionalities like preventing form\n * submissions.\n */\n @property({type: Boolean}) preventClickDefault = false;\n\n @query('.md3-button') protected buttonElement!: HTMLElement;\n\n @queryAsync('md-ripple') protected ripple!: Promise<MdRipple|null>;\n\n @state() protected showFocusRing = false;\n\n @state() protected showRipple = false;\n\n @queryAssignedElements({slot: 'icon', flatten: true})\n protected assignedIcons!: HTMLElement[];\n\n constructor() {\n super();\n if (!isServer) {\n this.addEventListener('click', this.handleActivationClick);\n }\n }\n\n private readonly handleActivationClick = (event: MouseEvent) => {\n if (!isActivationClick((event))) {\n return;\n }\n this.focus();\n dispatchActivationClick(this.buttonElement);\n };\n\n override focus() {\n this.buttonElement.focus();\n }\n\n override blur() {\n this.buttonElement.blur();\n }\n\n protected readonly getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n protected override render(): TemplateResult {\n // Link buttons may not be disabled\n const isDisabled = this.disabled && !this.href;\n\n const button = this.href ? literal`a` : literal`button`;\n // Needed for closure conformance\n const {ariaLabel, ariaHasPopup, ariaExpanded} = this as ARIAMixinStrict;\n return staticHtml`\n <${button}\n class=\"md3-button ${classMap(this.getRenderClasses())}\"\n ?disabled=${isDisabled}\n aria-label=\"${ariaLabel || nothing}\"\n aria-haspopup=\"${ariaHasPopup || nothing}\"\n aria-expanded=\"${ariaExpanded || nothing}\"\n href=${this.href || nothing}\n target=${this.target || nothing}\n @pointerdown=\"${this.handlePointerDown}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n @click=\"${this.handleClick}\"\n ${ripple(this.getRipple)}\n >\n ${this.renderFocusRing()}\n ${this.renderElevation()}\n ${when(this.showRipple, this.renderRipple)}\n ${this.renderOutline()}\n ${this.renderTouchTarget()}\n ${this.renderLeadingIcon()}\n ${this.renderLabel()}\n ${this.renderTrailingIcon()}\n </${button}>`;\n }\n\n protected getRenderClasses(): ClassInfo {\n return {\n 'md3-button--icon-leading': !this.trailingIcon && this.hasIcon,\n 'md3-button--icon-trailing': this.trailingIcon && this.hasIcon,\n };\n }\n\n protected renderTouchTarget(): TemplateResult {\n return html`\n <span class=\"md3-button__touch\"></span>\n `;\n }\n\n protected renderElevation(): TemplateResult {\n return html``;\n }\n\n protected renderRipple = () => {\n return html`<md-ripple class=\"md3-button__ripple\" ?disabled=\"${\n this.disabled}\"></md-ripple>`;\n };\n\n protected renderOutline(): TemplateResult {\n return html``;\n }\n\n protected renderFocusRing(): TemplateResult {\n return html`<md-focus-ring .visible=\"${\n this.showFocusRing}\"></md-focus-ring>`;\n }\n\n protected renderLabel(): TemplateResult {\n return html`<span class=\"md3-button__label\"><slot></slot></span>`;\n }\n\n protected renderLeadingIcon(): TemplateResult|string {\n return this.trailingIcon ? '' : this.renderIcon();\n }\n\n protected renderTrailingIcon(): TemplateResult|string {\n return this.trailingIcon ? this.renderIcon() : '';\n }\n\n protected renderIcon(): TemplateResult {\n return html`<slot name=\"icon\" @slotchange=\"${\n this.handleSlotChange}\"></slot>`;\n }\n\n protected handlePointerDown(e: PointerEvent) {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleClick(e: MouseEvent) {\n if (this.preventClickDefault) {\n e.preventDefault();\n }\n }\n\n protected handleFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleBlur() {\n this.showFocusRing = false;\n }\n\n protected handleSlotChange() {\n this.hasIcon = this.assignedIcons.length > 0;\n }\n}\n"]}
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { css } from 'lit';
|
|
7
|
-
export const styles = css
|
|
7
|
+
export const styles = css `md-elevation{transition-duration:280ms}.md3-button{--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color)}.md3-button:focus{--md-elevation-level:var(--_focus-container-elevation)}.md3-button:hover{--md-elevation-level:var(--_hover-container-elevation)}.md3-button:active{--md-elevation-level:var(--_pressed-container-elevation)}.md3-button:disabled{--md-elevation-level:var(--_disabled-container-elevation)}/*# sourceMappingURL=shared-elevation-styles.css.map */
|
|
8
8
|
`;
|
|
9
9
|
//# sourceMappingURL=shared-elevation-styles.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-elevation-styles.css.js","sourceRoot":"","sources":["shared-elevation-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css
|
|
1
|
+
{"version":3,"file":"shared-elevation-styles.css.js","sourceRoot":"","sources":["shared-elevation-styles.css.ts"],"names":[],"mappings":"AAAA;;;;IAII;AACH,OAAO,EAAC,GAAG,EAAC,MAAM,KAAK,CAAC;AACxB,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;CACzB,CAAC","sourcesContent":["/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n import {css} from 'lit';\n export const styles = css`md-elevation{transition-duration:280ms}.md3-button{--md-elevation-level:var(--_container-elevation);--md-elevation-shadow-color:var(--_container-shadow-color)}.md3-button:focus{--md-elevation-level:var(--_focus-container-elevation)}.md3-button:hover{--md-elevation-level:var(--_hover-container-elevation)}.md3-button:active{--md-elevation-level:var(--_pressed-container-elevation)}.md3-button:disabled{--md-elevation-level:var(--_disabled-container-elevation)}/*# sourceMappingURL=shared-elevation-styles.css.map */\n`;\n "]}
|