@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
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
* Copyright 2018 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 '../../icon/icon.js';
|
|
11
10
|
import '../../ripple/ripple.js';
|
|
@@ -14,8 +13,8 @@ import { property, query, queryAsync, state } from 'lit/decorators.js';
|
|
|
14
13
|
import { classMap } from 'lit/directives/class-map.js';
|
|
15
14
|
import { when } from 'lit/directives/when.js';
|
|
16
15
|
import { html as staticHtml, literal } from 'lit/static-html.js';
|
|
16
|
+
import { requestUpdateOnAriaChange } from '../../aria/delegate.js';
|
|
17
17
|
import { isRtl } from '../../controller/is-rtl.js';
|
|
18
|
-
import { ariaProperty } from '../../decorators/aria-property.js';
|
|
19
18
|
import { pointerPress, shouldShowStrongFocus } from '../../focus/strong-focus.js';
|
|
20
19
|
import { ripple } from '../../ripple/directive.js';
|
|
21
20
|
// tslint:disable-next-line:enforce-comments-on-exported-symbols
|
|
@@ -70,19 +69,21 @@ export class IconButton extends LitElement {
|
|
|
70
69
|
}
|
|
71
70
|
render() {
|
|
72
71
|
const tag = this.href ? literal `div` : literal `button`;
|
|
73
|
-
|
|
72
|
+
// Needed for closure conformance
|
|
73
|
+
const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
|
|
74
|
+
const hasToggledAriaLabel = ariaLabel && this.selectedAriaLabel;
|
|
74
75
|
const ariaPressedValue = hasToggledAriaLabel ? nothing : this.selected;
|
|
75
76
|
let ariaLabelValue = nothing;
|
|
76
77
|
if (!this.href) {
|
|
77
78
|
ariaLabelValue = (hasToggledAriaLabel && this.selected) ?
|
|
78
79
|
this.selectedAriaLabel :
|
|
79
|
-
|
|
80
|
+
ariaLabel;
|
|
80
81
|
}
|
|
81
82
|
return staticHtml `<${tag}
|
|
82
83
|
class="md3-icon-button ${classMap(this.getRenderClasses())}"
|
|
83
84
|
aria-label="${ariaLabelValue || nothing}"
|
|
84
|
-
aria-haspopup="${!this.href &&
|
|
85
|
-
aria-expanded="${!this.href &&
|
|
85
|
+
aria-haspopup="${!this.href && ariaHasPopup || nothing}"
|
|
86
|
+
aria-expanded="${!this.href && ariaExpanded || nothing}"
|
|
86
87
|
aria-pressed="${ariaPressedValue}"
|
|
87
88
|
?disabled="${!this.href && this.disabled}"
|
|
88
89
|
@focus="${this.handleFocus}"
|
|
@@ -99,11 +100,13 @@ export class IconButton extends LitElement {
|
|
|
99
100
|
</${tag}>`;
|
|
100
101
|
}
|
|
101
102
|
renderLink() {
|
|
103
|
+
// Needed for closure conformance
|
|
104
|
+
const { ariaLabel } = this;
|
|
102
105
|
return html `<a class="md3-icon-button__link" href="${this.href}"
|
|
103
106
|
target="${this.target || nothing}"
|
|
104
107
|
@focus="${this.handleFocus}"
|
|
105
108
|
@blur="${this.handleBlur}"
|
|
106
|
-
aria-label="${
|
|
109
|
+
aria-label="${ariaLabel || nothing}"></a>`;
|
|
107
110
|
}
|
|
108
111
|
getRenderClasses() {
|
|
109
112
|
return {
|
|
@@ -149,67 +152,44 @@ export class IconButton extends LitElement {
|
|
|
149
152
|
this.dispatchEvent(new Event('change', { bubbles: true }));
|
|
150
153
|
}
|
|
151
154
|
}
|
|
155
|
+
_a = IconButton;
|
|
156
|
+
(() => {
|
|
157
|
+
requestUpdateOnAriaChange(_a);
|
|
158
|
+
})();
|
|
152
159
|
__decorate([
|
|
153
|
-
property({ type: Boolean, reflect: true })
|
|
154
|
-
__metadata("design:type", Object)
|
|
160
|
+
property({ type: Boolean, reflect: true })
|
|
155
161
|
], IconButton.prototype, "disabled", void 0);
|
|
156
162
|
__decorate([
|
|
157
|
-
property({ type: Boolean })
|
|
158
|
-
__metadata("design:type", Object)
|
|
163
|
+
property({ type: Boolean })
|
|
159
164
|
], IconButton.prototype, "flipIconInRtl", void 0);
|
|
160
165
|
__decorate([
|
|
161
|
-
|
|
162
|
-
property({ attribute: 'data-aria-label' }),
|
|
163
|
-
__metadata("design:type", String)
|
|
164
|
-
], IconButton.prototype, "ariaLabel", void 0);
|
|
165
|
-
__decorate([
|
|
166
|
-
ariaProperty,
|
|
167
|
-
property({ attribute: 'data-aria-haspopup' }),
|
|
168
|
-
__metadata("design:type", String)
|
|
169
|
-
], IconButton.prototype, "ariaHasPopup", void 0);
|
|
170
|
-
__decorate([
|
|
171
|
-
ariaProperty,
|
|
172
|
-
property({ attribute: 'data-aria-expanded' }),
|
|
173
|
-
__metadata("design:type", String)
|
|
174
|
-
], IconButton.prototype, "ariaExpanded", void 0);
|
|
175
|
-
__decorate([
|
|
176
|
-
property(),
|
|
177
|
-
__metadata("design:type", Object)
|
|
166
|
+
property()
|
|
178
167
|
], IconButton.prototype, "href", void 0);
|
|
179
168
|
__decorate([
|
|
180
|
-
property()
|
|
181
|
-
__metadata("design:type", Object)
|
|
169
|
+
property()
|
|
182
170
|
], IconButton.prototype, "target", void 0);
|
|
183
171
|
__decorate([
|
|
184
|
-
property({ attribute: 'selected-aria-label', reflect: true })
|
|
185
|
-
__metadata("design:type", String)
|
|
172
|
+
property({ attribute: 'selected-aria-label', reflect: true })
|
|
186
173
|
], IconButton.prototype, "selectedAriaLabel", void 0);
|
|
187
174
|
__decorate([
|
|
188
|
-
property({ type: Boolean })
|
|
189
|
-
__metadata("design:type", Object)
|
|
175
|
+
property({ type: Boolean })
|
|
190
176
|
], IconButton.prototype, "toggle", void 0);
|
|
191
177
|
__decorate([
|
|
192
|
-
property({ type: Boolean, reflect: true })
|
|
193
|
-
__metadata("design:type", Object)
|
|
178
|
+
property({ type: Boolean, reflect: true })
|
|
194
179
|
], IconButton.prototype, "selected", void 0);
|
|
195
180
|
__decorate([
|
|
196
|
-
query('button')
|
|
197
|
-
__metadata("design:type", HTMLElement)
|
|
181
|
+
query('button')
|
|
198
182
|
], IconButton.prototype, "buttonElement", void 0);
|
|
199
183
|
__decorate([
|
|
200
|
-
queryAsync('md-ripple')
|
|
201
|
-
__metadata("design:type", Promise)
|
|
184
|
+
queryAsync('md-ripple')
|
|
202
185
|
], IconButton.prototype, "ripple", void 0);
|
|
203
186
|
__decorate([
|
|
204
|
-
state()
|
|
205
|
-
__metadata("design:type", Object)
|
|
187
|
+
state()
|
|
206
188
|
], IconButton.prototype, "showFocusRing", void 0);
|
|
207
189
|
__decorate([
|
|
208
|
-
state()
|
|
209
|
-
__metadata("design:type", Object)
|
|
190
|
+
state()
|
|
210
191
|
], IconButton.prototype, "showRipple", void 0);
|
|
211
192
|
__decorate([
|
|
212
|
-
state()
|
|
213
|
-
__metadata("design:type", Boolean)
|
|
193
|
+
state()
|
|
214
194
|
], IconButton.prototype, "flipIcon", void 0);
|
|
215
195
|
//# sourceMappingURL=icon-button.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon-button.js","sourceRoot":"","sources":["icon-button.ts"],"names":[],"mappings":"AAAA;;;;GAIG;;AAEH,qCAAqC;AACrC,mCAAmC;AAEnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,wBAAwB,CAAC;AAEhC,OAAO,EAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAiB,MAAM,KAAK,CAAC;AAC9D,OAAO,EAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAC,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAY,QAAQ,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,IAAI,EAAC,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAC,IAAI,IAAI,UAAU,EAAE,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAC,KAAK,EAAC,MAAM,4BAA4B,CAAC;AACjD,OAAO,EAAC,YAAY,EAAC,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAC,YAAY,EAAE,qBAAqB,EAAC,MAAM,6BAA6B,CAAC;AAChF,OAAO,EAAC,MAAM,EAAC,MAAM,2BAA2B,CAAC;AAMjD,gEAAgE;AAChE,MAAM,OAAO,UAAW,SAAQ,UAAU;IAA1C;;QACE;;WAEG;QACuC,aAAQ,GAAG,KAAK,CAAC;QAE3D;;WAEG;QACwB,kBAAa,GAAG,KAAK,CAAC;QAcjD;;WAEG;QACS,SAAI,GAAG,EAAE,CAAC;QAEtB;;WAEG;QACS,WAAM,GAAG,EAAE,CAAC;QAQxB;;;WAGG;QACwB,WAAM,GAAG,KAAK,CAAC;QAE1C;;;;WAIG;QACuC,aAAQ,GAAG,KAAK,CAAC;QAMxC,kBAAa,GAAG,KAAK,CAAC;QAEtB,eAAU,GAAG,KAAK,CAAC;QAEnB,aAAQ,GAAY,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7D,cAAS,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,CAAC;QAEiB,iBAAY,GAAG,GAAG,EAAE;YACrC,OAAO,IAAI,CAAA,yBACX,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,gBAAgB,CAAC;QAC9C,CAAC,CAAC;IAyGJ,CAAC;IAvGC;;OAEG;IACM,UAAU;QACjB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;IACH,CAAC;IAEkB,MAAM;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAA,KAAK,CAAC,CAAC,CAAC,OAAO,CAAA,QAAQ,CAAC;QACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,iBAAiB,CAAC;QACrE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvE,IAAI,cAAc,GAA0B,OAAO,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,cAAc,GAAG,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC;SACpB;QACD,OAAO,UAAU,CAAA,IAAI,GAAG;iCACK,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;sBAC5C,cAAc,IAAI,OAAO;yBACtB,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO;yBAC1C,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,OAAO;wBAC3C,gBAAgB;qBACnB,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ;kBAC9B,IAAI,CAAC,WAAW;iBACjB,IAAI,CAAC,UAAU;wBACR,IAAI,CAAC,iBAAiB;kBAC5B,IAAI,CAAC,WAAW;UACxB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;UACtB,IAAI,CAAC,eAAe,EAAE;UACtB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;UACxC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO;UAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,OAAO;UACnD,IAAI,CAAC,iBAAiB,EAAE;UACxB,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;MAClC,GAAG,GAAG,CAAC;IACX,CAAC;IAES,UAAU;QAClB,OAAO,IAAI,CAAA,0CAA0C,IAAI,CAAC,IAAI;4BACtC,IAAI,CAAC,MAAoB,IAAI,OAAO;4BACpC,IAAI,CAAC,WAAW;2BACjB,IAAI,CAAC,UAAU;gCACV,IAAI,CAAC,SAAS,IAAI,OAAO,QAAQ,CAAC;IAChE,CAAC;IAES,gBAAgB;QACxB,OAAO;YACL,4BAA4B,EAAE,IAAI,CAAC,QAAQ;YAC3C,2BAA2B,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ;SAC1D,CAAC;IACJ,CAAC;IAES,UAAU;QAClB,OAAO,IAAI,CAAA,gEAAgE,CAAC;IAC9E,CAAC;IAES,kBAAkB;QAC1B,wEAAwE;QACxE,OAAO,IAAI,CAAA,iIAAiI,CAAC;IAC/I,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,CAAA,8CAA8C,CAAC;IAC5D,CAAC;IAES,eAAe;QACvB,OAAO,IAAI,CAAA,4BACP,IAAI,CAAC,aAAa,oBAAoB,CAAC;IAC7C,CAAC;IAEQ,iBAAiB;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAChD,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,YAAY,EAAE,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,aAAa,GAAG,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAES,WAAW;QACnB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,OAAO;SACR;QAED,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,aAAa,CACd,IAAI,UAAU,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAC9D,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;CACF;AA3KC;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;4CAAkB;AAK3D;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;;iDAAuB;AAEjD;IAAC,YAAY;IACZ,QAAQ,CAAC,EAAC,SAAS,EAAE,iBAAiB,EAAC,CAAC;;6CACb;AAE5B;IAAC,YAAY;IACZ,QAAQ,CAAC,EAAC,SAAS,EAAE,oBAAoB,EAAC,CAAC;;gDACP;AAErC;IAAC,YAAY;IACZ,QAAQ,CAAC,EAAC,SAAS,EAAE,oBAAoB,EAAC,CAAC;;gDACP;AAKrC;IAAC,QAAQ,EAAE;;wCAAW;AAKtB;IAAC,QAAQ,EAAE;;0CAAa;AAKxB;IAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;qDACjC;AAM3B;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;;0CAAgB;AAO1C;IAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;;4CAAkB;AAE3D;IAAC,KAAK,CAAC,QAAQ,CAAC;8BAA2B,WAAW;iDAAC;AAEvD;IAAC,UAAU,CAAC,WAAW,CAAC;;0CAA2C;AAEnE;IAAC,KAAK,EAAE;;iDAAiC;AAEzC;IAAC,KAAK,EAAE;;8CAA8B;AAEtC;IAAC,KAAK,EAAE;;4CAA+D","sourcesContent":["/**\n * @license\n * Copyright 2018 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 '../../icon/icon.js';\nimport '../../ripple/ripple.js';\n\nimport {html, LitElement, nothing, TemplateResult} from 'lit';\nimport {property, query, 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 {isRtl} from '../../controller/is-rtl.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\ntype LinkTarget = '_blank'|'_parent'|'_self'|'_top';\n\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class IconButton extends LitElement {\n /**\n * Disables the icon button and makes it non-interactive.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * Flips the icon if it is in an RTL context at startup.\n */\n @property({type: Boolean}) flipIconInRtl = false;\n\n @ariaProperty\n @property({attribute: 'data-aria-label'})\n override ariaLabel!: string;\n\n @ariaProperty\n @property({attribute: 'data-aria-haspopup'})\n override ariaHasPopup!: ARIAHasPopup;\n\n @ariaProperty\n @property({attribute: 'data-aria-expanded'})\n override ariaExpanded!: ARIAExpanded;\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.\n */\n @property() href = '';\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `target` attribute.\n */\n @property() target = '';\n\n /**\n * The `aria-label` of the button when the button is toggleable and selected.\n */\n @property({attribute: 'selected-aria-label', reflect: true})\n selectedAriaLabel!: string;\n\n /**\n * When true, the button will toggle between selected and unselected\n * states\n */\n @property({type: Boolean}) toggle = false;\n\n /**\n * Sets the selected state. When false, displays the default icon. When true,\n * displays the `selectedIcon`, or the default icon If no `selectedIcon` is\n * provided.\n */\n @property({type: Boolean, reflect: true}) selected = false;\n\n @query('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 @state() protected flipIcon: boolean = isRtl(this, this.flipIconInRtl);\n\n protected getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n protected readonly renderRipple = () => {\n return html`<md-ripple ?disabled=\"${\n !this.href && this.disabled}\"></md-ripple>`;\n };\n\n /**\n * Link buttons cannot be disabled.\n */\n override willUpdate() {\n if (this.href) {\n this.disabled = false;\n }\n }\n\n protected override render(): TemplateResult {\n const tag = this.href ? literal`div` : literal`button`;\n const hasToggledAriaLabel = this.ariaLabel && this.selectedAriaLabel;\n const ariaPressedValue = hasToggledAriaLabel ? nothing : this.selected;\n let ariaLabelValue: string|typeof nothing = nothing;\n if (!this.href) {\n ariaLabelValue = (hasToggledAriaLabel && this.selected) ?\n this.selectedAriaLabel :\n this.ariaLabel;\n }\n return staticHtml`<${tag}\n class=\"md3-icon-button ${classMap(this.getRenderClasses())}\"\n aria-label=\"${ariaLabelValue || nothing}\"\n aria-haspopup=\"${!this.href && this.ariaHasPopup || nothing}\"\n aria-expanded=\"${!this.href && this.ariaExpanded || nothing}\"\n aria-pressed=\"${ariaPressedValue}\"\n ?disabled=\"${!this.href && this.disabled}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n @pointerdown=\"${this.handlePointerDown}\"\n @click=\"${this.handleClick}\"\n ${ripple(this.getRipple)}>\n ${this.renderFocusRing()}\n ${when(this.showRipple, this.renderRipple)}\n ${!this.selected ? this.renderIcon() : nothing}\n ${this.selected ? this.renderSelectedIcon() : nothing}\n ${this.renderTouchTarget()}\n ${this.href && this.renderLink()}\n </${tag}>`;\n }\n\n protected renderLink() {\n return html`<a class=\"md3-icon-button__link\" href=\"${this.href}\"\n target=\"${this.target as LinkTarget || nothing}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n aria-label=\"${this.ariaLabel || nothing}\"></a>`;\n }\n\n protected getRenderClasses(): ClassInfo {\n return {\n 'md3-icon-button--flip-icon': this.flipIcon,\n 'md3-icon-button--selected': this.toggle && this.selected,\n };\n }\n\n protected renderIcon(): TemplateResult {\n return html`<md-icon class=\"md3-icon-button__icon\"><slot></slot></md-icon>`;\n }\n\n protected renderSelectedIcon() {\n // Use default slot as fallback to not require specifying multiple icons\n return html`<md-icon class=\"md3-icon-button__icon md3-icon-button__icon--selected\"><slot name=\"selectedIcon\"><slot></slot></slot></md-icon>`;\n }\n\n protected renderTouchTarget(): TemplateResult {\n return html`<span class=\"md3-icon-button__touch\"></span>`;\n }\n\n protected renderFocusRing(): TemplateResult {\n return html`<md-focus-ring .visible=\"${\n this.showFocusRing}\"></md-focus-ring>`;\n }\n\n override connectedCallback() {\n this.flipIcon = isRtl(this, this.flipIconInRtl);\n super.connectedCallback();\n }\n\n handlePointerDown() {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleBlur() {\n this.showFocusRing = false;\n }\n\n protected handleClick() {\n if (!this.toggle || this.disabled) {\n return;\n }\n\n this.selected = !this.selected;\n this.dispatchEvent(\n new InputEvent('input', {bubbles: true, composed: true}));\n // Bubbles but does not compose to mimic native browser <input> & <select>\n // Additionally, native change event is not an InputEvent.\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"icon-button.js","sourceRoot":"","sources":["icon-button.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport '../../focus/focus-ring.js';\nimport '../../icon/icon.js';\nimport '../../ripple/ripple.js';\n\nimport {html, LitElement, nothing, TemplateResult} from 'lit';\nimport {property, query, 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 {isRtl} from '../../controller/is-rtl.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\ntype LinkTarget = '_blank'|'_parent'|'_self'|'_top';\n\n// tslint:disable-next-line:enforce-comments-on-exported-symbols\nexport class IconButton extends LitElement {\n static {\n requestUpdateOnAriaChange(this);\n }\n\n /**\n * Disables the icon button and makes it non-interactive.\n */\n @property({type: Boolean, reflect: true}) disabled = false;\n\n /**\n * Flips the icon if it is in an RTL context at startup.\n */\n @property({type: Boolean}) flipIconInRtl = false;\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `href` resource attribute.\n */\n @property() href = '';\n\n /**\n * Sets the underlying `HTMLAnchorElement`'s `target` attribute.\n */\n @property() target = '';\n\n /**\n * The `aria-label` of the button when the button is toggleable and selected.\n */\n @property({attribute: 'selected-aria-label', reflect: true})\n selectedAriaLabel!: string;\n\n /**\n * When true, the button will toggle between selected and unselected\n * states\n */\n @property({type: Boolean}) toggle = false;\n\n /**\n * Sets the selected state. When false, displays the default icon. When true,\n * displays the `selectedIcon`, or the default icon If no `selectedIcon` is\n * provided.\n */\n @property({type: Boolean, reflect: true}) selected = false;\n\n @query('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 @state() protected flipIcon: boolean = isRtl(this, this.flipIconInRtl);\n\n protected getRipple = () => {\n this.showRipple = true;\n return this.ripple;\n };\n\n protected readonly renderRipple = () => {\n return html`<md-ripple ?disabled=\"${\n !this.href && this.disabled}\"></md-ripple>`;\n };\n\n /**\n * Link buttons cannot be disabled.\n */\n override willUpdate() {\n if (this.href) {\n this.disabled = false;\n }\n }\n\n protected override render(): TemplateResult {\n const tag = this.href ? literal`div` : literal`button`;\n // Needed for closure conformance\n const {ariaLabel, ariaHasPopup, ariaExpanded} = this as ARIAMixinStrict;\n const hasToggledAriaLabel = ariaLabel && this.selectedAriaLabel;\n const ariaPressedValue = hasToggledAriaLabel ? nothing : this.selected;\n let ariaLabelValue: string|null|typeof nothing = nothing;\n if (!this.href) {\n ariaLabelValue = (hasToggledAriaLabel && this.selected) ?\n this.selectedAriaLabel :\n ariaLabel;\n }\n return staticHtml`<${tag}\n class=\"md3-icon-button ${classMap(this.getRenderClasses())}\"\n aria-label=\"${ariaLabelValue || nothing}\"\n aria-haspopup=\"${!this.href && ariaHasPopup || nothing}\"\n aria-expanded=\"${!this.href && ariaExpanded || nothing}\"\n aria-pressed=\"${ariaPressedValue}\"\n ?disabled=\"${!this.href && this.disabled}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n @pointerdown=\"${this.handlePointerDown}\"\n @click=\"${this.handleClick}\"\n ${ripple(this.getRipple)}>\n ${this.renderFocusRing()}\n ${when(this.showRipple, this.renderRipple)}\n ${!this.selected ? this.renderIcon() : nothing}\n ${this.selected ? this.renderSelectedIcon() : nothing}\n ${this.renderTouchTarget()}\n ${this.href && this.renderLink()}\n </${tag}>`;\n }\n\n protected renderLink() {\n // Needed for closure conformance\n const {ariaLabel} = this as ARIAMixinStrict;\n return html`<a class=\"md3-icon-button__link\" href=\"${this.href}\"\n target=\"${this.target as LinkTarget || nothing}\"\n @focus=\"${this.handleFocus}\"\n @blur=\"${this.handleBlur}\"\n aria-label=\"${ariaLabel || nothing}\"></a>`;\n }\n\n protected getRenderClasses(): ClassInfo {\n return {\n 'md3-icon-button--flip-icon': this.flipIcon,\n 'md3-icon-button--selected': this.toggle && this.selected,\n };\n }\n\n protected renderIcon(): TemplateResult {\n return html`<md-icon class=\"md3-icon-button__icon\"><slot></slot></md-icon>`;\n }\n\n protected renderSelectedIcon() {\n // Use default slot as fallback to not require specifying multiple icons\n return html`<md-icon class=\"md3-icon-button__icon md3-icon-button__icon--selected\"><slot name=\"selectedIcon\"><slot></slot></slot></md-icon>`;\n }\n\n protected renderTouchTarget(): TemplateResult {\n return html`<span class=\"md3-icon-button__touch\"></span>`;\n }\n\n protected renderFocusRing(): TemplateResult {\n return html`<md-focus-ring .visible=\"${\n this.showFocusRing}\"></md-focus-ring>`;\n }\n\n override connectedCallback() {\n this.flipIcon = isRtl(this, this.flipIconInRtl);\n super.connectedCallback();\n }\n\n handlePointerDown() {\n pointerPress();\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleFocus() {\n this.showFocusRing = shouldShowStrongFocus();\n }\n\n protected handleBlur() {\n this.showFocusRing = false;\n }\n\n protected handleClick() {\n if (!this.toggle || this.disabled) {\n return;\n }\n\n this.selected = !this.selected;\n this.dispatchEvent(\n new InputEvent('input', {bubbles: true, composed: true}));\n // Bubbles but does not compose to mimic native browser <input> & <select>\n // Additionally, native change event is not an InputEvent.\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Harness } from '../testing/harness.js';
|
|
7
|
+
import { LinearProgress } from './lib/linear-progress.js';
|
|
8
|
+
/**
|
|
9
|
+
* Test harness for linear-progress.
|
|
10
|
+
*/
|
|
11
|
+
export declare class LinearProgressHarness extends Harness<LinearProgress> {
|
|
12
|
+
getInteractiveElement(): Promise<HTMLElement>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2023 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Harness } from '../testing/harness.js';
|
|
7
|
+
/**
|
|
8
|
+
* Test harness for linear-progress.
|
|
9
|
+
*/
|
|
10
|
+
export class LinearProgressHarness extends Harness {
|
|
11
|
+
async getInteractiveElement() {
|
|
12
|
+
await this.element.updateComplete;
|
|
13
|
+
// Test access to protected property
|
|
14
|
+
// tslint:disable-next-line:no-dict-access-on-struct-type
|
|
15
|
+
return this.element['rootEl'];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=harness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["harness.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAI9C;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,OAAuB;IACvD,KAAK,CAAC,qBAAqB;QAClC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QAClC,oCAAoC;QACpC,yDAAyD;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;CACF","sourcesContent":["/**\n * @license\n * Copyright 2023 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {Harness} from '../testing/harness.js';\n\nimport {LinearProgress} from './lib/linear-progress.js';\n\n/**\n * Test harness for linear-progress.\n */\nexport class LinearProgressHarness extends Harness<LinearProgress> {\n override async getInteractiveElement() {\n await this.element.updateComplete;\n // Test access to protected property\n // tslint:disable-next-line:no-dict-access-on-struct-type\n return this.element['rootEl'];\n }\n}\n"]}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 Google LLC
|
|
3
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
//
|
|
5
|
+
|
|
6
|
+
// go/keep-sorted start
|
|
7
|
+
@use '../../sass/theme';
|
|
8
|
+
@use '../../tokens';
|
|
9
|
+
// go/keep-sorted end
|
|
10
|
+
|
|
11
|
+
@mixin theme($tokens) {
|
|
12
|
+
$reference: tokens.md-comp-linear-progress-indicator-values();
|
|
13
|
+
$tokens: theme.validate-theme($reference, $tokens);
|
|
14
|
+
$tokens: theme.create-theme-vars($tokens, 'linear-progress');
|
|
15
|
+
|
|
16
|
+
@include theme.emit-theme-vars($tokens);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// note, transition settings match MDC
|
|
20
|
+
// see https://github.com/material-components/material-components-web/blob/main/packages/mdc-linear-progress/_linear-progress.scss#L79
|
|
21
|
+
$_determinate-duration: 250ms;
|
|
22
|
+
$_determinate-easing: cubic-bezier(0.4, 0, 0.6, 1);
|
|
23
|
+
// see https://github.com/material-components/material-components-web/blob/main/packages/mdc-linear-progress/_linear-progress.scss#L218
|
|
24
|
+
$_indeterminate-duration: 2s;
|
|
25
|
+
|
|
26
|
+
// Note, track background is a series of animating dots sized to fit
|
|
27
|
+
// the track height. Since the dots are circular, width scales with height.
|
|
28
|
+
// Background width is separated because it's also used to help animate the
|
|
29
|
+
// /dots.
|
|
30
|
+
$_track-dot-size: calc(var(--_track-height) / 2);
|
|
31
|
+
$_track-background-width: calc($_track-dot-size * 5);
|
|
32
|
+
// this is a series of sized/colored dots.
|
|
33
|
+
$_track-background: 0 / $_track-background-width 100%
|
|
34
|
+
radial-gradient(
|
|
35
|
+
circle at calc($_track-dot-size * 2),
|
|
36
|
+
var(--_track-color) 0,
|
|
37
|
+
var(--_track-color) $_track-dot-size,
|
|
38
|
+
transparent $_track-dot-size
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
// Generates a list of rtl selectors. This is done so rules can be generated
|
|
42
|
+
// separately so they don't get dropped where unsupported.
|
|
43
|
+
$rtl-selectors: (
|
|
44
|
+
':host-context([dir="rtl"]) .linear-progress',
|
|
45
|
+
':host([dir="rtl"]) .linear-progress',
|
|
46
|
+
'.linear-progress:dir(rtl)'
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
// Generates keyframes for ltr and rtl.
|
|
50
|
+
@mixin directional-keyframes($dir) {
|
|
51
|
+
$is-rtl: $dir == 'rtl';
|
|
52
|
+
$sign: if($is-rtl, -1, 1);
|
|
53
|
+
$suffix: if($is-rtl, '-rtl', '');
|
|
54
|
+
|
|
55
|
+
@keyframes buffering#{$suffix} {
|
|
56
|
+
0% {
|
|
57
|
+
// the amount to animate is aligned with the default track background
|
|
58
|
+
transform: translateX(calc(#{$sign} * #{$_track-background-width}));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// note, the numbers here come directly from the mdc implementation.
|
|
63
|
+
// see https://github.com/material-components/material-components-web/blob/main/packages/mdc-linear-progress/_linear-progress.scss#L208.
|
|
64
|
+
// keyframes
|
|
65
|
+
@keyframes primary-indeterminate-translate#{$suffix} {
|
|
66
|
+
0% {
|
|
67
|
+
transform: translateX(0px);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
20% {
|
|
71
|
+
animation-timing-function: cubic-bezier(0.5, 0, 0.701732, 0.495819);
|
|
72
|
+
transform: translateX(0px);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
59.15% {
|
|
76
|
+
animation-timing-function: cubic-bezier(
|
|
77
|
+
0.302435,
|
|
78
|
+
0.381352,
|
|
79
|
+
0.55,
|
|
80
|
+
0.956352
|
|
81
|
+
);
|
|
82
|
+
transform: translateX(calc(#{$sign} * 83.6714%));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
100% {
|
|
86
|
+
transform: translateX(calc(#{$sign} * 200.611%));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@keyframes secondary-indeterminate-translate#{$suffix} {
|
|
91
|
+
0% {
|
|
92
|
+
animation-timing-function: cubic-bezier(0.15, 0, 0.515058, 0.409685);
|
|
93
|
+
transform: translateX(0px);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
25% {
|
|
97
|
+
animation-timing-function: cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);
|
|
98
|
+
transform: translateX(calc(#{$sign} * 37.6519%));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
48.35% {
|
|
102
|
+
animation-timing-function: cubic-bezier(0.4, 0.627035, 0.6, 0.902026);
|
|
103
|
+
transform: translateX(calc(#{$sign} * 84.3862%));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
100% {
|
|
107
|
+
transform: translateX(calc(#{$sign} * 160.278%));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
@mixin styles() {
|
|
113
|
+
$tokens: tokens.md-comp-linear-progress-indicator-values();
|
|
114
|
+
$tokens: theme.create-theme-vars($tokens, 'linear-progress');
|
|
115
|
+
|
|
116
|
+
:host {
|
|
117
|
+
@each $token, $value in $tokens {
|
|
118
|
+
--_#{$token}: #{$value};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
display: block;
|
|
122
|
+
position: relative;
|
|
123
|
+
// note, this matches the `meter` element and is just done so
|
|
124
|
+
// there's a minimum width when in a container with a display like
|
|
125
|
+
// inline-flex.
|
|
126
|
+
min-inline-size: 80px;
|
|
127
|
+
block-size: var(--_track-height);
|
|
128
|
+
content-visibility: auto;
|
|
129
|
+
contain: strict;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.linear-progress,
|
|
133
|
+
.track,
|
|
134
|
+
.buffer-bar,
|
|
135
|
+
.bar,
|
|
136
|
+
.bar-inner {
|
|
137
|
+
position: absolute;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.linear-progress {
|
|
141
|
+
inset: 0;
|
|
142
|
+
outline: transparent solid 1px;
|
|
143
|
+
border-radius: var(--_track-shape);
|
|
144
|
+
overflow: hidden;
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.bar {
|
|
150
|
+
animation: none;
|
|
151
|
+
// position is offset for indeterminate animation, so we lock the inline size here.
|
|
152
|
+
inline-size: 100%;
|
|
153
|
+
block-size: var(--_active-indicator-height);
|
|
154
|
+
transform-origin: left center;
|
|
155
|
+
will-change: transform;
|
|
156
|
+
transition: transform $_determinate-duration $_determinate-easing;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.secondary-bar {
|
|
160
|
+
display: none;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.bar-inner {
|
|
164
|
+
inset: 0;
|
|
165
|
+
animation: none;
|
|
166
|
+
background: var(--_active-indicator-color);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.buffer-bar {
|
|
170
|
+
background: var(--_track-color);
|
|
171
|
+
inset: 0;
|
|
172
|
+
will-change: transform;
|
|
173
|
+
transition: transform $_determinate-duration $_determinate-easing;
|
|
174
|
+
transform-origin: left center;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.track {
|
|
178
|
+
inset: 0;
|
|
179
|
+
will-change: transform;
|
|
180
|
+
animation: linear infinite $_determinate-duration;
|
|
181
|
+
// stylelint-disable-next-line no-unknown-animations --
|
|
182
|
+
// animation generated via mixin
|
|
183
|
+
animation-name: buffering;
|
|
184
|
+
background: $_track-background;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// indeterminate
|
|
188
|
+
.indeterminate .bar {
|
|
189
|
+
transition: none;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// note, the numbers here come directly from the mdc implementation.
|
|
193
|
+
// see https://github.com/material-components/material-components-web/blob/main/packages/mdc-linear-progress/_linear-progress.scss#L208.
|
|
194
|
+
.indeterminate .primary-bar {
|
|
195
|
+
inset-inline-start: -145.167%;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.indeterminate .secondary-bar {
|
|
199
|
+
inset-inline-start: -54.8889%;
|
|
200
|
+
// this is display none by default.
|
|
201
|
+
display: block;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.indeterminate .track {
|
|
205
|
+
display: none;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.indeterminate.animation-ready .primary-bar {
|
|
209
|
+
will-change: transform;
|
|
210
|
+
animation: linear infinite $_indeterminate-duration;
|
|
211
|
+
// stylelint-disable-next-line no-unknown-animations --
|
|
212
|
+
// animation generated via mixin
|
|
213
|
+
animation-name: primary-indeterminate-translate;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.indeterminate.animation-ready .primary-bar > .bar-inner {
|
|
217
|
+
will-change: transform;
|
|
218
|
+
animation: linear infinite $_indeterminate-duration
|
|
219
|
+
primary-indeterminate-scale;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.indeterminate.animation-ready.four-colors .primary-bar > .bar-inner {
|
|
223
|
+
animation-name: primary-indeterminate-scale, four-colors;
|
|
224
|
+
animation-duration: $_indeterminate-duration,
|
|
225
|
+
calc($_indeterminate-duration * 2);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
.indeterminate.animation-ready .secondary-bar {
|
|
229
|
+
will-change: transform;
|
|
230
|
+
animation: linear infinite $_indeterminate-duration;
|
|
231
|
+
// stylelint-disable-next-line no-unknown-animations --
|
|
232
|
+
// animation generated via mixin
|
|
233
|
+
animation-name: secondary-indeterminate-translate;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.indeterminate.animation-ready .secondary-bar > .bar-inner {
|
|
237
|
+
will-change: transform;
|
|
238
|
+
animation: linear infinite $_indeterminate-duration
|
|
239
|
+
secondary-indeterminate-scale;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.indeterminate.animation-ready.four-colors .secondary-bar > .bar-inner {
|
|
243
|
+
animation-name: secondary-indeterminate-scale, four-colors;
|
|
244
|
+
animation-duration: $_indeterminate-duration,
|
|
245
|
+
calc($_indeterminate-duration * 2);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@each $selector in $rtl-selectors {
|
|
249
|
+
#{$selector} {
|
|
250
|
+
.bar {
|
|
251
|
+
transform-origin: right center;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
.buffer-bar {
|
|
255
|
+
transform-origin: right center;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.track {
|
|
259
|
+
// stylelint-disable-next-line no-unknown-animations --
|
|
260
|
+
// animation generated via mixin
|
|
261
|
+
animation-name: buffering-rtl;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
&.indeterminate.animation-ready .primary-bar {
|
|
265
|
+
// stylelint-disable-next-line no-unknown-animations --
|
|
266
|
+
// animation generated via mixin
|
|
267
|
+
animation-name: primary-indeterminate-translate-rtl;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
&.indeterminate.animation-ready .secondary-bar {
|
|
271
|
+
// stylelint-disable-next-line no-unknown-animations --
|
|
272
|
+
// animation generated via mixin
|
|
273
|
+
animation-name: secondary-indeterminate-translate-rtl;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
@keyframes primary-indeterminate-scale {
|
|
279
|
+
0% {
|
|
280
|
+
transform: scaleX(0.08);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
36.65% {
|
|
284
|
+
animation-timing-function: cubic-bezier(0.334731, 0.12482, 0.785844, 1);
|
|
285
|
+
transform: scaleX(0.08);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
69.15% {
|
|
289
|
+
animation-timing-function: cubic-bezier(0.06, 0.11, 0.6, 1);
|
|
290
|
+
transform: scaleX(0.661479);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
100% {
|
|
294
|
+
transform: scaleX(0.08);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
@keyframes secondary-indeterminate-scale {
|
|
299
|
+
0% {
|
|
300
|
+
animation-timing-function: cubic-bezier(
|
|
301
|
+
0.205028,
|
|
302
|
+
0.057051,
|
|
303
|
+
0.57661,
|
|
304
|
+
0.453971
|
|
305
|
+
);
|
|
306
|
+
transform: scaleX(0.08);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
19.15% {
|
|
310
|
+
animation-timing-function: cubic-bezier(
|
|
311
|
+
0.152313,
|
|
312
|
+
0.196432,
|
|
313
|
+
0.648374,
|
|
314
|
+
1.00432
|
|
315
|
+
);
|
|
316
|
+
transform: scaleX(0.457104);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
44.15% {
|
|
320
|
+
animation-timing-function: cubic-bezier(
|
|
321
|
+
0.257759,
|
|
322
|
+
-0.003163,
|
|
323
|
+
0.211762,
|
|
324
|
+
1.38179
|
|
325
|
+
);
|
|
326
|
+
transform: scaleX(0.72796);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
100% {
|
|
330
|
+
transform: scaleX(0.08);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
@include directional-keyframes('ltr');
|
|
335
|
+
@include directional-keyframes('rtl');
|
|
336
|
+
|
|
337
|
+
@keyframes four-colors {
|
|
338
|
+
0% {
|
|
339
|
+
background: var(--_four-color-active-indicator-one-color);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
15% {
|
|
343
|
+
background: var(--_four-color-active-indicator-one-color);
|
|
344
|
+
}
|
|
345
|
+
25% {
|
|
346
|
+
background: var(--_four-color-active-indicator-two-color);
|
|
347
|
+
}
|
|
348
|
+
40% {
|
|
349
|
+
background: var(--_four-color-active-indicator-two-color);
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
50% {
|
|
353
|
+
background: var(--_four-color-active-indicator-three-color);
|
|
354
|
+
}
|
|
355
|
+
65% {
|
|
356
|
+
background: var(--_four-color-active-indicator-three-color);
|
|
357
|
+
}
|
|
358
|
+
75% {
|
|
359
|
+
background: var(--_four-color-active-indicator-four-color);
|
|
360
|
+
}
|
|
361
|
+
90% {
|
|
362
|
+
background: var(--_four-color-active-indicator-four-color);
|
|
363
|
+
}
|
|
364
|
+
100% {
|
|
365
|
+
background: var(--_four-color-active-indicator-one-color);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
@media screen and (forced-colors: active) {
|
|
370
|
+
.linear-progress {
|
|
371
|
+
--_active-indicator-color: canvastext;
|
|
372
|
+
--_track-color: graytext;
|
|
373
|
+
border: 1px solid canvastext;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
.indeterminate.linear-progress {
|
|
377
|
+
--_track-color: canvas;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const styles: import("lit").CSSResult;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { css } from 'lit';
|
|
7
|
+
export const styles = css `:host{--_active-indicator-color: var(--md-linear-progress-active-indicator-color, var(--md-sys-color-primary, #6750a4));--_active-indicator-height: var(--md-linear-progress-active-indicator-height, 4px);--_four-color-active-indicator-four-color: var(--md-linear-progress-four-color-active-indicator-four-color, var(--md-sys-color-tertiary-container, #ffd8e4));--_four-color-active-indicator-one-color: var(--md-linear-progress-four-color-active-indicator-one-color, var(--md-sys-color-primary, #6750a4));--_four-color-active-indicator-three-color: var(--md-linear-progress-four-color-active-indicator-three-color, var(--md-sys-color-tertiary, #7d5260));--_four-color-active-indicator-two-color: var(--md-linear-progress-four-color-active-indicator-two-color, var(--md-sys-color-primary-container, #eaddff));--_track-color: var(--md-linear-progress-track-color, var(--md-sys-color-surface-container-highest, #e6e0e9));--_track-height: var(--md-linear-progress-track-height, 4px);--_track-shape: var(--md-linear-progress-track-shape, 0px);display:block;position:relative;min-inline-size:80px;block-size:var(--_track-height);content-visibility:auto;contain:strict}.linear-progress,.track,.buffer-bar,.bar,.bar-inner{position:absolute}.linear-progress{inset:0;outline:rgba(0,0,0,0) solid 1px;border-radius:var(--_track-shape);overflow:hidden;display:flex;align-items:center}.bar{animation:none;inline-size:100%;block-size:var(--_active-indicator-height);transform-origin:left center;will-change:transform;transition:transform 250ms cubic-bezier(0.4, 0, 0.6, 1)}.secondary-bar{display:none}.bar-inner{inset:0;animation:none;background:var(--_active-indicator-color)}.buffer-bar{background:var(--_track-color);inset:0;will-change:transform;transition:transform 250ms cubic-bezier(0.4, 0, 0.6, 1);transform-origin:left center}.track{inset:0;will-change:transform;animation:linear infinite 250ms;animation-name:buffering;background:0/calc(var(--_track-height) / 2 * 5) 100% radial-gradient(circle at calc(var(--_track-height) / 2 * 2), var(--_track-color) 0, var(--_track-color) calc(var(--_track-height) / 2), transparent calc(var(--_track-height) / 2))}.indeterminate .bar{transition:none}.indeterminate .primary-bar{inset-inline-start:-145.167%}.indeterminate .secondary-bar{inset-inline-start:-54.8889%;display:block}.indeterminate .track{display:none}.indeterminate.animation-ready .primary-bar{will-change:transform;animation:linear infinite 2s;animation-name:primary-indeterminate-translate}.indeterminate.animation-ready .primary-bar>.bar-inner{will-change:transform;animation:linear infinite 2s primary-indeterminate-scale}.indeterminate.animation-ready.four-colors .primary-bar>.bar-inner{animation-name:primary-indeterminate-scale,four-colors;animation-duration:2s,4s}.indeterminate.animation-ready .secondary-bar{will-change:transform;animation:linear infinite 2s;animation-name:secondary-indeterminate-translate}.indeterminate.animation-ready .secondary-bar>.bar-inner{will-change:transform;animation:linear infinite 2s secondary-indeterminate-scale}.indeterminate.animation-ready.four-colors .secondary-bar>.bar-inner{animation-name:secondary-indeterminate-scale,four-colors;animation-duration:2s,4s}:host-context([dir=rtl]) .linear-progress .bar{transform-origin:right center}:host-context([dir=rtl]) .linear-progress .buffer-bar{transform-origin:right center}:host-context([dir=rtl]) .linear-progress .track{animation-name:buffering-rtl}:host-context([dir=rtl]) .linear-progress.indeterminate.animation-ready .primary-bar{animation-name:primary-indeterminate-translate-rtl}:host-context([dir=rtl]) .linear-progress.indeterminate.animation-ready .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}:host([dir=rtl]) .linear-progress .bar{transform-origin:right center}:host([dir=rtl]) .linear-progress .buffer-bar{transform-origin:right center}:host([dir=rtl]) .linear-progress .track{animation-name:buffering-rtl}:host([dir=rtl]) .linear-progress.indeterminate.animation-ready .primary-bar{animation-name:primary-indeterminate-translate-rtl}:host([dir=rtl]) .linear-progress.indeterminate.animation-ready .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}.linear-progress:dir(rtl) .bar{transform-origin:right center}.linear-progress:dir(rtl) .buffer-bar{transform-origin:right center}.linear-progress:dir(rtl) .track{animation-name:buffering-rtl}.linear-progress:dir(rtl).indeterminate.animation-ready .primary-bar{animation-name:primary-indeterminate-translate-rtl}.linear-progress:dir(rtl).indeterminate.animation-ready .secondary-bar{animation-name:secondary-indeterminate-translate-rtl}@keyframes primary-indeterminate-scale{0%{transform:scaleX(0.08)}36.65%{animation-timing-function:cubic-bezier(0.334731, 0.12482, 0.785844, 1);transform:scaleX(0.08)}69.15%{animation-timing-function:cubic-bezier(0.06, 0.11, 0.6, 1);transform:scaleX(0.661479)}100%{transform:scaleX(0.08)}}@keyframes secondary-indeterminate-scale{0%{animation-timing-function:cubic-bezier(0.205028, 0.057051, 0.57661, 0.453971);transform:scaleX(0.08)}19.15%{animation-timing-function:cubic-bezier(0.152313, 0.196432, 0.648374, 1.00432);transform:scaleX(0.457104)}44.15%{animation-timing-function:cubic-bezier(0.257759, -0.003163, 0.211762, 1.38179);transform:scaleX(0.72796)}100%{transform:scaleX(0.08)}}@keyframes buffering{0%{transform:translateX(calc(1 * calc(var(--_track-height) / 2 * 5)))}}@keyframes primary-indeterminate-translate{0%{transform:translateX(0px)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0px)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(1 * 83.6714%))}100%{transform:translateX(calc(1 * 200.611%))}}@keyframes secondary-indeterminate-translate{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0px)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(calc(1 * 37.6519%))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(calc(1 * 84.3862%))}100%{transform:translateX(calc(1 * 160.278%))}}@keyframes buffering-rtl{0%{transform:translateX(calc(-1 * calc(var(--_track-height) / 2 * 5)))}}@keyframes primary-indeterminate-translate-rtl{0%{transform:translateX(0px)}20%{animation-timing-function:cubic-bezier(0.5, 0, 0.701732, 0.495819);transform:translateX(0px)}59.15%{animation-timing-function:cubic-bezier(0.302435, 0.381352, 0.55, 0.956352);transform:translateX(calc(-1 * 83.6714%))}100%{transform:translateX(calc(-1 * 200.611%))}}@keyframes secondary-indeterminate-translate-rtl{0%{animation-timing-function:cubic-bezier(0.15, 0, 0.515058, 0.409685);transform:translateX(0px)}25%{animation-timing-function:cubic-bezier(0.31033, 0.284058, 0.8, 0.733712);transform:translateX(calc(-1 * 37.6519%))}48.35%{animation-timing-function:cubic-bezier(0.4, 0.627035, 0.6, 0.902026);transform:translateX(calc(-1 * 84.3862%))}100%{transform:translateX(calc(-1 * 160.278%))}}@keyframes four-colors{0%{background:var(--_four-color-active-indicator-one-color)}15%{background:var(--_four-color-active-indicator-one-color)}25%{background:var(--_four-color-active-indicator-two-color)}40%{background:var(--_four-color-active-indicator-two-color)}50%{background:var(--_four-color-active-indicator-three-color)}65%{background:var(--_four-color-active-indicator-three-color)}75%{background:var(--_four-color-active-indicator-four-color)}90%{background:var(--_four-color-active-indicator-four-color)}100%{background:var(--_four-color-active-indicator-one-color)}}@media screen and (forced-colors: active){.linear-progress{--_active-indicator-color: canvastext;--_track-color: graytext;border:1px solid canvastext}.indeterminate.linear-progress{--_track-color: canvas}}/*# sourceMappingURL=linear-progress-styles.css.map */
|
|
8
|
+
`;
|
|
9
|
+
//# sourceMappingURL=linear-progress-styles.css.js.map
|