@camstack/addon-osd-manager 0.1.165 → 0.1.167

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. package/dist/{MotionZonesSettings-sqWBK5nw.mjs → MotionZonesSettings-BS0B2G3Q.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-xEGyOq4f.mjs → PrivacyMaskSettings-DLJ0DHZT.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-BF58OFQ-.mjs → SceneMonitorEditor-CDDYaoCX.mjs} +3 -3
  4. package/dist/_stub.js +263 -229
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-fZ3iGGxD.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-B4Z53O4w.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BZTcxI6n.mjs +26 -0
  7. package/dist/{hostInit-C6F6DE-k.mjs → hostInit-K1eoWfNR.mjs} +2 -2
  8. package/dist/index.js +5622 -5242
  9. package/dist/index.mjs +5622 -5242
  10. package/dist/{player-overlays-DiRRm15u.mjs → player-overlays-BX9_cgYi.mjs} +1 -1
  11. package/dist/remoteEntry.js +1 -1
  12. package/dist/{responsive-DRg2S9WJ.mjs → responsive-DQHzOXvm.mjs} +1 -1
  13. package/dist/{scene-monitor-copy-viJey82o.mjs → scene-monitor-copy-CVQQynEG.mjs} +1 -1
  14. package/dist/{square-R4lwwyF4.mjs → square-BjnEKMWp.mjs} +1 -1
  15. package/dist/{trash-2-CdSVfqT4.mjs → trash-2-CUYOgymv.mjs} +1 -1
  16. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-vXMKigO9.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-C2WG2Ab3.mjs} +1 -1
  17. package/package.json +1 -1
  18. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DaKJWQOl.mjs +0 -26
package/dist/_stub.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import "./virtualExposes-BgZ5Cn7S.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-vXMKigO9.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-C2WG2Ab3.mjs";
3
3
  import { _ as e, b as t, c as n, d as r, f as i, g as a, h as o, i as s, l as c, m as l, n as u, p as d, r as f, t as p, u as m, v as h } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C5jUMd7X.mjs";
4
- import { a as g, c as _, i as v, n as y, o as b, r as x, s as S } from "./responsive-DRg2S9WJ.mjs";
5
- import { d as C, l as w, s as T, u as E } from "./scene-monitor-copy-viJey82o.mjs";
6
- import { i as D, r as O } from "./player-overlays-DiRRm15u.mjs";
7
- import { i as ee, n as te, r as ne, t as k } from "./square-R4lwwyF4.mjs";
8
- import { t as re } from "./trash-2-CdSVfqT4.mjs";
4
+ import { a as g, c as _, i as v, n as y, o as b, r as x, s as S } from "./responsive-DQHzOXvm.mjs";
5
+ import { d as C, l as w, s as T, u as E } from "./scene-monitor-copy-CVQQynEG.mjs";
6
+ import { i as D, r as O } from "./player-overlays-BX9_cgYi.mjs";
7
+ import { i as ee, n as te, r as ne, t as k } from "./square-BjnEKMWp.mjs";
8
+ import { t as re } from "./trash-2-CUYOgymv.mjs";
9
9
  import { t as ie } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BpP33rwB.mjs";
10
10
  import { n as A, r as j, t as M } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
11
11
  import { t as ae } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_2_dom__loadShare__.js-qB5uHZAd.mjs";
12
12
  import { n as N, t as oe } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CHxDN0gE.mjs";
