@matter-server/dashboard 0.5.15 → 0.6.0

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 (111) hide show
  1. package/dist/esm/components/dialog-box/dialog-box.d.ts +1 -0
  2. package/dist/esm/components/dialog-box/dialog-box.d.ts.map +1 -1
  3. package/dist/esm/components/dialog-box/dialog-box.js +15 -1
  4. package/dist/esm/components/dialog-box/dialog-box.js.map +1 -1
  5. package/dist/esm/components/dialogs/binding/node-binding-dialog.js +15 -19
  6. package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
  7. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.d.ts.map +1 -1
  8. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js +2 -1
  9. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js.map +1 -1
  10. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.d.ts.map +1 -1
  11. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js +13 -5
  12. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js.map +1 -1
  13. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.d.ts.map +1 -1
  14. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js +13 -9
  15. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js.map +1 -1
  16. package/dist/esm/components/dialogs/settings/log-level-dialog.d.ts.map +1 -1
  17. package/dist/esm/components/dialogs/settings/log-level-dialog.js +2 -1
  18. package/dist/esm/components/dialogs/settings/log-level-dialog.js.map +1 -1
  19. package/dist/esm/components/ha-svg-icon.d.ts.map +1 -1
  20. package/dist/esm/components/ha-svg-icon.js +0 -1
  21. package/dist/esm/components/ha-svg-icon.js.map +1 -1
  22. package/dist/esm/entrypoint/main.js +1 -1
  23. package/dist/esm/entrypoint/main.js.map +1 -1
  24. package/dist/esm/pages/cluster-commands/base-cluster-commands.d.ts.map +1 -1
  25. package/dist/esm/pages/cluster-commands/base-cluster-commands.js +72 -68
  26. package/dist/esm/pages/cluster-commands/base-cluster-commands.js.map +1 -1
  27. package/dist/esm/pages/components/header.d.ts +1 -1
  28. package/dist/esm/pages/components/header.d.ts.map +1 -1
  29. package/dist/esm/pages/components/header.js +59 -55
  30. package/dist/esm/pages/components/header.js.map +1 -1
  31. package/dist/esm/pages/components/node-details.js +1 -1
  32. package/dist/esm/pages/components/server-details.d.ts.map +1 -1
  33. package/dist/esm/pages/components/server-details.js +2 -0
  34. package/dist/esm/pages/components/server-details.js.map +1 -1
  35. package/dist/esm/pages/matter-cluster-view.d.ts +2 -1
  36. package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
  37. package/dist/esm/pages/matter-cluster-view.js +49 -39
  38. package/dist/esm/pages/matter-cluster-view.js.map +1 -1
  39. package/dist/esm/pages/matter-endpoint-view.d.ts +2 -1
  40. package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
  41. package/dist/esm/pages/matter-endpoint-view.js +44 -35
  42. package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
  43. package/dist/esm/pages/matter-network-view.d.ts +1 -1
  44. package/dist/esm/pages/matter-network-view.d.ts.map +1 -1
  45. package/dist/esm/pages/matter-network-view.js +216 -207
  46. package/dist/esm/pages/matter-network-view.js.map +1 -1
  47. package/dist/esm/pages/matter-node-view.d.ts +2 -1
  48. package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
  49. package/dist/esm/pages/matter-node-view.js +104 -94
  50. package/dist/esm/pages/matter-node-view.js.map +1 -1
  51. package/dist/esm/pages/network/base-network-graph.d.ts.map +1 -1
  52. package/dist/esm/pages/network/base-network-graph.js +12 -5
  53. package/dist/esm/pages/network/base-network-graph.js.map +1 -1
  54. package/dist/esm/pages/network/device-panel.d.ts +1 -0
  55. package/dist/esm/pages/network/device-panel.d.ts.map +1 -1
  56. package/dist/esm/pages/network/device-panel.js +19 -5
  57. package/dist/esm/pages/network/device-panel.js.map +1 -1
  58. package/dist/esm/pages/network/network-details.d.ts +1 -1
  59. package/dist/esm/pages/network/network-details.d.ts.map +1 -1
  60. package/dist/esm/pages/network/network-details.js +275 -272
  61. package/dist/esm/pages/network/network-details.js.map +1 -1
  62. package/dist/esm/pages/network/network-utils.d.ts +5 -0
  63. package/dist/esm/pages/network/network-utils.d.ts.map +1 -1
  64. package/dist/esm/pages/network/network-utils.js +47 -17
  65. package/dist/esm/pages/network/network-utils.js.map +1 -1
  66. package/dist/esm/pages/network/update-connections-dialog.d.ts +1 -1
  67. package/dist/esm/pages/network/update-connections-dialog.d.ts.map +1 -1
  68. package/dist/esm/pages/network/update-connections-dialog.js +51 -47
  69. package/dist/esm/pages/network/update-connections-dialog.js.map +1 -1
  70. package/dist/esm/util/device-icons.d.ts.map +1 -1
  71. package/dist/esm/util/device-icons.js +6 -6
  72. package/dist/esm/util/device-icons.js.map +1 -1
  73. package/dist/esm/util/shared-styles.d.ts +10 -0
  74. package/dist/esm/util/shared-styles.d.ts.map +1 -0
  75. package/dist/esm/util/shared-styles.js +56 -0
  76. package/dist/esm/util/shared-styles.js.map +6 -0
  77. package/dist/web/index.html +53 -1
  78. package/dist/web/js/{commission-node-dialog-ByflSEDK.js → commission-node-dialog-DfwKU9qk.js} +4 -4
  79. package/dist/web/js/{commission-node-existing-CD6-Epwb.js → commission-node-existing-C7ITvNfj.js} +6 -3
  80. package/dist/web/js/{commission-node-thread-CekKshVL.js → commission-node-thread-D-icSzto.js} +23 -7
  81. package/dist/web/js/{commission-node-wifi-D_VKTWwF.js → commission-node-wifi-DwUkXlWz.js} +29 -11
  82. package/dist/web/js/{dialog-box-DdVdxz2_.js → dialog-box-BmpaTrvT.js} +16 -2
  83. package/dist/web/js/{fire_event-uMluKQub.js → fire_event-2ZxL-AHZ.js} +1 -1
  84. package/dist/web/js/{log-level-dialog-BO1OSL0z.js → log-level-dialog-D4hubdib.js} +5 -2
  85. package/dist/web/js/main.js +2 -2
  86. package/dist/web/js/{matter-dashboard-app-b1R3Pout.js → matter-dashboard-app-BtHTmAPq.js} +874 -788
  87. package/dist/web/js/{node-binding-dialog-rikORH9_.js → node-binding-dialog-MMx9rkCF.js} +40 -20
  88. package/package.json +4 -4
  89. package/src/components/dialog-box/dialog-box.ts +16 -1
  90. package/src/components/dialogs/binding/node-binding-dialog.ts +15 -15
  91. package/src/components/dialogs/commission-node-dialog/commission-node-existing.ts +2 -1
  92. package/src/components/dialogs/commission-node-dialog/commission-node-thread.ts +13 -5
  93. package/src/components/dialogs/commission-node-dialog/commission-node-wifi.ts +13 -9
  94. package/src/components/dialogs/settings/log-level-dialog.ts +2 -1
  95. package/src/components/ha-svg-icon.ts +0 -1
  96. package/src/entrypoint/main.ts +1 -1
  97. package/src/pages/cluster-commands/base-cluster-commands.ts +84 -80
  98. package/src/pages/components/header.ts +59 -55
  99. package/src/pages/components/node-details.ts +1 -1
  100. package/src/pages/components/server-details.ts +2 -0
  101. package/src/pages/matter-cluster-view.ts +49 -39
  102. package/src/pages/matter-endpoint-view.ts +49 -40
  103. package/src/pages/matter-network-view.ts +200 -191
  104. package/src/pages/matter-node-view.ts +94 -84
  105. package/src/pages/network/base-network-graph.ts +12 -5
  106. package/src/pages/network/device-panel.ts +20 -5
  107. package/src/pages/network/network-details.ts +236 -231
  108. package/src/pages/network/network-utils.ts +51 -17
  109. package/src/pages/network/update-connections-dialog.ts +51 -47
  110. package/src/util/device-icons.ts +12 -6
  111. package/src/util/shared-styles.ts +58 -0
