@camera.ui/server 2.2.6 → 2.2.8

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 (560) hide show
  1. package/dist/interface/assets/{404-BLVuKvLk.js → 404-BYV0u5qE.js} +1 -1
  2. package/dist/interface/assets/{About-C-AJ0jfI.js → About-DBOS1rfw.js} +1 -1
  3. package/dist/interface/assets/Assistant-BRcHj8hq.js +1 -0
  4. package/dist/interface/assets/Automation-C0Emde7z.js +3 -0
  5. package/dist/interface/assets/{AutomationImport-C8VYjDzf.js → AutomationImport-Iu-K82Os.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-CE4PKRGd.js → AutomationStore-C2G0Bk8c.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-DavWfjLv.js → AutomationStoreDetail-BbvLRJ5u.js} +2 -2
  8. package/dist/interface/assets/Automations-D-vfqRnZ.js +2 -0
  9. package/dist/interface/assets/Camera-BpurrgAr.js +2 -0
  10. package/dist/interface/assets/Camera-D0B7yyVD.css +1 -0
  11. package/dist/interface/assets/{CameraConsole-C4AmtcrM.js → CameraConsole-JBD3ZmJ6.js} +2 -2
  12. package/dist/interface/assets/{Cameras-DR577Bno.js → Cameras-R5mJGMK9.js} +2 -2
  13. package/dist/interface/assets/{Camview-Bri_T7Tq.css → Camview-DH6_8CxH.css} +1 -1
  14. package/dist/interface/assets/Camview-IbOVRx20.js +1 -0
  15. package/dist/interface/assets/{CertificateUpload-BYFKZCP9.js → CertificateUpload-B9S4EOQs.js} +1 -1
  16. package/dist/interface/assets/Config-CbFl5Wcp.js +2 -0
  17. package/dist/interface/assets/{ConfigActionAssistant-YtCVI8LZ.js → ConfigActionAssistant-DIOh6-np.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionCameraControl-Dg_1zOYt.js → ConfigActionCameraControl-Bw_egtpP.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionDelay-_EqbfWgo.js → ConfigActionDelay-B9i4YZjy.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionHttp-BzwLv2tn.js → ConfigActionHttp-DFtxAa3U.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionImageInput-CLdY2sV4.js → ConfigActionImageInput-CuTH4Nw2.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionMqtt-lGqYshl3.js → ConfigActionMqtt-B9SfWP-G.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionNotification-D5Dj3EoU.js → ConfigActionNotification-BGMIByJT.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotificationControl-Dy5fKamr.js → ConfigActionNotificationControl-Cz72szMd.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionOutput-DzsQ31L0.js → ConfigActionOutput-BG6DoIRe.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionPlugin-BFrBcXvL.js → ConfigActionPlugin-B5oRSE9n.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionSensor-CX8ePlan.js → ConfigActionSensor-BErRRYfl.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSnapshot-BATLRmh6.js → ConfigActionSnapshot-Di-uxMrg.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionVariable-Dgn5jvaR.js → ConfigActionVariable-BBpUti5A.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionIfElse-D5IIBjyk.js → ConfigConditionIfElse-DjOKPXQw.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionSensorState-C0JxBWdG.js → ConfigConditionSensorState-BzvvZvD0.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSwitch-Brlgd0XP.js → ConfigConditionSwitch-DQvdfUxR.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionTime-CM4bSMyU.js → ConfigConditionTime-BqOElX5C.js} +1 -1
  34. package/dist/interface/assets/{ConfigSensorValueInput-CtuH8dCa.js → ConfigSensorValueInput-BT-0LhSH.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerDetection-DsL7lLQl.js → ConfigTriggerDetection-1OkudUah.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerGeofence-CAGIk1_W.js → ConfigTriggerGeofence-HGatk3C5.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerManual-DgkR-GWy.js → ConfigTriggerManual-DpRr_vVq.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerMqtt-B_iFalAQ.js → ConfigTriggerMqtt-C_MId3BY.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSchedule-E_QWfNKy.js → ConfigTriggerSchedule-BmwDqd6N.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSensor-hYNbLXUu.js → ConfigTriggerSensor-Rgx8q4g8.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSystem-DR1EFpE9.js → ConfigTriggerSystem-4VsHPmbn.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerWebhook-C-B5GGFH.js → ConfigTriggerWebhook-Bs7zEfY0.js} +1 -1
  43. package/dist/interface/assets/Console-oCuuVKET.js +1 -0
  44. package/dist/interface/assets/{CuiAssistantConversation-BmshW6Vc.css → CuiAssistantConversation-BmBhwrNh.css} +1 -1
  45. package/dist/interface/assets/CuiAssistantConversation-Bsyxau9v.js +5 -0
  46. package/dist/interface/assets/CuiAutomationRunsDialog-sRh_K6JI.js +1 -0
  47. package/dist/interface/assets/CuiBottomSheet-DWoSHzC7.js +1 -0
  48. package/dist/interface/assets/{CuiBottomSheet-C2sM2E3M.js → CuiBottomSheet-Dd3uOtnC.js} +1 -1
  49. package/dist/interface/assets/CuiCameraPipCard-D6REm8uT.js +1 -0
  50. package/dist/interface/assets/CuiCameraPipCard-TYTCfwXf.css +1 -0
  51. package/dist/interface/assets/CuiCameraRecordings-C2tvrbbw.js +1 -0
  52. package/dist/interface/assets/{CuiCameraShares-B6jdUBVm.js → CuiCameraShares-jrrUEHoZ.js} +1 -1
  53. package/dist/interface/assets/CuiCameraTable-BOzTWLwd.js +1 -0
  54. package/dist/interface/assets/{CuiCameraTable-CpBo25Qc.js → CuiCameraTable-C7WLZ2pA.js} +2 -2
  55. package/dist/interface/assets/CuiChartTable-BYrIX7LV.js +1 -0
  56. package/dist/interface/assets/CuiChartTable-DCr_AsSw.css +1 -0
  57. package/dist/interface/assets/{CuiConsole-BGptpT6r.js → CuiConsole-CkZML0iY.js} +2 -2
  58. package/dist/interface/assets/CuiDataTable-BFIhx1D3.js +1 -0
  59. package/dist/interface/assets/{CuiLightControl-wbZi3fA1.js → CuiLightControl-DitIWqUr.js} +1 -1
  60. package/dist/interface/assets/{CuiList-Dsu5m0TA.js → CuiList-BewTNr2X.js} +1 -1
  61. package/dist/interface/assets/CuiMarkdownContent-Do04YgHe.js +1 -0
  62. package/dist/interface/assets/{CuiMarkdownContent-BYBQX_aF.js → CuiMarkdownContent-qOPm3VEi.js} +1 -1
  63. package/dist/interface/assets/CuiPluginCard-Bd2HFduI.js +2 -0
  64. package/dist/interface/assets/{CuiPluginCategoryChip-BtJ_6_gN.js → CuiPluginCategoryChip-DlzOwRgc.js} +1 -1
  65. package/dist/interface/assets/{CuiPluginOAuthButton-Duf35I8K.js → CuiPluginOAuthButton-BQZkTcgo.js} +2 -2
  66. package/dist/interface/assets/{CuiPluginTrustBadge-jxXeRTH2.js → CuiPluginTrustBadge-DbqdfdaL.js} +1 -1
  67. package/dist/interface/assets/{CuiQRCode-BNchrpoB.js → CuiQRCode-2WsWJQFi.js} +1 -1
  68. package/dist/interface/assets/{CuiSchema-DGTMkVSe.js → CuiSchema-BL0QZmP2.js} +1 -1
  69. package/dist/interface/assets/{CuiTopNavbarItem-CHtLvn53.js → CuiTopNavbarItem-Ti2TueU1.js} +1 -1
  70. package/dist/interface/assets/Faces-DARrGLXf.js +1 -0
  71. package/dist/interface/assets/{FirstSteps-HzaBMDbH.js → FirstSteps-DBYPBvGr.js} +1 -1
  72. package/dist/interface/assets/Floorplan-BaZvzoyv.js +1 -0
  73. package/dist/interface/assets/{Instances-Dl-6rL5O.js → Instances-r0xReURi.js} +1 -1
  74. package/dist/interface/assets/{Logs-DsJkuQFq.js → Logs-DMehPk0t.js} +2 -2
  75. package/dist/interface/assets/{Menu-D_woMkjL.js → Menu-C34RRyLd.js} +1 -1
  76. package/dist/interface/assets/Metrics-BjoC71_O.js +12 -0
  77. package/dist/interface/assets/Metrics-DsHBab6t.css +1 -0
  78. package/dist/interface/assets/{OAuthDeviceFlow-CXfILAE1.js → OAuthDeviceFlow-CdZxelf2.js} +1 -1
  79. package/dist/interface/assets/Plugin-npx7CnwV.js +1 -0
  80. package/dist/interface/assets/{PluginConsole-C96m5zKy.js → PluginConsole-D1BRQCO9.js} +2 -2
  81. package/dist/interface/assets/PluginDetail-nwTrJmO6.js +2 -0
  82. package/dist/interface/assets/{PluginSchema-u1bqXU29.js → PluginSchema-B9VsBHOU.js} +1 -1
  83. package/dist/interface/assets/PluginSearch-CP2kQWKf.js +1 -0
  84. package/dist/interface/assets/PluginSearch-WEvbKMRs.js +2 -0
  85. package/dist/interface/assets/{PluginUpdateProgress-BT4lN9HT.js → PluginUpdateProgress-uj0XPV-_.js} +1 -1
  86. package/dist/interface/assets/Plugins-CPx9Hszm.js +1 -0
  87. package/dist/interface/assets/{RecentEventsFilter-Kp_lTOuG.js → RecentEventsFilter-D5VSH2K1.js} +1 -1
  88. package/dist/interface/assets/Recordings-De6Zcv0M.js +1 -0
  89. package/dist/interface/assets/SensorEdit-SD_oHBRo.js +1 -0
  90. package/dist/interface/assets/{SensorHistory-Cet35_RO.js → SensorHistory-SxiLOloa.js} +1 -1
  91. package/dist/interface/assets/Sensors-Djl64M-W.js +2 -0
  92. package/dist/interface/assets/{Settings-C-LCDIbK.js → Settings-CAf2reGs.js} +1 -1
  93. package/dist/interface/assets/SettingsAccount-BGj5Ni91.js +1 -0
  94. package/dist/interface/assets/SettingsAccount-Dy6WC8ql.js +1 -0
  95. package/dist/interface/assets/SettingsAppearance-BGFhMlRk.js +1 -0
  96. package/dist/interface/assets/{SettingsAppearance-BS4EQNjH.js → SettingsAppearance-DQzQmVzE.js} +1 -1
  97. package/dist/interface/assets/SettingsAssistant-BwYVyuN3.js +1 -0
  98. package/dist/interface/assets/{SettingsBackup-DBlV1gej.js → SettingsBackup-CVExGnOo.js} +1 -1
  99. package/dist/interface/assets/{SettingsList-D8eSwbBY.js → SettingsList-vo7sz_MY.js} +1 -1
  100. package/dist/interface/assets/SettingsMqtt-B1CuOcML.js +1 -0
  101. package/dist/interface/assets/SettingsNotifications-CCQ6eiq8.js +1 -0
  102. package/dist/interface/assets/{SettingsPermissions-CJiz0Z7B.js → SettingsPermissions-BlOf6HEy.js} +1 -1
  103. package/dist/interface/assets/{SettingsRecordings-CLz9Zp47.js → SettingsRecordings-7tTBg6m1.js} +1 -1
  104. package/dist/interface/assets/SettingsRemote-CsIGx-LU.css +1 -0
  105. package/dist/interface/assets/SettingsRemote-DBgKmIdv.js +2 -0
  106. package/dist/interface/assets/{SettingsSystem-txTFGomQ.js → SettingsSystem-DaFMsZpN.js} +2 -2
  107. package/dist/interface/assets/{SettingsUsers-CUp6vQPc.js → SettingsUsers-DXACwVPi.js} +1 -1
  108. package/dist/interface/assets/Terminal-DtGqlHbk.js +4 -0
  109. package/dist/interface/assets/{Training-Bkn52mPJ.css → Training-C-ToeAl4.css} +1 -1
  110. package/dist/interface/assets/Training-Ca11D1Vj.js +1 -0
  111. package/dist/interface/assets/Updates-yenwuqnD.js +2 -0
  112. package/dist/interface/assets/{VariableInput-183LygmK.js → VariableInput-CcILik4M.js} +1 -1
  113. package/dist/interface/assets/{VariableSuggestions-DwLtlzVz.js → VariableSuggestions-Bj0HdrYW.js} +1 -1
  114. package/dist/interface/assets/{VersionsHandler-DkbkcypK.js → VersionsHandler-BA8Lcysg.js} +1 -1
  115. package/dist/interface/assets/{VirtualSensorCreate-Bn4tgdxA.js → VirtualSensorCreate-DvHyw7I2.js} +1 -1
  116. package/dist/interface/assets/{Workers-DH59zE1C.css → Workers-Dey1snI4.css} +1 -1
  117. package/dist/interface/assets/Workers-Dyo44zxe.js +2 -0
  118. package/dist/interface/assets/{account-DwW7pBOb.js → account-DjBQulDn.js} +1 -1
  119. package/dist/interface/assets/ace-BPAekgyf.js +1 -0
  120. package/dist/interface/assets/{ace.config-CCyX_Ohk.js → ace.config-CvKE-yp1.js} +1 -1
  121. package/dist/interface/assets/{alert-circle-BdUVAt1B.js → alert-circle-B-JCMbb9.js} +1 -1
  122. package/dist/interface/assets/{alert-outline-IRxYbw0j.js → alert-outline-B4ZZowEj.js} +1 -1
  123. package/dist/interface/assets/api-CHQlxVtZ.css +2 -0
  124. package/dist/interface/assets/{api-h4HRB3ef.js → api-CKbL5jC7.js} +1 -1
  125. package/dist/interface/assets/api-CLazgL-g.js +4 -0
  126. package/dist/interface/assets/{arrow-left-Bk-ZrOVr.js → arrow-left-PeaVwpHd.js} +1 -1
  127. package/dist/interface/assets/{assistant-4hYyIu6D.js → assistant-CwmHp5bB.js} +1 -1
  128. package/dist/interface/assets/{assistantModels-BsSgRsws.js → assistantModels-D3ncWWu0.js} +1 -1
  129. package/dist/interface/assets/{auth-DFesRtwI.js → auth-AfZrkJ2f.js} +1 -1
  130. package/dist/interface/assets/{automations-D2bnX8uw.js → automations-DOCG0q8-.js} +1 -1
  131. package/dist/interface/assets/{back-filled-D-X19YMO.js → back-filled-CJoz7Gkl.js} +1 -1
  132. package/dist/interface/assets/{bell-ring-DreEHgoT.js → bell-ring-CBf0Yn3H.js} +1 -1
  133. package/dist/interface/assets/{brain-DuDAg544.js → brain-uZ03n3LW.js} +1 -1
  134. package/dist/interface/assets/cameraSources-mHEz9ROa.js +1 -0
  135. package/dist/interface/assets/{cctv-DM-C_8_6.js → cctv-VgKQ-dBV.js} +1 -1
  136. package/dist/interface/assets/{check-circle-Bevuw8-0.js → check-circle-BU-KNgPB.js} +1 -1
  137. package/dist/interface/assets/{check-circle-outline-aMxkvksr.js → check-circle-outline-BsxzAMed.js} +1 -1
  138. package/dist/interface/assets/{chevron-down-CCFn9Z56.js → chevron-down-CxK4Sfjs.js} +1 -1
  139. package/dist/interface/assets/{chevron-up-CSImUM3_.js → chevron-up-DWfNH8va.js} +1 -1
  140. package/dist/interface/assets/{clock-outline-DH3WIEJt.js → clock-outline-BtWx4GaF.js} +1 -1
  141. package/dist/interface/assets/{close-CMxyM4v9.js → close-Be7oB7d_.js} +1 -1
  142. package/dist/interface/assets/{close-circle-CfgJCZ9A.js → close-circle-D7Jmhp_7.js} +1 -1
  143. package/dist/interface/assets/{cloud-check-CbdFLIdR.js → cloud-check-zCGJxpWI.js} +1 -1
  144. package/dist/interface/assets/cloudHandoff-zJCrDmwk.js +1 -0
  145. package/dist/interface/assets/{config-DDaCrMSU.js → config-AG0SnOiY.js} +1 -1
  146. package/dist/interface/assets/{content-copy-Bz49QPOI.js → content-copy-BcYlfuFc.js} +1 -1
  147. package/dist/interface/assets/{copy-DA6QQHRt.js → copy-DuY-M96E.js} +1 -1
  148. package/dist/interface/assets/{cube-scan-IiH8zwm2.js → cube-scan-Cae03i_N.js} +1 -1
  149. package/dist/interface/assets/{database-refresh-outline-CIUDpcuq.js → database-refresh-outline-B3OEQFF7.js} +1 -1
  150. package/dist/interface/assets/{delete-Btu-UVx9.js → delete-BWgOAzKl.js} +1 -1
  151. package/dist/interface/assets/{dist-D_qWDAKp.js → dist-DmpuuM9s.js} +1 -1
  152. package/dist/interface/assets/{dots-vertical-D496SIss.js → dots-vertical-Kby1GY8_.js} +1 -1
  153. package/dist/interface/assets/{download-BSC7lwq_.js → download-C291Yq7I.js} +1 -1
  154. package/dist/interface/assets/esm-B2TVBF3B.js +1 -0
  155. package/dist/interface/assets/esm-BEntuCG7.js +1 -0
  156. package/dist/interface/assets/esm-BRnyrFH8.js +1 -0
  157. package/dist/interface/assets/esm-CCwXzd_8.js +1 -0
  158. package/dist/interface/assets/esm-CEjwTsuD.js +1 -0
  159. package/dist/interface/assets/esm-CGGV9tC4.js +1 -0
  160. package/dist/interface/assets/esm-CI2tTOc5.js +1 -0
  161. package/dist/interface/assets/esm-CgxZmMYv.js +1 -0
  162. package/dist/interface/assets/esm-Csc6f5Fy.js +1 -0
  163. package/dist/interface/assets/esm-Qzx3d-Ie.js +1 -0
  164. package/dist/interface/assets/esm-a_w7mTdx.js +1 -0
  165. package/dist/interface/assets/esm-iKfsu7-H.js +1 -0
  166. package/dist/interface/assets/esm-ks5kvk_e.js +1 -0
  167. package/dist/interface/assets/esm-nJfTguKF.js +1 -0
  168. package/dist/interface/assets/{eventIcons-UQutPG3p.js → eventIcons-C3JWChgS.js} +1 -1
  169. package/dist/interface/assets/{eye-off-CSU0U8g7.js → eye-off-zGCIHKOK.js} +1 -1
  170. package/dist/interface/assets/{flowSchema-YJtAu9gB.js → flowSchema-B0d3VjU7.js} +1 -1
  171. package/dist/interface/assets/{help-circle-outline-Cr_yNhPi.js → help-circle-outline-DXFepDAG.js} +1 -1
  172. package/dist/interface/assets/{history-anuCbp1T.js → history-D-FlZdKD.js} +1 -1
  173. package/dist/interface/assets/{home-N3bDR1vX.js → home-DPdzRxcM.js} +1 -1
  174. package/dist/interface/assets/{information-outline-CMWIvLNB.js → information-outline-ChOM9qgI.js} +1 -1
  175. package/dist/interface/assets/{intercomService-CjoJaOZ7.js → intercomService-DG3EeZ6s.js} +1 -1
  176. package/dist/interface/assets/{lan-CYXjdk7L.js → lan-DvYEO83l.js} +1 -1
  177. package/dist/interface/assets/{main-DVa5U7UB.css → main-CGY9cVyi.css} +1 -1
  178. package/dist/interface/assets/main-DkHV6YgB.js +3 -0
  179. package/dist/interface/assets/{microphone-BB2pATI_.js → microphone-D-T9xga4.js} +1 -1
  180. package/dist/interface/assets/{minus-BCp3ZNKO.js → minus-4T4INuO4.js} +1 -1
  181. package/dist/interface/assets/mqtt-DE2VbNdt.js +1 -0
  182. package/dist/interface/assets/native-CtfXrwj5.js +1 -0
  183. package/dist/interface/assets/native-JMtkOkIV.js +1 -0
  184. package/dist/interface/assets/{nodeDefinitions-ByrqsENY.js → nodeDefinitions-Dp8cnne1.js} +1 -1
  185. package/dist/interface/assets/{notifications-5yeK345h.js → notifications-8FH4ApEz.js} +1 -1
  186. package/dist/interface/assets/{pause-BQlxwAW2.js → pause-DHqHYA3V.js} +1 -1
  187. package/dist/interface/assets/{pencil-outline-CIQL5Kui.js → pencil-outline-D-GmPf8M.js} +1 -1
  188. package/dist/interface/assets/{pencil-CDsNnEXi.js → pencil-vACi-JzY.js} +1 -1
  189. package/dist/interface/assets/plugin-Dt5Xetfz.js +1 -0
  190. package/dist/interface/assets/{plugins-BTOdE_zv.js → plugins-2JLUEMYc.js} +1 -1
  191. package/dist/interface/assets/{plus-Bp4q9G7S.js → plus-BBUb8_uL.js} +1 -1
  192. package/dist/interface/assets/{plus-CySoovdr.js → plus-BJb7U4bN.js} +1 -1
  193. package/dist/interface/assets/{power-WmBLDR0-.js → power-Dm_aNIz-.js} +1 -1
  194. package/dist/interface/assets/{radar-CyYAmume.js → radar-Dcvdz--e.js} +1 -1
  195. package/dist/interface/assets/{refresh-CHTA3jVN.js → refresh-CO4F18Je.js} +1 -1
  196. package/dist/interface/assets/{restore-C8RNM5yX.js → restore-xRBt3Grb.js} +1 -1
  197. package/dist/interface/assets/{rooms-BCdm6IAx.js → rooms-DoAfzA8W.js} +1 -1
  198. package/dist/interface/assets/{round-alt-arrow-left-bold-Gh5mi_yR.js → round-alt-arrow-left-bold-CZHXzGS5.js} +1 -1
  199. package/dist/interface/assets/{search-BajCVmOI.js → search-D75YW08B.js} +1 -1
  200. package/dist/interface/assets/{sensorIcons-5Ynqwo3e.js → sensorIcons-BntiOPX7.js} +1 -1
  201. package/dist/interface/assets/{sensorSlots-BF70tpV7.js → sensorSlots-biaL-O8E.js} +1 -1
  202. package/dist/interface/assets/{sensors-CeFEEz8r.js → sensors-DyAMdS-H.js} +1 -1
  203. package/dist/interface/assets/server-BDRUGj61.js +1 -0
  204. package/dist/interface/assets/{settings-DnksaK7m.js → settings-DDOgc5BX.js} +1 -1
  205. package/dist/interface/assets/{source-branch-CzqIPffP.js → source-branch-DVHuYlkZ.js} +1 -1
  206. package/dist/interface/assets/{theme-DF_XA58O.js → theme-CLxrnR60.js} +1 -1
  207. package/dist/interface/assets/{trash-2-DJeEhHf4.js → trash-2-DDKPtl2x.js} +1 -1
  208. package/dist/interface/assets/{trash-can-outline-DrT6iw7I.js → trash-can-outline-DVH3zgo0.js} +1 -1
  209. package/dist/interface/assets/{trash-fill-Bb_-UicM.js → trash-fill-C_IJ4Vu2.js} +1 -1
  210. package/dist/interface/assets/{trash2-Dsl8gfxq.js → trash2-DY0XTaJD.js} +1 -1
  211. package/dist/interface/assets/{types-CklFkUXk.js → types-8JXzkoC8.js} +1 -1
  212. package/dist/interface/assets/{types-ArGM5-5O.js → types-B4LLKzDW.js} +1 -1
  213. package/dist/interface/assets/types-a7Nw-P-m.js +1 -0
  214. package/dist/interface/assets/{undo-DoqJW-k7.js → undo-YRkBYCnf.js} +1 -1
  215. package/dist/interface/assets/ungrouped-BoAbb9w3.js +1 -0
  216. package/dist/interface/assets/ungrouped-ChmBvcXp.css +1 -0
  217. package/dist/interface/assets/updates-F-veEP1I.js +1 -0
  218. package/dist/interface/assets/{upload-DtIcwiNC.js → upload-2WcHRjTq.js} +1 -1
  219. package/dist/interface/assets/{upload-C3w1XH-o.js → upload-BiE7VzTj.js} +1 -1
  220. package/dist/interface/assets/{useAppVersion-Dcvu95bZ.js → useAppVersion-BjUQmB7M.js} +1 -1
  221. package/dist/interface/assets/{useAssistantActions-Cc_O6M9_.js → useAssistantActions-CNEJol4o.js} +1 -1
  222. package/dist/interface/assets/useBackupRestore-Biqn_lhh.js +1 -0
  223. package/dist/interface/assets/{useCameraOptions-8I4MTDgj.js → useCameraOptions-D_oduve2.js} +1 -1
  224. package/dist/interface/assets/useKeyboardInset-CPWSVYlA.js +1 -0
  225. package/dist/interface/assets/{useLogsSocket-bpOiLgWT.js → useLogsSocket-B_jXUqv8.js} +1 -1
  226. package/dist/interface/assets/{useNavLayout-Cjf6Da2u.js → useNavLayout-DEngIIeU.js} +1 -1
  227. package/dist/interface/assets/{usePermissions-BXTw4tII.js → usePermissions-DAO92InI.js} +1 -1
  228. package/dist/interface/assets/{usePluginUpdates-bOMj-IvL.js → usePluginUpdates-CJi8Y_wl.js} +1 -1
  229. package/dist/interface/assets/{usePushRegistration-HOvLuUVP.js → usePushRegistration-j9WCeFbv.js} +2 -2
  230. package/dist/interface/assets/{useServerRestart-CQN4cdHJ.js → useServerRestart-BVks5tuC.js} +1 -1
  231. package/dist/interface/assets/{useStreamStatus-Da7c2Wme.js → useStreamStatus-DQ0NSyU8.js} +1 -1
  232. package/dist/interface/assets/{useTabSwipe-fFuyJJBQ.js → useTabSwipe-CVq7EcIY.js} +1 -1
  233. package/dist/interface/assets/{useUpdateChannel-Ca1RX32u.js → useUpdateChannel-C0fjDvNP.js} +1 -1
  234. package/dist/interface/assets/{useUpdatesSocket-DHZNpLQX.js → useUpdatesSocket-DXKF9hzc.js} +1 -1
  235. package/dist/interface/assets/useUserOptions-UjMeAL5n.js +1 -0
  236. package/dist/interface/assets/{variable-ywTlRfo5.js → variable-Cp8o-q8t.js} +1 -1
  237. package/dist/interface/assets/vendor-Df81FCJz.js +29 -0
  238. package/dist/interface/assets/{vendor-ace-CvEoip98.js → vendor-ace-QSsGUspX.js} +1 -1
  239. package/dist/interface/assets/{vendor-cameraui-CK4yHsJi.js → vendor-cameraui-GmMRyJ2R.js} +45 -45
  240. package/dist/interface/assets/{vendor-capacitor-Bs_WzL0Q.js → vendor-capacitor-t5EIN1GG.js} +2 -2
  241. package/dist/interface/assets/{vendor-chart-DBK083Hu.js → vendor-chart-BiJYkx5_.js} +1 -1
  242. package/dist/interface/assets/{vendor-core-B-Q4es-f.js → vendor-core-BeAannbA.js} +1 -1
  243. package/dist/interface/assets/{vendor-dnd-DGQLvX6Y.js → vendor-dnd-C1kMh9_t.js} +1 -1
  244. package/dist/interface/assets/{vendor-draggabilly-D8CK6M-y.js → vendor-draggabilly-Cw1oJ6qc.js} +1 -1
  245. package/dist/interface/assets/vendor-leaflet-OSZlONe5.js +1 -0
  246. package/dist/interface/assets/{vendor-markdown-qHIinIUE.js → vendor-markdown-DTWiWKBj.js} +1 -1
  247. package/dist/interface/assets/{vendor-primevue-Cmp3VjIC.js → vendor-primevue-Zx6t06A4.js} +77 -77
  248. package/dist/interface/assets/{vendor-vueflow-bSwRZ9X8.js → vendor-vueflow-DWU_IzGe.js} +1 -1
  249. package/dist/interface/assets/web-B98ahwoP.js +1 -0
  250. package/dist/interface/assets/web-BSsSrRZf.js +1 -0
  251. package/dist/interface/assets/web-BiNRDta4.js +1 -0
  252. package/dist/interface/assets/web-BjKL51lK-CZKmYhby.js +1 -0
  253. package/dist/interface/assets/web-BjtOcquy.js +1 -0
  254. package/dist/interface/assets/web-CkTE9nCG.js +1 -0
  255. package/dist/interface/assets/web-Cvogq5S5.js +1 -0
  256. package/dist/interface/assets/web-D-A4EBKj.js +1 -0
  257. package/dist/interface/assets/web-DVGMBduz.js +1 -0
  258. package/dist/interface/assets/web-SpWB7I6X.js +1 -0
  259. package/dist/interface/assets/web-k0ihT_qK.js +1 -0
  260. package/dist/interface/assets/web-ovBpm7Dl.js +1 -0
  261. package/dist/interface/assets/web-z5Xz9tOQ.js +1 -0
  262. package/dist/interface/assets/web-zfhkFevT.js +1 -0
  263. package/dist/interface/assets/{webhook-CWKf2Qxu.js → webhook-DIjChTrs.js} +1 -1
  264. package/dist/interface/assets/workbox-window.prod.es5-DRKojI0e.js +1 -0
  265. package/dist/interface/assets/{zoom-in-CHkXAWHy.js → zoom-in-rMB152Uz.js} +1 -1
  266. package/dist/interface/ha/{404-C0mWQGWl.js → 404-D5gfy0Cd.js} +1 -1
  267. package/dist/interface/ha/{About-ByE7XErJ.js → About-JzlpCzBN.js} +3 -3
  268. package/dist/interface/ha/{Assistant-Z3FTR868.js → Assistant-DgOfGesf.js} +2239 -1725
  269. package/dist/interface/ha/{Automation-COQqTFNw.js → Automation-BDaWYiBu.js} +146 -146
  270. package/dist/interface/ha/{AutomationImport-ueWqMBX9.js → AutomationImport-BNB_PJ9R.js} +6 -6
  271. package/dist/interface/ha/{AutomationStore-DBO4aZqy.js → AutomationStore-_TeOt1wz.js} +73 -73
  272. package/dist/interface/ha/{AutomationStoreDetail-DMnYu7hf.js → AutomationStoreDetail-jjIEZoRi.js} +20 -20
  273. package/dist/interface/ha/{Automations-CMdbidc0.js → Automations-DM6FEVOw.js} +110 -110
  274. package/dist/interface/ha/Camera-sH9fRv18.js +670 -0
  275. package/dist/interface/ha/{CameraConsole-oMNZfKE6.js → CameraConsole-BoVql05l.js} +4 -4
  276. package/dist/interface/ha/{Cameras-CsqrLx97.js → Cameras-cQBGvXq7.js} +349 -347
  277. package/dist/interface/ha/{Camview-Br0LUakz.js → Camview-mkG5FXZM.js} +323 -319
  278. package/dist/interface/ha/{Config-Y5eUNSW7.js → Config-BNPDzo_h.js} +11 -11
  279. package/dist/interface/ha/{ConfigActionAssistant-hl-6ZACj.js → ConfigActionAssistant-C-8P3DYz.js} +4 -4
  280. package/dist/interface/ha/{ConfigActionCameraControl-DnXlVFWD.js → ConfigActionCameraControl-x1ksGL7m.js} +3 -3
  281. package/dist/interface/ha/{ConfigActionHttp-BkpkMmRd.js → ConfigActionHttp-DzCJp85z.js} +2 -2
  282. package/dist/interface/ha/{ConfigActionImageInput-Dp78_QS_.js → ConfigActionImageInput-C5C5U_2z.js} +1 -1
  283. package/dist/interface/ha/{ConfigActionMqtt-DA_UWb5j.js → ConfigActionMqtt-T29xb75r.js} +4 -4
  284. package/dist/interface/ha/{ConfigActionNotification-CQ4Ses3a.js → ConfigActionNotification-BcnyilF9.js} +3 -3
  285. package/dist/interface/ha/{ConfigActionNotificationControl-Cb5PNGz-.js → ConfigActionNotificationControl-D3wIVKuU.js} +2 -2
  286. package/dist/interface/ha/{ConfigActionOutput-DLuNHwRb.js → ConfigActionOutput-hD-yVczw.js} +1 -1
  287. package/dist/interface/ha/{ConfigActionPlugin-ChKFCNaj.js → ConfigActionPlugin-Bz1O-O4Q.js} +5 -5
  288. package/dist/interface/ha/{ConfigActionSensor-DOutFalW.js → ConfigActionSensor-FOz-PYl_.js} +5 -5
  289. package/dist/interface/ha/{ConfigActionSnapshot-GWgY6YIN.js → ConfigActionSnapshot-CmxEOuK1.js} +2 -2
  290. package/dist/interface/ha/{ConfigActionVariable-bu-9VYTG.js → ConfigActionVariable-BCvkrdCh.js} +1 -1
  291. package/dist/interface/ha/{ConfigConditionIfElse-iNp8tlZV.js → ConfigConditionIfElse-icfTG9OA.js} +3 -3
  292. package/dist/interface/ha/{ConfigConditionSensorState-Dn7kcHpJ.js → ConfigConditionSensorState-ClUAsm0d.js} +4 -4
  293. package/dist/interface/ha/{ConfigConditionSwitch-DaUlDgo0.js → ConfigConditionSwitch-C8AMCkn6.js} +5 -5
  294. package/dist/interface/ha/{ConfigSensorValueInput-D6m6suqJ.js → ConfigSensorValueInput-ChvDQzGd.js} +4 -4
  295. package/dist/interface/ha/{ConfigTriggerDetection-C5B_DC_L.js → ConfigTriggerDetection-aUSyaClu.js} +2 -2
  296. package/dist/interface/ha/{ConfigTriggerGeofence-B4WVNcK5.js → ConfigTriggerGeofence-DsJeJWP4.js} +7 -7
  297. package/dist/interface/ha/{ConfigTriggerMqtt-wnMfk_Un.js → ConfigTriggerMqtt-CsAxA7QZ.js} +1 -1
  298. package/dist/interface/ha/{ConfigTriggerSensor-xFpI5KPu.js → ConfigTriggerSensor-CTxr9cfU.js} +1 -1
  299. package/dist/interface/ha/{ConfigTriggerSystem-YI9WYYVM.js → ConfigTriggerSystem-C8UEfpfs.js} +2 -2
  300. package/dist/interface/ha/{ConfigTriggerWebhook-58c2KgUe.js → ConfigTriggerWebhook-frEE-SCB.js} +1 -1
  301. package/dist/interface/ha/{Console-Coiqh32K.js → Console-A3VtbsLg.js} +12 -12
  302. package/dist/interface/ha/{CuiAutomationRunsDialog-CJ2MGfEY.js → CuiAutomationRunsDialog-BlJvhBiX.js} +2 -2
  303. package/dist/interface/ha/{CuiBottomSheet-BlG9Pl9j.js → CuiBottomSheet-Cu-t3H0Z.js} +1 -1
  304. package/dist/interface/ha/{CuiCameraRecordings-DLXEB4Q7.js → CuiCameraRecordings-R5ArEmqJ.js} +10 -10
  305. package/dist/interface/ha/{CuiCameraShares-BCIeaM6u.js → CuiCameraShares-B9pfRkM4.js} +5 -5
  306. package/dist/interface/ha/{CuiCameraTable-PYYC7sOu.js → CuiCameraTable-CKjGKaMC.js} +9 -9
  307. package/dist/interface/ha/{CuiChartTable-FQ2iR5Hd.js → CuiChartTable-BxWjRe-k.js} +89 -74
  308. package/dist/interface/ha/{CuiConsole-C77k5q_-.js → CuiConsole-C5fzsR7t.js} +4 -4
  309. package/dist/interface/ha/{CuiDataTable-CIKQLseG.js → CuiDataTable-BOdQDY8J.js} +5 -5
  310. package/dist/interface/ha/{CuiPluginCard-DZNXKP_P.js → CuiPluginCard-BT71RRAD.js} +33 -33
  311. package/dist/interface/ha/{CuiPluginOAuthButton-DVf52_Zc.js → CuiPluginOAuthButton-moh9uS7G.js} +7 -7
  312. package/dist/interface/ha/{CuiPluginTrustBadge-CPljYiM8.js → CuiPluginTrustBadge-F_pVWkPJ.js} +1 -1
  313. package/dist/interface/ha/{CuiQRCode-oe8PLnLj.js → CuiQRCode-BNuj-nJ4.js} +6 -6
  314. package/dist/interface/ha/{CuiSchema-CQy94ZTs.js → CuiSchema-Cb_8Ks-I.js} +125 -125
  315. package/dist/interface/ha/{CuiTopNavbarItem-D6OHZLQY.js → CuiTopNavbarItem-BGzrrTls.js} +1 -1
  316. package/dist/interface/ha/{Faces-DxAPvemO.js → Faces-CsM5VO8Q.js} +247 -247
  317. package/dist/interface/ha/{FirstSteps-ZINTSaeL.js → FirstSteps-BFX0-EEi.js} +12 -12
  318. package/dist/interface/ha/{Floorplan-DkbL8ppT.js → Floorplan-D6MGqSJT.js} +198 -199
  319. package/dist/interface/ha/{Instances-totWtqd7.js → Instances-CHzIUyyA.js} +72 -72
  320. package/dist/interface/ha/{Logs-CzabIFja.js → Logs-DZKM3dWv.js} +10 -10
  321. package/dist/interface/ha/{Menu-DcVBOQfw.js → Menu-BQz4dfQi.js} +8 -8
  322. package/dist/interface/ha/{Metrics-B_SN5hbp.js → Metrics-CdpWJ1mm.js} +310 -308
  323. package/dist/interface/ha/{OAuthDeviceFlow-B28TPsTQ.js → OAuthDeviceFlow-DUELtx3X.js} +9 -9
  324. package/dist/interface/ha/{Plugin-B2PbbB8d.js → Plugin-5bbTF0Rv.js} +92 -92
  325. package/dist/interface/ha/{PluginConsole-_KeG4FvO.js → PluginConsole-C__0lzsS.js} +4 -4
  326. package/dist/interface/ha/{PluginDetail-GK_Fx14e.js → PluginDetail-Blrktk9W.js} +9 -9
  327. package/dist/interface/ha/{PluginSearch-qSy4aqAW.js → PluginSearch-BKbdwHQ1.js} +121 -121
  328. package/dist/interface/ha/{PluginUpdateProgress-C4Q2j6VO.js → PluginUpdateProgress-IsNiecu3.js} +3 -3
  329. package/dist/interface/ha/{Plugins-D0tvZHie.js → Plugins-CC2Dwlx5.js} +53 -53
  330. package/dist/interface/ha/{Recordings-CpxJYaAa.js → Recordings-B1XsJrzs.js} +303 -301
  331. package/dist/interface/ha/{SensorEdit-8KtqLXEu.js → SensorEdit-Bi2Yx_ji.js} +46 -46
  332. package/dist/interface/ha/{SensorHistory-CPTTsdjM.js → SensorHistory-sqG_6eav.js} +2 -2
  333. package/dist/interface/ha/{Sensors-DJt_Hnn2.js → Sensors-DLtOh1p4.js} +509 -510
  334. package/dist/interface/ha/{Settings-B-OdG5pG.js → Settings-DI3_zenm.js} +38 -38
  335. package/dist/interface/ha/{SettingsAccount-Ba2-2Lbi.js → SettingsAccount-pS86Qyr-.js} +251 -251
  336. package/dist/interface/ha/{SettingsAppearance-D56HjSuQ.js → SettingsAppearance-tS3bubKQ.js} +4 -4
  337. package/dist/interface/ha/{SettingsAssistant-DglU0auc.js → SettingsAssistant-LejCRXsF.js} +501 -501
  338. package/dist/interface/ha/{SettingsBackup-DZx4McDz.js → SettingsBackup-CkhD1Kze.js} +23 -23
  339. package/dist/interface/ha/{SettingsList-D9nIGkbE.js → SettingsList-bibwvPSM.js} +2 -2
  340. package/dist/interface/ha/{SettingsMqtt-BOszh--k.js → SettingsMqtt-DSt0B4Qg.js} +18 -18
  341. package/dist/interface/ha/{SettingsNotifications-DBVpZfp0.js → SettingsNotifications-BF7ajNwE.js} +118 -118
  342. package/dist/interface/ha/{SettingsRecordings-D3oJnizu.js → SettingsRecordings-BTIdncxg.js} +9 -9
  343. package/dist/interface/ha/{SettingsRemote-BOotvcOT.js → SettingsRemote-Cba4P1-O.js} +347 -344
  344. package/dist/interface/ha/{SettingsSystem-Bg11qoQX.js → SettingsSystem-_Nnh2ZF5.js} +9 -9
  345. package/dist/interface/ha/{SettingsUsers-KpLs9Jnh.js → SettingsUsers-BfHFoxJi.js} +83 -83
  346. package/dist/interface/ha/{Terminal-D6opTHYI.js → Terminal-Dv_7oWmS.js} +11 -11
  347. package/dist/interface/ha/Training-CaSFA5oH.js +1699 -0
  348. package/dist/interface/ha/{Updates-C_OvXJjd.js → Updates-BHl5H7zE.js} +15 -15
  349. package/dist/interface/ha/{VariableInput-CfaDp67S.js → VariableInput-DtLo7-Nw.js} +1 -1
  350. package/dist/interface/ha/{VersionsHandler-D1FVeYUZ.js → VersionsHandler-CF0DSeol.js} +10 -10
  351. package/dist/interface/ha/{VirtualSensorCreate-DJIgMVrt.js → VirtualSensorCreate-C907EgIz.js} +2 -2
  352. package/dist/interface/ha/Workers-Dz1d9gEQ.js +814 -0
  353. package/dist/interface/ha/{ace-B3bPzJu9.js → ace-C9MtBQVV.js} +1 -1
  354. package/dist/interface/ha/{ace.config-Dt55Nqby.js → ace.config-CSXnaIzV.js} +1 -1
  355. package/dist/interface/ha/{api-D2VzV4is.js → api-DUqpDJ2N.js} +14361 -14070
  356. package/dist/interface/ha/{api-CDawdL4p.js → api-gId1nlMj.js} +4 -4
  357. package/dist/interface/ha/{assistant-BmDAfChm.js → assistant-BaR65gIY.js} +50 -50
  358. package/dist/interface/ha/{auth-CvLz9C4w.js → auth-Btsz_KxO.js} +38 -38
  359. package/dist/interface/ha/{automationBlueprint-BhNaeOZ1.js → automationBlueprint-CuO3iOiM.js} +3 -3
  360. package/dist/interface/ha/cameraui-cards.js +1 -1
  361. package/dist/interface/ha/{cards-MQrnU0T8.js → cards-DWhezIPP.js} +1447 -1407
  362. package/dist/interface/ha/{config-t_oAKFkJ.js → config-BKStpoEQ.js} +12 -12
  363. package/dist/interface/ha/{dist-oFWkn6pD.js → dist-CM7R4_Gj.js} +34 -25
  364. package/dist/interface/ha/{mqtt-C20h1uze.js → mqtt-ajcSmTB-.js} +14 -14
  365. package/dist/interface/ha/{notifications-Cy9DKiEn.js → notifications-Cf9dXHEO.js} +18 -18
  366. package/dist/interface/ha/{pinia-BokSpDzj.js → pinia-DIKO5lnE.js} +267 -259
  367. package/dist/interface/ha/{plugins-jozYyBhV.js → plugins-ml823dJV.js} +61 -61
  368. package/dist/interface/ha/{rooms-DyfT3cXp.js → rooms-C5gUErBi.js} +9 -9
  369. package/dist/interface/ha/{server-hCCjQjZE.js → server-dArenpJI.js} +26 -26
  370. package/dist/interface/ha/{types-RG0SckNR.js → types-DYymuACA.js} +25 -25
  371. package/dist/interface/ha/{ungrouped-BbyfoCQp.js → ungrouped-BHLAySWP.js} +237 -213
  372. package/dist/interface/ha/{updates-hUgVDgoD.js → updates-D5sFzGtC.js} +33 -33
  373. package/dist/interface/ha/{useAppVersion-wNhZDuvR.js → useAppVersion-C5x3Ap4_.js} +1 -1
  374. package/dist/interface/ha/{useKeyboardInset-Cmbvb_W3.js → useKeyboardInset-Cj0T2AFX.js} +1 -1
  375. package/dist/interface/ha/{useLogsSocket-y9Aex3tJ.js → useLogsSocket-DtvfQlPh.js} +1 -1
  376. package/dist/interface/ha/{useNavLayout-Ehb0t34k.js → useNavLayout-HSFBA4JV.js} +13 -13
  377. package/dist/interface/ha/{useServerRestart-CRSVcz3z.js → useServerRestart-Ci0SppGW.js} +1 -1
  378. package/dist/interface/ha/{useTabSwipe-B_bseZkI.js → useTabSwipe-CPKkRmaH.js} +1 -1
  379. package/dist/interface/ha/{useUpdateChannel-C_GU6lj6.js → useUpdateChannel-CXHHovK3.js} +2 -2
  380. package/dist/interface/ha/{useUpdatesSocket-CYgHb7UX.js → useUpdatesSocket-DVST2YXV.js} +1 -1
  381. package/dist/interface/ha/{useUserOptions-pVYr-s3O.js → useUserOptions-BYcYI6QA.js} +1 -1
  382. package/dist/interface/index.html +70 -70
  383. package/dist/interface/sw.js +1 -1
  384. package/dist/server/package.json +16 -16
  385. package/dist/server/requirements.txt +2 -2
  386. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +8 -0
  387. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +5 -1
  388. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/internal/camera_config_internal.py +5 -1
  389. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +2 -1
  390. package/dist/server/src/api/controllers/api.controller.js +1 -1
  391. package/dist/server/src/api/controllers/api.controller.js.map +1 -1
  392. package/dist/server/src/api/controllers/plugins.controller.js +1 -0
  393. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  394. package/dist/server/src/api/controllers/workers.controller.d.ts +2 -2
  395. package/dist/server/src/api/controllers/workers.controller.js +8 -2
  396. package/dist/server/src/api/controllers/workers.controller.js.map +1 -1
  397. package/dist/server/src/api/database/record-schemas.d.ts +3 -0
  398. package/dist/server/src/api/database/record-schemas.js +1 -0
  399. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  400. package/dist/server/src/api/database/types.d.ts +4 -0
  401. package/dist/server/src/api/routes/workers.routes.js +4 -4
  402. package/dist/server/src/api/routes/workers.routes.js.map +1 -1
  403. package/dist/server/src/api/schemas/cameras.schema.d.ts +38 -0
  404. package/dist/server/src/api/schemas/cameras.schema.js +22 -0
  405. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  406. package/dist/server/src/api/schemas/users.schema.d.ts +12 -0
  407. package/dist/server/src/api/schemas/users.schema.js +4 -0
  408. package/dist/server/src/api/schemas/users.schema.js.map +1 -1
  409. package/dist/server/src/api/schemas/workers.schema.d.ts +5 -4
  410. package/dist/server/src/api/schemas/workers.schema.js +6 -3
  411. package/dist/server/src/api/schemas/workers.schema.js.map +1 -1
  412. package/dist/server/src/api/services/cameras.service.d.ts +3 -0
  413. package/dist/server/src/api/services/cameras.service.js +47 -2
  414. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  415. package/dist/server/src/api/services/plugins.service.d.ts +1 -0
  416. package/dist/server/src/api/services/plugins.service.js +5 -1
  417. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  418. package/dist/server/src/api/services/workers.service.d.ts +2 -0
  419. package/dist/server/src/api/services/workers.service.js +15 -0
  420. package/dist/server/src/api/services/workers.service.js.map +1 -1
  421. package/dist/server/src/api/types/index.d.ts +3 -2
  422. package/dist/server/src/api/websocket/nsp/notifications.d.ts +1 -0
  423. package/dist/server/src/api/websocket/nsp/notifications.js +7 -0
  424. package/dist/server/src/api/websocket/nsp/notifications.js.map +1 -1
  425. package/dist/server/src/assistant/automation-catalog.js +12 -2
  426. package/dist/server/src/assistant/automation-catalog.js.map +1 -1
  427. package/dist/server/src/assistant/pricing.js +39 -10
  428. package/dist/server/src/assistant/pricing.js.map +1 -1
  429. package/dist/server/src/assistant/providers.js +9 -1
  430. package/dist/server/src/assistant/providers.js.map +1 -1
  431. package/dist/server/src/camera/decoder/event-manager.d.ts +1 -2
  432. package/dist/server/src/camera/decoder/event-manager.js +37 -59
  433. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  434. package/dist/server/src/manager/coreManager.d.ts +2 -1
  435. package/dist/server/src/manager/coreManager.js +9 -2
  436. package/dist/server/src/manager/coreManager.js.map +1 -1
  437. package/dist/server/src/manager/notificationManager.d.ts +1 -0
  438. package/dist/server/src/manager/notificationManager.js +11 -0
  439. package/dist/server/src/manager/notificationManager.js.map +1 -1
  440. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js +1 -1
  441. package/dist/server/src/plugins/runtime/node/proxy/coreManager.js.map +1 -1
  442. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +3 -0
  443. package/dist/server/src/plugins/runtime/python/proxy/core_manager.py +1 -1
  444. package/dist/server/src/plugins/runtime/python/rpc/typings.py +1 -1
  445. package/dist/server/src/rpc/interfaces/core.d.ts +1 -1
  446. package/dist/server/src/sensors/registry.d.ts +2 -0
  447. package/dist/server/src/sensors/registry.js +24 -0
  448. package/dist/server/src/sensors/registry.js.map +1 -1
  449. package/dist/server/src/services/config/index.d.ts +1 -0
  450. package/dist/server/src/services/config/index.js +12 -1
  451. package/dist/server/src/services/config/index.js.map +1 -1
  452. package/dist/server/src/utils/ipc.js +23 -17
  453. package/dist/server/src/utils/ipc.js.map +1 -1
  454. package/dist/server/src/workers/agent.js +2 -0
  455. package/dist/server/src/workers/agent.js.map +1 -1
  456. package/dist/server/src/workers/manager.d.ts +1 -0
  457. package/dist/server/src/workers/manager.js +22 -0
  458. package/dist/server/src/workers/manager.js.map +1 -1
  459. package/dist/server/src/workers/types.d.ts +5 -0
  460. package/dist/server/src/workers/types.js.map +1 -1
  461. package/npm-shrinkwrap.json +111 -111
  462. package/package.json +16 -16
  463. package/dist/interface/assets/Assistant-BJKGIvVo.js +0 -1
  464. package/dist/interface/assets/Automation-C95DzuZb.js +0 -3
  465. package/dist/interface/assets/Automations-BOP_17Ri.js +0 -2
  466. package/dist/interface/assets/Camera-BW9ikKqh.css +0 -1
  467. package/dist/interface/assets/Camera-C5S7eI9a.js +0 -2
  468. package/dist/interface/assets/Camview-CHxKB41T.js +0 -1
  469. package/dist/interface/assets/Config-BrDDGWpr.js +0 -2
  470. package/dist/interface/assets/Console-cIr6lYux.js +0 -1
  471. package/dist/interface/assets/CuiAssistantConversation-Bigl43Ph.js +0 -5
  472. package/dist/interface/assets/CuiAutomationRunsDialog-Ci7SWAml.js +0 -1
  473. package/dist/interface/assets/CuiBottomSheet-ViBOgklN.js +0 -1
  474. package/dist/interface/assets/CuiCameraPipCard-BQKk4fxY.css +0 -1
  475. package/dist/interface/assets/CuiCameraPipCard-wdK7xir-.js +0 -1
  476. package/dist/interface/assets/CuiCameraRecordings-BB7bF67B.js +0 -1
  477. package/dist/interface/assets/CuiCameraTable-CHnQFkce.js +0 -1
  478. package/dist/interface/assets/CuiChartTable-DXY7rY3O.css +0 -1
  479. package/dist/interface/assets/CuiChartTable-dIcxGtfl.js +0 -1
  480. package/dist/interface/assets/CuiDataTable-CQmp5mAy.js +0 -1
  481. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +0 -1
  482. package/dist/interface/assets/CuiPluginCard-BjIc7It9.js +0 -2
  483. package/dist/interface/assets/Faces-p18jNfXl.js +0 -1
  484. package/dist/interface/assets/Floorplan-DYyEx7WO.js +0 -1
  485. package/dist/interface/assets/Metrics-ChVnC6f6.css +0 -1
  486. package/dist/interface/assets/Metrics-l3UwykCM.js +0 -12
  487. package/dist/interface/assets/Plugin-Ldj3HygQ.js +0 -1
  488. package/dist/interface/assets/PluginDetail-CnfaI1vh.js +0 -2
  489. package/dist/interface/assets/PluginSearch-BiXG3Xk2.js +0 -2
  490. package/dist/interface/assets/PluginSearch-BuE7we1T.js +0 -1
  491. package/dist/interface/assets/Plugins-Csx6AXaW.js +0 -1
  492. package/dist/interface/assets/Recordings-D0KTY5cI.js +0 -1
  493. package/dist/interface/assets/SensorEdit-zs-f_o1N.js +0 -1
  494. package/dist/interface/assets/Sensors-BLAoalEt.js +0 -2
  495. package/dist/interface/assets/SettingsAccount-BsN7jGmo.js +0 -1
  496. package/dist/interface/assets/SettingsAccount-DuVyCSE-.js +0 -1
  497. package/dist/interface/assets/SettingsAppearance-DQcGbYbV.js +0 -1
  498. package/dist/interface/assets/SettingsAssistant-DViJklFd.js +0 -1
  499. package/dist/interface/assets/SettingsMqtt-JoszJJgV.js +0 -1
  500. package/dist/interface/assets/SettingsNotifications-3veSrxa_.js +0 -1
  501. package/dist/interface/assets/SettingsRemote-CtP6Gz9C.css +0 -1
  502. package/dist/interface/assets/SettingsRemote-DUyl8k7I.js +0 -2
  503. package/dist/interface/assets/Terminal-hln2UuSR.js +0 -4
  504. package/dist/interface/assets/Training-D6lhvUf-.js +0 -1
  505. package/dist/interface/assets/Updates-BwSWt9w7.js +0 -2
  506. package/dist/interface/assets/Workers-B6b15izn.js +0 -2
  507. package/dist/interface/assets/ace-DzzM-RlW.js +0 -1
  508. package/dist/interface/assets/api-C9mnOxie.js +0 -4
  509. package/dist/interface/assets/api-Cj9a6qPu.css +0 -2
  510. package/dist/interface/assets/cameraSources-DmVZWs4-.js +0 -1
  511. package/dist/interface/assets/cloudHandoff-Ba98bzeq.js +0 -1
  512. package/dist/interface/assets/esm-Bn9gXwX4.js +0 -1
  513. package/dist/interface/assets/esm-BzM6y2-F.js +0 -1
  514. package/dist/interface/assets/esm-CP3JWrtj.js +0 -1
  515. package/dist/interface/assets/esm-CjAXkqCf.js +0 -1
  516. package/dist/interface/assets/esm-Cqxk-j1S.js +0 -1
  517. package/dist/interface/assets/esm-DFHd3JNU.js +0 -1
  518. package/dist/interface/assets/esm-DfMLJtug.js +0 -1
  519. package/dist/interface/assets/esm-DhDrpq7a.js +0 -1
  520. package/dist/interface/assets/esm-DvhM-SOd.js +0 -1
  521. package/dist/interface/assets/esm-G63bqygQ.js +0 -1
  522. package/dist/interface/assets/esm-Gn-Y59hU.js +0 -1
  523. package/dist/interface/assets/esm-KJSOz2vj.js +0 -1
  524. package/dist/interface/assets/esm-Ryfc94Tm.js +0 -1
  525. package/dist/interface/assets/esm-rSfI5Poy.js +0 -1
  526. package/dist/interface/assets/eye-off-outline-DCxLRGo_.js +0 -1
  527. package/dist/interface/assets/main-C796FmqQ.js +0 -3
  528. package/dist/interface/assets/mqtt-DGBPptzB.js +0 -1
  529. package/dist/interface/assets/native-CZJE8bTs.js +0 -1
  530. package/dist/interface/assets/native-DKZwialB.js +0 -1
  531. package/dist/interface/assets/plugin-DSEMkqaK.js +0 -1
  532. package/dist/interface/assets/server-bhW2Mw4D.js +0 -1
  533. package/dist/interface/assets/types-BcAxmlqC.js +0 -1
  534. package/dist/interface/assets/ungrouped-BnQIcSQd.css +0 -1
  535. package/dist/interface/assets/ungrouped-CkIlDUwl.js +0 -1
  536. package/dist/interface/assets/updates-D3x_kPMM.js +0 -1
  537. package/dist/interface/assets/useBackupRestore-xp5KhKVn.js +0 -1
  538. package/dist/interface/assets/useKeyboardInset-C0Lp0UcX.js +0 -1
  539. package/dist/interface/assets/useUserOptions-BQdOB-Dp.js +0 -1
  540. package/dist/interface/assets/vendor-gFkr2qsZ.js +0 -23
  541. package/dist/interface/assets/vendor-leaflet-DkAk6mAj.js +0 -1
  542. package/dist/interface/assets/web-BDNQnMmA.js +0 -1
  543. package/dist/interface/assets/web-B_9Qyt8E.js +0 -1
  544. package/dist/interface/assets/web-BhJykCtq.js +0 -1
  545. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +0 -1
  546. package/dist/interface/assets/web-C7nJwIOa.js +0 -1
  547. package/dist/interface/assets/web-CGJsJQDb.js +0 -1
  548. package/dist/interface/assets/web-CJwASxrl.js +0 -1
  549. package/dist/interface/assets/web-CLe0L31Y.js +0 -1
  550. package/dist/interface/assets/web-DEv1hAn1.js +0 -1
  551. package/dist/interface/assets/web-DaeQvsXT.js +0 -1
  552. package/dist/interface/assets/web-H3-wNunW.js +0 -1
  553. package/dist/interface/assets/web-LCdyqJq1.js +0 -1
  554. package/dist/interface/assets/web-XZWYTK65.js +0 -1
  555. package/dist/interface/assets/web-rU5hlxxW.js +0 -1
  556. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +0 -1
  557. package/dist/interface/ha/Camera-C28q_3pu.js +0 -657
  558. package/dist/interface/ha/Training-OB2KOQ7L.js +0 -1694
  559. package/dist/interface/ha/Workers-cJMI4mYX.js +0 -765
  560. package/dist/interface/ha/eye-off-outline-ACbzsGuK.js +0 -19
