@camera.ui/server 2.2.5-beta.4 → 2.2.6

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 (664) hide show
  1. package/dist/interface/assets/{404-YZOLos9r.js → 404-BLVuKvLk.js} +1 -1
  2. package/dist/interface/assets/{About-HtxMc8JZ.js → About-C-AJ0jfI.js} +1 -1
  3. package/dist/interface/assets/Assistant-BJKGIvVo.js +1 -0
  4. package/dist/interface/assets/{Assistant-BMscGKnc.css → Assistant-BQ6Ld-bt.css} +1 -1
  5. package/dist/interface/assets/{Automation-D3DcUyui.js → Automation-C95DzuZb.js} +3 -3
  6. package/dist/interface/assets/{AutomationImport-Dp_hT6hQ.js → AutomationImport-C8VYjDzf.js} +2 -2
  7. package/dist/interface/assets/{AutomationStore-BKR7GXMk.js → AutomationStore-CE4PKRGd.js} +2 -2
  8. package/dist/interface/assets/{AutomationStoreDetail-B9yh51WQ.js → AutomationStoreDetail-DavWfjLv.js} +2 -2
  9. package/dist/interface/assets/Automations-BOP_17Ri.js +2 -0
  10. package/dist/interface/assets/Camera-BW9ikKqh.css +1 -0
  11. package/dist/interface/assets/Camera-C5S7eI9a.js +2 -0
  12. package/dist/interface/assets/{CameraConsole-BI93OaRt.js → CameraConsole-C4AmtcrM.js} +1 -1
  13. package/dist/interface/assets/{Cameras-Ctub8sVt.js → Cameras-DR577Bno.js} +2 -2
  14. package/dist/interface/assets/{Camview-CZct5cnP.css → Camview-Bri_T7Tq.css} +1 -1
  15. package/dist/interface/assets/Camview-CHxKB41T.js +1 -0
  16. package/dist/interface/assets/{CertificateUpload-xW55NA1Q.js → CertificateUpload-BYFKZCP9.js} +1 -1
  17. package/dist/interface/assets/Config-BrDDGWpr.js +2 -0
  18. package/dist/interface/assets/{ConfigActionAssistant-B488rOp5.js → ConfigActionAssistant-YtCVI8LZ.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionCameraControl-ZMUuBxOs.js → ConfigActionCameraControl-Dg_1zOYt.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionDelay-BJ11xvOW.js → ConfigActionDelay-_EqbfWgo.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionHttp-DOUo69OR.js → ConfigActionHttp-BzwLv2tn.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionImageInput-BMzuVZW9.js → ConfigActionImageInput-CLdY2sV4.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionMqtt-Co_uksca.js → ConfigActionMqtt-lGqYshl3.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotification-CcZkstYx.js → ConfigActionNotification-D5Dj3EoU.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionNotificationControl--VeucoTw.js → ConfigActionNotificationControl-Dy5fKamr.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionOutput-CyDa1LGA.js → ConfigActionOutput-DzsQ31L0.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionPlugin-Kfg3ZEQF.js → ConfigActionPlugin-BFrBcXvL.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSensor-DhAF0HPw.js → ConfigActionSensor-CX8ePlan.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionSnapshot-zMe3SPvW.js → ConfigActionSnapshot-BATLRmh6.js} +1 -1
  30. package/dist/interface/assets/{ConfigActionVariable-BE5q3NwY.js → ConfigActionVariable-Dgn5jvaR.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionIfElse-BNIRtSVD.js → ConfigConditionIfElse-D5IIBjyk.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSensorState-DTNd-SzI.js → ConfigConditionSensorState-C0JxBWdG.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionSwitch-BU5wWMU1.js → ConfigConditionSwitch-Brlgd0XP.js} +1 -1
  34. package/dist/interface/assets/{ConfigConditionTime-KXTCIVIV.js → ConfigConditionTime-CM4bSMyU.js} +1 -1
  35. package/dist/interface/assets/{ConfigSensorValueInput-BC1FpMm-.js → ConfigSensorValueInput-CtuH8dCa.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerDetection-hIN1hi53.js → ConfigTriggerDetection-DsL7lLQl.js} +1 -1
  37. package/dist/interface/assets/ConfigTriggerGeofence-CAGIk1_W.js +1 -0
  38. package/dist/interface/assets/{ConfigTriggerManual-C5vwxS-e.js → ConfigTriggerManual-DgkR-GWy.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerMqtt-B4PtWC3E.js → ConfigTriggerMqtt-B_iFalAQ.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSchedule-BZzUdGBa.js → ConfigTriggerSchedule-E_QWfNKy.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSensor-D18nwMsj.js → ConfigTriggerSensor-hYNbLXUu.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerSystem-BhygWLB4.js → ConfigTriggerSystem-DR1EFpE9.js} +1 -1
  43. package/dist/interface/assets/{ConfigTriggerWebhook-yyuBuhLD.js → ConfigTriggerWebhook-C-B5GGFH.js} +1 -1
  44. package/dist/interface/assets/Console-cIr6lYux.js +1 -0
  45. package/dist/interface/assets/CuiAssistantConversation-Bigl43Ph.js +5 -0
  46. package/dist/interface/assets/CuiAssistantConversation-BmshW6Vc.css +1 -0
  47. package/dist/interface/assets/CuiAutomationRunsDialog-Ci7SWAml.js +1 -0
  48. package/dist/interface/assets/{CuiBottomSheet-DWefGWK2.js → CuiBottomSheet-C2sM2E3M.js} +1 -1
  49. package/dist/interface/assets/CuiBottomSheet-ViBOgklN.js +1 -0
  50. package/dist/interface/assets/CuiCameraPipCard-wdK7xir-.js +1 -0
  51. package/dist/interface/assets/CuiCameraRecordings-BB7bF67B.js +1 -0
  52. package/dist/interface/assets/{CuiCameraShares-DcqOcePX.js → CuiCameraShares-B6jdUBVm.js} +1 -1
  53. package/dist/interface/assets/CuiCameraTable-CHnQFkce.js +1 -0
  54. package/dist/interface/assets/{CuiCameraTable-BOkfp_5M.js → CuiCameraTable-CpBo25Qc.js} +2 -2
  55. package/dist/interface/assets/{CuiChartTable-DP38uBwK.js → CuiChartTable-dIcxGtfl.js} +1 -1
  56. package/dist/interface/assets/{CuiConsole-C7xE_nQg.js → CuiConsole-BGptpT6r.js} +2 -2
  57. package/dist/interface/assets/CuiDataTable-CQmp5mAy.js +1 -0
  58. package/dist/interface/assets/CuiLightControl-wbZi3fA1.js +1 -0
  59. package/dist/interface/assets/{CuiList-DJp0__mV.js → CuiList-Dsu5m0TA.js} +1 -1
  60. package/dist/interface/assets/{CuiMarkdownContent-BUYtK_wD.js → CuiMarkdownContent-BYBQX_aF.js} +1 -1
  61. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +1 -0
  62. package/dist/interface/assets/CuiPluginCard-BjIc7It9.js +2 -0
  63. package/dist/interface/assets/{CuiPluginCategoryChip-Ch_upS6Y.js → CuiPluginCategoryChip-BtJ_6_gN.js} +1 -1
  64. package/dist/interface/assets/{CuiPluginOAuthButton-DEQ9xILN.js → CuiPluginOAuthButton-Duf35I8K.js} +2 -2
  65. package/dist/interface/assets/{CuiPluginTrustBadge-sVWdvHcM.js → CuiPluginTrustBadge-jxXeRTH2.js} +1 -1
  66. package/dist/interface/assets/{CuiQRCode-DqSF4SkD.js → CuiQRCode-BNchrpoB.js} +1 -1
  67. package/dist/interface/assets/CuiSchema-DGTMkVSe.js +1 -0
  68. package/dist/interface/assets/{CuiTopNavbarItem-B_KWykgq.js → CuiTopNavbarItem-CHtLvn53.js} +1 -1
  69. package/dist/interface/assets/Faces-p18jNfXl.js +1 -0
  70. package/dist/interface/assets/FirstSteps-HzaBMDbH.js +1 -0
  71. package/dist/interface/assets/Floorplan-DYyEx7WO.js +1 -0
  72. package/dist/interface/assets/Instances-Dl-6rL5O.js +1 -0
  73. package/dist/interface/assets/{Logs-BSPT80vP.js → Logs-DsJkuQFq.js} +2 -2
  74. package/dist/interface/assets/{Menu-HHtuhIS2.js → Menu-D_woMkjL.js} +1 -1
  75. package/dist/interface/assets/Metrics-ChVnC6f6.css +1 -0
  76. package/dist/interface/assets/Metrics-l3UwykCM.js +12 -0
  77. package/dist/interface/assets/{OAuthDeviceFlow-Bn1nlWNa.js → OAuthDeviceFlow-CXfILAE1.js} +1 -1
  78. package/dist/interface/assets/Plugin-Ldj3HygQ.js +1 -0
  79. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +1 -0
  80. package/dist/interface/assets/{PluginConsole-Cv-uhnPY.js → PluginConsole-C96m5zKy.js} +1 -1
  81. package/dist/interface/assets/{PluginDetail-cpOz7FkA.js → PluginDetail-CnfaI1vh.js} +2 -2
  82. package/dist/interface/assets/{PluginSchema-DW3TGeTM.js → PluginSchema-u1bqXU29.js} +1 -1
  83. package/dist/interface/assets/PluginSearch-BiXG3Xk2.js +2 -0
  84. package/dist/interface/assets/PluginSearch-BuE7we1T.js +1 -0
  85. package/dist/interface/assets/{PluginUpdateProgress-n6q6vzyd.js → PluginUpdateProgress-BT4lN9HT.js} +1 -1
  86. package/dist/interface/assets/Plugins-Csx6AXaW.js +1 -0
  87. package/dist/interface/assets/{RecentEventsFilter-CTR5JK_P.js → RecentEventsFilter-Kp_lTOuG.js} +1 -1
  88. package/dist/interface/assets/Recordings-BEKAn6QK.css +1 -0
  89. package/dist/interface/assets/Recordings-D0KTY5cI.js +1 -0
  90. package/dist/interface/assets/SensorEdit-zs-f_o1N.js +1 -0
  91. package/dist/interface/assets/{SensorHistory-9CdOpCPs.js → SensorHistory-Cet35_RO.js} +1 -1
  92. package/dist/interface/assets/Sensors-BLAoalEt.js +2 -0
  93. package/dist/interface/assets/Settings-C-LCDIbK.js +1 -0
  94. package/dist/interface/assets/SettingsAccount-BsN7jGmo.js +1 -0
  95. package/dist/interface/assets/SettingsAccount-DuVyCSE-.js +1 -0
  96. package/dist/interface/assets/{SettingsAppearance-BY1xQMx4.js → SettingsAppearance-BS4EQNjH.js} +1 -1
  97. package/dist/interface/assets/SettingsAppearance-DQcGbYbV.js +1 -0
  98. package/dist/interface/assets/SettingsAssistant-B0PF3Rdg.css +1 -0
  99. package/dist/interface/assets/SettingsAssistant-DViJklFd.js +1 -0
  100. package/dist/interface/assets/{SettingsBackup-D_weokqu.js → SettingsBackup-DBlV1gej.js} +1 -1
  101. package/dist/interface/assets/{SettingsList-Bq24WTDU.js → SettingsList-D8eSwbBY.js} +1 -1
  102. package/dist/interface/assets/SettingsMqtt-JoszJJgV.js +1 -0
  103. package/dist/interface/assets/{SettingsNotifications-8TZOUxg2.js → SettingsNotifications-3veSrxa_.js} +1 -1
  104. package/dist/interface/assets/{SettingsPermissions-M8u_jrN0.js → SettingsPermissions-CJiz0Z7B.js} +1 -1
  105. package/dist/interface/assets/{SettingsRecordings-C1Kp5xW_.js → SettingsRecordings-CLz9Zp47.js} +1 -1
  106. package/dist/interface/assets/SettingsRemote-DUyl8k7I.js +2 -0
  107. package/dist/interface/assets/{SettingsSystem-Cetu2faJ.js → SettingsSystem-txTFGomQ.js} +2 -2
  108. package/dist/interface/assets/{SettingsUsers-CDwtQLdV.js → SettingsUsers-CUp6vQPc.js} +1 -1
  109. package/dist/interface/assets/Terminal-hln2UuSR.js +4 -0
  110. package/dist/interface/assets/Training-Bkn52mPJ.css +1 -0
  111. package/dist/interface/assets/Training-D6lhvUf-.js +1 -0
  112. package/dist/interface/assets/Updates-BwSWt9w7.js +2 -0
  113. package/dist/interface/assets/{VariableInput-BxPj5wo6.js → VariableInput-183LygmK.js} +1 -1
  114. package/dist/interface/assets/{VariableSuggestions-CbizvAkz.js → VariableSuggestions-DwLtlzVz.js} +1 -1
  115. package/dist/interface/assets/{VersionsHandler-CePyEUVO.js → VersionsHandler-DkbkcypK.js} +2 -2
  116. package/dist/interface/assets/{VirtualSensorCreate-D_GVoeL7.js → VirtualSensorCreate-Bn4tgdxA.js} +1 -1
  117. package/dist/interface/assets/Workers-B6b15izn.js +2 -0
  118. package/dist/interface/assets/{account-Bu30He0P.js → account-DwW7pBOb.js} +1 -1
  119. package/dist/interface/assets/{alert-circle-D2fAQwTX.js → alert-circle-BdUVAt1B.js} +1 -1
  120. package/dist/interface/assets/{alert-outline-D7zaSJH_.js → alert-outline-IRxYbw0j.js} +1 -1
  121. package/dist/interface/assets/api-C9mnOxie.js +4 -0
  122. package/dist/interface/assets/api-Cj9a6qPu.css +2 -0
  123. package/dist/interface/assets/{api-DW2niHRN.js → api-h4HRB3ef.js} +1 -1
  124. package/dist/interface/assets/{arrow-left-BGLyEqqa.js → arrow-left-Bk-ZrOVr.js} +1 -1
  125. package/dist/interface/assets/assistant-4hYyIu6D.js +1 -0
  126. package/dist/interface/assets/{assistantModels-D0soYqq7.js → assistantModels-BsSgRsws.js} +1 -1
  127. package/dist/interface/assets/{auth-Dc8bUpc-.js → auth-DFesRtwI.js} +1 -1
  128. package/dist/interface/assets/{automations-DXrjbArj.js → automations-D2bnX8uw.js} +1 -1
  129. package/dist/interface/assets/{back-filled-BPBVnQjx.js → back-filled-D-X19YMO.js} +1 -1
  130. package/dist/interface/assets/{bell-ring-CyCFPUL_.js → bell-ring-DreEHgoT.js} +1 -1
  131. package/dist/interface/assets/{brain-CIJB1ree.js → brain-DuDAg544.js} +1 -1
  132. package/dist/interface/assets/{cameraSources-QJfUDOQJ.js → cameraSources-DmVZWs4-.js} +1 -1
  133. package/dist/interface/assets/{cctv-D6kxZ-lp.js → cctv-DM-C_8_6.js} +1 -1
  134. package/dist/interface/assets/{check-circle-DHAAn6A6.js → check-circle-Bevuw8-0.js} +1 -1
  135. package/dist/interface/assets/{check-circle-outline-BbqeKfIK.js → check-circle-outline-aMxkvksr.js} +1 -1
  136. package/dist/interface/assets/{chevron-down-ZYTrU871.js → chevron-down-CCFn9Z56.js} +1 -1
  137. package/dist/interface/assets/{chevron-up-LQXNz9CE.js → chevron-up-CSImUM3_.js} +1 -1
  138. package/dist/interface/assets/{clock-outline-CKTiLKoR.js → clock-outline-DH3WIEJt.js} +1 -1
  139. package/dist/interface/assets/{close-BbEPZQqa.js → close-CMxyM4v9.js} +1 -1
  140. package/dist/interface/assets/{close-circle-BSUSUs4K.js → close-circle-CfgJCZ9A.js} +1 -1
  141. package/dist/interface/assets/{cloud-check-BTGbrAQ_.js → cloud-check-CbdFLIdR.js} +1 -1
  142. package/dist/interface/assets/cloudHandoff-Ba98bzeq.js +1 -0
  143. package/dist/interface/assets/{config-CiQDwB4t.js → config-DDaCrMSU.js} +1 -1
  144. package/dist/interface/assets/{content-copy-V0DW9ZbH.js → content-copy-Bz49QPOI.js} +1 -1
  145. package/dist/interface/assets/{copy-DsmMEtSH.js → copy-DA6QQHRt.js} +1 -1
  146. package/dist/interface/assets/{cube-scan-DGhUFV1x.js → cube-scan-IiH8zwm2.js} +1 -1
  147. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +1 -0
  148. package/dist/interface/assets/{delete-CY8fsIW6.js → delete-Btu-UVx9.js} +1 -1
  149. package/dist/interface/assets/{dist-DNyx_J8o.js → dist-D_qWDAKp.js} +1 -1
  150. package/dist/interface/assets/{dots-vertical-pP1vP0Qa.js → dots-vertical-D496SIss.js} +1 -1
  151. package/dist/interface/assets/{download-CyjJ7yJW.js → download-BSC7lwq_.js} +1 -1
  152. package/dist/interface/assets/esm-Bn9gXwX4.js +1 -0
  153. package/dist/interface/assets/esm-BzM6y2-F.js +1 -0
  154. package/dist/interface/assets/esm-CP3JWrtj.js +1 -0
  155. package/dist/interface/assets/esm-CjAXkqCf.js +1 -0
  156. package/dist/interface/assets/esm-Cqxk-j1S.js +1 -0
  157. package/dist/interface/assets/esm-DFHd3JNU.js +1 -0
  158. package/dist/interface/assets/esm-DfMLJtug.js +1 -0
  159. package/dist/interface/assets/esm-DhDrpq7a.js +1 -0
  160. package/dist/interface/assets/esm-DvhM-SOd.js +1 -0
  161. package/dist/interface/assets/esm-G63bqygQ.js +1 -0
  162. package/dist/interface/assets/esm-Gn-Y59hU.js +1 -0
  163. package/dist/interface/assets/esm-KJSOz2vj.js +1 -0
  164. package/dist/interface/assets/esm-Ryfc94Tm.js +1 -0
  165. package/dist/interface/assets/esm-rSfI5Poy.js +1 -0
  166. package/dist/interface/assets/{eventIcons-cdzqQc0W.js → eventIcons-UQutPG3p.js} +1 -1
  167. package/dist/interface/assets/{eye-off-JCu1iUer.js → eye-off-CSU0U8g7.js} +1 -1
  168. package/dist/interface/assets/{eye-off-outline-GErp76H2.js → eye-off-outline-DCxLRGo_.js} +1 -1
  169. package/dist/interface/assets/{flowSchema-BRTZHQ1w.js → flowSchema-YJtAu9gB.js} +1 -1
  170. package/dist/interface/assets/{help-circle-outline-G43EJuch.js → help-circle-outline-Cr_yNhPi.js} +1 -1
  171. package/dist/interface/assets/{history-CNJREqJG.js → history-anuCbp1T.js} +1 -1
  172. package/dist/interface/assets/{home-B-_OQpZ6.js → home-N3bDR1vX.js} +1 -1
  173. package/dist/interface/assets/{information-outline-Blt4EtWJ.js → information-outline-CMWIvLNB.js} +1 -1
  174. package/dist/interface/assets/{intercomService-BnA-FQ0Q.js → intercomService-CjoJaOZ7.js} +1 -1
  175. package/dist/interface/assets/{lan-C3jliANx.js → lan-CYXjdk7L.js} +1 -1
  176. package/dist/interface/assets/main-C796FmqQ.js +3 -0
  177. package/dist/interface/assets/{main-BoGhBedC.css → main-DVa5U7UB.css} +1 -1
  178. package/dist/interface/assets/{microphone-B6xc9JQ2.js → microphone-BB2pATI_.js} +1 -1
  179. package/dist/interface/assets/{minus-BI5qXFwJ.js → minus-BCp3ZNKO.js} +1 -1
  180. package/dist/interface/assets/{mqtt-iD9XHYO_.js → mqtt-DGBPptzB.js} +1 -1
  181. package/dist/interface/assets/native-CZJE8bTs.js +1 -0
  182. package/dist/interface/assets/native-DKZwialB.js +1 -0
  183. package/dist/interface/assets/{nodeDefinitions-Dop49tx8.js → nodeDefinitions-ByrqsENY.js} +1 -1
  184. package/dist/interface/assets/{notifications-CbAJX7RF.js → notifications-5yeK345h.js} +1 -1
  185. package/dist/interface/assets/{pause-DKzvPG2b.js → pause-BQlxwAW2.js} +1 -1
  186. package/dist/interface/assets/{pencil-DKbi9SsG.js → pencil-CDsNnEXi.js} +1 -1
  187. package/dist/interface/assets/{pencil-outline-CD3Xv98d.js → pencil-outline-CIQL5Kui.js} +1 -1
  188. package/dist/interface/assets/plugin-DSEMkqaK.js +1 -0
  189. package/dist/interface/assets/{plugins-eIUrXNeM.js → plugins-BTOdE_zv.js} +1 -1
  190. package/dist/interface/assets/{plus-CHPYoMO_.js → plus-Bp4q9G7S.js} +1 -1
  191. package/dist/interface/assets/{plus--kDl8ben.js → plus-CySoovdr.js} +1 -1
  192. package/dist/interface/assets/{power-C9wmNlFS.js → power-WmBLDR0-.js} +1 -1
  193. package/dist/interface/assets/{radar-B3ra28GD.js → radar-CyYAmume.js} +1 -1
  194. package/dist/interface/assets/{refresh-DfqyhMOh.js → refresh-CHTA3jVN.js} +1 -1
  195. package/dist/interface/assets/{restore-FMacmqd_.js → restore-C8RNM5yX.js} +1 -1
  196. package/dist/interface/assets/{rooms-BqPyo8jc.js → rooms-BCdm6IAx.js} +1 -1
  197. package/dist/interface/assets/{round-alt-arrow-left-bold-56eF9Bol.js → round-alt-arrow-left-bold-Gh5mi_yR.js} +1 -1
  198. package/dist/interface/assets/{search-BXbDWhLk.js → search-BajCVmOI.js} +1 -1
  199. package/dist/interface/assets/sensorIcons-5Ynqwo3e.js +1 -0
  200. package/dist/interface/assets/{sensorSlots-BZCXtnb6.js → sensorSlots-BF70tpV7.js} +1 -1
  201. package/dist/interface/assets/{sensors-DttBNEEt.js → sensors-CeFEEz8r.js} +1 -1
  202. package/dist/interface/assets/{server-DUFhf2c_.js → server-bhW2Mw4D.js} +1 -1
  203. package/dist/interface/assets/{settings-Cw63SIJl.js → settings-DnksaK7m.js} +1 -1
  204. package/dist/interface/assets/{source-branch-oyzrlfCD.js → source-branch-CzqIPffP.js} +1 -1
  205. package/dist/interface/assets/{theme-BMmjtQ4w.js → theme-DF_XA58O.js} +1 -1
  206. package/dist/interface/assets/{trash-2-BQc04l9M.js → trash-2-DJeEhHf4.js} +1 -1
  207. package/dist/interface/assets/{trash-can-outline-Bk5eENNM.js → trash-can-outline-DrT6iw7I.js} +1 -1
  208. package/dist/interface/assets/{trash-fill-CXk8BmtF.js → trash-fill-Bb_-UicM.js} +1 -1
  209. package/dist/interface/assets/{trash2-2rUvghml.js → trash2-Dsl8gfxq.js} +1 -1
  210. package/dist/interface/assets/{types-CXw7CEzu.js → types-ArGM5-5O.js} +1 -1
  211. package/dist/interface/assets/types-BcAxmlqC.js +1 -0
  212. package/dist/interface/assets/{types-DWTSNJ79.js → types-CklFkUXk.js} +1 -1
  213. package/dist/interface/assets/{undo-Dcf7vcsv.js → undo-DoqJW-k7.js} +1 -1
  214. package/dist/interface/assets/{ungrouped-DHMJ9Rg1.css → ungrouped-BnQIcSQd.css} +1 -1
  215. package/dist/interface/assets/ungrouped-CkIlDUwl.js +1 -0
  216. package/dist/interface/assets/{updates-TIPWXKzL.js → updates-D3x_kPMM.js} +1 -1
  217. package/dist/interface/assets/{upload-nnbfDypK.js → upload-C3w1XH-o.js} +1 -1
  218. package/dist/interface/assets/{upload-B-ZYPekV.js → upload-DtIcwiNC.js} +1 -1
  219. package/dist/interface/assets/{useAppVersion-BIz44Bg4.js → useAppVersion-Dcvu95bZ.js} +1 -1
  220. package/dist/interface/assets/{useAssistantActions-CLkkw9kB.js → useAssistantActions-Cc_O6M9_.js} +1 -1
  221. package/dist/interface/assets/useBackupRestore-xp5KhKVn.js +1 -0
  222. package/dist/interface/assets/{useCameraOptions-A97teAIr.js → useCameraOptions-8I4MTDgj.js} +1 -1
  223. package/dist/interface/assets/useKeyboardInset-C0Lp0UcX.js +1 -0
  224. package/dist/interface/assets/{useLogsSocket-BlFxVXjF.js → useLogsSocket-bpOiLgWT.js} +1 -1
  225. package/dist/interface/assets/{useNavLayout-C5obaCNv.js → useNavLayout-Cjf6Da2u.js} +1 -1
  226. package/dist/interface/assets/{usePermissions-C8hB_pG1.js → usePermissions-BXTw4tII.js} +1 -1
  227. package/dist/interface/assets/{usePluginUpdates-DO0-Gk4Q.js → usePluginUpdates-bOMj-IvL.js} +1 -1
  228. package/dist/interface/assets/{usePushRegistration-BUttCraQ.js → usePushRegistration-HOvLuUVP.js} +2 -2
  229. package/dist/interface/assets/{useServerRestart-Cz9eVHUE.js → useServerRestart-CQN4cdHJ.js} +1 -1
  230. package/dist/interface/assets/{useStreamStatus-BhS_MCCB.js → useStreamStatus-Da7c2Wme.js} +1 -1
  231. package/dist/interface/assets/{useTabSwipe-D4k8lm1M.js → useTabSwipe-fFuyJJBQ.js} +1 -1
  232. package/dist/interface/assets/{useUpdateChannel-D9lhfW0y.js → useUpdateChannel-Ca1RX32u.js} +1 -1
  233. package/dist/interface/assets/{useUpdatesSocket-DnH9sON5.js → useUpdatesSocket-DHZNpLQX.js} +1 -1
  234. package/dist/interface/assets/useUserOptions-BQdOB-Dp.js +1 -0
  235. package/dist/interface/assets/{variable-CcE0ZwTr.js → variable-ywTlRfo5.js} +1 -1
  236. package/dist/interface/assets/{vendor-cameraui-QXD8jkcj.js → vendor-cameraui-CK4yHsJi.js} +45 -45
  237. package/dist/interface/assets/{vendor-capacitor-COL6Kz75.js → vendor-capacitor-Bs_WzL0Q.js} +2 -2
  238. package/dist/interface/assets/{vendor-chart-80wrH3md.js → vendor-chart-DBK083Hu.js} +1 -1
  239. package/dist/interface/assets/{vendor-core-CnhnyKDl.js → vendor-core-B-Q4es-f.js} +1 -1
  240. package/dist/interface/assets/{vendor-dnd-CEJS9JKU.js → vendor-dnd-DGQLvX6Y.js} +1 -1
  241. package/dist/interface/assets/{vendor-draggabilly-BY7O1F_Z.js → vendor-draggabilly-D8CK6M-y.js} +1 -1
  242. package/dist/interface/assets/{vendor-DGke_6M4.js → vendor-gFkr2qsZ.js} +1 -1
  243. package/dist/interface/assets/vendor-gridstack-DtDG3os6.js +3 -0
  244. package/dist/interface/assets/{vendor-markdown-DD4teg2u.js → vendor-markdown-qHIinIUE.js} +1 -1
  245. package/dist/interface/assets/{vendor-primevue-CCUqY55W.js → vendor-primevue-Cmp3VjIC.js} +72 -72
  246. package/dist/interface/assets/{vendor-vueflow-Bmwd2les.js → vendor-vueflow-bSwRZ9X8.js} +1 -1
  247. package/dist/interface/assets/web-BDNQnMmA.js +1 -0
  248. package/dist/interface/assets/web-B_9Qyt8E.js +1 -0
  249. package/dist/interface/assets/web-BhJykCtq.js +1 -0
  250. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +1 -0
  251. package/dist/interface/assets/web-C7nJwIOa.js +1 -0
  252. package/dist/interface/assets/web-CGJsJQDb.js +1 -0
  253. package/dist/interface/assets/web-CJwASxrl.js +1 -0
  254. package/dist/interface/assets/web-CLe0L31Y.js +1 -0
  255. package/dist/interface/assets/web-DEv1hAn1.js +1 -0
  256. package/dist/interface/assets/web-DaeQvsXT.js +1 -0
  257. package/dist/interface/assets/web-H3-wNunW.js +1 -0
  258. package/dist/interface/assets/web-LCdyqJq1.js +1 -0
  259. package/dist/interface/assets/web-XZWYTK65.js +1 -0
  260. package/dist/interface/assets/web-rU5hlxxW.js +1 -0
  261. package/dist/interface/assets/{webhook-oVbP79Yk.js → webhook-CWKf2Qxu.js} +1 -1
  262. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +1 -0
  263. package/dist/interface/assets/{zoom-in-GKNy8xA7.js → zoom-in-CHkXAWHy.js} +1 -1
  264. package/dist/interface/ha/{404-DLhJqxRl.js → 404-C0mWQGWl.js} +1 -1
  265. package/dist/interface/ha/{About-DC0i1iE4.js → About-ByE7XErJ.js} +6 -6
  266. package/dist/interface/ha/{Assistant-BmazMPIg.js → Assistant-Z3FTR868.js} +2233 -2099
  267. package/dist/interface/ha/{Automation-gabF9YzQ.js → Automation-COQqTFNw.js} +237 -237
  268. package/dist/interface/ha/{AutomationImport-DaqZNs9s.js → AutomationImport-ueWqMBX9.js} +6 -6
  269. package/dist/interface/ha/{AutomationStore-DzM4huo5.js → AutomationStore-DBO4aZqy.js} +76 -76
  270. package/dist/interface/ha/{AutomationStoreDetail-CpzQMt_D.js → AutomationStoreDetail-DMnYu7hf.js} +19 -19
  271. package/dist/interface/ha/{Automations-Dcm4Us50.js → Automations-CMdbidc0.js} +73 -73
  272. package/dist/interface/ha/{Camera-CNK3QR7l.js → Camera-C28q_3pu.js} +183 -180
  273. package/dist/interface/ha/{CameraConsole-CpcF0411.js → CameraConsole-oMNZfKE6.js} +3 -3
  274. package/dist/interface/ha/{Cameras-Cf9rwRyf.js → Cameras-CsqrLx97.js} +166 -166
  275. package/dist/interface/ha/{Camview-BFKR2t6C.js → Camview-Br0LUakz.js} +389 -389
  276. package/dist/interface/ha/{Config-1XH3zfr2.js → Config-Y5eUNSW7.js} +110 -110
  277. package/dist/interface/ha/{ConfigActionAssistant-C0-NFoTB.js → ConfigActionAssistant-hl-6ZACj.js} +4 -4
  278. package/dist/interface/ha/{ConfigActionCameraControl-DNSKZPSZ.js → ConfigActionCameraControl-DnXlVFWD.js} +3 -3
  279. package/dist/interface/ha/{ConfigActionHttp-DVJAcGkl.js → ConfigActionHttp-BkpkMmRd.js} +2 -2
  280. package/dist/interface/ha/{ConfigActionImageInput-VVbHHHZs.js → ConfigActionImageInput-Dp78_QS_.js} +1 -1
  281. package/dist/interface/ha/{ConfigActionMqtt-N5OUJDzM.js → ConfigActionMqtt-DA_UWb5j.js} +4 -4
  282. package/dist/interface/ha/{ConfigActionNotification-s142tQoU.js → ConfigActionNotification-CQ4Ses3a.js} +3 -3
  283. package/dist/interface/ha/{ConfigActionNotificationControl-Dh7kaKVP.js → ConfigActionNotificationControl-Cb5PNGz-.js} +2 -2
  284. package/dist/interface/ha/{ConfigActionOutput-B4HHTg5C.js → ConfigActionOutput-DLuNHwRb.js} +1 -1
  285. package/dist/interface/ha/{ConfigActionPlugin-D20G2Dqf.js → ConfigActionPlugin-ChKFCNaj.js} +5 -5
  286. package/dist/interface/ha/{ConfigActionSensor-BS3jrFaG.js → ConfigActionSensor-DOutFalW.js} +5 -5
  287. package/dist/interface/ha/{ConfigActionSnapshot-CInLAcwK.js → ConfigActionSnapshot-GWgY6YIN.js} +2 -2
  288. package/dist/interface/ha/{ConfigActionVariable-C5vADGNF.js → ConfigActionVariable-bu-9VYTG.js} +1 -1
  289. package/dist/interface/ha/{ConfigConditionIfElse-CPeWDD31.js → ConfigConditionIfElse-iNp8tlZV.js} +3 -3
  290. package/dist/interface/ha/{ConfigConditionSensorState-BM5GmpN6.js → ConfigConditionSensorState-Dn7kcHpJ.js} +4 -4
  291. package/dist/interface/ha/{ConfigConditionSwitch-Dmz9FduJ.js → ConfigConditionSwitch-DaUlDgo0.js} +5 -5
  292. package/dist/interface/ha/{ConfigSensorValueInput-Ch5njvtv.js → ConfigSensorValueInput-D6m6suqJ.js} +9 -9
  293. package/dist/interface/ha/{ConfigTriggerDetection-BR2QWNyO.js → ConfigTriggerDetection-C5B_DC_L.js} +12 -12
  294. package/dist/interface/ha/{ConfigTriggerGeofence-CaImOjyW.js → ConfigTriggerGeofence-B4WVNcK5.js} +5 -5
  295. package/dist/interface/ha/{ConfigTriggerMqtt-DWz1XwZQ.js → ConfigTriggerMqtt-wnMfk_Un.js} +1 -1
  296. package/dist/interface/ha/{ConfigTriggerSensor-lfnhz0im.js → ConfigTriggerSensor-xFpI5KPu.js} +1 -1
  297. package/dist/interface/ha/{ConfigTriggerSystem-CwUhyFAj.js → ConfigTriggerSystem-YI9WYYVM.js} +2 -2
  298. package/dist/interface/ha/{ConfigTriggerWebhook-J6Xts7GQ.js → ConfigTriggerWebhook-58c2KgUe.js} +2 -2
  299. package/dist/interface/ha/{Console-BSdKFm6Y.js → Console-Coiqh32K.js} +13 -13
  300. package/dist/interface/ha/{CuiAutomationRunsDialog-BU8sympp.js → CuiAutomationRunsDialog-CJ2MGfEY.js} +2 -2
  301. package/dist/interface/ha/{CuiBottomSheet-Bnp7ta7V.js → CuiBottomSheet-BlG9Pl9j.js} +1 -1
  302. package/dist/interface/ha/{CuiCameraRecordings-E-mMqKSs.js → CuiCameraRecordings-DLXEB4Q7.js} +13 -13
  303. package/dist/interface/ha/{CuiCameraShares-DcNwd2OC.js → CuiCameraShares-BCIeaM6u.js} +6 -6
  304. package/dist/interface/ha/{CuiCameraTable-DNW9Vm_A.js → CuiCameraTable-PYYC7sOu.js} +9 -9
  305. package/dist/interface/ha/{CuiChartTable-muC7jL2H.js → CuiChartTable-FQ2iR5Hd.js} +42 -42
  306. package/dist/interface/ha/{CuiConsole-ND8bcuTg.js → CuiConsole-C77k5q_-.js} +6 -6
  307. package/dist/interface/ha/{CuiDataTable-CN4T8DgP.js → CuiDataTable-CIKQLseG.js} +6 -6
  308. package/dist/interface/ha/{CuiPluginCard-nIQiyQvH.js → CuiPluginCard-DZNXKP_P.js} +51 -51
  309. package/dist/interface/ha/{CuiPluginOAuthButton-FJ49NfUh.js → CuiPluginOAuthButton-DVf52_Zc.js} +6 -6
  310. package/dist/interface/ha/{CuiPluginTrustBadge-D6eanMyI.js → CuiPluginTrustBadge-CPljYiM8.js} +3 -3
  311. package/dist/interface/ha/{CuiQRCode-BdJzeeoE.js → CuiQRCode-oe8PLnLj.js} +7 -7
  312. package/dist/interface/ha/{CuiSchema-DY0V-8xP.js → CuiSchema-CQy94ZTs.js} +60 -60
  313. package/dist/interface/ha/{CuiTopNavbarItem-DT5pAKHp.js → CuiTopNavbarItem-D6OHZLQY.js} +5 -5
  314. package/dist/interface/ha/Faces-DxAPvemO.js +1441 -0
  315. package/dist/interface/ha/{FirstSteps-yS2M2cor.js → FirstSteps-ZINTSaeL.js} +67 -67
  316. package/dist/interface/ha/{Floorplan-DSOeScjI.js → Floorplan-DkbL8ppT.js} +300 -300
  317. package/dist/interface/ha/{Instances-B4h5EKpF.js → Instances-totWtqd7.js} +66 -66
  318. package/dist/interface/ha/{Logs-BH0Lxvs6.js → Logs-CzabIFja.js} +11 -11
  319. package/dist/interface/ha/{Menu-COH7QXuE.js → Menu-DcVBOQfw.js} +12 -12
  320. package/dist/interface/ha/{Metrics-BtnRqL_I.js → Metrics-B_SN5hbp.js} +410 -409
  321. package/dist/interface/ha/{OAuthDeviceFlow-D2QJ9MnP.js → OAuthDeviceFlow-B28TPsTQ.js} +7 -7
  322. package/dist/interface/ha/{Plugin-EfUSqwyh.js → Plugin-B2PbbB8d.js} +418 -279
  323. package/dist/interface/ha/{PluginConsole-hh_o15f7.js → PluginConsole-_KeG4FvO.js} +4 -4
  324. package/dist/interface/ha/{PluginDetail-DFiXGkrY.js → PluginDetail-GK_Fx14e.js} +185 -185
  325. package/dist/interface/ha/{PluginSearch-Cdrfubrj.js → PluginSearch-qSy4aqAW.js} +51 -51
  326. package/dist/interface/ha/{PluginUpdateProgress-BD2g2kVj.js → PluginUpdateProgress-C4Q2j6VO.js} +3 -3
  327. package/dist/interface/ha/{Plugins-qFiHW-Nk.js → Plugins-D0tvZHie.js} +64 -64
  328. package/dist/interface/ha/{RecentEventsFilter-UWrXnvfq.js → RecentEventsFilter-9ZkDHD1g.js} +1 -1
  329. package/dist/interface/ha/{Recordings-BzeC6tOz.js → Recordings-CpxJYaAa.js} +510 -489
  330. package/dist/interface/ha/{SensorEdit-BSgy7lkZ.js → SensorEdit-8KtqLXEu.js} +377 -377
  331. package/dist/interface/ha/{SensorHistory-IDvP8LKH.js → SensorHistory-CPTTsdjM.js} +2 -2
  332. package/dist/interface/ha/{Sensors-Diqp4oZ0.js → Sensors-DJt_Hnn2.js} +484 -469
  333. package/dist/interface/ha/{Settings-BgDsxAlx.js → Settings-B-OdG5pG.js} +18 -18
  334. package/dist/interface/ha/{SettingsAccount-DBXMQPYk.js → SettingsAccount-Ba2-2Lbi.js} +175 -175
  335. package/dist/interface/ha/{SettingsAppearance-VmbjnT3o.js → SettingsAppearance-D56HjSuQ.js} +7 -7
  336. package/dist/interface/ha/SettingsAssistant-DglU0auc.js +2025 -0
  337. package/dist/interface/ha/{SettingsBackup-BqY9TwYn.js → SettingsBackup-DZx4McDz.js} +38 -38
  338. package/dist/interface/ha/{SettingsList-CzHcfo2N.js → SettingsList-D9nIGkbE.js} +4 -4
  339. package/dist/interface/ha/{SettingsMqtt-DqV3h3Ow.js → SettingsMqtt-BOszh--k.js} +150 -150
  340. package/dist/interface/ha/{SettingsNotifications-yn5fIR_7.js → SettingsNotifications-DBVpZfp0.js} +118 -118
  341. package/dist/interface/ha/{SettingsRecordings-DDs1lyfY.js → SettingsRecordings-D3oJnizu.js} +9 -9
  342. package/dist/interface/ha/{SettingsRemote-jBw3l5E0.js → SettingsRemote-BOotvcOT.js} +332 -332
  343. package/dist/interface/ha/{SettingsSystem-BOv9hNlk.js → SettingsSystem-Bg11qoQX.js} +10 -10
  344. package/dist/interface/ha/{SettingsUsers-Biv-2F4C.js → SettingsUsers-KpLs9Jnh.js} +92 -92
  345. package/dist/interface/ha/{Terminal-CmcrGEV0.js → Terminal-D6opTHYI.js} +165 -170
  346. package/dist/interface/ha/Training-OB2KOQ7L.js +1694 -0
  347. package/dist/interface/ha/{Updates-DJAcmDQJ.js → Updates-C_OvXJjd.js} +12 -12
  348. package/dist/interface/ha/{VariableInput-DlYg7t0m.js → VariableInput-CfaDp67S.js} +1 -1
  349. package/dist/interface/ha/{VersionsHandler-UnrAWn-b.js → VersionsHandler-D1FVeYUZ.js} +10 -10
  350. package/dist/interface/ha/{VirtualSensorCreate-CssxeaCC.js → VirtualSensorCreate-DJIgMVrt.js} +7 -7
  351. package/dist/interface/ha/{Workers-CLpqLugC.js → Workers-cJMI4mYX.js} +29 -29
  352. package/dist/interface/ha/{api-B_tDa73J.js → api-CDawdL4p.js} +3 -3
  353. package/dist/interface/ha/{api-BP7mlzjP.js → api-D2VzV4is.js} +9943 -9546
  354. package/dist/interface/ha/{assistant-Cb6ACguQ.js → assistant-BmDAfChm.js} +101 -97
  355. package/dist/interface/ha/{auth-DOYDRgFm.js → auth-CvLz9C4w.js} +33 -33
  356. package/dist/interface/ha/{automationBlueprint-CbbG_ku4.js → automationBlueprint-BhNaeOZ1.js} +4 -4
  357. package/dist/interface/ha/{base-C-TYDHjS.js → base-XgWmQghV.js} +14 -3
  358. package/dist/interface/ha/cameraui-cards.js +1 -1
  359. package/dist/interface/ha/{cards-BpBP1zVW.js → cards-MQrnU0T8.js} +1197 -1121
  360. package/dist/interface/ha/{config-DroY1HBs.js → config-t_oAKFkJ.js} +14 -14
  361. package/dist/interface/ha/database-refresh-outline-PiqlCkA7.js +19 -0
  362. package/dist/interface/ha/{dist-BTp4AyuI.js → dist-BIngHzHx.js} +5 -5
  363. package/dist/interface/ha/{dist-C6MBHJhs.js → dist-oFWkn6pD.js} +5 -8
  364. package/dist/interface/ha/{esm-i8Tigknm.js → esm-C9XVFkXu.js} +4 -4
  365. package/dist/interface/ha/{mqtt-NJTVdd53.js → mqtt-C20h1uze.js} +14 -14
  366. package/dist/interface/ha/{native-DBH9ocSq.js → native-BVUxNLM1.js} +4 -4
  367. package/dist/interface/ha/{notifications-BPTvvgvv.js → notifications-Cy9DKiEn.js} +19 -19
  368. package/dist/interface/ha/{pinia-C6gt7A_Q.js → pinia-BokSpDzj.js} +640 -625
  369. package/dist/interface/ha/{plugins-B29K3nQP.js → plugins-jozYyBhV.js} +53 -53
  370. package/dist/interface/ha/{rooms-DLw0WUy_.js → rooms-DyfT3cXp.js} +11 -11
  371. package/dist/interface/ha/{server-B4b5_Ecu.js → server-hCCjQjZE.js} +28 -28
  372. package/dist/interface/ha/{types-DJHHL7nn.js → types-RG0SckNR.js} +49 -38
  373. package/dist/interface/ha/{types-XqA3YJPD.js → types-wLECk3Ml.js} +3 -1
  374. package/dist/interface/ha/{ungrouped-xyK1QrsM.js → ungrouped-BbyfoCQp.js} +121 -121
  375. package/dist/interface/ha/{updates-XFSu9Tfm.js → updates-hUgVDgoD.js} +36 -36
  376. package/dist/interface/ha/{useAppVersion-BH3rU1zz.js → useAppVersion-wNhZDuvR.js} +1 -1
  377. package/dist/interface/ha/useKeyboardInset-Cmbvb_W3.js +27 -0
  378. package/dist/interface/ha/{useLogsSocket-CaTRzvgU.js → useLogsSocket-y9Aex3tJ.js} +1 -1
  379. package/dist/interface/ha/{useNavLayout-DV0_OQx0.js → useNavLayout-Ehb0t34k.js} +2 -2
  380. package/dist/interface/ha/{useServerRestart-C8tynLUf.js → useServerRestart-CRSVcz3z.js} +1 -1
  381. package/dist/interface/ha/{useTabSwipe-CFoLDp3j.js → useTabSwipe-B_bseZkI.js} +1 -1
  382. package/dist/interface/ha/{useUpdateChannel-DSG2RTPe.js → useUpdateChannel-C_GU6lj6.js} +2 -2
  383. package/dist/interface/ha/{useUpdatesSocket-CSQ0g7-6.js → useUpdatesSocket-CYgHb7UX.js} +1 -1
  384. package/dist/interface/ha/{useUserOptions-CFaCy6L1.js → useUserOptions-pVYr-s3O.js} +1 -1
  385. package/dist/interface/ha/{web-D_q41D0i.js → web-CLbVbnCW.js} +5 -5
  386. package/dist/interface/index.html +70 -70
  387. package/dist/interface/sw.js +1 -1
  388. package/dist/server/package.json +30 -30
  389. package/dist/server/requirements.txt +2 -2
  390. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +44 -0
  391. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +2 -0
  392. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +7 -2
  393. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +42 -0
  394. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/assistant_models.py +300 -0
  395. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +9 -0
  396. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +21 -0
  397. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +80 -4
  398. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +6 -0
  399. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +2 -0
  400. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +3 -7
  401. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +69 -0
  402. package/dist/server/src/api/controllers/assistant.controller.js +1 -1
  403. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  404. package/dist/server/src/api/controllers/rooms.controller.js +3 -1
  405. package/dist/server/src/api/controllers/rooms.controller.js.map +1 -1
  406. package/dist/server/src/api/database/index.d.ts +1 -1
  407. package/dist/server/src/api/database/index.js +1 -1
  408. package/dist/server/src/api/database/migrations/v2-2-5.d.ts +3 -0
  409. package/dist/server/src/api/database/migrations/v2-2-5.js +19 -0
  410. package/dist/server/src/api/database/migrations/v2-2-5.js.map +1 -0
  411. package/dist/server/src/api/database/record-schemas.d.ts +4 -2
  412. package/dist/server/src/api/database/record-schemas.js +4 -1
  413. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  414. package/dist/server/src/api/database/types.d.ts +6 -1
  415. package/dist/server/src/api/schemas/assistant.schema.d.ts +23 -7
  416. package/dist/server/src/api/schemas/assistant.schema.js +5 -1
  417. package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
  418. package/dist/server/src/api/schemas/cameras.schema.d.ts +56 -8
  419. package/dist/server/src/api/schemas/cameras.schema.js +4 -3
  420. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  421. package/dist/server/src/api/services/assistant.service.d.ts +1 -1
  422. package/dist/server/src/api/services/assistant.service.js +4 -1
  423. package/dist/server/src/api/services/assistant.service.js.map +1 -1
  424. package/dist/server/src/api/services/cameras.service.d.ts +1 -0
  425. package/dist/server/src/api/services/cameras.service.js +10 -2
  426. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  427. package/dist/server/src/api/websocket/nsp/worker-perf.js +13 -0
  428. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  429. package/dist/server/src/api/websocket/types.d.ts +12 -0
  430. package/dist/server/src/assistant/budget.d.ts +27 -0
  431. package/dist/server/src/assistant/budget.js +118 -0
  432. package/dist/server/src/assistant/budget.js.map +1 -0
  433. package/dist/server/src/assistant/compaction.d.ts +10 -0
  434. package/dist/server/src/assistant/compaction.js +83 -0
  435. package/dist/server/src/assistant/compaction.js.map +1 -0
  436. package/dist/server/src/assistant/docs.js +4 -3
  437. package/dist/server/src/assistant/docs.js.map +1 -1
  438. package/dist/server/src/assistant/history.d.ts +1 -0
  439. package/dist/server/src/assistant/history.js +28 -0
  440. package/dist/server/src/assistant/history.js.map +1 -1
  441. package/dist/server/src/assistant/manager.d.ts +11 -0
  442. package/dist/server/src/assistant/manager.js +262 -63
  443. package/dist/server/src/assistant/manager.js.map +1 -1
  444. package/dist/server/src/assistant/plugin-models.d.ts +34 -0
  445. package/dist/server/src/assistant/plugin-models.js +266 -0
  446. package/dist/server/src/assistant/plugin-models.js.map +1 -0
  447. package/dist/server/src/assistant/prompt.d.ts +7 -1
  448. package/dist/server/src/assistant/prompt.js +75 -11
  449. package/dist/server/src/assistant/prompt.js.map +1 -1
  450. package/dist/server/src/assistant/providers.js +7 -3
  451. package/dist/server/src/assistant/providers.js.map +1 -1
  452. package/dist/server/src/assistant/recap.d.ts +3 -0
  453. package/dist/server/src/assistant/recap.js +65 -0
  454. package/dist/server/src/assistant/recap.js.map +1 -0
  455. package/dist/server/src/assistant/registry.d.ts +16 -1
  456. package/dist/server/src/assistant/registry.js +49 -1
  457. package/dist/server/src/assistant/registry.js.map +1 -1
  458. package/dist/server/src/assistant/retry.js +38 -24
  459. package/dist/server/src/assistant/retry.js.map +1 -1
  460. package/dist/server/src/assistant/router.d.ts +7 -0
  461. package/dist/server/src/assistant/router.js +67 -0
  462. package/dist/server/src/assistant/router.js.map +1 -0
  463. package/dist/server/src/assistant/scheduler.js +8 -1
  464. package/dist/server/src/assistant/scheduler.js.map +1 -1
  465. package/dist/server/src/assistant/skills.d.ts +8 -0
  466. package/dist/server/src/assistant/skills.js +59 -1
  467. package/dist/server/src/assistant/skills.js.map +1 -1
  468. package/dist/server/src/assistant/threads.d.ts +1 -0
  469. package/dist/server/src/assistant/threads.js +7 -1
  470. package/dist/server/src/assistant/threads.js.map +1 -1
  471. package/dist/server/src/assistant/tool-names.js +9 -1
  472. package/dist/server/src/assistant/tool-names.js.map +1 -1
  473. package/dist/server/src/assistant/tool-rank.d.ts +2 -0
  474. package/dist/server/src/assistant/tool-rank.js +48 -0
  475. package/dist/server/src/assistant/tool-rank.js.map +1 -0
  476. package/dist/server/src/assistant/tool-schema.d.ts +3 -0
  477. package/dist/server/src/assistant/tool-schema.js +65 -0
  478. package/dist/server/src/assistant/tool-schema.js.map +1 -0
  479. package/dist/server/src/assistant/tools/api.js +7 -9
  480. package/dist/server/src/assistant/tools/api.js.map +1 -1
  481. package/dist/server/src/assistant/tools/ask.js +1 -2
  482. package/dist/server/src/assistant/tools/ask.js.map +1 -1
  483. package/dist/server/src/assistant/tools/automations.js +3 -5
  484. package/dist/server/src/assistant/tools/automations.js.map +1 -1
  485. package/dist/server/src/assistant/tools/cameras.js +3 -4
  486. package/dist/server/src/assistant/tools/cameras.js.map +1 -1
  487. package/dist/server/src/assistant/tools/docs.js +5 -6
  488. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  489. package/dist/server/src/assistant/tools/instance.js +19 -19
  490. package/dist/server/src/assistant/tools/instance.js.map +1 -1
  491. package/dist/server/src/assistant/tools/memory.js +3 -4
  492. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  493. package/dist/server/src/assistant/tools/metrics.js +1 -2
  494. package/dist/server/src/assistant/tools/metrics.js.map +1 -1
  495. package/dist/server/src/assistant/tools/notifications.js +4 -11
  496. package/dist/server/src/assistant/tools/notifications.js.map +1 -1
  497. package/dist/server/src/assistant/tools/plugins.js +12 -14
  498. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  499. package/dist/server/src/assistant/tools/report.js +17 -12
  500. package/dist/server/src/assistant/tools/report.js.map +1 -1
  501. package/dist/server/src/assistant/tools/schedules.js +6 -11
  502. package/dist/server/src/assistant/tools/schedules.js.map +1 -1
  503. package/dist/server/src/assistant/tools/sensors.js +63 -4
  504. package/dist/server/src/assistant/tools/sensors.js.map +1 -1
  505. package/dist/server/src/assistant/tools/settings.js +2 -3
  506. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  507. package/dist/server/src/assistant/tools/system.js +3 -5
  508. package/dist/server/src/assistant/tools/system.js.map +1 -1
  509. package/dist/server/src/assistant/tools/terminal.js +4 -5
  510. package/dist/server/src/assistant/tools/terminal.js.map +1 -1
  511. package/dist/server/src/assistant/types.d.ts +10 -1
  512. package/dist/server/src/assistant/uploads.d.ts +2 -1
  513. package/dist/server/src/assistant/uploads.js +25 -3
  514. package/dist/server/src/assistant/uploads.js.map +1 -1
  515. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -0
  516. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -14
  517. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  518. package/dist/server/src/camera/decoder/detection-pipeline.js +2 -1
  519. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  520. package/dist/server/src/camera/decoder/event-manager.d.ts +27 -4
  521. package/dist/server/src/camera/decoder/event-manager.js +175 -48
  522. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  523. package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -1
  524. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  525. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  526. package/dist/server/src/camera/decoder/perf-tracker.d.ts +10 -0
  527. package/dist/server/src/camera/decoder/perf-tracker.js +20 -0
  528. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  529. package/dist/server/src/camera/decoder/secondary-stage.d.ts +21 -1
  530. package/dist/server/src/camera/decoder/secondary-stage.js +301 -59
  531. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  532. package/dist/server/src/camera/decoder/side-queue.d.ts +13 -0
  533. package/dist/server/src/camera/decoder/side-queue.js +53 -0
  534. package/dist/server/src/camera/decoder/side-queue.js.map +1 -0
  535. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +2 -0
  536. package/dist/server/src/camera/decoder/sources/buffered-source.js +7 -1
  537. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  538. package/dist/server/src/camera/decoder/types.d.ts +11 -1
  539. package/dist/server/src/camera/decoder/types.js +9 -1
  540. package/dist/server/src/camera/decoder/types.js.map +1 -1
  541. package/dist/server/src/camera/sensors/controller.d.ts +1 -0
  542. package/dist/server/src/camera/sensors/controller.js +28 -4
  543. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  544. package/dist/server/src/main.js +11 -2
  545. package/dist/server/src/main.js.map +1 -1
  546. package/dist/server/src/plugins/index.js +5 -4
  547. package/dist/server/src/plugins/index.js.map +1 -1
  548. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -14
  549. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +14 -1
  550. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +1 -13
  551. package/dist/server/src/rpc/interfaces/detection.d.ts +14 -2
  552. package/dist/server/src/rpc/server.js +1 -0
  553. package/dist/server/src/rpc/server.js.map +1 -1
  554. package/dist/server/src/services/config/index.d.ts +1 -0
  555. package/dist/server/src/services/config/index.js +6 -11
  556. package/dist/server/src/services/config/index.js.map +1 -1
  557. package/dist/server/src/utils/camera.js +8 -5
  558. package/dist/server/src/utils/camera.js.map +1 -1
  559. package/dist/server/src/utils/instance-lock.d.ts +1 -0
  560. package/dist/server/src/utils/instance-lock.js +57 -0
  561. package/dist/server/src/utils/instance-lock.js.map +1 -0
  562. package/dist/server/src/workers/agent.d.ts +2 -0
  563. package/dist/server/src/workers/agent.js +11 -1
  564. package/dist/server/src/workers/agent.js.map +1 -1
  565. package/dist/server/src/workers/manager.js +9 -2
  566. package/dist/server/src/workers/manager.js.map +1 -1
  567. package/dist/server/src/workers/types.d.ts +1 -0
  568. package/npm-shrinkwrap.json +213 -213
  569. package/package.json +30 -30
  570. package/dist/interface/assets/Assistant-bB8RBo-m.js +0 -1
  571. package/dist/interface/assets/Automations-BdZZW2eN.js +0 -2
  572. package/dist/interface/assets/Camera-B4ojNnKb.css +0 -1
  573. package/dist/interface/assets/Camera-Ct7ndOxr.js +0 -2
  574. package/dist/interface/assets/Camview-BjQdTHNh.js +0 -1
  575. package/dist/interface/assets/Config-CBTbYd5v.js +0 -2
  576. package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +0 -1
  577. package/dist/interface/assets/Console-Cfk9MA9m.js +0 -1
  578. package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +0 -5
  579. package/dist/interface/assets/CuiAssistantConversation-lkpZg3ML.css +0 -1
  580. package/dist/interface/assets/CuiAutomationRunsDialog-B0ohEHw0.js +0 -1
  581. package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +0 -1
  582. package/dist/interface/assets/CuiCameraPipCard-C2qaGJlH.js +0 -1
  583. package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +0 -1
  584. package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +0 -1
  585. package/dist/interface/assets/CuiDataTable-CsqH-RB1.js +0 -1
  586. package/dist/interface/assets/CuiLightControl-ChGYpQAK.js +0 -1
  587. package/dist/interface/assets/CuiMarkdownContent-DSArmS0V.js +0 -1
  588. package/dist/interface/assets/CuiPluginCard-CWImTZ6l.js +0 -2
  589. package/dist/interface/assets/CuiSchema-ytExUVhI.js +0 -1
  590. package/dist/interface/assets/Faces-Cb6XMxDC.js +0 -1
  591. package/dist/interface/assets/FirstSteps-QNYTkEJo.js +0 -1
  592. package/dist/interface/assets/Floorplan-DbqADtN1.js +0 -1
  593. package/dist/interface/assets/Instances-DrMzPD65.js +0 -1
  594. package/dist/interface/assets/Metrics-BUP_-7o7.css +0 -1
  595. package/dist/interface/assets/Metrics-CqhUnVRA.js +0 -12
  596. package/dist/interface/assets/Plugin-BDqNeTCT.css +0 -1
  597. package/dist/interface/assets/Plugin-DyOg_fbg.js +0 -1
  598. package/dist/interface/assets/PluginSearch-BgecD9Ob.js +0 -2
  599. package/dist/interface/assets/PluginSearch-C8xHKikH.js +0 -1
  600. package/dist/interface/assets/Plugins-CuujWEtM.js +0 -1
  601. package/dist/interface/assets/Recordings-9FJqCfdM.css +0 -1
  602. package/dist/interface/assets/Recordings-ths9khZr.js +0 -1
  603. package/dist/interface/assets/SensorEdit-BzoIH7QC.js +0 -1
  604. package/dist/interface/assets/Sensors-CK5uExfU.js +0 -2
  605. package/dist/interface/assets/Settings-DN5hFtw_.js +0 -1
  606. package/dist/interface/assets/SettingsAccount-BCrmon5O.js +0 -1
  607. package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +0 -1
  608. package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +0 -1
  609. package/dist/interface/assets/SettingsAssistant-BESab92C.css +0 -1
  610. package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +0 -1
  611. package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +0 -1
  612. package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +0 -2
  613. package/dist/interface/assets/Terminal-Dl-aAZME.js +0 -4
  614. package/dist/interface/assets/Training-B1oQjAr8.css +0 -1
  615. package/dist/interface/assets/Training-DdZjXgt1.js +0 -1
  616. package/dist/interface/assets/Updates-CkB1lXuo.js +0 -2
  617. package/dist/interface/assets/Workers-7yiebNkl.js +0 -2
  618. package/dist/interface/assets/api-DK2Bav9D.js +0 -4
  619. package/dist/interface/assets/api-DTCqDA-h.css +0 -2
  620. package/dist/interface/assets/assistant-BJ6xKcw_.js +0 -1
  621. package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +0 -1
  622. package/dist/interface/assets/esm-4Hzzm93H.js +0 -1
  623. package/dist/interface/assets/esm-BrFPi5_4.js +0 -1
  624. package/dist/interface/assets/esm-C7pcdfXf.js +0 -1
  625. package/dist/interface/assets/esm-C8bsO829.js +0 -1
  626. package/dist/interface/assets/esm-CXzdnAMk.js +0 -1
  627. package/dist/interface/assets/esm-CZNGZkPu.js +0 -1
  628. package/dist/interface/assets/esm-D0iI7OVb.js +0 -1
  629. package/dist/interface/assets/esm-DKolm6KU.js +0 -1
  630. package/dist/interface/assets/esm-DTywI9gs.js +0 -1
  631. package/dist/interface/assets/esm-DifXcK9i.js +0 -1
  632. package/dist/interface/assets/esm-Dq5o-Xb4.js +0 -1
  633. package/dist/interface/assets/esm-IbQuUZ5l.js +0 -1
  634. package/dist/interface/assets/esm-Xre_AP5i.js +0 -1
  635. package/dist/interface/assets/esm-zYnXHhpH.js +0 -1
  636. package/dist/interface/assets/main-D74mRIxc.js +0 -3
  637. package/dist/interface/assets/native-CAujTO6L.js +0 -1
  638. package/dist/interface/assets/native-sQ88qazf.js +0 -1
  639. package/dist/interface/assets/plugin-D7K50k_y.js +0 -1
  640. package/dist/interface/assets/sensorIcons-DQVgryYP.js +0 -1
  641. package/dist/interface/assets/types-5rE8Tz0_.js +0 -1
  642. package/dist/interface/assets/ungrouped-D56FGIrg.js +0 -1
  643. package/dist/interface/assets/useBackupRestore-Crfd592q.js +0 -1
  644. package/dist/interface/assets/useKeyboardInset-DXVi1dLG.js +0 -1
  645. package/dist/interface/assets/useUserOptions-BTRBUuE2.js +0 -1
  646. package/dist/interface/assets/vendor-gridstack-anPyIu9V.js +0 -3
  647. package/dist/interface/assets/web-3M-ddn4G.js +0 -1
  648. package/dist/interface/assets/web-BY80VGyU.js +0 -1
  649. package/dist/interface/assets/web-B_tUYyM0.js +0 -1
  650. package/dist/interface/assets/web-BjKL51lK-Bb5NYhpJ.js +0 -1
  651. package/dist/interface/assets/web-Bv-4PJGI.js +0 -1
  652. package/dist/interface/assets/web-C3Pk8qeB.js +0 -1
  653. package/dist/interface/assets/web-CLcvGPH6.js +0 -1
  654. package/dist/interface/assets/web-DO8gTOVJ.js +0 -1
  655. package/dist/interface/assets/web-DR5q_DmI.js +0 -1
  656. package/dist/interface/assets/web-DRHbG4Te.js +0 -1
  657. package/dist/interface/assets/web-DaQ8d8yk.js +0 -1
  658. package/dist/interface/assets/web-EVRW5whF.js +0 -1
  659. package/dist/interface/assets/web-S6Dk3UWN.js +0 -1
  660. package/dist/interface/assets/web-pWIp0wf0.js +0 -1
  661. package/dist/interface/assets/workbox-window.prod.es5-Dz5rcO1z.js +0 -1
  662. package/dist/interface/ha/Faces-C_svyTrr.js +0 -1282
  663. package/dist/interface/ha/SettingsAssistant-C2R4ZetE.js +0 -1857
  664. package/dist/interface/ha/Training-BEzPiXZg.js +0 -1512