@@ -1,4 +1,4 @@
1
- import { r, n, t, i, j as b } from './matter-dashboard-app-b1R3Pout.js';
1
+ import { r, n, t, i, j as b } from './matter-dashboard-app-BtHTmAPq.js';
2
2
  import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
3
3
  import './main.js';
4
4
 
@@ -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-D_VKTWwF.js');
47
+ import('./commission-node-wifi-DwUkXlWz.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-CekKshVL.js');
54
+ import('./commission-node-thread-D-icSzto.js');
55
55
  this._mode = "thread";
56
56
  }
57
57
  _commissionExisting() {
58
- import('./commission-node-existing-CD6-Epwb.js');
58
+ import('./commission-node-existing-C7ITvNfj.js');
59
59
  this._mode = "existing";
60
60
  }
61
61
  _nodeCommissioned(ev) {
@@ -1,5 +1,5 @@
1
- import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-b1R3Pout.js';
2
- import { f as fireEvent } from './fire_event-uMluKQub.js';
1
+ import { r, H as c, I as clientContext, n, a as e, t, i, A, G as handleAsync, j as b, F as showAlertDialog } from './matter-dashboard-app-BtHTmAPq.js';
2
+ import { f as fireEvent } from './fire_event-2ZxL-AHZ.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -29,7 +29,10 @@ let CommissionNodeExisting = class extends i {
29
29
  const node = await this.client.commissionWithCode(this._pairingCodeField.value, true);
30
30
  fireEvent(this, "node-commissioned", node);
31
31
  } catch (err) {
32
- alert(`Error commissioning node: ${err.message}`);
32
+ showAlertDialog({
33
+ title: "Error commissioning node",
34
+ text: err.message
35
+ });
33
36
  } finally {
34
37
  this._loading = false;
35
38
  }
