@matter-server/dashboard 0.2.0-alpha.0-00000000-000000000

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 (172) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +11 -0
  3. package/dist/esm/client/client-context.d.ts +10 -0
  4. package/dist/esm/client/client-context.d.ts.map +1 -0
  5. package/dist/esm/client/client-context.js +11 -0
  6. package/dist/esm/client/client-context.js.map +6 -0
  7. package/dist/esm/client/models/descriptions.d.ts +20 -0
  8. package/dist/esm/client/models/descriptions.d.ts.map +1 -0
  9. package/dist/esm/client/models/descriptions.js +10929 -0
  10. package/dist/esm/client/models/descriptions.js.map +6 -0
  11. package/dist/esm/components/dialog-box/dialog-box.d.ts +25 -0
  12. package/dist/esm/components/dialog-box/dialog-box.d.ts.map +1 -0
  13. package/dist/esm/components/dialog-box/dialog-box.js +66 -0
  14. package/dist/esm/components/dialog-box/dialog-box.js.map +6 -0
  15. package/dist/esm/components/dialog-box/show-dialog-box.d.ts +18 -0
  16. package/dist/esm/components/dialog-box/show-dialog-box.d.ts.map +1 -0
  17. package/dist/esm/components/dialog-box/show-dialog-box.js +22 -0
  18. package/dist/esm/components/dialog-box/show-dialog-box.js.map +6 -0
  19. package/dist/esm/components/dialogs/acl/model.d.ts +33 -0
  20. package/dist/esm/components/dialogs/acl/model.d.ts.map +1 -0
  21. package/dist/esm/components/dialogs/acl/model.js +79 -0
  22. package/dist/esm/components/dialogs/acl/model.js.map +6 -0
  23. package/dist/esm/components/dialogs/binding/model.d.ts +20 -0
  24. package/dist/esm/components/dialogs/binding/model.d.ts.map +1 -0
  25. package/dist/esm/components/dialogs/binding/model.js +45 -0
  26. package/dist/esm/components/dialogs/binding/model.js.map +6 -0
  27. package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts +49 -0
  28. package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -0
  29. package/dist/esm/components/dialogs/binding/node-binding-dialog.js +357 -0
  30. package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +6 -0
  31. package/dist/esm/components/dialogs/binding/show-node-binding-dialog.d.ts +8 -0
  32. package/dist/esm/components/dialogs/binding/show-node-binding-dialog.d.ts.map +1 -0
  33. package/dist/esm/components/dialogs/binding/show-node-binding-dialog.js +17 -0
  34. package/dist/esm/components/dialogs/binding/show-node-binding-dialog.js.map +6 -0
  35. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts +31 -0
  36. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts.map +1 -0
  37. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js +94 -0
  38. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js.map +6 -0
  39. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.d.ts +17 -0
  40. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.d.ts.map +1 -0
  41. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js +64 -0
  42. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js.map +6 -0
  43. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.d.ts +19 -0
  44. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.d.ts.map +1 -0
  45. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js +91 -0
  46. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js.map +6 -0
  47. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.d.ts +20 -0
  48. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.d.ts.map +1 -0
  49. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js +106 -0
  50. package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js.map +6 -0
  51. package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.d.ts +8 -0
  52. package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.d.ts.map +1 -0
  53. package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.js +15 -0
  54. package/dist/esm/components/dialogs/commission-node-dialog/show-commission-node-dialog.js.map +6 -0
  55. package/dist/esm/components/ha-svg-icon.d.ts +19 -0
  56. package/dist/esm/components/ha-svg-icon.d.ts.map +1 -0
  57. package/dist/esm/components/ha-svg-icon.js +77 -0
  58. package/dist/esm/components/ha-svg-icon.js.map +6 -0
  59. package/dist/esm/entrypoint/main.d.ts +7 -0
  60. package/dist/esm/entrypoint/main.d.ts.map +1 -0
  61. package/dist/esm/entrypoint/main.js +45 -0
  62. package/dist/esm/entrypoint/main.js.map +6 -0
  63. package/dist/esm/package.json +3 -0
  64. package/dist/esm/pages/components/context.d.ts +9 -0
  65. package/dist/esm/pages/components/context.d.ts.map +1 -0
  66. package/dist/esm/pages/components/context.js +11 -0
  67. package/dist/esm/pages/components/context.js.map +6 -0
  68. package/dist/esm/pages/components/footer.d.ts +11 -0
  69. package/dist/esm/pages/components/footer.d.ts.map +1 -0
  70. package/dist/esm/pages/components/footer.js +52 -0
  71. package/dist/esm/pages/components/footer.js.map +6 -0
  72. package/dist/esm/pages/components/header.d.ts +27 -0
  73. package/dist/esm/pages/components/header.d.ts.map +1 -0
  74. package/dist/esm/pages/components/header.js +90 -0
  75. package/dist/esm/pages/components/header.js.map +6 -0
  76. package/dist/esm/pages/components/node-details.d.ts +29 -0
  77. package/dist/esm/pages/components/node-details.d.ts.map +1 -0
  78. package/dist/esm/pages/components/node-details.js +241 -0
  79. package/dist/esm/pages/components/node-details.js.map +6 -0
  80. package/dist/esm/pages/components/server-details.d.ts +24 -0
  81. package/dist/esm/pages/components/server-details.d.ts.map +1 -0
  82. package/dist/esm/pages/components/server-details.js +130 -0
  83. package/dist/esm/pages/components/server-details.js.map +6 -0
  84. package/dist/esm/pages/matter-cluster-view.d.ts +30 -0
  85. package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -0
  86. package/dist/esm/pages/matter-cluster-view.js +154 -0
  87. package/dist/esm/pages/matter-cluster-view.js.map +6 -0
  88. package/dist/esm/pages/matter-dashboard-app.d.ts +27 -0
  89. package/dist/esm/pages/matter-dashboard-app.d.ts.map +1 -0
  90. package/dist/esm/pages/matter-dashboard-app.js +122 -0
  91. package/dist/esm/pages/matter-dashboard-app.js.map +6 -0
  92. package/dist/esm/pages/matter-endpoint-view.d.ts +29 -0
  93. package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -0
  94. package/dist/esm/pages/matter-endpoint-view.js +149 -0
  95. package/dist/esm/pages/matter-endpoint-view.js.map +6 -0
  96. package/dist/esm/pages/matter-node-view.d.ts +28 -0
  97. package/dist/esm/pages/matter-node-view.d.ts.map +1 -0
  98. package/dist/esm/pages/matter-node-view.js +122 -0
  99. package/dist/esm/pages/matter-node-view.js.map +6 -0
  100. package/dist/esm/pages/matter-server-view.d.ts +31 -0
  101. package/dist/esm/pages/matter-server-view.d.ts.map +1 -0
  102. package/dist/esm/pages/matter-server-view.js +113 -0
  103. package/dist/esm/pages/matter-server-view.js.map +6 -0
  104. package/dist/esm/util/clone_class.d.ts +7 -0
  105. package/dist/esm/util/clone_class.d.ts.map +1 -0
  106. package/dist/esm/util/clone_class.js +10 -0
  107. package/dist/esm/util/clone_class.js.map +6 -0
  108. package/dist/esm/util/fire_event.d.ts +34 -0
  109. package/dist/esm/util/fire_event.d.ts.map +1 -0
  110. package/dist/esm/util/fire_event.js +21 -0
  111. package/dist/esm/util/fire_event.js.map +6 -0
  112. package/dist/esm/util/prevent_default.d.ts +7 -0
  113. package/dist/esm/util/prevent_default.d.ts.map +1 -0
  114. package/dist/esm/util/prevent_default.js +10 -0
  115. package/dist/esm/util/prevent_default.js.map +6 -0
  116. package/dist/esm/util/routing.d.ts +10 -0
  117. package/dist/esm/util/routing.d.ts.map +1 -0
  118. package/dist/esm/util/routing.js +6 -0
  119. package/dist/esm/util/routing.js.map +6 -0
  120. package/dist/web/index.html +40 -0
  121. package/dist/web/js/commission-node-dialog-BJsfA4IV.js +78 -0
  122. package/dist/web/js/commission-node-dialog-DEZ3EqYO.js +78 -0
  123. package/dist/web/js/commission-node-existing-CzRtUgBm.js +50 -0
  124. package/dist/web/js/commission-node-existing-OK1ybPFI.js +50 -0
  125. package/dist/web/js/commission-node-thread-DLmclivF.js +75 -0
  126. package/dist/web/js/commission-node-thread-FcLFz84I.js +75 -0
  127. package/dist/web/js/commission-node-wifi-C8ho-UYb.js +88 -0
  128. package/dist/web/js/commission-node-wifi-C8iGfy7c.js +88 -0
  129. package/dist/web/js/dialog-box-BPz-oO3d.js +52 -0
  130. package/dist/web/js/dialog-box-DN32sjfR.js +52 -0
  131. package/dist/web/js/fire_event-BERTqZpV.js +169 -0
  132. package/dist/web/js/fire_event-BlsbXpOL.js +169 -0
  133. package/dist/web/js/main.js +547 -0
  134. package/dist/web/js/matter-dashboard-app-5UjO1Ik8.js +16068 -0
  135. package/dist/web/js/matter-dashboard-app-BazvuIIi.js +16068 -0
  136. package/dist/web/js/node-binding-dialog-2yitVn0R.js +443 -0
  137. package/dist/web/js/node-binding-dialog-Cw6QEmL3.js +443 -0
  138. package/dist/web/js/outlined-text-field-BMLYwwlc.js +2086 -0
  139. package/dist/web/js/outlined-text-field-Sqd4JHxo.js +2086 -0
  140. package/dist/web/js/prevent_default-BsT53c0u.js +814 -0
  141. package/dist/web/js/prevent_default-D4GG_QeD.js +814 -0
  142. package/package.json +54 -0
  143. package/src/client/client-context.ts +10 -0
  144. package/src/client/models/descriptions.ts +10948 -0
  145. package/src/components/dialog-box/dialog-box.ts +62 -0
  146. package/src/components/dialog-box/show-dialog-box.ts +32 -0
  147. package/src/components/dialogs/acl/model.ts +105 -0
  148. package/src/components/dialogs/binding/model.ts +58 -0
  149. package/src/components/dialogs/binding/node-binding-dialog.ts +419 -0
  150. package/src/components/dialogs/binding/show-node-binding-dialog.ts +16 -0
  151. package/src/components/dialogs/commission-node-dialog/commission-node-dialog.ts +102 -0
  152. package/src/components/dialogs/commission-node-dialog/commission-node-existing.ts +49 -0
  153. package/src/components/dialogs/commission-node-dialog/commission-node-thread.ts +76 -0
  154. package/src/components/dialogs/commission-node-dialog/commission-node-wifi.ts +90 -0
  155. package/src/components/dialogs/commission-node-dialog/show-commission-node-dialog.ts +14 -0
  156. package/src/components/ha-svg-icon.ts +66 -0
  157. package/src/entrypoint/main.ts +60 -0
  158. package/src/pages/components/context.ts +10 -0
  159. package/src/pages/components/footer.ts +39 -0
  160. package/src/pages/components/header.ts +87 -0
  161. package/src/pages/components/node-details.ts +252 -0
  162. package/src/pages/components/server-details.ts +124 -0
  163. package/src/pages/matter-cluster-view.ts +162 -0
  164. package/src/pages/matter-dashboard-app.ts +125 -0
  165. package/src/pages/matter-endpoint-view.ts +152 -0
  166. package/src/pages/matter-node-view.ts +126 -0
  167. package/src/pages/matter-server-view.ts +117 -0
  168. package/src/tsconfig.json +16 -0
  169. package/src/util/clone_class.ts +7 -0
  170. package/src/util/fire_event.ts +83 -0
  171. package/src/util/prevent_default.ts +7 -0
  172. package/src/util/routing.ts +10 -0