@@ -2,38 +2,39 @@ import { m as e, p as t } from "./ripple-ZDATPc2w.js";
2
2
  import { A as n, B as r, D as i, Dt as a, G as o, H as s, Jt as c, M as l, N as u, Wt as d, Y as f, _t as p, d as m, f as h, ft as g, g as _, gt as ee, kt as v, l as y, lt as b, ot as x, p as S, qt as C, r as w, rt as T, u as E, ut as D, v as O, wt as k, x as A, xt as j, y as M, yt as N, z as P } from "./runtime-core.esm-bundler-_TfE0DWz.js";
3
3
  import { t as F } from "./tooltip-BDrlgLof.js";
4
4
  import { t as I } from "./tag-mchuCAPR.js";
5
- import { J as L, Jr as R, Mn as z, Or as B, Sn as V, Sr as te, St as ne, Xr as re, Yt as ie, _t as ae, ai as oe, bi as se, en as H, f as U, g as W, hn as ce, jn as le, mn as ue, mr as de, nn as fe, pn as pe, tn as me, wr as he, xn as ge, zr as _e } from "./api-BP7mlzjP.js";
5
+ import { $t as L, An as te, Ar as R, Er as z, Jt as B, Qr as V, Si as ne, Vr as re, Xr as ie, bn as ae, en as oe, f as se, fn as H, g as U, gr as W, gt as ce, jn as le, mn as ue, pn as de, q as fe, si as pe, tn as me, wr as he, xn as ge, xt as _e } from "./api-D2VzV4is.js";
6
6
  import { A as G, b as K, i as ve, o as ye } from "./intercomService-B7HkLs6z.js";
