@matter-server/dashboard 1.0.0 → 1.1.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/dialogs/acl/acl-actions.d.ts +12 -0
  2. package/dist/esm/components/dialogs/acl/acl-actions.d.ts.map +1 -0
  3. package/dist/esm/components/dialogs/acl/acl-actions.js +56 -0
  4. package/dist/esm/components/dialogs/acl/acl-actions.js.map +6 -0
  5. package/dist/esm/components/dialogs/acl/model.d.ts +2 -2
  6. package/dist/esm/components/dialogs/acl/model.d.ts.map +1 -1
  7. package/dist/esm/components/dialogs/acl/model.js +11 -15
  8. package/dist/esm/components/dialogs/acl/model.js.map +1 -1
  9. package/dist/esm/components/dialogs/acl/node-acl-add-dialog.d.ts +43 -0
  10. package/dist/esm/components/dialogs/acl/node-acl-add-dialog.d.ts.map +1 -0
  11. package/dist/esm/components/dialogs/acl/node-acl-add-dialog.js +353 -0
  12. package/dist/esm/components/dialogs/acl/node-acl-add-dialog.js.map +6 -0
  13. package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.d.ts +8 -0
  14. package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.d.ts.map +1 -0
  15. package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.js +15 -0
  16. package/dist/esm/components/dialogs/acl/show-node-acl-add-dialog.js.map +6 -0
  17. package/dist/esm/components/dialogs/binding/binding-actions.d.ts +17 -0
  18. package/dist/esm/components/dialogs/binding/binding-actions.d.ts.map +1 -0
  19. package/dist/esm/components/dialogs/binding/binding-actions.js +135 -0
  20. package/dist/esm/components/dialogs/binding/binding-actions.js.map +6 -0
  21. package/dist/esm/components/dialogs/binding/model.d.ts +1 -1
  22. package/dist/esm/components/dialogs/binding/model.d.ts.map +1 -1
  23. package/dist/esm/components/dialogs/binding/model.js +8 -3
  24. package/dist/esm/components/dialogs/binding/model.js.map +1 -1
  25. package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts +16 -24
  26. package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -1
  27. package/dist/esm/components/dialogs/binding/node-binding-dialog.js +210 -332
  28. package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
  29. package/dist/esm/pages/cluster-commands/clusters/access-control-commands.d.ts +37 -0
  30. package/dist/esm/pages/cluster-commands/clusters/access-control-commands.d.ts.map +1 -0
  31. package/dist/esm/pages/cluster-commands/clusters/access-control-commands.js +387 -0
  32. package/dist/esm/pages/cluster-commands/clusters/access-control-commands.js.map +6 -0
  33. package/dist/esm/pages/cluster-commands/clusters/binding-commands.d.ts +35 -0
  34. package/dist/esm/pages/cluster-commands/clusters/binding-commands.d.ts.map +1 -0
  35. package/dist/esm/pages/cluster-commands/clusters/binding-commands.js +254 -0
  36. package/dist/esm/pages/cluster-commands/clusters/binding-commands.js.map +6 -0
  37. package/dist/esm/pages/cluster-commands/index.d.ts +2 -0
  38. package/dist/esm/pages/cluster-commands/index.d.ts.map +1 -1
  39. package/dist/esm/pages/cluster-commands/index.js +2 -0
  40. package/dist/esm/pages/cluster-commands/index.js.map +1 -1
  41. package/dist/esm/pages/components/node-details.d.ts +0 -1
  42. package/dist/esm/pages/components/node-details.d.ts.map +1 -1
  43. package/dist/esm/pages/components/node-details.js +2 -18
  44. package/dist/esm/pages/components/node-details.js.map +1 -1
  45. package/dist/esm/pages/components/server-details.js +3 -3
  46. package/dist/esm/pages/components/server-details.js.map +1 -1
  47. package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
  48. package/dist/esm/pages/matter-cluster-view.js +2 -1
  49. package/dist/esm/pages/matter-cluster-view.js.map +1 -1
  50. package/dist/esm/pages/matter-endpoint-view.d.ts +3 -3
  51. package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
  52. package/dist/esm/pages/matter-endpoint-view.js +13 -10
  53. package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
  54. package/dist/esm/pages/matter-node-view.js +2 -2
  55. package/dist/esm/pages/matter-node-view.js.map +1 -1
  56. package/dist/esm/pages/network/network-utils.d.ts +1 -5
  57. package/dist/esm/pages/network/network-utils.d.ts.map +1 -1
  58. package/dist/esm/pages/network/network-utils.js +1 -11
  59. package/dist/esm/pages/network/network-utils.js.map +1 -1
  60. package/dist/esm/util/access-control.d.ts +54 -0
  61. package/dist/esm/util/access-control.d.ts.map +1 -0
  62. package/dist/esm/util/access-control.js +100 -0
  63. package/dist/esm/util/access-control.js.map +6 -0
  64. package/dist/esm/util/binding.d.ts +54 -0
  65. package/dist/esm/util/binding.d.ts.map +1 -0
  66. package/dist/esm/util/binding.js +113 -0
  67. package/dist/esm/util/binding.js.map +6 -0
  68. package/dist/esm/util/endpoints.d.ts +9 -0
  69. package/dist/esm/util/endpoints.d.ts.map +1 -0
  70. package/dist/esm/util/endpoints.js +18 -0
  71. package/dist/esm/util/endpoints.js.map +6 -0
  72. package/dist/esm/util/node-name.d.ts +12 -0
  73. package/dist/esm/util/node-name.d.ts.map +1 -0
  74. package/dist/esm/util/node-name.js +15 -0
  75. package/dist/esm/util/node-name.js.map +6 -0
  76. package/dist/web/js/{attribute-write-dialog-W7xpCE2E.js → attribute-write-dialog-CqqdRniU.js} +1 -1
  77. package/dist/web/js/{command-invoke-dialog-BAqAAdJw.js → command-invoke-dialog-BuvBOrdC.js} +1 -1
  78. package/dist/web/js/{commission-node-dialog-BTzCGgdy.js → commission-node-dialog-nVZp3go0.js} +5 -5
  79. package/dist/web/js/{commission-node-existing-B2M2hyDh.js → commission-node-existing-Cx3Ahk2t.js} +2 -2
  80. package/dist/web/js/{commission-node-thread-djdz2dXW.js → commission-node-thread-CI8mWWPs.js} +2 -2
  81. package/dist/web/js/{commission-node-wifi-DxAYNS1A.js → commission-node-wifi-lUX4LK2R.js} +2 -2
  82. package/dist/web/js/{dialog-box-tHvPVxDN.js → dialog-box-bAdbnf-T.js} +1 -1
  83. package/dist/web/js/{fire_event-BleYfTLc.js → fire_event-tWhqPfdz.js} +1 -1
  84. package/dist/web/js/main.js +1 -1
  85. package/dist/web/js/{matter-dashboard-app-CVi_GDky.js → matter-dashboard-app-CONA_608.js} +1485 -390
  86. package/dist/web/js/node-acl-add-dialog-DlR-sF-b.js +320 -0
  87. package/dist/web/js/node-binding-dialog-DhnX_86M.js +267 -0
  88. package/dist/web/js/{node-label-dialog-DVZSjsXU.js → node-label-dialog-T3nPG-Qy.js} +1 -1
  89. package/dist/web/js/{settings-dialog-BG5MgZcO.js → settings-dialog-DrHzJtsi.js} +1 -1
  90. package/package.json +4 -4
  91. package/src/components/dialogs/acl/acl-actions.ts +71 -0
  92. package/src/components/dialogs/acl/model.ts +18 -17
  93. package/src/components/dialogs/acl/node-acl-add-dialog.ts +350 -0
  94. package/src/components/dialogs/acl/show-node-acl-add-dialog.ts +14 -0
  95. package/src/components/dialogs/binding/binding-actions.ts +201 -0
  96. package/src/components/dialogs/binding/model.ts +11 -4
  97. package/src/components/dialogs/binding/node-binding-dialog.ts +221 -399
  98. package/src/pages/cluster-commands/clusters/access-control-commands.ts +407 -0
  99. package/src/pages/cluster-commands/clusters/binding-commands.ts +273 -0
  100. package/src/pages/cluster-commands/index.ts +2 -0
  101. package/src/pages/components/node-details.ts +2 -21
  102. package/src/pages/components/server-details.ts +3 -3
  103. package/src/pages/matter-cluster-view.ts +4 -1
  104. package/src/pages/matter-endpoint-view.ts +16 -10
  105. package/src/pages/matter-node-view.ts +2 -2
  106. package/src/pages/network/network-utils.ts +1 -18
  107. package/src/util/access-control.ts +135 -0
  108. package/src/util/binding.ts +182 -0
  109. package/src/util/endpoints.ts +17 -0
  110. package/src/util/node-name.ts +18 -0
  111. package/dist/web/js/node-binding-dialog-B9IdqHrZ.js +0 -624
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/dialogs/binding/node-binding-dialog.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -0,0 +1,37 @@
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 { nothing, type CSSResultGroup, type TemplateResult } from "lit";
8
+ import "../../../components/ha-svg-icon.js";
9
+ import { BaseClusterCommands } from "../base-cluster-commands.js";
10
+ declare class AccessControlClusterCommands extends BaseClusterCommands {
11
+ private _unsubscribe?;
12
+ private _loadedKey;
13
+ private _busy;
14
+ updated(changed: Map<string, unknown>): void;
15
+ disconnectedCallback(): void;
16
+ private _ensureLoaded;
17
+ private get _controllerNodeId();
18
+ private _entries;
19
+ private _clusterName;
20
+ private _privilegeClass;
21
+ private _delete;
22
+ private _fix;
23
+ private _openAdd;
24
+ private _renderSubjects;
25
+ private _renderTargets;
26
+ private _renderRelationship;
27
+ render(): typeof nothing | TemplateResult<1>;
28
+ private _row;
29
+ static styles: CSSResultGroup;
30
+ }
31
+ declare global {
32
+ interface HTMLElementTagNameMap {
33
+ "access-control-cluster-commands": AccessControlClusterCommands;
34
+ }
35
+ }
36
+ export {};
37
+ //# sourceMappingURL=access-control-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-control-commands.d.ts","sourceRoot":"","sources":["../../../../../src/pages/cluster-commands/clusters/access-control-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,sCAAsC,CAAC;AAE9C,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEnF,OAAO,oCAAoC,CAAC;AAuB5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKlE,cACM,4BAA6B,SAAQ,mBAAmB;IAC1D,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,UAAU,CAAM;IACf,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAM7C;IAEQ,oBAAoB,SAG5B;YAGa,aAAa;IAe3B,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,eAAe;YAIT,OAAO;YAqBP,IAAI;YAWJ,QAAQ;IAItB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,mBAAmB;IAclB,MAAM,uCAuDd;IAED,OAAO,CAAC,IAAI;IA2CZ,OAAgB,MAAM,EAAE,cAAc,CA+HpC;CACL;AAID,OAAO,CAAC,MAAM,CAAC,CAAC;IACZ,UAAU,qBAAqB;QAC3B,iCAAiC,EAAE,4BAA4B,CAAC;KACnE;CACJ"}
@@ -0,0 +1,387 @@
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 { mdiAlert, mdiLink, mdiLock, mdiTrashCan } from "@mdi/js";
18
+ import { css, html, nothing } from "lit";
19
+ import { customElement, state } from "lit/decorators.js";
20
+ import "../../../components/ha-svg-icon.js";
21
+ import { clusters } from "../../../client/models/descriptions.js";
22
+ import { showAlertDialog, showPromptDialog } from "../../../components/dialog-box/show-dialog-box.js";
23
+ import { deleteAclEntry, downgradeToOperate } from "../../../components/dialogs/acl/acl-actions.js";
24
+ import { showNodeAclAddDialog } from "../../../components/dialogs/acl/show-node-acl-add-dialog.js";
25
+ import {
26
+ AUTH_MODE_NAMES,
27
+ AuthMode,
28
+ PRIVILEGE_NAMES,
29
+ Privilege,
30
+ aclCapacity,
31
+ aclEntryKey,
32
+ entriesForFabric,
33
+ isProtectedAdmin,
34
+ isWholeNode,
35
+ nodeFabricIndex,
36
+ nodeIdKey,
37
+ readAclEntries
38
+ } from "../../../util/access-control.js";
39
+ import { handleAsync } from "../../../util/async-handler.js";
40
+ import { detectBindingRelationship } from "../../../util/binding.js";
41
+ import { getDeviceName } from "../../../util/node-name.js";
42
+ import { BaseClusterCommands } from "../base-cluster-commands.js";
43
+ import { registerClusterCommands } from "../registry.js";
44
+ const CLUSTER_ID = 31;
45
+ let AccessControlClusterCommands = class extends BaseClusterCommands {
46
+ constructor() {
47
+ super(...arguments);
48
+ this._loadedKey = "";
49
+ this._busy = false;
50
+ }
51
+ updated(changed) {
52
+ super.updated(changed);
53
+ if (changed.has("client") && this.client && !this._unsubscribe) {
54
+ this._unsubscribe = this.client.addEventListener("nodes_changed", () => this.requestUpdate());
55
+ }
56
+ void this._ensureLoaded();
57
+ }
58
+ disconnectedCallback() {
59
+ super.disconnectedCallback();
60
+ this._unsubscribe?.();
61
+ }
62
+ /** The acl attribute is fabric-scoped and may be absent from the cache until read. Load it on open. */
63
+ async _ensureLoaded() {
64
+ if (!this.client || !this.node || !this.node.available) return;
65
+ const key = nodeIdKey(this.node.node_id);
66
+ if (this._loadedKey === key) return;
67
+ this._loadedKey = key;
68
+ try {
69
+ const res = await this.client.readAttribute(this.node.node_id, ["0/31/0", "0/62/5"]);
70
+ for (const [k, v] of Object.entries(res)) this.node.attributes[k] = v;
71
+ this.requestUpdate();
72
+ } catch (err) {
73
+ this._loadedKey = "";
74
+ console.error("Failed to load ACL", err);
75
+ }
76
+ }
77
+ get _controllerNodeId() {
78
+ return this.client.serverInfo?.controller_node_id;
79
+ }
80
+ _entries() {
81
+ return entriesForFabric(readAclEntries(this.node), nodeFabricIndex(this.node));
82
+ }
83
+ _clusterName(id) {
84
+ if (id == null) return "all clusters";
85
+ return `${clusters[id]?.label ?? "Cluster"} (0x${id.toString(16).padStart(2, "0").toUpperCase()})`;
86
+ }
87
+ _privilegeClass(p) {
88
+ return `pv pv-${p}`;
89
+ }
90
+ async _delete(entry) {
91
+ const isAdmin = entry.privilege === Privilege.Administer && entry.authMode === AuthMode.Case;
92
+ const unverified = isAdmin && this._controllerNodeId === void 0;
93
+ const confirmed = await showPromptDialog({
94
+ title: "Delete ACL entry",
95
+ text: unverified ? "This is an Administer entry and the controller cannot verify whether it is its own. Deleting the wrong admin entry can lock the controller out of this device. Continue?" : "Remove this access control entry? Devices relying on it will lose the granted access.",
96
+ confirmText: "Delete"
97
+ });
98
+ if (!confirmed) return;
99
+ this._busy = true;
100
+ try {
101
+ await deleteAclEntry(this.client, this.node.node_id, aclEntryKey(entry));
102
+ } catch (err) {
103
+ await showAlertDialog({ title: "Delete failed", text: err instanceof Error ? err.message : String(err) });
104
+ } finally {
105
+ this._busy = false;
106
+ }
107
+ }
108
+ async _fix(keys) {
109
+ this._busy = true;
110
+ try {
111
+ await downgradeToOperate(this.client, this.node.node_id, keys);
112
+ } catch (err) {
113
+ await showAlertDialog({ title: "Fix failed", text: err instanceof Error ? err.message : String(err) });
114
+ } finally {
115
+ this._busy = false;
116
+ }
117
+ }
118
+ async _openAdd() {
119
+ await showNodeAclAddDialog(this.node);
120
+ }
121
+ _renderSubjects(entry) {
122
+ const subjects = entry.subjects ?? [];
123
+ if (entry.authMode === AuthMode.Case && subjects.length === 0) {
124
+ return html`<span class="mut">Any node on fabric</span>`;
125
+ }
126
+ if (entry.authMode === AuthMode.Group) {
127
+ return html`${subjects.map((s) => html`<div class="ident">Group ${s.toString()}</div>`)}`;
128
+ }
129
+ return html`${subjects.map((s) => {
130
+ const known = this.client.nodes[nodeIdKey(s)];
131
+ const protectedMe = isProtectedAdmin(entry, this._controllerNodeId) && nodeIdKey(s) === nodeIdKey(this._controllerNodeId);
132
+ return html`<div class="ident ${protectedMe ? "me" : ""}">
133
+ ${protectedMe ? "This controller" : known ? getDeviceName(known) : "Unknown node"} ·
134
+ <span class="nid">${s.toString()}</span><span class="hex">0x${s.toString(16).toUpperCase()}</span>
135
+ </div>`;
136
+ })}`;
137
+ }
138
+ _renderTargets(entry) {
139
+ if (isWholeNode(entry)) return html`<span class="mut">Whole node</span>`;
140
+ return html`${entry.targets.map((t) => {
141
+ if (t.cluster != null)
142
+ return html`<span class="chip ep">EP ${t.endpoint ?? "*"} · ${this._clusterName(t.cluster)}</span>`;
143
+ if (t.deviceType != null)
144
+ return html`<span class="chip ep">EP ${t.endpoint ?? "*"} · device type ${t.deviceType}</span>`;
145
+ return html`<span class="chip ep">EP ${t.endpoint ?? "*"}</span>`;
146
+ })}`;
147
+ }
148
+ _renderRelationship(rel) {
149
+ if (rel.kind === "none") return html`<span class="mut">—</span>`;
150
+ const source = rel.sourceNodeId != null ? this.client.nodes[nodeIdKey(rel.sourceNodeId)] : void 0;
151
+ const label = source ? getDeviceName(source) : "node";
152
+ if (rel.kind === "overPrivileged") {
153
+ return html`<span class="chip bug"
154
+ ><ha-svg-icon .path=${mdiAlert}></ha-svg-icon> over-privileged binding ACL</span
155
+ >`;
156
+ }
157
+ return html`<span class="chip link"
158
+ ><ha-svg-icon .path=${mdiLink}></ha-svg-icon> backs binding · ${label} EP${rel.sourceEndpoint}</span
159
+ >`;
160
+ }
161
+ render() {
162
+ if (!this.node || this.cluster !== CLUSTER_ID) return nothing;
163
+ const entries = this._entries();
164
+ const allNodes = Object.values(this.client.nodes);
165
+ const rels = entries.map((e) => detectBindingRelationship(e, this.node.node_id, allNodes));
166
+ const capacity = aclCapacity(this.node);
167
+ const full = capacity.max > 0 && entries.length >= capacity.max;
168
+ const overPrivilegedKeys = /* @__PURE__ */ new Set();
169
+ entries.forEach((e, i) => {
170
+ if (rels[i].kind === "overPrivileged") overPrivilegedKeys.add(aclEntryKey(e));
171
+ });
172
+ return html`
173
+ <details class="command-panel">
174
+ <summary>Access Control — ACL Entries (${entries.length})</summary>
175
+ <div class="command-content">
176
+ ${overPrivilegedKeys.size >= 2 ? html`<div class="banner">
177
+ <span
178
+ >${overPrivilegedKeys.size} binding ACL entries grant Administer where Operate is
179
+ sufficient.</span
180
+ >
181
+ <md-outlined-button
182
+ ?disabled=${this._busy || !this.node.available}
183
+ @click=${handleAsync(() => this._fix(overPrivilegedKeys))}
184
+ >Fix all → Operate</md-outlined-button
185
+ >
186
+ </div>` : nothing}
187
+ <table class="acl">
188
+ <thead>
189
+ <tr>
190
+ <th>Privilege</th>
191
+ <th>Auth</th>
192
+ <th>Subjects</th>
193
+ <th>Targets</th>
194
+ <th>Relationship</th>
195
+ <th></th>
196
+ </tr>
197
+ </thead>
198
+ <tbody>
199
+ ${entries.map((e, i) => this._row(e, rels[i]))}
200
+ </tbody>
201
+ </table>
202
+ <md-outlined-button
203
+ ?disabled=${this._busy || full || !this.node.available}
204
+ title=${full ? "Access control list is full" : ""}
205
+ @click=${handleAsync(() => this._openAdd())}
206
+ >Add ACL entry</md-outlined-button
207
+ >
208
+ ${full ? html`<span class="mut full-note">List full (${capacity.max} entries)</span>` : nothing}
209
+ </div>
210
+ </details>
211
+ `;
212
+ }
213
+ _row(entry, rel) {
214
+ const protectedEntry = isProtectedAdmin(entry, this._controllerNodeId);
215
+ const overPrivileged = rel.kind === "overPrivileged";
216
+ return html`
217
+ <tr class=${overPrivileged ? "row-warn" : ""}>
218
+ <td>
219
+ <span class=${this._privilegeClass(entry.privilege)}
220
+ >${PRIVILEGE_NAMES[entry.privilege] ?? entry.privilege} · ${entry.privilege}</span
221
+ >
222
+ ${overPrivileged ? html`<div>
223
+ <md-outlined-button
224
+ class="fix"
225
+ ?disabled=${this._busy || !this.node.available}
226
+ @click=${handleAsync(() => this._fix(/* @__PURE__ */ new Set([aclEntryKey(entry)])))}
227
+ >Fix → Operate</md-outlined-button
228
+ >
229
+ </div>` : nothing}
230
+ </td>
231
+ <td>${AUTH_MODE_NAMES[entry.authMode] ?? entry.authMode}</td>
232
+ <td>${this._renderSubjects(entry)}</td>
233
+ <td>${this._renderTargets(entry)}</td>
234
+ <td>${this._renderRelationship(rel)}</td>
235
+ <td>
236
+ ${protectedEntry ? html`<ha-svg-icon
237
+ class="lock"
238
+ .path=${mdiLock}
239
+ title="Your controller's administrator entry — deleting it would lock you out."
240
+ ></ha-svg-icon>` : html`<md-outlined-button
241
+ class="danger"
242
+ ?disabled=${this._busy || !this.node.available}
243
+ @click=${handleAsync(() => this._delete(entry))}
244
+ >
245
+ <ha-svg-icon .path=${mdiTrashCan} slot="icon"></ha-svg-icon>delete
246
+ </md-outlined-button>`}
247
+ </td>
248
+ </tr>
249
+ `;
250
+ }
251
+ };
252
+ AccessControlClusterCommands.styles = [
253
+ BaseClusterCommands.styles,
254
+ css`
255
+ .acl {
256
+ width: 100%;
257
+ border-collapse: collapse;
258
+ margin-bottom: 12px;
259
+ }
260
+ .acl th {
261
+ text-align: left;
262
+ font-size: 11px;
263
+ text-transform: uppercase;
264
+ opacity: 0.6;
265
+ padding: 8px 10px;
266
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
267
+ }
268
+ .acl td {
269
+ padding: 10px;
270
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
271
+ vertical-align: middle;
272
+ }
273
+ .ident {
274
+ line-height: 1.4;
275
+ }
276
+ .ident.me {
277
+ color: var(--md-sys-color-primary);
278
+ font-weight: 600;
279
+ }
280
+ .ident .nid {
281
+ font-weight: 600;
282
+ }
283
+ .row-warn td {
284
+ background: var(--md-sys-color-error-container);
285
+ box-shadow: inset 3px 0 0 var(--md-sys-color-error);
286
+ }
287
+ .pv {
288
+ display: inline-block;
289
+ padding: 2px 8px;
290
+ border-radius: 999px;
291
+ font-size: 12px;
292
+ font-weight: 700;
293
+ }
294
+ .pv-5 {
295
+ background: var(--md-sys-color-error-container);
296
+ color: var(--md-sys-color-on-error-container);
297
+ }
298
+ .pv-4 {
299
+ background: var(--md-sys-color-tertiary-container);
300
+ color: var(--md-sys-color-on-tertiary-container);
301
+ }
302
+ .pv-3 {
303
+ background: var(--md-sys-color-primary-container);
304
+ color: var(--md-sys-color-on-primary-container);
305
+ }
306
+ .pv-1,
307
+ .pv-2 {
308
+ background: var(--md-sys-color-surface-container-highest);
309
+ color: var(--md-sys-color-on-surface-variant);
310
+ }
311
+ .chip {
312
+ display: inline-flex;
313
+ align-items: center;
314
+ gap: 4px;
315
+ padding: 3px 8px;
316
+ border-radius: 6px;
317
+ margin: 2px 4px 2px 0;
318
+ font-size: inherit;
319
+ background: var(--md-sys-color-surface-container-high);
320
+ color: var(--md-sys-color-on-surface);
321
+ }
322
+ .chip ha-svg-icon {
323
+ --mdc-icon-size: 14px;
324
+ width: 14px;
325
+ height: 14px;
326
+ }
327
+ .chip.ep {
328
+ background: var(--md-sys-color-secondary-container);
329
+ color: var(--md-sys-color-on-secondary-container);
330
+ }
331
+ .chip.me {
332
+ background: var(--md-sys-color-tertiary-container);
333
+ color: var(--md-sys-color-on-tertiary-container);
334
+ }
335
+ .chip.link {
336
+ background: var(--md-sys-color-primary-container);
337
+ color: var(--md-sys-color-on-primary-container);
338
+ }
339
+ .chip.bug {
340
+ background: var(--md-sys-color-error-container);
341
+ color: var(--md-sys-color-on-error-container);
342
+ }
343
+ .nid {
344
+ font-weight: 600;
345
+ }
346
+ .hex {
347
+ font-family: var(--monospace-font, monospace);
348
+ font-size: 10px;
349
+ opacity: 0.6;
350
+ margin-left: 4px;
351
+ }
352
+ .mut {
353
+ opacity: 0.6;
354
+ }
355
+ .full-note {
356
+ margin-left: 8px;
357
+ font-size: 12px;
358
+ }
359
+ .banner {
360
+ display: flex;
361
+ align-items: center;
362
+ justify-content: space-between;
363
+ gap: 12px;
364
+ padding: 10px 12px;
365
+ margin-bottom: 12px;
366
+ border-radius: 8px;
367
+ background: var(--md-sys-color-error-container);
368
+ color: var(--md-sys-color-on-error-container);
369
+ }
370
+ md-outlined-button.danger {
371
+ --md-outlined-button-label-text-color: var(--md-sys-color-error);
372
+ --md-outlined-button-outline-color: var(--md-sys-color-error);
373
+ }
374
+ md-outlined-button.fix {
375
+ margin-top: 4px;
376
+ --md-outlined-button-container-height: 28px;
377
+ }
378
+ `
379
+ ];
380
+ __decorateClass([
381
+ state()
382
+ ], AccessControlClusterCommands.prototype, "_busy", 2);
383
+ AccessControlClusterCommands = __decorateClass([
384
+ customElement("access-control-cluster-commands")
385
+ ], AccessControlClusterCommands);
386
+ registerClusterCommands(CLUSTER_ID, "access-control-cluster-commands");
387
+ //# sourceMappingURL=access-control-commands.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/pages/cluster-commands/clusters/access-control-commands.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,35 @@
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 { nothing, type CSSResultGroup, type TemplateResult } from "lit";
8
+ import "../../../components/ha-svg-icon.js";
9
+ import { BaseClusterCommands } from "../base-cluster-commands.js";
10
+ declare class BindingClusterCommands extends BaseClusterCommands {
11
+ private _unsubscribe?;
12
+ private _loadedKey;
13
+ private _busy;
14
+ updated(changed: Map<string, unknown>): void;
15
+ disconnectedCallback(): void;
16
+ private _ensureLoaded;
17
+ private _readInto;
18
+ private _clusterName;
19
+ private _targetNode;
20
+ private _openAdd;
21
+ private _run;
22
+ private _delete;
23
+ private _fixAcl;
24
+ render(): typeof nothing | TemplateResult<1>;
25
+ private _row;
26
+ private _aclCell;
27
+ static styles: CSSResultGroup;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ "binding-cluster-commands": BindingClusterCommands;
32
+ }
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=binding-commands.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binding-commands.d.ts","sourceRoot":"","sources":["../../../../../src/pages/cluster-commands/clusters/binding-commands.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,sCAAsC,CAAC;AAE9C,OAAO,EAAa,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEnF,OAAO,oCAAoC,CAAC;AAe5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKlE,cACM,sBAAuB,SAAQ,mBAAmB;IACpD,OAAO,CAAC,YAAY,CAAC,CAAa;IAClC,OAAO,CAAC,UAAU,CAAM;IACf,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,QAM7C;IAEQ,oBAAoB,SAG5B;YAGa,aAAa;YAyBb,SAAS;IAMvB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,WAAW;YAKL,QAAQ;YAIR,IAAI;YAWJ,OAAO;YAUP,OAAO;IAWZ,MAAM,uCAgCd;IAED,OAAO,CAAC,IAAI;IAiCZ,OAAO,CAAC,QAAQ;IAgBhB,OAAgB,MAAM,EAAE,cAAc,CAqDpC;CACL;AAID,OAAO,CAAC,MAAM,CAAC,CAAC;IACZ,UAAU,qBAAqB;QAC3B,0BAA0B,EAAE,sBAAsB,CAAC;KACtD;CACJ"}