@camera.ui/server 2.2.6 → 2.2.7

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 (338) hide show
  1. package/dist/interface/assets/{404-BLVuKvLk.js → 404-C8EoOtBl.js} +1 -1
  2. package/dist/interface/assets/{About-C-AJ0jfI.js → About-Q7ZmOGgl.js} +1 -1
  3. package/dist/interface/assets/Assistant-DFLgklVe.js +1 -0
  4. package/dist/interface/assets/{Automation-C95DzuZb.js → Automation-D__qvx8c.js} +3 -3
  5. package/dist/interface/assets/{AutomationImport-C8VYjDzf.js → AutomationImport-CLQSdqg9.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-CE4PKRGd.js → AutomationStore-Dt6yTQDb.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-DavWfjLv.js → AutomationStoreDetail-DqBrBhUI.js} +2 -2
  8. package/dist/interface/assets/Automations-BH_7lYR7.js +2 -0
  9. package/dist/interface/assets/Camera-aquPHFwb.js +2 -0
  10. package/dist/interface/assets/{CameraConsole-C4AmtcrM.js → CameraConsole-rhle_cfW.js} +1 -1
  11. package/dist/interface/assets/{Cameras-DR577Bno.js → Cameras-Bzy3P0xN.js} +2 -2
  12. package/dist/interface/assets/Camview-CjcQbtTl.js +1 -0
  13. package/dist/interface/assets/{CertificateUpload-BYFKZCP9.js → CertificateUpload-CWVu_52v.js} +1 -1
  14. package/dist/interface/assets/Config-Dc1zKIPq.js +2 -0
  15. package/dist/interface/assets/{ConfigActionAssistant-YtCVI8LZ.js → ConfigActionAssistant-AfQfSqHZ.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionCameraControl-Dg_1zOYt.js → ConfigActionCameraControl-BKQdHxqe.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionDelay-_EqbfWgo.js → ConfigActionDelay-B52HeJGb.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionHttp-BzwLv2tn.js → ConfigActionHttp-BP5gvpQc.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionImageInput-CLdY2sV4.js → ConfigActionImageInput-DE2mSost.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionMqtt-lGqYshl3.js → ConfigActionMqtt-CYgnZjAE.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotification-D5Dj3EoU.js → ConfigActionNotification-C3q53I4n.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionNotificationControl-Dy5fKamr.js → ConfigActionNotificationControl-eDJ8r5ao.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionOutput-DzsQ31L0.js → ConfigActionOutput-DgYSYvy-.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionPlugin-BFrBcXvL.js → ConfigActionPlugin-utolgAXk.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSensor-CX8ePlan.js → ConfigActionSensor-CmEKQPqs.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionSnapshot-BATLRmh6.js → ConfigActionSnapshot-D7XucxVV.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionVariable-Dgn5jvaR.js → ConfigActionVariable-C-Mjm3gr.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionIfElse-D5IIBjyk.js → ConfigConditionIfElse-B24Rqb8y.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSensorState-C0JxBWdG.js → ConfigConditionSensorState-42-yFDmK.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionSwitch-Brlgd0XP.js → ConfigConditionSwitch-DezH_nwm.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionTime-CM4bSMyU.js → ConfigConditionTime-Cg2Lwznd.js} +1 -1
  32. package/dist/interface/assets/{ConfigSensorValueInput-CtuH8dCa.js → ConfigSensorValueInput-YHBDCTZm.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerDetection-DsL7lLQl.js → ConfigTriggerDetection-DxEpodjG.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerGeofence-CAGIk1_W.js → ConfigTriggerGeofence-Bye8syxc.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerManual-DgkR-GWy.js → ConfigTriggerManual-s_lEDTV9.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerMqtt-B_iFalAQ.js → ConfigTriggerMqtt-DqdZj7TU.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSchedule-E_QWfNKy.js → ConfigTriggerSchedule-Q559hn6g.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSensor-hYNbLXUu.js → ConfigTriggerSensor-DIKkdbTF.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSystem-DR1EFpE9.js → ConfigTriggerSystem-CwNZ4xEg.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerWebhook-C-B5GGFH.js → ConfigTriggerWebhook-9ZC6X4mK.js} +1 -1
  41. package/dist/interface/assets/Console-BqIDZ5vq.js +1 -0
  42. package/dist/interface/assets/{CuiAssistantConversation-BmshW6Vc.css → CuiAssistantConversation-BmBhwrNh.css} +1 -1
  43. package/dist/interface/assets/CuiAssistantConversation-CM7KdaX2.js +5 -0
  44. package/dist/interface/assets/CuiAutomationRunsDialog-CVjCLiVW.js +1 -0
  45. package/dist/interface/assets/CuiBottomSheet-CFohFiO2.js +1 -0
  46. package/dist/interface/assets/{CuiBottomSheet-C2sM2E3M.js → CuiBottomSheet-D75L0Zny.js} +1 -1
  47. package/dist/interface/assets/{CuiCameraPipCard-wdK7xir-.js → CuiCameraPipCard-eiJjYZ5W.js} +1 -1
  48. package/dist/interface/assets/CuiCameraRecordings-DdEWkJrO.js +1 -0
  49. package/dist/interface/assets/{CuiCameraShares-B6jdUBVm.js → CuiCameraShares-8mtgFsQ_.js} +1 -1
  50. package/dist/interface/assets/{CuiCameraTable-CpBo25Qc.js → CuiCameraTable-CmCT-XQF.js} +2 -2
  51. package/dist/interface/assets/CuiCameraTable-DHrKoD9s.js +1 -0
  52. package/dist/interface/assets/CuiChartTable-DCr_AsSw.css +1 -0
  53. package/dist/interface/assets/CuiChartTable-v8sGY6PD.js +1 -0
  54. package/dist/interface/assets/{CuiConsole-BGptpT6r.js → CuiConsole-DYV-FUE0.js} +2 -2
  55. package/dist/interface/assets/{CuiDataTable-CQmp5mAy.js → CuiDataTable-C0gsYYpg.js} +1 -1
  56. package/dist/interface/assets/{CuiLightControl-wbZi3fA1.js → CuiLightControl-CFIwBj3C.js} +1 -1
  57. package/dist/interface/assets/{CuiList-Dsu5m0TA.js → CuiList-9TVV8SB6.js} +1 -1
  58. package/dist/interface/assets/{CuiPluginCard-BjIc7It9.js → CuiPluginCard-DEfqwUhQ.js} +2 -2
  59. package/dist/interface/assets/{CuiPluginCategoryChip-BtJ_6_gN.js → CuiPluginCategoryChip-DhnIBJHa.js} +1 -1
  60. package/dist/interface/assets/{CuiPluginOAuthButton-Duf35I8K.js → CuiPluginOAuthButton-DAuzNRAA.js} +2 -2
  61. package/dist/interface/assets/{CuiPluginTrustBadge-jxXeRTH2.js → CuiPluginTrustBadge-Bz710WwC.js} +1 -1
  62. package/dist/interface/assets/{CuiQRCode-BNchrpoB.js → CuiQRCode-B8-4GHSY.js} +1 -1
  63. package/dist/interface/assets/{CuiSchema-DGTMkVSe.js → CuiSchema-C_CHuKuf.js} +1 -1
  64. package/dist/interface/assets/{CuiTopNavbarItem-CHtLvn53.js → CuiTopNavbarItem-CNEnOPSh.js} +1 -1
  65. package/dist/interface/assets/Faces-DRHMrrxh.js +1 -0
  66. package/dist/interface/assets/{FirstSteps-HzaBMDbH.js → FirstSteps-Ci2Iqbe2.js} +1 -1
  67. package/dist/interface/assets/Floorplan-CqWIbDbh.js +1 -0
  68. package/dist/interface/assets/{Instances-Dl-6rL5O.js → Instances-gzKFKB1l.js} +1 -1
  69. package/dist/interface/assets/{Logs-DsJkuQFq.js → Logs-DL1yw_Pe.js} +2 -2
  70. package/dist/interface/assets/{Menu-D_woMkjL.js → Menu-C0GQ63aj.js} +1 -1
  71. package/dist/interface/assets/Metrics-BYnnb7M0.js +12 -0
  72. package/dist/interface/assets/Metrics-DsHBab6t.css +1 -0
  73. package/dist/interface/assets/{OAuthDeviceFlow-CXfILAE1.js → OAuthDeviceFlow-Zd6r9IHU.js} +1 -1
  74. package/dist/interface/assets/Plugin-DJIrYUnZ.js +1 -0
  75. package/dist/interface/assets/{PluginConsole-C96m5zKy.js → PluginConsole-ag0jPZQ_.js} +1 -1
  76. package/dist/interface/assets/{PluginDetail-CnfaI1vh.js → PluginDetail-DmElwUuV.js} +2 -2
  77. package/dist/interface/assets/{PluginSchema-u1bqXU29.js → PluginSchema-CxUujnVs.js} +1 -1
  78. package/dist/interface/assets/PluginSearch-B-2zH2Xy.js +1 -0
  79. package/dist/interface/assets/PluginSearch-BqzngVRL.js +2 -0
  80. package/dist/interface/assets/{PluginUpdateProgress-BT4lN9HT.js → PluginUpdateProgress-CFut0RAe.js} +1 -1
  81. package/dist/interface/assets/Plugins-ZFcB_j6v.js +1 -0
  82. package/dist/interface/assets/{RecentEventsFilter-Kp_lTOuG.js → RecentEventsFilter-CqeHhECT.js} +1 -1
  83. package/dist/interface/assets/Recordings-BJrtW9eG.js +1 -0
  84. package/dist/interface/assets/SensorEdit-Bi0gg-CL.js +1 -0
  85. package/dist/interface/assets/{SensorHistory-Cet35_RO.js → SensorHistory-q0UR3qMG.js} +1 -1
  86. package/dist/interface/assets/Sensors-C_InhcHA.js +2 -0
  87. package/dist/interface/assets/{Settings-C-LCDIbK.js → Settings-Cv38rGWn.js} +1 -1
  88. package/dist/interface/assets/SettingsAccount-B05739dn.js +1 -0
  89. package/dist/interface/assets/SettingsAccount-gm28wtbl.js +1 -0
  90. package/dist/interface/assets/{SettingsAppearance-BS4EQNjH.js → SettingsAppearance-DdyYUgmV.js} +1 -1
  91. package/dist/interface/assets/SettingsAppearance-DwUknDPV.js +1 -0
  92. package/dist/interface/assets/SettingsAssistant-ChHfkUKk.js +1 -0
  93. package/dist/interface/assets/{SettingsBackup-DBlV1gej.js → SettingsBackup-DKwlPQhD.js} +1 -1
  94. package/dist/interface/assets/{SettingsList-D8eSwbBY.js → SettingsList-D6hqnvUo.js} +1 -1
  95. package/dist/interface/assets/SettingsMqtt-C01fgLY0.js +1 -0
  96. package/dist/interface/assets/SettingsNotifications-D47cIquQ.js +1 -0
  97. package/dist/interface/assets/{SettingsPermissions-CJiz0Z7B.js → SettingsPermissions-BeTCTrAf.js} +1 -1
  98. package/dist/interface/assets/{SettingsRecordings-CLz9Zp47.js → SettingsRecordings-mwL6Dalr.js} +1 -1
  99. package/dist/interface/assets/SettingsRemote-MhaShPIf.js +2 -0
  100. package/dist/interface/assets/{SettingsSystem-txTFGomQ.js → SettingsSystem-BXnzXgqm.js} +2 -2
  101. package/dist/interface/assets/{SettingsUsers-CUp6vQPc.js → SettingsUsers-D2mVlJin.js} +1 -1
  102. package/dist/interface/assets/Terminal-C1UoXDRK.js +4 -0
  103. package/dist/interface/assets/Training-A5ynOv_l.js +1 -0
  104. package/dist/interface/assets/{Training-Bkn52mPJ.css → Training-C-ToeAl4.css} +1 -1
  105. package/dist/interface/assets/Updates-kS_Tm8HD.js +2 -0
  106. package/dist/interface/assets/{VariableInput-183LygmK.js → VariableInput-D9PfI8Ut.js} +1 -1
  107. package/dist/interface/assets/{VariableSuggestions-DwLtlzVz.js → VariableSuggestions-DArWzQuE.js} +1 -1
  108. package/dist/interface/assets/{VersionsHandler-DkbkcypK.js → VersionsHandler-BZVMpB2v.js} +1 -1
  109. package/dist/interface/assets/{VirtualSensorCreate-Bn4tgdxA.js → VirtualSensorCreate-Cz-QFo4R.js} +1 -1
  110. package/dist/interface/assets/Workers-2sc4VMi9.js +2 -0
  111. package/dist/interface/assets/api-CGfJbsTz.css +2 -0
  112. package/dist/interface/assets/{api-h4HRB3ef.js → api-CzwdnGAH.js} +1 -1
  113. package/dist/interface/assets/api-DOpXVpef.js +4 -0
  114. package/dist/interface/assets/{assistant-4hYyIu6D.js → assistant-hGCAgv-f.js} +1 -1
  115. package/dist/interface/assets/{auth-DFesRtwI.js → auth-By-S-WEr.js} +1 -1
  116. package/dist/interface/assets/{automations-D2bnX8uw.js → automations-vwIwb2PQ.js} +1 -1
  117. package/dist/interface/assets/{cameraSources-DmVZWs4-.js → cameraSources-BMhXvtFt.js} +1 -1
  118. package/dist/interface/assets/cloudHandoff-BnzjCpJ2.js +1 -0
  119. package/dist/interface/assets/{config-DDaCrMSU.js → config-BQxEwrK6.js} +1 -1
  120. package/dist/interface/assets/{flowSchema-YJtAu9gB.js → flowSchema-BPq6iHks.js} +1 -1
  121. package/dist/interface/assets/{intercomService-CjoJaOZ7.js → intercomService-CXcjcPa9.js} +1 -1
  122. package/dist/interface/assets/main-By4L33Im.js +3 -0
  123. package/dist/interface/assets/mqtt-DE1KQ8Td.js +1 -0
  124. package/dist/interface/assets/{notifications-5yeK345h.js → notifications-BCyiD-TP.js} +1 -1
  125. package/dist/interface/assets/{plugins-BTOdE_zv.js → plugins-BJPCV1YL.js} +1 -1
  126. package/dist/interface/assets/rooms-Dr4yiakO.js +1 -0
  127. package/dist/interface/assets/{sensorIcons-5Ynqwo3e.js → sensorIcons-DofElQ3w.js} +1 -1
  128. package/dist/interface/assets/{sensorSlots-BF70tpV7.js → sensorSlots-D2KJGvPw.js} +1 -1
  129. package/dist/interface/assets/{sensors-CeFEEz8r.js → sensors-3llrL7s3.js} +1 -1
  130. package/dist/interface/assets/server-Dw5DD473.js +1 -0
  131. package/dist/interface/assets/{theme-DF_XA58O.js → theme-C85LJhOY.js} +1 -1
  132. package/dist/interface/assets/{types-CklFkUXk.js → types-CPhy0Ovw.js} +1 -1
  133. package/dist/interface/assets/{types-ArGM5-5O.js → types-DYKmSGl4.js} +1 -1
  134. package/dist/interface/assets/{types-BcAxmlqC.js → types-i1kTodPP.js} +1 -1
  135. package/dist/interface/assets/ungrouped-BlheTJCh.css +1 -0
  136. package/dist/interface/assets/ungrouped-C2CWO39a.js +1 -0
  137. package/dist/interface/assets/{updates-D3x_kPMM.js → updates-C2LhMkNR.js} +1 -1
  138. package/dist/interface/assets/{useAppVersion-Dcvu95bZ.js → useAppVersion-DkazK9Vu.js} +1 -1
  139. package/dist/interface/assets/{useAssistantActions-Cc_O6M9_.js → useAssistantActions-BZP6NL18.js} +1 -1
  140. package/dist/interface/assets/useBackupRestore-DMQW_CVC.js +1 -0
  141. package/dist/interface/assets/{useCameraOptions-8I4MTDgj.js → useCameraOptions-DnI0xLrX.js} +1 -1
  142. package/dist/interface/assets/useKeyboardInset-Cr7SxKGN.js +1 -0
  143. package/dist/interface/assets/{useLogsSocket-bpOiLgWT.js → useLogsSocket-C3Y8S0Ar.js} +1 -1
  144. package/dist/interface/assets/{useNavLayout-Cjf6Da2u.js → useNavLayout-C9pcDuVP.js} +1 -1
  145. package/dist/interface/assets/{usePermissions-BXTw4tII.js → usePermissions-CCTxwXF0.js} +1 -1
  146. package/dist/interface/assets/{usePluginUpdates-bOMj-IvL.js → usePluginUpdates-DBhLWAua.js} +1 -1
  147. package/dist/interface/assets/{usePushRegistration-HOvLuUVP.js → usePushRegistration-CPRVdLAx.js} +1 -1
  148. package/dist/interface/assets/{useServerRestart-CQN4cdHJ.js → useServerRestart-bScBLJ9r.js} +1 -1
  149. package/dist/interface/assets/{useStreamStatus-Da7c2Wme.js → useStreamStatus-Bfh-WmLH.js} +1 -1
  150. package/dist/interface/assets/{useTabSwipe-fFuyJJBQ.js → useTabSwipe-C_QOrvSW.js} +1 -1
  151. package/dist/interface/assets/{useUpdateChannel-Ca1RX32u.js → useUpdateChannel-g0h_4c55.js} +1 -1
  152. package/dist/interface/assets/{useUpdatesSocket-DHZNpLQX.js → useUpdatesSocket-CxrLRETs.js} +1 -1
  153. package/dist/interface/assets/{useUserOptions-BQdOB-Dp.js → useUserOptions-DN0t3gBr.js} +1 -1
  154. package/dist/interface/assets/vendor-cameraui-B28aGJJD.js +2326 -0
  155. package/dist/interface/assets/{vendor-core-B-Q4es-f.js → vendor-core-DIa0tPNH.js} +1 -1
  156. package/dist/interface/assets/{vendor-primevue-Cmp3VjIC.js → vendor-primevue-CZKUAkMA.js} +77 -77
  157. package/dist/interface/ha/{404-C0mWQGWl.js → 404-tl2VQ3qy.js} +1 -1
  158. package/dist/interface/ha/{About-ByE7XErJ.js → About-Cn7KOblU.js} +3 -3
  159. package/dist/interface/ha/{Assistant-Z3FTR868.js → Assistant-DG2GGda0.js} +1225 -1203
  160. package/dist/interface/ha/{Automation-COQqTFNw.js → Automation-D0_WpXx4.js} +27 -27
  161. package/dist/interface/ha/{AutomationImport-ueWqMBX9.js → AutomationImport-DdC3dEaC.js} +6 -6
  162. package/dist/interface/ha/{AutomationStore-DBO4aZqy.js → AutomationStore-BrLn4oBx.js} +4 -4
  163. package/dist/interface/ha/{AutomationStoreDetail-DMnYu7hf.js → AutomationStoreDetail-DoppNsNc.js} +6 -6
  164. package/dist/interface/ha/{Automations-CMdbidc0.js → Automations-BaUJ9pVq.js} +3 -3
  165. package/dist/interface/ha/{Camera-C28q_3pu.js → Camera-Cj5ImvZG.js} +12 -12
  166. package/dist/interface/ha/{CameraConsole-oMNZfKE6.js → CameraConsole-7MhlS2VK.js} +3 -3
  167. package/dist/interface/ha/{Cameras-CsqrLx97.js → Cameras-vHYz8uSO.js} +6 -6
  168. package/dist/interface/ha/{Camview-Br0LUakz.js → Camview-BEglAx26.js} +452 -452
  169. package/dist/interface/ha/{Config-Y5eUNSW7.js → Config-CHiK--zP.js} +6 -6
  170. package/dist/interface/ha/{ConfigActionAssistant-hl-6ZACj.js → ConfigActionAssistant-DynduZYV.js} +4 -4
  171. package/dist/interface/ha/{ConfigActionCameraControl-DnXlVFWD.js → ConfigActionCameraControl-BEYePssz.js} +3 -3
  172. package/dist/interface/ha/{ConfigActionHttp-BkpkMmRd.js → ConfigActionHttp-h0vRWqZ5.js} +2 -2
  173. package/dist/interface/ha/{ConfigActionImageInput-Dp78_QS_.js → ConfigActionImageInput-B9GMZYAR.js} +1 -1
  174. package/dist/interface/ha/{ConfigActionMqtt-DA_UWb5j.js → ConfigActionMqtt-BEQpHBgf.js} +4 -4
  175. package/dist/interface/ha/{ConfigActionNotification-CQ4Ses3a.js → ConfigActionNotification-BYsz8_aS.js} +3 -3
  176. package/dist/interface/ha/{ConfigActionNotificationControl-Cb5PNGz-.js → ConfigActionNotificationControl-BxmIWVE8.js} +2 -2
  177. package/dist/interface/ha/{ConfigActionOutput-DLuNHwRb.js → ConfigActionOutput-DTOQSa1S.js} +1 -1
  178. package/dist/interface/ha/{ConfigActionPlugin-ChKFCNaj.js → ConfigActionPlugin-NOsUs3QI.js} +5 -5
  179. package/dist/interface/ha/{ConfigActionSensor-DOutFalW.js → ConfigActionSensor-YWnsH_LV.js} +4 -4
  180. package/dist/interface/ha/{ConfigActionSnapshot-GWgY6YIN.js → ConfigActionSnapshot-DHJnTvin.js} +2 -2
  181. package/dist/interface/ha/{ConfigActionVariable-bu-9VYTG.js → ConfigActionVariable-C7UFnvW0.js} +1 -1
  182. package/dist/interface/ha/{ConfigConditionIfElse-iNp8tlZV.js → ConfigConditionIfElse-CAHbuhH3.js} +3 -3
  183. package/dist/interface/ha/{ConfigConditionSensorState-Dn7kcHpJ.js → ConfigConditionSensorState-CE6okUeb.js} +4 -4
  184. package/dist/interface/ha/{ConfigConditionSwitch-DaUlDgo0.js → ConfigConditionSwitch-D5FULaTy.js} +4 -4
  185. package/dist/interface/ha/{ConfigSensorValueInput-D6m6suqJ.js → ConfigSensorValueInput-mo6Gs_aZ.js} +3 -3
  186. package/dist/interface/ha/{ConfigTriggerDetection-C5B_DC_L.js → ConfigTriggerDetection-Bt-OhHtM.js} +11 -11
  187. package/dist/interface/ha/{ConfigTriggerGeofence-B4WVNcK5.js → ConfigTriggerGeofence-Cw3jV5qD.js} +2 -2
  188. package/dist/interface/ha/{ConfigTriggerMqtt-wnMfk_Un.js → ConfigTriggerMqtt-BXeV82UG.js} +1 -1
  189. package/dist/interface/ha/{ConfigTriggerSensor-xFpI5KPu.js → ConfigTriggerSensor-Baqq--nJ.js} +1 -1
  190. package/dist/interface/ha/{ConfigTriggerSystem-YI9WYYVM.js → ConfigTriggerSystem-braUVGzW.js} +2 -2
  191. package/dist/interface/ha/{ConfigTriggerWebhook-58c2KgUe.js → ConfigTriggerWebhook-Dm45r-1C.js} +1 -1
  192. package/dist/interface/ha/{Console-Coiqh32K.js → Console-q3TCsxYo.js} +2 -2
  193. package/dist/interface/ha/{CuiAutomationRunsDialog-CJ2MGfEY.js → CuiAutomationRunsDialog-DO6h5Tc4.js} +2 -2
  194. package/dist/interface/ha/{CuiBottomSheet-BlG9Pl9j.js → CuiBottomSheet-B7ldz0xi.js} +1 -1
  195. package/dist/interface/ha/{CuiCameraRecordings-DLXEB4Q7.js → CuiCameraRecordings-Dq1Vh3qA.js} +6 -6
  196. package/dist/interface/ha/{CuiCameraShares-BCIeaM6u.js → CuiCameraShares-DBqcpevG.js} +2 -2
  197. package/dist/interface/ha/{CuiCameraTable-PYYC7sOu.js → CuiCameraTable-kL8rK-Uv.js} +2 -2
  198. package/dist/interface/ha/{CuiChartTable-FQ2iR5Hd.js → CuiChartTable-BrFyiSt_.js} +81 -66
  199. package/dist/interface/ha/{CuiConsole-C77k5q_-.js → CuiConsole-DpeXZmJd.js} +1 -1
  200. package/dist/interface/ha/{CuiDataTable-CIKQLseG.js → CuiDataTable-BtqzIz0o.js} +1 -1
  201. package/dist/interface/ha/{CuiPluginCard-DZNXKP_P.js → CuiPluginCard-lBLypaN4.js} +6 -6
  202. package/dist/interface/ha/{CuiPluginOAuthButton-DVf52_Zc.js → CuiPluginOAuthButton-CuGauZJA.js} +3 -3
  203. package/dist/interface/ha/{CuiPluginTrustBadge-CPljYiM8.js → CuiPluginTrustBadge-BofBmRYc.js} +1 -1
  204. package/dist/interface/ha/{CuiQRCode-oe8PLnLj.js → CuiQRCode-CdK9bwKb.js} +2 -2
  205. package/dist/interface/ha/{CuiSchema-CQy94ZTs.js → CuiSchema-DqkCLv9Y.js} +2 -2
  206. package/dist/interface/ha/{CuiTopNavbarItem-D6OHZLQY.js → CuiTopNavbarItem-C2VZB7WV.js} +1 -1
  207. package/dist/interface/ha/{Faces-DxAPvemO.js → Faces-Crfi-75Z.js} +239 -239
  208. package/dist/interface/ha/{FirstSteps-ZINTSaeL.js → FirstSteps-CKVG86pf.js} +4 -4
  209. package/dist/interface/ha/{Floorplan-DkbL8ppT.js → Floorplan-CH9_-6hk.js} +5 -5
  210. package/dist/interface/ha/{Instances-totWtqd7.js → Instances-5gZdPPDA.js} +1 -1
  211. package/dist/interface/ha/{Logs-CzabIFja.js → Logs-BkzEM70F.js} +6 -6
  212. package/dist/interface/ha/{Menu-DcVBOQfw.js → Menu-BuT3_Ggx.js} +2 -2
  213. package/dist/interface/ha/{Metrics-B_SN5hbp.js → Metrics-BGrzu0bu.js} +288 -286
  214. package/dist/interface/ha/{OAuthDeviceFlow-B28TPsTQ.js → OAuthDeviceFlow-BEJtegqy.js} +3 -3
  215. package/dist/interface/ha/{Plugin-B2PbbB8d.js → Plugin-Bnp2jiC2.js} +6 -6
  216. package/dist/interface/ha/{PluginConsole-_KeG4FvO.js → PluginConsole-CmsuPVMz.js} +4 -4
  217. package/dist/interface/ha/{PluginDetail-GK_Fx14e.js → PluginDetail-BCNx7vHr.js} +6 -6
  218. package/dist/interface/ha/{PluginSearch-qSy4aqAW.js → PluginSearch-DOdhuxgM.js} +4 -4
  219. package/dist/interface/ha/{PluginUpdateProgress-C4Q2j6VO.js → PluginUpdateProgress-CwkKc8Tr.js} +3 -3
  220. package/dist/interface/ha/{Plugins-D0tvZHie.js → Plugins-BrFowCdC.js} +7 -7
  221. package/dist/interface/ha/{Recordings-CpxJYaAa.js → Recordings-BZhf39pJ.js} +168 -166
  222. package/dist/interface/ha/{SensorEdit-8KtqLXEu.js → SensorEdit-Ds6WbN4A.js} +3 -3
  223. package/dist/interface/ha/{SensorHistory-CPTTsdjM.js → SensorHistory-CoTIYTJx.js} +2 -2
  224. package/dist/interface/ha/{Sensors-DJt_Hnn2.js → Sensors-DZ2MKdlh.js} +4 -4
  225. package/dist/interface/ha/{Settings-B-OdG5pG.js → Settings-D3JKr430.js} +2 -2
  226. package/dist/interface/ha/{SettingsAccount-Ba2-2Lbi.js → SettingsAccount-cvtlSKZw.js} +4 -4
  227. package/dist/interface/ha/{SettingsAppearance-D56HjSuQ.js → SettingsAppearance-CaKuOHRu.js} +3 -3
  228. package/dist/interface/ha/{SettingsAssistant-DglU0auc.js → SettingsAssistant-vWVjAUqQ.js} +4 -4
  229. package/dist/interface/ha/{SettingsBackup-DZx4McDz.js → SettingsBackup-CvzL_bVf.js} +2 -2
  230. package/dist/interface/ha/{SettingsList-D9nIGkbE.js → SettingsList-C0Ec8x-H.js} +1 -1
  231. package/dist/interface/ha/{SettingsMqtt-BOszh--k.js → SettingsMqtt-COnq-QM5.js} +2 -2
  232. package/dist/interface/ha/{SettingsNotifications-DBVpZfp0.js → SettingsNotifications-BZ68bQzO.js} +3 -3
  233. package/dist/interface/ha/{SettingsRecordings-D3oJnizu.js → SettingsRecordings-BPtNNpDa.js} +4 -4
  234. package/dist/interface/ha/{SettingsRemote-BOotvcOT.js → SettingsRemote-BXG8IYjf.js} +4 -4
  235. package/dist/interface/ha/{SettingsSystem-Bg11qoQX.js → SettingsSystem-_jHBUhws.js} +7 -7
  236. package/dist/interface/ha/{SettingsUsers-KpLs9Jnh.js → SettingsUsers-CzGj_RJN.js} +3 -3
  237. package/dist/interface/ha/{Terminal-D6opTHYI.js → Terminal-BP3b8IBP.js} +4 -4
  238. package/dist/interface/ha/Training-C2-6DgY0.js +1699 -0
  239. package/dist/interface/ha/{Updates-C_OvXJjd.js → Updates-BMZsEhmy.js} +4 -4
  240. package/dist/interface/ha/{VariableInput-CfaDp67S.js → VariableInput-DmI7skCD.js} +1 -1
  241. package/dist/interface/ha/{VersionsHandler-D1FVeYUZ.js → VersionsHandler-DJd4NqtD.js} +8 -8
  242. package/dist/interface/ha/{VirtualSensorCreate-DJIgMVrt.js → VirtualSensorCreate-DmtGYvAn.js} +1 -1
  243. package/dist/interface/ha/{Workers-cJMI4mYX.js → Workers-2HTPHgKV.js} +6 -6
  244. package/dist/interface/ha/{api-D2VzV4is.js → api-BelbnLQO.js} +7110 -7058
  245. package/dist/interface/ha/{api-CDawdL4p.js → api-sy4rqV2N.js} +1 -1
  246. package/dist/interface/ha/{assistant-BmDAfChm.js → assistant-C6KYXJfi.js} +1 -1
  247. package/dist/interface/ha/{auth-CvLz9C4w.js → auth-Da66mVEd.js} +1 -1
  248. package/dist/interface/ha/{automationBlueprint-BhNaeOZ1.js → automationBlueprint-hlqqM17r.js} +2 -2
  249. package/dist/interface/ha/cameraui-cards.js +1 -1
  250. package/dist/interface/ha/{cards-MQrnU0T8.js → cards-BFRRfuM7.js} +67 -67
  251. package/dist/interface/ha/{config-t_oAKFkJ.js → config-Cd7JNMpD.js} +1 -1
  252. package/dist/interface/ha/{dist-oFWkn6pD.js → dist-BybVYMVs.js} +19 -19
  253. package/dist/interface/ha/{mqtt-C20h1uze.js → mqtt-UZfptWJl.js} +1 -1
  254. package/dist/interface/ha/{notifications-Cy9DKiEn.js → notifications-DTHM8fS-.js} +1 -1
  255. package/dist/interface/ha/{plugins-jozYyBhV.js → plugins-Bwp_GfaX.js} +1 -1
  256. package/dist/interface/ha/{rooms-DyfT3cXp.js → rooms-BvaD0r0q.js} +1 -1
  257. package/dist/interface/ha/{server-hCCjQjZE.js → server-OWdtITVa.js} +2 -2
  258. package/dist/interface/ha/{types-RG0SckNR.js → types-BFJjyMZe.js} +1 -1
  259. package/dist/interface/ha/{ungrouped-BbyfoCQp.js → ungrouped-x00DHNHO.js} +219 -196
  260. package/dist/interface/ha/{updates-hUgVDgoD.js → updates-C03Qf3Il.js} +5 -5
  261. package/dist/interface/ha/{useAppVersion-wNhZDuvR.js → useAppVersion-CrMd9CC9.js} +1 -1
  262. package/dist/interface/ha/{useKeyboardInset-Cmbvb_W3.js → useKeyboardInset-DwUQCWHC.js} +1 -1
  263. package/dist/interface/ha/{useLogsSocket-y9Aex3tJ.js → useLogsSocket-C6k217mW.js} +1 -1
  264. package/dist/interface/ha/{useNavLayout-Ehb0t34k.js → useNavLayout-DhuQE024.js} +1 -1
  265. package/dist/interface/ha/{useServerRestart-CRSVcz3z.js → useServerRestart-CYaen2r6.js} +1 -1
  266. package/dist/interface/ha/{useTabSwipe-B_bseZkI.js → useTabSwipe-DAmCFlgg.js} +1 -1
  267. package/dist/interface/ha/{useUpdateChannel-C_GU6lj6.js → useUpdateChannel-Dr1EoU2X.js} +2 -2
  268. package/dist/interface/ha/{useUpdatesSocket-CYgHb7UX.js → useUpdatesSocket-C8Gmhemh.js} +1 -1
  269. package/dist/interface/ha/{useUserOptions-pVYr-s3O.js → useUserOptions-BB5wk3Bq.js} +1 -1
  270. package/dist/interface/index.html +32 -32
  271. package/dist/interface/sw.js +1 -1
  272. package/dist/server/package.json +3 -3
  273. package/dist/server/requirements.txt +1 -1
  274. package/dist/server/src/api/controllers/api.controller.js +1 -1
  275. package/dist/server/src/api/controllers/api.controller.js.map +1 -1
  276. package/dist/server/src/api/websocket/nsp/notifications.d.ts +1 -0
  277. package/dist/server/src/api/websocket/nsp/notifications.js +7 -0
  278. package/dist/server/src/api/websocket/nsp/notifications.js.map +1 -1
  279. package/dist/server/src/assistant/automation-catalog.js +12 -2
  280. package/dist/server/src/assistant/automation-catalog.js.map +1 -1
  281. package/dist/server/src/manager/notificationManager.d.ts +1 -0
  282. package/dist/server/src/manager/notificationManager.js +11 -0
  283. package/dist/server/src/manager/notificationManager.js.map +1 -1
  284. package/dist/server/src/services/config/index.d.ts +1 -0
  285. package/dist/server/src/services/config/index.js +12 -1
  286. package/dist/server/src/services/config/index.js.map +1 -1
  287. package/dist/server/src/utils/ipc.js +23 -17
  288. package/dist/server/src/utils/ipc.js.map +1 -1
  289. package/npm-shrinkwrap.json +10 -10
  290. package/package.json +3 -3
  291. package/dist/interface/assets/Assistant-BJKGIvVo.js +0 -1
  292. package/dist/interface/assets/Automations-BOP_17Ri.js +0 -2
  293. package/dist/interface/assets/Camera-C5S7eI9a.js +0 -2
  294. package/dist/interface/assets/Camview-CHxKB41T.js +0 -1
  295. package/dist/interface/assets/Config-BrDDGWpr.js +0 -2
  296. package/dist/interface/assets/Console-cIr6lYux.js +0 -1
  297. package/dist/interface/assets/CuiAssistantConversation-Bigl43Ph.js +0 -5
  298. package/dist/interface/assets/CuiAutomationRunsDialog-Ci7SWAml.js +0 -1
  299. package/dist/interface/assets/CuiBottomSheet-ViBOgklN.js +0 -1
  300. package/dist/interface/assets/CuiCameraRecordings-BB7bF67B.js +0 -1
  301. package/dist/interface/assets/CuiCameraTable-CHnQFkce.js +0 -1
  302. package/dist/interface/assets/CuiChartTable-DXY7rY3O.css +0 -1
  303. package/dist/interface/assets/CuiChartTable-dIcxGtfl.js +0 -1
  304. package/dist/interface/assets/Faces-p18jNfXl.js +0 -1
  305. package/dist/interface/assets/Floorplan-DYyEx7WO.js +0 -1
  306. package/dist/interface/assets/Metrics-ChVnC6f6.css +0 -1
  307. package/dist/interface/assets/Metrics-l3UwykCM.js +0 -12
  308. package/dist/interface/assets/Plugin-Ldj3HygQ.js +0 -1
  309. package/dist/interface/assets/PluginSearch-BiXG3Xk2.js +0 -2
  310. package/dist/interface/assets/PluginSearch-BuE7we1T.js +0 -1
  311. package/dist/interface/assets/Plugins-Csx6AXaW.js +0 -1
  312. package/dist/interface/assets/Recordings-D0KTY5cI.js +0 -1
  313. package/dist/interface/assets/SensorEdit-zs-f_o1N.js +0 -1
  314. package/dist/interface/assets/Sensors-BLAoalEt.js +0 -2
  315. package/dist/interface/assets/SettingsAccount-BsN7jGmo.js +0 -1
  316. package/dist/interface/assets/SettingsAccount-DuVyCSE-.js +0 -1
  317. package/dist/interface/assets/SettingsAppearance-DQcGbYbV.js +0 -1
  318. package/dist/interface/assets/SettingsAssistant-DViJklFd.js +0 -1
  319. package/dist/interface/assets/SettingsMqtt-JoszJJgV.js +0 -1
  320. package/dist/interface/assets/SettingsNotifications-3veSrxa_.js +0 -1
  321. package/dist/interface/assets/SettingsRemote-DUyl8k7I.js +0 -2
  322. package/dist/interface/assets/Terminal-hln2UuSR.js +0 -4
  323. package/dist/interface/assets/Training-D6lhvUf-.js +0 -1
  324. package/dist/interface/assets/Updates-BwSWt9w7.js +0 -2
  325. package/dist/interface/assets/Workers-B6b15izn.js +0 -2
  326. package/dist/interface/assets/api-C9mnOxie.js +0 -4
  327. package/dist/interface/assets/api-Cj9a6qPu.css +0 -2
  328. package/dist/interface/assets/cloudHandoff-Ba98bzeq.js +0 -1
  329. package/dist/interface/assets/main-C796FmqQ.js +0 -3
  330. package/dist/interface/assets/mqtt-DGBPptzB.js +0 -1
  331. package/dist/interface/assets/rooms-BCdm6IAx.js +0 -1
  332. package/dist/interface/assets/server-bhW2Mw4D.js +0 -1
  333. package/dist/interface/assets/ungrouped-BnQIcSQd.css +0 -1
  334. package/dist/interface/assets/ungrouped-CkIlDUwl.js +0 -1
  335. package/dist/interface/assets/useBackupRestore-xp5KhKVn.js +0 -1
  336. package/dist/interface/assets/useKeyboardInset-C0Lp0UcX.js +0 -1
  337. package/dist/interface/assets/vendor-cameraui-CK4yHsJi.js +0 -2326
  338. package/dist/interface/ha/Training-OB2KOQ7L.js +0 -1694
