@matter-server/dashboard 0.2.7-alpha.0-20260118-993a1c7 → 0.2.7-alpha.0-20260118-45c7af0

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.
Files changed (30) hide show
  1. package/dist/esm/components/dialogs/settings/log-level-dialog.d.ts +33 -0
  2. package/dist/esm/components/dialogs/settings/log-level-dialog.d.ts.map +1 -0
  3. package/dist/esm/components/dialogs/settings/log-level-dialog.js +185 -0
  4. package/dist/esm/components/dialogs/settings/log-level-dialog.js.map +6 -0
  5. package/dist/esm/components/dialogs/settings/show-log-level-dialog.d.ts +8 -0
  6. package/dist/esm/components/dialogs/settings/show-log-level-dialog.d.ts.map +1 -0
  7. package/dist/esm/components/dialogs/settings/show-log-level-dialog.js +15 -0
  8. package/dist/esm/components/dialogs/settings/show-log-level-dialog.js.map +6 -0
  9. package/dist/esm/pages/components/header.d.ts +1 -0
  10. package/dist/esm/pages/components/header.d.ts.map +1 -1
  11. package/dist/esm/pages/components/header.js +13 -1
  12. package/dist/esm/pages/components/header.js.map +1 -1
  13. package/dist/web/js/{commission-node-dialog-DGw5qDgH.js → commission-node-dialog-CoaDIV2Y.js} +5 -5
  14. package/dist/web/js/{commission-node-existing-CHyyeC8y.js → commission-node-existing-DEU_mJjO.js} +5 -4
  15. package/dist/web/js/{commission-node-thread-iRDSlidy.js → commission-node-thread-DZ6DghSs.js} +5 -4
  16. package/dist/web/js/{commission-node-wifi-C4YNR3bG.js → commission-node-wifi-DOyin0q3.js} +5 -4
  17. package/dist/web/js/{dialog-box-ag-xOaYh.js → dialog-box-B5sunUPv.js} +2 -2
  18. package/dist/web/js/{fire_event-BeiEbHcE.js → fire_event-C9Duc1j-.js} +1 -1
  19. package/dist/web/js/log-level-dialog-B7LsZYUL.js +3232 -0
  20. package/dist/web/js/main.js +24 -1
  21. package/dist/web/js/{matter-dashboard-app-BxQ4W_uT.js → matter-dashboard-app-DlHSE_Qh.js} +81 -5
  22. package/dist/web/js/{node-binding-dialog-ClziphM0.js → node-binding-dialog-BifZsigR.js} +4 -3
  23. package/dist/web/js/outlined-text-field-D2BOt1yD.js +968 -0
  24. package/dist/web/js/{prevent_default-Bs2sUnny.js → prevent_default-CuW2EnKR.js} +1 -1
  25. package/dist/web/js/validator-MOJiFndw.js +1122 -0
  26. package/package.json +4 -4
  27. package/src/components/dialogs/settings/log-level-dialog.ts +179 -0
  28. package/src/components/dialogs/settings/show-log-level-dialog.ts +14 -0
  29. package/src/pages/components/header.ts +16 -1
  30. package/dist/web/js/outlined-text-field-B-CiqgEJ.js +0 -2086
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "@material/web/button/text-button";
7
+ import "@material/web/dialog/dialog";
8
+ import "@material/web/select/outlined-select";
9
+ import "@material/web/select/select-option";
10
+ import { MatterClient } from "@matter-server/ws-client";
11
+ import { LitElement } from "lit";
12
+ export declare class LogLevelDialog extends LitElement {
13
+ client: MatterClient;
14
+ private _consoleLevel;
15
+ private _fileLevel;
16
+ private _loading;
17
+ private _applying;
18
+ private _consoleSelect;
19
+ private _fileSelect?;
20
+ connectedCallback(): void;
21
+ private _loadLogLevels;
22
+ private _apply;
23
+ private _close;
24
+ private _handleClosed;
25
+ protected render(): import("lit-html").TemplateResult<1>;
26
+ static styles: import("lit").CSSResult;
27
+ }
28
+ declare global {
29
+ interface HTMLElementTagNameMap {
30
+ "log-level-dialog": LogLevelDialog;
31
+ }
32
+ }
33
+ //# sourceMappingURL=log-level-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-level-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/settings/log-level-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kCAAkC,CAAC;AAC1C,OAAO,6BAA6B,CAAC;AAErC,OAAO,sCAAsC,CAAC;AAE9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,EAAkB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAYrD,qBACa,cAAe,SAAQ,UAAU;IAEnC,MAAM,EAAG,YAAY,CAAC;IAEpB,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAS;IAGnC,OAAO,CAAC,cAAc,CAAoB;IAG1C,OAAO,CAAC,WAAW,CAAC,CAAmB;IAE9B,iBAAiB;YAKZ,cAAc;YAYd,MAAM;IAsBpB,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,aAAa;cAIF,MAAM;IAuDzB,OAAgB,MAAM,0BA4BpB;CACL;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,kBAAkB,EAAE,cAAc,CAAC;KACtC;CACJ"}
@@ -0,0 +1,185 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __decorateClass = (decorators, target, key, kind) => {
4
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
5
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
6
+ if (decorator = decorators[i])
7
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
8
+ if (kind && result) __defProp(target, key, result);
9
+ return result;
10
+ };
11
+ /**
12
+ * @license
13
+ * Copyright 2025-2026 Open Home Foundation
14
+ * SPDX-License-Identifier: Apache-2.0
15
+ */
16
+ import "@material/web/button/text-button";
17
+ import "@material/web/dialog/dialog";
18
+ import "@material/web/select/outlined-select";
19
+ import "@material/web/select/select-option";
20
+ import { css, html, LitElement, nothing } from "lit";
21
+ import { customElement, property, query, state } from "lit/decorators.js";
22
+ import { preventDefault } from "../../../util/prevent_default.js";
23
+ const LOG_LEVELS = [
24
+ { value: "critical", label: "Critical" },
25
+ { value: "error", label: "Error" },
26
+ { value: "warning", label: "Warning" },
27
+ { value: "info", label: "Info" },
28
+ { value: "debug", label: "Debug" }
29
+ ];
30
+ let LogLevelDialog = class extends LitElement {
31
+ constructor() {
32
+ super(...arguments);
33
+ this._consoleLevel = "info";
34
+ this._fileLevel = null;
35
+ this._loading = true;
36
+ this._applying = false;
37
+ }
38
+ connectedCallback() {
39
+ super.connectedCallback();
40
+ void this._loadLogLevels();
41
+ }
42
+ async _loadLogLevels() {
43
+ try {
44
+ const result = await this.client.getLogLevel();
45
+ this._consoleLevel = result.console_loglevel;
46
+ this._fileLevel = result.file_loglevel;
47
+ } catch (err) {
48
+ console.error("Failed to load log levels:", err);
49
+ } finally {
50
+ this._loading = false;
51
+ }
52
+ }
53
+ async _apply() {
54
+ this._applying = true;
55
+ try {
56
+ const consoleLevel = this._consoleSelect.value;
57
+ const fileLevel = this._fileSelect?.value;
58
+ const result = await this.client.setLogLevel(
59
+ consoleLevel,
60
+ this._fileLevel !== null ? fileLevel : void 0
61
+ );
62
+ this._consoleLevel = result.console_loglevel;
63
+ this._fileLevel = result.file_loglevel;
64
+ this._close();
65
+ } catch (err) {
66
+ console.error("Failed to apply log levels:", err);
67
+ alert("Failed to apply log levels");
68
+ } finally {
69
+ this._applying = false;
70
+ }
71
+ }
72
+ _close() {
73
+ this.shadowRoot.querySelector("md-dialog").close();
74
+ }
75
+ _handleClosed() {
76
+ this.parentNode.removeChild(this);
77
+ }
78
+ render() {
79
+ return html`
80
+ <md-dialog open @cancel=${preventDefault} @closed=${this._handleClosed}>
81
+ <div slot="headline">Server Log Settings</div>
82
+ <div slot="content">
83
+ ${this._loading ? html`<p class="loading">Loading...</p>` : html`
84
+ <p class="hint">Changes are temporary and will be reset on the next server restart.</p>
85
+ <div class="form-field">
86
+ <label>Console Log Level</label>
87
+ <md-outlined-select name="console" .value=${this._consoleLevel}>
88
+ ${LOG_LEVELS.map(
89
+ (level) => html`
90
+ <md-select-option
91
+ value=${level.value}
92
+ ?selected=${level.value === this._consoleLevel}
93
+ >
94
+ <div slot="headline">${level.label}</div>
95
+ </md-select-option>
96
+ `
97
+ )}
98
+ </md-outlined-select>
99
+ </div>
100
+ ${this._fileLevel !== null ? html`
101
+ <div class="form-field">
102
+ <label>File Log Level</label>
103
+ <md-outlined-select name="file" .value=${this._fileLevel}>
104
+ ${LOG_LEVELS.map(
105
+ (level) => html`
106
+ <md-select-option
107
+ value=${level.value}
108
+ ?selected=${level.value === this._fileLevel}
109
+ >
110
+ <div slot="headline">${level.label}</div>
111
+ </md-select-option>
112
+ `
113
+ )}
114
+ </md-outlined-select>
115
+ </div>
116
+ ` : nothing}
117
+ `}
118
+ </div>
119
+ <div slot="actions">
120
+ <md-text-button @click=${this._close}>Cancel</md-text-button>
121
+ <md-text-button @click=${this._apply} ?disabled=${this._loading || this._applying}>
122
+ ${this._applying ? "Applying..." : "Apply"}
123
+ </md-text-button>
124
+ </div>
125
+ </md-dialog>
126
+ `;
127
+ }
128
+ };
129
+ LogLevelDialog.styles = css`
130
+ .loading {
131
+ text-align: center;
132
+ padding: 24px;
133
+ color: var(--md-sys-color-on-surface-variant);
134
+ }
135
+
136
+ .hint {
137
+ font-size: 0.875rem;
138
+ color: var(--md-sys-color-on-surface-variant);
139
+ margin: 0 0 16px 0;
140
+ font-style: italic;
141
+ }
142
+
143
+ .form-field {
144
+ margin-bottom: 16px;
145
+ }
146
+
147
+ .form-field label {
148
+ display: block;
149
+ margin-bottom: 8px;
150
+ font-weight: 500;
151
+ color: var(--md-sys-color-on-surface);
152
+ }
153
+
154
+ md-outlined-select {
155
+ width: 100%;
156
+ }
157
+ `;
158
+ __decorateClass([
159
+ property({ attribute: false })
160
+ ], LogLevelDialog.prototype, "client", 2);
161
+ __decorateClass([
162
+ state()
163
+ ], LogLevelDialog.prototype, "_consoleLevel", 2);
164
+ __decorateClass([
165
+ state()
166
+ ], LogLevelDialog.prototype, "_fileLevel", 2);
167
+ __decorateClass([
168
+ state()
169
+ ], LogLevelDialog.prototype, "_loading", 2);
170
+ __decorateClass([
171
+ state()
172
+ ], LogLevelDialog.prototype, "_applying", 2);
173
+ __decorateClass([
174
+ query("md-outlined-select[name='console']")
175
+ ], LogLevelDialog.prototype, "_consoleSelect", 2);
176
+ __decorateClass([
177
+ query("md-outlined-select[name='file']")
178
+ ], LogLevelDialog.prototype, "_fileSelect", 2);
179
+ LogLevelDialog = __decorateClass([
180
+ customElement("log-level-dialog")
181
+ ], LogLevelDialog);
182
+ export {
183
+ LogLevelDialog
184
+ };
185
+ //# sourceMappingURL=log-level-dialog.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/dialogs/settings/log-level-dialog.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { MatterClient } from "@matter-server/ws-client";
7
+ export declare const showLogLevelDialog: (client: MatterClient) => Promise<void>;
8
+ //# sourceMappingURL=show-log-level-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show-log-level-dialog.d.ts","sourceRoot":"","sources":["../../../../../src/components/dialogs/settings/show-log-level-dialog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,eAAO,MAAM,kBAAkB,GAAU,QAAQ,YAAY,kBAK5D,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const showLogLevelDialog = async (client) => {
7
+ await import("./log-level-dialog.js");
8
+ const dialog = document.createElement("log-level-dialog");
9
+ dialog.client = client;
10
+ document.querySelector("matter-dashboard-app")?.renderRoot.appendChild(dialog);
11
+ };
12
+ export {
13
+ showLogLevelDialog
14
+ };
15
+ //# sourceMappingURL=show-log-level-dialog.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/dialogs/settings/show-log-level-dialog.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,MAAM,qBAAqB,OAAO,WAAyB;AAC9D,QAAM,OAAO,uBAAuB;AACpC,QAAM,SAAS,SAAS,cAAc,kBAAkB;AACxD,SAAO,SAAS;AAChB,WAAS,cAAc,sBAAsB,GAAG,WAAW,YAAY,MAAM;AACjF;",
5
+ "names": []
6
+ }
@@ -26,6 +26,7 @@ export declare class DashboardHeader extends LitElement {
26
26
  connectedCallback(): void;
27
27
  disconnectedCallback(): void;
28
28
  private _cycleTheme;
29
+ private _openSettings;
29
30
  private _getThemeIcon;
30
31
  private _getThemeTooltip;
31
32
  protected render(): import("lit-html").TemplateResult<1>;
@@ -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;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"}
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;AAGrD,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;IAMrB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,gBAAgB;cAWL,MAAM;IA+CzB,OAAgB,MAAM,0BAoBpB;CACL"}
@@ -18,9 +18,10 @@ 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, mdiBrightnessAuto, mdiLogout, mdiWeatherNight, mdiWeatherSunny } from "@mdi/js";
21
+ import { mdiArrowLeft, mdiBrightnessAuto, mdiCog, mdiLogout, mdiWeatherNight, mdiWeatherSunny } from "@mdi/js";
22
22
  import { LitElement, css, html, nothing } from "lit";