@@ -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, Bn as ae, Dn as oe, Dr as se, Hn as ce, On as le, Or as N, Pn as ue, Q as de, Sr as fe, Un as P, Vn as pe, Wr as me, _r as he, ct as ge, dr as _e, et as ve, gt as ye, ir as be, it as xe, lt as Se, nr as Ce, nt as we, o as Te, rr as Ee, rt as De, tt as Oe, ur as ke, wi as Ae, yr as je, zn as Me } from "./api-DUqpDJ2N.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-CM7R4_Gj.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 = Ae(), { t: c } = Ie(), p = me(), m = Ee("@camera.ui/camera-ui-nvr"), { plugin: v } = Be("@camera.ui/camera-ui-nvr"), x = ye(), { icons: w } = Re(), E = m.getCachedThumbnails(r.event.id), te = E ? P(E, r.event, "card", r.segIndex).url ? "loaded" : "empty" : "loading", A = l(Me, void 0), N = O("rootRef"), Pe = O("previewCanvasRef"), ze = O("footerRef"), F = O("cardMenuRef"), I = j(!1), L = j(!1), Ve = we(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(() => he(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,37 +147,34 @@ 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)) {
167
- if (n.some((e) => e.url === t.url)) continue;
168
- let e = t.key.split(":")[0];
169
- n.push({
170
- url: t.url,
171
- label: t.label,
172
- type: t.type,
173
- crop: !0,
174
- faceSeg: /^\d+$/.test(e) ? Number(e) : -1
175
- });
176
- }
166
+ for (let t of Ce(e, r.segIndex, r.event)) n.some((e) => e.url === t.url) || n.push({
167
+ url: t.url,
168
+ label: t.label,
169
+ type: t.type,
170
+ crop: !0,
171
+ faceSeg: t.seg ?? -1,
172
+ attrIndex: t.attrIndex
173
+ });
177
174
  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]);
