@vollowx/seele 0.14.2 → 0.14.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -2
- package/package.json +5 -5
- package/src/all.d.ts +3 -0
- package/src/all.js +3 -0
- package/src/base/anchor.d.ts +21 -0
- package/src/base/anchor.js +60 -0
- package/src/base/autocomplete.d.ts +2 -2
- package/src/base/composed-menu.d.ts +2 -2
- package/src/base/composed-menu.js +6 -3
- package/src/base/controllers/list-controller.d.ts +1 -1
- package/src/base/controllers/list-controller.js +1 -1
- package/src/base/dialog.d.ts +1 -1
- package/src/base/dialog.js +2 -0
- package/src/base/input.d.ts +1 -1
- package/src/base/list.d.ts +1 -1
- package/src/base/menu.d.ts +1 -1
- package/src/base/menu.js +2 -1
- package/src/base/mixins/internals-attached.d.ts +1 -1
- package/src/base/mixins/internals-attached.js +4 -1
- package/src/base/popup.d.ts +1 -1
- package/src/base/select.d.ts +5 -6
- package/src/base/slider.d.ts +1 -3
- package/src/base/slider.js +0 -8
- package/src/base/tab-panel.d.ts +1 -1
- package/src/base/tab.d.ts +1 -1
- package/src/base/tabs.d.ts +1 -1
- package/src/base/tooltip.d.ts +1 -1
- package/src/base/tooltip.js +3 -5
- package/src/core/ensure-ready.js +1 -1
- package/src/m3/autocomplete/autocomplete.d.ts +1 -1
- package/src/m3/badge/badge.d.ts +2 -2
- package/src/m3/button/common-button-link.d.ts +30 -0
- package/src/m3/button/common-button-link.js +62 -0
- package/src/m3/button/common-button-styles.css.js +1 -1
- package/src/m3/button/common-button-toggle.d.ts +1 -1
- package/src/m3/button/common-button.d.ts +2 -2
- package/src/m3/button/common-button.js +1 -0
- package/src/m3/button/icon-button-link.d.ts +24 -0
- package/src/m3/button/icon-button-link.js +53 -0
- package/src/m3/button/icon-button-styles.css.js +1 -1
- package/src/m3/button/icon-button-toggle.d.ts +1 -1
- package/src/m3/button/icon-button.d.ts +1 -1
- package/src/m3/button/shared-button-link-styles.css.js +2 -0
- package/src/m3/button/shared-button-styles.css.js +1 -1
- package/src/m3/button/shared-button-toggle-styles.css.js +1 -1
- package/src/m3/button-group/connected-button-group-styles.css.js +1 -1
- package/src/m3/button-group/connected-button-group.d.ts +1 -1
- package/src/m3/button-group/standard-button-group.d.ts +7 -2
- package/src/m3/button-group/standard-button-group.js +3 -1
- package/src/m3/checkbox/checkbox-styles.css.js +1 -1
- package/src/m3/checkbox/checkbox.d.ts +3 -3
- package/src/m3/dialog/dialog.d.ts +20 -18
- package/src/m3/dialog/dialog.js +135 -85
- package/src/m3/fab/fab-styles.css.js +1 -1
- package/src/m3/fab/fab.d.ts +1 -1
- package/src/m3/field/field.d.ts +7 -12
- package/src/m3/field/field.js +5 -10
- package/src/m3/field/filled-field.d.ts +1 -1
- package/src/m3/field/outlined-field.d.ts +2 -2
- package/src/m3/focus-ring/focus-ring.js +3 -2
- package/src/m3/item/item.d.ts +3 -3
- package/src/m3/item/item.js +2 -3
- package/src/m3/list/list-item.d.ts +3 -3
- package/src/m3/list/list-item.js +2 -2
- package/src/m3/loading/loading.d.ts +2 -2
- package/src/m3/loading/loading.js +1 -1
- package/src/m3/navigation/navigation-rail-item.d.ts +3 -3
- package/src/m3/navigation/navigation-rail-item.js +2 -1
- package/src/m3/navigation/navigation-rail.d.ts +1 -1
- package/src/m3/progress/circular-progress-styles.css.js +2 -0
- package/src/m3/progress/circular-progress.d.ts +19 -0
- package/src/m3/progress/circular-progress.js +29 -0
- package/src/m3/progress/linear-progress.d.ts +1 -1
- package/src/m3/radio/radio-styles.css.js +1 -1
- package/src/m3/radio/radio.d.ts +2 -2
- package/src/m3/ripple/ripple.js +3 -0
- package/src/m3/select/filled-select.d.ts +1 -1
- package/src/m3/select/outlined-select.d.ts +1 -1
- package/src/m3/select/select.d.ts +1 -1
- package/src/m3/slider/slider-styles.css.js +1 -1
- package/src/m3/slider/slider.d.ts +5 -2
- package/src/m3/slider/slider.js +22 -4
- package/src/m3/switch/switch.d.ts +5 -5
- package/src/m3/tab/tab-styles.css.js +1 -1
- package/src/m3/tab/tab.d.ts +3 -4
- package/src/m3/tab/tab.js +2 -4
- package/src/m3/text-field/filled-text-field.d.ts +1 -1
- package/src/m3/text-field/outlined-text-field.d.ts +1 -1
- package/src/m3/toolbar/toolbar.d.ts +1 -1
- package/src/win98/button/button.d.ts +1 -1
- package/src/base/field.d.ts +0 -3
- package/src/base/field.js +0 -3
- package/src/base/item.d.ts +0 -7
- package/src/base/item.js +0 -7
package/src/m3/field/field.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { html } from 'lit';
|
|
2
|
+
import { html, LitElement } from 'lit';
|
|
3
3
|
import { property, state } from 'lit/decorators.js';
|
|
4
|
-
import { Field } from '../../base/field.js';
|
|
5
4
|
import { fieldStyles } from './field-styles.css.js';
|
|
6
|
-
|
|
7
|
-
* @fires {Event} change - Fired when the selected value has changed.
|
|
8
|
-
* @fires {Event} input - Fired when the selected value has changed.
|
|
9
|
-
*/
|
|
10
|
-
export class M3Field extends Field {
|
|
5
|
+
export class M3Field extends LitElement {
|
|
11
6
|
constructor() {
|
|
12
7
|
super(...arguments);
|
|
13
8
|
this.label = '';
|
|
@@ -31,10 +26,10 @@ export class M3Field extends Field {
|
|
|
31
26
|
return html `<div class="supporting-text">${this.supportingText}</div>`;
|
|
32
27
|
}
|
|
33
28
|
renderStart() {
|
|
34
|
-
return html `<slot name="start" class="start" ?hidden="${!this.hasStart}" @slotchange="${this
|
|
29
|
+
return html `<slot name="start" class="start" ?hidden="${!this.hasStart}" @slotchange="${this.#handleSlotChange}"></slot>`;
|
|
35
30
|
}
|
|
36
31
|
renderEnd() {
|
|
37
|
-
return html `<slot name="end" class="end" ?hidden="${!this.hasEnd}" @slotchange="${this
|
|
32
|
+
return html `<slot name="end" class="end" ?hidden="${!this.hasEnd}" @slotchange="${this.#handleSlotChange}"></slot>`;
|
|
38
33
|
}
|
|
39
34
|
update(changedProperties) {
|
|
40
35
|
if (changedProperties.has('label')) {
|
|
@@ -42,7 +37,7 @@ export class M3Field extends Field {
|
|
|
42
37
|
}
|
|
43
38
|
super.update(changedProperties);
|
|
44
39
|
}
|
|
45
|
-
handleSlotChange(e) {
|
|
40
|
+
#handleSlotChange(e) {
|
|
46
41
|
const slot = e.target;
|
|
47
42
|
const hasContent = slot.assignedNodes({ flatten: true }).length > 0;
|
|
48
43
|
if (slot.name === 'start')
|
|
@@ -2,7 +2,7 @@ import { M3Field } from './field.js';
|
|
|
2
2
|
import '../ripple/ripple.js';
|
|
3
3
|
export declare class M3FilledField extends M3Field {
|
|
4
4
|
static styles: any[];
|
|
5
|
-
|
|
5
|
+
renderContainerContent(): import("lit").TemplateResult<1>;
|
|
6
6
|
}
|
|
7
7
|
declare global {
|
|
8
8
|
interface HTMLElementTagNameMap {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { M3Field } from './field.js';
|
|
2
2
|
export declare class M3OutlinedField extends M3Field {
|
|
3
3
|
static styles: any[];
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
renderContainerContent(): import("lit").TemplateResult<1>;
|
|
5
|
+
renderOutline(): import("lit").TemplateResult<1>;
|
|
6
6
|
}
|
|
7
7
|
declare global {
|
|
8
8
|
interface HTMLElementTagNameMap {
|
|
@@ -53,8 +53,9 @@ let M3FocusRing = class M3FocusRing extends Attachable(InternalsAttached(LitElem
|
|
|
53
53
|
pointerdown: this.#handlePointerDown,
|
|
54
54
|
};
|
|
55
55
|
Object.keys(eventHandlers).forEach((eventName) => {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
const handler = eventHandlers[eventName];
|
|
57
|
+
prev?.removeEventListener(eventName, handler);
|
|
58
|
+
next?.addEventListener(eventName, handler);
|
|
58
59
|
});
|
|
59
60
|
}
|
|
60
61
|
};
|
package/src/m3/item/item.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LitElement } from 'lit';
|
|
2
2
|
/**
|
|
3
3
|
* @tag md-item
|
|
4
4
|
*
|
|
@@ -19,10 +19,10 @@ import { Item } from '../../base/item.js';
|
|
|
19
19
|
* @slot trailing-supporting-text - trailing supporting text
|
|
20
20
|
* @slot end - end content
|
|
21
21
|
*/
|
|
22
|
-
export declare class M3Item extends
|
|
22
|
+
export declare class M3Item extends LitElement {
|
|
23
23
|
multiline: boolean;
|
|
24
24
|
static styles: any[];
|
|
25
|
-
render(): import("lit
|
|
25
|
+
render(): import("lit").TemplateResult<1>;
|
|
26
26
|
}
|
|
27
27
|
declare global {
|
|
28
28
|
interface HTMLElementTagNameMap {
|
package/src/m3/item/item.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
|
-
import { html } from 'lit';
|
|
2
|
+
import { html, LitElement } from 'lit';
|
|
3
3
|
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
import { Item } from '../../base/item.js';
|
|
5
4
|
import { itemStyles } from './item-styles.css.js';
|
|
6
5
|
/**
|
|
7
6
|
* @tag md-item
|
|
@@ -23,7 +22,7 @@ import { itemStyles } from './item-styles.css.js';
|
|
|
23
22
|
* @slot trailing-supporting-text - trailing supporting text
|
|
24
23
|
* @slot end - end content
|
|
25
24
|
*/
|
|
26
|
-
let M3Item = class M3Item extends
|
|
25
|
+
let M3Item = class M3Item extends LitElement {
|
|
27
26
|
constructor() {
|
|
28
27
|
super(...arguments);
|
|
29
28
|
this.multiline = false;
|
|
@@ -10,10 +10,10 @@ import type { M3FocusRing } from '../focus-ring/focus-ring.js';
|
|
|
10
10
|
* @slot - contents in md-item
|
|
11
11
|
*/
|
|
12
12
|
export declare class M3ListItem extends ListItem {
|
|
13
|
-
$ripple: M3Ripple;
|
|
14
|
-
$focusRing: M3FocusRing;
|
|
13
|
+
$ripple: M3Ripple | null;
|
|
14
|
+
$focusRing: M3FocusRing | null;
|
|
15
15
|
static styles: any[];
|
|
16
|
-
render(): import("lit
|
|
16
|
+
render(): import("lit").TemplateResult<1>;
|
|
17
17
|
constructor();
|
|
18
18
|
protected updated(changed: Map<string, any>): void;
|
|
19
19
|
}
|
package/src/m3/list/list-item.js
CHANGED
|
@@ -19,8 +19,8 @@ let M3ListItem = class M3ListItem extends ListItem {
|
|
|
19
19
|
constructor() {
|
|
20
20
|
super();
|
|
21
21
|
this.updateComplete.then(() => {
|
|
22
|
-
this.$ripple
|
|
23
|
-
this.$focusRing
|
|
22
|
+
this.$ripple.attach(this);
|
|
23
|
+
this.$focusRing.attach(this);
|
|
24
24
|
});
|
|
25
25
|
}
|
|
26
26
|
updated(changed) {
|
|
@@ -17,9 +17,9 @@ declare const M3Loading_base: Constructor<import("../../base/mixins/internals-at
|
|
|
17
17
|
export declare class M3Loading extends M3Loading_base {
|
|
18
18
|
#private;
|
|
19
19
|
contained: boolean;
|
|
20
|
-
$canvas: HTMLCanvasElement;
|
|
20
|
+
$canvas: HTMLCanvasElement | null;
|
|
21
21
|
static styles: any[];
|
|
22
|
-
render(): import("lit
|
|
22
|
+
render(): import("lit").TemplateResult<1>;
|
|
23
23
|
constructor();
|
|
24
24
|
firstUpdated(): void;
|
|
25
25
|
disconnectedCallback(): void;
|
|
@@ -80,7 +80,7 @@ let M3Loading = class M3Loading extends InternalsAttached(LitElement) {
|
|
|
80
80
|
this.#color = color;
|
|
81
81
|
}
|
|
82
82
|
#draw(from, to, progress, rotation, scale) {
|
|
83
|
-
if (!this.#ctx
|
|
83
|
+
if (!this.#ctx)
|
|
84
84
|
return;
|
|
85
85
|
const ctx = this.#ctx;
|
|
86
86
|
ctx.clearRect(0, 0, this.$canvas.width, this.$canvas.height);
|
|
@@ -7,10 +7,10 @@ import { type M3Ripple } from '../ripple/ripple.js';
|
|
|
7
7
|
export declare class M3NavigationRailItem extends Button {
|
|
8
8
|
label: string;
|
|
9
9
|
active: boolean;
|
|
10
|
-
$focusRing: M3FocusRing;
|
|
11
|
-
$ripple: M3Ripple;
|
|
10
|
+
$focusRing: M3FocusRing | null;
|
|
11
|
+
$ripple: M3Ripple | null;
|
|
12
12
|
static styles: any[];
|
|
13
|
-
render(): import("lit
|
|
13
|
+
render(): import("lit").TemplateResult<1>;
|
|
14
14
|
updated(changed: PropertyValues): void;
|
|
15
15
|
firstUpdated(): void;
|
|
16
16
|
}
|
|
@@ -9,6 +9,7 @@ import { navigationRailItemStyles } from './navigation-rail-item-styles.css.js';
|
|
|
9
9
|
let M3NavigationRailItem = class M3NavigationRailItem extends Button {
|
|
10
10
|
constructor() {
|
|
11
11
|
super(...arguments);
|
|
12
|
+
this.label = '';
|
|
12
13
|
this.active = false;
|
|
13
14
|
}
|
|
14
15
|
static { this.styles = [navigationRailItemStyles]; }
|
|
@@ -27,7 +28,7 @@ let M3NavigationRailItem = class M3NavigationRailItem extends Button {
|
|
|
27
28
|
}
|
|
28
29
|
};
|
|
29
30
|
__decorate([
|
|
30
|
-
property(
|
|
31
|
+
property()
|
|
31
32
|
], M3NavigationRailItem.prototype, "label", void 0);
|
|
32
33
|
__decorate([
|
|
33
34
|
property({ type: Boolean, reflect: true })
|
|
@@ -3,7 +3,7 @@ import { type M3NavigationRailItem } from './navigation-rail-item.js';
|
|
|
3
3
|
export declare class M3NavigationRail extends LitElement {
|
|
4
4
|
get $items(): Array<M3NavigationRailItem>;
|
|
5
5
|
static styles: any[];
|
|
6
|
-
render(): import("lit
|
|
6
|
+
render(): import("lit").TemplateResult<1>;
|
|
7
7
|
}
|
|
8
8
|
declare global {
|
|
9
9
|
interface HTMLElementTagNameMap {
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const circularProgressStyles = css`:host{--_size:var(--md-circular-progress-size,40px);--_thickness:var(--md-circular-progress-thickness,4px);--_gap:var(--md-circular-progress-gap,4px);--_value:0;height:var(--_size);width:var(--_size);display:inline-flex;position:relative;overflow:hidden}[part=container]{width:100%;height:100%;position:absolute;transform:rotate(-90deg)}svg{fill:#0000;width:100%;height:100%}[part~=track]{stroke:var(--md-sys-color-secondary-container);stroke-width:var(--_thickness);stroke-linecap:round;cx:calc(var(--_size) / 2);cy:calc(var(--_size) / 2);r:calc((var(--_size) - var(--_thickness)) / 2);stroke-dasharray:min((1 - var(--_value)) * (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) - var(--_gap) - var(--_thickness), 6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap) - var(--_gap) - 2 * var(--_thickness)) calc(6.28319 * (var(--_size) - var(--_thickness)) / 2 - min((1 - var(--_value)) * (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) - var(--_gap) - var(--_thickness), 6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap) - var(--_gap) - 2 * var(--_thickness)));stroke-dashoffset:calc(min((1 - var(--_value)) * (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) - var(--_gap) - var(--_thickness), 6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap) - var(--_gap) - 2 * var(--_thickness)) + var(--_gap) + var(--_thickness));transition:stroke-dasharray .5s cubic-bezier(0,0,.2,1),stroke-dashoffset .5s cubic-bezier(0,0,.2,1),stroke-width .25s cubic-bezier(.4,0,.6,1)}[part=active]{stroke:var(--md-sys-color-primary);stroke-width:var(--_thickness);stroke-linecap:round;cx:calc(var(--_size) / 2);cy:calc(var(--_size) / 2);r:calc((var(--_size) - var(--_thickness)) / 2);stroke-dasharray:calc(var(--_value) * (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) - var(--_thickness)) calc((var(--_size) - var(--_thickness)) * 6.28319 / 2 - var(--_value) * (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) + var(--_thickness));transition:stroke-dasharray .5s cubic-bezier(0,0,.2,1),stroke-width .25s cubic-bezier(.4,0,.6,1)}:host([indeterminate]){animation:6s linear infinite rotate;& [part=container]{animation:6s infinite container-rotate}& [part=track]{animation:6s infinite track-grow}& [part=active]{animation:6s infinite active-grow}}@keyframes rotate{0%{transform:rotate(-90deg)}to{transform:rotate(990deg)}}@keyframes container-rotate{0%{transform:rotate(0)}8.33333%{transform:rotate(90deg)}25%{transform:rotate(90deg)}33.3333%{transform:rotate(180deg)}50%{transform:rotate(180deg)}58.3333%{transform:rotate(270deg)}75%{transform:rotate(270deg)}83.3333%{transform:rotate(360deg)}to{transform:rotate(360deg)}}@keyframes track-grow{0%{stroke-dasharray:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .84 - var(--_gap) - var(--_thickness)), calc((var(--_size) - var(--_thickness)) * 6.28319 / 2 - (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .84 + var(--_gap) + var(--_thickness));stroke-dashoffset:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .84 - var(--_gap) - var(--_thickness) + var(--_gap) + var(--_thickness))}50%{stroke-dasharray:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .13 - var(--_gap) - var(--_thickness)), calc((var(--_size) - var(--_thickness)) * 6.28319 / 2 - (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .13 + var(--_gap) + var(--_thickness));stroke-dashoffset:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .13 - var(--_gap) - var(--_thickness) + var(--_gap) + var(--_thickness))}to{stroke-dasharray:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .84 - var(--_gap) - var(--_thickness)), calc((var(--_size) - var(--_thickness)) * 6.28319 / 2 - (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .84 + var(--_gap) + var(--_thickness));stroke-dashoffset:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .84 - var(--_gap) - var(--_thickness) + var(--_gap) + var(--_thickness))}}@keyframes active-grow{0%{stroke-dasharray:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .16 - var(--_thickness)), calc((var(--_size) - var(--_thickness)) * 6.28319 / 2 - (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .16 + var(--_thickness))}50%{stroke-dasharray:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .87 - var(--_thickness)), calc((var(--_size) - var(--_thickness)) * 6.28319 / 2 - (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .87 + var(--_thickness))}to{stroke-dasharray:calc((6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .16 - var(--_thickness)), calc((var(--_size) - var(--_thickness)) * 6.28319 / 2 - (6.28319 * (var(--_size) - var(--_thickness)) / 2 - var(--_gap)) * .16 + var(--_thickness))}}`;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ProgressBar } from '../../base/progressbar.js';
|
|
2
|
+
/**
|
|
3
|
+
* TODO: wavy?
|
|
4
|
+
*
|
|
5
|
+
* @tag md-circular-progress
|
|
6
|
+
*
|
|
7
|
+
* @csspart container
|
|
8
|
+
* @csspart track
|
|
9
|
+
* @csspart active
|
|
10
|
+
*/
|
|
11
|
+
export declare class M3CircularProgress extends ProgressBar {
|
|
12
|
+
static styles: any[];
|
|
13
|
+
render(): import("lit").TemplateResult<1>;
|
|
14
|
+
}
|
|
15
|
+
declare global {
|
|
16
|
+
interface HTMLElementTagNameMap {
|
|
17
|
+
'md-circular-progress': M3CircularProgress;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { html } from 'lit';
|
|
3
|
+
import { styleMap } from 'lit/directives/style-map.js';
|
|
4
|
+
import { customElement } from '../../core/decorators.js';
|
|
5
|
+
import { ProgressBar } from '../../base/progressbar.js';
|
|
6
|
+
import { circularProgressStyles } from './circular-progress-styles.css.js';
|
|
7
|
+
/**
|
|
8
|
+
* TODO: wavy?
|
|
9
|
+
*
|
|
10
|
+
* @tag md-circular-progress
|
|
11
|
+
*
|
|
12
|
+
* @csspart container
|
|
13
|
+
* @csspart track
|
|
14
|
+
* @csspart active
|
|
15
|
+
*/
|
|
16
|
+
let M3CircularProgress = class M3CircularProgress extends ProgressBar {
|
|
17
|
+
static { this.styles = [circularProgressStyles]; }
|
|
18
|
+
render() {
|
|
19
|
+
const progress = Math.min(Math.max(this.value, 0), 100);
|
|
20
|
+
const style = {
|
|
21
|
+
'--_value': `${progress === 100 ? 1.08 : (progress) / 100}`,
|
|
22
|
+
};
|
|
23
|
+
return html `<div part="container" aria-hidden="true" style="${styleMap(style)}"><svg xmlns="http://www.w3.org/2000/svg"><circle part="track"></circle><circle part="active"></circle></svg></div>`;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
M3CircularProgress = __decorate([
|
|
27
|
+
customElement('md-circular-progress')
|
|
28
|
+
], M3CircularProgress);
|
|
29
|
+
export { M3CircularProgress };
|
|
@@ -13,7 +13,7 @@ import { ProgressBar } from '../../base/progressbar.js';
|
|
|
13
13
|
*/
|
|
14
14
|
export declare class M3LinearProgress extends ProgressBar {
|
|
15
15
|
static styles: any[];
|
|
16
|
-
render(): import("lit
|
|
16
|
+
render(): import("lit").TemplateResult<1>;
|
|
17
17
|
}
|
|
18
18
|
declare global {
|
|
19
19
|
interface HTMLElementTagNameMap {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const radioStyles = css`:host{--_d:var(--md-sys-motion-effects-default-duration);--_default:var(--_d) var(--md-sys-motion-effects-default);--_slow:var(--md-sys-motion-effects-slow-duration) var(--md-sys-motion-effects-slow);cursor:pointer;isolation:isolate;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;
|
|
2
|
+
export const radioStyles = css`:host{--_d:var(--md-sys-motion-effects-default-duration);--_default:var(--_d) var(--md-sys-motion-effects-default);--_slow:var(--md-sys-motion-effects-slow-duration) var(--md-sys-motion-effects-slow);cursor:pointer;isolation:isolate;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;outline:0;place-content:center;place-items:center;margin:10px;display:inline-grid;position:relative}.icon{z-index:1;width:20px;height:20px}.ring{fill:none;r:9px;stroke:var(--md-sys-color-on-surface-variant);stroke-width:2px;transition:stroke var(--_default);will-change:r, stroke-width}:host(:state(checked)){--_ripple-color:var(--md-sys-color-primary);& .ring{stroke:var(--md-sys-color-primary)}}.dot{fill:var(--md-sys-color-primary);r:0px;will-change:r}:host(:state(checked)) .dot{r:5px}:host(:state(checking)) .ring{animation:check-ring-1 var(--_default), check-ring-2 var(--_slow) var(--_d)}:host(:state(checking)) .dot{animation:check-dot-1 var(--_default), check-dot-2 var(--_slow) var(--_d)}@keyframes check-ring-1{0%{r:9px;stroke-width:2px}to{r:4.5px;stroke-width:9px}}@keyframes check-ring-2{0%{r:8px;stroke-width:2px}to{r:9px;stroke-width:2px}}@keyframes check-dot-1{0%,to{r:0px}}@keyframes check-dot-2{0%{r:7px}to{r:5px}}:host(:state(unchecking)) .ring{animation:uncheck-ring-1 var(--_default), uncheck-ring-2 var(--_slow) var(--_d)}:host(:state(unchecking)) .dot{animation:uncheck-dot-1 var(--_default)}@keyframes uncheck-ring-1{0%{r:9px;stroke:var(--md-sys-color-primary);stroke-width:2px}to{r:8px;stroke:var(--md-sys-color-on-surface-variant);stroke-width:2px}}@keyframes uncheck-ring-2{0%{r:4.5px;stroke-width:9px}to{r:9px;stroke-width:2px}}@keyframes uncheck-dot-1{0%{fill:var(--md-sys-color-primary);r:5px}to{fill:var(--md-sys-color-on-surface-variant);r:7.5px}}:host([disabled]){pointer-events:none}:host([disabled]) .ring{stroke:oklch(from var(--md-sys-color-on-surface) l c h / 38%)}:host([disabled]) .dot{fill:oklch(from var(--md-sys-color-on-surface) l c h / 38%)}md-focus-ring{height:44px;inset:unset;width:44px}md-ripple{--md-ripple-color:var(--_ripple-color);height:40px;inset:unset;border-radius:9999px;width:40px}@media (forced-colors:active){:host{--md-sys-color-primary:SelectedItem;--md-sys-color-on-surface-variant:CanvasText}:host(:disabled) .ring{stroke:graytext}:host(:disabled) .dot{fill:graytext}}`;
|
package/src/m3/radio/radio.d.ts
CHANGED
|
@@ -7,9 +7,9 @@ import type { M3Ripple } from '../ripple/ripple.js';
|
|
|
7
7
|
* @tag md-radio
|
|
8
8
|
*/
|
|
9
9
|
export declare class M3Radio extends Radio {
|
|
10
|
-
$ripple: M3Ripple;
|
|
10
|
+
$ripple: M3Ripple | null;
|
|
11
11
|
static styles: any[];
|
|
12
|
-
render(): import("lit
|
|
12
|
+
render(): import("lit").TemplateResult<1>;
|
|
13
13
|
firstUpdated(): void;
|
|
14
14
|
updated(changedProperties: PropertyValues<this>): void;
|
|
15
15
|
}
|
package/src/m3/ripple/ripple.js
CHANGED
|
@@ -62,6 +62,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
|
|
|
62
62
|
if (e.pointerType === 'mouse')
|
|
63
63
|
this.#pointerDown = true;
|
|
64
64
|
document.addEventListener('pointerup', this.handlePointerUp);
|
|
65
|
+
document.addEventListener('pointercancel', this.handlePointerUp);
|
|
65
66
|
document.addEventListener('touchcancel', this.handlePointerUp);
|
|
66
67
|
document.addEventListener('touchend', this.handlePointerUp);
|
|
67
68
|
document.addEventListener('touchmove', this.handlePointerUp);
|
|
@@ -73,6 +74,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
|
|
|
73
74
|
this.handlePointerUp = () => {
|
|
74
75
|
this.#pointerDown = false;
|
|
75
76
|
document.removeEventListener('pointerup', this.handlePointerUp);
|
|
77
|
+
document.removeEventListener('pointercancel', this.handlePointerUp);
|
|
76
78
|
document.removeEventListener('touchcancel', this.handlePointerUp);
|
|
77
79
|
document.removeEventListener('touchend', this.handlePointerUp);
|
|
78
80
|
document.removeEventListener('touchmove', this.handlePointerUp);
|
|
@@ -90,6 +92,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
|
|
|
90
92
|
pointerenter: { fn: this.handlePointerEnter, kbd: false },
|
|
91
93
|
pointerleave: { fn: this.handlePointerLeave, kbd: false },
|
|
92
94
|
pointerdown: { fn: this.handlePointerDown, kbd: false },
|
|
95
|
+
pointercancel: { fn: this.handlePointerUp, kbd: false },
|
|
93
96
|
};
|
|
94
97
|
Object.entries(eventHandlers).forEach(([eventName, { fn, kbd }]) => {
|
|
95
98
|
prev?.labels?.forEach((label) => label.removeEventListener(eventName, fn));
|
|
@@ -7,7 +7,7 @@ import '../field/filled-field.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class M3FilledSelect extends M3Select {
|
|
9
9
|
static styles: any[];
|
|
10
|
-
protected renderField(): import("lit
|
|
10
|
+
protected renderField(): import("lit").TemplateResult<1>;
|
|
11
11
|
}
|
|
12
12
|
declare global {
|
|
13
13
|
interface HTMLElementTagNameMap {
|
|
@@ -7,7 +7,7 @@ import '../field/outlined-field.js';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare class M3OutlinedSelect extends M3Select {
|
|
9
9
|
static styles: any[];
|
|
10
|
-
protected renderField(): import("lit
|
|
10
|
+
protected renderField(): import("lit").TemplateResult<1>;
|
|
11
11
|
}
|
|
12
12
|
declare global {
|
|
13
13
|
interface HTMLElementTagNameMap {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const sliderStyles = css`:host{--_target-
|
|
2
|
+
export const sliderStyles = css`:host{--_target-width:48px;--_half-target:calc(var(--_target-width) / 2);--_handle-width-start:var(--md-slider-handle-width,4px);--_handle-width-end:var(--md-slider-handle-width,4px);--_handle-height:var(--md-slider-handle-height,44px);--_handle-shape:var(--md-slider-handle-shape,20px);--_handle-margin:6px;--_tick-size:var(--md-slider-tick-size,4px);--_tick-color:var(--md-sys-color-on-secondary-container);--_tick-active-color:var(--md-sys-color-on-primary);--_track-shape:var(--md-slider-track-shape,8px);--_track-height:var(--md-slider-track-height,16px);isolation:isolate;vertical-align:middle;min-inline-size:200px;display:inline-flex}:host([size=s]){--md-slider-track-height:24px}:host([size=m]){--md-slider-handle-height:52px;--md-slider-track-height:40px;--md-slider-track-shape:12px}:host([size=l]){--md-slider-handle-height:68px;--md-slider-track-height:56px;--md-slider-track-shape:16px}:host([size=xl]){--md-slider-handle-height:108px;--md-slider-track-height:96px;--md-slider-track-shape:28px}md-focus-ring{height:calc(var(--_handle-height) + 12px);width:16px;inset:unset}:host([disabled]){--_tick-color:oklch(from var(--md-sys-color-on-surface) l c h / .38);--_tick-active-color:var(--md-sys-color-inverse-on-surface)}:host([disabled]) input{cursor:default;pointer-events:none}.container{block-size:var(--_handle-height);pointer-events:none;touch-action:none;user-select:none;flex:1;align-items:center;display:flex;position:relative}.track,.tickmarks{block-size:var(--_track-height);align-items:center;display:flex;position:absolute;inset-inline:0}.track div,.tickmarks div{--_clip-1:calc(var(--_clip-offset) + var(--_handle-margin) + (100% - var(--_clip-offset) * 2) * var(--_start-value) + var(--_handle-width-start) / 2);--_clip-1-till-end:calc(var(--_clip-offset) + var(--_handle-margin) + (100% - var(--_clip-offset) * 2) * (1 - var(--_start-value)) + var(--_handle-width-start) / 2);--_clip-2:calc(var(--_clip-offset) + var(--_handle-margin) + (100% - var(--_clip-offset) * 2) * var(--_end-value) + var(--_handle-width-end) / 2);--_clip-2-till-end:calc(var(--_clip-offset) + var(--_handle-margin) + (100% - var(--_clip-offset) * 2) * (1 - var(--_end-value)) + var(--_handle-width-end) / 2);inset:0 calc(var(--_target-width) / 2);position:absolute}.track div{--_clip-offset:6px;inset:0 calc(var(--_target-width) / 2 - var(--_clip-offset))}.track .inactive-before,.track .inactive-after{background:var(--md-sys-color-secondary-container)}.track .active{background:var(--md-sys-color-primary)}:host([disabled]) .track .inactive-before,:host([disabled]) .track .inactive-after{background:oklch(from var(--md-sys-color-on-surface) l c h / .12)}:host([disabled]) .track .active{background:oklch(from var(--md-sys-color-on-surface) l c h / .38)}.tickmarks div{--_clip-offset:calc(var(--_tick-size) / 2);inset:0 calc(var(--_target-width) / 2 - var(--_clip-offset));background-size:calc((100% - var(--_tick-size)) / var(--_ticks)) 100%;background-image:radial-gradient(circle at calc(var(--_tick-size) / 2) center, var(--_tick-color) 0, var(--_tick-color) calc(var(--_tick-size) / 2), transparent calc(var(--_tick-size) / 2))}.tickmarks .active{--_tick-color:var(--_tick-active-color)}.inactive-before{clip-path:inset(0 var(--_clip-1-till-end) 0 0 round var(--_track-shape) 2px 2px var(--_track-shape))}.inactive-after{clip-path:inset(0 0 0 var(--_clip-2) round 2px var(--_track-shape) var(--_track-shape) 2px)}.active{clip-path:inset(0 var(--_clip-2-till-end) 0 0 round var(--_track-shape) 2px 2px var(--_track-shape))}.ranged .active{clip-path:inset(0 var(--_clip-2-till-end) 0 var(--_clip-1) round 2px)}:host(:dir(rtl)) .inactive-before{clip-path:inset(0 0 0 var(--_clip-1-till-end) round 2px var(--_track-shape) var(--_track-shape) 2px)}:host(:dir(rtl)) .inactive-after{clip-path:inset(0 var(--_clip-2) 0 0 round var(--_track-shape) 2px 2px var(--_track-shape))}:host(:dir(rtl)) .active{clip-path:inset(0 0 0 var(--_clip-2-till-end) round 2px var(--_track-shape) var(--_track-shape) 2px)}:host(:dir(rtl)) .ranged .active{clip-path:inset(0 var(--_clip-1) 0 var(--_clip-2-till-end) round 2px)}:host([stop]:not(:is([ticks],[range]))) .inactive-after:before{content:"";inline-size:var(--_tick-size);block-size:var(--_tick-size);background:var(--_tick-color);border-radius:50%;margin-block:auto;position:absolute;inset-block:0;inset-inline-end:calc(var(--_clip-offset) - var(--_tick-size) / 2)}.handles-padded{block-size:100%;inline-size:100%;padding-inline:calc(var(--_target-width) / 2);box-sizing:border-box;position:absolute;inset:0}.handles{block-size:100%;inline-size:100%;inline-size:calc(100% * (var(--_end-value) - var(--_start-value)));position:relative;inset-block:0;inset-inline-start:calc(100% * var(--_start-value))}.handle{block-size:var(--_handle-height);inline-size:var(--_target-width);place-content:center;place-items:center;display:flex;position:absolute}.handle.start{inset-inline-start:calc(0px - var(--_half-target))}.handle.end{inset-inline-end:calc(0px - var(--_half-target))}.nub{height:var(--_handle-height);width:var(--_handle-width-end);border-radius:var(--_handle-shape);background:var(--md-sys-color-primary);transition:width var(--md-sys-motion-effects-fast-duration) var(--md-sys-motion-effects-fast);position:absolute}.start .nub{width:var(--_handle-width-start)}:host([disabled]) .nub{background:oklch(from var(--md-sys-color-on-surface) l c h / .38)}.onTop.isOverlapping .nub{border:1px solid var(--md-sys-color-surface)}.label{box-sizing:border-box;color:var(--md-sys-color-inverse-on-surface);background:var(--md-sys-color-inverse-surface);font:var(--md-sys-typography-label-large);opacity:0;border-radius:9999px;place-content:center;place-items:center;min-block-size:44px;min-inline-size:48px;padding:0 16px;transition:opacity 67ms linear;display:flex;position:absolute;inset-block-end:100%;transform:translateY(-2px)}:host(:not(:disabled)) :where(:has(input:active)) .label,:host(:not(:disabled)) :where(:has(input:focus-visible)) .label{opacity:1}@media (hover:hover) and (pointer:fine){:host(:not(:disabled)) :where(:has(input:hover)) .label{opacity:1}}input[type=range]{opacity:0;-webkit-tap-highlight-color:transparent;box-sizing:border-box;cursor:pointer;pointer-events:auto;appearance:none;width:100%;height:100%;margin:0;position:absolute}input[type=range]:focus{outline:none}:host(:not([disabled])) :has(input.start:active){--_handle-width-start:2px}:host(:not([disabled])) :has(input.end:active){--_handle-width-end:2px}::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;block-size:var(--_handle-height);inline-size:var(--_target-width);opacity:0;z-index:2}::-moz-range-thumb{appearance:none;block-size:var(--_handle-height);inline-size:var(--_target-width);opacity:0;z-index:2;transform:scaleX(0)}.ranged input{--_track-len:calc(100% - var(--_target-width));--_mid-frac:calc(var(--_start-value) + ((var(--_end-value) - var(--_start-value)) / 2));--_clip-input:calc(var(--_half-target) + var(--_track-len) * var(--_mid-frac))}.ranged input.start{clip-path:inset(0 calc(100% - var(--_clip-input)) 0 0)}.ranged input.end{clip-path:inset(0 0 0 var(--_clip-input))}.ranged input.start:dir(rtl){clip-path:inset(0 0 0 calc(100% - var(--_clip-input)))}.ranged input.end:dir(rtl){clip-path:inset(0 var(--_clip-input) 0 0)}.onTop{z-index:1}`;
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { Slider } from '../../base/slider.js';
|
|
2
2
|
import '../focus-ring/focus-ring.js';
|
|
3
3
|
/**
|
|
4
|
-
* TODO: Add size variants
|
|
5
4
|
* TODO: Add orientation: vertical
|
|
6
5
|
*
|
|
7
6
|
* @tag md-slider
|
|
8
7
|
*/
|
|
9
8
|
export declare class M3Slider extends Slider {
|
|
9
|
+
size: 'xs' | 's' | 'm' | 'l' | 'xl';
|
|
10
|
+
stop: boolean;
|
|
11
|
+
ticks: boolean;
|
|
12
|
+
labeled: boolean;
|
|
10
13
|
static styles: any[];
|
|
11
|
-
render(): import("lit
|
|
14
|
+
render(): import("lit").TemplateResult<1>;
|
|
12
15
|
private renderTrack;
|
|
13
16
|
private renderLabel;
|
|
14
17
|
private renderHandle;
|
package/src/m3/slider/slider.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { html, nothing } from 'lit';
|
|
3
|
-
import { customElement } from 'lit/decorators.js';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
4
|
import { classMap } from 'lit/directives/class-map.js';
|
|
5
5
|
import { styleMap } from 'lit/directives/style-map.js';
|
|
6
6
|
import { when } from 'lit/directives/when.js';
|
|
@@ -8,12 +8,18 @@ import { Slider } from '../../base/slider.js';
|
|
|
8
8
|
import '../focus-ring/focus-ring.js';
|
|
9
9
|
import { sliderStyles } from './slider-styles.css.js';
|
|
10
10
|
/**
|
|
11
|
-
* TODO: Add size variants
|
|
12
11
|
* TODO: Add orientation: vertical
|
|
13
12
|
*
|
|
14
13
|
* @tag md-slider
|
|
15
14
|
*/
|
|
16
15
|
let M3Slider = class M3Slider extends Slider {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.size = 'xs';
|
|
19
|
+
this.stop = false;
|
|
20
|
+
this.ticks = false;
|
|
21
|
+
this.labeled = false;
|
|
22
|
+
}
|
|
17
23
|
static { this.styles = [sliderStyles]; }
|
|
18
24
|
render() {
|
|
19
25
|
const step = this.step === 0 ? 1 : this.step;
|
|
@@ -23,8 +29,8 @@ let M3Slider = class M3Slider extends Slider {
|
|
|
23
29
|
: 0;
|
|
24
30
|
const endFraction = ((this.renderValueEnd ?? this.min) - this.min) / range;
|
|
25
31
|
const containerStyles = {
|
|
26
|
-
'--_start': String(startFraction),
|
|
27
|
-
'--_end': String(endFraction),
|
|
32
|
+
'--_start-value': String(startFraction),
|
|
33
|
+
'--_end-value': String(endFraction),
|
|
28
34
|
'--_ticks': String(range / step),
|
|
29
35
|
};
|
|
30
36
|
const containerClasses = { ranged: this.range };
|
|
@@ -76,6 +82,18 @@ let M3Slider = class M3Slider extends Slider {
|
|
|
76
82
|
})}"><md-focus-ring part="focus-ring" for="${name}"></md-focus-ring><div class="nub"></div>${when(this.labeled, () => this.renderLabel(label))}</div>`;
|
|
77
83
|
}
|
|
78
84
|
};
|
|
85
|
+
__decorate([
|
|
86
|
+
property({ reflect: true })
|
|
87
|
+
], M3Slider.prototype, "size", void 0);
|
|
88
|
+
__decorate([
|
|
89
|
+
property({ reflect: true, type: Boolean })
|
|
90
|
+
], M3Slider.prototype, "stop", void 0);
|
|
91
|
+
__decorate([
|
|
92
|
+
property({ reflect: true, type: Boolean })
|
|
93
|
+
], M3Slider.prototype, "ticks", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
property({ type: Boolean })
|
|
96
|
+
], M3Slider.prototype, "labeled", void 0);
|
|
79
97
|
M3Slider = __decorate([
|
|
80
98
|
customElement('md-slider')
|
|
81
99
|
], M3Slider);
|
|
@@ -12,12 +12,12 @@ export declare class M3Switch extends ToggleButton {
|
|
|
12
12
|
#private;
|
|
13
13
|
icons: boolean;
|
|
14
14
|
checkedIconOnly: boolean;
|
|
15
|
-
$ripple: M3Ripple;
|
|
16
|
-
$thumb: HTMLSpanElement;
|
|
15
|
+
$ripple: M3Ripple | null;
|
|
16
|
+
$thumb: HTMLSpanElement | null;
|
|
17
17
|
static styles: any[];
|
|
18
|
-
render(): import("lit
|
|
19
|
-
renderOnIcon(): import("lit
|
|
20
|
-
renderOffIcon(): import("lit
|
|
18
|
+
render(): import("lit").TemplateResult<1>;
|
|
19
|
+
renderOnIcon(): import("lit").TemplateResult<1>;
|
|
20
|
+
renderOffIcon(): import("lit").TemplateResult<1>;
|
|
21
21
|
connectedCallback(): void;
|
|
22
22
|
disconnectedCallback(): void;
|
|
23
23
|
firstUpdated(): void;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const tabStyles = css`:host{--md-focus-ring-shape:12px;box-sizing:border-box;color:var(--md-sys-color-on-surface-variant);cursor:pointer;font:var(--md-sys-typography-title-small);-webkit-tap-highlight-color:transparent;text-wrap-mode:nowrap;user-select:none;-webkit-user-select-:none;outline:none;flex-shrink:0;justify-content:center;padding:0 16px;display:inline-flex;position:relative}:host([selected]){color:var(--_tab-selected-color);& md-focus-ring{margin-bottom:calc(var(--_indicator-height) + 2px)}& [part=indicator]{opacity:1}}:host([disabled]){pointer-events:none;color:
|
|
2
|
+
export const tabStyles = css`:host{--md-focus-ring-shape:12px;box-sizing:border-box;color:var(--md-sys-color-on-surface-variant);cursor:pointer;font:var(--md-sys-typography-title-small);-webkit-tap-highlight-color:transparent;text-wrap-mode:nowrap;user-select:none;-webkit-user-select-:none;outline:none;flex-shrink:0;justify-content:center;padding:0 16px;display:inline-flex;position:relative}:host([selected]){color:var(--_tab-selected-color);& md-focus-ring{margin-bottom:calc(var(--_indicator-height) + 2px)}& [part=indicator]{opacity:1}}:host([disabled]){pointer-events:none;color:oklch(from var(--md-sys-color-on-surface) l c h / 38%)}[part=content]{flex-direction:var(--_tab-flex-dir,row);align-items:center;gap:var(--_tab-gap,8px);height:var(--_tab-height,48px);justify-content:center;display:inline-flex;position:relative}[part=indicator]{height:var(--_indicator-height);background-color:var(--md-sys-color-primary);opacity:0;transform-origin:0;pointer-events:none;will-change:transform, opacity;border-radius:3px 3px 0 0;min-width:24px;position:absolute;bottom:0;left:2px;right:2px}::slotted([slot=icon]){fill:currentColor;block-size:1em;inline-size:1em;font-size:24px}`;
|
package/src/m3/tab/tab.d.ts
CHANGED
|
@@ -8,12 +8,11 @@ import '../ripple/ripple.js';
|
|
|
8
8
|
* @slot - label
|
|
9
9
|
*/
|
|
10
10
|
export declare class M3Tab extends Tab {
|
|
11
|
-
$
|
|
12
|
-
$indicator: HTMLElement;
|
|
11
|
+
$indicator: HTMLElement | null;
|
|
13
12
|
protected _isSecondary: boolean;
|
|
14
13
|
static styles: any[];
|
|
15
|
-
render(): import("lit
|
|
16
|
-
animateIndicator(previousTab: M3Tab): void
|
|
14
|
+
render(): import("lit").TemplateResult<1>;
|
|
15
|
+
animateIndicator(previousTab: M3Tab): Promise<void>;
|
|
17
16
|
}
|
|
18
17
|
declare global {
|
|
19
18
|
interface HTMLElementTagNameMap {
|
package/src/m3/tab/tab.js
CHANGED
|
@@ -23,7 +23,8 @@ let M3Tab = class M3Tab extends Tab {
|
|
|
23
23
|
render() {
|
|
24
24
|
return html `<md-focus-ring inward></md-focus-ring><md-ripple></md-ripple><span part="target"></span><div part="content"><slot part="icon" name="icon" aria-hidden="true"></slot><slot part="label"></slot>${!this._isSecondary ? html `<div part="indicator" role="presentation"></div>` : nothing}</div>${this._isSecondary ? html `<div part="indicator" role="presentation"></div>` : nothing}`;
|
|
25
25
|
}
|
|
26
|
-
animateIndicator(previousTab) {
|
|
26
|
+
async animateIndicator(previousTab) {
|
|
27
|
+
await this.updateComplete;
|
|
27
28
|
const indicator = this.$indicator;
|
|
28
29
|
indicator.getAnimations().forEach((a) => a.cancel());
|
|
29
30
|
const prevIndicator = previousTab.$indicator;
|
|
@@ -77,9 +78,6 @@ let M3Tab = class M3Tab extends Tab {
|
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
80
|
};
|
|
80
|
-
__decorate([
|
|
81
|
-
query('[part="content"]')
|
|
82
|
-
], M3Tab.prototype, "$content", void 0);
|
|
83
81
|
__decorate([
|
|
84
82
|
query('[part="indicator"]')
|
|
85
83
|
], M3Tab.prototype, "$indicator", void 0);
|
|
@@ -4,7 +4,7 @@ export declare class M3FilledTextField extends Input {
|
|
|
4
4
|
label: string;
|
|
5
5
|
supportingText: string;
|
|
6
6
|
static styles: any[];
|
|
7
|
-
render(): import("lit
|
|
7
|
+
render(): import("lit").TemplateResult<1>;
|
|
8
8
|
}
|
|
9
9
|
declare global {
|
|
10
10
|
interface HTMLElementTagNameMap {
|
|
@@ -4,7 +4,7 @@ export declare class M3OutlinedTextField extends Input {
|
|
|
4
4
|
label: string;
|
|
5
5
|
supportingText: string;
|
|
6
6
|
static styles: any[];
|
|
7
|
-
render(): import("lit
|
|
7
|
+
render(): import("lit").TemplateResult<1>;
|
|
8
8
|
}
|
|
9
9
|
declare global {
|
|
10
10
|
interface HTMLElementTagNameMap {
|
|
@@ -14,7 +14,7 @@ export declare class M3Toolbar extends M3Toolbar_base {
|
|
|
14
14
|
color: 'standard' | 'vibrant';
|
|
15
15
|
orientation: 'horizontal' | 'vertical';
|
|
16
16
|
static styles: any[];
|
|
17
|
-
render(): import("lit
|
|
17
|
+
render(): import("lit").TemplateResult<1>;
|
|
18
18
|
constructor();
|
|
19
19
|
protected updated(changed: Map<string, unknown>): void;
|
|
20
20
|
}
|
|
@@ -4,7 +4,7 @@ import { Button } from '../../base/button.js';
|
|
|
4
4
|
*/
|
|
5
5
|
export declare class Win98Button extends Button {
|
|
6
6
|
static styles: any[];
|
|
7
|
-
render(): import("lit
|
|
7
|
+
render(): import("lit").TemplateResult<1>;
|
|
8
8
|
}
|
|
9
9
|
declare global {
|
|
10
10
|
interface HTMLElementTagNameMap {
|
package/src/base/field.d.ts
DELETED
package/src/base/field.js
DELETED
package/src/base/item.d.ts
DELETED