@@ -1,23 +1,23 @@
1
1
  import { Et as e, et as t, f as n, gt as r, i, m as a, rt as o } from "./ripple-ZDATPc2w.js";
2
2
  import { n as s } from "./virtualscroller-B-UQZDMJ.js";
3
3
  import { A as c, D as l, G as u, H as d, Jt as f, K as p, M as m, N as h, Wt as g, Y as _, _t as v, d as y, f as b, gt as x, kt as S, l as C, lt as w, ot as ee, p as T, q as E, r as D, rt as O, st as te, u as k, ut as ne, x as A, xt as j, y as M, z as re } from "./runtime-core.esm-bundler-_TfE0DWz.js";
4
- import { $ as ie, Bn as ae, Dn as oe, Er as N, Hr as se, Jn as ce, Ln as le, On as ue, Q as de, Qn as fe, Rn as pe, Si as me, Tr as he, Un as ge, Vn as _e, _r as ve, br as ye, ct as be, et as xe, gr as Se, gt as Ce, it as we, lr as Te, lt as Ee, nt as De, o as Oe, rr as ke, rt as Ae, tt as je, ur as Me, zn as Ne } from "./api-D2VzV4is.js";
5
- import { A as Pe, _ as Fe, o as Ie } from "./intercomService-B7HkLs6z.js";
6
- import { n as Le } from "./vue-i18n-D5EAy78K.js";
7
- import { i as Re } from "./alert-outline-FcLLjoOK.js";
8
- import { t as ze } from "./eventIcons-BFNUgeGr.js";
9
- import { t as Be } from "./spinner-DIILjDT9.js";
10
- import { M as Ve } from "./dist-oFWkn6pD.js";
11
- import { t as P } from "./inputtext-C_ygnPrC.js";
12
- import { t as F } from "./select-DV7p2EDj.js";
4
+ import { $ as ie, $n as ae, Dn as oe, Er as N, Fn as se, Hr as ce, On as le, Pn as P, Q as ue, Rn as de, Si as fe, Tr as pe, Un as me, Wn as he, Xn as ge, _r as _e, br as ve, ct as ye, er as be, et as xe, gr as Se, gt as Ce, it as we, lr as Te, lt as Ee, nt as De, o as Oe, rr as ke, rt as Ae, tt as je, ur as Me } from "./api-BelbnLQO.js";
5
+ import { A as Ne, _ as Pe, o as Fe } from "./intercomService-B7HkLs6z.js";
6
+ import { n as Ie } from "./vue-i18n-D5EAy78K.js";
7
+ import { i as Le } from "./alert-outline-FcLLjoOK.js";
8
+ import { t as Re } from "./eventIcons-BFNUgeGr.js";
9
+ import { t as ze } from "./spinner-DIILjDT9.js";
10
+ import { M as Be } from "./dist-BybVYMVs.js";
11
+ import { t as F } from "./inputtext-C_ygnPrC.js";
12
+ import { t as I } from "./select-DV7p2EDj.js";
13
13
  //#region ~icons/tabler/user-edit
