@camstack/addon-import-alexa 0.2.155 → 0.2.157

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 (20) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{MotionZonesSettings-BAg3ARov.mjs → MotionZonesSettings-Z-NRG681.mjs} +2 -2
  3. package/dist/{PrivacyMaskSettings-C0cYJFNC.mjs → PrivacyMaskSettings-DiS2hPpi.mjs} +4 -4
  4. package/dist/{SceneMonitorEditor-BL8xJKp6.mjs → SceneMonitorEditor-BYYK_XwY.mjs} +3 -3
  5. package/dist/_stub.js +610 -638
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_import_alexa_page-DIPd9Gv5.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_import_alexa_page-B4G6E4Vs.mjs} +3 -3
  7. package/dist/_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DCV5s91A.mjs +26 -0
  8. package/dist/addon-import-alexa.css +1 -1
  9. package/dist/addon.js +757 -97
  10. package/dist/addon.mjs +757 -97
  11. package/dist/{hostInit-M4qqEmdk.mjs → hostInit-DWBMKrvf.mjs} +2 -2
  12. package/dist/{player-overlays-COWyo9kN.mjs → player-overlays-5MrLqX2i.mjs} +1 -1
  13. package/dist/remoteEntry.js +1 -1
  14. package/dist/{responsive-CLpz8rKp.mjs → responsive-CsfyZVWS.mjs} +1 -1
  15. package/dist/{scene-monitor-copy-ciy3zaiU.mjs → scene-monitor-copy-DOuMmSwJ.mjs} +1 -1
  16. package/dist/{square-YnF15tkM.mjs → square-BGn7yRva.mjs} +1 -1
  17. package/dist/{trash-2-dnzK3zvI.mjs → trash-2-BiBTPv8Y.mjs} +1 -1
  18. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-FpscgjXK.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BniKFfAU.mjs} +1 -1
  19. package/package.json +1 -1
  20. package/dist/_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BU5ExEvB.mjs +0 -26
package/dist/_stub.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import { S as e, _ as t, a as n, b as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, p as f, t as p, u as m, v as h, y as g } from "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react__loadShare__.js-DwXXYAlk.mjs";
2
2
  import { n as _, r as v, t as y } from "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-CUiVYNMY.mjs";
3
3
  import { n as b, r as x } from "./ui-text-B5YO4hoJ.mjs";
4
- import { C as S, S as C, T as w, _ as T, a as ee, b as te, d as ne, f as re, g as ie, h as ae, i as oe, l as se, m as ce, n as le, o as E, p as ue, r as de, s as fe, t as pe, u as me, v as he, w as D, x as ge, y as _e } from "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BU5ExEvB.mjs";
5
- import { a as ve, c as ye, d as be, f as xe, h as O, i as Se, m as Ce, n as we, o as Te, r as Ee, t as De, u as Oe } from "./responsive-CLpz8rKp.mjs";
6
- import { d as ke, f as Ae, u as je } from "./scene-monitor-copy-ciy3zaiU.mjs";
7
- import { r as Me } from "./player-overlays-COWyo9kN.mjs";
8
- import { r as Ne, t as Pe } from "./square-YnF15tkM.mjs";
9
- import "./trash-2-dnzK3zvI.mjs";
4
+ import { C as S, S as C, T as w, _ as T, a as ee, b as te, d as ne, f as re, g as ie, h as ae, i as oe, l as se, m as ce, n as le, o as E, p as ue, r as de, s as fe, t as pe, u as me, v as he, w as D, x as ge, y as _e } from "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DCV5s91A.mjs";
5
+ import { a as ve, c as ye, d as be, f as xe, h as O, i as Se, m as Ce, n as we, o as Te, r as Ee, t as De, u as Oe } from "./responsive-CsfyZVWS.mjs";
6
+ import { d as ke, f as Ae, u as je } from "./scene-monitor-copy-DOuMmSwJ.mjs";
7
+ import { r as Me } from "./player-overlays-5MrLqX2i.mjs";
8
+ import { r as Ne, t as Pe } from "./square-BGn7yRva.mjs";
9
+ import "./trash-2-BiBTPv8Y.mjs";
10
10
  import { t as Fe } from "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-B3qxfxBT.mjs";
11
11
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react_mf_2_dom__loadShare__.js-CIPmAyPi.mjs";
12
12
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-Bct5qZia.mjs";
13
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-FpscgjXK.mjs";
13
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_import_alexa_page__remoteEntry_js-BniKFfAU.mjs";
14
14
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-tXm1x5EZ.mjs";
15
15
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-BHqOw8oh.mjs";
16
16
  import "./_virtual_mf___mfe_internal__addon_import_alexa_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-BmoaT3cr.mjs";
@@ -4205,9 +4205,9 @@ var ji = c(({ className: e, options: t, disabled: n, ...r }, i) => /* @__PURE__
4205
4205
  children: /* @__PURE__ */ _(Me, { className: "h-3.5 w-3.5" })
4206
4206
  })]
4207
4207
  }));
4208
- ji.displayName = "Select", e(), Ce("camstack:secret-reveal", null), k.accessories.setChildHidden.useMutation, k.accessories.getStatus.useQuery, k.addonPages.listPages.useQuery, k.addons.list.useQuery, k.addons.getLogs.useQuery, k.addons.listPackages.useQuery, k.addons.installPackage.useMutation, k.addons.installFromWorkspace.useMutation, k.addons.isWorkspaceAvailable.useQuery, k.addons.listWorkspacePackages.useQuery, k.addons.uninstallPackage.useMutation, k.addons.listInstallations.useQuery, k.addons.reloadPackages.useMutation, k.addons.searchAvailable.useQuery, k.addons.listUpdates.useQuery, k.addons.updatePackage.useMutation, k.addons.rollbackPackage.useMutation, k.addons.forceRefresh.useMutation, k.addons.restartServer.useMutation, k.addons.getLastRestart.useQuery, k.addons.listFrameworkPackages.useQuery, k.addons.listCapabilityProviders.useQuery, k.addons.setCapabilityProviderEnabled.useMutation, k.addons.getVersions.useQuery, k.addons.getPackageDocs.useQuery, k.addons.restartAddon.useMutation, k.addons.retryLoad.useMutation, k.addons.getAutoUpdateSettings.useQuery, k.addons.setAutoUpdateSettings.useMutation, k.addons.getAddonAutoUpdate.useQuery, k.addons.setAddonAutoUpdate.useMutation, k.addons.applyAutoUpdateToAll.useMutation;
4208
+ ji.displayName = "Select", e(), Ce("camstack:secret-reveal", null), k.accessories.setChildHidden.useMutation, k.accessories.getStatus.useQuery, k.actions.list.useQuery, k.actions.get.useQuery, k.actions.run.useMutation, k.actions.stop.useMutation, k.actions.getTraces.useQuery, k.actions.create.useMutation, k.actions.update.useMutation, k.actions.delete.useMutation, k.actions.listForCamera.useQuery, k.actions.getLinks.useQuery, k.actions.setLinks.useMutation, k.actionSource.listActions.useQuery, k.actionSource.runAction.useMutation, k.actionSource.stopAction.useMutation, k.addonPages.listPages.useQuery, k.addons.list.useQuery, k.addons.getLogs.useQuery, k.addons.listPackages.useQuery, k.addons.installPackage.useMutation, k.addons.installFromWorkspace.useMutation, k.addons.isWorkspaceAvailable.useQuery, k.addons.listWorkspacePackages.useQuery, k.addons.uninstallPackage.useMutation, k.addons.listInstallations.useQuery, k.addons.reloadPackages.useMutation, k.addons.searchAvailable.useQuery, k.addons.listUpdates.useQuery, k.addons.updatePackage.useMutation, k.addons.rollbackPackage.useMutation, k.addons.forceRefresh.useMutation, k.addons.restartServer.useMutation, k.addons.getLastRestart.useQuery, k.addons.listFrameworkPackages.useQuery, k.addons.listCapabilityProviders.useQuery, k.addons.setCapabilityProviderEnabled.useMutation, k.addons.getVersions.useQuery, k.addons.getPackageDocs.useQuery, k.addons.restartAddon.useMutation, k.addons.retryLoad.useMutation, k.addons.getAutoUpdateSettings.useQuery, k.addons.setAutoUpdateSettings.useMutation, k.addons.getAddonAutoUpdate.useQuery, k.addons.setAddonAutoUpdate.useMutation, k.addons.applyAutoUpdateToAll.useMutation;
4209
4209
  var Mi = k.addons.custom.useMutation;
4210
- k.addons.startJob.useMutation, k.addons.getJob.useQuery, k.addons.listJobs.useQuery, k.addons.cancelJob.useMutation, k.addons.onAddonLogs.useSubscription, k.addonSettings.getGlobalSettings.useQuery, k.addonSettings.updateGlobalSettings.useMutation, k.addonSettings.getIntegrationSettings.useQuery, k.addonSettings.getDeviceSettings.useQuery, k.addonSettings.updateDeviceSettings.useMutation, k.addonWidgets.listWidgets.useQuery, k.airQualitySensor.getStatus.useQuery, k.alarmPanel.arm.useMutation, k.alarmPanel.disarm.useMutation, k.alarmPanel.trigger.useMutation, k.alarmPanel.getStatus.useQuery, k.alerts.emit.useMutation, k.alerts.update.useMutation, k.alerts.list.useQuery, k.alerts.getUnreadCount.useQuery, k.alerts.markRead.useMutation, k.alerts.markAllRead.useMutation, k.alerts.dismiss.useMutation, k.ambientLightSensor.getStatus.useQuery, k.audioAnalysis.resolveDeviceSettings.useQuery, k.audioAnalysis.getDeviceSettingsContribution.useQuery, k.audioAnalysis.getDeviceLiveContribution.useQuery, k.audioAnalysis.applyDeviceSettingsPatch.useMutation, k.audioAnalyzer.analyseChunk.useMutation, k.audioAnalyzer.classify.useQuery, k.audioAnalyzer.attachDevice.useMutation, k.audioAnalyzer.detachDevice.useMutation, k.audioAnalyzer.isReady.useQuery, k.audioAnalyzer.dispose.useMutation, k.audioAnalyzer.reprobeAudioEngine.useMutation, k.audioCodec.listSupportedCodecs.useQuery, k.audioCodec.canHandle.useQuery, k.audioCodec.createDecodeSession.useMutation, k.audioCodec.createEncodeSession.useMutation, k.audioCodec.closeSession.useMutation, k.audioCodec.pushEncodedFrame.useMutation, k.audioCodec.pullPcm.useQuery, k.audioCodec.pushPcm.useMutation, k.audioCodec.pullEncoded.useQuery, k.audioCodec.flushEncode.useMutation, k.audioCodec.listActiveSessions.useQuery, k.audioMetrics.getCurrentSnapshot.useQuery, k.audioMetrics.getHistory.useQuery, k.automationControl.enable.useMutation, k.automationControl.disable.useMutation, k.automationControl.trigger.useMutation, k.automationControl.getStatus.useQuery, k.backup.listDestinations.useQuery, k.backup.trigger.useMutation, k.backup.listRuns.useQuery, k.backup.cancel.useMutation, k.backup.list.useQuery, k.backup.listLocations.useQuery, k.backup.getEntries.useQuery, k.backup.restore.useMutation, k.backup.getEncryption.useQuery, k.backup.setupEncryption.useMutation, k.backup.disableEncryption.useMutation, k.backup.checkBackupKey.useMutation, k.backup.delete.useMutation, k.backup.listArchives.useQuery, k.backup.upsertDestinationPolicy.useMutation, k.backup.previewSchedule.useQuery, k.backup.listSchedules.useQuery, k.backup.listAvailableDatabases.useQuery, k.backup.upsertSchedule.useMutation, k.backup.deleteSchedule.useMutation, k.battery.wakeForStream.useMutation, k.battery.getStatus.useQuery, k.binary.getStatus.useQuery, k.brightness.setBrightness.useMutation, k.brightness.getStatus.useQuery, k.broker.list.useQuery, k.broker.get.useQuery, k.broker.listProviders.useQuery, k.broker.add.useMutation, k.broker.remove.useMutation, k.broker.testConnection.useMutation, k.broker.getSettings.useQuery, k.broker.setSettings.useMutation, k.broker.getBrokerConfig.useQuery, k.broker.getSettingsSchema.useQuery, k.broker.testSettings.useMutation, k.broker.publish.useMutation, k.broker.subscribe.useMutation, k.broker.unsubscribe.useMutation, k.broker.getState.useQuery, k.broker.getStatus.useQuery, k.button.press.useMutation, k.calendars.listCalendars.useQuery, k.calendars.listEvents.useQuery, k.calendars.getPreferences.useQuery, k.calendars.setCalendarPreference.useMutation, k.cameraCredentials.getCredentials.useQuery, k.cameraCredentials.getStatus.useQuery, k.cameraGridLayout.getLayout.useQuery, k.cameraGridLayout.saveLayout.useMutation, k.cameraGridLayout.getDeviceSettingsContribution.useQuery, k.cameraGridLayout.getDeviceLiveContribution.useQuery, k.cameraGridLayout.applyDeviceSettingsPatch.useMutation, k.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, k.cameraPipelineConfig.getDeviceLiveContribution.useQuery, k.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, k.cameraStreams.getCameraStreams.useQuery, k.cameraStreams.getBrokerStreams.useQuery, k.cameraStreams.getRtspEntries.useQuery, k.cameraStreams.getProfileRtspEntries.useQuery, k.cameraStreams.pickStream.useQuery, k.carbonMonoxide.getStatus.useQuery, k.climateControl.setMode.useMutation, k.climateControl.setFanMode.useMutation, k.climateControl.setPreset.useMutation, k.climateControl.setTarget.useMutation, k.climateControl.setTargetRange.useMutation, k.climateControl.setTargetHumidity.useMutation, k.climateControl.setSwingVertical.useMutation, k.climateControl.setSwingHorizontal.useMutation, k.climateControl.getStatus.useQuery, k.color.setColor.useMutation, k.color.getStatus.useQuery, k.connectionTest.testSettings.useMutation, k.connectionTest.describeTest.useQuery, k.connectivity.getStatus.useQuery, k.consumables.reset.useMutation, k.consumables.getStatus.useQuery, k.contact.getStatus.useQuery, k.control.setValue.useMutation, k.control.getStatus.useQuery, k.coreBlocks.list.useQuery, k.coreBlocks.get.useQuery, k.coreBlocks.create.useMutation, k.coreBlocks.update.useMutation, k.coreBlocks.delete.useMutation, k.coreBlocks.setEnabled.useMutation, k.coreBlocks.restart.useMutation, k.coreBlocks.compile.useMutation, k.coreBlocks.getBlockSettings.useQuery, k.coreBlocks.updateBlockSettings.useMutation, k.coreBlocks.migrateRawSecrets.useMutation, k.coreBlocks.getTypeDefs.useQuery, k.coreBlocks.createComposition.useMutation, k.coreBlocks.updateComposition.useMutation, k.coreBlocks.getComposition.useQuery, k.coreBlocks.listCompositions.useQuery, k.coreBlocks.getCustomization.useQuery, k.coreBlocks.listComposableCaps.useQuery, k.coreBlocks.validateComposition.useMutation, k.cover.open.useMutation, k.cover.close.useMutation, k.cover.stop.useMutation, k.cover.setPosition.useMutation, k.cover.setTiltPosition.useMutation, k.cover.getStatus.useQuery, k.dayNight.getOptions.useQuery, k.dayNight.setSettings.useMutation, k.dayNight.getStatus.useQuery, k.decoder.getInfo.useQuery, k.decoder.reprobeHwaccel.useMutation, k.detectionPipeline.getDeviceSettingsContribution.useQuery, k.detectionPipeline.getDeviceLiveContribution.useQuery, k.detectionPipeline.applyDeviceSettingsPatch.useMutation, k.deviceAdminLink.getAdminLink.useQuery, k.deviceAdoption.listCandidateFilters.useQuery, k.deviceAdoption.listCandidates.useQuery, k.deviceAdoption.getCandidate.useQuery, k.deviceAdoption.refresh.useMutation, k.deviceAdoption.adopt.useMutation, k.deviceAdoption.release.useMutation, k.deviceAdoption.resync.useMutation, k.deviceAdoption.getStatus.useQuery, k.deviceCredentials.listDeviceCredentials.useQuery, k.deviceCredentials.startEnrollment.useMutation, k.deviceCredentials.revokeDeviceCredential.useMutation, k.deviceCredentials.getDeviceCertificateSettings.useQuery, k.deviceCredentials.setDeviceCertificateSettings.useMutation, k.deviceCredentials.deleteDeviceCredential.useMutation, k.deviceCredentials.getDeviceCaStatus.useQuery, k.deviceCredentials.renameDeviceCredential.useMutation, k.deviceDiscovery.listDiscovered.useQuery, k.deviceDiscovery.refreshDiscovery.useMutation, k.deviceDiscovery.adoptDevice.useMutation, k.deviceDiscovery.releaseDevice.useMutation, k.deviceDiscovery.getStatus.useQuery, k.deviceExport.getStatus.useQuery, k.deviceExport.listSupportedDeviceKinds.useQuery, k.deviceExport.listExposedDevices.useQuery, k.deviceExport.exposeDevice.useMutation, k.deviceExport.unexposeDevice.useMutation, k.deviceExport.getDeviceSettingsContribution.useQuery, k.deviceExport.getDeviceLiveContribution.useQuery, k.deviceExport.applyDeviceSettingsPatch.useMutation, k.deviceExtension.listSources.useQuery, k.deviceExtension.listSlots.useQuery, k.deviceExtension.listCandidates.useQuery, k.deviceExtension.setSlot.useMutation, k.deviceHistory.listSeries.useQuery, k.deviceHistory.listNodeSeries.useQuery, k.deviceHistory.query.useQuery, k.deviceHistory.queryNode.useQuery, k.deviceHistory.queryMany.useQuery, k.deviceHistory.declareSeries.useMutation, k.deviceHistory.record.useMutation, k.deviceHistory.recordBuckets.useMutation, k.deviceHistory.getDeviceEnabled.useQuery, k.deviceHistory.setDeviceEnabled.useMutation, k.deviceHistory.getStatus.useQuery, k.deviceHistory.listOrphanSeries.useQuery, k.deviceHistory.deleteOrphanSeries.useMutation, k.deviceManager.allocateDeviceId.useMutation, k.deviceManager.migrateDevice.useMutation, k.deviceManager.registerDevice.useMutation, k.deviceManager.removeDevice.useMutation, k.deviceManager.persistConfig.useMutation, k.deviceManager.loadConfig.useQuery, k.deviceManager.loadRuntimeState.useQuery, k.deviceManager.loadMeta.useQuery, k.deviceManager.setName.useMutation, k.deviceManager.setLocation.useMutation, k.deviceManager.setType.useMutation, k.deviceManager.setIntegrationId.useMutation, k.deviceManager.setLinkDeviceId.useMutation, k.deviceManager.setPrimaryChildEntityId.useMutation, k.deviceManager.setChildLayout.useMutation, k.deviceManager.setDisplay.useMutation;
4210
+ k.addons.startJob.useMutation, k.addons.getJob.useQuery, k.addons.listJobs.useQuery, k.addons.cancelJob.useMutation, k.addons.onAddonLogs.useSubscription, k.addonSettings.getGlobalSettings.useQuery, k.addonSettings.updateGlobalSettings.useMutation, k.addonSettings.getIntegrationSettings.useQuery, k.addonSettings.getDeviceSettings.useQuery, k.addonSettings.updateDeviceSettings.useMutation, k.addonWidgets.listWidgets.useQuery, k.airQualitySensor.getStatus.useQuery, k.alarmPanel.arm.useMutation, k.alarmPanel.disarm.useMutation, k.alarmPanel.trigger.useMutation, k.alarmPanel.getStatus.useQuery, k.alerts.emit.useMutation, k.alerts.update.useMutation, k.alerts.list.useQuery, k.alerts.getUnreadCount.useQuery, k.alerts.markRead.useMutation, k.alerts.markAllRead.useMutation, k.alerts.dismiss.useMutation, k.ambientLightSensor.getStatus.useQuery, k.audioAnalysis.resolveDeviceSettings.useQuery, k.audioAnalysis.getDeviceSettingsContribution.useQuery, k.audioAnalysis.getDeviceLiveContribution.useQuery, k.audioAnalysis.applyDeviceSettingsPatch.useMutation, k.audioAnalyzer.analyseChunk.useMutation, k.audioAnalyzer.classify.useQuery, k.audioAnalyzer.attachDevice.useMutation, k.audioAnalyzer.detachDevice.useMutation, k.audioAnalyzer.isReady.useQuery, k.audioAnalyzer.dispose.useMutation, k.audioAnalyzer.reprobeAudioEngine.useMutation, k.audioCodec.listSupportedCodecs.useQuery, k.audioCodec.canHandle.useQuery, k.audioCodec.createDecodeSession.useMutation, k.audioCodec.createEncodeSession.useMutation, k.audioCodec.closeSession.useMutation, k.audioCodec.pushEncodedFrame.useMutation, k.audioCodec.pullPcm.useQuery, k.audioCodec.pushPcm.useMutation, k.audioCodec.pullEncoded.useQuery, k.audioCodec.flushEncode.useMutation, k.audioCodec.listActiveSessions.useQuery, k.audioMetrics.getCurrentSnapshot.useQuery, k.audioMetrics.getHistory.useQuery, k.automationControl.enable.useMutation, k.automationControl.disable.useMutation, k.automationControl.trigger.useMutation, k.automationControl.getStatus.useQuery, k.backup.listDestinations.useQuery, k.backup.trigger.useMutation, k.backup.listRuns.useQuery, k.backup.cancel.useMutation, k.backup.list.useQuery, k.backup.listLocations.useQuery, k.backup.getEntries.useQuery, k.backup.restore.useMutation, k.backup.getEncryption.useQuery, k.backup.setupEncryption.useMutation, k.backup.disableEncryption.useMutation, k.backup.checkBackupKey.useMutation, k.backup.delete.useMutation, k.backup.listArchives.useQuery, k.backup.upsertDestinationPolicy.useMutation, k.backup.previewSchedule.useQuery, k.backup.listSchedules.useQuery, k.backup.listAvailableDatabases.useQuery, k.backup.upsertSchedule.useMutation, k.backup.deleteSchedule.useMutation, k.battery.wakeForStream.useMutation, k.battery.getStatus.useQuery, k.binary.getStatus.useQuery, k.brightness.setBrightness.useMutation, k.brightness.getStatus.useQuery, k.broker.list.useQuery, k.broker.get.useQuery, k.broker.listProviders.useQuery, k.broker.add.useMutation, k.broker.remove.useMutation, k.broker.testConnection.useMutation, k.broker.getSettings.useQuery, k.broker.setSettings.useMutation, k.broker.getBrokerConfig.useQuery, k.broker.getSettingsSchema.useQuery, k.broker.testSettings.useMutation, k.broker.publish.useMutation, k.broker.subscribe.useMutation, k.broker.unsubscribe.useMutation, k.broker.getState.useQuery, k.broker.getStatus.useQuery, k.button.press.useMutation, k.calendars.listCalendars.useQuery, k.calendars.listEvents.useQuery, k.calendars.getPreferences.useQuery, k.calendars.setCalendarPreference.useMutation, k.cameraCredentials.getCredentials.useQuery, k.cameraCredentials.getStatus.useQuery, k.cameraGridLayout.getLayout.useQuery, k.cameraGridLayout.saveLayout.useMutation, k.cameraGridLayout.getDeviceSettingsContribution.useQuery, k.cameraGridLayout.getDeviceLiveContribution.useQuery, k.cameraGridLayout.applyDeviceSettingsPatch.useMutation, k.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, k.cameraPipelineConfig.getDeviceLiveContribution.useQuery, k.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, k.cameraStreams.getCameraStreams.useQuery, k.cameraStreams.getBrokerStreams.useQuery, k.cameraStreams.getRtspEntries.useQuery, k.cameraStreams.getProfileRtspEntries.useQuery, k.cameraStreams.pickStream.useQuery, k.carbonMonoxide.getStatus.useQuery, k.climateControl.setMode.useMutation, k.climateControl.setFanMode.useMutation, k.climateControl.setPreset.useMutation, k.climateControl.setTarget.useMutation, k.climateControl.setTargetRange.useMutation, k.climateControl.setTargetHumidity.useMutation, k.climateControl.setSwingVertical.useMutation, k.climateControl.setSwingHorizontal.useMutation, k.climateControl.getStatus.useQuery, k.color.setColor.useMutation, k.color.getStatus.useQuery, k.connectionTest.testSettings.useMutation, k.connectionTest.describeTest.useQuery, k.connectivity.getStatus.useQuery, k.consumables.reset.useMutation, k.consumables.getStatus.useQuery, k.contact.getStatus.useQuery, k.control.setValue.useMutation, k.control.getStatus.useQuery, k.coreBlocks.list.useQuery, k.coreBlocks.get.useQuery, k.coreBlocks.create.useMutation, k.coreBlocks.update.useMutation, k.coreBlocks.delete.useMutation, k.coreBlocks.setEnabled.useMutation, k.coreBlocks.restart.useMutation, k.coreBlocks.compile.useMutation, k.coreBlocks.getBlockSettings.useQuery, k.coreBlocks.updateBlockSettings.useMutation, k.coreBlocks.migrateRawSecrets.useMutation, k.coreBlocks.getTypeDefs.useQuery, k.coreBlocks.createComposition.useMutation, k.coreBlocks.updateComposition.useMutation, k.coreBlocks.getComposition.useQuery, k.coreBlocks.listCompositions.useQuery, k.coreBlocks.getCustomization.useQuery, k.coreBlocks.listComposableCaps.useQuery, k.coreBlocks.validateComposition.useMutation, k.coreBlocks.reportAutomationRun.useMutation, k.coreBlocks.getAutomationRunState.useQuery, k.coreBlocks.getTraces.useQuery, k.cover.open.useMutation, k.cover.close.useMutation, k.cover.stop.useMutation, k.cover.setPosition.useMutation, k.cover.setTiltPosition.useMutation, k.cover.getStatus.useQuery, k.dayNight.getOptions.useQuery, k.dayNight.setSettings.useMutation, k.dayNight.getStatus.useQuery, k.decoder.getInfo.useQuery, k.decoder.reprobeHwaccel.useMutation, k.detectionPipeline.getDeviceSettingsContribution.useQuery, k.detectionPipeline.getDeviceLiveContribution.useQuery, k.detectionPipeline.applyDeviceSettingsPatch.useMutation, k.deviceAdminLink.getAdminLink.useQuery, k.deviceAdoption.listCandidateFilters.useQuery, k.deviceAdoption.listCandidates.useQuery, k.deviceAdoption.getCandidate.useQuery, k.deviceAdoption.refresh.useMutation, k.deviceAdoption.adopt.useMutation, k.deviceAdoption.release.useMutation, k.deviceAdoption.resync.useMutation, k.deviceAdoption.getStatus.useQuery, k.deviceCredentials.listDeviceCredentials.useQuery, k.deviceCredentials.startEnrollment.useMutation, k.deviceCredentials.revokeDeviceCredential.useMutation, k.deviceCredentials.getDeviceCertificateSettings.useQuery, k.deviceCredentials.setDeviceCertificateSettings.useMutation, k.deviceCredentials.deleteDeviceCredential.useMutation, k.deviceCredentials.getDeviceCaStatus.useQuery, k.deviceCredentials.renameDeviceCredential.useMutation, k.deviceDiscovery.listDiscovered.useQuery, k.deviceDiscovery.refreshDiscovery.useMutation, k.deviceDiscovery.adoptDevice.useMutation, k.deviceDiscovery.releaseDevice.useMutation, k.deviceDiscovery.getStatus.useQuery, k.deviceExport.getStatus.useQuery, k.deviceExport.listSupportedDeviceKinds.useQuery, k.deviceExport.listExposedDevices.useQuery, k.deviceExport.exposeDevice.useMutation, k.deviceExport.unexposeDevice.useMutation, k.deviceExport.getDeviceSettingsContribution.useQuery, k.deviceExport.getDeviceLiveContribution.useQuery, k.deviceExport.applyDeviceSettingsPatch.useMutation, k.deviceExtension.listSources.useQuery, k.deviceExtension.listSlots.useQuery, k.deviceExtension.listCandidates.useQuery, k.deviceExtension.setSlot.useMutation, k.deviceHistory.listSeries.useQuery, k.deviceHistory.listNodeSeries.useQuery, k.deviceHistory.query.useQuery, k.deviceHistory.queryNode.useQuery, k.deviceHistory.queryMany.useQuery, k.deviceHistory.declareSeries.useMutation, k.deviceHistory.record.useMutation, k.deviceHistory.recordBuckets.useMutation, k.deviceHistory.getDeviceEnabled.useQuery, k.deviceHistory.setDeviceEnabled.useMutation, k.deviceHistory.getStatus.useQuery, k.deviceHistory.listOrphanSeries.useQuery, k.deviceHistory.deleteOrphanSeries.useMutation, k.deviceManager.allocateDeviceId.useMutation, k.deviceManager.migrateDevice.useMutation, k.deviceManager.registerDevice.useMutation, k.deviceManager.removeDevice.useMutation, k.deviceManager.persistConfig.useMutation, k.deviceManager.loadConfig.useQuery, k.deviceManager.loadRuntimeState.useQuery, k.deviceManager.loadMeta.useQuery, k.deviceManager.setName.useMutation, k.deviceManager.setLocation.useMutation, k.deviceManager.setType.useMutation, k.deviceManager.setIntegrationId.useMutation, k.deviceManager.setLinkDeviceId.useMutation, k.deviceManager.setPrimaryChildEntityId.useMutation, k.deviceManager.setChildLayout.useMutation, k.deviceManager.setDisplay.useMutation;
4211
4211
  var Ni = k.deviceManager.getRoleDisplayDefaults.useQuery;
4212
4212
  k.deviceManager.setRoleDisplayDefaults.useMutation, k.deviceManager.getWireableFields.useQuery, k.deviceManager.setRole.useMutation, k.deviceManager.applyInitialMeta.useMutation, k.deviceManager.setMetadata.useMutation, k.deviceManager.listLocations.useQuery, k.deviceManager.addLocation.useMutation, k.deviceManager.removeLocation.useMutation, k.deviceManager.renameLocation.useMutation, k.deviceManager.listLocationIcons.useQuery, k.deviceManager.setLocationIcon.useMutation, k.deviceManager.listLocationDescriptions.useQuery, k.deviceManager.setLocationDescription.useMutation, k.deviceManager.listSiteZones.useQuery, k.deviceManager.setSiteZone.useMutation, k.deviceManager.removeSiteZone.useMutation, k.deviceManager.renameSiteZone.useMutation, k.deviceManager.setLocationZone.useMutation, k.deviceManager.setDisabled.useMutation, k.deviceManager.listPersistedByAddon.useQuery, k.deviceManager.listAll.useQuery;
4213
4213
  var Pi = k.deviceManager.getDevice.useQuery;
@@ -7957,11 +7957,56 @@ var Xd = {
7957
7957
  vibration: "detected",
7958
7958
  tamper: "tampered"
7959
7959
  };
7960
+ new Set([
7961
+ {
7962
+ id: "person",
7963
+ name: "Person"
7964
+ },
7965
+ {
7966
+ id: "vehicle",
7967
+ name: "Vehicle"
7968
+ },
7969
+ {
7970
+ id: "animal",
7971
+ name: "Animal"
7972
+ },
7973
+ {
7974
+ id: "package",
7975
+ name: "Package"
7976
+ }
7977
+ ].map((e) => e.id));
7978
+ var Zd = {
7979
+ mapping: {
7980
+ person: "person",
7981
+ bicycle: "vehicle",
7982
+ car: "vehicle",
7983
+ motorcycle: "vehicle",
7984
+ airplane: "vehicle",
7985
+ bus: "vehicle",
7986
+ train: "vehicle",
7987
+ truck: "vehicle",
7988
+ boat: "vehicle",
7989
+ bird: "animal",
7990
+ cat: "animal",
7991
+ dog: "animal",
7992
+ horse: "animal",
7993
+ sheep: "animal",
7994
+ cow: "animal",
7995
+ elephant: "animal",
7996
+ bear: "animal",
7997
+ zebra: "animal",
7998
+ giraffe: "animal",
7999
+ suitcase: "package",
8000
+ backpack: "package",
8001
+ handbag: "package"
8002
+ },
8003
+ preserveOriginal: !1
8004
+ };
7960
8005
  G({
7961
8006
  field: B().min(1),
7962
8007
  on: q("advance")
7963
8008
  });