175
+ let i = ae(e.cards?.[t] ?? e.strips?.[t]);
179
176
  if (!i || n.some((e) => e.url === i)) continue;
180
- let a = we(r.event, t);
177
+ let a = xe(r.event, t);
181
178
  n.push({
182
179
  url: i,
183
180
  label: a,
@@ -186,26 +183,26 @@ var Ue = v({
186
183
  });
187
184
  }
188
185
  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(() => {
186
+ }), 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
187
  let e = q.value;
191
- return (e ? fe(r.event, e) : [...new Set(r.event.types)]).filter((e) => e !== "motion" && e !== "audio");
188
+ return (e ? pe(r.event, e) : [...new Set(r.event.types)]).filter((e) => e !== "motion" && e !== "audio");
192
189
  }), Ot = C(() => r.cameraName ?? r.event.cameraId), kt = C(() => Y.value.map((e) => ({
193
190
  url: e.url,
194
191
  type: e.type
195
- }))), At = C(() => Z.value.slice(0, Q.value.icons)), Q = C(() => {
196
- let e = U.value;
192
+ }))), At = C(() => Q.value.slice(0, jt.value.icons)), jt = C(() => {
193
+ let e = _t.value;
197
194
  if (!e) return {
198
195
  icons: 2,
199
196
  tiles: 2
200
197
  };
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);
198
+ let t = e - ht;
199
+ r.selectionMode && (t -= mt);
200
+ 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
201
  return {
205
202
  icons: a,
206
- tiles: Vt(kt.value.length, Math.max(0, t - o), mt)
203
+ tiles: Ht(kt.value.length, Math.max(0, t - o), ft)
207
204
  };
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(() => {
205
+ }), 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
206
  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
207
  hour: "2-digit",
211
208
  minute: "2-digit"
@@ -214,39 +211,51 @@ var Ue = v({
214
211
  month: "short",
215
212
  day: "numeric"
216
213
  })} ${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(() => {
214
+ }), 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(() => {
215
+ let e = Z.value;
216
+ if (e?.crop) return e.type === "face" ? {
217
+ seg: e.faceSeg ?? -1,
218
+ label: e.label || "unknown",
219
+ attrIndex: e.attrIndex
220
+ } : void 0;
221
+ let t = r.segIndex ?? K.value?.segIndex;
222
+ if (X.value > 0 || t === void 0) return;
223
+ let n = q.value?.attributes ?? [], i = n.flatMap((e, t) => e.type === "face" ? [t] : []);
224
+ return i.length === 1 ? {
225
+ seg: t,
226
+ label: n[i[0]].label || "unknown",
227
+ attrIndex: i[0]
228
+ } : void 0;
229
+ }), zt = C(() => {
221
230
  let e = [];
222
- return yt.value && Lt.value !== void 0 && e.push({
231
+ return vt.value && Rt.value && e.push({
223
232
  key: "reassign",
224
233
  label: c("views.recordings.reassign_face"),
225
- icon: Ue,
226
- loading: H.value,
227
- onClick: () => Zt()
234
+ icon: He,
235
+ loading: W.value,
236
+ onClick: () => Qt()
228
237
  }), r.camera && e.push({
229
238
  key: "trace",
230
239
  label: c("views.recordings.open_trace"),
231
- icon: be,
240
+ icon: ge,
232
241
  onClick: () => i("openTrace", q.value?.firstSeen)
233
242
  }), e.push({
234
243
  key: "ask",
235
244
  label: c("views.recordings.ask_assistant"),
236
- icon: Re,
237
- onClick: () => Bt()
238
- }), Ft.value && e.push({
245
+ icon: Le,
246
+ onClick: () => Vt()
247
+ }), It.value && e.push({
239
248
  key: "download",
240
249
  label: c("views.recordings.download"),
241
- icon: Ee,
242
- loading: B.value,
243
- onClick: () => en()
250
+ icon: Se,
251
+ loading: V.value,
252
+ onClick: () => tn()
244
253
  }), e;
245
254
  });
246
- function zt() {
247
- ue(P.value?.hide);
248
- }
249
255
  function Bt() {
256
+ le(F.value?.hide);
257
+ }
258
+ function Vt() {
250
259
  let e = c("views.recordings.ask_assistant_prompt", {
251
260
  camera: r.cameraName ?? r.camera?.name ?? r.event.cameraId,
252
261
  time: new Date(r.event.startTime).toLocaleString(),
@@ -257,83 +266,89 @@ var Ue = v({
257
266
  query: { prompt: e }
258
267
  });
259
268
  }
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));
269
+ function Ht(e, t, n) {
270
+ return e === 0 || t < n ? 0 : e * n <= t ? e : Math.max(0, Math.floor((t - pt) / n));
262
271
  }
263
- function Ht(e) {
272
+ function Ut(e) {
264
273
  let t = Y.value.length;
265
- t && ($(), We.value = (wt.value + e + t) % t);
274
+ t && ($(), G.value = void 0, H.value = (X.value + e + t) % t);
266
275
  }
267
- function Ut(e, t) {
268
- Ct.value && (t.stopPropagation(), $(), We.value = e);
276
+ function Wt(e, t) {
277
+ wt.value && (t.stopPropagation(), $(), G.value = void 0, H.value = e);
269
278
  }
270
279
  function $() {
271
- I.value = !1, A && L.value && (L.value = !1, A.onHoverEnd());
280
+ L.value = !1, A && R.value && (R.value = !1, A.onHoverEnd());
272
281
  }
273
- function Wt(e) {
282
+ function Gt(e) {
274
283
  let t = new Date(e);
275
284
  return `${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}:${String(t.getSeconds()).padStart(2, "0")}`;
276
285
  }
277
- function Gt() {
278
- if (!A || wt.value > 0) return;
279
- let e = Fe.value;
286
+ function Kt() {
287
+ if (!A || X.value > 0) return;
288
+ let e = Pe.value;
280
289
  if (!e) return;
281
- let t = _e(r.event);
290
+ let t = be(r.event);
282
291
  if (r.event.hasRecording === !1 || !t) {
283
- I.value = !0;
292
+ L.value = !0;
284
293
  return;
285
294
  }
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();
295
+ R.value = !0, A.onHoverStart(e, r.event.cameraId, r.event.id, r.event.startTime, t, r.camera?.zones?.privacy, ue(r.event));
290
296
  }
291
297
  function qt() {
292
- I.value = !1, A && (L.value = !1, A.onHoverEnd());
298
+ Ve.blocksMouseEnter() || Kt();
293
299
  }
294
- async function Jt(e = 2) {
300
+ function Jt() {
301
+ L.value = !1, A && (R.value = !1, A.onHoverEnd());
302
+ }
303
+ async function Yt(e = 2) {
295
304
  let t = await r.loadThumbnails(r.event.id, r.event.startTime);
296
305
  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";
306
+ z.value = t;
307
+ let e = P(t, r.event, "card");
308
+ B.value = e.url ? "loaded" : "empty";
309
+ } else if (e > 0) return await new Promise((e) => setTimeout(e, 500)), Yt(e - 1);
310
+ else B.value = r.event.state === "active" ? "loading" : "empty";
302
311
  }
303
- function Yt() {
304
- if (!He.consumesClick()) {
312
+ function Xt() {
313
+ if (!Ve.consumesClick()) {
305
314
  if (r.selectionMode) {
306
315
  i("select");
307
316
  return;
308
317
  }
309
- i("scrollToEvent", q.value?.firstSeen ?? Ae(r.event));
318
+ i("scrollToEvent", q.value?.firstSeen ?? De(r.event));
310
319
  }
311
320
  }
312
- async function Xt(e) {
313
- $(), F.value || (F.value = !0, await h()), P.value?.toggleMenu(e);
321
+ async function Zt(e) {
322
+ $(), I.value || (I.value = !0, await h()), F.value?.toggleMenu(e);
314
323
  }
315
- function Zt() {
316
- let e = Lt.value;
317
- e !== void 0 && x.openComponentDialog(Ge, {
324
+ function Qt() {
325
+ let e = Rt.value;
326
+ if (!e) return;
327
+ let t = !!Z.value?.crop;
328
+ x.openComponentDialog(Ue, {
318
329
  data: {
319
330
  title: c("views.recordings.reassign_face"),
320
331
  confirmText: c("components.form.button.save"),
321
332
  contentProps: {
322
- cropUrl: X.value?.url,
323
- oldName: e
333
+ cropUrl: Z.value?.url,
334
+ oldName: e.label
324
335
  }
325
336
  },
326
- onConfirm: (e) => Qt(e)
337
+ onConfirm: (n) => $t(e, n, t)
327
338
  });
328
339
  }
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;
340
+ async function $t(e, t, n) {
341
+ if (W.value) return;
342
+ let i = v.value;
333
343
  if (i?.reassignEventFace) {
334
- H.value = !0;
344
+ W.value = !0;
335
345
  try {
336
- await i.reassignEventFace(r.event.id, n, t, e) > 0 && pe(r.event.id), s.add({
346
+ let a = e.attrIndex === void 0 ? void 0 : { attrIndex: e.attrIndex };
347
+ await i.reassignEventFace(r.event.id, e.seg, e.label, t, a) > 0 && (n && (G.value = {
348
+ seg: e.seg,
349
+ label: t || "unknown",
350
+ attrIndex: e.attrIndex
351
+ }), ce(r.event.id)), s.add({
337
352
  severity: "success",
338
353
  detail: c("views.recordings.reassign_done"),
339
354
  life: 3e3
@@ -341,35 +356,35 @@ var Ue = v({
341
356
  } catch (e) {
342
357
  s.add({
343
358
  severity: "error",
344
- detail: Oe(e),
359
+ detail: Te(e),
345
360
  life: 5e3
346
361
  });
347
362
  } finally {
348
- H.value = !1;
363
+ W.value = !1;
349
364
  }
350
365
  }
351
366
  }
352
- async function $t() {
353
- let e = !W.value;
354
- V.value = e;
367
+ async function en() {
368
+ let e = !yt.value;
369
+ U.value = e;
355
370
  try {
356
371
  await m.setEventFavorite(r.event.id, e);
357
372
  } catch (e) {
358
- V.value = null, s.add({
373
+ U.value = null, s.add({
359
374
  severity: "error",
360
- detail: Oe(e),
375
+ detail: Te(e),
361
376
  life: 5e3
362
377
  });
363
378
  }
364
379
  }
365
- async function en() {
366
- if (B.value) return;
380
+ async function tn() {
381
+ if (V.value) return;
367
382
  let e = v.value;
368
383
  if (e?.nvrExport && r.event.endTime) {
369
- B.value = !0;
384
+ V.value = !0;
370
385
  try {
371
386
  let t = await e.nvrExport(r.event.cameraId, r.event.startTime * 1e3, r.event.endTime * 1e3);
372
- await ye({
387
+ await fe({
373
388
  url: t.url,
374
389
  filename: t.filename
375
390
  });
@@ -377,41 +392,46 @@ var Ue = v({
377
392
  o.error("Download failed:", e), s.add({
378
393
  severity: "error",
379
394
  summary: c("views.recordings.download_failed"),
380
- detail: Oe(e),
395
+ detail: Te(e),
381
396
  life: 5e3
382
397
  });
383
398
  } finally {
384
- B.value = !1;
399
+ V.value = !1;
385
400
  }
386
401
  }
387
402
  }
388
- return ee(() => m.storeVersion.value, () => {
403
+ return ee(Y, (e) => {
404
+ let t = G.value;
405
+ if (!t) return;
406
+ let n = e.findIndex((e) => e.crop && e.faceSeg === t.seg && (t.attrIndex === void 0 ? e.label === t.label : e.attrIndex === t.attrIndex));
407
+ n < 0 || (H.value = n, G.value = void 0);
408
+ }), ee(() => m.storeVersion.value, () => {
389
409
  let e = m.getCachedThumbnails(r.event.id);
390
410
  if (!e) {
391
- R.value && Jt();
411
+ z.value && Yt();
392
412
  return;
393
413
  }
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);
414
+ z.value = e, P(e, r.event, "card").url && (B.value = "loaded");
415
+ }), Ne(ze, (e) => {
416
+ let t = e[0]?.contentRect.width ?? 0, n = Math.round(t / gt) * gt;
417
+ n !== _t.value && (_t.value = n);
398
418
  }), re(() => {
399
- te === "loading" && Jt();
419
+ te === "loading" && Yt();
400
420
  }), (t, r) => {
401
- let i = he, o = de, s = ie, c = xe, l = je, p = Te, m = Me, h = ve;
421
+ let i = se, o = de, s = ie, c = ve, l = Oe, p = ke, m = _e, h = je;
402
422
  return d(), T("div", {
403
423
  ref_key: "rootRef",
404
424
  ref: N,
405
425
  class: "recording-card relative group cursor-pointer",
406
- onClickCapture: zt,
407
- onClick: Yt,
408
- onMouseenter: Kt,
409
- onMouseleave: qt
426
+ onClickCapture: Bt,
427
+ onClick: Xt,
428
+ onMouseenter: qt,
429
+ onMouseleave: Jt
410
430
  }, [k("div", {
411
431
  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
432
  style: { "aspect-ratio": "1/1" }
413
433
  }, [
414
- S(z) === "loading" ? (d(), T("div", Ke)) : S(Et) ? (d(), y(i, {
434
+ S(B) === "loading" ? (d(), T("div", We)) : S(Et) ? (d(), y(i, {
415
435
  key: 1,
416
436
  src: S(Et),
417
437
  alt: S(Ot),
@@ -422,73 +442,73 @@ var Ue = v({
422
442
  "src",
423
443
  "alt",
424
444
  "image-style"
425
- ])) : (d(), T("div", qe, [(d(), y(_(S(w)[S(St)] ?? S(w).motion), { class: "w-10 h-10 text-white/20" }))])),
445
+ ])) : (d(), T("div", Ge, [(d(), y(_(S(w)[S(Ct)] ?? S(w).motion), { class: "w-10 h-10 text-white/20" }))])),
426
446
  S(A) ? ne((d(), T("canvas", {
427
447
  key: 3,
428
448
  ref_key: "previewCanvasRef",
429
- ref: Fe,
449
+ ref: Pe,
430
450
  class: "absolute inset-0 w-full h-full object-cover pointer-events-none z-[1]"
431
- }, null, 512)), [[n, S(L)]]) : b("", !0),
451
+ }, null, 512)), [[n, S(R)]]) : b("", !0),
432
452
  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", {
453
+ k("div", Ke, [k("div", qe, [
454
+ k("p", Je, f(S(Ot)), 1),
455
+ S(J) ? (d(), T("span", Ye, f(S(J)), 1)) : b("", !0),
456
+ S(bt) ? (d(), T("span", {
437
457
  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", {
458
+ class: g(["text-[10px] font-bold text-white px-1.5 py-0.5 rounded-md shrink-0", S(bt).color])
459
+ }, f(S(bt).label), 3)) : b("", !0),
460
+ S(vt) && !e.selectionMode ? (d(), T("button", {
441
461
  key: 2,
442
- title: S(W) ? t.$t("views.recordings.unfavorite") : t.$t("views.recordings.favorite"),
462
+ title: S(yt) ? t.$t("views.recordings.unfavorite") : t.$t("views.recordings.favorite"),
443
463
  type: "button",
444
464
  class: "card-icon-button w-5 h-5 shrink-0",
445
- onClick: a($t, ["stop"]),
465
+ onClick: a(en, ["stop"]),
446
466
  onMouseenter: $
447
- }, [S(W) ? (d(), y(o, {
467
+ }, [S(yt) ? (d(), y(o, {
448
468
  key: 0,
449
469
  class: "w-3 h-3 text-yellow-400"
450
470
  })) : (d(), y(s, {
451
471
  key: 1,
452
472
  class: "w-3 h-3 text-white"
453
- }))], 40, Qe)) : b("", !0),
454
- S(Rt).length > 0 && !e.selectionMode ? (d(), T("button", {
473
+ }))], 40, Xe)) : b("", !0),
474
+ S(zt).length > 0 && !e.selectionMode ? (d(), T("button", {
455
475
  key: 3,
456
476
  title: t.$t("views.recordings.more_actions"),
457
477
  type: "button",
458
478
  class: "card-icon-button w-5 h-5 shrink-0",
459
- disabled: S(B) || S(H),
460
- onClick: a(Xt, ["stop"]),
479
+ disabled: S(V) || S(W),
480
+ onClick: a(Zt, ["stop"]),
461
481
  onMouseenter: $
462
- }, [S(B) || S(H) ? (d(), y(c, {
482
+ }, [S(V) || S(W) ? (d(), y(c, {
463
483
  key: 0,
464
484
  class: "w-3 h-3 text-white"
465
485
  })) : (d(), y(l, {
466
486
  key: 1,
467
487
  class: "w-3 h-3 text-white"
468
- }))], 40, $e)) : b("", !0)
469
- ]), k("p", et, f(S(Pt)), 1)]),
488
+ }))], 40, Ze)) : b("", !0)
489
+ ]), k("p", Qe, f(S(Ft)), 1)]),
470
490
  S(Y).length > 1 ? (d(), T(D, { key: 4 }, [k("button", {
471
491
  type: "button",
472
492
  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
493
  "aria-label": t.$t("views.recordings.prev_image"),
474
- onClick: r[0] ||= a((e) => Ht(-1), ["stop"]),
494
+ onClick: r[0] ||= a((e) => Ut(-1), ["stop"]),
475
495
  onMouseenter: $
476
- }, [M(p, { class: "w-5 h-5 text-white" })], 40, tt), k("button", {
496
+ }, [M(p, { class: "w-5 h-5 text-white" })], 40, $e), k("button", {
477
497
  type: "button",
478
498
  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
499
  "aria-label": t.$t("views.recordings.next_image"),
480
- onClick: r[1] ||= a((e) => Ht(1), ["stop"]),
500
+ onClick: r[1] ||= a((e) => Ut(1), ["stop"]),
481
501
  onMouseenter: $
482
- }, [M(m, { class: "w-5 h-5 text-white" })], 40, nt)], 64)) : b("", !0),
502
+ }, [M(m, { class: "w-5 h-5 text-white" })], 40, et)], 64)) : b("", !0),
483
503
  S(Dt) ? (d(), T("div", {
484
504
  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),
505
+ 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"])
506
+ }, [k("span", tt, f(S(Dt)), 1)], 2)) : b("", !0),
487
507
  k("div", {
488
508
  ref_key: "footerRef",
489
- ref: Be,
509
+ ref: ze,
490
510
  class: "absolute bottom-2 left-2 right-2 flex items-center justify-between gap-2 z-[3]"
491
- }, [k("div", it, [
511
+ }, [k("div", nt, [
492
512
  e.selectionMode ? (d(), T("div", {
493
513
  key: 0,
494
514
  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 +520,36 @@ var Ue = v({
500
520
  key: e,
501
521
  class: "flex items-center justify-center w-5 h-5 rounded-md bg-black/60 shrink-0"
502
522
  }, [(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", {
523
+ S(Mt).length > 0 ? (d(), T("span", {
504
524
  key: 1,
505
- title: S(jt).join(", "),
525
+ title: S(Mt).join(", "),
506
526
  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", {
527
+ }, " +" + f(S(Mt).length), 9, rt)) : b("", !0)
528
+ ]), 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
529
  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)
530
+ class: g(["w-7 h-7 rounded overflow-hidden border bg-neutral-800 cursor-pointer", t === S(X) ? "border-primary/80" : "border-white/20"]),
531
+ onClick: (e) => Wt(t, e)
512
532
  }, [k("img", {
513
533
  src: e.url,
514
534
  alt: e.type,
515
535
  decoding: "async",
516
536
  loading: "lazy",
517
537
  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, {
538
+ }, null, 8, ot)], 10, at))), 128)), S(Pt) > 0 ? (d(), T("span", st, "+" + f(S(Pt)), 1)) : b("", !0)])) : b("", !0)], 512),
539
+ S(A) && S(R) && S(A).isLoading.value ? (d(), T("div", ct, [M(c, { class: "w-7 h-7 text-white" })])) : b("", !0),
540
+ S(Lt) ? (d(), T("div", lt, [k("span", ut, f(S(Lt)), 1)])) : b("", !0)
541
+ ], 2), S(I) ? (d(), y(oe, {
522
542
  key: 0,
523
543
  ref_key: "cardMenuRef",
524
- ref: P,
525
- items: S(Rt),
544
+ ref: F,
545
+ items: S(zt),
526
546
  popover: { pt: { content: { class: "p-0! rounded-xl! overflow-hidden!" } } }
527
547
  }, null, 8, ["items"])) : b("", !0)], 544);
528
548
  };
529
549
  }
530
- }), [["__scopeId", "data-v-22b538a5"]]), yt = {
550
+ }), [["__scopeId", "data-v-3cd39ea4"]]), _t = {
531
551
  name: "VirtualScroller",
532
- components: { SpinnerIcon: Be },
552
+ components: { SpinnerIcon: ze },
533
553
  extends: {
534
554
  name: "BaseVirtualScroller",
535
555
  extends: i,
@@ -1039,7 +1059,7 @@ var Ue = v({
1039
1059
  this.resizeListener || (this.resizeListener = this.onResize.bind(this), window.addEventListener("resize", this.resizeListener), window.addEventListener("orientationchange", this.resizeListener));
1040
1060
  },
1041
1061
  bindSizeObserver() {
1042
- this.sizeObserver || !this.element || typeof ResizeObserver > "u" || (this.sizeObserver = new ResizeObserver((e) => {
1062
+ !this.sizeObserver && this.element && typeof ResizeObserver < "u" && (this.sizeObserver = new ResizeObserver((e) => {
1043
1063
  let t = e[0]?.borderBoxSize?.[0];
1044
1064
  this.observedWidth = t ? t.inlineSize : e[0]?.contentRect.width ?? 0, this.observedHeight = t ? t.blockSize : e[0]?.contentRect.height ?? 0;
1045
1065
  }), this.sizeObserver.observe(this.element));
@@ -1089,8 +1109,8 @@ var Ue = v({
1089
1109
  this.content = e;
1090
1110
  }
1091
1111
  }
1092
- }, W = ["tabindex"];
1093
- function G(e, t, n, r, i, a) {
1112
+ }, vt = ["tabindex"];
1113
+ function yt(e, t, n, r, i, a) {
1094
1114
  let o = E("SpinnerIcon");
1095
1115
  return e.disabled ? (d(), T(D, { key: 1 }, [p(e.$slots, "default"), p(e.$slots, "content", {
1096
1116
  items: e.items,
@@ -1138,15 +1158,15 @@ function G(e, t, n, r, i, a) {
1138
1158
  spin: "",
1139
1159
  class: "p-virtualscroller-loading-icon"
1140
1160
  }, e.ptm("loadingIcon")), null, 16)])], 16)) : b("", !0)
1141
- ], 16, W));
1161
+ ], 16, vt));
1142
1162
  }
1143
- var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1163
+ var bt = /*#__PURE__*/ N(_t, [["render", yt]]), K = {
1144
1164
  aspectRatio: 1,
1145
1165
  gap: 8,
1146
1166
  hasMore: !1,
1147
1167
  loadMore: void 0,
1148
1168
  itemKey: void 0
1149
- }, bt = { class: "recordings-row" }, xt = {
1169
+ }, q = { class: "recordings-row" }, xt = {
1150
1170
  key: 1,
1151
1171
  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
1172
  }, St = /*#__PURE__*/ N(/* @__PURE__ */ A({
@@ -1159,9 +1179,9 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1159
1179
  hasMore: { type: Boolean },
1160
1180
  loadMore: { type: Function },
1161
1181
  itemKey: { type: Function }
1162
- }, q),
1182
+ }, K),
1163
1183
  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(() => {
1184
+ 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
1185
  let e = i.value;
1166
1186
  return e ? Math.max(1, Math.floor((e + n.gap) / (n.minItemWidth + n.gap))) : 0;
1167
1187
  }), g = C(() => {
@@ -1219,7 +1239,7 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1219
1239
  scrollToTop: ie,
1220
1240
  scrollY: o
1221
1241
  }), (e, t) => {
1222
- let n = K, i = xe;
1242
+ let n = bt, i = ve;
1223
1243
  return d(), T("div", {
1224
1244
  ref_key: "containerRef",
1225
1245
  ref: r,
@@ -1235,7 +1255,7 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1235
1255
  class: "recordings-scroll",
1236
1256
  onScroll: re
1237
1257
  }, {
1238
- item: w(({ item: t }) => [k("div", bt, [(d(!0), T(D, null, u(t, (t) => (d(), T("div", {
1258
+ item: w(({ item: t }) => [k("div", q, [(d(!0), T(D, null, u(t, (t) => (d(), T("div", {
1239
1259
  key: E(t),
1240
1260
  class: "recordings-cell"
1241
1261
  }, [p(e.$slots, "item", { item: t }, void 0, !0)]))), 128))])]),
@@ -1255,7 +1275,7 @@ var K = /*#__PURE__*/ N(yt, [["render", G]]), q = {
1255
1275
  }), [["__scopeId", "data-v-a672f3ff"]]);
1256
1276
  //#endregion
1257
1277
  //#region src/components/CuiRecordings/ungrouped.ts
1258
- function J(e) {
1278
+ function Ct(e) {
1259
1279
  if (e.episode) return e.episode.endTime;
1260
1280
  if (e.segIndex !== void 0) {
1261
1281
  let t = e.event.segments?.[e.segIndex];
@@ -1263,26 +1283,30 @@ function J(e) {
1263
1283
  }
1264
1284
  return e.event.thumbnailAt ?? e.event.startTime;
1265
1285
  }
1266
- function Y(e) {
1267
- let t = [];
1268
- for (let n of e) {
1269
- let e = n.segments ?? [];
1286
+ function J(e, t) {
1287
+ return Ct(t) - Ct(e);
1288
+ }
1289
+ function Y(e, t = !1) {
1290
+ let n = [];
1291
+ for (let t of e) {
1292
+ let e = t.segments ?? [];
1270
1293
  if (e.length <= 1) {
1271
- t.push({
1272
- event: n,
1273
- key: n.id
1294
+ n.push({
1295
+ event: t,
1296
+ key: t.id
1274
1297
  });
1275
1298
  continue;
1276
1299
  }
1277
- e.forEach((e, r) => {
1278
- e && t.push({
1279
- event: n,
1280
- key: `${n.id}:seg:${r}`,
1281
- segIndex: r
1300
+ let r = [];
1301
+ e.forEach((e, n) => {
1302
+ e && r.push({
1303
+ event: t,
1304
+ key: `${t.id}:seg:${n}`,
1305
+ segIndex: n
1282
1306
  });
1283
- });
1307
+ }), n.push(...r.sort(J));
1284
1308
  }
1285
- return t.sort((e, t) => J(t) - J(e)), t;
1309
+ return t ? n : n.sort(J);
1286
1310
  }
1287
1311
  //#endregion
1288
- export { U as i, J as n, St as r, Y as t };
1312
+ export { G as i, J as n, St as r, Y as t };