@matter-server/dashboard 0.2.6 → 0.2.7-alpha.0-20260118-993a1c7
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 +16 -0
- package/dist/esm/client/models/descriptions.js +1754 -1754
- package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js +8 -4
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
- package/dist/esm/entrypoint/main.d.ts +1 -1
- package/dist/esm/entrypoint/main.d.ts.map +1 -1
- package/dist/esm/entrypoint/main.js +1 -0
- package/dist/esm/entrypoint/main.js.map +1 -1
- package/dist/esm/pages/components/header.d.ts +8 -0
- package/dist/esm/pages/components/header.d.ts.map +1 -1
- package/dist/esm/pages/components/header.js +56 -6
- package/dist/esm/pages/components/header.js.map +1 -1
- package/dist/esm/pages/matter-dashboard-app.d.ts +6 -1
- package/dist/esm/pages/matter-dashboard-app.d.ts.map +1 -1
- package/dist/esm/pages/matter-dashboard-app.js +119 -24
- package/dist/esm/pages/matter-dashboard-app.js.map +1 -1
- package/dist/esm/util/theme-service.d.ts +27 -0
- package/dist/esm/util/theme-service.d.ts.map +1 -0
- package/dist/esm/util/theme-service.js +71 -0
- package/dist/esm/util/theme-service.js.map +6 -0
- package/dist/web/index.html +35 -0
- package/dist/web/js/{commission-node-dialog--19-sX9D.js → commission-node-dialog-DGw5qDgH.js} +5 -5
- package/dist/web/js/{commission-node-existing-DY6SnsHb.js → commission-node-existing-CHyyeC8y.js} +4 -4
- package/dist/web/js/{commission-node-thread-CXquVvK5.js → commission-node-thread-iRDSlidy.js} +4 -4
- package/dist/web/js/{commission-node-wifi-VQGVOrr7.js → commission-node-wifi-C4YNR3bG.js} +4 -4
- package/dist/web/js/{dialog-box-qX-alVZJ.js → dialog-box-ag-xOaYh.js} +2 -2
- package/dist/web/js/{fire_event-B13DcOc9.js → fire_event-BeiEbHcE.js} +1 -1
- package/dist/web/js/main.js +140 -8
- package/dist/web/js/{matter-dashboard-app-CU3-L2nl.js → matter-dashboard-app-BxQ4W_uT.js} +13183 -13045
- package/dist/web/js/{node-binding-dialog-D4rr_G9I.js → node-binding-dialog-ClziphM0.js} +11 -7
- package/dist/web/js/{outlined-text-field-CtlEkpbk.js → outlined-text-field-B-CiqgEJ.js} +2 -2
- package/dist/web/js/{prevent_default-Dw7ifAL-.js → prevent_default-Bs2sUnny.js} +1 -1
- package/package.json +3 -3
- package/src/client/models/descriptions.ts +1754 -1754
- package/src/components/dialogs/binding/node-binding-dialog.ts +8 -4
- package/src/entrypoint/main.ts +1 -0
- package/src/pages/components/header.ts +57 -8
- package/src/pages/matter-dashboard-app.ts +123 -26
- package/src/util/theme-service.ts +98 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-binding-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6CAA6C,CAAC;AAErD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAqC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAcrD,qBACa,iBAAkB,SAAQ,UAAU;IAGtC,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGzB,QAAQ,EAAG,MAAM,CAAC;IAGlB,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;YAQP,oBAAoB;IAclC,0EAA0E;IAC1E,OAAO,CAAC,iBAAiB;YAKX,oBAAoB;IAgBlC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,oBAAoB;YAId,kBAAkB;IAgBhC,OAAO,CAAC,0BAA0B;YAKpB,cAAc;IAuB5B,kFAAkF;IAClF,OAAO,CAAC,eAAe;IASvB,6FAA6F;IAC7F,OAAO,CAAC,oBAAoB;YAcd,YAAY;IAkBpB,iBAAiB;IAkEvB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,QAAQ;cAcG,MAAM;IAqFzB,OAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"node-binding-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,6CAA6C,CAAC;AAErD,OAAO,iCAAiC,CAAC;AAEzC,OAAO,EAAqC,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAcrD,qBACa,iBAAkB,SAAQ,UAAU;IAGtC,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAGzB,QAAQ,EAAG,MAAM,CAAC;IAGlB,OAAO,CAAC,aAAa,CAAuB;IAG5C,OAAO,CAAC,eAAe,CAAuB;IAG9C,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,aAAa;YAQP,oBAAoB;IAclC,0EAA0E;IAC1E,OAAO,CAAC,iBAAiB;YAKX,oBAAoB;IAgBlC,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,oBAAoB;YAId,kBAAkB;IAgBhC,OAAO,CAAC,0BAA0B;YAKpB,cAAc;IAuB5B,kFAAkF;IAClF,OAAO,CAAC,eAAe;IASvB,6FAA6F;IAC7F,OAAO,CAAC,oBAAoB;YAcd,YAAY;IAkBpB,iBAAiB;IAkEvB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,QAAQ;cAcG,MAAM;IAqFzB,OAAgB,MAAM,0BAsCpB;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,qBAAqB,EAAE,iBAAiB,CAAC;KAC5C;CACJ"}
|
|
@@ -225,7 +225,7 @@ let NodeBindingDialog = class extends LitElement {
|
|
|
225
225
|
<md-list style="padding-bottom:18px;">
|
|
226
226
|
${Object.values(bindings).map(
|
|
227
227
|
(entry, index) => html`
|
|
228
|
-
<md-list-item
|
|
228
|
+
<md-list-item class="binding-item">
|
|
229
229
|
<div style="display:flex;gap:10px;">
|
|
230
230
|
<div>node:${entry["node"]}</div>
|
|
231
231
|
<div>endpoint:${entry["endpoint"]}</div>
|
|
@@ -295,9 +295,13 @@ let NodeBindingDialog = class extends LitElement {
|
|
|
295
295
|
}
|
|
296
296
|
};
|
|
297
297
|
NodeBindingDialog.styles = css`
|
|
298
|
+
.binding-item {
|
|
299
|
+
background: var(--md-sys-color-surface-container-high);
|
|
300
|
+
}
|
|
301
|
+
|
|
298
302
|
.inline-group {
|
|
299
303
|
display: flex;
|
|
300
|
-
border: 2px solid
|
|
304
|
+
border: 2px solid var(--md-sys-color-primary);
|
|
301
305
|
padding: 1px;
|
|
302
306
|
border-radius: 8px;
|
|
303
307
|
position: relative;
|
|
@@ -323,8 +327,8 @@ NodeBindingDialog.styles = css`
|
|
|
323
327
|
position: absolute;
|
|
324
328
|
left: 15px;
|
|
325
329
|
top: -12px;
|
|
326
|
-
background:
|
|
327
|
-
color:
|
|
330
|
+
background: var(--md-sys-color-primary);
|
|
331
|
+
color: var(--md-sys-color-on-primary);
|
|
328
332
|
padding: 3px 15px;
|
|
329
333
|
border-radius: 4px;
|
|
330
334
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],
|
|
4
|
-
"mappings": "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
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/entrypoint/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/entrypoint/main.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,0BAA0B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/entrypoint/main.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAC7B,OAAO;AAEP,eAAe,OAAO;AAClB,SAAO,kCAAkC;AAEzC,MAAI,MAAM;AAGV,QAAM,qBACF,SAAS,OAAO,SAAS,OAAO,KAChC,SAAS,KAAK,SAAS,gBAAgB,KACvC,SAAS,KAAK,SAAS,eAAe;AAE1C,MAAI,CAAC,oBAAoB;AAErB,QAAI,aAAa,aAAa,QAAQ,WAAW;AACjD,QAAI,CAAC,YAAY;AACb,YAAM,YAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC5D,YAAM,eAAe,UAAU,IAAI,KAAK;AACxC,mBAAa;AAAA,QACT;AAAA,QACA,gBAAgB;AAAA,MACpB;AACA,UAAI,CAAC,YAAY;AACb,cAAM,+BAA+B;AACrC;AAAA,MACJ;AACA,UAAI,cAAc;AAEd,gBAAQ,UAAU,CAAC,GAAG,IAAI,OAAO,SAAS,QAAQ;AAAA,MACtD;AACA,mBAAa,QAAQ,aAAa,UAAU;AAAA,IAChD;AACA,UAAM;AAAA,EACV,OAAO;AAGH,QAAI,UAAU,OAAO,SAAS,SAAS,OAAO,SAAS;AACvD,QAAI,QAAQ,SAAS,GAAG,GAAG;AACvB,gBAAU,QAAQ,MAAM,GAAG,EAAE;AAAA,IACjC;AACA,UAAM,QAAQ,QAAQ,QAAQ,IAAI,IAAI;AACtC,YAAQ,IAAI,8CAA8C,GAAG,EAAE;AAAA,EACnE;AAEA,QAAM,SAAS,IAAI,aAAa,GAAG;AACnC,SAAO,eAAe;AAEtB,QAAM,YAAY,SAAS,cAAc,sBAAsB;AAC/D,YAAU,SAAS;AACnB,WAAS,KAAK,OAAO,SAAS;AAClC;AAEA,KAAK;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -20,6 +20,14 @@ export declare class DashboardHeader extends LitElement {
|
|
|
20
20
|
backButton?: string;
|
|
21
21
|
actions?: HeaderAction[];
|
|
22
22
|
client?: MatterClient;
|
|
23
|
+
private _themePreference;
|
|
24
|
+
private _effectiveTheme;
|
|
25
|
+
private _unsubscribeTheme?;
|
|
26
|
+
connectedCallback(): void;
|
|
27
|
+
disconnectedCallback(): void;
|
|
28
|
+
private _cycleTheme;
|
|
29
|
+
private _getThemeIcon;
|
|
30
|
+
private _getThemeTooltip;
|
|
23
31
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
24
32
|
static styles: import("lit").CSSResult;
|
|
25
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/header.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,sCAAsC,CAAC;AAC9C,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/header.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,sCAAsC,CAAC;AAC9C,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,8BAA8B,CAAC;AAGtC,UAAU,YAAY;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,CAAC;CAChB;AAED,qBACa,eAAgB,SAAQ,UAAU;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAErC,MAAM,CAAC,EAAE,YAAY,CAAC;IAEpB,OAAO,CAAC,gBAAgB,CAA4C;IACpE,OAAO,CAAC,eAAe,CAA+C;IAE/E,OAAO,CAAC,iBAAiB,CAAC,CAAa;IAE9B,iBAAiB;IAQjB,oBAAoB;IAK7B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;cAWL,MAAM;IAuCzB,OAAgB,MAAM,0BAoBpB;CACL"}
|
|
@@ -18,11 +18,51 @@ import "@material/web/divider/divider";
|
|
|
18
18
|
import "@material/web/iconbutton/icon-button";
|
|
19
19
|
import "@material/web/list/list";
|
|
20
20
|
import "@material/web/list/list-item";
|
|
21
|
-
import { mdiArrowLeft, mdiLogout } from "@mdi/js";
|
|
21
|
+
import { mdiArrowLeft, mdiBrightnessAuto, mdiLogout, mdiWeatherNight, mdiWeatherSunny } from "@mdi/js";
|
|
22
22
|
import { LitElement, css, html, nothing } from "lit";
|
|
23
|
-
import { customElement, property } from "lit/decorators.js";
|
|
23
|
+
import { customElement, property, state } from "lit/decorators.js";
|
|
24
24
|
import "../../components/ha-svg-icon";
|
|
25
|
+
import { ThemeService } from "../../util/theme-service.js";
|
|
25
26
|
let DashboardHeader = class extends LitElement {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
this._themePreference = ThemeService.preference;
|
|
30
|
+
this._effectiveTheme = ThemeService.effectiveTheme;
|
|
31
|
+
}
|
|
32
|
+
connectedCallback() {
|
|
33
|
+
super.connectedCallback();
|
|
34
|
+
this._unsubscribeTheme = ThemeService.subscribe((theme) => {
|
|
35
|
+
this._effectiveTheme = theme;
|
|
36
|
+
this._themePreference = ThemeService.preference;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
disconnectedCallback() {
|
|
40
|
+
super.disconnectedCallback();
|
|
41
|
+
this._unsubscribeTheme?.();
|
|
42
|
+
}
|
|
43
|
+
_cycleTheme() {
|
|
44
|
+
ThemeService.cycleTheme();
|
|
45
|
+
}
|
|
46
|
+
_getThemeIcon() {
|
|
47
|
+
switch (this._themePreference) {
|
|
48
|
+
case "light":
|
|
49
|
+
return mdiWeatherSunny;
|
|
50
|
+
case "dark":
|
|
51
|
+
return mdiWeatherNight;
|
|
52
|
+
case "system":
|
|
53
|
+
return mdiBrightnessAuto;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
_getThemeTooltip() {
|
|
57
|
+
switch (this._themePreference) {
|
|
58
|
+
case "light":
|
|
59
|
+
return "Theme: Light";
|
|
60
|
+
case "dark":
|
|
61
|
+
return "Theme: Dark";
|
|
62
|
+
case "system":
|
|
63
|
+
return `Theme: System (${this._effectiveTheme})`;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
26
66
|
render() {
|
|
27
67
|
return html`
|
|
28
68
|
<div class="header">
|
|
@@ -43,12 +83,16 @@ let DashboardHeader = class extends LitElement {
|
|
|
43
83
|
</md-icon-button>
|
|
44
84
|
`;
|
|
45
85
|
})}
|
|
46
|
-
<!--
|
|
47
|
-
|
|
48
|
-
|
|
86
|
+
<!-- theme toggle button -->
|
|
87
|
+
<md-icon-button @click=${this._cycleTheme} .title=${this._getThemeTooltip()}>
|
|
88
|
+
<ha-svg-icon .path=${this._getThemeIcon()}></ha-svg-icon>
|
|
89
|
+
</md-icon-button>
|
|
90
|
+
<!-- optional logout button (only when client exists and not in production) -->
|
|
91
|
+
${this.client && !this.client.isProduction ? html`
|
|
92
|
+
<md-icon-button @click=${this.client.disconnect}>
|
|
49
93
|
<ha-svg-icon .path=${mdiLogout}></ha-svg-icon>
|
|
50
94
|
</md-icon-button>
|
|
51
|
-
`}
|
|
95
|
+
` : nothing}
|
|
52
96
|
</div>
|
|
53
97
|
</div>
|
|
54
98
|
`;
|
|
@@ -81,6 +125,12 @@ __decorateClass([
|
|
|
81
125
|
__decorateClass([
|
|
82
126
|
property()
|
|
83
127
|
], DashboardHeader.prototype, "actions", 2);
|
|
128
|
+
__decorateClass([
|
|
129
|
+
state()
|
|
130
|
+
], DashboardHeader.prototype, "_themePreference", 2);
|
|
131
|
+
__decorateClass([
|
|
132
|
+
state()
|
|
133
|
+
], DashboardHeader.prototype, "_effectiveTheme", 2);
|
|
84
134
|
DashboardHeader = __decorateClass([
|
|
85
135
|
customElement("dashboard-header")
|
|
86
136
|
], DashboardHeader);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/pages/components/header.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,cAAc,iBAAiB;
|
|
4
|
+
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,cAAc,mBAAmB,WAAW,iBAAiB,uBAAuB;AAC7F,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,UAAU,aAAa;AAC/C,OAAO;AACP,SAA0C,oBAAoB;AASvD,IAAM,kBAAN,cAA8B,WAAW;AAAA,EAAzC;AAAA;AAMM,SAAQ,mBAAoC,aAAa;AACzD,SAAQ,kBAAkC,aAAa;AAAA;AAAA,EAIvD,oBAAoB;AACzB,UAAM,kBAAkB;AACxB,SAAK,oBAAoB,aAAa,UAAU,WAAS;AACrD,WAAK,kBAAkB;AACvB,WAAK,mBAAmB,aAAa;AAAA,IACzC,CAAC;AAAA,EACL;AAAA,EAES,uBAAuB;AAC5B,UAAM,qBAAqB;AAC3B,SAAK,oBAAoB;AAAA,EAC7B;AAAA,EAEQ,cAAc;AAClB,iBAAa,WAAW;AAAA,EAC5B;AAAA,EAEQ,gBAAwB;AAC5B,YAAQ,KAAK,kBAAkB;AAAA,MAC3B,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,IACf;AAAA,EACJ;AAAA,EAEQ,mBAA2B;AAC/B,YAAQ,KAAK,kBAAkB;AAAA,MAC3B,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO;AAAA,MACX,KAAK;AACD,eAAO,kBAAkB,KAAK,eAAe;AAAA,IACrD;AAAA,EACJ;AAAA,EAEmB,SAAS;AACxB,WAAO;AAAA;AAAA;AAAA,kBAGG,KAAK,aACD,iBAAiB,KAAK,UAAU;AAAA;AAAA,mDAEH,YAAY;AAAA;AAAA,8BAGzC,EAAE;AAAA;AAAA,uBAED,KAAK,SAAS,EAAE;AAAA;AAAA;AAAA,sBAGjB,KAAK,SAAS,IAAI,YAAU;AAC1B,aAAO;AAAA,qDACsB,OAAO,MAAM,WAAW,OAAO,KAAK;AAAA,qDACpC,OAAO,IAAI;AAAA;AAAA;AAAA,IAG5C,CAAC,CAAC;AAAA;AAAA,6CAEuB,KAAK,WAAW,WAAW,KAAK,iBAAiB,CAAC;AAAA,6CAClD,KAAK,cAAc,CAAC;AAAA;AAAA;AAAA,sBAG3C,KAAK,UAAU,CAAC,KAAK,OAAO,eACxB;AAAA,uDAC6B,KAAK,OAAO,UAAU;AAAA,uDACtB,SAAS;AAAA;AAAA,8BAGtC,OAAO;AAAA;AAAA;AAAA;AAAA,EAI7B;AAuBJ;AA9Ga,gBAyFO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAxFN;AAAA,EAAlB,SAAS;AAAA,GADD,gBACU;AACA;AAAA,EAAlB,SAAS;AAAA,GAFD,gBAEU;AAIF;AAAA,EAAhB,MAAM;AAAA,GANE,gBAMQ;AACA;AAAA,EAAhB,MAAM;AAAA,GAPE,gBAOQ;AAPR,kBAAN;AAAA,EADN,cAAc,kBAAkB;AAAA,GACpB;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -5,6 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { MatterClient } from "@matter-server/ws-client";
|
|
7
7
|
import { LitElement, PropertyValueMap } from "lit";
|
|
8
|
+
import "../components/ha-svg-icon";
|
|
9
|
+
import "./components/header";
|
|
8
10
|
import "./matter-cluster-view";
|
|
9
11
|
import "./matter-endpoint-view";
|
|
10
12
|
import "./matter-node-view";
|
|
@@ -18,10 +20,13 @@ declare class MatterDashboardApp extends LitElement {
|
|
|
18
20
|
private _route;
|
|
19
21
|
client: MatterClient;
|
|
20
22
|
private _state;
|
|
21
|
-
private _error;
|
|
22
23
|
private provider;
|
|
23
24
|
protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
|
|
25
|
+
private _connect;
|
|
26
|
+
private _setupEventListeners;
|
|
27
|
+
private _reconnect;
|
|
24
28
|
render(): import("lit-html").TemplateResult<1>;
|
|
29
|
+
static styles: import("lit").CSSResult;
|
|
25
30
|
}
|
|
26
31
|
export {};
|
|
27
32
|
//# sourceMappingURL=matter-dashboard-app.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"matter-dashboard-app.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-dashboard-app.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAe,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"matter-dashboard-app.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-dashboard-app.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAe,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAa,MAAM,KAAK,CAAC;AAG9D,OAAO,2BAA2B,CAAC;AAGnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,wBAAwB,CAAC;AAChC,OAAO,oBAAoB,CAAC;AAC5B,OAAO,sBAAsB,CAAC;AAE9B,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,sBAAsB,EAAE,kBAAkB,CAAC;KAC9C;CACJ;AAED,cACM,kBAAmB,SAAQ,UAAU;IAC9B,OAAO,CAAC,MAAM,CAGrB;IAEK,MAAM,EAAG,YAAY,CAAC;IAG7B,OAAO,CAAC,MAAM,CAAuE;IAErF,OAAO,CAAC,QAAQ,CAAoF;cAEjF,YAAY,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,IAAI;IAgB5G,OAAO,CAAC,QAAQ;IAYhB,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,UAAU,CAGhB;IAEO,MAAM;IA6Ef,OAAgB,MAAM,0BAwDpB;CACL"}
|
|
@@ -14,10 +14,13 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
14
14
|
* SPDX-License-Identifier: Apache-2.0
|
|
15
15
|
*/
|
|
16
16
|
import { ContextProvider } from "@lit/context";
|
|
17
|
-
import {
|
|
17
|
+
import { mdiRefresh } from "@mdi/js";
|
|
18
|
+
import { LitElement, css, html } from "lit";
|
|
18
19
|
import { customElement, state } from "lit/decorators.js";
|
|
19
20
|
import { clientContext } from "../client/client-context.js";
|
|
21
|
+
import "../components/ha-svg-icon";
|
|
20
22
|
import { clone } from "../util/clone_class.js";
|
|
23
|
+
import "./components/header";
|
|
21
24
|
import "./matter-cluster-view";
|
|
22
25
|
import "./matter-endpoint-view";
|
|
23
26
|
import "./matter-node-view";
|
|
@@ -31,28 +34,14 @@ let MatterDashboardApp = class extends LitElement {
|
|
|
31
34
|
};
|
|
32
35
|
this._state = "connecting";
|
|
33
36
|
this.provider = new ContextProvider(this, { context: clientContext, initialValue: this.client });
|
|
37
|
+
this._reconnect = () => {
|
|
38
|
+
this._state = "connecting";
|
|
39
|
+
this._connect();
|
|
40
|
+
};
|
|
34
41
|
}
|
|
35
42
|
firstUpdated(_changedProperties) {
|
|
36
43
|
super.firstUpdated(_changedProperties);
|
|
37
|
-
this.
|
|
38
|
-
() => {
|
|
39
|
-
this._state = "connected";
|
|
40
|
-
this.client.addEventListener("nodes_changed", () => {
|
|
41
|
-
this.requestUpdate();
|
|
42
|
-
this.provider.setValue(clone(this.client));
|
|
43
|
-
});
|
|
44
|
-
this.client.addEventListener("server_info_updated", () => {
|
|
45
|
-
this.provider.setValue(clone(this.client));
|
|
46
|
-
});
|
|
47
|
-
this.client.addEventListener("connection_lost", () => {
|
|
48
|
-
this._state = "disconnected";
|
|
49
|
-
});
|
|
50
|
-
},
|
|
51
|
-
(err) => {
|
|
52
|
-
this._state = "error";
|
|
53
|
-
this._error = err.message;
|
|
54
|
-
}
|
|
55
|
-
);
|
|
44
|
+
this._connect();
|
|
56
45
|
const updateRoute = () => {
|
|
57
46
|
const pathParts = location.hash.substring(1).split("/");
|
|
58
47
|
this._route = {
|
|
@@ -63,17 +52,66 @@ let MatterDashboardApp = class extends LitElement {
|
|
|
63
52
|
window.addEventListener("hashchange", updateRoute);
|
|
64
53
|
updateRoute();
|
|
65
54
|
}
|
|
55
|
+
_connect() {
|
|
56
|
+
this.client.startListening().then(
|
|
57
|
+
() => {
|
|
58
|
+
this._state = "connected";
|
|
59
|
+
this._setupEventListeners();
|
|
60
|
+
},
|
|
61
|
+
(_err) => {
|
|
62
|
+
this._state = "error";
|
|
63
|
+
}
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
_setupEventListeners() {
|
|
67
|
+
this.client.addEventListener("nodes_changed", () => {
|
|
68
|
+
this.requestUpdate();
|
|
69
|
+
this.provider.setValue(clone(this.client));
|
|
70
|
+
});
|
|
71
|
+
this.client.addEventListener("server_info_updated", () => {
|
|
72
|
+
this.provider.setValue(clone(this.client));
|
|
73
|
+
});
|
|
74
|
+
this.client.addEventListener("connection_lost", () => {
|
|
75
|
+
this._state = "disconnected";
|
|
76
|
+
});
|
|
77
|
+
}
|
|
66
78
|
render() {
|
|
67
79
|
if (this._state === "connecting") {
|
|
68
|
-
return html
|
|
80
|
+
return html`
|
|
81
|
+
<dashboard-header title="Matter Server"></dashboard-header>
|
|
82
|
+
<div class="status-page">
|
|
83
|
+
<p class="status-message">Connecting...</p>
|
|
84
|
+
</div>
|
|
85
|
+
`;
|
|
69
86
|
}
|
|
70
87
|
if (this._state === "disconnected") {
|
|
71
|
-
return html
|
|
88
|
+
return html`
|
|
89
|
+
<dashboard-header title="Matter Server"></dashboard-header>
|
|
90
|
+
<div class="status-page">
|
|
91
|
+
<p class="status-message error">Connection lost</p>
|
|
92
|
+
<p class="status-hint">
|
|
93
|
+
The connection to the Matter Server was lost. Please check if the server is running.
|
|
94
|
+
</p>
|
|
95
|
+
<button class="retry-button" @click=${this._reconnect}>
|
|
96
|
+
<ha-svg-icon .path=${mdiRefresh}></ha-svg-icon>
|
|
97
|
+
Reconnect
|
|
98
|
+
</button>
|
|
99
|
+
</div>
|
|
100
|
+
`;
|
|
72
101
|
}
|
|
73
102
|
if (this._state === "error") {
|
|
74
103
|
return html`
|
|
75
|
-
<
|
|
76
|
-
<
|
|
104
|
+
<dashboard-header title="Matter Server"></dashboard-header>
|
|
105
|
+
<div class="status-page">
|
|
106
|
+
<p class="status-message error">No connection</p>
|
|
107
|
+
<p class="status-hint">
|
|
108
|
+
Unable to connect to the Matter Server. Please check if the server is running.
|
|
109
|
+
</p>
|
|
110
|
+
<button class="retry-button" @click=${this._reconnect}>
|
|
111
|
+
<ha-svg-icon .path=${mdiRefresh}></ha-svg-icon>
|
|
112
|
+
Reconnect
|
|
113
|
+
</button>
|
|
114
|
+
</div>
|
|
77
115
|
`;
|
|
78
116
|
}
|
|
79
117
|
if (this._route.prefix === "node" && this._route.path.length == 3) {
|
|
@@ -110,6 +148,63 @@ let MatterDashboardApp = class extends LitElement {
|
|
|
110
148
|
></matter-server-view>`;
|
|
111
149
|
}
|
|
112
150
|
};
|
|
151
|
+
MatterDashboardApp.styles = css`
|
|
152
|
+
:host {
|
|
153
|
+
display: block;
|
|
154
|
+
min-height: 100vh;
|
|
155
|
+
background-color: var(--md-sys-color-background);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.status-page {
|
|
159
|
+
display: flex;
|
|
160
|
+
flex-direction: column;
|
|
161
|
+
align-items: center;
|
|
162
|
+
justify-content: center;
|
|
163
|
+
padding: 48px 24px;
|
|
164
|
+
text-align: center;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.status-message {
|
|
168
|
+
font-size: 1.5rem;
|
|
169
|
+
color: var(--md-sys-color-on-background);
|
|
170
|
+
margin: 0 0 16px 0;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.status-message.error {
|
|
174
|
+
color: var(--danger-color);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.status-hint {
|
|
178
|
+
font-size: 1rem;
|
|
179
|
+
color: var(--md-sys-color-on-surface-variant);
|
|
180
|
+
margin: 0;
|
|
181
|
+
max-width: 400px;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.retry-button {
|
|
185
|
+
display: inline-flex;
|
|
186
|
+
align-items: center;
|
|
187
|
+
gap: 8px;
|
|
188
|
+
margin-top: 24px;
|
|
189
|
+
padding: 12px 24px;
|
|
190
|
+
font-size: 1rem;
|
|
191
|
+
background-color: var(--md-sys-color-primary);
|
|
192
|
+
color: var(--md-sys-color-on-primary);
|
|
193
|
+
--icon-primary-color: var(--md-sys-color-on-primary);
|
|
194
|
+
border: none;
|
|
195
|
+
border-radius: 4px;
|
|
196
|
+
cursor: pointer;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.retry-button:hover {
|
|
200
|
+
opacity: 0.9;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.retry-button ha-svg-icon {
|
|
204
|
+
width: 20px;
|
|
205
|
+
height: 20px;
|
|
206
|
+
}
|
|
207
|
+
`;
|
|
113
208
|
__decorateClass([
|
|
114
209
|
state()
|
|
115
210
|
], MatterDashboardApp.prototype, "_route", 2);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/pages/matter-dashboard-app.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,uBAAuB;AAEhC,SAAS,YAA8B,YAAY;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Theme service for managing dark/light mode preferences.
|
|
8
|
+
* Supports three modes: light, dark, and system (auto-detect from OS).
|
|
9
|
+
*/
|
|
10
|
+
export type ThemePreference = "light" | "dark" | "system";
|
|
11
|
+
export type EffectiveTheme = "light" | "dark";
|
|
12
|
+
declare class ThemeServiceImpl {
|
|
13
|
+
private _preference;
|
|
14
|
+
private _mediaQuery;
|
|
15
|
+
private _listeners;
|
|
16
|
+
constructor();
|
|
17
|
+
get preference(): ThemePreference;
|
|
18
|
+
get effectiveTheme(): EffectiveTheme;
|
|
19
|
+
setPreference(pref: ThemePreference): void;
|
|
20
|
+
cycleTheme(): ThemePreference;
|
|
21
|
+
subscribe(callback: (theme: EffectiveTheme) => void): () => void;
|
|
22
|
+
private _loadPreference;
|
|
23
|
+
private _applyTheme;
|
|
24
|
+
}
|
|
25
|
+
export declare const ThemeService: ThemeServiceImpl;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=theme-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-service.d.ts","sourceRoot":"","sources":["../../../src/util/theme-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AAEH,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAI9C,cAAM,gBAAgB;IAClB,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,UAAU,CAAmD;;IASrE,IAAI,UAAU,IAAI,eAAe,CAEhC;IAED,IAAI,cAAc,IAAI,cAAc,CAKnC;IAED,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAM1C,UAAU,IAAI,eAAe;IAQ7B,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI;IAKhE,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,WAAW;CAYtB;AAED,eAAO,MAAM,YAAY,kBAAyB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025-2026 Open Home Foundation
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
const STORAGE_KEY = "matterTheme";
|
|
7
|
+
class ThemeServiceImpl {
|
|
8
|
+
constructor() {
|
|
9
|
+
this._preference = "system";
|
|
10
|
+
this._listeners = /* @__PURE__ */ new Set();
|
|
11
|
+
this._mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
12
|
+
this._mediaQuery.addEventListener("change", () => this._applyTheme());
|
|
13
|
+
this._loadPreference();
|
|
14
|
+
this._applyTheme();
|
|
15
|
+
}
|
|
16
|
+
get preference() {
|
|
17
|
+
return this._preference;
|
|
18
|
+
}
|
|
19
|
+
get effectiveTheme() {
|
|
20
|
+
if (this._preference === "system") {
|
|
21
|
+
return this._mediaQuery.matches ? "dark" : "light";
|
|
22
|
+
}
|
|
23
|
+
return this._preference;
|
|
24
|
+
}
|
|
25
|
+
setPreference(pref) {
|
|
26
|
+
this._preference = pref;
|
|
27
|
+
localStorage.setItem(STORAGE_KEY, pref);
|
|
28
|
+
this._applyTheme();
|
|
29
|
+
}
|
|
30
|
+
cycleTheme() {
|
|
31
|
+
const cycle = ["light", "dark", "system"];
|
|
32
|
+
const currentIndex = cycle.indexOf(this._preference);
|
|
33
|
+
const nextIndex = (currentIndex + 1) % cycle.length;
|
|
34
|
+
this.setPreference(cycle[nextIndex]);
|
|
35
|
+
return this._preference;
|
|
36
|
+
}
|
|
37
|
+
subscribe(callback) {
|
|
38
|
+
this._listeners.add(callback);
|
|
39
|
+
return () => this._listeners.delete(callback);
|
|
40
|
+
}
|
|
41
|
+
_loadPreference() {
|
|
42
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
43
|
+
const themeParam = urlParams.get("theme");
|
|
44
|
+
if (themeParam && ["light", "dark", "system"].includes(themeParam)) {
|
|
45
|
+
this._preference = themeParam;
|
|
46
|
+
localStorage.setItem(STORAGE_KEY, themeParam);
|
|
47
|
+
urlParams.delete("theme");
|
|
48
|
+
const newUrl = urlParams.toString() ? `${window.location.pathname}?${urlParams.toString()}${window.location.hash}` : `${window.location.pathname}${window.location.hash}`;
|
|
49
|
+
history.replaceState({}, "", newUrl);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const stored = localStorage.getItem(STORAGE_KEY);
|
|
53
|
+
if (stored && ["light", "dark", "system"].includes(stored)) {
|
|
54
|
+
this._preference = stored;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
_applyTheme() {
|
|
58
|
+
const effective = this.effectiveTheme;
|
|
59
|
+
document.documentElement.classList.toggle("dark-theme", effective === "dark");
|
|
60
|
+
const metaThemeColor = document.querySelector('meta[name="theme-color"]');
|
|
61
|
+
if (metaThemeColor) {
|
|
62
|
+
metaThemeColor.setAttribute("content", effective === "dark" ? "#1e1e1e" : "#03a9f4");
|
|
63
|
+
}
|
|
64
|
+
this._listeners.forEach((cb) => cb(effective));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const ThemeService = new ThemeServiceImpl();
|
|
68
|
+
export {
|
|
69
|
+
ThemeService
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=theme-service.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/util/theme-service.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAcA,MAAM,cAAc;AAEpB,MAAM,iBAAiB;AAAA,EAKnB,cAAc;AAJd,SAAQ,cAA+B;AAEvC,SAAQ,aAAmD,oBAAI,IAAI;AAG/D,SAAK,cAAc,OAAO,WAAW,8BAA8B;AACnE,SAAK,YAAY,iBAAiB,UAAU,MAAM,KAAK,YAAY,CAAC;AACpE,SAAK,gBAAgB;AACrB,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,IAAI,aAA8B;AAC9B,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,iBAAiC;AACjC,QAAI,KAAK,gBAAgB,UAAU;AAC/B,aAAO,KAAK,YAAY,UAAU,SAAS;AAAA,IAC/C;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,cAAc,MAA6B;AACvC,SAAK,cAAc;AACnB,iBAAa,QAAQ,aAAa,IAAI;AACtC,SAAK,YAAY;AAAA,EACrB;AAAA,EAEA,aAA8B;AAC1B,UAAM,QAA2B,CAAC,SAAS,QAAQ,QAAQ;AAC3D,UAAM,eAAe,MAAM,QAAQ,KAAK,WAAW;AACnD,UAAM,aAAa,eAAe,KAAK,MAAM;AAC7C,SAAK,cAAc,MAAM,SAAS,CAAC;AACnC,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,UAAU,UAAuD;AAC7D,SAAK,WAAW,IAAI,QAAQ;AAC5B,WAAO,MAAM,KAAK,WAAW,OAAO,QAAQ;AAAA,EAChD;AAAA,EAEQ,kBAAwB;AAE5B,UAAM,YAAY,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC5D,UAAM,aAAa,UAAU,IAAI,OAAO;AACxC,QAAI,cAAc,CAAC,SAAS,QAAQ,QAAQ,EAAE,SAAS,UAAU,GAAG;AAEhE,WAAK,cAAc;AACnB,mBAAa,QAAQ,aAAa,UAAU;AAE5C,gBAAU,OAAO,OAAO;AACxB,YAAM,SAAS,UAAU,SAAS,IAC5B,GAAG,OAAO,SAAS,QAAQ,IAAI,UAAU,SAAS,CAAC,GAAG,OAAO,SAAS,IAAI,KAC1E,GAAG,OAAO,SAAS,QAAQ,GAAG,OAAO,SAAS,IAAI;AACxD,cAAQ,aAAa,CAAC,GAAG,IAAI,MAAM;AACnC;AAAA,IACJ;AAGA,UAAM,SAAS,aAAa,QAAQ,WAAW;AAC/C,QAAI,UAAU,CAAC,SAAS,QAAQ,QAAQ,EAAE,SAAS,MAAM,GAAG;AACxD,WAAK,cAAc;AAAA,IACvB;AAAA,EAEJ;AAAA,EAEQ,cAAoB;AACxB,UAAM,YAAY,KAAK;AACvB,aAAS,gBAAgB,UAAU,OAAO,cAAc,cAAc,MAAM;AAG5E,UAAM,iBAAiB,SAAS,cAAc,0BAA0B;AACxE,QAAI,gBAAgB;AAChB,qBAAe,aAAa,WAAW,cAAc,SAAS,YAAY,SAAS;AAAA,IACvF;AAEA,SAAK,WAAW,QAAQ,QAAM,GAAG,SAAS,CAAC;AAAA,EAC/C;AACJ;AAEO,MAAM,eAAe,IAAI,iBAAiB;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
package/dist/web/index.html
CHANGED
|
@@ -17,11 +17,18 @@
|
|
|
17
17
|
--md-ref-typeface-plain: var(--roboto-font);
|
|
18
18
|
|
|
19
19
|
--md-sys-color-background: #f5f5f5;
|
|
20
|
+
--md-sys-color-on-background: #1c1b1f;
|
|
20
21
|
--md-sys-color-surface: #fff;
|
|
22
|
+
--md-sys-color-on-surface: #1c1b1f;
|
|
23
|
+
--md-sys-color-on-surface-variant: #49454f;
|
|
24
|
+
--md-sys-color-surface-variant: #e7e0ec;
|
|
21
25
|
--md-sys-color-surface-container: #fff;
|
|
26
|
+
--md-sys-color-surface-container-low: #f7f2fa;
|
|
22
27
|
--md-sys-color-surface-container-high: #fff;
|
|
23
28
|
--md-sys-color-surface-container-highest: #f5f5f5;
|
|
24
29
|
--md-sys-color-secondary-container: #e0e0e0;
|
|
30
|
+
--md-sys-color-outline: #79747e;
|
|
31
|
+
--md-sys-color-outline-variant: #cac4d0;
|
|
25
32
|
|
|
26
33
|
--md-sys-typescale-headline-font: var(--roboto-font);
|
|
27
34
|
--md-sys-typescale-title-font: var(--roboto-font);
|
|
@@ -31,9 +38,37 @@
|
|
|
31
38
|
font-family: var(--roboto-font);
|
|
32
39
|
}
|
|
33
40
|
|
|
41
|
+
body {
|
|
42
|
+
--primary-color: var(--md-sys-color-primary);
|
|
43
|
+
}
|
|
44
|
+
|
|
34
45
|
a {
|
|
35
46
|
color: var(--primary-color);
|
|
36
47
|
}
|
|
48
|
+
|
|
49
|
+
/* Dark theme overrides */
|
|
50
|
+
html.dark-theme body {
|
|
51
|
+
--md-sys-color-primary: #4fc3f7;
|
|
52
|
+
--md-sys-color-on-primary: #003544;
|
|
53
|
+
--md-sys-color-background: #121212;
|
|
54
|
+
--md-sys-color-on-background: #e6e1e5;
|
|
55
|
+
--md-sys-color-surface: #1e1e1e;
|
|
56
|
+
--md-sys-color-on-surface: #e6e1e5;
|
|
57
|
+
--md-sys-color-on-surface-variant: #cac4d0;
|
|
58
|
+
--md-sys-color-surface-variant: #49454f;
|
|
59
|
+
--md-sys-color-surface-container: #1e1e1e;
|
|
60
|
+
--md-sys-color-surface-container-low: #1a1a1a;
|
|
61
|
+
--md-sys-color-surface-container-high: #2b2b2b;
|
|
62
|
+
--md-sys-color-surface-container-highest: #363636;
|
|
63
|
+
--md-sys-color-secondary-container: #4a4458;
|
|
64
|
+
--md-sys-color-on-secondary-container: #e8def8;
|
|
65
|
+
--md-sys-color-outline: #938f99;
|
|
66
|
+
--md-sys-color-outline-variant: #49454f;
|
|
67
|
+
--text-color: rgba(255, 255, 255, 0.6);
|
|
68
|
+
--danger-color: #ff7961;
|
|
69
|
+
--primary-color: #4fc3f7;
|
|
70
|
+
color-scheme: dark;
|
|
71
|
+
}
|
|
37
72
|
</style>
|
|
38
73
|
</head>
|
|
39
74
|
<body></body>
|