23
23
  import { customElement, property, state } from "lit/decorators.js";
24
+ import { showLogLevelDialog } from "../../components/dialogs/settings/show-log-level-dialog.js";
24
25
  import "../../components/ha-svg-icon";
25
26
  import { ThemeService } from "../../util/theme-service.js";
26
27
  let DashboardHeader = class extends LitElement {
@@ -43,6 +44,11 @@ let DashboardHeader = class extends LitElement {
43
44
  _cycleTheme() {
44
45
  ThemeService.cycleTheme();
45
46
  }
47
+ _openSettings() {
48
+ if (this.client) {
49
+ showLogLevelDialog(this.client);
50
+ }
51
+ }
46
52
  _getThemeIcon() {
47
53
  switch (this._themePreference) {
48
54
  case "light":
@@ -83,6 +89,12 @@ let DashboardHeader = class extends LitElement {
83
89
  </md-icon-button>
84
90
  `;
85
91
  })}
92
+ <!-- settings button (only when connected) -->
93
+ ${this.client ? html`
94
+ <md-icon-button @click=${this._openSettings} title="Server Settings">
95
+ <ha-svg-icon .path=${mdiCog}></ha-svg-icon>
96
+ </md-icon-button>
97
+ ` : nothing}
86
98
  <!-- theme toggle button -->
87
99
  <md-icon-button @click=${this._cycleTheme} .title=${this._getThemeTooltip()}>
88
100
  <ha-svg-icon .path=${this._getThemeIcon()}></ha-svg-icon>
@@ -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,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;",
4
+ "mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,cAAc,mBAAmB,QAAQ,WAAW,iBAAiB,uBAAuB;AACrG,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,UAAU,aAAa;AAC/C,SAAS,0BAA0B;AACnC,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,gBAAgB;AACpB,QAAI,KAAK,QAAQ;AACb,yBAAmB,KAAK,MAAM;AAAA,IAClC;AAAA,EACJ;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,sBAEA,KAAK,SACD;AAAA,uDAC6B,KAAK,aAAa;AAAA,uDAClB,MAAM;AAAA;AAAA,8BAGnC,OAAO;AAAA;AAAA,6CAEY,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;AA5Ha,gBAuGO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtGN;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
  }
@@ -1,5 +1,5 @@
1
- import { r, n, t, i, b } from './matter-dashboard-app-BxQ4W_uT.js';
2
- import { p as preventDefault } from './prevent_default-Bs2sUnny.js';
1
+ import { r, n, t, i, h as b } from './matter-dashboard-app-DlHSE_Qh.js';
2
+ import { p as preventDefault } from './prevent_default-CuW2EnKR.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -44,18 +44,18 @@ let ComissionNodeDialog = class extends i {
44
44
  if (!this.client.serverInfo.bluetooth_enabled) {
45
45
  return;
46
46
  }
47
- import('./commission-node-wifi-C4YNR3bG.js');
47
+ import('./commission-node-wifi-DOyin0q3.js');
48
48
  this._mode = "wifi";
49
49
  }
50
50
  _commissionThread() {
51
51
  if (!this.client.serverInfo.bluetooth_enabled) {
52
52
  return;
53
53
  }
54
- import('./commission-node-thread-iRDSlidy.js');
54
+ import('./commission-node-thread-DZ6DghSs.js');
55
55
  this._mode = "thread";
56
56
  }
57
57
  _commissionExisting() {
58
- import('./commission-node-existing-CHyyeC8y.js');
58
+ import('./commission-node-existing-DEU_mJjO.js');
59
59
  this._mode = "existing";
60
60
  }
61
61
  _nodeCommissioned(ev) {
@@ -1,8 +1,9 @@
1
- import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-BxQ4W_uT.js';
2
- import { f as fireEvent } from './fire_event-BeiEbHcE.js';
3
- import './outlined-text-field-B-CiqgEJ.js';
1
+ import { r, p as c, n, q as clientContext, a as e, t, i, A, h as b } from './matter-dashboard-app-DlHSE_Qh.js';
2
+ import { f as fireEvent } from './fire_event-C9Duc1j-.js';
3
+ import './outlined-text-field-D2BOt1yD.js';
4
4
  import './main.js';
5
- import './prevent_default-Bs2sUnny.js';
5
+ import './validator-MOJiFndw.js';
6
+ import './prevent_default-CuW2EnKR.js';
6
7
 
7
8
  var __defProp = Object.defineProperty;
8
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,8 +1,9 @@
1
- import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-BxQ4W_uT.js';
2
- import { f as fireEvent } from './fire_event-BeiEbHcE.js';
3
- import './outlined-text-field-B-CiqgEJ.js';
1
+ import { r, p as c, n, q as clientContext, a as e, t, i, A, h as b } from './matter-dashboard-app-DlHSE_Qh.js';
2
+ import { f as fireEvent } from './fire_event-C9Duc1j-.js';
3
+ import './outlined-text-field-D2BOt1yD.js';
4
4
  import './main.js';
5
- import './prevent_default-Bs2sUnny.js';
5
+ import './validator-MOJiFndw.js';
6
+ import './prevent_default-CuW2EnKR.js';
6
7
 
7
8
  var __defProp = Object.defineProperty;
8
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,8 +1,9 @@
1
- import { r, c, n, d as clientContext, e, t, i, A, b } from './matter-dashboard-app-BxQ4W_uT.js';
2
- import { f as fireEvent } from './fire_event-BeiEbHcE.js';
3
- import './outlined-text-field-B-CiqgEJ.js';
1
+ import { r, p as c, n, q as clientContext, a as e, t, i, A, h as b } from './matter-dashboard-app-DlHSE_Qh.js';
2
+ import { f as fireEvent } from './fire_event-C9Duc1j-.js';
3
+ import './outlined-text-field-D2BOt1yD.js';
4
4
  import './main.js';
5
- import './prevent_default-Bs2sUnny.js';
5
+ import './validator-MOJiFndw.js';
6
+ import './prevent_default-CuW2EnKR.js';
6
7
 
7
8
  var __defProp = Object.defineProperty;
8
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,5 +1,5 @@
1
- import { n, t, i, b } from './matter-dashboard-app-BxQ4W_uT.js';
2
- import { p as preventDefault } from './prevent_default-Bs2sUnny.js';
1
+ import { n, t, i, h as b } from './matter-dashboard-app-DlHSE_Qh.js';
2
+ import { p as preventDefault } from './prevent_default-CuW2EnKR.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- import { m as mixinDelegatesAria, i, _ as __decorate, n, f as e, A, b, a as i$1, t } from './matter-dashboard-app-BxQ4W_uT.js';
1
+ import { m as mixinDelegatesAria, i, _ as __decorate, n, f as e, A, h as b, j as i$1, t } from './matter-dashboard-app-DlHSE_Qh.js';
2
2
 
3
3
  /**
4
4
  * @license