@@ -0,0 +1,45 @@
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
+ async function main() {
8
+ import("../pages/matter-dashboard-app.js");
9
+ let url = "";
10
+ const isProductionServer = location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
11
+ if (!isProductionServer) {
12
+ let storageUrl = localStorage.getItem("matterURL");
13
+ if (!storageUrl) {
14
+ const urlParams = new URLSearchParams(window.location.search);
15
+ const suggestedUrl = urlParams.get("url");
16
+ storageUrl = prompt(
17
+ "Enter Websocket URL to a running Matter Server",
18
+ suggestedUrl || "ws://localhost:5580/ws"
19
+ );
20
+ if (!storageUrl) {
21
+ alert("Unable to connect without URL");
22
+ return;
23
+ }
24
+ if (suggestedUrl) {
25
+ history.pushState({}, "", window.location.pathname);
26
+ }
27
+ localStorage.setItem("matterURL", storageUrl);
28
+ }
29
+ url = storageUrl;
30
+ } else {
31
+ let baseUrl = window.location.origin + window.location.pathname;
32
+ if (baseUrl.endsWith("/")) {
33
+ baseUrl = baseUrl.slice(0, -1);
34
+ }
35
+ url = baseUrl.replace("http", "ws") + "/ws";
36
+ console.log(`Connecting to Matter Server API using url: ${url}`);
37
+ }
38
+ const client = new MatterClient(url);
39
+ client.isProduction = isProductionServer;
40
+ const dashboard = document.createElement("matter-dashboard-app");
41
+ dashboard.client = client;
42
+ document.body.append(dashboard);
43
+ }
44
+ main();
45
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/entrypoint/main.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAE7B,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
+ "names": []
6
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const bindingContext: {
7
+ __context__: number;
8
+ };
9
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/context.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,eAAO,MAAM,cAAc;;CAAmC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { createContext } from "@lit/context";
7
+ const bindingContext = createContext("binding");
8
+ export {
9
+ bindingContext
10
+ };
11
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/pages/components/context.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB;AAGvB,MAAM,iBAAiB,cAAsB,SAAS;",
5
+ "names": []
6
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { LitElement } from "lit";
7
+ export declare class DashboardFooter extends LitElement {
8
+ protected render(): import("lit-html").TemplateResult<1>;
9
+ static styles: import("lit").CSSResult;
10
+ }
11
+ //# sourceMappingURL=footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/footer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,qBACa,eAAgB,SAAQ,UAAU;cACxB,MAAM;IAWzB,OAAgB,MAAM,0BAepB;CACL"}
@@ -0,0 +1,52 @@
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 { LitElement, css, html } from "lit";
17
+ import { customElement } from "lit/decorators.js";
18
+ let DashboardFooter = class extends LitElement {
19
+ render() {
20
+ return html`
21
+ <div class="footer">
22
+ The OHF Matter Server is a project by the Open Home Foundation.
23
+ <a href="https://www.openhomefoundation.org/structure/#support-our-work" target="_blank"
24
+ >Support development</a
25
+ >
26
+ </div>
27
+ `;
28
+ }
29
+ };
30
+ DashboardFooter.styles = css`
31
+ .footer {
32
+ padding: 16px;
33
+ text-align: center;
34
+ font-size: 0.8em;
35
+ color: var(--md-sys-color-on-surface);
36
+ display: flex;
37
+ flex-direction: column;
38
+ position: relative;
39
+ clear: both;
40
+ }
41
+
42
+ .footer a {
43
+ color: var(--md-sys-color-on-surface);
44
+ }
45
+ `;
46
+ DashboardFooter = __decorateClass([
47
+ customElement("dashboard-footer")
48
+ ], DashboardFooter);
49
+ export {
50
+ DashboardFooter
51
+ };
52
+ //# sourceMappingURL=footer.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/pages/components/footer.ts"],
4
+ "mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,qBAAqB;AAGvB,IAAM,kBAAN,cAA8B,WAAW;AAAA,EACzB,SAAS;AACxB,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQX;AAkBJ;AA5Ba,gBAYO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAZhB,kBAAN;AAAA,EADN,cAAc,kBAAkB;AAAA,GACpB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "@material/web/button/outlined-button";
7
+ import "@material/web/divider/divider";
8
+ import "@material/web/iconbutton/icon-button";
9
+ import "@material/web/list/list";
10
+ import "@material/web/list/list-item";
11
+ import { MatterClient } from "@matter-server/ws-client";
12
+ import { LitElement } from "lit";
13
+ import "../../components/ha-svg-icon";
14
+ interface HeaderAction {
15
+ label: string;
16
+ icon: string;
17
+ action: void;
18
+ }
19
+ export declare class DashboardHeader extends LitElement {
20
+ backButton?: string;
21
+ actions?: HeaderAction[];
22
+ client?: MatterClient;
23
+ protected render(): import("lit-html").TemplateResult<1>;
24
+ static styles: import("lit").CSSResult;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +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;AAEtC,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;cAEV,MAAM;IAmCzB,OAAgB,MAAM,0BAoBpB;CACL"}
@@ -0,0 +1,90 @@
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/outlined-button";
17
+ import "@material/web/divider/divider";
18
+ import "@material/web/iconbutton/icon-button";
19
+ import "@material/web/list/list";
20
+ import "@material/web/list/list-item";
21
+ import { mdiArrowLeft, mdiLogout } from "@mdi/js";
22
+ import { LitElement, css, html, nothing } from "lit";
23
+ import { customElement, property } from "lit/decorators.js";
24
+ import "../../components/ha-svg-icon";
25
+ let DashboardHeader = class extends LitElement {
26
+ render() {
27
+ return html`
28
+ <div class="header">
29
+ <!-- optional back button -->
30
+ ${this.backButton ? html` <a .href=${this.backButton}>
31
+ <md-icon-button>
32
+ <ha-svg-icon .path=${mdiArrowLeft}></ha-svg-icon>
33
+ </md-icon-button>
34
+ </a>` : ""}
35
+
36
+ <div>${this.title || ""}</div>
37
+ <div class="flex"></div>
38
+ <div class="actions">
39
+ ${this.actions?.map((action) => {
40
+ return html`
41
+ <md-icon-button @click=${action.action} .title=${action.label}>
42
+ <ha-svg-icon .path=${action.icon}></ha-svg-icon>
43
+ </md-icon-button>
44
+ `;
45
+ })}
46
+ <!-- optional logout button -->
47
+ ${this.client?.isProduction ? nothing : html`
48
+ <md-icon-button @click=${this.client?.disconnect}>
49
+ <ha-svg-icon .path=${mdiLogout}></ha-svg-icon>
50
+ </md-icon-button>
51
+ `}
52
+ </div>
53
+ </div>
54
+ `;
55
+ }
56
+ };
57
+ DashboardHeader.styles = css`
58
+ .header {
59
+ background-color: var(--md-sys-color-primary);
60
+ color: var(--md-sys-color-on-primary);
61
+ --icon-primary-color: var(--md-sys-color-on-primary);
62
+ font-weight: 400;
63
+ display: flex;
64
+ align-items: center;
65
+ padding-left: 18px;
66
+ padding-right: 8px;
67
+ height: 48px;
68
+ }
69
+
70
+ md-icon-button {
71
+ margin-right: 8px;
72
+ }
73
+
74
+ .flex {
75
+ flex: 1;
76
+ }
77
+ `;
78
+ __decorateClass([
79
+ property()
80
+ ], DashboardHeader.prototype, "backButton", 2);
81
+ __decorateClass([
82
+ property()
83
+ ], DashboardHeader.prototype, "actions", 2);
84
+ DashboardHeader = __decorateClass([
85
+ customElement("dashboard-header")
86
+ ], DashboardHeader);
87
+ export {
88
+ DashboardHeader
89
+ };
90
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 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;AACxC,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,gBAAgB;AACxC,OAAO;AASA,IAAM,kBAAN,cAA8B,WAAW;AAAA,EAMzB,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,QAAQ,eACT,UACA;AAAA,uDAC6B,KAAK,QAAQ,UAAU;AAAA,uDACvB,SAAS;AAAA;AAAA,2BAErC;AAAA;AAAA;AAAA;AAAA,EAIvB;AAuBJ;AA9Da,gBAyCO,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAxCN;AAAA,EAAlB,SAAS;AAAA,GADD,gBACU;AACA;AAAA,EAAlB,SAAS;AAAA,GAFD,gBAEU;AAFV,kBAAN;AAAA,EADN,cAAc,kBAAkB;AAAA,GACpB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "@material/web/button/filled-button";
7
+ import "@material/web/button/outlined-button";
8
+ import "@material/web/button/text-button";
9
+ import "@material/web/divider/divider";
10
+ import "@material/web/iconbutton/icon-button";
11
+ import "@material/web/list/list";
12
+ import "@material/web/list/list-item";
13
+ import { MatterClient, MatterNode } from "@matter-server/ws-client";
14
+ import { LitElement } from "lit";
15
+ import "../../components/ha-svg-icon";
16
+ export declare class NodeDetails extends LitElement {
17
+ client: MatterClient;
18
+ node?: MatterNode;
19
+ private _updateInitiated;
20
+ endpoint: number;
21
+ protected render(): import("lit-html").TemplateResult<1>;
22
+ private _reinterview;
23
+ private _remove;
24
+ private _binding;
25
+ private _searchUpdate;
26
+ private _openCommissioningWindow;
27
+ static styles: import("lit").CSSResult;
28
+ }
29
+ //# sourceMappingURL=node-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-details.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/node-details.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,oCAAoC,CAAC;AAC5C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAC1C,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AAItC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD,OAAO,8BAA8B,CAAC;AAetC,qBACa,WAAY,SAAQ,UAAU;IAChC,MAAM,EAAG,YAAY,CAAC;IAEV,IAAI,CAAC,EAAE,UAAU,CAAC;IAGrC,OAAO,CAAC,gBAAgB,CAAkB;IAI1C,QAAQ,EAAG,MAAM,CAAC;cAEC,MAAM;YAoEX,YAAY;YAyBZ,OAAO;YAsBP,QAAQ;YAQR,aAAa;YAmCb,wBAAwB;IAwBtC,OAAgB,MAAM,0BAkBpB;CACL"}
@@ -0,0 +1,241 @@
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/filled-button";
17
+ import "@material/web/button/outlined-button";
18
+ import "@material/web/button/text-button";
19
+ import "@material/web/divider/divider";
20
+ import "@material/web/iconbutton/icon-button";
21
+ import "@material/web/list/list";
22
+ import "@material/web/list/list-item";
23
+ import { mdiChatProcessing, mdiLink, mdiShareVariant, mdiTrashCan, mdiUpdate } from "@mdi/js";
24
+ import { consume } from "@lit/context";
25
+ import { LitElement, css, html, nothing } from "lit";
26
+ import { customElement, property, state } from "lit/decorators.js";
27
+ import { showAlertDialog, showPromptDialog } from "../../components/dialog-box/show-dialog-box.js";
28
+ import { showNodeBindingDialog } from "../../components/dialogs/binding/show-node-binding-dialog.js";
29
+ import "../../components/ha-svg-icon";
30
+ import { getEndpointDeviceTypes } from "../matter-endpoint-view.js";
31
+ import { bindingContext } from "./context.js";
32
+ function getNodeDeviceTypes(node) {
33
+ const uniqueEndpoints = new Set(Object.keys(node.attributes).map((key) => Number(key.split("/")[0])));
34
+ const allDeviceTypes = /* @__PURE__ */ new Set();
35
+ uniqueEndpoints.forEach((endpointId) => {
36
+ getEndpointDeviceTypes(node, endpointId).forEach((deviceType) => {
37
+ allDeviceTypes.add(deviceType);
38
+ });
39
+ });
40
+ return Array.from(allDeviceTypes);
41
+ }
42
+ let NodeDetails = class extends LitElement {
43
+ constructor() {
44
+ super(...arguments);
45
+ this._updateInitiated = false;
46
+ }
47
+ render() {
48
+ if (!this.node) return html``;
49
+ const bindings = this.node.attributes[this.endpoint + "/30/0"];
50
+ return html`
51
+ <md-list>
52
+ <md-list-item>
53
+ <div slot="headline">
54
+ <b>Node ${this.node.node_id} ${this.node.nodeLabel}</b>
55
+ ${this.node.available ? nothing : html`<span class="status">OFFLINE</span>`}
56
+ </div>
57
+ </md-list-item>
58
+ <md-list-item>
59
+ <div slot="supporting-text"><span class="left">VendorName: </span>${this.node.vendorName}</div>
60
+ <div slot="supporting-text"><span class="left">productName: </span>${this.node.productName}</div>
61
+ <div slot="supporting-text">
62
+ <span class="left">Commissioned: </span>${this.node.date_commissioned}
63
+ </div>
64
+ <div slot="supporting-text">
65
+ <span class="left">Last interviewed: </span>${this.node.last_interview}
66
+ </div>
67
+ <div slot="supporting-text"><span class="left">Is bridge: </span>${this.node.is_bridge}</div>
68
+ <div slot="supporting-text"><span class="left">Serialnumber: </span>${this.node.serialNumber}</div>
69
+ ${this.node.is_bridge ? "" : html` <div slot="supporting-text">
70
+ <span class="left">All device types: </span>${getNodeDeviceTypes(this.node).map((deviceType) => {
71
+ return deviceType.label;
72
+ }).join(" / ")}
73
+ </div>`}
74
+ </md-list-item>
75
+ <md-list-item class="btn">
76
+ <md-outlined-button @click=${this._reinterview}
77
+ >Interview<ha-svg-icon slot="icon" .path=${mdiChatProcessing}></ha-svg-icon
78
+ ></md-outlined-button>
79
+ ${this._updateInitiated || (this.node.updateState || 0) > 1 ? html` <md-outlined-button disabled
80
+ >Update in progress (${this.node.updateStateProgress || 0}%)<ha-svg-icon
81
+ slot="icon"
82
+ .path=${mdiUpdate}
83
+ ></ha-svg-icon
84
+ ></md-outlined-button>` : html`<md-outlined-button @click=${this._searchUpdate}
85
+ >Update<ha-svg-icon slot="icon" .path=${mdiUpdate}></ha-svg-icon
86
+ ></md-outlined-button>`}
87
+ ${bindings ? html`
88
+ <md-outlined-button @click=${this._binding}>
89
+ Binding
90
+ <ha-svg-icon slot="icon" .path=${mdiLink}></ha-svg-icon>
91
+ </md-outlined-button>
92
+ ` : nothing}
93
+
94
+ <md-outlined-button @click=${this._openCommissioningWindow}
95
+ >Share<ha-svg-icon slot="icon" .path=${mdiShareVariant}></ha-svg-icon
96
+ ></md-outlined-button>
97
+ <md-outlined-button @click=${this._remove}
98
+ >Remove<ha-svg-icon slot="icon" .path=${mdiTrashCan}></ha-svg-icon
99
+ ></md-outlined-button>
100
+ </md-list-item>
101
+ </md-list>
102
+ `;
103
+ }
104
+ async _reinterview() {
105
+ if (!await showPromptDialog({
106
+ title: "Reinterview",
107
+ text: "Are you sure you want to reinterview this node?",
108
+ confirmText: "Reinterview"
109
+ })) {
110
+ return;
111
+ }
112
+ try {
113
+ await this.client.interviewNode(this.node.node_id);
114
+ showAlertDialog({
115
+ title: "Reinterview node",
116
+ text: "Success!"
117
+ });
118
+ location.reload();
119
+ } catch (err) {
120
+ showAlertDialog({
121
+ title: "Failed to reinterview node",
122
+ text: err.message
123
+ });
124
+ }
125
+ }
126
+ async _remove() {
127
+ if (!await showPromptDialog({
128
+ title: "Remove",
129
+ text: "Are you sure you want to remove this node?",
130
+ confirmText: "Remove"
131
+ })) {
132
+ return;
133
+ }
134
+ try {
135
+ await this.client.removeNode(this.node.node_id);
136
+ location.replace("#");
137
+ } catch (err) {
138
+ showAlertDialog({
139
+ title: "Failed to remove node",
140
+ text: err.message
141
+ });
142
+ }
143
+ }
144
+ async _binding() {
145
+ try {
146
+ showNodeBindingDialog(this.client, this.node, this.endpoint);
147
+ } catch (err) {
148
+ console.log(err);
149
+ }
150
+ }
151
+ async _searchUpdate() {
152
+ const nodeUpdate = await this.client.checkNodeUpdate(this.node.node_id);
153
+ if (!nodeUpdate) {
154
+ showAlertDialog({
155
+ title: "No update available",
156
+ text: "No update available for this node"
157
+ });
158
+ return;
159
+ }
160
+ if (!await showPromptDialog({
161
+ title: "Firmware update available",
162
+ text: `Found a firmware update for this node on ${nodeUpdate.update_source}.
163
+ Do you want to update this node to version ${nodeUpdate.software_version_string}?
164
+ Note that updating firmware is at your own risk and may cause the device to
165
+ malfunction or needs additional handling such as power cycling it and/or recommisisoning it.
166
+ Use with care.
167
+ ${nodeUpdate.firmware_information}`,
168
+ confirmText: "Start Update"
169
+ })) {
170
+ return;
171
+ }
172
+ try {
173
+ this._updateInitiated = true;
174
+ await this.client.updateNode(this.node.node_id, nodeUpdate.software_version);
175
+ } catch (err) {
176
+ showAlertDialog({
177
+ title: "Failed to update node",
178
+ text: err.message
179
+ });
180
+ } finally {
181
+ this._updateInitiated = false;
182
+ }
183
+ }
184
+ async _openCommissioningWindow() {
185
+ if (!await showPromptDialog({
186
+ title: "Share device",
187
+ text: "Do you want to share this device with another Matter controller (open commissioning window)?",
188
+ confirmText: "Share"
189
+ })) {
190
+ return;
191
+ }
192
+ try {
193
+ const shareCode = await this.client.openCommissioningWindow(this.node.node_id);
194
+ showAlertDialog({
195
+ title: "Share device",
196
+ text: `Setup code: ${shareCode.setup_manual_code}`
197
+ });
198
+ } catch (err) {
199
+ showAlertDialog({
200
+ title: "Failed to open commissioning window on node",
201
+ text: err.message
202
+ });
203
+ }
204
+ }
205
+ };
206
+ NodeDetails.styles = css`
207
+ .btn {
208
+ --md-outlined-button-container-shape: 0px;
209
+ }
210
+
211
+ .left {
212
+ width: 30%;
213
+ display: inline-table;
214
+ }
215
+ .whitespace {
216
+ height: 15px;
217
+ }
218
+
219
+ .status {
220
+ color: var(--danger-color);
221
+ font-weight: bold;
222
+ font-size: 0.8em;
223
+ }
224
+ `;
225
+ __decorateClass([
226
+ property()
227
+ ], NodeDetails.prototype, "node", 2);
228
+ __decorateClass([
229
+ state()
230
+ ], NodeDetails.prototype, "_updateInitiated", 2);
231
+ __decorateClass([
232
+ consume({ context: bindingContext }),
233
+ property({ attribute: false })
234
+ ], NodeDetails.prototype, "endpoint", 2);
235
+ NodeDetails = __decorateClass([
236
+ customElement("node-details")
237
+ ], NodeDetails);
238
+ export {
239
+ NodeDetails
240
+ };
241
+ //# sourceMappingURL=node-details.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/pages/components/node-details.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "@material/web/button/filled-button";
7
+ import "@material/web/button/outlined-button";
8
+ import "@material/web/button/text-button";
9
+ import "@material/web/divider/divider";
10
+ import "@material/web/iconbutton/icon-button";
11
+ import "@material/web/list/list";
12
+ import "@material/web/list/list-item";
13
+ import { MatterClient } from "@matter-server/ws-client";
14
+ import { LitElement } from "lit";
15
+ import "../../components/ha-svg-icon";
16
+ export declare class ServerDetails extends LitElement {
17
+ client?: MatterClient;
18
+ protected render(): import("lit-html").TemplateResult<1>;
19
+ private _commissionNode;
20
+ private _uploadDiagnosticsDumpFile;
21
+ private _onFileInput;
22
+ static styles: import("lit").CSSResult;
23
+ }
24
+ //# sourceMappingURL=server-details.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-details.d.ts","sourceRoot":"","sources":["../../../../src/pages/components/server-details.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,oCAAoC,CAAC;AAC5C,OAAO,sCAAsC,CAAC;AAC9C,OAAO,kCAAkC,CAAC;AAC1C,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;AAIrD,OAAO,8BAA8B,CAAC;AAEtC,qBACa,aAAc,SAAQ,UAAU;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;cAEV,MAAM;IA6CzB,OAAO,CAAC,eAAe;YAKT,0BAA0B;IAexC,OAAO,CAAC,YAAY,CAkBlB;IAEF,OAAgB,MAAM,0BAYpB;CACL"}