@@ -1,5 +1,5 @@
1
- import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-b1R3Pout.js';
2
- import { f as fireEvent } from './fire_event-uMluKQub.js';
1
+ import { r, H as c, I as clientContext, n, a as e, t, i, A, G as handleAsync, j as b, F as showAlertDialog } from './matter-dashboard-app-BtHTmAPq.js';
2
+ import { f as fireEvent } from './fire_event-2ZxL-AHZ.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -17,7 +17,11 @@ let CommissionNodeThread = class extends i {
17
17
  }
18
18
  render() {
19
19
  if (!this.client.serverInfo.thread_credentials_set) {
20
- return b`<md-outlined-text-field label="Thread dataset" .disabled="${this._loading}">
20
+ return b`<md-outlined-text-field
21
+ label="Thread dataset"
22
+ .disabled="${this._loading}"
23
+ supporting-text="Hex string (e.g. 0E080000...)"
24
+ >
21
25
  </md-outlined-text-field>
22
26
  <br />
23
27
  <br />
@@ -35,18 +39,27 @@ let CommissionNodeThread = class extends i {
35
39
  async _setThreadDataset() {
36
40
  const dataset = this._datasetField.value.trim();
37
41
  if (!dataset) {
38
- alert("Dataset is required");
42
+ showAlertDialog({
43
+ title: "Validation error",
44
+ text: "Dataset is required"
45
+ });
39
46
  return;
40
47
  }
41
48
  if (!/^[0-9a-fA-F]*$/.test(dataset) || dataset.length % 2 !== 0) {
42
- alert("Invalid Thread dataset: must be a hex string with even length (each byte is two hex characters)");
49
+ showAlertDialog({
50
+ title: "Invalid Thread dataset",
51
+ text: "Must be a hex string with even length (each byte is two hex characters)"
52
+ });
43
53
  return;
44
54
  }
45
55
  this._loading = true;
46
56
  try {
47
57
  await this.client.setThreadOperationalDataset(dataset);
48
58
  } catch (err) {
49
- alert(`Error setting Thread dataset: ${err.message}`);
59
+ showAlertDialog({
60
+ title: "Error setting Thread dataset",
61
+ text: err.message
62
+ });
50
63
  } finally {
51
64
  this._loading = false;
52
65
  }
@@ -57,7 +70,10 @@ let CommissionNodeThread = class extends i {
57
70
  const node = await this.client.commissionWithCode(this._pairingCodeField.value, false);
58
71
  fireEvent(this, "node-commissioned", node);
59
72
  } catch (err) {
60
- alert(`Error commissioning node: ${err.message}`);
73
+ showAlertDialog({
74
+ title: "Error commissioning node",
75
+ text: err.message
76
+ });
61
77
  } finally {
62
78
  this._loading = false;
63
79
  }
@@ -1,5 +1,5 @@
1
- import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-b1R3Pout.js';
2
- import { f as fireEvent } from './fire_event-uMluKQub.js';
1
+ import { r, H as c, I as clientContext, n, a as e, t, i, A, G as handleAsync, j as b, F as showAlertDialog } from './matter-dashboard-app-BtHTmAPq.js';
2
+ import { f as fireEvent } from './fire_event-2ZxL-AHZ.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -17,14 +17,19 @@ let CommissionNodeWifi = class extends i {
17
17
  }
18
18
  render() {
19
19
  if (!this.client.serverInfo.wifi_credentials_set) {
20
- return b`<md-outlined-text-field label="SSID" .disabled="${this._loading}"> </md-outlined-text-field>
20
+ return b`<md-outlined-text-field
21
+ label="SSID"
22
+ .disabled="${this._loading}"
23
+ supporting-text="Network name"
24
+ >
25
+ </md-outlined-text-field>
21
26
  <md-outlined-text-field label="Password" type="password" .disabled="${this._loading}">
22
27
  </md-outlined-text-field>
23
28
  <br />
24
29
  <br />
25
30
  <md-outlined-button @click=${handleAsync(() => this._setWifiCredentials())} .disabled="${this._loading}"
26
31
  >Set WiFi Credentials</md-outlined-button
27
- >${this._loading ? b`<md-circular-progress indeterminate .visible="${this._loading}"></md-circular-progress>` : A}`;
32
+ >${this._loading ? b`<md-circular-progress indeterminate></md-circular-progress>` : A}`;
28
33
  }
29
34
  return b`<md-outlined-text-field label="Pairing code" .disabled="${this._loading}"> </md-outlined-text-field>
30
35
  <br />
@@ -36,20 +41,28 @@ let CommissionNodeWifi = class extends i {
36
41
  async _setWifiCredentials() {
37
42
  const ssid = this._ssidField.value;
38
43
  if (!ssid) {
39
- alert("SSID is required");
44
+ showAlertDialog({
45
+ title: "Validation error",
46
+ text: "SSID is required"
47
+ });
40
48
  return;
41
49
  }
42
50
  const password = this._passwordField.value;
43
51
  if (!password) {
44
- alert("Password is required");
52
+ showAlertDialog({
53
+ title: "Validation error",
54
+ text: "Password is required"
55
+ });
45
56
  return;
46
57
  }
47
58
  this._loading = true;
48
59
  try {
49
60
  await this.client.setWifiCredentials(ssid, password);
50
61
  } catch (err) {
51
- alert(`Error setting WiFi credentials:
52
- ${err.message}`);
62
+ showAlertDialog({
63
+ title: "Error setting WiFi credentials",
64
+ text: err.message
65
+ });
53
66
  } finally {
54
67
  this._loading = false;
55
68
  }
@@ -57,15 +70,20 @@ ${err.message}`);
57
70
  async _commissionNode() {
58
71
  try {
59
72
  if (!this._pairingCodeField.value) {
60
- alert("Pairing code is required");
73
+ showAlertDialog({
74
+ title: "Validation error",
75
+ text: "Pairing code is required"
76
+ });
61
77
  return;
62
78
  }
63
79
  this._loading = true;
64
80
  const node = await this.client.commissionWithCode(this._pairingCodeField.value, false);
65
81
  fireEvent(this, "node-commissioned", node);
66
82
  } catch (err) {
67
- alert(`Error commissioning node:
68
- ${err.message}`);
83
+ showAlertDialog({
84
+ title: "Error commissioning node",
85
+ text: err.message
86
+ });
69
87
  } finally {
70
88
  this._loading = false;
71
89
  }
@@ -1,4 +1,4 @@
1
- import { n, t, i, j as b } from './matter-dashboard-app-b1R3Pout.js';
1
+ import { k as i, n, i as i$1, j as b, t } from './matter-dashboard-app-BtHTmAPq.js';
2
2
  import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
3
3
  import './main.js';
4
4
 
@@ -10,7 +10,7 @@ var __decorateClass = (decorators, target, key, kind) => {
10
10
  if (kind && result) __defProp(target, key, result);
11
11
  return result;
12
12
  };
13
- let DialogBox = class extends i {
13
+ let DialogBox = class extends i$1 {
14
14
  render() {
15
15
  const params = this.params;
16
16
  return b`
@@ -42,6 +42,20 @@ let DialogBox = class extends i {
42
42
  this.parentElement.removeChild(this);
43
43
  }
44
44
  };
45
+ DialogBox.styles = i`
46
+ code {
47
+ display: block;
48
+ white-space: pre-wrap;
49
+ word-break: break-all;
50
+ overflow-y: auto;
51
+ max-height: 60vh;
52
+ font-size: 0.8rem;
53
+ line-height: 1.4;
54
+ padding: 8px;
55
+ background-color: var(--md-sys-color-surface-container-highest);
56
+ border-radius: 4px;
57
+ }
58
+ `;
45
59
  __decorateClass([n({
46
60
  attribute: false
47
61
  })], DialogBox.prototype, "params", 2);
@@ -1,4 +1,4 @@
1
- import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-b1R3Pout.js';
1
+ import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-BtHTmAPq.js';
2
2
 
3
3
  /**
4
4
  * @license
@@ -1,4 +1,4 @@
1
- import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-b1R3Pout.js';
1
+ import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as showAlertDialog, G as handleAsync } from './matter-dashboard-app-BtHTmAPq.js';
2
2
  import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
3
3
  import './main.js';
4
4
 
@@ -3130,7 +3130,10 @@ let LogLevelDialog = class extends i {
3130
3130
  this._close();
3131
3131
  } catch (err) {
3132
3132
  console.error("Failed to apply log levels:", err);
3133
- alert("Failed to apply log levels");
3133
+ showAlertDialog({
3134
+ title: "Error",
3135
+ text: "Failed to apply log levels"
3136
+ });
3134
3137
  } finally {
3135
3138
  this._applying = false;
3136
3139
  }
@@ -757,7 +757,7 @@ const ThemeService = new ThemeServiceImpl();
757
757
  * SPDX-License-Identifier: Apache-2.0
758
758
  */
759
759
  async function main() {
760
- import('./matter-dashboard-app-b1R3Pout.js').then(function (n) { return n.K; });
760
+ import('./matter-dashboard-app-BtHTmAPq.js').then(function (n) { return n.K; });
761
761
  let url = "";
762
762
  const isProductionServer = window.__MATTERJS_PRODUCTION_MODE__ === true || location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
763
763
  if (!isProductionServer) {
@@ -767,7 +767,7 @@ async function main() {
767
767
  const suggestedUrl = urlParams.get("url");
768
768
  storageUrl = prompt("Enter Websocket URL to a running Matter Server", suggestedUrl ?? "ws://localhost:5580/ws");
769
769
  if (!storageUrl) {
770
- alert("Unable to connect without URL");
770
+ document.body.textContent = "Unable to connect: no WebSocket URL provided.";
771
771
  return;
772
772
  }
773
773
  if (suggestedUrl) {