7
- import { B as q, I as be, L as xe, R as Se, V as Ce, q as we, r as Te, s as Ee, z as J } from "./pinia-C6gt7A_Q.js";
7
+ import { B as q, I as be, L as xe, R as Se, V as Ce, q as we, r as Te, s as Ee, z as J } from "./pinia-BokSpDzj.js";
8
8
  import { n as De } from "./vue-i18n-D5EAy78K.js";
9
- import { O as Y, T as X, w as Z } from "./dist-BTp4AyuI.js";
10
- import { a as Oe } from "./alert-outline-FcLLjoOK.js";
11
- import { t as ke } from "./button-BouAFgf5.js";
12
- import { M as Ae, N as je, P as Q, b as Me } from "./dist-C6MBHJhs.js";
13
- import { t as Ne } from "./inputtext-C_ygnPrC.js";
14
- import { t as Pe } from "./select-DV7p2EDj.js";
15
- import { t as $ } from "./multiselect-BOb4ScAZ.js";
16
- import { t as Fe } from "./textarea-ByXnzJzx.js";
17
- import { t as Ie } from "./CuiSchema-DY0V-8xP.js";
18
- import { t as Le } from "./plugins-B29K3nQP.js";
19
- import { t as Re } from "./information-outline-DSSRyysT.js";
20
- import { t as ze } from "./close-circle-DfYSNAKm.js";
21
- import { t as Be } from "./CuiMarkdownContent-CrkZwv5j.js";
22
- import { r as Ve, t as He } from "./CuiPluginCard-nIQiyQvH.js";
23
- import { u as Ue } from "./cards-BpBP1zVW.js";
24
- import { t as We } from "./back-filled-CaxrZv0Q.js";
9
+ import { O as Y, T as X, k as Oe, w as Z } from "./dist-BIngHzHx.js";
10
+ import { a as ke } from "./alert-outline-FcLLjoOK.js";
11
+ import { h as Ae } from "./eventIcons-BFNUgeGr.js";
12
+ import { t as je } from "./button-BouAFgf5.js";
13
+ import { M as Me, N as Ne, P as Q, b as Pe } from "./dist-oFWkn6pD.js";
14
+ import { t as Fe } from "./inputtext-C_ygnPrC.js";
15
+ import { t as Ie } from "./select-DV7p2EDj.js";
16
+ import { t as Le } from "./multiselect-BOb4ScAZ.js";
17
+ import { t as $ } from "./textarea-ByXnzJzx.js";
18
+ import { t as Re } from "./CuiSchema-CQy94ZTs.js";
19
+ import { t as ze } from "./plugins-jozYyBhV.js";
20
+ import { t as Be } from "./information-outline-DSSRyysT.js";
21
+ import { t as Ve } from "./close-circle-DfYSNAKm.js";
22
+ import { t as He } from "./CuiMarkdownContent-CrkZwv5j.js";
23
+ import { r as Ue, t as We } from "./CuiPluginCard-DZNXKP_P.js";
24
+ import { u as Ge } from "./cards-MQrnU0T8.js";
25
+ import { t as Ke } from "./back-filled-CaxrZv0Q.js";
25
26
  //#region src/components/CuiMarkdownPanel/types.ts