14
- var I = {
14
+ var L = {
15
15
  viewBox: "0 0 24 24",
16
16
  width: "1.2em",
17
17
  height: "1.2em"
18
18
  };
19
- function He(e, t) {
20
- return d(), T("svg", I, [...t[0] ||= [k("path", {
19
+ function Ve(e, t) {
20
+ return d(), T("svg", L, [...t[0] ||= [k("path", {
21
21
  fill: "none",
22
22
  stroke: "currentColor",
23
23
  "stroke-linecap": "round",
@@ -26,23 +26,23 @@ function He(e, t) {
26
26
  d: "M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h3.5m4.92.61a2.1 2.1 0 0 1 2.97 2.97L18 22h-3v-3z"
27
27
  }, null, -1)]]);
28
28
  }
29
- var Ue = v({
29
+ var He = v({
30
30
  name: "tabler-user-edit",
31
- render: He
32
- }), L = { class: "flex flex-col gap-4 w-full" }, R = {
31
+ render: Ve
32
+ }), R = { class: "flex flex-col gap-4 w-full" }, z = {
33
33
  key: 0,
34
34
  class: "flex justify-center"
35
- }, z = ["src", "alt"], B = { class: "flex flex-col gap-2 w-full" }, We = { class: "cui-label" }, V = { class: "flex flex-col gap-2 w-full" }, H = {
35
+ }, B = ["src", "alt"], V = { class: "flex flex-col gap-2 w-full" }, H = { class: "cui-label" }, U = { class: "flex flex-col gap-2 w-full" }, W = {
36
36
  for: "reassignTarget",
37
37
  class: "cui-label"
38
- }, Ge = /* @__PURE__ */ A({
38
+ }, Ue = /* @__PURE__ */ A({
39
39
  __name: "FaceReassign",
40
40
  props: {
41
41
  cropUrl: {},
42
42
  oldName: {}
43
43
  },
44
44
  setup(e, { expose: t }) {
45
- let n = e, { t: r } = Le(), { plugin: i } = Ve("@camera.ui/camera-ui-nvr"), a = j(null), o = j([]), s = j(!0), c = C(() => n.oldName === "unknown" ? r("views.recordings.reassign_unknown_person") : n.oldName), l = C(() => {
45
+ let n = e, { t: r } = Ie(), { plugin: i } = Be("@camera.ui/camera-ui-nvr"), a = j(null), o = j([]), s = j(!0), c = C(() => n.oldName === "unknown" ? r("views.recordings.reassign_unknown_person") : n.oldName), l = C(() => {
46
46
  let e = o.value.filter((e) => e !== n.oldName).map((e) => ({
47
47
  label: e,
48
48
  value: e
@@ -60,20 +60,20 @@ var Ue = v({
60
60
  s.value = !1;
61
61
  }
62
62
  }), t({ onConfirm: async () => a.value }), (e, t) => {
63
- let r = P, i = F;
64
- return d(), T("div", L, [
65
- n.cropUrl ? (d(), T("div", R, [k("img", {
63
+ let r = F, i = I;
64
+ return d(), T("div", R, [
65
+ n.cropUrl ? (d(), T("div", z, [k("img", {
66
66
  src: n.cropUrl,
67
67
  alt: S(c),
68
68
  class: "w-36 h-36 rounded-xl object-cover bg-neutral-900"
69
- }, null, 8, z)])) : b("", !0),
70
- k("div", B, [k("label", We, f(e.$t("views.recordings.reassign_current")), 1), M(r, {
69
+ }, null, 8, B)])) : b("", !0),
70
+ k("div", V, [k("label", H, f(e.$t("views.recordings.reassign_current")), 1), M(r, {
71
71
  "model-value": S(c),
72
72
  class: "w-full",
73
73
  fluid: "",
74
74
  disabled: ""
75
75
  }, null, 8, ["model-value"])]),
76
- k("div", V, [k("label", H, f(e.$t("views.recordings.reassign_new")), 1), M(i, {
76
+ k("div", U, [k("label", W, f(e.$t("views.recordings.reassign_new")), 1), M(i, {
77
77
  id: "reassignTarget",
78
78
  modelValue: S(a),
79
79
  "onUpdate:modelValue": t[0] ||= (e) => x(a) ? a.value = e : null,
@@ -95,31 +95,31 @@ var Ue = v({
95
95
  ]);
96
96
  };
97
97
  }
98
- }), Ke = {
98
+ }), We = {
99
99
  key: 0,
100
100
  class: "card-skeleton absolute inset-0 rounded-xl"
101
- }, qe = {
101
+ }, Ge = {
102
102
  key: 2,
103
103
  class: "w-full h-full flex items-center justify-center bg-neutral-800/80"
104
- }, Je = { class: "absolute top-0 left-0 right-0 p-2 bg-gradient-to-b from-black/80 to-transparent z-[3]" }, Ye = { class: "flex items-center gap-1.5" }, Xe = { class: "text-xs font-semibold text-white truncate min-w-0 flex-1" }, Ze = {
104
+ }, Ke = { class: "absolute top-0 left-0 right-0 p-2 bg-gradient-to-b from-black/80 to-transparent z-[3]" }, qe = { class: "flex items-center gap-1.5" }, Je = { class: "text-xs font-semibold text-white truncate min-w-0 flex-1" }, Ye = {
105
105
  key: 0,
106
106
  class: "text-[10px] font-semibold text-white/80 bg-black/60 px-1.5 py-0.5 rounded-md shrink-0"
107
- }, Qe = ["title"], $e = ["title", "disabled"], et = { class: "text-[10px] text-white/70" }, tt = ["aria-label"], nt = ["aria-label"], rt = { class: "block text-[11px] text-white font-medium truncate bg-black/50 rounded-md px-2 py-0.5" }, it = { class: "flex items-center gap-1 min-w-0" }, at = ["title"], ot = {
107
+ }, Xe = ["title"], Ze = ["title", "disabled"], Qe = { class: "text-[10px] text-white/70" }, $e = ["aria-label"], et = ["aria-label"], tt = { class: "block text-[11px] text-white font-medium truncate bg-black/50 rounded-md px-2 py-0.5" }, nt = { class: "flex items-center gap-1 min-w-0" }, rt = ["title"], it = {
108
108
  key: 0,
109
109
  class: "flex items-center gap-0.5 shrink-0 opacity-85 group-hover:opacity-100 transition-opacity duration-200"
110
- }, st = ["onClick"], ct = ["src", "alt"], lt = {
110
+ }, at = ["onClick"], ot = ["src", "alt"], st = {
111
111
  key: 0,
112
112
  class: "text-[10px] text-white/60 font-medium"
113
- }, ut = {
113
+ }, ct = {
114
114
  key: 6,
115
115
  class: "absolute inset-0 z-[4] flex items-center justify-center pointer-events-none"
116
- }, dt = {
116
+ }, lt = {
117
117
  key: 7,
118
118
  class: "absolute bottom-10 left-1/2 -translate-x-1/2 z-[4] pointer-events-none"
119
- }, ft = {
119
+ }, ut = {
120
120
  class: "text-[10px] font-semibold text-white bg-black/60 px-1.5 py-0.5 rounded-md whitespace-nowrap",
121
121
  style: { "font-variant-numeric": "tabular-nums" }
122
- }, pt = 24, mt = 30, ht = 22, gt = 28, _t = 8, vt = 8, U = /*#__PURE__*/ N(/* @__PURE__ */ A({
122
+ }, dt = 24, ft = 30, pt = 22, mt = 28, ht = 8, gt = 8, G = /*#__PURE__*/ N(/* @__PURE__ */ A({
123
123
  __name: "RecordingCard",
124
124
  props: {
125
125
  event: {},
@@ -139,7 +139,7 @@ var Ue = v({
139
139
  "openTrace"
140
140
  ],
141
141
  setup(e, { emit: t }) {
142
- let r = e, i = t, o = Ie(), s = me(), { t: c } = Le(), p = se(), m = ce("@camera.ui/camera-ui-nvr"), { plugin: v } = Ve("@camera.ui/camera-ui-nvr"), x = Ce(), { icons: w } = ze(), E = m.getCachedThumbnails(r.event.id), te = E ? le(E, r.event, "card", r.segIndex).url ? "loaded" : "empty" : "loading", A = l(Ne, void 0), N = O("rootRef"), Fe = O("previewCanvasRef"), Be = O("footerRef"), P = O("cardMenuRef"), F = j(!1), I = j(!1), He = De(N, () => Gt(), () => $()), L = j(!1), R = j(E ?? null), z = j(te), B = j(!1), We = j(0), V = j(null), H = j(!1), U = j(0), yt = C(() => Se(void 0, "admin")), W = C(() => V.value ?? r.event.favorite ?? !1), G = C(() => {
142
+ let r = e, i = t, o = Fe(), s = fe(), { t: c } = Ie(), p = ce(), m = ge("@camera.ui/camera-ui-nvr"), { plugin: v } = Be("@camera.ui/camera-ui-nvr"), x = Ce(), { icons: w } = Re(), E = m.getCachedThumbnails(r.event.id), te = E ? P(E, r.event, "card", r.segIndex).url ? "loaded" : "empty" : "loading", A = l(he, void 0), N = O("rootRef"), Pe = O("previewCanvasRef"), ze = O("footerRef"), F = O("cardMenuRef"), I = j(!1), L = j(!1), Ve = De(N, () => Kt(), () => $()), R = j(!1), z = j(E ?? null), B = j(te), V = j(!1), H = j(0), U = j(null), W = j(!1), G = j(), _t = j(0), vt = C(() => Se(void 0, "admin")), yt = C(() => U.value ?? r.event.favorite ?? !1), bt = C(() => {
143
143
  if (r.semanticScore == null) return;
144
144
  let e = Math.max(0, Math.min(1, r.semanticScore));
145
145
  return {
@@ -147,23 +147,23 @@ var Ue = v({
147
147
  label: `${(e * 100).toFixed(0)}%`,
148
148
  color: e >= .5 ? "bg-green-500/80" : e >= .25 ? "bg-yellow-500/80" : "bg-red-400/80"
149
149
  };
150
- }), K = C(() => R.value ? le(R.value, r.event, "card", r.segIndex) : null), q = C(() => {
150
+ }), K = C(() => z.value ? P(z.value, r.event, "card", r.segIndex) : null), q = C(() => {
151
151
  let e = r.segIndex ?? K.value?.segIndex;
152
152
  return e === void 0 ? void 0 : r.event.segments?.[e];
153
- }), bt = C(() => K.value?.url), xt = C(() => K.value?.label), St = C(() => K.value?.type ?? r.event.types[0] ?? "motion"), J = C(() => {
153
+ }), xt = C(() => K.value?.url), St = C(() => K.value?.label), Ct = C(() => K.value?.type ?? r.event.types[0] ?? "motion"), J = C(() => {
154
154
  if (r.hideSegmentBadge) return;
155
155
  let e = r.event.segments?.length ?? 0;
156
156
  return r.segIndex !== void 0 && e > 1 ? `${r.segIndex + 1}/${e}` : void 0;
157
157
  }), Y = C(() => {
158
- let e = R.value, t = K.value?.url;
158
+ let e = z.value, t = K.value?.url;
159
159
  if (!e || !t) return [];
160
160
  let n = [{
161
161
  url: t,
162
162
  label: K.value?.label,
163
- type: St.value,
163
+ type: Ct.value,
164
164
  crop: !1
165
165
  }];
166
- for (let t of ae(e, r.segIndex)) {
166
+ for (let t of se(e, r.segIndex)) {
167
167
  if (n.some((e) => e.url === t.url)) continue;
168
168
  let e = t.key.split(":")[0];
169
169
  n.push({
@@ -175,7 +175,7 @@ var Ue = v({
175
175
  });
176
176
  }
177
177
  if (r.segIndex === void 0) for (let t of Object.keys(e.cards ?? e.strips ?? {}).sort((e, t) => Number(e) - Number(t))) {
178
- let i = ge(e.cards?.[t] ?? e.strips?.[t]);
178
+ let i = me(e.cards?.[t] ?? e.strips?.[t]);
179
179
  if (!i || n.some((e) => e.url === i)) continue;
180
180
  let a = we(r.event, t);
181
181
  n.push({
@@ -186,26 +186,26 @@ var Ue = v({
186
186
  });
187
187
  }
188
188
  return n.length > 1 ? n : [];
189
- }), Ct = C(() => Y.value.length > 1), wt = C(() => Y.value.length ? Math.min(We.value, Y.value.length - 1) : 0), X = C(() => Ct.value ? Y.value[wt.value] : void 0), Tt = C(() => !!X.value?.crop), Et = C(() => X.value?.url ?? bt.value), Dt = C(() => X.value?.label ?? xt.value), Z = C(() => {
189
+ }), wt = C(() => Y.value.length > 1), X = C(() => Y.value.length ? Math.min(H.value, Y.value.length - 1) : 0), Z = C(() => wt.value ? Y.value[X.value] : void 0), Tt = C(() => !!Z.value?.crop), Et = C(() => Z.value?.url ?? xt.value), Dt = C(() => Z.value?.label ?? St.value), Q = C(() => {
190
190
  let e = q.value;
191
- return (e ? fe(r.event, e) : [...new Set(r.event.types)]).filter((e) => e !== "motion" && e !== "audio");
191
+ return (e ? ae(r.event, e) : [...new Set(r.event.types)]).filter((e) => e !== "motion" && e !== "audio");
192
192
  }), Ot = C(() => r.cameraName ?? r.event.cameraId), kt = C(() => Y.value.map((e) => ({
193
193
  url: e.url,
194
194
  type: e.type
195
- }))), At = C(() => Z.value.slice(0, Q.value.icons)), Q = C(() => {
196
- let e = U.value;
195
+ }))), At = C(() => Q.value.slice(0, jt.value.icons)), jt = C(() => {
196
+ let e = _t.value;
197
197
  if (!e) return {
198
198
  icons: 2,
199
199
  tiles: 2
200
200
  };
201
- let t = e - _t;
202
- r.selectionMode && (t -= gt);
203
- let n = kt.value.length > 0 ? 52 : 0, i = Vt(Z.value.length, Math.max(0, t - n), pt), a = Z.value.length > 0 ? Math.max(1, i) : 0, o = a * pt + (a < Z.value.length ? ht : 0);
201
+ let t = e - ht;
202
+ r.selectionMode && (t -= mt);
203
+ let n = kt.value.length > 0 ? 52 : 0, i = Ht(Q.value.length, Math.max(0, t - n), dt), a = Q.value.length > 0 ? Math.max(1, i) : 0, o = a * dt + (a < Q.value.length ? pt : 0);
204
204
  return {
205
205
  icons: a,
206
- tiles: Vt(kt.value.length, Math.max(0, t - o), mt)
206
+ tiles: Ht(kt.value.length, Math.max(0, t - o), ft)
207
207
  };
208
- }), jt = C(() => Z.value.slice(Q.value.icons)), Mt = C(() => kt.value.slice(0, Q.value.tiles)), Nt = C(() => kt.value.length - Q.value.tiles), Pt = C(() => {
208
+ }), Mt = C(() => Q.value.slice(jt.value.icons)), Nt = C(() => kt.value.slice(0, jt.value.tiles)), Pt = C(() => kt.value.length - jt.value.tiles), Ft = C(() => {
209
209
  let e = new Date(q.value?.firstSeen ?? r.event.thumbnailAt ?? r.event.startTime), t = /* @__PURE__ */ new Date(), n = e.toDateString() === t.toDateString(), i = e.toLocaleTimeString([], {
210
210
  hour: "2-digit",
211
211
  minute: "2-digit"
@@ -214,39 +214,49 @@ var Ue = v({
214
214
  month: "short",
215
215
  day: "numeric"
216
216
  })} ${i}`;
217
- }), Ft = C(() => !!(v.value && r.event.endTime && r.event.hasRecording !== !1)), It = C(() => A ? I.value ? c("views.recordings.no_preview") : L.value ? A.status.value === "unavailable" ? c("views.recordings.no_preview") : A.status.value === "playing" && A.previewTimeMs.value ? Wt(A.previewTimeMs.value) : "" : "" : ""), Lt = C(() => {
218
- let e = X.value;
219
- if (e && e.type === "face") return e.label ? e.label : "unknown";
220
- }), Rt = C(() => {
217
+ }), It = C(() => !!(v.value && r.event.endTime && r.event.hasRecording !== !1)), Lt = C(() => A ? L.value ? c("views.recordings.no_preview") : R.value ? A.status.value === "unavailable" ? c("views.recordings.no_preview") : A.status.value === "playing" && A.previewTimeMs.value ? Gt(A.previewTimeMs.value) : "" : "" : ""), Rt = C(() => {
218
+ let e = Z.value;
219
+ if (e?.crop) return e.type === "face" ? {
220
+ seg: e.faceSeg ?? -1,
221
+ label: e.label || "unknown"
222
+ } : void 0;
223
+ let t = r.segIndex ?? K.value?.segIndex;
224
+ if (X.value > 0 || t === void 0) return;
225
+ let n = q.value?.attributes.filter((e) => e.type === "face") ?? [];
226
+ return n.length === 1 ? {
227
+ seg: t,
228
+ label: n[0].label || "unknown"
229
+ } : void 0;
230
+ }), zt = C(() => {
221
231
  let e = [];
222
- return yt.value && Lt.value !== void 0 && e.push({
232
+ return vt.value && Rt.value && e.push({
223
233
  key: "reassign",
224
234
  label: c("views.recordings.reassign_face"),
225
- icon: Ue,
226
- loading: H.value,
227
- onClick: () => Zt()
235
+ icon: He,
236
+ loading: W.value,
237
+ onClick: () => Qt()
228
238
  }), r.camera && e.push({
229
239
  key: "trace",
230
240
  label: c("views.recordings.open_trace"),
231
- icon: be,
241
+ icon: ye,
232
242
  onClick: () => i("openTrace", q.value?.firstSeen)
233
243
  }), e.push({
234
244
  key: "ask",
235
245
  label: c("views.recordings.ask_assistant"),
236
- icon: Re,
237
- onClick: () => Bt()
238
- }), Ft.value && e.push({
246
+ icon: Le,
247
+ onClick: () => Vt()
248
+ }), It.value && e.push({
239
249
  key: "download",
240
250
  label: c("views.recordings.download"),
241
251
  icon: Ee,
242
- loading: B.value,
243
- onClick: () => en()
252
+ loading: V.value,
253
+ onClick: () => tn()
244
254
  }), e;
245
255
  });
246
- function zt() {
247
- ue(P.value?.hide);
248
- }
249
256
  function Bt() {
257
+ le(F.value?.hide);
258
+ }
259
+ function Vt() {
250
260
  let e = c("views.recordings.ask_assistant_prompt", {
251
261
  camera: r.cameraName ?? r.camera?.name ?? r.event.cameraId,
252
262
  time: new Date(r.event.startTime).toLocaleString(),
@@ -257,51 +267,51 @@ var Ue = v({
257
267
  query: { prompt: e }
258
268
  });
259
269
  }
260
- function Vt(e, t, n) {
261
- return e === 0 || t < n ? 0 : e * n <= t ? e : Math.max(0, Math.floor((t - ht) / n));
270
+ function Ht(e, t, n) {
271
+ return e === 0 || t < n ? 0 : e * n <= t ? e : Math.max(0, Math.floor((t - pt) / n));
262
272
  }
263
- function Ht(e) {
273
+ function Ut(e) {
264
274
  let t = Y.value.length;
265
- t && ($(), We.value = (wt.value + e + t) % t);
275
+ t && ($(), G.value = void 0, H.value = (X.value + e + t) % t);
266
276
  }
267
- function Ut(e, t) {
268
- Ct.value && (t.stopPropagation(), $(), We.value = e);
277
+ function Wt(e, t) {
278
+ wt.value && (t.stopPropagation(), $(), G.value = void 0, H.value = e);
269
279
  }
270
280
  function $() {
271
- I.value = !1, A && L.value && (L.value = !1, A.onHoverEnd());
281
+ L.value = !1, A && R.value && (R.value = !1, A.onHoverEnd());
272
282
  }
273
- function Wt(e) {
283
+ function Gt(e) {
274
284
  let t = new Date(e);
275
285
  return `${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}:${String(t.getSeconds()).padStart(2, "0")}`;
276
286
  }
277
- function Gt() {
278
- if (!A || wt.value > 0) return;
279
- let e = Fe.value;
287
+ function Kt() {
288
+ if (!A || X.value > 0) return;
289
+ let e = Pe.value;
280
290
  if (!e) return;
281
- let t = _e(r.event);
291
+ let t = de(r.event);
282
292
  if (r.event.hasRecording === !1 || !t) {
283
- I.value = !0;
293
+ L.value = !0;
284
294
  return;
285
295
  }
286
- L.value = !0, A.onHoverStart(e, r.event.cameraId, r.event.id, r.event.startTime, t, r.camera?.zones?.privacy, ke(r.event));
287
- }
288
- function Kt() {
289
- He.blocksMouseEnter() || Gt();
296
+ R.value = !0, A.onHoverStart(e, r.event.cameraId, r.event.id, r.event.startTime, t, r.camera?.zones?.privacy, ke(r.event));
290
297
  }
291
298
  function qt() {
292
- I.value = !1, A && (L.value = !1, A.onHoverEnd());
299
+ Ve.blocksMouseEnter() || Kt();
293
300
  }
294
- async function Jt(e = 2) {
301
+ function Jt() {
302
+ L.value = !1, A && (R.value = !1, A.onHoverEnd());
303
+ }
304
+ async function Yt(e = 2) {
295
305
  let t = await r.loadThumbnails(r.event.id, r.event.startTime);
296
306
  if (t) {
297
- R.value = t;
298
- let e = le(t, r.event, "card");
299
- z.value = e.url ? "loaded" : "empty";
300
- } else if (e > 0) return await new Promise((e) => setTimeout(e, 500)), Jt(e - 1);
301
- else z.value = r.event.state === "active" ? "loading" : "empty";
307
+ z.value = t;
308
+ let e = P(t, r.event, "card");
309
+ B.value = e.url ? "loaded" : "empty";
310
+ } else if (e > 0) return await new Promise((e) => setTimeout(e, 500)), Yt(e - 1);
311
+ else B.value = r.event.state === "active" ? "loading" : "empty";
302
312
  }
303
- function Yt() {
304
- if (!He.consumesClick()) {
313
+ function Xt() {
314
+ if (!Ve.consumesClick()) {
305
315
  if (r.selectionMode) {
306
316
  i("select");
307
317
  return;
@@ -309,31 +319,35 @@ var Ue = v({
309
319
  i("scrollToEvent", q.value?.firstSeen ?? Ae(r.event));
310
320
  }
311
321
  }
312
- async function Xt(e) {
313
- $(), F.value || (F.value = !0, await h()), P.value?.toggleMenu(e);
322
+ async function Zt(e) {
323
+ $(), I.value || (I.value = !0, await h()), F.value?.toggleMenu(e);
314
324
  }
315
- function Zt() {
316
- let e = Lt.value;
317
- e !== void 0 && x.openComponentDialog(Ge, {
325
+ function Qt() {
326
+ let e = Rt.value;
327
+ if (!e) return;
328
+ let t = !!Z.value?.crop;
329
+ x.openComponentDialog(Ue, {
318
330
  data: {
319
331
  title: c("views.recordings.reassign_face"),
320
332
  confirmText: c("components.form.button.save"),
321
333
  contentProps: {
322
- cropUrl: X.value?.url,
323
- oldName: e
334
+ cropUrl: Z.value?.url,
335
+ oldName: e.label
324
336
  }
325
337
  },
326
- onConfirm: (e) => Qt(e)
338
+ onConfirm: (n) => $t(e, n, t)
327
339
  });
328
340
  }
329
- async function Qt(e) {
330
- let t = Lt.value;
331
- if (t === void 0 || H.value) return;
332
- let n = X.value?.faceSeg ?? -1, i = v.value;
341
+ async function $t(e, t, n) {
342
+ if (W.value) return;
343
+ let i = v.value;
333
344
  if (i?.reassignEventFace) {
334
- H.value = !0;
345
+ W.value = !0;
335
346
  try {
336
- await i.reassignEventFace(r.event.id, n, t, e) > 0 && pe(r.event.id), s.add({
347
+ await i.reassignEventFace(r.event.id, e.seg, e.label, t) > 0 && (n && (G.value = {
348
+ seg: e.seg,
349
+ label: t || "unknown"
350
+ }), be(r.event.id)), s.add({
337
351
  severity: "success",
338
352
  detail: c("views.recordings.reassign_done"),
339
353
  life: 3e3
@@ -345,31 +359,31 @@ var Ue = v({
345
359
  life: 5e3
346
360
  });
347
361
  } finally {
348
- H.value = !1;
362
+ W.value = !1;
349
363
  }
350
364
  }
351
365
  }
352
- async function $t() {
353
- let e = !W.value;
354
- V.value = e;
366
+ async function en() {
367
+ let e = !yt.value;
368
+ U.value = e;
355
369
  try {
356
370
  await m.setEventFavorite(r.event.id, e);
357
371
  } catch (e) {
358
- V.value = null, s.add({
372
+ U.value = null, s.add({
359
373
  severity: "error",
360
374
  detail: Oe(e),
361
375
  life: 5e3
362
376
  });
363
377
  }
364
378
  }
365
- async function en() {
366
- if (B.value) return;
379
+ async function tn() {
380
+ if (V.value) return;
367
381
  let e = v.value;
368
382
  if (e?.nvrExport && r.event.endTime) {
369
- B.value = !0;
383
+ V.value = !0;
370
384
  try {
371
385
  let t = await e.nvrExport(r.event.cameraId, r.event.startTime * 1e3, r.event.endTime * 1e3);
372
- await ye({
386
+ await ve({
373
387
  url: t.url,
374
388
  filename: t.filename
375
389
  });
@@ -381,37 +395,42 @@ var Ue = v({
381
395
  life: 5e3
382
396
  });
383
397
  } finally {
384
- B.value = !1;
398
+ V.value = !1;
385
399
  }
386
400
  }
387
401
  }
388
- return ee(() => m.storeVersion.value, () => {
402
+ return ee(Y, (e) => {
403
+ let t = G.value;
404
+ if (!t) return;
405
+ let n = e.findIndex((e) => e.crop && e.faceSeg === t.seg && e.label === t.label);
406
+ n < 0 || (H.value = n, G.value = void 0);
407
+ }), ee(() => m.storeVersion.value, () => {
389
408
  let e = m.getCachedThumbnails(r.event.id);
390
409
  if (!e) {
391
- R.value && Jt();
410
+ z.value && Yt();
392
411
  return;
393
412
  }
394
- R.value = e, le(e, r.event, "card").url && (z.value = "loaded");
395
- }), Pe(Be, (e) => {
396
- let t = e[0]?.contentRect.width ?? 0, n = Math.round(t / vt) * vt;
397
- n !== U.value && (U.value = n);
413
+ z.value = e, P(e, r.event, "card").url && (B.value = "loaded");
414
+ }), Ne(ze, (e) => {
415
+ let t = e[0]?.contentRect.width ?? 0, n = Math.round(t / gt) * gt;
416
+ n !== _t.value && (_t.value = n);
398
417
  }), re(() => {
399
- te === "loading" && Jt();
418
+ te === "loading" && Yt();
400
419
  }), (t, r) => {
401
- let i = he, o = de, s = ie, c = xe, l = je, p = Te, m = Me, h = ve;
420
+ let i = pe, o = ue, s = ie, c = xe, l = je, p = Te, m = Me, h = _e;
402
421
  return d(), T("div", {
403
422
  ref_key: "rootRef",
404
423
  ref: N,
405
424
  class: "recording-card relative group cursor-pointer",
406
- onClickCapture: zt,
407
- onClick: Yt,
408
- onMouseenter: Kt,
409
- onMouseleave: qt
425
+ onClickCapture: Bt,
426
+ onClick: Xt,
427
+ onMouseenter: qt,
428
+ onMouseleave: Jt
410
429
  }, [k("div", {
411
430
  class: g(["bg-neutral-900 w-full rounded-xl overflow-hidden relative transition-shadow duration-200", { "ring-2 ring-inset ring-primary/70": e.siblingActive }]),
412
431
  style: { "aspect-ratio": "1/1" }
413
432
  }, [
414
- S(z) === "loading" ? (d(), T("div", Ke)) : S(Et) ? (d(), y(i, {
433
+ S(B) === "loading" ? (d(), T("div", We)) : S(Et) ? (d(), y(i, {
415
434
  key: 1,
416
435
  src: S(Et),
417
436
  alt: S(Ot),
@@ -422,73 +441,73 @@ var Ue = v({
422
441
  "src",
423
442
  "alt",
424
443
  "image-style"
425
- ])) : (d(), T("div", qe, [(d(), y(_(S(w)[S(St)] ?? S(w).motion), { class: "w-10 h-10 text-white/20" }))])),
444
+ ])) : (d(), T("div", Ge, [(d(), y(_(S(w)[S(Ct)] ?? S(w).motion), { class: "w-10 h-10 text-white/20" }))])),
426
445
  S(A) ? ne((d(), T("canvas", {
427
446
  key: 3,
428
447
  ref_key: "previewCanvasRef",
429
- ref: Fe,
448
+ ref: Pe,
430
449
  class: "absolute inset-0 w-full h-full object-cover pointer-events-none z-[1]"
431
- }, null, 512)), [[n, S(L)]]) : b("", !0),
450
+ }, null, 512)), [[n, S(R)]]) : b("", !0),
432
451
  r[2] ||= k("div", { class: "absolute inset-0 bg-transparent group-hover:bg-black/30 pointer-events-none transition-colors duration-200 z-[2]" }, null, -1),
433
- k("div", Je, [k("div", Ye, [
434
- k("p", Xe, f(S(Ot)), 1),
435
- S(J) ? (d(), T("span", Ze, f(S(J)), 1)) : b("", !0),
436
- S(G) ? (d(), T("span", {
452
+ k("div", Ke, [k("div", qe, [
453
+ k("p", Je, f(S(Ot)), 1),
454
+ S(J) ? (d(), T("span", Ye, f(S(J)), 1)) : b("", !0),
455
+ S(bt) ? (d(), T("span", {
437
456
  key: 1,
438
- class: g(["text-[10px] font-bold text-white px-1.5 py-0.5 rounded-md shrink-0", S(G).color])
439
- }, f(S(G).label), 3)) : b("", !0),
440
- S(yt) && !e.selectionMode ? (d(), T("button", {
457
+ class: g(["text-[10px] font-bold text-white px-1.5 py-0.5 rounded-md shrink-0", S(bt).color])
458
+ }, f(S(bt).label), 3)) : b("", !0),
459
+ S(vt) && !e.selectionMode ? (d(), T("button", {
441
460
  key: 2,
442
- title: S(W) ? t.$t("views.recordings.unfavorite") : t.$t("views.recordings.favorite"),
461
+ title: S(yt) ? t.$t("views.recordings.unfavorite") : t.$t("views.recordings.favorite"),
443
462
  type: "button",
444
463
  class: "card-icon-button w-5 h-5 shrink-0",
445
- onClick: a($t, ["stop"]),
464
+ onClick: a(en, ["stop"]),
446
465
  onMouseenter: $
447
- }, [S(W) ? (d(), y(o, {
466
+ }, [S(yt) ? (d(), y(o, {
448
467
  key: 0,
449
468
  class: "w-3 h-3 text-yellow-400"
450
469
  })) : (d(), y(s, {
451
470
  key: 1,
452
471
  class: "w-3 h-3 text-white"
453
- }))], 40, Qe)) : b("", !0),
454
- S(Rt).length > 0 && !e.selectionMode ? (d(), T("button", {
472
+ }))], 40, Xe)) : b("", !0),
473
+ S(zt).length > 0 && !e.selectionMode ? (d(), T("button", {
455
474
  key: 3,
456
475
  title: t.$t("views.recordings.more_actions"),
457
476
  type: "button",
458
477
  class: "card-icon-button w-5 h-5 shrink-0",
459
- disabled: S(B) || S(H),
460
- onClick: a(Xt, ["stop"]),
478
+ disabled: S(V) || S(W),
479
+ onClick: a(Zt, ["stop"]),
461
480
  onMouseenter: $
462
- }, [S(B) || S(H) ? (d(), y(c, {
481
+ }, [S(V) || S(W) ? (d(), y(c, {
463
482
  key: 0,
464
483
  class: "w-3 h-3 text-white"
465
484
  })) : (d(), y(l, {
466
485
  key: 1,
467
486
  class: "w-3 h-3 text-white"
468
- }))], 40, $e)) : b("", !0)
469
- ]), k("p", et, f(S(Pt)), 1)]),
487
+ }))], 40, Ze)) : b("", !0)
488
+ ]), k("p", Qe, f(S(Ft)), 1)]),
470
489
  S(Y).length > 1 ? (d(), T(D, { key: 4 }, [k("button", {
471
490
  type: "button",
472
491
  class: "card-icon-button carousel-nav absolute left-1 top-1/2 -translate-y-1/2 z-[3] w-7 h-7 transition-opacity duration-200",
473
492
  "aria-label": t.$t("views.recordings.prev_image"),
474
- onClick: r[0] ||= a((e) => Ht(-1), ["stop"]),
493
+ onClick: r[0] ||= a((e) => Ut(-1), ["stop"]),
475
494
  onMouseenter: $
476
- }, [M(p, { class: "w-5 h-5 text-white" })], 40, tt), k("button", {
495
+ }, [M(p, { class: "w-5 h-5 text-white" })], 40, $e), k("button", {
477
496
  type: "button",
478
497
  class: "card-icon-button carousel-nav absolute right-1 top-1/2 -translate-y-1/2 z-[3] w-7 h-7 transition-opacity duration-200",
479
498
  "aria-label": t.$t("views.recordings.next_image"),
480
- onClick: r[1] ||= a((e) => Ht(1), ["stop"]),
499
+ onClick: r[1] ||= a((e) => Ut(1), ["stop"]),
481
500
  onMouseenter: $
482
- }, [M(m, { class: "w-5 h-5 text-white" })], 40, nt)], 64)) : b("", !0),
501
+ }, [M(m, { class: "w-5 h-5 text-white" })], 40, et)], 64)) : b("", !0),
483
502
  S(Dt) ? (d(), T("div", {
484
503
  key: 5,
485
- class: g(["absolute left-1/2 -translate-x-1/2 z-[3] max-w-[85%] pointer-events-none transition-all duration-200", S(It) ? "bottom-16" : "bottom-10"])
486
- }, [k("span", rt, f(S(Dt)), 1)], 2)) : b("", !0),
504
+ class: g(["absolute left-1/2 -translate-x-1/2 z-[3] max-w-[85%] pointer-events-none transition-all duration-200", S(Lt) ? "bottom-16" : "bottom-10"])
505
+ }, [k("span", tt, f(S(Dt)), 1)], 2)) : b("", !0),
487
506
  k("div", {
488
507
  ref_key: "footerRef",
489
- ref: Be,
508
+ ref: ze,
490
509
  class: "absolute bottom-2 left-2 right-2 flex items-center justify-between gap-2 z-[3]"
491
- }, [k("div", it, [
510
+ }, [k("div", nt, [
492
511
  e.selectionMode ? (d(), T("div", {
493
512
  key: 0,
494
513
  class: g(["w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors shrink-0", e.selected ? "bg-primary border-primary" : "bg-black/40 border-white/80"])
@@ -500,36 +519,36 @@ var Ue = v({
500
519
  key: e,
501
520
  class: "flex items-center justify-center w-5 h-5 rounded-md bg-black/60 shrink-0"
502
521
  }, [(d(), y(_(S(w)[e] ?? S(w).motion), { class: "w-3 h-3 text-white/80" }))]))), 128)),
503
- S(jt).length > 0 ? (d(), T("span", {
522
+ S(Mt).length > 0 ? (d(), T("span", {
504
523
  key: 1,
505
- title: S(jt).join(", "),
524
+ title: S(Mt).join(", "),
506
525
  class: "text-[10px] text-white/60 font-medium shrink-0"
507
- }, " +" + f(S(jt).length), 9, at)) : b("", !0)
508
- ]), S(Mt).length > 0 || S(Nt) > 0 ? (d(), T("div", ot, [(d(!0), T(D, null, u(S(Mt), (e, t) => (d(), T("div", {
526
+ }, " +" + f(S(Mt).length), 9, rt)) : b("", !0)
527
+ ]), S(Nt).length > 0 || S(Pt) > 0 ? (d(), T("div", it, [(d(!0), T(D, null, u(S(Nt), (e, t) => (d(), T("div", {
509
528
  key: t,
510
- class: g(["w-7 h-7 rounded overflow-hidden border bg-neutral-800 cursor-pointer", t === S(wt) ? "border-primary/80" : "border-white/20"]),
511
- onClick: (e) => Ut(t, e)
529
+ class: g(["w-7 h-7 rounded overflow-hidden border bg-neutral-800 cursor-pointer", t === S(X) ? "border-primary/80" : "border-white/20"]),
530
+ onClick: (e) => Wt(t, e)
512
531
  }, [k("img", {
513
532
  src: e.url,
514
533
  alt: e.type,
515
534
  decoding: "async",
516
535
  loading: "lazy",
517
536
  class: "w-full h-full object-cover"
518
- }, null, 8, ct)], 10, st))), 128)), S(Nt) > 0 ? (d(), T("span", lt, "+" + f(S(Nt)), 1)) : b("", !0)])) : b("", !0)], 512),
519
- S(A) && S(L) && S(A).isLoading.value ? (d(), T("div", ut, [M(c, { class: "w-7 h-7 text-white" })])) : b("", !0),
520
- S(It) ? (d(), T("div", dt, [k("span", ft, f(S(It)), 1)])) : b("", !0)
521
- ], 2), S(F) ? (d(), y(oe, {
537
+ }, null, 8, ot)], 10, at))), 128)), S(Pt) > 0 ? (d(), T("span", st, "+" + f(S(Pt)), 1)) : b("", !0)])) : b("", !0)], 512),
538
+ S(A) && S(R) && S(A).isLoading.value ? (d(), T("div", ct, [M(c, { class: "w-7 h-7 text-white" })])) : b("", !0),
539
+ S(Lt) ? (d(), T("div", lt, [k("span", ut, f(S(Lt)), 1)])) : b("", !0)
540
+ ], 2), S(I) ? (d(), y(oe, {
522
541
  key: 0,
523
542
  ref_key: "cardMenuRef",
524
- ref: P,
525
- items: S(Rt),
543
+ ref: F,
544
+ items: S(zt),
526
545
  popover: { pt: { content: { class: "p-0! rounded-xl! overflow-hidden!" } } }
527
546
  }, null, 8, ["items"])) : b("", !0)], 544);
528
547
  };
529
548
  }
530
- }), [["__scopeId", "data-v-22b538a5"]]), yt = {
549
+ }), [["__scopeId", "data-v-9d797f4c"]]), _t = {
531
550
  name: "VirtualScroller",
532
- components: { SpinnerIcon: Be },
551
+ components: { SpinnerIcon: ze },
533
552
  extends: {
534
553
  name: "BaseVirtualScroller",
535
554
  extends: i,
@@ -1089,8 +1108,8 @@ var Ue = v({
1089
1108
  this.content = e;
1090
1109
  }
1091
1110
  }
1092
- }, W = ["tabindex"];
1093
- function G(e, t, n, r, i, a) {
1111
+ }, vt = ["tabindex"];
1112
+ function yt(e, t, n, r, i, a) {
1094
1113
  let o = E("SpinnerIcon");
1095
1114
  return e.disabled ? (d(), T(D, { key: 1 }, [p(e.$slots, "default"), p(e.$slots, "content", {
1096
1115
  items: e.items,
@@ -1138,15 +1157,15 @@ function G(e, t, n, r, i, a) {
1138
1157
  spin: "",
1139
1158
  class: "p-virtualscroller-loading-icon"
1140
1159
  }, e.ptm("loadingIcon")), null, 16)])], 16)) : b("", !0)
1141
- ], 16, W));
1160
+ ], 16, vt));
1142
1161
  }
1143
- var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1162
+ var bt = /*#__PURE__*/ N(_t, [["render", yt]]), K = {
1144
1163
  aspectRatio: 1,
1145
1164
  gap: 8,
1146
1165
  hasMore: !1,
1147
1166
  loadMore: void 0,
1148
1167
  itemKey: void 0
1149
- }, bt = { class: "recordings-row" }, xt = {
1168
+ }, q = { class: "recordings-row" }, xt = {
1150
1169
  key: 1,
1151
1170
  class: "pointer-events-none absolute bottom-2 left-1/2 -translate-x-1/2 z-10 rounded-full bg-black/60 p-1.5"
1152
1171
  }, St = /*#__PURE__*/ N(/* @__PURE__ */ A({
@@ -1159,9 +1178,9 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1159
1178
  hasMore: { type: Boolean },
1160
1179
  loadMore: { type: Function },
1161
1180
  itemKey: { type: Function }
1162
- }, q),
1181
+ }, K),
1163
1182
  setup(e, { expose: t }) {
1164
- let n = e, r = O("containerRef"), { width: i, height: a } = Fe(r), o = j(0), s = j(!1), c = null, l = !1, f = C(() => a.value > 0 ? `${a.value}px` : void 0), m = C(() => {
1183
+ let n = e, r = O("containerRef"), { width: i, height: a } = Pe(r), o = j(0), s = j(!1), c = null, l = !1, f = C(() => a.value > 0 ? `${a.value}px` : void 0), m = C(() => {
1165
1184
  let e = i.value;
1166
1185
  return e ? Math.max(1, Math.floor((e + n.gap) / (n.minItemWidth + n.gap))) : 0;
1167
1186
  }), g = C(() => {
@@ -1219,7 +1238,7 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1219
1238
  scrollToTop: ie,
1220
1239
  scrollY: o
1221
1240
  }), (e, t) => {
1222
- let n = K, i = xe;
1241
+ let n = bt, i = xe;
1223
1242
  return d(), T("div", {
1224
1243
  ref_key: "containerRef",
1225
1244
  ref: r,
@@ -1235,7 +1254,7 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1235
1254
  class: "recordings-scroll",
1236
1255
  onScroll: re
1237
1256
  }, {
1238
- item: w(({ item: t }) => [k("div", bt, [(d(!0), T(D, null, u(t, (t) => (d(), T("div", {
1257
+ item: w(({ item: t }) => [k("div", q, [(d(!0), T(D, null, u(t, (t) => (d(), T("div", {
1239
1258
  key: E(t),
1240
1259
  class: "recordings-cell"
1241
1260
  }, [p(e.$slots, "item", { item: t }, void 0, !0)]))), 128))])]),
@@ -1255,7 +1274,7 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1255
1274
  }), [["__scopeId", "data-v-a672f3ff"]]);
1256
1275
  //#endregion
1257
1276
  //#region src/components/CuiRecordings/ungrouped.ts
1258
- function J(e) {
1277
+ function Ct(e) {
1259
1278
  if (e.episode) return e.episode.endTime;
1260
1279
  if (e.segIndex !== void 0) {
1261
1280
  let t = e.event.segments?.[e.segIndex];
@@ -1263,26 +1282,30 @@ function J(e) {
1263
1282
  }
1264
1283
  return e.event.thumbnailAt ?? e.event.startTime;
1265
1284
  }
1266
- function Y(e) {
1267
- let t = [];
1268
- for (let n of e) {
1269
- let e = n.segments ?? [];
1285
+ function J(e, t) {
1286
+ return Ct(t) - Ct(e);
1287
+ }
1288
+ function Y(e, t = !1) {
1289
+ let n = [];
1290
+ for (let t of e) {
1291
+ let e = t.segments ?? [];
1270
1292
  if (e.length <= 1) {
1271
- t.push({
1272
- event: n,
1273
- key: n.id
1293
+ n.push({
1294
+ event: t,
1295
+ key: t.id
1274
1296
  });
1275
1297
  continue;
1276
1298
  }
1277
- e.forEach((e, r) => {
1278
- e && t.push({
1279
- event: n,
1280
- key: `${n.id}:seg:${r}`,
1281
- segIndex: r
1299
+ let r = [];
1300
+ e.forEach((e, n) => {
1301
+ e && r.push({
1302
+ event: t,
1303
+ key: `${t.id}:seg:${n}`,
1304
+ segIndex: n
1282
1305
  });
1283
- });
1306
+ }), n.push(...r.sort(J));
1284
1307
  }
1285
- return t.sort((e, t) => J(t) - J(e)), t;
1308
+ return t ? n : n.sort(J);
1286
1309
  }
1287
1310
  //#endregion
1288
- export { U as i, J as n, St as r, Y as t };
1311
+ export { G as i, J as n, St as r, Y as t };