7964
- var Zd = G({
8009
+ var Qd = G({
7965
8010
  id: B(),
7966
8011
  title: B(),
7967
8012
  description: B().optional(),
@@ -7989,7 +8034,7 @@ G({
7989
8034
  icon: B(),
7990
8035
  order: H().optional()
7991
8036
  })).optional(),
7992
- sections: W(Zd)
8037
+ sections: W(Qd)
7993
8038
  }).nullable(), G({ deviceId: H() }), G({ deviceId: H() }), G({
7994
8039
  deviceId: H(),
7995
8040
  patch: $u(B(), zu())
@@ -8006,13 +8051,13 @@ function J(e, t, n) {
8006
8051
  timeoutMs: n?.timeoutMs
8007
8052
  };
8008
8053
  }
8009
- function Qd(e, t, n) {
8054
+ function $d(e, t, n) {
8010
8055
  return {
8011
8056
  ...J(e, t, n),
8012
8057
  providerOptional: !0
8013
8058
  };
8014
8059
  }
8015
- var $d = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.charts.communication.connectivity.cursors.design.development.devices.emoji.files.finance.food-beverage.gaming.home.layout.mail.math.medical.multimedia.nature.navigation.notifications.people.photography.science.seasons.security.shapes.shopping.social.sports.sustainability.text.time.tools.transportation.travel.weather".split("."), ef = /* @__PURE__ */ "a-arrow-down.a-arrow-up.a-large-small.accessibility.activity.air-vent.airplay.alarm-clock.alarm-clock-check.alarm-clock-minus.alarm-clock-off.alarm-clock-plus.alarm-smoke.album.align-center-horizontal.align-center-vertical.align-end-horizontal.align-end-vertical.align-horizontal-distribute-center.align-horizontal-distribute-end.align-horizontal-distribute-start.align-horizontal-justify-center.align-horizontal-justify-end.align-horizontal-justify-start.align-horizontal-space-around.align-horizontal-space-between.align-start-horizontal.align-start-vertical.align-vertical-distribute-center.align-vertical-distribute-end.align-vertical-distribute-start.align-vertical-justify-center.align-vertical-justify-end.align-vertical-justify-start.align-vertical-space-around.align-vertical-space-between.ambulance.ampersand.ampersands.amphora.anchor.angry.annoyed.antenna.anvil.aperture.app-window.app-window-mac.apple.archive.archive-restore.archive-x.armchair.arrow-big-down.arrow-big-down-dash.arrow-big-left.arrow-big-left-dash.arrow-big-right.arrow-big-right-dash.arrow-big-up.arrow-big-up-dash.arrow-down.arrow-down-0-1.arrow-down-1-0.arrow-down-a-z.arrow-down-from-line.arrow-down-left.arrow-down-narrow-wide.arrow-down-right.arrow-down-to-dot.arrow-down-to-line.arrow-down-up.arrow-down-wide-narrow.arrow-down-z-a.arrow-left.arrow-left-from-line.arrow-left-right.arrow-left-to-line.arrow-right.arrow-right-from-line.arrow-right-left.arrow-right-to-line.arrow-up.arrow-up-0-1.arrow-up-1-0.arrow-up-a-z.arrow-up-down.arrow-up-from-dot.arrow-up-from-line.arrow-up-left.arrow-up-narrow-wide.arrow-up-right.arrow-up-to-line.arrow-up-wide-narrow.arrow-up-z-a.arrows-up-from-line.asterisk.at-sign.atom.audio-lines.audio-waveform.award.axe.axis-3d.baby.backpack.badge.badge-alert.badge-cent.badge-check.badge-dollar-sign.badge-euro.badge-indian-rupee.badge-info.badge-japanese-yen.badge-minus.badge-percent.badge-plus.badge-pound-sterling.badge-question-mark.badge-russian-ruble.badge-swiss-franc.badge-turkish-lira.badge-x.baggage-claim.balloon.ban.banana.bandage.banknote.banknote-arrow-down.banknote-arrow-up.banknote-x.barcode.barrel.baseline.bath.battery.battery-charging.battery-full.battery-low.battery-medium.battery-plus.battery-warning.beaker.bean.bean-off.bed.bed-double.bed-single.beef.beer.beer-off.bell.bell-dot.bell-electric.bell-minus.bell-off.bell-plus.bell-ring.between-horizontal-end.between-horizontal-start.between-vertical-end.between-vertical-start.biceps-flexed.bike.binary.binoculars.biohazard.bird.birdhouse.bitcoin.blend.blinds.blocks.bluetooth.bluetooth-connected.bluetooth-off.bluetooth-searching.bold.bolt.bomb.bone.book.book-a.book-alert.book-audio.book-check.book-copy.book-dashed.book-down.book-headphones.book-heart.book-image.book-key.book-lock.book-marked.book-minus.book-open.book-open-check.book-open-text.book-plus.book-search.book-text.book-type.book-up.book-up-2.book-user.book-x.bookmark.bookmark-check.bookmark-minus.bookmark-plus.bookmark-x.boom-box.bot.bot-message-square.bot-off.bottle-wine.bow-arrow.box.boxes.braces.brackets.brain.brain-circuit.brain-cog.brick-wall.brick-wall-fire.brick-wall-shield.briefcase.briefcase-business.briefcase-conveyor-belt.briefcase-medical.bring-to-front.brush.brush-cleaning.bubbles.bug.bug-off.bug-play.building.building-2.bus.bus-front.cable.cable-car.cake.cake-slice.calculator.calendar.calendar-1.calendar-arrow-down.calendar-arrow-up.calendar-check.calendar-check-2.calendar-clock.calendar-cog.calendar-days.calendar-fold.calendar-heart.calendar-minus.calendar-minus-2.calendar-off.calendar-plus.calendar-plus-2.calendar-range.calendar-search.calendar-sync.calendar-x.calendar-x-2.calendars.camera.camera-off.candy.candy-cane.candy-off.cannabis.cannabis-off.captions.captions-off.car.car-front.car-taxi-front.caravan.card-sim.carrot.case-lower.case-sensitive.case-upper.cassette-tape.cast.castle.cat.cctv.chart-area.chart-bar.chart-bar-big.chart-bar-decreasing.chart-bar-increasing.chart-bar-stacked.chart-candlestick.chart-column.chart-column-big.chart-column-decreasing.chart-column-increasing.chart-column-stacked.chart-gantt.chart-line.chart-network.chart-no-axes-column.chart-no-axes-column-decreasing.chart-no-axes-column-increasing.chart-no-axes-combined.chart-no-axes-gantt.chart-pie.chart-scatter.chart-spline.check.check-check.check-line.chef-hat.cherry.chess-bishop.chess-king.chess-knight.chess-pawn.chess-queen.chess-rook.chevron-down.chevron-first.chevron-last.chevron-left.chevron-right.chevron-up.chevrons-down.chevrons-down-up.chevrons-left.chevrons-left-right.chevrons-left-right-ellipsis.chevrons-right.chevrons-right-left.chevrons-up.chevrons-up-down.church.cigarette.cigarette-off.circle.circle-alert.circle-arrow-down.circle-arrow-left.circle-arrow-out-down-left.circle-arrow-out-down-right.circle-arrow-out-up-left.circle-arrow-out-up-right.circle-arrow-right.circle-arrow-up.circle-check.circle-check-big.circle-chevron-down.circle-chevron-left.circle-chevron-right.circle-chevron-up.circle-dashed.circle-divide.circle-dollar-sign.circle-dot.circle-dot-dashed.circle-ellipsis.circle-equal.circle-fading-arrow-up.circle-fading-plus.circle-gauge.circle-minus.circle-off.circle-parking.circle-parking-off.circle-pause.circle-percent.circle-pile.circle-play.circle-plus.circle-pound-sterling.circle-power.circle-question-mark.circle-slash.circle-slash-2.circle-small.circle-star.circle-stop.circle-user.circle-user-round.circle-x.circuit-board.citrus.clapperboard.clipboard.clipboard-check.clipboard-clock.clipboard-copy.clipboard-list.clipboard-minus.clipboard-paste.clipboard-pen.clipboard-pen-line.clipboard-plus.clipboard-type.clipboard-x.clock.clock-1.clock-10.clock-11.clock-12.clock-2.clock-3.clock-4.clock-5.clock-6.clock-7.clock-8.clock-9.clock-alert.clock-arrow-down.clock-arrow-up.clock-check.clock-fading.clock-plus.closed-caption.cloud.cloud-alert.cloud-backup.cloud-check.cloud-cog.cloud-download.cloud-drizzle.cloud-fog.cloud-hail.cloud-lightning.cloud-moon.cloud-moon-rain.cloud-off.cloud-rain.cloud-rain-wind.cloud-snow.cloud-sun.cloud-sun-rain.cloud-sync.cloud-upload.cloudy.clover.club.code.code-xml.coffee.cog.coins.columns-2.columns-3.columns-3-cog.columns-4.combine.command.compass.component.computer.concierge-bell.cone.construction.contact.contact-round.container.contrast.cookie.cooking-pot.copy.copy-check.copy-minus.copy-plus.copy-slash.copy-x.copyleft.copyright.corner-down-left.corner-down-right.corner-left-down.corner-left-up.corner-right-down.corner-right-up.corner-up-left.corner-up-right.cpu.creative-commons.credit-card.croissant.crop.cross.crosshair.crown.cuboid.cup-soda.currency.cylinder.dam.database.database-backup.database-search.database-zap.decimals-arrow-left.decimals-arrow-right.delete.dessert.diameter.diamond.diamond-minus.diamond-percent.diamond-plus.dice-1.dice-2.dice-3.dice-4.dice-5.dice-6.dices.diff.disc.disc-2.disc-3.disc-album.divide.dna.dna-off.dock.dog.dollar-sign.donut.door-closed.door-closed-locked.door-open.dot.download.drafting-compass.drama.drill.drone.droplet.droplet-off.droplets.drum.drumstick.dumbbell.ear.ear-off.earth.earth-lock.eclipse.egg.egg-fried.egg-off.ellipsis.ellipsis-vertical.equal.equal-approximately.equal-not.eraser.ethernet-port.euro.ev-charger.expand.external-link.eye.eye-closed.eye-off.factory.fan.fast-forward.feather.fence.ferris-wheel.file.file-archive.file-axis-3d.file-badge.file-box.file-braces.file-braces-corner.file-chart-column.file-chart-column-increasing.file-chart-line.file-chart-pie.file-check.file-check-corner.file-clock.file-code.file-code-corner.file-cog.file-diff.file-digit.file-down.file-exclamation-point.file-headphone.file-heart.file-image.file-input.file-key.file-lock.file-minus.file-minus-corner.file-music.file-output.file-pen.file-pen-line.file-play.file-plus.file-plus-corner.file-question-mark.file-scan.file-search.file-search-corner.file-signal.file-sliders.file-spreadsheet.file-stack.file-symlink.file-terminal.file-text.file-type.file-type-corner.file-up.file-user.file-video-camera.file-volume.file-x.file-x-corner.files.film.fingerprint-pattern.fire-extinguisher.fish.fish-off.fish-symbol.fishing-hook.fishing-rod.flag.flag-off.flag-triangle-left.flag-triangle-right.flame.flame-kindling.flashlight.flashlight-off.flask-conical.flask-conical-off.flask-round.flip-horizontal-2.flip-vertical-2.flower.flower-2.focus.fold-horizontal.fold-vertical.folder.folder-archive.folder-check.folder-clock.folder-closed.folder-code.folder-cog.folder-dot.folder-down.folder-git.folder-git-2.folder-heart.folder-input.folder-kanban.folder-key.folder-lock.folder-minus.folder-open.folder-open-dot.folder-output.folder-pen.folder-plus.folder-root.folder-search.folder-search-2.folder-symlink.folder-sync.folder-tree.folder-up.folder-x.folders.footprints.forklift.form.forward.frame.frown.fuel.fullscreen.funnel.funnel-plus.funnel-x.gallery-horizontal.gallery-horizontal-end.gallery-thumbnails.gallery-vertical.gallery-vertical-end.gamepad.gamepad-2.gamepad-directional.gauge.gavel.gem.georgian-lari.ghost.gift.git-branch.git-branch-minus.git-branch-plus.git-commit-horizontal.git-commit-vertical.git-compare.git-compare-arrows.git-fork.git-graph.git-merge.git-merge-conflict.git-pull-request.git-pull-request-arrow.git-pull-request-closed.git-pull-request-create.git-pull-request-create-arrow.git-pull-request-draft.glass-water.glasses.globe.globe-lock.globe-off.globe-x.goal.gpu.graduation-cap.grape.grid-2x2.grid-2x2-check.grid-2x2-plus.grid-2x2-x.grid-3x2.grid-3x3.grip.grip-horizontal.grip-vertical.group.guitar.ham.hamburger.hammer.hand.hand-coins.hand-fist.hand-grab.hand-heart.hand-helping.hand-metal.hand-platter.handbag.handshake.hard-drive.hard-drive-download.hard-drive-upload.hard-hat.hash.hat-glasses.haze.hd.hdmi-port.heading.heading-1.heading-2.heading-3.heading-4.heading-5.heading-6.headphone-off.headphones.headset.heart.heart-crack.heart-handshake.heart-minus.heart-off.heart-plus.heart-pulse.heater.helicopter.hexagon.highlighter.history.hop.hop-off.hospital.hotel.hourglass.house.house-heart.house-plug.house-plus.house-wifi.ice-cream-bowl.ice-cream-cone.id-card.id-card-lanyard.image.image-down.image-minus.image-off.image-play.image-plus.image-up.image-upscale.images.import.inbox.indian-rupee.infinity.info.inspection-panel.italic.iteration-ccw.iteration-cw.japanese-yen.joystick.kanban.kayak.key.key-round.key-square.keyboard.keyboard-music.keyboard-off.lamp.lamp-ceiling.lamp-desk.lamp-floor.lamp-wall-down.lamp-wall-up.land-plot.landmark.languages.laptop.laptop-minimal.laptop-minimal-check.lasso.lasso-select.laugh.layers.layers-2.layers-plus.layout-dashboard.layout-grid.layout-list.layout-panel-left.layout-panel-top.layout-template.leaf.leafy-green.lectern.lens-concave.lens-convex.library.library-big.life-buoy.ligature.lightbulb.lightbulb-off.line-dot-right-horizontal.line-squiggle.link.link-2.link-2-off.list.list-check.list-checks.list-chevrons-down-up.list-chevrons-up-down.list-collapse.list-end.list-filter.list-filter-plus.list-indent-decrease.list-indent-increase.list-minus.list-music.list-ordered.list-plus.list-restart.list-start.list-todo.list-tree.list-video.list-x.loader.loader-circle.loader-pinwheel.locate.locate-fixed.locate-off.lock.lock-keyhole.lock-keyhole-open.lock-open.log-in.log-out.logs.lollipop.luggage.magnet.mail.mail-check.mail-minus.mail-open.mail-plus.mail-question-mark.mail-search.mail-warning.mail-x.mailbox.mails.map.map-minus.map-pin.map-pin-check.map-pin-check-inside.map-pin-house.map-pin-minus.map-pin-minus-inside.map-pin-off.map-pin-pen.map-pin-plus.map-pin-plus-inside.map-pin-x.map-pin-x-inside.map-pinned.map-plus.mars.mars-stroke.martini.maximize.maximize-2.medal.megaphone.megaphone-off.meh.memory-stick.menu.merge.message-circle.message-circle-check.message-circle-code.message-circle-dashed.message-circle-heart.message-circle-more.message-circle-off.message-circle-plus.message-circle-question-mark.message-circle-reply.message-circle-warning.message-circle-x.message-square.message-square-check.message-square-code.message-square-dashed.message-square-diff.message-square-dot.message-square-heart.message-square-lock.message-square-more.message-square-off.message-square-plus.message-square-quote.message-square-reply.message-square-share.message-square-text.message-square-warning.message-square-x.messages-square.metronome.mic.mic-off.mic-vocal.microchip.microscope.microwave.milestone.milk.milk-off.minimize.minimize-2.minus.mirror-rectangular.mirror-round.monitor.monitor-check.monitor-cloud.monitor-cog.monitor-dot.monitor-down.monitor-off.monitor-pause.monitor-play.monitor-smartphone.monitor-speaker.monitor-stop.monitor-up.monitor-x.moon.moon-star.motorbike.mountain.mountain-snow.mouse.mouse-left.mouse-off.mouse-pointer.mouse-pointer-2.mouse-pointer-2-off.mouse-pointer-ban.mouse-pointer-click.mouse-right.move.move-3d.move-diagonal.move-diagonal-2.move-down.move-down-left.move-down-right.move-horizontal.move-left.move-right.move-up.move-up-left.move-up-right.move-vertical.music.music-2.music-3.music-4.navigation.navigation-2.navigation-2-off.navigation-off.network.newspaper.nfc.non-binary.notebook.notebook-pen.notebook-tabs.notebook-text.notepad-text.notepad-text-dashed.nut.nut-off.octagon.octagon-alert.octagon-minus.octagon-pause.octagon-x.omega.option.orbit.origami.package.package-2.package-check.package-minus.package-open.package-plus.package-search.package-x.paint-bucket.paint-roller.paintbrush.paintbrush-vertical.palette.panda.panel-bottom.panel-bottom-close.panel-bottom-dashed.panel-bottom-open.panel-left.panel-left-close.panel-left-dashed.panel-left-open.panel-left-right-dashed.panel-right.panel-right-close.panel-right-dashed.panel-right-open.panel-top.panel-top-bottom-dashed.panel-top-close.panel-top-dashed.panel-top-open.panels-left-bottom.panels-right-bottom.panels-top-left.paperclip.parentheses.parking-meter.party-popper.pause.paw-print.pc-case.pen.pen-line.pen-off.pen-tool.pencil.pencil-line.pencil-off.pencil-ruler.pentagon.percent.person-standing.philippine-peso.phone.phone-call.phone-forwarded.phone-incoming.phone-missed.phone-off.phone-outgoing.pi.piano.pickaxe.picture-in-picture.picture-in-picture-2.piggy-bank.pilcrow.pilcrow-left.pilcrow-right.pill.pill-bottle.pin.pin-off.pipette.pizza.plane.plane-landing.plane-takeoff.play.plug.plug-2.plug-zap.plus.pocket-knife.podcast.pointer.pointer-off.popcorn.popsicle.pound-sterling.power.power-off.presentation.printer.printer-check.printer-x.projector.proportions.puzzle.pyramid.qr-code.quote.rabbit.radar.radiation.radical.radio.radio-receiver.radio-tower.radius.rainbow.rat.ratio.receipt.receipt-cent.receipt-euro.receipt-indian-rupee.receipt-japanese-yen.receipt-pound-sterling.receipt-russian-ruble.receipt-swiss-franc.receipt-text.receipt-turkish-lira.rectangle-circle.rectangle-ellipsis.rectangle-goggles.rectangle-horizontal.rectangle-vertical.recycle.redo.redo-2.redo-dot.refresh-ccw.refresh-ccw-dot.refresh-cw.refresh-cw-off.refrigerator.regex.remove-formatting.repeat.repeat-1.repeat-2.replace.replace-all.reply.reply-all.rewind.ribbon.rocket.rocking-chair.roller-coaster.rose.rotate-3d.rotate-ccw.rotate-ccw-key.rotate-ccw-square.rotate-cw.rotate-cw-square.route.route-off.router.rows-2.rows-3.rows-4.rss.ruler.ruler-dimension-line.russian-ruble.sailboat.salad.sandwich.satellite.satellite-dish.saudi-riyal.save.save-all.save-off.scale.scale-3d.scaling.scan.scan-barcode.scan-eye.scan-face.scan-heart.scan-line.scan-qr-code.scan-search.scan-text.school.scissors.scissors-line-dashed.scooter.screen-share.screen-share-off.scroll.scroll-text.search.search-alert.search-check.search-code.search-slash.search-x.section.send.send-horizontal.send-to-back.separator-horizontal.separator-vertical.server.server-cog.server-crash.server-off.settings.settings-2.shapes.share.share-2.sheet.shell.shelving-unit.shield.shield-alert.shield-ban.shield-check.shield-ellipsis.shield-half.shield-minus.shield-off.shield-plus.shield-question-mark.shield-user.shield-x.ship.ship-wheel.shirt.shopping-bag.shopping-basket.shopping-cart.shovel.shower-head.shredder.shrimp.shrink.shrub.shuffle.sigma.signal.signal-high.signal-low.signal-medium.signal-zero.signature.signpost.signpost-big.siren.skip-back.skip-forward.skull.slash.slice.sliders-horizontal.sliders-vertical.smartphone.smartphone-charging.smartphone-nfc.smile.smile-plus.snail.snowflake.soap-dispenser-droplet.sofa.solar-panel.soup.space.spade.sparkle.sparkles.speaker.speech.spell-check.spell-check-2.spline.spline-pointer.split.spool.spotlight.spray-can.sprout.square.square-activity.square-arrow-down.square-arrow-down-left.square-arrow-down-right.square-arrow-left.square-arrow-out-down-left.square-arrow-out-down-right.square-arrow-out-up-left.square-arrow-out-up-right.square-arrow-right.square-arrow-right-enter.square-arrow-right-exit.square-arrow-up.square-arrow-up-left.square-arrow-up-right.square-asterisk.square-bottom-dashed-scissors.square-centerline-dashed-horizontal.square-centerline-dashed-vertical.square-chart-gantt.square-check.square-check-big.square-chevron-down.square-chevron-left.square-chevron-right.square-chevron-up.square-code.square-dashed.square-dashed-bottom.square-dashed-bottom-code.square-dashed-kanban.square-dashed-mouse-pointer.square-dashed-top-solid.square-divide.square-dot.square-equal.square-function.square-kanban.square-library.square-m.square-menu.square-minus.square-mouse-pointer.square-parking.square-parking-off.square-pause.square-pen.square-percent.square-pi.square-pilcrow.square-play.square-plus.square-power.square-radical.square-round-corner.square-scissors.square-sigma.square-slash.square-split-horizontal.square-split-vertical.square-square.square-stack.square-star.square-stop.square-terminal.square-user.square-user-round.square-x.squares-exclude.squares-intersect.squares-subtract.squares-unite.squircle.squircle-dashed.squirrel.stamp.star.star-half.star-off.step-back.step-forward.stethoscope.sticker.sticky-note.stone.store.stretch-horizontal.stretch-vertical.strikethrough.subscript.sun.sun-dim.sun-medium.sun-moon.sun-snow.sunrise.sunset.superscript.swatch-book.swiss-franc.switch-camera.sword.swords.syringe.table.table-2.table-cells-merge.table-cells-split.table-columns-split.table-of-contents.table-properties.table-rows-split.tablet.tablet-smartphone.tablets.tag.tags.tally-1.tally-2.tally-3.tally-4.tally-5.tangent.target.telescope.tent.tent-tree.terminal.test-tube.test-tube-diagonal.test-tubes.text-align-center.text-align-end.text-align-justify.text-align-start.text-cursor.text-cursor-input.text-initial.text-quote.text-search.text-select.text-wrap.theater.thermometer.thermometer-snowflake.thermometer-sun.thumbs-down.thumbs-up.ticket.ticket-check.ticket-minus.ticket-percent.ticket-plus.ticket-slash.ticket-x.tickets.tickets-plane.timer.timer-off.timer-reset.toggle-left.toggle-right.toilet.tool-case.toolbox.tornado.torus.touchpad.touchpad-off.towel-rack.tower-control.toy-brick.tractor.traffic-cone.train-front.train-front-tunnel.train-track.tram-front.transgender.trash.trash-2.tree-deciduous.tree-palm.tree-pine.trees.trending-down.trending-up.trending-up-down.triangle.triangle-alert.triangle-dashed.triangle-right.trophy.truck.truck-electric.turkish-lira.turntable.turtle.tv.tv-minimal.tv-minimal-play.type.type-outline.umbrella.umbrella-off.underline.undo.undo-2.undo-dot.unfold-horizontal.unfold-vertical.ungroup.university.unlink.unlink-2.unplug.upload.usb.user.user-check.user-cog.user-key.user-lock.user-minus.user-pen.user-plus.user-round.user-round-check.user-round-cog.user-round-key.user-round-minus.user-round-pen.user-round-plus.user-round-search.user-round-x.user-search.user-star.user-x.users.users-round.utensils.utensils-crossed.utility-pole.van.variable.vault.vector-square.vegan.venetian-mask.venus.venus-and-mars.vibrate.vibrate-off.video.video-off.videotape.view.voicemail.volleyball.volume.volume-1.volume-2.volume-off.volume-x.vote.wallet.wallet-cards.wallet-minimal.wallpaper.wand.wand-sparkles.warehouse.washing-machine.watch.waves.waves-arrow-down.waves-arrow-up.waves-ladder.waypoints.webcam.webhook.webhook-off.weight.weight-tilde.wheat.wheat-off.whole-word.wifi.wifi-cog.wifi-high.wifi-low.wifi-off.wifi-pen.wifi-sync.wifi-zero.wind.wind-arrow-down.wine.wine-off.workflow.worm.wrench.x.x-line-top.zap.zap-off.zodiac-aquarius.zodiac-aries.zodiac-cancer.zodiac-capricorn.zodiac-gemini.zodiac-leo.zodiac-libra.zodiac-ophiuchus.zodiac-pisces.zodiac-sagittarius.zodiac-scorpio.zodiac-taurus.zodiac-virgo.zoom-in.zoom-out".split("."), tf = [
8060
+ var ef = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.charts.communication.connectivity.cursors.design.development.devices.emoji.files.finance.food-beverage.gaming.home.layout.mail.math.medical.multimedia.nature.navigation.notifications.people.photography.science.seasons.security.shapes.shopping.social.sports.sustainability.text.time.tools.transportation.travel.weather".split("."), tf = /* @__PURE__ */ "a-arrow-down.a-arrow-up.a-large-small.accessibility.activity.air-vent.airplay.alarm-clock.alarm-clock-check.alarm-clock-minus.alarm-clock-off.alarm-clock-plus.alarm-smoke.album.align-center-horizontal.align-center-vertical.align-end-horizontal.align-end-vertical.align-horizontal-distribute-center.align-horizontal-distribute-end.align-horizontal-distribute-start.align-horizontal-justify-center.align-horizontal-justify-end.align-horizontal-justify-start.align-horizontal-space-around.align-horizontal-space-between.align-start-horizontal.align-start-vertical.align-vertical-distribute-center.align-vertical-distribute-end.align-vertical-distribute-start.align-vertical-justify-center.align-vertical-justify-end.align-vertical-justify-start.align-vertical-space-around.align-vertical-space-between.ambulance.ampersand.ampersands.amphora.anchor.angry.annoyed.antenna.anvil.aperture.app-window.app-window-mac.apple.archive.archive-restore.archive-x.armchair.arrow-big-down.arrow-big-down-dash.arrow-big-left.arrow-big-left-dash.arrow-big-right.arrow-big-right-dash.arrow-big-up.arrow-big-up-dash.arrow-down.arrow-down-0-1.arrow-down-1-0.arrow-down-a-z.arrow-down-from-line.arrow-down-left.arrow-down-narrow-wide.arrow-down-right.arrow-down-to-dot.arrow-down-to-line.arrow-down-up.arrow-down-wide-narrow.arrow-down-z-a.arrow-left.arrow-left-from-line.arrow-left-right.arrow-left-to-line.arrow-right.arrow-right-from-line.arrow-right-left.arrow-right-to-line.arrow-up.arrow-up-0-1.arrow-up-1-0.arrow-up-a-z.arrow-up-down.arrow-up-from-dot.arrow-up-from-line.arrow-up-left.arrow-up-narrow-wide.arrow-up-right.arrow-up-to-line.arrow-up-wide-narrow.arrow-up-z-a.arrows-up-from-line.asterisk.at-sign.atom.audio-lines.audio-waveform.award.axe.axis-3d.baby.backpack.badge.badge-alert.badge-cent.badge-check.badge-dollar-sign.badge-euro.badge-indian-rupee.badge-info.badge-japanese-yen.badge-minus.badge-percent.badge-plus.badge-pound-sterling.badge-question-mark.badge-russian-ruble.badge-swiss-franc.badge-turkish-lira.badge-x.baggage-claim.balloon.ban.banana.bandage.banknote.banknote-arrow-down.banknote-arrow-up.banknote-x.barcode.barrel.baseline.bath.battery.battery-charging.battery-full.battery-low.battery-medium.battery-plus.battery-warning.beaker.bean.bean-off.bed.bed-double.bed-single.beef.beer.beer-off.bell.bell-dot.bell-electric.bell-minus.bell-off.bell-plus.bell-ring.between-horizontal-end.between-horizontal-start.between-vertical-end.between-vertical-start.biceps-flexed.bike.binary.binoculars.biohazard.bird.birdhouse.bitcoin.blend.blinds.blocks.bluetooth.bluetooth-connected.bluetooth-off.bluetooth-searching.bold.bolt.bomb.bone.book.book-a.book-alert.book-audio.book-check.book-copy.book-dashed.book-down.book-headphones.book-heart.book-image.book-key.book-lock.book-marked.book-minus.book-open.book-open-check.book-open-text.book-plus.book-search.book-text.book-type.book-up.book-up-2.book-user.book-x.bookmark.bookmark-check.bookmark-minus.bookmark-plus.bookmark-x.boom-box.bot.bot-message-square.bot-off.bottle-wine.bow-arrow.box.boxes.braces.brackets.brain.brain-circuit.brain-cog.brick-wall.brick-wall-fire.brick-wall-shield.briefcase.briefcase-business.briefcase-conveyor-belt.briefcase-medical.bring-to-front.brush.brush-cleaning.bubbles.bug.bug-off.bug-play.building.building-2.bus.bus-front.cable.cable-car.cake.cake-slice.calculator.calendar.calendar-1.calendar-arrow-down.calendar-arrow-up.calendar-check.calendar-check-2.calendar-clock.calendar-cog.calendar-days.calendar-fold.calendar-heart.calendar-minus.calendar-minus-2.calendar-off.calendar-plus.calendar-plus-2.calendar-range.calendar-search.calendar-sync.calendar-x.calendar-x-2.calendars.camera.camera-off.candy.candy-cane.candy-off.cannabis.cannabis-off.captions.captions-off.car.car-front.car-taxi-front.caravan.card-sim.carrot.case-lower.case-sensitive.case-upper.cassette-tape.cast.castle.cat.cctv.chart-area.chart-bar.chart-bar-big.chart-bar-decreasing.chart-bar-increasing.chart-bar-stacked.chart-candlestick.chart-column.chart-column-big.chart-column-decreasing.chart-column-increasing.chart-column-stacked.chart-gantt.chart-line.chart-network.chart-no-axes-column.chart-no-axes-column-decreasing.chart-no-axes-column-increasing.chart-no-axes-combined.chart-no-axes-gantt.chart-pie.chart-scatter.chart-spline.check.check-check.check-line.chef-hat.cherry.chess-bishop.chess-king.chess-knight.chess-pawn.chess-queen.chess-rook.chevron-down.chevron-first.chevron-last.chevron-left.chevron-right.chevron-up.chevrons-down.chevrons-down-up.chevrons-left.chevrons-left-right.chevrons-left-right-ellipsis.chevrons-right.chevrons-right-left.chevrons-up.chevrons-up-down.church.cigarette.cigarette-off.circle.circle-alert.circle-arrow-down.circle-arrow-left.circle-arrow-out-down-left.circle-arrow-out-down-right.circle-arrow-out-up-left.circle-arrow-out-up-right.circle-arrow-right.circle-arrow-up.circle-check.circle-check-big.circle-chevron-down.circle-chevron-left.circle-chevron-right.circle-chevron-up.circle-dashed.circle-divide.circle-dollar-sign.circle-dot.circle-dot-dashed.circle-ellipsis.circle-equal.circle-fading-arrow-up.circle-fading-plus.circle-gauge.circle-minus.circle-off.circle-parking.circle-parking-off.circle-pause.circle-percent.circle-pile.circle-play.circle-plus.circle-pound-sterling.circle-power.circle-question-mark.circle-slash.circle-slash-2.circle-small.circle-star.circle-stop.circle-user.circle-user-round.circle-x.circuit-board.citrus.clapperboard.clipboard.clipboard-check.clipboard-clock.clipboard-copy.clipboard-list.clipboard-minus.clipboard-paste.clipboard-pen.clipboard-pen-line.clipboard-plus.clipboard-type.clipboard-x.clock.clock-1.clock-10.clock-11.clock-12.clock-2.clock-3.clock-4.clock-5.clock-6.clock-7.clock-8.clock-9.clock-alert.clock-arrow-down.clock-arrow-up.clock-check.clock-fading.clock-plus.closed-caption.cloud.cloud-alert.cloud-backup.cloud-check.cloud-cog.cloud-download.cloud-drizzle.cloud-fog.cloud-hail.cloud-lightning.cloud-moon.cloud-moon-rain.cloud-off.cloud-rain.cloud-rain-wind.cloud-snow.cloud-sun.cloud-sun-rain.cloud-sync.cloud-upload.cloudy.clover.club.code.code-xml.coffee.cog.coins.columns-2.columns-3.columns-3-cog.columns-4.combine.command.compass.component.computer.concierge-bell.cone.construction.contact.contact-round.container.contrast.cookie.cooking-pot.copy.copy-check.copy-minus.copy-plus.copy-slash.copy-x.copyleft.copyright.corner-down-left.corner-down-right.corner-left-down.corner-left-up.corner-right-down.corner-right-up.corner-up-left.corner-up-right.cpu.creative-commons.credit-card.croissant.crop.cross.crosshair.crown.cuboid.cup-soda.currency.cylinder.dam.database.database-backup.database-search.database-zap.decimals-arrow-left.decimals-arrow-right.delete.dessert.diameter.diamond.diamond-minus.diamond-percent.diamond-plus.dice-1.dice-2.dice-3.dice-4.dice-5.dice-6.dices.diff.disc.disc-2.disc-3.disc-album.divide.dna.dna-off.dock.dog.dollar-sign.donut.door-closed.door-closed-locked.door-open.dot.download.drafting-compass.drama.drill.drone.droplet.droplet-off.droplets.drum.drumstick.dumbbell.ear.ear-off.earth.earth-lock.eclipse.egg.egg-fried.egg-off.ellipsis.ellipsis-vertical.equal.equal-approximately.equal-not.eraser.ethernet-port.euro.ev-charger.expand.external-link.eye.eye-closed.eye-off.factory.fan.fast-forward.feather.fence.ferris-wheel.file.file-archive.file-axis-3d.file-badge.file-box.file-braces.file-braces-corner.file-chart-column.file-chart-column-increasing.file-chart-line.file-chart-pie.file-check.file-check-corner.file-clock.file-code.file-code-corner.file-cog.file-diff.file-digit.file-down.file-exclamation-point.file-headphone.file-heart.file-image.file-input.file-key.file-lock.file-minus.file-minus-corner.file-music.file-output.file-pen.file-pen-line.file-play.file-plus.file-plus-corner.file-question-mark.file-scan.file-search.file-search-corner.file-signal.file-sliders.file-spreadsheet.file-stack.file-symlink.file-terminal.file-text.file-type.file-type-corner.file-up.file-user.file-video-camera.file-volume.file-x.file-x-corner.files.film.fingerprint-pattern.fire-extinguisher.fish.fish-off.fish-symbol.fishing-hook.fishing-rod.flag.flag-off.flag-triangle-left.flag-triangle-right.flame.flame-kindling.flashlight.flashlight-off.flask-conical.flask-conical-off.flask-round.flip-horizontal-2.flip-vertical-2.flower.flower-2.focus.fold-horizontal.fold-vertical.folder.folder-archive.folder-check.folder-clock.folder-closed.folder-code.folder-cog.folder-dot.folder-down.folder-git.folder-git-2.folder-heart.folder-input.folder-kanban.folder-key.folder-lock.folder-minus.folder-open.folder-open-dot.folder-output.folder-pen.folder-plus.folder-root.folder-search.folder-search-2.folder-symlink.folder-sync.folder-tree.folder-up.folder-x.folders.footprints.forklift.form.forward.frame.frown.fuel.fullscreen.funnel.funnel-plus.funnel-x.gallery-horizontal.gallery-horizontal-end.gallery-thumbnails.gallery-vertical.gallery-vertical-end.gamepad.gamepad-2.gamepad-directional.gauge.gavel.gem.georgian-lari.ghost.gift.git-branch.git-branch-minus.git-branch-plus.git-commit-horizontal.git-commit-vertical.git-compare.git-compare-arrows.git-fork.git-graph.git-merge.git-merge-conflict.git-pull-request.git-pull-request-arrow.git-pull-request-closed.git-pull-request-create.git-pull-request-create-arrow.git-pull-request-draft.glass-water.glasses.globe.globe-lock.globe-off.globe-x.goal.gpu.graduation-cap.grape.grid-2x2.grid-2x2-check.grid-2x2-plus.grid-2x2-x.grid-3x2.grid-3x3.grip.grip-horizontal.grip-vertical.group.guitar.ham.hamburger.hammer.hand.hand-coins.hand-fist.hand-grab.hand-heart.hand-helping.hand-metal.hand-platter.handbag.handshake.hard-drive.hard-drive-download.hard-drive-upload.hard-hat.hash.hat-glasses.haze.hd.hdmi-port.heading.heading-1.heading-2.heading-3.heading-4.heading-5.heading-6.headphone-off.headphones.headset.heart.heart-crack.heart-handshake.heart-minus.heart-off.heart-plus.heart-pulse.heater.helicopter.hexagon.highlighter.history.hop.hop-off.hospital.hotel.hourglass.house.house-heart.house-plug.house-plus.house-wifi.ice-cream-bowl.ice-cream-cone.id-card.id-card-lanyard.image.image-down.image-minus.image-off.image-play.image-plus.image-up.image-upscale.images.import.inbox.indian-rupee.infinity.info.inspection-panel.italic.iteration-ccw.iteration-cw.japanese-yen.joystick.kanban.kayak.key.key-round.key-square.keyboard.keyboard-music.keyboard-off.lamp.lamp-ceiling.lamp-desk.lamp-floor.lamp-wall-down.lamp-wall-up.land-plot.landmark.languages.laptop.laptop-minimal.laptop-minimal-check.lasso.lasso-select.laugh.layers.layers-2.layers-plus.layout-dashboard.layout-grid.layout-list.layout-panel-left.layout-panel-top.layout-template.leaf.leafy-green.lectern.lens-concave.lens-convex.library.library-big.life-buoy.ligature.lightbulb.lightbulb-off.line-dot-right-horizontal.line-squiggle.link.link-2.link-2-off.list.list-check.list-checks.list-chevrons-down-up.list-chevrons-up-down.list-collapse.list-end.list-filter.list-filter-plus.list-indent-decrease.list-indent-increase.list-minus.list-music.list-ordered.list-plus.list-restart.list-start.list-todo.list-tree.list-video.list-x.loader.loader-circle.loader-pinwheel.locate.locate-fixed.locate-off.lock.lock-keyhole.lock-keyhole-open.lock-open.log-in.log-out.logs.lollipop.luggage.magnet.mail.mail-check.mail-minus.mail-open.mail-plus.mail-question-mark.mail-search.mail-warning.mail-x.mailbox.mails.map.map-minus.map-pin.map-pin-check.map-pin-check-inside.map-pin-house.map-pin-minus.map-pin-minus-inside.map-pin-off.map-pin-pen.map-pin-plus.map-pin-plus-inside.map-pin-x.map-pin-x-inside.map-pinned.map-plus.mars.mars-stroke.martini.maximize.maximize-2.medal.megaphone.megaphone-off.meh.memory-stick.menu.merge.message-circle.message-circle-check.message-circle-code.message-circle-dashed.message-circle-heart.message-circle-more.message-circle-off.message-circle-plus.message-circle-question-mark.message-circle-reply.message-circle-warning.message-circle-x.message-square.message-square-check.message-square-code.message-square-dashed.message-square-diff.message-square-dot.message-square-heart.message-square-lock.message-square-more.message-square-off.message-square-plus.message-square-quote.message-square-reply.message-square-share.message-square-text.message-square-warning.message-square-x.messages-square.metronome.mic.mic-off.mic-vocal.microchip.microscope.microwave.milestone.milk.milk-off.minimize.minimize-2.minus.mirror-rectangular.mirror-round.monitor.monitor-check.monitor-cloud.monitor-cog.monitor-dot.monitor-down.monitor-off.monitor-pause.monitor-play.monitor-smartphone.monitor-speaker.monitor-stop.monitor-up.monitor-x.moon.moon-star.motorbike.mountain.mountain-snow.mouse.mouse-left.mouse-off.mouse-pointer.mouse-pointer-2.mouse-pointer-2-off.mouse-pointer-ban.mouse-pointer-click.mouse-right.move.move-3d.move-diagonal.move-diagonal-2.move-down.move-down-left.move-down-right.move-horizontal.move-left.move-right.move-up.move-up-left.move-up-right.move-vertical.music.music-2.music-3.music-4.navigation.navigation-2.navigation-2-off.navigation-off.network.newspaper.nfc.non-binary.notebook.notebook-pen.notebook-tabs.notebook-text.notepad-text.notepad-text-dashed.nut.nut-off.octagon.octagon-alert.octagon-minus.octagon-pause.octagon-x.omega.option.orbit.origami.package.package-2.package-check.package-minus.package-open.package-plus.package-search.package-x.paint-bucket.paint-roller.paintbrush.paintbrush-vertical.palette.panda.panel-bottom.panel-bottom-close.panel-bottom-dashed.panel-bottom-open.panel-left.panel-left-close.panel-left-dashed.panel-left-open.panel-left-right-dashed.panel-right.panel-right-close.panel-right-dashed.panel-right-open.panel-top.panel-top-bottom-dashed.panel-top-close.panel-top-dashed.panel-top-open.panels-left-bottom.panels-right-bottom.panels-top-left.paperclip.parentheses.parking-meter.party-popper.pause.paw-print.pc-case.pen.pen-line.pen-off.pen-tool.pencil.pencil-line.pencil-off.pencil-ruler.pentagon.percent.person-standing.philippine-peso.phone.phone-call.phone-forwarded.phone-incoming.phone-missed.phone-off.phone-outgoing.pi.piano.pickaxe.picture-in-picture.picture-in-picture-2.piggy-bank.pilcrow.pilcrow-left.pilcrow-right.pill.pill-bottle.pin.pin-off.pipette.pizza.plane.plane-landing.plane-takeoff.play.plug.plug-2.plug-zap.plus.pocket-knife.podcast.pointer.pointer-off.popcorn.popsicle.pound-sterling.power.power-off.presentation.printer.printer-check.printer-x.projector.proportions.puzzle.pyramid.qr-code.quote.rabbit.radar.radiation.radical.radio.radio-receiver.radio-tower.radius.rainbow.rat.ratio.receipt.receipt-cent.receipt-euro.receipt-indian-rupee.receipt-japanese-yen.receipt-pound-sterling.receipt-russian-ruble.receipt-swiss-franc.receipt-text.receipt-turkish-lira.rectangle-circle.rectangle-ellipsis.rectangle-goggles.rectangle-horizontal.rectangle-vertical.recycle.redo.redo-2.redo-dot.refresh-ccw.refresh-ccw-dot.refresh-cw.refresh-cw-off.refrigerator.regex.remove-formatting.repeat.repeat-1.repeat-2.replace.replace-all.reply.reply-all.rewind.ribbon.rocket.rocking-chair.roller-coaster.rose.rotate-3d.rotate-ccw.rotate-ccw-key.rotate-ccw-square.rotate-cw.rotate-cw-square.route.route-off.router.rows-2.rows-3.rows-4.rss.ruler.ruler-dimension-line.russian-ruble.sailboat.salad.sandwich.satellite.satellite-dish.saudi-riyal.save.save-all.save-off.scale.scale-3d.scaling.scan.scan-barcode.scan-eye.scan-face.scan-heart.scan-line.scan-qr-code.scan-search.scan-text.school.scissors.scissors-line-dashed.scooter.screen-share.screen-share-off.scroll.scroll-text.search.search-alert.search-check.search-code.search-slash.search-x.section.send.send-horizontal.send-to-back.separator-horizontal.separator-vertical.server.server-cog.server-crash.server-off.settings.settings-2.shapes.share.share-2.sheet.shell.shelving-unit.shield.shield-alert.shield-ban.shield-check.shield-ellipsis.shield-half.shield-minus.shield-off.shield-plus.shield-question-mark.shield-user.shield-x.ship.ship-wheel.shirt.shopping-bag.shopping-basket.shopping-cart.shovel.shower-head.shredder.shrimp.shrink.shrub.shuffle.sigma.signal.signal-high.signal-low.signal-medium.signal-zero.signature.signpost.signpost-big.siren.skip-back.skip-forward.skull.slash.slice.sliders-horizontal.sliders-vertical.smartphone.smartphone-charging.smartphone-nfc.smile.smile-plus.snail.snowflake.soap-dispenser-droplet.sofa.solar-panel.soup.space.spade.sparkle.sparkles.speaker.speech.spell-check.spell-check-2.spline.spline-pointer.split.spool.spotlight.spray-can.sprout.square.square-activity.square-arrow-down.square-arrow-down-left.square-arrow-down-right.square-arrow-left.square-arrow-out-down-left.square-arrow-out-down-right.square-arrow-out-up-left.square-arrow-out-up-right.square-arrow-right.square-arrow-right-enter.square-arrow-right-exit.square-arrow-up.square-arrow-up-left.square-arrow-up-right.square-asterisk.square-bottom-dashed-scissors.square-centerline-dashed-horizontal.square-centerline-dashed-vertical.square-chart-gantt.square-check.square-check-big.square-chevron-down.square-chevron-left.square-chevron-right.square-chevron-up.square-code.square-dashed.square-dashed-bottom.square-dashed-bottom-code.square-dashed-kanban.square-dashed-mouse-pointer.square-dashed-top-solid.square-divide.square-dot.square-equal.square-function.square-kanban.square-library.square-m.square-menu.square-minus.square-mouse-pointer.square-parking.square-parking-off.square-pause.square-pen.square-percent.square-pi.square-pilcrow.square-play.square-plus.square-power.square-radical.square-round-corner.square-scissors.square-sigma.square-slash.square-split-horizontal.square-split-vertical.square-square.square-stack.square-star.square-stop.square-terminal.square-user.square-user-round.square-x.squares-exclude.squares-intersect.squares-subtract.squares-unite.squircle.squircle-dashed.squirrel.stamp.star.star-half.star-off.step-back.step-forward.stethoscope.sticker.sticky-note.stone.store.stretch-horizontal.stretch-vertical.strikethrough.subscript.sun.sun-dim.sun-medium.sun-moon.sun-snow.sunrise.sunset.superscript.swatch-book.swiss-franc.switch-camera.sword.swords.syringe.table.table-2.table-cells-merge.table-cells-split.table-columns-split.table-of-contents.table-properties.table-rows-split.tablet.tablet-smartphone.tablets.tag.tags.tally-1.tally-2.tally-3.tally-4.tally-5.tangent.target.telescope.tent.tent-tree.terminal.test-tube.test-tube-diagonal.test-tubes.text-align-center.text-align-end.text-align-justify.text-align-start.text-cursor.text-cursor-input.text-initial.text-quote.text-search.text-select.text-wrap.theater.thermometer.thermometer-snowflake.thermometer-sun.thumbs-down.thumbs-up.ticket.ticket-check.ticket-minus.ticket-percent.ticket-plus.ticket-slash.ticket-x.tickets.tickets-plane.timer.timer-off.timer-reset.toggle-left.toggle-right.toilet.tool-case.toolbox.tornado.torus.touchpad.touchpad-off.towel-rack.tower-control.toy-brick.tractor.traffic-cone.train-front.train-front-tunnel.train-track.tram-front.transgender.trash.trash-2.tree-deciduous.tree-palm.tree-pine.trees.trending-down.trending-up.trending-up-down.triangle.triangle-alert.triangle-dashed.triangle-right.trophy.truck.truck-electric.turkish-lira.turntable.turtle.tv.tv-minimal.tv-minimal-play.type.type-outline.umbrella.umbrella-off.underline.undo.undo-2.undo-dot.unfold-horizontal.unfold-vertical.ungroup.university.unlink.unlink-2.unplug.upload.usb.user.user-check.user-cog.user-key.user-lock.user-minus.user-pen.user-plus.user-round.user-round-check.user-round-cog.user-round-key.user-round-minus.user-round-pen.user-round-plus.user-round-search.user-round-x.user-search.user-star.user-x.users.users-round.utensils.utensils-crossed.utility-pole.van.variable.vault.vector-square.vegan.venetian-mask.venus.venus-and-mars.vibrate.vibrate-off.video.video-off.videotape.view.voicemail.volleyball.volume.volume-1.volume-2.volume-off.volume-x.vote.wallet.wallet-cards.wallet-minimal.wallpaper.wand.wand-sparkles.warehouse.washing-machine.watch.waves.waves-arrow-down.waves-arrow-up.waves-ladder.waypoints.webcam.webhook.webhook-off.weight.weight-tilde.wheat.wheat-off.whole-word.wifi.wifi-cog.wifi-high.wifi-low.wifi-off.wifi-pen.wifi-sync.wifi-zero.wind.wind-arrow-down.wine.wine-off.workflow.worm.wrench.x.x-line-top.zap.zap-off.zodiac-aquarius.zodiac-aries.zodiac-cancer.zodiac-capricorn.zodiac-gemini.zodiac-leo.zodiac-libra.zodiac-ophiuchus.zodiac-pisces.zodiac-sagittarius.zodiac-scorpio.zodiac-taurus.zodiac-virgo.zoom-in.zoom-out".split("."), nf = [
8016
8061
  [[37, 10], [
8017
8062
  "letter",
8018
8063
  "font size",
@@ -23829,7 +23874,7 @@ var $d = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.
23829
23874
  37,
23830
23875
  28
23831
23876
  ], ["magnifying glass", "plus"]]
23832
- ], nf = {
23877
+ ], rf = {
23833
23878
  "activity-square": "square-activity",
23834
23879
  "alarm-check": "alarm-clock-check",
23835
23880
  "alarm-minus": "alarm-clock-minus",
@@ -24077,7 +24122,7 @@ var $d = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.
24077
24122
  "x-circle": "circle-x",
24078
24123
  "x-octagon": "octagon-x",
24079
24124
  "x-square": "square-x"
24080
- }, rf = {
24125
+ }, af = {
24081
24126
  activity: [
24082
24127
  "attivita",
24083
24128
  "sensore",
@@ -24733,26 +24778,26 @@ var $d = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.
24733
24778
  "watt",
24734
24779
  "elettricita"
24735
24780
  ]
24736
- }, af = { gauge2: "gauge" }, of = new Set(ef);
24737
- new Map([...Object.entries(nf), ...Object.entries(af)]);
24738
- function sf(e) {
24739
- return typeof e == "string" && of.has(e);
24740
- }
24741
- var cf = Cd(sf, "Not an icon of the catalog"), lf = ef.map((e, t) => {
24742
- let [n, r] = tf[t] ?? [[], []], i = n.flatMap((e) => {
24743
- let t = $d[e];
24781
+ }, of = { gauge2: "gauge" }, sf = new Set(tf);
24782
+ new Map([...Object.entries(rf), ...Object.entries(of)]);
24783
+ function cf(e) {
24784
+ return typeof e == "string" && sf.has(e);
24785
+ }
24786
+ var lf = Cd(cf, "Not an icon of the catalog"), uf = tf.map((e, t) => {
24787
+ let [n, r] = nf[t] ?? [[], []], i = n.flatMap((e) => {
24788
+ let t = ef[e];
24744
24789
  return t === void 0 ? [] : [t];
24745
24790
  });
24746
24791
  return {
24747
24792
  key: e,
24748
24793
  categories: i,
24749
- primaryCategory: i[0] ?? $d[0],
24794
+ primaryCategory: i[0] ?? ef[0],
24750
24795
  tags: r,
24751
- synonyms: rf[e] ?? []
24796
+ synonyms: af[e] ?? []
24752
24797
  };
24753
24798
  });
24754
- new Map(lf.map((e) => [e.key, e]));
24755
- var uf = [
24799
+ new Map(uf.map((e) => [e.key, e]));
24800
+ var df = [
24756
24801
  "devices",
24757
24802
  "home",
24758
24803
  "security",
@@ -24763,31 +24808,31 @@ var uf = [
24763
24808
  "weather",
24764
24809
  "transportation",
24765
24810
  "animals"
24766
- ], df = new Set(lf.map((e) => e.primaryCategory));
24767
- [...uf, ...$d.filter((e) => !uf.includes(e))].filter((e) => df.has(e)), G({
24811
+ ], ff = new Set(uf.map((e) => e.primaryCategory));
24812
+ [...df, ...ef.filter((e) => !df.includes(e))].filter((e) => ff.has(e)), G({
24768
24813
  locationKey: B(),
24769
- icon: cf
24814
+ icon: lf
24770
24815
  }), G({
24771
24816
  locationKey: B(),
24772
24817
  description: B()
24773
24818
  });
24774
- var ff = K([
24819
+ var pf = K([
24775
24820
  "image",
24776
24821
  "video",
24777
24822
  "gif",
24778
24823
  "audio",
24779
24824
  "icon"
24780
- ]), pf = G({
24781
- mediaType: ff,
24825
+ ]), mf = G({
24826
+ mediaType: pf,
24782
24827
  url: B().optional(),
24783
24828
  bytes: Ed(Uint8Array).optional(),
24784
24829
  mime: B().optional(),
24785
24830
  name: B().optional()
24786
- }).refine((e) => e.url !== void 0 || e.bytes !== void 0, { message: "Attachment requires either `url` or `bytes`" }), mf = K([
24831
+ }).refine((e) => e.url !== void 0 || e.bytes !== void 0, { message: "Attachment requires either `url` or `bytes`" }), hf = K([
24787
24832
  "text",
24788
24833
  "markdown",
24789
24834
  "html"
24790
- ]), hf = K([
24835
+ ]), gf = K([
24791
24836
  "acknowledge",
24792
24837
  "dismiss",
24793
24838
  "silence",
@@ -24806,29 +24851,29 @@ var ff = K([
24806
24851
  "light",
24807
24852
  "alert",
24808
24853
  "camera"
24809
- ]), gf = G({
24854
+ ]), _f = G({
24810
24855
  id: B(),
24811
24856
  label: B(),
24812
24857
  url: B().optional(),
24813
- icon: hf.optional(),
24858
+ icon: gf.optional(),
24814
24859
  destructive: U().optional(),
24815
24860
  mode: K(["navigate", "background"]).optional()
24816
- }), _f = G({
24861
+ }), vf = G({
24817
24862
  body: B(),
24818
24863
  title: B().optional(),
24819
- format: mf.default("text"),
24864
+ format: hf.default("text"),
24820
24865
  priority: H().int().min(1).max(5).default(3),
24821
24866
  level: B().optional(),
24822
- attachments: W(pf).optional(),
24867
+ attachments: W(mf).optional(),
24823
24868
  clickUrl: B().optional(),
24824
- actions: W(gf).optional(),
24869
+ actions: W(_f).optional(),
24825
24870
  sound: B().optional(),
24826
24871
  ttl: H().optional(),
24827
24872
  tag: B().optional(),
24828
24873
  deviceId: H().optional(),
24829
24874
  eventId: B().optional(),
24830
24875
  metadata: $u(B(), zu()).optional()
24831
- }), vf = G({
24876
+ }), yf = G({
24832
24877
  id: B(),
24833
24878
  label: B(),
24834
24879
  ordinal: H().int().min(1).max(5).nullable(),
@@ -24839,9 +24884,9 @@ var ff = K([
24839
24884
  }).optional(),
24840
24885
  requires: W(B()).optional(),
24841
24886
  description: B().optional()
24842
- }), yf = G({
24887
+ }), bf = G({
24843
24888
  attachments: G({
24844
- mediaTypes: W(ff),
24889
+ mediaTypes: W(pf),
24845
24890
  mode: K([
24846
24891
  "url",
24847
24892
  "bytes",
@@ -24852,79 +24897,79 @@ var ff = K([
24852
24897
  }),
24853
24898
  actions: H().int().nonnegative(),
24854
24899
  actionIcons: U().optional(),
24855
- levels: W(vf),
24856
- format: W(mf),
24900
+ levels: W(yf),
24901
+ format: W(hf),
24857
24902
  clickUrl: U(),
24858
24903
  sound: U(),
24859
24904
  ttl: U(),
24860
24905
  bodyMaxLen: H().int().positive()
24861
- }), bf = zu(), xf = G({
24906
+ }), xf = zu(), Sf = G({
24862
24907
  kind: B(),
24863
24908
  label: B(),
24864
24909
  icon: B(),
24865
24910
  addonId: B(),
24866
24911
  iconUrl: B().optional(),
24867
24912
  iconMediaType: B().optional(),
24868
- configSchema: bf,
24913
+ configSchema: xf,
24869
24914
  destinationKeys: W(B()).optional(),
24870
24915
  supportsDiscovery: U(),
24871
- caps: yf
24872
- }), Sf = G({
24916
+ caps: bf
24917
+ }), Cf = G({
24873
24918
  id: B(),
24874
24919
  name: B(),
24875
24920
  kind: B(),
24876
24921
  addonId: B(),
24877
24922
  enabled: U(),
24878
24923
  config: $u(B(), zu())
24879
- }), Cf = G({
24924
+ }), wf = G({
24880
24925
  kind: B(),
24881
24926
  suggestedName: B(),
24882
24927
  config: $u(B(), zu())
24883
- }), wf = G({
24928
+ }), Tf = G({
24884
24929
  level: B(),
24885
- format: mf,
24930
+ format: hf,
24886
24931
  attachmentsSent: H().int().nonnegative(),
24887
24932
  actionsSent: H().int().nonnegative(),
24888
24933
  truncated: U(),
24889
24934
  dropped: W(B())
24890
- }), Tf = G({
24935
+ }), Ef = G({
24891
24936
  success: U(),
24892
24937
  error: B().optional(),
24893
- renderedAs: wf.optional()
24894
- }), Ef = Tf, Df = G({
24938
+ renderedAs: Tf.optional()
24939
+ }), Df = Ef, Of = G({
24895
24940
  ok: U(),
24896
24941
  resolvedUrl: B(),
24897
24942
  httpStatus: H().int().optional(),
24898
24943
  stateInstance: B().optional(),
24899
24944
  error: B().optional()
24900
24945
  });
24901
- J(G({}), W(xf)), J(G({}), W(Sf), { auth: "admin" }), J(G({ targetId: B() }), Sf, { auth: "admin" }), J(G({
24946
+ J(G({}), W(Sf)), J(G({}), W(Cf), { auth: "admin" }), J(G({ targetId: B() }), Cf, { auth: "admin" }), J(G({
24902
24947
  kind: B(),
24903
24948
  config: $u(B(), zu()).optional(),
24904
24949
  targetId: B().optional()
24905
- }), W(Cf), { auth: "admin" }), J(G({
24950
+ }), W(wf), { auth: "admin" }), J(G({
24906
24951
  kind: B(),
24907
24952
  config: $u(B(), zu()),
24908
24953
  targetId: B().optional()
24909
- }), Df, {
24954
+ }), Of, {
24910
24955
  kind: "mutation",
24911
24956
  auth: "admin"
24912
24957
  }), J(G({
24913
24958
  targetId: B(),
24914
- notification: _f
24915
- }), Tf, {
24959
+ notification: vf
24960
+ }), Ef, {
24916
24961
  kind: "mutation",
24917
24962
  auth: "admin"
24918
24963
  }), J(G({
24919
24964
  targetId: B(),
24920
- sample: _f.optional()
24921
- }), Ef, {
24965
+ sample: vf.optional()
24966
+ }), Df, {
24922
24967
  kind: "mutation",
24923
24968
  auth: "admin"
24924
24969
  }), J(G({
24925
- target: Sf,
24970
+ target: Cf,
24926
24971
  cloneSecretsFrom: B().optional()
24927
- }), Sf, {
24972
+ }), Cf, {
24928
24973
  kind: "mutation",
24929
24974
  auth: "admin"
24930
24975
  }), J(G({ targetId: B() }), Uu(), {
@@ -24936,51 +24981,8 @@ J(G({}), W(xf)), J(G({}), W(Sf), { auth: "admin" }), J(G({ targetId: B() }), Sf,
24936
24981
  }), Uu(), {
24937
24982
  kind: "mutation",
24938
24983
  auth: "admin"
24939
- }), new Set([
24940
- {
24941
- id: "person",
24942
- name: "Person"
24943
- },
24944
- {
24945
- id: "vehicle",
24946
- name: "Vehicle"
24947
- },
24948
- {
24949
- id: "animal",
24950
- name: "Animal"
24951
- },
24952
- {
24953
- id: "package",
24954
- name: "Package"
24955
- }
24956
- ].map((e) => e.id));
24957
- var Of = {
24958
- mapping: {
24959
- person: "person",
24960
- bicycle: "vehicle",
24961
- car: "vehicle",
24962
- motorcycle: "vehicle",
24963
- airplane: "vehicle",
24964
- bus: "vehicle",
24965
- train: "vehicle",
24966
- truck: "vehicle",
24967
- boat: "vehicle",
24968
- bird: "animal",
24969
- cat: "animal",
24970
- dog: "animal",
24971
- horse: "animal",
24972
- sheep: "animal",
24973
- cow: "animal",
24974
- elephant: "animal",
24975
- bear: "animal",
24976
- zebra: "animal",
24977
- giraffe: "animal",
24978
- suitcase: "package",
24979
- backpack: "package",
24980
- handbag: "package"
24981
- },
24982
- preserveOriginal: !1
24983
- }, kf = [
24984
+ });
24985
+ var kf = [
24984
24986
  {
24985
24987
  id: "speech",
24986
24988
  name: "Speech"
@@ -25677,7 +25679,7 @@ function Y(e, t, n, r, i) {
25677
25679
  });
25678
25680
  }
25679
25681
  op("motion", "motion", "motion", "Motion"), op("audio", "audio", "audio", "Audio"), op("person", "detection", "person", "Person"), op("vehicle", "detection", "vehicle", "Vehicle"), op("animal", "detection", "animal", "Animal"), op("package", "package", "package", "Package"), op("sensor", "sensor", "sensor", "Sensor"), op("control", "control", "control", "Control");
25680
- for (let [e, t] of Object.entries(Of.mapping)) t !== "vehicle" && t !== "animal" || ap.has(e) || Y(e, t, "detection", e, ip(e));
25682
+ for (let [e, t] of Object.entries(Zd.mapping)) t !== "vehicle" && t !== "animal" || ap.has(e) || Y(e, t, "detection", e, ip(e));
25681
25683
  Y("package-delivered", "package", "package", "package", "Package delivered"), Y("package-picked-up", "package", "package", "package", "Package picked up"), Y("contact", "sensor", "sensor", "door", "Contact"), Y("motion-sensor", "sensor", "sensor", "pir", "Motion sensor"), Y("smoke", "sensor", "sensor", "smoke", "Smoke"), Y("flood", "sensor", "sensor", "water", "Water leak"), Y("gas", "sensor", "sensor", "gas", "Gas"), Y("carbon-monoxide", "sensor", "sensor", "smoke", "Carbon monoxide"), Y("vibration", "sensor", "sensor", "vibration", "Vibration"), Y("tamper", "sensor", "sensor", "tamper", "Tamper"), Y("presence", "sensor", "sensor", "presence", "Presence"), Y("enum-sensor", "sensor", "sensor", "generic", "Sensor state"), Y("device-event", "sensor", "sensor", "button", "Device event"), Y("lock", "control", "control", "lock", "Lock"), Y("cover", "control", "control", "door", "Cover"), Y("switch", "control", "control", "switch", "Switch"), Y("siren", "control", "control", "siren", "Siren"), Y("button", "control", "control", "button", "Button"), Y("doorbell", "control", "control", "doorbell", "Doorbell");
25682
25684
  for (let e of kf) {
25683
25685
  let t = `audio-${e.id}`;
@@ -25886,7 +25888,7 @@ var xp = [
25886
25888
  id: B().min(1).max(64),
25887
25889
  label: B().min(1).max(40),
25888
25890
  sequenceId: B().min(1),
25889
- icon: hf.optional(),
25891
+ icon: gf.optional(),
25890
25892
  destructive: U().optional()
25891
25893
  }), zp = G({
25892
25894
  onActivation: Lp.optional(),
@@ -26706,7 +26708,7 @@ Bd.Camera, J(G({
26706
26708
  }), bh, {
26707
26709
  kind: "query",
26708
26710
  auth: "protected"
26709
- }), Qd(G({
26711
+ }), $d(G({
26710
26712
  deviceId: H(),
26711
26713
  clipId: B().min(1),
26712
26714
  provider: B().min(1),
@@ -26716,7 +26718,7 @@ Bd.Camera, J(G({
26716
26718
  }), Sh, {
26717
26719
  kind: "query",
26718
26720
  auth: "protected"
26719
- }), Qd(G({
26721
+ }), $d(G({
26720
26722
  deviceId: H(),
26721
26723
  clipId: B().min(1),
26722
26724
  provider: B().min(1),
@@ -26726,7 +26728,7 @@ Bd.Camera, J(G({
26726
26728
  }), Ch, {
26727
26729
  kind: "query",
26728
26730
  auth: "protected"
26729
- }), Qd(G({
26731
+ }), $d(G({
26730
26732
  deviceId: H(),
26731
26733
  clipId: B().min(1),
26732
26734
  provider: B().min(1),
@@ -26735,7 +26737,7 @@ Bd.Camera, J(G({
26735
26737
  }), Eh, {
26736
26738
  kind: "query",
26737
26739
  auth: "protected"
26738
- }), Qd(G({
26740
+ }), $d(G({
26739
26741
  deviceId: H(),
26740
26742
  provider: B().min(1)
26741
26743
  }), Dh, {
@@ -28924,7 +28926,7 @@ function M_({ className: e, ...t }) {
28924
28926
  }
28925
28927
  //#endregion
28926
28928
  //#region ../../node_modules/qrcode.react/lib/esm/index.js
28927
- e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-BAg3ARov.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-C0cYJFNC.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
28929
+ e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-Z-NRG681.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-DiS2hPpi.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
28928
28930
  var N_ = Object.defineProperty, P_ = Object.getOwnPropertySymbols, F_ = Object.prototype.hasOwnProperty, I_ = Object.prototype.propertyIsEnumerable, L_ = (e, t, n) => t in e ? N_(e, t, {
28929
28931
  enumerable: !0,
28930
28932
  configurable: !0,
@@ -31553,7 +31555,7 @@ function xb(e) {
31553
31555
  }
31554
31556
  }
31555
31557
  function Sb(e) {
31556
- let t = e.capName === void 0 ? void 0 : e.display?.perCap?.[e.capName], n = t?.precision ?? e.display?.precision ?? e.roleDefault?.precision ?? e.declarationPrecision, r = xb(e), i = e.preference ?? te, a = r === void 0 ? void 0 : ee(r), o = r === void 0 ? void 0 : re(r, i), s = bb(t?.unit ?? e.display?.unit ?? e.roleDefault?.unit), c = s !== void 0 && a !== void 0 && s !== a && fe(a, s), l = c ? s : o ?? "", u = r === "duration" || r === "information" || r === "duration-ms", d = (e) => u || a === void 0 || l.length === 0 || l === a ? e : he(e, a, l) ?? e;
31558
+ let t = e.capName === void 0 ? void 0 : e.display?.perCap?.[e.capName], n = t?.precision ?? e.display?.precision ?? e.roleDefault?.precision ?? e.declarationPrecision, r = xb(e), i = e.preference ?? te, a = r === void 0 ? void 0 : ee(r), o = r === void 0 ? void 0 : ne(r, i), s = bb(t?.unit ?? e.display?.unit ?? e.roleDefault?.unit), c = s !== void 0 && a !== void 0 && s !== a && fe(a, s), l = c ? s : o ?? "", u = r === "duration" || r === "information" || r === "duration-ms", d = (e) => u || a === void 0 || l.length === 0 || l === a ? e : he(e, a, l) ?? e;
31557
31559
  return {
31558
31560
  unit: l,
31559
31561
  precision: n,
@@ -31561,7 +31563,7 @@ function Sb(e) {
31561
31563
  fromDisplayValue: (e) => u || a === void 0 || l.length === 0 || l === a ? e : he(e, l, a) ?? e,
31562
31564
  format: (e) => {
31563
31565
  if (r !== void 0 && !c) {
31564
- let t = ue({
31566
+ let t = re({
31565
31567
  value: e,
31566
31568
  quantity: r,
31567
31569
  preference: i,
@@ -32550,7 +32552,7 @@ function px(e) {
32550
32552
  return t !== void 0 && lx(t, n) ? {
32551
32553
  kind: "value",
32552
32554
  slice: n
32553
- } : e.addonId === me && e.snapshotStatus === "success" ? { kind: "quiet" } : { kind: "awaiting" };
32555
+ } : e.addonId === ue && e.snapshotStatus === "success" ? { kind: "quiet" } : { kind: "awaiting" };
32554
32556
  }
32555
32557
  //#endregion
32556
32558
  //#region ../ui-library/src/composites/device-controls/sensor-hero-card.tsx
@@ -34690,7 +34692,7 @@ function bS(e, t) {
34690
34692
  }
34691
34693
  function xS(e, t) {
34692
34694
  if (e === null) return "—";
34693
- let n = ue({
34695
+ let n = re({
34694
34696
  value: e,
34695
34697
  quantity: t,
34696
34698
  precision: 0
@@ -35000,7 +35002,7 @@ function ES({ icon: e, label: t, value: n }) {
35000
35002
  function DS({ trpc: e, deviceId: t }) {
35001
35003
  let n = x(), { slice: r } = bS(e, t);
35002
35004
  if (r === void 0) return null;
35003
- let i = _S(r.condition, n), a = vS(r.condition), o = r.temperature === null ? void 0 : ue({
35005
+ let i = _S(r.condition, n), a = vS(r.condition), o = r.temperature === null ? void 0 : re({
35004
35006
  value: r.temperature,
35005
35007
  quantity: "temperature",
35006
35008
  precision: 0
@@ -35023,7 +35025,7 @@ function DS({ trpc: e, deviceId: t }) {
35023
35025
  }),
35024
35026
  /* @__PURE__ */ _("span", {
35025
35027
  className: "text-base text-foreground-subtle",
35026
- children: o === void 0 ? ue({
35028
+ children: o === void 0 ? re({
35027
35029
  value: 0,
35028
35030
  quantity: "temperature"
35029
35031
  }).unit : o.unit
@@ -35219,21 +35221,11 @@ function FS({ trpc: e, deviceId: t, deviceName: n }) {
35219
35221
  //#region ../ui-library/src/composites/device-controls/pet-feeder-panel.tsx
35220
35222
  e();
35221
35223
  var IS = 20, LS = 9, RS = "#f59e0b", zS = "#ef4444";
35222
- function BS(e, t) {
35223
- let n = ue({
35224
- value: t,
35225
- quantity: "duration"
35226
- });
35227
- return e("uiLibrary.petFeeder.desiccant", "{{text}}{{unit}} desiccant", {
35228
- text: n.text,
35229
- unit: n.unit
35230
- });
35231
- }
35232
- function VS(e) {
35224
+ function BS(e) {
35233
35225
  return Math.min(de, Math.max(oe, e));
35234
35226
  }
35235
- var HS = "\n@keyframes pf-eat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(2px)} }\n@keyframes pf-pulse { 0%,100%{opacity:.55} 50%{opacity:1} }\n@media (prefers-reduced-motion: reduce) {\n .pf-eat, .pf-pulse { animation: none !important; }\n}\n";
35236
- function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35227
+ var VS = "\n@keyframes pf-eat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(2px)} }\n@keyframes pf-pulse { 0%,100%{opacity:.55} 50%{opacity:1} }\n@media (prefers-reduced-motion: reduce) {\n .pf-eat, .pf-pulse { animation: none !important; }\n}\n";
35228
+ function HS({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35237
35229
  let i = x(), { cap: a, slice: o, available: s } = Z({
35238
35230
  trpc: e,
35239
35231
  deviceId: t,
@@ -35256,17 +35248,10 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35256
35248
  }),
35257
35249
  /* @__PURE__ */ v("span", {
35258
35250
  className: N("inline-flex items-center gap-1 text-xs tabular-nums font-medium", c.lowFood ? "text-destructive" : "text-foreground"),
35259
- children: [
35260
- /* @__PURE__ */ _(xn, {
35261
- className: "h-3.5 w-3.5",
35262
- "aria-hidden": !0
35263
- }),
35264
- c.foodLevel ?? "—",
35265
- /* @__PURE__ */ _("span", {
35266
- className: "text-foreground-subtle",
35267
- children: "g"
35268
- })
35269
- ]
35251
+ children: [/* @__PURE__ */ _(xn, {
35252
+ className: "h-3.5 w-3.5",
35253
+ "aria-hidden": !0
35254
+ }), c.bowlFood ?? "—"]
35270
35255
  }),
35271
35256
  c.batteryPower !== null && /* @__PURE__ */ v("span", {
35272
35257
  className: "inline-flex items-center gap-0.5 text-xs tabular-nums text-foreground-subtle",
@@ -35295,18 +35280,18 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35295
35280
  ]
35296
35281
  });
35297
35282
  let w = (e) => {
35298
- y || c.feeding || (l({ feeding: !0 }), a.feed({ grams: VS(e) }));
35283
+ y || c.feeding || (l({ feeding: !0 }), a.feed({ grams: BS(e) }));
35299
35284
  };
35300
35285
  return /* @__PURE__ */ v("div", {
35301
35286
  className: "relative flex flex-col items-stretch gap-3 overflow-hidden rounded-lg border border-border bg-surface p-4",
35302
35287
  children: [
35303
- /* @__PURE__ */ _("style", { children: HS }),
35288
+ /* @__PURE__ */ _("style", { children: VS }),
35304
35289
  /* @__PURE__ */ v("div", {
35305
35290
  className: "flex items-center gap-4 rounded-lg border border-border/50 bg-surface-subtle/40 p-3",
35306
- children: [/* @__PURE__ */ _(KS, {
35307
- grams: c.foodLevel,
35291
+ children: [/* @__PURE__ */ _(GS, {
35292
+ grams: c.bowlFood,
35308
35293
  low: c.lowFood,
35309
- eating: c.feeding
35294
+ eating: c.eating
35310
35295
  }), /* @__PURE__ */ v("div", {
35311
35296
  className: "flex min-w-0 flex-1 flex-col gap-1.5",
35312
35297
  children: [/* @__PURE__ */ v("div", {
@@ -35314,22 +35299,18 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35314
35299
  children: [/* @__PURE__ */ _("span", {
35315
35300
  className: "text-3xl font-bold leading-none tabular-nums",
35316
35301
  style: { color: c.lowFood ? zS : RS },
35317
- children: c.foodLevel ?? "—"
35302
+ children: c.bowlFood ?? "—"
35318
35303
  }), /* @__PURE__ */ _("span", {
35319
35304
  className: "text-sm text-foreground-subtle",
35320
- children: i("uiLibrary.petFeeder.inBowl", "g in bowl")
35305
+ children: i("uiLibrary.petFeeder.inBowl", "in bowl")
35321
35306
  })]
35322
35307
  }), /* @__PURE__ */ v("div", {
35323
35308
  className: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-foreground-subtle",
35324
35309
  children: [
35325
- c.batteryPower !== null && /* @__PURE__ */ _(GS, {
35310
+ c.batteryPower !== null && /* @__PURE__ */ _(WS, {
35326
35311
  icon: /* @__PURE__ */ _(Ve, { className: "h-3.5 w-3.5" }),
35327
35312
  label: `${c.batteryPower}%`
35328
35313
  }),
35329
- c.desiccantLeftDays !== null && /* @__PURE__ */ _(GS, {
35330
- icon: /* @__PURE__ */ _(kn, { className: "h-3.5 w-3.5" }),
35331
- label: BS(i, c.desiccantLeftDays)
35332
- }),
35333
35314
  C && /* @__PURE__ */ v("span", {
35334
35315
  className: "inline-flex items-center gap-1 font-medium text-amber-500",
35335
35316
  children: [/* @__PURE__ */ _(He, {
@@ -35379,24 +35360,24 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35379
35360
  }),
35380
35361
  c.isDualHopper ? /* @__PURE__ */ v("div", {
35381
35362
  className: "grid grid-cols-2 gap-2",
35382
- children: [/* @__PURE__ */ _(qS, {
35363
+ children: [/* @__PURE__ */ _(KS, {
35383
35364
  label: i("uiLibrary.petFeeder.hopper1", "Hopper 1"),
35384
35365
  grams: f,
35385
35366
  busy: y || c.feeding,
35386
35367
  onGrams: p,
35387
35368
  onFeed: () => {
35388
- y || c.feeding || (l({ feeding: !0 }), a.feed({ hopper1: VS(f) }));
35369
+ y || c.feeding || (l({ feeding: !0 }), a.feed({ hopper1: BS(f) }));
35389
35370
  }
35390
- }), /* @__PURE__ */ _(qS, {
35371
+ }), /* @__PURE__ */ _(KS, {
35391
35372
  label: i("uiLibrary.petFeeder.hopper2", "Hopper 2"),
35392
35373
  grams: m,
35393
35374
  busy: y || c.feeding,
35394
35375
  onGrams: g,
35395
35376
  onFeed: () => {
35396
- y || c.feeding || (l({ feeding: !0 }), a.feed({ hopper2: VS(m) }));
35377
+ y || c.feeding || (l({ feeding: !0 }), a.feed({ hopper2: BS(m) }));
35397
35378
  }
35398
35379
  })]
35399
- }) : /* @__PURE__ */ _(qS, {
35380
+ }) : /* @__PURE__ */ _(KS, {
35400
35381
  label: i("uiLibrary.petFeeder.manualFeed", "Manual feed"),
35401
35382
  grams: u,
35402
35383
  busy: y || c.feeding,
@@ -35404,27 +35385,18 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35404
35385
  onFeed: () => w(u)
35405
35386
  }),
35406
35387
  /* @__PURE__ */ v("div", {
35407
- className: "grid grid-cols-3 gap-2",
35408
- children: [
35409
- /* @__PURE__ */ _(YS, {
35410
- icon: /* @__PURE__ */ _(Wt, { className: "h-4 w-4" }),
35411
- label: i("uiLibrary.petFeeder.callPet", "Call pet"),
35412
- busy: y,
35413
- onClick: () => void a.callPet({})
35414
- }),
35415
- /* @__PURE__ */ _(YS, {
35416
- icon: /* @__PURE__ */ _(Xt, { className: "h-4 w-4" }),
35417
- label: i("uiLibrary.petFeeder.resetDesiccant", "Reset desiccant"),
35418
- busy: y,
35419
- onClick: () => void a.resetDesiccant({})
35420
- }),
35421
- /* @__PURE__ */ _(YS, {
35422
- icon: /* @__PURE__ */ _(xn, { className: "h-4 w-4" }),
35423
- label: i("uiLibrary.petFeeder.markRefilled", "Mark refilled"),
35424
- busy: y,
35425
- onClick: () => void a.markFoodReplenished({})
35426
- })
35427
- ]
35388
+ className: "grid auto-cols-fr grid-flow-col gap-2",
35389
+ children: [/* @__PURE__ */ _(JS, {
35390
+ icon: /* @__PURE__ */ _(Wt, { className: "h-4 w-4" }),
35391
+ label: i("uiLibrary.petFeeder.callPet", "Call pet"),
35392
+ busy: y,
35393
+ onClick: () => void a.callPet({})
35394
+ }), c.supportsMarkRefilled && /* @__PURE__ */ _(JS, {
35395
+ icon: /* @__PURE__ */ _(xn, { className: "h-4 w-4" }),
35396
+ label: i("uiLibrary.petFeeder.markRefilled", "Mark refilled"),
35397
+ busy: y,
35398
+ onClick: () => void a.markFoodReplenished({})
35399
+ })]
35428
35400
  }),
35429
35401
  c.feeding && /* @__PURE__ */ v("button", {
35430
35402
  type: "button",
@@ -35438,12 +35410,12 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35438
35410
  "aria-hidden": !0
35439
35411
  }), i("uiLibrary.petFeeder.cancelFeed", "Cancel feed")]
35440
35412
  }),
35441
- /* @__PURE__ */ _(WS, {
35413
+ /* @__PURE__ */ _(US, {
35442
35414
  label: i("uiLibrary.petFeeder.settings", "Settings"),
35443
35415
  children: /* @__PURE__ */ v("div", {
35444
35416
  className: "grid grid-cols-3 gap-2",
35445
35417
  children: [
35446
- /* @__PURE__ */ _(XS, {
35418
+ /* @__PURE__ */ _(YS, {
35447
35419
  icon: /* @__PURE__ */ _(At, { className: "h-4 w-4" }),
35448
35420
  label: i("uiLibrary.petFeeder.childLock", "Child lock"),
35449
35421
  on: c.childLock,
@@ -35452,7 +35424,7 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35452
35424
  l({ childLock: e }), a.setChildLock({ on: e });
35453
35425
  }
35454
35426
  }),
35455
- /* @__PURE__ */ _(XS, {
35427
+ /* @__PURE__ */ _(YS, {
35456
35428
  icon: /* @__PURE__ */ _(Tt, { className: "h-4 w-4" }),
35457
35429
  label: i("uiLibrary.petFeeder.light", "Light"),
35458
35430
  on: c.indicatorLight,
@@ -35461,7 +35433,7 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35461
35433
  l({ indicatorLight: e }), a.setIndicatorLight({ on: e });
35462
35434
  }
35463
35435
  }),
35464
- /* @__PURE__ */ _(XS, {
35436
+ /* @__PURE__ */ _(YS, {
35465
35437
  icon: /* @__PURE__ */ _(Ue, { className: "h-4 w-4" }),
35466
35438
  label: i("uiLibrary.petFeeder.feedSound", "Feed sound"),
35467
35439
  on: c.feedSound,
@@ -35473,7 +35445,7 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35473
35445
  ]
35474
35446
  })
35475
35447
  }),
35476
- /* @__PURE__ */ _(WS, {
35448
+ /* @__PURE__ */ _(US, {
35477
35449
  label: i("uiLibrary.petFeeder.volume", "Volume"),
35478
35450
  children: /* @__PURE__ */ v("div", {
35479
35451
  className: "flex items-center gap-3",
@@ -35482,7 +35454,7 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35482
35454
  className: "h-4 w-4 shrink-0 text-foreground-subtle",
35483
35455
  "aria-hidden": !0
35484
35456
  }),
35485
- /* @__PURE__ */ _(JS, {
35457
+ /* @__PURE__ */ _(qS, {
35486
35458
  label: i("uiLibrary.petFeeder.decreaseVolume", "Decrease volume"),
35487
35459
  symbol: "−",
35488
35460
  disabled: y || c.volume <= 0,
@@ -35495,7 +35467,7 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35495
35467
  className: "w-6 text-center text-lg font-semibold tabular-nums text-foreground",
35496
35468
  children: c.volume
35497
35469
  }),
35498
- /* @__PURE__ */ _(JS, {
35470
+ /* @__PURE__ */ _(qS, {
35499
35471
  label: i("uiLibrary.petFeeder.increaseVolume", "Increase volume"),
35500
35472
  symbol: "+",
35501
35473
  disabled: y || c.volume >= LS,
@@ -35510,7 +35482,7 @@ function US({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
35510
35482
  ]
35511
35483
  });
35512
35484
  }
35513
- function WS({ label: e, children: t }) {
35485
+ function US({ label: e, children: t }) {
35514
35486
  return /* @__PURE__ */ v("div", {
35515
35487
  className: "flex flex-col gap-1",
35516
35488
  children: [/* @__PURE__ */ _("span", {
@@ -35519,7 +35491,7 @@ function WS({ label: e, children: t }) {
35519
35491
  }), t]
35520
35492
  });
35521
35493
  }
35522
- function GS({ icon: e, label: t }) {
35494
+ function WS({ icon: e, label: t }) {
35523
35495
  return /* @__PURE__ */ v("span", {
35524
35496
  className: "inline-flex items-center gap-1 tabular-nums",
35525
35497
  children: [/* @__PURE__ */ _("span", {
@@ -35528,14 +35500,14 @@ function GS({ icon: e, label: t }) {
35528
35500
  }), t]
35529
35501
  });
35530
35502
  }
35531
- function KS({ grams: e, low: t, eating: n }) {
35503
+ function GS({ grams: e, low: t, eating: n }) {
35532
35504
  let r = x(), i = Math.min(1, Math.max(0, (e ?? 0) / de)), a = t ? zS : RS, o = 52 - i * 24;
35533
35505
  return /* @__PURE__ */ v("svg", {
35534
35506
  width: 72,
35535
35507
  height: 72,
35536
35508
  viewBox: "0 0 72 72",
35537
35509
  role: "img",
35538
- "aria-label": e === null ? r("uiLibrary.petFeeder.levelUnknown", "Food level unknown") : r("uiLibrary.petFeeder.gramsInBowl", "{{grams}} grams in bowl", { grams: e }),
35510
+ "aria-label": e === null ? r("uiLibrary.petFeeder.levelUnknown", "Food level unknown") : r("uiLibrary.petFeeder.gramsInBowl", "{{grams}} in bowl", { grams: e }),
35539
35511
  className: "shrink-0",
35540
35512
  children: [
35541
35513
  /* @__PURE__ */ _("defs", { children: /* @__PURE__ */ _("clipPath", {
@@ -35580,7 +35552,7 @@ function KS({ grams: e, low: t, eating: n }) {
35580
35552
  ]
35581
35553
  });
35582
35554
  }
35583
- function qS({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
35555
+ function KS({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
35584
35556
  let a = x();
35585
35557
  return /* @__PURE__ */ v("div", {
35586
35558
  className: "flex flex-col gap-1",
@@ -35592,11 +35564,11 @@ function qS({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
35592
35564
  children: [/* @__PURE__ */ v("div", {
35593
35565
  className: "flex items-center gap-1 rounded-lg border border-border/60 bg-surface-subtle px-1 py-1",
35594
35566
  children: [
35595
- /* @__PURE__ */ _(JS, {
35567
+ /* @__PURE__ */ _(qS, {
35596
35568
  label: a("uiLibrary.petFeeder.decreasePortion", "Decrease {{label}} portion", { label: e }),
35597
35569
  symbol: "−",
35598
35570
  disabled: n || t <= oe,
35599
- onClick: () => r(VS(t - 1))
35571
+ onClick: () => r(BS(t - 1))
35600
35572
  }),
35601
35573
  /* @__PURE__ */ v("span", {
35602
35574
  className: "w-12 text-center text-sm font-semibold tabular-nums text-foreground",
@@ -35605,11 +35577,11 @@ function qS({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
35605
35577
  children: "g"
35606
35578
  })]
35607
35579
  }),
35608
- /* @__PURE__ */ _(JS, {
35580
+ /* @__PURE__ */ _(qS, {
35609
35581
  label: a("uiLibrary.petFeeder.increasePortion", "Increase {{label}} portion", { label: e }),
35610
35582
  symbol: "+",
35611
35583
  disabled: n || t >= de,
35612
- onClick: () => r(VS(t + 1))
35584
+ onClick: () => r(BS(t + 1))
35613
35585
  })
35614
35586
  ]
35615
35587
  }), /* @__PURE__ */ v("button", {
@@ -35625,7 +35597,7 @@ function qS({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
35625
35597
  })]
35626
35598
  });
35627
35599
  }
35628
- function JS({ label: e, symbol: t, disabled: n, onClick: r }) {
35600
+ function qS({ label: e, symbol: t, disabled: n, onClick: r }) {
35629
35601
  return /* @__PURE__ */ _("button", {
35630
35602
  type: "button",
35631
35603
  "aria-label": e,
@@ -35635,7 +35607,7 @@ function JS({ label: e, symbol: t, disabled: n, onClick: r }) {
35635
35607
  children: t
35636
35608
  });
35637
35609
  }
35638
- function YS({ icon: e, label: t, busy: n, onClick: r }) {
35610
+ function JS({ icon: e, label: t, busy: n, onClick: r }) {
35639
35611
  return /* @__PURE__ */ v("button", {
35640
35612
  type: "button",
35641
35613
  disabled: n,
@@ -35644,7 +35616,7 @@ function YS({ icon: e, label: t, busy: n, onClick: r }) {
35644
35616
  children: [e, t]
35645
35617
  });
35646
35618
  }
35647
- function XS({ icon: e, label: t, on: n, busy: r, onToggle: i }) {
35619
+ function YS({ icon: e, label: t, on: n, busy: r, onToggle: i }) {
35648
35620
  return /* @__PURE__ */ v("button", {
35649
35621
  type: "button",
35650
35622
  "aria-label": t,
@@ -35657,8 +35629,8 @@ function XS({ icon: e, label: t, on: n, busy: r, onToggle: i }) {
35657
35629
  children: [e, t]
35658
35630
  });
35659
35631
  }
35660
- function ZS({ trpc: e, deviceId: t, features: n, optimistic: r }) {
35661
- return /* @__PURE__ */ _(US, {
35632
+ function XS({ trpc: e, deviceId: t, features: n, optimistic: r }) {
35633
+ return /* @__PURE__ */ _(HS, {
35662
35634
  trpc: e,
35663
35635
  deviceId: t,
35664
35636
  features: n,
@@ -35666,8 +35638,8 @@ function ZS({ trpc: e, deviceId: t, features: n, optimistic: r }) {
35666
35638
  optimistic: r
35667
35639
  });
35668
35640
  }
35669
- function QS({ trpc: e, deviceId: t, features: n, optimistic: r }) {
35670
- return /* @__PURE__ */ _(US, {
35641
+ function ZS({ trpc: e, deviceId: t, features: n, optimistic: r }) {
35642
+ return /* @__PURE__ */ _(HS, {
35671
35643
  trpc: e,
35672
35644
  deviceId: t,
35673
35645
  features: n,
@@ -35677,7 +35649,7 @@ function QS({ trpc: e, deviceId: t, features: n, optimistic: r }) {
35677
35649
  }
35678
35650
  //#endregion
35679
35651
  //#region ../ui-library/src/composites/device-controls/dishwasher-control.tsx
35680
- function $S(e, t = b) {
35652
+ function QS(e, t = b) {
35681
35653
  switch (e) {
35682
35654
  case "Run": return {
35683
35655
  label: t("uiLibrary.dishwasher.op.run", "Running"),
@@ -35721,7 +35693,7 @@ function $S(e, t = b) {
35721
35693
  };
35722
35694
  }
35723
35695
  }
35724
- function eC(e, t = b) {
35696
+ function $S(e, t = b) {
35725
35697
  switch (e.availability) {
35726
35698
  case "offline": return {
35727
35699
  label: t("uiLibrary.dishwasher.offline", "Offline"),
@@ -35731,20 +35703,20 @@ function eC(e, t = b) {
35731
35703
  label: t("uiLibrary.dishwasher.descriptionMissing", "Waiting for the appliance profile"),
35732
35704
  tone: "text-warning"
35733
35705
  };
35734
- case "available": return $S(e.operationState, t);
35706
+ case "available": return QS(e.operationState, t);
35735
35707
  }
35736
35708
  }
35737
- function tC(e) {
35709
+ function eC(e) {
35738
35710
  return (e.split(".").pop() ?? e).replace(/([a-z0-9])([A-Z])/g, "$1 $2");
35739
35711
  }
35740
- function nC(e) {
35712
+ function tC(e) {
35741
35713
  let t = (e.split(".").pop() ?? e).toLowerCase();
35742
35714
  return t.includes("salt") || t.includes("rinse");
35743
35715
  }
35744
- function rC(e) {
35745
- return e.filter((e) => !nC(e));
35716
+ function nC(e) {
35717
+ return e.filter((e) => !tC(e));
35746
35718
  }
35747
- function iC(e, t = b) {
35719
+ function rC(e, t = b) {
35748
35720
  if (e < 60) return t("uiLibrary.dishwasher.durationSeconds", "{{n}} s", { n: e });
35749
35721
  let n = Math.round(e / 60);
35750
35722
  if (n < 60) return t("uiLibrary.dishwasher.durationMinutes", "{{n}} min", { n });
@@ -35754,7 +35726,7 @@ function iC(e, t = b) {
35754
35726
  m: i
35755
35727
  });
35756
35728
  }
35757
- function aC(e, t) {
35729
+ function iC(e, t) {
35758
35730
  return Z({
35759
35731
  trpc: e,
35760
35732
  deviceId: t,
@@ -35762,7 +35734,7 @@ function aC(e, t) {
35762
35734
  slice: (e) => e.state.dishwasher
35763
35735
  });
35764
35736
  }
35765
- function oC({ label: e, busy: t, active: n, onClick: r, children: i }) {
35737
+ function aC({ label: e, busy: t, active: n, onClick: r, children: i }) {
35766
35738
  return /* @__PURE__ */ _("button", {
35767
35739
  type: "button",
35768
35740
  "aria-label": e,
@@ -35775,7 +35747,7 @@ function oC({ label: e, busy: t, active: n, onClick: r, children: i }) {
35775
35747
  children: i
35776
35748
  });
35777
35749
  }
35778
- function sC({ running: e, progressPercent: t }) {
35750
+ function oC({ running: e, progressPercent: t }) {
35779
35751
  let n = t == null ? e ? 40 : 0 : Math.max(0, Math.min(100, t));
35780
35752
  return /* @__PURE__ */ v("div", {
35781
35753
  "aria-hidden": "true",
@@ -35789,10 +35761,10 @@ function sC({ running: e, progressPercent: t }) {
35789
35761
  })]
35790
35762
  });
35791
35763
  }
35792
- function cC({ trpc: e, deviceId: t, layout: n }) {
35793
- let r = x(), { cap: i, slice: a, available: o } = aC(e, t);
35764
+ function sC({ trpc: e, deviceId: t, layout: n }) {
35765
+ let r = x(), { cap: i, slice: a, available: o } = iC(e, t);
35794
35766
  if (i === void 0 || a === void 0) return null;
35795
- let s = a, c = s.availability === "available", l = !o || !c, u = s.childLock === !0, d = eC(s, r), f = s.operationState === "Run", p = s.operationState === "Pause", m = s.remoteStartAllowed === !0 && s.selectedProgram !== null, h = (e) => {
35767
+ let s = a, c = s.availability === "available", l = !o || !c, u = s.childLock === !0, d = $S(s, r), f = s.operationState === "Run", p = s.operationState === "Pause", m = s.remoteStartAllowed === !0 && s.selectedProgram !== null, h = (e) => {
35796
35768
  l || e();
35797
35769
  };
35798
35770
  if (n === "compact") return /* @__PURE__ */ v("div", {
@@ -35811,20 +35783,20 @@ function cC({ trpc: e, deviceId: t, layout: n }) {
35811
35783
  s.program != null && /* @__PURE__ */ _("span", {
35812
35784
  className: "text-xs text-foreground-subtle truncate max-w-[7rem]",
35813
35785
  title: s.program,
35814
- children: tC(s.program)
35786
+ children: eC(s.program)
35815
35787
  }),
35816
35788
  s.remainingSeconds != null && /* @__PURE__ */ v("span", {
35817
35789
  className: "inline-flex items-center gap-0.5 text-xs text-foreground-subtle tabular-nums shrink-0",
35818
- children: [/* @__PURE__ */ _(gn, { className: "h-3 w-3" }), iC(s.remainingSeconds, r)]
35790
+ children: [/* @__PURE__ */ _(gn, { className: "h-3 w-3" }), rC(s.remainingSeconds, r)]
35819
35791
  }),
35820
- /* @__PURE__ */ _(oC, {
35792
+ /* @__PURE__ */ _(aC, {
35821
35793
  label: r("uiLibrary.dishwasher.start", "Start"),
35822
35794
  busy: l || !m,
35823
35795
  active: f,
35824
35796
  onClick: () => h(() => i.start({})),
35825
35797
  children: /* @__PURE__ */ _(Kt, { className: "h-3 w-3" })
35826
35798
  }),
35827
- /* @__PURE__ */ _(oC, {
35799
+ /* @__PURE__ */ _(aC, {
35828
35800
  label: p ? r("uiLibrary.dishwasher.resume", "Resume") : r("uiLibrary.dishwasher.pause", "Pause"),
35829
35801
  busy: l || !(f || p),
35830
35802
  active: p,
@@ -35839,7 +35811,7 @@ function cC({ trpc: e, deviceId: t, layout: n }) {
35839
35811
  children: [
35840
35812
  /* @__PURE__ */ v("div", {
35841
35813
  className: "flex items-start gap-4",
35842
- children: [/* @__PURE__ */ _(sC, {
35814
+ children: [/* @__PURE__ */ _(oC, {
35843
35815
  running: f,
35844
35816
  progressPercent: s.progressPercent
35845
35817
  }), /* @__PURE__ */ v("div", {
@@ -35858,15 +35830,15 @@ function cC({ trpc: e, deviceId: t, layout: n }) {
35858
35830
  s.program != null && /* @__PURE__ */ _("span", {
35859
35831
  className: "text-sm text-foreground-subtle",
35860
35832
  title: s.program,
35861
- children: tC(s.program)
35833
+ children: eC(s.program)
35862
35834
  }),
35863
35835
  s.remainingSeconds != null && /* @__PURE__ */ v("span", {
35864
35836
  className: "inline-flex items-center gap-1 text-sm text-foreground-subtle tabular-nums",
35865
- children: [/* @__PURE__ */ _(gn, { className: "h-3.5 w-3.5" }), r("uiLibrary.dishwasher.remaining", "{{time}} left", { time: iC(s.remainingSeconds, r) })]
35837
+ children: [/* @__PURE__ */ _(gn, { className: "h-3.5 w-3.5" }), r("uiLibrary.dishwasher.remaining", "{{time}} left", { time: rC(s.remainingSeconds, r) })]
35866
35838
  }),
35867
35839
  s.delayedStartSeconds != null && s.delayedStartSeconds > 0 && /* @__PURE__ */ _("span", {
35868
35840
  className: "text-xs text-foreground-subtle tabular-nums",
35869
- children: r("uiLibrary.dishwasher.startsIn", "Starts in {{time}}", { time: iC(s.delayedStartSeconds, r) })
35841
+ children: r("uiLibrary.dishwasher.startsIn", "Starts in {{time}}", { time: rC(s.delayedStartSeconds, r) })
35870
35842
  }),
35871
35843
  s.progressPercent != null && /* @__PURE__ */ v("div", {
35872
35844
  className: "flex items-center gap-2",
@@ -35886,41 +35858,41 @@ function cC({ trpc: e, deviceId: t, layout: n }) {
35886
35858
  children: [s.doorOpen === !0 && /* @__PURE__ */ v("span", {
35887
35859
  className: "inline-flex items-center gap-1 text-xs text-warning",
35888
35860
  children: [/* @__PURE__ */ _(lt, { className: "h-3.5 w-3.5" }), r("uiLibrary.dishwasher.doorOpen", "Door open")]
35889
- }), rC(s.activeEvents).map((e) => /* @__PURE__ */ _("span", {
35861
+ }), nC(s.activeEvents).map((e) => /* @__PURE__ */ _("span", {
35890
35862
  className: "text-xs text-warning",
35891
35863
  title: e,
35892
- children: tC(e)
35864
+ children: eC(e)
35893
35865
  }, e))]
35894
35866
  }),
35895
35867
  s.operationState === "Error" && /* @__PURE__ */ v("div", {
35896
35868
  className: "inline-flex items-center gap-1 text-xs text-danger",
35897
- children: [/* @__PURE__ */ _(yn, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ _("span", { children: s.errorLabel == null ? s.errorCode == null ? r("uiLibrary.dishwasher.op.error", "Error") : r("uiLibrary.dishwasher.errorCode", "Error {{code}}", { code: s.errorCode }) : tC(s.errorLabel) })]
35869
+ children: [/* @__PURE__ */ _(yn, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ _("span", { children: s.errorLabel == null ? s.errorCode == null ? r("uiLibrary.dishwasher.op.error", "Error") : r("uiLibrary.dishwasher.errorCode", "Error {{code}}", { code: s.errorCode }) : eC(s.errorLabel) })]
35898
35870
  }),
35899
35871
  /* @__PURE__ */ v("div", {
35900
35872
  className: "flex flex-wrap items-center gap-2",
35901
35873
  children: [
35902
- /* @__PURE__ */ _(oC, {
35874
+ /* @__PURE__ */ _(aC, {
35903
35875
  label: r("uiLibrary.dishwasher.start", "Start"),
35904
35876
  busy: l || !m,
35905
35877
  active: f,
35906
35878
  onClick: () => h(() => i.start({})),
35907
35879
  children: /* @__PURE__ */ _(Kt, { className: "h-4 w-4" })
35908
35880
  }),
35909
- /* @__PURE__ */ _(oC, {
35881
+ /* @__PURE__ */ _(aC, {
35910
35882
  label: p ? r("uiLibrary.dishwasher.resume", "Resume") : r("uiLibrary.dishwasher.pause", "Pause"),
35911
35883
  busy: l || !(f || p),
35912
35884
  active: p,
35913
35885
  onClick: () => h(() => p ? i.resume({}) : i.pause({})),
35914
35886
  children: /* @__PURE__ */ _(Ut, { className: "h-4 w-4" })
35915
35887
  }),
35916
- /* @__PURE__ */ _(oC, {
35888
+ /* @__PURE__ */ _(aC, {
35917
35889
  label: r("uiLibrary.dishwasher.stop", "Stop"),
35918
35890
  busy: l || !(f || p),
35919
35891
  active: !1,
35920
35892
  onClick: () => h(() => i.stop({})),
35921
35893
  children: /* @__PURE__ */ _(Pe, { className: "h-3.5 w-3.5" })
35922
35894
  }),
35923
- /* @__PURE__ */ _(oC, {
35895
+ /* @__PURE__ */ _(aC, {
35924
35896
  label: r("uiLibrary.dishwasher.power", "Power"),
35925
35897
  busy: l || s.powerOn === null,
35926
35898
  active: s.powerOn === !0,
@@ -35957,49 +35929,49 @@ function cC({ trpc: e, deviceId: t, layout: n }) {
35957
35929
  children: "—"
35958
35930
  }), g.map((e) => /* @__PURE__ */ _("option", {
35959
35931
  value: e,
35960
- children: tC(e)
35932
+ children: eC(e)
35961
35933
  }, e))]
35962
35934
  })]
35963
35935
  }),
35964
35936
  /* @__PURE__ */ v("div", {
35965
35937
  className: "flex flex-wrap gap-4 text-xs",
35966
35938
  children: [
35967
- /* @__PURE__ */ _(lC, {
35939
+ /* @__PURE__ */ _(cC, {
35968
35940
  label: r("uiLibrary.dishwasher.halfLoad", "Half load"),
35969
35941
  checked: s.halfLoad,
35970
35942
  shown: c,
35971
35943
  busy: l || u,
35972
35944
  onChange: (e) => void i.setHalfLoad({ on: e })
35973
35945
  }),
35974
- /* @__PURE__ */ _(lC, {
35946
+ /* @__PURE__ */ _(cC, {
35975
35947
  label: r("uiLibrary.dishwasher.hygienePlus", "Hygiene plus"),
35976
35948
  checked: s.hygienePlus,
35977
35949
  shown: c,
35978
35950
  busy: l || u,
35979
35951
  onChange: (e) => void i.setHygienePlus({ on: e })
35980
35952
  }),
35981
- /* @__PURE__ */ _(lC, {
35953
+ /* @__PURE__ */ _(cC, {
35982
35954
  label: r("uiLibrary.dishwasher.extraDry", "Extra dry"),
35983
35955
  checked: s.extraDry,
35984
35956
  shown: c,
35985
35957
  busy: l || u,
35986
35958
  onChange: (e) => void i.setExtraDry({ on: e })
35987
35959
  }),
35988
- /* @__PURE__ */ _(lC, {
35960
+ /* @__PURE__ */ _(cC, {
35989
35961
  label: r("uiLibrary.dishwasher.intensiveZone", "Intensive zone"),
35990
35962
  checked: s.intensiveZone,
35991
35963
  shown: c,
35992
35964
  busy: l || u,
35993
35965
  onChange: (e) => void i.setIntensiveZone({ on: e })
35994
35966
  }),
35995
- /* @__PURE__ */ _(lC, {
35967
+ /* @__PURE__ */ _(cC, {
35996
35968
  label: r("uiLibrary.dishwasher.varioSpeedPlus", "VarioSpeed+"),
35997
35969
  checked: s.varioSpeedPlus,
35998
35970
  shown: c,
35999
35971
  busy: l || u,
36000
35972
  onChange: (e) => void i.setVarioSpeedPlus({ on: e })
36001
35973
  }),
36002
- /* @__PURE__ */ _(lC, {
35974
+ /* @__PURE__ */ _(cC, {
36003
35975
  label: r("uiLibrary.dishwasher.childLock", "Child lock"),
36004
35976
  checked: s.childLock,
36005
35977
  shown: c,
@@ -36011,7 +35983,7 @@ function cC({ trpc: e, deviceId: t, layout: n }) {
36011
35983
  ]
36012
35984
  });
36013
35985
  }
36014
- function lC({ label: e, checked: t, shown: n, busy: r, onChange: i }) {
35986
+ function cC({ label: e, checked: t, shown: n, busy: r, onChange: i }) {
36015
35987
  let a = x();
36016
35988
  return t === null && n ? null : /* @__PURE__ */ v("label", {
36017
35989
  className: "inline-flex items-center gap-2 cursor-pointer",
@@ -36037,24 +36009,24 @@ function lC({ label: e, checked: t, shown: n, busy: r, onChange: i }) {
36037
36009
  ]
36038
36010
  });
36039
36011
  }
36040
- function uC(e) {
36041
- return /* @__PURE__ */ _(cC, {
36012
+ function lC(e) {
36013
+ return /* @__PURE__ */ _(sC, {
36042
36014
  ...e,
36043
36015
  layout: "compact"
36044
36016
  });
36045
36017
  }
36046
- function dC(e) {
36047
- return /* @__PURE__ */ _(cC, {
36018
+ function uC(e) {
36019
+ return /* @__PURE__ */ _(sC, {
36048
36020
  ...e,
36049
36021
  layout: "full"
36050
36022
  });
36051
36023
  }
36052
36024
  //#endregion
36053
36025
  //#region ../ui-library/src/composites/device-controls/heating-valve-readout.tsx
36054
- function fC(e) {
36026
+ function dC(e) {
36055
36027
  return e === null ? "—" : `${e}%`;
36056
36028
  }
36057
- function pC({ trpc: e, deviceId: t, layout: n }) {
36029
+ function fC({ trpc: e, deviceId: t, layout: n }) {
36058
36030
  let r = x(), { cap: i, slice: a } = Z({
36059
36031
  trpc: e,
36060
36032
  deviceId: t,
@@ -36062,7 +36034,7 @@ function pC({ trpc: e, deviceId: t, layout: n }) {
36062
36034
  slice: (e) => e.state.heatingValve
36063
36035
  });
36064
36036
  if (i === void 0 || a === void 0) return null;
36065
- let o = r("uiLibrary.heatingValveReadout.valve", "Valve"), s = fC(a.position);
36037
+ let o = r("uiLibrary.heatingValveReadout.valve", "Valve"), s = dC(a.position);
36066
36038
  return n === "compact" ? /* @__PURE__ */ _("span", {
36067
36039
  className: "inline-flex items-center text-xs tabular-nums text-foreground-subtle",
36068
36040
  "aria-label": `${o} ${s}`,
@@ -36078,27 +36050,27 @@ function pC({ trpc: e, deviceId: t, layout: n }) {
36078
36050
  //#endregion
36079
36051
  //#region ../ui-library/src/composites/device-controls/ac-panel.tsx
36080
36052
  e();
36081
- var mC = new Set([
36053
+ var pC = new Set([
36082
36054
  "cool",
36083
36055
  "heat_cool",
36084
36056
  "dry",
36085
36057
  "fan_only"
36086
36058
  ]);
36087
- function hC(e) {
36088
- return e.some((e) => mC.has(e));
36059
+ function mC(e) {
36060
+ return e.some((e) => pC.has(e));
36089
36061
  }
36090
- function gC(e) {
36062
+ function hC(e) {
36091
36063
  let t = e.minTemp, n = e.maxTemp;
36092
36064
  return typeof t != "number" || typeof n != "number" || !Number.isFinite(t) || !Number.isFinite(n) || n <= t ? null : {
36093
36065
  min: t,
36094
36066
  max: n
36095
36067
  };
36096
36068
  }
36097
- function _C(e, t, n) {
36069
+ function gC(e, t, n) {
36098
36070
  let r = ob(n), i = Math.min(1, Math.max(0, e)), a = t.min + i * (t.max - t.min), o = Math.round((a - t.min) / r), s = t.min + o * r, c = Math.round(s * 1e3) / 1e3;
36099
36071
  return Math.min(t.max, Math.max(t.min, c));
36100
36072
  }
36101
- function vC(e, t) {
36073
+ function _C(e, t) {
36102
36074
  switch (t) {
36103
36075
  case "cool": return e("uiLibrary.acPanel.modeCool", "Cool");
36104
36076
  case "heat": return e("uiLibrary.acPanel.modeHeat", "Heat");
@@ -36109,7 +36081,7 @@ function vC(e, t) {
36109
36081
  case "off": return e("uiLibrary.acPanel.modeOff", "Off");
36110
36082
  }
36111
36083
  }
36112
- var yC = {
36084
+ var vC = {
36113
36085
  cool: ln,
36114
36086
  heat: gt,
36115
36087
  auto: un,
@@ -36117,7 +36089,7 @@ var yC = {
36117
36089
  fan_only: mt,
36118
36090
  dry: ft,
36119
36091
  off: Jt
36120
- }, bC = {
36092
+ }, yC = {
36121
36093
  heat: "#f59e0b",
36122
36094
  cool: "#60a5fa",
36123
36095
  auto: "#c084fc",
@@ -36126,11 +36098,11 @@ var yC = {
36126
36098
  dry: "#22d3ee",
36127
36099
  off: "#a1a1aa"
36128
36100
  };
36129
- function xC(e) {
36101
+ function bC(e) {
36130
36102
  let t = e.replace(/_/g, " ");
36131
36103
  return t.charAt(0).toUpperCase() + t.slice(1);
36132
36104
  }
36133
- function SC(e) {
36105
+ function xC(e) {
36134
36106
  switch (e) {
36135
36107
  case "turbo": return Mn;
36136
36108
  case "quiet": return ht;
@@ -36141,7 +36113,7 @@ function SC(e) {
36141
36113
  default: return un;
36142
36114
  }
36143
36115
  }
36144
- function CC(e) {
36116
+ function SC(e) {
36145
36117
  switch (e) {
36146
36118
  case "high": return 1;
36147
36119
  case "medium_high": return 1.3;
@@ -36151,8 +36123,8 @@ function CC(e) {
36151
36123
  default: return 1.8;
36152
36124
  }
36153
36125
  }
36154
- var wC = "\n@keyframes acv-fall { 0%{transform:translateY(-1.75rem);opacity:0} 18%{opacity:.7} 82%{opacity:.7} 100%{transform:translateY(7.5rem);opacity:0} }\n@keyframes acv-rise { 0%{transform:translateY(7.5rem);opacity:0} 18%{opacity:.7} 82%{opacity:.7} 100%{transform:translateY(-1.75rem);opacity:0} }\n@keyframes acv-sway { 0%,100%{transform:translateX(-9%)} 50%{transform:translateX(9%)} }\n@keyframes acv-swing-h { 0%,100%{transform:translateX(-22%)} 50%{transform:translateX(22%)} }\n@keyframes acv-swing-v { 0%,100%{transform:translateY(-22%)} 50%{transform:translateY(22%)} }\n@keyframes acv-spin { to { transform:rotate(360deg) } }\n@keyframes acv-glow { 0%,100%{opacity:.35;transform:scale(1)} 50%{opacity:.6;transform:scale(1.06)} }\n@media (prefers-reduced-motion: reduce) {\n .acv-streak, .acv-fan, .acv-sway-wrap, .acv-glow, .acv-swing { animation: none !important; }\n}\n";
36155
- function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36126
+ var CC = "\n@keyframes acv-fall { 0%{transform:translateY(-1.75rem);opacity:0} 18%{opacity:.7} 82%{opacity:.7} 100%{transform:translateY(7.5rem);opacity:0} }\n@keyframes acv-rise { 0%{transform:translateY(7.5rem);opacity:0} 18%{opacity:.7} 82%{opacity:.7} 100%{transform:translateY(-1.75rem);opacity:0} }\n@keyframes acv-sway { 0%,100%{transform:translateX(-9%)} 50%{transform:translateX(9%)} }\n@keyframes acv-swing-h { 0%,100%{transform:translateX(-22%)} 50%{transform:translateX(22%)} }\n@keyframes acv-swing-v { 0%,100%{transform:translateY(-22%)} 50%{transform:translateY(22%)} }\n@keyframes acv-spin { to { transform:rotate(360deg) } }\n@keyframes acv-glow { 0%,100%{opacity:.35;transform:scale(1)} 50%{opacity:.6;transform:scale(1.06)} }\n@media (prefers-reduced-motion: reduce) {\n .acv-streak, .acv-fan, .acv-sway-wrap, .acv-glow, .acv-swing { animation: none !important; }\n}\n";
36127
+ function wC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36156
36128
  let i = x(), { cap: a, slice: o, available: s } = Z({
36157
36129
  trpc: e,
36158
36130
  deviceId: t,
@@ -36221,23 +36193,23 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36221
36193
  className: N("bg-transparent px-0.5 text-xs text-foreground-subtle hover:text-foreground cursor-pointer", u && "opacity-40 cursor-not-allowed"),
36222
36194
  children: c.availableModes.map((e) => /* @__PURE__ */ _("option", {
36223
36195
  value: e,
36224
- children: vC(i, e)
36196
+ children: _C(i, e)
36225
36197
  }, e))
36226
36198
  })
36227
36199
  ]
36228
36200
  });
36229
- let d = bC[c.mode], f = c.mode !== "off", p = !hC(c.availableModes), m = gC(c), h = SC(c.preset), g = c.preset === "turbo", b = Math.max(.55, CC(c.fanMode) * (g ? .6 : 1)), S = c.swingVertical !== null, C = c.swingHorizontal !== null, w = f && (c.swingVertical === !0 || c.swingHorizontal === !0);
36201
+ let d = yC[c.mode], f = c.mode !== "off", p = !mC(c.availableModes), m = hC(c), h = xC(c.preset), g = c.preset === "turbo", b = Math.max(.55, SC(c.fanMode) * (g ? .6 : 1)), S = c.swingVertical !== null, C = c.swingHorizontal !== null, w = f && (c.swingVertical === !0 || c.swingHorizontal === !0);
36230
36202
  return /* @__PURE__ */ v("div", {
36231
36203
  "data-mode": c.mode,
36232
36204
  className: N("relative flex flex-col items-stretch gap-2.5 overflow-hidden rounded-lg border p-3 transition-colors", cb[c.mode]),
36233
36205
  children: [
36234
- /* @__PURE__ */ _("style", { children: wC }),
36206
+ /* @__PURE__ */ _("style", { children: CC }),
36235
36207
  /* @__PURE__ */ v("div", {
36236
36208
  className: "relative z-10 flex flex-col items-center justify-center gap-1 overflow-hidden rounded-lg border border-border/50 bg-surface/30 px-3 py-3",
36237
36209
  children: [
36238
36210
  /* @__PURE__ */ _("div", {
36239
36211
  className: "pointer-events-none absolute inset-0 opacity-60",
36240
- children: p && !f ? /* @__PURE__ */ _(MC, {}) : /* @__PURE__ */ _(jC, {
36212
+ children: p && !f ? /* @__PURE__ */ _(jC, {}) : /* @__PURE__ */ _(AC, {
36241
36213
  mode: c.mode,
36242
36214
  accent: d,
36243
36215
  periodSec: b,
@@ -36258,12 +36230,12 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36258
36230
  className: "relative z-10 flex items-center gap-1.5 text-[11px] font-semibold uppercase tracking-wide",
36259
36231
  style: { color: d },
36260
36232
  children: [
36261
- /* @__PURE__ */ _(DC, {
36233
+ /* @__PURE__ */ _(EC, {
36262
36234
  mode: c.mode,
36263
36235
  heatingOnly: p,
36264
36236
  className: "h-3.5 w-3.5"
36265
36237
  }),
36266
- vC(i, c.mode),
36238
+ _C(i, c.mode),
36267
36239
  c.currentTemp !== null && /* @__PURE__ */ _("span", {
36268
36240
  className: "normal-case text-foreground-subtle",
36269
36241
  children: i("uiLibrary.acPanel.now", "· {{temp}}° now", { temp: c.currentTemp })
@@ -36290,7 +36262,7 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36290
36262
  }) : /* @__PURE__ */ v(y, { children: [/* @__PURE__ */ v("div", {
36291
36263
  className: "relative z-10 flex items-center gap-3",
36292
36264
  children: [
36293
- /* @__PURE__ */ _(kC, {
36265
+ /* @__PURE__ */ _(OC, {
36294
36266
  label: i("uiLibrary.acPanel.decrease", "Decrease target"),
36295
36267
  symbol: "−",
36296
36268
  disabled: u,
@@ -36311,7 +36283,7 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36311
36283
  children: "°"
36312
36284
  })]
36313
36285
  }),
36314
- /* @__PURE__ */ _(kC, {
36286
+ /* @__PURE__ */ _(OC, {
36315
36287
  label: i("uiLibrary.acPanel.increase", "Increase target"),
36316
36288
  symbol: "+",
36317
36289
  disabled: u,
@@ -36324,7 +36296,7 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36324
36296
  ]
36325
36297
  }), m !== null && /* @__PURE__ */ _("div", {
36326
36298
  className: "relative z-10 w-full px-1",
36327
- children: /* @__PURE__ */ _(AC, {
36299
+ children: /* @__PURE__ */ _(kC, {
36328
36300
  value: c.target,
36329
36301
  min: m.min,
36330
36302
  max: m.max,
@@ -36345,12 +36317,12 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36345
36317
  /* @__PURE__ */ v("div", {
36346
36318
  className: "relative z-10 grid grid-cols-3 gap-2",
36347
36319
  children: [
36348
- /* @__PURE__ */ _(OC, {
36320
+ /* @__PURE__ */ _(DC, {
36349
36321
  label: i("uiLibrary.acPanel.mode", "Mode"),
36350
36322
  icon: /* @__PURE__ */ _("span", {
36351
36323
  style: { color: d },
36352
36324
  className: "flex",
36353
- children: /* @__PURE__ */ _(DC, {
36325
+ children: /* @__PURE__ */ _(EC, {
36354
36326
  mode: c.mode,
36355
36327
  heatingOnly: p,
36356
36328
  className: "h-4 w-4"
@@ -36359,7 +36331,7 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36359
36331
  value: c.mode,
36360
36332
  options: c.availableModes.map((e) => ({
36361
36333
  value: e,
36362
- label: vC(i, e)
36334
+ label: _C(i, e)
36363
36335
  })),
36364
36336
  disabled: u,
36365
36337
  onChange: (e) => {
@@ -36367,26 +36339,26 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36367
36339
  t && (l({ mode: t }), a.setMode({ mode: t }));
36368
36340
  }
36369
36341
  }),
36370
- c.availableFanModes.length > 0 && /* @__PURE__ */ _(OC, {
36342
+ c.availableFanModes.length > 0 && /* @__PURE__ */ _(DC, {
36371
36343
  label: i("uiLibrary.acPanel.fan", "Fan"),
36372
36344
  icon: /* @__PURE__ */ _(kn, { className: "h-4 w-4 text-sky-500" }),
36373
36345
  value: c.fanMode,
36374
36346
  options: c.availableFanModes.map((e) => ({
36375
36347
  value: e,
36376
- label: xC(e)
36348
+ label: bC(e)
36377
36349
  })),
36378
36350
  disabled: u,
36379
36351
  onChange: (e) => {
36380
36352
  l({ fanMode: e }), a.setFanMode({ fanMode: e });
36381
36353
  }
36382
36354
  }),
36383
- c.availablePresets.length > 0 && /* @__PURE__ */ _(OC, {
36355
+ c.availablePresets.length > 0 && /* @__PURE__ */ _(DC, {
36384
36356
  label: i("uiLibrary.acPanel.preset", "Preset"),
36385
36357
  icon: /* @__PURE__ */ _(h, { className: "h-4 w-4 text-emerald-500" }),
36386
36358
  value: c.preset,
36387
36359
  options: c.availablePresets.map((e) => ({
36388
36360
  value: e,
36389
- label: xC(e)
36361
+ label: bC(e)
36390
36362
  })),
36391
36363
  disabled: u,
36392
36364
  onChange: (e) => {
@@ -36395,18 +36367,18 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36395
36367
  })
36396
36368
  ]
36397
36369
  }),
36398
- (S || C) && /* @__PURE__ */ _(EC, {
36370
+ (S || C) && /* @__PURE__ */ _(TC, {
36399
36371
  label: i("uiLibrary.acPanel.swing", "Swing"),
36400
36372
  children: /* @__PURE__ */ v("div", {
36401
36373
  className: "grid grid-cols-2 gap-1",
36402
- children: [S && /* @__PURE__ */ _(PC, {
36374
+ children: [S && /* @__PURE__ */ _(NC, {
36403
36375
  axis: "vertical",
36404
36376
  on: c.swingVertical ?? !1,
36405
36377
  busy: u,
36406
36378
  onToggle: (e) => {
36407
36379
  l({ swingVertical: e }), a.setSwingVertical({ on: e });
36408
36380
  }
36409
- }), C && /* @__PURE__ */ _(PC, {
36381
+ }), C && /* @__PURE__ */ _(NC, {
36410
36382
  axis: "horizontal",
36411
36383
  on: c.swingHorizontal ?? !1,
36412
36384
  busy: u,
@@ -36419,7 +36391,7 @@ function TC({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
36419
36391
  ]
36420
36392
  });
36421
36393
  }
36422
- function EC({ label: e, children: t }) {
36394
+ function TC({ label: e, children: t }) {
36423
36395
  return /* @__PURE__ */ v("div", {
36424
36396
  className: "relative z-10 flex flex-col gap-1",
36425
36397
  children: [/* @__PURE__ */ _("span", {
@@ -36428,13 +36400,13 @@ function EC({ label: e, children: t }) {
36428
36400
  }), t]
36429
36401
  });
36430
36402
  }
36431
- function DC({ mode: e, heatingOnly: t = !1, className: n }) {
36432
- return /* @__PURE__ */ _(t && e === "heat" ? xt : yC[e], {
36403
+ function EC({ mode: e, heatingOnly: t = !1, className: n }) {
36404
+ return /* @__PURE__ */ _(t && e === "heat" ? xt : vC[e], {
36433
36405
  className: n,
36434
36406
  "aria-hidden": !0
36435
36407
  });
36436
36408
  }
36437
- function OC({ label: e, icon: t, value: n, options: r, disabled: i, onChange: a }) {
36409
+ function DC({ label: e, icon: t, value: n, options: r, disabled: i, onChange: a }) {
36438
36410
  return /* @__PURE__ */ v("div", {
36439
36411
  className: "flex min-w-0 flex-col gap-1",
36440
36412
  children: [/* @__PURE__ */ _("span", {
@@ -36465,7 +36437,7 @@ function OC({ label: e, icon: t, value: n, options: r, disabled: i, onChange: a
36465
36437
  })]
36466
36438
  });
36467
36439
  }
36468
- function kC({ label: e, symbol: t, disabled: n, onClick: r }) {
36440
+ function OC({ label: e, symbol: t, disabled: n, onClick: r }) {
36469
36441
  return /* @__PURE__ */ _("button", {
36470
36442
  type: "button",
36471
36443
  "aria-label": e,
@@ -36475,12 +36447,12 @@ function kC({ label: e, symbol: t, disabled: n, onClick: r }) {
36475
36447
  children: t
36476
36448
  });
36477
36449
  }
36478
- function AC({ value: e, min: n, max: r, step: i, accent: a, disabled: o, label: s, onPreview: c, onCommit: l }) {
36450
+ function kC({ value: e, min: n, max: r, step: i, accent: a, disabled: o, label: s, onPreview: c, onCommit: l }) {
36479
36451
  let u = t(null), d = t(!1), [f, p] = h(null), m = f ?? e, g = `${Math.min(1, Math.max(0, (m - n) / (r - n))) * 100}%`, y = (t) => {
36480
36452
  let a = u.current;
36481
36453
  if (a === null) return e;
36482
36454
  let o = a.getBoundingClientRect();
36483
- return o.width <= 0 ? e : _C((t - o.left) / o.width, {
36455
+ return o.width <= 0 ? e : gC((t - o.left) / o.width, {
36484
36456
  min: n,
36485
36457
  max: r
36486
36458
  }, i);
@@ -36548,7 +36520,7 @@ function AC({ value: e, min: n, max: r, step: i, accent: a, disabled: o, label:
36548
36520
  })]
36549
36521
  });
36550
36522
  }
36551
- function jC({ mode: e, accent: t, periodSec: n, swaying: r, forceRising: i = !1 }) {
36523
+ function AC({ mode: e, accent: t, periodSec: n, swaying: r, forceRising: i = !1 }) {
36552
36524
  let a = [
36553
36525
  0,
36554
36526
  1,
@@ -36565,7 +36537,7 @@ function jC({ mode: e, accent: t, periodSec: n, swaying: r, forceRising: i = !1
36565
36537
  children: a.map((e) => /* @__PURE__ */ _("span", { className: "h-8 w-1 rounded-full bg-foreground-subtle opacity-40" }, e))
36566
36538
  }) : e === "fan_only" ? /* @__PURE__ */ _("div", {
36567
36539
  className: "flex h-full items-center justify-center",
36568
- children: /* @__PURE__ */ _(NC, {
36540
+ children: /* @__PURE__ */ _(MC, {
36569
36541
  color: t,
36570
36542
  periodSec: Math.max(.5, n * .7),
36571
36543
  size: 56
@@ -36592,7 +36564,7 @@ function jC({ mode: e, accent: t, periodSec: n, swaying: r, forceRising: i = !1
36592
36564
  })
36593
36565
  });
36594
36566
  }
36595
- function MC() {
36567
+ function jC() {
36596
36568
  return /* @__PURE__ */ _("div", {
36597
36569
  "data-testid": "climate-radiator",
36598
36570
  "aria-hidden": !0,
@@ -36608,7 +36580,7 @@ function MC() {
36608
36580
  ].map((e) => /* @__PURE__ */ _("span", { className: "h-10 w-1.5 rounded-t-full bg-foreground-subtle" }, e))
36609
36581
  });
36610
36582
  }
36611
- function NC({ color: e, periodSec: t, size: n }) {
36583
+ function MC({ color: e, periodSec: t, size: n }) {
36612
36584
  return /* @__PURE__ */ v("svg", {
36613
36585
  width: n,
36614
36586
  height: n,
@@ -36636,7 +36608,7 @@ function NC({ color: e, periodSec: t, size: n }) {
36636
36608
  })]
36637
36609
  });
36638
36610
  }
36639
- function PC({ axis: e, on: t, busy: n, onToggle: r }) {
36611
+ function NC({ axis: e, on: t, busy: n, onToggle: r }) {
36640
36612
  let i = x(), a = e === "vertical" ? i("uiLibrary.acPanel.vertical", "Vertical") : i("uiLibrary.acPanel.horizontal", "Horizontal"), o = e === "vertical" ? zt : Rt, s = e === "vertical" ? "acv-swing-v" : "acv-swing-h";
36641
36613
  return /* @__PURE__ */ v("button", {
36642
36614
  type: "button",
@@ -36656,48 +36628,48 @@ function PC({ axis: e, on: t, busy: n, onToggle: r }) {
36656
36628
  }
36657
36629
  //#endregion
36658
36630
  //#region ../ui-library/src/composites/device-controls/thermostat-hero-card.tsx
36659
- var FC = 5, IC = 35;
36660
- function LC(e, t, n) {
36631
+ var PC = 5, FC = 35;
36632
+ function IC(e, t, n) {
36661
36633
  return n <= t ? 0 : Math.min(1, Math.max(0, (e - t) / (n - t)));
36662
36634
  }
36663
- function RC(e, t, n) {
36635
+ function LC(e, t, n) {
36664
36636
  return Math.round(t + e * (n - t));
36665
36637
  }
36666
- var zC = 176, BC = 76, VC = 2 * Math.PI * BC, HC = 270 / 360 * VC, UC = zC / 2 - BC - 10;
36667
- function WC(e) {
36668
- let t = zC / 2, n = zC / 2, r = VC - HC, i = e.mode === "band" ? (() => {
36669
- let t = e.band.from * HC, n = Math.max(0, (e.band.to - e.band.from) * HC);
36638
+ var RC = 176, zC = 76, BC = 2 * Math.PI * zC, VC = 270 / 360 * BC, HC = RC / 2 - zC - 10;
36639
+ function UC(e) {
36640
+ let t = RC / 2, n = RC / 2, r = BC - VC, i = e.mode === "band" ? (() => {
36641
+ let t = e.band.from * VC, n = Math.max(0, (e.band.to - e.band.from) * VC);
36670
36642
  return {
36671
- dasharray: `${n} ${VC - n}`,
36643
+ dasharray: `${n} ${BC - n}`,
36672
36644
  dashoffset: -t
36673
36645
  };
36674
36646
  })() : (() => {
36675
- let t = e.fraction * HC;
36647
+ let t = e.fraction * VC;
36676
36648
  return {
36677
- dasharray: `${t} ${VC - t}`,
36649
+ dasharray: `${t} ${BC - t}`,
36678
36650
  dashoffset: void 0
36679
36651
  };
36680
36652
  })();
36681
36653
  return /* @__PURE__ */ v("svg", {
36682
- width: zC,
36683
- height: zC,
36684
- viewBox: `0 0 ${zC} ${zC}`,
36654
+ width: RC,
36655
+ height: RC,
36656
+ viewBox: `0 0 ${RC} ${RC}`,
36685
36657
  "aria-hidden": "true",
36686
36658
  className: "absolute inset-0",
36687
36659
  style: { transform: "rotate(135deg)" },
36688
36660
  children: [/* @__PURE__ */ _("circle", {
36689
36661
  cx: t,
36690
36662
  cy: n,
36691
- r: BC,
36663
+ r: zC,
36692
36664
  fill: "none",
36693
36665
  stroke: "var(--color-border)",
36694
36666
  strokeWidth: 12,
36695
- strokeDasharray: `${HC} ${r}`,
36667
+ strokeDasharray: `${VC} ${r}`,
36696
36668
  strokeLinecap: "round"
36697
36669
  }), /* @__PURE__ */ _("circle", {
36698
36670
  cx: t,
36699
36671
  cy: n,
36700
- r: BC,
36672
+ r: zC,
36701
36673
  fill: "none",
36702
36674
  stroke: e.color,
36703
36675
  strokeWidth: 12,
@@ -36707,7 +36679,7 @@ function WC(e) {
36707
36679
  })]
36708
36680
  });
36709
36681
  }
36710
- var GC = {
36682
+ var WC = {
36711
36683
  heat: "#f59e0b",
36712
36684
  cool: "#60a5fa",
36713
36685
  auto: "#c084fc",
@@ -36716,7 +36688,7 @@ var GC = {
36716
36688
  dry: "#22d3ee",
36717
36689
  off: "#d4d4d8"
36718
36690
  };
36719
- function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36691
+ function GC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36720
36692
  let i = x(), a = Z({
36721
36693
  trpc: e,
36722
36694
  deviceId: t,
@@ -36731,14 +36703,14 @@ function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36731
36703
  if (!l && !u) return null;
36732
36704
  if (!l && u) return /* @__PURE__ */ _("div", {
36733
36705
  className: "flex flex-col items-stretch gap-3 rounded-lg border border-border bg-surface p-4",
36734
- children: /* @__PURE__ */ _(pC, {
36706
+ children: /* @__PURE__ */ _(fC, {
36735
36707
  trpc: e,
36736
36708
  deviceId: t,
36737
36709
  layout: "full"
36738
36710
  })
36739
36711
  });
36740
36712
  if (a.cap === void 0 || s === void 0) return null;
36741
- let d = a.cap, f = !a.available, p = GC[s.mode], m = s.mode === "heat_cool" || s.targetLow !== null && s.targetHigh !== null, h = FC, g = IC, b = !m && s.target !== null ? LC(s.target, h, g) : 0, S = m && s.targetLow !== null ? LC(s.targetLow, h, g) : 0, C = m && s.targetHigh !== null ? LC(s.targetHigh, h, g) : 0;
36713
+ let d = a.cap, f = !a.available, p = WC[s.mode], m = s.mode === "heat_cool" || s.targetLow !== null && s.targetHigh !== null, h = PC, g = FC, b = !m && s.target !== null ? IC(s.target, h, g) : 0, S = m && s.targetLow !== null ? IC(s.targetLow, h, g) : 0, C = m && s.targetHigh !== null ? IC(s.targetHigh, h, g) : 0;
36742
36714
  return /* @__PURE__ */ v("div", {
36743
36715
  "data-mode": s.mode,
36744
36716
  className: N("flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4 transition-colors", cb[s.mode]),
@@ -36748,18 +36720,18 @@ function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36748
36720
  children: [/* @__PURE__ */ v("div", {
36749
36721
  className: "relative",
36750
36722
  style: {
36751
- width: zC,
36752
- height: zC
36723
+ width: RC,
36724
+ height: RC
36753
36725
  },
36754
36726
  children: [
36755
- m ? /* @__PURE__ */ _(WC, {
36727
+ m ? /* @__PURE__ */ _(UC, {
36756
36728
  mode: "band",
36757
36729
  band: {
36758
36730
  from: S,
36759
36731
  to: C
36760
36732
  },
36761
36733
  color: p
36762
- }) : /* @__PURE__ */ _(WC, {
36734
+ }) : /* @__PURE__ */ _(UC, {
36763
36735
  mode: "fill",
36764
36736
  fraction: b,
36765
36737
  color: p
@@ -36769,10 +36741,10 @@ function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36769
36741
  children: /* @__PURE__ */ _(Hy, {
36770
36742
  fraction: S,
36771
36743
  color: p,
36772
- knobTopPx: UC,
36744
+ knobTopPx: HC,
36773
36745
  onDragFraction: (e) => {
36774
36746
  if (f || s.targetHigh === null) return;
36775
- let t = Math.min(RC(e, h, g), s.targetHigh);
36747
+ let t = Math.min(LC(e, h, g), s.targetHigh);
36776
36748
  c({ targetLow: t }), d.setTargetRange({
36777
36749
  targetLow: t,
36778
36750
  targetHigh: s.targetHigh
@@ -36784,10 +36756,10 @@ function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36784
36756
  children: /* @__PURE__ */ _(Hy, {
36785
36757
  fraction: C,
36786
36758
  color: p,
36787
- knobTopPx: UC,
36759
+ knobTopPx: HC,
36788
36760
  onDragFraction: (e) => {
36789
36761
  if (f || s.targetLow === null) return;
36790
- let t = Math.max(RC(e, h, g), s.targetLow);
36762
+ let t = Math.max(LC(e, h, g), s.targetLow);
36791
36763
  c({ targetHigh: t }), d.setTargetRange({
36792
36764
  targetLow: s.targetLow,
36793
36765
  targetHigh: t
@@ -36799,10 +36771,10 @@ function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36799
36771
  children: /* @__PURE__ */ _(Hy, {
36800
36772
  fraction: b,
36801
36773
  color: p,
36802
- knobTopPx: UC,
36774
+ knobTopPx: HC,
36803
36775
  onDragFraction: (e) => {
36804
36776
  if (f) return;
36805
- let t = RC(e, h, g);
36777
+ let t = LC(e, h, g);
36806
36778
  c({ target: t }), d.setTarget({ target: t });
36807
36779
  }
36808
36780
  })
@@ -36848,7 +36820,7 @@ function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36848
36820
  })
36849
36821
  })]
36850
36822
  }),
36851
- u ? /* @__PURE__ */ _(pC, {
36823
+ u ? /* @__PURE__ */ _(fC, {
36852
36824
  trpc: e,
36853
36825
  deviceId: t,
36854
36826
  layout: "full"
@@ -36873,13 +36845,13 @@ function KC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36873
36845
  }
36874
36846
  //#endregion
36875
36847
  //#region ../ui-library/src/composites/device-controls/lock-hero-card.tsx
36876
- function qC(e) {
36848
+ function KC(e) {
36877
36849
  return e === "locked" || e === "locking";
36878
36850
  }
36879
- function JC(e) {
36851
+ function qC(e) {
36880
36852
  return e === "jammed";
36881
36853
  }
36882
- var YC = {
36854
+ var JC = {
36883
36855
  locked: {
36884
36856
  colorClass: "border-success/30 bg-success/10 text-success",
36885
36857
  icon: "locked"
@@ -36901,8 +36873,8 @@ var YC = {
36901
36873
  icon: "locked"
36902
36874
  }
36903
36875
  };
36904
- function XC({ state: e }) {
36905
- let t = YC[e];
36876
+ function YC({ state: e }) {
36877
+ let t = JC[e];
36906
36878
  return /* @__PURE__ */ _("div", {
36907
36879
  "data-testid": "lock-glyph",
36908
36880
  "data-state": e,
@@ -36916,13 +36888,13 @@ function XC({ state: e }) {
36916
36888
  })
36917
36889
  });
36918
36890
  }
36919
- function ZC({ state: e }) {
36891
+ function XC({ state: e }) {
36920
36892
  return /* @__PURE__ */ _("span", {
36921
- className: N("text-sm font-medium capitalize", JC(e) ? "text-danger" : "text-foreground-muted"),
36893
+ className: N("text-sm font-medium capitalize", qC(e) ? "text-danger" : "text-foreground-muted"),
36922
36894
  children: e
36923
36895
  });
36924
36896
  }
36925
- function QC({ busy: e, onOpen: t }) {
36897
+ function ZC({ busy: e, onOpen: t }) {
36926
36898
  let n = x();
36927
36899
  return /* @__PURE__ */ v("button", {
36928
36900
  type: "button",
@@ -36939,15 +36911,15 @@ function QC({ busy: e, onOpen: t }) {
36939
36911
  }), n("uiLibrary.lockHeroCard.open", "Open")]
36940
36912
  });
36941
36913
  }
36942
- function $C({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36914
+ function QC({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36943
36915
  let { cap: i, slice: a, available: o } = Z({
36944
36916
  trpc: e,
36945
36917
  deviceId: t,
36946
36918
  cap: (e) => e.lockControl,
36947
36919
  slice: (e) => e.state.lockControl
36948
36920
  }), { display: s, applyOptimistic: c } = $(a, { enabled: r ?? !0 });
36949
- if (i === void 0 || s === void 0 || !(s.state in YC)) return null;
36950
- let l = qC(s.state), u = JC(s.state) || !o, d = n?.includes(C.LockOpen) === !0, f = () => {
36921
+ if (i === void 0 || s === void 0 || !(s.state in JC)) return null;
36922
+ let l = KC(s.state), u = qC(s.state) || !o, d = n?.includes(C.LockOpen) === !0, f = () => {
36951
36923
  u || (l ? (c({ state: "unlocking" }), i.unlock({})) : (c({ state: "locking" }), i.lock({})));
36952
36924
  }, p = () => {
36953
36925
  u || i.open({});
@@ -36957,7 +36929,7 @@ function $C({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36957
36929
  children: [
36958
36930
  /* @__PURE__ */ v("div", {
36959
36931
  className: "flex flex-col items-center gap-2",
36960
- children: [/* @__PURE__ */ _(XC, { state: s.state }), /* @__PURE__ */ _(ZC, { state: s.state })]
36932
+ children: [/* @__PURE__ */ _(YC, { state: s.state }), /* @__PURE__ */ _(XC, { state: s.state })]
36961
36933
  }),
36962
36934
  /* @__PURE__ */ _("div", {
36963
36935
  className: N(u && "pointer-events-none opacity-40"),
@@ -36969,7 +36941,7 @@ function $C({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36969
36941
  }),
36970
36942
  d && /* @__PURE__ */ _("div", {
36971
36943
  className: "flex justify-center",
36972
- children: /* @__PURE__ */ _(QC, {
36944
+ children: /* @__PURE__ */ _(ZC, {
36973
36945
  busy: u,
36974
36946
  onOpen: p
36975
36947
  })
@@ -36979,15 +36951,15 @@ function $C({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36979
36951
  }
36980
36952
  //#endregion
36981
36953
  //#region ../ui-library/src/composites/device-controls/light-hero-card.tsx
36982
- var ew = 500, tw = 150, nw = "linear-gradient(90deg, #9ec9ff, #ffffff, #ffb24d)";
36983
- function rw(e, t, n) {
36954
+ var $C = 500, ew = 150, tw = "linear-gradient(90deg, #9ec9ff, #ffffff, #ffb24d)";
36955
+ function nw(e, t, n) {
36984
36956
  return n <= t ? 0 : Math.min(1, Math.max(0, (e - t) / (n - t)));
36985
36957
  }
36986
- function iw(e) {
36987
- return rw(e, tw, ew);
36958
+ function rw(e) {
36959
+ return nw(e, ew, $C);
36988
36960
  }
36989
- var aw = "#f4b740", ow = "#d4d4d8";
36990
- function sw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36961
+ var iw = "#f4b740", aw = "#d4d4d8";
36962
+ function ow({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36991
36963
  let i = x(), a = Z({
36992
36964
  trpc: e,
36993
36965
  deviceId: t,
@@ -37005,7 +36977,7 @@ function sw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37005
36977
  slice: (e) => e.state.color
37006
36978
  }), c = $(a.slice, { enabled: r ?? !0 }), l = $(o.slice, { enabled: r ?? !0 }), u = $(s.slice, { enabled: r ?? !0 });
37007
36979
  if (a.cap === void 0 || c.display === void 0) return null;
37008
- let d = c.display.on === !0, f = !a.available, p = l.display?.percentage ?? 0, m = !o.available, h = d ? p / 100 : 0, g = d ? aw : ow, y = (n?.includes(C.LightColorMired) ?? !1) && s.cap !== void 0, b = u.display?.mireds, S = !s.available;
36980
+ let d = c.display.on === !0, f = !a.available, p = l.display?.percentage ?? 0, m = !o.available, h = d ? p / 100 : 0, g = d ? iw : aw, y = (n?.includes(C.LightColorMired) ?? !1) && s.cap !== void 0, b = u.display?.mireds, S = !s.available;
37009
36981
  return /* @__PURE__ */ v("div", {
37010
36982
  className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4",
37011
36983
  children: [
@@ -37084,11 +37056,11 @@ function sw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37084
37056
  /* @__PURE__ */ _("input", {
37085
37057
  "aria-label": i("uiLibrary.lightHeroCard.colourTemperature", "Colour temperature"),
37086
37058
  type: "range",
37087
- min: tw,
37088
- max: ew,
37059
+ min: ew,
37060
+ max: $C,
37089
37061
  step: 1,
37090
37062
  className: "w-full",
37091
- value: b ?? ew,
37063
+ value: b ?? $C,
37092
37064
  disabled: S || !d,
37093
37065
  onChange: (e) => {
37094
37066
  let t = Number(e.target.value);
@@ -37104,8 +37076,8 @@ function sw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37104
37076
  /* @__PURE__ */ _("div", {
37105
37077
  className: "pointer-events-none mt-1",
37106
37078
  children: /* @__PURE__ */ _(Uy, {
37107
- fraction: b === void 0 ? .5 : iw(b),
37108
- color: nw
37079
+ fraction: b === void 0 ? .5 : rw(b),
37080
+ color: tw
37109
37081
  })
37110
37082
  })
37111
37083
  ]
@@ -37116,8 +37088,8 @@ function sw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37116
37088
  }
37117
37089
  //#endregion
37118
37090
  //#region ../ui-library/src/composites/device-controls/fan-hero-card.tsx
37119
- var cw = "#3aa6a0", lw = "#d4d4d8";
37120
- function uw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37091
+ var sw = "#3aa6a0", cw = "#d4d4d8";
37092
+ function lw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37121
37093
  let i = x(), a = Z({
37122
37094
  trpc: e,
37123
37095
  deviceId: t,
@@ -37130,7 +37102,7 @@ function uw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37130
37102
  slice: (e) => e.state.fanControl
37131
37103
  }), s = $(a.slice, { enabled: r ?? !0 }), c = $(o.slice, { enabled: r ?? !0 });
37132
37104
  if (a.cap === void 0 || s.display === void 0) return null;
37133
- let l = s.display.on === !0, u = !a.available, d = c.display?.percentage ?? 0, f = !o.available, p = l ? d / 100 : 0, m = l ? cw : lw, h = n?.includes(C.FanSpeed) ?? !1, g = (n?.includes(C.FanOscillating) ?? !1) && o.cap !== void 0, y = c.display?.availablePresets ?? [], b = (n?.includes(C.FanPreset) ?? !1) && o.cap !== void 0 && y.length > 0, S = c.display?.preset ?? "", w = c.display?.oscillating === !0, T = () => {
37105
+ let l = s.display.on === !0, u = !a.available, d = c.display?.percentage ?? 0, f = !o.available, p = l ? d / 100 : 0, m = l ? sw : cw, h = n?.includes(C.FanSpeed) ?? !1, g = (n?.includes(C.FanOscillating) ?? !1) && o.cap !== void 0, y = c.display?.availablePresets ?? [], b = (n?.includes(C.FanPreset) ?? !1) && o.cap !== void 0 && y.length > 0, S = c.display?.preset ?? "", w = c.display?.oscillating === !0, T = () => {
37134
37106
  if (u) return;
37135
37107
  let e = !l;
37136
37108
  s.applyOptimistic({ on: e }), a.cap?.setState({ on: e });
@@ -37229,7 +37201,7 @@ function uw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37229
37201
  }
37230
37202
  //#endregion
37231
37203
  //#region ../ui-library/src/composites/device-controls/switch-hero-card.tsx
37232
- function dw({ trpc: e, deviceId: t, optimistic: n }) {
37204
+ function uw({ trpc: e, deviceId: t, optimistic: n }) {
37233
37205
  let r = x(), { cap: i, slice: a, available: o } = Z({
37234
37206
  trpc: e,
37235
37207
  deviceId: t,
@@ -37268,18 +37240,18 @@ function dw({ trpc: e, deviceId: t, optimistic: n }) {
37268
37240
  }
37269
37241
  //#endregion
37270
37242
  //#region ../ui-library/src/composites/device-controls/media-player-hero-card.tsx
37271
- function fw(e) {
37243
+ function dw(e) {
37272
37244
  return e === "playing" || e === "buffering" ? "pause" : "play";
37273
37245
  }
37274
- function pw(e, t) {
37246
+ function fw(e, t) {
37275
37247
  return e === null || t === null || t <= 0 ? 0 : Math.min(1, Math.max(0, e / t));
37276
37248
  }
37277
- function mw(e) {
37249
+ function pw(e) {
37278
37250
  if (e === null) return "--:--";
37279
37251
  let t = Math.floor(e / 1e3);
37280
37252
  return `${Math.floor(t / 60)}:${(t % 60).toString().padStart(2, "0")}`;
37281
37253
  }
37282
- function hw({ title: e, subtitle: t }) {
37254
+ function mw({ title: e, subtitle: t }) {
37283
37255
  let n = x();
37284
37256
  return /* @__PURE__ */ v("div", {
37285
37257
  className: "flex flex-col items-center gap-1 text-center",
@@ -37299,7 +37271,7 @@ function hw({ title: e, subtitle: t }) {
37299
37271
  ]
37300
37272
  });
37301
37273
  }
37302
- function gw({ label: e, busy: t, onPress: n, children: r, primary: i }) {
37274
+ function hw({ label: e, busy: t, onPress: n, children: r, primary: i }) {
37303
37275
  return /* @__PURE__ */ _("button", {
37304
37276
  type: "button",
37305
37277
  "aria-label": e,
@@ -37312,7 +37284,7 @@ function gw({ label: e, busy: t, onPress: n, children: r, primary: i }) {
37312
37284
  children: r
37313
37285
  });
37314
37286
  }
37315
- function _w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37287
+ function gw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37316
37288
  let i = x(), { cap: a, slice: o, available: s } = Z({
37317
37289
  trpc: e,
37318
37290
  deviceId: t,
@@ -37320,13 +37292,13 @@ function _w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37320
37292
  slice: (e) => e.state.mediaPlayer
37321
37293
  }), { display: c, applyOptimistic: l } = $(o, { enabled: r ?? !0 });
37322
37294
  if (a === void 0 || c === void 0) return null;
37323
- let u = !s, d = fw(c.state), f = (n?.includes(C.MediaPlayerSeek) ?? !1) && c.durationMs !== null && c.durationMs > 0, p = n?.includes(C.MediaPlayerNext) ?? !1, m = n?.includes(C.MediaPlayerPrevious) ?? !1, h = (n?.includes(C.MediaPlayerVolume) ?? !1) && c.volumeLevel !== null, g = () => {
37295
+ let u = !s, d = dw(c.state), f = (n?.includes(C.MediaPlayerSeek) ?? !1) && c.durationMs !== null && c.durationMs > 0, p = n?.includes(C.MediaPlayerNext) ?? !1, m = n?.includes(C.MediaPlayerPrevious) ?? !1, h = (n?.includes(C.MediaPlayerVolume) ?? !1) && c.volumeLevel !== null, g = () => {
37324
37296
  u || (d === "play" ? (l({ state: "playing" }), a.play({})) : (l({ state: "paused" }), a.pause({})));
37325
- }, y = c.currentMedia?.artist ?? c.currentMedia?.album ?? null, b = pw(c.positionMs, c.durationMs), S = c.volumeLevel ?? 0;
37297
+ }, y = c.currentMedia?.artist ?? c.currentMedia?.album ?? null, b = fw(c.positionMs, c.durationMs), S = c.volumeLevel ?? 0;
37326
37298
  return /* @__PURE__ */ v("div", {
37327
37299
  className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
37328
37300
  children: [
37329
- /* @__PURE__ */ _(hw, {
37301
+ /* @__PURE__ */ _(mw, {
37330
37302
  title: c.currentMedia?.title ?? null,
37331
37303
  subtitle: y
37332
37304
  }),
@@ -37362,13 +37334,13 @@ function _w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37362
37334
  ]
37363
37335
  }), /* @__PURE__ */ v("div", {
37364
37336
  className: "flex justify-between text-[11px] tabular-nums text-foreground-subtle",
37365
- children: [/* @__PURE__ */ _("span", { children: mw(c.positionMs) }), /* @__PURE__ */ _("span", { children: mw(c.durationMs) })]
37337
+ children: [/* @__PURE__ */ _("span", { children: pw(c.positionMs) }), /* @__PURE__ */ _("span", { children: pw(c.durationMs) })]
37366
37338
  })]
37367
37339
  }),
37368
37340
  /* @__PURE__ */ v("div", {
37369
37341
  className: "flex items-center justify-center gap-4",
37370
37342
  children: [
37371
- m && /* @__PURE__ */ _(gw, {
37343
+ m && /* @__PURE__ */ _(hw, {
37372
37344
  label: i("uiLibrary.mediaPlayerHero.previous", "Previous"),
37373
37345
  busy: u,
37374
37346
  onPress: () => void a.previous({}),
@@ -37377,7 +37349,7 @@ function _w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37377
37349
  "aria-hidden": "true"
37378
37350
  })
37379
37351
  }),
37380
- /* @__PURE__ */ _(gw, {
37352
+ /* @__PURE__ */ _(hw, {
37381
37353
  label: d === "play" ? i("uiLibrary.mediaPlayerHero.play", "Play") : i("uiLibrary.mediaPlayerHero.pause", "Pause"),
37382
37354
  busy: u,
37383
37355
  onPress: g,
@@ -37387,7 +37359,7 @@ function _w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37387
37359
  "aria-hidden": "true"
37388
37360
  })
37389
37361
  }),
37390
- p && /* @__PURE__ */ _(gw, {
37362
+ p && /* @__PURE__ */ _(hw, {
37391
37363
  label: i("uiLibrary.mediaPlayerHero.next", "Next"),
37392
37364
  busy: u,
37393
37365
  onPress: () => void a.next({}),
@@ -37461,7 +37433,7 @@ function _w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37461
37433
  //#endregion
37462
37434
  //#region ../ui-library/src/composites/device-controls/alarm-hero-card.tsx
37463
37435
  e();
37464
- var vw = {
37436
+ var _w = {
37465
37437
  disarmed: {
37466
37438
  colorClass: "border-border bg-surface-subtle text-foreground-subtle",
37467
37439
  icon: "disarmed"
@@ -37503,7 +37475,7 @@ var vw = {
37503
37475
  icon: "triggered"
37504
37476
  }
37505
37477
  };
37506
- function yw(e, t) {
37478
+ function vw(e, t) {
37507
37479
  switch (e) {
37508
37480
  case "home": return t("uiLibrary.alarmHeroCard.modeHome", "Home");
37509
37481
  case "away": return t("uiLibrary.alarmHeroCard.modeAway", "Away");
@@ -37512,7 +37484,7 @@ function yw(e, t) {
37512
37484
  case "custom_bypass": return t("uiLibrary.alarmHeroCard.modeBypass", "Bypass");
37513
37485
  }
37514
37486
  }
37515
- function bw(e, t) {
37487
+ function yw(e, t) {
37516
37488
  switch (e) {
37517
37489
  case "disarmed": return t("uiLibrary.alarmHeroCard.stateDisarmed", "Disarmed");
37518
37490
  case "armed_home": return t("uiLibrary.alarmHeroCard.stateArmedHome", "Armed Home");
@@ -37526,19 +37498,19 @@ function bw(e, t) {
37526
37498
  case "triggered": return t("uiLibrary.alarmHeroCard.stateTriggered", "Triggered");
37527
37499
  }
37528
37500
  }
37529
- function xw(e) {
37501
+ function bw(e) {
37530
37502
  return e.startsWith("armed_");
37531
37503
  }
37532
- function Sw(e) {
37504
+ function xw(e) {
37533
37505
  return e === "arming" || e === "disarming";
37534
37506
  }
37535
- function Cw({ icon: e, sizeClass: t = "h-8 w-8" }) {
37507
+ function Sw({ icon: e, sizeClass: t = "h-8 w-8" }) {
37536
37508
  return _(e === "disarmed" ? tn : e === "triggered" ? $t : e === "pending" ? nn : en, {
37537
37509
  className: t,
37538
37510
  "aria-hidden": "true"
37539
37511
  });
37540
37512
  }
37541
- function ww({ label: e, active: t, busy: n, onSelect: r }) {
37513
+ function Cw({ label: e, active: t, busy: n, onSelect: r }) {
37542
37514
  return /* @__PURE__ */ _("button", {
37543
37515
  type: "button",
37544
37516
  "aria-label": e,
@@ -37551,27 +37523,27 @@ function ww({ label: e, active: t, busy: n, onSelect: r }) {
37551
37523
  children: e
37552
37524
  });
37553
37525
  }
37554
- function Tw({ state: e, availableModes: t, busy: n, onDisarm: r, onArm: i }) {
37555
- let a = x(), o = xw(e), s = Sw(e);
37526
+ function ww({ state: e, availableModes: t, busy: n, onDisarm: r, onArm: i }) {
37527
+ let a = x(), o = bw(e), s = xw(e);
37556
37528
  return /* @__PURE__ */ v("div", {
37557
37529
  className: N("flex min-w-0 items-stretch gap-1 rounded-lg border border-border bg-surface-subtle p-1"),
37558
- children: [/* @__PURE__ */ _(ww, {
37530
+ children: [/* @__PURE__ */ _(Cw, {
37559
37531
  label: a("uiLibrary.alarmHeroCard.disarm", "Disarm"),
37560
37532
  active: !o && !s,
37561
37533
  busy: n,
37562
37534
  onSelect: r
37563
- }), t.map((t) => /* @__PURE__ */ _(ww, {
37564
- label: yw(t, a),
37535
+ }), t.map((t) => /* @__PURE__ */ _(Cw, {
37536
+ label: vw(t, a),
37565
37537
  active: !s && e === `armed_${t}`,
37566
37538
  busy: n,
37567
37539
  onSelect: () => i(t)
37568
37540
  }, t))]
37569
37541
  });
37570
37542
  }
37571
- function Ew(e) {
37543
+ function Tw(e) {
37572
37544
  return e instanceof Error ? e.message : String(e);
37573
37545
  }
37574
- function Dw(e, n, r) {
37546
+ function Ew(e, n, r) {
37575
37547
  let { cap: a, slice: o, available: s } = Z({
37576
37548
  trpc: e,
37577
37549
  deviceId: n,
@@ -37590,33 +37562,33 @@ function Dw(e, n, r) {
37590
37562
  if (a === void 0 || g) return;
37591
37563
  let e = ++m.current;
37592
37564
  l({ state: "disarming" }), a.disarm({}).catch((t) => {
37593
- m.current === e && (u(), f(Ew(t)));
37565
+ m.current === e && (u(), f(Tw(t)));
37594
37566
  });
37595
37567
  },
37596
37568
  handleArm: (e) => {
37597
37569
  if (a === void 0 || g) return;
37598
37570
  let t = ++m.current;
37599
37571
  l({ state: "arming" }), a.arm({ mode: e }).catch((e) => {
37600
- m.current === t && (u(), f(Ew(e)));
37572
+ m.current === t && (u(), f(Tw(e)));
37601
37573
  });
37602
37574
  },
37603
37575
  error: d,
37604
37576
  clearError: p
37605
37577
  };
37606
37578
  }
37607
- function Ow({ trpc: e, deviceId: t, optimistic: n }) {
37608
- let r = x(), { display: i, capPresent: a, busy: o, handleDisarm: s, handleArm: c, error: l } = Dw(e, t, n);
37579
+ function Dw({ trpc: e, deviceId: t, optimistic: n }) {
37580
+ let r = x(), { display: i, capPresent: a, busy: o, handleDisarm: s, handleArm: c, error: l } = Ew(e, t, n);
37609
37581
  if (!a || i === void 0) return null;
37610
- let u = vw[i.state], d = xw(i.state) ? i.state.replace("armed_", "") : "";
37582
+ let u = _w[i.state], d = bw(i.state) ? i.state.replace("armed_", "") : "";
37611
37583
  return /* @__PURE__ */ v("div", {
37612
37584
  className: "flex min-w-0 items-center gap-2",
37613
37585
  children: [
37614
37586
  /* @__PURE__ */ v("span", {
37615
- className: N("inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5 text-[11px] font-medium whitespace-nowrap", u.colorClass, Sw(i.state) && "animate-pulse"),
37616
- children: [/* @__PURE__ */ _(Cw, {
37587
+ className: N("inline-flex shrink-0 items-center gap-1 rounded-md border px-1.5 py-0.5 text-[11px] font-medium whitespace-nowrap", u.colorClass, xw(i.state) && "animate-pulse"),
37588
+ children: [/* @__PURE__ */ _(Sw, {
37617
37589
  icon: u.icon,
37618
37590
  sizeClass: "h-3 w-3"
37619
- }), bw(i.state, r)]
37591
+ }), yw(i.state, r)]
37620
37592
  }),
37621
37593
  /* @__PURE__ */ v("select", {
37622
37594
  "aria-label": r("uiLibrary.alarmHeroCard.alarmMode", "Alarm mode"),
@@ -37634,7 +37606,7 @@ function Ow({ trpc: e, deviceId: t, optimistic: n }) {
37634
37606
  children: r("uiLibrary.alarmHeroCard.disarm", "Disarm")
37635
37607
  }), i.availableModes.map((e) => /* @__PURE__ */ _("option", {
37636
37608
  value: e,
37637
- children: yw(e, r)
37609
+ children: vw(e, r)
37638
37610
  }, e))]
37639
37611
  }),
37640
37612
  l !== null && /* @__PURE__ */ _("span", {
@@ -37650,10 +37622,10 @@ function Ow({ trpc: e, deviceId: t, optimistic: n }) {
37650
37622
  ]
37651
37623
  });
37652
37624
  }
37653
- function kw({ trpc: e, deviceId: t, optimistic: n }) {
37654
- let r = x(), { display: i, capPresent: a, busy: o, handleDisarm: s, handleArm: c, error: l, clearError: u } = Dw(e, t, n);
37625
+ function Ow({ trpc: e, deviceId: t, optimistic: n }) {
37626
+ let r = x(), { display: i, capPresent: a, busy: o, handleDisarm: s, handleArm: c, error: l, clearError: u } = Ew(e, t, n);
37655
37627
  if (!a || i === void 0) return null;
37656
- let d = vw[i.state];
37628
+ let d = _w[i.state];
37657
37629
  return /* @__PURE__ */ v("div", {
37658
37630
  className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
37659
37631
  children: [
@@ -37662,14 +37634,14 @@ function kw({ trpc: e, deviceId: t, optimistic: n }) {
37662
37634
  children: [/* @__PURE__ */ _("div", {
37663
37635
  "data-testid": "alarm-state",
37664
37636
  "data-state": i.state,
37665
- className: N("flex h-16 w-16 items-center justify-center rounded-full border-2", d.colorClass, Sw(i.state) && "animate-pulse"),
37666
- children: /* @__PURE__ */ _(Cw, { icon: d.icon })
37637
+ className: N("flex h-16 w-16 items-center justify-center rounded-full border-2", d.colorClass, xw(i.state) && "animate-pulse"),
37638
+ children: /* @__PURE__ */ _(Sw, { icon: d.icon })
37667
37639
  }), /* @__PURE__ */ _("span", {
37668
37640
  className: N("text-sm font-medium", d.colorClass, "border-0 bg-transparent"),
37669
- children: bw(i.state, r)
37641
+ children: yw(i.state, r)
37670
37642
  })]
37671
37643
  }),
37672
- /* @__PURE__ */ _(Tw, {
37644
+ /* @__PURE__ */ _(ww, {
37673
37645
  state: i.state,
37674
37646
  availableModes: i.availableModes,
37675
37647
  busy: o,
@@ -37695,20 +37667,20 @@ function kw({ trpc: e, deviceId: t, optimistic: n }) {
37695
37667
  }
37696
37668
  //#endregion
37697
37669
  //#region ../ui-library/src/composites/device-controls/script-automation-controls.tsx
37698
- function Aw(e, t, n = b) {
37670
+ function kw(e, t, n = b) {
37699
37671
  if (e <= 0) return null;
37700
37672
  let r = Math.max(0, Math.round((t - e) / 1e3));
37701
37673
  return r < 60 ? n("uiLibrary.scriptAutomationControls.justNow", "just now") : r < 3600 ? n("uiLibrary.scriptAutomationControls.minAgo", "{{count}} min ago", { count: Math.floor(r / 60) }) : r < 86400 ? n("uiLibrary.scriptAutomationControls.hAgo", "{{count}} h ago", { count: Math.floor(r / 3600) }) : new Date(e).toLocaleDateString();
37702
37674
  }
37703
- function jw({ atMs: e, neverLabel: t }) {
37704
- let n = x(), r = Aw(e, Date.now(), n);
37675
+ function Aw({ atMs: e, neverLabel: t }) {
37676
+ let n = x(), r = kw(e, Date.now(), n);
37705
37677
  return /* @__PURE__ */ _("span", {
37706
37678
  className: "text-xs text-foreground-subtle",
37707
37679
  "data-testid": "last-run",
37708
37680
  children: r === null ? t : r
37709
37681
  });
37710
37682
  }
37711
- function Mw({ error: e }) {
37683
+ function jw({ error: e }) {
37712
37684
  return e === null || e === "" ? null : /* @__PURE__ */ v("span", {
37713
37685
  className: "inline-flex items-center gap-1 text-xs text-danger",
37714
37686
  title: e,
@@ -37722,7 +37694,7 @@ function Mw({ error: e }) {
37722
37694
  })]
37723
37695
  });
37724
37696
  }
37725
- function Nw(e, t, n) {
37697
+ function Mw(e, t, n) {
37726
37698
  let { cap: r, slice: i, available: a } = Z({
37727
37699
  trpc: e,
37728
37700
  deviceId: t,
@@ -37742,7 +37714,7 @@ function Nw(e, t, n) {
37742
37714
  }
37743
37715
  };
37744
37716
  }
37745
- function Pw({ running: e, busy: t, large: n, onRun: r, onStop: i }) {
37717
+ function Nw({ running: e, busy: t, large: n, onRun: r, onStop: i }) {
37746
37718
  let a = x(), o = e ? a("uiLibrary.scriptAutomationControls.stop", "Stop") : a("uiLibrary.scriptAutomationControls.run", "Run");
37747
37719
  return /* @__PURE__ */ v("button", {
37748
37720
  type: "button",
@@ -37761,24 +37733,24 @@ function Pw({ running: e, busy: t, large: n, onRun: r, onStop: i }) {
37761
37733
  }), /* @__PURE__ */ _("span", { children: o })]
37762
37734
  });
37763
37735
  }
37764
- function Fw({ trpc: e, deviceId: t, optimistic: n }) {
37765
- let r = x(), { display: i, capPresent: a, busy: o, running: s, run: c, stop: l } = Nw(e, t, n);
37736
+ function Pw({ trpc: e, deviceId: t, optimistic: n }) {
37737
+ let r = x(), { display: i, capPresent: a, busy: o, running: s, run: c, stop: l } = Mw(e, t, n);
37766
37738
  return !a || i === void 0 ? null : /* @__PURE__ */ v("div", {
37767
37739
  className: "flex min-w-0 items-center gap-2",
37768
- children: [/* @__PURE__ */ _(Pw, {
37740
+ children: [/* @__PURE__ */ _(Nw, {
37769
37741
  running: s,
37770
37742
  busy: o,
37771
37743
  large: !1,
37772
37744
  onRun: c,
37773
37745
  onStop: l
37774
- }), /* @__PURE__ */ _(jw, {
37746
+ }), /* @__PURE__ */ _(Aw, {
37775
37747
  atMs: i.lastRunAt,
37776
37748
  neverLabel: r("uiLibrary.scriptAutomationControls.neverRun", "never run")
37777
37749
  })]
37778
37750
  });
37779
37751
  }
37780
- function Iw({ trpc: e, deviceId: t, optimistic: n }) {
37781
- let r = x(), { display: i, capPresent: a, busy: o, running: s, run: c, stop: l } = Nw(e, t, n);
37752
+ function Fw({ trpc: e, deviceId: t, optimistic: n }) {
37753
+ let r = x(), { display: i, capPresent: a, busy: o, running: s, run: c, stop: l } = Mw(e, t, n);
37782
37754
  return !a || i === void 0 ? null : /* @__PURE__ */ v("div", {
37783
37755
  className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
37784
37756
  children: [/* @__PURE__ */ v("div", {
@@ -37797,15 +37769,15 @@ function Iw({ trpc: e, deviceId: t, optimistic: n }) {
37797
37769
  className: "text-sm font-medium",
37798
37770
  children: s ? r("uiLibrary.scriptAutomationControls.running", "Running") : r("uiLibrary.scriptAutomationControls.idle", "Idle")
37799
37771
  }),
37800
- /* @__PURE__ */ _(jw, {
37772
+ /* @__PURE__ */ _(Aw, {
37801
37773
  atMs: i.lastRunAt,
37802
37774
  neverLabel: r("uiLibrary.scriptAutomationControls.neverRun", "never run")
37803
37775
  }),
37804
- /* @__PURE__ */ _(Mw, { error: i.lastError })
37776
+ /* @__PURE__ */ _(jw, { error: i.lastError })
37805
37777
  ]
37806
37778
  }), /* @__PURE__ */ _("div", {
37807
37779
  className: "flex justify-center",
37808
- children: /* @__PURE__ */ _(Pw, {
37780
+ children: /* @__PURE__ */ _(Nw, {
37809
37781
  running: s,
37810
37782
  busy: o,
37811
37783
  large: !0,
@@ -37815,7 +37787,7 @@ function Iw({ trpc: e, deviceId: t, optimistic: n }) {
37815
37787
  })]
37816
37788
  });
37817
37789
  }
37818
- function Lw(e, t, n) {
37790
+ function Iw(e, t, n) {
37819
37791
  let { cap: r, slice: i, available: a } = Z({
37820
37792
  trpc: e,
37821
37793
  deviceId: t,
@@ -37834,7 +37806,7 @@ function Lw(e, t, n) {
37834
37806
  }
37835
37807
  };
37836
37808
  }
37837
- function Rw({ enabled: e, busy: t, onToggle: n }) {
37809
+ function Lw({ enabled: e, busy: t, onToggle: n }) {
37838
37810
  let r = x();
37839
37811
  return /* @__PURE__ */ _("button", {
37840
37812
  type: "button",
@@ -37850,7 +37822,7 @@ function Rw({ enabled: e, busy: t, onToggle: n }) {
37850
37822
  children: e ? r("uiLibrary.scriptAutomationControls.enabled", "Enabled") : r("uiLibrary.scriptAutomationControls.disabled", "Disabled")
37851
37823
  });
37852
37824
  }
37853
- function zw({ busy: e, large: t, onTrigger: n }) {
37825
+ function Rw({ busy: e, large: t, onTrigger: n }) {
37854
37826
  let r = x();
37855
37827
  return /* @__PURE__ */ v("button", {
37856
37828
  type: "button",
@@ -37868,23 +37840,23 @@ function zw({ busy: e, large: t, onTrigger: n }) {
37868
37840
  }), /* @__PURE__ */ _("span", { children: r("uiLibrary.scriptAutomationControls.trigger", "Trigger") })]
37869
37841
  });
37870
37842
  }
37871
- function Bw({ trpc: e, deviceId: t, optimistic: n }) {
37872
- let { display: r, capPresent: i, busy: a, setEnabled: o, trigger: s } = Lw(e, t, n);
37843
+ function zw({ trpc: e, deviceId: t, optimistic: n }) {
37844
+ let { display: r, capPresent: i, busy: a, setEnabled: o, trigger: s } = Iw(e, t, n);
37873
37845
  return !i || r === void 0 ? null : /* @__PURE__ */ v("div", {
37874
37846
  className: "flex min-w-0 items-center gap-2",
37875
- children: [/* @__PURE__ */ _(Rw, {
37847
+ children: [/* @__PURE__ */ _(Lw, {
37876
37848
  enabled: r.enabled,
37877
37849
  busy: a,
37878
37850
  onToggle: o
37879
- }), /* @__PURE__ */ _(zw, {
37851
+ }), /* @__PURE__ */ _(Rw, {
37880
37852
  busy: a,
37881
37853
  large: !1,
37882
37854
  onTrigger: s
37883
37855
  })]
37884
37856
  });
37885
37857
  }
37886
- function Vw({ trpc: e, deviceId: t, optimistic: n }) {
37887
- let r = x(), { display: i, capPresent: a, busy: o, setEnabled: s, trigger: c } = Lw(e, t, n);
37858
+ function Bw({ trpc: e, deviceId: t, optimistic: n }) {
37859
+ let r = x(), { display: i, capPresent: a, busy: o, setEnabled: s, trigger: c } = Iw(e, t, n);
37888
37860
  return !a || i === void 0 ? null : /* @__PURE__ */ v("div", {
37889
37861
  className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-6",
37890
37862
  children: [/* @__PURE__ */ v("div", {
@@ -37903,19 +37875,19 @@ function Vw({ trpc: e, deviceId: t, optimistic: n }) {
37903
37875
  className: "text-sm font-medium",
37904
37876
  children: i.enabled ? r("uiLibrary.scriptAutomationControls.enabled", "Enabled") : r("uiLibrary.scriptAutomationControls.disabled", "Disabled")
37905
37877
  }),
37906
- /* @__PURE__ */ _(jw, {
37878
+ /* @__PURE__ */ _(Aw, {
37907
37879
  atMs: i.lastTriggeredAt,
37908
37880
  neverLabel: r("uiLibrary.scriptAutomationControls.neverTriggered", "never triggered")
37909
37881
  }),
37910
- /* @__PURE__ */ _(Mw, { error: i.lastError })
37882
+ /* @__PURE__ */ _(jw, { error: i.lastError })
37911
37883
  ]
37912
37884
  }), /* @__PURE__ */ v("div", {
37913
37885
  className: "flex items-center justify-center gap-3",
37914
- children: [/* @__PURE__ */ _(Rw, {
37886
+ children: [/* @__PURE__ */ _(Lw, {
37915
37887
  enabled: i.enabled,
37916
37888
  busy: o,
37917
37889
  onToggle: s
37918
- }), /* @__PURE__ */ _(zw, {
37890
+ }), /* @__PURE__ */ _(Rw, {
37919
37891
  busy: o,
37920
37892
  large: !0,
37921
37893
  onTrigger: c
@@ -37925,13 +37897,13 @@ function Vw({ trpc: e, deviceId: t, optimistic: n }) {
37925
37897
  }
37926
37898
  //#endregion
37927
37899
  //#region ../ui-library/src/composites/device-controls/panel-controls.tsx
37928
- function Hw({ children: e }) {
37900
+ function Vw({ children: e }) {
37929
37901
  return /* @__PURE__ */ _("div", {
37930
37902
  className: "flex flex-col items-stretch gap-3 rounded-lg border border-border bg-surface p-4",
37931
37903
  children: e
37932
37904
  });
37933
37905
  }
37934
- function Uw(e, t) {
37906
+ function Hw(e, t) {
37935
37907
  let { cap: n } = Z({
37936
37908
  trpc: e,
37937
37909
  deviceId: t,
@@ -37940,8 +37912,8 @@ function Uw(e, t) {
37940
37912
  });
37941
37913
  return n !== void 0;
37942
37914
  }
37943
- function Ww({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37944
- return Uw(e, t) ? /* @__PURE__ */ _(rb, {
37915
+ function Uw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37916
+ return Hw(e, t) ? /* @__PURE__ */ _(rb, {
37945
37917
  trpc: e,
37946
37918
  deviceId: t,
37947
37919
  features: n,
@@ -37949,7 +37921,7 @@ function Ww({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37949
37921
  optimistic: r
37950
37922
  }) : null;
37951
37923
  }
37952
- function Gw(e, t) {
37924
+ function Ww(e, t) {
37953
37925
  let { cap: n } = Z({
37954
37926
  trpc: e,
37955
37927
  deviceId: t,
@@ -37958,8 +37930,8 @@ function Gw(e, t) {
37958
37930
  });
37959
37931
  return n !== void 0;
37960
37932
  }
37961
- function Kw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37962
- return Gw(e, t) ? /* @__PURE__ */ _(nb, {
37933
+ function Gw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37934
+ return Ww(e, t) ? /* @__PURE__ */ _(nb, {
37963
37935
  trpc: e,
37964
37936
  deviceId: t,
37965
37937
  features: n,
@@ -37967,8 +37939,8 @@ function Kw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37967
37939
  optimistic: r
37968
37940
  }) : null;
37969
37941
  }
37970
- function qw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37971
- return Uw(e, t) ? /* @__PURE__ */ v("div", {
37942
+ function Kw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37943
+ return Hw(e, t) ? /* @__PURE__ */ v("div", {
37972
37944
  className: "inline-flex items-center gap-2",
37973
37945
  children: [/* @__PURE__ */ _(rb, {
37974
37946
  trpc: e,
@@ -37985,7 +37957,7 @@ function qw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37985
37957
  })]
37986
37958
  }) : null;
37987
37959
  }
37988
- function Jw(e, t) {
37960
+ function qw(e, t) {
37989
37961
  let { cap: n } = Z({
37990
37962
  trpc: e,
37991
37963
  deviceId: t,
@@ -37994,8 +37966,8 @@ function Jw(e, t) {
37994
37966
  });
37995
37967
  return n !== void 0;
37996
37968
  }
37997
- function Yw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37998
- return Jw(e, t) ? /* @__PURE__ */ v("div", {
37969
+ function Jw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
37970
+ return qw(e, t) ? /* @__PURE__ */ v("div", {
37999
37971
  className: "inline-flex items-center gap-2",
38000
37972
  children: [/* @__PURE__ */ _(rb, {
38001
37973
  trpc: e,
@@ -38012,7 +37984,7 @@ function Yw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38012
37984
  })]
38013
37985
  }) : null;
38014
37986
  }
38015
- function Xw(e, t) {
37987
+ function Yw(e, t) {
38016
37988
  let { cap: n } = Z({
38017
37989
  trpc: e,
38018
37990
  deviceId: t,
@@ -38021,7 +37993,7 @@ function Xw(e, t) {
38021
37993
  });
38022
37994
  return n !== void 0;
38023
37995
  }
38024
- function Zw(e, t) {
37996
+ function Xw(e, t) {
38025
37997
  let { cap: n } = Z({
38026
37998
  trpc: e,
38027
37999
  deviceId: t,
@@ -38030,8 +38002,8 @@ function Zw(e, t) {
38030
38002
  });
38031
38003
  return n !== void 0;
38032
38004
  }
38033
- function Qw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38034
- let i = Xw(e, t), a = Zw(e, t);
38005
+ function Zw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38006
+ let i = Yw(e, t), a = Xw(e, t);
38035
38007
  return !i && !a ? null : /* @__PURE__ */ v("span", {
38036
38008
  className: "inline-flex items-center gap-2",
38037
38009
  children: [i ? /* @__PURE__ */ _(db, {
@@ -38040,15 +38012,15 @@ function Qw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38040
38012
  features: n,
38041
38013
  layout: "compact",
38042
38014
  optimistic: r
38043
- }) : null, a ? /* @__PURE__ */ _(pC, {
38015
+ }) : null, a ? /* @__PURE__ */ _(fC, {
38044
38016
  trpc: e,
38045
38017
  deviceId: t,
38046
38018
  layout: "compact"
38047
38019
  }) : null]
38048
38020
  });
38049
38021
  }
38050
- function $w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38051
- return Xw(e, t) ? /* @__PURE__ */ _(TC, {
38022
+ function Qw({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38023
+ return Yw(e, t) ? /* @__PURE__ */ _(wC, {
38052
38024
  trpc: e,
38053
38025
  deviceId: t,
38054
38026
  features: n,
@@ -38056,8 +38028,8 @@ function $w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38056
38028
  optimistic: r
38057
38029
  }) : null;
38058
38030
  }
38059
- function eT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38060
- return Xw(e, t) ? /* @__PURE__ */ _(TC, {
38031
+ function $w({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38032
+ return Yw(e, t) ? /* @__PURE__ */ _(wC, {
38061
38033
  trpc: e,
38062
38034
  deviceId: t,
38063
38035
  features: n,
@@ -38065,7 +38037,7 @@ function eT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38065
38037
  optimistic: r
38066
38038
  }) : null;
38067
38039
  }
38068
- function tT(e, t) {
38040
+ function eT(e, t) {
38069
38041
  let { cap: n } = Z({
38070
38042
  trpc: e,
38071
38043
  deviceId: t,
@@ -38074,8 +38046,8 @@ function tT(e, t) {
38074
38046
  });
38075
38047
  return n !== void 0;
38076
38048
  }
38077
- function nT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38078
- return tT(e, t) ? /* @__PURE__ */ _(vb, {
38049
+ function tT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38050
+ return eT(e, t) ? /* @__PURE__ */ _(vb, {
38079
38051
  trpc: e,
38080
38052
  deviceId: t,
38081
38053
  features: n,
@@ -38083,7 +38055,7 @@ function nT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38083
38055
  optimistic: r
38084
38056
  }) : null;
38085
38057
  }
38086
- function rT(e, t) {
38058
+ function nT(e, t) {
38087
38059
  let { cap: n } = Z({
38088
38060
  trpc: e,
38089
38061
  deviceId: t,
@@ -38092,8 +38064,8 @@ function rT(e, t) {
38092
38064
  });
38093
38065
  return n !== void 0;
38094
38066
  }
38095
- function iT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38096
- return rT(e, t) ? /* @__PURE__ */ _(Ib, {
38067
+ function rT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38068
+ return nT(e, t) ? /* @__PURE__ */ _(Ib, {
38097
38069
  trpc: e,
38098
38070
  deviceId: t,
38099
38071
  features: n,
@@ -38101,8 +38073,8 @@ function iT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38101
38073
  optimistic: r
38102
38074
  }) : null;
38103
38075
  }
38104
- function aT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38105
- return rT(e, t) ? /* @__PURE__ */ _(Hw, { children: /* @__PURE__ */ _(Ib, {
38076
+ function iT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38077
+ return nT(e, t) ? /* @__PURE__ */ _(Vw, { children: /* @__PURE__ */ _(Ib, {
38106
38078
  trpc: e,
38107
38079
  deviceId: t,
38108
38080
  features: n,
@@ -38112,7 +38084,7 @@ function aT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
38112
38084
  }
38113
38085
  //#endregion
38114
38086
  //#region ../ui-library/src/composites/device-controls/control-registry.tsx
38115
- var oT = {
38087
+ var aT = {
38116
38088
  cover: {
38117
38089
  InlineControl: Zb,
38118
38090
  HeroCard: nx
@@ -38130,28 +38102,28 @@ var oT = {
38130
38102
  HeroCard: gS
38131
38103
  },
38132
38104
  switch: {
38133
- InlineControl: Ww,
38134
- HeroCard: dw
38105
+ InlineControl: Uw,
38106
+ HeroCard: uw
38135
38107
  },
38136
38108
  light: {
38137
- InlineControl: qw,
38138
- HeroCard: sw
38109
+ InlineControl: Kw,
38110
+ HeroCard: ow
38139
38111
  },
38140
38112
  fan: {
38141
- InlineControl: Yw,
38142
- HeroCard: uw
38113
+ InlineControl: Jw,
38114
+ HeroCard: lw
38143
38115
  },
38144
38116
  sensor: {
38145
38117
  InlineControl: ox,
38146
38118
  HeroCard: Sx
38147
38119
  },
38148
38120
  thermostat: {
38149
- InlineControl: Qw,
38150
- HeroCard: KC
38121
+ InlineControl: Zw,
38122
+ HeroCard: GC
38151
38123
  },
38152
38124
  climate: {
38153
- InlineControl: $w,
38154
- HeroCard: eT
38125
+ InlineControl: Qw,
38126
+ HeroCard: $w
38155
38127
  },
38156
38128
  button: {
38157
38129
  InlineControl: Zy,
@@ -38162,20 +38134,20 @@ var oT = {
38162
38134
  HeroCard: Ex
38163
38135
  },
38164
38136
  lock: {
38165
- InlineControl: Kw,
38166
- HeroCard: $C
38137
+ InlineControl: Gw,
38138
+ HeroCard: QC
38167
38139
  },
38168
38140
  "media-player": {
38169
- InlineControl: nT,
38170
- HeroCard: _w
38141
+ InlineControl: tT,
38142
+ HeroCard: gw
38171
38143
  },
38172
38144
  alarm: {
38173
- InlineControl: Ow,
38174
- HeroCard: kw
38145
+ InlineControl: Dw,
38146
+ HeroCard: Ow
38175
38147
  },
38176
38148
  control: {
38177
- InlineControl: iT,
38178
- HeroCard: aT
38149
+ InlineControl: rT,
38150
+ HeroCard: iT
38179
38151
  },
38180
38152
  weather: {
38181
38153
  InlineControl: SS,
@@ -38194,33 +38166,33 @@ var oT = {
38194
38166
  HeroCard: FS
38195
38167
  },
38196
38168
  "pet-feeder": {
38197
- InlineControl: ZS,
38198
- HeroCard: QS
38169
+ InlineControl: XS,
38170
+ HeroCard: ZS
38199
38171
  },
38200
38172
  dishwasher: {
38201
- InlineControl: uC,
38202
- HeroCard: dC
38173
+ InlineControl: lC,
38174
+ HeroCard: uC
38203
38175
  },
38204
38176
  script: {
38205
- InlineControl: Fw,
38206
- HeroCard: Iw
38177
+ InlineControl: Pw,
38178
+ HeroCard: Fw
38207
38179
  },
38208
38180
  automation: {
38209
- InlineControl: Bw,
38210
- HeroCard: Vw
38181
+ InlineControl: zw,
38182
+ HeroCard: Bw
38211
38183
  },
38212
38184
  dummy: {
38213
38185
  InlineControl: rx,
38214
38186
  HeroCard: ix
38215
38187
  }
38216
38188
  };
38217
- Object.fromEntries(Object.values(D).map((e) => [e, oT[ge[e]]])), D.Cover, D.Valve, D.Thermostat, D.Climate, D.Control, D.Button, D.MediaPlayer, D.AlarmPanel, D.Lock, D.Vacuum, D.LawnMower, D.Humidifier, D.Switch, D.Siren, D.Light, D.Fan, D.WaterHeater, D.Sensor, D.Presence, D.EventEmitter, D.Notifier, D.Script, D.Automation, D.Camera, D.Hub, D.Update, D.Generic, D.Weather, D.Container, D.Image, D.PetFeeder, D.Dishwasher, D.Washer, D.Dryer, new Set(Object.values(D));
38189
+ Object.fromEntries(Object.values(D).map((e) => [e, aT[ge[e]]])), D.Cover, D.Valve, D.Thermostat, D.Climate, D.Control, D.Button, D.MediaPlayer, D.AlarmPanel, D.Lock, D.Vacuum, D.LawnMower, D.Humidifier, D.Switch, D.Siren, D.Light, D.Fan, D.WaterHeater, D.Sensor, D.Presence, D.EventEmitter, D.Notifier, D.Script, D.Automation, D.Camera, D.Hub, D.Update, D.Generic, D.Weather, D.Container, D.Image, D.PetFeeder, D.Dishwasher, D.Washer, D.Dryer, new Set(Object.values(D));
38218
38190
  //#endregion
38219
38191
  //#region ../ui-library/src/lib/format-last-seen.ts
38220
- var sT = 1e3;
38192
+ var oT = 1e3;
38221
38193
  //#endregion
38222
38194
  //#region ../ui-library/src/composites/device-selector-picker.tsx
38223
- 24 * (60 * sT * 60), 30 * sT, e(), e(), e(), e(), e(), d(null), e(), new Set([D.Sensor, D.Presence]), e(), d({}), e(), e(), Object.freeze([]), e(), e(), e(), Ce("camstack:device-quick-detail", null), e(), e(), e(), e(), e(), e(), e(), e(), e(), G({
38195
+ 24 * (60 * oT * 60), 30 * oT, e(), e(), e(), e(), e(), d(null), e(), new Set([D.Sensor, D.Presence]), e(), d({}), e(), e(), Object.freeze([]), e(), e(), e(), Ce("camstack:device-quick-detail", null), e(), e(), e(), e(), e(), e(), e(), e(), e(), G({
38224
38196
  id: H(),
38225
38197
  stableId: B(),
38226
38198
  addonId: B(),
@@ -38235,10 +38207,10 @@ var sT = 1e3;
38235
38207
  }), e();
38236
38208
  //#endregion
38237
38209
  //#region ../ui-library/src/composites/pipeline-matrix-shared.tsx
38238
- function cT(e) {
38210
+ function sT(e) {
38239
38211
  return e.deviceKey === void 0 ? e.agentNodeId : `${e.agentNodeId}::${e.deviceKey}`;
38240
38212
  }
38241
- function lT(e) {
38213
+ function cT(e) {
38242
38214
  let t = [];
38243
38215
  for (let n of e) {
38244
38216
  let e = t[t.length - 1];
@@ -38258,7 +38230,7 @@ function lT(e) {
38258
38230
  }
38259
38231
  return t;
38260
38232
  }
38261
- function uT(e) {
38233
+ function lT(e) {
38262
38234
  let t = [], n = (e, r) => {
38263
38235
  for (let i of e) t.push({
38264
38236
  node: i,
@@ -38267,10 +38239,10 @@ function uT(e) {
38267
38239
  };
38268
38240
  return n(e, 0), t;
38269
38241
  }
38270
- function dT(e, t, n, r = 208, i = t) {
38242
+ function uT(e, t, n, r = 208, i = t) {
38271
38243
  return e <= 0 ? !1 : t <= 1 ? e < n + r * i : e < n + r * 2;
38272
38244
  }
38273
- var fT = {
38245
+ var dT = {
38274
38246
  detector: {
38275
38247
  labelKey: "uiLibrary.pipelineMatrix.slotDetector",
38276
38248
  labelFallback: "detector",
@@ -38297,20 +38269,20 @@ var fT = {
38297
38269
  className: "text-pink-500"
38298
38270
  }
38299
38271
  };
38300
- function pT({ slot: e }) {
38301
- let t = x(), n = fT[e] ?? fT.classifier;
38272
+ function fT({ slot: e }) {
38273
+ let t = x(), n = dT[e] ?? dT.classifier;
38302
38274
  return /* @__PURE__ */ _("span", {
38303
38275
  className: N("text-[9px] font-semibold uppercase tracking-widest leading-none", n.className),
38304
38276
  children: t(n.labelKey, n.labelFallback)
38305
38277
  });
38306
38278
  }
38307
- var mT = "inline-flex items-center rounded bg-muted px-1.5 py-px text-[9px] font-medium text-foreground-subtle";
38308
- function hT({ inputs: e, outputs: t }) {
38279
+ var pT = "inline-flex items-center rounded bg-muted px-1.5 py-px text-[9px] font-medium text-foreground-subtle";
38280
+ function mT({ inputs: e, outputs: t }) {
38309
38281
  return e.length === 0 && t.length === 0 ? null : /* @__PURE__ */ v("span", {
38310
38282
  className: "inline-flex items-center gap-1 flex-wrap",
38311
38283
  children: [
38312
38284
  e.map((e) => /* @__PURE__ */ _("span", {
38313
- className: N(mT, "bg-blue-500/10 text-blue-500"),
38285
+ className: N(pT, "bg-blue-500/10 text-blue-500"),
38314
38286
  children: e
38315
38287
  }, `in-${e}`)),
38316
38288
  e.length > 0 && t.length > 0 && /* @__PURE__ */ _("span", {
@@ -38318,13 +38290,13 @@ function hT({ inputs: e, outputs: t }) {
38318
38290
  children: "→"
38319
38291
  }),
38320
38292
  t.map((e) => /* @__PURE__ */ _("span", {
38321
- className: N(mT, "bg-emerald-500/10 text-emerald-500"),
38293
+ className: N(pT, "bg-emerald-500/10 text-emerald-500"),
38322
38294
  children: e
38323
38295
  }, `out-${e}`))
38324
38296
  ]
38325
38297
  });
38326
38298
  }
38327
- function gT({ column: e }) {
38299
+ function hT({ column: e }) {
38328
38300
  let t = x(), n = e.deviceLabel ?? e.deviceKey;
38329
38301
  return /* @__PURE__ */ v(y, { children: [
38330
38302
  (n !== void 0 || e.disabled === !0) && /* @__PURE__ */ v("div", {
@@ -38348,7 +38320,7 @@ function gT({ column: e }) {
38348
38320
  })
38349
38321
  ] });
38350
38322
  }
38351
- function _T({ group: e }) {
38323
+ function gT({ group: e }) {
38352
38324
  let t = e.columns[0]?.nodeLabel ?? e.agentNodeId;
38353
38325
  return /* @__PURE__ */ v("div", {
38354
38326
  role: "columnheader",
@@ -38362,27 +38334,27 @@ function _T({ group: e }) {
38362
38334
  children: e.columns.map((e, t) => /* @__PURE__ */ _("div", {
38363
38335
  className: N("min-w-0 flex-1 px-3 py-1", t > 0 && "border-l border-border/50", e.disabled === !0 && "opacity-70"),
38364
38336
  title: `${e.deviceLabel ?? e.deviceKey} · ${e.engineLabel}${e.detail ? ` · ${e.detail}` : ""}`,
38365
- children: /* @__PURE__ */ _(gT, { column: e })
38366
- }, cT(e)))
38337
+ children: /* @__PURE__ */ _(hT, { column: e })
38338
+ }, sT(e)))
38367
38339
  })]
38368
38340
  });
38369
38341
  }
38370
- function vT({ node: e }) {
38342
+ function _T({ node: e }) {
38371
38343
  return /* @__PURE__ */ v("div", {
38372
38344
  className: "flex flex-col gap-1 min-w-0 flex-1",
38373
- children: [/* @__PURE__ */ _(pT, { slot: e.slot }), /* @__PURE__ */ v("div", {
38345
+ children: [/* @__PURE__ */ _(fT, { slot: e.slot }), /* @__PURE__ */ v("div", {
38374
38346
  className: "flex items-center gap-2 flex-wrap",
38375
38347
  children: [/* @__PURE__ */ _("span", {
38376
38348
  className: "font-semibold truncate",
38377
38349
  children: e.addonName
38378
- }), /* @__PURE__ */ _(hT, {
38350
+ }), /* @__PURE__ */ _(mT, {
38379
38351
  inputs: e.inputClasses,
38380
38352
  outputs: e.outputClasses
38381
38353
  })]
38382
38354
  })]
38383
38355
  });
38384
38356
  }
38385
- function yT(e, t) {
38357
+ function vT(e, t) {
38386
38358
  return t.kind === "enabled" ? /* @__PURE__ */ v("span", {
38387
38359
  className: "flex min-w-0 items-center gap-1",
38388
38360
  title: t.overridden ? e("uiLibrary.pipelineMatrix.override", "override") : void 0,
@@ -38448,14 +38420,14 @@ function yT(e, t) {
38448
38420
  })]
38449
38421
  });
38450
38422
  }
38451
- function bT(e, t, n) {
38423
+ function yT(e, t, n) {
38452
38424
  return N("text-left text-xs hover:bg-muted/40", e.kind === "enabled" && "bg-emerald-500/5", e.kind === "skip" && "bg-amber-500/5", e.kind === "na" && "bg-muted/30", t && "ring-2 ring-primary ring-inset", n);
38453
38425
  }
38454
38426
  //#endregion
38455
38427
  //#region ../ui-library/src/composites/device-step-matrix.tsx
38456
38428
  e();
38457
- var xT = 18, ST = xT * 16, CT = 11;
38458
- function wT(e, t, n, r) {
38429
+ var bT = 18, xT = bT * 16, ST = 11;
38430
+ function CT(e, t, n, r) {
38459
38431
  let i = (e, t) => ({
38460
38432
  r: Math.max(0, Math.min(n - 1, e)),
38461
38433
  c: Math.max(0, Math.min(r - 1, t))
@@ -38472,7 +38444,7 @@ function wT(e, t, n, r) {
38472
38444
  default: return null;
38473
38445
  }
38474
38446
  }
38475
- function TT({ node: e, depth: t, r: n, tabbable: r, selected: i, badge: a, onClick: o, sticky: s }) {
38447
+ function wT({ node: e, depth: t, r: n, tabbable: r, selected: i, badge: a, onClick: o, sticky: s }) {
38476
38448
  return /* @__PURE__ */ _("div", {
38477
38449
  role: "rowheader",
38478
38450
  className: N("min-w-0 border-b border-border bg-surface", s && "sticky left-0 z-10"),
@@ -38487,11 +38459,11 @@ function TT({ node: e, depth: t, r: n, tabbable: r, selected: i, badge: a, onCli
38487
38459
  onClick: o ? (e) => o(e.detail === 0) : void 0,
38488
38460
  className: N("flex h-full w-full min-w-0 items-start gap-2 px-3 py-2 text-left text-xs outline-none", "hover:bg-muted/40 focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary", i && "bg-primary/10 shadow-[inset_3px_0_0_var(--color-primary)]"),
38489
38461
  style: { paddingLeft: `${12 + t * 14}px` },
38490
- children: [/* @__PURE__ */ _(vT, { node: e }), a]
38462
+ children: [/* @__PURE__ */ _(_T, { node: e }), a]
38491
38463
  })
38492
38464
  });
38493
38465
  }
38494
- function ET({ nodes: e, selected: t, onSelect: n }) {
38466
+ function TT({ nodes: e, selected: t, onSelect: n }) {
38495
38467
  let r = x();
38496
38468
  return /* @__PURE__ */ v("div", {
38497
38469
  className: "flex flex-wrap items-center gap-1.5",
@@ -38521,8 +38493,8 @@ function ET({ nodes: e, selected: t, onSelect: n }) {
38521
38493
  ]
38522
38494
  });
38523
38495
  }
38524
- var DT = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onStepClick: c, stepBadge: l, selectedCell: d, single: f, reserveRightPx: p, label: m }, g) {
38525
- let y = x(), b = o(() => uT(e), [e]), S = o(() => lT(n), [n]), C = t(null), w = f ? CT : xT, T = `${w}rem repeat(${n.length}, 13rem)`, ee = n.length + 1, [te, ne] = h(!0);
38496
+ var ET = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onStepClick: c, stepBadge: l, selectedCell: d, single: f, reserveRightPx: p, label: m }, g) {
38497
+ let y = x(), b = o(() => lT(e), [e]), S = o(() => cT(n), [n]), C = t(null), w = f ? ST : bT, T = `${w}rem repeat(${n.length}, 13rem)`, ee = n.length + 1, [te, ne] = h(!0);
38526
38498
  s(() => {
38527
38499
  let e = C.current;
38528
38500
  if (!e || p <= 0) {
@@ -38539,7 +38511,7 @@ var DT = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
38539
38511
  if (d === null) return null;
38540
38512
  let e = b.findIndex((e) => e.node.addonId === d.addonId);
38541
38513
  if (e < 0) return null;
38542
- let t = n.findIndex((e) => cT(e) === cT(d));
38514
+ let t = n.findIndex((e) => sT(e) === sT(d));
38543
38515
  return {
38544
38516
  r: e,
38545
38517
  c: t < 0 ? 0 : t + 1
@@ -38564,7 +38536,7 @@ var DT = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
38564
38536
  return u(g, () => ({ focusCell: (e, t) => {
38565
38537
  let r = b.findIndex((t) => t.node.addonId === e);
38566
38538
  if (r < 0) return;
38567
- let i = t === null ? -1 : n.findIndex((e) => cT(e) === t), a = i < 0 ? 0 : i + 1;
38539
+ let i = t === null ? -1 : n.findIndex((e) => sT(e) === t), a = i < 0 ? 0 : i + 1;
38568
38540
  ae({
38569
38541
  r,
38570
38542
  c: a
@@ -38598,7 +38570,7 @@ var DT = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
38598
38570
  let t = {
38599
38571
  r: Number(e.target.dataset.r),
38600
38572
  c: Number(e.target.dataset.c)
38601
- }, n = wT(e.key, t, b.length, ee);
38573
+ }, n = CT(e.key, t, b.length, ee);
38602
38574
  n !== null && (e.preventDefault(), ae(n), se(n.r, n.c));
38603
38575
  },
38604
38576
  children: [/* @__PURE__ */ v("div", {
@@ -38608,18 +38580,18 @@ var DT = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
38608
38580
  role: "columnheader",
38609
38581
  className: N("top-0 z-20 border-b border-border bg-muted/60 px-3 py-2 text-[10px] uppercase tracking-widest text-foreground-subtle", te ? "sticky left-0" : "sticky"),
38610
38582
  children: y("uiLibrary.deviceStepMatrix.step", "Step")
38611
- }), S.map((e) => e.grouped ? /* @__PURE__ */ _(_T, { group: e }, e.agentNodeId) : e.columns.map((e) => /* @__PURE__ */ v("div", {
38583
+ }), S.map((e) => e.grouped ? /* @__PURE__ */ _(gT, { group: e }, e.agentNodeId) : e.columns.map((e) => /* @__PURE__ */ v("div", {
38612
38584
  role: "columnheader",
38613
38585
  className: N("sticky top-0 z-10 min-w-0 border-b border-l border-border bg-muted/60 px-3 py-2", e.disabled === !0 && "opacity-70"),
38614
38586
  children: [/* @__PURE__ */ _("div", {
38615
38587
  className: "truncate text-xs font-semibold text-foreground",
38616
38588
  children: e.nodeLabel ?? e.agentNodeId
38617
- }), /* @__PURE__ */ _(gT, { column: e })]
38618
- }, cT(e))))]
38589
+ }), /* @__PURE__ */ _(hT, { column: e })]
38590
+ }, sT(e))))]
38619
38591
  }), b.map(({ node: e, depth: t }, i) => /* @__PURE__ */ v("div", {
38620
38592
  role: "row",
38621
38593
  className: "contents",
38622
- children: [/* @__PURE__ */ _(TT, {
38594
+ children: [/* @__PURE__ */ _(wT, {
38623
38595
  node: e,
38624
38596
  depth: t,
38625
38597
  r: i,
@@ -38629,7 +38601,7 @@ var DT = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
38629
38601
  onClick: c ? (t) => c(e.addonId, t) : void 0,
38630
38602
  sticky: te
38631
38603
  }), n.map((t, n) => {
38632
- let o = r(e.addonId, t), s = d !== null && d.addonId === e.addonId && cT(d) === cT(t), c = o.kind === "enabled" || o.kind === "skip";
38604
+ let o = r(e.addonId, t), s = d !== null && d.addonId === e.addonId && sT(d) === sT(t), c = o.kind === "enabled" || o.kind === "skip";
38633
38605
  return /* @__PURE__ */ _("div", {
38634
38606
  role: "gridcell",
38635
38607
  className: "min-w-0 border-b border-l border-border",
@@ -38638,17 +38610,17 @@ var DT = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
38638
38610
  "data-r": i,
38639
38611
  "data-c": n + 1,
38640
38612
  "data-step": e.addonId,
38641
- "data-col": cT(t),
38613
+ "data-col": sT(t),
38642
38614
  tabIndex: oe.r === i && oe.c === n + 1 ? 0 : -1,
38643
38615
  "aria-disabled": !c,
38644
38616
  "aria-selected": s,
38645
38617
  onClick: (n) => {
38646
38618
  c && a(e.addonId, t, n.detail === 0);
38647
38619
  },
38648
- className: bT(o, s, N("h-full w-full min-w-0 overflow-hidden px-3 py-2 outline-none", "focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary", !c && "cursor-default hover:bg-transparent", t.disabled === !0 && "opacity-70")),
38649
- children: yT(y, o)
38620
+ className: yT(o, s, N("h-full w-full min-w-0 overflow-hidden px-3 py-2 outline-none", "focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary", !c && "cursor-default hover:bg-transparent", t.disabled === !0 && "opacity-70")),
38621
+ children: vT(y, o)
38650
38622
  })
38651
- }, cT(t));
38623
+ }, sT(t));
38652
38624
  })]
38653
38625
  }, e.addonId))]
38654
38626
  }), p > 0 && /* @__PURE__ */ _("div", {
@@ -38671,7 +38643,7 @@ c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, selectedCell:
38671
38643
  let n = typeof ResizeObserver < "u" ? new ResizeObserver(t) : null;
38672
38644
  return n?.observe(e), () => n?.disconnect();
38673
38645
  }, []);
38674
- let S = o(() => lT(n), [n]), C = dT(b, S.length, ST, 208, n.length), w = o(() => S.length === 0 ? null : S.find((e) => e.agentNodeId === l) ?? S[0] ?? null, [S, l]), T = c?.agentNodeId;
38646
+ let S = o(() => cT(n), [n]), C = uT(b, S.length, xT, 208, n.length), w = o(() => S.length === 0 ? null : S.find((e) => e.agentNodeId === l) ?? S[0] ?? null, [S, l]), T = c?.agentNodeId;
38675
38647
  i(() => {
38676
38648
  C && T !== void 0 && T !== l && u(T);
38677
38649
  }, [
@@ -38684,11 +38656,11 @@ c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, selectedCell:
38684
38656
  return /* @__PURE__ */ v("div", {
38685
38657
  ref: y,
38686
38658
  className: "w-full space-y-2",
38687
- children: [C && w && S.length > 1 && /* @__PURE__ */ _(ET, {
38659
+ children: [C && w && S.length > 1 && /* @__PURE__ */ _(TT, {
38688
38660
  nodes: S,
38689
38661
  selected: w.agentNodeId,
38690
38662
  onSelect: u
38691
- }), /* @__PURE__ */ _(DT, {
38663
+ }), /* @__PURE__ */ _(ET, {
38692
38664
  ref: g,
38693
38665
  tree: e,
38694
38666
  agents: ee,
@@ -38705,7 +38677,7 @@ c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, selectedCell:
38705
38677
  }), e(), e(), e(), e(), e(), e(), e(), e(), e(), e(), e(), e(), e(), N(we, "min-w-0 max-w-full gap-1.5 py-1 pl-1 pr-2.5 text-xs font-normal", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40"), N(De, "font-medium"), e(), e(), e(), e(), e(), e();
38706
38678
  //#endregion
38707
38679
  //#region ../ui-library/src/composites/status-badge.tsx
38708
- var OT = {
38680
+ var DT = {
38709
38681
  online: {
38710
38682
  colorClass: "bg-success",
38711
38683
  labelKey: "uiLibrary.statusBadge.online",
@@ -38757,8 +38729,8 @@ var OT = {
38757
38729
  labelFallback: "Disabled"
38758
38730
  }
38759
38731
  };
38760
- function kT({ status: e, label: t, showDot: n = !0, showLabel: r = !0, size: i = "sm", className: a }) {
38761
- let o = x(), s = OT[e];
38732
+ function OT({ status: e, label: t, showDot: n = !0, showLabel: r = !0, size: i = "sm", className: a }) {
38733
+ let o = x(), s = DT[e];
38762
38734
  return /* @__PURE__ */ v("span", {
38763
38735
  className: N("inline-flex items-center gap-1.5", i === "sm" ? "text-xs" : "text-sm", a),
38764
38736
  children: [n && /* @__PURE__ */ _("span", {
@@ -38773,7 +38745,7 @@ function kT({ status: e, label: t, showDot: n = !0, showLabel: r = !0, size: i =
38773
38745
  //#endregion
38774
38746
  //#region ../ui-library/src/composites/step-inspector/step-inspector-panel.tsx
38775
38747
  e(), e();
38776
- function AT({ dirtyCount: e, saving: t, status: n, error: r, onSave: i, onDiscard: a, scope: o }) {
38748
+ function kT({ dirtyCount: e, saving: t, status: n, error: r, onSave: i, onDiscard: a, scope: o }) {
38777
38749
  let s = x(), c = e > 0, l = t ? s("uiLibrary.stepInspector.saving", "Saving…") : c ? s("uiLibrary.stepInspector.unsaved", {
38778
38750
  one: "{{count}} unsaved change",
38779
38751
  other: "{{count}} unsaved changes"
@@ -38849,23 +38821,23 @@ c(function({ title: e, subtitle: t, headerActions: n, headerExtra: r, leading: i
38849
38821
  className: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-4 py-3",
38850
38822
  children: s
38851
38823
  }),
38852
- a !== void 0 && /* @__PURE__ */ _(AT, { ...a })
38824
+ a !== void 0 && /* @__PURE__ */ _(kT, { ...a })
38853
38825
  ]
38854
38826
  });
38855
38827
  }), e(), e(), e(), e(), e(), e(), e(), e(), e(), e();
38856
38828
  //#endregion
38857
38829
  //#region ../ui-library/src/composites/device-history/history-window.ts
38858
- var jT = [
38830
+ var AT = [
38859
38831
  "24h",
38860
38832
  "7d",
38861
38833
  "30d",
38862
38834
  "1y",
38863
38835
  "custom"
38864
- ], MT = 24 * 36e5;
38836
+ ], jT = 24 * 36e5;
38865
38837
  //#endregion
38866
38838
  //#region ../ui-library/src/composites/device-history/HistoryChart.tsx
38867
- 7 * MT, 30 * MT, 365 * MT, e();
38868
- var NT = G({
38839
+ 7 * jT, 30 * jT, 365 * jT, e();
38840
+ var MT = G({
38869
38841
  subject: Yu("kind", [G({
38870
38842
  kind: q("device"),
38871
38843
  deviceId: H().int()
@@ -38875,52 +38847,52 @@ var NT = G({
38875
38847
  })]),
38876
38848
  key: B().min(1),
38877
38849
  scope: B()
38878
- }), PT = K(jT), FT = G({
38850
+ }), NT = K(AT), PT = G({
38879
38851
  id: B().min(1),
38880
38852
  name: B().min(1).max(80),
38881
- window: PT,
38882
- selection: W(NT).max(24)
38853
+ window: NT,
38854
+ selection: W(MT).max(24)
38883
38855
  });
38884
38856
  //#endregion
38885
38857
  //#region ../ui-library/src/hooks/use-event-invalidation.ts
38886
38858
  G({
38887
38859
  version: q(1),
38888
- panels: W(FT).max(50),
38860
+ panels: W(PT).max(50),
38889
38861
  hidden: $u(B(), W(B()).max(200))
38890
38862
  }), e(), e(), e(), e(), Ce("camstack:zone-editing", null), e(), e(), e(), e();
38891
38863
  //#endregion
38892
38864
  //#region ../ui-library/src/i18n/addon-i18n.ts
38893
- var IT = "en", LT = /* @__PURE__ */ new Map(), RT = /* @__PURE__ */ new Set(), zT = 0;
38894
- function BT(e) {
38865
+ var FT = "en", IT = /* @__PURE__ */ new Map(), LT = /* @__PURE__ */ new Set(), RT = 0;
38866
+ function zT(e) {
38895
38867
  let t = (e ?? "").trim().toLowerCase().split(/[-_]/)[0] ?? "";
38896
- return t === "" ? IT : t;
38868
+ return t === "" ? FT : t;
38897
38869
  }
38898
- function VT() {
38870
+ function BT() {
38899
38871
  if (typeof document < "u") {
38900
38872
  let e = document.documentElement.lang;
38901
- if (e.trim() !== "") return BT(e);
38873
+ if (e.trim() !== "") return zT(e);
38902
38874
  }
38903
- return typeof navigator < "u" && typeof navigator.language == "string" ? BT(navigator.language) : IT;
38875
+ return typeof navigator < "u" && typeof navigator.language == "string" ? zT(navigator.language) : FT;
38904
38876
  }
38905
- function HT(e, t, n) {
38906
- let r = BT(t), i = LT.get(e) ?? /* @__PURE__ */ new Map();
38907
- i.set(r, n), LT.set(e, i), zT += 1;
38908
- for (let e of RT) e();
38877
+ function VT(e, t, n) {
38878
+ let r = zT(t), i = IT.get(e) ?? /* @__PURE__ */ new Map();
38879
+ i.set(r, n), IT.set(e, i), RT += 1;
38880
+ for (let e of LT) e();
38909
38881
  }
38910
- function UT(e) {
38911
- RT.add(e);
38882
+ function HT(e) {
38883
+ LT.add(e);
38912
38884
  let t = null;
38913
38885
  return typeof document < "u" && typeof MutationObserver < "u" && (t = new MutationObserver(e), t.observe(document.documentElement, {
38914
38886
  attributes: !0,
38915
38887
  attributeFilter: ["lang"]
38916
38888
  })), () => {
38917
- RT.delete(e), t?.disconnect();
38889
+ LT.delete(e), t?.disconnect();
38918
38890
  };
38919
38891
  }
38920
- function WT() {
38921
- return `${VT()}#${zT}`;
38892
+ function UT() {
38893
+ return `${BT()}#${RT}`;
38922
38894
  }
38923
- function GT(e, t) {
38895
+ function WT(e, t) {
38924
38896
  let n = e;
38925
38897
  for (let e of t) {
38926
38898
  if (n === void 0 || typeof n == "string") return;
@@ -38928,46 +38900,46 @@ function GT(e, t) {
38928
38900
  }
38929
38901
  return typeof n == "string" ? n : void 0;
38930
38902
  }
38931
- function KT(e, t) {
38903
+ function GT(e, t) {
38932
38904
  try {
38933
38905
  return new Intl.PluralRules(e).select(t);
38934
38906
  } catch {
38935
38907
  return "other";
38936
38908
  }
38937
38909
  }
38938
- function qT(e, t, n, r) {
38939
- let i = LT.get(e)?.get(t);
38910
+ function KT(e, t, n, r) {
38911
+ let i = IT.get(e)?.get(t);
38940
38912
  if (i === void 0) return;
38941
38913
  let a = n.split(".");
38942
38914
  if (r !== void 0) {
38943
- let e = a[a.length - 1] ?? n, o = a.slice(0, -1), s = GT(i, [...o, `${e}_${KT(t, r)}`]);
38915
+ let e = a[a.length - 1] ?? n, o = a.slice(0, -1), s = WT(i, [...o, `${e}_${GT(t, r)}`]);
38944
38916
  if (s !== void 0) return s;
38945
- let c = GT(i, [...o, `${e}_other`]);
38917
+ let c = WT(i, [...o, `${e}_other`]);
38946
38918
  if (c !== void 0) return c;
38947
38919
  }
38948
- return GT(i, a);
38920
+ return WT(i, a);
38949
38921
  }
38950
- var JT = /\{\{\s*([\w.]+)\s*\}\}/g;
38951
- function YT(e, t) {
38952
- return t === void 0 ? e : e.replace(JT, (e, n) => {
38922
+ var qT = /\{\{\s*([\w.]+)\s*\}\}/g;
38923
+ function JT(e, t) {
38924
+ return t === void 0 ? e : e.replace(qT, (e, n) => {
38953
38925
  let r = t[n];
38954
38926
  return r === void 0 ? e : String(r);
38955
38927
  });
38956
38928
  }
38957
- function XT(e, t, n, r) {
38929
+ function YT(e, t, n, r) {
38958
38930
  let i = r?.count, a = typeof i == "number" ? i : void 0;
38959
- return YT(qT(e, t, n, a) ?? qT(e, IT, n, a) ?? n, r);
38931
+ return JT(KT(e, t, n, a) ?? KT(e, FT, n, a) ?? n, r);
38960
38932
  }
38961
38933
  //#endregion
38962
38934
  //#region ../ui-library/src/i18n/use-addon-t.tsx
38963
38935
  e();
38964
- function ZT() {
38965
- return g(UT, WT, WT);
38936
+ function XT() {
38937
+ return g(HT, UT, UT);
38966
38938
  }
38967
- function QT(e, t) {
38968
- let n = ZT(), r = n.slice(0, n.indexOf("#")), i = t === void 0 ? r : BT(t);
38939
+ function ZT(e, t) {
38940
+ let n = XT(), r = n.slice(0, n.indexOf("#")), i = t === void 0 ? r : zT(t);
38969
38941
  return {
38970
- t: l((t, n) => XT(e, i, t, n), [
38942
+ t: l((t, n) => YT(e, i, t, n), [
38971
38943
  e,
38972
38944
  i,
38973
38945
  n
@@ -38975,29 +38947,29 @@ function QT(e, t) {
38975
38947
  lang: i
38976
38948
  };
38977
38949
  }
38978
- var $T = /<(\/?)([A-Za-z][\w-]*)(\s*\/)?>/g;
38979
- function eE(e, t, n, r) {
38950
+ var QT = /<(\/?)([A-Za-z][\w-]*)(\s*\/)?>/g;
38951
+ function $T(e, t, n, r) {
38980
38952
  let i = e[t];
38981
38953
  return i === void 0 ? /* @__PURE__ */ _(a, { children: n }, r) : p(i, { key: r }, ...n);
38982
38954
  }
38983
- function tE(e, t, n) {
38955
+ function eE(e, t, n) {
38984
38956
  let r = {
38985
38957
  name: "",
38986
38958
  children: []
38987
38959
  }, i = [r], a = 0, o = 0, s = () => i[i.length - 1] ?? r, c = (e) => {
38988
- e !== "" && s().children.push(YT(e, n));
38960
+ e !== "" && s().children.push(JT(e, n));
38989
38961
  };
38990
- for (let n of e.matchAll($T)) {
38962
+ for (let n of e.matchAll(QT)) {
38991
38963
  c(e.slice(a, n.index)), a = n.index + n[0].length;
38992
38964
  let r = n[1] === "/", l = n[2] ?? "";
38993
- if (o += 1, n[3] !== void 0) s().children.push(eE(t, l, [], `k${o}`));
38965
+ if (o += 1, n[3] !== void 0) s().children.push($T(t, l, [], `k${o}`));
38994
38966
  else if (!r) i.push({
38995
38967
  name: l,
38996
38968
  children: []
38997
38969
  });
38998
38970
  else if (i.length > 1 && s().name === l) {
38999
38971
  let e = i.pop();
39000
- e && s().children.push(eE(t, l, e.children, `k${o}`));
38972
+ e && s().children.push($T(t, l, e.children, `k${o}`));
39001
38973
  }
39002
38974
  }
39003
38975
  for (c(e.slice(a)); i.length > 1;) {
@@ -39006,22 +38978,22 @@ function tE(e, t, n) {
39006
38978
  }
39007
38979
  return r.children;
39008
38980
  }
39009
- function nE(e, t) {
39010
- for (let [n, r] of Object.entries(t)) HT(e, n, r);
38981
+ function tE(e, t) {
38982
+ for (let [n, r] of Object.entries(t)) VT(e, n, r);
39011
38983
  return {
39012
38984
  ns: e,
39013
- useT: (t) => QT(e, t),
38985
+ useT: (t) => ZT(e, t),
39014
38986
  Trans: (t) => {
39015
- let { t: n } = QT(e), r = t.values?.count;
39016
- return /* @__PURE__ */ _(y, { children: tE(n(t.i18nKey, typeof r == "number" ? { count: r } : void 0), t.components ?? {}, t.values) });
38987
+ let { t: n } = ZT(e), r = t.values?.count;
38988
+ return /* @__PURE__ */ _(y, { children: eE(n(t.i18nKey, typeof r == "number" ? { count: r } : void 0), t.components ?? {}, t.values) });
39017
38989
  },
39018
- translate: (t, n) => XT(e, VT(), t, n)
38990
+ translate: (t, n) => YT(e, BT(), t, n)
39019
38991
  };
39020
38992
  }
39021
- e(), n(() => import("./MaskShapeCanvas-B6q5RDLi.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-BAg3ARov.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-BL8xJKp6.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-C0cYJFNC.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
38993
+ e(), n(() => import("./MaskShapeCanvas-B6q5RDLi.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-Z-NRG681.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-BYYK_XwY.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-DiS2hPpi.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
39022
38994
  //#endregion
39023
38995
  //#region src/i18n/index.ts
39024
- var { useT: rE, Trans: iE, translate: aE } = nE("import-alexa", {
38996
+ var { useT: nE, Trans: rE, translate: iE } = tE("import-alexa", {
39025
38997
  en: {
39026
38998
  page: {
39027
38999
  title: "Speak on Echo",
@@ -39103,14 +39075,14 @@ var { useT: rE, Trans: iE, translate: aE } = nE("import-alexa", {
39103
39075
  });
39104
39076
  //#endregion
39105
39077
  //#region src/speak-setup-view.tsx
39106
- function oE(e) {
39078
+ function aE(e) {
39107
39079
  return e === "announce" ? "announce" : "speak";
39108
39080
  }
39109
- function sE(e) {
39081
+ function oE(e) {
39110
39082
  return e === "ready" ? "online" : e === "failed" ? "error" : "idle";
39111
39083
  }
39112
- function cE(e) {
39113
- let { t } = rE(), n = e.brokers.find((t) => t.id === e.brokerId) ?? e.brokers[0], r = {
39084
+ function sE(e) {
39085
+ let { t } = nE(), n = e.brokers.find((t) => t.id === e.brokerId) ?? e.brokers[0], r = {
39114
39086
  ready: t("state.ready"),
39115
39087
  starting: t("state.starting"),
39116
39088
  "broker-not-signed-in": t("state.notSignedIn"),
@@ -39171,8 +39143,8 @@ function cE(e) {
39171
39143
  className: "text-sm text-foreground",
39172
39144
  children: n.name
39173
39145
  }),
39174
- /* @__PURE__ */ _(kT, {
39175
- status: sE(n.state),
39146
+ /* @__PURE__ */ _(OT, {
39147
+ status: oE(n.state),
39176
39148
  label: r[n.state],
39177
39149
  size: "sm"
39178
39150
  }),
@@ -39211,11 +39183,11 @@ function cE(e) {
39211
39183
  children: [n.room, n.kind === "group" ? t("devices.group") : n.family].filter((e) => e !== void 0 && e.length > 0).join(" · ")
39212
39184
  })]
39213
39185
  }),
39214
- /* @__PURE__ */ _(kT, {
39186
+ /* @__PURE__ */ _(OT, {
39215
39187
  status: n.online ? "online" : "offline",
39216
39188
  size: "sm"
39217
39189
  }),
39218
- n.dnd ? /* @__PURE__ */ _(kT, {
39190
+ n.dnd ? /* @__PURE__ */ _(OT, {
39219
39191
  status: "idle",
39220
39192
  label: t("devices.dnd"),
39221
39193
  size: "sm"
@@ -39237,7 +39209,7 @@ function cE(e) {
39237
39209
  value: "announce",
39238
39210
  label: t("devices.modeAnnounce")
39239
39211
  }],
39240
- onChange: (t) => e.onMode(oE(t.target.value))
39212
+ onChange: (t) => e.onMode(aE(t.target.value))
39241
39213
  }),
39242
39214
  /* @__PURE__ */ _(ov, {
39243
39215
  htmlFor: "alexa-volume",
@@ -39277,7 +39249,7 @@ function cE(e) {
39277
39249
  }
39278
39250
  //#endregion
39279
39251
  //#region src/speak/setup-sample.ts
39280
- var lE = [
39252
+ var cE = [
39281
39253
  {
39282
39254
  id: "echo-kitchen",
39283
39255
  name: "Kitchen",
@@ -39306,29 +39278,29 @@ var lE = [
39306
39278
  dnd: !1,
39307
39279
  deviceType: "A3S5BH2HU6VAYF"
39308
39280
  }
39309
- ], uE = {
39281
+ ], lE = {
39310
39282
  loggedIn: !0,
39311
39283
  ageSec: 90,
39312
39284
  lastSuccessAt: 1
39313
- }, dE = {
39285
+ }, uE = {
39314
39286
  loggedIn: !1,
39315
39287
  ageSec: 0,
39316
39288
  lastSuccessAt: null
39317
39289
  };
39318
- function fE(e) {
39290
+ function dE(e) {
39319
39291
  let t = {
39320
39292
  id: "alexa_001",
39321
39293
  name: "Home",
39322
39294
  state: "ready",
39323
- devices: [...lE],
39324
- session: uE
39295
+ devices: [...cE],
39296
+ session: lE
39325
39297
  };
39326
39298
  return e === "waiting" ? {
39327
39299
  brokers: [{
39328
39300
  ...t,
39329
39301
  state: "broker-not-signed-in",
39330
39302
  devices: [],
39331
- session: dE
39303
+ session: uE
39332
39304
  }],
39333
39305
  unassignedTargets: 0,
39334
39306
  notice: ""
@@ -39337,7 +39309,7 @@ function fE(e) {
39337
39309
  ...t,
39338
39310
  id: "alexa_002",
39339
39311
  name: "Office",
39340
- devices: [lE[0]]
39312
+ devices: [cE[0]]
39341
39313
  }].map((e) => ({
39342
39314
  ...e,
39343
39315
  devices: [...e.devices]
@@ -39365,14 +39337,14 @@ function fE(e) {
39365
39337
  notice: ""
39366
39338
  };
39367
39339
  }
39368
- function pE() {
39340
+ function fE() {
39369
39341
  if (typeof window > "u") return null;
39370
39342
  let e = new URLSearchParams(window.location.search).get("ui-shots-step");
39371
39343
  return e === "ready" || e === "accounts" || e === "waiting" || e === "legacy" ? e : null;
39372
39344
  }
39373
39345
  //#endregion
39374
39346
  //#region src/speak/worker-protocol.ts
39375
- var mE = G({
39347
+ var pE = G({
39376
39348
  id: B().min(1),
39377
39349
  name: B(),
39378
39350
  family: B(),
@@ -39383,7 +39355,7 @@ var mE = G({
39383
39355
  room: B().optional()
39384
39356
  });
39385
39357
  K(["ok", "failed"]);
39386
- var hE = G({
39358
+ var mE = G({
39387
39359
  loggedIn: U(),
39388
39360
  ageSec: H().int().nonnegative(),
39389
39361
  lastSuccessAt: H().int().nullable()
@@ -39403,19 +39375,19 @@ G({
39403
39375
  })]);
39404
39376
  //#endregion
39405
39377
  //#region src/speak/actions.ts
39406
- var gE = K([
39378
+ var hE = K([
39407
39379
  "starting",
39408
39380
  "ready",
39409
39381
  "broker-not-signed-in",
39410
39382
  "failed"
39411
- ]), _E = G({
39383
+ ]), gE = G({
39412
39384
  brokers: W(G({
39413
39385
  id: B(),
39414
39386
  name: B(),
39415
- state: gE,
39387
+ state: hE,
39416
39388
  error: B().optional(),
39417
- devices: W(mE),
39418
- session: hE
39389
+ devices: W(pE),
39390
+ session: mE
39419
39391
  })),
39420
39392
  unassignedTargets: H().int().nonnegative(),
39421
39393
  notice: K([
@@ -39426,8 +39398,8 @@ var gE = K([
39426
39398
  });
39427
39399
  //#endregion
39428
39400
  //#region src/page.tsx
39429
- ne({
39430
- speakStatus: se(G({}), _E, {
39401
+ me({
39402
+ speakStatus: se(G({}), gE, {
39431
39403
  kind: "mutation",
39432
39404
  auth: "admin"
39433
39405
  }),
@@ -39446,9 +39418,9 @@ ne({
39446
39418
  auth: "admin"
39447
39419
  })
39448
39420
  }), e();
39449
- var vE = "import-alexa";
39450
- function yE() {}
39451
- function bE(e, t, n = {}) {
39421
+ var _E = "import-alexa";
39422
+ function vE() {}
39423
+ function yE(e, t, n = {}) {
39452
39424
  return {
39453
39425
  brokers: e.brokers,
39454
39426
  brokerId: e.brokers[0]?.id ?? "",
@@ -39460,24 +39432,24 @@ function bE(e, t, n = {}) {
39460
39432
  phrase: t,
39461
39433
  busy: !1,
39462
39434
  error: null,
39463
- onBroker: yE,
39464
- onToggle: yE,
39465
- onMode: yE,
39466
- onVolume: yE,
39467
- onPhrase: yE,
39468
- onSendTest: yE,
39435
+ onBroker: vE,
39436
+ onToggle: vE,
39437
+ onMode: vE,
39438
+ onVolume: vE,
39439
+ onPhrase: vE,
39440
+ onSendTest: vE,
39469
39441
  ...n
39470
39442
  };
39471
39443
  }
39472
- function xE({ step: e }) {
39473
- let { t } = rE();
39474
- return /* @__PURE__ */ _(cE, { ...bE(fE(e), t("devices.phraseDefault")) });
39444
+ function bE({ step: e }) {
39445
+ let { t } = nE();
39446
+ return /* @__PURE__ */ _(sE, { ...yE(dE(e), t("devices.phraseDefault")) });
39475
39447
  }
39476
- function SE(e, t) {
39448
+ function xE(e, t) {
39477
39449
  return Number.isFinite(e) ? Math.min(100, Math.max(0, Math.round(e))) : t;
39478
39450
  }
39479
- function CE() {
39480
- let { t: e } = rE(), t = Mi(), [n, r] = h({
39451
+ function SE() {
39452
+ let { t: e } = nE(), t = Mi(), [n, r] = h({
39481
39453
  status: {
39482
39454
  brokers: [],
39483
39455
  unassignedTargets: 0,
@@ -39493,7 +39465,7 @@ function CE() {
39493
39465
  async function a(e, n) {
39494
39466
  try {
39495
39467
  return await t.mutateAsync({
39496
- addonId: vE,
39468
+ addonId: _E,
39497
39469
  action: e,
39498
39470
  input: n
39499
39471
  });
@@ -39506,7 +39478,7 @@ function CE() {
39506
39478
  }
39507
39479
  }
39508
39480
  async function o() {
39509
- let e = _E.safeParse(await a("speakStatus", {}));
39481
+ let e = gE.safeParse(await a("speakStatus", {}));
39510
39482
  e.success && r((t) => ({
39511
39483
  ...t,
39512
39484
  status: e.data,
@@ -39516,7 +39488,7 @@ function CE() {
39516
39488
  }
39517
39489
  return i(() => {
39518
39490
  o();
39519
- }, []), /* @__PURE__ */ _(cE, { ...bE(n.status, n.phrase, {
39491
+ }, []), /* @__PURE__ */ _(sE, { ...yE(n.status, n.phrase, {
39520
39492
  brokerId: n.brokerId,
39521
39493
  selected: n.selected,
39522
39494
  mode: n.mode,
@@ -39541,7 +39513,7 @@ function CE() {
39541
39513
  })),
39542
39514
  onVolume: (e) => r((t) => ({
39543
39515
  ...t,
39544
- volume: SE(e, t.volume)
39516
+ volume: xE(e, t.volume)
39545
39517
  })),
39546
39518
  onPhrase: (e) => r((t) => ({
39547
39519
  ...t,
@@ -39558,9 +39530,9 @@ function CE() {
39558
39530
  }
39559
39531
  }) });
39560
39532
  }
39561
- function wE(e) {
39562
- let t = pE();
39563
- return t === null ? /* @__PURE__ */ _(CE, {}) : /* @__PURE__ */ _(xE, { step: t });
39533
+ function CE(e) {
39534
+ let t = fE();
39535
+ return t === null ? /* @__PURE__ */ _(SE, {}) : /* @__PURE__ */ _(bE, { step: t });
39564
39536
  }
39565
39537
  //#endregion
39566
- export { wE as default };
39538
+ export { CE as default };