26
- var Ge = {
27
+ var qe = {
27
28
  content: null,
28
29
  loading: !1,
29
30
  collapsedHeight: 420
30
- }, Ke = { class: "lg:!hidden card-title" }, qe = {
31
+ }, Je = { class: "lg:!hidden card-title" }, Ye = {
31
32
  ref: "frame",
32
33
  class: "flex flex-col h-full"
33
- }, Je = { class: "flex items-center gap-3 border-color lg:border-b-[1px] lg:mb-3 lg:pb-3" }, Ye = { class: "hidden lg:block text-base font-semibold" }, Xe = {
34
+ }, Xe = { class: "flex items-center gap-3 border-color lg:border-b-[1px] lg:mb-3 lg:pb-3" }, Ze = { class: "hidden lg:block text-base font-semibold" }, Qe = {
34
35
  key: 0,
35
36
  class: "flex w-full h-full items-center justify-center"
36
- }, Ze = /* @__PURE__ */ A({
37
+ }, $e = /* @__PURE__ */ A({
37
38
  __name: "CuiMarkdownPanel",
38
39
  props: /*@__PURE__*/ n({
39
40
  title: {},
@@ -41,7 +42,7 @@ var Ge = {
41
42
  content: {},
42
43
  loading: { type: Boolean },
43
44
  collapsedHeight: {}
44
- }, Ge),
45
+ }, qe),
45
46
  setup(e) {
46
47
  let t = e, n = T("frame"), r = T("body"), i = j(!1), a = j(!1), o = j(t.collapsedHeight), l = y(() => !t.loading && (i.value || a.value));
47
48
  function d() {
@@ -57,9 +58,9 @@ var Ge = {
57
58
  a.value = !!e && e.scrollHeight > e.clientHeight + 1;
58
59
  }
59
60
  return K(r, "load", f, { capture: !0 }), G(n, f), G(r, f), x([() => t.content, () => t.loading], () => u(f)), P(() => u(f)), (t, n) => {
60
- let r = ge, a = V, u = ke, d = te, f = Be, p = ve, g = F;
61
- return s(), S("div", null, [E("span", Ke, c(e.title), 1), M(p, { class: "cui-card !h-auto lg:!h-full" }, {
62
- content: b(() => [E("div", qe, [E("div", Je, [E("h3", Ye, c(e.title), 1), v(l) ? D((s(), m(u, {
61
+ let r = ae, a = ge, u = je, d = he, f = He, p = ve, g = F;
62
+ return s(), S("div", null, [E("span", Je, c(e.title), 1), M(p, { class: "cui-card !h-auto lg:!h-full" }, {
63
+ content: b(() => [E("div", Ye, [E("div", Xe, [E("h3", Ze, c(e.title), 1), v(l) ? D((s(), m(u, {
63
64
  key: 0,
64
65
  severity: "secondary",
65
66
  text: "",
@@ -79,7 +80,7 @@ var Ge = {
79
80
  { value: v(i) ? t.$t("components.form.button.collapse") : t.$t("components.form.button.expand") },
80
81
  void 0,
81
82
  { left: !0 }
82
- ]]) : h("", !0)]), e.loading ? (s(), S("div", Xe, [M(d, {
83
+ ]]) : h("", !0)]), e.loading ? (s(), S("div", Qe, [M(d, {
83
84
  class: "w-[30px] h-[30px] m-0",
84
85
  "stroke-width": "5"
85
86
  })])) : (s(), S("div", {
@@ -92,26 +93,26 @@ var Ge = {
92
93
  })]);
93
94
  };
94
95
  }
95
- }), Qe = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, $e = { class: "flex flex-col gap-4" }, et = { class: "flex flex-col field-gap" }, tt = { class: "cui-label" }, nt = {
96
+ }), et = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, tt = { class: "flex flex-col gap-4" }, nt = { class: "flex flex-col field-gap" }, rt = { class: "cui-label" }, it = {
96
97
  key: 0,
97
98
  class: "text-red-500 text-sm"
98
- }, rt = { class: "flex flex-col field-gap" }, it = { class: "cui-label" }, at = { class: "flex flex-col field-gap" }, ot = { class: "cui-label" }, st = { class: "flex flex-col field-gap" }, ct = { class: "cui-label" }, lt = { class: "flex flex-col field-gap" }, ut = { class: "cui-label" }, dt = { class: "flex flex-col field-gap" }, ft = { class: "cui-label" }, pt = { class: "flex flex-col field-gap" }, mt = { class: "cui-label" }, ht = { class: "flex flex-col field-gap" }, gt = { class: "cui-label" }, _t = { class: "mt-8" }, vt = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, yt = {
99
+ }, at = { class: "flex flex-col field-gap" }, ot = { class: "cui-label" }, st = { class: "flex flex-col field-gap" }, ct = { class: "cui-label" }, lt = { class: "flex flex-col field-gap" }, ut = { class: "cui-label" }, dt = { class: "flex flex-col field-gap" }, ft = { class: "cui-label" }, pt = { class: "flex flex-col field-gap" }, mt = { class: "cui-label" }, ht = { class: "flex flex-col field-gap" }, gt = { class: "cui-label" }, _t = { class: "flex flex-col field-gap" }, vt = { class: "cui-label" }, yt = { class: "mt-8" }, bt = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, xt = {
99
100
  key: 0,
100
101
  class: "flex items-center justify-center w-full py-4"
101
- }, bt = {
102
+ }, St = {
102
103
  key: 1,
103
104
  class: "flex items-center justify-center text-sm text-muted py-4 text-center"
104
- }, xt = {
105
+ }, Ct = {
105
106
  key: 2,
106
107
  class: "flex flex-col field-gap"
107
- }, St = { class: "text-xs text-muted" }, Ct = {
108
+ }, wt = { class: "text-xs text-muted" }, Tt = {
108
109
  key: 0,
109
110
  class: "mt-8"
110
- }, wt = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Tt = /* @__PURE__ */ A({
111
+ }, Et = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Dt = /* @__PURE__ */ A({
111
112
  __name: "CuiNotificationInterface",
112
113
  props: { pluginName: {} },
113
114
  setup(e) {
114
- let t = e, n = ye(), { t: r } = De(), i = se(), l = W(), { user: u } = Te(l), { pluginName: d } = a(t), { plugin: f } = Ae(d), p = y(() => Object.values(Z).map((e) => ({
115
+ let t = e, n = ye(), { t: r } = De(), i = ne(), l = U(), { user: u } = Te(l), { pluginName: d } = a(t), { plugin: f } = Me(d), p = y(() => Object.values(Z).map((e) => ({
115
116
  label: r(`components.notification_interface.severity_${e}`),
116
117
  value: e
117
118
  }))), m = N({
@@ -130,7 +131,7 @@ var Ge = {
130
131
  if (f.value && u.value?._id) {
131
132
  D.value = !0;
132
133
  try {
133
- let e = de(void 0, "admin") ? [] : [u.value._id];
134
+ let e = W(void 0, "admin") ? [] : [u.value._id];
134
135
  T.value = await f.value.getDevices?.(e) ?? [];
135
136
  } catch (e) {
136
137
  n.error("Failed to load notifier devices:", e), T.value = [];
@@ -151,16 +152,16 @@ var Ge = {
151
152
  }
152
153
  }
153
154
  }
154
- function R() {
155
+ function te() {
155
156
  g.value.push({
156
157
  key: "",
157
158
  value: ""
158
159
  });
159
160
  }
160
- function z(e) {
161
+ function R(e) {
161
162
  g.value.splice(e, 1);
162
163
  }
163
- function B() {
164
+ function z() {
164
165
  let e = {};
165
166
  for (let t of g.value) t.key.trim() && (e[t.key.trim()] = t.value);
166
167
  return {
@@ -174,7 +175,7 @@ var Ge = {
174
175
  data: Object.keys(e).length ? e : void 0
175
176
  };
176
177
  }
177
- async function V() {
178
+ async function B() {
178
179
  let e = f.value;
179
180
  if (e && !C.value) {
180
181
  if (!m.title.trim()) {
@@ -183,7 +184,7 @@ var Ge = {
183
184
  }
184
185
  C.value = !0;
185
186
  try {
186
- let t = B(), n = O.value.length ? O.value : T.value.map((e) => e.id);
187
+ let t = z(), n = O.value.length ? O.value : T.value.map((e) => e.id);
187
188
  await e.sendNotification?.(n, t), i.add({
188
189
  severity: "success",
189
190
  detail: r("components.notification_interface.sent"),
@@ -203,12 +204,12 @@ var Ge = {
203
204
  return x(f, (e) => {
204
205
  e && (I(), L());
205
206
  }, { immediate: !0 }), (e, t) => {
206
- let n = Ne, r = Fe, i = Pe, a = ze, l = ke, u = Ue, d = te, y = $, x = Ie;
207
+ let n = Fe, r = $, i = Ie, a = Ve, l = je, u = Ge, d = he, y = Le, x = Re;
207
208
  return s(), S("div", null, [
208
- E("h3", Qe, c(e.$t("components.notification_interface.template")), 1),
209
- E("div", $e, [
210
- E("div", et, [
211
- E("label", tt, c(e.$t("components.notification_interface.title")), 1),
209
+ E("h3", et, c(e.$t("components.notification_interface.template")), 1),
210
+ E("div", tt, [
211
+ E("div", nt, [
212
+ E("label", rt, c(e.$t("components.notification_interface.title")), 1),
212
213
  M(n, {
213
214
  modelValue: v(m).title,
214
215
  "onUpdate:modelValue": [t[0] ||= (e) => v(m).title = e, t[1] ||= (e) => _.value = !1],
@@ -220,22 +221,22 @@ var Ge = {
220
221
  "placeholder",
221
222
  "invalid"
222
223
  ]),
223
- v(_) ? (s(), S("p", nt, c(e.$t("components.notification_interface.title_required")), 1)) : h("", !0)
224
+ v(_) ? (s(), S("p", it, c(e.$t("components.notification_interface.title_required")), 1)) : h("", !0)
224
225
  ]),
225
- E("div", rt, [E("label", it, c(e.$t("components.notification_interface.subtitle")), 1), M(n, {
226
+ E("div", at, [E("label", ot, c(e.$t("components.notification_interface.subtitle")), 1), M(n, {
226
227
  modelValue: v(m).subtitle,
227
228
  "onUpdate:modelValue": t[2] ||= (e) => v(m).subtitle = e,
228
229
  placeholder: e.$t("components.notification_interface.subtitle"),
229
230
  class: "w-full"
230
231
  }, null, 8, ["modelValue", "placeholder"])]),
231
- E("div", at, [E("label", ot, c(e.$t("components.notification_interface.body")), 1), M(r, {
232
+ E("div", st, [E("label", ct, c(e.$t("components.notification_interface.body")), 1), M(r, {
232
233
  modelValue: v(m).body,
233
234
  "onUpdate:modelValue": t[3] ||= (e) => v(m).body = e,
234
235
  placeholder: e.$t("components.notification_interface.body"),
235
236
  rows: "3",
236
237
  class: "w-full"
237
238
  }, null, 8, ["modelValue", "placeholder"])]),
238
- E("div", st, [E("label", ct, c(e.$t("components.notification_interface.severity")), 1), M(i, {
239
+ E("div", lt, [E("label", ut, c(e.$t("components.notification_interface.severity")), 1), M(i, {
239
240
  modelValue: v(m).severity,
240
241
  "onUpdate:modelValue": t[4] ||= (e) => v(m).severity = e,
241
242
  options: v(p),
@@ -243,26 +244,26 @@ var Ge = {
243
244
  "option-value": "value",
244
245
  class: "w-full"
245
246
  }, null, 8, ["modelValue", "options"])]),
246
- E("div", lt, [E("label", ut, c(e.$t("components.notification_interface.tag")), 1), M(n, {
247
+ E("div", dt, [E("label", ft, c(e.$t("components.notification_interface.tag")), 1), M(n, {
247
248
  modelValue: v(m).tag,
248
249
  "onUpdate:modelValue": t[5] ||= (e) => v(m).tag = e,
249
250
  placeholder: "motion:cam-1",
250
251
  class: "w-full"
251
252
  }, null, 8, ["modelValue"])]),
252
- E("div", dt, [E("label", ft, c(e.$t("components.notification_interface.image_url")), 1), M(n, {
253
+ E("div", pt, [E("label", mt, c(e.$t("components.notification_interface.image_url")), 1), M(n, {
253
254
  modelValue: v(m).imageUrl,
254
255
  "onUpdate:modelValue": t[6] ||= (e) => v(m).imageUrl = e,
255
256
  placeholder: "https://…",
256
257
  class: "w-full"
257
258
  }, null, 8, ["modelValue"])]),
258
- E("div", pt, [E("label", mt, c(e.$t("components.notification_interface.deep_link")), 1), M(n, {
259
+ E("div", ht, [E("label", gt, c(e.$t("components.notification_interface.deep_link")), 1), M(n, {
259
260
  modelValue: v(m).deepLink,
260
261
  "onUpdate:modelValue": t[7] ||= (e) => v(m).deepLink = e,
261
262
  placeholder: "/cameras/cam-1",
262
263
  class: "w-full"
263
264
  }, null, 8, ["modelValue"])]),
264
- E("div", ht, [
265
- E("label", gt, c(e.$t("components.notification_interface.data")), 1),
265
+ E("div", _t, [
266
+ E("label", vt, c(e.$t("components.notification_interface.data")), 1),
266
267
  (s(!0), S(w, null, o(v(g), (t, r) => (s(), S("div", {
267
268
  key: r,
268
269
  class: "flex gap-2 items-center"
@@ -292,7 +293,7 @@ var Ge = {
292
293
  rounded: "",
293
294
  severity: "danger",
294
295
  class: "cui-icon-md shrink-0",
295
- onClick: (e) => z(r)
296
+ onClick: (e) => R(r)
296
297
  }, {
297
298
  icon: b(() => [M(a, {
298
299
  width: "100%",
@@ -307,17 +308,17 @@ var Ge = {
307
308
  fluid: "",
308
309
  class: "cui-button-medium",
309
310
  label: e.$t("components.notification_interface.add_data"),
310
- onClick: R
311
+ onClick: te
311
312
  }, {
312
313
  icon: b(() => [M(u, { class: "w-4 h-4" })]),
313
314
  _: 1
314
315
  }, 8, ["label"])
315
316
  ])
316
317
  ]),
317
- E("div", _t, [E("h3", vt, c(e.$t("components.notification_interface.targets")), 1), v(D) ? (s(), S("div", yt, [M(d, {
318
+ E("div", yt, [E("h3", bt, c(e.$t("components.notification_interface.targets")), 1), v(D) ? (s(), S("div", xt, [M(d, {
318
319
  class: "w-[24px] h-[24px] m-0",
319
320
  "stroke-width": "5"
320
- })])) : v(F).length ? (s(), S("div", xt, [E("span", St, c(e.$t("components.notification_interface.targets_hint")), 1), M(y, {
321
+ })])) : v(F).length ? (s(), S("div", Ct, [E("span", wt, c(e.$t("components.notification_interface.targets_hint")), 1), M(y, {
321
322
  modelValue: v(O),
322
323
  "onUpdate:modelValue": t[8] ||= (e) => ee(O) ? O.value = e : null,
323
324
  options: v(F),
@@ -331,8 +332,8 @@ var Ge = {
331
332
  "modelValue",
332
333
  "options",
333
334
  "placeholder"
334
- ])])) : (s(), S("div", bt, c(e.$t("components.notification_interface.no_devices")), 1))]),
335
- v(A)?.length ? (s(), S("div", Ct, [E("h3", wt, c(e.$t("components.notification_interface.settings")), 1), M(x, {
335
+ ])])) : (s(), S("div", St, c(e.$t("components.notification_interface.no_devices")), 1))]),
336
+ v(A)?.length ? (s(), S("div", Tt, [E("h3", Et, c(e.$t("components.notification_interface.settings")), 1), M(x, {
336
337
  "schema-form": {
337
338
  schema: v(A),
338
339
  config: {}
@@ -346,7 +347,7 @@ var Ge = {
346
347
  loading: v(C),
347
348
  disabled: !v(f) || v(C),
348
349
  label: e.$t("components.notification_interface.send_test"),
349
- onClick: V
350
+ onClick: B
350
351
  }, null, 8, [
351
352
  "loading",
352
353
  "disabled",
@@ -355,13 +356,13 @@ var Ge = {
355
356
  ]);
356
357
  };
357
358
  }
358
- }), Et = { class: "mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, Dt = ["src"], Ot = { class: "text-sm text-muted mb-4" }, kt = {
359
+ }), Ot = { class: "mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, kt = ["src"], At = { class: "text-sm text-muted mb-4" }, jt = {
359
360
  key: 0,
360
361
  class: "ml-1"
361
- }, At = { class: "flex gap-2 mb-4" }, jt = {
362
+ }, Mt = { class: "flex gap-2 mb-4" }, Nt = {
362
363
  key: 0,
363
364
  class: "flex flex-col gap-2"
364
- }, Mt = { class: "text-sm truncate flex-1 mr-3" }, Nt = { class: "flex items-center gap-2 shrink-0" }, Pt = /* @__PURE__ */ A({
365
+ }, Pt = { class: "text-sm truncate flex-1 mr-3" }, Ft = { class: "flex items-center gap-2 shrink-0" }, It = /* @__PURE__ */ A({
365
366
  __name: "PluginClipInterface",
366
367
  props: {
367
368
  src: {},
@@ -393,15 +394,15 @@ var Ge = {
393
394
  }
394
395
  }
395
396
  return n({}), (n, r) => {
396
- let i = Ne, f = ke, m = I;
397
+ let i = Fe, f = je, m = I;
397
398
  return s(), S("div", null, [
398
- E("div", Et, [E("img", {
399
+ E("div", Ot, [E("img", {
399
400
  src: e.src,
400
401
  alt: "CLIP test image",
401
402
  class: "max-w-full max-h-[50vh] w-auto object-contain"
402
- }, null, 8, Dt)]),
403
- E("div", Ot, [O(c(e.response.embeddings.length) + " embedding(s), " + c(e.response.embeddings[0]?.embedding?.length ?? 0) + "-dim ", 1), e.response.embeddingModel ? (s(), S("span", kt, "(" + c(e.response.embeddingModel) + ")", 1)) : h("", !0)]),
404
- E("div", At, [M(i, {
403
+ }, null, 8, kt)]),
404
+ E("div", At, [O(c(e.response.embeddings.length) + " embedding(s), " + c(e.response.embeddings[0]?.embedding?.length ?? 0) + "-dim ", 1), e.response.embeddingModel ? (s(), S("span", jt, "(" + c(e.response.embeddingModel) + ")", 1)) : h("", !0)]),
405
+ E("div", Mt, [M(i, {
405
406
  modelValue: v(a),
406
407
  "onUpdate:modelValue": r[0] ||= (e) => ee(a) ? a.value = e : null,
407
408
  class: "flex-1",
@@ -413,10 +414,10 @@ var Ge = {
413
414
  loading: v(l),
414
415
  onClick: p
415
416
  }, null, 8, ["label", "loading"])]),
416
- v(u).length ? (s(), S("div", jt, [(s(!0), S(w, null, o(v(u), (e, t) => (s(), S("div", {
417
+ v(u).length ? (s(), S("div", Nt, [(s(!0), S(w, null, o(v(u), (e, t) => (s(), S("div", {
417
418
  key: t,
418
419
  class: "flex items-center justify-between p-3 rounded-lg content-background"
419
- }, [E("span", Mt, c(e.query), 1), E("div", Nt, [E("div", { class: d(["text-sm font-medium", e.displayScore >= .5 ? "text-green-500" : e.displayScore >= .25 ? "text-yellow-500" : "text-red-400"]) }, c((e.displayScore * 100).toFixed(0)) + "% ", 3), M(m, {
420
+ }, [E("span", Pt, c(e.query), 1), E("div", Ft, [E("div", { class: d(["text-sm font-medium", e.displayScore >= .5 ? "text-green-500" : e.displayScore >= .25 ? "text-yellow-500" : "text-red-400"]) }, c((e.displayScore * 100).toFixed(0)) + "% ", 3), M(m, {
420
421
  value: e.displayScore >= .5 ? "Match" : e.displayScore >= .25 ? "Possible" : "No match",
421
422
  severity: e.displayScore >= .5 ? "success" : e.displayScore >= .25 ? "warn" : "danger",
422
423
  class: "text-xs"
@@ -424,7 +425,99 @@ var Ge = {
424
425
  ]);
425
426
  };
426
427
  }
427
- }), Ft = /* @__PURE__ */ A({
428
+ }), Lt = [
429
+ "strict",
430
+ "balanced",
431
+ "relaxed"
432
+ ], Rt = { class: "relative mb-4 rounded-xl overflow-hidden w-fit mx-auto" }, zt = ["src"], Bt = { class: "text-sm text-muted mb-4" }, Vt = {
433
+ key: 0,
434
+ class: "ml-1"
435
+ }, Ht = {
436
+ key: 1,
437
+ class: "ml-1"
438
+ }, Ut = { class: "flex gap-2 mb-4" }, Wt = {
439
+ key: 0,
440
+ class: "flex flex-col gap-2"
441
+ }, Gt = { class: "text-sm truncate flex-1 mr-3" }, Kt = { class: "flex items-center gap-2 shrink-0" }, qt = {
442
+ key: 0,
443
+ class: "text-sm font-medium"
444
+ }, Jt = /* @__PURE__ */ A({
445
+ __name: "PluginFaceRecognition",
446
+ props: {
447
+ src: {},
448
+ embeddingModel: {},
449
+ dimensions: {},
450
+ landmarks: {},
451
+ quality: {},
452
+ onMatch: { type: Function }
453
+ },
454
+ setup(e, { expose: t }) {
455
+ let n = e, { t: r } = De(), i = ye(), a = j("balanced"), l = j(!1), u = j([]), d = y(() => Lt.map((e) => ({
456
+ value: e,
457
+ label: r(`components.face_recognition_interface.sensitivity_${e}`)
458
+ })));
459
+ async function f() {
460
+ if (!l.value) {
461
+ l.value = !0;
462
+ try {
463
+ let e = await n.onMatch(a.value);
464
+ u.value.unshift({
465
+ sensitivity: a.value,
466
+ identity: e?.identity,
467
+ score: e?.score
468
+ });
469
+ } catch (e) {
470
+ i.error("Face match failed:", e);
471
+ } finally {
472
+ l.value = !1;
473
+ }
474
+ }
475
+ }
476
+ return P(f), t({}), (t, n) => {
477
+ let r = Ie, i = je, p = I;
478
+ return s(), S("div", null, [
479
+ E("div", Rt, [E("img", {
480
+ src: e.src,
481
+ alt: "Face recognition test image",
482
+ class: "block max-w-full max-h-[50vh] w-auto object-contain"
483
+ }, null, 8, zt), (s(!0), S(w, null, o(e.landmarks, (e, t) => (s(), S("span", {
484
+ key: t,
485
+ class: "absolute size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary ring-2 ring-white/80",
486
+ style: C({
487
+ left: `${e[0] * 100}%`,
488
+ top: `${e[1] * 100}%`
489
+ })
490
+ }, null, 4))), 128))]),
491
+ E("div", Bt, [
492
+ O(c(e.dimensions) + "-dim ", 1),
493
+ e.embeddingModel ? (s(), S("span", Vt, "(" + c(e.embeddingModel) + ")", 1)) : h("", !0),
494
+ e.quality == null ? h("", !0) : (s(), S("span", Ht, "· " + c(t.$t("components.face_recognition_interface.quality", { value: (e.quality * 100).toFixed(0) })), 1))
495
+ ]),
496
+ E("div", Ut, [M(r, {
497
+ modelValue: v(a),
498
+ "onUpdate:modelValue": n[0] ||= (e) => ee(a) ? a.value = e : null,
499
+ options: v(d),
500
+ "option-label": "label",
501
+ "option-value": "value",
502
+ class: "flex-1"
503
+ }, null, 8, ["modelValue", "options"]), M(i, {
504
+ class: "cui-button-medium",
505
+ label: t.$t("components.face_recognition_interface.match"),
506
+ loading: v(l),
507
+ onClick: f
508
+ }, null, 8, ["label", "loading"])]),
509
+ v(u).length ? (s(), S("div", Wt, [(s(!0), S(w, null, o(v(u), (e, n) => (s(), S("div", {
510
+ key: n,
511
+ class: "flex items-center justify-between p-3 rounded-lg content-background"
512
+ }, [E("span", Gt, c(e.identity ?? t.$t("components.face_recognition_interface.no_match")), 1), E("div", Kt, [e.score == null ? h("", !0) : (s(), S("div", qt, c((e.score * 100).toFixed(0)) + "%", 1)), M(p, {
513
+ value: t.$t(`components.face_recognition_interface.sensitivity_${e.sensitivity}`),
514
+ severity: e.identity ? "success" : "danger",
515
+ class: "text-xs"
516
+ }, null, 8, ["value", "severity"])])]))), 128))])) : h("", !0)
517
+ ]);
518
+ };
519
+ }
520
+ }), Yt = /* @__PURE__ */ A({
428
521
  __name: "PluginMotionInterface",
429
522
  props: { response: {} },
430
523
  setup(e) {
@@ -441,7 +534,7 @@ var Ge = {
441
534
  class: "max-w-full max-h-[60vh] w-auto mx-auto"
442
535
  }, "Your browser does not support the video tag.", 512)]));
443
536
  }
444
- }), It = { class: "mb-5 flex justify-center" }, Lt = { class: "relative w-fit" }, Rt = ["src"], zt = /* @__PURE__ */ A({
537
+ }), Xt = { class: "mb-5 flex justify-center" }, Zt = { class: "relative w-fit" }, Qt = ["src"], $t = /* @__PURE__ */ A({
445
538
  __name: "PluginObjectInterface",
446
539
  props: {
447
540
  src: {},
@@ -450,39 +543,39 @@ var Ge = {
450
543
  setup(e) {
451
544
  let { response: t, src: n } = a(e), r = y(() => t.value.detections);
452
545
  return (e, t) => {
453
- let i = ce;
454
- return s(), S("div", It, [E("div", Lt, [M(i, { detections: v(r) }, null, 8, ["detections"]), E("img", {
546
+ let i = ue;
547
+ return s(), S("div", Xt, [E("div", Zt, [M(i, { detections: v(r) }, null, 8, ["detections"]), E("img", {
455
548
  src: v(n),
456
549
  alt: "Preview",
457
550
  class: "max-w-full max-h-[60vh] w-auto"
458
- }, null, 8, Rt)])]);
551
+ }, null, 8, Qt)])]);
459
552
  };
460
553
  }
461
- }), Bt = {
554
+ }), en = {
462
555
  key: 0,
463
556
  class: "w-full"
464
- }, Vt = { class: "flex flex-col justify-center items-center mb-5" }, Ht = {
557
+ }, tn = { class: "flex flex-col justify-center items-center mb-5" }, nn = {
465
558
  for: "restoreInput",
466
559
  class: "cursor-pointer text-center text-sm"
467
- }, Ut = ["accept"], Wt = {
560
+ }, rn = ["accept"], an = {
468
561
  key: 0,
469
562
  class: "text-red-500 text-sm"
470
- }, Gt = {
563
+ }, on = {
471
564
  key: 1,
472
565
  class: "w-full flex flex-col items-center justify-center"
473
- }, Kt = {
566
+ }, sn = {
474
567
  key: 0,
475
568
  class: "relative mb-4"
476
- }, qt = ["src"], Jt = {
569
+ }, cn = ["src"], ln = {
477
570
  key: 1,
478
571
  class: "relative mb-4 w-full"
479
- }, Yt = {
572
+ }, un = {
480
573
  key: 2,
481
574
  class: "relative mb-4 w-full"
482
- }, Xt = ["src", "type"], Zt = { class: "flex items-center justify-center" }, Qt = { class: "mx-2" }, $t = { class: "text-muted" }, en = { class: "flex items-center justify-center mt-2 text-xs text-muted" }, tn = { class: "mt-10" }, nn = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, rn = {
575
+ }, dn = ["src", "type"], fn = { class: "flex items-center justify-center" }, pn = { class: "mx-2" }, mn = { class: "text-muted" }, hn = { class: "flex items-center justify-center mt-2 text-xs text-muted" }, gn = { class: "mt-10" }, _n = { class: "text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, vn = {
483
576
  key: 0,
484
577
  class: "flex items-center justify-center text-sm text-muted mt-5"
485
- }, an = /* @__PURE__ */ A({
578
+ }, yn = /* @__PURE__ */ A({
486
579
  __name: "CuiDetectionInterface",
487
580
  props: {
488
581
  type: {},
@@ -495,13 +588,15 @@ var Ge = {
495
588
  audioDetection: "drop_or_select_audio_to_detect",
496
589
  objectDetection: "drop_or_select_image_to_detect_objects",
497
590
  faceDetection: "drop_or_select_image_to_detect_faces",
591
+ faceRecognition: "drop_or_select_image_to_recognize_face",
498
592
  licensePlateDetection: "drop_or_select_image_to_detect_license_plates",
499
593
  classifierDetection: "drop_or_select_image_to_classify",
500
594
  clipDetection: "drop_or_select_image_for_semantic_search"
501
- }, i = t, o = n, l = ye(), { t: f } = De(), p = se(), g = ae(), { type: _, pluginName: ee } = a(i), { plugin: C, isLoading: w } = Ae(ee), D = T("fileInputRef"), A = T("videoPlayerRef"), N = T("audioPlayerRef"), P = k([]), F = j(!1), I = j(!1), L = j(!1), R = j(!1), z = j(""), B = j(!1), V = j(), te = j(!0), ne = k(), re = j(!1), ie = y(() => re.value || w.value || B.value), oe = y(() => r[_.value]), H = y(() => {
595
+ }, i = t, o = n, l = ye(), { t: f } = De(), p = ne(), g = ce(), { type: _, pluginName: ee } = a(i), { plugin: C, isLoading: w } = Me(ee), { plugin: D } = Me("@camera.ui/camera-ui-nvr"), A = T("fileInputRef"), N = T("videoPlayerRef"), P = T("audioPlayerRef"), F = k([]), I = j(!1), L = j(!1), te = j(!1), R = j(!1), z = j(""), B = j(!1), V = j(), re = j(!0), ie = k(), ae = j(!1), oe = y(() => ae.value || w.value || B.value), se = y(() => r[_.value]), H = y(() => {
502
596
  switch (_.value) {
503
597
  case "objectDetection":
504
598
  case "faceDetection":
599
+ case "faceRecognition":
505
600
  case "licensePlateDetection":
506
601
  case "classifierDetection":
507
602
  case "clipDetection": return "image";
@@ -523,10 +618,10 @@ var Ge = {
523
618
  case "audio": return J;
524
619
  default: return 0;
525
620
  }
526
- }), ce = y(() => U.value.join(","));
527
- async function le() {
621
+ }), le = y(() => U.value.join(","));
622
+ async function ue() {
528
623
  if (C.value) {
529
- re.value = !0;
624
+ ae.value = !0;
530
625
  try {
531
626
  let e;
532
627
  switch (_.value) {
@@ -542,6 +637,9 @@ var Ge = {
542
637
  case "faceDetection":
543
638
  e = await C.value.faceDetectionSettings?.();
544
639
  break;
640
+ case "faceRecognition":
641
+ e = await C.value.faceEmbeddingSettings?.();
642
+ break;
545
643
  case "licensePlateDetection":
546
644
  e = await C.value.licensePlateDetectionSettings?.();
547
645
  break;
@@ -550,59 +648,59 @@ var Ge = {
550
648
  break;
551
649
  case "clipDetection": e = await C.value.clipSettings?.();
552
650
  }
553
- ne.value = e;
651
+ ie.value = e;
554
652
  } catch (e) {
555
- l.error("Failed to load interface schema:", e), ne.value = void 0;
653
+ l.error("Failed to load interface schema:", e), ie.value = void 0;
556
654
  } finally {
557
- re.value = !1;
655
+ ae.value = !1;
558
656
  }
559
657
  }
560
658
  }
561
- function ue(e) {
562
- let t = P.value.findIndex((t) => t.name === e);
563
- t > -1 && (P.value.splice(t, 1), pe(), z.value = "", H.value === "video" && A.value && (A.value.src = ""), V.value = void 0, o("update:file", null), o("update:metadata", null));
564
- }
565
659
  function de(e) {
566
- if (F.value = !1, I.value = !1, R.value = !1, P.value = [], e.dataTransfer) {
567
- if (e.dataTransfer.files.length > 1) I.value = !0;
660
+ let t = F.value.findIndex((t) => t.name === e);
661
+ t > -1 && (F.value.splice(t, 1), me(), z.value = "", H.value === "video" && N.value && (N.value.src = ""), V.value = void 0, o("update:file", null), o("update:metadata", null));
662
+ }
663
+ function fe(e) {
664
+ if (I.value = !1, L.value = !1, R.value = !1, F.value = [], e.dataTransfer) {
665
+ if (e.dataTransfer.files.length > 1) L.value = !0;
568
666
  else {
569
667
  let t = e.dataTransfer.files[0];
570
- (U.value.length === 0 || U.value.includes(t.type)) && t.size <= W.value ? (P.value.push(t), u(() => {
571
- me(t);
572
- })) : t.size > W.value ? R.value = !0 : I.value = !0;
668
+ (U.value.length === 0 || U.value.includes(t.type)) && t.size <= W.value ? (F.value.push(t), u(() => {
669
+ he(t);
670
+ })) : t.size > W.value ? R.value = !0 : L.value = !0;
573
671
  }
574
672
  }
575
673
  }
576
- function fe(e) {
577
- I.value = !1, R.value = !1, P.value = [];
674
+ function pe(e) {
675
+ L.value = !1, R.value = !1, F.value = [];
578
676
  let t = e.target;
579
677
  if (t && t.files) {
580
- if (t.files?.length > 1) I.value = !0;
678
+ if (t.files?.length > 1) L.value = !0;
581
679
  else if (t.files.length === 1) {
582
680
  let e = t.files[0], n = U.value.length === 0 || U.value.includes(e.type);
583
- e.size <= W.value && n ? (P.value.push(e), u(() => {
584
- me(e);
585
- })) : e.size > W.value ? R.value = !0 : I.value = !0;
681
+ e.size <= W.value && n ? (F.value.push(e), u(() => {
682
+ he(e);
683
+ })) : e.size > W.value ? R.value = !0 : L.value = !0;
586
684
  }
587
685
  }
588
686
  }
589
- function pe() {
590
- D.value && (D.value.value = "");
687
+ function me() {
688
+ A.value && (A.value.value = "");
591
689
  }
592
- function me(e) {
690
+ function he(e) {
593
691
  B.value = !0;
594
692
  let t = URL.createObjectURL(e);
595
693
  switch (H.value) {
596
694
  case "image":
597
- he(e, t);
695
+ ge(e, t);
598
696
  break;
599
697
  case "video":
600
- ge(e, t);
698
+ _e(e, t);
601
699
  break;
602
- case "audio": _e(e, t);
700
+ case "audio": G(e, t);
603
701
  }
604
702
  }
605
- function he(e, t) {
703
+ function ge(e, t) {
606
704
  let n = new Image();
607
705
  n.src = t, n.onload = () => {
608
706
  z.value = n.src;
@@ -613,12 +711,12 @@ var Ge = {
613
711
  V.value = t, o("update:metadata", t), o("update:file", e), B.value = !1;
614
712
  };
615
713
  }
616
- function ge(e, t) {
617
- A.value && (A.value.src = t, A.value.load(), A.value.onloadeddata = () => {
714
+ function _e(e, t) {
715
+ N.value && (N.value.src = t, N.value.load(), N.value.onloadeddata = () => {
618
716
  o("update:file", e), B.value = !1;
619
717
  });
620
718
  }
621
- function _e(e, t) {
719
+ function G(e, t) {
622
720
  z.value = t;
623
721
  let n = new Audio();
624
722
  n.src = t, n.onloadedmetadata = () => {
@@ -626,17 +724,17 @@ var Ge = {
626
724
  V.value = t, o("update:metadata", t), o("update:file", e), B.value = !1;
627
725
  };
628
726
  }
629
- function G(e) {
727
+ function K(e) {
630
728
  return e < 1024 ? e + " bytes" : e < 1048576 ? (e / 1024).toFixed(1) + " KB" : (e / 1048576).toFixed(1) + " MB";
631
729
  }
632
- function K(e, t) {
730
+ function ve(e, t) {
633
731
  let n = 0, r = 0, i = 0;
634
732
  for (let a = 0; a < e.length; a++) n += e[a] * t[a], r += e[a] * e[a], i += t[a] * t[a];
635
733
  return r && i ? n / (Math.sqrt(r) * Math.sqrt(i)) : 0;
636
734
  }
637
- async function ve(e) {
638
- if (!P.value.length) {
639
- L.value = !0;
735
+ async function Ce(e) {
736
+ if (!F.value.length) {
737
+ te.value = !0;
640
738
  return;
641
739
  }
642
740
  if (!C.value) {
@@ -645,7 +743,7 @@ var Ge = {
645
743
  }
646
744
  B.value = !0;
647
745
  try {
648
- let t = await P.value[0].arrayBuffer();
746
+ let t = await F.value[0].arrayBuffer();
649
747
  if (_.value === "audioDetection") {
650
748
  let n = await C.value.testAudioDetection?.(new Uint8Array(t), V.value, e);
651
749
  if (!n) {
@@ -670,7 +768,7 @@ var Ge = {
670
768
  l.warn("No motion detection interface available");
671
769
  return;
672
770
  }
673
- g.openComponentDialog(Ft, { data: {
771
+ g.openComponentDialog(Yt, { data: {
674
772
  title: f("components.dialog.title.result"),
675
773
  hideConfirmButton: !0,
676
774
  contentProps: { response: n }
@@ -681,7 +779,7 @@ var Ge = {
681
779
  l.warn("No face detection interface available");
682
780
  return;
683
781
  }
684
- g.openComponentDialog(zt, { data: {
782
+ g.openComponentDialog($t, { data: {
685
783
  title: f("components.dialog.title.result"),
686
784
  hideConfirmButton: !0,
687
785
  contentProps: {
@@ -689,13 +787,44 @@ var Ge = {
689
787
  response: n
690
788
  }
691
789
  } });
790
+ } else if (_.value === "faceRecognition") {
791
+ let n = await C.value.embedFaceImages?.([new Uint8Array(t)], e), r = n?.[0]?.embedding;
792
+ if (!r?.length) {
793
+ p.add({
794
+ severity: "info",
795
+ detail: f("components.face_recognition_interface.no_face"),
796
+ life: 3e3
797
+ });
798
+ return;
799
+ }
800
+ if (!D.value) {
801
+ p.add({
802
+ severity: "info",
803
+ detail: f("components.face_recognition_interface.needs_nvr"),
804
+ life: 3e3
805
+ });
806
+ return;
807
+ }
808
+ let i = n[0].embeddingModel;
809
+ g.openComponentDialog(Jt, { data: {
810
+ title: f("components.dialog.title.result"),
811
+ hideConfirmButton: !0,
812
+ contentProps: {
813
+ src: z,
814
+ embeddingModel: i,
815
+ dimensions: r.length,
816
+ landmarks: n[0].landmarks,
817
+ quality: n[0].quality,
818
+ onMatch: async (e) => (await D.value.matchFaces([r], i, e))?.[0] ?? void 0
819
+ }
820
+ } });
692
821
  } else if (_.value === "licensePlateDetection") {
693
822
  let n = await C.value.testLicensePlateDetection?.(new Uint8Array(t), V.value, e);
694
823
  if (!n) {
695
824
  l.warn("No license plate detection interface available");
696
825
  return;
697
826
  }
698
- g.openComponentDialog(zt, { data: {
827
+ g.openComponentDialog($t, { data: {
699
828
  title: f("components.dialog.title.result"),
700
829
  hideConfirmButton: !0,
701
830
  contentProps: {
@@ -709,7 +838,7 @@ var Ge = {
709
838
  l.warn("No classifier detection interface available");
710
839
  return;
711
840
  }
712
- g.openComponentDialog(zt, { data: {
841
+ g.openComponentDialog($t, { data: {
713
842
  title: f("components.dialog.title.result"),
714
843
  hideConfirmButton: !0,
715
844
  contentProps: {
@@ -732,7 +861,7 @@ var Ge = {
732
861
  return;
733
862
  }
734
863
  let r = n.embeddings[0].embedding;
735
- g.openComponentDialog(Pt, { data: {
864
+ g.openComponentDialog(It, { data: {
736
865
  title: f("components.dialog.title.result"),
737
866
  hideConfirmButton: !0,
738
867
  contentProps: {
@@ -740,7 +869,7 @@ var Ge = {
740
869
  response: n,
741
870
  onTextSearch: async (e) => {
742
871
  let t = n.embeddingModel, i = C.value.getTextEmbeddings ? (await C.value.getTextEmbeddings(e))?.find((e) => e.embeddingModel === t) : void 0;
743
- return i ??= await C.value.getTextEmbedding(e), !i?.embedding?.length || t && i.embeddingModel && i.embeddingModel !== t ? { score: 0 } : { score: K(r, i.embedding) };
872
+ return i ??= await C.value.getTextEmbedding(e), !i?.embedding?.length || t && i.embeddingModel && i.embeddingModel !== t ? { score: 0 } : { score: ve(r, i.embedding) };
744
873
  }
745
874
  }
746
875
  } });
@@ -750,7 +879,7 @@ var Ge = {
750
879
  l.warn("No object detection interface available");
751
880
  return;
752
881
  }
753
- g.openComponentDialog(zt, { data: {
882
+ g.openComponentDialog($t, { data: {
754
883
  title: f("components.dialog.title.result"),
755
884
  hideConfirmButton: !0,
756
885
  contentProps: {
@@ -770,45 +899,45 @@ var Ge = {
770
899
  }
771
900
  }
772
901
  return x(C, (e) => {
773
- e && le();
774
- }, { immediate: !0 }), x(P, (e) => {
775
- e.length > 0 ? (L.value = !1, te.value = !1) : (z.value = "", V.value = void 0, te.value = !0);
902
+ e && ue();
903
+ }, { immediate: !0 }), x(F, (e) => {
904
+ e.length > 0 ? (te.value = !1, re.value = !1) : (z.value = "", V.value = void 0, re.value = !0);
776
905
  }, {
777
906
  immediate: !0,
778
907
  deep: !0
779
908
  }), (t, n) => {
780
- let r = ze, i = ke, a = Ie;
909
+ let r = Ve, i = je, a = Re;
781
910
  return s(), S("div", null, [
782
911
  E("div", {
783
912
  class: "file-upload-box",
784
- onDrop: n[1] ||= e((e) => de(e), ["prevent"]),
785
- onDragover: n[2] ||= e((e) => F.value = !0, ["prevent"]),
786
- onDragenter: n[3] ||= e((e) => F.value = !0, ["prevent"]),
787
- onDragleave: n[4] ||= e((e) => F.value = !1, ["prevent"])
788
- }, [v(P).length ? (s(), S("div", Gt, [v(H) === "image" ? (s(), S("div", Kt, [E("img", {
913
+ onDrop: n[1] ||= e((e) => fe(e), ["prevent"]),
914
+ onDragover: n[2] ||= e((e) => I.value = !0, ["prevent"]),
915
+ onDragenter: n[3] ||= e((e) => I.value = !0, ["prevent"]),
916
+ onDragleave: n[4] ||= e((e) => I.value = !1, ["prevent"])
917
+ }, [v(F).length ? (s(), S("div", on, [v(H) === "image" ? (s(), S("div", sn, [E("img", {
789
918
  src: v(z),
790
919
  alt: "Preview",
791
920
  class: "w-full"
792
- }, null, 8, qt)])) : v(H) === "video" ? (s(), S("div", Jt, [E("video", {
921
+ }, null, 8, cn)])) : v(H) === "video" ? (s(), S("div", ln, [E("video", {
793
922
  ref_key: "videoPlayerRef",
794
- ref: A,
923
+ ref: N,
795
924
  controls: "",
796
925
  class: "w-full"
797
- }, "Your browser does not support the video tag.", 512)])) : v(H) === "audio" ? (s(), S("div", Yt, [E("audio", {
926
+ }, "Your browser does not support the video tag.", 512)])) : v(H) === "audio" ? (s(), S("div", un, [E("audio", {
798
927
  ref_key: "audioPlayerRef",
799
- ref: N,
928
+ ref: P,
800
929
  controls: "",
801
930
  class: "w-full"
802
931
  }, [E("source", {
803
932
  src: v(z),
804
- type: v(P)[0].type
805
- }, null, 8, Xt), n[5] ||= O(" Your browser does not support the audio element. ", -1)], 512)])) : h("", !0), E("div", Zt, [
933
+ type: v(F)[0].type
934
+ }, null, 8, dn), n[5] ||= O(" Your browser does not support the audio element. ", -1)], 512)])) : h("", !0), E("div", fn, [
806
935
  M(i, {
807
936
  text: "",
808
937
  rounded: "",
809
938
  severity: "danger",
810
939
  class: "cui-icon-md shrink-0",
811
- onClick: n[0] ||= e((e) => ue(v(P)[0].name), ["stop"])
940
+ onClick: n[0] ||= e((e) => de(v(F)[0].name), ["stop"])
812
941
  }, {
813
942
  icon: b(() => [M(r, {
814
943
  width: "100%",
@@ -816,57 +945,57 @@ var Ge = {
816
945
  })]),
817
946
  _: 1
818
947
  }),
819
- E("b", Qt, c(v(P)[0].name), 1),
820
- E("span", $t, "(" + c(G(v(P)[0].size)) + ")", 1)
821
- ])])) : (s(), S("div", Bt, [E("div", Vt, [
822
- E("label", Ht, c(t.$t(`components.detection_interface.${v(oe)}`)), 1),
948
+ E("b", pn, c(v(F)[0].name), 1),
949
+ E("span", mn, "(" + c(K(v(F)[0].size)) + ")", 1)
950
+ ])])) : (s(), S("div", en, [E("div", tn, [
951
+ E("label", nn, c(t.$t(`components.detection_interface.${v(se)}`)), 1),
823
952
  E("input", {
824
953
  id: "restoreInput",
825
954
  ref_key: "fileInputRef",
826
- ref: D,
955
+ ref: A,
827
956
  type: "file",
828
957
  class: "hidden",
829
- accept: v(ce),
830
- onChange: fe
831
- }, null, 40, Ut),
832
- v(I) ? (s(), S("p", Wt, c(t.$t(`components.detection_interface.only_one_${v(H)}_allowed`)), 1)) : h("", !0),
833
- v(L) ? (s(), S("p", {
958
+ accept: v(le),
959
+ onChange: pe
960
+ }, null, 40, rn),
961
+ v(L) ? (s(), S("p", an, c(t.$t(`components.detection_interface.only_one_${v(H)}_allowed`)), 1)) : h("", !0),
962
+ v(te) ? (s(), S("p", {
834
963
  key: 1,
835
- class: d(["text-red-500 text-sm", { "mt-2": v(I) }])
964
+ class: d(["text-red-500 text-sm", { "mt-2": v(L) }])
836
965
  }, c(t.$t(`components.detection_interface.${v(H)}_required`)), 3)) : h("", !0),
837
966
  v(R) ? (s(), S("p", {
838
967
  key: 2,
839
- class: d(["text-red-500 text-sm", { "mt-2": v(I) || v(L) }])
968
+ class: d(["text-red-500 text-sm", { "mt-2": v(L) || v(te) }])
840
969
  }, c(t.$t("components.detection_interface.file_size_error")), 3)) : h("", !0)
841
970
  ])]))], 32),
842
- E("div", en, [E("span", null, "(" + c(v(W) / 1024 / 1024) + "MB, " + c(v(U).join(", ")) + ")", 1)]),
843
- E("div", tn, [E("h3", nn, c(t.$t("components.detection_interface.interface_config")), 1), v(ne)?.length ? (s(), m(a, {
971
+ E("div", hn, [E("span", null, "(" + c(v(W) / 1024 / 1024) + "MB, " + c(v(U).join(", ")) + ")", 1)]),
972
+ E("div", gn, [E("h3", _n, c(t.$t("components.detection_interface.interface_config")), 1), v(ie)?.length ? (s(), m(a, {
844
973
  key: 1,
845
974
  "schema-form": {
846
- schema: v(ne),
975
+ schema: v(ie),
847
976
  config: {}
848
977
  },
849
- loading: v(ie),
978
+ loading: v(oe),
850
979
  "save-button-label": t.$t("components.detection_interface.detect"),
851
- "disable-button": v(te),
980
+ "disable-button": v(re),
852
981
  "show-button": "",
853
- onOnFormSubmit: ve
982
+ onOnFormSubmit: Ce
854
983
  }, null, 8, [
855
984
  "schema-form",
856
985
  "loading",
857
986
  "save-button-label",
858
987
  "disable-button"
859
- ])) : (s(), S("div", rn, c(t.$t("components.detection_interface.no_interface_config")), 1))])
988
+ ])) : (s(), S("div", vn, c(t.$t("components.detection_interface.no_interface_config")), 1))])
860
989
  ]);
861
990
  };
862
991
  }
863
- }), on = {
992
+ }), bn = {
864
993
  viewBox: "0 0 24 24",
865
994
  width: "1.2em",
866
995
  height: "1.2em"
867
996
  };
868
- function sn(e, t) {
869
- return s(), S("svg", on, [...t[0] ||= [E("path", {
997
+ function xn(e, t) {
998
+ return s(), S("svg", bn, [...t[0] ||= [E("path", {
870
999
  fill: "none",
871
1000
  stroke: "currentColor",
872
1001
  "stroke-linecap": "round",
@@ -875,97 +1004,97 @@ function sn(e, t) {
875
1004
  d: "M2 10v3m4-7v11m4-14v18m4-13v7m4-10v13m4-8v3"
876
1005
  }, null, -1)]]);
877
1006
  }
878
- var cn = p({
1007
+ var Sn = p({
879
1008
  name: "lucide-audio-lines",
880
- render: sn
881
- }), ln = {
1009
+ render: xn
1010
+ }), Cn = {
882
1011
  viewBox: "0 0 24 24",
883
1012
  width: "1.2em",
884
1013
  height: "1.2em"
885
1014
  };
886
- function un(e, t) {
887
- return s(), S("svg", ln, [...t[0] ||= [E("path", {
1015
+ function wn(e, t) {
1016
+ return s(), S("svg", Cn, [...t[0] ||= [E("path", {
888
1017
  fill: "currentColor",
889
1018
  d: "M2 7V4q0-.825.588-1.412T4 2h3v2H4v3zm5 15H4q-.825 0-1.412-.587T2 20v-3h2v3h3zm10 0v-2h3v-3h2v3q0 .825-.587 1.413T20 22zm3-15V4h-3V2h3q.825 0 1.413.588T22 4v3zm-7.913 1.913Q11.5 8.325 11.5 7.5t.588-1.412T13.5 5.5t1.413.588T15.5 7.5t-.587 1.413T13.5 9.5t-1.412-.587M12.8 18h-4l1-5.1l-1.8.7V17H6v-4.7l3.95-1.7q.875-.375 1.288-.487T12 10q.525 0 .975.275T13.7 11l1 1.6q.65 1.05 1.763 1.725T19 15v2q-1.65 0-3.088-.687T13.5 14.5z"
890
1019
  }, null, -1)]]);
891
1020
  }
892
- var dn = p({
1021
+ var Tn = p({
893
1022
  name: "material-symbols-detection-and-zone",
894
- render: un
895
- }), fn = {
1023
+ render: wn
1024
+ }), En = {
896
1025
  viewBox: "0 0 24 24",
897
1026
  width: "1.2em",
898
1027
  height: "1.2em"
899
1028
  };
900
- function pn(e, t) {
901
- return s(), S("svg", fn, [...t[0] ||= [E("path", {
1029
+ function Dn(e, t) {
1030
+ return s(), S("svg", En, [...t[0] ||= [E("path", {
902
1031
  fill: "currentColor",
903
1032
  d: "M8.113 13.888Q7.75 13.525 7.75 13t.363-.888T9 11.75t.888.363t.362.887t-.363.888T9 14.25t-.888-.363m6 0q-.362-.362-.362-.887t.363-.888t.887-.362t.888.363t.362.887t-.363.888t-.887.362t-.888-.363M12 20q3.35 0 5.675-2.325T20 12q0-.6-.075-1.162T19.65 9.75q-.525.125-1.05.188T17.5 10q-2.275 0-4.3-.975T9.75 6.3q-.8 1.95-2.287 3.388T4 11.85V12q0 3.35 2.325 5.675T12 20m0 2q-2.075 0-3.9-.787t-3.175-2.138T2.788 15.9T2 12t.788-3.9t2.137-3.175T8.1 2.788T12 2t3.9.788t3.175 2.137T21.213 8.1T22 12t-.788 3.9t-2.137 3.175t-3.175 2.138T12 22"
904
1033
  }, null, -1)]]);
905
1034
  }
906
- var mn = p({
1035
+ var On = p({
907
1036
  name: "material-symbols-face",
908
- render: pn
909
- }), hn = {
1037
+ render: Dn
1038
+ }), kn = {
910
1039
  viewBox: "0 0 24 24",
911
1040
  width: "1.2em",
912
1041
  height: "1.2em"
913
1042
  };
914
- function gn(e, t) {
915
- return s(), S("svg", hn, [...t[0] ||= [E("path", {
1043
+ function An(e, t) {
1044
+ return s(), S("svg", kn, [...t[0] ||= [E("path", {
916
1045
  fill: "currentColor",
917
1046
  d: "M8 17q-.425 0-.712-.288T7 16t.288-.712T8 15h5q-.35-.425-.562-.925T12.1 13H10q-.425 0-.712-.288T9 12t.288-.712T10 11h2.1q.125-.575.338-1.075T13 9H4q-.425 0-.712-.288T3 8t.288-.712T4 7h13q2.075 0 3.538 1.463T22 12t-1.463 3.538T17 17zm9-2q1.25 0 2.125-.875T20 12t-.875-2.125T17 9t-2.125.875T14 12t.875 2.125T17 15M3 13q-.425 0-.712-.288T2 12t.288-.712T3 11h4q.425 0 .713.288T8 12t-.288.713T7 13zm1 4q-.425 0-.712-.288T3 16t.288-.712T4 15h1q.425 0 .713.288T6 16t-.288.713T5 17z"
918
1047
  }, null, -1)]]);
919
1048
  }
920
- var _n = p({
1049
+ var jn = p({
921
1050
  name: "material-symbols-motion-blur-rounded",
922
- render: gn
923
- }), vn = {
1051
+ render: An
1052
+ }), Mn = {
924
1053
  viewBox: "0 0 24 24",
925
1054
  width: "1.2em",
926
1055
  height: "1.2em"
927
1056
  };
928
- function yn(e, t) {
929
- return s(), S("svg", vn, [...t[0] ||= [E("path", {
1057
+ function Nn(e, t) {
1058
+ return s(), S("svg", Mn, [...t[0] ||= [E("path", {
930
1059
  fill: "currentColor",
931
1060
  "fill-rule": "evenodd",
932
1061
  d: "M15.586 2.758a2 2 0 0 1 2.828 0l2.829 2.828a2 2 0 0 1 0 2.829l-2.829 2.828a2 2 0 0 1-2.828 0l-2.829-2.828a2 2 0 0 1 0-2.829zM9 3a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2zm12 12a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2zM9 13a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4a2 2 0 0 1 2-2z",
933
1062
  "clip-rule": "evenodd"
934
1063
  }, null, -1)]]);
935
1064
  }
936
- var bn = p({
1065
+ var Pn = p({
937
1066
  name: "mingcute-classify-2-fill",
938
- render: yn
939
- }), xn = {
1067
+ render: Nn
1068
+ }), Fn = {
940
1069
  viewBox: "0 0 256 256",
941
1070
  width: "1.2em",
942
1071
  height: "1.2em"
943
1072
  };
944
- function Sn(e, t) {
945
- return s(), S("svg", xn, [...t[0] ||= [E("path", {
1073
+ function In(e, t) {
1074
+ return s(), S("svg", Fn, [...t[0] ||= [E("path", {
946
1075
  fill: "currentColor",
947
1076
  d: "M200 156c0 6.5-7.33 12-16 12s-16-5.5-16-12s7.33-12 16-12s16 5.5 16 12m32-100v144a16 16 0 0 1-16 16H40a16 16 0 0 1-16-16V56a16 16 0 0 1 16-16h176a16 16 0 0 1 16 16m-88.63 116.88l-44-104a8 8 0 0 0-14.74 0l-44 104a8 8 0 0 0 14.74 6.24L66.84 152h50.32l11.47 27.12a8 8 0 0 0 14.74-6.24M216 124c0-15.44-14.36-28-32-28a34.86 34.86 0 0 0-20.78 6.68a8 8 0 0 0 9.56 12.83A18.84 18.84 0 0 1 184 112c8.56 0 15.8 5.36 16 11.76v8a35.24 35.24 0 0 0-16-3.76c-17.64 0-32 12.56-32 28s14.36 28 32 28a35.1 35.1 0 0 0 16.93-4.26A8 8 0 0 0 216 176ZM73.61 136h36.78L92 92.53Z"
948
1077
  }, null, -1)]]);
949
1078
  }
950
- var Cn = p({
1079
+ var Ln = p({
951
1080
  name: "ph-text-aa-fill",
952
- render: Sn
953
- }), wn = {
1081
+ render: In
1082
+ }), Rn = {
954
1083
  viewBox: "0 0 24 24",
955
1084
  width: "1.2em",
956
1085
  height: "1.2em"
957
1086
  };
958
- function Tn(e, t) {
959
- return s(), S("svg", wn, [...t[0] ||= [E("g", { fill: "currentColor" }, [E("path", { d: "M12.75 3C12.75 2.58579 12.4142 2.25 12 2.25C11.5858 2.25 11.25 2.58579 11.25 3V5C11.25 5.41421 11.5858 5.75 12 5.75C12.4142 5.75 12.75 5.41421 12.75 5V3Z" }), E("path", {
1087
+ function zn(e, t) {
1088
+ return s(), S("svg", Rn, [...t[0] ||= [E("g", { fill: "currentColor" }, [E("path", { d: "M12.75 3C12.75 2.58579 12.4142 2.25 12 2.25C11.5858 2.25 11.25 2.58579 11.25 3V5C11.25 5.41421 11.5858 5.75 12 5.75C12.4142 5.75 12.75 5.41421 12.75 5V3Z" }), E("path", {
960
1089
  "fill-rule": "evenodd",
961
1090
  d: "M22.75 12.0565C22.75 13.8943 22.75 15.3499 22.5969 16.4891C22.4392 17.6615 22.1071 18.6105 21.3588 19.3588C20.6104 20.1072 19.6614 20.4393 18.489 20.597C17.3498 20.7501 15.8942 20.7501 14.0565 20.7501H9.94348C8.10577 20.7501 6.65017 20.7501 5.51098 20.597C4.33856 20.4393 3.38961 20.1072 2.64124 19.3588C1.89288 18.6105 1.56076 17.6615 1.40314 16.4891C1.24997 15.3499 1.24999 13.8943 1.25 12.0565L1.25 11.7725C1.25002 11.5529 1.25011 11.3388 1.25053 11.1303C1.25132 10.7466 1.25327 10.3814 1.25806 10.034C1.27152 9.05873 1.30741 8.22316 1.40314 7.51116C1.56076 6.33873 1.89288 5.38978 2.64124 4.64142C3.38961 3.89306 4.33856 3.56094 5.51098 3.40331C6.22742 3.30699 7.069 3.27125 8.05206 3.25799C8.2173 3.25576 8.47469 3.25412 8.74859 3.25292C9.3014 3.2505 9.75 3.69873 9.75 4.25155V5.00008C9.75 6.24272 10.7574 7.25008 12 7.25008C13.2426 7.25008 14.25 6.24272 14.25 5.00008V4.25028C14.25 3.69796 14.698 3.24935 15.2503 3.25196C16.5391 3.25806 17.6086 3.28494 18.489 3.40331C19.6614 3.56094 20.6104 3.89306 21.3588 4.64142C22.1071 5.38978 22.4392 6.33873 22.5969 7.51116C22.75 8.65036 22.75 10.1059 22.75 11.9437V12.0565ZM8 9.75008C7.58579 9.75008 7.25 10.0859 7.25 10.5001C7.25 10.9143 7.58579 11.2501 8 11.2501H16C16.4142 11.2501 16.75 10.9143 16.75 10.5001C16.75 10.0859 16.4142 9.75008 16 9.75008H8ZM8 13.2501C7.58579 13.2501 7.25 13.5859 7.25 14.0001C7.25 14.4143 7.58579 14.7501 8 14.7501H13.5C13.9142 14.7501 14.25 14.4143 14.25 14.0001C14.25 13.5859 13.9142 13.2501 13.5 13.2501H8Z",
962
1091
  "clip-rule": "evenodd"
963
1092
  })], -1)]]);
964
1093
  }
965
- var En = p({
1094
+ var Bn = p({
966
1095
  name: "solar-plate-bold",
967
- render: Tn
968
- }), Dn = /* @__PURE__ */ A({
1096
+ render: zn
1097
+ }), Vn = /* @__PURE__ */ A({
969
1098
  __name: "PluginSchema",
970
1099
  props: {
971
1100
  schemaConfig: {},
@@ -976,7 +1105,7 @@ var En = p({
976
1105
  pluginId: {}
977
1106
  },
978
1107
  setup(e, { expose: t }) {
979
- let n = e, r = se(), o = i("dialogRef"), c = i("dialogRefProps"), { schemaConfig: l, pluginName: u, cameraId: d, buttonKey: f, sensorId: p, pluginId: h } = a(n), g = je(u), _ = Me(d, u), ee = Q(p, h), b = j({
1108
+ let n = e, r = ne(), o = i("dialogRef"), c = i("dialogRefProps"), { schemaConfig: l, pluginName: u, cameraId: d, buttonKey: f, sensorId: p, pluginId: h } = a(n), g = Ne(u), _ = Pe(d, u), ee = Q(p, h), b = j({
980
1109
  schema: [],
981
1110
  config: {}
982
1111
  }), S = y(() => d.value && p.value ? "sensor" : d.value ? "camera" : "plugin"), C = y(() => {
@@ -995,7 +1124,7 @@ var En = p({
995
1124
  ...e
996
1125
  }, n = await C.value.submitValue(f.value, t);
997
1126
  if (n?.toast) {
998
- let e = U(n.toast.type);
1127
+ let e = se(n.toast.type);
999
1128
  r.add({
1000
1129
  severity: e,
1001
1130
  detail: n.toast.message,
@@ -1010,7 +1139,7 @@ var En = p({
1010
1139
  deep: !0,
1011
1140
  immediate: !0
1012
1141
  }), t({ isLoading: w }), (e, t) => {
1013
- let n = Ie;
1142
+ let n = Re;
1014
1143
  return s(), m(n, {
1015
1144
  "schema-form": v(b),
1016
1145
  loading: v(w),
@@ -1020,40 +1149,40 @@ var En = p({
1020
1149
  }, null, 8, ["schema-form", "loading"]);
1021
1150
  };
1022
1151
  }
1023
- }), On = { class: "font-semibold text-xl truncate" }, kn = { class: "lg:col-span-2 order-1 !h-[220px]" }, An = { class: "flex w-full h-full items-center justify-center" }, jn = { class: "lg:col-span-1 lg:row-span-3 order-2" }, Mn = { class: "lg:!hidden card-title" }, Nn = {
1152
+ }), Hn = { class: "font-semibold text-xl truncate" }, Un = { class: "lg:col-span-2 order-1 !h-[220px]" }, Wn = { class: "flex w-full h-full items-center justify-center" }, Gn = { class: "lg:col-span-1 lg:row-span-3 order-2" }, Kn = { class: "lg:!hidden card-title" }, qn = {
1024
1153
  key: 0,
1025
1154
  class: "w-full h-full flex items-center justify-center"
1026
- }, Pn = { key: 1 }, Fn = { class: "hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, In = {
1155
+ }, Jn = { key: 1 }, Yn = { class: "hidden lg:block text-base font-semibold border-b-[1px] border-color mb-3 pb-3" }, Xn = {
1027
1156
  key: 0,
1028
1157
  class: "flex items-center justify-center w-full h-full text-muted text-sm"
1029
- }, Ln = ["onClick"], Rn = {
1158
+ }, Zn = ["onClick"], Qn = {
1030
1159
  key: 0,
1031
1160
  class: "w-full h-full"
1032
- }, zn = {
1161
+ }, $n = {
1033
1162
  key: 0,
1034
1163
  class: "flex flex-col items-center justify-center w-full h-full text-muted text-sm gap-3 text-center"
1035
- }, Bn = {
1164
+ }, er = {
1036
1165
  key: 2,
1037
1166
  class: "flex items-center justify-center w-full h-full text-muted text-sm"
1038
- }, Vn = {
1039
- key: 9,
1167
+ }, tr = {
1168
+ key: 10,
1040
1169
  class: "w-full h-full"
1041
- }, Hn = {
1170
+ }, nr = {
1042
1171
  key: 0,
1043
1172
  class: "flex items-center justify-center w-full h-full text-muted text-sm"
1044
- }, Un = {
1173
+ }, rr = {
1045
1174
  key: 1,
1046
1175
  class: "flex items-center justify-center gap-2 w-full h-full text-muted text-sm"
1047
- }, Wn = /*#__PURE__*/ he(/* @__PURE__ */ A({
1176
+ }, ir = /*#__PURE__*/ z(/* @__PURE__ */ A({
1048
1177
  __name: "Plugin",
1049
1178
  setup(e) {
1050
- let t = new ie(), n = new Le(), i = ye(), a = ne(), u = _e(), p = se(), C = ae(), { lgBreakpoint: T } = B(), { t: O } = De(), k = j(u.params.scope), A = j(u.params.pluginname), N = y(() => k.value ? `${k.value}/${A.value}` : A.value), { contract: P, error: I } = Ae(N);
1179
+ let t = new B(), n = new ze(), i = ye(), a = _e(), u = re(), p = ne(), C = ce(), { lgBreakpoint: T } = R(), { t: O } = De(), k = j(u.params.scope), A = j(u.params.pluginname), N = y(() => k.value ? `${k.value}/${A.value}` : A.value), { contract: P, error: I } = Me(N);
1051
1180
  n.toggleQueryActivator("getPluginContractQuery", !1);
1052
- let { data: V, isBusy: W } = n.getPluginQuery(N), { data: ce, isBusy: de } = n.getPluginReadmeQuery(N), { data: he, isBusy: ge } = n.getPluginChangelogQuery(N), { data: G } = n.getPluginContractQuery(N), K = je(N), q = K.config, be = K.isLoading, { mutate: xe, isPending: Se } = t.activateCameraExtensionQuery(), { mutate: we, isPending: Te } = t.deactivateCameraExtensionQuery(), J = j("settings"), Z = j([]), Q = j([]), Me = j(Ce.UNKNOWN), Ne, Pe = y(() => !!P.value && X(P.value, Y.NVR)), $ = y(() => Me.value === Ce.READY || Me.value === Ce.STARTED), Fe = y(() => $.value ? Pe.value || q.value?.schema?.length ? !0 : be.value : !1);
1053
- function ze(e, t) {
1181
+ let { data: z, isBusy: ae } = n.getPluginQuery(N), { data: U, isBusy: W } = n.getPluginReadmeQuery(N), { data: ue, isBusy: ge } = n.getPluginChangelogQuery(N), { data: G } = n.getPluginContractQuery(N), K = Ne(N), q = K.config, be = K.isLoading, { mutate: xe, isPending: Se } = t.activateCameraExtensionQuery(), { mutate: we, isPending: Te } = t.deactivateCameraExtensionQuery(), J = j("settings"), Z = j([]), Q = j([]), Pe = j(Ce.UNKNOWN), Fe, Ie = y(() => z.value?.contract?.role !== Oe.Service), Le = y(() => !!P.value && X(P.value, Y.NVR)), $ = y(() => Pe.value === Ce.READY || Pe.value === Ce.STARTED), Ve = y(() => $.value ? Le.value || q.value?.schema?.length ? !0 : be.value : !1);
1182
+ function He(e, t) {
1054
1183
  return e.pluginInfo?.name === t;
1055
1184
  }
1056
- async function Be(e) {
1185
+ async function Ge(e) {
1057
1186
  try {
1058
1187
  await K.setValue(e.key, void 0), p.add({
1059
1188
  severity: "success",
@@ -1068,18 +1197,18 @@ var En = p({
1068
1197
  });
1069
1198
  }
1070
1199
  }
1071
- async function Ue(e) {
1200
+ async function qe(e) {
1072
1201
  try {
1073
1202
  let t = await K.submitValue(e.key, e.payload);
1074
1203
  if (t?.toast) {
1075
- let e = U(t.toast.type);
1204
+ let e = se(t.toast.type);
1076
1205
  p.add({
1077
1206
  severity: e,
1078
1207
  detail: t.toast.message,
1079
1208
  life: 3e3
1080
1209
  });
1081
1210
  }
1082
- t?.schema?.length && C.openComponentDialog(Dn, { data: {
1211
+ t?.schema?.length && C.openComponentDialog(Vn, { data: {
1083
1212
  title: O("components.dialog.title.config"),
1084
1213
  hideConfirmButton: !0,
1085
1214
  contentProps: {
@@ -1099,7 +1228,7 @@ var En = p({
1099
1228
  });
1100
1229
  }
1101
1230
  }
1102
- async function Ge(e) {
1231
+ async function Je(e) {
1103
1232
  if (q.value?.schema.length) try {
1104
1233
  let t = Ee(q.value.schema, e);
1105
1234
  await K.setConfig(t), p.add({
@@ -1115,20 +1244,20 @@ var En = p({
1115
1244
  });
1116
1245
  }
1117
1246
  }
1118
- async function Ke(e) {
1119
- V.value && V.value.contract && (Q.value.includes(e.name) ? we({
1247
+ async function Ye(e) {
1248
+ z.value && z.value.contract && (Q.value.includes(e.name) ? we({
1120
1249
  cameraname: e.name,
1121
- pluginname: V.value.pluginName
1250
+ pluginname: z.value.pluginName
1122
1251
  }, { onSuccess: () => {
1123
1252
  Q.value = Q.value.filter((t) => t !== e.name);
1124
1253
  } }) : xe({
1125
1254
  cameraname: e.name,
1126
- pluginname: V.value.pluginName
1255
+ pluginname: z.value.pluginName
1127
1256
  }, { onSuccess: () => {
1128
1257
  Q.value = [...Q.value, e.name];
1129
1258
  } }));
1130
1259
  }
1131
- return x(V, (e) => {
1260
+ return x(z, (e) => {
1132
1261
  if (!e || e.disabled) {
1133
1262
  let e = Z.value.some((e) => e.name === "settings"), t = Z.value.some((e) => e.name === "cameras");
1134
1263
  e ? J.value = "settings" : t && (J.value = "cameras");
@@ -1138,12 +1267,12 @@ var En = p({
1138
1267
  }, {
1139
1268
  deep: !0,
1140
1269
  immediate: !0
1141
- }), x([V, K.isConnected], async ([e, t]) => {
1270
+ }), x([z, K.isConnected], async ([e, t]) => {
1142
1271
  e && !e.disabled && t && await K.getConfig();
1143
1272
  }, { immediate: !0 }), x(N, (e) => {
1144
- Ne?.stop(), e && (Ne = g(), Ne.run(() => {
1145
- let t = Ve(e);
1146
- t.connect(), x(t.status, (e) => Me.value = e, { immediate: !0 });
1273
+ Fe?.stop(), e && (Fe = g(), Fe.run(() => {
1274
+ let t = Ue(e);
1275
+ t.connect(), x(t.status, (e) => Pe.value = e, { immediate: !0 });
1147
1276
  }));
1148
1277
  }, { immediate: !0 }), x(q, () => {
1149
1278
  q.value ? n.toggleQueryActivator("getPluginContractQuery", !0) : n.toggleQueryActivator("getPluginContractQuery", !1);
@@ -1154,68 +1283,74 @@ var En = p({
1154
1283
  G,
1155
1284
  q,
1156
1285
  P,
1157
- Fe,
1158
- $
1286
+ Ve,
1287
+ $,
1288
+ Ie
1159
1289
  ], () => {
1160
1290
  let e = [], t = !1;
1161
- Fe.value && e.push({
1291
+ Ve.value && e.push({
1162
1292
  name: "settings",
1163
- icon: R,
1293
+ icon: ie,
1164
1294
  isInterface: !1,
1165
1295
  tooltip: O("views.plugin.settings_tab_tooltip")
1166
1296
  }), $.value && P.value && X(P.value, Y.MotionDetection) && (t = !0, e.push({
1167
1297
  name: "motion_detection",
1168
- icon: _n,
1298
+ icon: jn,
1169
1299
  isInterface: !0,
1170
1300
  tooltip: O("views.plugin.motion_detection_tab_tooltip")
1171
1301
  })), $.value && P.value && X(P.value, Y.ObjectDetection) && (t = !0, e.push({
1172
1302
  name: "object_detection",
1173
- icon: dn,
1303
+ icon: Tn,
1174
1304
  isInterface: !0,
1175
1305
  tooltip: O("views.plugin.object_detection_tab_tooltip")
1176
1306
  })), $.value && P.value && X(P.value, Y.AudioDetection) && (t = !0, e.push({
1177
1307
  name: "audio_detection",
1178
- icon: cn,
1308
+ icon: Sn,
1179
1309
  isInterface: !0,
1180
1310
  tooltip: O("views.plugin.audio_detection_tab_tooltip")
1181
1311
  })), $.value && P.value && X(P.value, Y.FaceDetection) && (t = !0, e.push({
1182
1312
  name: "face_detection",
1183
- icon: mn,
1313
+ icon: On,
1184
1314
  isInterface: !0,
1185
1315
  tooltip: O("views.plugin.face_detection_tab_tooltip")
1316
+ })), $.value && P.value && X(P.value, Y.FaceEmbedding) && (t = !0, e.push({
1317
+ name: "face_recognition",
1318
+ icon: Ae,
1319
+ isInterface: !0,
1320
+ tooltip: O("views.plugin.face_recognition_tab_tooltip")
1186
1321
  })), $.value && P.value && X(P.value, Y.LicensePlateDetection) && (t = !0, e.push({
1187
1322
  name: "license_plate_detection",
1188
- icon: En,
1323
+ icon: Bn,
1189
1324
  isInterface: !0,
1190
1325
  tooltip: O("views.plugin.license_plate_detection_tab_tooltip")
1191
1326
  })), $.value && P.value && X(P.value, Y.ClassifierDetection) && (t = !0, e.push({
1192
1327
  name: "classifier_detection",
1193
- icon: bn,
1328
+ icon: Pn,
1194
1329
  isInterface: !0,
1195
1330
  tooltip: O("views.plugin.classifier_detection_tab_tooltip")
1196
1331
  })), $.value && P.value && X(P.value, Y.ClipDetection) && (t = !0, e.push({
1197
1332
  name: "clip_detection",
1198
- icon: Cn,
1333
+ icon: Ln,
1199
1334
  isInterface: !0,
1200
1335
  tooltip: O("views.plugin.clip_detection_tab_tooltip")
1201
1336
  })), $.value && P.value && X(P.value, Y.Notifier) && (t = !0, e.push({
1202
1337
  name: "notification",
1203
- icon: re,
1338
+ icon: V,
1204
1339
  isInterface: !0,
1205
1340
  tooltip: O("views.plugin.notification_tab_tooltip")
1206
- })), e.push({
1341
+ })), Ie.value && e.push({
1207
1342
  name: "cameras",
1208
- icon: oe,
1343
+ icon: pe,
1209
1344
  isInterface: !1,
1210
1345
  tooltip: O("views.plugin.cameras_tab_tooltip")
1211
- }), G.value?.cameras.length && (Q.value = G.value.cameras.filter((e) => e.plugins?.some((e) => e.name === N.value)).map((e) => e.name)), Z.value = [...e], V.value?.disabled || (Fe.value ? J.value = "settings" : t ? J.value = Z.value.filter((e) => e.isInterface)[0].name : J.value = "cameras");
1346
+ }), G.value?.cameras.length && (Q.value = G.value.cameras.filter((e) => e.plugins?.some((e) => e.name === N.value)).map((e) => e.name)), Z.value = [...e], z.value?.disabled || (Ve.value ? J.value = "settings" : t ? J.value = Z.value.filter((e) => e.isInterface)[0].name : Ie.value && (J.value = "cameras"));
1212
1347
  }, {
1213
1348
  deep: !0,
1214
1349
  immediate: !0
1215
1350
  }), x(I, (e) => {
1216
- e && V.value && !V.value.disabled && i.error("Error connecting to plugin:", e);
1217
- }), r(() => Ne?.stop()), (e, t) => {
1218
- let n = We, r = ke, i = L, u = te, p = ve, g = He, y = H, x = me, C = Oe, O = Ie, k = an, A = Tt, j = Re, P = le, I = z, R = fe, B = pe, ne = ue, re = Ze, ie = F;
1351
+ e && z.value && !z.value.disabled && i.error("Error connecting to plugin:", e);
1352
+ }), r(() => Fe?.stop()), (e, t) => {
1353
+ let n = Ke, r = je, i = fe, u = he, p = ve, g = We, y = L, x = oe, C = ke, O = Re, k = yn, A = Dt, j = Be, P = te, I = le, R = me, B = H, V = de, ne = $e, re = F;
1219
1354
  return s(), S("div", { key: v(N) }, [
1220
1355
  M(i, { position: "left" }, {
1221
1356
  default: b(() => [M(r, {
@@ -1230,29 +1365,29 @@ var En = p({
1230
1365
  _: 1
1231
1366
  }),
1232
1367
  M(i, { position: "center" }, {
1233
- default: b(() => [E("span", On, c(e.$t("views.plugin.title")), 1)]),
1368
+ default: b(() => [E("span", Hn, c(e.$t("views.plugin.title")), 1)]),
1234
1369
  _: 1
1235
1370
  }),
1236
1371
  E("div", { class: d(["grid grid-auto grid-cols-1 lg:grid-cols-3 gap-6 lg:h-full", { "!gap-2": v(T) }]) }, [
1237
- E("div", kn, [v(V) ? (s(), m(g, {
1238
- key: v(V).pluginName,
1239
- plugin: v(V),
1372
+ E("div", Un, [v(z) ? (s(), m(g, {
1373
+ key: v(z).pluginName,
1374
+ plugin: v(z),
1240
1375
  class: "h-[220px]"
1241
1376
  }, null, 8, ["plugin"])) : (s(), m(p, {
1242
1377
  key: 0,
1243
1378
  class: "cui-card items-center justify-center !h-[220px]"
1244
1379
  }, {
1245
- content: b(() => [E("div", An, [M(u, {
1380
+ content: b(() => [E("div", Wn, [M(u, {
1246
1381
  class: "w-[30px] h-[30px] m-0",
1247
1382
  "stroke-width": "5"
1248
1383
  })])]),
1249
1384
  _: 1
1250
1385
  }))]),
1251
- E("div", jn, [E("span", Mn, c(e.$t("views.plugin.settings")), 1), M(p, { class: d(["cui-card !h-auto lg:!h-full", { "items-center justify-center": v(W) || v(be) }]) }, {
1252
- content: b(() => [v(W) || v(be) ? (s(), S("div", Nn, [M(u, {
1386
+ E("div", Gn, [E("span", Kn, c(e.$t("views.plugin.settings")), 1), M(p, { class: d(["cui-card !h-auto lg:!h-full", { "items-center justify-center": v(ae) || v(be) }]) }, {
1387
+ content: b(() => [v(ae) || v(be) ? (s(), S("div", qn, [M(u, {
1253
1388
  class: "w-[30px] h-[30px] m-0",
1254
1389
  "stroke-width": "5"
1255
- })])) : (s(), S("div", Pn, [E("h3", Fn, c(e.$t("views.plugin.settings")), 1), v(V)?.disabled ? (s(), S("div", In, [E("span", null, c(e.$t("views.plugin.disabled_info")), 1)])) : (s(), m(ne, {
1390
+ })])) : (s(), S("div", Jn, [E("h3", Yn, c(e.$t("views.plugin.settings")), 1), v(z)?.disabled ? (s(), S("div", Xn, [E("span", null, c(e.$t("views.plugin.disabled_info")), 1)])) : (s(), m(V, {
1256
1391
  key: 1,
1257
1392
  value: v(J),
1258
1393
  "onUpdate:value": t[2] ||= (e) => ee(J) ? J.value = e : null,
@@ -1267,14 +1402,14 @@ var En = p({
1267
1402
  }, {
1268
1403
  default: b(() => [(s(!0), S(w, null, o(v(Z), (e, t) => (s(), m(y, {
1269
1404
  key: t,
1270
- disabled: e.isInterface && v(V)?.disabled,
1405
+ disabled: e.isInterface && v(z)?.disabled,
1271
1406
  value: e.name,
1272
1407
  "as-child": ""
1273
1408
  }, {
1274
1409
  default: b((t) => [D((s(), S("div", l({ ref_for: !0 }, t.a11yAttrs, {
1275
1410
  class: ["flex flex-col items-center justify-center flex-1 content-background !py-3 h-[55px]", [{ "hover:!text-color active:!text-color focus:!text-color": !t.active }, t.class]],
1276
1411
  onClick: t.onClick
1277
- }), [(s(), m(f(e.icon), { class: "w-5 h-5" }))], 16, Ln)), [[ie, { value: e.tooltip }]])]),
1412
+ }), [(s(), m(f(e.icon), { class: "w-5 h-5" }))], 16, Zn)), [[re, { value: e.tooltip }]])]),
1278
1413
  _: 2
1279
1414
  }, 1032, ["disabled", "value"]))), 128))]),
1280
1415
  _: 1
@@ -1287,7 +1422,7 @@ var En = p({
1287
1422
  default: b((i) => [i.active ? (s(), S("div", l({
1288
1423
  key: 0,
1289
1424
  class: i.class
1290
- }, { ref_for: !0 }, i.a11yAttrs), [n.name === "settings" ? (s(), S("div", Rn, [v(Pe) ? (s(), S("div", zn, [E("span", null, c(e.$t("views.plugin.nvr_settings_hint")), 1), M(r, {
1425
+ }, { ref_for: !0 }, i.a11yAttrs), [n.name === "settings" ? (s(), S("div", Qn, [v(Le) ? (s(), S("div", $n, [E("span", null, c(e.$t("views.plugin.nvr_settings_hint")), 1), M(r, {
1291
1426
  class: "cui-button-medium whitespace-nowrap",
1292
1427
  label: e.$t("views.plugin.nvr_settings_button"),
1293
1428
  onClick: t[1] ||= (t) => e.$router.push("/settings/recordings")
@@ -1302,10 +1437,10 @@ var En = p({
1302
1437
  },
1303
1438
  loading: v(K).isLoading.value,
1304
1439
  "save-button-color": "success",
1305
- onOnAction: Be,
1306
- onOnSubmit: Ue,
1307
- onOnFormSubmit: Ge
1308
- }, null, 8, ["schema-form", "loading"])) : (s(), S("div", Bn, [E("span", null, c(e.$t("views.plugin.no_settings")), 1)]))])) : n.name === "motion_detection" ? (s(), m(k, {
1440
+ onOnAction: Ge,
1441
+ onOnSubmit: qe,
1442
+ onOnFormSubmit: Je
1443
+ }, null, 8, ["schema-form", "loading"])) : (s(), S("div", er, [E("span", null, c(e.$t("views.plugin.no_settings")), 1)]))])) : n.name === "motion_detection" ? (s(), m(k, {
1309
1444
  key: 1,
1310
1445
  "plugin-name": v(N),
1311
1446
  type: "motionDetection"
@@ -1321,22 +1456,26 @@ var En = p({
1321
1456
  key: 4,
1322
1457
  "plugin-name": v(N),
1323
1458
  type: "faceDetection"
1324
- }, null, 8, ["plugin-name"])) : n.name === "license_plate_detection" ? (s(), m(k, {
1459
+ }, null, 8, ["plugin-name"])) : n.name === "face_recognition" ? (s(), m(k, {
1325
1460
  key: 5,
1326
1461
  "plugin-name": v(N),
1462
+ type: "faceRecognition"
1463
+ }, null, 8, ["plugin-name"])) : n.name === "license_plate_detection" ? (s(), m(k, {
1464
+ key: 6,
1465
+ "plugin-name": v(N),
1327
1466
  type: "licensePlateDetection"
1328
1467
  }, null, 8, ["plugin-name"])) : n.name === "classifier_detection" ? (s(), m(k, {
1329
- key: 6,
1468
+ key: 7,
1330
1469
  "plugin-name": v(N),
1331
1470
  type: "classifierDetection"
1332
1471
  }, null, 8, ["plugin-name"])) : n.name === "clip_detection" ? (s(), m(k, {
1333
- key: 7,
1472
+ key: 8,
1334
1473
  "plugin-name": v(N),
1335
1474
  type: "clipDetection"
1336
1475
  }, null, 8, ["plugin-name"])) : n.name === "notification" ? (s(), m(A, {
1337
- key: 8,
1476
+ key: 9,
1338
1477
  "plugin-name": v(N)
1339
- }, null, 8, ["plugin-name"])) : n.name === "cameras" ? (s(), S("div", Vn, [v(G)?.cameras?.length ? v($) ? (s(!0), S(w, { key: 2 }, o(v(G).cameras, (e) => (s(), S("div", {
1478
+ }, null, 8, ["plugin-name"])) : n.name === "cameras" ? (s(), S("div", tr, [v(G)?.cameras?.length ? v($) ? (s(!0), S(w, { key: 2 }, o(v(G).cameras, (e) => (s(), S("div", {
1340
1479
  key: e.name,
1341
1480
  class: "cui-list-item"
1342
1481
  }, [M(I, {
@@ -1347,12 +1486,12 @@ var En = p({
1347
1486
  }, _({
1348
1487
  default: b(() => [E("span", null, c(e.name), 1)]),
1349
1488
  _: 2
1350
- }, [!v(V) || !ze(e, v(V).pluginName) ? {
1489
+ }, [!v(z) || !He(e, v(z).pluginName) ? {
1351
1490
  name: "append",
1352
1491
  fn: b(() => [M(P, {
1353
1492
  "model-value": v(Q).includes(e.name),
1354
1493
  disabled: v(Se) || v(Te) || v(K).isLoading.value || !v($),
1355
- "onUpdate:modelValue": () => Ke(e)
1494
+ "onUpdate:modelValue": () => Ye(e)
1356
1495
  }, null, 8, [
1357
1496
  "model-value",
1358
1497
  "disabled",
@@ -1363,7 +1502,7 @@ var En = p({
1363
1502
  "disabled",
1364
1503
  "active",
1365
1504
  "onClick"
1366
- ])]))), 128)) : (s(), S("div", Un, [M(j, { class: "w-4 h-4 flex-shrink-0" }), E("span", null, c(e.$t("views.plugin.assignment_requires_running")), 1)])) : (s(), S("div", Hn, [E("span", null, c(e.$t("views.plugin.no_cameras")), 1)]))])) : h("", !0)], 16)) : h("", !0)]),
1505
+ ])]))), 128)) : (s(), S("div", rr, [M(j, { class: "w-4 h-4 flex-shrink-0" }), E("span", null, c(e.$t("views.plugin.assignment_requires_running")), 1)])) : (s(), S("div", nr, [E("span", null, c(e.$t("views.plugin.no_cameras")), 1)]))])) : h("", !0)], 16)) : h("", !0)]),
1367
1506
  _: 2
1368
1507
  }, 1032, ["value"]))), 128))]),
1369
1508
  _: 1
@@ -1372,23 +1511,23 @@ var En = p({
1372
1511
  }, 8, ["value"]))]))]),
1373
1512
  _: 1
1374
1513
  }, 8, ["class"])]),
1375
- M(re, {
1514
+ M(ne, {
1376
1515
  class: "lg:col-span-2 order-3",
1377
1516
  title: e.$t("views.plugin.readme"),
1378
1517
  placeholder: e.$t("views.plugin.no_readme"),
1379
- content: v(ce),
1380
- loading: v(de)
1518
+ content: v(U),
1519
+ loading: v(W)
1381
1520
  }, null, 8, [
1382
1521
  "title",
1383
1522
  "placeholder",
1384
1523
  "content",
1385
1524
  "loading"
1386
1525
  ]),
1387
- M(re, {
1526
+ M(ne, {
1388
1527
  class: "lg:col-span-2 order-4",
1389
1528
  title: e.$t("views.plugin.changelog"),
1390
1529
  placeholder: e.$t("views.plugin.no_changelog"),
1391
- content: v(he),
1530
+ content: v(ue),
1392
1531
  loading: v(ge)
1393
1532
  }, null, 8, [
1394
1533
  "title",
@@ -1400,6 +1539,6 @@ var En = p({
1400
1539
  ]);
1401
1540
  };
1402
1541
  }
1403
- }), [["__scopeId", "data-v-2ecf2010"]]);
1542
+ }), [["__scopeId", "data-v-3ee212b0"]]);
1404
1543
  //#endregion
1405
- export { Wn as default };
1544
+ export { ir as default };