@riddix/hamh 2.1.0-alpha.833 → 2.1.0-alpha.835
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.
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ of port forwarding etc.
|
|
|
37
37
|
|
|
38
38
|
| Channel | Branch | Current Version | Description |
|
|
39
39
|
|---------|--------|-----------------|-------------|
|
|
40
|
-
| **Stable** | `main` | v2.0.
|
|
40
|
+
| **Stable** | `main` | v2.0.50 | Production-ready, recommended for most users |
|
|
41
41
|
| **Alpha** | `alpha` | v2.1.0-alpha.x (next) | Currently level with Stable; next pre-release lands here first |
|
|
42
42
|
| **Testing** | `testing` | v4.1.0-testing.x | ⚠️ **Highly unstable!** Experimental features, may break |
|
|
43
43
|
|
|
@@ -61,9 +61,29 @@ Re-assign the affected devices to their rooms after they reconnect. See the [doc
|
|
|
61
61
|
## 🎉 What's New
|
|
62
62
|
|
|
63
63
|
<details>
|
|
64
|
-
<summary><strong>📦 Stable Features (v2.0.
|
|
64
|
+
<summary><strong>📦 Stable Features (v2.0.50)</strong> - Click to expand</summary>
|
|
65
|
+
|
|
66
|
+
**New in v2.0.50:**
|
|
67
|
+
|
|
68
|
+
- 🆔 **Stable device identity (opt-in)**: endpoints keep their identity when an entity is renamed or re-registered, keyed on the HA registry unique id; enable the `stableIdentity` feature flag per bridge ([#404](https://github.com/RiDDiX/home-assistant-matter-hub/issues/404), [#407](https://github.com/RiDDiX/home-assistant-matter-hub/issues/407))
|
|
69
|
+
- ⚡ **Energy suite stage 1**: consumption sensors expose an **Electrical Meter** that Google Home and SmartThings render, home batteries become a **Battery Storage** device with signed charge/discharge power and lifetime energy, and voltage/current/energy sensors group onto one endpoint via new mapping fields
|
|
70
|
+
- 🪟 **Covers report their own movement**: controllers get the moving-to-stopped edge even when the integration never reports opening/closing, clears the stuck "Opening" on Echo Show ([#429](https://github.com/RiDDiX/home-assistant-matter-hub/issues/429)), and discrete commands cancel a pending slider action ([#411](https://github.com/RiDDiX/home-assistant-matter-hub/issues/411))
|
|
71
|
+
- 🧙 **Commissioning preflight in the wizard**: port, mDNS and controller checks with fix-it buttons before the QR code, plus a label guard and an empty-filter block
|
|
72
|
+
- 🔋 **Per-entity "Disable battery mapping"** switch ([#427](https://github.com/RiDDiX/home-assistant-matter-hub/issues/427))
|
|
73
|
+
- 🧩 **Auto-grouped sensors read sub-entities past the bridge filter** ([#426](https://github.com/RiDDiX/home-assistant-matter-hub/issues/426))
|
|
74
|
+
- 📡 **mDNS records refresh when interface addresses change**, recovers Google Home after an IPv6 prefix change ([#415](https://github.com/RiDDiX/home-assistant-matter-hub/issues/415)), and **mDNS IPv4 can be disabled** ([#417](https://github.com/RiDDiX/home-assistant-matter-hub/issues/417))
|
|
75
|
+
- 🖥 **Server mode shares the dead-session timeout and session diagnostics** ([#428](https://github.com/RiDDiX/home-assistant-matter-hub/issues/428))
|
|
76
|
+
- 🔒 **Per-lock PIN length overrides** and an **opt-in passthrough that programs the physical lock usercode** ([#418](https://github.com/RiDDiX/home-assistant-matter-hub/issues/418))
|
|
77
|
+
- 🔘 **Opt-in to suppress the momentary on/off flip for scripts** ([#423](https://github.com/RiDDiX/home-assistant-matter-hub/issues/423))
|
|
78
|
+
- 🚨 **Smoke alarms report battery, fault and expressed state** ([#408](https://github.com/RiDDiX/home-assistant-matter-hub/issues/408))
|
|
79
|
+
- 💡 **Light level and color-temperature step control** ([#412](https://github.com/RiDDiX/home-assistant-matter-hub/issues/412))
|
|
80
|
+
- 📷 **Camera bridges enable Matter-over-TCP** for SmartThings live view, and camera endpoints set the mandatory AV stream attributes ([#419](https://github.com/RiDDiX/home-assistant-matter-hub/issues/419))
|
|
81
|
+
- 🔧 **Valve and cover overrides route On/Off to their services** ([#65](https://github.com/RiDDiX/home-assistant-matter-hub/issues/65))
|
|
82
|
+
- 🌍 **Brazilian Portuguese** added ([#420](https://github.com/RiDDiX/home-assistant-matter-hub/issues/420))
|
|
83
|
+
- 🧵 **matter.js 0.17.7**
|
|
84
|
+
- ⬆️ Dependency vulnerabilities resolved (websocket-driver, react-router 8, fast-uri, js-yaml and friends)
|
|
65
85
|
|
|
66
|
-
**
|
|
86
|
+
**Previously in v2.0.49:**
|
|
67
87
|
|
|
68
88
|
- 🌀 **Fan speed restore**: speed is remembered across transactions and restarts, localized wind presets map through, Auto is gated on a real auto preset, and an opt-in restores speed on power-on ([#387](https://github.com/RiDDiX/home-assistant-matter-hub/issues/387))
|
|
69
89
|
- 📡 **Session recovery hardening**: subscription jitter dropped, superseded sessions of a reconnecting peer swept, stale sessions closed only after a real quiet period, plus opt-in fast recovery ([#386](https://github.com/RiDDiX/home-assistant-matter-hub/issues/386), [#400](https://github.com/RiDDiX/home-assistant-matter-hub/issues/400), [#398](https://github.com/RiDDiX/home-assistant-matter-hub/issues/398), [#287](https://github.com/RiDDiX/home-assistant-matter-hub/issues/287))
|
|
@@ -235,7 +255,7 @@ Re-assign the affected devices to their rooms after they reconnect. See the [doc
|
|
|
235
255
|
<details>
|
|
236
256
|
<summary><strong>🧪 Alpha Features (v2.1.0-alpha.x)</strong> - Click to expand</summary>
|
|
237
257
|
|
|
238
|
-
**Alpha is currently level with Stable (v2.0.
|
|
258
|
+
**Alpha is currently level with Stable (v2.0.50).** All alpha work up to the latest pre-release has been promoted into v2.0.50. New alpha work continues from the next pre-release tag onward and will appear here as development progresses.
|
|
239
259
|
|
|
240
260
|
</details>
|
|
241
261
|
|
package/dist/backend/cli.js
CHANGED
|
@@ -162676,6 +162676,8 @@ var FeaturedBase7 = WindowCoveringServer.with(
|
|
|
162676
162676
|
"PositionAwareTilt"
|
|
162677
162677
|
);
|
|
162678
162678
|
var coverDebounce = /* @__PURE__ */ new WeakMap();
|
|
162679
|
+
var DEFAULT_OPTIMISTIC_MOVEMENT_TIMEOUT_MS = 12e4;
|
|
162680
|
+
var optimisticMovementTimeoutMs = DEFAULT_OPTIMISTIC_MOVEMENT_TIMEOUT_MS;
|
|
162679
162681
|
function getCoverDebounce(endpoint) {
|
|
162680
162682
|
let st = coverDebounce.get(endpoint);
|
|
162681
162683
|
if (!st) {
|
|
@@ -162705,6 +162707,22 @@ function clearPendingTilt(st) {
|
|
|
162705
162707
|
}
|
|
162706
162708
|
st.pendingTilt = null;
|
|
162707
162709
|
}
|
|
162710
|
+
var coverOptimistic = /* @__PURE__ */ new WeakMap();
|
|
162711
|
+
function getCoverOptimistic(endpoint) {
|
|
162712
|
+
let st = coverOptimistic.get(endpoint);
|
|
162713
|
+
if (!st) {
|
|
162714
|
+
st = { lift: null, tilt: null };
|
|
162715
|
+
coverOptimistic.set(endpoint, st);
|
|
162716
|
+
}
|
|
162717
|
+
return st;
|
|
162718
|
+
}
|
|
162719
|
+
function clearOptimisticAxis(st, axis) {
|
|
162720
|
+
const entry = st[axis];
|
|
162721
|
+
if (entry?.timer) {
|
|
162722
|
+
clearTimeout(entry.timer);
|
|
162723
|
+
}
|
|
162724
|
+
st[axis] = null;
|
|
162725
|
+
}
|
|
162708
162726
|
var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedBase7 {
|
|
162709
162727
|
// Written and read within one synchronous command (upOrOpen fires lift then
|
|
162710
162728
|
// tilt on the same instance), so these stay as instance fields (#246).
|
|
@@ -162734,6 +162752,12 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162734
162752
|
clearPendingTilt(st);
|
|
162735
162753
|
coverDebounce.delete(this.endpoint);
|
|
162736
162754
|
}
|
|
162755
|
+
const optimistic = coverOptimistic.get(this.endpoint);
|
|
162756
|
+
if (optimistic) {
|
|
162757
|
+
clearOptimisticAxis(optimistic, "lift");
|
|
162758
|
+
clearOptimisticAxis(optimistic, "tilt");
|
|
162759
|
+
coverOptimistic.delete(this.endpoint);
|
|
162760
|
+
}
|
|
162737
162761
|
await super[Symbol.asyncDispose]();
|
|
162738
162762
|
}
|
|
162739
162763
|
async initialize() {
|
|
@@ -162788,16 +162812,46 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162788
162812
|
config11.getCurrentTiltPosition(state, this.agent)
|
|
162789
162813
|
);
|
|
162790
162814
|
const currentTilt100ths = currentTilt != null ? currentTilt * 100 : null;
|
|
162791
|
-
const
|
|
162792
|
-
const
|
|
162793
|
-
if (
|
|
162794
|
-
|
|
162815
|
+
const optimistic = getCoverOptimistic(this.endpoint);
|
|
162816
|
+
const resolveAxisStatus = (axis, positionAware, current100ths, existingTarget) => {
|
|
162817
|
+
if (movementStatus !== MovementStatus.Stopped) {
|
|
162818
|
+
clearOptimisticAxis(optimistic, axis);
|
|
162819
|
+
return movementStatus;
|
|
162820
|
+
}
|
|
162821
|
+
const entry = optimistic[axis];
|
|
162822
|
+
if (!entry) {
|
|
162823
|
+
return MovementStatus.Stopped;
|
|
162824
|
+
}
|
|
162825
|
+
const reachedTarget = positionAware && current100ths != null && existingTarget != null && Math.abs(current100ths - existingTarget) < 100;
|
|
162826
|
+
const expired = Date.now() - entry.startedAt >= optimisticMovementTimeoutMs;
|
|
162827
|
+
if (reachedTarget || expired) {
|
|
162828
|
+
clearOptimisticAxis(optimistic, axis);
|
|
162829
|
+
return MovementStatus.Stopped;
|
|
162830
|
+
}
|
|
162831
|
+
return entry.status;
|
|
162832
|
+
};
|
|
162833
|
+
const liftStatus = this.features.lift ? resolveAxisStatus(
|
|
162834
|
+
"lift",
|
|
162835
|
+
this.features.positionAwareLift,
|
|
162836
|
+
currentLift100ths,
|
|
162837
|
+
this.state.targetPositionLiftPercent100ths
|
|
162838
|
+
) : MovementStatus.Stopped;
|
|
162839
|
+
const tiltStatus = this.features.tilt ? resolveAxisStatus(
|
|
162840
|
+
"tilt",
|
|
162841
|
+
this.features.positionAwareTilt,
|
|
162842
|
+
currentTilt100ths,
|
|
162843
|
+
this.state.targetPositionTiltPercent100ths
|
|
162844
|
+
) : MovementStatus.Stopped;
|
|
162845
|
+
const globalStatus = liftStatus !== MovementStatus.Stopped ? liftStatus : tiltStatus;
|
|
162846
|
+
const inferTarget = (status3, current100ths, existing100ths) => {
|
|
162847
|
+
if (status3 === MovementStatus.Stopped) return current100ths;
|
|
162848
|
+
if (status3 === MovementStatus.Opening) {
|
|
162795
162849
|
if (existing100ths != null && current100ths != null && existing100ths < current100ths) {
|
|
162796
162850
|
return existing100ths;
|
|
162797
162851
|
}
|
|
162798
162852
|
return 0;
|
|
162799
162853
|
}
|
|
162800
|
-
if (
|
|
162854
|
+
if (status3 === MovementStatus.Closing) {
|
|
162801
162855
|
if (existing100ths != null && current100ths != null && existing100ths > current100ths) {
|
|
162802
162856
|
return existing100ths;
|
|
162803
162857
|
}
|
|
@@ -162806,12 +162860,12 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162806
162860
|
return existing100ths ?? current100ths;
|
|
162807
162861
|
};
|
|
162808
162862
|
logger218.debug(
|
|
162809
|
-
`Cover update for ${entity.entity_id}: state=${state.state}, lift=${currentLift}%, tilt=${currentTilt}%,
|
|
162863
|
+
`Cover update for ${entity.entity_id}: state=${state.state}, lift=${currentLift}%, tilt=${currentTilt}%, ha=${MovementStatus[movementStatus]}, effective=${MovementStatus[globalStatus]}`
|
|
162810
162864
|
);
|
|
162811
162865
|
const overrideType = config11.getCoverType?.(state, this.agent);
|
|
162812
162866
|
const overrideEndProduct = config11.getEndProductType?.(state, this.agent);
|
|
162813
162867
|
const previousStatus = this.state.operationalStatus?.global;
|
|
162814
|
-
const startedMoving =
|
|
162868
|
+
const startedMoving = globalStatus !== MovementStatus.Stopped && previousStatus === MovementStatus.Stopped;
|
|
162815
162869
|
const appliedPatch = applyPatchState(
|
|
162816
162870
|
this.state,
|
|
162817
162871
|
{
|
|
@@ -162823,20 +162877,22 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162823
162877
|
// (Datasource.js:414), then through attrsChanged.emit (#328).
|
|
162824
162878
|
...this.features.positionAwareLift ? {
|
|
162825
162879
|
targetPositionLiftPercent100ths: inferTarget(
|
|
162880
|
+
liftStatus,
|
|
162826
162881
|
currentLift100ths,
|
|
162827
162882
|
this.state.targetPositionLiftPercent100ths
|
|
162828
162883
|
)
|
|
162829
162884
|
} : {},
|
|
162830
162885
|
...this.features.positionAwareTilt ? {
|
|
162831
162886
|
targetPositionTiltPercent100ths: inferTarget(
|
|
162887
|
+
tiltStatus,
|
|
162832
162888
|
currentTilt100ths,
|
|
162833
162889
|
this.state.targetPositionTiltPercent100ths
|
|
162834
162890
|
)
|
|
162835
162891
|
} : {},
|
|
162836
162892
|
operationalStatus: {
|
|
162837
|
-
global:
|
|
162838
|
-
...this.features.lift ? { lift:
|
|
162839
|
-
...this.features.tilt ? { tilt:
|
|
162893
|
+
global: globalStatus,
|
|
162894
|
+
...this.features.lift ? { lift: liftStatus } : {},
|
|
162895
|
+
...this.features.tilt ? { tilt: tiltStatus } : {}
|
|
162840
162896
|
},
|
|
162841
162897
|
...this.features.positionAwareLift && !startedMoving ? {
|
|
162842
162898
|
currentPositionLiftPercent100ths: currentLift100ths
|
|
@@ -162855,6 +162911,70 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162855
162911
|
);
|
|
162856
162912
|
}
|
|
162857
162913
|
}
|
|
162914
|
+
// Write operationalStatus for the moved axis in the command interaction while
|
|
162915
|
+
// preserving the other axis. matter.js's own reactors are disabled (#328), so
|
|
162916
|
+
// this is the only writer. Global mirrors matter.js: lift wins, else tilt.
|
|
162917
|
+
writeOperationalStatus(overrides) {
|
|
162918
|
+
const current = this.state.operationalStatus;
|
|
162919
|
+
const lift = this.features.lift ? overrides.lift ?? current?.lift ?? MovementStatus.Stopped : void 0;
|
|
162920
|
+
const tilt = this.features.tilt ? overrides.tilt ?? current?.tilt ?? MovementStatus.Stopped : void 0;
|
|
162921
|
+
const global3 = lift != null && lift !== MovementStatus.Stopped ? lift : tilt ?? MovementStatus.Stopped;
|
|
162922
|
+
this.state.operationalStatus = {
|
|
162923
|
+
global: global3,
|
|
162924
|
+
...this.features.lift ? { lift } : {},
|
|
162925
|
+
...this.features.tilt ? { tilt } : {}
|
|
162926
|
+
};
|
|
162927
|
+
}
|
|
162928
|
+
// Record the optimistic direction and emit it now so a controller gets the
|
|
162929
|
+
// moving->stopped edge even when HA never reports a transitional state (#429).
|
|
162930
|
+
startOptimisticMovement(axis, status3) {
|
|
162931
|
+
const optimistic = getCoverOptimistic(this.endpoint);
|
|
162932
|
+
clearOptimisticAxis(optimistic, axis);
|
|
162933
|
+
const endpoint = this.endpoint;
|
|
162934
|
+
const hasLift = this.features.lift;
|
|
162935
|
+
const hasTilt = this.features.tilt;
|
|
162936
|
+
const hasPositionLift = this.features.positionAwareLift;
|
|
162937
|
+
const hasPositionTilt = this.features.positionAwareTilt;
|
|
162938
|
+
const startedAt = Date.now();
|
|
162939
|
+
const timer = setTimeout(() => {
|
|
162940
|
+
void (async () => {
|
|
162941
|
+
try {
|
|
162942
|
+
const st = coverOptimistic.get(endpoint);
|
|
162943
|
+
const entry = st?.[axis];
|
|
162944
|
+
if (!entry || Date.now() - entry.startedAt < optimisticMovementTimeoutMs) {
|
|
162945
|
+
return;
|
|
162946
|
+
}
|
|
162947
|
+
st[axis] = null;
|
|
162948
|
+
const other = axis === "lift" ? "tilt" : "lift";
|
|
162949
|
+
const otherStatus = st[other]?.status ?? MovementStatus.Stopped;
|
|
162950
|
+
const liftStatus = axis === "lift" ? MovementStatus.Stopped : otherStatus;
|
|
162951
|
+
const tiltStatus = axis === "tilt" ? MovementStatus.Stopped : otherStatus;
|
|
162952
|
+
const global3 = liftStatus !== MovementStatus.Stopped ? liftStatus : tiltStatus;
|
|
162953
|
+
const wc = endpoint.state.windowCovering ?? {};
|
|
162954
|
+
await endpoint.setStateOf(_WindowCoveringServerBase, {
|
|
162955
|
+
...axis === "lift" && hasPositionLift && wc.currentPositionLiftPercent100ths != null ? {
|
|
162956
|
+
targetPositionLiftPercent100ths: wc.currentPositionLiftPercent100ths
|
|
162957
|
+
} : {},
|
|
162958
|
+
...axis === "tilt" && hasPositionTilt && wc.currentPositionTiltPercent100ths != null ? {
|
|
162959
|
+
targetPositionTiltPercent100ths: wc.currentPositionTiltPercent100ths
|
|
162960
|
+
} : {},
|
|
162961
|
+
operationalStatus: {
|
|
162962
|
+
global: global3,
|
|
162963
|
+
...hasLift ? { lift: liftStatus } : {},
|
|
162964
|
+
...hasTilt ? { tilt: tiltStatus } : {}
|
|
162965
|
+
}
|
|
162966
|
+
});
|
|
162967
|
+
} catch (error) {
|
|
162968
|
+
logger218.debug(
|
|
162969
|
+
`Optimistic ${axis} timeout write failed (endpoint may be closing): ${error}`
|
|
162970
|
+
);
|
|
162971
|
+
}
|
|
162972
|
+
})();
|
|
162973
|
+
}, optimisticMovementTimeoutMs);
|
|
162974
|
+
timer.unref?.();
|
|
162975
|
+
optimistic[axis] = { status: status3, startedAt, timer };
|
|
162976
|
+
this.writeOperationalStatus({ [axis]: status3 });
|
|
162977
|
+
}
|
|
162858
162978
|
async handleMovement(type, _, direction, targetPercent100ths) {
|
|
162859
162979
|
const currentLift = this.state.currentPositionLiftPercent100ths ?? 0;
|
|
162860
162980
|
const currentTilt = this.state.currentPositionTiltPercent100ths ?? 0;
|
|
@@ -162899,11 +163019,19 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162899
163019
|
const st = getCoverDebounce(this.endpoint);
|
|
162900
163020
|
clearPendingLift(st);
|
|
162901
163021
|
clearPendingTilt(st);
|
|
163022
|
+
const optimistic = getCoverOptimistic(this.endpoint);
|
|
163023
|
+
clearOptimisticAxis(optimistic, "lift");
|
|
163024
|
+
clearOptimisticAxis(optimistic, "tilt");
|
|
163025
|
+
this.writeOperationalStatus({
|
|
163026
|
+
...this.features.lift ? { lift: MovementStatus.Stopped } : {},
|
|
163027
|
+
...this.features.tilt ? { tilt: MovementStatus.Stopped } : {}
|
|
163028
|
+
});
|
|
162902
163029
|
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
162903
163030
|
homeAssistant.callAction(this.state.config.stopCover(void 0, this.agent));
|
|
162904
163031
|
}
|
|
162905
163032
|
handleLiftOpen() {
|
|
162906
163033
|
clearPendingLift(getCoverDebounce(this.endpoint));
|
|
163034
|
+
this.startOptimisticMovement("lift", MovementStatus.Opening);
|
|
162907
163035
|
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
162908
163036
|
const action = this.state.config.openCoverLift(void 0, this.agent);
|
|
162909
163037
|
logger218.info(`handleLiftOpen: calling action=${action.action}`);
|
|
@@ -162911,6 +163039,7 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162911
163039
|
}
|
|
162912
163040
|
handleLiftClose() {
|
|
162913
163041
|
clearPendingLift(getCoverDebounce(this.endpoint));
|
|
163042
|
+
this.startOptimisticMovement("lift", MovementStatus.Closing);
|
|
162914
163043
|
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
162915
163044
|
const action = this.state.config.closeCoverLift(void 0, this.agent);
|
|
162916
163045
|
logger218.info(`handleLiftClose: calling action=${action.action}`);
|
|
@@ -162923,6 +163052,10 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162923
163052
|
return;
|
|
162924
163053
|
}
|
|
162925
163054
|
this.state.targetPositionLiftPercent100ths = targetPercent100ths;
|
|
163055
|
+
this.startOptimisticMovement(
|
|
163056
|
+
"lift",
|
|
163057
|
+
currentPositionMatter != null && targetPercent100ths < currentPositionMatter ? MovementStatus.Opening : MovementStatus.Closing
|
|
163058
|
+
);
|
|
162926
163059
|
const targetPosition = targetPercent100ths / 100;
|
|
162927
163060
|
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
162928
163061
|
const action = config11.setLiftPosition(targetPosition, this.agent);
|
|
@@ -162959,6 +163092,7 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162959
163092
|
const st = getCoverDebounce(this.endpoint);
|
|
162960
163093
|
clearPendingTilt(st);
|
|
162961
163094
|
if (st.pendingLift?.action.action.includes("tilt")) clearPendingLift(st);
|
|
163095
|
+
this.startOptimisticMovement("tilt", MovementStatus.Opening);
|
|
162962
163096
|
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
162963
163097
|
homeAssistant.callAction(
|
|
162964
163098
|
this.state.config.openCoverTilt(void 0, this.agent)
|
|
@@ -162968,6 +163102,7 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162968
163102
|
const st = getCoverDebounce(this.endpoint);
|
|
162969
163103
|
clearPendingTilt(st);
|
|
162970
163104
|
if (st.pendingLift?.action.action.includes("tilt")) clearPendingLift(st);
|
|
163105
|
+
this.startOptimisticMovement("tilt", MovementStatus.Closing);
|
|
162971
163106
|
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
162972
163107
|
homeAssistant.callAction(
|
|
162973
163108
|
this.state.config.closeCoverTilt(void 0, this.agent)
|
|
@@ -162980,6 +163115,10 @@ var WindowCoveringServerBase = class _WindowCoveringServerBase extends FeaturedB
|
|
|
162980
163115
|
return;
|
|
162981
163116
|
}
|
|
162982
163117
|
this.state.targetPositionTiltPercent100ths = targetPercent100ths;
|
|
163118
|
+
this.startOptimisticMovement(
|
|
163119
|
+
"tilt",
|
|
163120
|
+
currentPositionMatter != null && targetPercent100ths < currentPositionMatter ? MovementStatus.Opening : MovementStatus.Closing
|
|
163121
|
+
);
|
|
162983
163122
|
const targetPosition = targetPercent100ths / 100;
|
|
162984
163123
|
const homeAssistant = this.agent.get(HomeAssistantEntityBehavior);
|
|
162985
163124
|
const action = config11.setTiltPosition(targetPosition, this.agent);
|
|
@@ -169440,20 +169579,22 @@ function resolveCleanAreaIds(selectedAreas, cleanAreaRooms) {
|
|
|
169440
169579
|
}
|
|
169441
169580
|
return haAreaIds;
|
|
169442
169581
|
}
|
|
169582
|
+
var cleaningStates = [
|
|
169583
|
+
VacuumState.cleaning,
|
|
169584
|
+
VacuumState.segment_cleaning,
|
|
169585
|
+
VacuumState.zone_cleaning,
|
|
169586
|
+
VacuumState.spot_cleaning,
|
|
169587
|
+
VacuumState.mop_cleaning,
|
|
169588
|
+
VacuumState.paused
|
|
169589
|
+
];
|
|
169590
|
+
function vacuumIsCleaning(state) {
|
|
169591
|
+
return state != null && cleaningStates.includes(state);
|
|
169592
|
+
}
|
|
169443
169593
|
var vacuumRvcRunModeConfig = {
|
|
169444
169594
|
getCurrentMode: (entity) => {
|
|
169445
|
-
const
|
|
169446
|
-
const cleaningStates = [
|
|
169447
|
-
VacuumState.cleaning,
|
|
169448
|
-
VacuumState.segment_cleaning,
|
|
169449
|
-
VacuumState.zone_cleaning,
|
|
169450
|
-
VacuumState.spot_cleaning,
|
|
169451
|
-
VacuumState.mop_cleaning,
|
|
169452
|
-
VacuumState.paused
|
|
169453
|
-
];
|
|
169454
|
-
const isCleaning = cleaningStates.includes(state);
|
|
169595
|
+
const isCleaning = vacuumIsCleaning(entity.state);
|
|
169455
169596
|
logger235.debug(
|
|
169456
|
-
`Vacuum state: "${state}", isCleaning: ${isCleaning}, currentMode: ${isCleaning ? "Cleaning" : "Idle"}`
|
|
169597
|
+
`Vacuum state: "${entity.state}", isCleaning: ${isCleaning}, currentMode: ${isCleaning ? "Cleaning" : "Idle"}`
|
|
169457
169598
|
);
|
|
169458
169599
|
return isCleaning ? 1 /* Cleaning */ : 0 /* Idle */;
|
|
169459
169600
|
},
|
|
@@ -169787,11 +169928,12 @@ function createCleanAreaRvcRunModeServer(cleanAreaRooms) {
|
|
|
169787
169928
|
currentMode: 0 /* Idle */
|
|
169788
169929
|
});
|
|
169789
169930
|
}
|
|
169790
|
-
var VacuumRvcRunModeServer = RvcRunModeServer2(vacuumRvcRunModeConfig);
|
|
169791
169931
|
|
|
169792
169932
|
// src/matter/endpoints/legacy/vacuum/behaviors/vacuum-on-off-server.ts
|
|
169793
169933
|
var VacuumOnOffServer = OnOffServer2({
|
|
169794
|
-
|
|
169934
|
+
// Derive from the entity directly. Reading the sibling rvcRunMode behavior
|
|
169935
|
+
// crashed with a class mismatch and would lag one tick behind anyway (#428).
|
|
169936
|
+
isOn: (entity) => vacuumIsCleaning(entity.state),
|
|
169795
169937
|
turnOn: () => ({ action: "vacuum.start" }),
|
|
169796
169938
|
turnOff: () => ({ action: "vacuum.return_to_base" })
|
|
169797
169939
|
}).with();
|
|
@@ -170604,7 +170746,7 @@ function isDockedCharging(entity, batteryPercent) {
|
|
|
170604
170746
|
}
|
|
170605
170747
|
function mapVacuumOperationalState(entity, batteryPercent = batteryFromAttributes(entity.attributes), chargingState = null) {
|
|
170606
170748
|
const state = entity.state;
|
|
170607
|
-
const
|
|
170749
|
+
const cleaningStates2 = [
|
|
170608
170750
|
VacuumState.cleaning,
|
|
170609
170751
|
VacuumState.segment_cleaning,
|
|
170610
170752
|
VacuumState.zone_cleaning,
|
|
@@ -170617,7 +170759,7 @@ function mapVacuumOperationalState(entity, batteryPercent = batteryFromAttribute
|
|
|
170617
170759
|
operationalState = charging ? RvcOperationalState4.OperationalState.Charging : RvcOperationalState4.OperationalState.Docked;
|
|
170618
170760
|
} else if (state === VacuumState.returning) {
|
|
170619
170761
|
operationalState = RvcOperationalState4.OperationalState.SeekingCharger;
|
|
170620
|
-
} else if (
|
|
170762
|
+
} else if (cleaningStates2.includes(state)) {
|
|
170621
170763
|
operationalState = RvcOperationalState4.OperationalState.Running;
|
|
170622
170764
|
} else if (state === VacuumState.paused) {
|
|
170623
170765
|
operationalState = RvcOperationalState4.OperationalState.Paused;
|
|
@@ -463,4 +463,4 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
|
|
|
463
463
|
To pick up a draggable item, press the space bar.
|
|
464
464
|
While dragging, use the arrow keys to move the item.
|
|
465
465
|
Press space again to drop the item in its new position, or press escape to cancel.
|
|
466
|
-
`},X2e={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function Z2e(e){let{announcements:t=X2e,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=Y2e}=e,{announce:a,announcement:o}=G2e(),s=p9(`DndLiveRegion`),[c,l]=(0,C.useState)(!1);if((0,C.useEffect)(()=>{l(!0)},[]),q2e((0,C.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=C.createElement(C.Fragment,null,C.createElement(U2e,{id:r,value:i.draggable}),C.createElement(W2e,{id:s,announcement:o}));return n?(0,Sa.createPortal)(u,n):u}var y9;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(y9||={});function b9(){}function Q2e(e,t){return(0,C.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function $2e(){var e=[...arguments];return(0,C.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var x9=Object.freeze({x:0,y:0});function e4e(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function t4e(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function n4e(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function r4e(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function i4e(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function a4e(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var o4e=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=a4e(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=e4e(a4e(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(t4e)},s4e=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=r4e(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=r4e(r),o=i.reduce((e,t,r)=>e+e4e(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(t4e)};function c4e(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var l4e=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=c4e(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(n4e)};function u4e(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function d4e(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:x9}function f4e(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var p4e=f4e(1);function m4e(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function h4e(e,t,n){let r=m4e(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var g4e={ignoreTransform:!1};function S9(e,t){t===void 0&&(t=g4e);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=n9(e).getComputedStyle(e);t&&(n=h4e(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function _4e(e){return S9(e,{ignoreTransform:!0})}function v4e(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function y4e(e,t){return t===void 0&&(t=n9(e).getComputedStyle(e)),t.position===`fixed`}function b4e(e,t){t===void 0&&(t=n9(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`?n.test(r):!1})}function C9(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(r9(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!i9(i)||F2e(i)||n.includes(i))return n;let a=n9(e).getComputedStyle(i);return i!==e&&b4e(i,a)&&n.push(i),y4e(i,a)?n:r(i.parentNode)}return e?r(e):n}function x4e(e){let[t]=C9(e,1);return t??null}function w9(e){return!$7||!e?null:e9(e)?e:t9(e)?r9(e)||e===a9(e).scrollingElement?window:i9(e)?e:null:null}function S4e(e){return e9(e)?e.scrollX:e.scrollLeft}function C4e(e){return e9(e)?e.scrollY:e.scrollTop}function T9(e){return{x:S4e(e),y:C4e(e)}}var E9;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(E9||={});function w4e(e){return!$7||!e?!1:e===document.scrollingElement}function T4e(e){let t={x:0,y:0},n=w4e(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var E4e={x:.2,y:.2};function D4e(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=E4e);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=T4e(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=E9.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=E9.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=E9.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=E9.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function O4e(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function k4e(e){return e.reduce((e,t)=>m9(e,T9(t)),x9)}function A4e(e){return e.reduce((e,t)=>e+S4e(t),0)}function j4e(e){return e.reduce((e,t)=>e+C4e(t),0)}function M4e(e,t){if(t===void 0&&(t=S9),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);x4e(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var N4e=[[`x`,[`left`,`right`],A4e],[`y`,[`top`,`bottom`],j4e]],D9=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=C9(t),r=k4e(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of N4e)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},O9=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function P4e(e){let{EventTarget:t}=n9(e);return e instanceof t?e:a9(e)}function k9(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t?r>t.y:!1}var A9;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(A9||={});function F4e(e){e.preventDefault()}function I4e(e){e.stopPropagation()}var j9;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(j9||={});var L4e={start:[j9.Space,j9.Enter],cancel:[j9.Esc],end:[j9.Space,j9.Enter,j9.Tab]},R4e=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case j9.Right:return{...n,x:n.x+25};case j9.Left:return{...n,x:n.x-25};case j9.Down:return{...n,y:n.y+25};case j9.Up:return{...n,y:n.y-25}}},M9=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new O9(a9(t)),this.windowListeners=new O9(n9(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(A9.Resize,this.handleCancel),this.windowListeners.add(A9.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(A9.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&M4e(n),t(x9)}handleKeyDown(e){if(g9(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=L4e,coordinateGetter:a=R4e,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:x9;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=h9(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=T4e(n),p=O4e(n),m={x:Math.min(i===j9.Right?p.right-p.width/2:p.right,Math.max(i===j9.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===j9.Down?p.bottom-p.height/2:p.bottom,Math.max(i===j9.Down?p.top:p.top+p.height/2,u.y))},h=i===j9.Right&&!s||i===j9.Left&&!c,g=i===j9.Down&&!l||i===j9.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===j9.Right&&e<=d.x||i===j9.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===j9.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===j9.Down&&e<=d.y||i===j9.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===j9.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,m9(h9(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};M9.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=L4e,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function z4e(e){return!!(e&&`distance`in e)}function B4e(e){return!!(e&&`delay`in e)}var N9=class{constructor(e,t,n){n===void 0&&(n=P4e(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=a9(i),this.documentListeners=new O9(this.document),this.listeners=new O9(n),this.windowListeners=new O9(n9(i)),this.initialCoordinates=_9(r)??x9,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(A9.Resize,this.handleCancel),this.windowListeners.add(A9.DragStart,F4e),this.windowListeners.add(A9.VisibilityChange,this.handleCancel),this.windowListeners.add(A9.ContextMenu,F4e),this.documentListeners.add(A9.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(B4e(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(z4e(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(A9.Click,I4e,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(A9.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=_9(e)??x9,s=h9(n,o);if(!t&&a){if(z4e(a)){if(a.tolerance!=null&&k9(s,a.tolerance))return this.handleCancel();if(k9(s,a.distance))return this.handleStart()}if(B4e(a)&&k9(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===j9.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},V4e={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},P9=class extends N9{constructor(e){let{event:t}=e,n=a9(t.target);super(e,V4e,n)}};P9.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var H4e={move:{name:`mousemove`},end:{name:`mouseup`}},U4e;(function(e){e[e.RightClick=2]=`RightClick`})(U4e||={});var W4e=class extends N9{constructor(e){super(e,H4e,a9(e.event.target))}};W4e.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===U4e.RightClick?!1:(r?.({event:n}),!0)}}];var F9={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},G4e=class extends N9{constructor(e){super(e,F9)}static setup(){return window.addEventListener(F9.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(F9.move.name,e)};function e(){}}};G4e.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var I9;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(I9||={});var L9;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(L9||={});function K4e(e){let{acceleration:t,activator:n=I9.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=L9.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=J4e({delta:d,disabled:!a}),[m,h]=I2e(),g=(0,C.useRef)({x:0,y:0}),_=(0,C.useRef)({x:0,y:0}),v=(0,C.useMemo)(()=>{switch(n){case I9.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case I9.DraggableRect:return i}},[n,i,c]),y=(0,C.useRef)(null),b=(0,C.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,C.useMemo)(()=>s===L9.TreeOrder?[...l].reverse():l,[s,l]);(0,C.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=u[l.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=D4e(e,n,v,t,f);for(let e of[`x`,`y`])p[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){h(),y.current=e,m(b,o),g.current=a,_.current=i;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var q4e={x:{[E9.Backward]:!1,[E9.Forward]:!1},y:{[E9.Backward]:!1,[E9.Forward]:!1}};function J4e(e){let{delta:t,disabled:n}=e,r=d9(t);return l9(e=>{if(n||!r||!e)return q4e;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[E9.Backward]:e.x[E9.Backward]||i.x===-1,[E9.Forward]:e.x[E9.Forward]||i.x===1},y:{[E9.Backward]:e.y[E9.Backward]||i.y===-1,[E9.Forward]:e.y[E9.Forward]||i.y===1}}},[n,t,r])}function Y4e(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return l9(e=>t==null?null:r??e??null,[r,t])}function X4e(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var R9;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(R9||={});var Z4e;(function(e){e.Optimized=`optimized`})(Z4e||={});var Q4e=new Map;function $4e(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,C.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,C.useRef)(e),d=g(),f=c9(d),p=(0,C.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,C.useRef)(null),h=l9(t=>{if(d&&!n)return Q4e;if(!t||t===Q4e||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new D9(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,C.useEffect)(()=>{u.current=e},[e]),(0,C.useEffect)(()=>{d||p()},[n,d]),(0,C.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,C.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case R9.Always:return!1;case R9.BeforeDragging:return n;default:return!n}}}function e3e(e,t){return l9(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function t3e(e,t){return e3e(e,t)}function n3e(e){let{callback:t,disabled:n}=e,r=s9(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function z9(e){let{callback:t,disabled:n}=e,r=s9(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function r3e(e){return new D9(S9(e),e)}function i3e(e,t,n){t===void 0&&(t=r3e);let[r,i]=(0,C.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=n3e({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=z9({callback:a});return o9(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function a3e(e){return d4e(e,e3e(e))}var o3e=[];function s3e(e){let t=(0,C.useRef)(e),n=l9(n=>e?n&&n!==o3e&&e&&t.current&&e.parentNode===t.current.parentNode?n:C9(e):o3e,[e]);return(0,C.useEffect)(()=>{t.current=e},[e]),n}function c3e(e){let[t,n]=(0,C.useState)(null),r=(0,C.useRef)(e),i=(0,C.useCallback)(e=>{let t=w9(e.target);t&&n(e=>e?(e.set(t,T9(t)),new Map(e)):null)},[]);return(0,C.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=w9(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,T9(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{w9(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,C.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>m9(e,t),x9):k4e(e):x9,[e,t])}function l3e(e,t){t===void 0&&(t=[]);let n=(0,C.useRef)(null);return(0,C.useEffect)(()=>{n.current=null},t),(0,C.useEffect)(()=>{let t=e!==x9;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?h9(e,n.current):x9}function u3e(e){(0,C.useEffect)(()=>{if(!$7)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function d3e(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function f3e(e){return(0,C.useMemo)(()=>e?v4e(e):null,[e])}var p3e=[];function m3e(e,t){t===void 0&&(t=S9);let[n]=e,r=f3e(n?n9(n):null),[i,a]=(0,C.useState)(p3e);function o(){a(()=>e.length?e.map(e=>w4e(e)?r:new D9(t(e),e)):p3e)}let s=z9({callback:o});return o9(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function h3e(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return i9(t)?t:e}function g3e(e){let{measure:t}=e,[n,r]=(0,C.useState)(null),i=z9({callback:(0,C.useCallback)(e=>{for(let{target:n}of e)if(i9(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=u9((0,C.useCallback)(e=>{let n=h3e(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,C.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var _3e=[{sensor:P9,options:{}},{sensor:M9,options:{}}],v3e={current:{}},B9={draggable:{measure:_4e},droppable:{measure:_4e,strategy:R9.WhileDragging,frequency:Z4e.Optimized},dragOverlay:{measure:S9}},V9=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},y3e={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new V9,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:b9},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:B9,measureDroppableContainers:b9,windowRect:null,measuringScheduled:!1},b3e={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:b9,draggableNodes:new Map,over:null,measureDroppableContainers:b9},H9=(0,C.createContext)(b3e),x3e=(0,C.createContext)(y3e);function S3e(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new V9}}}function C3e(e,t){switch(t.type){case y9.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case y9.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case y9.DragEnd:case y9.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case y9.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new V9(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case y9.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new V9(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case y9.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new V9(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function w3e(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,C.useContext)(H9),a=d9(r),o=d9(n?.id);return(0,C.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!g9(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=V2e(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function T3e(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function E3e(e){return(0,C.useMemo)(()=>({draggable:{...B9.draggable,...e?.draggable},droppable:{...B9.droppable,...e?.droppable},dragOverlay:{...B9.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function D3e(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,C.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;o9(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=d4e(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=x4e(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var O3e=(0,C.createContext)({...x9,scaleX:1,scaleY:1}),U9;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(U9||={});var k3e=(0,C.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=_3e,collisionDetection:o=l4e,measuring:s,modifiers:c,...l}=e,[u,d]=(0,C.useReducer)(C3e,void 0,S3e),[f,p]=J2e(),[m,h]=(0,C.useState)(U9.Uninitialized),g=m===U9.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,C.useRef)({initial:null,translated:null}),w=(0,C.useMemo)(()=>_==null?null:{id:_,data:x?.data??v3e,rect:S},[_,x]),T=(0,C.useRef)(null),[E,D]=(0,C.useState)(null),[O,k]=(0,C.useState)(null),A=c9(l,Object.values(l)),j=p9(`DndDescribedBy`,t),M=(0,C.useMemo)(()=>b.getEnabled(),[b]),N=E3e(s),{droppableRects:P,measureDroppableContainers:F,measuringScheduled:I}=$4e(M,{dragging:g,dependencies:[y.x,y.y],config:N.droppable}),L=Y4e(v,_),R=(0,C.useMemo)(()=>O?_9(O):null,[O]),ee=Ee(),z=t3e(L,N.draggable.measure);D3e({activeNode:_==null?null:v.get(_),config:ee.layoutShiftCompensation,initialRect:z,measure:N.draggable.measure});let te=i3e(L,N.draggable.measure,z),B=i3e(L?L.parentElement:null),V=(0,C.useRef)({activatorEvent:null,active:null,activeNode:L,collisionRect:null,collisions:null,droppableRects:P,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ne=b.getNodeFor(V.current.over?.id),re=g3e({measure:N.dragOverlay.measure}),ie=re.nodeRef.current??L,ae=g?re.rect??te:null,oe=!!(re.nodeRef.current&&re.rect),se=a3e(oe?null:te),ce=f3e(ie?n9(ie):null),le=s3e(g?ne??L:null),ue=m3e(le),H=T3e(c,{transform:{x:y.x-se.x,y:y.y-se.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:te,containerNodeRect:B,draggingNodeRect:ae,over:V.current.over,overlayNodeRect:re.rect,scrollableAncestors:le,scrollableAncestorRects:ue,windowRect:ce}),de=R?m9(R,y):null,fe=c3e(le),pe=l3e(fe),me=l3e(fe,[te]),he=m9(H,pe),U=ae?p4e(ae,H):null,ge=w&&U?o({active:w,collisionRect:U,droppableRects:P,droppableContainers:M,pointerCoordinates:de}):null,_e=i4e(ge,`id`),[ve,ye]=(0,C.useState)(null),be=u4e(oe?H:m9(H,me),ve?.rect??null,te),xe=(0,C.useRef)(null),Se=(0,C.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=v.get(T.current);if(!i)return;let a=e.nativeEvent;xe.current=new n({active:T.current,activeNode:i,event:a,options:r,context:V,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=A.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=A.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=A.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,Sa.unstable_batchedUpdates)(()=>{r?.(i),h(U9.Initializing),d({type:y9.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),D(xe.current),k(a)})},onMove(e){d({type:y9.DragMove,coordinates:e})},onEnd:o(y9.DragEnd),onCancel:o(y9.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=V.current,o=null;if(t&&i){let{cancelDrop:s}=A.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===y9.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=y9.DragCancel)}T.current=null,(0,Sa.unstable_batchedUpdates)(()=>{d({type:e}),h(U9.Uninitialized),ye(null),D(null),k(null),xe.current=null;let t=e===y9.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=A.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),Ce=X4e(a,(0,C.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,Se(n,t))},[v,Se]));u3e(a),o9(()=>{te&&m===U9.Initializing&&h(U9.Initialized)},[te,m]),(0,C.useEffect)(()=>{let{onDragMove:e}=A.current,{active:t,activatorEvent:n,collisions:r,over:i}=V.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:he.x,y:he.y},over:i};(0,Sa.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[he.x,he.y]),(0,C.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=V.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=A.current,o=r.get(_e),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Sa.unstable_batchedUpdates)(()=>{ye(s),a?.(c),f({type:`onDragOver`,event:c})})},[_e]),o9(()=>{V.current={activatorEvent:O,active:w,activeNode:L,collisionRect:U,collisions:ge,droppableRects:P,draggableNodes:v,draggingNode:ie,draggingNodeRect:ae,droppableContainers:b,over:ve,scrollableAncestors:le,scrollAdjustedTranslate:he},S.current={initial:ae,translated:U}},[w,L,ge,U,v,ie,ae,P,b,ve,le,he]),K4e({...ee,delta:y,draggingRect:U,pointerCoordinates:de,scrollableAncestors:le,scrollableAncestorRects:ue});let we=(0,C.useMemo)(()=>({active:w,activeNode:L,activeNodeRect:te,activatorEvent:O,collisions:ge,containerNodeRect:B,dragOverlay:re,draggableNodes:v,droppableContainers:b,droppableRects:P,over:ve,measureDroppableContainers:F,scrollableAncestors:le,scrollableAncestorRects:ue,measuringConfiguration:N,measuringScheduled:I,windowRect:ce}),[w,L,te,O,ge,B,re,v,b,P,ve,F,le,ue,N,I,ce]),Te=(0,C.useMemo)(()=>({activatorEvent:O,activators:Ce,active:w,activeNodeRect:te,ariaDescribedById:{draggable:j},dispatch:d,draggableNodes:v,over:ve,measureDroppableContainers:F}),[O,Ce,w,te,d,j,v,ve,F]);return C.createElement(K2e.Provider,{value:p},C.createElement(H9.Provider,{value:Te},C.createElement(x3e.Provider,{value:we},C.createElement(O3e.Provider,{value:be},i)),C.createElement(w3e,{disabled:n?.restoreFocus===!1})),C.createElement(Z2e,{...n,hiddenTextDescribedById:j}));function Ee(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),A3e=(0,C.createContext)(null),j3e=`button`,M3e=`Draggable`;function N3e(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=p9(M3e),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,C.useContext)(H9),{role:p=j3e,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,C.useContext)(g?O3e:A3e),[v,y]=u9(),[b,x]=u9(),S=d3e(o,t),w=c9(n);return o9(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:w}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,C.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===j3e?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function P3e(){return(0,C.useContext)(x3e)}var F3e=`Droppable`,I3e={timeout:25};function L3e(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=p9(F3e),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,C.useContext)(H9),u=(0,C.useRef)({disabled:n}),d=(0,C.useRef)(!1),f=(0,C.useRef)(null),p=(0,C.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...I3e,...i},_=c9(h??r),v=z9({callback:(0,C.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=u9((0,C.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=c9(t);return(0,C.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,C.useEffect)(()=>(s({type:y9.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:y9.UnregisterDroppable,key:a,id:r})),[r]),(0,C.useEffect)(()=>{n!==u.current.disabled&&(s({type:y9.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function W9(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function R3e(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function G9(e){return e!==null&&e>=0}function z3e(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function B3e(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var V3e=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=W9(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},K9={scaleX:1,scaleY:1},H3e=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...K9}:null}let s=U3e(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...K9}:r<t&&r>=a?{x:0,y:o.height+s,...K9}:{x:0,y:0,...K9}};function U3e(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var W3e=`Sortable`,G3e=C.createContext({activeIndex:-1,containerId:W3e,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:V3e,disabled:{draggable:!1,droppable:!1}});function K3e(e){let{children:t,id:n,items:r,strategy:i=V3e,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=P3e(),d=p9(W3e,n),f=s.rect!==null,p=(0,C.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,C.useRef)(p),v=!z3e(p,_.current),y=g!==-1&&h===-1||v,b=B3e(a);o9(()=>{v&&m&&u(p)},[v,p,m,u]),(0,C.useEffect)(()=>{_.current=p},[p]);let x=(0,C.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:R3e(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return C.createElement(G3e.Provider,{value:x},t)}var q3e=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return W9(n,r,i).indexOf(t)},J3e=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Y3e={duration:200,easing:`ease`},X3e=`transform`,Z3e=v9.Transition.toString({property:X3e,duration:0,easing:`linear`}),Q3e={roleDescription:`sortable`};function $3e(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,C.useState)(null),s=(0,C.useRef)(n);return o9(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=S9(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,C.useEffect)(()=>{a&&o(null)},[a]),a}function e6e(e){let{animateLayoutChanges:t=J3e,attributes:n,disabled:r,data:i,getNewIndex:a=q3e,id:o,strategy:s,resizeObserverConfig:c,transition:l=Y3e}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,C.useContext)(G3e),y=t6e(r,p),b=u.indexOf(o),x=(0,C.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,C.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=L3e({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:O,activatorEvent:k,activeNodeRect:A,attributes:j,setNodeRef:M,listeners:N,isDragging:P,over:F,setActivatorNodeRef:I,transform:L}=N3e({id:o,data:x,attributes:{...Q3e,...n},disabled:y.draggable}),R=P2e(D,M),ee=!!O,z=ee&&!m&&G9(f)&&G9(g),te=!_&&P,B=z?(te&&z?L:null)??(s??v)({rects:h,activeNodeRect:A,activeIndex:f,overIndex:g,index:b}):null,V=G9(f)&&G9(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,ne=O?.id,re=(0,C.useRef)({activeId:ne,items:u,newIndex:V,containerId:d}),ie=u!==re.current.items,ae=t({active:O,containerId:d,isDragging:P,isSorting:ee,id:o,index:b,items:u,newIndex:re.current.newIndex,previousItems:re.current.items,previousContainerId:re.current.containerId,transition:l,wasDragging:re.current.activeId!=null}),oe=$3e({disabled:!ae,index:b,node:T,rect:w});return(0,C.useEffect)(()=>{ee&&re.current.newIndex!==V&&(re.current.newIndex=V),d!==re.current.containerId&&(re.current.containerId=d),u!==re.current.items&&(re.current.items=u)},[ee,V,d,u]),(0,C.useEffect)(()=>{if(ne===re.current.activeId)return;if(ne!=null&&re.current.activeId==null){re.current.activeId=ne;return}let e=setTimeout(()=>{re.current.activeId=ne},50);return()=>clearTimeout(e)},[ne]),{active:O,activeIndex:f,attributes:j,data:x,rect:w,index:b,newIndex:V,items:u,isOver:E,isSorting:ee,isDragging:P,listeners:N,node:T,overIndex:g,over:F,setNodeRef:R,setActivatorNodeRef:I,setDroppableNodeRef:D,setDraggableNodeRef:M,transform:oe??B,transition:se()};function se(){if(oe||ie&&re.current.newIndex===b)return Z3e;if(!(te&&!g9(k)||!l)&&(ee||ae))return v9.Transition.toString({...l,property:X3e})}}function t6e(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function q9(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var n6e=[j9.Down,j9.Right,j9.Up,j9.Left],r6e=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(n6e.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case j9.Down:r.top<a.top&&t.push(n);break;case j9.Up:r.top>a.top&&t.push(n);break;case j9.Left:r.left>a.left&&t.push(n);break;case j9.Right:r.left<a.left&&t.push(n);break}});let c=s4e({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=i4e(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=C9(c).some((e,t)=>s[t]!==e),i=i6e(e,t),a=a6e(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:h9(u,l)}}}};function i6e(e,t){return!q9(e)||!q9(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function a6e(e,t){return!q9(e)||!q9(t)||!i6e(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var o6e=({bridge:e,index:t})=>{let{attributes:n,listeners:r,setNodeRef:i,transform:a,transition:o,isDragging:s}=e6e({id:e.id}),[c,l]=(0,C.useState)(!1);return(0,C.useEffect)(()=>{kE(e.id).then(l)},[e.id]),(0,W.jsx)(Sv,{ref:i,style:{transform:v9.Transform.toString(a),transition:o,opacity:s?.5:1},variant:`outlined`,sx:{cursor:`grab`,"&:active":{cursor:`grabbing`},bgcolor:s?`action.selected`:`background.paper`,width:`fit-content`},children:(0,W.jsxs)(Tv,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:1,"&:last-child":{pb:1}},children:[(0,W.jsx)(X,{...n,...r,sx:{display:`flex`,alignItems:`center`,color:`text.secondary`},children:(0,W.jsx)(Ihe,{})}),(0,W.jsx)(Nv,{label:t+1,size:`small`,color:`primary`,sx:{minWidth:32,fontWeight:`bold`}}),c?(0,W.jsx)(X,{component:`img`,src:AE(e.id),alt:e.name,sx:{width:40,height:40,borderRadius:`50%`,objectFit:`cover`,boxShadow:2}}):(0,W.jsx)(jb,{sx:{bgcolor:IE(e),width:40,height:40,boxShadow:2},children:(0,W.jsx)(FE(e),{sx:{fontSize:24}})}),(0,W.jsxs)(X,{sx:{flex:1},children:[(0,W.jsx)(Q,{variant:`subtitle1`,fontWeight:500,children:e.name}),(0,W.jsxs)(Q,{variant:`caption`,color:`text.secondary`,children:[`Port: `,e.port,` • Priority: `,e.priority??100]})]})]})})},s6e=()=>{let{t:e}=_s(),t=ey(),{content:n,isLoading:r}=KT(),i=$me(),[a,o]=(0,C.useState)([]),[s,c]=(0,C.useState)(!1);(0,C.useEffect)(()=>{n&&(o([...n].sort((e,t)=>(e.priority??100)-(t.priority??100))),c(!1))},[n]);let l=$2e(Q2e(P9),Q2e(M9,{coordinateGetter:r6e})),u=(0,C.useCallback)(e=>{let{active:t,over:n}=e;n&&t.id!==n.id&&(o(e=>W9(e,e.findIndex(e=>e.id===t.id),e.findIndex(e=>e.id===n.id))),c(!0))},[]),d=(0,C.useCallback)(async()=>{let n=a.map((e,t)=>({id:e.id,priority:(t+1)*10}));try{await i(n),t.show({message:e(`startup.saveSuccess`),severity:`success`}),c(!1)}catch(n){t.show({message:n instanceof Error?n.message:e(`startup.saveFailed`),severity:`error`})}},[a,i,t,e]),f=(0,C.useMemo)(()=>a.map(e=>e.id),[a]);return r?(0,W.jsxs)(Q,{children:[e(`common.loading`),`...`]}):(0,W.jsxs)(Yv,{spacing:3,children:[(0,W.jsx)($v,{items:[{name:e(`nav.bridges`),to:Y9.bridges},{name:e(`startup.title`),to:Y9.startup}]}),(0,W.jsxs)(X,{display:`flex`,alignItems:`center`,gap:2,children:[(0,W.jsx)(vv,{color:`primary`,fontSize:`large`}),(0,W.jsxs)(X,{children:[(0,W.jsx)(Q,{variant:`h5`,fontWeight:600,children:e(`startup.title`)}),(0,W.jsx)(Q,{variant:`body2`,color:`text.secondary`,children:e(`startup.description`)})]})]}),s&&(0,W.jsx)(Kh,{severity:`info`,action:(0,W.jsx)(Z,{color:`inherit`,size:`small`,startIcon:(0,W.jsx)(yE,{}),onClick:d,children:e(`startup.saveChanges`)}),children:e(`startup.unsavedChanges`)}),(0,W.jsx)(k3e,{sensors:l,collisionDetection:o4e,onDragEnd:u,children:(0,W.jsx)(K3e,{items:f,strategy:H3e,children:(0,W.jsx)(Yv,{spacing:1,children:a.map((e,t)=>(0,W.jsx)(o6e,{bridge:e,index:t},e.id))})})}),a.length===0&&(0,W.jsx)(Q,{color:`text.secondary`,textAlign:`center`,py:4,children:e(`startup.noBridges`)}),s&&a.length>0&&(0,W.jsx)(X,{display:`flex`,justifyContent:`flex-end`,children:(0,W.jsx)(Z,{variant:`contained`,startIcon:(0,W.jsx)(yE,{}),onClick:d,children:e(`startup.saveOrder`)})})]})},J9=`https://riddix.github.io/home-assistant-matter-hub`,Y9={dashboard:`/`,bridges:`/bridges`,bridge:e=>`/bridges/${e}`,createBridge:`/bridges/create`,areaSetup:`/bridges/area-setup`,editBridge:e=>`/bridges/${e}/edit`,devices:`/devices`,standaloneDevices:`/standalone-devices`,networkMap:`/network-map`,health:`/health`,labels:`/labels`,lockCredentials:`/lock-credentials`,plugins:`/plugins`,settings:`/settings`,startup:`/startup`,githubRepository:`https://github.com/riddix/home-assistant-matter-hub/`,documentation:J9,support:`${J9}/support`,faq:{multiFabric:`${J9}/connect-multiple-fabrics`,bridgeConfig:`${J9}/bridge-configuration`}},c6e=[{path:``,element:(0,W.jsx)(xre,{}),children:[{path:``,element:(0,W.jsx)(g_e,{})},{path:Y9.bridges,element:(0,W.jsx)(u_e,{})},{path:Y9.createBridge,element:(0,W.jsx)(tJe,{})},{path:Y9.areaSetup,element:(0,W.jsx)(Sae,{})},{path:Y9.bridge(`:bridgeId`),element:(0,W.jsx)(hhe,{})},{path:Y9.editBridge(`:bridgeId`),element:(0,W.jsx)(rJe,{})},{path:Y9.devices,element:(0,W.jsx)(F_e,{})},{path:Y9.standaloneDevices,element:(0,W.jsx)(N2e,{})},{path:Y9.networkMap,element:(0,W.jsx)(K0e,{})},{path:Y9.health,element:(0,W.jsx)(TJe,{})},{path:Y9.labels,element:(0,W.jsx)(EJe,{})},{path:Y9.lockCredentials,element:(0,W.jsx)(MJe,{})},{path:Y9.plugins,element:(0,W.jsx)(v2e,{})},{path:Y9.settings,element:(0,W.jsx)(O2e,{})},{path:Y9.startup,element:(0,W.jsx)(s6e,{})},{path:`*`,element:(0,W.jsx)(NJe,{})}]}],l6e=A_({items:{isInitialized:!1,isLoading:!1}},e=>{e.addCase(J_.pending,e=>{e.items.isLoading=!0}).addCase(J_.rejected,(e,t)=>{e.items.isInitialized=!0,e.items.isLoading=!1,e.items.content=void 0,e.items.error=t.error}).addCase(J_.fulfilled,(e,t)=>{e.items.isInitialized=!0,e.items.isLoading=!1,e.items.content=t.payload,e.items.error=void 0}).addCase(Y_.fulfilled,(e,t)=>{e.items.content?.push(t.payload)}).addCase(Z_.fulfilled,(e,t)=>{let n=e.items.content?.findIndex(e=>e.id===t.payload.id)??-1;n!==-1&&(e.items.content[n]=t.payload)}).addCase(Q_.fulfilled,(e,t)=>{let n=e.items.content?.findIndex(e=>e.id===t.payload.id)??-1;n!==-1&&(e.items.content[n]=t.payload)}).addCase(X_.fulfilled,(e,t)=>{if(e.items.content){let n=e.items.content.findIndex(e=>e.id===t.meta.arg);n!==-1&&e.items.content.splice(n,1)}}).addCase($_,(e,t)=>{e.items.isInitialized=!0,e.items.isLoading=!1,e.items.content=t.payload,e.items.error=void 0}).addCase(ev,(e,t)=>{if(e.items.content){let n=e.items.content.findIndex(e=>e.id===t.payload.id);n===-1?e.items.content.push(t.payload):e.items.content[n]=t.payload}})}),u6e=A_({byBridge:{}},e=>{e.addCase(JT.pending,(e,t)=>{e.byBridge[t.meta.arg]=X9(e.byBridge[t.meta.arg],t)}).addCase(JT.rejected,(e,t)=>{e.byBridge[t.meta.arg]=X9(e.byBridge[t.meta.arg],t)}).addCase(JT.fulfilled,(e,t)=>{e.byBridge[t.meta.arg]=X9(e.byBridge[t.meta.arg],t)})}),X9=A_({isInitialized:!1,isLoading:!1,content:void 0,error:void 0},e=>{e.addCase(JT.pending,e=>{e.isLoading=!0}).addCase(JT.rejected,(e,t)=>{e.isInitialized=!0,e.isLoading=!1,e.content=void 0,e.error=t.error}).addCase(JT.fulfilled,(e,t)=>{e.isInitialized=!0,e.isLoading=!1,e.content=t.payload,e.error=void 0})}),d6e=Qne({reducer:{bridges:l6e,devices:u6e}}),Z9=Sp({createStyledComponent:q(`div`,{name:`MuiContainer`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${J(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>Mm({props:e,name:`MuiContainer`})});function f6e(e){return Vd(`MuiToolbar`,e)}Hd(`MuiToolbar`,[`root`,`gutters`,`regular`,`dense`]);var p6e=e=>{let{classes:t,disableGutters:n,variant:r}=e;return _p({root:[`root`,!n&&`gutters`,r]},f6e,t)},m6e=q(`div`,{name:`MuiToolbar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(Rm(({theme:e})=>({position:`relative`,display:`flex`,alignItems:`center`,variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:`dense`},style:{minHeight:48}},{props:{variant:`regular`},style:e.mixins.toolbar}]}))),h6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiToolbar`}),{className:r,component:i=`div`,disableGutters:a=!1,variant:o=`regular`,...s}=n,c={...n,component:i,disableGutters:a,variant:o};return(0,W.jsx)(m6e,{as:i,className:G(p6e(c).root,r),ref:t,ownerState:c,...s})}),g6e=class extends C.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`ErrorBoundary caught:`,e,t.componentStack)}render(){return this.state.hasError?(0,W.jsxs)(X,{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,minHeight:`60vh`,gap:2,p:4,children:[(0,W.jsx)(Cb,{color:`error`,sx:{fontSize:64}}),(0,W.jsx)(Q,{variant:`h5`,fontWeight:600,children:zs.t(`errorBoundary.title`)}),(0,W.jsx)(Q,{variant:`body2`,color:`text.secondary`,textAlign:`center`,maxWidth:480,children:this.state.error?.message??zs.t(`errorBoundary.fallbackMessage`)}),(0,W.jsx)(Z,{variant:`contained`,onClick:()=>{this.setState({hasError:!1,error:null}),window.location.reload()},children:zs.t(`errorBoundary.reload`)})]}):this.props.children}};function _6e(e){return Vd(`MuiFab`,e)}var v6e=Hd(`MuiFab`,[`root`,`primary`,`secondary`,`extended`,`circular`,`focusVisible`,`disabled`,`colorInherit`,`sizeSmall`,`sizeMedium`,`sizeLarge`,`info`,`error`,`warning`,`success`]),y6e=e=>{let{color:t,variant:n,classes:r,size:i}=e,a=_p({root:[`root`,n,`size${J(i)}`,t===`inherit`?`colorInherit`:t]},_6e,r);return{...r,...a}},b6e=q(Ih,{name:`MuiFab`,slot:`Root`,shouldForwardProp:e=>Am(e)||e===`classes`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`size${J(n.size)}`],n.color===`inherit`&&t.colorInherit,t[J(n.size)],t[n.color]]}})(Rm(({theme:e})=>({...e.typography.button,minHeight:36,transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`],{duration:e.transitions.duration.short}),borderRadius:`50%`,padding:0,minWidth:0,width:56,height:56,zIndex:(e.vars||e).zIndex.fab,boxShadow:(e.vars||e).shadows[6],"&:active":{boxShadow:(e.vars||e).shadows[12]},color:e.vars?e.vars.palette.grey[900]:e.palette.getContrastText?.(e.palette.grey[300]),backgroundColor:(e.vars||e).palette.grey[300],"&:hover":{backgroundColor:(e.vars||e).palette.grey.A100,"@media (hover: none)":{backgroundColor:(e.vars||e).palette.grey[300]},textDecoration:`none`},[`&.${v6e.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},variants:[{props:{size:`small`},style:{width:40,height:40}},{props:{size:`medium`},style:{width:48,height:48}},{props:{variant:`extended`},style:{borderRadius:48/2,padding:`0 16px`,width:`auto`,minHeight:`auto`,minWidth:48,height:48}},{props:{variant:`extended`,size:`small`},style:{width:`auto`,padding:`0 8px`,borderRadius:34/2,minWidth:34,height:34}},{props:{variant:`extended`,size:`medium`},style:{width:`auto`,padding:`0 16px`,borderRadius:40/2,minWidth:40,height:40}},{props:{color:`inherit`},style:{color:`inherit`}}]})),Rm(({theme:e})=>({variants:[...Object.entries(e.palette).filter(qm([`dark`,`contrastText`])).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].contrastText,backgroundColor:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:(e.vars||e).palette[t].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t].main}}}}))]})),Rm(({theme:e})=>({[`&.${v6e.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}))),x6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiFab`}),{children:r,className:i,color:a=`default`,component:o=`button`,disabled:s=!1,disableFocusRipple:c=!1,focusVisibleClassName:l,size:u=`large`,variant:d=`circular`,...f}=n,p={...n,color:a,component:o,disabled:s,disableFocusRipple:c,size:u,variant:d},m=y6e(p);return(0,W.jsx)(b6e,{className:G(m.root,i),component:o,disabled:s,focusRipple:!c,focusVisibleClassName:G(m.focusVisible,l),ownerState:p,ref:t,...f,classes:m,children:r})}),S6e=[{code:`en`,flag:`🇬🇧`,name:`English`},{code:`de`,flag:`🇩🇪`,name:`Deutsch`},{code:`fr`,flag:`🇫🇷`,name:`Français`},{code:`es`,flag:`🇪🇸`,name:`Español`},{code:`it`,flag:`🇮🇹`,name:`Italiano`},{code:`hu`,flag:`🇭🇺`,name:`Magyar`},{code:`zh`,flag:`🇨🇳`,name:`中文`},{code:`zh-TW`,flag:`🇹🇼`,name:`繁體中文`},{code:`ja`,flag:`🇯🇵`,name:`日本語`},{code:`th`,flag:`🇹🇭`,name:`ไทย`},{code:`sv`,flag:`🇸🇪`,name:`Svenska`},{code:`tr`,flag:`🇹🇷`,name:`Türkçe`},{code:`ru`,flag:`🇷🇺`,name:`Русский`},{code:`pt-BR`,flag:`🇧🇷`,name:`Português (Brasil)`}],C6e=`hamh-custom-languages`;function w6e(){try{let e=localStorage.getItem(C6e);return e?JSON.parse(e).map(e=>({code:e.code,flag:`🌐`,name:e.name})):[]}catch{return[]}}var T6e=`https://github.com/RiDDiX/home-assistant-matter-hub/issues/new?labels=translation&title=Translation+improvement`;function E6e(){let{t:e,i18n:t}=_s(),[n,r]=(0,C.useState)(!1),i=(0,C.useRef)(null),a=(0,C.useMemo)(()=>[...S6e,...w6e()],[]),o=t.language??`en`,s=a.some(e=>e.code===o)?o:o.split(`-`)[0]??`en`,c=(0,C.useCallback)(()=>{r(e=>!e)},[]),l=(0,C.useCallback)(e=>{t.changeLanguage(e),r(!1)},[t]);return(0,W.jsx)(Yh,{onClickAway:(0,C.useCallback)(()=>{r(!1)},[]),children:(0,W.jsxs)(X,{children:[(0,W.jsx)(x6e,{ref:i,size:`small`,color:`primary`,onClick:c,"aria-label":`Change language`,sx:{position:`fixed`,bottom:24,right:24,zIndex:1300},children:(0,W.jsx)(Uhe,{})}),(0,W.jsx)(fb,{open:n,anchorEl:i.current,placement:`top-end`,transition:!0,sx:{zIndex:1300},children:({TransitionProps:t})=>(0,W.jsx)(Rb,{...t,timeout:200,children:(0,W.jsxs)(Jm,{elevation:8,sx:{mb:1,py:.5,minWidth:160,borderRadius:2,overflow:`hidden`},children:[a.map(e=>(0,W.jsxs)(X,{onClick:()=>l(e.code),sx:{display:`flex`,alignItems:`center`,gap:1.5,px:2,py:1,cursor:`pointer`,bgcolor:s===e.code?`action.selected`:`transparent`,"&:hover":{bgcolor:`action.hover`},transition:`background-color 0.15s`},children:[(0,W.jsx)(Q,{sx:{fontSize:`1.4rem`,lineHeight:1,userSelect:`none`},children:e.flag}),(0,W.jsx)(Q,{variant:`body2`,fontWeight:s===e.code?600:400,children:e.name})]},e.code)),(0,W.jsx)(Xb,{}),(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`flex-start`,gap:.75,px:2,py:1},children:[(0,W.jsx)(ty,{sx:{fontSize:14,mt:.25,color:`text.secondary`}}),(0,W.jsxs)(Q,{variant:`caption`,color:`text.secondary`,sx:{lineHeight:1.4},children:[e(`languageSwitcher.disclaimer`),` `,(0,W.jsx)(Qv,{href:T6e,target:`_blank`,rel:`noopener`,sx:{fontSize:`inherit`},children:e(`languageSwitcher.contribute`)})]})]})]})})})]})})}var D6e={name:`home-assistant-matter-hub`,description:``,version:`2.1.0-alpha.833`,private:!1,type:`module`,bin:{"home-assistant-matter-hub":`./dist/backend/cli.js`},author:{name:`riddix`,url:`https://github.com/riddix`},keywords:[`home-assistant`,`homeassistant`,`home`,`assistant`,`apple home`,`google home`,`apple`,`google`,`alexa`,`matter`,`matter.js`,`matterjs`,`project-chip`,`smart`,`smarthome`,`smart-home`],bugs:{url:`https://github.com/riddix/home-assistant-matter-hub/issues`},license:`Apache-2.0`,repository:`github:riddix/home-assistant-matter-hub`,scripts:{cleanup:`npx rimraf node_modules dist pack LICENSE README.md`,build:`node build.js`,bundle:`pnpm pack --out package.tgz`,postbuild:`pnpm run bundle`,test:`vitest run`,prestart:`pnpm run build`,start:`dotenvx run -f ../../.env -- ./dist/backend/cli.js start`},dependencies:{"@matter/main":`0.17.7`,"@matter/nodejs":`0.17.7`,"@matter/general":`0.17.7`,"@matter/types":`0.17.7`,ajv:`8.18.0`,archiver:`7.0.1`,color:`5.0.3`,debounce:`3.0.0`,express:`5.2.1`,"express-basic-auth":`1.2.1`,"express-ip-access-control":`1.1.3`,"home-assistant-js-websocket":`9.6.0`,"lodash-es":`4.18.1`,multer:`2.2.0`,nocache:`4.0.0`,unzipper:`0.12.3`,werift:`0.22.4`,ws:`8.21.0`,yargs:`18.0.0`},devDependencies:{"@home-assistant-matter-hub/backend":`workspace:*`,"@home-assistant-matter-hub/frontend":`workspace:*`,"@home-assistant-matter-hub/common":`workspace:*`,"@types/lodash-es":`^4.17.12`},overrides:{minimatch:`9.0.7`,"path-to-regexp":`^8.4.0`,glob:`^13.0.0`},nx:{targets:{start:{cache:!1,dependsOn:[`build`]},pack:{cache:!0,dependsOn:[`build`],outputs:[`{projectRoot}/pack`]},build:{inputs:[`^default`,`default`,`{workspaceRoot}/README.md`,`{workspaceRoot}/LICENSE`],outputs:[`{projectRoot}/dist`,`{projectRoot}/README.md`,`{projectRoot}/LICENSE`]}}}};function O6e(){let e=`2.1.0-alpha.833`,[t,n]=(0,C.useState)(null);(0,C.useEffect)(()=>{fetch(`api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.version&&n(e.version)}).catch(()=>{})},[]);let r=(0,C.useMemo)(()=>t?e!==t:!1,[t]);return(0,C.useMemo)(()=>({name:D6e.name,version:t??e,frontendVersion:e,backendVersion:t,versionMismatch:r}),[t,r])}var k6e=()=>{let{t:e}=_s(),t=[{name:e(`footer.github`),url:Y9.githubRepository},{name:e(`footer.documentation`),url:Y9.documentation},{name:e(`footer.support`),url:Y9.support}];return(0,W.jsxs)(Z9,{sx:{mt:16,mb:4},children:[(0,W.jsx)(Xb,{sx:{mt:4,mb:4}}),(0,W.jsx)(Hv,{container:!0,spacing:2,justifyContent:`center`,children:t.map((e,t)=>(0,W.jsx)(Hv,{size:{xs:12,sm:`auto`},children:(0,W.jsx)(Z,{fullWidth:!0,size:`small`,variant:`outlined`,component:Qv,href:e.url,target:`_blank`,children:e.name})},t.toString()))})]})};function A6e(e){return Vd(`MuiAppBar`,e)}Hd(`MuiAppBar`,[`root`,`positionFixed`,`positionAbsolute`,`positionSticky`,`positionStatic`,`positionRelative`,`colorDefault`,`colorPrimary`,`colorSecondary`,`colorInherit`,`colorTransparent`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`]);var j6e=e=>{let{color:t,position:n,classes:r}=e;return _p({root:[`root`,`color${J(t)}`,`position${J(n)}`]},A6e,r)},M6e=(e,t)=>e?`${e.replace(`)`,``)}, ${t})`:t,N6e=q(Jm,{name:`MuiAppBar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${J(n.position)}`],t[`color${J(n.color)}`]]}})(Rm(({theme:e})=>({display:`flex`,flexDirection:`column`,width:`100%`,boxSizing:`border-box`,flexShrink:0,variants:[{props:{position:`fixed`},style:{position:`fixed`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0,"@media print":{position:`absolute`}}},{props:{position:`absolute`},style:{position:`absolute`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0}},{props:{position:`sticky`},style:{position:`sticky`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0}},{props:{position:`static`},style:{position:`static`}},{props:{position:`relative`},style:{position:`relative`}},{props:{color:`inherit`},style:{"--AppBar-color":`inherit`,color:`var(--AppBar-color)`}},{props:{color:`default`},style:{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[100],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[100]),...e.applyStyles(`dark`,{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[900],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[900])})}},...Object.entries(e.palette).filter(qm([`contrastText`])).map(([t])=>({props:{color:t},style:{"--AppBar-background":(e.vars??e).palette[t].main,"--AppBar-color":(e.vars??e).palette[t].contrastText}})),{props:e=>e.enableColorOnDark===!0&&![`inherit`,`transparent`].includes(e.color),style:{backgroundColor:`var(--AppBar-background)`,color:`var(--AppBar-color)`}},{props:e=>e.enableColorOnDark===!1&&![`inherit`,`transparent`].includes(e.color),style:{backgroundColor:`var(--AppBar-background)`,color:`var(--AppBar-color)`,...e.applyStyles(`dark`,{backgroundColor:e.vars?M6e(e.vars.palette.AppBar.darkBg,`var(--AppBar-background)`):null,color:e.vars?M6e(e.vars.palette.AppBar.darkColor,`var(--AppBar-color)`):null})}},{props:{color:`transparent`},style:{"--AppBar-background":`transparent`,"--AppBar-color":`inherit`,backgroundColor:`var(--AppBar-background)`,color:`var(--AppBar-color)`,...e.applyStyles(`dark`,{backgroundImage:`none`})}}]}))),P6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiAppBar`}),{className:r,color:i=`primary`,enableColorOnDark:a=!1,position:o=`fixed`,...s}=n,c={...n,color:i,position:o,enableColorOnDark:a};return(0,W.jsx)(N6e,{square:!0,component:`header`,ownerState:c,elevation:4,className:G(j6e(c).root,r,o===`fixed`&&`mui-fixed`),ref:t,...s})}),F6e={visibility:`hidden`};function I6e(e,t,n){let r=n&&n.getBoundingClientRect(),i=ih(t),a=t.style.transform,o=t.style.transition;t.style.transition=``,t.style.transform=``;let s=t.getBoundingClientRect(),c=i.getComputedStyle(t).getPropertyValue(`transform`);t.style.transform=a,t.style.transition=o;let l=0,u=0;if(c&&c!==`none`&&typeof c==`string`){let e=c.split(`(`)[1].split(`)`)[0].split(`,`);l=parseInt(e[4],10),u=parseInt(e[5],10)}return e===`left`?r?`translateX(${r.right+l-s.left}px)`:`translateX(${i.innerWidth+l-s.left}px)`:e===`right`?r?`translateX(-${s.right-r.left-l}px)`:`translateX(-${s.left+s.width-l}px)`:e===`up`?r?`translateY(${r.bottom+u-s.top}px)`:`translateY(${i.innerHeight+u-s.top}px)`:r?`translateY(-${s.top-r.top+s.height-u}px)`:`translateY(-${s.top+s.height-u}px)`}function L6e(e){return typeof e==`function`?e():e}function Q9(e,t,n){let r=I6e(e,t,L6e(n));r&&(t.style.transform=r)}var R6e=C.forwardRef(function(e,t){let n=Dm(),r={enter:n.transitions.easing.easeOut,exit:n.transitions.easing.sharp},i={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:a,appear:o=!0,children:s,container:c,direction:l=`down`,easing:u=r,in:d,onEnter:f,onEntered:p,onEntering:m,onExit:h,onExited:g,onExiting:_,style:v,timeout:y=i,...b}=e,x=C.useRef(null),S=fh(qh(s),x,t),w=Zh(x,(e,t)=>{Q9(l,e,c),Xh(e),f&&f(e,t)}),T=Zh(x,(e,t)=>{let r=$h({timeout:y,style:v,easing:u},{mode:`enter`});e.style.transition=n.transitions.create(`transform`,r),e.style.transform=`none`,m&&m(e,t)}),E=Zh(x,p),D=Zh(x,_),O=Zh(x,e=>{let t=$h({timeout:y,style:v,easing:u},{mode:`exit`});e.style.transition=n.transitions.create(`transform`,t),Q9(l,e,c),h&&h(e)}),k=Zh(x,e=>{e.style.transition=``,g&&g(e)}),A=e=>{a&&a(x.current,e)},j=C.useCallback(()=>{x.current&&Q9(l,x.current,c)},[l,c]);return C.useEffect(()=>{if(d||l===`down`||l===`right`)return;let e=$m(()=>{x.current&&Q9(l,x.current,c)}),t=ih(x.current);return t.addEventListener(`resize`,e),()=>{e.clear(),t.removeEventListener(`resize`,e)}},[l,d,c]),C.useEffect(()=>{d||j()},[d,j]),(0,W.jsx)(Dh,{nodeRef:x,onEnter:w,onEntered:E,onEntering:T,onExit:O,onExited:k,onExiting:D,addEndListener:A,appear:o,in:d,timeout:y,...b,children:(e,{ownerState:t,...n})=>{let r;return r=e===`exited`&&!d?v||s.props.style?{visibility:`hidden`,...v,...s.props.style}:F6e:v&&s.props.style?{...v,...s.props.style}:v||s.props.style,C.cloneElement(s,{ref:S,style:r,...n})}})});function z6e(e){return Vd(`MuiDrawer`,e)}Hd(`MuiDrawer`,[`root`,`docked`,`paper`,`anchorLeft`,`anchorRight`,`anchorTop`,`anchorBottom`,`paperAnchorLeft`,`paperAnchorRight`,`paperAnchorTop`,`paperAnchorBottom`,`paperAnchorDockedLeft`,`paperAnchorDockedRight`,`paperAnchorDockedTop`,`paperAnchorDockedBottom`,`modal`]);var B6e=(e,t)=>{let{ownerState:n}=e;return[t.root,(n.variant===`permanent`||n.variant===`persistent`)&&t.docked,n.variant===`temporary`&&t.modal]},V6e=e=>{let{classes:t,anchor:n,variant:r}=e;return _p({root:[`root`,`anchor${J(n)}`],docked:[(r===`permanent`||r===`persistent`)&&`docked`],modal:[`modal`],paper:[`paper`,`paperAnchor${J(n)}`,r!==`temporary`&&`paperAnchorDocked${J(n)}`]},z6e,t)},H6e=q(Hb,{name:`MuiDrawer`,slot:`Root`,overridesResolver:B6e})(Rm(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),U6e=q(`div`,{shouldForwardProp:Am,name:`MuiDrawer`,slot:`Docked`,skipVariantsResolver:!1,overridesResolver:B6e})({flex:`0 0 auto`}),W6e=q(Jm,{name:`MuiDrawer`,slot:`Paper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.paper,t[`paperAnchor${J(n.anchor)}`],n.variant!==`temporary`&&t[`paperAnchorDocked${J(n.anchor)}`]]}})(Rm(({theme:e})=>({overflowY:`auto`,display:`flex`,flexDirection:`column`,height:`100%`,flex:`1 0 auto`,zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:`touch`,position:`fixed`,top:0,outline:0,variants:[{props:{anchor:`left`},style:{left:0}},{props:{anchor:`top`},style:{top:0,left:0,right:0,height:`auto`,maxHeight:`100%`}},{props:{anchor:`right`},style:{right:0}},{props:{anchor:`bottom`},style:{top:`auto`,left:0,bottom:0,right:0,height:`auto`,maxHeight:`100%`}},{props:({ownerState:e})=>e.anchor===`left`&&e.variant!==`temporary`,style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>e.anchor===`top`&&e.variant!==`temporary`,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>e.anchor===`right`&&e.variant!==`temporary`,style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>e.anchor===`bottom`&&e.variant!==`temporary`,style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),G6e={left:`right`,right:`left`,top:`down`,bottom:`up`};function K6e(e){return[`left`,`right`].includes(e)}function q6e({direction:e},t){return e===`rtl`&&K6e(t)?G6e[t]:t}var J6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiDrawer`}),r=Dm(),i=If(),a={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{anchor:o=`left`,BackdropProps:s,children:c,className:l,elevation:u=16,hideBackdrop:d=!1,ModalProps:{BackdropProps:f,...p}={},onClose:m,open:h=!1,PaperProps:g={},SlideProps:_,TransitionComponent:v,transitionDuration:y=a,variant:b=`temporary`,slots:x={},slotProps:S={},...w}=n,T=C.useRef(!1);C.useEffect(()=>{T.current=!0},[]);let E=q6e({direction:i?`rtl`:`ltr`},o),D=o,O={...n,anchor:D,elevation:u,open:h,variant:b,...w},k=V6e(O),A={slots:{transition:v,...x},slotProps:{paper:g,transition:_,...S,backdrop:ph(S.backdrop||{...s,...f},{transitionDuration:y})}},[j,M]=Km(`root`,{ref:t,elementType:H6e,className:G(k.root,k.modal,l),shouldForwardComponentProp:!0,ownerState:O,externalForwardedProps:{...A,...w,...p},additionalProps:{open:h,onClose:m,hideBackdrop:d,slots:{backdrop:A.slots.backdrop},slotProps:{backdrop:A.slotProps.backdrop}}}),[N,P]=Km(`paper`,{elementType:W6e,shouldForwardComponentProp:!0,className:G(k.paper,g.className),ownerState:O,externalForwardedProps:A,additionalProps:{elevation:b===`temporary`?u:0,square:!0,...b===`temporary`&&{role:`dialog`,"aria-modal":`true`}}}),[F,I]=Km(`docked`,{elementType:U6e,ref:t,className:G(k.root,k.docked,l),ownerState:O,externalForwardedProps:A,additionalProps:w}),[L,R]=Km(`transition`,{elementType:R6e,ownerState:O,externalForwardedProps:A,additionalProps:{in:h,direction:G6e[E],timeout:y,appear:T.current}}),ee=(0,W.jsx)(N,{...P,children:c});if(b===`permanent`)return(0,W.jsx)(F,{...I,children:ee});let z=(0,W.jsx)(L,{...R,children:ee});return b===`persistent`?(0,W.jsx)(F,{...I,children:z}):(0,W.jsx)(j,{...M,children:z})}),Y6e=uf({themeId:Em}),X6e={error:Ax,warn:ny,info:Tb,debug:tE},Z6e=({open:e,onClose:t})=>{let{t:n}=_s(),r=Dm(),i=(0,C.useMemo)(()=>({error:r.palette.error.main,warn:r.palette.warning.main,info:r.palette.info.main,debug:r.palette.secondary.main}),[r]),[a,o]=(0,C.useState)([]),[s,c]=(0,C.useState)(!0),[l,u]=(0,C.useState)(`error,warn,info`.split(`,`)),[d,f]=(0,C.useState)(``),[p,m]=(0,C.useState)(!0),h=(0,C.useCallback)(async()=>{try{let e=new URLSearchParams({level:l.join(`,`),limit:`500`,...d&&{search:d}}),t=await fetch(`api/logs?${e}`);t.ok&&o((await t.json()).entries)}catch(e){console.error(`Failed to fetch logs:`,e)}finally{c(!1)}},[l,d]);(0,C.useEffect)(()=>{e&&h()},[e,h]),(0,C.useEffect)(()=>{if(!p||!e)return;let t=setInterval(h,5e3);return()=>clearInterval(t)},[p,e,h]);let g=e=>{u(Array.isArray(e.target.value)?e.target.value:[e.target.value])},_=e=>{f(e.target.value)},v=async()=>{try{await fetch(`api/logs`,{method:`DELETE`}),o([])}catch(e){console.error(`Failed to clear logs:`,e)}},y=e=>(0,W.jsx)(X6e[e]||Tb,{sx:{fontSize:16,color:i[e]}});return(0,W.jsxs)(Gb,{open:e,onClose:t,maxWidth:`lg`,fullWidth:!0,children:[(0,W.jsxs)(Jb,{sx:{display:`flex`,alignItems:`center`,gap:1},children:[(0,W.jsx)(tE,{}),n(`logs.title`),(0,W.jsx)(X,{sx:{flexGrow:1}}),(0,W.jsx)(vb,{title:n(`logs.autoRefresh`),children:(0,W.jsx)(Nv,{label:p?`Auto`:`Manual`,color:p?`success`:`default`,size:`small`,onClick:()=>m(!p),sx:{cursor:`pointer`}})}),(0,W.jsx)(Uh,{onClick:t,children:(0,W.jsx)(rE,{})})]}),(0,W.jsxs)(qb,{children:[(0,W.jsx)(Yv,{spacing:2,sx:{mb:2},children:(0,W.jsxs)(Yv,{direction:`row`,spacing:2,alignItems:`center`,children:[(0,W.jsxs)(Iv,{size:`small`,sx:{minWidth:200},children:[(0,W.jsx)(qx,{children:n(`logs.logLevel`)}),(0,W.jsxs)(kS,{value:l,label:n(`logs.logLevel`),onChange:g,multiple:!0,renderValue:e=>(0,W.jsx)(X,{sx:{display:`flex`,flexWrap:`wrap`,gap:.5},children:(Array.isArray(e)?e:[e]).map(e=>(0,W.jsx)(Nv,{label:e.toUpperCase(),size:`small`,sx:{backgroundColor:i[e],color:`white`}},e))}),children:[(0,W.jsx)(AS,{value:`error`,children:n(`logs.error`)}),(0,W.jsx)(AS,{value:`warn`,children:n(`logs.warning`)}),(0,W.jsx)(AS,{value:`info`,children:n(`logs.info`)}),(0,W.jsx)(AS,{value:`debug`,children:n(`logs.debug`)})]})]}),(0,W.jsx)(NS,{size:`small`,placeholder:n(`logs.searchPlaceholder`),value:d,onChange:_,sx:{flexGrow:1}}),(0,W.jsx)(Z,{variant:`outlined`,onClick:h,children:n(`common.refresh`)}),(0,W.jsx)(Z,{variant:`outlined`,color:`error`,onClick:v,children:n(`common.delete`)})]})}),(0,W.jsx)(X,{sx:{height:400,overflow:`auto`,backgroundColor:`background.paper`,border:1,borderColor:`divider`,borderRadius:1,p:1},children:s?(0,W.jsx)(X,{sx:{display:`flex`,justifyContent:`center`,p:4},children:(0,W.jsxs)(Q,{children:[n(`common.loading`),`...`]})}):a.length===0?(0,W.jsx)(X,{sx:{display:`flex`,justifyContent:`center`,p:4},children:(0,W.jsx)(Q,{color:`text.secondary`,children:n(`logs.noResults`)})}):(0,W.jsx)(Yv,{spacing:1,children:a.map((e,t)=>(0,W.jsxs)(X,{sx:{p:1,borderRadius:1,backgroundColor:`action.hover`,fontFamily:`monospace`,fontSize:`0.875rem`,wordBreak:`break-all`},children:[(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:.5},children:[y(e.level),(0,W.jsx)(Q,{variant:`caption`,color:`text.secondary`,children:new Date(e.timestamp).toLocaleString()}),(0,W.jsx)(Nv,{label:e.level.toUpperCase(),size:`small`,sx:{backgroundColor:i[e.level],color:r.palette.getContrastText(i[e.level]??r.palette.grey[500]),fontSize:`0.7rem`,height:20}})]}),(0,W.jsx)(Q,{sx:{ml:3},children:e.message}),e.context&&(0,W.jsx)(Q,{sx:{ml:3,color:`text.secondary`,fontSize:`0.8rem`},children:JSON.stringify(e.context,null,2)})]},`${e.timestamp}-${e.level}-${t}`))})})]}),(0,W.jsx)(Kb,{children:(0,W.jsx)(Z,{onClick:t,children:n(`common.close`)})})]})};function Q6e(){let{t:e}=_s(),{isConnected:t}=iv(),[n,r]=(0,C.useState)(null),[i,a]=(0,C.useState)(!1);(0,C.useEffect)(()=>{let e=async()=>{try{let e=await fetch(`api/health`);e.ok?(r(await e.json()),a(!1)):a(!0)}catch{a(!0)}};e();let t=setInterval(e,3e4);return()=>clearInterval(t)},[]);let o=e=>{let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return t>0?`${t}h ${n}m`:`${n}m`},s=n?.status===`healthy`&&!i,c=n?.services?.bridges,l=c&&c.total>0&&c.running===c.total,u=c&&c.total===0,d=n?(0,W.jsxs)(X,{sx:{p:.5},children:[(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`health.version`),`:`]}),` `,n.version??e(`status.unknown`)]}),(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`health.uptime`),`:`]}),` `,o(n.uptime??0)]}),n.services?.bridges&&(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`nav.bridges`),`:`]}),` `,n.services.bridges.running??0,`/`,n.services.bridges.total??0,` `,e(`common.running`).toLowerCase(),(n.services.bridges.stopped??0)>0&&` (${n.services.bridges.stopped} ${e(`common.stopped`).toLowerCase()})`]}),n.services?.homeAssistant&&(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`health.homeAssistant`),`:`]}),` `,n.services.homeAssistant.connected?e(`health.connected`):e(`health.disconnected`)]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`strong`,{children:`WebSocket:`}),` `,e(t?`health.connected`:`health.disconnected`)]})]}):e(`status.loadingHealth`);return(0,W.jsx)(vb,{title:d,arrow:!0,children:(0,W.jsx)(Nv,{icon:i||!s?(0,W.jsx)(Ax,{fontSize:`small`}):l?(0,W.jsx)(_v,{fontSize:`small`}):(0,W.jsx)(Ob,{fontSize:`small`}),label:e(i?`status.error`:s?t?u?`status.noBridges`:l?`common.online`:`common.starting`:`common.offline`:`status.unhealthy`),color:i||!s?`error`:!l||!t?`warning`:`success`,size:`small`,variant:`filled`,sx:{borderRadius:1,fontWeight:600,"& .MuiChip-icon":{color:`inherit`}}})})}var $6e=e=>(0,W.jsx)(`svg`,{viewBox:`0 0 91 89`,xmlSpace:`preserve`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsxs)(`g`,{style:{display:`inline`},children:[(0,W.jsx)(`path`,{style:{fill:`#18bcf2`,fillOpacity:1,strokeWidth:.266194},d:`m 49.149143,1.473171 38.513568,38.536435 c 0,0 1.248354,1.186052 2.207681,3.092371 0.959329,1.906323 1.10864,4.600698 1.10864,4.600698 v 36.786372 c 0,0 -0.01549,1.748506 -1.49842,3.050572 -1.482931,1.302064 -3.333077,1.362947 -3.333077,1.362947 l -81.325658,7.7e-5 c 0,0 -1.7523855,-0.0091 -3.17112,-1.352526 C -0.07808495,85.913164 0.05953025,84.487808 0.05953025,84.487808 V 47.704546 c 0,0 -0.0018381,-2.218618 0.95921785,-4.315832 0.9610554,-2.097209 2.3010618,-3.355005 2.3010618,-3.355005 L 41.545959,1.4719546 c 0,0 1.465224,-1.46837077 3.753488,-1.46837077 2.288268,0 3.849696,1.46958717 3.849696,1.46958717 z`}),(0,W.jsx)(`path`,{style:{fill:`#ffffff`,fillOpacity:1,strokeWidth:.175841},d:`m 31.689717,32.051124 c 2.813363,2.331095 6.157331,3.89845 9.721813,4.556421 V 17.180647 l 3.873694,-2.282955 3.870527,2.282955 V 36.60772 c 3.565364,-0.658847 6.910387,-2.226204 9.725159,-4.556417 l 7.032345,4.154609 c -11.437354,11.557779 -29.852321,11.557779 -41.290025,0 z m 8.546732,49.60988 C 44.314996,65.760441 35.09933,49.470196 19.574984,45.139543 v 8.312381 c 3.383916,1.32244 6.386113,3.496288 8.728705,6.320026 L 11.83076,69.485301 v 4.56907 l 3.873697,2.270836 16.469936,-9.713534 c 1.224356,3.48294 1.56683,7.225375 0.996449,10.879778 z M 70.977694,45.139543 c -15.515726,4.34014 -24.72189,20.626696 -20.643519,36.521461 l 7.047658,-4.15742 c -0.569325,-3.654411 -0.2265,-7.3965 0.996449,-10.87979 l 16.457611,9.701233 3.870711,-2.283125 v -4.55677 L 62.233673,59.77195 c 2.342772,-2.822684 5.34497,-4.996533 8.728708,-6.320026 z`})]})}),e8e=e=>{let t=O6e();return(0,W.jsxs)(X,{component:ra,to:Y9.dashboard,sx:{display:`flex`,alignItems:`center`,justifyContent:e.large?`flex-start`:`center`,flexGrow:1,textDecoration:`none`,color:`inherit`},children:[(0,W.jsx)($6e,{style:{height:`40px`}}),(0,W.jsx)(Q,{variant:`inherit`,component:`span`,sx:{mr:1,ml:1},children:t.name.split(`-`).map(J).join(`-`)}),e.large&&(0,W.jsx)(Q,{variant:`caption`,component:`span`,children:t.version})]})},t8e=()=>{let e=Y6e(`(min-width:600px)`),{mode:t,setMode:n}=Lm(),[r,i]=(0,C.useState)(!1),[a,o]=(0,C.useState)(!1),s=Dr(),c=Tr(),l=e=>e?e===`/`?c.pathname===`/`:c.pathname.startsWith(e):!1,u=()=>{n(t===`dark`?`light`:`dark`)},{t:d}=_s(),f=[{label:d(`dashboard.title`),icon:(0,W.jsx)(cE,{}),to:Y9.dashboard},{label:d(`nav.bridges`),icon:(0,W.jsx)(lE,{}),to:Y9.bridges},{label:d(`nav.devices`),icon:(0,W.jsx)(xb,{}),to:Y9.devices},{label:d(`nav.standaloneDevices`,`Standalone Devices`),icon:(0,W.jsx)($he,{}),to:Y9.standaloneDevices},{label:d(`nav.networkMap`),icon:(0,W.jsx)(XT,{}),to:Y9.networkMap},{label:d(`nav.startupOrder`),icon:(0,W.jsx)(vv,{}),to:Y9.startup},{label:d(`nav.lockCredentials`),icon:(0,W.jsx)(FT,{}),to:Y9.lockCredentials},{label:d(`nav.filterReference`),icon:(0,W.jsx)(uE,{}),to:Y9.labels},{label:`Plugins`,icon:(0,W.jsx)(oE,{}),to:Y9.plugins},{label:d(`nav.settings`),icon:(0,W.jsx)(UT,{}),to:Y9.settings},{label:d(t===`dark`?`nav.lightMode`:`nav.darkMode`),icon:t===`dark`?(0,W.jsx)(Khe,{}):(0,W.jsx)(Nhe,{}),onClick:u},{label:d(`nav.systemLogs`),icon:(0,W.jsx)(tE,{}),onClick:()=>i(!0)},{label:d(`nav.health`),icon:(0,W.jsx)(Ix,{}),to:Y9.health}],p=e=>{o(!1),e.onClick?e.onClick():e.to&&s(e.to)};return(0,W.jsxs)(X,{children:[(0,W.jsx)(P6e,{sx:{height:`72px`},children:(0,W.jsx)(h6e,{sx:{paddingLeft:`0 !important`,paddingRight:`0 !important`},children:(0,W.jsxs)(Z9,{sx:{padding:2,height:`100%`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,W.jsx)(e8e,{large:e}),e?(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:1},children:[f.map(e=>e.to?(0,W.jsx)(vb,{title:e.label,children:(0,W.jsx)(Uh,{component:ra,to:e.to,sx:{color:`inherit`,bgcolor:l(e.to)?`rgba(255,255,255,0.15)`:`transparent`,borderRadius:1},children:e.icon})},e.label):(0,W.jsx)(vb,{title:e.label,children:(0,W.jsx)(Uh,{onClick:e.onClick,sx:{color:`inherit`},children:e.icon})},e.label)),(0,W.jsx)(Q6e,{})]}):(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[(0,W.jsx)(Q6e,{}),(0,W.jsx)(Uh,{onClick:()=>o(!0),sx:{color:`inherit`},children:(0,W.jsx)(qhe,{})})]})]})})}),(0,W.jsx)(J6e,{anchor:`right`,open:a,onClose:()=>o(!1),children:(0,W.jsx)(oy,{sx:{width:250},children:f.map(e=>(0,W.jsxs)(zae,{selected:l(e.to),onClick:()=>p(e),children:[(0,W.jsx)(dy,{children:e.icon}),(0,W.jsx)(py,{primary:e.label})]},e.label))})}),(0,W.jsx)(Z6e,{open:r,onClose:()=>i(!1)})]})},n8e=()=>{let{versionMismatch:e,frontendVersion:t,backendVersion:n}=O6e(),{isConnected:r}=iv();return(0,W.jsxs)(X,{children:[(0,W.jsx)(t8e,{}),(0,W.jsx)(h6e,{}),e&&(0,W.jsxs)(Kh,{severity:`warning`,variant:`filled`,sx:{borderRadius:0},action:(0,W.jsx)(Z,{color:`inherit`,size:`small`,onClick:()=>window.location.reload(),children:`Reload`}),children:[`Version mismatch: frontend `,t,`, backend `,n,`. Please reload to get the latest UI.`]}),!r&&(0,W.jsx)(Kh,{severity:`error`,variant:`filled`,sx:{borderRadius:0},children:`Connection lost, data may be outdated. Reconnecting…`}),(0,W.jsx)(Z9,{sx:{p:2},children:(0,W.jsx)(g6e,{children:(0,W.jsx)(si,{})})}),(0,W.jsx)(k6e,{}),(0,W.jsx)(E6e,{})]})},r8e=wm({colorSchemes:{light:{palette:{primary:{main:`#1976d2`,light:`#42a5f5`,dark:`#1565c0`},secondary:{main:`#9c27b0`,light:`#ba68c8`,dark:`#7b1fa2`},background:{default:`#f5f5f5`,paper:`#ffffff`}}},dark:{palette:{primary:{main:`#90caf9`,light:`#e3f2fd`,dark:`#42a5f5`},secondary:{main:`#ce93d8`,light:`#f3e5f5`,dark:`#ab47bc`},background:{default:`#121212`,paper:`#1e1e1e`}}}},typography:{fontFamily:`"Roboto", "Helvetica", "Arial", sans-serif`,h1:{fontSize:`2.5rem`,fontWeight:500},h2:{fontSize:`2rem`,fontWeight:500},h3:{fontSize:`1.75rem`,fontWeight:500},h4:{fontSize:`1.5rem`,fontWeight:500},h5:{fontSize:`1.25rem`,fontWeight:500},h6:{fontSize:`1rem`,fontWeight:500}},shape:{borderRadius:8},components:{MuiCard:{styleOverrides:{root:{transition:`transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out`,"&:hover":{transform:`translateY(-2px)`,boxShadow:`0 4px 20px rgba(0,0,0,0.12)`}}}},MuiButton:{styleOverrides:{root:{textTransform:`none`,fontWeight:500}}},MuiChip:{styleOverrides:{root:{fontWeight:500}}},MuiAppBar:{styleOverrides:{root:{backgroundImage:`none`}}}}}),$9=document.getElementsByTagName(`base`)[0]?.href?.replace(/\/$/,``);$9?.startsWith(`http`)&&($9=new URL($9).pathname);var i8e=$i([{path:`/`,element:(0,W.jsx)(n8e,{}),children:c6e}],{basename:$9});(0,S.createRoot)(document.getElementById(`root`)).render((0,W.jsx)(C.StrictMode,{children:(0,W.jsx)(L,{store:d6e,children:(0,W.jsxs)(Jee,{theme:r8e,children:[(0,W.jsx)(Hee,{}),(0,W.jsx)(Om,{styles:{".rjsf-field-array > .MuiFormControl-root > .MuiPaper-root > .MuiBox-root > .MuiGrid-root > .MuiGrid-root:has(> .MuiBox-root > .MuiPaper-root > .MuiBox-root > .rjsf-field)":{overflow:`initial !important`,flexGrow:1}}}),(0,W.jsx)(bre,{children:(0,W.jsx)(une,{children:(0,W.jsx)(Ca,{router:i8e})})})]})})}));
|
|
466
|
+
`},X2e={onDragStart(e){let{active:t}=e;return`Picked up draggable item `+t.id+`.`},onDragOver(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was moved over droppable area `+n.id+`.`:`Draggable item `+t.id+` is no longer over a droppable area.`},onDragEnd(e){let{active:t,over:n}=e;return n?`Draggable item `+t.id+` was dropped over droppable area `+n.id:`Draggable item `+t.id+` was dropped.`},onDragCancel(e){let{active:t}=e;return`Dragging was cancelled. Draggable item `+t.id+` was dropped.`}};function Z2e(e){let{announcements:t=X2e,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=Y2e}=e,{announce:a,announcement:o}=G2e(),s=p9(`DndLiveRegion`),[c,l]=(0,C.useState)(!1);if((0,C.useEffect)(()=>{l(!0)},[]),q2e((0,C.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=C.createElement(C.Fragment,null,C.createElement(U2e,{id:r,value:i.draggable}),C.createElement(W2e,{id:s,announcement:o}));return n?(0,Sa.createPortal)(u,n):u}var y9;(function(e){e.DragStart=`dragStart`,e.DragMove=`dragMove`,e.DragEnd=`dragEnd`,e.DragCancel=`dragCancel`,e.DragOver=`dragOver`,e.RegisterDroppable=`registerDroppable`,e.SetDroppableDisabled=`setDroppableDisabled`,e.UnregisterDroppable=`unregisterDroppable`})(y9||={});function b9(){}function Q2e(e,t){return(0,C.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function $2e(){var e=[...arguments];return(0,C.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var x9=Object.freeze({x:0,y:0});function e4e(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function t4e(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function n4e(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function r4e(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function i4e(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function a4e(e,t,n){return t===void 0&&(t=e.left),n===void 0&&(n=e.top),{x:t+e.width*.5,y:n+e.height*.5}}var o4e=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=a4e(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=e4e(a4e(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(t4e)},s4e=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=r4e(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=r4e(r),o=i.reduce((e,t,r)=>e+e4e(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(t4e)};function c4e(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var l4e=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=c4e(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(n4e)};function u4e(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function d4e(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:x9}function f4e(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var p4e=f4e(1);function m4e(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}else if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function h4e(e,t,n){let r=m4e(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var g4e={ignoreTransform:!1};function S9(e,t){t===void 0&&(t=g4e);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=n9(e).getComputedStyle(e);t&&(n=h4e(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function _4e(e){return S9(e,{ignoreTransform:!0})}function v4e(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function y4e(e,t){return t===void 0&&(t=n9(e).getComputedStyle(e)),t.position===`fixed`}function b4e(e,t){t===void 0&&(t=n9(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`?n.test(r):!1})}function C9(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(r9(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!i9(i)||F2e(i)||n.includes(i))return n;let a=n9(e).getComputedStyle(i);return i!==e&&b4e(i,a)&&n.push(i),y4e(i,a)?n:r(i.parentNode)}return e?r(e):n}function x4e(e){let[t]=C9(e,1);return t??null}function w9(e){return!$7||!e?null:e9(e)?e:t9(e)?r9(e)||e===a9(e).scrollingElement?window:i9(e)?e:null:null}function S4e(e){return e9(e)?e.scrollX:e.scrollLeft}function C4e(e){return e9(e)?e.scrollY:e.scrollTop}function T9(e){return{x:S4e(e),y:C4e(e)}}var E9;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(E9||={});function w4e(e){return!$7||!e?!1:e===document.scrollingElement}function T4e(e){let t={x:0,y:0},n=w4e(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var E4e={x:.2,y:.2};function D4e(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=E4e);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=T4e(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=E9.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=E9.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=E9.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=E9.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function O4e(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function k4e(e){return e.reduce((e,t)=>m9(e,T9(t)),x9)}function A4e(e){return e.reduce((e,t)=>e+S4e(t),0)}function j4e(e){return e.reduce((e,t)=>e+C4e(t),0)}function M4e(e,t){if(t===void 0&&(t=S9),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);x4e(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var N4e=[[`x`,[`left`,`right`],A4e],[`y`,[`top`,`bottom`],j4e]],D9=class{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;let n=C9(t),r=k4e(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of N4e)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},O9=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function P4e(e){let{EventTarget:t}=n9(e);return e instanceof t?e:a9(e)}function k9(e,t){let n=Math.abs(e.x),r=Math.abs(e.y);return typeof t==`number`?Math.sqrt(n**2+r**2)>t:`x`in t&&`y`in t?n>t.x&&r>t.y:`x`in t?n>t.x:`y`in t?r>t.y:!1}var A9;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(A9||={});function F4e(e){e.preventDefault()}function I4e(e){e.stopPropagation()}var j9;(function(e){e.Space=`Space`,e.Down=`ArrowDown`,e.Right=`ArrowRight`,e.Left=`ArrowLeft`,e.Up=`ArrowUp`,e.Esc=`Escape`,e.Enter=`Enter`,e.Tab=`Tab`})(j9||={});var L4e={start:[j9.Space,j9.Enter],cancel:[j9.Esc],end:[j9.Space,j9.Enter,j9.Tab]},R4e=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case j9.Right:return{...n,x:n.x+25};case j9.Left:return{...n,x:n.x-25};case j9.Down:return{...n,y:n.y+25};case j9.Up:return{...n,y:n.y-25}}},M9=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new O9(a9(t)),this.windowListeners=new O9(n9(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(A9.Resize,this.handleCancel),this.windowListeners.add(A9.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(A9.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&M4e(n),t(x9)}handleKeyDown(e){if(g9(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=L4e,coordinateGetter:a=R4e,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:x9;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=h9(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=T4e(n),p=O4e(n),m={x:Math.min(i===j9.Right?p.right-p.width/2:p.right,Math.max(i===j9.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===j9.Down?p.bottom-p.height/2:p.bottom,Math.max(i===j9.Down?p.top:p.top+p.height/2,u.y))},h=i===j9.Right&&!s||i===j9.Left&&!c,g=i===j9.Down&&!l||i===j9.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===j9.Right&&e<=d.x||i===j9.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===j9.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===j9.Down&&e<=d.y||i===j9.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===j9.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,m9(h9(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};M9.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=L4e,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function z4e(e){return!!(e&&`distance`in e)}function B4e(e){return!!(e&&`delay`in e)}var N9=class{constructor(e,t,n){n===void 0&&(n=P4e(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=a9(i),this.documentListeners=new O9(this.document),this.listeners=new O9(n),this.windowListeners=new O9(n9(i)),this.initialCoordinates=_9(r)??x9,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(A9.Resize,this.handleCancel),this.windowListeners.add(A9.DragStart,F4e),this.windowListeners.add(A9.VisibilityChange,this.handleCancel),this.windowListeners.add(A9.ContextMenu,F4e),this.documentListeners.add(A9.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(B4e(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(z4e(t)){this.handlePending(t);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(A9.Click,I4e,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(A9.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=_9(e)??x9,s=h9(n,o);if(!t&&a){if(z4e(a)){if(a.tolerance!=null&&k9(s,a.tolerance))return this.handleCancel();if(k9(s,a.distance))return this.handleStart()}if(B4e(a)&&k9(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===j9.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},V4e={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},P9=class extends N9{constructor(e){let{event:t}=e,n=a9(t.target);super(e,V4e,n)}};P9.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var H4e={move:{name:`mousemove`},end:{name:`mouseup`}},U4e;(function(e){e[e.RightClick=2]=`RightClick`})(U4e||={});var W4e=class extends N9{constructor(e){super(e,H4e,a9(e.event.target))}};W4e.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===U4e.RightClick?!1:(r?.({event:n}),!0)}}];var F9={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},G4e=class extends N9{constructor(e){super(e,F9)}static setup(){return window.addEventListener(F9.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(F9.move.name,e)};function e(){}}};G4e.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var I9;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(I9||={});var L9;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(L9||={});function K4e(e){let{acceleration:t,activator:n=I9.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=L9.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=J4e({delta:d,disabled:!a}),[m,h]=I2e(),g=(0,C.useRef)({x:0,y:0}),_=(0,C.useRef)({x:0,y:0}),v=(0,C.useMemo)(()=>{switch(n){case I9.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case I9.DraggableRect:return i}},[n,i,c]),y=(0,C.useRef)(null),b=(0,C.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,C.useMemo)(()=>s===L9.TreeOrder?[...l].reverse():l,[s,l]);(0,C.useEffect)(()=>{if(!a||!l.length||!v){h();return}for(let e of x){if(r?.(e)===!1)continue;let n=u[l.indexOf(e)];if(!n)continue;let{direction:i,speed:a}=D4e(e,n,v,t,f);for(let e of[`x`,`y`])p[e][i[e]]||(a[e]=0,i[e]=0);if(a.x>0||a.y>0){h(),y.current=e,m(b,o),g.current=a,_.current=i;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var q4e={x:{[E9.Backward]:!1,[E9.Forward]:!1},y:{[E9.Backward]:!1,[E9.Forward]:!1}};function J4e(e){let{delta:t,disabled:n}=e,r=d9(t);return l9(e=>{if(n||!r||!e)return q4e;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[E9.Backward]:e.x[E9.Backward]||i.x===-1,[E9.Forward]:e.x[E9.Forward]||i.x===1},y:{[E9.Backward]:e.y[E9.Backward]||i.y===-1,[E9.Forward]:e.y[E9.Forward]||i.y===1}}},[n,t,r])}function Y4e(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return l9(e=>t==null?null:r??e??null,[r,t])}function X4e(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var R9;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(R9||={});var Z4e;(function(e){e.Optimized=`optimized`})(Z4e||={});var Q4e=new Map;function $4e(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,C.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,C.useRef)(e),d=g(),f=c9(d),p=(0,C.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,C.useRef)(null),h=l9(t=>{if(d&&!n)return Q4e;if(!t||t===Q4e||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new D9(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,C.useEffect)(()=>{u.current=e},[e]),(0,C.useEffect)(()=>{d||p()},[n,d]),(0,C.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,C.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case R9.Always:return!1;case R9.BeforeDragging:return n;default:return!n}}}function e3e(e,t){return l9(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function t3e(e,t){return e3e(e,t)}function n3e(e){let{callback:t,disabled:n}=e,r=s9(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function z9(e){let{callback:t,disabled:n}=e,r=s9(t),i=(0,C.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,C.useEffect)(()=>()=>i?.disconnect(),[i]),i}function r3e(e){return new D9(S9(e),e)}function i3e(e,t,n){t===void 0&&(t=r3e);let[r,i]=(0,C.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=n3e({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=z9({callback:a});return o9(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function a3e(e){return d4e(e,e3e(e))}var o3e=[];function s3e(e){let t=(0,C.useRef)(e),n=l9(n=>e?n&&n!==o3e&&e&&t.current&&e.parentNode===t.current.parentNode?n:C9(e):o3e,[e]);return(0,C.useEffect)(()=>{t.current=e},[e]),n}function c3e(e){let[t,n]=(0,C.useState)(null),r=(0,C.useRef)(e),i=(0,C.useCallback)(e=>{let t=w9(e.target);t&&n(e=>e?(e.set(t,T9(t)),new Map(e)):null)},[]);return(0,C.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=w9(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,T9(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{w9(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,C.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>m9(e,t),x9):k4e(e):x9,[e,t])}function l3e(e,t){t===void 0&&(t=[]);let n=(0,C.useRef)(null);return(0,C.useEffect)(()=>{n.current=null},t),(0,C.useEffect)(()=>{let t=e!==x9;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?h9(e,n.current):x9}function u3e(e){(0,C.useEffect)(()=>{if(!$7)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function d3e(e,t){return(0,C.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function f3e(e){return(0,C.useMemo)(()=>e?v4e(e):null,[e])}var p3e=[];function m3e(e,t){t===void 0&&(t=S9);let[n]=e,r=f3e(n?n9(n):null),[i,a]=(0,C.useState)(p3e);function o(){a(()=>e.length?e.map(e=>w4e(e)?r:new D9(t(e),e)):p3e)}let s=z9({callback:o});return o9(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function h3e(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return i9(t)?t:e}function g3e(e){let{measure:t}=e,[n,r]=(0,C.useState)(null),i=z9({callback:(0,C.useCallback)(e=>{for(let{target:n}of e)if(i9(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=u9((0,C.useCallback)(e=>{let n=h3e(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,C.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var _3e=[{sensor:P9,options:{}},{sensor:M9,options:{}}],v3e={current:{}},B9={draggable:{measure:_4e},droppable:{measure:_4e,strategy:R9.WhileDragging,frequency:Z4e.Optimized},dragOverlay:{measure:S9}},V9=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},y3e={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new V9,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:b9},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:B9,measureDroppableContainers:b9,windowRect:null,measuringScheduled:!1},b3e={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:b9,draggableNodes:new Map,over:null,measureDroppableContainers:b9},H9=(0,C.createContext)(b3e),x3e=(0,C.createContext)(y3e);function S3e(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new V9}}}function C3e(e,t){switch(t.type){case y9.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case y9.DragMove:return e.draggable.active==null?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case y9.DragEnd:case y9.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case y9.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new V9(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case y9.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new V9(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case y9.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new V9(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function w3e(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,C.useContext)(H9),a=d9(r),o=d9(n?.id);return(0,C.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!g9(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=V2e(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function T3e(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function E3e(e){return(0,C.useMemo)(()=>({draggable:{...B9.draggable,...e?.draggable},droppable:{...B9.droppable,...e?.droppable},dragOverlay:{...B9.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function D3e(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,C.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;o9(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=d4e(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=x4e(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var O3e=(0,C.createContext)({...x9,scaleX:1,scaleY:1}),U9;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(U9||={});var k3e=(0,C.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=_3e,collisionDetection:o=l4e,measuring:s,modifiers:c,...l}=e,[u,d]=(0,C.useReducer)(C3e,void 0,S3e),[f,p]=J2e(),[m,h]=(0,C.useState)(U9.Uninitialized),g=m===U9.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,C.useRef)({initial:null,translated:null}),w=(0,C.useMemo)(()=>_==null?null:{id:_,data:x?.data??v3e,rect:S},[_,x]),T=(0,C.useRef)(null),[E,D]=(0,C.useState)(null),[O,k]=(0,C.useState)(null),A=c9(l,Object.values(l)),j=p9(`DndDescribedBy`,t),M=(0,C.useMemo)(()=>b.getEnabled(),[b]),N=E3e(s),{droppableRects:P,measureDroppableContainers:F,measuringScheduled:I}=$4e(M,{dragging:g,dependencies:[y.x,y.y],config:N.droppable}),L=Y4e(v,_),R=(0,C.useMemo)(()=>O?_9(O):null,[O]),ee=Ee(),z=t3e(L,N.draggable.measure);D3e({activeNode:_==null?null:v.get(_),config:ee.layoutShiftCompensation,initialRect:z,measure:N.draggable.measure});let te=i3e(L,N.draggable.measure,z),B=i3e(L?L.parentElement:null),V=(0,C.useRef)({activatorEvent:null,active:null,activeNode:L,collisionRect:null,collisions:null,droppableRects:P,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ne=b.getNodeFor(V.current.over?.id),re=g3e({measure:N.dragOverlay.measure}),ie=re.nodeRef.current??L,ae=g?re.rect??te:null,oe=!!(re.nodeRef.current&&re.rect),se=a3e(oe?null:te),ce=f3e(ie?n9(ie):null),le=s3e(g?ne??L:null),ue=m3e(le),H=T3e(c,{transform:{x:y.x-se.x,y:y.y-se.y,scaleX:1,scaleY:1},activatorEvent:O,active:w,activeNodeRect:te,containerNodeRect:B,draggingNodeRect:ae,over:V.current.over,overlayNodeRect:re.rect,scrollableAncestors:le,scrollableAncestorRects:ue,windowRect:ce}),de=R?m9(R,y):null,fe=c3e(le),pe=l3e(fe),me=l3e(fe,[te]),he=m9(H,pe),U=ae?p4e(ae,H):null,ge=w&&U?o({active:w,collisionRect:U,droppableRects:P,droppableContainers:M,pointerCoordinates:de}):null,_e=i4e(ge,`id`),[ve,ye]=(0,C.useState)(null),be=u4e(oe?H:m9(H,me),ve?.rect??null,te),xe=(0,C.useRef)(null),Se=(0,C.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(T.current==null)return;let i=v.get(T.current);if(!i)return;let a=e.nativeEvent;xe.current=new n({active:T.current,activeNode:i,event:a,options:r,context:V,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=A.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=A.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=T.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=A.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,Sa.unstable_batchedUpdates)(()=>{r?.(i),h(U9.Initializing),d({type:y9.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),D(xe.current),k(a)})},onMove(e){d({type:y9.DragMove,coordinates:e})},onEnd:o(y9.DragEnd),onCancel:o(y9.DragCancel)});function o(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=V.current,o=null;if(t&&i){let{cancelDrop:s}=A.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===y9.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=y9.DragCancel)}T.current=null,(0,Sa.unstable_batchedUpdates)(()=>{d({type:e}),h(U9.Uninitialized),ye(null),D(null),k(null),xe.current=null;let t=e===y9.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=A.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),Ce=X4e(a,(0,C.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(T.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},T.current=r,Se(n,t))},[v,Se]));u3e(a),o9(()=>{te&&m===U9.Initializing&&h(U9.Initialized)},[te,m]),(0,C.useEffect)(()=>{let{onDragMove:e}=A.current,{active:t,activatorEvent:n,collisions:r,over:i}=V.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:he.x,y:he.y},over:i};(0,Sa.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[he.x,he.y]),(0,C.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=V.current;if(!e||T.current==null||!t||!i)return;let{onDragOver:a}=A.current,o=r.get(_e),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Sa.unstable_batchedUpdates)(()=>{ye(s),a?.(c),f({type:`onDragOver`,event:c})})},[_e]),o9(()=>{V.current={activatorEvent:O,active:w,activeNode:L,collisionRect:U,collisions:ge,droppableRects:P,draggableNodes:v,draggingNode:ie,draggingNodeRect:ae,droppableContainers:b,over:ve,scrollableAncestors:le,scrollAdjustedTranslate:he},S.current={initial:ae,translated:U}},[w,L,ge,U,v,ie,ae,P,b,ve,le,he]),K4e({...ee,delta:y,draggingRect:U,pointerCoordinates:de,scrollableAncestors:le,scrollableAncestorRects:ue});let we=(0,C.useMemo)(()=>({active:w,activeNode:L,activeNodeRect:te,activatorEvent:O,collisions:ge,containerNodeRect:B,dragOverlay:re,draggableNodes:v,droppableContainers:b,droppableRects:P,over:ve,measureDroppableContainers:F,scrollableAncestors:le,scrollableAncestorRects:ue,measuringConfiguration:N,measuringScheduled:I,windowRect:ce}),[w,L,te,O,ge,B,re,v,b,P,ve,F,le,ue,N,I,ce]),Te=(0,C.useMemo)(()=>({activatorEvent:O,activators:Ce,active:w,activeNodeRect:te,ariaDescribedById:{draggable:j},dispatch:d,draggableNodes:v,over:ve,measureDroppableContainers:F}),[O,Ce,w,te,d,j,v,ve,F]);return C.createElement(K2e.Provider,{value:p},C.createElement(H9.Provider,{value:Te},C.createElement(x3e.Provider,{value:we},C.createElement(O3e.Provider,{value:be},i)),C.createElement(w3e,{disabled:n?.restoreFocus===!1})),C.createElement(Z2e,{...n,hiddenTextDescribedById:j}));function Ee(){let e=E?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),A3e=(0,C.createContext)(null),j3e=`button`,M3e=`Draggable`;function N3e(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=p9(M3e),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,C.useContext)(H9),{role:p=j3e,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,C.useContext)(g?O3e:A3e),[v,y]=u9(),[b,x]=u9(),S=d3e(o,t),w=c9(n);return o9(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:w}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,C.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===j3e?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function P3e(){return(0,C.useContext)(x3e)}var F3e=`Droppable`,I3e={timeout:25};function L3e(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=p9(F3e),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,C.useContext)(H9),u=(0,C.useRef)({disabled:n}),d=(0,C.useRef)(!1),f=(0,C.useRef)(null),p=(0,C.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...I3e,...i},_=c9(h??r),v=z9({callback:(0,C.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=u9((0,C.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=c9(t);return(0,C.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,C.useEffect)(()=>(s({type:y9.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:y9.UnregisterDroppable,key:a,id:r})),[r]),(0,C.useEffect)(()=>{n!==u.current.disabled&&(s({type:y9.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function W9(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function R3e(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function G9(e){return e!==null&&e>=0}function z3e(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function B3e(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var V3e=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=W9(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},K9={scaleX:1,scaleY:1},H3e=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...K9}:null}let s=U3e(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...K9}:r<t&&r>=a?{x:0,y:o.height+s,...K9}:{x:0,y:0,...K9}};function U3e(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var W3e=`Sortable`,G3e=C.createContext({activeIndex:-1,containerId:W3e,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:V3e,disabled:{draggable:!1,droppable:!1}});function K3e(e){let{children:t,id:n,items:r,strategy:i=V3e,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=P3e(),d=p9(W3e,n),f=s.rect!==null,p=(0,C.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,C.useRef)(p),v=!z3e(p,_.current),y=g!==-1&&h===-1||v,b=B3e(a);o9(()=>{v&&m&&u(p)},[v,p,m,u]),(0,C.useEffect)(()=>{_.current=p},[p]);let x=(0,C.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:R3e(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return C.createElement(G3e.Provider,{value:x},t)}var q3e=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return W9(n,r,i).indexOf(t)},J3e=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Y3e={duration:200,easing:`ease`},X3e=`transform`,Z3e=v9.Transition.toString({property:X3e,duration:0,easing:`linear`}),Q3e={roleDescription:`sortable`};function $3e(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,C.useState)(null),s=(0,C.useRef)(n);return o9(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=S9(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,C.useEffect)(()=>{a&&o(null)},[a]),a}function e6e(e){let{animateLayoutChanges:t=J3e,attributes:n,disabled:r,data:i,getNewIndex:a=q3e,id:o,strategy:s,resizeObserverConfig:c,transition:l=Y3e}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,C.useContext)(G3e),y=t6e(r,p),b=u.indexOf(o),x=(0,C.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),S=(0,C.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:w,node:T,isOver:E,setNodeRef:D}=L3e({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:S,...c}}),{active:O,activatorEvent:k,activeNodeRect:A,attributes:j,setNodeRef:M,listeners:N,isDragging:P,over:F,setActivatorNodeRef:I,transform:L}=N3e({id:o,data:x,attributes:{...Q3e,...n},disabled:y.draggable}),R=P2e(D,M),ee=!!O,z=ee&&!m&&G9(f)&&G9(g),te=!_&&P,B=z?(te&&z?L:null)??(s??v)({rects:h,activeNodeRect:A,activeIndex:f,overIndex:g,index:b}):null,V=G9(f)&&G9(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,ne=O?.id,re=(0,C.useRef)({activeId:ne,items:u,newIndex:V,containerId:d}),ie=u!==re.current.items,ae=t({active:O,containerId:d,isDragging:P,isSorting:ee,id:o,index:b,items:u,newIndex:re.current.newIndex,previousItems:re.current.items,previousContainerId:re.current.containerId,transition:l,wasDragging:re.current.activeId!=null}),oe=$3e({disabled:!ae,index:b,node:T,rect:w});return(0,C.useEffect)(()=>{ee&&re.current.newIndex!==V&&(re.current.newIndex=V),d!==re.current.containerId&&(re.current.containerId=d),u!==re.current.items&&(re.current.items=u)},[ee,V,d,u]),(0,C.useEffect)(()=>{if(ne===re.current.activeId)return;if(ne!=null&&re.current.activeId==null){re.current.activeId=ne;return}let e=setTimeout(()=>{re.current.activeId=ne},50);return()=>clearTimeout(e)},[ne]),{active:O,activeIndex:f,attributes:j,data:x,rect:w,index:b,newIndex:V,items:u,isOver:E,isSorting:ee,isDragging:P,listeners:N,node:T,overIndex:g,over:F,setNodeRef:R,setActivatorNodeRef:I,setDroppableNodeRef:D,setDraggableNodeRef:M,transform:oe??B,transition:se()};function se(){if(oe||ie&&re.current.newIndex===b)return Z3e;if(!(te&&!g9(k)||!l)&&(ee||ae))return v9.Transition.toString({...l,property:X3e})}}function t6e(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function q9(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var n6e=[j9.Down,j9.Right,j9.Up,j9.Left],r6e=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(n6e.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case j9.Down:r.top<a.top&&t.push(n);break;case j9.Up:r.top>a.top&&t.push(n);break;case j9.Left:r.left>a.left&&t.push(n);break;case j9.Right:r.left<a.left&&t.push(n);break}});let c=s4e({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=i4e(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=C9(c).some((e,t)=>s[t]!==e),i=i6e(e,t),a=a6e(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:h9(u,l)}}}};function i6e(e,t){return!q9(e)||!q9(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function a6e(e,t){return!q9(e)||!q9(t)||!i6e(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}var o6e=({bridge:e,index:t})=>{let{attributes:n,listeners:r,setNodeRef:i,transform:a,transition:o,isDragging:s}=e6e({id:e.id}),[c,l]=(0,C.useState)(!1);return(0,C.useEffect)(()=>{kE(e.id).then(l)},[e.id]),(0,W.jsx)(Sv,{ref:i,style:{transform:v9.Transform.toString(a),transition:o,opacity:s?.5:1},variant:`outlined`,sx:{cursor:`grab`,"&:active":{cursor:`grabbing`},bgcolor:s?`action.selected`:`background.paper`,width:`fit-content`},children:(0,W.jsxs)(Tv,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:1,"&:last-child":{pb:1}},children:[(0,W.jsx)(X,{...n,...r,sx:{display:`flex`,alignItems:`center`,color:`text.secondary`},children:(0,W.jsx)(Ihe,{})}),(0,W.jsx)(Nv,{label:t+1,size:`small`,color:`primary`,sx:{minWidth:32,fontWeight:`bold`}}),c?(0,W.jsx)(X,{component:`img`,src:AE(e.id),alt:e.name,sx:{width:40,height:40,borderRadius:`50%`,objectFit:`cover`,boxShadow:2}}):(0,W.jsx)(jb,{sx:{bgcolor:IE(e),width:40,height:40,boxShadow:2},children:(0,W.jsx)(FE(e),{sx:{fontSize:24}})}),(0,W.jsxs)(X,{sx:{flex:1},children:[(0,W.jsx)(Q,{variant:`subtitle1`,fontWeight:500,children:e.name}),(0,W.jsxs)(Q,{variant:`caption`,color:`text.secondary`,children:[`Port: `,e.port,` • Priority: `,e.priority??100]})]})]})})},s6e=()=>{let{t:e}=_s(),t=ey(),{content:n,isLoading:r}=KT(),i=$me(),[a,o]=(0,C.useState)([]),[s,c]=(0,C.useState)(!1);(0,C.useEffect)(()=>{n&&(o([...n].sort((e,t)=>(e.priority??100)-(t.priority??100))),c(!1))},[n]);let l=$2e(Q2e(P9),Q2e(M9,{coordinateGetter:r6e})),u=(0,C.useCallback)(e=>{let{active:t,over:n}=e;n&&t.id!==n.id&&(o(e=>W9(e,e.findIndex(e=>e.id===t.id),e.findIndex(e=>e.id===n.id))),c(!0))},[]),d=(0,C.useCallback)(async()=>{let n=a.map((e,t)=>({id:e.id,priority:(t+1)*10}));try{await i(n),t.show({message:e(`startup.saveSuccess`),severity:`success`}),c(!1)}catch(n){t.show({message:n instanceof Error?n.message:e(`startup.saveFailed`),severity:`error`})}},[a,i,t,e]),f=(0,C.useMemo)(()=>a.map(e=>e.id),[a]);return r?(0,W.jsxs)(Q,{children:[e(`common.loading`),`...`]}):(0,W.jsxs)(Yv,{spacing:3,children:[(0,W.jsx)($v,{items:[{name:e(`nav.bridges`),to:Y9.bridges},{name:e(`startup.title`),to:Y9.startup}]}),(0,W.jsxs)(X,{display:`flex`,alignItems:`center`,gap:2,children:[(0,W.jsx)(vv,{color:`primary`,fontSize:`large`}),(0,W.jsxs)(X,{children:[(0,W.jsx)(Q,{variant:`h5`,fontWeight:600,children:e(`startup.title`)}),(0,W.jsx)(Q,{variant:`body2`,color:`text.secondary`,children:e(`startup.description`)})]})]}),s&&(0,W.jsx)(Kh,{severity:`info`,action:(0,W.jsx)(Z,{color:`inherit`,size:`small`,startIcon:(0,W.jsx)(yE,{}),onClick:d,children:e(`startup.saveChanges`)}),children:e(`startup.unsavedChanges`)}),(0,W.jsx)(k3e,{sensors:l,collisionDetection:o4e,onDragEnd:u,children:(0,W.jsx)(K3e,{items:f,strategy:H3e,children:(0,W.jsx)(Yv,{spacing:1,children:a.map((e,t)=>(0,W.jsx)(o6e,{bridge:e,index:t},e.id))})})}),a.length===0&&(0,W.jsx)(Q,{color:`text.secondary`,textAlign:`center`,py:4,children:e(`startup.noBridges`)}),s&&a.length>0&&(0,W.jsx)(X,{display:`flex`,justifyContent:`flex-end`,children:(0,W.jsx)(Z,{variant:`contained`,startIcon:(0,W.jsx)(yE,{}),onClick:d,children:e(`startup.saveOrder`)})})]})},J9=`https://riddix.github.io/home-assistant-matter-hub`,Y9={dashboard:`/`,bridges:`/bridges`,bridge:e=>`/bridges/${e}`,createBridge:`/bridges/create`,areaSetup:`/bridges/area-setup`,editBridge:e=>`/bridges/${e}/edit`,devices:`/devices`,standaloneDevices:`/standalone-devices`,networkMap:`/network-map`,health:`/health`,labels:`/labels`,lockCredentials:`/lock-credentials`,plugins:`/plugins`,settings:`/settings`,startup:`/startup`,githubRepository:`https://github.com/riddix/home-assistant-matter-hub/`,documentation:J9,support:`${J9}/support`,faq:{multiFabric:`${J9}/connect-multiple-fabrics`,bridgeConfig:`${J9}/bridge-configuration`}},c6e=[{path:``,element:(0,W.jsx)(xre,{}),children:[{path:``,element:(0,W.jsx)(g_e,{})},{path:Y9.bridges,element:(0,W.jsx)(u_e,{})},{path:Y9.createBridge,element:(0,W.jsx)(tJe,{})},{path:Y9.areaSetup,element:(0,W.jsx)(Sae,{})},{path:Y9.bridge(`:bridgeId`),element:(0,W.jsx)(hhe,{})},{path:Y9.editBridge(`:bridgeId`),element:(0,W.jsx)(rJe,{})},{path:Y9.devices,element:(0,W.jsx)(F_e,{})},{path:Y9.standaloneDevices,element:(0,W.jsx)(N2e,{})},{path:Y9.networkMap,element:(0,W.jsx)(K0e,{})},{path:Y9.health,element:(0,W.jsx)(TJe,{})},{path:Y9.labels,element:(0,W.jsx)(EJe,{})},{path:Y9.lockCredentials,element:(0,W.jsx)(MJe,{})},{path:Y9.plugins,element:(0,W.jsx)(v2e,{})},{path:Y9.settings,element:(0,W.jsx)(O2e,{})},{path:Y9.startup,element:(0,W.jsx)(s6e,{})},{path:`*`,element:(0,W.jsx)(NJe,{})}]}],l6e=A_({items:{isInitialized:!1,isLoading:!1}},e=>{e.addCase(J_.pending,e=>{e.items.isLoading=!0}).addCase(J_.rejected,(e,t)=>{e.items.isInitialized=!0,e.items.isLoading=!1,e.items.content=void 0,e.items.error=t.error}).addCase(J_.fulfilled,(e,t)=>{e.items.isInitialized=!0,e.items.isLoading=!1,e.items.content=t.payload,e.items.error=void 0}).addCase(Y_.fulfilled,(e,t)=>{e.items.content?.push(t.payload)}).addCase(Z_.fulfilled,(e,t)=>{let n=e.items.content?.findIndex(e=>e.id===t.payload.id)??-1;n!==-1&&(e.items.content[n]=t.payload)}).addCase(Q_.fulfilled,(e,t)=>{let n=e.items.content?.findIndex(e=>e.id===t.payload.id)??-1;n!==-1&&(e.items.content[n]=t.payload)}).addCase(X_.fulfilled,(e,t)=>{if(e.items.content){let n=e.items.content.findIndex(e=>e.id===t.meta.arg);n!==-1&&e.items.content.splice(n,1)}}).addCase($_,(e,t)=>{e.items.isInitialized=!0,e.items.isLoading=!1,e.items.content=t.payload,e.items.error=void 0}).addCase(ev,(e,t)=>{if(e.items.content){let n=e.items.content.findIndex(e=>e.id===t.payload.id);n===-1?e.items.content.push(t.payload):e.items.content[n]=t.payload}})}),u6e=A_({byBridge:{}},e=>{e.addCase(JT.pending,(e,t)=>{e.byBridge[t.meta.arg]=X9(e.byBridge[t.meta.arg],t)}).addCase(JT.rejected,(e,t)=>{e.byBridge[t.meta.arg]=X9(e.byBridge[t.meta.arg],t)}).addCase(JT.fulfilled,(e,t)=>{e.byBridge[t.meta.arg]=X9(e.byBridge[t.meta.arg],t)})}),X9=A_({isInitialized:!1,isLoading:!1,content:void 0,error:void 0},e=>{e.addCase(JT.pending,e=>{e.isLoading=!0}).addCase(JT.rejected,(e,t)=>{e.isInitialized=!0,e.isLoading=!1,e.content=void 0,e.error=t.error}).addCase(JT.fulfilled,(e,t)=>{e.isInitialized=!0,e.isLoading=!1,e.content=t.payload,e.error=void 0})}),d6e=Qne({reducer:{bridges:l6e,devices:u6e}}),Z9=Sp({createStyledComponent:q(`div`,{name:`MuiContainer`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`maxWidth${J(String(n.maxWidth))}`],n.fixed&&t.fixed,n.disableGutters&&t.disableGutters]}}),useThemeProps:e=>Mm({props:e,name:`MuiContainer`})});function f6e(e){return Vd(`MuiToolbar`,e)}Hd(`MuiToolbar`,[`root`,`gutters`,`regular`,`dense`]);var p6e=e=>{let{classes:t,disableGutters:n,variant:r}=e;return _p({root:[`root`,!n&&`gutters`,r]},f6e,t)},m6e=q(`div`,{name:`MuiToolbar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(Rm(({theme:e})=>({position:`relative`,display:`flex`,alignItems:`center`,variants:[{props:({ownerState:e})=>!e.disableGutters,style:{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}}},{props:{variant:`dense`},style:{minHeight:48}},{props:{variant:`regular`},style:e.mixins.toolbar}]}))),h6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiToolbar`}),{className:r,component:i=`div`,disableGutters:a=!1,variant:o=`regular`,...s}=n,c={...n,component:i,disableGutters:a,variant:o};return(0,W.jsx)(m6e,{as:i,className:G(p6e(c).root,r),ref:t,ownerState:c,...s})}),g6e=class extends C.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`ErrorBoundary caught:`,e,t.componentStack)}render(){return this.state.hasError?(0,W.jsxs)(X,{display:`flex`,flexDirection:`column`,alignItems:`center`,justifyContent:`center`,minHeight:`60vh`,gap:2,p:4,children:[(0,W.jsx)(Cb,{color:`error`,sx:{fontSize:64}}),(0,W.jsx)(Q,{variant:`h5`,fontWeight:600,children:zs.t(`errorBoundary.title`)}),(0,W.jsx)(Q,{variant:`body2`,color:`text.secondary`,textAlign:`center`,maxWidth:480,children:this.state.error?.message??zs.t(`errorBoundary.fallbackMessage`)}),(0,W.jsx)(Z,{variant:`contained`,onClick:()=>{this.setState({hasError:!1,error:null}),window.location.reload()},children:zs.t(`errorBoundary.reload`)})]}):this.props.children}};function _6e(e){return Vd(`MuiFab`,e)}var v6e=Hd(`MuiFab`,[`root`,`primary`,`secondary`,`extended`,`circular`,`focusVisible`,`disabled`,`colorInherit`,`sizeSmall`,`sizeMedium`,`sizeLarge`,`info`,`error`,`warning`,`success`]),y6e=e=>{let{color:t,variant:n,classes:r,size:i}=e,a=_p({root:[`root`,n,`size${J(i)}`,t===`inherit`?`colorInherit`:t]},_6e,r);return{...r,...a}},b6e=q(Ih,{name:`MuiFab`,slot:`Root`,shouldForwardProp:e=>Am(e)||e===`classes`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[n.variant],t[`size${J(n.size)}`],n.color===`inherit`&&t.colorInherit,t[J(n.size)],t[n.color]]}})(Rm(({theme:e})=>({...e.typography.button,minHeight:36,transition:e.transitions.create([`background-color`,`box-shadow`,`border-color`],{duration:e.transitions.duration.short}),borderRadius:`50%`,padding:0,minWidth:0,width:56,height:56,zIndex:(e.vars||e).zIndex.fab,boxShadow:(e.vars||e).shadows[6],"&:active":{boxShadow:(e.vars||e).shadows[12]},color:e.vars?e.vars.palette.grey[900]:e.palette.getContrastText?.(e.palette.grey[300]),backgroundColor:(e.vars||e).palette.grey[300],"&:hover":{backgroundColor:(e.vars||e).palette.grey.A100,"@media (hover: none)":{backgroundColor:(e.vars||e).palette.grey[300]},textDecoration:`none`},[`&.${v6e.focusVisible}`]:{boxShadow:(e.vars||e).shadows[6]},variants:[{props:{size:`small`},style:{width:40,height:40}},{props:{size:`medium`},style:{width:48,height:48}},{props:{variant:`extended`},style:{borderRadius:48/2,padding:`0 16px`,width:`auto`,minHeight:`auto`,minWidth:48,height:48}},{props:{variant:`extended`,size:`small`},style:{width:`auto`,padding:`0 8px`,borderRadius:34/2,minWidth:34,height:34}},{props:{variant:`extended`,size:`medium`},style:{width:`auto`,padding:`0 16px`,borderRadius:40/2,minWidth:40,height:40}},{props:{color:`inherit`},style:{color:`inherit`}}]})),Rm(({theme:e})=>({variants:[...Object.entries(e.palette).filter(qm([`dark`,`contrastText`])).map(([t])=>({props:{color:t},style:{color:(e.vars||e).palette[t].contrastText,backgroundColor:(e.vars||e).palette[t].main,"&:hover":{backgroundColor:(e.vars||e).palette[t].dark,"@media (hover: none)":{backgroundColor:(e.vars||e).palette[t].main}}}}))]})),Rm(({theme:e})=>({[`&.${v6e.disabled}`]:{color:(e.vars||e).palette.action.disabled,boxShadow:(e.vars||e).shadows[0],backgroundColor:(e.vars||e).palette.action.disabledBackground}}))),x6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiFab`}),{children:r,className:i,color:a=`default`,component:o=`button`,disabled:s=!1,disableFocusRipple:c=!1,focusVisibleClassName:l,size:u=`large`,variant:d=`circular`,...f}=n,p={...n,color:a,component:o,disabled:s,disableFocusRipple:c,size:u,variant:d},m=y6e(p);return(0,W.jsx)(b6e,{className:G(m.root,i),component:o,disabled:s,focusRipple:!c,focusVisibleClassName:G(m.focusVisible,l),ownerState:p,ref:t,...f,classes:m,children:r})}),S6e=[{code:`en`,flag:`🇬🇧`,name:`English`},{code:`de`,flag:`🇩🇪`,name:`Deutsch`},{code:`fr`,flag:`🇫🇷`,name:`Français`},{code:`es`,flag:`🇪🇸`,name:`Español`},{code:`it`,flag:`🇮🇹`,name:`Italiano`},{code:`hu`,flag:`🇭🇺`,name:`Magyar`},{code:`zh`,flag:`🇨🇳`,name:`中文`},{code:`zh-TW`,flag:`🇹🇼`,name:`繁體中文`},{code:`ja`,flag:`🇯🇵`,name:`日本語`},{code:`th`,flag:`🇹🇭`,name:`ไทย`},{code:`sv`,flag:`🇸🇪`,name:`Svenska`},{code:`tr`,flag:`🇹🇷`,name:`Türkçe`},{code:`ru`,flag:`🇷🇺`,name:`Русский`},{code:`pt-BR`,flag:`🇧🇷`,name:`Português (Brasil)`}],C6e=`hamh-custom-languages`;function w6e(){try{let e=localStorage.getItem(C6e);return e?JSON.parse(e).map(e=>({code:e.code,flag:`🌐`,name:e.name})):[]}catch{return[]}}var T6e=`https://github.com/RiDDiX/home-assistant-matter-hub/issues/new?labels=translation&title=Translation+improvement`;function E6e(){let{t:e,i18n:t}=_s(),[n,r]=(0,C.useState)(!1),i=(0,C.useRef)(null),a=(0,C.useMemo)(()=>[...S6e,...w6e()],[]),o=t.language??`en`,s=a.some(e=>e.code===o)?o:o.split(`-`)[0]??`en`,c=(0,C.useCallback)(()=>{r(e=>!e)},[]),l=(0,C.useCallback)(e=>{t.changeLanguage(e),r(!1)},[t]);return(0,W.jsx)(Yh,{onClickAway:(0,C.useCallback)(()=>{r(!1)},[]),children:(0,W.jsxs)(X,{children:[(0,W.jsx)(x6e,{ref:i,size:`small`,color:`primary`,onClick:c,"aria-label":`Change language`,sx:{position:`fixed`,bottom:24,right:24,zIndex:1300},children:(0,W.jsx)(Uhe,{})}),(0,W.jsx)(fb,{open:n,anchorEl:i.current,placement:`top-end`,transition:!0,sx:{zIndex:1300},children:({TransitionProps:t})=>(0,W.jsx)(Rb,{...t,timeout:200,children:(0,W.jsxs)(Jm,{elevation:8,sx:{mb:1,py:.5,minWidth:160,borderRadius:2,overflow:`hidden`},children:[a.map(e=>(0,W.jsxs)(X,{onClick:()=>l(e.code),sx:{display:`flex`,alignItems:`center`,gap:1.5,px:2,py:1,cursor:`pointer`,bgcolor:s===e.code?`action.selected`:`transparent`,"&:hover":{bgcolor:`action.hover`},transition:`background-color 0.15s`},children:[(0,W.jsx)(Q,{sx:{fontSize:`1.4rem`,lineHeight:1,userSelect:`none`},children:e.flag}),(0,W.jsx)(Q,{variant:`body2`,fontWeight:s===e.code?600:400,children:e.name})]},e.code)),(0,W.jsx)(Xb,{}),(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`flex-start`,gap:.75,px:2,py:1},children:[(0,W.jsx)(ty,{sx:{fontSize:14,mt:.25,color:`text.secondary`}}),(0,W.jsxs)(Q,{variant:`caption`,color:`text.secondary`,sx:{lineHeight:1.4},children:[e(`languageSwitcher.disclaimer`),` `,(0,W.jsx)(Qv,{href:T6e,target:`_blank`,rel:`noopener`,sx:{fontSize:`inherit`},children:e(`languageSwitcher.contribute`)})]})]})]})})})]})})}var D6e={name:`home-assistant-matter-hub`,description:``,version:`2.1.0-alpha.835`,private:!1,type:`module`,bin:{"home-assistant-matter-hub":`./dist/backend/cli.js`},author:{name:`riddix`,url:`https://github.com/riddix`},keywords:[`home-assistant`,`homeassistant`,`home`,`assistant`,`apple home`,`google home`,`apple`,`google`,`alexa`,`matter`,`matter.js`,`matterjs`,`project-chip`,`smart`,`smarthome`,`smart-home`],bugs:{url:`https://github.com/riddix/home-assistant-matter-hub/issues`},license:`Apache-2.0`,repository:`github:riddix/home-assistant-matter-hub`,scripts:{cleanup:`npx rimraf node_modules dist pack LICENSE README.md`,build:`node build.js`,bundle:`pnpm pack --out package.tgz`,postbuild:`pnpm run bundle`,test:`vitest run`,prestart:`pnpm run build`,start:`dotenvx run -f ../../.env -- ./dist/backend/cli.js start`},dependencies:{"@matter/main":`0.17.7`,"@matter/nodejs":`0.17.7`,"@matter/general":`0.17.7`,"@matter/types":`0.17.7`,ajv:`8.18.0`,archiver:`7.0.1`,color:`5.0.3`,debounce:`3.0.0`,express:`5.2.1`,"express-basic-auth":`1.2.1`,"express-ip-access-control":`1.1.3`,"home-assistant-js-websocket":`9.6.0`,"lodash-es":`4.18.1`,multer:`2.2.0`,nocache:`4.0.0`,unzipper:`0.12.3`,werift:`0.22.4`,ws:`8.21.0`,yargs:`18.0.0`},devDependencies:{"@home-assistant-matter-hub/backend":`workspace:*`,"@home-assistant-matter-hub/frontend":`workspace:*`,"@home-assistant-matter-hub/common":`workspace:*`,"@types/lodash-es":`^4.17.12`},overrides:{minimatch:`9.0.7`,"path-to-regexp":`^8.4.0`,glob:`^13.0.0`},nx:{targets:{start:{cache:!1,dependsOn:[`build`]},pack:{cache:!0,dependsOn:[`build`],outputs:[`{projectRoot}/pack`]},build:{inputs:[`^default`,`default`,`{workspaceRoot}/README.md`,`{workspaceRoot}/LICENSE`],outputs:[`{projectRoot}/dist`,`{projectRoot}/README.md`,`{projectRoot}/LICENSE`]}}}};function O6e(){let e=`2.1.0-alpha.835`,[t,n]=(0,C.useState)(null);(0,C.useEffect)(()=>{fetch(`api/health`).then(e=>e.ok?e.json():null).then(e=>{e?.version&&n(e.version)}).catch(()=>{})},[]);let r=(0,C.useMemo)(()=>t?e!==t:!1,[t]);return(0,C.useMemo)(()=>({name:D6e.name,version:t??e,frontendVersion:e,backendVersion:t,versionMismatch:r}),[t,r])}var k6e=()=>{let{t:e}=_s(),t=[{name:e(`footer.github`),url:Y9.githubRepository},{name:e(`footer.documentation`),url:Y9.documentation},{name:e(`footer.support`),url:Y9.support}];return(0,W.jsxs)(Z9,{sx:{mt:16,mb:4},children:[(0,W.jsx)(Xb,{sx:{mt:4,mb:4}}),(0,W.jsx)(Hv,{container:!0,spacing:2,justifyContent:`center`,children:t.map((e,t)=>(0,W.jsx)(Hv,{size:{xs:12,sm:`auto`},children:(0,W.jsx)(Z,{fullWidth:!0,size:`small`,variant:`outlined`,component:Qv,href:e.url,target:`_blank`,children:e.name})},t.toString()))})]})};function A6e(e){return Vd(`MuiAppBar`,e)}Hd(`MuiAppBar`,[`root`,`positionFixed`,`positionAbsolute`,`positionSticky`,`positionStatic`,`positionRelative`,`colorDefault`,`colorPrimary`,`colorSecondary`,`colorInherit`,`colorTransparent`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`]);var j6e=e=>{let{color:t,position:n,classes:r}=e;return _p({root:[`root`,`color${J(t)}`,`position${J(n)}`]},A6e,r)},M6e=(e,t)=>e?`${e.replace(`)`,``)}, ${t})`:t,N6e=q(Jm,{name:`MuiAppBar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${J(n.position)}`],t[`color${J(n.color)}`]]}})(Rm(({theme:e})=>({display:`flex`,flexDirection:`column`,width:`100%`,boxSizing:`border-box`,flexShrink:0,variants:[{props:{position:`fixed`},style:{position:`fixed`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0,"@media print":{position:`absolute`}}},{props:{position:`absolute`},style:{position:`absolute`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0}},{props:{position:`sticky`},style:{position:`sticky`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0}},{props:{position:`static`},style:{position:`static`}},{props:{position:`relative`},style:{position:`relative`}},{props:{color:`inherit`},style:{"--AppBar-color":`inherit`,color:`var(--AppBar-color)`}},{props:{color:`default`},style:{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[100],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[100]),...e.applyStyles(`dark`,{"--AppBar-background":e.vars?e.vars.palette.AppBar.defaultBg:e.palette.grey[900],"--AppBar-color":e.vars?e.vars.palette.text.primary:e.palette.getContrastText(e.palette.grey[900])})}},...Object.entries(e.palette).filter(qm([`contrastText`])).map(([t])=>({props:{color:t},style:{"--AppBar-background":(e.vars??e).palette[t].main,"--AppBar-color":(e.vars??e).palette[t].contrastText}})),{props:e=>e.enableColorOnDark===!0&&![`inherit`,`transparent`].includes(e.color),style:{backgroundColor:`var(--AppBar-background)`,color:`var(--AppBar-color)`}},{props:e=>e.enableColorOnDark===!1&&![`inherit`,`transparent`].includes(e.color),style:{backgroundColor:`var(--AppBar-background)`,color:`var(--AppBar-color)`,...e.applyStyles(`dark`,{backgroundColor:e.vars?M6e(e.vars.palette.AppBar.darkBg,`var(--AppBar-background)`):null,color:e.vars?M6e(e.vars.palette.AppBar.darkColor,`var(--AppBar-color)`):null})}},{props:{color:`transparent`},style:{"--AppBar-background":`transparent`,"--AppBar-color":`inherit`,backgroundColor:`var(--AppBar-background)`,color:`var(--AppBar-color)`,...e.applyStyles(`dark`,{backgroundImage:`none`})}}]}))),P6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiAppBar`}),{className:r,color:i=`primary`,enableColorOnDark:a=!1,position:o=`fixed`,...s}=n,c={...n,color:i,position:o,enableColorOnDark:a};return(0,W.jsx)(N6e,{square:!0,component:`header`,ownerState:c,elevation:4,className:G(j6e(c).root,r,o===`fixed`&&`mui-fixed`),ref:t,...s})}),F6e={visibility:`hidden`};function I6e(e,t,n){let r=n&&n.getBoundingClientRect(),i=ih(t),a=t.style.transform,o=t.style.transition;t.style.transition=``,t.style.transform=``;let s=t.getBoundingClientRect(),c=i.getComputedStyle(t).getPropertyValue(`transform`);t.style.transform=a,t.style.transition=o;let l=0,u=0;if(c&&c!==`none`&&typeof c==`string`){let e=c.split(`(`)[1].split(`)`)[0].split(`,`);l=parseInt(e[4],10),u=parseInt(e[5],10)}return e===`left`?r?`translateX(${r.right+l-s.left}px)`:`translateX(${i.innerWidth+l-s.left}px)`:e===`right`?r?`translateX(-${s.right-r.left-l}px)`:`translateX(-${s.left+s.width-l}px)`:e===`up`?r?`translateY(${r.bottom+u-s.top}px)`:`translateY(${i.innerHeight+u-s.top}px)`:r?`translateY(-${s.top-r.top+s.height-u}px)`:`translateY(-${s.top+s.height-u}px)`}function L6e(e){return typeof e==`function`?e():e}function Q9(e,t,n){let r=I6e(e,t,L6e(n));r&&(t.style.transform=r)}var R6e=C.forwardRef(function(e,t){let n=Dm(),r={enter:n.transitions.easing.easeOut,exit:n.transitions.easing.sharp},i={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:a,appear:o=!0,children:s,container:c,direction:l=`down`,easing:u=r,in:d,onEnter:f,onEntered:p,onEntering:m,onExit:h,onExited:g,onExiting:_,style:v,timeout:y=i,...b}=e,x=C.useRef(null),S=fh(qh(s),x,t),w=Zh(x,(e,t)=>{Q9(l,e,c),Xh(e),f&&f(e,t)}),T=Zh(x,(e,t)=>{let r=$h({timeout:y,style:v,easing:u},{mode:`enter`});e.style.transition=n.transitions.create(`transform`,r),e.style.transform=`none`,m&&m(e,t)}),E=Zh(x,p),D=Zh(x,_),O=Zh(x,e=>{let t=$h({timeout:y,style:v,easing:u},{mode:`exit`});e.style.transition=n.transitions.create(`transform`,t),Q9(l,e,c),h&&h(e)}),k=Zh(x,e=>{e.style.transition=``,g&&g(e)}),A=e=>{a&&a(x.current,e)},j=C.useCallback(()=>{x.current&&Q9(l,x.current,c)},[l,c]);return C.useEffect(()=>{if(d||l===`down`||l===`right`)return;let e=$m(()=>{x.current&&Q9(l,x.current,c)}),t=ih(x.current);return t.addEventListener(`resize`,e),()=>{e.clear(),t.removeEventListener(`resize`,e)}},[l,d,c]),C.useEffect(()=>{d||j()},[d,j]),(0,W.jsx)(Dh,{nodeRef:x,onEnter:w,onEntered:E,onEntering:T,onExit:O,onExited:k,onExiting:D,addEndListener:A,appear:o,in:d,timeout:y,...b,children:(e,{ownerState:t,...n})=>{let r;return r=e===`exited`&&!d?v||s.props.style?{visibility:`hidden`,...v,...s.props.style}:F6e:v&&s.props.style?{...v,...s.props.style}:v||s.props.style,C.cloneElement(s,{ref:S,style:r,...n})}})});function z6e(e){return Vd(`MuiDrawer`,e)}Hd(`MuiDrawer`,[`root`,`docked`,`paper`,`anchorLeft`,`anchorRight`,`anchorTop`,`anchorBottom`,`paperAnchorLeft`,`paperAnchorRight`,`paperAnchorTop`,`paperAnchorBottom`,`paperAnchorDockedLeft`,`paperAnchorDockedRight`,`paperAnchorDockedTop`,`paperAnchorDockedBottom`,`modal`]);var B6e=(e,t)=>{let{ownerState:n}=e;return[t.root,(n.variant===`permanent`||n.variant===`persistent`)&&t.docked,n.variant===`temporary`&&t.modal]},V6e=e=>{let{classes:t,anchor:n,variant:r}=e;return _p({root:[`root`,`anchor${J(n)}`],docked:[(r===`permanent`||r===`persistent`)&&`docked`],modal:[`modal`],paper:[`paper`,`paperAnchor${J(n)}`,r!==`temporary`&&`paperAnchorDocked${J(n)}`]},z6e,t)},H6e=q(Hb,{name:`MuiDrawer`,slot:`Root`,overridesResolver:B6e})(Rm(({theme:e})=>({zIndex:(e.vars||e).zIndex.drawer}))),U6e=q(`div`,{shouldForwardProp:Am,name:`MuiDrawer`,slot:`Docked`,skipVariantsResolver:!1,overridesResolver:B6e})({flex:`0 0 auto`}),W6e=q(Jm,{name:`MuiDrawer`,slot:`Paper`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.paper,t[`paperAnchor${J(n.anchor)}`],n.variant!==`temporary`&&t[`paperAnchorDocked${J(n.anchor)}`]]}})(Rm(({theme:e})=>({overflowY:`auto`,display:`flex`,flexDirection:`column`,height:`100%`,flex:`1 0 auto`,zIndex:(e.vars||e).zIndex.drawer,WebkitOverflowScrolling:`touch`,position:`fixed`,top:0,outline:0,variants:[{props:{anchor:`left`},style:{left:0}},{props:{anchor:`top`},style:{top:0,left:0,right:0,height:`auto`,maxHeight:`100%`}},{props:{anchor:`right`},style:{right:0}},{props:{anchor:`bottom`},style:{top:`auto`,left:0,bottom:0,right:0,height:`auto`,maxHeight:`100%`}},{props:({ownerState:e})=>e.anchor===`left`&&e.variant!==`temporary`,style:{borderRight:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>e.anchor===`top`&&e.variant!==`temporary`,style:{borderBottom:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>e.anchor===`right`&&e.variant!==`temporary`,style:{borderLeft:`1px solid ${(e.vars||e).palette.divider}`}},{props:({ownerState:e})=>e.anchor===`bottom`&&e.variant!==`temporary`,style:{borderTop:`1px solid ${(e.vars||e).palette.divider}`}}]}))),G6e={left:`right`,right:`left`,top:`down`,bottom:`up`};function K6e(e){return[`left`,`right`].includes(e)}function q6e({direction:e},t){return e===`rtl`&&K6e(t)?G6e[t]:t}var J6e=C.forwardRef(function(e,t){let n=Mm({props:e,name:`MuiDrawer`}),r=Dm(),i=If(),a={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{anchor:o=`left`,BackdropProps:s,children:c,className:l,elevation:u=16,hideBackdrop:d=!1,ModalProps:{BackdropProps:f,...p}={},onClose:m,open:h=!1,PaperProps:g={},SlideProps:_,TransitionComponent:v,transitionDuration:y=a,variant:b=`temporary`,slots:x={},slotProps:S={},...w}=n,T=C.useRef(!1);C.useEffect(()=>{T.current=!0},[]);let E=q6e({direction:i?`rtl`:`ltr`},o),D=o,O={...n,anchor:D,elevation:u,open:h,variant:b,...w},k=V6e(O),A={slots:{transition:v,...x},slotProps:{paper:g,transition:_,...S,backdrop:ph(S.backdrop||{...s,...f},{transitionDuration:y})}},[j,M]=Km(`root`,{ref:t,elementType:H6e,className:G(k.root,k.modal,l),shouldForwardComponentProp:!0,ownerState:O,externalForwardedProps:{...A,...w,...p},additionalProps:{open:h,onClose:m,hideBackdrop:d,slots:{backdrop:A.slots.backdrop},slotProps:{backdrop:A.slotProps.backdrop}}}),[N,P]=Km(`paper`,{elementType:W6e,shouldForwardComponentProp:!0,className:G(k.paper,g.className),ownerState:O,externalForwardedProps:A,additionalProps:{elevation:b===`temporary`?u:0,square:!0,...b===`temporary`&&{role:`dialog`,"aria-modal":`true`}}}),[F,I]=Km(`docked`,{elementType:U6e,ref:t,className:G(k.root,k.docked,l),ownerState:O,externalForwardedProps:A,additionalProps:w}),[L,R]=Km(`transition`,{elementType:R6e,ownerState:O,externalForwardedProps:A,additionalProps:{in:h,direction:G6e[E],timeout:y,appear:T.current}}),ee=(0,W.jsx)(N,{...P,children:c});if(b===`permanent`)return(0,W.jsx)(F,{...I,children:ee});let z=(0,W.jsx)(L,{...R,children:ee});return b===`persistent`?(0,W.jsx)(F,{...I,children:z}):(0,W.jsx)(j,{...M,children:z})}),Y6e=uf({themeId:Em}),X6e={error:Ax,warn:ny,info:Tb,debug:tE},Z6e=({open:e,onClose:t})=>{let{t:n}=_s(),r=Dm(),i=(0,C.useMemo)(()=>({error:r.palette.error.main,warn:r.palette.warning.main,info:r.palette.info.main,debug:r.palette.secondary.main}),[r]),[a,o]=(0,C.useState)([]),[s,c]=(0,C.useState)(!0),[l,u]=(0,C.useState)(`error,warn,info`.split(`,`)),[d,f]=(0,C.useState)(``),[p,m]=(0,C.useState)(!0),h=(0,C.useCallback)(async()=>{try{let e=new URLSearchParams({level:l.join(`,`),limit:`500`,...d&&{search:d}}),t=await fetch(`api/logs?${e}`);t.ok&&o((await t.json()).entries)}catch(e){console.error(`Failed to fetch logs:`,e)}finally{c(!1)}},[l,d]);(0,C.useEffect)(()=>{e&&h()},[e,h]),(0,C.useEffect)(()=>{if(!p||!e)return;let t=setInterval(h,5e3);return()=>clearInterval(t)},[p,e,h]);let g=e=>{u(Array.isArray(e.target.value)?e.target.value:[e.target.value])},_=e=>{f(e.target.value)},v=async()=>{try{await fetch(`api/logs`,{method:`DELETE`}),o([])}catch(e){console.error(`Failed to clear logs:`,e)}},y=e=>(0,W.jsx)(X6e[e]||Tb,{sx:{fontSize:16,color:i[e]}});return(0,W.jsxs)(Gb,{open:e,onClose:t,maxWidth:`lg`,fullWidth:!0,children:[(0,W.jsxs)(Jb,{sx:{display:`flex`,alignItems:`center`,gap:1},children:[(0,W.jsx)(tE,{}),n(`logs.title`),(0,W.jsx)(X,{sx:{flexGrow:1}}),(0,W.jsx)(vb,{title:n(`logs.autoRefresh`),children:(0,W.jsx)(Nv,{label:p?`Auto`:`Manual`,color:p?`success`:`default`,size:`small`,onClick:()=>m(!p),sx:{cursor:`pointer`}})}),(0,W.jsx)(Uh,{onClick:t,children:(0,W.jsx)(rE,{})})]}),(0,W.jsxs)(qb,{children:[(0,W.jsx)(Yv,{spacing:2,sx:{mb:2},children:(0,W.jsxs)(Yv,{direction:`row`,spacing:2,alignItems:`center`,children:[(0,W.jsxs)(Iv,{size:`small`,sx:{minWidth:200},children:[(0,W.jsx)(qx,{children:n(`logs.logLevel`)}),(0,W.jsxs)(kS,{value:l,label:n(`logs.logLevel`),onChange:g,multiple:!0,renderValue:e=>(0,W.jsx)(X,{sx:{display:`flex`,flexWrap:`wrap`,gap:.5},children:(Array.isArray(e)?e:[e]).map(e=>(0,W.jsx)(Nv,{label:e.toUpperCase(),size:`small`,sx:{backgroundColor:i[e],color:`white`}},e))}),children:[(0,W.jsx)(AS,{value:`error`,children:n(`logs.error`)}),(0,W.jsx)(AS,{value:`warn`,children:n(`logs.warning`)}),(0,W.jsx)(AS,{value:`info`,children:n(`logs.info`)}),(0,W.jsx)(AS,{value:`debug`,children:n(`logs.debug`)})]})]}),(0,W.jsx)(NS,{size:`small`,placeholder:n(`logs.searchPlaceholder`),value:d,onChange:_,sx:{flexGrow:1}}),(0,W.jsx)(Z,{variant:`outlined`,onClick:h,children:n(`common.refresh`)}),(0,W.jsx)(Z,{variant:`outlined`,color:`error`,onClick:v,children:n(`common.delete`)})]})}),(0,W.jsx)(X,{sx:{height:400,overflow:`auto`,backgroundColor:`background.paper`,border:1,borderColor:`divider`,borderRadius:1,p:1},children:s?(0,W.jsx)(X,{sx:{display:`flex`,justifyContent:`center`,p:4},children:(0,W.jsxs)(Q,{children:[n(`common.loading`),`...`]})}):a.length===0?(0,W.jsx)(X,{sx:{display:`flex`,justifyContent:`center`,p:4},children:(0,W.jsx)(Q,{color:`text.secondary`,children:n(`logs.noResults`)})}):(0,W.jsx)(Yv,{spacing:1,children:a.map((e,t)=>(0,W.jsxs)(X,{sx:{p:1,borderRadius:1,backgroundColor:`action.hover`,fontFamily:`monospace`,fontSize:`0.875rem`,wordBreak:`break-all`},children:[(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:.5},children:[y(e.level),(0,W.jsx)(Q,{variant:`caption`,color:`text.secondary`,children:new Date(e.timestamp).toLocaleString()}),(0,W.jsx)(Nv,{label:e.level.toUpperCase(),size:`small`,sx:{backgroundColor:i[e.level],color:r.palette.getContrastText(i[e.level]??r.palette.grey[500]),fontSize:`0.7rem`,height:20}})]}),(0,W.jsx)(Q,{sx:{ml:3},children:e.message}),e.context&&(0,W.jsx)(Q,{sx:{ml:3,color:`text.secondary`,fontSize:`0.8rem`},children:JSON.stringify(e.context,null,2)})]},`${e.timestamp}-${e.level}-${t}`))})})]}),(0,W.jsx)(Kb,{children:(0,W.jsx)(Z,{onClick:t,children:n(`common.close`)})})]})};function Q6e(){let{t:e}=_s(),{isConnected:t}=iv(),[n,r]=(0,C.useState)(null),[i,a]=(0,C.useState)(!1);(0,C.useEffect)(()=>{let e=async()=>{try{let e=await fetch(`api/health`);e.ok?(r(await e.json()),a(!1)):a(!0)}catch{a(!0)}};e();let t=setInterval(e,3e4);return()=>clearInterval(t)},[]);let o=e=>{let t=Math.floor(e/3600),n=Math.floor(e%3600/60);return t>0?`${t}h ${n}m`:`${n}m`},s=n?.status===`healthy`&&!i,c=n?.services?.bridges,l=c&&c.total>0&&c.running===c.total,u=c&&c.total===0,d=n?(0,W.jsxs)(X,{sx:{p:.5},children:[(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`health.version`),`:`]}),` `,n.version??e(`status.unknown`)]}),(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`health.uptime`),`:`]}),` `,o(n.uptime??0)]}),n.services?.bridges&&(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`nav.bridges`),`:`]}),` `,n.services.bridges.running??0,`/`,n.services.bridges.total??0,` `,e(`common.running`).toLowerCase(),(n.services.bridges.stopped??0)>0&&` (${n.services.bridges.stopped} ${e(`common.stopped`).toLowerCase()})`]}),n.services?.homeAssistant&&(0,W.jsxs)(`div`,{children:[(0,W.jsxs)(`strong`,{children:[e(`health.homeAssistant`),`:`]}),` `,n.services.homeAssistant.connected?e(`health.connected`):e(`health.disconnected`)]}),(0,W.jsxs)(`div`,{children:[(0,W.jsx)(`strong`,{children:`WebSocket:`}),` `,e(t?`health.connected`:`health.disconnected`)]})]}):e(`status.loadingHealth`);return(0,W.jsx)(vb,{title:d,arrow:!0,children:(0,W.jsx)(Nv,{icon:i||!s?(0,W.jsx)(Ax,{fontSize:`small`}):l?(0,W.jsx)(_v,{fontSize:`small`}):(0,W.jsx)(Ob,{fontSize:`small`}),label:e(i?`status.error`:s?t?u?`status.noBridges`:l?`common.online`:`common.starting`:`common.offline`:`status.unhealthy`),color:i||!s?`error`:!l||!t?`warning`:`success`,size:`small`,variant:`filled`,sx:{borderRadius:1,fontWeight:600,"& .MuiChip-icon":{color:`inherit`}}})})}var $6e=e=>(0,W.jsx)(`svg`,{viewBox:`0 0 91 89`,xmlSpace:`preserve`,xmlns:`http://www.w3.org/2000/svg`,...e,children:(0,W.jsxs)(`g`,{style:{display:`inline`},children:[(0,W.jsx)(`path`,{style:{fill:`#18bcf2`,fillOpacity:1,strokeWidth:.266194},d:`m 49.149143,1.473171 38.513568,38.536435 c 0,0 1.248354,1.186052 2.207681,3.092371 0.959329,1.906323 1.10864,4.600698 1.10864,4.600698 v 36.786372 c 0,0 -0.01549,1.748506 -1.49842,3.050572 -1.482931,1.302064 -3.333077,1.362947 -3.333077,1.362947 l -81.325658,7.7e-5 c 0,0 -1.7523855,-0.0091 -3.17112,-1.352526 C -0.07808495,85.913164 0.05953025,84.487808 0.05953025,84.487808 V 47.704546 c 0,0 -0.0018381,-2.218618 0.95921785,-4.315832 0.9610554,-2.097209 2.3010618,-3.355005 2.3010618,-3.355005 L 41.545959,1.4719546 c 0,0 1.465224,-1.46837077 3.753488,-1.46837077 2.288268,0 3.849696,1.46958717 3.849696,1.46958717 z`}),(0,W.jsx)(`path`,{style:{fill:`#ffffff`,fillOpacity:1,strokeWidth:.175841},d:`m 31.689717,32.051124 c 2.813363,2.331095 6.157331,3.89845 9.721813,4.556421 V 17.180647 l 3.873694,-2.282955 3.870527,2.282955 V 36.60772 c 3.565364,-0.658847 6.910387,-2.226204 9.725159,-4.556417 l 7.032345,4.154609 c -11.437354,11.557779 -29.852321,11.557779 -41.290025,0 z m 8.546732,49.60988 C 44.314996,65.760441 35.09933,49.470196 19.574984,45.139543 v 8.312381 c 3.383916,1.32244 6.386113,3.496288 8.728705,6.320026 L 11.83076,69.485301 v 4.56907 l 3.873697,2.270836 16.469936,-9.713534 c 1.224356,3.48294 1.56683,7.225375 0.996449,10.879778 z M 70.977694,45.139543 c -15.515726,4.34014 -24.72189,20.626696 -20.643519,36.521461 l 7.047658,-4.15742 c -0.569325,-3.654411 -0.2265,-7.3965 0.996449,-10.87979 l 16.457611,9.701233 3.870711,-2.283125 v -4.55677 L 62.233673,59.77195 c 2.342772,-2.822684 5.34497,-4.996533 8.728708,-6.320026 z`})]})}),e8e=e=>{let t=O6e();return(0,W.jsxs)(X,{component:ra,to:Y9.dashboard,sx:{display:`flex`,alignItems:`center`,justifyContent:e.large?`flex-start`:`center`,flexGrow:1,textDecoration:`none`,color:`inherit`},children:[(0,W.jsx)($6e,{style:{height:`40px`}}),(0,W.jsx)(Q,{variant:`inherit`,component:`span`,sx:{mr:1,ml:1},children:t.name.split(`-`).map(J).join(`-`)}),e.large&&(0,W.jsx)(Q,{variant:`caption`,component:`span`,children:t.version})]})},t8e=()=>{let e=Y6e(`(min-width:600px)`),{mode:t,setMode:n}=Lm(),[r,i]=(0,C.useState)(!1),[a,o]=(0,C.useState)(!1),s=Dr(),c=Tr(),l=e=>e?e===`/`?c.pathname===`/`:c.pathname.startsWith(e):!1,u=()=>{n(t===`dark`?`light`:`dark`)},{t:d}=_s(),f=[{label:d(`dashboard.title`),icon:(0,W.jsx)(cE,{}),to:Y9.dashboard},{label:d(`nav.bridges`),icon:(0,W.jsx)(lE,{}),to:Y9.bridges},{label:d(`nav.devices`),icon:(0,W.jsx)(xb,{}),to:Y9.devices},{label:d(`nav.standaloneDevices`,`Standalone Devices`),icon:(0,W.jsx)($he,{}),to:Y9.standaloneDevices},{label:d(`nav.networkMap`),icon:(0,W.jsx)(XT,{}),to:Y9.networkMap},{label:d(`nav.startupOrder`),icon:(0,W.jsx)(vv,{}),to:Y9.startup},{label:d(`nav.lockCredentials`),icon:(0,W.jsx)(FT,{}),to:Y9.lockCredentials},{label:d(`nav.filterReference`),icon:(0,W.jsx)(uE,{}),to:Y9.labels},{label:`Plugins`,icon:(0,W.jsx)(oE,{}),to:Y9.plugins},{label:d(`nav.settings`),icon:(0,W.jsx)(UT,{}),to:Y9.settings},{label:d(t===`dark`?`nav.lightMode`:`nav.darkMode`),icon:t===`dark`?(0,W.jsx)(Khe,{}):(0,W.jsx)(Nhe,{}),onClick:u},{label:d(`nav.systemLogs`),icon:(0,W.jsx)(tE,{}),onClick:()=>i(!0)},{label:d(`nav.health`),icon:(0,W.jsx)(Ix,{}),to:Y9.health}],p=e=>{o(!1),e.onClick?e.onClick():e.to&&s(e.to)};return(0,W.jsxs)(X,{children:[(0,W.jsx)(P6e,{sx:{height:`72px`},children:(0,W.jsx)(h6e,{sx:{paddingLeft:`0 !important`,paddingRight:`0 !important`},children:(0,W.jsxs)(Z9,{sx:{padding:2,height:`100%`,display:`flex`,justifyContent:`space-between`,alignItems:`center`},children:[(0,W.jsx)(e8e,{large:e}),e?(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:1},children:[f.map(e=>e.to?(0,W.jsx)(vb,{title:e.label,children:(0,W.jsx)(Uh,{component:ra,to:e.to,sx:{color:`inherit`,bgcolor:l(e.to)?`rgba(255,255,255,0.15)`:`transparent`,borderRadius:1},children:e.icon})},e.label):(0,W.jsx)(vb,{title:e.label,children:(0,W.jsx)(Uh,{onClick:e.onClick,sx:{color:`inherit`},children:e.icon})},e.label)),(0,W.jsx)(Q6e,{})]}):(0,W.jsxs)(X,{sx:{display:`flex`,alignItems:`center`,gap:.5},children:[(0,W.jsx)(Q6e,{}),(0,W.jsx)(Uh,{onClick:()=>o(!0),sx:{color:`inherit`},children:(0,W.jsx)(qhe,{})})]})]})})}),(0,W.jsx)(J6e,{anchor:`right`,open:a,onClose:()=>o(!1),children:(0,W.jsx)(oy,{sx:{width:250},children:f.map(e=>(0,W.jsxs)(zae,{selected:l(e.to),onClick:()=>p(e),children:[(0,W.jsx)(dy,{children:e.icon}),(0,W.jsx)(py,{primary:e.label})]},e.label))})}),(0,W.jsx)(Z6e,{open:r,onClose:()=>i(!1)})]})},n8e=()=>{let{versionMismatch:e,frontendVersion:t,backendVersion:n}=O6e(),{isConnected:r}=iv();return(0,W.jsxs)(X,{children:[(0,W.jsx)(t8e,{}),(0,W.jsx)(h6e,{}),e&&(0,W.jsxs)(Kh,{severity:`warning`,variant:`filled`,sx:{borderRadius:0},action:(0,W.jsx)(Z,{color:`inherit`,size:`small`,onClick:()=>window.location.reload(),children:`Reload`}),children:[`Version mismatch: frontend `,t,`, backend `,n,`. Please reload to get the latest UI.`]}),!r&&(0,W.jsx)(Kh,{severity:`error`,variant:`filled`,sx:{borderRadius:0},children:`Connection lost, data may be outdated. Reconnecting…`}),(0,W.jsx)(Z9,{sx:{p:2},children:(0,W.jsx)(g6e,{children:(0,W.jsx)(si,{})})}),(0,W.jsx)(k6e,{}),(0,W.jsx)(E6e,{})]})},r8e=wm({colorSchemes:{light:{palette:{primary:{main:`#1976d2`,light:`#42a5f5`,dark:`#1565c0`},secondary:{main:`#9c27b0`,light:`#ba68c8`,dark:`#7b1fa2`},background:{default:`#f5f5f5`,paper:`#ffffff`}}},dark:{palette:{primary:{main:`#90caf9`,light:`#e3f2fd`,dark:`#42a5f5`},secondary:{main:`#ce93d8`,light:`#f3e5f5`,dark:`#ab47bc`},background:{default:`#121212`,paper:`#1e1e1e`}}}},typography:{fontFamily:`"Roboto", "Helvetica", "Arial", sans-serif`,h1:{fontSize:`2.5rem`,fontWeight:500},h2:{fontSize:`2rem`,fontWeight:500},h3:{fontSize:`1.75rem`,fontWeight:500},h4:{fontSize:`1.5rem`,fontWeight:500},h5:{fontSize:`1.25rem`,fontWeight:500},h6:{fontSize:`1rem`,fontWeight:500}},shape:{borderRadius:8},components:{MuiCard:{styleOverrides:{root:{transition:`transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out`,"&:hover":{transform:`translateY(-2px)`,boxShadow:`0 4px 20px rgba(0,0,0,0.12)`}}}},MuiButton:{styleOverrides:{root:{textTransform:`none`,fontWeight:500}}},MuiChip:{styleOverrides:{root:{fontWeight:500}}},MuiAppBar:{styleOverrides:{root:{backgroundImage:`none`}}}}}),$9=document.getElementsByTagName(`base`)[0]?.href?.replace(/\/$/,``);$9?.startsWith(`http`)&&($9=new URL($9).pathname);var i8e=$i([{path:`/`,element:(0,W.jsx)(n8e,{}),children:c6e}],{basename:$9});(0,S.createRoot)(document.getElementById(`root`)).render((0,W.jsx)(C.StrictMode,{children:(0,W.jsx)(L,{store:d6e,children:(0,W.jsxs)(Jee,{theme:r8e,children:[(0,W.jsx)(Hee,{}),(0,W.jsx)(Om,{styles:{".rjsf-field-array > .MuiFormControl-root > .MuiPaper-root > .MuiBox-root > .MuiGrid-root > .MuiGrid-root:has(> .MuiBox-root > .MuiPaper-root > .MuiBox-root > .rjsf-field)":{overflow:`initial !important`,flexGrow:1}}}),(0,W.jsx)(bre,{children:(0,W.jsx)(une,{children:(0,W.jsx)(Ca,{router:i8e})})})]})})}));
|
package/dist/frontend/index.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<!-- BASE -->
|
|
9
9
|
<base href="/" />
|
|
10
10
|
<!-- /BASE -->
|
|
11
|
-
<script type="module" crossorigin src="./assets/index-
|
|
11
|
+
<script type="module" crossorigin src="./assets/index-CdziGLdB.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="./assets/index-G-pxPqsB.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riddix/hamh",
|
|
3
3
|
"description": "",
|
|
4
|
-
"version": "2.1.0-alpha.
|
|
4
|
+
"version": "2.1.0-alpha.835",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
@@ -57,9 +57,9 @@
|
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@types/lodash-es": "^4.17.12",
|
|
60
|
-
"@home-assistant-matter-hub/backend": "2.1.0-alpha.
|
|
61
|
-
"@home-assistant-matter-hub/
|
|
62
|
-
"@home-assistant-matter-hub/
|
|
60
|
+
"@home-assistant-matter-hub/backend": "2.1.0-alpha.835",
|
|
61
|
+
"@home-assistant-matter-hub/common": "2.1.0-alpha.835",
|
|
62
|
+
"@home-assistant-matter-hub/frontend": "2.1.0-alpha.835"
|
|
63
63
|
},
|
|
64
64
|
"overrides": {
|
|
65
65
|
"minimatch": "9.0.7",
|