13
13
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-Dhy3m6Ij.mjs";
14
14
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-C7omKvJr.mjs";
15
- import { _ as P, a as F, b as I, c as se, d as L, f as ce, g as le, h as ue, l as de, m as fe, n as pe, o as me, p as he, r as ge, s as _e, t as ve, u as ye, v as R, y as be } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DaKJWQOl.mjs";
15
+ import { _ as P, a as F, b as I, c as se, d as L, f as ce, g as le, h as ue, l as de, m as fe, n as pe, o as me, p as he, r as ge, s as _e, t as ve, u as ye, v as R, y as be } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BZTcxI6n.mjs";
16
16
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-B_4MkXHU.mjs";
17
17
  var xe = _("activity", [["path", {
18
18
  d: "M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",
@@ -3486,7 +3486,7 @@ var zr = _("user-check", [
3486
3486
  //#region ../ui-library/src/trpc-react.ts
3487
3487
  t();
3488
3488
  var di = typeof globalThis < "u" ? globalThis.__camstackTrpcReact : void 0, z = di ?? ie();
3489
- typeof globalThis < "u" && !di && (globalThis.__camstackTrpcReact = z), t(), t(), z.accessories.setChildHidden.useMutation, z.accessories.getStatus.useQuery, z.addonPages.listPages.useQuery, z.addons.list.useQuery, z.addons.getLogs.useQuery, z.addons.listPackages.useQuery, z.addons.installPackage.useMutation, z.addons.installFromWorkspace.useMutation, z.addons.isWorkspaceAvailable.useQuery, z.addons.listWorkspacePackages.useQuery, z.addons.uninstallPackage.useMutation, z.addons.reloadPackages.useMutation, z.addons.searchAvailable.useQuery, z.addons.listUpdates.useQuery, z.addons.updatePackage.useMutation, z.addons.rollbackPackage.useMutation, z.addons.forceRefresh.useMutation, z.addons.restartServer.useMutation, z.addons.getLastRestart.useQuery, z.addons.listFrameworkPackages.useQuery, z.addons.listCapabilityProviders.useQuery, z.addons.setCapabilityProviderEnabled.useMutation, z.addons.getVersions.useQuery, z.addons.restartAddon.useMutation, z.addons.retryLoad.useMutation, z.addons.getAutoUpdateSettings.useQuery, z.addons.setAutoUpdateSettings.useMutation, z.addons.getAddonAutoUpdate.useQuery, z.addons.setAddonAutoUpdate.useMutation, z.addons.applyAutoUpdateToAll.useMutation, z.addons.custom.useMutation, z.addons.startJob.useMutation, z.addons.getJob.useQuery, z.addons.listJobs.useQuery, z.addons.cancelJob.useMutation, z.addons.onAddonLogs.useSubscription, z.addonSettings.getGlobalSettings.useQuery, z.addonSettings.updateGlobalSettings.useMutation, z.addonSettings.getIntegrationSettings.useQuery, z.addonSettings.getDeviceSettings.useQuery, z.addonSettings.updateDeviceSettings.useMutation, z.addonWidgets.listWidgets.useQuery, z.airQualitySensor.getStatus.useQuery, z.alarmPanel.arm.useMutation, z.alarmPanel.disarm.useMutation, z.alarmPanel.trigger.useMutation, z.alarmPanel.getStatus.useQuery, z.alerts.emit.useMutation, z.alerts.update.useMutation, z.alerts.list.useQuery, z.alerts.getUnreadCount.useQuery, z.alerts.markRead.useMutation, z.alerts.markAllRead.useMutation, z.alerts.dismiss.useMutation, z.ambientLightSensor.getStatus.useQuery, z.audioAnalysis.resolveDeviceSettings.useQuery, z.audioAnalysis.getDeviceSettingsContribution.useQuery, z.audioAnalysis.getDeviceLiveContribution.useQuery, z.audioAnalysis.applyDeviceSettingsPatch.useMutation, z.audioAnalyzer.analyseChunk.useMutation, z.audioAnalyzer.classify.useQuery, z.audioAnalyzer.attachDevice.useMutation, z.audioAnalyzer.detachDevice.useMutation, z.audioAnalyzer.isReady.useQuery, z.audioAnalyzer.dispose.useMutation, z.audioAnalyzer.reprobeAudioEngine.useMutation, z.audioCodec.listSupportedCodecs.useQuery, z.audioCodec.canHandle.useQuery, z.audioCodec.createDecodeSession.useMutation, z.audioCodec.createEncodeSession.useMutation, z.audioCodec.closeSession.useMutation, z.audioCodec.pushEncodedFrame.useMutation, z.audioCodec.pullPcm.useQuery, z.audioCodec.pushPcm.useMutation, z.audioCodec.pullEncoded.useQuery, z.audioCodec.flushEncode.useMutation, z.audioCodec.listActiveSessions.useQuery, z.audioMetrics.getCurrentSnapshot.useQuery, z.audioMetrics.getHistory.useQuery, z.automationControl.enable.useMutation, z.automationControl.disable.useMutation, z.automationControl.trigger.useMutation, z.automationControl.getStatus.useQuery, z.backup.listDestinations.useQuery, z.backup.trigger.useMutation, z.backup.listRuns.useQuery, z.backup.cancel.useMutation, z.backup.list.useQuery, z.backup.listLocations.useQuery, z.backup.getEntries.useQuery, z.backup.restore.useMutation, z.backup.delete.useMutation, z.backup.listArchives.useQuery, z.backup.upsertDestinationPolicy.useMutation, z.backup.previewSchedule.useQuery, z.backup.listSchedules.useQuery, z.backup.upsertSchedule.useMutation, z.backup.deleteSchedule.useMutation, z.battery.wakeForStream.useMutation, z.battery.getStatus.useQuery, z.binary.getStatus.useQuery, z.brightness.setBrightness.useMutation, z.brightness.getStatus.useQuery, z.broker.list.useQuery, z.broker.get.useQuery, z.broker.listProviders.useQuery, z.broker.add.useMutation, z.broker.remove.useMutation, z.broker.testConnection.useMutation, z.broker.getSettings.useQuery, z.broker.setSettings.useMutation, z.broker.getBrokerConfig.useQuery, z.broker.getSettingsSchema.useQuery, z.broker.testSettings.useMutation, z.broker.publish.useMutation, z.broker.subscribe.useMutation, z.broker.unsubscribe.useMutation, z.broker.getState.useQuery, z.broker.getStatus.useQuery, z.button.press.useMutation, z.calendars.listCalendars.useQuery, z.calendars.listEvents.useQuery, z.calendars.importFromHomeAssistant.useMutation, z.cameraCredentials.getCredentials.useQuery, z.cameraCredentials.getStatus.useQuery, z.cameraGridLayout.getLayout.useQuery, z.cameraGridLayout.saveLayout.useMutation, z.cameraGridLayout.getDeviceSettingsContribution.useQuery, z.cameraGridLayout.getDeviceLiveContribution.useQuery, z.cameraGridLayout.applyDeviceSettingsPatch.useMutation, z.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, z.cameraPipelineConfig.getDeviceLiveContribution.useQuery, z.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, z.cameraStreams.getCameraStreams.useQuery, z.cameraStreams.getBrokerStreams.useQuery, z.cameraStreams.getRtspEntries.useQuery, z.cameraStreams.getProfileRtspEntries.useQuery, z.cameraStreams.pickStream.useQuery, z.carbonMonoxide.getStatus.useQuery, z.climateControl.setMode.useMutation, z.climateControl.setFanMode.useMutation, z.climateControl.setPreset.useMutation, z.climateControl.setTarget.useMutation, z.climateControl.setTargetRange.useMutation, z.climateControl.setTargetHumidity.useMutation, z.climateControl.setSwingVertical.useMutation, z.climateControl.setSwingHorizontal.useMutation, z.climateControl.getStatus.useQuery, z.color.setColor.useMutation, z.color.getStatus.useQuery, z.connectionTest.testSettings.useMutation, z.connectionTest.describeTest.useQuery, z.connectivity.getStatus.useQuery, z.consumables.reset.useMutation, z.consumables.getStatus.useQuery, z.contact.getStatus.useQuery, z.control.setValue.useMutation, z.control.getStatus.useQuery, z.coreBlocks.list.useQuery, z.coreBlocks.get.useQuery, z.coreBlocks.create.useMutation, z.coreBlocks.update.useMutation, z.coreBlocks.delete.useMutation, z.coreBlocks.setEnabled.useMutation, z.coreBlocks.restart.useMutation, z.coreBlocks.compile.useMutation, z.coreBlocks.getTypeDefs.useQuery, z.coreBlocks.createComposition.useMutation, z.coreBlocks.updateComposition.useMutation, z.coreBlocks.getComposition.useQuery, z.coreBlocks.listCompositions.useQuery, z.coreBlocks.getCustomization.useQuery, z.coreBlocks.listComposableCaps.useQuery, z.coreBlocks.validateComposition.useMutation, z.cover.open.useMutation, z.cover.close.useMutation, z.cover.stop.useMutation, z.cover.setPosition.useMutation, z.cover.setTiltPosition.useMutation, z.cover.getStatus.useQuery, z.dayNight.getOptions.useQuery, z.dayNight.setSettings.useMutation, z.dayNight.getStatus.useQuery, z.decoder.supportsCodec.useQuery, z.decoder.getInfo.useQuery, z.decoder.createSession.useQuery, z.decoder.destroySession.useQuery, z.decoder.pushPacket.useQuery, z.decoder.openStream.useQuery, z.decoder.pullFrames.useQuery, z.decoder.pullHandles.useQuery, z.decoder.getFrame.useQuery, z.decoder.getShmStats.useQuery, z.decoder.updateConfig.useQuery, z.decoder.getStats.useQuery, z.decoder.listActiveSessions.useQuery, z.decoder.reprobeHwaccel.useMutation, z.detectionPipeline.getDeviceSettingsContribution.useQuery, z.detectionPipeline.getDeviceLiveContribution.useQuery, z.detectionPipeline.applyDeviceSettingsPatch.useMutation, z.deviceAdminLink.getAdminLink.useQuery, z.deviceAdoption.listCandidateFilters.useQuery, z.deviceAdoption.listCandidates.useQuery, z.deviceAdoption.getCandidate.useQuery, z.deviceAdoption.refresh.useMutation, z.deviceAdoption.adopt.useMutation, z.deviceAdoption.release.useMutation, z.deviceAdoption.resync.useMutation, z.deviceAdoption.getStatus.useQuery, z.deviceDiscovery.listDiscovered.useQuery, z.deviceDiscovery.refreshDiscovery.useMutation, z.deviceDiscovery.adoptDevice.useMutation, z.deviceDiscovery.releaseDevice.useMutation, z.deviceDiscovery.getStatus.useQuery, z.deviceExport.getStatus.useQuery, z.deviceExport.listSupportedDeviceKinds.useQuery, z.deviceExport.listExposedDevices.useQuery, z.deviceExport.exposeDevice.useMutation, z.deviceExport.unexposeDevice.useMutation, z.deviceExport.getDeviceSettingsContribution.useQuery, z.deviceExport.getDeviceLiveContribution.useQuery, z.deviceExport.applyDeviceSettingsPatch.useMutation, z.deviceExtension.listSources.useQuery, z.deviceExtension.listSlots.useQuery, z.deviceExtension.listCandidates.useQuery, z.deviceExtension.setSlot.useMutation, z.deviceManager.allocateDeviceId.useMutation, z.deviceManager.migrateDevice.useMutation, z.deviceManager.registerDevice.useMutation, z.deviceManager.removeDevice.useMutation, z.deviceManager.persistConfig.useMutation, z.deviceManager.loadConfig.useQuery, z.deviceManager.loadRuntimeState.useQuery, z.deviceManager.loadMeta.useQuery, z.deviceManager.setName.useMutation, z.deviceManager.setLocation.useMutation, z.deviceManager.setType.useMutation, z.deviceManager.setIntegrationId.useMutation, z.deviceManager.setLinkDeviceId.useMutation, z.deviceManager.setPrimaryChildEntityId.useMutation, z.deviceManager.setChildLayout.useMutation, z.deviceManager.setDisplay.useMutation;
3489
+ typeof globalThis < "u" && !di && (globalThis.__camstackTrpcReact = z), t(), t(), z.accessories.setChildHidden.useMutation, z.accessories.getStatus.useQuery, z.addonPages.listPages.useQuery, z.addons.list.useQuery, z.addons.getLogs.useQuery, z.addons.listPackages.useQuery, z.addons.installPackage.useMutation, z.addons.installFromWorkspace.useMutation, z.addons.isWorkspaceAvailable.useQuery, z.addons.listWorkspacePackages.useQuery, z.addons.uninstallPackage.useMutation, z.addons.reloadPackages.useMutation, z.addons.searchAvailable.useQuery, z.addons.listUpdates.useQuery, z.addons.updatePackage.useMutation, z.addons.rollbackPackage.useMutation, z.addons.forceRefresh.useMutation, z.addons.restartServer.useMutation, z.addons.getLastRestart.useQuery, z.addons.listFrameworkPackages.useQuery, z.addons.listCapabilityProviders.useQuery, z.addons.setCapabilityProviderEnabled.useMutation, z.addons.getVersions.useQuery, z.addons.restartAddon.useMutation, z.addons.retryLoad.useMutation, z.addons.getAutoUpdateSettings.useQuery, z.addons.setAutoUpdateSettings.useMutation, z.addons.getAddonAutoUpdate.useQuery, z.addons.setAddonAutoUpdate.useMutation, z.addons.applyAutoUpdateToAll.useMutation, z.addons.custom.useMutation, z.addons.startJob.useMutation, z.addons.getJob.useQuery, z.addons.listJobs.useQuery, z.addons.cancelJob.useMutation, z.addons.onAddonLogs.useSubscription, z.addonSettings.getGlobalSettings.useQuery, z.addonSettings.updateGlobalSettings.useMutation, z.addonSettings.getIntegrationSettings.useQuery, z.addonSettings.getDeviceSettings.useQuery, z.addonSettings.updateDeviceSettings.useMutation, z.addonWidgets.listWidgets.useQuery, z.airQualitySensor.getStatus.useQuery, z.alarmPanel.arm.useMutation, z.alarmPanel.disarm.useMutation, z.alarmPanel.trigger.useMutation, z.alarmPanel.getStatus.useQuery, z.alerts.emit.useMutation, z.alerts.update.useMutation, z.alerts.list.useQuery, z.alerts.getUnreadCount.useQuery, z.alerts.markRead.useMutation, z.alerts.markAllRead.useMutation, z.alerts.dismiss.useMutation, z.ambientLightSensor.getStatus.useQuery, z.audioAnalysis.resolveDeviceSettings.useQuery, z.audioAnalysis.getDeviceSettingsContribution.useQuery, z.audioAnalysis.getDeviceLiveContribution.useQuery, z.audioAnalysis.applyDeviceSettingsPatch.useMutation, z.audioAnalyzer.analyseChunk.useMutation, z.audioAnalyzer.classify.useQuery, z.audioAnalyzer.attachDevice.useMutation, z.audioAnalyzer.detachDevice.useMutation, z.audioAnalyzer.isReady.useQuery, z.audioAnalyzer.dispose.useMutation, z.audioAnalyzer.reprobeAudioEngine.useMutation, z.audioCodec.listSupportedCodecs.useQuery, z.audioCodec.canHandle.useQuery, z.audioCodec.createDecodeSession.useMutation, z.audioCodec.createEncodeSession.useMutation, z.audioCodec.closeSession.useMutation, z.audioCodec.pushEncodedFrame.useMutation, z.audioCodec.pullPcm.useQuery, z.audioCodec.pushPcm.useMutation, z.audioCodec.pullEncoded.useQuery, z.audioCodec.flushEncode.useMutation, z.audioCodec.listActiveSessions.useQuery, z.audioMetrics.getCurrentSnapshot.useQuery, z.audioMetrics.getHistory.useQuery, z.automationControl.enable.useMutation, z.automationControl.disable.useMutation, z.automationControl.trigger.useMutation, z.automationControl.getStatus.useQuery, z.backup.listDestinations.useQuery, z.backup.trigger.useMutation, z.backup.listRuns.useQuery, z.backup.cancel.useMutation, z.backup.list.useQuery, z.backup.listLocations.useQuery, z.backup.getEntries.useQuery, z.backup.restore.useMutation, z.backup.delete.useMutation, z.backup.listArchives.useQuery, z.backup.upsertDestinationPolicy.useMutation, z.backup.previewSchedule.useQuery, z.backup.listSchedules.useQuery, z.backup.upsertSchedule.useMutation, z.backup.deleteSchedule.useMutation, z.battery.wakeForStream.useMutation, z.battery.getStatus.useQuery, z.binary.getStatus.useQuery, z.brightness.setBrightness.useMutation, z.brightness.getStatus.useQuery, z.broker.list.useQuery, z.broker.get.useQuery, z.broker.listProviders.useQuery, z.broker.add.useMutation, z.broker.remove.useMutation, z.broker.testConnection.useMutation, z.broker.getSettings.useQuery, z.broker.setSettings.useMutation, z.broker.getBrokerConfig.useQuery, z.broker.getSettingsSchema.useQuery, z.broker.testSettings.useMutation, z.broker.publish.useMutation, z.broker.subscribe.useMutation, z.broker.unsubscribe.useMutation, z.broker.getState.useQuery, z.broker.getStatus.useQuery, z.button.press.useMutation, z.calendars.listCalendars.useQuery, z.calendars.listEvents.useQuery, z.calendars.getPreferences.useQuery, z.calendars.setCalendarPreference.useMutation, z.cameraCredentials.getCredentials.useQuery, z.cameraCredentials.getStatus.useQuery, z.cameraGridLayout.getLayout.useQuery, z.cameraGridLayout.saveLayout.useMutation, z.cameraGridLayout.getDeviceSettingsContribution.useQuery, z.cameraGridLayout.getDeviceLiveContribution.useQuery, z.cameraGridLayout.applyDeviceSettingsPatch.useMutation, z.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, z.cameraPipelineConfig.getDeviceLiveContribution.useQuery, z.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, z.cameraStreams.getCameraStreams.useQuery, z.cameraStreams.getBrokerStreams.useQuery, z.cameraStreams.getRtspEntries.useQuery, z.cameraStreams.getProfileRtspEntries.useQuery, z.cameraStreams.pickStream.useQuery, z.carbonMonoxide.getStatus.useQuery, z.climateControl.setMode.useMutation, z.climateControl.setFanMode.useMutation, z.climateControl.setPreset.useMutation, z.climateControl.setTarget.useMutation, z.climateControl.setTargetRange.useMutation, z.climateControl.setTargetHumidity.useMutation, z.climateControl.setSwingVertical.useMutation, z.climateControl.setSwingHorizontal.useMutation, z.climateControl.getStatus.useQuery, z.color.setColor.useMutation, z.color.getStatus.useQuery, z.connectionTest.testSettings.useMutation, z.connectionTest.describeTest.useQuery, z.connectivity.getStatus.useQuery, z.consumables.reset.useMutation, z.consumables.getStatus.useQuery, z.contact.getStatus.useQuery, z.control.setValue.useMutation, z.control.getStatus.useQuery, z.coreBlocks.list.useQuery, z.coreBlocks.get.useQuery, z.coreBlocks.create.useMutation, z.coreBlocks.update.useMutation, z.coreBlocks.delete.useMutation, z.coreBlocks.setEnabled.useMutation, z.coreBlocks.restart.useMutation, z.coreBlocks.compile.useMutation, z.coreBlocks.getBlockSettings.useQuery, z.coreBlocks.updateBlockSettings.useMutation, z.coreBlocks.getTypeDefs.useQuery, z.coreBlocks.createComposition.useMutation, z.coreBlocks.updateComposition.useMutation, z.coreBlocks.getComposition.useQuery, z.coreBlocks.listCompositions.useQuery, z.coreBlocks.getCustomization.useQuery, z.coreBlocks.listComposableCaps.useQuery, z.coreBlocks.validateComposition.useMutation, z.cover.open.useMutation, z.cover.close.useMutation, z.cover.stop.useMutation, z.cover.setPosition.useMutation, z.cover.setTiltPosition.useMutation, z.cover.getStatus.useQuery, z.dayNight.getOptions.useQuery, z.dayNight.setSettings.useMutation, z.dayNight.getStatus.useQuery, z.decoder.supportsCodec.useQuery, z.decoder.getInfo.useQuery, z.decoder.createSession.useQuery, z.decoder.destroySession.useQuery, z.decoder.pushPacket.useQuery, z.decoder.openStream.useQuery, z.decoder.pullFrames.useQuery, z.decoder.pullHandles.useQuery, z.decoder.getFrame.useQuery, z.decoder.getShmStats.useQuery, z.decoder.updateConfig.useQuery, z.decoder.getStats.useQuery, z.decoder.listActiveSessions.useQuery, z.decoder.reprobeHwaccel.useMutation, z.detectionPipeline.getDeviceSettingsContribution.useQuery, z.detectionPipeline.getDeviceLiveContribution.useQuery, z.detectionPipeline.applyDeviceSettingsPatch.useMutation, z.deviceAdminLink.getAdminLink.useQuery, z.deviceAdoption.listCandidateFilters.useQuery, z.deviceAdoption.listCandidates.useQuery, z.deviceAdoption.getCandidate.useQuery, z.deviceAdoption.refresh.useMutation, z.deviceAdoption.adopt.useMutation, z.deviceAdoption.release.useMutation, z.deviceAdoption.resync.useMutation, z.deviceAdoption.getStatus.useQuery, z.deviceDiscovery.listDiscovered.useQuery, z.deviceDiscovery.refreshDiscovery.useMutation, z.deviceDiscovery.adoptDevice.useMutation, z.deviceDiscovery.releaseDevice.useMutation, z.deviceDiscovery.getStatus.useQuery, z.deviceExport.getStatus.useQuery, z.deviceExport.listSupportedDeviceKinds.useQuery, z.deviceExport.listExposedDevices.useQuery, z.deviceExport.exposeDevice.useMutation, z.deviceExport.unexposeDevice.useMutation, z.deviceExport.getDeviceSettingsContribution.useQuery, z.deviceExport.getDeviceLiveContribution.useQuery, z.deviceExport.applyDeviceSettingsPatch.useMutation, z.deviceExtension.listSources.useQuery, z.deviceExtension.listSlots.useQuery, z.deviceExtension.listCandidates.useQuery, z.deviceExtension.setSlot.useMutation, z.deviceManager.allocateDeviceId.useMutation, z.deviceManager.migrateDevice.useMutation, z.deviceManager.registerDevice.useMutation, z.deviceManager.removeDevice.useMutation, z.deviceManager.persistConfig.useMutation, z.deviceManager.loadConfig.useQuery, z.deviceManager.loadRuntimeState.useQuery, z.deviceManager.loadMeta.useQuery, z.deviceManager.setName.useMutation, z.deviceManager.setLocation.useMutation, z.deviceManager.setType.useMutation, z.deviceManager.setIntegrationId.useMutation, z.deviceManager.setLinkDeviceId.useMutation, z.deviceManager.setPrimaryChildEntityId.useMutation, z.deviceManager.setChildLayout.useMutation, z.deviceManager.setDisplay.useMutation;
3490
3490
  var fi = z.deviceManager.getRoleDisplayDefaults.useQuery;
3491
3491
  z.deviceManager.setRoleDisplayDefaults.useMutation, z.deviceManager.getWireableFields.useQuery, z.deviceManager.setRole.useMutation, z.deviceManager.applyInitialMeta.useMutation, z.deviceManager.setMetadata.useMutation, z.deviceManager.listLocations.useQuery, z.deviceManager.addLocation.useMutation, z.deviceManager.removeLocation.useMutation, z.deviceManager.renameLocation.useMutation, z.deviceManager.listLocationIcons.useQuery, z.deviceManager.setLocationIcon.useMutation, z.deviceManager.listLocationDescriptions.useQuery, z.deviceManager.setLocationDescription.useMutation, z.deviceManager.listSiteZones.useQuery, z.deviceManager.setSiteZone.useMutation, z.deviceManager.removeSiteZone.useMutation, z.deviceManager.renameSiteZone.useMutation, z.deviceManager.setLocationZone.useMutation, z.deviceManager.setDisabled.useMutation, z.deviceManager.listPersistedByAddon.useQuery;
3492
3492
  var pi = z.deviceManager.listAll.useQuery, mi = z.deviceManager.getDevice.useQuery;
@@ -3496,7 +3496,7 @@ z.deviceManager.listDeviceIdsByCaps.useQuery, z.deviceManager.setWrapperActive.u
3496
3496
  var gi = z.deviceState.getSnapshot.useQuery;
3497
3497
  z.deviceState.getCapSlice.useQuery;
3498
3498
  var _i = z.deviceState.getAllSnapshots.useQuery;
3499
- z.deviceState.setCapSlice.useMutation, z.deviceState.claimFields.useMutation, z.deviceState.patchOwnedFields.useMutation, z.deviceState.releaseClaim.useMutation, z.deviceState.listClaims.useQuery, z.deviceState.getNativeCapSlice.useQuery, z.deviceStatus.getStatus.useQuery, z.doorbell.getStatus.useQuery, z.enumSensor.getStatus.useQuery, z.eventEmitter.getStatus.useQuery, z.faceGallery.listIdentities.useQuery, z.faceGallery.createIdentity.useMutation, z.faceGallery.renameIdentity.useMutation, z.faceGallery.deleteIdentity.useMutation, z.faceGallery.listIdentitySamples.useQuery, z.faceGallery.auditIdentitySamples.useQuery, z.faceGallery.removeSample.useMutation, z.faceGallery.listRecentFaces.useQuery, z.faceGallery.getFaceByTrack.useQuery, z.faceGallery.getFaceMedia.useQuery, z.faceGallery.assignFace.useMutation, z.faceGallery.unassignFace.useMutation, z.faceGallery.deleteFace.useMutation, z.faceGallery.assignFaces.useMutation, z.faceGallery.unassignFaces.useMutation, z.faceGallery.suggestFaceClusters.useQuery, z.fanControl.setPercentage.useMutation, z.fanControl.setPreset.useMutation, z.fanControl.setDirection.useMutation, z.fanControl.setOscillating.useMutation, z.fanControl.getStatus.useQuery, z.featureProbe.getStatus.useQuery, z.flood.getStatus.useQuery, z.gas.getStatus.useQuery, z.humidifier.setOn.useMutation, z.humidifier.setTargetHumidity.useMutation, z.humidifier.setMode.useMutation, z.humidifier.getStatus.useQuery, z.humiditySensor.getStatus.useQuery, z.image.getStatus.useQuery, z.imageSettings.getOptions.useQuery, z.imageSettings.setSettings.useMutation, z.imageSettings.getStatus.useQuery, z.integrations.list.useQuery, z.integrations.get.useQuery, z.integrations.getByAddonId.useQuery, z.integrations.create.useMutation, z.integrations.update.useMutation, z.integrations.delete.useMutation, z.integrations.getSettings.useQuery, z.integrations.setSettings.useMutation, z.integrations.getAvailableTypes.useQuery, z.integrations.testConnection.useMutation, z.intercom.startSession.useMutation, z.intercom.handleAnswer.useMutation, z.intercom.stopSession.useMutation, z.intercom.startTalkSession.useMutation, z.intercom.pushTalkAudio.useMutation, z.intercom.endTalkSession.useMutation, z.intercom.getStatus.useQuery, z.lawnMowerControl.startMowing.useMutation, z.lawnMowerControl.pause.useMutation, z.lawnMowerControl.dock.useMutation, z.lawnMowerControl.getStatus.useQuery, z.llm.generate.useMutation, z.llm.generateVision.useMutation, z.llm.cancel.useMutation, z.llm.listProfileKinds.useQuery, z.llm.listProfiles.useQuery, z.llm.upsertProfile.useMutation, z.llm.deleteProfile.useMutation, z.llm.testProfile.useMutation, z.llm.listModels.useQuery, z.llm.getDefaults.useQuery, z.llm.setDefault.useMutation, z.llm.getUsage.useQuery, z.llm.listModelCatalog.useQuery, z.llm.listRuntimeNodes.useQuery, z.llm.listNodeModels.useQuery, z.llm.resolveModelRef.useMutation, z.llm.installModel.useMutation, z.llm.deleteModel.useMutation, z.llm.getRuntimeStatus.useQuery, z.llm.startRuntime.useMutation, z.llm.stopRuntime.useMutation, z.localNetwork.list.useQuery, z.localNetwork.getPreferred.useQuery, z.localNetwork.getConnectionEndpoints.useQuery, z.localNetwork.getNotificationEndpoint.useQuery, z.localNetwork.setNotificationEndpoint.useMutation, z.localNetwork.getViewerEndpoints.useQuery, z.localNetwork.setViewerEndpoints.useMutation, z.localNetwork.getAllowedAddresses.useQuery, z.localNetwork.setAllowedAddresses.useMutation, z.localNetwork.resetAllowlistToBestMatch.useMutation, z.localNetwork.getTlsStatus.useQuery, z.localNetwork.regenerateCertificate.useMutation, z.localNetwork.uploadCertificate.useMutation, z.localNetwork.downloadCa.useQuery, z.localNetwork.revertToGeneratedCertificate.useMutation, z.lockControl.lock.useMutation, z.lockControl.unlock.useMutation, z.lockControl.open.useMutation, z.lockControl.getStatus.useQuery, z.mediaPlayer.play.useMutation, z.mediaPlayer.pause.useMutation, z.mediaPlayer.stop.useMutation, z.mediaPlayer.next.useMutation, z.mediaPlayer.previous.useMutation, z.mediaPlayer.seek.useMutation, z.mediaPlayer.setVolume.useMutation, z.mediaPlayer.setMute.useMutation, z.mediaPlayer.setShuffle.useMutation, z.mediaPlayer.setRepeat.useMutation, z.mediaPlayer.selectSource.useMutation, z.mediaPlayer.playMedia.useMutation, z.mediaPlayer.getStatus.useQuery, z.meshNetwork.getStatus.useQuery, z.meshNetwork.join.useMutation, z.meshNetwork.startLogin.useMutation, z.meshNetwork.leave.useMutation, z.meshNetwork.logout.useMutation, z.meshNetwork.listPeers.useQuery, z.meshNetwork.testConnection.useMutation, z.metricsProvider.collectSnapshot.useQuery, z.metricsProvider.getCached.useQuery, z.metricsProvider.getCurrent.useQuery, z.metricsProvider.getDiskSpace.useQuery, z.metricsProvider.getGpuInfo.useQuery, z.metricsProvider.getCpuTemperature.useQuery, z.metricsProvider.getProcessStats.useQuery, z.metricsProvider.listAddonInstances.useQuery, z.metricsProvider.getAddonStats.useQuery, z.metricsProvider.listNodeProcesses.useQuery, z.metricsProvider.getLoadSeries.useQuery, z.motion.isDetected.useQuery, z.motion.getStatus.useQuery, z.motionDetection.analyze.useMutation, z.motionDetection.removeCamera.useMutation, z.motionDetection.reset.useMutation, z.motionDetection.getDeviceSettingsContribution.useQuery, z.motionDetection.getDeviceLiveContribution.useQuery, z.motionDetection.applyDeviceSettingsPatch.useMutation, z.motionTrigger.setMotionTrigger.useMutation, z.motionTrigger.getStatus.useQuery, z.motionZones.getOptions.useQuery, z.motionZones.setZone.useMutation, z.motionZones.getStatus.useQuery, z.mqttBroker.listBrokers.useQuery, z.mqttBroker.getBrokerConfig.useQuery, z.mqttBroker.addBroker.useMutation, z.mqttBroker.removeBroker.useMutation, z.mqttBroker.testConnection.useMutation, z.mqttBroker.startEmbeddedBroker.useMutation, z.mqttBroker.stopEmbeddedBroker.useMutation, z.mqttBroker.getStatus.useQuery, z.nativeObjectDetection.getOptions.useQuery, z.nativeObjectDetection.setSettings.useMutation, z.nativeObjectDetection.setEnabled.useMutation, z.nativeObjectDetection.getStatus.useQuery, z.navigation.move.useMutation, z.navigation.stop.useMutation, z.navigation.goToPoint.useMutation, z.navigation.listActions.useQuery, z.navigation.runAction.useMutation, z.navigation.playSound.useMutation, z.navigation.setLightOn.useMutation, z.navigation.setLightMode.useMutation, z.navigation.setLightLevel.useMutation, z.navigation.getFeatures.useQuery, z.navigation.getStatus.useQuery, z.networkAccess.start.useMutation, z.networkAccess.stop.useMutation, z.networkAccess.getEndpoint.useQuery, z.networkAccess.getStatus.useQuery, z.networkAccess.listEndpoints.useQuery, z.networkLink.getStatus.useQuery, z.networkQuality.getDeviceStats.useQuery, z.networkQuality.getAllStats.useQuery, z.networkQuality.reportClientStats.useMutation, z.nodes.topology.useQuery, z.nodes.directory.useQuery, z.nodes.deployAddon.useMutation, z.nodes.undeployAddon.useMutation, z.nodes.restartAddon.useMutation, z.nodes.restartProcess.useMutation, z.nodes.restartNode.useMutation, z.nodes.shutdownNode.useMutation, z.nodes.renameNode.useMutation, z.nodes.clusterAddonStatus.useQuery, z.nodes.getCapUsageGraph.useQuery, z.nodes.getNodeAddons.useQuery, z.nodes.setProcessLogLevel.useMutation, z.nodes.executeQuery.useMutation, z.notificationOutput.listTargetKinds.useQuery, z.notificationOutput.listTargets.useQuery, z.notificationOutput.discoverTargets.useQuery, z.notificationOutput.send.useMutation, z.notificationOutput.testTarget.useMutation, z.notificationOutput.upsertTarget.useMutation, z.notificationOutput.deleteTarget.useMutation, z.notificationOutput.setTargetEnabled.useMutation, z.notificationRules.listRules.useQuery, z.notificationRules.getRule.useQuery, z.notificationRules.createRule.useMutation, z.notificationRules.updateRule.useMutation, z.notificationRules.deleteRule.useMutation, z.notificationRules.setRuleEnabled.useMutation, z.notificationRules.getClipRetentionAsks.useQuery, z.notificationRules.listDeviceMutes.useQuery, z.notificationRules.setDeviceMuted.useMutation, z.notificationRules.testRule.useMutation, z.notificationRules.previewStateSummary.useMutation, z.notificationRules.getConditionCatalog.useQuery, z.notificationRules.getTemplateCatalog.useQuery, z.notificationRules.previewTemplate.useMutation, z.notificationRules.getHistory.useQuery, z.notificationRules.getRuleLastRuns.useQuery, z.notificationRules.resolveArtifactUrl.useQuery, z.notificationRules.listSnoozes.useQuery, z.notificationRules.createSnooze.useMutation, z.notificationRules.cancelSnooze.useMutation, z.notificationRules.getAlarmConfig.useQuery, z.notificationRules.setAlarmConfig.useMutation, z.notificationRules.getAlarmSensors.useQuery, z.notifier.send.useMutation, z.notifier.cancel.useMutation, z.notifier.getStatus.useQuery, z.numericSensor.getStatus.useQuery, z.osd.setOverlay.useMutation, z.osd.getStatus.useQuery;
3499
+ z.deviceState.setCapSlice.useMutation, z.deviceState.claimFields.useMutation, z.deviceState.patchOwnedFields.useMutation, z.deviceState.releaseClaim.useMutation, z.deviceState.listClaims.useQuery, z.deviceState.getNativeCapSlice.useQuery, z.deviceStatus.getStatus.useQuery, z.doorbell.getStatus.useQuery, z.enumSensor.getStatus.useQuery, z.eventEmitter.getStatus.useQuery, z.faceGallery.listIdentities.useQuery, z.faceGallery.createIdentity.useMutation, z.faceGallery.renameIdentity.useMutation, z.faceGallery.deleteIdentity.useMutation, z.faceGallery.listIdentitySamples.useQuery, z.faceGallery.auditIdentitySamples.useQuery, z.faceGallery.removeSample.useMutation, z.faceGallery.listRecentFaces.useQuery, z.faceGallery.getFaceByTrack.useQuery, z.faceGallery.getFaceMedia.useQuery, z.faceGallery.assignFace.useMutation, z.faceGallery.unassignFace.useMutation, z.faceGallery.deleteFace.useMutation, z.faceGallery.assignFaces.useMutation, z.faceGallery.unassignFaces.useMutation, z.faceGallery.suggestFaceClusters.useQuery, z.fanControl.setPercentage.useMutation, z.fanControl.setPreset.useMutation, z.fanControl.setDirection.useMutation, z.fanControl.setOscillating.useMutation, z.fanControl.getStatus.useQuery, z.featureProbe.getStatus.useQuery, z.flood.getStatus.useQuery, z.gas.getStatus.useQuery, z.humidifier.setOn.useMutation, z.humidifier.setTargetHumidity.useMutation, z.humidifier.setMode.useMutation, z.humidifier.getStatus.useQuery, z.humiditySensor.getStatus.useQuery, z.image.getStatus.useQuery, z.imageSettings.getOptions.useQuery, z.imageSettings.setSettings.useMutation, z.imageSettings.getStatus.useQuery, z.integrations.list.useQuery, z.integrations.get.useQuery, z.integrations.getByAddonId.useQuery, z.integrations.create.useMutation, z.integrations.update.useMutation, z.integrations.delete.useMutation, z.integrations.getSettings.useQuery, z.integrations.setSettings.useMutation, z.integrations.getAvailableTypes.useQuery, z.integrations.testConnection.useMutation, z.intercom.startSession.useMutation, z.intercom.handleAnswer.useMutation, z.intercom.stopSession.useMutation, z.intercom.startTalkSession.useMutation, z.intercom.pushTalkAudio.useMutation, z.intercom.endTalkSession.useMutation, z.intercom.getStatus.useQuery, z.lawnMowerControl.startMowing.useMutation, z.lawnMowerControl.pause.useMutation, z.lawnMowerControl.dock.useMutation, z.lawnMowerControl.getStatus.useQuery, z.llm.generate.useMutation, z.llm.generateVision.useMutation, z.llm.cancel.useMutation, z.llm.listProfileKinds.useQuery, z.llm.listProfiles.useQuery, z.llm.upsertProfile.useMutation, z.llm.deleteProfile.useMutation, z.llm.testProfile.useMutation, z.llm.listModels.useQuery, z.llm.getDefaults.useQuery, z.llm.setDefault.useMutation, z.llm.getUsage.useQuery, z.llm.listModelCatalog.useQuery, z.llm.listRuntimeNodes.useQuery, z.llm.listNodeModels.useQuery, z.llm.resolveModelRef.useMutation, z.llm.installModel.useMutation, z.llm.deleteModel.useMutation, z.llm.getRuntimeStatus.useQuery, z.llm.startRuntime.useMutation, z.llm.stopRuntime.useMutation, z.localNetwork.list.useQuery, z.localNetwork.getPreferred.useQuery, z.localNetwork.getConnectionEndpoints.useQuery, z.localNetwork.getNotificationEndpoint.useQuery, z.localNetwork.setNotificationEndpoint.useMutation, z.localNetwork.getViewerEndpoints.useQuery, z.localNetwork.setViewerEndpoints.useMutation, z.localNetwork.getAllowedAddresses.useQuery, z.localNetwork.setAllowedAddresses.useMutation, z.localNetwork.resetAllowlistToBestMatch.useMutation, z.localNetwork.getTlsStatus.useQuery, z.localNetwork.regenerateCertificate.useMutation, z.localNetwork.uploadCertificate.useMutation, z.localNetwork.downloadCa.useQuery, z.localNetwork.revertToGeneratedCertificate.useMutation, z.lockControl.lock.useMutation, z.lockControl.unlock.useMutation, z.lockControl.open.useMutation, z.lockControl.getStatus.useQuery, z.mediaPlayer.play.useMutation, z.mediaPlayer.pause.useMutation, z.mediaPlayer.stop.useMutation, z.mediaPlayer.next.useMutation, z.mediaPlayer.previous.useMutation, z.mediaPlayer.seek.useMutation, z.mediaPlayer.setVolume.useMutation, z.mediaPlayer.setMute.useMutation, z.mediaPlayer.setShuffle.useMutation, z.mediaPlayer.setRepeat.useMutation, z.mediaPlayer.selectSource.useMutation, z.mediaPlayer.playMedia.useMutation, z.mediaPlayer.getStatus.useQuery, z.meshNetwork.getStatus.useQuery, z.meshNetwork.join.useMutation, z.meshNetwork.startLogin.useMutation, z.meshNetwork.leave.useMutation, z.meshNetwork.logout.useMutation, z.meshNetwork.listPeers.useQuery, z.meshNetwork.testConnection.useMutation, z.metricsProvider.collectSnapshot.useQuery, z.metricsProvider.getCached.useQuery, z.metricsProvider.getCurrent.useQuery, z.metricsProvider.getDiskSpace.useQuery, z.metricsProvider.getGpuInfo.useQuery, z.metricsProvider.getCpuTemperature.useQuery, z.metricsProvider.getProcessStats.useQuery, z.metricsProvider.listAddonInstances.useQuery, z.metricsProvider.getAddonStats.useQuery, z.metricsProvider.listNodeProcesses.useQuery, z.metricsProvider.getLoadSeries.useQuery, z.motion.isDetected.useQuery, z.motion.getStatus.useQuery, z.motionDetection.analyze.useMutation, z.motionDetection.removeCamera.useMutation, z.motionDetection.reset.useMutation, z.motionDetection.getDeviceSettingsContribution.useQuery, z.motionDetection.getDeviceLiveContribution.useQuery, z.motionDetection.applyDeviceSettingsPatch.useMutation, z.motionTrigger.setMotionTrigger.useMutation, z.motionTrigger.getStatus.useQuery, z.motionZones.getOptions.useQuery, z.motionZones.setZone.useMutation, z.motionZones.getStatus.useQuery, z.mqttBroker.listBrokers.useQuery, z.mqttBroker.getBrokerConfig.useQuery, z.mqttBroker.addBroker.useMutation, z.mqttBroker.removeBroker.useMutation, z.mqttBroker.testConnection.useMutation, z.mqttBroker.startEmbeddedBroker.useMutation, z.mqttBroker.stopEmbeddedBroker.useMutation, z.mqttBroker.getStatus.useQuery, z.nativeObjectDetection.getOptions.useQuery, z.nativeObjectDetection.setSettings.useMutation, z.nativeObjectDetection.setEnabled.useMutation, z.nativeObjectDetection.getStatus.useQuery, z.navigation.move.useMutation, z.navigation.stop.useMutation, z.navigation.goToPoint.useMutation, z.navigation.listActions.useQuery, z.navigation.runAction.useMutation, z.navigation.playSound.useMutation, z.navigation.setLightOn.useMutation, z.navigation.setLightMode.useMutation, z.navigation.setLightLevel.useMutation, z.navigation.getFeatures.useQuery, z.navigation.getStatus.useQuery, z.networkAccess.start.useMutation, z.networkAccess.stop.useMutation, z.networkAccess.getEndpoint.useQuery, z.networkAccess.getStatus.useQuery, z.networkAccess.listEndpoints.useQuery, z.networkLink.getStatus.useQuery, z.networkQuality.getDeviceStats.useQuery, z.networkQuality.getAllStats.useQuery, z.networkQuality.reportClientStats.useMutation, z.nodes.topology.useQuery, z.nodes.directory.useQuery, z.nodes.deployAddon.useMutation, z.nodes.undeployAddon.useMutation, z.nodes.restartAddon.useMutation, z.nodes.restartProcess.useMutation, z.nodes.restartNode.useMutation, z.nodes.shutdownNode.useMutation, z.nodes.renameNode.useMutation, z.nodes.clusterAddonStatus.useQuery, z.nodes.getCapUsageGraph.useQuery, z.nodes.getNodeAddons.useQuery, z.nodes.setProcessLogLevel.useMutation, z.nodes.executeQuery.useMutation, z.notificationOutput.listTargetKinds.useQuery, z.notificationOutput.listTargets.useQuery, z.notificationOutput.discoverTargets.useQuery, z.notificationOutput.send.useMutation, z.notificationOutput.testTarget.useMutation, z.notificationOutput.upsertTarget.useMutation, z.notificationOutput.deleteTarget.useMutation, z.notificationOutput.setTargetEnabled.useMutation, z.notificationRules.listRules.useQuery, z.notificationRules.getRule.useQuery, z.notificationRules.createRule.useMutation, z.notificationRules.updateRule.useMutation, z.notificationRules.deleteRule.useMutation, z.notificationRules.setRuleEnabled.useMutation, z.notificationRules.listSequences.useQuery, z.notificationRules.getSequence.useQuery, z.notificationRules.createSequence.useMutation, z.notificationRules.updateSequence.useMutation, z.notificationRules.deleteSequence.useMutation, z.notificationRules.getClipRetentionAsks.useQuery, z.notificationRules.listDeviceMutes.useQuery, z.notificationRules.setDeviceMuted.useMutation, z.notificationRules.testRule.useMutation, z.notificationRules.previewStateSummary.useMutation, z.notificationRules.getConditionCatalog.useQuery, z.notificationRules.getTemplateCatalog.useQuery, z.notificationRules.previewTemplate.useMutation, z.notificationRules.getHistory.useQuery, z.notificationRules.getRuleLastRuns.useQuery, z.notificationRules.resolveArtifactUrl.useQuery, z.notificationRules.listSnoozes.useQuery, z.notificationRules.createSnooze.useMutation, z.notificationRules.cancelSnooze.useMutation, z.notificationRules.getAlarmConfig.useQuery, z.notificationRules.setAlarmConfig.useMutation, z.notificationRules.createAlarmProfile.useMutation, z.notificationRules.renameAlarmProfile.useMutation, z.notificationRules.deleteAlarmProfile.useMutation, z.notificationRules.activateAlarmProfile.useMutation, z.notificationRules.getAlarmSensors.useQuery, z.notifier.send.useMutation, z.notifier.cancel.useMutation, z.notifier.getStatus.useQuery, z.numericSensor.getStatus.useQuery, z.osd.setOverlay.useMutation, z.osd.getStatus.useQuery;
3500
3500
  var vi = z.osdManager.getDeviceOsd.useQuery, yi = z.osdManager.getSourceCatalog.useQuery, bi = z.osdManager.getConditionSupport.useQuery, xi = z.osdManager.setSlotBinding.useMutation, Si = z.osdManager.clearSlotBinding.useMutation, Ci = z.osdManager.copyDeviceConfiguration.useMutation, wi = z.osdManager.previewSlot.useMutation, Ti = z.osdManager.renderDevice.useMutation, Ei = z.osdManager.listTemplates.useQuery, Di = z.osdManager.upsertTemplate.useMutation, Oi = z.osdManager.deleteTemplate.useMutation;
3501
3501
  z.petFeeder.feed.useMutation, z.petFeeder.cancelFeed.useMutation, z.petFeeder.resetDesiccant.useMutation, z.petFeeder.markFoodReplenished.useMutation, z.petFeeder.callPet.useMutation, z.petFeeder.playSound.useMutation, z.petFeeder.setChildLock.useMutation, z.petFeeder.setIndicatorLight.useMutation, z.petFeeder.setFeedSound.useMutation, z.petFeeder.setVolume.useMutation, z.petFeeder.getStatus.useQuery, z.pipelineAnalytics.getActiveTracks.useQuery, z.pipelineAnalytics.getTrack.useQuery, z.pipelineAnalytics.listTracks.useQuery, z.pipelineAnalytics.listRecentTracks.useQuery, z.pipelineAnalytics.clearTracks.useMutation, z.pipelineAnalytics.getMotionEvents.useQuery, z.pipelineAnalytics.getObjectEvents.useQuery, z.pipelineAnalytics.getAudioEvents.useQuery, z.pipelineAnalytics.listEventKinds.useQuery, z.pipelineAnalytics.listEventKindsBatch.useQuery, z.pipelineAnalytics.getSensorEvents.useQuery, z.pipelineAnalytics.getKeyEvents.useQuery, z.pipelineAnalytics.getKeyEventsBatch.useQuery, z.pipelineAnalytics.readLongTermSeries.useQuery, z.pipelineAnalytics.getEventDensity.useQuery, z.pipelineAnalytics.getEventDensityBatch.useQuery, z.pipelineAnalytics.pruneEventsBefore.useMutation, z.pipelineAnalytics.pruneTracksBefore.useMutation, z.pipelineAnalytics.wipeAllAnalytics.useMutation, z.pipelineAnalytics.reconcileFromDisk.useMutation, z.pipelineAnalytics.deleteTracks.useMutation, z.pipelineAnalytics.setTrackFlags.useMutation, z.pipelineAnalytics.listArchivedDebugNotes.useQuery, z.pipelineAnalytics.setTrackRelation.useMutation, z.pipelineAnalytics.clearTrackRelation.useMutation, z.pipelineAnalytics.setTrackPurity.useMutation, z.pipelineAnalytics.listTrackRelations.useQuery, z.pipelineAnalytics.listBirthDecisions.useQuery, z.pipelineAnalytics.getEventStoreFootprint.useQuery, z.pipelineAnalytics.getEventMediaFootprintByKind.useQuery, z.pipelineAnalytics.pruneEvents.useMutation, z.pipelineAnalytics.deleteDeviceEvents.useMutation, z.pipelineAnalytics.pauseForStorageMigration.useMutation, z.pipelineAnalytics.resumeForStorageMigration.useMutation, z.pipelineAnalytics.refreshStorageLocationsForMigration.useMutation, z.pipelineAnalytics.startStorageMigrationMove.useMutation, z.pipelineAnalytics.getStorageMigrationMoveStatus.useQuery, z.pipelineAnalytics.cancelStorageMigrationMove.useMutation, z.pipelineAnalytics.relocateMedia.useMutation, z.pipelineAnalytics.countUnstampedEventMedia.useQuery, z.pipelineAnalytics.countRelocatableMedia.useQuery, z.pipelineAnalytics.listRelocateMediaJobs.useQuery, z.pipelineAnalytics.cancelRelocateMedia.useMutation, z.pipelineAnalytics.listOpsLog.useQuery, z.pipelineAnalytics.reclaimDebugMedia.useMutation, z.pipelineAnalytics.getMediaReclaimStatus.useQuery, z.pipelineAnalytics.getTrainingExportSummary.useQuery, z.pipelineAnalytics.getTrainingExportUrl.useQuery, z.pipelineAnalytics.listRetrainStaging.useQuery, z.pipelineAnalytics.listRetrainFrames.useQuery, z.pipelineAnalytics.selectRetrainFrames.useMutation, z.pipelineAnalytics.deselectRetrainFrame.useMutation, z.pipelineAnalytics.getRetrainFrameImage.useQuery, z.pipelineAnalytics.proposeRetrainAnnotations.useMutation, z.pipelineAnalytics.listRetrainAnnotations.useQuery, z.pipelineAnalytics.saveRetrainAnnotations.useMutation, z.pipelineAnalytics.completeRetrainTrack.useMutation, z.pipelineAnalytics.restageRetrainTrack.useMutation, z.pipelineAnalytics.getRetrainExportUrl.useQuery, z.pipelineAnalytics.getEventMedia.useQuery, z.pipelineAnalytics.getTrackMedia.useQuery, z.pipelineAnalytics.listTrackMedia.useQuery, z.pipelineAnalytics.listEventMedia.useQuery, z.pipelineAnalytics.ownersWithMedia.useQuery, z.pipelineAnalytics.searchObjectEvents.useQuery, z.pipelineAnalytics.wipeObjectEmbeddings.useMutation, z.pipelineAnalytics.rebuildObjectEmbeddings.useMutation, z.pipelineAnalytics.getObjectEmbeddingRebuildStatus.useQuery, z.pipelineAnalytics.getDeviceSettingsContribution.useQuery, z.pipelineAnalytics.getDeviceLiveContribution.useQuery, z.pipelineAnalytics.applyDeviceSettingsPatch.useMutation, z.pipelineExecutor.getAvailableEngines.useQuery, z.pipelineExecutor.getSelectedEngine.useQuery, z.pipelineExecutor.getDefaultSteps.useQuery, z.pipelineExecutor.getEngineProvisioning.useQuery, z.pipelineExecutor.getVideoPipelineSteps.useQuery, z.pipelineExecutor.setVideoPipelineSteps.useMutation, z.pipelineExecutor.clearDeviceOverrides.useMutation, z.pipelineExecutor.getInferenceDeviceHealth.useQuery, z.pipelineExecutor.rearmInferenceDevice.useMutation, z.pipelineExecutor.getSchema.useQuery, z.pipelineExecutor.getGlobalSteps.useQuery, z.pipelineExecutor.getGlobalPipelineConfig.useQuery, z.pipelineExecutor.getOrchestratorConfigSchema.useQuery, z.pipelineExecutor.validatePipeline.useQuery, z.pipelineExecutor.listTemplates.useQuery, z.pipelineExecutor.saveTemplate.useMutation, z.pipelineExecutor.updateTemplate.useMutation, z.pipelineExecutor.deleteTemplate.useMutation, z.pipelineExecutor.getCapabilities.useQuery, z.pipelineExecutor.getAddonModels.useQuery, z.pipelineExecutor.downloadModel.useMutation, z.pipelineExecutor.deleteModel.useMutation, z.pipelineExecutor.runPipeline.useMutation, z.pipelineExecutor.runPipelineBatch.useMutation, z.pipelineExecutor.cacheFrameInPool.useMutation, z.pipelineExecutor.inferCached.useMutation, z.pipelineExecutor.uncacheFrame.useMutation, z.pipelineExecutor.getEffectiveTuning.useQuery, z.pipelineExecutor.listLoadedEngines.useQuery, z.pipelineExecutor.spinEngine.useMutation, z.pipelineExecutor.killEngine.useMutation, z.pipelineExecutor.listReferenceImages.useQuery, z.pipelineExecutor.getReferenceImage.useQuery, z.pipelineExecutor.getReferenceAudioFiles.useQuery, z.pipelineExecutor.getReferenceAudio.useQuery, z.pipelineExecutor.getAudioCapabilities.useQuery, z.pipelineExecutor.runAudioTest.useMutation, z.pipelineExecutor.getDetectionConfigSchema.useQuery, z.pipelineOrchestrator.requestOccupancyLook.useMutation, z.pipelineOrchestrator.pauseForStorageMigration.useMutation, z.pipelineOrchestrator.resumeForStorageMigration.useMutation, z.pipelineOrchestrator.assignPipeline.useMutation, z.pipelineOrchestrator.unassignPipeline.useMutation, z.pipelineOrchestrator.setPipelineDevicePin.useMutation, z.pipelineOrchestrator.getPipelineDevicePin.useQuery, z.pipelineOrchestrator.rebalance.useMutation, z.pipelineOrchestrator.getPipelineAssignments.useQuery, z.pipelineOrchestrator.getPipelineAssignment.useQuery, z.pipelineOrchestrator.getAgentLoad.useQuery, z.pipelineOrchestrator.getClusterModelChoice.useQuery, z.pipelineOrchestrator.getGlobalMetrics.useQuery, z.pipelineOrchestrator.getCameraMetrics.useQuery, z.pipelineOrchestrator.getCapabilityBindings.useQuery, z.pipelineOrchestrator.setCapabilityBinding.useMutation, z.pipelineOrchestrator.getIngestOwner.useQuery, z.pipelineOrchestrator.assignAudio.useMutation, z.pipelineOrchestrator.unassignAudio.useMutation, z.pipelineOrchestrator.getAudioAssignment.useQuery, z.pipelineOrchestrator.getAudioNodeLoad.useQuery, z.pipelineOrchestrator.getAudioAssignments.useQuery, z.pipelineOrchestrator.getAgentSettings.useQuery, z.pipelineOrchestrator.listAgentSettings.useQuery, z.pipelineOrchestrator.removeAgentSettings.useMutation, z.pipelineOrchestrator.setAgentMaxCameras.useMutation, z.pipelineOrchestrator.setAgentDetectWeight.useMutation, z.pipelineOrchestrator.setAgentCapabilities.useMutation, z.pipelineOrchestrator.setAgentDecodeLimits.useMutation, z.pipelineOrchestrator.setAgentReachableHost.useMutation, z.pipelineOrchestrator.setAgentInferenceDevices.useMutation, z.pipelineOrchestrator.getNodeInferenceDevices.useQuery, z.pipelineOrchestrator.resetNodePipelineDefaults.useMutation, z.pipelineOrchestrator.getCameraSettings.useQuery, z.pipelineOrchestrator.setCameraStepToggle.useMutation, z.pipelineOrchestrator.getCameraStepOverrides.useQuery, z.pipelineOrchestrator.setCameraStepOverride.useMutation, z.pipelineOrchestrator.setCameraPipelineForAgent.useMutation, z.pipelineOrchestrator.resolvePipeline.useQuery, z.pipelineOrchestrator.getCameraSwitches.useQuery, z.pipelineOrchestrator.setCameraSwitch.useMutation, z.pipelineOrchestrator.getCameraStatus.useQuery, z.pipelineOrchestrator.getCameraStatuses.useQuery, z.pipelineOrchestrator.setCameraSensors.useMutation, z.pipelineOrchestrator.reconcileFromDisk.useMutation, z.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery, z.pipelineOrchestrator.listTemplates.useQuery, z.pipelineOrchestrator.saveTemplate.useMutation, z.pipelineOrchestrator.updateTemplate.useMutation, z.pipelineOrchestrator.deleteTemplate.useMutation, z.pipelineOrchestrator.getDeviceSettingsContribution.useQuery, z.pipelineOrchestrator.getDeviceLiveContribution.useQuery, z.pipelineOrchestrator.applyDeviceSettingsPatch.useMutation, z.pipelineRunner.attachCamera.useMutation, z.pipelineRunner.detachCamera.useMutation, z.pipelineRunner.reportMotion.useMutation, z.pipelineRunner.getLocalLoad.useQuery, z.pipelineRunner.getLocalMetrics.useQuery, z.pipelineRunner.getCameraMetrics.useQuery, z.pipelineRunner.getAllCameraMetrics.useQuery, z.pipelineRunner.getLocalCameras.useQuery, z.pipelineRunner.requestOccupancyBurst.useMutation, z.pipelineRunner.getNativeCrop.useQuery, z.pipelineRunner.runDetailSubtree.useMutation, z.pipelineRunner.runStatelessStep.useMutation, z.pipelineRunner.parkTrackFrame.useMutation, z.pipelineRunner.getParkedTrackFrame.useQuery, z.pipelineRunner.releaseParkedTrackFrames.useMutation, z.plateGallery.listPlates.useQuery, z.plateGallery.getPlateByTrack.useQuery, z.plateGallery.getPlateMedia.useQuery, z.plateGallery.searchPlates.useQuery, z.plateGallery.suggestPlateClusters.useQuery, z.plateGallery.correctPlateText.useMutation, z.plateGallery.deletePlate.useMutation, z.plateGallery.listVehicles.useQuery, z.plateGallery.createVehicle.useMutation, z.plateGallery.renameVehicle.useMutation, z.plateGallery.deleteVehicle.useMutation, z.plateGallery.listVehicleSamples.useQuery, z.plateGallery.removeVehicleSample.useMutation, z.plateGallery.assignPlate.useMutation, z.plateGallery.unassignPlate.useMutation, z.plateGallery.assignPlates.useMutation, z.plateGallery.unassignPlates.useMutation, z.powerMeter.getStatus.useQuery, z.presence.getStatus.useQuery, z.pressureSensor.getStatus.useQuery, z.privacyMask.getOptions.useQuery, z.privacyMask.setMask.useMutation, z.privacyMask.setAudioEnabled.useMutation, z.privacyMask.getStatus.useQuery, z.ptz.move.useMutation, z.ptz.continuousMove.useMutation, z.ptz.stop.useMutation, z.ptz.getPresets.useQuery, z.ptz.goToPreset.useMutation, z.ptz.savePreset.useMutation, z.ptz.deletePreset.useMutation, z.ptz.getOptions.useQuery, z.ptz.goHome.useMutation, z.ptz.getHomePreset.useQuery, z.ptz.setHomePreset.useMutation, z.ptz.captureHomeHere.useMutation, z.ptz.getHomeReturn.useQuery, z.ptz.setHomeReturn.useMutation, z.ptz.getPosition.useQuery, z.ptz.setAutofocus.useMutation, z.ptz.getStatus.useQuery, z.ptzAutotrack.getStatus.useQuery, z.ptzAutotrack.setEnabled.useMutation, z.ptzAutotrack.getSettings.useQuery, z.ptzAutotrack.setSettings.useMutation, z.reboot.reboot.useMutation, z.recording.listSources.useQuery, z.recording.getAvailability.useQuery, z.recording.getDaysWithRecordings.useQuery, z.recording.getPlayback.useQuery, z.recording.getPlaybackOptions.useQuery, z.recordingArchive.getAvailabilityBatch.useQuery, z.recordingArchive.getDaysWithRecordingsBatch.useQuery, z.recordingArchive.getStorageUsage.useQuery, z.recordingArchive.getDeviceConfig.useQuery, z.recordingArchive.locateSegment.useQuery, z.recordingArchive.readSegmentBytes.useQuery, z.recordingArchive.readGopBytes.useQuery, z.recordingArchive.readWindowBytes.useQuery, z.recordingArchive.setDeviceConfig.useMutation, z.recordingArchive.rescanStorage.useMutation, z.recordingArchive.pruneFootage.useMutation, z.recordingArchive.deleteFootprint.useMutation, z.recordingArchive.listOpsLog.useQuery, z.recordingArchive.renderGif.useMutation, z.recordingArchive.renderClip.useMutation, z.recordingArchive.pauseForStorageMigration.useMutation, z.recordingArchive.resumeForStorageMigration.useMutation, z.recordingArchive.refreshStorageLocationsForMigration.useMutation, z.recordingArchive.startStorageMigrationMove.useMutation, z.recordingArchive.getStorageMigrationMoveStatus.useQuery, z.recordingArchive.cancelStorageMigrationMove.useMutation, z.recordingArchive.relocateFootage.useMutation, z.recordingArchive.listRelocateJobs.useQuery, z.recordingArchive.getRelocateResidue.useQuery, z.recordingArchive.reconcileLedgerAgainstDisk.useMutation, z.recordingArchive.cancelRelocateJob.useMutation, z.recordingArchive.planStorageRebalance.useQuery, z.recordingArchive.startStorageRebalance.useMutation, z.recordingArchive.getPlacement.useQuery, z.recordingArchive.setDevicePlacement.useMutation, z.recordingArchive.getStatus.useQuery, z.recordingArchive.getDeviceSettingsContribution.useQuery, z.recordingArchive.getDeviceLiveContribution.useQuery, z.recordingArchive.applyDeviceSettingsPatch.useMutation, z.recordingExport.createExport.useMutation, z.recordingExport.listExports.useQuery, z.recordingExport.getExport.useQuery, z.recordingExport.cancelExport.useMutation, z.recordingExport.deleteExport.useMutation, z.recordingExport.getDownloadUrl.useQuery, z.recordingExport.readExportBytes.useQuery, z.recordingOnboard.getOptions.useQuery, z.recordingOnboard.setSettings.useMutation, z.recordingOnboard.getStatus.useQuery, z.recordingSignal.getStatus.useQuery, z.sceneMonitor.listScenes.useQuery, z.sceneMonitor.listScenesBatch.useQuery, z.sceneMonitor.createScene.useMutation, z.sceneMonitor.updateScene.useMutation, z.sceneMonitor.deleteScene.useMutation, z.sceneMonitor.captureReference.useMutation, z.sceneMonitor.deleteReference.useMutation, z.sceneMonitor.recheckNow.useMutation, z.sceneMonitor.resetScene.useMutation, z.sceneMonitor.getStatus.useQuery, z.scriptRunner.run.useMutation, z.scriptRunner.stop.useMutation, z.scriptRunner.getStatus.useQuery, z.serverManagement.getServerPackageStatus.useQuery, z.serverManagement.checkServerUpdate.useMutation, z.serverManagement.applyServerUpdate.useMutation, z.serverManagement.rollbackServerUpdate.useMutation, z.serverManagement.restartServer.useMutation, z.settingsStore.get.useQuery, z.settingsStore.set.useMutation, z.settingsStore.query.useQuery, z.settingsStore.upsert.useMutation, z.settingsStore.insert.useMutation, z.settingsStore.insertMany.useMutation, z.settingsStore.update.useMutation, z.settingsStore.delete.useMutation, z.settingsStore.deleteWhere.useMutation, z.settingsStore.updateWhere.useMutation, z.settingsStore.count.useQuery, z.settingsStore.aggregate.useQuery, z.settingsStore.histogram.useQuery, z.settingsStore.isEmpty.useQuery, z.settingsStore.declareCollection.useMutation, z.smoke.getStatus.useQuery, z.snapshot.getSnapshot.useQuery, z.snapshot.invalidateCache.useMutation, z.snapshot.getSnapshotOverview.useQuery, z.snapshot.getDebugState.useQuery, z.snapshot.getSnapshotLinks.useQuery, z.snapshot.getStatus.useQuery, z.snapshot.getDeviceSettingsContribution.useQuery, z.snapshot.getDeviceLiveContribution.useQuery, z.snapshot.applyDeviceSettingsPatch.useMutation, z.storage.resolve.useQuery, z.storage.write.useMutation, z.storage.read.useQuery, z.storage.exists.useQuery, z.storage.list.useQuery, z.storage.delete.useMutation, z.storage.getAvailableSpace.useQuery, z.storage.beginUpload.useMutation, z.storage.writeChunk.useMutation, z.storage.finalizeUpload.useMutation, z.storage.abortUpload.useMutation, z.storage.beginDownload.useMutation, z.storage.readChunk.useQuery, z.storage.endDownload.useMutation, z.storage.listLocations.useQuery, z.storage.listLocationDeclarations.useQuery, z.storage.upsertLocation.useMutation, z.storage.deleteLocation.useMutation, z.storage.listDrainProgress.useQuery, z.storage.testLocation.useQuery, z.storage.listProviders.useQuery, z.storage.testConfig.useQuery, z.storageMigration.plan.useQuery, z.storageMigration.start.useMutation, z.storageMigration.status.useQuery, z.storageMigration.cancel.useMutation, z.storageMigration.movers.useQuery, z.storageMigration.residue.useQuery, z.storageMigration.drain.useMutation, z.storageMigration.cleanupStart.useMutation, z.storageMigration.cleanupStatus.useQuery, z.storageMigration.cleanupCancel.useMutation, z.storageMigration.history.useQuery, z.streamBroker.reportStreamSignal.useMutation, z.streamBroker.publishCameraStream.useMutation, z.streamBroker.retractCameraStream.useMutation, z.streamBroker.assignProfile.useMutation, z.streamBroker.unassignProfile.useMutation, z.streamBroker.forgetDeviceHardware.useMutation, z.streamBroker.renderPreBufferClip.useMutation, z.streamBroker.produceEventMedia.useMutation, z.streamBroker.fetchEventMedia.useMutation, z.streamBroker.listAllCameraStreams.useQuery, z.streamBroker.listAllProfileSlots.useQuery, z.streamBroker.getBrokerStats.useQuery, z.streamBroker.probeStream.useMutation, z.streamBroker.listClients.useQuery, z.streamBroker.killClient.useMutation, z.streamBroker.restartProfile.useMutation, z.streamBroker.getStreamUrl.useQuery, z.streamBroker.getStreamWithCodec.useMutation, z.streamBroker.releaseStreamWithCodec.useMutation, z.streamBroker.acquireEgressTranscode.useMutation, z.streamBroker.releaseEgressTranscode.useMutation, z.streamBroker.subscribeAudioChunks.useMutation, z.streamBroker.pullAudioChunks.useQuery, z.streamBroker.unsubscribeAudioChunks.useMutation, z.streamBroker.subscribeFrames.useMutation, z.streamBroker.pullFrameHandles.useQuery, z.streamBroker.unsubscribeFrames.useMutation, z.streamBroker.setPreBufferDuration.useMutation, z.streamBroker.getPreBufferInfo.useQuery, z.streamBroker.getRtspPort.useQuery, z.streamBroker.getAllRtspEntries.useQuery, z.streamBroker.getRtspEntry.useQuery, z.streamBroker.regenerateRtspToken.useMutation, z.streamBroker.setRtspEnabled.useMutation, z.streamBroker.isRtspEnabled.useQuery, z.streamBroker.getDeviceAudioMute.useQuery, z.streamBroker.setDeviceAudioMute.useMutation, z.streamBroker.getDeviceSettingsContribution.useQuery, z.streamBroker.getDeviceLiveContribution.useQuery, z.streamBroker.applyDeviceSettingsPatch.useMutation, z.streamCatalog.getCatalog.useQuery, z.streamParams.getOptions.useQuery, z.streamParams.setProfile.useMutation, z.streamParams.getConfigSchema.useQuery, z.streamParams.getStatus.useQuery, z.streamSignals.listSignals.useQuery, z.switch.setState.useMutation, z.switch.getStatus.useQuery, z.system.info.useQuery, z.system.health.useQuery, z.system.featureFlags.useQuery, z.system.networkAddresses.useQuery, z.system.getRetentionConfig.useQuery, z.system.setRetentionConfig.useMutation, z.system.forceRetentionCleanup.useMutation, z.system.getSiteLocation.useQuery, z.system.setSiteLocation.useMutation, z.system.detectSiteLocation.useMutation, z.system.getRequestCensus.useQuery, z.system.getLoadContributions.useQuery, z.system.getFailureContributions.useQuery, z.system.getLoggingSettings.useQuery, z.system.setLoggingSettings.useMutation, z.tamper.getStatus.useQuery, z.temperatureSensor.getStatus.useQuery, z.terminalSession.listProfiles.useQuery, z.terminalSession.listInstances.useQuery, z.terminalSession.createInstance.useMutation, z.terminalSession.updateInstance.useMutation, z.terminalSession.deleteInstance.useMutation, z.terminalSession.setInstanceEnabled.useMutation, z.terminalSession.listLegacyCameras.useQuery, z.terminalSession.adoptLegacyMonitor.useMutation, z.terminalSession.listSessions.useQuery, z.terminalSession.openSession.useMutation, z.terminalSession.resize.useMutation, z.terminalSession.pullOutput.useMutation, z.terminalSession.writeInput.useMutation, z.terminalSession.close.useMutation, z.toast.onToast.useSubscription, z.turnProvider.getTurnServers.useQuery, z.update.installUpdate.useMutation, z.update.getStatus.useQuery, z.userManagement.listUsers.useQuery, z.userManagement.createUser.useMutation, z.userManagement.updateUser.useMutation, z.userManagement.deleteUser.useMutation, z.userManagement.resetPassword.useMutation, z.userManagement.setUserScopes.useMutation, z.userManagement.validateCredentials.useMutation, z.userManagement.listApiKeys.useQuery, z.userManagement.createApiKey.useMutation, z.userManagement.revokeApiKey.useMutation, z.userManagement.validateApiKey.useMutation, z.userManagement.createScopedToken.useMutation, z.userManagement.revokeScopedToken.useMutation, z.userManagement.validateScopedToken.useQuery, z.userManagement.listScopedTokens.useQuery, z.userManagement.setupTotp.useMutation, z.userManagement.confirmTotp.useMutation, z.userManagement.disableTotp.useMutation, z.userManagement.getTotpStatus.useQuery, z.userManagement.verifyTotp.useMutation, z.userManagement.oauthIssueCode.useMutation, z.userManagement.oauthExchangeCode.useMutation, z.userManagement.oauthRefresh.useMutation, z.userManagement.oauthVerifyAccessToken.useQuery, z.userManagement.listOauthSessions.useQuery, z.userManagement.revokeOauthSession.useMutation, z.vacuumControl.start.useMutation, z.vacuumControl.pause.useMutation, z.vacuumControl.stop.useMutation, z.vacuumControl.returnToBase.useMutation, z.vacuumControl.locate.useMutation, z.vacuumControl.setFanSpeed.useMutation, z.vacuumControl.getStatus.useQuery, z.valve.open.useMutation, z.valve.close.useMutation, z.valve.stop.useMutation, z.valve.setPosition.useMutation, z.valve.getStatus.useQuery, z.vibration.getStatus.useQuery, z.videoclips.listClips.useQuery, z.videoclips.listSources.useQuery, z.videoclips.getClipPlayback.useQuery, z.videoclips.readClipBytes.useQuery, z.videoclips.offerClipBytes.useQuery, z.videoclips.dialClipStream.useQuery, z.videoclips.getPlaybackOptions.useQuery, z.waterHeater.setTargetTemp.useMutation, z.waterHeater.setOperationMode.useMutation, z.waterHeater.setAway.useMutation, z.waterHeater.getStatus.useQuery, z.weather.getStatus.useQuery, z.webrtcSession.listStreams.useQuery, z.webrtcSession.createSession.useMutation, z.webrtcSession.handleOffer.useMutation, z.webrtcSession.handleAnswer.useMutation, z.webrtcSession.addIceCandidate.useMutation, z.webrtcSession.getIceCandidates.useQuery, z.webrtcSession.closeSession.useMutation, z.webrtcSession.hasAdaptiveBitrate.useQuery, z.webrtcSession.getSessionState.useQuery, z.webrtcSession.getSessionDebug.useQuery, z.zoneAnalytics.getCurrentSnapshot.useQuery, z.zoneAnalytics.getCurrentSnapshotBatch.useQuery, z.zoneAnalytics.getZoneHistory.useQuery, z.zoneAnalytics.getCameraHistory.useQuery, z.zoneAnalytics.getUnzonedHistory.useQuery, z.zoneRules.listRules.useQuery, z.zoneRules.setRules.useMutation, z.zones.listZones.useQuery, z.zones.addZone.useMutation, z.zones.removeZone.useMutation, z.zones.updateZone.useMutation;
3502
3502
  //#endregion
@@ -6100,7 +6100,7 @@ t(), t(), t(), S("camstack:recorded-playback", {
6100
6100
  mode: "live",
6101
6101
  positionMs: null,
6102
6102
  send: () => !1
6103
- }), t(), t(), t(), t(), t(), t(), s(() => import("./MotionZonesSettings-sqWBK5nw.mjs").then((e) => ({ default: e.MotionZonesSettings }))), s(() => import("./PrivacyMaskSettings-xEGyOq4f.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), t(), t();
6103
+ }), t(), t(), t(), t(), t(), t(), s(() => import("./MotionZonesSettings-BS0B2G3Q.mjs").then((e) => ({ default: e.MotionZonesSettings }))), s(() => import("./PrivacyMaskSettings-DLJ0DHZT.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), t(), t();
6104
6104
  var Oo = Object.defineProperty, ko = Object.getOwnPropertySymbols, Ao = Object.prototype.hasOwnProperty, jo = Object.prototype.propertyIsEnumerable, Mo = (e, t, n) => t in e ? Oo(e, t, {
6105
6105
  enumerable: !0,
6106
6106
  configurable: !0,
@@ -22390,12 +22390,33 @@ function AT({ label: e, value: t, onChange: n, chips: r, multiline: i = !1, plac
22390
22390
  });
22391
22391
  }
22392
22392
  //#endregion
22393
+ //#region ../ui-library/src/hooks/use-url-query.ts
22394
+ t(), S("camstack:zone-editing", null), t();
22395
+ function jT(e) {
22396
+ return new URLSearchParams(window.location.search).get(e);
22397
+ }
22398
+ function MT(e, t) {
22399
+ let n = new URLSearchParams(window.location.search);
22400
+ t === null || t === "" ? n.delete(e) : n.set(e, t);
22401
+ let r = n.toString(), i = r ? `${window.location.pathname}?${r}` : window.location.pathname;
22402
+ window.history.replaceState(null, "", i);
22403
+ }
22404
+ function NT(e) {
22405
+ let [t, r] = a(() => jT(e));
22406
+ return m(() => {
22407
+ let t = () => r(jT(e));
22408
+ return window.addEventListener("popstate", t), () => window.removeEventListener("popstate", t);
22409
+ }, [e]), [t, n((t) => {
22410
+ MT(e, t), r(t);
22411
+ }, [e])];
22412
+ }
22413
+ //#endregion
22393
22414
  //#region ../ui-library/src/hooks/use-device-detections.ts
22394
- t(), S("camstack:zone-editing", null), t(), t();
22415
+ t(), t();
22395
22416
  //#endregion
22396
22417
  //#region ../ui-library/src/hooks/turn-server-cache.ts
22397
- var jT = 5 * 6e4, MT = 720 * 6e4, NT = "camstack:turn-servers:v1";
22398
- function PT() {
22418
+ var PT = 5 * 6e4, FT = 720 * 6e4, IT = "camstack:turn-servers:v1";
22419
+ function LT() {
22399
22420
  let e = globalThis;
22400
22421
  try {
22401
22422
  return e.localStorage ?? null;
@@ -22403,7 +22424,7 @@ function PT() {
22403
22424
  return null;
22404
22425
  }
22405
22426
  }
22406
- function FT(e) {
22427
+ function RT(e) {
22407
22428
  if (typeof e != "object" || !e) return !1;
22408
22429
  let t = e;
22409
22430
  return typeof t.fetchedAt != "number" || !Array.isArray(t.servers) ? !1 : t.servers.every((e) => {
@@ -22412,7 +22433,7 @@ function FT(e) {
22412
22433
  return !(!(typeof t.urls == "string" || Array.isArray(t.urls) && t.urls.every((e) => typeof e == "string")) || t.username !== void 0 && typeof t.username != "string" || t.credential !== void 0 && typeof t.credential != "string");
22413
22434
  });
22414
22435
  }
22415
- var IT = class {
22436
+ var zT = class {
22416
22437
  freshTtlMs;
22417
22438
  staleCapMs;
22418
22439
  storage;
@@ -22421,7 +22442,7 @@ var IT = class {
22421
22442
  memory = /* @__PURE__ */ new WeakMap();
22422
22443
  inflight = /* @__PURE__ */ new WeakMap();
22423
22444
  constructor(e = {}) {
22424
- this.freshTtlMs = e.freshTtlMs ?? jT, this.staleCapMs = e.staleCapMs ?? MT, this.storage = "storage" in e ? e.storage ?? null : PT(), this.now = e.now ?? (() => Date.now()), this.storageKey = e.storageKey ?? NT;
22445
+ this.freshTtlMs = e.freshTtlMs ?? PT, this.staleCapMs = e.staleCapMs ?? FT, this.storage = "storage" in e ? e.storage ?? null : LT(), this.now = e.now ?? (() => Date.now()), this.storageKey = e.storageKey ?? IT;
22425
22446
  }
22426
22447
  async getOrFetch(e, t) {
22427
22448
  let n = this.now(), r = this.memory.get(e) ?? this.readStorage();
@@ -22459,7 +22480,7 @@ var IT = class {
22459
22480
  let e = this.storage.getItem(this.storageKey);
22460
22481
  if (e === null) return;
22461
22482
  let t = JSON.parse(e);
22462
- return FT(t) ? t : void 0;
22483
+ return RT(t) ? t : void 0;
22463
22484
  } catch {
22464
22485
  return;
22465
22486
  }
@@ -22470,10 +22491,10 @@ var IT = class {
22470
22491
  } catch {}
22471
22492
  }
22472
22493
  };
22473
- t(), new IT(), t(), t(), t(), s(() => import("./MaskShapeCanvas-BT714ljC.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), s(() => import("./MotionZonesSettings-sqWBK5nw.mjs").then((e) => ({ default: e.MotionZonesSettings }))), s(() => import("./SceneMonitorEditor-BF58OFQ-.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), s(() => import("./PrivacyMaskSettings-xEGyOq4f.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
22494
+ t(), new zT(), t(), t(), t(), s(() => import("./MaskShapeCanvas-BT714ljC.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), s(() => import("./MotionZonesSettings-BS0B2G3Q.mjs").then((e) => ({ default: e.MotionZonesSettings }))), s(() => import("./SceneMonitorEditor-CDDYaoCX.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), s(() => import("./PrivacyMaskSettings-DLJ0DHZT.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
22474
22495
  //#endregion
22475
22496
  //#region src/ui/osd-page-model.ts
22476
- function LT() {
22497
+ function BT() {
22477
22498
  return {
22478
22499
  enabled: !0,
22479
22500
  source: {
@@ -22485,13 +22506,13 @@ function LT() {
22485
22506
  fallbackText: ""
22486
22507
  };
22487
22508
  }
22488
- function RT(e) {
22489
- return e.binding === null ? LT() : e.binding.conditions?.devices === void 0 ? e.binding : {
22509
+ function VT(e) {
22510
+ return e.binding === null ? BT() : e.binding.conditions?.devices === void 0 ? e.binding : {
22490
22511
  ...e.binding,
22491
- conditions: uE(e.binding.conditions, "devices")
22512
+ conditions: pE(e.binding.conditions, "devices")
22492
22513
  };
22493
22514
  }
22494
- function zT(e) {
22515
+ function HT(e) {
22495
22516
  if (e !== void 0) {
22496
22517
  if (e.valueType === "boolean") return {
22497
22518
  true: "ON",
@@ -22500,61 +22521,61 @@ function zT(e) {
22500
22521
  if (e.valueType === "enum" && e.enumValues && e.enumValues.length > 0) return Object.fromEntries(e.enumValues.map((e) => [e, e]));
22501
22522
  }
22502
22523
  }
22503
- function BT(e, t) {
22524
+ function UT(e, t) {
22504
22525
  if (t.source.kind !== "device-state") return;
22505
22526
  let { deviceId: n, capName: r, valuePath: i } = t.source;
22506
22527
  return e.find((e) => e.deviceId === n && e.capName === r && e.valuePath === i);
22507
22528
  }
22508
- function VT(e) {
22529
+ function WT(e) {
22509
22530
  if (e === null) return "Unbound";
22510
22531
  let t = e.source;
22511
22532
  return t.kind === "static" ? `Static: "${t.text}"` : t.kind === "clock" ? `Clock (${t.pattern})` : t.kind === "latest-recognition" ? t.recognition === "person" ? "Last recognized person" : "Last recognized plate" : t.kind === "template" ? `Template: ${t.templateId}` : `${t.capName} · ${t.valuePath}`;
22512
22533
  }
22513
- function HT(e, t) {
22534
+ function GT(e, t) {
22514
22535
  if (!e) return "unsupported";
22515
22536
  let n = t.filter((e) => !e.readOnly);
22516
22537
  if (n.length === 0) return "disabled";
22517
22538
  let r = n.filter((e) => e.binding?.enabled === !0).length;
22518
22539
  return r === 0 ? "disabled" : r === n.length ? "enabled" : "partial";
22519
22540
  }
22520
- var UT = {
22541
+ var KT = {
22521
22542
  unsupported: "Unsupported",
22522
22543
  disabled: "Disabled",
22523
22544
  partial: "Partial",
22524
22545
  enabled: "Enabled"
22525
22546
  };
22526
- function WT(e) {
22527
- return UT[e];
22547
+ function qT(e) {
22548
+ return KT[e];
22528
22549
  }
22529
- var GT = {
22550
+ var JT = {
22530
22551
  unsupported: "default",
22531
22552
  disabled: "default",
22532
22553
  partial: "warning",
22533
22554
  enabled: "success"
22534
22555
  };
22535
- function KT(e) {
22536
- return GT[e];
22556
+ function YT(e) {
22557
+ return JT[e];
22537
22558
  }
22538
- function qT(e) {
22559
+ function XT(e) {
22539
22560
  return e.readOnly ? "readonly" : e.binding === null ? "unbound" : "bound";
22540
22561
  }
22541
- var JT = {
22562
+ var ZT = {
22542
22563
  bound: "bound",
22543
22564
  unbound: "unbound",
22544
22565
  readonly: "readonly"
22545
22566
  };
22546
- function YT(e) {
22547
- return JT[e];
22567
+ function QT(e) {
22568
+ return ZT[e];
22548
22569
  }
22549
- function XT(e) {
22570
+ function $T(e) {
22550
22571
  return (e.find((e) => !e.readOnly) ?? e[0])?.slotId;
22551
22572
  }
22552
- function ZT(e, t) {
22573
+ function eE(e, t) {
22553
22574
  let n = /* @__PURE__ */ new Map();
22554
22575
  for (let r of e) {
22555
22576
  let e = r.binding;
22556
22577
  if (e === null || !e.enabled) continue;
22557
- let [i, a] = QT(e.source, t);
22578
+ let [i, a] = tE(e.source, t);
22558
22579
  n.set(i, a);
22559
22580
  }
22560
22581
  return [...n.entries()].map(([e, t]) => ({
@@ -22562,7 +22583,7 @@ function ZT(e, t) {
22562
22583
  label: t
22563
22584
  }));
22564
22585
  }
22565
- function QT(e, t) {
22586
+ function tE(e, t) {
22566
22587
  if (e.kind === "static") return ["static", "Static text"];
22567
22588
  if (e.kind === "clock") return ["clock", "Clock"];
22568
22589
  if (e.kind === "latest-recognition") return e.recognition === "person" ? ["recognition:person", "Recognized person"] : ["recognition:plate", "Recognized plate"];
@@ -22571,7 +22592,7 @@ function QT(e, t) {
22571
22592
  let n = t.get(e.deviceId);
22572
22593
  return [`device-state:${e.deviceId}`, n === void 0 ? "Linked device" : `Linked: ${n}`];
22573
22594
  }
22574
- var $T = {
22595
+ var nE = {
22575
22596
  written: "Written",
22576
22597
  unchanged: "Unchanged",
22577
22598
  gated: "Gated (condition closed)",
@@ -22580,10 +22601,10 @@ var $T = {
22580
22601
  unbound: "Unbound",
22581
22602
  failed: "Write failed"
22582
22603
  };
22583
- function eE(e) {
22584
- return $T[e];
22604
+ function rE(e) {
22605
+ return nE[e];
22585
22606
  }
22586
- var tE = {
22607
+ var iE = {
22587
22608
  written: "success",
22588
22609
  unchanged: "success",
22589
22610
  gated: "warning",
@@ -22592,10 +22613,10 @@ var tE = {
22592
22613
  unbound: "default",
22593
22614
  failed: "danger"
22594
22615
  };
22595
- function nE(e) {
22596
- return tE[e];
22616
+ function aE(e) {
22617
+ return iE[e];
22597
22618
  }
22598
- var rE = [
22619
+ var oE = [
22599
22620
  "Sun",
22600
22621
  "Mon",
22601
22622
  "Tue",
@@ -22604,7 +22625,7 @@ var rE = [
22604
22625
  "Fri",
22605
22626
  "Sat"
22606
22627
  ];
22607
- function iE() {
22628
+ function sE() {
22608
22629
  return {
22609
22630
  days: [
22610
22631
  0,
@@ -22619,15 +22640,15 @@ function iE() {
22619
22640
  endMinute: 1439
22620
22641
  };
22621
22642
  }
22622
- function aE(e) {
22643
+ function cE(e) {
22623
22644
  let t = Math.floor(e / 60) % 24, n = e % 60;
22624
22645
  return `${String(t).padStart(2, "0")}:${String(n).padStart(2, "0")}`;
22625
22646
  }
22626
- function oE(e) {
22647
+ function lE(e) {
22627
22648
  let [t, n] = e.split(":"), r = Number(t), i = Number(n);
22628
22649
  return !Number.isFinite(r) || !Number.isFinite(i) ? 0 : Math.min(1439, Math.max(0, r * 60 + i));
22629
22650
  }
22630
- function sE(e, t) {
22651
+ function uE(e, t) {
22631
22652
  let n = e.days.includes(t);
22632
22653
  if (n && e.days.length === 1) return e;
22633
22654
  let r = n ? e.days.filter((e) => e !== t) : [...e.days, t].toSorted((e, t) => e - t);
@@ -22636,18 +22657,18 @@ function sE(e, t) {
22636
22657
  days: r
22637
22658
  };
22638
22659
  }
22639
- var cE = ue.options;
22640
- function lE(e) {
22641
- return e === void 0 ? [] : de(e, cE);
22660
+ var dE = ue.options;
22661
+ function fE(e) {
22662
+ return e === void 0 ? [] : de(e, dE);
22642
22663
  }
22643
- function uE(e, t) {
22664
+ function pE(e, t) {
22644
22665
  if (e === void 0) return;
22645
22666
  let { [t]: n, ...r } = e;
22646
22667
  return Object.keys(r).length === 0 ? void 0 : r;
22647
22668
  }
22648
22669
  //#endregion
22649
22670
  //#region src/adaptive-field.ts
22650
- function dE(e, t) {
22671
+ function mE(e, t) {
22651
22672
  let n = e.filter((e) => e.deviceId === t);
22652
22673
  return n.length === 0 ? {
22653
22674
  mode: "empty",
@@ -22663,7 +22684,7 @@ function dE(e, t) {
22663
22684
  auto: void 0
22664
22685
  };
22665
22686
  }
22666
- function fE(e) {
22687
+ function hE(e) {
22667
22688
  if (e.length === 0) return;
22668
22689
  let t = e.find((e) => e.valuePath === "value" || e.valuePath.endsWith(".value"));
22669
22690
  if (t !== void 0) return t;
@@ -22684,7 +22705,7 @@ function fE(e) {
22684
22705
  }
22685
22706
  //#endregion
22686
22707
  //#region src/state-leaves.ts
22687
- function pE(e, t) {
22708
+ function gE(e, t) {
22688
22709
  let n = e;
22689
22710
  for (let e of t.split(".")) {
22690
22711
  if (typeof n != "object" || !n || Array.isArray(n) || !Object.hasOwn(n, e)) return;
@@ -22694,16 +22715,16 @@ function pE(e, t) {
22694
22715
  }
22695
22716
  //#endregion
22696
22717
  //#region src/osd-source-fields.ts
22697
- var mE = new Set(["container"]);
22698
- function hE(e) {
22699
- return e == null ? !0 : !mE.has(e);
22718
+ var _E = new Set(["container"]);
22719
+ function vE(e) {
22720
+ return e == null ? !0 : !_E.has(e);
22700
22721
  }
22701
- function gE(e) {
22722
+ function yE(e) {
22702
22723
  return e === "container";
22703
22724
  }
22704
22725
  //#endregion
22705
22726
  //#region src/osd-picker-devices.ts
22706
- function _E(e) {
22727
+ function bE(e) {
22707
22728
  return e.map((e) => ({
22708
22729
  id: e.id,
22709
22730
  name: e.name,
@@ -22712,20 +22733,20 @@ function _E(e) {
22712
22733
  parentDeviceId: e.parentDeviceId ?? null
22713
22734
  }));
22714
22735
  }
22715
- function vE(e, t, n) {
22716
- return t.filter((t) => t.parentDeviceId === e && hE(t.type) && n.has(t.id)).toSorted((e, t) => e.name.localeCompare(t.name));
22736
+ function xE(e, t, n) {
22737
+ return t.filter((t) => t.parentDeviceId === e && vE(t.type) && n.has(t.id)).toSorted((e, t) => e.name.localeCompare(t.name));
22717
22738
  }
22718
- function yE(e, t) {
22739
+ function SE(e, t) {
22719
22740
  return e.find((e) => e.id === t);
22720
22741
  }
22721
22742
  //#endregion
22722
22743
  //#region src/unit-display.ts
22723
- function bE(e) {
22744
+ function CE(e) {
22724
22745
  if (e === void 0) return;
22725
22746
  let t = F(e);
22726
22747
  if (t !== void 0) return L(t);
22727
22748
  }
22728
- function xE(e, t, n) {
22749
+ function wE(e, t, n) {
22729
22750
  let r = t === void 0 ? void 0 : F(t), i = n === void 0 ? void 0 : F(n);
22730
22751
  if (r === void 0 || i === void 0 || r === i) return {
22731
22752
  value: e,
@@ -22740,7 +22761,7 @@ function xE(e, t, n) {
22740
22761
  unit: i
22741
22762
  };
22742
22763
  }
22743
- function SE(e, t) {
22764
+ function TE(e, t) {
22744
22765
  if (typeof e != "object" || !e || Array.isArray(e)) return;
22745
22766
  let n = { ...e }, r = t.split(".");
22746
22767
  if (r.length >= 1) {
@@ -22763,16 +22784,16 @@ function SE(e, t) {
22763
22784
  //#endregion
22764
22785
  //#region src/components/DeviceStateSourceEditor.tsx
22765
22786
  t();
22766
- function CE(e) {
22787
+ function EE(e) {
22767
22788
  return `${e.deviceId}:${e.capName}:${e.valuePath}`;
22768
22789
  }
22769
- function wE(e) {
22790
+ function DE(e) {
22770
22791
  let t = e.toLowerCase();
22771
22792
  if (t.includes("temp")) return "°C";
22772
22793
  if (t.includes("humid")) return "%";
22773
22794
  if (t.includes("pressure") || t.includes("hpa")) return "hPa";
22774
22795
  }
22775
- function TE(e) {
22796
+ function OE(e) {
22776
22797
  return e.map((e) => ({
22777
22798
  id: e.id,
22778
22799
  name: e.name,
@@ -22781,12 +22802,12 @@ function TE(e) {
22781
22802
  parentDeviceId: "parentDeviceId" in e && typeof e.parentDeviceId == "number" ? e.parentDeviceId : null
22782
22803
  }));
22783
22804
  }
22784
- function EE({ source: e, sources: t, pickerDevices: n, listState: r, onChange: i }) {
22785
- let o = l(() => TE(n), [n]), s = l(() => new Set(t.map((e) => e.deviceId)), [t]), [c, u] = a(void 0), d = e.deviceId, f = c ?? d, p = c !== void 0 && gE(yE(o, c)?.type) ? c : void 0, m = p === void 0 ? [] : vE(p, o, s), h = l(() => d === void 0 || p !== void 0 ? void 0 : dE(t, d), [
22805
+ function kE({ source: e, sources: t, pickerDevices: n, listState: r, onChange: i }) {
22806
+ let o = l(() => OE(n), [n]), s = l(() => new Set(t.map((e) => e.deviceId)), [t]), [c, u] = a(void 0), d = e.deviceId, f = c ?? d, p = c !== void 0 && yE(SE(o, c)?.type) ? c : void 0, m = p === void 0 ? [] : xE(p, o, s), h = l(() => d === void 0 || p !== void 0 ? void 0 : mE(t, d), [
22786
22807
  t,
22787
22808
  d,
22788
22809
  p
22789
- ]), g = d === void 0 || p !== void 0 ? void 0 : t.find((t) => t.deviceId === d && t.capName === e.capName && t.valuePath === e.valuePath), _ = wE(e.valuePath), v = bE(_);
22810
+ ]), g = d === void 0 || p !== void 0 ? void 0 : t.find((t) => t.deviceId === d && t.capName === e.capName && t.valuePath === e.valuePath), _ = DE(e.valuePath), v = CE(_);
22790
22811
  return /* @__PURE__ */ j("div", {
22791
22812
  className: "space-y-2",
22792
22813
  "data-testid": "osd-device-state-editor",
@@ -22807,8 +22828,8 @@ function EE({ source: e, sources: t, pickerDevices: n, listState: r, onChange: i
22807
22828
  });
22808
22829
  return;
22809
22830
  }
22810
- let a = yE(o, r);
22811
- if (a !== void 0 && gE(a.type)) {
22831
+ let a = SE(o, r);
22832
+ if (a !== void 0 && yE(a.type)) {
22812
22833
  u(r), i({
22813
22834
  kind: "device-state",
22814
22835
  capName: "",
@@ -22817,7 +22838,7 @@ function EE({ source: e, sources: t, pickerDevices: n, listState: r, onChange: i
22817
22838
  return;
22818
22839
  }
22819
22840
  u(void 0);
22820
- let s = dE(t, r), c = s.auto ?? fE(s.fields);
22841
+ let s = mE(t, r), c = s.auto ?? hE(s.fields);
22821
22842
  i(c ? {
22822
22843
  kind: "device-state",
22823
22844
  deviceId: r,
@@ -22862,7 +22883,7 @@ function EE({ source: e, sources: t, pickerDevices: n, listState: r, onChange: i
22862
22883
  onChange: (n) => {
22863
22884
  let r = Number(n.target.value);
22864
22885
  if (!Number.isFinite(r) || r <= 0) return;
22865
- let a = dE(t, r), o = a.auto ?? fE(a.fields);
22886
+ let a = mE(t, r), o = a.auto ?? hE(a.fields);
22866
22887
  i(o ? {
22867
22888
  kind: "device-state",
22868
22889
  deviceId: r,
@@ -22893,17 +22914,17 @@ function EE({ source: e, sources: t, pickerDevices: n, listState: r, onChange: i
22893
22914
  }), /* @__PURE__ */ A(po, {
22894
22915
  id: "osd-field-pick",
22895
22916
  "data-testid": "osd-field-pick",
22896
- value: CE(g || {
22917
+ value: EE(g || {
22897
22918
  deviceId: d ?? 0,
22898
22919
  capName: e.capName,
22899
22920
  valuePath: e.valuePath
22900
22921
  }),
22901
22922
  options: h.fields.map((e) => ({
22902
- value: CE(e),
22923
+ value: EE(e),
22903
22924
  label: e.label
22904
22925
  })),
22905
22926
  onChange: (t) => {
22906
- let n = h.fields.find((e) => CE(e) === t.target.value);
22927
+ let n = h.fields.find((e) => EE(e) === t.target.value);
22907
22928
  n && i({
22908
22929
  kind: "device-state",
22909
22930
  deviceId: n.deviceId,
@@ -22945,7 +22966,7 @@ function EE({ source: e, sources: t, pickerDevices: n, listState: r, onChange: i
22945
22966
  //#endregion
22946
22967
  //#region src/components/SourceEditor.tsx
22947
22968
  t();
22948
- var DE = [
22969
+ var AE = [
22949
22970
  {
22950
22971
  value: "static",
22951
22972
  label: "Static text"
@@ -22967,7 +22988,7 @@ var DE = [
22967
22988
  label: "Named template"
22968
22989
  }
22969
22990
  ];
22970
- function OE({ source: e, sources: t, pickerDevices: n, listState: r, templates: i, onChange: a }) {
22991
+ function jE({ source: e, sources: t, pickerDevices: n, listState: r, templates: i, onChange: a }) {
22971
22992
  let o = l(() => i.map((e) => ({
22972
22993
  value: e.id,
22973
22994
  label: e.name || e.id
@@ -22981,7 +23002,7 @@ function OE({ source: e, sources: t, pickerDevices: n, listState: r, templates:
22981
23002
  }), /* @__PURE__ */ A(po, {
22982
23003
  id: "osd-source-kind",
22983
23004
  value: e.kind,
22984
- options: DE,
23005
+ options: AE,
22985
23006
  onChange: (e) => {
22986
23007
  let t = e.target.value;
22987
23008
  if (t === "static") a({
@@ -23052,7 +23073,7 @@ function OE({ source: e, sources: t, pickerDevices: n, listState: r, templates:
23052
23073
  })
23053
23074
  })] })]
23054
23075
  }),
23055
- e.kind === "device-state" && /* @__PURE__ */ A(EE, {
23076
+ e.kind === "device-state" && /* @__PURE__ */ A(kE, {
23056
23077
  source: e,
23057
23078
  sources: t,
23058
23079
  pickerDevices: n,
@@ -23097,7 +23118,7 @@ function OE({ source: e, sources: t, pickerDevices: n, listState: r, templates:
23097
23118
  }
23098
23119
  //#endregion
23099
23120
  //#region src/components/ValueMapEditor.tsx
23100
- function kE({ valueMap: e, onChange: t }) {
23121
+ function ME({ valueMap: e, onChange: t }) {
23101
23122
  let n = Object.entries(e ?? {});
23102
23123
  function r(e) {
23103
23124
  if (e.length === 0) {
@@ -23157,13 +23178,13 @@ function kE({ valueMap: e, onChange: t }) {
23157
23178
  }
23158
23179
  //#endregion
23159
23180
  //#region src/components/ScheduleEditor.tsx
23160
- function AE(e, t, n) {
23181
+ function NE(e, t, n) {
23161
23182
  return {
23162
23183
  ...e,
23163
23184
  windows: e.windows.map((e, r) => r === t ? n : e)
23164
23185
  };
23165
23186
  }
23166
- function jE({ schedule: e, onChange: t }) {
23187
+ function PE({ schedule: e, onChange: t }) {
23167
23188
  let n = e !== void 0;
23168
23189
  return /* @__PURE__ */ j("div", {
23169
23190
  className: "space-y-3",
@@ -23171,7 +23192,7 @@ function jE({ schedule: e, onChange: t }) {
23171
23192
  className: "flex items-center gap-2 text-xs text-foreground",
23172
23193
  children: [/* @__PURE__ */ A(ss, {
23173
23194
  checked: n,
23174
- onChange: () => t(n ? void 0 : { windows: [iE()] })
23195
+ onChange: () => t(n ? void 0 : { windows: [sE()] })
23175
23196
  }), "Only show on a schedule"]
23176
23197
  }), e && /* @__PURE__ */ j("div", {
23177
23198
  className: "space-y-3",
@@ -23180,11 +23201,11 @@ function jE({ schedule: e, onChange: t }) {
23180
23201
  children: [
23181
23202
  /* @__PURE__ */ A("div", {
23182
23203
  className: "flex flex-wrap gap-1.5",
23183
- children: rE.map((i, a) => /* @__PURE__ */ A("button", {
23204
+ children: oE.map((i, a) => /* @__PURE__ */ A("button", {
23184
23205
  type: "button",
23185
23206
  "aria-pressed": n.days.includes(a),
23186
23207
  className: ["px-1.5 py-0.5 rounded text-[10px] font-medium", n.days.includes(a) ? "bg-primary text-primary-foreground" : "bg-surface-hover text-foreground-muted"].join(" "),
23187
- onClick: () => t(AE(e, r, sE(n, a))),
23208
+ onClick: () => t(NE(e, r, uE(n, a))),
23188
23209
  children: i
23189
23210
  }, a))
23190
23211
  }),
@@ -23197,10 +23218,10 @@ function jE({ schedule: e, onChange: t }) {
23197
23218
  id: `osd-schedule-start-${r}`,
23198
23219
  type: "time",
23199
23220
  className: "h-7 w-full px-2 text-xs bg-surface border border-border rounded-md text-foreground",
23200
- value: aE(n.startMinute),
23201
- onChange: (i) => t(AE(e, r, {
23221
+ value: cE(n.startMinute),
23222
+ onChange: (i) => t(NE(e, r, {
23202
23223
  ...n,
23203
- startMinute: oE(i.target.value)
23224
+ startMinute: lE(i.target.value)
23204
23225
  }))
23205
23226
  })] }), /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A(K, {
23206
23227
  htmlFor: `osd-schedule-end-${r}`,
@@ -23209,10 +23230,10 @@ function jE({ schedule: e, onChange: t }) {
23209
23230
  id: `osd-schedule-end-${r}`,
23210
23231
  type: "time",
23211
23232
  className: "h-7 w-full px-2 text-xs bg-surface border border-border rounded-md text-foreground",
23212
- value: aE(n.endMinute),
23213
- onChange: (i) => t(AE(e, r, {
23233
+ value: cE(n.endMinute),
23234
+ onChange: (i) => t(NE(e, r, {
23214
23235
  ...n,
23215
- endMinute: oE(i.target.value)
23236
+ endMinute: lE(i.target.value)
23216
23237
  }))
23217
23238
  })] })]
23218
23239
  }),
@@ -23233,7 +23254,7 @@ function jE({ schedule: e, onChange: t }) {
23233
23254
  size: "sm",
23234
23255
  onClick: () => t({
23235
23256
  ...e,
23236
- windows: [...e.windows, iE()]
23257
+ windows: [...e.windows, sE()]
23237
23258
  }),
23238
23259
  children: "Add window"
23239
23260
  })]
@@ -23242,8 +23263,8 @@ function jE({ schedule: e, onChange: t }) {
23242
23263
  }
23243
23264
  //#endregion
23244
23265
  //#region src/components/ConditionsEditor.tsx
23245
- function ME({ conditions: e, supported: t, devices: n, deviceStateSnapshot: r, onSelectDeviceStateDevice: i, onChange: a }) {
23246
- let o = t.includes("deviceState"), s = lE(r);
23266
+ function FE({ conditions: e, supported: t, devices: n, deviceStateSnapshot: r, onSelectDeviceStateDevice: i, onChange: a }) {
23267
+ let o = t.includes("deviceState"), s = fE(r);
23247
23268
  return /* @__PURE__ */ j("div", {
23248
23269
  className: "space-y-3",
23249
23270
  children: [o && /* @__PURE__ */ j("div", {
@@ -23254,7 +23275,7 @@ function ME({ conditions: e, supported: t, devices: n, deviceStateSnapshot: r, o
23254
23275
  children: [/* @__PURE__ */ A(K, { children: "Only while another device is in state" }), e?.deviceState && /* @__PURE__ */ A("button", {
23255
23276
  type: "button",
23256
23277
  className: "text-xs text-foreground-muted hover:text-foreground",
23257
- onClick: () => a(uE(e, "deviceState")),
23278
+ onClick: () => a(pE(e, "deviceState")),
23258
23279
  children: "Remove"
23259
23280
  })]
23260
23281
  }),
@@ -23270,7 +23291,7 @@ function ME({ conditions: e, supported: t, devices: n, deviceStateSnapshot: r, o
23270
23291
  }))],
23271
23292
  onChange: (t) => {
23272
23293
  let n = t.target.value === "" ? void 0 : Number(t.target.value);
23273
- i(n), a(n === void 0 ? uE(e, "deviceState") : {
23294
+ i(n), a(n === void 0 ? pE(e, "deviceState") : {
23274
23295
  ...e,
23275
23296
  deviceState: {
23276
23297
  deviceId: n,
@@ -23313,8 +23334,8 @@ function ME({ conditions: e, supported: t, devices: n, deviceStateSnapshot: r, o
23313
23334
  //#endregion
23314
23335
  //#region src/components/SlotEditor.tsx
23315
23336
  t();
23316
- function NE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i, pickerDevices: o, listState: s, templates: c, onClose: u, onSaved: d }) {
23317
- let [f, p] = a(() => RT(t)), [m, h] = a(f.conditions?.deviceState?.deviceId), [g, _] = a(void 0), v = gi({ deviceId: m ?? 0 }, { enabled: m !== void 0 }), y = xi(), b = Si(), x = wi(), S = y.isPending || b.isPending || x.isPending, C = y.error ?? b.error ?? x.error, w = l(() => [{
23337
+ function IE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i, pickerDevices: o, listState: s, templates: c, onClose: u, onSaved: d }) {
23338
+ let [f, p] = a(() => VT(t)), [m, h] = a(f.conditions?.deviceState?.deviceId), [g, _] = a(void 0), v = gi({ deviceId: m ?? 0 }, { enabled: m !== void 0 }), y = xi(), b = Si(), x = wi(), S = y.isPending || b.isPending || x.isPending, C = y.error ?? b.error ?? x.error, w = l(() => [{
23318
23339
  id: "value",
23319
23340
  label: "${value}",
23320
23341
  token: "${value}"
@@ -23326,7 +23347,7 @@ function NE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i,
23326
23347
  function T(e) {
23327
23348
  p((t) => ({
23328
23349
  ...t,
23329
- valueMap: zT(e) ?? t.valueMap
23350
+ valueMap: HT(e) ?? t.valueMap
23330
23351
  }));
23331
23352
  }
23332
23353
  async function E() {
@@ -23381,7 +23402,7 @@ function NE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i,
23381
23402
  }))
23382
23403
  }), "Binding enabled"]
23383
23404
  }),
23384
- /* @__PURE__ */ A(OE, {
23405
+ /* @__PURE__ */ A(jE, {
23385
23406
  source: f.source,
23386
23407
  sources: n,
23387
23408
  pickerDevices: o,
@@ -23391,7 +23412,7 @@ function NE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i,
23391
23412
  p((t) => ({
23392
23413
  ...t,
23393
23414
  source: e
23394
- })), T(BT(n, {
23415
+ })), T(UT(n, {
23395
23416
  ...f,
23396
23417
  source: e
23397
23418
  }));
@@ -23472,21 +23493,21 @@ function NE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i,
23472
23493
  })
23473
23494
  ]
23474
23495
  }),
23475
- /* @__PURE__ */ A(kE, {
23496
+ /* @__PURE__ */ A(ME, {
23476
23497
  valueMap: f.valueMap,
23477
23498
  onChange: (e) => p((t) => ({
23478
23499
  ...t,
23479
23500
  valueMap: e
23480
23501
  }))
23481
23502
  }),
23482
- /* @__PURE__ */ A(jE, {
23503
+ /* @__PURE__ */ A(PE, {
23483
23504
  schedule: f.schedule,
23484
23505
  onChange: (e) => p((t) => ({
23485
23506
  ...t,
23486
23507
  schedule: e
23487
23508
  }))
23488
23509
  }),
23489
- /* @__PURE__ */ A(ME, {
23510
+ /* @__PURE__ */ A(FE, {
23490
23511
  conditions: f.conditions,
23491
23512
  supported: r,
23492
23513
  devices: i,
@@ -23505,8 +23526,8 @@ function NE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i,
23505
23526
  g && /* @__PURE__ */ j("div", {
23506
23527
  className: "flex items-center gap-2 text-xs",
23507
23528
  children: [/* @__PURE__ */ A(Co, {
23508
- variant: nE(g.outcome),
23509
- children: eE(g.outcome)
23529
+ variant: aE(g.outcome),
23530
+ children: rE(g.outcome)
23510
23531
  }), /* @__PURE__ */ A("span", {
23511
23532
  className: "text-foreground-muted",
23512
23533
  children: g.text ? `"${g.text}"` : "(blank)"
@@ -23544,7 +23565,7 @@ function NE({ deviceId: e, slot: t, sources: n, conditionSupport: r, devices: i,
23544
23565
  //#endregion
23545
23566
  //#region src/components/DuplicateIntoAction.tsx
23546
23567
  t();
23547
- function PE({ source: e, destinations: t, onDuplicated: n }) {
23568
+ function LE({ source: e, destinations: t, onDuplicated: n }) {
23548
23569
  let [r, i] = a(!1), [o, s] = a(void 0), [c, l] = a(void 0), [u, d] = a(void 0), f = Ci();
23549
23570
  if (t.length === 0) return null;
23550
23571
  function p() {
@@ -23639,7 +23660,7 @@ function PE({ source: e, destinations: t, onDuplicated: n }) {
23639
23660
  //#endregion
23640
23661
  //#region src/components/CameraOsdRow.tsx
23641
23662
  t();
23642
- function FE({ cameraId: e, supportsOsd: t, onRefetchReady: n }) {
23663
+ function RE({ cameraId: e, supportsOsd: t, onRefetchReady: n }) {
23643
23664
  let r = vi({ deviceId: e }, { enabled: t });
23644
23665
  if (m(() => {
23645
23666
  t && n(e, () => void r.refetch());
@@ -23648,13 +23669,13 @@ function FE({ cameraId: e, supportsOsd: t, onRefetchReady: n }) {
23648
23669
  t,
23649
23670
  r.refetch
23650
23671
  ]), t && r.isLoading) return /* @__PURE__ */ A(un, { className: "h-3 w-3 animate-spin text-foreground-subtle" });
23651
- let i = HT(t, r.data?.slots ?? []);
23672
+ let i = GT(t, r.data?.slots ?? []);
23652
23673
  return /* @__PURE__ */ A(Co, {
23653
- variant: KT(i),
23654
- children: WT(i)
23674
+ variant: YT(i),
23675
+ children: qT(i)
23655
23676
  });
23656
23677
  }
23657
- function IE({ cameraId: e, supportsOsd: t, deviceNameById: n }) {
23678
+ function zE({ cameraId: e, supportsOsd: t, deviceNameById: n }) {
23658
23679
  let r = vi({ deviceId: e }, { enabled: t });
23659
23680
  if (!t) return /* @__PURE__ */ A("span", {
23660
23681
  className: "text-xs text-foreground-subtle",
@@ -23664,7 +23685,7 @@ function IE({ cameraId: e, supportsOsd: t, deviceNameById: n }) {
23664
23685
  className: "text-xs text-foreground-subtle",
23665
23686
  children: "Loading…"
23666
23687
  });
23667
- let i = ZT(r.data?.slots ?? [], n);
23688
+ let i = eE(r.data?.slots ?? [], n);
23668
23689
  return i.length === 0 ? /* @__PURE__ */ A("span", {
23669
23690
  className: "text-xs text-foreground-subtle",
23670
23691
  children: "No active sources"
@@ -23677,8 +23698,8 @@ function IE({ cameraId: e, supportsOsd: t, deviceNameById: n }) {
23677
23698
  }, e.key))
23678
23699
  });
23679
23700
  }
23680
- function LE({ camera: e, allDevices: t, conditionSupport: n, pickerDevices: r, listState: i, templates: o, destinations: s, onRefetchReady: c, refetchCamera: u }) {
23681
- let [d, f] = a(null), [p, h] = a(0), g = vi({ deviceId: e.id }, { enabled: e.supportsOsd }), _ = g.data?.slots ?? [], v = l(() => d !== null && _.some((e) => e.slotId === d) ? d : XT(_), [d, _]), y = _.find((e) => e.slotId === v), b = yi({ deviceId: e.id }, { enabled: e.supportsOsd && y !== void 0 && !y.readOnly }), x = Ti();
23701
+ function BE({ camera: e, allDevices: t, conditionSupport: n, pickerDevices: r, listState: i, templates: o, destinations: s, onRefetchReady: c, refetchCamera: u, activeSlotId: d, onActiveSlotIdChange: f }) {
23702
+ let [p, h] = a(0), g = vi({ deviceId: e.id }, { enabled: e.supportsOsd }), _ = g.data?.slots ?? [], v = l(() => d !== null && _.some((e) => e.slotId === d) ? d : $T(_), [d, _]), y = _.find((e) => e.slotId === v), b = yi({ deviceId: e.id }, { enabled: e.supportsOsd && y !== void 0 && !y.readOnly }), x = Ti();
23682
23703
  m(() => {
23683
23704
  e.supportsOsd && c(e.id, () => void g.refetch());
23684
23705
  }, [
@@ -23686,7 +23707,7 @@ function LE({ camera: e, allDevices: t, conditionSupport: n, pickerDevices: r, l
23686
23707
  e.supportsOsd,
23687
23708
  g.refetch
23688
23709
  ]), m(() => {
23689
- f(null), h(0);
23710
+ h(0);
23690
23711
  }, [e.id]);
23691
23712
  let S = g.error ?? b.error ?? x.error;
23692
23713
  return /* @__PURE__ */ j("div", {
@@ -23706,7 +23727,7 @@ function LE({ camera: e, allDevices: t, conditionSupport: n, pickerDevices: r, l
23706
23727
  disabled: x.isPending,
23707
23728
  onClick: () => x.mutate({ deviceId: e.id }, { onSuccess: () => void g.refetch() }),
23708
23729
  children: [x.isPending ? /* @__PURE__ */ A(un, { className: "h-3.5 w-3.5 animate-spin" }) : null, "Render now"]
23709
- }) : null, e.supportsOsd ? /* @__PURE__ */ A(PE, {
23730
+ }) : null, e.supportsOsd ? /* @__PURE__ */ A(LE, {
23710
23731
  source: e,
23711
23732
  destinations: s,
23712
23733
  onDuplicated: (e) => {
@@ -23740,9 +23761,9 @@ function LE({ camera: e, allDevices: t, conditionSupport: n, pickerDevices: r, l
23740
23761
  },
23741
23762
  children: /* @__PURE__ */ A(Rs, {
23742
23763
  className: "mb-3",
23743
- children: _.map((e) => /* @__PURE__ */ A(RE, { slot: e }, e.slotId))
23764
+ children: _.map((e) => /* @__PURE__ */ A(VE, { slot: e }, e.slotId))
23744
23765
  })
23745
- }), y === void 0 ? null : /* @__PURE__ */ A(zE, {
23766
+ }), y === void 0 ? null : /* @__PURE__ */ A(HE, {
23746
23767
  cameraId: e.id,
23747
23768
  slot: y,
23748
23769
  editorEpoch: p,
@@ -23760,18 +23781,18 @@ function LE({ camera: e, allDevices: t, conditionSupport: n, pickerDevices: r, l
23760
23781
  ]
23761
23782
  });
23762
23783
  }
23763
- function RE({ slot: e }) {
23764
- let t = qT(e);
23784
+ function VE({ slot: e }) {
23785
+ let t = XT(e);
23765
23786
  return /* @__PURE__ */ j(zs, {
23766
23787
  value: e.slotId,
23767
23788
  "data-testid": `osd-slot-tab-${e.slotId}`,
23768
23789
  children: [e.slotId, /* @__PURE__ */ A("span", {
23769
23790
  className: "ml-1.5 text-[10px] text-foreground-subtle",
23770
- children: YT(t)
23791
+ children: QT(t)
23771
23792
  })]
23772
23793
  });
23773
23794
  }
23774
- function zE({ cameraId: e, slot: t, editorEpoch: n, sources: r, conditionSupport: i, devices: a, pickerDevices: o, listState: s, templates: c, onSaved: l }) {
23795
+ function HE({ cameraId: e, slot: t, editorEpoch: n, sources: r, conditionSupport: i, devices: a, pickerDevices: o, listState: s, templates: c, onSaved: l }) {
23775
23796
  return t.readOnly ? /* @__PURE__ */ j("div", {
23776
23797
  className: "rounded-lg border border-border bg-surface p-4 space-y-2",
23777
23798
  "data-testid": "osd-slot-readonly",
@@ -23800,10 +23821,10 @@ function zE({ cameraId: e, slot: t, editorEpoch: n, sources: r, conditionSupport
23800
23821
  }),
23801
23822
  /* @__PURE__ */ A("p", {
23802
23823
  className: "text-xs text-foreground-subtle",
23803
- children: VT(t.binding)
23824
+ children: WT(t.binding)
23804
23825
  })
23805
23826
  ]
23806
- }) : /* @__PURE__ */ A(NE, {
23827
+ }) : /* @__PURE__ */ A(IE, {
23807
23828
  deviceId: e,
23808
23829
  slot: t,
23809
23830
  sources: r,
@@ -23818,24 +23839,24 @@ function zE({ cameraId: e, slot: t, editorEpoch: n, sources: r, conditionSupport
23818
23839
  //#endregion
23819
23840
  //#region src/components/CameraOsdTable.tsx
23820
23841
  t();
23821
- function BE({ cameras: e, osdCapableIds: t, allDevices: n, conditionSupport: r, pickerDevices: i, listState: s, templates: c }) {
23822
- let [u, d] = a(void 0), f = o(/* @__PURE__ */ new Map()), p = l(() => new Map(n.map((e) => [e.id, e.name])), [n]), m = l(() => e.map((e) => ({
23842
+ function UE({ cameras: e, osdCapableIds: t, allDevices: n, conditionSupport: r, pickerDevices: i, listState: a, templates: s, expandedCameraId: c, onExpandedCameraIdChange: u, activeSlotId: d, onActiveSlotIdChange: f }) {
23843
+ let p = o(/* @__PURE__ */ new Map()), m = l(() => new Map(n.map((e) => [e.id, e.name])), [n]), h = l(() => e.map((e) => ({
23823
23844
  id: e.id,
23824
23845
  name: e.name,
23825
23846
  supportsOsd: t.has(e.id)
23826
23847
  })), [e, t]);
23827
- function h(e, t) {
23828
- f.current.set(e, t);
23829
- }
23830
- function g(e) {
23831
- f.current.get(e)?.();
23848
+ function g(e, t) {
23849
+ p.current.set(e, t);
23832
23850
  }
23833
23851
  function _(e) {
23834
- d((t) => t === e ? void 0 : e);
23852
+ p.current.get(e)?.();
23853
+ }
23854
+ function v(e) {
23855
+ u(c === e ? void 0 : e);
23835
23856
  }
23836
23857
  return /* @__PURE__ */ A(qC, {
23837
23858
  mode: "generic",
23838
- items: m,
23859
+ items: h,
23839
23860
  getKey: (e) => String(e.id),
23840
23861
  getSearchText: (e) => e.name,
23841
23862
  getFilterType: (e) => e.supportsOsd ? "OSD capable" : "Unsupported",
@@ -23850,11 +23871,11 @@ function BE({ cameras: e, osdCapableIds: t, allDevices: n, conditionSupport: r,
23850
23871
  headerClassName: "w-8",
23851
23872
  cellClassName: "w-8",
23852
23873
  cell: (e) => {
23853
- let t = u === e.id;
23874
+ let t = c === e.id;
23854
23875
  return /* @__PURE__ */ A("button", {
23855
23876
  type: "button",
23856
23877
  onClick: (t) => {
23857
- t.stopPropagation(), _(e.id);
23878
+ t.stopPropagation(), v(e.id);
23858
23879
  },
23859
23880
  "aria-expanded": t,
23860
23881
  "aria-controls": `osd-camera-detail-${e.id}`,
@@ -23870,7 +23891,7 @@ function BE({ cameras: e, osdCapableIds: t, allDevices: n, conditionSupport: r,
23870
23891
  cell: (e) => /* @__PURE__ */ A("button", {
23871
23892
  type: "button",
23872
23893
  onClick: (t) => {
23873
- t.stopPropagation(), _(e.id);
23894
+ t.stopPropagation(), v(e.id);
23874
23895
  },
23875
23896
  className: "block max-w-full truncate text-left text-xs font-medium text-foreground hover:underline",
23876
23897
  children: e.name
@@ -23879,35 +23900,37 @@ function BE({ cameras: e, osdCapableIds: t, allDevices: n, conditionSupport: r,
23879
23900
  {
23880
23901
  key: "status",
23881
23902
  header: "Status",
23882
- cell: (e) => /* @__PURE__ */ A(FE, {
23903
+ cell: (e) => /* @__PURE__ */ A(RE, {
23883
23904
  cameraId: e.id,
23884
23905
  supportsOsd: e.supportsOsd,
23885
- onRefetchReady: h
23906
+ onRefetchReady: g
23886
23907
  })
23887
23908
  },
23888
23909
  {
23889
23910
  key: "sources",
23890
23911
  header: "Active sources",
23891
- cell: (e) => /* @__PURE__ */ A(IE, {
23912
+ cell: (e) => /* @__PURE__ */ A(zE, {
23892
23913
  cameraId: e.id,
23893
23914
  supportsOsd: e.supportsOsd,
23894
- deviceNameById: p
23915
+ deviceNameById: m
23895
23916
  })
23896
23917
  }
23897
- ], [p, u]),
23898
- isExpanded: (e) => u === e.id,
23918
+ ], [m, c]),
23919
+ isExpanded: (e) => c === e.id,
23899
23920
  renderExpanded: (e) => /* @__PURE__ */ A("div", {
23900
23921
  id: `osd-camera-detail-${e.id}`,
23901
- children: /* @__PURE__ */ A(LE, {
23922
+ children: /* @__PURE__ */ A(BE, {
23902
23923
  camera: e,
23903
23924
  allDevices: n,
23904
23925
  conditionSupport: r,
23905
23926
  pickerDevices: i,
23906
- listState: s,
23907
- templates: c,
23908
- destinations: m.filter((t) => t.id !== e.id && t.supportsOsd),
23909
- onRefetchReady: h,
23910
- refetchCamera: g
23927
+ listState: a,
23928
+ templates: s,
23929
+ destinations: h.filter((t) => t.id !== e.id && t.supportsOsd),
23930
+ onRefetchReady: g,
23931
+ refetchCamera: _,
23932
+ activeSlotId: d,
23933
+ onActiveSlotIdChange: f
23911
23934
  })
23912
23935
  }),
23913
23936
  searchPlaceholder: "Search cameras",
@@ -23916,7 +23939,7 @@ function BE({ cameras: e, osdCapableIds: t, allDevices: n, conditionSupport: r,
23916
23939
  }
23917
23940
  //#endregion
23918
23941
  //#region src/format.ts
23919
- function VE(e, t) {
23942
+ function WE(e, t) {
23920
23943
  if (!Number.isFinite(e)) return "";
23921
23944
  if (t <= 0) return String(Math.trunc(e));
23922
23945
  let n = 10 ** t, r = Math.trunc(e * n) / n;
@@ -23924,39 +23947,39 @@ function VE(e, t) {
23924
23947
  }
23925
23948
  //#endregion
23926
23949
  //#region src/template-tokens.ts
23927
- function HE(e, t = "full") {
23950
+ function GE(e, t = "full") {
23928
23951
  return t === "full" ? `{${e}}` : `{${e}.${t}}`;
23929
23952
  }
23930
- function UE(e) {
23953
+ function KE(e) {
23931
23954
  return `{${e}.full}`;
23932
23955
  }
23933
- function WE(e) {
23956
+ function qE(e) {
23934
23957
  let t = e.alias;
23935
23958
  return [
23936
23959
  {
23937
23960
  id: `${t}.value`,
23938
23961
  label: `${t} · value`,
23939
- token: HE(t, "value"),
23962
+ token: GE(t, "value"),
23940
23963
  kind: "value"
23941
23964
  },
23942
23965
  {
23943
23966
  id: `${t}.unit`,
23944
23967
  label: `${t} · unit`,
23945
- token: HE(t, "unit"),
23968
+ token: GE(t, "unit"),
23946
23969
  kind: "unit"
23947
23970
  },
23948
23971
  {
23949
23972
  id: `${t}.full`,
23950
23973
  label: `${t} · value+unit`,
23951
- token: UE(t),
23974
+ token: KE(t),
23952
23975
  kind: "full"
23953
23976
  }
23954
23977
  ];
23955
23978
  }
23956
- function GE(e, t, n) {
23979
+ function JE(e, t, n) {
23957
23980
  return e.replaceAll(t, n);
23958
23981
  }
23959
- function KE(e, t, n = "b") {
23982
+ function YE(e, t, n = "b") {
23960
23983
  let r = e.trim().toLowerCase().replace(/[^a-z0-9]+/g, "_").replace(/^_+|_+$/g, "").replace(/^(\d)/, "a$1").slice(0, 24), i = r.length > 0 ? r : n;
23961
23984
  if (!t.has(i)) return i;
23962
23985
  for (let e = 2; e < 1e3; e += 1) {
@@ -23967,72 +23990,72 @@ function KE(e, t, n = "b") {
23967
23990
  }
23968
23991
  //#endregion
23969
23992
  //#region src/named-template-render.ts
23970
- function qE(e, t, n) {
23993
+ function XE(e, t, n) {
23971
23994
  if (n === "value") return e;
23972
23995
  if (n === "unit") return t;
23973
23996
  let r = e.trim(), i = t.trim();
23974
23997
  return r === "" ? i : i === "" ? r : `${r} ${i}`;
23975
23998
  }
23976
- function JE(e, t) {
23999
+ function ZE(e, t) {
23977
24000
  let n = e.pick.deviceId, r = t.stateByDevice.get(n);
23978
24001
  if (r === void 0) return { reason: `no state mirrored for device ${n}` };
23979
24002
  let i = r[e.capName];
23980
24003
  if (i === void 0) return { reason: `device ${n} publishes no "${e.capName}" state` };
23981
- let a = pE(i, e.valuePath);
24004
+ let a = gE(i, e.valuePath);
23982
24005
  if (a === void 0) return { reason: `"${e.capName}.${e.valuePath}" is absent on device ${n}` };
23983
24006
  let o, s = "";
23984
24007
  if (typeof a == "number") {
23985
- let t = xE(a, SE(i, e.valuePath), e.displayUnit);
23986
- o = VE(t.value, e.maxDecimals), s = t.unit;
24008
+ let t = wE(a, TE(i, e.valuePath), e.displayUnit);
24009
+ o = WE(t.value, e.maxDecimals), s = t.unit;
23987
24010
  } else o = typeof a == "boolean" ? a ? "ON" : "OFF" : a === null ? "" : String(a);
23988
24011
  return {
23989
24012
  value: o,
23990
24013
  unit: s,
23991
- formatted: qE(o, s, "full")
24014
+ formatted: XE(o, s, "full")
23992
24015
  };
23993
24016
  }
23994
- function YE(e, t, n) {
24017
+ function QE(e, t, n) {
23995
24018
  let r = e;
23996
- return r = GE(r, UE(t), n.formatted), r = GE(r, HE(t, "value"), n.value), r = GE(r, HE(t, "unit"), n.unit), r = GE(r, HE(t, "full"), n.formatted), r;
24019
+ return r = JE(r, KE(t), n.formatted), r = JE(r, GE(t, "value"), n.value), r = JE(r, GE(t, "unit"), n.unit), r = JE(r, GE(t, "full"), n.formatted), r;
23997
24020
  }
23998
- function XE(e, t) {
24021
+ function $E(e, t) {
23999
24022
  let n = e.parser;
24000
24023
  if (e.bindings.length === 0) return n.trim() === "" ? { reason: `template "${e.id}" has no bindings` } : { text: n };
24001
24024
  for (let r of e.bindings) {
24002
- let e = JE(r, t);
24025
+ let e = ZE(r, t);
24003
24026
  if ("reason" in e) return e;
24004
- n = YE(n, r.alias, e);
24027
+ n = QE(n, r.alias, e);
24005
24028
  }
24006
24029
  return { text: n };
24007
24030
  }
24008
24031
  //#endregion
24009
24032
  //#region src/template-id.ts
24010
- function ZE() {
24033
+ function eD() {
24011
24034
  return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `tpl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
24012
24035
  }
24013
24036
  //#endregion
24014
24037
  //#region src/components/TemplatesPanel.tsx
24015
24038
  t();
24016
- var QE = 0;
24017
- function $E(e, t) {
24039
+ var tD = 0;
24040
+ function nD(e, t) {
24018
24041
  let n = /* @__PURE__ */ new Set();
24019
24042
  for (let r = 0; r < e.length; r += 1) r !== t && n.add(e[r].alias);
24020
24043
  return n;
24021
24044
  }
24022
- function eD(e) {
24045
+ function rD(e) {
24023
24046
  return {
24024
- alias: KE("sensor", e),
24025
- pick: { deviceId: QE },
24047
+ alias: YE("sensor", e),
24048
+ pick: { deviceId: tD },
24026
24049
  capName: "",
24027
24050
  valuePath: "",
24028
24051
  maxDecimals: 1
24029
24052
  };
24030
24053
  }
24031
- function tD(e) {
24054
+ function iD(e) {
24032
24055
  return e.pick.deviceId > 0 && e.capName !== "" && e.valuePath !== "" && e.alias !== "";
24033
24056
  }
24034
- function nD() {
24035
- let e = Ei({}), t = pi({ projection: "slim" }), n = Di(), r = Oi(), [i, o] = a(null), s = l(() => _E(t.data ?? []), [t.data]), c = t.isError ? "failed" : t.isSuccess ? "answered" : "pending", u = e.error ?? n.error ?? r.error;
24057
+ function aD() {
24058
+ let e = Ei({}), t = pi({ projection: "slim" }), n = Di(), r = Oi(), [i, o] = a(null), s = l(() => bE(t.data ?? []), [t.data]), c = t.isError ? "failed" : t.isSuccess ? "answered" : "pending", u = e.error ?? n.error ?? r.error;
24036
24059
  return /* @__PURE__ */ j("div", {
24037
24060
  className: "space-y-4",
24038
24061
  "data-testid": "osd-templates-panel",
@@ -24050,7 +24073,7 @@ function nD() {
24050
24073
  size: "sm",
24051
24074
  "data-testid": "osd-template-new",
24052
24075
  onClick: () => o({
24053
- id: ZE(),
24076
+ id: eD(),
24054
24077
  name: "New template",
24055
24078
  bindings: [],
24056
24079
  parser: ""
@@ -24107,7 +24130,7 @@ function nD() {
24107
24130
  })]
24108
24131
  }, t.id))
24109
24132
  }),
24110
- i !== null && /* @__PURE__ */ A(rD, {
24133
+ i !== null && /* @__PURE__ */ A(oD, {
24111
24134
  draft: i,
24112
24135
  pickerDevices: s,
24113
24136
  listState: c,
@@ -24121,11 +24144,11 @@ function nD() {
24121
24144
  ]
24122
24145
  });
24123
24146
  }
24124
- function rD({ draft: e, pickerDevices: t, listState: n, busy: r, onChange: i, onCancel: a, onSave: o }) {
24125
- let s = t.find((e) => !gE(e.type))?.id ?? 0, c = yi({ deviceId: s }, { enabled: s > 0 }).data?.sources ?? [], u = l(() => e.bindings.filter(tD).flatMap((e) => WE(e)), [e.bindings]), d = aD(e.bindings), f = l(() => XE({
24147
+ function oD({ draft: e, pickerDevices: t, listState: n, busy: r, onChange: i, onCancel: a, onSave: o }) {
24148
+ let s = t.find((e) => !yE(e.type))?.id ?? 0, c = yi({ deviceId: s }, { enabled: s > 0 }).data?.sources ?? [], u = l(() => e.bindings.filter(iD).flatMap((e) => qE(e)), [e.bindings]), d = cD(e.bindings), f = l(() => $E({
24126
24149
  ...e,
24127
- bindings: e.bindings.filter(tD)
24128
- }, { stateByDevice: d }), [e, d]), p = e.name.trim().length > 0 && e.bindings.every(tD);
24150
+ bindings: e.bindings.filter(iD)
24151
+ }, { stateByDevice: d }), [e, d]), p = e.name.trim().length > 0 && e.bindings.every(iD);
24129
24152
  return /* @__PURE__ */ j(xo, {
24130
24153
  className: "p-4 space-y-3",
24131
24154
  "data-testid": "osd-template-editor",
@@ -24157,10 +24180,10 @@ function rD({ draft: e, pickerDevices: t, listState: n, busy: r, onChange: i, on
24157
24180
  variant: "secondary",
24158
24181
  "data-testid": "osd-tpl-add-binding",
24159
24182
  onClick: () => {
24160
- let t = $E(e.bindings);
24183
+ let t = nD(e.bindings);
24161
24184
  i({
24162
24185
  ...e,
24163
- bindings: [...e.bindings, eD(t)]
24186
+ bindings: [...e.bindings, rD(t)]
24164
24187
  });
24165
24188
  },
24166
24189
  children: "Add binding"
@@ -24174,7 +24197,7 @@ function rD({ draft: e, pickerDevices: t, listState: n, busy: r, onChange: i, on
24174
24197
  className: "text-xs text-foreground-muted",
24175
24198
  children: "No bindings yet — add one to start."
24176
24199
  }),
24177
- e.bindings.map((r, a) => /* @__PURE__ */ A(iD, {
24200
+ e.bindings.map((r, a) => /* @__PURE__ */ A(sD, {
24178
24201
  binding: r,
24179
24202
  index: a,
24180
24203
  draft: e,
@@ -24232,18 +24255,18 @@ function rD({ draft: e, pickerDevices: t, listState: n, busy: r, onChange: i, on
24232
24255
  ]
24233
24256
  });
24234
24257
  }
24235
- function iD({ binding: e, index: t, draft: n, pickerDevices: r, listState: i, sources: o, stateByDevice: s, onChange: c }) {
24258
+ function sD({ binding: e, index: t, draft: n, pickerDevices: r, listState: i, sources: o, stateByDevice: s, onChange: c }) {
24236
24259
  let u = l(() => new Set(o.map((e) => e.deviceId)), [o]), [d, f] = a(e.pick.containerId);
24237
24260
  m(() => {
24238
24261
  f(e.pick.containerId);
24239
24262
  }, [e.pick.containerId, e.pick.deviceId]);
24240
- let p = e.pick.deviceId > 0 ? e.pick.deviceId : void 0, h = d ?? p, g = d !== void 0 && gE(yE(r, d)?.type) ? d : void 0, _ = g === void 0 ? [] : vE(g, r, u), v = p === void 0 ? void 0 : dE(o, p), y = p === void 0 ? void 0 : yE(r, p), b = e.pick.containerId === void 0 ? void 0 : yE(r, e.pick.containerId), x = g !== void 0 && p === void 0 ? `${yE(r, g)?.name ?? `#${g}`} › …` : b === void 0 ? y?.name ?? (p === void 0 ? "No device" : `#${e.pick.deviceId}`) : `${b.name} › ${y?.name ?? `#${e.pick.deviceId}`}`, S = tD(e) ? JE(e, { stateByDevice: s }) : { reason: "Pick a device and field" }, C = SE(p === void 0 ? void 0 : s.get(p)?.[e.capName], e.valuePath), w = bE(C), T = (e) => {
24263
+ let p = e.pick.deviceId > 0 ? e.pick.deviceId : void 0, h = d ?? p, g = d !== void 0 && yE(SE(r, d)?.type) ? d : void 0, _ = g === void 0 ? [] : xE(g, r, u), v = p === void 0 ? void 0 : mE(o, p), y = p === void 0 ? void 0 : SE(r, p), b = e.pick.containerId === void 0 ? void 0 : SE(r, e.pick.containerId), x = g !== void 0 && p === void 0 ? `${SE(r, g)?.name ?? `#${g}`} › …` : b === void 0 ? y?.name ?? (p === void 0 ? "No device" : `#${e.pick.deviceId}`) : `${b.name} › ${y?.name ?? `#${e.pick.deviceId}`}`, S = iD(e) ? ZE(e, { stateByDevice: s }) : { reason: "Pick a device and field" }, C = TE(p === void 0 ? void 0 : s.get(p)?.[e.capName], e.valuePath), w = CE(C), T = (e) => {
24241
24264
  c({
24242
24265
  ...n,
24243
24266
  bindings: n.bindings.map((n, r) => r === t ? e : n)
24244
24267
  });
24245
24268
  }, E = (i, a) => {
24246
- let s = dE(o, i), c = s.auto ?? fE(s.fields), l = yE(r, i), u = $E(n.bindings, t), d = e.alias !== "" && !u.has(e.alias) ? e.alias : KE(l?.name ?? c?.valuePath ?? "sensor", u);
24269
+ let s = mE(o, i), c = s.auto ?? hE(s.fields), l = SE(r, i), u = nD(n.bindings, t), d = e.alias !== "" && !u.has(e.alias) ? e.alias : YE(l?.name ?? c?.valuePath ?? "sensor", u);
24247
24270
  T({
24248
24271
  ...e,
24249
24272
  alias: d,
@@ -24267,12 +24290,12 @@ function iD({ binding: e, index: t, draft: n, pickerDevices: r, listState: i, so
24267
24290
  }), e.alias !== "" && /* @__PURE__ */ j("p", {
24268
24291
  className: "text-[10px] font-mono text-foreground-muted shrink-0",
24269
24292
  children: [
24270
- HE(e.alias),
24293
+ GE(e.alias),
24271
24294
  " · ",
24272
- HE(e.alias, "value"),
24295
+ GE(e.alias, "value"),
24273
24296
  " ·",
24274
24297
  " ",
24275
- HE(e.alias, "unit")
24298
+ GE(e.alias, "unit")
24276
24299
  ]
24277
24300
  })]
24278
24301
  }),
@@ -24289,19 +24312,19 @@ function iD({ binding: e, index: t, draft: n, pickerDevices: r, listState: i, so
24289
24312
  if (n === void 0) {
24290
24313
  f(void 0), T({
24291
24314
  ...e,
24292
- pick: { deviceId: QE },
24315
+ pick: { deviceId: tD },
24293
24316
  capName: "",
24294
24317
  valuePath: ""
24295
24318
  });
24296
24319
  return;
24297
24320
  }
24298
- let i = yE(r, n);
24299
- if (i !== void 0 && gE(i.type)) {
24321
+ let i = SE(r, n);
24322
+ if (i !== void 0 && yE(i.type)) {
24300
24323
  f(n), T({
24301
24324
  ...e,
24302
24325
  pick: {
24303
24326
  containerId: n,
24304
- deviceId: QE
24327
+ deviceId: tD
24305
24328
  },
24306
24329
  capName: "",
24307
24330
  valuePath: ""
@@ -24347,7 +24370,7 @@ function iD({ binding: e, index: t, draft: n, pickerDevices: r, listState: i, so
24347
24370
  value: e.alias,
24348
24371
  maxLength: 32,
24349
24372
  onChange: (r) => {
24350
- let i = r.target.value, a = $E(n.bindings, t);
24373
+ let i = r.target.value, a = nD(n.bindings, t);
24351
24374
  i !== "" && a.has(i) || T({
24352
24375
  ...e,
24353
24376
  alias: i
@@ -24423,7 +24446,7 @@ function iD({ binding: e, index: t, draft: n, pickerDevices: r, listState: i, so
24423
24446
  ]
24424
24447
  });
24425
24448
  }
24426
- function aD(e) {
24449
+ function cD(e) {
24427
24450
  let t = l(() => new Set(e.map((e) => e.pick.deviceId).filter((e) => e > 0)), [e]), n = _i({}, {
24428
24451
  enabled: t.size > 0,
24429
24452
  refetchInterval: 5e3
@@ -24441,14 +24464,21 @@ function aD(e) {
24441
24464
  //#endregion
24442
24465
  //#region src/page.tsx
24443
24466
  t();
24444
- function oD(e) {
24445
- let [t, n] = a("cameras"), r = pi({ projection: "slim" }), i = hi({}), o = Ei({}), s = l(() => (r.data ?? []).filter((e) => e.isCamera).map((e) => ({
24467
+ function lD(e) {
24468
+ return e === "templates" ? "templates" : "cameras";
24469
+ }
24470
+ function uD(e) {
24471
+ let [t, n] = NT("tab"), [r, i] = NT("device"), [a, o] = NT("slot"), s = lD(t), c = r !== null && /^\d+$/.test(r) ? Number(r) : void 0, u = (e) => {
24472
+ n(e === "cameras" ? null : e), e !== "cameras" && (i(null), o(null));
24473
+ }, d = (e) => {
24474
+ i(e === void 0 ? null : String(e)), e === void 0 && o(null);
24475
+ }, f = pi({ projection: "slim" }), p = hi({}), m = Ei({}), h = l(() => (f.data ?? []).filter((e) => e.isCamera).map((e) => ({
24446
24476
  id: e.id,
24447
24477
  name: e.name
24448
- })).toSorted((e, t) => e.name.localeCompare(t.name)), [r.data]), c = l(() => (r.data ?? []).map((e) => ({
24478
+ })).toSorted((e, t) => e.name.localeCompare(t.name)), [f.data]), g = l(() => (f.data ?? []).map((e) => ({
24449
24479
  id: e.id,
24450
24480
  name: e.name
24451
- })), [r.data]), u = l(() => _E(r.data ?? []), [r.data]), d = r.isError ? "failed" : r.isSuccess ? "answered" : "pending", f = l(() => new Set((i.data ?? []).filter((e) => e.entries.some((e) => e.capName === "osd")).map((e) => e.deviceId)), [i.data]), p = bi({}, { enabled: !0 }), m = r.error ?? i.error ?? p.error ?? o.error, h = r.isLoading || i.isLoading, g = h ? "Loading cameras…" : `${s.length} cameras · ${f.size} expose writable overlays · ${o.data?.templates.length ?? 0} templates`;
24481
+ })), [f.data]), _ = l(() => bE(f.data ?? []), [f.data]), v = f.isError ? "failed" : f.isSuccess ? "answered" : "pending", y = l(() => new Set((p.data ?? []).filter((e) => e.entries.some((e) => e.capName === "osd")).map((e) => e.deviceId)), [p.data]), b = bi({}, { enabled: !0 }), x = f.error ?? p.error ?? b.error ?? m.error, S = f.isLoading || p.isLoading, C = S ? "Loading cameras…" : `${h.length} cameras · ${y.size} expose writable overlays · ${m.data?.templates.length ?? 0} templates`;
24452
24482
  return /* @__PURE__ */ j("div", {
24453
24483
  className: "p-2 sm:p-4 space-y-4 overflow-x-clip",
24454
24484
  children: [
@@ -24461,13 +24491,13 @@ function oD(e) {
24461
24491
  children: [/* @__PURE__ */ A(xn, { className: "h-4 w-4 text-foreground-subtle shrink-0" }), "OSD Manager"]
24462
24492
  }), /* @__PURE__ */ A("p", {
24463
24493
  className: "text-xs text-foreground-subtle mt-0.5",
24464
- children: g
24494
+ children: C
24465
24495
  })]
24466
24496
  })
24467
24497
  }),
24468
24498
  /* @__PURE__ */ A(Ls, {
24469
- value: t,
24470
- onValueChange: (e) => n(e === "templates" ? "templates" : "cameras"),
24499
+ value: s,
24500
+ onValueChange: (e) => u(e === "templates" ? "templates" : "cameras"),
24471
24501
  children: /* @__PURE__ */ j(Rs, { children: [/* @__PURE__ */ A(zs, {
24472
24502
  value: "cameras",
24473
24503
  "data-testid": "osd-tab-cameras",
@@ -24478,37 +24508,41 @@ function oD(e) {
24478
24508
  children: "Templates"
24479
24509
  })] })
24480
24510
  }),
24481
- h ? /* @__PURE__ */ A("div", {
24511
+ S ? /* @__PURE__ */ A("div", {
24482
24512
  className: "flex items-center justify-center py-16",
24483
24513
  children: /* @__PURE__ */ A(un, { className: "h-6 w-6 animate-spin text-primary" })
24484
24514
  }) : null,
24485
- m && !h ? /* @__PURE__ */ A(yo, {
24486
- message: m.message,
24515
+ x && !S ? /* @__PURE__ */ A(yo, {
24516
+ message: x.message,
24487
24517
  title: "Could not load OSD data"
24488
24518
  }) : null,
24489
- !h && t === "templates" ? /* @__PURE__ */ A(xo, {
24519
+ !S && s === "templates" ? /* @__PURE__ */ A(xo, {
24490
24520
  className: "p-4",
24491
- children: /* @__PURE__ */ A(nD, {})
24521
+ children: /* @__PURE__ */ A(aD, {})
24492
24522
  }) : null,
24493
- !h && t === "cameras" && s.length === 0 ? /* @__PURE__ */ A("div", {
24523
+ !S && s === "cameras" && h.length === 0 ? /* @__PURE__ */ A("div", {
24494
24524
  className: "text-xs text-foreground-subtle text-center py-16",
24495
24525
  children: "No cameras are registered."
24496
24526
  }) : null,
24497
- !h && t === "cameras" && s.length > 0 ? /* @__PURE__ */ A(xo, {
24527
+ !S && s === "cameras" && h.length > 0 ? /* @__PURE__ */ A(xo, {
24498
24528
  className: "p-4",
24499
24529
  "data-testid": "osd-cameras",
24500
- children: /* @__PURE__ */ A(BE, {
24501
- cameras: s,
24502
- osdCapableIds: f,
24503
- allDevices: c,
24504
- conditionSupport: p.data?.supported ?? [],
24505
- pickerDevices: u,
24506
- listState: d,
24507
- templates: o.data?.templates ?? []
24530
+ children: /* @__PURE__ */ A(UE, {
24531
+ cameras: h,
24532
+ osdCapableIds: y,
24533
+ allDevices: g,
24534
+ conditionSupport: b.data?.supported ?? [],
24535
+ pickerDevices: _,
24536
+ listState: v,
24537
+ templates: m.data?.templates ?? [],
24538
+ expandedCameraId: c,
24539
+ onExpandedCameraIdChange: d,
24540
+ activeSlotId: a,
24541
+ onActiveSlotIdChange: o
24508
24542
  })
24509
24543
  }) : null
24510
24544
  ]
24511
24545
  });
24512
24546
  }
24513
24547
  //#endregion
24514
- export { oD as default };
24548
+ export { uD as default };