@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,149 @@
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/divider/divider";
17
+ import "@material/web/iconbutton/icon-button";
18
+ import "@material/web/list/list";
19
+ import "@material/web/list/list-item";
20
+ import { mdiChevronRight } from "@mdi/js";
21
+ import { LitElement, css, html } from "lit";
22
+ import { customElement, property } from "lit/decorators.js";
23
+ import { guard } from "lit/directives/guard.js";
24
+ import { clusters, device_types } from "../client/models/descriptions.js";
25
+ import "../components/ha-svg-icon";
26
+ function getUniqueClusters(node, endpoint) {
27
+ return Array.from(
28
+ new Set(
29
+ Object.keys(node.attributes).filter((key) => key.startsWith(`${endpoint.toString()}/`)).map((key) => Number(key.split("/")[1]))
30
+ )
31
+ ).sort((a, b) => {
32
+ return a - b;
33
+ });
34
+ }
35
+ function getEndpointDeviceTypes(node, endpoint) {
36
+ const rawValues = node.attributes[`${endpoint}/29/0`];
37
+ if (!rawValues) return [];
38
+ return rawValues.map((rawValue) => {
39
+ const id = rawValue["0"] ?? rawValue["deviceType"];
40
+ return device_types[id] || { id: id ?? -1, label: `Unknown Device Type (${id})`, clusters: [] };
41
+ });
42
+ }
43
+ let MatterEndpointView = class extends LitElement {
44
+ render() {
45
+ if (!this.node || this.endpoint == void 0) {
46
+ return html`
47
+ <p>Node or endpoint not found!</p>
48
+ <button @click=${this._goBack}>Back</button>
49
+ `;
50
+ }
51
+ return html`
52
+ <dashboard-header
53
+ .title=${`Node ${this.node.node_id} | Endpoint ${this.endpoint}`}
54
+ .backButton=${`#node/${this.node.node_id}`}
55
+ .client=${this.client}
56
+ ></dashboard-header>
57
+
58
+ <!-- node details section -->
59
+ <div class="container">
60
+ <node-details .node=${this.node} .client=${this.client}></node-details>
61
+ </div>
62
+
63
+ <!-- Endpoint clusters listing -->
64
+ <div class="container">
65
+ <md-list>
66
+ <md-list-item>
67
+ <div slot="headline">
68
+ <b>Clusters on Endpoint ${this.endpoint}</b>
69
+ </div>
70
+ <div slot="supporting-text">
71
+ Device Type(s):
72
+ ${getEndpointDeviceTypes(this.node, this.endpoint).map((deviceType) => {
73
+ return deviceType.label;
74
+ }).join(" / ")}
75
+ </div>
76
+ </md-list-item>
77
+ ${guard(
78
+ [this.node?.attributes.length],
79
+ () => getUniqueClusters(this.node, this.endpoint).map((cluster) => {
80
+ return html`
81
+ <md-list-item
82
+ type="link"
83
+ href=${`#node/${this.node.node_id}/${this.endpoint}/${cluster}`}
84
+ >
85
+ <div slot="headline">${clusters[cluster]?.label || "Custom/Unknown Cluster"}</div>
86
+ <div slot="supporting-text">ClusterId ${cluster} (0x00${cluster.toString(16)})</div>
87
+ <ha-svg-icon slot="end" .path=${mdiChevronRight}></ha-svg-icon>
88
+ </md-list-item>
89
+ `;
90
+ })
91
+ )}
92
+ </md-list>
93
+ </div>
94
+ `;
95
+ }
96
+ _goBack() {
97
+ history.back();
98
+ }
99
+ };
100
+ MatterEndpointView.styles = css`
101
+ :host {
102
+ display: block;
103
+ background-color: var(--md-sys-color-background);
104
+ }
105
+
106
+ .header {
107
+ background-color: var(--md-sys-color-primary);
108
+ color: var(--md-sys-color-on-primary);
109
+ --icon-primary-color: var(--md-sys-color-on-primary);
110
+ font-weight: 400;
111
+ display: flex;
112
+ align-items: center;
113
+ padding-right: 8px;
114
+ height: 48px;
115
+ }
116
+
117
+ md-icon-button {
118
+ margin-right: 8px;
119
+ }
120
+
121
+ .flex {
122
+ flex: 1;
123
+ }
124
+
125
+ .container {
126
+ padding: 16px;
127
+ max-width: 95%;
128
+ margin: 0 auto;
129
+ }
130
+
131
+ .status {
132
+ color: var(--danger-color);
133
+ font-weight: bold;
134
+ font-size: 0.8em;
135
+ }
136
+ `;
137
+ __decorateClass([
138
+ property()
139
+ ], MatterEndpointView.prototype, "node", 2);
140
+ __decorateClass([
141
+ property()
142
+ ], MatterEndpointView.prototype, "endpoint", 2);
143
+ MatterEndpointView = __decorateClass([
144
+ customElement("matter-endpoint-view")
145
+ ], MatterEndpointView);
146
+ export {
147
+ getEndpointDeviceTypes
148
+ };
149
+ //# sourceMappingURL=matter-endpoint-view.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/pages/matter-endpoint-view.ts"],
4
+ "mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,uBAAuB;AAChC,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,aAAa;AACtB,SAAqB,UAAU,oBAAoB;AACnD,OAAO;AAQP,SAAS,kBAAkB,MAAkB,UAAkB;AAC3D,SAAO,MAAM;AAAA,IACT,IAAI;AAAA,MACA,OAAO,KAAK,KAAK,UAAU,EACtB,OAAO,SAAO,IAAI,WAAW,GAAG,SAAS,SAAS,CAAC,GAAG,CAAC,EACvD,IAAI,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;AAAA,IAC7C;AAAA,EACJ,EAAE,KAAK,CAAC,GAAG,MAAM;AACb,WAAO,IAAI;AAAA,EACf,CAAC;AACL;AAEO,SAAS,uBAAuB,MAAkB,UAAgC;AACrF,QAAM,YAAY,KAAK,WAAW,GAAG,QAAQ,OAAO;AACpD,MAAI,CAAC,UAAW,QAAO,CAAC;AACxB,SAAO,UAAU,IAAI,cAAY;AAC7B,UAAM,KAAK,SAAS,GAAG,KAAK,SAAS,YAAY;AACjD,WAAO,aAAa,EAAE,KAAK,EAAE,IAAI,MAAM,IAAI,OAAO,wBAAwB,EAAE,KAAK,UAAU,CAAC,EAAE;AAAA,EAClG,CAAC;AACL;AAGA,IAAM,qBAAN,cAAiC,WAAW;AAAA,EAS/B,SAAS;AACd,QAAI,CAAC,KAAK,QAAQ,KAAK,YAAY,QAAW;AAC1C,aAAO;AAAA;AAAA,iCAEc,KAAK,OAAO;AAAA;AAAA,IAErC;AAEA,WAAO;AAAA;AAAA,yBAEU,QAAQ,KAAK,KAAK,OAAO,iBAAiB,KAAK,QAAQ,EAAE;AAAA,8BACpD,SAAS,KAAK,KAAK,OAAO,EAAE;AAAA,0BAChC,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA,sCAKC,KAAK,IAAI,YAAY,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sDAQhB,KAAK,QAAQ;AAAA;AAAA;AAAA;AAAA,8BAIrC,uBAAuB,KAAK,MAAM,KAAK,QAAQ,EAC5C,IAAI,gBAAc;AACf,aAAO,WAAW;AAAA,IACtB,CAAC,EACA,KAAK,KAAK,CAAC;AAAA;AAAA;AAAA,sBAGtB;AAAA,MAAM,CAAC,KAAK,MAAM,WAAW,MAAM;AAAA,MAAG,MACpC,kBAAkB,KAAK,MAAO,KAAK,QAAS,EAAE,IAAI,aAAW;AACzD,eAAO;AAAA;AAAA;AAAA,2CAGQ,SAAS,KAAK,KAAM,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,EAAE;AAAA;AAAA,2DAEzC,SAAS,OAAO,GAAG,SAAS,wBAAwB;AAAA,4EACnC,OAAO,SAAS,QAAQ,SAAS,EAAE,CAAC;AAAA,oEAC5C,eAAe;AAAA;AAAA;AAAA,MAG3D,CAAC;AAAA,IACL,CAAC;AAAA;AAAA;AAAA;AAAA,EAIjB;AAAA,EAEQ,UAAU;AACd,YAAQ,KAAK;AAAA,EACjB;AAuCJ;AAzGM,mBAoEc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhElB;AAAA,EADN,SAAS;AAAA,GAHR,mBAIK;AAGA;AAAA,EADN,SAAS;AAAA,GANR,mBAOK;AAPL,qBAAN;AAAA,EADC,cAAc,sBAAsB;AAAA,GAC/B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "@material/web/divider/divider";
7
+ import "@material/web/iconbutton/icon-button";
8
+ import "@material/web/list/list";
9
+ import "@material/web/list/list-item";
10
+ import { MatterClient, MatterNode } from "@matter-server/ws-client";
11
+ import { LitElement } from "lit";
12
+ import "../components/ha-svg-icon";
13
+ import "./components/header";
14
+ import "./components/node-details";
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ "matter-node-view": MatterNodeView;
18
+ }
19
+ }
20
+ declare class MatterNodeView extends LitElement {
21
+ client: MatterClient;
22
+ node?: MatterNode;
23
+ render(): import("lit-html").TemplateResult<1>;
24
+ private _goBack;
25
+ static styles: import("lit").CSSResult;
26
+ }
27
+ export {};
28
+ //# sourceMappingURL=matter-node-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matter-node-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-node-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,2BAA2B,CAAC;AAGnC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,kBAAkB,EAAE,cAAc,CAAC;KACtC;CACJ;AASD,cACM,cAAe,SAAQ,UAAU;IAC5B,MAAM,EAAG,YAAY,CAAC;IAGtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAEhB,MAAM;IAqDf,OAAO,CAAC,OAAO;IAIf,OAAgB,MAAM,0BA2BpB;CACL"}
@@ -0,0 +1,122 @@
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/divider/divider";
17
+ import "@material/web/iconbutton/icon-button";
18
+ import "@material/web/list/list";
19
+ import "@material/web/list/list-item";
20
+ import { mdiChevronRight } from "@mdi/js";
21
+ import { LitElement, css, html } from "lit";
22
+ import { customElement, property } from "lit/decorators.js";
23
+ import { guard } from "lit/directives/guard.js";
24
+ import "../components/ha-svg-icon";
25
+ import "./components/header";
26
+ import "./components/node-details";
27
+ import { getEndpointDeviceTypes } from "./matter-endpoint-view.js";
28
+ function getUniqueEndpoints(node) {
29
+ return Array.from(new Set(Object.keys(node.attributes).map((key) => Number(key.split("/")[0])))).sort((a, b) => {
30
+ return a - b;
31
+ });
32
+ }
33
+ let MatterNodeView = class extends LitElement {
34
+ render() {
35
+ if (!this.node) {
36
+ return html`
37
+ <p>Node not found!</p>
38
+ <button @click=${this._goBack}>Back</button>
39
+ `;
40
+ }
41
+ return html`
42
+ <dashboard-header
43
+ .title=${"Node " + this.node.node_id}
44
+ .client=${this.client}
45
+ backButton="#"
46
+ ></dashboard-header>
47
+
48
+ <!-- node details section -->
49
+ <div class="container">
50
+ <node-details .node=${this.node} .client=${this.client}></node-details>
51
+ </div>
52
+
53
+ <!-- Node Endpoints listing -->
54
+ <div class="container">
55
+ <md-list>
56
+ <md-list-item>
57
+ <div slot="headline">
58
+ <b>Endpoints</b>
59
+ </div>
60
+ </md-list-item>
61
+ ${guard(
62
+ [this.node?.attributes.length],
63
+ () => getUniqueEndpoints(this.node).map((endPointId) => {
64
+ return html`
65
+ <md-list-item type="link" href=${`#node/${this.node.node_id}/${endPointId}`}>
66
+ <div slot="headline">Endpoint ${endPointId}</div>
67
+ <div slot="supporting-text">
68
+ Device Type(s):
69
+ ${getEndpointDeviceTypes(this.node, endPointId).map((deviceType) => {
70
+ return deviceType.label;
71
+ }).join(" / ")}
72
+ </div>
73
+ <ha-svg-icon slot="end" .path=${mdiChevronRight}></ha-svg-icon>
74
+ </md-list-item>
75
+ `;
76
+ })
77
+ )}
78
+ </md-list>
79
+ </div>
80
+
81
+ <dashboard-footer />
82
+ `;
83
+ }
84
+ _goBack() {
85
+ history.back();
86
+ }
87
+ };
88
+ MatterNodeView.styles = css`
89
+ :host {
90
+ display: flex;
91
+ background-color: var(--md-sys-color-background);
92
+ box-sizing: border-box;
93
+ flex-direction: column;
94
+ min-height: 100vh;
95
+ }
96
+
97
+ .container {
98
+ padding: 16px;
99
+ max-width: 95%;
100
+ margin: 0 auto;
101
+ width: 100%;
102
+ }
103
+
104
+ @media (max-width: 600px) {
105
+ .container {
106
+ padding: 16px 0;
107
+ }
108
+ }
109
+
110
+ .status {
111
+ color: var(--danger-color);
112
+ font-weight: bold;
113
+ font-size: 0.8em;
114
+ }
115
+ `;
116
+ __decorateClass([
117
+ property()
118
+ ], MatterNodeView.prototype, "node", 2);
119
+ MatterNodeView = __decorateClass([
120
+ customElement("matter-node-view")
121
+ ], MatterNodeView);
122
+ //# sourceMappingURL=matter-node-view.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/pages/matter-node-view.ts"],
4
+ "mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,uBAAuB;AAChC,SAAS,YAAY,KAAK,YAAY;AACtC,SAAS,eAAe,gBAAgB;AACxC,SAAS,aAAa;AACtB,OAAO;AACP,OAAO;AACP,OAAO;AACP,SAAS,8BAA8B;AAQvC,SAAS,mBAAmB,MAAkB;AAE1C,SAAO,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,IAAI,SAAO,OAAO,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM;AAC1G,WAAO,IAAI;AAAA,EACf,CAAC;AACL;AAGA,IAAM,iBAAN,cAA6B,WAAW;AAAA,EAM3B,SAAS;AACd,QAAI,CAAC,KAAK,MAAM;AACZ,aAAO;AAAA;AAAA,iCAEc,KAAK,OAAO;AAAA;AAAA,IAErC;AAEA,WAAO;AAAA;AAAA,yBAEU,UAAU,KAAK,KAAK,OAAO;AAAA,0BAC1B,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sCAMC,KAAK,IAAI,YAAY,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAWhD;AAAA,MAAM,CAAC,KAAK,MAAM,WAAW,MAAM;AAAA,MAAG,MACpC,mBAAmB,KAAK,IAAK,EAAE,IAAI,gBAAc;AAC7C,eAAO;AAAA,iEAC8B,SAAS,KAAK,KAAM,OAAO,IAAI,UAAU,EAAE;AAAA,oEACxC,UAAU;AAAA;AAAA;AAAA,0CAGpC,uBAAuB,KAAK,MAAO,UAAU,EAC1C,IAAI,gBAAc;AACf,iBAAO,WAAW;AAAA,QACtB,CAAC,EACA,KAAK,KAAK,CAAC;AAAA;AAAA,oEAEY,eAAe;AAAA;AAAA;AAAA,MAG3D,CAAC;AAAA,IACL,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMjB;AAAA,EAEQ,UAAU;AACd,YAAQ,KAAK;AAAA,EACjB;AA8BJ;AA3FM,eA+Dc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA3DlB;AAAA,EADN,SAAS;AAAA,GAHR,eAIK;AAJL,iBAAN;AAAA,EADC,cAAc,kBAAkB;AAAA,GAC3B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "@material/web/divider/divider";
7
+ import "@material/web/iconbutton/icon-button";
8
+ import "@material/web/list/list";
9
+ import "@material/web/list/list-item";
10
+ import { MatterClient } from "@matter-server/ws-client";
11
+ import { LitElement } from "lit";
12
+ import "../components/ha-svg-icon";
13
+ import "./components/footer";
14
+ import "./components/header";
15
+ import "./components/server-details";
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ "matter-server-view": MatterServerView;
19
+ }
20
+ }
21
+ declare class MatterServerView extends LitElement {
22
+ client: MatterClient;
23
+ nodes: MatterClient["nodes"];
24
+ private _cachedNodes?;
25
+ private _cachedNodeEntries?;
26
+ private getNodeEntries;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ static styles: import("lit").CSSResult;
29
+ }
30
+ export {};
31
+ //# sourceMappingURL=matter-server-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matter-server-view.d.ts","sourceRoot":"","sources":["../../../src/pages/matter-server-view.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,+BAA+B,CAAC;AACvC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,yBAAyB,CAAC;AACjC,OAAO,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAc,MAAM,0BAA0B,CAAC;AAEpE,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAErD,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,6BAA6B,CAAC;AAErC,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,oBAAoB,EAAE,gBAAgB,CAAC;KAC1C;CACJ;AAED,cACM,gBAAiB,SAAQ,UAAU;IAC9B,MAAM,EAAG,YAAY,CAAC;IAGtB,KAAK,EAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAErC,OAAO,CAAC,YAAY,CAAC,CAAwB;IAC7C,OAAO,CAAC,kBAAkB,CAAC,CAAyB;IAEpD,OAAO,CAAC,cAAc;IAQb,MAAM;IAwCf,OAAgB,MAAM,0BAgCpB;CACL"}
@@ -0,0 +1,113 @@
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/divider/divider";
17
+ import "@material/web/iconbutton/icon-button";
18
+ import "@material/web/list/list";
19
+ import "@material/web/list/list-item";
20
+ import { mdiChevronRight } from "@mdi/js";
21
+ import { LitElement, css, html, nothing } from "lit";
22
+ import { customElement, property } from "lit/decorators.js";
23
+ import "../components/ha-svg-icon";
24
+ import "./components/footer";
25
+ import "./components/header";
26
+ import "./components/server-details";
27
+ let MatterServerView = class extends LitElement {
28
+ getNodeEntries(nodes) {
29
+ if (nodes !== this._cachedNodes) {
30
+ this._cachedNodes = nodes;
31
+ this._cachedNodeEntries = Object.entries(nodes);
32
+ }
33
+ return this._cachedNodeEntries;
34
+ }
35
+ render() {
36
+ const nodes = this.getNodeEntries(this.nodes);
37
+ return html`
38
+ <dashboard-header title="Open Home Foundation Matter Server" .client=${this.client}></dashboard-header>
39
+
40
+ <!-- server details section -->
41
+ <div class="container">
42
+ <server-details .client=${this.client}></server-details>
43
+ </div>
44
+
45
+ <!-- Nodes listing -->
46
+ <div class="container">
47
+ <md-list>
48
+ <md-list-item>
49
+ <div slot="headline">
50
+ <b>Nodes</b>
51
+ </div>
52
+ </md-list-item>
53
+ ${nodes.map(([_id, node]) => {
54
+ return html`
55
+ <md-list-item type="link" href=${`#node/${node.node_id}`}>
56
+ <div slot="headline">
57
+ Node ${node.node_id}
58
+ ${node.available ? "" : html`<span class="status">OFFLINE</span>`}
59
+ </div>
60
+ <div slot="supporting-text">
61
+ ${node.nodeLabel ? `${node.nodeLabel} | ` : nothing} ${node.vendorName} |
62
+ ${node.productName}
63
+ </div>
64
+ <ha-svg-icon slot="end" .path=${mdiChevronRight}></ha-svg-icon>
65
+ </md-list-item>
66
+ `;
67
+ })}
68
+ </md-list>
69
+ </div>
70
+ <dashboard-footer />
71
+ `;
72
+ }
73
+ };
74
+ MatterServerView.styles = css`
75
+ :host {
76
+ display: flex;
77
+ background-color: var(--md-sys-color-background);
78
+ box-sizing: border-box;
79
+ flex-direction: column;
80
+ }
81
+
82
+ .container {
83
+ padding: 16px;
84
+ max-width: 95%;
85
+ margin: 0 auto;
86
+ flex: 1;
87
+ width: 100%;
88
+ }
89
+
90
+ @media (max-width: 600px) {
91
+ .container {
92
+ padding: 16px 0;
93
+ }
94
+ }
95
+
96
+ span[slot="start"] {
97
+ width: 40px;
98
+ text-align: center;
99
+ }
100
+
101
+ .status {
102
+ color: var(--danger-color);
103
+ font-weight: bold;
104
+ font-size: 0.8em;
105
+ }
106
+ `;
107
+ __decorateClass([
108
+ property()
109
+ ], MatterServerView.prototype, "nodes", 2);
110
+ MatterServerView = __decorateClass([
111
+ customElement("matter-server-view")
112
+ ], MatterServerView);
113
+ //# sourceMappingURL=matter-server-view.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/pages/matter-server-view.ts"],
4
+ "mappings": ";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AAEP,SAAS,uBAAuB;AAChC,SAAS,YAAY,KAAK,MAAM,eAAe;AAC/C,SAAS,eAAe,gBAAgB;AACxC,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AASP,IAAM,mBAAN,cAA+B,WAAW;AAAA,EAS9B,eAAe,OAAsD;AACzE,QAAI,UAAU,KAAK,cAAc;AAC7B,WAAK,eAAe;AACpB,WAAK,qBAAqB,OAAO,QAAQ,KAAK;AAAA,IAClD;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAES,SAAS;AACd,UAAM,QAAQ,KAAK,eAAe,KAAK,KAAK;AAE5C,WAAO;AAAA,mFACoE,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA,0CAIpD,KAAK,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAW/B,MAAM,IAAI,CAAC,CAAC,KAAK,IAAI,MAAM;AACzB,aAAO;AAAA,6DAC8B,SAAS,KAAK,OAAO,EAAE;AAAA;AAAA,2CAEzC,KAAK,OAAO;AAAA,sCACjB,KAAK,YAAY,KAAK,yCAAyC;AAAA;AAAA;AAAA,sCAG/D,KAAK,YAAY,GAAG,KAAK,SAAS,QAAQ,OAAO,IAAI,KAAK,UAAU;AAAA,sCACpE,KAAK,WAAW;AAAA;AAAA,gEAEU,eAAe;AAAA;AAAA;AAAA,IAG3D,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB;AAmCJ;AA1FM,iBAyDc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AArDlB;AAAA,EADN,SAAS;AAAA,GAHR,iBAIK;AAJL,mBAAN;AAAA,EADC,cAAc,oBAAoB;AAAA,GAC7B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const clone: (orig: any) => any;
7
+ //# sourceMappingURL=clone_class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone_class.d.ts","sourceRoot":"","sources":["../../../src/util/clone_class.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,KAAK,GAAI,MAAM,GAAG,QAAoE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const clone = (orig) => Object.assign(Object.create(Object.getPrototypeOf(orig)), orig);
7
+ export {
8
+ clone
9
+ };
10
+ //# sourceMappingURL=clone_class.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/clone_class.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,QAAQ,CAAC,SAAc,OAAO,OAAO,OAAO,OAAO,OAAO,eAAe,IAAI,CAAC,GAAG,IAAI;",
5
+ "names": []
6
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ declare global {
7
+ interface HASSDomEvents {
8
+ }
9
+ }
10
+ export type ValidHassDomEvent = keyof HASSDomEvents;
11
+ export interface HASSDomEvent<T> extends Event {
12
+ detail: T;
13
+ }
14
+ /**
15
+ * Dispatches a custom event with an optional detail value.
16
+ *
17
+ * @param {string} type Name of event type.
18
+ * @param {*=} detail Detail value containing event-specific
19
+ * payload.
20
+ * @param {{ bubbles: (boolean|undefined),
21
+ * cancelable: (boolean|undefined),
22
+ * composed: (boolean|undefined) }=}
23
+ * options Object specifying options. These may include:
24
+ * `bubbles` (boolean, defaults to `true`),
25
+ * `cancelable` (boolean, defaults to false), and
26
+ * `node` on which to fire the event (HTMLElement, defaults to `this`).
27
+ * @return {Event} The new event that was fired.
28
+ */
29
+ export declare const fireEvent: <HassEvent extends ValidHassDomEvent>(node: HTMLElement | Window, type: HassEvent, detail?: HASSDomEvents[HassEvent], options?: {
30
+ bubbles?: boolean;
31
+ cancelable?: boolean;
32
+ composed?: boolean;
33
+ }) => Event;
34
+ //# sourceMappingURL=fire_event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fire_event.d.ts","sourceRoot":"","sources":["../../../src/util/fire_event.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgCH,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,aAAa;KAAG;CAC7B;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,aAAa,CAAC;AAEpD,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,KAAK;IAC1C,MAAM,EAAE,CAAC,CAAC;CACb;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,SAAS,iBAAiB,EACzD,MAAM,WAAW,GAAG,MAAM,EAC1B,MAAM,SAAS,EACf,SAAS,aAAa,CAAC,SAAS,CAAC,EACjC,UAAU;IACN,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB,UAaJ,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const fireEvent = (node, type, detail, options) => {
7
+ options = options || {};
8
+ detail = detail === null || detail === void 0 ? {} : detail;
9
+ const event = new Event(type, {
10
+ bubbles: options.bubbles === void 0 ? true : options.bubbles,
11
+ cancelable: Boolean(options.cancelable),
12
+ composed: options.composed === void 0 ? true : options.composed
13
+ });
14
+ event.detail = detail;
15
+ node.dispatchEvent(event);
16
+ return event;
17
+ };
18
+ export {
19
+ fireEvent
20
+ };
21
+ //# sourceMappingURL=fire_event.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/fire_event.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AA6DO,MAAM,YAAY,CACrB,MACA,MACA,QACA,YAKC;AACD,YAAU,WAAW,CAAC;AAEtB,WAAS,WAAW,QAAQ,WAAW,SAAY,CAAC,IAAI;AACxD,QAAM,QAAQ,IAAI,MAAM,MAAM;AAAA,IAC1B,SAAS,QAAQ,YAAY,SAAY,OAAO,QAAQ;AAAA,IACxD,YAAY,QAAQ,QAAQ,UAAU;AAAA,IACtC,UAAU,QAAQ,aAAa,SAAY,OAAO,QAAQ;AAAA,EAC9D,CAAC;AACD,EAAC,MAAc,SAAS;AACxB,OAAK,cAAc,KAAK;AACxB,SAAO;AACX;",
5
+ "names": []
6
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const preventDefault: (ev: Event) => void;
7
+ //# sourceMappingURL=prevent_default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prevent_default.d.ts","sourceRoot":"","sources":["../../../src/util/prevent_default.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc,GAAI,IAAI,KAAK,SAAwB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const preventDefault = (ev) => ev.preventDefault();
7
+ export {
8
+ preventDefault
9
+ };
10
+ //# sourceMappingURL=prevent_default.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/prevent_default.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,iBAAiB,CAAC,OAAc,GAAG,eAAe;",
5
+ "names": []
6
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export interface Route {
7
+ prefix: string;
8
+ path: string[];
9
+ }
10
+ //# sourceMappingURL=routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../../src/util/routing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,KAAK;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/routing.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }