@universal-material/web 3.0.20 → 3.0.21
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/app-bar/top-app-bar.d.ts +42 -0
- package/app-bar/top-app-bar.d.ts.map +1 -0
- package/app-bar/top-app-bar.js +139 -0
- package/app-bar/top-app-bar.js.map +1 -0
- package/{button/button-base.styles.d.ts → app-bar/top-app-bar.styles.d.ts} +1 -1
- package/app-bar/top-app-bar.styles.d.ts.map +1 -0
- package/app-bar/top-app-bar.styles.js +87 -0
- package/app-bar/top-app-bar.styles.js.map +1 -0
- package/button/button-base.d.ts +2 -30
- package/button/button-base.d.ts.map +1 -1
- package/button/button-base.js +4 -94
- package/button/button-base.js.map +1 -1
- package/button/button.d.ts +1 -1
- package/button/button.d.ts.map +1 -1
- package/button/button.js +9 -7
- package/button/button.js.map +1 -1
- package/button/button.styles.d.ts.map +1 -1
- package/button/button.styles.js +14 -10
- package/button/button.styles.js.map +1 -1
- package/button/fab.d.ts.map +1 -1
- package/button/fab.js +2 -2
- package/button/fab.js.map +1 -1
- package/button/icon-button.d.ts +2 -2
- package/button/icon-button.d.ts.map +1 -1
- package/button/icon-button.js +5 -4
- package/button/icon-button.js.map +1 -1
- package/button/icon-button.styles.js +8 -8
- package/button/icon-button.styles.js.map +1 -1
- package/card/card.d.ts +3 -3
- package/card/card.d.ts.map +1 -1
- package/card/card.js +3 -3
- package/card/card.js.map +1 -1
- package/checkbox/checkbox.d.ts.map +1 -1
- package/checkbox/checkbox.js +0 -1
- package/checkbox/checkbox.js.map +1 -1
- package/config.d.ts +6 -0
- package/config.d.ts.map +1 -0
- package/config.js +7 -0
- package/config.js.map +1 -0
- package/container/container.d.ts +1 -1
- package/container/container.d.ts.map +1 -1
- package/container/container.js +4 -4
- package/container/container.js.map +1 -1
- package/container/grid-base.styles.js +4 -4
- package/container/grid-base.styles.js.map +1 -1
- package/container/grid.d.ts +2 -2
- package/container/grid.d.ts.map +1 -1
- package/container/grid.js +4 -4
- package/container/grid.js.map +1 -1
- package/css/universal-material.css +1333 -0
- package/css/universal-material.min.css +2 -0
- package/custom-elements.json +2873 -915
- package/elevation/elevation.d.ts +1 -1
- package/elevation/elevation.d.ts.map +1 -1
- package/elevation/elevation.js +2 -2
- package/elevation/elevation.js.map +1 -1
- package/index.d.ts +41 -29
- package/index.d.ts.map +1 -1
- package/index.js +41 -29
- package/index.js.map +1 -1
- package/menu/menu-item.d.ts +26 -0
- package/menu/menu-item.d.ts.map +1 -0
- package/menu/menu-item.js +62 -0
- package/menu/menu-item.js.map +1 -0
- package/{table/table-row.styles.d.ts → menu/menu-item.styles.d.ts} +1 -1
- package/menu/menu-item.styles.d.ts.map +1 -0
- package/menu/menu-item.styles.js +37 -0
- package/menu/menu-item.styles.js.map +1 -0
- package/menu/menu.d.ts +55 -0
- package/menu/menu.d.ts.map +1 -0
- package/menu/menu.js +215 -0
- package/menu/menu.js.map +1 -0
- package/{table/table.styles.d.ts → menu/menu.styles.d.ts} +1 -1
- package/menu/menu.styles.d.ts.map +1 -0
- package/menu/menu.styles.js +95 -0
- package/menu/menu.styles.js.map +1 -0
- package/navigation/drawer-item.d.ts +39 -0
- package/navigation/drawer-item.d.ts.map +1 -0
- package/navigation/drawer-item.js +98 -0
- package/navigation/drawer-item.js.map +1 -0
- package/{table/table-body.styles.d.ts → navigation/drawer-item.styles.d.ts} +1 -1
- package/navigation/drawer-item.styles.d.ts.map +1 -0
- package/navigation/drawer-item.styles.js +43 -0
- package/navigation/drawer-item.styles.js.map +1 -0
- package/{table/table-row.d.ts → navigation/drawer.d.ts} +3 -3
- package/navigation/drawer.d.ts.map +1 -0
- package/{table/table-row.js → navigation/drawer.js} +11 -8
- package/navigation/drawer.js.map +1 -0
- package/{table/table-cell.styles.d.ts → navigation/drawer.styles.d.ts} +1 -1
- package/navigation/drawer.styles.d.ts.map +1 -0
- package/navigation/drawer.styles.js +17 -0
- package/navigation/drawer.styles.js.map +1 -0
- package/navigation/side-navigation-swiper.styles.d.ts +2 -0
- package/navigation/side-navigation-swiper.styles.d.ts.map +1 -0
- package/navigation/side-navigation-swiper.styles.js +131 -0
- package/navigation/side-navigation-swiper.styles.js.map +1 -0
- package/navigation/side-navigation.d.ts +32 -0
- package/navigation/side-navigation.d.ts.map +1 -0
- package/navigation/side-navigation.js +154 -0
- package/navigation/side-navigation.js.map +1 -0
- package/navigation/side-navigation.styles.d.ts +2 -0
- package/navigation/side-navigation.styles.d.ts.map +1 -0
- package/navigation/side-navigation.styles.js +124 -0
- package/navigation/side-navigation.styles.js.map +1 -0
- package/package.json +47 -21
- package/scss/_api.scss +2 -0
- package/scss/_common.scss +38 -0
- package/scss/_css-vars.scss +30 -0
- package/scss/_functions.scss +25 -0
- package/scss/_mixins.scss +3 -0
- package/scss/_variables.scss +110 -0
- package/scss/data-table/_data-table.scss +33 -0
- package/scss/data-table/_variables.scss +24 -0
- package/scss/functions/_font.scss +29 -0
- package/scss/mixins/_breakpoints.scss +21 -0
- package/scss/mixins/_colors.scss +6 -0
- package/scss/mixins/_text-bg.scss +33 -0
- package/scss/mixins/_typo.scss +26 -0
- package/scss/text-bg/_text-bg.scss +38 -0
- package/scss/text-bg/_text.scss +73 -0
- package/scss/typo/_font.scss +5 -0
- package/scss/typo/_typo.scss +19 -0
- package/scss/typo/_variables.scss +19 -0
- package/scss/universal-material.scss +7 -0
- package/shared/base.styles.js +1 -1
- package/shared/base.styles.js.map +1 -1
- package/shared/button-wrapper.d.ts +35 -0
- package/shared/button-wrapper.d.ts.map +1 -0
- package/shared/button-wrapper.js +110 -0
- package/shared/button-wrapper.js.map +1 -0
- package/shared/button-wrapper.styles.d.ts +2 -0
- package/shared/button-wrapper.styles.d.ts.map +1 -0
- package/{button/button-base.styles.js → shared/button-wrapper.styles.js} +27 -9
- package/shared/button-wrapper.styles.js.map +1 -0
- package/snackbar/snackbar.d.ts +38 -0
- package/snackbar/snackbar.d.ts.map +1 -0
- package/snackbar/snackbar.js +122 -0
- package/snackbar/snackbar.js.map +1 -0
- package/{table/table-head.styles.d.ts → snackbar/snackbar.styles.d.ts} +1 -1
- package/snackbar/snackbar.styles.d.ts.map +1 -0
- package/snackbar/snackbar.styles.js +81 -0
- package/snackbar/snackbar.styles.js.map +1 -0
- package/theme/css-var-builder.js +1 -1
- package/theme/css-var-builder.js.map +1 -1
- package/theme/index.d.ts +1 -1
- package/theme/index.d.ts.map +1 -1
- package/theme/index.js +1 -1
- package/theme/index.js.map +1 -1
- package/theme/neutral-colors.d.ts +1 -1
- package/theme/neutral-colors.d.ts.map +1 -1
- package/theme/neutral-colors.js +5 -0
- package/theme/neutral-colors.js.map +1 -1
- package/theme/theme-builder.d.ts +2 -3
- package/theme/theme-builder.d.ts.map +1 -1
- package/theme/theme-builder.js +41 -15
- package/theme/theme-builder.js.map +1 -1
- package/theme/theme-color.d.ts +1 -1
- package/theme/theme-color.d.ts.map +1 -1
- package/theme/theme-color.js.map +1 -1
- package/button/button-base.styles.d.ts.map +0 -1
- package/button/button-base.styles.js.map +0 -1
- package/table/table-body.d.ts +0 -11
- package/table/table-body.d.ts.map +0 -1
- package/table/table-body.js +0 -21
- package/table/table-body.js.map +0 -1
- package/table/table-body.styles.d.ts.map +0 -1
- package/table/table-body.styles.js +0 -11
- package/table/table-body.styles.js.map +0 -1
- package/table/table-cell.d.ts +0 -11
- package/table/table-cell.d.ts.map +0 -1
- package/table/table-cell.js +0 -21
- package/table/table-cell.js.map +0 -1
- package/table/table-cell.styles.d.ts.map +0 -1
- package/table/table-cell.styles.js +0 -11
- package/table/table-cell.styles.js.map +0 -1
- package/table/table-head.d.ts +0 -11
- package/table/table-head.d.ts.map +0 -1
- package/table/table-head.js +0 -21
- package/table/table-head.js.map +0 -1
- package/table/table-head.styles.d.ts.map +0 -1
- package/table/table-head.styles.js +0 -11
- package/table/table-head.styles.js.map +0 -1
- package/table/table-header-cell.d.ts +0 -11
- package/table/table-header-cell.d.ts.map +0 -1
- package/table/table-header-cell.js +0 -21
- package/table/table-header-cell.js.map +0 -1
- package/table/table-header-cell.styles.d.ts +0 -2
- package/table/table-header-cell.styles.d.ts.map +0 -1
- package/table/table-header-cell.styles.js +0 -12
- package/table/table-header-cell.styles.js.map +0 -1
- package/table/table-row.d.ts.map +0 -1
- package/table/table-row.js.map +0 -1
- package/table/table-row.styles.d.ts.map +0 -1
- package/table/table-row.styles.js +0 -7
- package/table/table-row.styles.js.map +0 -1
- package/table/table.d.ts +0 -16
- package/table/table.d.ts.map +0 -1
- package/table/table.js +0 -19
- package/table/table.js.map +0 -1
- package/table/table.styles.d.ts.map +0 -1
- package/table/table.styles.js +0 -16
- package/table/table.styles.js.map +0 -1
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var UmSnackbar_1;
|
|
8
|
+
import { html, LitElement, nothing } from 'lit';
|
|
9
|
+
import { customElement, property, query } from 'lit/decorators.js';
|
|
10
|
+
import { styles as baseStyles } from '../shared/base.styles';
|
|
11
|
+
import { styles } from './snackbar.styles';
|
|
12
|
+
export var SnackbarDuration;
|
|
13
|
+
(function (SnackbarDuration) {
|
|
14
|
+
SnackbarDuration[SnackbarDuration["short"] = 2500] = "short";
|
|
15
|
+
SnackbarDuration[SnackbarDuration["long"] = 5000] = "long";
|
|
16
|
+
SnackbarDuration[SnackbarDuration["infinite"] = -1] = "infinite";
|
|
17
|
+
})(SnackbarDuration || (SnackbarDuration = {}));
|
|
18
|
+
let UmSnackbar = UmSnackbar_1 = class UmSnackbar extends LitElement {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.label = '';
|
|
22
|
+
this.buttonLabel = '';
|
|
23
|
+
this.showClose = false;
|
|
24
|
+
this.dismissed = false;
|
|
25
|
+
}
|
|
26
|
+
render() {
|
|
27
|
+
return html `
|
|
28
|
+
<div class="snackbar ${this.dismissed ? 'dismiss' : ''}">
|
|
29
|
+
<div class="label">${this.label}</div>
|
|
30
|
+
${this.renderButton()}
|
|
31
|
+
${this.renderCloseButton()}
|
|
32
|
+
</div>`;
|
|
33
|
+
}
|
|
34
|
+
renderButton() {
|
|
35
|
+
return this.buttonLabel
|
|
36
|
+
? html `<u-button variant="text">${this.buttonLabel}</u-button>`
|
|
37
|
+
: nothing;
|
|
38
|
+
}
|
|
39
|
+
renderCloseButton() {
|
|
40
|
+
return this.showClose
|
|
41
|
+
? html `<u-icon-button><i class="mdi mdi-close">X</i></u-icon-button>`
|
|
42
|
+
: nothing;
|
|
43
|
+
}
|
|
44
|
+
dismiss() {
|
|
45
|
+
if (this.dismissed) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.dismissed = true;
|
|
49
|
+
const onAnimationEnd = () => {
|
|
50
|
+
this.snackbar.removeEventListener('animationend', onAnimationEnd);
|
|
51
|
+
this.remove();
|
|
52
|
+
UmSnackbar_1.showNext();
|
|
53
|
+
};
|
|
54
|
+
this.snackbar.addEventListener('animationend', onAnimationEnd);
|
|
55
|
+
}
|
|
56
|
+
static show(configOrLabel) {
|
|
57
|
+
if (typeof configOrLabel === 'string') {
|
|
58
|
+
configOrLabel = {
|
|
59
|
+
label: configOrLabel
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
configOrLabel.duration ??= SnackbarDuration.short;
|
|
63
|
+
const snackbar = this.createSnackbar(configOrLabel);
|
|
64
|
+
UmSnackbar_1._queue.push(snackbar);
|
|
65
|
+
if (!UmSnackbar_1._consuming) {
|
|
66
|
+
UmSnackbar_1.consumeQueue();
|
|
67
|
+
}
|
|
68
|
+
return snackbar;
|
|
69
|
+
}
|
|
70
|
+
static consumeQueue() {
|
|
71
|
+
if (UmSnackbar_1._queue.length) {
|
|
72
|
+
UmSnackbar_1._consuming = true;
|
|
73
|
+
UmSnackbar_1.showNext();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
static showNext() {
|
|
77
|
+
if (!UmSnackbar_1._queue.length) {
|
|
78
|
+
UmSnackbar_1._consuming = false;
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const snackbar = UmSnackbar_1._queue[0];
|
|
82
|
+
UmSnackbar_1._queue = UmSnackbar_1._queue.slice(1);
|
|
83
|
+
document.body.appendChild(snackbar);
|
|
84
|
+
if (snackbar.duration === -1) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
setTimeout(() => snackbar.dismiss(), snackbar.duration);
|
|
88
|
+
}
|
|
89
|
+
static createSnackbar(config) {
|
|
90
|
+
const snackbar = document.createElement("u-snackbar");
|
|
91
|
+
snackbar.label = config.label;
|
|
92
|
+
snackbar.buttonLabel = config.buttonLabel;
|
|
93
|
+
snackbar.showClose = config.showClose;
|
|
94
|
+
snackbar.duration = config.duration;
|
|
95
|
+
return snackbar;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
UmSnackbar.styles = [
|
|
99
|
+
baseStyles,
|
|
100
|
+
styles
|
|
101
|
+
];
|
|
102
|
+
UmSnackbar._queue = [];
|
|
103
|
+
__decorate([
|
|
104
|
+
property({ reflect: true })
|
|
105
|
+
], UmSnackbar.prototype, "label", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
property({ reflect: true })
|
|
108
|
+
], UmSnackbar.prototype, "buttonLabel", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
property({ type: Boolean, attribute: 'show-close', reflect: true })
|
|
111
|
+
], UmSnackbar.prototype, "showClose", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
property({ type: Boolean, reflect: true })
|
|
114
|
+
], UmSnackbar.prototype, "dismissed", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
query('.snackbar')
|
|
117
|
+
], UmSnackbar.prototype, "snackbar", void 0);
|
|
118
|
+
UmSnackbar = UmSnackbar_1 = __decorate([
|
|
119
|
+
customElement('u-snackbar')
|
|
120
|
+
], UmSnackbar);
|
|
121
|
+
export { UmSnackbar };
|
|
122
|
+
//# sourceMappingURL=snackbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snackbar.js","sourceRoot":"","sources":["../../src/snackbar/snackbar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles';\nimport { styles } from './snackbar.styles';\n\nexport interface SnackbarConfig {\n label: string;\n duration?: SnackbarDuration;\n buttonLabel?: string;\n showClose?: boolean;\n}\n\nexport enum SnackbarDuration {\n short = 2500,\n long = 5000,\n infinite = -1\n}\n\n@customElement('u-snackbar')\nexport class UmSnackbar extends LitElement {\n\n static override styles = [\n baseStyles,\n styles\n ];\n\n @property({reflect: true}) label: string = '';\n @property({reflect: true}) buttonLabel: string = '';\n @property({type: Boolean, attribute: 'show-close', reflect: true}) showClose = false;\n @property({type: Boolean, reflect: true}) dismissed = false;\n\n private duration!: SnackbarDuration;\n @query('.snackbar') private snackbar!: HTMLElement;\n\n override render(): HTMLTemplateResult {\n return html`\n <div class=\"snackbar ${this.dismissed ? 'dismiss' : ''}\">\n <div class=\"label\">${this.label}</div>\n ${this.renderButton()}\n ${this.renderCloseButton()}\n </div>`;\n }\n\n private renderButton() {\n return this.buttonLabel\n ? html`<u-button variant=\"text\">${this.buttonLabel}</u-button>`\n : nothing;\n }\n\n private renderCloseButton() {\n return this.showClose\n ? html`<u-icon-button><i class=\"mdi mdi-close\">X</i></u-icon-button>`\n : nothing;\n }\n\n dismiss(): void {\n if (this.dismissed) {\n return;\n }\n\n this.dismissed = true;\n\n const onAnimationEnd = () => {\n this.snackbar.removeEventListener('animationend', onAnimationEnd);\n this.remove();\n\n UmSnackbar.showNext();\n };\n\n this.snackbar.addEventListener('animationend', onAnimationEnd);\n }\n\n private static _queue: UmSnackbar[] = [];\n private static _consuming: boolean;\n\n static show(label: string): UmSnackbar;\n static show(config: SnackbarConfig): UmSnackbar;\n static show(configOrLabel: SnackbarConfig | string): UmSnackbar {\n\n if (typeof configOrLabel === 'string') {\n configOrLabel = {\n label: configOrLabel\n }\n }\n\n configOrLabel.duration ??= SnackbarDuration.short;\n\n const snackbar = this.createSnackbar(<SnackbarConfig>configOrLabel);\n UmSnackbar._queue.push(snackbar);\n\n if (!UmSnackbar._consuming) {\n UmSnackbar.consumeQueue();\n }\n\n return snackbar;\n }\n\n private static consumeQueue() {\n\n if (UmSnackbar._queue.length) {\n UmSnackbar._consuming = true;\n UmSnackbar.showNext();\n }\n }\n\n private static showNext() {\n if (!UmSnackbar._queue.length) {\n UmSnackbar._consuming = false;\n return;\n }\n \n const snackbar = UmSnackbar._queue[0];\n\n UmSnackbar._queue = UmSnackbar._queue.slice(1);\n\n document.body.appendChild(snackbar);\n\n if (snackbar.duration === -1) {\n return;\n }\n\n setTimeout(() => snackbar.dismiss(), snackbar.duration);\n }\n\n private static createSnackbar(config: SnackbarConfig): UmSnackbar {\n const snackbar = document.createElement(\"u-snackbar\");\n snackbar.label = config.label;\n snackbar.buttonLabel = config.buttonLabel!;\n snackbar.showClose = config.showClose!;\n snackbar.duration = config.duration!;\n\n return snackbar;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-snackbar': UmSnackbar;\n }\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const styles: import("lit").CSSResult;
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=snackbar.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snackbar.styles.d.ts","sourceRoot":"","sources":["../../src/snackbar/snackbar.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBA8ElB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
--u-elevation-level: var(--u-snackbar-elevation-level, 3);
|
|
5
|
+
--_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-medium, 16px));
|
|
6
|
+
position: fixed;
|
|
7
|
+
inset-inline: 0;
|
|
8
|
+
inset-block-end: 0;
|
|
9
|
+
padding: var(--_snackbar-margin);
|
|
10
|
+
z-index: var(--u-snackbar-z-index, 1070);
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.snackbar {
|
|
16
|
+
display: flex;
|
|
17
|
+
align-items: center;
|
|
18
|
+
min-height: var(--u-snackbar-height, 48px);
|
|
19
|
+
color: var(--u-snackbar-text-color, var(--u-color-on-inverse-surface, rgb(245, 239, 247)));
|
|
20
|
+
background-color: var(--u-snackbar-background-color, var(--u-color-inverse-surface, rgb(50, 47, 53)));
|
|
21
|
+
border-radius: var(--u-snackbar-shape, var(--u-shape-corner-extra-small, 4px));
|
|
22
|
+
animation-name: snackbar-fade-in;
|
|
23
|
+
animation-duration: 450ms;
|
|
24
|
+
animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);
|
|
25
|
+
animation-fill-mode: forwards;
|
|
26
|
+
min-width: var(--u-snackbar-min-width, 100%);
|
|
27
|
+
max-width: var(--u-snackbar-max-width, 100%);
|
|
28
|
+
}
|
|
29
|
+
.snackbar.dismiss {
|
|
30
|
+
animation-name: snackbar-fade-out;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
u-button {
|
|
34
|
+
color: var(--u-color-inverse-primary, );
|
|
35
|
+
margin-inline: var(--u-snackbar-text-button-margin, var(--u-spacing-small, 8px));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
u-icon-button {
|
|
39
|
+
color: var(--u-color-on-inverse-surface, rgb(245, 239, 247));
|
|
40
|
+
margin-inline: var(--u-snackbar-close-button-margin, var(--u-spacing-extra-small, 4px));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.label {
|
|
44
|
+
flex: 1;
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
color: var(--u-on-inverse-surface-color);
|
|
47
|
+
padding: var(--u-snackbar-text-margin, var(--u-spacing-medium, 16px));
|
|
48
|
+
line-height: 18px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@media (min-width: 840px) {
|
|
52
|
+
:host {
|
|
53
|
+
--_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-large, 24px));
|
|
54
|
+
}
|
|
55
|
+
.snackbar {
|
|
56
|
+
min-width: var(--u-snackbar-min-width, 288px);
|
|
57
|
+
max-width: var(--u-snackbar-max-width, 568px);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
@keyframes snackbar-fade-in {
|
|
61
|
+
0% {
|
|
62
|
+
opacity: 0;
|
|
63
|
+
transform: scale3d(0.5, 0.5, 1);
|
|
64
|
+
}
|
|
65
|
+
100% {
|
|
66
|
+
opacity: 1;
|
|
67
|
+
transform: scale3d(1, 1, 1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
@keyframes snackbar-fade-out {
|
|
71
|
+
0% {
|
|
72
|
+
opacity: 1;
|
|
73
|
+
transform: scale3d(1, 1, 1);
|
|
74
|
+
}
|
|
75
|
+
100% {
|
|
76
|
+
opacity: 0;
|
|
77
|
+
transform: scale3d(0.5, 0.5, 1);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
`;
|
|
81
|
+
//# sourceMappingURL=snackbar.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snackbar.styles.js","sourceRoot":"","sources":["../../src/snackbar/snackbar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8EzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --u-elevation-level: var(--u-snackbar-elevation-level, 3);\n --_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-medium, 16px));\n position: fixed;\n inset-inline: 0;\n inset-block-end: 0;\n padding: var(--_snackbar-margin);\n z-index: var(--u-snackbar-z-index, 1070);\n display: flex;\n justify-content: center;\n }\n\n .snackbar {\n display: flex;\n align-items: center;\n min-height: var(--u-snackbar-height, 48px);\n color: var(--u-snackbar-text-color, var(--u-color-on-inverse-surface, rgb(245, 239, 247)));\n background-color: var(--u-snackbar-background-color, var(--u-color-inverse-surface, rgb(50, 47, 53)));\n border-radius: var(--u-snackbar-shape, var(--u-shape-corner-extra-small, 4px));\n animation-name: snackbar-fade-in;\n animation-duration: 450ms;\n animation-timing-function: cubic-bezier(0.19, 1, 0.22, 1);\n animation-fill-mode: forwards;\n min-width: var(--u-snackbar-min-width, 100%);\n max-width: var(--u-snackbar-max-width, 100%);\n }\n .snackbar.dismiss {\n animation-name: snackbar-fade-out;\n }\n\n u-button {\n color: var(--u-color-inverse-primary, );\n margin-inline: var(--u-snackbar-text-button-margin, var(--u-spacing-small, 8px));\n }\n\n u-icon-button {\n color: var(--u-color-on-inverse-surface, rgb(245, 239, 247));\n margin-inline: var(--u-snackbar-close-button-margin, var(--u-spacing-extra-small, 4px));\n }\n\n .label {\n flex: 1;\n overflow: hidden;\n color: var(--u-on-inverse-surface-color);\n padding: var(--u-snackbar-text-margin, var(--u-spacing-medium, 16px));\n line-height: 18px;\n }\n\n @media (min-width: 840px) {\n :host {\n --_snackbar-margin: var(--u-snackbar-margin, var(--u-spacing-large, 24px));\n }\n .snackbar {\n min-width: var(--u-snackbar-min-width, 288px);\n max-width: var(--u-snackbar-max-width, 568px);\n }\n }\n @keyframes snackbar-fade-in {\n 0% {\n opacity: 0;\n transform: scale3d(0.5, 0.5, 1);\n }\n 100% {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n }\n @keyframes snackbar-fade-out {\n 0% {\n opacity: 1;\n transform: scale3d(1, 1, 1);\n }\n 100% {\n opacity: 0;\n transform: scale3d(0.5, 0.5, 1);\n }\n }\n`;\n"]}
|
package/theme/css-var-builder.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-var-builder.js","sourceRoot":"","sources":["../../src/theme/css-var-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"css-var-builder.js","sourceRoot":"","sources":["../../src/theme/css-var-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,OAAO,aAAa;IAIxB;QAFQ,YAAO,GAAG,EAAE,CAAC;IAGrB,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAED,GAAG,CAAC,IAAY,EAAE,KAAa;QAE7B,MAAM,MAAM,GAAG,KAAK,IAAI,KAAK,KAAK;CACrC,CAAC;QAEE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAA;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,IAAY;QACpC,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEtE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF","sourcesContent":["import { hexFromArgb } from '@material/material-color-utilities';\n\nimport { RgbColor } from './rgb-color';\n\nexport class CssVarBuilder {\n\n private content = '';\n\n private constructor() {\n }\n\n static create(): CssVarBuilder {\n return new CssVarBuilder();\n }\n\n add(name: string, value: string): CssVarBuilder {\n\n const cssVar = ` ${name}: ${value};\n`;\n\n this.content += cssVar\n\n return this;\n }\n\n addFromArgb(name: string, argb: number): CssVarBuilder {\n this.add(`--u-color-${name}`, hexFromArgb(argb));\n this.add(`--u-color-${name}-rgb`, RgbColor.fromArgb(argb).toString());\n\n return this;\n }\n\n build(): string {\n return this.content;\n }\n}\n"]}
|
package/theme/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './theme-builder
|
|
1
|
+
export * from './theme-builder';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/theme/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
package/theme/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './theme-builder
|
|
1
|
+
export * from './theme-builder';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './theme-builder';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neutral-colors.d.ts","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"neutral-colors.d.ts","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAC;AAE9B,eAAO,MAAM,aAAa,EAAE,KAAK,EAgBhC,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,EAKvC,CAAA"}
|
package/theme/neutral-colors.js
CHANGED
|
@@ -8,10 +8,15 @@ export const neutralColors = [
|
|
|
8
8
|
{ name: 'surface-container-high', lightTone: 92, darkTone: 17 },
|
|
9
9
|
{ name: 'surface-container-highest', lightTone: 90, darkTone: 22 },
|
|
10
10
|
{ name: 'on-surface', lightTone: 10, darkTone: 90 },
|
|
11
|
+
{ name: 'light', fixedTone: 98 },
|
|
12
|
+
{ name: 'on-light', fixedTone: 10 },
|
|
13
|
+
{ name: 'dark', fixedTone: 6 },
|
|
14
|
+
{ name: 'on-dark', fixedTone: 90 },
|
|
11
15
|
{ name: 'scrim', fixedTone: 0 },
|
|
12
16
|
{ name: 'shadow', fixedTone: 0 },
|
|
13
17
|
];
|
|
14
18
|
export const neutralVariantColors = [
|
|
19
|
+
{ name: 'surface-variant', lightTone: 90, darkTone: 30 },
|
|
15
20
|
{ name: 'on-surface-variant', lightTone: 30, darkTone: 80 },
|
|
16
21
|
{ name: 'outline', lightTone: 50, darkTone: 60 },
|
|
17
22
|
{ name: 'outline-variant', lightTone: 80, darkTone: 30 }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"neutral-colors.js","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IACnD,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1D,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAY;IAC3C,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;CACzD,CAAA","sourcesContent":["import {Color} from './color
|
|
1
|
+
{"version":3,"file":"neutral-colors.js","sourceRoot":"","sources":["../../src/theme/neutral-colors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAY;IACpC,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACvD,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE;IACnD,EAAE,IAAI,EAAE,0BAA0B,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE;IACjE,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC9D,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1D,EAAE,IAAI,EAAE,wBAAwB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC/D,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClE,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;IAChC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;IACnC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE;IAC9B,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;IAClC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;CACjC,CAAA;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAY;IAC3C,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxD,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC3D,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IAChD,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;CACzD,CAAA","sourcesContent":["import {Color} from './color';\n\nexport const neutralColors: Color[] = [\n { name: 'surface', lightTone: 98, darkTone: 6 },\n { name: 'surface-bright', lightTone: 98, darkTone: 24 },\n { name: 'surface-dim', lightTone: 87, darkTone: 6 },\n { name: 'surface-container-lowest', lightTone: 100, darkTone: 4 },\n { name: 'surface-container-low', lightTone: 96, darkTone: 10 },\n { name: 'surface-container', lightTone: 94, darkTone: 12 },\n { name: 'surface-container-high', lightTone: 92, darkTone: 17 },\n { name: 'surface-container-highest', lightTone: 90, darkTone: 22 },\n { name: 'on-surface', lightTone: 10, darkTone: 90 },\n { name: 'light', fixedTone: 98 },\n { name: 'on-light', fixedTone: 10 },\n { name: 'dark', fixedTone: 6 },\n { name: 'on-dark', fixedTone: 90 },\n { name: 'scrim', fixedTone: 0 },\n { name: 'shadow', fixedTone: 0 },\n]\n\nexport const neutralVariantColors: Color[] = [\n { name: 'surface-variant', lightTone: 90, darkTone: 30 },\n { name: 'on-surface-variant', lightTone: 30, darkTone: 80 },\n { name: 'outline', lightTone: 50, darkTone: 60 },\n { name: 'outline-variant', lightTone: 80, darkTone: 30 }\n]\n"]}
|
package/theme/theme-builder.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { TonalPalette } from '@material/material-color-utilities';
|
|
2
|
-
import { ThemeColor } from './theme-color
|
|
2
|
+
import { ThemeColor } from './theme-color';
|
|
3
3
|
export declare class ThemeBuilder {
|
|
4
4
|
cssClass: string | null;
|
|
5
5
|
colors: ThemeColor[];
|
|
6
|
-
commonColors: ThemeColor[];
|
|
7
6
|
neutralColorPalette: TonalPalette;
|
|
8
7
|
neutralVariantColorPalette: TonalPalette;
|
|
9
8
|
private partial;
|
|
@@ -12,7 +11,7 @@ export declare class ThemeBuilder {
|
|
|
12
11
|
static createPartial(): ThemeBuilder;
|
|
13
12
|
addColorFromHex(name: string, hex: string): ThemeBuilder;
|
|
14
13
|
addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder;
|
|
15
|
-
|
|
14
|
+
addFixedColor(name: string, hex: string): ThemeBuilder;
|
|
16
15
|
setCssClass(cssClass: string): ThemeBuilder;
|
|
17
16
|
private ensureCssClassStartsWithDot;
|
|
18
17
|
private ensureThemeColors;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAK5F,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAK5F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAO3C,qBAAa,YAAY;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,CAAM;IAC1B,mBAAmB,EAAG,YAAY,CAAC;IACnC,0BAA0B,EAAG,YAAY,CAAC;IAE1C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY;IAKpD,MAAM,CAAC,aAAa,IAAI,YAAY;IAOpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAOxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAatE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAStD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAK3C,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,mBAAmB;IAkB3B,OAAO,CAAC,0BAA0B;IAQlC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM;IAS3D,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;IAsCpB,KAAK,IAAI,MAAM;CAoBhB"}
|
package/theme/theme-builder.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';
|
|
2
|
-
import { CssVarBuilder } from './css-var-builder
|
|
3
|
-
import { neutralColors, neutralVariantColors } from './neutral-colors
|
|
2
|
+
import { CssVarBuilder } from './css-var-builder';
|
|
3
|
+
import { neutralColors, neutralVariantColors } from './neutral-colors';
|
|
4
4
|
function getCss(selector, content) {
|
|
5
5
|
return `${selector} {
|
|
6
6
|
${content}}`;
|
|
@@ -8,7 +8,6 @@ ${content}}`;
|
|
|
8
8
|
export class ThemeBuilder {
|
|
9
9
|
constructor() {
|
|
10
10
|
this.colors = [];
|
|
11
|
-
this.commonColors = [];
|
|
12
11
|
this.partial = false;
|
|
13
12
|
this.cssClass = null;
|
|
14
13
|
}
|
|
@@ -32,13 +31,17 @@ export class ThemeBuilder {
|
|
|
32
31
|
this.colors.push({ name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette });
|
|
33
32
|
this.colors.push({ name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette });
|
|
34
33
|
this.colors.push({ name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette });
|
|
35
|
-
this.colors.push({ name: `${name}-fixed-dim`, fixedTone:
|
|
34
|
+
this.colors.push({ name: `${name}-fixed-dim`, fixedTone: 80, tonalPalette: palette });
|
|
36
35
|
this.colors.push({ name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette });
|
|
37
36
|
this.colors.push({ name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette });
|
|
38
37
|
return this;
|
|
39
38
|
}
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
addFixedColor(name, hex) {
|
|
40
|
+
const palette = TonalPalette.fromInt(argbFromHex(hex));
|
|
41
|
+
this.colors.push({ name, fixedTone: 80, tonalPalette: palette });
|
|
42
|
+
this.colors.push({ name: `on-${name}`, fixedTone: 15, tonalPalette: palette });
|
|
43
|
+
this.colors.push({ name: `${name}-container`, fixedTone: 90, tonalPalette: palette });
|
|
44
|
+
this.colors.push({ name: `on-${name}-container`, fixedTone: 15, tonalPalette: palette });
|
|
42
45
|
return this;
|
|
43
46
|
}
|
|
44
47
|
setCssClass(cssClass) {
|
|
@@ -60,6 +63,18 @@ export class ThemeBuilder {
|
|
|
60
63
|
if (!this.colors.find(c => c.name === 'tertiary')) {
|
|
61
64
|
this.addColorFromPalette('tertiary', palette.a3);
|
|
62
65
|
}
|
|
66
|
+
if (!this.colors.find(c => c.name === 'success')) {
|
|
67
|
+
this.addFixedColor('success', '#007e33');
|
|
68
|
+
}
|
|
69
|
+
if (!this.colors.find(c => c.name === 'info')) {
|
|
70
|
+
this.addFixedColor('info', '#33b5e5');
|
|
71
|
+
}
|
|
72
|
+
if (!this.colors.find(c => c.name === 'warning')) {
|
|
73
|
+
this.addFixedColor('warning', '#ffbb33');
|
|
74
|
+
}
|
|
75
|
+
if (!this.colors.find(c => c.name === 'error')) {
|
|
76
|
+
this.addColorFromHex('error', '#b3261e');
|
|
77
|
+
}
|
|
63
78
|
if (!this.neutralColorPalette) {
|
|
64
79
|
this.neutralColorPalette = palette.n1;
|
|
65
80
|
}
|
|
@@ -71,10 +86,14 @@ export class ThemeBuilder {
|
|
|
71
86
|
const builder = CssVarBuilder.create();
|
|
72
87
|
this.addColors(builder, neutralColors, this.neutralColorPalette, dark);
|
|
73
88
|
builder
|
|
74
|
-
.add('--u-color-
|
|
75
|
-
.add('--u-color-
|
|
76
|
-
.add('--u-color-
|
|
77
|
-
.add('--u-color-
|
|
89
|
+
.add('--u-color-body', "var(--u-color-surface)")
|
|
90
|
+
.add('--u-color-body-rgb', "var(--u-color-surface-rgb)")
|
|
91
|
+
.add('--u-color-inverse-body', "var(--u-color-inverse-surface)")
|
|
92
|
+
.add('--u-color-inverse-body-rgb', "var(--u-color-inverse-surface-rgb)")
|
|
93
|
+
.add('--u-color-on-body', "var(--u-color-on-surface)")
|
|
94
|
+
.add('--u-color-on-body-rgb', "var(--u-color-on-surface-rgb)")
|
|
95
|
+
.add('--u-color-on-inverse-body', "var(--u-color-on-inverse-surface)")
|
|
96
|
+
.add('--u-color-on-inverse-body-rgb', "var(--u-color-on-inverse-surface-rgb)");
|
|
78
97
|
return builder.build();
|
|
79
98
|
}
|
|
80
99
|
getNeutralVariantVariables(dark) {
|
|
@@ -107,7 +126,9 @@ export class ThemeBuilder {
|
|
|
107
126
|
}
|
|
108
127
|
addToneColor(builder, color, palette, dark) {
|
|
109
128
|
if (color.fixedTone !== undefined) {
|
|
110
|
-
|
|
129
|
+
if (!dark) {
|
|
130
|
+
builder.addFromArgb(color.name, palette.tone(color.fixedTone));
|
|
131
|
+
}
|
|
111
132
|
return;
|
|
112
133
|
}
|
|
113
134
|
const tone = dark
|
|
@@ -116,15 +137,20 @@ export class ThemeBuilder {
|
|
|
116
137
|
const inverseTone = dark
|
|
117
138
|
? color.lightTone
|
|
118
139
|
: color.darkTone;
|
|
140
|
+
const inverseName = `inverse-${color.name}`.replace('inverse-on', 'on-inverse');
|
|
119
141
|
builder
|
|
120
142
|
.addFromArgb(color.name, palette.tone(tone))
|
|
121
|
-
.addFromArgb(
|
|
143
|
+
.addFromArgb(inverseName, palette.tone(inverseTone));
|
|
144
|
+
if (color.name === 'surface' || color.name === 'on-surface') {
|
|
145
|
+
const prefix = color.name.startsWith('on-')
|
|
146
|
+
? 'on-'
|
|
147
|
+
: '';
|
|
148
|
+
builder.addFromArgb(`${prefix}light-surface`, palette.tone(color.lightTone));
|
|
149
|
+
builder.addFromArgb(`${prefix}dark-surface`, palette.tone(color.darkTone));
|
|
150
|
+
}
|
|
122
151
|
if (dark) {
|
|
123
152
|
return;
|
|
124
153
|
}
|
|
125
|
-
builder
|
|
126
|
-
.addFromArgb(`light-${color.name}`, palette.tone(color.lightTone))
|
|
127
|
-
.addFromArgb(`dark-${color.name}`, palette.tone(color.darkTone));
|
|
128
154
|
}
|
|
129
155
|
build() {
|
|
130
156
|
this.ensureCssClassStartsWithDot();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-builder.js","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color.js';\nimport { CssVarBuilder } from './css-var-builder.js';\nimport { neutralColors, neutralVariantColors } from './neutral-colors.js';\nimport { ThemeColor } from './theme-color.js';\n\nfunction getCss(selector: string, content: string): string {\n return `${selector} {\n${content}}`;\n}\n\nexport class ThemeBuilder {\n cssClass: string | null;\n colors: ThemeColor[] = [];\n commonColors: ThemeColor[] = [];\n neutralColorPalette!: TonalPalette;\n neutralVariantColorPalette!: TonalPalette;\n\n private partial = false;\n\n private constructor() {\n this.cssClass = null;\n }\n\n static create(primaryColorHex: string): ThemeBuilder {\n return new ThemeBuilder()\n .addColorFromHex('primary', primaryColorHex);\n }\n\n static createPartial(): ThemeBuilder {\n const themeBuilder = new ThemeBuilder();\n themeBuilder.partial = true;\n\n return themeBuilder;\n }\n\n addColorFromHex(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n\n this.addColorFromPalette(name, palette);\n return this;\n }\n\n addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder {\n this.colors.push({name, lightTone: 40, darkTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, lightTone: 100, darkTone: 20, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette});\n\n this.colors.push({name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `${name}-fixed-dim`, fixedTone: 800, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette});\n return this;\n }\n\n addCommonColor(name: string, hex: string): ThemeBuilder {\n this.commonColors.push({name, tonalPalette: TonalPalette.fromInt(argbFromHex(hex))})\n return this;\n }\n\n setCssClass(cssClass: string): ThemeBuilder {\n this.cssClass = cssClass;\n return this;\n }\n\n private ensureCssClassStartsWithDot(): void {\n if (!this.cssClass || this.cssClass.startsWith('.')) {\n return;\n }\n\n this.cssClass = `.${this.cssClass}`;\n }\n\n private ensureThemeColors(): void {\n\n const primaryColor = this.colors.find(c => c.name === 'primary')!;\n\n const palette = CorePalette.of(primaryColor.tonalPalette.tone(40));\n\n if (!this.colors.find(c => c.name === 'secondary')) {\n this.addColorFromPalette('secondary', palette.a2);\n }\n\n if (!this.colors.find(c => c.name === 'tertiary')) {\n this.addColorFromPalette('tertiary', palette.a3);\n }\n\n if (!this.neutralColorPalette) {\n this.neutralColorPalette = palette.n1;\n }\n\n if (!this.neutralVariantColorPalette) {\n this.neutralVariantColorPalette = palette.n2;\n }\n }\n\n private getNeutralVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralColors, this.neutralColorPalette, dark);\n\n builder\n .add('--u-color-background', \"var(--u-color-surface-container-highest)\")\n .add('--u-color-inverse-background', \"var(--u-color-inverse-surface-container-highest)\")\n .add('--u-color-on-background', \"var(--u-color-on-surface)\")\n .add('--u-color-on-inverse-background', \"var(--u-color-inverse-on-surface)\");\n\n return builder.build();\n }\n\n private getNeutralVariantVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralVariantColors, this.neutralColorPalette, dark);\n\n return builder.build()\n }\n\n getColorVariables(color: ThemeColor, dark: boolean): string {\n\n const builder = CssVarBuilder.create();\n\n this.addToneColor(builder, color, color.tonalPalette, dark)\n\n return builder.build();\n }\n\n private getColorsVariables(dark: boolean): string {\n let variables = '';\n\n for (const color of this.colors) {\n variables += this.getColorVariables(color, dark);\n }\n\n if (this.neutralColorPalette) {\n variables += this.getNeutralVariables(dark);\n }\n\n if (this.neutralVariantColorPalette) {\n variables += this.getNeutralVariantVariables(dark);\n }\n\n return variables;\n }\n\n private addColors(builder: CssVarBuilder, colors: Color[], palette: TonalPalette, dark: boolean): void {\n for (const color of colors) {\n this.addToneColor(builder, color, palette, dark);\n }\n }\n\n private addToneColor(builder: CssVarBuilder, color: Color, palette: TonalPalette, dark: boolean): void {\n if (color.fixedTone !== undefined) {\n builder.addFromArgb(color.name, palette.tone(color.fixedTone));\n return;\n }\n\n const tone = dark\n ? color.darkTone!\n : color.lightTone!;\n\n const inverseTone = dark\n ? color.lightTone!\n : color.darkTone!;\n\n builder\n .addFromArgb(color.name, palette.tone(tone))\n .addFromArgb(`inverse-${color.name}`, palette.tone(inverseTone));\n\n if (dark) {\n return;\n }\n\n builder\n .addFromArgb(`light-${color.name}`, palette.tone(color.lightTone!))\n .addFromArgb(`dark-${color.name}`, palette.tone(color.darkTone!));\n }\n\n build(): string {\n\n this.ensureCssClassStartsWithDot();\n\n const lightCssClass = this.cssClass ?? ':root';\n const darkCssClass = this.cssClass\n ? `${this.cssClass}.u-dark-mode,\n${this.cssClass} .u-dark-mode`\n : '.u-dark-mode';\n\n if (!this.partial) {\n this.ensureThemeColors();\n }\n\n const variables = `${getCss(lightCssClass, `${this.getColorsVariables(false)}`)}\n\n${getCss(darkCssClass, this.getColorsVariables(true))}\n`;\n return variables;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"theme-builder.js","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color';\nimport { CssVarBuilder } from './css-var-builder';\nimport { neutralColors, neutralVariantColors } from './neutral-colors';\nimport { ThemeColor } from './theme-color';\n\nfunction getCss(selector: string, content: string): string {\n return `${selector} {\n${content}}`;\n}\n\nexport class ThemeBuilder {\n cssClass: string | null;\n colors: ThemeColor[] = [];\n neutralColorPalette!: TonalPalette;\n neutralVariantColorPalette!: TonalPalette;\n\n private partial = false;\n\n private constructor() {\n this.cssClass = null;\n }\n\n static create(primaryColorHex: string): ThemeBuilder {\n return new ThemeBuilder()\n .addColorFromHex('primary', primaryColorHex);\n }\n\n static createPartial(): ThemeBuilder {\n const themeBuilder = new ThemeBuilder();\n themeBuilder.partial = true;\n\n return themeBuilder;\n }\n\n addColorFromHex(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n\n this.addColorFromPalette(name, palette);\n return this;\n }\n\n addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder {\n this.colors.push({name, lightTone: 40, darkTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, lightTone: 100, darkTone: 20, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette});\n\n this.colors.push({name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `${name}-fixed-dim`, fixedTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette});\n return this;\n }\n\n addFixedColor(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n this.colors.push({name, fixedTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, fixedTone: 15, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, fixedTone: 15, tonalPalette: palette});\n return this;\n }\n\n setCssClass(cssClass: string): ThemeBuilder {\n this.cssClass = cssClass;\n return this;\n }\n\n private ensureCssClassStartsWithDot(): void {\n if (!this.cssClass || this.cssClass.startsWith('.')) {\n return;\n }\n\n this.cssClass = `.${this.cssClass}`;\n }\n\n private ensureThemeColors(): void {\n\n const primaryColor = this.colors.find(c => c.name === 'primary')!;\n\n const palette = CorePalette.of(primaryColor.tonalPalette.tone(40));\n\n if (!this.colors.find(c => c.name === 'secondary')) {\n this.addColorFromPalette('secondary', palette.a2);\n }\n\n if (!this.colors.find(c => c.name === 'tertiary')) {\n this.addColorFromPalette('tertiary', palette.a3);\n }\n\n if (!this.colors.find(c => c.name === 'success')) {\n this.addFixedColor('success', '#007e33');\n }\n\n if (!this.colors.find(c => c.name === 'info')) {\n this.addFixedColor('info', '#33b5e5');\n }\n\n if (!this.colors.find(c => c.name === 'warning')) {\n this.addFixedColor('warning', '#ffbb33');\n }\n\n if (!this.colors.find(c => c.name === 'error')) {\n this.addColorFromHex('error', '#b3261e');\n }\n\n if (!this.neutralColorPalette) {\n this.neutralColorPalette = palette.n1;\n }\n\n if (!this.neutralVariantColorPalette) {\n this.neutralVariantColorPalette = palette.n2;\n }\n }\n\n private getNeutralVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralColors, this.neutralColorPalette, dark);\n\n builder\n .add('--u-color-body', \"var(--u-color-surface)\")\n .add('--u-color-body-rgb', \"var(--u-color-surface-rgb)\")\n .add('--u-color-inverse-body', \"var(--u-color-inverse-surface)\")\n .add('--u-color-inverse-body-rgb', \"var(--u-color-inverse-surface-rgb)\")\n .add('--u-color-on-body', \"var(--u-color-on-surface)\")\n .add('--u-color-on-body-rgb', \"var(--u-color-on-surface-rgb)\")\n .add('--u-color-on-inverse-body', \"var(--u-color-on-inverse-surface)\")\n .add('--u-color-on-inverse-body-rgb', \"var(--u-color-on-inverse-surface-rgb)\");\n\n return builder.build();\n }\n\n private getNeutralVariantVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralVariantColors, this.neutralColorPalette, dark);\n\n return builder.build()\n }\n\n getColorVariables(color: ThemeColor, dark: boolean): string {\n\n const builder = CssVarBuilder.create();\n\n this.addToneColor(builder, color, color.tonalPalette, dark)\n\n return builder.build();\n }\n\n private getColorsVariables(dark: boolean): string {\n let variables = '';\n\n for (const color of this.colors) {\n variables += this.getColorVariables(color, dark);\n }\n\n if (this.neutralColorPalette) {\n variables += this.getNeutralVariables(dark);\n }\n\n if (this.neutralVariantColorPalette) {\n variables += this.getNeutralVariantVariables(dark);\n }\n\n return variables;\n }\n\n private addColors(builder: CssVarBuilder, colors: Color[], palette: TonalPalette, dark: boolean): void {\n for (const color of colors) {\n this.addToneColor(builder, color, palette, dark);\n }\n }\n\n private addToneColor(builder: CssVarBuilder, color: Color, palette: TonalPalette, dark: boolean): void {\n if (color.fixedTone !== undefined) {\n\n if (!dark) {\n builder.addFromArgb(color.name, palette.tone(color.fixedTone));\n }\n\n return;\n }\n\n const tone = dark\n ? color.darkTone!\n : color.lightTone!;\n\n const inverseTone = dark\n ? color.lightTone!\n : color.darkTone!;\n\n const inverseName = `inverse-${color.name}`.replace('inverse-on', 'on-inverse');\n\n builder\n .addFromArgb(color.name, palette.tone(tone))\n .addFromArgb(inverseName, palette.tone(inverseTone));\n\n if (color.name === 'surface' || color.name === 'on-surface') {\n const prefix = color.name.startsWith('on-')\n ? 'on-'\n : '';\n\n builder.addFromArgb(`${prefix}light-surface`, palette.tone(color.lightTone!))\n builder.addFromArgb(`${prefix}dark-surface`, palette.tone(color.darkTone!))\n }\n\n if (dark) {\n return;\n }\n }\n\n build(): string {\n\n this.ensureCssClassStartsWithDot();\n\n const lightCssClass = this.cssClass ?? ':root';\n const darkCssClass = this.cssClass\n ? `${this.cssClass}.u-dark-mode,\n${this.cssClass} .u-dark-mode`\n : '.u-dark-mode';\n\n if (!this.partial) {\n this.ensureThemeColors();\n }\n\n const variables = `${getCss(lightCssClass, `${this.getColorsVariables(false)}`)}\n\n${getCss(darkCssClass, this.getColorsVariables(true))}\n`;\n return variables;\n }\n}\n"]}
|
package/theme/theme-color.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-color.d.ts","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"theme-color.d.ts","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,UAAW,SAAQ,KAAK;IACvC,YAAY,EAAE,YAAY,CAAC;CAC5B"}
|
package/theme/theme-color.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-color.js","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"","sourcesContent":["import { TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color
|
|
1
|
+
{"version":3,"file":"theme-color.js","sourceRoot":"","sources":["../../src/theme/theme-color.ts"],"names":[],"mappings":"","sourcesContent":["import { TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color';\n\nexport interface ThemeColor extends Color {\n tonalPalette: TonalPalette;\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-base.styles.d.ts","sourceRoot":"","sources":["../../src/button/button-base.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAwElB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"button-base.styles.js","sourceRoot":"","sources":["../../src/button/button-base.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n --_color-primary: var(--u-color-primary, rgb(103, 80, 164));\n -webkit-tap-highlight-color: transparent;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n vertical-align: baseline;\n position: relative;\n white-space: nowrap;\n font-family: var(--u-font-family-base, system-ui);\n transition: color 150ms ease-in-out, background-color 150ms ease-in-out;\n }\n\n :host([disabled]) {\n --u-elevation-level: 0 !important;\n background-color: var(--u-button-disabled-background-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), 0.12)) !important;\n color: var(--u-button-disabled-text-color, rgba(var(--u-color-on-surface-rgb, 29, 27, 32), 0.38)) !important;\n }\n\n :host([disabled]) .button {\n cursor: default;\n }\n\n * {\n color: inherit;\n }\n\n u-elevation {\n z-index: -1;\n }\n\n .button {\n cursor: pointer;\n position: absolute;\n inset: 0;\n font-family: inherit;\n border-radius: inherit;\n color: inherit;\n border: none;\n margin: 0;\n padding: 0;\n text-align: center;\n white-space: nowrap;\n background: transparent;\n user-select: none;\n text-decoration: none;\n outline: 0;\n z-index: 0;\n }\n\n .button:focus-visible {\n animation: offset-pulse 400ms ease;\n animation-fill-mode: forwards;\n outline-offset: 2px;\n }\n\n ::slotted([slot=icon]) {\n display: inline-block;\n }\n\n @keyframes offset-pulse {\n 0% {\n outline: 4px solid var(--_color-primary);\n }\n 50% {\n outline: 8px solid var(--_color-primary);\n }\n 100% {\n outline: 4px solid var(--_color-primary);\n }\n }\n`;\n"]}
|
package/table/table-body.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { HTMLTemplateResult, LitElement } from 'lit';
|
|
2
|
-
export declare class UmTableBody extends LitElement {
|
|
3
|
-
static styles: import("lit").CSSResult[];
|
|
4
|
-
protected render(): HTMLTemplateResult;
|
|
5
|
-
}
|
|
6
|
-
declare global {
|
|
7
|
-
interface HTMLElementTagNameMap {
|
|
8
|
-
'u-tbody': UmTableBody;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=table-body.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-body.d.ts","sourceRoot":"","sources":["../../src/table/table-body.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAM3D,qBACa,WAAY,SAAQ,UAAU;IAEzC,OAAgB,MAAM,4BAAwB;cAE3B,MAAM,IAAI,kBAAkB;CAGhD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,WAAW,CAAC;KACxB;CACF"}
|
package/table/table-body.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
import { html, LitElement } from 'lit';
|
|
8
|
-
import { customElement } from 'lit/decorators.js';
|
|
9
|
-
import { styles as baseStyles } from '../shared/base.styles';
|
|
10
|
-
import { styles } from './table-body.styles';
|
|
11
|
-
let UmTableBody = class UmTableBody extends LitElement {
|
|
12
|
-
render() {
|
|
13
|
-
return html `<slot></slot>`;
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
UmTableBody.styles = [baseStyles, styles];
|
|
17
|
-
UmTableBody = __decorate([
|
|
18
|
-
customElement('u-tbody')
|
|
19
|
-
], UmTableBody);
|
|
20
|
-
export { UmTableBody };
|
|
21
|
-
//# sourceMappingURL=table-body.js.map
|
package/table/table-body.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-body.js","sourceRoot":"","sources":["../../src/table/table-body.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGtC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAItB,MAAM;QACvB,OAAO,IAAI,CAAA,eAAe,CAAC;IAC7B,CAAC;;AAJe,kBAAM,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,AAAvB,CAAwB;AAFnC,WAAW;IADvB,aAAa,CAAC,SAAS,CAAC;GACZ,WAAW,CAOvB","sourcesContent":["import { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles';\nimport { styles } from './table-body.styles';\n\n@customElement('u-tbody')\nexport class UmTableBody extends LitElement {\n\n static override styles = [baseStyles, styles];\n\n protected override render(): HTMLTemplateResult {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-tbody': UmTableBody;\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-body.styles.d.ts","sourceRoot":"","sources":["../../src/table/table-body.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAQlB,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { css } from 'lit';
|
|
2
|
-
export const styles = css `
|
|
3
|
-
:host {
|
|
4
|
-
display: table-row-group;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
::slotted(u-tr:not(:first-child)) {
|
|
8
|
-
border-top: 1px solid var(--u-color-outline-variant, rgb(202, 196, 208));
|
|
9
|
-
}
|
|
10
|
-
`;
|
|
11
|
-
//# sourceMappingURL=table-body.styles.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-body.styles.js","sourceRoot":"","sources":["../../src/table/table-body.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;CAQzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n display: table-row-group;\n }\n\n ::slotted(u-tr:not(:first-child)) {\n border-top: 1px solid var(--u-color-outline-variant, rgb(202, 196, 208));\n }\n`;\n"]}
|