@camstack/addon-admin-ui 1.2.513 → 1.2.514

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 (120) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/assets/{AddonAssetIcon-BXUI3-Tf.js → AddonAssetIcon-CBiyVWSK.js} +1 -1
  3. package/dist/assets/{Addons-BbTJ2Fig.js → Addons-DsbbYUDT.js} +1 -1
  4. package/dist/assets/{AdminPage-DUSx45NB.js → AdminPage-B_wUVHLs.js} +1 -1
  5. package/dist/assets/{AdminSectionedPage-soMjTdb7.js → AdminSectionedPage-B2kIEVFJ.js} +1 -1
  6. package/dist/assets/{AiProfiles-Z0lIY6qW.js → AiProfiles-sNt-u_by.js} +1 -1
  7. package/dist/assets/{BrokerEditorDialog-61ZhKBtB.js → BrokerEditorDialog-DyIsWyfA.js} +1 -1
  8. package/dist/assets/{Build-DYS91I2j.js → Build-CsuCOGY2.js} +1 -1
  9. package/dist/assets/{Calendars-B70yeC96.js → Calendars-6W4Ardeb.js} +1 -1
  10. package/dist/assets/{Cluster-MhCZmNm6.js → Cluster-CWoYZoPu.js} +1 -1
  11. package/dist/assets/{CompositionBlockEditor-TlnzLRS-.js → CompositionBlockEditor-qEFV1AKI.js} +1 -1
  12. package/dist/assets/{CompositionEditorPage-BI-Y8v0_.js → CompositionEditorPage-CKCgT4Sc.js} +1 -1
  13. package/dist/assets/{Data-B-pDPXqV.js → Data-CKbI6H28.js} +1 -1
  14. package/dist/assets/{DeviceDetail-BejggRfL.js → DeviceDetail-CWaYy5st.js} +1 -1
  15. package/dist/assets/{DeviceDoActionFields-3YdRpdH5.js → DeviceDoActionFields-Bfl8v0Ww.js} +1 -1
  16. package/dist/assets/{Devices-D38AMunx.js → Devices-BXmHX1Iz.js} +1 -1
  17. package/dist/assets/{EmbedPlayerPage-BBZB_KmG.js → EmbedPlayerPage-C0JL6O13.js} +1 -1
  18. package/dist/assets/{HelperWizard-B_3MTQzU.js → HelperWizard-Bu6DbISr.js} +1 -1
  19. package/dist/assets/{History-v659n-q1.js → History-B2COiYTg.js} +1 -1
  20. package/dist/assets/{Identity-Dtc3gsXQ.js → Identity-Cp5m445y.js} +1 -1
  21. package/dist/assets/{IntegrationDetail-X94WkFek.js → IntegrationDetail-CsQJqy0O.js} +1 -1
  22. package/dist/assets/{IntegrationHub-CUAqtcr0.js → IntegrationHub-Cxb40a46.js} +1 -1
  23. package/dist/assets/{Integrations-C-JT0QSz.js → Integrations-CKTnFV7-.js} +1 -1
  24. package/dist/assets/{Integrations-BlD0JmVC.js → Integrations-Wb3Nvqvk.js} +1 -1
  25. package/dist/assets/{Library-BrvU57J_.js → Library-Cnom4jTv.js} +1 -1
  26. package/dist/assets/{Locations-BXbmZQwL.js → Locations-RMAhldT5.js} +1 -1
  27. package/dist/assets/{Logs-B0XBZZ8Q.js → Logs-YZGGdk7a.js} +1 -1
  28. package/dist/assets/{MaskShapeCanvas-DnEx9aLt.js → MaskShapeCanvas-CCcjwlTm.js} +1 -1
  29. package/dist/assets/{MotionZonesSettings-BMDPF6-L.js → MotionZonesSettings-15VWTACI.js} +1 -1
  30. package/dist/assets/{MyAccess-DfkZc8jj.js → MyAccess-ChjuVjHq.js} +1 -1
  31. package/dist/assets/{Network-B9UvgIh-.js → Network-ByvZRKWM.js} +1 -1
  32. package/dist/assets/{NodeAddonsSettingsPanel-D8UZOHme.js → NodeAddonsSettingsPanel-tEpUh0Q6.js} +1 -1
  33. package/dist/assets/{Notifications-2R56_ebY.js → Notifications-WK1xVjAV.js} +1 -1
  34. package/dist/assets/{Pipeline-BdjiguQv.js → Pipeline-C3zZKn-f.js} +1 -1
  35. package/dist/assets/{PrivacyMaskSettings-DXcb1Xsj.js → PrivacyMaskSettings-boU8xnXR.js} +1 -1
  36. package/dist/assets/{Recordings-BnGaDgIg.js → Recordings-DT5kHAwS.js} +1 -1
  37. package/dist/assets/{RemoteGrid-C_hwBm7-.js → RemoteGrid-HppYsb5t.js} +1 -1
  38. package/dist/assets/{ScanNetworkModal-BTQIrvGc.js → ScanNetworkModal-Dk1v70-s.js} +1 -1
  39. package/dist/assets/{SceneMonitorEditor-BeZzFwDE.js → SceneMonitorEditor-DbEDdw8n.js} +1 -1
  40. package/dist/assets/{SessionsList-C03j936p.js → SessionsList-4nVxGpqc.js} +1 -1
  41. package/dist/assets/{Showroom-hqqCXmrT.js → Showroom-Cyf_5WTf.js} +1 -1
  42. package/dist/assets/{System-C9oV_d1y.js → System-B47qVCVK.js} +1 -1
  43. package/dist/assets/{Templates-cp28J05t.js → Templates-lCo5yN4g.js} +1 -1
  44. package/dist/assets/{Terminal-C2kXj9wO.js → Terminal-RLflxok5.js} +1 -1
  45. package/dist/assets/{Viewer-zU0ym-3m.js → Viewer-BFtLOgb5.js} +1 -1
  46. package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-RW_iqTJh.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-Dd1lnVnV.js} +1 -1
  47. package/dist/assets/{addon-icons-context-Dvq70FHG.js → addon-icons-context-BqCF3aDM.js} +1 -1
  48. package/dist/assets/{archive-DEQjGSlb.js → archive-COJvuz8j.js} +1 -1
  49. package/dist/assets/{assignment-candidates-CYEy8Oew.js → assignment-candidates-GFFTkY5s.js} +1 -1
  50. package/dist/assets/{authed-media-ei7XgIJl.js → authed-media-CPH4gDSb.js} +1 -1
  51. package/dist/assets/{automation-data-E3BGzBLE.js → automation-data-D3oEGSM3.js} +1 -1
  52. package/dist/assets/{bell-off-BtOUApIg.js → bell-off-CEHvcpV8.js} +1 -1
  53. package/dist/assets/{boxes-vYLDJNRv.js → boxes-C0Z7cB0S.js} +1 -1
  54. package/dist/assets/circle-slash-BY9zkWdJ.js +1 -0
  55. package/dist/assets/client-BjsFVjEa.js +674 -0
  56. package/dist/assets/{cloud-upload-CzsF_jzI.js → cloud-upload-yzPIJtWW.js} +1 -1
  57. package/dist/assets/crop-DpfML6TR.js +1 -0
  58. package/dist/assets/{device-integration-icon-CMOElaCq.js → device-integration-icon-DC0L96qt.js} +1 -1
  59. package/dist/assets/device-picker-model-C9XdDI0R.js +1 -0
  60. package/dist/assets/{dist-ODNaReOx.js → dist-D7eSjbBx.js} +1 -1
  61. package/dist/assets/dist-DuYXDhcZ.js +674 -0
  62. package/dist/assets/{eraser-DdxDfnsw.js → eraser-CcAxRsoL.js} +1 -1
  63. package/dist/assets/{file-up-DtWjJzxE.js → file-up-gEH5fPam.js} +1 -1
  64. package/dist/assets/{hard-drive-download-BUYTmxO8.js → hard-drive-download-CwO_DU-K.js} +1 -1
  65. package/dist/assets/{hostInit-CEmOeO-p.js → hostInit-BonUhoQT.js} +1 -1
  66. package/dist/assets/{icons-BS95Q050.js → icons-l5aYjks5.js} +1 -1
  67. package/dist/assets/{index-CUQ_1-3M.js → index-C1TP1bDM.js} +3 -3
  68. package/dist/assets/{key-BHqMlU3n.js → key-03tb4am1.js} +1 -1
  69. package/dist/assets/{key-round-DEGX9D7v.js → key-round-CxRbUD09.js} +1 -1
  70. package/dist/assets/{layers-CmVPxgW7.js → layers-B_aq5GyC.js} +1 -1
  71. package/dist/assets/{linked-devices-model-9YMVfHc9.js → linked-devices-model-BDwJCC37.js} +1 -1
  72. package/dist/assets/{list-ordered-CheGo-ag.js → list-ordered-BIOnBH5V.js} +1 -1
  73. package/dist/assets/{location-owned-usage-CkEO8Lym.js → location-owned-usage-C8KAIY_m.js} +1 -1
  74. package/dist/assets/{log-in-CiEueJS1.js → log-in-DYRRiyUu.js} +1 -1
  75. package/dist/assets/{memory-stick-BR7h-gLy.js → memory-stick-BTjX5XXU.js} +1 -1
  76. package/dist/assets/{message-square-plus-pFenYopk.js → message-square-plus-CYHn2tx1.js} +1 -1
  77. package/dist/assets/{mf-entry-bootstrap-0-f252a886.js → mf-entry-bootstrap-0-55c9b237.js} +2 -2
  78. package/dist/assets/{mic-off-Cy2vjOdb.js → mic-off-BfWqJn2R.js} +1 -1
  79. package/dist/assets/{monitor-off-DSnpgX4h.js → monitor-off-Dy7WsqTN.js} +1 -1
  80. package/dist/assets/{monitor-smartphone-Bbz5EYKE.js → monitor-smartphone-Cl-w7Gs0.js} +1 -1
  81. package/dist/assets/mount-C9XdDI0R.js +1 -0
  82. package/dist/assets/{player-overlays-CeCeKlFy.js → player-overlays-DaSesfVn.js} +1 -1
  83. package/dist/assets/{recycle-CRCqoNuC.js → recycle-CC6kU24N.js} +1 -1
  84. package/dist/assets/remoteEntry-C7WJfwvN.js +1 -0
  85. package/dist/assets/{ruler-D4nA2AkO.js → ruler-C6bIqLbX.js} +1 -1
  86. package/dist/assets/{scan-eye-B6ToEyNT.js → scan-eye-BbYgoJiK.js} +1 -1
  87. package/dist/assets/{scissors-Cy9qo-01.js → scissors-oYo-ZhBm.js} +1 -1
  88. package/dist/assets/{search-x-Bc6YoEgC.js → search-x-CySi2ygd.js} +1 -1
  89. package/dist/assets/{send-C88bJpzN.js → send-FMXSDirA.js} +1 -1
  90. package/dist/assets/{settings-2-CT7EhY20.js → settings-2-WfXnibr2.js} +1 -1
  91. package/dist/assets/{shapes-D49xx3pl.js → shapes-JaoPTvAm.js} +1 -1
  92. package/dist/assets/{sigma-r_LYWpZC.js → sigma-C2um2nX9.js} +1 -1
  93. package/dist/assets/{speaker-Ki0ZHj9k.js → speaker-DVh7yO4_.js} +1 -1
  94. package/dist/assets/{src-Cq4wbXVd.js → src-DxOL9qHw.js} +3 -3
  95. package/dist/assets/{step-inspector-model-DybV6iGj.js → step-inspector-model-D4wNZnAf.js} +1 -1
  96. package/dist/assets/{table-2-BCrCvQBE.js → table-2-BzvZ1C8Y.js} +1 -1
  97. package/dist/assets/{timer-reset-BCU9mQbt.js → timer-reset-BFyZoIS7.js} +1 -1
  98. package/dist/assets/{unlink-Bdf-2hM2.js → unlink-Bf6pcFmm.js} +1 -1
  99. package/dist/assets/{usb-Dk1-9w-h.js → usb-oSHxCOV9.js} +1 -1
  100. package/dist/assets/{use-scenes-feed-kuO8vvaU.js → use-scenes-feed-DrR6sBRO.js} +1 -1
  101. package/dist/assets/{use-stationary-objects-h9zEu1aK.js → use-stationary-objects-DVmg7h4R.js} +1 -1
  102. package/dist/assets/useEventInvalidation-C9XdDI0R.js +1 -0
  103. package/dist/assets/{useNodeUrlSelection-DxKAfF2w.js → useNodeUrlSelection-CJVhV7Gy.js} +1 -1
  104. package/dist/assets/user-round-BZHQXbgV.js +1 -0
  105. package/dist/assets/{user-x-Ci81AHsS.js → user-x-aU8InWh0.js} +1 -1
  106. package/dist/assets/{variable-6lR9ETRn.js → variable-DwONvC9h.js} +1 -1
  107. package/dist/assets/{video-BSJxItXj.js → video-DOy8UceJ.js} +1 -1
  108. package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-CCXtVAMI.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DXQ8OkGD.js} +2 -2
  109. package/dist/index.html +8 -8
  110. package/dist/server/addon.js +2 -2
  111. package/package.json +1 -1
  112. package/dist/assets/circle-slash-DG3-Ibc_.js +0 -1
  113. package/dist/assets/client-gOfL8FDq.js +0 -674
  114. package/dist/assets/crop-BYOsBPcF.js +0 -1
  115. package/dist/assets/device-picker-model-CtJOP06v.js +0 -1
  116. package/dist/assets/dist-BIFugJlu.js +0 -674
  117. package/dist/assets/mount-CtJOP06v.js +0 -1
  118. package/dist/assets/remoteEntry-DHoKCa7I.js +0 -1
  119. package/dist/assets/useEventInvalidation-CtJOP06v.js +0 -1
  120. package/dist/assets/user-round-ucYAzmFE.js +0 -1
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./icons-BS95Q050.js","./player-overlays-CeCeKlFy.js","./client-gOfL8FDq.js","./__vite-browser-external-BlMfPwfH.js","./archive-DEQjGSlb.js","./user-x-Ci81AHsS.js","./scan-eye-B6ToEyNT.js","./scissors-Cy9qo-01.js","./bell-off-BtOUApIg.js","./sigma-r_LYWpZC.js","./key-BHqMlU3n.js","./boxes-vYLDJNRv.js","./variable-6lR9ETRn.js","./cloud-upload-CzsF_jzI.js","./video-BSJxItXj.js","./speaker-Ki0ZHj9k.js","./circle-slash-DG3-Ibc_.js","./usb-Dk1-9w-h.js","./crop-BYOsBPcF.js","./eraser-DdxDfnsw.js","./timer-reset-BCU9mQbt.js","./file-up-DtWjJzxE.js","./send-C88bJpzN.js","./hard-drive-download-BUYTmxO8.js","./mic-off-Cy2vjOdb.js","./list-ordered-CheGo-ag.js","./key-round-DEGX9D7v.js","./layers-CmVPxgW7.js","./log-in-CiEueJS1.js","./memory-stick-BR7h-gLy.js","./message-square-plus-pFenYopk.js","./monitor-off-DSnpgX4h.js","./monitor-smartphone-Bbz5EYKE.js","./recycle-CRCqoNuC.js","./ruler-D4nA2AkO.js","./search-x-Bc6YoEgC.js","./settings-2-CT7EhY20.js","./shapes-D49xx3pl.js","./table-2-BCrCvQBE.js","./unlink-Bdf-2hM2.js","./user-round-ucYAzmFE.js","./MotionZonesSettings-BMDPF6-L.js","./MaskShapeCanvas-DnEx9aLt.js","./PrivacyMaskSettings-DXcb1Xsj.js","./SceneMonitorEditor-BeZzFwDE.js"])))=>i.map(i=>d[i]);
2
- import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{a as t,i as n,o as r,r as i}from"./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-CCXtVAMI.js";import{t as a}from"./vite-preload-helper-kNaey6uv.js";import{$ as o,A as s,C as c,E as l,G as u,H as d,J as f,K as p,N as m,O as h,Q as g,R as _,S as v,U as y,V as b,W as x,X as S,Y as C,a as w,d as T,et as E,j as D,k as O,o as k,q as A,t as j,u as M,w as N,x as P,y as F,z as I}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CEyXHAdg.js";import{$ as L,$i as R,$n as z,$r as B,$t as V,A as H,Ai as U,An as ee,Ar as W,At as G,B as te,Bi as ne,Bn as re,Br as K,Bt as ie,C as ae,Ci as oe,Cn as se,Cr as ce,Ct as le,D as ue,Di as de,Dn as fe,Dr as pe,Dt as me,E as he,Ei as ge,En as _e,Er as ve,Et as ye,F as be,Fi as xe,Fn as Se,Fr as Ce,Ft as we,G as Te,Gi as Ee,Gn as De,Gr as Oe,Gt as ke,H as Ae,Hi as je,Hn as Me,Hr as Ne,Ht as Pe,I as Fe,Ii as Ie,In as Le,Ir as Re,It as ze,J as Be,Ji as Ve,Jn as He,Jr as Ue,Jt as We,K as Ge,Ki as Ke,Kn as qe,Kr as Je,Kt as Ye,L as Xe,Li as Ze,Ln as Qe,Lr as $e,Lt as et,Mi as tt,Mn as nt,Mr as rt,Mt as it,N as at,Ni as ot,Nn as st,Nr as ct,Nt as lt,O as ut,Oi as dt,On as ft,Or as pt,Ot as mt,P as ht,Pi as gt,Pn as _t,Pr as vt,Pt as yt,Q as bt,Qi as xt,Qn as St,Qr as Ct,Qt as wt,R as Tt,Ri as Et,Rn as Dt,Rr as Ot,Rt as kt,S as At,Si as jt,Sn as Mt,Sr as Nt,St as Pt,T as Ft,Ti as It,Tn as Lt,Tr as eee,Tt as Rt,U as zt,Ui as Bt,Un as Vt,Ur as Ht,Ut as tee,V as Ut,Vi as Wt,Vn as Gt,Vr as Kt,Vt as qt,W as Jt,Wi as Yt,Wn as Xt,Wr as Zt,Wt as Qt,X as $t,Xi as en,Xn as tn,Xr as nn,Xt as rn,Y as an,Yi as on,Yn as sn,Yr as cn,Yt as ln,Z as un,Zi as dn,Zn as fn,Zr as pn,Zt as mn,_ as hn,_i as gn,_n,_r as vn,_t as yn,a as bn,aa as xn,ai as Sn,an as Cn,ar as wn,at as Tn,b as En,bi as Dn,bn as On,br as kn,bt as An,c as jn,ci as Mn,cn as nee,cr as Nn,ct as Pn,d as ree,da as Fn,di as In,dn as Ln,dr as iee,dt as Rn,ea as aee,ei as oee,en as see,er as zn,et as cee,f as lee,fa as Bn,fi as Vn,fn as Hn,fr as Un,ft as Wn,g as Gn,gi as Kn,gn as qn,gr as Jn,gt as Yn,h as Xn,hi as Zn,hn as Qn,hr as $n,ht as er,i as tr,ia as nr,ii as rr,in as ir,ir as ar,it as or,j as sr,ji as cr,jn as lr,jr as ur,jt as dr,k as fr,ki as pr,kn as mr,kr as hr,kt as gr,l as _r,la as vr,li as yr,ln as br,lr as xr,lt as Sr,m as Cr,mi as wr,mn as Tr,mr as Er,mt as Dr,n as Or,na as kr,ni as Ar,nn as jr,nr as Mr,nt as Nr,o as Pr,oa as Fr,oi as Ir,on as Lr,or as Rr,ot as zr,p as Br,pa as q,pi as Vr,pn as Hr,pr as Ur,pt as Wr,q as Gr,qi as Kr,qn as qr,qr as Jr,qt as Yr,r as Xr,ra as Zr,ri as Qr,rn as $r,rr as ei,rt as ti,s as ni,sa as ri,si as ii,sn as ai,sr as oi,st as si,t as ci,ta as li,ti as ui,tn as di,tr as fi,tt as pi,u as mi,ua as hi,ui as uee,un as dee,ur as gi,ut as _i,v as vi,vi as yi,vn as bi,vr as xi,vt as Si,w as fee,wi as Ci,wn as wi,wr as Ti,wt as pee,x as Ei,xi as Di,xn as Oi,xr as mee,xt as hee,y as ki,yi as Ai,yn as ji,yr as gee,yt as Mi,z as Ni,zi as Pi,zn as _ee,zr as Fi,zt as Ii}from"./player-overlays-CeCeKlFy.js";import{$a as vee,Aa as yee,Ar as bee,Ca as J,Da as xee,Ea as See,Fa as Cee,Ga as wee,Gr as Li,Gt as Ri,Ha as zi,Ia as Tee,Ja as Bi,Jn as Eee,Ka as Dee,La as Vi,Ma as Oee,Mi as Hi,Na as Ui,Oa as kee,Pa as Aee,Pr as Wi,Ra as jee,S as Mee,Sa as Y,Sn as Gi,Ua as Ki,Xa as Nee,Ya as Pee,Yn as qi,Zn as Fee,Zr as Iee,_ as Lee,_i as Ree,_n as zee,an as Ji,ao as Yi,at as Xi,b as Zi,bi as Qi,bo as $i,ci as ea,cr as ta,d as na,do as ra,dr as ia,eo as aa,et as oa,fi as sa,fo as ca,g as la,gi as ua,h as da,hi as fa,ho as pa,i as ma,io as ha,it as ga,ja as _a,ka as va,li as ya,lo as ba,m as xa,mi as Sa,mo as Ca,mr as wa,nn as Ta,no as Ea,on as Da,ot as Oa,p as ka,pi as Aa,po as ja,pr as Ma,qa as Na,qr as Pa,rn as Fa,ro as Ia,rt as La,s as Ra,sr as za,st as Ba,to as Va,tt as Ha,v as Ua,va as Wa,vi as Ga,vn as Ka,vo as qa,x as Ja,xa as Ya,xn as Xa,xo as Za,y as Qa,yi as $a,yn as eo}from"./client-gOfL8FDq.js";import{D as to,M as no,O as ro,S as io,T as ao,j as oo,p as so,v as co,y as lo}from"./__vite-browser-external-BlMfPwfH.js";import{T as uo,b as fo,g as po,k as mo,o as ho,x as go}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-8kv6pj9W.js";import{r as _o,t as vo}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-DzoL8nR8.js";import{n as yo,r as bo,t as xo}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.js-BPba2g2p.js";import{n as So,t as Co}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-ZBKFTPET.js";E();var wo=typeof globalThis<`u`?globalThis.__camstackTrpcReact:void 0,X=wo??vo();typeof globalThis<`u`&&!wo&&(globalThis.__camstackTrpcReact=X);function To(e,t){let n=Rn(),r=f(t);r.current=t;let[i,a]=C(n.connectionVersion);b(()=>n.subscribeConnectionEvents((e,t)=>{e===`connected`&&a(t)}),[n]),b(()=>n.subscribeEvent(e,e=>{r.current(e)}),[n,e,i])}E();function Eo(e){let t=f(e);return t.current=e,t}function Do(e,t){let[n,r]=C(null),i=Eo(t);return To(e,e=>{let t=e.data,n=i.current;n&&!n(t)||r(t)}),n}function Oo(e,t,n){let[r,i]=C(()=>new Map),a=Eo(t),o=Eo(n);return To(e,e=>{let t=e.data,n=o.current;if(n&&!n(t))return;let r=a.current(t);i(e=>{let n=new Map(e);return n.set(r,t),n})}),{map:r,values:p(()=>Array.from(r.values()),[r])}}E();function ko(){let{data:e,isLoading:t,isError:n}=X.nodes.topology.useQuery(void 0,{staleTime:1/0});return{nodes:Do(`cluster.topology-snapshot`)?.nodes??e,isLoading:t,isError:n}}function Ao(){let{nodes:e,isLoading:t,isError:n}=ko();return{nodes:p(()=>{let t=[];for(let n of e??[])t.push({id:String(n.id??``),name:String(n.name??n.id??``),shortName:n.isHub?`HUB`:String(n.name??n.id??``),isHub:!!n.isHub,isOnline:!!n.isOnline,localIps:n.localIps??[],addons:(n.addons??[]).map(e=>({addonId:e.id,capabilities:e.capabilities}))});return t.sort((e,t)=>e.isHub===t.isHub?e.name.localeCompare(t.name):e.isHub?-1:1),t},[e]),isLoading:t,isError:n}}function jo(e,t){return{icon:e.icon,label:t(e.labelKey,e.labelFallback)}}var Mo={[J.Camera]:{icon:ot,labelKey:`uiLibrary.deviceMeta.type.camera`,labelFallback:`Camera`},[J.Hub]:{icon:De,labelKey:`uiLibrary.deviceMeta.type.hub`,labelFallback:`Hub`},[J.Light]:{icon:Jn,labelKey:`uiLibrary.deviceMeta.type.light`,labelFallback:`Light`},[J.Siren]:{icon:br,labelKey:`uiLibrary.deviceMeta.type.siren`,labelFallback:`Siren`},[J.Switch]:{icon:Ye,labelKey:`uiLibrary.deviceMeta.type.switch`,labelFallback:`Switch`},[J.Sensor]:{icon:ri,labelKey:`uiLibrary.deviceMeta.type.sensor`,labelFallback:`Sensor`},[J.Thermostat]:{icon:We,labelKey:`uiLibrary.deviceMeta.type.thermostat`,labelFallback:`Thermostat`},[J.Climate]:{icon:Fr,labelKey:`uiLibrary.deviceMeta.type.climate`,labelFallback:`Air conditioner`},[J.Button]:{icon:yi,labelKey:`uiLibrary.deviceMeta.type.button`,labelFallback:`Button`},[J.EventEmitter]:{icon:er,labelKey:`uiLibrary.deviceMeta.type.eventEmitter`,labelFallback:`Event Emitter`},[J.Update]:{icon:_e,labelKey:`uiLibrary.deviceMeta.type.update`,labelFallback:`Update`},[J.Generic]:{icon:Ze,labelKey:`uiLibrary.deviceMeta.type.generic`,labelFallback:`Generic`},[J.Notifier]:{icon:Bt,labelKey:`uiLibrary.deviceMeta.type.notifier`,labelFallback:`Notifier`},[J.Script]:{icon:ji,labelKey:`uiLibrary.deviceMeta.type.script`,labelFallback:`Script`},[J.Automation]:{icon:Si,labelKey:`uiLibrary.deviceMeta.type.automation`,labelFallback:`Automation`},[J.Lock]:{icon:xr,labelKey:`uiLibrary.deviceMeta.type.lock`,labelFallback:`Lock`},[J.Cover]:{icon:ne,labelKey:`uiLibrary.deviceMeta.type.cover`,labelFallback:`Cover`},[J.Valve]:{icon:Dt,labelKey:`uiLibrary.deviceMeta.type.valve`,labelFallback:`Valve`},[J.Humidifier]:{icon:Rt,labelKey:`uiLibrary.deviceMeta.type.humidifier`,labelFallback:`Humidifier`},[J.WaterHeater]:{icon:en,labelKey:`uiLibrary.deviceMeta.type.waterHeater`,labelFallback:`Water heater`},[J.Fan]:{icon:Ht,labelKey:`uiLibrary.deviceMeta.type.fan`,labelFallback:`Fan`},[J.MediaPlayer]:{icon:z,labelKey:`uiLibrary.deviceMeta.type.mediaPlayer`,labelFallback:`Media player`},[J.AlarmPanel]:{icon:Tr,labelKey:`uiLibrary.deviceMeta.type.alarmPanel`,labelFallback:`Alarm panel`},[J.Control]:{icon:Lr,labelKey:`uiLibrary.deviceMeta.type.control`,labelFallback:`Control`},[J.Presence]:{icon:oi,labelKey:`uiLibrary.deviceMeta.type.presence`,labelFallback:`Presence`},[J.Weather]:{icon:Ir,labelKey:`uiLibrary.deviceMeta.type.weather`,labelFallback:`Weather`},[J.Vacuum]:{icon:Et,labelKey:`uiLibrary.deviceMeta.type.vacuum`,labelFallback:`Vacuum`},[J.LawnMower]:{icon:Qt,labelKey:`uiLibrary.deviceMeta.type.lawnMower`,labelFallback:`Lawn mower`},[J.Container]:{icon:Ze,labelKey:`uiLibrary.deviceMeta.type.container`,labelFallback:`Container`},[J.Image]:{icon:Nt,labelKey:`uiLibrary.deviceMeta.type.image`,labelFallback:`Image`},[J.PetFeeder]:{icon:Pi,labelKey:`uiLibrary.deviceMeta.type.petFeeder`,labelFallback:`Pet feeder`},[J.Dishwasher]:{icon:Rt,labelKey:`uiLibrary.deviceMeta.type.dishwasher`,labelFallback:`Dishwasher`},[J.Washer]:{icon:ye,labelKey:`uiLibrary.deviceMeta.type.washer`,labelFallback:`Washing machine`},[J.Dryer]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.type.dryer`,labelFallback:`Dryer`}},No={[Y.Siren]:{icon:br,labelKey:`uiLibrary.deviceMeta.role.siren`,labelFallback:`Siren`},[Y.Floodlight]:{icon:Jn,labelKey:`uiLibrary.deviceMeta.role.floodlight`,labelFallback:`Floodlight`},[Y.Spotlight]:{icon:Ot,labelKey:`uiLibrary.deviceMeta.role.spotlight`,labelFallback:`Spotlight`},[Y.PirSensor]:{icon:mr,labelKey:`uiLibrary.deviceMeta.role.pirSensor`,labelFallback:`PIR sensor`},[Y.Chime]:{icon:Bt,labelKey:`uiLibrary.deviceMeta.role.chime`,labelFallback:`Chime`},[Y.Autotrack]:{icon:ui,labelKey:`uiLibrary.deviceMeta.role.autotrack`,labelFallback:`Auto-track`},[Y.Nightvision]:{icon:St,labelKey:`uiLibrary.deviceMeta.role.nightvision`,labelFallback:`Night vision`},[Y.PrivacyMask]:{icon:Oe,labelKey:`uiLibrary.deviceMeta.role.privacyMask`,labelFallback:`Privacy mask`},[Y.Doorbell]:{icon:Ct,labelKey:`uiLibrary.deviceMeta.role.doorbell`,labelFallback:`Doorbell`},[Y.CoverBlind]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverBlind`,labelFallback:`Blind`},[Y.CoverShutter]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverShutter`,labelFallback:`Shutter`},[Y.CoverAwning]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverAwning`,labelFallback:`Awning`},[Y.CoverCurtain]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverCurtain`,labelFallback:`Curtain`},[Y.CoverGarage]:{icon:Ct,labelKey:`uiLibrary.deviceMeta.role.coverGarage`,labelFallback:`Garage door`},[Y.CoverGate]:{icon:Ct,labelKey:`uiLibrary.deviceMeta.role.coverGate`,labelFallback:`Gate`},[Y.CoverDoor]:{icon:pn,labelKey:`uiLibrary.deviceMeta.role.coverDoor`,labelFallback:`Door`},[Y.CoverWindow]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverWindow`,labelFallback:`Window`},[Y.BinaryHelper]:{icon:Ye,labelKey:`uiLibrary.deviceMeta.role.binaryHelper`,labelFallback:`Binary helper`},[Y.Outlet]:{icon:_t,labelKey:`uiLibrary.deviceMeta.role.outlet`,labelFallback:`Outlet`},[Y.MotionSensor]:{icon:$e,labelKey:`uiLibrary.deviceMeta.role.motionSensor`,labelFallback:`Motion sensor`},[Y.ContactSensor]:{icon:pn,labelKey:`uiLibrary.deviceMeta.role.contactSensor`,labelFallback:`Contact sensor`},[Y.LeakSensor]:{icon:cn,labelKey:`uiLibrary.deviceMeta.role.leakSensor`,labelFallback:`Leak sensor`},[Y.SmokeSensor]:{icon:xn,labelKey:`uiLibrary.deviceMeta.role.smokeSensor`,labelFallback:`Smoke sensor`},[Y.COSensor]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.role.cOSensor`,labelFallback:`CO sensor`},[Y.GasSensor]:{icon:K,labelKey:`uiLibrary.deviceMeta.role.gasSensor`,labelFallback:`Gas sensor`},[Y.TamperSensor]:{icon:Tr,labelKey:`uiLibrary.deviceMeta.role.tamperSensor`,labelFallback:`Tamper sensor`},[Y.VibrationSensor]:{icon:gr,labelKey:`uiLibrary.deviceMeta.role.vibrationSensor`,labelFallback:`Vibration sensor`},[Y.ConnectivitySensor]:{icon:An,labelKey:`uiLibrary.deviceMeta.role.connectivitySensor`,labelFallback:`Connectivity`},[Y.SoundSensor]:{icon:mt,labelKey:`uiLibrary.deviceMeta.role.soundSensor`,labelFallback:`Sound sensor`},[Y.BinarySensor]:{icon:Ye,labelKey:`uiLibrary.deviceMeta.role.binarySensor`,labelFallback:`Binary sensor`},[Y.TemperatureSensor]:{icon:We,labelKey:`uiLibrary.deviceMeta.role.temperatureSensor`,labelFallback:`Temperature`},[Y.HumiditySensor]:{icon:Ue,labelKey:`uiLibrary.deviceMeta.role.humiditySensor`,labelFallback:`Humidity`},[Y.AmbientLightSensor]:{icon:wt,labelKey:`uiLibrary.deviceMeta.role.ambientLightSensor`,labelFallback:`Ambient light`},[Y.PressureSensor]:{icon:vt,labelKey:`uiLibrary.deviceMeta.role.pressureSensor`,labelFallback:`Pressure`},[Y.WindSensor]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.role.windSensor`,labelFallback:`Wind`},[Y.RainSensor]:{icon:Mn,labelKey:`uiLibrary.deviceMeta.role.rainSensor`,labelFallback:`Rain`},[Y.UvSensor]:{icon:V,labelKey:`uiLibrary.deviceMeta.role.uvSensor`,labelFallback:`UV index`},[Y.SolarRadiationSensor]:{icon:mn,labelKey:`uiLibrary.deviceMeta.role.solarRadiationSensor`,labelFallback:`Solar radiation`},[Y.SoilMoistureSensor]:{icon:jr,labelKey:`uiLibrary.deviceMeta.role.soilMoistureSensor`,labelFallback:`Soil moisture`},[Y.PowerSensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.powerSensor`,labelFallback:`Power`},[Y.EnergySensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.energySensor`,labelFallback:`Energy`},[Y.VoltageSensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.voltageSensor`,labelFallback:`Voltage`},[Y.CurrentSensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.currentSensor`,labelFallback:`Current`},[Y.AirQualitySensor]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.role.airQualitySensor`,labelFallback:`Air quality`},[Y.BatterySensor]:{icon:vt,labelKey:`uiLibrary.deviceMeta.role.batterySensor`,labelFallback:`Battery`},[Y.NumericSensor]:{icon:pe,labelKey:`uiLibrary.deviceMeta.role.numericSensor`,labelFallback:`Numeric sensor`},[Y.EnumSensor]:{icon:Ur,labelKey:`uiLibrary.deviceMeta.role.enumSensor`,labelFallback:`Enum sensor`},[Y.DateTimeSensor]:{icon:In,labelKey:`uiLibrary.deviceMeta.role.dateTimeSensor`,labelFallback:`Date / time`},[Y.GenericSensor]:{icon:vt,labelKey:`uiLibrary.deviceMeta.role.genericSensor`,labelFallback:`Sensor`},[Y.NumericControl]:{icon:Lr,labelKey:`uiLibrary.deviceMeta.role.numericControl`,labelFallback:`Numeric control`},[Y.SelectControl]:{icon:Er,labelKey:`uiLibrary.deviceMeta.role.selectControl`,labelFallback:`Select control`},[Y.TextControl]:{icon:et,labelKey:`uiLibrary.deviceMeta.role.textControl`,labelFallback:`Text control`},[Y.DateTimeControl]:{icon:In,labelKey:`uiLibrary.deviceMeta.role.dateTimeControl`,labelFallback:`Date / time control`},[Y.MobilePushNotifier]:{icon:Cn,labelKey:`uiLibrary.deviceMeta.role.mobilePushNotifier`,labelFallback:`Mobile push`},[Y.MessagingNotifier]:{icon:ei,labelKey:`uiLibrary.deviceMeta.role.messagingNotifier`,labelFallback:`Messaging`},[Y.EmailNotifier]:{icon:Nn,labelKey:`uiLibrary.deviceMeta.role.emailNotifier`,labelFallback:`Email`},[Y.GenericNotifier]:{icon:Bt,labelKey:`uiLibrary.deviceMeta.role.genericNotifier`,labelFallback:`Notifier`},[Y.IrTransmitter]:{icon:ft,labelKey:`uiLibrary.deviceMeta.role.irTransmitter`,labelFallback:`IR/RF transmitter`}},Po=new Set(Object.values(J)),Fo=new Set(Object.values(Y));function Io(e){return Po.has(e)}function Lo(e){return Fo.has(e)}function Ro(e,t=Fn){return jo(Mo[e],t)}function zo(e,t=Fn){return jo(No[e],t)}var Bo=Mo[J.Generic],Vo=No[Y.GenericSensor];function Ho(e,t=Fn){return Io(e)?jo(Mo[e]??Bo,t):jo(Bo,t)}function Uo(e,t=Fn){return Lo(e)?jo(No[e]??Vo,t):jo(Vo,t)}var Wo={camera:ot,network:De,"toggle-left":Ye,"circle-dot":yi,"refresh-cw":_e,box:Ze,"scroll-text":ji,workflow:Si,lock:xr,blinds:ne,"air-vent":Fr,"monitor-play":z,"sliders-horizontal":Lr,"map-pin":oi,bot:Et,tractor:Qt,image:Nt,bone:Pi,"door-closed":Ct,"door-open":pn,crosshair:ui,"eye-off":Oe,smartphone:Cn,power:nt,battery:Ee,lightbulb:Jn,flashlight:Ot,thermometer:We,droplets:Ue,droplet:cn,gauge:vt,sun:wt,"sun-medium":V,sunrise:mn,moon:St,wind:Mi,"cloud-rain":Mn,"cloud-sun":Ir,waves:Rt,sprout:jr,zap:er,flame:K,bell:Bt,siren:br,radar:mr,activity:ri,hash:pe,clock:In,pipette:Dt,fan:Ht,bath:en,footprints:$e,"alarm-smoke":xn,"shield-alert":Tr,vibrate:gr,wifi:An,"volume-2":mt,list:Ur,"list-checks":Er,mail:Nn,"message-square":ei,type:et};function Go(e){return Object.values(J).map(t=>{let n=Ho(t,e);return{id:t,label:n.label,icon:n.icon}})}var Ko=Go(Fn);function qo(e=Fn){return e===Fn?Ko:Go(e)}E();var Jo,Yo,Xo,Zo=0,Qo=new Set;function $o(){Zo+=1;for(let e of Qo)e()}function es(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function ts(){return Jo===void 0?Xo===void 0?(Yo??=a(()=>import(`./icons-BS95Q050.js`).then(e=>{Jo=e,$o()},e=>{throw Xo=e,$o(),e}),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]),import.meta.url),Yo):Promise.reject(Xo):Promise.resolve()}function ns(){return Xo!==void 0}function rs(){return Jo!==void 0}function is(e){let t=Aa(e);if(t===void 0)return;let n=Wo[t];if(n!==void 0)return n;if(Jo!==void 0)return Jo[es(t)];Xo===void 0&&ts().catch(()=>void 0)}function as(e){return Qo.add(e),()=>{Qo.delete(e)}}var os=()=>Zo;function ss(){return S(as,os,os)}function cs(){return p(()=>e=>is(e),[ss()])}function ls(e){let t=e.split(`+`),n=t[t.length-1]??``,r=t.slice(0,-1);return{mod:r.includes(`mod`),shift:r.includes(`shift`),alt:r.includes(`alt`),key:n}}function us(){return typeof navigator>`u`?`other`:/mac|iphone|ipad/i.test(navigator.platform)?`mac`:`other`}function ds(e,t,n){let r=ls(t),i=n===`mac`?e.metaKey:e.ctrlKey,a=n===`mac`?e.ctrlKey:e.metaKey;return e.key.toLowerCase()===r.key&&i===r.mod&&!a&&e.shiftKey===r.shift&&e.altKey===r.alt}E();var fs=`page`,ps=`fallback`,ms=O(null),hs=O(fs);function gs(e){return e instanceof HTMLElement?e.isContentEditable?!0:e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.tagName===`SELECT`:!1}function _s(e,t,n){if(t.isComposing||t.keyCode===229)return;let r=gs(t.target),i=[...[...e.scopes].reverse().map(e=>e.id),fs,ps];for(let a of i){let i=e.bindings.filter(e=>e.scope===a&&ds(t,e.combo,n)).reverse();for(let e of i)if(!(r&&!e.allowInInput)&&e.handlerRef.current(t)!==!1){e.preventDefault&&t.preventDefault();return}if(e.scopes.find(e=>e.id===a)?.modal)return}}function vs({children:e,platform:t}){let n=f({bindings:[],scopes:[]}),r=t??us(),i=p(()=>({addBinding:e=>(n.current={...n.current,bindings:[...n.current.bindings,e]},()=>{n.current={...n.current,bindings:n.current.bindings.filter(t=>t.id!==e.id)}}),addScope:e=>(n.current={...n.current,scopes:[...n.current.scopes,e]},()=>{n.current={...n.current,scopes:n.current.scopes.filter(t=>t!==e)}})}),[]);return b(()=>{let e=e=>_s(n.current,e,r);return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[r]),v(ms.Provider,{value:i,children:e})}var ys=0;function bs(e,t,n={}){let r=I(ms),i=I(hs),a=f(t);a.current=t;let o=n.scope??i,s=n.enabled??!0,c=n.preventDefault??!0,l=n.allowInInput??ls(e).mod;b(()=>{if(!(!r||!s))return ys+=1,r.addBinding({id:ys,combo:e,scope:o,handlerRef:a,preventDefault:c,allowInInput:l})},[r,s,e,o,c,l])}function xs({id:e,children:t,enabled:n=!0,modal:r=!1}){let i=I(ms);return b(()=>{if(!(!i||!n))return i.addScope({id:e,modal:r})},[i,n,e,r]),v(hs.Provider,{value:e,children:t})}function Ss(e){return e.isConnected&&!e.disabled&&e.getClientRects().length>0}function Cs(e,t={}){let n=t.enabled??!0,r=t.scope,i=()=>{let t=e.current;return!t||!Ss(t)?!1:(t.focus(),t.select(),!0)};bs(`mod+f`,i,{enabled:n,scope:r}),bs(`mod+k`,i,{enabled:n,scope:r})}bo();function ws(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ws(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Ts(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ws(e))&&(r&&(r+=` `),r+=t);return r}var Es=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},Ds=(e,t)=>({classGroupId:e,validator:t}),Os=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),ks=`-`,As=[],js=`arbitrary..`,Ms=e=>{let t=Fs(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return Ps(e);let n=e.split(ks);return Ns(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?Es(i,t):t:i||As}return n[e]||As}}},Ns=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Ns(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(ks):e.slice(t).join(ks),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},Ps=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?js+r:void 0})(),Fs=e=>{let{theme:t,classGroups:n}=e;return Is(n,t)},Is=(e,t)=>{let n=Os();for(let r in e){let i=e[r];Ls(i,n,r,t)}return n},Ls=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Rs(i,t,n,r)}},Rs=(e,t,n,r)=>{if(typeof e==`string`){zs(e,t,n);return}if(typeof e==`function`){Bs(e,t,n,r);return}Vs(e,t,n,r)},zs=(e,t,n)=>{let r=e===``?t:Hs(t,e);r.classGroupId=n},Bs=(e,t,n,r)=>{if(Us(e)){Ls(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Ds(n,e))},Vs=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];Ls(o,Hs(t,a),n,r)}},Hs=(e,t)=>{let n=e,r=t.split(ks),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=Os(),n.nextPart.set(t,i)),n=i}return n},Us=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Ws=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},Gs=`!`,Ks=`:`,qs=[],Js=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Ys=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Ks){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(Gs)?(c=s.slice(0,-1),l=!0):s.startsWith(Gs)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return Js(t,l,c,u)};if(t){let e=t+Ks,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):Js(qs,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Xs=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Zs=e=>({cache:Ws(e.cacheSize),parseClassName:Ys(e),sortModifiers:Xs(e),postfixLookupClassGroupIds:Qs(e),...Ms(e)}),Qs=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},$s=/\s+/,ec=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split($s),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+Gs:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},tc=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=nc(n))&&(i&&(i+=` `),i+=r);return i},nc=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=nc(e[r]))&&(n&&(n+=` `),n+=t);return n},rc=(e,...t)=>{let n,r,i,a,o=o=>(n=Zs(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=ec(e,n);return i(e,a),a};return a=o,(...e)=>a(tc(...e))},ic=[],ac=e=>{let t=t=>t[e]||ic;return t.isThemeGetter=!0,t},oc=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,sc=/^\((?:(\w[\w-]*):)?(.+)\)$/i,cc=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,lc=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,uc=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,dc=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,fc=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,pc=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mc=e=>cc.test(e),hc=e=>!!e&&!Number.isNaN(Number(e)),gc=e=>!!e&&Number.isInteger(Number(e)),_c=e=>e.endsWith(`%`)&&hc(e.slice(0,-1)),vc=e=>lc.test(e),yc=()=>!0,bc=e=>uc.test(e)&&!dc.test(e),xc=()=>!1,Sc=e=>fc.test(e),Cc=e=>pc.test(e),wc=e=>!Z(e)&&!Q(e),Tc=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Ec=e=>Vc(e,Gc,xc),Z=e=>oc.test(e),Dc=e=>Vc(e,Kc,bc),Oc=e=>Vc(e,qc,hc),kc=e=>Vc(e,Yc,yc),Ac=e=>Vc(e,Jc,xc),jc=e=>Vc(e,Uc,xc),Mc=e=>Vc(e,Wc,Cc),Nc=e=>Vc(e,Xc,Sc),Q=e=>sc.test(e),Pc=e=>Hc(e,Kc),Fc=e=>Hc(e,Jc),Ic=e=>Hc(e,Uc),Lc=e=>Hc(e,Gc),Rc=e=>Hc(e,Wc),zc=e=>Hc(e,Xc,!0),Bc=e=>Hc(e,Yc,!0),Vc=(e,t,n)=>{let r=oc.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Hc=(e,t,n=!1)=>{let r=sc.exec(e);return r?r[1]?t(r[1]):n:!1},Uc=e=>e===`position`||e===`percentage`,Wc=e=>e===`image`||e===`url`,Gc=e=>e===`length`||e===`size`||e===`bg-size`,Kc=e=>e===`length`,qc=e=>e===`number`,Jc=e=>e===`family-name`,Yc=e=>e===`number`||e===`weight`,Xc=e=>e===`shadow`,Zc=rc(()=>{let e=ac(`color`),t=ac(`font`),n=ac(`text`),r=ac(`font-weight`),i=ac(`tracking`),a=ac(`leading`),o=ac(`breakpoint`),s=ac(`container`),c=ac(`spacing`),l=ac(`radius`),u=ac(`shadow`),d=ac(`inset-shadow`),f=ac(`text-shadow`),p=ac(`drop-shadow`),m=ac(`blur`),h=ac(`perspective`),g=ac(`aspect`),_=ac(`ease`),v=ac(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),Q,Z],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[Q,Z,c],T=()=>[mc,`full`,`auto`,...w()],E=()=>[gc,`none`,`subgrid`,Q,Z],D=()=>[`auto`,{span:[`full`,gc,Q,Z]},gc,Q,Z],O=()=>[gc,`auto`,Q,Z],k=()=>[`auto`,`min`,`max`,`fr`,Q,Z],A=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],j=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],M=()=>[`auto`,...w()],N=()=>[mc,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],P=()=>[mc,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],F=()=>[mc,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],I=()=>[e,Q,Z],L=()=>[...b(),Ic,jc,{position:[Q,Z]}],R=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],z=()=>[`auto`,`cover`,`contain`,Lc,Ec,{size:[Q,Z]}],B=()=>[_c,Pc,Dc],V=()=>[``,`none`,`full`,l,Q,Z],H=()=>[``,hc,Pc,Dc],U=()=>[`solid`,`dashed`,`dotted`,`double`],ee=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],W=()=>[hc,_c,Ic,jc],G=()=>[``,`none`,m,Q,Z],te=()=>[`none`,hc,Q,Z],ne=()=>[`none`,hc,Q,Z],re=()=>[hc,Q,Z],K=()=>[mc,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[vc],breakpoint:[vc],color:[yc],container:[vc],"drop-shadow":[vc],ease:[`in`,`out`,`in-out`],font:[wc],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[vc],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[vc],shadow:[vc],spacing:[`px`,hc],text:[vc],"text-shadow":[vc],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,mc,Z,Q,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Q,Z]}],"container-named":[Tc],columns:[{columns:[hc,Z,Q,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[gc,`auto`,Q,Z]}],basis:[{basis:[mc,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[hc,mc,`auto`,`initial`,`none`,Z]}],grow:[{grow:[``,hc,Q,Z]}],shrink:[{shrink:[``,hc,Q,Z]}],order:[{order:[gc,`first`,`last`,`none`,Q,Z]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...A(),`normal`]}],"justify-items":[{"justify-items":[...j(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...j()]}],"align-content":[{content:[`normal`,...A()]}],"align-items":[{items:[...j(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...j(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":A()}],"place-items":[{"place-items":[...j(),`baseline`]}],"place-self":[{"place-self":[`auto`,...j()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:N()}],"inline-size":[{inline:[`auto`,...P()]}],"min-inline-size":[{"min-inline":[`auto`,...P()]}],"max-inline-size":[{"max-inline":[`none`,...P()]}],"block-size":[{block:[`auto`,...F()]}],"min-block-size":[{"min-block":[`auto`,...F()]}],"max-block-size":[{"max-block":[`none`,...F()]}],w:[{w:[s,`screen`,...N()]}],"min-w":[{"min-w":[s,`screen`,`none`,...N()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...N()]}],h:[{h:[`screen`,`lh`,...N()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...N()]}],"max-h":[{"max-h":[`screen`,`lh`,...N()]}],"font-size":[{text:[`base`,n,Pc,Dc]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Bc,kc]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,_c,Z]}],"font-family":[{font:[Fc,Ac,t]}],"font-features":[{"font-features":[Z]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Q,Z]}],"line-clamp":[{"line-clamp":[hc,`none`,Q,Oc]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,Q,Z]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Q,Z]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...U(),`wavy`]}],"text-decoration-thickness":[{decoration:[hc,`from-font`,`auto`,Q,Dc]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[hc,`auto`,Q,Z]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[gc,Q,Z]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Q,Z]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Q,Z]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:R()}],"bg-size":[{bg:z()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},gc,Q,Z],radial:[``,Q,Z],conic:[gc,Q,Z]},Rc,Mc]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:B()}],"gradient-via-pos":[{via:B()}],"gradient-to-pos":[{to:B()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"border-w":[{border:H()}],"border-w-x":[{"border-x":H()}],"border-w-y":[{"border-y":H()}],"border-w-s":[{"border-s":H()}],"border-w-e":[{"border-e":H()}],"border-w-bs":[{"border-bs":H()}],"border-w-be":[{"border-be":H()}],"border-w-t":[{"border-t":H()}],"border-w-r":[{"border-r":H()}],"border-w-b":[{"border-b":H()}],"border-w-l":[{"border-l":H()}],"divide-x":[{"divide-x":H()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":H()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...U(),`hidden`,`none`]}],"divide-style":[{divide:[...U(),`hidden`,`none`]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...U(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[hc,Q,Z]}],"outline-w":[{outline:[``,hc,Pc,Dc]}],"outline-color":[{outline:I()}],shadow:[{shadow:[``,`none`,u,zc,Nc]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":[`none`,d,zc,Nc]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:H()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[hc,Dc]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":H()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":[`none`,f,zc,Nc]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[hc,Q,Z]}],"mix-blend":[{"mix-blend":[...ee(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":ee()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[hc]}],"mask-image-linear-from-pos":[{"mask-linear-from":W()}],"mask-image-linear-to-pos":[{"mask-linear-to":W()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":W()}],"mask-image-t-to-pos":[{"mask-t-to":W()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":W()}],"mask-image-r-to-pos":[{"mask-r-to":W()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":W()}],"mask-image-b-to-pos":[{"mask-b-to":W()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":W()}],"mask-image-l-to-pos":[{"mask-l-to":W()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":W()}],"mask-image-x-to-pos":[{"mask-x-to":W()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":W()}],"mask-image-y-to-pos":[{"mask-y-to":W()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[Q,Z]}],"mask-image-radial-from-pos":[{"mask-radial-from":W()}],"mask-image-radial-to-pos":[{"mask-radial-to":W()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[hc]}],"mask-image-conic-from-pos":[{"mask-conic-from":W()}],"mask-image-conic-to-pos":[{"mask-conic-to":W()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:R()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Q,Z]}],filter:[{filter:[``,`none`,Q,Z]}],blur:[{blur:G()}],brightness:[{brightness:[hc,Q,Z]}],contrast:[{contrast:[hc,Q,Z]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,zc,Nc]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:[``,hc,Q,Z]}],"hue-rotate":[{"hue-rotate":[hc,Q,Z]}],invert:[{invert:[``,hc,Q,Z]}],saturate:[{saturate:[hc,Q,Z]}],sepia:[{sepia:[``,hc,Q,Z]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Q,Z]}],"backdrop-blur":[{"backdrop-blur":G()}],"backdrop-brightness":[{"backdrop-brightness":[hc,Q,Z]}],"backdrop-contrast":[{"backdrop-contrast":[hc,Q,Z]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,hc,Q,Z]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[hc,Q,Z]}],"backdrop-invert":[{"backdrop-invert":[``,hc,Q,Z]}],"backdrop-opacity":[{"backdrop-opacity":[hc,Q,Z]}],"backdrop-saturate":[{"backdrop-saturate":[hc,Q,Z]}],"backdrop-sepia":[{"backdrop-sepia":[``,hc,Q,Z]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Q,Z]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[hc,`initial`,Q,Z]}],ease:[{ease:[`linear`,`initial`,_,Q,Z]}],delay:[{delay:[hc,Q,Z]}],animate:[{animate:[`none`,v,Q,Z]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,Q,Z]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:te()}],"rotate-x":[{"rotate-x":te()}],"rotate-y":[{"rotate-y":te()}],"rotate-z":[{"rotate-z":te()}],scale:[{scale:ne()}],"scale-x":[{"scale-x":ne()}],"scale-y":[{"scale-y":ne()}],"scale-z":[{"scale-z":ne()}],"scale-3d":[`scale-3d`],skew:[{skew:re()}],"skew-x":[{"skew-x":re()}],"skew-y":[{"skew-y":re()}],transform:[{transform:[Q,Z,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:K()}],"translate-x":[{"translate-x":K()}],"translate-y":[{"translate-y":K()}],"translate-z":[{"translate-z":K()}],"translate-none":[`translate-none`],zoom:[{zoom:[gc,Q,Z]}],accent:[{accent:I()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Q,Z]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":I()}],"scrollbar-track-color":[{"scrollbar-track":I()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Q,Z]}],fill:[{fill:[`none`,...I()]}],"stroke-w":[{stroke:[hc,Pc,Dc,Oc]}],stroke:[{stroke:[`none`,...I()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function $(...e){return Zc(Ts(e))}E();var Qc=`(max-width: 767px)`,$c=`(min-width: 768px) and (max-width: 1023px)`;function el(e){return typeof window.matchMedia==`function`?window.matchMedia(e):null}function tl(e){return t=>{let n=el(e);return n===null?()=>{}:(n.addEventListener(`change`,t),()=>n.removeEventListener(`change`,t))}}function nl(e){return()=>el(e)?.matches??!1}function rl(){return!1}function il(){return S(tl(Qc),nl(Qc),rl)}function al(){return S(tl($c),nl($c),rl)}E();function ol({open:e,onClose:t,title:n,children:r,className:i}){return b(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,n),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,n),document.body.style.overflow=``}},[e,t]),c(P,{children:[v(`div`,{className:$(`fixed inset-0 z-40 bg-black/50 transition-opacity duration-200`,e?`opacity-100`:`pointer-events-none opacity-0`),onClick:t,"aria-hidden":`true`}),c(`div`,{role:`dialog`,"aria-modal":`true`,className:$(`fixed inset-x-0 bottom-0 z-50 flex flex-col bg-background-elevated border-t border-border rounded-t-xl shadow-2xl transition-transform duration-200 ease-out pb-[env(safe-area-inset-bottom)]`,`max-h-[80dvh]`,e?`translate-y-0`:`translate-y-full`,i),children:[v(`div`,{className:`flex justify-center pt-2 pb-1`,children:v(`div`,{className:`h-1 w-8 rounded-full bg-foreground-subtle/30`})}),n&&c(`div`,{className:`flex items-center justify-between px-4 pb-2`,children:[v(`span`,{className:`text-sm font-medium text-foreground`,children:n}),v(`button`,{onClick:t,className:`p-1 rounded-md hover:bg-surface-hover text-foreground-muted transition-colors`,children:v(Yn,{className:`h-4 w-4`})})]}),v(`div`,{className:`flex-1 overflow-y-auto px-4 pb-4`,children:r})]})]})}E();var sl=O(null);function cl(){let e=I(sl);if(!e)throw Error(`Popover compound components must be used within <Popover>`);return e}function ll({children:e,open:t,onOpenChange:n}){let[r,i]=C(!1),a=t??r,o=y(),s=y(),c=f(null),l=_(e=>{n?.(e),t===void 0&&i(e)},[t,n]);return v(sl.Provider,{value:{open:a,setOpen:l,triggerId:o,contentId:s,triggerRef:c},children:v(`div`,{className:`relative inline-block`,children:e})})}function ul({children:e,...t}){let{open:n,setOpen:r,triggerId:i,contentId:a,triggerRef:o}=cl();return v(`button`,{type:`button`,ref:o,id:i,"aria-haspopup":`dialog`,"aria-expanded":n,"aria-controls":n?a:void 0,onClick:()=>r(!n),...t,children:e})}var dl=8;function fl(e){let t=e.viewportHeight-e.triggerBottom-e.offset-dl,n=e.triggerTop-e.offset-dl,r=e.contentHeight>t&&n>t?`above`:`below`;return{side:r,maxHeight:Math.max(0,r===`above`?n:t)}}function pl({className:e,children:t,align:n=`start`,offset:r=4,...i}){let{open:a,setOpen:o,contentId:s,triggerId:c,triggerRef:l}=cl(),d=il(),p=f(null),[m,h]=C(null),[g,_]=C(null);return u(()=>{if(!a||d){h(null);return}let e=()=>{let e=l.current;if(!e)return;let t=e.getBoundingClientRect(),i=n===`end`?t.right:t.left;h({top:t.bottom+r,left:i,minWidth:t.width,triggerTop:t.top,triggerBottom:t.bottom})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[a,d,n,r,l]),u(()=>{let e=p.current;if(!m||!e){_(null);return}_(fl({triggerTop:m.triggerTop,triggerBottom:m.triggerBottom,contentHeight:e.scrollHeight,viewportHeight:window.innerHeight,offset:r}))},[m,r]),b(()=>{if(!a||d)return;let e=e=>{let t=p.current,n=l.current;t&&!t.contains(e.target)&&!n?.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&o(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a,o,l,d]),a?d?v(ol,{open:a,onClose:()=>o(!1),children:t}):!m||typeof document>`u`?null:xo(v(`div`,{ref:p,id:s,role:`dialog`,"aria-labelledby":c,style:{position:`fixed`,...g?.side===`above`?{bottom:window.innerHeight-m.triggerTop+r}:{top:m.top},...g?{maxHeight:g.maxHeight}:{},...n===`end`?{right:window.innerWidth-m.left}:{left:m.left},minWidth:m.minWidth},className:$(`z-50 overflow-y-auto bg-background-elevated border border-border rounded-lg shadow-lg p-3`,e),...i,children:t}),document.body):null}E();var ml=7,hl=24,gl=32,_l=288,vl=96;function yl(e){let t=[];for(let n=0;n<e.length;n+=ml)t.push(e.slice(n,n+ml));return t}function bl(e){return e.kind===`header`?hl:gl}function xl(e,t){return e.trim().length>0?yl(Ree(e,t).map(e=>e.entry.key)).map((e,t)=>({kind:`tiles`,id:`r${t}`,keys:e})):sa.flatMap(e=>{let t=fa(e).map(e=>e.key);return[{kind:`header`,id:`h-${e}`,category:e},...yl(t).map((t,n)=>({kind:`tiles`,id:`${e}-${n}`,keys:t}))]})}function Sl(e,t,n,r){let i=Math.max(0,r-vl),a=r+_l+vl,o=0;for(;o<e.length-1&&(t[o+1]??n)<=i;)o+=1;let s=o;for(;s<e.length&&(t[s]??n)<a;)s+=1;return{rows:e.slice(o,s),padTop:t[o]??0,padBottom:Math.max(0,n-(t[s]??n))}}function Cl({value:e,onPick:t,fallbackGlyph:n,labels:r,extraWords:i,clearGlyph:a,labelFor:o,categoryLabel:s=Sa,disabled:l=!1}){let u=f(null);Cs(u);let[d,m]=C(!1),[h,g]=C(``),[_,y]=C(0),x=f(null),S=cs();b(()=>{d&&ts().catch(()=>void 0)},[d]);let w=Aa(e),T=p(()=>xl(h,i),[h,i]),{offsets:E,total:D}=p(()=>{let e=[],t=0;for(let n of T)e.push(t),t+=bl(n);return{offsets:e,total:t}},[T]),O=p(()=>Sl(T,E,D,_),[T,E,D,_]),k=(e===null?void 0:S(e))??n,A=a??n,j=e=>{g(e),y(0),x.current!==null&&(x.current.scrollTop=0)},M=async e=>{N(!1),await t(e)},N=e=>{m(e),e||j(``)};return c(ll,{open:d,onOpenChange:N,children:[v(ul,{disabled:l,"aria-label":r.trigger,title:r.trigger,className:`rounded border border-border p-1 text-foreground-muted hover:bg-surface-hover disabled:opacity-50`,children:v(k,{className:`h-4 w-4`})}),v(pl,{"aria-label":r.panel,"aria-labelledby":void 0,className:`w-72 p-2`,children:c(`div`,{className:`w-full`,children:[v(`input`,{ref:u,type:`search`,value:h,autoFocus:!0,onChange:e=>j(e.target.value),placeholder:r.searchPlaceholder,"aria-label":r.searchPlaceholder,className:`mb-2 w-full rounded border border-border bg-surface-raised px-2 py-1 text-xs text-foreground placeholder:text-foreground-subtle`}),c(`button`,{type:`button`,onClick:()=>void M(null),"aria-pressed":e===null,className:`mb-2 flex w-full items-center gap-1.5 rounded px-1.5 py-1 text-[11px] text-foreground-subtle hover:bg-surface-hover`,children:[v(A,{className:`h-3.5 w-3.5`}),r.clear]}),T.length===0?v(`p`,{className:`px-1.5 py-2 text-[11px] text-foreground-subtle`,children:r.noMatches}):v(`div`,{ref:x,onScroll:e=>y(e.currentTarget.scrollTop),className:`max-h-72 overflow-y-auto`,children:v(`div`,{style:{paddingTop:O.padTop,paddingBottom:O.padBottom},children:O.rows.map(e=>e.kind===`header`?v(`h4`,{className:`flex h-6 items-center px-1.5 text-[10px] uppercase tracking-wide text-foreground-subtle`,children:s(e.category)},e.id):v(`div`,{className:`grid h-8 grid-cols-7 gap-1 pb-1`,children:e.keys.map(e=>{let t=S(e);if(t===void 0)return v(`span`,{"aria-hidden":`true`},e);let n=w===e;return v(`button`,{type:`button`,onClick:()=>void M(e),"aria-pressed":n,"aria-label":o?.(e)??e,title:o?.(e)??e,className:n?`flex items-center justify-center rounded border border-primary bg-primary/10 text-foreground`:`flex items-center justify-center rounded border border-transparent text-foreground-muted hover:bg-surface-hover`,children:v(t,{className:`h-4 w-4`})},e)})},e.id))})})]})})]})}function wl(e){return{trigger:`Choose an icon for ${e}`,panel:`${e} icon`,searchPlaceholder:`Search icons`,clear:`Default icon`,noMatches:`No icon matches`}}function Tl({label:e,value:t,defaultKey:n,disabled:r,onChange:i}){let a=cs(),o=ua(t,n),s=a(n)??Hr;return c(`div`,{className:`flex items-center gap-2`,children:[v(Cl,{value:o===``?null:o,onPick:e=>i(e??n),fallbackGlyph:s,labels:wl(e),disabled:r}),v(`span`,{className:`text-[11px] text-foreground-subtle font-mono`,children:o})]})}function El(e){if(typeof window>`u`||typeof DOMParser>`u`)return``;let t=new Set([`A`,`UL`,`OL`,`LI`,`STRONG`,`EM`,`CODE`,`BR`,`P`,`SPAN`,`B`]),n=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`),r=n.body.firstElementChild;if(!r)return``;let i=e=>{let r=Array.from(e.children);for(let e of r){if(!t.has(e.tagName)){let t=n.createTextNode(e.textContent??``);e.replaceWith(t);continue}let r=e.tagName===`A`?new Set([`href`]):new Set;for(let t of Array.from(e.attributes))r.has(t.name)||e.removeAttribute(t.name);if(e.tagName===`A`){let t=e.getAttribute(`href`)??``,n=/^https?:\/\//i.test(t),r=t.startsWith(`mailto:`),i=t.startsWith(`/`)&&!t.startsWith(`//`);!n&&!r&&!i?e.removeAttribute(`href`):n&&(e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))}i(e)}};return i(r),r.innerHTML}var Dl=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Ol=Ts,kl=(e,t)=>n=>{if(t?.variants==null)return Ol(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Dl(t)||Dl(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return Ol(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};E();var Al=kl(`inline-flex items-center justify-center rounded-md font-medium transition-colors cursor-pointer disabled:opacity-50 disabled:pointer-events-none`,{variants:{variant:{primary:`bg-primary text-primary-foreground hover:bg-primary/90`,secondary:`bg-surface text-foreground hover:bg-surface-hover`,ghost:`hover:bg-surface-hover text-foreground-muted`,danger:`bg-danger text-white hover:bg-danger/90`,outline:`border border-border bg-transparent hover:bg-surface-hover`},size:{sm:`h-7 w-7`,md:`h-8 w-8`,lg:`h-9 w-9`}},defaultVariants:{variant:`primary`,size:`sm`}}),jl=D(({className:e,variant:t,size:n,icon:r,...i},a)=>v(`button`,{ref:a,className:$(Al({variant:t,size:n}),e),...i,children:v(r,{className:`h-4 w-4`,"aria-hidden":`true`})}));jl.displayName=`IconButton`,E();var Ml=kl(`h-7 w-full px-2.5 text-xs bg-surface border rounded-md text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-1 focus:ring-inset focus:ring-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,{variants:{state:{default:`border-border`,error:`border-danger`}},defaultVariants:{state:`default`}}),Nl=D(({className:e,state:t,leftSlot:n,rightSlot:r,searchHotkey:i,...a},o)=>{let s=f(null),l=_(e=>{s.current=e,typeof o==`function`?o(e):o&&(o.current=e)},[o]);return Cs(s,{enabled:i??a.type===`search`}),n||r?c(`div`,{className:$(`relative flex items-center`,e),children:[n&&v(`div`,{className:`absolute left-2.5 flex items-center text-foreground-subtle pointer-events-none`,children:n}),v(`input`,{ref:l,className:$(Ml({state:t}),n&&`pl-8`,r&&`pr-8`,e),...a}),r&&v(`div`,{className:`absolute right-2.5 flex items-center text-foreground-subtle`,children:r})]}):v(`input`,{ref:l,className:$(Ml({state:t}),e),...a})});Nl.displayName=`Input`,E();var Pl=O(null);function Fl(){let e=I(Pl);if(!e)throw Error(`Tooltip compound components must be used within <Tooltip>`);return e}function Il({children:e,className:t,open:n}){let[r,i]=C(!1),a=n??r,o=f(null),s=y();return v(Pl.Provider,{value:{open:a,show:()=>{o.current=setTimeout(()=>i(!0),300)},hide:()=>{o.current&&clearTimeout(o.current),i(!1)},tooltipId:s},children:v(`div`,{className:$(`relative`,t??`inline-block`),children:e})})}function Ll({children:e,...t}){let{show:n,hide:r,tooltipId:i,open:a}=Fl();return v(`div`,{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r,"aria-describedby":a?i:void 0,...t,children:e})}function Rl({className:e,children:t,...n}){let{open:r,tooltipId:i}=Fl();return v(`div`,{id:i,role:`tooltip`,className:$(`absolute bottom-full left-1/2 -translate-x-1/2 mb-2 bg-foreground text-background text-xs px-2 py-1 rounded-md shadow-md whitespace-nowrap pointer-events-none transition-opacity duration-150`,r?`opacity-100`:`opacity-0`,e),...n,children:t})}E();var zl=`w-full min-h-[60px] rounded-md border border-border bg-background px-2.5 py-1.5 pr-9 font-mono text-xs text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-1 focus:ring-primary disabled:opacity-50 disabled:cursor-not-allowed`,Bl={WebkitTextSecurity:`disc`},Vl=D(({value:e,onValueChange:t,shown:n,onToggleShown:r,busy:i=!1,error:a=null,toggleBlockedReason:o=null,hideToggle:s=!1,multiline:l=!1,className:u,disabled:d,...f},p)=>{let m=n?`Hide password`:`Show password`;return c(`div`,{className:`relative w-full`,children:[l?v(`textarea`,{className:$(zl,u),style:n?void 0:Bl,value:e,disabled:d,spellCheck:!1,autoComplete:`off`,"aria-label":f[`aria-label`],placeholder:f.placeholder,onChange:e=>t(e.target.value)}):v(Nl,{ref:p,...f,type:n?`text`:`password`,className:$(`h-auto bg-background py-1.5`,!s&&`pr-9`,u),value:e,disabled:d,spellCheck:!1,autoComplete:`new-password`,onChange:e=>t(e.target.value)}),!s&&c(Il,{open:a!==null,className:`absolute right-0.5 top-0.5`,children:[v(`span`,{className:`inline-flex`,title:o??void 0,children:v(jl,{type:`button`,variant:`ghost`,icon:i?Un:n?Oe:Zt,"aria-label":m,"aria-pressed":n,"aria-busy":i||void 0,disabled:d||i||o!==null,className:$(`h-6 w-6 text-foreground-subtle`,i&&`[&>svg]:animate-spin`),onClick:r})}),a!==null&&v(Rl,{role:`alert`,className:`left-auto right-0 w-max max-w-[16rem] translate-x-0 whitespace-normal bg-danger text-white`,children:a})]})]})});Vl.displayName=`PasswordInput`,E();var Hl=D(({className:e,options:t,disabled:n,...r},i)=>c(`div`,{className:`relative w-full`,children:[v(`select`,{ref:i,disabled:n,className:$(`h-7 w-full px-2.5 text-xs bg-surface border border-border rounded-md text-foreground appearance-none pr-7 focus:outline-none focus:ring-1 focus:ring-primary`,`disabled:opacity-50 disabled:cursor-not-allowed`,e),...r,children:t.map(e=>v(`option`,{value:e.value,children:e.label},e.value))}),v(`div`,{className:$(`absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-foreground-muted`,n===!0?`opacity-50`:``),children:v(de,{className:`h-3.5 w-3.5`})})]}));Hl.displayName=`Select`,E();var Ul=1e4,Wl=`••••••••`,Gl=5e3,Kl=Wn(`camstack:secret-reveal`,null);function ql({reveal:e,children:t}){return v(Kl.Provider,{value:e,children:t})}function Jl(e){return e===null||ja(e)||ca(e)}function Yl(e,t,n){return e.kind===`untouched`?t:e.text.length===0?n?ra:t:e.text===e.revealed?t:e.text}function Xl(e){return typeof e==`string`&&e.length>0?{kind:`visible`,text:e,revealed:null}:ca(e)?{kind:`visible`,text:``,revealed:null}:{kind:`untouched`}}function Zl(e,t,n,r){return e.kind===`untouched`?t?Wl:n:e.text.length===0&&t?r(`uiLibrary.configSecretField.removedOnSave`,`Removed on save`):n}function Ql({field:e,value:t,onChange:n,disabled:r,multiline:i}){let a=q(),o=I(Kl),[s]=C(()=>ja(t)?t:null),[c]=C(()=>ja(t)||ca(t)),[l,u]=C(()=>Xl(t)),[d,f]=C(!1),[p,m]=C(!1),[h,g]=C(null);b(()=>{if(h===null)return;let e=setTimeout(()=>g(null),Gl);return()=>clearTimeout(e)},[h]);let _=s?.$secret??null,y=l.kind===`untouched`&&c,x=y&&!(_!==null&&o!==null)?a(`uiLibrary.configSecretField.cannotReveal`,`This stored value cannot be revealed here — type to replace it`):null,S=e=>{let t={kind:`visible`,text:e,revealed:l.kind===`visible`?l.revealed:null};g(null),u(t),n(Yl(t,s,c))},w=()=>{if(!y){f(e=>!e);return}_===null||o===null||(g(null),m(!0),o(_).then(e=>{m(!1),u({kind:`visible`,text:e,revealed:e}),f(!0)},e=>{m(!1),g(e instanceof Error?e.message:String(e))}))},T=`label`in e?e.label:``,E=`placeholder`in e&&typeof e.placeholder==`string`?e.placeholder:``;return v(`div`,{"data-secret-field":`key`in e?e.key:void 0,children:v(Vl,{"aria-label":T,value:l.kind===`visible`?l.text:``,onValueChange:S,placeholder:Zl(l,c,E,a),shown:d,onToggleShown:w,busy:p,error:h,toggleBlockedReason:x,disabled:r,multiline:i})})}var $l=X.accessories.setChildHidden.useMutation,eu=X.accessories.getStatus.useQuery,tu=X.actions.list.useQuery,nu=X.actions.get.useQuery,ru=X.actions.run.useMutation,iu=X.actions.stop.useMutation,au=X.actions.getTraces.useQuery,ou=X.actions.create.useMutation,su=X.actions.update.useMutation,cu=X.actions.delete.useMutation,lu=X.actions.listForCamera.useQuery,uu=X.actions.getLinks.useQuery,du=X.actions.setLinks.useMutation,fu=X.actionSource.listActions.useQuery,pu=X.actionSource.runAction.useMutation,mu=X.actionSource.stopAction.useMutation,hu=X.addonPages.listPages.useQuery,gu=X.addons.list.useQuery,_u=X.addons.getLogs.useQuery,vu=X.addons.listPackages.useQuery,yu=X.addons.installPackage.useMutation,bu=X.addons.installFromWorkspace.useMutation,xu=X.addons.isWorkspaceAvailable.useQuery,Su=X.addons.listWorkspacePackages.useQuery,Cu=X.addons.uninstallPackage.useMutation,wu=X.addons.listInstallations.useQuery,Tu=X.addons.reloadPackages.useMutation,Eu=X.addons.searchAvailable.useQuery,Du=X.addons.listUpdates.useQuery,Ou=X.addons.updatePackage.useMutation,ku=X.addons.rollbackPackage.useMutation,Au=X.addons.forceRefresh.useMutation,ju=X.addons.restartServer.useMutation,Mu=X.addons.getLastRestart.useQuery,Nu=X.addons.listFrameworkPackages.useQuery,Pu=X.addons.listCapabilityProviders.useQuery,Fu=X.addons.setCapabilityProviderEnabled.useMutation,Iu=X.addons.getVersions.useQuery,Lu=X.addons.getPackageDocs.useQuery,Ru=X.addons.restartAddon.useMutation,zu=X.addons.retryLoad.useMutation,Bu=X.addons.getAutoUpdateSettings.useQuery,Vu=X.addons.setAutoUpdateSettings.useMutation,Hu=X.addons.getAddonAutoUpdate.useQuery,Uu=X.addons.setAddonAutoUpdate.useMutation,Wu=X.addons.applyAutoUpdateToAll.useMutation,Gu=X.addons.custom.useMutation,Ku=X.addons.startJob.useMutation,qu=X.addons.getJob.useQuery,Ju=X.addons.listJobs.useQuery,Yu=X.addons.cancelJob.useMutation,Xu=X.addons.onAddonLogs.useSubscription,Zu=X.addonSettings.getGlobalSettings.useQuery,Qu=X.addonSettings.updateGlobalSettings.useMutation,$u=X.addonSettings.getIntegrationSettings.useQuery,ed=X.addonSettings.getDeviceSettings.useQuery,td=X.addonSettings.updateDeviceSettings.useMutation,nd=X.addonWidgets.listWidgets.useQuery,rd=X.airQualitySensor.getStatus.useQuery,id=X.alarmPanel.arm.useMutation,ad=X.alarmPanel.disarm.useMutation,od=X.alarmPanel.trigger.useMutation,sd=X.alarmPanel.getStatus.useQuery,cd=X.alerts.emit.useMutation,ld=X.alerts.update.useMutation,ud=X.alerts.list.useQuery,dd=X.alerts.getUnreadCount.useQuery,fd=X.alerts.markRead.useMutation,pd=X.alerts.markAllRead.useMutation,md=X.alerts.dismiss.useMutation,hd=X.ambientLightSensor.getStatus.useQuery,gd=X.audioAnalysis.resolveDeviceSettings.useQuery,_d=X.audioAnalysis.getDeviceSettingsContribution.useQuery,Bee=X.audioAnalysis.getDeviceLiveContribution.useQuery,Vee=X.audioAnalysis.applyDeviceSettingsPatch.useMutation,Hee=X.audioAnalyzer.analyseChunk.useMutation,Uee=X.audioAnalyzer.classify.useQuery,Wee=X.audioAnalyzer.attachDevice.useMutation,Gee=X.audioAnalyzer.detachDevice.useMutation,Kee=X.audioAnalyzer.isReady.useQuery,qee=X.audioAnalyzer.dispose.useMutation,vd=X.audioAnalyzer.reprobeAudioEngine.useMutation,Jee=X.audioCodec.listSupportedCodecs.useQuery,Yee=X.audioCodec.canHandle.useQuery,Xee=X.audioCodec.createDecodeSession.useMutation,Zee=X.audioCodec.createEncodeSession.useMutation,Qee=X.audioCodec.closeSession.useMutation,$ee=X.audioCodec.pushEncodedFrame.useMutation,ete=X.audioCodec.pullPcm.useQuery,tte=X.audioCodec.pushPcm.useMutation,nte=X.audioCodec.pullEncoded.useQuery,rte=X.audioCodec.flushEncode.useMutation,ite=X.audioCodec.listActiveSessions.useQuery,yd=X.audioMetrics.getCurrentSnapshot.useQuery,ate=X.audioMetrics.getHistory.useQuery,ote=X.automationControl.enable.useMutation,ste=X.automationControl.disable.useMutation,cte=X.automationControl.trigger.useMutation,lte=X.automationControl.getStatus.useQuery,bd=X.backup.listDestinations.useQuery,xd=X.backup.trigger.useMutation,Sd=X.backup.listRuns.useQuery,Cd=X.backup.cancel.useMutation,ute=X.backup.list.useQuery,dte=X.backup.listLocations.useQuery,wd=X.backup.getEntries.useQuery,Td=X.backup.restore.useMutation,Ed=X.backup.getEncryption.useQuery,Dd=X.backup.setupEncryption.useMutation,Od=X.backup.disableEncryption.useMutation,fte=X.backup.checkBackupKey.useMutation,kd=X.backup.delete.useMutation,Ad=X.backup.listArchives.useQuery,pte=X.backup.upsertDestinationPolicy.useMutation,jd=X.backup.previewSchedule.useQuery,Md=X.backup.listSchedules.useQuery,Nd=X.backup.listAvailableDatabases.useQuery,Pd=X.backup.upsertSchedule.useMutation,Fd=X.backup.deleteSchedule.useMutation,mte=X.battery.wakeForStream.useMutation,hte=X.battery.getStatus.useQuery,gte=X.binary.getStatus.useQuery,_te=X.brightness.setBrightness.useMutation,vte=X.brightness.getStatus.useQuery,Id=X.broker.list.useQuery,yte=X.broker.get.useQuery,Ld=X.broker.listProviders.useQuery,Rd=X.broker.add.useMutation,zd=X.broker.remove.useMutation,Bd=X.broker.testConnection.useMutation,Vd=X.broker.getSettings.useQuery,Hd=X.broker.setSettings.useMutation,bte=X.broker.getBrokerConfig.useQuery,Ud=X.broker.getSettingsSchema.useQuery,Wd=X.broker.testSettings.useMutation,Gd=X.broker.publish.useMutation,xte=X.broker.subscribe.useMutation,Ste=X.broker.unsubscribe.useMutation,Kd=X.broker.getState.useQuery,qd=X.broker.getStatus.useQuery,Cte=X.button.press.useMutation,Jd=X.calendars.listCalendars.useQuery,Yd=X.calendars.listEvents.useQuery,Xd=X.calendars.getPreferences.useQuery,Zd=X.calendars.setCalendarPreference.useMutation,wte=X.cameraCredentials.getCredentials.useQuery,Tte=X.cameraCredentials.getStatus.useQuery,Ete=X.cameraGridLayout.getLayout.useQuery,Dte=X.cameraGridLayout.saveLayout.useMutation,Ote=X.cameraGridLayout.getDeviceSettingsContribution.useQuery,kte=X.cameraGridLayout.getDeviceLiveContribution.useQuery,Ate=X.cameraGridLayout.applyDeviceSettingsPatch.useMutation,jte=X.cameraPipelineConfig.getDeviceSettingsContribution.useQuery,Mte=X.cameraPipelineConfig.getDeviceLiveContribution.useQuery,Nte=X.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation,Pte=X.cameraStreams.getCameraStreams.useQuery,Fte=X.cameraStreams.getBrokerStreams.useQuery,Qd=X.cameraStreams.getRtspEntries.useQuery,Ite=X.cameraStreams.getProfileRtspEntries.useQuery,Lte=X.cameraStreams.pickStream.useQuery,Rte=X.carbonMonoxide.getStatus.useQuery,zte=X.climateControl.setMode.useMutation,Bte=X.climateControl.setFanMode.useMutation,Vte=X.climateControl.setPreset.useMutation,Hte=X.climateControl.setTarget.useMutation,Ute=X.climateControl.setTargetRange.useMutation,Wte=X.climateControl.setTargetHumidity.useMutation,Gte=X.climateControl.setSwingVertical.useMutation,Kte=X.climateControl.setSwingHorizontal.useMutation,qte=X.climateControl.getStatus.useQuery,Jte=X.color.setColor.useMutation,Yte=X.color.getStatus.useQuery,Xte=X.connectionTest.testSettings.useMutation,Zte=X.connectionTest.describeTest.useQuery,Qte=X.connectivity.getStatus.useQuery,$te=X.consumables.reset.useMutation,ene=X.consumables.getStatus.useQuery,tne=X.contact.getStatus.useQuery,nne=X.control.setValue.useMutation,rne=X.control.getStatus.useQuery,ine=X.coreBlocks.list.useQuery,$d=X.coreBlocks.get.useQuery,ef=X.coreBlocks.create.useMutation,tf=X.coreBlocks.update.useMutation,nf=X.coreBlocks.delete.useMutation,rf=X.coreBlocks.setEnabled.useMutation,af=X.coreBlocks.restart.useMutation,of=X.coreBlocks.compile.useMutation,sf=X.coreBlocks.getBlockSettings.useQuery,cf=X.coreBlocks.updateBlockSettings.useMutation,lf=X.coreBlocks.migrateRawSecrets.useMutation,uf=X.coreBlocks.getTypeDefs.useQuery,df=X.coreBlocks.createComposition.useMutation,ff=X.coreBlocks.updateComposition.useMutation,pf=X.coreBlocks.getComposition.useQuery,mf=X.coreBlocks.listCompositions.useQuery,hf=X.coreBlocks.getCustomization.useQuery,gf=X.coreBlocks.listComposableCaps.useQuery,_f=X.coreBlocks.validateComposition.useMutation,vf=X.coreBlocks.reportAutomationRun.useMutation,yf=X.coreBlocks.getAutomationRunState.useQuery,bf=X.coreBlocks.getTraces.useQuery,xf=X.cover.open.useMutation,Sf=X.cover.close.useMutation,Cf=X.cover.stop.useMutation,wf=X.cover.setPosition.useMutation,Tf=X.cover.setTiltPosition.useMutation,Ef=X.cover.getStatus.useQuery,Df=X.dayNight.getOptions.useQuery,Of=X.dayNight.setSettings.useMutation,kf=X.dayNight.getStatus.useQuery,Af=X.decoder.getInfo.useQuery,jf=X.decoder.reprobeHwaccel.useMutation,Mf=X.detectionPipeline.getDeviceSettingsContribution.useQuery,Nf=X.detectionPipeline.getDeviceLiveContribution.useQuery,Pf=X.detectionPipeline.applyDeviceSettingsPatch.useMutation,Ff=X.deviceAdminLink.getAdminLink.useQuery,If=X.deviceAdoption.listCandidateFilters.useQuery,Lf=X.deviceAdoption.listCandidates.useQuery,Rf=X.deviceAdoption.getCandidate.useQuery,zf=X.deviceAdoption.refresh.useMutation,Bf=X.deviceAdoption.adopt.useMutation,Vf=X.deviceAdoption.release.useMutation,Hf=X.deviceAdoption.resync.useMutation,Uf=X.deviceAdoption.getStatus.useQuery,ane=X.deviceCredentials.listDeviceCredentials.useQuery,one=X.deviceCredentials.startEnrollment.useMutation,sne=X.deviceCredentials.revokeDeviceCredential.useMutation,cne=X.deviceCredentials.getDeviceCertificateSettings.useQuery,lne=X.deviceCredentials.setDeviceCertificateSettings.useMutation,une=X.deviceCredentials.deleteDeviceCredential.useMutation,dne=X.deviceCredentials.getDeviceCaStatus.useQuery,fne=X.deviceCredentials.renameDeviceCredential.useMutation,Wf=X.deviceDiscovery.listDiscovered.useQuery,Gf=X.deviceDiscovery.refreshDiscovery.useMutation,Kf=X.deviceDiscovery.adoptDevice.useMutation,qf=X.deviceDiscovery.releaseDevice.useMutation,Jf=X.deviceDiscovery.getStatus.useQuery,Yf=X.deviceExport.getStatus.useQuery,Xf=X.deviceExport.listSupportedDeviceKinds.useQuery,Zf=X.deviceExport.listExposedDevices.useQuery,Qf=X.deviceExport.exposeDevice.useMutation,$f=X.deviceExport.unexposeDevice.useMutation,ep=X.deviceExport.getDeviceSettingsContribution.useQuery,tp=X.deviceExport.getDeviceLiveContribution.useQuery,np=X.deviceExport.applyDeviceSettingsPatch.useMutation,rp=X.deviceExtension.listSources.useQuery,ip=X.deviceExtension.listSlots.useQuery,ap=X.deviceExtension.listCandidates.useQuery,op=X.deviceExtension.setSlot.useMutation,sp=X.deviceHistory.listSeries.useQuery,cp=X.deviceHistory.listNodeSeries.useQuery,lp=X.deviceHistory.query.useQuery,up=X.deviceHistory.queryNode.useQuery,dp=X.deviceHistory.queryMany.useQuery,fp=X.deviceHistory.declareSeries.useMutation,pp=X.deviceHistory.record.useMutation,mp=X.deviceHistory.recordBuckets.useMutation,hp=X.deviceHistory.getDeviceEnabled.useQuery,gp=X.deviceHistory.setDeviceEnabled.useMutation,_p=X.deviceHistory.getStatus.useQuery,vp=X.deviceHistory.listOrphanSeries.useQuery,yp=X.deviceHistory.deleteOrphanSeries.useMutation,bp=X.deviceManager.allocateDeviceId.useMutation,xp=X.deviceManager.migrateDevice.useMutation,Sp=X.deviceManager.registerDevice.useMutation,Cp=X.deviceManager.removeDevice.useMutation,wp=X.deviceManager.persistConfig.useMutation,Tp=X.deviceManager.loadConfig.useQuery,Ep=X.deviceManager.loadRuntimeState.useQuery,Dp=X.deviceManager.loadMeta.useQuery,Op=X.deviceManager.setName.useMutation,kp=X.deviceManager.setLocation.useMutation,Ap=X.deviceManager.setType.useMutation,jp=X.deviceManager.setIntegrationId.useMutation,Mp=X.deviceManager.setLinkDeviceId.useMutation,Np=X.deviceManager.setPrimaryChildEntityId.useMutation,Pp=X.deviceManager.setChildLayout.useMutation,Fp=X.deviceManager.setDisplay.useMutation,Ip=X.deviceManager.getRoleDisplayDefaults.useQuery,Lp=X.deviceManager.setRoleDisplayDefaults.useMutation,Rp=X.deviceManager.getWireableFields.useQuery,zp=X.deviceManager.setRole.useMutation,Bp=X.deviceManager.applyInitialMeta.useMutation,Vp=X.deviceManager.setMetadata.useMutation,Hp=X.deviceManager.listLocations.useQuery,Up=X.deviceManager.addLocation.useMutation,Wp=X.deviceManager.removeLocation.useMutation,Gp=X.deviceManager.renameLocation.useMutation,Kp=X.deviceManager.listLocationIcons.useQuery,qp=X.deviceManager.setLocationIcon.useMutation,Jp=X.deviceManager.listLocationDescriptions.useQuery,Yp=X.deviceManager.setLocationDescription.useMutation,Xp=X.deviceManager.listSiteZones.useQuery,Zp=X.deviceManager.setSiteZone.useMutation,Qp=X.deviceManager.removeSiteZone.useMutation,$p=X.deviceManager.renameSiteZone.useMutation,em=X.deviceManager.setLocationZone.useMutation,pne=X.deviceManager.setDisabled.useMutation,tm=X.deviceManager.listPersistedByAddon.useQuery,nm=X.deviceManager.listAll.useQuery,rm=X.deviceManager.getDevice.useQuery,im=X.deviceManager.getChildren.useQuery,mne=X.deviceManager.getChildrenBatch.useQuery,hne=X.deviceManager.getLinkedDevices.useQuery,gne=X.deviceManager.getLinkedDevicesBatch.useQuery,_ne=X.deviceManager.getStreamSources.useQuery,vne=X.deviceManager.getConfigSchema.useQuery,yne=X.deviceManager.getSettingsSchema.useQuery,bne=X.deviceManager.updateConfig.useMutation,am=X.deviceManager.enable.useMutation,om=X.deviceManager.disable.useMutation,sm=X.deviceManager.remove.useMutation,xne=X.deviceManager.listDeletedSince.useQuery,cm=X.deviceManager.cleanupDeletedDevicesData.useMutation,Sne=X.deviceManager.removeByIntegration.useMutation,Cne=X.deviceManager.getStreamProfileMap.useQuery,wne=X.deviceManager.setStreamProfileMap.useMutation,Tne=X.deviceManager.probeStreams.useMutation,lm=X.deviceManager.getBindings.useQuery,um=X.deviceManager.getBindingsBatch.useQuery,dm=X.deviceManager.getAllBindings.useQuery,fm=X.deviceManager.listDeviceIdsByCaps.useQuery,pm=X.deviceManager.setWrapperActive.useMutation,mm=X.deviceManager.getWrapperActivation.useQuery,hm=X.deviceManager.listWrappersForCap.useQuery,gm=X.deviceManager.listBindableCapsForDeviceType.useQuery,_m=X.deviceManager.getDeviceSettingsAggregate.useQuery,vm=X.deviceManager.getDeviceLiveInfoAggregate.useQuery,ym=X.deviceManager.getDeviceAggregate.useQuery,bm=X.deviceManager.runDeviceAction.useMutation,xm=X.deviceManager.updateDeviceField.useMutation,Sm=X.deviceManager.updateDeviceFieldsBatch.useMutation,Cm=X.deviceManager.discoverDevices.useMutation,wm=X.deviceManager.adoptDevice.useMutation,Tm=X.deviceManager.getCreationSchema.useQuery,Em=X.deviceManager.createDevice.useMutation,Dm=X.deviceManager.testCreationField.useMutation,Om=X.deviceManager.adoptionListCandidateFilters.useQuery,km=X.deviceManager.adoptionListCandidates.useQuery,Am=X.deviceManager.adoptionRefresh.useMutation,jm=X.deviceManager.adoptionAdopt.useMutation,Mm=X.deviceManager.adoptionRelease.useMutation,Nm=X.deviceManager.adoptionStartJob.useMutation,Pm=X.deviceManager.adoptionListJobs.useQuery,Fm=X.deviceManager.adoptionCancelJob.useMutation,Im=X.deviceManager.adoptionResync.useMutation,Lm=X.deviceManager.discoveryProviders.useQuery,Rm=X.deviceManager.discoverAllProviders.useMutation,zm=X.deviceManager.discoverProvider.useMutation,Bm=X.deviceManager.providerCreationType.useQuery,Vm=X.deviceManager.providerDiscoveryParamsSchema.useQuery,Hm=X.deviceManager.testField.useMutation,Um=X.deviceManager.getDeviceStatusAggregate.useQuery,Wm=X.deviceManager.getDeviceStatusAggregateBatch.useQuery,Gm=X.deviceOps.getStreamSources.useQuery,Km=X.deviceOps.getConfigEntries.useQuery,qm=X.deviceOps.setConfig.useMutation,Jm=X.deviceOps.runAction.useMutation,Ym=X.deviceOps.removeDevice.useMutation,Xm=X.deviceOps.getSettingsSchema.useQuery,Zm=X.deviceOps.getRawState.useQuery,Qm=X.deviceProvider.start.useMutation,$m=X.deviceProvider.stop.useMutation,eh=X.deviceProvider.getStatus.useQuery,th=X.deviceProvider.getDevices.useQuery,nh=X.deviceProvider.reloadDevice.useMutation,rh=X.deviceProvider.supportsDiscovery.useQuery,ih=X.deviceProvider.discoverDevices.useMutation,ah=X.deviceProvider.getDiscoveryParamsSchema.useQuery,oh=X.deviceProvider.getManualCreationType.useQuery,sh=X.deviceProvider.adoptDiscoveredDevice.useMutation,ch=X.deviceProvider.supportsManualCreation.useQuery,lh=X.deviceProvider.getChildCreationSchema.useQuery,uh=X.deviceProvider.createDevice.useMutation,dh=X.deviceProvider.testCreationField.useMutation,fh=X.deviceState.getSnapshot.useQuery,ph=X.deviceState.getCapSlice.useQuery,mh=X.deviceState.getAllSnapshots.useQuery,hh=X.deviceState.setCapSlice.useMutation,gh=X.deviceState.claimFields.useMutation,_h=X.deviceState.patchOwnedFields.useMutation,vh=X.deviceState.releaseClaim.useMutation,yh=X.deviceState.listClaims.useQuery,bh=X.deviceState.getNativeCapSlice.useQuery,xh=X.deviceStatus.getStatus.useQuery,Sh=X.dishwasher.start.useMutation,Ch=X.dishwasher.pause.useMutation,wh=X.dishwasher.resume.useMutation,Th=X.dishwasher.stop.useMutation,Eh=X.dishwasher.setProgram.useMutation,Dh=X.dishwasher.setPower.useMutation,Oh=X.dishwasher.setHalfLoad.useMutation,kh=X.dishwasher.setHygienePlus.useMutation,Ah=X.dishwasher.setExtraDry.useMutation,jh=X.dishwasher.setIntensiveZone.useMutation,Mh=X.dishwasher.setVarioSpeedPlus.useMutation,Nh=X.dishwasher.setChildLock.useMutation,Ph=X.dishwasher.setOption.useMutation,Fh=X.dishwasher.getOptions.useQuery,Ih=X.dishwasher.getStatus.useQuery,Lh=X.displayPalette.getPalette.useQuery,Rh=X.displayPalette.listPresets.useQuery,zh=X.displayPalette.setPalette.useMutation,Bh=X.doorbell.getStatus.useQuery,Vh=X.enumSensor.getStatus.useQuery,Hh=X.eventEmitter.getStatus.useQuery,Uh=X.faceGallery.listIdentities.useQuery,Wh=X.faceGallery.createIdentity.useMutation,Gh=X.faceGallery.renameIdentity.useMutation,Kh=X.faceGallery.deleteIdentity.useMutation,qh=X.faceGallery.listIdentitySamples.useQuery,Jh=X.faceGallery.auditIdentitySamples.useQuery,Yh=X.faceGallery.removeSample.useMutation,Xh=X.faceGallery.listRecentFaces.useQuery,Zh=X.faceGallery.getFaceByTrack.useQuery,Qh=X.faceGallery.getFaceMedia.useQuery,$h=X.faceGallery.assignFace.useMutation,eg=X.faceGallery.unassignFace.useMutation,tg=X.faceGallery.deleteFace.useMutation,ng=X.faceGallery.assignFaces.useMutation,rg=X.faceGallery.unassignFaces.useMutation,ig=X.faceGallery.suggestFaceClusters.useQuery,ag=X.fanControl.setPercentage.useMutation,og=X.fanControl.setPreset.useMutation,sg=X.fanControl.setDirection.useMutation,cg=X.fanControl.setOscillating.useMutation,lg=X.fanControl.getStatus.useQuery,ug=X.featureProbe.getStatus.useQuery,dg=X.flood.getStatus.useQuery,fg=X.gas.getStatus.useQuery,pg=X.groupActive.getStatus.useQuery,mg=X.groupCommands.getStatus.useQuery,hg=X.groupStatus.getStatus.useQuery,gg=X.heatingValve.getStatus.useQuery,_g=X.humidifier.setOn.useMutation,vg=X.humidifier.setTargetHumidity.useMutation,yg=X.humidifier.setMode.useMutation,bg=X.humidifier.getStatus.useQuery,xg=X.humiditySensor.getStatus.useQuery,Sg=X.image.getStatus.useQuery,Cg=X.imageSettings.getOptions.useQuery,wg=X.imageSettings.setSettings.useMutation,Tg=X.imageSettings.getStatus.useQuery,Eg=X.integrations.list.useQuery,Dg=X.integrations.get.useQuery,Og=X.integrations.getByAddonId.useQuery,kg=X.integrations.create.useMutation,Ag=X.integrations.update.useMutation,jg=X.integrations.delete.useMutation,Mg=X.integrations.getSettings.useQuery,Ng=X.integrations.setSettings.useMutation,Pg=X.integrations.getAvailableTypes.useQuery,Fg=X.integrations.testConnection.useMutation,Ig=X.intercom.startSession.useMutation,Lg=X.intercom.handleAnswer.useMutation,Rg=X.intercom.stopSession.useMutation,zg=X.intercom.startTalkSession.useMutation,Bg=X.intercom.pushTalkAudio.useMutation,Vg=X.intercom.endTalkSession.useMutation,Hg=X.intercom.getStatus.useQuery,Ug=X.irTransmitter.send.useMutation,Wg=X.irTransmitter.getInfo.useQuery,Gg=X.keychainAdmin.status.useQuery,Kg=X.keychainAdmin.listSecrets.useQuery,qg=X.keychainAdmin.listAudit.useQuery,Jg=X.keychainAdmin.reveal.useMutation,Yg=X.keychainAdmin.setSystemSecret.useMutation,Xg=X.keychainAdmin.importSecret.useMutation,Zg=X.keychainAdmin.deleteOrphans.useMutation,Qg=X.keychainAdmin.rotateMasterKey.useMutation,$g=X.keychainAdmin.purgeRetiredKeys.useMutation,e_=X.keychainAdmin.downloadRecoveryKey.useMutation,t_=X.keychainAdmin.resetKeychain.useMutation,n_=X.keychainAdmin.resetReport.useQuery,r_=X.keychainAdmin.acknowledgeReset.useMutation,i_=X.lawnMowerControl.startMowing.useMutation,a_=X.lawnMowerControl.pause.useMutation,o_=X.lawnMowerControl.dock.useMutation,s_=X.lawnMowerControl.getStatus.useQuery,c_=X.llm.generate.useMutation,l_=X.llm.generateVision.useMutation,u_=X.llm.cancel.useMutation,d_=X.llm.listProfileKinds.useQuery,f_=X.llm.listProfiles.useQuery,p_=X.llm.upsertProfile.useMutation,m_=X.llm.migrateRawSecrets.useMutation,h_=X.llm.deleteProfile.useMutation,g_=X.llm.testProfile.useMutation,__=X.llm.listModels.useMutation,v_=X.llm.getDefaults.useQuery,y_=X.llm.setDefault.useMutation,b_=X.llm.getUsage.useQuery,x_=X.llm.listModelCatalog.useQuery,S_=X.llm.listRuntimeNodes.useQuery,C_=X.llm.listNodeModels.useQuery,w_=X.llm.resolveModelRef.useMutation,T_=X.llm.installModel.useMutation,Ene=X.llm.deleteModel.useMutation,Dne=X.llm.getRuntimeStatus.useQuery,One=X.llm.startRuntime.useMutation,kne=X.llm.stopRuntime.useMutation,E_=X.localNetwork.list.useQuery,Ane=X.localNetwork.getPreferred.useQuery,D_=X.localNetwork.getConnectionEndpoints.useQuery,jne=X.localNetwork.getNotificationEndpoint.useQuery,Mne=X.localNetwork.setNotificationEndpoint.useMutation,Nne=X.localNetwork.getViewerEndpoints.useQuery,Pne=X.localNetwork.setViewerEndpoints.useMutation,O_=X.localNetwork.getAddresses.useQuery,k_=X.localNetwork.addCustomAddress.useMutation,A_=X.localNetwork.removeCustomAddress.useMutation,j_=X.localNetwork.setAddressRole.useMutation,Fne=X.localNetwork.getHubAddresses.useQuery,M_=X.localNetwork.getAllowedAddresses.useQuery,N_=X.localNetwork.setAllowedAddresses.useMutation,P_=X.localNetwork.resetAllowlistToBestMatch.useMutation,F_=X.localNetwork.getTlsStatus.useQuery,I_=X.localNetwork.regenerateCertificate.useMutation,L_=X.localNetwork.uploadCertificate.useMutation,Ine=X.localNetwork.downloadCa.useQuery,R_=X.localNetwork.useStoredUploadedCertificate.useMutation,z_=X.localNetwork.revertToGeneratedCertificate.useMutation,B_=X.lockControl.lock.useMutation,V_=X.lockControl.unlock.useMutation,Lne=X.lockControl.open.useMutation,Rne=X.lockControl.getStatus.useQuery,zne=X.mediaPlayer.play.useMutation,Bne=X.mediaPlayer.pause.useMutation,Vne=X.mediaPlayer.stop.useMutation,Hne=X.mediaPlayer.next.useMutation,Une=X.mediaPlayer.previous.useMutation,Wne=X.mediaPlayer.seek.useMutation,Gne=X.mediaPlayer.setVolume.useMutation,Kne=X.mediaPlayer.setMute.useMutation,qne=X.mediaPlayer.setShuffle.useMutation,Jne=X.mediaPlayer.setRepeat.useMutation,Yne=X.mediaPlayer.selectSource.useMutation,Xne=X.mediaPlayer.playMedia.useMutation,Zne=X.mediaPlayer.getStatus.useQuery,H_=X.meshNetwork.getStatus.useQuery,Qne=X.meshNetwork.join.useMutation,U_=X.meshNetwork.startLogin.useMutation,W_=X.meshNetwork.leave.useMutation,G_=X.meshNetwork.logout.useMutation,K_=X.meshNetwork.listPeers.useQuery,$ne=X.meshNetwork.testConnection.useMutation,ere=X.meter.getStatus.useQuery,tre=X.metricsProvider.collectSnapshot.useQuery,nre=X.metricsProvider.getCached.useQuery,rre=X.metricsProvider.getCurrent.useQuery,ire=X.metricsProvider.getDiskSpace.useQuery,are=X.metricsProvider.getGpuInfo.useQuery,ore=X.metricsProvider.getCpuTemperature.useQuery,sre=X.metricsProvider.getProcessStats.useQuery,cre=X.metricsProvider.listAddonInstances.useQuery,lre=X.metricsProvider.getAddonStats.useQuery,q_=X.metricsProvider.listNodeProcesses.useQuery,J_=X.metricsProvider.getLoadSeries.useQuery,ure=X.motion.isDetected.useQuery,dre=X.motion.getStatus.useQuery,fre=X.motionDetection.analyze.useMutation,pre=X.motionDetection.removeCamera.useMutation,mre=X.motionDetection.reset.useMutation,hre=X.motionDetection.getDeviceSettingsContribution.useQuery,gre=X.motionDetection.getDeviceLiveContribution.useQuery,_re=X.motionDetection.applyDeviceSettingsPatch.useMutation,vre=X.motionTrigger.setMotionTrigger.useMutation,yre=X.motionTrigger.getStatus.useQuery,bre=X.motionZones.getOptions.useQuery,xre=X.motionZones.setZone.useMutation,Sre=X.motionZones.getStatus.useQuery,Cre=X.mqttBroker.listBrokers.useQuery,wre=X.mqttBroker.getBrokerConfig.useQuery,Tre=X.mqttBroker.addBroker.useMutation,Ere=X.mqttBroker.removeBroker.useMutation,Dre=X.mqttBroker.testConnection.useMutation,Ore=X.mqttBroker.startEmbeddedBroker.useMutation,Y_=X.mqttBroker.stopEmbeddedBroker.useMutation,X_=X.mqttBroker.getStatus.useQuery,Z_=X.nativeObjectDetection.getOptions.useQuery,Q_=X.nativeObjectDetection.setSettings.useMutation,$_=X.nativeObjectDetection.setEnabled.useMutation,ev=X.nativeObjectDetection.getStatus.useQuery,tv=X.navigation.move.useMutation,nv=X.navigation.stop.useMutation,rv=X.navigation.goToPoint.useMutation,iv=X.navigation.listActions.useQuery,av=X.navigation.runAction.useMutation,ov=X.navigation.playSound.useMutation,sv=X.navigation.setLightOn.useMutation,cv=X.navigation.setLightMode.useMutation,lv=X.navigation.setLightLevel.useMutation,uv=X.navigation.getFeatures.useQuery,dv=X.navigation.getStatus.useQuery,fv=X.networkAccess.start.useMutation,pv=X.networkAccess.stop.useMutation,mv=X.networkAccess.getEndpoint.useQuery,hv=X.networkAccess.getStatus.useQuery,gv=X.networkAccess.listEndpoints.useQuery,_v=X.networkLink.getStatus.useQuery,vv=X.networkQuality.getDeviceStats.useQuery,yv=X.networkQuality.getAllStats.useQuery,bv=X.networkQuality.reportClientStats.useMutation,xv=X.nodes.topology.useQuery,Sv=X.nodes.directory.useQuery,Cv=X.nodes.deployAddon.useMutation,wv=X.nodes.undeployAddon.useMutation,Tv=X.nodes.restartAddon.useMutation,Ev=X.nodes.restartProcess.useMutation,Dv=X.nodes.restartNode.useMutation,Ov=X.nodes.shutdownNode.useMutation,kv=X.nodes.renameNode.useMutation,Av=X.nodes.clusterAddonStatus.useQuery,jv=X.nodes.getCapUsageGraph.useQuery,Mv=X.nodes.getNodeAddons.useQuery,Nv=X.nodes.setProcessLogLevel.useMutation,Pv=X.nodes.executeQuery.useMutation,Fv=X.notificationOutput.listTargetKinds.useQuery,Iv=X.notificationOutput.listTargets.useQuery,Lv=X.notificationOutput.getTarget.useQuery,Rv=X.notificationOutput.discoverTargets.useQuery,zv=X.notificationOutput.probeTargetConfig.useMutation,Bv=X.notificationOutput.send.useMutation,Vv=X.notificationOutput.testTarget.useMutation,Hv=X.notificationOutput.upsertTarget.useMutation,Uv=X.notificationOutput.deleteTarget.useMutation,Wv=X.notificationOutput.setTargetEnabled.useMutation,Gv=X.notificationRules.listRules.useQuery,Kv=X.notificationRules.getRule.useQuery,qv=X.notificationRules.createRule.useMutation,Jv=X.notificationRules.updateRule.useMutation,Yv=X.notificationRules.deleteRule.useMutation,Xv=X.notificationRules.setRuleEnabled.useMutation,Zv=X.notificationRules.listSequences.useQuery,Qv=X.notificationRules.getSequence.useQuery,$v=X.notificationRules.createSequence.useMutation,ey=X.notificationRules.updateSequence.useMutation,ty=X.notificationRules.deleteSequence.useMutation,ny=X.notificationRules.getClipRetentionAsks.useQuery,ry=X.notificationRules.listDeviceMutes.useQuery,iy=X.notificationRules.setDeviceMuted.useMutation,ay=X.notificationRules.testRule.useMutation,oy=X.notificationRules.previewStateSummary.useMutation,sy=X.notificationRules.getConditionCatalog.useQuery,cy=X.notificationRules.getTemplateCatalog.useQuery,ly=X.notificationRules.previewTemplate.useMutation,uy=X.notificationRules.getHistory.useQuery,dy=X.notificationRules.getRuleLastRuns.useQuery,fy=X.notificationRules.resolveArtifactUrl.useQuery,py=X.notificationRules.listSnoozes.useQuery,my=X.notificationRules.createSnooze.useMutation,hy=X.notificationRules.cancelSnooze.useMutation,gy=X.notificationRules.getAlarmConfig.useQuery,_y=X.notificationRules.setAlarmConfig.useMutation,vy=X.notificationRules.createAlarmProfile.useMutation,yy=X.notificationRules.renameAlarmProfile.useMutation,by=X.notificationRules.deleteAlarmProfile.useMutation,xy=X.notificationRules.activateAlarmProfile.useMutation,Sy=X.notificationRules.getAlarmSensors.useQuery,Cy=X.notifier.send.useMutation,wy=X.notifier.cancel.useMutation,Ty=X.notifier.getStatus.useQuery,Ey=X.numericSensor.getStatus.useQuery,Dy=X.oidcConnections.connectionFormSchema.useQuery,Oy=X.oidcConnections.listConnections.useQuery,ky=X.oidcConnections.createConnection.useMutation,Ay=X.oidcConnections.updateConnection.useMutation,jy=X.oidcConnections.deleteConnection.useMutation,My=X.osd.setOverlay.useMutation,Ny=X.osd.getStatus.useQuery,Py=X.osdManager.getDeviceOsd.useQuery,Fy=X.osdManager.getSourceCatalog.useQuery,Iy=X.osdManager.getConditionSupport.useQuery,Ly=X.osdManager.setSlotBinding.useMutation,Ry=X.osdManager.clearSlotBinding.useMutation,zy=X.osdManager.setSlotCameraEnabled.useMutation,By=X.osdManager.copyDeviceConfiguration.useMutation,Vy=X.osdManager.previewSlot.useMutation,Hy=X.osdManager.renderDevice.useMutation,Uy=X.osdManager.listTemplates.useQuery,Wy=X.osdManager.upsertTemplate.useMutation,Gy=X.osdManager.deleteTemplate.useMutation,Ky=X.petFeeder.feed.useMutation,qy=X.petFeeder.cancelFeed.useMutation,Jy=X.petFeeder.resetDesiccant.useMutation,Yy=X.petFeeder.markFoodReplenished.useMutation,Xy=X.petFeeder.callPet.useMutation,Zy=X.petFeeder.playSound.useMutation,Qy=X.petFeeder.setChildLock.useMutation,$y=X.petFeeder.setIndicatorLight.useMutation,eb=X.petFeeder.setFeedSound.useMutation,tb=X.petFeeder.setVolume.useMutation,nb=X.petFeeder.getStatus.useQuery,rb=X.pipelineAnalytics.getActiveTracks.useQuery,ib=X.pipelineAnalytics.getTrack.useQuery,ab=X.pipelineAnalytics.listTracks.useQuery,ob=X.pipelineAnalytics.listRecentTracks.useQuery,sb=X.pipelineAnalytics.clearTracks.useMutation,cb=X.pipelineAnalytics.getMotionEvents.useQuery,lb=X.pipelineAnalytics.getObjectEvents.useQuery,ub=X.pipelineAnalytics.getAudioEvents.useQuery,db=X.pipelineAnalytics.listEventKinds.useQuery,fb=X.pipelineAnalytics.listEventKindsBatch.useQuery,pb=X.pipelineAnalytics.getSensorEvents.useQuery,mb=X.pipelineAnalytics.getKeyEvents.useQuery,hb=X.pipelineAnalytics.getKeyEventsBatch.useQuery,gb=X.pipelineAnalytics.readLongTermSeries.useQuery,_b=X.pipelineAnalytics.getEventDensity.useQuery,vb=X.pipelineAnalytics.getEventDensityBatch.useQuery,yb=X.pipelineAnalytics.pruneEventsBefore.useMutation,bb=X.pipelineAnalytics.pruneTracksBefore.useMutation,xb=X.pipelineAnalytics.wipeAllAnalytics.useMutation,Sb=X.pipelineAnalytics.reconcileFromDisk.useMutation,Cb=X.pipelineAnalytics.deleteTracks.useMutation,wb=X.pipelineAnalytics.setTrackFlags.useMutation,Tb=X.pipelineAnalytics.listArchivedDebugNotes.useQuery,Eb=X.pipelineAnalytics.setTrackRelation.useMutation,Db=X.pipelineAnalytics.clearTrackRelation.useMutation,Ob=X.pipelineAnalytics.setTrackPurity.useMutation,kb=X.pipelineAnalytics.listTrackRelations.useQuery,Ab=X.pipelineAnalytics.listBirthDecisions.useQuery,jb=X.pipelineAnalytics.getEventStoreFootprint.useQuery,Mb=X.pipelineAnalytics.getEventMediaFootprintByKind.useQuery,Nb=X.pipelineAnalytics.pruneEvents.useMutation,Pb=X.pipelineAnalytics.deleteDeviceEvents.useMutation,Fb=X.pipelineAnalytics.pauseForStorageMigration.useMutation,Ib=X.pipelineAnalytics.resumeForStorageMigration.useMutation,Lb=X.pipelineAnalytics.refreshStorageLocationsForMigration.useMutation,Rb=X.pipelineAnalytics.startStorageMigrationMove.useMutation,zb=X.pipelineAnalytics.getStorageMigrationMoveStatus.useQuery,Bb=X.pipelineAnalytics.cancelStorageMigrationMove.useMutation,Vb=X.pipelineAnalytics.relocateMedia.useMutation,Hb=X.pipelineAnalytics.countUnstampedEventMedia.useQuery,Ub=X.pipelineAnalytics.countRelocatableMedia.useQuery,Wb=X.pipelineAnalytics.listRelocateMediaJobs.useQuery,Gb=X.pipelineAnalytics.cancelRelocateMedia.useMutation,Kb=X.pipelineAnalytics.listOpsLog.useQuery,qb=X.pipelineAnalytics.reclaimDebugMedia.useMutation,Jb=X.pipelineAnalytics.getMediaReclaimStatus.useQuery,Yb=X.pipelineAnalytics.getTrainingExportSummary.useQuery,Xb=X.pipelineAnalytics.getTrainingExportUrl.useQuery,Zb=X.pipelineAnalytics.listRetrainStaging.useQuery,Qb=X.pipelineAnalytics.listRetrainCorpusPage.useQuery,$b=X.pipelineAnalytics.getRetrainCorpusKpi.useQuery,ex=X.pipelineAnalytics.listRetrainFrames.useQuery,tx=X.pipelineAnalytics.selectRetrainFrames.useMutation,nx=X.pipelineAnalytics.deselectRetrainFrame.useMutation,rx=X.pipelineAnalytics.getRetrainFrameImage.useQuery,ix=X.pipelineAnalytics.proposeRetrainAnnotations.useMutation,ax=X.pipelineAnalytics.listRetrainAnnotations.useQuery,ox=X.pipelineAnalytics.saveRetrainAnnotations.useMutation,sx=X.pipelineAnalytics.backfillRetrainOrigins.useMutation,cx=X.pipelineAnalytics.completeRetrainTrack.useMutation,lx=X.pipelineAnalytics.restageRetrainTrack.useMutation,ux=X.pipelineAnalytics.getRetrainExportUrl.useQuery,dx=X.pipelineAnalytics.setRetrainFrameComplete.useMutation,fx=X.pipelineAnalytics.writeRetrainArchive.useMutation,px=X.pipelineAnalytics.offerRetrainArchive.useMutation,mx=X.pipelineAnalytics.listRetrainAssistProfiles.useQuery,hx=X.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation,gx=X.pipelineAnalytics.createRetrainCollection.useMutation,_x=X.pipelineAnalytics.listRetrainCollections.useQuery,vx=X.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery,yx=X.pipelineAnalytics.renameRetrainCollection.useMutation,bx=X.pipelineAnalytics.deleteRetrainCollection.useMutation,xx=X.pipelineAnalytics.addRetrainFrameFromRecording.useMutation,Sx=X.pipelineAnalytics.addRetrainFramesToCollection.useMutation,Cx=X.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation,wx=X.pipelineAnalytics.listRetrainCollectionFrames.useQuery,Tx=X.pipelineAnalytics.getEventMedia.useQuery,Ex=X.pipelineAnalytics.getTrackMedia.useQuery,Dx=X.pipelineAnalytics.listTrackMedia.useQuery,Ox=X.pipelineAnalytics.listEventMedia.useQuery,kx=X.pipelineAnalytics.ownersWithMedia.useQuery,Ax=X.pipelineAnalytics.searchObjectEvents.useQuery,jx=X.pipelineAnalytics.wipeObjectEmbeddings.useMutation,Mx=X.pipelineAnalytics.rebuildObjectEmbeddings.useMutation,Nx=X.pipelineAnalytics.getObjectEmbeddingRebuildStatus.useQuery,Px=X.pipelineAnalytics.getDeviceSettingsContribution.useQuery,Fx=X.pipelineAnalytics.getDeviceLiveContribution.useQuery,Ix=X.pipelineAnalytics.applyDeviceSettingsPatch.useMutation,Lx=X.pipelineExecutor.getAvailableEngines.useQuery,Rx=X.pipelineExecutor.getSelectedEngine.useQuery,zx=X.pipelineExecutor.getEngineProvisioning.useQuery,Bx=X.pipelineExecutor.getVideoPipelineSteps.useQuery,Vx=X.pipelineExecutor.setVideoPipelineSteps.useMutation,Hx=X.pipelineExecutor.getInferenceDeviceHealth.useQuery,Ux=X.pipelineExecutor.rearmInferenceDevice.useMutation,Wx=X.pipelineExecutor.getSchema.useQuery,Gx=X.pipelineExecutor.getOrchestratorConfigSchema.useQuery,Kx=X.pipelineExecutor.validatePipeline.useQuery,qx=X.pipelineExecutor.getCapabilities.useQuery,Jx=X.pipelineExecutor.getAddonModels.useQuery,Yx=X.pipelineExecutor.downloadModel.useMutation,Xx=X.pipelineExecutor.deleteModel.useMutation,Zx=X.pipelineExecutor.runPipeline.useMutation,Qx=X.pipelineExecutor.runPipelineBatch.useMutation,$x=X.pipelineExecutor.cacheFrameInPool.useMutation,eS=X.pipelineExecutor.inferCached.useMutation,tS=X.pipelineExecutor.uncacheFrame.useMutation,nS=X.pipelineExecutor.getEffectiveTuning.useQuery,rS=X.pipelineExecutor.listLoadedEngines.useQuery,iS=X.pipelineExecutor.spinEngine.useMutation,aS=X.pipelineExecutor.killEngine.useMutation,oS=X.pipelineExecutor.listReferenceImages.useQuery,sS=X.pipelineExecutor.getReferenceImage.useQuery,cS=X.pipelineExecutor.getReferenceAudioFiles.useQuery,lS=X.pipelineExecutor.getReferenceAudio.useQuery,uS=X.pipelineExecutor.getAudioCapabilities.useQuery,dS=X.pipelineExecutor.runAudioTest.useMutation,fS=X.pipelineExecutor.getDetectionConfigSchema.useQuery,pS=X.pipelineOrchestrator.requestOccupancyLook.useMutation,mS=X.pipelineOrchestrator.pauseForStorageMigration.useMutation,hS=X.pipelineOrchestrator.resumeForStorageMigration.useMutation,gS=X.pipelineOrchestrator.assignPipeline.useMutation,_S=X.pipelineOrchestrator.unassignPipeline.useMutation,vS=X.pipelineOrchestrator.setPipelineDevicePin.useMutation,yS=X.pipelineOrchestrator.getPipelineDevicePin.useQuery,bS=X.pipelineOrchestrator.rebalance.useMutation,xS=X.pipelineOrchestrator.getPipelineAssignments.useQuery,SS=X.pipelineOrchestrator.getPipelineAssignment.useQuery,CS=X.pipelineOrchestrator.getAgentLoad.useQuery,wS=X.pipelineOrchestrator.getClusterModelChoice.useQuery,TS=X.pipelineOrchestrator.getGlobalMetrics.useQuery,ES=X.pipelineOrchestrator.getCameraMetrics.useQuery,DS=X.pipelineOrchestrator.getCapabilityBindings.useQuery,OS=X.pipelineOrchestrator.setCapabilityBinding.useMutation,kS=X.pipelineOrchestrator.getIngestOwner.useQuery,AS=X.pipelineOrchestrator.assignAudio.useMutation,jS=X.pipelineOrchestrator.unassignAudio.useMutation,MS=X.pipelineOrchestrator.getAudioAssignment.useQuery,NS=X.pipelineOrchestrator.getAudioNodeLoad.useQuery,PS=X.pipelineOrchestrator.getAudioAssignments.useQuery,FS=X.pipelineOrchestrator.getAgentSettings.useQuery,IS=X.pipelineOrchestrator.listAgentSettings.useQuery,LS=X.pipelineOrchestrator.removeAgentSettings.useMutation,RS=X.pipelineOrchestrator.setAgentMaxCameras.useMutation,zS=X.pipelineOrchestrator.setAgentCapabilities.useMutation,BS=X.pipelineOrchestrator.setAgentDecodeLimits.useMutation,VS=X.pipelineOrchestrator.setAgentReachableHost.useMutation,HS=X.pipelineOrchestrator.setAgentInferenceDevices.useMutation,US=X.pipelineOrchestrator.setNodeStepSettings.useMutation,WS=X.pipelineOrchestrator.getNodeInferenceDevices.useQuery,GS=X.pipelineOrchestrator.forgetInferenceDevice.useMutation,KS=X.pipelineOrchestrator.resetNodePipelineDefaults.useMutation,qS=X.pipelineOrchestrator.planAutoTune.useQuery,JS=X.pipelineOrchestrator.applyAutoTune.useMutation,YS=X.pipelineOrchestrator.setLoadBalancingShares.useMutation,XS=X.pipelineOrchestrator.getPlacementStats.useQuery,ZS=X.pipelineOrchestrator.suggestShares.useQuery,QS=X.pipelineOrchestrator.getEffectiveShares.useQuery,$S=X.pipelineOrchestrator.setShareSource.useMutation,eC=X.pipelineOrchestrator.getNodeBenchmarkPreflight.useQuery,tC=X.pipelineOrchestrator.startNodeBenchmark.useMutation,nC=X.pipelineOrchestrator.getNodeBenchmarkStatus.useQuery,rC=X.pipelineOrchestrator.abortNodeBenchmark.useMutation,iC=X.pipelineOrchestrator.getNodeBenchmarkCandidates.useQuery,aC=X.pipelineOrchestrator.listNodeBenchmarkResults.useQuery,oC=X.pipelineOrchestrator.deleteNodeBenchmarkResult.useMutation,sC=X.pipelineOrchestrator.getCameraSettings.useQuery,cC=X.pipelineOrchestrator.setCameraStepToggle.useMutation,lC=X.pipelineOrchestrator.getCameraDetectionSource.useQuery,uC=X.pipelineOrchestrator.setCameraDetectionSource.useMutation,dC=X.pipelineOrchestrator.setCameraStepSettings.useMutation,fC=X.pipelineOrchestrator.resolvePipeline.useQuery,pC=X.pipelineOrchestrator.getCameraSwitches.useQuery,mC=X.pipelineOrchestrator.setCameraSwitch.useMutation,hC=X.pipelineOrchestrator.getCameraStatus.useQuery,gC=X.pipelineOrchestrator.getCameraStatuses.useQuery,_C=X.pipelineOrchestrator.setCameraSensors.useMutation,vC=X.pipelineOrchestrator.reconcileFromDisk.useMutation,yC=X.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery,bC=X.pipelineOrchestrator.getDeviceSettingsContribution.useQuery,xC=X.pipelineOrchestrator.getDeviceLiveContribution.useQuery,SC=X.pipelineOrchestrator.applyDeviceSettingsPatch.useMutation,CC=X.pipelineRunner.attachCamera.useMutation,wC=X.pipelineRunner.detachCamera.useMutation,TC=X.pipelineRunner.reportMotion.useMutation,EC=X.pipelineRunner.getLocalLoad.useQuery,DC=X.pipelineRunner.getLocalMetrics.useQuery,OC=X.pipelineRunner.getCameraMetrics.useQuery,kC=X.pipelineRunner.getAllCameraMetrics.useQuery,AC=X.pipelineRunner.getLocalCameras.useQuery,jC=X.pipelineRunner.requestOccupancyBurst.useMutation,MC=X.pipelineRunner.getNativeCrop.useQuery,NC=X.pipelineRunner.runDetailSubtree.useMutation,PC=X.pipelineRunner.runStatelessStep.useMutation,FC=X.pipelineRunner.parkTrackFrame.useMutation,IC=X.pipelineRunner.getParkedTrackFrame.useQuery,LC=X.pipelineRunner.releaseParkedTrackFrames.useMutation,RC=X.pipelineRunner.startNodeBench.useMutation,zC=X.pipelineRunner.getNodeBenchStatus.useQuery,BC=X.pipelineRunner.abortNodeBench.useMutation,VC=X.plateGallery.listPlates.useQuery,HC=X.plateGallery.getPlateByTrack.useQuery,UC=X.plateGallery.getPlateMedia.useQuery,WC=X.plateGallery.searchPlates.useQuery,GC=X.plateGallery.suggestPlateClusters.useQuery,KC=X.plateGallery.correctPlateText.useMutation,qC=X.plateGallery.deletePlate.useMutation,JC=X.plateGallery.listVehicles.useQuery,YC=X.plateGallery.createVehicle.useMutation,XC=X.plateGallery.renameVehicle.useMutation,ZC=X.plateGallery.deleteVehicle.useMutation,QC=X.plateGallery.listVehicleSamples.useQuery,$C=X.plateGallery.removeVehicleSample.useMutation,ew=X.plateGallery.assignPlate.useMutation,tw=X.plateGallery.unassignPlate.useMutation,nw=X.plateGallery.assignPlates.useMutation,rw=X.plateGallery.unassignPlates.useMutation,iw=X.powerMeter.getStatus.useQuery,aw=X.presence.getStatus.useQuery,ow=X.pressureSensor.getStatus.useQuery,sw=X.privacyMask.getOptions.useQuery,cw=X.privacyMask.setMask.useMutation,lw=X.privacyMask.setAudioEnabled.useMutation,uw=X.privacyMask.getStatus.useQuery,dw=X.ptz.move.useMutation,fw=X.ptz.continuousMove.useMutation,pw=X.ptz.stop.useMutation,mw=X.ptz.getPresets.useQuery,hw=X.ptz.goToPreset.useMutation,gw=X.ptz.savePreset.useMutation,_w=X.ptz.deletePreset.useMutation,vw=X.ptz.getOptions.useQuery,yw=X.ptz.goHome.useMutation,bw=X.ptz.getHomePreset.useQuery,xw=X.ptz.setHomePreset.useMutation,Sw=X.ptz.captureHomeHere.useMutation,Cw=X.ptz.getHomeReturn.useQuery,ww=X.ptz.setHomeReturn.useMutation,Tw=X.ptz.getPosition.useQuery,Ew=X.ptz.setAutofocus.useMutation,Dw=X.ptz.getStatus.useQuery,Ow=X.ptzAutotrack.getStatus.useQuery,kw=X.ptzAutotrack.setEnabled.useMutation,Aw=X.ptzAutotrack.getSettings.useQuery,jw=X.ptzAutotrack.setSettings.useMutation,Mw=X.reboot.reboot.useMutation,Nw=X.recordEntries.listEntryKinds.useQuery,Pw=X.recordEntries.listEntries.useQuery,Fw=X.recordEntries.putEntry.useMutation,Iw=X.recordEntries.deleteEntry.useMutation,Lw=X.recording.listSources.useQuery,Rw=X.recording.getAvailability.useQuery,zw=X.recording.getDaysWithRecordings.useQuery,Bw=X.recording.getPlayback.useQuery,Vw=X.recording.getPlaybackOptions.useQuery,Hw=X.recordingArchive.getAvailabilityBatch.useQuery,Uw=X.recordingArchive.getDaysWithRecordingsBatch.useQuery,Ww=X.recordingArchive.getStorageUsage.useQuery,Gw=X.recordingArchive.getDeviceConfig.useQuery,Kw=X.recordingArchive.locateSegment.useQuery,qw=X.recordingArchive.readSegmentBytes.useQuery,Jw=X.recordingArchive.readGopBytes.useQuery,Yw=X.recordingArchive.readWindowBytes.useQuery,Xw=X.recordingArchive.setDeviceConfig.useMutation,Zw=X.recordingArchive.rescanStorage.useMutation,Qw=X.recordingArchive.pruneFootage.useMutation,$w=X.recordingArchive.deleteFootprint.useMutation,eT=X.recordingArchive.listOpsLog.useQuery,tT=X.recordingArchive.renderGif.useMutation,nT=X.recordingArchive.renderClip.useMutation,rT=X.recordingArchive.pauseForStorageMigration.useMutation,iT=X.recordingArchive.resumeForStorageMigration.useMutation,aT=X.recordingArchive.refreshStorageLocationsForMigration.useMutation,oT=X.recordingArchive.startStorageMigrationMove.useMutation,sT=X.recordingArchive.getStorageMigrationMoveStatus.useQuery,cT=X.recordingArchive.cancelStorageMigrationMove.useMutation,lT=X.recordingArchive.relocateFootage.useMutation,uT=X.recordingArchive.listRelocateJobs.useQuery,dT=X.recordingArchive.getRelocateResidue.useQuery,fT=X.recordingArchive.reconcileLedgerAgainstDisk.useMutation,pT=X.recordingArchive.cancelRelocateJob.useMutation,mT=X.recordingArchive.planStorageRebalance.useQuery,hT=X.recordingArchive.startStorageRebalance.useMutation,gT=X.recordingArchive.getPlacement.useQuery,_T=X.recordingArchive.setDevicePlacement.useMutation,vT=X.recordingArchive.getStatus.useQuery,yT=X.recordingArchive.getDeviceSettingsContribution.useQuery,bT=X.recordingArchive.getDeviceLiveContribution.useQuery,xT=X.recordingArchive.applyDeviceSettingsPatch.useMutation,ST=X.recordingExport.createExport.useMutation,CT=X.recordingExport.listExports.useQuery,wT=X.recordingExport.getExport.useQuery,TT=X.recordingExport.cancelExport.useMutation,ET=X.recordingExport.deleteExport.useMutation,DT=X.recordingExport.getDownloadUrl.useQuery,OT=X.recordingExport.readExportBytes.useQuery,kT=X.recordingOnboard.getOptions.useQuery,AT=X.recordingOnboard.setSettings.useMutation,jT=X.recordingOnboard.getStatus.useQuery,MT=X.recordingSignal.getStatus.useQuery,NT=X.remote.getConfig.useQuery,PT=X.remote.setConfig.useMutation,FT=X.remote.listCommands.useQuery,IT=X.remote.sendCommand.useMutation,LT=X.remote.sendMediaCommand.useMutation,RT=X.runningState.getStatus.useQuery,zT=X.sceneMonitor.listScenes.useQuery,BT=X.sceneMonitor.listScenesBatch.useQuery,VT=X.sceneMonitor.createScene.useMutation,HT=X.sceneMonitor.updateScene.useMutation,UT=X.sceneMonitor.deleteScene.useMutation,WT=X.sceneMonitor.captureReference.useMutation,GT=X.sceneMonitor.deleteReference.useMutation,KT=X.sceneMonitor.recheckNow.useMutation,qT=X.sceneMonitor.resetScene.useMutation,JT=X.sceneMonitor.getStatus.useQuery,YT=X.scriptRunner.run.useMutation,XT=X.scriptRunner.stop.useMutation,ZT=X.scriptRunner.getStatus.useQuery,QT=X.serverManagement.getServerPackageStatus.useQuery,$T=X.serverManagement.checkServerUpdate.useMutation,eE=X.serverManagement.applyServerUpdate.useMutation,tE=X.serverManagement.rollbackServerUpdate.useMutation,nE=X.serverManagement.restartServer.useMutation,rE=X.settingsStore.get.useQuery,iE=X.settingsStore.set.useMutation,aE=X.settingsStore.query.useQuery,oE=X.settingsStore.upsert.useMutation,sE=X.settingsStore.upsertMany.useMutation,cE=X.settingsStore.insert.useMutation,lE=X.settingsStore.insertMany.useMutation,uE=X.settingsStore.transact.useMutation,dE=X.settingsStore.update.useMutation,fE=X.settingsStore.delete.useMutation,pE=X.settingsStore.deleteWhere.useMutation,mE=X.settingsStore.updateWhere.useMutation,hE=X.settingsStore.count.useQuery,gE=X.settingsStore.aggregate.useQuery,_E=X.settingsStore.histogram.useQuery,vE=X.settingsStore.isEmpty.useQuery,yE=X.settingsStore.declareCollection.useMutation,bE=X.smoke.getStatus.useQuery,xE=X.snapshot.getSnapshot.useQuery,SE=X.snapshot.invalidateCache.useMutation,CE=X.snapshot.getSnapshotOverview.useQuery,wE=X.snapshot.getDebugState.useQuery,TE=X.snapshot.getSnapshotLinks.useQuery,EE=X.snapshot.getStatus.useQuery,DE=X.snapshot.getDeviceSettingsContribution.useQuery,OE=X.snapshot.getDeviceLiveContribution.useQuery,kE=X.snapshot.applyDeviceSettingsPatch.useMutation,AE=X.storage.resolve.useQuery,jE=X.storage.write.useMutation,ME=X.storage.read.useQuery,NE=X.storage.exists.useQuery,PE=X.storage.list.useQuery,FE=X.storage.delete.useMutation,IE=X.storage.getAvailableSpace.useQuery,LE=X.storage.beginUpload.useMutation,RE=X.storage.writeChunk.useMutation,zE=X.storage.finalizeUpload.useMutation,BE=X.storage.abortUpload.useMutation,VE=X.storage.beginDownload.useMutation,HE=X.storage.readChunk.useQuery,UE=X.storage.endDownload.useMutation,WE=X.storage.listLocations.useQuery,GE=X.storage.listLocationDeclarations.useQuery,KE=X.storage.upsertLocation.useMutation,qE=X.storage.deleteLocation.useMutation,JE=X.storage.listDrainProgress.useQuery,YE=X.storage.testLocation.useQuery,XE=X.storage.listProviders.useQuery,ZE=X.storage.testConfig.useQuery,QE=X.storageMigration.plan.useQuery,$E=X.storageMigration.start.useMutation,eD=X.storageMigration.status.useQuery,tD=X.storageMigration.cancel.useMutation,nD=X.storageMigration.movers.useQuery,rD=X.storageMigration.moverClearance.useQuery,iD=X.storageMigration.residue.useQuery,aD=X.storageMigration.drain.useMutation,oD=X.storageMigration.cleanupStart.useMutation,sD=X.storageMigration.cleanupStatus.useQuery,cD=X.storageMigration.cleanupCancel.useMutation,lD=X.storageMigration.history.useQuery,uD=X.streamBroker.reportStreamSignal.useMutation,dD=X.streamBroker.publishCameraStream.useMutation,fD=X.streamBroker.retractCameraStream.useMutation,pD=X.streamBroker.assignProfile.useMutation,mD=X.streamBroker.unassignProfile.useMutation,hD=X.streamBroker.forgetDeviceHardware.useMutation,gD=X.streamBroker.renderPreBufferClip.useMutation,_D=X.streamBroker.produceEventMedia.useMutation,vD=X.streamBroker.fetchEventMedia.useMutation,yD=X.streamBroker.listAllCameraStreams.useQuery,bD=X.streamBroker.listAllProfileSlots.useQuery,xD=X.streamBroker.getBrokerStats.useQuery,SD=X.streamBroker.probeStream.useMutation,CD=X.streamBroker.listClients.useQuery,wD=X.streamBroker.getLiveViewerCounts.useQuery,TD=X.streamBroker.killClient.useMutation,ED=X.streamBroker.restartProfile.useMutation,DD=X.streamBroker.getStreamUrl.useQuery,OD=X.streamBroker.getStreamWithCodec.useMutation,kD=X.streamBroker.releaseStreamWithCodec.useMutation,AD=X.streamBroker.acquireEgressTranscode.useMutation,jD=X.streamBroker.releaseEgressTranscode.useMutation,MD=X.streamBroker.subscribeAudioChunks.useMutation,ND=X.streamBroker.pullAudioChunks.useQuery,PD=X.streamBroker.unsubscribeAudioChunks.useMutation,FD=X.streamBroker.setPreBufferDuration.useMutation,ID=X.streamBroker.getPreBufferInfo.useQuery,LD=X.streamBroker.getRtspPort.useQuery,RD=X.streamBroker.getAllRtspEntries.useQuery,zD=X.streamBroker.getRtspEntry.useQuery,BD=X.streamBroker.regenerateRtspToken.useMutation,VD=X.streamBroker.setRtspEnabled.useMutation,HD=X.streamBroker.isRtspEnabled.useQuery,UD=X.streamBroker.getDeviceAudioMute.useQuery,WD=X.streamBroker.setDeviceAudioMute.useMutation,GD=X.streamBroker.getDeviceSettingsContribution.useQuery,KD=X.streamBroker.getDeviceLiveContribution.useQuery,qD=X.streamBroker.applyDeviceSettingsPatch.useMutation,JD=X.streamCatalog.getCatalog.useQuery,YD=X.streamParams.getOptions.useQuery,XD=X.streamParams.setProfile.useMutation,ZD=X.streamParams.getConfigSchema.useQuery,QD=X.streamParams.getStatus.useQuery,$D=X.streamSignals.listSignals.useQuery,eO=X.switch.setState.useMutation,tO=X.switch.getStatus.useQuery,nO=X.system.info.useQuery,rO=X.system.health.useQuery,iO=X.system.featureFlags.useQuery,aO=X.system.networkAddresses.useQuery,oO=X.system.getRetentionConfig.useQuery,sO=X.system.setRetentionConfig.useMutation,cO=X.system.forceRetentionCleanup.useMutation,lO=X.system.getSiteLocation.useQuery,uO=X.system.setSiteLocation.useMutation,dO=X.system.detectSiteLocation.useMutation,fO=X.system.getRequestCensus.useQuery,pO=X.system.getLoadContributions.useQuery,mO=X.system.getFailureContributions.useQuery,hO=X.system.getLoggingSettings.useQuery,gO=X.system.setLoggingSettings.useMutation,_O=X.tamper.getStatus.useQuery,vO=X.temperatureSensor.getStatus.useQuery,yO=X.template.list.useQuery,bO=X.template.get.useQuery,xO=X.template.create.useMutation,SO=X.template.update.useMutation,CO=X.template.delete.useMutation,wO=X.terminalSession.listProfiles.useQuery,TO=X.terminalSession.listInstances.useQuery,EO=X.terminalSession.createInstance.useMutation,DO=X.terminalSession.updateInstance.useMutation,OO=X.terminalSession.deleteInstance.useMutation,kO=X.terminalSession.setInstanceEnabled.useMutation,AO=X.terminalSession.listLegacyCameras.useQuery,jO=X.terminalSession.adoptLegacyMonitor.useMutation,MO=X.terminalSession.listSessions.useQuery,NO=X.terminalSession.openSession.useMutation,PO=X.terminalSession.resize.useMutation,FO=X.terminalSession.pullOutput.useMutation,IO=X.terminalSession.writeInput.useMutation,LO=X.terminalSession.close.useMutation,RO=X.toast.onToast.useSubscription,zO=X.training.listBaseModels.useQuery,BO=X.training.planJob.useQuery,VO=X.training.startJob.useMutation,HO=X.training.startJobBatch.useMutation,UO=X.training.listJobs.useQuery,WO=X.training.getJob.useQuery,GO=X.training.cancelJob.useMutation,KO=X.training.getJobResult.useQuery,qO=X.training.listCanaryTargets.useQuery,JO=X.training.registerResult.useMutation,YO=X.training.canaryResult.useMutation,XO=X.training.rollbackCanary.useMutation,ZO=X.training.discardResult.useMutation,QO=X.turnProvider.getTurnServers.useQuery,$O=X.update.installUpdate.useMutation,ek=X.update.getStatus.useQuery,tk=X.userManagement.listUsers.useQuery,nk=X.userManagement.createUser.useMutation,rk=X.userManagement.updateUser.useMutation,ik=X.userManagement.deleteUser.useMutation,ak=X.userManagement.resetPassword.useMutation,ok=X.userManagement.setUserScopes.useMutation,kre=X.userManagement.validateCredentials.useMutation,Are=X.userManagement.setupTotp.useMutation,jre=X.userManagement.confirmTotp.useMutation,sk=X.userManagement.disableTotp.useMutation,ck=X.userManagement.getTotpStatus.useQuery,Mre=X.userManagement.migrateRawSecrets.useMutation,Nre=X.userManagement.verifyTotp.useMutation,Pre=X.userManagement.oauthIssueCode.useMutation,Fre=X.userManagement.oauthExchangeCode.useMutation,Ire=X.userManagement.oauthRefresh.useMutation,Lre=X.userManagement.oauthVerifyAccessToken.useQuery,lk=X.userManagement.listExternalIdentities.useQuery,Rre=X.userManagement.findUserByExternalIdentity.useQuery,uk=X.userManagement.unlinkExternalIdentity.useMutation,dk=X.userManagement.listOauthSessions.useQuery,fk=X.userManagement.revokeOauthSession.useMutation,zre=X.vacuumControl.start.useMutation,Bre=X.vacuumControl.pause.useMutation,Vre=X.vacuumControl.stop.useMutation,Hre=X.vacuumControl.returnToBase.useMutation,Ure=X.vacuumControl.locate.useMutation,Wre=X.vacuumControl.setFanSpeed.useMutation,Gre=X.vacuumControl.getStatus.useQuery,Kre=X.valve.open.useMutation,qre=X.valve.close.useMutation,Jre=X.valve.stop.useMutation,Yre=X.valve.setPosition.useMutation,Xre=X.valve.getStatus.useQuery,Zre=X.vibration.getStatus.useQuery,pk=X.videoclips.listClips.useQuery,mk=X.videoclips.listSources.useQuery,hk=X.videoclips.getClipPlayback.useQuery,Qre=X.videoclips.readClipBytes.useQuery,$re=X.videoclips.offerClipBytes.useQuery,eie=X.videoclips.dialClipStream.useQuery,tie=X.videoclips.getPlaybackOptions.useQuery,nie=X.waterHeater.setTargetTemp.useMutation,rie=X.waterHeater.setOperationMode.useMutation,iie=X.waterHeater.setAway.useMutation,aie=X.waterHeater.getStatus.useQuery,oie=X.weather.getStatus.useQuery,sie=X.webrtcSession.listStreams.useQuery,cie=X.webrtcSession.createSession.useMutation,lie=X.webrtcSession.handleOffer.useMutation,uie=X.webrtcSession.handleAnswer.useMutation,die=X.webrtcSession.addIceCandidate.useMutation,fie=X.webrtcSession.getIceCandidates.useQuery,pie=X.webrtcSession.closeSession.useMutation,mie=X.webrtcSession.hasAdaptiveBitrate.useQuery,hie=X.webrtcSession.getSessionState.useQuery,gie=X.webrtcSession.applyDownlinkProbe.useMutation,_ie=X.webrtcSession.getSessionDebug.useQuery,vie=X.zoneAnalytics.getCurrentSnapshot.useQuery,yie=X.zoneAnalytics.getCurrentSnapshotBatch.useQuery,bie=X.zoneAnalytics.getZoneHistory.useQuery,xie=X.zoneAnalytics.getCameraHistory.useQuery,Sie=X.zoneAnalytics.getUnzonedHistory.useQuery,Cie=X.zoneRules.listRules.useQuery,wie=X.zoneRules.setRules.useMutation,gk=X.zones.listZones.useQuery,Tie=X.zones.addZone.useMutation,Eie=X.zones.removeZone.useMutation,Die=X.zones.updateZone.useMutation;E(),bo();var _k=O(null);function vk(){let e=I(_k);if(!e)throw Error(`Dropdown compound components must be used within <Dropdown>`);return e}function yk({children:e,open:t,onOpenChange:n}){let[r,i]=C(!1),a=t!==void 0&&n!==void 0,o=a?t:r,s=_(e=>{a?n(e):i(e)},[a,n]),c=y(),l=y(),u=f(null);return v(_k.Provider,{value:{open:o,setOpen:s,triggerId:c,contentId:l,triggerRef:u},children:v(`div`,{className:`relative inline-block`,children:e})})}function bk({children:e,...t}){let{open:n,setOpen:r,triggerId:i,contentId:a,triggerRef:o}=vk();return v(`button`,{type:`button`,ref:o,id:i,"aria-haspopup":`menu`,"aria-expanded":n,"aria-controls":n?a:void 0,onClick:()=>r(!n),...t,children:e})}function xk({className:e,children:t,align:n=`start`,offset:r=4,...i}){let{open:a,setOpen:o,contentId:s,triggerId:c,triggerRef:l}=vk(),d=f(null),[p,m]=C(null);return u(()=>{if(!a){m(null);return}let e=()=>{let e=l.current;if(!e)return;let t=e.getBoundingClientRect(),i=n===`end`?t.right:t.left;m({top:t.bottom+r,left:i,minWidth:t.width})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[a,n,r,l]),b(()=>{if(!a)return;let e=e=>{let t=d.current,n=l.current;t&&!t.contains(e.target)&&!n?.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&o(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a,o,l]),!a||!p||typeof document>`u`?null:xo(v(`div`,{ref:d,id:s,role:`menu`,"aria-labelledby":c,style:{position:`fixed`,top:p.top,...n===`end`?{right:window.innerWidth-p.left}:{left:p.left},minWidth:p.minWidth},className:$(`z-50 bg-background-elevated border border-border rounded-md shadow-lg py-1 min-w-[160px]`,e),...i,children:t}),document.body)}function Sk({className:e,icon:t,variant:n=`default`,children:r,onClick:i,...a}){let{setOpen:o}=vk(),s=_(e=>{i?.(e),o(!1)},[i,o]);return c(`button`,{type:`button`,role:`menuitem`,className:$(`h-7 text-xs px-2 w-full text-left flex items-center gap-2`,n===`danger`?`text-danger hover:bg-danger/10`:`text-foreground hover:bg-surface-hover`,e),onClick:s,...a,children:[t&&v(t,{size:14}),r]})}function Oie(e,t){if(e.length===0||t.length===0)return!1;let n=new Set(e);return t.some(e=>n.has(e))}function Ck(e,t){if(t?.excludeDeviceId!==void 0&&e.id===t.excludeDeviceId||t?.excludeTypes!==void 0&&t.excludeTypes.includes(e.type))return!1;let n=t?.caps!==void 0&&t.caps.length>0,r=t?.types!==void 0&&t.types.length>0;return!!(!n&&!r||n&&Oie(e.features??[],t.caps)||r&&t.types.includes(e.type))}function wk(e){return typeof e.location==`string`&&e.location.length>0?`${e.name} (${e.location})`:e.name}function kie(e){let t=[];return typeof e.location==`string`&&e.location.length>0&&t.push(e.location),t.push(e.type),typeof e.parentName==`string`&&e.parentName.length>0&&t.push(`in ${e.parentName}`),t.join(` · `)}function Tk(e,t){return e.filter(e=>Ck(e,t)).map(e=>({value:String(e.id),label:wk(e),description:kie(e),location:typeof e.location==`string`&&e.location.length>0?e.location:null})).toSorted((e,t)=>e.label.localeCompare(t.label))}function Aie(e){let t=new Set,n=new Set;for(let r of e)typeof r.location==`string`&&r.location.length>0&&t.add(r.location),n.add(r.type);return{locations:[...t].toSorted((e,t)=>e.localeCompare(t)),types:[...n].toSorted((e,t)=>e.localeCompare(t))}}var jie={locations:[],types:[]};function Mie(e,t){return!(t.locations.length>0&&(typeof e.location!=`string`||!t.locations.includes(e.location))||t.types.length>0&&!t.types.includes(e.type))}function Ek(e,t,n){return{suggested:e.filter(e=>t.has(n(e))),others:e.filter(e=>!t.has(n(e)))}}function Dk(e,t){return e.location===t}function Nie(e,t){let n=Gi(t.map(e=>({id:e.id,stableId:e.stableId,type:e.type,...e.role!==void 0&&e.role!==null?{role:e.role}:{},name:e.name})),e.primaryChildEntityId,e.name);return n===null?null:n.id}function Ok(e,t){if(t==null||t.length===0)return new Set;let n=new Map(e.map(e=>[e.id,e])),r=new Map;for(let t of e)t.parentDeviceId===null||t.parentDeviceId===void 0||r.set(t.parentDeviceId,[...r.get(t.parentDeviceId)??[],t]);let i=e=>e!==void 0&&e.type===J.Container,a=new Set,o=new Set;for(let r of e){if(i(r)){Dk(r,t)&&a.add(r.id);continue}if(!Dk(r,t))continue;let e=r.parentDeviceId===null||r.parentDeviceId===void 0?void 0:n.get(r.parentDeviceId);e!==void 0&&i(e)?a.add(e.id):o.add(r.id)}for(let e of a){let t=n.get(e);if(t===void 0)continue;let a=Nie(t,r.get(e)??[]);a!==null&&!i(n.get(a))&&o.add(a)}return o}function kk(e,t){let n=t.trim().toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(e=>{let t=`${e.value} ${e.label} ${e.description??``}`.toLowerCase();return n.every(e=>t.includes(e))})}function Ak(e,t){let n=new Map(e.map(e=>[e.value,e]));return t.map(e=>n.get(e)??{value:e,label:e})}E();var Pie=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`,Fie=`flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 focus-within:border-primary focus-within:ring-1 focus-within:ring-primary/30`,jk=`block text-[11px] font-medium text-foreground mb-1 break-words`,Mk=`text-[10px] text-foreground-subtle mt-0.5 break-words`;function Nk(e){return typeof e==`string`?e:null}function Pk(e){if(!Array.isArray(e))return[];let t=new Map;for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;typeof e.id==`number`&&typeof e.name==`string`&&t.set(e.id,e.name)}let n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r;if(typeof e.id!=`number`||typeof e.type!=`string`||typeof e.name!=`string`)continue;let i=typeof e.parentDeviceId==`number`?t.get(e.parentDeviceId)??null:null;n.push({id:e.id,type:e.type,name:e.name,location:typeof e.location==`string`?e.location:null,features:Array.isArray(e.features)?e.features.filter(e=>typeof e==`string`):[],parentName:i,stableId:typeof e.stableId==`string`?e.stableId:``,parentDeviceId:typeof e.parentDeviceId==`number`?e.parentDeviceId:null,primaryChildEntityId:Nk(e.primaryChildEntityId),role:Nk(e.role)})}return n}var Iie=`px-2.5 pt-1.5 pb-0.5 text-[10px] font-medium uppercase tracking-wide text-foreground-subtle`,Lie=`inline-flex max-w-full items-center gap-1 rounded-md border border-border bg-background px-2 py-1 text-[11px] text-foreground hover:bg-surface-hover`,Fk=`flex h-7 w-full items-center gap-2 px-2 text-left text-xs text-foreground hover:bg-surface-hover`;function Ik({label:e,values:t,chosen:n,onChange:r}){let i=q();if(t.length<2)return null;let a=n.length===0?i(`uiLibrary.deviceSelectField.all`,`All`):n.join(`, `),o=e=>{r(n.includes(e)?n.filter(t=>t!==e):[...n,e])};return c(yk,{children:[c(bk,{className:Lie,children:[v(`span`,{className:`text-foreground-subtle`,children:e}),v(`span`,{"aria-hidden":`true`,children:`·`}),v(`span`,{className:`truncate`,children:a}),v(de,{className:`h-3 w-3 shrink-0 text-foreground-subtle`})]}),c(xk,{className:`max-h-56 overflow-y-auto`,children:[c(`button`,{type:`button`,role:`menuitemcheckbox`,"aria-checked":n.length===0,className:Fk,onClick:()=>r([]),children:[v(`span`,{className:`inline-flex h-3.5 w-3.5 items-center justify-center rounded border border-border`,children:n.length===0&&v(dt,{className:`h-2.5 w-2.5`})}),i(`uiLibrary.deviceSelectField.all`,`All`)]}),t.map(e=>{let t=n.includes(e);return c(`button`,{type:`button`,role:`menuitemcheckbox`,"aria-checked":t,className:Fk,onClick:()=>o(e),children:[v(`span`,{className:[`inline-flex h-3.5 w-3.5 items-center justify-center rounded border`,t?`border-primary bg-primary text-white`:`border-border`].join(` `),children:t&&v(dt,{className:`h-2.5 w-2.5`})}),e]},e)})]})]})}function Rie({label:e,description:t,required:n,translationFn:r,children:i}){let a=Tz(e,r),o=Tz(t,r);return c(`div`,{className:`min-w-0`,children:[a!==void 0&&a!==``&&c(`label`,{className:jk,children:[a,n&&v(`span`,{className:`text-danger ml-0.5`,children:`*`})]}),i,o&&v(`p`,{className:Mk,children:o})]})}function Lk({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),{data:o}=nm({}),s=p(()=>Tk(Pk(o),e.deviceFilter),[o,e.deviceFilter]),l=t==null?``:String(t);return v(Rie,{label:e.label,description:e.description,required:e.required,translationFn:i,children:c(`select`,{className:Pie,value:l,disabled:r||e.disabled,onChange:e=>n(e.target.value),children:[!e.required&&v(`option`,{value:``,children:a(`uiLibrary.deviceSelectField.select`,`— Select device —`)}),s.map(e=>v(`option`,{value:e.value,children:e.label},e.value))]})})}function Rk({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),{data:o}=nm({}),s=e.suggestLocation!==void 0,[l,u]=C(jie),d=p(()=>Pk(o),[o]),m=p(()=>Aie(d.filter(t=>t.id!==e.deviceFilter?.excludeDeviceId)),[d,e.deviceFilter?.excludeDeviceId]),h=p(()=>s?d.filter(e=>Mie(e,l)):d,[d,l,s]),g=p(()=>Tk(h,e.deviceFilter),[h,e.deviceFilter]),_=Array.isArray(t)?t.map(String):[],y=r===!0||e.disabled===!0,b=e.maxItems!==void 0&&_.length>=e.maxItems,[x,S]=C(``),[w,T]=C(!1),[E,D]=C(0),O=f(null),k=f(null),A=p(()=>Ak(g,_),[g,_]),j=p(()=>kk(g,x),[g,x]),M=p(()=>Ok(d,s?e.suggestLocation:null),[d,s,e.suggestLocation]),N=p(()=>Ek(j,M,e=>Number(e.value)),[j,M]),P=p(()=>[...N.suggested,...N.others],[N]),F=t=>{if(!y)if(_.includes(t))n(_.filter(e=>e!==t));else{if(e.maxItems!==void 0&&_.length>=e.maxItems)return;n([..._,t])}},I=e=>{if(e.key===`ArrowDown`)e.preventDefault(),T(!0),D(e=>P.length===0?0:(e+1)%P.length);else if(e.key===`ArrowUp`)e.preventDefault(),T(!0),D(e=>P.length===0?0:(e-1+P.length)%P.length);else if(e.key===`Enter`){e.preventDefault();let t=P[E];t&&F(t.value)}else e.key===`Escape`?T(!1):e.key===`Backspace`&&x===``&&_.length>0&&n(_.slice(0,-1))},L=Tz(e.label,i),R=Tz(e.description,i);return c(`div`,{className:`min-w-0`,children:[L!==void 0&&L!==``&&v(`label`,{className:jk,children:L}),A.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mb-1.5`,children:A.map(e=>c(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-primary/10 px-1.5 py-0.5 text-[11px] text-primary max-w-full`,children:[v(`span`,{className:`truncate`,children:e.label}),!y&&v(`button`,{type:`button`,className:`shrink-0 hover:text-danger`,"aria-label":a(`uiLibrary.deviceSelectField.remove`,`Remove {{label}}`,{label:e.label}),onClick:()=>F(e.value),children:v(Yn,{className:`h-2.5 w-2.5`})})]},e.value))}),s&&c(`div`,{className:`mb-1.5 flex flex-wrap gap-1.5`,children:[v(Ik,{label:a(`uiLibrary.deviceSelectField.location`,`Location`),values:m.locations,chosen:l.locations,onChange:e=>u(t=>({...t,locations:e}))}),v(Ik,{label:a(`uiLibrary.deviceSelectField.type`,`Type`),values:m.types,chosen:l.types,onChange:e=>u(t=>({...t,types:e}))})]}),c(`div`,{className:Fie+(y?` opacity-50`:``),children:[v(bi,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`}),v(`input`,{ref:O,type:`text`,role:`combobox`,"aria-label":e.label,"aria-expanded":w,"aria-controls":`dsel-${e.key}`,className:`min-w-0 flex-1 bg-transparent text-xs text-foreground outline-none placeholder:text-foreground-disabled`,value:x,placeholder:b?a(`uiLibrary.deviceSelectField.max`,`Max {{count}} selected`,{count:e.maxItems}):e.placeholder??a(`uiLibrary.deviceSelectField.search`,`Search devices…`),disabled:y,onChange:e=>{S(e.target.value),T(!0),D(0)},onFocus:()=>T(!0),onBlur:()=>{k.current=setTimeout(()=>T(!1),120)},onKeyDown:I}),v(de,{className:`h-3.5 w-3.5 shrink-0 cursor-pointer text-foreground-subtle`,onMouseDown:e=>{e.preventDefault(),k.current&&clearTimeout(k.current),T(e=>!e),O.current?.focus()}})]}),w&&!y&&v(`div`,{id:`dsel-${e.key}`,role:`listbox`,className:`mt-1 max-h-56 overflow-y-auto rounded-md border border-border bg-surface shadow-lg`,onMouseDown:e=>{e.preventDefault()},children:P.length===0?v(`div`,{className:`px-2.5 py-2 text-[11px] text-foreground-subtle italic`,children:g.length===0?a(`uiLibrary.deviceSelectField.noDevices`,`No matching devices`):a(`uiLibrary.deviceSelectField.noMatches`,`No matches for “{{query}}”`,{query:x})}):P.map((t,n)=>{let r=_.includes(t.value),i=!r&&b,a=N.suggested.length,o=s?n===0&&a>0?`Suggested · ${e.suggestLocation??``}`:n===a&&a>0?`Other devices`:null:null;return c(`div`,{children:[o!==null&&v(`div`,{className:Iie,children:o}),c(`button`,{type:`button`,role:`option`,"aria-selected":r,disabled:i,className:[`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors`,n===E?`bg-primary/10`:`hover:bg-surface-hover`,i?`opacity-40 cursor-not-allowed`:`cursor-pointer`].join(` `),onMouseEnter:()=>D(n),onClick:()=>F(t.value),children:[v(`span`,{className:[`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border`,r?`border-primary bg-primary text-white`:`border-border`].join(` `),children:r&&v(dt,{className:`h-2.5 w-2.5`})}),c(`span`,{className:`min-w-0 flex-1`,children:[v(`span`,{className:`block truncate text-foreground`,children:t.label}),t.description!==void 0&&v(`span`,{className:`block truncate text-[10px] text-foreground-subtle`,children:t.description})]})]})]},t.value)})}),R&&v(`p`,{className:Mk,children:R})]})}E();var zie=kl(`inline-flex items-center rounded-full font-medium [&>svg]:shrink-0 [&>svg]:size-3`,{variants:{variant:{default:`bg-surface-hover text-foreground`,success:`bg-success/15 text-success`,warning:`bg-warning/15 text-warning`,danger:`bg-danger/15 text-danger`,info:`bg-info/15 text-info`,primary:`bg-primary/15 text-primary`,neutral:`bg-surface-hover text-foreground-muted`},styleVariant:{solid:``,fill:``,outline:`border bg-transparent`},size:{sm:`text-[10px] leading-4 px-1.5 py-0`,md:`text-xs px-2 py-0.5`},hasIcon:{true:`gap-1`,false:``},dashed:{true:`border-dashed`,false:``}},compoundVariants:[{variant:`default`,styleVariant:`fill`,class:`bg-neutral-fill text-neutral-on`},{variant:`neutral`,styleVariant:`fill`,class:`bg-neutral-fill text-neutral-on`},{variant:`success`,styleVariant:`fill`,class:`bg-success-fill text-success-on`},{variant:`warning`,styleVariant:`fill`,class:`bg-warning-fill text-warning-on`},{variant:`danger`,styleVariant:`fill`,class:`bg-danger-fill text-danger-on`},{variant:`info`,styleVariant:`fill`,class:`bg-info-fill text-info-on`},{variant:`primary`,styleVariant:`fill`,class:`bg-primary-fill text-primary-on`}],defaultVariants:{variant:`default`,styleVariant:`solid`,size:`md`,hasIcon:!1,dashed:!1}}),zk=D(({className:e,variant:t,style:n,size:r,icon:i,dashed:a,children:o,...s},l)=>c(`span`,{ref:l,className:$(zie({variant:t,styleVariant:n,size:r,hasIcon:i!=null,dashed:a===!0&&n===`outline`}),e),...s,children:[i,o]}));zk.displayName=`Badge`,E();var Bk={motion:ri,audio:mt,person:it,vehicle:tt,animal:Me,package:Xt,sensor:fe,control:Lr,car:tt,truck:kt,bus:xe,motorcycle:je,bicycle:je,airplane:Qe,boat:Mt,train:tee,bird:Wt,cat:U,dog:B,horse:Me,sheep:Me,cow:Me,elephant:Me,bear:Me,zebra:Me,giraffe:Me,door:pn,pir:mr,smoke:K,water:cn,gas:Mi,vibration:gr,tamper:Tr,presence:lt,generic:rn,lock:xr,siren:br,switch:ke,doorbell:Yt,button:yi,"audio-speech":ei,"audio-scream":wn,"audio-crying":xt,"audio-laughter":gee,"audio-music":qr,"audio-dog":B,"audio-cat":U,"audio-bird":Wt,"audio-animal":Me,"audio-alarm":Yt,"audio-doorbell":Yt,"audio-glass_breaking":Ii,"audio-gunshot":ui,"audio-vehicle":tt,"audio-siren":br,"audio-fire":K,"audio-water":Ue,"audio-wind":Mi,"audio-door":pn,"audio-footsteps":$e,"audio-crowd":dr,"audio-telephone":re,"audio-engine":rr,"audio-tools":W,"audio-silence":me};function Vk(e){return Object.hasOwn(Bk,e)?Bk[e]:e.startsWith(`audio-`)?mt:rn}function Hk(e,t){if(t===void 0)return e.label;let n=t(e.labelKey);return n===e.labelKey||n.length===0?e.label:n}function Uk({iconId:e,size:t=16,color:n,className:r}){return s(Vk(e),{size:t,color:n,className:r})}var Wk=`flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 focus-within:border-primary focus-within:ring-1 focus-within:ring-primary/30`;function Gk({label:e,onRemove:t,warning:n=!1,iconId:r,iconUrl:i,testId:a}){let o=q();return c(`span`,{"data-testid":a,className:n?`inline-flex items-center gap-1 rounded-md bg-warning/10 px-1.5 py-0.5 text-[11px] text-warning max-w-full`:`inline-flex items-center gap-1 rounded-md bg-primary/10 px-1.5 py-0.5 text-[11px] text-primary max-w-full`,children:[i===void 0?r===void 0?null:v(Uk,{iconId:r,size:12}):v(`img`,{src:i,alt:``,className:`h-3 w-3 shrink-0 rounded-sm object-contain`}),v(`span`,{className:`truncate`,children:e}),t!==void 0&&v(`button`,{type:`button`,className:`shrink-0 hover:text-danger`,"aria-label":o(`uiLibrary.selectedChip.remove`,`Remove {{label}}`,{label:e}),onClick:t,children:v(Yn,{className:`h-2.5 w-2.5`})})]})}function Kk(e){return[e.value,e.label,e.description].filter(e=>typeof e==`string`&&e.length>0).join(` `).toLowerCase()}function qk(e,t){let n=t.trim().toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?e:e.filter(e=>{let t=Kk(e);return n.every(e=>t.includes(e))})}function Jk(e,t){let n=new Map(e.map(e=>[e.value,e])),r=new Set(t);return{selectedOptions:t.map(e=>n.get(e)??{value:e,label:e}),unselected:e.filter(e=>!r.has(e.value))}}function Yk(e,t,n){return n===void 0?e>=8||t:n}function Xk(e){let t=e.trim();return t.length>0?t:null}function Zk(e,t){let n=t.toLowerCase();return e.some(e=>e.value.toLowerCase()===n||e.label.toLowerCase()===n)}function Qk(e,t){return e&&t}function $k(e,t,n){if(!e)return!1;let r=Xk(t);return r===null?!1:!Zk(n,r)}E(),bo();var eA=4,tA=224,nA=8,Bie=`block text-[11px] font-medium text-foreground mb-1 break-words`,Vie=`text-[10px] text-foreground-subtle mt-0.5 break-words`;function Hie({opt:e}){return e.iconUrl===void 0?e.iconId===void 0?null:v(Uk,{iconId:e.iconId,size:13}):v(`img`,{src:e.iconUrl,alt:``,className:`h-3.5 w-3.5 shrink-0 rounded-sm object-contain`})}function rA(e){let t=q(),{mode:n,options:r,placeholder:i=`Select…`,disabled:a=!1,emptyMessage:o=`No options available.`,creatable:s=!1,createLabel:l=`Add new…`,onCreateRequest:m,label:h,description:g,testId:_,optionTestIdPrefix:y,listboxId:x}=e,S=a,w=Yk(r.length,s,e.searchable),T=x??_??`option-select-listbox`,E=n===`single`?e.value.length>0?[e.value]:[]:e.value,D=n===`multi`?e.maxItems:void 0,O=n===`multi`&&D!==void 0&&E.length>=D,[k,A]=C(``),[j,M]=C(!1),[N,F]=C(0),[I,L]=C(null),R=f(null),z=f(null),B=f(null),V=f(null),H=()=>{let e=z.current;if(e===null)return null;let t=e.getBoundingClientRect(),n=window.innerHeight-t.bottom-nA,r=t.top-nA,i=n>=Math.min(tA,r)||n>=120,a=Math.max(96,Math.min(tA,i?n:r)),o=Math.max(nA,Math.min(t.left,window.innerWidth-t.width-nA));return i?{top:t.bottom+eA,left:o,width:t.width,maxHeight:a,placement:`below`}:{top:Math.max(nA,t.top-eA-a),left:o,width:t.width,maxHeight:a,placement:`above`}},{selectedOptions:U}=p(()=>Jk(r,E),[r,E]),ee=p(()=>qk(r,k),[r,k]),W=$k(s,k,r),G=Qk(s,m!==void 0),te=p(()=>{let e=ee.map((e,t)=>({kind:`option`,opt:e,index:t}));if(W){let t=Xk(k);t!==null&&e.push({kind:`use-query`,draft:t})}return e},[ee,W,k]);u(()=>{if(!j||S){L(null);return}let e=()=>{L(H())};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[j,S,E.length,k,te.length]),b(()=>{if(!j)return;let e=e=>{let t=e.target;B.current?.contains(t)||z.current?.contains(t)||M(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[j]);let ne=t=>{let r=t.trim();if(r.length!==0){if(m!==void 0){m(r),A(``),M(!1);return}if(n===`single`){e.onChange(r),A(``),M(!1);return}e.value.includes(r)||D!==void 0&&e.value.length>=D||(e.onChange([...e.value,r]),A(``))}},re=t=>{if(!(n!==`multi`||S))if(e.value.includes(t))e.onChange(e.value.filter(e=>e!==t));else{if(D!==void 0&&e.value.length>=D)return;e.onChange([...e.value,t])}},K=t=>{n!==`single`||S||(e.onChange(t),A(``),M(!1))},ie=e=>{if(e.kind===`option`){if(e.opt.disabled===!0)return;n===`single`?K(e.opt.value):re(e.opt.value)}else e.kind===`use-query`&&ne(e.draft)},ae=te.length+(G&&!W?1:0),oe=t=>{if(t.key===`ArrowDown`)t.preventDefault(),M(!0),F(e=>ae===0?0:(e+1)%ae);else if(t.key===`ArrowUp`)t.preventDefault(),M(!0),F(e=>ae===0?0:(e-1+ae)%ae);else if(t.key===`Enter`){if(t.preventDefault(),W&&N===te.length){let e=Xk(k);e!==null&&ne(e);return}if(G&&!W&&N===te.length){R.current?.focus();return}let e=te[N];if(e)ie(e);else if(s){let e=Xk(k);e!==null&&ne(e)}}else t.key===`Escape`?M(!1):t.key===`Backspace`&&k===``&&n===`multi`&&e.value.length>0&&e.onChange(e.value.slice(0,-1))},se=e=>{e.key===`Enter`||e.key===` `?(e.preventDefault(),M(e=>!e)):e.key===`Escape`&&M(!1)},ce=t=>{n===`single`?e.onChange(``):e.onChange(e.value.filter(e=>e!==t))},le=O===!0?`Max ${D} selected`:i,ue=r.length===0&&!W&&te.length===0&&j,fe;fe=ue?v(`div`,{className:`px-2.5 py-2 text-[11px] text-foreground-subtle`,children:o}):te.length===0&&!s?v(`div`,{className:`px-2.5 py-2 text-[11px] text-foreground-subtle italic`,children:t(`uiLibrary.optionSelect.noMatches`,`No matches for “{{query}}”`,{query:k})}):v(P,{children:te.map((r,i)=>{if(r.kind===`use-query`)return c(`button`,{type:`button`,role:`option`,"aria-selected":!1,className:[`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors`,i===N?`bg-primary/10`:`hover:bg-surface-hover`,`cursor-pointer`].join(` `),onMouseEnter:()=>F(i),onClick:()=>ne(r.draft),children:[v(Se,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),v(`span`,{className:`truncate text-foreground`,children:t(`uiLibrary.optionSelect.use`,`Use “{{value}}”`,{value:r.draft})})]},`__use-query__`);if(r.kind!==`option`)return null;let{opt:a}=r,o=n===`single`?e.value===a.value:e.value.includes(a.value),s=n===`multi`&&!o&&O===!0,l=a.disabled===!0||s,u=te[i-1],f=u!==void 0&&u.kind===`option`?u.opt.group:void 0;return c(d,{children:[a.group!==void 0&&a.group!==f?v(`div`,{role:`presentation`,className:`px-2.5 pb-0.5 pt-1.5 text-[10px] font-medium uppercase tracking-wide text-foreground-subtle`,children:a.group}):null,c(`button`,{type:`button`,role:`option`,"aria-selected":o,disabled:l,"data-testid":y===void 0?void 0:`${y}-${a.value}`,className:[`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors`,i===N?`bg-primary/10`:`hover:bg-surface-hover`,l?`opacity-40 cursor-not-allowed`:`cursor-pointer`].join(` `),onMouseEnter:()=>F(i),onClick:()=>ie(r),children:[v(`span`,{className:[`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border`,o?`border-primary bg-primary text-white`:`border-border`].join(` `),children:o&&v(dt,{className:`h-2.5 w-2.5`})}),v(Hie,{opt:a}),v(`span`,{className:`min-w-0 flex-1 truncate text-foreground`,children:a.label}),a.badge!==void 0&&a.badge.length>0?v(zk,{variant:`default`,children:a.badge}):null]})]},a.value)})});let pe=te.length,me=n===`single`&&e.singleDisplay===`field`&&U.length>0;return c(`div`,{className:`min-w-0 space-y-1`,"data-testid":_,children:[h!==void 0&&h.length>0&&v(`label`,{className:Bie,children:h}),n===`multi`&&U.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mb-1.5`,children:U.map(e=>v(Gk,{label:e.label,...e.iconUrl===void 0?{}:{iconUrl:e.iconUrl},...e.iconId===void 0?{}:{iconId:e.iconId},...S?{}:{onRemove:()=>ce(e.value)},...y===void 0?{}:{testId:`${y}-chip-${e.value}`}},e.value))}),n===`single`&&e.singleDisplay!==`field`&&U.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mb-1.5`,children:U.map(e=>v(Gk,{label:e.label,...e.iconUrl===void 0?{}:{iconUrl:e.iconUrl},...e.iconId===void 0?{}:{iconId:e.iconId},...S?{}:{onRemove:()=>ce(e.value)}},e.value))}),w?c(`div`,{ref:e=>{z.current=e},className:Wk+(S?` opacity-50`:``),children:[v(bi,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`}),v(`input`,{ref:R,type:`text`,role:`combobox`,"aria-expanded":j,"aria-controls":T,className:`min-w-0 flex-1 bg-transparent text-xs text-foreground outline-none placeholder:text-foreground-disabled`,value:me&&!j&&k===``?U[0]?.label??``:k,placeholder:me?U[0]?.label??``:le,disabled:S,onChange:e=>{A(e.target.value),M(!0),F(0)},onFocus:()=>M(!0),onBlur:()=>{V.current=setTimeout(()=>{let e=document.activeElement;B.current?.contains(e)||M(!1)},120)},onKeyDown:oe}),v(de,{className:`h-3.5 w-3.5 shrink-0 cursor-pointer text-foreground-subtle`,onMouseDown:e=>{e.preventDefault(),V.current&&clearTimeout(V.current),M(e=>!e),R.current?.focus()}})]}):c(`button`,{ref:e=>{z.current=e},type:`button`,role:`combobox`,"aria-expanded":j,"aria-controls":T,disabled:S,className:[Wk,`w-full justify-between text-xs text-foreground`,S?`opacity-50 cursor-not-allowed`:`cursor-pointer`].join(` `),onClick:()=>!S&&M(e=>!e),onKeyDown:se,children:[v(`span`,{className:`truncate text-foreground-subtle`,children:U[0]?.label??le}),v(de,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`})]}),j&&!S&&I!==null&&typeof document<`u`&&xo(c(`div`,{ref:B,id:T,role:`listbox`,style:{position:`fixed`,top:I.top,left:I.left,width:I.width,maxHeight:I.maxHeight,zIndex:9999},className:`overflow-y-auto rounded-md border border-border bg-surface shadow-lg`,onMouseDown:e=>{e.preventDefault(),V.current&&clearTimeout(V.current)},children:[fe,G&&c(`button`,{type:`button`,className:[`flex w-full items-center gap-2 border-t border-border px-2.5 py-1.5 text-left text-xs transition-colors`,pe===N?`bg-primary/10`:`hover:bg-surface-hover`,`cursor-pointer text-primary`].join(` `),onMouseEnter:()=>F(pe),onClick:()=>{let e=Xk(k);if(e!==null){m?.(e),A(``),M(!1);return}R.current?.focus()},children:[v(Se,{className:`h-3.5 w-3.5 shrink-0`}),l]})]}),document.body),g!==void 0&&g.length>0&&v(`p`,{className:Vie,children:g})]})}function iA(e,t){return`${e}:${t}`}function aA(e,t,n,r){return e.map(e=>{let i=e.addonId!==void 0&&e.kind!==void 0?t.get(iA(e.addonId,e.kind)):void 0,a;return n?.has(e.id)===!0?a=r:e.enabled||(a=`disabled`),{value:e.id,label:e.name,...i===void 0?{}:{iconUrl:i},...a===void 0?{}:{badge:a}}})}function oA(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(typeof n!=`object`||!n)continue;let e=Reflect.get(n,`kind`),r=Reflect.get(n,`addonId`),i=Reflect.get(n,`iconUrl`);typeof e!=`string`||typeof r!=`string`||typeof i==`string`&&i.length>0&&t.set(iA(r,e),i)}return t}function sA(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=Reflect.get(n,`id`),r=Reflect.get(n,`name`),i=Reflect.get(n,`enabled`),a=Reflect.get(n,`kind`),o=Reflect.get(n,`addonId`);typeof e!=`string`||typeof r!=`string`||typeof a!=`string`||typeof o!=`string`||t.push({id:e,name:r,enabled:i===!0,kind:a,addonId:o})}return t}E();function cA({targets:e,value:t,onChange:n,disabled:r=!1,maxItems:i,testIdPrefix:a=`notification-target`,emptyMessage:o,noteIds:s,noteLabel:c,label:l,description:u,kindIconUrls:d}){let f=q(),m=Fv({}),h=p(()=>oA(m.data),[m.data]),g=d??h,_=o??f(`uiLibrary.notificationTargetsField.defaultEmpty`,`No delivery target is configured. Add one on the Targets tab first — without one the notification is rendered and thrown away.`),y=c??f(`uiLibrary.notificationTargetsField.note`,`note`);return v(rA,{mode:`multi`,options:p(()=>aA(e,g,s,y),[e,g,s,y]),value:t,onChange:n,disabled:r,searchable:!0,creatable:!1,...i===void 0?{}:{maxItems:i},emptyMessage:_,placeholder:f(`uiLibrary.notificationTargetsField.searchTargets`,`Search targets…`),label:l,description:u,testId:`${a}s`,optionTestIdPrefix:a,listboxId:`${a}-listbox`})}function lA({targets:e,value:t,onChange:n,disabled:r=!1,emptyMessage:i,placeholder:a,testId:o=`notification-target-select`,label:s,description:c,kindIconUrls:l}){let u=q(),d=Fv({}),f=p(()=>oA(d.data),[d.data]),m=l??f,h=i??u(`uiLibrary.notificationTargetsField.defaultEmpty`,`No delivery target is configured. Add one on the Targets tab first — without one the notification is rendered and thrown away.`),g=a??u(`uiLibrary.notificationTargetsField.select`,`Select…`),_=u(`uiLibrary.notificationTargetsField.note`,`note`);return v(rA,{mode:`single`,options:p(()=>aA(e,m,void 0,_),[e,m,_]),value:t,onChange:n,disabled:r,searchable:!0,creatable:!1,emptyMessage:h,placeholder:g,label:s,description:c,testId:o,optionTestIdPrefix:o,listboxId:`${o}-listbox`})}function uA({label:e,description:t,required:n,translationFn:r,children:i}){return c(`div`,{className:`space-y-1`,children:[c(`label`,{className:`block text-[11px] font-medium text-foreground mb-1 break-words`,children:[Tz(e,r),n===!0?v(`span`,{className:`text-danger`,children:` *`}):null]}),i,t!==void 0&&v(`p`,{className:`text-[10px] text-foreground-subtle mt-0.5 break-words`,children:Tz(t,r)})]})}function dA({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=Iv({}),s=Fv({}),c=p(()=>sA(o.data),[o.data]),l=p(()=>oA(s.data),[s.data]),u=Array.isArray(t)?t.filter(e=>typeof e==`string`):typeof t==`string`&&t.length>0?t.includes(`,`)?t.split(`,`).map(e=>e.trim()).filter(e=>e.length>0):[t]:[],d=o.isPending||s.isPending,f=o.isError?o.error:s.isError?s.error:null;return d?v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.notificationTargetsField.loading`,`Loading targets…`)})}):f===null?v(cA,{targets:c,value:u,onChange:e=>n(e),disabled:r===!0||e.disabled===!0,...e.maxItems===void 0?{}:{maxItems:e.maxItems},kindIconUrls:l,label:Tz(e.label,i),description:e.description===void 0?void 0:Tz(e.description,i),emptyMessage:a(`uiLibrary.notificationTargetsField.noneConfigured`,`No delivery target is configured. Add one under Notification Center → Targets first.`),testIdPrefix:`config-target-${e.key}`}):v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-danger`,children:a(`uiLibrary.notificationTargetsField.loadError`,`Could not load targets: {{message}}`,{message:f instanceof Error?f.message:String(f)})})})}function fA({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=Iv({}),s=Fv({}),c=p(()=>sA(o.data),[o.data]),l=p(()=>oA(s.data),[s.data]),u=typeof t==`string`?t:``,d=o.isPending||s.isPending,f=o.isError?o.error:s.isError?s.error:null;return d?v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.notificationTargetsField.loading`,`Loading targets…`)})}):f===null?v(lA,{targets:c,value:u,onChange:e=>n(e),disabled:r===!0||e.disabled===!0,kindIconUrls:l,label:Tz(e.label,i),description:e.description===void 0?void 0:Tz(e.description,i),emptyMessage:a(`uiLibrary.notificationTargetsField.noneConfigured`,`No delivery target is configured. Add one under Notification Center → Targets first.`),testId:`config-target-${e.key}`}):v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-danger`,children:a(`uiLibrary.notificationTargetsField.loadError`,`Could not load targets: {{message}}`,{message:f instanceof Error?f.message:String(f)})})})}E();var pA=Wn(`camstack:custom-field-renderers`,{});function mA({renderers:e,children:t}){return v(pA.Provider,{value:e,children:t})}function hA(e){return I(pA)[e]??null}E();var Uie=kl(`inline-flex items-center justify-center rounded-md font-medium transition-colors cursor-pointer disabled:opacity-50 disabled:pointer-events-none`,{variants:{variant:{primary:`bg-primary text-primary-foreground hover:bg-primary/90`,secondary:`bg-surface text-foreground hover:bg-surface-hover`,ghost:`hover:bg-surface-hover text-foreground-muted`,danger:`bg-danger text-white hover:bg-danger/90`,outline:`border border-border bg-transparent text-foreground hover:bg-surface-hover`},size:{sm:`h-7 px-2.5 text-xs gap-1.5`,md:`h-8 px-3 text-sm gap-2`,lg:`h-9 px-4 text-sm gap-2`}},defaultVariants:{variant:`primary`,size:`sm`}}),gA=D(({className:e,variant:t,size:n,...r},i)=>v(`button`,{ref:i,className:$(Uie({variant:t,size:n}),e),...r}));gA.displayName=`Button`,E();var Wie=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`,Gie=2e3,Kie=/^[A-Za-z0-9._~-]{8,}$/;function _A(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function vA(e){return typeof e==`string`?e.trim().length>0:!!(ja(e)||Ca(e))}function qie(e){return typeof e==`string`&&e.trim().length>0?e.trim():``}function yA(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(Array.isArray(e))return e.length;if(typeof e==`string`&&e.trim().startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t))return t.length}catch{return null}return null}function Jie(e,t){return e===1?t:`${t}s`}function Yie(e){if(!Array.isArray(e))return[];let t=[];for(let n of e)!_A(n)||typeof n.value!=`string`||typeof n.label!=`string`||t.push({value:n.value,label:n.label,...typeof n.brand==`string`?{brand:n.brand}:{},...typeof n.region==`string`?{region:n.region}:{}});return t}function Xie(e){return typeof e==`string`?e:``}function Zie(e){return e.startsWith(`/`)&&!e.startsWith(`//`)?new URL(e,window.location.origin).toString():e}function Qie(e){let t=e.trim();return t.length===0?!1:t.includes(`code=`)||t.includes(`://`)||t.includes(`error=`)?!0:Kie.test(t)}function $ie({field:e,values:t,disabled:n,onAction:r,onChangeMany:i}){let a=q(),[o,s]=C(`idle`),[l,u]=C(null),[d,p]=C(null),[m,h]=C(``),[g,_]=C(null),[y,x]=C(!1),[S,w]=C([]),T=f(!1),E=qie(t[e.accountKey]),D=e.secretKeys.some(e=>vA(t[e])),O=E.length>0||D,k=(e.countKey===void 0?null:yA(t[e.countKey]))??(e.countFromKey===void 0?null:yA(t[e.countFromKey])),A=o===`pasting`||!O&&l!==null,j=t=>{let n={};for(let[r,i]of Object.entries(e.assignResult??{})){let e=t[i];(typeof e==`string`||typeof e==`number`)&&(n[r]=e)}Object.keys(n).length>0&&i?.(n);let r=Yie(t.choices);w(r.length>1?r:[]);let a=typeof t.gatewayId==`string`&&t.gatewayId.length>0,o=typeof t.summary==`string`?t.summary:null;o!==null&&!a&&r.length<2&&_(o),s(`idle`),h(``),u(null),p(null)},M=e.claimAction;b(()=>{if(M===void 0||l===null||o!==`pasting`||!r)return;let t=!1,n=setInterval(()=>{T.current||r(M,e.key,{attemptId:l}).then(e=>{t||!_A(e)||e.pending===!0||(t=!0,j(e))}).catch(e=>{t||(t=!0,_(e instanceof Error?e.message:String(e)))})},Gie);return()=>{t=!0,clearInterval(n)}},[M,l,o,r,e.key]);let N=async()=>{if(!(!r||y)){x(!0),_(null);try{let t=await r(e.beginAction,e.key,{});if(!_A(t)||typeof t.authorizeUrl!=`string`||typeof t.attemptId!=`string`){_(a(`uiLibrary.accountSignIn.noLink`,`The sign-in page could not be opened. Try again.`));return}if(`verifier`in t||`state`in t){_(a(`uiLibrary.accountSignIn.noLink`,`The sign-in page could not be opened. Try again.`));return}u(t.attemptId),p(t.authorizeUrl),s(`pasting`),window.open(Zie(t.authorizeUrl),`_blank`,`noopener,noreferrer`)}catch(e){_(e instanceof Error?e.message:String(e))}finally{x(!1)}}},P=async t=>{if(!(!r||l===null||T.current)){T.current=!0,x(!0),_(null);try{let n=await r(e.completeAction,e.key,{attemptId:l,callback:t});if(!_A(n)){_(a(`uiLibrary.accountSignIn.rejected`,`The sign-in was not accepted. Start again.`));return}j(n)}catch(e){_(e instanceof Error?e.message:String(e))}finally{T.current=!1,x(!1)}}},F=async()=>{if(!(!r||y)){x(!0),_(null);try{await r(e.signOutAction,e.key,{});let t={[e.accountKey]:``};e.countKey!==void 0&&(t[e.countKey]=0),e.choiceKey!==void 0&&(t[e.choiceKey]=``),e.countFromKey!==void 0&&(t[e.countFromKey]=[]);for(let n of e.secretKeys)t[n]=ra;i?.(t),w([]),s(`idle`),u(null),h(``)}catch(e){_(e instanceof Error?e.message:String(e))}finally{x(!1)}}},I=t=>{let n=S.find(e=>e.value===t);if(n===void 0||e.choiceKey===void 0)return;let r={[e.choiceKey]:n.value};n.brand!==void 0&&(r.brand=n.brand),n.region!==void 0&&(r.region=n.region),i?.(r)},L=E.length>0?E:a(`uiLibrary.accountSignIn.yourAccount`,`your account`),R=k===null?a(`uiLibrary.accountSignIn.signedIn`,`Signed in as {{account}}`,{account:L}):a(`uiLibrary.accountSignIn.signedInCount`,`Signed in as {{account}} · {{detail}}`,{account:L,detail:e.countNoun===void 0?String(k):`${k} ${Jie(k,e.countNoun)}`});return c(`div`,{className:`col-span-1 flex min-w-0 flex-col gap-2`,children:[O&&o===`idle`?c(`div`,{className:`flex flex-col gap-2`,children:[v(`p`,{className:`text-xs text-foreground`,children:R}),S.length>1&&e.choiceKey!==void 0&&v(Hl,{"aria-label":e.choiceLabel??a(`uiLibrary.accountSignIn.choose`,`Choose`),options:S.map(e=>({value:e.value,label:e.label})),value:Xie(t[e.choiceKey]),onChange:e=>I(e.target.value),disabled:n||y}),c(`div`,{className:`flex flex-wrap gap-2`,children:[v(gA,{type:`button`,variant:`outline`,size:`sm`,disabled:n||y,onClick:()=>void N(),children:a(`uiLibrary.accountSignIn.again`,`Sign in again`)}),v(gA,{type:`button`,variant:`ghost`,size:`sm`,disabled:n||y,onClick:()=>void F(),children:a(`uiLibrary.accountSignIn.signOut`,`Sign out`)})]})]}):v(gA,{type:`button`,variant:`primary`,size:`sm`,disabled:n||y,onClick:()=>void N(),children:y&&o!==`pasting`?a(`uiLibrary.accountSignIn.working`,`Working…`):a(`uiLibrary.accountSignIn.signInWith`,`Sign in with {{provider}}`,{provider:e.providerLabel})}),A&&c(`div`,{className:`flex flex-col gap-1.5`,children:[d!==null&&v(`a`,{className:`text-[11px] text-primary break-all`,href:d,target:`_blank`,rel:`noopener noreferrer`,children:a(`uiLibrary.accountSignIn.open`,`Open the sign-in page`)}),M!==void 0&&v(`p`,{className:`text-[11px] text-muted-foreground`,children:a(`uiLibrary.accountSignIn.pasteFallback`,`If the page does not finish, paste the address it stops on here.`)}),v(`textarea`,{className:`${Wie} min-h-[60px] resize-y`,"aria-label":a(`uiLibrary.accountSignIn.paste`,`Redirect address or code`),placeholder:e.pastePlaceholder,value:m,disabled:n||y,onChange:e=>{let t=e.target.value;h(t),Qie(t)&&P(t)}})]}),g!==null&&v(`p`,{className:`text-[11px] text-danger`,children:g})]})}function eae({field:e,values:t}){return v(`p`,{className:`col-span-1 text-xs text-foreground`,children:vA(t[e.sourceKey])?e.yesLabel:e.noLabel})}E();var bA=Wn(`camstack:device-context`,null);function xA({deviceId:e,device:t,children:n}){let r={deviceId:e,device:t??null};return v(bA.Provider,{value:r,children:n})}function SA(){return I(bA)?.deviceId??null}function CA(){return I(bA)?.device??null}E(),bo();function wA(e){let t=(typeof globalThis<`u`?globalThis:void 0)?.[e];return t&&typeof t==`object`?t:{}}var TA={singleton:!0,requiredVersion:!1},EA=e=>({version:`0.0.0`,scope:`default`,lib:e,shareConfig:TA}),DA=`__mf_module_cache__`;function OA(){let e=globalThis,t=e[DA];if(t&&typeof t==`object`){let e=t;return e.share??={},e.remote??={},e}let n={share:{},remote:{}};return e[DA]=n,n}function tae(){let e=OA();e.share.react??=o,e.share[`react-dom`]??=yo,e.share[`react-dom/client`]??=So,e.share[`react/jsx-runtime`]??=N,e.share[`@tanstack/react-query`]??=F,e.share[`@trpc/client`]??=mo,e.share[`@trpc/react-query`]??=_o,e.share[`@camstack/ui-library`]??=wA(`__camstackUiLibrary`),e.share[`@camstack/sdk`]??=wA(`__camstackSdk`),e.share[`@camstack/types`]??=wA(`__camstackTypes`)}var kA=e=>({version:`0.0.0`,scope:`default`,get:()=>e().then(e=>()=>e),shareConfig:TA});function nae(){let e=OA();a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.js-BjdR__nc.js`).then(e=>e.l).then(t=>{e.share[`react-konva`]??=t}),[],import.meta.url),a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__konva__loadShare__.js-B7XYY0cV.js`).then(e=>e.t).then(t=>{e.share.konva??=t}),[],import.meta.url)}function AA(){tae(),i()===null&&(nae(),n({name:`admin_ui_host`,remotes:[],shared:{react:EA(()=>o),"react-dom":EA(()=>yo),"react-dom/client":EA(()=>So),"react/jsx-runtime":EA(()=>N),"@tanstack/react-query":EA(()=>F),"@trpc/client":EA(()=>mo),"@trpc/react-query":EA(()=>_o),"react-konva":kA(()=>a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.js-BjdR__nc.js`).then(e=>e.l),[],import.meta.url)),konva:kA(()=>a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__konva__loadShare__.js-B7XYY0cV.js`).then(e=>e.t),[],import.meta.url)),"@camstack/ui-library":EA(()=>wA(`__camstackUiLibrary`)),"@camstack/sdk":EA(()=>wA(`__camstackSdk`)),"@camstack/types":EA(()=>wA(`__camstackTypes`))}}))}E();var jA=Wn(`camstack:widget-registry`,null),MA=new Map,NA=new Map,PA=new Set;function FA(e,t){return`${e}::${t}`}function rae(e){if(!e||typeof e!=`object`)return!1;let t=e.default;return typeof t==`object`&&!!t}function iae(e){if(!e||typeof e!=`object`)return typeof e;let t=e,n=Object.getPrototypeOf(t),r=n&&typeof n==`object`?n.constructor?.name:void 0;return{ownKeys:Object.keys(t),allKeys:Object.getOwnPropertyNames(t),proto:typeof r==`string`?r:void 0}}async function IA(e,n,i){let a=FA(e,n),o=MA.get(a);if(o)return o;let s=NA.get(a);if(s)return s;PA.has(e)||(AA(),r([{name:e,entry:bt(i),type:`module`}],{force:!1}),PA.add(e));let c=t(`${e}/${n.startsWith(`./`)?n.slice(2):n}`).then(t=>{if(!rae(t)){let r=iae(t);throw Error(`Remote ${e} (${i}) does not expose a default record on '${n}'. Got: ${JSON.stringify(r)}`)}let r=t.default;return MA.set(a,r),NA.delete(a),r}).catch(e=>{throw NA.delete(a),e});return NA.set(a,c),c}function LA(e,t){return MA.get(FA(e,t))}var aae=3e4,oae=2e3;function RA({children:e}){let t=k(),n=f(Date.now()),{data:r}=nd(void 0,{staleTime:0,refetchOnMount:`always`,refetchInterval:e=>{let t=e.state.data;return t&&t.length>0||Date.now()-n.current>=aae?!1:oae}});To(`addon.widget-ready`,()=>{t.invalidateQueries({queryKey:[[`addonWidgets`,`listWidgets`]]})});let[i,a]=C(0),o=p(()=>r??[],[r]);b(()=>{if(o.length===0)return;let e=!1,t=new Set;for(let n of o){let r=FA(n.remote.remoteName,n.remote.exposedModule);if(t.has(r)||(t.add(r),MA.has(r)))continue;let i=n.bundleUrl;IA(n.remote.remoteName,n.remote.exposedModule,i).then(()=>{e||a(e=>e+1)}).catch(e=>{let t=e instanceof Error?e.message:String(e);(typeof globalThis<`u`?globalThis.console:void 0)?.error?.(`[WidgetRegistry] Failed to load widget remote`,{remoteName:n.remote.remoteName,exposedModule:n.remote.exposedModule,entryUrl:i,reason:t})})}return()=>{e=!0}},[o]);let s=p(()=>{let e=new Map,t=new Map;for(let n of o)e.set(`${n.addonId}/${n.stableId}`,n),t.set(n.remote.remoteName,n.bundleUrl);let n=(e,t)=>({widgetId:e,addonId:t.addonId,stableId:t.stableId,tab:t.tab,subTab:t.subTab,label:t.label,order:t.order,kind:t.kind,remote:t.remote,description:t.description,icon:t.icon,bundleUrl:t.bundleUrl,hosts:t.hosts,requires:t.requires,defaultSize:t.defaultSize,allowedSizes:t.allowedSizes,defaultColumns:t.defaultColumns,defaultRows:t.defaultRows});return{resolve:t=>{let n=e.get(t);if(!n)return;let r=LA(n.remote.remoteName,n.remote.exposedModule);if(!r)return null;let i=r[n.remote.componentKey??n.stableId];if(i)return i},metadata:t=>{let r=e.get(t);if(r)return n(t,r)},listAll:()=>{let t=[];for(let[r,i]of e)t.push(n(r,i));return t},entryUrlFor:e=>t.get(e)}},[o,i]);return v(jA.Provider,{value:s,children:e})}function sae(e){return VA().resolve(e)}function zA(e){return VA().metadata(e)}function cae(){return VA().listAll()}function BA(e,t){let n=HA(),r=t??n?.entryUrlFor(e.remoteName),[i,a]=C(0),[o,s]=C(!1);return b(()=>{if(!r||(s(!1),LA(e.remoteName,e.exposedModule)))return;let t=!1;return IA(e.remoteName,e.exposedModule,r).then(()=>{t||a(e=>e+1)}).catch(n=>{let i=n instanceof Error?n.message:String(n);(typeof globalThis<`u`?globalThis.console:void 0)?.error?.(`[WidgetRegistry] Failed to load remote component`,{remoteName:e.remoteName,exposedModule:e.exposedModule,entryUrl:r,reason:i}),t||s(!0)}),()=>{t=!0}},[e.remoteName,e.exposedModule,r]),p(()=>{if(!r||o)return;let t=LA(e.remoteName,e.exposedModule);if(!t)return null;let n=e.componentKey;return n===void 0?Object.values(t)[0]??void 0:t[n]??void 0},[e.remoteName,e.exposedModule,e.componentKey,r,i,o])}function VA(){let e=HA();if(!e)throw Error(`useWidgetRegistry(): no <WidgetRegistryProvider> in tree`);return e}function HA(){return lae(jA)}function lae(e){return I(e)}E();function UA(e){let t=k(),n=Ow({deviceId:e??0},{enabled:e!==null&&Number.isFinite(e),refetchInterval:5e3,retry:1}),r=kw({onSuccess:()=>{t.invalidateQueries({queryKey:[[`ptzAutotrack`]]})}}),i=jw({onSuccess:()=>{t.invalidateQueries({queryKey:[[`ptzAutotrack`]]})}}),a=_(async t=>{e!==null&&await r.mutateAsync({deviceId:e,enabled:t})},[e,r]),o=_(async t=>{e!==null&&await i.mutateAsync({deviceId:e,settings:t})},[e,i]),s=n.error?n.error.message:r.error?r.error.message:i.error?i.error.message:null;return{status:n.data??null,isLoading:n.isLoading,isPending:r.isPending||i.isPending,error:s,setEnabled:a,setSettings:o}}E();function WA({deviceId:e}){let t=q(),{status:n,isLoading:r,isPending:i,error:a,setEnabled:o,setSettings:s}=UA(Number.isFinite(e)?e:null),[l,u]=C({targetType:``,stopDelaySeconds:30,disappearDelaySeconds:15}),[d,f]=C(!1);b(()=>{if(d)return;let e=n?.currentSettings;e&&u({targetType:e.targetType,stopDelaySeconds:e.stopDelaySeconds,disappearDelaySeconds:e.disappearDelaySeconds})},[n,d]);let p=v(ui,{className:`h-3.5 w-3.5 text-foreground-subtle`});if(r&&!n)return v($t,{title:t(`uiLibrary.autotrack.title`,`Autotrack`),icon:p,children:c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-foreground-subtle`,children:[v(Un,{className:`h-3 w-3 animate-spin`}),t(`uiLibrary.autotrack.loading`,`Loading autotrack…`)]})});let m=c(`button`,{type:`button`,onClick:()=>{o(!(n?.enabled??!1))},disabled:i,className:`flex items-center gap-1.5 rounded-md px-2 py-1 text-[10px] font-medium transition-colors ${n?.enabled?`bg-success/15 text-success hover:bg-success/25`:`bg-surface-elevated/40 text-foreground-subtle hover:bg-surface-hover hover:text-foreground`} disabled:opacity-50`,"aria-pressed":n?.enabled??!1,children:[v(`span`,{className:`h-1.5 w-1.5 rounded-full ${n?.enabled?`bg-success`:`bg-foreground-subtle/40`}`}),n?.enabled?t(`uiLibrary.autotrack.enabled`,`Enabled`):t(`uiLibrary.autotrack.disabled`,`Disabled`)]});return c($t,{title:t(`uiLibrary.autotrack.title`,`Autotrack`),icon:p,headerRight:m,bodyClassName:`p-3 space-y-2`,children:[a&&c(`div`,{className:`flex items-start gap-1.5 rounded-md border border-danger/30 bg-danger/5 px-2 py-1.5 text-[10px] text-danger`,children:[v(Di,{className:`h-3 w-3 flex-shrink-0 mt-0.5`}),v(`span`,{className:`leading-snug break-words`,children:a})]}),c(`div`,{className:`grid grid-cols-2 gap-2 px-2`,children:[(n?.supportedTargetTypes?.length??0)>0&&c(`label`,{className:`col-span-2 flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.autotrack.targetType`,`Target type`)}),v(`select`,{value:l.targetType,onFocus:()=>f(!0),onChange:e=>u(t=>({...t,targetType:e.target.value})),onBlur:()=>{f(!1);let e=n?.currentSettings?.targetType??``;l.targetType!==e&&s({targetType:l.targetType})},disabled:i,className:`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`,children:(n?.supportedTargetTypes??[]).map(e=>v(`option`,{value:e.value,children:e.label},e.value))})]}),c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.autotrack.stopDelay`,`Stop delay (s)`)}),v(`input`,{type:`number`,min:0,max:300,value:l.stopDelaySeconds,onFocus:()=>f(!0),onChange:e=>u(t=>({...t,stopDelaySeconds:Number(e.target.value)||0})),onBlur:()=>{f(!1);let e=n?.currentSettings?.stopDelaySeconds??30;l.stopDelaySeconds!==e&&s({stopDelaySeconds:l.stopDelaySeconds})},disabled:i,className:`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`})]}),c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.autotrack.disappearDelay`,`Disappear delay (s)`)}),v(`input`,{type:`number`,min:0,max:300,value:l.disappearDelaySeconds,onFocus:()=>f(!0),onChange:e=>u(t=>({...t,disappearDelaySeconds:Number(e.target.value)||0})),onBlur:()=>{f(!1);let e=n?.currentSettings?.disappearDelaySeconds??15;l.disappearDelaySeconds!==e&&s({disappearDelaySeconds:l.disappearDelaySeconds})},disabled:i,className:`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`})]})]}),v(`p`,{className:`px-2 text-[9.5px] text-foreground-subtle leading-snug italic`,children:t(`uiLibrary.autotrack.note`,`Settings save on blur. Vendor support varies — Reolink honours all three; Hikvision honours target type + stop delay only (disappear delay is accepted but ignored at firmware push).`)})]})}E();var GA=O(null);function KA(){return I(GA)}function uae(e){let t=e.display?.label,n=t==null?``:t.trim();return{id:e.id,name:e.name,type:e.type,stableId:e.stableId,role:e.role??null,parentDeviceId:e.parentDeviceId??null,location:e.location??null,...n.length>0?{display:{label:n}}:{},...e.primaryChildEntityId===void 0?{}:{primaryChildEntityId:e.primaryChildEntityId},...e.userNamed===void 0?{}:{userNamed:e.userNamed}}}function qA(e){let t=new Map,n=new Map;for(let r of e){let e=uae(r);t.set(e.id,e);let i=e.parentDeviceId;if(i==null||i===e.id)continue;let a=n.get(i);a===void 0?n.set(i,[e.id]):a.push(e.id)}return{byId:t,childIds:n}}function JA({devices:e,children:t}){let n=p(()=>e===null?null:qA(e),[e]);return v(GA.Provider,{value:n,children:t})}function YA({children:e}){let t=nm({projection:`slim`});return v(JA,{devices:t.data===void 0?null:t.data,children:e})}var XA=` · `,dae=[`compact`,`full`,`nested`,`with-location`],fae=[` — `,` - `,`: `,` `],pae=new Set([`battery-sensor`,`temperature-sensor`,`humidity-sensor`,`ambient-light-sensor`,`connectivity-sensor`,`datetime-sensor`,`numeric-sensor`,`enum-sensor`]);function ZA(e){return e.toLowerCase().replace(/[-_\s]+/g,` `).trim()}function QA(e,t){return ZA(e)===ZA(t)}function $A(e,t){if(t.length===0)return e;let n=e.toLowerCase(),r=t.toLowerCase();for(let t of fae){let i=`${r}${t}`;if(n.startsWith(i))return e.slice(i.length).trim()}return e}function ej(e){let t=e.role;return t==null||t.length===0?null:t}function mae(e){if(e.type===`update`)return!0;let t=ej(e);return t!==null&&pae.has(t)}function tj(e){let t=e.display?.label;return t==null?``:t.trim()}function nj(e,t,n){let r=tj(e);if(r.length>0)return r;let i=$A(e.name,t.name),a=i.length>0?i:e.name;return e.userNamed===!0?a:i.length===0||QA(i,t.name)||n.isStockPhrase(a,ej(e),e.type)?n.shortNoun(ej(e),e.type):a}function hae(e,t,n){return QA(n,t.name)?!0:tj(e).length>0||e.userNamed===!0?!1:QA($A(e.name,t.name),t.name)}function gae(e){let t=0;for(let n of e)mae(n)||(t+=1);return t}function _ae(e,t,n){let r=Gi(n.map(e=>{let t=ej(e);return{id:e.id,stableId:e.stableId,type:e.type,name:e.name,...t===null?{}:{role:t}}}),t.primaryChildEntityId,t.name);return r!==null&&r.id===e.id}function vae(e,t,n,r,i){let a=nj(e,t,r);return hae(e,t,a)||i===`compact`&&t.type===`container`&&_ae(e,t,n)&&gae(n)===1?t.name:`${t.name}${XA}${a}`}function rj(e,t){if(t==null)return e;let n=t.trim();return n.length===0||e.split(` · `).some(e=>QA(e,n))?e:`${e}${XA}${n}`}function yae(e,t){return t===null?!1:e.parentDeviceId!=null}function ij(e,t,n,r){if(!yae(e,n.parent))return t===`with-location`?rj(e.name,e.location):e.name;if(t===`nested`)return nj(e,n.parent,r);let i=vae(e,n.parent,n.siblings,r,t===`full`?`full`:`compact`);return t===`with-location`?rj(i,e.location):i}var aj=[{id:`siren`,key:`uiLibrary.deviceMeta.noun.role.siren`,en:`Siren`,it:`Sirena`,shortEn:`Siren`,shortIt:`Sirena`,aliases:[]},{id:`floodlight`,key:`uiLibrary.deviceMeta.noun.role.floodlight`,en:`Floodlight`,it:`Faro`,shortEn:`Floodlight`,shortIt:`Faro`,aliases:[]},{id:`spotlight`,key:`uiLibrary.deviceMeta.noun.role.spotlight`,en:`Spotlight`,it:`Faretto`,shortEn:`Spotlight`,shortIt:`Faretto`,aliases:[]},{id:`pir-sensor`,key:`uiLibrary.deviceMeta.noun.role.pirSensor`,en:`PIR sensor`,it:`Sensore PIR`,shortEn:`PIR`,shortIt:`PIR`,aliases:[]},{id:`chime`,key:`uiLibrary.deviceMeta.noun.role.chime`,en:`Chime`,it:`Campanello`,shortEn:`Chime`,shortIt:`Campanello`,aliases:[]},{id:`autotrack`,key:`uiLibrary.deviceMeta.noun.role.autotrack`,en:`Auto-track`,it:`Auto-tracking`,shortEn:`Auto-track`,shortIt:`Auto-tracking`,aliases:[]},{id:`nightvision`,key:`uiLibrary.deviceMeta.noun.role.nightvision`,en:`Night vision`,it:`Visione notturna`,shortEn:`Night`,shortIt:`Notturna`,aliases:[]},{id:`privacy-mask`,key:`uiLibrary.deviceMeta.noun.role.privacyMask`,en:`Privacy mask`,it:`Maschera privacy`,shortEn:`Privacy`,shortIt:`Privacy`,aliases:[]},{id:`doorbell`,key:`uiLibrary.deviceMeta.noun.role.doorbell`,en:`Doorbell`,it:`Campanello video`,shortEn:`Doorbell`,shortIt:`Campanello video`,aliases:[]},{id:`cover-blind`,key:`uiLibrary.deviceMeta.noun.role.coverBlind`,en:`Blind`,it:`Tapparella`,shortEn:`Blind`,shortIt:`Tapparella`,aliases:[]},{id:`cover-shutter`,key:`uiLibrary.deviceMeta.noun.role.coverShutter`,en:`Shutter`,it:`Persiana`,shortEn:`Shutter`,shortIt:`Persiana`,aliases:[]},{id:`cover-awning`,key:`uiLibrary.deviceMeta.noun.role.coverAwning`,en:`Awning`,it:`Tenda da sole`,shortEn:`Awning`,shortIt:`Tenda da sole`,aliases:[]},{id:`cover-curtain`,key:`uiLibrary.deviceMeta.noun.role.coverCurtain`,en:`Curtain`,it:`Tenda`,shortEn:`Curtain`,shortIt:`Tenda`,aliases:[]},{id:`cover-garage`,key:`uiLibrary.deviceMeta.noun.role.coverGarage`,en:`Garage door`,it:`Porta del garage`,shortEn:`Garage`,shortIt:`Garage`,aliases:[]},{id:`cover-gate`,key:`uiLibrary.deviceMeta.noun.role.coverGate`,en:`Gate`,it:`Cancello`,shortEn:`Gate`,shortIt:`Cancello`,aliases:[]},{id:`cover-door`,key:`uiLibrary.deviceMeta.noun.role.coverDoor`,en:`Door`,it:`Porta`,shortEn:`Door`,shortIt:`Porta`,aliases:[]},{id:`cover-window`,key:`uiLibrary.deviceMeta.noun.role.coverWindow`,en:`Window`,it:`Finestra`,shortEn:`Window`,shortIt:`Finestra`,aliases:[]},{id:`binary-helper`,key:`uiLibrary.deviceMeta.noun.role.binaryHelper`,en:`Binary helper`,it:`Helper binario`,shortEn:`Helper`,shortIt:`Helper`,aliases:[]},{id:`outlet`,key:`uiLibrary.deviceMeta.noun.role.outlet`,en:`Outlet`,it:`Presa`,shortEn:`Outlet`,shortIt:`Presa`,aliases:[]},{id:`motion-sensor`,key:`uiLibrary.deviceMeta.noun.role.motionSensor`,en:`Motion sensor`,it:`Sensore di movimento`,shortEn:`Motion`,shortIt:`Movimento`,aliases:[]},{id:`contact-sensor`,key:`uiLibrary.deviceMeta.noun.role.contactSensor`,en:`Contact sensor`,it:`Sensore di contatto`,shortEn:`Contact`,shortIt:`Contatto`,aliases:[]},{id:`leak-sensor`,key:`uiLibrary.deviceMeta.noun.role.leakSensor`,en:`Leak sensor`,it:`Sensore di perdite`,shortEn:`Leak`,shortIt:`Perdita`,aliases:[]},{id:`smoke-sensor`,key:`uiLibrary.deviceMeta.noun.role.smokeSensor`,en:`Smoke sensor`,it:`Sensore di fumo`,shortEn:`Smoke`,shortIt:`Fumo`,aliases:[]},{id:`co-sensor`,key:`uiLibrary.deviceMeta.noun.role.cOSensor`,en:`CO sensor`,it:`Sensore di CO`,shortEn:`CO`,shortIt:`CO`,aliases:[]},{id:`gas-sensor`,key:`uiLibrary.deviceMeta.noun.role.gasSensor`,en:`Gas sensor`,it:`Sensore di gas`,shortEn:`Gas`,shortIt:`Gas`,aliases:[]},{id:`tamper-sensor`,key:`uiLibrary.deviceMeta.noun.role.tamperSensor`,en:`Tamper sensor`,it:`Sensore antimanomissione`,shortEn:`Tamper`,shortIt:`Manomissione`,aliases:[]},{id:`vibration-sensor`,key:`uiLibrary.deviceMeta.noun.role.vibrationSensor`,en:`Vibration sensor`,it:`Sensore di vibrazione`,shortEn:`Vibration`,shortIt:`Vibrazione`,aliases:[]},{id:`connectivity-sensor`,key:`uiLibrary.deviceMeta.noun.role.connectivitySensor`,en:`Connectivity`,it:`Connettività`,shortEn:`Connectivity`,shortIt:`Connettività`,aliases:[]},{id:`sound-sensor`,key:`uiLibrary.deviceMeta.noun.role.soundSensor`,en:`Sound sensor`,it:`Sensore acustico`,shortEn:`Sound`,shortIt:`Suono`,aliases:[]},{id:`binary-sensor`,key:`uiLibrary.deviceMeta.noun.role.binarySensor`,en:`Binary sensor`,it:`Sensore binario`,shortEn:`Binary`,shortIt:`Binario`,aliases:[]},{id:`temperature-sensor`,key:`uiLibrary.deviceMeta.noun.role.temperatureSensor`,en:`Temperature`,it:`Temperatura`,shortEn:`Temperature`,shortIt:`Temperatura`,aliases:[]},{id:`humidity-sensor`,key:`uiLibrary.deviceMeta.noun.role.humiditySensor`,en:`Humidity`,it:`Umidità`,shortEn:`Humidity`,shortIt:`Umidità`,aliases:[]},{id:`ambient-light-sensor`,key:`uiLibrary.deviceMeta.noun.role.ambientLightSensor`,en:`Ambient light`,it:`Luce ambientale`,shortEn:`Light`,shortIt:`Luce`,aliases:[`Illumination`]},{id:`pressure-sensor`,key:`uiLibrary.deviceMeta.noun.role.pressureSensor`,en:`Pressure`,it:`Pressione`,shortEn:`Pressure`,shortIt:`Pressione`,aliases:[]},{id:`wind-sensor`,key:`uiLibrary.deviceMeta.noun.role.windSensor`,en:`Wind`,it:`Vento`,shortEn:`Wind`,shortIt:`Vento`,aliases:[]},{id:`rain-sensor`,key:`uiLibrary.deviceMeta.noun.role.rainSensor`,en:`Rain`,it:`Pioggia`,shortEn:`Rain`,shortIt:`Pioggia`,aliases:[]},{id:`uv-sensor`,key:`uiLibrary.deviceMeta.noun.role.uvSensor`,en:`UV index`,it:`Indice UV`,shortEn:`UV index`,shortIt:`Indice UV`,aliases:[]},{id:`solar-radiation-sensor`,key:`uiLibrary.deviceMeta.noun.role.solarRadiationSensor`,en:`Solar radiation`,it:`Radiazione solare`,shortEn:`Solar radiation`,shortIt:`Radiazione solare`,aliases:[]},{id:`soil-moisture-sensor`,key:`uiLibrary.deviceMeta.noun.role.soilMoistureSensor`,en:`Soil moisture`,it:`Umidità del suolo`,shortEn:`Soil moisture`,shortIt:`Umidità del suolo`,aliases:[]},{id:`power-sensor`,key:`uiLibrary.deviceMeta.noun.role.powerSensor`,en:`Power`,it:`Potenza`,shortEn:`Power`,shortIt:`Potenza`,aliases:[]},{id:`energy-sensor`,key:`uiLibrary.deviceMeta.noun.role.energySensor`,en:`Energy`,it:`Energia`,shortEn:`Energy`,shortIt:`Energia`,aliases:[]},{id:`voltage-sensor`,key:`uiLibrary.deviceMeta.noun.role.voltageSensor`,en:`Voltage`,it:`Tensione`,shortEn:`Voltage`,shortIt:`Tensione`,aliases:[]},{id:`current-sensor`,key:`uiLibrary.deviceMeta.noun.role.currentSensor`,en:`Current`,it:`Corrente`,shortEn:`Current`,shortIt:`Corrente`,aliases:[]},{id:`air-quality-sensor`,key:`uiLibrary.deviceMeta.noun.role.airQualitySensor`,en:`Air quality`,it:`Qualità dell’aria`,shortEn:`Air quality`,shortIt:`Qualità dell’aria`,aliases:[]},{id:`battery-sensor`,key:`uiLibrary.deviceMeta.noun.role.batterySensor`,en:`Battery`,it:`Batteria`,shortEn:`Battery`,shortIt:`Batteria`,aliases:[]},{id:`numeric-sensor`,key:`uiLibrary.deviceMeta.noun.role.numericSensor`,en:`Numeric sensor`,it:`Sensore numerico`,shortEn:`Value`,shortIt:`Numerico`,aliases:[]},{id:`enum-sensor`,key:`uiLibrary.deviceMeta.noun.role.enumSensor`,en:`Enum sensor`,it:`Sensore a stati`,shortEn:`State`,shortIt:`Stato`,aliases:[]},{id:`datetime-sensor`,key:`uiLibrary.deviceMeta.noun.role.dateTimeSensor`,en:`Date / time`,it:`Data / ora`,shortEn:`Time`,shortIt:`Ora`,aliases:[`Last seen`]},{id:`generic-sensor`,key:`uiLibrary.deviceMeta.noun.role.genericSensor`,en:`Sensor`,it:`Sensore`,shortEn:`Sensor`,shortIt:`Sensore`,aliases:[]},{id:`numeric-control`,key:`uiLibrary.deviceMeta.noun.role.numericControl`,en:`Numeric control`,it:`Controllo numerico`,shortEn:`Number`,shortIt:`Numero`,aliases:[]},{id:`select-control`,key:`uiLibrary.deviceMeta.noun.role.selectControl`,en:`Select control`,it:`Controllo a selezione`,shortEn:`Select`,shortIt:`Selezione`,aliases:[]},{id:`text-control`,key:`uiLibrary.deviceMeta.noun.role.textControl`,en:`Text control`,it:`Controllo testo`,shortEn:`Text`,shortIt:`Testo`,aliases:[]},{id:`datetime-control`,key:`uiLibrary.deviceMeta.noun.role.dateTimeControl`,en:`Date / time control`,it:`Controllo data / ora`,shortEn:`Time`,shortIt:`Ora`,aliases:[]},{id:`mobile-push-notifier`,key:`uiLibrary.deviceMeta.noun.role.mobilePushNotifier`,en:`Mobile push`,it:`Push su mobile`,shortEn:`Push`,shortIt:`Push`,aliases:[]},{id:`messaging-notifier`,key:`uiLibrary.deviceMeta.noun.role.messagingNotifier`,en:`Messaging`,it:`Messaggistica`,shortEn:`Messaging`,shortIt:`Messaggistica`,aliases:[]},{id:`email-notifier`,key:`uiLibrary.deviceMeta.noun.role.emailNotifier`,en:`Email`,it:`Email`,shortEn:`Email`,shortIt:`Email`,aliases:[]},{id:`generic-notifier`,key:`uiLibrary.deviceMeta.noun.role.genericNotifier`,en:`Notifier`,it:`Notificatore`,shortEn:`Notifier`,shortIt:`Notificatore`,aliases:[]}],oj=[{id:`camera`,key:`uiLibrary.deviceMeta.noun.type.camera`,en:`Camera`,it:`Telecamera`,shortEn:`Camera`,shortIt:`Telecamera`,aliases:[]},{id:`hub`,key:`uiLibrary.deviceMeta.noun.type.hub`,en:`Hub`,it:`Hub`,shortEn:`Hub`,shortIt:`Hub`,aliases:[]},{id:`light`,key:`uiLibrary.deviceMeta.noun.type.light`,en:`Light`,it:`Luce`,shortEn:`Light`,shortIt:`Luce`,aliases:[]},{id:`siren`,key:`uiLibrary.deviceMeta.noun.type.siren`,en:`Siren`,it:`Sirena`,shortEn:`Siren`,shortIt:`Sirena`,aliases:[]},{id:`switch`,key:`uiLibrary.deviceMeta.noun.type.switch`,en:`Switch`,it:`Interruttore`,shortEn:`Switch`,shortIt:`Interruttore`,aliases:[]},{id:`sensor`,key:`uiLibrary.deviceMeta.noun.type.sensor`,en:`Sensor`,it:`Sensore`,shortEn:`Sensor`,shortIt:`Sensore`,aliases:[]},{id:`thermostat`,key:`uiLibrary.deviceMeta.noun.type.thermostat`,en:`Thermostat`,it:`Termostato`,shortEn:`Thermostat`,shortIt:`Termostato`,aliases:[]},{id:`climate`,key:`uiLibrary.deviceMeta.noun.type.climate`,en:`Air conditioner`,it:`Condizionatore`,shortEn:`Climate`,shortIt:`Condizionatore`,aliases:[]},{id:`button`,key:`uiLibrary.deviceMeta.noun.type.button`,en:`Button`,it:`Pulsante`,shortEn:`Button`,shortIt:`Pulsante`,aliases:[]},{id:`event-emitter`,key:`uiLibrary.deviceMeta.noun.type.eventEmitter`,en:`Event Emitter`,it:`Emettitore di eventi`,shortEn:`Event`,shortIt:`Evento`,aliases:[]},{id:`update`,key:`uiLibrary.deviceMeta.noun.type.update`,en:`Update`,it:`Aggiornamento`,shortEn:`Update`,shortIt:`Aggiornamento`,aliases:[]},{id:`generic`,key:`uiLibrary.deviceMeta.noun.type.generic`,en:`Generic`,it:`Generico`,shortEn:`Generic`,shortIt:`Generico`,aliases:[]},{id:`notifier`,key:`uiLibrary.deviceMeta.noun.type.notifier`,en:`Notifier`,it:`Notificatore`,shortEn:`Notifier`,shortIt:`Notificatore`,aliases:[]},{id:`script`,key:`uiLibrary.deviceMeta.noun.type.script`,en:`Script`,it:`Script`,shortEn:`Script`,shortIt:`Script`,aliases:[]},{id:`automation`,key:`uiLibrary.deviceMeta.noun.type.automation`,en:`Automation`,it:`Automazione`,shortEn:`Automation`,shortIt:`Automazione`,aliases:[]},{id:`lock`,key:`uiLibrary.deviceMeta.noun.type.lock`,en:`Lock`,it:`Serratura`,shortEn:`Lock`,shortIt:`Serratura`,aliases:[]},{id:`cover`,key:`uiLibrary.deviceMeta.noun.type.cover`,en:`Cover`,it:`Copertura`,shortEn:`Cover`,shortIt:`Copertura`,aliases:[]},{id:`valve`,key:`uiLibrary.deviceMeta.noun.type.valve`,en:`Valve`,it:`Valvola`,shortEn:`Valve`,shortIt:`Valvola`,aliases:[]},{id:`humidifier`,key:`uiLibrary.deviceMeta.noun.type.humidifier`,en:`Humidifier`,it:`Umidificatore`,shortEn:`Humidifier`,shortIt:`Umidificatore`,aliases:[]},{id:`water-heater`,key:`uiLibrary.deviceMeta.noun.type.waterHeater`,en:`Water heater`,it:`Scaldabagno`,shortEn:`Heater`,shortIt:`Scaldabagno`,aliases:[]},{id:`fan`,key:`uiLibrary.deviceMeta.noun.type.fan`,en:`Fan`,it:`Ventilatore`,shortEn:`Fan`,shortIt:`Ventilatore`,aliases:[]},{id:`media-player`,key:`uiLibrary.deviceMeta.noun.type.mediaPlayer`,en:`Media player`,it:`Lettore multimediale`,shortEn:`Player`,shortIt:`Lettore`,aliases:[]},{id:`alarm-panel`,key:`uiLibrary.deviceMeta.noun.type.alarmPanel`,en:`Alarm panel`,it:`Pannello allarme`,shortEn:`Alarm`,shortIt:`Allarme`,aliases:[]},{id:`control`,key:`uiLibrary.deviceMeta.noun.type.control`,en:`Control`,it:`Controllo`,shortEn:`Control`,shortIt:`Controllo`,aliases:[]},{id:`presence`,key:`uiLibrary.deviceMeta.noun.type.presence`,en:`Presence`,it:`Presenza`,shortEn:`Presence`,shortIt:`Presenza`,aliases:[]},{id:`weather`,key:`uiLibrary.deviceMeta.noun.type.weather`,en:`Weather`,it:`Meteo`,shortEn:`Weather`,shortIt:`Meteo`,aliases:[]},{id:`vacuum`,key:`uiLibrary.deviceMeta.noun.type.vacuum`,en:`Vacuum`,it:`Aspirapolvere`,shortEn:`Vacuum`,shortIt:`Aspirapolvere`,aliases:[]},{id:`lawn-mower`,key:`uiLibrary.deviceMeta.noun.type.lawnMower`,en:`Lawn mower`,it:`Tagliaerba`,shortEn:`Mower`,shortIt:`Tagliaerba`,aliases:[]},{id:`container`,key:`uiLibrary.deviceMeta.noun.type.container`,en:`Container`,it:`Contenitore`,shortEn:`Container`,shortIt:`Contenitore`,aliases:[]},{id:`image`,key:`uiLibrary.deviceMeta.noun.type.image`,en:`Image`,it:`Immagine`,shortEn:`Image`,shortIt:`Immagine`,aliases:[]},{id:`pet-feeder`,key:`uiLibrary.deviceMeta.noun.type.petFeeder`,en:`Pet feeder`,it:`Distributore di cibo per animali`,shortEn:`Feeder`,shortIt:`Distributore`,aliases:[]},{id:`dishwasher`,key:`uiLibrary.deviceMeta.noun.type.dishwasher`,en:`Dishwasher`,it:`Lavastoviglie`,shortEn:`Dishwasher`,shortIt:`Lavastoviglie`,aliases:[]}],bae={id:``,key:`uiLibrary.deviceMeta.noun.fallback`,en:`Device`,it:`Dispositivo`,shortEn:`Device`,shortIt:`Dispositivo`,aliases:[]};function sj(e,t){if(!(t===null||t.length===0))return e.find(e=>e.id===t)}function cj(e,t){if(e!==null){let t=sj(aj,e);if(t!==void 0)return t}return sj(oj,t)??bae}function xae(e,t){let n=[],r=[sj(aj,e),sj(oj,t)];for(let e of r)e!==void 0&&n.push(e.en,e.it,e.shortEn,e.shortIt,...e.aliases);return n}function lj(e,t,n){let r=ZA(e);return r.length===0?!0:xae(t,n).some(e=>ZA(e)===r)}function uj(e){return{shortNoun(t,n){let r=cj(t,n);return e===`it`?r.shortIt:r.shortEn},isStockPhrase(e,t,n){return lj(e,t,n)}}}function dj(){let e=q();return{shortNoun(t,n){let r=cj(t,n);return e(r.key,r.shortEn)},isStockPhrase(e,t,n){return lj(e,t,n)}}}function Sae(e){return{id:e,name:`#${String(e)}`,type:`unknown`,stableId:``,role:null,parentDeviceId:null}}function Cae(e,t){let n=e.parentDeviceId;return n==null?null:t.byId.get(n)??Sae(n)}function wae(e,t){let n=e.parentDeviceId;if(n==null)return[];let r=t.childIds.get(n)??[],i=[];for(let e of r){let n=t.byId.get(e);n!==void 0&&i.push(n)}return i.some(t=>t.id===e.id)||i.push(e),i}function fj(e,t,n,r,i){let a=n?.byId.get(e.id)??e;return a.parentDeviceId!=null&&n===null&&i?.parent===void 0?a.name:ij(a,t,{parent:i?.parent===void 0?n===null?null:Cae(a,n):i.parent,siblings:i?.siblings??(n===null?[]:wae(a,n))},r)}function pj(e,t,n){return fj(e,t,KA(),dj(),n)}function mj(e,t,n){let r=KA(),i=dj();if(r===null)return n??`#${String(e)}`;let a=r.byId.get(e);return a===void 0?`#${String(e)}`:fj(a,t,r,i)}function hj({device:e,form:t,parent:n,siblings:r,className:i,testId:a}){let o=pj(e,t,{...n===void 0?{}:{parent:n},...r===void 0?{}:{siblings:r}});return v(`span`,{className:i,title:o,"data-testid":a,children:o})}E();function gj(e){let t=Rn(),n=p(()=>e?JSON.stringify(e):``,[e]),[r,i]=C(()=>t.listDevices(e));return b(()=>{let n=()=>{i(t.listDevices(e))};n();let r=null,a=null;try{r=t.onDeviceAdded(n),a=t.onDeviceRemoved(n)}catch{}let o=t.subscribeConnectionEvents(e=>{e===`connected`&&n()});return()=>{r?.(),a?.(),o()}},[t,e,n]),r}function _j(e){let t=Rn(),[n,r]=C(()=>e===null?null:t.getDevice(e));return b(()=>{if(e===null){r(null);return}let n=()=>{r(t.getDevice(e))};n();let i=null,a=null;try{i=t.onDeviceAdded(n),a=t.onDeviceRemoved(n)}catch{}let o=t.subscribeConnectionEvents(e=>{e===`connected`&&n()});return()=>{i?.(),a?.(),o()}},[t,e]),n}var vj=.02;function yj(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function bj(e){if(!yj(e))return null;let{x:t,y:n,width:r,height:i}=e;return typeof t!=`number`||typeof n!=`number`||typeof r!=`number`||typeof i!=`number`||t<0||n<0||r<=0||i<=0||t+r>1||n+i>1?null:{x:t,y:n,width:r,height:i}}function xj(e){if(!yj(e))return null;let t=e.deviceId;if(typeof t!=`number`||!Number.isInteger(t))return null;let n=bj(e.source),r=bj(e.cell);return n===null||r===null?null:{deviceId:t,source:n,cell:r}}function Sj(e){if(!yj(e))return null;let t=e.profile,n=e.offered,r=e.missingSources;if(t!==`high`&&t!==`mid`&&t!==`low`||typeof n!=`boolean`||!Array.isArray(r))return null;let i=[];for(let e of r){if(typeof e!=`number`||!Number.isInteger(e))return null;i.push(e)}return{profile:t,offered:n,missingSources:i,canvas:typeof e.canvas==`string`?e.canvas:``,published:typeof e.published==`boolean`?e.published:n}}function Cj(e){if(e===null)return null;if(!yj(e))return`unreadable`;let{instanceId:t,deviceId:n,name:r,fps:i,cells:a,profiles:o}=e;if(typeof t!=`string`||typeof n!=`number`||typeof r!=`string`||typeof i!=`number`||!Array.isArray(a)||!Array.isArray(o))return`unreadable`;let s=[];for(let e of a){let t=xj(e);if(t===null)return`unreadable`;s.push(t)}let c=[];for(let e of o){let t=Sj(e);if(t===null)return`unreadable`;c.push(t)}return{instanceId:t,deviceId:n,name:r,fps:i,cells:s,profiles:c}}function wj(e){let t=Math.min(1,Math.max(vj,e.width)),n=Math.min(1,Math.max(vj,e.height));return{x:Math.min(1-t,Math.max(0,e.x)),y:Math.min(1-n,Math.max(0,e.y)),width:t,height:n}}function Tj(e,t,n){return wj({...e,x:e.x+t,y:e.y+n})}function Ej(e,t,n,r){let i=t===`nw`||t===`w`||t===`sw`,a=t===`ne`||t===`e`||t===`se`,o=t===`nw`||t===`n`||t===`ne`,s=t===`sw`||t===`s`||t===`se`,c=e.x,l=e.x+e.width,u=e.y,d=e.y+e.height;return i&&(c=Math.min(l-vj,Math.max(0,c+n))),a&&(l=Math.max(c+vj,Math.min(1,l+n))),o&&(u=Math.min(d-vj,Math.max(0,u+r))),s&&(d=Math.max(u+vj,Math.min(1,d+r))),wj({x:c,y:u,width:l-c,height:d-u})}function Dj(e){if(!Number.isFinite(e)||e<=0)return[];let t=Math.floor(e),n=Math.ceil(Math.sqrt(t)),r=Math.ceil(t/n),i=[],a=0;for(let e=0;e<r;e++){let o=Math.min(n,t-a),s=1/r,c=1/o;for(let t=0;t<o;t++)i.push({x:t*c,y:e*s,width:c,height:s});a+=o}return i}E();var Oj={x:0,y:0,width:1,height:1},kj=16,Aj={type:J.Camera},jj={touchAction:`none`},Mj=`absolute flex h-6 w-6 items-center justify-center`,Nj=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],Pj={nw:`-top-3 -left-3 cursor-nw-resize`,n:`-top-3 left-1/2 -translate-x-1/2 cursor-n-resize`,ne:`-top-3 -right-3 cursor-ne-resize`,e:`top-1/2 -right-3 -translate-y-1/2 cursor-e-resize`,se:`-bottom-3 -right-3 cursor-se-resize`,s:`-bottom-3 left-1/2 -translate-x-1/2 cursor-s-resize`,sw:`-bottom-3 -left-3 cursor-sw-resize`,w:`top-1/2 -left-3 -translate-y-1/2 cursor-w-resize`};function Fj(e){e.currentTarget.setPointerCapture(e.pointerId)}function Ij(e,t,n){return e.mode===`move`?Tj(e.origin,t,n):Ej(e.origin,e.mode,t,n)}function Lj({deviceId:e}){let t=q(),n=Rn(),r=p(()=>n.listDeviceInfos(Aj),[n,gj(Aj)]),[i,a]=C(void 0),[o,s]=C(null),[l,u]=C(!1),[d,f]=C(null),[m,h]=C(0),[g,y]=C(null),x=Ge(n.trpcClient,e),S=_(async()=>{let e=x?.cameraGridLayout;if(!e)return;let t=Cj(await e.getLayout({}));a(t),s(t===null||t===`unreadable`?null:t)},[x]);b(()=>{if(x){if(!x.cameraGridLayout){a(null);return}S().catch(()=>{a(`unreadable`)})}},[x,S]);let w=_(async e=>{let t=x?.cameraGridLayout;if(!(o===null||!t)){u(!0),f(null);try{let n=Cj(await t.saveLayout({name:o.name,fps:o.fps,cells:o.cells.map(e=>({...e})),...e?.publishedProfiles===void 0?{}:{publishedProfiles:[...e.publishedProfiles]}}));n!==null&&n!==`unreadable`&&(a(n),s(n))}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}}},[x,o]),T=_((e,t)=>{s(n=>n===null?n:{...n,cells:n.cells.map((n,r)=>r===e?{...n,...t}:n)})},[]),E=p(()=>{let e=i==null||i===`unreadable`?[]:i.profiles;for(let t of e){if(!t.offered)continue;let[e,n]=t.canvas.split(`x`).map(Number);if(e!==void 0&&n!==void 0&&e>0&&n>0)return e/n}return 16/9},[i]);if(i===void 0)return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),children:c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-foreground-subtle`,children:[v(Un,{className:`h-3 w-3 animate-spin`}),` `,t(`uiLibrary.cameraGridLayout.loading`,`Loading the layout…`)]})});if(i===`unreadable`)return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),children:c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-danger`,children:[v(Di,{className:`h-3 w-3`}),t(`uiLibrary.cameraGridLayout.unreadable`,`The Camera Grids addon did not answer, so this layout is unknown — not empty.`)]})});if(i===null||o===null)return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),children:v(`div`,{className:`text-[10.5px] text-foreground-subtle`,children:t(`uiLibrary.cameraGridLayout.notGrid`,`This camera is not a grid.`)})});let D=e=>{if(g===null)return;let t=e.currentTarget.getBoundingClientRect();if(t.width===0||t.height===0||g.target!==`cell`)return;let n=(e.clientX-g.startX)/t.width,r=(e.clientY-g.startY)/t.height;T(g.index,{cell:Ij(g,n,r)})};return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),headerRight:c(`div`,{className:`flex items-center gap-1`,children:[c(`button`,{type:`button`,disabled:o.cells.length===0,title:t(`uiLibrary.cameraGridLayout.autofillTitle`,`Tile every cell over the whole canvas, leaving no gap`),onClick:()=>{let e=Dj(o.cells.length);s({...o,cells:o.cells.map((t,n)=>({...t,cell:e[n]??t.cell}))})},className:`flex items-center gap-1 rounded border border-border px-2 py-0.5 text-[10px] uppercase`,children:[v(xi,{className:`h-3 w-3`}),` `,t(`uiLibrary.cameraGridLayout.autofill`,`Autofill`)]}),c(`button`,{type:`button`,disabled:l,onClick:()=>void w(),className:`flex items-center gap-1 rounded border border-border px-2 py-0.5 text-[10px] uppercase`,children:[l?v(Un,{className:`h-3 w-3 animate-spin`}):v(Oi,{className:`h-3 w-3`}),t(`uiLibrary.cameraGridLayout.save`,`Save`)]})]}),children:c(`div`,{className:`flex flex-col gap-3`,children:[d!==null&&c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-danger`,children:[v(Di,{className:`h-3 w-3`}),` `,d]}),c(`div`,{className:`relative w-full select-none overflow-hidden rounded border border-border bg-black`,style:{aspectRatio:String(E),...jj},onPointerMove:D,onPointerUp:()=>{y(null)},onPointerCancel:()=>{y(null)},children:[o.cells.map((e,t)=>v(zj,{cell:e,selected:t===m,onSelect:()=>{h(t)},onDragStart:(n,r)=>{h(t),y({index:t,target:`cell`,mode:n,startX:r.clientX,startY:r.clientY,origin:e.cell})}},`${String(e.deviceId)}-${String(t)}`)),o.cells.length===0&&v(`div`,{className:`absolute inset-0 flex items-center justify-center text-[10.5px] text-foreground-subtle`,children:t(`uiLibrary.cameraGridLayout.noCells`,`No cells yet — add one below.`)})]}),c(`div`,{className:`grid grid-cols-4 gap-2 text-[10.5px]`,children:[v(Gj,{label:`FPS`,value:o.fps,onChange:e=>{s({...o,fps:e})}}),c(`button`,{type:`button`,disabled:o.cells.length>=kj,onClick:()=>{let t=r.find(t=>t.id!==e);t&&(s({...o,cells:[...o.cells,{deviceId:t.id,source:Oj,cell:wj({x:.1,y:.1,width:.4,height:.4})}]}),h(o.cells.length))},className:`flex items-center justify-center gap-1 self-end rounded border border-border px-2 py-1 uppercase`,children:[v(Se,{className:`h-3 w-3`}),` `,t(`uiLibrary.cameraGridLayout.addCell`,`Cell`)]})]}),v(Rj,{offers:i.profiles,cameras:r,onToggle:e=>{if(o===null)return;let t=i.profiles.filter(e=>e.published).map(e=>e.profile);w({publishedProfiles:t.includes(e)?t.filter(t=>t!==e):[...t,e]})}}),o.cells[m]!==void 0&&v(Vj,{cell:o.cells[m],index:m,cameras:r.filter(t=>t.id!==e),onChange:e=>{T(m,e)},onRemove:()=>{s({...o,cells:o.cells.filter((e,t)=>t!==m)}),h(0)}})]})})}function Rj({offers:e,cameras:t,onToggle:n}){let r=q(),i=e=>t.find(t=>t.id===e)?.name??`#${String(e)}`;return c(`div`,{className:`flex flex-col gap-1 rounded border border-border p-2 text-[10.5px]`,children:[v(`span`,{className:`uppercase text-foreground-subtle`,children:r(`uiLibrary.cameraGridLayout.published`,`Published profiles`)}),e.map(e=>c(`div`,{className:`flex items-baseline gap-2`,children:[v(`input`,{type:`checkbox`,checked:e.published,disabled:!e.offered,"aria-label":r(`uiLibrary.cameraGridLayout.publish`,`publish {{profile}}`,{profile:e.profile}),onChange:()=>{n(e.profile)}}),v(`span`,{className:`w-10 uppercase`,children:e.profile}),e.offered?c(`span`,{className:`text-foreground-subtle`,children:[e.canvas,` —`,` `,e.published?r(`uiLibrary.cameraGridLayout.composed`,`composed from every source’s {{profile}}`,{profile:e.profile}):r(`uiLibrary.cameraGridLayout.serviceable`,`serviceable, not published`)]}):v(`span`,{className:`text-danger`,children:e.missingSources.length===0?r(`uiLibrary.cameraGridLayout.noCellsOffer`,`not offered — this grid has no cells yet`):r(`uiLibrary.cameraGridLayout.missing`,`not offered — no {{profile}} on {{sources}}`,{profile:e.profile,sources:e.missingSources.map(i).join(`, `)})})]},e.profile))]})}function zj({cell:e,selected:t,onSelect:n,onDragStart:r}){let{src:i}=Te(e.deviceId,{width:640}),a=`${String(100/e.source.width)}% ${String(100/e.source.height)}%`,o=e.source.width>=1&&e.source.height>=1?`center`:`${String(e.source.x/Math.max(1e-6,1-e.source.width)*100)}% ${String(e.source.y/Math.max(1e-6,1-e.source.height)*100)}%`;return v(`div`,{role:`presentation`,onPointerDown:e=>{n(),Fj(e),r(`move`,e)},className:`absolute cursor-move border ${t?`border-accent`:`border-border/60`}`,style:{...jj,left:`${String(e.cell.x*100)}%`,top:`${String(e.cell.y*100)}%`,width:`${String(e.cell.width*100)}%`,height:`${String(e.cell.height*100)}%`,backgroundImage:i===null?void 0:`url(${i})`,backgroundSize:a,backgroundPosition:o,backgroundRepeat:`no-repeat`},children:t&&Nj.map(e=>v(`div`,{role:`presentation`,onPointerDown:t=>{t.stopPropagation(),Fj(t),r(e,t)},className:`${Mj} ${Pj[e]}`,style:jj,children:v(`span`,{className:`h-2.5 w-2.5 bg-accent`})},e))})}function Bj({camera:e}){return pj(e,`compact`)}function Vj({cell:e,index:t,cameras:n,onChange:r,onRemove:i}){let a=q();return c(`div`,{className:`flex flex-col gap-2 rounded border border-border p-2 text-[10.5px]`,children:[c(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`uppercase text-foreground-subtle`,children:a(`uiLibrary.cameraGridLayout.cellN`,`Cell {{index}}`,{index:t+1})}),v(`button`,{type:`button`,onClick:i,className:`text-danger`,children:v(Pe,{className:`h-3 w-3`})})]}),c(`label`,{className:`flex items-center gap-2`,children:[v(`span`,{className:`w-16 text-foreground-subtle`,children:a(`uiLibrary.cameraGridLayout.source`,`Source`)}),v(`select`,{value:String(e.deviceId),onChange:e=>{r({deviceId:Number(e.target.value)})},className:`flex-1 rounded border border-border bg-transparent px-1 py-0.5`,children:n.map(e=>v(`option`,{value:String(e.id),children:v(Bj,{camera:e})},e.id))})]}),v(Hj,{deviceId:e.deviceId,source:e.source,onChange:e=>{r({source:e})}}),v(`div`,{className:`grid grid-cols-2 gap-x-3 gap-y-1.5`,children:[`x`,`y`,`width`,`height`].map(t=>v(Wj,{label:Uj(a,t),value:e.source[t],onChange:n=>{r({source:wj({...e.source,[t]:n})})}},t))})]})}function Hj({deviceId:e,source:t,onChange:n}){let r=q(),{src:i}=Te(e,{width:640}),[a,o]=C(null),[s,l]=C(null),u=e=>{if(a===null)return;let t=e.currentTarget.getBoundingClientRect();t.width===0||t.height===0||n(Ij({...a,index:0,target:`source`},(e.clientX-a.startX)/t.width,(e.clientY-a.startY)/t.height))},d=t.x===0&&t.y===0&&t.width===1&&t.height===1;return c(`div`,{className:`flex flex-col gap-1`,children:[c(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`uppercase text-foreground-subtle`,children:r(`uiLibrary.cameraGridLayout.visiblePart`,`Visible part of the camera`)}),c(`button`,{type:`button`,disabled:d,onClick:()=>{n(Oj)},className:`flex items-center gap-1 rounded border border-border px-1.5 py-0.5 uppercase disabled:opacity-40`,children:[v(Rr,{className:`h-3 w-3`}),` `,r(`uiLibrary.cameraGridLayout.wholeFrame`,`Whole frame`)]})]}),c(`div`,{className:`relative w-full select-none overflow-hidden rounded border border-border bg-black`,style:{aspectRatio:String(s??16/9),...jj},onPointerMove:u,onPointerUp:()=>{o(null)},onPointerCancel:()=>{o(null)},children:[i===null?v(`div`,{className:`absolute inset-0 flex items-center justify-center text-[10px] text-foreground-subtle`,children:r(`uiLibrary.cameraGridLayout.noSnapshot`,`No snapshot from this camera yet — the numbers below still apply.`)}):v(`img`,{src:i,alt:``,className:`absolute inset-0 h-full w-full`,onLoad:e=>{let{naturalWidth:t,naturalHeight:n}=e.currentTarget;t>0&&n>0&&l(t/n)}}),v(`div`,{className:`pointer-events-none absolute inset-0 bg-black/55`}),v(`div`,{role:`presentation`,onPointerDown:e=>{Fj(e),o({mode:`move`,startX:e.clientX,startY:e.clientY,origin:t})},className:`absolute cursor-move border border-accent`,style:{...jj,left:`${String(t.x*100)}%`,top:`${String(t.y*100)}%`,width:`${String(t.width*100)}%`,height:`${String(t.height*100)}%`,backgroundImage:i===null?void 0:`url(${i})`,backgroundSize:`${String(100/t.width)}% ${String(100/t.height)}%`,backgroundPosition:t.width>=1&&t.height>=1?`center`:`${String(t.x/Math.max(1e-6,1-t.width)*100)}% ${String(t.y/Math.max(1e-6,1-t.height)*100)}%`},children:Nj.map(e=>v(`div`,{role:`presentation`,onPointerDown:n=>{n.stopPropagation(),Fj(n),o({mode:e,startX:n.clientX,startY:n.clientY,origin:t})},className:`${Mj} ${Pj[e]}`,style:jj,children:v(`span`,{className:`h-2.5 w-2.5 bg-accent`})},e))})]})]})}function Uj(e,t){switch(t){case`x`:return e(`uiLibrary.cameraGridLayout.cropX`,`Crop x`);case`y`:return e(`uiLibrary.cameraGridLayout.cropY`,`Crop y`);case`width`:return e(`uiLibrary.cameraGridLayout.cropWidth`,`Crop width`);case`height`:return e(`uiLibrary.cameraGridLayout.cropHeight`,`Crop height`)}}function Wj({label:e,value:t,onChange:n}){let r=Math.round(t*100)/100;return c(`label`,{className:`flex flex-col gap-0.5`,children:[c(`span`,{className:`flex items-baseline justify-between text-foreground-subtle`,children:[v(`span`,{children:e}),v(`input`,{type:`number`,min:0,max:1,step:.01,value:r,onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&n(t)},className:`w-12 rounded border border-border bg-transparent px-1 py-0.5 text-right`})]}),v(`input`,{type:`range`,min:0,max:1,step:.005,value:t,onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&n(t)},style:jj,className:`h-5 w-full accent-accent`})]})}function Gj({label:e,value:t,step:n=1,onChange:r}){return c(`label`,{className:`flex flex-col gap-0.5`,children:[v(`span`,{className:`text-foreground-subtle`,children:e}),v(`input`,{type:`number`,step:n,value:t,onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&r(t)},className:`rounded border border-border bg-transparent px-1 py-0.5`})]})}function Kj(e){let t=Ge(e.trpc,e.deviceId),n=Be(t===null?void 0:e.slice(t)),r=t===null?void 0:e.cap(t),i=Be(t===null?void 0:t.state.deviceStatus),a=i?.online??!0,o=a?null:i?.lastChangedAt??null;return{dev:t,cap:r,slice:n,available:(e.requireFeature===void 0||(e.deviceFeatures??[]).includes(e.requireFeature))&&r!==void 0&&n!==void 0&&a,online:a,offlineSince:o}}E();var qj=`open`,Jj=`closed`;function Yj(e){if(e===null||typeof window>`u`)return null;try{let t=window.localStorage.getItem(e);return t===qj?!0:t===Jj?!1:null}catch{return null}}function Xj(e,t){if(!(e===null||typeof window>`u`))try{window.localStorage.setItem(e,t?qj:Jj)}catch{}}function Zj(e){let[t,n]=C(()=>({key:e,open:Yj(e)})),r=t.key===e?t:{key:e,open:Yj(e)};r!==t&&n(r);let i=_(t=>{n({key:e,open:t}),Xj(e,t)},[e]);return[r.open,i]}var Qj={ok:{variant:`success`,barClass:`bg-success`,labelKey:`uiLibrary.consumableLevel.ok`,labelFallback:`OK`},low:{variant:`warning`,barClass:`bg-warning`,labelKey:`uiLibrary.consumableLevel.low`,labelFallback:`Low`},empty:{variant:`danger`,barClass:`bg-danger`,labelKey:`uiLibrary.consumableLevel.empty`,labelFallback:`Empty`},full:{variant:`warning`,barClass:`bg-warning`,labelKey:`uiLibrary.consumableLevel.full`,labelFallback:`Full`},unknown:{variant:`neutral`,barClass:`bg-foreground-subtle`,labelKey:`uiLibrary.consumableLevel.unknown`,labelFallback:`Unknown`}};function $j(e){return Qj[e??`unknown`]}function eM(e){return $j(e).variant}function tM(e){return $j(e).barClass}function nM(e,t){let n=$j(e);return t(n.labelKey,n.labelFallback)}function rM(e){return e.status===`full`||e.status===`replace`?`full`:e.level===null?e.status===null?null:`ok`:e.level>=85?`full`:`ok`}function iM(e){if(e.level!==null)return e.level<=0||e.status===`empty`?`empty`:e.level<=15||e.status===`replace`||e.status===`low`?`low`:`ok`;switch(e.status){case`replace`:case`low`:return`low`;case`empty`:return`empty`;case`ok`:case`full`:return`ok`;case null:return null}}function aM(e){return wa(e)===`waste`?rM(e):iM(e)}var oM=ia.exclude([`full`]).options;function sM(e){if(e.kind!==`enum`||e.enumValues===void 0)return!1;let t=oM;return e.enumValues.length===t.length&&t.every(t=>e.enumValues?.includes(t))}function cM(e){let t=ia.safeParse(e);return t.success?t.data:null}function lM({level:e,name:t,label:n,size:r=`md`,className:i}){let a=q(),o=n??nM(e,a);return v(zk,{variant:eM(e),size:r,className:i,"data-level":e??`unknown`,children:t===void 0?o:`${t} · ${o}`})}E();var uM=D(({className:e,...t},n)=>v(`div`,{ref:n,className:$(`animate-pulse bg-surface-hover rounded-md h-4 w-full`,e),...t}));uM.displayName=`Skeleton`;function dM(e,t){if(t.value===null)return`—`;if(t.kind===`count`)return e(`uiLibrary.consumablesPanel.cycles`,{one:`{{count}} cycle`,other:`{{count}} cycles`},{count:t.value});let n=ma({value:t.value,quantity:`duration`,precision:0});return n.unit.length===0?n.text:`${n.text} ${n.unit}`}function fM(e){try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function pM(e){return e===`low`||e===`empty`||e===`full`}function mM(e){return Math.max(0,Math.min(100,e))}function hM({item:e,warn:t,children:n}){return v(`div`,{"data-form":Ma(e),className:`flex gap-2.5 rounded-md border p-3 ${t?`border-warning/40 bg-warning/5`:`border-border-subtle`}`,children:n})}function gM({item:e,warn:t}){return v(`span`,{className:`truncate text-xs font-semibold ${t?`text-warning`:`text-foreground`}`,children:e.label})}function _M({item:e,busy:t,canReset:n,onReset:r}){let i=q(),a=aM(e),o=pM(a);return v(hM,{item:e,warn:o,children:c(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[v(gM,{item:e,warn:o}),e.level===null?v(lM,{level:a,size:`sm`,className:`w-fit`,label:e.status===`replace`?i(`uiLibrary.consumablesPanel.replace`,`Replace`):void 0}):c(`div`,{className:`flex items-center gap-2`,children:[v(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-surface-hover`,children:v(`div`,{className:`h-full rounded-full ${tM(a)} transition-all`,style:{width:`${mM(e.level)}%`}})}),c(`span`,{className:`text-[10px] font-medium tabular-nums text-foreground-subtle`,children:[Math.round(e.level),`%`]})]}),e.remaining&&v(`span`,{className:`text-[10px] font-medium tabular-nums text-foreground-subtle`,children:dM(i,e.remaining)}),e.lastResetAt!==null&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.consumablesPanel.replacedOn`,`Replaced {{date}}`,{date:fM(e.lastResetAt)})}),e.resettable&&v(gA,{type:`button`,variant:`outline`,size:`sm`,className:`w-fit`,onClick:()=>r(e.key),disabled:t||!n,children:i(`uiLibrary.consumablesPanel.replaced`,`Replaced`)})]})})}function vM({item:e}){let t=aM(e),n=pM(t);return c(hM,{item:e,warn:n,children:[v(`div`,{className:`relative h-10 w-3 shrink-0 overflow-hidden rounded-sm border border-border bg-surface-hover`,"data-testid":`consumable-gauge`,children:e.level!==null&&v(`div`,{className:`absolute inset-x-0 bottom-0 ${tM(t)} transition-all`,style:{height:`${mM(e.level)}%`}})}),c(`div`,{className:`flex min-w-0 flex-1 flex-col justify-center gap-1`,children:[v(gM,{item:e,warn:n}),c(`div`,{className:`flex items-center gap-2`,children:[v(lM,{level:t,size:`sm`,className:`w-fit`}),e.level!==null&&c(`span`,{className:`text-[10px] font-medium tabular-nums text-foreground-subtle`,children:[Math.round(e.level),`%`]})]})]})]})}var yM={full:3,ok:3,low:1,empty:0,unknown:0},bM=[0,1,2];function xM(e,t){if(e===`low`)return t(`uiLibrary.consumablesPanel.refillSoon`,`Refill soon`);if(e===`empty`)return t(`uiLibrary.consumablesPanel.refillNow`,`Refill now`)}function SM({item:e}){let t=q(),n=aM(e),r=pM(n),i=yM[n??`unknown`];return c(hM,{item:e,warn:r,children:[v(Xt,{className:`mt-0.5 h-4 w-4 shrink-0 ${r?`text-warning`:`text-foreground-subtle`}`}),c(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[v(gM,{item:e,warn:r}),c(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v(`div`,{className:`flex gap-0.5`,"data-testid":`consumable-steps`,"data-filled":i,children:bM.map(e=>v(`span`,{className:`h-1.5 w-3 rounded-full ${e<i?tM(n):`bg-surface-hover`}`},e))}),v(lM,{level:n,size:`sm`,className:`whitespace-nowrap`,label:xM(n,t)})]})]})]})}function CM(e){switch(Ma(e.item)){case`part`:return v(_M,{...e});case`tank`:case`bin`:return v(vM,{item:e.item});case`product`:return v(SM,{item:e.item})}}var wM={empty:3,full:2,low:1};function TM(e){return e===`low`||e===`empty`||e===`full`}function EM(e){if(e.length===0)return{kind:`none`,needsAttention:!1};let t=[],n=0,r=0;for(let i of e){let e=aM(i);TM(e)?t.push({label:i.label,level:e,replace:i.status===`replace`}):e===`ok`?n+=1:r+=1}let i=[...t].sort((e,t)=>wM[t.level]-wM[e.level])[0];return i===void 0?r===0?{kind:`ok`,needsAttention:!1,count:n}:{kind:`partial`,needsAttention:!1,ok:n,unknown:r}:{kind:`attention`,needsAttention:!0,count:t.length,worst:i}}E();function DM(e){return`camstack.device.${String(e)}.consumables.open`}function OM({summary:e,t}){switch(e.kind){case`none`:return v(zk,{variant:`neutral`,size:`sm`,children:t(`uiLibrary.consumablesPanel.noneReported`,`None reported`)});case`ok`:return v(zk,{variant:`success`,size:`sm`,children:t(`uiLibrary.consumablesPanel.allOk`,`All OK`)});case`partial`:return v(zk,{variant:`neutral`,size:`sm`,children:t(`uiLibrary.consumablesPanel.okAndUnknown`,`{{ok}} OK · {{unknown}} unknown`,{ok:e.ok,unknown:e.unknown})});case`attention`:return e.count===1?v(lM,{level:e.worst.level,name:e.worst.label,size:`sm`,label:e.worst.replace?t(`uiLibrary.consumablesPanel.replace`,`Replace`):void 0}):v(zk,{variant:eM(e.worst.level),size:`sm`,children:t(`uiLibrary.consumablesPanel.needAttention`,{one:`{{count}} needs attention`,other:`{{count}} need attention`},{count:e.count})})}}function kM({deviceId:e}){let t=q(),n=Rn(),r=Number.isFinite(e),{cap:i,slice:a,available:o}=Kj({trpc:n.trpcClient,deviceId:r?e:null,cap:e=>e.consumables,slice:e=>e.state.consumables}),[s,c]=C(null),[l,u]=Zj(r?DM(e):null),d=_(async e=>{if(i){c(e);try{await i.reset({key:e})}catch(e){console.error(`consumables.reset failed`,e)}finally{c(null)}}},[i]),f=a===void 0?null:EM(a.items),p=l??f?.needsAttention??!1,m=v(uM,{className:p?`h-10 w-full`:`h-4 w-16`,"data-testid":`consumables-loading`,"aria-label":t(`uiLibrary.consumablesPanel.loading`,`Reading consumables…`)});return v($t,{title:t(`uiLibrary.consumablesPanel.title`,`Consumables`),icon:v(vt,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3 overflow-y-auto`,collapsible:!0,open:p,onOpenChange:u,headerRight:p?void 0:f===null?m:v(OM,{summary:f,t}),children:a===void 0?m:a.items.length===0?v(`p`,{className:`text-[11px] text-foreground-subtle italic leading-relaxed`,children:t(`uiLibrary.consumablesPanel.empty`,`No consumables reported.`)}):v(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:a.items.map(e=>v(CM,{item:e,busy:s===e.key,canReset:o,onReset:e=>void d(e)},e.key))})})}function AM(e){return e===null?`absent`:e.providers.length>0?`present`:`absent`}function jM(e){let t=X.capabilities.getCapability.useQuery({name:e});return t.status===`pending`?`pending`:t.status===`error`?`unknown`:AM(t.data)}var MM=[`object`,`motion`,`audio`];function NM(e,t,n){let r=[];for(let i of e){let e={motion:i.motion,object:i.object,audio:i.audio},a=e.motion+e.object+e.audio;if(a===0)continue;let o=Math.floor((i.bucketStart-t)/n),s=null,c=-1;for(let t of MM)e[t]>c&&(c=e[t],s=t);r.push({index:o,startMs:i.bucketStart,endMs:i.bucketStart+n,counts:e,total:a,dominant:s})}return r.toSorted((e,t)=>e.index-t.index)}function PM(e,t){return e<t.startMs?t.startMs-e:e>t.endMs?e-t.endMs:0}function FM(e,t){if(t.length===0)return null;let n=t.find(t=>e>=t.startMs&&e<=t.endMs);if(n)return{fromMs:e,toMs:n.endMs};let r=null,i=1/0;for(let n of t){let t=PM(e,n);t<i&&(i=t,r=n)}return r?{fromMs:r.startMs,toMs:r.endMs}:null}function IM(e,t,n){let r=n-t;if(r<=0)return 0;let i=(e-t)/r*100;return i<0?0:i>100?100:i}function LM(e,t){let n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0).getTime(),r=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1,0,0,0,0).getTime();return{fromMs:n,toMs:Math.max(n,Math.min(r,t))}}var RM=[24*36e5,12*36e5,6*36e5,36e5,15*6e4];function zM(e,t,n){if(t>=e.toMs-e.fromMs)return e;let r=Math.min(Math.max(n,e.fromMs+t),e.toMs);return{fromMs:r-t,toMs:r}}function BM(e,t,n){let r=e.toMs-e.fromMs,i=e.fromMs+n,a=e.toMs+n;return i<t.fromMs&&(i=t.fromMs,a=i+r),a>t.toMs&&(a=t.toMs,i=a-r),{fromMs:i,toMs:a}}var VM=[15*6e4,5*6e4,6e4,3e4,15e3,5e3];function HM(e){let t=e/100;for(let e of VM)if(e<=t)return e;return VM[VM.length-1]??5e3}function UM(e,t,n){if(n<=1)return[{pct:0,label:new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}];let r=[];for(let i=0;i<n;i++){let a=e+i/(n-1)*(t-e),o=IM(a,e,t),s=new Date(a).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});r.push({pct:o,label:s})}return r}var WM=2;function GM(e,t){if(t<=1)return[{kind:`page`,n:1}];if(t<=7){let e=[];for(let n=1;n<=t;n++)e.push({kind:`page`,n});return e}let n=[],r=Math.max(2,e-WM),i=Math.min(t-1,e+WM);n.push({kind:`page`,n:1}),r>2&&n.push({kind:`ellipsis`,side:`left`});for(let e=r;e<=i;e++)n.push({kind:`page`,n:e});return i<t-1&&n.push({kind:`ellipsis`,side:`right`}),n.push({kind:`page`,n:t}),n}function KM({currentPage:e,totalItems:t,pageSize:n,onPageChange:r,itemNoun:i}){let a=q();if(t<=n)return null;let o=Math.ceil(t/n),s=(e-1)*n+1,l=Math.min(e*n,t),u=GM(e,o);return c(`div`,{className:`flex items-center justify-between gap-4 flex-wrap pt-2 text-[11px] text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.pagination.showing`,`Showing {{start}}–{{end}} of {{total}} {{noun}}`,{start:s,end:l,total:t,noun:i??a(`uiLibrary.pagination.devices`,`devices`)})}),c(`span`,{className:`inline-flex items-center gap-1`,children:[v(`button`,{type:`button`,"aria-label":a(`uiLibrary.pagination.previous`,`Previous page`),disabled:e===1,onClick:()=>r(e-1),className:$(`inline-flex items-center justify-center h-7 w-7 rounded border border-border bg-surface text-foreground-subtle`,`hover:text-foreground hover:bg-surface-hover transition-colors`,`disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-surface`),children:v(ge,{className:`h-3 w-3`})}),u.map((t,n)=>t.kind===`ellipsis`?v(`span`,{className:`px-1 text-foreground-subtle/60 select-none`,children:`…`},`e-${n}`):v(`button`,{type:`button`,onClick:()=>r(t.n),className:$(`inline-flex items-center justify-center h-7 min-w-7 px-1.5 rounded border text-[10.5px] font-medium transition-colors`,t.n===e?`border-primary/40 bg-primary/10 text-primary`:`border-border bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover`),children:t.n},`p-${t.n}`)),v(`button`,{type:`button`,"aria-label":a(`uiLibrary.pagination.next`,`Next page`),disabled:e===o,onClick:()=>r(e+1),className:$(`inline-flex items-center justify-center h-7 w-7 rounded border border-border bg-surface text-foreground-subtle`,`hover:text-foreground hover:bg-surface-hover transition-colors`,`disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-surface`),children:v(It,{className:`h-3 w-3`})})]})]})}function qM({icon:e,title:t,description:n,action:r,className:i}){return c(`div`,{className:$(`flex flex-col items-center justify-center gap-3 py-12`,i),children:[e&&v(e,{className:`h-12 w-12 text-foreground-subtle`,"aria-hidden":`true`}),c(`div`,{className:`flex flex-col items-center gap-1 text-center`,children:[v(`p`,{className:`text-foreground-muted text-sm font-medium`,children:t}),n&&v(`p`,{className:`text-foreground-subtle text-xs max-w-xs`,children:n})]}),r&&v(`div`,{className:`mt-1`,children:r})]})}var JM={danger:{box:`border-danger/40 bg-danger/10`,icon:`text-danger`,title:`text-danger`,message:`text-danger`},warning:{box:`border-amber-500/40 bg-amber-500/10`,icon:`text-amber-600 dark:text-amber-400`,title:`text-amber-700 dark:text-amber-300`,message:`text-amber-700 dark:text-amber-300`}};function YM({message:e,title:t,onRetry:n,action:r,variant:i=`danger`,className:a}){let o=q(),s=JM[i],l=i===`warning`?Ii:Di;return c(`div`,{role:`alert`,className:$(`flex items-start gap-2.5 rounded border px-3 py-2.5`,s.box,a),children:[v(l,{className:$(`h-4 w-4 mt-0.5 shrink-0`,s.icon),"aria-hidden":`true`}),c(`div`,{className:`flex-1 min-w-0`,children:[t&&v(`p`,{className:$(`text-xs font-semibold`,s.title),children:t}),v(`div`,{className:$(`text-xs break-words`,s.message,t?`mt-0.5`:``),children:e})]}),r??(n&&c(`button`,{type:`button`,onClick:n,className:$(`shrink-0 inline-flex items-center gap-1 rounded px-2 py-1 text-[11px] font-medium`,`border border-current/30 hover:bg-current/10 transition-colors`,s.message),children:[v(_e,{className:`h-3 w-3`,"aria-hidden":`true`}),o(`uiLibrary.errorBox.retry`,`Retry`)]}))]})}var XM=[`chart-series-a`,`chart-series-b`,`chart-series-c`,`chart-series-d`,`chart-series-e`,`chart-series-f`,`chart-series-g`,`chart-series-h`],ZM=[[],[6,4],[2,3]];function QM(e){let t=Math.max(0,Math.floor(e));return{token:XM[t%XM.length]??`chart-series-a`,dash:ZM[Math.floor(t/XM.length)%ZM.length]??[]}}var $M={"chart-series-a":`bg-chart-series-a`,"chart-series-b":`bg-chart-series-b`,"chart-series-c":`bg-chart-series-c`,"chart-series-d":`bg-chart-series-d`,"chart-series-e":`bg-chart-series-e`,"chart-series-f":`bg-chart-series-f`,"chart-series-g":`bg-chart-series-g`,"chart-series-h":`bg-chart-series-h`,border:`bg-border`},eN={"chart-series-a":`border-chart-series-a`,"chart-series-b":`border-chart-series-b`,"chart-series-c":`border-chart-series-c`,"chart-series-d":`border-chart-series-d`,"chart-series-e":`border-chart-series-e`,"chart-series-f":`border-chart-series-f`,"chart-series-g":`border-chart-series-g`,"chart-series-h":`border-chart-series-h`,border:`border-border`};function tN(e){return $M[e]}function nN(e){return eN[e]}function rN(e,t){if(typeof window>`u`||typeof getComputedStyle!=`function`)return`transparent`;let n=t??document.documentElement,r=getComputedStyle(n).getPropertyValue(`--color-${e}`).trim();return r.length>0?r:`transparent`}var iN=/^#[0-9a-f]{6}$/i;function aN(e,t){let n=Math.min(1,Math.max(0,t));return iN.test(e)?`${e}${Math.round(n*255).toString(16).padStart(2,`0`)}`:`color-mix(in srgb, ${e} ${String(Math.round(n*100))}%, transparent)`}function oN({title:e,actions:t,readoutTime:n,legend:r,summary:i,footer:a,placeholder:o,controls:s,className:l,children:u}){let d=r.length===1?r[0]:void 0;return c(`figure`,{className:$(`min-w-0 m-0`,l),"data-chart-frame":``,children:[c(`div`,{className:`flex items-baseline justify-between gap-2 mb-1 min-w-0`,children:[v(`figcaption`,{className:`text-[10px] uppercase tracking-wider text-foreground-subtle truncate min-w-0`,children:e}),c(`div`,{className:`flex items-center gap-2 shrink-0`,children:[n&&v(`span`,{className:`text-[10px] tabular-nums text-foreground-subtle`,children:n}),d?.value!==void 0&&o===void 0&&v(lN,{entry:d}),t]})]}),o??v(`div`,{role:`img`,"aria-label":i,className:`min-w-0`,children:u}),o===void 0&&s,v(`p`,{className:`sr-only`,children:i}),r.length>1&&o===void 0&&v(`ul`,{className:`flex flex-wrap items-center gap-x-3 gap-y-0.5 mt-1 list-none p-0 m-0`,children:r.map(e=>v(`li`,{className:`min-w-0`,children:v(cN,{entry:e})},e.id))}),a&&v(`div`,{className:`mt-1 text-[10px] text-foreground-subtle`,children:a})]})}function sN({token:e,dashed:t}){return t?v(`span`,{"aria-hidden":`true`,className:$(`inline-block h-0 w-3 border-t-2 border-dashed shrink-0`,nN(e))}):v(`span`,{"aria-hidden":`true`,className:$(`inline-block h-2 w-2 rounded-[2px] shrink-0`,tN(e))})}function cN({entry:e}){return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] min-w-0`,e.muted?`text-foreground-subtle`:`text-foreground-muted`),children:[v(sN,{token:e.token,dashed:e.dashed}),v(`span`,{className:`truncate`,children:e.label}),e.value!==void 0&&v(`span`,{className:`tabular-nums text-foreground`,children:e.value})]})}function lN({entry:e}){return c(`span`,{className:`inline-flex items-center gap-1 text-[11px] tabular-nums text-foreground`,children:[v(sN,{token:e.token,dashed:e.dashed}),e.value]})}function uN({message:e,height:t}){return v(`div`,{className:$(t===`sm`?`h-8`:t===`md`?`h-24`:`h-40`,`flex items-center justify-center rounded border border-dashed border-border text-[10px] text-foreground-subtle text-center px-2`),children:e})}function dN(e){let t=e.map(e=>[...e.points].sort((e,t)=>e.t-t.t)),n=t.map((t,n)=>fN(t,e[n]?.gapMs)),r=new Set;for(let e of t)for(let t of e)r.add(t.t);for(let e of n)for(let t of e)r.add(t);let i=[...r].sort((e,t)=>e-t),a=new Map;i.forEach((e,t)=>a.set(e,t));let o=()=>i.map(()=>void 0),s=[],c=[],l=[];return t.forEach((e,t)=>{let r=o(),i=o(),u=o();for(let e of n[t]??[]){let t=a.get(e);t!==void 0&&(r[t]=null,i[t]=null,u[t]=null)}for(let t of e){let e=a.get(t.t);e!==void 0&&(r[e]=t.v,t.min!==void 0&&(i[e]=t.min),t.max!==void 0&&(u[e]=t.max))}s.push(r),c.push(i),l.push(u)}),{xs:i,ys:s,mins:c,maxs:l}}function fN(e,t){if(t===void 0||!(t>0))return[];let n=[];for(let r=1;r<e.length;r++){let i=e[r-1],a=e[r];i&&a&&a.t-i.t>t&&n.push(i.t+1)}return n}function pN(e){if(e.length===0)return[];let t=null;for(let n of e){let e=mN(n);if(t=t===null?e:hN(t,e),t.length===0)return[]}return t??[]}function mN(e){let t=e.gapMs;if(t===void 0||!(t>0))return[];let n=[...e.points].sort((e,t)=>e.t-t.t),r=[];for(let e=1;e<n.length;e++){let i=n[e-1],a=n[e];i&&a&&a.t-i.t>t&&r.push({from:i.t,to:a.t})}return r}function hN(e,t){let n=[];for(let r of e)for(let e of t){let t=Math.max(r.from,e.from),i=Math.min(r.to,e.to);i>t&&n.push({from:t,to:i})}return n}function gN(e){let t=[];return e.forEach((e,n)=>{let r=n===0?null:t[n-1];t.push(e.map((e,t)=>{if(e===void 0)return;if(e===null)return null;if(r==null)return e;let n=r[t];return n===null?null:n===void 0?e:n+e}))}),t}function _N(e,t,n){for(let r=Math.min(n,e.length-1);r>=0;r--){let e=t[r];if(e!==void 0)return e}return null}function vN(e,t,n,r=null){let i=[...e].filter(e=>e.t<n).sort((e,t)=>e.t-t.t),a=[],o=t,s=r;for(let e of i){if(e.t<=t){s=e.state;continue}e.state!==s&&(a.push({from:o,to:e.t,state:s}),o=e.t,s=e.state)}return n>o&&a.push({from:o,to:n,state:s}),a.filter(e=>e.to>e.from&&e.state!==null)}function yN(e){let t=new Map;for(let n of e)n.state!==null&&t.set(n.state,(t.get(n.state)??0)+Math.max(0,n.to-n.from));return t}function bN(e,t){for(let n of e)if(t>=n.from&&t<n.to)return n.state;return null}var xN=6e4,SN=60*xN,CN=24*SN;function wN(e){if(!(e>0))return`0s`;if(e<xN)return`${String(Math.round(e/1e3))}s`;if(e<SN)return`${String(Math.floor(e/xN))}m`;if(e<CN){let t=Math.floor(e/SN),n=Math.floor(e%SN/xN);return n>0?`${String(t)}h ${String(n)}m`:`${String(t)}h`}let t=Math.floor(e/CN),n=Math.floor(e%CN/SN);return n>0?`${String(t)}d ${String(n)}h`:`${String(t)}d`}var TN={hour:`2-digit`,minute:`2-digit`},EN={hour:`2-digit`,minute:`2-digit`,second:`2-digit`},DN={day:`2-digit`,month:`short`},ON={month:`short`,year:`2-digit`};function kN(e,t){let n=new Date(e);return t<10*xN?n.toLocaleTimeString(void 0,EN):t<=2*CN?n.toLocaleTimeString(void 0,TN):t<=120*CN?n.toLocaleDateString(void 0,DN):n.toLocaleDateString(void 0,ON)}function AN(e,t){let n=new Date(e);return t<=2*CN?n.toLocaleTimeString(void 0,t<10*xN?EN:TN):`${n.toLocaleDateString(void 0,DN)} ${n.toLocaleTimeString(void 0,TN)}`}var jN=[1,2,5,10],MN=[1,2,4,8,16,32,64,128,256,512,1024],NN=[1,1.5,2,2.5,3,4,5],PN=[4,3,5,2],FN=1e-9;function IN(e,t){if(!Number.isFinite(e)||e<=0)return!1;if(t===`bytes`){if(!Number.isInteger(e))return!1;let t=e/1024**Math.floor(Math.log(e)/Math.log(1024));return NN.some(e=>Math.abs(t-e)<FN)}let n=e/10**Math.floor(Math.log10(e));return NN.some(e=>Math.abs(n-e)<FN)}function LN(e,t,n=`linear`){let r=0;for(let t of e)t!==null&&Number.isFinite(t)&&t>r&&(r=t);if(r<=t)return t;if(n===`bytes`){let e=1024**Math.floor(Math.log(r)/Math.log(1024));for(let t of MN){let n=t*e;if(n>=r)return n}return 1024*e}let i=10**Math.floor(Math.log10(r));for(let e of jN){let t=e*i;if(t>=r)return t}return 10*i}function RN(e,t=`linear`){if(!Number.isFinite(e)||e<=0)return[];let n=PN.find(n=>IN(e/n,t))??PN[PN.length-1]??2,r=e/n,i=[];for(let e=1;e<=n;e++)i.push(r*e);return i}function zN(e){let t=1/0,n=-1/0;for(let r of e)r===null||!Number.isFinite(r)||(r<t&&(t=r),r>n&&(n=r));if(!Number.isFinite(t)||!Number.isFinite(n))return null;if(n-t<1e-9)return[t-1,n+1];let r=(n-t)*.1,i=n-t+2*r,a=10**Math.floor(Math.log10(i/4)),o=[1,2,2.5,5,10].map(e=>e*a).find(e=>i/e<=6)??a*10;return[Math.floor((t-r)/o)*o,Math.ceil((n+r)/o)*o]}var BN=2.5;function VN(e){return e*BN}var HN=10;function UN(){let e=typeof document<`u`&&document.body?getComputedStyle(document.body).fontFamily:`sans-serif`;return`${String(HN)}px ${e}`}function WN(e,t=!0){return{show:t,scale:`x`,side:2,size:t?22:0,gap:4,font:UN(),stroke:()=>rN(`foreground-subtle`),grid:{show:!1},ticks:{show:t,stroke:()=>rN(`border`),width:1,size:3},space:70,values:(t,n)=>n.map(t=>kN(t,e()))}}function GN(e,t){if(t.fixed)return t.fixed;let n=e.filter(e=>typeof e==`number`&&Number.isFinite(e));return(t.zeroBased??!0)&&n.every(e=>e>=0)?[0,LN(n,t.floor??0,t.scale??`linear`)||1]:zN(n)??[0,1]}var KN=[1,2,2.5,5];function qN(e,t){let[n,r]=e;if(n===0&&r>0)return[...RN(r,t.scale??`linear`)];let i=r-n;if(!(i>0))return[n];let a=10**Math.floor(Math.log10(i/4)),o=[...KN,10].map(e=>e*a).find(e=>i/e<=6)??i/4,s=[];for(let e=Math.ceil(n/o-1e-9)*o;e<=r+1e-9;e+=o)s.push(Math.round(e/o)*o);return s}function JN(e,t,n,r){return{scale:e,side:t,font:UN(),size:(e,t)=>{let n=(t??[]).reduce((e,t)=>Math.max(e,String(t).length),0);return Math.max(28,Math.min(72,n*6+10))},gap:4,stroke:()=>rN(`foreground-subtle`),grid:{show:r,stroke:()=>aN(rN(`foreground-subtle`),.18),width:1},ticks:{show:!1},values:(e,t)=>t.map(e=>n(e))}}function YN(e){return{y:!1,drag:{x:!1,y:!1,setScale:!1},points:{size:6,width:1.5},focus:{prox:16},...e===void 0?{}:{sync:{key:e,setSeries:!1}}}}function XN(e){return t=>{let n=e();if(n.length===0)return;let r=t.ctx;r.save(),r.fillStyle=aN(rN(`foreground-subtle`),.12);for(let e of n){let n=t.valToPos(e.from,`x`,!0),i=t.valToPos(e.to,`x`,!0);r.fillRect(n,t.bbox.top,Math.max(1,i-n),t.bbox.height)}r.restore()}}var ZN=new Set([`B`,`bytes`,`byte`]);function QN(e){return e!=null&&ZN.has(e)}var $N=new Set([`°C`,`°F`,`K`,`dBFS`,`dB`,`dBm`,`hPa`,`mbar`,`inHg`]);function eP(e){return QN(e)?{scale:`bytes`}:e===`%`?{floor:10}:e!=null&&$N.has(e)?{zeroBased:!1}:{}}function tP(e){if(!Number.isFinite(e))return`—`;if(Math.abs(e)<1024)return`${String(Math.round(e))} B`;let t=[`KB`,`MB`,`GB`,`TB`,`PB`],n=e/1024,r=`KB`;for(let e of t){if(r=e,Math.abs(n)<1024)break;n/=1024}return`${Math.abs(n)<100?n.toFixed(1):n.toFixed(0)} ${r}`}function nP(e){if(!Number.isFinite(e))return`—`;let t=Math.abs(e);return t>=1e3?Math.round(e).toLocaleString():t>=100?e.toFixed(0):t>=10?rP(e.toFixed(1)):t>=1?rP(e.toFixed(2)):t===0?`0`:rP(e.toFixed(3))}function rP(e){return e.includes(`.`)?e.replace(/\.?0+$/,``):e}function iP(e,t){if(QN(t))return tP(e);let n=nP(e);return t==null||t===``||t===`count`?n:t===`%`?`${n}%`:`${n} ${t}`}function aP({options:e,value:t,onChange:n,ariaLabel:r,className:i}){return e.length<2?null:v(`div`,{role:`radiogroup`,"aria-label":r,className:$(`inline-flex items-center gap-0.5 border border-border rounded-md p-0.5 bg-background`,i),children:e.map(({id:e,label:r})=>{let i=t===e;return v(`button`,{type:`button`,role:`radio`,"aria-checked":i,onClick:()=>n(e),className:$(`px-2 py-0.5 rounded text-[10px] font-medium transition-colors`,i?`bg-primary/10 text-primary`:`text-foreground-subtle hover:text-foreground`),children:r},e)})})}function oP(e,t){let n=[];for(let r=0;r<t;r++)n.push(e.map(e=>{let t=null;for(let n=0;n<=r;n++){let r=e.values[n];r!=null&&(t=(t??0)+r)}return t}));return n}function sP(e,t){let n=Array.from({length:t},()=>0),r=!1;for(let i of e)for(let e=0;e<t;e++){let t=i.values[e];t!=null&&(r=!0,n[e]=(n[e]??0)+t)}return{perLayer:n,total:n.reduce((e,t)=>e+t,0),known:r}}function cP(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];if(i&&n>=i.t&&n<i.t+t)return r}return null}var lP=`—`,uP=new Set([`information`,`duration`,`duration-ms`,`none`,`device`,`count`,`index`,`ratio`,`humidity`,`percentage`]),dP={selection:{visible:!1,dataX:null,anchorX:0,anchorY:0,pinned:!1},gesture:null,lockHorizontalScroll:!1},fP=[{placed:`right`,vertical:`above`},{placed:`left`,vertical:`above`},{placed:`right`,vertical:`below`},{placed:`left`,vertical:`below`}];function pP(e,t){if(e.length===0||!Number.isFinite(t))return null;let n=0,r=e.length-1;for(;n<r;){let i=Math.floor((n+r)/2);(e[i]??0)<t?n=i+1:r=i}let i=n,a=Math.max(0,i-1);return Math.abs((e[a]??0)-t)<=Math.abs((e[i]??0)-t)?a:i}function mP(e){if(!(e.plotWidth>0)||!Number.isFinite(e.localX))return null;let t=e.localX-e.plotLeft;if(!e.clamp&&(t<0||t>e.plotWidth))return null;let n=Math.min(e.plotWidth,Math.max(0,t));return e.xMin+n/e.plotWidth*(e.xMax-e.xMin)}function hP(e,t,n){if(e.length===0||!Number.isFinite(n))return null;let r=0,i=1/0;for(let a=0;a<e.length;a++){let o=e[a]?.t;if(o===void 0)continue;let s=o+t;if(n>=o&&n<s)return a;let c=n<o?o-n:n-s;c<i&&(i=c,r=a)}return r}function gP(e,t,n){if(e.length===0)return null;let r=[...e].sort((e,t)=>e-t);if(t===null||!Number.isFinite(t))return n>0?r[0]??null:r[r.length-1]??null;let i=0,a=1/0;for(let e=0;e<r.length;e++){let n=Math.abs((r[e]??0)-t);n<a&&(a=n,i=e)}let o=i+n;return o<0||o>=r.length?r[i]??null:r[o]??null}function _P(e,t,n,r){return{visible:!0,dataX:e,anchorX:t,anchorY:n,pinned:r}}function vP(e,t,n){return{selection:e,gesture:t,lockHorizontalScroll:n}}function yP(e,t,n){if(e.axis!==`pending`)return e.axis;let r=Math.abs(t-e.originX),i=Math.abs(n-e.originY);return r<10&&i<10?`pending`:r>=i?`x`:`y`}function bP(e,t){return t.kind===`mouse`?e:vP(e.selection,{kind:t.kind,originX:t.x,originY:t.y,axis:`pending`},!1)}function xP(e,t){if(t.kind===`mouse`)return t.dataX===null?e.selection.pinned?e:dP:vP(_P(t.dataX,t.x,t.y,!1),null,!1);let n=e.gesture;if(n===null)return e;let r=yP(n,t.x,t.y),i={...n,axis:r};return r!==`x`||t.dataX===null?vP(e.selection,i,!1):vP(_P(t.dataX,t.x,t.y,!0),i,!0)}function SP(e,t){return t.kind===`mouse`||e.gesture===null?e:e.gesture.axis===`y`||e.gesture.axis===`x`?vP(e.selection,null,!1):e.selection.visible&&e.selection.pinned||t.dataX===null?dP:vP(_P(t.dataX,t.x,t.y,!0),null,!1)}function CP(e,t){switch(t.type){case`hide`:case`outside`:return dP;case`leave`:return e.selection.pinned?vP(e.selection,null,!1):dP;case`hover`:return vP(_P(t.dataX,t.anchorX,t.anchorY,!1),null,!1);case`key`:return vP(_P(t.dataX,t.anchorX,t.anchorY,!0),null,!1);case`down`:return bP(e,t);case`move`:return xP(e,t);case`up`:return SP(e,t);default:return t}}function wP(e){if(e==null||e.length===0)return;let t;for(let n of Object.keys(Ea))if(!(!Yi(n)||uP.has(n))&&Ea[n]===e){if(t!==void 0)return;t=n}return t}function TP(e,t,n){return e.length===0?n:t.length===0?e:t===`%`?`${e}%`:`${e} ${t}`}function EP(e){let t=e.unknownLabel??lP;if(e.value===null||!Number.isFinite(e.value))return t;let n=e.quantity===`device`?void 0:e.quantity??wP(e.unit);if(n===void 0)return iP(e.value,e.unit??null);let r=ma({value:e.value,quantity:n,preference:e.preference,precision:e.precision});return TP(r.text,r.unit,t)}function DP(e,t){return t.length===0?e:`${e}, ${t.map(e=>`${e.label} ${e.value}`).join(`, `)}`}function OP(e,t){return{heading:e,lines:t,liveText:DP(e,t)}}function kP(e){let t=e.series.filter(e=>e.visible!==!1).map(t=>({id:t.id,label:t.label,value:EP({value:t.value,quantity:t.quantity,unit:t.unit,precision:t.precision,preference:e.preference})}));return OP(e.timeLabel,t)}function AP(e,t){for(let n of e)if(t>=n.from&&t<n.to)return{state:n.state,spanMs:Math.max(0,n.to-n.from)};return null}function jP(e,t){return e===null||e.length===0?lP:t===null||!(t>0)?e:`${e} · ${wN(t)}`}function MP(e){let t=e.rows.map(e=>({id:e.id,label:e.label,value:jP(e.stateLabel,e.spanMs)}));return OP(e.timeLabel,t)}function NP(e,t,n){return`${AN(e,n)} – ${AN(e+t,n)}`}function PP(e){let t=e.layers.map(t=>({id:t.id,label:t.label,value:EP({value:t.value,quantity:t.quantity,unit:t.unit,precision:t.precision,preference:e.preference})}));return OP(e.rangeLabel,t)}function FP(e,t,n){return{left:e.placed===`right`?t.anchorX+n:t.anchorX-n-t.tooltipWidth,top:e.vertical===`above`?t.anchorY-n-t.tooltipHeight:t.anchorY+n}}function IP(e,t,n){return e>=4&&t>=4&&e+n.tooltipWidth<=n.boundsWidth-4&&t+n.tooltipHeight<=n.boundsHeight-4}function LP(e,t,n){return n.anchorX>=e&&n.anchorX<=e+n.tooltipWidth&&n.anchorY>=t&&n.anchorY<=t+n.tooltipHeight}function RP(e,t,n){let r=Math.max(4,n.boundsWidth-4-n.tooltipWidth),i=Math.max(4,n.boundsHeight-4-n.tooltipHeight);return{left:Math.min(Math.max(e,4),r),top:Math.min(Math.max(t,4),i)}}function zP(e){let t=e.gap??12,n=null;for(let r of fP){let i=FP(r,e,t),a=RP(i.left,i.top,e),o={...r,...a};if(n===null&&!LP(a.left,a.top,e)&&(n=o),IP(i.left,i.top,e)&&!LP(i.left,i.top,e))return{...r,...i}}if(n!==null)return n;let r=fP[0]??{placed:`right`,vertical:`above`},i=RP(FP(r,e,t).left,FP(r,e,t).top,e);return{...r,...i}}E(),bo();function BP(e){return e===`mouse`?`mouse`:`touch`}function VP(e,t,n,r,i,a){let o=n.getBoundingClientRect(),s=e-o.left,c=t-o.top;if(r!==null){let n=r.over.getBoundingClientRect(),i=e-n.left,o=t-n.top,l=r.bbox.left,u=r.bbox.left+r.bbox.width,d=i>=l&&i<=u&&o>=r.bbox.top&&o<=r.bbox.top+r.bbox.height;return!d&&!a?{dataX:null,anchorX:s,anchorY:c,inside:!1}:{dataX:r.posToVal(Math.min(u,Math.max(l,i)),`x`),anchorX:s,anchorY:c,inside:d}}let l=mP({localX:s,plotLeft:0,plotWidth:o.width,xMin:i.xMin,xMax:i.xMax,clamp:a});return{dataX:l,anchorX:s,anchorY:c,inside:l!==null}}function HP(e,t,n,r){if(n!==null&&t!==null){let r=n.over.getBoundingClientRect(),i=t.getBoundingClientRect();return{x:r.left-i.left+n.valToPos(e,`x`),y:r.top-i.top+n.bbox.top+n.bbox.height/2}}let i=t?.getBoundingClientRect().width??0,a=t?.getBoundingClientRect().height??0,o=r.xMax-r.xMin,s=o===0?0:(e-r.xMin)/o;return{x:Math.min(1,Math.max(0,s))*i,y:a/2}}function UP(e,t){if(e!==null){if(t===null){e.setCursor({left:-10,top:-10});return}e.setCursor({left:e.valToPos(t,`x`),top:e.bbox.top+e.bbox.height/2})}}function WP({view:e}){let t=f(null);return u(()=>{let n=t.current;if(n===null)return;let r=zP({anchorX:e.anchorX,anchorY:e.anchorY,tooltipWidth:n.offsetWidth,tooltipHeight:n.offsetHeight,boundsWidth:e.boundsWidth,boundsHeight:e.boundsHeight});n.style.left=`${String(r.left)}px`,n.style.top=`${String(r.top)}px`},[e]),c(`div`,{ref:t,role:`tooltip`,"data-chart-tooltip":``,className:`pointer-events-none absolute z-20 max-w-64 rounded-md border border-border bg-background-elevated px-2 py-1 text-foreground shadow-md`,children:[v(`p`,{className:`m-0 text-[10px] tabular-nums text-foreground-subtle`,children:e.body.heading}),v(`ul`,{className:`m-0 list-none p-0`,children:e.body.lines.map(e=>c(`li`,{className:`flex items-baseline justify-between gap-3 text-xs`,children:[v(`span`,{className:`min-w-0 truncate text-foreground-muted`,children:e.label}),v(`span`,{className:`shrink-0 tabular-nums`,children:e.value})]},e.id))})]})}function GP({spec:e,plotRef:t,kind:n,label:r,inline:i=!1,children:a}){let o=f(null),s=f(e);s.current=e;let l=f(dP),u=f(null),[d,p]=C(null),m=d!==null&&l.current.selection.pinned,h=_(e=>{l.current=e;let t=s.current,n=o.current,r=e.selection.visible?e.selection.dataX:null,i=t!==null&&r!==null?t.resolve(r):null;if(i===null||r===null){p(null),u.current!==null&&(u.current=null,t?.onDataX?.(null));return}p({body:i,anchorX:e.selection.anchorX,anchorY:e.selection.anchorY,boundsWidth:n?.getBoundingClientRect().width??0,boundsHeight:n?.getBoundingClientRect().height??0}),u.current!==r&&(u.current=r,t?.onDataX?.(r))},[]);b(()=>{let e=o.current;if(e===null)return;let n=(n,r)=>{let i=s.current;return i===null?null:VP(n.clientX,n.clientY,e,t.current,i,r)},r=e=>{if(BP(e.pointerType)===`mouse`)return;let t=n(e,!1);t!==null&&h(CP(l.current,{type:`down`,kind:`touch`,x:t.anchorX,y:t.anchorY,dataX:t.dataX}))},i=r=>{let i=BP(r.pointerType),a=l.current.gesture?.axis===`x`,o=n(r,i!==`mouse`&&a);if(o===null)return;if(i===`mouse`){if(!o.inside||o.dataX===null){h(CP(l.current,{type:`leave`})),l.current.selection.visible||UP(t.current,null);return}h(CP(l.current,{type:`hover`,dataX:o.dataX,anchorX:o.anchorX,anchorY:o.anchorY})),UP(t.current,o.dataX);return}let s=CP(l.current,{type:`move`,kind:`touch`,x:o.anchorX,y:o.anchorY,dataX:o.dataX});s.lockHorizontalScroll&&(r.preventDefault(),r.pointerId!==0&&!e.hasPointerCapture(r.pointerId)&&e.setPointerCapture(r.pointerId)),h(s),s.selection.dataX!==null&&s.selection.visible&&UP(t.current,s.selection.dataX)},a=e=>{if(BP(e.pointerType)===`mouse`)return;let r=n(e,l.current.gesture?.axis===`x`);if(r===null)return;let i=CP(l.current,{type:`up`,kind:`touch`,x:r.anchorX,y:r.anchorY,dataX:r.dataX});h(i),UP(t.current,i.selection.visible?i.selection.dataX:null)},c=e=>{if(BP(e.pointerType)!==`mouse`)return;let n=CP(l.current,{type:`leave`});h(n),n.selection.visible||UP(t.current,null)};return e.addEventListener(`pointerdown`,r),e.addEventListener(`pointermove`,i),e.addEventListener(`pointerup`,a),e.addEventListener(`pointercancel`,a),e.addEventListener(`pointerleave`,c),()=>{e.removeEventListener(`pointerdown`,r),e.removeEventListener(`pointermove`,i),e.removeEventListener(`pointerup`,a),e.removeEventListener(`pointercancel`,a),e.removeEventListener(`pointerleave`,c)}},[h,t]),b(()=>{if(!m)return;let e=e=>{let n=o.current;n!==null&&e.target instanceof Node&&n.contains(e.target)||(h(CP(l.current,{type:`outside`})),UP(t.current,null))};return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)},[h,m,t]);let g=e=>{let n=s.current;if(n===null)return;if(e.key===`Escape`){e.preventDefault(),h(CP(l.current,{type:`hide`})),UP(t.current,null);return}if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let r=l.current.selection.visible?l.current.selection.dataX:null,i=gP(n.stops,r,e.key===`ArrowRight`?1:-1);if(i===null)return;let a=HP(i,o.current,t.current,n);h(CP(l.current,{type:`key`,dataX:i,anchorX:a.x,anchorY:a.y})),UP(t.current,i)},y=e=>{o.current=e},x=$(`relative min-w-0 touch-pan-y outline-none focus-visible:ring-2 focus-visible:ring-primary`,i?`inline-block w-full`:`w-full`),S=d===null?null:v(WP,{view:d}),w=d!==null&&typeof document<`u`?xo(v(`div`,{className:`sr-only`,"aria-live":`polite`,"data-chart-tooltip-live":``,children:d.body.liveText}),document.body):null;return c(i?`span`:`div`,{ref:y,className:x,"data-chart-shell":``,"data-chart-kind":n,tabIndex:e===null?void 0:0,"aria-label":r,onKeyDown:g,children:[a,S,w]})}E();var KP=null;function qP(){if(typeof document>`u`||typeof window>`u`||typeof window.matchMedia!=`function`)return!1;try{return document.createElement(`canvas`).getContext(`2d`)!==null}catch{return!1}}function JP(){return KP===null&&(KP=qP()?a(()=>import(`./uPlot.esm-B6hGABOr.js`).then(e=>e.default),[],import.meta.url).catch(()=>null):Promise.resolve(null)),KP}function YP({optionsKey:e,buildOptions:t,data:n,height:r,onInstance:i,className:a,inline:o=!1,tooltip:s=null,kind:c,label:l}){let u=f(null),d=f(null),[p,m]=C(null),h=f({buildOptions:t,data:n,onInstance:i});h.current={buildOptions:t,data:n,onInstance:i},b(()=>{let e=!0;return JP().then(t=>{e&&t!==null&&m(()=>t)}),()=>{e=!1}},[]),b(()=>{let e=u.current;if(p===null||e===null)return;let t=Math.max(1,Math.floor(e.clientWidth)),n=new p({...h.current.buildOptions(t,p),width:t,height:r},h.current.data,e);return n.over.style.touchAction=`pan-y`,n.root.style.touchAction=`pan-y`,d.current=n,h.current.onInstance?.(n),()=>{h.current.onInstance?.(null),n.destroy(),d.current=null}},[p,e,r]),b(()=>{d.current?.setData(n)},[n]),b(()=>{let e=u.current;if(e===null||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(e=>{let t=Math.floor(e[0]?.contentRect.width??0),n=d.current;n!==null&&t>0&&t!==n.width&&n.setSize({width:t,height:r})});return t.observe(e),()=>t.disconnect()},[r]),b(()=>{if(typeof MutationObserver>`u`)return;let e=new MutationObserver(()=>d.current?.redraw(!1,!0));return e.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>e.disconnect()},[]);let g=e=>{u.current=e};return v(GP,{spec:s,plotRef:d,kind:c,label:l,inline:o,children:o?v(`span`,{ref:g,className:a??`block w-full min-w-0`,"data-chart-plot":``}):v(`div`,{ref:g,className:a??`w-full min-w-0`,"data-chart-plot":``})})}E();function XP({title:e,layers:t,buckets:n,bucketMs:r,range:i,unit:a=null,formatValue:o,displayPreference:s,height:l,stacked:u,showTotal:d=!1,syncKey:m,pending:h=!1,emptyMessage:g,actions:y,footer:b,windowToggle:x,compact:S=!1,minBarFraction:w=0,selectedIndex:T=null,onSelect:E,bucketLabel:D,bucketTestId:O,className:k}){let A=q(),j=l??(S?24:100),M=u??t.length>1,N=_(e=>(o??iP)(e,a),[o,a]),F=p(()=>M?oP(n,t.length):t.map((e,t)=>n.map(e=>e.values[t]??null)),[n,t,M]),I=p(()=>sP(n,t.length),[n,t.length]),[L,R]=C(null),z=p(()=>({xMin:i.from,xMax:i.to,stops:n.map(e=>e.t),resolve:e=>{let o=hP(n,r,e);if(o===null)return null;let c=n[o];return c===void 0?null:PP({rangeLabel:NP(c.t,r,i.to-i.from),preference:s,layers:t.map((e,t)=>({id:e.id,label:e.label,value:c.values[t]??null,unit:a}))})},onDataX:e=>{R(e===null?null:hP(n,r,e))}}),[n,r,i,t,a,s]),B=f({buckets:n,tops:F,range:i,selectedIndex:T,onSelect:E,bucketLabel:D,fmt:N});B.current={buckets:n,tops:F,range:i,selectedIndex:T,onSelect:E,bucketLabel:D,fmt:N};let V=`${t.map(e=>`${e.id}:${e.colorIndex}`).join(`,`)}#${S?`C`:``}#${M?`S`:``}#${m??``}#${String(r)}`,H=p(()=>{let e=F.at(-1)??[],t=M?e:n.map((e,t)=>Math.max(...F.map(e=>e[t]??0)));return[n.map(e=>e.t),t.map(e=>e??null)]},[n,F,M,T]),U=_(()=>{let e={floor:0};return{ms:1,legend:{show:!1},padding:S?[0,0,0,0]:[8,30,0,0],scales:{x:{time:!0,range:()=>[B.current.range.from,B.current.range.to]},y:{range:t=>{let n=GN([...t.data[1]??[]],e);return[n[0],n[1]]}}},axes:S?[{show:!1,scale:`x`},{show:!1,scale:`y`}]:[WN(()=>B.current.range.to-B.current.range.from),{...JN(`y`,3,e=>B.current.fmt(e),!0),splits:(t,n,r,i)=>qN([r,i],e)}],series:[{},{scale:`y`,stroke:()=>`transparent`,points:{show:!1},paths:()=>null}],cursor:{...YN(m),points:{show:!1}},hooks:{draw:[e=>{let{buckets:n,tops:i,selectedIndex:a}=B.current,o=e.ctx,s=e.valToPos(0,`y`,!0),c=w*e.bbox.height,l=Math.max(1,Math.round(devicePixelRatio));o.save(),n.forEach((n,u)=>{let d=e.valToPos(n.t,`x`,!0),f=e.valToPos(n.t+r,`x`,!0),p=Math.max(1,f-d-l),m=s;t.forEach((n,r)=>{let a=i[r]?.[u];if(a==null||!(a>(M&&r>0?i[r-1]?.[u]??0:0)))return;let f=e.valToPos(a,`y`,!0),h=M?m:s;r===t.length-1&&s-f<c&&(f=s-c),o.fillStyle=rN(QM(n.colorIndex).token);let g=Math.max(1,h-f-(M&&r>0?l:0));o.fillRect(d,f,p,g),m=f}),a===u&&(o.strokeStyle=rN(`primary`),o.lineWidth=l*1.5,o.strokeRect(d,e.bbox.top+l,p,e.bbox.height-2*l))}),o.restore()}],setCursor:[e=>{let t=e.cursor.left??-1,n=t<0?null:cP(B.current.buckets,r,e.posToVal(t,`x`));R(n);let i=n===null?void 0:B.current.buckets[n],a=i===void 0||n===null?``:B.current.bucketLabel?.(i,n)??``;e.over.title=a}],ready:[e=>{e.over.addEventListener(`click`,()=>{let t=e.cursor.left??-1;if(t<0)return;let n=cP(B.current.buckets,r,e.posToVal(t,`x`));n!==null&&B.current.onSelect?.(n)})}]}}},[V,w]),ee=i.to-i.from,W=L===null?void 0:n[L],G=t.map((e,t)=>{let n=W?W.values[t]:I.known?I.perLayer[t]:void 0;return{id:e.id,label:e.label,token:QM(e.colorIndex).token,value:n==null?W?`—`:void 0:N(n)}}),te=A(`uiLibrary.charts.barSummary`,`{{title}}, {{from}} to {{to}}: total {{total}}`,{title:e,from:kN(i.from,ee),to:kN(i.to,ee),total:I.known?N(I.total):A(`uiLibrary.charts.unknown`,`unknown`)}),ne=E===void 0?null:v(`div`,{className:`sr-only`,children:n.map((e,t)=>{let n=e.values.reduce((e,t)=>e+(t??0),0);return n<=0?null:v(`button`,{type:`button`,"data-testid":O,"aria-pressed":T===t,onClick:()=>E(t),children:D?.(e,t)??`${kN(e.t,ee)} ${N(n)}`},e.t)})}),re=v(YP,{optionsKey:V,buildOptions:U,data:H,height:j,tooltip:z,kind:`bars`,label:e});if(S)return c(`div`,{className:$(`relative min-w-0`,k),children:[v(`div`,{role:`img`,"aria-label":te,children:re}),ne]});let K=d&&I.known?A(`uiLibrary.charts.total`,`Total {{value}}`,{value:N(I.total)}):null,ie=!I.known,ae=j<=64?`sm`:j<=120?`md`:`lg`;return v(oN,{title:e,actions:c(P,{children:[K&&v(`span`,{className:`text-[11px] tabular-nums text-foreground`,children:K}),x&&v(aP,{...x}),y]}),readoutTime:W?AN(W.t,ee):null,legend:t.length>1||W?G:[],summary:te,footer:b,placeholder:h?v(uN,{message:A(`uiLibrary.charts.loading`,`Loading…`),height:ae}):ie?v(uN,{message:g??A(`uiLibrary.charts.empty`,`Nothing was recorded in this window.`),height:ae}):void 0,controls:ne,className:k,children:re})}E();var ZP=[`motion`,`object`,`audio`],QP={motion:6,object:5,audio:4},$P=.15;function eF({windowFrom:e,windowTo:t,buckets:n,selectedIndex:r,onSelectBucket:i}){let a=q(),o=p(()=>n.filter(e=>e.total>0&&e.dominant!==null),[n]),s=p(()=>o.map(e=>({t:e.startMs,values:ZP.map(t=>e.counts[t])})),[o]),c=p(()=>ZP.map(e=>({id:e,label:a(`uiLibrary.eventHeatmap.kind.${e}`,e),colorIndex:QP[e]})),[a]),l=n[0],u=l?Math.max(1,l.endMs-l.startMs):1,d=r===null?null:o.findIndex(e=>e.index===r);return v(`div`,{className:`rounded bg-background/40`,children:v(XP,{compact:!0,title:a(`uiLibrary.eventHeatmap.title`,`Event density`),layers:c,buckets:s,bucketMs:u,range:{from:e,to:t},stacked:!0,minBarFraction:$P,selectedIndex:d===null||d<0?null:d,onSelect:e=>{let t=o[e];t&&i(t.index)},bucketTestId:`heatmap-bar`,bucketLabel:(e,t)=>{let n=o[t];return n?a(`uiLibrary.eventHeatmap.bucketTitle`,`{{time}} · motion {{motion}} · object {{object}}`,{time:new Date(n.startMs).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}),motion:n.counts.motion,object:n.counts.object}):``}})})}function tF(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function nF(e){let t=e.split(`-`),n=t[0]===void 0?NaN:parseInt(t[0],10),r=t[1]===void 0?NaN:parseInt(t[1],10),i=t[2]===void 0?NaN:parseInt(t[2],10);return isNaN(n)||isNaN(r)||isNaN(i)?null:new Date(n,r-1,i)}function rF({day:e,onDayChange:t,view:n,dayBounds:r,onViewChange:i}){let a=q(),o=e=>{let n=nF(e.target.value);n!==null&&t(n)},s=n.toMs-n.fromMs,l=(()=>{let e=0,t=1/0;for(let n=0;n<RM.length;n++){let r=RM[n];if(r===void 0)continue;let i=Math.abs(r-s);i<t&&(t=i,e=n)}return e})(),u=n.toMs,d=()=>{let e=RM[Math.min(l+1,RM.length-1)];e!==void 0&&i(zM(r,e,u))},f=()=>{let e=RM[Math.max(l-1,0)];e!==void 0&&i(zM(r,e,u))},p=l<RM.length-1,m=l>0,h=Math.max(1,Math.round(s*.9)),g=n.fromMs>r.fromMs,_=n.toMs<r.toMs;return c(`div`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`date`,value:tF(e),max:tF(new Date),onChange:o,className:`rounded border border-border bg-background px-2 py-0.5 text-[11px] text-foreground focus:outline-none focus:ring-1 focus:ring-primary`,"aria-label":a(`uiLibrary.timelineControls.day`,`Select recording day`)}),c(`div`,{className:`ml-auto flex items-center gap-1`,children:[v(`button`,{type:`button`,onClick:()=>{i(BM(n,r,-h))},disabled:!g,title:a(`uiLibrary.timelineControls.earlierTitle`,`Earlier (pan back)`),"aria-label":a(`uiLibrary.timelineControls.earlier`,`Pan earlier`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(ge,{size:14})}),v(`button`,{type:`button`,onClick:()=>{i(BM(n,r,h))},disabled:!_,title:a(`uiLibrary.timelineControls.laterTitle`,`Later (pan forward)`),"aria-label":a(`uiLibrary.timelineControls.later`,`Pan later`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(It,{size:14})}),v(`span`,{className:`mx-0.5 h-3 w-px bg-border`,"aria-hidden":`true`}),v(`button`,{type:`button`,onClick:f,disabled:!m,title:a(`uiLibrary.timelineControls.zoomOut`,`Zoom out`),"aria-label":a(`uiLibrary.timelineControls.zoomOut`,`Zoom out`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(Wr,{size:13})}),v(`button`,{type:`button`,onClick:d,disabled:!p,title:a(`uiLibrary.timelineControls.zoomIn`,`Zoom in`),"aria-label":a(`uiLibrary.timelineControls.zoomIn`,`Zoom in`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(Dr,{size:13})})]}),v(`span`,{className:`text-[9px] text-foreground-subtle`,children:iF(s)})]})}function iF(e){let t=e/36e5;if(t>=24)return`24h`;if(t>=1)return`${Math.round(t)}h`;let n=e/6e4;return`${Math.round(n)}m`}E();var aF=18e3/100;function oF({day:e,onDayChange:t,view:n,dayBounds:r,onViewChange:i,buckets:a,selectedBucketIndex:o,onSelectBucket:s,densityLoading:l}){let u=q(),d=f(null),p=_(e=>{let t=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.shiftKey?e.deltaY:0;t!==0&&(e.preventDefault(),i(BM(n,r,t*aF)))},[n,r,i]),m=UM(n.fromMs,n.toMs,5);return c(`div`,{className:`space-y-1`,children:[v(rF,{day:e,onDayChange:t,view:n,dayBounds:r,onViewChange:i}),c(`div`,{ref:d,onWheel:p,className:`space-y-1`,children:[v(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:u(`uiLibrary.clipBandBar.eventsDensity`,`Events · density`)}),l?v(`div`,{className:`h-6 animate-pulse rounded bg-background/40`}):v(eF,{windowFrom:n.fromMs,windowTo:n.toMs,buckets:a,selectedIndex:o,onSelectBucket:s}),v(`div`,{className:`relative h-3`,children:m.map(e=>v(`span`,{className:`absolute -translate-x-1/2 text-[9px] text-foreground-subtle`,style:{left:`${String(e.pct)}%`},children:e.label},e.pct))})]})]})}E();var sF=Wn(`camstack:vod-playback`,{request:null,play:()=>{},clear:()=>{}});function cF({children:e}){let[t,n]=C(null),r=p(()=>({request:t,play:e=>n(e),clear:()=>n(null)}),[t]);return v(sF.Provider,{value:r,children:e})}function lF(){return I(sF)}E();var uF=kl(`rounded-lg p-3`,{variants:{variant:{flat:`bg-surface`,bordered:`bg-surface border border-border`}},defaultVariants:{variant:`bordered`}}),dF=D(({className:e,variant:t,...n},r)=>v(`div`,{ref:r,className:$(uF({variant:t}),e),...n}));dF.displayName=`Card`,E();var fF=[`low`,`mid`,`high`];function pF({deviceId:e,clip:t,profile:n,onProfileChange:r}){let i=q(),a=lF(),o=hk({deviceId:e,clipId:t.id,profile:n}),s=o.data,l=`${new Date(t.timeRange.startMs).toLocaleString()} · ${t.source}`;return b(()=>{s!==void 0&&a.play({url:bt(s.playbackUrl),...s.format===void 0?{}:{format:s.format},label:l})},[s,l]),c(dF,{className:`space-y-2 text-sm`,children:[v(`div`,{className:`font-medium text-foreground`,children:l}),c(`div`,{className:`flex items-center gap-1`,children:[v(`span`,{className:`mr-1 text-[10px] uppercase tracking-wide text-foreground-subtle`,children:i(`uiLibrary.clipPanel.quality`,`Quality`)}),fF.map(e=>v(gA,{variant:e===n?`primary`:`secondary`,"aria-pressed":e===n,onClick:()=>r(e),children:e},e))]}),o.status===`pending`?c(`div`,{className:`space-y-1`,children:[v(`div`,{role:`status`,className:`text-xs text-foreground-subtle`,children:i(`uiLibrary.clipPanel.preparing`,`Preparing the clip — the file is fetched and muxed once…`)}),v(uM,{className:`h-4 w-48`})]}):o.status===`error`?v(YM,{title:i(`uiLibrary.clipPanel.prepareFailed`,`This clip could not be prepared`),message:o.error?.message??i(`uiLibrary.clipPanel.noReasonGiven`,`no reason given`)}):s===void 0?null:c(`div`,{className:`space-y-2`,children:[s.served===void 0||s.served===n?null:v(YM,{variant:`warning`,message:v(hi,{uiKey:`uiLibrary.clipPanel.servedFallback`,fallback:`Served the <0>{{served}}</0> stream — this clip has no {{profile}} twin.`,components:[v(`strong`,{},`served`)],values:{served:s.served,profile:n}})}),c(`a`,{href:bt(s.playbackUrl),download:!0,className:`inline-flex items-center gap-1.5 text-xs font-medium text-primary hover:underline`,children:[v(nn,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),i(`uiLibrary.clipPanel.download`,`Download this clip`)]})]})]})}function mF(e){let t=Math.round(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}var hF={sleeping:(e,t)=>t(`uiLibrary.clipTile.refusal.sleeping`,`The camera is asleep — a still would cost a wake`),"camera-refused":(e,t)=>t(`uiLibrary.clipTile.refusal.camera_refused`,`The camera refused — {{reason}}`,{reason:e}),"no-keyframe":(e,t)=>t(`uiLibrary.clipTile.refusal.no_keyframe`,`No decodable frame inside this window`),unsupported:(e,t)=>t(`uiLibrary.clipTile.refusal.unsupported`,`This source cannot produce stills`),"queue-full":(e,t)=>t(`uiLibrary.clipTile.refusal.queue_full`,`Waiting for the camera — its still queue is full`),"camera-backoff":(e,t)=>t(`uiLibrary.clipTile.refusal.camera_backoff`,`The camera is resting after refusing — trying again shortly`),"no-catalog-row":(e,t)=>t(`uiLibrary.clipTile.refusal.no_catalog_row`,`This clip is no longer in the catalog`),"unknown-device":(e,t)=>t(`uiLibrary.clipTile.refusal.unknown_device`,`This camera is not served here`),"uid-missing":(e,t)=>t(`uiLibrary.clipTile.refusal.uid_missing`,`The camera’s id is not known yet`)};function gF(e,t,n){let r=e===void 0?void 0:hF[e];return r===void 0?t:r(t,n)}function _F(e,t,n){return{kind:`unavailable`,reason:e,text:gF(n,e,t)}}function vF(e,t=Fn){return e.thumbnail===void 0?e.thumbnailUnavailable===void 0?e.thumbnailMint===void 0?{kind:`none`,text:t(`uiLibrary.clipTile.noStill`,`This clip carries no still and offered none`)}:{kind:`mint`,url:e.thumbnailMint}:_F(e.thumbnailUnavailable.reason,t,e.thumbnailUnavailable.reason):{kind:`vouched`,url:e.thumbnail}}function yF(e,t=Fn){return e.disposition===`deferred`?{kind:`deferred`,reason:e.reason,text:gF(e.code,e.reason,t),retryAfterMs:e.retryAfterMs??null}:_F(e.reason,t,e.code)}async function bF(e,t,n=Fn){let r;try{r=await t(e,{credentials:`same-origin`})}catch(e){return SF(e,n)}if(r.status===204)return yF(xF(r,n),n);if(!r.ok)return yF({code:void 0,reason:n(`uiLibrary.clipThumbnail.httpStatus`,`HTTP {{status}}`,{status:String(r.status)}),disposition:void 0},n);try{return{kind:`image`,blob:await r.blob()}}catch(e){return SF(e,n)}}function xF(e,t){let n=e.headers.get(`retry-after`),r=n===null?NaN:Number(n);return{code:e.headers.get(`x-camstack-reason-code`)??void 0,reason:e.headers.get(`x-camstack-reason`)??t(`uiLibrary.clipThumbnail.noReason`,`no reason given`),disposition:e.headers.get(`x-camstack-disposition`)??void 0,retryAfterMs:Number.isFinite(r)&&r>0?r*1e3:null}}function SF(e,t){return yF({code:void 0,reason:e instanceof Error?e.message:String(e),disposition:`deferred`},t)}var CF=4e3,wF=3e4,TF=.25;function EF(e){if(e.attempt>=4||e.attempt<0)return null;let t=CF*2**e.attempt,n=Math.max(t,e.serverHintMs??0),r=Math.min(n,wF),i=1+(e.random()*2-1)*TF;return{waitMs:Math.round(r*i)}}E();function DF(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function OF(e){let t=q(),n=f(t);n.current=t;let r=p(()=>vF(e,t),[e.thumbnail,e.thumbnailMint,e.thumbnailUnavailable?.reason,t]),[i,a]=C(null),o=r.kind===`mint`?r.url:null;return b(()=>{if(a(null),o===null||typeof fetch!=`function`)return;let e=null,t=!1,r,i=async s=>{let c=await bF(bt(o),fetch,n.current);if(t)return;if(c.kind===`image`){e=URL.createObjectURL(c.blob),a({kind:`vouched`,url:e});return}if(c.kind!==`deferred`){a(c);return}let l=EF({attempt:s,serverHintMs:c.retryAfterMs,random:Math.random});if(l===null){a({kind:`unavailable`,reason:c.reason,text:c.text});return}r=setTimeout(()=>{i(s+1)},l.waitMs)};return i(0),()=>{t=!0,r!==void 0&&clearTimeout(r),e!==null&&URL.revokeObjectURL(e)}},[o]),i??r}function kF({clip:e,selected:t,onSelect:n}){let r=q(),i=OF(e),a=e.playable!==!1,o=[...e.labels??[],...e.behaviours??[]];return v(`li`,{children:v(`button`,{type:`button`,onClick:()=>n(e),disabled:!a,"aria-current":t?`true`:void 0,className:`block w-full text-left disabled:cursor-not-allowed`,children:c(dF,{className:`flex gap-3 transition-colors ${t?`border-primary`:``} ${a?`hover:bg-surface-hover`:`opacity-70`}`,children:[v(`div`,{className:`flex h-16 w-28 shrink-0 items-center justify-center overflow-hidden rounded bg-surface-hover text-[10px] text-foreground-subtle`,children:i.kind===`vouched`?v(`img`,{src:i.url,alt:``,className:`h-full w-full object-cover`}):i.kind===`mint`||i.kind===`deferred`?v(`span`,{role:`status`,"aria-label":i.kind===`mint`?r(`uiLibrary.clipTile.loadingStill`,`Loading the still`):i.text,className:`h-full w-full`,children:v(uM,{className:`h-full w-full rounded-none`})}):v(`span`,{className:`px-1 text-center leading-tight`,children:i.text})}),c(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[c(`div`,{className:`flex items-baseline gap-2`,children:[v(`span`,{className:`text-sm font-medium text-foreground`,children:DF(e.timeRange.startMs)}),v(`span`,{className:`text-[11px] text-foreground-subtle`,children:e.inProgress===!0?r(`uiLibrary.clipTile.recording`,`Recording…`):mF(e.timeRange.endMs-e.timeRange.startMs)})]}),v(`div`,{className:`text-[10px] text-foreground-subtle`,children:e.source}),o.length===0&&e.nativeTypes===void 0?null:c(`div`,{className:`flex flex-wrap gap-1`,children:[o.map(e=>v(zk,{variant:`info`,children:e},`label:${e}`)),(e.nativeTypes??[]).map(e=>v(zk,{style:`outline`,children:e},`native:${e}`))]}),a?null:v(`div`,{className:`text-[11px] text-warning`,children:r(`uiLibrary.clipTile.notPlayable`,`Not playable — {{reason}}`,{reason:e.unplayableReason??r(`uiLibrary.clipTile.noReason`,`the source gave no reason`)})})]})]})})})}function AF(e){return e<10?`0${String(e)}`:String(e)}function jF(e){let[t,n,r]=e.split(`-`).map(e=>Number(e));return new Date(t??1970,(n??1)-1,r??1,0,0,0,0)}function MF(e){return`${String(e.getFullYear())}-${AF(e.getMonth()+1)}-${AF(e.getDate())}`}function NF(e,t){let n=jF(e);return n.setDate(n.getDate()+t),MF(n)}function PF(e){return jF(e).toLocaleDateString(void 0,{weekday:`short`,year:`numeric`,month:`short`,day:`numeric`})}var FF=366;function IF(e){let t=Math.max(e.fromMs,e.toMs-1),n=MF(new Date(t)),r=MF(new Date(e.fromMs)),i=0;for(;r<=n&&i<FF;)i+=1,r=NF(r,1);return i}function LF(e){let t=IF(e);return t>2?{kind:`too-wide`,band:e,localDays:t,maxLocalDays:2}:{kind:`askable`,band:e,localDays:t}}function RF(e,t){return t===null?{fromMs:e.fromMs,toMs:e.toMs}:{fromMs:Math.max(t.startMs,e.fromMs),toMs:Math.min(t.endMs,e.toMs)}}function zF(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function BF(e){let t=MF(new Date(e.fromMs)),n=MF(new Date(Math.max(e.fromMs,e.toMs-1)));return t===n?`${PF(t)}, ${zF(e.fromMs)} – ${zF(e.toMs)}`:`${PF(t)} ${zF(e.fromMs)} – ${PF(n)} ${zF(e.toMs)}`}var VF={ok:{headlineKey:`uiLibrary.clipSource.state.ok`,headlineFallback:`Answering`,tone:`ok`,answered:!0},sleeping:{headlineKey:`uiLibrary.clipSource.state.sleeping`,headlineFallback:`Asleep — showing the catalog read while it was awake`,tone:`warn`,answered:!0},unreachable:{headlineKey:`uiLibrary.clipSource.state.unreachable`,headlineFallback:`Could not be reached — its clips are missing from this list`,tone:`error`,answered:!1},"no-storage":{headlineKey:`uiLibrary.clipSource.state.no_storage`,headlineFallback:`No storage card — this camera keeps nothing of its own`,tone:`warn`,answered:!1},"index-empty":{headlineKey:`uiLibrary.clipSource.state.index_empty`,headlineFallback:`The camera's calendar marks these days, and its own index lists nothing`,tone:`warn`,answered:!1}};function HF(e,t=Fn){let n=VF[e.availability.state];return{source:e.source,label:e.label,headline:t(n.headlineKey,n.headlineFallback),detail:e.availability.reason??null,tone:n.tone,answered:n.answered}}function UF(e,t=Fn){if(e.plan.kind===`too-wide`)return{kind:`refused`,band:e.plan.band,localDays:e.plan.localDays,maxLocalDays:e.plan.maxLocalDays};if(e.clipsStatus===`error`)return{kind:`failed`,message:e.clipsError??t(`uiLibrary.clipView.clipsFailed`,`The clip list could not be read`)};if(e.sourcesStatus===`error`&&e.clips.length===0)return{kind:`failed`,message:e.sourcesError??t(`uiLibrary.clipView.sourcesFailed`,`The source list could not be read`)};let n=e.sources.map(e=>HF(e,t)),r=n.filter(e=>e.answered),i=n.filter(e=>!e.answered),a=e.clips;return e.provider===null&&e.sourcesStatus===`success`?{kind:`empty`,band:e.plan.band,answered:r,silent:i,nobodyAnswered:!0}:e.clipsStatus===`pending`||e.sourcesStatus===`pending`?{kind:`loading`}:a.length===0?{kind:`empty`,band:e.plan.band,answered:r,silent:i,nobodyAnswered:r.length===0}:{kind:`listed`,clips:a,answered:r,silent:i}}E();var WF=500,GF=60;function KF({silent:e}){let t=q();return e.length===0?null:v(YM,{variant:`warning`,title:t(`uiLibrary.clipsSection.silentSources`,{one:`One source contributed nothing to this list`,other:`{{count}} sources contributed nothing to this list`},{count:e.length}),message:v(`div`,{className:`space-y-1`,children:e.map(e=>c(`div`,{children:[v(`span`,{className:`font-medium`,children:e.label}),c(`span`,{className:`opacity-70`,children:[` (`,e.source,`)`]}),v(`div`,{children:e.headline}),e.detail===null?null:v(`div`,{className:`opacity-80 break-words`,children:e.detail})]},e.source))})})}function qF({deviceId:e}){let t=q(),[n,r]=C(()=>new Date),[i,a]=C(()=>LM(new Date,Date.now())),[o,s]=C(null),[l,u]=C(``),[d,f]=C(1),[m,h]=C(null),[g,_]=C(`low`),y=jM(`videoclips`),x=p(()=>LM(n,Date.now()),[n]),S=HM(i.toMs-i.fromMs),w=_b({deviceId:e,since:i.fromMs,until:i.toMs,bucketMs:S}),T=p(()=>NM(w.data??[],i.fromMs,S),[w.data,i.fromMs,S]),E=o===null?void 0:T.find(e=>e.index===o),D=p(()=>RF(i,E===void 0?null:{startMs:E.startMs,endMs:E.endMs}),[i,E]),O=LF(D),k=mk({deviceId:e}),A=k.data??[],j=p(()=>l===``?A.find(e=>e.addonId!==void 0)?.addonId??``:l,[l,A]),M=pk({deviceId:e,since:D.fromMs,until:D.toMs,limit:WF,provider:j},{enabled:O.kind===`askable`&&j!==``}),N=UF({plan:O,provider:j===``?null:j,clipsStatus:M.status,clips:M.data??[],sourcesStatus:k.status,sources:A,...M.error?{clipsError:M.error.message}:{},...k.error?{sourcesError:k.error.message}:{}},t),F=p(()=>{let e=new Map;for(let t of A){let n=t.addonId;if(n===void 0)continue;let r=e.get(n);r===void 0?e.set(n,[t.label]):r.push(t.label)}return[...e].map(([e,t])=>({value:e,label:t.join(` · `)}))},[A]);b(()=>{f(1)},[D.fromMs,D.toMs]);let I=e=>{r(e),a(LM(e,Date.now())),s(null)},L=e=>{a(e),s(null)},R=e=>{s(t=>t===e?null:e)},z=e=>{u(e),f(1)};if(y===`pending`)return c(`div`,{className:`space-y-2`,children:[v(`div`,{role:`status`,className:`text-xs text-foreground-subtle`,children:t(`uiLibrary.clipsSection.asking`,`Asking the registry whether this cluster serves clips…`)}),v(uM,{className:`h-24 w-full`})]});if(y===`unknown`)return v(YM,{variant:`warning`,title:t(`uiLibrary.clipsSection.unknownTitle`,`Clip sources unknown`),message:t(`uiLibrary.clipsSection.unknownMessage`,`The capability registry could not be reached, so whether this camera has clip sources is unknown — not absent.`)});if(y===`absent`)return v(`div`,{role:`status`,children:v(qM,{icon:Vn,title:t(`uiLibrary.clipsSection.absentTitle`,`No provider of videoclips in this cluster`),description:t(`uiLibrary.clipsSection.absentDescription`,`Nothing is installed that could list a camera's stored clips.`)})});let B=N.kind===`listed`?N.clips:[],V=B.slice((d-1)*GF,d*GF);return c(`div`,{className:`space-y-3`,children:[c(`div`,{children:[v(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(`uiLibrary.clipsSection.clips`,`Clips`)}),v(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:t(`uiLibrary.clipsSection.intro`,`Every source this camera has, side by side — CamStack's own recordings and whatever the camera or an export keeps of its own. A source is listed because it exists, not because it was switched on here; pick sources to narrow the view.`)}),v(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:t(`uiLibrary.clipsSection.periodHint`,`The list follows the period selected on the timebar below — the recording section's own control. Zoom out to widen it, pan or pick a day to move it, click a density bar to narrow it to that window.`)})]}),c(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v(`label`,{htmlFor:`clips-provider`,className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:t(`uiLibrary.clipsSection.source`,`Source`)}),v(`div`,{className:`w-60`,children:v(Hl,{id:`clips-provider`,options:F,value:j,disabled:F.length<2,onChange:e=>z(e.target.value)})}),F.length<2?v(`span`,{className:`text-[11px] text-foreground-subtle`,children:t(`uiLibrary.clipsSection.oneProvider`,`This camera is bound to one clip provider today.`)}):null,c(`div`,{className:`ml-auto flex items-center gap-1`,children:[v(`span`,{className:`px-1 text-xs font-medium text-foreground`,children:BF(D)}),o===null?null:v(gA,{variant:`outline`,onClick:()=>s(null),children:t(`uiLibrary.clipsSection.expand`,`Expand to the visible window`)})]})]}),v(oF,{day:n,onDayChange:I,view:i,dayBounds:x,onViewChange:L,buckets:T,selectedBucketIndex:o,onSelectBucket:R,densityLoading:w.status===`pending`}),v(`section`,{"aria-label":t(`uiLibrary.clipsSection.clips`,`Clips`),className:`space-y-2`,children:N.kind===`refused`?v(YM,{variant:`warning`,title:t(`uiLibrary.clipsSection.tooWideTitle`,`That period is too wide to list`),message:t(`uiLibrary.clipsSection.tooWideMessage`,`{{band}} covers {{days}} local days, and a clip listing is asked one local day at a time — at most {{max}}. Nothing was asked for; narrow the band and the list follows it.`,{band:BF(N.band),days:N.localDays,max:N.maxLocalDays})}):N.kind===`loading`?c(P,{children:[v(`div`,{role:`status`,className:`text-xs text-foreground-subtle`,children:t(`uiLibrary.clipsSection.loadingFor`,`Loading clips for {{band}}…`,{band:BF(D)})}),v(uM,{className:`h-24 w-full`})]}):N.kind===`failed`?v(YM,{title:t(`uiLibrary.clipsSection.listFailed`,`The clip list could not be read`),message:N.message}):N.kind===`empty`?c(P,{children:[v(`div`,{role:`status`,children:v(qM,{icon:Kt,title:N.nobodyAnswered?t(`uiLibrary.clipsSection.noSourceAnswered`,`No source could answer for {{band}}`,{band:BF(N.band)}):t(`uiLibrary.clipsSection.noClips`,`No clips in {{band}}`,{band:BF(N.band)}),...N.nobodyAnswered?{}:{description:t(`uiLibrary.clipsSection.asked`,`Asked {{sources}}.`,{sources:N.answered.map(e=>e.label).join(`, `)})}})}),v(KF,{silent:N.silent})]}):c(P,{children:[v(KF,{silent:N.silent}),v(`ul`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2 xl:grid-cols-3`,children:V.map(e=>v(kF,{clip:e,selected:m?.id===e.id,onSelect:h},`${e.source}:${e.id}`))}),v(KM,{currentPage:d,totalItems:B.length,pageSize:GF,onPageChange:f,itemNoun:t(`uiLibrary.clipsSection.itemNoun`,`clips`)})]})}),m===null?null:v(pF,{deviceId:e,clip:m,profile:g,onProfileChange:_})]})}function JF(e,t){let n=e.slot;return t.some(e=>e===n)}function YF(e,t=ya,n=Fn){let r=e=>t.indexOf(e);if(e.status===`pending`)return{kind:`pending`};if(e.status===`error`)return{kind:`unknown`,reason:e.error?.message??n(`uiLibrary.extensions.requestFailed`,`the request failed`)};let i=e.data??[];if(i.length===0)return{kind:`none`};let a=[],o=[],s=[];for(let e of i)e.state===`ok`?JF(e,t)?a.push(e):o.push({slot:e.slot,slotRef:e.slotRef}):s.push(e);return{kind:`rows`,slots:a.toSorted((e,t)=>r(e.slot)-r(t.slot)),unknownSlots:o,unreachable:s}}function XF(e,t,n){return e.includes(t)?e.filter(e=>e!==t):n===`one`?[t]:[...e,t]}function ZF(e,t){return e.filter(e=>e.suggested&&!t.includes(e.deviceId))}function QF(e,t,n){let r=n.trim().toLowerCase();return r.length===0?[]:e.filter(e=>!t.includes(e.deviceId)&&[e.name,e.location??``,e.parentName??``,e.type].some(e=>e.toLowerCase().includes(r)))}function $F(e,t){return e.length!==t.length||e.some((e,n)=>t[n]!==e)}function eI(e){return e.slot===`linked-devices`?e.trackedDeviceIds:void 0}function tI(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function nI(e,t){return e.length!==t.length||e.some(e=>!t.includes(e))}function rI(e){let t=[],n=new Set,r=(e,r)=>{n.has(e)||(n.add(e),t.push({deviceId:e,origin:r}))};for(let t of e.picks)e.invalidPicks.includes(t)||r(t,`pick`);for(let t of e.implied)r(t,`implied`);for(let t of e.tracked)r(t,`not-linked`);return t}function iI(e,t,n){return n.includes(t)?e:e.filter(e=>e!==t)}function aI(e,t,n){return e.slot===`linked-devices`&&n!==void 0?{slot:`linked-devices`,deviceIds:[...t],trackedDeviceIds:[...n]}:{slot:e.slot,deviceIds:[...t]}}E();function oI(e,t){switch(e){case`ok`:return t(`uiLibrary.associationSlotCard.healthOk`,`OK`);case`missing`:return t(`uiLibrary.associationSlotCard.healthMissing`,`Missing`);case`foreign`:return t(`uiLibrary.associationSlotCard.healthForeign`,`Other owner`);case`unavailable`:return t(`uiLibrary.associationSlotCard.healthUnavailable`,`Not a valid source`)}}var sI={ok:`success`,missing:`danger`,foreign:`warning`,unavailable:`warning`};function cI({sources:e,tracked:t}){let n=q();return e.length===0?v(`p`,{className:`text-[11px] text-foreground-subtle italic`,children:n(`uiLibrary.associationSlotCard.noDevicesPicked`,`No devices picked.`)}):v(`ul`,{className:`flex flex-col gap-1`,children:e.map(e=>c(`li`,{className:`flex flex-wrap items-center gap-2 text-[11px]`,children:[v(`span`,{className:`text-foreground`,children:e.name??n(`uiLibrary.associationSlotCard.deviceN`,`Device {{id}}`,{id:e.deviceId})}),v(zk,{variant:sI[e.health],children:oI(e.health,n)}),t?.includes(e.deviceId)===!0&&v(zk,{variant:`info`,children:n(`uiLibrary.associationSlotCard.trackedEvents`,`Tracked events`)}),e.detail!==void 0&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:e.detail})]},e.deviceId))})}function lI({row:e}){let t=q(),n=e.activation;return n===null?null:c(`div`,{className:`flex flex-wrap items-center gap-2 text-[10px] text-foreground-subtle`,children:[v(zk,{variant:n.state===`active`?`success`:n.state===`inactive`?`warning`:`default`,children:n.state===`active`?t(`uiLibrary.associationSlotCard.active`,`Active`):n.state===`inactive`?t(`uiLibrary.associationSlotCard.inactive`,`Inactive`):t(`uiLibrary.associationSlotCard.unknown`,`Unknown`)}),v(`span`,{children:t(`uiLibrary.associationSlotCard.setBy`,`set by {{authority}}`,{authority:n.authority})}),n.detail!==void 0&&v(`span`,{children:n.detail})]})}function uI({sources:e,tracked:t}){let n=q();return e.length===0?null:c(`div`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle`,children:n(`uiLibrary.associationSlotCard.alwaysLinked`,`Always linked (device tree):`)}),v(`ul`,{"aria-label":n(`uiLibrary.associationSlotCard.alwaysLinkedAria`,`Always linked`),className:`flex flex-col gap-1`,children:e.map(e=>c(`li`,{className:`flex flex-wrap items-center gap-2 text-[11px]`,children:[v(`span`,{className:`text-foreground`,children:e.name??n(`uiLibrary.associationSlotCard.deviceN`,`Device {{id}}`,{id:e.deviceId})}),t?.includes(e.deviceId)===!0&&v(zk,{variant:`info`,children:n(`uiLibrary.associationSlotCard.trackedEvents`,`Tracked events`)})]},e.deviceId))})]})}function dI(e,t){switch(e){case`pick`:return null;case`implied`:return t(`uiLibrary.associationSlotCard.originImplied`,`always linked`);case`not-linked`:return t(`uiLibrary.associationSlotCard.originNotLinked`,`not linked any more — untick to remove`)}}function fI({options:e,tracked:t,nameOf:n,onToggle:r}){let i=q();return e.length===0?null:c(`fieldset`,{className:`flex flex-col gap-1`,children:[v(`legend`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.associationSlotCard.produceTracked`,`Produce tracked events on this camera (opt-in):`)}),e.map(({deviceId:e,origin:a})=>c(`label`,{className:`flex items-center gap-2 text-[11px] text-foreground`,children:[v(`input`,{type:`checkbox`,"aria-label":i(`uiLibrary.associationSlotCard.trackedFrom`,`Tracked events from {{name}}`,{name:n(e)}),checked:t.includes(e),onChange:()=>r(e)}),n(e),dI(a,i)!==null&&c(`span`,{className:`text-[10px] text-foreground-subtle`,children:[`· `,dI(a,i)]})]},e))]})}function pI({deviceId:e,row:t,onSaved:n,readOnly:r=!1}){let i=f(null);Cs(i);let a=q(),o=ea[t.slot].descriptor,s=t.value.deviceIds,l=eI(t.value),u=t.impliedSources??[],d=u.map(e=>e.deviceId),p=t.sources.filter(e=>e.health===`unavailable`).map(e=>e.deviceId),[m,h]=C(!1),[g,_]=C(s),[y,b]=C(l??[]),[x,S]=C(``),[w,T]=C(null),E=ap({deviceId:e,slotRef:t.slotRef},{enabled:m}),D=op(),O=E.data?.candidates??[],k=e=>O.find(t=>t.deviceId===e)?.name??t.sources.find(t=>t.deviceId===e)?.name??u.find(t=>t.deviceId===e)?.name??a(`uiLibrary.associationSlotCard.deviceN`,`Device {{id}}`,{id:e}),A=e=>{_(XF(g,e,o.cardinality)),b(iI(y,e,d))},j=()=>{_(s),b(l??[]),T(null),h(!0)},M=async()=>{T(null);try{await D.mutateAsync({deviceId:e,slotRef:t.slotRef,value:aI(t.value,g,l===void 0?void 0:y)}),h(!1),n()}catch(e){T(e instanceof Error?e.message:String(e))}};return c(`div`,{role:`group`,"aria-label":o.label,className:`flex flex-col gap-2 rounded-md border border-border/40 bg-surface-elevated/30 p-3`,children:[c(`div`,{className:`flex items-start justify-between gap-2`,children:[c(`div`,{className:`flex flex-col gap-0.5`,children:[v(`span`,{className:`text-xs font-semibold text-foreground`,children:o.label}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:o.description}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.storedIn`,`Stored in {{authority}}`,{authority:t.authority})})]}),!m&&!r&&v(gA,{variant:`outline`,size:`sm`,onClick:j,children:a(`uiLibrary.associationSlotCard.edit`,`Edit`)})]}),v(lI,{row:t}),!m&&v(cI,{sources:t.sources,tracked:l}),!m&&v(uI,{sources:u,tracked:l}),m&&c(`div`,{className:`flex flex-col gap-2`,children:[v(`ul`,{"aria-label":a(`uiLibrary.associationSlotCard.pickedDevices`,`Picked devices`),className:`flex flex-wrap gap-1.5`,children:g.map(e=>v(`li`,{children:c(`button`,{type:`button`,"aria-label":a(`uiLibrary.associationSlotCard.removeN`,`Remove {{name}}`,{name:k(e)}),onClick:()=>A(e),className:`inline-flex items-center gap-1 rounded-full bg-primary/15 px-2 py-0.5 text-[11px] text-foreground`,children:[k(e),v(Yn,{className:`h-3 w-3`})]})},e))}),E.status===`pending`&&v(`p`,{role:`status`,className:`text-[10px] text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.loadingCandidates`,`Loading candidates…`)}),E.status===`error`&&v(`p`,{role:`alert`,className:`text-[10px] text-danger`,children:a(`uiLibrary.associationSlotCard.candidatesError`,`Candidates could not be read: {{message}}`,{message:E.error.message})}),ZF(O,g).length>0&&c(`div`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.suggested`,`Suggested — added only if you click them:`)}),v(`ul`,{"aria-label":a(`uiLibrary.associationSlotCard.suggestions`,`Suggestions`),className:`flex flex-wrap gap-1.5`,children:ZF(O,g).map(e=>v(`li`,{children:c(`button`,{type:`button`,"aria-label":a(`uiLibrary.associationSlotCard.addN`,`Add {{name}}`,{name:e.name}),onClick:()=>_(XF(g,e.deviceId,o.cardinality)),className:`inline-flex items-center gap-1 rounded-full border border-dashed border-border px-2 py-0.5 text-[11px] text-foreground-muted`,children:[v(Se,{className:`h-3 w-3`}),e.name,e.reason!==null&&c(`span`,{className:`text-foreground-subtle`,children:[`· `,e.reason]})]})},e.deviceId))})]}),v(`input`,{ref:i,type:`search`,"aria-label":a(`uiLibrary.associationSlotCard.searchDevices`,`Search devices`),value:x,onChange:e=>S(e.target.value),placeholder:a(`uiLibrary.associationSlotCard.searchPlaceholder`,`Search devices by name, location or type`),className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground outline-none focus:border-primary`}),QF(O,g,x).length>0&&v(`ul`,{"aria-label":a(`uiLibrary.associationSlotCard.searchResults`,`Search results`),className:`flex max-h-40 flex-col gap-0.5 overflow-y-auto`,children:QF(O,g,x).map(e=>v(`li`,{children:c(`button`,{type:`button`,onClick:()=>{_(XF(g,e.deviceId,o.cardinality)),S(``)},className:`w-full rounded px-2 py-1 text-left text-[11px] text-foreground hover:bg-surface-hover`,children:[e.name,e.parentName!==null&&v(`span`,{className:`ml-1 text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.inParent`,`in {{name}}`,{name:e.parentName})}),e.location!==null&&c(`span`,{className:`ml-1 text-foreground-subtle`,children:[`· `,e.location]})]})},e.deviceId))}),l!==void 0&&v(fI,{options:rI({picks:g,invalidPicks:p,implied:d,tracked:y}),tracked:y,nameOf:k,onToggle:e=>b(tI(y,e))}),w!==null&&v(`p`,{role:`alert`,className:`text-[11px] text-danger break-words`,children:a(`uiLibrary.associationSlotCard.notSaved`,`Not saved: {{reason}}`,{reason:w})}),c(`div`,{className:`flex justify-end gap-2`,children:[v(gA,{variant:`ghost`,size:`sm`,onClick:()=>h(!1),children:a(`uiLibrary.associationSlotCard.cancel`,`Cancel`)}),v(gA,{size:`sm`,disabled:!($F(s,g)||l!==void 0&&nI(l,y))||D.isPending,onClick:()=>void M(),children:a(`uiLibrary.associationSlotCard.save`,`Save`)})]})]})]})}function mI({deviceId:e,slots:t,title:n,readOnly:r=!1}){let i=q(),a=ip({deviceId:e}),o=YF({status:a.status,data:a.data,error:a.error},void 0,i),s=e=>t===void 0||t.some(t=>t===e),l=o.kind===`rows`?o.slots.filter(e=>s(e.slot)):[],u=o.kind===`rows`?o.unknownSlots.filter(e=>s(e.slot)):[],d=n??i(`uiLibrary.extensionsPanel.title`,`Extensions`),f=o.kind===`rows`&&t!==void 0&&l.length===0&&u.length===0&&o.unreachable.length===0;return v($t,{title:d,icon:v(lr,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3`,children:c(`section`,{"aria-label":d,className:`flex flex-col gap-3`,children:[o.kind===`pending`&&v(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle`,children:i(`uiLibrary.extensionsPanel.loading`,`Loading this device’s extensions…`)}),o.kind===`unknown`&&v(YM,{title:i(`uiLibrary.extensionsPanel.unknownTitle`,`Extensions could not be read`),message:i(`uiLibrary.extensionsPanel.unknownMessage`,`Nothing is known about this device’s extensions yet: {{reason}}`,{reason:o.reason}),onRetry:()=>void a.refetch()}),o.kind===`none`&&v(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle italic`,children:i(`uiLibrary.extensionsPanel.none`,`No extensions are offered on this device.`)}),o.kind===`rows`&&c(P,{children:[f&&v(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle italic`,children:i(`uiLibrary.extensionsPanel.filteredToNothing`,`None of these extensions is offered on this device.`)}),l.map(t=>v(pI,{deviceId:e,row:t,onSaved:()=>void a.refetch(),readOnly:r},t.slotRef)),u.map(e=>c(`div`,{role:`alert`,className:`flex flex-col gap-1 rounded-md border border-warning/40 bg-warning/5 p-3`,children:[c(`div`,{className:`flex items-center gap-2`,children:[v(zk,{variant:`warning`,children:i(`uiLibrary.extensionsPanel.unknownSlot`,`Unknown slot`)}),v(`span`,{className:`text-xs font-semibold text-foreground`,children:e.slot})]}),v(`p`,{className:`text-[11px] text-foreground-muted break-words`,children:e.slotRef}),v(`p`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.extensionsPanel.disagree`,`The admin UI and the server disagree: the server offers a slot this admin UI does not know. Update the admin UI, or the server.`)})]},`unknown:${e.slotRef}`)),o.unreachable.map(e=>c(`div`,{role:`alert`,className:`flex flex-col gap-1 rounded-md border border-warning/40 bg-warning/5 p-3`,children:[c(`div`,{className:`flex items-center gap-2`,children:[v(zk,{variant:`warning`,children:i(`uiLibrary.extensionsPanel.unreachable`,`Unreachable`)}),v(`span`,{className:`text-xs font-semibold text-foreground`,children:e.addonId})]}),v(`p`,{className:`text-[11px] text-foreground-muted break-words`,children:e.reason}),v(`p`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.extensionsPanel.unreachableHint`,`The extensions this component owns are unknown until it answers.`)})]},`unreachable:${e.addonId}`))]})]})})}E();var hI=1e3,gI={forward:{pan:0,tilt:1},left:{pan:-1,tilt:0},right:{pan:1,tilt:0},spin:{pan:0,tilt:-1}};function _I(e){let t=e instanceof Error?e.message:String(e);return/not available|no provider|NOT_FOUND|PRECONDITION/i.test(t)}function vI(e,t,n){let r=n?.enabled??!0,i=Ge(e,r?t:null)?.navigation,a=Gr(e,r?t:null,e=>e.navigation),[o,s]=C(null),[c,l]=C([]),[u,d]=C(!1),[p,m]=C(null),[h,g]=C(null),v=f(null);b(()=>{if(!r||!i)return;let e=!1;return(async()=>{try{let[t,n]=await Promise.all([i.getFeatures({}),i.listActions({})]);if(e)return;s(t),l(n)}catch(t){if(e||_I(t))return;m(t instanceof Error?t.message:String(t))}})(),()=>{e=!0}},[i,r]);let y=_(async e=>{if(!(!r||!i)){m(null),d(!0);try{await e()}catch(e){m(e instanceof Error?e.message:String(e))}finally{d(!1)}}},[r,i]),x=_(()=>{v.current!==null&&(clearInterval(v.current),v.current=null)},[]),S=_(async()=>{x(),g(null),i&&await y(()=>i.stop({}))},[x,i,y]),w=_(e=>{if(!i)return;x(),g(e);let t=gI[e],n=()=>{i.move({pan:t.pan,tilt:t.tilt}).catch(e=>{m(e instanceof Error?e.message:String(e))})};n(),v.current=setInterval(n,hI)},[x,i]);b(()=>()=>{v.current!==null&&(clearInterval(v.current),v.current=null,i?.stop({}).catch(()=>void 0))},[i]);let T=_(e=>y(async()=>i?.runAction({actionId:e})),[i,y]),E=_(e=>y(async()=>i?.playSound({soundId:e})),[i,y]),D=_(e=>y(async()=>i?.setLightOn({on:e})),[i,y]),O=_((e,t)=>y(async()=>i?.setLightMode(t===void 0?{mode:e}:{mode:e,level:t})),[i,y]),k=_(e=>y(async()=>i?.setLightLevel({level:e})),[i,y]);return{features:o,actions:c,status:a??null,startDrive:w,stopDrive:S,runAction:T,playSound:E,setLightOn:D,setLightMode:O,setLightLevel:k,busy:u,error:p,driving:h}}var yI={play:Le,pause:Vt,hand:hr,home:Ti,bell:Bt,crosshair:ui,"paw-print":Me,footprints:$e,droplets:Ue,"trash-2":Pe,flashlight:Ot,"flashlight-off":Fi,cat:U,dog:B,clock:In};function bI(e){return yI[e]??$r}var xI=[{direction:`left`,labelKey:`uiLibrary.navigationPanel.turnLeft`,labelFallback:`Turn left`,Icon:Lt},{direction:`forward`,labelKey:`uiLibrary.navigationPanel.forward`,labelFallback:`Forward`,Icon:R},{direction:`right`,labelKey:`uiLibrary.navigationPanel.turnRight`,labelFallback:`Turn right`,Icon:wi},{direction:`spin`,labelKey:`uiLibrary.navigationPanel.turnAround`,labelFallback:`Turn around`,Icon:ze}],SI=`inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-[10px] font-medium transition-colors bg-surface-elevated/40 text-foreground-subtle hover:bg-surface-hover hover:text-foreground disabled:opacity-50`,CI=`bg-success/15 text-success hover:bg-success/25`;function wI({entry:e,disabled:t,onRun:n}){let r=bI(e.icon);return c(`button`,{type:`button`,className:SI,disabled:t,onClick:()=>n(e),title:e.label,"aria-label":e.label,children:[v(r,{className:`h-3.5 w-3.5`}),v(`span`,{children:e.label})]})}function TI({deviceId:e}){let t=q(),n=Rn(),r=Number.isFinite(e),i=vI(n.trpcClient,r?e:0,{enabled:r});if(!r)return v(`div`,{className:`flex items-center justify-center h-full text-[11px] text-foreground-subtle italic`,children:t(`uiLibrary.navigationPanel.notLoaded`,`Device #{{deviceId}} not loaded.`,{deviceId:e})});let a=i.features,o=i.actions.filter(e=>e.enabled&&e.kind===`action`),s=i.actions.filter(e=>e.enabled&&e.kind===`sound`),l=i.status,u=l?.lightMode===`manual`,d=e=>{if(e.kind===`sound`){e.soundId!==void 0&&i.playSound(e.soundId);return}i.runAction(e.id)};return c($t,{title:t(`uiLibrary.navigationPanel.title`,`Navigation`),icon:v(qe,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3 flex flex-col gap-3 overflow-y-auto`,children:[l&&c(`div`,{className:`flex flex-wrap items-center gap-1.5 text-[10px]`,children:[v(`span`,{className:`rounded-full bg-surface-elevated/60 px-2 py-0.5 text-foreground`,children:l.mode}),l.following&&v(`span`,{className:`rounded-full bg-info/15 px-2 py-0.5 text-info`,children:t(`uiLibrary.navigationPanel.following`,`following`)}),l.flash&&v(`span`,{className:`rounded-full bg-warning/15 px-2 py-0.5 text-warning`,children:t(`uiLibrary.navigationPanel.lightOn`,`light on`)})]}),a?.move&&c(`section`,{className:`flex flex-col gap-1.5`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.driveHold`,`Drive (hold)`)}),v(`div`,{className:`grid grid-cols-4 gap-1.5`,children:xI.map(({direction:e,labelKey:n,labelFallback:r,Icon:a})=>v(`button`,{type:`button`,className:$(SI,`justify-center select-none`,i.driving===e&&CI),"aria-label":t(n,r),title:t(n,r),onPointerDown:()=>i.startDrive(e),onPointerUp:()=>void i.stopDrive(),onPointerLeave:()=>{i.driving===e&&i.stopDrive()},onPointerCancel:()=>void i.stopDrive(),children:v(a,{className:`h-4 w-4`})},e))}),a.stop&&c(`button`,{type:`button`,className:$(SI,`justify-center`),onClick:()=>void i.stopDrive(),children:[v(hr,{className:`h-3.5 w-3.5`}),v(`span`,{children:t(`uiLibrary.navigationPanel.stop`,`Stop`)})]})]}),a?.runAction&&o.length>0&&c(`section`,{className:`flex flex-col gap-1.5`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.actions`,`Actions`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:o.map(e=>v(wI,{entry:e,disabled:i.busy,onRun:d},e.id))})]}),a?.playSound&&s.length>0&&c(`section`,{className:`flex flex-col gap-1.5`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.sounds`,`Sounds`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:s.map(e=>v(wI,{entry:e,disabled:i.busy,onRun:d},e.id))})]}),a?.light&&c(`section`,{className:`flex flex-col gap-1.5 border-t border-border/40 pt-2`,children:[c(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.fillLight`,`Fill light`)}),c(`button`,{type:`button`,className:$(SI,l?.flash&&CI),"aria-pressed":l?.flash===!0,disabled:i.busy,onClick:()=>void i.setLightOn(l?.flash!==!0),children:[l?.flash?v(Ot,{className:`h-3.5 w-3.5`}):v(Fi,{className:`h-3.5 w-3.5`}),l?.flash?t(`uiLibrary.navigationPanel.on`,`On`):t(`uiLibrary.navigationPanel.off`,`Off`)]})]}),a.lightMode&&c(`div`,{className:`flex items-center gap-2`,children:[c(`select`,{"aria-label":t(`uiLibrary.navigationPanel.lightMode`,`Light mode`),className:`rounded-md bg-surface-elevated/40 px-2 py-1 text-[10px] text-foreground`,value:l?.lightMode??`auto`,disabled:i.busy,onChange:e=>{let t=e.target.value===`manual`?`manual`:`auto`;i.setLightMode(t,t===`manual`?l?.lightLevel:void 0)},children:[v(`option`,{value:`auto`,children:t(`uiLibrary.navigationPanel.auto`,`Auto`)}),v(`option`,{value:`manual`,children:t(`uiLibrary.navigationPanel.manual`,`Manual`)})]}),u&&v(`input`,{type:`range`,"aria-label":t(`uiLibrary.navigationPanel.lightLevel`,`Light level`),className:`flex-1`,min:40,max:100,step:1,value:l?.lightLevel??100,disabled:i.busy,onChange:e=>void i.setLightLevel(Number(e.target.value))}),u&&v(`span`,{className:`text-[10px] text-foreground-subtle w-8 text-right`,children:l?.lightLevel??100})]})]}),i.error&&v(`div`,{className:`text-[10px] text-danger`,children:i.error})]})}E();var EI={up:{pan:0,tilt:1},down:{pan:0,tilt:-1},left:{pan:-1,tilt:0},right:{pan:1,tilt:0},"up-left":{pan:-1,tilt:1},"up-right":{pan:1,tilt:1},"down-left":{pan:-1,tilt:-1},"down-right":{pan:1,tilt:-1}};function DI(e,t,n){let r=n?.defaultSpeed??.5,i=n?.pulseMs??250,a=n?.enabled??!0,o=Ge(e,a?t:null)?.ptz,[s,c]=C([]),[l,u]=C(null),[d,f]=C(null),[p,m]=C(null),[h,g]=C(!1),[v,y]=C(null),x=_(async()=>{if(!(!a||!o))try{c(await o.getPresets({}))}catch(e){if(zt(e))return;y(e instanceof Error?e.message:String(e))}},[o,a]),S=_(async()=>{if(!(!a||!o))try{u(await o.getHomePreset({}))}catch(e){if(zt(e))return;y(e instanceof Error?e.message:String(e))}},[o,a]),w=_(async()=>{if(!(!a||!o))try{f(await o.getHomeReturn({}))}catch(e){if(zt(e))return;f(null)}},[o,a]),T=_(async()=>{if(!(!a||!o))try{m(await o.getOptions({}))}catch(e){if(zt(e))return;y(e instanceof Error?e.message:String(e))}},[o,a]);b(()=>{x(),T(),S(),w()},[x,T,S,w]);let E=_(async e=>{if(!(!a||!o)){y(null),g(!0);try{return await e()}catch(e){y(e instanceof Error?e.message:String(e));return}finally{g(!1)}}},[a,o]);return{move:_(async(e,t)=>{if(!o)return;let n=EI[e],a=t??r;await E(async()=>{await o.move({pan:n.pan,tilt:n.tilt,speed:a}),await new Promise(e=>setTimeout(e,i)),await o.stop({})})},[o,r,i,E]),startContinuous:_(async(e,t)=>{if(!o)return;let n=EI[e],i=t??r;await E(()=>o.continuousMove({pan:n.pan,tilt:n.tilt,speed:i}))},[o,r,E]),stopContinuous:_(async()=>{o&&await E(()=>o.stop({}))},[o,E]),zoom:_(async(e,t)=>{if(!o)return;let n=e===`in`?1:-1,a=t??r;await E(async()=>{await o.move({zoom:n,speed:a}),await new Promise(e=>setTimeout(e,i)),await o.stop({})})},[o,r,i,E]),goHome:_(async()=>{o&&await E(()=>o.goHome({}))},[o,E]),homePreset:l,setHomePreset:_(async e=>{o&&(await E(()=>o.setHomePreset({presetId:e})),await S())},[o,E,S]),captureHomeHere:_(async()=>{o&&(await E(()=>o.captureHomeHere({})),await S())},[o,E,S]),homeReturn:d,setHomeReturn:_(async(e,t)=>{o&&(await E(()=>o.setHomeReturn({enabled:e,seconds:t})),await w())},[o,E,w]),goToPreset:_(async e=>{o&&await E(()=>o.goToPreset({presetId:e}))},[o,E]),savePreset:_(async e=>{if(o)return E(async()=>{let t=new Set(s.map(e=>Number(e.id)).filter(e=>Number.isInteger(e)&&e>=0)),n=0;for(;t.has(n);)n+=1;let r=String(n);return await o.savePreset({presetId:r,name:e}),await x(),r})},[o,s,x,E]),updatePreset:_(async e=>{o&&await E(async()=>{let t=s.find(t=>t.id===e);await o.savePreset({presetId:e,name:t?.name??``}),await x()})},[o,s,x,E]),deletePreset:_(async e=>{o&&await E(async()=>{await o.deletePreset({presetId:e}),await x()})},[o,x,E]),presets:s,refreshPresets:x,options:p,busy:h,error:v}}E();var OI=`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`;function kI({controls:e}){let t=q(),{homePreset:n,presets:r,setHomePreset:i,captureHomeHere:a,homeReturn:o,setHomeReturn:s,busy:l}=e,[u,d]=C(!1);if(n===null)return null;let f=l||u,p=e=>{d(!0),e().finally(()=>d(!1))},m=n.source===`native`?`This camera stores its own home position. “Set home here” pins it to where the camera is pointing now.`:n.source===`firmware`?`Taken from the camera, which names this preset as its home.`:n.source===`none`?`Nothing is set, so Home refuses rather than moving to an arbitrary preset.`:`Pinned here. Clear it to fall back to the camera’s own home.`;return c(`div`,{className:`flex flex-col gap-2 px-2 pt-2`,children:[n.source!==`native`&&c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.homePresetPicker.label`,`Home preset`)}),c(`select`,{value:n.presetId??``,disabled:f,onChange:e=>{let t=e.target.value===``?null:e.target.value;p(()=>i(t))},className:OI,children:[v(`option`,{value:``,children:t(`uiLibrary.homePresetPicker.notSet`,`Not set — Home is refused`)}),r.map(e=>v(`option`,{value:e.id,children:e.fn===`home`?t(`uiLibrary.homePresetPicker.ownHome`,`{{name}} (camera’s own home)`,{name:e.name||e.id}):e.name||e.id},e.id))]})]}),v(`button`,{type:`button`,disabled:f,onClick:()=>p(()=>a()),className:`self-start rounded-md border border-border px-2 py-1 text-[11px] text-foreground hover:bg-primary/10 disabled:opacity-50`,children:t(`uiLibrary.homePresetPicker.setHere`,`Set home here`)}),o!==null&&c(`div`,{className:`flex flex-col gap-1`,children:[c(`label`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`checkbox`,checked:o.enabled,disabled:f,onChange:e=>p(()=>s(e.target.checked,o.seconds))}),v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.homePresetPicker.returnIdle`,`Return home when idle`)})]}),c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.homePresetPicker.after`,`After (s)`)}),v(`input`,{type:`number`,min:0,max:3600,defaultValue:o.seconds,disabled:f,onBlur:e=>{let t=Number(e.target.value);!Number.isFinite(t)||Math.round(t)===o.seconds||p(()=>s(o.enabled,Math.round(t)))},className:OI})]})]}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:m})]})}E(),bo();function AI({direction:e,icon:t,disabled:n,className:r,variant:i,onMove:a,onStart:o,onStop:s}){let[c,l]=C(null),[u,d]=C(!1),f=_(t=>{if(n)return;t.currentTarget.setPointerCapture(t.pointerId),l(Date.now()),d(!1);let r=setTimeout(()=>{d(!0),o(e)},250);t.currentTarget.dataset.timer=String(r)},[e,n,o]),p=_(t=>{let n=Number(t.currentTarget.dataset.timer);n&&clearTimeout(n),t.currentTarget.dataset.timer=``,u?s():c!==null&&a(e),l(null),d(!1)},[u,e,a,s,c]),m=_(e=>{let t=Number(e.currentTarget.dataset.timer);t&&clearTimeout(t),e.currentTarget.dataset.timer=``,u&&s(),l(null),d(!1)},[u,s]),h=i===`panel`?`h-9 w-9`:`h-7 w-7`,g=i===`panel`?`h-4 w-4`:`h-3.5 w-3.5`;return v(`button`,{type:`button`,disabled:n,onPointerDown:f,onPointerUp:p,onPointerCancel:m,className:$(`flex items-center justify-center rounded transition-colors disabled:opacity-40`,i===`panel`?`text-foreground hover:bg-surface-hover active:bg-surface-hover/80`:`text-white hover:bg-white/15 active:bg-white/25`,h,r),title:e,children:v(t,{className:g})})}function jI({controls:e,mode:t=`overlay`,showPresets:n,showZoom:r=!0,showHome:i=!0,className:a}){let o=q(),{move:s,startContinuous:l,stopContinuous:d,zoom:p,goHome:m,homePreset:h,goToPreset:g,savePreset:y,updatePreset:x,deletePreset:S,presets:w,options:T,busy:E,error:D}=e,O=si(),[k,A]=C(!1),[j,M]=C(``),N=f(null),F=f(null),[I,L]=C(null),z=t===`panel`,B=r&&(T?.hasZoom??!0),V=T?.supportsPresets??w.length>0,H=(n??V)&&V,U=z&&(T?.supportsPresets??!1),ee=T?.maxPresets!==void 0&&w.length>=T.maxPresets,W=_(async()=>{let e=j.trim();!e||E||ee||await y(e)!==void 0&&M(``)},[j,E,ee,y]),G=_(async(e,t)=>{await O({title:o(`uiLibrary.ptzOverlay.deleteTitle`,`Delete preset`),message:o(`uiLibrary.ptzOverlay.deleteMessage`,`Delete PTZ preset "{{label}}"? This removes it from the camera.`,{label:t}),confirmLabel:o(`uiLibrary.ptzOverlay.delete`,`Delete`),variant:`danger`})&&await S(e)},[O,S,o]),te=_(async(e,t)=>{await O({title:o(`uiLibrary.ptzOverlay.updateTitle`,`Update preset`),message:o(`uiLibrary.ptzOverlay.updateMessage`,`Overwrite preset "{{label}}" with the camera's current position?`,{label:t}),confirmLabel:o(`uiLibrary.ptzOverlay.update`,`Update`)})&&await x(e)},[O,x,o]);u(()=>{if(!k){L(null);return}let e=()=>{let e=N.current?.getBoundingClientRect();e&&L({top:e.bottom+4,right:window.innerWidth-e.right})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[k]),b(()=>{if(!k)return;let e=e=>{let t=e.target;F.current?.contains(t)||N.current?.contains(t)||A(!1)},t=e=>{e.key===`Escape`&&A(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[k]);let ne=z?`flex flex-col items-stretch gap-2 w-full h-full p-3`:`pointer-events-auto absolute top-3 right-3 z-10 flex flex-col items-end gap-2`,re=$(z?`flex items-center gap-3 rounded-lg p-2`:`flex items-center gap-2 rounded-lg border border-white/30 bg-zinc-900/90 backdrop-blur-md p-2 shadow-lg shadow-black/40`,E&&`ring-1 ring-primary/40`),K=z?`h-9 w-9`:`h-7 w-7`,ie=z?`h-4 w-4`:`h-3.5 w-3.5`,ae=z?`text-foreground hover:bg-surface-hover`:`text-white hover:bg-white/15`,oe=z?`h-12 w-px bg-border mx-1`:`h-12 w-px bg-white/15 mx-1`;return c(`div`,{className:$(ne,a),children:[D&&v(`div`,{className:`rounded bg-danger/90 px-2 py-1 text-[10px] font-medium text-white shadow-lg max-w-[200px] self-center`,children:o(`uiLibrary.ptzOverlay.error`,`PTZ: {{error}}`,{error:D})}),c(`div`,{className:$(re,z&&`justify-center`),children:[c(`div`,{className:`grid grid-cols-3 gap-0.5`,children:[v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`up`,icon:R,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`left`,icon:kr,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`right`,icon:li,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`down`,icon:Zr,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`})]}),(B||i)&&v(`div`,{className:oe}),c(`div`,{className:`flex flex-col gap-0.5`,children:[B&&c(P,{children:[v(`button`,{type:`button`,onClick:()=>p(`in`),disabled:E,title:o(`uiLibrary.ptzOverlay.zoomIn`,`Zoom in`),className:$(`flex items-center justify-center rounded disabled:opacity-40`,K,ae),children:v(Dr,{className:ie})}),v(`button`,{type:`button`,onClick:()=>p(`out`),disabled:E,title:o(`uiLibrary.ptzOverlay.zoomOut`,`Zoom out`),className:$(`flex items-center justify-center rounded disabled:opacity-40`,K,ae),children:v(Wr,{className:ie})})]}),i&&v(`button`,{type:`button`,onClick:()=>m(),disabled:E||h?.source===`none`,title:h?.source===`none`?o(`uiLibrary.ptzOverlay.noHome`,`No home preset set for this camera — pick one in PTZ settings`):o(`uiLibrary.ptzOverlay.goHome`,`Go home`),className:$(`flex items-center justify-center rounded disabled:opacity-40`,K,ae),children:v(Ti,{className:ie})})]}),H&&c(`div`,{className:`relative`,children:[c(`button`,{ref:N,type:`button`,onClick:()=>A(e=>!e),disabled:E,className:$(`flex items-center gap-1 rounded px-2 text-[10px] disabled:opacity-40`,z?`h-9 text-foreground hover:bg-surface-hover`:`h-7 text-white hover:bg-white/15`),title:o(`uiLibrary.ptzOverlay.presets`,`Presets`),children:[o(`uiLibrary.ptzOverlay.presets`,`Presets`),v(de,{className:$(`h-3 w-3 transition-transform`,k&&`rotate-180`)})]}),k&&I&&xo(c(`div`,{ref:F,style:{position:`fixed`,top:I.top,right:I.right,zIndex:60},className:$(`rounded-lg shadow-xl py-1`,U?`min-w-[220px]`:`min-w-[140px]`,z?`bg-surface border border-border`:`border border-white/30 bg-zinc-900/95 backdrop-blur-md`),children:[w.length===0&&v(`div`,{className:$(`px-3 py-1.5 text-[10px]`,z?`text-foreground-subtle`:`text-white/60`),children:o(`uiLibrary.ptzOverlay.noPresets`,`No presets yet`)}),w.map(e=>c(`div`,{className:$(`group flex items-center`,z?`hover:bg-surface-hover`:`hover:bg-white/15`),children:[v(`button`,{type:`button`,onClick:()=>{g(e.id),A(!1)},disabled:E,className:$(`flex-1 px-3 py-1.5 text-left text-[10px] disabled:opacity-40`,z?`text-foreground`:`text-white`),children:e.name||e.id}),U&&e.writable&&c(P,{children:[v(`button`,{type:`button`,onClick:()=>void te(e.id,e.name||e.id),disabled:E,title:o(`uiLibrary.ptzOverlay.overwriteTitle`,`Overwrite "{{name}}" with current position`,{name:e.name||e.id}),className:$(`flex h-5 w-5 shrink-0 items-center justify-center rounded`,`text-foreground-subtle hover:bg-primary/15 hover:text-primary disabled:opacity-40`),children:v(ui,{className:`h-3 w-3`})}),v(`button`,{type:`button`,onClick:()=>void G(e.id,e.name||e.id),disabled:E,title:o(`uiLibrary.ptzOverlay.deletePreset`,`Delete preset {{name}}`,{name:e.name||e.id}),className:$(`mr-1 flex h-5 w-5 shrink-0 items-center justify-center rounded`,`text-foreground-subtle hover:bg-danger/15 hover:text-danger disabled:opacity-40`),children:v(Yn,{className:`h-3 w-3`})})]})]},e.id)),U&&c(P,{children:[w.length>0&&v(`div`,{className:$(`my-1 h-px`,z?`bg-border`:`bg-white/15`)}),c(`div`,{className:`flex items-center gap-1 px-2 py-1`,children:[v(`input`,{type:`text`,value:j,onChange:e=>M(e.target.value),onKeyDown:e=>{e.key===`Enter`&&W()},disabled:E||ee,placeholder:o(`uiLibrary.ptzOverlay.newPreset`,`New preset name`),maxLength:64,className:$(`min-w-0 flex-1 rounded border px-2 py-1 text-[11px]`,`focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-40`,z?`border-border bg-surface text-foreground placeholder:text-foreground-subtle`:`border-white/30 bg-zinc-800 text-white placeholder:text-white/40`)}),v(`button`,{type:`button`,onClick:()=>void W(),disabled:E||ee||j.trim().length===0,title:ee?o(`uiLibrary.ptzOverlay.limitTitle`,`Camera preset limit reached ({{max}})`,{max:T?.maxPresets}):o(`uiLibrary.ptzOverlay.saveTitle`,`Save current position as a new preset`),className:$(`flex h-7 w-7 shrink-0 items-center justify-center rounded`,`bg-primary/15 text-primary hover:bg-primary/25 disabled:opacity-40`),children:v(Se,{className:`h-3.5 w-3.5`})})]}),ee&&v(`span`,{className:$(`block px-2 pb-1 text-[10px]`,z?`text-foreground-subtle`:`text-white/60`),children:o(`uiLibrary.ptzOverlay.limit`,`Preset limit reached ({{max}}).`,{max:T?.maxPresets})})]})]}),document.body)]})]})]})}E();function MI({deviceId:e}){let t=q(),n=Ge(Rn().trpcClient,e),[r,i]=C(null),[a,o]=C(!1);b(()=>{if(!n)return;let e=!1;return(async()=>{try{let t=await n.ptz?.getStatus({});if(e||!t)return;i(t.autofocus)}catch{}})(),()=>{e=!0}},[n]);let s=_(async()=>{if(!(!n?.ptz||r===null)){o(!0);try{let e=!r;await n.ptz.setAutofocus({enabled:e}),i(e)}catch(e){console.error(`ptz.setAutofocus failed`,e)}finally{o(!1)}}},[n,r]);return r===null?null:c(`div`,{className:`flex items-center justify-between border-t border-border/40 mt-2 pt-2`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.ptzPanel.autofocus`,`Autofocus`)}),c(`button`,{type:`button`,onClick:()=>void s(),disabled:a,"aria-pressed":r,className:`flex items-center gap-1.5 rounded-md px-2 py-1 text-[10px] font-medium transition-colors ${r?`bg-success/15 text-success hover:bg-success/25`:`bg-surface-elevated/40 text-foreground-subtle hover:bg-surface-hover hover:text-foreground`} disabled:opacity-50`,children:[v(`span`,{className:`h-1.5 w-1.5 rounded-full ${r?`bg-success`:`bg-foreground-subtle/40`}`}),r?t(`uiLibrary.ptzPanel.on`,`On`):t(`uiLibrary.ptzPanel.off`,`Off`)]})]})}function NI({deviceId:e}){let t=q(),n=Rn(),r=Number.isFinite(e),i=DI(n.trpcClient,r?e:0,{enabled:r});if(!r)return v(`div`,{className:`flex items-center justify-center h-full text-[11px] text-foreground-subtle italic`,children:t(`uiLibrary.ptzPanel.notLoaded`,`Device #{{deviceId}} not loaded.`,{deviceId:e})});let a=i.options?.hasAutofocus===!0;return c($t,{title:`PTZ`,icon:v(He,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3 flex flex-col overflow-y-auto`,children:[v(jI,{controls:i,mode:`panel`}),v(kI,{controls:i}),a&&v(MI,{deviceId:e})]})}var PI=[0,1,2,3,4,5,6],FI=`00:00`,II=`23:59`;function LI(e,t){return{days:[...PI],start:FI,end:II,mode:e,...t}}function RI(){return{days:[...PI],start:`09:00`,end:`18:00`,mode:`continuous`}}function zI(e,t,n){return e.map((e,r)=>r===t?{...e,...n}:e)}function BI(e,t){return e.filter((e,n)=>n!==t)}var VI=[1,2,3,4,5,6,0];function HI(e,t){switch(t){case 1:return e(`uiLibrary.recordingBands.mon`,`Mon`);case 2:return e(`uiLibrary.recordingBands.tue`,`Tue`);case 3:return e(`uiLibrary.recordingBands.wed`,`Wed`);case 4:return e(`uiLibrary.recordingBands.thu`,`Thu`);case 5:return e(`uiLibrary.recordingBands.fri`,`Fri`);case 6:return e(`uiLibrary.recordingBands.sat`,`Sat`);default:return e(`uiLibrary.recordingBands.sun`,`Sun`)}}var UI=[`continuous`,`events`];function WI(e,t){return t===`continuous`?e(`uiLibrary.recordingBands.continuous`,`Continuous`):e(`uiLibrary.recordingBands.events`,`Events`)}function GI({bands:e,onChange:t,sensorContext:n}){let r=q();return c(`div`,{className:`space-y-2`,children:[e.length===0?v(`p`,{className:`text-[11px] text-foreground-subtle`,children:r(`uiLibrary.recordingBands.empty`,`No bands — nothing is recorded. Add one to start.`)}):e.map((r,i)=>v(YI,{band:r,onChange:n=>t(zI(e,i,n)),onRemove:()=>t(BI(e,i)),sensorContext:n},i)),c(`button`,{type:`button`,onClick:()=>t([...e,RI()]),className:`flex items-center gap-1 rounded-md bg-surface-hover px-2 py-1 text-[11px] text-foreground-subtle hover:text-foreground`,children:[v(Se,{className:`h-3 w-3`}),` `,r(`uiLibrary.recordingBands.add`,`Add band`)]})]})}var KI=Object.keys(Wa);function qI(e,t){return{type:`device-multiselect`,key:`sensorDeviceIds`,label:e(`uiLibrary.recordingBands.sensors`,`Sensors`),description:e(`uiLibrary.recordingBands.sensorsHint`,`Sensors whose ACTIVE edge starts a recording — a contact opening, a PIR firing. Same-location devices are suggested first.`),placeholder:e(`uiLibrary.recordingBands.addSensor`,`Add a sensor…`),maxItems:16,deviceFilter:{caps:KI,types:[`sensor`],excludeDeviceId:t.cameraId},...t.location===null?{}:{suggestLocation:t.location}}}function JI(e){return e===``?void 0:Number(e)}function YI({band:e,onChange:t,onRemove:n,sensorContext:r}){let i=q(),a=n=>{let r=e.days.length===0?VI:e.days;t({days:r.includes(n)?r.filter(e=>e!==n):[...r,n]})},o=n=>t({triggers:{...e.triggers,...n}});return c(`div`,{className:`space-y-1.5 rounded-md border border-border p-2`,children:[c(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[v(`input`,{type:`time`,"aria-label":i(`uiLibrary.recordingBands.start`,`Band start`),value:e.start,onChange:e=>t({start:e.target.value}),className:`rounded-md border border-border bg-background px-1 py-0.5`}),v(`span`,{className:`text-foreground-subtle`,children:`→`}),v(`input`,{type:`time`,"aria-label":i(`uiLibrary.recordingBands.end`,`Band end`),value:e.end,onChange:e=>t({end:e.target.value}),className:`rounded-md border border-border bg-background px-1 py-0.5`}),v(`span`,{className:`flex gap-1`,children:UI.map(n=>v(`button`,{type:`button`,onClick:()=>t({mode:n}),className:`rounded px-2 py-0.5 ${e.mode===n?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:WI(i,n)},n))}),c(`button`,{type:`button`,"aria-label":i(`uiLibrary.recordingBands.audio`,`Band audio`),"aria-pressed":e.audio!==`muted`,title:e.audio===`muted`?i(`uiLibrary.recordingBands.silentTitle`,`Silent — this band records the video-only stream.`):i(`uiLibrary.recordingBands.soundTitle`,`With sound — this band records the camera’s audio.`),onClick:()=>t({audio:e.audio===`muted`?`on`:`muted`}),className:`inline-flex items-center gap-1 rounded px-2 py-0.5 ${e.audio===`muted`?`bg-surface-hover text-foreground-subtle`:`bg-primary/10 text-primary`}`,children:[e.audio===`muted`?v(me,{className:`h-3.5 w-3.5`}):v(mt,{className:`h-3.5 w-3.5`}),e.audio===`muted`?i(`uiLibrary.recordingBands.silent`,`Silent`):i(`uiLibrary.recordingBands.sound`,`Sound`)]}),v(`span`,{className:`flex-1`}),v(`button`,{type:`button`,onClick:n,"aria-label":i(`uiLibrary.recordingBands.remove`,`Remove band`),className:`text-foreground-subtle hover:text-red-500`,children:v(Pe,{className:`h-3.5 w-3.5`})})]}),c(`div`,{className:`flex flex-wrap gap-1`,children:[VI.map(t=>v(`button`,{type:`button`,onClick:()=>a(t),className:`rounded px-1.5 py-0.5 text-[10px] ${e.days.length===0||e.days.includes(t)?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:HI(i,t)},t)),e.days.length===0?v(`span`,{className:`self-center text-[10px] text-foreground-subtle`,children:i(`uiLibrary.recordingBands.everyDay`,`every day`)}):null]}),e.mode===`events`?c(`div`,{className:`space-y-1.5 border-t border-border pt-1.5`,children:[c(`label`,{className:`flex items-center gap-2 text-xs`,children:[v(`input`,{type:`checkbox`,checked:e.triggers?.motion??!1,onChange:e=>o({motion:e.target.checked?!0:void 0})}),i(`uiLibrary.recordingBands.motion`,`Motion`)]}),c(`label`,{className:`flex items-center gap-2 text-xs`,children:[v(`input`,{type:`checkbox`,checked:e.triggers?.audioThresholdDbfs!=null,onChange:e=>o({audioThresholdDbfs:e.target.checked?-30:void 0})}),i(`uiLibrary.recordingBands.audioAbove`,`Audio above threshold`),e.triggers?.audioThresholdDbfs==null?null:v(`input`,{type:`number`,"aria-label":i(`uiLibrary.recordingBands.threshold`,`Audio threshold dBFS`),value:e.triggers.audioThresholdDbfs,onChange:e=>o({audioThresholdDbfs:JI(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-0.5 text-xs`}),v(`span`,{className:`text-foreground-subtle`,children:`dBFS`})]}),c(`div`,{className:`flex flex-wrap items-center gap-1.5 text-xs`,children:[v(`span`,{className:`text-foreground-subtle`,children:i(`uiLibrary.recordingBands.objects`,`Objects`)}),Pee.map(t=>{let n=e.triggers?.objectClasses??[],r=n.includes(t);return v(`button`,{type:`button`,"aria-label":i(`uiLibrary.recordingBands.triggerOn`,`Trigger on {{class}}`,{class:t}),"aria-pressed":r,onClick:()=>{let e=r?n.filter(e=>e!==t):[...n,t];o({objectClasses:e.length>0?e:void 0})},className:`rounded px-1.5 py-0.5 text-[10px] ${r?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:t},t)})]}),r===void 0?null:v(Rk,{field:qI(i,r),value:(e.triggers?.sensorDeviceIds??[]).map(String),onChange:e=>{let t=Array.isArray(e)?e.map(e=>Number(e)).filter(e=>Number.isInteger(e)&&e>0):[];o({sensorDeviceIds:t.length>0?t:void 0})}}),v(`div`,{className:`flex flex-wrap items-center gap-3 text-xs`,children:c(`label`,{className:`flex items-center gap-1`,children:[i(`uiLibrary.recordingBands.postBuffer`,`Post-buffer`),v(`input`,{type:`number`,min:0,value:e.postBufferSec??``,placeholder:String(wee.postBufferSec),onChange:e=>t({postBufferSec:JI(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),`s`]})})]}):null]})}E();var XI=[{value:`off`,labelKey:`uiLibrary.recordingSettings.modeOff`,labelFallback:`Off`},{value:`events`,labelKey:`uiLibrary.recordingSettings.modeEvents`,labelFallback:`Events`},{value:`continuous`,labelKey:`uiLibrary.recordingSettings.modeContinuous`,labelFallback:`Continuous`},{value:`on-device-decision`,labelKey:`uiLibrary.recordingSettings.modeDeviceDecides`,labelFallback:`Device decides`}];function ZI(e,t){return e===`present`?null:e===`pending`?t(`uiLibrary.recordingSettings.noteChecking`,`checking the camera…`):e===`absent`?t(`uiLibrary.recordingSettings.noteAbsent`,`this camera does not report when it needs recording`):t(`uiLibrary.recordingSettings.noteUnknown`,`could not check the camera`)}function QI({initial:e,availableProfiles:t,saving:n,onSave:r,sensorContext:i}){let a=q(),[o,s]=C([...e.bands]),[l,u]=C(e.deviceDecision===!0),[d,f]=C({profiles:e.profiles,segmentSeconds:e.segmentSeconds,retention:e.retention}),p=d.retention??{},m=e=>f({...d,retention:{...p,...e}}),h=e=>e===``?void 0:Number(e),g=Na({enabled:l||o.length>0,bands:o,deviceDecision:l}),_=i?.deviceSignal,y=_===`present`||l,b=Bi(t,d.profiles),x=e=>{let t=b.includes(e)?b.filter(t=>t!==e):[...b,e];f({...d,profiles:t.length?t:void 0})},S=e=>{if(e===`off`){s([]),u(!1);return}if(e===`on-device-decision`){s([]),u(!0);return}u(!1),e!==g&&s([LI(e)])},w=()=>{let e=t.length>0?Bi(t,d.profiles):d.profiles?[...d.profiles]:void 0;r({enabled:l||o.length>0,bands:l?[]:o,...l?{deviceDecision:!0}:{},...e===void 0?{}:{profiles:e},segmentSeconds:d.segmentSeconds,retention:d.retention})},T=Nee.filter(e=>t.includes(e));return c(`div`,{className:`space-y-4`,children:[c(`div`,{className:`flex items-center gap-2 text-xs`,children:[v(`span`,{className:`text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.mode`,`Mode:`)}),XI.map(e=>{let t=e.value===`on-device-decision`,n=t?ZI(_,a):null;return v(`button`,{type:`button`,"aria-label":a(`uiLibrary.recordingSettings.modeAria`,`Mode {{label}}`,{label:a(e.labelKey,e.labelFallback)}),title:n??void 0,disabled:t&&!y,onClick:()=>S(e.value),className:`rounded px-2.5 py-1 ${g===e.value?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`} disabled:cursor-not-allowed disabled:opacity-50`,children:a(e.labelKey,e.labelFallback)},e.value)})]}),l?v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.deviceDecides`,`The DEVICE decides: this camera records for as long as it reports it is in function — a robot while it cleans — and one job is one clip. There is nothing to schedule, so this mode has no bands.`)}):c(`div`,{children:[v(`div`,{className:`mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.bands`,`Recording bands`)}),v(GI,{bands:o,onChange:s,sensorContext:i}),v(`p`,{className:`mt-1.5 text-[11px] text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.bandsHint`,`A band says WHEN to record and HOW. Nothing is recorded outside every band — an empty table means this camera is off.`)})]}),c(`div`,{className:`flex flex-wrap items-center gap-4 text-xs`,children:[T.length>0?c(`div`,{className:`flex items-center gap-2`,children:[v(`span`,{className:`text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.profiles`,`Profiles:`)}),T.map(e=>v(`button`,{type:`button`,onClick:()=>x(e),className:`rounded px-2 py-1 ${b.includes(e)?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:e},e))]}):v(`span`,{className:`text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.noStreams`,`No assigned streams to record yet.`)}),c(`label`,{className:`flex items-center gap-1`,children:[a(`uiLibrary.recordingSettings.segment`,`Segment`),v(`input`,{type:`number`,min:1,value:d.segmentSeconds??``,placeholder:a(`uiLibrary.recordingSettings.default`,`default`),onChange:e=>f({...d,segmentSeconds:h(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),`s`]})]}),c(`div`,{children:[v(`div`,{className:`mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.retention`,`Retention (empty = node default)`)}),c(`div`,{className:`flex flex-wrap items-center gap-3 text-xs`,children:[c(`label`,{className:`flex items-center gap-1`,children:[a(`uiLibrary.recordingSettings.maxAge`,`Max age`),v(`input`,{type:`number`,min:0,value:p.maxAgeDays??``,placeholder:`14`,onChange:e=>m({maxAgeDays:h(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),a(`uiLibrary.recordingSettings.days`,`days`)]}),c(`label`,{className:`flex items-center gap-1`,children:[a(`uiLibrary.recordingSettings.maxSize`,`Max size`),v(`input`,{type:`number`,min:0,value:p.maxSizeGb??``,placeholder:`∞`,onChange:e=>m({maxSizeGb:h(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),`GB`]})]})]}),v(`div`,{className:`flex justify-end`,children:c(`button`,{type:`button`,disabled:n,onClick:w,className:`flex items-center gap-1.5 rounded-md bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground disabled:opacity-60`,children:[n?v(Un,{className:`h-3.5 w-3.5 animate-spin`}):v(Oi,{className:`h-3.5 w-3.5`}),a(`uiLibrary.recordingSettings.save`,`Save`)]})})]})}function $I(e){return JSON.stringify(e)}var eL=[`live`,`loading`,`playing`,`paused`,`gap`,`ended`,`error`];function tL(e){return typeof e==`string`&&eL.includes(e)}function nL(e){return e===`high`||e===`mid`||e===`low`}function rL(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let n={...t};return n.t===`state`&&tL(n.state)?{kind:`state`,state:n.state}:n.t===`position`&&typeof n.epochMs==`number`?{kind:`position`,epochMs:n.epochMs}:n.t===`servedProfile`&&nL(n.profile)&&typeof n.requested==`string`?{kind:`servedProfile`,profile:n.profile,requested:n.requested}:null}E();var iL=Wn(`camstack:recorded-playback`,{bindControlChannel:null,channelOpen:!1,mode:`live`,positionMs:null,send:()=>!1});function aL({children:e}){let t=f(null),[n,r]=C(!1),[i,a]=C(`live`),[o,s]=C(null),c=_(e=>{t.current=e;let n=()=>{t.current===e&&(t.current=null,r(!1),a(`live`),s(null))};e.onopen=()=>{t.current===e&&r(!0)},e.onclose=n,e.onerror=n,e.onmessage=n=>{if(t.current!==e)return;let r=n.data;if(typeof r!=`string`)return;let i=rL(r);i&&(i.kind===`position`?s(i.epochMs):i.kind===`state`&&(a(i.state),i.state===`live`&&s(null)))},e.readyState===`open`?r(!0):e.readyState===`closed`||e.readyState===`closing`?n():r(!1)},[]),l=_(e=>{let n=t.current;return!n||n.readyState!==`open`?!1:(n.send($I(e)),!0)},[]),u=p(()=>({bindControlChannel:c,channelOpen:n,mode:i,positionMs:o,send:l}),[c,n,i,o,l]);return v(iL.Provider,{value:u,children:e})}function oL(){return I(iL)}E();var sL={scrubbing:!1,scrubEpoch:null,playheadEpoch:null,lastSource:null};function cL(e,t){switch(t.type){case`begin`:return{...e,scrubbing:!0,scrubEpoch:null,lastSource:t.source};case`update`:return{...e,scrubbing:!0,scrubEpoch:t.epoch,lastSource:t.source};case`end`:return{...e,scrubbing:!1,scrubEpoch:null,playheadEpoch:t.epoch,lastSource:t.source};case`seek`:return{...e,scrubbing:!1,scrubEpoch:null,playheadEpoch:t.epoch,lastSource:t.source};case`playhead`:return e.scrubbing?e:{...e,playheadEpoch:t.epoch};case`reset`:return sL;default:return e}}function lL(e,t,n=70){return t-e>=n}var uL=2e3;function dL(e,t,n,r=750,i=uL){if(e===null)return!0;let a=Math.abs(t-e.epoch)<=r,o=n-e.at<=i;return!(a&&o)}function fL(e,t){let n=e.scrubbing?e.scrubEpoch:e.playheadEpoch;if(n===null)return null;let r=t.to-t.from;return r<=0?null:Math.min(1,Math.max(0,(n-t.from)/r))}function pL(e,t,n,r={current:null},i=()=>!1){let a=(e,t)=>{let n=Date.now();if(i()){r.current={epoch:e,at:n},t(e);return}dL(r.current,e,n)&&(r.current={epoch:e,at:n},t(e))};return{beginScrub:n=>{t({type:`begin`,source:n}),e.scrubStart()},updateScrub:(r,i)=>{t({type:`update`,epoch:r,source:i});let a=Date.now();lL(n.current,a)&&(n.current=a,e.scrubTo(r))},endScrub:(n,r)=>{t({type:`end`,epoch:n,source:r}),a(n,e.scrubCommit)},seek:(n,r)=>{t({type:`seek`,epoch:n,source:r}),a(n,e.seek)},setPlayhead:e=>t({type:`playhead`,epoch:e}),reset:()=>t({type:`reset`})}}function mL(e,t=()=>!1){let[n,r]=A(cL,sL),i=f(0),a=f(null),o=f(t);return o.current=t,{state:n,...p(()=>pL(e,r,i,a,()=>o.current()),[e])}}E();var hL=O(null);function gL(){let e=I(hL);if(!e)throw Error(`Dialog compound components must be used within <Dialog>`);return e}function _L({children:e,open:t,onOpenChange:n}){let[r,i]=C(!1),a=t??r,o=y(),s=_(e=>{n?.(e),t===void 0&&i(e)},[t,n]);return v(hL.Provider,{value:{open:a,setOpen:s,contentId:o},children:e})}function vL({children:e,...t}){let{setOpen:n}=gL();return v(`button`,{type:`button`,onClick:()=>n(!0),...t,children:e})}var yL=kl(`relative fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 m-0 w-[calc(100vw-2rem)] bg-background-elevated text-foreground border border-border rounded-lg p-4 backdrop:bg-black/50 backdrop:backdrop-blur-sm max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] [&:not([open])]:hidden`,{variants:{width:{sm:`max-w-sm`,md:`max-w-md`,lg:`max-w-lg`,xl:`max-w-4xl`},scroll:{content:`overflow-y-auto overscroll-contain`,body:`flex flex-col overflow-hidden overscroll-contain`},placement:{center:``,"sheet-on-mobile":`bottom-0 left-0 right-0 top-auto w-full max-w-full translate-x-0 translate-y-0 rounded-b-none max-h-[92dvh] pb-[calc(1rem+env(safe-area-inset-bottom))] md:left-1/2 md:top-1/2 md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-lg md:bottom-auto md:pb-4 md:max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))]`}},compoundVariants:[{placement:`sheet-on-mobile`,width:`sm`,class:`md:w-[calc(100vw-2rem)] md:max-w-sm`},{placement:`sheet-on-mobile`,width:`md`,class:`md:w-[calc(100vw-2rem)] md:max-w-md`},{placement:`sheet-on-mobile`,width:`lg`,class:`md:w-[calc(100vw-2rem)] md:max-w-lg`},{placement:`sheet-on-mobile`,width:`xl`,class:`md:w-[calc(100vw-2rem)] md:max-w-4xl`},{scroll:`body`,placement:`sheet-on-mobile`,class:`h-[92dvh] md:h-auto`},{scroll:`body`,placement:`center`,class:`h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] md:h-auto`}],defaultVariants:{width:`md`,placement:`center`,scroll:`content`}}),bL=D(({className:e,width:t,placement:n,scroll:r,children:i,...a},o)=>{let{open:s,setOpen:l,contentId:u}=gL(),d=q(),p=f(null),m=o??p;return b(()=>{let e=m.current;e&&(s&&!e.open&&e.showModal(),!s&&e.open&&e.close())},[s,m]),c(`dialog`,{ref:m,id:u,className:$(yL({width:t,placement:n,scroll:r}),e),onClose:()=>l(!1),...a,children:[v(jl,{type:`button`,variant:`ghost`,size:`sm`,icon:Yn,"aria-label":d(`uiLibrary.dialog.close`,`Close`),className:`absolute right-4 top-4 z-10 shrink-0`,onClick:()=>l(!1)}),v(xs,{id:u,modal:!0,enabled:s,children:i})]})});bL.displayName=`DialogContent`;function xL({className:e,...t}){return v(`div`,{className:$(`flex flex-col gap-1 mb-3 shrink-0 pr-10`,e),...t})}function SL({className:e,...t}){return v(`div`,{className:$(`flex-1 min-h-0 overflow-y-auto overscroll-contain`,e),...t})}function CL({className:e,...t}){return v(`div`,{className:$(`flex justify-end gap-2 mt-4 shrink-0`,e),...t})}function wL({className:e,...t}){return v(`h2`,{className:$(`text-sm font-semibold text-foreground`,e),...t})}function TL({className:e,...t}){return v(`p`,{className:$(`text-xs text-foreground-muted`,e),...t})}E();function EL({value:e,onChange:t}){let n=q(),r=_x({}),i=gx(),[a,o]=C(``),[s,l]=C(null),u=r.data??[],d=async()=>{l(null);let e=await i.mutateAsync({name:a});if(e.kind===`refused`){l(e.reason);return}o(``),await r.refetch(),t(e.collection.id)};return c(`div`,{className:`space-y-2`,"data-testid":`training-collection-picker`,children:[u.length>0?v(Hl,{"aria-label":n(`uiLibrary.trainingCollectionPicker.collection`,`Collection`),value:e??``,options:[{value:``,label:n(`uiLibrary.trainingCollectionPicker.choose`,`Choose a collection…`)},...u.map(e=>({value:e.id,label:`${e.name} (${String(e.frameCount)})`}))],onChange:e=>{e.target.value!==``&&t(e.target.value)}}):v(`p`,{className:`text-xs text-foreground-subtle`,children:r.isLoading?n(`uiLibrary.trainingCollectionPicker.reading`,`Reading the collections…`):n(`uiLibrary.trainingCollectionPicker.none`,`No collection yet — create one.`)}),c(`div`,{className:`flex items-center gap-2`,children:[v(Nl,{className:`flex-1`,"aria-label":n(`uiLibrary.trainingCollectionPicker.newName`,`New collection name`),placeholder:n(`uiLibrary.trainingCollectionPicker.newPlaceholder`,`New collection (e.g. missed at night)`),value:a,onChange:e=>{o(e.target.value)}}),c(gA,{type:`button`,variant:`secondary`,size:`sm`,disabled:i.isPending||a.trim()===``,onClick:()=>void d(),children:[v(Se,{className:`h-3 w-3`}),n(`uiLibrary.trainingCollectionPicker.create`,`Create`)]})]}),s!==null&&v(`p`,{className:`text-xs text-danger`,children:s===`empty-name`?n(`uiLibrary.trainingCollectionPicker.emptyName`,`Give the collection a name.`):n(`uiLibrary.trainingCollectionPicker.duplicateName`,`A collection with that name already exists.`)})]})}var DL={"unknown-collection":`That collection no longer exists — pick another one.`,"still-unavailable":`No frame could be taken from the recording at that moment.`,"still-busy":`The recorder is busy decoding other frames. Try again in a moment.`,"unreadable-image":`The recorder returned something that is not a picture.`,"write-failed":`The frame could not be stored. Check the artifacts storage.`};function OL(e,t){let n=DL[e];return t!==void 0&&t!==``?`${n} (${t})`:n}E();function kL({deviceId:e,epochMs:t}){let n=q(),r=_x({},{retry:!1}),i=xx(),[a,o]=C(!1),[s,l]=C(null),[u,d]=C(null),[f,p]=C(null);if(r.isError)return null;let m=async()=>{if(s===null||u===null)return;let t=await i.mutateAsync({collectionId:s,deviceId:e,epochMs:u}),a=r.data?.find(e=>e.id===s)?.name??n(`uiLibrary.sendFrameToTraining.theCollection`,`the collection`);p(t.kind===`added`?{kind:`added`,reused:t.reused,collection:a}:{kind:`refused`,text:OL(t.reason,t.detail)}),t.kind===`added`&&await r.refetch()};return c(P,{children:[c(gA,{type:`button`,variant:`secondary`,size:`sm`,"data-testid":`send-frame-to-training`,disabled:t===null,title:t===null?n(`uiLibrary.sendFrameToTraining.playFirst`,`Play back a recording first — the frame at the playhead is the one sent`):n(`uiLibrary.sendFrameToTraining.addFrame`,`Add the frame at the playhead to a training collection`),onClick:()=>{d(t),p(null),o(!0)},children:[v(ct,{className:`h-3.5 w-3.5`}),n(`uiLibrary.sendFrameToTraining.button`,`Send frame to training`)]}),v(_L,{open:a,onOpenChange:e=>!i.isPending&&o(e),children:c(bL,{children:[c(xL,{children:[v(wL,{children:n(`uiLibrary.sendFrameToTraining.title`,`Send this frame to training`)}),v(TL,{children:u===null?``:n(`uiLibrary.sendFrameToTraining.description`,`The camera's frame at {{time}} is taken from the recording at full resolution and added to the collection. Annotate it on the Retrain page — including what the model missed.`,{time:new Date(u).toLocaleString()})})]}),v(EL,{value:s,onChange:l}),f!==null&&v(`p`,{className:`mt-2 text-xs ${f.kind===`added`?`text-success`:`text-danger`}`,role:`status`,children:f.kind===`added`?f.reused?n(`uiLibrary.sendFrameToTraining.reused`,`That moment was already in the dataset; it is now in {{collection}}.`,{collection:f.collection}):n(`uiLibrary.sendFrameToTraining.added`,`Added to {{collection}}.`,{collection:f.collection}):f.text}),c(CL,{children:[v(gA,{type:`button`,variant:`ghost`,size:`sm`,disabled:i.isPending,onClick:()=>{o(!1)},children:f?.kind===`added`?n(`uiLibrary.sendFrameToTraining.done`,`Done`):n(`uiLibrary.sendFrameToTraining.cancel`,`Cancel`)}),c(gA,{type:`button`,size:`sm`,disabled:s===null||i.isPending||f?.kind===`added`,onClick:()=>void m(),children:[i.isPending&&v(Un,{className:`h-3.5 w-3.5 animate-spin`}),n(`uiLibrary.sendFrameToTraining.send`,`Send`)]})]})]})})]})}E();function AL({windowFrom:e,windowTo:t,spans:n,playheadMs:r,onSeek:i,onScrubStart:a,onScrubMove:o,onScrubEnd:s}){let l=q(),[u,d]=C(null),p=!!s,[m,h]=C(!1),g=f(null),_=n=>{let r=n.currentTarget.getBoundingClientRect();if(r.width<=0)return null;let i=(n.clientX-r.left)/r.width;return e+Math.min(1,Math.max(0,i))*(t-e)},y=e=>{if(p)return;let t=_(e);t!==null&&i(t)},b=e=>{if(!p)return;e.currentTarget.setPointerCapture(e.pointerId),h(!0),a?.();let t=_(e);t!==null&&(g.current=t,o?.(t))},x=e=>{if(!p||!m)return;let t=_(e);t!==null&&(g.current=t,o?.(t))},S=e=>{if(!p||!m)return;h(!1);let t=_(e)??g.current;g.current=null,t!==null&&s?.(t)},w=()=>{if(!m)return;h(!1);let e=g.current;g.current=null,e!==null&&s?.(e)},T=e=>{let t=_(e);if(t===null)return;let n=e.currentTarget.getBoundingClientRect();d({xPct:n.width>0?(e.clientX-n.left)/n.width*100:0,ms:t})},E=()=>{d(null)},D=u===null?null:new Date(u.ms).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`});return c(`div`,{className:`relative`,children:[c(`div`,{"data-testid":`coverage-track`,"data-scrubbing":m?`true`:`false`,onClick:y,onPointerDown:b,onPointerMove:x,onPointerUp:S,onPointerCancel:w,onMouseMove:T,onMouseLeave:E,className:`relative h-5 overflow-hidden rounded bg-background/40 ${p?`cursor-ew-resize touch-none select-none`:`cursor-pointer`}`,role:`group`,"aria-label":l(`uiLibrary.coverageTrack.ariaLabel`,`Recorded coverage timeline`),children:[n.map(n=>{let r=IM(n.startMs,e,t),i=IM(n.endMs,e,t);return v(`div`,{"data-testid":`coverage-band`,className:`absolute inset-y-0 bg-gradient-to-b from-primary to-primary/80`,style:{left:`${r}%`,width:`${Math.max(.5,i-r)}%`}},`${n.startMs}-${n.endMs}`)}),r===null?null:v(`div`,{"data-testid":`coverage-playhead`,className:`absolute inset-y-[-2px] w-0.5 bg-amber-500 shadow-[0_0_6px] shadow-amber-500`,style:{left:`${IM(r,e,t)}%`}})]}),u!==null&&D!==null?v(`div`,{"data-testid":`coverage-hover-tooltip`,className:`pointer-events-none absolute top-full z-10 mt-0.5 -translate-x-1/2 rounded bg-popover px-1.5 py-0.5 text-[9px] text-popover-foreground shadow`,style:{left:`${u.xPct}%`},children:D}):null]})}E();function jL({mediaUrl:e,kind:t}){let[n,r]=C(!1);return e&&!n?v(`img`,{src:e,alt:``,className:`h-full w-full object-cover`,loading:`lazy`,onError:()=>r(!0)}):v(`div`,{className:`flex h-full w-full items-center justify-center text-white/30`,children:v(ML,{kind:t,large:!0})})}function ML({kind:e,large:t=!1}){return v(e===`object`?Ze:e===`audio`?mt:ri,{className:t?`h-7 w-7`:`h-3.5 w-3.5 text-foreground-subtle`})}var NL=[`motion`,`object`,`audio`];function PL(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function FL({clips:e,loading:t,busyKey:n,onPlay:r,enabledKinds:i,onToggleKind:a,hasMore:o,onLoadMore:s}){let l=q(),u=v(`div`,{className:`flex items-center gap-3 pb-1`,children:NL.map(e=>c(`label`,{className:`flex cursor-pointer items-center gap-1 text-xs text-foreground-subtle select-none`,children:[v(`input`,{type:`checkbox`,checked:i.has(e),onChange:()=>a(e),className:`h-3.5 w-3.5 accent-primary`}),e]},e))});return t&&e.length===0?c(`div`,{className:`space-y-2`,children:[u,v(`div`,{className:`px-1 py-2 text-xs text-foreground-subtle`,children:l(`uiLibrary.eventBucketStrip.loading`,`Loading events…`)})]}):e.length===0?c(`div`,{className:`space-y-2`,children:[u,v(`div`,{className:`px-1 py-2 text-xs text-foreground-subtle`,children:l(`uiLibrary.eventBucketStrip.empty`,`No events in this window.`)})]}):c(`div`,{className:`space-y-2`,children:[u,t?v(`div`,{className:`px-1 text-[10px] text-foreground-subtle`,children:l(`uiLibrary.eventBucketStrip.loading`,`Loading events…`)}):null,v(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-3`,children:e.map(e=>{let t=`${e.kind}:${e.id}`;return c(`button`,{type:`button`,disabled:n!==null,onClick:()=>r(e),className:`group overflow-hidden rounded-lg border border-border text-left transition-colors hover:border-primary disabled:opacity-60`,children:[c(`div`,{className:`relative aspect-video bg-black/90`,children:[v(jL,{mediaUrl:e.mediaUrl,kind:e.kind}),v(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/0 transition-colors group-hover:bg-black/30`,children:n===t?v(Un,{className:`h-6 w-6 animate-spin text-white`}):v(Le,{className:`h-6 w-6 text-white opacity-0 transition-opacity group-hover:opacity-100`})})]}),c(`div`,{className:`flex items-center gap-1.5 bg-surface px-2 py-1.5`,children:[v(ML,{kind:e.kind}),c(`div`,{className:`min-w-0 flex-1`,children:[v(`div`,{className:`truncate text-xs font-medium text-foreground`,children:e.label}),v(`div`,{className:`text-[10px] text-foreground-subtle`,children:PL(e.timestamp)})]})]})]},t)})}),e.length>0?c(`div`,{className:`flex items-center gap-2 pt-1 text-[11px] text-foreground-subtle`,children:[v(`span`,{children:l(`uiLibrary.eventBucketStrip.shown`,`({{count}} shown)`,{count:e.length})}),o?v(`button`,{type:`button`,onClick:s,className:`rounded px-2 py-0.5 text-[11px] font-medium text-primary hover:underline`,children:l(`uiLibrary.eventBucketStrip.loadMore`,`Load more`)}):null]}):null]})}function IL(e){let t=e.filter(e=>e.endMs>e.startMs).map(e=>({startMs:e.startMs,endMs:e.endMs})).toSorted((e,t)=>e.startMs-t.startMs),n=[];for(let e of t){let t=n[n.length-1];t&&e.startMs<=t.endMs?e.endMs>t.endMs&&(n[n.length-1]={startMs:t.startMs,endMs:e.endMs}):n.push(e)}return n}function LL(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${Math.round(e)} B`;let t=[`KB`,`MB`,`GB`,`TB`,`PB`],n=e/1024,r=`KB`;for(let e of t){if(r=e,n<1024)break;n/=1024}return`${n>=100?Math.round(n).toString():n.toFixed(1)} ${r}`}E();var RL=[`motion`,`object`,`audio`],zL=60,BL=18e3/100,VL=5e3,HL=1e4,UL=[];function WL(e,t){switch(t){case`live`:return e(`uiLibrary.recordingTimeline.modeLive`,`Live`);case`loading`:return e(`uiLibrary.recordingTimeline.modeLoading`,`Loading…`);case`playing`:return e(`uiLibrary.recordingTimeline.modePlaying`,`Playing`);case`paused`:return e(`uiLibrary.recordingTimeline.modePaused`,`Paused`);case`gap`:return e(`uiLibrary.recordingTimeline.modeGap`,`No footage`);case`ended`:return e(`uiLibrary.recordingTimeline.modeEnded`,`Ended`);case`error`:return e(`uiLibrary.recordingTimeline.modeError`,`Error`)}}function GL({deviceId:e}){let t=q(),n=Rn(),r=lF(),[i,a]=C(null),[o,s]=C(null),[l,u]=C(null),[d,m]=C(null),h=oL(),{send:g,mode:y,positionMs:x}=h,[S,w]=C(!1),T=h.channelOpen&&!S,E=f(T);E.current=T;let D=p(()=>({scrubStart:()=>{},scrubTo:()=>{},scrubCommit:e=>{g({t:`scrubCommit`,epoch:e})},seek:e=>{g({t:`seek`,epoch:e})}}),[g]),O=f(y);O.current=y;let{state:k,beginScrub:A,updateScrub:j,endScrub:M,seek:N,setPlayhead:P,reset:F}=mL(D,_(()=>O.current===`live`,[]));b(()=>{x!==null&&P(x)},[x,P]),b(()=>{(!h.channelOpen||y===`live`)&&F()},[h.channelOpen,y,F]);let I=_(()=>{g({t:`goLive`}),F()},[g,F]),L=_(()=>{g({t:`setRate`,rate:+(O.current===`paused`)})},[g]),[R,z]=C(()=>new Set(RL)),B=_(e=>{z(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),[V,H]=C(zL),U=_(()=>{H(e=>e+zL)},[]);b(()=>{H(zL)},[i]);let[ee,W]=C(()=>new Date),[G,te]=C(()=>LM(new Date,Date.now())),ne=p(()=>LM(ee,Date.now()),[ee]),re=_(e=>{W(e),te(LM(e,Date.now())),a(null)},[]),K=_(e=>{te(e),a(null)},[]),ie=f(null),ae=_(e=>{let t=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.shiftKey?e.deltaY:0;if(t===0)return;e.preventDefault();let n=t*BL;te(e=>BM(e,ne,n))},[ne]),oe=HM(G.toMs-G.fromMs),se=Rw({deviceId:e,provider:ta,fromMs:G.fromMs,toMs:G.toMs}),ce=_b({deviceId:e,since:G.fromMs,until:G.toMs,bucketMs:oe}),le=se.data?.read===`unreadable`,ue=se.data?.read===`read`?se.data.ranges:UL,de=p(()=>IL(ue),[ue]),pe=p(()=>NM(ce.data??[],G.fromMs,oe),[ce.data,G.fromMs,oe]),me=i===null?void 0:pe.find(e=>e.index===i),he=me!==void 0,ge=me?.startMs??0,_e=me?Math.min(me.endMs,G.toMs):0,ve=lb({deviceId:e,since:ge,until:_e,limit:V,projection:`slim`},{enabled:he&&R.has(`object`)}),ye=cb({deviceId:e,since:ge,until:_e,limit:V,projection:`slim`},{enabled:he&&R.has(`motion`)}),be=ub({deviceId:e,since:ge,until:_e,limit:V,projection:`slim`},{enabled:he&&R.has(`audio`)}),xe=p(()=>{if(!me)return[];let e=[];if(R.has(`object`))for(let t of ve.data??[])e.push({id:String(t.id),timestamp:t.timestamp,kind:`object`,label:t.label??t.className,mediaUrl:t.mediaUrl});if(R.has(`motion`))for(let n of ye.data??[])e.push({id:String(n.id),timestamp:n.timestamp,kind:`motion`,label:t(`uiLibrary.recordingTimeline.motionClip`,`Motion ({{count}})`,{count:n.regionCount}),mediaUrl:n.mediaUrl});if(R.has(`audio`))for(let n of be.data??[])e.push({id:String(n.id),timestamp:n.timestamp,kind:`audio`,label:n.classification?.className??t(`uiLibrary.recordingTimeline.audioClip`,`Audio`),mediaUrl:n.mediaUrl});return e.toSorted((e,t)=>t.timestamp-e.timestamp)},[me,R,ve.data,ye.data,be.data,t]),Se=p(()=>!!(R.has(`object`)&&(ve.data?.length??0)===V||R.has(`motion`)&&(ye.data?.length??0)===V||R.has(`audio`)&&(be.data?.length??0)===V),[R,ve.data,ye.data,be.data,V]),Ce=_(async(t,i,a,o,c)=>{u(t),m(null);try{let t=await n.trpcClient.recording.getPlayback.query({deviceId:e,provider:ta,fromMs:i,toMs:a});t.kind===`hls`&&t.manifest.playbackUrl?(s(c),r.play({url:t.manifest.playbackUrl,label:o})):m(t.kind===`none`?`No playable footage for this selection — ${t.reason}`:`No playable footage for this selection.`)}catch{m(`Could not load this recording.`)}finally{u(null)}},[n,e,r]),we=_(e=>{let t=FM(e,de);if(!t)return;if(E.current){N(t.fromMs,`timeline`);return}let n=`Recording · ${new Date(t.fromMs).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}`;Ce(`seek:${t.fromMs}`,t.fromMs,t.toMs,n,t.fromMs)},[de,Ce,N]),Te=_(()=>{A(`timeline`)},[A]),Ee=_(e=>{j(e,`timeline`)},[j]),De=_(e=>{M(FM(e,de)?.fromMs??e,`timeline`)},[de,M]),Oe=_(e=>{if(E.current){N(e.timestamp-VL,`timeline`);return}let t=`${e.label} · ${new Date(e.timestamp).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}`;Ce(`${e.kind}:${e.id}`,e.timestamp-VL,e.timestamp+HL,t,e.timestamp)},[Ce,N]),ke=_(e=>{a(t=>t===e?null:e)},[]),Ae=se.isLoading,je=ce.isLoading,Me=(ve.isLoading||ye.isLoading||be.isLoading)&&he,Ne=p(()=>UM(G.fromMs,G.toMs,5),[G.fromMs,G.toMs]),Pe=T?k.scrubbing?k.scrubEpoch:k.playheadEpoch:o,Fe=T&&(y===`playing`||y===`paused`);return c(`div`,{className:`space-y-3`,children:[se.isError?v(YM,{variant:`warning`,message:t(`uiLibrary.recordingTimeline.recorderUnavailable`,`Recorder unavailable — the recording service may not be running for this node.`)}):null,le?v(YM,{variant:`warning`,message:t(`uiLibrary.recordingTimeline.availabilityUnreadable`,`CamStack could not be asked about this camera's recordings — this bar shows nothing, which is not the same as no footage.`)}):null,d?v(YM,{variant:`warning`,message:d}):null,v(rF,{day:ee,onDayChange:re,view:G,dayBounds:ne,onViewChange:K}),v(`div`,{className:`flex justify-end`,children:v(kL,{deviceId:e,epochMs:Pe})}),h.channelOpen?c(`div`,{"data-testid":`frame-push-status-row`,className:`flex flex-wrap items-center gap-2 text-[10px]`,children:[v(`span`,{"data-testid":`frame-push-mode-chip`,className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-semibold uppercase tracking-wider ${T&&y!==`live`?y===`error`?`bg-rose-500/15 text-rose-400`:`bg-primary/15 text-primary`:`bg-background/40 text-foreground-subtle`}`,children:T?WL(t,y):t(`uiLibrary.recordingTimeline.hlsMode`,`HLS mode`)}),T&&x!==null&&!k.scrubbing?v(`span`,{className:`tabular-nums text-foreground-subtle`,children:new Date(x).toLocaleTimeString()}):null,Fe?c(`button`,{type:`button`,"data-testid":`frame-push-rate-toggle`,onClick:L,className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-medium text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground`,title:y===`paused`?t(`uiLibrary.recordingTimeline.resumeTitle`,`Resume playback`):t(`uiLibrary.recordingTimeline.pauseTitle`,`Pause playback`),children:[v(y===`paused`?Le:Vt,{className:`h-3 w-3`}),y===`paused`?t(`uiLibrary.recordingTimeline.resume`,`Resume`):t(`uiLibrary.recordingTimeline.pause`,`Pause`)]}):null,T&&y!==`live`?c(`button`,{type:`button`,"data-testid":`frame-push-go-live`,onClick:I,className:`inline-flex items-center gap-1 rounded bg-danger/10 px-1.5 py-0.5 font-medium text-danger transition-colors hover:bg-danger/20`,title:t(`uiLibrary.recordingTimeline.liveTitle`,`Return to the live stream`),children:[v(fe,{className:`h-3 w-3`}),t(`uiLibrary.recordingTimeline.goLive`,`Go live`)]}):null,v(`button`,{type:`button`,"data-testid":`frame-push-hls-toggle`,onClick:()=>w(e=>!e),className:`ml-auto inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-medium transition-colors ${S?`bg-primary/15 text-primary`:`text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,title:t(`uiLibrary.recordingTimeline.hlsTitle`,`Play recordings through the HLS player instead of the live WebRTC session`),children:`HLS`})]}):null,c(`div`,{ref:ie,onWheel:ae,className:`space-y-1`,children:[c(`div`,{className:`space-y-1`,children:[v(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:t(`uiLibrary.recordingTimeline.recorded`,`Recorded`)}),Ae?v(`div`,{className:`h-5 animate-pulse rounded bg-background/40`}):de.length===0?v(qM,{icon:Kt,title:t(`uiLibrary.recordingTimeline.noRecordings`,`No recordings for this window.`)}):v(AL,{windowFrom:G.fromMs,windowTo:G.toMs,spans:de,playheadMs:Pe,onSeek:we,...T?{onScrubStart:Te,onScrubMove:Ee,onScrubEnd:De}:{}})]}),c(`div`,{className:`space-y-1`,children:[v(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:t(`uiLibrary.recordingTimeline.density`,`Events · density`)}),je?v(`div`,{className:`h-6 animate-pulse rounded bg-background/40`}):v(eF,{windowFrom:G.fromMs,windowTo:G.toMs,buckets:pe,selectedIndex:i,onSelectBucket:ke})]}),v(`div`,{className:`relative h-3`,children:Ne.map(e=>v(`span`,{className:`absolute -translate-x-1/2 text-[9px] text-foreground-subtle`,style:{left:`${e.pct}%`},children:e.label},e.pct))})]}),me?v(FL,{clips:xe,loading:Me,busyKey:l,onPlay:Oe,enabledKinds:R,onToggleKind:B,hasMore:Se,onLoadMore:U}):v(`p`,{className:`text-[11px] text-foreground-subtle`,children:T?t(`uiLibrary.recordingTimeline.helpFramePush`,`Click or drag the coverage bar to play from any point (frames play in the main player above), or click a density bar to browse that window’s events.`):t(`uiLibrary.recordingTimeline.helpHls`,`Click the coverage bar to play from any point, or a density bar to browse that window’s events.`)})]})}E();var KL=1440*60*1e3;function qL({deviceId:e}){let t=q(),n=k(),r=vT({deviceId:e}),i=Gw({deviceId:e}),a=rm({deviceId:e}).data?.location??null,o=lm({deviceId:e}),s=o.status===`pending`?`pending`:o.status===`error`?`unknown`:o.data.entries.some(e=>e.capName===`recording-signal`)?`present`:`absent`,l=Xw(),u=Zw(),{data:d}=bD(void 0,{staleTime:3e4}),f=p(()=>vee(d??[],e).map(e=>e.profile),[d,e]),m=t=>{l.mutate({deviceId:e,config:t},{onSuccess:()=>{i.refetch(),r.refetch()}})},h=_(()=>{u.mutate({deviceId:e},{onSuccess:()=>{n.invalidateQueries({queryKey:[[`recording`]]})}})},[e,n,u]),g=p(()=>Date.now(),[]),y=Rw({deviceId:e,provider:ta,fromMs:g-KL,toMs:g}),b=r.data?za.safeParse(r.data):null,x=b?.success?b.data:null,S=i.data?Dee.safeParse(i.data):null,C=S?.success?S.data:null,w=y.data?.read===`unreadable`,T=y.data?.read===`read`?y.data.ranges:[],E=T.reduce((e,t)=>e+Math.max(0,t.endMs-t.startMs),0),D=x?.enabled===!0&&x.activeMode===`continuous`;return c(`div`,{className:`space-y-3`,children:[v($t,{title:t(`uiLibrary.recordingPanel.settings`,`Settings`),icon:v(qn,{className:`h-3.5 w-3.5 text-foreground-subtle`}),children:C?v(QI,{initial:C,availableProfiles:f,saving:l.isPending,onSave:m,sensorContext:{cameraId:e,location:a,deviceSignal:s}},JSON.stringify(C)):v(`div`,{className:`px-1 py-2 text-xs text-foreground-subtle`,children:t(`uiLibrary.recordingPanel.loadingSettings`,`Loading settings…`)})}),v($t,{title:t(`uiLibrary.recordingPanel.recording`,`Recording`),icon:v(Kt,{className:`h-3.5 w-3.5 text-foreground-subtle`}),headerRight:c(`span`,{className:`flex items-center gap-2`,children:[D?c(`span`,{className:`flex items-center gap-1.5 text-[10px] text-emerald-500`,children:[v(fe,{className:`h-3 w-3`}),` `,t(`uiLibrary.recordingPanel.recording`,`Recording`)]}):null,v(`button`,{type:`button`,onClick:h,disabled:u.isPending,"aria-label":t(`uiLibrary.recordingPanel.rescanStorage`,`Rescan storage`),className:`flex items-center rounded p-0.5 text-foreground-subtle transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,children:v(_e,{className:`h-3.5 w-3.5 ${u.isPending?`animate-spin`:``}`})})]}),children:c(`div`,{className:`space-y-3`,children:[c(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-3`,children:[v(an,{label:t(`uiLibrary.recordingPanel.status`,`Status`),icon:v(yi,{className:`h-3.5 w-3.5 ${D?`text-emerald-500`:``}`}),footer:x?.nodeId?t(`uiLibrary.recordingPanel.nodeFooter`,`node: {{nodeId}}`,{nodeId:x.nodeId}):void 0,children:r.isLoading?`…`:D?t(`uiLibrary.recordingPanel.recordingContinuous`,`Recording (continuous)`):t(`uiLibrary.recordingPanel.idle`,`Idle`)}),v(an,{label:t(`uiLibrary.recordingPanel.storage`,`Storage`),icon:v(pt,{className:`h-3.5 w-3.5`}),children:x?LL(x.storageBytes):`—`}),v(an,{label:t(`uiLibrary.recordingPanel.recorded24h`,`Recorded (24h)`),icon:v(In,{className:`h-3.5 w-3.5`}),footer:w?t(`uiLibrary.recordingPanel.nobodyCouldLook`,`nobody could look`):t(`uiLibrary.recordingPanel.segmentRange`,{one:`{{count}} segment range`,other:`{{count}} segment ranges`},{count:T.length}),children:y.isLoading?`…`:w?`—`:mF(E)})]}),r.isError?v(YM,{variant:`warning`,message:t(`uiLibrary.recordingPanel.recorderUnavailable`,`Recorder unavailable — the recording service may not be running for this node.`)}):null,v(GL,{deviceId:e}),v(`p`,{className:`text-[11px] text-foreground-subtle`,children:t(`uiLibrary.recordingPanel.playbackHint`,`Recordings play in the main player above — switch back to live from there.`)})]})})]})}E();var JL={"host/motion-zones-grid":m(()=>a(()=>import(`./MotionZonesSettings-BMDPF6-L.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([41,1,2,3,42]),import.meta.url)),"host/privacy-mask-grid":m(()=>a(()=>import(`./PrivacyMaskSettings-DXcb1Xsj.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([43,1,2,3,24,42]),import.meta.url)),"host/ptz-panel":NI,"host/navigation-panel":TI,"host/consumables-panel":kM,"host/ptz-autotrack":WA,"host/recording-panel":qL,"host/camera-grid-layout":Lj,"host/clips-browser":qF,"host/extensions-panel":mI};E();function YL(e){let{widgetId:t,deviceId:n}=e,r=JL[t];return r===void 0?v(XL,{...e}):n===void 0?v($L,{widgetId:t,reason:`missing-device-context`}):v(g,{fallback:v(QL,{}),children:v(r,{deviceId:n})})}function XL(e){let{widgetId:t}=e,n=zA(t);return n===void 0?v($L,{widgetId:t,reason:`unknown`}):v(ZL,{...e,metadata:n})}function ZL(e){let{widgetId:t,host:n=`device-tab`,config:r,deviceId:i,integrationId:a,instanceId:o,size:s,columns:c,rows:l,metadata:u}=e,d=BA(u.remote,u.bundleUrl),f=p(()=>o??t,[o,t]);return d===null?v(QL,{}):d===void 0?v($L,{widgetId:t,reason:`missing-export`}):u.requires.deviceContext&&i===void 0?v($L,{widgetId:t,reason:`missing-device-context`}):u.requires.integrationContext&&a===void 0?v($L,{widgetId:t,reason:`missing-integration-context`}):v(d,{instanceId:f,host:n,config:r,deviceId:i,integrationId:a,size:s,columns:c,rows:l})}function QL(){return c(`div`,{className:`rounded-lg border border-border bg-surface/40 p-4 animate-pulse`,children:[v(`div`,{className:`h-3 w-24 bg-foreground-subtle/20 rounded mb-2`}),v(`div`,{className:`h-2 w-full bg-foreground-subtle/10 rounded mb-1`}),v(`div`,{className:`h-2 w-3/4 bg-foreground-subtle/10 rounded`})]})}function $L({widgetId:e,reason:t}){return v(`div`,{className:`rounded-lg border border-warning/30 bg-warning/10 px-3 py-2 text-xs text-warning`,children:t===`unknown`?`Widget "${e}" not registered`:t===`missing-export`?`Widget "${e}" bundle does not export this stableId`:t===`missing-device-context`?`Widget "${e}" requires a deviceId`:`Widget "${e}" requires an integrationId`})}E();var eR=Object.defineProperty,tR=Object.getOwnPropertySymbols,nR=Object.prototype.hasOwnProperty,rR=Object.prototype.propertyIsEnumerable,iR=(e,t,n)=>t in e?eR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,aR=(e,t)=>{for(var n in t||={})nR.call(t,n)&&iR(e,n,t[n]);if(tR)for(var n of tR(t))rR.call(t,n)&&iR(e,n,t[n]);return e},oR=(e,t)=>{var n={};for(var r in e)nR.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&tR)for(var r of tR(e))t.indexOf(r)<0&&rR.call(e,r)&&(n[r]=e[r]);return n},sR;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(sR||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(sR||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(sR||={});var cR=sR,lR={L:cR.QrCode.Ecc.LOW,M:cR.QrCode.Ecc.MEDIUM,Q:cR.QrCode.Ecc.QUARTILE,H:cR.QrCode.Ecc.HIGH},uR=128,dR=`L`,fR=`#FFFFFF`,pR=`#000000`,mR=!1,hR=1,gR=4,_R=0,vR=.1;function yR(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function bR(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function xR(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*vR),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function SR(e,t){return t==null?e?gR:_R:Math.max(Math.floor(t),0)}function CR({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=l.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...cR.QrSegment.makeSegments(t)),e),[]);return cR.QrCode.encodeSegments(r,lR[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:u,margin:d,numCells:f,calculatedImageSettings:p}=l.useMemo(()=>{let e=c.getModules(),t=SR(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:xR(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:d,cells:u,numCells:f,calculatedImageSettings:p}}var wR=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),TR=l.forwardRef(function(e,t){let n=e,{value:r,size:i=uR,level:a=dR,bgColor:o=fR,fgColor:s=pR,includeMargin:c=mR,minVersion:u=hR,boostLevel:d,marginSize:f,imageSettings:p}=n,m=oR(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:h}=m,g=oR(m,[`style`]),_=p?.src,v=l.useRef(null),y=l.useRef(null),b=l.useCallback(e=>{v.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=l.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=CR({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:f,imageSettings:p,size:i});l.useEffect(()=>{if(v.current!=null){let e=v.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=y.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=bR(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,wR?t.fill(new Path2D(yR(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),l.useEffect(()=>{S(!1)},[_]);let D=aR({height:i,width:i},h),O=null;return _!=null&&(O=l.createElement(`img`,{src:_,key:_,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:E?.crossOrigin})),l.createElement(l.Fragment,null,l.createElement(`canvas`,aR({style:D,height:i,width:i,ref:b,role:`img`},g)),O)});TR.displayName=`QRCodeCanvas`;var ER=l.forwardRef(function(e,t){let n=e,{value:r,size:i=uR,level:a=dR,bgColor:o=fR,fgColor:s=pR,includeMargin:c=mR,minVersion:u=hR,boostLevel:d,title:f,marginSize:p,imageSettings:m}=n,h=oR(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:g,cells:_,numCells:v,calculatedImageSettings:y}=CR({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:p,imageSettings:m,size:i}),b=_,x=null;m!=null&&y!=null&&(y.excavation!=null&&(b=bR(_,y.excavation)),x=l.createElement(`image`,{href:m.src,height:y.h,width:y.w,x:y.x+g,y:y.y+g,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=yR(b,g);return l.createElement(`svg`,aR({height:i,width:i,viewBox:`0 0 ${v} ${v}`,ref:t,role:`img`},h),!!f&&l.createElement(`title`,null,f),l.createElement(`path`,{fill:o,d:`M0,0 h${v}v${v}H0z`,shapeRendering:`crispEdges`}),l.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});ER.displayName=`QRCodeSVG`;var DR=192;function OR({value:e,size:t=DR,className:n,alt:r}){let i=q(),a=e.trim();return a.length===0?null:v(`div`,{className:$(`inline-flex rounded-md bg-white p-2`,n),children:v(ER,{value:a,size:t,marginSize:1,title:r??i(`uiLibrary.qrCode.alt`,`QR code`)})})}var kR=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`;function AR({value:e,onChange:t,disabled:n}){let r=q(),i=[];for(let e of zi)i.includes(e.region)||i.push(e.region);return c(`select`,{className:kR,value:e,disabled:n,onChange:e=>t(e.target.value),children:[!Ki(e)&&v(`option`,{value:``,children:r(`uiLibrary.timezoneSelector.select`,`— Select timezone —`)}),i.map(e=>v(`optgroup`,{label:e,children:zi.filter(t=>t.region===e).map(e=>v(`option`,{value:e.id,children:e.label},e.id))},e))]})}E();var jR=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`,MR=`block text-[11px] font-medium text-foreground mb-1 break-words`,NR=`text-[10px] text-foreground-subtle mt-0.5 break-words`;function PR({label:e,description:t,required:n,span:r,htmlFor:i,children:a,translationFn:o}){let s=r===2?`col-span-1 @[480px]:col-span-2`:r===3?`col-span-1 @[480px]:col-span-2 @[880px]:col-span-3`:r===4?`col-span-1 @[480px]:col-span-2 @[1140px]:col-span-4`:`col-span-1`,l=Tz(e,o),u=Tz(t,o),d=l!==void 0&&l!==``;return c(`div`,{className:`${s} min-w-0`,children:[d&&c(`label`,{className:MR,...i===void 0?{}:{htmlFor:i},children:[l,n&&v(`span`,{className:`text-danger ml-0.5`,children:`*`})]}),a,u&&v(`p`,{className:NR,children:u})]})}function FR({field:e,value:t,onChange:n,disabled:r,translationFn:i,multiline:a,children:o}){let s=qa(e),[c,l]=C(()=>s&&Jl(t)),u=s&&ja(t);return u&&!c&&l(!0),!c&&!u?v(P,{children:o}):v(PR,{label:`label`in e?e.label:void 0,description:`description`in e?e.description:void 0,required:`required`in e?e.required:void 0,span:`span`in e?e.span:void 0,translationFn:i,children:v(Ql,{field:e,value:t,onChange:n,disabled:r,multiline:a})})}function IR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`input`,{type:e.inputType??`text`,className:jR,value:t==null?``:String(t),placeholder:e.placeholder,maxLength:e.maxLength,pattern:e.pattern,disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function LR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let[a,o]=C(t==null?``:String(t)),s=f(!1);b(()=>{s.current||o(t==null?``:String(t))},[t]);let l=e=>{if(o(e),e===``||e===`-`){n(void 0);return}let t=Number(e);Number.isNaN(t)||n(t)};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`div`,{className:`flex items-center gap-1`,children:[v(`input`,{type:`number`,className:jR,value:a,placeholder:e.placeholder,min:e.min,max:e.max,step:e.step,disabled:r||e.disabled,onFocus:()=>{s.current=!0},onBlur:()=>{s.current=!1},onChange:e=>l(e.target.value)}),e.unit&&v(`span`,{className:`text-xs text-foreground-subtle whitespace-nowrap`,children:e.unit})]})})}function RR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=!!t,o=r||e.disabled;return e.style===`checkbox`?v(PR,{label:void 0,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`label`,{className:`flex items-center gap-2 cursor-pointer select-none`,children:[v(`input`,{type:`checkbox`,className:`h-3.5 w-3.5 rounded border-border accent-primary`,checked:a,disabled:o,onChange:e=>n(e.target.checked)}),v(`span`,{className:`text-xs font-medium text-foreground`,children:Tz(e.label,i)}),e.required&&v(`span`,{className:`text-danger`,children:`*`})]})}):v(PR,{label:void 0,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`div`,{className:`flex items-center justify-between`,children:[c(`span`,{className:`block text-[11px] font-medium text-foreground mb-1 break-words mb-0`,children:[Tz(e.label,i),e.required&&v(`span`,{className:`text-danger ml-0.5`,children:`*`})]}),v(`button`,{type:`button`,role:`switch`,"aria-checked":a,disabled:o,onClick:()=>!o&&n(!a),className:[`relative inline-flex h-4 w-8 shrink-0 items-center rounded-full transition-colors duration-150`,a?`bg-primary`:`bg-foreground-subtle/30`,o?`opacity-50 cursor-not-allowed`:`cursor-pointer`].join(` `),children:v(`span`,{className:[`inline-block h-3 w-3 rounded-full bg-white shadow transition-transform duration-150`,a?`translate-x-4`:`translate-x-0.5`].join(` `)})})]})})}function zR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=e.options.some(e=>e.value===``),s=[...!e.required&&!o?[{value:``,label:a(`uiLibrary.configFormField.select`,`— Select —`)}]:[],...e.options.map(e=>({value:e.value,label:e.label}))],c=`config-select-${e.key}`;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,htmlFor:c,translationFn:i,children:v(Hl,{id:c,options:s,value:t==null?``:String(t),disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function BR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(AR,{value:typeof t==`string`?t:``,onChange:n,disabled:r||e.disabled})})}function VR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`input`,{type:`datetime-local`,className:jR,value:typeof t==`string`?t:``,placeholder:e.placeholder,disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function HR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=Array.isArray(t)?t:[],o=t=>{if(a.includes(t))n(a.filter(e=>e!==t));else{if(e.maxItems!==void 0&&a.length>=e.maxItems)return;n([...a,t])}};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`div`,{className:`flex flex-wrap gap-2`,children:e.options.map(t=>{let n=a.includes(t.value);return c(`label`,{className:[`flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs cursor-pointer select-none transition-colors`,n?`border-primary bg-primary/10 text-primary`:`border-border bg-background text-foreground hover:bg-surface`,r||e.disabled?`opacity-50 cursor-not-allowed`:``].join(` `),children:[v(`input`,{type:`checkbox`,className:`sr-only`,checked:n,disabled:r||e.disabled,onChange:()=>o(t.value)}),t.iconId!==void 0&&v(Uk,{iconId:t.iconId,size:13}),t.label]},t.value)})})})}function UR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let[a,o]=C(!1),s=t==null?``:String(t);return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(Vl,{"aria-label":e.label,value:s,onValueChange:e=>n(e),shown:a,onToggleShown:()=>o(e=>!e),hideToggle:e.showToggle===!1,placeholder:e.placeholder,disabled:r||e.disabled,onFocus:e=>{s.length>0&&/^[•●*]{4,}$/u.test(s)&&e.currentTarget.select()}})})}function WR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`textarea`,{className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed resize-y min-h-[60px]`,value:t==null?``:String(t),placeholder:e.placeholder,rows:e.rows??3,maxLength:e.maxLength,disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function GR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=t==null,s=e.nullable===!0,l=o?e.default??e.min:Number(t),u=e.showValue!==!1,d=e.nullLabel??a(`uiLibrary.configFormField.auto`,`Auto`),f=r||e.disabled,p=e.displayScale??1,m=e.min/p,h=e.max/p,g=l/p,_=(e.step??1)/p;if(s&&o)return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`button`,{className:`w-full rounded-lg border border-dashed border-border px-3 py-2 text-xs text-foreground-subtle hover:border-primary/40 hover:text-primary transition-colors text-left`,disabled:f,onClick:()=>n(e.default??e.min),children:a(`uiLibrary.configFormField.clickToSet`,`{{label}} — click to set manually`,{label:d})})});let y=e.showStepper===!0&&u,b=t=>{let r=l+t*(e.step??1),i=Math.min(e.max,Math.max(e.min,r));i!==l&&n(i)},x=`flex h-6 w-6 shrink-0 items-center justify-center rounded border border-border bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:cursor-not-allowed disabled:opacity-40`;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-2`,children:[c(`div`,{className:`flex min-w-0 flex-1 basis-[160px] items-center gap-2`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle tabular-nums shrink-0`,children:m}),v(`input`,{type:`range`,className:`min-w-0 flex-1 h-1 accent-primary cursor-pointer disabled:opacity-50`,min:m,max:h,step:_,value:g,disabled:f,onChange:e=>n(Number(e.target.value)*p)}),v(`span`,{className:`text-[10px] text-foreground-subtle tabular-nums shrink-0`,children:h})]}),(u||s||e.unit)&&c(`div`,{className:`flex shrink-0 items-center gap-2`,children:[y&&v(`button`,{type:`button`,className:x,disabled:f||l<=e.min,onClick:()=>b(-1),title:a(`uiLibrary.configFormField.decreaseBy`,`Decrease by {{step}}`,{step:e.step??1}),"aria-label":a(`uiLibrary.configFormField.decrement`,`Decrement`),children:v(zn,{className:`h-3 w-3`})}),u&&v(`input`,{type:`number`,className:`w-16 rounded border border-border bg-surface px-1.5 py-0.5 text-xs text-center text-foreground tabular-nums focus:outline-none focus:ring-1 focus:ring-primary`,min:m,max:h,step:_,value:g,disabled:f,onChange:t=>{if(t.target.value===``){n(s?null:e.min);return}let r=Number(t.target.value)*p,i=e.step??1,a=r-e.min,o=e.min+Math.round(a/i)*i;n(Math.min(e.max,Math.max(e.min,o)))}}),y&&v(`button`,{type:`button`,className:x,disabled:f||l>=e.max,onClick:()=>b(1),title:a(`uiLibrary.configFormField.increaseBy`,`Increase by {{step}}`,{step:e.step??1}),"aria-label":a(`uiLibrary.configFormField.increment`,`Increment`),children:v(Se,{className:`h-3 w-3`})}),e.unit&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:e.unit}),s&&v(`button`,{className:`text-[10px] text-foreground-subtle hover:text-primary transition-colors`,title:a(`uiLibrary.configFormField.resetTo`,`Reset to {{label}}`,{label:d}),disabled:f,onClick:()=>n(null),children:d})]})]})})}function KR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=Array.isArray(t)?t.filter(e=>typeof e==`string`):[],s=e.creatable!==!1,c=(e.suggestions??[]).map(e=>({value:e,label:e})),l=r===!0||e.disabled===!0;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(rA,{mode:`multi`,options:c,value:o,onChange:e=>n(e),disabled:l,creatable:s,...e.createLabel===void 0?{}:{createLabel:e.createLabel},...e.maxTags===void 0?{}:{maxItems:e.maxTags},placeholder:e.placeholder??a(`uiLibrary.configFormField.searchOrAdd`,`Search or add…`),testId:`config-tags-${e.key}`})})}function qR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),{nodes:o}=Ao(),s=typeof t==`string`?t:``,l=e.showOffline?o:o.filter(e=>e.isOnline);return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`select`,{className:`w-full px-3 py-2 text-sm bg-background border border-border rounded-lg text-foreground focus:outline-none focus:border-primary/50 disabled:opacity-50`,value:s,onChange:e=>n(e.target.value),disabled:r,children:[v(`option`,{value:``,children:a(`uiLibrary.configFormField.selectNode`,`Select node…`)}),l.map(e=>v(`option`,{value:e.id,disabled:!e.isOnline,children:e.isOnline?e.shortName:a(`uiLibrary.configFormField.nodeOffline`,`{{name}} (offline)`,{name:e.shortName})},e.id))]})})}function JR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let{nodes:a}=Ao(),o=new Set(Array.isArray(t)?t.map(String):[]),s=e.showOffline?a:a.filter(e=>e.isOnline),c=e=>{let t=new Set(o);t.has(e)?t.delete(e):t.add(e),n([...t])};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`div`,{className:`flex flex-wrap gap-1.5`,children:s.map(e=>{let t=o.has(e.id);return v(`button`,{type:`button`,onClick:()=>c(e.id),disabled:r||!e.isOnline,className:`px-2.5 py-1 text-xs font-medium rounded-md border transition-colors ${t?`border-primary bg-primary/10 text-primary`:`border-border bg-surface text-foreground-subtle hover:bg-surface-hover`} ${e.isOnline?``:`opacity-50 cursor-not-allowed`}`,children:e.shortName},e.id)})})})}function YR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=t==null?`#000000`:String(t);return c(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:[c(`div`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`color`,className:`h-9 w-9 rounded-md border border-border bg-background cursor-pointer p-0.5 disabled:opacity-50`,value:a,disabled:r||e.disabled,onChange:e=>n(e.target.value)}),v(`input`,{type:`text`,className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed flex-1 font-mono`,value:a,placeholder:`#000000`,disabled:r||e.disabled,onChange:e=>n(e.target.value)})]}),e.presets&&e.presets.length>0&&v(`div`,{className:`flex gap-1.5 mt-1.5`,children:e.presets.map(t=>v(`button`,{type:`button`,className:`h-5 w-5 rounded-md border border-border hover:scale-110 transition-transform disabled:opacity-50`,style:{backgroundColor:t},disabled:r||e.disabled,title:t,onClick:()=>n(t)},t))})]})}function XR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=typeof e.default==`string`?e.default:``;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(Tl,{label:Tz(e.label,i)??e.label,value:t,defaultKey:a,disabled:r||e.disabled,onChange:n})})}function ZR({field:e,value:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o,externalProbe:s}){let l=q(),[u,d]=C(`idle`),[f,p]=C(null),m=s?.status??u,h=s?.result??f,g=!!a||!!o,y=_(async()=>{if(g){d(`probing`),p(null);try{let n=a?await a(e.key,t):await o(`test-probe`,e.key,t),r=n&&typeof n==`object`?n:{status:`error`,error:l(`uiLibrary.configFormField.probeNoResult`,`Probe handler returned no result`)};p(r),d(r.status===`ok`?`ok`:`error`)}catch(e){p({status:`error`,error:e instanceof Error?e.message:String(e)}),d(`error`)}}},[a,o,e.key,t,g]),b=m===`probing`?`border-primary/40 bg-primary/10 text-primary`:m===`ok`?`border-success/40 bg-success/10 text-success hover:bg-success/15`:m===`error`?`border-danger/40 bg-danger/10 text-danger hover:bg-danger/15`:`border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,x=m===`probing`?v(Un,{className:`h-3 w-3 animate-spin`}):v(m===`ok`?Dn:m===`error`?Di:An,{className:`h-3 w-3`});return c(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:[c(`div`,{className:`@container flex items-center gap-2`,style:{containerType:`inline-size`},children:[c(`button`,{type:`button`,onClick:y,title:l(`uiLibrary.configFormField.test`,`Test`),disabled:e.disabled||m===`probing`||!g||!t,className:`flex-shrink-0 inline-flex items-center gap-1.5 rounded-md border px-2 py-2 text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed @[280px]:px-3 ${b}`,children:[x,v(`span`,{className:`hidden @[280px]:inline`,children:l(`uiLibrary.configFormField.test`,`Test`)})]}),v(`input`,{type:e.inputType??`url`,className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed flex-1 min-w-0`,value:t==null?``:String(t),placeholder:e.placeholder,disabled:r||e.disabled,onChange:e=>{n(e.target.value),u!==`idle`&&(d(`idle`),p(null))}})]}),m===`ok`&&h?.labels&&h.labels.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mt-1.5`,children:h.labels.map((e,t)=>v(`span`,{className:`text-xs bg-success/10 text-success rounded px-2 py-0.5 font-mono`,children:e},t))}),m===`error`&&h?.error&&v(`p`,{className:`text-xs text-danger mt-1 truncate`,title:h.error,children:h.error})]})}function QR({field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,onAction:s}){let[l,u]=C(e.defaultCollapsed??!1),d=e.style===`accordion`;return v(`div`,{className:`${e.span===2?`col-span-2`:e.span===3?`col-span-3`:e.span===4?`col-span-4`:`col-span-1`} min-w-0`,children:c(`div`,{className:`@container rounded-lg border border-border bg-surface/50 overflow-hidden`,style:{containerType:`inline-size`},children:[c(`div`,{className:[`px-3 py-2 flex items-center justify-between min-w-0`,d?`cursor-pointer hover:bg-surface`:``].join(` `),onClick:d?()=>u(e=>!e):void 0,children:[v(`span`,{className:`text-xs font-semibold text-foreground min-w-0 break-words`,children:Tz(e.label,a)}),d&&v(`span`,{className:`text-foreground-subtle text-xs shrink-0 ml-2`,children:l?`▸`:`▾`})]}),!l&&v(`div`,{className:`px-3 pb-3 grid grid-cols-1 @[480px]:grid-cols-2 gap-x-4 gap-y-3`,children:e.fields.map(e=>v(Cz,{field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,onAction:s},e.key))})]})})}function $R({field:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o}){let[s,l]=C(e.tabs[0]?.id??``),u=e.span===2?`col-span-2`:e.span===3?`col-span-3`:e.span===4?`col-span-4`:`col-span-1`;return e.tabs.length===0?null:c(`div`,{className:`${u} min-w-0`,children:[e.label&&v(`div`,{className:MR,children:Tz(e.label,i)}),c(`div`,{className:`@container rounded-lg border border-border-subtle bg-surface-hover/40 overflow-hidden`,style:{containerType:`inline-size`},children:[v(`div`,{className:`flex flex-wrap gap-1 p-1.5 border-b border-border-subtle bg-surface/40`,role:`tablist`,children:e.tabs.map(e=>{let t=e.id===s;return c(`button`,{type:`button`,role:`tab`,"aria-selected":t,onClick:()=>l(e.id),className:`inline-flex items-center gap-1.5 whitespace-nowrap rounded-md px-2.5 py-1 text-[11px] transition-colors ${t?`bg-primary text-primary-foreground font-medium shadow-sm`:`bg-transparent text-foreground-subtle hover:bg-surface hover:text-foreground`}`,children:[v(`span`,{children:Tz(e.label,i)}),e.badge&&v(`span`,{className:`text-[9px] px-1 py-0.5 rounded-full font-medium ${t?`bg-primary-foreground/20 text-primary-foreground`:`bg-primary/10 text-primary`}`,children:e.badge})]},e.id)})}),e.tabs.map(e=>e.id===s?v(`div`,{role:`tabpanel`,className:`px-3 pb-3 pt-2 grid grid-cols-1 @[480px]:grid-cols-2 gap-x-4 gap-y-3`,children:e.fields.map((s,c)=>{let l=`key`in s&&typeof s.key==`string`?s.key:`__${e.id}__${c}`;return v(Cz,{field:s,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o},l)})},e.id):null)]})]})}function ez({span:e}){return v(`div`,{className:e===2?`col-span-2`:e===3?`col-span-3`:e===4?`col-span-4`:`col-span-full`,children:v(`hr`,{className:`border-border`})})}var tz={info:{border:`border-info`,bg:`bg-info/5`,text:`text-info`},warning:{border:`border-warning`,bg:`bg-warning/5`,text:`text-warning`},success:{border:`border-success`,bg:`bg-success/5`,text:`text-success`},danger:{border:`border-danger`,bg:`bg-danger/5`,text:`text-danger`}};function nz({field:e}){let t=tz[e.variant??`info`]??tz.info,n=e.format===`html`;return v(`div`,{className:`col-span-full`,children:c(`div`,{className:`rounded-md border-l-4 px-3 py-2.5 ${t.border} ${t.bg}`,children:[e.label&&v(`p`,{className:e.content.length>0?`text-xs font-semibold mb-0.5 ${t.text}`:`text-xs text-foreground-subtle leading-relaxed whitespace-pre-line break-words`,children:e.label}),n?v(`div`,{className:`text-xs text-foreground-subtle leading-relaxed info-html-content`,dangerouslySetInnerHTML:{__html:El(e.content)}}):e.content.length>0&&v(`p`,{className:`text-xs text-foreground-subtle leading-relaxed whitespace-pre-line break-words`,children:e.content})]})})}function rz({field:e}){let t=e.value;if(!t||t.length===0)return null;let n=e.size??192,r=e.alt??e.label;return v(`div`,{className:`col-span-full`,children:c(`div`,{className:`rounded-md border border-foreground-subtle/20 px-3 py-3 bg-background-subtle/40 flex flex-col items-start gap-2`,children:[e.label&&v(`p`,{className:`text-xs font-semibold text-foreground`,children:e.label}),e.caption&&v(`p`,{className:`text-xs text-foreground-subtle leading-relaxed`,children:e.caption}),v(OR,{value:t,size:n,alt:r})]})})}var iz={ok:`bg-success`,warn:`bg-amber-500`,danger:`bg-danger`,idle:`bg-foreground-subtle/40`,unknown:`bg-foreground-subtle/40`};function az(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1e3)return`${e}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return r===0?`${n}m`:`${n}m ${r}s`}function oz(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleTimeString()}function sz({kind:e,value:t}){return t==null||t===``?v(`span`,{className:`text-foreground-subtle/60`,children:`—`}):e===`monospace`?v(`span`,{className:`font-mono text-[11px]`,children:String(t)}):e===`status`?c(`span`,{className:`inline-flex items-center gap-1.5`,children:[v(`span`,{className:`inline-block h-1.5 w-1.5 rounded-full ${iz[String(t).toLowerCase()]??iz.unknown}`}),v(`span`,{children:String(t)})]}):e===`duration`&&typeof t==`number`?v(`span`,{className:`font-mono text-[11px]`,children:az(t)}):e===`timestamp`&&typeof t==`number`?v(`span`,{className:`font-mono text-[11px]`,children:oz(t)}):v(`span`,{children:String(t)})}function cz({field:e}){let t=q(),n=e.value??[],r=e.description;return c(`div`,{className:`col-span-full`,children:[e.label&&v(`p`,{className:`text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle mb-1`,children:e.label}),r&&v(`p`,{className:`text-xs text-foreground-subtle mb-2`,children:r}),n.length===0?v(`div`,{className:`rounded-md border border-border bg-surface-subtle px-3 py-2 text-xs text-foreground-subtle`,children:e.emptyMessage??t(`uiLibrary.configFormField.noEntries`,`No entries`)}):v(`div`,{className:`rounded-md border border-border overflow-x-auto`,children:c(`table`,{className:`w-full min-w-[28rem] text-xs`,children:[v(`thead`,{className:`bg-surface-subtle border-b border-border`,children:v(`tr`,{children:e.columns.map(e=>v(`th`,{className:`px-3 py-1.5 text-left font-medium text-foreground-subtle`,style:e.width?{width:e.width}:void 0,children:e.label},e.key))})}),v(`tbody`,{className:`divide-y divide-border`,children:n.map((t,n)=>v(`tr`,{className:`hover:bg-surface-hover/40`,children:e.columns.map(e=>v(`td`,{className:`px-3 py-1.5 align-top text-foreground`,children:v(sz,{kind:e.kind,value:t[e.key]})},e.key))},n))})]})})]})}function lz({field:e,value:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o}){let s=q(),l=Array.isArray(t)?t:[],u=e.minRows??0,d=e.maxRows??1/0,f=(e,t,r)=>{let i=l.slice();i[e]={...i[e]??{},[t]:r},n(i)},p=e=>{l.length<=u||n(l.filter((t,n)=>n!==e))},m=()=>{if(l.length>=d)return;let t=e.defaultItem??{};n([...l,{...t}])},h=(t,n)=>e.rowTitleTemplate?e.rowTitleTemplate.replace(/\{(\w+)\}/g,(e,n)=>{let r=t[n];return r==null||r===``?`—`:String(r)}):s(`uiLibrary.configFormField.row`,`Row {{n}}`,{n:n+1}),g=l.length>u,_=l.length<d,y=e.itemIdKey??`id`,b=(e,t)=>{let n=e[y];return typeof n==`string`&&n.length>0?n:typeof n==`number`&&Number.isFinite(n)?String(n):`row-${String(t)}`};return c(`div`,{className:`col-span-full space-y-2`,children:[c(`div`,{className:`space-y-0.5`,children:[e.label&&v(`p`,{className:`text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:Tz(e.label,i)}),e.description&&v(`p`,{className:`text-[11px] text-foreground-subtle`,children:Tz(e.description,i)})]}),l.length===0?v(`div`,{className:`rounded-md border border-dashed border-border bg-background px-3 py-3 text-center text-[11px] text-foreground-subtle`,children:e.emptyMessage??s(`uiLibrary.configFormField.noEntries`,`No entries`)}):v(`div`,{className:`space-y-2`,children:l.map((t,n)=>c(`div`,{className:`rounded-md border border-border bg-background`,children:[c(`div`,{className:`flex items-center justify-between border-b border-border px-3 py-1.5`,children:[v(`span`,{className:`text-xs font-medium text-foreground`,children:h(t,n)}),c(`button`,{type:`button`,onClick:()=>p(n),disabled:r||!g,className:`inline-flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-danger hover:bg-danger/10 disabled:opacity-30 disabled:cursor-not-allowed`,title:g?s(`uiLibrary.configFormField.removeRow`,`Remove this row`):s(`uiLibrary.configFormField.minRows`,{one:`At least {{count}} row required`,other:`At least {{count}} rows required`},{count:u}),children:[v(zn,{className:`h-3 w-3`}),s(`uiLibrary.configFormField.remove`,`Remove`)]})]}),v(`div`,{className:`grid grid-cols-1 @[480px]:grid-cols-2 gap-x-3 gap-y-2 p-3`,children:e.itemFields.map(s=>v(Cz,{field:s,values:t,onChange:(e,t)=>f(n,e,t),disabled:r,translationFn:i,onTestField:a,allFields:e.itemFields,onAction:o},s.key))})]},b(t,n)))}),c(`div`,{children:[c(`button`,{type:`button`,onClick:m,disabled:r||!_,className:`inline-flex items-center gap-1 rounded border border-border bg-surface px-3 py-1 text-[11px] font-medium text-foreground hover:border-primary/40 hover:bg-primary/5 disabled:opacity-30 disabled:cursor-not-allowed`,children:[v(Se,{className:`h-3 w-3`}),e.addLabel??s(`uiLibrary.configFormField.add`,`Add`)]}),!_&&Number.isFinite(d)&&v(`span`,{className:`ml-2 text-[10px] text-foreground-subtle`,children:s(`uiLibrary.configFormField.limit`,`(limit: {{max}})`,{max:d})})]})]})}function uz({field:e,disabled:t,onAction:n}){let r=q(),[i,a]=C(!1),o=si(),s=async()=>{if(!(e.confirmMessage&&!await o({title:e.label,message:e.confirmMessage,confirmLabel:e.buttonLabel,variant:e.variant===`danger`?`danger`:`default`}))&&n){a(!0);try{await n(e.action,e.key)}finally{a(!1)}}},c={default:`border border-border text-foreground hover:bg-surface-hover`,primary:`bg-primary text-primary-foreground hover:bg-primary/90`,danger:`bg-danger text-white hover:bg-danger/90`};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:v(`button`,{onClick:s,disabled:t||i,className:`inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 ${c[e.variant??`default`]??c.default}`,children:i?r(`uiLibrary.configFormField.processing`,`Processing...`):e.buttonLabel})})}function dz(e,t){let n={...e.paramsStatic};if(e.paramsFromForm)for(let[r,i]of Object.entries(e.paramsFromForm)){let e=t[i];e!=null&&e!==``&&!ca(e)&&(n[r]=e)}return n}function fz({field:e,value:t,values:n,onChange:r,disabled:i,onAction:a}){let o=q(),[s,l]=C(!1),[u,d]=C(null),[p,m]=C(null),h=dz(e,n),g=Object.keys(e.paramsFromForm??{}).some(e=>h[e]===void 0),_=e.mapOption.value,y=e.mapOption.label,x=e.mapOption.description,S=(e.refreshOn??Object.values(e.paramsFromForm??{})).map(e=>`${e}=${JSON.stringify(n[e])}`).join(`|`),w=f(a);w.current=a;let T=f(r);T.current=r;let E=f(h);E.current=h;let D=f(t);return D.current=t,b(()=>{let t=w.current;if(!t||g){m(null),d(null);return}let n=!1;l(!0),d(null);let r=E.current;return t(e.action,e.key,r).then(t=>{if(n)return;let r=t,i=[];if(Array.isArray(r))i=r;else if(r&&typeof r==`object`)for(let e of Object.keys(r)){let t=r[e];if(Array.isArray(t)){i=t;break}}m(i);let a=D.current;if(e.hideWhenFewerThan!==void 0&&i.length===1&&(typeof a!=`string`||a.length===0)){let e=i[0]?.[_];typeof e==`string`&&e.length>0&&T.current(e)}}).catch(e=>{n||(d(e instanceof Error?e.message:String(e)),m([]))}).finally(()=>{n||l(!1)}),()=>{n=!0}},[S,g,a!==void 0,e.action,e.key,e.hideWhenFewerThan,_]),!a&&e.hideWhenFewerThan!==void 0||e.hideWhenFewerThan!==void 0&&p!==null&&p.length<e.hideWhenFewerThan?null:v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:g?v(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:e.emptyParamsMessage??o(`uiLibrary.configFormField.fillPrerequisites`,`Fill the prerequisite fields above first.`)}):s?c(`div`,{className:`flex items-center gap-2 text-[11px] text-foreground-subtle`,children:[v(Un,{className:`h-3 w-3 animate-spin`}),` `,o(`uiLibrary.configFormField.loadingOptions`,`Loading options…`)]}):u?v(`div`,{className:`text-[11px] text-danger`,children:u}):p&&p.length===0?v(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:e.emptyResultsMessage??o(`uiLibrary.configFormField.noOptions`,`No options returned.`)}):(()=>{let e=(p??[]).some(e=>{let t=e[_];return t===``||t===void 0});return c(`select`,{className:`w-full rounded-md border border-border bg-surface px-2 py-1.5 text-xs text-foreground`,value:typeof t==`string`?t:``,disabled:i,onChange:e=>r(e.target.value),children:[!e&&v(`option`,{value:``,children:o(`uiLibrary.configFormField.select`,`— Select —`)}),(p??[]).map((e,t)=>{let n=e[_],r=e[y],i=x?e[x]:void 0,a=typeof n==`string`&&n!==``?n:`row-${t}`;return c(`option`,{value:typeof n==`string`?n:String(n??``),children:[typeof r==`string`?r:String(r??a),i===void 0?``:` (${String(i)})`]},a)})]})})()})}function pz({field:e,values:t,disabled:n,onAction:r,onChange:i,onChangeMany:a}){let o=q(),[s,l]=C(!1),[u,d]=C(null),f=si(),p=Pn(),m=SA(),h=async()=>{let n=e.prompt?await p({title:e.prompt.title??e.label,...e.prompt.message===void 0?{}:{message:e.prompt.message},...e.prompt.placeholder===void 0?{}:{placeholder:e.prompt.placeholder},confirmLabel:e.buttonLabel}):null;if(e.prompt&&n===null||e.confirmMessage&&!await f({title:e.label,message:e.confirmMessage,confirmLabel:e.buttonLabel,variant:e.variant===`danger`?`danger`:`default`})||!r)return;let o=dz(e,t);e.prompt&&n!==null&&(o[e.prompt.param]=n),e.includeDeviceId===!0&&m!=null&&(o.deviceId=m),l(!0),d(null);try{let t=await r(e.action,e.key,o),n=typeof t==`object`&&t?t:null;if(n!==null&&e.assignResult&&(i||a)){let t={};for(let[r,i]of Object.entries(e.assignResult)){let e=n[i];typeof e==`string`&&(t[r]=e)}if(Object.keys(t).length>0){if(a)a(t);else if(i)for(let[e,n]of Object.entries(t))i(e,n)}}d({kind:`ok`,text:e.successMessage?e.successMessage.replace(/\{(\w+)\}/g,(e,t)=>{let r=n?.[t];return r===void 0?``:String(r)}):`Done.`})}catch(e){d({kind:`error`,text:e instanceof Error?e.message:String(e)})}finally{l(!1)}},g={default:`border border-border text-foreground hover:bg-surface-hover`,primary:`bg-primary text-primary-foreground hover:bg-primary/90`,danger:`bg-danger text-white hover:bg-danger/90`};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:c(`div`,{className:`flex flex-col gap-1.5`,children:[v(`button`,{onClick:h,disabled:n||s,className:`inline-flex w-fit items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 ${g[e.variant??`default`]??g.default}`,children:s?o(`uiLibrary.configFormField.working`,`Working…`):e.buttonLabel}),u&&v(`div`,{className:`text-[11px] ${u.kind===`ok`?`text-emerald-700 dark:text-emerald-300`:`text-danger`}`,children:u.text})]})})}function mz({field:e,values:t,disabled:n,onAction:r}){let i=q(),[a,o]=C(!1),[s,l]=C(null),u=si(),d=async()=>{if(e.confirmMessage&&!await u({title:e.label,message:e.confirmMessage,confirmLabel:e.buttonLabel,variant:e.variant===`danger`?`danger`:`default`})||!r)return;let n=dz(e,t);o(!0),l(null);try{let t=await r(`device-custom-action`,e.action,n),i=typeof t==`object`&&t?t:null;l({kind:`ok`,text:e.successMessage?e.successMessage.replace(/\{(\w+)\}/g,(e,t)=>{let n=i?.[t];return n===void 0?``:String(n)}):`Done.`})}catch(e){l({kind:`error`,text:e instanceof Error?e.message:String(e)})}finally{o(!1)}},f={default:`border border-border text-foreground hover:bg-surface-hover`,primary:`bg-primary text-primary-foreground hover:bg-primary/90`,danger:`bg-danger text-white hover:bg-danger/90`};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:c(`div`,{className:`flex flex-col gap-1.5`,children:[v(`button`,{onClick:d,disabled:n||a,className:`inline-flex w-fit items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 ${f[e.variant??`default`]??f.default}`,children:a?i(`uiLibrary.configFormField.working`,`Working…`):e.buttonLabel}),s&&v(`div`,{className:`text-[11px] ${s.kind===`ok`?`text-emerald-700 dark:text-emerald-300`:`text-danger`}`,children:s.text})]})})}function hz({field:e}){let t=SA();return v(PR,{label:void 0,description:void 0,span:e.span,children:v(YL,{widgetId:e.widgetId,host:`device-tab`,config:e.widgetConfig,deviceId:t??void 0,instanceId:e.key})})}function gz(e,t){if(e==null)return`—`;if(typeof e==`boolean`)return e?`yes`:`no`;if(typeof e==`number`){let n=Number.isInteger(e)?String(e):e.toFixed(2);return t?`${n} ${t}`:n}return typeof e==`string`?e:JSON.stringify(e)}function _z({field:e,values:t,onAction:n,translationFn:r}){let i=`key`in e?e.key:void 0;if(!i)return null;let a=t[i],o=a===void 0?`default`in e?e.default:void 0:a,s=gz(o,`unit`in e?e.unit:void 0),l=`label`in e?e.label:void 0,u=`description`in e?e.description:void 0,d=`span`in e?e.span:void 0,f=`actions`in e?e.actions??[]:[];return v(PR,{label:l,description:u,span:d,translationFn:r,children:c(`div`,{className:`flex items-stretch gap-1`,children:[v(`div`,{className:`flex-1 rounded-md border border-border bg-surface-alt px-2.5 py-1.5 text-xs text-foreground font-mono break-all`,children:s}),f.length>0&&v(`div`,{className:`flex items-center gap-1`,children:f.map(e=>v(yz,{action:e,fieldKey:i,value:o,onAction:n},e.action))})]})})}function vz({name:e}){let t=`h-3.5 w-3.5`;switch(e){case`copy`:return v(Qr,{className:t});case`refresh-cw`:return v(_e,{className:t});case`external-link`:return v(Je,{className:t});case`trash-2`:return v(Pe,{className:t});case`download`:return v(nn,{className:t});case`upload`:return v(yt,{className:t});default:return v(yn,{className:t})}}function yz({action:e,fieldKey:t,value:n,onAction:r}){let i=si(),[a,o]=C(!1),s=e.variant===`danger`?`text-danger hover:bg-danger/10 border-danger/30`:e.variant===`primary`?`text-primary hover:bg-primary/10 border-primary/30`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover border-border`;return v(`button`,{type:`button`,onClick:async()=>{if(!(e.confirmMessage&&!await i({title:e.tooltip,message:e.confirmMessage,variant:e.variant===`danger`?`danger`:`default`}))){if(e.action===`copy-value`){try{await navigator.clipboard.writeText(typeof n==`string`?n:String(n))}catch{}return}if(r){o(!0);try{await r(e.action,t)}finally{o(!1)}}}},disabled:a,title:e.tooltip,className:`inline-flex items-center justify-center rounded-md border px-2 py-1.5 transition-colors disabled:opacity-50 ${s}`,children:v(vz,{name:e.icon})})}function bz(e){return`multiple`in e&&e.multiple!=null}function xz({field:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,externalProbe:o,allFields:s,onAction:l}){let u=q(),d=e.multiple,f=d.min,p=d.max,m=t[e.key],h=[...Array.isArray(m)?m:m==null?[]:[m]],g=d.itemDefault===void 0?`default`in e&&e.default!==void 0?e.default:``:d.itemDefault;for(;h.length<f;)h.push(g);let _=t=>n(e.key,[...t]),y=(e,t)=>{let n=[...h];n[e]=t,_(n)},b=()=>{h.length>=p||_([...h,g])},x=e=>{h.length<=f||_(h.filter((t,n)=>n!==e))},S=()=>{let{multiple:t,...n}=e,r={label:void 0,description:void 0,required:!1};return{...n,...r}};return v(PR,{label:e.label,description:e.description,required:f>0?e.required:!1,span:e.span,translationFn:i,children:c(`div`,{className:`space-y-2`,children:[h.map((n,o)=>{let p=d.itemLabel?.replace("${n}",String(o+1));return c(`div`,{className:`space-y-1`,children:[p&&v(`div`,{className:MR,children:p}),c(`div`,{className:`flex items-center gap-2`,children:[v(`div`,{className:`flex-1 min-w-0`,children:v(Cz,{field:S(),values:{...t,[e.key]:n},onChange:(e,t)=>y(o,t),disabled:r,translationFn:i,onTestField:a,onAction:l,allFields:s})}),h.length>f&&v(`button`,{type:`button`,onClick:()=>x(o),disabled:r,title:u(`uiLibrary.configFormField.remove`,`Remove`),className:`flex-shrink-0 inline-flex items-center justify-center rounded-md border border-border p-1.5 text-foreground-subtle hover:text-danger hover:border-danger/50 transition-colors disabled:opacity-40`,children:v(Pe,{className:`h-3.5 w-3.5`})})]})]},o)}),c(`div`,{className:`flex items-center justify-between pt-1`,children:[h.length<p?c(`button`,{type:`button`,onClick:b,disabled:r,className:`inline-flex items-center gap-1.5 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:opacity-40`,children:[v(Se,{className:`h-3 w-3`}),d.addLabel??u(`uiLibrary.configFormField.add`,`Add`)]}):v(`span`,{}),c(`span`,{className:`text-[10px] text-foreground-subtle tabular-nums`,children:[h.length,`/`,p]})]})]})})}function Sz(e,t,n){if(!(`showWhen`in e)||!e.showWhen)return!0;let r=e.showWhen,i=t[r.field],a=n?.find(e=>`key`in e&&e.key===r.field),o=a&&`default`in a?a.default:void 0,s=i===void 0?o:i;return r.equals===void 0?r.notEquals===void 0?r.in===void 0?r.notIn===void 0?r.includes===void 0?r.notIncludes===void 0?!0:!Array.isArray(s)||!s.includes(r.notIncludes):Array.isArray(s)&&s.includes(r.includes):!r.notIn.includes(s):r.in.includes(s):s!==r.notEquals:s===r.equals}function Cz({field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,externalProbe:s,allFields:c,onAction:l}){if(bz(e))return v(xz,{field:e,values:t,onChange:n,disabled:i,translationFn:a,onTestField:o,externalProbe:s,allFields:c,onAction:l});if(`readonlyField`in e&&e.readonlyField===!0)return v(_z,{field:e,values:t,onAction:l,translationFn:a});if(!Sz(e,t,c))return null;let u=t[e.key],d=u===void 0?`default`in e?e.default:void 0:u,f=t=>n(e.key,t),p=hA(e.type);switch(e.type){case`text`:return v(FR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,children:v(IR,{field:e,value:d,onChange:f,disabled:i,translationFn:a})});case`number`:return v(LR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`boolean`:return v(RR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`select`:return v(zR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`multiselect`:return v(HR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`timezone`:return v(BR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`datetime`:return v(VR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`password`:return v(FR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,children:v(UR,{field:e,value:d,onChange:f,disabled:i,translationFn:a})});case`textarea`:return v(FR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,multiline:!0,children:v(WR,{field:e,value:d,onChange:f,disabled:i,translationFn:a})});case`slider`:return v(GR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`tags`:return v(KR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`color`:return v(YR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`icon`:return v(XR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`node-select`:return v(qR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`node-multiselect`:return v(JR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`device-select`:return v(Lk,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`device-multiselect`:return v(Rk,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`notification-target-select`:return v(fA,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`notification-target-multiselect`:return v(dA,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`probe`:return v(ZR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,onTestField:o,onAction:l,externalProbe:s});case`group`:return v(QR,{field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,onAction:l});case`sub-tabs`:return v($R,{field:e,values:t,onChange:n,disabled:i,translationFn:a,onTestField:o,onAction:l});case`separator`:return v(ez,{});case`info`:return v(nz,{field:e});case`qr-code`:return v(rz,{field:e});case`object-array`:return v(cz,{field:e});case`editable-array`:return v(lz,{field:e,value:d,onChange:f,disabled:i,translationFn:a,onTestField:o,onAction:l});case`button`:return v(uz,{field:e,disabled:i,onAction:l});case`addon-action-select`:{let r=e.writesKey??e.key;return v(fz,{field:e,value:t[r],values:t,onChange:e=>n(r,e),disabled:i,onAction:l})}case`addon-action-button`:return v(pz,{field:e,values:t,disabled:i,onAction:l,onChange:n,onChangeMany:r});case`account-sign-in`:return v($ie,{field:e,values:t,disabled:i,onAction:l,onChangeMany:r});case`secret-presence`:return v(eae,{field:e,values:t});case`device-action-button`:return v(mz,{field:e,values:t,disabled:i,onAction:l});case`widget`:return v(hz,{field:e});default:return p?v(p,{field:e,value:d,onChange:f,disabled:i}):null}}E();function wz(e){return/^[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)+$/.test(e)}function Tz(e,t){if(e!==void 0)return t&&wz(e)?t(e):e}function Ez(e){let t=e??2;return t===1?`grid-cols-1`:t===3?`grid-cols-1 @[480px]:grid-cols-2 @[880px]:grid-cols-3`:t===4?`grid-cols-1 @[480px]:grid-cols-2 @[1140px]:grid-cols-4`:`grid-cols-1 @[480px]:grid-cols-2`}function Dz({section:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,probeResults:o}){let[s,l]=C(e.defaultCollapsed??!1),u=e.style===`accordion`,d=Ez(e.columns);return c(`div`,{className:`@container rounded-lg border border-border bg-surface p-3`,style:{containerType:`inline-size`},children:[c(`div`,{className:[`flex items-center justify-between mb-2`,u?`cursor-pointer`:``].join(` `),onClick:u?()=>l(e=>!e):void 0,children:[c(`div`,{children:[v(`h3`,{className:`text-[11px] font-semibold text-foreground-subtle uppercase tracking-wider`,children:Tz(e.title,i)}),e.description&&v(`p`,{className:`text-[10px] text-foreground-subtle mt-0.5`,children:Tz(e.description,i)})]}),u&&v(`span`,{className:`text-foreground-subtle text-xs ml-2`,children:s?`▸`:`▾`})]}),!s&&v(`div`,{className:`grid ${d} gap-x-3 gap-y-2.5`,children:e.fields.map(e=>v(Cz,{field:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,externalProbe:o?.[e.key]},e.key))})]})}function Oz({schema:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,probeResults:o,onClearProbe:s,bare:c=!1}){let l=(e,r)=>{n({...t,[e]:r}),s?.(e)};return c?v(`div`,{className:`space-y-4`,children:e.sections.map(e=>v(`div`,{className:`@container`,style:{containerType:`inline-size`},children:v(`div`,{className:`grid ${Ez(e.columns)} gap-x-3 gap-y-2.5`,children:e.fields.map(e=>v(Cz,{field:e,values:t,onChange:l,disabled:r,translationFn:i,onTestField:a,externalProbe:o?.[e.key]},e.key))})},e.id))}):v(`div`,{className:`space-y-4`,children:e.sections.map(e=>v(Dz,{section:e,values:t,onChange:l,disabled:r,translationFn:i,onTestField:a,probeResults:o},e.id))})}E();var kz=({open:e})=>v(`svg`,{className:`h-3 w-3 transition-transform ${e?`rotate-90`:``}`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:v(`polyline`,{points:`9 18 15 12 9 6`})});function Az(e){return e.type!==`separator`&&e.type!==`info`&&e.type!==`button`&&e.type!==`group`}function jz(e){let t={};if(!e)return t;for(let n of e.sections)for(let e of n.fields){if(!Az(e))continue;let n=e.key;t[n]=e.value}return t}function Mz(e,t){return{...e,sections:e.sections.map(e=>({...e,fields:e.fields.map(e=>{if(!Az(e))return e;let n=e.key;return n in t?{...e,value:t[n]}:e})}))}}function Nz(e){return ba(e)}function Pz({trpc:e,addonId:t,nodeId:n,title:r,disabled:i,onAfterChange:a,refreshToken:o,sectionIds:s,bare:l=!1,collapsible:u,defaultOpen:d,mode:m,onOverrideChange:h}){let g=q(),_=m??`persist`,[y,x]=C(null),[S,w]=C(!0),[T,E]=C(null),[D,O]=C(!1),[k,A]=C(d??!1),[j,M]=C({}),[N,F]=C(null),I=f(0);b(()=>{F(null),M({})},[e,t,n,o,_]),b(()=>{let r=!1;w(!0),E(null);let i=_===`override`&&Object.keys(j).length>0?j:void 0;return e.addonSettings.getGlobalSettings.query({addonId:t,nodeId:n,...i?{overlay:i}:{}}).then(e=>{r||(x(t=>e??t),!i&&e&&F(jz(e)),w(!1))}).catch(e=>{r||(E(e instanceof Error?e.message:String(e)),w(!1))}),()=>{r=!0}},[e,t,n,o,_,JSON.stringify(j)]);let L=p(()=>jz(y),[y]),R=s?.join(`\0`),z=p(()=>{if(!y)return null;let e=Nz(y);if(s===void 0)return e;let t=new Set(s);return{...e,sections:e.sections.filter(e=>t.has(e.id))}},[y,R]),B=async r=>{if(_===`override`){let e=N??L,t={};for(let n of Object.keys(r))r[n]!==e[n]&&(t[n]=r[n]);let n={...e,...t};M(t),h?.(t,n);return}let i={};for(let e of Object.keys(r))r[e]!==L[e]&&(i[e]=r[e]);if(Object.keys(i).length===0)return;let o=++I.current;x(e=>e===null?e:Mz(e,r)),O(!0),E(null);try{await e.addonSettings.updateGlobalSettings.mutate({addonId:t,nodeId:n,patch:i});let r=await e.addonSettings.getGlobalSettings.query({addonId:t,nodeId:n});r&&o===I.current&&x(r),o===I.current&&a?.()}catch(e){o===I.current&&E(e instanceof Error?e.message:String(e))}finally{o===I.current&&O(!1)}};if(S)return v(`div`,{className:`text-xs text-foreground-subtle animate-pulse`,children:g(`uiLibrary.addonGlobalSettings.loading`,`Loading {{name}}…`,{name:r??t})});if(T)return c(`div`,{className:`text-xs text-red-400`,children:[r??t,`: `,T]});if(!y||!z)return v(`div`,{className:`text-xs text-foreground-subtle`,children:g(`uiLibrary.addonGlobalSettings.unavailable`,`{{name}} not available on {{node}}.`,{name:r??t,node:n})});let V=_===`override`?{...L,...j}:L,H=c(P,{children:[_===`override`?v(`div`,{className:`mb-2 text-[11px] text-foreground-subtle`,children:g(`uiLibrary.addonGlobalSettings.override`,`Benchmark override — applies to this run only. The addon's saved settings are not changed.`)}):null,D?v(`div`,{className:`mb-2 text-[11px] text-foreground-subtle`,"aria-live":`polite`,children:g(`uiLibrary.addonGlobalSettings.saving`,`Saving…`)}):null,v(Oz,{schema:z,values:V,onChange:B,disabled:i===!0,bare:l})]});return l?v(`div`,{children:H}):u===!0?c(`section`,{className:`rounded-lg border border-border bg-surface overflow-hidden`,children:[c(`button`,{type:`button`,onClick:()=>A(e=>!e),className:`w-full px-4 py-2 flex items-center gap-2 hover:bg-surface-hover text-left`,"aria-expanded":k,children:[v(kz,{open:k}),v(`h3`,{className:`text-xs font-semibold text-foreground uppercase tracking-wide flex-1`,children:r??t}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:k?g(`uiLibrary.addonGlobalSettingsForm.hide`,`hide`):g(`uiLibrary.addonGlobalSettingsForm.edit`,`edit`)})]}),k?v(`div`,{className:`border-t border-border px-4 py-3`,children:H}):null]}):r?c(`section`,{className:`rounded-lg border border-border bg-surface overflow-hidden`,children:[v(`div`,{className:`border-b border-border px-4 py-2`,children:v(`h3`,{className:`text-xs font-semibold text-foreground uppercase tracking-wide`,children:r})}),v(`div`,{className:`px-4 py-3`,children:H})]}):v(`div`,{children:H})}var Fz=/^(usb|pci)(?::(\d+))?$/;function Iz(e){let t=Fz.exec(e);if(t===null||t[1]===`usb`&&t[2]===void 0)return{label:`Coral Edge TPU`,short:`Coral`};let n=t[1]===`pci`?`PCIe`:`USB`,r=t[2]===void 0?n:`${n} ${Number(t[2])+1}`;return{label:`Coral Edge TPU (${r})`,short:`Coral ${r}`}}function Lz(e){let t=e.backend.toLowerCase(),n=e.device.toLowerCase();if(e.key===`cpu`||n===`cpu`||t===`cpu`)return{label:`CPU`,short:`CPU`};if(n===`npu`)return{label:`Intel NPU`,short:`NPU`};if(n===`gpu`||n===`igpu`)return{label:`Intel iGPU`,short:`iGPU`};if(t===`edgetpu`)return Iz(n);if(t===`coreml`)return{label:`Apple Neural Engine`,short:`ANE`};let r=`${e.backend} ${e.device}`.trim().replace(/\b\w/g,e=>e.toUpperCase());return{label:r.length>0?r:e.key,short:e.backend||e.key}}function Rz(e){return Lz(e).label}function zz(e){return Lz(e).short}function Bz({active:e,onClick:t,disabled:n,children:r,title:i}){return v(`button`,{type:`button`,onClick:t,disabled:n,title:i,className:$(`rounded-full px-3 py-1 text-[11px] font-medium border transition-colors`,e?`border-primary bg-primary/10 text-primary`:`border-border bg-background text-foreground-subtle hover:text-foreground hover:border-foreground-subtle/40`,n?`opacity-50 cursor-not-allowed`:`cursor-pointer`),children:r})}function Vz({catalog:e,value:t,onChange:n,disabled:r}){let i=q(),a=yee(e),o=_a(e,t),s=a.find(e=>e.family===o?.family)?.family??a[0]?.family??``,l=a.find(e=>e.family===s)??a[0];if(!l)return null;let u=l.tiers.find(e=>e.tier===o?.tier)?.tier??l.tiers[0]?.tier??``,d=l.tiers.find(e=>e.tier===u)??l.tiers[0];if(!d)return null;let f=[...new Set(d.options.map(e=>e.resolution))].sort((e,t)=>(t??1/0)-(e??1/0)),p=f.includes(o?.resolution)?o?.resolution:f[0],m=d.options.filter(e=>e.resolution===p),h=e=>e===void 0?i(`uiLibrary.groupedModelSelector.native`,`native`):`${e}`,g=e=>{let t=l.tiers.find(t=>t.tier===e);t&&n((t.options.find(e=>e.precision===(o?.precision??`fp32`)&&e.optimization===(o?.optimization??`standard`)&&e.resolution===o?.resolution)??t.options[0]).modelId)},_=e=>{let t=d.options.filter(t=>t.resolution===e),r=t.find(e=>e.precision===(o?.precision??`fp32`)&&e.optimization===(o?.optimization??`standard`))??t[0];r&&n(r.modelId)},y=t=>{let r=Oee(e,{family:l.family,tier:d.tier,precision:t.precision,optimization:t.optimization,resolution:t.resolution});r&&n(r)},b=d.options.find(e=>e.modelId===t)??null;return c(`div`,{className:`space-y-3`,children:[a.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.family`,`Family`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:a.map(e=>v(Bz,{active:e.family===l.family,disabled:r,...e.hint===void 0?{}:{title:e.hint},onClick:()=>n(e.tiers[0]?.baseModelId??``),children:e.label},e.family))}),l.hint!==void 0&&c(`p`,{className:`mt-1 text-[10px] text-foreground-subtle`,"data-testid":`model-family-hint`,children:[l.label,`: `,l.hint]})]}),l.tiers.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.size`,`{{family}} — size`,{family:l.label})}),v(`div`,{className:`grid grid-cols-2 gap-1.5 sm:grid-cols-4`,children:l.tiers.map(e=>{let t=e.tier===d.tier,n=e.options.find(e=>e.resolution===p&&e.precision===`fp32`)??e.options.find(t=>t.modelId===e.baseModelId)??e.options[0];return c(`button`,{type:`button`,disabled:r,onClick:()=>g(e.tier),className:$(`rounded-lg border px-2 py-2 text-left transition-all`,t?`border-primary bg-primary/5 ring-1 ring-primary/30`:`border-border bg-background hover:border-foreground-subtle/40`,r?`opacity-50 cursor-not-allowed`:`cursor-pointer`),children:[c(`div`,{className:`flex items-center gap-1`,children:[v(`span`,{className:`text-xs font-semibold text-foreground`,children:e.label}),t&&v(dt,{className:`h-3 w-3 text-primary`})]}),n!==void 0&&n.sizeMB>0&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.groupedModelSelector.approxSize`,`~{{size}} MB`,{size:n.sizeMB})})]},e.tier)})})]}),f.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.resolution`,`Resolution`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:f.map(e=>v(Bz,{active:e===p,disabled:r,title:e===void 0?i(`uiLibrary.groupedModelSelector.nativeTitle`,`native (best accuracy)`):i(`uiLibrary.groupedModelSelector.fasterTitle`,`{{size}}×{{size}} (faster)`,{size:e}),onClick:()=>_(e),children:h(e)},e??`native`))})]}),m.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.variant`,`Variant`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:m.map(e=>v(Bz,{active:e.modelId===t,disabled:r,title:e.sizeMB>0?i(`uiLibrary.groupedModelSelector.formatsSize`,`{{formats}} · ~{{size}} MB`,{formats:e.formats.join(`, `),size:e.sizeMB}):e.formats.join(`, `),onClick:()=>y(e),children:c(`span`,{className:`inline-flex items-center gap-1`,children:[e.optimization===`test`&&v(er,{className:`h-3 w-3`}),e.label]})},e.modelId))})]}),c(`div`,{className:`flex items-center gap-2 text-[10px] text-foreground-subtle pt-0.5`,children:[v(Ar,{className:`h-3 w-3`}),v(`span`,{className:`font-mono`,children:t||`—`}),b&&c(`span`,{children:[`· `,b.formats.join(`, `),b.sizeMB>0?i(`uiLibrary.groupedModelSelector.sizeSuffix`,` · ~{{size}} MB`,{size:b.sizeMB}):``]})]})]})}E();var Hz={camstack:`CamStack`,frigate:`plus catalog`,scrypted:`plugin catalog`,custom:`Custom`};function Uz(e){return e.provider??`camstack`}function Wz({models:e,value:t,onChange:n,disabled:r,defaultModelId:i}){let a=q(),o=p(()=>{let t=new Map;for(let n of e){let e=Uz(n),r=t.get(e);r?r.push(n):t.set(e,[n])}return t},[e]),s=p(()=>See.filter(e=>(o.get(e)?.length??0)>0),[o]),l=p(()=>{let n=e.find(e=>e.id===t);return n?Uz(n):void 0},[e,t])??(s.includes(`camstack`)?`camstack`:s[0]??`camstack`),[u,d]=C(l);b(()=>{d(l)},[l]);let f=t!==``&&!e.some(e=>e.id===t),m=i!==void 0&&e.some(e=>e.id===i)?i:e[0]?.id,h=f&&c(`div`,{className:`rounded border border-amber-500/40 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-300 space-y-1.5`,children:[v(`p`,{children:v(hi,{uiKey:`uiLibrary.modelPicker.unresolved`,fallback:`Current pin (<0>{{value}}</0>) is not offered for this device. The runtime tries it as a custom model and refuses it if it cannot serve it. Pick a replacement and Save.`,components:[v(`span`,{className:`font-mono`},`v`)],values:{value:t}})}),m!==void 0&&v(`button`,{type:`button`,disabled:r,onClick:()=>n(m),className:`rounded border border-amber-500/50 px-2 py-0.5 text-[10px] font-medium hover:bg-amber-500/20 disabled:opacity-50`,children:v(hi,{uiKey:`uiLibrary.modelPicker.useDefault`,fallback:`Use default (<0>{{id}}</0>) — then Save`,components:[v(`span`,{className:`font-mono`},`d`)],values:{id:m}})})]}),g=o.get(u)??[],_=g.filter(e=>e.group!==void 0),y=g.filter(e=>e.group===void 0);return c(`div`,{className:`space-y-3`,children:[h,s.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:a(`uiLibrary.modelPicker.provider`,`Provider`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:s.map(e=>v(`button`,{type:`button`,disabled:r,onClick:()=>d(e),className:$(`rounded-full px-3 py-1 text-[11px] font-medium border transition-colors`,e===u?`border-primary bg-primary/10 text-primary`:`border-border bg-background text-foreground-subtle hover:text-foreground hover:border-foreground-subtle/40`,r?`opacity-50 cursor-not-allowed`:`cursor-pointer`),children:Hz[e]},e))})]}),_.length>0&&v(Vz,{catalog:_,value:t,onChange:n,disabled:r}),y.length>0&&((e,i)=>c(`select`,{disabled:r,className:`w-full bg-surface border border-border rounded px-2 py-1 text-xs disabled:opacity-50`,value:e.some(e=>e.id===t)?t:``,onChange:e=>n(e.target.value),children:[i!==void 0&&v(`option`,{value:``,disabled:!0,children:i}),e.map(e=>v(`option`,{value:e.id,children:e.name},e.id))]}))(y,_.length>0?`— other models —`:`— select a model —`),e.length===0&&v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.modelPicker.none`,`No model is published for this engine format.`)})]})}function Gz(e,t){let n=n=>e.models.find(e=>e.id===n)?.formats[t]!==void 0,r=e.defaultModelIdByFormat?.[t];if(r!==void 0&&n(r))return r;if(n(e.defaultModelId))return e.defaultModelId;let i=e.models.filter(e=>e.formats[t]!==void 0&&e.legacy!==!0);return i.length===0?e.defaultModelId:[...i].toSorted((e,n)=>(e.formats[t]?.sizeMB??1/0)-(n.formats[t]?.sizeMB??1/0))[0].id}function Kz(e,t){let n=t?.format;if(n===void 0)return;let r=t?.defaultModelId;return e.slot===`detector`&&r!==void 0&&e.models.some(e=>e.id===r)?r:Gz(e,n)}function qz(e,t){return t===void 0?[]:e.filter(e=>e.formats[t]!==void 0)}function Jz(e,t){return qz(e,t).length>0}function Yz(e){return e.base??Kz(e.catalog,e.device)}function Xz(e,t,n){return kee(e)?va(e,t,n?.supplies):null}function Zz(e,t){return{...e,[xee]:t}}function Qz(e,t=Fn){if(e.kind===`label`){let n=e.uncovered.length>0?[t(`uiLibrary.rootModelSource.notProduced`,`Not produced by this model: {{classes}}.`,{classes:e.uncovered.join(`, `)})]:[];return e.stepId===`package-detection`?[...n,t(`uiLibrary.rootModelSource.packageNote`,`The root model's own package boxes become the package result at this step's threshold; this step's zone-crop view is not used, so small parcels the full-frame model misses stay missed.`)]:[...n,t(`uiLibrary.rootModelSource.labelNote`,`This step's class list decides which of the root's labels become the fine class; a switched-off class stays at its macro.`)]}return e.kind===`mask`?[t(`uiLibrary.rootModelSource.maskNote`,`Masks come from the root model: each detection carries the root's own instance mask, so this step's model does not run. A root mask follows the model's mask grid (a quarter of its input), coarser than this step's own per-crop mask.`)]:e.stepId===`face-detection`?[t(`uiLibrary.rootModelSource.faceNote`,`Face boxes come from the root model. Each is re-found by this step's face detector in a square around it before recognition, so only a face it finds is recognised; a box with no face in it is dropped.`)]:[t(`uiLibrary.rootModelSource.plateNote`,`Plate boxes come from the root model and the plate reader reads them. The crop margin around a root plate box has not been measured for this model yet.`)]}function $z(e,t,n){switch(e.inactiveReason){case`root-input-too-small`:return n(`uiLibrary.rootModelSource.inactiveTooSmall`,`the current root model ({{name}}) sees the frame too small to find faces reliably (it needs an input of 640 px or more).`,{name:t.name});case`root-does-not-declare`:case void 0:return n(`uiLibrary.rootModelSource.inactiveCannot`,`the current root model ({{name}}) cannot supply this.`,{name:t.name})}}function eB({stepId:e,settings:t,rootModel:n,disabled:r,onChange:i}){let a=q();if(n===void 0)return null;let o=Xz(e,t,n);if(o===null)return null;let s=o.inactive?v(`div`,{className:`rounded bg-muted/40 px-3 py-2 text-[11px] text-foreground-subtle`,"data-testid":`root-model-inactive`,children:a(`uiLibrary.rootModelSource.inactive`,`Use the root model: inactive — {{reason}} The step runs its own model.`,{reason:$z(o,n,a)})}):null;if(o.supply===void 0)return s;let l=o.intent;return c(`div`,{className:`space-y-1`,"data-testid":`root-model-source`,children:[c(`label`,{className:`flex items-center gap-2 text-xs text-foreground`,children:[v(`input`,{type:`checkbox`,checked:l,disabled:r,onChange:e=>i(e.target.checked)}),a(`uiLibrary.rootModelSource.use`,`Use the root model ({{name}})`,{name:n.name})]}),s,o.effective&&Qz(o.supply,a).map(e=>v(`p`,{className:`text-[10px] leading-snug text-foreground-subtle`,children:e},e))]})}function tB(e,t){switch(e){case`override`:return t(`uiLibrary.modelBoundSlider.sourceOverride`,`Override for this model`);case`model-default`:return t(`uiLibrary.modelBoundSlider.sourceModelDefault`,`Model default`);case`global-default`:return t(`uiLibrary.modelBoundSlider.sourceGlobalDefault`,`Default — not tuned for this model`)}}function nB(e,t){return(t===void 0?e:e/t).toFixed(2).replace(/\.?0+$/,``)}function rB({field:e,modelId:t,settings:n,disabled:r,onChangeSettings:i,hideSourceRow:a=!1}){let o=q(),s=e.modelApplicability?.defaultByModel?.[t],l=Ja(n,e.key,t.length>0?t:void 0,s,e.default),u=typeof e.default==`number`?e.default:e.min??0,d=typeof l.value==`number`?l.value:u,f=e.type===`slider`?e.displayScale:void 0,p=`unit`in e?e.unit:void 0,m=l.inapplicableOverride,h=n?.[e.key]!==void 0,g=r=>{i(t.length>0?Mee(n,e.key,r,t):{...n,[e.key]:r})};return c(`div`,{children:[c(`div`,{className:`flex items-center justify-between mb-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:e.label}),c(`span`,{className:`text-xs font-medium text-foreground tabular-nums`,children:[nB(d,f),p?` ${p}`:``]})]}),e.description&&v(`p`,{className:`text-[10px] text-foreground-subtle/60 mb-1.5`,children:e.description}),v(`input`,{type:`range`,min:e.min??0,max:e.max??1,step:e.step??.01,value:d,disabled:r||e.disabled,onChange:e=>g(Number(e.target.value)),className:`w-full accent-primary h-1.5`}),!a&&c(`div`,{className:`mt-1 flex items-center justify-between gap-2 text-[10px]`,children:[v(`span`,{"data-testid":`model-bound-source`,className:l.source===`override`?`text-primary font-medium`:`text-foreground-subtle`,children:tB(l.source,o)}),h&&v(`button`,{type:`button`,disabled:r,className:`text-foreground-subtle hover:text-foreground disabled:opacity-50`,onClick:()=>i(Lee(n,e.key)),children:o(`uiLibrary.modelBoundSlider.resetToDefault`,`Reset to model default`)})]}),m!==void 0&&typeof m.value==`number`&&v(`p`,{className:`mt-1 text-[10px] text-amber-400/90`,children:o(`uiLibrary.modelBoundSlider.staleOverride`,`The override {{value}} was set for {{modelId}} and does not apply to this model.`,{value:nB(m.value,f),modelId:m.modelId})})]})}function iB(e){return e.flatMap(e=>e.type===`group`?iB(e.fields):`key`in e&&`bindsToModel`in e&&e.bindsToModel===!0?[e.key]:[])}function aB({fields:e,modelId:t,settings:n,disabled:r,onReset:i}){let a=q(),o=iB(e),s=t.length>0?t:void 0;return o.length===0||!Qa(n,o,s)?null:v(`button`,{type:`button`,disabled:r,className:`text-[10px] text-primary hover:underline disabled:opacity-50`,onClick:()=>i(la(n,o,s)),children:a(`uiLibrary.modelBoundSlider.resetThresholds`,`Reset thresholds to model defaults`)})}function oB({expanded:e,onExpandedChange:t,header:n,children:r,dimmed:i=!1,hideChevron:a=!1,className:o}){return c(`div`,{className:$(`rounded-lg border border-border bg-surface overflow-hidden`,i&&`opacity-[0.45]`,o),children:[c(`div`,{role:`button`,tabIndex:0,className:`flex items-center gap-2.5 px-3 py-2.5 cursor-pointer select-none`,onClick:()=>t(!e),onKeyDown:n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),t(!e))},children:[!a&&v(`span`,{className:`text-foreground-subtle shrink-0`,children:v(e?de:It,{className:`h-4 w-4`})}),n]}),e&&r&&v(`div`,{className:`border-t border-border px-3 py-3`,children:r})]})}E();function sB(e){return e?.models??[]}function cB({step:e,schema:t,allSchemas:n,depth:r=0,onChange:i,onDelete:a,readOnly:o=!1}){let s=q(),[l,u]=C(!1),d=sB(t);if(d.length>0&&!d.some(t=>t.id===e.modelId)&&!o){let n=(t?.defaultModelId?d.find(e=>e.id===t.defaultModelId):null)??d[0];n&&n.id!==e.modelId&&queueMicrotask(()=>i({...e,modelId:n.id}))}let f=c(P,{children:[c(`div`,{className:`flex-1 min-w-0`,children:[v(`span`,{className:`text-[10px] uppercase tracking-wider font-medium text-foreground-subtle/60 block leading-none`,children:e.slot}),v(`span`,{className:`text-sm font-semibold text-foreground truncate block leading-tight`,children:e.addonName}),c(`div`,{className:`flex items-center gap-1 mt-0.5 flex-wrap`,children:[e.inputClasses.map(e=>v(`span`,{className:`text-[9px] uppercase font-semibold tracking-wide px-1.5 py-0.5 rounded bg-blue-500/12 text-blue-400`,children:e},e)),e.inputClasses.length>0&&e.outputClasses.length>0&&v(`span`,{className:`text-foreground-subtle/40 text-[10px]`,children:`→`}),e.outputClasses.map(e=>v(`span`,{className:`text-[9px] uppercase font-semibold tracking-wide px-1.5 py-0.5 rounded bg-green-500/12 text-green-400`,children:e},e))]})]}),!o&&v(`button`,{onClick:t=>{t.stopPropagation(),i({...e,enabled:!e.enabled})},className:$(`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors`,e.enabled?`bg-success`:`bg-foreground-subtle/30`),children:v(`span`,{className:$(`inline-block h-4 w-4 rounded-full bg-white shadow transition-transform`,e.enabled?`translate-x-6`:`translate-x-1`)})})]});return v(oB,{expanded:l,onExpandedChange:u,dimmed:!e.enabled,header:f,children:c(`div`,{className:`space-y-3`,children:[c(`div`,{className:`space-y-2`,children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:s(`uiLibrary.pipelineStep.model`,`Model`)}),v(Wz,{models:d,value:e.modelId,disabled:o,onChange:t=>i({...e,modelId:t})})]}),t?.configSchema?.map(n=>v(fB,{field:n,allFields:t.configSchema??[],step:e,disabled:o,onChange:i},n.key))]})})}function lB({label:e,value:t,options:n,disabled:r,onChange:i}){let a=q();return c(`div`,{children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide mb-1.5`,children:e}),c(`select`,{value:t,onChange:e=>i(e.target.value),disabled:r,className:`w-full rounded-lg border border-border bg-surface px-3 py-2 text-xs text-foreground focus:outline-none focus:border-primary/50`,children:[n.length===0&&v(`option`,{value:t,children:t||a(`uiLibrary.pipelineStep.default`,`default`)}),n.map(e=>v(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]})]})}function uB({label:e,description:t,value:n,options:r,disabled:i,onChange:a}){function o(e){i||a(n.includes(e)?n.filter(t=>t!==e):[...n,e])}return c(`div`,{children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide mb-1`,children:e}),t&&v(`p`,{className:`text-[10px] text-foreground-subtle/60 mb-1.5`,children:t}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:r.map(e=>c(`button`,{type:`button`,disabled:i,onClick:()=>o(e.value),className:$(`inline-flex items-center gap-1 text-[10px] font-medium px-2 py-1 rounded-md border transition-colors`,n.includes(e.value)?`bg-primary/20 text-primary border-primary/40`:`bg-surface text-foreground-subtle border-border hover:border-primary/30`,i&&`opacity-50 cursor-not-allowed`),children:[e.iconId!==void 0&&v(Uk,{iconId:e.iconId,size:12}),e.label]},e.value))})]})}function dB(e,t,n){let r=t.settings?.[e];if(r!==void 0)return r;let i=n.find(t=>`key`in t&&t.key===e);return i&&`default`in i?i.default:void 0}function fB({field:e,allFields:t,step:n,disabled:r,onChange:i,hideModelBoundSourceRow:a}){let o=q(),s=`modelApplicability`in e?e.modelApplicability:void 0,l=s?.inapplicable?.[n.modelId],u=v(pB,{field:e,allFields:t,step:n,disabled:r||l!==void 0,modelScopedOptions:s?.optionsByModel?.[n.modelId],onChange:i,hideModelBoundSourceRow:a===!0});return l===void 0?u:c(`div`,{className:`space-y-1`,children:[u,v(`div`,{className:`text-[10px] text-amber-400/90`,children:o(`uiLibrary.pipelineStep.noEffect`,`No effect with the selected model — {{reason}}`,{reason:l})})]})}function pB({field:e,allFields:t,step:n,disabled:r,modelScopedOptions:i,onChange:a,hideModelBoundSourceRow:o}){let s=e.type!==`separator`&&e.type!==`info`?e.showWhen:void 0;if(s){let{field:e,equals:r,notEquals:i,in:a,notIn:o}=s,c=dB(e,n,t);if(r!==void 0&&c!==r||i!==void 0&&c===i||a!==void 0&&!a.includes(c)||o!==void 0&&o.includes(c))return null}function l(t){a({...n,settings:{...n.settings,[e.key]:t}})}if(e.type===`select`){let t=n.settings?.[e.key],a=typeof t==`string`?t:e.default??``;return v(lB,{label:e.label,value:a,disabled:r||e.disabled,options:i??e.options,onChange:l})}if(e.type===`multiselect`){let t=n.settings?.[e.key],a=Array.isArray(t)?t:Array.isArray(e.default)?e.default:[];return v(uB,{label:e.label,description:e.description,value:a,options:i??e.options,disabled:r||e.disabled,onChange:l})}if((e.type===`slider`||e.type===`number`)&&e.bindsToModel===!0)return v(rB,{field:e,modelId:n.modelId,settings:n.settings,disabled:r,onChangeSettings:e=>a({...n,settings:e}),hideSourceRow:o});if(e.type===`slider`||e.type===`number`){let t=n.settings?.[e.key],i=typeof e.default==`number`?e.default:e.min??0,a=typeof t==`number`?t:i,o=e.min??0,s=e.max??1,u=e.step??.01,d=e.type===`slider`?e.showValue:!0,f=`unit`in e?e.unit:void 0,p=e.type===`slider`?e.displayScale:void 0,m=p?a/p:a;return c(`div`,{children:[c(`div`,{className:`flex items-center justify-between mb-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:e.label}),d&&c(`span`,{className:`text-xs font-medium text-foreground tabular-nums`,children:[typeof m==`number`?m.toFixed(2).replace(/\.?0+$/,``):m,f?` ${f}`:``]})]}),e.description&&v(`p`,{className:`text-[10px] text-foreground-subtle/60 mb-1.5`,children:e.description}),v(`input`,{type:`range`,min:o,max:s,step:u,value:a,disabled:r||e.disabled,onChange:e=>l(Number(e.target.value)),className:`w-full accent-primary h-1.5`})]})}if(e.type===`boolean`){let t=n.settings?.[e.key];return c(`label`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`checkbox`,checked:typeof t==`boolean`?t:e.default===!0,disabled:r||e.disabled,onChange:e=>l(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),v(`span`,{className:`text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:e.label})]})}if(e.type===`text`||e.type===`password`||e.type===`textarea`){let t=n.settings?.[e.key],i=typeof t==`string`?t:e.default??``,a=e.type===`password`?`password`:`text`;return c(`div`,{children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide mb-1.5`,children:e.label}),e.type===`textarea`?v(`textarea`,{value:i,disabled:r||e.disabled,placeholder:e.placeholder,onChange:e=>l(e.target.value),rows:3,className:`w-full rounded-lg border border-border bg-surface px-3 py-2 text-xs text-foreground focus:outline-none focus:border-primary/50 resize-y`}):v(`input`,{type:a,value:i,disabled:r||e.disabled,placeholder:e.placeholder,onChange:e=>l(e.target.value),className:`w-full rounded-lg border border-border bg-surface px-3 py-2 text-xs text-foreground focus:outline-none focus:border-primary/50`})]})}return e.type===`separator`?v(`div`,{className:`border-t border-border my-2`}):e.type===`info`?v(`div`,{className:`rounded-md border border-border bg-surface px-2 py-1.5 text-[10px] text-foreground-subtle`,children:e.content}):null}function mB(e){return e.type!==`separator`&&e.type!==`info`&&e.type!==`group`}function hB(e){return`bindsToModel`in e&&e.bindsToModel===!0?!0:`key`in e&&jee(e.key)}function gB(e){return e.flatMap(e=>{if(e.type===`group`){let t=gB(e.fields);return t.length>0?[{...e,fields:[...t]}]:[]}return hB(e)?[]:[e]})}function _B(e){return(e.type===`slider`||e.type===`number`)&&e.bindsToModel===!0}function vB(e,t){let n=`modelApplicability`in e?e.modelApplicability?.defaultByModel?.[t]:void 0;return n===void 0?{value:`default`in e?e.default:void 0,fromModel:!1}:{value:n,fromModel:!0}}function yB(e){return e.toFixed(2).replace(/\.?0+$/,``)}function bB(e,t){if(t==null)return`—`;if(typeof t==`boolean`)return t?`on`:`off`;if(typeof t==`number`){let n=e.type===`slider`?e.displayScale:void 0,r=`unit`in e&&typeof e.unit==`string`?` ${e.unit}`:``;return`${yB(n===void 0?t:t/n)}${r}`}let n=`options`in e&&Array.isArray(e.options)?e.options:[],r=e=>{let t=n.find(t=>t.value===e);return t?t.label:String(e)};return Array.isArray(t)?t.length===0?`none`:t.map(r).join(`, `):typeof t==`string`?r(t):JSON.stringify(t)}var xB={camera:`border-primary/40 bg-primary/10 text-primary`,node:`border-border bg-muted/40 text-foreground`,default:`border-border/60 text-foreground-subtle`};function SB(e){return`step-field-${e}`}function CB(e,t,n){return{addonId:e.id,addonName:e.name,slot:e.slot,inputClasses:[...e.inputClasses],outputClasses:[...e.outputClasses],enabled:!0,modelId:t,children:[],settings:{...n}}}var wB=[`camera`,`node`];function TB({field:e,layers:t,target:n,labels:r,boundKeys:i,modelId:a,pinned:o,disabled:s,onReset:l,action:u}){let d=q(),f=na(t),p=vB(e,a),m=p.fromModel?d(`uiLibrary.layeredSettings.modelDefault`,`model default`):d(`uiLibrary.layeredSettings.default`,`default`),h=ka(t,e.key,i),g=_B(e),_=g?Ja(f,e.key,a,p.value,p.value):null,y=_===null||_.source===`override`?h:`default`,b=y==="default"?m:r[y]??y,x=wB.filter(e=>e!==y&&r[e]!==void 0).filter(n=>t[n]?.[e.key]!==void 0).map(n=>{let i=g?t[n]?.[Zi(e.key)]:void 0,o=typeof i==`string`&&i!==a?d(`uiLibrary.layeredSettings.forModel`,` (for {{model}})`,{model:i}):``;return`${r[n]} ${bB(e,t[n]?.[e.key])}${o}`}),S=y==="default"?x:[...x,`${m} ${bB(e,p.value)}`],C=ka({[n]:t[n]},e.key,i)!=="default",w=wB.slice(wB.indexOf(n)+1).find(n=>r[n]!==void 0&&t[n]?.[e.key]!==void 0),T=w===void 0?m:r[w]??w,E=h==="default"?`default`:ka({...t,[h]:void 0},e.key,i),D=E==="default"?m:r[E]??E;return c(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[10px]`,children:[v(`span`,{"data-testid":`setting-source`,className:$(`rounded border px-1.5 py-px font-medium`,xB[y]),children:b}),S.length>0&&v(`span`,{"data-testid":`setting-levels`,className:`text-foreground-subtle`,children:S.join(` · `)}),o&&v(`span`,{className:`rounded border border-warning/40 px-1.5 py-px text-warning`,title:d(`uiLibrary.layeredSettings.pinnedHint`,`Stored by an older editor as a copy of the value below. It changes nothing today, but it stops later changes below from reaching this camera.`),children:d(`uiLibrary.layeredSettings.pinned`,`pinned at the {{source}} value`,{source:D.toLowerCase()})}),c(`span`,{className:`ml-auto flex items-center gap-2`,children:[u,C&&v(`button`,{type:`button`,disabled:s,onClick:l,className:`rounded px-1 text-foreground-subtle hover:bg-muted hover:text-foreground disabled:opacity-50`,children:d(`uiLibrary.layeredSettings.resetTo`,`Reset to {{target}}`,{target:T.toLowerCase()})})]})]})}function EB({addon:e,fields:t,layers:n,target:r,labels:i,modelId:a,onChangeLayer:o,rootModel:s,pinnedKeys:l=[],fieldActions:u,headerActions:d,highlightKey:f=null,disabled:p=!1}){let m=q(),h=r===`camera`?gB(t):t,g=Ua(h),_=na(n),y=n[r],b=CB(e,a,_),x=Xz(e.id,_,s);return c(`div`,{className:`space-y-2 text-xs`,children:[c(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v(`h3`,{className:Ut,children:m(`uiLibrary.layeredSettings.title`,`Settings`)}),v(`span`,{className:Ni,children:m(`uiLibrary.layeredSettings.editing`,`editing: {{target}}`,{target:i[r]??r})}),c(`span`,{className:`ml-auto flex flex-wrap items-center gap-3`,children:[d,v(aB,{fields:h,modelId:a,settings:y,disabled:p,onReset:e=>o(e)})]})]}),x!==null&&v(eB,{stepId:e.id,settings:_,rootModel:s,disabled:p,onChange:e=>o(xa(y,`useRootModel`,Zz(_,e),[]))}),h.map(e=>{if(!mB(e))return v(fB,{field:e,allFields:h,step:b,disabled:p,onChange:()=>{}},e.key);let t=f===e.key;return c(`div`,{id:SB(e.key),"data-field-key":e.key,className:$(`rounded-md border border-transparent px-2 py-1 -mx-2`,t&&`border-primary/50 bg-primary/5`),children:[v(fB,{field:e,allFields:h,step:b,disabled:p,hideModelBoundSourceRow:!0,onChange:t=>o(xa(y,e.key,t.settings??{},g))}),v(TB,{field:e,layers:n,target:r,labels:i,boundKeys:g,modelId:a,pinned:l.includes(e.key),disabled:p,onReset:()=>o(da(y,e.key,g)),action:u?.(e.key,ka(n,e.key,g))})]},e.key)})]})}E();function DB(e){let t=new Set(Wi(e.id).map(e=>e.key));return(e.configSchema??[]).filter(e=>!t.has(e.key))}function OB(e,t,n,r){return r!==void 0&&Xz(e.id,n,r)?.effective?r.modelId:t??e.defaultModelId}function kB({addonId:e}){let t=q();return Wi(e).length===0?null:v(`p`,{className:`text-[10px] leading-snug text-foreground-subtle`,children:t(`uiLibrary.agentStepEditor.clusterHint`,`Admission knobs for this step live in Pipeline → Cluster → Settings → Enrichment models. They apply to every camera — a per-device copy would fill the shared index from two policies.`)})}function AB({rootModel:e,stepModelId:t}){return v(`div`,{className:`rounded bg-primary/10 px-3 py-2 text-[11px] text-foreground-subtle`,"data-testid":`root-supplied-model`,children:v(hi,{uiKey:`uiLibrary.agentStepEditor.rootSupplied`,fallback:`<0>Model: {{name}}</0> (the root model). This step's own model{{stepModel}} is kept and runs again whenever the root model cannot supply the step.`,components:[v(`span`,{className:`font-semibold text-foreground`},`m`)],values:{name:e.name,stepModel:t===void 0?``:` (${t})`}})})}function jB({addon:e,agentDefault:t,onChangeAgentConfig:n,engineFormat:r,effectiveModelId:i,rootModel:a}){let o=q(),s=p(()=>qz(e.models,r),[e.models,r]),l=e=>{n?.({...t,...e})},u=DB(e),d=e.defaultModelIdByFormat?.[r]??e.defaultModelId,f=t.settings??{},m=Xz(e.id,f,a)?.effective===!0,h=t.modelId??i;return c(`div`,{className:`space-y-4 text-xs`,children:[m&&a!==void 0?v(AB,{rootModel:a,stepModelId:h}):c(`div`,{children:[v(`div`,{className:`text-[10px] uppercase tracking-widest text-foreground-subtle mb-1`,children:o(`uiLibrary.agentStepEditor.model`,`Model`)}),v(Wz,{models:s,value:h??``,defaultModelId:d,onChange:e=>l({modelId:e})})]}),(u.length>0||Xz(e.id,f,a))&&v(`div`,{className:`pt-2 border-t border-border/50`,children:v(EB,{addon:e,fields:u,layers:{node:f},target:`node`,labels:{node:`This node`},modelId:OB(e,h,f,a),...a===void 0?{}:{rootModel:a},onChangeLayer:e=>l({settings:e})})}),v(kB,{addonId:e.id})]})}E();var MB=D(({className:e,...t},n)=>v(`label`,{ref:n,className:$(`text-[10px] uppercase tracking-wider text-foreground-muted font-medium`,e),...t}));MB.displayName=`Label`,E();var NB=kl(``,{variants:{orientation:{horizontal:`h-px w-full bg-border-subtle`,vertical:`w-px h-full bg-border-subtle`}},defaultVariants:{orientation:`horizontal`}}),PB=D(({className:e,orientation:t,...n},r)=>v(`div`,{ref:r,role:`separator`,"aria-orientation":t??`horizontal`,className:$(NB({orientation:t}),e),...n}));PB.displayName=`Separator`,E();var FB=D(({className:e,...t},n)=>v(`input`,{ref:n,type:`checkbox`,className:$(`w-3.5 h-3.5 rounded-sm border border-border accent-primary`,e),...t}));FB.displayName=`Checkbox`,E();var IB=D(({className:e,checked:t,onCheckedChange:n,label:r,...i},a)=>c(`button`,{ref:a,role:`switch`,"aria-checked":t,type:`button`,onClick:()=>n(!t),className:$(`inline-flex items-center gap-2`,e),...i,children:[v(`span`,{className:$(`w-8 h-4 rounded-full transition-colors`,t?`bg-primary`:`bg-surface-hover`),children:v(`span`,{className:$(`block w-3.5 h-3.5 rounded-full bg-white transition-transform`,t?`translate-x-4`:`translate-x-0.5`)})}),r&&v(`span`,{className:`text-xs text-foreground`,children:r})]}));IB.displayName=`Switch`,E();function LB(e){let{scrollLeft:t,scrollWidth:n,clientWidth:r}=e,i=n>r+1;return{overflowLeft:i&&t>1,overflowRight:i&&t+r<n-1}}function RB(e){typeof e.scrollIntoView==`function`&&e.scrollIntoView({inline:`nearest`,block:`nearest`})}function zB(e,t){let n=e.querySelectorAll(`[role="tab"]`);if(n.length===0)return;let r=e.scrollLeft;if(t===`right`){for(let e of n)if(e.offsetLeft+e.offsetWidth>r+1){RB(e);return}return}for(let e=n.length-1;e>=0;e--){let t=n[e];if(t!==void 0&&t.offsetLeft<r-1){RB(t);return}}}function BB(e){let t=e.querySelector(`[role="tab"][aria-selected="true"]`);t!==null&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({inline:`nearest`,block:`nearest`})}function VB({activeTabKey:e,listClassName:t,className:n,children:r,...i}){let a=f(null),[o,s]=C({overflowLeft:!1,overflowRight:!1}),[l,u]=C(!1),d=_(()=>{let e=a.current;e!==null&&s(LB(e))},[]);b(()=>{d();let e=a.current;if(e===null)return;e.addEventListener(`scroll`,d,{passive:!0});let t=typeof ResizeObserver<`u`?new ResizeObserver(d):null;t?.observe(e);for(let n of e.children)t?.observe(n);return()=>{e.removeEventListener(`scroll`,d),t?.disconnect()}},[d,r]),b(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(hover: hover) and (pointer: fine)`),t=()=>{u(e.matches)};return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),b(()=>{let t=a.current;t===null||e===void 0||(BB(t),d())},[e,d]);let p=e=>{let t=a.current;t!==null&&zB(t,e)};return c(`div`,{className:$(`relative min-w-0`,n),"data-tab-strip-overflow-left":o.overflowLeft?``:void 0,"data-tab-strip-overflow-right":o.overflowRight?``:void 0,children:[o.overflowLeft&&v(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-y-0 left-0 z-[1] w-8 bg-gradient-to-r from-background to-transparent`}),o.overflowRight&&v(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-y-0 right-0 z-[1] w-8 bg-gradient-to-l from-background to-transparent`}),l&&o.overflowLeft&&v(jl,{type:`button`,variant:`ghost`,size:`sm`,icon:ge,"aria-label":`Scroll tabs left`,className:`absolute left-0 top-1/2 z-[2] -translate-y-1/2 bg-background/80 shadow-sm`,onClick:()=>p(`left`)}),l&&o.overflowRight&&v(jl,{type:`button`,variant:`ghost`,size:`sm`,icon:It,"aria-label":`Scroll tabs right`,className:`absolute right-0 top-1/2 z-[2] -translate-y-1/2 bg-background/80 shadow-sm`,onClick:()=>p(`right`)}),v(`div`,{ref:a,role:`tablist`,className:t,...i,children:r})]})}E();var HB=O(null);function UB(){let e=I(HB);if(!e)throw Error(`Tabs compound components must be used within <Tabs>`);return e}function WB({value:e,onValueChange:t,defaultValue:n=``,appearance:r=`underline`,className:i,...a}){let[o,s]=C(n),c=e??o,l=_(n=>{t?.(n),e===void 0&&s(n)},[e,t]);return v(HB.Provider,{value:{value:c,setValue:l,appearance:r},children:v(`div`,{className:i,...a})})}function GB({className:e,...t}){let{appearance:n,value:r}=UB();return v(VB,{activeTabKey:r,listClassName:$(`flex flex-row overflow-x-auto overflow-y-hidden`,n===`pills`?`gap-1 border-b border-border-subtle py-1`:`border-b border-border-subtle`,e),...t})}var KB=D(function({value:e,className:t,...n},r){let{value:i,setValue:a,appearance:o}=UB(),s=e===i;return v(`button`,{ref:r,type:`button`,role:`tab`,"aria-selected":s,"aria-controls":`tabpanel-${e}`,tabIndex:s?0:-1,className:$(`inline-flex h-7 shrink-0 items-center justify-center gap-1.5 whitespace-nowrap text-xs px-3 transition-colors`,o===`pills`?s?`rounded-md bg-primary/10 font-medium text-primary`:`rounded-md text-foreground-muted hover:bg-surface-hover hover:text-foreground`:s?`border-b-2 border-primary text-foreground font-medium`:`text-foreground-muted hover:text-foreground`,t),onClick:()=>a(e),...n})});function qB({value:e,className:t,...n}){let{value:r}=UB();return e===r?v(`div`,{role:`tabpanel`,id:`tabpanel-${e}`,className:$(`pt-3`,t),...n}):null}E();var JB=D(({className:e,...t},n)=>v(`div`,{ref:n,className:$(`overflow-auto [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-surface-hover [&::-webkit-scrollbar-thumb]:rounded-full`,e),...t}));JB.displayName=`ScrollArea`,E();function YB({title:e,icon:t,position:n,onPositionChange:r,size:i,onSizeChange:a,onClose:o,children:s,defaultWidth:l=360,defaultHeight:u=280,minWidth:d=280,minHeight:p=160,offsetIndex:m=0,className:h}){let g=q(),[y,x]=C({x:80+m*30,y:80+m*30}),[S,w]=C({w:l,h:u}),T=n??y,E=i??S,D=f({size:E,onPositionChange:r,onSizeChange:a});D.current={size:E,onPositionChange:r,onSizeChange:a};let[O,k]=C(!1),A=f(!1),j=f(!1),M=f({x:0,y:0}),N=il(),P=_(e=>{e.preventDefault(),A.current=!0,M.current={x:e.clientX-T.x,y:e.clientY-T.y}},[T]),F=_(e=>{e.preventDefault(),e.stopPropagation(),j.current=!0,M.current={x:e.clientX,y:e.clientY}},[]);return b(()=>{let e=e=>{if(A.current){let t={x:e.clientX-M.current.x,y:e.clientY-M.current.y};x(t),D.current.onPositionChange?.(t)}if(j.current){let t=e.clientX-M.current.x,n=e.clientY-M.current.y;M.current={x:e.clientX,y:e.clientY};let r=D.current.size,i={w:Math.max(d,r.w+t),h:Math.max(p,r.h+n)};D.current={...D.current,size:i},w(i),D.current.onSizeChange?.(i)}},t=()=>{A.current=!1,j.current=!1};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[d,p]),N?c(`div`,{className:$(`fixed inset-x-0 bottom-0 z-50 rounded-t-xl border-t border-border bg-background-elevated shadow-2xl flex flex-col overflow-hidden pb-[env(safe-area-inset-bottom)]`,h),style:{maxHeight:`60dvh`},children:[c(`div`,{className:`flex items-center justify-between gap-2 px-3 py-2 border-b border-border shrink-0 bg-surface`,children:[c(`div`,{className:`flex items-center gap-2 min-w-0`,children:[t&&v(t,{size:12,className:`text-primary shrink-0`}),v(`span`,{className:`text-[11px] font-medium truncate`,children:e})]}),c(`div`,{className:`flex items-center gap-1 shrink-0`,children:[v(`button`,{onClick:()=>k(!O),className:`p-0.5 rounded hover:bg-surface-hover text-foreground-muted transition-colors`,children:v(O?Rr:fi,{size:12})}),v(`button`,{onClick:o,className:`p-0.5 rounded hover:bg-danger/20 text-foreground-muted hover:text-danger transition-colors`,children:v(Yn,{size:12})})]})]}),!O&&v(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:s})]}):c(`div`,{className:$(`fixed z-50 rounded-lg border border-border bg-background-elevated shadow-2xl flex flex-col overflow-hidden`,h),style:{left:T.x,top:T.y,width:O?280:E.w,height:O?`auto`:E.h},children:[c(`div`,{onMouseDown:P,className:`flex items-center justify-between gap-2 px-3 py-2 border-b border-border cursor-move select-none shrink-0 bg-surface`,children:[c(`div`,{className:`flex items-center gap-2 min-w-0`,children:[v(ur,{size:12,className:`text-foreground-subtle shrink-0`}),t&&v(t,{size:12,className:`text-primary shrink-0`}),v(`span`,{className:`text-[11px] font-medium truncate`,children:e})]}),c(`div`,{className:`flex items-center gap-1 shrink-0`,children:[v(`button`,{onClick:()=>k(!O),className:`p-0.5 rounded hover:bg-surface-hover text-foreground-muted transition-colors`,title:O?g(`uiLibrary.floatingPanel.restore`,`Restore`):g(`uiLibrary.floatingPanel.minimize`,`Minimize`),children:v(O?Rr:fi,{size:12})}),v(`button`,{onClick:o,className:`p-0.5 rounded hover:bg-danger/20 text-foreground-muted hover:text-danger transition-colors`,title:g(`uiLibrary.floatingPanel.close`,`Close`),children:v(Yn,{size:12})})]})]}),!O&&c(`div`,{className:`flex-1 min-h-0 overflow-y-auto relative`,children:[s,v(`div`,{onMouseDown:F,className:`absolute bottom-0 right-0 w-4 h-4 cursor-nwse-resize`,style:{background:`linear-gradient(135deg, transparent 50%, var(--color-foreground-subtle) 50%)`,opacity:.4}})]})]})}E();function XB({open:e,onClose:t,children:n,className:r,width:i=`w-64`}){let a=f(null);return b(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,n),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,n),document.body.style.overflow=``}},[e,t]),c(P,{children:[v(`div`,{className:$(`fixed inset-0 z-40 bg-black/50 backdrop-blur-sm transition-opacity duration-200`,e?`opacity-100`:`pointer-events-none opacity-0`),onClick:t,"aria-hidden":`true`}),v(`div`,{ref:a,role:`dialog`,"aria-modal":`true`,className:$(`fixed inset-y-0 left-0 z-50 flex flex-col bg-surface border-r border-border shadow-2xl transition-transform duration-200 ease-out pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]`,i,e?`translate-x-0`:`-translate-x-full`,r),children:n})]})}function ZB({label:e,icon:t,href:n,badge:r,active:i=!1,className:a}){return c(`a`,{href:n,className:$(`flex items-center gap-2 h-7 px-2 text-[11px] transition-colors`,i?`border-l-2 border-primary bg-primary/[0.08] text-foreground rounded-r-md`:`text-foreground-subtle hover:bg-surface-hover rounded-md`,a),children:[v(t,{className:`h-3.5 w-3.5 shrink-0`}),v(`span`,{className:`truncate flex-1`,children:e}),r!==void 0&&v(zk,{className:`ml-auto text-[10px] px-1.5 py-0`,children:r})]})}function QB({logo:e,sections:t,footer:n,onNavigate:r,className:i}){return c(`nav`,{className:$(`bg-surface border-r border-border h-full flex flex-col`,i),children:[e&&v(`div`,{className:`px-3 py-2 shrink-0`,children:e}),v(`div`,{className:`flex-1 overflow-auto px-1 py-1`,children:t.map((e,t)=>c(`div`,{className:$(t>0?`mt-3`:``),children:[e.label&&v(`span`,{className:`text-[10px] text-foreground-disabled uppercase tracking-wider px-2 mb-1 block`,children:e.label}),v(`div`,{className:`flex flex-col gap-0.5`,onClick:r,children:e.items.map(e=>v(ZB,{...e},e.href))})]},t))}),n&&n.length>0&&c(`div`,{className:`shrink-0 px-1 pb-1`,children:[v(PB,{className:`mb-1`}),v(`div`,{className:`flex flex-col gap-0.5`,onClick:r,children:n.map(e=>v(ZB,{...e},e.href))})]})]})}E();function $B({sidebar:e,header:t,mobileLogo:n,mobileActions:r,children:i,className:a}){let o=q(),s=il(),[l,u]=C(!1);return c(`div`,{className:$(`flex h-screen`,a),children:[!s&&v(QB,{...e,className:$(`w-44`,e.className)}),s&&v(XB,{open:l,onClose:()=>u(!1),width:`w-64`,children:v(QB,{...e,onNavigate:()=>u(!1),className:`w-full border-r-0`})}),c(`div`,{className:`flex flex-1 flex-col min-w-0`,children:[s&&c(`header`,{className:`flex items-center h-12 border-b border-border px-3 shrink-0 bg-surface/80 backdrop-blur-sm`,children:[v(`button`,{onClick:()=>u(!0),className:`p-1.5 -ml-1.5 rounded-md hover:bg-surface-hover text-foreground-muted transition-colors`,"aria-label":o(`uiLibrary.appShell.openMenu`,`Open menu`),children:v(ar,{className:`h-5 w-5`})}),n&&v(`div`,{className:`flex-1 flex justify-center`,children:n}),r&&v(`div`,{className:`shrink-0`,children:r})]}),!s&&t&&c(`header`,{className:`flex items-center h-10 border-b border-border px-4 shrink-0`,children:[t.breadcrumbs&&t.breadcrumbs.length>0&&v(`nav`,{className:`flex items-center gap-1 text-xs flex-1 min-w-0`,children:t.breadcrumbs.map((e,n)=>{let r=n===t.breadcrumbs.length-1;return c(`span`,{className:`flex items-center gap-1`,children:[n>0&&v(It,{className:`h-3 w-3 text-foreground-subtle shrink-0`}),e.href&&!r?v(`a`,{href:e.href,className:`text-foreground-subtle hover:text-foreground transition-colors truncate`,children:e.label}):v(`span`,{className:`text-foreground truncate`,children:e.label})]},n)})}),t.actions&&v(`div`,{className:`flex items-center gap-2 ml-auto shrink-0`,children:t.actions})]}),v(`main`,{className:`flex-1 overflow-auto p-4`,children:i})]})]})}function eV(e){return e>=.8?`bg-emerald-500`:e>=.5?`bg-amber-500`:e>=.3?`bg-orange-500`:`bg-zinc-500`}function tV(e){return e>=.8?`text-emerald-400`:e>=.5?`text-amber-400`:e>=.3?`text-orange-400`:`text-zinc-400`}function nV({classifications:e,processing:t=!1,inferenceMs:n,maxItems:r=10,className:i=``}){let a=q(),o=e.slice(0,r),s=o.length>0?o[0].score:1;return t?v(`div`,{className:`rounded-xl border border-border bg-surface p-4 text-center ${i}`,children:v(`div`,{className:`text-sm text-foreground-subtle animate-pulse`,children:a(`uiLibrary.audioClassificationList.processing`,`Classifying audio...`)})}):o.length===0?v(`div`,{className:`rounded-xl border border-border bg-surface p-4 text-center ${i}`,children:v(`div`,{className:`text-xs text-foreground-subtle`,children:a(`uiLibrary.audioClassificationList.empty`,`No classifications yet`)})}):c(`div`,{className:`rounded-xl border border-border bg-surface overflow-hidden ${i}`,children:[c(`div`,{className:`px-3 py-2 border-b border-border flex items-center justify-between`,children:[v(`h3`,{className:`text-xs font-medium text-foreground`,children:a(`uiLibrary.audioClassificationList.title`,`Audio Classifications`)}),c(`div`,{className:`flex items-center gap-3 text-[10px] text-foreground-subtle`,children:[o.length<e.length&&v(`span`,{children:a(`uiLibrary.audioClassificationList.showing`,`showing {{shown}} of {{total}}`,{shown:o.length,total:e.length})}),n!==void 0&&c(`span`,{className:`font-mono`,children:[n.toFixed(1),`ms`]})]})]}),v(`div`,{className:`divide-y divide-border/50`,children:o.map((e,t)=>{let n=s>0?e.score/s*100:0;return c(`div`,{className:`px-3 py-1.5 flex items-center gap-3 hover:bg-surface-hover/30`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle w-5 text-right font-mono`,children:t+1}),v(`span`,{className:`text-xs font-medium text-foreground min-w-[120px]`,children:e.className}),v(`div`,{className:`flex-1 h-2 rounded-full bg-zinc-800 overflow-hidden`,children:v(`div`,{className:`h-full rounded-full transition-all duration-300 ${eV(e.score)}`,style:{width:`${n}%`}})}),c(`span`,{className:`text-xs font-mono font-semibold w-14 text-right ${tV(e.score)}`,children:[(e.score*100).toFixed(1),`%`]})]},`${e.className}-${t}`)})})]})}E();function rV({currentDbfs:e,durationSec:t=30,maxSamples:n=120,height:r=64,className:i=``,color:a=`#10b981`,clipColor:o=`#ef4444`,clipThreshold:s=-6,minDbfs:l=-96}){let u=q(),d=f(null),p=f(null),[m,h]=C([]);b(()=>{e!==null&&h(t=>{let r=[...t,{dbfs:e,timestamp:Date.now()}];return r.length>n?r.slice(-n):r})},[e,n]);let g=_(()=>{let e=d.current,n=p.current;if(!e||!n)return;let i=n.clientWidth;if(i===0)return;let c=window.devicePixelRatio||1;e.width=i*c,e.height=r*c,e.style.width=`${i}px`,e.style.height=`${r}px`;let u=e.getContext(`2d`);if(!u||(u.scale(c,c),u.clearRect(0,0,i,r),m.length===0))return;let f=m[m.length-1].timestamp,h=t*1e3,g=f-h,_=m.filter(e=>e.timestamp>=g);if(_.length===0)return;let v=Math.max(1,Math.floor(i/(t*2))),y=Math.abs(l);for(let e of _){let t=e.timestamp-g,n=Math.floor(t/h*i),c=(Math.max(l,Math.min(0,e.dbfs))-l)/y,d=Math.max(1,c*r);u.fillStyle=e.dbfs>=s?o:a,u.globalAlpha=.8,u.fillRect(n,r-d,v,d)}u.globalAlpha=1;let b=r-(s-l)/y*r;u.strokeStyle=o,u.globalAlpha=.25,u.lineWidth=1,u.setLineDash([4,4]),u.beginPath(),u.moveTo(0,b),u.lineTo(i,b),u.stroke(),u.setLineDash([]),u.globalAlpha=1},[m,t,r,a,o,s,l]);b(()=>{g()},[g]),b(()=>{let e=new ResizeObserver(()=>g()),t=p.current;return t&&e.observe(t),()=>e.disconnect()},[g]);let y=m.length>0?m[m.length-1].dbfs:null;return c(`div`,{ref:p,className:`relative ${i}`,children:[v(`canvas`,{ref:d,className:`w-full rounded-md`}),c(`div`,{className:`absolute top-1 left-2 text-[9px] text-foreground-subtle/50 font-mono`,children:[t,`s`]}),y!==null&&v(`div`,{className:`absolute bottom-1 right-2 text-[9px] text-foreground-subtle/50 font-mono`,children:u(`uiLibrary.audioLevelWaveform.readout`,{one:`{{dbfs}} dBFS · {{count}} sample`,other:`{{dbfs}} dBFS · {{count}} samples`},{dbfs:y.toFixed(1),count:m.length})})]})}E();function iV({samples:e,sampleRate:t=16e3,height:n=96,className:r=``,color:i=`#3b82f6`,bgColor:a=`transparent`}){let o=q(),s=f(null),l=f(null),u=_(()=>{let t=s.current,r=l.current;if(!t||!r||!e||e.length===0)return;let o=r.clientWidth;if(o===0)return;let c=window.devicePixelRatio||1;t.width=o*c,t.height=n*c,t.style.width=`${o}px`,t.style.height=`${n}px`;let u=t.getContext(`2d`);if(!u)return;u.scale(c,c),a===`transparent`?u.clearRect(0,0,o,n):(u.fillStyle=a,u.fillRect(0,0,o,n));let d=e.length/o,f=n/2;u.fillStyle=i,u.globalAlpha=.7;for(let t=0;t<o;t++){let n=Math.floor(t*d),r=Math.min(Math.floor((t+1)*d),e.length),i=0,a=0;for(let t=n;t<r;t++){let n=e[t];n<i&&(i=n),n>a&&(a=n)}let o=f-a*f,s=f-i*f,c=Math.max(1,s-o);u.fillRect(t,o,1,c)}u.globalAlpha=1,u.strokeStyle=i,u.globalAlpha=.2,u.lineWidth=1,u.beginPath(),u.moveTo(0,f),u.lineTo(o,f),u.stroke(),u.globalAlpha=1},[e,n,i,a]);b(()=>{u()},[u]),b(()=>{let e=new ResizeObserver(()=>u()),t=l.current;return t&&e.observe(t),()=>e.disconnect()},[u]);let d=((e&&t?Math.round(e.length/t*1e3):0)/1e3).toFixed(1);return c(`div`,{ref:l,className:`relative ${r}`,children:[v(`canvas`,{ref:s,className:`w-full rounded-md`}),e&&e.length>0&&v(`div`,{className:`absolute bottom-1 right-2 text-[10px] text-foreground-subtle/60 font-mono`,children:o(`uiLibrary.audioWaveform.summary`,`{{duration}}s · {{rate}}kHz · {{samples}} samples`,{duration:d,rate:t/1e3,samples:e.length.toLocaleString()})})]})}var aV=`uiLibrary.batteryBadge.low`,oV=`uiLibrary.batteryBadge.normal`;function sV(e){return e<50}function cV(e){return e<=10?Ke:e<=30?Ve:e<=70?Kr:on}function lV(e){return e===`dc`||e===`solar`}function uV(e,t){return lV(t)?`text-emerald-400`:e<=10?`text-rose-400`:e<=30?`text-amber-400`:`text-foreground-subtle`}function dV({status:e,variant:t=`compact`,className:n}){let r=q();if(!e)return null;let{level:i,charging:a,sleeping:o,binary:s}=e;if(i===null)return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium text-foreground-subtle`,n),title:r(`uiLibrary.batteryBadge.titleUnknown`,`Battery: unknown`),children:[v(Ee,{className:`h-3.5 w-3.5`}),v(`span`,{children:r(`uiLibrary.batteryBadge.unknown`,`Unknown`)})]});if(s===!0){let e=sV(i),t=e?Ke:on;return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium`,e?`text-rose-400`:`text-foreground-subtle`,n),title:e?r(`uiLibrary.batteryBadge.titleLow`,`Battery: low`):r(`uiLibrary.batteryBadge.titleNormal`,`Battery: normal`),children:[v(t,{className:`h-3.5 w-3.5`}),v(`span`,{children:e?r(aV,`Low`):r(oV,`Normal`)})]})}let l=cV(i),u=uV(i,a),d=a===`solar`?wt:a===`dc`?_t:null,f=o;return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium`,u,n),title:[r(`uiLibrary.batteryBadge.titlePercent`,`Battery: {{percent}}%`,{percent:Math.round(i)}),lV(a)?r(`uiLibrary.batteryBadge.charging`,`charging ({{source}})`,{source:a}):null,o?r(`uiLibrary.batteryBadge.sleeping`,`sleeping`):null].filter(e=>e!==null).join(` · `),children:[v(l,{className:`h-3.5 w-3.5`}),c(`span`,{children:[Math.round(i),`%`]}),d&&v(d,{className:`h-3 w-3`}),f&&v(St,{className:`h-3 w-3 text-blue-300`}),t===`full`&&lV(a)&&v(`span`,{className:`text-foreground-subtle`,children:a})]})}function fV(e){if(e===null)return;let t=e.trim();return t===``?void 0:t}function pV(e,t){if(e===null||!Number.isFinite(e)||e<=0)return null;let n=t-e;if(n<=0)return null;let r=Math.floor(n/6e4);return r<60?{minutes:Math.max(1,r)}:{hours:Math.floor(r/60)}}function mV(e,t,n,r){let i=fV(n);if(e===null)return{key:`unknown`};if(e===!1)return i===void 0?{key:`idle`}:{key:`idle`,phase:i};let a=pV(t,r);return a===null?i===void 0?{key:`running`}:{key:`running`,phase:i}:{key:`running`,duration:a,...i===void 0?{}:{phase:i}}}function hV({running:e,children:t,className:n}){let r=q();return e===null?v(`span`,{"data-running":`unknown`,className:$(`inline-flex shrink-0`,n),children:t}):e===!0?c(`span`,{"data-running":`running`,className:$(`relative inline-flex shrink-0 rounded-full p-0.5`,n),"aria-label":r(`uiLibrary.runningBadge.running`,`Running`),children:[v(`span`,{className:`pointer-events-none absolute inset-0 rounded-full border border-primary animate-pulse`,"aria-hidden":!0}),t]}):c(`span`,{"data-running":`idle`,className:$(`relative inline-flex shrink-0`,n),"aria-label":r(`uiLibrary.runningBadge.idle`,`Idle`),children:[t,v(`span`,{className:`pointer-events-none absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-foreground-subtle`,"aria-hidden":!0})]})}function gV({running:e,since:t,phase:n,className:r,now:i=Date.now()}){let a=q(),o=mV(e,t,n,i);if(o.key===`unknown`||e!==!0&&e!==!1)return null;if(o.key===`idle`){let e=a(`uiLibrary.runningStatus.idle`,`Idle`),t=o.phase===void 0?e:a(`uiLibrary.runningStatus.withPhase`,`{{state}} · {{phase}}`,{state:e,phase:o.phase});return v(`p`,{className:$(`text-[11px] text-foreground-muted`,r),children:t})}let s;s=o.duration===void 0?a(`uiLibrary.runningStatus.running`,`Running`):`minutes`in o.duration?a(`uiLibrary.runningStatus.runningForMinutes`,`Running for {{count}} min`,{count:o.duration.minutes}):a(`uiLibrary.runningStatus.runningForHours`,`Running for {{count}} h`,{count:o.duration.hours});let c=o.phase===void 0?s:a(`uiLibrary.runningStatus.withPhase`,`{{state}} · {{phase}}`,{state:s,phase:o.phase});return v(`p`,{className:$(`text-[11px] text-foreground-muted`,r),children:c})}function _V(e){return e===null?An:e<=20?hee:e<=50?le:e<=80?pee:An}function vV(e){return e===null?`text-foreground-subtle`:e<=20?`text-rose-400`:e<=50?`text-amber-400`:`text-foreground-subtle`}function yV({status:e,className:t}){let n=q();if(!e||e.type===`unknown`)return null;if(e.type===`ethernet`)return v(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium text-foreground-subtle`,t),title:n(`uiLibrary.networkLinkBadge.ethernet`,`Network: ethernet`),children:v(gt,{className:`h-3.5 w-3.5`})});let r=e.type===`cellular`?ft:_V(e.signal),i=e.signal===null?null:Math.round(e.signal),a=e.ssid?n(`uiLibrary.networkLinkBadge.typeSsid`,`Network: {{type}} ({{ssid}})`,{type:e.type,ssid:e.ssid}):n(`uiLibrary.networkLinkBadge.type`,`Network: {{type}}`,{type:e.type}),o=i===null?a:`${a} · ${n(`uiLibrary.networkLinkBadge.signal`,`signal {{percent}}%`,{percent:i})}`;return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium`,vV(e.signal),t),title:o,children:[v(r,{className:`h-3.5 w-3.5`}),i!==null&&c(`span`,{children:[i,`%`]})]})}var bV={"node-a":`bg-node-a`,"node-b":`bg-node-b`,"node-c":`bg-node-c`,"node-d":`bg-node-d`,"node-e":`bg-node-e`,"node-f":`bg-node-f`,"node-g":`bg-node-g`,"node-h":`bg-node-h`},xV={"node-a":`text-node-a`,"node-b":`text-node-b`,"node-c":`text-node-c`,"node-d":`text-node-d`,"node-e":`text-node-e`,"node-f":`text-node-f`,"node-g":`text-node-g`,"node-h":`text-node-h`},SV={"node-a":`bg-node-a/15`,"node-b":`bg-node-b/15`,"node-c":`bg-node-c/15`,"node-d":`bg-node-d/15`,"node-e":`bg-node-e/15`,"node-f":`bg-node-f/15`,"node-g":`bg-node-g/15`,"node-h":`bg-node-h/15`};function CV(e){return bV[e]}function wV(e){return xV[e]}function TV(e){return SV[e]}function EV(e){for(let[t,n]of Object.entries(e))if(t===`color`)return n}function DV(e){let t=new Map;for(let n of e??[]){let e=Tee.safeParse(EV(n.settings));t.set(n.nodeId,e.success?e.data:Vi(n.nodeId))}return t}function OV(e,t){return e.get(t)??Vi(t)}var kV={detection:`bg-info/12 text-info ring-info/35`,decode:`bg-warning/12 text-warning ring-warning/35`,audio:`bg-success/12 text-success ring-success/35`},AV={detection:`bg-info/22 text-info ring-info/55`,decode:`bg-warning/22 text-warning ring-warning/55`,audio:`bg-success/22 text-success ring-success/55`},jV={"node-a":`bg-node-a/12`,"node-b":`bg-node-b/12`,"node-c":`bg-node-c/12`,"node-d":`bg-node-d/12`,"node-e":`bg-node-e/12`,"node-f":`bg-node-f/12`,"node-g":`bg-node-g/12`,"node-h":`bg-node-h/12`},MV={"node-a":`bg-node-a/22`,"node-b":`bg-node-b/22`,"node-c":`bg-node-c/22`,"node-d":`bg-node-d/22`,"node-e":`bg-node-e/22`,"node-f":`bg-node-f/22`,"node-g":`bg-node-g/22`,"node-h":`bg-node-h/22`},NV={"node-a":`ring-node-a/45`,"node-b":`ring-node-b/45`,"node-c":`ring-node-c/45`,"node-d":`ring-node-d/45`,"node-e":`ring-node-e/45`,"node-f":`ring-node-f/45`,"node-g":`ring-node-g/45`,"node-h":`ring-node-h/45`};function PV({roleLabel:e,roleId:t,nodeName:n,colorId:r,emphasized:i=!1,pinned:a=!1,onSelect:o,disabled:s=!1,trailing:l}){let u=q(),d=e===void 0?n:a?`${e} pinned on ${n}`:`${e} on ${n}`,f=e!==void 0&&t!==void 0,p=$(`inline-flex max-w-full items-center gap-1 rounded-full px-2 py-0.5 text-[10px] leading-tight ring-1 ring-inset`,f?i?$(`role-node-pill-emphasized font-semibold ring-2`,AV[t]):$(`font-medium`,kV[t]):i?$(`role-node-pill-emphasized font-semibold ring-2`,MV[r],NV[r],wV(r)):$(`font-medium text-foreground-muted ring-border/60`,jV[r]),o!==void 0&&!s&&`cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40`,s&&`cursor-not-allowed opacity-50`),m=v(`span`,{className:$(`h-1.5 w-1.5 shrink-0 rounded-full`,CV(r)),"aria-hidden":!0}),h=e===void 0?c(P,{children:[m,v(`span`,{className:$(`min-w-0 truncate font-medium`,i?wV(r):`text-foreground`),children:n}),l]}):c(P,{children:[a&&v(_ee,{className:`h-2.5 w-2.5 shrink-0 opacity-80`,"aria-label":u(`uiLibrary.roleNodePill.pinned`,`pinned`)}),v(`span`,{className:`shrink-0`,children:e}),v(`span`,{className:$(`min-w-0 truncate`,f?`opacity-80`:i?wV(r):`text-foreground-subtle`),children:n}),m]});return o===void 0?v(`span`,{"data-testid":`role-node-pill`,"data-role":t,title:d,className:p,children:h}):v(`button`,{type:`button`,role:`tab`,"aria-selected":i,"data-testid":`role-node-pill`,"data-role":t,title:d,disabled:s,onClick:o,className:p,children:h})}E();function FV({items:e,className:t}){return v(`nav`,{className:`hidden md:flex items-center gap-1 text-[11px] text-foreground-subtle ${t??``}`,children:e.map((t,n)=>{let r=n===e.length-1,i=!r&&(t.onClick||t.href);return c(l.Fragment,{children:[n>0&&v(It,{className:`h-3 w-3 flex-shrink-0`}),i?t.onClick?v(`button`,{type:`button`,onClick:t.onClick,className:`hover:text-foreground transition-colors`,children:t.label}):v(`a`,{href:t.href,className:`hover:text-foreground transition-colors`,children:t.label}):v(`span`,{className:r?`text-foreground font-medium`:``,children:t.label})]},n)})})}var IV={baseDelayMs:1500,maxDelayMs:15e3,maxAttempts:40};function LV(e,t=Math.random){if(e>=IV.maxAttempts)return{kind:`exhausted`,attempts:e};let n=Math.min(IV.maxDelayMs,IV.baseDelayMs*2**e);return{kind:`retry`,delayMs:Math.round(n*(.8+t()*.4))}}var RV=`/adaptive-probe`,zV=2500,BV=15e3,VV=250,HV=2;function UV(e){return e>=8?`high`:e>=2.5?`mid`:`low`}function WV(e){let{downlinkMbps:t,...n}=e;return n}function GV(e){return UV(e)!==`low`}function KV(e){if(e===void 0||e===``)return null;let t;try{t=new URL(e)}catch{return null}return t.protocol!==`http:`&&t.protocol!==`https:`?null:`${t.origin}${t.pathname.replace(/\/+$/,``)}`}function qV(e,t){return KV(e)??KV(t)}function JV(e){let t=e.downlinkMbps===void 0?`none`:UV(e.downlinkMbps);return[e.phase,e.viewportWidth??`-`,e.viewportHeight??`-`,e.devicePixelRatio??`-`,t,e.prefersTier??`-`,e.probeOrigin??`unreachable`,e.probeStatus??`-`,e.probeAnswer??`-`].join(`|`)}function YV(e,t){return e<65536||!(t>0)?null:e*8/t/1e3}async function XV(e,t){let n=null,r=0,i=0;try{for(;;){let a=await e.read();if(a.done)break;let o=a.value?.byteLength??0,s=t();n===null?n=s:i+=o,r=s}}catch{e.cancel().catch(()=>void 0)}return n===null?null:YV(i,r-n)}async function ZV(e,t){let n=e.replace(/\/+$/,``),r=new AbortController,i=setTimeout(()=>r.abort(),zV);try{let e=await t.fetchImpl(`${n}${RV}`,{signal:r.signal});if(!e.ok)return e.status!==void 0&&t.onRefused?.(e.status),null;let i=e.body?.getReader()??null;if(i!==null)return await XV(i,t.now);let a=t.now();return YV((await e.arrayBuffer()).byteLength,t.now()-a)}catch{return null}finally{clearTimeout(i)}}async function QV(e,t=BV){let n=e.now()+t;for(;;){if(e.signal.aborted)return`aborted`;if((e.readyState()??0)>=HV)return`frame`;if(e.now()>=n)return`timeout`;await e.sleep(VV)}}async function $V(e){if(await e.waitFrame()===`frame`)return e.measure()}function eH(e){let t=new Map,n=new Map,r=new Set,i=n=>{let r=t.get(n);return r!==void 0&&e.now()-r.at<=e.ttlMs?r.mbps:void 0};return{cached:i,firstRefusal:(e,t)=>{let n=`${e}|${String(t)}`;return r.has(n)?!1:(r.add(n),!0)},latest:n=>{let r=t.get(n);return r===void 0?null:{mbps:r.mbps,ageMs:Math.max(0,e.now()-r.at)}},measured:(r,a)=>{let o=i(r);if(o!==void 0)return Promise.resolve(o);let s=n.get(r);if(s!==void 0)return s;let c=a().then(n=>{if(!(n===null||!Number.isFinite(n)))return t.set(r,{mbps:n,at:e.now()}),n}).catch(()=>void 0).finally(()=>{n.delete(r)});return n.set(r,c),c}}}async function tH(e,t,n){if(e===void 0)return{kind:`unsupported`,why:`no-wiring`};if(t===null)return{kind:`unsupported`,why:`no-session`};try{return{kind:`answered`,answer:await e(t,n)}}catch{return{kind:`unsupported`,why:`call-failed`}}}var nH=100;function rH(e,t,n){if(n.renegotiating)return{baseline:null,sample:null};if(e===null||e.pc!==t.pc||t.ts<=e.ts)return{baseline:t,sample:null};let r=Math.max(0,t.lost-e.lost),i=r+Math.max(0,t.recv-e.recv),a=i>0?Math.min(nH,r/i*100):0,o=Math.max(0,Math.round((t.bytes-e.bytes)*8/(t.ts-e.ts)));return{baseline:t,sample:{rttMs:Math.round(t.rttS*1e3),jitterMs:Math.round(t.jitterS*1e3),estimatedBandwidthKbps:o,packetLossPercent:a,...n.probe===null?{}:{downlinkMbps:n.probe.mbps,downlinkAgeMs:n.probe.ageMs}}}}var iH={urls:`stun:stun.l.google.com:19302`};function aH(e,t){let n=[...e??[],iH];return t===void 0?{iceServers:n}:{iceServers:n,iceTransportPolicy:t}}var oH=8;function sH(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function cH(e){return typeof e==`string`&&e.length>0?e:null}function lH(e,t){if(e===null||t===null)return null;let n=e-t;return n<0?null:n}function uH(e,t){if(e===null||t===null)return null;let n=e+t;return n<=0?null:e/n*100}function dH(e){return e===null?null:/profile-level-id=([0-9a-fA-F]+)/.exec(e)?.[1]??null}function fH(e){let t={inbound:null,codecs:new Map,candidates:new Map,pair:null,selectedPairId:null},n=[];e.forEach(e=>{let r=e,i=cH(r.id);switch(r.type){case`inbound-rtp`:(r.kind??r.mediaType)===`video`&&(t.inbound=r);break;case`codec`:i!==null&&t.codecs.set(i,r);break;case`local-candidate`:case`remote-candidate`:i!==null&&t.candidates.set(i,r);break;case`candidate-pair`:n.push(r);break;case`transport`:t.selectedPairId=cH(r.selectedCandidatePairId);break;default:break}});let r=t.selectedPairId;return t.pair=n.find(e=>cH(e.id)===r)??n.find(e=>e.selected===!0)??n.find(e=>e.nominated===!0&&e.state===`succeeded`)??n.find(e=>e.nominated===!0)??n.find(e=>e.state===`succeeded`)??null,t}function pH(e){return e===null?{timestamp:null,bytesReceived:null,packetsReceived:null,packetsLost:null,framesDecoded:null,framesDropped:null,freezeCount:null,totalFreezesDurationS:null,totalDecodeTimeS:null,nackCount:null,pliCount:null}:{timestamp:sH(e.timestamp),bytesReceived:sH(e.bytesReceived),packetsReceived:sH(e.packetsReceived),packetsLost:sH(e.packetsLost),framesDecoded:sH(e.framesDecoded),framesDropped:sH(e.framesDropped),freezeCount:sH(e.freezeCount),totalFreezesDurationS:sH(e.totalFreezesDuration),totalDecodeTimeS:sH(e.totalDecodeTime),nackCount:sH(e.nackCount),pliCount:sH(e.pliCount)}}var mH={spanMs:null,kbps:null,packetsReceived:null,packetsLost:null,lossPercent:null,framesDecoded:null,framesDropped:null,freezeCount:null,freezeMs:null,nackCount:null,pliCount:null,decodeMs:null};function hH(e,t){if(t===null)return mH;let n=lH(e.timestamp,t.timestamp);if(n===null||n<=0)return mH;let r=lH(e.bytesReceived,t.bytesReceived),i=lH(e.packetsLost,t.packetsLost),a=lH(e.packetsReceived,t.packetsReceived),o=lH(e.framesDecoded,t.framesDecoded),s=lH(e.totalDecodeTimeS,t.totalDecodeTimeS),c=lH(e.totalFreezesDurationS,t.totalFreezesDurationS);return{spanMs:n,kbps:r===null?null:Math.round(r*8/n),packetsReceived:a,packetsLost:i,lossPercent:uH(i,a),framesDecoded:o,framesDropped:lH(e.framesDropped,t.framesDropped),freezeCount:lH(e.freezeCount,t.freezeCount),freezeMs:c===null?null:Math.round(c*1e3),nackCount:lH(e.nackCount,t.nackCount),pliCount:lH(e.pliCount,t.pliCount),decodeMs:s===null||o===null||o<=0?null:s/o*1e3}}function gH(e,t,n,r){if(t===null||n===null)return e;let i=e.at(-1);if(i!==void 0&&i.width===t&&i.height===n)return e;let a=[...e,{width:t,height:n,at:r}];return a.length>oH?a.slice(a.length-oH):a}function _H(e){let{inbound:t,codecs:n,candidates:r,pair:i}=fH(e.report),a=pH(t),o=t===null?void 0:n.get(cH(t.codecId)??``),s=cH(o?.mimeType),c=cH(o?.sdpFmtpLine),l=i===null?void 0:r.get(cH(i.localCandidateId)??``),u=i===null?void 0:r.get(cH(i.remoteCandidateId)??``),d=cH(l?.candidateType),f=cH(u?.candidateType),p=sH(t?.frameWidth),m=sH(t?.frameHeight),h=a.totalFreezesDurationS,g=a.totalDecodeTimeS,_=a.framesDecoded;return{at:e.now,hasInboundVideo:t!==null,width:p,height:m,fps:sH(t?.framesPerSecond),codec:s===null?null:s.split(`/`)[1]??s,codecProfileLevelId:dH(c),jitterMs:vH(t),packetsReceived:a.packetsReceived,packetsLost:a.packetsLost,lossPercent:uH(a.packetsLost,a.packetsReceived),nackCount:a.nackCount,pliCount:a.pliCount,framesDecoded:_,framesDropped:a.framesDropped,freezeCount:a.freezeCount,totalFreezeMs:h===null?null:Math.round(h*1e3),avgDecodeMs:g===null||_===null||_<=0?null:g/_*1e3,rttMs:yH(i),availableIncomingKbps:bH(i),localCandidateType:d,remoteCandidateType:f,candidatePairType:d===null&&f===null?null:`${d??`?`}/${f??`?`}`,candidateProtocol:cH(l?.protocol),iceConnectionState:e.iceConnectionState,dtlsState:e.dtlsState,window:hH(a,e.prev?.raw??null),resolutionLog:gH(e.prev?.resolutionLog??[],p,m,e.now),raw:a}}function vH(e){let t=sH(e?.jitter);return t===null?null:t*1e3}function yH(e){let t=sH(e?.currentRoundTripTime);return t===null?null:t*1e3}function bH(e){let t=sH(e?.availableIncomingBitrate);return t===null?null:Math.round(t/1e3)}var xH={unknown:`no window yet`,decoding:`decoding`,"decoder-stall":`DECODER STALL — bytes arriving, no frames out`,"transport-stall":`TRANSPORT STALL — nothing arriving`,"frozen-unknown":`frames stopped — byte rate unknown`};function SH(e){let t=CH(e);return{kind:t,label:xH[t]}}function CH(e){if(e===null||!e.hasInboundVideo)return`unknown`;let t=e.window.framesDecoded;if(t===null)return`unknown`;if(t>0)return`decoding`;let n=e.window.kbps;return n===null?`frozen-unknown`:n>0?`decoder-stall`:`transport-stall`}E();var wH=`—`;function TH(e,t){if(e==null||!Number.isFinite(e))return wH;let n=t?.digits??0;return`${e.toFixed(n)}${t?.suffix??``}`}function EH(e){return e==null||e===``?wH:e}function DH(e,t){return e==null?wH:e?t(`uiLibrary.streamDebugOverlay.yes`,`yes`):t(`uiLibrary.streamDebugOverlay.no`,`no`)}function OH(e,t,n){if(e===null)return wH;let r=Math.max(0,t-e);return r<1e3?n(`uiLibrary.streamDebugOverlay.msAgo`,`{{value}}ms ago`,{value:r}):r<6e4?n(`uiLibrary.streamDebugOverlay.sAgo`,`{{value}}s ago`,{value:(r/1e3).toFixed(1)}):n(`uiLibrary.streamDebugOverlay.msAgoLong`,`{{minutes}}m{{seconds}}s ago`,{minutes:Math.floor(r/6e4),seconds:Math.floor(r%6e4/1e3)})}var kH=3e3,AH={unknown:`bg-white/15 text-white/70`,decoding:`bg-emerald-500/25 text-emerald-200`,"decoder-stall":`bg-amber-500/30 text-amber-100`,"transport-stall":`bg-rose-500/30 text-rose-100`,"frozen-unknown":`bg-white/15 text-white/70`};function jH({label:e,value:t,window:n,strong:r=!1}){return c(`div`,{className:`flex items-baseline justify-between gap-2 leading-[1.25]`,children:[v(`span`,{className:`text-white/55 shrink-0`,children:e}),c(`span`,{className:`flex items-baseline gap-1 text-right`,children:[v(`span`,{className:r?`text-white font-semibold tabular-nums`:`text-white/90 tabular-nums`,children:t}),n!==void 0&&v(`span`,{className:`text-sky-300/80 tabular-nums`,children:n})]})]})}function MH({title:e,measuredAt:t,now:n}){let r=q(),i=t!==null&&n-t>kH;return c(`div`,{className:`flex items-baseline justify-between gap-3 mt-2 first:mt-0 pb-0.5 border-b border-white/20`,children:[v(`span`,{className:`text-white/80 font-semibold tracking-wide uppercase text-[9px]`,children:e}),c(`span`,{className:i?`text-amber-300 text-[9px]`:`text-white/45 text-[9px]`,children:[i?`${r(`uiLibrary.streamDebugOverlay.staleUpper`,`STALE`)} · `:``,OH(t,n,r)]})]})}var NH={unknown:`bg-white/50`,decoding:`bg-emerald-400`,"decoder-stall":`bg-amber-400`,"transport-stall":`bg-rose-400`,"frozen-unknown":`bg-white/50`};function PH(e){let t=q(),{stats:n,server:r,serverError:i,serverWired:a,now:o,sessionId:s}=e,l=SH(n),u=n?.window,[d,f]=C(!1),p=n!==null&&o-n.at>kH;return d?c(`div`,{className:`absolute bottom-10 left-2 z-20 transform-gpu w-[13.5rem] max-h-[70%] overflow-y-auto rounded-md bg-neutral-950/95 ring-1 ring-white/25 shadow-lg px-1.5 py-1 text-[9px] font-mono text-white/90 select-text`,"data-testid":`stream-debug-overlay`,children:[v(`button`,{type:`button`,onClick:()=>f(!1),className:`w-full text-left rounded px-1.5 py-0.5 mb-1 text-[9px] font-semibold ${AH[l.kind]}`,children:l.label}),v(MH,{title:`decode`,measuredAt:n?.at??null,now:o}),v(jH,{label:`framesDecoded`,value:TH(n?.framesDecoded),window:u?.framesDecoded===null?void 0:`+${TH(u?.framesDecoded)}`,strong:!0}),v(jH,{label:`freezeCount`,value:TH(n?.freezeCount),strong:!0}),v(jH,{label:`frozen`,value:TH(n?.totalFreezeMs,{suffix:`ms`}),window:u?.freezeMs===null?void 0:`+${TH(u?.freezeMs)}ms`,strong:!0}),v(jH,{label:`pliCount`,value:TH(n?.pliCount),window:u?.pliCount===null?void 0:`+${TH(u?.pliCount)}`,strong:!0}),v(jH,{label:`framesDropped`,value:TH(n?.framesDropped)}),v(jH,{label:`decode`,value:TH(n?.avgDecodeMs,{digits:1,suffix:`ms`}),window:u?.decodeMs===null?void 0:`${TH(u?.decodeMs,{digits:1})}ms`}),v(MH,{title:`picture`,measuredAt:n?.at??null,now:o}),v(jH,{label:`resolution`,value:n?.width!==null&&n?.width!==void 0&&n.height!==null?`${n.width}×${n.height}`:wH}),v(jH,{label:`fps`,value:TH(n?.fps)}),v(jH,{label:`codec`,value:n?.codec===null||n?.codec===void 0?wH:`${n.codec}${n.codecProfileLevelId===null?``:` ${n.codecProfileLevelId}`}`}),(n?.resolutionLog.length??0)>1&&v(`div`,{className:`mt-0.5 text-white/60 leading-tight`,children:n?.resolutionLog.map(e=>c(`div`,{className:`flex justify-between`,children:[c(`span`,{children:[e.width,`×`,e.height]}),v(`span`,{className:`text-white/40`,children:OH(e.at,o,t)})]},`${e.at}-${e.width}x${e.height}`))}),v(MH,{title:`transport`,measuredAt:n?.at??null,now:o}),v(jH,{label:`bitrate`,value:TH(u?.kbps,{suffix:` kbps`})}),v(jH,{label:`rtt`,value:TH(n?.rttMs,{digits:0,suffix:`ms`})}),v(jH,{label:`jitter`,value:TH(n?.jitterMs,{digits:1,suffix:`ms`})}),v(jH,{label:`packetsLost`,value:TH(n?.packetsLost),window:u?.packetsLost===null?void 0:`+${TH(u?.packetsLost)}`}),v(jH,{label:`loss`,value:TH(n?.lossPercent,{digits:2,suffix:`%`}),window:u?.lossPercent===null?void 0:TH(u?.lossPercent,{digits:2,suffix:`%`})}),v(jH,{label:`nackCount`,value:TH(n?.nackCount),window:u?.nackCount===null?void 0:`+${TH(u?.nackCount)}`}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.candidatePair`,`candidate pair`),value:EH(n?.candidatePairType)}),v(jH,{label:`protocol`,value:EH(n?.candidateProtocol)}),v(jH,{label:`ice`,value:EH(n?.iceConnectionState)}),v(jH,{label:`dtls`,value:EH(n?.dtlsState)}),v(MH,{title:`server`,measuredAt:r?.observedAt??null,now:o}),a?i===null?r===null?v(`div`,{className:`text-white/50 leading-tight py-0.5`,children:t(`uiLibrary.streamDebugOverlay.waiting`,`waiting for the first answer…`)}):r.alive?c(P,{children:[v(jH,{label:t(`uiLibrary.streamDebugOverlay.servedRung`,`served rung`),value:EH(r.servedTier),strong:!0}),v(jH,{label:`adaptive`,value:DH(r.adaptive,t)}),v(jH,{label:`source`,value:EH(r.camStreamId)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.sourceKind`,`source kind`),value:r.sourceKind}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.ingestNode`,`ingest node`),value:EH(r.ingestNodeId)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.remote`,`· remote`),value:DH(r.ingestIsRemote,t)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.egressLeg`,`egress leg`),value:r.egressLeg,strong:!0}),v(jH,{label:`codec src→out`,value:`${EH(r.sourceCodec)}→${EH(r.negotiatedCodec)}`}),v(jH,{label:`broker`,value:EH(r.brokerStatus)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.bitrate`,`· bitrate`),value:TH(r.brokerBitrateKbps,{suffix:` kbps`})}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.inputFps`,`· input fps`),value:TH(r.brokerInputFps)}),v(jH,{label:`rtp sent`,value:TH(r.rtpPacketsSent)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.trackMode`,`track mode`),value:EH(r.trackMode)}),r.lastDecision===null?v(jH,{label:`ladder`,value:r.climbHold?t(`uiLibrary.streamDebugOverlay.held`,`held`):t(`uiLibrary.streamDebugOverlay.neverMoved`,`never moved`)}):c(P,{children:[v(jH,{label:t(`uiLibrary.streamDebugOverlay.ladderMove`,`ladder move`),value:`${r.lastDecision.causeDetail??r.lastDecision.cause}${r.lastDecision.tier===null?``:` → ${r.lastDecision.tier}`}`,strong:!0}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.when`,`· when`),value:OH(r.lastDecision.at,o,t)}),v(jH,{label:`· lossRatio`,value:TH(r.lastDecision.lossRatio,{digits:4})}),v(jH,{label:`· clientKbps`,value:TH(r.lastDecision.clientKbps,{suffix:` kbps`})}),v(jH,{label:`· stalledFor`,value:TH(r.lastDecision.stalledForMs,{suffix:`ms`})}),v(jH,{label:`· serverSending`,value:DH(r.lastDecision.serverSending,t)}),v(jH,{label:`· transcode-down`,value:DH(r.lastDecision.forcedTranscodeDown,t)})]}),r.climbHold?v(jH,{label:`climb`,value:r.climbHold.summary}):null,v(jH,{label:`promotions`,value:TH(r.upgradeCount)}),r.tierFailures.length>0&&v(jH,{label:t(`uiLibrary.streamDebugOverlay.tierFailures`,`tier failures`),value:r.tierFailures.map(e=>`${e.tier}:${e.failures}`).join(` `)})]}):v(`div`,{className:`text-amber-300 leading-tight py-0.5`,children:t(`uiLibrary.streamDebugOverlay.sessionNotFound`,`session not found on the server — it ended, or this node never had it`)}):v(`div`,{className:`text-rose-300 leading-tight py-0.5 break-words`,children:i}):v(`div`,{className:`text-amber-300/90 leading-tight py-0.5`,children:v(hi,{uiKey:`uiLibrary.streamDebugOverlay.notWired`,fallback:`not wired on this surface — this player was mounted without <0>getSessionDebug</0>, so the server half cannot be asked`,components:[v(`span`,{className:`text-white/80`},`fn`)]})}),s!==null&&v(`div`,{className:`mt-1 pt-0.5 border-t border-white/15 text-white/40 break-all leading-tight`,children:s})]}):c(`button`,{type:`button`,onClick:()=>f(!0),className:`absolute bottom-10 left-2 z-20 transform-gpu flex items-center gap-1.5 rounded bg-neutral-950/90 ring-1 ring-white/20 px-1.5 py-0.5 text-[9px] font-mono text-white/85 tabular-nums select-text`,"data-testid":`stream-debug-pill`,title:l.label,children:[v(`span`,{className:`h-1.5 w-1.5 rounded-full ${NH[l.kind]}`}),v(`span`,{children:n?.width!==null&&n?.width!==void 0?`${n.width}×${n.height}`:wH}),c(`span`,{children:[TH(n?.fps),`fps`]}),c(`span`,{children:[TH(u?.kbps),`k`]}),p&&v(`span`,{className:`text-amber-300`,children:t(`uiLibrary.streamDebugOverlay.stale`,`stale`)})]})}E();function FH(e,t){e.muted=t;let n=e.srcObject;if(n instanceof MediaStream)for(let e of n.getAudioTracks())e.enabled=!t}function IH(){return typeof window>`u`?!1:window.matchMedia(`(hover: none) and (pointer: coarse)`).matches||typeof navigator<`u`&&navigator.maxTouchPoints>0||`ontouchstart`in window}function LH(e,t,n){let r=0;for(let i=0;i<8;i++)for(let a=0;a<8;a++){let o=Math.min(t-1,Math.floor((a+.5)/8*t)),s=Math.min(n-1,Math.floor((i+.5)/8*n)),{data:c}=e.getImageData(o,s,1,1);.2126*(c[0]??0)+.7152*(c[1]??0)+.0722*(c[2]??0)>12&&r++}return r<=1}function RH(e){let t={};if(typeof window<`u`){let n=window.devicePixelRatio||1;if(e){let r=e.getBoundingClientRect();r.width>0&&r.height>0&&(t.viewportWidth=Math.round(r.width*n),t.viewportHeight=Math.round(r.height*n))}t.viewportWidth===void 0&&(t.viewportWidth=Math.round(window.innerWidth*n),t.viewportHeight=Math.round(window.innerHeight*n)),t.devicePixelRatio=n}return t}var zH=eH({now:()=>Date.now(),ttlMs:3e4});function BH(e){return qV(e,typeof window<`u`?un():void 0)}function VH(e,t,n){let r=BH(e);return r===null?Promise.resolve(void 0):zH.measured(r,()=>ZV(r,{onRefused:e=>{zH.firstRefusal(r,e)&&n(r,e)},fetchImpl:(e,n)=>fetch(e,{...n,...t===null?{}:{headers:{authorization:`Bearer ${t}`}}}),now:()=>Date.now()}))}function HH(e){let t=BH(e);return t===null?void 0:zH.cached(t)}function UH(e){let t=BH(e);return t===null?null:zH.latest(t)}function WH(e){return $V({waitFrame:()=>QV({readyState:()=>{let t=e.video();return t!==null&&t.srcObject===e.stream?t.readyState:null},signal:e.signal,sleep:e=>new Promise(t=>setTimeout(t,e)),now:()=>Date.now()}),measure:()=>VH(e.serverUrl,e.authToken,e.onRefused)})}function GH(e,t,n,r){let i={...e,...n===void 0?{}:{downlinkMbps:n},...t};return r?WV(i):i}var KH=8e3;function qH({serverUrl:e,streamKey:t,label:n,autoPlay:r=!0,muted:i=!0,showControls:a=!0,showStats:o=!1,onDebugStats:s,onPlaybackStats:l,onClientNetworkSample:u,probeAuthToken:d,onConnectTiming:p,className:m=``,onStateChange:h,onError:g,onReconnectAttempt:y,overlay:x,createSession:S,sendAnswer:w,handleOffer:T,getIceServers:E,addIceCandidate:D,getIceCandidates:O,closeSession:k,getSessionState:A,getSessionDebug:j,applyDownlinkProbe:M,reoffer:N,posterUrl:P,hintsOverride:F,onAdaptiveHints:I,reconnectSignal:L,onControlChannel:R,onVideoElement:z,iceTransportPolicy:B,onPeerConnection:V}){let H=q(),U=f(null),ee=f(null),W=f(null),G=f(new Set),te=f(null),ne=f(null),re=f(0),K=f(!0),ie=f(R);ie.current=R;let ae=f(B);ae.current=B;let oe=f(V);oe.current=V;let se=f(z);se.current=z,b(()=>(se.current?.(U.current),()=>se.current?.(null)),[]);let ce=f(I);ce.current=I;let le=f(null),ue=_((e,t,n)=>{let r=ce.current;if(!r)return;let i={phase:e,probeOrigin:n,...t},a=JV(i);a!==le.current&&(le.current=a,r(i))},[]),de=f(M);de.current=M;let fe=_(async(t,n,r)=>{let i=await tH(de.current,t,n);if(!K.current)return;if(i.kind===`unsupported`){r();return}let{outcome:a,tier:o,reason:s}=i.answer;ce.current?.({phase:`probe-in-session`,probeOrigin:BH(e),downlinkMbps:n,probeAnswer:`${a}:${o??`-`}:${s}`})},[e]),pe=_((e,t)=>{ce.current?.({phase:`probe-refused`,probeOrigin:e,probeStatus:t})},[]),me=f(null),he=f(null),ge=f(0),_e=f(!1),ve=f(!1),ye=f(async()=>{}),[be,xe]=C(`idle`),[Se,Ce]=C(``),[we,Te]=C(i),Ee=f(we);Ee.current=we;let[De,Oe]=C(!1),[ke,Ae]=C(!1),je=IH(),[Me,Ne]=C(!0),Pe=f(null),Fe=f(!1);(w||S)&&(Fe.current=!0);let Ie=Fe.current,Le=f(!1);T&&(Le.current=!0);let Re=Le.current,[ze,Be]=C(!1),Ve=f(null),[He,Ue]=C(null),[We,Ge]=C(!1),Ke=_(()=>{let e=U.current;if(!(!e||e.readyState<2||!e.videoWidth||!e.videoHeight))try{let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight;let n=t.getContext(`2d`);if(!n||(n.drawImage(e,0,0),LH(n,t.width,t.height)))return;Ve.current=t.toDataURL(`image/jpeg`,.6)}catch{}},[]),qe=_(e=>{xe(e),e===`playing`&&Be(!0),h?.(e)},[h]),Je=_(()=>{if(te.current?.abort(),te.current=null,ne.current&&=(clearTimeout(ne.current),null),he.current&&=(clearTimeout(he.current),null),me.current=null,ve.current=!1,ge.current=0,W.current&&=(W.current.close(),null),k&&G.current.size>0){for(let e of G.current)k(e).catch(()=>{});G.current.clear()}},[k]),Ye=_(()=>{te.current?.abort(),te.current=null,ne.current&&=(clearTimeout(ne.current),null),he.current&&=(clearTimeout(he.current),null),me.current=null,ve.current=!1,ge.current=0},[]),Xe=1e3,Ze=_(e=>{if(!A||!N)return;he.current&&=(clearTimeout(he.current),null);let t=async()=>{if(K.current&&me.current===e){if(!ve.current)try{let{pendingRenegotiation:t}=await A(e);if(K.current&&me.current===e&&t&&t.epoch>ge.current&&!ve.current){ge.current=t.epoch,await ye.current(e,t.target);return}}catch{}!K.current||me.current!==e||(he.current=setTimeout(()=>{t()},Xe))}};he.current=setTimeout(()=>{t()},Xe)},[A,N]),Qe=_(async(t=!1,n=t,r)=>{if(!K.current||!S||!w)return;let i=t?W.current:null,a=t?new Set(G.current):null;t?Ye():Je(),qe(`connecting`);let o=new AbortController;te.current=o;try{let s=GH(RH(ee.current),F,n?r??await VH(e,d??null,pe):void 0,!n);ue(n?`probe-climb`:`cold-start`,s,BH(e));let{sessionId:c,sdpOffer:l,iceServers:u}=await S(s);if(G.current.add(c),!K.current||o.signal.aborted){k?.(c).catch(()=>{}),G.current.delete(c);return}let f=new RTCPeerConnection(aH(u,ae.current));oe.current?.(f),t||(W.current=f);let p=new MediaStream;n||WH({video:()=>U.current,stream:p,signal:o.signal,serverUrl:e,authToken:d??null,onRefused:pe}).then(e=>{e===void 0||!GV(e)||!K.current||o.signal.aborted||_e.current||(_e.current=!0,fe(c,e,()=>{!K.current||o.signal.aborted||Qe(!0,!0,e)}))});let m=!1,h=()=>{if(!(m||!K.current)){if(m=!0,W.current=f,U.current&&(U.current.srcObject=p,FH(U.current,Ee.current),U.current.play().catch(()=>{})),i&&i!==f)try{i.close()}catch{}if(a)for(let e of a)G.current.delete(e),k?.(e).catch(()=>{})}};f.ontrack=e=>{if(console.debug(`[WebRTC] ontrack`,e.track.kind,e.track.readyState),p.addTrack(e.track),t){h();return}U.current&&(U.current.srcObject=p,FH(U.current,Ee.current),U.current.play().catch(()=>{}))},f.oniceconnectionstatechange=()=>{if(!K.current)return;let e=f.iceConnectionState;if(console.debug(`[WebRTC] ICE state:`,e),e===`connected`||e===`completed`)re.current=0,t&&h(),qe(`playing`),U.current?.paused&&(console.debug(`[WebRTC] video was paused at ICE connected — calling play()`),U.current.play().catch(()=>{}));else if(e===`failed`||e===`disconnected`||e===`closed`){if(t&&!m)try{f.close()}catch{}qe(`disconnected`),at()}},f.onicecandidateerror=e=>{console.debug(`[WebRTC] ICE candidate error:`,e)},console.debug(`[WebRTC] Setting remote description (server offer)...`),await f.setRemoteDescription({type:`offer`,sdp:l});let g=await f.createAnswer();if(await f.setLocalDescription(g),console.debug(`[WebRTC] Local description set, waiting for ICE gathering...`),await YH(f),!K.current)return;let _=(f.localDescription?.sdp??``).split(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./icons-l5aYjks5.js","./player-overlays-DaSesfVn.js","./client-BjsFVjEa.js","./__vite-browser-external-BlMfPwfH.js","./archive-COJvuz8j.js","./user-x-aU8InWh0.js","./scan-eye-BbYgoJiK.js","./scissors-oYo-ZhBm.js","./bell-off-CEHvcpV8.js","./sigma-C2um2nX9.js","./key-03tb4am1.js","./boxes-C0Z7cB0S.js","./variable-DwONvC9h.js","./cloud-upload-yzPIJtWW.js","./video-DOy8UceJ.js","./speaker-DVh7yO4_.js","./circle-slash-BY9zkWdJ.js","./usb-oSHxCOV9.js","./crop-DpfML6TR.js","./eraser-CcAxRsoL.js","./timer-reset-BFyZoIS7.js","./file-up-gEH5fPam.js","./send-FMXSDirA.js","./hard-drive-download-CwO_DU-K.js","./mic-off-BfWqJn2R.js","./list-ordered-BIOnBH5V.js","./key-round-CxRbUD09.js","./layers-B_aq5GyC.js","./log-in-DYRRiyUu.js","./memory-stick-BTjX5XXU.js","./message-square-plus-CYHn2tx1.js","./monitor-off-Dy7WsqTN.js","./monitor-smartphone-Cl-w7Gs0.js","./recycle-CC6kU24N.js","./ruler-C6bIqLbX.js","./search-x-CySi2ygd.js","./settings-2-WfXnibr2.js","./shapes-JaoPTvAm.js","./table-2-BzvZ1C8Y.js","./unlink-Bf6pcFmm.js","./user-round-BZHQXbgV.js","./MotionZonesSettings-15VWTACI.js","./MaskShapeCanvas-CCcjwlTm.js","./PrivacyMaskSettings-boU8xnXR.js","./SceneMonitorEditor-DbEDdw8n.js"])))=>i.map(i=>d[i]);
2
+ import{r as e}from"./rolldown-runtime-Cyuzqnbw.js";import{a as t,i as n,o as r,r as i}from"./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DXQ8OkGD.js";import{t as a}from"./vite-preload-helper-kNaey6uv.js";import{$ as o,A as s,C as c,E as l,G as u,H as d,J as f,K as p,N as m,O as h,Q as g,R as _,S as v,U as y,V as b,W as x,X as S,Y as C,a as w,d as T,et as E,j as D,k as O,o as k,q as A,t as j,u as M,w as N,x as P,y as F,z as I}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-CEyXHAdg.js";import{$ as L,$i as R,$n as z,$r as B,$t as V,A as H,Ai as U,An as ee,Ar as W,At as G,B as te,Bi as ne,Bn as re,Br as K,Bt as ie,C as ae,Ci as oe,Cn as se,Cr as ce,Ct as le,D as ue,Di as de,Dn as fe,Dr as pe,Dt as me,E as he,Ei as ge,En as _e,Er as ve,Et as ye,F as be,Fi as xe,Fn as Se,Fr as Ce,Ft as we,G as Te,Gi as Ee,Gn as De,Gr as Oe,Gt as ke,H as Ae,Hi as je,Hn as Me,Hr as Ne,Ht as Pe,I as Fe,Ii as Ie,In as Le,Ir as Re,It as ze,J as Be,Ji as Ve,Jn as He,Jr as Ue,Jt as We,K as Ge,Ki as Ke,Kn as qe,Kr as Je,Kt as Ye,L as Xe,Li as Ze,Ln as Qe,Lr as $e,Lt as et,Mi as tt,Mn as nt,Mr as rt,Mt as it,N as at,Ni as ot,Nn as st,Nr as ct,Nt as lt,O as ut,Oi as dt,On as ft,Or as pt,Ot as mt,P as ht,Pi as gt,Pn as _t,Pr as vt,Pt as yt,Q as bt,Qi as xt,Qn as St,Qr as Ct,Qt as wt,R as Tt,Ri as Et,Rn as Dt,Rr as Ot,Rt as kt,S as At,Si as jt,Sn as Mt,Sr as Nt,St as Pt,T as Ft,Ti as It,Tn as Lt,Tr as eee,Tt as Rt,U as zt,Ui as Bt,Un as Vt,Ur as Ht,Ut as tee,V as Ut,Vi as Wt,Vn as Gt,Vr as Kt,Vt as qt,W as Jt,Wi as Yt,Wn as Xt,Wr as Zt,Wt as Qt,X as $t,Xi as en,Xn as tn,Xr as nn,Xt as rn,Y as an,Yi as on,Yn as sn,Yr as cn,Yt as ln,Z as un,Zi as dn,Zn as fn,Zr as pn,Zt as mn,_ as hn,_i as gn,_n,_r as vn,_t as yn,a as bn,aa as xn,ai as Sn,an as Cn,ar as wn,at as Tn,b as En,bi as Dn,bn as On,br as kn,bt as An,c as jn,ci as Mn,cn as nee,cr as Nn,ct as Pn,d as ree,da as Fn,di as In,dn as Ln,dr as iee,dt as Rn,ea as aee,ei as oee,en as see,er as zn,et as cee,f as lee,fa as Bn,fi as Vn,fn as Hn,fr as Un,ft as Wn,g as Gn,gi as Kn,gn as qn,gr as Jn,gt as Yn,h as Xn,hi as Zn,hn as Qn,hr as $n,ht as er,i as tr,ia as nr,ii as rr,in as ir,ir as ar,it as or,j as sr,ji as cr,jn as lr,jr as ur,jt as dr,k as fr,ki as pr,kn as mr,kr as hr,kt as gr,l as _r,la as vr,li as yr,ln as br,lr as xr,lt as Sr,m as Cr,mi as wr,mn as Tr,mr as Er,mt as Dr,n as Or,na as kr,ni as Ar,nn as jr,nr as Mr,nt as Nr,o as Pr,oa as Fr,oi as Ir,on as Lr,or as Rr,ot as zr,p as Br,pa as q,pi as Vr,pn as Hr,pr as Ur,pt as Wr,q as Gr,qi as Kr,qn as qr,qr as Jr,qt as Yr,r as Xr,ra as Zr,ri as Qr,rn as $r,rr as ei,rt as ti,s as ni,sa as ri,si as ii,sn as ai,sr as oi,st as si,t as ci,ta as li,ti as ui,tn as di,tr as fi,tt as pi,u as mi,ua as hi,ui as uee,un as dee,ur as gi,ut as _i,v as vi,vi as yi,vn as bi,vr as xi,vt as Si,w as fee,wi as Ci,wn as wi,wr as Ti,wt as pee,x as Ei,xi as Di,xn as Oi,xr as mee,xt as hee,y as ki,yi as Ai,yn as ji,yr as gee,yt as Mi,z as Ni,zi as Pi,zn as _ee,zr as Fi,zt as Ii}from"./player-overlays-DaSesfVn.js";import{$a as vee,Aa as yee,Ar as bee,Ca as J,Da as xee,Ea as See,Fa as Cee,Ga as wee,Gr as Li,Gt as Ri,Ha as zi,Ia as Tee,Ja as Bi,Jn as Eee,Ka as Dee,La as Vi,Ma as Oee,Mi as Hi,Na as Ui,Oa as kee,Pa as Aee,Pr as Wi,Ra as jee,S as Mee,Sa as Y,Sn as Gi,Ua as Ki,Xa as Nee,Ya as Pee,Yn as qi,Zn as Fee,Zr as Iee,_ as Lee,_i as Ree,_n as zee,an as Ji,ao as Yi,at as Xi,b as Zi,bi as Qi,bo as $i,ci as ea,cr as ta,d as na,do as ra,dr as ia,eo as aa,et as oa,fi as sa,fo as ca,g as la,gi as ua,h as da,hi as fa,ho as pa,i as ma,io as ha,it as ga,ja as _a,ka as va,li as ya,lo as ba,m as xa,mi as Sa,mo as Ca,mr as wa,nn as Ta,no as Ea,on as Da,ot as Oa,p as ka,pi as Aa,po as ja,pr as Ma,qa as Na,qr as Pa,rn as Fa,ro as Ia,rt as La,s as Ra,sr as za,st as Ba,to as Va,tt as Ha,v as Ua,va as Wa,vi as Ga,vn as Ka,vo as qa,x as Ja,xa as Ya,xn as Xa,xo as Za,y as Qa,yi as $a,yn as eo}from"./client-BjsFVjEa.js";import{D as to,M as no,O as ro,S as io,T as ao,j as oo,p as so,v as co,y as lo}from"./__vite-browser-external-BlMfPwfH.js";import{T as uo,b as fo,g as po,k as mo,o as ho,x as go}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-8kv6pj9W.js";import{r as _o,t as vo}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-DzoL8nR8.js";import{n as yo,r as bo,t as xo}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_dom__loadShare__.js-BPba2g2p.js";import{n as So,t as Co}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-ZBKFTPET.js";E();var wo=typeof globalThis<`u`?globalThis.__camstackTrpcReact:void 0,X=wo??vo();typeof globalThis<`u`&&!wo&&(globalThis.__camstackTrpcReact=X);function To(e,t){let n=Rn(),r=f(t);r.current=t;let[i,a]=C(n.connectionVersion);b(()=>n.subscribeConnectionEvents((e,t)=>{e===`connected`&&a(t)}),[n]),b(()=>n.subscribeEvent(e,e=>{r.current(e)}),[n,e,i])}E();function Eo(e){let t=f(e);return t.current=e,t}function Do(e,t){let[n,r]=C(null),i=Eo(t);return To(e,e=>{let t=e.data,n=i.current;n&&!n(t)||r(t)}),n}function Oo(e,t,n){let[r,i]=C(()=>new Map),a=Eo(t),o=Eo(n);return To(e,e=>{let t=e.data,n=o.current;if(n&&!n(t))return;let r=a.current(t);i(e=>{let n=new Map(e);return n.set(r,t),n})}),{map:r,values:p(()=>Array.from(r.values()),[r])}}E();function ko(){let{data:e,isLoading:t,isError:n}=X.nodes.topology.useQuery(void 0,{staleTime:1/0});return{nodes:Do(`cluster.topology-snapshot`)?.nodes??e,isLoading:t,isError:n}}function Ao(){let{nodes:e,isLoading:t,isError:n}=ko();return{nodes:p(()=>{let t=[];for(let n of e??[])t.push({id:String(n.id??``),name:String(n.name??n.id??``),shortName:n.isHub?`HUB`:String(n.name??n.id??``),isHub:!!n.isHub,isOnline:!!n.isOnline,localIps:n.localIps??[],addons:(n.addons??[]).map(e=>({addonId:e.id,capabilities:e.capabilities}))});return t.sort((e,t)=>e.isHub===t.isHub?e.name.localeCompare(t.name):e.isHub?-1:1),t},[e]),isLoading:t,isError:n}}function jo(e,t){return{icon:e.icon,label:t(e.labelKey,e.labelFallback)}}var Mo={[J.Camera]:{icon:ot,labelKey:`uiLibrary.deviceMeta.type.camera`,labelFallback:`Camera`},[J.Hub]:{icon:De,labelKey:`uiLibrary.deviceMeta.type.hub`,labelFallback:`Hub`},[J.Light]:{icon:Jn,labelKey:`uiLibrary.deviceMeta.type.light`,labelFallback:`Light`},[J.Siren]:{icon:br,labelKey:`uiLibrary.deviceMeta.type.siren`,labelFallback:`Siren`},[J.Switch]:{icon:Ye,labelKey:`uiLibrary.deviceMeta.type.switch`,labelFallback:`Switch`},[J.Sensor]:{icon:ri,labelKey:`uiLibrary.deviceMeta.type.sensor`,labelFallback:`Sensor`},[J.Thermostat]:{icon:We,labelKey:`uiLibrary.deviceMeta.type.thermostat`,labelFallback:`Thermostat`},[J.Climate]:{icon:Fr,labelKey:`uiLibrary.deviceMeta.type.climate`,labelFallback:`Air conditioner`},[J.Button]:{icon:yi,labelKey:`uiLibrary.deviceMeta.type.button`,labelFallback:`Button`},[J.EventEmitter]:{icon:er,labelKey:`uiLibrary.deviceMeta.type.eventEmitter`,labelFallback:`Event Emitter`},[J.Update]:{icon:_e,labelKey:`uiLibrary.deviceMeta.type.update`,labelFallback:`Update`},[J.Generic]:{icon:Ze,labelKey:`uiLibrary.deviceMeta.type.generic`,labelFallback:`Generic`},[J.Notifier]:{icon:Bt,labelKey:`uiLibrary.deviceMeta.type.notifier`,labelFallback:`Notifier`},[J.Script]:{icon:ji,labelKey:`uiLibrary.deviceMeta.type.script`,labelFallback:`Script`},[J.Automation]:{icon:Si,labelKey:`uiLibrary.deviceMeta.type.automation`,labelFallback:`Automation`},[J.Lock]:{icon:xr,labelKey:`uiLibrary.deviceMeta.type.lock`,labelFallback:`Lock`},[J.Cover]:{icon:ne,labelKey:`uiLibrary.deviceMeta.type.cover`,labelFallback:`Cover`},[J.Valve]:{icon:Dt,labelKey:`uiLibrary.deviceMeta.type.valve`,labelFallback:`Valve`},[J.Humidifier]:{icon:Rt,labelKey:`uiLibrary.deviceMeta.type.humidifier`,labelFallback:`Humidifier`},[J.WaterHeater]:{icon:en,labelKey:`uiLibrary.deviceMeta.type.waterHeater`,labelFallback:`Water heater`},[J.Fan]:{icon:Ht,labelKey:`uiLibrary.deviceMeta.type.fan`,labelFallback:`Fan`},[J.MediaPlayer]:{icon:z,labelKey:`uiLibrary.deviceMeta.type.mediaPlayer`,labelFallback:`Media player`},[J.AlarmPanel]:{icon:Tr,labelKey:`uiLibrary.deviceMeta.type.alarmPanel`,labelFallback:`Alarm panel`},[J.Control]:{icon:Lr,labelKey:`uiLibrary.deviceMeta.type.control`,labelFallback:`Control`},[J.Presence]:{icon:oi,labelKey:`uiLibrary.deviceMeta.type.presence`,labelFallback:`Presence`},[J.Weather]:{icon:Ir,labelKey:`uiLibrary.deviceMeta.type.weather`,labelFallback:`Weather`},[J.Vacuum]:{icon:Et,labelKey:`uiLibrary.deviceMeta.type.vacuum`,labelFallback:`Vacuum`},[J.LawnMower]:{icon:Qt,labelKey:`uiLibrary.deviceMeta.type.lawnMower`,labelFallback:`Lawn mower`},[J.Container]:{icon:Ze,labelKey:`uiLibrary.deviceMeta.type.container`,labelFallback:`Container`},[J.Image]:{icon:Nt,labelKey:`uiLibrary.deviceMeta.type.image`,labelFallback:`Image`},[J.PetFeeder]:{icon:Pi,labelKey:`uiLibrary.deviceMeta.type.petFeeder`,labelFallback:`Pet feeder`},[J.Dishwasher]:{icon:Rt,labelKey:`uiLibrary.deviceMeta.type.dishwasher`,labelFallback:`Dishwasher`},[J.Washer]:{icon:ye,labelKey:`uiLibrary.deviceMeta.type.washer`,labelFallback:`Washing machine`},[J.Dryer]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.type.dryer`,labelFallback:`Dryer`}},No={[Y.Siren]:{icon:br,labelKey:`uiLibrary.deviceMeta.role.siren`,labelFallback:`Siren`},[Y.Floodlight]:{icon:Jn,labelKey:`uiLibrary.deviceMeta.role.floodlight`,labelFallback:`Floodlight`},[Y.Spotlight]:{icon:Ot,labelKey:`uiLibrary.deviceMeta.role.spotlight`,labelFallback:`Spotlight`},[Y.PirSensor]:{icon:mr,labelKey:`uiLibrary.deviceMeta.role.pirSensor`,labelFallback:`PIR sensor`},[Y.Chime]:{icon:Bt,labelKey:`uiLibrary.deviceMeta.role.chime`,labelFallback:`Chime`},[Y.Autotrack]:{icon:ui,labelKey:`uiLibrary.deviceMeta.role.autotrack`,labelFallback:`Auto-track`},[Y.Nightvision]:{icon:St,labelKey:`uiLibrary.deviceMeta.role.nightvision`,labelFallback:`Night vision`},[Y.PrivacyMask]:{icon:Oe,labelKey:`uiLibrary.deviceMeta.role.privacyMask`,labelFallback:`Privacy mask`},[Y.Doorbell]:{icon:Ct,labelKey:`uiLibrary.deviceMeta.role.doorbell`,labelFallback:`Doorbell`},[Y.CoverBlind]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverBlind`,labelFallback:`Blind`},[Y.CoverShutter]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverShutter`,labelFallback:`Shutter`},[Y.CoverAwning]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverAwning`,labelFallback:`Awning`},[Y.CoverCurtain]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverCurtain`,labelFallback:`Curtain`},[Y.CoverGarage]:{icon:Ct,labelKey:`uiLibrary.deviceMeta.role.coverGarage`,labelFallback:`Garage door`},[Y.CoverGate]:{icon:Ct,labelKey:`uiLibrary.deviceMeta.role.coverGate`,labelFallback:`Gate`},[Y.CoverDoor]:{icon:pn,labelKey:`uiLibrary.deviceMeta.role.coverDoor`,labelFallback:`Door`},[Y.CoverWindow]:{icon:ne,labelKey:`uiLibrary.deviceMeta.role.coverWindow`,labelFallback:`Window`},[Y.BinaryHelper]:{icon:Ye,labelKey:`uiLibrary.deviceMeta.role.binaryHelper`,labelFallback:`Binary helper`},[Y.Outlet]:{icon:_t,labelKey:`uiLibrary.deviceMeta.role.outlet`,labelFallback:`Outlet`},[Y.MotionSensor]:{icon:$e,labelKey:`uiLibrary.deviceMeta.role.motionSensor`,labelFallback:`Motion sensor`},[Y.ContactSensor]:{icon:pn,labelKey:`uiLibrary.deviceMeta.role.contactSensor`,labelFallback:`Contact sensor`},[Y.LeakSensor]:{icon:cn,labelKey:`uiLibrary.deviceMeta.role.leakSensor`,labelFallback:`Leak sensor`},[Y.SmokeSensor]:{icon:xn,labelKey:`uiLibrary.deviceMeta.role.smokeSensor`,labelFallback:`Smoke sensor`},[Y.COSensor]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.role.cOSensor`,labelFallback:`CO sensor`},[Y.GasSensor]:{icon:K,labelKey:`uiLibrary.deviceMeta.role.gasSensor`,labelFallback:`Gas sensor`},[Y.TamperSensor]:{icon:Tr,labelKey:`uiLibrary.deviceMeta.role.tamperSensor`,labelFallback:`Tamper sensor`},[Y.VibrationSensor]:{icon:gr,labelKey:`uiLibrary.deviceMeta.role.vibrationSensor`,labelFallback:`Vibration sensor`},[Y.ConnectivitySensor]:{icon:An,labelKey:`uiLibrary.deviceMeta.role.connectivitySensor`,labelFallback:`Connectivity`},[Y.SoundSensor]:{icon:mt,labelKey:`uiLibrary.deviceMeta.role.soundSensor`,labelFallback:`Sound sensor`},[Y.BinarySensor]:{icon:Ye,labelKey:`uiLibrary.deviceMeta.role.binarySensor`,labelFallback:`Binary sensor`},[Y.TemperatureSensor]:{icon:We,labelKey:`uiLibrary.deviceMeta.role.temperatureSensor`,labelFallback:`Temperature`},[Y.HumiditySensor]:{icon:Ue,labelKey:`uiLibrary.deviceMeta.role.humiditySensor`,labelFallback:`Humidity`},[Y.AmbientLightSensor]:{icon:wt,labelKey:`uiLibrary.deviceMeta.role.ambientLightSensor`,labelFallback:`Ambient light`},[Y.PressureSensor]:{icon:vt,labelKey:`uiLibrary.deviceMeta.role.pressureSensor`,labelFallback:`Pressure`},[Y.WindSensor]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.role.windSensor`,labelFallback:`Wind`},[Y.RainSensor]:{icon:Mn,labelKey:`uiLibrary.deviceMeta.role.rainSensor`,labelFallback:`Rain`},[Y.UvSensor]:{icon:V,labelKey:`uiLibrary.deviceMeta.role.uvSensor`,labelFallback:`UV index`},[Y.SolarRadiationSensor]:{icon:mn,labelKey:`uiLibrary.deviceMeta.role.solarRadiationSensor`,labelFallback:`Solar radiation`},[Y.SoilMoistureSensor]:{icon:jr,labelKey:`uiLibrary.deviceMeta.role.soilMoistureSensor`,labelFallback:`Soil moisture`},[Y.PowerSensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.powerSensor`,labelFallback:`Power`},[Y.EnergySensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.energySensor`,labelFallback:`Energy`},[Y.VoltageSensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.voltageSensor`,labelFallback:`Voltage`},[Y.CurrentSensor]:{icon:er,labelKey:`uiLibrary.deviceMeta.role.currentSensor`,labelFallback:`Current`},[Y.AirQualitySensor]:{icon:Mi,labelKey:`uiLibrary.deviceMeta.role.airQualitySensor`,labelFallback:`Air quality`},[Y.BatterySensor]:{icon:vt,labelKey:`uiLibrary.deviceMeta.role.batterySensor`,labelFallback:`Battery`},[Y.NumericSensor]:{icon:pe,labelKey:`uiLibrary.deviceMeta.role.numericSensor`,labelFallback:`Numeric sensor`},[Y.EnumSensor]:{icon:Ur,labelKey:`uiLibrary.deviceMeta.role.enumSensor`,labelFallback:`Enum sensor`},[Y.DateTimeSensor]:{icon:In,labelKey:`uiLibrary.deviceMeta.role.dateTimeSensor`,labelFallback:`Date / time`},[Y.GenericSensor]:{icon:vt,labelKey:`uiLibrary.deviceMeta.role.genericSensor`,labelFallback:`Sensor`},[Y.NumericControl]:{icon:Lr,labelKey:`uiLibrary.deviceMeta.role.numericControl`,labelFallback:`Numeric control`},[Y.SelectControl]:{icon:Er,labelKey:`uiLibrary.deviceMeta.role.selectControl`,labelFallback:`Select control`},[Y.TextControl]:{icon:et,labelKey:`uiLibrary.deviceMeta.role.textControl`,labelFallback:`Text control`},[Y.DateTimeControl]:{icon:In,labelKey:`uiLibrary.deviceMeta.role.dateTimeControl`,labelFallback:`Date / time control`},[Y.MobilePushNotifier]:{icon:Cn,labelKey:`uiLibrary.deviceMeta.role.mobilePushNotifier`,labelFallback:`Mobile push`},[Y.MessagingNotifier]:{icon:ei,labelKey:`uiLibrary.deviceMeta.role.messagingNotifier`,labelFallback:`Messaging`},[Y.EmailNotifier]:{icon:Nn,labelKey:`uiLibrary.deviceMeta.role.emailNotifier`,labelFallback:`Email`},[Y.GenericNotifier]:{icon:Bt,labelKey:`uiLibrary.deviceMeta.role.genericNotifier`,labelFallback:`Notifier`},[Y.IrTransmitter]:{icon:ft,labelKey:`uiLibrary.deviceMeta.role.irTransmitter`,labelFallback:`IR/RF transmitter`}},Po=new Set(Object.values(J)),Fo=new Set(Object.values(Y));function Io(e){return Po.has(e)}function Lo(e){return Fo.has(e)}function Ro(e,t=Fn){return jo(Mo[e],t)}function zo(e,t=Fn){return jo(No[e],t)}var Bo=Mo[J.Generic],Vo=No[Y.GenericSensor];function Ho(e,t=Fn){return Io(e)?jo(Mo[e]??Bo,t):jo(Bo,t)}function Uo(e,t=Fn){return Lo(e)?jo(No[e]??Vo,t):jo(Vo,t)}var Wo={camera:ot,network:De,"toggle-left":Ye,"circle-dot":yi,"refresh-cw":_e,box:Ze,"scroll-text":ji,workflow:Si,lock:xr,blinds:ne,"air-vent":Fr,"monitor-play":z,"sliders-horizontal":Lr,"map-pin":oi,bot:Et,tractor:Qt,image:Nt,bone:Pi,"door-closed":Ct,"door-open":pn,crosshair:ui,"eye-off":Oe,smartphone:Cn,power:nt,battery:Ee,lightbulb:Jn,flashlight:Ot,thermometer:We,droplets:Ue,droplet:cn,gauge:vt,sun:wt,"sun-medium":V,sunrise:mn,moon:St,wind:Mi,"cloud-rain":Mn,"cloud-sun":Ir,waves:Rt,sprout:jr,zap:er,flame:K,bell:Bt,siren:br,radar:mr,activity:ri,hash:pe,clock:In,pipette:Dt,fan:Ht,bath:en,footprints:$e,"alarm-smoke":xn,"shield-alert":Tr,vibrate:gr,wifi:An,"volume-2":mt,list:Ur,"list-checks":Er,mail:Nn,"message-square":ei,type:et};function Go(e){return Object.values(J).map(t=>{let n=Ho(t,e);return{id:t,label:n.label,icon:n.icon}})}var Ko=Go(Fn);function qo(e=Fn){return e===Fn?Ko:Go(e)}E();var Jo,Yo,Xo,Zo=0,Qo=new Set;function $o(){Zo+=1;for(let e of Qo)e()}function es(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}function ts(){return Jo===void 0?Xo===void 0?(Yo??=a(()=>import(`./icons-l5aYjks5.js`).then(e=>{Jo=e,$o()},e=>{throw Xo=e,$o(),e}),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40]),import.meta.url),Yo):Promise.reject(Xo):Promise.resolve()}function ns(){return Xo!==void 0}function rs(){return Jo!==void 0}function is(e){let t=Aa(e);if(t===void 0)return;let n=Wo[t];if(n!==void 0)return n;if(Jo!==void 0)return Jo[es(t)];Xo===void 0&&ts().catch(()=>void 0)}function as(e){return Qo.add(e),()=>{Qo.delete(e)}}var os=()=>Zo;function ss(){return S(as,os,os)}function cs(){return p(()=>e=>is(e),[ss()])}function ls(e){let t=e.split(`+`),n=t[t.length-1]??``,r=t.slice(0,-1);return{mod:r.includes(`mod`),shift:r.includes(`shift`),alt:r.includes(`alt`),key:n}}function us(){return typeof navigator>`u`?`other`:/mac|iphone|ipad/i.test(navigator.platform)?`mac`:`other`}function ds(e,t,n){let r=ls(t),i=n===`mac`?e.metaKey:e.ctrlKey,a=n===`mac`?e.ctrlKey:e.metaKey;return e.key.toLowerCase()===r.key&&i===r.mod&&!a&&e.shiftKey===r.shift&&e.altKey===r.alt}E();var fs=`page`,ps=`fallback`,ms=O(null),hs=O(fs);function gs(e){return e instanceof HTMLElement?e.isContentEditable?!0:e.tagName===`INPUT`||e.tagName===`TEXTAREA`||e.tagName===`SELECT`:!1}function _s(e,t,n){if(t.isComposing||t.keyCode===229)return;let r=gs(t.target),i=[...[...e.scopes].reverse().map(e=>e.id),fs,ps];for(let a of i){let i=e.bindings.filter(e=>e.scope===a&&ds(t,e.combo,n)).reverse();for(let e of i)if(!(r&&!e.allowInInput)&&e.handlerRef.current(t)!==!1){e.preventDefault&&t.preventDefault();return}if(e.scopes.find(e=>e.id===a)?.modal)return}}function vs({children:e,platform:t}){let n=f({bindings:[],scopes:[]}),r=t??us(),i=p(()=>({addBinding:e=>(n.current={...n.current,bindings:[...n.current.bindings,e]},()=>{n.current={...n.current,bindings:n.current.bindings.filter(t=>t.id!==e.id)}}),addScope:e=>(n.current={...n.current,scopes:[...n.current.scopes,e]},()=>{n.current={...n.current,scopes:n.current.scopes.filter(t=>t!==e)}})}),[]);return b(()=>{let e=e=>_s(n.current,e,r);return window.addEventListener(`keydown`,e,!0),()=>window.removeEventListener(`keydown`,e,!0)},[r]),v(ms.Provider,{value:i,children:e})}var ys=0;function bs(e,t,n={}){let r=I(ms),i=I(hs),a=f(t);a.current=t;let o=n.scope??i,s=n.enabled??!0,c=n.preventDefault??!0,l=n.allowInInput??ls(e).mod;b(()=>{if(!(!r||!s))return ys+=1,r.addBinding({id:ys,combo:e,scope:o,handlerRef:a,preventDefault:c,allowInInput:l})},[r,s,e,o,c,l])}function xs({id:e,children:t,enabled:n=!0,modal:r=!1}){let i=I(ms);return b(()=>{if(!(!i||!n))return i.addScope({id:e,modal:r})},[i,n,e,r]),v(hs.Provider,{value:e,children:t})}function Ss(e){return e.isConnected&&!e.disabled&&e.getClientRects().length>0}function Cs(e,t={}){let n=t.enabled??!0,r=t.scope,i=()=>{let t=e.current;return!t||!Ss(t)?!1:(t.focus(),t.select(),!0)};bs(`mod+f`,i,{enabled:n,scope:r}),bs(`mod+k`,i,{enabled:n,scope:r})}bo();function ws(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`)if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ws(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n);return r}function Ts(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ws(e))&&(r&&(r+=` `),r+=t);return r}var Es=(e,t)=>{let n=Array(e.length+t.length);for(let t=0;t<e.length;t++)n[t]=e[t];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},Ds=(e,t)=>({classGroupId:e,validator:t}),Os=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),ks=`-`,As=[],js=`arbitrary..`,Ms=e=>{let t=Fs(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{if(e.startsWith(`[`)&&e.endsWith(`]`))return Ps(e);let n=e.split(ks);return Ns(n,+(n[0]===``&&n.length>1),t)},getConflictingClassGroupIds:(e,t)=>{if(t){let t=r[e],i=n[e];return t?i?Es(i,t):t:i||As}return n[e]||As}}},Ns=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;let r=e[t],i=n.nextPart.get(r);if(i){let n=Ns(e,t+1,i);if(n)return n}let a=n.validators;if(a===null)return;let o=t===0?e.join(ks):e.slice(t).join(ks),s=a.length;for(let e=0;e<s;e++){let t=a[e];if(t.validator(o))return t.classGroupId}},Ps=e=>e.slice(1,-1).indexOf(`:`)===-1?void 0:(()=>{let t=e.slice(1,-1),n=t.indexOf(`:`),r=t.slice(0,n);return r?js+r:void 0})(),Fs=e=>{let{theme:t,classGroups:n}=e;return Is(n,t)},Is=(e,t)=>{let n=Os();for(let r in e){let i=e[r];Ls(i,n,r,t)}return n},Ls=(e,t,n,r)=>{let i=e.length;for(let a=0;a<i;a++){let i=e[a];Rs(i,t,n,r)}},Rs=(e,t,n,r)=>{if(typeof e==`string`){zs(e,t,n);return}if(typeof e==`function`){Bs(e,t,n,r);return}Vs(e,t,n,r)},zs=(e,t,n)=>{let r=e===``?t:Hs(t,e);r.classGroupId=n},Bs=(e,t,n,r)=>{if(Us(e)){Ls(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(Ds(n,e))},Vs=(e,t,n,r)=>{let i=Object.entries(e),a=i.length;for(let e=0;e<a;e++){let[a,o]=i[e];Ls(o,Hs(t,a),n,r)}},Hs=(e,t)=>{let n=e,r=t.split(ks),i=r.length;for(let e=0;e<i;e++){let t=r[e],i=n.nextPart.get(t);i||(i=Os(),n.nextPart.set(t,i)),n=i}return n},Us=e=>`isThemeGetter`in e&&e.isThemeGetter===!0,Ws=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null),i=(i,a)=>{n[i]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(e){let t=n[e];if(t!==void 0)return t;if((t=r[e])!==void 0)return i(e,t),t},set(e,t){e in n?n[e]=t:i(e,t)}}},Gs=`!`,Ks=`:`,qs=[],Js=(e,t,n,r,i)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:i}),Ys=e=>{let{prefix:t,experimentalParseClassName:n}=e,r=e=>{let t=[],n=0,r=0,i=0,a,o=e.length;for(let s=0;s<o;s++){let o=e[s];if(n===0&&r===0){if(o===Ks){t.push(e.slice(i,s)),i=s+1;continue}if(o===`/`){a=s;continue}}o===`[`?n++:o===`]`?n--:o===`(`?r++:o===`)`&&r--}let s=t.length===0?e:e.slice(i),c=s,l=!1;s.endsWith(Gs)?(c=s.slice(0,-1),l=!0):s.startsWith(Gs)&&(c=s.slice(1),l=!0);let u=a&&a>i?a-i:void 0;return Js(t,l,c,u)};if(t){let e=t+Ks,n=r;r=t=>t.startsWith(e)?n(t.slice(e.length)):Js(qs,!1,t,void 0,!0)}if(n){let e=r;r=t=>n({className:t,parseClassName:e})}return r},Xs=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((e,n)=>{t.set(e,1e6+n)}),e=>{let n=[],r=[];for(let i=0;i<e.length;i++){let a=e[i],o=a[0]===`[`,s=t.has(a);o||s?(r.length>0&&(r.sort(),n.push(...r),r=[]),n.push(a)):r.push(a)}return r.length>0&&(r.sort(),n.push(...r)),n}},Zs=e=>({cache:Ws(e.cacheSize),parseClassName:Ys(e),sortModifiers:Xs(e),postfixLookupClassGroupIds:Qs(e),...Ms(e)}),Qs=e=>{let t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let e=0;e<n.length;e++)t[n[e]]=!0;return t},$s=/\s+/,ec=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i,sortModifiers:a,postfixLookupClassGroupIds:o}=t,s=[],c=e.trim().split($s),l=``;for(let e=c.length-1;e>=0;--e){let t=c[e],{isExternal:u,modifiers:d,hasImportantModifier:f,baseClassName:p,maybePostfixModifierPosition:m}=n(t);if(u){l=t+(l.length>0?` `+l:l);continue}let h=!!m,g;if(h){g=r(p.substring(0,m));let e=g&&o[g]?r(p):void 0;e&&e!==g&&(g=e,h=!1)}else g=r(p);if(!g){if(!h){l=t+(l.length>0?` `+l:l);continue}if(g=r(p),!g){l=t+(l.length>0?` `+l:l);continue}h=!1}let _=d.length===0?``:d.length===1?d[0]:a(d).join(`:`),v=f?_+Gs:_,y=v+g;if(s.indexOf(y)>-1)continue;s.push(y);let b=i(g,h);for(let e=0;e<b.length;++e){let t=b[e];s.push(v+t)}l=t+(l.length>0?` `+l:l)}return l},tc=(...e)=>{let t=0,n,r,i=``;for(;t<e.length;)(n=e[t++])&&(r=nc(n))&&(i&&(i+=` `),i+=r);return i},nc=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=nc(e[r]))&&(n&&(n+=` `),n+=t);return n},rc=(e,...t)=>{let n,r,i,a,o=o=>(n=Zs(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)),s=e=>{let t=r(e);if(t)return t;let a=ec(e,n);return i(e,a),a};return a=o,(...e)=>a(tc(...e))},ic=[],ac=e=>{let t=t=>t[e]||ic;return t.isThemeGetter=!0,t},oc=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,sc=/^\((?:(\w[\w-]*):)?(.+)\)$/i,cc=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,lc=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,uc=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,dc=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,fc=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,pc=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mc=e=>cc.test(e),hc=e=>!!e&&!Number.isNaN(Number(e)),gc=e=>!!e&&Number.isInteger(Number(e)),_c=e=>e.endsWith(`%`)&&hc(e.slice(0,-1)),vc=e=>lc.test(e),yc=()=>!0,bc=e=>uc.test(e)&&!dc.test(e),xc=()=>!1,Sc=e=>fc.test(e),Cc=e=>pc.test(e),wc=e=>!Z(e)&&!Q(e),Tc=e=>e.startsWith(`@container`)&&(e[10]===`/`&&e[11]!==void 0||e[11]===`s`&&e[16]!==void 0&&e.startsWith(`-size/`,10)||e[11]===`n`&&e[18]!==void 0&&e.startsWith(`-normal/`,10)),Ec=e=>Vc(e,Gc,xc),Z=e=>oc.test(e),Dc=e=>Vc(e,Kc,bc),Oc=e=>Vc(e,qc,hc),kc=e=>Vc(e,Yc,yc),Ac=e=>Vc(e,Jc,xc),jc=e=>Vc(e,Uc,xc),Mc=e=>Vc(e,Wc,Cc),Nc=e=>Vc(e,Xc,Sc),Q=e=>sc.test(e),Pc=e=>Hc(e,Kc),Fc=e=>Hc(e,Jc),Ic=e=>Hc(e,Uc),Lc=e=>Hc(e,Gc),Rc=e=>Hc(e,Wc),zc=e=>Hc(e,Xc,!0),Bc=e=>Hc(e,Yc,!0),Vc=(e,t,n)=>{let r=oc.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},Hc=(e,t,n=!1)=>{let r=sc.exec(e);return r?r[1]?t(r[1]):n:!1},Uc=e=>e===`position`||e===`percentage`,Wc=e=>e===`image`||e===`url`,Gc=e=>e===`length`||e===`size`||e===`bg-size`,Kc=e=>e===`length`,qc=e=>e===`number`,Jc=e=>e===`family-name`,Yc=e=>e===`number`||e===`weight`,Xc=e=>e===`shadow`,Zc=rc(()=>{let e=ac(`color`),t=ac(`font`),n=ac(`text`),r=ac(`font-weight`),i=ac(`tracking`),a=ac(`leading`),o=ac(`breakpoint`),s=ac(`container`),c=ac(`spacing`),l=ac(`radius`),u=ac(`shadow`),d=ac(`inset-shadow`),f=ac(`text-shadow`),p=ac(`drop-shadow`),m=ac(`blur`),h=ac(`perspective`),g=ac(`aspect`),_=ac(`ease`),v=ac(`animate`),y=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],b=()=>[`center`,`top`,`bottom`,`left`,`right`,`top-left`,`left-top`,`top-right`,`right-top`,`bottom-right`,`right-bottom`,`bottom-left`,`left-bottom`],x=()=>[...b(),Q,Z],S=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],C=()=>[`auto`,`contain`,`none`],w=()=>[Q,Z,c],T=()=>[mc,`full`,`auto`,...w()],E=()=>[gc,`none`,`subgrid`,Q,Z],D=()=>[`auto`,{span:[`full`,gc,Q,Z]},gc,Q,Z],O=()=>[gc,`auto`,Q,Z],k=()=>[`auto`,`min`,`max`,`fr`,Q,Z],A=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`,`baseline`,`center-safe`,`end-safe`],j=()=>[`start`,`end`,`center`,`stretch`,`center-safe`,`end-safe`],M=()=>[`auto`,...w()],N=()=>[mc,`auto`,`full`,`dvw`,`dvh`,`lvw`,`lvh`,`svw`,`svh`,`min`,`max`,`fit`,...w()],P=()=>[mc,`screen`,`full`,`dvw`,`lvw`,`svw`,`min`,`max`,`fit`,...w()],F=()=>[mc,`screen`,`full`,`lh`,`dvh`,`lvh`,`svh`,`min`,`max`,`fit`,...w()],I=()=>[e,Q,Z],L=()=>[...b(),Ic,jc,{position:[Q,Z]}],R=()=>[`no-repeat`,{repeat:[``,`x`,`y`,`space`,`round`]}],z=()=>[`auto`,`cover`,`contain`,Lc,Ec,{size:[Q,Z]}],B=()=>[_c,Pc,Dc],V=()=>[``,`none`,`full`,l,Q,Z],H=()=>[``,hc,Pc,Dc],U=()=>[`solid`,`dashed`,`dotted`,`double`],ee=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],W=()=>[hc,_c,Ic,jc],G=()=>[``,`none`,m,Q,Z],te=()=>[`none`,hc,Q,Z],ne=()=>[`none`,hc,Q,Z],re=()=>[hc,Q,Z],K=()=>[mc,`full`,...w()];return{cacheSize:500,theme:{animate:[`spin`,`ping`,`pulse`,`bounce`],aspect:[`video`],blur:[vc],breakpoint:[vc],color:[yc],container:[vc],"drop-shadow":[vc],ease:[`in`,`out`,`in-out`],font:[wc],"font-weight":[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`],"inset-shadow":[vc],leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`],perspective:[`dramatic`,`near`,`normal`,`midrange`,`distant`,`none`],radius:[vc],shadow:[vc],spacing:[`px`,hc],text:[vc],"text-shadow":[vc],tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`]},classGroups:{aspect:[{aspect:[`auto`,`square`,mc,Z,Q,g]}],container:[`container`],"container-type":[{"@container":[``,`normal`,`size`,Q,Z]}],"container-named":[Tc],columns:[{columns:[hc,Z,Q,s]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],sr:[`sr-only`,`not-sr-only`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:x()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:T()}],"inset-x":[{"inset-x":T()}],"inset-y":[{"inset-y":T()}],start:[{"inset-s":T(),start:T()}],end:[{"inset-e":T(),end:T()}],"inset-bs":[{"inset-bs":T()}],"inset-be":[{"inset-be":T()}],top:[{top:T()}],right:[{right:T()}],bottom:[{bottom:T()}],left:[{left:T()}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[gc,`auto`,Q,Z]}],basis:[{basis:[mc,`full`,`auto`,s,...w()]}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`nowrap`,`wrap`,`wrap-reverse`]}],flex:[{flex:[hc,mc,`auto`,`initial`,`none`,Z]}],grow:[{grow:[``,hc,Q,Z]}],shrink:[{shrink:[``,hc,Q,Z]}],order:[{order:[gc,`first`,`last`,`none`,Q,Z]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:D()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:D()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":k()}],"auto-rows":[{"auto-rows":k()}],gap:[{gap:w()}],"gap-x":[{"gap-x":w()}],"gap-y":[{"gap-y":w()}],"justify-content":[{justify:[...A(),`normal`]}],"justify-items":[{"justify-items":[...j(),`normal`]}],"justify-self":[{"justify-self":[`auto`,...j()]}],"align-content":[{content:[`normal`,...A()]}],"align-items":[{items:[...j(),{baseline:[``,`last`]}]}],"align-self":[{self:[`auto`,...j(),{baseline:[``,`last`]}]}],"place-content":[{"place-content":A()}],"place-items":[{"place-items":[...j(),`baseline`]}],"place-self":[{"place-self":[`auto`,...j()]}],p:[{p:w()}],px:[{px:w()}],py:[{py:w()}],ps:[{ps:w()}],pe:[{pe:w()}],pbs:[{pbs:w()}],pbe:[{pbe:w()}],pt:[{pt:w()}],pr:[{pr:w()}],pb:[{pb:w()}],pl:[{pl:w()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":w()}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":w()}],"space-y-reverse":[`space-y-reverse`],size:[{size:N()}],"inline-size":[{inline:[`auto`,...P()]}],"min-inline-size":[{"min-inline":[`auto`,...P()]}],"max-inline-size":[{"max-inline":[`none`,...P()]}],"block-size":[{block:[`auto`,...F()]}],"min-block-size":[{"min-block":[`auto`,...F()]}],"max-block-size":[{"max-block":[`none`,...F()]}],w:[{w:[s,`screen`,...N()]}],"min-w":[{"min-w":[s,`screen`,`none`,...N()]}],"max-w":[{"max-w":[s,`screen`,`none`,`prose`,{screen:[o]},...N()]}],h:[{h:[`screen`,`lh`,...N()]}],"min-h":[{"min-h":[`screen`,`lh`,`none`,...N()]}],"max-h":[{"max-h":[`screen`,`lh`,...N()]}],"font-size":[{text:[`base`,n,Pc,Dc]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[r,Bc,kc]}],"font-stretch":[{"font-stretch":[`ultra-condensed`,`extra-condensed`,`condensed`,`semi-condensed`,`normal`,`semi-expanded`,`expanded`,`extra-expanded`,`ultra-expanded`,_c,Z]}],"font-family":[{font:[Fc,Ac,t]}],"font-features":[{"font-features":[Z]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[i,Q,Z]}],"line-clamp":[{"line-clamp":[hc,`none`,Q,Oc]}],leading:[{leading:[a,...w()]}],"list-image":[{"list-image":[`none`,Q,Z]}],"list-style-position":[{list:[`inside`,`outside`]}],"list-style-type":[{list:[`disc`,`decimal`,`none`,Q,Z]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...U(),`wavy`]}],"text-decoration-thickness":[{decoration:[hc,`from-font`,`auto`,Q,Dc]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[hc,`auto`,Q,Z]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:w()}],"tab-size":[{tab:[gc,Q,Z]}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,Q,Z]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],wrap:[{wrap:[`break-word`,`anywhere`,`normal`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,Q,Z]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:L()}],"bg-repeat":[{bg:R()}],"bg-size":[{bg:z()}],"bg-image":[{bg:[`none`,{linear:[{to:[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},gc,Q,Z],radial:[``,Q,Z],conic:[gc,Q,Z]},Rc,Mc]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:B()}],"gradient-via-pos":[{via:B()}],"gradient-to-pos":[{to:B()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:V()}],"rounded-s":[{"rounded-s":V()}],"rounded-e":[{"rounded-e":V()}],"rounded-t":[{"rounded-t":V()}],"rounded-r":[{"rounded-r":V()}],"rounded-b":[{"rounded-b":V()}],"rounded-l":[{"rounded-l":V()}],"rounded-ss":[{"rounded-ss":V()}],"rounded-se":[{"rounded-se":V()}],"rounded-ee":[{"rounded-ee":V()}],"rounded-es":[{"rounded-es":V()}],"rounded-tl":[{"rounded-tl":V()}],"rounded-tr":[{"rounded-tr":V()}],"rounded-br":[{"rounded-br":V()}],"rounded-bl":[{"rounded-bl":V()}],"border-w":[{border:H()}],"border-w-x":[{"border-x":H()}],"border-w-y":[{"border-y":H()}],"border-w-s":[{"border-s":H()}],"border-w-e":[{"border-e":H()}],"border-w-bs":[{"border-bs":H()}],"border-w-be":[{"border-be":H()}],"border-w-t":[{"border-t":H()}],"border-w-r":[{"border-r":H()}],"border-w-b":[{"border-b":H()}],"border-w-l":[{"border-l":H()}],"divide-x":[{"divide-x":H()}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":H()}],"divide-y-reverse":[`divide-y-reverse`],"border-style":[{border:[...U(),`hidden`,`none`]}],"divide-style":[{divide:[...U(),`hidden`,`none`]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...U(),`none`,`hidden`]}],"outline-offset":[{"outline-offset":[hc,Q,Z]}],"outline-w":[{outline:[``,hc,Pc,Dc]}],"outline-color":[{outline:I()}],shadow:[{shadow:[``,`none`,u,zc,Nc]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":[`none`,d,zc,Nc]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:H()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[hc,Dc]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":H()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":[`none`,f,zc,Nc]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[hc,Q,Z]}],"mix-blend":[{"mix-blend":[...ee(),`plus-darker`,`plus-lighter`]}],"bg-blend":[{"bg-blend":ee()}],"mask-clip":[{"mask-clip":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]},`mask-no-clip`],"mask-composite":[{mask:[`add`,`subtract`,`intersect`,`exclude`]}],"mask-image-linear-pos":[{"mask-linear":[hc]}],"mask-image-linear-from-pos":[{"mask-linear-from":W()}],"mask-image-linear-to-pos":[{"mask-linear-to":W()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":W()}],"mask-image-t-to-pos":[{"mask-t-to":W()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":W()}],"mask-image-r-to-pos":[{"mask-r-to":W()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":W()}],"mask-image-b-to-pos":[{"mask-b-to":W()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":W()}],"mask-image-l-to-pos":[{"mask-l-to":W()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":W()}],"mask-image-x-to-pos":[{"mask-x-to":W()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":W()}],"mask-image-y-to-pos":[{"mask-y-to":W()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[Q,Z]}],"mask-image-radial-from-pos":[{"mask-radial-from":W()}],"mask-image-radial-to-pos":[{"mask-radial-to":W()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":[`circle`,`ellipse`]}],"mask-image-radial-size":[{"mask-radial":[{closest:[`side`,`corner`],farthest:[`side`,`corner`]}]}],"mask-image-radial-pos":[{"mask-radial-at":b()}],"mask-image-conic-pos":[{"mask-conic":[hc]}],"mask-image-conic-from-pos":[{"mask-conic-from":W()}],"mask-image-conic-to-pos":[{"mask-conic-to":W()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:[`alpha`,`luminance`,`match`]}],"mask-origin":[{"mask-origin":[`border`,`padding`,`content`,`fill`,`stroke`,`view`]}],"mask-position":[{mask:L()}],"mask-repeat":[{mask:R()}],"mask-size":[{mask:z()}],"mask-type":[{"mask-type":[`alpha`,`luminance`]}],"mask-image":[{mask:[`none`,Q,Z]}],filter:[{filter:[``,`none`,Q,Z]}],blur:[{blur:G()}],brightness:[{brightness:[hc,Q,Z]}],contrast:[{contrast:[hc,Q,Z]}],"drop-shadow":[{"drop-shadow":[``,`none`,p,zc,Nc]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:[``,hc,Q,Z]}],"hue-rotate":[{"hue-rotate":[hc,Q,Z]}],invert:[{invert:[``,hc,Q,Z]}],saturate:[{saturate:[hc,Q,Z]}],sepia:[{sepia:[``,hc,Q,Z]}],"backdrop-filter":[{"backdrop-filter":[``,`none`,Q,Z]}],"backdrop-blur":[{"backdrop-blur":G()}],"backdrop-brightness":[{"backdrop-brightness":[hc,Q,Z]}],"backdrop-contrast":[{"backdrop-contrast":[hc,Q,Z]}],"backdrop-grayscale":[{"backdrop-grayscale":[``,hc,Q,Z]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[hc,Q,Z]}],"backdrop-invert":[{"backdrop-invert":[``,hc,Q,Z]}],"backdrop-opacity":[{"backdrop-opacity":[hc,Q,Z]}],"backdrop-saturate":[{"backdrop-saturate":[hc,Q,Z]}],"backdrop-sepia":[{"backdrop-sepia":[``,hc,Q,Z]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":w()}],"border-spacing-x":[{"border-spacing-x":w()}],"border-spacing-y":[{"border-spacing-y":w()}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[``,`all`,`colors`,`opacity`,`shadow`,`transform`,`none`,Q,Z]}],"transition-behavior":[{transition:[`normal`,`discrete`]}],duration:[{duration:[hc,`initial`,Q,Z]}],ease:[{ease:[`linear`,`initial`,_,Q,Z]}],delay:[{delay:[hc,Q,Z]}],animate:[{animate:[`none`,v,Q,Z]}],backface:[{backface:[`hidden`,`visible`]}],perspective:[{perspective:[h,Q,Z]}],"perspective-origin":[{"perspective-origin":x()}],rotate:[{rotate:te()}],"rotate-x":[{"rotate-x":te()}],"rotate-y":[{"rotate-y":te()}],"rotate-z":[{"rotate-z":te()}],scale:[{scale:ne()}],"scale-x":[{"scale-x":ne()}],"scale-y":[{"scale-y":ne()}],"scale-z":[{"scale-z":ne()}],"scale-3d":[`scale-3d`],skew:[{skew:re()}],"skew-x":[{"skew-x":re()}],"skew-y":[{"skew-y":re()}],transform:[{transform:[Q,Z,``,`none`,`gpu`,`cpu`]}],"transform-origin":[{origin:x()}],"transform-style":[{transform:[`3d`,`flat`]}],translate:[{translate:K()}],"translate-x":[{"translate-x":K()}],"translate-y":[{"translate-y":K()}],"translate-z":[{"translate-z":K()}],"translate-none":[`translate-none`],zoom:[{zoom:[gc,Q,Z]}],accent:[{accent:I()}],appearance:[{appearance:[`none`,`auto`]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:[`normal`,`dark`,`light`,`light-dark`,`only-dark`,`only-light`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,Q,Z]}],"field-sizing":[{"field-sizing":[`fixed`,`content`]}],"pointer-events":[{"pointer-events":[`auto`,`none`]}],resize:[{resize:[`none`,``,`y`,`x`]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scrollbar-thumb-color":[{"scrollbar-thumb":I()}],"scrollbar-track-color":[{"scrollbar-track":I()}],"scrollbar-gutter":[{"scrollbar-gutter":[`auto`,`stable`,`both`]}],"scrollbar-w":[{scrollbar:[`auto`,`thin`,`none`]}],"scroll-m":[{"scroll-m":w()}],"scroll-mx":[{"scroll-mx":w()}],"scroll-my":[{"scroll-my":w()}],"scroll-ms":[{"scroll-ms":w()}],"scroll-me":[{"scroll-me":w()}],"scroll-mbs":[{"scroll-mbs":w()}],"scroll-mbe":[{"scroll-mbe":w()}],"scroll-mt":[{"scroll-mt":w()}],"scroll-mr":[{"scroll-mr":w()}],"scroll-mb":[{"scroll-mb":w()}],"scroll-ml":[{"scroll-ml":w()}],"scroll-p":[{"scroll-p":w()}],"scroll-px":[{"scroll-px":w()}],"scroll-py":[{"scroll-py":w()}],"scroll-ps":[{"scroll-ps":w()}],"scroll-pe":[{"scroll-pe":w()}],"scroll-pbs":[{"scroll-pbs":w()}],"scroll-pbe":[{"scroll-pbe":w()}],"scroll-pt":[{"scroll-pt":w()}],"scroll-pr":[{"scroll-pr":w()}],"scroll-pb":[{"scroll-pb":w()}],"scroll-pl":[{"scroll-pl":w()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,Q,Z]}],fill:[{fill:[`none`,...I()]}],"stroke-w":[{stroke:[hc,Pc,Dc,Oc]}],stroke:[{stroke:[`none`,...I()]}],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{"container-named":[`container-type`],overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`inset-bs`,`inset-be`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pbs`,`pbe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mbs`,`mbe`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-x`,`border-w-y`,`border-w-s`,`border-w-e`,`border-w-bs`,`border-w-be`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-x`,`border-color-y`,`border-color-s`,`border-color-e`,`border-color-bs`,`border-color-be`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],translate:[`translate-x`,`translate-y`,`translate-none`],"translate-none":[`translate`,`translate-x`,`translate-y`,`translate-z`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mbs`,`scroll-mbe`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pbs`,`scroll-pbe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]},postfixLookupClassGroups:[`container-type`],orderSensitiveModifiers:[`*`,`**`,`after`,`backdrop`,`before`,`details-content`,`file`,`first-letter`,`first-line`,`marker`,`placeholder`,`selection`]}});function $(...e){return Zc(Ts(e))}E();var Qc=`(max-width: 767px)`,$c=`(min-width: 768px) and (max-width: 1023px)`;function el(e){return typeof window.matchMedia==`function`?window.matchMedia(e):null}function tl(e){return t=>{let n=el(e);return n===null?()=>{}:(n.addEventListener(`change`,t),()=>n.removeEventListener(`change`,t))}}function nl(e){return()=>el(e)?.matches??!1}function rl(){return!1}function il(){return S(tl(Qc),nl(Qc),rl)}function al(){return S(tl($c),nl($c),rl)}E();function ol({open:e,onClose:t,title:n,children:r,className:i}){return b(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,n),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,n),document.body.style.overflow=``}},[e,t]),c(P,{children:[v(`div`,{className:$(`fixed inset-0 z-40 bg-black/50 transition-opacity duration-200`,e?`opacity-100`:`pointer-events-none opacity-0`),onClick:t,"aria-hidden":`true`}),c(`div`,{role:`dialog`,"aria-modal":`true`,className:$(`fixed inset-x-0 bottom-0 z-50 flex flex-col bg-background-elevated border-t border-border rounded-t-xl shadow-2xl transition-transform duration-200 ease-out pb-[env(safe-area-inset-bottom)]`,`max-h-[80dvh]`,e?`translate-y-0`:`translate-y-full`,i),children:[v(`div`,{className:`flex justify-center pt-2 pb-1`,children:v(`div`,{className:`h-1 w-8 rounded-full bg-foreground-subtle/30`})}),n&&c(`div`,{className:`flex items-center justify-between px-4 pb-2`,children:[v(`span`,{className:`text-sm font-medium text-foreground`,children:n}),v(`button`,{onClick:t,className:`p-1 rounded-md hover:bg-surface-hover text-foreground-muted transition-colors`,children:v(Yn,{className:`h-4 w-4`})})]}),v(`div`,{className:`flex-1 overflow-y-auto px-4 pb-4`,children:r})]})]})}E();var sl=O(null);function cl(){let e=I(sl);if(!e)throw Error(`Popover compound components must be used within <Popover>`);return e}function ll({children:e,open:t,onOpenChange:n}){let[r,i]=C(!1),a=t??r,o=y(),s=y(),c=f(null),l=_(e=>{n?.(e),t===void 0&&i(e)},[t,n]);return v(sl.Provider,{value:{open:a,setOpen:l,triggerId:o,contentId:s,triggerRef:c},children:v(`div`,{className:`relative inline-block`,children:e})})}function ul({children:e,...t}){let{open:n,setOpen:r,triggerId:i,contentId:a,triggerRef:o}=cl();return v(`button`,{type:`button`,ref:o,id:i,"aria-haspopup":`dialog`,"aria-expanded":n,"aria-controls":n?a:void 0,onClick:()=>r(!n),...t,children:e})}var dl=8;function fl(e){let t=e.viewportHeight-e.triggerBottom-e.offset-dl,n=e.triggerTop-e.offset-dl,r=e.contentHeight>t&&n>t?`above`:`below`;return{side:r,maxHeight:Math.max(0,r===`above`?n:t)}}function pl({className:e,children:t,align:n=`start`,offset:r=4,...i}){let{open:a,setOpen:o,contentId:s,triggerId:c,triggerRef:l}=cl(),d=il(),p=f(null),[m,h]=C(null),[g,_]=C(null);return u(()=>{if(!a||d){h(null);return}let e=()=>{let e=l.current;if(!e)return;let t=e.getBoundingClientRect(),i=n===`end`?t.right:t.left;h({top:t.bottom+r,left:i,minWidth:t.width,triggerTop:t.top,triggerBottom:t.bottom})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[a,d,n,r,l]),u(()=>{let e=p.current;if(!m||!e){_(null);return}_(fl({triggerTop:m.triggerTop,triggerBottom:m.triggerBottom,contentHeight:e.scrollHeight,viewportHeight:window.innerHeight,offset:r}))},[m,r]),b(()=>{if(!a||d)return;let e=e=>{let t=p.current,n=l.current;t&&!t.contains(e.target)&&!n?.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&o(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a,o,l,d]),a?d?v(ol,{open:a,onClose:()=>o(!1),children:t}):!m||typeof document>`u`?null:xo(v(`div`,{ref:p,id:s,role:`dialog`,"aria-labelledby":c,style:{position:`fixed`,...g?.side===`above`?{bottom:window.innerHeight-m.triggerTop+r}:{top:m.top},...g?{maxHeight:g.maxHeight}:{},...n===`end`?{right:window.innerWidth-m.left}:{left:m.left},minWidth:m.minWidth},className:$(`z-50 overflow-y-auto bg-background-elevated border border-border rounded-lg shadow-lg p-3`,e),...i,children:t}),document.body):null}E();var ml=7,hl=24,gl=32,_l=288,vl=96;function yl(e){let t=[];for(let n=0;n<e.length;n+=ml)t.push(e.slice(n,n+ml));return t}function bl(e){return e.kind===`header`?hl:gl}function xl(e,t){return e.trim().length>0?yl(Ree(e,t).map(e=>e.entry.key)).map((e,t)=>({kind:`tiles`,id:`r${t}`,keys:e})):sa.flatMap(e=>{let t=fa(e).map(e=>e.key);return[{kind:`header`,id:`h-${e}`,category:e},...yl(t).map((t,n)=>({kind:`tiles`,id:`${e}-${n}`,keys:t}))]})}function Sl(e,t,n,r){let i=Math.max(0,r-vl),a=r+_l+vl,o=0;for(;o<e.length-1&&(t[o+1]??n)<=i;)o+=1;let s=o;for(;s<e.length&&(t[s]??n)<a;)s+=1;return{rows:e.slice(o,s),padTop:t[o]??0,padBottom:Math.max(0,n-(t[s]??n))}}function Cl({value:e,onPick:t,fallbackGlyph:n,labels:r,extraWords:i,clearGlyph:a,labelFor:o,categoryLabel:s=Sa,disabled:l=!1}){let u=f(null);Cs(u);let[d,m]=C(!1),[h,g]=C(``),[_,y]=C(0),x=f(null),S=cs();b(()=>{d&&ts().catch(()=>void 0)},[d]);let w=Aa(e),T=p(()=>xl(h,i),[h,i]),{offsets:E,total:D}=p(()=>{let e=[],t=0;for(let n of T)e.push(t),t+=bl(n);return{offsets:e,total:t}},[T]),O=p(()=>Sl(T,E,D,_),[T,E,D,_]),k=(e===null?void 0:S(e))??n,A=a??n,j=e=>{g(e),y(0),x.current!==null&&(x.current.scrollTop=0)},M=async e=>{N(!1),await t(e)},N=e=>{m(e),e||j(``)};return c(ll,{open:d,onOpenChange:N,children:[v(ul,{disabled:l,"aria-label":r.trigger,title:r.trigger,className:`rounded border border-border p-1 text-foreground-muted hover:bg-surface-hover disabled:opacity-50`,children:v(k,{className:`h-4 w-4`})}),v(pl,{"aria-label":r.panel,"aria-labelledby":void 0,className:`w-72 p-2`,children:c(`div`,{className:`w-full`,children:[v(`input`,{ref:u,type:`search`,value:h,autoFocus:!0,onChange:e=>j(e.target.value),placeholder:r.searchPlaceholder,"aria-label":r.searchPlaceholder,className:`mb-2 w-full rounded border border-border bg-surface-raised px-2 py-1 text-xs text-foreground placeholder:text-foreground-subtle`}),c(`button`,{type:`button`,onClick:()=>void M(null),"aria-pressed":e===null,className:`mb-2 flex w-full items-center gap-1.5 rounded px-1.5 py-1 text-[11px] text-foreground-subtle hover:bg-surface-hover`,children:[v(A,{className:`h-3.5 w-3.5`}),r.clear]}),T.length===0?v(`p`,{className:`px-1.5 py-2 text-[11px] text-foreground-subtle`,children:r.noMatches}):v(`div`,{ref:x,onScroll:e=>y(e.currentTarget.scrollTop),className:`max-h-72 overflow-y-auto`,children:v(`div`,{style:{paddingTop:O.padTop,paddingBottom:O.padBottom},children:O.rows.map(e=>e.kind===`header`?v(`h4`,{className:`flex h-6 items-center px-1.5 text-[10px] uppercase tracking-wide text-foreground-subtle`,children:s(e.category)},e.id):v(`div`,{className:`grid h-8 grid-cols-7 gap-1 pb-1`,children:e.keys.map(e=>{let t=S(e);if(t===void 0)return v(`span`,{"aria-hidden":`true`},e);let n=w===e;return v(`button`,{type:`button`,onClick:()=>void M(e),"aria-pressed":n,"aria-label":o?.(e)??e,title:o?.(e)??e,className:n?`flex items-center justify-center rounded border border-primary bg-primary/10 text-foreground`:`flex items-center justify-center rounded border border-transparent text-foreground-muted hover:bg-surface-hover`,children:v(t,{className:`h-4 w-4`})},e)})},e.id))})})]})})]})}function wl(e){return{trigger:`Choose an icon for ${e}`,panel:`${e} icon`,searchPlaceholder:`Search icons`,clear:`Default icon`,noMatches:`No icon matches`}}function Tl({label:e,value:t,defaultKey:n,disabled:r,onChange:i}){let a=cs(),o=ua(t,n),s=a(n)??Hr;return c(`div`,{className:`flex items-center gap-2`,children:[v(Cl,{value:o===``?null:o,onPick:e=>i(e??n),fallbackGlyph:s,labels:wl(e),disabled:r}),v(`span`,{className:`text-[11px] text-foreground-subtle font-mono`,children:o})]})}function El(e){if(typeof window>`u`||typeof DOMParser>`u`)return``;let t=new Set([`A`,`UL`,`OL`,`LI`,`STRONG`,`EM`,`CODE`,`BR`,`P`,`SPAN`,`B`]),n=new DOMParser().parseFromString(`<div>${e}</div>`,`text/html`),r=n.body.firstElementChild;if(!r)return``;let i=e=>{let r=Array.from(e.children);for(let e of r){if(!t.has(e.tagName)){let t=n.createTextNode(e.textContent??``);e.replaceWith(t);continue}let r=e.tagName===`A`?new Set([`href`]):new Set;for(let t of Array.from(e.attributes))r.has(t.name)||e.removeAttribute(t.name);if(e.tagName===`A`){let t=e.getAttribute(`href`)??``,n=/^https?:\/\//i.test(t),r=t.startsWith(`mailto:`),i=t.startsWith(`/`)&&!t.startsWith(`//`);!n&&!r&&!i?e.removeAttribute(`href`):n&&(e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))}i(e)}};return i(r),r.innerHTML}var Dl=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,Ol=Ts,kl=(e,t)=>n=>{if(t?.variants==null)return Ol(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=Dl(t)||Dl(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return Ol(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)};E();var Al=kl(`inline-flex items-center justify-center rounded-md font-medium transition-colors cursor-pointer disabled:opacity-50 disabled:pointer-events-none`,{variants:{variant:{primary:`bg-primary text-primary-foreground hover:bg-primary/90`,secondary:`bg-surface text-foreground hover:bg-surface-hover`,ghost:`hover:bg-surface-hover text-foreground-muted`,danger:`bg-danger text-white hover:bg-danger/90`,outline:`border border-border bg-transparent hover:bg-surface-hover`},size:{sm:`h-7 w-7`,md:`h-8 w-8`,lg:`h-9 w-9`}},defaultVariants:{variant:`primary`,size:`sm`}}),jl=D(({className:e,variant:t,size:n,icon:r,...i},a)=>v(`button`,{ref:a,className:$(Al({variant:t,size:n}),e),...i,children:v(r,{className:`h-4 w-4`,"aria-hidden":`true`})}));jl.displayName=`IconButton`,E();var Ml=kl(`h-7 w-full px-2.5 text-xs bg-surface border rounded-md text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-1 focus:ring-inset focus:ring-primary transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,{variants:{state:{default:`border-border`,error:`border-danger`}},defaultVariants:{state:`default`}}),Nl=D(({className:e,state:t,leftSlot:n,rightSlot:r,searchHotkey:i,...a},o)=>{let s=f(null),l=_(e=>{s.current=e,typeof o==`function`?o(e):o&&(o.current=e)},[o]);return Cs(s,{enabled:i??a.type===`search`}),n||r?c(`div`,{className:$(`relative flex items-center`,e),children:[n&&v(`div`,{className:`absolute left-2.5 flex items-center text-foreground-subtle pointer-events-none`,children:n}),v(`input`,{ref:l,className:$(Ml({state:t}),n&&`pl-8`,r&&`pr-8`,e),...a}),r&&v(`div`,{className:`absolute right-2.5 flex items-center text-foreground-subtle`,children:r})]}):v(`input`,{ref:l,className:$(Ml({state:t}),e),...a})});Nl.displayName=`Input`,E();var Pl=O(null);function Fl(){let e=I(Pl);if(!e)throw Error(`Tooltip compound components must be used within <Tooltip>`);return e}function Il({children:e,className:t,open:n}){let[r,i]=C(!1),a=n??r,o=f(null),s=y();return v(Pl.Provider,{value:{open:a,show:()=>{o.current=setTimeout(()=>i(!0),300)},hide:()=>{o.current&&clearTimeout(o.current),i(!1)},tooltipId:s},children:v(`div`,{className:$(`relative`,t??`inline-block`),children:e})})}function Ll({children:e,...t}){let{show:n,hide:r,tooltipId:i,open:a}=Fl();return v(`div`,{onMouseEnter:n,onMouseLeave:r,onFocus:n,onBlur:r,"aria-describedby":a?i:void 0,...t,children:e})}function Rl({className:e,children:t,...n}){let{open:r,tooltipId:i}=Fl();return v(`div`,{id:i,role:`tooltip`,className:$(`absolute bottom-full left-1/2 -translate-x-1/2 mb-2 bg-foreground text-background text-xs px-2 py-1 rounded-md shadow-md whitespace-nowrap pointer-events-none transition-opacity duration-150`,r?`opacity-100`:`opacity-0`,e),...n,children:t})}E();var zl=`w-full min-h-[60px] rounded-md border border-border bg-background px-2.5 py-1.5 pr-9 font-mono text-xs text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-1 focus:ring-primary disabled:opacity-50 disabled:cursor-not-allowed`,Bl={WebkitTextSecurity:`disc`},Vl=D(({value:e,onValueChange:t,shown:n,onToggleShown:r,busy:i=!1,error:a=null,toggleBlockedReason:o=null,hideToggle:s=!1,multiline:l=!1,className:u,disabled:d,...f},p)=>{let m=n?`Hide password`:`Show password`;return c(`div`,{className:`relative w-full`,children:[l?v(`textarea`,{className:$(zl,u),style:n?void 0:Bl,value:e,disabled:d,spellCheck:!1,autoComplete:`off`,"aria-label":f[`aria-label`],placeholder:f.placeholder,onChange:e=>t(e.target.value)}):v(Nl,{ref:p,...f,type:n?`text`:`password`,className:$(`h-auto bg-background py-1.5`,!s&&`pr-9`,u),value:e,disabled:d,spellCheck:!1,autoComplete:`new-password`,onChange:e=>t(e.target.value)}),!s&&c(Il,{open:a!==null,className:`absolute right-0.5 top-0.5`,children:[v(`span`,{className:`inline-flex`,title:o??void 0,children:v(jl,{type:`button`,variant:`ghost`,icon:i?Un:n?Oe:Zt,"aria-label":m,"aria-pressed":n,"aria-busy":i||void 0,disabled:d||i||o!==null,className:$(`h-6 w-6 text-foreground-subtle`,i&&`[&>svg]:animate-spin`),onClick:r})}),a!==null&&v(Rl,{role:`alert`,className:`left-auto right-0 w-max max-w-[16rem] translate-x-0 whitespace-normal bg-danger text-white`,children:a})]})]})});Vl.displayName=`PasswordInput`,E();var Hl=D(({className:e,options:t,disabled:n,...r},i)=>c(`div`,{className:`relative w-full`,children:[v(`select`,{ref:i,disabled:n,className:$(`h-7 w-full px-2.5 text-xs bg-surface border border-border rounded-md text-foreground appearance-none pr-7 focus:outline-none focus:ring-1 focus:ring-primary`,`disabled:opacity-50 disabled:cursor-not-allowed`,e),...r,children:t.map(e=>v(`option`,{value:e.value,children:e.label},e.value))}),v(`div`,{className:$(`absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-foreground-muted`,n===!0?`opacity-50`:``),children:v(de,{className:`h-3.5 w-3.5`})})]}));Hl.displayName=`Select`,E();var Ul=1e4,Wl=`••••••••`,Gl=5e3,Kl=Wn(`camstack:secret-reveal`,null);function ql({reveal:e,children:t}){return v(Kl.Provider,{value:e,children:t})}function Jl(e){return e===null||ja(e)||ca(e)}function Yl(e,t,n){return e.kind===`untouched`?t:e.text.length===0?n?ra:t:e.text===e.revealed?t:e.text}function Xl(e){return typeof e==`string`&&e.length>0?{kind:`visible`,text:e,revealed:null}:ca(e)?{kind:`visible`,text:``,revealed:null}:{kind:`untouched`}}function Zl(e,t,n,r){return e.kind===`untouched`?t?Wl:n:e.text.length===0&&t?r(`uiLibrary.configSecretField.removedOnSave`,`Removed on save`):n}function Ql({field:e,value:t,onChange:n,disabled:r,multiline:i}){let a=q(),o=I(Kl),[s]=C(()=>ja(t)?t:null),[c]=C(()=>ja(t)||ca(t)),[l,u]=C(()=>Xl(t)),[d,f]=C(!1),[p,m]=C(!1),[h,g]=C(null);b(()=>{if(h===null)return;let e=setTimeout(()=>g(null),Gl);return()=>clearTimeout(e)},[h]);let _=s?.$secret??null,y=l.kind===`untouched`&&c,x=y&&!(_!==null&&o!==null)?a(`uiLibrary.configSecretField.cannotReveal`,`This stored value cannot be revealed here — type to replace it`):null,S=e=>{let t={kind:`visible`,text:e,revealed:l.kind===`visible`?l.revealed:null};g(null),u(t),n(Yl(t,s,c))},w=()=>{if(!y){f(e=>!e);return}_===null||o===null||(g(null),m(!0),o(_).then(e=>{m(!1),u({kind:`visible`,text:e,revealed:e}),f(!0)},e=>{m(!1),g(e instanceof Error?e.message:String(e))}))},T=`label`in e?e.label:``,E=`placeholder`in e&&typeof e.placeholder==`string`?e.placeholder:``;return v(`div`,{"data-secret-field":`key`in e?e.key:void 0,children:v(Vl,{"aria-label":T,value:l.kind===`visible`?l.text:``,onValueChange:S,placeholder:Zl(l,c,E,a),shown:d,onToggleShown:w,busy:p,error:h,toggleBlockedReason:x,disabled:r,multiline:i})})}var $l=X.accessories.setChildHidden.useMutation,eu=X.accessories.getStatus.useQuery,tu=X.actions.list.useQuery,nu=X.actions.get.useQuery,ru=X.actions.run.useMutation,iu=X.actions.stop.useMutation,au=X.actions.getTraces.useQuery,ou=X.actions.create.useMutation,su=X.actions.update.useMutation,cu=X.actions.delete.useMutation,lu=X.actions.listForCamera.useQuery,uu=X.actions.getLinks.useQuery,du=X.actions.setLinks.useMutation,fu=X.actionSource.listActions.useQuery,pu=X.actionSource.runAction.useMutation,mu=X.actionSource.stopAction.useMutation,hu=X.addonPages.listPages.useQuery,gu=X.addons.list.useQuery,_u=X.addons.getLogs.useQuery,vu=X.addons.listPackages.useQuery,yu=X.addons.installPackage.useMutation,bu=X.addons.installFromWorkspace.useMutation,xu=X.addons.isWorkspaceAvailable.useQuery,Su=X.addons.listWorkspacePackages.useQuery,Cu=X.addons.uninstallPackage.useMutation,wu=X.addons.listInstallations.useQuery,Tu=X.addons.reloadPackages.useMutation,Eu=X.addons.searchAvailable.useQuery,Du=X.addons.listUpdates.useQuery,Ou=X.addons.updatePackage.useMutation,ku=X.addons.rollbackPackage.useMutation,Au=X.addons.forceRefresh.useMutation,ju=X.addons.restartServer.useMutation,Mu=X.addons.getLastRestart.useQuery,Nu=X.addons.listFrameworkPackages.useQuery,Pu=X.addons.listCapabilityProviders.useQuery,Fu=X.addons.setCapabilityProviderEnabled.useMutation,Iu=X.addons.getVersions.useQuery,Lu=X.addons.getPackageDocs.useQuery,Ru=X.addons.restartAddon.useMutation,zu=X.addons.retryLoad.useMutation,Bu=X.addons.getAutoUpdateSettings.useQuery,Vu=X.addons.setAutoUpdateSettings.useMutation,Hu=X.addons.getAddonAutoUpdate.useQuery,Uu=X.addons.setAddonAutoUpdate.useMutation,Wu=X.addons.applyAutoUpdateToAll.useMutation,Gu=X.addons.custom.useMutation,Ku=X.addons.startJob.useMutation,qu=X.addons.getJob.useQuery,Ju=X.addons.listJobs.useQuery,Yu=X.addons.cancelJob.useMutation,Xu=X.addons.onAddonLogs.useSubscription,Zu=X.addonSettings.getGlobalSettings.useQuery,Qu=X.addonSettings.updateGlobalSettings.useMutation,$u=X.addonSettings.getIntegrationSettings.useQuery,ed=X.addonSettings.getDeviceSettings.useQuery,td=X.addonSettings.updateDeviceSettings.useMutation,nd=X.addonWidgets.listWidgets.useQuery,rd=X.airQualitySensor.getStatus.useQuery,id=X.alarmPanel.arm.useMutation,ad=X.alarmPanel.disarm.useMutation,od=X.alarmPanel.trigger.useMutation,sd=X.alarmPanel.getStatus.useQuery,cd=X.alerts.emit.useMutation,ld=X.alerts.update.useMutation,ud=X.alerts.list.useQuery,dd=X.alerts.getUnreadCount.useQuery,fd=X.alerts.markRead.useMutation,pd=X.alerts.markAllRead.useMutation,md=X.alerts.dismiss.useMutation,hd=X.ambientLightSensor.getStatus.useQuery,gd=X.audioAnalysis.resolveDeviceSettings.useQuery,_d=X.audioAnalysis.getDeviceSettingsContribution.useQuery,Bee=X.audioAnalysis.getDeviceLiveContribution.useQuery,Vee=X.audioAnalysis.applyDeviceSettingsPatch.useMutation,Hee=X.audioAnalyzer.analyseChunk.useMutation,Uee=X.audioAnalyzer.classify.useQuery,Wee=X.audioAnalyzer.attachDevice.useMutation,Gee=X.audioAnalyzer.detachDevice.useMutation,Kee=X.audioAnalyzer.isReady.useQuery,qee=X.audioAnalyzer.dispose.useMutation,vd=X.audioAnalyzer.reprobeAudioEngine.useMutation,Jee=X.audioCodec.listSupportedCodecs.useQuery,Yee=X.audioCodec.canHandle.useQuery,Xee=X.audioCodec.createDecodeSession.useMutation,Zee=X.audioCodec.createEncodeSession.useMutation,Qee=X.audioCodec.closeSession.useMutation,$ee=X.audioCodec.pushEncodedFrame.useMutation,ete=X.audioCodec.pullPcm.useQuery,tte=X.audioCodec.pushPcm.useMutation,nte=X.audioCodec.pullEncoded.useQuery,rte=X.audioCodec.flushEncode.useMutation,ite=X.audioCodec.listActiveSessions.useQuery,yd=X.audioMetrics.getCurrentSnapshot.useQuery,ate=X.audioMetrics.getHistory.useQuery,ote=X.automationControl.enable.useMutation,ste=X.automationControl.disable.useMutation,cte=X.automationControl.trigger.useMutation,lte=X.automationControl.getStatus.useQuery,bd=X.backup.listDestinations.useQuery,xd=X.backup.trigger.useMutation,Sd=X.backup.listRuns.useQuery,Cd=X.backup.cancel.useMutation,ute=X.backup.list.useQuery,dte=X.backup.listLocations.useQuery,wd=X.backup.getEntries.useQuery,Td=X.backup.restore.useMutation,Ed=X.backup.getEncryption.useQuery,Dd=X.backup.setupEncryption.useMutation,Od=X.backup.disableEncryption.useMutation,fte=X.backup.checkBackupKey.useMutation,kd=X.backup.delete.useMutation,Ad=X.backup.listArchives.useQuery,pte=X.backup.upsertDestinationPolicy.useMutation,jd=X.backup.previewSchedule.useQuery,Md=X.backup.listSchedules.useQuery,Nd=X.backup.listAvailableDatabases.useQuery,Pd=X.backup.upsertSchedule.useMutation,Fd=X.backup.deleteSchedule.useMutation,mte=X.battery.wakeForStream.useMutation,hte=X.battery.getStatus.useQuery,gte=X.binary.getStatus.useQuery,_te=X.brightness.setBrightness.useMutation,vte=X.brightness.getStatus.useQuery,Id=X.broker.list.useQuery,yte=X.broker.get.useQuery,Ld=X.broker.listProviders.useQuery,Rd=X.broker.add.useMutation,zd=X.broker.remove.useMutation,Bd=X.broker.testConnection.useMutation,Vd=X.broker.getSettings.useQuery,Hd=X.broker.setSettings.useMutation,bte=X.broker.getBrokerConfig.useQuery,Ud=X.broker.getSettingsSchema.useQuery,Wd=X.broker.testSettings.useMutation,Gd=X.broker.publish.useMutation,xte=X.broker.subscribe.useMutation,Ste=X.broker.unsubscribe.useMutation,Kd=X.broker.getState.useQuery,qd=X.broker.getStatus.useQuery,Cte=X.button.press.useMutation,Jd=X.calendars.listCalendars.useQuery,Yd=X.calendars.listEvents.useQuery,Xd=X.calendars.getPreferences.useQuery,Zd=X.calendars.setCalendarPreference.useMutation,wte=X.cameraCredentials.getCredentials.useQuery,Tte=X.cameraCredentials.getStatus.useQuery,Ete=X.cameraGridLayout.getLayout.useQuery,Dte=X.cameraGridLayout.saveLayout.useMutation,Ote=X.cameraGridLayout.getDeviceSettingsContribution.useQuery,kte=X.cameraGridLayout.getDeviceLiveContribution.useQuery,Ate=X.cameraGridLayout.applyDeviceSettingsPatch.useMutation,jte=X.cameraPipelineConfig.getDeviceSettingsContribution.useQuery,Mte=X.cameraPipelineConfig.getDeviceLiveContribution.useQuery,Nte=X.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation,Pte=X.cameraStreams.getCameraStreams.useQuery,Fte=X.cameraStreams.getBrokerStreams.useQuery,Qd=X.cameraStreams.getRtspEntries.useQuery,Ite=X.cameraStreams.getProfileRtspEntries.useQuery,Lte=X.cameraStreams.pickStream.useQuery,Rte=X.carbonMonoxide.getStatus.useQuery,zte=X.climateControl.setMode.useMutation,Bte=X.climateControl.setFanMode.useMutation,Vte=X.climateControl.setPreset.useMutation,Hte=X.climateControl.setTarget.useMutation,Ute=X.climateControl.setTargetRange.useMutation,Wte=X.climateControl.setTargetHumidity.useMutation,Gte=X.climateControl.setSwingVertical.useMutation,Kte=X.climateControl.setSwingHorizontal.useMutation,qte=X.climateControl.getStatus.useQuery,Jte=X.color.setColor.useMutation,Yte=X.color.getStatus.useQuery,Xte=X.connectionTest.testSettings.useMutation,Zte=X.connectionTest.describeTest.useQuery,Qte=X.connectivity.getStatus.useQuery,$te=X.consumables.reset.useMutation,ene=X.consumables.getStatus.useQuery,tne=X.contact.getStatus.useQuery,nne=X.control.setValue.useMutation,rne=X.control.getStatus.useQuery,ine=X.coreBlocks.list.useQuery,$d=X.coreBlocks.get.useQuery,ef=X.coreBlocks.create.useMutation,tf=X.coreBlocks.update.useMutation,nf=X.coreBlocks.delete.useMutation,rf=X.coreBlocks.setEnabled.useMutation,af=X.coreBlocks.restart.useMutation,of=X.coreBlocks.compile.useMutation,sf=X.coreBlocks.getBlockSettings.useQuery,cf=X.coreBlocks.updateBlockSettings.useMutation,lf=X.coreBlocks.migrateRawSecrets.useMutation,uf=X.coreBlocks.getTypeDefs.useQuery,df=X.coreBlocks.createComposition.useMutation,ff=X.coreBlocks.updateComposition.useMutation,pf=X.coreBlocks.getComposition.useQuery,mf=X.coreBlocks.listCompositions.useQuery,hf=X.coreBlocks.getCustomization.useQuery,gf=X.coreBlocks.listComposableCaps.useQuery,_f=X.coreBlocks.validateComposition.useMutation,vf=X.coreBlocks.reportAutomationRun.useMutation,yf=X.coreBlocks.getAutomationRunState.useQuery,bf=X.coreBlocks.getTraces.useQuery,xf=X.cover.open.useMutation,Sf=X.cover.close.useMutation,Cf=X.cover.stop.useMutation,wf=X.cover.setPosition.useMutation,Tf=X.cover.setTiltPosition.useMutation,Ef=X.cover.getStatus.useQuery,Df=X.dayNight.getOptions.useQuery,Of=X.dayNight.setSettings.useMutation,kf=X.dayNight.getStatus.useQuery,Af=X.decoder.getInfo.useQuery,jf=X.decoder.reprobeHwaccel.useMutation,Mf=X.detectionPipeline.getDeviceSettingsContribution.useQuery,Nf=X.detectionPipeline.getDeviceLiveContribution.useQuery,Pf=X.detectionPipeline.applyDeviceSettingsPatch.useMutation,Ff=X.deviceAdminLink.getAdminLink.useQuery,If=X.deviceAdoption.listCandidateFilters.useQuery,Lf=X.deviceAdoption.listCandidates.useQuery,Rf=X.deviceAdoption.getCandidate.useQuery,zf=X.deviceAdoption.refresh.useMutation,Bf=X.deviceAdoption.adopt.useMutation,Vf=X.deviceAdoption.release.useMutation,Hf=X.deviceAdoption.resync.useMutation,Uf=X.deviceAdoption.getStatus.useQuery,ane=X.deviceCredentials.listDeviceCredentials.useQuery,one=X.deviceCredentials.startEnrollment.useMutation,sne=X.deviceCredentials.revokeDeviceCredential.useMutation,cne=X.deviceCredentials.getDeviceCertificateSettings.useQuery,lne=X.deviceCredentials.setDeviceCertificateSettings.useMutation,une=X.deviceCredentials.deleteDeviceCredential.useMutation,dne=X.deviceCredentials.getDeviceCaStatus.useQuery,fne=X.deviceCredentials.renameDeviceCredential.useMutation,Wf=X.deviceDiscovery.listDiscovered.useQuery,Gf=X.deviceDiscovery.refreshDiscovery.useMutation,Kf=X.deviceDiscovery.adoptDevice.useMutation,qf=X.deviceDiscovery.releaseDevice.useMutation,Jf=X.deviceDiscovery.getStatus.useQuery,Yf=X.deviceExport.getStatus.useQuery,Xf=X.deviceExport.listSupportedDeviceKinds.useQuery,Zf=X.deviceExport.listExposedDevices.useQuery,Qf=X.deviceExport.exposeDevice.useMutation,$f=X.deviceExport.unexposeDevice.useMutation,ep=X.deviceExport.getDeviceSettingsContribution.useQuery,tp=X.deviceExport.getDeviceLiveContribution.useQuery,np=X.deviceExport.applyDeviceSettingsPatch.useMutation,rp=X.deviceExtension.listSources.useQuery,ip=X.deviceExtension.listSlots.useQuery,ap=X.deviceExtension.listCandidates.useQuery,op=X.deviceExtension.setSlot.useMutation,sp=X.deviceHistory.listSeries.useQuery,cp=X.deviceHistory.listNodeSeries.useQuery,lp=X.deviceHistory.query.useQuery,up=X.deviceHistory.queryNode.useQuery,dp=X.deviceHistory.queryMany.useQuery,fp=X.deviceHistory.declareSeries.useMutation,pp=X.deviceHistory.record.useMutation,mp=X.deviceHistory.recordBuckets.useMutation,hp=X.deviceHistory.getDeviceEnabled.useQuery,gp=X.deviceHistory.setDeviceEnabled.useMutation,_p=X.deviceHistory.getStatus.useQuery,vp=X.deviceHistory.listOrphanSeries.useQuery,yp=X.deviceHistory.deleteOrphanSeries.useMutation,bp=X.deviceManager.allocateDeviceId.useMutation,xp=X.deviceManager.migrateDevice.useMutation,Sp=X.deviceManager.registerDevice.useMutation,Cp=X.deviceManager.removeDevice.useMutation,wp=X.deviceManager.persistConfig.useMutation,Tp=X.deviceManager.loadConfig.useQuery,Ep=X.deviceManager.loadRuntimeState.useQuery,Dp=X.deviceManager.loadMeta.useQuery,Op=X.deviceManager.setName.useMutation,kp=X.deviceManager.setLocation.useMutation,Ap=X.deviceManager.setType.useMutation,jp=X.deviceManager.setIntegrationId.useMutation,Mp=X.deviceManager.setLinkDeviceId.useMutation,Np=X.deviceManager.setPrimaryChildEntityId.useMutation,Pp=X.deviceManager.setChildLayout.useMutation,Fp=X.deviceManager.setDisplay.useMutation,Ip=X.deviceManager.getRoleDisplayDefaults.useQuery,Lp=X.deviceManager.setRoleDisplayDefaults.useMutation,Rp=X.deviceManager.getWireableFields.useQuery,zp=X.deviceManager.setRole.useMutation,Bp=X.deviceManager.applyInitialMeta.useMutation,Vp=X.deviceManager.setMetadata.useMutation,Hp=X.deviceManager.listLocations.useQuery,Up=X.deviceManager.addLocation.useMutation,Wp=X.deviceManager.removeLocation.useMutation,Gp=X.deviceManager.renameLocation.useMutation,Kp=X.deviceManager.listLocationIcons.useQuery,qp=X.deviceManager.setLocationIcon.useMutation,Jp=X.deviceManager.listLocationDescriptions.useQuery,Yp=X.deviceManager.setLocationDescription.useMutation,Xp=X.deviceManager.listSiteZones.useQuery,Zp=X.deviceManager.setSiteZone.useMutation,Qp=X.deviceManager.removeSiteZone.useMutation,$p=X.deviceManager.renameSiteZone.useMutation,em=X.deviceManager.setLocationZone.useMutation,pne=X.deviceManager.setDisabled.useMutation,tm=X.deviceManager.listPersistedByAddon.useQuery,nm=X.deviceManager.listAll.useQuery,rm=X.deviceManager.getDevice.useQuery,im=X.deviceManager.getChildren.useQuery,mne=X.deviceManager.getChildrenBatch.useQuery,hne=X.deviceManager.getLinkedDevices.useQuery,gne=X.deviceManager.getLinkedDevicesBatch.useQuery,_ne=X.deviceManager.getStreamSources.useQuery,vne=X.deviceManager.getConfigSchema.useQuery,yne=X.deviceManager.getSettingsSchema.useQuery,bne=X.deviceManager.updateConfig.useMutation,am=X.deviceManager.enable.useMutation,om=X.deviceManager.disable.useMutation,sm=X.deviceManager.remove.useMutation,xne=X.deviceManager.listDeletedSince.useQuery,cm=X.deviceManager.cleanupDeletedDevicesData.useMutation,Sne=X.deviceManager.removeByIntegration.useMutation,Cne=X.deviceManager.getStreamProfileMap.useQuery,wne=X.deviceManager.setStreamProfileMap.useMutation,Tne=X.deviceManager.probeStreams.useMutation,lm=X.deviceManager.getBindings.useQuery,um=X.deviceManager.getBindingsBatch.useQuery,dm=X.deviceManager.getAllBindings.useQuery,fm=X.deviceManager.listDeviceIdsByCaps.useQuery,pm=X.deviceManager.setWrapperActive.useMutation,mm=X.deviceManager.getWrapperActivation.useQuery,hm=X.deviceManager.listWrappersForCap.useQuery,gm=X.deviceManager.listBindableCapsForDeviceType.useQuery,_m=X.deviceManager.getDeviceSettingsAggregate.useQuery,vm=X.deviceManager.getDeviceLiveInfoAggregate.useQuery,ym=X.deviceManager.getDeviceAggregate.useQuery,bm=X.deviceManager.runDeviceAction.useMutation,xm=X.deviceManager.updateDeviceField.useMutation,Sm=X.deviceManager.updateDeviceFieldsBatch.useMutation,Cm=X.deviceManager.discoverDevices.useMutation,wm=X.deviceManager.adoptDevice.useMutation,Tm=X.deviceManager.getCreationSchema.useQuery,Em=X.deviceManager.createDevice.useMutation,Dm=X.deviceManager.testCreationField.useMutation,Om=X.deviceManager.adoptionListCandidateFilters.useQuery,km=X.deviceManager.adoptionListCandidates.useQuery,Am=X.deviceManager.adoptionRefresh.useMutation,jm=X.deviceManager.adoptionAdopt.useMutation,Mm=X.deviceManager.adoptionRelease.useMutation,Nm=X.deviceManager.adoptionStartJob.useMutation,Pm=X.deviceManager.adoptionListJobs.useQuery,Fm=X.deviceManager.adoptionCancelJob.useMutation,Im=X.deviceManager.adoptionResync.useMutation,Lm=X.deviceManager.discoveryProviders.useQuery,Rm=X.deviceManager.discoverAllProviders.useMutation,zm=X.deviceManager.discoverProvider.useMutation,Bm=X.deviceManager.providerCreationType.useQuery,Vm=X.deviceManager.providerDiscoveryParamsSchema.useQuery,Hm=X.deviceManager.testField.useMutation,Um=X.deviceManager.getDeviceStatusAggregate.useQuery,Wm=X.deviceManager.getDeviceStatusAggregateBatch.useQuery,Gm=X.deviceOps.getStreamSources.useQuery,Km=X.deviceOps.getConfigEntries.useQuery,qm=X.deviceOps.setConfig.useMutation,Jm=X.deviceOps.runAction.useMutation,Ym=X.deviceOps.removeDevice.useMutation,Xm=X.deviceOps.getSettingsSchema.useQuery,Zm=X.deviceOps.getRawState.useQuery,Qm=X.deviceProvider.start.useMutation,$m=X.deviceProvider.stop.useMutation,eh=X.deviceProvider.getStatus.useQuery,th=X.deviceProvider.getDevices.useQuery,nh=X.deviceProvider.reloadDevice.useMutation,rh=X.deviceProvider.supportsDiscovery.useQuery,ih=X.deviceProvider.discoverDevices.useMutation,ah=X.deviceProvider.getDiscoveryParamsSchema.useQuery,oh=X.deviceProvider.getManualCreationType.useQuery,sh=X.deviceProvider.adoptDiscoveredDevice.useMutation,ch=X.deviceProvider.supportsManualCreation.useQuery,lh=X.deviceProvider.getChildCreationSchema.useQuery,uh=X.deviceProvider.createDevice.useMutation,dh=X.deviceProvider.testCreationField.useMutation,fh=X.deviceState.getSnapshot.useQuery,ph=X.deviceState.getCapSlice.useQuery,mh=X.deviceState.getAllSnapshots.useQuery,hh=X.deviceState.setCapSlice.useMutation,gh=X.deviceState.claimFields.useMutation,_h=X.deviceState.patchOwnedFields.useMutation,vh=X.deviceState.releaseClaim.useMutation,yh=X.deviceState.listClaims.useQuery,bh=X.deviceState.getNativeCapSlice.useQuery,xh=X.deviceStatus.getStatus.useQuery,Sh=X.dishwasher.start.useMutation,Ch=X.dishwasher.pause.useMutation,wh=X.dishwasher.resume.useMutation,Th=X.dishwasher.stop.useMutation,Eh=X.dishwasher.setProgram.useMutation,Dh=X.dishwasher.setPower.useMutation,Oh=X.dishwasher.setHalfLoad.useMutation,kh=X.dishwasher.setHygienePlus.useMutation,Ah=X.dishwasher.setExtraDry.useMutation,jh=X.dishwasher.setIntensiveZone.useMutation,Mh=X.dishwasher.setVarioSpeedPlus.useMutation,Nh=X.dishwasher.setChildLock.useMutation,Ph=X.dishwasher.setOption.useMutation,Fh=X.dishwasher.getOptions.useQuery,Ih=X.dishwasher.getStatus.useQuery,Lh=X.displayPalette.getPalette.useQuery,Rh=X.displayPalette.listPresets.useQuery,zh=X.displayPalette.setPalette.useMutation,Bh=X.doorbell.getStatus.useQuery,Vh=X.enumSensor.getStatus.useQuery,Hh=X.eventEmitter.getStatus.useQuery,Uh=X.faceGallery.listIdentities.useQuery,Wh=X.faceGallery.createIdentity.useMutation,Gh=X.faceGallery.renameIdentity.useMutation,Kh=X.faceGallery.deleteIdentity.useMutation,qh=X.faceGallery.listIdentitySamples.useQuery,Jh=X.faceGallery.auditIdentitySamples.useQuery,Yh=X.faceGallery.removeSample.useMutation,Xh=X.faceGallery.listRecentFaces.useQuery,Zh=X.faceGallery.getFaceByTrack.useQuery,Qh=X.faceGallery.getFaceMedia.useQuery,$h=X.faceGallery.assignFace.useMutation,eg=X.faceGallery.unassignFace.useMutation,tg=X.faceGallery.deleteFace.useMutation,ng=X.faceGallery.assignFaces.useMutation,rg=X.faceGallery.unassignFaces.useMutation,ig=X.faceGallery.suggestFaceClusters.useQuery,ag=X.fanControl.setPercentage.useMutation,og=X.fanControl.setPreset.useMutation,sg=X.fanControl.setDirection.useMutation,cg=X.fanControl.setOscillating.useMutation,lg=X.fanControl.getStatus.useQuery,ug=X.featureProbe.getStatus.useQuery,dg=X.flood.getStatus.useQuery,fg=X.gas.getStatus.useQuery,pg=X.groupActive.getStatus.useQuery,mg=X.groupCommands.getStatus.useQuery,hg=X.groupStatus.getStatus.useQuery,gg=X.heatingValve.getStatus.useQuery,_g=X.humidifier.setOn.useMutation,vg=X.humidifier.setTargetHumidity.useMutation,yg=X.humidifier.setMode.useMutation,bg=X.humidifier.getStatus.useQuery,xg=X.humiditySensor.getStatus.useQuery,Sg=X.image.getStatus.useQuery,Cg=X.imageSettings.getOptions.useQuery,wg=X.imageSettings.setSettings.useMutation,Tg=X.imageSettings.getStatus.useQuery,Eg=X.integrations.list.useQuery,Dg=X.integrations.get.useQuery,Og=X.integrations.getByAddonId.useQuery,kg=X.integrations.create.useMutation,Ag=X.integrations.update.useMutation,jg=X.integrations.delete.useMutation,Mg=X.integrations.getSettings.useQuery,Ng=X.integrations.setSettings.useMutation,Pg=X.integrations.getAvailableTypes.useQuery,Fg=X.integrations.testConnection.useMutation,Ig=X.intercom.startSession.useMutation,Lg=X.intercom.handleAnswer.useMutation,Rg=X.intercom.stopSession.useMutation,zg=X.intercom.startTalkSession.useMutation,Bg=X.intercom.pushTalkAudio.useMutation,Vg=X.intercom.endTalkSession.useMutation,Hg=X.intercom.getStatus.useQuery,Ug=X.irTransmitter.send.useMutation,Wg=X.irTransmitter.getInfo.useQuery,Gg=X.keychainAdmin.status.useQuery,Kg=X.keychainAdmin.listSecrets.useQuery,qg=X.keychainAdmin.listAudit.useQuery,Jg=X.keychainAdmin.reveal.useMutation,Yg=X.keychainAdmin.setSystemSecret.useMutation,Xg=X.keychainAdmin.importSecret.useMutation,Zg=X.keychainAdmin.deleteOrphans.useMutation,Qg=X.keychainAdmin.rotateMasterKey.useMutation,$g=X.keychainAdmin.purgeRetiredKeys.useMutation,e_=X.keychainAdmin.downloadRecoveryKey.useMutation,t_=X.keychainAdmin.resetKeychain.useMutation,n_=X.keychainAdmin.resetReport.useQuery,r_=X.keychainAdmin.acknowledgeReset.useMutation,i_=X.lawnMowerControl.startMowing.useMutation,a_=X.lawnMowerControl.pause.useMutation,o_=X.lawnMowerControl.dock.useMutation,s_=X.lawnMowerControl.getStatus.useQuery,c_=X.llm.generate.useMutation,l_=X.llm.generateVision.useMutation,u_=X.llm.cancel.useMutation,d_=X.llm.listProfileKinds.useQuery,f_=X.llm.listProfiles.useQuery,p_=X.llm.upsertProfile.useMutation,m_=X.llm.migrateRawSecrets.useMutation,h_=X.llm.deleteProfile.useMutation,g_=X.llm.testProfile.useMutation,__=X.llm.listModels.useMutation,v_=X.llm.getDefaults.useQuery,y_=X.llm.setDefault.useMutation,b_=X.llm.getUsage.useQuery,x_=X.llm.listModelCatalog.useQuery,S_=X.llm.listRuntimeNodes.useQuery,C_=X.llm.listNodeModels.useQuery,w_=X.llm.resolveModelRef.useMutation,T_=X.llm.installModel.useMutation,Ene=X.llm.deleteModel.useMutation,Dne=X.llm.getRuntimeStatus.useQuery,One=X.llm.startRuntime.useMutation,kne=X.llm.stopRuntime.useMutation,E_=X.localNetwork.list.useQuery,Ane=X.localNetwork.getPreferred.useQuery,D_=X.localNetwork.getConnectionEndpoints.useQuery,jne=X.localNetwork.getNotificationEndpoint.useQuery,Mne=X.localNetwork.setNotificationEndpoint.useMutation,Nne=X.localNetwork.getViewerEndpoints.useQuery,Pne=X.localNetwork.setViewerEndpoints.useMutation,O_=X.localNetwork.getAddresses.useQuery,k_=X.localNetwork.addCustomAddress.useMutation,A_=X.localNetwork.removeCustomAddress.useMutation,j_=X.localNetwork.setAddressRole.useMutation,Fne=X.localNetwork.getHubAddresses.useQuery,M_=X.localNetwork.getAllowedAddresses.useQuery,N_=X.localNetwork.setAllowedAddresses.useMutation,P_=X.localNetwork.resetAllowlistToBestMatch.useMutation,F_=X.localNetwork.getTlsStatus.useQuery,I_=X.localNetwork.regenerateCertificate.useMutation,L_=X.localNetwork.uploadCertificate.useMutation,Ine=X.localNetwork.downloadCa.useQuery,R_=X.localNetwork.useStoredUploadedCertificate.useMutation,z_=X.localNetwork.revertToGeneratedCertificate.useMutation,B_=X.lockControl.lock.useMutation,V_=X.lockControl.unlock.useMutation,Lne=X.lockControl.open.useMutation,Rne=X.lockControl.getStatus.useQuery,zne=X.mediaPlayer.play.useMutation,Bne=X.mediaPlayer.pause.useMutation,Vne=X.mediaPlayer.stop.useMutation,Hne=X.mediaPlayer.next.useMutation,Une=X.mediaPlayer.previous.useMutation,Wne=X.mediaPlayer.seek.useMutation,Gne=X.mediaPlayer.setVolume.useMutation,Kne=X.mediaPlayer.setMute.useMutation,qne=X.mediaPlayer.setShuffle.useMutation,Jne=X.mediaPlayer.setRepeat.useMutation,Yne=X.mediaPlayer.selectSource.useMutation,Xne=X.mediaPlayer.playMedia.useMutation,Zne=X.mediaPlayer.getStatus.useQuery,H_=X.meshNetwork.getStatus.useQuery,Qne=X.meshNetwork.join.useMutation,U_=X.meshNetwork.startLogin.useMutation,W_=X.meshNetwork.leave.useMutation,G_=X.meshNetwork.logout.useMutation,K_=X.meshNetwork.listPeers.useQuery,$ne=X.meshNetwork.testConnection.useMutation,ere=X.meter.getStatus.useQuery,tre=X.metricsProvider.collectSnapshot.useQuery,nre=X.metricsProvider.getCached.useQuery,rre=X.metricsProvider.getCurrent.useQuery,ire=X.metricsProvider.getDiskSpace.useQuery,are=X.metricsProvider.getGpuInfo.useQuery,ore=X.metricsProvider.getCpuTemperature.useQuery,sre=X.metricsProvider.getProcessStats.useQuery,cre=X.metricsProvider.listAddonInstances.useQuery,lre=X.metricsProvider.getAddonStats.useQuery,q_=X.metricsProvider.listNodeProcesses.useQuery,J_=X.metricsProvider.getLoadSeries.useQuery,ure=X.motion.isDetected.useQuery,dre=X.motion.getStatus.useQuery,fre=X.motionDetection.analyze.useMutation,pre=X.motionDetection.removeCamera.useMutation,mre=X.motionDetection.reset.useMutation,hre=X.motionDetection.getDeviceSettingsContribution.useQuery,gre=X.motionDetection.getDeviceLiveContribution.useQuery,_re=X.motionDetection.applyDeviceSettingsPatch.useMutation,vre=X.motionTrigger.setMotionTrigger.useMutation,yre=X.motionTrigger.getStatus.useQuery,bre=X.motionZones.getOptions.useQuery,xre=X.motionZones.setZone.useMutation,Sre=X.motionZones.getStatus.useQuery,Cre=X.mqttBroker.listBrokers.useQuery,wre=X.mqttBroker.getBrokerConfig.useQuery,Tre=X.mqttBroker.addBroker.useMutation,Ere=X.mqttBroker.removeBroker.useMutation,Dre=X.mqttBroker.testConnection.useMutation,Ore=X.mqttBroker.startEmbeddedBroker.useMutation,Y_=X.mqttBroker.stopEmbeddedBroker.useMutation,X_=X.mqttBroker.getStatus.useQuery,Z_=X.nativeObjectDetection.getOptions.useQuery,Q_=X.nativeObjectDetection.setSettings.useMutation,$_=X.nativeObjectDetection.setEnabled.useMutation,ev=X.nativeObjectDetection.getStatus.useQuery,tv=X.navigation.move.useMutation,nv=X.navigation.stop.useMutation,rv=X.navigation.goToPoint.useMutation,iv=X.navigation.listActions.useQuery,av=X.navigation.runAction.useMutation,ov=X.navigation.playSound.useMutation,sv=X.navigation.setLightOn.useMutation,cv=X.navigation.setLightMode.useMutation,lv=X.navigation.setLightLevel.useMutation,uv=X.navigation.getFeatures.useQuery,dv=X.navigation.getStatus.useQuery,fv=X.networkAccess.start.useMutation,pv=X.networkAccess.stop.useMutation,mv=X.networkAccess.getEndpoint.useQuery,hv=X.networkAccess.getStatus.useQuery,gv=X.networkAccess.listEndpoints.useQuery,_v=X.networkLink.getStatus.useQuery,vv=X.networkQuality.getDeviceStats.useQuery,yv=X.networkQuality.getAllStats.useQuery,bv=X.networkQuality.reportClientStats.useMutation,xv=X.nodes.topology.useQuery,Sv=X.nodes.directory.useQuery,Cv=X.nodes.deployAddon.useMutation,wv=X.nodes.undeployAddon.useMutation,Tv=X.nodes.restartAddon.useMutation,Ev=X.nodes.restartProcess.useMutation,Dv=X.nodes.restartNode.useMutation,Ov=X.nodes.shutdownNode.useMutation,kv=X.nodes.renameNode.useMutation,Av=X.nodes.clusterAddonStatus.useQuery,jv=X.nodes.getCapUsageGraph.useQuery,Mv=X.nodes.getNodeAddons.useQuery,Nv=X.nodes.setProcessLogLevel.useMutation,Pv=X.nodes.executeQuery.useMutation,Fv=X.notificationOutput.listTargetKinds.useQuery,Iv=X.notificationOutput.listTargets.useQuery,Lv=X.notificationOutput.getTarget.useQuery,Rv=X.notificationOutput.discoverTargets.useQuery,zv=X.notificationOutput.probeTargetConfig.useMutation,Bv=X.notificationOutput.send.useMutation,Vv=X.notificationOutput.testTarget.useMutation,Hv=X.notificationOutput.upsertTarget.useMutation,Uv=X.notificationOutput.deleteTarget.useMutation,Wv=X.notificationOutput.setTargetEnabled.useMutation,Gv=X.notificationRules.listRules.useQuery,Kv=X.notificationRules.getRule.useQuery,qv=X.notificationRules.createRule.useMutation,Jv=X.notificationRules.updateRule.useMutation,Yv=X.notificationRules.deleteRule.useMutation,Xv=X.notificationRules.setRuleEnabled.useMutation,Zv=X.notificationRules.listSequences.useQuery,Qv=X.notificationRules.getSequence.useQuery,$v=X.notificationRules.createSequence.useMutation,ey=X.notificationRules.updateSequence.useMutation,ty=X.notificationRules.deleteSequence.useMutation,ny=X.notificationRules.getClipRetentionAsks.useQuery,ry=X.notificationRules.listDeviceMutes.useQuery,iy=X.notificationRules.setDeviceMuted.useMutation,ay=X.notificationRules.testRule.useMutation,oy=X.notificationRules.previewStateSummary.useMutation,sy=X.notificationRules.getConditionCatalog.useQuery,cy=X.notificationRules.getTemplateCatalog.useQuery,ly=X.notificationRules.previewTemplate.useMutation,uy=X.notificationRules.getHistory.useQuery,dy=X.notificationRules.getRuleLastRuns.useQuery,fy=X.notificationRules.resolveArtifactUrl.useQuery,py=X.notificationRules.listSnoozes.useQuery,my=X.notificationRules.createSnooze.useMutation,hy=X.notificationRules.cancelSnooze.useMutation,gy=X.notificationRules.getAlarmConfig.useQuery,_y=X.notificationRules.setAlarmConfig.useMutation,vy=X.notificationRules.createAlarmProfile.useMutation,yy=X.notificationRules.renameAlarmProfile.useMutation,by=X.notificationRules.deleteAlarmProfile.useMutation,xy=X.notificationRules.activateAlarmProfile.useMutation,Sy=X.notificationRules.getAlarmSensors.useQuery,Cy=X.notifier.send.useMutation,wy=X.notifier.cancel.useMutation,Ty=X.notifier.getStatus.useQuery,Ey=X.numericSensor.getStatus.useQuery,Dy=X.oidcConnections.connectionFormSchema.useQuery,Oy=X.oidcConnections.listConnections.useQuery,ky=X.oidcConnections.createConnection.useMutation,Ay=X.oidcConnections.updateConnection.useMutation,jy=X.oidcConnections.deleteConnection.useMutation,My=X.osd.setOverlay.useMutation,Ny=X.osd.getStatus.useQuery,Py=X.osdManager.getDeviceOsd.useQuery,Fy=X.osdManager.getSourceCatalog.useQuery,Iy=X.osdManager.getConditionSupport.useQuery,Ly=X.osdManager.setSlotBinding.useMutation,Ry=X.osdManager.clearSlotBinding.useMutation,zy=X.osdManager.setSlotCameraEnabled.useMutation,By=X.osdManager.copyDeviceConfiguration.useMutation,Vy=X.osdManager.previewSlot.useMutation,Hy=X.osdManager.renderDevice.useMutation,Uy=X.osdManager.listTemplates.useQuery,Wy=X.osdManager.upsertTemplate.useMutation,Gy=X.osdManager.deleteTemplate.useMutation,Ky=X.petFeeder.feed.useMutation,qy=X.petFeeder.cancelFeed.useMutation,Jy=X.petFeeder.resetDesiccant.useMutation,Yy=X.petFeeder.markFoodReplenished.useMutation,Xy=X.petFeeder.callPet.useMutation,Zy=X.petFeeder.playSound.useMutation,Qy=X.petFeeder.setChildLock.useMutation,$y=X.petFeeder.setIndicatorLight.useMutation,eb=X.petFeeder.setFeedSound.useMutation,tb=X.petFeeder.setVolume.useMutation,nb=X.petFeeder.getStatus.useQuery,rb=X.pipelineAnalytics.getActiveTracks.useQuery,ib=X.pipelineAnalytics.getTrack.useQuery,ab=X.pipelineAnalytics.listTracks.useQuery,ob=X.pipelineAnalytics.listRecentTracks.useQuery,sb=X.pipelineAnalytics.clearTracks.useMutation,cb=X.pipelineAnalytics.getMotionEvents.useQuery,lb=X.pipelineAnalytics.getObjectEvents.useQuery,ub=X.pipelineAnalytics.getAudioEvents.useQuery,db=X.pipelineAnalytics.listEventKinds.useQuery,fb=X.pipelineAnalytics.listEventKindsBatch.useQuery,pb=X.pipelineAnalytics.getSensorEvents.useQuery,mb=X.pipelineAnalytics.getKeyEvents.useQuery,hb=X.pipelineAnalytics.getKeyEventsBatch.useQuery,gb=X.pipelineAnalytics.readLongTermSeries.useQuery,_b=X.pipelineAnalytics.getEventDensity.useQuery,vb=X.pipelineAnalytics.getEventDensityBatch.useQuery,yb=X.pipelineAnalytics.pruneEventsBefore.useMutation,bb=X.pipelineAnalytics.pruneTracksBefore.useMutation,xb=X.pipelineAnalytics.wipeAllAnalytics.useMutation,Sb=X.pipelineAnalytics.reconcileFromDisk.useMutation,Cb=X.pipelineAnalytics.deleteTracks.useMutation,wb=X.pipelineAnalytics.setTrackFlags.useMutation,Tb=X.pipelineAnalytics.listArchivedDebugNotes.useQuery,Eb=X.pipelineAnalytics.setTrackRelation.useMutation,Db=X.pipelineAnalytics.clearTrackRelation.useMutation,Ob=X.pipelineAnalytics.setTrackPurity.useMutation,kb=X.pipelineAnalytics.listTrackRelations.useQuery,Ab=X.pipelineAnalytics.listBirthDecisions.useQuery,jb=X.pipelineAnalytics.getEventStoreFootprint.useQuery,Mb=X.pipelineAnalytics.getEventMediaFootprintByKind.useQuery,Nb=X.pipelineAnalytics.pruneEvents.useMutation,Pb=X.pipelineAnalytics.deleteDeviceEvents.useMutation,Fb=X.pipelineAnalytics.pauseForStorageMigration.useMutation,Ib=X.pipelineAnalytics.resumeForStorageMigration.useMutation,Lb=X.pipelineAnalytics.refreshStorageLocationsForMigration.useMutation,Rb=X.pipelineAnalytics.startStorageMigrationMove.useMutation,zb=X.pipelineAnalytics.getStorageMigrationMoveStatus.useQuery,Bb=X.pipelineAnalytics.cancelStorageMigrationMove.useMutation,Vb=X.pipelineAnalytics.relocateMedia.useMutation,Hb=X.pipelineAnalytics.countUnstampedEventMedia.useQuery,Ub=X.pipelineAnalytics.countRelocatableMedia.useQuery,Wb=X.pipelineAnalytics.listRelocateMediaJobs.useQuery,Gb=X.pipelineAnalytics.cancelRelocateMedia.useMutation,Kb=X.pipelineAnalytics.listOpsLog.useQuery,qb=X.pipelineAnalytics.reclaimDebugMedia.useMutation,Jb=X.pipelineAnalytics.getMediaReclaimStatus.useQuery,Yb=X.pipelineAnalytics.getTrainingExportSummary.useQuery,Xb=X.pipelineAnalytics.getTrainingExportUrl.useQuery,Zb=X.pipelineAnalytics.listRetrainStaging.useQuery,Qb=X.pipelineAnalytics.listRetrainCorpusPage.useQuery,$b=X.pipelineAnalytics.getRetrainCorpusKpi.useQuery,ex=X.pipelineAnalytics.listRetrainFrames.useQuery,tx=X.pipelineAnalytics.selectRetrainFrames.useMutation,nx=X.pipelineAnalytics.deselectRetrainFrame.useMutation,rx=X.pipelineAnalytics.getRetrainFrameImage.useQuery,ix=X.pipelineAnalytics.proposeRetrainAnnotations.useMutation,ax=X.pipelineAnalytics.listRetrainAnnotations.useQuery,ox=X.pipelineAnalytics.saveRetrainAnnotations.useMutation,sx=X.pipelineAnalytics.backfillRetrainOrigins.useMutation,cx=X.pipelineAnalytics.completeRetrainTrack.useMutation,lx=X.pipelineAnalytics.restageRetrainTrack.useMutation,ux=X.pipelineAnalytics.getRetrainExportUrl.useQuery,dx=X.pipelineAnalytics.setRetrainFrameComplete.useMutation,fx=X.pipelineAnalytics.writeRetrainArchive.useMutation,px=X.pipelineAnalytics.offerRetrainArchive.useMutation,mx=X.pipelineAnalytics.listRetrainAssistProfiles.useQuery,hx=X.pipelineAnalytics.proposeRetrainAnnotationsWithLlm.useMutation,gx=X.pipelineAnalytics.createRetrainCollection.useMutation,_x=X.pipelineAnalytics.listRetrainCollections.useQuery,vx=X.pipelineAnalytics.resolveRetrainTrainingCorpus.useQuery,yx=X.pipelineAnalytics.renameRetrainCollection.useMutation,bx=X.pipelineAnalytics.deleteRetrainCollection.useMutation,xx=X.pipelineAnalytics.addRetrainFrameFromRecording.useMutation,Sx=X.pipelineAnalytics.addRetrainFramesToCollection.useMutation,Cx=X.pipelineAnalytics.removeRetrainFrameFromCollection.useMutation,wx=X.pipelineAnalytics.listRetrainCollectionFrames.useQuery,Tx=X.pipelineAnalytics.getEventMedia.useQuery,Ex=X.pipelineAnalytics.getTrackMedia.useQuery,Dx=X.pipelineAnalytics.listTrackMedia.useQuery,Ox=X.pipelineAnalytics.listEventMedia.useQuery,kx=X.pipelineAnalytics.ownersWithMedia.useQuery,Ax=X.pipelineAnalytics.searchObjectEvents.useQuery,jx=X.pipelineAnalytics.wipeObjectEmbeddings.useMutation,Mx=X.pipelineAnalytics.rebuildObjectEmbeddings.useMutation,Nx=X.pipelineAnalytics.getObjectEmbeddingRebuildStatus.useQuery,Px=X.pipelineAnalytics.getDeviceSettingsContribution.useQuery,Fx=X.pipelineAnalytics.getDeviceLiveContribution.useQuery,Ix=X.pipelineAnalytics.applyDeviceSettingsPatch.useMutation,Lx=X.pipelineExecutor.getAvailableEngines.useQuery,Rx=X.pipelineExecutor.getSelectedEngine.useQuery,zx=X.pipelineExecutor.getEngineProvisioning.useQuery,Bx=X.pipelineExecutor.getVideoPipelineSteps.useQuery,Vx=X.pipelineExecutor.setVideoPipelineSteps.useMutation,Hx=X.pipelineExecutor.getInferenceDeviceHealth.useQuery,Ux=X.pipelineExecutor.rearmInferenceDevice.useMutation,Wx=X.pipelineExecutor.getSchema.useQuery,Gx=X.pipelineExecutor.getOrchestratorConfigSchema.useQuery,Kx=X.pipelineExecutor.validatePipeline.useQuery,qx=X.pipelineExecutor.getCapabilities.useQuery,Jx=X.pipelineExecutor.getAddonModels.useQuery,Yx=X.pipelineExecutor.downloadModel.useMutation,Xx=X.pipelineExecutor.deleteModel.useMutation,Zx=X.pipelineExecutor.runPipeline.useMutation,Qx=X.pipelineExecutor.runPipelineBatch.useMutation,$x=X.pipelineExecutor.cacheFrameInPool.useMutation,eS=X.pipelineExecutor.inferCached.useMutation,tS=X.pipelineExecutor.uncacheFrame.useMutation,nS=X.pipelineExecutor.getEffectiveTuning.useQuery,rS=X.pipelineExecutor.listLoadedEngines.useQuery,iS=X.pipelineExecutor.spinEngine.useMutation,aS=X.pipelineExecutor.killEngine.useMutation,oS=X.pipelineExecutor.listReferenceImages.useQuery,sS=X.pipelineExecutor.getReferenceImage.useQuery,cS=X.pipelineExecutor.getReferenceAudioFiles.useQuery,lS=X.pipelineExecutor.getReferenceAudio.useQuery,uS=X.pipelineExecutor.getAudioCapabilities.useQuery,dS=X.pipelineExecutor.runAudioTest.useMutation,fS=X.pipelineExecutor.getDetectionConfigSchema.useQuery,pS=X.pipelineOrchestrator.requestOccupancyLook.useMutation,mS=X.pipelineOrchestrator.pauseForStorageMigration.useMutation,hS=X.pipelineOrchestrator.resumeForStorageMigration.useMutation,gS=X.pipelineOrchestrator.assignPipeline.useMutation,_S=X.pipelineOrchestrator.unassignPipeline.useMutation,vS=X.pipelineOrchestrator.setPipelineDevicePin.useMutation,yS=X.pipelineOrchestrator.getPipelineDevicePin.useQuery,bS=X.pipelineOrchestrator.rebalance.useMutation,xS=X.pipelineOrchestrator.getPipelineAssignments.useQuery,SS=X.pipelineOrchestrator.getPipelineAssignment.useQuery,CS=X.pipelineOrchestrator.getAgentLoad.useQuery,wS=X.pipelineOrchestrator.getClusterModelChoice.useQuery,TS=X.pipelineOrchestrator.getGlobalMetrics.useQuery,ES=X.pipelineOrchestrator.getCameraMetrics.useQuery,DS=X.pipelineOrchestrator.getCapabilityBindings.useQuery,OS=X.pipelineOrchestrator.setCapabilityBinding.useMutation,kS=X.pipelineOrchestrator.getIngestOwner.useQuery,AS=X.pipelineOrchestrator.assignAudio.useMutation,jS=X.pipelineOrchestrator.unassignAudio.useMutation,MS=X.pipelineOrchestrator.getAudioAssignment.useQuery,NS=X.pipelineOrchestrator.getAudioNodeLoad.useQuery,PS=X.pipelineOrchestrator.getAudioAssignments.useQuery,FS=X.pipelineOrchestrator.getAgentSettings.useQuery,IS=X.pipelineOrchestrator.listAgentSettings.useQuery,LS=X.pipelineOrchestrator.removeAgentSettings.useMutation,RS=X.pipelineOrchestrator.setAgentMaxCameras.useMutation,zS=X.pipelineOrchestrator.setAgentCapabilities.useMutation,BS=X.pipelineOrchestrator.setAgentDecodeLimits.useMutation,VS=X.pipelineOrchestrator.setAgentReachableHost.useMutation,HS=X.pipelineOrchestrator.setAgentInferenceDevices.useMutation,US=X.pipelineOrchestrator.setNodeStepSettings.useMutation,WS=X.pipelineOrchestrator.getNodeInferenceDevices.useQuery,GS=X.pipelineOrchestrator.forgetInferenceDevice.useMutation,KS=X.pipelineOrchestrator.resetNodePipelineDefaults.useMutation,qS=X.pipelineOrchestrator.planAutoTune.useQuery,JS=X.pipelineOrchestrator.applyAutoTune.useMutation,YS=X.pipelineOrchestrator.setLoadBalancingShares.useMutation,XS=X.pipelineOrchestrator.getPlacementStats.useQuery,ZS=X.pipelineOrchestrator.suggestShares.useQuery,QS=X.pipelineOrchestrator.getEffectiveShares.useQuery,$S=X.pipelineOrchestrator.setShareSource.useMutation,eC=X.pipelineOrchestrator.getNodeBenchmarkPreflight.useQuery,tC=X.pipelineOrchestrator.startNodeBenchmark.useMutation,nC=X.pipelineOrchestrator.getNodeBenchmarkStatus.useQuery,rC=X.pipelineOrchestrator.abortNodeBenchmark.useMutation,iC=X.pipelineOrchestrator.getNodeBenchmarkCandidates.useQuery,aC=X.pipelineOrchestrator.listNodeBenchmarkResults.useQuery,oC=X.pipelineOrchestrator.deleteNodeBenchmarkResult.useMutation,sC=X.pipelineOrchestrator.getCameraSettings.useQuery,cC=X.pipelineOrchestrator.setCameraStepToggle.useMutation,lC=X.pipelineOrchestrator.getCameraDetectionSource.useQuery,uC=X.pipelineOrchestrator.setCameraDetectionSource.useMutation,dC=X.pipelineOrchestrator.setCameraStepSettings.useMutation,fC=X.pipelineOrchestrator.resolvePipeline.useQuery,pC=X.pipelineOrchestrator.getCameraSwitches.useQuery,mC=X.pipelineOrchestrator.setCameraSwitch.useMutation,hC=X.pipelineOrchestrator.getCameraStatus.useQuery,gC=X.pipelineOrchestrator.getCameraStatuses.useQuery,_C=X.pipelineOrchestrator.setCameraSensors.useMutation,vC=X.pipelineOrchestrator.reconcileFromDisk.useMutation,yC=X.pipelineOrchestrator.getReconcileFromDiskStatus.useQuery,bC=X.pipelineOrchestrator.getDeviceSettingsContribution.useQuery,xC=X.pipelineOrchestrator.getDeviceLiveContribution.useQuery,SC=X.pipelineOrchestrator.applyDeviceSettingsPatch.useMutation,CC=X.pipelineRunner.attachCamera.useMutation,wC=X.pipelineRunner.detachCamera.useMutation,TC=X.pipelineRunner.reportMotion.useMutation,EC=X.pipelineRunner.getLocalLoad.useQuery,DC=X.pipelineRunner.getLocalMetrics.useQuery,OC=X.pipelineRunner.getCameraMetrics.useQuery,kC=X.pipelineRunner.getAllCameraMetrics.useQuery,AC=X.pipelineRunner.getLocalCameras.useQuery,jC=X.pipelineRunner.requestOccupancyBurst.useMutation,MC=X.pipelineRunner.getNativeCrop.useQuery,NC=X.pipelineRunner.runDetailSubtree.useMutation,PC=X.pipelineRunner.runStatelessStep.useMutation,FC=X.pipelineRunner.parkTrackFrame.useMutation,IC=X.pipelineRunner.getParkedTrackFrame.useQuery,LC=X.pipelineRunner.releaseParkedTrackFrames.useMutation,RC=X.pipelineRunner.startNodeBench.useMutation,zC=X.pipelineRunner.getNodeBenchStatus.useQuery,BC=X.pipelineRunner.abortNodeBench.useMutation,VC=X.plateGallery.listPlates.useQuery,HC=X.plateGallery.getPlateByTrack.useQuery,UC=X.plateGallery.getPlateMedia.useQuery,WC=X.plateGallery.searchPlates.useQuery,GC=X.plateGallery.suggestPlateClusters.useQuery,KC=X.plateGallery.correctPlateText.useMutation,qC=X.plateGallery.deletePlate.useMutation,JC=X.plateGallery.listVehicles.useQuery,YC=X.plateGallery.createVehicle.useMutation,XC=X.plateGallery.renameVehicle.useMutation,ZC=X.plateGallery.deleteVehicle.useMutation,QC=X.plateGallery.listVehicleSamples.useQuery,$C=X.plateGallery.removeVehicleSample.useMutation,ew=X.plateGallery.assignPlate.useMutation,tw=X.plateGallery.unassignPlate.useMutation,nw=X.plateGallery.assignPlates.useMutation,rw=X.plateGallery.unassignPlates.useMutation,iw=X.powerMeter.getStatus.useQuery,aw=X.presence.getStatus.useQuery,ow=X.pressureSensor.getStatus.useQuery,sw=X.privacyMask.getOptions.useQuery,cw=X.privacyMask.setMask.useMutation,lw=X.privacyMask.setAudioEnabled.useMutation,uw=X.privacyMask.getStatus.useQuery,dw=X.ptz.move.useMutation,fw=X.ptz.continuousMove.useMutation,pw=X.ptz.stop.useMutation,mw=X.ptz.getPresets.useQuery,hw=X.ptz.goToPreset.useMutation,gw=X.ptz.savePreset.useMutation,_w=X.ptz.deletePreset.useMutation,vw=X.ptz.getOptions.useQuery,yw=X.ptz.goHome.useMutation,bw=X.ptz.getHomePreset.useQuery,xw=X.ptz.setHomePreset.useMutation,Sw=X.ptz.captureHomeHere.useMutation,Cw=X.ptz.getHomeReturn.useQuery,ww=X.ptz.setHomeReturn.useMutation,Tw=X.ptz.getPosition.useQuery,Ew=X.ptz.setAutofocus.useMutation,Dw=X.ptz.getStatus.useQuery,Ow=X.ptzAutotrack.getStatus.useQuery,kw=X.ptzAutotrack.setEnabled.useMutation,Aw=X.ptzAutotrack.getSettings.useQuery,jw=X.ptzAutotrack.setSettings.useMutation,Mw=X.reboot.reboot.useMutation,Nw=X.recordEntries.listEntryKinds.useQuery,Pw=X.recordEntries.listEntries.useQuery,Fw=X.recordEntries.putEntry.useMutation,Iw=X.recordEntries.deleteEntry.useMutation,Lw=X.recording.listSources.useQuery,Rw=X.recording.getAvailability.useQuery,zw=X.recording.getDaysWithRecordings.useQuery,Bw=X.recording.getPlayback.useQuery,Vw=X.recording.getPlaybackOptions.useQuery,Hw=X.recordingArchive.getAvailabilityBatch.useQuery,Uw=X.recordingArchive.getDaysWithRecordingsBatch.useQuery,Ww=X.recordingArchive.getStorageUsage.useQuery,Gw=X.recordingArchive.getDeviceConfig.useQuery,Kw=X.recordingArchive.locateSegment.useQuery,qw=X.recordingArchive.readSegmentBytes.useQuery,Jw=X.recordingArchive.readGopBytes.useQuery,Yw=X.recordingArchive.readWindowBytes.useQuery,Xw=X.recordingArchive.setDeviceConfig.useMutation,Zw=X.recordingArchive.rescanStorage.useMutation,Qw=X.recordingArchive.pruneFootage.useMutation,$w=X.recordingArchive.deleteFootprint.useMutation,eT=X.recordingArchive.listOpsLog.useQuery,tT=X.recordingArchive.renderGif.useMutation,nT=X.recordingArchive.renderClip.useMutation,rT=X.recordingArchive.pauseForStorageMigration.useMutation,iT=X.recordingArchive.resumeForStorageMigration.useMutation,aT=X.recordingArchive.refreshStorageLocationsForMigration.useMutation,oT=X.recordingArchive.startStorageMigrationMove.useMutation,sT=X.recordingArchive.getStorageMigrationMoveStatus.useQuery,cT=X.recordingArchive.cancelStorageMigrationMove.useMutation,lT=X.recordingArchive.relocateFootage.useMutation,uT=X.recordingArchive.listRelocateJobs.useQuery,dT=X.recordingArchive.getRelocateResidue.useQuery,fT=X.recordingArchive.reconcileLedgerAgainstDisk.useMutation,pT=X.recordingArchive.cancelRelocateJob.useMutation,mT=X.recordingArchive.planStorageRebalance.useQuery,hT=X.recordingArchive.startStorageRebalance.useMutation,gT=X.recordingArchive.getPlacement.useQuery,_T=X.recordingArchive.setDevicePlacement.useMutation,vT=X.recordingArchive.getStatus.useQuery,yT=X.recordingArchive.getDeviceSettingsContribution.useQuery,bT=X.recordingArchive.getDeviceLiveContribution.useQuery,xT=X.recordingArchive.applyDeviceSettingsPatch.useMutation,ST=X.recordingExport.createExport.useMutation,CT=X.recordingExport.listExports.useQuery,wT=X.recordingExport.getExport.useQuery,TT=X.recordingExport.cancelExport.useMutation,ET=X.recordingExport.deleteExport.useMutation,DT=X.recordingExport.getDownloadUrl.useQuery,OT=X.recordingExport.readExportBytes.useQuery,kT=X.recordingOnboard.getOptions.useQuery,AT=X.recordingOnboard.setSettings.useMutation,jT=X.recordingOnboard.getStatus.useQuery,MT=X.recordingSignal.getStatus.useQuery,NT=X.remote.getConfig.useQuery,PT=X.remote.setConfig.useMutation,FT=X.remote.listCommands.useQuery,IT=X.remote.sendCommand.useMutation,LT=X.remote.sendMediaCommand.useMutation,RT=X.runningState.getStatus.useQuery,zT=X.sceneMonitor.listScenes.useQuery,BT=X.sceneMonitor.listScenesBatch.useQuery,VT=X.sceneMonitor.createScene.useMutation,HT=X.sceneMonitor.updateScene.useMutation,UT=X.sceneMonitor.deleteScene.useMutation,WT=X.sceneMonitor.captureReference.useMutation,GT=X.sceneMonitor.deleteReference.useMutation,KT=X.sceneMonitor.recheckNow.useMutation,qT=X.sceneMonitor.resetScene.useMutation,JT=X.sceneMonitor.getStatus.useQuery,YT=X.scriptRunner.run.useMutation,XT=X.scriptRunner.stop.useMutation,ZT=X.scriptRunner.getStatus.useQuery,QT=X.serverManagement.getServerPackageStatus.useQuery,$T=X.serverManagement.checkServerUpdate.useMutation,eE=X.serverManagement.applyServerUpdate.useMutation,tE=X.serverManagement.rollbackServerUpdate.useMutation,nE=X.serverManagement.restartServer.useMutation,rE=X.settingsStore.get.useQuery,iE=X.settingsStore.set.useMutation,aE=X.settingsStore.query.useQuery,oE=X.settingsStore.upsert.useMutation,sE=X.settingsStore.upsertMany.useMutation,cE=X.settingsStore.insert.useMutation,lE=X.settingsStore.insertMany.useMutation,uE=X.settingsStore.transact.useMutation,dE=X.settingsStore.update.useMutation,fE=X.settingsStore.delete.useMutation,pE=X.settingsStore.deleteWhere.useMutation,mE=X.settingsStore.updateWhere.useMutation,hE=X.settingsStore.count.useQuery,gE=X.settingsStore.aggregate.useQuery,_E=X.settingsStore.histogram.useQuery,vE=X.settingsStore.isEmpty.useQuery,yE=X.settingsStore.declareCollection.useMutation,bE=X.smoke.getStatus.useQuery,xE=X.snapshot.getSnapshot.useQuery,SE=X.snapshot.invalidateCache.useMutation,CE=X.snapshot.getSnapshotOverview.useQuery,wE=X.snapshot.getDebugState.useQuery,TE=X.snapshot.getSnapshotLinks.useQuery,EE=X.snapshot.getStatus.useQuery,DE=X.snapshot.getDeviceSettingsContribution.useQuery,OE=X.snapshot.getDeviceLiveContribution.useQuery,kE=X.snapshot.applyDeviceSettingsPatch.useMutation,AE=X.storage.resolve.useQuery,jE=X.storage.write.useMutation,ME=X.storage.read.useQuery,NE=X.storage.exists.useQuery,PE=X.storage.list.useQuery,FE=X.storage.delete.useMutation,IE=X.storage.getAvailableSpace.useQuery,LE=X.storage.beginUpload.useMutation,RE=X.storage.writeChunk.useMutation,zE=X.storage.finalizeUpload.useMutation,BE=X.storage.abortUpload.useMutation,VE=X.storage.beginDownload.useMutation,HE=X.storage.readChunk.useQuery,UE=X.storage.endDownload.useMutation,WE=X.storage.listLocations.useQuery,GE=X.storage.listLocationDeclarations.useQuery,KE=X.storage.upsertLocation.useMutation,qE=X.storage.deleteLocation.useMutation,JE=X.storage.listDrainProgress.useQuery,YE=X.storage.testLocation.useQuery,XE=X.storage.listProviders.useQuery,ZE=X.storage.testConfig.useQuery,QE=X.storageMigration.plan.useQuery,$E=X.storageMigration.start.useMutation,eD=X.storageMigration.status.useQuery,tD=X.storageMigration.cancel.useMutation,nD=X.storageMigration.movers.useQuery,rD=X.storageMigration.moverClearance.useQuery,iD=X.storageMigration.residue.useQuery,aD=X.storageMigration.drain.useMutation,oD=X.storageMigration.cleanupStart.useMutation,sD=X.storageMigration.cleanupStatus.useQuery,cD=X.storageMigration.cleanupCancel.useMutation,lD=X.storageMigration.history.useQuery,uD=X.streamBroker.reportStreamSignal.useMutation,dD=X.streamBroker.publishCameraStream.useMutation,fD=X.streamBroker.retractCameraStream.useMutation,pD=X.streamBroker.assignProfile.useMutation,mD=X.streamBroker.unassignProfile.useMutation,hD=X.streamBroker.forgetDeviceHardware.useMutation,gD=X.streamBroker.renderPreBufferClip.useMutation,_D=X.streamBroker.produceEventMedia.useMutation,vD=X.streamBroker.fetchEventMedia.useMutation,yD=X.streamBroker.listAllCameraStreams.useQuery,bD=X.streamBroker.listAllProfileSlots.useQuery,xD=X.streamBroker.getBrokerStats.useQuery,SD=X.streamBroker.probeStream.useMutation,CD=X.streamBroker.listClients.useQuery,wD=X.streamBroker.getLiveViewerCounts.useQuery,TD=X.streamBroker.killClient.useMutation,ED=X.streamBroker.restartProfile.useMutation,DD=X.streamBroker.getStreamUrl.useQuery,OD=X.streamBroker.getStreamWithCodec.useMutation,kD=X.streamBroker.releaseStreamWithCodec.useMutation,AD=X.streamBroker.acquireEgressTranscode.useMutation,jD=X.streamBroker.releaseEgressTranscode.useMutation,MD=X.streamBroker.subscribeAudioChunks.useMutation,ND=X.streamBroker.pullAudioChunks.useQuery,PD=X.streamBroker.unsubscribeAudioChunks.useMutation,FD=X.streamBroker.setPreBufferDuration.useMutation,ID=X.streamBroker.getPreBufferInfo.useQuery,LD=X.streamBroker.getRtspPort.useQuery,RD=X.streamBroker.getAllRtspEntries.useQuery,zD=X.streamBroker.getRtspEntry.useQuery,BD=X.streamBroker.regenerateRtspToken.useMutation,VD=X.streamBroker.setRtspEnabled.useMutation,HD=X.streamBroker.isRtspEnabled.useQuery,UD=X.streamBroker.getDeviceAudioMute.useQuery,WD=X.streamBroker.setDeviceAudioMute.useMutation,GD=X.streamBroker.getDeviceSettingsContribution.useQuery,KD=X.streamBroker.getDeviceLiveContribution.useQuery,qD=X.streamBroker.applyDeviceSettingsPatch.useMutation,JD=X.streamCatalog.getCatalog.useQuery,YD=X.streamParams.getOptions.useQuery,XD=X.streamParams.setProfile.useMutation,ZD=X.streamParams.getConfigSchema.useQuery,QD=X.streamParams.getStatus.useQuery,$D=X.streamSignals.listSignals.useQuery,eO=X.switch.setState.useMutation,tO=X.switch.getStatus.useQuery,nO=X.system.info.useQuery,rO=X.system.health.useQuery,iO=X.system.featureFlags.useQuery,aO=X.system.networkAddresses.useQuery,oO=X.system.getRetentionConfig.useQuery,sO=X.system.setRetentionConfig.useMutation,cO=X.system.forceRetentionCleanup.useMutation,lO=X.system.getSiteLocation.useQuery,uO=X.system.setSiteLocation.useMutation,dO=X.system.detectSiteLocation.useMutation,fO=X.system.getRequestCensus.useQuery,pO=X.system.getLoadContributions.useQuery,mO=X.system.getFailureContributions.useQuery,hO=X.system.getLoggingSettings.useQuery,gO=X.system.setLoggingSettings.useMutation,_O=X.tamper.getStatus.useQuery,vO=X.temperatureSensor.getStatus.useQuery,yO=X.template.list.useQuery,bO=X.template.get.useQuery,xO=X.template.create.useMutation,SO=X.template.update.useMutation,CO=X.template.delete.useMutation,wO=X.terminalSession.listProfiles.useQuery,TO=X.terminalSession.listInstances.useQuery,EO=X.terminalSession.createInstance.useMutation,DO=X.terminalSession.updateInstance.useMutation,OO=X.terminalSession.deleteInstance.useMutation,kO=X.terminalSession.setInstanceEnabled.useMutation,AO=X.terminalSession.listLegacyCameras.useQuery,jO=X.terminalSession.adoptLegacyMonitor.useMutation,MO=X.terminalSession.listSessions.useQuery,NO=X.terminalSession.openSession.useMutation,PO=X.terminalSession.resize.useMutation,FO=X.terminalSession.pullOutput.useMutation,IO=X.terminalSession.writeInput.useMutation,LO=X.terminalSession.close.useMutation,RO=X.toast.onToast.useSubscription,zO=X.training.listBaseModels.useQuery,BO=X.training.planJob.useQuery,VO=X.training.startJob.useMutation,HO=X.training.startJobBatch.useMutation,UO=X.training.listJobs.useQuery,WO=X.training.getJob.useQuery,GO=X.training.cancelJob.useMutation,KO=X.training.getJobResult.useQuery,qO=X.training.listCanaryTargets.useQuery,JO=X.training.registerResult.useMutation,YO=X.training.canaryResult.useMutation,XO=X.training.rollbackCanary.useMutation,ZO=X.training.discardResult.useMutation,QO=X.turnProvider.getTurnServers.useQuery,$O=X.update.installUpdate.useMutation,ek=X.update.getStatus.useQuery,tk=X.userManagement.listUsers.useQuery,nk=X.userManagement.createUser.useMutation,rk=X.userManagement.updateUser.useMutation,ik=X.userManagement.deleteUser.useMutation,ak=X.userManagement.resetPassword.useMutation,ok=X.userManagement.setUserScopes.useMutation,kre=X.userManagement.validateCredentials.useMutation,Are=X.userManagement.setupTotp.useMutation,jre=X.userManagement.confirmTotp.useMutation,sk=X.userManagement.disableTotp.useMutation,ck=X.userManagement.getTotpStatus.useQuery,Mre=X.userManagement.migrateRawSecrets.useMutation,Nre=X.userManagement.verifyTotp.useMutation,Pre=X.userManagement.oauthIssueCode.useMutation,Fre=X.userManagement.oauthExchangeCode.useMutation,Ire=X.userManagement.oauthRefresh.useMutation,Lre=X.userManagement.oauthVerifyAccessToken.useQuery,lk=X.userManagement.listExternalIdentities.useQuery,Rre=X.userManagement.findUserByExternalIdentity.useQuery,uk=X.userManagement.unlinkExternalIdentity.useMutation,dk=X.userManagement.listOauthSessions.useQuery,fk=X.userManagement.revokeOauthSession.useMutation,zre=X.vacuumControl.start.useMutation,Bre=X.vacuumControl.pause.useMutation,Vre=X.vacuumControl.stop.useMutation,Hre=X.vacuumControl.returnToBase.useMutation,Ure=X.vacuumControl.locate.useMutation,Wre=X.vacuumControl.setFanSpeed.useMutation,Gre=X.vacuumControl.getStatus.useQuery,Kre=X.valve.open.useMutation,qre=X.valve.close.useMutation,Jre=X.valve.stop.useMutation,Yre=X.valve.setPosition.useMutation,Xre=X.valve.getStatus.useQuery,Zre=X.vibration.getStatus.useQuery,pk=X.videoclips.listClips.useQuery,mk=X.videoclips.listSources.useQuery,hk=X.videoclips.getClipPlayback.useQuery,Qre=X.videoclips.readClipBytes.useQuery,$re=X.videoclips.offerClipBytes.useQuery,eie=X.videoclips.dialClipStream.useQuery,tie=X.videoclips.getPlaybackOptions.useQuery,nie=X.waterHeater.setTargetTemp.useMutation,rie=X.waterHeater.setOperationMode.useMutation,iie=X.waterHeater.setAway.useMutation,aie=X.waterHeater.getStatus.useQuery,oie=X.weather.getStatus.useQuery,sie=X.webrtcSession.listStreams.useQuery,cie=X.webrtcSession.createSession.useMutation,lie=X.webrtcSession.handleOffer.useMutation,uie=X.webrtcSession.handleAnswer.useMutation,die=X.webrtcSession.addIceCandidate.useMutation,fie=X.webrtcSession.getIceCandidates.useQuery,pie=X.webrtcSession.closeSession.useMutation,mie=X.webrtcSession.hasAdaptiveBitrate.useQuery,hie=X.webrtcSession.getSessionState.useQuery,gie=X.webrtcSession.applyDownlinkProbe.useMutation,_ie=X.webrtcSession.getSessionDebug.useQuery,vie=X.zoneAnalytics.getCurrentSnapshot.useQuery,yie=X.zoneAnalytics.getCurrentSnapshotBatch.useQuery,bie=X.zoneAnalytics.getZoneHistory.useQuery,xie=X.zoneAnalytics.getCameraHistory.useQuery,Sie=X.zoneAnalytics.getUnzonedHistory.useQuery,Cie=X.zoneRules.listRules.useQuery,wie=X.zoneRules.setRules.useMutation,gk=X.zones.listZones.useQuery,Tie=X.zones.addZone.useMutation,Eie=X.zones.removeZone.useMutation,Die=X.zones.updateZone.useMutation;E(),bo();var _k=O(null);function vk(){let e=I(_k);if(!e)throw Error(`Dropdown compound components must be used within <Dropdown>`);return e}function yk({children:e,open:t,onOpenChange:n}){let[r,i]=C(!1),a=t!==void 0&&n!==void 0,o=a?t:r,s=_(e=>{a?n(e):i(e)},[a,n]),c=y(),l=y(),u=f(null);return v(_k.Provider,{value:{open:o,setOpen:s,triggerId:c,contentId:l,triggerRef:u},children:v(`div`,{className:`relative inline-block`,children:e})})}function bk({children:e,...t}){let{open:n,setOpen:r,triggerId:i,contentId:a,triggerRef:o}=vk();return v(`button`,{type:`button`,ref:o,id:i,"aria-haspopup":`menu`,"aria-expanded":n,"aria-controls":n?a:void 0,onClick:()=>r(!n),...t,children:e})}function xk({className:e,children:t,align:n=`start`,offset:r=4,...i}){let{open:a,setOpen:o,contentId:s,triggerId:c,triggerRef:l}=vk(),d=f(null),[p,m]=C(null);return u(()=>{if(!a){m(null);return}let e=()=>{let e=l.current;if(!e)return;let t=e.getBoundingClientRect(),i=n===`end`?t.right:t.left;m({top:t.bottom+r,left:i,minWidth:t.width})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[a,n,r,l]),b(()=>{if(!a)return;let e=e=>{let t=d.current,n=l.current;t&&!t.contains(e.target)&&!n?.contains(e.target)&&o(!1)},t=e=>{e.key===`Escape`&&o(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[a,o,l]),!a||!p||typeof document>`u`?null:xo(v(`div`,{ref:d,id:s,role:`menu`,"aria-labelledby":c,style:{position:`fixed`,top:p.top,...n===`end`?{right:window.innerWidth-p.left}:{left:p.left},minWidth:p.minWidth},className:$(`z-50 bg-background-elevated border border-border rounded-md shadow-lg py-1 min-w-[160px]`,e),...i,children:t}),document.body)}function Sk({className:e,icon:t,variant:n=`default`,children:r,onClick:i,...a}){let{setOpen:o}=vk(),s=_(e=>{i?.(e),o(!1)},[i,o]);return c(`button`,{type:`button`,role:`menuitem`,className:$(`h-7 text-xs px-2 w-full text-left flex items-center gap-2`,n===`danger`?`text-danger hover:bg-danger/10`:`text-foreground hover:bg-surface-hover`,e),onClick:s,...a,children:[t&&v(t,{size:14}),r]})}function Oie(e,t){if(e.length===0||t.length===0)return!1;let n=new Set(e);return t.some(e=>n.has(e))}function Ck(e,t){if(t?.excludeDeviceId!==void 0&&e.id===t.excludeDeviceId||t?.excludeTypes!==void 0&&t.excludeTypes.includes(e.type))return!1;let n=t?.caps!==void 0&&t.caps.length>0,r=t?.types!==void 0&&t.types.length>0;return!!(!n&&!r||n&&Oie(e.features??[],t.caps)||r&&t.types.includes(e.type))}function wk(e){return typeof e.location==`string`&&e.location.length>0?`${e.name} (${e.location})`:e.name}function kie(e){let t=[];return typeof e.location==`string`&&e.location.length>0&&t.push(e.location),t.push(e.type),typeof e.parentName==`string`&&e.parentName.length>0&&t.push(`in ${e.parentName}`),t.join(` · `)}function Tk(e,t){return e.filter(e=>Ck(e,t)).map(e=>({value:String(e.id),label:wk(e),description:kie(e),location:typeof e.location==`string`&&e.location.length>0?e.location:null})).toSorted((e,t)=>e.label.localeCompare(t.label))}function Aie(e){let t=new Set,n=new Set;for(let r of e)typeof r.location==`string`&&r.location.length>0&&t.add(r.location),n.add(r.type);return{locations:[...t].toSorted((e,t)=>e.localeCompare(t)),types:[...n].toSorted((e,t)=>e.localeCompare(t))}}var jie={locations:[],types:[]};function Mie(e,t){return!(t.locations.length>0&&(typeof e.location!=`string`||!t.locations.includes(e.location))||t.types.length>0&&!t.types.includes(e.type))}function Ek(e,t,n){return{suggested:e.filter(e=>t.has(n(e))),others:e.filter(e=>!t.has(n(e)))}}function Dk(e,t){return e.location===t}function Nie(e,t){let n=Gi(t.map(e=>({id:e.id,stableId:e.stableId,type:e.type,...e.role!==void 0&&e.role!==null?{role:e.role}:{},name:e.name})),e.primaryChildEntityId,e.name);return n===null?null:n.id}function Ok(e,t){if(t==null||t.length===0)return new Set;let n=new Map(e.map(e=>[e.id,e])),r=new Map;for(let t of e)t.parentDeviceId===null||t.parentDeviceId===void 0||r.set(t.parentDeviceId,[...r.get(t.parentDeviceId)??[],t]);let i=e=>e!==void 0&&e.type===J.Container,a=new Set,o=new Set;for(let r of e){if(i(r)){Dk(r,t)&&a.add(r.id);continue}if(!Dk(r,t))continue;let e=r.parentDeviceId===null||r.parentDeviceId===void 0?void 0:n.get(r.parentDeviceId);e!==void 0&&i(e)?a.add(e.id):o.add(r.id)}for(let e of a){let t=n.get(e);if(t===void 0)continue;let a=Nie(t,r.get(e)??[]);a!==null&&!i(n.get(a))&&o.add(a)}return o}function kk(e,t){let n=t.trim().toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(e=>{let t=`${e.value} ${e.label} ${e.description??``}`.toLowerCase();return n.every(e=>t.includes(e))})}function Ak(e,t){let n=new Map(e.map(e=>[e.value,e]));return t.map(e=>n.get(e)??{value:e,label:e})}E();var Pie=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`,Fie=`flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 focus-within:border-primary focus-within:ring-1 focus-within:ring-primary/30`,jk=`block text-[11px] font-medium text-foreground mb-1 break-words`,Mk=`text-[10px] text-foreground-subtle mt-0.5 break-words`;function Nk(e){return typeof e==`string`?e:null}function Pk(e){if(!Array.isArray(e))return[];let t=new Map;for(let n of e){if(typeof n!=`object`||!n)continue;let e=n;typeof e.id==`number`&&typeof e.name==`string`&&t.set(e.id,e.name)}let n=[];for(let r of e){if(typeof r!=`object`||!r)continue;let e=r;if(typeof e.id!=`number`||typeof e.type!=`string`||typeof e.name!=`string`)continue;let i=typeof e.parentDeviceId==`number`?t.get(e.parentDeviceId)??null:null;n.push({id:e.id,type:e.type,name:e.name,location:typeof e.location==`string`?e.location:null,features:Array.isArray(e.features)?e.features.filter(e=>typeof e==`string`):[],parentName:i,stableId:typeof e.stableId==`string`?e.stableId:``,parentDeviceId:typeof e.parentDeviceId==`number`?e.parentDeviceId:null,primaryChildEntityId:Nk(e.primaryChildEntityId),role:Nk(e.role)})}return n}var Iie=`px-2.5 pt-1.5 pb-0.5 text-[10px] font-medium uppercase tracking-wide text-foreground-subtle`,Lie=`inline-flex max-w-full items-center gap-1 rounded-md border border-border bg-background px-2 py-1 text-[11px] text-foreground hover:bg-surface-hover`,Fk=`flex h-7 w-full items-center gap-2 px-2 text-left text-xs text-foreground hover:bg-surface-hover`;function Ik({label:e,values:t,chosen:n,onChange:r}){let i=q();if(t.length<2)return null;let a=n.length===0?i(`uiLibrary.deviceSelectField.all`,`All`):n.join(`, `),o=e=>{r(n.includes(e)?n.filter(t=>t!==e):[...n,e])};return c(yk,{children:[c(bk,{className:Lie,children:[v(`span`,{className:`text-foreground-subtle`,children:e}),v(`span`,{"aria-hidden":`true`,children:`·`}),v(`span`,{className:`truncate`,children:a}),v(de,{className:`h-3 w-3 shrink-0 text-foreground-subtle`})]}),c(xk,{className:`max-h-56 overflow-y-auto`,children:[c(`button`,{type:`button`,role:`menuitemcheckbox`,"aria-checked":n.length===0,className:Fk,onClick:()=>r([]),children:[v(`span`,{className:`inline-flex h-3.5 w-3.5 items-center justify-center rounded border border-border`,children:n.length===0&&v(dt,{className:`h-2.5 w-2.5`})}),i(`uiLibrary.deviceSelectField.all`,`All`)]}),t.map(e=>{let t=n.includes(e);return c(`button`,{type:`button`,role:`menuitemcheckbox`,"aria-checked":t,className:Fk,onClick:()=>o(e),children:[v(`span`,{className:[`inline-flex h-3.5 w-3.5 items-center justify-center rounded border`,t?`border-primary bg-primary text-white`:`border-border`].join(` `),children:t&&v(dt,{className:`h-2.5 w-2.5`})}),e]},e)})]})]})}function Rie({label:e,description:t,required:n,translationFn:r,children:i}){let a=Tz(e,r),o=Tz(t,r);return c(`div`,{className:`min-w-0`,children:[a!==void 0&&a!==``&&c(`label`,{className:jk,children:[a,n&&v(`span`,{className:`text-danger ml-0.5`,children:`*`})]}),i,o&&v(`p`,{className:Mk,children:o})]})}function Lk({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),{data:o}=nm({}),s=p(()=>Tk(Pk(o),e.deviceFilter),[o,e.deviceFilter]),l=t==null?``:String(t);return v(Rie,{label:e.label,description:e.description,required:e.required,translationFn:i,children:c(`select`,{className:Pie,value:l,disabled:r||e.disabled,onChange:e=>n(e.target.value),children:[!e.required&&v(`option`,{value:``,children:a(`uiLibrary.deviceSelectField.select`,`— Select device —`)}),s.map(e=>v(`option`,{value:e.value,children:e.label},e.value))]})})}function Rk({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),{data:o}=nm({}),s=e.suggestLocation!==void 0,[l,u]=C(jie),d=p(()=>Pk(o),[o]),m=p(()=>Aie(d.filter(t=>t.id!==e.deviceFilter?.excludeDeviceId)),[d,e.deviceFilter?.excludeDeviceId]),h=p(()=>s?d.filter(e=>Mie(e,l)):d,[d,l,s]),g=p(()=>Tk(h,e.deviceFilter),[h,e.deviceFilter]),_=Array.isArray(t)?t.map(String):[],y=r===!0||e.disabled===!0,b=e.maxItems!==void 0&&_.length>=e.maxItems,[x,S]=C(``),[w,T]=C(!1),[E,D]=C(0),O=f(null),k=f(null),A=p(()=>Ak(g,_),[g,_]),j=p(()=>kk(g,x),[g,x]),M=p(()=>Ok(d,s?e.suggestLocation:null),[d,s,e.suggestLocation]),N=p(()=>Ek(j,M,e=>Number(e.value)),[j,M]),P=p(()=>[...N.suggested,...N.others],[N]),F=t=>{if(!y)if(_.includes(t))n(_.filter(e=>e!==t));else{if(e.maxItems!==void 0&&_.length>=e.maxItems)return;n([..._,t])}},I=e=>{if(e.key===`ArrowDown`)e.preventDefault(),T(!0),D(e=>P.length===0?0:(e+1)%P.length);else if(e.key===`ArrowUp`)e.preventDefault(),T(!0),D(e=>P.length===0?0:(e-1+P.length)%P.length);else if(e.key===`Enter`){e.preventDefault();let t=P[E];t&&F(t.value)}else e.key===`Escape`?T(!1):e.key===`Backspace`&&x===``&&_.length>0&&n(_.slice(0,-1))},L=Tz(e.label,i),R=Tz(e.description,i);return c(`div`,{className:`min-w-0`,children:[L!==void 0&&L!==``&&v(`label`,{className:jk,children:L}),A.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mb-1.5`,children:A.map(e=>c(`span`,{className:`inline-flex items-center gap-1 rounded-md bg-primary/10 px-1.5 py-0.5 text-[11px] text-primary max-w-full`,children:[v(`span`,{className:`truncate`,children:e.label}),!y&&v(`button`,{type:`button`,className:`shrink-0 hover:text-danger`,"aria-label":a(`uiLibrary.deviceSelectField.remove`,`Remove {{label}}`,{label:e.label}),onClick:()=>F(e.value),children:v(Yn,{className:`h-2.5 w-2.5`})})]},e.value))}),s&&c(`div`,{className:`mb-1.5 flex flex-wrap gap-1.5`,children:[v(Ik,{label:a(`uiLibrary.deviceSelectField.location`,`Location`),values:m.locations,chosen:l.locations,onChange:e=>u(t=>({...t,locations:e}))}),v(Ik,{label:a(`uiLibrary.deviceSelectField.type`,`Type`),values:m.types,chosen:l.types,onChange:e=>u(t=>({...t,types:e}))})]}),c(`div`,{className:Fie+(y?` opacity-50`:``),children:[v(bi,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`}),v(`input`,{ref:O,type:`text`,role:`combobox`,"aria-label":e.label,"aria-expanded":w,"aria-controls":`dsel-${e.key}`,className:`min-w-0 flex-1 bg-transparent text-xs text-foreground outline-none placeholder:text-foreground-disabled`,value:x,placeholder:b?a(`uiLibrary.deviceSelectField.max`,`Max {{count}} selected`,{count:e.maxItems}):e.placeholder??a(`uiLibrary.deviceSelectField.search`,`Search devices…`),disabled:y,onChange:e=>{S(e.target.value),T(!0),D(0)},onFocus:()=>T(!0),onBlur:()=>{k.current=setTimeout(()=>T(!1),120)},onKeyDown:I}),v(de,{className:`h-3.5 w-3.5 shrink-0 cursor-pointer text-foreground-subtle`,onMouseDown:e=>{e.preventDefault(),k.current&&clearTimeout(k.current),T(e=>!e),O.current?.focus()}})]}),w&&!y&&v(`div`,{id:`dsel-${e.key}`,role:`listbox`,className:`mt-1 max-h-56 overflow-y-auto rounded-md border border-border bg-surface shadow-lg`,onMouseDown:e=>{e.preventDefault()},children:P.length===0?v(`div`,{className:`px-2.5 py-2 text-[11px] text-foreground-subtle italic`,children:g.length===0?a(`uiLibrary.deviceSelectField.noDevices`,`No matching devices`):a(`uiLibrary.deviceSelectField.noMatches`,`No matches for “{{query}}”`,{query:x})}):P.map((t,n)=>{let r=_.includes(t.value),i=!r&&b,a=N.suggested.length,o=s?n===0&&a>0?`Suggested · ${e.suggestLocation??``}`:n===a&&a>0?`Other devices`:null:null;return c(`div`,{children:[o!==null&&v(`div`,{className:Iie,children:o}),c(`button`,{type:`button`,role:`option`,"aria-selected":r,disabled:i,className:[`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors`,n===E?`bg-primary/10`:`hover:bg-surface-hover`,i?`opacity-40 cursor-not-allowed`:`cursor-pointer`].join(` `),onMouseEnter:()=>D(n),onClick:()=>F(t.value),children:[v(`span`,{className:[`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border`,r?`border-primary bg-primary text-white`:`border-border`].join(` `),children:r&&v(dt,{className:`h-2.5 w-2.5`})}),c(`span`,{className:`min-w-0 flex-1`,children:[v(`span`,{className:`block truncate text-foreground`,children:t.label}),t.description!==void 0&&v(`span`,{className:`block truncate text-[10px] text-foreground-subtle`,children:t.description})]})]})]},t.value)})}),R&&v(`p`,{className:Mk,children:R})]})}E();var zie=kl(`inline-flex items-center rounded-full font-medium [&>svg]:shrink-0 [&>svg]:size-3`,{variants:{variant:{default:`bg-surface-hover text-foreground`,success:`bg-success/15 text-success`,warning:`bg-warning/15 text-warning`,danger:`bg-danger/15 text-danger`,info:`bg-info/15 text-info`,primary:`bg-primary/15 text-primary`,neutral:`bg-surface-hover text-foreground-muted`},styleVariant:{solid:``,fill:``,outline:`border bg-transparent`},size:{sm:`text-[10px] leading-4 px-1.5 py-0`,md:`text-xs px-2 py-0.5`},hasIcon:{true:`gap-1`,false:``},dashed:{true:`border-dashed`,false:``}},compoundVariants:[{variant:`default`,styleVariant:`fill`,class:`bg-neutral-fill text-neutral-on`},{variant:`neutral`,styleVariant:`fill`,class:`bg-neutral-fill text-neutral-on`},{variant:`success`,styleVariant:`fill`,class:`bg-success-fill text-success-on`},{variant:`warning`,styleVariant:`fill`,class:`bg-warning-fill text-warning-on`},{variant:`danger`,styleVariant:`fill`,class:`bg-danger-fill text-danger-on`},{variant:`info`,styleVariant:`fill`,class:`bg-info-fill text-info-on`},{variant:`primary`,styleVariant:`fill`,class:`bg-primary-fill text-primary-on`}],defaultVariants:{variant:`default`,styleVariant:`solid`,size:`md`,hasIcon:!1,dashed:!1}}),zk=D(({className:e,variant:t,style:n,size:r,icon:i,dashed:a,children:o,...s},l)=>c(`span`,{ref:l,className:$(zie({variant:t,styleVariant:n,size:r,hasIcon:i!=null,dashed:a===!0&&n===`outline`}),e),...s,children:[i,o]}));zk.displayName=`Badge`,E();var Bk={motion:ri,audio:mt,person:it,vehicle:tt,animal:Me,package:Xt,sensor:fe,control:Lr,car:tt,truck:kt,bus:xe,motorcycle:je,bicycle:je,airplane:Qe,boat:Mt,train:tee,bird:Wt,cat:U,dog:B,horse:Me,sheep:Me,cow:Me,elephant:Me,bear:Me,zebra:Me,giraffe:Me,door:pn,pir:mr,smoke:K,water:cn,gas:Mi,vibration:gr,tamper:Tr,presence:lt,generic:rn,lock:xr,siren:br,switch:ke,doorbell:Yt,button:yi,"audio-speech":ei,"audio-scream":wn,"audio-crying":xt,"audio-laughter":gee,"audio-music":qr,"audio-dog":B,"audio-cat":U,"audio-bird":Wt,"audio-animal":Me,"audio-alarm":Yt,"audio-doorbell":Yt,"audio-glass_breaking":Ii,"audio-gunshot":ui,"audio-vehicle":tt,"audio-siren":br,"audio-fire":K,"audio-water":Ue,"audio-wind":Mi,"audio-door":pn,"audio-footsteps":$e,"audio-crowd":dr,"audio-telephone":re,"audio-engine":rr,"audio-tools":W,"audio-silence":me};function Vk(e){return Object.hasOwn(Bk,e)?Bk[e]:e.startsWith(`audio-`)?mt:rn}function Hk(e,t){if(t===void 0)return e.label;let n=t(e.labelKey);return n===e.labelKey||n.length===0?e.label:n}function Uk({iconId:e,size:t=16,color:n,className:r}){return s(Vk(e),{size:t,color:n,className:r})}var Wk=`flex items-center gap-1.5 rounded-md border border-border bg-background px-2 py-1.5 focus-within:border-primary focus-within:ring-1 focus-within:ring-primary/30`;function Gk({label:e,onRemove:t,warning:n=!1,iconId:r,iconUrl:i,testId:a}){let o=q();return c(`span`,{"data-testid":a,className:n?`inline-flex items-center gap-1 rounded-md bg-warning/10 px-1.5 py-0.5 text-[11px] text-warning max-w-full`:`inline-flex items-center gap-1 rounded-md bg-primary/10 px-1.5 py-0.5 text-[11px] text-primary max-w-full`,children:[i===void 0?r===void 0?null:v(Uk,{iconId:r,size:12}):v(`img`,{src:i,alt:``,className:`h-3 w-3 shrink-0 rounded-sm object-contain`}),v(`span`,{className:`truncate`,children:e}),t!==void 0&&v(`button`,{type:`button`,className:`shrink-0 hover:text-danger`,"aria-label":o(`uiLibrary.selectedChip.remove`,`Remove {{label}}`,{label:e}),onClick:t,children:v(Yn,{className:`h-2.5 w-2.5`})})]})}function Kk(e){return[e.value,e.label,e.description].filter(e=>typeof e==`string`&&e.length>0).join(` `).toLowerCase()}function qk(e,t){let n=t.trim().toLowerCase().split(/\s+/).filter(Boolean);return n.length===0?e:e.filter(e=>{let t=Kk(e);return n.every(e=>t.includes(e))})}function Jk(e,t){let n=new Map(e.map(e=>[e.value,e])),r=new Set(t);return{selectedOptions:t.map(e=>n.get(e)??{value:e,label:e}),unselected:e.filter(e=>!r.has(e.value))}}function Yk(e,t,n){return n===void 0?e>=8||t:n}function Xk(e){let t=e.trim();return t.length>0?t:null}function Zk(e,t){let n=t.toLowerCase();return e.some(e=>e.value.toLowerCase()===n||e.label.toLowerCase()===n)}function Qk(e,t){return e&&t}function $k(e,t,n){if(!e)return!1;let r=Xk(t);return r===null?!1:!Zk(n,r)}E(),bo();var eA=4,tA=224,nA=8,Bie=`block text-[11px] font-medium text-foreground mb-1 break-words`,Vie=`text-[10px] text-foreground-subtle mt-0.5 break-words`;function Hie({opt:e}){return e.iconUrl===void 0?e.iconId===void 0?null:v(Uk,{iconId:e.iconId,size:13}):v(`img`,{src:e.iconUrl,alt:``,className:`h-3.5 w-3.5 shrink-0 rounded-sm object-contain`})}function rA(e){let t=q(),{mode:n,options:r,placeholder:i=`Select…`,disabled:a=!1,emptyMessage:o=`No options available.`,creatable:s=!1,createLabel:l=`Add new…`,onCreateRequest:m,label:h,description:g,testId:_,optionTestIdPrefix:y,listboxId:x}=e,S=a,w=Yk(r.length,s,e.searchable),T=x??_??`option-select-listbox`,E=n===`single`?e.value.length>0?[e.value]:[]:e.value,D=n===`multi`?e.maxItems:void 0,O=n===`multi`&&D!==void 0&&E.length>=D,[k,A]=C(``),[j,M]=C(!1),[N,F]=C(0),[I,L]=C(null),R=f(null),z=f(null),B=f(null),V=f(null),H=()=>{let e=z.current;if(e===null)return null;let t=e.getBoundingClientRect(),n=window.innerHeight-t.bottom-nA,r=t.top-nA,i=n>=Math.min(tA,r)||n>=120,a=Math.max(96,Math.min(tA,i?n:r)),o=Math.max(nA,Math.min(t.left,window.innerWidth-t.width-nA));return i?{top:t.bottom+eA,left:o,width:t.width,maxHeight:a,placement:`below`}:{top:Math.max(nA,t.top-eA-a),left:o,width:t.width,maxHeight:a,placement:`above`}},{selectedOptions:U}=p(()=>Jk(r,E),[r,E]),ee=p(()=>qk(r,k),[r,k]),W=$k(s,k,r),G=Qk(s,m!==void 0),te=p(()=>{let e=ee.map((e,t)=>({kind:`option`,opt:e,index:t}));if(W){let t=Xk(k);t!==null&&e.push({kind:`use-query`,draft:t})}return e},[ee,W,k]);u(()=>{if(!j||S){L(null);return}let e=()=>{L(H())};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[j,S,E.length,k,te.length]),b(()=>{if(!j)return;let e=e=>{let t=e.target;B.current?.contains(t)||z.current?.contains(t)||M(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[j]);let ne=t=>{let r=t.trim();if(r.length!==0){if(m!==void 0){m(r),A(``),M(!1);return}if(n===`single`){e.onChange(r),A(``),M(!1);return}e.value.includes(r)||D!==void 0&&e.value.length>=D||(e.onChange([...e.value,r]),A(``))}},re=t=>{if(!(n!==`multi`||S))if(e.value.includes(t))e.onChange(e.value.filter(e=>e!==t));else{if(D!==void 0&&e.value.length>=D)return;e.onChange([...e.value,t])}},K=t=>{n!==`single`||S||(e.onChange(t),A(``),M(!1))},ie=e=>{if(e.kind===`option`){if(e.opt.disabled===!0)return;n===`single`?K(e.opt.value):re(e.opt.value)}else e.kind===`use-query`&&ne(e.draft)},ae=te.length+(G&&!W?1:0),oe=t=>{if(t.key===`ArrowDown`)t.preventDefault(),M(!0),F(e=>ae===0?0:(e+1)%ae);else if(t.key===`ArrowUp`)t.preventDefault(),M(!0),F(e=>ae===0?0:(e-1+ae)%ae);else if(t.key===`Enter`){if(t.preventDefault(),W&&N===te.length){let e=Xk(k);e!==null&&ne(e);return}if(G&&!W&&N===te.length){R.current?.focus();return}let e=te[N];if(e)ie(e);else if(s){let e=Xk(k);e!==null&&ne(e)}}else t.key===`Escape`?M(!1):t.key===`Backspace`&&k===``&&n===`multi`&&e.value.length>0&&e.onChange(e.value.slice(0,-1))},se=e=>{e.key===`Enter`||e.key===` `?(e.preventDefault(),M(e=>!e)):e.key===`Escape`&&M(!1)},ce=t=>{n===`single`?e.onChange(``):e.onChange(e.value.filter(e=>e!==t))},le=O===!0?`Max ${D} selected`:i,ue=r.length===0&&!W&&te.length===0&&j,fe;fe=ue?v(`div`,{className:`px-2.5 py-2 text-[11px] text-foreground-subtle`,children:o}):te.length===0&&!s?v(`div`,{className:`px-2.5 py-2 text-[11px] text-foreground-subtle italic`,children:t(`uiLibrary.optionSelect.noMatches`,`No matches for “{{query}}”`,{query:k})}):v(P,{children:te.map((r,i)=>{if(r.kind===`use-query`)return c(`button`,{type:`button`,role:`option`,"aria-selected":!1,className:[`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors`,i===N?`bg-primary/10`:`hover:bg-surface-hover`,`cursor-pointer`].join(` `),onMouseEnter:()=>F(i),onClick:()=>ne(r.draft),children:[v(Se,{className:`h-3.5 w-3.5 shrink-0 text-primary`}),v(`span`,{className:`truncate text-foreground`,children:t(`uiLibrary.optionSelect.use`,`Use “{{value}}”`,{value:r.draft})})]},`__use-query__`);if(r.kind!==`option`)return null;let{opt:a}=r,o=n===`single`?e.value===a.value:e.value.includes(a.value),s=n===`multi`&&!o&&O===!0,l=a.disabled===!0||s,u=te[i-1],f=u!==void 0&&u.kind===`option`?u.opt.group:void 0;return c(d,{children:[a.group!==void 0&&a.group!==f?v(`div`,{role:`presentation`,className:`px-2.5 pb-0.5 pt-1.5 text-[10px] font-medium uppercase tracking-wide text-foreground-subtle`,children:a.group}):null,c(`button`,{type:`button`,role:`option`,"aria-selected":o,disabled:l,"data-testid":y===void 0?void 0:`${y}-${a.value}`,className:[`flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-xs transition-colors`,i===N?`bg-primary/10`:`hover:bg-surface-hover`,l?`opacity-40 cursor-not-allowed`:`cursor-pointer`].join(` `),onMouseEnter:()=>F(i),onClick:()=>ie(r),children:[v(`span`,{className:[`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded border`,o?`border-primary bg-primary text-white`:`border-border`].join(` `),children:o&&v(dt,{className:`h-2.5 w-2.5`})}),v(Hie,{opt:a}),v(`span`,{className:`min-w-0 flex-1 truncate text-foreground`,children:a.label}),a.badge!==void 0&&a.badge.length>0?v(zk,{variant:`default`,children:a.badge}):null]})]},a.value)})});let pe=te.length,me=n===`single`&&e.singleDisplay===`field`&&U.length>0;return c(`div`,{className:`min-w-0 space-y-1`,"data-testid":_,children:[h!==void 0&&h.length>0&&v(`label`,{className:Bie,children:h}),n===`multi`&&U.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mb-1.5`,children:U.map(e=>v(Gk,{label:e.label,...e.iconUrl===void 0?{}:{iconUrl:e.iconUrl},...e.iconId===void 0?{}:{iconId:e.iconId},...S?{}:{onRemove:()=>ce(e.value)},...y===void 0?{}:{testId:`${y}-chip-${e.value}`}},e.value))}),n===`single`&&e.singleDisplay!==`field`&&U.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mb-1.5`,children:U.map(e=>v(Gk,{label:e.label,...e.iconUrl===void 0?{}:{iconUrl:e.iconUrl},...e.iconId===void 0?{}:{iconId:e.iconId},...S?{}:{onRemove:()=>ce(e.value)}},e.value))}),w?c(`div`,{ref:e=>{z.current=e},className:Wk+(S?` opacity-50`:``),children:[v(bi,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`}),v(`input`,{ref:R,type:`text`,role:`combobox`,"aria-expanded":j,"aria-controls":T,className:`min-w-0 flex-1 bg-transparent text-xs text-foreground outline-none placeholder:text-foreground-disabled`,value:me&&!j&&k===``?U[0]?.label??``:k,placeholder:me?U[0]?.label??``:le,disabled:S,onChange:e=>{A(e.target.value),M(!0),F(0)},onFocus:()=>M(!0),onBlur:()=>{V.current=setTimeout(()=>{let e=document.activeElement;B.current?.contains(e)||M(!1)},120)},onKeyDown:oe}),v(de,{className:`h-3.5 w-3.5 shrink-0 cursor-pointer text-foreground-subtle`,onMouseDown:e=>{e.preventDefault(),V.current&&clearTimeout(V.current),M(e=>!e),R.current?.focus()}})]}):c(`button`,{ref:e=>{z.current=e},type:`button`,role:`combobox`,"aria-expanded":j,"aria-controls":T,disabled:S,className:[Wk,`w-full justify-between text-xs text-foreground`,S?`opacity-50 cursor-not-allowed`:`cursor-pointer`].join(` `),onClick:()=>!S&&M(e=>!e),onKeyDown:se,children:[v(`span`,{className:`truncate text-foreground-subtle`,children:U[0]?.label??le}),v(de,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`})]}),j&&!S&&I!==null&&typeof document<`u`&&xo(c(`div`,{ref:B,id:T,role:`listbox`,style:{position:`fixed`,top:I.top,left:I.left,width:I.width,maxHeight:I.maxHeight,zIndex:9999},className:`overflow-y-auto rounded-md border border-border bg-surface shadow-lg`,onMouseDown:e=>{e.preventDefault(),V.current&&clearTimeout(V.current)},children:[fe,G&&c(`button`,{type:`button`,className:[`flex w-full items-center gap-2 border-t border-border px-2.5 py-1.5 text-left text-xs transition-colors`,pe===N?`bg-primary/10`:`hover:bg-surface-hover`,`cursor-pointer text-primary`].join(` `),onMouseEnter:()=>F(pe),onClick:()=>{let e=Xk(k);if(e!==null){m?.(e),A(``),M(!1);return}R.current?.focus()},children:[v(Se,{className:`h-3.5 w-3.5 shrink-0`}),l]})]}),document.body),g!==void 0&&g.length>0&&v(`p`,{className:Vie,children:g})]})}function iA(e,t){return`${e}:${t}`}function aA(e,t,n,r){return e.map(e=>{let i=e.addonId!==void 0&&e.kind!==void 0?t.get(iA(e.addonId,e.kind)):void 0,a;return n?.has(e.id)===!0?a=r:e.enabled||(a=`disabled`),{value:e.id,label:e.name,...i===void 0?{}:{iconUrl:i},...a===void 0?{}:{badge:a}}})}function oA(e){let t=new Map;if(!Array.isArray(e))return t;for(let n of e){if(typeof n!=`object`||!n)continue;let e=Reflect.get(n,`kind`),r=Reflect.get(n,`addonId`),i=Reflect.get(n,`iconUrl`);typeof e!=`string`||typeof r!=`string`||typeof i==`string`&&i.length>0&&t.set(iA(r,e),i)}return t}function sA(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(typeof n!=`object`||!n)continue;let e=Reflect.get(n,`id`),r=Reflect.get(n,`name`),i=Reflect.get(n,`enabled`),a=Reflect.get(n,`kind`),o=Reflect.get(n,`addonId`);typeof e!=`string`||typeof r!=`string`||typeof a!=`string`||typeof o!=`string`||t.push({id:e,name:r,enabled:i===!0,kind:a,addonId:o})}return t}E();function cA({targets:e,value:t,onChange:n,disabled:r=!1,maxItems:i,testIdPrefix:a=`notification-target`,emptyMessage:o,noteIds:s,noteLabel:c,label:l,description:u,kindIconUrls:d}){let f=q(),m=Fv({}),h=p(()=>oA(m.data),[m.data]),g=d??h,_=o??f(`uiLibrary.notificationTargetsField.defaultEmpty`,`No delivery target is configured. Add one on the Targets tab first — without one the notification is rendered and thrown away.`),y=c??f(`uiLibrary.notificationTargetsField.note`,`note`);return v(rA,{mode:`multi`,options:p(()=>aA(e,g,s,y),[e,g,s,y]),value:t,onChange:n,disabled:r,searchable:!0,creatable:!1,...i===void 0?{}:{maxItems:i},emptyMessage:_,placeholder:f(`uiLibrary.notificationTargetsField.searchTargets`,`Search targets…`),label:l,description:u,testId:`${a}s`,optionTestIdPrefix:a,listboxId:`${a}-listbox`})}function lA({targets:e,value:t,onChange:n,disabled:r=!1,emptyMessage:i,placeholder:a,testId:o=`notification-target-select`,label:s,description:c,kindIconUrls:l}){let u=q(),d=Fv({}),f=p(()=>oA(d.data),[d.data]),m=l??f,h=i??u(`uiLibrary.notificationTargetsField.defaultEmpty`,`No delivery target is configured. Add one on the Targets tab first — without one the notification is rendered and thrown away.`),g=a??u(`uiLibrary.notificationTargetsField.select`,`Select…`),_=u(`uiLibrary.notificationTargetsField.note`,`note`);return v(rA,{mode:`single`,options:p(()=>aA(e,m,void 0,_),[e,m,_]),value:t,onChange:n,disabled:r,searchable:!0,creatable:!1,emptyMessage:h,placeholder:g,label:s,description:c,testId:o,optionTestIdPrefix:o,listboxId:`${o}-listbox`})}function uA({label:e,description:t,required:n,translationFn:r,children:i}){return c(`div`,{className:`space-y-1`,children:[c(`label`,{className:`block text-[11px] font-medium text-foreground mb-1 break-words`,children:[Tz(e,r),n===!0?v(`span`,{className:`text-danger`,children:` *`}):null]}),i,t!==void 0&&v(`p`,{className:`text-[10px] text-foreground-subtle mt-0.5 break-words`,children:Tz(t,r)})]})}function dA({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=Iv({}),s=Fv({}),c=p(()=>sA(o.data),[o.data]),l=p(()=>oA(s.data),[s.data]),u=Array.isArray(t)?t.filter(e=>typeof e==`string`):typeof t==`string`&&t.length>0?t.includes(`,`)?t.split(`,`).map(e=>e.trim()).filter(e=>e.length>0):[t]:[],d=o.isPending||s.isPending,f=o.isError?o.error:s.isError?s.error:null;return d?v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.notificationTargetsField.loading`,`Loading targets…`)})}):f===null?v(cA,{targets:c,value:u,onChange:e=>n(e),disabled:r===!0||e.disabled===!0,...e.maxItems===void 0?{}:{maxItems:e.maxItems},kindIconUrls:l,label:Tz(e.label,i),description:e.description===void 0?void 0:Tz(e.description,i),emptyMessage:a(`uiLibrary.notificationTargetsField.noneConfigured`,`No delivery target is configured. Add one under Notification Center → Targets first.`),testIdPrefix:`config-target-${e.key}`}):v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-danger`,children:a(`uiLibrary.notificationTargetsField.loadError`,`Could not load targets: {{message}}`,{message:f instanceof Error?f.message:String(f)})})})}function fA({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=Iv({}),s=Fv({}),c=p(()=>sA(o.data),[o.data]),l=p(()=>oA(s.data),[s.data]),u=typeof t==`string`?t:``,d=o.isPending||s.isPending,f=o.isError?o.error:s.isError?s.error:null;return d?v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.notificationTargetsField.loading`,`Loading targets…`)})}):f===null?v(lA,{targets:c,value:u,onChange:e=>n(e),disabled:r===!0||e.disabled===!0,kindIconUrls:l,label:Tz(e.label,i),description:e.description===void 0?void 0:Tz(e.description,i),emptyMessage:a(`uiLibrary.notificationTargetsField.noneConfigured`,`No delivery target is configured. Add one under Notification Center → Targets first.`),testId:`config-target-${e.key}`}):v(uA,{label:e.label,description:e.description,required:e.required,translationFn:i,children:v(`p`,{className:`text-[11px] text-danger`,children:a(`uiLibrary.notificationTargetsField.loadError`,`Could not load targets: {{message}}`,{message:f instanceof Error?f.message:String(f)})})})}E();var pA=Wn(`camstack:custom-field-renderers`,{});function mA({renderers:e,children:t}){return v(pA.Provider,{value:e,children:t})}function hA(e){return I(pA)[e]??null}E();var Uie=kl(`inline-flex items-center justify-center rounded-md font-medium transition-colors cursor-pointer disabled:opacity-50 disabled:pointer-events-none`,{variants:{variant:{primary:`bg-primary text-primary-foreground hover:bg-primary/90`,secondary:`bg-surface text-foreground hover:bg-surface-hover`,ghost:`hover:bg-surface-hover text-foreground-muted`,danger:`bg-danger text-white hover:bg-danger/90`,outline:`border border-border bg-transparent text-foreground hover:bg-surface-hover`},size:{sm:`h-7 px-2.5 text-xs gap-1.5`,md:`h-8 px-3 text-sm gap-2`,lg:`h-9 px-4 text-sm gap-2`}},defaultVariants:{variant:`primary`,size:`sm`}}),gA=D(({className:e,variant:t,size:n,...r},i)=>v(`button`,{ref:i,className:$(Uie({variant:t,size:n}),e),...r}));gA.displayName=`Button`,E();var Wie=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`,Gie=2e3,Kie=/^[A-Za-z0-9._~-]{8,}$/;function _A(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function vA(e){return typeof e==`string`?e.trim().length>0:!!(ja(e)||Ca(e))}function qie(e){return typeof e==`string`&&e.trim().length>0?e.trim():``}function yA(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(Array.isArray(e))return e.length;if(typeof e==`string`&&e.trim().startsWith(`[`))try{let t=JSON.parse(e);if(Array.isArray(t))return t.length}catch{return null}return null}function Jie(e,t){return e===1?t:`${t}s`}function Yie(e){if(!Array.isArray(e))return[];let t=[];for(let n of e)!_A(n)||typeof n.value!=`string`||typeof n.label!=`string`||t.push({value:n.value,label:n.label,...typeof n.brand==`string`?{brand:n.brand}:{},...typeof n.region==`string`?{region:n.region}:{}});return t}function Xie(e){return typeof e==`string`?e:``}function Zie(e){return e.startsWith(`/`)&&!e.startsWith(`//`)?new URL(e,window.location.origin).toString():e}function Qie(e){let t=e.trim();return t.length===0?!1:t.includes(`code=`)||t.includes(`://`)||t.includes(`error=`)?!0:Kie.test(t)}function $ie({field:e,values:t,disabled:n,onAction:r,onChangeMany:i}){let a=q(),[o,s]=C(`idle`),[l,u]=C(null),[d,p]=C(null),[m,h]=C(``),[g,_]=C(null),[y,x]=C(!1),[S,w]=C([]),T=f(!1),E=qie(t[e.accountKey]),D=e.secretKeys.some(e=>vA(t[e])),O=E.length>0||D,k=(e.countKey===void 0?null:yA(t[e.countKey]))??(e.countFromKey===void 0?null:yA(t[e.countFromKey])),A=o===`pasting`||!O&&l!==null,j=t=>{let n={};for(let[r,i]of Object.entries(e.assignResult??{})){let e=t[i];(typeof e==`string`||typeof e==`number`)&&(n[r]=e)}Object.keys(n).length>0&&i?.(n);let r=Yie(t.choices);w(r.length>1?r:[]);let a=typeof t.gatewayId==`string`&&t.gatewayId.length>0,o=typeof t.summary==`string`?t.summary:null;o!==null&&!a&&r.length<2&&_(o),s(`idle`),h(``),u(null),p(null)},M=e.claimAction;b(()=>{if(M===void 0||l===null||o!==`pasting`||!r)return;let t=!1,n=setInterval(()=>{T.current||r(M,e.key,{attemptId:l}).then(e=>{t||!_A(e)||e.pending===!0||(t=!0,j(e))}).catch(e=>{t||(t=!0,_(e instanceof Error?e.message:String(e)))})},Gie);return()=>{t=!0,clearInterval(n)}},[M,l,o,r,e.key]);let N=async()=>{if(!(!r||y)){x(!0),_(null);try{let t=await r(e.beginAction,e.key,{});if(!_A(t)||typeof t.authorizeUrl!=`string`||typeof t.attemptId!=`string`){_(a(`uiLibrary.accountSignIn.noLink`,`The sign-in page could not be opened. Try again.`));return}if(`verifier`in t||`state`in t){_(a(`uiLibrary.accountSignIn.noLink`,`The sign-in page could not be opened. Try again.`));return}u(t.attemptId),p(t.authorizeUrl),s(`pasting`),window.open(Zie(t.authorizeUrl),`_blank`,`noopener,noreferrer`)}catch(e){_(e instanceof Error?e.message:String(e))}finally{x(!1)}}},P=async t=>{if(!(!r||l===null||T.current)){T.current=!0,x(!0),_(null);try{let n=await r(e.completeAction,e.key,{attemptId:l,callback:t});if(!_A(n)){_(a(`uiLibrary.accountSignIn.rejected`,`The sign-in was not accepted. Start again.`));return}j(n)}catch(e){_(e instanceof Error?e.message:String(e))}finally{T.current=!1,x(!1)}}},F=async()=>{if(!(!r||y)){x(!0),_(null);try{await r(e.signOutAction,e.key,{});let t={[e.accountKey]:``};e.countKey!==void 0&&(t[e.countKey]=0),e.choiceKey!==void 0&&(t[e.choiceKey]=``),e.countFromKey!==void 0&&(t[e.countFromKey]=[]);for(let n of e.secretKeys)t[n]=ra;i?.(t),w([]),s(`idle`),u(null),h(``)}catch(e){_(e instanceof Error?e.message:String(e))}finally{x(!1)}}},I=t=>{let n=S.find(e=>e.value===t);if(n===void 0||e.choiceKey===void 0)return;let r={[e.choiceKey]:n.value};n.brand!==void 0&&(r.brand=n.brand),n.region!==void 0&&(r.region=n.region),i?.(r)},L=E.length>0?E:a(`uiLibrary.accountSignIn.yourAccount`,`your account`),R=k===null?a(`uiLibrary.accountSignIn.signedIn`,`Signed in as {{account}}`,{account:L}):a(`uiLibrary.accountSignIn.signedInCount`,`Signed in as {{account}} · {{detail}}`,{account:L,detail:e.countNoun===void 0?String(k):`${k} ${Jie(k,e.countNoun)}`});return c(`div`,{className:`col-span-1 flex min-w-0 flex-col gap-2`,children:[O&&o===`idle`?c(`div`,{className:`flex flex-col gap-2`,children:[v(`p`,{className:`text-xs text-foreground`,children:R}),S.length>1&&e.choiceKey!==void 0&&v(Hl,{"aria-label":e.choiceLabel??a(`uiLibrary.accountSignIn.choose`,`Choose`),options:S.map(e=>({value:e.value,label:e.label})),value:Xie(t[e.choiceKey]),onChange:e=>I(e.target.value),disabled:n||y}),c(`div`,{className:`flex flex-wrap gap-2`,children:[v(gA,{type:`button`,variant:`outline`,size:`sm`,disabled:n||y,onClick:()=>void N(),children:a(`uiLibrary.accountSignIn.again`,`Sign in again`)}),v(gA,{type:`button`,variant:`ghost`,size:`sm`,disabled:n||y,onClick:()=>void F(),children:a(`uiLibrary.accountSignIn.signOut`,`Sign out`)})]})]}):v(gA,{type:`button`,variant:`primary`,size:`sm`,disabled:n||y,onClick:()=>void N(),children:y&&o!==`pasting`?a(`uiLibrary.accountSignIn.working`,`Working…`):a(`uiLibrary.accountSignIn.signInWith`,`Sign in with {{provider}}`,{provider:e.providerLabel})}),A&&c(`div`,{className:`flex flex-col gap-1.5`,children:[d!==null&&v(`a`,{className:`text-[11px] text-primary break-all`,href:d,target:`_blank`,rel:`noopener noreferrer`,children:a(`uiLibrary.accountSignIn.open`,`Open the sign-in page`)}),M!==void 0&&v(`p`,{className:`text-[11px] text-muted-foreground`,children:a(`uiLibrary.accountSignIn.pasteFallback`,`If the page does not finish, paste the address it stops on here.`)}),v(`textarea`,{className:`${Wie} min-h-[60px] resize-y`,"aria-label":a(`uiLibrary.accountSignIn.paste`,`Redirect address or code`),placeholder:e.pastePlaceholder,value:m,disabled:n||y,onChange:e=>{let t=e.target.value;h(t),Qie(t)&&P(t)}})]}),g!==null&&v(`p`,{className:`text-[11px] text-danger`,children:g})]})}function eae({field:e,values:t}){return v(`p`,{className:`col-span-1 text-xs text-foreground`,children:vA(t[e.sourceKey])?e.yesLabel:e.noLabel})}E();var bA=Wn(`camstack:device-context`,null);function xA({deviceId:e,device:t,children:n}){let r={deviceId:e,device:t??null};return v(bA.Provider,{value:r,children:n})}function SA(){return I(bA)?.deviceId??null}function CA(){return I(bA)?.device??null}E(),bo();function wA(e){let t=(typeof globalThis<`u`?globalThis:void 0)?.[e];return t&&typeof t==`object`?t:{}}var TA={singleton:!0,requiredVersion:!1},EA=e=>({version:`0.0.0`,scope:`default`,lib:e,shareConfig:TA}),DA=`__mf_module_cache__`;function OA(){let e=globalThis,t=e[DA];if(t&&typeof t==`object`){let e=t;return e.share??={},e.remote??={},e}let n={share:{},remote:{}};return e[DA]=n,n}function tae(){let e=OA();e.share.react??=o,e.share[`react-dom`]??=yo,e.share[`react-dom/client`]??=So,e.share[`react/jsx-runtime`]??=N,e.share[`@tanstack/react-query`]??=F,e.share[`@trpc/client`]??=mo,e.share[`@trpc/react-query`]??=_o,e.share[`@camstack/ui-library`]??=wA(`__camstackUiLibrary`),e.share[`@camstack/sdk`]??=wA(`__camstackSdk`),e.share[`@camstack/types`]??=wA(`__camstackTypes`)}var kA=e=>({version:`0.0.0`,scope:`default`,get:()=>e().then(e=>()=>e),shareConfig:TA});function nae(){let e=OA();a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.js-BjdR__nc.js`).then(e=>e.l).then(t=>{e.share[`react-konva`]??=t}),[],import.meta.url),a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__konva__loadShare__.js-B7XYY0cV.js`).then(e=>e.t).then(t=>{e.share.konva??=t}),[],import.meta.url)}function AA(){tae(),i()===null&&(nae(),n({name:`admin_ui_host`,remotes:[],shared:{react:EA(()=>o),"react-dom":EA(()=>yo),"react-dom/client":EA(()=>So),"react/jsx-runtime":EA(()=>N),"@tanstack/react-query":EA(()=>F),"@trpc/client":EA(()=>mo),"@trpc/react-query":EA(()=>_o),"react-konva":kA(()=>a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__react_mf_2_konva__loadShare__.js-BjdR__nc.js`).then(e=>e.l),[],import.meta.url)),konva:kA(()=>a(()=>import(`./_virtual_mf___mfe_internal__admin_ui_host__loadShare__konva__loadShare__.js-B7XYY0cV.js`).then(e=>e.t),[],import.meta.url)),"@camstack/ui-library":EA(()=>wA(`__camstackUiLibrary`)),"@camstack/sdk":EA(()=>wA(`__camstackSdk`)),"@camstack/types":EA(()=>wA(`__camstackTypes`))}}))}E();var jA=Wn(`camstack:widget-registry`,null),MA=new Map,NA=new Map,PA=new Set;function FA(e,t){return`${e}::${t}`}function rae(e){if(!e||typeof e!=`object`)return!1;let t=e.default;return typeof t==`object`&&!!t}function iae(e){if(!e||typeof e!=`object`)return typeof e;let t=e,n=Object.getPrototypeOf(t),r=n&&typeof n==`object`?n.constructor?.name:void 0;return{ownKeys:Object.keys(t),allKeys:Object.getOwnPropertyNames(t),proto:typeof r==`string`?r:void 0}}async function IA(e,n,i){let a=FA(e,n),o=MA.get(a);if(o)return o;let s=NA.get(a);if(s)return s;PA.has(e)||(AA(),r([{name:e,entry:bt(i),type:`module`}],{force:!1}),PA.add(e));let c=t(`${e}/${n.startsWith(`./`)?n.slice(2):n}`).then(t=>{if(!rae(t)){let r=iae(t);throw Error(`Remote ${e} (${i}) does not expose a default record on '${n}'. Got: ${JSON.stringify(r)}`)}let r=t.default;return MA.set(a,r),NA.delete(a),r}).catch(e=>{throw NA.delete(a),e});return NA.set(a,c),c}function LA(e,t){return MA.get(FA(e,t))}var aae=3e4,oae=2e3;function RA({children:e}){let t=k(),n=f(Date.now()),{data:r}=nd(void 0,{staleTime:0,refetchOnMount:`always`,refetchInterval:e=>{let t=e.state.data;return t&&t.length>0||Date.now()-n.current>=aae?!1:oae}});To(`addon.widget-ready`,()=>{t.invalidateQueries({queryKey:[[`addonWidgets`,`listWidgets`]]})});let[i,a]=C(0),o=p(()=>r??[],[r]);b(()=>{if(o.length===0)return;let e=!1,t=new Set;for(let n of o){let r=FA(n.remote.remoteName,n.remote.exposedModule);if(t.has(r)||(t.add(r),MA.has(r)))continue;let i=n.bundleUrl;IA(n.remote.remoteName,n.remote.exposedModule,i).then(()=>{e||a(e=>e+1)}).catch(e=>{let t=e instanceof Error?e.message:String(e);(typeof globalThis<`u`?globalThis.console:void 0)?.error?.(`[WidgetRegistry] Failed to load widget remote`,{remoteName:n.remote.remoteName,exposedModule:n.remote.exposedModule,entryUrl:i,reason:t})})}return()=>{e=!0}},[o]);let s=p(()=>{let e=new Map,t=new Map;for(let n of o)e.set(`${n.addonId}/${n.stableId}`,n),t.set(n.remote.remoteName,n.bundleUrl);let n=(e,t)=>({widgetId:e,addonId:t.addonId,stableId:t.stableId,tab:t.tab,subTab:t.subTab,label:t.label,order:t.order,kind:t.kind,remote:t.remote,description:t.description,icon:t.icon,bundleUrl:t.bundleUrl,hosts:t.hosts,requires:t.requires,defaultSize:t.defaultSize,allowedSizes:t.allowedSizes,defaultColumns:t.defaultColumns,defaultRows:t.defaultRows});return{resolve:t=>{let n=e.get(t);if(!n)return;let r=LA(n.remote.remoteName,n.remote.exposedModule);if(!r)return null;let i=r[n.remote.componentKey??n.stableId];if(i)return i},metadata:t=>{let r=e.get(t);if(r)return n(t,r)},listAll:()=>{let t=[];for(let[r,i]of e)t.push(n(r,i));return t},entryUrlFor:e=>t.get(e)}},[o,i]);return v(jA.Provider,{value:s,children:e})}function sae(e){return VA().resolve(e)}function zA(e){return VA().metadata(e)}function cae(){return VA().listAll()}function BA(e,t){let n=HA(),r=t??n?.entryUrlFor(e.remoteName),[i,a]=C(0),[o,s]=C(!1);return b(()=>{if(!r||(s(!1),LA(e.remoteName,e.exposedModule)))return;let t=!1;return IA(e.remoteName,e.exposedModule,r).then(()=>{t||a(e=>e+1)}).catch(n=>{let i=n instanceof Error?n.message:String(n);(typeof globalThis<`u`?globalThis.console:void 0)?.error?.(`[WidgetRegistry] Failed to load remote component`,{remoteName:e.remoteName,exposedModule:e.exposedModule,entryUrl:r,reason:i}),t||s(!0)}),()=>{t=!0}},[e.remoteName,e.exposedModule,r]),p(()=>{if(!r||o)return;let t=LA(e.remoteName,e.exposedModule);if(!t)return null;let n=e.componentKey;return n===void 0?Object.values(t)[0]??void 0:t[n]??void 0},[e.remoteName,e.exposedModule,e.componentKey,r,i,o])}function VA(){let e=HA();if(!e)throw Error(`useWidgetRegistry(): no <WidgetRegistryProvider> in tree`);return e}function HA(){return lae(jA)}function lae(e){return I(e)}E();function UA(e){let t=k(),n=Ow({deviceId:e??0},{enabled:e!==null&&Number.isFinite(e),refetchInterval:5e3,retry:1}),r=kw({onSuccess:()=>{t.invalidateQueries({queryKey:[[`ptzAutotrack`]]})}}),i=jw({onSuccess:()=>{t.invalidateQueries({queryKey:[[`ptzAutotrack`]]})}}),a=_(async t=>{e!==null&&await r.mutateAsync({deviceId:e,enabled:t})},[e,r]),o=_(async t=>{e!==null&&await i.mutateAsync({deviceId:e,settings:t})},[e,i]),s=n.error?n.error.message:r.error?r.error.message:i.error?i.error.message:null;return{status:n.data??null,isLoading:n.isLoading,isPending:r.isPending||i.isPending,error:s,setEnabled:a,setSettings:o}}E();function WA({deviceId:e}){let t=q(),{status:n,isLoading:r,isPending:i,error:a,setEnabled:o,setSettings:s}=UA(Number.isFinite(e)?e:null),[l,u]=C({targetType:``,stopDelaySeconds:30,disappearDelaySeconds:15}),[d,f]=C(!1);b(()=>{if(d)return;let e=n?.currentSettings;e&&u({targetType:e.targetType,stopDelaySeconds:e.stopDelaySeconds,disappearDelaySeconds:e.disappearDelaySeconds})},[n,d]);let p=v(ui,{className:`h-3.5 w-3.5 text-foreground-subtle`});if(r&&!n)return v($t,{title:t(`uiLibrary.autotrack.title`,`Autotrack`),icon:p,children:c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-foreground-subtle`,children:[v(Un,{className:`h-3 w-3 animate-spin`}),t(`uiLibrary.autotrack.loading`,`Loading autotrack…`)]})});let m=c(`button`,{type:`button`,onClick:()=>{o(!(n?.enabled??!1))},disabled:i,className:`flex items-center gap-1.5 rounded-md px-2 py-1 text-[10px] font-medium transition-colors ${n?.enabled?`bg-success/15 text-success hover:bg-success/25`:`bg-surface-elevated/40 text-foreground-subtle hover:bg-surface-hover hover:text-foreground`} disabled:opacity-50`,"aria-pressed":n?.enabled??!1,children:[v(`span`,{className:`h-1.5 w-1.5 rounded-full ${n?.enabled?`bg-success`:`bg-foreground-subtle/40`}`}),n?.enabled?t(`uiLibrary.autotrack.enabled`,`Enabled`):t(`uiLibrary.autotrack.disabled`,`Disabled`)]});return c($t,{title:t(`uiLibrary.autotrack.title`,`Autotrack`),icon:p,headerRight:m,bodyClassName:`p-3 space-y-2`,children:[a&&c(`div`,{className:`flex items-start gap-1.5 rounded-md border border-danger/30 bg-danger/5 px-2 py-1.5 text-[10px] text-danger`,children:[v(Di,{className:`h-3 w-3 flex-shrink-0 mt-0.5`}),v(`span`,{className:`leading-snug break-words`,children:a})]}),c(`div`,{className:`grid grid-cols-2 gap-2 px-2`,children:[(n?.supportedTargetTypes?.length??0)>0&&c(`label`,{className:`col-span-2 flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.autotrack.targetType`,`Target type`)}),v(`select`,{value:l.targetType,onFocus:()=>f(!0),onChange:e=>u(t=>({...t,targetType:e.target.value})),onBlur:()=>{f(!1);let e=n?.currentSettings?.targetType??``;l.targetType!==e&&s({targetType:l.targetType})},disabled:i,className:`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`,children:(n?.supportedTargetTypes??[]).map(e=>v(`option`,{value:e.value,children:e.label},e.value))})]}),c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.autotrack.stopDelay`,`Stop delay (s)`)}),v(`input`,{type:`number`,min:0,max:300,value:l.stopDelaySeconds,onFocus:()=>f(!0),onChange:e=>u(t=>({...t,stopDelaySeconds:Number(e.target.value)||0})),onBlur:()=>{f(!1);let e=n?.currentSettings?.stopDelaySeconds??30;l.stopDelaySeconds!==e&&s({stopDelaySeconds:l.stopDelaySeconds})},disabled:i,className:`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`})]}),c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.autotrack.disappearDelay`,`Disappear delay (s)`)}),v(`input`,{type:`number`,min:0,max:300,value:l.disappearDelaySeconds,onFocus:()=>f(!0),onChange:e=>u(t=>({...t,disappearDelaySeconds:Number(e.target.value)||0})),onBlur:()=>{f(!1);let e=n?.currentSettings?.disappearDelaySeconds??15;l.disappearDelaySeconds!==e&&s({disappearDelaySeconds:l.disappearDelaySeconds})},disabled:i,className:`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`})]})]}),v(`p`,{className:`px-2 text-[9.5px] text-foreground-subtle leading-snug italic`,children:t(`uiLibrary.autotrack.note`,`Settings save on blur. Vendor support varies — Reolink honours all three; Hikvision honours target type + stop delay only (disappear delay is accepted but ignored at firmware push).`)})]})}E();var GA=O(null);function KA(){return I(GA)}function uae(e){let t=e.display?.label,n=t==null?``:t.trim();return{id:e.id,name:e.name,type:e.type,stableId:e.stableId,role:e.role??null,parentDeviceId:e.parentDeviceId??null,location:e.location??null,...n.length>0?{display:{label:n}}:{},...e.primaryChildEntityId===void 0?{}:{primaryChildEntityId:e.primaryChildEntityId},...e.userNamed===void 0?{}:{userNamed:e.userNamed}}}function qA(e){let t=new Map,n=new Map;for(let r of e){let e=uae(r);t.set(e.id,e);let i=e.parentDeviceId;if(i==null||i===e.id)continue;let a=n.get(i);a===void 0?n.set(i,[e.id]):a.push(e.id)}return{byId:t,childIds:n}}function JA({devices:e,children:t}){let n=p(()=>e===null?null:qA(e),[e]);return v(GA.Provider,{value:n,children:t})}function YA({children:e}){let t=nm({projection:`slim`});return v(JA,{devices:t.data===void 0?null:t.data,children:e})}var XA=` · `,dae=[`compact`,`full`,`nested`,`with-location`],fae=[` — `,` - `,`: `,` `],pae=new Set([`battery-sensor`,`temperature-sensor`,`humidity-sensor`,`ambient-light-sensor`,`connectivity-sensor`,`datetime-sensor`,`numeric-sensor`,`enum-sensor`]);function ZA(e){return e.toLowerCase().replace(/[-_\s]+/g,` `).trim()}function QA(e,t){return ZA(e)===ZA(t)}function $A(e,t){if(t.length===0)return e;let n=e.toLowerCase(),r=t.toLowerCase();for(let t of fae){let i=`${r}${t}`;if(n.startsWith(i))return e.slice(i.length).trim()}return e}function ej(e){let t=e.role;return t==null||t.length===0?null:t}function mae(e){if(e.type===`update`)return!0;let t=ej(e);return t!==null&&pae.has(t)}function tj(e){let t=e.display?.label;return t==null?``:t.trim()}function nj(e,t,n){let r=tj(e);if(r.length>0)return r;let i=$A(e.name,t.name),a=i.length>0?i:e.name;return e.userNamed===!0?a:i.length===0||QA(i,t.name)||n.isStockPhrase(a,ej(e),e.type)?n.shortNoun(ej(e),e.type):a}function hae(e,t,n){return QA(n,t.name)?!0:tj(e).length>0||e.userNamed===!0?!1:QA($A(e.name,t.name),t.name)}function gae(e){let t=0;for(let n of e)mae(n)||(t+=1);return t}function _ae(e,t,n){let r=Gi(n.map(e=>{let t=ej(e);return{id:e.id,stableId:e.stableId,type:e.type,name:e.name,...t===null?{}:{role:t}}}),t.primaryChildEntityId,t.name);return r!==null&&r.id===e.id}function vae(e,t,n,r,i){let a=nj(e,t,r);return hae(e,t,a)||i===`compact`&&t.type===`container`&&_ae(e,t,n)&&gae(n)===1?t.name:`${t.name}${XA}${a}`}function rj(e,t){if(t==null)return e;let n=t.trim();return n.length===0||e.split(` · `).some(e=>QA(e,n))?e:`${e}${XA}${n}`}function yae(e,t){return t===null?!1:e.parentDeviceId!=null}function ij(e,t,n,r){if(!yae(e,n.parent))return t===`with-location`?rj(e.name,e.location):e.name;if(t===`nested`)return nj(e,n.parent,r);let i=vae(e,n.parent,n.siblings,r,t===`full`?`full`:`compact`);return t===`with-location`?rj(i,e.location):i}var aj=[{id:`siren`,key:`uiLibrary.deviceMeta.noun.role.siren`,en:`Siren`,it:`Sirena`,shortEn:`Siren`,shortIt:`Sirena`,aliases:[]},{id:`floodlight`,key:`uiLibrary.deviceMeta.noun.role.floodlight`,en:`Floodlight`,it:`Faro`,shortEn:`Floodlight`,shortIt:`Faro`,aliases:[]},{id:`spotlight`,key:`uiLibrary.deviceMeta.noun.role.spotlight`,en:`Spotlight`,it:`Faretto`,shortEn:`Spotlight`,shortIt:`Faretto`,aliases:[]},{id:`pir-sensor`,key:`uiLibrary.deviceMeta.noun.role.pirSensor`,en:`PIR sensor`,it:`Sensore PIR`,shortEn:`PIR`,shortIt:`PIR`,aliases:[]},{id:`chime`,key:`uiLibrary.deviceMeta.noun.role.chime`,en:`Chime`,it:`Campanello`,shortEn:`Chime`,shortIt:`Campanello`,aliases:[]},{id:`autotrack`,key:`uiLibrary.deviceMeta.noun.role.autotrack`,en:`Auto-track`,it:`Auto-tracking`,shortEn:`Auto-track`,shortIt:`Auto-tracking`,aliases:[]},{id:`nightvision`,key:`uiLibrary.deviceMeta.noun.role.nightvision`,en:`Night vision`,it:`Visione notturna`,shortEn:`Night`,shortIt:`Notturna`,aliases:[]},{id:`privacy-mask`,key:`uiLibrary.deviceMeta.noun.role.privacyMask`,en:`Privacy mask`,it:`Maschera privacy`,shortEn:`Privacy`,shortIt:`Privacy`,aliases:[]},{id:`doorbell`,key:`uiLibrary.deviceMeta.noun.role.doorbell`,en:`Doorbell`,it:`Campanello video`,shortEn:`Doorbell`,shortIt:`Campanello video`,aliases:[]},{id:`cover-blind`,key:`uiLibrary.deviceMeta.noun.role.coverBlind`,en:`Blind`,it:`Tapparella`,shortEn:`Blind`,shortIt:`Tapparella`,aliases:[]},{id:`cover-shutter`,key:`uiLibrary.deviceMeta.noun.role.coverShutter`,en:`Shutter`,it:`Persiana`,shortEn:`Shutter`,shortIt:`Persiana`,aliases:[]},{id:`cover-awning`,key:`uiLibrary.deviceMeta.noun.role.coverAwning`,en:`Awning`,it:`Tenda da sole`,shortEn:`Awning`,shortIt:`Tenda da sole`,aliases:[]},{id:`cover-curtain`,key:`uiLibrary.deviceMeta.noun.role.coverCurtain`,en:`Curtain`,it:`Tenda`,shortEn:`Curtain`,shortIt:`Tenda`,aliases:[]},{id:`cover-garage`,key:`uiLibrary.deviceMeta.noun.role.coverGarage`,en:`Garage door`,it:`Porta del garage`,shortEn:`Garage`,shortIt:`Garage`,aliases:[]},{id:`cover-gate`,key:`uiLibrary.deviceMeta.noun.role.coverGate`,en:`Gate`,it:`Cancello`,shortEn:`Gate`,shortIt:`Cancello`,aliases:[]},{id:`cover-door`,key:`uiLibrary.deviceMeta.noun.role.coverDoor`,en:`Door`,it:`Porta`,shortEn:`Door`,shortIt:`Porta`,aliases:[]},{id:`cover-window`,key:`uiLibrary.deviceMeta.noun.role.coverWindow`,en:`Window`,it:`Finestra`,shortEn:`Window`,shortIt:`Finestra`,aliases:[]},{id:`binary-helper`,key:`uiLibrary.deviceMeta.noun.role.binaryHelper`,en:`Binary helper`,it:`Helper binario`,shortEn:`Helper`,shortIt:`Helper`,aliases:[]},{id:`outlet`,key:`uiLibrary.deviceMeta.noun.role.outlet`,en:`Outlet`,it:`Presa`,shortEn:`Outlet`,shortIt:`Presa`,aliases:[]},{id:`motion-sensor`,key:`uiLibrary.deviceMeta.noun.role.motionSensor`,en:`Motion sensor`,it:`Sensore di movimento`,shortEn:`Motion`,shortIt:`Movimento`,aliases:[]},{id:`contact-sensor`,key:`uiLibrary.deviceMeta.noun.role.contactSensor`,en:`Contact sensor`,it:`Sensore di contatto`,shortEn:`Contact`,shortIt:`Contatto`,aliases:[]},{id:`leak-sensor`,key:`uiLibrary.deviceMeta.noun.role.leakSensor`,en:`Leak sensor`,it:`Sensore di perdite`,shortEn:`Leak`,shortIt:`Perdita`,aliases:[]},{id:`smoke-sensor`,key:`uiLibrary.deviceMeta.noun.role.smokeSensor`,en:`Smoke sensor`,it:`Sensore di fumo`,shortEn:`Smoke`,shortIt:`Fumo`,aliases:[]},{id:`co-sensor`,key:`uiLibrary.deviceMeta.noun.role.cOSensor`,en:`CO sensor`,it:`Sensore di CO`,shortEn:`CO`,shortIt:`CO`,aliases:[]},{id:`gas-sensor`,key:`uiLibrary.deviceMeta.noun.role.gasSensor`,en:`Gas sensor`,it:`Sensore di gas`,shortEn:`Gas`,shortIt:`Gas`,aliases:[]},{id:`tamper-sensor`,key:`uiLibrary.deviceMeta.noun.role.tamperSensor`,en:`Tamper sensor`,it:`Sensore antimanomissione`,shortEn:`Tamper`,shortIt:`Manomissione`,aliases:[]},{id:`vibration-sensor`,key:`uiLibrary.deviceMeta.noun.role.vibrationSensor`,en:`Vibration sensor`,it:`Sensore di vibrazione`,shortEn:`Vibration`,shortIt:`Vibrazione`,aliases:[]},{id:`connectivity-sensor`,key:`uiLibrary.deviceMeta.noun.role.connectivitySensor`,en:`Connectivity`,it:`Connettività`,shortEn:`Connectivity`,shortIt:`Connettività`,aliases:[]},{id:`sound-sensor`,key:`uiLibrary.deviceMeta.noun.role.soundSensor`,en:`Sound sensor`,it:`Sensore acustico`,shortEn:`Sound`,shortIt:`Suono`,aliases:[]},{id:`binary-sensor`,key:`uiLibrary.deviceMeta.noun.role.binarySensor`,en:`Binary sensor`,it:`Sensore binario`,shortEn:`Binary`,shortIt:`Binario`,aliases:[]},{id:`temperature-sensor`,key:`uiLibrary.deviceMeta.noun.role.temperatureSensor`,en:`Temperature`,it:`Temperatura`,shortEn:`Temperature`,shortIt:`Temperatura`,aliases:[]},{id:`humidity-sensor`,key:`uiLibrary.deviceMeta.noun.role.humiditySensor`,en:`Humidity`,it:`Umidità`,shortEn:`Humidity`,shortIt:`Umidità`,aliases:[]},{id:`ambient-light-sensor`,key:`uiLibrary.deviceMeta.noun.role.ambientLightSensor`,en:`Ambient light`,it:`Luce ambientale`,shortEn:`Light`,shortIt:`Luce`,aliases:[`Illumination`]},{id:`pressure-sensor`,key:`uiLibrary.deviceMeta.noun.role.pressureSensor`,en:`Pressure`,it:`Pressione`,shortEn:`Pressure`,shortIt:`Pressione`,aliases:[]},{id:`wind-sensor`,key:`uiLibrary.deviceMeta.noun.role.windSensor`,en:`Wind`,it:`Vento`,shortEn:`Wind`,shortIt:`Vento`,aliases:[]},{id:`rain-sensor`,key:`uiLibrary.deviceMeta.noun.role.rainSensor`,en:`Rain`,it:`Pioggia`,shortEn:`Rain`,shortIt:`Pioggia`,aliases:[]},{id:`uv-sensor`,key:`uiLibrary.deviceMeta.noun.role.uvSensor`,en:`UV index`,it:`Indice UV`,shortEn:`UV index`,shortIt:`Indice UV`,aliases:[]},{id:`solar-radiation-sensor`,key:`uiLibrary.deviceMeta.noun.role.solarRadiationSensor`,en:`Solar radiation`,it:`Radiazione solare`,shortEn:`Solar radiation`,shortIt:`Radiazione solare`,aliases:[]},{id:`soil-moisture-sensor`,key:`uiLibrary.deviceMeta.noun.role.soilMoistureSensor`,en:`Soil moisture`,it:`Umidità del suolo`,shortEn:`Soil moisture`,shortIt:`Umidità del suolo`,aliases:[]},{id:`power-sensor`,key:`uiLibrary.deviceMeta.noun.role.powerSensor`,en:`Power`,it:`Potenza`,shortEn:`Power`,shortIt:`Potenza`,aliases:[]},{id:`energy-sensor`,key:`uiLibrary.deviceMeta.noun.role.energySensor`,en:`Energy`,it:`Energia`,shortEn:`Energy`,shortIt:`Energia`,aliases:[]},{id:`voltage-sensor`,key:`uiLibrary.deviceMeta.noun.role.voltageSensor`,en:`Voltage`,it:`Tensione`,shortEn:`Voltage`,shortIt:`Tensione`,aliases:[]},{id:`current-sensor`,key:`uiLibrary.deviceMeta.noun.role.currentSensor`,en:`Current`,it:`Corrente`,shortEn:`Current`,shortIt:`Corrente`,aliases:[]},{id:`air-quality-sensor`,key:`uiLibrary.deviceMeta.noun.role.airQualitySensor`,en:`Air quality`,it:`Qualità dell’aria`,shortEn:`Air quality`,shortIt:`Qualità dell’aria`,aliases:[]},{id:`battery-sensor`,key:`uiLibrary.deviceMeta.noun.role.batterySensor`,en:`Battery`,it:`Batteria`,shortEn:`Battery`,shortIt:`Batteria`,aliases:[]},{id:`numeric-sensor`,key:`uiLibrary.deviceMeta.noun.role.numericSensor`,en:`Numeric sensor`,it:`Sensore numerico`,shortEn:`Value`,shortIt:`Numerico`,aliases:[]},{id:`enum-sensor`,key:`uiLibrary.deviceMeta.noun.role.enumSensor`,en:`Enum sensor`,it:`Sensore a stati`,shortEn:`State`,shortIt:`Stato`,aliases:[]},{id:`datetime-sensor`,key:`uiLibrary.deviceMeta.noun.role.dateTimeSensor`,en:`Date / time`,it:`Data / ora`,shortEn:`Time`,shortIt:`Ora`,aliases:[`Last seen`]},{id:`generic-sensor`,key:`uiLibrary.deviceMeta.noun.role.genericSensor`,en:`Sensor`,it:`Sensore`,shortEn:`Sensor`,shortIt:`Sensore`,aliases:[]},{id:`numeric-control`,key:`uiLibrary.deviceMeta.noun.role.numericControl`,en:`Numeric control`,it:`Controllo numerico`,shortEn:`Number`,shortIt:`Numero`,aliases:[]},{id:`select-control`,key:`uiLibrary.deviceMeta.noun.role.selectControl`,en:`Select control`,it:`Controllo a selezione`,shortEn:`Select`,shortIt:`Selezione`,aliases:[]},{id:`text-control`,key:`uiLibrary.deviceMeta.noun.role.textControl`,en:`Text control`,it:`Controllo testo`,shortEn:`Text`,shortIt:`Testo`,aliases:[]},{id:`datetime-control`,key:`uiLibrary.deviceMeta.noun.role.dateTimeControl`,en:`Date / time control`,it:`Controllo data / ora`,shortEn:`Time`,shortIt:`Ora`,aliases:[]},{id:`mobile-push-notifier`,key:`uiLibrary.deviceMeta.noun.role.mobilePushNotifier`,en:`Mobile push`,it:`Push su mobile`,shortEn:`Push`,shortIt:`Push`,aliases:[]},{id:`messaging-notifier`,key:`uiLibrary.deviceMeta.noun.role.messagingNotifier`,en:`Messaging`,it:`Messaggistica`,shortEn:`Messaging`,shortIt:`Messaggistica`,aliases:[]},{id:`email-notifier`,key:`uiLibrary.deviceMeta.noun.role.emailNotifier`,en:`Email`,it:`Email`,shortEn:`Email`,shortIt:`Email`,aliases:[]},{id:`generic-notifier`,key:`uiLibrary.deviceMeta.noun.role.genericNotifier`,en:`Notifier`,it:`Notificatore`,shortEn:`Notifier`,shortIt:`Notificatore`,aliases:[]}],oj=[{id:`camera`,key:`uiLibrary.deviceMeta.noun.type.camera`,en:`Camera`,it:`Telecamera`,shortEn:`Camera`,shortIt:`Telecamera`,aliases:[]},{id:`hub`,key:`uiLibrary.deviceMeta.noun.type.hub`,en:`Hub`,it:`Hub`,shortEn:`Hub`,shortIt:`Hub`,aliases:[]},{id:`light`,key:`uiLibrary.deviceMeta.noun.type.light`,en:`Light`,it:`Luce`,shortEn:`Light`,shortIt:`Luce`,aliases:[]},{id:`siren`,key:`uiLibrary.deviceMeta.noun.type.siren`,en:`Siren`,it:`Sirena`,shortEn:`Siren`,shortIt:`Sirena`,aliases:[]},{id:`switch`,key:`uiLibrary.deviceMeta.noun.type.switch`,en:`Switch`,it:`Interruttore`,shortEn:`Switch`,shortIt:`Interruttore`,aliases:[]},{id:`sensor`,key:`uiLibrary.deviceMeta.noun.type.sensor`,en:`Sensor`,it:`Sensore`,shortEn:`Sensor`,shortIt:`Sensore`,aliases:[]},{id:`thermostat`,key:`uiLibrary.deviceMeta.noun.type.thermostat`,en:`Thermostat`,it:`Termostato`,shortEn:`Thermostat`,shortIt:`Termostato`,aliases:[]},{id:`climate`,key:`uiLibrary.deviceMeta.noun.type.climate`,en:`Air conditioner`,it:`Condizionatore`,shortEn:`Climate`,shortIt:`Condizionatore`,aliases:[]},{id:`button`,key:`uiLibrary.deviceMeta.noun.type.button`,en:`Button`,it:`Pulsante`,shortEn:`Button`,shortIt:`Pulsante`,aliases:[]},{id:`event-emitter`,key:`uiLibrary.deviceMeta.noun.type.eventEmitter`,en:`Event Emitter`,it:`Emettitore di eventi`,shortEn:`Event`,shortIt:`Evento`,aliases:[]},{id:`update`,key:`uiLibrary.deviceMeta.noun.type.update`,en:`Update`,it:`Aggiornamento`,shortEn:`Update`,shortIt:`Aggiornamento`,aliases:[]},{id:`generic`,key:`uiLibrary.deviceMeta.noun.type.generic`,en:`Generic`,it:`Generico`,shortEn:`Generic`,shortIt:`Generico`,aliases:[]},{id:`notifier`,key:`uiLibrary.deviceMeta.noun.type.notifier`,en:`Notifier`,it:`Notificatore`,shortEn:`Notifier`,shortIt:`Notificatore`,aliases:[]},{id:`script`,key:`uiLibrary.deviceMeta.noun.type.script`,en:`Script`,it:`Script`,shortEn:`Script`,shortIt:`Script`,aliases:[]},{id:`automation`,key:`uiLibrary.deviceMeta.noun.type.automation`,en:`Automation`,it:`Automazione`,shortEn:`Automation`,shortIt:`Automazione`,aliases:[]},{id:`lock`,key:`uiLibrary.deviceMeta.noun.type.lock`,en:`Lock`,it:`Serratura`,shortEn:`Lock`,shortIt:`Serratura`,aliases:[]},{id:`cover`,key:`uiLibrary.deviceMeta.noun.type.cover`,en:`Cover`,it:`Copertura`,shortEn:`Cover`,shortIt:`Copertura`,aliases:[]},{id:`valve`,key:`uiLibrary.deviceMeta.noun.type.valve`,en:`Valve`,it:`Valvola`,shortEn:`Valve`,shortIt:`Valvola`,aliases:[]},{id:`humidifier`,key:`uiLibrary.deviceMeta.noun.type.humidifier`,en:`Humidifier`,it:`Umidificatore`,shortEn:`Humidifier`,shortIt:`Umidificatore`,aliases:[]},{id:`water-heater`,key:`uiLibrary.deviceMeta.noun.type.waterHeater`,en:`Water heater`,it:`Scaldabagno`,shortEn:`Heater`,shortIt:`Scaldabagno`,aliases:[]},{id:`fan`,key:`uiLibrary.deviceMeta.noun.type.fan`,en:`Fan`,it:`Ventilatore`,shortEn:`Fan`,shortIt:`Ventilatore`,aliases:[]},{id:`media-player`,key:`uiLibrary.deviceMeta.noun.type.mediaPlayer`,en:`Media player`,it:`Lettore multimediale`,shortEn:`Player`,shortIt:`Lettore`,aliases:[]},{id:`alarm-panel`,key:`uiLibrary.deviceMeta.noun.type.alarmPanel`,en:`Alarm panel`,it:`Pannello allarme`,shortEn:`Alarm`,shortIt:`Allarme`,aliases:[]},{id:`control`,key:`uiLibrary.deviceMeta.noun.type.control`,en:`Control`,it:`Controllo`,shortEn:`Control`,shortIt:`Controllo`,aliases:[]},{id:`presence`,key:`uiLibrary.deviceMeta.noun.type.presence`,en:`Presence`,it:`Presenza`,shortEn:`Presence`,shortIt:`Presenza`,aliases:[]},{id:`weather`,key:`uiLibrary.deviceMeta.noun.type.weather`,en:`Weather`,it:`Meteo`,shortEn:`Weather`,shortIt:`Meteo`,aliases:[]},{id:`vacuum`,key:`uiLibrary.deviceMeta.noun.type.vacuum`,en:`Vacuum`,it:`Aspirapolvere`,shortEn:`Vacuum`,shortIt:`Aspirapolvere`,aliases:[]},{id:`lawn-mower`,key:`uiLibrary.deviceMeta.noun.type.lawnMower`,en:`Lawn mower`,it:`Tagliaerba`,shortEn:`Mower`,shortIt:`Tagliaerba`,aliases:[]},{id:`container`,key:`uiLibrary.deviceMeta.noun.type.container`,en:`Container`,it:`Contenitore`,shortEn:`Container`,shortIt:`Contenitore`,aliases:[]},{id:`image`,key:`uiLibrary.deviceMeta.noun.type.image`,en:`Image`,it:`Immagine`,shortEn:`Image`,shortIt:`Immagine`,aliases:[]},{id:`pet-feeder`,key:`uiLibrary.deviceMeta.noun.type.petFeeder`,en:`Pet feeder`,it:`Distributore di cibo per animali`,shortEn:`Feeder`,shortIt:`Distributore`,aliases:[]},{id:`dishwasher`,key:`uiLibrary.deviceMeta.noun.type.dishwasher`,en:`Dishwasher`,it:`Lavastoviglie`,shortEn:`Dishwasher`,shortIt:`Lavastoviglie`,aliases:[]}],bae={id:``,key:`uiLibrary.deviceMeta.noun.fallback`,en:`Device`,it:`Dispositivo`,shortEn:`Device`,shortIt:`Dispositivo`,aliases:[]};function sj(e,t){if(!(t===null||t.length===0))return e.find(e=>e.id===t)}function cj(e,t){if(e!==null){let t=sj(aj,e);if(t!==void 0)return t}return sj(oj,t)??bae}function xae(e,t){let n=[],r=[sj(aj,e),sj(oj,t)];for(let e of r)e!==void 0&&n.push(e.en,e.it,e.shortEn,e.shortIt,...e.aliases);return n}function lj(e,t,n){let r=ZA(e);return r.length===0?!0:xae(t,n).some(e=>ZA(e)===r)}function uj(e){return{shortNoun(t,n){let r=cj(t,n);return e===`it`?r.shortIt:r.shortEn},isStockPhrase(e,t,n){return lj(e,t,n)}}}function dj(){let e=q();return{shortNoun(t,n){let r=cj(t,n);return e(r.key,r.shortEn)},isStockPhrase(e,t,n){return lj(e,t,n)}}}function Sae(e){return{id:e,name:`#${String(e)}`,type:`unknown`,stableId:``,role:null,parentDeviceId:null}}function Cae(e,t){let n=e.parentDeviceId;return n==null?null:t.byId.get(n)??Sae(n)}function wae(e,t){let n=e.parentDeviceId;if(n==null)return[];let r=t.childIds.get(n)??[],i=[];for(let e of r){let n=t.byId.get(e);n!==void 0&&i.push(n)}return i.some(t=>t.id===e.id)||i.push(e),i}function fj(e,t,n,r,i){let a=n?.byId.get(e.id)??e;return a.parentDeviceId!=null&&n===null&&i?.parent===void 0?a.name:ij(a,t,{parent:i?.parent===void 0?n===null?null:Cae(a,n):i.parent,siblings:i?.siblings??(n===null?[]:wae(a,n))},r)}function pj(e,t,n){return fj(e,t,KA(),dj(),n)}function mj(e,t,n){let r=KA(),i=dj();if(r===null)return n??`#${String(e)}`;let a=r.byId.get(e);return a===void 0?`#${String(e)}`:fj(a,t,r,i)}function hj({device:e,form:t,parent:n,siblings:r,className:i,testId:a}){let o=pj(e,t,{...n===void 0?{}:{parent:n},...r===void 0?{}:{siblings:r}});return v(`span`,{className:i,title:o,"data-testid":a,children:o})}E();function gj(e){let t=Rn(),n=p(()=>e?JSON.stringify(e):``,[e]),[r,i]=C(()=>t.listDevices(e));return b(()=>{let n=()=>{i(t.listDevices(e))};n();let r=null,a=null;try{r=t.onDeviceAdded(n),a=t.onDeviceRemoved(n)}catch{}let o=t.subscribeConnectionEvents(e=>{e===`connected`&&n()});return()=>{r?.(),a?.(),o()}},[t,e,n]),r}function _j(e){let t=Rn(),[n,r]=C(()=>e===null?null:t.getDevice(e));return b(()=>{if(e===null){r(null);return}let n=()=>{r(t.getDevice(e))};n();let i=null,a=null;try{i=t.onDeviceAdded(n),a=t.onDeviceRemoved(n)}catch{}let o=t.subscribeConnectionEvents(e=>{e===`connected`&&n()});return()=>{i?.(),a?.(),o()}},[t,e]),n}var vj=.02;function yj(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function bj(e){if(!yj(e))return null;let{x:t,y:n,width:r,height:i}=e;return typeof t!=`number`||typeof n!=`number`||typeof r!=`number`||typeof i!=`number`||t<0||n<0||r<=0||i<=0||t+r>1||n+i>1?null:{x:t,y:n,width:r,height:i}}function xj(e){if(!yj(e))return null;let t=e.deviceId;if(typeof t!=`number`||!Number.isInteger(t))return null;let n=bj(e.source),r=bj(e.cell);return n===null||r===null?null:{deviceId:t,source:n,cell:r}}function Sj(e){if(!yj(e))return null;let t=e.profile,n=e.offered,r=e.missingSources;if(t!==`high`&&t!==`mid`&&t!==`low`||typeof n!=`boolean`||!Array.isArray(r))return null;let i=[];for(let e of r){if(typeof e!=`number`||!Number.isInteger(e))return null;i.push(e)}return{profile:t,offered:n,missingSources:i,canvas:typeof e.canvas==`string`?e.canvas:``,published:typeof e.published==`boolean`?e.published:n}}function Cj(e){if(e===null)return null;if(!yj(e))return`unreadable`;let{instanceId:t,deviceId:n,name:r,fps:i,cells:a,profiles:o}=e;if(typeof t!=`string`||typeof n!=`number`||typeof r!=`string`||typeof i!=`number`||!Array.isArray(a)||!Array.isArray(o))return`unreadable`;let s=[];for(let e of a){let t=xj(e);if(t===null)return`unreadable`;s.push(t)}let c=[];for(let e of o){let t=Sj(e);if(t===null)return`unreadable`;c.push(t)}return{instanceId:t,deviceId:n,name:r,fps:i,cells:s,profiles:c}}function wj(e){let t=Math.min(1,Math.max(vj,e.width)),n=Math.min(1,Math.max(vj,e.height));return{x:Math.min(1-t,Math.max(0,e.x)),y:Math.min(1-n,Math.max(0,e.y)),width:t,height:n}}function Tj(e,t,n){return wj({...e,x:e.x+t,y:e.y+n})}function Ej(e,t,n,r){let i=t===`nw`||t===`w`||t===`sw`,a=t===`ne`||t===`e`||t===`se`,o=t===`nw`||t===`n`||t===`ne`,s=t===`sw`||t===`s`||t===`se`,c=e.x,l=e.x+e.width,u=e.y,d=e.y+e.height;return i&&(c=Math.min(l-vj,Math.max(0,c+n))),a&&(l=Math.max(c+vj,Math.min(1,l+n))),o&&(u=Math.min(d-vj,Math.max(0,u+r))),s&&(d=Math.max(u+vj,Math.min(1,d+r))),wj({x:c,y:u,width:l-c,height:d-u})}function Dj(e){if(!Number.isFinite(e)||e<=0)return[];let t=Math.floor(e),n=Math.ceil(Math.sqrt(t)),r=Math.ceil(t/n),i=[],a=0;for(let e=0;e<r;e++){let o=Math.min(n,t-a),s=1/r,c=1/o;for(let t=0;t<o;t++)i.push({x:t*c,y:e*s,width:c,height:s});a+=o}return i}E();var Oj={x:0,y:0,width:1,height:1},kj=16,Aj={type:J.Camera},jj={touchAction:`none`},Mj=`absolute flex h-6 w-6 items-center justify-center`,Nj=[`nw`,`n`,`ne`,`e`,`se`,`s`,`sw`,`w`],Pj={nw:`-top-3 -left-3 cursor-nw-resize`,n:`-top-3 left-1/2 -translate-x-1/2 cursor-n-resize`,ne:`-top-3 -right-3 cursor-ne-resize`,e:`top-1/2 -right-3 -translate-y-1/2 cursor-e-resize`,se:`-bottom-3 -right-3 cursor-se-resize`,s:`-bottom-3 left-1/2 -translate-x-1/2 cursor-s-resize`,sw:`-bottom-3 -left-3 cursor-sw-resize`,w:`top-1/2 -left-3 -translate-y-1/2 cursor-w-resize`};function Fj(e){e.currentTarget.setPointerCapture(e.pointerId)}function Ij(e,t,n){return e.mode===`move`?Tj(e.origin,t,n):Ej(e.origin,e.mode,t,n)}function Lj({deviceId:e}){let t=q(),n=Rn(),r=p(()=>n.listDeviceInfos(Aj),[n,gj(Aj)]),[i,a]=C(void 0),[o,s]=C(null),[l,u]=C(!1),[d,f]=C(null),[m,h]=C(0),[g,y]=C(null),x=Ge(n.trpcClient,e),S=_(async()=>{let e=x?.cameraGridLayout;if(!e)return;let t=Cj(await e.getLayout({}));a(t),s(t===null||t===`unreadable`?null:t)},[x]);b(()=>{if(x){if(!x.cameraGridLayout){a(null);return}S().catch(()=>{a(`unreadable`)})}},[x,S]);let w=_(async e=>{let t=x?.cameraGridLayout;if(!(o===null||!t)){u(!0),f(null);try{let n=Cj(await t.saveLayout({name:o.name,fps:o.fps,cells:o.cells.map(e=>({...e})),...e?.publishedProfiles===void 0?{}:{publishedProfiles:[...e.publishedProfiles]}}));n!==null&&n!==`unreadable`&&(a(n),s(n))}catch(e){f(e instanceof Error?e.message:String(e))}finally{u(!1)}}},[x,o]),T=_((e,t)=>{s(n=>n===null?n:{...n,cells:n.cells.map((n,r)=>r===e?{...n,...t}:n)})},[]),E=p(()=>{let e=i==null||i===`unreadable`?[]:i.profiles;for(let t of e){if(!t.offered)continue;let[e,n]=t.canvas.split(`x`).map(Number);if(e!==void 0&&n!==void 0&&e>0&&n>0)return e/n}return 16/9},[i]);if(i===void 0)return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),children:c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-foreground-subtle`,children:[v(Un,{className:`h-3 w-3 animate-spin`}),` `,t(`uiLibrary.cameraGridLayout.loading`,`Loading the layout…`)]})});if(i===`unreadable`)return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),children:c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-danger`,children:[v(Di,{className:`h-3 w-3`}),t(`uiLibrary.cameraGridLayout.unreadable`,`The Camera Grids addon did not answer, so this layout is unknown — not empty.`)]})});if(i===null||o===null)return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),children:v(`div`,{className:`text-[10.5px] text-foreground-subtle`,children:t(`uiLibrary.cameraGridLayout.notGrid`,`This camera is not a grid.`)})});let D=e=>{if(g===null)return;let t=e.currentTarget.getBoundingClientRect();if(t.width===0||t.height===0||g.target!==`cell`)return;let n=(e.clientX-g.startX)/t.width,r=(e.clientY-g.startY)/t.height;T(g.index,{cell:Ij(g,n,r)})};return v($t,{title:t(`uiLibrary.cameraGridLayout.title`,`Grid layout`),icon:v(rt,{className:`h-3.5 w-3.5`}),headerRight:c(`div`,{className:`flex items-center gap-1`,children:[c(`button`,{type:`button`,disabled:o.cells.length===0,title:t(`uiLibrary.cameraGridLayout.autofillTitle`,`Tile every cell over the whole canvas, leaving no gap`),onClick:()=>{let e=Dj(o.cells.length);s({...o,cells:o.cells.map((t,n)=>({...t,cell:e[n]??t.cell}))})},className:`flex items-center gap-1 rounded border border-border px-2 py-0.5 text-[10px] uppercase`,children:[v(xi,{className:`h-3 w-3`}),` `,t(`uiLibrary.cameraGridLayout.autofill`,`Autofill`)]}),c(`button`,{type:`button`,disabled:l,onClick:()=>void w(),className:`flex items-center gap-1 rounded border border-border px-2 py-0.5 text-[10px] uppercase`,children:[l?v(Un,{className:`h-3 w-3 animate-spin`}):v(Oi,{className:`h-3 w-3`}),t(`uiLibrary.cameraGridLayout.save`,`Save`)]})]}),children:c(`div`,{className:`flex flex-col gap-3`,children:[d!==null&&c(`div`,{className:`flex items-center gap-2 text-[10.5px] text-danger`,children:[v(Di,{className:`h-3 w-3`}),` `,d]}),c(`div`,{className:`relative w-full select-none overflow-hidden rounded border border-border bg-black`,style:{aspectRatio:String(E),...jj},onPointerMove:D,onPointerUp:()=>{y(null)},onPointerCancel:()=>{y(null)},children:[o.cells.map((e,t)=>v(zj,{cell:e,selected:t===m,onSelect:()=>{h(t)},onDragStart:(n,r)=>{h(t),y({index:t,target:`cell`,mode:n,startX:r.clientX,startY:r.clientY,origin:e.cell})}},`${String(e.deviceId)}-${String(t)}`)),o.cells.length===0&&v(`div`,{className:`absolute inset-0 flex items-center justify-center text-[10.5px] text-foreground-subtle`,children:t(`uiLibrary.cameraGridLayout.noCells`,`No cells yet — add one below.`)})]}),c(`div`,{className:`grid grid-cols-4 gap-2 text-[10.5px]`,children:[v(Gj,{label:`FPS`,value:o.fps,onChange:e=>{s({...o,fps:e})}}),c(`button`,{type:`button`,disabled:o.cells.length>=kj,onClick:()=>{let t=r.find(t=>t.id!==e);t&&(s({...o,cells:[...o.cells,{deviceId:t.id,source:Oj,cell:wj({x:.1,y:.1,width:.4,height:.4})}]}),h(o.cells.length))},className:`flex items-center justify-center gap-1 self-end rounded border border-border px-2 py-1 uppercase`,children:[v(Se,{className:`h-3 w-3`}),` `,t(`uiLibrary.cameraGridLayout.addCell`,`Cell`)]})]}),v(Rj,{offers:i.profiles,cameras:r,onToggle:e=>{if(o===null)return;let t=i.profiles.filter(e=>e.published).map(e=>e.profile);w({publishedProfiles:t.includes(e)?t.filter(t=>t!==e):[...t,e]})}}),o.cells[m]!==void 0&&v(Vj,{cell:o.cells[m],index:m,cameras:r.filter(t=>t.id!==e),onChange:e=>{T(m,e)},onRemove:()=>{s({...o,cells:o.cells.filter((e,t)=>t!==m)}),h(0)}})]})})}function Rj({offers:e,cameras:t,onToggle:n}){let r=q(),i=e=>t.find(t=>t.id===e)?.name??`#${String(e)}`;return c(`div`,{className:`flex flex-col gap-1 rounded border border-border p-2 text-[10.5px]`,children:[v(`span`,{className:`uppercase text-foreground-subtle`,children:r(`uiLibrary.cameraGridLayout.published`,`Published profiles`)}),e.map(e=>c(`div`,{className:`flex items-baseline gap-2`,children:[v(`input`,{type:`checkbox`,checked:e.published,disabled:!e.offered,"aria-label":r(`uiLibrary.cameraGridLayout.publish`,`publish {{profile}}`,{profile:e.profile}),onChange:()=>{n(e.profile)}}),v(`span`,{className:`w-10 uppercase`,children:e.profile}),e.offered?c(`span`,{className:`text-foreground-subtle`,children:[e.canvas,` —`,` `,e.published?r(`uiLibrary.cameraGridLayout.composed`,`composed from every source’s {{profile}}`,{profile:e.profile}):r(`uiLibrary.cameraGridLayout.serviceable`,`serviceable, not published`)]}):v(`span`,{className:`text-danger`,children:e.missingSources.length===0?r(`uiLibrary.cameraGridLayout.noCellsOffer`,`not offered — this grid has no cells yet`):r(`uiLibrary.cameraGridLayout.missing`,`not offered — no {{profile}} on {{sources}}`,{profile:e.profile,sources:e.missingSources.map(i).join(`, `)})})]},e.profile))]})}function zj({cell:e,selected:t,onSelect:n,onDragStart:r}){let{src:i}=Te(e.deviceId,{width:640}),a=`${String(100/e.source.width)}% ${String(100/e.source.height)}%`,o=e.source.width>=1&&e.source.height>=1?`center`:`${String(e.source.x/Math.max(1e-6,1-e.source.width)*100)}% ${String(e.source.y/Math.max(1e-6,1-e.source.height)*100)}%`;return v(`div`,{role:`presentation`,onPointerDown:e=>{n(),Fj(e),r(`move`,e)},className:`absolute cursor-move border ${t?`border-accent`:`border-border/60`}`,style:{...jj,left:`${String(e.cell.x*100)}%`,top:`${String(e.cell.y*100)}%`,width:`${String(e.cell.width*100)}%`,height:`${String(e.cell.height*100)}%`,backgroundImage:i===null?void 0:`url(${i})`,backgroundSize:a,backgroundPosition:o,backgroundRepeat:`no-repeat`},children:t&&Nj.map(e=>v(`div`,{role:`presentation`,onPointerDown:t=>{t.stopPropagation(),Fj(t),r(e,t)},className:`${Mj} ${Pj[e]}`,style:jj,children:v(`span`,{className:`h-2.5 w-2.5 bg-accent`})},e))})}function Bj({camera:e}){return pj(e,`compact`)}function Vj({cell:e,index:t,cameras:n,onChange:r,onRemove:i}){let a=q();return c(`div`,{className:`flex flex-col gap-2 rounded border border-border p-2 text-[10.5px]`,children:[c(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`uppercase text-foreground-subtle`,children:a(`uiLibrary.cameraGridLayout.cellN`,`Cell {{index}}`,{index:t+1})}),v(`button`,{type:`button`,onClick:i,className:`text-danger`,children:v(Pe,{className:`h-3 w-3`})})]}),c(`label`,{className:`flex items-center gap-2`,children:[v(`span`,{className:`w-16 text-foreground-subtle`,children:a(`uiLibrary.cameraGridLayout.source`,`Source`)}),v(`select`,{value:String(e.deviceId),onChange:e=>{r({deviceId:Number(e.target.value)})},className:`flex-1 rounded border border-border bg-transparent px-1 py-0.5`,children:n.map(e=>v(`option`,{value:String(e.id),children:v(Bj,{camera:e})},e.id))})]}),v(Hj,{deviceId:e.deviceId,source:e.source,onChange:e=>{r({source:e})}}),v(`div`,{className:`grid grid-cols-2 gap-x-3 gap-y-1.5`,children:[`x`,`y`,`width`,`height`].map(t=>v(Wj,{label:Uj(a,t),value:e.source[t],onChange:n=>{r({source:wj({...e.source,[t]:n})})}},t))})]})}function Hj({deviceId:e,source:t,onChange:n}){let r=q(),{src:i}=Te(e,{width:640}),[a,o]=C(null),[s,l]=C(null),u=e=>{if(a===null)return;let t=e.currentTarget.getBoundingClientRect();t.width===0||t.height===0||n(Ij({...a,index:0,target:`source`},(e.clientX-a.startX)/t.width,(e.clientY-a.startY)/t.height))},d=t.x===0&&t.y===0&&t.width===1&&t.height===1;return c(`div`,{className:`flex flex-col gap-1`,children:[c(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`uppercase text-foreground-subtle`,children:r(`uiLibrary.cameraGridLayout.visiblePart`,`Visible part of the camera`)}),c(`button`,{type:`button`,disabled:d,onClick:()=>{n(Oj)},className:`flex items-center gap-1 rounded border border-border px-1.5 py-0.5 uppercase disabled:opacity-40`,children:[v(Rr,{className:`h-3 w-3`}),` `,r(`uiLibrary.cameraGridLayout.wholeFrame`,`Whole frame`)]})]}),c(`div`,{className:`relative w-full select-none overflow-hidden rounded border border-border bg-black`,style:{aspectRatio:String(s??16/9),...jj},onPointerMove:u,onPointerUp:()=>{o(null)},onPointerCancel:()=>{o(null)},children:[i===null?v(`div`,{className:`absolute inset-0 flex items-center justify-center text-[10px] text-foreground-subtle`,children:r(`uiLibrary.cameraGridLayout.noSnapshot`,`No snapshot from this camera yet — the numbers below still apply.`)}):v(`img`,{src:i,alt:``,className:`absolute inset-0 h-full w-full`,onLoad:e=>{let{naturalWidth:t,naturalHeight:n}=e.currentTarget;t>0&&n>0&&l(t/n)}}),v(`div`,{className:`pointer-events-none absolute inset-0 bg-black/55`}),v(`div`,{role:`presentation`,onPointerDown:e=>{Fj(e),o({mode:`move`,startX:e.clientX,startY:e.clientY,origin:t})},className:`absolute cursor-move border border-accent`,style:{...jj,left:`${String(t.x*100)}%`,top:`${String(t.y*100)}%`,width:`${String(t.width*100)}%`,height:`${String(t.height*100)}%`,backgroundImage:i===null?void 0:`url(${i})`,backgroundSize:`${String(100/t.width)}% ${String(100/t.height)}%`,backgroundPosition:t.width>=1&&t.height>=1?`center`:`${String(t.x/Math.max(1e-6,1-t.width)*100)}% ${String(t.y/Math.max(1e-6,1-t.height)*100)}%`},children:Nj.map(e=>v(`div`,{role:`presentation`,onPointerDown:n=>{n.stopPropagation(),Fj(n),o({mode:e,startX:n.clientX,startY:n.clientY,origin:t})},className:`${Mj} ${Pj[e]}`,style:jj,children:v(`span`,{className:`h-2.5 w-2.5 bg-accent`})},e))})]})]})}function Uj(e,t){switch(t){case`x`:return e(`uiLibrary.cameraGridLayout.cropX`,`Crop x`);case`y`:return e(`uiLibrary.cameraGridLayout.cropY`,`Crop y`);case`width`:return e(`uiLibrary.cameraGridLayout.cropWidth`,`Crop width`);case`height`:return e(`uiLibrary.cameraGridLayout.cropHeight`,`Crop height`)}}function Wj({label:e,value:t,onChange:n}){let r=Math.round(t*100)/100;return c(`label`,{className:`flex flex-col gap-0.5`,children:[c(`span`,{className:`flex items-baseline justify-between text-foreground-subtle`,children:[v(`span`,{children:e}),v(`input`,{type:`number`,min:0,max:1,step:.01,value:r,onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&n(t)},className:`w-12 rounded border border-border bg-transparent px-1 py-0.5 text-right`})]}),v(`input`,{type:`range`,min:0,max:1,step:.005,value:t,onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&n(t)},style:jj,className:`h-5 w-full accent-accent`})]})}function Gj({label:e,value:t,step:n=1,onChange:r}){return c(`label`,{className:`flex flex-col gap-0.5`,children:[v(`span`,{className:`text-foreground-subtle`,children:e}),v(`input`,{type:`number`,step:n,value:t,onChange:e=>{let t=Number(e.target.value);Number.isFinite(t)&&r(t)},className:`rounded border border-border bg-transparent px-1 py-0.5`})]})}function Kj(e){let t=Ge(e.trpc,e.deviceId),n=Be(t===null?void 0:e.slice(t)),r=t===null?void 0:e.cap(t),i=Be(t===null?void 0:t.state.deviceStatus),a=i?.online??!0,o=a?null:i?.lastChangedAt??null;return{dev:t,cap:r,slice:n,available:(e.requireFeature===void 0||(e.deviceFeatures??[]).includes(e.requireFeature))&&r!==void 0&&n!==void 0&&a,online:a,offlineSince:o}}E();var qj=`open`,Jj=`closed`;function Yj(e){if(e===null||typeof window>`u`)return null;try{let t=window.localStorage.getItem(e);return t===qj?!0:t===Jj?!1:null}catch{return null}}function Xj(e,t){if(!(e===null||typeof window>`u`))try{window.localStorage.setItem(e,t?qj:Jj)}catch{}}function Zj(e){let[t,n]=C(()=>({key:e,open:Yj(e)})),r=t.key===e?t:{key:e,open:Yj(e)};r!==t&&n(r);let i=_(t=>{n({key:e,open:t}),Xj(e,t)},[e]);return[r.open,i]}var Qj={ok:{variant:`success`,barClass:`bg-success`,labelKey:`uiLibrary.consumableLevel.ok`,labelFallback:`OK`},low:{variant:`warning`,barClass:`bg-warning`,labelKey:`uiLibrary.consumableLevel.low`,labelFallback:`Low`},empty:{variant:`danger`,barClass:`bg-danger`,labelKey:`uiLibrary.consumableLevel.empty`,labelFallback:`Empty`},full:{variant:`warning`,barClass:`bg-warning`,labelKey:`uiLibrary.consumableLevel.full`,labelFallback:`Full`},unknown:{variant:`neutral`,barClass:`bg-foreground-subtle`,labelKey:`uiLibrary.consumableLevel.unknown`,labelFallback:`Unknown`}};function $j(e){return Qj[e??`unknown`]}function eM(e){return $j(e).variant}function tM(e){return $j(e).barClass}function nM(e,t){let n=$j(e);return t(n.labelKey,n.labelFallback)}function rM(e){return e.status===`full`||e.status===`replace`?`full`:e.level===null?e.status===null?null:`ok`:e.level>=85?`full`:`ok`}function iM(e){if(e.level!==null)return e.level<=0||e.status===`empty`?`empty`:e.level<=15||e.status===`replace`||e.status===`low`?`low`:`ok`;switch(e.status){case`replace`:case`low`:return`low`;case`empty`:return`empty`;case`ok`:case`full`:return`ok`;case null:return null}}function aM(e){return wa(e)===`waste`?rM(e):iM(e)}var oM=ia.exclude([`full`]).options;function sM(e){if(e.kind!==`enum`||e.enumValues===void 0)return!1;let t=oM;return e.enumValues.length===t.length&&t.every(t=>e.enumValues?.includes(t))}function cM(e){let t=ia.safeParse(e);return t.success?t.data:null}function lM({level:e,name:t,label:n,size:r=`md`,className:i}){let a=q(),o=n??nM(e,a);return v(zk,{variant:eM(e),size:r,className:i,"data-level":e??`unknown`,children:t===void 0?o:`${t} · ${o}`})}E();var uM=D(({className:e,...t},n)=>v(`div`,{ref:n,className:$(`animate-pulse bg-surface-hover rounded-md h-4 w-full`,e),...t}));uM.displayName=`Skeleton`;function dM(e,t){if(t.value===null)return`—`;if(t.kind===`count`)return e(`uiLibrary.consumablesPanel.cycles`,{one:`{{count}} cycle`,other:`{{count}} cycles`},{count:t.value});let n=ma({value:t.value,quantity:`duration`,precision:0});return n.unit.length===0?n.text:`${n.text} ${n.unit}`}function fM(e){try{return new Date(e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`})}catch{return``}}function pM(e){return e===`low`||e===`empty`||e===`full`}function mM(e){return Math.max(0,Math.min(100,e))}function hM({item:e,warn:t,children:n}){return v(`div`,{"data-form":Ma(e),className:`flex gap-2.5 rounded-md border p-3 ${t?`border-warning/40 bg-warning/5`:`border-border-subtle`}`,children:n})}function gM({item:e,warn:t}){return v(`span`,{className:`truncate text-xs font-semibold ${t?`text-warning`:`text-foreground`}`,children:e.label})}function _M({item:e,busy:t,canReset:n,onReset:r}){let i=q(),a=aM(e),o=pM(a);return v(hM,{item:e,warn:o,children:c(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[v(gM,{item:e,warn:o}),e.level===null?v(lM,{level:a,size:`sm`,className:`w-fit`,label:e.status===`replace`?i(`uiLibrary.consumablesPanel.replace`,`Replace`):void 0}):c(`div`,{className:`flex items-center gap-2`,children:[v(`div`,{className:`h-1.5 flex-1 overflow-hidden rounded-full bg-surface-hover`,children:v(`div`,{className:`h-full rounded-full ${tM(a)} transition-all`,style:{width:`${mM(e.level)}%`}})}),c(`span`,{className:`text-[10px] font-medium tabular-nums text-foreground-subtle`,children:[Math.round(e.level),`%`]})]}),e.remaining&&v(`span`,{className:`text-[10px] font-medium tabular-nums text-foreground-subtle`,children:dM(i,e.remaining)}),e.lastResetAt!==null&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.consumablesPanel.replacedOn`,`Replaced {{date}}`,{date:fM(e.lastResetAt)})}),e.resettable&&v(gA,{type:`button`,variant:`outline`,size:`sm`,className:`w-fit`,onClick:()=>r(e.key),disabled:t||!n,children:i(`uiLibrary.consumablesPanel.replaced`,`Replaced`)})]})})}function vM({item:e}){let t=aM(e),n=pM(t);return c(hM,{item:e,warn:n,children:[v(`div`,{className:`relative h-10 w-3 shrink-0 overflow-hidden rounded-sm border border-border bg-surface-hover`,"data-testid":`consumable-gauge`,children:e.level!==null&&v(`div`,{className:`absolute inset-x-0 bottom-0 ${tM(t)} transition-all`,style:{height:`${mM(e.level)}%`}})}),c(`div`,{className:`flex min-w-0 flex-1 flex-col justify-center gap-1`,children:[v(gM,{item:e,warn:n}),c(`div`,{className:`flex items-center gap-2`,children:[v(lM,{level:t,size:`sm`,className:`w-fit`}),e.level!==null&&c(`span`,{className:`text-[10px] font-medium tabular-nums text-foreground-subtle`,children:[Math.round(e.level),`%`]})]})]})]})}var yM={full:3,ok:3,low:1,empty:0,unknown:0},bM=[0,1,2];function xM(e,t){if(e===`low`)return t(`uiLibrary.consumablesPanel.refillSoon`,`Refill soon`);if(e===`empty`)return t(`uiLibrary.consumablesPanel.refillNow`,`Refill now`)}function SM({item:e}){let t=q(),n=aM(e),r=pM(n),i=yM[n??`unknown`];return c(hM,{item:e,warn:r,children:[v(Xt,{className:`mt-0.5 h-4 w-4 shrink-0 ${r?`text-warning`:`text-foreground-subtle`}`}),c(`div`,{className:`flex min-w-0 flex-1 flex-col gap-1.5`,children:[v(gM,{item:e,warn:r}),c(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v(`div`,{className:`flex gap-0.5`,"data-testid":`consumable-steps`,"data-filled":i,children:bM.map(e=>v(`span`,{className:`h-1.5 w-3 rounded-full ${e<i?tM(n):`bg-surface-hover`}`},e))}),v(lM,{level:n,size:`sm`,className:`whitespace-nowrap`,label:xM(n,t)})]})]})]})}function CM(e){switch(Ma(e.item)){case`part`:return v(_M,{...e});case`tank`:case`bin`:return v(vM,{item:e.item});case`product`:return v(SM,{item:e.item})}}var wM={empty:3,full:2,low:1};function TM(e){return e===`low`||e===`empty`||e===`full`}function EM(e){if(e.length===0)return{kind:`none`,needsAttention:!1};let t=[],n=0,r=0;for(let i of e){let e=aM(i);TM(e)?t.push({label:i.label,level:e,replace:i.status===`replace`}):e===`ok`?n+=1:r+=1}let i=[...t].sort((e,t)=>wM[t.level]-wM[e.level])[0];return i===void 0?r===0?{kind:`ok`,needsAttention:!1,count:n}:{kind:`partial`,needsAttention:!1,ok:n,unknown:r}:{kind:`attention`,needsAttention:!0,count:t.length,worst:i}}E();function DM(e){return`camstack.device.${String(e)}.consumables.open`}function OM({summary:e,t}){switch(e.kind){case`none`:return v(zk,{variant:`neutral`,size:`sm`,children:t(`uiLibrary.consumablesPanel.noneReported`,`None reported`)});case`ok`:return v(zk,{variant:`success`,size:`sm`,children:t(`uiLibrary.consumablesPanel.allOk`,`All OK`)});case`partial`:return v(zk,{variant:`neutral`,size:`sm`,children:t(`uiLibrary.consumablesPanel.okAndUnknown`,`{{ok}} OK · {{unknown}} unknown`,{ok:e.ok,unknown:e.unknown})});case`attention`:return e.count===1?v(lM,{level:e.worst.level,name:e.worst.label,size:`sm`,label:e.worst.replace?t(`uiLibrary.consumablesPanel.replace`,`Replace`):void 0}):v(zk,{variant:eM(e.worst.level),size:`sm`,children:t(`uiLibrary.consumablesPanel.needAttention`,{one:`{{count}} needs attention`,other:`{{count}} need attention`},{count:e.count})})}}function kM({deviceId:e}){let t=q(),n=Rn(),r=Number.isFinite(e),{cap:i,slice:a,available:o}=Kj({trpc:n.trpcClient,deviceId:r?e:null,cap:e=>e.consumables,slice:e=>e.state.consumables}),[s,c]=C(null),[l,u]=Zj(r?DM(e):null),d=_(async e=>{if(i){c(e);try{await i.reset({key:e})}catch(e){console.error(`consumables.reset failed`,e)}finally{c(null)}}},[i]),f=a===void 0?null:EM(a.items),p=l??f?.needsAttention??!1,m=v(uM,{className:p?`h-10 w-full`:`h-4 w-16`,"data-testid":`consumables-loading`,"aria-label":t(`uiLibrary.consumablesPanel.loading`,`Reading consumables…`)});return v($t,{title:t(`uiLibrary.consumablesPanel.title`,`Consumables`),icon:v(vt,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3 overflow-y-auto`,collapsible:!0,open:p,onOpenChange:u,headerRight:p?void 0:f===null?m:v(OM,{summary:f,t}),children:a===void 0?m:a.items.length===0?v(`p`,{className:`text-[11px] text-foreground-subtle italic leading-relaxed`,children:t(`uiLibrary.consumablesPanel.empty`,`No consumables reported.`)}):v(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2`,children:a.items.map(e=>v(CM,{item:e,busy:s===e.key,canReset:o,onReset:e=>void d(e)},e.key))})})}function AM(e){return e===null?`absent`:e.providers.length>0?`present`:`absent`}function jM(e){let t=X.capabilities.getCapability.useQuery({name:e});return t.status===`pending`?`pending`:t.status===`error`?`unknown`:AM(t.data)}var MM=[`object`,`motion`,`audio`];function NM(e,t,n){let r=[];for(let i of e){let e={motion:i.motion,object:i.object,audio:i.audio},a=e.motion+e.object+e.audio;if(a===0)continue;let o=Math.floor((i.bucketStart-t)/n),s=null,c=-1;for(let t of MM)e[t]>c&&(c=e[t],s=t);r.push({index:o,startMs:i.bucketStart,endMs:i.bucketStart+n,counts:e,total:a,dominant:s})}return r.toSorted((e,t)=>e.index-t.index)}function PM(e,t){return e<t.startMs?t.startMs-e:e>t.endMs?e-t.endMs:0}function FM(e,t){if(t.length===0)return null;let n=t.find(t=>e>=t.startMs&&e<=t.endMs);if(n)return{fromMs:e,toMs:n.endMs};let r=null,i=1/0;for(let n of t){let t=PM(e,n);t<i&&(i=t,r=n)}return r?{fromMs:r.startMs,toMs:r.endMs}:null}function IM(e,t,n){let r=n-t;if(r<=0)return 0;let i=(e-t)/r*100;return i<0?0:i>100?100:i}function LM(e,t){let n=new Date(e.getFullYear(),e.getMonth(),e.getDate(),0,0,0,0).getTime(),r=new Date(e.getFullYear(),e.getMonth(),e.getDate()+1,0,0,0,0).getTime();return{fromMs:n,toMs:Math.max(n,Math.min(r,t))}}var RM=[24*36e5,12*36e5,6*36e5,36e5,15*6e4];function zM(e,t,n){if(t>=e.toMs-e.fromMs)return e;let r=Math.min(Math.max(n,e.fromMs+t),e.toMs);return{fromMs:r-t,toMs:r}}function BM(e,t,n){let r=e.toMs-e.fromMs,i=e.fromMs+n,a=e.toMs+n;return i<t.fromMs&&(i=t.fromMs,a=i+r),a>t.toMs&&(a=t.toMs,i=a-r),{fromMs:i,toMs:a}}var VM=[15*6e4,5*6e4,6e4,3e4,15e3,5e3];function HM(e){let t=e/100;for(let e of VM)if(e<=t)return e;return VM[VM.length-1]??5e3}function UM(e,t,n){if(n<=1)return[{pct:0,label:new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}];let r=[];for(let i=0;i<n;i++){let a=e+i/(n-1)*(t-e),o=IM(a,e,t),s=new Date(a).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`});r.push({pct:o,label:s})}return r}var WM=2;function GM(e,t){if(t<=1)return[{kind:`page`,n:1}];if(t<=7){let e=[];for(let n=1;n<=t;n++)e.push({kind:`page`,n});return e}let n=[],r=Math.max(2,e-WM),i=Math.min(t-1,e+WM);n.push({kind:`page`,n:1}),r>2&&n.push({kind:`ellipsis`,side:`left`});for(let e=r;e<=i;e++)n.push({kind:`page`,n:e});return i<t-1&&n.push({kind:`ellipsis`,side:`right`}),n.push({kind:`page`,n:t}),n}function KM({currentPage:e,totalItems:t,pageSize:n,onPageChange:r,itemNoun:i}){let a=q();if(t<=n)return null;let o=Math.ceil(t/n),s=(e-1)*n+1,l=Math.min(e*n,t),u=GM(e,o);return c(`div`,{className:`flex items-center justify-between gap-4 flex-wrap pt-2 text-[11px] text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.pagination.showing`,`Showing {{start}}–{{end}} of {{total}} {{noun}}`,{start:s,end:l,total:t,noun:i??a(`uiLibrary.pagination.devices`,`devices`)})}),c(`span`,{className:`inline-flex items-center gap-1`,children:[v(`button`,{type:`button`,"aria-label":a(`uiLibrary.pagination.previous`,`Previous page`),disabled:e===1,onClick:()=>r(e-1),className:$(`inline-flex items-center justify-center h-7 w-7 rounded border border-border bg-surface text-foreground-subtle`,`hover:text-foreground hover:bg-surface-hover transition-colors`,`disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-surface`),children:v(ge,{className:`h-3 w-3`})}),u.map((t,n)=>t.kind===`ellipsis`?v(`span`,{className:`px-1 text-foreground-subtle/60 select-none`,children:`…`},`e-${n}`):v(`button`,{type:`button`,onClick:()=>r(t.n),className:$(`inline-flex items-center justify-center h-7 min-w-7 px-1.5 rounded border text-[10.5px] font-medium transition-colors`,t.n===e?`border-primary/40 bg-primary/10 text-primary`:`border-border bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover`),children:t.n},`p-${t.n}`)),v(`button`,{type:`button`,"aria-label":a(`uiLibrary.pagination.next`,`Next page`),disabled:e===o,onClick:()=>r(e+1),className:$(`inline-flex items-center justify-center h-7 w-7 rounded border border-border bg-surface text-foreground-subtle`,`hover:text-foreground hover:bg-surface-hover transition-colors`,`disabled:opacity-40 disabled:cursor-not-allowed disabled:hover:bg-surface`),children:v(It,{className:`h-3 w-3`})})]})]})}function qM({icon:e,title:t,description:n,action:r,className:i}){return c(`div`,{className:$(`flex flex-col items-center justify-center gap-3 py-12`,i),children:[e&&v(e,{className:`h-12 w-12 text-foreground-subtle`,"aria-hidden":`true`}),c(`div`,{className:`flex flex-col items-center gap-1 text-center`,children:[v(`p`,{className:`text-foreground-muted text-sm font-medium`,children:t}),n&&v(`p`,{className:`text-foreground-subtle text-xs max-w-xs`,children:n})]}),r&&v(`div`,{className:`mt-1`,children:r})]})}var JM={danger:{box:`border-danger/40 bg-danger/10`,icon:`text-danger`,title:`text-danger`,message:`text-danger`},warning:{box:`border-amber-500/40 bg-amber-500/10`,icon:`text-amber-600 dark:text-amber-400`,title:`text-amber-700 dark:text-amber-300`,message:`text-amber-700 dark:text-amber-300`}};function YM({message:e,title:t,onRetry:n,action:r,variant:i=`danger`,className:a}){let o=q(),s=JM[i],l=i===`warning`?Ii:Di;return c(`div`,{role:`alert`,className:$(`flex items-start gap-2.5 rounded border px-3 py-2.5`,s.box,a),children:[v(l,{className:$(`h-4 w-4 mt-0.5 shrink-0`,s.icon),"aria-hidden":`true`}),c(`div`,{className:`flex-1 min-w-0`,children:[t&&v(`p`,{className:$(`text-xs font-semibold`,s.title),children:t}),v(`div`,{className:$(`text-xs break-words`,s.message,t?`mt-0.5`:``),children:e})]}),r??(n&&c(`button`,{type:`button`,onClick:n,className:$(`shrink-0 inline-flex items-center gap-1 rounded px-2 py-1 text-[11px] font-medium`,`border border-current/30 hover:bg-current/10 transition-colors`,s.message),children:[v(_e,{className:`h-3 w-3`,"aria-hidden":`true`}),o(`uiLibrary.errorBox.retry`,`Retry`)]}))]})}var XM=[`chart-series-a`,`chart-series-b`,`chart-series-c`,`chart-series-d`,`chart-series-e`,`chart-series-f`,`chart-series-g`,`chart-series-h`],ZM=[[],[6,4],[2,3]];function QM(e){let t=Math.max(0,Math.floor(e));return{token:XM[t%XM.length]??`chart-series-a`,dash:ZM[Math.floor(t/XM.length)%ZM.length]??[]}}var $M={"chart-series-a":`bg-chart-series-a`,"chart-series-b":`bg-chart-series-b`,"chart-series-c":`bg-chart-series-c`,"chart-series-d":`bg-chart-series-d`,"chart-series-e":`bg-chart-series-e`,"chart-series-f":`bg-chart-series-f`,"chart-series-g":`bg-chart-series-g`,"chart-series-h":`bg-chart-series-h`,border:`bg-border`},eN={"chart-series-a":`border-chart-series-a`,"chart-series-b":`border-chart-series-b`,"chart-series-c":`border-chart-series-c`,"chart-series-d":`border-chart-series-d`,"chart-series-e":`border-chart-series-e`,"chart-series-f":`border-chart-series-f`,"chart-series-g":`border-chart-series-g`,"chart-series-h":`border-chart-series-h`,border:`border-border`};function tN(e){return $M[e]}function nN(e){return eN[e]}function rN(e,t){if(typeof window>`u`||typeof getComputedStyle!=`function`)return`transparent`;let n=t??document.documentElement,r=getComputedStyle(n).getPropertyValue(`--color-${e}`).trim();return r.length>0?r:`transparent`}var iN=/^#[0-9a-f]{6}$/i;function aN(e,t){let n=Math.min(1,Math.max(0,t));return iN.test(e)?`${e}${Math.round(n*255).toString(16).padStart(2,`0`)}`:`color-mix(in srgb, ${e} ${String(Math.round(n*100))}%, transparent)`}function oN({title:e,actions:t,readoutTime:n,legend:r,summary:i,footer:a,placeholder:o,controls:s,className:l,children:u}){let d=r.length===1?r[0]:void 0;return c(`figure`,{className:$(`min-w-0 m-0`,l),"data-chart-frame":``,children:[c(`div`,{className:`flex items-baseline justify-between gap-2 mb-1 min-w-0`,children:[v(`figcaption`,{className:`text-[10px] uppercase tracking-wider text-foreground-subtle truncate min-w-0`,children:e}),c(`div`,{className:`flex items-center gap-2 shrink-0`,children:[n&&v(`span`,{className:`text-[10px] tabular-nums text-foreground-subtle`,children:n}),d?.value!==void 0&&o===void 0&&v(lN,{entry:d}),t]})]}),o??v(`div`,{role:`img`,"aria-label":i,className:`min-w-0`,children:u}),o===void 0&&s,v(`p`,{className:`sr-only`,children:i}),r.length>1&&o===void 0&&v(`ul`,{className:`flex flex-wrap items-center gap-x-3 gap-y-0.5 mt-1 list-none p-0 m-0`,children:r.map(e=>v(`li`,{className:`min-w-0`,children:v(cN,{entry:e})},e.id))}),a&&v(`div`,{className:`mt-1 text-[10px] text-foreground-subtle`,children:a})]})}function sN({token:e,dashed:t}){return t?v(`span`,{"aria-hidden":`true`,className:$(`inline-block h-0 w-3 border-t-2 border-dashed shrink-0`,nN(e))}):v(`span`,{"aria-hidden":`true`,className:$(`inline-block h-2 w-2 rounded-[2px] shrink-0`,tN(e))})}function cN({entry:e}){return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] min-w-0`,e.muted?`text-foreground-subtle`:`text-foreground-muted`),children:[v(sN,{token:e.token,dashed:e.dashed}),v(`span`,{className:`truncate`,children:e.label}),e.value!==void 0&&v(`span`,{className:`tabular-nums text-foreground`,children:e.value})]})}function lN({entry:e}){return c(`span`,{className:`inline-flex items-center gap-1 text-[11px] tabular-nums text-foreground`,children:[v(sN,{token:e.token,dashed:e.dashed}),e.value]})}function uN({message:e,height:t}){return v(`div`,{className:$(t===`sm`?`h-8`:t===`md`?`h-24`:`h-40`,`flex items-center justify-center rounded border border-dashed border-border text-[10px] text-foreground-subtle text-center px-2`),children:e})}function dN(e){let t=e.map(e=>[...e.points].sort((e,t)=>e.t-t.t)),n=t.map((t,n)=>fN(t,e[n]?.gapMs)),r=new Set;for(let e of t)for(let t of e)r.add(t.t);for(let e of n)for(let t of e)r.add(t);let i=[...r].sort((e,t)=>e-t),a=new Map;i.forEach((e,t)=>a.set(e,t));let o=()=>i.map(()=>void 0),s=[],c=[],l=[];return t.forEach((e,t)=>{let r=o(),i=o(),u=o();for(let e of n[t]??[]){let t=a.get(e);t!==void 0&&(r[t]=null,i[t]=null,u[t]=null)}for(let t of e){let e=a.get(t.t);e!==void 0&&(r[e]=t.v,t.min!==void 0&&(i[e]=t.min),t.max!==void 0&&(u[e]=t.max))}s.push(r),c.push(i),l.push(u)}),{xs:i,ys:s,mins:c,maxs:l}}function fN(e,t){if(t===void 0||!(t>0))return[];let n=[];for(let r=1;r<e.length;r++){let i=e[r-1],a=e[r];i&&a&&a.t-i.t>t&&n.push(i.t+1)}return n}function pN(e){if(e.length===0)return[];let t=null;for(let n of e){let e=mN(n);if(t=t===null?e:hN(t,e),t.length===0)return[]}return t??[]}function mN(e){let t=e.gapMs;if(t===void 0||!(t>0))return[];let n=[...e.points].sort((e,t)=>e.t-t.t),r=[];for(let e=1;e<n.length;e++){let i=n[e-1],a=n[e];i&&a&&a.t-i.t>t&&r.push({from:i.t,to:a.t})}return r}function hN(e,t){let n=[];for(let r of e)for(let e of t){let t=Math.max(r.from,e.from),i=Math.min(r.to,e.to);i>t&&n.push({from:t,to:i})}return n}function gN(e){let t=[];return e.forEach((e,n)=>{let r=n===0?null:t[n-1];t.push(e.map((e,t)=>{if(e===void 0)return;if(e===null)return null;if(r==null)return e;let n=r[t];return n===null?null:n===void 0?e:n+e}))}),t}function _N(e,t,n){for(let r=Math.min(n,e.length-1);r>=0;r--){let e=t[r];if(e!==void 0)return e}return null}function vN(e,t,n,r=null){let i=[...e].filter(e=>e.t<n).sort((e,t)=>e.t-t.t),a=[],o=t,s=r;for(let e of i){if(e.t<=t){s=e.state;continue}e.state!==s&&(a.push({from:o,to:e.t,state:s}),o=e.t,s=e.state)}return n>o&&a.push({from:o,to:n,state:s}),a.filter(e=>e.to>e.from&&e.state!==null)}function yN(e){let t=new Map;for(let n of e)n.state!==null&&t.set(n.state,(t.get(n.state)??0)+Math.max(0,n.to-n.from));return t}function bN(e,t){for(let n of e)if(t>=n.from&&t<n.to)return n.state;return null}var xN=6e4,SN=60*xN,CN=24*SN;function wN(e){if(!(e>0))return`0s`;if(e<xN)return`${String(Math.round(e/1e3))}s`;if(e<SN)return`${String(Math.floor(e/xN))}m`;if(e<CN){let t=Math.floor(e/SN),n=Math.floor(e%SN/xN);return n>0?`${String(t)}h ${String(n)}m`:`${String(t)}h`}let t=Math.floor(e/CN),n=Math.floor(e%CN/SN);return n>0?`${String(t)}d ${String(n)}h`:`${String(t)}d`}var TN={hour:`2-digit`,minute:`2-digit`},EN={hour:`2-digit`,minute:`2-digit`,second:`2-digit`},DN={day:`2-digit`,month:`short`},ON={month:`short`,year:`2-digit`};function kN(e,t){let n=new Date(e);return t<10*xN?n.toLocaleTimeString(void 0,EN):t<=2*CN?n.toLocaleTimeString(void 0,TN):t<=120*CN?n.toLocaleDateString(void 0,DN):n.toLocaleDateString(void 0,ON)}function AN(e,t){let n=new Date(e);return t<=2*CN?n.toLocaleTimeString(void 0,t<10*xN?EN:TN):`${n.toLocaleDateString(void 0,DN)} ${n.toLocaleTimeString(void 0,TN)}`}var jN=[1,2,5,10],MN=[1,2,4,8,16,32,64,128,256,512,1024],NN=[1,1.5,2,2.5,3,4,5],PN=[4,3,5,2],FN=1e-9;function IN(e,t){if(!Number.isFinite(e)||e<=0)return!1;if(t===`bytes`){if(!Number.isInteger(e))return!1;let t=e/1024**Math.floor(Math.log(e)/Math.log(1024));return NN.some(e=>Math.abs(t-e)<FN)}let n=e/10**Math.floor(Math.log10(e));return NN.some(e=>Math.abs(n-e)<FN)}function LN(e,t,n=`linear`){let r=0;for(let t of e)t!==null&&Number.isFinite(t)&&t>r&&(r=t);if(r<=t)return t;if(n===`bytes`){let e=1024**Math.floor(Math.log(r)/Math.log(1024));for(let t of MN){let n=t*e;if(n>=r)return n}return 1024*e}let i=10**Math.floor(Math.log10(r));for(let e of jN){let t=e*i;if(t>=r)return t}return 10*i}function RN(e,t=`linear`){if(!Number.isFinite(e)||e<=0)return[];let n=PN.find(n=>IN(e/n,t))??PN[PN.length-1]??2,r=e/n,i=[];for(let e=1;e<=n;e++)i.push(r*e);return i}function zN(e){let t=1/0,n=-1/0;for(let r of e)r===null||!Number.isFinite(r)||(r<t&&(t=r),r>n&&(n=r));if(!Number.isFinite(t)||!Number.isFinite(n))return null;if(n-t<1e-9)return[t-1,n+1];let r=(n-t)*.1,i=n-t+2*r,a=10**Math.floor(Math.log10(i/4)),o=[1,2,2.5,5,10].map(e=>e*a).find(e=>i/e<=6)??a*10;return[Math.floor((t-r)/o)*o,Math.ceil((n+r)/o)*o]}var BN=2.5;function VN(e){return e*BN}var HN=10;function UN(){let e=typeof document<`u`&&document.body?getComputedStyle(document.body).fontFamily:`sans-serif`;return`${String(HN)}px ${e}`}function WN(e,t=!0){return{show:t,scale:`x`,side:2,size:t?22:0,gap:4,font:UN(),stroke:()=>rN(`foreground-subtle`),grid:{show:!1},ticks:{show:t,stroke:()=>rN(`border`),width:1,size:3},space:70,values:(t,n)=>n.map(t=>kN(t,e()))}}function GN(e,t){if(t.fixed)return t.fixed;let n=e.filter(e=>typeof e==`number`&&Number.isFinite(e));return(t.zeroBased??!0)&&n.every(e=>e>=0)?[0,LN(n,t.floor??0,t.scale??`linear`)||1]:zN(n)??[0,1]}var KN=[1,2,2.5,5];function qN(e,t){let[n,r]=e;if(n===0&&r>0)return[...RN(r,t.scale??`linear`)];let i=r-n;if(!(i>0))return[n];let a=10**Math.floor(Math.log10(i/4)),o=[...KN,10].map(e=>e*a).find(e=>i/e<=6)??i/4,s=[];for(let e=Math.ceil(n/o-1e-9)*o;e<=r+1e-9;e+=o)s.push(Math.round(e/o)*o);return s}function JN(e,t,n,r){return{scale:e,side:t,font:UN(),size:(e,t)=>{let n=(t??[]).reduce((e,t)=>Math.max(e,String(t).length),0);return Math.max(28,Math.min(72,n*6+10))},gap:4,stroke:()=>rN(`foreground-subtle`),grid:{show:r,stroke:()=>aN(rN(`foreground-subtle`),.18),width:1},ticks:{show:!1},values:(e,t)=>t.map(e=>n(e))}}function YN(e){return{y:!1,drag:{x:!1,y:!1,setScale:!1},points:{size:6,width:1.5},focus:{prox:16},...e===void 0?{}:{sync:{key:e,setSeries:!1}}}}function XN(e){return t=>{let n=e();if(n.length===0)return;let r=t.ctx;r.save(),r.fillStyle=aN(rN(`foreground-subtle`),.12);for(let e of n){let n=t.valToPos(e.from,`x`,!0),i=t.valToPos(e.to,`x`,!0);r.fillRect(n,t.bbox.top,Math.max(1,i-n),t.bbox.height)}r.restore()}}var ZN=new Set([`B`,`bytes`,`byte`]);function QN(e){return e!=null&&ZN.has(e)}var $N=new Set([`°C`,`°F`,`K`,`dBFS`,`dB`,`dBm`,`hPa`,`mbar`,`inHg`]);function eP(e){return QN(e)?{scale:`bytes`}:e===`%`?{floor:10}:e!=null&&$N.has(e)?{zeroBased:!1}:{}}function tP(e){if(!Number.isFinite(e))return`—`;if(Math.abs(e)<1024)return`${String(Math.round(e))} B`;let t=[`KB`,`MB`,`GB`,`TB`,`PB`],n=e/1024,r=`KB`;for(let e of t){if(r=e,Math.abs(n)<1024)break;n/=1024}return`${Math.abs(n)<100?n.toFixed(1):n.toFixed(0)} ${r}`}function nP(e){if(!Number.isFinite(e))return`—`;let t=Math.abs(e);return t>=1e3?Math.round(e).toLocaleString():t>=100?e.toFixed(0):t>=10?rP(e.toFixed(1)):t>=1?rP(e.toFixed(2)):t===0?`0`:rP(e.toFixed(3))}function rP(e){return e.includes(`.`)?e.replace(/\.?0+$/,``):e}function iP(e,t){if(QN(t))return tP(e);let n=nP(e);return t==null||t===``||t===`count`?n:t===`%`?`${n}%`:`${n} ${t}`}function aP({options:e,value:t,onChange:n,ariaLabel:r,className:i}){return e.length<2?null:v(`div`,{role:`radiogroup`,"aria-label":r,className:$(`inline-flex items-center gap-0.5 border border-border rounded-md p-0.5 bg-background`,i),children:e.map(({id:e,label:r})=>{let i=t===e;return v(`button`,{type:`button`,role:`radio`,"aria-checked":i,onClick:()=>n(e),className:$(`px-2 py-0.5 rounded text-[10px] font-medium transition-colors`,i?`bg-primary/10 text-primary`:`text-foreground-subtle hover:text-foreground`),children:r},e)})})}function oP(e,t){let n=[];for(let r=0;r<t;r++)n.push(e.map(e=>{let t=null;for(let n=0;n<=r;n++){let r=e.values[n];r!=null&&(t=(t??0)+r)}return t}));return n}function sP(e,t){let n=Array.from({length:t},()=>0),r=!1;for(let i of e)for(let e=0;e<t;e++){let t=i.values[e];t!=null&&(r=!0,n[e]=(n[e]??0)+t)}return{perLayer:n,total:n.reduce((e,t)=>e+t,0),known:r}}function cP(e,t,n){for(let r=0;r<e.length;r++){let i=e[r];if(i&&n>=i.t&&n<i.t+t)return r}return null}var lP=`—`,uP=new Set([`information`,`duration`,`duration-ms`,`none`,`device`,`count`,`index`,`ratio`,`humidity`,`percentage`]),dP={selection:{visible:!1,dataX:null,anchorX:0,anchorY:0,pinned:!1},gesture:null,lockHorizontalScroll:!1},fP=[{placed:`right`,vertical:`above`},{placed:`left`,vertical:`above`},{placed:`right`,vertical:`below`},{placed:`left`,vertical:`below`}];function pP(e,t){if(e.length===0||!Number.isFinite(t))return null;let n=0,r=e.length-1;for(;n<r;){let i=Math.floor((n+r)/2);(e[i]??0)<t?n=i+1:r=i}let i=n,a=Math.max(0,i-1);return Math.abs((e[a]??0)-t)<=Math.abs((e[i]??0)-t)?a:i}function mP(e){if(!(e.plotWidth>0)||!Number.isFinite(e.localX))return null;let t=e.localX-e.plotLeft;if(!e.clamp&&(t<0||t>e.plotWidth))return null;let n=Math.min(e.plotWidth,Math.max(0,t));return e.xMin+n/e.plotWidth*(e.xMax-e.xMin)}function hP(e,t,n){if(e.length===0||!Number.isFinite(n))return null;let r=0,i=1/0;for(let a=0;a<e.length;a++){let o=e[a]?.t;if(o===void 0)continue;let s=o+t;if(n>=o&&n<s)return a;let c=n<o?o-n:n-s;c<i&&(i=c,r=a)}return r}function gP(e,t,n){if(e.length===0)return null;let r=[...e].sort((e,t)=>e-t);if(t===null||!Number.isFinite(t))return n>0?r[0]??null:r[r.length-1]??null;let i=0,a=1/0;for(let e=0;e<r.length;e++){let n=Math.abs((r[e]??0)-t);n<a&&(a=n,i=e)}let o=i+n;return o<0||o>=r.length?r[i]??null:r[o]??null}function _P(e,t,n,r){return{visible:!0,dataX:e,anchorX:t,anchorY:n,pinned:r}}function vP(e,t,n){return{selection:e,gesture:t,lockHorizontalScroll:n}}function yP(e,t,n){if(e.axis!==`pending`)return e.axis;let r=Math.abs(t-e.originX),i=Math.abs(n-e.originY);return r<10&&i<10?`pending`:r>=i?`x`:`y`}function bP(e,t){return t.kind===`mouse`?e:vP(e.selection,{kind:t.kind,originX:t.x,originY:t.y,axis:`pending`},!1)}function xP(e,t){if(t.kind===`mouse`)return t.dataX===null?e.selection.pinned?e:dP:vP(_P(t.dataX,t.x,t.y,!1),null,!1);let n=e.gesture;if(n===null)return e;let r=yP(n,t.x,t.y),i={...n,axis:r};return r!==`x`||t.dataX===null?vP(e.selection,i,!1):vP(_P(t.dataX,t.x,t.y,!0),i,!0)}function SP(e,t){return t.kind===`mouse`||e.gesture===null?e:e.gesture.axis===`y`||e.gesture.axis===`x`?vP(e.selection,null,!1):e.selection.visible&&e.selection.pinned||t.dataX===null?dP:vP(_P(t.dataX,t.x,t.y,!0),null,!1)}function CP(e,t){switch(t.type){case`hide`:case`outside`:return dP;case`leave`:return e.selection.pinned?vP(e.selection,null,!1):dP;case`hover`:return vP(_P(t.dataX,t.anchorX,t.anchorY,!1),null,!1);case`key`:return vP(_P(t.dataX,t.anchorX,t.anchorY,!0),null,!1);case`down`:return bP(e,t);case`move`:return xP(e,t);case`up`:return SP(e,t);default:return t}}function wP(e){if(e==null||e.length===0)return;let t;for(let n of Object.keys(Ea))if(!(!Yi(n)||uP.has(n))&&Ea[n]===e){if(t!==void 0)return;t=n}return t}function TP(e,t,n){return e.length===0?n:t.length===0?e:t===`%`?`${e}%`:`${e} ${t}`}function EP(e){let t=e.unknownLabel??lP;if(e.value===null||!Number.isFinite(e.value))return t;let n=e.quantity===`device`?void 0:e.quantity??wP(e.unit);if(n===void 0)return iP(e.value,e.unit??null);let r=ma({value:e.value,quantity:n,preference:e.preference,precision:e.precision});return TP(r.text,r.unit,t)}function DP(e,t){return t.length===0?e:`${e}, ${t.map(e=>`${e.label} ${e.value}`).join(`, `)}`}function OP(e,t){return{heading:e,lines:t,liveText:DP(e,t)}}function kP(e){let t=e.series.filter(e=>e.visible!==!1).map(t=>({id:t.id,label:t.label,value:EP({value:t.value,quantity:t.quantity,unit:t.unit,precision:t.precision,preference:e.preference})}));return OP(e.timeLabel,t)}function AP(e,t){for(let n of e)if(t>=n.from&&t<n.to)return{state:n.state,spanMs:Math.max(0,n.to-n.from)};return null}function jP(e,t){return e===null||e.length===0?lP:t===null||!(t>0)?e:`${e} · ${wN(t)}`}function MP(e){let t=e.rows.map(e=>({id:e.id,label:e.label,value:jP(e.stateLabel,e.spanMs)}));return OP(e.timeLabel,t)}function NP(e,t,n){return`${AN(e,n)} – ${AN(e+t,n)}`}function PP(e){let t=e.layers.map(t=>({id:t.id,label:t.label,value:EP({value:t.value,quantity:t.quantity,unit:t.unit,precision:t.precision,preference:e.preference})}));return OP(e.rangeLabel,t)}function FP(e,t,n){return{left:e.placed===`right`?t.anchorX+n:t.anchorX-n-t.tooltipWidth,top:e.vertical===`above`?t.anchorY-n-t.tooltipHeight:t.anchorY+n}}function IP(e,t,n){return e>=4&&t>=4&&e+n.tooltipWidth<=n.boundsWidth-4&&t+n.tooltipHeight<=n.boundsHeight-4}function LP(e,t,n){return n.anchorX>=e&&n.anchorX<=e+n.tooltipWidth&&n.anchorY>=t&&n.anchorY<=t+n.tooltipHeight}function RP(e,t,n){let r=Math.max(4,n.boundsWidth-4-n.tooltipWidth),i=Math.max(4,n.boundsHeight-4-n.tooltipHeight);return{left:Math.min(Math.max(e,4),r),top:Math.min(Math.max(t,4),i)}}function zP(e){let t=e.gap??12,n=null;for(let r of fP){let i=FP(r,e,t),a=RP(i.left,i.top,e),o={...r,...a};if(n===null&&!LP(a.left,a.top,e)&&(n=o),IP(i.left,i.top,e)&&!LP(i.left,i.top,e))return{...r,...i}}if(n!==null)return n;let r=fP[0]??{placed:`right`,vertical:`above`},i=RP(FP(r,e,t).left,FP(r,e,t).top,e);return{...r,...i}}E(),bo();function BP(e){return e===`mouse`?`mouse`:`touch`}function VP(e,t,n,r,i,a){let o=n.getBoundingClientRect(),s=e-o.left,c=t-o.top;if(r!==null){let n=r.over.getBoundingClientRect(),i=e-n.left,o=t-n.top,l=r.bbox.left,u=r.bbox.left+r.bbox.width,d=i>=l&&i<=u&&o>=r.bbox.top&&o<=r.bbox.top+r.bbox.height;return!d&&!a?{dataX:null,anchorX:s,anchorY:c,inside:!1}:{dataX:r.posToVal(Math.min(u,Math.max(l,i)),`x`),anchorX:s,anchorY:c,inside:d}}let l=mP({localX:s,plotLeft:0,plotWidth:o.width,xMin:i.xMin,xMax:i.xMax,clamp:a});return{dataX:l,anchorX:s,anchorY:c,inside:l!==null}}function HP(e,t,n,r){if(n!==null&&t!==null){let r=n.over.getBoundingClientRect(),i=t.getBoundingClientRect();return{x:r.left-i.left+n.valToPos(e,`x`),y:r.top-i.top+n.bbox.top+n.bbox.height/2}}let i=t?.getBoundingClientRect().width??0,a=t?.getBoundingClientRect().height??0,o=r.xMax-r.xMin,s=o===0?0:(e-r.xMin)/o;return{x:Math.min(1,Math.max(0,s))*i,y:a/2}}function UP(e,t){if(e!==null){if(t===null){e.setCursor({left:-10,top:-10});return}e.setCursor({left:e.valToPos(t,`x`),top:e.bbox.top+e.bbox.height/2})}}function WP({view:e}){let t=f(null);return u(()=>{let n=t.current;if(n===null)return;let r=zP({anchorX:e.anchorX,anchorY:e.anchorY,tooltipWidth:n.offsetWidth,tooltipHeight:n.offsetHeight,boundsWidth:e.boundsWidth,boundsHeight:e.boundsHeight});n.style.left=`${String(r.left)}px`,n.style.top=`${String(r.top)}px`},[e]),c(`div`,{ref:t,role:`tooltip`,"data-chart-tooltip":``,className:`pointer-events-none absolute z-20 max-w-64 rounded-md border border-border bg-background-elevated px-2 py-1 text-foreground shadow-md`,children:[v(`p`,{className:`m-0 text-[10px] tabular-nums text-foreground-subtle`,children:e.body.heading}),v(`ul`,{className:`m-0 list-none p-0`,children:e.body.lines.map(e=>c(`li`,{className:`flex items-baseline justify-between gap-3 text-xs`,children:[v(`span`,{className:`min-w-0 truncate text-foreground-muted`,children:e.label}),v(`span`,{className:`shrink-0 tabular-nums`,children:e.value})]},e.id))})]})}function GP({spec:e,plotRef:t,kind:n,label:r,inline:i=!1,children:a}){let o=f(null),s=f(e);s.current=e;let l=f(dP),u=f(null),[d,p]=C(null),m=d!==null&&l.current.selection.pinned,h=_(e=>{l.current=e;let t=s.current,n=o.current,r=e.selection.visible?e.selection.dataX:null,i=t!==null&&r!==null?t.resolve(r):null;if(i===null||r===null){p(null),u.current!==null&&(u.current=null,t?.onDataX?.(null));return}p({body:i,anchorX:e.selection.anchorX,anchorY:e.selection.anchorY,boundsWidth:n?.getBoundingClientRect().width??0,boundsHeight:n?.getBoundingClientRect().height??0}),u.current!==r&&(u.current=r,t?.onDataX?.(r))},[]);b(()=>{let e=o.current;if(e===null)return;let n=(n,r)=>{let i=s.current;return i===null?null:VP(n.clientX,n.clientY,e,t.current,i,r)},r=e=>{if(BP(e.pointerType)===`mouse`)return;let t=n(e,!1);t!==null&&h(CP(l.current,{type:`down`,kind:`touch`,x:t.anchorX,y:t.anchorY,dataX:t.dataX}))},i=r=>{let i=BP(r.pointerType),a=l.current.gesture?.axis===`x`,o=n(r,i!==`mouse`&&a);if(o===null)return;if(i===`mouse`){if(!o.inside||o.dataX===null){h(CP(l.current,{type:`leave`})),l.current.selection.visible||UP(t.current,null);return}h(CP(l.current,{type:`hover`,dataX:o.dataX,anchorX:o.anchorX,anchorY:o.anchorY})),UP(t.current,o.dataX);return}let s=CP(l.current,{type:`move`,kind:`touch`,x:o.anchorX,y:o.anchorY,dataX:o.dataX});s.lockHorizontalScroll&&(r.preventDefault(),r.pointerId!==0&&!e.hasPointerCapture(r.pointerId)&&e.setPointerCapture(r.pointerId)),h(s),s.selection.dataX!==null&&s.selection.visible&&UP(t.current,s.selection.dataX)},a=e=>{if(BP(e.pointerType)===`mouse`)return;let r=n(e,l.current.gesture?.axis===`x`);if(r===null)return;let i=CP(l.current,{type:`up`,kind:`touch`,x:r.anchorX,y:r.anchorY,dataX:r.dataX});h(i),UP(t.current,i.selection.visible?i.selection.dataX:null)},c=e=>{if(BP(e.pointerType)!==`mouse`)return;let n=CP(l.current,{type:`leave`});h(n),n.selection.visible||UP(t.current,null)};return e.addEventListener(`pointerdown`,r),e.addEventListener(`pointermove`,i),e.addEventListener(`pointerup`,a),e.addEventListener(`pointercancel`,a),e.addEventListener(`pointerleave`,c),()=>{e.removeEventListener(`pointerdown`,r),e.removeEventListener(`pointermove`,i),e.removeEventListener(`pointerup`,a),e.removeEventListener(`pointercancel`,a),e.removeEventListener(`pointerleave`,c)}},[h,t]),b(()=>{if(!m)return;let e=e=>{let n=o.current;n!==null&&e.target instanceof Node&&n.contains(e.target)||(h(CP(l.current,{type:`outside`})),UP(t.current,null))};return document.addEventListener(`pointerdown`,e,!0),()=>document.removeEventListener(`pointerdown`,e,!0)},[h,m,t]);let g=e=>{let n=s.current;if(n===null)return;if(e.key===`Escape`){e.preventDefault(),h(CP(l.current,{type:`hide`})),UP(t.current,null);return}if(e.key!==`ArrowLeft`&&e.key!==`ArrowRight`)return;e.preventDefault();let r=l.current.selection.visible?l.current.selection.dataX:null,i=gP(n.stops,r,e.key===`ArrowRight`?1:-1);if(i===null)return;let a=HP(i,o.current,t.current,n);h(CP(l.current,{type:`key`,dataX:i,anchorX:a.x,anchorY:a.y})),UP(t.current,i)},y=e=>{o.current=e},x=$(`relative min-w-0 touch-pan-y outline-none focus-visible:ring-2 focus-visible:ring-primary`,i?`inline-block w-full`:`w-full`),S=d===null?null:v(WP,{view:d}),w=d!==null&&typeof document<`u`?xo(v(`div`,{className:`sr-only`,"aria-live":`polite`,"data-chart-tooltip-live":``,children:d.body.liveText}),document.body):null;return c(i?`span`:`div`,{ref:y,className:x,"data-chart-shell":``,"data-chart-kind":n,tabIndex:e===null?void 0:0,"aria-label":r,onKeyDown:g,children:[a,S,w]})}E();var KP=null;function qP(){if(typeof document>`u`||typeof window>`u`||typeof window.matchMedia!=`function`)return!1;try{return document.createElement(`canvas`).getContext(`2d`)!==null}catch{return!1}}function JP(){return KP===null&&(KP=qP()?a(()=>import(`./uPlot.esm-B6hGABOr.js`).then(e=>e.default),[],import.meta.url).catch(()=>null):Promise.resolve(null)),KP}function YP({optionsKey:e,buildOptions:t,data:n,height:r,onInstance:i,className:a,inline:o=!1,tooltip:s=null,kind:c,label:l}){let u=f(null),d=f(null),[p,m]=C(null),h=f({buildOptions:t,data:n,onInstance:i});h.current={buildOptions:t,data:n,onInstance:i},b(()=>{let e=!0;return JP().then(t=>{e&&t!==null&&m(()=>t)}),()=>{e=!1}},[]),b(()=>{let e=u.current;if(p===null||e===null)return;let t=Math.max(1,Math.floor(e.clientWidth)),n=new p({...h.current.buildOptions(t,p),width:t,height:r},h.current.data,e);return n.over.style.touchAction=`pan-y`,n.root.style.touchAction=`pan-y`,d.current=n,h.current.onInstance?.(n),()=>{h.current.onInstance?.(null),n.destroy(),d.current=null}},[p,e,r]),b(()=>{d.current?.setData(n)},[n]),b(()=>{let e=u.current;if(e===null||typeof ResizeObserver>`u`)return;let t=new ResizeObserver(e=>{let t=Math.floor(e[0]?.contentRect.width??0),n=d.current;n!==null&&t>0&&t!==n.width&&n.setSize({width:t,height:r})});return t.observe(e),()=>t.disconnect()},[r]),b(()=>{if(typeof MutationObserver>`u`)return;let e=new MutationObserver(()=>d.current?.redraw(!1,!0));return e.observe(document.documentElement,{attributes:!0,attributeFilter:[`class`]}),()=>e.disconnect()},[]);let g=e=>{u.current=e};return v(GP,{spec:s,plotRef:d,kind:c,label:l,inline:o,children:o?v(`span`,{ref:g,className:a??`block w-full min-w-0`,"data-chart-plot":``}):v(`div`,{ref:g,className:a??`w-full min-w-0`,"data-chart-plot":``})})}E();function XP({title:e,layers:t,buckets:n,bucketMs:r,range:i,unit:a=null,formatValue:o,displayPreference:s,height:l,stacked:u,showTotal:d=!1,syncKey:m,pending:h=!1,emptyMessage:g,actions:y,footer:b,windowToggle:x,compact:S=!1,minBarFraction:w=0,selectedIndex:T=null,onSelect:E,bucketLabel:D,bucketTestId:O,className:k}){let A=q(),j=l??(S?24:100),M=u??t.length>1,N=_(e=>(o??iP)(e,a),[o,a]),F=p(()=>M?oP(n,t.length):t.map((e,t)=>n.map(e=>e.values[t]??null)),[n,t,M]),I=p(()=>sP(n,t.length),[n,t.length]),[L,R]=C(null),z=p(()=>({xMin:i.from,xMax:i.to,stops:n.map(e=>e.t),resolve:e=>{let o=hP(n,r,e);if(o===null)return null;let c=n[o];return c===void 0?null:PP({rangeLabel:NP(c.t,r,i.to-i.from),preference:s,layers:t.map((e,t)=>({id:e.id,label:e.label,value:c.values[t]??null,unit:a}))})},onDataX:e=>{R(e===null?null:hP(n,r,e))}}),[n,r,i,t,a,s]),B=f({buckets:n,tops:F,range:i,selectedIndex:T,onSelect:E,bucketLabel:D,fmt:N});B.current={buckets:n,tops:F,range:i,selectedIndex:T,onSelect:E,bucketLabel:D,fmt:N};let V=`${t.map(e=>`${e.id}:${e.colorIndex}`).join(`,`)}#${S?`C`:``}#${M?`S`:``}#${m??``}#${String(r)}`,H=p(()=>{let e=F.at(-1)??[],t=M?e:n.map((e,t)=>Math.max(...F.map(e=>e[t]??0)));return[n.map(e=>e.t),t.map(e=>e??null)]},[n,F,M,T]),U=_(()=>{let e={floor:0};return{ms:1,legend:{show:!1},padding:S?[0,0,0,0]:[8,30,0,0],scales:{x:{time:!0,range:()=>[B.current.range.from,B.current.range.to]},y:{range:t=>{let n=GN([...t.data[1]??[]],e);return[n[0],n[1]]}}},axes:S?[{show:!1,scale:`x`},{show:!1,scale:`y`}]:[WN(()=>B.current.range.to-B.current.range.from),{...JN(`y`,3,e=>B.current.fmt(e),!0),splits:(t,n,r,i)=>qN([r,i],e)}],series:[{},{scale:`y`,stroke:()=>`transparent`,points:{show:!1},paths:()=>null}],cursor:{...YN(m),points:{show:!1}},hooks:{draw:[e=>{let{buckets:n,tops:i,selectedIndex:a}=B.current,o=e.ctx,s=e.valToPos(0,`y`,!0),c=w*e.bbox.height,l=Math.max(1,Math.round(devicePixelRatio));o.save(),n.forEach((n,u)=>{let d=e.valToPos(n.t,`x`,!0),f=e.valToPos(n.t+r,`x`,!0),p=Math.max(1,f-d-l),m=s;t.forEach((n,r)=>{let a=i[r]?.[u];if(a==null||!(a>(M&&r>0?i[r-1]?.[u]??0:0)))return;let f=e.valToPos(a,`y`,!0),h=M?m:s;r===t.length-1&&s-f<c&&(f=s-c),o.fillStyle=rN(QM(n.colorIndex).token);let g=Math.max(1,h-f-(M&&r>0?l:0));o.fillRect(d,f,p,g),m=f}),a===u&&(o.strokeStyle=rN(`primary`),o.lineWidth=l*1.5,o.strokeRect(d,e.bbox.top+l,p,e.bbox.height-2*l))}),o.restore()}],setCursor:[e=>{let t=e.cursor.left??-1,n=t<0?null:cP(B.current.buckets,r,e.posToVal(t,`x`));R(n);let i=n===null?void 0:B.current.buckets[n],a=i===void 0||n===null?``:B.current.bucketLabel?.(i,n)??``;e.over.title=a}],ready:[e=>{e.over.addEventListener(`click`,()=>{let t=e.cursor.left??-1;if(t<0)return;let n=cP(B.current.buckets,r,e.posToVal(t,`x`));n!==null&&B.current.onSelect?.(n)})}]}}},[V,w]),ee=i.to-i.from,W=L===null?void 0:n[L],G=t.map((e,t)=>{let n=W?W.values[t]:I.known?I.perLayer[t]:void 0;return{id:e.id,label:e.label,token:QM(e.colorIndex).token,value:n==null?W?`—`:void 0:N(n)}}),te=A(`uiLibrary.charts.barSummary`,`{{title}}, {{from}} to {{to}}: total {{total}}`,{title:e,from:kN(i.from,ee),to:kN(i.to,ee),total:I.known?N(I.total):A(`uiLibrary.charts.unknown`,`unknown`)}),ne=E===void 0?null:v(`div`,{className:`sr-only`,children:n.map((e,t)=>{let n=e.values.reduce((e,t)=>e+(t??0),0);return n<=0?null:v(`button`,{type:`button`,"data-testid":O,"aria-pressed":T===t,onClick:()=>E(t),children:D?.(e,t)??`${kN(e.t,ee)} ${N(n)}`},e.t)})}),re=v(YP,{optionsKey:V,buildOptions:U,data:H,height:j,tooltip:z,kind:`bars`,label:e});if(S)return c(`div`,{className:$(`relative min-w-0`,k),children:[v(`div`,{role:`img`,"aria-label":te,children:re}),ne]});let K=d&&I.known?A(`uiLibrary.charts.total`,`Total {{value}}`,{value:N(I.total)}):null,ie=!I.known,ae=j<=64?`sm`:j<=120?`md`:`lg`;return v(oN,{title:e,actions:c(P,{children:[K&&v(`span`,{className:`text-[11px] tabular-nums text-foreground`,children:K}),x&&v(aP,{...x}),y]}),readoutTime:W?AN(W.t,ee):null,legend:t.length>1||W?G:[],summary:te,footer:b,placeholder:h?v(uN,{message:A(`uiLibrary.charts.loading`,`Loading…`),height:ae}):ie?v(uN,{message:g??A(`uiLibrary.charts.empty`,`Nothing was recorded in this window.`),height:ae}):void 0,controls:ne,className:k,children:re})}E();var ZP=[`motion`,`object`,`audio`],QP={motion:6,object:5,audio:4},$P=.15;function eF({windowFrom:e,windowTo:t,buckets:n,selectedIndex:r,onSelectBucket:i}){let a=q(),o=p(()=>n.filter(e=>e.total>0&&e.dominant!==null),[n]),s=p(()=>o.map(e=>({t:e.startMs,values:ZP.map(t=>e.counts[t])})),[o]),c=p(()=>ZP.map(e=>({id:e,label:a(`uiLibrary.eventHeatmap.kind.${e}`,e),colorIndex:QP[e]})),[a]),l=n[0],u=l?Math.max(1,l.endMs-l.startMs):1,d=r===null?null:o.findIndex(e=>e.index===r);return v(`div`,{className:`rounded bg-background/40`,children:v(XP,{compact:!0,title:a(`uiLibrary.eventHeatmap.title`,`Event density`),layers:c,buckets:s,bucketMs:u,range:{from:e,to:t},stacked:!0,minBarFraction:$P,selectedIndex:d===null||d<0?null:d,onSelect:e=>{let t=o[e];t&&i(t.index)},bucketTestId:`heatmap-bar`,bucketLabel:(e,t)=>{let n=o[t];return n?a(`uiLibrary.eventHeatmap.bucketTitle`,`{{time}} · motion {{motion}} · object {{object}}`,{time:new Date(n.startMs).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`}),motion:n.counts.motion,object:n.counts.object}):``}})})}function tF(e){return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`}function nF(e){let t=e.split(`-`),n=t[0]===void 0?NaN:parseInt(t[0],10),r=t[1]===void 0?NaN:parseInt(t[1],10),i=t[2]===void 0?NaN:parseInt(t[2],10);return isNaN(n)||isNaN(r)||isNaN(i)?null:new Date(n,r-1,i)}function rF({day:e,onDayChange:t,view:n,dayBounds:r,onViewChange:i}){let a=q(),o=e=>{let n=nF(e.target.value);n!==null&&t(n)},s=n.toMs-n.fromMs,l=(()=>{let e=0,t=1/0;for(let n=0;n<RM.length;n++){let r=RM[n];if(r===void 0)continue;let i=Math.abs(r-s);i<t&&(t=i,e=n)}return e})(),u=n.toMs,d=()=>{let e=RM[Math.min(l+1,RM.length-1)];e!==void 0&&i(zM(r,e,u))},f=()=>{let e=RM[Math.max(l-1,0)];e!==void 0&&i(zM(r,e,u))},p=l<RM.length-1,m=l>0,h=Math.max(1,Math.round(s*.9)),g=n.fromMs>r.fromMs,_=n.toMs<r.toMs;return c(`div`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`date`,value:tF(e),max:tF(new Date),onChange:o,className:`rounded border border-border bg-background px-2 py-0.5 text-[11px] text-foreground focus:outline-none focus:ring-1 focus:ring-primary`,"aria-label":a(`uiLibrary.timelineControls.day`,`Select recording day`)}),c(`div`,{className:`ml-auto flex items-center gap-1`,children:[v(`button`,{type:`button`,onClick:()=>{i(BM(n,r,-h))},disabled:!g,title:a(`uiLibrary.timelineControls.earlierTitle`,`Earlier (pan back)`),"aria-label":a(`uiLibrary.timelineControls.earlier`,`Pan earlier`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(ge,{size:14})}),v(`button`,{type:`button`,onClick:()=>{i(BM(n,r,h))},disabled:!_,title:a(`uiLibrary.timelineControls.laterTitle`,`Later (pan forward)`),"aria-label":a(`uiLibrary.timelineControls.later`,`Pan later`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(It,{size:14})}),v(`span`,{className:`mx-0.5 h-3 w-px bg-border`,"aria-hidden":`true`}),v(`button`,{type:`button`,onClick:f,disabled:!m,title:a(`uiLibrary.timelineControls.zoomOut`,`Zoom out`),"aria-label":a(`uiLibrary.timelineControls.zoomOut`,`Zoom out`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(Wr,{size:13})}),v(`button`,{type:`button`,onClick:d,disabled:!p,title:a(`uiLibrary.timelineControls.zoomIn`,`Zoom in`),"aria-label":a(`uiLibrary.timelineControls.zoomIn`,`Zoom in`),className:`rounded p-1 text-foreground-subtle transition-colors hover:bg-background/60 hover:text-foreground disabled:cursor-not-allowed disabled:opacity-40`,children:v(Dr,{size:13})})]}),v(`span`,{className:`text-[9px] text-foreground-subtle`,children:iF(s)})]})}function iF(e){let t=e/36e5;if(t>=24)return`24h`;if(t>=1)return`${Math.round(t)}h`;let n=e/6e4;return`${Math.round(n)}m`}E();var aF=18e3/100;function oF({day:e,onDayChange:t,view:n,dayBounds:r,onViewChange:i,buckets:a,selectedBucketIndex:o,onSelectBucket:s,densityLoading:l}){let u=q(),d=f(null),p=_(e=>{let t=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.shiftKey?e.deltaY:0;t!==0&&(e.preventDefault(),i(BM(n,r,t*aF)))},[n,r,i]),m=UM(n.fromMs,n.toMs,5);return c(`div`,{className:`space-y-1`,children:[v(rF,{day:e,onDayChange:t,view:n,dayBounds:r,onViewChange:i}),c(`div`,{ref:d,onWheel:p,className:`space-y-1`,children:[v(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:u(`uiLibrary.clipBandBar.eventsDensity`,`Events · density`)}),l?v(`div`,{className:`h-6 animate-pulse rounded bg-background/40`}):v(eF,{windowFrom:n.fromMs,windowTo:n.toMs,buckets:a,selectedIndex:o,onSelectBucket:s}),v(`div`,{className:`relative h-3`,children:m.map(e=>v(`span`,{className:`absolute -translate-x-1/2 text-[9px] text-foreground-subtle`,style:{left:`${String(e.pct)}%`},children:e.label},e.pct))})]})]})}E();var sF=Wn(`camstack:vod-playback`,{request:null,play:()=>{},clear:()=>{}});function cF({children:e}){let[t,n]=C(null),r=p(()=>({request:t,play:e=>n(e),clear:()=>n(null)}),[t]);return v(sF.Provider,{value:r,children:e})}function lF(){return I(sF)}E();var uF=kl(`rounded-lg p-3`,{variants:{variant:{flat:`bg-surface`,bordered:`bg-surface border border-border`}},defaultVariants:{variant:`bordered`}}),dF=D(({className:e,variant:t,...n},r)=>v(`div`,{ref:r,className:$(uF({variant:t}),e),...n}));dF.displayName=`Card`,E();var fF=[`low`,`mid`,`high`];function pF({deviceId:e,clip:t,profile:n,onProfileChange:r}){let i=q(),a=lF(),o=hk({deviceId:e,clipId:t.id,profile:n}),s=o.data,l=`${new Date(t.timeRange.startMs).toLocaleString()} · ${t.source}`;return b(()=>{s!==void 0&&a.play({url:bt(s.playbackUrl),...s.format===void 0?{}:{format:s.format},label:l})},[s,l]),c(dF,{className:`space-y-2 text-sm`,children:[v(`div`,{className:`font-medium text-foreground`,children:l}),c(`div`,{className:`flex items-center gap-1`,children:[v(`span`,{className:`mr-1 text-[10px] uppercase tracking-wide text-foreground-subtle`,children:i(`uiLibrary.clipPanel.quality`,`Quality`)}),fF.map(e=>v(gA,{variant:e===n?`primary`:`secondary`,"aria-pressed":e===n,onClick:()=>r(e),children:e},e))]}),o.status===`pending`?c(`div`,{className:`space-y-1`,children:[v(`div`,{role:`status`,className:`text-xs text-foreground-subtle`,children:i(`uiLibrary.clipPanel.preparing`,`Preparing the clip — the file is fetched and muxed once…`)}),v(uM,{className:`h-4 w-48`})]}):o.status===`error`?v(YM,{title:i(`uiLibrary.clipPanel.prepareFailed`,`This clip could not be prepared`),message:o.error?.message??i(`uiLibrary.clipPanel.noReasonGiven`,`no reason given`)}):s===void 0?null:c(`div`,{className:`space-y-2`,children:[s.served===void 0||s.served===n?null:v(YM,{variant:`warning`,message:v(hi,{uiKey:`uiLibrary.clipPanel.servedFallback`,fallback:`Served the <0>{{served}}</0> stream — this clip has no {{profile}} twin.`,components:[v(`strong`,{},`served`)],values:{served:s.served,profile:n}})}),c(`a`,{href:bt(s.playbackUrl),download:!0,className:`inline-flex items-center gap-1.5 text-xs font-medium text-primary hover:underline`,children:[v(nn,{className:`h-3.5 w-3.5`,"aria-hidden":`true`}),i(`uiLibrary.clipPanel.download`,`Download this clip`)]})]})]})}function mF(e){let t=Math.round(e/1e3),n=Math.floor(t/3600),r=Math.floor(t%3600/60),i=t%60;return n>0?`${n}h ${r}m`:r>0?`${r}m ${i}s`:`${i}s`}var hF={sleeping:(e,t)=>t(`uiLibrary.clipTile.refusal.sleeping`,`The camera is asleep — a still would cost a wake`),"camera-refused":(e,t)=>t(`uiLibrary.clipTile.refusal.camera_refused`,`The camera refused — {{reason}}`,{reason:e}),"no-keyframe":(e,t)=>t(`uiLibrary.clipTile.refusal.no_keyframe`,`No decodable frame inside this window`),unsupported:(e,t)=>t(`uiLibrary.clipTile.refusal.unsupported`,`This source cannot produce stills`),"queue-full":(e,t)=>t(`uiLibrary.clipTile.refusal.queue_full`,`Waiting for the camera — its still queue is full`),"camera-backoff":(e,t)=>t(`uiLibrary.clipTile.refusal.camera_backoff`,`The camera is resting after refusing — trying again shortly`),"no-catalog-row":(e,t)=>t(`uiLibrary.clipTile.refusal.no_catalog_row`,`This clip is no longer in the catalog`),"unknown-device":(e,t)=>t(`uiLibrary.clipTile.refusal.unknown_device`,`This camera is not served here`),"uid-missing":(e,t)=>t(`uiLibrary.clipTile.refusal.uid_missing`,`The camera’s id is not known yet`)};function gF(e,t,n){let r=e===void 0?void 0:hF[e];return r===void 0?t:r(t,n)}function _F(e,t,n){return{kind:`unavailable`,reason:e,text:gF(n,e,t)}}function vF(e,t=Fn){return e.thumbnail===void 0?e.thumbnailUnavailable===void 0?e.thumbnailMint===void 0?{kind:`none`,text:t(`uiLibrary.clipTile.noStill`,`This clip carries no still and offered none`)}:{kind:`mint`,url:e.thumbnailMint}:_F(e.thumbnailUnavailable.reason,t,e.thumbnailUnavailable.reason):{kind:`vouched`,url:e.thumbnail}}function yF(e,t=Fn){return e.disposition===`deferred`?{kind:`deferred`,reason:e.reason,text:gF(e.code,e.reason,t),retryAfterMs:e.retryAfterMs??null}:_F(e.reason,t,e.code)}async function bF(e,t,n=Fn){let r;try{r=await t(e,{credentials:`same-origin`})}catch(e){return SF(e,n)}if(r.status===204)return yF(xF(r,n),n);if(!r.ok)return yF({code:void 0,reason:n(`uiLibrary.clipThumbnail.httpStatus`,`HTTP {{status}}`,{status:String(r.status)}),disposition:void 0},n);try{return{kind:`image`,blob:await r.blob()}}catch(e){return SF(e,n)}}function xF(e,t){let n=e.headers.get(`retry-after`),r=n===null?NaN:Number(n);return{code:e.headers.get(`x-camstack-reason-code`)??void 0,reason:e.headers.get(`x-camstack-reason`)??t(`uiLibrary.clipThumbnail.noReason`,`no reason given`),disposition:e.headers.get(`x-camstack-disposition`)??void 0,retryAfterMs:Number.isFinite(r)&&r>0?r*1e3:null}}function SF(e,t){return yF({code:void 0,reason:e instanceof Error?e.message:String(e),disposition:`deferred`},t)}var CF=4e3,wF=3e4,TF=.25;function EF(e){if(e.attempt>=4||e.attempt<0)return null;let t=CF*2**e.attempt,n=Math.max(t,e.serverHintMs??0),r=Math.min(n,wF),i=1+(e.random()*2-1)*TF;return{waitMs:Math.round(r*i)}}E();function DF(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function OF(e){let t=q(),n=f(t);n.current=t;let r=p(()=>vF(e,t),[e.thumbnail,e.thumbnailMint,e.thumbnailUnavailable?.reason,t]),[i,a]=C(null),o=r.kind===`mint`?r.url:null;return b(()=>{if(a(null),o===null||typeof fetch!=`function`)return;let e=null,t=!1,r,i=async s=>{let c=await bF(bt(o),fetch,n.current);if(t)return;if(c.kind===`image`){e=URL.createObjectURL(c.blob),a({kind:`vouched`,url:e});return}if(c.kind!==`deferred`){a(c);return}let l=EF({attempt:s,serverHintMs:c.retryAfterMs,random:Math.random});if(l===null){a({kind:`unavailable`,reason:c.reason,text:c.text});return}r=setTimeout(()=>{i(s+1)},l.waitMs)};return i(0),()=>{t=!0,r!==void 0&&clearTimeout(r),e!==null&&URL.revokeObjectURL(e)}},[o]),i??r}function kF({clip:e,selected:t,onSelect:n}){let r=q(),i=OF(e),a=e.playable!==!1,o=[...e.labels??[],...e.behaviours??[]];return v(`li`,{children:v(`button`,{type:`button`,onClick:()=>n(e),disabled:!a,"aria-current":t?`true`:void 0,className:`block w-full text-left disabled:cursor-not-allowed`,children:c(dF,{className:`flex gap-3 transition-colors ${t?`border-primary`:``} ${a?`hover:bg-surface-hover`:`opacity-70`}`,children:[v(`div`,{className:`flex h-16 w-28 shrink-0 items-center justify-center overflow-hidden rounded bg-surface-hover text-[10px] text-foreground-subtle`,children:i.kind===`vouched`?v(`img`,{src:i.url,alt:``,className:`h-full w-full object-cover`}):i.kind===`mint`||i.kind===`deferred`?v(`span`,{role:`status`,"aria-label":i.kind===`mint`?r(`uiLibrary.clipTile.loadingStill`,`Loading the still`):i.text,className:`h-full w-full`,children:v(uM,{className:`h-full w-full rounded-none`})}):v(`span`,{className:`px-1 text-center leading-tight`,children:i.text})}),c(`div`,{className:`min-w-0 flex-1 space-y-1`,children:[c(`div`,{className:`flex items-baseline gap-2`,children:[v(`span`,{className:`text-sm font-medium text-foreground`,children:DF(e.timeRange.startMs)}),v(`span`,{className:`text-[11px] text-foreground-subtle`,children:e.inProgress===!0?r(`uiLibrary.clipTile.recording`,`Recording…`):mF(e.timeRange.endMs-e.timeRange.startMs)})]}),v(`div`,{className:`text-[10px] text-foreground-subtle`,children:e.source}),o.length===0&&e.nativeTypes===void 0?null:c(`div`,{className:`flex flex-wrap gap-1`,children:[o.map(e=>v(zk,{variant:`info`,children:e},`label:${e}`)),(e.nativeTypes??[]).map(e=>v(zk,{style:`outline`,children:e},`native:${e}`))]}),a?null:v(`div`,{className:`text-[11px] text-warning`,children:r(`uiLibrary.clipTile.notPlayable`,`Not playable — {{reason}}`,{reason:e.unplayableReason??r(`uiLibrary.clipTile.noReason`,`the source gave no reason`)})})]})]})})})}function AF(e){return e<10?`0${String(e)}`:String(e)}function jF(e){let[t,n,r]=e.split(`-`).map(e=>Number(e));return new Date(t??1970,(n??1)-1,r??1,0,0,0,0)}function MF(e){return`${String(e.getFullYear())}-${AF(e.getMonth()+1)}-${AF(e.getDate())}`}function NF(e,t){let n=jF(e);return n.setDate(n.getDate()+t),MF(n)}function PF(e){return jF(e).toLocaleDateString(void 0,{weekday:`short`,year:`numeric`,month:`short`,day:`numeric`})}var FF=366;function IF(e){let t=Math.max(e.fromMs,e.toMs-1),n=MF(new Date(t)),r=MF(new Date(e.fromMs)),i=0;for(;r<=n&&i<FF;)i+=1,r=NF(r,1);return i}function LF(e){let t=IF(e);return t>2?{kind:`too-wide`,band:e,localDays:t,maxLocalDays:2}:{kind:`askable`,band:e,localDays:t}}function RF(e,t){return t===null?{fromMs:e.fromMs,toMs:e.toMs}:{fromMs:Math.max(t.startMs,e.fromMs),toMs:Math.min(t.endMs,e.toMs)}}function zF(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function BF(e){let t=MF(new Date(e.fromMs)),n=MF(new Date(Math.max(e.fromMs,e.toMs-1)));return t===n?`${PF(t)}, ${zF(e.fromMs)} – ${zF(e.toMs)}`:`${PF(t)} ${zF(e.fromMs)} – ${PF(n)} ${zF(e.toMs)}`}var VF={ok:{headlineKey:`uiLibrary.clipSource.state.ok`,headlineFallback:`Answering`,tone:`ok`,answered:!0},sleeping:{headlineKey:`uiLibrary.clipSource.state.sleeping`,headlineFallback:`Asleep — showing the catalog read while it was awake`,tone:`warn`,answered:!0},unreachable:{headlineKey:`uiLibrary.clipSource.state.unreachable`,headlineFallback:`Could not be reached — its clips are missing from this list`,tone:`error`,answered:!1},"no-storage":{headlineKey:`uiLibrary.clipSource.state.no_storage`,headlineFallback:`No storage card — this camera keeps nothing of its own`,tone:`warn`,answered:!1},"index-empty":{headlineKey:`uiLibrary.clipSource.state.index_empty`,headlineFallback:`The camera's calendar marks these days, and its own index lists nothing`,tone:`warn`,answered:!1}};function HF(e,t=Fn){let n=VF[e.availability.state];return{source:e.source,label:e.label,headline:t(n.headlineKey,n.headlineFallback),detail:e.availability.reason??null,tone:n.tone,answered:n.answered}}function UF(e,t=Fn){if(e.plan.kind===`too-wide`)return{kind:`refused`,band:e.plan.band,localDays:e.plan.localDays,maxLocalDays:e.plan.maxLocalDays};if(e.clipsStatus===`error`)return{kind:`failed`,message:e.clipsError??t(`uiLibrary.clipView.clipsFailed`,`The clip list could not be read`)};if(e.sourcesStatus===`error`&&e.clips.length===0)return{kind:`failed`,message:e.sourcesError??t(`uiLibrary.clipView.sourcesFailed`,`The source list could not be read`)};let n=e.sources.map(e=>HF(e,t)),r=n.filter(e=>e.answered),i=n.filter(e=>!e.answered),a=e.clips;return e.provider===null&&e.sourcesStatus===`success`?{kind:`empty`,band:e.plan.band,answered:r,silent:i,nobodyAnswered:!0}:e.clipsStatus===`pending`||e.sourcesStatus===`pending`?{kind:`loading`}:a.length===0?{kind:`empty`,band:e.plan.band,answered:r,silent:i,nobodyAnswered:r.length===0}:{kind:`listed`,clips:a,answered:r,silent:i}}E();var WF=500,GF=60;function KF({silent:e}){let t=q();return e.length===0?null:v(YM,{variant:`warning`,title:t(`uiLibrary.clipsSection.silentSources`,{one:`One source contributed nothing to this list`,other:`{{count}} sources contributed nothing to this list`},{count:e.length}),message:v(`div`,{className:`space-y-1`,children:e.map(e=>c(`div`,{children:[v(`span`,{className:`font-medium`,children:e.label}),c(`span`,{className:`opacity-70`,children:[` (`,e.source,`)`]}),v(`div`,{children:e.headline}),e.detail===null?null:v(`div`,{className:`opacity-80 break-words`,children:e.detail})]},e.source))})})}function qF({deviceId:e}){let t=q(),[n,r]=C(()=>new Date),[i,a]=C(()=>LM(new Date,Date.now())),[o,s]=C(null),[l,u]=C(``),[d,f]=C(1),[m,h]=C(null),[g,_]=C(`low`),y=jM(`videoclips`),x=p(()=>LM(n,Date.now()),[n]),S=HM(i.toMs-i.fromMs),w=_b({deviceId:e,since:i.fromMs,until:i.toMs,bucketMs:S}),T=p(()=>NM(w.data??[],i.fromMs,S),[w.data,i.fromMs,S]),E=o===null?void 0:T.find(e=>e.index===o),D=p(()=>RF(i,E===void 0?null:{startMs:E.startMs,endMs:E.endMs}),[i,E]),O=LF(D),k=mk({deviceId:e}),A=k.data??[],j=p(()=>l===``?A.find(e=>e.addonId!==void 0)?.addonId??``:l,[l,A]),M=pk({deviceId:e,since:D.fromMs,until:D.toMs,limit:WF,provider:j},{enabled:O.kind===`askable`&&j!==``}),N=UF({plan:O,provider:j===``?null:j,clipsStatus:M.status,clips:M.data??[],sourcesStatus:k.status,sources:A,...M.error?{clipsError:M.error.message}:{},...k.error?{sourcesError:k.error.message}:{}},t),F=p(()=>{let e=new Map;for(let t of A){let n=t.addonId;if(n===void 0)continue;let r=e.get(n);r===void 0?e.set(n,[t.label]):r.push(t.label)}return[...e].map(([e,t])=>({value:e,label:t.join(` · `)}))},[A]);b(()=>{f(1)},[D.fromMs,D.toMs]);let I=e=>{r(e),a(LM(e,Date.now())),s(null)},L=e=>{a(e),s(null)},R=e=>{s(t=>t===e?null:e)},z=e=>{u(e),f(1)};if(y===`pending`)return c(`div`,{className:`space-y-2`,children:[v(`div`,{role:`status`,className:`text-xs text-foreground-subtle`,children:t(`uiLibrary.clipsSection.asking`,`Asking the registry whether this cluster serves clips…`)}),v(uM,{className:`h-24 w-full`})]});if(y===`unknown`)return v(YM,{variant:`warning`,title:t(`uiLibrary.clipsSection.unknownTitle`,`Clip sources unknown`),message:t(`uiLibrary.clipsSection.unknownMessage`,`The capability registry could not be reached, so whether this camera has clip sources is unknown — not absent.`)});if(y===`absent`)return v(`div`,{role:`status`,children:v(qM,{icon:Vn,title:t(`uiLibrary.clipsSection.absentTitle`,`No provider of videoclips in this cluster`),description:t(`uiLibrary.clipsSection.absentDescription`,`Nothing is installed that could list a camera's stored clips.`)})});let B=N.kind===`listed`?N.clips:[],V=B.slice((d-1)*GF,d*GF);return c(`div`,{className:`space-y-3`,children:[c(`div`,{children:[v(`h3`,{className:`text-sm font-semibold text-foreground`,children:t(`uiLibrary.clipsSection.clips`,`Clips`)}),v(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:t(`uiLibrary.clipsSection.intro`,`Every source this camera has, side by side — CamStack's own recordings and whatever the camera or an export keeps of its own. A source is listed because it exists, not because it was switched on here; pick sources to narrow the view.`)}),v(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:t(`uiLibrary.clipsSection.periodHint`,`The list follows the period selected on the timebar below — the recording section's own control. Zoom out to widen it, pan or pick a day to move it, click a density bar to narrow it to that window.`)})]}),c(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v(`label`,{htmlFor:`clips-provider`,className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:t(`uiLibrary.clipsSection.source`,`Source`)}),v(`div`,{className:`w-60`,children:v(Hl,{id:`clips-provider`,options:F,value:j,disabled:F.length<2,onChange:e=>z(e.target.value)})}),F.length<2?v(`span`,{className:`text-[11px] text-foreground-subtle`,children:t(`uiLibrary.clipsSection.oneProvider`,`This camera is bound to one clip provider today.`)}):null,c(`div`,{className:`ml-auto flex items-center gap-1`,children:[v(`span`,{className:`px-1 text-xs font-medium text-foreground`,children:BF(D)}),o===null?null:v(gA,{variant:`outline`,onClick:()=>s(null),children:t(`uiLibrary.clipsSection.expand`,`Expand to the visible window`)})]})]}),v(oF,{day:n,onDayChange:I,view:i,dayBounds:x,onViewChange:L,buckets:T,selectedBucketIndex:o,onSelectBucket:R,densityLoading:w.status===`pending`}),v(`section`,{"aria-label":t(`uiLibrary.clipsSection.clips`,`Clips`),className:`space-y-2`,children:N.kind===`refused`?v(YM,{variant:`warning`,title:t(`uiLibrary.clipsSection.tooWideTitle`,`That period is too wide to list`),message:t(`uiLibrary.clipsSection.tooWideMessage`,`{{band}} covers {{days}} local days, and a clip listing is asked one local day at a time — at most {{max}}. Nothing was asked for; narrow the band and the list follows it.`,{band:BF(N.band),days:N.localDays,max:N.maxLocalDays})}):N.kind===`loading`?c(P,{children:[v(`div`,{role:`status`,className:`text-xs text-foreground-subtle`,children:t(`uiLibrary.clipsSection.loadingFor`,`Loading clips for {{band}}…`,{band:BF(D)})}),v(uM,{className:`h-24 w-full`})]}):N.kind===`failed`?v(YM,{title:t(`uiLibrary.clipsSection.listFailed`,`The clip list could not be read`),message:N.message}):N.kind===`empty`?c(P,{children:[v(`div`,{role:`status`,children:v(qM,{icon:Kt,title:N.nobodyAnswered?t(`uiLibrary.clipsSection.noSourceAnswered`,`No source could answer for {{band}}`,{band:BF(N.band)}):t(`uiLibrary.clipsSection.noClips`,`No clips in {{band}}`,{band:BF(N.band)}),...N.nobodyAnswered?{}:{description:t(`uiLibrary.clipsSection.asked`,`Asked {{sources}}.`,{sources:N.answered.map(e=>e.label).join(`, `)})}})}),v(KF,{silent:N.silent})]}):c(P,{children:[v(KF,{silent:N.silent}),v(`ul`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-2 xl:grid-cols-3`,children:V.map(e=>v(kF,{clip:e,selected:m?.id===e.id,onSelect:h},`${e.source}:${e.id}`))}),v(KM,{currentPage:d,totalItems:B.length,pageSize:GF,onPageChange:f,itemNoun:t(`uiLibrary.clipsSection.itemNoun`,`clips`)})]})}),m===null?null:v(pF,{deviceId:e,clip:m,profile:g,onProfileChange:_})]})}function JF(e,t){let n=e.slot;return t.some(e=>e===n)}function YF(e,t=ya,n=Fn){let r=e=>t.indexOf(e);if(e.status===`pending`)return{kind:`pending`};if(e.status===`error`)return{kind:`unknown`,reason:e.error?.message??n(`uiLibrary.extensions.requestFailed`,`the request failed`)};let i=e.data??[];if(i.length===0)return{kind:`none`};let a=[],o=[],s=[];for(let e of i)e.state===`ok`?JF(e,t)?a.push(e):o.push({slot:e.slot,slotRef:e.slotRef}):s.push(e);return{kind:`rows`,slots:a.toSorted((e,t)=>r(e.slot)-r(t.slot)),unknownSlots:o,unreachable:s}}function XF(e,t,n){return e.includes(t)?e.filter(e=>e!==t):n===`one`?[t]:[...e,t]}function ZF(e,t){return e.filter(e=>e.suggested&&!t.includes(e.deviceId))}function QF(e,t,n){let r=n.trim().toLowerCase();return r.length===0?[]:e.filter(e=>!t.includes(e.deviceId)&&[e.name,e.location??``,e.parentName??``,e.type].some(e=>e.toLowerCase().includes(r)))}function $F(e,t){return e.length!==t.length||e.some((e,n)=>t[n]!==e)}function eI(e){return e.slot===`linked-devices`?e.trackedDeviceIds:void 0}function tI(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t]}function nI(e,t){return e.length!==t.length||e.some(e=>!t.includes(e))}function rI(e){let t=[],n=new Set,r=(e,r)=>{n.has(e)||(n.add(e),t.push({deviceId:e,origin:r}))};for(let t of e.picks)e.invalidPicks.includes(t)||r(t,`pick`);for(let t of e.implied)r(t,`implied`);for(let t of e.tracked)r(t,`not-linked`);return t}function iI(e,t,n){return n.includes(t)?e:e.filter(e=>e!==t)}function aI(e,t,n){return e.slot===`linked-devices`&&n!==void 0?{slot:`linked-devices`,deviceIds:[...t],trackedDeviceIds:[...n]}:{slot:e.slot,deviceIds:[...t]}}E();function oI(e,t){switch(e){case`ok`:return t(`uiLibrary.associationSlotCard.healthOk`,`OK`);case`missing`:return t(`uiLibrary.associationSlotCard.healthMissing`,`Missing`);case`foreign`:return t(`uiLibrary.associationSlotCard.healthForeign`,`Other owner`);case`unavailable`:return t(`uiLibrary.associationSlotCard.healthUnavailable`,`Not a valid source`)}}var sI={ok:`success`,missing:`danger`,foreign:`warning`,unavailable:`warning`};function cI({sources:e,tracked:t}){let n=q();return e.length===0?v(`p`,{className:`text-[11px] text-foreground-subtle italic`,children:n(`uiLibrary.associationSlotCard.noDevicesPicked`,`No devices picked.`)}):v(`ul`,{className:`flex flex-col gap-1`,children:e.map(e=>c(`li`,{className:`flex flex-wrap items-center gap-2 text-[11px]`,children:[v(`span`,{className:`text-foreground`,children:e.name??n(`uiLibrary.associationSlotCard.deviceN`,`Device {{id}}`,{id:e.deviceId})}),v(zk,{variant:sI[e.health],children:oI(e.health,n)}),t?.includes(e.deviceId)===!0&&v(zk,{variant:`info`,children:n(`uiLibrary.associationSlotCard.trackedEvents`,`Tracked events`)}),e.detail!==void 0&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:e.detail})]},e.deviceId))})}function lI({row:e}){let t=q(),n=e.activation;return n===null?null:c(`div`,{className:`flex flex-wrap items-center gap-2 text-[10px] text-foreground-subtle`,children:[v(zk,{variant:n.state===`active`?`success`:n.state===`inactive`?`warning`:`default`,children:n.state===`active`?t(`uiLibrary.associationSlotCard.active`,`Active`):n.state===`inactive`?t(`uiLibrary.associationSlotCard.inactive`,`Inactive`):t(`uiLibrary.associationSlotCard.unknown`,`Unknown`)}),v(`span`,{children:t(`uiLibrary.associationSlotCard.setBy`,`set by {{authority}}`,{authority:n.authority})}),n.detail!==void 0&&v(`span`,{children:n.detail})]})}function uI({sources:e,tracked:t}){let n=q();return e.length===0?null:c(`div`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle`,children:n(`uiLibrary.associationSlotCard.alwaysLinked`,`Always linked (device tree):`)}),v(`ul`,{"aria-label":n(`uiLibrary.associationSlotCard.alwaysLinkedAria`,`Always linked`),className:`flex flex-col gap-1`,children:e.map(e=>c(`li`,{className:`flex flex-wrap items-center gap-2 text-[11px]`,children:[v(`span`,{className:`text-foreground`,children:e.name??n(`uiLibrary.associationSlotCard.deviceN`,`Device {{id}}`,{id:e.deviceId})}),t?.includes(e.deviceId)===!0&&v(zk,{variant:`info`,children:n(`uiLibrary.associationSlotCard.trackedEvents`,`Tracked events`)})]},e.deviceId))})]})}function dI(e,t){switch(e){case`pick`:return null;case`implied`:return t(`uiLibrary.associationSlotCard.originImplied`,`always linked`);case`not-linked`:return t(`uiLibrary.associationSlotCard.originNotLinked`,`not linked any more — untick to remove`)}}function fI({options:e,tracked:t,nameOf:n,onToggle:r}){let i=q();return e.length===0?null:c(`fieldset`,{className:`flex flex-col gap-1`,children:[v(`legend`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.associationSlotCard.produceTracked`,`Produce tracked events on this camera (opt-in):`)}),e.map(({deviceId:e,origin:a})=>c(`label`,{className:`flex items-center gap-2 text-[11px] text-foreground`,children:[v(`input`,{type:`checkbox`,"aria-label":i(`uiLibrary.associationSlotCard.trackedFrom`,`Tracked events from {{name}}`,{name:n(e)}),checked:t.includes(e),onChange:()=>r(e)}),n(e),dI(a,i)!==null&&c(`span`,{className:`text-[10px] text-foreground-subtle`,children:[`· `,dI(a,i)]})]},e))]})}function pI({deviceId:e,row:t,onSaved:n,readOnly:r=!1}){let i=f(null);Cs(i);let a=q(),o=ea[t.slot].descriptor,s=t.value.deviceIds,l=eI(t.value),u=t.impliedSources??[],d=u.map(e=>e.deviceId),p=t.sources.filter(e=>e.health===`unavailable`).map(e=>e.deviceId),[m,h]=C(!1),[g,_]=C(s),[y,b]=C(l??[]),[x,S]=C(``),[w,T]=C(null),E=ap({deviceId:e,slotRef:t.slotRef},{enabled:m}),D=op(),O=E.data?.candidates??[],k=e=>O.find(t=>t.deviceId===e)?.name??t.sources.find(t=>t.deviceId===e)?.name??u.find(t=>t.deviceId===e)?.name??a(`uiLibrary.associationSlotCard.deviceN`,`Device {{id}}`,{id:e}),A=e=>{_(XF(g,e,o.cardinality)),b(iI(y,e,d))},j=()=>{_(s),b(l??[]),T(null),h(!0)},M=async()=>{T(null);try{await D.mutateAsync({deviceId:e,slotRef:t.slotRef,value:aI(t.value,g,l===void 0?void 0:y)}),h(!1),n()}catch(e){T(e instanceof Error?e.message:String(e))}};return c(`div`,{role:`group`,"aria-label":o.label,className:`flex flex-col gap-2 rounded-md border border-border/40 bg-surface-elevated/30 p-3`,children:[c(`div`,{className:`flex items-start justify-between gap-2`,children:[c(`div`,{className:`flex flex-col gap-0.5`,children:[v(`span`,{className:`text-xs font-semibold text-foreground`,children:o.label}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:o.description}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.storedIn`,`Stored in {{authority}}`,{authority:t.authority})})]}),!m&&!r&&v(gA,{variant:`outline`,size:`sm`,onClick:j,children:a(`uiLibrary.associationSlotCard.edit`,`Edit`)})]}),v(lI,{row:t}),!m&&v(cI,{sources:t.sources,tracked:l}),!m&&v(uI,{sources:u,tracked:l}),m&&c(`div`,{className:`flex flex-col gap-2`,children:[v(`ul`,{"aria-label":a(`uiLibrary.associationSlotCard.pickedDevices`,`Picked devices`),className:`flex flex-wrap gap-1.5`,children:g.map(e=>v(`li`,{children:c(`button`,{type:`button`,"aria-label":a(`uiLibrary.associationSlotCard.removeN`,`Remove {{name}}`,{name:k(e)}),onClick:()=>A(e),className:`inline-flex items-center gap-1 rounded-full bg-primary/15 px-2 py-0.5 text-[11px] text-foreground`,children:[k(e),v(Yn,{className:`h-3 w-3`})]})},e))}),E.status===`pending`&&v(`p`,{role:`status`,className:`text-[10px] text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.loadingCandidates`,`Loading candidates…`)}),E.status===`error`&&v(`p`,{role:`alert`,className:`text-[10px] text-danger`,children:a(`uiLibrary.associationSlotCard.candidatesError`,`Candidates could not be read: {{message}}`,{message:E.error.message})}),ZF(O,g).length>0&&c(`div`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.suggested`,`Suggested — added only if you click them:`)}),v(`ul`,{"aria-label":a(`uiLibrary.associationSlotCard.suggestions`,`Suggestions`),className:`flex flex-wrap gap-1.5`,children:ZF(O,g).map(e=>v(`li`,{children:c(`button`,{type:`button`,"aria-label":a(`uiLibrary.associationSlotCard.addN`,`Add {{name}}`,{name:e.name}),onClick:()=>_(XF(g,e.deviceId,o.cardinality)),className:`inline-flex items-center gap-1 rounded-full border border-dashed border-border px-2 py-0.5 text-[11px] text-foreground-muted`,children:[v(Se,{className:`h-3 w-3`}),e.name,e.reason!==null&&c(`span`,{className:`text-foreground-subtle`,children:[`· `,e.reason]})]})},e.deviceId))})]}),v(`input`,{ref:i,type:`search`,"aria-label":a(`uiLibrary.associationSlotCard.searchDevices`,`Search devices`),value:x,onChange:e=>S(e.target.value),placeholder:a(`uiLibrary.associationSlotCard.searchPlaceholder`,`Search devices by name, location or type`),className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground outline-none focus:border-primary`}),QF(O,g,x).length>0&&v(`ul`,{"aria-label":a(`uiLibrary.associationSlotCard.searchResults`,`Search results`),className:`flex max-h-40 flex-col gap-0.5 overflow-y-auto`,children:QF(O,g,x).map(e=>v(`li`,{children:c(`button`,{type:`button`,onClick:()=>{_(XF(g,e.deviceId,o.cardinality)),S(``)},className:`w-full rounded px-2 py-1 text-left text-[11px] text-foreground hover:bg-surface-hover`,children:[e.name,e.parentName!==null&&v(`span`,{className:`ml-1 text-foreground-subtle`,children:a(`uiLibrary.associationSlotCard.inParent`,`in {{name}}`,{name:e.parentName})}),e.location!==null&&c(`span`,{className:`ml-1 text-foreground-subtle`,children:[`· `,e.location]})]})},e.deviceId))}),l!==void 0&&v(fI,{options:rI({picks:g,invalidPicks:p,implied:d,tracked:y}),tracked:y,nameOf:k,onToggle:e=>b(tI(y,e))}),w!==null&&v(`p`,{role:`alert`,className:`text-[11px] text-danger break-words`,children:a(`uiLibrary.associationSlotCard.notSaved`,`Not saved: {{reason}}`,{reason:w})}),c(`div`,{className:`flex justify-end gap-2`,children:[v(gA,{variant:`ghost`,size:`sm`,onClick:()=>h(!1),children:a(`uiLibrary.associationSlotCard.cancel`,`Cancel`)}),v(gA,{size:`sm`,disabled:!($F(s,g)||l!==void 0&&nI(l,y))||D.isPending,onClick:()=>void M(),children:a(`uiLibrary.associationSlotCard.save`,`Save`)})]})]})]})}function mI({deviceId:e,slots:t,title:n,readOnly:r=!1}){let i=q(),a=ip({deviceId:e}),o=YF({status:a.status,data:a.data,error:a.error},void 0,i),s=e=>t===void 0||t.some(t=>t===e),l=o.kind===`rows`?o.slots.filter(e=>s(e.slot)):[],u=o.kind===`rows`?o.unknownSlots.filter(e=>s(e.slot)):[],d=n??i(`uiLibrary.extensionsPanel.title`,`Extensions`),f=o.kind===`rows`&&t!==void 0&&l.length===0&&u.length===0&&o.unreachable.length===0;return v($t,{title:d,icon:v(lr,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3`,children:c(`section`,{"aria-label":d,className:`flex flex-col gap-3`,children:[o.kind===`pending`&&v(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle`,children:i(`uiLibrary.extensionsPanel.loading`,`Loading this device’s extensions…`)}),o.kind===`unknown`&&v(YM,{title:i(`uiLibrary.extensionsPanel.unknownTitle`,`Extensions could not be read`),message:i(`uiLibrary.extensionsPanel.unknownMessage`,`Nothing is known about this device’s extensions yet: {{reason}}`,{reason:o.reason}),onRetry:()=>void a.refetch()}),o.kind===`none`&&v(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle italic`,children:i(`uiLibrary.extensionsPanel.none`,`No extensions are offered on this device.`)}),o.kind===`rows`&&c(P,{children:[f&&v(`p`,{role:`status`,className:`text-[11px] text-foreground-subtle italic`,children:i(`uiLibrary.extensionsPanel.filteredToNothing`,`None of these extensions is offered on this device.`)}),l.map(t=>v(pI,{deviceId:e,row:t,onSaved:()=>void a.refetch(),readOnly:r},t.slotRef)),u.map(e=>c(`div`,{role:`alert`,className:`flex flex-col gap-1 rounded-md border border-warning/40 bg-warning/5 p-3`,children:[c(`div`,{className:`flex items-center gap-2`,children:[v(zk,{variant:`warning`,children:i(`uiLibrary.extensionsPanel.unknownSlot`,`Unknown slot`)}),v(`span`,{className:`text-xs font-semibold text-foreground`,children:e.slot})]}),v(`p`,{className:`text-[11px] text-foreground-muted break-words`,children:e.slotRef}),v(`p`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.extensionsPanel.disagree`,`The admin UI and the server disagree: the server offers a slot this admin UI does not know. Update the admin UI, or the server.`)})]},`unknown:${e.slotRef}`)),o.unreachable.map(e=>c(`div`,{role:`alert`,className:`flex flex-col gap-1 rounded-md border border-warning/40 bg-warning/5 p-3`,children:[c(`div`,{className:`flex items-center gap-2`,children:[v(zk,{variant:`warning`,children:i(`uiLibrary.extensionsPanel.unreachable`,`Unreachable`)}),v(`span`,{className:`text-xs font-semibold text-foreground`,children:e.addonId})]}),v(`p`,{className:`text-[11px] text-foreground-muted break-words`,children:e.reason}),v(`p`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.extensionsPanel.unreachableHint`,`The extensions this component owns are unknown until it answers.`)})]},`unreachable:${e.addonId}`))]})]})})}E();var hI=1e3,gI={forward:{pan:0,tilt:1},left:{pan:-1,tilt:0},right:{pan:1,tilt:0},spin:{pan:0,tilt:-1}};function _I(e){let t=e instanceof Error?e.message:String(e);return/not available|no provider|NOT_FOUND|PRECONDITION/i.test(t)}function vI(e,t,n){let r=n?.enabled??!0,i=Ge(e,r?t:null)?.navigation,a=Gr(e,r?t:null,e=>e.navigation),[o,s]=C(null),[c,l]=C([]),[u,d]=C(!1),[p,m]=C(null),[h,g]=C(null),v=f(null);b(()=>{if(!r||!i)return;let e=!1;return(async()=>{try{let[t,n]=await Promise.all([i.getFeatures({}),i.listActions({})]);if(e)return;s(t),l(n)}catch(t){if(e||_I(t))return;m(t instanceof Error?t.message:String(t))}})(),()=>{e=!0}},[i,r]);let y=_(async e=>{if(!(!r||!i)){m(null),d(!0);try{await e()}catch(e){m(e instanceof Error?e.message:String(e))}finally{d(!1)}}},[r,i]),x=_(()=>{v.current!==null&&(clearInterval(v.current),v.current=null)},[]),S=_(async()=>{x(),g(null),i&&await y(()=>i.stop({}))},[x,i,y]),w=_(e=>{if(!i)return;x(),g(e);let t=gI[e],n=()=>{i.move({pan:t.pan,tilt:t.tilt}).catch(e=>{m(e instanceof Error?e.message:String(e))})};n(),v.current=setInterval(n,hI)},[x,i]);b(()=>()=>{v.current!==null&&(clearInterval(v.current),v.current=null,i?.stop({}).catch(()=>void 0))},[i]);let T=_(e=>y(async()=>i?.runAction({actionId:e})),[i,y]),E=_(e=>y(async()=>i?.playSound({soundId:e})),[i,y]),D=_(e=>y(async()=>i?.setLightOn({on:e})),[i,y]),O=_((e,t)=>y(async()=>i?.setLightMode(t===void 0?{mode:e}:{mode:e,level:t})),[i,y]),k=_(e=>y(async()=>i?.setLightLevel({level:e})),[i,y]);return{features:o,actions:c,status:a??null,startDrive:w,stopDrive:S,runAction:T,playSound:E,setLightOn:D,setLightMode:O,setLightLevel:k,busy:u,error:p,driving:h}}var yI={play:Le,pause:Vt,hand:hr,home:Ti,bell:Bt,crosshair:ui,"paw-print":Me,footprints:$e,droplets:Ue,"trash-2":Pe,flashlight:Ot,"flashlight-off":Fi,cat:U,dog:B,clock:In};function bI(e){return yI[e]??$r}var xI=[{direction:`left`,labelKey:`uiLibrary.navigationPanel.turnLeft`,labelFallback:`Turn left`,Icon:Lt},{direction:`forward`,labelKey:`uiLibrary.navigationPanel.forward`,labelFallback:`Forward`,Icon:R},{direction:`right`,labelKey:`uiLibrary.navigationPanel.turnRight`,labelFallback:`Turn right`,Icon:wi},{direction:`spin`,labelKey:`uiLibrary.navigationPanel.turnAround`,labelFallback:`Turn around`,Icon:ze}],SI=`inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-[10px] font-medium transition-colors bg-surface-elevated/40 text-foreground-subtle hover:bg-surface-hover hover:text-foreground disabled:opacity-50`,CI=`bg-success/15 text-success hover:bg-success/25`;function wI({entry:e,disabled:t,onRun:n}){let r=bI(e.icon);return c(`button`,{type:`button`,className:SI,disabled:t,onClick:()=>n(e),title:e.label,"aria-label":e.label,children:[v(r,{className:`h-3.5 w-3.5`}),v(`span`,{children:e.label})]})}function TI({deviceId:e}){let t=q(),n=Rn(),r=Number.isFinite(e),i=vI(n.trpcClient,r?e:0,{enabled:r});if(!r)return v(`div`,{className:`flex items-center justify-center h-full text-[11px] text-foreground-subtle italic`,children:t(`uiLibrary.navigationPanel.notLoaded`,`Device #{{deviceId}} not loaded.`,{deviceId:e})});let a=i.features,o=i.actions.filter(e=>e.enabled&&e.kind===`action`),s=i.actions.filter(e=>e.enabled&&e.kind===`sound`),l=i.status,u=l?.lightMode===`manual`,d=e=>{if(e.kind===`sound`){e.soundId!==void 0&&i.playSound(e.soundId);return}i.runAction(e.id)};return c($t,{title:t(`uiLibrary.navigationPanel.title`,`Navigation`),icon:v(qe,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3 flex flex-col gap-3 overflow-y-auto`,children:[l&&c(`div`,{className:`flex flex-wrap items-center gap-1.5 text-[10px]`,children:[v(`span`,{className:`rounded-full bg-surface-elevated/60 px-2 py-0.5 text-foreground`,children:l.mode}),l.following&&v(`span`,{className:`rounded-full bg-info/15 px-2 py-0.5 text-info`,children:t(`uiLibrary.navigationPanel.following`,`following`)}),l.flash&&v(`span`,{className:`rounded-full bg-warning/15 px-2 py-0.5 text-warning`,children:t(`uiLibrary.navigationPanel.lightOn`,`light on`)})]}),a?.move&&c(`section`,{className:`flex flex-col gap-1.5`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.driveHold`,`Drive (hold)`)}),v(`div`,{className:`grid grid-cols-4 gap-1.5`,children:xI.map(({direction:e,labelKey:n,labelFallback:r,Icon:a})=>v(`button`,{type:`button`,className:$(SI,`justify-center select-none`,i.driving===e&&CI),"aria-label":t(n,r),title:t(n,r),onPointerDown:()=>i.startDrive(e),onPointerUp:()=>void i.stopDrive(),onPointerLeave:()=>{i.driving===e&&i.stopDrive()},onPointerCancel:()=>void i.stopDrive(),children:v(a,{className:`h-4 w-4`})},e))}),a.stop&&c(`button`,{type:`button`,className:$(SI,`justify-center`),onClick:()=>void i.stopDrive(),children:[v(hr,{className:`h-3.5 w-3.5`}),v(`span`,{children:t(`uiLibrary.navigationPanel.stop`,`Stop`)})]})]}),a?.runAction&&o.length>0&&c(`section`,{className:`flex flex-col gap-1.5`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.actions`,`Actions`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:o.map(e=>v(wI,{entry:e,disabled:i.busy,onRun:d},e.id))})]}),a?.playSound&&s.length>0&&c(`section`,{className:`flex flex-col gap-1.5`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.sounds`,`Sounds`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:s.map(e=>v(wI,{entry:e,disabled:i.busy,onRun:d},e.id))})]}),a?.light&&c(`section`,{className:`flex flex-col gap-1.5 border-t border-border/40 pt-2`,children:[c(`div`,{className:`flex items-center justify-between`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.navigationPanel.fillLight`,`Fill light`)}),c(`button`,{type:`button`,className:$(SI,l?.flash&&CI),"aria-pressed":l?.flash===!0,disabled:i.busy,onClick:()=>void i.setLightOn(l?.flash!==!0),children:[l?.flash?v(Ot,{className:`h-3.5 w-3.5`}):v(Fi,{className:`h-3.5 w-3.5`}),l?.flash?t(`uiLibrary.navigationPanel.on`,`On`):t(`uiLibrary.navigationPanel.off`,`Off`)]})]}),a.lightMode&&c(`div`,{className:`flex items-center gap-2`,children:[c(`select`,{"aria-label":t(`uiLibrary.navigationPanel.lightMode`,`Light mode`),className:`rounded-md bg-surface-elevated/40 px-2 py-1 text-[10px] text-foreground`,value:l?.lightMode??`auto`,disabled:i.busy,onChange:e=>{let t=e.target.value===`manual`?`manual`:`auto`;i.setLightMode(t,t===`manual`?l?.lightLevel:void 0)},children:[v(`option`,{value:`auto`,children:t(`uiLibrary.navigationPanel.auto`,`Auto`)}),v(`option`,{value:`manual`,children:t(`uiLibrary.navigationPanel.manual`,`Manual`)})]}),u&&v(`input`,{type:`range`,"aria-label":t(`uiLibrary.navigationPanel.lightLevel`,`Light level`),className:`flex-1`,min:40,max:100,step:1,value:l?.lightLevel??100,disabled:i.busy,onChange:e=>void i.setLightLevel(Number(e.target.value))}),u&&v(`span`,{className:`text-[10px] text-foreground-subtle w-8 text-right`,children:l?.lightLevel??100})]})]}),i.error&&v(`div`,{className:`text-[10px] text-danger`,children:i.error})]})}E();var EI={up:{pan:0,tilt:1},down:{pan:0,tilt:-1},left:{pan:-1,tilt:0},right:{pan:1,tilt:0},"up-left":{pan:-1,tilt:1},"up-right":{pan:1,tilt:1},"down-left":{pan:-1,tilt:-1},"down-right":{pan:1,tilt:-1}};function DI(e,t,n){let r=n?.defaultSpeed??.5,i=n?.pulseMs??250,a=n?.enabled??!0,o=Ge(e,a?t:null)?.ptz,[s,c]=C([]),[l,u]=C(null),[d,f]=C(null),[p,m]=C(null),[h,g]=C(!1),[v,y]=C(null),x=_(async()=>{if(!(!a||!o))try{c(await o.getPresets({}))}catch(e){if(zt(e))return;y(e instanceof Error?e.message:String(e))}},[o,a]),S=_(async()=>{if(!(!a||!o))try{u(await o.getHomePreset({}))}catch(e){if(zt(e))return;y(e instanceof Error?e.message:String(e))}},[o,a]),w=_(async()=>{if(!(!a||!o))try{f(await o.getHomeReturn({}))}catch(e){if(zt(e))return;f(null)}},[o,a]),T=_(async()=>{if(!(!a||!o))try{m(await o.getOptions({}))}catch(e){if(zt(e))return;y(e instanceof Error?e.message:String(e))}},[o,a]);b(()=>{x(),T(),S(),w()},[x,T,S,w]);let E=_(async e=>{if(!(!a||!o)){y(null),g(!0);try{return await e()}catch(e){y(e instanceof Error?e.message:String(e));return}finally{g(!1)}}},[a,o]);return{move:_(async(e,t)=>{if(!o)return;let n=EI[e],a=t??r;await E(async()=>{await o.move({pan:n.pan,tilt:n.tilt,speed:a}),await new Promise(e=>setTimeout(e,i)),await o.stop({})})},[o,r,i,E]),startContinuous:_(async(e,t)=>{if(!o)return;let n=EI[e],i=t??r;await E(()=>o.continuousMove({pan:n.pan,tilt:n.tilt,speed:i}))},[o,r,E]),stopContinuous:_(async()=>{o&&await E(()=>o.stop({}))},[o,E]),zoom:_(async(e,t)=>{if(!o)return;let n=e===`in`?1:-1,a=t??r;await E(async()=>{await o.move({zoom:n,speed:a}),await new Promise(e=>setTimeout(e,i)),await o.stop({})})},[o,r,i,E]),goHome:_(async()=>{o&&await E(()=>o.goHome({}))},[o,E]),homePreset:l,setHomePreset:_(async e=>{o&&(await E(()=>o.setHomePreset({presetId:e})),await S())},[o,E,S]),captureHomeHere:_(async()=>{o&&(await E(()=>o.captureHomeHere({})),await S())},[o,E,S]),homeReturn:d,setHomeReturn:_(async(e,t)=>{o&&(await E(()=>o.setHomeReturn({enabled:e,seconds:t})),await w())},[o,E,w]),goToPreset:_(async e=>{o&&await E(()=>o.goToPreset({presetId:e}))},[o,E]),savePreset:_(async e=>{if(o)return E(async()=>{let t=new Set(s.map(e=>Number(e.id)).filter(e=>Number.isInteger(e)&&e>=0)),n=0;for(;t.has(n);)n+=1;let r=String(n);return await o.savePreset({presetId:r,name:e}),await x(),r})},[o,s,x,E]),updatePreset:_(async e=>{o&&await E(async()=>{let t=s.find(t=>t.id===e);await o.savePreset({presetId:e,name:t?.name??``}),await x()})},[o,s,x,E]),deletePreset:_(async e=>{o&&await E(async()=>{await o.deletePreset({presetId:e}),await x()})},[o,x,E]),presets:s,refreshPresets:x,options:p,busy:h,error:v}}E();var OI=`rounded-md border border-border bg-surface px-2 py-1 text-[11px] text-foreground focus:border-primary focus:outline-none disabled:opacity-50`;function kI({controls:e}){let t=q(),{homePreset:n,presets:r,setHomePreset:i,captureHomeHere:a,homeReturn:o,setHomeReturn:s,busy:l}=e,[u,d]=C(!1);if(n===null)return null;let f=l||u,p=e=>{d(!0),e().finally(()=>d(!1))},m=n.source===`native`?`This camera stores its own home position. “Set home here” pins it to where the camera is pointing now.`:n.source===`firmware`?`Taken from the camera, which names this preset as its home.`:n.source===`none`?`Nothing is set, so Home refuses rather than moving to an arbitrary preset.`:`Pinned here. Clear it to fall back to the camera’s own home.`;return c(`div`,{className:`flex flex-col gap-2 px-2 pt-2`,children:[n.source!==`native`&&c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.homePresetPicker.label`,`Home preset`)}),c(`select`,{value:n.presetId??``,disabled:f,onChange:e=>{let t=e.target.value===``?null:e.target.value;p(()=>i(t))},className:OI,children:[v(`option`,{value:``,children:t(`uiLibrary.homePresetPicker.notSet`,`Not set — Home is refused`)}),r.map(e=>v(`option`,{value:e.id,children:e.fn===`home`?t(`uiLibrary.homePresetPicker.ownHome`,`{{name}} (camera’s own home)`,{name:e.name||e.id}):e.name||e.id},e.id))]})]}),v(`button`,{type:`button`,disabled:f,onClick:()=>p(()=>a()),className:`self-start rounded-md border border-border px-2 py-1 text-[11px] text-foreground hover:bg-primary/10 disabled:opacity-50`,children:t(`uiLibrary.homePresetPicker.setHere`,`Set home here`)}),o!==null&&c(`div`,{className:`flex flex-col gap-1`,children:[c(`label`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`checkbox`,checked:o.enabled,disabled:f,onChange:e=>p(()=>s(e.target.checked,o.seconds))}),v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.homePresetPicker.returnIdle`,`Return home when idle`)})]}),c(`label`,{className:`flex flex-col gap-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle`,children:t(`uiLibrary.homePresetPicker.after`,`After (s)`)}),v(`input`,{type:`number`,min:0,max:3600,defaultValue:o.seconds,disabled:f,onBlur:e=>{let t=Number(e.target.value);!Number.isFinite(t)||Math.round(t)===o.seconds||p(()=>s(o.enabled,Math.round(t)))},className:OI})]})]}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:m})]})}E(),bo();function AI({direction:e,icon:t,disabled:n,className:r,variant:i,onMove:a,onStart:o,onStop:s}){let[c,l]=C(null),[u,d]=C(!1),f=_(t=>{if(n)return;t.currentTarget.setPointerCapture(t.pointerId),l(Date.now()),d(!1);let r=setTimeout(()=>{d(!0),o(e)},250);t.currentTarget.dataset.timer=String(r)},[e,n,o]),p=_(t=>{let n=Number(t.currentTarget.dataset.timer);n&&clearTimeout(n),t.currentTarget.dataset.timer=``,u?s():c!==null&&a(e),l(null),d(!1)},[u,e,a,s,c]),m=_(e=>{let t=Number(e.currentTarget.dataset.timer);t&&clearTimeout(t),e.currentTarget.dataset.timer=``,u&&s(),l(null),d(!1)},[u,s]),h=i===`panel`?`h-9 w-9`:`h-7 w-7`,g=i===`panel`?`h-4 w-4`:`h-3.5 w-3.5`;return v(`button`,{type:`button`,disabled:n,onPointerDown:f,onPointerUp:p,onPointerCancel:m,className:$(`flex items-center justify-center rounded transition-colors disabled:opacity-40`,i===`panel`?`text-foreground hover:bg-surface-hover active:bg-surface-hover/80`:`text-white hover:bg-white/15 active:bg-white/25`,h,r),title:e,children:v(t,{className:g})})}function jI({controls:e,mode:t=`overlay`,showPresets:n,showZoom:r=!0,showHome:i=!0,className:a}){let o=q(),{move:s,startContinuous:l,stopContinuous:d,zoom:p,goHome:m,homePreset:h,goToPreset:g,savePreset:y,updatePreset:x,deletePreset:S,presets:w,options:T,busy:E,error:D}=e,O=si(),[k,A]=C(!1),[j,M]=C(``),N=f(null),F=f(null),[I,L]=C(null),z=t===`panel`,B=r&&(T?.hasZoom??!0),V=T?.supportsPresets??w.length>0,H=(n??V)&&V,U=z&&(T?.supportsPresets??!1),ee=T?.maxPresets!==void 0&&w.length>=T.maxPresets,W=_(async()=>{let e=j.trim();!e||E||ee||await y(e)!==void 0&&M(``)},[j,E,ee,y]),G=_(async(e,t)=>{await O({title:o(`uiLibrary.ptzOverlay.deleteTitle`,`Delete preset`),message:o(`uiLibrary.ptzOverlay.deleteMessage`,`Delete PTZ preset "{{label}}"? This removes it from the camera.`,{label:t}),confirmLabel:o(`uiLibrary.ptzOverlay.delete`,`Delete`),variant:`danger`})&&await S(e)},[O,S,o]),te=_(async(e,t)=>{await O({title:o(`uiLibrary.ptzOverlay.updateTitle`,`Update preset`),message:o(`uiLibrary.ptzOverlay.updateMessage`,`Overwrite preset "{{label}}" with the camera's current position?`,{label:t}),confirmLabel:o(`uiLibrary.ptzOverlay.update`,`Update`)})&&await x(e)},[O,x,o]);u(()=>{if(!k){L(null);return}let e=()=>{let e=N.current?.getBoundingClientRect();e&&L({top:e.bottom+4,right:window.innerWidth-e.right})};return e(),window.addEventListener(`resize`,e),window.addEventListener(`scroll`,e,!0),()=>{window.removeEventListener(`resize`,e),window.removeEventListener(`scroll`,e,!0)}},[k]),b(()=>{if(!k)return;let e=e=>{let t=e.target;F.current?.contains(t)||N.current?.contains(t)||A(!1)},t=e=>{e.key===`Escape`&&A(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[k]);let ne=z?`flex flex-col items-stretch gap-2 w-full h-full p-3`:`pointer-events-auto absolute top-3 right-3 z-10 flex flex-col items-end gap-2`,re=$(z?`flex items-center gap-3 rounded-lg p-2`:`flex items-center gap-2 rounded-lg border border-white/30 bg-zinc-900/90 backdrop-blur-md p-2 shadow-lg shadow-black/40`,E&&`ring-1 ring-primary/40`),K=z?`h-9 w-9`:`h-7 w-7`,ie=z?`h-4 w-4`:`h-3.5 w-3.5`,ae=z?`text-foreground hover:bg-surface-hover`:`text-white hover:bg-white/15`,oe=z?`h-12 w-px bg-border mx-1`:`h-12 w-px bg-white/15 mx-1`;return c(`div`,{className:$(ne,a),children:[D&&v(`div`,{className:`rounded bg-danger/90 px-2 py-1 text-[10px] font-medium text-white shadow-lg max-w-[200px] self-center`,children:o(`uiLibrary.ptzOverlay.error`,`PTZ: {{error}}`,{error:D})}),c(`div`,{className:$(re,z&&`justify-center`),children:[c(`div`,{className:`grid grid-cols-3 gap-0.5`,children:[v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`up`,icon:R,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`left`,icon:kr,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`right`,icon:li,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`}),v(AI,{direction:`down`,icon:Zr,variant:t,onMove:s,onStart:l,onStop:d}),v(`span`,{"aria-hidden":!0,className:z?`h-9 w-9`:`h-7 w-7`})]}),(B||i)&&v(`div`,{className:oe}),c(`div`,{className:`flex flex-col gap-0.5`,children:[B&&c(P,{children:[v(`button`,{type:`button`,onClick:()=>p(`in`),disabled:E,title:o(`uiLibrary.ptzOverlay.zoomIn`,`Zoom in`),className:$(`flex items-center justify-center rounded disabled:opacity-40`,K,ae),children:v(Dr,{className:ie})}),v(`button`,{type:`button`,onClick:()=>p(`out`),disabled:E,title:o(`uiLibrary.ptzOverlay.zoomOut`,`Zoom out`),className:$(`flex items-center justify-center rounded disabled:opacity-40`,K,ae),children:v(Wr,{className:ie})})]}),i&&v(`button`,{type:`button`,onClick:()=>m(),disabled:E||h?.source===`none`,title:h?.source===`none`?o(`uiLibrary.ptzOverlay.noHome`,`No home preset set for this camera — pick one in PTZ settings`):o(`uiLibrary.ptzOverlay.goHome`,`Go home`),className:$(`flex items-center justify-center rounded disabled:opacity-40`,K,ae),children:v(Ti,{className:ie})})]}),H&&c(`div`,{className:`relative`,children:[c(`button`,{ref:N,type:`button`,onClick:()=>A(e=>!e),disabled:E,className:$(`flex items-center gap-1 rounded px-2 text-[10px] disabled:opacity-40`,z?`h-9 text-foreground hover:bg-surface-hover`:`h-7 text-white hover:bg-white/15`),title:o(`uiLibrary.ptzOverlay.presets`,`Presets`),children:[o(`uiLibrary.ptzOverlay.presets`,`Presets`),v(de,{className:$(`h-3 w-3 transition-transform`,k&&`rotate-180`)})]}),k&&I&&xo(c(`div`,{ref:F,style:{position:`fixed`,top:I.top,right:I.right,zIndex:60},className:$(`rounded-lg shadow-xl py-1`,U?`min-w-[220px]`:`min-w-[140px]`,z?`bg-surface border border-border`:`border border-white/30 bg-zinc-900/95 backdrop-blur-md`),children:[w.length===0&&v(`div`,{className:$(`px-3 py-1.5 text-[10px]`,z?`text-foreground-subtle`:`text-white/60`),children:o(`uiLibrary.ptzOverlay.noPresets`,`No presets yet`)}),w.map(e=>c(`div`,{className:$(`group flex items-center`,z?`hover:bg-surface-hover`:`hover:bg-white/15`),children:[v(`button`,{type:`button`,onClick:()=>{g(e.id),A(!1)},disabled:E,className:$(`flex-1 px-3 py-1.5 text-left text-[10px] disabled:opacity-40`,z?`text-foreground`:`text-white`),children:e.name||e.id}),U&&e.writable&&c(P,{children:[v(`button`,{type:`button`,onClick:()=>void te(e.id,e.name||e.id),disabled:E,title:o(`uiLibrary.ptzOverlay.overwriteTitle`,`Overwrite "{{name}}" with current position`,{name:e.name||e.id}),className:$(`flex h-5 w-5 shrink-0 items-center justify-center rounded`,`text-foreground-subtle hover:bg-primary/15 hover:text-primary disabled:opacity-40`),children:v(ui,{className:`h-3 w-3`})}),v(`button`,{type:`button`,onClick:()=>void G(e.id,e.name||e.id),disabled:E,title:o(`uiLibrary.ptzOverlay.deletePreset`,`Delete preset {{name}}`,{name:e.name||e.id}),className:$(`mr-1 flex h-5 w-5 shrink-0 items-center justify-center rounded`,`text-foreground-subtle hover:bg-danger/15 hover:text-danger disabled:opacity-40`),children:v(Yn,{className:`h-3 w-3`})})]})]},e.id)),U&&c(P,{children:[w.length>0&&v(`div`,{className:$(`my-1 h-px`,z?`bg-border`:`bg-white/15`)}),c(`div`,{className:`flex items-center gap-1 px-2 py-1`,children:[v(`input`,{type:`text`,value:j,onChange:e=>M(e.target.value),onKeyDown:e=>{e.key===`Enter`&&W()},disabled:E||ee,placeholder:o(`uiLibrary.ptzOverlay.newPreset`,`New preset name`),maxLength:64,className:$(`min-w-0 flex-1 rounded border px-2 py-1 text-[11px]`,`focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-40`,z?`border-border bg-surface text-foreground placeholder:text-foreground-subtle`:`border-white/30 bg-zinc-800 text-white placeholder:text-white/40`)}),v(`button`,{type:`button`,onClick:()=>void W(),disabled:E||ee||j.trim().length===0,title:ee?o(`uiLibrary.ptzOverlay.limitTitle`,`Camera preset limit reached ({{max}})`,{max:T?.maxPresets}):o(`uiLibrary.ptzOverlay.saveTitle`,`Save current position as a new preset`),className:$(`flex h-7 w-7 shrink-0 items-center justify-center rounded`,`bg-primary/15 text-primary hover:bg-primary/25 disabled:opacity-40`),children:v(Se,{className:`h-3.5 w-3.5`})})]}),ee&&v(`span`,{className:$(`block px-2 pb-1 text-[10px]`,z?`text-foreground-subtle`:`text-white/60`),children:o(`uiLibrary.ptzOverlay.limit`,`Preset limit reached ({{max}}).`,{max:T?.maxPresets})})]})]}),document.body)]})]})]})}E();function MI({deviceId:e}){let t=q(),n=Ge(Rn().trpcClient,e),[r,i]=C(null),[a,o]=C(!1);b(()=>{if(!n)return;let e=!1;return(async()=>{try{let t=await n.ptz?.getStatus({});if(e||!t)return;i(t.autofocus)}catch{}})(),()=>{e=!0}},[n]);let s=_(async()=>{if(!(!n?.ptz||r===null)){o(!0);try{let e=!r;await n.ptz.setAutofocus({enabled:e}),i(e)}catch(e){console.error(`ptz.setAutofocus failed`,e)}finally{o(!1)}}},[n,r]);return r===null?null:c(`div`,{className:`flex items-center justify-between border-t border-border/40 mt-2 pt-2`,children:[v(`span`,{className:`text-[10.5px] font-semibold text-foreground`,children:t(`uiLibrary.ptzPanel.autofocus`,`Autofocus`)}),c(`button`,{type:`button`,onClick:()=>void s(),disabled:a,"aria-pressed":r,className:`flex items-center gap-1.5 rounded-md px-2 py-1 text-[10px] font-medium transition-colors ${r?`bg-success/15 text-success hover:bg-success/25`:`bg-surface-elevated/40 text-foreground-subtle hover:bg-surface-hover hover:text-foreground`} disabled:opacity-50`,children:[v(`span`,{className:`h-1.5 w-1.5 rounded-full ${r?`bg-success`:`bg-foreground-subtle/40`}`}),r?t(`uiLibrary.ptzPanel.on`,`On`):t(`uiLibrary.ptzPanel.off`,`Off`)]})]})}function NI({deviceId:e}){let t=q(),n=Rn(),r=Number.isFinite(e),i=DI(n.trpcClient,r?e:0,{enabled:r});if(!r)return v(`div`,{className:`flex items-center justify-center h-full text-[11px] text-foreground-subtle italic`,children:t(`uiLibrary.ptzPanel.notLoaded`,`Device #{{deviceId}} not loaded.`,{deviceId:e})});let a=i.options?.hasAutofocus===!0;return c($t,{title:`PTZ`,icon:v(He,{className:`h-3.5 w-3.5 text-foreground-subtle`}),bodyClassName:`p-3 flex flex-col overflow-y-auto`,children:[v(jI,{controls:i,mode:`panel`}),v(kI,{controls:i}),a&&v(MI,{deviceId:e})]})}var PI=[0,1,2,3,4,5,6],FI=`00:00`,II=`23:59`;function LI(e,t){return{days:[...PI],start:FI,end:II,mode:e,...t}}function RI(){return{days:[...PI],start:`09:00`,end:`18:00`,mode:`continuous`}}function zI(e,t,n){return e.map((e,r)=>r===t?{...e,...n}:e)}function BI(e,t){return e.filter((e,n)=>n!==t)}var VI=[1,2,3,4,5,6,0];function HI(e,t){switch(t){case 1:return e(`uiLibrary.recordingBands.mon`,`Mon`);case 2:return e(`uiLibrary.recordingBands.tue`,`Tue`);case 3:return e(`uiLibrary.recordingBands.wed`,`Wed`);case 4:return e(`uiLibrary.recordingBands.thu`,`Thu`);case 5:return e(`uiLibrary.recordingBands.fri`,`Fri`);case 6:return e(`uiLibrary.recordingBands.sat`,`Sat`);default:return e(`uiLibrary.recordingBands.sun`,`Sun`)}}var UI=[`continuous`,`events`];function WI(e,t){return t===`continuous`?e(`uiLibrary.recordingBands.continuous`,`Continuous`):e(`uiLibrary.recordingBands.events`,`Events`)}function GI({bands:e,onChange:t,sensorContext:n}){let r=q();return c(`div`,{className:`space-y-2`,children:[e.length===0?v(`p`,{className:`text-[11px] text-foreground-subtle`,children:r(`uiLibrary.recordingBands.empty`,`No bands — nothing is recorded. Add one to start.`)}):e.map((r,i)=>v(YI,{band:r,onChange:n=>t(zI(e,i,n)),onRemove:()=>t(BI(e,i)),sensorContext:n},i)),c(`button`,{type:`button`,onClick:()=>t([...e,RI()]),className:`flex items-center gap-1 rounded-md bg-surface-hover px-2 py-1 text-[11px] text-foreground-subtle hover:text-foreground`,children:[v(Se,{className:`h-3 w-3`}),` `,r(`uiLibrary.recordingBands.add`,`Add band`)]})]})}var KI=Object.keys(Wa);function qI(e,t){return{type:`device-multiselect`,key:`sensorDeviceIds`,label:e(`uiLibrary.recordingBands.sensors`,`Sensors`),description:e(`uiLibrary.recordingBands.sensorsHint`,`Sensors whose ACTIVE edge starts a recording — a contact opening, a PIR firing. Same-location devices are suggested first.`),placeholder:e(`uiLibrary.recordingBands.addSensor`,`Add a sensor…`),maxItems:16,deviceFilter:{caps:KI,types:[`sensor`],excludeDeviceId:t.cameraId},...t.location===null?{}:{suggestLocation:t.location}}}function JI(e){return e===``?void 0:Number(e)}function YI({band:e,onChange:t,onRemove:n,sensorContext:r}){let i=q(),a=n=>{let r=e.days.length===0?VI:e.days;t({days:r.includes(n)?r.filter(e=>e!==n):[...r,n]})},o=n=>t({triggers:{...e.triggers,...n}});return c(`div`,{className:`space-y-1.5 rounded-md border border-border p-2`,children:[c(`div`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[v(`input`,{type:`time`,"aria-label":i(`uiLibrary.recordingBands.start`,`Band start`),value:e.start,onChange:e=>t({start:e.target.value}),className:`rounded-md border border-border bg-background px-1 py-0.5`}),v(`span`,{className:`text-foreground-subtle`,children:`→`}),v(`input`,{type:`time`,"aria-label":i(`uiLibrary.recordingBands.end`,`Band end`),value:e.end,onChange:e=>t({end:e.target.value}),className:`rounded-md border border-border bg-background px-1 py-0.5`}),v(`span`,{className:`flex gap-1`,children:UI.map(n=>v(`button`,{type:`button`,onClick:()=>t({mode:n}),className:`rounded px-2 py-0.5 ${e.mode===n?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:WI(i,n)},n))}),c(`button`,{type:`button`,"aria-label":i(`uiLibrary.recordingBands.audio`,`Band audio`),"aria-pressed":e.audio!==`muted`,title:e.audio===`muted`?i(`uiLibrary.recordingBands.silentTitle`,`Silent — this band records the video-only stream.`):i(`uiLibrary.recordingBands.soundTitle`,`With sound — this band records the camera’s audio.`),onClick:()=>t({audio:e.audio===`muted`?`on`:`muted`}),className:`inline-flex items-center gap-1 rounded px-2 py-0.5 ${e.audio===`muted`?`bg-surface-hover text-foreground-subtle`:`bg-primary/10 text-primary`}`,children:[e.audio===`muted`?v(me,{className:`h-3.5 w-3.5`}):v(mt,{className:`h-3.5 w-3.5`}),e.audio===`muted`?i(`uiLibrary.recordingBands.silent`,`Silent`):i(`uiLibrary.recordingBands.sound`,`Sound`)]}),v(`span`,{className:`flex-1`}),v(`button`,{type:`button`,onClick:n,"aria-label":i(`uiLibrary.recordingBands.remove`,`Remove band`),className:`text-foreground-subtle hover:text-red-500`,children:v(Pe,{className:`h-3.5 w-3.5`})})]}),c(`div`,{className:`flex flex-wrap gap-1`,children:[VI.map(t=>v(`button`,{type:`button`,onClick:()=>a(t),className:`rounded px-1.5 py-0.5 text-[10px] ${e.days.length===0||e.days.includes(t)?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:HI(i,t)},t)),e.days.length===0?v(`span`,{className:`self-center text-[10px] text-foreground-subtle`,children:i(`uiLibrary.recordingBands.everyDay`,`every day`)}):null]}),e.mode===`events`?c(`div`,{className:`space-y-1.5 border-t border-border pt-1.5`,children:[c(`label`,{className:`flex items-center gap-2 text-xs`,children:[v(`input`,{type:`checkbox`,checked:e.triggers?.motion??!1,onChange:e=>o({motion:e.target.checked?!0:void 0})}),i(`uiLibrary.recordingBands.motion`,`Motion`)]}),c(`label`,{className:`flex items-center gap-2 text-xs`,children:[v(`input`,{type:`checkbox`,checked:e.triggers?.audioThresholdDbfs!=null,onChange:e=>o({audioThresholdDbfs:e.target.checked?-30:void 0})}),i(`uiLibrary.recordingBands.audioAbove`,`Audio above threshold`),e.triggers?.audioThresholdDbfs==null?null:v(`input`,{type:`number`,"aria-label":i(`uiLibrary.recordingBands.threshold`,`Audio threshold dBFS`),value:e.triggers.audioThresholdDbfs,onChange:e=>o({audioThresholdDbfs:JI(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-0.5 text-xs`}),v(`span`,{className:`text-foreground-subtle`,children:`dBFS`})]}),c(`div`,{className:`flex flex-wrap items-center gap-1.5 text-xs`,children:[v(`span`,{className:`text-foreground-subtle`,children:i(`uiLibrary.recordingBands.objects`,`Objects`)}),Pee.map(t=>{let n=e.triggers?.objectClasses??[],r=n.includes(t);return v(`button`,{type:`button`,"aria-label":i(`uiLibrary.recordingBands.triggerOn`,`Trigger on {{class}}`,{class:t}),"aria-pressed":r,onClick:()=>{let e=r?n.filter(e=>e!==t):[...n,t];o({objectClasses:e.length>0?e:void 0})},className:`rounded px-1.5 py-0.5 text-[10px] ${r?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:t},t)})]}),r===void 0?null:v(Rk,{field:qI(i,r),value:(e.triggers?.sensorDeviceIds??[]).map(String),onChange:e=>{let t=Array.isArray(e)?e.map(e=>Number(e)).filter(e=>Number.isInteger(e)&&e>0):[];o({sensorDeviceIds:t.length>0?t:void 0})}}),v(`div`,{className:`flex flex-wrap items-center gap-3 text-xs`,children:c(`label`,{className:`flex items-center gap-1`,children:[i(`uiLibrary.recordingBands.postBuffer`,`Post-buffer`),v(`input`,{type:`number`,min:0,value:e.postBufferSec??``,placeholder:String(wee.postBufferSec),onChange:e=>t({postBufferSec:JI(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),`s`]})})]}):null]})}E();var XI=[{value:`off`,labelKey:`uiLibrary.recordingSettings.modeOff`,labelFallback:`Off`},{value:`events`,labelKey:`uiLibrary.recordingSettings.modeEvents`,labelFallback:`Events`},{value:`continuous`,labelKey:`uiLibrary.recordingSettings.modeContinuous`,labelFallback:`Continuous`},{value:`on-device-decision`,labelKey:`uiLibrary.recordingSettings.modeDeviceDecides`,labelFallback:`Device decides`}];function ZI(e,t){return e===`present`?null:e===`pending`?t(`uiLibrary.recordingSettings.noteChecking`,`checking the camera…`):e===`absent`?t(`uiLibrary.recordingSettings.noteAbsent`,`this camera does not report when it needs recording`):t(`uiLibrary.recordingSettings.noteUnknown`,`could not check the camera`)}function QI({initial:e,availableProfiles:t,saving:n,onSave:r,sensorContext:i}){let a=q(),[o,s]=C([...e.bands]),[l,u]=C(e.deviceDecision===!0),[d,f]=C({profiles:e.profiles,segmentSeconds:e.segmentSeconds,retention:e.retention}),p=d.retention??{},m=e=>f({...d,retention:{...p,...e}}),h=e=>e===``?void 0:Number(e),g=Na({enabled:l||o.length>0,bands:o,deviceDecision:l}),_=i?.deviceSignal,y=_===`present`||l,b=Bi(t,d.profiles),x=e=>{let t=b.includes(e)?b.filter(t=>t!==e):[...b,e];f({...d,profiles:t.length?t:void 0})},S=e=>{if(e===`off`){s([]),u(!1);return}if(e===`on-device-decision`){s([]),u(!0);return}u(!1),e!==g&&s([LI(e)])},w=()=>{let e=t.length>0?Bi(t,d.profiles):d.profiles?[...d.profiles]:void 0;r({enabled:l||o.length>0,bands:l?[]:o,...l?{deviceDecision:!0}:{},...e===void 0?{}:{profiles:e},segmentSeconds:d.segmentSeconds,retention:d.retention})},T=Nee.filter(e=>t.includes(e));return c(`div`,{className:`space-y-4`,children:[c(`div`,{className:`flex items-center gap-2 text-xs`,children:[v(`span`,{className:`text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.mode`,`Mode:`)}),XI.map(e=>{let t=e.value===`on-device-decision`,n=t?ZI(_,a):null;return v(`button`,{type:`button`,"aria-label":a(`uiLibrary.recordingSettings.modeAria`,`Mode {{label}}`,{label:a(e.labelKey,e.labelFallback)}),title:n??void 0,disabled:t&&!y,onClick:()=>S(e.value),className:`rounded px-2.5 py-1 ${g===e.value?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`} disabled:cursor-not-allowed disabled:opacity-50`,children:a(e.labelKey,e.labelFallback)},e.value)})]}),l?v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.deviceDecides`,`The DEVICE decides: this camera records for as long as it reports it is in function — a robot while it cleans — and one job is one clip. There is nothing to schedule, so this mode has no bands.`)}):c(`div`,{children:[v(`div`,{className:`mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.bands`,`Recording bands`)}),v(GI,{bands:o,onChange:s,sensorContext:i}),v(`p`,{className:`mt-1.5 text-[11px] text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.bandsHint`,`A band says WHEN to record and HOW. Nothing is recorded outside every band — an empty table means this camera is off.`)})]}),c(`div`,{className:`flex flex-wrap items-center gap-4 text-xs`,children:[T.length>0?c(`div`,{className:`flex items-center gap-2`,children:[v(`span`,{className:`text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.profiles`,`Profiles:`)}),T.map(e=>v(`button`,{type:`button`,onClick:()=>x(e),className:`rounded px-2 py-1 ${b.includes(e)?`bg-primary text-primary-foreground`:`bg-surface-hover text-foreground-subtle`}`,children:e},e))]}):v(`span`,{className:`text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.noStreams`,`No assigned streams to record yet.`)}),c(`label`,{className:`flex items-center gap-1`,children:[a(`uiLibrary.recordingSettings.segment`,`Segment`),v(`input`,{type:`number`,min:1,value:d.segmentSeconds??``,placeholder:a(`uiLibrary.recordingSettings.default`,`default`),onChange:e=>f({...d,segmentSeconds:h(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),`s`]})]}),c(`div`,{children:[v(`div`,{className:`mb-1.5 text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:a(`uiLibrary.recordingSettings.retention`,`Retention (empty = node default)`)}),c(`div`,{className:`flex flex-wrap items-center gap-3 text-xs`,children:[c(`label`,{className:`flex items-center gap-1`,children:[a(`uiLibrary.recordingSettings.maxAge`,`Max age`),v(`input`,{type:`number`,min:0,value:p.maxAgeDays??``,placeholder:`14`,onChange:e=>m({maxAgeDays:h(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),a(`uiLibrary.recordingSettings.days`,`days`)]}),c(`label`,{className:`flex items-center gap-1`,children:[a(`uiLibrary.recordingSettings.maxSize`,`Max size`),v(`input`,{type:`number`,min:0,value:p.maxSizeGb??``,placeholder:`∞`,onChange:e=>m({maxSizeGb:h(e.target.value)}),className:`w-16 rounded-md border border-border bg-background px-1 py-1 text-xs`}),`GB`]})]})]}),v(`div`,{className:`flex justify-end`,children:c(`button`,{type:`button`,disabled:n,onClick:w,className:`flex items-center gap-1.5 rounded-md bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground disabled:opacity-60`,children:[n?v(Un,{className:`h-3.5 w-3.5 animate-spin`}):v(Oi,{className:`h-3.5 w-3.5`}),a(`uiLibrary.recordingSettings.save`,`Save`)]})})]})}function $I(e){return JSON.stringify(e)}var eL=[`live`,`loading`,`playing`,`paused`,`gap`,`ended`,`error`];function tL(e){return typeof e==`string`&&eL.includes(e)}function nL(e){return e===`high`||e===`mid`||e===`low`}function rL(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let n={...t};return n.t===`state`&&tL(n.state)?{kind:`state`,state:n.state}:n.t===`position`&&typeof n.epochMs==`number`?{kind:`position`,epochMs:n.epochMs}:n.t===`servedProfile`&&nL(n.profile)&&typeof n.requested==`string`?{kind:`servedProfile`,profile:n.profile,requested:n.requested}:null}E();var iL=Wn(`camstack:recorded-playback`,{bindControlChannel:null,channelOpen:!1,mode:`live`,positionMs:null,send:()=>!1});function aL({children:e}){let t=f(null),[n,r]=C(!1),[i,a]=C(`live`),[o,s]=C(null),c=_(e=>{t.current=e;let n=()=>{t.current===e&&(t.current=null,r(!1),a(`live`),s(null))};e.onopen=()=>{t.current===e&&r(!0)},e.onclose=n,e.onerror=n,e.onmessage=n=>{if(t.current!==e)return;let r=n.data;if(typeof r!=`string`)return;let i=rL(r);i&&(i.kind===`position`?s(i.epochMs):i.kind===`state`&&(a(i.state),i.state===`live`&&s(null)))},e.readyState===`open`?r(!0):e.readyState===`closed`||e.readyState===`closing`?n():r(!1)},[]),l=_(e=>{let n=t.current;return!n||n.readyState!==`open`?!1:(n.send($I(e)),!0)},[]),u=p(()=>({bindControlChannel:c,channelOpen:n,mode:i,positionMs:o,send:l}),[c,n,i,o,l]);return v(iL.Provider,{value:u,children:e})}function oL(){return I(iL)}E();var sL={scrubbing:!1,scrubEpoch:null,playheadEpoch:null,lastSource:null};function cL(e,t){switch(t.type){case`begin`:return{...e,scrubbing:!0,scrubEpoch:null,lastSource:t.source};case`update`:return{...e,scrubbing:!0,scrubEpoch:t.epoch,lastSource:t.source};case`end`:return{...e,scrubbing:!1,scrubEpoch:null,playheadEpoch:t.epoch,lastSource:t.source};case`seek`:return{...e,scrubbing:!1,scrubEpoch:null,playheadEpoch:t.epoch,lastSource:t.source};case`playhead`:return e.scrubbing?e:{...e,playheadEpoch:t.epoch};case`reset`:return sL;default:return e}}function lL(e,t,n=70){return t-e>=n}var uL=2e3;function dL(e,t,n,r=750,i=uL){if(e===null)return!0;let a=Math.abs(t-e.epoch)<=r,o=n-e.at<=i;return!(a&&o)}function fL(e,t){let n=e.scrubbing?e.scrubEpoch:e.playheadEpoch;if(n===null)return null;let r=t.to-t.from;return r<=0?null:Math.min(1,Math.max(0,(n-t.from)/r))}function pL(e,t,n,r={current:null},i=()=>!1){let a=(e,t)=>{let n=Date.now();if(i()){r.current={epoch:e,at:n},t(e);return}dL(r.current,e,n)&&(r.current={epoch:e,at:n},t(e))};return{beginScrub:n=>{t({type:`begin`,source:n}),e.scrubStart()},updateScrub:(r,i)=>{t({type:`update`,epoch:r,source:i});let a=Date.now();lL(n.current,a)&&(n.current=a,e.scrubTo(r))},endScrub:(n,r)=>{t({type:`end`,epoch:n,source:r}),a(n,e.scrubCommit)},seek:(n,r)=>{t({type:`seek`,epoch:n,source:r}),a(n,e.seek)},setPlayhead:e=>t({type:`playhead`,epoch:e}),reset:()=>t({type:`reset`})}}function mL(e,t=()=>!1){let[n,r]=A(cL,sL),i=f(0),a=f(null),o=f(t);return o.current=t,{state:n,...p(()=>pL(e,r,i,a,()=>o.current()),[e])}}E();var hL=O(null);function gL(){let e=I(hL);if(!e)throw Error(`Dialog compound components must be used within <Dialog>`);return e}function _L({children:e,open:t,onOpenChange:n}){let[r,i]=C(!1),a=t??r,o=y(),s=_(e=>{n?.(e),t===void 0&&i(e)},[t,n]);return v(hL.Provider,{value:{open:a,setOpen:s,contentId:o},children:e})}function vL({children:e,...t}){let{setOpen:n}=gL();return v(`button`,{type:`button`,onClick:()=>n(!0),...t,children:e})}var yL=kl(`relative fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 m-0 w-[calc(100vw-2rem)] bg-background-elevated text-foreground border border-border rounded-lg p-4 backdrop:bg-black/50 backdrop:backdrop-blur-sm max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] [&:not([open])]:hidden`,{variants:{width:{sm:`max-w-sm`,md:`max-w-md`,lg:`max-w-lg`,xl:`max-w-4xl`},scroll:{content:`overflow-y-auto overscroll-contain`,body:`flex flex-col overflow-hidden overscroll-contain`},placement:{center:``,"sheet-on-mobile":`bottom-0 left-0 right-0 top-auto w-full max-w-full translate-x-0 translate-y-0 rounded-b-none max-h-[92dvh] pb-[calc(1rem+env(safe-area-inset-bottom))] md:left-1/2 md:top-1/2 md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-lg md:bottom-auto md:pb-4 md:max-h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))]`}},compoundVariants:[{placement:`sheet-on-mobile`,width:`sm`,class:`md:w-[calc(100vw-2rem)] md:max-w-sm`},{placement:`sheet-on-mobile`,width:`md`,class:`md:w-[calc(100vw-2rem)] md:max-w-md`},{placement:`sheet-on-mobile`,width:`lg`,class:`md:w-[calc(100vw-2rem)] md:max-w-lg`},{placement:`sheet-on-mobile`,width:`xl`,class:`md:w-[calc(100vw-2rem)] md:max-w-4xl`},{scroll:`body`,placement:`sheet-on-mobile`,class:`h-[92dvh] md:h-auto`},{scroll:`body`,placement:`center`,class:`h-[calc(100dvh-2rem-2*max(env(safe-area-inset-top),env(safe-area-inset-bottom)))] md:h-auto`}],defaultVariants:{width:`md`,placement:`center`,scroll:`content`}}),bL=D(({className:e,width:t,placement:n,scroll:r,children:i,...a},o)=>{let{open:s,setOpen:l,contentId:u}=gL(),d=q(),p=f(null),m=o??p;return b(()=>{let e=m.current;e&&(s&&!e.open&&e.showModal(),!s&&e.open&&e.close())},[s,m]),c(`dialog`,{ref:m,id:u,className:$(yL({width:t,placement:n,scroll:r}),e),onClose:()=>l(!1),...a,children:[v(jl,{type:`button`,variant:`ghost`,size:`sm`,icon:Yn,"aria-label":d(`uiLibrary.dialog.close`,`Close`),className:`absolute right-4 top-4 z-10 shrink-0`,onClick:()=>l(!1)}),v(xs,{id:u,modal:!0,enabled:s,children:i})]})});bL.displayName=`DialogContent`;function xL({className:e,...t}){return v(`div`,{className:$(`flex flex-col gap-1 mb-3 shrink-0 pr-10`,e),...t})}function SL({className:e,...t}){return v(`div`,{className:$(`flex-1 min-h-0 overflow-y-auto overscroll-contain`,e),...t})}function CL({className:e,...t}){return v(`div`,{className:$(`flex justify-end gap-2 mt-4 shrink-0`,e),...t})}function wL({className:e,...t}){return v(`h2`,{className:$(`text-sm font-semibold text-foreground`,e),...t})}function TL({className:e,...t}){return v(`p`,{className:$(`text-xs text-foreground-muted`,e),...t})}E();function EL({value:e,onChange:t}){let n=q(),r=_x({}),i=gx(),[a,o]=C(``),[s,l]=C(null),u=r.data??[],d=async()=>{l(null);let e=await i.mutateAsync({name:a});if(e.kind===`refused`){l(e.reason);return}o(``),await r.refetch(),t(e.collection.id)};return c(`div`,{className:`space-y-2`,"data-testid":`training-collection-picker`,children:[u.length>0?v(Hl,{"aria-label":n(`uiLibrary.trainingCollectionPicker.collection`,`Collection`),value:e??``,options:[{value:``,label:n(`uiLibrary.trainingCollectionPicker.choose`,`Choose a collection…`)},...u.map(e=>({value:e.id,label:`${e.name} (${String(e.frameCount)})`}))],onChange:e=>{e.target.value!==``&&t(e.target.value)}}):v(`p`,{className:`text-xs text-foreground-subtle`,children:r.isLoading?n(`uiLibrary.trainingCollectionPicker.reading`,`Reading the collections…`):n(`uiLibrary.trainingCollectionPicker.none`,`No collection yet — create one.`)}),c(`div`,{className:`flex items-center gap-2`,children:[v(Nl,{className:`flex-1`,"aria-label":n(`uiLibrary.trainingCollectionPicker.newName`,`New collection name`),placeholder:n(`uiLibrary.trainingCollectionPicker.newPlaceholder`,`New collection (e.g. missed at night)`),value:a,onChange:e=>{o(e.target.value)}}),c(gA,{type:`button`,variant:`secondary`,size:`sm`,disabled:i.isPending||a.trim()===``,onClick:()=>void d(),children:[v(Se,{className:`h-3 w-3`}),n(`uiLibrary.trainingCollectionPicker.create`,`Create`)]})]}),s!==null&&v(`p`,{className:`text-xs text-danger`,children:s===`empty-name`?n(`uiLibrary.trainingCollectionPicker.emptyName`,`Give the collection a name.`):n(`uiLibrary.trainingCollectionPicker.duplicateName`,`A collection with that name already exists.`)})]})}var DL={"unknown-collection":`That collection no longer exists — pick another one.`,"still-unavailable":`No frame could be taken from the recording at that moment.`,"still-busy":`The recorder is busy decoding other frames. Try again in a moment.`,"unreadable-image":`The recorder returned something that is not a picture.`,"write-failed":`The frame could not be stored. Check the artifacts storage.`};function OL(e,t){let n=DL[e];return t!==void 0&&t!==``?`${n} (${t})`:n}E();function kL({deviceId:e,epochMs:t}){let n=q(),r=_x({},{retry:!1}),i=xx(),[a,o]=C(!1),[s,l]=C(null),[u,d]=C(null),[f,p]=C(null);if(r.isError)return null;let m=async()=>{if(s===null||u===null)return;let t=await i.mutateAsync({collectionId:s,deviceId:e,epochMs:u}),a=r.data?.find(e=>e.id===s)?.name??n(`uiLibrary.sendFrameToTraining.theCollection`,`the collection`);p(t.kind===`added`?{kind:`added`,reused:t.reused,collection:a}:{kind:`refused`,text:OL(t.reason,t.detail)}),t.kind===`added`&&await r.refetch()};return c(P,{children:[c(gA,{type:`button`,variant:`secondary`,size:`sm`,"data-testid":`send-frame-to-training`,disabled:t===null,title:t===null?n(`uiLibrary.sendFrameToTraining.playFirst`,`Play back a recording first — the frame at the playhead is the one sent`):n(`uiLibrary.sendFrameToTraining.addFrame`,`Add the frame at the playhead to a training collection`),onClick:()=>{d(t),p(null),o(!0)},children:[v(ct,{className:`h-3.5 w-3.5`}),n(`uiLibrary.sendFrameToTraining.button`,`Send frame to training`)]}),v(_L,{open:a,onOpenChange:e=>!i.isPending&&o(e),children:c(bL,{children:[c(xL,{children:[v(wL,{children:n(`uiLibrary.sendFrameToTraining.title`,`Send this frame to training`)}),v(TL,{children:u===null?``:n(`uiLibrary.sendFrameToTraining.description`,`The camera's frame at {{time}} is taken from the recording at full resolution and added to the collection. Annotate it on the Retrain page — including what the model missed.`,{time:new Date(u).toLocaleString()})})]}),v(EL,{value:s,onChange:l}),f!==null&&v(`p`,{className:`mt-2 text-xs ${f.kind===`added`?`text-success`:`text-danger`}`,role:`status`,children:f.kind===`added`?f.reused?n(`uiLibrary.sendFrameToTraining.reused`,`That moment was already in the dataset; it is now in {{collection}}.`,{collection:f.collection}):n(`uiLibrary.sendFrameToTraining.added`,`Added to {{collection}}.`,{collection:f.collection}):f.text}),c(CL,{children:[v(gA,{type:`button`,variant:`ghost`,size:`sm`,disabled:i.isPending,onClick:()=>{o(!1)},children:f?.kind===`added`?n(`uiLibrary.sendFrameToTraining.done`,`Done`):n(`uiLibrary.sendFrameToTraining.cancel`,`Cancel`)}),c(gA,{type:`button`,size:`sm`,disabled:s===null||i.isPending||f?.kind===`added`,onClick:()=>void m(),children:[i.isPending&&v(Un,{className:`h-3.5 w-3.5 animate-spin`}),n(`uiLibrary.sendFrameToTraining.send`,`Send`)]})]})]})})]})}E();function AL({windowFrom:e,windowTo:t,spans:n,playheadMs:r,onSeek:i,onScrubStart:a,onScrubMove:o,onScrubEnd:s}){let l=q(),[u,d]=C(null),p=!!s,[m,h]=C(!1),g=f(null),_=n=>{let r=n.currentTarget.getBoundingClientRect();if(r.width<=0)return null;let i=(n.clientX-r.left)/r.width;return e+Math.min(1,Math.max(0,i))*(t-e)},y=e=>{if(p)return;let t=_(e);t!==null&&i(t)},b=e=>{if(!p)return;e.currentTarget.setPointerCapture(e.pointerId),h(!0),a?.();let t=_(e);t!==null&&(g.current=t,o?.(t))},x=e=>{if(!p||!m)return;let t=_(e);t!==null&&(g.current=t,o?.(t))},S=e=>{if(!p||!m)return;h(!1);let t=_(e)??g.current;g.current=null,t!==null&&s?.(t)},w=()=>{if(!m)return;h(!1);let e=g.current;g.current=null,e!==null&&s?.(e)},T=e=>{let t=_(e);if(t===null)return;let n=e.currentTarget.getBoundingClientRect();d({xPct:n.width>0?(e.clientX-n.left)/n.width*100:0,ms:t})},E=()=>{d(null)},D=u===null?null:new Date(u.ms).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`});return c(`div`,{className:`relative`,children:[c(`div`,{"data-testid":`coverage-track`,"data-scrubbing":m?`true`:`false`,onClick:y,onPointerDown:b,onPointerMove:x,onPointerUp:S,onPointerCancel:w,onMouseMove:T,onMouseLeave:E,className:`relative h-5 overflow-hidden rounded bg-background/40 ${p?`cursor-ew-resize touch-none select-none`:`cursor-pointer`}`,role:`group`,"aria-label":l(`uiLibrary.coverageTrack.ariaLabel`,`Recorded coverage timeline`),children:[n.map(n=>{let r=IM(n.startMs,e,t),i=IM(n.endMs,e,t);return v(`div`,{"data-testid":`coverage-band`,className:`absolute inset-y-0 bg-gradient-to-b from-primary to-primary/80`,style:{left:`${r}%`,width:`${Math.max(.5,i-r)}%`}},`${n.startMs}-${n.endMs}`)}),r===null?null:v(`div`,{"data-testid":`coverage-playhead`,className:`absolute inset-y-[-2px] w-0.5 bg-amber-500 shadow-[0_0_6px] shadow-amber-500`,style:{left:`${IM(r,e,t)}%`}})]}),u!==null&&D!==null?v(`div`,{"data-testid":`coverage-hover-tooltip`,className:`pointer-events-none absolute top-full z-10 mt-0.5 -translate-x-1/2 rounded bg-popover px-1.5 py-0.5 text-[9px] text-popover-foreground shadow`,style:{left:`${u.xPct}%`},children:D}):null]})}E();function jL({mediaUrl:e,kind:t}){let[n,r]=C(!1);return e&&!n?v(`img`,{src:e,alt:``,className:`h-full w-full object-cover`,loading:`lazy`,onError:()=>r(!0)}):v(`div`,{className:`flex h-full w-full items-center justify-center text-white/30`,children:v(ML,{kind:t,large:!0})})}function ML({kind:e,large:t=!1}){return v(e===`object`?Ze:e===`audio`?mt:ri,{className:t?`h-7 w-7`:`h-3.5 w-3.5 text-foreground-subtle`})}var NL=[`motion`,`object`,`audio`];function PL(e){return new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}function FL({clips:e,loading:t,busyKey:n,onPlay:r,enabledKinds:i,onToggleKind:a,hasMore:o,onLoadMore:s}){let l=q(),u=v(`div`,{className:`flex items-center gap-3 pb-1`,children:NL.map(e=>c(`label`,{className:`flex cursor-pointer items-center gap-1 text-xs text-foreground-subtle select-none`,children:[v(`input`,{type:`checkbox`,checked:i.has(e),onChange:()=>a(e),className:`h-3.5 w-3.5 accent-primary`}),e]},e))});return t&&e.length===0?c(`div`,{className:`space-y-2`,children:[u,v(`div`,{className:`px-1 py-2 text-xs text-foreground-subtle`,children:l(`uiLibrary.eventBucketStrip.loading`,`Loading events…`)})]}):e.length===0?c(`div`,{className:`space-y-2`,children:[u,v(`div`,{className:`px-1 py-2 text-xs text-foreground-subtle`,children:l(`uiLibrary.eventBucketStrip.empty`,`No events in this window.`)})]}):c(`div`,{className:`space-y-2`,children:[u,t?v(`div`,{className:`px-1 text-[10px] text-foreground-subtle`,children:l(`uiLibrary.eventBucketStrip.loading`,`Loading events…`)}):null,v(`div`,{className:`grid grid-cols-2 gap-2 sm:grid-cols-3`,children:e.map(e=>{let t=`${e.kind}:${e.id}`;return c(`button`,{type:`button`,disabled:n!==null,onClick:()=>r(e),className:`group overflow-hidden rounded-lg border border-border text-left transition-colors hover:border-primary disabled:opacity-60`,children:[c(`div`,{className:`relative aspect-video bg-black/90`,children:[v(jL,{mediaUrl:e.mediaUrl,kind:e.kind}),v(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/0 transition-colors group-hover:bg-black/30`,children:n===t?v(Un,{className:`h-6 w-6 animate-spin text-white`}):v(Le,{className:`h-6 w-6 text-white opacity-0 transition-opacity group-hover:opacity-100`})})]}),c(`div`,{className:`flex items-center gap-1.5 bg-surface px-2 py-1.5`,children:[v(ML,{kind:e.kind}),c(`div`,{className:`min-w-0 flex-1`,children:[v(`div`,{className:`truncate text-xs font-medium text-foreground`,children:e.label}),v(`div`,{className:`text-[10px] text-foreground-subtle`,children:PL(e.timestamp)})]})]})]},t)})}),e.length>0?c(`div`,{className:`flex items-center gap-2 pt-1 text-[11px] text-foreground-subtle`,children:[v(`span`,{children:l(`uiLibrary.eventBucketStrip.shown`,`({{count}} shown)`,{count:e.length})}),o?v(`button`,{type:`button`,onClick:s,className:`rounded px-2 py-0.5 text-[11px] font-medium text-primary hover:underline`,children:l(`uiLibrary.eventBucketStrip.loadMore`,`Load more`)}):null]}):null]})}function IL(e){let t=e.filter(e=>e.endMs>e.startMs).map(e=>({startMs:e.startMs,endMs:e.endMs})).toSorted((e,t)=>e.startMs-t.startMs),n=[];for(let e of t){let t=n[n.length-1];t&&e.startMs<=t.endMs?e.endMs>t.endMs&&(n[n.length-1]={startMs:t.startMs,endMs:e.endMs}):n.push(e)}return n}function LL(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1024)return`${Math.round(e)} B`;let t=[`KB`,`MB`,`GB`,`TB`,`PB`],n=e/1024,r=`KB`;for(let e of t){if(r=e,n<1024)break;n/=1024}return`${n>=100?Math.round(n).toString():n.toFixed(1)} ${r}`}E();var RL=[`motion`,`object`,`audio`],zL=60,BL=18e3/100,VL=5e3,HL=1e4,UL=[];function WL(e,t){switch(t){case`live`:return e(`uiLibrary.recordingTimeline.modeLive`,`Live`);case`loading`:return e(`uiLibrary.recordingTimeline.modeLoading`,`Loading…`);case`playing`:return e(`uiLibrary.recordingTimeline.modePlaying`,`Playing`);case`paused`:return e(`uiLibrary.recordingTimeline.modePaused`,`Paused`);case`gap`:return e(`uiLibrary.recordingTimeline.modeGap`,`No footage`);case`ended`:return e(`uiLibrary.recordingTimeline.modeEnded`,`Ended`);case`error`:return e(`uiLibrary.recordingTimeline.modeError`,`Error`)}}function GL({deviceId:e}){let t=q(),n=Rn(),r=lF(),[i,a]=C(null),[o,s]=C(null),[l,u]=C(null),[d,m]=C(null),h=oL(),{send:g,mode:y,positionMs:x}=h,[S,w]=C(!1),T=h.channelOpen&&!S,E=f(T);E.current=T;let D=p(()=>({scrubStart:()=>{},scrubTo:()=>{},scrubCommit:e=>{g({t:`scrubCommit`,epoch:e})},seek:e=>{g({t:`seek`,epoch:e})}}),[g]),O=f(y);O.current=y;let{state:k,beginScrub:A,updateScrub:j,endScrub:M,seek:N,setPlayhead:P,reset:F}=mL(D,_(()=>O.current===`live`,[]));b(()=>{x!==null&&P(x)},[x,P]),b(()=>{(!h.channelOpen||y===`live`)&&F()},[h.channelOpen,y,F]);let I=_(()=>{g({t:`goLive`}),F()},[g,F]),L=_(()=>{g({t:`setRate`,rate:+(O.current===`paused`)})},[g]),[R,z]=C(()=>new Set(RL)),B=_(e=>{z(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),[V,H]=C(zL),U=_(()=>{H(e=>e+zL)},[]);b(()=>{H(zL)},[i]);let[ee,W]=C(()=>new Date),[G,te]=C(()=>LM(new Date,Date.now())),ne=p(()=>LM(ee,Date.now()),[ee]),re=_(e=>{W(e),te(LM(e,Date.now())),a(null)},[]),K=_(e=>{te(e),a(null)},[]),ie=f(null),ae=_(e=>{let t=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.shiftKey?e.deltaY:0;if(t===0)return;e.preventDefault();let n=t*BL;te(e=>BM(e,ne,n))},[ne]),oe=HM(G.toMs-G.fromMs),se=Rw({deviceId:e,provider:ta,fromMs:G.fromMs,toMs:G.toMs}),ce=_b({deviceId:e,since:G.fromMs,until:G.toMs,bucketMs:oe}),le=se.data?.read===`unreadable`,ue=se.data?.read===`read`?se.data.ranges:UL,de=p(()=>IL(ue),[ue]),pe=p(()=>NM(ce.data??[],G.fromMs,oe),[ce.data,G.fromMs,oe]),me=i===null?void 0:pe.find(e=>e.index===i),he=me!==void 0,ge=me?.startMs??0,_e=me?Math.min(me.endMs,G.toMs):0,ve=lb({deviceId:e,since:ge,until:_e,limit:V,projection:`slim`},{enabled:he&&R.has(`object`)}),ye=cb({deviceId:e,since:ge,until:_e,limit:V,projection:`slim`},{enabled:he&&R.has(`motion`)}),be=ub({deviceId:e,since:ge,until:_e,limit:V,projection:`slim`},{enabled:he&&R.has(`audio`)}),xe=p(()=>{if(!me)return[];let e=[];if(R.has(`object`))for(let t of ve.data??[])e.push({id:String(t.id),timestamp:t.timestamp,kind:`object`,label:t.label??t.className,mediaUrl:t.mediaUrl});if(R.has(`motion`))for(let n of ye.data??[])e.push({id:String(n.id),timestamp:n.timestamp,kind:`motion`,label:t(`uiLibrary.recordingTimeline.motionClip`,`Motion ({{count}})`,{count:n.regionCount}),mediaUrl:n.mediaUrl});if(R.has(`audio`))for(let n of be.data??[])e.push({id:String(n.id),timestamp:n.timestamp,kind:`audio`,label:n.classification?.className??t(`uiLibrary.recordingTimeline.audioClip`,`Audio`),mediaUrl:n.mediaUrl});return e.toSorted((e,t)=>t.timestamp-e.timestamp)},[me,R,ve.data,ye.data,be.data,t]),Se=p(()=>!!(R.has(`object`)&&(ve.data?.length??0)===V||R.has(`motion`)&&(ye.data?.length??0)===V||R.has(`audio`)&&(be.data?.length??0)===V),[R,ve.data,ye.data,be.data,V]),Ce=_(async(t,i,a,o,c)=>{u(t),m(null);try{let t=await n.trpcClient.recording.getPlayback.query({deviceId:e,provider:ta,fromMs:i,toMs:a});t.kind===`hls`&&t.manifest.playbackUrl?(s(c),r.play({url:t.manifest.playbackUrl,label:o})):m(t.kind===`none`?`No playable footage for this selection — ${t.reason}`:`No playable footage for this selection.`)}catch{m(`Could not load this recording.`)}finally{u(null)}},[n,e,r]),we=_(e=>{let t=FM(e,de);if(!t)return;if(E.current){N(t.fromMs,`timeline`);return}let n=`Recording · ${new Date(t.fromMs).toLocaleString(void 0,{month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}`;Ce(`seek:${t.fromMs}`,t.fromMs,t.toMs,n,t.fromMs)},[de,Ce,N]),Te=_(()=>{A(`timeline`)},[A]),Ee=_(e=>{j(e,`timeline`)},[j]),De=_(e=>{M(FM(e,de)?.fromMs??e,`timeline`)},[de,M]),Oe=_(e=>{if(E.current){N(e.timestamp-VL,`timeline`);return}let t=`${e.label} · ${new Date(e.timestamp).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`})}`;Ce(`${e.kind}:${e.id}`,e.timestamp-VL,e.timestamp+HL,t,e.timestamp)},[Ce,N]),ke=_(e=>{a(t=>t===e?null:e)},[]),Ae=se.isLoading,je=ce.isLoading,Me=(ve.isLoading||ye.isLoading||be.isLoading)&&he,Ne=p(()=>UM(G.fromMs,G.toMs,5),[G.fromMs,G.toMs]),Pe=T?k.scrubbing?k.scrubEpoch:k.playheadEpoch:o,Fe=T&&(y===`playing`||y===`paused`);return c(`div`,{className:`space-y-3`,children:[se.isError?v(YM,{variant:`warning`,message:t(`uiLibrary.recordingTimeline.recorderUnavailable`,`Recorder unavailable — the recording service may not be running for this node.`)}):null,le?v(YM,{variant:`warning`,message:t(`uiLibrary.recordingTimeline.availabilityUnreadable`,`CamStack could not be asked about this camera's recordings — this bar shows nothing, which is not the same as no footage.`)}):null,d?v(YM,{variant:`warning`,message:d}):null,v(rF,{day:ee,onDayChange:re,view:G,dayBounds:ne,onViewChange:K}),v(`div`,{className:`flex justify-end`,children:v(kL,{deviceId:e,epochMs:Pe})}),h.channelOpen?c(`div`,{"data-testid":`frame-push-status-row`,className:`flex flex-wrap items-center gap-2 text-[10px]`,children:[v(`span`,{"data-testid":`frame-push-mode-chip`,className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-semibold uppercase tracking-wider ${T&&y!==`live`?y===`error`?`bg-rose-500/15 text-rose-400`:`bg-primary/15 text-primary`:`bg-background/40 text-foreground-subtle`}`,children:T?WL(t,y):t(`uiLibrary.recordingTimeline.hlsMode`,`HLS mode`)}),T&&x!==null&&!k.scrubbing?v(`span`,{className:`tabular-nums text-foreground-subtle`,children:new Date(x).toLocaleTimeString()}):null,Fe?c(`button`,{type:`button`,"data-testid":`frame-push-rate-toggle`,onClick:L,className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-medium text-foreground-subtle transition-colors hover:bg-surface-hover hover:text-foreground`,title:y===`paused`?t(`uiLibrary.recordingTimeline.resumeTitle`,`Resume playback`):t(`uiLibrary.recordingTimeline.pauseTitle`,`Pause playback`),children:[v(y===`paused`?Le:Vt,{className:`h-3 w-3`}),y===`paused`?t(`uiLibrary.recordingTimeline.resume`,`Resume`):t(`uiLibrary.recordingTimeline.pause`,`Pause`)]}):null,T&&y!==`live`?c(`button`,{type:`button`,"data-testid":`frame-push-go-live`,onClick:I,className:`inline-flex items-center gap-1 rounded bg-danger/10 px-1.5 py-0.5 font-medium text-danger transition-colors hover:bg-danger/20`,title:t(`uiLibrary.recordingTimeline.liveTitle`,`Return to the live stream`),children:[v(fe,{className:`h-3 w-3`}),t(`uiLibrary.recordingTimeline.goLive`,`Go live`)]}):null,v(`button`,{type:`button`,"data-testid":`frame-push-hls-toggle`,onClick:()=>w(e=>!e),className:`ml-auto inline-flex items-center gap-1 rounded px-1.5 py-0.5 font-medium transition-colors ${S?`bg-primary/15 text-primary`:`text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,title:t(`uiLibrary.recordingTimeline.hlsTitle`,`Play recordings through the HLS player instead of the live WebRTC session`),children:`HLS`})]}):null,c(`div`,{ref:ie,onWheel:ae,className:`space-y-1`,children:[c(`div`,{className:`space-y-1`,children:[v(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:t(`uiLibrary.recordingTimeline.recorded`,`Recorded`)}),Ae?v(`div`,{className:`h-5 animate-pulse rounded bg-background/40`}):de.length===0?v(qM,{icon:Kt,title:t(`uiLibrary.recordingTimeline.noRecordings`,`No recordings for this window.`)}):v(AL,{windowFrom:G.fromMs,windowTo:G.toMs,spans:de,playheadMs:Pe,onSeek:we,...T?{onScrubStart:Te,onScrubMove:Ee,onScrubEnd:De}:{}})]}),c(`div`,{className:`space-y-1`,children:[v(`div`,{className:`text-[10px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:t(`uiLibrary.recordingTimeline.density`,`Events · density`)}),je?v(`div`,{className:`h-6 animate-pulse rounded bg-background/40`}):v(eF,{windowFrom:G.fromMs,windowTo:G.toMs,buckets:pe,selectedIndex:i,onSelectBucket:ke})]}),v(`div`,{className:`relative h-3`,children:Ne.map(e=>v(`span`,{className:`absolute -translate-x-1/2 text-[9px] text-foreground-subtle`,style:{left:`${e.pct}%`},children:e.label},e.pct))})]}),me?v(FL,{clips:xe,loading:Me,busyKey:l,onPlay:Oe,enabledKinds:R,onToggleKind:B,hasMore:Se,onLoadMore:U}):v(`p`,{className:`text-[11px] text-foreground-subtle`,children:T?t(`uiLibrary.recordingTimeline.helpFramePush`,`Click or drag the coverage bar to play from any point (frames play in the main player above), or click a density bar to browse that window’s events.`):t(`uiLibrary.recordingTimeline.helpHls`,`Click the coverage bar to play from any point, or a density bar to browse that window’s events.`)})]})}E();var KL=1440*60*1e3;function qL({deviceId:e}){let t=q(),n=k(),r=vT({deviceId:e}),i=Gw({deviceId:e}),a=rm({deviceId:e}).data?.location??null,o=lm({deviceId:e}),s=o.status===`pending`?`pending`:o.status===`error`?`unknown`:o.data.entries.some(e=>e.capName===`recording-signal`)?`present`:`absent`,l=Xw(),u=Zw(),{data:d}=bD(void 0,{staleTime:3e4}),f=p(()=>vee(d??[],e).map(e=>e.profile),[d,e]),m=t=>{l.mutate({deviceId:e,config:t},{onSuccess:()=>{i.refetch(),r.refetch()}})},h=_(()=>{u.mutate({deviceId:e},{onSuccess:()=>{n.invalidateQueries({queryKey:[[`recording`]]})}})},[e,n,u]),g=p(()=>Date.now(),[]),y=Rw({deviceId:e,provider:ta,fromMs:g-KL,toMs:g}),b=r.data?za.safeParse(r.data):null,x=b?.success?b.data:null,S=i.data?Dee.safeParse(i.data):null,C=S?.success?S.data:null,w=y.data?.read===`unreadable`,T=y.data?.read===`read`?y.data.ranges:[],E=T.reduce((e,t)=>e+Math.max(0,t.endMs-t.startMs),0),D=x?.enabled===!0&&x.activeMode===`continuous`;return c(`div`,{className:`space-y-3`,children:[v($t,{title:t(`uiLibrary.recordingPanel.settings`,`Settings`),icon:v(qn,{className:`h-3.5 w-3.5 text-foreground-subtle`}),children:C?v(QI,{initial:C,availableProfiles:f,saving:l.isPending,onSave:m,sensorContext:{cameraId:e,location:a,deviceSignal:s}},JSON.stringify(C)):v(`div`,{className:`px-1 py-2 text-xs text-foreground-subtle`,children:t(`uiLibrary.recordingPanel.loadingSettings`,`Loading settings…`)})}),v($t,{title:t(`uiLibrary.recordingPanel.recording`,`Recording`),icon:v(Kt,{className:`h-3.5 w-3.5 text-foreground-subtle`}),headerRight:c(`span`,{className:`flex items-center gap-2`,children:[D?c(`span`,{className:`flex items-center gap-1.5 text-[10px] text-emerald-500`,children:[v(fe,{className:`h-3 w-3`}),` `,t(`uiLibrary.recordingPanel.recording`,`Recording`)]}):null,v(`button`,{type:`button`,onClick:h,disabled:u.isPending,"aria-label":t(`uiLibrary.recordingPanel.rescanStorage`,`Rescan storage`),className:`flex items-center rounded p-0.5 text-foreground-subtle transition-colors hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50`,children:v(_e,{className:`h-3.5 w-3.5 ${u.isPending?`animate-spin`:``}`})})]}),children:c(`div`,{className:`space-y-3`,children:[c(`div`,{className:`grid grid-cols-1 gap-2 sm:grid-cols-3`,children:[v(an,{label:t(`uiLibrary.recordingPanel.status`,`Status`),icon:v(yi,{className:`h-3.5 w-3.5 ${D?`text-emerald-500`:``}`}),footer:x?.nodeId?t(`uiLibrary.recordingPanel.nodeFooter`,`node: {{nodeId}}`,{nodeId:x.nodeId}):void 0,children:r.isLoading?`…`:D?t(`uiLibrary.recordingPanel.recordingContinuous`,`Recording (continuous)`):t(`uiLibrary.recordingPanel.idle`,`Idle`)}),v(an,{label:t(`uiLibrary.recordingPanel.storage`,`Storage`),icon:v(pt,{className:`h-3.5 w-3.5`}),children:x?LL(x.storageBytes):`—`}),v(an,{label:t(`uiLibrary.recordingPanel.recorded24h`,`Recorded (24h)`),icon:v(In,{className:`h-3.5 w-3.5`}),footer:w?t(`uiLibrary.recordingPanel.nobodyCouldLook`,`nobody could look`):t(`uiLibrary.recordingPanel.segmentRange`,{one:`{{count}} segment range`,other:`{{count}} segment ranges`},{count:T.length}),children:y.isLoading?`…`:w?`—`:mF(E)})]}),r.isError?v(YM,{variant:`warning`,message:t(`uiLibrary.recordingPanel.recorderUnavailable`,`Recorder unavailable — the recording service may not be running for this node.`)}):null,v(GL,{deviceId:e}),v(`p`,{className:`text-[11px] text-foreground-subtle`,children:t(`uiLibrary.recordingPanel.playbackHint`,`Recordings play in the main player above — switch back to live from there.`)})]})})]})}E();var JL={"host/motion-zones-grid":m(()=>a(()=>import(`./MotionZonesSettings-15VWTACI.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([41,1,2,3,42]),import.meta.url)),"host/privacy-mask-grid":m(()=>a(()=>import(`./PrivacyMaskSettings-boU8xnXR.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([43,1,2,3,24,42]),import.meta.url)),"host/ptz-panel":NI,"host/navigation-panel":TI,"host/consumables-panel":kM,"host/ptz-autotrack":WA,"host/recording-panel":qL,"host/camera-grid-layout":Lj,"host/clips-browser":qF,"host/extensions-panel":mI};E();function YL(e){let{widgetId:t,deviceId:n}=e,r=JL[t];return r===void 0?v(XL,{...e}):n===void 0?v($L,{widgetId:t,reason:`missing-device-context`}):v(g,{fallback:v(QL,{}),children:v(r,{deviceId:n})})}function XL(e){let{widgetId:t}=e,n=zA(t);return n===void 0?v($L,{widgetId:t,reason:`unknown`}):v(ZL,{...e,metadata:n})}function ZL(e){let{widgetId:t,host:n=`device-tab`,config:r,deviceId:i,integrationId:a,instanceId:o,size:s,columns:c,rows:l,metadata:u}=e,d=BA(u.remote,u.bundleUrl),f=p(()=>o??t,[o,t]);return d===null?v(QL,{}):d===void 0?v($L,{widgetId:t,reason:`missing-export`}):u.requires.deviceContext&&i===void 0?v($L,{widgetId:t,reason:`missing-device-context`}):u.requires.integrationContext&&a===void 0?v($L,{widgetId:t,reason:`missing-integration-context`}):v(d,{instanceId:f,host:n,config:r,deviceId:i,integrationId:a,size:s,columns:c,rows:l})}function QL(){return c(`div`,{className:`rounded-lg border border-border bg-surface/40 p-4 animate-pulse`,children:[v(`div`,{className:`h-3 w-24 bg-foreground-subtle/20 rounded mb-2`}),v(`div`,{className:`h-2 w-full bg-foreground-subtle/10 rounded mb-1`}),v(`div`,{className:`h-2 w-3/4 bg-foreground-subtle/10 rounded`})]})}function $L({widgetId:e,reason:t}){return v(`div`,{className:`rounded-lg border border-warning/30 bg-warning/10 px-3 py-2 text-xs text-warning`,children:t===`unknown`?`Widget "${e}" not registered`:t===`missing-export`?`Widget "${e}" bundle does not export this stableId`:t===`missing-device-context`?`Widget "${e}" requires a deviceId`:`Widget "${e}" requires an integrationId`})}E();var eR=Object.defineProperty,tR=Object.getOwnPropertySymbols,nR=Object.prototype.hasOwnProperty,rR=Object.prototype.propertyIsEnumerable,iR=(e,t,n)=>t in e?eR(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,aR=(e,t)=>{for(var n in t||={})nR.call(t,n)&&iR(e,n,t[n]);if(tR)for(var n of tR(t))rR.call(t,n)&&iR(e,n,t[n]);return e},oR=(e,t)=>{var n={};for(var r in e)nR.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&tR)for(var r of tR(e))t.indexOf(r)<0&&rR.call(e,r)&&(n[r]=e[r]);return n},sR;(e=>{let t=class t{constructor(e,n,r,a){if(this.version=e,this.errorCorrectionLevel=n,this.modules=[],this.isFunction=[],e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version value out of range`);if(a<-1||a>7)throw RangeError(`Mask value out of range`);this.size=e*4+17;let o=[];for(let e=0;e<this.size;e++)o.push(!1);for(let e=0;e<this.size;e++)this.modules.push(o.slice()),this.isFunction.push(o.slice());this.drawFunctionPatterns();let s=this.addEccAndInterleave(r);if(this.drawCodewords(s),a==-1){let e=1e9;for(let t=0;t<8;t++){this.applyMask(t),this.drawFormatBits(t);let n=this.getPenaltyScore();n<e&&(a=t,e=n),this.applyMask(t)}}i(0<=a&&a<=7),this.mask=a,this.applyMask(a),this.drawFormatBits(a),this.isFunction=[]}static encodeText(n,r){let i=e.QrSegment.makeSegments(n);return t.encodeSegments(i,r)}static encodeBinary(n,r){let i=e.QrSegment.makeBytes(n);return t.encodeSegments([i],r)}static encodeSegments(e,r,a=1,s=40,c=-1,l=!0){if(!(t.MIN_VERSION<=a&&a<=s&&s<=t.MAX_VERSION)||c<-1||c>7)throw RangeError(`Invalid value`);let u,d;for(u=a;;u++){let n=t.getNumDataCodewords(u,r)*8,i=o.getTotalBits(e,u);if(i<=n){d=i;break}if(u>=s)throw RangeError(`Data too long`)}for(let e of[t.Ecc.MEDIUM,t.Ecc.QUARTILE,t.Ecc.HIGH])l&&d<=t.getNumDataCodewords(u,e)*8&&(r=e);let f=[];for(let t of e){n(t.mode.modeBits,4,f),n(t.numChars,t.mode.numCharCountBits(u),f);for(let e of t.getData())f.push(e)}i(f.length==d);let p=t.getNumDataCodewords(u,r)*8;i(f.length<=p),n(0,Math.min(4,p-f.length),f),n(0,(8-f.length%8)%8,f),i(f.length%8==0);for(let e=236;f.length<p;e^=253)n(e,8,f);let m=[];for(;m.length*8<f.length;)m.push(0);return f.forEach((e,t)=>m[t>>>3]|=e<<7-(t&7)),new t(u,r,m,c)}getModule(e,t){return 0<=e&&e<this.size&&0<=t&&t<this.size&&this.modules[t][e]}getModules(){return this.modules}drawFunctionPatterns(){for(let e=0;e<this.size;e++)this.setFunctionModule(6,e,e%2==0),this.setFunctionModule(e,6,e%2==0);this.drawFinderPattern(3,3),this.drawFinderPattern(this.size-4,3),this.drawFinderPattern(3,this.size-4);let e=this.getAlignmentPatternPositions(),t=e.length;for(let n=0;n<t;n++)for(let r=0;r<t;r++)n==0&&r==0||n==0&&r==t-1||n==t-1&&r==0||this.drawAlignmentPattern(e[n],e[r]);this.drawFormatBits(0),this.drawVersion()}drawFormatBits(e){let t=this.errorCorrectionLevel.formatBits<<3|e,n=t;for(let e=0;e<10;e++)n=n<<1^(n>>>9)*1335;let a=(t<<10|n)^21522;i(a>>>15==0);for(let e=0;e<=5;e++)this.setFunctionModule(8,e,r(a,e));this.setFunctionModule(8,7,r(a,6)),this.setFunctionModule(8,8,r(a,7)),this.setFunctionModule(7,8,r(a,8));for(let e=9;e<15;e++)this.setFunctionModule(14-e,8,r(a,e));for(let e=0;e<8;e++)this.setFunctionModule(this.size-1-e,8,r(a,e));for(let e=8;e<15;e++)this.setFunctionModule(8,this.size-15+e,r(a,e));this.setFunctionModule(8,this.size-8,!0)}drawVersion(){if(this.version<7)return;let e=this.version;for(let t=0;t<12;t++)e=e<<1^(e>>>11)*7973;let t=this.version<<12|e;i(t>>>18==0);for(let e=0;e<18;e++){let n=r(t,e),i=this.size-11+e%3,a=Math.floor(e/3);this.setFunctionModule(i,a,n),this.setFunctionModule(a,i,n)}}drawFinderPattern(e,t){for(let n=-4;n<=4;n++)for(let r=-4;r<=4;r++){let i=Math.max(Math.abs(r),Math.abs(n)),a=e+r,o=t+n;0<=a&&a<this.size&&0<=o&&o<this.size&&this.setFunctionModule(a,o,i!=2&&i!=4)}}drawAlignmentPattern(e,t){for(let n=-2;n<=2;n++)for(let r=-2;r<=2;r++)this.setFunctionModule(e+r,t+n,Math.max(Math.abs(r),Math.abs(n))!=1)}setFunctionModule(e,t,n){this.modules[t][e]=n,this.isFunction[t][e]=!0}addEccAndInterleave(e){let n=this.version,r=this.errorCorrectionLevel;if(e.length!=t.getNumDataCodewords(n,r))throw RangeError(`Invalid argument`);let a=t.NUM_ERROR_CORRECTION_BLOCKS[r.ordinal][n],o=t.ECC_CODEWORDS_PER_BLOCK[r.ordinal][n],s=Math.floor(t.getNumRawDataModules(n)/8),c=a-s%a,l=Math.floor(s/a),u=[],d=t.reedSolomonComputeDivisor(o);for(let n=0,r=0;n<a;n++){let i=e.slice(r,r+l-o+(n<c?0:1));r+=i.length;let a=t.reedSolomonComputeRemainder(i,d);n<c&&i.push(0),u.push(i.concat(a))}let f=[];for(let e=0;e<u[0].length;e++)u.forEach((t,n)=>{(e!=l-o||n>=c)&&f.push(t[e])});return i(f.length==s),f}drawCodewords(e){if(e.length!=Math.floor(t.getNumRawDataModules(this.version)/8))throw RangeError(`Invalid argument`);let n=0;for(let t=this.size-1;t>=1;t-=2){t==6&&(t=5);for(let i=0;i<this.size;i++)for(let a=0;a<2;a++){let o=t-a,s=t+1&2?i:this.size-1-i;!this.isFunction[s][o]&&n<e.length*8&&(this.modules[s][o]=r(e[n>>>3],7-(n&7)),n++)}}i(n==e.length*8)}applyMask(e){if(e<0||e>7)throw RangeError(`Mask value out of range`);for(let t=0;t<this.size;t++)for(let n=0;n<this.size;n++){let r;switch(e){case 0:r=(n+t)%2==0;break;case 1:r=t%2==0;break;case 2:r=n%3==0;break;case 3:r=(n+t)%3==0;break;case 4:r=(Math.floor(n/3)+Math.floor(t/2))%2==0;break;case 5:r=n*t%2+n*t%3==0;break;case 6:r=(n*t%2+n*t%3)%2==0;break;case 7:r=((n+t)%2+n*t%3)%2==0;break;default:throw Error(`Unreachable`)}!this.isFunction[t][n]&&r&&(this.modules[t][n]=!this.modules[t][n])}}getPenaltyScore(){let e=0;for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[n][o]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[n][o],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size;n++){let r=!1,i=0,a=[0,0,0,0,0,0,0];for(let o=0;o<this.size;o++)this.modules[o][n]==r?(i++,i==5?e+=t.PENALTY_N1:i>5&&e++):(this.finderPenaltyAddHistory(i,a),r||(e+=this.finderPenaltyCountPatterns(a)*t.PENALTY_N3),r=this.modules[o][n],i=1);e+=this.finderPenaltyTerminateAndCount(r,i,a)*t.PENALTY_N3}for(let n=0;n<this.size-1;n++)for(let r=0;r<this.size-1;r++){let i=this.modules[n][r];i==this.modules[n][r+1]&&i==this.modules[n+1][r]&&i==this.modules[n+1][r+1]&&(e+=t.PENALTY_N2)}let n=0;for(let e of this.modules)n=e.reduce((e,t)=>e+ +!!t,n);let r=this.size*this.size,a=Math.ceil(Math.abs(n*20-r*10)/r)-1;return i(0<=a&&a<=9),e+=a*t.PENALTY_N4,i(0<=e&&e<=2568888),e}getAlignmentPatternPositions(){if(this.version==1)return[];{let e=Math.floor(this.version/7)+2,t=this.version==32?26:Math.ceil((this.version*4+4)/(e*2-2))*2,n=[6];for(let r=this.size-7;n.length<e;r-=t)n.splice(1,0,r);return n}}static getNumRawDataModules(e){if(e<t.MIN_VERSION||e>t.MAX_VERSION)throw RangeError(`Version number out of range`);let n=(16*e+128)*e+64;if(e>=2){let t=Math.floor(e/7)+2;n-=(25*t-10)*t-55,e>=7&&(n-=36)}return i(208<=n&&n<=29648),n}static getNumDataCodewords(e,n){return Math.floor(t.getNumRawDataModules(e)/8)-t.ECC_CODEWORDS_PER_BLOCK[n.ordinal][e]*t.NUM_ERROR_CORRECTION_BLOCKS[n.ordinal][e]}static reedSolomonComputeDivisor(e){if(e<1||e>255)throw RangeError(`Degree out of range`);let n=[];for(let t=0;t<e-1;t++)n.push(0);n.push(1);let r=1;for(let i=0;i<e;i++){for(let e=0;e<n.length;e++)n[e]=t.reedSolomonMultiply(n[e],r),e+1<n.length&&(n[e]^=n[e+1]);r=t.reedSolomonMultiply(r,2)}return n}static reedSolomonComputeRemainder(e,n){let r=n.map(e=>0);for(let i of e){let e=i^r.shift();r.push(0),n.forEach((n,i)=>r[i]^=t.reedSolomonMultiply(n,e))}return r}static reedSolomonMultiply(e,t){if(e>>>8||t>>>8)throw RangeError(`Byte out of range`);let n=0;for(let r=7;r>=0;r--)n=n<<1^(n>>>7)*285,n^=(t>>>r&1)*e;return i(n>>>8==0),n}finderPenaltyCountPatterns(e){let t=e[1];i(t<=this.size*3);let n=t>0&&e[2]==t&&e[3]==t*3&&e[4]==t&&e[5]==t;return(n&&e[0]>=t*4&&e[6]>=t?1:0)+(n&&e[6]>=t*4&&e[0]>=t?1:0)}finderPenaltyTerminateAndCount(e,t,n){return e&&(this.finderPenaltyAddHistory(t,n),t=0),t+=this.size,this.finderPenaltyAddHistory(t,n),this.finderPenaltyCountPatterns(n)}finderPenaltyAddHistory(e,t){t[0]==0&&(e+=this.size),t.pop(),t.unshift(e)}};t.MIN_VERSION=1,t.MAX_VERSION=40,t.PENALTY_N1=3,t.PENALTY_N2=3,t.PENALTY_N3=40,t.PENALTY_N4=10,t.ECC_CODEWORDS_PER_BLOCK=[[-1,7,10,15,20,26,18,20,24,30,18,20,24,26,30,22,24,28,30,28,28,28,28,30,30,26,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,10,16,26,18,24,16,18,22,22,26,30,22,22,24,24,28,28,26,26,26,26,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28],[-1,13,22,18,26,18,24,18,22,20,24,28,26,24,20,30,24,28,28,26,30,28,30,30,30,30,28,30,30,30,30,30,30,30,30,30,30,30,30,30,30],[-1,17,28,22,16,22,28,26,26,24,28,24,28,22,24,24,30,28,28,26,28,30,24,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30]],t.NUM_ERROR_CORRECTION_BLOCKS=[[-1,1,1,1,1,1,2,2,2,2,4,4,4,4,4,6,6,6,6,7,8,8,9,9,10,12,12,12,13,14,15,16,17,18,19,19,20,21,22,24,25],[-1,1,1,1,2,2,4,4,4,5,5,5,8,9,9,10,10,11,13,14,16,17,17,18,20,21,23,25,26,28,29,31,33,35,37,38,40,43,45,47,49],[-1,1,1,2,2,4,4,6,6,8,8,8,10,12,16,12,17,16,18,21,20,23,23,25,27,29,34,34,35,38,40,43,45,48,51,53,56,59,62,65,68],[-1,1,1,2,4,4,4,5,6,8,8,11,11,16,16,18,16,19,21,25,25,25,34,30,32,35,37,40,42,45,48,51,54,57,60,63,66,70,74,77,81]],e.QrCode=t;function n(e,t,n){if(t<0||t>31||e>>>t)throw RangeError(`Value out of range`);for(let r=t-1;r>=0;r--)n.push(e>>>r&1)}function r(e,t){return(e>>>t&1)!=0}function i(e){if(!e)throw Error(`Assertion error`)}let a=class e{constructor(e,t,n){if(this.mode=e,this.numChars=t,this.bitData=n,t<0)throw RangeError(`Invalid argument`);this.bitData=n.slice()}static makeBytes(t){let r=[];for(let e of t)n(e,8,r);return new e(e.Mode.BYTE,t.length,r)}static makeNumeric(t){if(!e.isNumeric(t))throw RangeError(`String contains non-numeric characters`);let r=[];for(let e=0;e<t.length;){let i=Math.min(t.length-e,3);n(parseInt(t.substring(e,e+i),10),i*3+1,r),e+=i}return new e(e.Mode.NUMERIC,t.length,r)}static makeAlphanumeric(t){if(!e.isAlphanumeric(t))throw RangeError(`String contains unencodable characters in alphanumeric mode`);let r=[],i;for(i=0;i+2<=t.length;i+=2){let a=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i))*45;a+=e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i+1)),n(a,11,r)}return i<t.length&&n(e.ALPHANUMERIC_CHARSET.indexOf(t.charAt(i)),6,r),new e(e.Mode.ALPHANUMERIC,t.length,r)}static makeSegments(t){return t==``?[]:e.isNumeric(t)?[e.makeNumeric(t)]:e.isAlphanumeric(t)?[e.makeAlphanumeric(t)]:[e.makeBytes(e.toUtf8ByteArray(t))]}static makeEci(t){let r=[];if(t<0)throw RangeError(`ECI assignment value out of range`);if(t<128)n(t,8,r);else if(t<16384)n(2,2,r),n(t,14,r);else if(t<1e6)n(6,3,r),n(t,21,r);else throw RangeError(`ECI assignment value out of range`);return new e(e.Mode.ECI,0,r)}static isNumeric(t){return e.NUMERIC_REGEX.test(t)}static isAlphanumeric(t){return e.ALPHANUMERIC_REGEX.test(t)}getData(){return this.bitData.slice()}static getTotalBits(e,t){let n=0;for(let r of e){let e=r.mode.numCharCountBits(t);if(r.numChars>=1<<e)return 1/0;n+=4+e+r.bitData.length}return n}static toUtf8ByteArray(e){e=encodeURI(e);let t=[];for(let n=0;n<e.length;n++)e.charAt(n)==`%`?(t.push(parseInt(e.substring(n+1,n+3),16)),n+=2):t.push(e.charCodeAt(n));return t}};a.NUMERIC_REGEX=/^[0-9]*$/,a.ALPHANUMERIC_REGEX=/^[A-Z0-9 $%*+.\/:-]*$/,a.ALPHANUMERIC_CHARSET=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`;let o=a;e.QrSegment=a})(sR||={}),(e=>{(e=>{let t=class{constructor(e,t){this.ordinal=e,this.formatBits=t}};t.LOW=new t(0,1),t.MEDIUM=new t(1,0),t.QUARTILE=new t(2,3),t.HIGH=new t(3,2),e.Ecc=t})(e.QrCode||={})})(sR||={}),(e=>{(e=>{let t=class{constructor(e,t){this.modeBits=e,this.numBitsCharCount=t}numCharCountBits(e){return this.numBitsCharCount[Math.floor((e+7)/17)]}};t.NUMERIC=new t(1,[10,12,14]),t.ALPHANUMERIC=new t(2,[9,11,13]),t.BYTE=new t(4,[8,16,16]),t.KANJI=new t(8,[8,10,12]),t.ECI=new t(7,[0,0,0]),e.Mode=t})(e.QrSegment||={})})(sR||={});var cR=sR,lR={L:cR.QrCode.Ecc.LOW,M:cR.QrCode.Ecc.MEDIUM,Q:cR.QrCode.Ecc.QUARTILE,H:cR.QrCode.Ecc.HIGH},uR=128,dR=`L`,fR=`#FFFFFF`,pR=`#000000`,mR=!1,hR=1,gR=4,_R=0,vR=.1;function yR(e,t=0){let n=[];return e.forEach(function(e,r){let i=null;e.forEach(function(a,o){if(!a&&i!==null){n.push(`M${i+t} ${r+t}h${o-i}v1H${i+t}z`),i=null;return}if(o===e.length-1){if(!a)return;i===null?n.push(`M${o+t},${r+t} h1v1H${o+t}z`):n.push(`M${i+t},${r+t} h${o+1-i}v1H${i+t}z`);return}a&&i===null&&(i=o)})}),n.join(``)}function bR(e,t){return e.slice().map((e,n)=>n<t.y||n>=t.y+t.h?e:e.map((e,n)=>n<t.x||n>=t.x+t.w?e:!1))}function xR(e,t,n,r){if(r==null)return null;let i=e.length+n*2,a=Math.floor(t*vR),o=i/t,s=(r.width||a)*o,c=(r.height||a)*o,l=r.x==null?e.length/2-s/2:r.x*o,u=r.y==null?e.length/2-c/2:r.y*o,d=r.opacity==null?1:r.opacity,f=null;if(r.excavate){let e=Math.floor(l),t=Math.floor(u);f={x:e,y:t,w:Math.ceil(s+l-e),h:Math.ceil(c+u-t)}}let p=r.crossOrigin;return{x:l,y:u,h:c,w:s,excavation:f,opacity:d,crossOrigin:p}}function SR(e,t){return t==null?e?gR:_R:Math.max(Math.floor(t),0)}function CR({value:e,level:t,minVersion:n,includeMargin:r,marginSize:i,imageSettings:a,size:o,boostLevel:s}){let c=l.useMemo(()=>{let r=(Array.isArray(e)?e:[e]).reduce((e,t)=>(e.push(...cR.QrSegment.makeSegments(t)),e),[]);return cR.QrCode.encodeSegments(r,lR[t],n,void 0,void 0,s)},[e,t,n,s]),{cells:u,margin:d,numCells:f,calculatedImageSettings:p}=l.useMemo(()=>{let e=c.getModules(),t=SR(r,i);return{cells:e,margin:t,numCells:e.length+t*2,calculatedImageSettings:xR(e,o,t,a)}},[c,o,a,r,i]);return{qrcode:c,margin:d,cells:u,numCells:f,calculatedImageSettings:p}}var wR=function(){try{new Path2D().addPath(new Path2D)}catch{return!1}return!0}(),TR=l.forwardRef(function(e,t){let n=e,{value:r,size:i=uR,level:a=dR,bgColor:o=fR,fgColor:s=pR,includeMargin:c=mR,minVersion:u=hR,boostLevel:d,marginSize:f,imageSettings:p}=n,m=oR(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`marginSize`,`imageSettings`]),{style:h}=m,g=oR(m,[`style`]),_=p?.src,v=l.useRef(null),y=l.useRef(null),b=l.useCallback(e=>{v.current=e,typeof t==`function`?t(e):t&&(t.current=e)},[t]),[x,S]=l.useState(!1),{margin:C,cells:w,numCells:T,calculatedImageSettings:E}=CR({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:f,imageSettings:p,size:i});l.useEffect(()=>{if(v.current!=null){let e=v.current,t=e.getContext(`2d`);if(!t)return;let n=w,r=y.current,a=E!=null&&r!==null&&r.complete&&r.naturalHeight!==0&&r.naturalWidth!==0;a&&E.excavation!=null&&(n=bR(w,E.excavation));let c=window.devicePixelRatio||1;e.height=e.width=i*c;let l=i/T*c;t.scale(l,l),t.fillStyle=o,t.fillRect(0,0,T,T),t.fillStyle=s,wR?t.fill(new Path2D(yR(n,C))):w.forEach(function(e,n){e.forEach(function(e,r){e&&t.fillRect(r+C,n+C,1,1)})}),E&&(t.globalAlpha=E.opacity),a&&t.drawImage(r,E.x+C,E.y+C,E.w,E.h)}}),l.useEffect(()=>{S(!1)},[_]);let D=aR({height:i,width:i},h),O=null;return _!=null&&(O=l.createElement(`img`,{src:_,key:_,style:{display:`none`},onLoad:()=>{S(!0)},ref:y,crossOrigin:E?.crossOrigin})),l.createElement(l.Fragment,null,l.createElement(`canvas`,aR({style:D,height:i,width:i,ref:b,role:`img`},g)),O)});TR.displayName=`QRCodeCanvas`;var ER=l.forwardRef(function(e,t){let n=e,{value:r,size:i=uR,level:a=dR,bgColor:o=fR,fgColor:s=pR,includeMargin:c=mR,minVersion:u=hR,boostLevel:d,title:f,marginSize:p,imageSettings:m}=n,h=oR(n,[`value`,`size`,`level`,`bgColor`,`fgColor`,`includeMargin`,`minVersion`,`boostLevel`,`title`,`marginSize`,`imageSettings`]),{margin:g,cells:_,numCells:v,calculatedImageSettings:y}=CR({value:r,level:a,minVersion:u,boostLevel:d,includeMargin:c,marginSize:p,imageSettings:m,size:i}),b=_,x=null;m!=null&&y!=null&&(y.excavation!=null&&(b=bR(_,y.excavation)),x=l.createElement(`image`,{href:m.src,height:y.h,width:y.w,x:y.x+g,y:y.y+g,preserveAspectRatio:`none`,opacity:y.opacity,crossOrigin:y.crossOrigin}));let S=yR(b,g);return l.createElement(`svg`,aR({height:i,width:i,viewBox:`0 0 ${v} ${v}`,ref:t,role:`img`},h),!!f&&l.createElement(`title`,null,f),l.createElement(`path`,{fill:o,d:`M0,0 h${v}v${v}H0z`,shapeRendering:`crispEdges`}),l.createElement(`path`,{fill:s,d:S,shapeRendering:`crispEdges`}),x)});ER.displayName=`QRCodeSVG`;var DR=192;function OR({value:e,size:t=DR,className:n,alt:r}){let i=q(),a=e.trim();return a.length===0?null:v(`div`,{className:$(`inline-flex rounded-md bg-white p-2`,n),children:v(ER,{value:a,size:t,marginSize:1,title:r??i(`uiLibrary.qrCode.alt`,`QR code`)})})}var kR=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`;function AR({value:e,onChange:t,disabled:n}){let r=q(),i=[];for(let e of zi)i.includes(e.region)||i.push(e.region);return c(`select`,{className:kR,value:e,disabled:n,onChange:e=>t(e.target.value),children:[!Ki(e)&&v(`option`,{value:``,children:r(`uiLibrary.timezoneSelector.select`,`— Select timezone —`)}),i.map(e=>v(`optgroup`,{label:e,children:zi.filter(t=>t.region===e).map(e=>v(`option`,{value:e.id,children:e.label},e.id))},e))]})}E();var jR=`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed`,MR=`block text-[11px] font-medium text-foreground mb-1 break-words`,NR=`text-[10px] text-foreground-subtle mt-0.5 break-words`;function PR({label:e,description:t,required:n,span:r,htmlFor:i,children:a,translationFn:o}){let s=r===2?`col-span-1 @[480px]:col-span-2`:r===3?`col-span-1 @[480px]:col-span-2 @[880px]:col-span-3`:r===4?`col-span-1 @[480px]:col-span-2 @[1140px]:col-span-4`:`col-span-1`,l=Tz(e,o),u=Tz(t,o),d=l!==void 0&&l!==``;return c(`div`,{className:`${s} min-w-0`,children:[d&&c(`label`,{className:MR,...i===void 0?{}:{htmlFor:i},children:[l,n&&v(`span`,{className:`text-danger ml-0.5`,children:`*`})]}),a,u&&v(`p`,{className:NR,children:u})]})}function FR({field:e,value:t,onChange:n,disabled:r,translationFn:i,multiline:a,children:o}){let s=qa(e),[c,l]=C(()=>s&&Jl(t)),u=s&&ja(t);return u&&!c&&l(!0),!c&&!u?v(P,{children:o}):v(PR,{label:`label`in e?e.label:void 0,description:`description`in e?e.description:void 0,required:`required`in e?e.required:void 0,span:`span`in e?e.span:void 0,translationFn:i,children:v(Ql,{field:e,value:t,onChange:n,disabled:r,multiline:a})})}function IR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`input`,{type:e.inputType??`text`,className:jR,value:t==null?``:String(t),placeholder:e.placeholder,maxLength:e.maxLength,pattern:e.pattern,disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function LR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let[a,o]=C(t==null?``:String(t)),s=f(!1);b(()=>{s.current||o(t==null?``:String(t))},[t]);let l=e=>{if(o(e),e===``||e===`-`){n(void 0);return}let t=Number(e);Number.isNaN(t)||n(t)};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`div`,{className:`flex items-center gap-1`,children:[v(`input`,{type:`number`,className:jR,value:a,placeholder:e.placeholder,min:e.min,max:e.max,step:e.step,disabled:r||e.disabled,onFocus:()=>{s.current=!0},onBlur:()=>{s.current=!1},onChange:e=>l(e.target.value)}),e.unit&&v(`span`,{className:`text-xs text-foreground-subtle whitespace-nowrap`,children:e.unit})]})})}function RR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=!!t,o=r||e.disabled;return e.style===`checkbox`?v(PR,{label:void 0,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`label`,{className:`flex items-center gap-2 cursor-pointer select-none`,children:[v(`input`,{type:`checkbox`,className:`h-3.5 w-3.5 rounded border-border accent-primary`,checked:a,disabled:o,onChange:e=>n(e.target.checked)}),v(`span`,{className:`text-xs font-medium text-foreground`,children:Tz(e.label,i)}),e.required&&v(`span`,{className:`text-danger`,children:`*`})]})}):v(PR,{label:void 0,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`div`,{className:`flex items-center justify-between`,children:[c(`span`,{className:`block text-[11px] font-medium text-foreground mb-1 break-words mb-0`,children:[Tz(e.label,i),e.required&&v(`span`,{className:`text-danger ml-0.5`,children:`*`})]}),v(`button`,{type:`button`,role:`switch`,"aria-checked":a,disabled:o,onClick:()=>!o&&n(!a),className:[`relative inline-flex h-4 w-8 shrink-0 items-center rounded-full transition-colors duration-150`,a?`bg-primary`:`bg-foreground-subtle/30`,o?`opacity-50 cursor-not-allowed`:`cursor-pointer`].join(` `),children:v(`span`,{className:[`inline-block h-3 w-3 rounded-full bg-white shadow transition-transform duration-150`,a?`translate-x-4`:`translate-x-0.5`].join(` `)})})]})})}function zR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=e.options.some(e=>e.value===``),s=[...!e.required&&!o?[{value:``,label:a(`uiLibrary.configFormField.select`,`— Select —`)}]:[],...e.options.map(e=>({value:e.value,label:e.label}))],c=`config-select-${e.key}`;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,htmlFor:c,translationFn:i,children:v(Hl,{id:c,options:s,value:t==null?``:String(t),disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function BR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(AR,{value:typeof t==`string`?t:``,onChange:n,disabled:r||e.disabled})})}function VR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`input`,{type:`datetime-local`,className:jR,value:typeof t==`string`?t:``,placeholder:e.placeholder,disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function HR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=Array.isArray(t)?t:[],o=t=>{if(a.includes(t))n(a.filter(e=>e!==t));else{if(e.maxItems!==void 0&&a.length>=e.maxItems)return;n([...a,t])}};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`div`,{className:`flex flex-wrap gap-2`,children:e.options.map(t=>{let n=a.includes(t.value);return c(`label`,{className:[`flex items-center gap-1.5 rounded-md border px-2 py-1 text-xs cursor-pointer select-none transition-colors`,n?`border-primary bg-primary/10 text-primary`:`border-border bg-background text-foreground hover:bg-surface`,r||e.disabled?`opacity-50 cursor-not-allowed`:``].join(` `),children:[v(`input`,{type:`checkbox`,className:`sr-only`,checked:n,disabled:r||e.disabled,onChange:()=>o(t.value)}),t.iconId!==void 0&&v(Uk,{iconId:t.iconId,size:13}),t.label]},t.value)})})})}function UR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let[a,o]=C(!1),s=t==null?``:String(t);return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(Vl,{"aria-label":e.label,value:s,onValueChange:e=>n(e),shown:a,onToggleShown:()=>o(e=>!e),hideToggle:e.showToggle===!1,placeholder:e.placeholder,disabled:r||e.disabled,onFocus:e=>{s.length>0&&/^[•●*]{4,}$/u.test(s)&&e.currentTarget.select()}})})}function WR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`textarea`,{className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed resize-y min-h-[60px]`,value:t==null?``:String(t),placeholder:e.placeholder,rows:e.rows??3,maxLength:e.maxLength,disabled:r||e.disabled,onChange:e=>n(e.target.value)})})}function GR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=t==null,s=e.nullable===!0,l=o?e.default??e.min:Number(t),u=e.showValue!==!1,d=e.nullLabel??a(`uiLibrary.configFormField.auto`,`Auto`),f=r||e.disabled,p=e.displayScale??1,m=e.min/p,h=e.max/p,g=l/p,_=(e.step??1)/p;if(s&&o)return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`button`,{className:`w-full rounded-lg border border-dashed border-border px-3 py-2 text-xs text-foreground-subtle hover:border-primary/40 hover:text-primary transition-colors text-left`,disabled:f,onClick:()=>n(e.default??e.min),children:a(`uiLibrary.configFormField.clickToSet`,`{{label}} — click to set manually`,{label:d})})});let y=e.showStepper===!0&&u,b=t=>{let r=l+t*(e.step??1),i=Math.min(e.max,Math.max(e.min,r));i!==l&&n(i)},x=`flex h-6 w-6 shrink-0 items-center justify-center rounded border border-border bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:cursor-not-allowed disabled:opacity-40`;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-2`,children:[c(`div`,{className:`flex min-w-0 flex-1 basis-[160px] items-center gap-2`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle tabular-nums shrink-0`,children:m}),v(`input`,{type:`range`,className:`min-w-0 flex-1 h-1 accent-primary cursor-pointer disabled:opacity-50`,min:m,max:h,step:_,value:g,disabled:f,onChange:e=>n(Number(e.target.value)*p)}),v(`span`,{className:`text-[10px] text-foreground-subtle tabular-nums shrink-0`,children:h})]}),(u||s||e.unit)&&c(`div`,{className:`flex shrink-0 items-center gap-2`,children:[y&&v(`button`,{type:`button`,className:x,disabled:f||l<=e.min,onClick:()=>b(-1),title:a(`uiLibrary.configFormField.decreaseBy`,`Decrease by {{step}}`,{step:e.step??1}),"aria-label":a(`uiLibrary.configFormField.decrement`,`Decrement`),children:v(zn,{className:`h-3 w-3`})}),u&&v(`input`,{type:`number`,className:`w-16 rounded border border-border bg-surface px-1.5 py-0.5 text-xs text-center text-foreground tabular-nums focus:outline-none focus:ring-1 focus:ring-primary`,min:m,max:h,step:_,value:g,disabled:f,onChange:t=>{if(t.target.value===``){n(s?null:e.min);return}let r=Number(t.target.value)*p,i=e.step??1,a=r-e.min,o=e.min+Math.round(a/i)*i;n(Math.min(e.max,Math.max(e.min,o)))}}),y&&v(`button`,{type:`button`,className:x,disabled:f||l>=e.max,onClick:()=>b(1),title:a(`uiLibrary.configFormField.increaseBy`,`Increase by {{step}}`,{step:e.step??1}),"aria-label":a(`uiLibrary.configFormField.increment`,`Increment`),children:v(Se,{className:`h-3 w-3`})}),e.unit&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:e.unit}),s&&v(`button`,{className:`text-[10px] text-foreground-subtle hover:text-primary transition-colors`,title:a(`uiLibrary.configFormField.resetTo`,`Reset to {{label}}`,{label:d}),disabled:f,onClick:()=>n(null),children:d})]})]})})}function KR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),o=Array.isArray(t)?t.filter(e=>typeof e==`string`):[],s=e.creatable!==!1,c=(e.suggestions??[]).map(e=>({value:e,label:e})),l=r===!0||e.disabled===!0;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(rA,{mode:`multi`,options:c,value:o,onChange:e=>n(e),disabled:l,creatable:s,...e.createLabel===void 0?{}:{createLabel:e.createLabel},...e.maxTags===void 0?{}:{maxItems:e.maxTags},placeholder:e.placeholder??a(`uiLibrary.configFormField.searchOrAdd`,`Search or add…`),testId:`config-tags-${e.key}`})})}function qR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=q(),{nodes:o}=Ao(),s=typeof t==`string`?t:``,l=e.showOffline?o:o.filter(e=>e.isOnline);return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:c(`select`,{className:`w-full px-3 py-2 text-sm bg-background border border-border rounded-lg text-foreground focus:outline-none focus:border-primary/50 disabled:opacity-50`,value:s,onChange:e=>n(e.target.value),disabled:r,children:[v(`option`,{value:``,children:a(`uiLibrary.configFormField.selectNode`,`Select node…`)}),l.map(e=>v(`option`,{value:e.id,disabled:!e.isOnline,children:e.isOnline?e.shortName:a(`uiLibrary.configFormField.nodeOffline`,`{{name}} (offline)`,{name:e.shortName})},e.id))]})})}function JR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let{nodes:a}=Ao(),o=new Set(Array.isArray(t)?t.map(String):[]),s=e.showOffline?a:a.filter(e=>e.isOnline),c=e=>{let t=new Set(o);t.has(e)?t.delete(e):t.add(e),n([...t])};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(`div`,{className:`flex flex-wrap gap-1.5`,children:s.map(e=>{let t=o.has(e.id);return v(`button`,{type:`button`,onClick:()=>c(e.id),disabled:r||!e.isOnline,className:`px-2.5 py-1 text-xs font-medium rounded-md border transition-colors ${t?`border-primary bg-primary/10 text-primary`:`border-border bg-surface text-foreground-subtle hover:bg-surface-hover`} ${e.isOnline?``:`opacity-50 cursor-not-allowed`}`,children:e.shortName},e.id)})})})}function YR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=t==null?`#000000`:String(t);return c(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:[c(`div`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`color`,className:`h-9 w-9 rounded-md border border-border bg-background cursor-pointer p-0.5 disabled:opacity-50`,value:a,disabled:r||e.disabled,onChange:e=>n(e.target.value)}),v(`input`,{type:`text`,className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed flex-1 font-mono`,value:a,placeholder:`#000000`,disabled:r||e.disabled,onChange:e=>n(e.target.value)})]}),e.presets&&e.presets.length>0&&v(`div`,{className:`flex gap-1.5 mt-1.5`,children:e.presets.map(t=>v(`button`,{type:`button`,className:`h-5 w-5 rounded-md border border-border hover:scale-110 transition-transform disabled:opacity-50`,style:{backgroundColor:t},disabled:r||e.disabled,title:t,onClick:()=>n(t)},t))})]})}function XR({field:e,value:t,onChange:n,disabled:r,translationFn:i}){let a=typeof e.default==`string`?e.default:``;return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:v(Tl,{label:Tz(e.label,i)??e.label,value:t,defaultKey:a,disabled:r||e.disabled,onChange:n})})}function ZR({field:e,value:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o,externalProbe:s}){let l=q(),[u,d]=C(`idle`),[f,p]=C(null),m=s?.status??u,h=s?.result??f,g=!!a||!!o,y=_(async()=>{if(g){d(`probing`),p(null);try{let n=a?await a(e.key,t):await o(`test-probe`,e.key,t),r=n&&typeof n==`object`?n:{status:`error`,error:l(`uiLibrary.configFormField.probeNoResult`,`Probe handler returned no result`)};p(r),d(r.status===`ok`?`ok`:`error`)}catch(e){p({status:`error`,error:e instanceof Error?e.message:String(e)}),d(`error`)}}},[a,o,e.key,t,g]),b=m===`probing`?`border-primary/40 bg-primary/10 text-primary`:m===`ok`?`border-success/40 bg-success/10 text-success hover:bg-success/15`:m===`error`?`border-danger/40 bg-danger/10 text-danger hover:bg-danger/15`:`border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,x=m===`probing`?v(Un,{className:`h-3 w-3 animate-spin`}):v(m===`ok`?Dn:m===`error`?Di:An,{className:`h-3 w-3`});return c(PR,{label:e.label,description:e.description,required:e.required,span:e.span,translationFn:i,children:[c(`div`,{className:`@container flex items-center gap-2`,style:{containerType:`inline-size`},children:[c(`button`,{type:`button`,onClick:y,title:l(`uiLibrary.configFormField.test`,`Test`),disabled:e.disabled||m===`probing`||!g||!t,className:`flex-shrink-0 inline-flex items-center gap-1.5 rounded-md border px-2 py-2 text-xs font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed @[280px]:px-3 ${b}`,children:[x,v(`span`,{className:`hidden @[280px]:inline`,children:l(`uiLibrary.configFormField.test`,`Test`)})]}),v(`input`,{type:e.inputType??`url`,className:`w-full rounded-md border border-border bg-background px-2.5 py-1.5 text-xs text-foreground focus:border-primary focus:ring-1 focus:ring-primary/30 outline-none disabled:opacity-50 disabled:cursor-not-allowed flex-1 min-w-0`,value:t==null?``:String(t),placeholder:e.placeholder,disabled:r||e.disabled,onChange:e=>{n(e.target.value),u!==`idle`&&(d(`idle`),p(null))}})]}),m===`ok`&&h?.labels&&h.labels.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mt-1.5`,children:h.labels.map((e,t)=>v(`span`,{className:`text-xs bg-success/10 text-success rounded px-2 py-0.5 font-mono`,children:e},t))}),m===`error`&&h?.error&&v(`p`,{className:`text-xs text-danger mt-1 truncate`,title:h.error,children:h.error})]})}function QR({field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,onAction:s}){let[l,u]=C(e.defaultCollapsed??!1),d=e.style===`accordion`;return v(`div`,{className:`${e.span===2?`col-span-2`:e.span===3?`col-span-3`:e.span===4?`col-span-4`:`col-span-1`} min-w-0`,children:c(`div`,{className:`@container rounded-lg border border-border bg-surface/50 overflow-hidden`,style:{containerType:`inline-size`},children:[c(`div`,{className:[`px-3 py-2 flex items-center justify-between min-w-0`,d?`cursor-pointer hover:bg-surface`:``].join(` `),onClick:d?()=>u(e=>!e):void 0,children:[v(`span`,{className:`text-xs font-semibold text-foreground min-w-0 break-words`,children:Tz(e.label,a)}),d&&v(`span`,{className:`text-foreground-subtle text-xs shrink-0 ml-2`,children:l?`▸`:`▾`})]}),!l&&v(`div`,{className:`px-3 pb-3 grid grid-cols-1 @[480px]:grid-cols-2 gap-x-4 gap-y-3`,children:e.fields.map(e=>v(Cz,{field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,onAction:s},e.key))})]})})}function $R({field:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o}){let[s,l]=C(e.tabs[0]?.id??``),u=e.span===2?`col-span-2`:e.span===3?`col-span-3`:e.span===4?`col-span-4`:`col-span-1`;return e.tabs.length===0?null:c(`div`,{className:`${u} min-w-0`,children:[e.label&&v(`div`,{className:MR,children:Tz(e.label,i)}),c(`div`,{className:`@container rounded-lg border border-border-subtle bg-surface-hover/40 overflow-hidden`,style:{containerType:`inline-size`},children:[v(`div`,{className:`flex flex-wrap gap-1 p-1.5 border-b border-border-subtle bg-surface/40`,role:`tablist`,children:e.tabs.map(e=>{let t=e.id===s;return c(`button`,{type:`button`,role:`tab`,"aria-selected":t,onClick:()=>l(e.id),className:`inline-flex items-center gap-1.5 whitespace-nowrap rounded-md px-2.5 py-1 text-[11px] transition-colors ${t?`bg-primary text-primary-foreground font-medium shadow-sm`:`bg-transparent text-foreground-subtle hover:bg-surface hover:text-foreground`}`,children:[v(`span`,{children:Tz(e.label,i)}),e.badge&&v(`span`,{className:`text-[9px] px-1 py-0.5 rounded-full font-medium ${t?`bg-primary-foreground/20 text-primary-foreground`:`bg-primary/10 text-primary`}`,children:e.badge})]},e.id)})}),e.tabs.map(e=>e.id===s?v(`div`,{role:`tabpanel`,className:`px-3 pb-3 pt-2 grid grid-cols-1 @[480px]:grid-cols-2 gap-x-4 gap-y-3`,children:e.fields.map((s,c)=>{let l=`key`in s&&typeof s.key==`string`?s.key:`__${e.id}__${c}`;return v(Cz,{field:s,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o},l)})},e.id):null)]})]})}function ez({span:e}){return v(`div`,{className:e===2?`col-span-2`:e===3?`col-span-3`:e===4?`col-span-4`:`col-span-full`,children:v(`hr`,{className:`border-border`})})}var tz={info:{border:`border-info`,bg:`bg-info/5`,text:`text-info`},warning:{border:`border-warning`,bg:`bg-warning/5`,text:`text-warning`},success:{border:`border-success`,bg:`bg-success/5`,text:`text-success`},danger:{border:`border-danger`,bg:`bg-danger/5`,text:`text-danger`}};function nz({field:e}){let t=tz[e.variant??`info`]??tz.info,n=e.format===`html`;return v(`div`,{className:`col-span-full`,children:c(`div`,{className:`rounded-md border-l-4 px-3 py-2.5 ${t.border} ${t.bg}`,children:[e.label&&v(`p`,{className:e.content.length>0?`text-xs font-semibold mb-0.5 ${t.text}`:`text-xs text-foreground-subtle leading-relaxed whitespace-pre-line break-words`,children:e.label}),n?v(`div`,{className:`text-xs text-foreground-subtle leading-relaxed info-html-content`,dangerouslySetInnerHTML:{__html:El(e.content)}}):e.content.length>0&&v(`p`,{className:`text-xs text-foreground-subtle leading-relaxed whitespace-pre-line break-words`,children:e.content})]})})}function rz({field:e}){let t=e.value;if(!t||t.length===0)return null;let n=e.size??192,r=e.alt??e.label;return v(`div`,{className:`col-span-full`,children:c(`div`,{className:`rounded-md border border-foreground-subtle/20 px-3 py-3 bg-background-subtle/40 flex flex-col items-start gap-2`,children:[e.label&&v(`p`,{className:`text-xs font-semibold text-foreground`,children:e.label}),e.caption&&v(`p`,{className:`text-xs text-foreground-subtle leading-relaxed`,children:e.caption}),v(OR,{value:t,size:n,alt:r})]})})}var iz={ok:`bg-success`,warn:`bg-amber-500`,danger:`bg-danger`,idle:`bg-foreground-subtle/40`,unknown:`bg-foreground-subtle/40`};function az(e){if(!Number.isFinite(e)||e<0)return`—`;if(e<1e3)return`${e}ms`;let t=Math.round(e/1e3);if(t<60)return`${t}s`;let n=Math.floor(t/60),r=t%60;return r===0?`${n}m`:`${n}m ${r}s`}function oz(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleTimeString()}function sz({kind:e,value:t}){return t==null||t===``?v(`span`,{className:`text-foreground-subtle/60`,children:`—`}):e===`monospace`?v(`span`,{className:`font-mono text-[11px]`,children:String(t)}):e===`status`?c(`span`,{className:`inline-flex items-center gap-1.5`,children:[v(`span`,{className:`inline-block h-1.5 w-1.5 rounded-full ${iz[String(t).toLowerCase()]??iz.unknown}`}),v(`span`,{children:String(t)})]}):e===`duration`&&typeof t==`number`?v(`span`,{className:`font-mono text-[11px]`,children:az(t)}):e===`timestamp`&&typeof t==`number`?v(`span`,{className:`font-mono text-[11px]`,children:oz(t)}):v(`span`,{children:String(t)})}function cz({field:e}){let t=q(),n=e.value??[],r=e.description;return c(`div`,{className:`col-span-full`,children:[e.label&&v(`p`,{className:`text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle mb-1`,children:e.label}),r&&v(`p`,{className:`text-xs text-foreground-subtle mb-2`,children:r}),n.length===0?v(`div`,{className:`rounded-md border border-border bg-surface-subtle px-3 py-2 text-xs text-foreground-subtle`,children:e.emptyMessage??t(`uiLibrary.configFormField.noEntries`,`No entries`)}):v(`div`,{className:`rounded-md border border-border overflow-x-auto`,children:c(`table`,{className:`w-full min-w-[28rem] text-xs`,children:[v(`thead`,{className:`bg-surface-subtle border-b border-border`,children:v(`tr`,{children:e.columns.map(e=>v(`th`,{className:`px-3 py-1.5 text-left font-medium text-foreground-subtle`,style:e.width?{width:e.width}:void 0,children:e.label},e.key))})}),v(`tbody`,{className:`divide-y divide-border`,children:n.map((t,n)=>v(`tr`,{className:`hover:bg-surface-hover/40`,children:e.columns.map(e=>v(`td`,{className:`px-3 py-1.5 align-top text-foreground`,children:v(sz,{kind:e.kind,value:t[e.key]})},e.key))},n))})]})})]})}function lz({field:e,value:t,onChange:n,disabled:r,translationFn:i,onTestField:a,onAction:o}){let s=q(),l=Array.isArray(t)?t:[],u=e.minRows??0,d=e.maxRows??1/0,f=(e,t,r)=>{let i=l.slice();i[e]={...i[e]??{},[t]:r},n(i)},p=e=>{l.length<=u||n(l.filter((t,n)=>n!==e))},m=()=>{if(l.length>=d)return;let t=e.defaultItem??{};n([...l,{...t}])},h=(t,n)=>e.rowTitleTemplate?e.rowTitleTemplate.replace(/\{(\w+)\}/g,(e,n)=>{let r=t[n];return r==null||r===``?`—`:String(r)}):s(`uiLibrary.configFormField.row`,`Row {{n}}`,{n:n+1}),g=l.length>u,_=l.length<d,y=e.itemIdKey??`id`,b=(e,t)=>{let n=e[y];return typeof n==`string`&&n.length>0?n:typeof n==`number`&&Number.isFinite(n)?String(n):`row-${String(t)}`};return c(`div`,{className:`col-span-full space-y-2`,children:[c(`div`,{className:`space-y-0.5`,children:[e.label&&v(`p`,{className:`text-[11px] font-semibold uppercase tracking-wider text-foreground-subtle`,children:Tz(e.label,i)}),e.description&&v(`p`,{className:`text-[11px] text-foreground-subtle`,children:Tz(e.description,i)})]}),l.length===0?v(`div`,{className:`rounded-md border border-dashed border-border bg-background px-3 py-3 text-center text-[11px] text-foreground-subtle`,children:e.emptyMessage??s(`uiLibrary.configFormField.noEntries`,`No entries`)}):v(`div`,{className:`space-y-2`,children:l.map((t,n)=>c(`div`,{className:`rounded-md border border-border bg-background`,children:[c(`div`,{className:`flex items-center justify-between border-b border-border px-3 py-1.5`,children:[v(`span`,{className:`text-xs font-medium text-foreground`,children:h(t,n)}),c(`button`,{type:`button`,onClick:()=>p(n),disabled:r||!g,className:`inline-flex items-center gap-1 rounded px-2 py-0.5 text-[10px] text-danger hover:bg-danger/10 disabled:opacity-30 disabled:cursor-not-allowed`,title:g?s(`uiLibrary.configFormField.removeRow`,`Remove this row`):s(`uiLibrary.configFormField.minRows`,{one:`At least {{count}} row required`,other:`At least {{count}} rows required`},{count:u}),children:[v(zn,{className:`h-3 w-3`}),s(`uiLibrary.configFormField.remove`,`Remove`)]})]}),v(`div`,{className:`grid grid-cols-1 @[480px]:grid-cols-2 gap-x-3 gap-y-2 p-3`,children:e.itemFields.map(s=>v(Cz,{field:s,values:t,onChange:(e,t)=>f(n,e,t),disabled:r,translationFn:i,onTestField:a,allFields:e.itemFields,onAction:o},s.key))})]},b(t,n)))}),c(`div`,{children:[c(`button`,{type:`button`,onClick:m,disabled:r||!_,className:`inline-flex items-center gap-1 rounded border border-border bg-surface px-3 py-1 text-[11px] font-medium text-foreground hover:border-primary/40 hover:bg-primary/5 disabled:opacity-30 disabled:cursor-not-allowed`,children:[v(Se,{className:`h-3 w-3`}),e.addLabel??s(`uiLibrary.configFormField.add`,`Add`)]}),!_&&Number.isFinite(d)&&v(`span`,{className:`ml-2 text-[10px] text-foreground-subtle`,children:s(`uiLibrary.configFormField.limit`,`(limit: {{max}})`,{max:d})})]})]})}function uz({field:e,disabled:t,onAction:n}){let r=q(),[i,a]=C(!1),o=si(),s=async()=>{if(!(e.confirmMessage&&!await o({title:e.label,message:e.confirmMessage,confirmLabel:e.buttonLabel,variant:e.variant===`danger`?`danger`:`default`}))&&n){a(!0);try{await n(e.action,e.key)}finally{a(!1)}}},c={default:`border border-border text-foreground hover:bg-surface-hover`,primary:`bg-primary text-primary-foreground hover:bg-primary/90`,danger:`bg-danger text-white hover:bg-danger/90`};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:v(`button`,{onClick:s,disabled:t||i,className:`inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 ${c[e.variant??`default`]??c.default}`,children:i?r(`uiLibrary.configFormField.processing`,`Processing...`):e.buttonLabel})})}function dz(e,t){let n={...e.paramsStatic};if(e.paramsFromForm)for(let[r,i]of Object.entries(e.paramsFromForm)){let e=t[i];e!=null&&e!==``&&!ca(e)&&(n[r]=e)}return n}function fz({field:e,value:t,values:n,onChange:r,disabled:i,onAction:a}){let o=q(),[s,l]=C(!1),[u,d]=C(null),[p,m]=C(null),h=dz(e,n),g=Object.keys(e.paramsFromForm??{}).some(e=>h[e]===void 0),_=e.mapOption.value,y=e.mapOption.label,x=e.mapOption.description,S=(e.refreshOn??Object.values(e.paramsFromForm??{})).map(e=>`${e}=${JSON.stringify(n[e])}`).join(`|`),w=f(a);w.current=a;let T=f(r);T.current=r;let E=f(h);E.current=h;let D=f(t);return D.current=t,b(()=>{let t=w.current;if(!t||g){m(null),d(null);return}let n=!1;l(!0),d(null);let r=E.current;return t(e.action,e.key,r).then(t=>{if(n)return;let r=t,i=[];if(Array.isArray(r))i=r;else if(r&&typeof r==`object`)for(let e of Object.keys(r)){let t=r[e];if(Array.isArray(t)){i=t;break}}m(i);let a=D.current;if(e.hideWhenFewerThan!==void 0&&i.length===1&&(typeof a!=`string`||a.length===0)){let e=i[0]?.[_];typeof e==`string`&&e.length>0&&T.current(e)}}).catch(e=>{n||(d(e instanceof Error?e.message:String(e)),m([]))}).finally(()=>{n||l(!1)}),()=>{n=!0}},[S,g,a!==void 0,e.action,e.key,e.hideWhenFewerThan,_]),!a&&e.hideWhenFewerThan!==void 0||e.hideWhenFewerThan!==void 0&&p!==null&&p.length<e.hideWhenFewerThan?null:v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:g?v(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:e.emptyParamsMessage??o(`uiLibrary.configFormField.fillPrerequisites`,`Fill the prerequisite fields above first.`)}):s?c(`div`,{className:`flex items-center gap-2 text-[11px] text-foreground-subtle`,children:[v(Un,{className:`h-3 w-3 animate-spin`}),` `,o(`uiLibrary.configFormField.loadingOptions`,`Loading options…`)]}):u?v(`div`,{className:`text-[11px] text-danger`,children:u}):p&&p.length===0?v(`div`,{className:`text-[11px] text-foreground-subtle italic`,children:e.emptyResultsMessage??o(`uiLibrary.configFormField.noOptions`,`No options returned.`)}):(()=>{let e=(p??[]).some(e=>{let t=e[_];return t===``||t===void 0});return c(`select`,{className:`w-full rounded-md border border-border bg-surface px-2 py-1.5 text-xs text-foreground`,value:typeof t==`string`?t:``,disabled:i,onChange:e=>r(e.target.value),children:[!e&&v(`option`,{value:``,children:o(`uiLibrary.configFormField.select`,`— Select —`)}),(p??[]).map((e,t)=>{let n=e[_],r=e[y],i=x?e[x]:void 0,a=typeof n==`string`&&n!==``?n:`row-${t}`;return c(`option`,{value:typeof n==`string`?n:String(n??``),children:[typeof r==`string`?r:String(r??a),i===void 0?``:` (${String(i)})`]},a)})]})})()})}function pz({field:e,values:t,disabled:n,onAction:r,onChange:i,onChangeMany:a}){let o=q(),[s,l]=C(!1),[u,d]=C(null),f=si(),p=Pn(),m=SA(),h=async()=>{let n=e.prompt?await p({title:e.prompt.title??e.label,...e.prompt.message===void 0?{}:{message:e.prompt.message},...e.prompt.placeholder===void 0?{}:{placeholder:e.prompt.placeholder},confirmLabel:e.buttonLabel}):null;if(e.prompt&&n===null||e.confirmMessage&&!await f({title:e.label,message:e.confirmMessage,confirmLabel:e.buttonLabel,variant:e.variant===`danger`?`danger`:`default`})||!r)return;let o=dz(e,t);e.prompt&&n!==null&&(o[e.prompt.param]=n),e.includeDeviceId===!0&&m!=null&&(o.deviceId=m),l(!0),d(null);try{let t=await r(e.action,e.key,o),n=typeof t==`object`&&t?t:null;if(n!==null&&e.assignResult&&(i||a)){let t={};for(let[r,i]of Object.entries(e.assignResult)){let e=n[i];typeof e==`string`&&(t[r]=e)}if(Object.keys(t).length>0){if(a)a(t);else if(i)for(let[e,n]of Object.entries(t))i(e,n)}}d({kind:`ok`,text:e.successMessage?e.successMessage.replace(/\{(\w+)\}/g,(e,t)=>{let r=n?.[t];return r===void 0?``:String(r)}):`Done.`})}catch(e){d({kind:`error`,text:e instanceof Error?e.message:String(e)})}finally{l(!1)}},g={default:`border border-border text-foreground hover:bg-surface-hover`,primary:`bg-primary text-primary-foreground hover:bg-primary/90`,danger:`bg-danger text-white hover:bg-danger/90`};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:c(`div`,{className:`flex flex-col gap-1.5`,children:[v(`button`,{onClick:h,disabled:n||s,className:`inline-flex w-fit items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 ${g[e.variant??`default`]??g.default}`,children:s?o(`uiLibrary.configFormField.working`,`Working…`):e.buttonLabel}),u&&v(`div`,{className:`text-[11px] ${u.kind===`ok`?`text-emerald-700 dark:text-emerald-300`:`text-danger`}`,children:u.text})]})})}function mz({field:e,values:t,disabled:n,onAction:r}){let i=q(),[a,o]=C(!1),[s,l]=C(null),u=si(),d=async()=>{if(e.confirmMessage&&!await u({title:e.label,message:e.confirmMessage,confirmLabel:e.buttonLabel,variant:e.variant===`danger`?`danger`:`default`})||!r)return;let n=dz(e,t);o(!0),l(null);try{let t=await r(`device-custom-action`,e.action,n),i=typeof t==`object`&&t?t:null;l({kind:`ok`,text:e.successMessage?e.successMessage.replace(/\{(\w+)\}/g,(e,t)=>{let n=i?.[t];return n===void 0?``:String(n)}):`Done.`})}catch(e){l({kind:`error`,text:e instanceof Error?e.message:String(e)})}finally{o(!1)}},f={default:`border border-border text-foreground hover:bg-surface-hover`,primary:`bg-primary text-primary-foreground hover:bg-primary/90`,danger:`bg-danger text-white hover:bg-danger/90`};return v(PR,{label:e.label,description:e.description,required:e.required,span:e.span,children:c(`div`,{className:`flex flex-col gap-1.5`,children:[v(`button`,{onClick:d,disabled:n||a,className:`inline-flex w-fit items-center gap-1.5 rounded-md px-3 py-1.5 text-xs font-medium transition-colors disabled:opacity-50 ${f[e.variant??`default`]??f.default}`,children:a?i(`uiLibrary.configFormField.working`,`Working…`):e.buttonLabel}),s&&v(`div`,{className:`text-[11px] ${s.kind===`ok`?`text-emerald-700 dark:text-emerald-300`:`text-danger`}`,children:s.text})]})})}function hz({field:e}){let t=SA();return v(PR,{label:void 0,description:void 0,span:e.span,children:v(YL,{widgetId:e.widgetId,host:`device-tab`,config:e.widgetConfig,deviceId:t??void 0,instanceId:e.key})})}function gz(e,t){if(e==null)return`—`;if(typeof e==`boolean`)return e?`yes`:`no`;if(typeof e==`number`){let n=Number.isInteger(e)?String(e):e.toFixed(2);return t?`${n} ${t}`:n}return typeof e==`string`?e:JSON.stringify(e)}function _z({field:e,values:t,onAction:n,translationFn:r}){let i=`key`in e?e.key:void 0;if(!i)return null;let a=t[i],o=a===void 0?`default`in e?e.default:void 0:a,s=gz(o,`unit`in e?e.unit:void 0),l=`label`in e?e.label:void 0,u=`description`in e?e.description:void 0,d=`span`in e?e.span:void 0,f=`actions`in e?e.actions??[]:[];return v(PR,{label:l,description:u,span:d,translationFn:r,children:c(`div`,{className:`flex items-stretch gap-1`,children:[v(`div`,{className:`flex-1 rounded-md border border-border bg-surface-alt px-2.5 py-1.5 text-xs text-foreground font-mono break-all`,children:s}),f.length>0&&v(`div`,{className:`flex items-center gap-1`,children:f.map(e=>v(yz,{action:e,fieldKey:i,value:o,onAction:n},e.action))})]})})}function vz({name:e}){let t=`h-3.5 w-3.5`;switch(e){case`copy`:return v(Qr,{className:t});case`refresh-cw`:return v(_e,{className:t});case`external-link`:return v(Je,{className:t});case`trash-2`:return v(Pe,{className:t});case`download`:return v(nn,{className:t});case`upload`:return v(yt,{className:t});default:return v(yn,{className:t})}}function yz({action:e,fieldKey:t,value:n,onAction:r}){let i=si(),[a,o]=C(!1),s=e.variant===`danger`?`text-danger hover:bg-danger/10 border-danger/30`:e.variant===`primary`?`text-primary hover:bg-primary/10 border-primary/30`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover border-border`;return v(`button`,{type:`button`,onClick:async()=>{if(!(e.confirmMessage&&!await i({title:e.tooltip,message:e.confirmMessage,variant:e.variant===`danger`?`danger`:`default`}))){if(e.action===`copy-value`){try{await navigator.clipboard.writeText(typeof n==`string`?n:String(n))}catch{}return}if(r){o(!0);try{await r(e.action,t)}finally{o(!1)}}}},disabled:a,title:e.tooltip,className:`inline-flex items-center justify-center rounded-md border px-2 py-1.5 transition-colors disabled:opacity-50 ${s}`,children:v(vz,{name:e.icon})})}function bz(e){return`multiple`in e&&e.multiple!=null}function xz({field:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,externalProbe:o,allFields:s,onAction:l}){let u=q(),d=e.multiple,f=d.min,p=d.max,m=t[e.key],h=[...Array.isArray(m)?m:m==null?[]:[m]],g=d.itemDefault===void 0?`default`in e&&e.default!==void 0?e.default:``:d.itemDefault;for(;h.length<f;)h.push(g);let _=t=>n(e.key,[...t]),y=(e,t)=>{let n=[...h];n[e]=t,_(n)},b=()=>{h.length>=p||_([...h,g])},x=e=>{h.length<=f||_(h.filter((t,n)=>n!==e))},S=()=>{let{multiple:t,...n}=e,r={label:void 0,description:void 0,required:!1};return{...n,...r}};return v(PR,{label:e.label,description:e.description,required:f>0?e.required:!1,span:e.span,translationFn:i,children:c(`div`,{className:`space-y-2`,children:[h.map((n,o)=>{let p=d.itemLabel?.replace("${n}",String(o+1));return c(`div`,{className:`space-y-1`,children:[p&&v(`div`,{className:MR,children:p}),c(`div`,{className:`flex items-center gap-2`,children:[v(`div`,{className:`flex-1 min-w-0`,children:v(Cz,{field:S(),values:{...t,[e.key]:n},onChange:(e,t)=>y(o,t),disabled:r,translationFn:i,onTestField:a,onAction:l,allFields:s})}),h.length>f&&v(`button`,{type:`button`,onClick:()=>x(o),disabled:r,title:u(`uiLibrary.configFormField.remove`,`Remove`),className:`flex-shrink-0 inline-flex items-center justify-center rounded-md border border-border p-1.5 text-foreground-subtle hover:text-danger hover:border-danger/50 transition-colors disabled:opacity-40`,children:v(Pe,{className:`h-3.5 w-3.5`})})]})]},o)}),c(`div`,{className:`flex items-center justify-between pt-1`,children:[h.length<p?c(`button`,{type:`button`,onClick:b,disabled:r,className:`inline-flex items-center gap-1.5 rounded-md border border-border px-2.5 py-1 text-xs font-medium text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:opacity-40`,children:[v(Se,{className:`h-3 w-3`}),d.addLabel??u(`uiLibrary.configFormField.add`,`Add`)]}):v(`span`,{}),c(`span`,{className:`text-[10px] text-foreground-subtle tabular-nums`,children:[h.length,`/`,p]})]})]})})}function Sz(e,t,n){if(!(`showWhen`in e)||!e.showWhen)return!0;let r=e.showWhen,i=t[r.field],a=n?.find(e=>`key`in e&&e.key===r.field),o=a&&`default`in a?a.default:void 0,s=i===void 0?o:i;return r.equals===void 0?r.notEquals===void 0?r.in===void 0?r.notIn===void 0?r.includes===void 0?r.notIncludes===void 0?!0:!Array.isArray(s)||!s.includes(r.notIncludes):Array.isArray(s)&&s.includes(r.includes):!r.notIn.includes(s):r.in.includes(s):s!==r.notEquals:s===r.equals}function Cz({field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,externalProbe:s,allFields:c,onAction:l}){if(bz(e))return v(xz,{field:e,values:t,onChange:n,disabled:i,translationFn:a,onTestField:o,externalProbe:s,allFields:c,onAction:l});if(`readonlyField`in e&&e.readonlyField===!0)return v(_z,{field:e,values:t,onAction:l,translationFn:a});if(!Sz(e,t,c))return null;let u=t[e.key],d=u===void 0?`default`in e?e.default:void 0:u,f=t=>n(e.key,t),p=hA(e.type);switch(e.type){case`text`:return v(FR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,children:v(IR,{field:e,value:d,onChange:f,disabled:i,translationFn:a})});case`number`:return v(LR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`boolean`:return v(RR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`select`:return v(zR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`multiselect`:return v(HR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`timezone`:return v(BR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`datetime`:return v(VR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`password`:return v(FR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,children:v(UR,{field:e,value:d,onChange:f,disabled:i,translationFn:a})});case`textarea`:return v(FR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,multiline:!0,children:v(WR,{field:e,value:d,onChange:f,disabled:i,translationFn:a})});case`slider`:return v(GR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`tags`:return v(KR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`color`:return v(YR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`icon`:return v(XR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`node-select`:return v(qR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`node-multiselect`:return v(JR,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`device-select`:return v(Lk,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`device-multiselect`:return v(Rk,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`notification-target-select`:return v(fA,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`notification-target-multiselect`:return v(dA,{field:e,value:d,onChange:f,disabled:i,translationFn:a});case`probe`:return v(ZR,{field:e,value:d,onChange:f,disabled:i,translationFn:a,onTestField:o,onAction:l,externalProbe:s});case`group`:return v(QR,{field:e,values:t,onChange:n,onChangeMany:r,disabled:i,translationFn:a,onTestField:o,onAction:l});case`sub-tabs`:return v($R,{field:e,values:t,onChange:n,disabled:i,translationFn:a,onTestField:o,onAction:l});case`separator`:return v(ez,{});case`info`:return v(nz,{field:e});case`qr-code`:return v(rz,{field:e});case`object-array`:return v(cz,{field:e});case`editable-array`:return v(lz,{field:e,value:d,onChange:f,disabled:i,translationFn:a,onTestField:o,onAction:l});case`button`:return v(uz,{field:e,disabled:i,onAction:l});case`addon-action-select`:{let r=e.writesKey??e.key;return v(fz,{field:e,value:t[r],values:t,onChange:e=>n(r,e),disabled:i,onAction:l})}case`addon-action-button`:return v(pz,{field:e,values:t,disabled:i,onAction:l,onChange:n,onChangeMany:r});case`account-sign-in`:return v($ie,{field:e,values:t,disabled:i,onAction:l,onChangeMany:r});case`secret-presence`:return v(eae,{field:e,values:t});case`device-action-button`:return v(mz,{field:e,values:t,disabled:i,onAction:l});case`widget`:return v(hz,{field:e});default:return p?v(p,{field:e,value:d,onChange:f,disabled:i}):null}}E();function wz(e){return/^[a-zA-Z0-9_]+(\.[a-zA-Z0-9_]+)+$/.test(e)}function Tz(e,t){if(e!==void 0)return t&&wz(e)?t(e):e}function Ez(e){let t=e??2;return t===1?`grid-cols-1`:t===3?`grid-cols-1 @[480px]:grid-cols-2 @[880px]:grid-cols-3`:t===4?`grid-cols-1 @[480px]:grid-cols-2 @[1140px]:grid-cols-4`:`grid-cols-1 @[480px]:grid-cols-2`}function Dz({section:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,probeResults:o}){let[s,l]=C(e.defaultCollapsed??!1),u=e.style===`accordion`,d=Ez(e.columns);return c(`div`,{className:`@container rounded-lg border border-border bg-surface p-3`,style:{containerType:`inline-size`},children:[c(`div`,{className:[`flex items-center justify-between mb-2`,u?`cursor-pointer`:``].join(` `),onClick:u?()=>l(e=>!e):void 0,children:[c(`div`,{children:[v(`h3`,{className:`text-[11px] font-semibold text-foreground-subtle uppercase tracking-wider`,children:Tz(e.title,i)}),e.description&&v(`p`,{className:`text-[10px] text-foreground-subtle mt-0.5`,children:Tz(e.description,i)})]}),u&&v(`span`,{className:`text-foreground-subtle text-xs ml-2`,children:s?`▸`:`▾`})]}),!s&&v(`div`,{className:`grid ${d} gap-x-3 gap-y-2.5`,children:e.fields.map(e=>v(Cz,{field:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,externalProbe:o?.[e.key]},e.key))})]})}function Oz({schema:e,values:t,onChange:n,disabled:r,translationFn:i,onTestField:a,probeResults:o,onClearProbe:s,bare:c=!1}){let l=(e,r)=>{n({...t,[e]:r}),s?.(e)};return c?v(`div`,{className:`space-y-4`,children:e.sections.map(e=>v(`div`,{className:`@container`,style:{containerType:`inline-size`},children:v(`div`,{className:`grid ${Ez(e.columns)} gap-x-3 gap-y-2.5`,children:e.fields.map(e=>v(Cz,{field:e,values:t,onChange:l,disabled:r,translationFn:i,onTestField:a,externalProbe:o?.[e.key]},e.key))})},e.id))}):v(`div`,{className:`space-y-4`,children:e.sections.map(e=>v(Dz,{section:e,values:t,onChange:l,disabled:r,translationFn:i,onTestField:a,probeResults:o},e.id))})}E();var kz=({open:e})=>v(`svg`,{className:`h-3 w-3 transition-transform ${e?`rotate-90`:``}`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":!0,children:v(`polyline`,{points:`9 18 15 12 9 6`})});function Az(e){return e.type!==`separator`&&e.type!==`info`&&e.type!==`button`&&e.type!==`group`}function jz(e){let t={};if(!e)return t;for(let n of e.sections)for(let e of n.fields){if(!Az(e))continue;let n=e.key;t[n]=e.value}return t}function Mz(e,t){return{...e,sections:e.sections.map(e=>({...e,fields:e.fields.map(e=>{if(!Az(e))return e;let n=e.key;return n in t?{...e,value:t[n]}:e})}))}}function Nz(e){return ba(e)}function Pz({trpc:e,addonId:t,nodeId:n,title:r,disabled:i,onAfterChange:a,refreshToken:o,sectionIds:s,bare:l=!1,collapsible:u,defaultOpen:d,mode:m,onOverrideChange:h}){let g=q(),_=m??`persist`,[y,x]=C(null),[S,w]=C(!0),[T,E]=C(null),[D,O]=C(!1),[k,A]=C(d??!1),[j,M]=C({}),[N,F]=C(null),I=f(0);b(()=>{F(null),M({})},[e,t,n,o,_]),b(()=>{let r=!1;w(!0),E(null);let i=_===`override`&&Object.keys(j).length>0?j:void 0;return e.addonSettings.getGlobalSettings.query({addonId:t,nodeId:n,...i?{overlay:i}:{}}).then(e=>{r||(x(t=>e??t),!i&&e&&F(jz(e)),w(!1))}).catch(e=>{r||(E(e instanceof Error?e.message:String(e)),w(!1))}),()=>{r=!0}},[e,t,n,o,_,JSON.stringify(j)]);let L=p(()=>jz(y),[y]),R=s?.join(`\0`),z=p(()=>{if(!y)return null;let e=Nz(y);if(s===void 0)return e;let t=new Set(s);return{...e,sections:e.sections.filter(e=>t.has(e.id))}},[y,R]),B=async r=>{if(_===`override`){let e=N??L,t={};for(let n of Object.keys(r))r[n]!==e[n]&&(t[n]=r[n]);let n={...e,...t};M(t),h?.(t,n);return}let i={};for(let e of Object.keys(r))r[e]!==L[e]&&(i[e]=r[e]);if(Object.keys(i).length===0)return;let o=++I.current;x(e=>e===null?e:Mz(e,r)),O(!0),E(null);try{await e.addonSettings.updateGlobalSettings.mutate({addonId:t,nodeId:n,patch:i});let r=await e.addonSettings.getGlobalSettings.query({addonId:t,nodeId:n});r&&o===I.current&&x(r),o===I.current&&a?.()}catch(e){o===I.current&&E(e instanceof Error?e.message:String(e))}finally{o===I.current&&O(!1)}};if(S)return v(`div`,{className:`text-xs text-foreground-subtle animate-pulse`,children:g(`uiLibrary.addonGlobalSettings.loading`,`Loading {{name}}…`,{name:r??t})});if(T)return c(`div`,{className:`text-xs text-red-400`,children:[r??t,`: `,T]});if(!y||!z)return v(`div`,{className:`text-xs text-foreground-subtle`,children:g(`uiLibrary.addonGlobalSettings.unavailable`,`{{name}} not available on {{node}}.`,{name:r??t,node:n})});let V=_===`override`?{...L,...j}:L,H=c(P,{children:[_===`override`?v(`div`,{className:`mb-2 text-[11px] text-foreground-subtle`,children:g(`uiLibrary.addonGlobalSettings.override`,`Benchmark override — applies to this run only. The addon's saved settings are not changed.`)}):null,D?v(`div`,{className:`mb-2 text-[11px] text-foreground-subtle`,"aria-live":`polite`,children:g(`uiLibrary.addonGlobalSettings.saving`,`Saving…`)}):null,v(Oz,{schema:z,values:V,onChange:B,disabled:i===!0,bare:l})]});return l?v(`div`,{children:H}):u===!0?c(`section`,{className:`rounded-lg border border-border bg-surface overflow-hidden`,children:[c(`button`,{type:`button`,onClick:()=>A(e=>!e),className:`w-full px-4 py-2 flex items-center gap-2 hover:bg-surface-hover text-left`,"aria-expanded":k,children:[v(kz,{open:k}),v(`h3`,{className:`text-xs font-semibold text-foreground uppercase tracking-wide flex-1`,children:r??t}),v(`span`,{className:`text-[10px] text-foreground-subtle`,children:k?g(`uiLibrary.addonGlobalSettingsForm.hide`,`hide`):g(`uiLibrary.addonGlobalSettingsForm.edit`,`edit`)})]}),k?v(`div`,{className:`border-t border-border px-4 py-3`,children:H}):null]}):r?c(`section`,{className:`rounded-lg border border-border bg-surface overflow-hidden`,children:[v(`div`,{className:`border-b border-border px-4 py-2`,children:v(`h3`,{className:`text-xs font-semibold text-foreground uppercase tracking-wide`,children:r})}),v(`div`,{className:`px-4 py-3`,children:H})]}):v(`div`,{children:H})}var Fz=/^(usb|pci)(?::(\d+))?$/;function Iz(e){let t=Fz.exec(e);if(t===null||t[1]===`usb`&&t[2]===void 0)return{label:`Coral Edge TPU`,short:`Coral`};let n=t[1]===`pci`?`PCIe`:`USB`,r=t[2]===void 0?n:`${n} ${Number(t[2])+1}`;return{label:`Coral Edge TPU (${r})`,short:`Coral ${r}`}}function Lz(e){let t=e.backend.toLowerCase(),n=e.device.toLowerCase();if(e.key===`cpu`||n===`cpu`||t===`cpu`)return{label:`CPU`,short:`CPU`};if(n===`npu`)return{label:`Intel NPU`,short:`NPU`};if(n===`gpu`||n===`igpu`)return{label:`Intel iGPU`,short:`iGPU`};if(t===`edgetpu`)return Iz(n);if(t===`coreml`)return{label:`Apple Neural Engine`,short:`ANE`};let r=`${e.backend} ${e.device}`.trim().replace(/\b\w/g,e=>e.toUpperCase());return{label:r.length>0?r:e.key,short:e.backend||e.key}}function Rz(e){return Lz(e).label}function zz(e){return Lz(e).short}function Bz({active:e,onClick:t,disabled:n,children:r,title:i}){return v(`button`,{type:`button`,onClick:t,disabled:n,title:i,className:$(`rounded-full px-3 py-1 text-[11px] font-medium border transition-colors`,e?`border-primary bg-primary/10 text-primary`:`border-border bg-background text-foreground-subtle hover:text-foreground hover:border-foreground-subtle/40`,n?`opacity-50 cursor-not-allowed`:`cursor-pointer`),children:r})}function Vz({catalog:e,value:t,onChange:n,disabled:r}){let i=q(),a=yee(e),o=_a(e,t),s=a.find(e=>e.family===o?.family)?.family??a[0]?.family??``,l=a.find(e=>e.family===s)??a[0];if(!l)return null;let u=l.tiers.find(e=>e.tier===o?.tier)?.tier??l.tiers[0]?.tier??``,d=l.tiers.find(e=>e.tier===u)??l.tiers[0];if(!d)return null;let f=[...new Set(d.options.map(e=>e.resolution))].sort((e,t)=>(t??1/0)-(e??1/0)),p=f.includes(o?.resolution)?o?.resolution:f[0],m=d.options.filter(e=>e.resolution===p),h=e=>e===void 0?i(`uiLibrary.groupedModelSelector.native`,`native`):`${e}`,g=e=>{let t=l.tiers.find(t=>t.tier===e);t&&n((t.options.find(e=>e.precision===(o?.precision??`fp32`)&&e.optimization===(o?.optimization??`standard`)&&e.resolution===o?.resolution)??t.options[0]).modelId)},_=e=>{let t=d.options.filter(t=>t.resolution===e),r=t.find(e=>e.precision===(o?.precision??`fp32`)&&e.optimization===(o?.optimization??`standard`))??t[0];r&&n(r.modelId)},y=t=>{let r=Oee(e,{family:l.family,tier:d.tier,precision:t.precision,optimization:t.optimization,resolution:t.resolution});r&&n(r)},b=d.options.find(e=>e.modelId===t)??null;return c(`div`,{className:`space-y-3`,children:[a.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.family`,`Family`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:a.map(e=>v(Bz,{active:e.family===l.family,disabled:r,...e.hint===void 0?{}:{title:e.hint},onClick:()=>n(e.tiers[0]?.baseModelId??``),children:e.label},e.family))}),l.hint!==void 0&&c(`p`,{className:`mt-1 text-[10px] text-foreground-subtle`,"data-testid":`model-family-hint`,children:[l.label,`: `,l.hint]})]}),l.tiers.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.size`,`{{family}} — size`,{family:l.label})}),v(`div`,{className:`grid grid-cols-2 gap-1.5 sm:grid-cols-4`,children:l.tiers.map(e=>{let t=e.tier===d.tier,n=e.options.find(e=>e.resolution===p&&e.precision===`fp32`)??e.options.find(t=>t.modelId===e.baseModelId)??e.options[0];return c(`button`,{type:`button`,disabled:r,onClick:()=>g(e.tier),className:$(`rounded-lg border px-2 py-2 text-left transition-all`,t?`border-primary bg-primary/5 ring-1 ring-primary/30`:`border-border bg-background hover:border-foreground-subtle/40`,r?`opacity-50 cursor-not-allowed`:`cursor-pointer`),children:[c(`div`,{className:`flex items-center gap-1`,children:[v(`span`,{className:`text-xs font-semibold text-foreground`,children:e.label}),t&&v(dt,{className:`h-3 w-3 text-primary`})]}),n!==void 0&&n.sizeMB>0&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:i(`uiLibrary.groupedModelSelector.approxSize`,`~{{size}} MB`,{size:n.sizeMB})})]},e.tier)})})]}),f.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.resolution`,`Resolution`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:f.map(e=>v(Bz,{active:e===p,disabled:r,title:e===void 0?i(`uiLibrary.groupedModelSelector.nativeTitle`,`native (best accuracy)`):i(`uiLibrary.groupedModelSelector.fasterTitle`,`{{size}}×{{size}} (faster)`,{size:e}),onClick:()=>_(e),children:h(e)},e??`native`))})]}),m.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:i(`uiLibrary.groupedModelSelector.variant`,`Variant`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:m.map(e=>v(Bz,{active:e.modelId===t,disabled:r,title:e.sizeMB>0?i(`uiLibrary.groupedModelSelector.formatsSize`,`{{formats}} · ~{{size}} MB`,{formats:e.formats.join(`, `),size:e.sizeMB}):e.formats.join(`, `),onClick:()=>y(e),children:c(`span`,{className:`inline-flex items-center gap-1`,children:[e.optimization===`test`&&v(er,{className:`h-3 w-3`}),e.label]})},e.modelId))})]}),c(`div`,{className:`flex items-center gap-2 text-[10px] text-foreground-subtle pt-0.5`,children:[v(Ar,{className:`h-3 w-3`}),v(`span`,{className:`font-mono`,children:t||`—`}),b&&c(`span`,{children:[`· `,b.formats.join(`, `),b.sizeMB>0?i(`uiLibrary.groupedModelSelector.sizeSuffix`,` · ~{{size}} MB`,{size:b.sizeMB}):``]})]})]})}E();var Hz={camstack:`CamStack`,frigate:`plus catalog`,scrypted:`plugin catalog`,custom:`Custom`};function Uz(e){return e.provider??`camstack`}function Wz({models:e,value:t,onChange:n,disabled:r,defaultModelId:i}){let a=q(),o=p(()=>{let t=new Map;for(let n of e){let e=Uz(n),r=t.get(e);r?r.push(n):t.set(e,[n])}return t},[e]),s=p(()=>See.filter(e=>(o.get(e)?.length??0)>0),[o]),l=p(()=>{let n=e.find(e=>e.id===t);return n?Uz(n):void 0},[e,t])??(s.includes(`camstack`)?`camstack`:s[0]??`camstack`),[u,d]=C(l);b(()=>{d(l)},[l]);let f=t!==``&&!e.some(e=>e.id===t),m=i!==void 0&&e.some(e=>e.id===i)?i:e[0]?.id,h=f&&c(`div`,{className:`rounded border border-amber-500/40 bg-amber-500/10 px-2 py-1.5 text-[10px] text-amber-300 space-y-1.5`,children:[v(`p`,{children:v(hi,{uiKey:`uiLibrary.modelPicker.unresolved`,fallback:`Current pin (<0>{{value}}</0>) is not offered for this device. The runtime tries it as a custom model and refuses it if it cannot serve it. Pick a replacement and Save.`,components:[v(`span`,{className:`font-mono`},`v`)],values:{value:t}})}),m!==void 0&&v(`button`,{type:`button`,disabled:r,onClick:()=>n(m),className:`rounded border border-amber-500/50 px-2 py-0.5 text-[10px] font-medium hover:bg-amber-500/20 disabled:opacity-50`,children:v(hi,{uiKey:`uiLibrary.modelPicker.useDefault`,fallback:`Use default (<0>{{id}}</0>) — then Save`,components:[v(`span`,{className:`font-mono`},`d`)],values:{id:m}})})]}),g=o.get(u)??[],_=g.filter(e=>e.group!==void 0),y=g.filter(e=>e.group===void 0);return c(`div`,{className:`space-y-3`,children:[h,s.length>1&&c(`div`,{children:[v(`p`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle mb-1.5`,children:a(`uiLibrary.modelPicker.provider`,`Provider`)}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:s.map(e=>v(`button`,{type:`button`,disabled:r,onClick:()=>d(e),className:$(`rounded-full px-3 py-1 text-[11px] font-medium border transition-colors`,e===u?`border-primary bg-primary/10 text-primary`:`border-border bg-background text-foreground-subtle hover:text-foreground hover:border-foreground-subtle/40`,r?`opacity-50 cursor-not-allowed`:`cursor-pointer`),children:Hz[e]},e))})]}),_.length>0&&v(Vz,{catalog:_,value:t,onChange:n,disabled:r}),y.length>0&&((e,i)=>c(`select`,{disabled:r,className:`w-full bg-surface border border-border rounded px-2 py-1 text-xs disabled:opacity-50`,value:e.some(e=>e.id===t)?t:``,onChange:e=>n(e.target.value),children:[i!==void 0&&v(`option`,{value:``,disabled:!0,children:i}),e.map(e=>v(`option`,{value:e.id,children:e.name},e.id))]}))(y,_.length>0?`— other models —`:`— select a model —`),e.length===0&&v(`p`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.modelPicker.none`,`No model is published for this engine format.`)})]})}function Gz(e,t){let n=n=>e.models.find(e=>e.id===n)?.formats[t]!==void 0,r=e.defaultModelIdByFormat?.[t];if(r!==void 0&&n(r))return r;if(n(e.defaultModelId))return e.defaultModelId;let i=e.models.filter(e=>e.formats[t]!==void 0&&e.legacy!==!0);return i.length===0?e.defaultModelId:[...i].toSorted((e,n)=>(e.formats[t]?.sizeMB??1/0)-(n.formats[t]?.sizeMB??1/0))[0].id}function Kz(e,t){let n=t?.format;if(n===void 0)return;let r=t?.defaultModelId;return e.slot===`detector`&&r!==void 0&&e.models.some(e=>e.id===r)?r:Gz(e,n)}function qz(e,t){return t===void 0?[]:e.filter(e=>e.formats[t]!==void 0)}function Jz(e,t){return qz(e,t).length>0}function Yz(e){return e.base??Kz(e.catalog,e.device)}function Xz(e,t,n){return kee(e)?va(e,t,n?.supplies):null}function Zz(e,t){return{...e,[xee]:t}}function Qz(e,t=Fn){if(e.kind===`label`){let n=e.uncovered.length>0?[t(`uiLibrary.rootModelSource.notProduced`,`Not produced by this model: {{classes}}.`,{classes:e.uncovered.join(`, `)})]:[];return e.stepId===`package-detection`?[...n,t(`uiLibrary.rootModelSource.packageNote`,`The root model's own package boxes become the package result at this step's threshold; this step's zone-crop view is not used, so small parcels the full-frame model misses stay missed.`)]:[...n,t(`uiLibrary.rootModelSource.labelNote`,`This step's class list decides which of the root's labels become the fine class; a switched-off class stays at its macro.`)]}return e.kind===`mask`?[t(`uiLibrary.rootModelSource.maskNote`,`Masks come from the root model: each detection carries the root's own instance mask, so this step's model does not run. A root mask follows the model's mask grid (a quarter of its input), coarser than this step's own per-crop mask.`)]:e.stepId===`face-detection`?[t(`uiLibrary.rootModelSource.faceNote`,`Face boxes come from the root model. Each is re-found by this step's face detector in a square around it before recognition, so only a face it finds is recognised; a box with no face in it is dropped.`)]:[t(`uiLibrary.rootModelSource.plateNote`,`Plate boxes come from the root model and the plate reader reads them. The crop margin around a root plate box has not been measured for this model yet.`)]}function $z(e,t,n){switch(e.inactiveReason){case`root-input-too-small`:return n(`uiLibrary.rootModelSource.inactiveTooSmall`,`the current root model ({{name}}) sees the frame too small to find faces reliably (it needs an input of 640 px or more).`,{name:t.name});case`root-does-not-declare`:case void 0:return n(`uiLibrary.rootModelSource.inactiveCannot`,`the current root model ({{name}}) cannot supply this.`,{name:t.name})}}function eB({stepId:e,settings:t,rootModel:n,disabled:r,onChange:i}){let a=q();if(n===void 0)return null;let o=Xz(e,t,n);if(o===null)return null;let s=o.inactive?v(`div`,{className:`rounded bg-muted/40 px-3 py-2 text-[11px] text-foreground-subtle`,"data-testid":`root-model-inactive`,children:a(`uiLibrary.rootModelSource.inactive`,`Use the root model: inactive — {{reason}} The step runs its own model.`,{reason:$z(o,n,a)})}):null;if(o.supply===void 0)return s;let l=o.intent;return c(`div`,{className:`space-y-1`,"data-testid":`root-model-source`,children:[c(`label`,{className:`flex items-center gap-2 text-xs text-foreground`,children:[v(`input`,{type:`checkbox`,checked:l,disabled:r,onChange:e=>i(e.target.checked)}),a(`uiLibrary.rootModelSource.use`,`Use the root model ({{name}})`,{name:n.name})]}),s,o.effective&&Qz(o.supply,a).map(e=>v(`p`,{className:`text-[10px] leading-snug text-foreground-subtle`,children:e},e))]})}function tB(e,t){switch(e){case`override`:return t(`uiLibrary.modelBoundSlider.sourceOverride`,`Override for this model`);case`model-default`:return t(`uiLibrary.modelBoundSlider.sourceModelDefault`,`Model default`);case`global-default`:return t(`uiLibrary.modelBoundSlider.sourceGlobalDefault`,`Default — not tuned for this model`)}}function nB(e,t){return(t===void 0?e:e/t).toFixed(2).replace(/\.?0+$/,``)}function rB({field:e,modelId:t,settings:n,disabled:r,onChangeSettings:i,hideSourceRow:a=!1}){let o=q(),s=e.modelApplicability?.defaultByModel?.[t],l=Ja(n,e.key,t.length>0?t:void 0,s,e.default),u=typeof e.default==`number`?e.default:e.min??0,d=typeof l.value==`number`?l.value:u,f=e.type===`slider`?e.displayScale:void 0,p=`unit`in e?e.unit:void 0,m=l.inapplicableOverride,h=n?.[e.key]!==void 0,g=r=>{i(t.length>0?Mee(n,e.key,r,t):{...n,[e.key]:r})};return c(`div`,{children:[c(`div`,{className:`flex items-center justify-between mb-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:e.label}),c(`span`,{className:`text-xs font-medium text-foreground tabular-nums`,children:[nB(d,f),p?` ${p}`:``]})]}),e.description&&v(`p`,{className:`text-[10px] text-foreground-subtle/60 mb-1.5`,children:e.description}),v(`input`,{type:`range`,min:e.min??0,max:e.max??1,step:e.step??.01,value:d,disabled:r||e.disabled,onChange:e=>g(Number(e.target.value)),className:`w-full accent-primary h-1.5`}),!a&&c(`div`,{className:`mt-1 flex items-center justify-between gap-2 text-[10px]`,children:[v(`span`,{"data-testid":`model-bound-source`,className:l.source===`override`?`text-primary font-medium`:`text-foreground-subtle`,children:tB(l.source,o)}),h&&v(`button`,{type:`button`,disabled:r,className:`text-foreground-subtle hover:text-foreground disabled:opacity-50`,onClick:()=>i(Lee(n,e.key)),children:o(`uiLibrary.modelBoundSlider.resetToDefault`,`Reset to model default`)})]}),m!==void 0&&typeof m.value==`number`&&v(`p`,{className:`mt-1 text-[10px] text-amber-400/90`,children:o(`uiLibrary.modelBoundSlider.staleOverride`,`The override {{value}} was set for {{modelId}} and does not apply to this model.`,{value:nB(m.value,f),modelId:m.modelId})})]})}function iB(e){return e.flatMap(e=>e.type===`group`?iB(e.fields):`key`in e&&`bindsToModel`in e&&e.bindsToModel===!0?[e.key]:[])}function aB({fields:e,modelId:t,settings:n,disabled:r,onReset:i}){let a=q(),o=iB(e),s=t.length>0?t:void 0;return o.length===0||!Qa(n,o,s)?null:v(`button`,{type:`button`,disabled:r,className:`text-[10px] text-primary hover:underline disabled:opacity-50`,onClick:()=>i(la(n,o,s)),children:a(`uiLibrary.modelBoundSlider.resetThresholds`,`Reset thresholds to model defaults`)})}function oB({expanded:e,onExpandedChange:t,header:n,children:r,dimmed:i=!1,hideChevron:a=!1,className:o}){return c(`div`,{className:$(`rounded-lg border border-border bg-surface overflow-hidden`,i&&`opacity-[0.45]`,o),children:[c(`div`,{role:`button`,tabIndex:0,className:`flex items-center gap-2.5 px-3 py-2.5 cursor-pointer select-none`,onClick:()=>t(!e),onKeyDown:n=>{(n.key===`Enter`||n.key===` `)&&(n.preventDefault(),t(!e))},children:[!a&&v(`span`,{className:`text-foreground-subtle shrink-0`,children:v(e?de:It,{className:`h-4 w-4`})}),n]}),e&&r&&v(`div`,{className:`border-t border-border px-3 py-3`,children:r})]})}E();function sB(e){return e?.models??[]}function cB({step:e,schema:t,allSchemas:n,depth:r=0,onChange:i,onDelete:a,readOnly:o=!1}){let s=q(),[l,u]=C(!1),d=sB(t);if(d.length>0&&!d.some(t=>t.id===e.modelId)&&!o){let n=(t?.defaultModelId?d.find(e=>e.id===t.defaultModelId):null)??d[0];n&&n.id!==e.modelId&&queueMicrotask(()=>i({...e,modelId:n.id}))}let f=c(P,{children:[c(`div`,{className:`flex-1 min-w-0`,children:[v(`span`,{className:`text-[10px] uppercase tracking-wider font-medium text-foreground-subtle/60 block leading-none`,children:e.slot}),v(`span`,{className:`text-sm font-semibold text-foreground truncate block leading-tight`,children:e.addonName}),c(`div`,{className:`flex items-center gap-1 mt-0.5 flex-wrap`,children:[e.inputClasses.map(e=>v(`span`,{className:`text-[9px] uppercase font-semibold tracking-wide px-1.5 py-0.5 rounded bg-blue-500/12 text-blue-400`,children:e},e)),e.inputClasses.length>0&&e.outputClasses.length>0&&v(`span`,{className:`text-foreground-subtle/40 text-[10px]`,children:`→`}),e.outputClasses.map(e=>v(`span`,{className:`text-[9px] uppercase font-semibold tracking-wide px-1.5 py-0.5 rounded bg-green-500/12 text-green-400`,children:e},e))]})]}),!o&&v(`button`,{onClick:t=>{t.stopPropagation(),i({...e,enabled:!e.enabled})},className:$(`relative inline-flex h-6 w-11 shrink-0 items-center rounded-full transition-colors`,e.enabled?`bg-success`:`bg-foreground-subtle/30`),children:v(`span`,{className:$(`inline-block h-4 w-4 rounded-full bg-white shadow transition-transform`,e.enabled?`translate-x-6`:`translate-x-1`)})})]});return v(oB,{expanded:l,onExpandedChange:u,dimmed:!e.enabled,header:f,children:c(`div`,{className:`space-y-3`,children:[c(`div`,{className:`space-y-2`,children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:s(`uiLibrary.pipelineStep.model`,`Model`)}),v(Wz,{models:d,value:e.modelId,disabled:o,onChange:t=>i({...e,modelId:t})})]}),t?.configSchema?.map(n=>v(fB,{field:n,allFields:t.configSchema??[],step:e,disabled:o,onChange:i},n.key))]})})}function lB({label:e,value:t,options:n,disabled:r,onChange:i}){let a=q();return c(`div`,{children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide mb-1.5`,children:e}),c(`select`,{value:t,onChange:e=>i(e.target.value),disabled:r,className:`w-full rounded-lg border border-border bg-surface px-3 py-2 text-xs text-foreground focus:outline-none focus:border-primary/50`,children:[n.length===0&&v(`option`,{value:t,children:t||a(`uiLibrary.pipelineStep.default`,`default`)}),n.map(e=>v(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]})]})}function uB({label:e,description:t,value:n,options:r,disabled:i,onChange:a}){function o(e){i||a(n.includes(e)?n.filter(t=>t!==e):[...n,e])}return c(`div`,{children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide mb-1`,children:e}),t&&v(`p`,{className:`text-[10px] text-foreground-subtle/60 mb-1.5`,children:t}),v(`div`,{className:`flex flex-wrap gap-1.5`,children:r.map(e=>c(`button`,{type:`button`,disabled:i,onClick:()=>o(e.value),className:$(`inline-flex items-center gap-1 text-[10px] font-medium px-2 py-1 rounded-md border transition-colors`,n.includes(e.value)?`bg-primary/20 text-primary border-primary/40`:`bg-surface text-foreground-subtle border-border hover:border-primary/30`,i&&`opacity-50 cursor-not-allowed`),children:[e.iconId!==void 0&&v(Uk,{iconId:e.iconId,size:12}),e.label]},e.value))})]})}function dB(e,t,n){let r=t.settings?.[e];if(r!==void 0)return r;let i=n.find(t=>`key`in t&&t.key===e);return i&&`default`in i?i.default:void 0}function fB({field:e,allFields:t,step:n,disabled:r,onChange:i,hideModelBoundSourceRow:a}){let o=q(),s=`modelApplicability`in e?e.modelApplicability:void 0,l=s?.inapplicable?.[n.modelId],u=v(pB,{field:e,allFields:t,step:n,disabled:r||l!==void 0,modelScopedOptions:s?.optionsByModel?.[n.modelId],onChange:i,hideModelBoundSourceRow:a===!0});return l===void 0?u:c(`div`,{className:`space-y-1`,children:[u,v(`div`,{className:`text-[10px] text-amber-400/90`,children:o(`uiLibrary.pipelineStep.noEffect`,`No effect with the selected model — {{reason}}`,{reason:l})})]})}function pB({field:e,allFields:t,step:n,disabled:r,modelScopedOptions:i,onChange:a,hideModelBoundSourceRow:o}){let s=e.type!==`separator`&&e.type!==`info`?e.showWhen:void 0;if(s){let{field:e,equals:r,notEquals:i,in:a,notIn:o}=s,c=dB(e,n,t);if(r!==void 0&&c!==r||i!==void 0&&c===i||a!==void 0&&!a.includes(c)||o!==void 0&&o.includes(c))return null}function l(t){a({...n,settings:{...n.settings,[e.key]:t}})}if(e.type===`select`){let t=n.settings?.[e.key],a=typeof t==`string`?t:e.default??``;return v(lB,{label:e.label,value:a,disabled:r||e.disabled,options:i??e.options,onChange:l})}if(e.type===`multiselect`){let t=n.settings?.[e.key],a=Array.isArray(t)?t:Array.isArray(e.default)?e.default:[];return v(uB,{label:e.label,description:e.description,value:a,options:i??e.options,disabled:r||e.disabled,onChange:l})}if((e.type===`slider`||e.type===`number`)&&e.bindsToModel===!0)return v(rB,{field:e,modelId:n.modelId,settings:n.settings,disabled:r,onChangeSettings:e=>a({...n,settings:e}),hideSourceRow:o});if(e.type===`slider`||e.type===`number`){let t=n.settings?.[e.key],i=typeof e.default==`number`?e.default:e.min??0,a=typeof t==`number`?t:i,o=e.min??0,s=e.max??1,u=e.step??.01,d=e.type===`slider`?e.showValue:!0,f=`unit`in e?e.unit:void 0,p=e.type===`slider`?e.displayScale:void 0,m=p?a/p:a;return c(`div`,{children:[c(`div`,{className:`flex items-center justify-between mb-1`,children:[v(`span`,{className:`text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:e.label}),d&&c(`span`,{className:`text-xs font-medium text-foreground tabular-nums`,children:[typeof m==`number`?m.toFixed(2).replace(/\.?0+$/,``):m,f?` ${f}`:``]})]}),e.description&&v(`p`,{className:`text-[10px] text-foreground-subtle/60 mb-1.5`,children:e.description}),v(`input`,{type:`range`,min:o,max:s,step:u,value:a,disabled:r||e.disabled,onChange:e=>l(Number(e.target.value)),className:`w-full accent-primary h-1.5`})]})}if(e.type===`boolean`){let t=n.settings?.[e.key];return c(`label`,{className:`flex items-center gap-2`,children:[v(`input`,{type:`checkbox`,checked:typeof t==`boolean`?t:e.default===!0,disabled:r||e.disabled,onChange:e=>l(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),v(`span`,{className:`text-[10px] font-medium text-foreground-subtle uppercase tracking-wide`,children:e.label})]})}if(e.type===`text`||e.type===`password`||e.type===`textarea`){let t=n.settings?.[e.key],i=typeof t==`string`?t:e.default??``,a=e.type===`password`?`password`:`text`;return c(`div`,{children:[v(`label`,{className:`block text-[10px] font-medium text-foreground-subtle uppercase tracking-wide mb-1.5`,children:e.label}),e.type===`textarea`?v(`textarea`,{value:i,disabled:r||e.disabled,placeholder:e.placeholder,onChange:e=>l(e.target.value),rows:3,className:`w-full rounded-lg border border-border bg-surface px-3 py-2 text-xs text-foreground focus:outline-none focus:border-primary/50 resize-y`}):v(`input`,{type:a,value:i,disabled:r||e.disabled,placeholder:e.placeholder,onChange:e=>l(e.target.value),className:`w-full rounded-lg border border-border bg-surface px-3 py-2 text-xs text-foreground focus:outline-none focus:border-primary/50`})]})}return e.type===`separator`?v(`div`,{className:`border-t border-border my-2`}):e.type===`info`?v(`div`,{className:`rounded-md border border-border bg-surface px-2 py-1.5 text-[10px] text-foreground-subtle`,children:e.content}):null}function mB(e){return e.type!==`separator`&&e.type!==`info`&&e.type!==`group`}function hB(e){return`bindsToModel`in e&&e.bindsToModel===!0?!0:`key`in e&&jee(e.key)}function gB(e){return e.flatMap(e=>{if(e.type===`group`){let t=gB(e.fields);return t.length>0?[{...e,fields:[...t]}]:[]}return hB(e)?[]:[e]})}function _B(e){return(e.type===`slider`||e.type===`number`)&&e.bindsToModel===!0}function vB(e,t){let n=`modelApplicability`in e?e.modelApplicability?.defaultByModel?.[t]:void 0;return n===void 0?{value:`default`in e?e.default:void 0,fromModel:!1}:{value:n,fromModel:!0}}function yB(e){return e.toFixed(2).replace(/\.?0+$/,``)}function bB(e,t){if(t==null)return`—`;if(typeof t==`boolean`)return t?`on`:`off`;if(typeof t==`number`){let n=e.type===`slider`?e.displayScale:void 0,r=`unit`in e&&typeof e.unit==`string`?` ${e.unit}`:``;return`${yB(n===void 0?t:t/n)}${r}`}let n=`options`in e&&Array.isArray(e.options)?e.options:[],r=e=>{let t=n.find(t=>t.value===e);return t?t.label:String(e)};return Array.isArray(t)?t.length===0?`none`:t.map(r).join(`, `):typeof t==`string`?r(t):JSON.stringify(t)}var xB={camera:`border-primary/40 bg-primary/10 text-primary`,node:`border-border bg-muted/40 text-foreground`,default:`border-border/60 text-foreground-subtle`};function SB(e){return`step-field-${e}`}function CB(e,t,n){return{addonId:e.id,addonName:e.name,slot:e.slot,inputClasses:[...e.inputClasses],outputClasses:[...e.outputClasses],enabled:!0,modelId:t,children:[],settings:{...n}}}var wB=[`camera`,`node`];function TB({field:e,layers:t,target:n,labels:r,boundKeys:i,modelId:a,pinned:o,disabled:s,onReset:l,action:u}){let d=q(),f=na(t),p=vB(e,a),m=p.fromModel?d(`uiLibrary.layeredSettings.modelDefault`,`model default`):d(`uiLibrary.layeredSettings.default`,`default`),h=ka(t,e.key,i),g=_B(e),_=g?Ja(f,e.key,a,p.value,p.value):null,y=_===null||_.source===`override`?h:`default`,b=y==="default"?m:r[y]??y,x=wB.filter(e=>e!==y&&r[e]!==void 0).filter(n=>t[n]?.[e.key]!==void 0).map(n=>{let i=g?t[n]?.[Zi(e.key)]:void 0,o=typeof i==`string`&&i!==a?d(`uiLibrary.layeredSettings.forModel`,` (for {{model}})`,{model:i}):``;return`${r[n]} ${bB(e,t[n]?.[e.key])}${o}`}),S=y==="default"?x:[...x,`${m} ${bB(e,p.value)}`],C=ka({[n]:t[n]},e.key,i)!=="default",w=wB.slice(wB.indexOf(n)+1).find(n=>r[n]!==void 0&&t[n]?.[e.key]!==void 0),T=w===void 0?m:r[w]??w,E=h==="default"?`default`:ka({...t,[h]:void 0},e.key,i),D=E==="default"?m:r[E]??E;return c(`div`,{className:`mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[10px]`,children:[v(`span`,{"data-testid":`setting-source`,className:$(`rounded border px-1.5 py-px font-medium`,xB[y]),children:b}),S.length>0&&v(`span`,{"data-testid":`setting-levels`,className:`text-foreground-subtle`,children:S.join(` · `)}),o&&v(`span`,{className:`rounded border border-warning/40 px-1.5 py-px text-warning`,title:d(`uiLibrary.layeredSettings.pinnedHint`,`Stored by an older editor as a copy of the value below. It changes nothing today, but it stops later changes below from reaching this camera.`),children:d(`uiLibrary.layeredSettings.pinned`,`pinned at the {{source}} value`,{source:D.toLowerCase()})}),c(`span`,{className:`ml-auto flex items-center gap-2`,children:[u,C&&v(`button`,{type:`button`,disabled:s,onClick:l,className:`rounded px-1 text-foreground-subtle hover:bg-muted hover:text-foreground disabled:opacity-50`,children:d(`uiLibrary.layeredSettings.resetTo`,`Reset to {{target}}`,{target:T.toLowerCase()})})]})]})}function EB({addon:e,fields:t,layers:n,target:r,labels:i,modelId:a,onChangeLayer:o,rootModel:s,pinnedKeys:l=[],fieldActions:u,headerActions:d,highlightKey:f=null,disabled:p=!1}){let m=q(),h=r===`camera`?gB(t):t,g=Ua(h),_=na(n),y=n[r],b=CB(e,a,_),x=Xz(e.id,_,s);return c(`div`,{className:`space-y-2 text-xs`,children:[c(`div`,{className:`flex flex-wrap items-center gap-2`,children:[v(`h3`,{className:Ut,children:m(`uiLibrary.layeredSettings.title`,`Settings`)}),v(`span`,{className:Ni,children:m(`uiLibrary.layeredSettings.editing`,`editing: {{target}}`,{target:i[r]??r})}),c(`span`,{className:`ml-auto flex flex-wrap items-center gap-3`,children:[d,v(aB,{fields:h,modelId:a,settings:y,disabled:p,onReset:e=>o(e)})]})]}),x!==null&&v(eB,{stepId:e.id,settings:_,rootModel:s,disabled:p,onChange:e=>o(xa(y,`useRootModel`,Zz(_,e),[]))}),h.map(e=>{if(!mB(e))return v(fB,{field:e,allFields:h,step:b,disabled:p,onChange:()=>{}},e.key);let t=f===e.key;return c(`div`,{id:SB(e.key),"data-field-key":e.key,className:$(`rounded-md border border-transparent px-2 py-1 -mx-2`,t&&`border-primary/50 bg-primary/5`),children:[v(fB,{field:e,allFields:h,step:b,disabled:p,hideModelBoundSourceRow:!0,onChange:t=>o(xa(y,e.key,t.settings??{},g))}),v(TB,{field:e,layers:n,target:r,labels:i,boundKeys:g,modelId:a,pinned:l.includes(e.key),disabled:p,onReset:()=>o(da(y,e.key,g)),action:u?.(e.key,ka(n,e.key,g))})]},e.key)})]})}E();function DB(e){let t=new Set(Wi(e.id).map(e=>e.key));return(e.configSchema??[]).filter(e=>!t.has(e.key))}function OB(e,t,n,r){return r!==void 0&&Xz(e.id,n,r)?.effective?r.modelId:t??e.defaultModelId}function kB({addonId:e}){let t=q();return Wi(e).length===0?null:v(`p`,{className:`text-[10px] leading-snug text-foreground-subtle`,children:t(`uiLibrary.agentStepEditor.clusterHint`,`Admission knobs for this step live in Pipeline → Cluster → Settings → Enrichment models. They apply to every camera — a per-device copy would fill the shared index from two policies.`)})}function AB({rootModel:e,stepModelId:t}){return v(`div`,{className:`rounded bg-primary/10 px-3 py-2 text-[11px] text-foreground-subtle`,"data-testid":`root-supplied-model`,children:v(hi,{uiKey:`uiLibrary.agentStepEditor.rootSupplied`,fallback:`<0>Model: {{name}}</0> (the root model). This step's own model{{stepModel}} is kept and runs again whenever the root model cannot supply the step.`,components:[v(`span`,{className:`font-semibold text-foreground`},`m`)],values:{name:e.name,stepModel:t===void 0?``:` (${t})`}})})}function jB({addon:e,agentDefault:t,onChangeAgentConfig:n,engineFormat:r,effectiveModelId:i,rootModel:a}){let o=q(),s=p(()=>qz(e.models,r),[e.models,r]),l=e=>{n?.({...t,...e})},u=DB(e),d=e.defaultModelIdByFormat?.[r]??e.defaultModelId,f=t.settings??{},m=Xz(e.id,f,a)?.effective===!0,h=t.modelId??i;return c(`div`,{className:`space-y-4 text-xs`,children:[m&&a!==void 0?v(AB,{rootModel:a,stepModelId:h}):c(`div`,{children:[v(`div`,{className:`text-[10px] uppercase tracking-widest text-foreground-subtle mb-1`,children:o(`uiLibrary.agentStepEditor.model`,`Model`)}),v(Wz,{models:s,value:h??``,defaultModelId:d,onChange:e=>l({modelId:e})})]}),(u.length>0||Xz(e.id,f,a))&&v(`div`,{className:`pt-2 border-t border-border/50`,children:v(EB,{addon:e,fields:u,layers:{node:f},target:`node`,labels:{node:`This node`},modelId:OB(e,h,f,a),...a===void 0?{}:{rootModel:a},onChangeLayer:e=>l({settings:e})})}),v(kB,{addonId:e.id})]})}E();var MB=D(({className:e,...t},n)=>v(`label`,{ref:n,className:$(`text-[10px] uppercase tracking-wider text-foreground-muted font-medium`,e),...t}));MB.displayName=`Label`,E();var NB=kl(``,{variants:{orientation:{horizontal:`h-px w-full bg-border-subtle`,vertical:`w-px h-full bg-border-subtle`}},defaultVariants:{orientation:`horizontal`}}),PB=D(({className:e,orientation:t,...n},r)=>v(`div`,{ref:r,role:`separator`,"aria-orientation":t??`horizontal`,className:$(NB({orientation:t}),e),...n}));PB.displayName=`Separator`,E();var FB=D(({className:e,...t},n)=>v(`input`,{ref:n,type:`checkbox`,className:$(`w-3.5 h-3.5 rounded-sm border border-border accent-primary`,e),...t}));FB.displayName=`Checkbox`,E();var IB=D(({className:e,checked:t,onCheckedChange:n,label:r,...i},a)=>c(`button`,{ref:a,role:`switch`,"aria-checked":t,type:`button`,onClick:()=>n(!t),className:$(`inline-flex items-center gap-2`,e),...i,children:[v(`span`,{className:$(`w-8 h-4 rounded-full transition-colors`,t?`bg-primary`:`bg-surface-hover`),children:v(`span`,{className:$(`block w-3.5 h-3.5 rounded-full bg-white transition-transform`,t?`translate-x-4`:`translate-x-0.5`)})}),r&&v(`span`,{className:`text-xs text-foreground`,children:r})]}));IB.displayName=`Switch`,E();function LB(e){let{scrollLeft:t,scrollWidth:n,clientWidth:r}=e,i=n>r+1;return{overflowLeft:i&&t>1,overflowRight:i&&t+r<n-1}}function RB(e){typeof e.scrollIntoView==`function`&&e.scrollIntoView({inline:`nearest`,block:`nearest`})}function zB(e,t){let n=e.querySelectorAll(`[role="tab"]`);if(n.length===0)return;let r=e.scrollLeft;if(t===`right`){for(let e of n)if(e.offsetLeft+e.offsetWidth>r+1){RB(e);return}return}for(let e=n.length-1;e>=0;e--){let t=n[e];if(t!==void 0&&t.offsetLeft<r-1){RB(t);return}}}function BB(e){let t=e.querySelector(`[role="tab"][aria-selected="true"]`);t!==null&&typeof t.scrollIntoView==`function`&&t.scrollIntoView({inline:`nearest`,block:`nearest`})}function VB({activeTabKey:e,listClassName:t,className:n,children:r,...i}){let a=f(null),[o,s]=C({overflowLeft:!1,overflowRight:!1}),[l,u]=C(!1),d=_(()=>{let e=a.current;e!==null&&s(LB(e))},[]);b(()=>{d();let e=a.current;if(e===null)return;e.addEventListener(`scroll`,d,{passive:!0});let t=typeof ResizeObserver<`u`?new ResizeObserver(d):null;t?.observe(e);for(let n of e.children)t?.observe(n);return()=>{e.removeEventListener(`scroll`,d),t?.disconnect()}},[d,r]),b(()=>{if(typeof window>`u`||typeof window.matchMedia!=`function`)return;let e=window.matchMedia(`(hover: hover) and (pointer: fine)`),t=()=>{u(e.matches)};return t(),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]),b(()=>{let t=a.current;t===null||e===void 0||(BB(t),d())},[e,d]);let p=e=>{let t=a.current;t!==null&&zB(t,e)};return c(`div`,{className:$(`relative min-w-0`,n),"data-tab-strip-overflow-left":o.overflowLeft?``:void 0,"data-tab-strip-overflow-right":o.overflowRight?``:void 0,children:[o.overflowLeft&&v(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-y-0 left-0 z-[1] w-8 bg-gradient-to-r from-background to-transparent`}),o.overflowRight&&v(`div`,{"aria-hidden":!0,className:`pointer-events-none absolute inset-y-0 right-0 z-[1] w-8 bg-gradient-to-l from-background to-transparent`}),l&&o.overflowLeft&&v(jl,{type:`button`,variant:`ghost`,size:`sm`,icon:ge,"aria-label":`Scroll tabs left`,className:`absolute left-0 top-1/2 z-[2] -translate-y-1/2 bg-background/80 shadow-sm`,onClick:()=>p(`left`)}),l&&o.overflowRight&&v(jl,{type:`button`,variant:`ghost`,size:`sm`,icon:It,"aria-label":`Scroll tabs right`,className:`absolute right-0 top-1/2 z-[2] -translate-y-1/2 bg-background/80 shadow-sm`,onClick:()=>p(`right`)}),v(`div`,{ref:a,role:`tablist`,className:t,...i,children:r})]})}E();var HB=O(null);function UB(){let e=I(HB);if(!e)throw Error(`Tabs compound components must be used within <Tabs>`);return e}function WB({value:e,onValueChange:t,defaultValue:n=``,appearance:r=`underline`,className:i,...a}){let[o,s]=C(n),c=e??o,l=_(n=>{t?.(n),e===void 0&&s(n)},[e,t]);return v(HB.Provider,{value:{value:c,setValue:l,appearance:r},children:v(`div`,{className:i,...a})})}function GB({className:e,...t}){let{appearance:n,value:r}=UB();return v(VB,{activeTabKey:r,listClassName:$(`flex flex-row overflow-x-auto overflow-y-hidden`,n===`pills`?`gap-1 border-b border-border-subtle py-1`:`border-b border-border-subtle`,e),...t})}var KB=D(function({value:e,className:t,...n},r){let{value:i,setValue:a,appearance:o}=UB(),s=e===i;return v(`button`,{ref:r,type:`button`,role:`tab`,"aria-selected":s,"aria-controls":`tabpanel-${e}`,tabIndex:s?0:-1,className:$(`inline-flex h-7 shrink-0 items-center justify-center gap-1.5 whitespace-nowrap text-xs px-3 transition-colors`,o===`pills`?s?`rounded-md bg-primary/10 font-medium text-primary`:`rounded-md text-foreground-muted hover:bg-surface-hover hover:text-foreground`:s?`border-b-2 border-primary text-foreground font-medium`:`text-foreground-muted hover:text-foreground`,t),onClick:()=>a(e),...n})});function qB({value:e,className:t,...n}){let{value:r}=UB();return e===r?v(`div`,{role:`tabpanel`,id:`tabpanel-${e}`,className:$(`pt-3`,t),...n}):null}E();var JB=D(({className:e,...t},n)=>v(`div`,{ref:n,className:$(`overflow-auto [&::-webkit-scrollbar]:w-1 [&::-webkit-scrollbar-track]:bg-transparent [&::-webkit-scrollbar-thumb]:bg-surface-hover [&::-webkit-scrollbar-thumb]:rounded-full`,e),...t}));JB.displayName=`ScrollArea`,E();function YB({title:e,icon:t,position:n,onPositionChange:r,size:i,onSizeChange:a,onClose:o,children:s,defaultWidth:l=360,defaultHeight:u=280,minWidth:d=280,minHeight:p=160,offsetIndex:m=0,className:h}){let g=q(),[y,x]=C({x:80+m*30,y:80+m*30}),[S,w]=C({w:l,h:u}),T=n??y,E=i??S,D=f({size:E,onPositionChange:r,onSizeChange:a});D.current={size:E,onPositionChange:r,onSizeChange:a};let[O,k]=C(!1),A=f(!1),j=f(!1),M=f({x:0,y:0}),N=il(),P=_(e=>{e.preventDefault(),A.current=!0,M.current={x:e.clientX-T.x,y:e.clientY-T.y}},[T]),F=_(e=>{e.preventDefault(),e.stopPropagation(),j.current=!0,M.current={x:e.clientX,y:e.clientY}},[]);return b(()=>{let e=e=>{if(A.current){let t={x:e.clientX-M.current.x,y:e.clientY-M.current.y};x(t),D.current.onPositionChange?.(t)}if(j.current){let t=e.clientX-M.current.x,n=e.clientY-M.current.y;M.current={x:e.clientX,y:e.clientY};let r=D.current.size,i={w:Math.max(d,r.w+t),h:Math.max(p,r.h+n)};D.current={...D.current,size:i},w(i),D.current.onSizeChange?.(i)}},t=()=>{A.current=!1,j.current=!1};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[d,p]),N?c(`div`,{className:$(`fixed inset-x-0 bottom-0 z-50 rounded-t-xl border-t border-border bg-background-elevated shadow-2xl flex flex-col overflow-hidden pb-[env(safe-area-inset-bottom)]`,h),style:{maxHeight:`60dvh`},children:[c(`div`,{className:`flex items-center justify-between gap-2 px-3 py-2 border-b border-border shrink-0 bg-surface`,children:[c(`div`,{className:`flex items-center gap-2 min-w-0`,children:[t&&v(t,{size:12,className:`text-primary shrink-0`}),v(`span`,{className:`text-[11px] font-medium truncate`,children:e})]}),c(`div`,{className:`flex items-center gap-1 shrink-0`,children:[v(`button`,{onClick:()=>k(!O),className:`p-0.5 rounded hover:bg-surface-hover text-foreground-muted transition-colors`,children:v(O?Rr:fi,{size:12})}),v(`button`,{onClick:o,className:`p-0.5 rounded hover:bg-danger/20 text-foreground-muted hover:text-danger transition-colors`,children:v(Yn,{size:12})})]})]}),!O&&v(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:s})]}):c(`div`,{className:$(`fixed z-50 rounded-lg border border-border bg-background-elevated shadow-2xl flex flex-col overflow-hidden`,h),style:{left:T.x,top:T.y,width:O?280:E.w,height:O?`auto`:E.h},children:[c(`div`,{onMouseDown:P,className:`flex items-center justify-between gap-2 px-3 py-2 border-b border-border cursor-move select-none shrink-0 bg-surface`,children:[c(`div`,{className:`flex items-center gap-2 min-w-0`,children:[v(ur,{size:12,className:`text-foreground-subtle shrink-0`}),t&&v(t,{size:12,className:`text-primary shrink-0`}),v(`span`,{className:`text-[11px] font-medium truncate`,children:e})]}),c(`div`,{className:`flex items-center gap-1 shrink-0`,children:[v(`button`,{onClick:()=>k(!O),className:`p-0.5 rounded hover:bg-surface-hover text-foreground-muted transition-colors`,title:O?g(`uiLibrary.floatingPanel.restore`,`Restore`):g(`uiLibrary.floatingPanel.minimize`,`Minimize`),children:v(O?Rr:fi,{size:12})}),v(`button`,{onClick:o,className:`p-0.5 rounded hover:bg-danger/20 text-foreground-muted hover:text-danger transition-colors`,title:g(`uiLibrary.floatingPanel.close`,`Close`),children:v(Yn,{size:12})})]})]}),!O&&c(`div`,{className:`flex-1 min-h-0 overflow-y-auto relative`,children:[s,v(`div`,{onMouseDown:F,className:`absolute bottom-0 right-0 w-4 h-4 cursor-nwse-resize`,style:{background:`linear-gradient(135deg, transparent 50%, var(--color-foreground-subtle) 50%)`,opacity:.4}})]})]})}E();function XB({open:e,onClose:t,children:n,className:r,width:i=`w-64`}){let a=f(null);return b(()=>{if(!e)return;let n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,n),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,n),document.body.style.overflow=``}},[e,t]),c(P,{children:[v(`div`,{className:$(`fixed inset-0 z-40 bg-black/50 backdrop-blur-sm transition-opacity duration-200`,e?`opacity-100`:`pointer-events-none opacity-0`),onClick:t,"aria-hidden":`true`}),v(`div`,{ref:a,role:`dialog`,"aria-modal":`true`,className:$(`fixed inset-y-0 left-0 z-50 flex flex-col bg-surface border-r border-border shadow-2xl transition-transform duration-200 ease-out pt-[env(safe-area-inset-top)] pb-[env(safe-area-inset-bottom)]`,i,e?`translate-x-0`:`-translate-x-full`,r),children:n})]})}function ZB({label:e,icon:t,href:n,badge:r,active:i=!1,className:a}){return c(`a`,{href:n,className:$(`flex items-center gap-2 h-7 px-2 text-[11px] transition-colors`,i?`border-l-2 border-primary bg-primary/[0.08] text-foreground rounded-r-md`:`text-foreground-subtle hover:bg-surface-hover rounded-md`,a),children:[v(t,{className:`h-3.5 w-3.5 shrink-0`}),v(`span`,{className:`truncate flex-1`,children:e}),r!==void 0&&v(zk,{className:`ml-auto text-[10px] px-1.5 py-0`,children:r})]})}function QB({logo:e,sections:t,footer:n,onNavigate:r,className:i}){return c(`nav`,{className:$(`bg-surface border-r border-border h-full flex flex-col`,i),children:[e&&v(`div`,{className:`px-3 py-2 shrink-0`,children:e}),v(`div`,{className:`flex-1 overflow-auto px-1 py-1`,children:t.map((e,t)=>c(`div`,{className:$(t>0?`mt-3`:``),children:[e.label&&v(`span`,{className:`text-[10px] text-foreground-disabled uppercase tracking-wider px-2 mb-1 block`,children:e.label}),v(`div`,{className:`flex flex-col gap-0.5`,onClick:r,children:e.items.map(e=>v(ZB,{...e},e.href))})]},t))}),n&&n.length>0&&c(`div`,{className:`shrink-0 px-1 pb-1`,children:[v(PB,{className:`mb-1`}),v(`div`,{className:`flex flex-col gap-0.5`,onClick:r,children:n.map(e=>v(ZB,{...e},e.href))})]})]})}E();function $B({sidebar:e,header:t,mobileLogo:n,mobileActions:r,children:i,className:a}){let o=q(),s=il(),[l,u]=C(!1);return c(`div`,{className:$(`flex h-screen`,a),children:[!s&&v(QB,{...e,className:$(`w-44`,e.className)}),s&&v(XB,{open:l,onClose:()=>u(!1),width:`w-64`,children:v(QB,{...e,onNavigate:()=>u(!1),className:`w-full border-r-0`})}),c(`div`,{className:`flex flex-1 flex-col min-w-0`,children:[s&&c(`header`,{className:`flex items-center h-12 border-b border-border px-3 shrink-0 bg-surface/80 backdrop-blur-sm`,children:[v(`button`,{onClick:()=>u(!0),className:`p-1.5 -ml-1.5 rounded-md hover:bg-surface-hover text-foreground-muted transition-colors`,"aria-label":o(`uiLibrary.appShell.openMenu`,`Open menu`),children:v(ar,{className:`h-5 w-5`})}),n&&v(`div`,{className:`flex-1 flex justify-center`,children:n}),r&&v(`div`,{className:`shrink-0`,children:r})]}),!s&&t&&c(`header`,{className:`flex items-center h-10 border-b border-border px-4 shrink-0`,children:[t.breadcrumbs&&t.breadcrumbs.length>0&&v(`nav`,{className:`flex items-center gap-1 text-xs flex-1 min-w-0`,children:t.breadcrumbs.map((e,n)=>{let r=n===t.breadcrumbs.length-1;return c(`span`,{className:`flex items-center gap-1`,children:[n>0&&v(It,{className:`h-3 w-3 text-foreground-subtle shrink-0`}),e.href&&!r?v(`a`,{href:e.href,className:`text-foreground-subtle hover:text-foreground transition-colors truncate`,children:e.label}):v(`span`,{className:`text-foreground truncate`,children:e.label})]},n)})}),t.actions&&v(`div`,{className:`flex items-center gap-2 ml-auto shrink-0`,children:t.actions})]}),v(`main`,{className:`flex-1 overflow-auto p-4`,children:i})]})]})}function eV(e){return e>=.8?`bg-emerald-500`:e>=.5?`bg-amber-500`:e>=.3?`bg-orange-500`:`bg-zinc-500`}function tV(e){return e>=.8?`text-emerald-400`:e>=.5?`text-amber-400`:e>=.3?`text-orange-400`:`text-zinc-400`}function nV({classifications:e,processing:t=!1,inferenceMs:n,maxItems:r=10,className:i=``}){let a=q(),o=e.slice(0,r),s=o.length>0?o[0].score:1;return t?v(`div`,{className:`rounded-xl border border-border bg-surface p-4 text-center ${i}`,children:v(`div`,{className:`text-sm text-foreground-subtle animate-pulse`,children:a(`uiLibrary.audioClassificationList.processing`,`Classifying audio...`)})}):o.length===0?v(`div`,{className:`rounded-xl border border-border bg-surface p-4 text-center ${i}`,children:v(`div`,{className:`text-xs text-foreground-subtle`,children:a(`uiLibrary.audioClassificationList.empty`,`No classifications yet`)})}):c(`div`,{className:`rounded-xl border border-border bg-surface overflow-hidden ${i}`,children:[c(`div`,{className:`px-3 py-2 border-b border-border flex items-center justify-between`,children:[v(`h3`,{className:`text-xs font-medium text-foreground`,children:a(`uiLibrary.audioClassificationList.title`,`Audio Classifications`)}),c(`div`,{className:`flex items-center gap-3 text-[10px] text-foreground-subtle`,children:[o.length<e.length&&v(`span`,{children:a(`uiLibrary.audioClassificationList.showing`,`showing {{shown}} of {{total}}`,{shown:o.length,total:e.length})}),n!==void 0&&c(`span`,{className:`font-mono`,children:[n.toFixed(1),`ms`]})]})]}),v(`div`,{className:`divide-y divide-border/50`,children:o.map((e,t)=>{let n=s>0?e.score/s*100:0;return c(`div`,{className:`px-3 py-1.5 flex items-center gap-3 hover:bg-surface-hover/30`,children:[v(`span`,{className:`text-[10px] text-foreground-subtle w-5 text-right font-mono`,children:t+1}),v(`span`,{className:`text-xs font-medium text-foreground min-w-[120px]`,children:e.className}),v(`div`,{className:`flex-1 h-2 rounded-full bg-zinc-800 overflow-hidden`,children:v(`div`,{className:`h-full rounded-full transition-all duration-300 ${eV(e.score)}`,style:{width:`${n}%`}})}),c(`span`,{className:`text-xs font-mono font-semibold w-14 text-right ${tV(e.score)}`,children:[(e.score*100).toFixed(1),`%`]})]},`${e.className}-${t}`)})})]})}E();function rV({currentDbfs:e,durationSec:t=30,maxSamples:n=120,height:r=64,className:i=``,color:a=`#10b981`,clipColor:o=`#ef4444`,clipThreshold:s=-6,minDbfs:l=-96}){let u=q(),d=f(null),p=f(null),[m,h]=C([]);b(()=>{e!==null&&h(t=>{let r=[...t,{dbfs:e,timestamp:Date.now()}];return r.length>n?r.slice(-n):r})},[e,n]);let g=_(()=>{let e=d.current,n=p.current;if(!e||!n)return;let i=n.clientWidth;if(i===0)return;let c=window.devicePixelRatio||1;e.width=i*c,e.height=r*c,e.style.width=`${i}px`,e.style.height=`${r}px`;let u=e.getContext(`2d`);if(!u||(u.scale(c,c),u.clearRect(0,0,i,r),m.length===0))return;let f=m[m.length-1].timestamp,h=t*1e3,g=f-h,_=m.filter(e=>e.timestamp>=g);if(_.length===0)return;let v=Math.max(1,Math.floor(i/(t*2))),y=Math.abs(l);for(let e of _){let t=e.timestamp-g,n=Math.floor(t/h*i),c=(Math.max(l,Math.min(0,e.dbfs))-l)/y,d=Math.max(1,c*r);u.fillStyle=e.dbfs>=s?o:a,u.globalAlpha=.8,u.fillRect(n,r-d,v,d)}u.globalAlpha=1;let b=r-(s-l)/y*r;u.strokeStyle=o,u.globalAlpha=.25,u.lineWidth=1,u.setLineDash([4,4]),u.beginPath(),u.moveTo(0,b),u.lineTo(i,b),u.stroke(),u.setLineDash([]),u.globalAlpha=1},[m,t,r,a,o,s,l]);b(()=>{g()},[g]),b(()=>{let e=new ResizeObserver(()=>g()),t=p.current;return t&&e.observe(t),()=>e.disconnect()},[g]);let y=m.length>0?m[m.length-1].dbfs:null;return c(`div`,{ref:p,className:`relative ${i}`,children:[v(`canvas`,{ref:d,className:`w-full rounded-md`}),c(`div`,{className:`absolute top-1 left-2 text-[9px] text-foreground-subtle/50 font-mono`,children:[t,`s`]}),y!==null&&v(`div`,{className:`absolute bottom-1 right-2 text-[9px] text-foreground-subtle/50 font-mono`,children:u(`uiLibrary.audioLevelWaveform.readout`,{one:`{{dbfs}} dBFS · {{count}} sample`,other:`{{dbfs}} dBFS · {{count}} samples`},{dbfs:y.toFixed(1),count:m.length})})]})}E();function iV({samples:e,sampleRate:t=16e3,height:n=96,className:r=``,color:i=`#3b82f6`,bgColor:a=`transparent`}){let o=q(),s=f(null),l=f(null),u=_(()=>{let t=s.current,r=l.current;if(!t||!r||!e||e.length===0)return;let o=r.clientWidth;if(o===0)return;let c=window.devicePixelRatio||1;t.width=o*c,t.height=n*c,t.style.width=`${o}px`,t.style.height=`${n}px`;let u=t.getContext(`2d`);if(!u)return;u.scale(c,c),a===`transparent`?u.clearRect(0,0,o,n):(u.fillStyle=a,u.fillRect(0,0,o,n));let d=e.length/o,f=n/2;u.fillStyle=i,u.globalAlpha=.7;for(let t=0;t<o;t++){let n=Math.floor(t*d),r=Math.min(Math.floor((t+1)*d),e.length),i=0,a=0;for(let t=n;t<r;t++){let n=e[t];n<i&&(i=n),n>a&&(a=n)}let o=f-a*f,s=f-i*f,c=Math.max(1,s-o);u.fillRect(t,o,1,c)}u.globalAlpha=1,u.strokeStyle=i,u.globalAlpha=.2,u.lineWidth=1,u.beginPath(),u.moveTo(0,f),u.lineTo(o,f),u.stroke(),u.globalAlpha=1},[e,n,i,a]);b(()=>{u()},[u]),b(()=>{let e=new ResizeObserver(()=>u()),t=l.current;return t&&e.observe(t),()=>e.disconnect()},[u]);let d=((e&&t?Math.round(e.length/t*1e3):0)/1e3).toFixed(1);return c(`div`,{ref:l,className:`relative ${r}`,children:[v(`canvas`,{ref:s,className:`w-full rounded-md`}),e&&e.length>0&&v(`div`,{className:`absolute bottom-1 right-2 text-[10px] text-foreground-subtle/60 font-mono`,children:o(`uiLibrary.audioWaveform.summary`,`{{duration}}s · {{rate}}kHz · {{samples}} samples`,{duration:d,rate:t/1e3,samples:e.length.toLocaleString()})})]})}var aV=`uiLibrary.batteryBadge.low`,oV=`uiLibrary.batteryBadge.normal`;function sV(e){return e<50}function cV(e){return e<=10?Ke:e<=30?Ve:e<=70?Kr:on}function lV(e){return e===`dc`||e===`solar`}function uV(e,t){return lV(t)?`text-emerald-400`:e<=10?`text-rose-400`:e<=30?`text-amber-400`:`text-foreground-subtle`}function dV({status:e,variant:t=`compact`,className:n}){let r=q();if(!e)return null;let{level:i,charging:a,sleeping:o,binary:s}=e;if(i===null)return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium text-foreground-subtle`,n),title:r(`uiLibrary.batteryBadge.titleUnknown`,`Battery: unknown`),children:[v(Ee,{className:`h-3.5 w-3.5`}),v(`span`,{children:r(`uiLibrary.batteryBadge.unknown`,`Unknown`)})]});if(s===!0){let e=sV(i),t=e?Ke:on;return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium`,e?`text-rose-400`:`text-foreground-subtle`,n),title:e?r(`uiLibrary.batteryBadge.titleLow`,`Battery: low`):r(`uiLibrary.batteryBadge.titleNormal`,`Battery: normal`),children:[v(t,{className:`h-3.5 w-3.5`}),v(`span`,{children:e?r(aV,`Low`):r(oV,`Normal`)})]})}let l=cV(i),u=uV(i,a),d=a===`solar`?wt:a===`dc`?_t:null,f=o;return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium`,u,n),title:[r(`uiLibrary.batteryBadge.titlePercent`,`Battery: {{percent}}%`,{percent:Math.round(i)}),lV(a)?r(`uiLibrary.batteryBadge.charging`,`charging ({{source}})`,{source:a}):null,o?r(`uiLibrary.batteryBadge.sleeping`,`sleeping`):null].filter(e=>e!==null).join(` · `),children:[v(l,{className:`h-3.5 w-3.5`}),c(`span`,{children:[Math.round(i),`%`]}),d&&v(d,{className:`h-3 w-3`}),f&&v(St,{className:`h-3 w-3 text-blue-300`}),t===`full`&&lV(a)&&v(`span`,{className:`text-foreground-subtle`,children:a})]})}function fV(e){if(e===null)return;let t=e.trim();return t===``?void 0:t}function pV(e,t){if(e===null||!Number.isFinite(e)||e<=0)return null;let n=t-e;if(n<=0)return null;let r=Math.floor(n/6e4);return r<60?{minutes:Math.max(1,r)}:{hours:Math.floor(r/60)}}function mV(e,t,n,r){let i=fV(n);if(e===null)return{key:`unknown`};if(e===!1)return i===void 0?{key:`idle`}:{key:`idle`,phase:i};let a=pV(t,r);return a===null?i===void 0?{key:`running`}:{key:`running`,phase:i}:{key:`running`,duration:a,...i===void 0?{}:{phase:i}}}function hV({running:e,children:t,className:n}){let r=q();return e===null?v(`span`,{"data-running":`unknown`,className:$(`inline-flex shrink-0`,n),children:t}):e===!0?c(`span`,{"data-running":`running`,className:$(`relative inline-flex shrink-0 rounded-full p-0.5`,n),"aria-label":r(`uiLibrary.runningBadge.running`,`Running`),children:[v(`span`,{className:`pointer-events-none absolute inset-0 rounded-full border border-primary animate-pulse`,"aria-hidden":!0}),t]}):c(`span`,{"data-running":`idle`,className:$(`relative inline-flex shrink-0`,n),"aria-label":r(`uiLibrary.runningBadge.idle`,`Idle`),children:[t,v(`span`,{className:`pointer-events-none absolute -bottom-px -right-px h-1.5 w-1.5 rounded-full bg-foreground-subtle`,"aria-hidden":!0})]})}function gV({running:e,since:t,phase:n,className:r,now:i=Date.now()}){let a=q(),o=mV(e,t,n,i);if(o.key===`unknown`||e!==!0&&e!==!1)return null;if(o.key===`idle`){let e=a(`uiLibrary.runningStatus.idle`,`Idle`),t=o.phase===void 0?e:a(`uiLibrary.runningStatus.withPhase`,`{{state}} · {{phase}}`,{state:e,phase:o.phase});return v(`p`,{className:$(`text-[11px] text-foreground-muted`,r),children:t})}let s;s=o.duration===void 0?a(`uiLibrary.runningStatus.running`,`Running`):`minutes`in o.duration?a(`uiLibrary.runningStatus.runningForMinutes`,`Running for {{count}} min`,{count:o.duration.minutes}):a(`uiLibrary.runningStatus.runningForHours`,`Running for {{count}} h`,{count:o.duration.hours});let c=o.phase===void 0?s:a(`uiLibrary.runningStatus.withPhase`,`{{state}} · {{phase}}`,{state:s,phase:o.phase});return v(`p`,{className:$(`text-[11px] text-foreground-muted`,r),children:c})}function _V(e){return e===null?An:e<=20?hee:e<=50?le:e<=80?pee:An}function vV(e){return e===null?`text-foreground-subtle`:e<=20?`text-rose-400`:e<=50?`text-amber-400`:`text-foreground-subtle`}function yV({status:e,className:t}){let n=q();if(!e||e.type===`unknown`)return null;if(e.type===`ethernet`)return v(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium text-foreground-subtle`,t),title:n(`uiLibrary.networkLinkBadge.ethernet`,`Network: ethernet`),children:v(gt,{className:`h-3.5 w-3.5`})});let r=e.type===`cellular`?ft:_V(e.signal),i=e.signal===null?null:Math.round(e.signal),a=e.ssid?n(`uiLibrary.networkLinkBadge.typeSsid`,`Network: {{type}} ({{ssid}})`,{type:e.type,ssid:e.ssid}):n(`uiLibrary.networkLinkBadge.type`,`Network: {{type}}`,{type:e.type}),o=i===null?a:`${a} · ${n(`uiLibrary.networkLinkBadge.signal`,`signal {{percent}}%`,{percent:i})}`;return c(`span`,{className:$(`inline-flex items-center gap-1 text-[10px] font-medium`,vV(e.signal),t),title:o,children:[v(r,{className:`h-3.5 w-3.5`}),i!==null&&c(`span`,{children:[i,`%`]})]})}var bV={"node-a":`bg-node-a`,"node-b":`bg-node-b`,"node-c":`bg-node-c`,"node-d":`bg-node-d`,"node-e":`bg-node-e`,"node-f":`bg-node-f`,"node-g":`bg-node-g`,"node-h":`bg-node-h`},xV={"node-a":`text-node-a`,"node-b":`text-node-b`,"node-c":`text-node-c`,"node-d":`text-node-d`,"node-e":`text-node-e`,"node-f":`text-node-f`,"node-g":`text-node-g`,"node-h":`text-node-h`},SV={"node-a":`bg-node-a/15`,"node-b":`bg-node-b/15`,"node-c":`bg-node-c/15`,"node-d":`bg-node-d/15`,"node-e":`bg-node-e/15`,"node-f":`bg-node-f/15`,"node-g":`bg-node-g/15`,"node-h":`bg-node-h/15`};function CV(e){return bV[e]}function wV(e){return xV[e]}function TV(e){return SV[e]}function EV(e){for(let[t,n]of Object.entries(e))if(t===`color`)return n}function DV(e){let t=new Map;for(let n of e??[]){let e=Tee.safeParse(EV(n.settings));t.set(n.nodeId,e.success?e.data:Vi(n.nodeId))}return t}function OV(e,t){return e.get(t)??Vi(t)}var kV={detection:`bg-info/12 text-info ring-info/35`,decode:`bg-warning/12 text-warning ring-warning/35`,audio:`bg-success/12 text-success ring-success/35`},AV={detection:`bg-info/22 text-info ring-info/55`,decode:`bg-warning/22 text-warning ring-warning/55`,audio:`bg-success/22 text-success ring-success/55`},jV={"node-a":`bg-node-a/12`,"node-b":`bg-node-b/12`,"node-c":`bg-node-c/12`,"node-d":`bg-node-d/12`,"node-e":`bg-node-e/12`,"node-f":`bg-node-f/12`,"node-g":`bg-node-g/12`,"node-h":`bg-node-h/12`},MV={"node-a":`bg-node-a/22`,"node-b":`bg-node-b/22`,"node-c":`bg-node-c/22`,"node-d":`bg-node-d/22`,"node-e":`bg-node-e/22`,"node-f":`bg-node-f/22`,"node-g":`bg-node-g/22`,"node-h":`bg-node-h/22`},NV={"node-a":`ring-node-a/45`,"node-b":`ring-node-b/45`,"node-c":`ring-node-c/45`,"node-d":`ring-node-d/45`,"node-e":`ring-node-e/45`,"node-f":`ring-node-f/45`,"node-g":`ring-node-g/45`,"node-h":`ring-node-h/45`};function PV({roleLabel:e,roleId:t,nodeName:n,colorId:r,emphasized:i=!1,pinned:a=!1,onSelect:o,disabled:s=!1,trailing:l}){let u=q(),d=e===void 0?n:a?`${e} pinned on ${n}`:`${e} on ${n}`,f=e!==void 0&&t!==void 0,p=$(`inline-flex max-w-full items-center gap-1 rounded-full px-2 py-0.5 text-[10px] leading-tight ring-1 ring-inset`,f?i?$(`role-node-pill-emphasized font-semibold ring-2`,AV[t]):$(`font-medium`,kV[t]):i?$(`role-node-pill-emphasized font-semibold ring-2`,MV[r],NV[r],wV(r)):$(`font-medium text-foreground-muted ring-border/60`,jV[r]),o!==void 0&&!s&&`cursor-pointer transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40`,s&&`cursor-not-allowed opacity-50`),m=v(`span`,{className:$(`h-1.5 w-1.5 shrink-0 rounded-full`,CV(r)),"aria-hidden":!0}),h=e===void 0?c(P,{children:[m,v(`span`,{className:$(`min-w-0 truncate font-medium`,i?wV(r):`text-foreground`),children:n}),l]}):c(P,{children:[a&&v(_ee,{className:`h-2.5 w-2.5 shrink-0 opacity-80`,"aria-label":u(`uiLibrary.roleNodePill.pinned`,`pinned`)}),v(`span`,{className:`shrink-0`,children:e}),v(`span`,{className:$(`min-w-0 truncate`,f?`opacity-80`:i?wV(r):`text-foreground-subtle`),children:n}),m]});return o===void 0?v(`span`,{"data-testid":`role-node-pill`,"data-role":t,title:d,className:p,children:h}):v(`button`,{type:`button`,role:`tab`,"aria-selected":i,"data-testid":`role-node-pill`,"data-role":t,title:d,disabled:s,onClick:o,className:p,children:h})}E();function FV({items:e,className:t}){return v(`nav`,{className:`hidden md:flex items-center gap-1 text-[11px] text-foreground-subtle ${t??``}`,children:e.map((t,n)=>{let r=n===e.length-1,i=!r&&(t.onClick||t.href);return c(l.Fragment,{children:[n>0&&v(It,{className:`h-3 w-3 flex-shrink-0`}),i?t.onClick?v(`button`,{type:`button`,onClick:t.onClick,className:`hover:text-foreground transition-colors`,children:t.label}):v(`a`,{href:t.href,className:`hover:text-foreground transition-colors`,children:t.label}):v(`span`,{className:r?`text-foreground font-medium`:``,children:t.label})]},n)})})}var IV={baseDelayMs:1500,maxDelayMs:15e3,maxAttempts:40};function LV(e,t=Math.random){if(e>=IV.maxAttempts)return{kind:`exhausted`,attempts:e};let n=Math.min(IV.maxDelayMs,IV.baseDelayMs*2**e);return{kind:`retry`,delayMs:Math.round(n*(.8+t()*.4))}}var RV=`/adaptive-probe`,zV=2500,BV=15e3,VV=250,HV=2;function UV(e){return e>=8?`high`:e>=2.5?`mid`:`low`}function WV(e){let{downlinkMbps:t,...n}=e;return n}function GV(e){return UV(e)!==`low`}function KV(e){if(e===void 0||e===``)return null;let t;try{t=new URL(e)}catch{return null}return t.protocol!==`http:`&&t.protocol!==`https:`?null:`${t.origin}${t.pathname.replace(/\/+$/,``)}`}function qV(e,t){return KV(e)??KV(t)}function JV(e){let t=e.downlinkMbps===void 0?`none`:UV(e.downlinkMbps);return[e.phase,e.viewportWidth??`-`,e.viewportHeight??`-`,e.devicePixelRatio??`-`,t,e.prefersTier??`-`,e.probeOrigin??`unreachable`,e.probeStatus??`-`,e.probeAnswer??`-`].join(`|`)}function YV(e,t){return e<65536||!(t>0)?null:e*8/t/1e3}async function XV(e,t){let n=null,r=0,i=0;try{for(;;){let a=await e.read();if(a.done)break;let o=a.value?.byteLength??0,s=t();n===null?n=s:i+=o,r=s}}catch{e.cancel().catch(()=>void 0)}return n===null?null:YV(i,r-n)}async function ZV(e,t){let n=e.replace(/\/+$/,``),r=new AbortController,i=setTimeout(()=>r.abort(),zV);try{let e=await t.fetchImpl(`${n}${RV}`,{signal:r.signal});if(!e.ok)return e.status!==void 0&&t.onRefused?.(e.status),null;let i=e.body?.getReader()??null;if(i!==null)return await XV(i,t.now);let a=t.now();return YV((await e.arrayBuffer()).byteLength,t.now()-a)}catch{return null}finally{clearTimeout(i)}}async function QV(e,t=BV){let n=e.now()+t;for(;;){if(e.signal.aborted)return`aborted`;if((e.readyState()??0)>=HV)return`frame`;if(e.now()>=n)return`timeout`;await e.sleep(VV)}}async function $V(e){if(await e.waitFrame()===`frame`)return e.measure()}function eH(e){let t=new Map,n=new Map,r=new Set,i=n=>{let r=t.get(n);return r!==void 0&&e.now()-r.at<=e.ttlMs?r.mbps:void 0};return{cached:i,firstRefusal:(e,t)=>{let n=`${e}|${String(t)}`;return r.has(n)?!1:(r.add(n),!0)},latest:n=>{let r=t.get(n);return r===void 0?null:{mbps:r.mbps,ageMs:Math.max(0,e.now()-r.at)}},measured:(r,a)=>{let o=i(r);if(o!==void 0)return Promise.resolve(o);let s=n.get(r);if(s!==void 0)return s;let c=a().then(n=>{if(!(n===null||!Number.isFinite(n)))return t.set(r,{mbps:n,at:e.now()}),n}).catch(()=>void 0).finally(()=>{n.delete(r)});return n.set(r,c),c}}}async function tH(e,t,n){if(e===void 0)return{kind:`unsupported`,why:`no-wiring`};if(t===null)return{kind:`unsupported`,why:`no-session`};try{return{kind:`answered`,answer:await e(t,n)}}catch{return{kind:`unsupported`,why:`call-failed`}}}var nH=100;function rH(e,t,n){if(n.renegotiating)return{baseline:null,sample:null};if(e===null||e.pc!==t.pc||t.ts<=e.ts)return{baseline:t,sample:null};let r=Math.max(0,t.lost-e.lost),i=r+Math.max(0,t.recv-e.recv),a=i>0?Math.min(nH,r/i*100):0,o=Math.max(0,Math.round((t.bytes-e.bytes)*8/(t.ts-e.ts)));return{baseline:t,sample:{rttMs:Math.round(t.rttS*1e3),jitterMs:Math.round(t.jitterS*1e3),estimatedBandwidthKbps:o,packetLossPercent:a,...n.probe===null?{}:{downlinkMbps:n.probe.mbps,downlinkAgeMs:n.probe.ageMs}}}}var iH={urls:`stun:stun.l.google.com:19302`};function aH(e,t){let n=[...e??[],iH];return t===void 0?{iceServers:n}:{iceServers:n,iceTransportPolicy:t}}var oH=8;function sH(e){return typeof e==`number`&&Number.isFinite(e)?e:null}function cH(e){return typeof e==`string`&&e.length>0?e:null}function lH(e,t){if(e===null||t===null)return null;let n=e-t;return n<0?null:n}function uH(e,t){if(e===null||t===null)return null;let n=e+t;return n<=0?null:e/n*100}function dH(e){return e===null?null:/profile-level-id=([0-9a-fA-F]+)/.exec(e)?.[1]??null}function fH(e){let t={inbound:null,codecs:new Map,candidates:new Map,pair:null,selectedPairId:null},n=[];e.forEach(e=>{let r=e,i=cH(r.id);switch(r.type){case`inbound-rtp`:(r.kind??r.mediaType)===`video`&&(t.inbound=r);break;case`codec`:i!==null&&t.codecs.set(i,r);break;case`local-candidate`:case`remote-candidate`:i!==null&&t.candidates.set(i,r);break;case`candidate-pair`:n.push(r);break;case`transport`:t.selectedPairId=cH(r.selectedCandidatePairId);break;default:break}});let r=t.selectedPairId;return t.pair=n.find(e=>cH(e.id)===r)??n.find(e=>e.selected===!0)??n.find(e=>e.nominated===!0&&e.state===`succeeded`)??n.find(e=>e.nominated===!0)??n.find(e=>e.state===`succeeded`)??null,t}function pH(e){return e===null?{timestamp:null,bytesReceived:null,packetsReceived:null,packetsLost:null,framesDecoded:null,framesDropped:null,freezeCount:null,totalFreezesDurationS:null,totalDecodeTimeS:null,nackCount:null,pliCount:null}:{timestamp:sH(e.timestamp),bytesReceived:sH(e.bytesReceived),packetsReceived:sH(e.packetsReceived),packetsLost:sH(e.packetsLost),framesDecoded:sH(e.framesDecoded),framesDropped:sH(e.framesDropped),freezeCount:sH(e.freezeCount),totalFreezesDurationS:sH(e.totalFreezesDuration),totalDecodeTimeS:sH(e.totalDecodeTime),nackCount:sH(e.nackCount),pliCount:sH(e.pliCount)}}var mH={spanMs:null,kbps:null,packetsReceived:null,packetsLost:null,lossPercent:null,framesDecoded:null,framesDropped:null,freezeCount:null,freezeMs:null,nackCount:null,pliCount:null,decodeMs:null};function hH(e,t){if(t===null)return mH;let n=lH(e.timestamp,t.timestamp);if(n===null||n<=0)return mH;let r=lH(e.bytesReceived,t.bytesReceived),i=lH(e.packetsLost,t.packetsLost),a=lH(e.packetsReceived,t.packetsReceived),o=lH(e.framesDecoded,t.framesDecoded),s=lH(e.totalDecodeTimeS,t.totalDecodeTimeS),c=lH(e.totalFreezesDurationS,t.totalFreezesDurationS);return{spanMs:n,kbps:r===null?null:Math.round(r*8/n),packetsReceived:a,packetsLost:i,lossPercent:uH(i,a),framesDecoded:o,framesDropped:lH(e.framesDropped,t.framesDropped),freezeCount:lH(e.freezeCount,t.freezeCount),freezeMs:c===null?null:Math.round(c*1e3),nackCount:lH(e.nackCount,t.nackCount),pliCount:lH(e.pliCount,t.pliCount),decodeMs:s===null||o===null||o<=0?null:s/o*1e3}}function gH(e,t,n,r){if(t===null||n===null)return e;let i=e.at(-1);if(i!==void 0&&i.width===t&&i.height===n)return e;let a=[...e,{width:t,height:n,at:r}];return a.length>oH?a.slice(a.length-oH):a}function _H(e){let{inbound:t,codecs:n,candidates:r,pair:i}=fH(e.report),a=pH(t),o=t===null?void 0:n.get(cH(t.codecId)??``),s=cH(o?.mimeType),c=cH(o?.sdpFmtpLine),l=i===null?void 0:r.get(cH(i.localCandidateId)??``),u=i===null?void 0:r.get(cH(i.remoteCandidateId)??``),d=cH(l?.candidateType),f=cH(u?.candidateType),p=sH(t?.frameWidth),m=sH(t?.frameHeight),h=a.totalFreezesDurationS,g=a.totalDecodeTimeS,_=a.framesDecoded;return{at:e.now,hasInboundVideo:t!==null,width:p,height:m,fps:sH(t?.framesPerSecond),codec:s===null?null:s.split(`/`)[1]??s,codecProfileLevelId:dH(c),jitterMs:vH(t),packetsReceived:a.packetsReceived,packetsLost:a.packetsLost,lossPercent:uH(a.packetsLost,a.packetsReceived),nackCount:a.nackCount,pliCount:a.pliCount,framesDecoded:_,framesDropped:a.framesDropped,freezeCount:a.freezeCount,totalFreezeMs:h===null?null:Math.round(h*1e3),avgDecodeMs:g===null||_===null||_<=0?null:g/_*1e3,rttMs:yH(i),availableIncomingKbps:bH(i),localCandidateType:d,remoteCandidateType:f,candidatePairType:d===null&&f===null?null:`${d??`?`}/${f??`?`}`,candidateProtocol:cH(l?.protocol),iceConnectionState:e.iceConnectionState,dtlsState:e.dtlsState,window:hH(a,e.prev?.raw??null),resolutionLog:gH(e.prev?.resolutionLog??[],p,m,e.now),raw:a}}function vH(e){let t=sH(e?.jitter);return t===null?null:t*1e3}function yH(e){let t=sH(e?.currentRoundTripTime);return t===null?null:t*1e3}function bH(e){let t=sH(e?.availableIncomingBitrate);return t===null?null:Math.round(t/1e3)}var xH={unknown:`no window yet`,decoding:`decoding`,"decoder-stall":`DECODER STALL — bytes arriving, no frames out`,"transport-stall":`TRANSPORT STALL — nothing arriving`,"frozen-unknown":`frames stopped — byte rate unknown`};function SH(e){let t=CH(e);return{kind:t,label:xH[t]}}function CH(e){if(e===null||!e.hasInboundVideo)return`unknown`;let t=e.window.framesDecoded;if(t===null)return`unknown`;if(t>0)return`decoding`;let n=e.window.kbps;return n===null?`frozen-unknown`:n>0?`decoder-stall`:`transport-stall`}E();var wH=`—`;function TH(e,t){if(e==null||!Number.isFinite(e))return wH;let n=t?.digits??0;return`${e.toFixed(n)}${t?.suffix??``}`}function EH(e){return e==null||e===``?wH:e}function DH(e,t){return e==null?wH:e?t(`uiLibrary.streamDebugOverlay.yes`,`yes`):t(`uiLibrary.streamDebugOverlay.no`,`no`)}function OH(e,t,n){if(e===null)return wH;let r=Math.max(0,t-e);return r<1e3?n(`uiLibrary.streamDebugOverlay.msAgo`,`{{value}}ms ago`,{value:r}):r<6e4?n(`uiLibrary.streamDebugOverlay.sAgo`,`{{value}}s ago`,{value:(r/1e3).toFixed(1)}):n(`uiLibrary.streamDebugOverlay.msAgoLong`,`{{minutes}}m{{seconds}}s ago`,{minutes:Math.floor(r/6e4),seconds:Math.floor(r%6e4/1e3)})}var kH=3e3,AH={unknown:`bg-white/15 text-white/70`,decoding:`bg-emerald-500/25 text-emerald-200`,"decoder-stall":`bg-amber-500/30 text-amber-100`,"transport-stall":`bg-rose-500/30 text-rose-100`,"frozen-unknown":`bg-white/15 text-white/70`};function jH({label:e,value:t,window:n,strong:r=!1}){return c(`div`,{className:`flex items-baseline justify-between gap-2 leading-[1.25]`,children:[v(`span`,{className:`text-white/55 shrink-0`,children:e}),c(`span`,{className:`flex items-baseline gap-1 text-right`,children:[v(`span`,{className:r?`text-white font-semibold tabular-nums`:`text-white/90 tabular-nums`,children:t}),n!==void 0&&v(`span`,{className:`text-sky-300/80 tabular-nums`,children:n})]})]})}function MH({title:e,measuredAt:t,now:n}){let r=q(),i=t!==null&&n-t>kH;return c(`div`,{className:`flex items-baseline justify-between gap-3 mt-2 first:mt-0 pb-0.5 border-b border-white/20`,children:[v(`span`,{className:`text-white/80 font-semibold tracking-wide uppercase text-[9px]`,children:e}),c(`span`,{className:i?`text-amber-300 text-[9px]`:`text-white/45 text-[9px]`,children:[i?`${r(`uiLibrary.streamDebugOverlay.staleUpper`,`STALE`)} · `:``,OH(t,n,r)]})]})}var NH={unknown:`bg-white/50`,decoding:`bg-emerald-400`,"decoder-stall":`bg-amber-400`,"transport-stall":`bg-rose-400`,"frozen-unknown":`bg-white/50`};function PH(e){let t=q(),{stats:n,server:r,serverError:i,serverWired:a,now:o,sessionId:s}=e,l=SH(n),u=n?.window,[d,f]=C(!1),p=n!==null&&o-n.at>kH;return d?c(`div`,{className:`absolute bottom-10 left-2 z-20 transform-gpu w-[13.5rem] max-h-[70%] overflow-y-auto rounded-md bg-neutral-950/95 ring-1 ring-white/25 shadow-lg px-1.5 py-1 text-[9px] font-mono text-white/90 select-text`,"data-testid":`stream-debug-overlay`,children:[v(`button`,{type:`button`,onClick:()=>f(!1),className:`w-full text-left rounded px-1.5 py-0.5 mb-1 text-[9px] font-semibold ${AH[l.kind]}`,children:l.label}),v(MH,{title:`decode`,measuredAt:n?.at??null,now:o}),v(jH,{label:`framesDecoded`,value:TH(n?.framesDecoded),window:u?.framesDecoded===null?void 0:`+${TH(u?.framesDecoded)}`,strong:!0}),v(jH,{label:`freezeCount`,value:TH(n?.freezeCount),strong:!0}),v(jH,{label:`frozen`,value:TH(n?.totalFreezeMs,{suffix:`ms`}),window:u?.freezeMs===null?void 0:`+${TH(u?.freezeMs)}ms`,strong:!0}),v(jH,{label:`pliCount`,value:TH(n?.pliCount),window:u?.pliCount===null?void 0:`+${TH(u?.pliCount)}`,strong:!0}),v(jH,{label:`framesDropped`,value:TH(n?.framesDropped)}),v(jH,{label:`decode`,value:TH(n?.avgDecodeMs,{digits:1,suffix:`ms`}),window:u?.decodeMs===null?void 0:`${TH(u?.decodeMs,{digits:1})}ms`}),v(MH,{title:`picture`,measuredAt:n?.at??null,now:o}),v(jH,{label:`resolution`,value:n?.width!==null&&n?.width!==void 0&&n.height!==null?`${n.width}×${n.height}`:wH}),v(jH,{label:`fps`,value:TH(n?.fps)}),v(jH,{label:`codec`,value:n?.codec===null||n?.codec===void 0?wH:`${n.codec}${n.codecProfileLevelId===null?``:` ${n.codecProfileLevelId}`}`}),(n?.resolutionLog.length??0)>1&&v(`div`,{className:`mt-0.5 text-white/60 leading-tight`,children:n?.resolutionLog.map(e=>c(`div`,{className:`flex justify-between`,children:[c(`span`,{children:[e.width,`×`,e.height]}),v(`span`,{className:`text-white/40`,children:OH(e.at,o,t)})]},`${e.at}-${e.width}x${e.height}`))}),v(MH,{title:`transport`,measuredAt:n?.at??null,now:o}),v(jH,{label:`bitrate`,value:TH(u?.kbps,{suffix:` kbps`})}),v(jH,{label:`rtt`,value:TH(n?.rttMs,{digits:0,suffix:`ms`})}),v(jH,{label:`jitter`,value:TH(n?.jitterMs,{digits:1,suffix:`ms`})}),v(jH,{label:`packetsLost`,value:TH(n?.packetsLost),window:u?.packetsLost===null?void 0:`+${TH(u?.packetsLost)}`}),v(jH,{label:`loss`,value:TH(n?.lossPercent,{digits:2,suffix:`%`}),window:u?.lossPercent===null?void 0:TH(u?.lossPercent,{digits:2,suffix:`%`})}),v(jH,{label:`nackCount`,value:TH(n?.nackCount),window:u?.nackCount===null?void 0:`+${TH(u?.nackCount)}`}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.candidatePair`,`candidate pair`),value:EH(n?.candidatePairType)}),v(jH,{label:`protocol`,value:EH(n?.candidateProtocol)}),v(jH,{label:`ice`,value:EH(n?.iceConnectionState)}),v(jH,{label:`dtls`,value:EH(n?.dtlsState)}),v(MH,{title:`server`,measuredAt:r?.observedAt??null,now:o}),a?i===null?r===null?v(`div`,{className:`text-white/50 leading-tight py-0.5`,children:t(`uiLibrary.streamDebugOverlay.waiting`,`waiting for the first answer…`)}):r.alive?c(P,{children:[v(jH,{label:t(`uiLibrary.streamDebugOverlay.servedRung`,`served rung`),value:EH(r.servedTier),strong:!0}),v(jH,{label:`adaptive`,value:DH(r.adaptive,t)}),v(jH,{label:`source`,value:EH(r.camStreamId)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.sourceKind`,`source kind`),value:r.sourceKind}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.ingestNode`,`ingest node`),value:EH(r.ingestNodeId)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.remote`,`· remote`),value:DH(r.ingestIsRemote,t)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.egressLeg`,`egress leg`),value:r.egressLeg,strong:!0}),v(jH,{label:`codec src→out`,value:`${EH(r.sourceCodec)}→${EH(r.negotiatedCodec)}`}),v(jH,{label:`broker`,value:EH(r.brokerStatus)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.bitrate`,`· bitrate`),value:TH(r.brokerBitrateKbps,{suffix:` kbps`})}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.inputFps`,`· input fps`),value:TH(r.brokerInputFps)}),v(jH,{label:`rtp sent`,value:TH(r.rtpPacketsSent)}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.trackMode`,`track mode`),value:EH(r.trackMode)}),r.lastDecision===null?v(jH,{label:`ladder`,value:r.climbHold?t(`uiLibrary.streamDebugOverlay.held`,`held`):t(`uiLibrary.streamDebugOverlay.neverMoved`,`never moved`)}):c(P,{children:[v(jH,{label:t(`uiLibrary.streamDebugOverlay.ladderMove`,`ladder move`),value:`${r.lastDecision.causeDetail??r.lastDecision.cause}${r.lastDecision.tier===null?``:` → ${r.lastDecision.tier}`}`,strong:!0}),v(jH,{label:t(`uiLibrary.streamDebugOverlay.when`,`· when`),value:OH(r.lastDecision.at,o,t)}),v(jH,{label:`· lossRatio`,value:TH(r.lastDecision.lossRatio,{digits:4})}),v(jH,{label:`· clientKbps`,value:TH(r.lastDecision.clientKbps,{suffix:` kbps`})}),v(jH,{label:`· stalledFor`,value:TH(r.lastDecision.stalledForMs,{suffix:`ms`})}),v(jH,{label:`· serverSending`,value:DH(r.lastDecision.serverSending,t)}),v(jH,{label:`· transcode-down`,value:DH(r.lastDecision.forcedTranscodeDown,t)})]}),r.climbHold?v(jH,{label:`climb`,value:r.climbHold.summary}):null,v(jH,{label:`promotions`,value:TH(r.upgradeCount)}),r.tierFailures.length>0&&v(jH,{label:t(`uiLibrary.streamDebugOverlay.tierFailures`,`tier failures`),value:r.tierFailures.map(e=>`${e.tier}:${e.failures}`).join(` `)})]}):v(`div`,{className:`text-amber-300 leading-tight py-0.5`,children:t(`uiLibrary.streamDebugOverlay.sessionNotFound`,`session not found on the server — it ended, or this node never had it`)}):v(`div`,{className:`text-rose-300 leading-tight py-0.5 break-words`,children:i}):v(`div`,{className:`text-amber-300/90 leading-tight py-0.5`,children:v(hi,{uiKey:`uiLibrary.streamDebugOverlay.notWired`,fallback:`not wired on this surface — this player was mounted without <0>getSessionDebug</0>, so the server half cannot be asked`,components:[v(`span`,{className:`text-white/80`},`fn`)]})}),s!==null&&v(`div`,{className:`mt-1 pt-0.5 border-t border-white/15 text-white/40 break-all leading-tight`,children:s})]}):c(`button`,{type:`button`,onClick:()=>f(!0),className:`absolute bottom-10 left-2 z-20 transform-gpu flex items-center gap-1.5 rounded bg-neutral-950/90 ring-1 ring-white/20 px-1.5 py-0.5 text-[9px] font-mono text-white/85 tabular-nums select-text`,"data-testid":`stream-debug-pill`,title:l.label,children:[v(`span`,{className:`h-1.5 w-1.5 rounded-full ${NH[l.kind]}`}),v(`span`,{children:n?.width!==null&&n?.width!==void 0?`${n.width}×${n.height}`:wH}),c(`span`,{children:[TH(n?.fps),`fps`]}),c(`span`,{children:[TH(u?.kbps),`k`]}),p&&v(`span`,{className:`text-amber-300`,children:t(`uiLibrary.streamDebugOverlay.stale`,`stale`)})]})}E();function FH(e,t){e.muted=t;let n=e.srcObject;if(n instanceof MediaStream)for(let e of n.getAudioTracks())e.enabled=!t}function IH(){return typeof window>`u`?!1:window.matchMedia(`(hover: none) and (pointer: coarse)`).matches||typeof navigator<`u`&&navigator.maxTouchPoints>0||`ontouchstart`in window}function LH(e,t,n){let r=0;for(let i=0;i<8;i++)for(let a=0;a<8;a++){let o=Math.min(t-1,Math.floor((a+.5)/8*t)),s=Math.min(n-1,Math.floor((i+.5)/8*n)),{data:c}=e.getImageData(o,s,1,1);.2126*(c[0]??0)+.7152*(c[1]??0)+.0722*(c[2]??0)>12&&r++}return r<=1}function RH(e){let t={};if(typeof window<`u`){let n=window.devicePixelRatio||1;if(e){let r=e.getBoundingClientRect();r.width>0&&r.height>0&&(t.viewportWidth=Math.round(r.width*n),t.viewportHeight=Math.round(r.height*n))}t.viewportWidth===void 0&&(t.viewportWidth=Math.round(window.innerWidth*n),t.viewportHeight=Math.round(window.innerHeight*n)),t.devicePixelRatio=n}return t}var zH=eH({now:()=>Date.now(),ttlMs:3e4});function BH(e){return qV(e,typeof window<`u`?un():void 0)}function VH(e,t,n){let r=BH(e);return r===null?Promise.resolve(void 0):zH.measured(r,()=>ZV(r,{onRefused:e=>{zH.firstRefusal(r,e)&&n(r,e)},fetchImpl:(e,n)=>fetch(e,{...n,...t===null?{}:{headers:{authorization:`Bearer ${t}`}}}),now:()=>Date.now()}))}function HH(e){let t=BH(e);return t===null?void 0:zH.cached(t)}function UH(e){let t=BH(e);return t===null?null:zH.latest(t)}function WH(e){return $V({waitFrame:()=>QV({readyState:()=>{let t=e.video();return t!==null&&t.srcObject===e.stream?t.readyState:null},signal:e.signal,sleep:e=>new Promise(t=>setTimeout(t,e)),now:()=>Date.now()}),measure:()=>VH(e.serverUrl,e.authToken,e.onRefused)})}function GH(e,t,n,r){let i={...e,...n===void 0?{}:{downlinkMbps:n},...t};return r?WV(i):i}var KH=8e3;function qH({serverUrl:e,streamKey:t,label:n,autoPlay:r=!0,muted:i=!0,showControls:a=!0,showStats:o=!1,onDebugStats:s,onPlaybackStats:l,onClientNetworkSample:u,probeAuthToken:d,onConnectTiming:p,className:m=``,onStateChange:h,onError:g,onReconnectAttempt:y,overlay:x,createSession:S,sendAnswer:w,handleOffer:T,getIceServers:E,addIceCandidate:D,getIceCandidates:O,closeSession:k,getSessionState:A,getSessionDebug:j,applyDownlinkProbe:M,reoffer:N,posterUrl:P,hintsOverride:F,onAdaptiveHints:I,reconnectSignal:L,onControlChannel:R,onVideoElement:z,iceTransportPolicy:B,onPeerConnection:V}){let H=q(),U=f(null),ee=f(null),W=f(null),G=f(new Set),te=f(null),ne=f(null),re=f(0),K=f(!0),ie=f(R);ie.current=R;let ae=f(B);ae.current=B;let oe=f(V);oe.current=V;let se=f(z);se.current=z,b(()=>(se.current?.(U.current),()=>se.current?.(null)),[]);let ce=f(I);ce.current=I;let le=f(null),ue=_((e,t,n)=>{let r=ce.current;if(!r)return;let i={phase:e,probeOrigin:n,...t},a=JV(i);a!==le.current&&(le.current=a,r(i))},[]),de=f(M);de.current=M;let fe=_(async(t,n,r)=>{let i=await tH(de.current,t,n);if(!K.current)return;if(i.kind===`unsupported`){r();return}let{outcome:a,tier:o,reason:s}=i.answer;ce.current?.({phase:`probe-in-session`,probeOrigin:BH(e),downlinkMbps:n,probeAnswer:`${a}:${o??`-`}:${s}`})},[e]),pe=_((e,t)=>{ce.current?.({phase:`probe-refused`,probeOrigin:e,probeStatus:t})},[]),me=f(null),he=f(null),ge=f(0),_e=f(!1),ve=f(!1),ye=f(async()=>{}),[be,xe]=C(`idle`),[Se,Ce]=C(``),[we,Te]=C(i),Ee=f(we);Ee.current=we;let[De,Oe]=C(!1),[ke,Ae]=C(!1),je=IH(),[Me,Ne]=C(!0),Pe=f(null),Fe=f(!1);(w||S)&&(Fe.current=!0);let Ie=Fe.current,Le=f(!1);T&&(Le.current=!0);let Re=Le.current,[ze,Be]=C(!1),Ve=f(null),[He,Ue]=C(null),[We,Ge]=C(!1),Ke=_(()=>{let e=U.current;if(!(!e||e.readyState<2||!e.videoWidth||!e.videoHeight))try{let t=document.createElement(`canvas`);t.width=e.videoWidth,t.height=e.videoHeight;let n=t.getContext(`2d`);if(!n||(n.drawImage(e,0,0),LH(n,t.width,t.height)))return;Ve.current=t.toDataURL(`image/jpeg`,.6)}catch{}},[]),qe=_(e=>{xe(e),e===`playing`&&Be(!0),h?.(e)},[h]),Je=_(()=>{if(te.current?.abort(),te.current=null,ne.current&&=(clearTimeout(ne.current),null),he.current&&=(clearTimeout(he.current),null),me.current=null,ve.current=!1,ge.current=0,W.current&&=(W.current.close(),null),k&&G.current.size>0){for(let e of G.current)k(e).catch(()=>{});G.current.clear()}},[k]),Ye=_(()=>{te.current?.abort(),te.current=null,ne.current&&=(clearTimeout(ne.current),null),he.current&&=(clearTimeout(he.current),null),me.current=null,ve.current=!1,ge.current=0},[]),Xe=1e3,Ze=_(e=>{if(!A||!N)return;he.current&&=(clearTimeout(he.current),null);let t=async()=>{if(K.current&&me.current===e){if(!ve.current)try{let{pendingRenegotiation:t}=await A(e);if(K.current&&me.current===e&&t&&t.epoch>ge.current&&!ve.current){ge.current=t.epoch,await ye.current(e,t.target);return}}catch{}!K.current||me.current!==e||(he.current=setTimeout(()=>{t()},Xe))}};he.current=setTimeout(()=>{t()},Xe)},[A,N]),Qe=_(async(t=!1,n=t,r)=>{if(!K.current||!S||!w)return;let i=t?W.current:null,a=t?new Set(G.current):null;t?Ye():Je(),qe(`connecting`);let o=new AbortController;te.current=o;try{let s=GH(RH(ee.current),F,n?r??await VH(e,d??null,pe):void 0,!n);ue(n?`probe-climb`:`cold-start`,s,BH(e));let{sessionId:c,sdpOffer:l,iceServers:u}=await S(s);if(G.current.add(c),!K.current||o.signal.aborted){k?.(c).catch(()=>{}),G.current.delete(c);return}let f=new RTCPeerConnection(aH(u,ae.current));oe.current?.(f),t||(W.current=f);let p=new MediaStream;n||WH({video:()=>U.current,stream:p,signal:o.signal,serverUrl:e,authToken:d??null,onRefused:pe}).then(e=>{e===void 0||!GV(e)||!K.current||o.signal.aborted||_e.current||(_e.current=!0,fe(c,e,()=>{!K.current||o.signal.aborted||Qe(!0,!0,e)}))});let m=!1,h=()=>{if(!(m||!K.current)){if(m=!0,W.current=f,U.current&&(U.current.srcObject=p,FH(U.current,Ee.current),U.current.play().catch(()=>{})),i&&i!==f)try{i.close()}catch{}if(a)for(let e of a)G.current.delete(e),k?.(e).catch(()=>{})}};f.ontrack=e=>{if(console.debug(`[WebRTC] ontrack`,e.track.kind,e.track.readyState),p.addTrack(e.track),t){h();return}U.current&&(U.current.srcObject=p,FH(U.current,Ee.current),U.current.play().catch(()=>{}))},f.oniceconnectionstatechange=()=>{if(!K.current)return;let e=f.iceConnectionState;if(console.debug(`[WebRTC] ICE state:`,e),e===`connected`||e===`completed`)re.current=0,t&&h(),qe(`playing`),U.current?.paused&&(console.debug(`[WebRTC] video was paused at ICE connected — calling play()`),U.current.play().catch(()=>{}));else if(e===`failed`||e===`disconnected`||e===`closed`){if(t&&!m)try{f.close()}catch{}qe(`disconnected`),at()}},f.onicecandidateerror=e=>{console.debug(`[WebRTC] ICE candidate error:`,e)},console.debug(`[WebRTC] Setting remote description (server offer)...`),await f.setRemoteDescription({type:`offer`,sdp:l});let g=await f.createAnswer();if(await f.setLocalDescription(g),console.debug(`[WebRTC] Local description set, waiting for ICE gathering...`),await YH(f),!K.current)return;let _=(f.localDescription?.sdp??``).split(`
3
3
  `).filter(e=>e.startsWith(`a=candidate:`)).length;console.debug(`[WebRTC] Sending answer to server`,{localCandidates:_,sessionId:c.slice(0,8)}),await w(c,f.localDescription?.sdp??``),console.debug(`[WebRTC] Answer sent successfully`);let v=f,y=()=>{let e=v.connectionState;if(e===`closed`||e===`failed`)return;let t=U.current;t&&t.readyState===0&&console.log(`[WebRTC] no video data yet (ice=${v.iceConnectionState})`)};setTimeout(y,3e3),setTimeout(y,8e3)}catch(e){if(!K.current)return;let t=e instanceof Error?e.message:String(e);Ce(t),qe(`error`),g?.(t),at()}},[e,t,S,w,Je,Ye,k,qe,g,F,ue,d,pe,fe]),$e=_(async()=>{if(K.current){Je(),qe(`connecting`);try{let n=new RTCPeerConnection({iceServers:[{urls:`stun:stun.l.google.com:19302`}]});W.current=n,n.addTransceiver(`video`,{direction:`recvonly`}),n.addTransceiver(`audio`,{direction:`recvonly`});let r=new MediaStream;n.ontrack=e=>{r.addTrack(e.track),U.current&&(U.current.srcObject=r,FH(U.current,Ee.current),U.current.play().catch(()=>{}))},n.oniceconnectionstatechange=()=>{if(!K.current)return;let e=n.iceConnectionState;e===`connected`||e===`completed`?(re.current=0,qe(`playing`),U.current?.paused&&U.current.play().catch(()=>{})):(e===`failed`||e===`disconnected`||e===`closed`)&&(qe(`disconnected`),at())};let i=await n.createOffer();if(await n.setLocalDescription(i),await YH(n),!K.current)return;let a=`${e}/api/webrtc?src=${encodeURIComponent(t)}`,o=await fetch(a,{method:`POST`,headers:{"Content-Type":`application/sdp`},body:n.localDescription?.sdp??``});if(!o.ok)throw Error(`WHEP ${o.status}: ${o.statusText}`);let s=await o.text();await n.setRemoteDescription({type:`answer`,sdp:s})}catch(e){if(!K.current)return;let t=e instanceof Error?e.message:String(e);Ce(t),qe(`error`),g?.(t),at()}}},[e,t,Je,qe,g]),et=_(async(n=!1,r=n,i)=>{if(!K.current||!T)return;let a=n?W.current:null,o=n?new Set(G.current):null;n?Ye():Je(),qe(`connecting`);let s=new AbortController;te.current=s;let c=performance.now(),l=()=>Math.round(performance.now()-c),u={};try{let c=await E?.();if(u.iceServersMs=l(),!K.current||s.signal.aborted)return;let f=new RTCPeerConnection(aH(c,ae.current));oe.current?.(f),n||(W.current=f);let m=new MediaStream,h=null;r||WH({video:()=>U.current,stream:m,signal:s.signal,serverUrl:e,authToken:d??null,onRefused:pe}).then(e=>{e===void 0||!GV(e)||!K.current||s.signal.aborted||_e.current||(_e.current=!0,fe(h,e,()=>{!K.current||s.signal.aborted||et(!0,!0,e)}))});let g=!1,_=()=>{if(!(g||!K.current)){if(g=!0,W.current=f,U.current&&(U.current.srcObject=m,FH(U.current,Ee.current),U.current.play().catch(()=>{})),a&&a!==f)try{a.close()}catch{}if(o)for(let e of o)G.current.delete(e),k?.(e).catch(()=>{})}};f.ontrack=e=>{if(u.firstTrackMs===void 0&&(u.firstTrackMs=l()),console.debug(`[WebRTC] ontrack (client-offer)`,e.track.kind,e.track.readyState),m.addTrack(e.track),n){_();return}U.current&&(U.current.srcObject=m,FH(U.current,Ee.current),U.current.play().catch(()=>{}))};let v=!1;f.oniceconnectionstatechange=()=>{if(!K.current)return;let e=f.iceConnectionState;if(console.debug(`[WebRTC] ICE state (client-offer):`,e),e===`connected`||e===`completed`){if(!v){v=!0,u.iceConnectedMs=l(),console.info(`[WebRTC timing] client-offer connected`,{streamKey:t,...u}),p?.({...u});let e=U.current;e&&`requestVideoFrameCallback`in e&&(e.requestVideoFrameCallback(()=>{u.firstFrameMs=l(),console.info(`[WebRTC timing] first decoded frame`,{streamKey:t,firstFrameMs:u.firstFrameMs}),p?.({...u})}),setTimeout(()=>{K.current&&u.firstFrameMs===void 0&&(console.warn(`[WebRTC timing] NO decoded frame (stalled)`,{streamKey:t,sinceIceConnectedMs:l()-(u.iceConnectedMs??0),iceConnectedMs:u.iceConnectedMs,firstTrackMs:u.firstTrackMs}),it.current(`no decoded frame after connect`),at())},KH))}re.current=0,n&&_(),qe(`playing`),U.current?.paused&&U.current.play().catch(()=>{})}else if(e===`failed`||e===`disconnected`||e===`closed`){if(n&&!g)try{f.close()}catch{}qe(`disconnected`),at()}};let y=null,b=[];if(f.onicecandidate=e=>{if(!e.candidate)return;let t=e.candidate.toJSON();y&&D?D(y,t).catch(()=>{}):b.push(t)},f.addTransceiver(`video`,{direction:`recvonly`}),f.addTransceiver(`audio`,{direction:`recvonly`}),ie.current){let e=f.createDataChannel(`camstack-control`);ie.current(e)}let x=await f.createOffer();if(u.offerCreatedMs=l(),await f.setLocalDescription(x),u.localSetMs=l(),!K.current||s.signal.aborted)return;let S=r?i??await VH(e,d??null,pe):void 0,C=GH(RH(ee.current),F,S,!r);ue(r?`probe-climb`:`cold-start`,C,BH(e));let w=l(),{sessionId:A,sdpAnswer:j}=await T(f.localDescription?.sdp??x.sdp??``,void 0,C);if(u.signalingRttMs=l()-w,y=A,h=A,G.current.add(A),me.current=A,!K.current||s.signal.aborted){k?.(A).catch(()=>{}),G.current.delete(A);return}if(D)for(let e of b)D(A,e).catch(()=>{});if(b.length=0,await f.setRemoteDescription({type:`answer`,sdp:j}),u.answerSetMs=l(),console.debug(`[WebRTC] Client-offer answer set (trickle)`,{sessionId:A.slice(0,8)}),O){let e=new Set,t=Date.now(),n=async()=>{if(!(!K.current||s.signal.aborted)&&!(f.connectionState===`closed`||f.signalingState===`closed`)){try{let{candidates:n,done:r}=await O(A);for(let t of n){let n=t.candidate??``;n&&!e.has(n)&&(e.add(n),f.addIceCandidate(new RTCIceCandidate(t)).catch(()=>{}))}let i=f.iceConnectionState;if(r||Date.now()-t>1e4||i===`connected`||i===`completed`)return}catch{}setTimeout(()=>{n()},200)}};n()}Ze(A)}catch(e){if(!K.current)return;let t=e instanceof Error?e.message:String(e);Ce(t),qe(`error`),g?.(t),at()}},[e,T,E,D,O,k,Je,Ye,qe,g,Ze,F,ue,d,pe,fe]);ye.current=_(async(t,n)=>{let r=N;if(!K.current||!r)return;let i=W.current;ve.current=!0;try{let a=await E?.();if(!K.current)return;let o=new RTCPeerConnection(aH(a,ae.current));oe.current?.(o);let s=new MediaStream,c=!1,l=!1,u=null,d,f,p=()=>{f!==void 0&&(clearTimeout(f),f=void 0);let e=u;if(u=null,e){d!==void 0&&typeof e.cancelVideoFrameCallback==`function`&&e.cancelVideoFrameCallback(d),e.removeEventListener(`loadeddata`,m);try{e.srcObject=null}catch{}e.remove()}};function m(){if(c||!K.current){p();return}c=!0,W.current=o,U.current&&(U.current.srcObject=s,U.current.play().catch(()=>{})),i&&i!==o&&i.close(),p()}let h=()=>{if(l||c||!K.current)return;if(l=!0,typeof document>`u`){m();return}let e=document.createElement(`video`);e.muted=!0,e.playsInline=!0,e.autoplay=!0,e.style.cssText=`position:absolute;left:-9999px;top:0;width:1px;height:1px;opacity:0;pointer-events:none;`,e.srcObject=s,u=e,(ee.current??document.body).appendChild(e),e.play().catch(()=>{}),typeof e.requestVideoFrameCallback==`function`&&(d=e.requestVideoFrameCallback(()=>m())),e.addEventListener(`loadeddata`,m,{once:!0}),f=setTimeout(()=>m(),1800)};o.ontrack=e=>{console.debug(`[WebRTC] ontrack (reoffer)`,e.track.kind,e.track.readyState),s.addTrack(e.track),h()},o.oniceconnectionstatechange=()=>{if(!K.current)return;let e=o.iceConnectionState;console.debug(`[WebRTC] ICE state (reoffer):`,e),e===`connected`||e===`completed`?(re.current=0,h(),qe(`playing`),U.current?.paused&&U.current.play().catch(()=>{})):(e===`failed`||e===`closed`)&&(p(),!c&&e===`failed`&&o.close(),qe(`disconnected`),at())};let g=null,_=[];if(o.onicecandidate=e=>{if(!e.candidate)return;let t=e.candidate.toJSON();g&&D?D(g,t).catch(()=>{}):_.push(t)},o.addTransceiver(`video`,{direction:`recvonly`}),o.addTransceiver(`audio`,{direction:`recvonly`}),ie.current){let e=o.createDataChannel(`camstack-control`);ie.current(e)}let v=await o.createOffer();if(await o.setLocalDescription(v),!K.current){o.close();return}let y=HH(e),b={...RH(ee.current),...y===void 0?{}:{downlinkMbps:y},...F};ue(`renegotiate`,b,BH(e));let{sessionId:x,sdpAnswer:S}=await r(t,o.localDescription?.sdp??v.sdp??``,n,b);if(!K.current){o.close();return}if(g=x,G.current.add(x),me.current=x,D)for(let e of _)D(x,e).catch(()=>{});if(_.length=0,await o.setRemoteDescription({type:`answer`,sdp:S}),O){let e=new Set,t=Date.now(),n=async()=>{if(K.current&&!(o.connectionState===`closed`||o.signalingState===`closed`)){try{let{candidates:n,done:r}=await O(x);for(let t of n){let n=t.candidate??``;n&&!e.has(n)&&(e.add(n),o.addIceCandidate(new RTCIceCandidate(t)).catch(()=>{}))}let i=o.iceConnectionState;if(r||Date.now()-t>1e4||i===`connected`||i===`completed`)return}catch{}setTimeout(()=>{n()},200)}};n()}Ze(x)}catch(e){console.debug(`[WebRTC] reoffer failed; keeping last frame, re-arming poll`,e instanceof Error?e.message:String(e)),Ze(t)}finally{ve.current=!1}},[e,N,E,D,O,qe,Ze,F,ue]);let tt=Re?et:Ie?Qe:$e,nt=f(()=>{}),rt=f(y);rt.current=y;let it=f(()=>{});it.current=e=>{console.warn(`[WebRTC] hard error`,{streamKey:t,msg:e}),Ce(e),g?.(e),qe(`error`)},nt.current=tt;let at=_(()=>{if(!K.current)return;let e=re.current,t=LV(e);if(rt.current?.(t),t.kind===`exhausted`){it.current(`reconnect attempts exhausted (${t.attempts})`);return}re.current+=1,ne.current=setTimeout(()=>{K.current&&nt.current()},t.delayMs)},[]);b(()=>(K.current=!0,re.current=0,r&&tt(),()=>{K.current=!1,Je()}),[]);let ot=f(!1);b(()=>{if(r){if(Re){if(!T)return}else if(Ie){if(!S||!w)return}else return;ot.current||W.current||(ot.current=!0,tt())}},[r,Re,Ie,T,S,w,tt]);let st=()=>{re.current=0,tt()},ct=()=>{if(re.current=0,W.current&&Re){et(!0);return}if(W.current&&Ie){Qe(!0);return}tt()},lt=f(e),ut=f(t);b(()=>{let n=lt.current!==e,r=ut.current!==t;if(lt.current=e,ut.current=t,!(!n&&!r)&&K.current){if(re.current=0,_e.current=!1,n){Je(),tt();return}ct()}},[e,t]);let dt=f(L);b(()=>{dt.current!==L&&(dt.current=L,K.current&&ct())},[L]);let ft=()=>{if(U.current){let e=!U.current.muted;FH(U.current,e),Te(e)}},pt=async()=>{if(ee.current)try{if(document.fullscreenElement){await document.exitFullscreen();return}if(ee.current.requestFullscreen){await ee.current.requestFullscreen();return}let e=U.current;e?.webkitEnterFullscreen&&e.webkitEnterFullscreen()}catch(e){console.warn(`Fullscreen toggle failed: ${e instanceof Error?e.message:e}`)}},mt=async()=>{let e=U.current;if(e)try{if(typeof e.webkitSetPresentationMode==`function`){e.webkitSetPresentationMode(e.webkitPresentationMode===`picture-in-picture`?`inline`:`picture-in-picture`);return}document.pictureInPictureElement?await document.exitPictureInPicture():await e.requestPictureInPicture()}catch(e){console.warn(`PiP toggle failed: ${e instanceof Error?e.message:String(e)}`)}},ht=()=>{if(!U.current)return;let e=document.createElement(`canvas`);e.width=U.current.videoWidth||1280,e.height=U.current.videoHeight||720;let n=e.getContext(`2d`);if(!n)return;n.drawImage(U.current,0,0);let r=document.createElement(`a`);r.download=`${t.replace(/[/:]/g,`-`)}-${Date.now()}.jpg`,r.href=e.toDataURL(`image/jpeg`,.92),r.click()};b(()=>{let e=()=>Oe(!!document.fullscreenElement);document.addEventListener(`fullscreenchange`,e);let t=U.current;return t?.addEventListener(`webkitbeginfullscreen`,e),t?.addEventListener(`webkitendfullscreen`,e),()=>{document.removeEventListener(`fullscreenchange`,e),t?.removeEventListener(`webkitbeginfullscreen`,e),t?.removeEventListener(`webkitendfullscreen`,e)}},[]),b(()=>{let e=U.current,t=typeof document<`u`&&document.pictureInPictureEnabled===!0,n=e!==null&&typeof e.webkitSetPresentationMode==`function`;Ae(t||n)},[]);let[gt,_t]=C(null),[vt,yt]=C(null),[bt,xt]=C(null),[St,Ct]=C(()=>Date.now()),wt=o||s!==void 0;b(()=>{if(!o)return;let e=setInterval(()=>Ct(Date.now()),500);return()=>clearInterval(e)},[o]),b(()=>{if(!wt){_t(null);return}let e={current:null},t=!1,n=async()=>{let n=W.current;if(n)try{let r=await n.getStats();if(t)return;let i=_H({report:r,prev:e.current,now:Date.now(),iceConnectionState:n.iceConnectionState,dtlsState:n.connectionState});e.current=i,_t(i)}catch{}};n();let r=setInterval(()=>{n()},1e3);return()=>{t=!0,clearInterval(r)}},[wt]),b(()=>{if(!wt||!j){yt(null),xt(null);return}let e=!1,t=async()=>{let t=me.current;if(t===null){xt(`no session id on this player yet — nothing to ask the server about`);return}try{let n=await j(t);if(e)return;yt(n),xt(null)}catch(t){if(e)return;xt(t instanceof Error?t.message:String(t))}};t();let n=setInterval(()=>{t()},1e3);return()=>{e=!0,clearInterval(n)}},[wt,j]);let Tt=f(s);Tt.current=s,b(()=>{if(s===void 0)return;let e=()=>{Tt.current?.({at:Date.now(),verdict:SH(Et.current).kind,sessionId:me.current,stats:Et.current,server:Dt.current,serverError:Ot.current,serverWired:j!==void 0})};e();let t=setInterval(e,1e3);return()=>clearInterval(t)},[s===void 0,j]);let Et=f(null);Et.current=gt;let Dt=f(null);Dt.current=vt;let Ot=f(null);Ot.current=bt;let kt=f(null);b(()=>{if(!u){kt.current=null;return}let t=async()=>{let t=W.current;if(t)try{let n=await t.getStats(),r=0,i=0,a=0,o=0,s=0,c=0;n.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`?(r=t.packetsLost??0,i=t.packetsReceived??0,a=t.bytesReceived??0,o=t.timestamp,s=t.jitter??0):t.type===`candidate-pair`&&t.nominated&&typeof t.currentRoundTripTime==`number`&&(c=t.currentRoundTripTime)});let l=rH(kt.current,{pc:t,lost:r,recv:i,bytes:a,ts:o,rttS:c,jitterS:s},{renegotiating:ve.current,probe:UH(e)});kt.current=l.baseline,l.sample!==null&&u(l.sample)}catch{}},n=setInterval(()=>{t()},2e3);return()=>clearInterval(n)},[u,e]);let At=f(null);b(()=>{if(!l){At.current=null;return}let e=async()=>{let e=W.current,t=U.current;if(e)try{let n=await e.getStats(),r=0,i=0,a=0,o=0,s=0,c=0,u=0,d=0;n.forEach(e=>{let t=e;t.type===`inbound-rtp`&&(t.kind??t.mediaType)===`video`&&(r=t.framesReceived??0,i=t.framesDecoded??0,a=t.framesDropped??0,o=t.framesPerSecond??0,s=t.freezeCount??0,c=t.totalFreezesDuration??0,u=t.jitterBufferDelay??0,d=t.jitterBufferEmittedCount??0)});let f=t?.currentTime??0,p=Date.now(),m=At.current,h=d>0?Math.round(u/d*1e3):0;m&&l({dRecv:r-m.recv,dDec:i-m.dec,dDrop:a-m.drop,fps:Math.round(o),dFreeze:s-m.freeze,freezeTotalMs:Math.round(c*1e3),avgJitterMs:h,dCtMs:Math.round((f-m.ct)*1e3),dtMs:p-m.ts,readyState:t?.readyState??-1}),At.current={recv:r,dec:i,drop:a,freeze:s,ct:f,ts:p}}catch{}};e();let t=setInterval(()=>{e()},5e3);return()=>clearInterval(t)},[l]),b(()=>{Te(i);let e=U.current;e&&(FH(e,i),i||e.play().catch(()=>{}))},[i]);let jt=()=>{je||(Ne(!0),Pe.current&&clearTimeout(Pe.current),Pe.current=setTimeout(()=>Ne(!1),3e3))},Mt=()=>{Ne(e=>!e),Pe.current&&clearTimeout(Pe.current)};b(()=>{if(be===`playing`){Ke();let e=setInterval(Ke,2e3);return()=>clearInterval(e)}ze&&Ve.current&&Ue(Ve.current)},[be,ze,Ke]),b(()=>{if(be!==`playing`){Ge(!1);return}let e=U.current;if(!e)return;let t=!1,n=()=>{t||Ge(!0)},r;typeof e.requestVideoFrameCallback==`function`&&(r=e.requestVideoFrameCallback(()=>n())),e.addEventListener(`loadeddata`,n,{once:!0});let i=setTimeout(n,12e3);return()=>{t=!0,clearTimeout(i),r!==void 0&&typeof e.cancelVideoFrameCallback==`function`&&e.cancelVideoFrameCallback(r),e.removeEventListener(`loadeddata`,n)}},[be]);let Nt=ze&&He?He:P??null,Pt=!We&&Nt!==null;return c(`div`,{ref:ee,className:`relative isolate bg-black overflow-hidden group ${m}`,onMouseMove:jt,onMouseEnter:jt,onTouchStart:Mt,children:[v(`video`,{ref:U,autoPlay:r,muted:we,playsInline:!0,className:`w-full h-full object-contain relative z-0`}),Pt&&Nt&&v(`img`,{src:Nt,alt:``,className:`absolute inset-0 w-full h-full object-contain z-[5] transform-gpu pointer-events-none`}),n&&be===`playing`&&v(`div`,{className:`absolute top-2 left-2 z-10 transform-gpu px-2 py-0.5 rounded bg-black/60 text-[10px] text-white font-medium`,children:n}),o&&v(PH,{stats:gt,server:vt,serverError:bt,serverWired:j!==void 0,now:St,sessionId:me.current}),x,a&&!Nt&&be===`connecting`&&c(`div`,{className:`absolute inset-0 z-10 transform-gpu flex flex-col items-center justify-center bg-black/70 gap-2`,children:[v(`svg`,{className:`h-6 w-6 text-white/60 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:v(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeDasharray:`32`,strokeDashoffset:`32`,className:`animate-[dash_1.5s_ease-in-out_infinite]`})}),v(`span`,{className:`text-xs text-white/60`,children:H(`uiLibrary.cameraStreamPlayer.connecting`,`Connecting…`)})]}),a&&!Nt&&(be===`error`||be===`disconnected`)&&c(`div`,{className:`absolute inset-0 z-10 transform-gpu flex flex-col items-center justify-center bg-black/70 gap-2`,children:[v(`svg`,{className:`h-6 w-6 text-red-400`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,children:v(`path`,{d:`M1 1l5.5 5.5M23 23l-5.5-5.5M8.11 15.89a8 8 0 0110.78-10.78M3.64 3.64A12 12 0 0020.36 20.36`,strokeLinecap:`round`})}),v(`span`,{className:`text-xs text-red-400 text-center px-4`,children:be===`error`?Se||H(`uiLibrary.cameraStreamPlayer.failed`,`Connection failed`):H(`uiLibrary.cameraStreamPlayer.disconnected`,`Disconnected`)}),v(`button`,{onClick:st,className:`mt-1 inline-flex items-center gap-1.5 rounded px-3 py-1 text-xs bg-white/10 text-white hover:bg-white/20 transition-colors`,children:H(`uiLibrary.cameraStreamPlayer.reconnect`,`Reconnect`)})]}),a&&Nt&&(be===`connecting`||be===`disconnected`)&&v(`div`,{className:`absolute top-2 left-2 z-10 transform-gpu flex h-6 w-6 items-center justify-center rounded-full bg-black/55`,children:v(`svg`,{className:`h-3.5 w-3.5 text-white/90 animate-spin`,viewBox:`0 0 24 24`,fill:`none`,children:v(`circle`,{cx:`12`,cy:`12`,r:`10`,stroke:`currentColor`,strokeWidth:`3`,strokeLinecap:`round`,strokeDasharray:`32`,strokeDashoffset:`32`,className:`animate-[dash_1.5s_ease-in-out_infinite]`})})}),a&&Nt&&be===`error`&&v(`button`,{onClick:st,title:Se||H(`uiLibrary.cameraStreamPlayer.reconnect`,`Reconnect`),className:`absolute top-2 left-2 z-10 transform-gpu flex h-6 w-6 items-center justify-center rounded-full bg-black/55 text-white/90 hover:bg-black/75 transition-colors`,children:c(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[v(`path`,{d:`M23 4v6h-6M1 20v-6h6`}),v(`path`,{d:`M3.51 9a9 9 0 0114.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0020.49 15`})]})}),a&&be!==`idle`&&be!==`error`&&c(`div`,{className:`absolute bottom-0 inset-x-0 z-20 transform-gpu flex items-center justify-between px-3 py-1.5 bg-gradient-to-t from-black/80 to-transparent transition-opacity duration-200 ${je||Me?`opacity-100 pointer-events-auto`:`opacity-0 pointer-events-none`}`,children:[v(`div`,{className:`flex items-center gap-1`,children:v(JH,{onClick:ft,title:we?H(`uiLibrary.cameraStreamPlayer.unmute`,`Unmute`):H(`uiLibrary.cameraStreamPlayer.mute`,`Mute`),children:we?c(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[v(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),v(`line`,{x1:`23`,y1:`9`,x2:`17`,y2:`15`}),v(`line`,{x1:`17`,y1:`9`,x2:`23`,y2:`15`})]}):c(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[v(`polygon`,{points:`11 5 6 9 2 9 2 15 6 15 11 19 11 5`}),v(`path`,{d:`M19.07 4.93a10 10 0 010 14.14M15.54 8.46a5 5 0 010 7.07`})]})})}),c(`div`,{className:`flex items-center gap-1`,children:[v(JH,{onClick:ht,title:H(`uiLibrary.cameraStreamPlayer.snapshot`,`Take snapshot`),children:c(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:[v(`path`,{d:`M23 19a2 2 0 01-2 2H3a2 2 0 01-2-2V8a2 2 0 012-2h4l2-3h6l2 3h4a2 2 0 012 2z`}),v(`circle`,{cx:`12`,cy:`13`,r:`4`})]})}),ke&&v(JH,{onClick:mt,title:H(`uiLibrary.cameraStreamPlayer.pip`,`Picture-in-Picture`),children:c(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[v(`path`,{d:`M21 9V6a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2h4`}),v(`rect`,{width:`10`,height:`7`,x:`12`,y:`13`,rx:`2`})]})}),v(JH,{onClick:pt,title:De?H(`uiLibrary.cameraStreamPlayer.exitFullscreen`,`Exit fullscreen`):H(`uiLibrary.cameraStreamPlayer.fullscreen`,`Fullscreen`),children:De?v(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:v(`path`,{d:`M8 3v3a2 2 0 01-2 2H3m18 0h-3a2 2 0 01-2-2V3m0 18v-3a2 2 0 012-2h3M3 16h3a2 2 0 012 2v3`})}):v(`svg`,{className:`h-3.5 w-3.5`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,children:v(`path`,{d:`M8 3H5a2 2 0 00-2 2v3m18 0V5a2 2 0 00-2-2h-3m0 18h3a2 2 0 002-2v-3M3 16v3a2 2 0 002 2h3`})})})]})]})]})}function JH({onClick:e,title:t,children:n}){return v(`button`,{onClick:e,title:t,className:`rounded-full p-1.5 min-w-[44px] min-h-[44px] flex items-center justify-center text-white/80 hover:text-white hover:bg-white/20 active:bg-white/30 transition-colors`,children:n})}async function YH(e){if(e.iceGatheringState!==`complete`)return new Promise(t=>{let n=!1,r,i=()=>{n||(n=!0,r&&clearInterval(r),e.removeEventListener(`icegatheringstatechange`,a),t())},a=()=>{e.iceGatheringState===`complete`&&i()};e.addEventListener(`icegatheringstatechange`,a);let o=Date.now();r=setInterval(()=>{let t=e.localDescription?.sdp??``;/ typ host/.test(t)&&Date.now()-o>=600&&i()},100),setTimeout(i,2500)})}function XH({page:e,labels:t,onPageChange:n}){let r=e.page===0,i=e.page>=e.pageCount-1;return c(`nav`,{"aria-label":t.navLabel,className:`flex items-center justify-end gap-2 pt-2`,children:[v(`span`,{"aria-live":`polite`,className:`text-[11px] tabular-nums text-foreground-subtle`,children:t.range(e.from,e.to,e.total)}),v(jl,{type:`button`,variant:`outline`,size:`sm`,icon:ge,"aria-label":t.previous,title:t.previous,disabled:r,onClick:()=>n(e.page-1)}),v(jl,{type:`button`,variant:`outline`,size:`sm`,icon:It,"aria-label":t.next,title:t.next,disabled:i,onClick:()=>n(e.page+1)})]})}function ZH(e,t,n){let r=Math.max(1,Math.floor(n)),i=e.length,a=Math.max(1,Math.ceil(i/r)),o=Math.min(Math.max(0,Math.floor(t)),a-1),s=o*r,c=e.slice(s,s+r);return{pageRows:c,page:o,pageCount:a,from:c.length===0?0:s+1,to:s+c.length,total:i}}var QH={navLabel:`Table pages`,previous:`Previous page`,next:`Next page`,range:(e,t,n)=>`${e}–${t} of ${n}`};E();var $H=`__select`,eU=`cursor-pointer align-middle`;function tU({checked:e,indeterminate:t,disabled:n,label:r,onToggle:i}){let a=f(null);return b(()=>{a.current!==null&&(a.current.indeterminate=t)},[t]),v(FB,{ref:a,"aria-label":r,checked:e,disabled:n,onChange:i,className:eU})}function nU(e,t,n){let r=e.isSelectable??(()=>!0),i=t.filter(r).map(n),a=i.filter(t=>e.selected.has(t)).length,o=i.length>0&&a===i.length,s=()=>{let t=new Set(e.selected);for(let e of i)o?t.delete(e):t.add(e);e.onChange(t)},c=t=>{let n=new Set(e.selected);n.has(t)?n.delete(t):n.add(t),e.onChange(n)};return{key:$H,width:`w-8`,headerRender:()=>v(tU,{checked:o,indeterminate:a>0&&!o,disabled:i.length===0,label:e.pageLabel,onToggle:s}),render:t=>{if(!r(t))return null;let i=n(t);return v(FB,{"aria-label":e.rowLabel(t),checked:e.selected.has(i),onChange:()=>c(i),onClick:e=>e.stopPropagation(),className:eU})}}}function rU({label:e,active:t,dir:n,onSort:r}){return c(`button`,{type:`button`,onClick:r,className:`group/sort inline-flex items-center gap-0.5 hover:text-foreground transition-colors`,children:[v(`span`,{children:e}),t?v(n===`asc`?Ci:de,{className:`h-3 w-3 flex-shrink-0`}):v(Ci,{className:$(`h-3 w-3 flex-shrink-0 opacity-0 transition-opacity`,`group-hover/sort:opacity-30`)})]})}function iU(e,t){return!e||t===null?`asc`:t===`asc`?`desc`:null}function aU(e,t){let n=iU(e!==null&&e.columnKey===t,e===null?null:e.dir);return n===null?null:{columnKey:t,dir:n}}function oU(e,t){return typeof e==`number`&&typeof t==`number`?e-t:String(e).localeCompare(String(t))}function sU(e,t,n){if(t===null)return[...e];let r=t.dir===`asc`?1:-1;return e.toSorted((e,t)=>{let i=n(e),a=n(t);return i===null||a===null?i===a?0:i===null?1:-1:r*oU(i,a)})}function cU(e,t){return e===null||e.columnKey!==t?`none`:e.dir===`asc`?`ascending`:`descending`}E();var lU=`max-h-[60vh]`,uU={left:`text-left`,right:`text-right`,center:`text-center`};function dU({columns:e,rows:t,rowKey:n,onRowClick:r,minWidthPx:i=480,emptyMessage:a,className:o,bordered:s=!0,rowClassName:l,maxBodyHeight:u,fill:f=!1,defaultSort:m,sort:h,onSortChange:g,pageSize:_,page:y,onPageChange:b,paginationLabels:x=QH,selection:S,renderExpanded:w,isExpanded:T}){let[E,D]=C(m??null),[O,k]=C(0),A=h===void 0?E:h,j=e=>{h===void 0&&D(e),g?.(e)},M=e=>{y===void 0&&k(e),b?.(e)},N=f||u!==void 0,P=f?`h-full min-h-0`:u??``,F=p(()=>A===null?void 0:e.find(e=>e.key===A.columnKey&&e.sortValue!==void 0),[e,A]),I=F?.sortValue,L=p(()=>I===void 0?t:sU(t,A,I),[t,A,I]),R=F===void 0?null:A,z=_===void 0?null:ZH(L,y??O,_),B=z===null?L:z.pageRows,V=z!==null&&z.pageCount>1?v(XH,{page:z,labels:x,onPageChange:M}):null,H=S===void 0?e:[nU(S,B,e=>String(n?n(e,t.indexOf(e)):t.indexOf(e))),...e];if(t.length===0&&a)return v(`div`,{className:`rounded-lg ${s?`border border-border`:``} bg-surface px-3 py-4 text-xs text-foreground-subtle text-center ${o??``}`,children:a});if(t.length===0)return null;let U=v(`div`,{className:[`rounded-lg`,s?`border border-border`:``,`bg-surface overflow-x-auto`,N?`${P} overflow-y-auto`:``,f?`min-h-0 flex-1`:``,!f&&V===null?o??``:``].filter(Boolean).join(` `),children:c(`table`,{className:`w-full text-xs ${N?`border-separate border-spacing-0`:``}`,style:{minWidth:`${i}px`},children:[v(`thead`,{className:`bg-surface`,children:v(`tr`,{children:H.map(e=>{let t=e.align??`left`,n=e.nowrap??!0,r=e.sortValue!==void 0,i=R!==null&&R.columnKey===e.key;return v(`th`,{"aria-sort":r?cU(R,e.key):void 0,title:r?void 0:e.notSortableReason,className:[`px-3 py-2 text-foreground-subtle font-medium bg-surface border-b border-border`,N?`sticky top-0 z-10`:``,uU[t],n?`whitespace-nowrap`:``,e.width??``].filter(Boolean).join(` `),children:r?v(rU,{label:e.headerRender?e.headerRender():e.header,active:i,dir:i&&R!==null?R.dir:`asc`,onSort:()=>j(aU(A,e.key))}):e.headerRender?e.headerRender():e.header},e.key)})})}),v(`tbody`,{children:B.map((e,t)=>{let i=n?n(e,t):t,a=l?.(e,t)??``,o=r!==void 0,s=w!==void 0&&T?.(e)===!0?w(e,t):null;return c(d,{children:[v(`tr`,{onClick:o?()=>r(e,t):void 0,className:[o?`cursor-pointer hover:bg-primary/5`:`hover:bg-primary/5`,a].filter(Boolean).join(` `),children:H.map(n=>{let r=n.align??`left`,i=n.nowrap??!0;return v(`td`,{"data-cell":n.key,className:[`px-3 py-2 text-foreground border-b border-border`,uU[r],i?`whitespace-nowrap`:``].filter(Boolean).join(` `),children:n.render(e,t)},n.key)})}),s!==null&&v(`tr`,{"data-expanded-row":``,className:`bg-surface`,children:v(`td`,{colSpan:H.length,className:`border-b border-border px-3 py-2`,children:s})})]},i)})})]})});return V===null?f?v(`div`,{className:`flex min-h-0 flex-1 flex-col ${o??``}`,children:U}):U:c(`div`,{className:f?`flex min-h-0 flex-1 flex-col ${o??``}`:o,children:[U,V]})}function fU({label:e,children:t,actions:n,elements:r=`plain`,className:i,valueClassName:a}){let o=r===`description`?`dt`:`span`,s=r===`description`?`dd`:`div`;return c(`div`,{"data-setting-row":``,className:$(H,i),children:[v(o,{"data-setting-row-label":``,className:sr,children:e}),c(s,{"data-setting-row-value":``,className:at,children:[v(`span`,{"data-setting-row-value-text":``,className:$(ht,a),children:t}),n!==void 0&&v(`span`,{className:`flex shrink-0 items-center gap-0.5`,children:n})]})]})}function pU({items:e,className:t}){return v(`dl`,{className:$(`flex flex-col`,t),children:e.map(e=>v(fU,{elements:`description`,label:e.key,children:e.value},e.key))})}function mU({headingId:e,title:t,icon:n,actions:r,testId:i,children:a}){return c(`section`,{"aria-labelledby":e,className:ut,"data-testid":i,children:[c(`header`,{className:`${fr} flex min-h-9 flex-wrap items-center gap-2`,children:[n!==void 0&&v(n,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`,"aria-hidden":!0}),v(`h2`,{id:e,className:`${Ut} min-w-0 flex-1`,children:t}),r]}),a]})}var hU=[`host`,`srflx`,`prflx`,`relay`];function gU(e){if(e===void 0||!/^\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function _U(e){return e.length===0?`unknown`:e.toLowerCase().endsWith(`.local`)?`mdns`:e.includes(`:`)?`ipv6`:/^\d{1,3}(\.\d{1,3}){3}$/.test(e)?`ipv4`:`unknown`}function vU(e){let t=e.split(`.`);if(t.length!==4)return null;let n=t.map(e=>Number(e));return n.every(e=>Number.isInteger(e)&&e>=0&&e<=255)?n:null}function yU(e){let t=vU(e);if(t===null)return`unknown`;let[n=-1,r=-1]=t;return n===127?`loopback`:n===169&&r===254?`link-local`:n===10||n===192&&r===168||n===172&&r>=16&&r<=31?`lan`:n===100&&r>=64&&r<=127?`tailscale`:`public`}function bU(e){let t=e.toLowerCase();return t===`::1`?`loopback`:/^fe[89ab]/.test(t)?`link-local`:t.startsWith(`fd7a:115c:a1e0:`)?`tailscale`:/^f[cd]/.test(t)?`lan`:`public`}function xU(e){switch(_U(e)){case`mdns`:return`mdns`;case`ipv4`:return yU(e);case`ipv6`:return bU(e);default:return`unknown`}}function SU(e){let t=e.trim().replace(/^a=/,``);if(!t.startsWith(`candidate:`))return null;let n=t.slice(10).split(/\s+/),r=n[4]??``,i=n.indexOf(`typ`),a=i>=0?n[i+1]:void 0,o=hU.find(e=>e===a)??`unknown`,s=n.indexOf(`raddr`),c=n.indexOf(`rport`),l=n[2]?.toLowerCase();return{type:o,protocol:l!==void 0&&l.length>0?l:null,address:r.length>0?r:null,port:gU(n[5]),relatedAddress:s>=0?n[s+1]??null:null,relatedPort:c>=0?gU(n[c+1]):null,family:_U(r),scope:xU(r),raw:t}}function CU(e){return e.split(/\r?\n/).map(e=>e.trim()).filter(e=>e.startsWith(`a=candidate:`))}function wU(e){return`${e.type}|${e.protocol??`?`}|${e.address??`?`}|${String(e.port??`?`)}`}var TU=new Set([`loopback`,`link-local`,`lan`,`tailscale`,`mdns`]);function EU(){return{host:0,srflx:0,prflx:0,relay:0,unknown:0}}function DU(e){let t=EU();for(let n of e)t[n.type]+=1;return t}function OU(e,t){return!e&&t.length===0?`unknown`:t.length===0?`none`:t.some(e=>e.type===`srflx`||e.type===`relay`||e.type===`host`&&e.scope===`public`)?`public-path`:t.every(e=>TU.has(e.scope))?`private-only`:`public-path`}function kU(e){let t=new Set,n=[],r=e=>{let r=SU(e);if(r===null)return!1;let i=wU(r);return t.has(i)?!1:(t.add(i),n.push(r),!0)},i=0;for(let t of CU(e.sdpAnswer??``))r(t)&&(i+=1);let a=0;for(let t of e.trickled)r(t)&&(a+=1);return{candidates:n,fromSdp:i,fromTrickle:a,countByType:DU(n),hasSrflx:n.some(e=>e.type===`srflx`),hasRelay:n.some(e=>e.type===`relay`),hasPublicHost:n.some(e=>e.type===`host`&&e.scope===`public`),flag:OU(e.sdpAnswer!==null,n),trickleDone:e.trickleDone}}function AU(e){return e.map(e=>/^turns?:/i.test(e.url)&&e.username!==void 0&&e.credential!==void 0?{urls:e.url,username:e.username,credential:e.credential}:{urls:e.url})}function jU(e){return`url`in e&&typeof e.url==`string`&&e.url.length>0?e.url:null}function MU(e){return`relayProtocol`in e&&typeof e.relayProtocol==`string`&&e.relayProtocol.length>0?e.relayProtocol:null}function NU(e,t){let n=e.candidate?.candidate;if(e.candidate===null||n===void 0||n.length===0)return null;let r=SU(n);return r===null?null:{candidate:r,url:jU(e),relayProtocol:MU(e.candidate),tMs:t}}function PU(e){return e instanceof Error?e.message:String(e)}async function FU(e,t,n=8e3){let r=performance.now(),i=[],a=new RTCPeerConnection({iceServers:AU(e),iceTransportPolicy:t});try{a.createDataChannel(`probe`);let e=new Promise(e=>{let t=setTimeout(()=>e(!0),n);a.addEventListener(`icecandidate`,n=>{if(n.candidate===null){clearTimeout(t),e(!1);return}let a=NU(n,performance.now()-r);a!==null&&i.push(a)})});await a.setLocalDescription(await a.createOffer());let t=await e;return{candidates:i,durationMs:performance.now()-r,timedOut:t,error:null}}catch(e){return{candidates:i,durationMs:performance.now()-r,timedOut:!1,error:PU(e)}}finally{a.close()}}function IU(e){let t=new Map,n=[],r={id:null};e.forEach(e=>{let i=e;i.id!==void 0&&t.set(i.id,i),i.type===`candidate-pair`&&n.push(i),i.type===`transport`&&i.selectedCandidatePairId!==void 0&&(r.id=i.selectedCandidatePairId)});let i=n.find(e=>r.id!==null&&e.id===r.id)??n.find(e=>e.selected===!0)??n.find(e=>e.nominated===!0&&e.state===`succeeded`)??null;if(i===null)return{rttMs:null,relayProtocol:null};let a=i.localCandidateId===void 0?void 0:t.get(i.localCandidateId);return{rttMs:typeof i.currentRoundTripTime==`number`?Math.round(i.currentRoundTripTime*1e3):null,relayProtocol:typeof a?.relayProtocol==`string`?a.relayProtocol:null}}async function LU(e,t=1e4){let n=performance.now(),r={iceServers:AU(e),iceTransportPolicy:`relay`},i=new RTCPeerConnection(r),a=new RTCPeerConnection(r);try{i.createDataChannel(`probe`),i.addEventListener(`icecandidate`,e=>{e.candidate&&a.addIceCandidate(e.candidate).catch(()=>void 0)}),a.addEventListener(`icecandidate`,e=>{e.candidate&&i.addIceCandidate(e.candidate).catch(()=>void 0)});let e=new Promise(e=>{let n=setTimeout(()=>e(!1),t);i.addEventListener(`iceconnectionstatechange`,()=>{let t=i.iceConnectionState;t===`connected`||t===`completed`?(clearTimeout(n),e(!0)):(t===`failed`||t===`closed`)&&(clearTimeout(n),e(!1))})}),r=await i.createOffer();await i.setLocalDescription(r),await a.setRemoteDescription(r);let o=await a.createAnswer();await a.setLocalDescription(o),await i.setRemoteDescription(o);let s=await e,c=s?IU(await i.getStats()):{rttMs:null,relayProtocol:null};return{connected:s,state:i.iceConnectionState,rttMs:c.rttMs,relayProtocol:c.relayProtocol,durationMs:performance.now()-n,error:null}}catch(e){return{connected:!1,state:i.iceConnectionState,rttMs:null,relayProtocol:null,durationMs:performance.now()-n,error:PU(e)}}finally{i.close(),a.close()}}function RU(e){return e.relatedAddress===null||e.relatedAddress===`0.0.0.0`||e.relatedAddress===`::`||e.relatedPort===null||e.relatedPort===0}function zU(e){return RU(e)?`public:${e.address}`:`base:${e.relatedAddress??`?`}:${String(e.relatedPort??`?`)}`}function BU(e,t=[]){return{kind:`unknown`,confidence:`none`,reason:e,mappings:t}}function VU(e){let t=[];for(let n of e){let e=/^stuns?:([^?]+)/i.exec(n.trim());if(e===null)continue;let r=`stun:${(e[1]??``).toLowerCase()}`;t.includes(r)||t.push(r)}return t}function HU(e,t,n=Fn){let r=e.filter(e=>e.protocol.toLowerCase()===`udp`);if(t<2)return BU(n(`uiLibrary.natMapping.needTwo`,`needs two STUN destinations to compare; only one was queried`));if(r.length===0)return BU(n(`uiLibrary.natMapping.noSrflx`,`no server-reflexive candidate: STUN unreachable or blocked from this browser`));let i=new Map;for(let e of r){let t=zU(e);i.set(t,[...i.get(t)??[],e])}let a=[...new Set(r.map(e=>`${e.address}:${String(e.port)}`))];for(let e of i.values()){let t=new Set(e.map(e=>`${e.address}:${String(e.port)}`));if(t.size>1)return{kind:`endpoint-dependent`,confidence:`confirmed`,reason:n(`uiLibrary.natMapping.symmetric`,`one local socket got {{count}} different public mappings — symmetric NAT: only a TURN relay reaches this browser`,{count:t.size}),mappings:a}}let o=[...i.values()].some(e=>new Set(e.map(e=>e.url).filter(e=>e!==null)).size>=2);return{kind:`endpoint-independent`,confidence:o?`confirmed`:`likely`,reason:o?n(`uiLibrary.natMapping.confirmedSame`,`two STUN destinations saw the same public mapping`):n(`uiLibrary.natMapping.likelySame`,`one public mapping across the STUN destinations (the browser drops an identical second candidate, so the second answer cannot be told from no answer)`),mappings:a}}var UU=[`stun:stun.l.google.com:19302`,`stun:stun1.l.google.com:19302`];function WU(e){let t=e.toLowerCase();return t.startsWith(`turns:`)?`turns`:t.startsWith(`turn:`)?`turn`:t.startsWith(`stun:`)||t.startsWith(`stuns:`)?`stun`:`other`}function GU(e){return/[?&]transport=([a-z]+)/i.exec(e)?.[1]?.toLowerCase()??null}function KU(e){let t=[];for(let n of e){let e=typeof n.urls==`string`?[n.urls]:n.urls;for(let r of e)t.some(e=>e.id===r)||t.push({id:r,url:r,...n.username===void 0?{}:{username:n.username},...n.credential===void 0?{}:{credential:n.credential},scheme:WU(r),transport:GU(r),hasCredentials:n.credential!==void 0})}return t}function qU(e,t,n){let r=t.candidates.find(e=>e.candidate.type===`srflx`),i=t.candidates.find(e=>e.candidate.type===`relay`),a=r!==void 0&&r.candidate.address!==null&&r.candidate.port!==null?`${r.candidate.address}:${String(r.candidate.port)}`:null;return{id:e.id,url:e.url,scheme:e.scheme,transport:e.transport,srflx:a,relay:i!==void 0,relayProtocol:n?.relayProtocol??i?.relayProtocol??null,eventUrl:i?.url??r?.url??null,relayConnected:n?.connected??null,rttMs:n?.rttMs??null,timedOut:t.timedOut,error:t.error??n?.error??null}}var JU=6e3,YU=8e3;function XU(e){return[{url:e.url,...e.username===void 0?{}:{username:e.username},...e.credential===void 0?{}:{credential:e.credential}}]}async function ZU(e){let t=XU(e);return qU(e,await FU(t,`all`,JU),e.scheme===`turn`||e.scheme===`turns`?await LU(t,YU):null)}function QU(e){let t=[...VU(e.map(e=>e.url))];for(let e of VU(UU)){if(t.length>=2)break;t.includes(e)||t.push(e)}return t}function $U(e){let t=[];for(let n of e.candidates){let e=n.candidate;e.type!==`srflx`||e.address===null||e.port===null||e.protocol===null||t.push({address:e.address,port:e.port,protocol:e.protocol,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort,url:n.url})}return t}async function eW(e,t=Fn){let n=QU(e),r=await FU(n.map(e=>({url:e})),`all`,JU);return{destinations:n,verdict:HU($U(r),n.length,t),error:r.error}}var tW=`unknown`;function nW(e,t){return e===null?tW:t(e)}var rW=e=>nW(e,e=>`${String(Math.round(e))} ms`),iW=e=>nW(e,e=>e.toLocaleString()),aW=e=>nW(e,e=>e<1024?`${String(e)} B`:e<1024*1024?`${(e/1024).toFixed(1)} KiB`:`${(e/(1024*1024)).toFixed(2)} MiB`),oW=e=>nW(e,e=>`${e.toFixed(1)} %`),sW=e=>nW(e,e=>e);E();var cW={stun:`info`,turn:`warning`,turns:`success`,other:`default`};function lW(e){return e instanceof Error?e.message:String(e)}function uW(e,t,n){return e===null?v(`span`,{className:`text-foreground-subtle`,children:tW}):v(`span`,{className:e?`text-success`:`text-danger`,children:e?t:n})}function dW(e){return[{key:`endpoint`,header:e(`uiLibrary.endpointTest.colEndpoint`,`Endpoint`),nowrap:!1,render:e=>v(`span`,{className:`break-all font-mono text-[11px]`,children:e.url})},{key:`srflx`,header:e(`uiLibrary.endpointTest.colMapped`,`Mapped (srflx)`),render:t=>v(`span`,{className:`font-mono text-[11px]`,children:t.srflx??e(`uiLibrary.endpointTest.none`,`none`)})},{key:`relay`,header:e(`uiLibrary.endpointTest.colRelay`,`Relay`),render:t=>t.scheme===`stun`?v(`span`,{className:`text-foreground-subtle`,children:e(`uiLibrary.endpointTest.na`,`n/a`)}):uW(t.relay,e(`uiLibrary.endpointTest.allocated`,`allocated`),e(`uiLibrary.endpointTest.none`,`none`))},{key:`proto`,header:e(`uiLibrary.endpointTest.colProto`,`Relay protocol`),render:t=>t.scheme===`stun`?e(`uiLibrary.endpointTest.na`,`n/a`):sW(t.relayProtocol)},{key:`connect`,header:e(`uiLibrary.endpointTest.colConnect`,`Relay connect`),render:t=>t.relayConnected===null?v(`span`,{className:`text-foreground-subtle`,children:e(`uiLibrary.endpointTest.na`,`n/a`)}):uW(t.relayConnected,e(`uiLibrary.endpointTest.connected`,`connected`),e(`uiLibrary.endpointTest.failed`,`failed`))},{key:`rtt`,header:`RTT`,align:`right`,render:e=>rW(e.rttMs)},{key:`url`,header:e(`uiLibrary.endpointTest.colUrl`,`Event url`),nowrap:!1,render:e=>v(`span`,{className:`break-all font-mono text-[10px]`,children:sW(e.eventUrl)})},{key:`note`,header:e(`uiLibrary.endpointTest.colNote`,`Note`),nowrap:!1,render:t=>v(`span`,{className:Ni,children:t.error??(t.timedOut?e(`uiLibrary.endpointTest.timedOut`,`gathering timed out`):``)})}]}function fW(e,t){switch(t){case`endpoint-independent`:return e(`uiLibrary.endpointTest.natIndependent`,`Endpoint-independent mapping`);case`endpoint-dependent`:return e(`uiLibrary.endpointTest.natDependent`,`Symmetric NAT (endpoint-dependent)`);case`unknown`:return e(`uiLibrary.endpointTest.natUnknown`,`Unknown`)}}function pW({result:e}){let t=q(),{verdict:n}=e,r=n.kind===`endpoint-independent`?`success`:n.kind===`endpoint-dependent`?`danger`:`default`;return v(`div`,{className:ue,"data-testid":`nat-check-result`,children:v(pU,{items:[{key:t(`uiLibrary.endpointTest.natMapping`,`NAT mapping`),value:c(`span`,{className:`flex flex-wrap items-center gap-1.5`,children:[v(zk,{variant:r,children:fW(t,n.kind)}),n.confidence!==`none`&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:n.confidence})]})},{key:t(`uiLibrary.endpointTest.why`,`Why`),value:v(`span`,{className:`text-xs`,children:n.reason})},{key:t(`uiLibrary.endpointTest.mappings`,`Mappings seen`),value:v(`span`,{className:`font-mono text-[11px]`,children:n.mappings.length>0?n.mappings.join(`, `):t(`uiLibrary.endpointTest.none`,`none`)})},{key:t(`uiLibrary.endpointTest.stunQueried`,`STUN queried`),value:v(`span`,{className:`break-all font-mono text-[11px]`,children:e.destinations.join(`, `)})},...e.error===null?[]:[{key:t(`uiLibrary.endpointTest.error`,`Error`),value:e.error}]]})})}function mW({rows:e}){let t=q(),n=p(()=>dW(t),[t]);return v(mU,{headingId:`webrtc-diag-endpoint-results`,title:t(`uiLibrary.endpointTest.results`,`Per-endpoint results`),icon:Le,children:v(dU,{columns:n,rows:e,rowKey:e=>e.id,bordered:!1,minWidthPx:760})})}function hW({result:e}){return v(mU,{headingId:`webrtc-diag-nat`,title:q()(`uiLibrary.endpointTest.natTitle`,`NAT mapping (this browser)`),icon:se,children:v(pW,{result:e})})}function gW({endpoint:e,checked:t,onToggle:n}){let r=q();return c(`label`,{className:`${Ft} flex cursor-pointer items-center gap-2 hover:bg-surface-hover/40`,children:[v(FB,{checked:t,onChange:()=>n(e.id)}),v(zk,{variant:cW[e.scheme],className:`shrink-0 uppercase text-[10px]`,children:e.scheme}),v(`span`,{className:`min-w-0 flex-1 break-all font-mono text-[11px] text-foreground`,children:e.url}),e.transport!==null&&v(`span`,{className:`text-[10px] text-foreground-subtle uppercase`,children:e.transport}),e.hasCredentials&&v(`span`,{className:`text-[10px] text-foreground-subtle text-success`,children:r(`uiLibrary.endpointTestCard.authWord`,`auth`)})]})}function _W({loadServers:e}){let t=q(),[n,r]=C(null),[i,a]=C(null),[o,s]=C(!1),[l,u]=C(new Set),[d,f]=C(null),[m,h]=C([]),[g,y]=C(null),x=_(async()=>{s(!0),a(null);try{let t=KU(await e());r(t),u(new Set(t.map(e=>e.id)))}catch(e){a(lW(e))}finally{s(!1)}},[e]);b(()=>{x()},[x]);let S=p(()=>(n??[]).filter(e=>l.has(e.id)),[n,l]),w=_(e=>{u(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),T=_(async()=>{f(`endpoints`),h([]);let e=[];for(let t of S)e.push(await ZU(t)),h([...e]);f(null)},[S]),E=_(async()=>{f(`nat`),y(null);try{y(await eW(n??[],t))}finally{f(null)}},[n,t]),D=d!==null;return c(`div`,{className:`space-y-3 sm:space-y-4`,children:[v(mU,{headingId:`webrtc-diag-ice-servers`,title:n===null?t(`uiLibrary.endpointTest.ice`,`ICE servers`):t(`uiLibrary.endpointTest.iceCount`,`ICE servers ({{count}})`,{count:n.length}),icon:De,testId:`webrtc-diag-ice-servers`,actions:c(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[c(gA,{variant:`ghost`,onClick:()=>void x(),disabled:o||D,children:[o?v(Un,{className:`h-3 w-3 animate-spin`}):v(_e,{className:`h-3 w-3`}),t(`uiLibrary.endpointTest.reload`,`Reload`)]}),c(gA,{variant:`outline`,onClick:()=>void E(),disabled:D||n===null,children:[d===`nat`?v(Un,{className:`h-3 w-3 animate-spin`}):v(se,{className:`h-3 w-3`}),t(`uiLibrary.endpointTest.checkNat`,`Check NAT`)]}),c(gA,{onClick:()=>void T(),disabled:D||S.length===0,children:[d===`endpoints`?v(Un,{className:`h-3 w-3 animate-spin`}):v(Le,{className:`h-3 w-3`}),t(`uiLibrary.endpointTest.testEach`,`Test each endpoint`)]})]}),children:c(`div`,{className:`divide-y divide-border/50`,children:[i!==null&&v(`div`,{className:`px-3 sm:px-4 py-1.5 sm:py-2 text-xs text-danger`,children:t(`uiLibrary.endpointTest.loadFailed`,`Failed to load ICE servers: {{error}}`,{error:i})}),i===null&&n===null&&v(`div`,{className:`px-3 sm:px-4 py-1.5 sm:py-2 text-[10px] text-foreground-subtle`,children:t(`uiLibrary.endpointTest.loading`,`Loading…`)}),n!==null&&n.length===0&&v(`div`,{className:`px-3 sm:px-4 py-1.5 sm:py-2 text-[10px] text-foreground-subtle`,children:t(`uiLibrary.endpointTest.noServers`,`No ICE servers configured. Add a TURN provider under TURN Servers.`)}),(n??[]).map(e=>v(gW,{endpoint:e,checked:l.has(e.id),onToggle:w},e.id))]})}),m.length>0&&v(mW,{rows:m}),g!==null&&v(hW,{result:g})]})}var vW=5*6e4,yW=720*6e4,bW=`camstack:turn-servers:v1`;function xW(){let e=globalThis;try{return e.localStorage??null}catch{return null}}function SW(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.fetchedAt!=`number`||!Array.isArray(t.servers)?!1:t.servers.every(e=>{if(typeof e!=`object`||!e)return!1;let t=e;return!(!(typeof t.urls==`string`||Array.isArray(t.urls)&&t.urls.every(e=>typeof e==`string`))||t.username!==void 0&&typeof t.username!=`string`||t.credential!==void 0&&typeof t.credential!=`string`)})}var CW=class{freshTtlMs;staleCapMs;storage;now;storageKey;memory=new WeakMap;inflight=new WeakMap;constructor(e={}){this.freshTtlMs=e.freshTtlMs??vW,this.staleCapMs=e.staleCapMs??yW,this.storage=`storage`in e?e.storage??null:xW(),this.now=e.now??(()=>Date.now()),this.storageKey=e.storageKey??bW}async getOrFetch(e,t){let n=this.now(),r=this.memory.get(e)??this.readStorage();if(r){let i=n-r.fetchedAt;if(i<this.freshTtlMs)return r.servers;if(i<this.staleCapMs)return this.startFetch(e,t,r),r.servers}return this.startFetch(e,t,r)}startFetch(e,t,n){let r=this.inflight.get(e);if(r)return r;let i=(async()=>{try{let n=await t();if(n.length>0){let t={servers:n,fetchedAt:this.now()};this.memory.set(e,t),this.writeStorage(t)}return n}catch{return n?.servers}})().finally(()=>{this.inflight.delete(e)});return this.inflight.set(e,i),i}readStorage(){if(this.storage)try{let e=this.storage.getItem(this.storageKey);if(e===null)return;let t=JSON.parse(e);return SW(t)?t:void 0}catch{return}}writeStorage(e){if(this.storage)try{this.storage.setItem(this.storageKey,JSON.stringify(e))}catch{}}};E();var wW=new CW;function TW(e,t,n=5e3){let[r,i]=C([]);b(()=>{if(t===null)return;let r=!1,a=()=>{e.webrtcSession.listStreams.query({deviceId:t}).then(e=>{r||i(e)}).catch(()=>{})};a();let o=setInterval(a,n);return()=>{r=!0,clearInterval(o)}},[e,t,n]);let[a,o]=C(null);b(()=>{if(t===null)return;let n=!1;return e.pipelineOrchestrator&&e.pipelineOrchestrator.getCameraMetrics.query({deviceId:t}).then(e=>{n||!e||o({phase:e.phase,detectionFps:e.actualFps,avgInferenceMs:e.avgInferenceTimeMs,droppedFrames:e.droppedFrames})}).catch(()=>{}),()=>{n=!0}},[e,t]),To(`pipeline.camera-metrics-snapshot`,e=>{if(t===null)return;let n=e.data;n.deviceId!==t||!n.metrics||o({phase:n.metrics.phase,detectionFps:n.metrics.actualFps,avgInferenceMs:n.metrics.avgInferenceTimeMs,droppedFrames:n.metrics.droppedFrames})});let{streams:s,hasWebrtc:c}=p(()=>t===null||r.length===0?{streams:[],hasWebrtc:!1}:{streams:r.map(e=>({id:e.id,label:e.label,target:e.target,status:e.status,inputFps:e.inputFps,bitrateKbps:e.bitrateKbps})),hasWebrtc:!0},[t,r]),l=_(async()=>{let t=e.turnProvider;if(t)return wW.getOrFetch(e,async()=>(await t.getTurnServers.query()).map(e=>({urls:typeof e.urls==`string`?e.urls:[...e.urls],...e.username===void 0?{}:{username:e.username},...e.credential===void 0?{}:{credential:e.credential}})))},[e]);b(()=>{l()},[l]);let u=_(async(n,r)=>{if(t===null)throw Error(`No device selected`);let i=await e.webrtcSession.createSession.mutate({deviceId:t,target:n,hints:r}),a=await l();return{sessionId:i.sessionId,sdpOffer:i.sdpOffer,...a?{iceServers:a}:{}}},[e,t,l]),d=_(async(n,r,i,a)=>{if(t===null)throw Error(`No device selected`);return e.webrtcSession.handleOffer.mutate({deviceId:t,target:n,sdpOffer:r,...i===void 0?{}:{sessionId:i},...a===void 0?{}:{hints:a}})},[e,t]),f=_(async(n,r)=>{if(t===null)throw Error(`No device selected`);await e.webrtcSession.handleAnswer.mutate({deviceId:t,sessionId:n,sdpAnswer:r})},[e,t]);return{streams:s,hasWebrtc:c,pipelineMetrics:a,createSession:u,handleOffer:d,getIceServers:l,addIceCandidate:_(async(n,r)=>{t!==null&&await e.webrtcSession.addIceCandidate.mutate({deviceId:t,sessionId:n,candidate:r.candidate??``,sdpMid:r.sdpMid??null,sdpMLineIndex:r.sdpMLineIndex??null}).catch(()=>{})},[e,t]),getIceCandidates:_(async n=>t===null?{candidates:[],done:!0}:e.webrtcSession.getIceCandidates.query({deviceId:t,sessionId:n}),[e,t]),sendAnswer:f,closeSession:_(async n=>{t!==null&&await e.webrtcSession.closeSession.mutate({deviceId:t,sessionId:n}).catch(()=>{})},[e,t]),getSessionState:_(async n=>{if(t===null)return{pendingRenegotiation:null};try{return await e.webrtcSession.getSessionState.query({deviceId:t,sessionId:n})}catch{return{pendingRenegotiation:null}}},[e,t]),getSessionDebug:_(async n=>{if(t===null)throw Error(`getSessionDebug: no device bound to this player`);return e.webrtcSession.getSessionDebug.query({deviceId:t,sessionId:n})},[e,t]),applyDownlinkProbe:_(async(n,r)=>{let i=e.webrtcSession.applyDownlinkProbe;if(t===null||i===void 0)throw Error(`applyDownlinkProbe: not available for this player`);return i.mutate({deviceId:t,sessionId:n,downlinkMbps:r})},[e,t])}}var EW={healthy:`success`,"loss-keyframe":`warning`,transport:`danger`,"hub-dtls":`danger`,"media-black-hole":`danger`,"hub-not-sending":`danger`,unknown:`default`};function DW(e,t){switch(e){case`public-path`:return t(`uiLibrary.runReport.flagPublicPath`,`has a public path (srflx / relay / public host)`);case`private-only`:return t(`uiLibrary.runReport.flagPrivateOnly`,`LAN/Tailscale only, no srflx/relay`);case`none`:return t(`uiLibrary.runReport.flagNone`,`answered with no candidate`);case`unknown`:return t(`uiLibrary.runReport.flagUnknown`,`no answer received`)}}function OW(e,t){let n=e.address===null?t(`uiLibrary.runReport.unknown`,`unknown`):`${e.address}:${e.port===null?`?`:String(e.port)}`;return`${e.type} ${e.protocol??`?`} ${n} · ${e.scope}`}function kW(e,t){let n=Object.entries(e).filter(([,e])=>e>0).map(([e,t])=>`${String(t)} ${e}`);return n.length>0?n.join(` · `):t(`uiLibrary.runReport.none`,`none`)}function AW({title:e,children:t}){return c(`div`,{className:`space-y-0.5`,children:[v(`div`,{className:Ut,children:e}),t]})}function jW({report:e,title:t}){let n=q(),{hub:r,timeline:i,path:a,media:o,verdict:s,local:l}=e;return c(`section`,{className:ut,"data-testid":`webrtc-diag-run-${e.policy}`,children:[c(`header`,{className:`${fr} flex flex-wrap items-center gap-2`,children:[v(`h3`,{className:`${Ut} min-w-0 flex-1`,children:t}),v(zk,{variant:EW[s.layer],children:s.title})]}),c(`div`,{className:`${ue} space-y-3`,children:[v(`p`,{className:`text-xs text-foreground`,children:s.detail}),c(AW,{title:n(`uiLibrary.runReport.hubCandidates`,`Hub candidates`),children:[v(pU,{items:[{key:n(`uiLibrary.runReport.offered`,`Offered`),value:c(`span`,{className:`flex flex-wrap items-center gap-1.5 text-xs`,children:[kW(r.countByType,n),v(zk,{variant:r.flag===`private-only`?`warning`:r.flag===`public-path`?`success`:`default`,children:DW(r.flag,n)})]})},{key:n(`uiLibrary.runReport.source`,`Source`),value:`${n(`uiLibrary.runReport.sourceCounts`,`{{sdp}} in the answer SDP · {{trickled}} trickled`,{sdp:r.fromSdp,trickled:r.fromTrickle})}${r.trickleDone===!0?` · ${n(`uiLibrary.runReport.gatheringDone`,`gathering done`)}`:``}`}]}),r.candidates.length>0&&v(`ul`,{className:`mt-1 space-y-0.5 font-mono text-[10px] text-foreground-subtle`,children:r.candidates.map(e=>v(`li`,{className:`break-all`,children:OW(e,n)},e.raw))})]}),v(AW,{title:n(`uiLibrary.runReport.timeline`,`Timeline`),children:v(pU,{items:[{key:`ICE connected`,value:rW(i.iceConnectedMs)},{key:`DTLS connected`,value:rW(i.dtlsConnectedMs)},{key:n(`uiLibrary.runReport.firstFrame`,`First frame`),value:rW(i.firstFrameMs)},{key:`ICE · DTLS final`,value:`${sW(i.iceFinalState)} · ${sW(i.dtlsFinalState)}`}]})}),v(AW,{title:n(`uiLibrary.runReport.path`,`Path`),children:v(pU,{items:[{key:n(`uiLibrary.runReport.selectedPair`,`Selected pair`),value:a.pairType===null?sW(null):n(`uiLibrary.runReport.pairType`,`{{type}} (local/remote)`,{type:a.pairType})},{key:`Protocol · RTT`,value:`${sW(a.protocol)} · ${rW(a.rttMs)}`},{key:n(`uiLibrary.runReport.browserOffered`,`Browser offered`),value:`${kW(l.countByType,n)}${l.relayProtocols.length>0?` · ${n(`uiLibrary.runReport.relayOver`,`relay over {{protocols}}`,{protocols:l.relayProtocols.join(`/`)})}`:``}`}]})}),v(AW,{title:n(`uiLibrary.runReport.media`,`Media`),children:v(pU,{items:[{key:n(`uiLibrary.runReport.hubSent`,`Hub sent`),value:`${n(`uiLibrary.runReport.rtpPackets`,`{{value}} RTP packets`,{value:iW(o.serverPacketsSent)})}${o.servedTier===null?``:` · ${o.servedTier}`}${o.egressLeg===null?``:` · ${o.egressLeg}`}`},{key:n(`uiLibrary.runReport.browserGot`,`Browser got`),value:`${n(`uiLibrary.runReport.packets`,`{{value}} packets`,{value:iW(o.clientPacketsReceived)})} · ${aW(o.clientBytesReceived)}`},{key:n(`uiLibrary.runReport.framesDecoded`,`Frames decoded`),value:iW(o.framesDecoded)},{key:n(`uiLibrary.runReport.lossFreezes`,`Loss · freezes`),value:`${oW(o.lossPercent)} · ${iW(o.freezeCount)} (${rW(o.totalFreezeMs)})`},{key:`PLI · NACK`,value:`${iW(o.pliCount)} · ${iW(o.nackCount)}`}]})}),(e.reconnects>0||e.errors.length>0||e.serverError!==null)&&c(`div`,{className:`text-[10px] text-foreground-subtle`,children:[e.reconnects>0&&v(`div`,{children:n(`uiLibrary.runReport.reconnects`,`Player reconnects: {{count}}`,{count:e.reconnects})}),e.errors.map((e,t)=>v(`div`,{children:n(`uiLibrary.runReport.playerError`,`Player error: {{message}}`,{message:e})},`${String(t)}-${e}`)),e.serverError!==null&&v(`div`,{children:n(`uiLibrary.runReport.serverDebug`,`Server debug: {{message}}`,{message:e.serverError})})]}),v(`div`,{className:Ni,children:n(`uiLibrary.runReport.sessions`,`Sessions: {{ids}} · {{seconds}} s`,{ids:e.sessionIds.length>0?e.sessionIds.map(e=>e.slice(0,8)).join(`, `):n(`uiLibrary.runReport.none`,`none`),seconds:Math.round(e.durationMs/1e3)})})]})]})}function MW(e,t){let n={state:e.iceFinalState??t(`uiLibrary.sessionVerdict.state.unknown`,`unknown`)};return e.hubFlag===`unknown`?t(`uiLibrary.sessionVerdict.transport.noAnswer`,`ICE {{state}}; the hub never answered the offer, so no hub candidate was seen`,n):e.hubFlag===`none`?t(`uiLibrary.sessionVerdict.transport.noCandidate`,`ICE {{state}}; the hub answered but offered no candidate`,n):e.policy===`relay`&&e.hubFlag===`private-only`?t(`uiLibrary.sessionVerdict.transport.relayPrivateOnly`,`ICE {{state}}; this browser was limited to TURN relay candidates and the hub offered only LAN/Tailscale addresses (no srflx/relay) — a relayed client cannot reach it`,n):e.hubFlag===`private-only`?t(`uiLibrary.sessionVerdict.transport.privateOnly`,`ICE {{state}}; the hub offered only LAN/Tailscale addresses (no srflx/relay) — reachable only from inside those networks`,n):t(`uiLibrary.sessionVerdict.transport.noPair`,`ICE {{state}}; no candidate pair between this browser and the hub succeeded`,n)}function NW(e,t,n){return{layer:e,title:t,detail:n}}function PW(e,t){return e===null?t(`uiLibrary.sessionVerdict.state.unknown`,`unknown`):String(e)}function FW(e,t){let n=e.clientPacketsReceived,r=e.serverPacketsSent;if(n===null)return NW(`unknown`,t(`uiLibrary.sessionVerdict.mediaUnknown.title`,`Media unknown`),t(`uiLibrary.sessionVerdict.mediaUnknown.detail`,`the browser reported no inbound video statistics`));if(n===0)return r===null?NW(`unknown`,t(`uiLibrary.sessionVerdict.nothingReceived.title`,`Nothing received`),t(`uiLibrary.sessionVerdict.nothingReceived.detail`,`the browser received no packets and the hub's own count is unknown`)):r>0?NW(`media-black-hole`,t(`uiLibrary.sessionVerdict.blackHole.title`,`Media black-hole`),t(`uiLibrary.sessionVerdict.blackHole.detail`,`the hub sent {{sent}} RTP packets and this browser received none — media is lost between them after DTLS`,{sent:String(r)})):NW(`hub-not-sending`,t(`uiLibrary.sessionVerdict.hubNotSending.title`,`Hub not sending`),t(`uiLibrary.sessionVerdict.hubNotSending.detail`,`the session is connected but the hub sent no RTP — the source or the broker is not producing`));if(e.framesDecoded===null)return NW(`unknown`,t(`uiLibrary.sessionVerdict.decodeUnknown.title`,`Decode unknown`),t(`uiLibrary.sessionVerdict.decodeUnknown.detail`,`packets arrive; the browser reported no decode count`));let i=t(`uiLibrary.sessionVerdict.lossKeyframe.title`,`Loss / keyframe size`);if(e.framesDecoded===0)return NW(`loss-keyframe`,i,t(`uiLibrary.sessionVerdict.lossKeyframe.noFrame`,`packets arrive but no frame decoded — a keyframe never completes over this path`));let{pliCount:a,freezeCount:o,lossPercent:s}=e,c=a!==null&&a>=3||o!==null&&o>0||s!==null&&s>=2,l=t(`uiLibrary.sessionVerdict.signals`,`{{pli}} PLI, {{freezes}} freezes, {{loss}} loss`,{pli:PW(a,t),freezes:PW(o,t),loss:s===null?PW(null,t):`${s.toFixed(1)}%`});return c?NW(`loss-keyframe`,i,t(`uiLibrary.sessionVerdict.lossKeyframe.lossy`,`frames decode but the path is lossy: {{signals}}`,{signals:l})):a===null&&o===null&&s===null?NW(`healthy`,t(`uiLibrary.sessionVerdict.decoding.title`,`Decoding`),t(`uiLibrary.sessionVerdict.decoding.detail`,`frames decode; the browser reported no loss signal to judge`)):NW(`healthy`,t(`uiLibrary.sessionVerdict.healthy.title`,`Healthy`),t(`uiLibrary.sessionVerdict.healthy.detail`,`connected, receiving and decoding: {{signals}}`,{signals:l}))}function IW(e,t=Fn){return e.iceConnected?!e.dtlsConnected&&e.dtlsFinalState!==null?NW(`hub-dtls`,t(`uiLibrary.sessionVerdict.dtls.title`,`DTLS stuck (hub side)`),t(`uiLibrary.sessionVerdict.dtls.detail`,`ICE connected but DTLS stayed {{state}} — the hub never completed the handshake`,{state:e.dtlsFinalState})):FW(e,t):NW(`transport`,t(`uiLibrary.sessionVerdict.transport.title`,`Transport (ICE) failed`),MW(e,t))}function LW(e){return{policy:e,sessionIds:[],sdpAnswer:null,trickled:[],trickleDone:null,local:[],ice:[],dtls:[],peer:[],firstFrameAt:null,lastStats:null,lastServer:null,maxServerPacketsSent:null,lastServerError:null,samples:0,reconnects:0,errors:[]}}function RW(e,t,n){return e.at(-1)?.state===t?e:[...e,{state:t,at:n}]}function zW(e,t){return e===null?t:t===null?e:Math.max(e,t)}function BW(e,t){return{...e,samples:e.samples+1,lastStats:t.stats??e.lastStats,lastServer:t.server??e.lastServer,maxServerPacketsSent:zW(e.maxServerPacketsSent,t.server?.rtpPacketsSent??null),lastServerError:t.serverError,sessionIds:t.sessionId!==null&&!e.sessionIds.includes(t.sessionId)?[...e.sessionIds,t.sessionId]:e.sessionIds}}function VW(e,t){switch(t.kind){case`offer-answered`:return{...e,sdpAnswer:e.sdpAnswer??t.sdpAnswer,sessionIds:e.sessionIds.includes(t.sessionId)?e.sessionIds:[...e.sessionIds,t.sessionId]};case`hub-candidates`:return{...e,trickled:[...e.trickled,...t.candidates.filter(t=>!e.trickled.includes(t))],trickleDone:t.done||e.trickleDone===!0};case`local-candidate`:{let n=SU(t.candidate);return n===null?e:{...e,local:[...e.local,{candidate:n,url:t.url,relayProtocol:t.relayProtocol}]}}case`ice-state`:return{...e,ice:RW(e.ice,t.state,t.at)};case`dtls-state`:return{...e,dtls:RW(e.dtls,t.state,t.at)};case`peer-state`:return{...e,peer:RW(e.peer,t.state,t.at)};case`first-frame`:return{...e,firstFrameAt:e.firstFrameAt??t.at};case`sample`:return BW(e,t.sample);case`reconnect`:return{...e,reconnects:e.reconnects+1};case`error`:return{...e,errors:[...e.errors,t.message]}}}var HW=new Set([`connected`,`completed`]);function UW(e,t){return e.find(e=>t.has(e.state))?.at??null}var WW=new Set([`connected`]);function GW(e){let t=UW(e.dtls,WW)??UW(e.peer,WW),n=e.dtls.at(-1)?.state??e.peer.at(-1)?.state??null;return{iceConnectedMs:UW(e.ice,HW),dtlsConnectedMs:t,firstFrameMs:e.firstFrameAt,iceFinalState:e.ice.at(-1)?.state??null,dtlsFinalState:n}}function KW(e){let t=e.lastStats,n=e.lastServer;return{clientBytesReceived:t?.raw.bytesReceived??null,clientPacketsReceived:t?.packetsReceived??null,framesDecoded:t?.framesDecoded??null,serverPacketsSent:e.maxServerPacketsSent,serverAlive:n?.alive??null,servedTier:n?.servedTier??null,egressLeg:n?.egressLeg??null,lossPercent:t?.lossPercent??null,freezeCount:t?.freezeCount??null,totalFreezeMs:t?.totalFreezeMs??null,pliCount:t?.pliCount??null,nackCount:t?.nackCount??null}}function qW(e){let t=e=>[...new Set(e.filter(e=>e!==null))];return{countByType:DU(e.local.map(e=>e.candidate)),relayProtocols:t(e.local.filter(e=>e.candidate.type===`relay`).map(e=>e.relayProtocol)),urls:t(e.local.map(e=>e.url))}}function JW(e,t,n=Fn){let r=kU({sdpAnswer:e.sdpAnswer,trickled:e.trickled,trickleDone:e.trickleDone}),i=GW(e),a=KW(e),o=IW({policy:e.policy,durationMs:t,iceConnected:i.iceConnectedMs!==null,iceFinalState:i.iceFinalState,dtlsConnected:i.dtlsConnectedMs!==null,dtlsFinalState:i.dtlsFinalState,hubFlag:r.flag,clientPacketsReceived:a.clientPacketsReceived,framesDecoded:a.framesDecoded,serverPacketsSent:a.serverPacketsSent,pliCount:a.pliCount,freezeCount:a.freezeCount,lossPercent:a.lossPercent},n);return{policy:e.policy,durationMs:t,sessionIds:e.sessionIds,hub:r,local:qW(e),timeline:i,path:{pairType:e.lastStats?.candidatePairType??null,protocol:e.lastStats?.candidateProtocol??null,rttMs:e.lastStats?.rttMs??null},media:a,reconnects:e.reconnects,errors:e.errors,serverError:e.lastServerError,verdict:o}}E();var YW=15e3,XW=[`all`,`relay`],ZW=750,QW=500;function $W(e){let t=e=>{let t=e.target;return t.kind===`profile`?t.profile===`low`?0:t.profile===`mid`?2:3:t.kind===`cam-stream`?/sub|low|ext/i.test(t.camStreamId)?1:4:9};return e.filter(e=>e.target.kind!==`adaptive`).toSorted((e,n)=>t(e)-t(n))}function eG(e,t){switch(t){case`all`:return e(`uiLibrary.hubSessionTest.policyAll`,`ICE policy all`);case`relay`:return e(`uiLibrary.hubSessionTest.policyRelay`,`ICE policy relay (TURN only)`)}}function tG({trpc:e,serverUrl:t,deviceId:n,cameraField:r,runMs:i=YW}){let a=q(),o=f(a);o.current=a;let s=TW(e,n),l=p(()=>$W(s.streams),[s.streams]),[u,d]=C(null),m=l.find(e=>e.id===u)??l[0]??null,[h,g]=C(null),[y,x]=C([]),[S,w]=C(0),[T,E]=C(!1),D=f(LW(`all`)),O=f(0),k=f(0),A=f(null),j=_(()=>Math.round(performance.now()-O.current),[]),M=_((e,t)=>{e===k.current&&(D.current=VW(D.current,t))},[]),N=_(()=>{k.current+=1,A.current!==null&&clearTimeout(A.current),A.current=null,g(null),E(!1)},[]),P=_(e=>{let t=XW[e];t!==void 0&&(k.current+=1,D.current=LW(t),O.current=performance.now(),w(0),g({index:e,policy:t,token:k.current}))},[]);b(()=>{if(h===null)return;let e=setInterval(()=>w(j()),QW),t=setTimeout(()=>{let e=JW(D.current,j(),o.current);x(t=>[...t,e]),k.current+=1,g(null);let t=h.index+1;t<XW.length?A.current=setTimeout(()=>P(t),ZW):E(!1)},i);return()=>{clearInterval(e),clearTimeout(t)}},[h,i,j,P]),b(()=>()=>{k.current+=1,A.current!==null&&clearTimeout(A.current)},[]);let F=_(()=>{x([]),E(!0),P(0)},[P]),I=m?.target??null,L=h?.token??-1,R=_(async(e,t,n)=>{if(I===null)throw Error(`no stream selected`);let r=await s.handleOffer(I,e,t,n);return M(L,{kind:`offer-answered`,at:j(),sessionId:r.sessionId,sdpAnswer:r.sdpAnswer}),r},[I,s,M,L,j]),z=_(async e=>{let t=await s.getIceCandidates(e);return M(L,{kind:`hub-candidates`,at:j(),candidates:t.candidates.map(e=>e.candidate??``).filter(e=>e.length>0),done:t.done}),t},[s,M,L,j]),B=_(e=>{let t=new WeakSet;e.addEventListener(`iceconnectionstatechange`,()=>M(L,{kind:`ice-state`,at:j(),state:e.iceConnectionState})),e.addEventListener(`connectionstatechange`,()=>M(L,{kind:`peer-state`,at:j(),state:e.connectionState})),e.addEventListener(`icecandidate`,e=>{let t=NU(e,j());t!==null&&M(L,{kind:`local-candidate`,at:t.tMs,candidate:t.candidate.raw,url:t.url,relayProtocol:t.relayProtocol})}),e.addEventListener(`track`,e=>{let n=e.receiver.transport;n===null||t.has(n)||(t.add(n),M(L,{kind:`dtls-state`,at:j(),state:n.state}),n.addEventListener(`statechange`,()=>M(L,{kind:`dtls-state`,at:j(),state:n.state})))})},[M,L,j]),V=_(e=>M(L,{kind:`sample`,at:j(),sample:e}),[M,L,j]),H=_(e=>{e.firstFrameMs!==void 0&&M(L,{kind:`first-frame`,at:j()})},[M,L,j]),U=h===null?null:Math.min(100,Math.round(S/i*100)),ee=n!==null&&m!==null&&!T;return c(mU,{headingId:`webrtc-diag-hub-session`,title:a(`uiLibrary.hubSessionTest.title`,`Hub session test`),icon:ri,testId:`webrtc-diag-hub-session`,actions:T?c(gA,{variant:`outline`,onClick:N,children:[v(di,{className:`h-3 w-3`}),a(`uiLibrary.hubSessionTest.stop`,`Stop`)]}):c(gA,{onClick:F,disabled:!ee,children:[v(Le,{className:`h-3 w-3`}),a(`uiLibrary.hubSessionTest.run`,`Run test ({{seconds}} s)`,{seconds:Math.round(i*XW.length/1e3)})]}),children:[c(`div`,{className:`${ue} space-y-3`,children:[c(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 ${Ei}`,children:[r,c(`label`,{className:`flex min-w-0 flex-col gap-1`,children:[v(`span`,{className:`text-[11px] text-foreground-subtle`,children:a(`uiLibrary.hubSessionTest.stream`,`Stream (pinned)`)}),v(Hl,{value:m?.id??``,disabled:l.length===0||T,onChange:e=>d(e.target.value),options:l.length===0?[{value:``,label:n===null?a(`uiLibrary.hubSessionTest.pickCamera`,`Pick a camera first`):a(`uiLibrary.hubSessionTest.noStream`,`No pinned stream`)}]:l.map(e=>({value:e.id,label:e.label}))})]})]}),v(`p`,{className:Ni,children:a(`uiLibrary.hubSessionTest.hint`,`Opens a real live session from this browser twice — first with every candidate type, then TURN relay only — and reads both ends of it.`)}),h!==null&&n!==null&&m!==null&&c(`div`,{className:`grid grid-cols-1 sm:grid-cols-[minmax(0,16rem)_1fr] gap-2 sm:gap-3 items-start`,children:[v(`div`,{className:`aspect-video w-full overflow-hidden rounded-md border border-border bg-black`,children:v(qH,{serverUrl:t,streamKey:`diag-${m.id}-${h.policy}`,autoPlay:!0,muted:!0,showControls:!1,className:`h-full w-full`,handleOffer:R,getIceServers:s.getIceServers,addIceCandidate:s.addIceCandidate,getIceCandidates:z,closeSession:s.closeSession,getSessionDebug:s.getSessionDebug,applyDownlinkProbe:s.applyDownlinkProbe,iceTransportPolicy:h.policy,onPeerConnection:B,onDebugStats:V,onConnectTiming:H,onReconnectAttempt:()=>M(L,{kind:`reconnect`,at:j()}),onError:e=>M(L,{kind:`error`,at:j(),message:e})},`${String(h.token)}-${h.policy}`)}),c(`div`,{className:`space-y-1.5`,"data-testid":`webrtc-diag-progress`,children:[c(`div`,{className:`flex items-center gap-2 text-xs text-foreground`,children:[v(Un,{className:`h-3 w-3 animate-spin`}),a(`uiLibrary.hubSessionTest.progress`,`Run {{index}} of {{total}} · {{policy}}`,{index:h.index+1,total:XW.length,policy:eG(a,h.policy)})]}),v(`div`,{className:`h-1.5 w-full overflow-hidden rounded bg-surface-hover`,children:v(`div`,{className:`h-full bg-primary transition-[width]`,style:{width:`${String(U??0)}%`}})}),v(`div`,{className:`text-[10px] text-foreground-subtle`,children:a(`uiLibrary.hubSessionTest.elapsed`,`{{elapsed}} s of {{total}} s`,{elapsed:Math.round(S/1e3),total:Math.round(i/1e3)})})]})]})]}),y.length>0&&v(`div`,{className:`grid grid grid-cols-1 lg:grid-cols-2 gap-2 sm:gap-3 border-t border-border p-2 sm:p-3`,children:y.map((e,t)=>v(jW,{report:e,title:a(`uiLibrary.hubSessionTest.runTitle`,`Run {{index}} · {{policy}}`,{index:t+1,policy:eG(a,e.policy)})},`${String(t)}-${e.policy}`))}),y.length===0&&!T&&v(`div`,{className:`px-3 sm:px-4 py-1.5 sm:py-2 border-t border-border text-[10px] text-foreground-subtle`,children:a(`uiLibrary.hubSessionTest.noRun`,`No run yet.`)})]})}var nG=`object-detection`;function rG(e,t){let n=e.nodeId.localeCompare(t.nodeId);if(n!==0)return n;let r=e.label.localeCompare(t.label);return r===0?e.deviceKey.localeCompare(t.deviceKey):r}function iG(e,t=nG){let n=new Map;for(let r of e)for(let e of r.devices){if(!e.enabled||!Jz(r.catalog.models,e.format))continue;let i=Yz({catalog:r.catalog,device:e,base:e.steps?.[t]?.modelId});if(i===void 0)continue;let a=n.get(i)??[];a.push({nodeId:r.nodeId,deviceKey:e.key,label:zz(e)}),n.set(i,a)}let r=new Map;for(let[e,t]of n)r.set(e,[...t].toSorted(rG));return r}function aG(e){return[...e.keys()].toSorted((e,t)=>e.localeCompare(t))}function oG(e,t){let n=new Set(t);return e.filter(e=>n.has(e))}var sG=`Not in use on any node`;function cG(e){return`${e.nodeId} · ${e.label}`}function lG(e,t,n,r){return r?n?e.includes(t)?e:[...e,t]:e.filter(e=>e!==t):n?[t]:[]}function uG(e,t,n){let r=oG(e,t),i=n.find(e=>r.includes(e.modelId)&&e.recommended===!0);return i===void 0?r[0]===void 0?n.find(e=>e.recommended===!0)?.modelId??n[0]?.modelId:r[0]:i.modelId}function dG({models:e,clusterRootModelIds:t,value:n,onChange:r,disabled:i=!1,multiple:a=!0}){let o=q(),s=new Set(n);return c(`div`,{className:`space-y-2`,"data-testid":`training-base-model-picker`,children:[c(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[v(gA,{type:`button`,variant:`secondary`,size:`sm`,disabled:i,onClick:()=>{if(a){r(oG(e.map(e=>e.modelId),t));return}let n=uG(e.map(e=>e.modelId),t,e);r(n===void 0?[]:[n])},children:a?o(`uiLibrary.trainingBaseModelPicker.selectAll`,`Select all roots`):o(`uiLibrary.trainingBaseModelPicker.selectRoot`,`Select cluster root`)}),v(gA,{type:`button`,variant:`ghost`,size:`sm`,disabled:i||n.length===0,onClick:()=>r([]),children:o(`uiLibrary.trainingBaseModelPicker.clear`,`Clear`)})]}),v(`ul`,{className:`divide-y divide-border-subtle rounded-md border border-border bg-surface`,children:e.map(e=>{let t=s.has(e.modelId),o=e.recommended?`${e.label} (recommended)`:e.label;return v(`li`,{className:`px-2 py-2 sm:px-3`,"data-testid":`training-base-model-${e.modelId}`,children:c(`label`,{className:`flex min-w-0 cursor-pointer items-start gap-2`,children:[v(FB,{className:`mt-0.5`,checked:t,disabled:i,"aria-label":e.label,onChange:t=>r(lG(n,e.modelId,t.target.checked,a))}),c(`span`,{className:`min-w-0 flex-1 space-y-1`,children:[v(`span`,{className:`block text-sm text-foreground`,children:o}),e.placements.length===0?v(`span`,{className:$(Ni,`block`),children:sG}):v(`span`,{className:$(Ni,`flex flex-wrap gap-x-2 gap-y-0.5`),children:e.placements.map(e=>v(`span`,{children:cG(e)},`${e.nodeId}:${e.deviceKey}`))})]})]})},e.modelId)})})]})}E();function fG({children:e,maxHeight:t=300,className:n}){let r=q(),[i,a]=C(!1),o=_(()=>{navigator.clipboard.writeText(e).then(()=>{a(!0),setTimeout(()=>a(!1),2e3)})},[e]);return c(`div`,{className:$(`relative group`,n),children:[v(JB,{style:{maxHeight:t},children:v(`pre`,{className:`font-mono text-xs bg-surface p-3 rounded-md border border-border-subtle`,children:v(`code`,{children:e})})}),v(`div`,{className:`absolute top-2 right-2 opacity-0 group-hover:opacity-100 transition-opacity`,children:v(jl,{icon:i?dt:Qr,"aria-label":r(`uiLibrary.codeBlock.copy`,`Copy code`),variant:`ghost`,size:`sm`,onClick:o})})]})}E();function pG({label:e,icon:t,title:n,description:r,confirmLabel:i,triggerVariant:a=`outline`,confirmVariant:o=`danger`,size:s=`sm`,disabled:l,className:u,action:d,onSuccess:f}){let p=q(),[m,h]=C(!1),[g,_]=C(!1),[y,b]=C(null),x=async()=>{b(null),_(!0);try{let e=await d();f?.(e),h(!1)}catch(e){b(e instanceof Error?e.message:String(e))}finally{_(!1)}};return c(P,{children:[c(gA,{type:`button`,variant:a,size:s,disabled:l,onClick:()=>{b(null),h(!0)},className:u,children:[t&&v(t,{className:`h-3.5 w-3.5`}),e]}),v(_L,{open:m,onOpenChange:e=>!g&&h(e),children:c(bL,{children:[c(xL,{children:[c(wL,{className:`flex items-center gap-2`,children:[v(Ii,{className:`h-4 w-4 text-amber-400`}),n??p(`uiLibrary.confirmActionButton.defaultTitle`,`Confirm action`)]}),typeof r==`string`?v(TL,{children:r}):r]}),y&&v(`div`,{className:$(`mt-2 px-3 py-2 rounded border border-danger/40 bg-danger/10`,`text-xs text-danger`),children:y}),c(CL,{children:[v(gA,{type:`button`,variant:`ghost`,size:s,disabled:g,onClick:()=>h(!1),children:p(`uiLibrary.confirmActionButton.cancel`,`Cancel`)}),c(gA,{type:`button`,variant:o,size:s,disabled:g,onClick:()=>{x()},children:[g&&v(Un,{className:`h-3.5 w-3.5 animate-spin`}),i??e]})]})]})})]})}E();var mG=2e3;function hG({value:e,label:t,srLabel:n,className:r,disabled:i}){let a=q(),[o,s]=C(!1),l=_(()=>{e&&navigator.clipboard.writeText(e).then(()=>{s(!0),setTimeout(()=>s(!1),mG)})},[e]);return c(gA,{size:`sm`,variant:`ghost`,type:`button`,disabled:i||e.length===0,onClick:l,className:$(r),"aria-label":o?a(`uiLibrary.copyButton.copied`,`Copied`):a(`uiLibrary.copyButton.copy`,`Copy {{what}}`,{what:n??t??a(`uiLibrary.copyButton.value`,`value`)}),children:[o?v(dt,{className:`h-3.5 w-3.5 text-success`}):v(Qr,{className:`h-3.5 w-3.5`}),t?v(`span`,{className:`ml-1`,children:o?a(`uiLibrary.copyButton.copied`,`Copied`):t}):null]})}function gG(e){return e.toLowerCase().replace(/[-_\s]+/g,``)}function _G(e,t){let n=gG(e);return n===``?!0:gG(t).includes(n)}var vG={search:``,facets:[]};function yG(e,t){if(t===void 0)return[];let n=new Map;for(let r of e){let e=t(r);n.set(e,(n.get(e)??0)+1)}return[...n.entries()].map(([e,t])=>({value:e,count:t})).toSorted((e,t)=>t.count-e.count||e.value.localeCompare(t.value))}function bG(e,t){return(t??[]).map(t=>({id:t.id,facets:yG(e,t.value)}))}function xG(e){let t=Object.values(e.groups??{}).some(e=>e.length>0);return e.search.trim()!==``||e.facets.length>0||t}function SG(e,t,n){let r=e.groups?.[t]??[],i=r.includes(n)?r.filter(e=>e!==n):[...r,n];return{...e,groups:{...e.groups,[t]:i}}}function CG(e,t){return{...e,facets:e.facets.includes(t)?e.facets.filter(e=>e!==t):[...e.facets,t]}}function wG(e,t,n){let r=t.search.trim(),i=n.facetValue,a=new Set(yG(e,i).map(e=>e.value)),o=new Set(t.facets.filter(e=>a.has(e))),s=(n.facetGroups??[]).flatMap(n=>{let r=new Set(yG(e,n.value).map(e=>e.value)),i=new Set((t.groups?.[n.id]??[]).filter(e=>r.has(e)));return i.size===0?[]:[{value:n.value,chosen:i}]});return e.filter(e=>!(o.size>0&&i!==void 0&&!o.has(i(e))||s.some(t=>!t.chosen.has(t.value(e)))||r!==``&&!n.searchText(e).some(e=>_G(r,e))))}E();function TG({label:e,options:t,selected:n,onChange:r}){let i=q(),[a,o]=C(!1),s=f(null);b(()=>{if(!a)return;let e=e=>{let t=e.target instanceof Node?e.target:null;t&&s.current&&!s.current.contains(t)&&o(!1)},t=e=>{e.key===`Escape`&&o(!1)};return document.addEventListener(`mousedown`,e),document.addEventListener(`touchstart`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`touchstart`,e),document.removeEventListener(`keydown`,t)}},[a]);let l=new Set(n),u=n.length,d=e=>{let n=new Set(l);n.has(e)?n.delete(e):n.add(e),r(t.filter(e=>n.has(e.id)).map(e=>e.id))};return c(`div`,{ref:s,className:`relative`,children:[c(`button`,{type:`button`,onClick:()=>o(e=>!e),"aria-haspopup":`listbox`,"aria-expanded":a,className:`inline-flex items-center gap-1.5 h-7 px-2.5 rounded-full border text-[10.5px] font-medium transition-colors ${u>0?`border-primary/40 bg-primary/15 text-primary`:`border-border bg-surface text-foreground-subtle hover:text-foreground hover:bg-surface-hover`}`,children:[c(`span`,{children:[e,u>0?` · ${String(u)}`:``]}),v(de,{className:`h-3 w-3 transition-transform ${a?`rotate-180`:``}`})]}),a&&c(`div`,{role:`listbox`,className:`absolute left-0 top-full mt-1 z-30 min-w-[180px] max-h-72 overflow-y-auto rounded-lg border border-border bg-surface shadow-xl py-1`,children:[u>0&&v(`button`,{type:`button`,onClick:()=>r([]),className:`flex w-full items-center px-3 py-1.5 text-left text-[10.5px] text-foreground-subtle hover:bg-surface-hover hover:text-foreground`,children:i(`uiLibrary.multiSelect.clear`,`Clear selection`)}),t.map(e=>{let t=l.has(e.id),n=e.icon;return c(`button`,{type:`button`,role:`option`,"aria-selected":t,onClick:()=>d(e.id),className:`flex w-full items-center gap-2 px-3 py-1.5 text-left text-[10.5px] text-foreground hover:bg-surface-hover`,children:[v(`span`,{className:`flex h-3.5 w-3.5 items-center justify-center rounded border shrink-0 ${t?`border-primary bg-primary`:`border-border`}`,children:t&&v(dt,{className:`h-2.5 w-2.5 text-primary-foreground`})}),n&&v(n,{className:`h-3.5 w-3.5 shrink-0 text-foreground-subtle`}),v(`span`,{className:`truncate`,children:e.label})]},e.id)})]})]})}E();var EG=`rounded-full border border-primary bg-primary/10 px-2 py-0.5 text-[10px] text-foreground`,DG=`rounded-full border border-border px-2 py-0.5 text-[10px] text-foreground-muted hover:bg-surface-hover`;function OG({state:e,facets:t,labels:n,onSearch:r,onToggleFacet:i,onClear:a,facetLabel:o,groups:s=[],onToggleGroupFacet:l}){let u=f(null);Cs(u);let d=xG(e),p=t.length>1;return c(`div`,{className:`flex flex-wrap items-center gap-2`,children:[c(`label`,{className:`relative min-w-[12rem] flex-1`,children:[v(bi,{className:`pointer-events-none absolute left-2 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-foreground-subtle`}),v(`input`,{ref:u,type:`search`,value:e.search,onChange:e=>r(e.target.value),placeholder:n.searchPlaceholder,"aria-label":n.searchLabel,className:`w-full rounded border border-border bg-background py-1.5 pl-7 pr-2 text-xs text-foreground`})]}),p&&v(`div`,{role:`group`,"aria-label":n.facetsLabel,className:`flex flex-wrap gap-1`,children:t.map(t=>{let n=e.facets.includes(t.value);return c(`button`,{type:`button`,onClick:()=>i(t.value),"aria-pressed":n,className:n?EG:DG,children:[o?o(t.value):t.value,` `,v(`span`,{className:`text-foreground-subtle tabular-nums`,children:t.count})]},t.value)})}),s.filter(e=>e.facets.length>1).map(e=>e.display===`menu`?v(TG,{label:e.label,options:e.facets.map(t=>({id:t.value,label:`${e.facetLabel?e.facetLabel(t.value):t.value} (${String(t.count)})`})),selected:e.selected,onChange:t=>{let n=new Set(t);for(let t of e.facets)n.has(t.value)!==e.selected.includes(t.value)&&l?.(e.id,t.value)}},e.id):c(`div`,{role:`group`,"aria-label":e.label,className:`flex flex-wrap items-center gap-1`,children:[v(`span`,{"aria-hidden":!0,className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:e.label}),e.facets.map(t=>{let n=e.selected.includes(t.value);return c(`button`,{type:`button`,onClick:()=>l?.(e.id,t.value),"aria-pressed":n,className:n?EG:DG,children:[e.facetLabel?e.facetLabel(t.value):t.value,` `,v(`span`,{className:`text-foreground-subtle tabular-nums`,children:t.count})]},t.value)})]},e.id)),d&&c(`button`,{type:`button`,onClick:a,className:`flex items-center gap-1 text-[11px] text-foreground-subtle hover:text-foreground`,children:[v(Yn,{className:`h-3 w-3`}),n.clearLabel]})]})}E();function kG(e,t,n=vG){let[r,i]=C(n),a=_(e=>{i(t=>({...t,search:e}))},[]),o=_(e=>{i(t=>CG(t,e))},[]),s=_((e,t)=>{i(n=>SG(n,e,t))},[]),c=_(()=>i(vG),[]),{searchText:l,facetValue:u,facetGroups:d}=t,f=p(()=>yG(e,u),[e,u]);return{state:r,setSearch:a,toggleFacet:o,toggleGroupFacet:s,groups:p(()=>bG(e,d).map(e=>({...e,selected:r.groups?.[e.id]??[]})),[e,d,r.groups]),clear:c,facets:f,rows:p(()=>wG(e,r,{searchText:l,facetValue:u,facetGroups:d}),[e,r,l,u,d]),active:xG(r)}}var AG=Li(),jG=new Set([`live`,`recording`,`heatmapScrub`]),MG=Object.freeze(Object.fromEntries(Iee.filter(e=>!jG.has(e)).map(e=>[e,Pa(AG.swatches,AG.fallbacks,e)])));function NG(e){let t=e[0];if(t===void 0)throw Error(`display palette has no fallback colour`);return t}var PG=NG(AG.fallbacks);function FG(e,t,n){let r=t?.[e];if(r!==void 0&&r.length>0)return r;let i=e.toLowerCase(),a=t?.[i];return a!==void 0&&a.length>0?a:Pa(n?.swatches??AG.swatches,n?.fallbacks??AG.fallbacks,e)}E();var IG=Li(),LG=O({status:`absent`});function RG({value:e,children:t}){return v(LG.Provider,{value:e,children:t})}function zG(){return I(LG)}function BG(){let e=I(LG),t=e.status===`ready`?e.palette:IG;return(e,n)=>FG(e,n,t)}E();function VG({src:e,imageWidth:t,imageHeight:n,detections:r=[],classColors:i,aspectRatio:a,className:o,placeholder:s,showConfidence:l=!0,minConfidence:u=0,borderWidth:d=2}){let f=q(),p=BG();function m(e){return p(e,i)}let h=a??(t&&n?`${t}/${n}`:`16/9`),g=r.filter(e=>e.score>=u),_=g.filter(e=>e.kind===`first-level`),y=g.filter(e=>e.kind===`detail`),b=GG(y,e=>e.parentId??``);return v(`div`,{className:$(`rounded-lg border border-border bg-surface overflow-hidden relative`,o),style:{aspectRatio:h},children:e?c(P,{children:[v(`img`,{src:e,className:`absolute inset-0 w-full h-full object-fill`,alt:``}),g.map((e,r)=>e.debug?.mask&&e.debug.maskWidth&&e.debug.maskHeight?v(UG,{mask:e.debug.mask,maskWidth:e.debug.maskWidth,maskHeight:e.debug.maskHeight,bbox:e.bbox,imageWidth:t,imageHeight:n,color:m(e.macroClass)},`mask-${r}`):null),_.map(e=>{let r=b.get(e.id)??[];return v(HG,{detection:e,imageWidth:t,imageHeight:n,color:m(e.macroClass),showConfidence:l,borderWidth:e.debug?.mask?1:d,children:r.map(t=>v(WG,{child:t,parentBbox:e.bbox,color:m(t.macroClass),showConfidence:l},`child-${t.id}`))},`det-${e.id}`)}),y.filter(e=>!e.parentId||!_.some(t=>t.id===e.parentId)).map(e=>v(HG,{detection:e,imageWidth:t,imageHeight:n,color:m(e.macroClass),showConfidence:l,borderWidth:d},`orphan-${e.id}`))]}):v(`div`,{className:`w-full h-full flex items-center justify-center text-foreground-subtle text-sm`,children:s??f(`uiLibrary.detectionCanvas.noImage`,`No image loaded`)})})}function HG({detection:e,imageWidth:t,imageHeight:n,color:r,showConfidence:i,borderWidth:a,children:o}){let s=BG(),{x:l,y:u,width:d,height:f}=e.bbox,p=c(`div`,{className:`absolute left-0 flex flex-col items-start gap-px`,style:{bottom:`100%`,marginBottom:`2px`},children:[c(`span`,{className:`text-[10px] px-1 rounded-sm whitespace-nowrap text-white`,style:{backgroundColor:r},children:[e.macroClass,i&&` ${(e.score*100).toFixed(0)}%`]}),e.labels.map((t,n)=>c(`span`,{className:`text-[9px] font-semibold px-1 rounded-sm whitespace-nowrap text-white`,style:{backgroundColor:s(t.label)},children:[t.label,` `,(t.score*100).toFixed(0),`%`]},`${e.id}-lbl-${n}`))]});return c(`div`,{className:`absolute rounded-sm`,style:{left:`${l/t*100}%`,top:`${u/n*100}%`,width:`${d/t*100}%`,height:`${f/n*100}%`,borderWidth:`${a}px`,borderStyle:`solid`,borderColor:r},children:[p,o]})}function UG({mask:e,maskWidth:t,maskHeight:n,bbox:r,imageWidth:i,imageHeight:a,color:o}){let s=f(null);return b(()=>{let r=s.current;if(!r)return;let i=r.getContext(`2d`);if(!i)return;let a=atob(e),c=new Uint8Array(a.length);for(let e=0;e<a.length;e++)c[e]=a.charCodeAt(e);let l=parseInt(o.slice(1,3),16),u=parseInt(o.slice(3,5),16),d=parseInt(o.slice(5,7),16);r.width=t,r.height=n;let f=i.createImageData(t,n),p=t*n;for(let e=0;e<p;e++){let t=e<c.length?c[e]:0,n=e*4;t>0&&(f.data[n]=l,f.data[n+1]=u,f.data[n+2]=d,f.data[n+3]=120)}i.putImageData(f,0,0)},[e,t,n,o]),v(`canvas`,{ref:s,className:`absolute pointer-events-none`,style:{left:`${r.x/i*100}%`,top:`${r.y/a*100}%`,width:`${r.width/i*100}%`,height:`${r.height/a*100}%`,imageRendering:`pixelated`}})}function WG({child:e,parentBbox:t,color:n,showConfidence:r}){let i=BG();if(t.width<=0||t.height<=0)return null;let a=(e.bbox.x-t.x)/t.width*100,o=(e.bbox.y-t.y)/t.height*100,s=e.bbox.width/t.width*100,l=e.bbox.height/t.height*100;return v(`div`,{className:`absolute rounded-sm`,style:{left:`${Math.max(0,a)}%`,top:`${Math.max(0,o)}%`,width:`${Math.min(100,s)}%`,height:`${Math.min(100,l)}%`,borderWidth:`1px`,borderStyle:`solid`,borderColor:n},children:c(`div`,{className:`absolute left-0 flex flex-col items-start gap-px`,style:{bottom:`100%`,marginBottom:`1px`},children:[c(`span`,{className:`text-[9px] px-0.5 rounded-sm whitespace-nowrap text-white`,style:{backgroundColor:n},children:[e.macroClass,r&&` ${(e.score*100).toFixed(0)}%`]}),e.labels.map((t,n)=>c(`span`,{className:`text-[8px] font-semibold px-0.5 rounded-sm whitespace-nowrap text-white`,style:{backgroundColor:i(t.label)},children:[t.label,` `,(t.score*100).toFixed(0),`%`]},`${e.id}-lbl-${n}`))]})})}function GG(e,t){let n=new Map;for(let r of e){let e=t(r),i=n.get(e)??[];i.push(r),n.set(e,i)}return n}var KG={idle:{labelKey:`uiLibrary.phase.idle`,labelFallback:`Idle`,textColor:`text-foreground-subtle`,badgeClass:`border-border bg-surface-hover text-foreground-subtle`,dotClass:`bg-gray-400`,icon:`PowerOff`},active:{labelKey:`uiLibrary.phase.active`,labelFallback:`Active`,textColor:`text-success`,badgeClass:`border-success/40 bg-success/10 text-success`,dotClass:`bg-red-500 animate-pulse`,icon:`Activity`},watching:{labelKey:`uiLibrary.phase.watching`,labelFallback:`Watching`,textColor:`text-foreground-subtle`,badgeClass:`border-border bg-surface-hover text-foreground-subtle`,dotClass:`bg-emerald-500`,icon:`Eye`},"load-shed":{labelKey:`uiLibrary.phase.loadShed`,labelFallback:`Load-Shed`,textColor:`text-amber-500`,badgeClass:`border-amber-500/40 bg-amber-500/10 text-amber-500`,dotClass:`bg-amber-500`,icon:`AlertTriangle`},paused:{labelKey:`uiLibrary.phase.paused`,labelFallback:`Paused`,textColor:`text-gray-400`,badgeClass:`border-gray-500/40 bg-gray-500/10 text-gray-400`,dotClass:`bg-gray-400`,icon:`PauseCircle`}};function qG(e,t=Fn){let{labelKey:n,labelFallback:r,...i}=KG[e]??KG.watching;return{...i,label:t(n,r)}}function JG(e){return e.track?.movementState===`idle`}function YG({detections:{motion:e,motionRaw:t,detection:n,phase:r},showMotionZones:i=!0,showMotionRaw:a=!0,showDetections:o=!0,showMoving:s=!0,showStationary:l=!0,stationaryObjects:u,showPhaseIndicator:d=!0}){let f=i&&e&&e.zones.length>0,p=a&&t&&t.boxes.length>0,m=o&&n?n.detections.filter(e=>JG(e)?l:s):[],h=m.length>0,g=o&&l?u??[]:[],_=g.length>0;return!f&&!p&&!h&&!_&&!d?null:c(`div`,{className:`absolute inset-0 pointer-events-none z-10`,children:[d&&v(XG,{phase:r}),p&&v(ZG,{raw:t}),f&&v(QG,{motion:e}),_&&v($G,{boxes:g}),h&&v(eK,{detections:m,frameWidth:n.frameWidth,frameHeight:n.frameHeight})]})}function XG({phase:e}){let t=qG(e);return c(`div`,{className:`absolute top-2 left-2 flex items-center gap-1.5 px-2 py-1 rounded-md bg-black/60 backdrop-blur-sm`,children:[v(`span`,{className:`w-2 h-2 rounded-full ${t.dotClass}`}),v(`span`,{className:`text-[10px] font-semibold text-white uppercase tracking-wider`,children:t.label})]})}function ZG({raw:e}){return e.frameWidth===0||e.frameHeight===0?null:v(P,{children:e.boxes.map((t,n)=>{let[r,i,a,o]=t.bbox,s=r/e.frameWidth*100,c=i/e.frameHeight*100,l=(a-r)/e.frameWidth*100,u=(o-i)/e.frameHeight*100,d=Math.max(.05,Math.min(.25,t.changeScore*.3));return v(`div`,{className:`absolute rounded-sm`,style:{left:`${s}%`,top:`${c}%`,width:`${l}%`,height:`${u}%`,backgroundColor:`rgba(239, 68, 68, ${d})`}},`mr-${n}`)})})}function QG({motion:e}){return e.frameWidth===0||e.frameHeight===0?null:v(P,{children:e.zones.filter(t=>t.w*t.h/(e.frameWidth*e.frameHeight)<.9).map((t,n)=>{let r=Math.max(.15,Math.min(.5,t.intensity/255));return v(`div`,{className:`absolute rounded-sm`,style:{left:`${t.x/e.frameWidth*100}%`,top:`${t.y/e.frameHeight*100}%`,width:`${t.w/e.frameWidth*100}%`,height:`${t.h/e.frameHeight*100}%`,border:`1px solid rgba(250, 204, 21, ${r})`,backgroundColor:`rgba(250, 204, 21, ${r*.15})`}},`mz-${n}`)})})}function $G({boxes:e}){let t=BG(),n=Date.now();return v(P,{children:e.map(e=>{let r=t(e.className);return v(`div`,{"data-census-box":``,className:`absolute`,style:{left:`${String(e.x1*100)}%`,top:`${String(e.y1*100)}%`,width:`${String((e.x2-e.x1)*100)}%`,height:`${String((e.y2-e.y1)*100)}%`,borderColor:r,borderWidth:Ui.borderWidth,borderStyle:Ui.dashed?`dashed`:`solid`,borderRadius:Ui.borderRadius,opacity:Ui.opacity},children:c(`span`,{className:`absolute -top-5 left-0 px-1 text-[10px] font-medium rounded-sm whitespace-nowrap`,style:{backgroundColor:r,color:`#000`},children:[e.label??e.className,` · `,Aee(n-e.becameStationaryAt)]})},e.id)})})}function eK({detections:e,frameWidth:t,frameHeight:n}){let r=BG();return t===0||n===0?null:v(P,{children:e.map(e=>{let{x:i,y:a,width:o,height:s}=e.bbox,c=i/t*100,l=a/n*100,u=o/t*100,d=s/n*100,f=r(e.macroClass),p=[`${e.macroClass} ${(e.score*100).toFixed(0)}%`];for(let t of e.labels)p.push(t.label);return v(`div`,{className:`absolute border-2 rounded-sm`,style:{left:`${c}%`,top:`${l}%`,width:`${u}%`,height:`${d}%`,borderColor:f},children:v(`div`,{className:`absolute -top-4 left-0 px-1 py-0.5 text-[9px] font-bold text-white rounded-sm whitespace-nowrap`,style:{backgroundColor:f},children:p.join(` | `)})},`det-${e.id}`)})})}E();function tK({detections:e,classColors:t,className:n,hiddenKeys:r,onToggleVisibility:i}){let a=q(),o=t;if(e.length===0)return v(`div`,{className:`text-sm text-foreground-subtle italic text-center py-4`,children:a(`uiLibrary.detectionResultTree.none`,`No detections`)});let s=e.filter(e=>e.kind===`first-level`),l=e.filter(e=>e.kind===`detail`),u=new Map;for(let e of l){if(!e.parentId)continue;let t=u.get(e.parentId)??[];t.push(e),u.set(e.parentId,t)}let d=l.filter(e=>!e.parentId||!s.some(t=>t.id===e.parentId));return c(`div`,{className:n,children:[v(`div`,{className:`text-xs font-medium text-foreground-subtle uppercase tracking-wide mb-2`,children:a(`uiLibrary.detectionResultTree.title`,`Detections ({{count}})`,{count:e.length})}),c(`div`,{className:`space-y-2`,children:[s.map(e=>v(nK,{detection:e,children_:u.get(e.id)??[],colors:o,hiddenKeys:r,onToggleVisibility:i},e.id)),d.map(e=>v(nK,{detection:e,children_:[],colors:o,hiddenKeys:r,onToggleVisibility:i},e.id))]})]})}function nK({detection:e,children_:t,colors:n,hiddenKeys:r,onToggleVisibility:i}){let a=BG(),o=a(e.macroClass,n),s=!r?.has(e.id),l=e.debug?.mask,u=e.debug?.maskWidth,d=e.debug?.maskHeight,f=e.debug?.alternateLabels;return c(`div`,{className:`rounded-md border border-border bg-surface p-3 space-y-1 ${s?``:`opacity-40`}`,children:[c(`div`,{className:`flex justify-between items-center`,children:[c(`div`,{className:`flex items-center gap-2`,children:[i&&v(`input`,{type:`checkbox`,checked:s,onChange:()=>i(e.id,!s),className:`h-3.5 w-3.5 rounded border-border accent-primary cursor-pointer shrink-0`}),v(`span`,{className:`h-2.5 w-2.5 rounded-full shrink-0`,style:{backgroundColor:o}}),v(`span`,{className:`text-sm font-medium text-foreground`,children:e.macroClass}),e.kind===`detail`&&v(`span`,{className:`text-[9px] font-mono px-1 py-0.5 rounded bg-primary/10 text-primary`,children:`detail`}),l&&u&&d&&c(`span`,{className:`text-[9px] font-mono px-1 py-0.5 rounded bg-primary/10 text-primary`,children:[`mask `,u,`x`,d]})]}),v(aK,{confidence:e.score})]}),c(`div`,{className:`text-[10px] text-foreground-subtle font-mono`,children:[`bbox: [`,Math.round(e.bbox.x),`, `,Math.round(e.bbox.y),`,`,` `,Math.round(e.bbox.x+e.bbox.width),`,`,` `,Math.round(e.bbox.y+e.bbox.height),`]`]}),e.labels.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mt-1`,children:e.labels.map((e,t)=>c(`span`,{className:`inline-flex items-center gap-1 text-[10px] font-medium px-1.5 py-0.5 rounded-full`,style:{backgroundColor:a(e.label,n)+`20`,color:a(e.label,n)},children:[e.label,c(`span`,{className:`opacity-60`,children:[(e.score*100).toFixed(0),`%`]}),e.detectionId&&c(`span`,{className:`opacity-40 text-[8px]`,children:[`→ `,e.detectionId]})]},t))}),f&&Object.keys(f).length>0&&v(iK,{alternateLabels:f,colors:n}),t.length>0&&v(rK,{items:t,colors:n,hiddenKeys:r,onToggleVisibility:i})]})}function rK({items:e,colors:t,hiddenKeys:n,onToggleVisibility:r}){let i=BG();return v(`div`,{className:`ml-4 mt-1.5 space-y-1.5 border-l-2 border-border pl-3`,children:e.map(e=>{let a=i(e.macroClass,t),o=!n?.has(e.id),s=e.debug?.mask,l=e.debug?.maskWidth,u=e.debug?.maskHeight;return c(`div`,{className:`text-xs space-y-0.5 ${o?``:`opacity-40`}`,children:[c(`div`,{className:`flex items-center gap-1.5`,children:[r&&v(`input`,{type:`checkbox`,checked:o,onChange:()=>r(e.id,!o),className:`h-3 w-3 rounded border-border accent-primary cursor-pointer shrink-0`}),v(`span`,{className:`h-1.5 w-1.5 rounded-full shrink-0`,style:{backgroundColor:a}}),v(`span`,{className:`font-medium`,style:{color:a},children:e.macroClass}),c(`span`,{className:`text-foreground-subtle`,children:[(e.score*100).toFixed(0),`%`]}),s&&l&&u&&c(`span`,{className:`text-[9px] font-mono px-1 py-0.5 rounded bg-primary/10 text-primary`,children:[`mask `,l,`x`,u]})]}),e.labels.length>0&&v(`div`,{className:`flex flex-wrap gap-1 ml-5 mt-0.5`,children:e.labels.map((e,n)=>c(`span`,{className:`inline-flex items-center gap-0.5 text-[9px] font-medium px-1 py-0.5 rounded-full`,style:{backgroundColor:i(e.label,t)+`20`,color:i(e.label,t)},children:[e.label,` `,c(`span`,{className:`opacity-60`,children:[(e.score*100).toFixed(0),`%`]})]},n))})]},e.id)})})}function iK({alternateLabels:e,colors:t}){let[n,r]=C(!1),i=BG(),a=q(),o=Object.keys(e);return c(`div`,{className:`mt-1`,children:[c(`button`,{onClick:()=>r(e=>!e),className:`text-[9px] text-foreground-subtle hover:text-foreground transition-colors flex items-center gap-1`,children:[v(`span`,{className:`transition-transform ${n?`rotate-90`:``}`,children:`▶`}),a(`uiLibrary.detectionResultTree.alternates`,{one:`Alternates ({{count}} source)`,other:`Alternates ({{count}} sources)`},{count:o.length})]}),n&&v(`div`,{className:`mt-1 ml-3 space-y-1.5`,children:o.map(n=>{let r=e[n];return!r||r.length===0?null:c(`div`,{children:[v(`div`,{className:`text-[9px] font-medium text-foreground-subtle mb-0.5`,children:n}),v(`div`,{className:`flex flex-wrap gap-1`,children:r.map((e,r)=>c(`span`,{className:`inline-flex items-center gap-0.5 text-[9px] px-1 py-0.5 rounded-full`,style:{backgroundColor:i(n,t)+`10`,color:i(n,t),opacity:Math.max(.4,e.score)},children:[e.label,c(`span`,{className:`opacity-60`,children:[(e.score*100).toFixed(1),`%`]})]},r))})]},n)})})]})}function aK({confidence:e}){return c(`span`,{className:`text-xs font-medium px-2 py-0.5 rounded-full ${e>=.8?`bg-success/10 text-success`:e>=.5?`bg-warning/10 text-warning`:`bg-danger/10 text-danger`}`,children:[(e*100).toFixed(1),`%`]})}var oK=class{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(e,t){this.keyToValue.set(e,t),this.valueToKey.set(t,e)}getByKey(e){return this.keyToValue.get(e)}getByValue(e){return this.valueToKey.get(e)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}},sK=class{constructor(e){this.generateIdentifier=e,this.kv=new oK}register(e,t){this.kv.getByValue(e)||(t||=this.generateIdentifier(e),this.kv.set(t,e))}clear(){this.kv.clear()}getIdentifier(e){return this.kv.getByValue(e)}getValue(e){return this.kv.getByKey(e)}},cK=class extends sK{constructor(){super(e=>e.name),this.classToAllowedProps=new Map}register(e,t){typeof t==`object`?(t.allowProps&&this.classToAllowedProps.set(e,t.allowProps),super.register(e,t.identifier)):super.register(e,t)}getAllowedProps(e){return this.classToAllowedProps.get(e)}};function lK(e){if(`values`in Object)return Object.values(e);let t=[];for(let n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t}function uK(e,t){let n=lK(e);if(`find`in n)return n.find(t);let r=n;for(let e=0;e<r.length;e++){let n=r[e];if(t(n))return n}}function dK(e,t){Object.entries(e).forEach(([e,n])=>t(n,e))}function fK(e,t){return e.indexOf(t)!==-1}function pK(e,t){for(let n=0;n<e.length;n++){let r=e[n];if(t(r))return r}}var mK=class{constructor(){this.transfomers={}}register(e){this.transfomers[e.name]=e}findApplicable(e){return uK(this.transfomers,t=>t.isApplicable(e))}findByName(e){return this.transfomers[e]}},hK=e=>Object.prototype.toString.call(e).slice(8,-1),gK=e=>e===void 0,_K=e=>e===null,vK=e=>typeof e!=`object`||!e||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,yK=e=>vK(e)&&Object.keys(e).length===0,bK=e=>Array.isArray(e),xK=e=>typeof e==`string`,SK=e=>typeof e==`number`&&!isNaN(e),CK=e=>typeof e==`boolean`,wK=e=>e instanceof RegExp,TK=e=>e instanceof Map,EK=e=>e instanceof Set,DK=e=>hK(e)===`Symbol`,OK=e=>e instanceof Date&&!isNaN(e.valueOf()),kK=e=>e instanceof Error,AK=e=>typeof e==`number`&&isNaN(e),jK=e=>CK(e)||_K(e)||gK(e)||SK(e)||xK(e)||DK(e),MK=e=>typeof e==`bigint`,NK=e=>e===1/0||e===-1/0,PK=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),FK=e=>e instanceof URL,IK=e=>e.replace(/\\/g,`\\\\`).replace(/\./g,`\\.`),LK=e=>e.map(String).map(IK).join(`.`),RK=(e,t)=>{let n=[],r=``;for(let i=0;i<e.length;i++){let a=e.charAt(i);if(!t&&a===`\\`){let t=e.charAt(i+1);if(t===`\\`){r+=`\\`,i++;continue}else if(t!==`.`)throw Error(`invalid path`)}if(a===`\\`&&e.charAt(i+1)===`.`){r+=`.`,i++;continue}if(a===`.`){n.push(r),r=``;continue}r+=a}let i=r;return n.push(i),n};function zK(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var BK=[zK(gK,`undefined`,()=>null,()=>void 0),zK(MK,`bigint`,e=>e.toString(),e=>typeof BigInt<`u`?BigInt(e):(console.error(`Please add a BigInt polyfill.`),e)),zK(OK,`Date`,e=>e.toISOString(),e=>new Date(e)),zK(kK,`Error`,(e,t)=>{let n={name:e.name,message:e.message};return`cause`in e&&(n.cause=e.cause),t.allowedErrorProps.forEach(t=>{n[t]=e[t]}),n},(e,t)=>{let n=Error(e.message,{cause:e.cause});return n.name=e.name,n.stack=e.stack,t.allowedErrorProps.forEach(t=>{n[t]=e[t]}),n}),zK(wK,`regexp`,e=>``+e,e=>{let t=e.slice(1,e.lastIndexOf(`/`)),n=e.slice(e.lastIndexOf(`/`)+1);return new RegExp(t,n)}),zK(EK,`set`,e=>[...e.values()],e=>new Set(e)),zK(TK,`map`,e=>[...e.entries()],e=>new Map(e)),zK(e=>AK(e)||NK(e),`number`,e=>AK(e)?`NaN`:e>0?`Infinity`:`-Infinity`,Number),zK(e=>e===0&&1/e==-1/0,`number`,()=>`-0`,Number),zK(FK,`URL`,e=>e.toString(),e=>new URL(e))];function VK(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var HK=VK((e,t)=>DK(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>[`symbol`,t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,n)=>{let r=n.symbolRegistry.getValue(t[1]);if(!r)throw Error(`Trying to deserialize unknown symbol`);return r}),UK=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),WK=VK(PK,e=>[`typed-array`,e.constructor.name],e=>[...e],(e,t)=>{let n=UK[t[1]];if(!n)throw Error(`Trying to deserialize unknown typed array`);return new n(e)});function GK(e,t){return e?.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}var KK=VK(GK,(e,t)=>[`class`,t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{let n=t.classRegistry.getAllowedProps(e.constructor);if(!n)return{...e};let r={};return n.forEach(t=>{r[t]=e[t]}),r},(e,t,n)=>{let r=n.classRegistry.getValue(t[1]);if(!r)throw Error(`Trying to deserialize unknown class '${t[1]}' - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564`);return Object.assign(Object.create(r.prototype),e)}),qK=VK((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>[`custom`,t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,n)=>{let r=n.customTransformerRegistry.findByName(t[1]);if(!r)throw Error(`Trying to deserialize unknown custom value`);return r.deserialize(e)}),JK=[KK,HK,qK,WK],YK=(e,t)=>{let n=pK(JK,n=>n.isApplicable(e,t));if(n)return{value:n.transform(e,t),type:n.annotation(e,t)};let r=pK(BK,n=>n.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation}},XK={};BK.forEach(e=>{XK[e.annotation]=e});var ZK=(e,t,n)=>{if(bK(t))switch(t[0]){case`symbol`:return HK.untransform(e,t,n);case`class`:return KK.untransform(e,t,n);case`custom`:return qK.untransform(e,t,n);case`typed-array`:return WK.untransform(e,t,n);default:throw Error(`Unknown transformation: `+t)}else{let r=XK[t];if(!r)throw Error(`Unknown transformation: `+t);return r.untransform(e,n)}},QK=(e,t)=>{if(t>e.size)throw Error(`index out of bounds`);let n=e.keys();for(;t>0;)n.next(),t--;return n.next().value};function $K(e){if(fK(e,`__proto__`))throw Error(`__proto__ is not allowed as a property`);if(fK(e,`prototype`))throw Error(`prototype is not allowed as a property`);if(fK(e,`constructor`))throw Error(`constructor is not allowed as a property`)}var eq=(e,t)=>{$K(t);for(let n=0;n<t.length;n++){let r=t[n];if(EK(e))e=QK(e,+r);else if(TK(e)){let i=+r,a=+t[++n]==0?`key`:`value`,o=QK(e,i);switch(a){case`key`:e=o;break;case`value`:e=e.get(o);break}}else e=e[r]}return e},tq=(e,t,n)=>{if($K(t),t.length===0)return n(e);let r=e;for(let e=0;e<t.length-1;e++){let n=t[e];if(bK(r)){let e=+n;r=r[e]}else if(vK(r))r=r[n];else if(EK(r)){let e=+n;r=QK(r,e)}else if(TK(r)){if(e===t.length-2)break;let i=+n,a=+t[++e]==0?`key`:`value`,o=QK(r,i);switch(a){case`key`:r=o;break;case`value`:r=r.get(o);break}}}let i=t[t.length-1];if(bK(r)?r[+i]=n(r[+i]):vK(r)&&(r[i]=n(r[i])),EK(r)){let e=QK(r,+i),t=n(e);e!==t&&(r.delete(e),r.add(t))}if(TK(r)){let e=+t[t.length-2],a=QK(r,e);switch(+i==0?`key`:`value`){case`key`:{let e=n(a);r.set(e,r.get(a)),e!==a&&r.delete(a);break}case`value`:r.set(a,n(r.get(a)));break}}return e},nq=e=>e<1;function rq(e,t,n,r=[]){if(!e)return;let i=nq(n);if(!bK(e)){dK(e,(e,a)=>rq(e,t,n,[...r,...RK(a,i)]));return}let[a,o]=e;o&&dK(o,(e,a)=>{rq(e,t,n,[...r,...RK(a,i)])}),t(a,r)}function iq(e,t,n,r){return rq(t,(t,n)=>{e=tq(e,n,e=>ZK(e,t,r))},n),e}function aq(e,t,n){let r=nq(n);function i(t,n){let i=eq(e,RK(n,r));t.map(e=>RK(e,r)).forEach(t=>{e=tq(e,t,()=>i)})}if(bK(t)){let[n,a]=t;n.forEach(t=>{e=tq(e,RK(t,r),()=>e)}),a&&dK(a,i)}else dK(t,i);return e}var oq=(e,t)=>vK(e)||bK(e)||TK(e)||EK(e)||kK(e)||GK(e,t);function sq(e,t,n){let r=n.get(e);r?r.push(t):n.set(e,[t])}function cq(e,t){let n={},r;return e.forEach(e=>{if(e.length<=1)return;t||(e=e.map(e=>e.map(String)).sort((e,t)=>e.length-t.length));let[i,...a]=e;i.length===0?r=a.map(LK):n[LK(i)]=a.map(LK)}),r?yK(n)?[r]:[r,n]:yK(n)?void 0:n}var lq=(e,t,n,r,i=[],a=[],o=new Map)=>{let s=jK(e);if(!s){sq(e,i,t);let n=o.get(e);if(n)return r?{transformedValue:null}:n}if(!oq(e,n)){let t=YK(e,n),r=t?{transformedValue:t.value,annotations:[t.type]}:{transformedValue:e};return s||o.set(e,r),r}if(fK(a,e))return{transformedValue:null};let c=YK(e,n),l=c?.value??e,u=bK(l)?[]:{},d={};dK(l,(s,c)=>{if(c===`__proto__`||c===`constructor`||c===`prototype`)throw Error(`Detected property ${c}. This is a prototype pollution risk, please remove it from your object.`);let l=lq(s,t,n,r,[...i,c],[...a,e],o);u[c]=l.transformedValue,bK(l.annotations)?d[IK(c)]=l.annotations:vK(l.annotations)&&dK(l.annotations,(e,t)=>{d[IK(c)+`.`+t]=e})});let f=yK(d)?{transformedValue:u,annotations:c?[c.type]:void 0}:{transformedValue:u,annotations:c?[c.type,d]:d};return s||o.set(e,f),f};function uq(e){return Object.prototype.toString.call(e).slice(8,-1)}function dq(e){return uq(e)===`Array`}function fq(e){if(uq(e)!==`Object`)return!1;let t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function pq(e,t,n,r,i){let a={}.propertyIsEnumerable.call(r,t)?`enumerable`:`nonenumerable`;a===`enumerable`&&(e[t]=n),i&&a===`nonenumerable`&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function mq(e,t={}){if(dq(e))return e.map(e=>mq(e,t));if(!fq(e))return e;let n=Object.getOwnPropertyNames(e),r=Object.getOwnPropertySymbols(e);return[...n,...r].reduce((n,r)=>{if(r===`__proto__`||dq(t.props)&&!t.props.includes(r))return n;let i=e[r];return pq(n,r,mq(i,t),e,t.nonenumerable),n},{})}var hq=class{constructor({dedupe:e=!1}={}){this.classRegistry=new cK,this.symbolRegistry=new sK(e=>e.description??``),this.customTransformerRegistry=new mK,this.allowedErrorProps=[],this.dedupe=e}serialize(e){let t=new Map,n=lq(e,t,this,this.dedupe),r={json:n.transformedValue};n.annotations&&(r.meta={...r.meta,values:n.annotations});let i=cq(t,this.dedupe);return i&&(r.meta={...r.meta,referentialEqualities:i}),r.meta&&(r.meta.v=1),r}deserialize(e,t){let{json:n,meta:r}=e,i=t?.inPlace?n:mq(n);return r?.values&&(i=iq(i,r.values,r.v??0,this)),r?.referentialEqualities&&(i=aq(i,r.referentialEqualities,r.v??0)),i}stringify(e){return JSON.stringify(this.serialize(e))}parse(e){return this.deserialize(JSON.parse(e),{inPlace:!0})}registerClass(e,t){this.classRegistry.register(e,t)}registerSymbol(e,t){this.symbolRegistry.register(e,t)}registerCustom(e,t){this.customTransformerRegistry.register({name:t,...e})}allowErrorProps(...e){this.allowedErrorProps.push(...e)}};hq.defaultInstance=new hq,hq.serialize=hq.defaultInstance.serialize.bind(hq.defaultInstance),hq.deserialize=hq.defaultInstance.deserialize.bind(hq.defaultInstance),hq.stringify=hq.defaultInstance.stringify.bind(hq.defaultInstance),hq.parse=hq.defaultInstance.parse.bind(hq.defaultInstance),hq.registerClass=hq.defaultInstance.registerClass.bind(hq.defaultInstance),hq.registerSymbol=hq.defaultInstance.registerSymbol.bind(hq.defaultInstance),hq.registerCustom=hq.defaultInstance.registerCustom.bind(hq.defaultInstance),hq.allowErrorProps=hq.defaultInstance.allowErrorProps.bind(hq.defaultInstance),hq.serialize,hq.deserialize,hq.stringify,hq.parse,hq.registerClass,hq.registerCustom,hq.registerSymbol,hq.allowErrorProps;var gq=5*6e4,_q=3e4,vq=1e3;function yq(e){let t=e.split(`.`)[1];if(t===void 0)return null;try{let e=t.replace(/-/g,`+`).replace(/_/g,`/`),n=typeof atob==`function`?atob(e):Buffer.from(e,`base64`).toString(`utf8`),r=JSON.parse(n);if(typeof r!=`object`||!r)return null;let i=Reflect.get(r,`exp`);return typeof i==`number`&&Number.isFinite(i)?i*1e3:null}catch{return null}}function bq(e){if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`data`),n=typeof t==`object`&&t?Reflect.get(t,`code`):void 0;return n===`UNAUTHORIZED`||n===`FORBIDDEN`}var xq=class{options;current=null;cancel=null;inflight=null;now;setTimer;constructor(e){this.options=e,this.now=e.now??Date.now,this.setTimer=e.setTimer??((e,t)=>{let n=setTimeout(e,t);return()=>clearTimeout(n)})}adopt(e){this.current=e,this.schedule()}tokens(){return this.current}async ensureFresh(e=this.margin()){let t=this.current;if(t?.refreshToken===void 0)return;let n=this.expiresAtOf(t);n!==null&&n-this.now()>e||await this.refreshNow()}refreshNow(){if(this.inflight!==null)return this.inflight;let e=this.current?.refreshToken;return e===void 0?Promise.resolve(null):(this.inflight=this.options.refresh(e).then(e=>(this.current=e,this.options.onTokens(e),this.schedule(),e)).catch(e=>(bq(e)?(this.stop(),this.current=null,this.options.onExpired()):this.arm(_q),null)).finally(()=>{this.inflight=null}),this.inflight)}stop(){this.cancel?.(),this.cancel=null}margin(){return this.options.marginMs??gq}expiresAtOf(e){return e.expiresAt??yq(e.token)}schedule(){this.stop();let e=this.current;if(e?.refreshToken===void 0)return;let t=this.expiresAtOf(e);if(t===null)return;let n=t-this.now(),r=Math.min(this.margin(),Math.max(0,n/2));this.arm(Math.max(vq,n-r))}arm(e){this.stop(),this.cancel=this.setTimer(()=>{this.cancel=null,this.refreshNow()},e)}};function Sq(e){return e.refreshable===!0?{refreshable:!0}:{}}var Cq=1e4,wq=6e3,Tq=2e3,Eq=4401,Dq=15e3,Oq=new Set([`auth.refreshSession`,`auth.listLoginMethods`,`auth.getServerName`,`auth.login`,`auth.loginVerifyTotp`,`auth.loginBeginPasskey`,`auth.loginVerifyPasskey`,`auth.passkeyLoginBegin`,`auth.passkeyLoginFinish`]),kq=3e4,Aq=class{_serverUrl;useWs;baseRetryMs;maxRetryMs;onConnectionChange;token;getLanguage;refreshCredential;_trpcClient;_wsClient=null;_eventSubs=new Map;mirror=null;mirrorInit=null;connected=!1;_wsHandshake=null;_rejectedToken;connectedPromise=null;_systemProxy;_connectionVersion=0;_wsEpoch=0;connectionListeners=new Set;constructor(e){this._serverUrl=e.serverUrl.replace(/\/+$/,``),this.token=e.token,this.getLanguage=e.getLanguage??(()=>void 0),this.refreshCredential=e.refreshCredential;let t=typeof window<`u`;this.useWs=e.useWebSocket??t,this.onConnectionChange=e.onConnectionChange,this.baseRetryMs=e.retryDelayMs??Tq,this.maxRetryMs=e.maxRetryDelayMs??kq,this._trpcClient=this.buildTrpcClient(),this._systemProxy=Ri(this._trpcClient)}get serverUrl(){return this._serverUrl}get connectionVersion(){return this._connectionVersion}subscribeConnectionEvents(e){return this.connectionListeners.add(e),()=>{this.connectionListeners.delete(e)}}emitConnectionEvent(e){try{this.onConnectionChange?.(e)}catch{}for(let t of this.connectionListeners)try{t(e,this._connectionVersion)}catch{}}async awaitConnected(e){if(this.connected)return;if(this.connectedPromise)return this.connectedPromise;let t=e??15e3;this.connectedPromise=(async()=>{let e=this._trpcClient.auth.me.query();Number.isFinite(t)?await new Promise((n,r)=>{let i=setTimeout(()=>r(Error(`System.awaitConnected: probe timed out after ${t}ms`)),t);e.then(()=>{clearTimeout(i),n()},e=>{clearTimeout(i),r(e instanceof Error?e:Error(String(e)))})}):await e,this.connected=!0})();try{await this.connectedPromise}finally{this.connectedPromise=null}}async init(e){if(this.mirror?.isReady())return;if(this.mirrorInit)return this.mirrorInit;let t=new Fa(this._trpcClient);return this.mirror=t,this.mirrorInit=(async()=>{await this.awaitConnected(e),await t.init(e)})().finally(()=>{this.mirrorInit=null}),this.mirrorInit}async awaitReady(){if(!this.mirror?.isReady())return this.mirrorInit?this.mirrorInit:this.init()}isReady(){return this.mirror?.isReady()??!1}isConnected(){return this.connected}reconnect(){this.useWs&&(this._wsEpoch+=1,this.emitConnectionEvent(`connecting`),this._wsClient?.close(),this.disposeMirror(),this.resetEventSubs(),this.connected=!1,this.connectedPromise=null,this._wsHandshake=null,this._trpcClient=this.buildTrpcClient(),this._systemProxy=Ri(this._trpcClient))}switchServerUrl(e){let t=e.replace(/\/+$/,``);t!==this._serverUrl&&(this._serverUrl=t,this.reconnect())}async raceConnectionEndpoints(e){let t=e?.perCandidateTimeoutMs??1500,n=(()=>{try{return new URL(this._serverUrl)}catch{return null}})(),r=n?.port?Number(n.port):n?.protocol===`https:`?443:80,i=n?.protocol===`https:`?`https`:`http`,a=this._trpcClient.localNetwork?.getConnectionEndpoints;if(!a)return{winner:this._serverUrl,switched:!1};let o;try{o=(await a.query({port:r,ipv4Only:e?.ipv4Only,scheme:i,includeLoopback:!1})).endpoints}catch{return{winner:this._serverUrl,switched:!1}}if(o.length===0)return{winner:this._serverUrl,switched:!1};let s=await Mq(o.map(e=>e.baseUrl),t);return!s||s===this._serverUrl?{winner:s??this._serverUrl,switched:!1}:(this.switchServerUrl(s),{winner:s,switched:!0})}close(){this.disposeMirror(),this.connected=!1,this.connectedPromise=null,this._wsClient?.close()}disposeMirror(){this.mirror?.dispose(),this.mirror=null,this.mirrorInit=null}async login(e,t,n={}){let r=await this._trpcClient.auth.login.mutate({username:e,password:t,...Sq(n)});if(typeof r==`object`&&r&&`token`in r){let e=r,t=e.token,n=e.requiresTotp===!0||Array.isArray(e.secondFactors)&&e.secondFactors.length>0;typeof t==`string`&&!n&&this.setToken(t)}return r}async loginVerifyTotp(e,t,n={}){let r=await this._trpcClient.auth.loginVerifyTotp.mutate({challengeToken:e,code:t,...Sq(n)});if(typeof r==`object`&&r&&`token`in r){let e=r.token;typeof e==`string`&&this.setToken(e)}return r}async loginBeginPasskey(e){return await this._trpcClient.auth.loginBeginPasskey.mutate({challengeToken:e})}async loginVerifyPasskey(e,t,n={}){let r=await this._trpcClient.auth.loginVerifyPasskey.mutate({challengeToken:e,response:t,...Sq(n)});if(typeof r==`object`&&r&&`token`in r){let e=r.token;typeof e==`string`&&this.setToken(e)}return r}async passkeyLoginBegin(){return await this._trpcClient.auth.passkeyLoginBegin.mutate()}async passkeyLoginFinish(e,t={}){let n=await this._trpcClient.auth.passkeyLoginFinish.mutate({response:e,...Sq(t)});if(typeof n==`object`&&n&&`token`in n){let e=n,t=e.requiresTotp===!0||Array.isArray(e.secondFactors)&&e.secondFactors.length>0;typeof e.token==`string`&&!t&&this.setToken(e.token)}return n}async refreshSession(e){let t=await this._trpcClient.auth.refreshSession.mutate({refreshToken:e});return this.setToken(t.token),t}async logout(e={}){await this._trpcClient.auth.logout.mutate(e.everywhere===!0?{everywhere:!0}:void 0)}async getMe(){return await this._trpcClient.auth.me.query()}async changeOwnPassword(e){return await this._trpcClient.auth.changeOwnPassword.mutate(e)}async setupOwnTotp(){return await this._trpcClient.auth.setupOwnTotp.mutate()}async confirmOwnTotp(e){return await this._trpcClient.auth.confirmOwnTotp.mutate(e)}async disableOwnTotp(e){return await this._trpcClient.auth.disableOwnTotp.mutate(e)}async reauthBeginPasskey(){return await this._trpcClient.auth.reauthBeginPasskey.mutate()}async reauthenticate(e){return await this._trpcClient.auth.reauthenticate.mutate(e)}async getOwnTotpStatus(){return await this._trpcClient.auth.getOwnTotpStatus.query()}async beginOwnPasskeyRegistration(){return await this._trpcClient.auth.beginOwnPasskeyRegistration.mutate()}async finishOwnPasskeyRegistration(e){return await this._trpcClient.auth.finishOwnPasskeyRegistration.mutate(e)}async listOwnPasskeys(){return await this._trpcClient.auth.listOwnPasskeys.query()}async removeOwnPasskey(e){return await this._trpcClient.auth.removeOwnPasskey.mutate(e)}async getOwnPasskeySecondFactorPreference(){return await this._trpcClient.auth.getOwnPasskeySecondFactorPreference.query()}async setOwnPasskeySecondFactorPreference(e){return await this._trpcClient.auth.setOwnPasskeySecondFactorPreference.mutate(e)}setToken(e){this.token=e}isSocketTokenStale(){return!this.useWs||this._wsHandshake===null?!1:this._wsHandshake.token!==this.token}listDevices(e){return this.mirror?(e?this.mirror.query(e):this.mirror.getAllDevices()).map(e=>this.attachBinding(e)):[]}getDeviceInfo(e){return this.mirror?.getDeviceInfo(e)??null}listDeviceInfos(e){let t=this.mirror;if(!t)return[];let n=e?t.query(e):t.getAllDevices(),r=[];for(let e of n){let n=t.getDeviceInfo(e.deviceId);n&&r.push(n)}return r}getDevice(e){let t=this.mirror?.getDeviceById(e)??null;return t?this.attachBinding(t):null}getDeviceByName(e){let t=this.mirror?.getDeviceByName(e)??null;return t?this.attachBinding(t):null}getDeviceByStableId(e){let t=this.mirror?.getDeviceByStableId(e)??null;return t?this.attachBinding(t):null}async waitForDevice(e,t){this.mirror||await this.init();let n=await this.mirror.waitForDevice(e,t??3e4);return this.attachBinding(n)}onDeviceAdded(e){if(!this.mirror)throw Error(`System.onDeviceAdded: call init() before subscribing`);return this.mirror.onDeviceAdded(e)}onDeviceRemoved(e){if(!this.mirror)throw Error(`System.onDeviceRemoved: call init() before subscribing`);return this.mirror.onDeviceRemoved(e)}attachBinding(e){let t=this.lookupBinding(e.deviceId);if(t===e.binding)return e;let n=e;return n.binding=t,e}lookupBinding(e){return this.mirror?this.mirror.getDeviceById(e)?.binding??null:null}get addonPages(){return this._systemProxy.addonPages}get addonSettings(){return this._systemProxy.addonSettings}get alerts(){return this._systemProxy.alerts}get audioAnalyzer(){return this._systemProxy.audioAnalyzer}get audioCodec(){return this._systemProxy.audioCodec}get backup(){return this._systemProxy.backup}get decoder(){return this._systemProxy.decoder}get deviceManager(){return this._systemProxy.deviceManager}get deviceProvider(){return this._systemProxy.deviceProvider}get deviceState(){return this._systemProxy.deviceState}get metricsProvider(){return this._systemProxy.metricsProvider}get notificationOutput(){return this._systemProxy.notificationOutput}get pipelineExecutor(){return this._systemProxy.pipelineExecutor}get pipelineOrchestrator(){return this._systemProxy.pipelineOrchestrator}get pipelineRunner(){return this._systemProxy.pipelineRunner}get settingsStore(){return this._systemProxy.settingsStore}get storage(){return this._systemProxy.storage}get streamBroker(){return this._systemProxy.streamBroker}get turnProvider(){return this._systemProxy.turnProvider}get userManagement(){return this._systemProxy.userManagement}subscribeEvent(e,t){let n=t,r=this._eventSubs.get(e);if(r===void 0){let t=new Set,n=this._trpcClient.live.onEvent.subscribe({category:e},{onData:e=>{for(let n of[...t])try{n(e)}catch{}}});r={listeners:t,unsubscribe:()=>{try{n.unsubscribe()}catch{}}},this._eventSubs.set(e,r)}r.listeners.add(n);let i=!1;return()=>{if(i)return;i=!0;let t=this._eventSubs.get(e);t!==void 0&&(t.listeners.delete(n),t.listeners.size===0&&(t.unsubscribe(),this._eventSubs.delete(e)))}}resetEventSubs(){for(let e of this._eventSubs.values())e.unsubscribe();this._eventSubs.clear()}get trpcClient(){return this._trpcClient}get wsClient(){return this._wsClient}async handshakeToken(){let e=e=>{if(e===this._rejectedToken)return!0;let t=yq(e);return t!==null&&t-Date.now()<=Dq},t=this.token;if(t===void 0||!e(t))return t;if(this.refreshCredential!==void 0)try{await this.refreshCredential(t===this._rejectedToken?`rejected`:`expired`)}catch{}let n=this.token;return n!==void 0&&!e(n)?n:void 0}buildTrpcClient(){let e=()=>{let e={};this.token&&(e.Authorization=`Bearer ${this.token}`);let t=this.getLanguage();return t&&(e[`x-camstack-lang`]=t),e};if(this.useWs){let e=this._serverUrl.replace(/^http/,`ws`)+`/trpc`,t=this.baseRetryMs,n=this.maxRetryMs,r=this._wsEpoch;return this._wsClient=uo({url:e,connectionParams:async()=>{let e=await this.handshakeToken();r===this._wsEpoch&&(this._wsHandshake={token:e});let t=this.getLanguage();return{...e===void 0?{}:{token:e},...t?{lang:t}:{}}},retryDelayMs:e=>Math.min(t*2**e,n),keepAlive:{enabled:!0,intervalMs:Cq,pongTimeoutMs:wq},onOpen:()=>{r===this._wsEpoch&&(this._connectionVersion+=1,this.emitConnectionEvent(`connected`))},onClose:e=>{r===this._wsEpoch&&(e?.code===Eq&&(this._rejectedToken=this._wsHandshake?.token??this._rejectedToken),this.emitConnectionEvent(`disconnected`))}}),go({links:[po({condition:e=>Oq.has(e.path),true:ho({url:`${this._serverUrl}/trpc`,headers:()=>{let e=this.getLanguage();return e?{"x-camstack-lang":e}:{}},transformer:hq}),false:fo({client:this._wsClient,transformer:hq})})]})}return this._wsClient=null,go({links:[ho({url:`${this._serverUrl}/trpc`,headers:e,transformer:hq})]})}};function jq(e){return new Aq(e)}async function Mq(e,t){if(e.length===0)return null;if(typeof fetch!=`function`)return e[0]??null;let n=typeof window<`u`&&window.location!==void 0&&window.location.protocol===`https:`?e.filter(e=>e.toLowerCase().startsWith(`https://`)):e;if(n.length===0)return null;let r=n.map(()=>new AbortController),i=n.map(async(e,n)=>{let i=r[n],a=setTimeout(()=>i.abort(),t);try{let t=await fetch(`${e.replace(/\/+$/,``)}/health`,{method:`GET`,signal:i.signal,credentials:`omit`});if(!t.ok)throw Error(`${t.status}`);return e}finally{clearTimeout(a)}});try{let e=await Promise.any(i);for(let e of r)try{e.abort()}catch{}return e}catch{return null}}var Nq=function(e){return e.Motion=`motion`,e.Person=`person`,e.Vehicle=`vehicle`,e.Animal=`animal`,e.Audio=`audio`,e.Face=`face`,e.Plate=`plate`,e.Package=`package`,e.Doorbell=`doorbell`,e.Sensor=`sensor`,e}({}),Pq=`animal.dog_cat.dog.cat.horse.sheep.cow.elephant.bear.zebra.giraffe.mouse.rabbit.deer.lion.tiger.bird.eagle.owl.pigeon.fish.whale.dolphin.snake.turtle.lizard`.split(`.`),Fq=[`person`,`people`,`pedestrian`,`rider`,`driver`,`cyclist`,`skier`,`skateboarder`,`face`,`hand`,`head`,`body`],Iq=[`vehicle`,`car`,`truck`,`bus`,`motorcycle`,`bicycle`,`van`,`ambulance`,`police_car`,`fire_truck`,`train`,`subway`,`tram`,`airplane`,`boat`,`ship`,`helicopter`],Lq=`face.eyes.nose.mouth.ears.eyebrows.left_eye.right_eye.pupil.iris.eyelid.eye_corner.upper_lip.lower_lip.teeth.chin.cheek.forehead.jaw.glasses.sunglasses.facial_hair.beard.mustache.facial_landmark.facial_keypoint`.split(`.`),Rq=[`plate`,`license_plate`,`front_plate`,`rear_plate`,`motorcycle_plate`,`temporary_plate`,`dealer_plate`,`licensePlate`,`plate_number`,`plate_character`,`plate_digit`,`plate_letter`,`plate_symbol`,`plate_region`,`plate_country_identifier`,`plate_frame`,`plate_bolt`,`plate_sticker`,`plate_validation_tag`,`damaged_plate`,`obscured_plate`,`dirty_plate`],zq=[`motion`,`movement`,`other`],Bq=[`package`,`packet`],Vq=[`audio`],Hq=`speech.scream.babbling.yell.bellow.whoop.whispering.laughter.snicker.crying.cry.sigh.singing.choir.chant.mantra.child_singing.rapping.humming.groan.grunt.whistling.breathing.wheeze.snoring.gasp.pant.snort.cough.throat_clearing.sneeze.sniff.cheering.applause.chatter.crowd.children_playing.bark.yip.howl.bow-wow.growling.whimper_dog.purr.meow.hiss.caterwaul.pets.livestock.doorbell.ding-dong.door.slam.knock.alarm.telephone.music.dog.dogs`.split(`.`),Uq=[`doorbell`,`ring`],Wq=[`lock`,`binary`,`flood`,`entry`,`door`,`leak`,`door_open`,`flooded`,`entry_open`];function Gq(e,t){return e.includes(t)}var Kq={...Pq.reduce((e,t)=>({...e,[t]:`animal`}),{}),...Fq.reduce((e,t)=>({...e,[t]:`person`}),{}),...Iq.reduce((e,t)=>({...e,[t]:`vehicle`}),{}),...zq.reduce((e,t)=>({...e,[t]:`motion`}),{}),...Bq.reduce((e,t)=>({...e,[t]:`package`}),{}),...Lq.reduce((e,t)=>({...e,[t]:`face`}),{}),...Rq.reduce((e,t)=>({...e,[t]:`plate`}),{}),...Vq.reduce((e,t)=>({...e,[t]:`audio`}),{}),...Hq.reduce((e,t)=>({...e,[t]:`audio`}),{}),...Uq.reduce((e,t)=>({...e,[t]:`doorbell`}),{}),...Wq.reduce((e,t)=>({...e,[t]:`sensor`}),{})},qq=e=>Gq(Lq,e),Jq=e=>Gq(Rq,e),Yq=e=>Gq(Pq,e),Xq=e=>Gq(Fq,e),Zq=e=>Gq(Iq,e),Qq=e=>Gq(zq,e),$q=e=>Gq(Uq,e),eJ=e=>Gq(Bq,e),tJ=e=>Gq(Vq,e)||Gq(Hq,e),nJ=e=>Gq(Wq,e),rJ=e=>qq(e)||Jq(e),iJ=e=>Kq[e],aJ=e=>{let{className:t}=e,n={face:`person`,plate:`vehicle`},r=Kq[t];return r&&r!==t?r:n[t]},oJ=Object.values(Nq),sJ=oJ.filter(e=>e!==`motion`),cJ=[`person`,`doorbell`,`package`],lJ=[...cJ,`vehicle`,`animal`,`audio`,`face`,`plate`],uJ=[...sJ];function dJ(e,t){switch(e){case`critical`:return cJ;case`important`:return lJ;case`all`:return uJ;case`custom`:return t?.length?t:sJ;default:return sJ}}var fJ=e({DEFAULT_ENABLED_CLASSES:()=>sJ,DetectionClass:()=>Nq,SessionKeeper:()=>xq,System:()=>Aq,TIMELINE_PRESET_ALL:()=>uJ,TIMELINE_PRESET_CRITICAL:()=>cJ,TIMELINE_PRESET_IMPORTANT:()=>lJ,animalClasses:()=>Pq,audioClasses:()=>Vq,audioLabelClasses:()=>Hq,createSystem:()=>jq,defaultDetectionClasses:()=>oJ,detectionClassesDefaultMap:()=>Kq,doorbellClasses:()=>Uq,faceClasses:()=>Lq,getClassesForTimelinePreset:()=>dJ,getParentClass:()=>iJ,getParentDetectionClass:()=>aJ,isAnimalClassname:()=>Yq,isAudioClassname:()=>tJ,isDoorbellClassname:()=>$q,isFaceClassname:()=>qq,isLabelDetection:()=>rJ,isMotionClassname:()=>Qq,isPackageClassname:()=>eJ,isPersonClassname:()=>Xq,isPlateClassname:()=>Jq,isSensorLabelClassname:()=>nJ,isSessionRefusal:()=>bq,isVehicleClassname:()=>Zq,jwtExpiresAt:()=>yq,licensePlateClasses:()=>Rq,motionClasses:()=>zq,packageClasses:()=>Bq,personClasses:()=>Fq,raceFastestEndpoint:()=>Mq,sensorLabelClasses:()=>Wq,vehicleClasses:()=>Iq});E();var pJ=O(null),mJ=[`dark`,`light`,`system`];function hJ(){return typeof window>`u`||window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function gJ(e,t){if(typeof window>`u`)return t;let n=localStorage.getItem(e);return n===`dark`||n===`light`||n===`system`?n:t}function _J(e){return e===`system`?hJ():e}function vJ({children:e,defaultMode:t=`system`,storageKey:n=`camstack-theme-mode`}){let[r,i]=C(()=>gJ(n,t)),[a,o]=C(()=>_J(r)),s=_(e=>{i(e),o(_J(e)),typeof window<`u`&&localStorage.setItem(n,e)},[n]),c=_(()=>{s(mJ[(mJ.indexOf(r)+1)%mJ.length]??`dark`)},[r,s]);b(()=>{if(typeof document>`u`)return;let e=document.documentElement;e.classList.remove(`dark`,`light`),e.classList.add(a)},[r,a]),b(()=>{if(typeof window>`u`||r!==`system`)return;let e=window.matchMedia(`(prefers-color-scheme: dark)`),t=()=>{o(hJ())};return e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[r]);let l=p(()=>({mode:r,resolvedMode:a,setMode:s,toggleMode:c}),[r,a,s,c]);return v(pJ.Provider,{value:l,children:e})}E();function yJ(){let e=I(pJ);if(!e)throw Error(`useThemeMode must be used within a ThemeProvider`);return e}var bJ=[[`deviceManager`,`listAll`]],xJ=3e4,SJ=5*6e4;function CJ(e){e.setQueryDefaults(bJ,{staleTime:xJ,gcTime:SJ})}E();function wJ({className:e}){return c(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,children:[v(`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`}),v(`circle`,{cx:`12`,cy:`12`,r:`3`})]})}function TJ({className:e}){return c(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,children:[v(`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`}),v(`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`}),v(`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`}),v(`path`,{d:`m2 2 20 20`})]})}function EJ({className:e}){return v(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,children:v(`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`})})}function DJ({onLogin:e,serverUrl:t,logoSrc:n,error:r,className:i}){let a=q(),[o,s]=C(``),[l,u]=C(``),[d,f]=C(!1),[p,m]=C(!1),[h,g]=C(null),_=r??h;return v(`div`,{className:$(`flex min-h-screen items-center justify-center bg-background p-4`,i),children:c(`div`,{className:`w-full max-w-sm`,children:[n&&v(`div`,{className:`flex justify-center mb-8`,children:v(`img`,{src:n,alt:a(`uiLibrary.loginForm.logo`,`Logo`),className:`h-12`})}),t&&v(`p`,{className:`mb-4 text-center text-xs text-foreground-subtle truncate`,children:t}),c(`form`,{onSubmit:async t=>{if(t.preventDefault(),!p){g(null),m(!0);try{await e(o,l)}catch(e){g(e instanceof Error?e.message:a(`uiLibrary.loginForm.failed`,`Login failed. Please try again.`))}finally{m(!1)}}},className:`space-y-4 rounded-xl border border-border bg-surface p-6 shadow-xl shadow-black/10`,children:[_&&v(`div`,{className:`rounded-md bg-danger/10 border border-danger/20 px-3 py-2 text-xs text-danger`,children:_}),c(`div`,{className:`space-y-1.5`,children:[v(`label`,{className:`text-xs font-medium text-foreground-subtle`,children:a(`uiLibrary.loginForm.username`,`Username`)}),v(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),autoComplete:`username`,required:!0,className:`w-full rounded-lg border border-border bg-background px-3 py-2.5 text-sm text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary`})]}),c(`div`,{className:`space-y-1.5`,children:[v(`label`,{className:`text-xs font-medium text-foreground-subtle`,children:a(`uiLibrary.loginForm.password`,`Password`)}),c(`div`,{className:`relative`,children:[v(`input`,{type:d?`text`:`password`,value:l,onChange:e=>u(e.target.value),autoComplete:`current-password`,required:!0,className:`w-full rounded-lg border border-border bg-background px-3 py-2.5 pr-10 text-sm text-foreground placeholder:text-foreground-subtle focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary`}),v(`button`,{type:`button`,onClick:()=>f(e=>!e),className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-foreground-subtle hover:text-foreground`,tabIndex:-1,children:v(d?TJ:wJ,{className:`h-4 w-4`})})]})]}),c(`button`,{type:`submit`,disabled:p,className:`w-full rounded-lg bg-primary px-4 py-2.5 text-sm font-semibold text-primary-foreground hover:bg-primary/90 disabled:opacity-50 disabled:cursor-not-allowed transition-colors flex items-center justify-center gap-2`,children:[p&&v(EJ,{className:`h-4 w-4 animate-spin`}),p?a(`uiLibrary.loginForm.submitting`,`Logging in...`):a(`uiLibrary.loginForm.submit`,`Log in`)]})]})]})})}E();var OJ=`camstack_dev_token`,kJ=O(null);function AJ(){let e=I(kJ);if(!e)throw Error(`useDevShell must be used within a DevShell`);return e}function jJ(){return typeof window>`u`?null:localStorage.getItem(OJ)}function MJ({className:e}){return c(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,children:[v(`circle`,{cx:`12`,cy:`12`,r:`4`}),v(`path`,{d:`M12 2v2`}),v(`path`,{d:`M12 20v2`}),v(`path`,{d:`m4.93 4.93 1.41 1.41`}),v(`path`,{d:`m17.66 17.66 1.41 1.41`}),v(`path`,{d:`M2 12h2`}),v(`path`,{d:`M20 12h2`}),v(`path`,{d:`m6.34 17.66-1.41 1.41`}),v(`path`,{d:`m19.07 4.93-1.41 1.41`})]})}function NJ({className:e}){return v(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:e,children:v(`path`,{d:`M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z`})})}function PJ({children:e,serverUrl:t,title:n,token:r,onLogout:i}){let a=q(),o=yJ(),s=p(()=>[po({condition:e=>e.type===`subscription`,true:fo({client:uo({url:t.replace(/^http/,`ws`)+`/trpc`,connectionParams:()=>({token:r})}),transformer:hq}),false:ho({url:`${t}/trpc`,transformer:hq,headers:()=>({authorization:`Bearer ${r}`})})})],[t,r]),l=p(()=>go({links:s}),[s]),u=p(()=>X.createClient({links:s}),[s]),d=p(()=>jq({serverUrl:t,token:r}),[t,r]);b(()=>(d.init().catch(()=>void 0),()=>{d.close()}),[d]);let f=p(()=>{let e=new T;return CJ(e),e},[]),m=o.mode===`dark`?a(`uiLibrary.devShell.themeDark`,`Dark`):o.mode===`light`?a(`uiLibrary.devShell.themeLight`,`Light`):a(`uiLibrary.devShell.themeSystem`,`System`),h=p(()=>({trpc:l,token:r,logout:i}),[l,r,i]);return v(Sr,{system:d,children:v(X.Provider,{client:u,queryClient:f,children:v(M,{client:f,children:v(kJ.Provider,{value:h,children:c(`div`,{className:`min-h-screen bg-background text-foreground`,children:[c(`div`,{className:`flex items-center justify-between border-b border-border bg-surface px-4 py-2`,children:[c(`div`,{className:`flex items-center gap-2`,children:[v(`span`,{className:`rounded bg-warning/20 px-2 py-0.5 text-xs font-bold text-warning`,children:a(`uiLibrary.devShell.devMode`,`DEV MODE`)}),n&&v(`span`,{className:`text-sm font-medium text-foreground`,children:n}),v(`span`,{className:`text-xs text-foreground-subtle`,children:t})]}),c(`div`,{className:`flex items-center gap-2`,children:[c(`button`,{type:`button`,onClick:o.toggleMode,className:`flex items-center gap-1.5 rounded-md px-2 py-1 text-xs font-medium text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,title:a(`uiLibrary.devShell.theme`,`Theme: {{mode}}`,{mode:m}),children:[o.resolvedMode===`dark`?v(MJ,{className:`h-3.5 w-3.5`}):v(NJ,{className:`h-3.5 w-3.5`}),m]}),v(`button`,{type:`button`,onClick:i,className:`rounded-md px-2.5 py-1 text-xs font-medium text-danger hover:bg-danger/10 transition-colors`,children:a(`uiLibrary.devShell.logout`,`Logout`)})]})]}),v(`div`,{className:`p-4`,children:e({trpc:l,theme:o})})]})})})})})}function FJ({children:e,serverUrl:t=`https://localhost:4443`,title:n}){let[r,i]=C(jJ),a=_(async(e,n)=>{let r=await go({links:[ho({url:`${t}/trpc`,transformer:hq})]}).auth.login.mutate({username:e,password:n});if(!r.token)throw Error(`No token returned`);localStorage.setItem(OJ,r.token),i(r.token)},[t]),o=_(()=>{localStorage.removeItem(OJ),i(null)},[]);return r?v(vJ,{children:v(PJ,{serverUrl:t,title:n,token:r,onLogout:o,children:e})}):v(vJ,{children:v(DJ,{onLogin:a,serverUrl:t})})}E();function IJ(e){let[t,n]=C([]),r=_(t=>{n(n=>{let r=[...n,t];return r.length>e?r.slice(-e):r})},[e]),i=_(()=>{n([])},[]);return p(()=>({entries:t,append:r,reset:i}),[t,r,i])}E();function LJ(e,t){let[n,r]=C(e);return b(()=>{let n=setTimeout(()=>r(e),t);return()=>clearTimeout(n)},[e,t]),n}async function RJ(e){let{fetchSlice:t,limit:n,signal:r,onProgress:i}=e,a=[],o=e.before,s=0,c;for(;;){if(r.aborted)return{entries:a,nextBefore:o??null,done:!1,cancelled:!0,scannedBytes:s,source:c};let e;try{e=await t(o,Math.max(1,n-a.length),r)}catch(e){if(r.aborted)return{entries:a,nextBefore:o??null,done:!1,cancelled:!0,scannedBytes:s,source:c};throw e}a.push(...e.entries),s+=e.scannedBytes,c=e.source,i?.(s);let l=e.done||e.nextBefore===null;if(e.cancelled===!0)return{entries:a,nextBefore:e.nextBefore,done:l,cancelled:!0,scannedBytes:s,source:c};if(l||a.length>=n)return{entries:a,nextBefore:e.nextBefore,done:l,cancelled:!1,scannedBytes:s,source:c};o=e.nextBefore??void 0}}function zJ(e){return e.id!==void 0&&e.id!==``?`id:${e.id}`:`${e.timestamp}|${e.level}|${e.scope??``}|${e.message}`}function BJ(e,t){let n=new Map;for(let t of e)n.set(zJ(t),t);for(let e of t)n.set(zJ(e),e);return[...n.values()].toSorted((e,t)=>new Date(e.timestamp).getTime()-new Date(t.timestamp).getTime())}E();var VJ={entries:[],nextBefore:null,done:!1,status:`loading`,scannedBytes:0,source:void 0,error:null};function HJ(e,t){let n=X.useUtils(),[r,i]=C(VJ),a=f(r);a.current=r;let o=f(e);o.current=e;let s=f(null),c=JSON.stringify(e),l=_(async(e,r)=>{s.current?.abort();let a=new AbortController;s.current=a,i(e=>({...r?VJ:e,status:`loading`,scannedBytes:0,error:null}));let c=(e,t,r)=>n.client.logs.query.query({...o.current,limit:t,...e===void 0?{}:{before:e}},{signal:r});try{let n=await RJ({fetchSlice:c,limit:t,...e===void 0?{}:{before:e},signal:a.signal,onProgress:e=>{s.current===a&&i(t=>({...t,scannedBytes:e}))}});if(s.current!==a)return;i(e=>({entries:r?n.entries:[...e.entries,...n.entries],nextBefore:n.nextBefore,done:n.done,status:`idle`,scannedBytes:n.scannedBytes,source:n.source??e.source,error:null}))}catch(e){if(s.current!==a)return;i(t=>({...t,status:`idle`,error:e instanceof Error?e.message:String(e)}))}},[n,t]);b(()=>(l(void 0,!0),()=>{s.current?.abort(),s.current=null}),[l,c]);let u=_(()=>{let e=a.current;e.status===`loading`||e.done||l(e.nextBefore??void 0,!1)},[l]),d=_(()=>{s.current?.abort()},[]);return{entries:r.entries,status:r.status,done:r.done,scannedBytes:r.scannedBytes,source:r.source,error:r.error,loadOlder:u,cancel:d}}function UJ(e,t=40){return e.scrollHeight-e.scrollTop-e.clientHeight<=t}E();function WJ(e){if(e===null)return`null`;if(e===void 0)return`undefined`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}var GJ={error:{icon:Di,color:`text-red-400`},warn:{icon:Ii,color:`text-amber-400`},info:{icon:kn,color:`text-blue-400`},debug:{icon:Ie,color:`text-gray-500`}},KJ=[`debug`,`info`,`warn`,`error`],qJ=500,JJ=300,YJ=24,XJ=1024*1024;function ZJ({agentId:e,addonId:t,deviceId:n,containerDeviceId:r,integrationId:i,requestId:a,level:o,maxHeight:s=`max-h-96`,showScope:l=!1,showDeviceChip:d=!1,showFilters:m=!0,showSourceSelect:h,limit:g=100,liveBuffer:y,onClose:x,className:S}){let w=f(null);Cs(w);let T=q(),E=h??m,[D,O]=C(``),[k,A]=C(``),[j,M]=C(o??`info`),[N,P]=C(void 0),F=e,I=t??(D||void 0),L=n??(k?Number(k):void 0),R=i,z=a,B=p(()=>{let e={};return F&&(e.agentId=F),I&&(e.addonId=I),r!==void 0&&Number.isFinite(r)?e.containerDeviceId=r:L!==void 0&&Number.isFinite(L)&&(e.deviceId=L),R&&(e.integrationId=R),z&&(e.requestId=z),Object.keys(e).length>0?e:void 0},[F,I,L,r,R,z]),V=IJ(qJ),H=y??V,U=H.entries,[ee,W]=C(0),[G,te]=C(!0),ne=f(!1),[re,K]=C(!1),[ie,ae]=C(!1),[se,ce]=C(new Set),[le,ue]=C(``),fe=f(null),pe=`${F??``}:${I??``}:${String(L??``)}:${String(r??``)}:${R??``}:${z??``}`,me=f(pe);b(()=>{me.current!==pe&&(me.current=pe,H.reset(),W(0),ce(new Set),K(!1))},[pe,H]);let he=LJ(le,JJ).trim(),ge=X.logs.sources.useQuery(void 0,{staleTime:6e4}),_e=p(()=>(ge.data??[]).filter(e=>e.readable),[ge.data]),ve=HJ(p(()=>({...N?{source:N}:{},level:j,...he?{text:he}:{},...B?{tags:B}:{}}),[N,j,he,B]),g);X.logs.subscribe.useSubscription({level:j,...he?{text:he}:{},...B?{tags:B}:{}},{onData:e=>{H.append(e)}});let ye=`${N??``}|${j}|${he}`,be=f(ye);b(()=>{be.current!==ye&&(be.current=ye,H.reset(),te(!0))},[ye,H]);let xe=p(()=>{let e=BJ(ve.entries,U);return ee>0?e.filter(e=>new Date(e.timestamp).getTime()>ee):e},[ve.entries,U,ee]),Se=f(null),Ce=_(()=>{if(ve.status===`loading`||ve.done)return;let e=fe.current;e&&(Se.current={height:e.scrollHeight,top:e.scrollTop}),ve.loadOlder()},[ve]);u(()=>{let e=Se.current,t=fe.current;if(!e||!t||ve.status!==`idle`)return;Se.current=null;let n=e.top+(t.scrollHeight-e.height);Math.abs(n-t.scrollTop)<1||(ne.current=!0,t.scrollTop=n)},[ve.status,ve.entries.length]);let we=_(e=>{let t=fe.current;t&&(ne.current=!0,t.scrollTo({top:t.scrollHeight,...e?{behavior:e}:{}}))},[]),[Te,Ee]=C(!1),De=xe.length>0?zJ(xe[xe.length-1]):``,Oe=f(De);u(()=>{let e=De!==``&&De!==Oe.current;Oe.current=De,e&&(G?we():Ee(!0))},[De,G,we]),b(()=>{G&&Te&&Ee(!1)},[G,Te]);let ke=_(()=>{te(!0),we(`smooth`)},[we]),Ae=_(()=>{if(ne.current){ne.current=!1;return}let e=fe.current;if(!e)return;let t=UJ(e,40);te(e=>e===t?e:t),e.scrollTop<=YJ&&Ce()},[Ce]),je=p(()=>xe.filter(e=>e.tags&&Object.keys(e.tags).length>0||e.meta&&Object.keys(e.meta).length>0).map(zJ),[xe]),Me=_(()=>{K(e=>(e&&ce(new Set),!e))},[]),Ne=_(()=>{let e=xe.map(e=>{let t=new Date(e.timestamp).toLocaleTimeString(),n=e.tags?` `+Object.entries(e.tags).filter(([,e])=>e).map(([e,t])=>`${e}=${t}`).join(` `):``;return`${t} [${e.level.toUpperCase()}]${e.scope?` [${e.scope}]`:``}${n} ${e.message}`});navigator.clipboard.writeText(e.join(`
4
4
  `)).then(()=>{ae(!0),setTimeout(()=>ae(!1),1500)})},[xe]),Fe=X.logs.clear.useMutation(),Ie=_(()=>{W(Date.now()),H.reset(),Fe.mutate(B?{tags:B}:{})},[H,Fe,B]),Le=_(e=>{ce(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),[Re,ze]=C(null),Be=_((e,t)=>{let n=new Date(e.timestamp).toISOString(),r=e.tags?` `+Object.entries(e.tags).filter(([,e])=>e).map(([e,t])=>`${e}=${t}`).join(` `):``,i=e.meta&&Object.keys(e.meta).length>0?` meta=${JSON.stringify(e.meta)}`:``,a=`${n} [${e.level.toUpperCase()}]${e.scope?` [${e.scope}]`:``}${r} ${e.message}${i}`;navigator.clipboard.writeText(a).then(()=>{ze(t),setTimeout(()=>ze(e=>e===t?null:e),1200)})},[]),Ve=zJ;return c(`div`,{className:$(`h-full min-h-0 flex flex-col`,S),onClick:e=>e.stopPropagation(),children:[c(`div`,{className:`flex items-center justify-between px-3 py-1.5 bg-surface-hover/30 gap-2 shrink-0`,children:[c(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[v(`span`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle font-medium`,children:T(`uiLibrary.logStream.logs`,`Logs`)}),F&&v(tY,{label:T(`uiLibrary.logStream.scopeAgent`,`agent`),value:F}),I&&v(tY,{label:T(`uiLibrary.logStream.scopeAddon`,`addon`),value:I}),L!==void 0&&v(tY,{label:T(`uiLibrary.logStream.scopeDevice`,`device`),value:`#${L}`}),v(`div`,{className:`flex rounded border border-border overflow-hidden text-[9px]`,children:KJ.map((e,t)=>c(`button`,{type:`button`,onClick:()=>M(e),className:$(`px-1.5 py-0.5 capitalize transition-colors`,j===e?`bg-primary/10 text-primary`:`text-foreground-subtle hover:bg-surface-hover`,t>0&&`border-l border-border`),children:[e,`+`]},e))}),E&&_e.length>1&&v(`div`,{className:`w-36`,children:v(Hl,{"aria-label":T(`uiLibrary.logStream.source`,`Log source`),className:`h-5 text-[10px]`,value:N??_e.find(e=>e.isDefault)?.addonId??``,onChange:e=>P(e.target.value),options:_e.map(e=>({value:e.addonId,label:e.addonId}))})}),E&&_e.length<=1&&ve.source&&v(`span`,{className:`text-[9px] text-foreground-subtle`,children:T(`uiLibrary.logStream.sourceName`,`Source: {{name}}`,{name:ve.source})}),v(rY,{icon:nr,label:G?T(`uiLibrary.logStream.following`,`Following`):T(`uiLibrary.logStream.paused`,`Paused`),active:G,onClick:()=>{G?te(!1):ke()}}),v(rY,{icon:re?oe:jt,label:re?T(`uiLibrary.logStream.collapse`,`Collapse`):T(`uiLibrary.logStream.expand`,`Expand`),active:re,onClick:Me,disabled:je.length===0}),v(rY,{icon:Qr,label:ie?T(`uiLibrary.logStream.copied`,`Copied!`):T(`uiLibrary.logStream.copy`,`Copy`),onClick:Ne,disabled:xe.length===0}),v(rY,{icon:Pe,label:T(`uiLibrary.logStream.clear`,`Clear`),onClick:Ie}),c(`div`,{className:`relative`,children:[v(`input`,{ref:w,type:`text`,value:le,onChange:e=>ue(e.target.value),placeholder:T(`uiLibrary.logStream.searchPlaceholder`,`Search…`),className:`w-32 pl-1.5 pr-5 py-0.5 rounded border border-border bg-background text-foreground text-[10px] focus:outline-none focus:border-primary/50`}),le&&v(`button`,{type:`button`,onClick:()=>ue(``),className:`absolute right-1 top-1/2 -translate-y-1/2 text-foreground-subtle hover:text-foreground`,title:T(`uiLibrary.logStream.clearSearch`,`Clear search`),children:v(Yn,{className:`h-2.5 w-2.5`})})]}),U.length>0&&v(`span`,{className:`text-[9px] text-emerald-400 font-medium`,children:T(`uiLibrary.logStream.live`,`+{{count}} live`,{count:U.length})})]}),x&&v(`button`,{type:`button`,onClick:x,className:`text-foreground-subtle hover:text-foreground`,"aria-label":T(`uiLibrary.logStream.close`,`Close`),children:v(Yn,{className:`h-3.5 w-3.5`})})]}),m&&(!t||!n)&&c(`div`,{className:`flex items-center gap-2 px-3 py-1 border-b border-border/50 bg-surface/50 text-[10px]`,children:[!t&&c(`label`,{className:`flex items-center gap-1`,children:[v(`span`,{className:`text-foreground-subtle`,children:T(`uiLibrary.logStream.addon`,`Addon:`)}),v(`input`,{type:`text`,value:D,onChange:e=>O(e.target.value),placeholder:T(`uiLibrary.logStream.all`,`all`),className:`w-28 px-1.5 py-0.5 rounded border border-border bg-background text-foreground text-[10px] focus:outline-none focus:border-primary/50`})]}),!n&&c(`label`,{className:`flex items-center gap-1`,children:[v(`span`,{className:`text-foreground-subtle`,children:T(`uiLibrary.logStream.device`,`Device:`)}),v(`input`,{type:`text`,inputMode:`numeric`,value:k,onChange:e=>A(e.target.value),placeholder:T(`uiLibrary.logStream.all`,`all`),className:`w-16 px-1.5 py-0.5 rounded border border-border bg-background text-foreground text-[10px] focus:outline-none focus:border-primary/50`})]})]}),c(`div`,{className:`relative flex-1 min-h-0 flex flex-col`,children:[!G&&Te&&c(`button`,{type:`button`,onClick:ke,className:`absolute bottom-2 left-1/2 -translate-x-1/2 z-10 inline-flex items-center gap-1 px-2 py-1 rounded-full border border-primary/40 bg-primary/15 text-primary text-[10px] font-medium shadow-md backdrop-blur-sm hover:bg-primary/25 transition-colors`,title:T(`uiLibrary.logStream.jumpTitle`,`Jump to the newest log line and resume following`),children:[v(nr,{className:`h-3 w-3`}),T(`uiLibrary.logStream.jumpToLatest`,`Jump to latest`)]}),c(`div`,{ref:fe,onScroll:Ae,className:$(`flex-1 min-h-0 overflow-auto font-mono text-[10px]`,s),children:[v(eY,{status:ve.status,done:ve.done,scannedBytes:ve.scannedBytes,hasRows:xe.length>0,error:ve.error,onLoadOlder:Ce,onCancel:ve.cancel}),ve.status===`idle`&&ve.done&&xe.length===0&&v(`div`,{className:`py-4 text-center text-foreground-subtle`,children:T(`uiLibrary.logStream.noLogs`,`No logs found`)}),xe.length>0&&v(`table`,{className:`w-full`,children:v(`tbody`,{children:xe.map(e=>{let t=GJ[e.level]??GJ.info,n=t.icon,r=Ve(e),i=re||se.has(r),a=e.tags&&Object.keys(e.tags).length>0,o=e.meta&&Object.keys(e.meta).length>0,s=a||o;return c(`tr`,{className:$(`hover:bg-surface-hover/30 border-b border-border/30`,s&&`cursor-pointer`),onClick:s?()=>Le(r):void 0,children:[v(`td`,{className:`px-2 py-1 text-foreground-subtle whitespace-nowrap align-top w-[70px]`,children:new Date(e.timestamp).toLocaleTimeString()}),v(`td`,{className:$(`px-1 py-1 align-top w-5`,t.color),children:v(n,{className:`h-3 w-3`})}),l&&v(`td`,{className:`px-2 py-1 text-foreground-subtle align-top truncate max-w-[120px]`,title:e.scope,children:e.scope?.replace(/^addon:/,``)??``}),v(`td`,{className:`px-2 py-1 text-foreground break-all`,children:c(`div`,{className:`flex items-start gap-1`,children:[s&&v(i?de:It,{className:`h-3 w-3 text-foreground-subtle shrink-0 mt-0.5`}),c(`div`,{className:`flex-1 min-w-0`,children:[d&&e.tags?.deviceId!==void 0&&v($J,{deviceId:e.tags.deviceId,deviceName:e.tags.deviceName}),e.message,i&&s&&c(`div`,{className:`mt-0.5 pl-3 text-[9px] leading-snug`,children:[o&&Object.entries(e.meta).filter(([,e])=>e!==void 0&&e!==``).map(([e,t])=>c(`div`,{className:`break-all`,children:[v(`span`,{className:`text-amber-400/80`,children:e}),v(`span`,{className:`text-foreground-subtle`,children:`=`}),v(`span`,{className:`text-foreground`,children:WJ(t)})]},`m-${e}`)),a&&Object.entries(e.tags).filter(([,e])=>e!==void 0).map(([e,t])=>c(`div`,{className:`break-all`,children:[v(`span`,{className:`text-primary/70`,children:e}),v(`span`,{className:`text-foreground-subtle`,children:`=`}),v(`span`,{className:`text-foreground`,children:t})]},`t-${e}`))]})]})]})}),v(`td`,{className:`px-1 py-1 align-top w-5`,children:v(nY,{copied:Re===r,onCopy:()=>Be(e,r)})})]},r)})})})]})]})]})}function QJ({position:e=`bottom`,className:t,...n}){return v(`div`,{className:$(e===`bottom`?`absolute bottom-0 left-0 right-0 z-10 border-t border-border bg-surface/95 backdrop-blur-sm`:`absolute inset-x-2 bottom-2 z-10 rounded-lg border border-border bg-surface/95 backdrop-blur-sm shadow-xl`,t),children:v(ZJ,{maxHeight:`max-h-48`,...n})})}function $J({deviceId:e,deviceName:t}){let n=q(),r=t?`${t} #${e}`:`#${e}`;return v(`span`,{className:`inline-block align-middle mr-1 px-1 py-0 rounded bg-primary/10 text-primary text-[9px] font-medium whitespace-nowrap`,title:n(`uiLibrary.logStream.deviceTitle`,`device {{id}}`,{id:e}),children:r})}function eY({status:e,done:t,scannedBytes:n,hasRows:r,error:i,onLoadOlder:a,onCancel:o}){let s=q();return e===`loading`?c(`div`,{className:`flex items-center justify-center gap-2 py-2 text-foreground-subtle`,children:[v(Un,{className:`h-3.5 w-3.5 animate-spin`}),n>0?s(`uiLibrary.logStream.searching`,`Searching older logs… ({{mb}} MB scanned)`,{mb:(n/XJ).toFixed(1)}):s(`uiLibrary.logStream.loading`,`Loading logs...`),v(gA,{variant:`outline`,size:`sm`,onClick:o,children:s(`uiLibrary.logStream.cancel`,`Cancel`)})]}):i?c(`div`,{className:`flex items-center justify-center gap-2 py-2 text-danger`,children:[i,v(gA,{variant:`outline`,size:`sm`,onClick:a,children:s(`uiLibrary.logStream.retry`,`Retry`)})]}):t?r?v(`div`,{className:`py-2 text-center text-foreground-subtle`,children:s(`uiLibrary.logStream.beginning`,`Beginning of logs`)}):null:v(`div`,{className:`flex justify-center py-1.5`,children:v(gA,{variant:`outline`,size:`sm`,onClick:a,children:s(`uiLibrary.logStream.loadOlder`,`Load older`)})})}function tY({label:e,value:t}){return c(`span`,{className:`text-[9px] px-1.5 py-0.5 rounded-full bg-primary/10 text-primary font-medium`,children:[e,`: `,t]})}function nY({copied:e,onCopy:t}){return v(`button`,{type:`button`,title:q()(`uiLibrary.logStream.copyRow`,`Copy this row`),onClick:e=>{e.stopPropagation(),t()},className:$(`rounded p-0.5 transition-colors`,e?`text-emerald-400`:`text-foreground-subtle/60 hover:text-foreground hover:bg-surface-hover`),children:v(e?dt:Qr,{className:`h-3 w-3`})})}function rY({icon:e,label:t,onClick:n,disabled:r,active:i}){return c(`button`,{type:`button`,onClick:n,disabled:r,className:$(`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors`,i?`border-amber-500/30 bg-amber-500/10 text-amber-400`:`border-border text-foreground-subtle hover:text-foreground`,r&&`opacity-40 cursor-not-allowed`),children:[v(e,{className:`h-2.5 w-2.5`}),t]})}E();function iY(e,t,n,r){if(r!==void 0&&(e.source.deviceId??(e.source.type===`device`&&typeof e.source.id==`number`?e.source.id:void 0))!==r||n!==void 0&&(e.source.addonId??(e.source.type===`addon`&&typeof e.source.id==`string`?e.source.id:void 0))!==n)return!1;if(t!==void 0){let n=e.source.nodeId;if(!n||n!==t&&!n.startsWith(`${t}/`))return!1}return!0}var aY={[$i.AddonStarted]:{icon:Le,color:`bg-emerald-500/15 text-emerald-400 border-emerald-500/30`,labelKey:`uiLibrary.eventStream.kindStarted`,labelFallback:`Started`},[$i.AddonInstalled]:{icon:nn,color:`bg-emerald-500/15 text-emerald-400 border-emerald-500/30`,labelKey:`uiLibrary.eventStream.kindInstalled`,labelFallback:`Installed`},[$i.AddonRestarted]:{icon:_e,color:`bg-blue-500/15 text-blue-400 border-blue-500/30`,labelKey:`uiLibrary.eventStream.kindRestarted`,labelFallback:`Restarted`},[$i.AddonUpdated]:{icon:yt,color:`bg-blue-500/15 text-blue-400 border-blue-500/30`,labelKey:`uiLibrary.eventStream.kindUpdated`,labelFallback:`Updated`},[$i.AddonStopped]:{icon:di,color:`bg-foreground-subtle/10 text-foreground-subtle border-border`,labelKey:`uiLibrary.eventStream.kindStopped`,labelFallback:`Stopped`},[$i.AddonUninstalled]:{icon:Pe,color:`bg-foreground-subtle/10 text-foreground-subtle border-border`,labelKey:`uiLibrary.eventStream.kindUninstalled`,labelFallback:`Uninstalled`},[$i.AddonCrashed]:{icon:Di,color:`bg-red-500/15 text-red-400 border-red-500/30`,labelKey:`uiLibrary.eventStream.kindCrashed`,labelFallback:`Crashed`},[$i.AddonError]:{icon:Ii,color:`bg-red-500/15 text-red-400 border-red-500/30`,labelKey:`uiLibrary.eventStream.kindError`,labelFallback:`Error`},[$i.DetectionPhaseTransition]:{icon:ri,color:`bg-violet-500/15 text-violet-400 border-violet-500/30`,labelKey:`uiLibrary.eventStream.kindPhase`,labelFallback:`Phase`},[$i.DetectionResult]:{icon:On,color:`bg-purple-500/15 text-purple-400 border-purple-500/30`,labelKey:`uiLibrary.eventStream.kindDetection`,labelFallback:`Detection`},[$i.DetectionEvent]:{icon:Zt,color:`bg-blue-500/15 text-blue-400 border-blue-500/30`,labelKey:`uiLibrary.eventStream.kindEvent`,labelFallback:`Event`},[$i.DetectionCameraNative]:{icon:ln,color:`bg-cyan-500/15 text-cyan-400 border-cyan-500/30`,labelKey:`uiLibrary.eventStream.kindCameraAi`,labelFallback:`Camera AI`},[$i.ProviderMotion]:{icon:er,color:`bg-orange-500/15 text-orange-400 border-orange-500/30`,labelKey:`uiLibrary.eventStream.kindMotion`,labelFallback:`Motion`},[$i.MotionOnMotionChanged]:{icon:er,color:`bg-orange-500/15 text-orange-400 border-orange-500/30`,labelKey:`uiLibrary.eventStream.kindMotion`,labelFallback:`Motion`},[$i.MotionAnalysis]:{icon:ri,color:`bg-orange-500/10 text-orange-300 border-orange-500/20`,labelKey:`uiLibrary.eventStream.kindMotionAnalysis`,labelFallback:`Motion analysis`},[$i.MotionZonesRaw]:{icon:ri,color:`bg-orange-500/10 text-orange-300 border-orange-500/20`,labelKey:`uiLibrary.eventStream.kindMotionZones`,labelFallback:`Motion zones`},[$i.ProviderDetection]:{icon:ln,color:`bg-cyan-500/15 text-cyan-400 border-cyan-500/30`,labelKey:`uiLibrary.eventStream.kindProviderDet`,labelFallback:`Provider Det`},[$i.PipelineAudioInferenceResult]:{icon:Mr,color:`bg-pink-500/15 text-pink-400 border-pink-500/30`,labelKey:`uiLibrary.eventStream.kindAudio`,labelFallback:`Audio`},[$i.AgentOnline]:{icon:Le,color:`bg-emerald-500/15 text-emerald-400 border-emerald-500/30`,labelKey:`uiLibrary.eventStream.kindAgentOnline`,labelFallback:`Agent Online`},[$i.AgentOffline]:{icon:di,color:`bg-red-500/15 text-red-400 border-red-500/30`,labelKey:`uiLibrary.eventStream.kindAgentOffline`,labelFallback:`Agent Offline`},[$i.DeviceRegistered]:{icon:nn,color:`bg-emerald-500/15 text-emerald-400 border-emerald-500/30`,labelKey:`uiLibrary.eventStream.kindRegistered`,labelFallback:`Registered`},[$i.DeviceUnregistered]:{icon:Pe,color:`bg-red-500/15 text-red-400 border-red-500/30`,labelKey:`uiLibrary.eventStream.kindUnregistered`,labelFallback:`Unregistered`},[$i.DeviceStateChanged]:{icon:ri,color:`bg-foreground-subtle/10 text-foreground-subtle border-border`,labelKey:`uiLibrary.eventStream.kindState`,labelFallback:`State`},[$i.EventEmitted]:{icon:er,color:`bg-amber-500/15 text-amber-400 border-amber-500/30`,labelKey:`uiLibrary.eventStream.kindEvent`,labelFallback:`Event`}};function oY(e,t,n){let r=aY[t],i=r?{icon:r.icon,color:r.color,label:e(r.labelKey,r.labelFallback)}:{icon:Le,color:`bg-foreground-subtle/10 text-foreground-subtle border-border`,label:t.split(`.`).pop()??t};if(t===$i.DeviceStateChanged&&n&&typeof n.capName==`string`){let e=n.capName;return{...i,label:e}}return i}var sY=Object.freeze([...Za()]),cY=Object.freeze([$i.PipelineCameraMetricsSnapshot,$i.PipelineRunnerLoadSnapshot,$i.PipelineEngineMetricsSnapshot,$i.PipelineInferenceResult,$i.PipelineTrace,$i.PipelineProgress,$i.StreamBrokerMetricsSnapshot,$i.MetricsNodeResourcesSnapshot,$i.MetricsNodeProcessesSnapshot,$i.ClusterTopologySnapshot,$i.MotionAnalysis,$i.MotionZonesRaw,$i.DetectionResult,$i.PipelineAudioInferenceResult,$i.PlatformProbePhase,$i.BenchmarkProgress,$i.ModelDownloadProgress,$i.ProviderMotion]),lY=new Set(cY),uY=Object.freeze(sY.filter(e=>!lY.has(e)));function dY(e,t,n,r){if(typeof t==`object`&&t&&`kind`in t&&t.kind===`sensor`){let e=`deviceId`in t?t.deviceId:void 0;return r(`uiLibrary.eventStream.summary.sessionBySensor`,`Detection session started by {{who}} motion — phase active`,{who:typeof n==`string`&&n.length>0?n:r(`uiLibrary.eventStream.summary.sensorFallback`,`sensor #{{id}}`,{id:String(e??`?`)})})}return e===null?r(`uiLibrary.eventStream.summary.sessionStarted`,`Detection session started — phase active`):r(`uiLibrary.eventStream.summary.sessionBySensor`,`Detection session started by {{who}} motion — phase active`,{who:e})}function fY(e,t,n=Fn){if(e===$i.DetectionPhaseTransition){let e=t.to,r=t.from,i=typeof t.source==`string`?t.source:null,a=typeof t.cooldownMs==`number`?t.cooldownMs:null,o=a?n(`uiLibrary.eventStream.summary.cooldown`,`{{source}}, {{seconds}}s cooldown`,{source:i??``,seconds:Math.round(a/1e3)}):i,s=i?` (${o})`:``,c=t.cause;return c===`attach`?dY(i,t.triggeredBy,t.sensorName,n):c===`detach`?n(`uiLibrary.eventStream.summary.sessionEnded`,`Detection session ended — phase watching`):e===`active`?n(`uiLibrary.eventStream.summary.motionActive`,`Motion detected — phase active{{suffix}}`,{suffix:s}):e===`watching`?n(`uiLibrary.eventStream.summary.cooldownExpired`,`Cooldown expired — phase watching{{suffix}}`,{suffix:s}):n(`uiLibrary.eventStream.summary.phaseChange`,`Phase: {{from}} → {{to}}{{suffix}}`,{from:String(r),to:String(e),suffix:s})}if(e===$i.DetectionResult){let e=t.frame?.detections??[];if(e.length===0)return null;let n=new Map;for(let t of e){let e=t,r=e.class??e.macroClass,i=typeof r==`string`?r:``;i&&n.set(i,(n.get(i)??0)+1)}return[...n.entries()].map(([e,t])=>t>1?`${e} ×${t}`:e).join(`, `)}if(e===$i.PipelineAudioInferenceResult){let e=t.frame?.detections??[];return e.length===0?null:e.map(e=>{let t=e,n=t.macroClass??t.class??t.label,r=typeof n==`string`?n:``,i=t.score;return i?`${r} (${Math.round(i*100)}%)`:r}).filter(Boolean).join(`, `)}if(e===$i.DetectionEvent){let e=t.label??t.class,n=t.score??t.confidence,r=[];return typeof e==`string`&&r.push(e),typeof n==`number`&&r.push(`${Math.round(n*100)}%`),r.length>0?r.join(` — `):null}if(e===$i.ProviderMotion)return t.detected===!0?n(`uiLibrary.eventStream.summary.motionStart`,`motion start`):n(`uiLibrary.eventStream.summary.motionStop`,`motion stop`);if(e===$i.DeviceStateChanged){let e=t.slice;if(e&&typeof e==`object`){let t=Object.keys(e).filter(e=>e!==`lastFetchedAt`&&e!==`ts`);if(t.length>0)return t.slice(0,4).join(`, `)+(t.length>4?`…`:``)}return null}if(e===$i.EventEmitted)return(typeof t.eventType==`string`?t.eventType:null)??null;if(e===$i.MotionOnMotionChanged){let e=t.detected,n=typeof t.source==`string`?t.source:null,r=e===!0?`motion start`:e===!1?`motion stop`:`motion`;return n?`${r} (${n})`:r}if(e===$i.ProviderDetection||e===$i.DetectionCameraNative){let e=t.detections??[];if(!Array.isArray(e)||e.length===0)return(typeof t.class==`string`?t.class:null)??null;let n=new Map;for(let t of e){let e=t,r=e.class??e.macroClass,i=typeof r==`string`?r:``;i&&n.set(i,(n.get(i)??0)+1)}return[...n.entries()].map(([e,t])=>t>1?`${e} ×${t}`:e).join(`, `)}let r=t.addonId;return t.error||(r?`addon: ${r}`:null)}function pY(e){let t=e.category;return t===$i.DetectionResult||t===$i.PipelineAudioInferenceResult?fY(t,e.data)!==null:!0}var mY=300;function hY({agentId:e,addonId:t,deviceId:n,defaultCategories:r,categories:i,category:a,maxHeight:o=`max-h-96`,limit:s=50,showCategoryFilter:l=!0,showFilters:u=!1,liveBuffer:d,onClose:m,className:h}){let g=f(null);Cs(g);let y=q(),x=p(()=>r??i??uY,[r,i]),S=p(()=>[...x].toSorted().join(`,`),[x]),[w,T]=C(()=>new Set(x)),E=f(S);b(()=>{E.current!==S&&(E.current=S,T(new Set(x)))},[S,x]);let D=IJ(mY),O=d??D,k=O.entries,[A,j]=C(!0),[M,N]=C(new Set),[P,F]=C(``),[I,L]=C(!1),[R,z]=C(``),[B,V]=C(0),H=f(null),U=f(null),ee=`${e??``}:${t??``}:${String(n??``)}:${a??``}`,W=f(ee);b(()=>{W.current!==ee&&(W.current=ee,O.reset(),N(new Set),V(0))},[ee,O]),b(()=>{if(!I)return;let e=e=>{let t=U.current;t&&e.target instanceof Node&&!t.contains(e.target)&&L(!1)};return document.addEventListener(`mousedown`,e),()=>{document.removeEventListener(`mousedown`,e)}},[I]);let G=p(()=>{let r={};return e&&(r.agentId=e),t&&(r.addonId=t),n!==void 0&&(r.deviceId=n),a&&(r.category=a),r},[e,t,n,a]),te=p(()=>[...w].toSorted(),[w]),ne=p(()=>{let e={...G,limit:s};return te.length>0&&te.length<sY.length&&(e.category=te),e},[G,s,p(()=>te.join(`,`),[te]),te]),{data:re,isLoading:K}=X.systemEvents.getRecent.useQuery(ne,{staleTime:3e4}),ie=f(w);b(()=>{ie.current=w},[w]);let ae=G;X.systemEvents.subscribe.useSubscription(ae,{onData:r=>{let i=r;i?.id&&iY(i,e,t,n)&&ie.current.has(i.category)&&O.append(i)}});let oe=f(k.length);b(()=>{let e=H.current;if(!e){oe.current=k.length;return}let t=oe.current;if(oe.current=k.length,!(k.length<=t)){if(A&&e.scrollTop<=8)e.scrollTo({top:0});else if(!A&&e.scrollTop>0){let n=e.firstElementChild?.firstElementChild,r=n instanceof HTMLElement?n.offsetHeight:28;e.scrollTop+=r*(k.length-t)}}},[k.length,A]);let se=p(()=>{let e=new Map;for(let t of re??[])e.set(t.id,t);for(let t of k)e.set(t.id,t);let t=[...e.values()].filter(e=>w.has(e.category)).filter(pY);B>0&&(t=t.filter(e=>new Date(e.timestamp).getTime()>B));let n=P.trim().toLowerCase();return n&&(t=t.filter(e=>{if(e.category.toLowerCase().includes(n)||oY(y,e.category,e.data).label.toLowerCase().includes(n))return!0;let t=fY(e.category,e.data,y);if(t&&t.toLowerCase().includes(n))return!0;try{if(new Date(e.timestamp).toLocaleTimeString().toLowerCase().includes(n))return!0}catch{}try{if(JSON.stringify(e.data).toLowerCase().includes(n)||JSON.stringify(e.source).toLowerCase().includes(n))return!0}catch{}return!1})),t.toSorted((e,t)=>new Date(t.timestamp).getTime()-new Date(e.timestamp).getTime())},[re,k,w,P,B,y]),ce=_(e=>{N(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),le=_(e=>{T(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),ue=_(()=>{T(new Set(x)),F(``),V(0)},[x]),fe=_(()=>{V(Date.now()),O.reset()},[O]),[pe,me]=C(!1),[he,ge]=C(null),_e=_(e=>{let t=new Date(e.timestamp).toISOString(),n=fY(e.category,e.data,y)??``,r=n?` ${n}`:``;return`${t} [${e.category}]${r} data=${JSON.stringify(e.data)}`},[y]),ve=_(()=>{let e=se.map(_e);navigator.clipboard.writeText(e.join(`
5
5
  `)).then(()=>{me(!0),setTimeout(()=>me(!1),1500)})},[se,_e]),ye=_(e=>{navigator.clipboard.writeText(_e(e)).then(()=>{ge(e.id),setTimeout(()=>ge(t=>t===e.id?null:t),1200)})},[_e]),be=_(()=>{T(new Set(sY))},[]),xe=_(()=>{T(new Set)},[]),Se=p(()=>{let e=R.trim().toLowerCase();return e?sY.filter(t=>t.toLowerCase().includes(e)):sY},[R]),Ce=sY.length,we=w.size,Te=we===Ce,Ee=Te?`All`:`${we}/${Ce}`;return c(`div`,{className:$(`h-full min-h-0 flex flex-col`,h),onClick:e=>e.stopPropagation(),children:[c(`div`,{className:`flex items-center justify-between px-3 py-1.5 bg-surface-hover/30 gap-2 shrink-0`,children:[c(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[v(`span`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle font-medium`,children:y(`uiLibrary.eventStream.title`,`Events`)}),e&&v(vY,{label:`agent`,value:e}),t&&v(vY,{label:`addon`,value:t}),n!==void 0&&v(vY,{label:`device`,value:`#${n}`}),a&&v(vY,{label:`category`,value:a}),c(`button`,{type:`button`,onClick:()=>{j(e=>!e),!A&&H.current&&H.current.scrollTo({top:0,behavior:`smooth`})},className:$(`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors`,A?`border-border text-foreground-subtle hover:text-foreground`:`border-amber-500/30 bg-amber-500/10 text-amber-400`),children:[v(aee,{className:`h-2.5 w-2.5`}),A?y(`uiLibrary.eventStream.auto`,`Auto`):y(`uiLibrary.eventStream.paused`,`Paused`)]}),l&&c(`div`,{className:`relative`,ref:U,children:[c(`button`,{type:`button`,onClick:()=>L(e=>!e),className:$(`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors`,Te?`border-border text-foreground-subtle hover:text-foreground`:`border-violet-500/30 bg-violet-500/10 text-violet-400`),title:y(`uiLibrary.eventStream.pickEvents`,`Pick events to track`),children:[v(Re,{className:`h-2.5 w-2.5`}),y(`uiLibrary.eventStream.filter`,`Filter ({{label}})`,{label:Ee})]}),I&&v(gY,{search:R,onSearchChange:z,categories:Se,active:w,onToggle:le,onSelectAll:be,onSelectNone:xe,onResetDefaults:ue})]}),c(`button`,{type:`button`,onClick:ue,className:`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground transition-colors`,title:y(`uiLibrary.eventStream.resetTitle`,`Reset filters to defaults`),children:[v(Lt,{className:`h-2.5 w-2.5`}),y(`uiLibrary.eventStream.reset`,`Reset`)]}),c(`button`,{type:`button`,onClick:fe,className:`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground transition-colors`,title:y(`uiLibrary.eventStream.clearTitle`,`Clear visible entries`),children:[v(Pe,{className:`h-2.5 w-2.5`}),y(`uiLibrary.eventStream.clear`,`Clear`)]}),c(`button`,{type:`button`,onClick:ve,disabled:se.length===0,className:$(`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors`,pe?`border-emerald-500/30 bg-emerald-500/10 text-emerald-400`:`border-border text-foreground-subtle hover:text-foreground`,se.length===0&&`opacity-40 cursor-not-allowed`),title:y(`uiLibrary.eventStream.copyAllTitle`,`Copy all visible events`),children:[v(Qr,{className:`h-2.5 w-2.5`}),pe?y(`uiLibrary.eventStream.copied`,`Copied!`):y(`uiLibrary.eventStream.copy`,`Copy`)]}),c(`div`,{className:`relative`,children:[v(`input`,{ref:g,type:`text`,value:P,onChange:e=>F(e.target.value),placeholder:y(`uiLibrary.eventStream.search`,`Search…`),className:`w-32 pl-1.5 pr-5 py-0.5 rounded border border-border bg-background text-foreground text-[10px] focus:outline-none focus:border-primary/50`}),P&&v(`button`,{type:`button`,onClick:()=>F(``),className:`absolute right-1 top-1/2 -translate-y-1/2 text-foreground-subtle hover:text-foreground`,title:y(`uiLibrary.eventStream.clearSearch`,`Clear search`),children:v(Yn,{className:`h-2.5 w-2.5`})})]}),k.length>0&&v(`span`,{className:`text-[9px] text-emerald-400 font-medium`,children:y(`uiLibrary.eventStream.live`,`+{{count}} live`,{count:k.length})})]}),m&&v(`button`,{type:`button`,onClick:m,className:`text-foreground-subtle hover:text-foreground`,children:v(Yn,{className:`h-3.5 w-3.5`})})]}),c(`div`,{ref:H,className:$(`flex-1 min-h-0 overflow-auto text-[10px]`,o),children:[K&&c(`div`,{className:`flex items-center justify-center gap-2 py-6 text-foreground-subtle`,children:[v(Un,{className:`h-3.5 w-3.5 animate-spin`}),y(`uiLibrary.eventStream.loading`,`Loading events...`)]}),!K&&se.length===0&&v(`div`,{className:`py-4 text-center text-foreground-subtle`,children:y(`uiLibrary.eventStream.empty`,`No events found`)}),se.length>0&&v(`div`,{className:`divide-y divide-border/30`,children:se.map(e=>{let t=oY(y,e.category,e.data),n=t.icon,r=fY(e.category,e.data,y),i=M.has(e.id);return c(`div`,{className:`flex items-start gap-2 px-3 py-1.5 hover:bg-surface-hover/30 cursor-pointer`,onClick:()=>ce(e.id),children:[v(`span`,{className:`text-foreground-subtle whitespace-nowrap w-[70px] shrink-0 pt-0.5`,children:new Date(e.timestamp).toLocaleTimeString()}),v(yY,{copied:he===e.id,onCopy:()=>ye(e)}),c(`div`,{className:`flex-1 min-w-0`,children:[c(`div`,{className:`flex items-center gap-1.5`,children:[v(i?de:It,{className:`h-3 w-3 text-foreground-subtle shrink-0`}),c(`span`,{className:$(`inline-flex items-center gap-1 rounded-full border px-2 py-0.5 text-[9px] font-medium`,t.color),children:[v(n,{className:`h-2.5 w-2.5`}),t.label]}),e.source.nodeId&&e.source.nodeId!==`hub`&&v(`span`,{className:`text-[9px] px-1 py-0.5 rounded bg-foreground-subtle/10 text-foreground-subtle font-mono`,children:e.source.nodeId})]}),r&&v(`p`,{className:`text-foreground-subtle text-[10px] mt-0.5 ml-5`,children:r}),i&&c(`div`,{className:`mt-1 ml-5 text-[9px] bg-surface rounded px-2 py-1.5 space-y-0.5 font-mono overflow-x-auto`,children:[c(`div`,{children:[v(`span`,{className:`text-primary/70`,children:`source`}),v(`span`,{className:`text-foreground-subtle`,children:`: `}),v(`span`,{className:`text-foreground`,children:JSON.stringify(e.source)})]}),c(`div`,{children:[v(`span`,{className:`text-primary/70`,children:`category`}),v(`span`,{className:`text-foreground-subtle`,children:`: `}),v(`span`,{className:`text-foreground`,children:e.category})]}),Object.entries(e.data).map(([e,t])=>c(`div`,{children:[v(`span`,{className:`text-primary/70`,children:e}),v(`span`,{className:`text-foreground-subtle`,children:`: `}),v(`span`,{className:`text-foreground break-all`,children:typeof t==`object`?JSON.stringify(t):String(t)})]},e))]})]})]},e.id)})})]})]})}function gY({search:e,onSearchChange:t,categories:n,active:r,onToggle:i,onSelectAll:a,onSelectNone:o,onResetDefaults:s}){let l=q();return c(`div`,{className:`absolute z-20 top-full mt-1 left-0 w-72 max-h-80 rounded-md border border-border bg-surface shadow-lg flex flex-col`,onClick:e=>e.stopPropagation(),children:[c(`div`,{className:`flex items-center gap-1 px-2 py-1.5 border-b border-border/50`,children:[v(bi,{className:`h-3 w-3 text-foreground-subtle`}),v(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:l(`uiLibrary.eventStream.filterCategories`,`Filter categories…`),className:`flex-1 bg-transparent text-[10px] focus:outline-none text-foreground placeholder:text-foreground-subtle`,autoFocus:!0}),e&&v(`button`,{type:`button`,onClick:()=>t(``),className:`text-foreground-subtle hover:text-foreground`,children:v(Yn,{className:`h-2.5 w-2.5`})})]}),c(`div`,{className:`flex items-center gap-1 px-2 py-1 border-b border-border/50 text-[9px]`,children:[v(`button`,{type:`button`,onClick:a,className:`px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground`,children:l(`uiLibrary.eventStream.all`,`All`)}),v(`button`,{type:`button`,onClick:o,className:`px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground`,children:l(`uiLibrary.eventStream.none`,`None`)}),v(`button`,{type:`button`,onClick:s,className:`px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground`,children:l(`uiLibrary.eventStream.defaults`,`Defaults`)})]}),c(`div`,{className:`overflow-y-auto flex-1`,children:[n.length===0&&v(`div`,{className:`text-[10px] text-foreground-subtle italic px-2 py-3 text-center`,children:l(`uiLibrary.eventStream.noMatches`,`No matches`)}),n.map(e=>{let t=r.has(e),n=oY(l,e),a=n.icon;return c(`button`,{type:`button`,onClick:()=>i(e),className:`w-full flex items-center gap-2 px-2 py-1 text-left hover:bg-surface-hover/40 text-[10px]`,children:[v(`input`,{type:`checkbox`,readOnly:!0,checked:t,className:`accent-violet-500`}),c(`span`,{className:$(`inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 text-[9px] font-medium shrink-0`,n.color),children:[v(a,{className:`h-2.5 w-2.5`}),n.label]}),v(`span`,{className:`text-foreground-subtle font-mono truncate`,children:e})]},e)})]})]})}function _Y({position:e=`bottom`,className:t,...n}){return v(`div`,{className:$(e===`bottom`?`absolute bottom-0 left-0 right-0 z-10 border-t border-border bg-surface/95 backdrop-blur-sm`:`absolute inset-x-2 bottom-2 z-10 rounded-lg border border-border bg-surface/95 backdrop-blur-sm shadow-xl`,t),children:v(hY,{maxHeight:`max-h-48`,...n})})}function vY({label:e,value:t}){return c(`span`,{className:`text-[9px] px-1.5 py-0.5 rounded-full bg-primary/10 text-primary font-medium`,children:[e,`: `,t]})}function yY({copied:e,onCopy:t}){return v(`button`,{type:`button`,title:q()(`uiLibrary.eventStream.copyOne`,`Copy this event`),onClick:e=>{e.stopPropagation(),t()},className:$(`rounded p-0.5 transition-colors mt-0.5`,e?`text-emerald-400`:`text-foreground-subtle/60 hover:text-foreground hover:bg-surface-hover`),children:v(e?dt:Qr,{className:`h-3 w-3`})})}var bY=[/at$/i,/atms$/i,/^timestamp$/i,/timestamp$/i,/since$/i,/^lastseen$/i,/lastseen$/i,/^expires?$/i,/expiry$/i],xY=0xe8d4a51000,SY=4e12,CY=1e9,wY=4e9;function TY(e){return bY.some(t=>t.test(e))}function EY(e){return Number.isFinite(e)?e>=xY&&e<=SY?e:e>=CY&&e<=wY?e*1e3:null:null}function DY(e){let t=new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString(void 0,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function OY(e){if(e===null)return`null`;if(e===void 0)return`undefined`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function kY(e,t){if(typeof t==`number`&&TY(e)){let e=EY(t);if(e!==null)return{text:DY(e),raw:String(t)}}if(typeof t==`string`&&AY(t)){let e=Date.parse(t);if(!Number.isNaN(e))return{text:DY(e),raw:t}}return{text:OY(t),raw:null}}function AY(e){return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?(Z|[+-]\d{2}:?\d{2})?$/.test(e)}E();function jY(e,t){if(!e||typeof e!=`object`)return null;let n=e;if(n.category!==$i.DeviceStateChanged)return null;let r=n.data;return!r||typeof r!=`object`||r.deviceId!==t||typeof r.capName!=`string`||!r.slice||typeof r.slice!=`object`?null:{capName:r.capName,slice:r.slice}}function MY(e){return!!e&&typeof e==`object`&&!Array.isArray(e)}function NY(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.source==`string`?!!t.data&&typeof t.data==`object`&&!Array.isArray(t.data):!1}function PY(e,t){let n=new Map;for(let[r,i]of Object.entries(e)){let e=i&&typeof i==`object`&&!Array.isArray(i)?i:{value:i};n.set(r,{slice:e,updatedAt:t})}return n}var FY=Object.freeze([...new Set(Ta.filter(e=>e.scope===`device`).map(e=>e.name))].toSorted());function IY(e){let t=Ta.find(t=>t.name===e)?.runtimeState;if(!t||typeof t!=`object`)return[];let n=Reflect.get(t,`shape`);return!n||typeof n!=`object`?[]:Object.keys(n)}function LY(e){let t=IY(e);if(t.length===0)return null;let n={};for(let e of t)n[e]=null;return n}var RY=1;function zY({deviceId:e,defaultCaps:t,maxHeight:n=`max-h-96`,onClose:r,className:i}){let a=f(null);Cs(a);let o=q(),[s,l]=C(p(()=>new Set(t??[]),[t])),[u,d]=C(``),[m,h]=C(!1),[g,y]=C(``),[x,S]=C(`normalized`),T=f(null),[E,D]=C(new Map),[O,k]=C(new Map),[,A]=C(0),j=f(e);b(()=>{j.current!==e&&(j.current=e,D(new Map),k(new Map))},[e]);let{data:M,isLoading:N}=X.deviceState.getAllSnapshots.useQuery({},{staleTime:3e4});b(()=>{if(!MY(M))return;let t=M[String(e)];if(!t)return;let n=Date.now();D(e=>{let r=!1,i=new Map(e);for(let[e,a]of Object.entries(t)){let t=i.get(e);t&&t.placeholder!==!0||(i.set(e,{slice:a,updatedAt:n}),r=!0)}return r?i:e})},[M,e]);let{data:F}=X.deviceManager.getBindings.useQuery({deviceId:e},{staleTime:3e4});b(()=>{let e=F?.entries;if(!e||e.length===0)return;let t=Date.now();D(n=>{let r=!1,i=new Map(n);for(let n of e){if(i.has(n.capName))continue;let e=LY(n.capName);e&&(i.set(n.capName,{slice:e,updatedAt:t,placeholder:!0}),r=!0)}return r?i:n})},[F,e]);let I=_((e,t)=>{D(n=>{let r=new Map(n);return r.set(e,{slice:t,updatedAt:Date.now()}),r})},[]),L=Ge(Rn().trpcClient,e)?.deviceOps?.getRawState,R=w({queryKey:[`device-raw-state`,e],queryFn:()=>L({deviceId:e}),enabled:L!=null,staleTime:6e4}),z=NY(R.data)?R.data:null,B=R.isFetched&&!R.isError&&z!=null;b(()=>{x===`raw`&&!B&&S(`normalized`)},[x,B]);let V=p(()=>z?PY(z.data,R.dataUpdatedAt||Date.now()):new Map,[z,R.dataUpdatedAt]);b(()=>{let e=setInterval(()=>A(e=>e+1),5e3);return()=>clearInterval(e)},[]);let H=p(()=>{let e=new Set(FY);for(let t of E.keys())e.add(t);return[...e].toSorted()},[E]),U=p(()=>{let e=u.trim().toLowerCase();return[...E.keys()].toSorted().filter(t=>s.size>0&&!s.has(t)?!1:!e||t.toLowerCase().includes(e)?!0:YY(E.get(t)?.slice??{},e))},[E,s,u]),ee=_(e=>{l(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),W=_(()=>{l(new Set(t??[])),d(``)},[t]),G=_(()=>{l(new Set(H))},[H]),te=_(()=>{l(new Set)},[]),ne=_((e,t)=>{k(n=>{let r=new Map(n);return r.set(e,!t),r})},[]),re=_((e,t)=>{let n=O.get(e);return n===void 0?t<RY:n},[O]),[K,ie]=C(!1),ae=_(()=>{let e={};for(let t of U){let n=E.get(t);n&&(e[t]=n.slice)}navigator.clipboard.writeText(JSON.stringify(e,null,2)).then(()=>{ie(!0),setTimeout(()=>ie(!1),1500)})},[U,E]),oe=p(()=>{let e=g.trim().toLowerCase();return e?H.filter(t=>t.toLowerCase().includes(e)):H},[g,H]),se=H.length,ce=s.size,le=ce===0||ce===se,ue=le?o(`uiLibrary.stateValuesStream.filterAll`,`All`):`${ce}/${se}`;b(()=>{if(!m)return;let e=e=>{let t=T.current;t&&!t.contains(e.target)&&h(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[m]);let de=u.trim().toLowerCase();return c(`div`,{className:$(`h-full min-h-0 flex flex-col`,i),onClick:e=>e.stopPropagation(),children:[c(`div`,{className:`flex items-center justify-between px-3 py-1.5 bg-surface-hover/30 gap-2 shrink-0`,children:[c(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[v(`span`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle font-medium`,children:o(`uiLibrary.stateValuesStream.state`,`State`)}),v(ZY,{label:o(`uiLibrary.stateValuesStream.scopeDevice`,`device`),value:`#${e}`}),B&&v(BY,{mode:x,onChange:S}),x===`normalized`&&c(P,{children:[c(`div`,{className:`relative`,ref:T,children:[c(`button`,{type:`button`,onClick:()=>h(e=>!e),className:$(`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors`,le?`border-border text-foreground-subtle hover:text-foreground`:`border-violet-500/30 bg-violet-500/10 text-violet-400`),title:o(`uiLibrary.stateValuesStream.pickCaps`,`Pick caps to show`),children:[v(Re,{className:`h-2.5 w-2.5`}),o(`uiLibrary.stateValuesStream.filter`,`Filter ({{label}})`,{label:ue})]}),m&&v(QY,{search:g,onSearchChange:y,caps:oe,active:s,onToggle:ee,onSelectAll:G,onSelectNone:te,onResetDefaults:W})]}),c(`button`,{type:`button`,onClick:W,className:`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground transition-colors`,title:o(`uiLibrary.stateValuesStream.resetFilters`,`Reset filters`),children:[v(Lt,{className:`h-2.5 w-2.5`}),o(`uiLibrary.stateValuesStream.reset`,`Reset`)]}),c(`button`,{type:`button`,onClick:ae,disabled:U.length===0,className:$(`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border transition-colors`,K?`border-emerald-500/30 bg-emerald-500/10 text-emerald-400`:`border-border text-foreground-subtle hover:text-foreground`,U.length===0&&`opacity-40 cursor-not-allowed`),title:o(`uiLibrary.stateValuesStream.copyTitle`,`Copy visible state as JSON`),children:[v(Qr,{className:`h-2.5 w-2.5`}),K?o(`uiLibrary.stateValuesStream.copied`,`Copied!`):o(`uiLibrary.stateValuesStream.copy`,`Copy`)]}),c(`div`,{className:`relative`,children:[v(`input`,{ref:a,type:`text`,value:u,onChange:e=>d(e.target.value),placeholder:o(`uiLibrary.stateValuesStream.search`,`Search…`),className:`w-32 pl-1.5 pr-5 py-0.5 rounded border border-border bg-background text-foreground text-[10px] focus:outline-none focus:border-primary/50`}),u&&v(`button`,{type:`button`,onClick:()=>d(``),className:`absolute right-1 top-1/2 -translate-y-1/2 text-foreground-subtle hover:text-foreground`,title:o(`uiLibrary.stateValuesStream.clearSearch`,`Clear search`),children:v(Yn,{className:`h-2.5 w-2.5`})})]}),c(`span`,{className:`text-[9px] text-emerald-400 font-medium inline-flex items-center gap-1`,children:[v(`span`,{className:`h-1.5 w-1.5 rounded-full bg-emerald-400 animate-pulse`}),o(`uiLibrary.stateValuesStream.live`,`live`)]})]}),x===`raw`&&z&&c(P,{children:[v(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-sky-500/30 bg-sky-500/15 text-sky-400 px-2 py-0.5 text-[9px] font-medium font-sans`,children:o(`uiLibrary.stateValuesStream.source`,`source: {{source}}`,{source:z.source})}),c(`button`,{type:`button`,onClick:()=>R.refetch(),disabled:R.isFetching,className:$(`inline-flex items-center gap-1 text-[9px] px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground transition-colors`,R.isFetching&&`opacity-60 cursor-wait`),title:o(`uiLibrary.stateValuesStream.rereadTitle`,`Re-read raw upstream state`),children:[v(Lt,{className:$(`h-2.5 w-2.5`,R.isFetching&&`animate-spin`)}),o(`uiLibrary.stateValuesStream.refresh`,`Refresh`)]})]})]}),x===`normalized`&&v(VY,{deviceId:e,onPatch:I}),r&&v(`button`,{type:`button`,onClick:r,className:`text-foreground-subtle hover:text-foreground`,children:v(Yn,{className:`h-3.5 w-3.5`})})]}),v(`div`,{className:$(`flex-1 min-h-0 overflow-auto text-[10px] font-mono`,n),children:x===`raw`?V.size===0?v(`div`,{className:`py-4 text-center text-foreground-subtle font-sans`,children:o(`uiLibrary.stateValuesStream.noRawState`,`No raw state`)}):v(`div`,{className:`py-1`,children:[...V.entries()].map(([e,t])=>v(HY,{capName:e,slice:t.slice,updatedAt:t.updatedAt,searchNeedle:``,isPathOpen:re,onToggle:ne},e))}):c(P,{children:[N&&E.size===0&&c(`div`,{className:`flex items-center justify-center gap-2 py-6 text-foreground-subtle font-sans`,children:[v(Un,{className:`h-3.5 w-3.5 animate-spin`}),o(`uiLibrary.stateValuesStream.loading`,`Loading device state...`)]}),!N&&E.size===0&&v(`div`,{className:`py-4 text-center text-foreground-subtle font-sans`,children:o(`uiLibrary.stateValuesStream.noRuntimeState`,`No runtime state`)}),!N&&E.size>0&&U.length===0&&v(`div`,{className:`py-4 text-center text-foreground-subtle font-sans`,children:o(`uiLibrary.stateValuesStream.noCapsMatch`,`No caps match the filter`)}),U.length>0&&v(`div`,{className:`py-1`,children:U.map(e=>{let t=E.get(e);return t?v(HY,{capName:e,slice:t.slice,updatedAt:t.updatedAt,searchNeedle:de,isPathOpen:re,onToggle:ne},e):null})})]})})]})}function BY({mode:e,onChange:t}){let n=q();return v(`div`,{className:`inline-flex items-center rounded border border-border overflow-hidden`,children:[{value:`normalized`,label:n(`uiLibrary.stateValuesStream.normalized`,`Normalized`)},{value:`raw`,label:n(`uiLibrary.stateValuesStream.raw`,`Raw`)}].map(n=>v(`button`,{type:`button`,onClick:()=>t(n.value),className:$(`text-[9px] px-1.5 py-0.5 transition-colors`,e===n.value?`bg-violet-500/15 text-violet-400`:`text-foreground-subtle hover:text-foreground`),children:n.label},n.value))})}function VY({deviceId:e,onPatch:t}){return X.systemEvents.subscribe.useSubscription({deviceId:e,category:$i.DeviceStateChanged},{onData:n=>{let r=jY(n,e);r&&t(r.capName,r.slice)}}),null}function HY({capName:e,slice:t,updatedAt:n,searchNeedle:r,isPathOpen:i,onToggle:a}){let o=q(),s=e,l=i(s,0),u=Object.entries(t);return c(`div`,{children:[c(`div`,{className:`flex items-center gap-1.5 px-3 py-1 hover:bg-surface-hover/30 cursor-pointer select-none`,onClick:()=>a(s,l),children:[v(GY,{open:l,hasChildren:u.length>0}),v(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-violet-500/30 bg-violet-500/15 text-violet-400 px-2 py-0.5 text-[9px] font-medium font-sans`,children:e}),v(`span`,{className:`text-[9px] text-foreground-subtle font-sans`,children:o(`uiLibrary.stateValuesStream.keys`,{one:`{{count}} key`,other:`{{count}} keys`},{count:u.length})}),v(`span`,{className:`ml-auto text-[9px] text-foreground-subtle/70 font-sans tabular-nums`,children:o(`uiLibrary.stateValuesStream.updated`,`updated {{age}}`,{age:XY(n,o)})})]}),l&&v(`div`,{children:u.length===0?v(WY,{depth:1,label:o(`uiLibrary.stateValuesStream.emptySlice`,`empty slice`)}):u.map(([e,t])=>v(UY,{path:`${s}.${e}`,nodeKey:e,value:t,depth:1,searchNeedle:r,isPathOpen:i,onToggle:a},e))})]})}function UY({path:e,nodeKey:t,value:n,depth:r,searchNeedle:i,isPathOpen:a,onToggle:o}){let s=q(),l=KY(n),u={paddingLeft:`${12+r*14}px`};if(!l){let e=kY(t,n);return c(`div`,{className:`flex items-start gap-1 px-3 py-0.5`,style:u,children:[v(`span`,{className:$(`shrink-0`,JY(t,i,`text-primary/70`)),children:t}),v(`span`,{className:`text-foreground-subtle`,children:`:`}),v(`span`,{className:$(`break-all`,JY(e.text,i,qY(n))),...e.raw===null?{}:{title:e.raw},children:e.text})]})}let d=a(e,r);return c(`div`,{children:[c(`div`,{className:`flex items-center gap-1 px-3 py-0.5 hover:bg-surface-hover/30 cursor-pointer select-none`,style:u,onClick:()=>o(e,d),children:[v(GY,{open:d,hasChildren:l.entries.length>0}),v(`span`,{className:JY(t,i,`text-primary/70`),children:t}),v(`span`,{className:`text-foreground-subtle/70 text-[9px]`,children:l.summary})]}),d&&(l.entries.length===0?v(WY,{depth:r+1,label:l.kind===`array`?s(`uiLibrary.stateValuesStream.emptyArray`,`empty array`):s(`uiLibrary.stateValuesStream.emptyObject`,`empty object`)}):l.entries.map(([t,n])=>v(UY,{path:`${e}.${t}`,nodeKey:t,value:n,depth:r+1,searchNeedle:i,isPathOpen:a,onToggle:o},t)))]})}function WY({depth:e,label:t}){return v(`div`,{className:`px-3 py-0.5 text-foreground-subtle/60 italic`,style:{paddingLeft:`${12+e*14}px`},children:t})}function GY({open:e,hasChildren:t}){return t?v(e?de:It,{className:`h-3 w-3 text-foreground-subtle shrink-0`}):v(`span`,{className:`inline-block w-3 shrink-0`})}function KY(e){if(Array.isArray(e))return{kind:`array`,entries:e.map((e,t)=>[String(t),e]),summary:`[${e.length}]`};if(e&&typeof e==`object`){let t=Object.entries(e);return{kind:`object`,entries:t,summary:`{${t.length}}`}}return null}function qY(e){return e==null?`text-foreground-subtle/60`:typeof e==`number`?`text-amber-400`:typeof e==`boolean`?e?`text-emerald-400`:`text-rose-400`:`text-foreground`}function JY(e,t,n){return t&&e.toLowerCase().includes(t)?$(n,`bg-violet-500/20 rounded px-0.5`):n}function YY(e,t,n=``){if(Array.isArray(e))return e.some((e,n)=>YY(e,t,String(n)));if(e&&typeof e==`object`){for(let[n,r]of Object.entries(e))if(n.toLowerCase().includes(t)||YY(r,t,n))return!0;return!1}let r=kY(n,e);return r.text.toLowerCase().includes(t)?!0:r.raw!==null&&r.raw.toLowerCase().includes(t)}function XY(e,t){let n=Date.now()-e;if(n<5e3)return t(`uiLibrary.stateValuesStream.justNow`,`just now`);let r=Math.floor(n/1e3);if(r<60)return t(`uiLibrary.stateValuesStream.secondsAgo`,`{{count}}s ago`,{count:r});let i=Math.floor(r/60);return i<60?t(`uiLibrary.stateValuesStream.minutesAgo`,`{{count}}m ago`,{count:i}):t(`uiLibrary.stateValuesStream.hoursAgo`,`{{count}}h ago`,{count:Math.floor(i/60)})}function ZY({label:e,value:t}){return c(`span`,{className:`text-[9px] px-1.5 py-0.5 rounded-full bg-primary/10 text-primary font-medium font-sans`,children:[e,`: `,t]})}function QY({search:e,onSearchChange:t,caps:n,active:r,onToggle:i,onSelectAll:a,onSelectNone:o,onResetDefaults:s}){let l=q();return c(`div`,{className:`absolute z-20 top-full mt-1 left-0 w-72 max-h-80 rounded-md border border-border bg-surface shadow-lg flex flex-col font-sans`,onClick:e=>e.stopPropagation(),children:[c(`div`,{className:`flex items-center gap-1 px-2 py-1.5 border-b border-border/50`,children:[v(bi,{className:`h-3 w-3 text-foreground-subtle`}),v(`input`,{type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:l(`uiLibrary.stateValuesStream.filterCaps`,`Filter caps…`),className:`flex-1 bg-transparent text-[10px] focus:outline-none text-foreground placeholder:text-foreground-subtle`,autoFocus:!0}),e&&v(`button`,{type:`button`,onClick:()=>t(``),className:`text-foreground-subtle hover:text-foreground`,children:v(Yn,{className:`h-2.5 w-2.5`})})]}),c(`div`,{className:`flex items-center gap-1 px-2 py-1 border-b border-border/50 text-[9px]`,children:[v(`button`,{type:`button`,onClick:a,className:`px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground`,children:l(`uiLibrary.stateValuesStream.all`,`All`)}),v(`button`,{type:`button`,onClick:o,className:`px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground`,children:l(`uiLibrary.stateValuesStream.none`,`None`)}),v(`button`,{type:`button`,onClick:s,className:`px-1.5 py-0.5 rounded border border-border text-foreground-subtle hover:text-foreground`,children:l(`uiLibrary.stateValuesStream.defaults`,`Defaults`)})]}),c(`div`,{className:`overflow-y-auto flex-1`,children:[n.length===0&&v(`div`,{className:`text-[10px] text-foreground-subtle italic px-2 py-3 text-center`,children:l(`uiLibrary.stateValuesStream.noMatches`,`No matches`)}),n.map(e=>c(`button`,{type:`button`,onClick:()=>i(e),className:`w-full flex items-center gap-2 px-2 py-1 text-left hover:bg-surface-hover/40 text-[10px]`,children:[v(`input`,{type:`checkbox`,readOnly:!0,checked:r.has(e),className:`accent-violet-500`}),v(`span`,{className:`inline-flex items-center gap-1 rounded-full border border-violet-500/30 bg-violet-500/15 text-violet-400 px-1.5 py-0.5 text-[9px] font-medium shrink-0`,children:e})]},e))]})]})}E();var $Y=500,eX=[{id:`logs`,labelKey:`uiLibrary.deviceActivityPanel.logs`,labelFallback:`Logs`,icon:ji},{id:`events`,labelKey:`uiLibrary.deviceActivityPanel.events`,labelFallback:`Events`,icon:Bt},{id:`state`,labelKey:`uiLibrary.deviceActivityPanel.state`,labelFallback:`State`,icon:oee}];function tX({deviceId:e,containerDeviceId:t,defaultEventCategories:n,defaultStateCaps:r,initialTab:i=`events`,className:a,maxHeight:o=`max-h-96`}){let s=q(),[l,u]=C(i),d=IJ($Y),f=IJ($Y),p=IJ($Y),m=d.reset,h=f.reset,g=p.reset;return b(()=>{m(),h(),g()},[e,m,h,g]),c(`div`,{className:$(`flex flex-col h-full min-h-0`,a),children:[v(`div`,{className:`flex items-center gap-1 mb-2 shrink-0`,children:eX.map(({id:e,labelKey:t,labelFallback:n,icon:r})=>c(`button`,{type:`button`,onClick:()=>u(e),className:$(`inline-flex items-center gap-1.5 rounded-lg px-3 py-1.5 text-[11px] font-medium transition-colors`,l===e?`bg-primary/15 text-primary border border-primary/30`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover border border-transparent`),children:[v(r,{className:`h-3.5 w-3.5`}),s(t,n)]},e))}),c(`div`,{className:`flex-1 min-h-0 overflow-hidden`,children:[l===`logs`&&v(ZJ,{...t===void 0?{deviceId:e}:{containerDeviceId:t},maxHeight:o,showFilters:!1,liveBuffer:d}),l===`events`&&v(hY,{deviceId:e,defaultCategories:n,maxHeight:o,showCategoryFilter:!0,liveBuffer:f}),l===`state`&&v(zY,{deviceId:e,defaultCaps:r,maxHeight:o,liveBuffer:p})]})]})}var nX={online:`bg-success`,offline:`bg-danger`,warning:`bg-warning`,unknown:`bg-foreground-subtle`};function rX({title:e,subtitle:t,status:n,selected:r,onClick:i,badges:a,actions:o,offlineAction:s,className:l}){let u=n===`offline`;return c(`div`,{onClick:i,className:$(`w-full rounded-lg border p-3 text-left transition-colors`,i&&`cursor-pointer`,r?`border-primary bg-primary/10`:`border-border bg-surface hover:bg-surface-hover`,u&&!r&&`opacity-50`,l),children:[c(`div`,{className:`flex items-center justify-between mb-2`,children:[v(`span`,{className:`text-sm font-medium truncate`,children:e}),n&&v(`span`,{className:$(`h-2 w-2 rounded-full shrink-0`,nX[n])})]}),t&&v(`div`,{className:`text-[11px] text-foreground-muted`,children:t}),a&&a.length>0&&v(`div`,{className:`flex flex-wrap gap-1 mt-2`,children:a.map((e,t)=>{let n=$(`rounded px-1.5 py-0.5 text-[10px] flex items-center gap-0.5`,r?`bg-primary/20`:`bg-surface-hover`,e.onClick&&`hover:opacity-80 transition-opacity cursor-pointer`);return e.onClick?c(`button`,{onClick:t=>{t.stopPropagation(),e.onClick()},className:n,children:[e.icon,e.label]},t):c(`span`,{className:n,children:[e.icon,e.label]},t)})}),!u&&o&&o.length>0&&v(`div`,{className:`flex items-center gap-0.5 mt-2 -mb-1`,children:o.map((e,t)=>v(`button`,{onClick:t=>{t.stopPropagation(),e.onClick()},className:`p-1 rounded hover:bg-surface-hover text-foreground-subtle hover:text-foreground transition-colors`,title:e.label,"aria-label":e.label,children:e.icon},t))}),u&&s&&v(`div`,{className:`mt-2`,onClick:e=>e.stopPropagation(),children:s})]})}E();var iX=`fill`,aX=`right`,oX=`center`;function sX({align:e,children:t,className:n,...r}){if(e===`fit`)return v(`div`,{...r,className:$(`inline-flex items-center`,n),children:t});let i=e===`center`?`justify-center`:`justify-end`;return v(`div`,{...r,className:$(`w-[140px] shrink-0 flex items-center gap-1.5`,i,e===`fill`?`[&>*:last-child]:w-full`:``,n),children:t})}function cX({value:e,unit:t}){return c(`span`,{className:`text-sm text-foreground`,children:[e,t?v(`span`,{"data-unit":!0,className:`ml-0.5 text-[11px] text-foreground-subtle`,children:t}):null]})}function lX({value:e,unit:t,onDelta:n}){let r=q();return c(`div`,{className:`flex h-8 w-full overflow-hidden rounded-lg border border-border bg-surface`,children:[v(`button`,{type:`button`,"aria-label":r(`uiLibrary.deviceControlAtoms.decrement`,`Decrement`),className:`w-9 shrink-0 bg-surface-hover text-base text-foreground`,onClick:()=>n(-1),children:`−`}),c(`span`,{className:`flex flex-1 items-center justify-center gap-0.5 border-x border-border/60 text-sm`,children:[e,t?v(`span`,{"data-unit":!0,className:`text-[11px] text-foreground-subtle`,children:t}):null]}),v(`button`,{type:`button`,"aria-label":r(`uiLibrary.deviceControlAtoms.increment`,`Increment`),className:`w-9 shrink-0 bg-surface-hover text-base text-foreground`,onClick:()=>n(1),children:`+`})]})}function uX({on:e,targetLabel:t,onConfirm:n}){let r=f(null),i=f(!1);return c(`div`,{className:$(`relative h-12 w-full rounded-full border flex items-center`,e?`bg-emerald-50 border-emerald-200 pl-4`:`bg-amber-50 border-amber-200 justify-end pr-4`),children:[v(`span`,{className:`text-xs font-semibold opacity-60`,children:t}),v(`span`,{"data-testid":`slide-thumb`,className:`absolute top-1 left-1 h-10 w-14 rounded-[19px] bg-surface shadow flex items-center justify-center`,onPointerDown:e=>{e.currentTarget.setPointerCapture?.(e.pointerId),r.current=e.clientX,i.current=!1},onPointerMove:e=>{r.current!==null&&Math.abs(e.clientX-r.current)>40&&(i.current=!0)},onPointerUp:()=>{i.current&&n(),i.current=!1,r.current=null},onPointerCancel:()=>{i.current=!1,r.current=null}})]})}var dX=2,fX=270,pX=315;function mX(e){let t=(e-135+360)%360;return t>fX?+(t<=pX):t/fX}function hX({fraction:e,color:t,knobTopPx:n,onDragFraction:r}){let i=-135+e*270,a=f(null),[o,s]=C(!1),c=r!==void 0,l=n??dX,u=e=>{r!==void 0&&(e.preventDefault(),e.stopPropagation(),e.currentTarget.setPointerCapture?.(e.pointerId),s(!0))},d=e=>{if(r===void 0||!o)return;let t=a.current;if(t===null)return;let n=t.getBoundingClientRect(),i=n.left+n.width/2,s=n.top+n.height/2;r(mX(Math.atan2(e.clientY-s,e.clientX-i)*180/Math.PI))},p=e=>{r!==void 0&&(e.currentTarget.releasePointerCapture?.(e.pointerId),s(!1))};return v(`div`,{ref:a,className:`absolute inset-0`,style:{transform:`rotate(${i}deg)`},children:v(`div`,{className:$(`absolute left-1/2 h-5 w-5 -translate-x-1/2 rounded-full bg-white shadow`,c&&(o?`cursor-grabbing`:`cursor-grab`)),style:{top:l,border:`3px solid ${t}`},...c?{onPointerDown:u,onPointerMove:d,onPointerUp:p,onPointerCancel:p}:{}})})}function gX({fraction:e,color:t}){return c(`div`,{className:`relative h-2 w-full rounded-full bg-border`,children:[v(`div`,{className:`absolute left-0 top-0 h-2 rounded-full`,style:{width:`${e*100}%`,background:t??`var(--color-primary)`}}),v(`div`,{className:`absolute -top-1 h-4 w-4 rounded-full bg-white shadow`,style:{left:`calc(${e*100}% - 8px)`}})]})}var _X=150,vX=64,yX=_X/2,bX=2*Math.PI*vX,xX=270/360*bX;function SX({fraction:e,color:t,children:n,onDragFraction:r}){let i=Math.min(1,Math.max(0,e)),a=_X/2,o=_X/2,s=bX-xX,l=i*xX;return c(`div`,{className:`relative`,style:{width:_X,height:_X},children:[c(`svg`,{width:_X,height:_X,viewBox:`0 0 ${_X} ${_X}`,"aria-hidden":`true`,className:`absolute inset-0`,style:{transform:`rotate(135deg)`},children:[v(`circle`,{cx:a,cy:o,r:vX,fill:`none`,stroke:`var(--color-border)`,strokeWidth:11,strokeDasharray:`${xX} ${s}`,strokeLinecap:`round`}),v(`circle`,{cx:a,cy:o,r:vX,fill:`none`,stroke:t,strokeWidth:11,strokeDasharray:`${l} ${bX-l}`,strokeLinecap:`round`})]}),v(`div`,{"data-testid":`arc-knob`,children:v(hX,{fraction:i,color:t,knobTopPx:yX-vX-10,...r===void 0?{}:{onDragFraction:r}})}),v(`div`,{className:`absolute inset-0 flex flex-col items-center justify-center gap-0.5 pointer-events-none`,children:n})]})}function CX({on:e,busy:t,onToggle:n}){let r=q(),i={transform:e?`translateX(30px)`:`translateX(3px)`};return v(`button`,{type:`button`,"aria-pressed":e,title:e?r(`uiLibrary.tapToggle.turnOff`,`Turn off`):r(`uiLibrary.tapToggle.turnOn`,`Turn on`),disabled:t,onClick:e=>{e.stopPropagation(),n()},className:$(`relative inline-flex h-8 w-16 items-center rounded-full border transition-colors flex-shrink-0`,e?`bg-success/30 border-success/50`:`bg-surface-hover border-border`,t&&`opacity-60 cursor-not-allowed`),children:v(`span`,{className:$(`absolute h-6 w-6 rounded-full transition-all`,e?`bg-success`:`bg-foreground-subtle`),style:i})})}function wX({trpc:e,deviceId:t}){let n=q(),r=Ge(e,t),i=r===null?void 0:r.button;if(i===void 0)return null;let a=()=>{i.press({deviceId:t})};return c(`button`,{type:`button`,"aria-label":n(`uiLibrary.buttonControl.press`,`Press`),title:n(`uiLibrary.buttonControl.press`,`Press`),onClick:e=>{e.stopPropagation(),a()},className:$(`inline-flex h-5 items-center gap-1 rounded px-1.5 text-xs`,`bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`),children:[v(fn,{className:`h-3 w-3`}),v(`span`,{children:n(`uiLibrary.buttonControl.press`,`Press`)})]})}function TX({trpc:e,deviceId:t}){let n=q(),r=Ge(e,t),i=r===null?void 0:r.button;return i===void 0?null:c(`div`,{className:`flex flex-col items-center justify-center gap-4 rounded-lg border border-border bg-surface p-6`,children:[v(`button`,{type:`button`,"aria-label":n(`uiLibrary.buttonControl.pressButton`,`Press button`),onClick:()=>{i.press({deviceId:t})},className:$(`inline-flex h-14 w-14 items-center justify-center rounded-full`,`bg-primary text-primary-foreground hover:bg-primary/90 transition-colors`,`shadow-md`),children:v(fn,{className:`h-6 w-6`})}),v(`span`,{className:`text-sm font-medium text-foreground`,children:n(`uiLibrary.buttonControl.press`,`Press`)})]})}function EX({trpc:e,deviceId:t,features:n,layout:r}){let i=q(),{cap:a,slice:o,available:s}=Kj({trpc:e,deviceId:t,cap:e=>e.cover,slice:e=>e.state.cover});if(o===void 0)return null;let l=(n??[]).includes(`cover-positionable`),u=!s,d=o.position,f=e=>{u||!e||e({})};return c(`div`,{className:$(`inline-flex items-center gap-1`,r===`full`&&`flex-col items-stretch gap-2`),children:[c(`div`,{className:`inline-flex items-center gap-1`,children:[v(DX,{label:i(`uiLibrary.coverPanel.open`,`Open`),busy:u,onClick:()=>f(a?.open),children:v(Ci,{className:`h-3.5 w-3.5`})}),v(DX,{label:i(`uiLibrary.coverPanel.stop`,`Stop`),busy:u,onClick:()=>f(a?.stop),children:v(di,{className:`h-3 w-3`})}),v(DX,{label:i(`uiLibrary.coverPanel.close`,`Close`),busy:u,onClick:()=>f(a?.close),children:v(de,{className:`h-3.5 w-3.5`})})]}),l&&r===`full`&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{children:i(`uiLibrary.coverPanel.position`,`Position`)}),v(`input`,{"aria-label":i(`uiLibrary.coverPanel.position`,`Position`),type:`range`,min:0,max:100,step:1,value:d??0,disabled:u,onChange:e=>{u||a?.setPosition({position:Number(e.target.value)})}}),c(`span`,{className:`tabular-nums w-8 text-right`,children:[d??`—`,`%`]})]})]})}function DX({label:e,busy:t,onClick:n,children:r}){return v(`button`,{type:`button`,"aria-label":e,title:e,disabled:t,onClick:e=>{e.stopPropagation(),n()},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,t&&`opacity-40 cursor-not-allowed`),children:r})}E();var OX=4e3;function kX(e){if(e!==void 0)return typeof e==`object`&&e&&`lastChangedAt`in e&&typeof e.lastChangedAt==`number`?e.lastChangedAt:e}function AX(e,t){let n=t?.enabled!==!1,r=t?.timeoutMs??OX,[i,a]=C(void 0),o=f(void 0),s=f(void 0),c=f(!1),l=f(void 0),u=_(()=>{l.current!==void 0&&(clearTimeout(l.current),l.current=void 0),o.current=void 0,c.current=!1,s.current=void 0,a(void 0)},[]);b(()=>{if(!n||!c.current)return;let t=kX(e),r=s.current;t!==void 0&&t!==r&&u()}),b(()=>()=>{l.current!==void 0&&clearTimeout(l.current)},[]);let d=_(t=>{if(!n)return;l.current!==void 0&&(clearTimeout(l.current),l.current=void 0);let i=o.current??e;if(i!==void 0){let e={...i,...t};o.current=e,a(e)}s.current=kX(e),c.current=!0,l.current=setTimeout(u,r)},[n,e,u,r]);return n?{display:i===void 0?e:i,applyOptimistic:d,rollback:u}:{display:e,applyOptimistic:()=>{},rollback:()=>{}}}E();function jX(e){return e instanceof Error?e.message:String(e)}function MX({trpc:e,deviceId:t,layout:n,optimistic:r,features:i}){let a=q(),{cap:o,slice:s,available:l}=Kj({trpc:e,deviceId:t,cap:e=>e.lockControl,slice:e=>e.state.lockControl}),{display:u,applyOptimistic:d}=AX(s,{enabled:r??!0}),[f,p]=C(null),[m,h]=C(!1),[g,_]=C(null);if(u===void 0)return null;let y=u.state===`locked`||u.state===`locking`,b=!l||u.state===`jammed`,x=i?.includes(Ya.LockOpen)===!0,S=n===`compact`,w=()=>{d({state:`locking`}),o?.lock({})},T=()=>{d({state:`unlocking`}),o?.unlock({})},E=()=>{o?.open({})},D=()=>{if(!b){if(!y){w();return}if(S){_(null),p(`unlock`);return}T()}},O=()=>{if(!b){if(S){_(null),p(`open`);return}E()}},k=()=>{m||p(null)},A=async()=>{if(!(m||f===null)){_(null),h(!0);try{f===`unlock`?(d({state:`unlocking`}),await o?.unlock({})):await o?.open({}),p(null)}catch(e){_(jX(e))}finally{h(!1)}}},j=y?a(`uiLibrary.lockPanel.unlock`,`Unlock`):a(`uiLibrary.lockPanel.lock`,`Lock`),M=f===`open`?a(`uiLibrary.lockPanel.openDoorTitle`,`Open door?`):a(`uiLibrary.lockPanel.unlockTitle`,`Unlock device?`),N=f===`open`?a(`uiLibrary.lockPanel.openDoorBody`,`This will release the latch and open the door.`):a(`uiLibrary.lockPanel.unlockBody`,`This will unlock the device.`),P=f===`open`?a(`uiLibrary.lockPanel.confirmOpen`,`Confirm open`):a(`uiLibrary.lockPanel.confirmUnlock`,`Confirm unlock`),F=v(f===`open`?pn:gi,{className:`h-4 w-4 text-amber-400`});return c(`div`,{className:$(`inline-flex items-center`,n===`full`?`gap-2`:`gap-1`),children:[c(`button`,{type:`button`,"aria-label":j,title:u.state===`jammed`?a(`uiLibrary.lockPanel.jammed`,`Jammed`):j,disabled:b,onClick:e=>{e.stopPropagation(),D()},className:$(`inline-flex items-center justify-center rounded transition-colors`,n===`full`?`h-7 gap-1.5 px-2 text-xs`:`h-5 w-5`,y?`text-success`:`text-warning`,b&&`opacity-40 cursor-not-allowed`,`hover:bg-surface-hover`),children:[v(y?xr:gi,{className:`h-3.5 w-3.5`}),n===`full`&&v(`span`,{children:u.state})]}),x&&c(`button`,{type:`button`,"aria-label":a(`uiLibrary.lockPanel.openDoor`,`Open door`),title:a(`uiLibrary.lockPanel.openDoor`,`Open door`),disabled:b,onClick:e=>{e.stopPropagation(),O()},className:$(`inline-flex items-center justify-center rounded transition-colors`,n===`full`?`h-7 gap-1.5 px-2 text-xs`:`h-5 w-5`,`text-foreground-muted`,b&&`opacity-40 cursor-not-allowed`,`hover:bg-surface-hover`),children:[v(pn,{className:`h-3.5 w-3.5`}),n===`full`&&v(`span`,{children:a(`uiLibrary.lockPanel.open`,`Open`)})]}),S&&v(_L,{open:f!==null,onOpenChange:e=>{e||k()},children:c(bL,{width:`sm`,onClick:e=>e.stopPropagation(),children:[c(xL,{children:[c(wL,{className:`flex items-center gap-2`,children:[F,M]}),v(TL,{children:N})]}),g!==null&&v(`div`,{className:`mt-2 px-3 py-2 rounded border border-danger/40 bg-danger/10 text-xs text-danger`,children:g}),c(CL,{children:[v(gA,{type:`button`,variant:`ghost`,size:`sm`,disabled:m,onClick:()=>k(),children:a(`uiLibrary.lockPanel.cancel`,`Cancel`)}),c(gA,{type:`button`,variant:`danger`,size:`sm`,"aria-label":P,disabled:m,onClick:()=>{A()},children:[m&&v(Un,{className:`h-3.5 w-3.5 animate-spin`}),P]})]})]})})]})}E();function NX({trpc:e,deviceId:t,optimistic:n}){let r=q(),{cap:i,slice:a,available:o}=Kj({trpc:e,deviceId:t,cap:e=>e.switch,slice:e=>e.state.switch}),{display:s,applyOptimistic:c}=AX(a,{enabled:n??!0}),[l,u]=C(!1);if(s===void 0)return null;let d=s.on===!0,f=l||!o,p={transform:d?`translateX(14px)`:`translateX(2px)`},m=async()=>{if(f||!i)return;let e=!d;c({on:e}),u(!0);try{await i.setState({on:e})}finally{u(!1)}};return v(`button`,{type:`button`,"aria-pressed":d,title:d?r(`uiLibrary.switchPanel.turnOff`,`Turn off`):r(`uiLibrary.switchPanel.turnOn`,`Turn on`),disabled:f,onClick:e=>{e.stopPropagation(),m()},className:$(`relative inline-flex h-4 w-7 items-center rounded-full border transition-colors flex-shrink-0`,d?`bg-success/30 border-success/50`:`bg-surface-hover border-border`,f&&`opacity-60`),children:v(`span`,{className:$(`absolute h-3 w-3 rounded-full transition-all`,d?`bg-success`:`bg-foreground-subtle`),style:p})})}function PX({trpc:e,deviceId:t,layout:n,optimistic:r}){let i=q(),{cap:a,slice:o,available:s}=Kj({trpc:e,deviceId:t,cap:e=>e.brightness,slice:e=>e.state.brightness}),{display:l,applyOptimistic:u}=AX(o,{enabled:r??!0});if(l===void 0)return null;let d=!s;return c(`label`,{className:$(`flex items-center gap-2 text-xs text-foreground-subtle`,n===`compact`&&`min-w-[140px]`),children:[v(`input`,{"aria-label":i(`uiLibrary.brightnessPanel.brightness`,`Brightness`),type:`range`,min:0,max:100,step:1,value:l.level,disabled:d,onChange:e=>{let t=Number(e.target.value);u({level:t}),d||a?.setBrightness({level:t})}}),c(`span`,{className:`tabular-nums w-8 text-right`,children:[l.level,`%`]})]})}function FX({trpc:e,deviceId:t,features:n,layout:r,optimistic:i}){let a=q(),{cap:o,slice:s,available:l}=Kj({trpc:e,deviceId:t,cap:e=>e.fanControl,slice:e=>e.state.fanControl}),{display:u,applyOptimistic:d}=AX(s,{enabled:i??!0});if(u===void 0)return null;let f=!l,p=n??[],m=p.includes(`fan-speed`),h=p.includes(`fan-preset`),g=s?.percentageStep!=null&&s.percentageStep>0?s.percentageStep:1;return c(`div`,{className:$(`inline-flex items-center gap-2`,r===`full`&&`flex-col items-stretch`),children:[m&&c(`div`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`input`,{"aria-label":a(`uiLibrary.fanPanel.speed`,`Fan speed`),type:`range`,min:0,max:100,step:g,value:u.speed??0,disabled:f,onChange:e=>{let t=Number(e.target.value),n=Math.min(100,Math.max(0,Math.round(t/g)*g));d({speed:n}),f||o?.setPercentage({speed:n})}}),c(`span`,{className:`tabular-nums w-8 text-right`,children:[u.speed??`—`,`%`]})]}),h&&u.availablePresets.length>0&&v(`div`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:c(`select`,{"aria-label":a(`uiLibrary.fanPanel.preset`,`Fan preset`),value:u.preset,disabled:f,onChange:e=>{let t=e.target.value;!f&&t&&(d({preset:t}),o?.setPreset({preset:t}))},className:`bg-surface border border-border rounded px-1 py-0.5`,children:[v(`option`,{value:``,disabled:!0,children:`—`}),u.availablePresets.map(e=>v(`option`,{value:e,children:e},e))]})})]})}function IX(e){return typeof e==`number`&&Number.isFinite(e)&&e>0?e:1}var LX=2,RX=3;function zX(e){if(!Number.isFinite(e))return 0;for(let t=0;t<RX;t+=1)if(Math.abs(e*10**t-Math.round(e*10**t))<1e-9)return t;return RX}function BX(e){let t=IX(e.tempStep),n=[e.minTemp,e.maxTemp].filter(e=>typeof e==`number`&&Number.isFinite(e)),r=n.length===0?LX:Math.max(...n.map(e=>String(Math.trunc(Math.abs(e))).length)),i=+!!n.some(e=>e<0),a=Math.max(zX(t),...n.map(zX));return i+r+(a>0?1+a:0)}var VX={1:`min-w-[1ch]`,2:`min-w-[2ch]`,3:`min-w-[3ch]`,4:`min-w-[4ch]`,5:`min-w-[5ch]`,6:`min-w-[6ch]`,7:`min-w-[7ch]`,8:`min-w-[8ch]`};function HX(e){return`${VX[Math.min(Math.max(BX(e),1),8)]} text-center`}function UX(e,t,n){let r=e+t*IX(n.tempStep),i=n.minTemp,a=n.maxTemp;return typeof i==`number`&&Number.isFinite(i)&&(r=Math.max(r,i)),typeof a==`number`&&Number.isFinite(a)&&(r=Math.min(r,a)),r}var WX={heat:`border-amber-400 bg-amber-50 dark:bg-amber-950`,cool:`border-blue-400 bg-blue-50 dark:bg-blue-950`,auto:`border-purple-400 bg-purple-50 dark:bg-purple-950`,heat_cool:`border-fuchsia-400 bg-fuchsia-50 dark:bg-fuchsia-950`,fan_only:`border-slate-400 bg-slate-50 dark:bg-slate-950`,dry:`border-cyan-400 bg-cyan-50 dark:bg-cyan-950`,off:`border-zinc-300 bg-zinc-50 dark:bg-zinc-900`},GX={heat:`text-amber-600 dark:text-amber-400`,cool:`text-blue-600 dark:text-blue-400`,auto:`text-purple-600 dark:text-purple-400`,heat_cool:`text-fuchsia-600 dark:text-fuchsia-400`,fan_only:`text-slate-600 dark:text-slate-400`,dry:`text-cyan-600 dark:text-cyan-400`,off:`text-foreground`},KX={heat:`bg-amber-400 text-amber-950`,cool:`bg-blue-400 text-blue-950`,auto:`bg-purple-400 text-purple-950`,heat_cool:`bg-fuchsia-400 text-fuchsia-950`,fan_only:`bg-slate-400 text-slate-950`,dry:`bg-cyan-400 text-cyan-950`,off:`bg-zinc-300 text-zinc-700`};function qX({trpc:e,deviceId:t,features:n,layout:r,optimistic:i}){let a=q(),{cap:o,slice:s,available:l}=Kj({trpc:e,deviceId:t,cap:e=>e.climateControl,slice:e=>e.state.climateControl}),{display:u,applyOptimistic:d}=AX(s,{enabled:i??!0});if(o===void 0||u===void 0)return null;let f=!l;if(r===`compact`)return c(`div`,{"data-mode":u.mode,className:`inline-flex items-center gap-1`,children:[v(`span`,{className:$(`text-xs tabular-nums font-medium`,GX[u.mode]),children:u.target===null?u.currentTemp===null?null:c(`span`,{className:`text-foreground-subtle`,children:[u.currentTemp,`°`]}):c(P,{children:[u.target,`°`,u.currentTemp!==null&&c(`span`,{className:`text-foreground-subtle font-normal`,children:[` `,`(`,u.currentTemp,`°)`]})]})}),u.target!==null&&c(P,{children:[v(`button`,{type:`button`,"aria-label":a(`uiLibrary.climatePanel.decreaseTarget`,`Decrease target`),disabled:f,onClick:e=>{if(e.stopPropagation(),!f&&u.target!==null){let e=UX(u.target,-1,u);d({target:e}),o.setTarget({target:e})}},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,f&&`opacity-40 cursor-not-allowed`),children:`−`}),v(`button`,{type:`button`,"aria-label":a(`uiLibrary.climatePanel.increaseTarget`,`Increase target`),disabled:f,onClick:e=>{if(e.stopPropagation(),!f&&u.target!==null){let e=UX(u.target,1,u);d({target:e}),o.setTarget({target:e})}},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,f&&`opacity-40 cursor-not-allowed`),children:`+`})]}),v(`select`,{"aria-label":a(`uiLibrary.climatePanel.mode`,`Mode`),value:u.mode,disabled:f,onChange:e=>{e.stopPropagation();let t=e.target.value;f||(d({mode:t}),o.setMode({mode:t}))},className:$(`bg-transparent px-0.5 text-xs text-foreground-subtle hover:text-foreground cursor-pointer`,f&&`opacity-40 cursor-not-allowed`),children:u.availableModes.map(e=>v(`option`,{value:e,children:e},e))})]});let p=u.mode===`heat_cool`||u.targetLow!==null&&u.targetHigh!==null,m=!p&&u.target!==null;return c(`div`,{"data-mode":u.mode,className:$(`inline-flex items-center gap-2 rounded border px-2 py-1 transition-colors`,WX[u.mode],`flex-col items-stretch gap-3`),children:[c(`div`,{className:`inline-flex items-center gap-1 text-xs tabular-nums`,children:[u.currentTemp!==null&&c(`span`,{className:`text-foreground-subtle`,children:[u.currentTemp,`°`]}),m&&c(P,{children:[v(`span`,{className:`text-foreground-subtle`,children:`→`}),c(`span`,{className:`font-medium`,children:[u.target,`°`]}),v(`button`,{type:`button`,"aria-label":a(`uiLibrary.climatePanel.decreaseTarget`,`Decrease target`),disabled:f,onClick:e=>{if(e.stopPropagation(),!f&&u.target!==null){let e=UX(u.target,-1,u);d({target:e}),o.setTarget({target:e})}},className:$(`inline-flex h-4 w-4 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,f&&`opacity-40 cursor-not-allowed`),children:`−`}),v(`button`,{type:`button`,"aria-label":a(`uiLibrary.climatePanel.increaseTarget`,`Increase target`),disabled:f,onClick:e=>{if(e.stopPropagation(),!f&&u.target!==null){let e=UX(u.target,1,u);d({target:e}),o.setTarget({target:e})}},className:$(`inline-flex h-4 w-4 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,f&&`opacity-40 cursor-not-allowed`),children:`+`})]})]}),v(`div`,{className:`inline-flex items-center gap-0.5 rounded bg-surface-subtle p-0.5`,children:u.availableModes.map(e=>v(`button`,{type:`button`,"aria-label":e,disabled:f,onClick:t=>{t.stopPropagation(),f||(d({mode:e}),o.setMode({mode:e}))},className:$(`rounded px-1.5 py-0.5 text-xs transition-colors`,e===u.mode?KX[e]:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,f&&`opacity-40 cursor-not-allowed`),children:e},e))}),p&&c(`div`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[c(`label`,{className:`flex items-center gap-1`,children:[v(`span`,{children:a(`uiLibrary.climatePanel.low`,`Low`)}),v(`input`,{"aria-label":a(`uiLibrary.climatePanel.targetLow`,`Target low`),type:`number`,step:.5,value:u.targetLow??``,disabled:f,onChange:e=>{if(!f){let t=Number(e.target.value),n=u.targetHigh??t;d({targetLow:t}),o.setTargetRange({targetLow:t,targetHigh:n})}},className:`w-14 rounded border border-border bg-surface px-1 py-0.5 tabular-nums`})]}),c(`label`,{className:`flex items-center gap-1`,children:[v(`span`,{children:a(`uiLibrary.climatePanel.high`,`High`)}),v(`input`,{"aria-label":a(`uiLibrary.climatePanel.targetHigh`,`Target high`),type:`number`,step:.5,value:u.targetHigh??``,disabled:f,onChange:e=>{if(!f){let t=Number(e.target.value),n=u.targetLow??t;d({targetHigh:t}),o.setTargetRange({targetLow:n,targetHigh:t})}},className:`w-14 rounded border border-border bg-surface px-1 py-0.5 tabular-nums`})]})]}),u.availableFanModes.length>0&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.climatePanel.fan`,`Fan`)}),c(`select`,{"aria-label":a(`uiLibrary.climatePanel.fanMode`,`Fan mode`),value:u.fanMode,disabled:f,onChange:e=>{let t=e.target.value;!f&&t&&(d({fanMode:t}),o.setFanMode({fanMode:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:[v(`option`,{value:``,disabled:!0,children:`—`}),u.availableFanModes.map(e=>v(`option`,{value:e,children:e},e))]})]}),u.availablePresets.length>0&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.climatePanel.preset`,`Preset`)}),c(`select`,{"aria-label":a(`uiLibrary.climatePanel.preset`,`Preset`),value:u.preset,disabled:f,onChange:e=>{let t=e.target.value;!f&&t&&(d({preset:t}),o.setPreset({preset:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:[v(`option`,{value:``,disabled:!0,children:`—`}),u.availablePresets.map(e=>v(`option`,{value:e,children:e},e))]})]}),u.targetHumidity!==null&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.climatePanel.humidity`,`Humidity`)}),v(`input`,{"aria-label":a(`uiLibrary.climatePanel.targetHumidity`,`Target humidity`),type:`range`,min:0,max:100,step:1,value:u.targetHumidity,disabled:f,onChange:e=>{let t=Number(e.target.value);d({targetHumidity:t}),f||o.setTargetHumidity({targetHumidity:t})}}),c(`span`,{className:`tabular-nums w-8 text-right`,children:[u.targetHumidity,`%`]})]})]})}var JX={playing:`border-green-400 bg-green-50 dark:bg-green-950`,paused:`border-amber-400 bg-amber-50 dark:bg-amber-950`,buffering:`border-blue-400 bg-blue-50 dark:bg-blue-950`,on:`border-slate-400 bg-slate-50 dark:bg-slate-950`,idle:`border-slate-400 bg-slate-50 dark:bg-slate-950`,off:`border-zinc-300 bg-zinc-50 dark:bg-zinc-900`,standby:`border-zinc-300 bg-zinc-50 dark:bg-zinc-900`},YX={playing:`bg-green-500`,paused:`bg-amber-400`,buffering:`bg-blue-400`,on:`bg-slate-400`,idle:`bg-slate-400`,off:`bg-zinc-300`,standby:`bg-zinc-300`},XX=[`off`,`all`,`one`];function ZX(e){return XX.includes(e)}function QX(e,t){switch(t){case`off`:return e(`uiLibrary.mediaPlayerPanel.repeatOff`,`Off`);case`all`:return e(`uiLibrary.mediaPlayerPanel.repeatAll`,`All`);case`one`:return e(`uiLibrary.mediaPlayerPanel.repeatOne`,`One`)}}function $X(e){return e===`playing`||e===`buffering`?`pause`:`play`}function eZ({trpc:e,deviceId:t,features:n,layout:r,optimistic:i}){let a=q(),{cap:o,slice:s,available:l}=Kj({trpc:e,deviceId:t,cap:e=>e.mediaPlayer,slice:e=>e.state.mediaPlayer}),{display:u,applyOptimistic:d}=AX(s,{enabled:i??!0});if(u===void 0)return null;let f=!l,p=$X(u.state);return c(`div`,{"data-state":u.state,className:$(`inline-flex items-center gap-2 rounded border px-2 py-1 transition-colors`,JX[u.state],r===`full`&&`flex-col items-stretch gap-3`),children:[c(`div`,{className:`inline-flex items-center gap-2`,children:[v(`span`,{role:`status`,"aria-label":u.state,className:$(`inline-block h-2 w-2 rounded-full flex-shrink-0`,YX[u.state])}),v(`button`,{type:`button`,"aria-label":p===`play`?a(`uiLibrary.mediaPlayerPanel.play`,`Play`):a(`uiLibrary.mediaPlayerPanel.pause`,`Pause`),disabled:f,onClick:e=>{e.stopPropagation(),!f&&(p===`play`?(d({state:`playing`}),o?.play({})):(d({state:`paused`}),o?.pause({})))},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,f&&`opacity-40 cursor-not-allowed`),children:p===`play`?`▶`:`⏸`})]}),r===`full`&&c(P,{children:[c(`div`,{className:`inline-flex items-center gap-1`,children:[v(`button`,{type:`button`,"aria-label":a(`uiLibrary.mediaPlayerPanel.previous`,`Previous`),disabled:f,onClick:e=>{e.stopPropagation(),f||o?.previous({})},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,f&&`opacity-40 cursor-not-allowed`),children:`⏮`}),v(`button`,{type:`button`,"aria-label":a(`uiLibrary.mediaPlayerPanel.next`,`Next`),disabled:f,onClick:e=>{e.stopPropagation(),f||o?.next({})},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors text-xs`,f&&`opacity-40 cursor-not-allowed`),children:`⏭`})]}),u.volumeLevel!==null&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.mediaPlayerPanel.vol`,`Vol`)}),v(`input`,{"aria-label":a(`uiLibrary.mediaPlayerPanel.volume`,`Volume`),type:`range`,min:0,max:100,step:1,value:u.volumeLevel,disabled:f,onChange:e=>{let t=Number(e.target.value);d({volumeLevel:t}),f||o?.setVolume({volumeLevel:t})}}),c(`span`,{className:`tabular-nums w-8 text-right`,children:[u.volumeLevel,`%`]})]}),u.isMuted!==null&&v(`button`,{type:`button`,"aria-label":u.isMuted?a(`uiLibrary.mediaPlayerPanel.unmute`,`Unmute`):a(`uiLibrary.mediaPlayerPanel.mute`,`Mute`),disabled:f,onClick:e=>{if(e.stopPropagation(),!f&&u.isMuted!==null){let e=!u.isMuted;d({isMuted:e}),o?.setMute({muted:e})}},className:$(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors`,u.isMuted?`bg-amber-400 text-amber-950`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,f&&`opacity-40 cursor-not-allowed`),children:u.isMuted?`🔇`:`🔊`}),u.availableSources.length>0&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.mediaPlayerPanel.source`,`Source`)}),c(`select`,{"aria-label":a(`uiLibrary.mediaPlayerPanel.source`,`Source`),value:u.source,disabled:f,onChange:e=>{let t=e.target.value;!f&&t&&(d({source:t}),o?.selectSource({source:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:[v(`option`,{value:``,disabled:!0,children:`—`}),u.availableSources.map(e=>v(`option`,{value:e,children:e},e))]})]}),u.shuffle!==null&&c(`button`,{type:`button`,"aria-label":a(`uiLibrary.mediaPlayerPanel.shuffle`,`Shuffle`),disabled:f,onClick:e=>{if(e.stopPropagation(),!f&&u.shuffle!==null){let e=!u.shuffle;d({shuffle:e}),o?.setShuffle({shuffle:e})}},className:$(`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-xs transition-colors`,u.shuffle?`bg-green-400 text-green-950`:`text-foreground-subtle hover:text-foreground hover:bg-surface-hover`,f&&`opacity-40 cursor-not-allowed`),children:[`⇌ `,a(`uiLibrary.mediaPlayerPanel.shuffle`,`Shuffle`)]}),u.repeat!==null&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{children:a(`uiLibrary.mediaPlayerPanel.repeat`,`Repeat`)}),v(`select`,{"aria-label":a(`uiLibrary.mediaPlayerPanel.repeat`,`Repeat`),value:u.repeat,disabled:f,onChange:e=>{let t=e.target.value;!f&&ZX(t)&&(d({repeat:t}),o?.setRepeat({repeat:t}))},className:`rounded border border-border bg-surface px-1 py-0.5`,children:XX.map(e=>v(`option`,{value:e,children:QX(a,e)},e))})]})]})]})}function tZ(e,t){return t===void 0?Number.isInteger(e)?String(e):e.toFixed(1):e.toFixed(t)}var nZ=`admin.units`,rZ=[`celsius`,`fahrenheit`],iZ={system:aa,temperature:`celsius`};function aZ(e){return Va.some(t=>t===e)}function oZ(e){return rZ.some(t=>t===e)}function sZ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function cZ(e){if(e==null)return{value:iZ,parsed:!0};if(!sZ(e))return{value:iZ,parsed:!1};let t=e.system,n=e.temperature,r=t===void 0||aZ(t),i=n===void 0||oZ(n);return{value:{system:aZ(t)?t:iZ.system,temperature:oZ(n)?n:iZ.temperature},parsed:r&&i}}function lZ(e,t){return t===`temperature`?e.temperature===`fahrenheit`?`imperial`:`metric`:e.system}E();var uZ=O(iZ);function dZ({value:e,children:t}){return v(uZ.Provider,{value:e,children:t})}function fZ(){return I(uZ)}function pZ(e){if(e!==void 0)return Qi(e)??e}function mZ(e){if(e.quantity!==void 0){if(e.quantity===`device`){let t=e.deviceQuantity;return t===void 0||t===`device`?void 0:t}return e.quantity}}function hZ(e){let t=e.capName===void 0?void 0:e.display?.perCap?.[e.capName],n=t?.precision??e.display?.precision??e.roleDefault?.precision??e.declarationPrecision,r=mZ(e),i=e.preference??(e.unitPreferences===void 0?`metric`:lZ(e.unitPreferences,r)),a=r===void 0?void 0:Ia(r),o=r===void 0?void 0:ha(r,i),s=pZ(t?.unit??e.display?.unit??e.roleDefault?.unit),c=s!==void 0&&a!==void 0&&s!==a&&Eee(a,s),l=c?s:o??``,u=r===`duration`||r===`information`||r===`duration-ms`,d=e=>u||a===void 0||l.length===0||l===a?e:qi(e,a,l)??e;return{unit:l,precision:n,toDisplayValue:d,fromDisplayValue:e=>u||a===void 0||l.length===0||l===a?e:qi(e,l,a)??e,format:e=>{if(r!==void 0&&!c){let t=ma({value:e,quantity:r,preference:i,precision:n});return{text:t.text,unit:t.unit}}return{text:tZ(d(e),n),unit:l}}}}var gZ=/^(\d{4})-(\d{2})-(\d{2})/,_Z=/^(\d{2}):(\d{2})(?::(\d{2}))?$/;function vZ(e,t){let n=gZ.exec(e);if(n===null)return e;let r=Number(n[1]),i=Number(n[2]),a=Number(n[3]),o=new Date(r,i-1,a);if(Number.isNaN(o.getTime()))return e;try{return o.toLocaleDateString(t)}catch{return e}}function yZ(e,t){let n=_Z.exec(e);if(n===null)return e;let r=new Date(1970,0,1,Number(n[1]),Number(n[2]),n[3]===void 0?0:Number(n[3]));if(Number.isNaN(r.getTime()))return e;try{return r.toLocaleTimeString(t,{hour:`2-digit`,minute:`2-digit`})}catch{return e}}function bZ(e,t){let n=e.includes(`T`)?e:e.replace(` `,`T`),r=new Date(n);if(Number.isNaN(r.getTime()))return e;try{return r.toLocaleString(t,{dateStyle:`medium`,timeStyle:`short`})}catch{return e}}function xZ(e,t,n){return e===``?e:t===`date`?vZ(e,n):t===`time`?yZ(e,n):bZ(e,n)}E();function SZ(e){return e.slice(0,10)}function CZ(e){return e.slice(0,5)}function wZ(e,t){return e===`date`?{type:`date`,value:SZ(t)}:e===`time`?{type:`time`,value:CZ(t)}:{type:`datetime-local`,value:TZ(t)}}function TZ(e){return(e.includes(`T`)?e:e.replace(` `,`T`)).slice(0,16)}function EZ({value:e,busy:t,onCommit:n,unit:r,min:i,max:a,step:o,precision:s}){let l=q(),[u,d]=C(tZ(e,s)),f=Number(u),p=u!==``&&!Number.isNaN(f),m=o??1,h=e=>{let t=e;return i!==void 0&&(t=Math.max(i,t)),a!==void 0&&(t=Math.min(a,t)),t},g=()=>{!t&&p&&n(h(f))};return c(`div`,{className:`inline-flex items-center gap-1`,children:[v(`button`,{type:`button`,"aria-label":l(`uiLibrary.controlPanel.decrement`,`Decrement`),disabled:t,onClick:r=>{if(r.stopPropagation(),!t){let t=h(e-m);d(tZ(t,s)),n(t)}},className:$(`inline-flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-xs transition-colors hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:`−`}),v(`input`,{"aria-label":l(`uiLibrary.controlPanel.numeric`,`Numeric value`),type:`number`,disabled:t,value:u,onChange:e=>{d(e.target.value);let r=Number(e.target.value);e.target.value!==``&&!Number.isNaN(r)&&(t||n(h(r)))},onBlur:g,onKeyDown:e=>{e.key===`Enter`&&g()},className:$(`w-16 rounded border border-border bg-surface px-1 py-0.5 text-xs tabular-nums text-center`,t&&`opacity-40 cursor-not-allowed`)}),r!==void 0&&v(`span`,{className:`text-foreground-subtle text-xs`,children:r}),v(`button`,{type:`button`,"aria-label":l(`uiLibrary.controlPanel.increment`,`Increment`),disabled:t,onClick:r=>{if(r.stopPropagation(),!t){let t=h(e+m);d(tZ(t,s)),n(t)}},className:$(`inline-flex h-5 w-5 items-center justify-center rounded border border-border bg-surface text-xs transition-colors hover:bg-surface-hover`,t&&`opacity-40 cursor-not-allowed`),children:`+`})]})}function DZ({value:e,busy:t,onCommit:n}){let[r,i]=C(e);return v(`input`,{type:`text`,disabled:t,value:r,onChange:e=>i(e.target.value),onBlur:()=>{t||n(r)},onKeyDown:e=>{e.key===`Enter`&&!t&&n(r)},className:$(`rounded border border-border bg-surface px-2 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`)})}function OZ({slice:e,busy:t,setValueFn:n,layout:r,quantity:i,display:a,dateTimeShape:o}){let s=q(),c=fZ();switch(e.kind){case`numeric`:{let r=typeof e.value==`number`?e.value:Number(e.value),o=i===void 0?void 0:hZ({quantity:i,display:a,capName:`control`,unitPreferences:c}),s=o?.toDisplayValue??(e=>e),l=o?.fromDisplayValue??(e=>e),u=o!==void 0&&o.unit.length>0?o.unit:void 0;return v(EZ,{value:s(r),busy:t,onCommit:e=>{n({control:{kind:`numeric`,value:l(e)}})},unit:u,min:e.min===void 0?void 0:s(e.min),max:e.max===void 0?void 0:s(e.max),step:e.step===void 0?void 0:s(e.step),precision:o?.precision})}case`select`:{let r=String(e.value);return v(`select`,{"aria-label":s(`uiLibrary.controlPanel.value`,`Control value`),disabled:t,value:r,onChange:e=>{e.stopPropagation(),t||n({control:{kind:`select`,value:e.target.value}})},className:$(`w-full max-w-full min-w-0 truncate rounded bg-transparent px-0.5 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`),children:e.options.map(e=>v(`option`,{value:e,children:e},e))})}case`text`:return v(DZ,{value:String(e.value),busy:t,onCommit:e=>{n({control:{kind:`text`,value:e}})}});case`datetime`:{let i=String(e.value),a=o??`datetime`;if(r===`compact`)return i===``?v(`span`,{"aria-label":s(`uiLibrary.controlPanel.value`,`Control value`),className:`text-xs text-foreground-subtle`,children:`—`}):v(`span`,{"aria-label":s(`uiLibrary.controlPanel.value`,`Control value`),className:`text-xs text-foreground`,children:xZ(i,a)});let c=wZ(a,i),l=c.type,u=c.value;return v(`input`,{type:l,"aria-label":s(`uiLibrary.controlPanel.value`,`Control value`),disabled:t,value:u,onChange:e=>{e.stopPropagation(),t||n({control:{kind:`datetime`,value:e.target.value}})},className:$(`rounded border border-border bg-surface px-1 py-0.5 text-xs`,t&&`opacity-40 cursor-not-allowed`)})}default:return null}}function kZ({trpc:e,deviceId:t,features:n,layout:r,optimistic:i}){let a=_i()?.getDeviceInfo(t)??null,{cap:o,slice:s,available:c}=Kj({trpc:e,deviceId:t,cap:e=>e.control,slice:e=>e.state.control}),{display:l,applyOptimistic:u}=AX(s,{enabled:i??!0});if(l===void 0)return null;let d=!c,f=a?.sourceInfo?.quantity,p=Yi(f)&&f!==`device`&&f!==`none`?f:void 0;return v(`div`,{"data-kind":l.kind,className:`inline-flex min-w-0 max-w-full items-center gap-1 rounded border border-border px-2 py-1 transition-colors`,children:v(OZ,{slice:l,busy:d,setValueFn:e=>{!d&&o&&(u({value:e.control.value}),o.setValue(e))},layout:r,quantity:p,display:a?.display,dateTimeShape:a?.sourceInfo?.dateTimeShape})})}var AZ=[`cover`,`lock-control`,`switch`,`brightness`,`fan-control`,`climate-control`,`media-player`,`control`,`pet-feeder`,`dishwasher`];E(),bo();var jZ=240,MZ=6;function NZ({icon:e,title:t,children:n}){let r=f(null),i=f(null),[a,o]=C(null),s=a!==null,l=()=>o(null),u=()=>{let e=r.current;if(!e)return;let t=e.getBoundingClientRect(),n=Math.min(jZ,window.innerWidth-16),i=Math.max(8,Math.min(t.right-n,window.innerWidth-n-8));o({top:t.bottom+MZ,left:i,width:n})};return b(()=>{if(!s)return;let e=e=>{let t=e.target;i.current?.contains(t)||r.current?.contains(t)||l()},t=e=>{e.key===`Escape`&&l()};return document.addEventListener(`mousedown`,e),document.addEventListener(`touchstart`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`touchstart`,e),document.removeEventListener(`keydown`,t)}},[s]),c(P,{children:[v(`button`,{ref:r,type:`button`,title:t,"aria-label":t,"aria-haspopup":`dialog`,"aria-expanded":s,onClick:e=>{e.stopPropagation(),s?l():u()},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors flex-shrink-0`,s&&`bg-surface-hover text-foreground`),children:v(e,{className:`h-3 w-3`})}),a&&xo(v(`div`,{ref:i,style:{position:`fixed`,top:a.top,left:a.left,width:a.width},className:`z-[9999] rounded-lg border border-border bg-surface shadow-lg shadow-black/30 p-2`,onClick:e=>e.stopPropagation(),children:n}),document.body)]})}var PZ={kind:`binary`,field:`on`,onLabel:`Low`,offLabel:`Normal`,getSliceHandle:e=>e.binary};function FZ(e){return e===`battery-sensor`}function IZ(e,t){if(!RZ(e))return!1;let n=e[t];if(typeof n!=`number`)return!1;let r=e.lastFetchedAt;return!(n===0&&r===0)}var LZ={"temperature-sensor":{kind:`numeric`,field:`temperature`,quantity:`temperature`,getSliceHandle:e=>e.temperatureSensor},"humidity-sensor":{kind:`numeric`,field:`humidity`,quantity:`humidity`,getSliceHandle:e=>e.humiditySensor},"ambient-light-sensor":{kind:`numeric`,field:`illuminance`,quantity:`illuminance`,getSliceHandle:e=>e.ambientLightSensor},"pressure-sensor":{kind:`numeric`,field:`pressure`,quantity:`pressure`,getSliceHandle:e=>e.pressureSensor},"numeric-sensor":{kind:`numeric`,field:`value`,quantity:`device`,getSliceHandle:e=>e.numericSensor},"wind-sensor":{kind:`numeric`,field:`value`,quantity:`device`,getSliceHandle:e=>e.numericSensor},"rain-sensor":{kind:`numeric`,field:`value`,quantity:`device`,getSliceHandle:e=>e.numericSensor},"uv-sensor":{kind:`numeric`,field:`value`,quantity:`device`,getSliceHandle:e=>e.numericSensor},"solar-radiation-sensor":{kind:`numeric`,field:`value`,quantity:`device`,getSliceHandle:e=>e.numericSensor},"soil-moisture-sensor":{kind:`numeric`,field:`value`,quantity:`device`,getSliceHandle:e=>e.numericSensor},"power-sensor":{kind:`numeric`,field:`power`,quantity:`power`,getSliceHandle:e=>e.powerMeter},"energy-sensor":{kind:`numeric`,field:`energy`,quantity:`energy`,getSliceHandle:e=>e.powerMeter},"voltage-sensor":{kind:`numeric`,field:`voltage`,quantity:`voltage`,getSliceHandle:e=>e.powerMeter},"current-sensor":{kind:`numeric`,field:`current`,quantity:`current`,getSliceHandle:e=>e.powerMeter},"battery-sensor":{kind:`numeric`,field:`value`,quantity:`percentage`,getSliceHandle:e=>e.numericSensor},"generic-sensor":{kind:`numeric`,field:`value`,quantity:`device`,getSliceHandle:e=>e.numericSensor},"motion-sensor":{kind:`binary`,field:`detected`,onLabel:`Detected`,offLabel:`Clear`,getSliceHandle:e=>e.motion},"pir-sensor":{kind:`binary`,field:`detected`,onLabel:`Detected`,offLabel:`Clear`,getSliceHandle:e=>e.motion},"contact-sensor":{kind:`binary`,field:`entryOpen`,onLabel:`Open`,offLabel:`Closed`,getSliceHandle:e=>e.contact},"smoke-sensor":{kind:`binary`,field:`detected`,onLabel:`Smoke!`,offLabel:`Clear`,getSliceHandle:e=>e.smoke},"leak-sensor":{kind:`binary`,field:`flooded`,onLabel:`Leak!`,offLabel:`Dry`,getSliceHandle:e=>e.flood},"co-sensor":{kind:`binary`,field:`detected`,onLabel:`CO!`,offLabel:`Clear`,getSliceHandle:e=>e.carbonMonoxide},"binary-sensor":{kind:`binary`,field:`on`,onLabel:`On`,offLabel:`Off`,getSliceHandle:e=>e.binary},presence:{kind:`presence`,getSliceHandle:e=>e.presence},"enum-sensor":{kind:`string`,getSliceHandle:e=>e.enumSensor},"datetime-sensor":{kind:`datetime`,format:`datetime`,getSliceHandle:e=>e.enumSensor}};function RZ(e){return typeof e==`object`&&!!e}function zZ(e){return typeof e==`object`&&!!e}function BZ(e){return typeof e==`object`&&!!e&&`state`in e&&typeof e.state==`string`}function VZ(e){return typeof e==`object`&&!!e&&`value`in e&&typeof e.value==`string`}function HZ(e){if(typeof e!=`object`||!e)return;let t=e.format;if(t===`date`||t===`time`||t===`datetime`)return t}function UZ(e,t){return e===`home`?t(`uiLibrary.sensor.presence.home`,`Home`):e===`not_home`?t(`uiLibrary.sensor.presence.away`,`Away`):e.charAt(0).toUpperCase()+e.slice(1)}function WZ({trpc:e,device:t}){let n=q(),r=fZ(),i=t.role==null?void 0:LZ[t.role],a=FZ(t.role),{data:o}=Ip({},{staleTime:6e4}),s=Ge(e,t.id),l=Be(s!==null&&i!==void 0?i.getSliceHandle(s.state):void 0),u=Be(s!==null&&i?.kind===`numeric`?s.state.enumSensor:void 0),d=Be(s!==null&&a?s.state.binary:void 0),f=a&&i?.kind===`numeric`&&!IZ(l,i.field)&&d!==void 0,p=f?PZ:i,m=f?d:l;if(p===void 0||m===void 0)return null;if(p.kind===`numeric`){if(!RZ(m))return null;let e=m[p.field];if(typeof e!=`number`)return null;let n=m.lastFetchedAt,i=e===0&&n===0;if(i&&VZ(u)&&u.value!==``)return v(`span`,{className:$(`inline-flex items-baseline text-xs text-foreground`),children:u.value});if(i)return null;let a=t.sourceInfo?.quantity,s=hZ({display:t.display,capName:t.role===`numeric-sensor`?`numeric-sensor`:void 0,roleDefault:t.role==null?void 0:o?.defaults[t.role],quantity:p.quantity??`device`,deviceQuantity:a===`device`?void 0:a,unitPreferences:r}).format(e),l=s.unit,d=s.text;return c(`span`,{className:$(`inline-flex items-baseline gap-0.5 tabular-nums text-xs text-foreground`),children:[v(`span`,{children:d}),l&&v(`span`,{className:`text-foreground-subtle`,children:l})]})}if(p.kind===`binary`){if(!zZ(m))return null;let e=!!m[p.field],t=e?p.onLabel:p.offLabel;return v(`span`,{className:$(`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium`,e?`bg-warning/15 text-warning`:`bg-surface-subtle text-foreground-subtle`),children:t})}if(p.kind===`string`)return!VZ(m)||m.value===``?null:v(`span`,{className:$(`inline-flex items-baseline text-xs text-foreground`),children:m.value});if(p.kind===`datetime`){if(!VZ(m)||m.value===``)return null;let e=t.sourceInfo?.dateTimeShape??HZ(m)??p.format,n=xZ(m.value,e);return v(`span`,{className:$(`inline-flex items-baseline text-xs text-foreground`),children:n})}if(!BZ(m))return null;let h=UZ(m.state,n);return v(`span`,{className:$(`inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium`,m.state===`home`?`bg-success/15 text-success`:`bg-surface-subtle text-foreground-subtle`),children:h})}function GZ(e){switch(e){case`opening`:return{up:`accent`,stop:`neutral`,down:`neutral`};case`closing`:return{up:`neutral`,stop:`neutral`,down:`accent`};case`open`:return{up:`filled`,stop:`neutral`,down:`neutral`};case`closed`:return{up:`neutral`,stop:`neutral`,down:`filled`};default:return{up:`neutral`,stop:`neutral`,down:`neutral`}}}function KZ(e){switch(e){case`accent`:return`bg-primary text-primary-foreground`;case`filled`:return`bg-primary/15 text-primary`;case`neutral`:return``}}function qZ({label:e,busy:t,variant:n,onClick:r,children:i}){return v(`button`,{type:`button`,"aria-label":e,title:e,disabled:t,onClick:e=>{e.stopPropagation(),r()},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,KZ(n),t&&`opacity-40 cursor-not-allowed`),children:i})}function JZ({trpc:e,deviceId:t,optimistic:n}){let r=q(),{cap:i,slice:a,available:o}=Kj({trpc:e,deviceId:t,cap:e=>e.cover,slice:e=>e.state.cover}),{display:s,applyOptimistic:l}=AX(a,{enabled:n??!0});if(i===void 0)return null;let u=GZ(s?.state),d=!o,f=(e,t)=>{d||!e||(t!==void 0&&l(t),e({}))};return c(`div`,{className:`inline-flex items-center gap-1`,children:[v(qZ,{label:r(`uiLibrary.coverInline.open`,`Open`),busy:d,variant:u.up,onClick:()=>f(i?.open,{state:`opening`}),children:v(Ci,{className:`h-3.5 w-3.5`})}),v(qZ,{label:r(`uiLibrary.coverInline.stop`,`Stop`),busy:d,variant:u.stop,onClick:()=>f(i?.stop,{state:`stopped`}),children:v(di,{className:`h-3 w-3`})}),v(qZ,{label:r(`uiLibrary.coverInline.close`,`Close`),busy:d,variant:u.down,onClick:()=>f(i?.close,{state:`closing`}),children:v(de,{className:`h-3.5 w-3.5`})}),s!==void 0&&s.position!==null&&c(`span`,{className:`tabular-nums text-xs text-foreground-subtle ml-1`,children:[s.position,`%`]})]})}E();function YZ({label:e,busy:t,variant:n,onClick:r,children:i}){return v(`button`,{type:`button`,"aria-label":e,title:e,disabled:t,onClick:e=>{e.stopPropagation(),r()},className:$(`inline-flex h-10 w-10 items-center justify-center rounded-md text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,n===`accent`&&`bg-primary text-primary-foreground hover:bg-primary/90`,n===`filled`&&`bg-primary/15 text-primary`,t&&`opacity-40 cursor-not-allowed`),children:i})}function XZ(){return c(P,{children:[v(`div`,{"aria-hidden":`true`,className:`absolute inset-y-0 left-1/2 w-px -translate-x-px bg-white/60`}),v(`div`,{"aria-hidden":`true`,className:`absolute inset-x-0 top-1/2 h-px -translate-y-px bg-white/60`})]})}function ZZ({position:e,interactive:t,onSetPosition:n}){let r=q(),i=(1-e/100)*100,a=f(null),o=f(!1),s=f(null),l=t=>{let n=a.current;if(n===null)return e;let r=n.getBoundingClientRect();if(r.height<=0)return e;let i=(t-r.top)/r.height,o=Math.round(100-i*100);return Math.min(100,Math.max(0,o))},u=e=>{if(n===void 0)return;let t=l(e);s.current!==t&&(s.current=t,n(t))},d=e=>{t&&(e.stopPropagation(),e.preventDefault(),o.current=!0,s.current=null,e.currentTarget.setPointerCapture(e.pointerId),u(e.clientY))},p=e=>{!t||!o.current||(e.stopPropagation(),u(e.clientY))},m=e=>{!t||!o.current||(e.stopPropagation(),o.current=!1,s.current=null,e.currentTarget.hasPointerCapture(e.pointerId)&&e.currentTarget.releasePointerCapture(e.pointerId))};return c(`div`,{ref:a,"data-testid":`cover-window`,...t?{"aria-label":r(`uiLibrary.coverHeroCard.dragToSet`,`Drag to set position`),role:`slider`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e}:{"aria-hidden":`true`},onPointerDown:t?d:void 0,onPointerMove:t?p:void 0,onPointerUp:t?m:void 0,onPointerCancel:t?m:void 0,className:$(`relative w-28 h-36 rounded border-2 border-amber-700/60 bg-gradient-to-b from-sky-200 to-sky-50 overflow-hidden flex-shrink-0`,t&&`cursor-ns-resize touch-none select-none`),style:{boxShadow:`inset 0 0 0 2px rgba(255,255,255,.5)`},children:[v(XZ,{}),v(`div`,{className:`absolute inset-x-0 top-0 transition-all duration-200`,style:{height:`${i}%`,background:`repeating-linear-gradient(#c9cdd2, #c9cdd2 6px, #b7bcc2 6px, #b7bcc2 8px)`,borderBottom:i>0?`1px solid #9aa`:`none`}}),c(`div`,{"data-testid":`cover-lever`,className:$(`absolute inset-x-0 h-4 flex items-center justify-center gap-1 z-10 transition-all duration-200`,t&&`cursor-grab active:cursor-grabbing`),style:{top:`calc(${i}% - 8px)`},children:[v(`div`,{className:`absolute -inset-x-1.5 h-full rounded-lg bg-slate-600 shadow-md`}),v(`span`,{className:`h-1 w-1 rounded-full bg-white/70 relative z-10`,"aria-hidden":`true`}),v(`span`,{className:`h-1 w-1 rounded-full bg-white/70 relative z-10`,"aria-hidden":`true`}),v(`span`,{className:`h-1 w-1 rounded-full bg-white/70 relative z-10`,"aria-hidden":`true`}),c(`span`,{"data-testid":`cover-position-pct`,className:`absolute left-full ml-2 text-xs font-semibold text-foreground tabular-nums whitespace-nowrap`,children:[e,`%`]})]})]})}function QZ({isOpen:e}){return c(`div`,{"data-testid":`cover-window`,"aria-hidden":`true`,className:`relative w-28 h-36 rounded border-2 border-amber-700/60 bg-gradient-to-b from-sky-200 to-sky-50 overflow-hidden flex-shrink-0`,style:{boxShadow:`inset 0 0 0 2px rgba(255,255,255,.5)`},children:[v(XZ,{}),!e&&v(`div`,{className:`absolute inset-0`,style:{background:`repeating-linear-gradient(#c9cdd2, #c9cdd2 6px, #b7bcc2 6px, #b7bcc2 8px)`}})]})}function $Z({trpc:e,deviceId:t,features:n,optimistic:r}){let i=q(),{cap:a,slice:o,available:s}=Kj({trpc:e,deviceId:t,cap:e=>e.cover,slice:e=>e.state.cover}),{display:l,applyOptimistic:u}=AX(o,{enabled:r??!0});if(a===void 0)return null;let d=!s,f=(n??[]).includes(Ya.CoverPositionable),p=(n??[]).includes(Ya.CoverTilt),m=GZ(l?.state),h=l?.position??null,g=h!==null,_=l?.state===`open`||l?.state===`opening`,y=(e,t)=>{d||!e||(t!==void 0&&u(t),e({}))},b=e=>{d||(u({position:e}),a?.setPosition({position:e}))};return c(`div`,{className:`flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4`,children:[c(`div`,{className:`flex items-center gap-6`,children:[g?v(ZZ,{position:h,interactive:f,onSetPosition:f?b:void 0}):v(QZ,{isOpen:_}),c(`div`,{className:`flex flex-col gap-3 flex-1`,children:[g&&c(`div`,{className:`flex items-baseline gap-1`,children:[v(`span`,{className:`text-3xl font-semibold tabular-nums text-foreground`,children:h}),v(`span`,{className:`text-base text-foreground-subtle`,children:`%`}),v(`span`,{className:`text-xs text-foreground-subtle ml-1`,children:i(`uiLibrary.coverHeroCard.openWord`,`open`)})]}),!g&&v(`div`,{className:`flex items-baseline gap-1`,children:v(`span`,{className:`text-3xl font-semibold capitalize text-foreground`,children:l?.state??`—`})}),c(`div`,{className:`flex items-center gap-2`,children:[v(YZ,{label:i(`uiLibrary.coverHeroCard.open`,`Open`),busy:d,variant:m.up,onClick:()=>y(a?.open,{state:`opening`}),children:v(Ci,{className:`h-5 w-5`})}),v(YZ,{label:i(`uiLibrary.coverHeroCard.stop`,`Stop`),busy:d,variant:m.stop,onClick:()=>y(a?.stop,{state:`stopped`}),children:v(di,{className:`h-4 w-4`})}),v(YZ,{label:i(`uiLibrary.coverHeroCard.close`,`Close`),busy:d,variant:m.down,onClick:()=>y(a?.close,{state:`closing`}),children:v(de,{className:`h-5 w-5`})})]})]})]}),f&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{className:`w-12 shrink-0`,children:i(`uiLibrary.coverHeroCard.position`,`Position`)}),v(`input`,{"aria-label":i(`uiLibrary.coverHeroCard.position`,`Position`),type:`range`,min:0,max:100,step:1,value:h??0,disabled:d,className:`flex-1`,onChange:e=>{b(Number(e.target.value))}}),c(`span`,{className:`w-8 text-right tabular-nums`,children:[h??`—`,`%`]})]}),!f&&h!==null&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{className:`w-12 shrink-0`,children:i(`uiLibrary.coverHeroCard.position`,`Position`)}),v(`input`,{"aria-label":i(`uiLibrary.coverHeroCard.position`,`Position`),type:`range`,min:0,max:100,step:1,value:h,disabled:!0,readOnly:!0,className:`flex-1 opacity-60`}),c(`span`,{className:`w-8 text-right tabular-nums`,children:[h,`%`]})]}),p&&c(`label`,{className:`flex items-center gap-2 text-xs text-foreground-subtle`,children:[v(`span`,{className:`w-12 shrink-0`,children:i(`uiLibrary.coverHeroCard.tilt`,`Tilt`)}),v(`input`,{"aria-label":i(`uiLibrary.coverHeroCard.tiltPosition`,`Tilt position`),type:`range`,min:0,max:100,step:1,value:l?.tiltPosition??0,disabled:d,className:`flex-1`,onChange:e=>{let t=Number(e.target.value);u({tiltPosition:t}),d||a?.setTiltPosition({tiltPosition:t})}}),c(`span`,{className:`w-8 text-right tabular-nums`,children:[l?.tiltPosition??`—`,`%`]})]})]})}function eQ(e){return v(`span`,{className:`text-foreground-subtle text-xs select-none`,"aria-hidden":`true`,children:`—`})}function tQ(e){return v(`div`,{className:`rounded border border-border bg-surface-subtle px-3 py-2 text-xs text-foreground-subtle`,children:q()(`uiLibrary.dummyHeroCard.comingSoon`,`Controls coming soon`)})}function Tae(e){return{id:e.id,stableId:e.stableId,addonId:e.addonId,type:e.type,name:e.name,online:e.online,disabled:e.disabled,parentDeviceId:e.parentDeviceId,role:e.role??void 0,features:e.features}}function nQ({trpc:e,deviceId:t}){let{data:n}=rm({deviceId:t},{staleTime:6e4});return n===void 0?null:v(WZ,{trpc:e,device:Tae(n)})}var rQ={"temperature-sensor":`temperature-sensor`,"humidity-sensor":`humidity-sensor`,"ambient-light-sensor":`ambient-light-sensor`,"pressure-sensor":`pressure-sensor`,"numeric-sensor":`numeric-sensor`,"wind-sensor":`numeric-sensor`,"rain-sensor":`numeric-sensor`,"uv-sensor":`numeric-sensor`,"solar-radiation-sensor":`numeric-sensor`,"soil-moisture-sensor":`numeric-sensor`,"power-sensor":`power-meter`,"energy-sensor":`power-meter`,"voltage-sensor":`power-meter`,"current-sensor":`power-meter`,"battery-sensor":`numeric-sensor`,"generic-sensor":`numeric-sensor`,"motion-sensor":`motion`,"pir-sensor":`motion`,"contact-sensor":`contact`,"smoke-sensor":`smoke`,"leak-sensor":`flood`,"co-sensor":`carbon-monoxide`,"binary-sensor":`binary`,presence:`presence`,"enum-sensor":`enum-sensor`,"datetime-sensor":`enum-sensor`};function iQ(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function aQ(e,t){if(!iQ(t))return!1;if(e.kind===`presence`)return typeof t.state==`string`;if(e.kind===`string`||e.kind===`datetime`)return typeof t.value==`string`&&t.value!==``;let n=t[e.field];return e.kind===`numeric`?typeof n==`number`:typeof n==`boolean`}function oQ(e,t){if(!(t===void 0||!iQ(e)))return e[t]}function sQ(e){let t=oQ(e,`battery`);if(!(!iQ(t)||typeof t.level!=`number`))return{...t,value:t.level}}function cQ(e){let t=oQ(e.snapshotCaps,e.capName);if(e.descriptor!==void 0&&aQ(e.descriptor,t))return t;if(e.role===`battery-sensor`&&e.descriptor?.kind===`numeric`)return sQ(e.snapshotCaps)}function lQ(e){let t=e.descriptor;if(t!==void 0&&aQ(t,e.live))return{kind:`value`,slice:e.live};let n=cQ(e);return t!==void 0&&aQ(t,n)?{kind:`value`,slice:n}:e.addonId===`composer`&&e.snapshotStatus===`success`?{kind:`quiet`}:{kind:`awaiting`}}function uQ(e){return typeof e==`object`&&!!e}function dQ(e){return typeof e==`object`&&!!e}function fQ(e){return typeof e==`object`&&!!e&&`state`in e&&typeof e.state==`string`}function pQ(e,t){return e===`home`?t(`uiLibrary.sensor.presence.home`,`Home`):e===`not_home`?t(`uiLibrary.sensor.presence.away`,`Away`):e.charAt(0).toUpperCase()+e.slice(1)}var mQ={low:`bg-danger`,medium:`bg-warning`,high:`bg-success`};function hQ(e){return e<=20?`low`:e<=50?`medium`:`high`}function gQ({percent:e}){let t=Math.min(100,Math.max(0,e)),n=hQ(t);return v(`div`,{"data-testid":`battery-bar`,"data-band":n,className:`h-2 w-24 overflow-hidden rounded-full bg-border`,children:v(`div`,{className:$(`h-full rounded-full transition-all`,mQ[n]),style:{width:`${t}%`}})})}function _Q({trpc:e,device:t}){let n=q(),r=fZ(),i=t.role==null?LZ[`temperature-sensor`]:LZ[t.role],a=FZ(t.role),{data:o}=Ip({},{staleTime:6e4}),s=Ge(e,t.id),l=Be(s!==null&&i!==void 0?i.getSliceHandle(s.state):void 0),u=Be(s!==null&&a?s.state.binary:void 0),d=Be(s!==null&&!a?s.state.binary:void 0),f=a&&i?.kind===`numeric`&&!IZ(l,i.field)&&u!==void 0,p=f?PZ:i,m=f?u:l,h=fh({deviceId:t.id},{staleTime:5e3}),g=f?`binary`:t.role==null?rQ[`temperature-sensor`]:rQ[t.role],_=h.status===`success`||h.status===`error`?h.status:`pending`,y=lQ({addonId:t.addonId,role:t.role,descriptor:p,capName:g,live:m,snapshotStatus:_,snapshotCaps:h.data});if(y.kind===`quiet`)return v(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4 min-h-[96px]`,"data-testid":`sensor-hero-quiet`,children:v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`})});let b=y.kind===`value`?y.slice:void 0;if(p===void 0||b===void 0)return c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4 min-h-[96px]`,children:[v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`}),v(`span`,{className:`text-xs text-foreground-subtle italic`,children:n(`uiLibrary.sensorHeroCard.awaiting`,`Awaiting state…`)})]});if(p.kind===`numeric`){if(!uQ(b))return null;let e=b[p.field];if(typeof e!=`number`)return null;let i=t.sourceInfo?.quantity,s=hZ({display:t.display,capName:t.role===`numeric-sensor`?`numeric-sensor`:void 0,roleDefault:t.role==null?o?.defaults?.[`temperature-sensor`]:o?.defaults?.[t.role],quantity:p.quantity??`device`,deviceQuantity:i===`device`?void 0:i,unitPreferences:r}).format(e),l=s.unit,u=s.text,f=d!==void 0&&dQ(d)&&typeof d.on==`boolean`?!!d.on:null;return c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4`,children:[c(`div`,{className:`flex items-baseline gap-1`,children:[v(`span`,{className:`text-3xl font-semibold tabular-nums text-foreground`,children:u}),l&&v(`span`,{className:`text-base text-foreground-subtle`,children:l})]}),a&&v(gQ,{percent:e}),f!==null&&v(`span`,{className:$(`inline-flex items-center rounded px-2 py-0.5 text-xs font-medium`,f?`bg-warning/15 text-warning`:`bg-surface-subtle text-foreground-subtle`),"data-testid":`sensor-hero-occupancy`,children:f?n(`uiLibrary.sensorHeroCard.occupied`,`Occupied`):n(`uiLibrary.sensorHeroCard.clear`,`Clear`)}),v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`})]})}if(p.kind===`binary`){if(!dQ(b))return null;let e=!!b[p.field],n=e?p.onLabel:p.offLabel;return c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4`,children:[v(`span`,{className:$(`inline-flex items-center rounded px-3 py-1.5 text-lg font-semibold`,e?`bg-warning/15 text-warning`:`bg-surface-subtle text-foreground-subtle`),children:n}),v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`})]})}if(p.kind===`datetime`){if(!VZ(b))return null;if(b.value===``)return c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4 min-h-[96px]`,children:[v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`}),v(`span`,{className:`text-xs text-foreground-subtle italic`,children:n(`uiLibrary.sensorHeroCard.awaiting`,`Awaiting state…`)})]});let e=t.sourceInfo?.dateTimeShape??HZ(b)??p.format;return c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4`,children:[v(`span`,{className:`text-3xl font-semibold tabular-nums text-foreground`,children:xZ(b.value,e)}),v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`})]})}if(p.kind===`string`)return!VZ(b)||b.value===``?null:c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4`,children:[v(`span`,{className:`text-xl font-semibold text-foreground`,children:b.value}),v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`})]});if(!fQ(b))return null;let x=pQ(b.state,n);return c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4`,children:[v(`span`,{className:$(`inline-flex items-center rounded px-3 py-1.5 text-lg font-semibold`,b.state===`home`?`bg-success/15 text-success`:`bg-surface-subtle text-foreground-subtle`),children:x}),v(hj,{device:t,form:`full`,className:`text-sm text-foreground-subtle`})]})}function vQ({trpc:e,deviceId:t}){let{data:n}=rm({deviceId:t},{staleTime:6e4});return n===void 0?null:v(_Q,{trpc:e,device:n})}function yQ(e){return e===void 0||e.inProgress?!1:e.availableVersion!==null&&e.currentVersion!==null&&e.availableVersion!==e.currentVersion}function bQ(e,t){return Kj({trpc:e,deviceId:t,cap:e=>e.update,slice:e=>e.state.update})}function xQ({trpc:e,deviceId:t}){let n=q(),{cap:r,slice:i}=bQ(e,t);return r===void 0?null:i?.inProgress?c(`span`,{className:`inline-flex items-center gap-1 text-xs text-foreground-subtle`,children:[v(Un,{className:`h-3.5 w-3.5 animate-spin`}),n(`uiLibrary.updateControl.updating`,`Updating…`)]}):yQ(i)?c(`span`,{className:`inline-flex items-center gap-1 rounded bg-warning/15 px-1.5 py-0.5 text-[10px] font-medium text-warning`,children:[v(nn,{className:`h-3 w-3`}),n(`uiLibrary.updateControl.update`,`Update`)]}):c(`span`,{className:`inline-flex items-center gap-1 text-[10px] text-foreground-subtle`,children:[v(dt,{className:`h-3 w-3 text-success`}),i?.currentVersion??n(`uiLibrary.updateControl.upToDate`,`Up to date`)]})}function SQ({trpc:e,deviceId:t}){let n=q(),{cap:r,slice:i,available:a}=bQ(e,t);if(r===void 0)return null;let o=i?.inProgress===!0,s=yQ(i),l=i?.currentVersion??`—`,u=()=>{!a||r===void 0||!s||r.installUpdate({})};return c(`div`,{className:`flex flex-col items-center justify-center gap-2 rounded-lg border border-border bg-surface p-4`,children:[c(`div`,{className:`flex items-baseline gap-1.5`,children:[v(`span`,{className:`text-3xl font-semibold tabular-nums text-foreground`,children:l}),s&&i?.availableVersion!=null&&c(P,{children:[v(`span`,{className:`text-base text-foreground-subtle`,children:`→`}),v(`span`,{className:`text-base font-medium text-warning tabular-nums`,children:i.availableVersion})]})]}),o?c(`span`,{className:`inline-flex items-center gap-1.5 rounded px-3 py-1.5 text-sm font-medium text-foreground-subtle`,children:[v(Un,{className:`h-4 w-4 animate-spin`}),n(`uiLibrary.updateControl.installing`,`Installing…`)]}):s?c(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),u()},disabled:!a,className:`inline-flex items-center gap-1.5 rounded-lg bg-primary px-4 py-1.5 text-sm font-medium text-primary-foreground shadow-sm transition-colors disabled:opacity-50 disabled:cursor-not-allowed`,children:[v(nn,{className:`h-4 w-4`}),n(`uiLibrary.updateControl.install`,`Install update`)]}):c(`span`,{className:`inline-flex items-center gap-1.5 rounded bg-success/15 px-3 py-1 text-sm font-medium text-success`,children:[v(dt,{className:`h-4 w-4`}),n(`uiLibrary.updateControl.upToDate`,`Up to date`)]}),i?.state!=null&&i.state!==``&&v(`span`,{className:`text-[10px] text-foreground-subtle`,children:i.state})]})}function CQ(e,t=Fn){switch(e){case`cleaning`:return{label:t(`uiLibrary.vacuum.cleaning`,`Cleaning`),tone:`text-primary`};case`paused`:return{label:t(`uiLibrary.vacuum.paused`,`Paused`),tone:`text-warning`};case`returning`:return{label:t(`uiLibrary.vacuum.returning`,`Returning`),tone:`text-primary`};case`docked`:return{label:t(`uiLibrary.vacuum.docked`,`Docked`),tone:`text-success`};case`drying`:return{label:t(`uiLibrary.vacuum.drying`,`Drying`),tone:`text-warning`};case`idle`:return{label:t(`uiLibrary.vacuum.idle`,`Idle`),tone:`text-foreground-subtle`};case`error`:return{label:t(`uiLibrary.vacuum.error`,`Error`),tone:`text-destructive`};case void 0:return{label:t(`uiLibrary.vacuum.unknown`,`Unknown`),tone:`text-foreground-subtle`}}}function wQ(e,t){return Kj({trpc:e,deviceId:t,cap:e=>e.vacuumControl,slice:e=>e.state.vacuumControl})}function TQ({label:e,busy:t,active:n,onClick:r,children:i}){return v(`button`,{type:`button`,"aria-label":e,title:e,disabled:t,onClick:e=>{e.stopPropagation(),r()},className:$(`inline-flex h-5 w-5 items-center justify-center rounded text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors`,n&&`bg-primary text-primary-foreground`,t&&`opacity-40 cursor-not-allowed`),children:i})}function EQ(e){switch(e){case`cleaning`:return{glow:`bg-primary/15`,accent:`text-primary`,docked:!1,active:!0};case`returning`:return{glow:`bg-primary/10`,accent:`text-primary`,docked:!1,active:!0};case`docked`:return{glow:`bg-success/10`,accent:`text-success`,docked:!0,active:!1};case`drying`:return{glow:`bg-warning/10`,accent:`text-warning`,docked:!0,active:!1};case`paused`:return{glow:`bg-warning/10`,accent:`text-warning`,docked:!1,active:!1};case`error`:return{glow:`bg-destructive/10`,accent:`text-destructive`,docked:!1,active:!1};case`idle`:return{glow:`bg-transparent`,accent:`text-foreground-subtle`,docked:!1,active:!1};case void 0:return{glow:`bg-transparent`,accent:`text-foreground-subtle`,docked:!1,active:!1}}}var DQ=`
@@ -64,4 +64,4 @@ ${t.replace(/^ {2}/gm,` `)}
64
64
  ${n.replace(/^ {2}/gm,` `)}
65
65
  }
66
66
  }
67
- `}function Z9(e){return Object.entries(e).filter(([e])=>e!==`provider`).map(([e,t])=>`--color-${Y9(e)}:${String(t)}`).join(`;`)}function Q9(e,t){return Object.entries(t).map(([t,n])=>`--${e}-${t}:${n}px`).join(`;`)}function yle(e){return[`:root{color-scheme:light dark;${[Q9(`spacing`,e.spacing),Q9(`radius`,e.radius),`--font-family:${e.typography.fontFamily}`].join(`;`)};${Z9(e.colors.light)}}`,`@media (prefers-color-scheme:dark){:root{${Z9(e.colors.dark)}}}`].join(``)}var ble=e({AddProviderEntryDialog:()=>Xoe,AddonGlobalSettingsForm:()=>Pz,AdminLinkQuickAction:()=>x4,AgentStepEditor:()=>jB,AlarmHeroCard:()=>k0,AlarmPanelInlineControl:()=>O0,AppShell:()=>$B,ArcKnob:()=>hX,AudioClassificationList:()=>nV,AudioLevelWaveform:()=>rV,AudioWaveform:()=>iV,AutomationHeroCard:()=>V0,AutomationInlineControl:()=>B0,AutotrackSection:()=>WA,BATTERY_BADGE_LOW_KEY:()=>aV,BATTERY_BADGE_NORMAL_KEY:()=>oV,BINARY_BATTERY_LOW_BELOW:()=>50,BOOLEAN_STATES:()=>E7,BTN_COMPACT:()=>Cr,BTN_COMPACT_DANGER:()=>Xn,BTN_COMPACT_PRIMARY:()=>Gn,BTN_COMPACT_WARNING:()=>hn,BackToStepsButton:()=>x8,Badge:()=>zk,BarSeries:()=>XP,BatteryBadge:()=>dV,BottomSheet:()=>ol,Breadcrumb:()=>FV,BrightnessPanel:()=>PX,Button:()=>gA,ButtonControl:()=>wX,ButtonHeroCard:()=>TX,CENTER:()=>oX,CHART_SERIES_TOKENS:()=>XM,CHIP_ACTIVE:()=>vi,CHIP_BASE:()=>ki,CHIP_INACTIVE:()=>En,CLASS_COLORS:()=>MG,COLUMN_BREAKPOINT_CLASS:()=>a4,COLUMN_PRIORITY:()=>i4,COMMIT_DEDUPE_TOLERANCE_MS:()=>750,COMMIT_DEDUPE_WINDOW_MS:()=>uL,CONSUMABLE_LOW_PERCENT:()=>15,CONTROL_CAP_NAMES:()=>AZ,CONTROL_FILLS:()=>c2,CameraStreamPlayer:()=>qH,Card:()=>dF,ChartFrame:()=>oN,ChartPlaceholder:()=>uN,ChartSwatch:()=>sN,ChartWindowToggle:()=>aP,Checkbox:()=>FB,ChildSectionAccordion:()=>k3,ClimatePanel:()=>qX,CodeBlock:()=>fG,CollapsibleCard:()=>oB,ConfigFormBuilder:()=>Oz,ConfigFormField:()=>Cz,ConfigNotificationTargetMultiSelectFieldView:()=>dA,ConfigNotificationTargetSelectFieldView:()=>fA,ConfigSchemaField:()=>fB,ConfirmActionButton:()=>pG,ConfirmDialogProvider:()=>or,ConsumableLevelBadge:()=>lM,ConsumablesPanel:()=>kM,ContainerChildrenProvider:()=>E4,ContainerPrimaryHero:()=>E2,ControlColumn:()=>sX,ControlHeroCard:()=>a2,ControlInlineControl:()=>i2,ControlPanel:()=>kZ,CopyButton:()=>hG,CoverHeroCard:()=>$Z,CoverInlineControl:()=>JZ,CoverPanel:()=>EX,CustomFieldRenderersProvider:()=>mA,DATA_RECORDS_KIND_PARAM:()=>d8,DATA_RECORDS_OWNER_PARAM:()=>u8,DATA_RECORD_FACET_GROUPS:()=>c8,DEFAULT_COLOR:()=>PG,DEFAULT_PAGINATION_LABELS:()=>QH,DEFAULT_UNIT_PREFERENCES:()=>iZ,DEVICE_COLUMNS:()=>t4,DEVICE_EXPORT_PAGE_SIZE_KEY:()=>n6,DEVICE_LIST_PAGE_SIZE_KEY:()=>I2,DEVICE_LIST_PAGE_SIZE_OPTIONS:()=>F2,DEVICE_NAME_FORMS:()=>dae,DEVICE_NAME_JOIN:()=>XA,DEVICE_PICKER_GROUP_STORAGE_KEY:()=>C5,DEVICE_ROLE_META:()=>No,DEVICE_ROLE_NOUNS:()=>aj,DEVICE_TYPE_CONTROL:()=>s2,DEVICE_TYPE_META:()=>Mo,DEVICE_TYPE_NOUNS:()=>oj,DataRecordsHub:()=>f8,DataTable:()=>dU,DataTableFilterBar:()=>OG,DataTablePager:()=>XH,DetectionCanvas:()=>VG,DetectionOverlay:()=>YG,DetectionResultTree:()=>tK,DevShell:()=>FJ,DeviceActivityPanel:()=>tX,DeviceBatchToolbar:()=>k2,DeviceCard:()=>rX,DeviceContextProvider:()=>xA,DeviceExportPanel:()=>o6,DeviceExportSetup:()=>a6,DeviceFilterBar:()=>y5,DeviceFleetFromServer:()=>YA,DeviceFleetProvider:()=>JA,DeviceGrid:()=>foe,DeviceHistoryView:()=>f9,DeviceItem:()=>A3,DeviceList:()=>Q3,DeviceMultiSelectField:()=>Rk,DeviceName:()=>hj,DevicePicker:()=>U5,DeviceQuickDetailProvider:()=>b3,DeviceSelectField:()=>Lk,DeviceSelectorPicker:()=>l6,DeviceStepMatrix:()=>b6,DevicesFailedLine:()=>B5,DevicesLoadingLine:()=>z5,DevicesWidenWarning:()=>R5,Dialog:()=>_L,DialogBody:()=>SL,DialogContent:()=>bL,DialogDescription:()=>TL,DialogFooter:()=>CL,DialogHeader:()=>xL,DialogTitle:()=>wL,DialogTrigger:()=>vL,DiscoveryPanel:()=>x6,DisplayPaletteProvider:()=>RG,DoorbellRecentPanel:()=>w6,Dropdown:()=>yk,DropdownContent:()=>xk,DropdownItem:()=>Sk,DropdownTrigger:()=>bk,DummyHeroCard:()=>tQ,DummyInline:()=>eQ,EMPTY_DATA_TABLE_FILTER:()=>vG,EMPTY_HISTORY_PANELS:()=>G7,EVENT_KIND_ICONS:()=>Bk,EmptyState:()=>qM,EndpointResultsCard:()=>mW,EndpointTestCard:()=>_W,EntryJsonSchemaForm:()=>e8,ErrorBox:()=>YM,EventKindGlyph:()=>Uk,EventStream:()=>hY,ExtensionsPanel:()=>mI,FALLBACK_SCOPE:()=>ps,FAST_ICON_GLYPHS:()=>Wo,FILL:()=>iX,FLEET_LIST_GC_TIME_MS:()=>SJ,FLEET_LIST_QUERY_KEY:()=>bJ,FLEET_LIST_STALE_TIME_MS:()=>xJ,FanHeroCard:()=>u0,FanInlineControl:()=>Y0,FanPanel:()=>FX,FilterBar:()=>Aoe,FloatingEventStream:()=>_Y,FloatingLogStream:()=>QJ,FloatingPanel:()=>YB,FormField:()=>T6,GAP_INTERVAL_FACTOR:()=>BN,GRID_GAP:()=>Ei,GRID_PAIRED:()=>At,GRID_QUICK_STATS:()=>ae,GateBadge:()=>jse,GateControl:()=>_8,GripTrack:()=>gX,GroupedModelSelector:()=>Vz,GroupedTilePicker:()=>E6,HISTORY_PAGE_PATH:()=>U7,HISTORY_PANELS_NAMESPACE:()=>W7,HISTORY_SELECTION_MAX:()=>24,HISTORY_WINDOW_IDS:()=>r7,HISTORY_WINDOW_MS:()=>o7,HOST_WIDGETS:()=>JL,HUB_SESSION_RUN_MS:()=>YW,HistoryChart:()=>F7,HistoryWindowBar:()=>Q7,HlsVideo:()=>D6,HotkeyProvider:()=>vs,HotkeyScope:()=>xs,HoverZoomImage:()=>g3,HubSessionTestCard:()=>tG,HumidifierHeroCard:()=>o$,HumidifierInlineControl:()=>i$,INPUT_COMPACT:()=>fee,INPUT_SHELL:()=>Wk,IconAction:()=>G4,IconButton:()=>jl,IconPicker:()=>Cl,ImageHeroCard:()=>j$,ImageInlineControl:()=>A$,ImageSelector:()=>Poe,InferenceConfigSelector:()=>Foe,Input:()=>Nl,ItemFormDialog:()=>F6,KebabMenu:()=>k6,KeyValueList:()=>pU,LIST_ROW:()=>Ft,Label:()=>MB,LawnMowerHeroCard:()=>GQ,LawnMowerInlineControl:()=>UQ,LayeredSettingsForm:()=>EB,LightHeroCard:()=>s0,LightInlineControl:()=>q0,LockHeroCard:()=>$1,LockInlineControl:()=>K0,LockPanel:()=>MX,LogStream:()=>ZJ,LoginForm:()=>DJ,MEDIA_GRID:()=>he,MODE_COLOR:()=>WX,MaskShapeCanvas:()=>xle,MediaCard:()=>Uoe,MediaGrid:()=>H6,MediaPlayerHeroCard:()=>_0,MediaPlayerInlineControl:()=>n2,MediaPlayerPanel:()=>eZ,MobileDrawer:()=>XB,ModelPicker:()=>Wz,MotionZonesSettings:()=>Sle,NAVIGATION_DRIVE_INTERVAL_MS:()=>hI,NODE_COLOR_IDS:()=>Cee,NatResultCard:()=>hW,NavigationPanel:()=>TI,NetworkLinkBadge:()=>yV,NodeMultiSelectField:()=>JR,NodePicker:()=>A6,NodeSelectField:()=>qR,NotificationTargetSelectField:()=>lA,NotificationTargetsField:()=>cA,OCCUPANCY_KEY:()=>p7,OPTION_SELECT_SEARCH_MIN_OPTIONS:()=>8,OfflineBadge:()=>y2,OptionSelect:()=>rA,PAGE_SIZE_ALL:()=>0,PHASE_CONFIG:()=>KG,PICKER_CHIP_LIMIT:()=>6,PICKER_DEFAULT_GROUP_BY:()=>J8,PICKER_GROUP_BY_MODES:()=>q8,PICKER_GROUP_COLLAPSE_AT:()=>8,PICKER_NONE_KEY:()=>r5,PICKER_NOUN_PLURAL:()=>N5,PICKER_NO_FILTERS:()=>i5,PICKER_PAGE_SIZE:()=>60,PICKER_SEARCH_DEBOUNCE_MS:()=>200,PICKER_WINDOW:()=>30,PRIORITY:()=>b2,PTZOverlay:()=>jI,PageHeader:()=>Loe,PageShell:()=>j6,PageSizeSelect:()=>F3,Pagination:()=>KM,PasswordInput:()=>Vl,PhaseIcon:()=>U6,PipelineBuilder:()=>Koe,PipelineRuntimeSelector:()=>qoe,PipelineStep:()=>cB,PlaceholderChipField:()=>Ace,PlayerOverlaysProvider:()=>ci,Popover:()=>ll,PopoverContent:()=>pl,PopoverRowAction:()=>NZ,PopoverTrigger:()=>ul,PrimaryChildPicker:()=>O2,PrivacyMaskSettings:()=>Cle,ProviderBadge:()=>Yoe,ProviderEntryPills:()=>tse,PtzPanel:()=>NI,QrCode:()=>OR,RECONNECT_POLICY:()=>IV,RECORDED_PLAYBACK_MODES:()=>eL,RESOLUTION_BUCKET_MS:()=>f7,RIGHT:()=>aX,ROI_AREA_WARN_FRACTION:()=>Pr,ROLE_DESCRIPTOR:()=>LZ,ROOT_DETECTOR_STEP_ID:()=>nG,RadialGauge:()=>SX,RecordEntriesPanel:()=>n8,RecordedPlaybackProvider:()=>aL,RecordingPanel:()=>qL,ResponseLog:()=>_se,RetrainReviewBadge:()=>Mce,RoleDisplayDefaultsFromServer:()=>z4,RoleDisplayDefaultsProvider:()=>L4,RoleNodePill:()=>PV,RootModelSourceControl:()=>eB,RootSuppliedModelNote:()=>AB,RunReport:()=>jW,RunningBadge:()=>hV,RunningStatusLine:()=>gV,SCENE_CAPTURE_VARIANTS:()=>ni,SECRET_MASK_PLACEHOLDER:()=>Wl,SECRET_REVEAL_MS:()=>Ul,SECTION_BODY:()=>ue,SECTION_CARD:()=>ut,SECTION_HEADER:()=>fr,SETTING_ROW:()=>H,SETTING_ROW_LABEL:()=>sr,SETTING_ROW_STACK_BREAKPOINT:()=>`sm`,SETTING_ROW_VALUE:()=>at,SETTING_ROW_VALUE_TEXT:()=>ht,SNAPSHOT_MEDIA_PATH:()=>Jt,SPLIT_PANEL_OUTER:()=>be,SPLIT_PANEL_SIDE:()=>Fe,STACK_GAP:()=>Xe,STATE_COLOR:()=>JX,STEP_DOCK_WIDTH_PX:()=>432,SUBJECT_PATH_DWELL_EPS:()=>oa,SUBJECT_PATH_FULL_FRAME_COVERAGE:()=>Ha,SUBJECT_PATH_MAX_POINTS:()=>120,SceneMonitorEditor:()=>$9,ScopePicker:()=>p8,ScriptHeroCard:()=>I0,ScriptInlineControl:()=>F0,ScrollArea:()=>JB,SecretFieldControl:()=>Ql,SecretRevealProvider:()=>ql,SectionCard:()=>mU,SectionToolbar:()=>Boe,SectionedPage:()=>P6,SegmentedChoice:()=>v8,Select:()=>Hl,SelectedChip:()=>Gk,SemanticBadge:()=>j8,SendFrameToTrainingButton:()=>kL,SensorHeroCard:()=>vQ,SensorInlineControl:()=>nQ,SensorValueAtom:()=>WZ,Separator:()=>PB,SettingRow:()=>fU,Sidebar:()=>QB,SidebarItem:()=>ZB,Skeleton:()=>uM,SlideToggle:()=>uX,SnapshotButton:()=>Dse,SortHeaderButton:()=>rU,Sparkline:()=>Vce,StableTabPanel:()=>M6,StatCard:()=>h8,StateTimeline:()=>n7,StateValuesStream:()=>zY,StatusBadge:()=>g8,StepDetailDock:()=>b8,StepInspectorPanel:()=>S8,StepModelRow:()=>C8,StepTimings:()=>kse,Stepper:()=>lX,StorageRecordsPanel:()=>r8,StreamBrokerSelector:()=>Rse,StreamDebugOverlay:()=>PH,StreamPanel:()=>A8,Switch:()=>IB,SwitchHeroCard:()=>d0,SwitchInlineControl:()=>W0,SwitchPanel:()=>NX,SystemProvider:()=>Sr,TABLE_SCROLL_MAX_H:()=>lU,TEMPERATURE_SCALES:()=>rZ,TEXT_FIELD_LABEL:()=>Tt,TEXT_HINT:()=>Ni,TEXT_METRIC:()=>te,TEXT_SECTION_LABEL:()=>Ut,TEXT_VALUE:()=>Ae,TIMEZONES:()=>zi,Tabs:()=>WB,TabsContent:()=>qB,TabsList:()=>GB,TabsTrigger:()=>KB,TapToggle:()=>CX,ThemeProvider:()=>vJ,ThermostatHeroCard:()=>K1,ThermostatInlineControl:()=>Q0,TimeSeriesChart:()=>e7,TimezoneSelector:()=>AR,Tooltip:()=>Il,TooltipContent:()=>Rl,TooltipTrigger:()=>Ll,TrainingBaseModelPicker:()=>dG,TrainingCollectionPicker:()=>EL,UNIT_PREFERENCES_NAMESPACE:()=>nZ,UiTextProvider:()=>vr,UiTrans:()=>hi,UnitPicker:()=>K5,UnitPreferencesFromServer:()=>g9,UnitPreferencesProvider:()=>dZ,VacuumHeroCard:()=>MQ,VacuumInlineControl:()=>AQ,ValueReadout:()=>cX,ValveHeroCard:()=>t$,ValveInlineControl:()=>XQ,VersionBadge:()=>Jse,ViewSwitch:()=>Y5,VodPlaybackProvider:()=>cF,WaterHeaterHeroCard:()=>f$,WaterHeaterInlineControl:()=>u$,WeatherHeroCard:()=>C$,WeatherInlineControl:()=>v$,WidgetMetricCard:()=>an,WidgetPanel:()=>$t,WidgetRegistryProvider:()=>RA,WidgetSlot:()=>YL,ZoneEditingProvider:()=>v9,acceleratorLabel:()=>Rz,acceleratorShortLabel:()=>zz,agentColumnKey:()=>f6,alignSeries:()=>dN,allDeviceTypeFilterOptions:()=>qo,anchorNow:()=>i9,applyFleetQueryDefaults:()=>CJ,applyPickerFilters:()=>d5,ariaSortForColumn:()=>cU,assignNodeColorId:()=>Vi,axisTicks:()=>RN,badgeFor:()=>jn,binaryBatteryIsLow:()=>sV,bindsToModel:()=>_B,booleanLabels:()=>N7,bucketTotals:()=>sP,buildColorByNodeId:()=>DV,buildDataRecordRows:()=>s8,buildPeerConnectionConfig:()=>aH,buildStepTreeFromSchema:()=>E8,buildSubjectPath:()=>La,buildTimeSeriesModel:()=>Q5,catalogHasDraft:()=>Zk,chartKeys:()=>S7,chartSeriesStyle:()=>QM,childEntityId:()=>S2,childListName:()=>U2,chipOverflow:()=>G8,chunk:()=>$7,classifyAddressScope:()=>xU,classifyCapability:()=>AM,classifySessionVerdict:()=>IW,clearPickerGroup:()=>W8,clusterRootModelIds:()=>aG,cn:()=>$,colorIdForNode:()=>OV,columnsForContext:()=>r4,compareSrflxMappings:()=>HU,computePageButtons:()=>GM,consumableItemLevel:()=>aM,consumableLevelBarClass:()=>tM,consumableLevelLabel:()=>nM,consumableLevelVariant:()=>eM,containerChildToRef:()=>C2,countableDevices:()=>j3,coverHighlight:()=>GZ,coverageLine:()=>_r,createAddonI18n:()=>ule,createSharedContext:()=>Wn,createTheme:()=>ple,currentAddonLanguage:()=>P9,cursorFractionFor:()=>fL,darkColors:()=>G9,dataRecordContents:()=>o8,dataRecordKey:()=>i8,dataRecordSearchText:()=>l8,dataRecordType:()=>a8,dataTableFacetGroups:()=>bG,dataTableFacets:()=>yG,decodeCustomWindow:()=>d7,decodeSeriesRef:()=>B7,defaultAxisSpec:()=>eP,defaultOfField:()=>vB,defaultSelectClusterRoots:()=>oG,defaultSingleClusterRoot:()=>uG,defaultTheme:()=>q9,defaultUiText:()=>Fn,deriveDeviceKind:()=>R2,deriveWebrtcDebugStats:()=>_H,describeDeviceSelector:()=>d6,detectPlatform:()=>us,deviceIntegrationResolver:()=>Z3,deviceListStateOf:()=>O5,deviceMatchesFilter:()=>Ck,deviceNameNouns:()=>uj,deviceOptionLabel:()=>wk,deviceRoleMeta:()=>zo,deviceRoleMetaOf:()=>Uo,deviceTypeLabel:()=>s6,deviceTypeMeta:()=>Ro,deviceTypeMetaOf:()=>Ho,devicesToOptions:()=>Tk,dockBox:()=>y8,draftFromQuery:()=>Xk,effectivePageSize:()=>P2,emptyDevicesWidens:()=>M5,emptySessionRun:()=>LW,encodeCustomWindow:()=>u7,encodeSeriesRef:()=>z7,energyBuckets:()=>O7,ensureMfHostInit:()=>AA,eventKindLabel:()=>Hk,filterDataTableRows:()=>wG,filterDeviceOptions:()=>kk,filterOccupancyLines:()=>j7,filterOptionSelectOptions:()=>qk,filterPickerDevices:()=>F8,finalizeSessionRun:()=>JW,findTimezone:()=>Ki,flattenPickerGrouping:()=>t5,flattenPickerRows:()=>V8,fleetViewOf:()=>G5,foldDeviceName:()=>ZA,formatChartBytes:()=>tP,formatChartNumber:()=>nP,formatChartValue:()=>iP,formatControlDateTime:()=>xZ,formatDeviceName:()=>ij,formatLastSeen:()=>v2,formatNumeric:()=>tZ,formatSettingValue:()=>bB,formatSpan:()=>wN,formatTimeLabel:()=>kN,freezeVerdict:()=>SH,fuzzyMatch:()=>_G,gapThresholdMs:()=>VN,getClassColor:()=>FG,getPhaseVisual:()=>qG,groupAgentColumns:()=>p6,groupChildrenByLayout:()=>O3,groupDeviceSeries:()=>x7,groupPickerDevices:()=>z8,groupPickerDevicesBy:()=>e5,hardwareLabel:()=>p4,historyPageHref:()=>H7,hubOrigin:()=>un,hubPath:()=>bt,hubUrl:()=>L,hubWsUrl:()=>cee,humanDuration:()=>mi,humanizeName:()=>d9,humidifierTint:()=>n$,iconGlyphsFailed:()=>ns,iconGlyphsLoaded:()=>rs,indexDeviceNames:()=>qA,initialScrubState:()=>sL,insertAtSelection:()=>q5,isAbsentProvider:()=>zt,isByteUnit:()=>QN,isConsumableLevelField:()=>sM,isDataTableFilterActive:()=>xG,isDeviceNameStock:()=>lj,isDrawableSubjectPath:()=>ga,isFieldVisible:()=>Sz,isGroupExpanded:()=>B8,isHistoryWindowId:()=>s7,isKeychainFieldValue:()=>Jl,isModelScopedField:()=>hB,isRedactedSecret:()=>J6,isRefusal:()=>e9,isSecretField:()=>Y6,isValueField:()=>mB,lawnMowerActivityMeta:()=>NQ,lightColors:()=>K9,linePoints:()=>w7,loadIconGlyphs:()=>ts,loadRemoteBundle:()=>IA,lucideExportName:()=>es,makeScrubBridge:()=>pL,mapRootDetectorPlacements:()=>iG,matchesCombo:()=>ds,mergeSecretForSubmit:()=>ase,metadataEntries:()=>m4,metadataString:()=>f4,mountAddonPage:()=>Ioe,mountPath:()=>pi,nextGridPosition:()=>y6,nextReconnectAction:()=>LV,nextSort:()=>q3,nextSortDirection:()=>iU,nextTableSort:()=>aU,niceMax:()=>LN,niceRange:()=>zN,nodeColorClass:()=>CV,nodeSoftBgClass:()=>TV,nodeTextColorClass:()=>wV,normalizeForSearch:()=>gG,normalizeLanguage:()=>N9,normalizeSelection:()=>V7,nounSpecFor:()=>cj,occupancyFacets:()=>A7,occupancyLines:()=>k7,offListSelections:()=>A5,openTopLayer:()=>Tn,optionSelectSearchText:()=>Kk,orphanDeviceLabel:()=>L5,overrideEntityIdFromLink:()=>w2,pageRows:()=>K8,pageSizeLabel:()=>P3,paginateRows:()=>ZH,parentDetailOf:()=>x5,parseCapKey:()=>m7,parseCombo:()=>ls,parseConsumableLevel:()=>cM,parseIceCandidate:()=>SU,parsePickerGroupBy:()=>Y8,parseProducerKey:()=>h7,parseRecordedServerMessage:()=>rL,partitionOptionSelectSelected:()=>Jk,partitionSuggested:()=>Ek,pickerFacetFilterShown:()=>g5,pickerFacetKey:()=>s5,pickerFacetOptions:()=>c5,pickerFiltersActive:()=>p5,pickerGroupKey:()=>R8,pickerHiddenSelectedCount:()=>h5,pickerLocationKey:()=>X8,pickerQueryTokens:()=>P8,pickerRowFacts:()=>n5,pickerSearchText:()=>N8,pickerZoneFilterSuspended:()=>l5,pinnedStreamChoices:()=>$W,placePopover:()=>fl,preferenceForQuantity:()=>lZ,previousWindow:()=>l7,projectSubjectPath:()=>Xi,providerIcons:()=>dle,readHistory:()=>n9,readHistoryPanels:()=>K7,readItemId:()=>s9,readStoredGroupBy:()=>w5,readUnitPreferences:()=>cZ,reduceSessionRun:()=>VW,registerAddonBundle:()=>F9,renderMarkup:()=>U9,renderTagged:()=>Bn,resetHubMountForTests:()=>Nr,resetPickerFilters:()=>m5,resolveContainerPrimary:()=>T2,resolveControlAlign:()=>d2,resolveDeviceControl:()=>u2,resolveDeviceIntegration:()=>X3,resolveDeviceLabel:()=>fj,resolveDisplayIcon:()=>is,resolveEffectiveDefaultModel:()=>Kz,resolveEffectiveStepModel:()=>Yz,resolveEventKindIcon:()=>Vk,resolveHistoryWindow:()=>c7,resolveOptionSelectSearchable:()=>Yk,resolveParentNames:()=>b5,resolvePrimaryChild:()=>x2,resolveSelectedDevices:()=>k5,resolveSensorDisplay:()=>hZ,resolveStepDefaultModel:()=>Gz,retrainReviewBadgeLook:()=>J5,roiTooLarge:()=>ree,rootSourceState:()=>Xz,routerBasename:()=>ti,runningDurationSince:()=>pV,runningStatusParts:()=>mV,sameDeviceName:()=>QA,sameLocationSuggestions:()=>Ok,scrubReducer:()=>cL,searchSteps:()=>T8,secretDisplayValue:()=>ise,secretSubmitValue:()=>Yl,segmentsFromChanges:()=>vN,selectPickerGroup:()=>U8,selectedDeviceOptions:()=>Ak,serializeRecordedCommand:()=>$I,seriesRefId:()=>R7,settingsModelIdFor:()=>OB,sharedGapSpans:()=>pN,shiftPoints:()=>T7,shouldCommit:()=>dL,shouldEmit:()=>lL,shouldShowAddNewFooter:()=>Qk,shouldShowUseQueryRow:()=>$k,shouldUseSingleNode:()=>m6,showsNoCamerasHint:()=>j5,sortRows:()=>J3,sortRowsByColumn:()=>sU,stackBuckets:()=>oP,stackSeries:()=>gN,stateAt:()=>bN,stateRow:()=>D7,stateStyle:()=>t7,statusIcons:()=>fle,statusLine:()=>lee,stepFieldDomId:()=>SB,stepHasModelForFormat:()=>Jz,stepLocalFields:()=>DB,stepModelOptions:()=>qz,stripDeviceParentPrefix:()=>$A,stripParentNamePrefix:()=>H2,subjectPathSampleFromBox:()=>Oa,subjectPathSvgPoints:()=>Ba,summarizeHubCandidates:()=>kU,swatchFillClass:()=>tN,swatchLineClass:()=>nN,tabForSelector:()=>c6,themeToCss:()=>vle,themeToRootCss:()=>yle,timeInState:()=>yN,toStationaryOverlayBox:()=>E9,toggleDataTableFacet:()=>CG,toggleDataTableGroupFacet:()=>SG,togglePickerDevice:()=>H8,togglePickerKey:()=>f5,trainingRefusalText:()=>OL,translateAddonKey:()=>B9,trpc:()=>X,typeLabel:()=>_5,unitAxes:()=>Z5,useAccessoriesGetStatus:()=>eu,useAccessoriesSetChildHidden:()=>$l,useAccountUnitPreferences:()=>h9,useActionSourceListActions:()=>fu,useActionSourceRunAction:()=>pu,useActionSourceStopAction:()=>mu,useActionsCreate:()=>ou,useActionsDelete:()=>cu,useActionsGet:()=>nu,useActionsGetLinks:()=>uu,useActionsGetTraces:()=>au,useActionsList:()=>tu,useActionsListForCamera:()=>lu,useActionsRun:()=>ru,useActionsSetLinks:()=>du,useActionsStop:()=>iu,useActionsUpdate:()=>su,useAddonPagesListPages:()=>hu,useAddonSettingsGetDeviceSettings:()=>ed,useAddonSettingsGetGlobalSettings:()=>Zu,useAddonSettingsGetIntegrationSettings:()=>$u,useAddonSettingsUpdateDeviceSettings:()=>td,useAddonSettingsUpdateGlobalSettings:()=>Qu,useAddonT:()=>V9,useAddonWidgetsListWidgets:()=>nd,useAddonsApplyAutoUpdateToAll:()=>Wu,useAddonsCancelJob:()=>Yu,useAddonsCustom:()=>Gu,useAddonsForceRefresh:()=>Au,useAddonsGetAddonAutoUpdate:()=>Hu,useAddonsGetAutoUpdateSettings:()=>Bu,useAddonsGetJob:()=>qu,useAddonsGetLastRestart:()=>Mu,useAddonsGetLogs:()=>_u,useAddonsGetPackageDocs:()=>Lu,useAddonsGetVersions:()=>Iu,useAddonsInstallFromWorkspace:()=>bu,useAddonsInstallPackage:()=>yu,useAddonsIsWorkspaceAvailable:()=>xu,useAddonsList:()=>gu,useAddonsListCapabilityProviders:()=>Pu,useAddonsListFrameworkPackages:()=>Nu,useAddonsListInstallations:()=>wu,useAddonsListJobs:()=>Ju,useAddonsListPackages:()=>vu,useAddonsListUpdates:()=>Du,useAddonsListWorkspacePackages:()=>Su,useAddonsOnAddonLogs:()=>Xu,useAddonsReloadPackages:()=>Tu,useAddonsRestartAddon:()=>Ru,useAddonsRestartServer:()=>ju,useAddonsRetryLoad:()=>zu,useAddonsRollbackPackage:()=>ku,useAddonsSearchAvailable:()=>Eu,useAddonsSetAddonAutoUpdate:()=>Uu,useAddonsSetAutoUpdateSettings:()=>Vu,useAddonsSetCapabilityProviderEnabled:()=>Fu,useAddonsStartJob:()=>Ku,useAddonsUninstallPackage:()=>Cu,useAddonsUpdatePackage:()=>Ou,useAirQualitySensorGetStatus:()=>rd,useAlarmPanelArm:()=>id,useAlarmPanelDisarm:()=>ad,useAlarmPanelGetStatus:()=>sd,useAlarmPanelTrigger:()=>od,useAlert:()=>zr,useAlertsDismiss:()=>md,useAlertsEmit:()=>cd,useAlertsGetUnreadCount:()=>dd,useAlertsList:()=>ud,useAlertsMarkAllRead:()=>pd,useAlertsMarkRead:()=>fd,useAlertsUpdate:()=>ld,useAllWidgets:()=>cae,useAmbientLightSensorGetStatus:()=>hd,useAudioAnalysisApplyDeviceSettingsPatch:()=>Vee,useAudioAnalysisGetDeviceLiveContribution:()=>Bee,useAudioAnalysisGetDeviceSettingsContribution:()=>_d,useAudioAnalysisResolveDeviceSettings:()=>gd,useAudioAnalyzerAnalyseChunk:()=>Hee,useAudioAnalyzerAttachDevice:()=>Wee,useAudioAnalyzerClassify:()=>Uee,useAudioAnalyzerDetachDevice:()=>Gee,useAudioAnalyzerDispose:()=>qee,useAudioAnalyzerIsReady:()=>Kee,useAudioAnalyzerReprobeAudioEngine:()=>vd,useAudioCodecCanHandle:()=>Yee,useAudioCodecCloseSession:()=>Qee,useAudioCodecCreateDecodeSession:()=>Xee,useAudioCodecCreateEncodeSession:()=>Zee,useAudioCodecFlushEncode:()=>rte,useAudioCodecListActiveSessions:()=>ite,useAudioCodecListSupportedCodecs:()=>Jee,useAudioCodecPullEncoded:()=>nte,useAudioCodecPullPcm:()=>ete,useAudioCodecPushEncodedFrame:()=>$ee,useAudioCodecPushPcm:()=>tte,useAudioMetricsGetCurrentSnapshot:()=>yd,useAudioMetricsGetHistory:()=>ate,useAutomationControlDisable:()=>ste,useAutomationControlEnable:()=>ote,useAutomationControlGetStatus:()=>lte,useAutomationControlTrigger:()=>cte,useBackupCancel:()=>Cd,useBackupCheckBackupKey:()=>fte,useBackupDelete:()=>kd,useBackupDeleteSchedule:()=>Fd,useBackupDisableEncryption:()=>Od,useBackupGetEncryption:()=>Ed,useBackupGetEntries:()=>wd,useBackupList:()=>ute,useBackupListArchives:()=>Ad,useBackupListAvailableDatabases:()=>Nd,useBackupListDestinations:()=>bd,useBackupListLocations:()=>dte,useBackupListRuns:()=>Sd,useBackupListSchedules:()=>Md,useBackupPreviewSchedule:()=>jd,useBackupRestore:()=>Td,useBackupSetupEncryption:()=>Dd,useBackupTrigger:()=>xd,useBackupUpsertDestinationPolicy:()=>pte,useBackupUpsertSchedule:()=>Pd,useBatteryGetStatus:()=>hte,useBatteryWakeForStream:()=>mte,useBinaryGetStatus:()=>gte,useBrightnessGetStatus:()=>vte,useBrightnessSetBrightness:()=>_te,useBrokerAdd:()=>Rd,useBrokerGet:()=>yte,useBrokerGetBrokerConfig:()=>bte,useBrokerGetSettings:()=>Vd,useBrokerGetSettingsSchema:()=>Ud,useBrokerGetState:()=>Kd,useBrokerGetStatus:()=>qd,useBrokerList:()=>Id,useBrokerListProviders:()=>Ld,useBrokerPublish:()=>Gd,useBrokerRemove:()=>zd,useBrokerSetSettings:()=>Hd,useBrokerSubscribe:()=>xte,useBrokerTestConnection:()=>Bd,useBrokerTestSettings:()=>Wd,useBrokerUnsubscribe:()=>Ste,useButtonPress:()=>Cte,useCalendarsGetPreferences:()=>Xd,useCalendarsListCalendars:()=>Jd,useCalendarsListEvents:()=>Yd,useCalendarsSetCalendarPreference:()=>Zd,useCameraCredentialsGetCredentials:()=>wte,useCameraCredentialsGetStatus:()=>Tte,useCameraGridLayoutApplyDeviceSettingsPatch:()=>Ate,useCameraGridLayoutGetDeviceLiveContribution:()=>kte,useCameraGridLayoutGetDeviceSettingsContribution:()=>Ote,useCameraGridLayoutGetLayout:()=>Ete,useCameraGridLayoutSaveLayout:()=>Dte,useCameraPipelineConfigApplyDeviceSettingsPatch:()=>Nte,useCameraPipelineConfigGetDeviceLiveContribution:()=>Mte,useCameraPipelineConfigGetDeviceSettingsContribution:()=>jte,useCameraStreamsGetBrokerStreams:()=>Fte,useCameraStreamsGetCameraStreams:()=>Pte,useCameraStreamsGetProfileRtspEntries:()=>Ite,useCameraStreamsGetRtspEntries:()=>Qd,useCameraStreamsPickStream:()=>Lte,useCapabilityPresence:()=>jM,useCarbonMonoxideGetStatus:()=>Rte,useClassPainter:()=>BG,useClimateControlGetStatus:()=>qte,useClimateControlSetFanMode:()=>Bte,useClimateControlSetMode:()=>zte,useClimateControlSetPreset:()=>Vte,useClimateControlSetSwingHorizontal:()=>Kte,useClimateControlSetSwingVertical:()=>Gte,useClimateControlSetTarget:()=>Hte,useClimateControlSetTargetHumidity:()=>Wte,useClimateControlSetTargetRange:()=>Ute,useClusterNodes:()=>Ao,useClusterTopology:()=>ko,useColorGetStatus:()=>Yte,useColorSetColor:()=>Jte,useConfirm:()=>si,useConnectionTestDescribeTest:()=>Zte,useConnectionTestTestSettings:()=>Xte,useConnectivityGetStatus:()=>Qte,useConsumablesGetStatus:()=>ene,useConsumablesReset:()=>$te,useContactGetStatus:()=>tne,useContainerChildren:()=>D4,useControlGetStatus:()=>rne,useControlSetValue:()=>nne,useCoreBlocksCompile:()=>of,useCoreBlocksCreate:()=>ef,useCoreBlocksCreateComposition:()=>df,useCoreBlocksDelete:()=>nf,useCoreBlocksGet:()=>$d,useCoreBlocksGetAutomationRunState:()=>yf,useCoreBlocksGetBlockSettings:()=>sf,useCoreBlocksGetComposition:()=>pf,useCoreBlocksGetCustomization:()=>hf,useCoreBlocksGetTraces:()=>bf,useCoreBlocksGetTypeDefs:()=>uf,useCoreBlocksList:()=>ine,useCoreBlocksListComposableCaps:()=>gf,useCoreBlocksListCompositions:()=>mf,useCoreBlocksMigrateRawSecrets:()=>lf,useCoreBlocksReportAutomationRun:()=>vf,useCoreBlocksRestart:()=>af,useCoreBlocksSetEnabled:()=>rf,useCoreBlocksUpdate:()=>tf,useCoreBlocksUpdateBlockSettings:()=>cf,useCoreBlocksUpdateComposition:()=>ff,useCoreBlocksValidateComposition:()=>_f,useCoverClose:()=>Sf,useCoverGetStatus:()=>Ef,useCoverOpen:()=>xf,useCoverSetPosition:()=>wf,useCoverSetTiltPosition:()=>Tf,useCoverStop:()=>Cf,useCustomFieldRenderer:()=>hA,useDataTableFilter:()=>kG,useDayNightGetOptions:()=>Df,useDayNightGetStatus:()=>kf,useDayNightSetSettings:()=>Of,useDebouncedString:()=>LJ,useDecoderGetInfo:()=>Af,useDecoderReprobeHwaccel:()=>jf,useDetectionPipelineApplyDeviceSettingsPatch:()=>Pf,useDetectionPipelineGetDeviceLiveContribution:()=>Nf,useDetectionPipelineGetDeviceSettingsContribution:()=>Mf,useDevShell:()=>AJ,useDevice:()=>_j,useDeviceAdminLink:()=>b4,useDeviceAdminLinkGetAdminLink:()=>Ff,useDeviceAdoptionAdopt:()=>Bf,useDeviceAdoptionGetCandidate:()=>Rf,useDeviceAdoptionGetStatus:()=>Uf,useDeviceAdoptionListCandidateFilters:()=>If,useDeviceAdoptionListCandidates:()=>Lf,useDeviceAdoptionRefresh:()=>zf,useDeviceAdoptionRelease:()=>Vf,useDeviceAdoptionResync:()=>Hf,useDeviceAutotrack:()=>UA,useDeviceBattery:()=>l3,useDeviceCapSlice:()=>y9,useDeviceCapability:()=>Kj,useDeviceCredentialsDeleteDeviceCredential:()=>une,useDeviceCredentialsGetDeviceCaStatus:()=>dne,useDeviceCredentialsGetDeviceCertificateSettings:()=>cne,useDeviceCredentialsListDeviceCredentials:()=>ane,useDeviceCredentialsRenameDeviceCredential:()=>fne,useDeviceCredentialsRevokeDeviceCredential:()=>sne,useDeviceCredentialsSetDeviceCertificateSettings:()=>lne,useDeviceCredentialsStartEnrollment:()=>one,useDeviceDetections:()=>w9,useDeviceDiscoveryAdoptDevice:()=>Kf,useDeviceDiscoveryGetStatus:()=>Jf,useDeviceDiscoveryListDiscovered:()=>Wf,useDeviceDiscoveryRefreshDiscovery:()=>Gf,useDeviceDiscoveryReleaseDevice:()=>qf,useDeviceExportApplyDeviceSettingsPatch:()=>np,useDeviceExportExposeDevice:()=>Qf,useDeviceExportGetDeviceLiveContribution:()=>tp,useDeviceExportGetDeviceSettingsContribution:()=>ep,useDeviceExportGetStatus:()=>Yf,useDeviceExportListExposedDevices:()=>Zf,useDeviceExportListSupportedDeviceKinds:()=>Xf,useDeviceExportUnexposeDevice:()=>$f,useDeviceExtensionListCandidates:()=>ap,useDeviceExtensionListSlots:()=>ip,useDeviceExtensionListSources:()=>rp,useDeviceExtensionSetSlot:()=>op,useDeviceHistoryDeclareSeries:()=>fp,useDeviceHistoryDeleteOrphanSeries:()=>yp,useDeviceHistoryGetDeviceEnabled:()=>hp,useDeviceHistoryGetStatus:()=>_p,useDeviceHistoryListNodeSeries:()=>cp,useDeviceHistoryListOrphanSeries:()=>vp,useDeviceHistoryListSeries:()=>sp,useDeviceHistoryQuery:()=>lp,useDeviceHistoryQueryMany:()=>dp,useDeviceHistoryQueryNode:()=>up,useDeviceHistoryRecord:()=>pp,useDeviceHistoryRecordBuckets:()=>mp,useDeviceHistorySetDeviceEnabled:()=>gp,useDeviceId:()=>SA,useDeviceLabel:()=>pj,useDeviceLabelById:()=>mj,useDeviceListPageSize:()=>L2,useDeviceManagerAddLocation:()=>Up,useDeviceManagerAdoptDevice:()=>wm,useDeviceManagerAdoptionAdopt:()=>jm,useDeviceManagerAdoptionCancelJob:()=>Fm,useDeviceManagerAdoptionListCandidateFilters:()=>Om,useDeviceManagerAdoptionListCandidates:()=>km,useDeviceManagerAdoptionListJobs:()=>Pm,useDeviceManagerAdoptionRefresh:()=>Am,useDeviceManagerAdoptionRelease:()=>Mm,useDeviceManagerAdoptionResync:()=>Im,useDeviceManagerAdoptionStartJob:()=>Nm,useDeviceManagerAllocateDeviceId:()=>bp,useDeviceManagerApplyInitialMeta:()=>Bp,useDeviceManagerCleanupDeletedDevicesData:()=>cm,useDeviceManagerCreateDevice:()=>Em,useDeviceManagerDisable:()=>om,useDeviceManagerDiscoverAllProviders:()=>Rm,useDeviceManagerDiscoverDevices:()=>Cm,useDeviceManagerDiscoverProvider:()=>zm,useDeviceManagerDiscoveryProviders:()=>Lm,useDeviceManagerEnable:()=>am,useDeviceManagerGetAllBindings:()=>dm,useDeviceManagerGetBindings:()=>lm,useDeviceManagerGetBindingsBatch:()=>um,useDeviceManagerGetChildren:()=>im,useDeviceManagerGetChildrenBatch:()=>mne,useDeviceManagerGetConfigSchema:()=>vne,useDeviceManagerGetCreationSchema:()=>Tm,useDeviceManagerGetDevice:()=>rm,useDeviceManagerGetDeviceAggregate:()=>ym,useDeviceManagerGetDeviceLiveInfoAggregate:()=>vm,useDeviceManagerGetDeviceSettingsAggregate:()=>_m,useDeviceManagerGetDeviceStatusAggregate:()=>Um,useDeviceManagerGetDeviceStatusAggregateBatch:()=>Wm,useDeviceManagerGetLinkedDevices:()=>hne,useDeviceManagerGetLinkedDevicesBatch:()=>gne,useDeviceManagerGetRoleDisplayDefaults:()=>Ip,useDeviceManagerGetSettingsSchema:()=>yne,useDeviceManagerGetStreamProfileMap:()=>Cne,useDeviceManagerGetStreamSources:()=>_ne,useDeviceManagerGetWireableFields:()=>Rp,useDeviceManagerGetWrapperActivation:()=>mm,useDeviceManagerListAll:()=>nm,useDeviceManagerListBindableCapsForDeviceType:()=>gm,useDeviceManagerListDeletedSince:()=>xne,useDeviceManagerListDeviceIdsByCaps:()=>fm,useDeviceManagerListLocationDescriptions:()=>Jp,useDeviceManagerListLocationIcons:()=>Kp,useDeviceManagerListLocations:()=>Hp,useDeviceManagerListPersistedByAddon:()=>tm,useDeviceManagerListSiteZones:()=>Xp,useDeviceManagerListWrappersForCap:()=>hm,useDeviceManagerLoadConfig:()=>Tp,useDeviceManagerLoadMeta:()=>Dp,useDeviceManagerLoadRuntimeState:()=>Ep,useDeviceManagerMigrateDevice:()=>xp,useDeviceManagerPersistConfig:()=>wp,useDeviceManagerProbeStreams:()=>Tne,useDeviceManagerProviderCreationType:()=>Bm,useDeviceManagerProviderDiscoveryParamsSchema:()=>Vm,useDeviceManagerRegisterDevice:()=>Sp,useDeviceManagerRemove:()=>sm,useDeviceManagerRemoveByIntegration:()=>Sne,useDeviceManagerRemoveDevice:()=>Cp,useDeviceManagerRemoveLocation:()=>Wp,useDeviceManagerRemoveSiteZone:()=>Qp,useDeviceManagerRenameLocation:()=>Gp,useDeviceManagerRenameSiteZone:()=>$p,useDeviceManagerRunDeviceAction:()=>bm,useDeviceManagerSetChildLayout:()=>Pp,useDeviceManagerSetDisabled:()=>pne,useDeviceManagerSetDisplay:()=>Fp,useDeviceManagerSetIntegrationId:()=>jp,useDeviceManagerSetLinkDeviceId:()=>Mp,useDeviceManagerSetLocation:()=>kp,useDeviceManagerSetLocationDescription:()=>Yp,useDeviceManagerSetLocationIcon:()=>qp,useDeviceManagerSetLocationZone:()=>em,useDeviceManagerSetMetadata:()=>Vp,useDeviceManagerSetName:()=>Op,useDeviceManagerSetPrimaryChildEntityId:()=>Np,useDeviceManagerSetRole:()=>zp,useDeviceManagerSetRoleDisplayDefaults:()=>Lp,useDeviceManagerSetSiteZone:()=>Zp,useDeviceManagerSetStreamProfileMap:()=>wne,useDeviceManagerSetType:()=>Ap,useDeviceManagerSetWrapperActive:()=>pm,useDeviceManagerTestCreationField:()=>Dm,useDeviceManagerTestField:()=>Hm,useDeviceManagerUpdateConfig:()=>bne,useDeviceManagerUpdateDeviceField:()=>xm,useDeviceManagerUpdateDeviceFieldsBatch:()=>Sm,useDeviceNameIndex:()=>KA,useDeviceNameNouns:()=>dj,useDeviceNetworkLink:()=>u3,useDeviceOpsGetConfigEntries:()=>Km,useDeviceOpsGetRawState:()=>Zm,useDeviceOpsGetSettingsSchema:()=>Xm,useDeviceOpsGetStreamSources:()=>Gm,useDeviceOpsRemoveDevice:()=>Ym,useDeviceOpsRunAction:()=>Jm,useDeviceOpsSetConfig:()=>qm,useDeviceProviderAdoptDiscoveredDevice:()=>sh,useDeviceProviderCreateDevice:()=>uh,useDeviceProviderDiscoverDevices:()=>ih,useDeviceProviderGetChildCreationSchema:()=>lh,useDeviceProviderGetDevices:()=>th,useDeviceProviderGetDiscoveryParamsSchema:()=>ah,useDeviceProviderGetManualCreationType:()=>oh,useDeviceProviderGetStatus:()=>eh,useDeviceProviderReloadDevice:()=>nh,useDeviceProviderStart:()=>Qm,useDeviceProviderStop:()=>$m,useDeviceProviderSupportsDiscovery:()=>rh,useDeviceProviderSupportsManualCreation:()=>ch,useDeviceProviderTestCreationField:()=>dh,useDeviceProxy:()=>Ge,useDeviceQuickDetailOpen:()=>x3,useDeviceSeriesList:()=>o9,useDeviceSnapshot:()=>CA,useDeviceSnapshotImage:()=>Te,useDeviceState:()=>Gr,useDeviceStateClaimFields:()=>gh,useDeviceStateGetAllSnapshots:()=>mh,useDeviceStateGetCapSlice:()=>ph,useDeviceStateGetNativeCapSlice:()=>bh,useDeviceStateGetSnapshot:()=>fh,useDeviceStateListClaims:()=>yh,useDeviceStatePatchOwnedFields:()=>_h,useDeviceStateReleaseClaim:()=>vh,useDeviceStateSetCapSlice:()=>hh,useDeviceStateSlice:()=>Be,useDeviceStatusGetStatus:()=>xh,useDeviceWebrtc:()=>TW,useDevices:()=>gj,useDishwasherGetOptions:()=>Fh,useDishwasherGetStatus:()=>Ih,useDishwasherPause:()=>Ch,useDishwasherResume:()=>wh,useDishwasherSetChildLock:()=>Nh,useDishwasherSetExtraDry:()=>Ah,useDishwasherSetHalfLoad:()=>Oh,useDishwasherSetHygienePlus:()=>kh,useDishwasherSetIntensiveZone:()=>jh,useDishwasherSetOption:()=>Ph,useDishwasherSetPower:()=>Dh,useDishwasherSetProgram:()=>Eh,useDishwasherSetVarioSpeedPlus:()=>Mh,useDishwasherStart:()=>Sh,useDishwasherStop:()=>Th,useDisplayIconResolver:()=>cs,useDisplayPaletteGetPalette:()=>Lh,useDisplayPaletteListPresets:()=>Rh,useDisplayPaletteSetPalette:()=>zh,useDisplayPaletteView:()=>zG,useDoorbellEvents:()=>D9,useDoorbellGetStatus:()=>Bh,useEnumSensorGetStatus:()=>Vh,useEventEmitterGetStatus:()=>Hh,useEventInvalidation:()=>O9,useEventStreamLatest:()=>Do,useEventStreamMap:()=>Oo,useFaceGalleryAssignFace:()=>$h,useFaceGalleryAssignFaces:()=>ng,useFaceGalleryAuditIdentitySamples:()=>Jh,useFaceGalleryCreateIdentity:()=>Wh,useFaceGalleryDeleteFace:()=>tg,useFaceGalleryDeleteIdentity:()=>Kh,useFaceGalleryGetFaceByTrack:()=>Zh,useFaceGalleryGetFaceMedia:()=>Qh,useFaceGalleryListIdentities:()=>Uh,useFaceGalleryListIdentitySamples:()=>qh,useFaceGalleryListRecentFaces:()=>Xh,useFaceGalleryRemoveSample:()=>Yh,useFaceGalleryRenameIdentity:()=>Gh,useFaceGallerySuggestFaceClusters:()=>ig,useFaceGalleryUnassignFace:()=>eg,useFaceGalleryUnassignFaces:()=>rg,useFanControlGetStatus:()=>lg,useFanControlSetDirection:()=>sg,useFanControlSetOscillating:()=>cg,useFanControlSetPercentage:()=>ag,useFanControlSetPreset:()=>og,useFeatureProbeGetStatus:()=>ug,useFloodGetStatus:()=>dg,useGasGetStatus:()=>fg,useGroupActiveGetStatus:()=>pg,useGroupCommandsGetStatus:()=>mg,useGroupStatusGetStatus:()=>hg,useHeatingValveGetStatus:()=>gg,useHistoryPanels:()=>u9,useHistoryReader:()=>a9,useHistoryReads:()=>c9,useHotkey:()=>bs,useHumidifierGetStatus:()=>bg,useHumidifierSetMode:()=>yg,useHumidifierSetOn:()=>_g,useHumidifierSetTargetHumidity:()=>vg,useHumiditySensorGetStatus:()=>xg,useIconGlyphsVersion:()=>ss,useImageGetStatus:()=>Sg,useImageSettingsGetOptions:()=>Cg,useImageSettingsGetStatus:()=>Tg,useImageSettingsSetSettings:()=>wg,useIntegrationsCreate:()=>kg,useIntegrationsDelete:()=>jg,useIntegrationsGet:()=>Dg,useIntegrationsGetAvailableTypes:()=>Pg,useIntegrationsGetByAddonId:()=>Og,useIntegrationsGetSettings:()=>Mg,useIntegrationsList:()=>Eg,useIntegrationsSetSettings:()=>Ng,useIntegrationsTestConnection:()=>Fg,useIntegrationsUpdate:()=>Ag,useIntercomEndTalkSession:()=>Vg,useIntercomGetStatus:()=>Hg,useIntercomHandleAnswer:()=>Lg,useIntercomPushTalkAudio:()=>Bg,useIntercomStartSession:()=>Ig,useIntercomStartTalkSession:()=>zg,useIntercomStopSession:()=>Rg,useIrTransmitterGetInfo:()=>Wg,useIrTransmitterSend:()=>Ug,useIsMidWidth:()=>al,useIsMobile:()=>il,useItemFormUrl:()=>V6,useKeychainAdminAcknowledgeReset:()=>r_,useKeychainAdminDeleteOrphans:()=>Zg,useKeychainAdminDownloadRecoveryKey:()=>e_,useKeychainAdminImportSecret:()=>Xg,useKeychainAdminListAudit:()=>qg,useKeychainAdminListSecrets:()=>Kg,useKeychainAdminPurgeRetiredKeys:()=>$g,useKeychainAdminResetKeychain:()=>t_,useKeychainAdminResetReport:()=>n_,useKeychainAdminReveal:()=>Jg,useKeychainAdminRotateMasterKey:()=>Qg,useKeychainAdminSetSystemSecret:()=>Yg,useKeychainAdminStatus:()=>Gg,useLawnMowerControlDock:()=>o_,useLawnMowerControlGetStatus:()=>s_,useLawnMowerControlPause:()=>a_,useLawnMowerControlStartMowing:()=>i_,useLiveBuffer:()=>IJ,useLiveEvent:()=>To,useLlmCancel:()=>u_,useLlmDeleteModel:()=>Ene,useLlmDeleteProfile:()=>h_,useLlmGenerate:()=>c_,useLlmGenerateVision:()=>l_,useLlmGetDefaults:()=>v_,useLlmGetRuntimeStatus:()=>Dne,useLlmGetUsage:()=>b_,useLlmInstallModel:()=>T_,useLlmListModelCatalog:()=>x_,useLlmListModels:()=>__,useLlmListNodeModels:()=>C_,useLlmListProfileKinds:()=>d_,useLlmListProfiles:()=>f_,useLlmListRuntimeNodes:()=>S_,useLlmMigrateRawSecrets:()=>m_,useLlmResolveModelRef:()=>w_,useLlmSetDefault:()=>y_,useLlmStartRuntime:()=>One,useLlmStopRuntime:()=>kne,useLlmTestProfile:()=>g_,useLlmUpsertProfile:()=>p_,useLocalNetworkAddCustomAddress:()=>k_,useLocalNetworkDownloadCa:()=>Ine,useLocalNetworkGetAddresses:()=>O_,useLocalNetworkGetAllowedAddresses:()=>M_,useLocalNetworkGetConnectionEndpoints:()=>D_,useLocalNetworkGetHubAddresses:()=>Fne,useLocalNetworkGetNotificationEndpoint:()=>jne,useLocalNetworkGetPreferred:()=>Ane,useLocalNetworkGetTlsStatus:()=>F_,useLocalNetworkGetViewerEndpoints:()=>Nne,useLocalNetworkList:()=>E_,useLocalNetworkRegenerateCertificate:()=>I_,useLocalNetworkRemoveCustomAddress:()=>A_,useLocalNetworkResetAllowlistToBestMatch:()=>P_,useLocalNetworkRevertToGeneratedCertificate:()=>z_,useLocalNetworkSetAddressRole:()=>j_,useLocalNetworkSetAllowedAddresses:()=>N_,useLocalNetworkSetNotificationEndpoint:()=>Mne,useLocalNetworkSetViewerEndpoints:()=>Pne,useLocalNetworkUploadCertificate:()=>L_,useLocalNetworkUseStoredUploadedCertificate:()=>R_,useLockControlGetStatus:()=>Rne,useLockControlLock:()=>B_,useLockControlOpen:()=>Lne,useLockControlUnlock:()=>V_,useMediaPlayerGetStatus:()=>Zne,useMediaPlayerNext:()=>Hne,useMediaPlayerPause:()=>Bne,useMediaPlayerPlay:()=>zne,useMediaPlayerPlayMedia:()=>Xne,useMediaPlayerPrevious:()=>Une,useMediaPlayerSeek:()=>Wne,useMediaPlayerSelectSource:()=>Yne,useMediaPlayerSetMute:()=>Kne,useMediaPlayerSetRepeat:()=>Jne,useMediaPlayerSetShuffle:()=>qne,useMediaPlayerSetVolume:()=>Gne,useMediaPlayerStop:()=>Vne,useMeshNetworkGetStatus:()=>H_,useMeshNetworkJoin:()=>Qne,useMeshNetworkLeave:()=>W_,useMeshNetworkListPeers:()=>K_,useMeshNetworkLogout:()=>G_,useMeshNetworkStartLogin:()=>U_,useMeshNetworkTestConnection:()=>$ne,useMeterGetStatus:()=>ere,useMetricsProviderCollectSnapshot:()=>tre,useMetricsProviderGetAddonStats:()=>lre,useMetricsProviderGetCached:()=>nre,useMetricsProviderGetCpuTemperature:()=>ore,useMetricsProviderGetCurrent:()=>rre,useMetricsProviderGetDiskSpace:()=>ire,useMetricsProviderGetGpuInfo:()=>are,useMetricsProviderGetLoadSeries:()=>J_,useMetricsProviderGetProcessStats:()=>sre,useMetricsProviderListAddonInstances:()=>cre,useMetricsProviderListNodeProcesses:()=>q_,useMotionDetectionAnalyze:()=>fre,useMotionDetectionApplyDeviceSettingsPatch:()=>_re,useMotionDetectionGetDeviceLiveContribution:()=>gre,useMotionDetectionGetDeviceSettingsContribution:()=>hre,useMotionDetectionRemoveCamera:()=>pre,useMotionDetectionReset:()=>mre,useMotionGetStatus:()=>dre,useMotionIsDetected:()=>ure,useMotionTriggerGetStatus:()=>yre,useMotionTriggerSetMotionTrigger:()=>vre,useMotionZonesGetOptions:()=>bre,useMotionZonesGetStatus:()=>Sre,useMotionZonesSetZone:()=>xre,useMqttBrokerAddBroker:()=>Tre,useMqttBrokerGetBrokerConfig:()=>wre,useMqttBrokerGetStatus:()=>X_,useMqttBrokerListBrokers:()=>Cre,useMqttBrokerRemoveBroker:()=>Ere,useMqttBrokerStartEmbeddedBroker:()=>Ore,useMqttBrokerStopEmbeddedBroker:()=>Y_,useMqttBrokerTestConnection:()=>Dre,useNativeObjectDetectionGetOptions:()=>Z_,useNativeObjectDetectionGetStatus:()=>ev,useNativeObjectDetectionSetEnabled:()=>$_,useNativeObjectDetectionSetSettings:()=>Q_,useNavigation:()=>vI,useNavigationGetFeatures:()=>uv,useNavigationGetStatus:()=>dv,useNavigationGoToPoint:()=>rv,useNavigationListActions:()=>iv,useNavigationMove:()=>tv,useNavigationPlaySound:()=>ov,useNavigationRunAction:()=>av,useNavigationSetLightLevel:()=>lv,useNavigationSetLightMode:()=>cv,useNavigationSetLightOn:()=>sv,useNavigationStop:()=>nv,useNetworkAccessGetEndpoint:()=>mv,useNetworkAccessGetStatus:()=>hv,useNetworkAccessListEndpoints:()=>gv,useNetworkAccessStart:()=>fv,useNetworkAccessStop:()=>pv,useNetworkLinkGetStatus:()=>_v,useNetworkQualityGetAllStats:()=>yv,useNetworkQualityGetDeviceStats:()=>vv,useNetworkQualityReportClientStats:()=>bv,useNodesClusterAddonStatus:()=>Av,useNodesDeployAddon:()=>Cv,useNodesDirectory:()=>Sv,useNodesExecuteQuery:()=>Pv,useNodesGetCapUsageGraph:()=>jv,useNodesGetNodeAddons:()=>Mv,useNodesRenameNode:()=>kv,useNodesRestartAddon:()=>Tv,useNodesRestartNode:()=>Dv,useNodesRestartProcess:()=>Ev,useNodesSetProcessLogLevel:()=>Nv,useNodesShutdownNode:()=>Ov,useNodesTopology:()=>xv,useNodesUndeployAddon:()=>wv,useNotificationOutputDeleteTarget:()=>Uv,useNotificationOutputDiscoverTargets:()=>Rv,useNotificationOutputGetTarget:()=>Lv,useNotificationOutputListTargetKinds:()=>Fv,useNotificationOutputListTargets:()=>Iv,useNotificationOutputProbeTargetConfig:()=>zv,useNotificationOutputSend:()=>Bv,useNotificationOutputSetTargetEnabled:()=>Wv,useNotificationOutputTestTarget:()=>Vv,useNotificationOutputUpsertTarget:()=>Hv,useNotificationRulesActivateAlarmProfile:()=>xy,useNotificationRulesCancelSnooze:()=>hy,useNotificationRulesCreateAlarmProfile:()=>vy,useNotificationRulesCreateRule:()=>qv,useNotificationRulesCreateSequence:()=>$v,useNotificationRulesCreateSnooze:()=>my,useNotificationRulesDeleteAlarmProfile:()=>by,useNotificationRulesDeleteRule:()=>Yv,useNotificationRulesDeleteSequence:()=>ty,useNotificationRulesGetAlarmConfig:()=>gy,useNotificationRulesGetAlarmSensors:()=>Sy,useNotificationRulesGetClipRetentionAsks:()=>ny,useNotificationRulesGetConditionCatalog:()=>sy,useNotificationRulesGetHistory:()=>uy,useNotificationRulesGetRule:()=>Kv,useNotificationRulesGetRuleLastRuns:()=>dy,useNotificationRulesGetSequence:()=>Qv,useNotificationRulesGetTemplateCatalog:()=>cy,useNotificationRulesListDeviceMutes:()=>ry,useNotificationRulesListRules:()=>Gv,useNotificationRulesListSequences:()=>Zv,useNotificationRulesListSnoozes:()=>py,useNotificationRulesPreviewStateSummary:()=>oy,useNotificationRulesPreviewTemplate:()=>ly,useNotificationRulesRenameAlarmProfile:()=>yy,useNotificationRulesResolveArtifactUrl:()=>fy,useNotificationRulesSetAlarmConfig:()=>_y,useNotificationRulesSetDeviceMuted:()=>iy,useNotificationRulesSetRuleEnabled:()=>Xv,useNotificationRulesTestRule:()=>ay,useNotificationRulesUpdateRule:()=>Jv,useNotificationRulesUpdateSequence:()=>ey,useNotifierCancel:()=>wy,useNotifierGetStatus:()=>Ty,useNotifierSend:()=>Cy,useNumericSensorGetStatus:()=>Ey,useOidcConnectionsConnectionFormSchema:()=>Dy,useOidcConnectionsCreateConnection:()=>ky,useOidcConnectionsDeleteConnection:()=>jy,useOidcConnectionsListConnections:()=>Oy,useOidcConnectionsUpdateConnection:()=>Ay,useOptimisticSlice:()=>AX,useOptionalSystem:()=>_i,useOptionalWidgetRegistry:()=>HA,useOsdGetStatus:()=>Ny,useOsdManagerClearSlotBinding:()=>Ry,useOsdManagerCopyDeviceConfiguration:()=>By,useOsdManagerDeleteTemplate:()=>Gy,useOsdManagerGetConditionSupport:()=>Iy,useOsdManagerGetDeviceOsd:()=>Py,useOsdManagerGetSourceCatalog:()=>Fy,useOsdManagerListTemplates:()=>Uy,useOsdManagerPreviewSlot:()=>Vy,useOsdManagerRenderDevice:()=>Hy,useOsdManagerSetSlotBinding:()=>Ly,useOsdManagerSetSlotCameraEnabled:()=>zy,useOsdManagerUpsertTemplate:()=>Wy,useOsdSetOverlay:()=>My,usePTZ:()=>DI,usePersistedDisclosure:()=>Zj,usePersistedPageSize:()=>N2,usePetFeederCallPet:()=>Xy,usePetFeederCancelFeed:()=>qy,usePetFeederFeed:()=>Ky,usePetFeederGetStatus:()=>nb,usePetFeederMarkFoodReplenished:()=>Yy,usePetFeederPlaySound:()=>Zy,usePetFeederResetDesiccant:()=>Jy,usePetFeederSetChildLock:()=>Qy,usePetFeederSetFeedSound:()=>eb,usePetFeederSetIndicatorLight:()=>$y,usePetFeederSetVolume:()=>tb,usePickerSiteZones:()=>D5,usePipelineAnalyticsAddRetrainFrameFromRecording:()=>xx,usePipelineAnalyticsAddRetrainFramesToCollection:()=>Sx,usePipelineAnalyticsApplyDeviceSettingsPatch:()=>Ix,usePipelineAnalyticsBackfillRetrainOrigins:()=>sx,usePipelineAnalyticsCancelRelocateMedia:()=>Gb,usePipelineAnalyticsCancelStorageMigrationMove:()=>Bb,usePipelineAnalyticsClearTrackRelation:()=>Db,usePipelineAnalyticsClearTracks:()=>sb,usePipelineAnalyticsCompleteRetrainTrack:()=>cx,usePipelineAnalyticsCountRelocatableMedia:()=>Ub,usePipelineAnalyticsCountUnstampedEventMedia:()=>Hb,usePipelineAnalyticsCreateRetrainCollection:()=>gx,usePipelineAnalyticsDeleteDeviceEvents:()=>Pb,usePipelineAnalyticsDeleteRetrainCollection:()=>bx,usePipelineAnalyticsDeleteTracks:()=>Cb,usePipelineAnalyticsDeselectRetrainFrame:()=>nx,usePipelineAnalyticsGetActiveTracks:()=>rb,usePipelineAnalyticsGetAudioEvents:()=>ub,usePipelineAnalyticsGetDeviceLiveContribution:()=>Fx,usePipelineAnalyticsGetDeviceSettingsContribution:()=>Px,usePipelineAnalyticsGetEventDensity:()=>_b,usePipelineAnalyticsGetEventDensityBatch:()=>vb,usePipelineAnalyticsGetEventMedia:()=>Tx,usePipelineAnalyticsGetEventMediaFootprintByKind:()=>Mb,usePipelineAnalyticsGetEventStoreFootprint:()=>jb,usePipelineAnalyticsGetKeyEvents:()=>mb,usePipelineAnalyticsGetKeyEventsBatch:()=>hb,usePipelineAnalyticsGetMediaReclaimStatus:()=>Jb,usePipelineAnalyticsGetMotionEvents:()=>cb,usePipelineAnalyticsGetObjectEmbeddingRebuildStatus:()=>Nx,usePipelineAnalyticsGetObjectEvents:()=>lb,usePipelineAnalyticsGetRetrainCorpusKpi:()=>$b,usePipelineAnalyticsGetRetrainExportUrl:()=>ux,usePipelineAnalyticsGetRetrainFrameImage:()=>rx,usePipelineAnalyticsGetSensorEvents:()=>pb,usePipelineAnalyticsGetStorageMigrationMoveStatus:()=>zb,usePipelineAnalyticsGetTrack:()=>ib,usePipelineAnalyticsGetTrackMedia:()=>Ex,usePipelineAnalyticsGetTrainingExportSummary:()=>Yb,usePipelineAnalyticsGetTrainingExportUrl:()=>Xb,usePipelineAnalyticsListArchivedDebugNotes:()=>Tb,usePipelineAnalyticsListBirthDecisions:()=>Ab,usePipelineAnalyticsListEventKinds:()=>db,usePipelineAnalyticsListEventKindsBatch:()=>fb,usePipelineAnalyticsListEventMedia:()=>Ox,usePipelineAnalyticsListOpsLog:()=>Kb,usePipelineAnalyticsListRecentTracks:()=>ob,usePipelineAnalyticsListRelocateMediaJobs:()=>Wb,usePipelineAnalyticsListRetrainAnnotations:()=>ax,usePipelineAnalyticsListRetrainAssistProfiles:()=>mx,usePipelineAnalyticsListRetrainCollectionFrames:()=>wx,usePipelineAnalyticsListRetrainCollections:()=>_x,usePipelineAnalyticsListRetrainCorpusPage:()=>Qb,usePipelineAnalyticsListRetrainFrames:()=>ex,usePipelineAnalyticsListRetrainStaging:()=>Zb,usePipelineAnalyticsListTrackMedia:()=>Dx,usePipelineAnalyticsListTrackRelations:()=>kb,usePipelineAnalyticsListTracks:()=>ab,usePipelineAnalyticsOfferRetrainArchive:()=>px,usePipelineAnalyticsOwnersWithMedia:()=>kx,usePipelineAnalyticsPauseForStorageMigration:()=>Fb,usePipelineAnalyticsProposeRetrainAnnotations:()=>ix,usePipelineAnalyticsProposeRetrainAnnotationsWithLlm:()=>hx,usePipelineAnalyticsPruneEvents:()=>Nb,usePipelineAnalyticsPruneEventsBefore:()=>yb,usePipelineAnalyticsPruneTracksBefore:()=>bb,usePipelineAnalyticsReadLongTermSeries:()=>gb,usePipelineAnalyticsRebuildObjectEmbeddings:()=>Mx,usePipelineAnalyticsReclaimDebugMedia:()=>qb,usePipelineAnalyticsReconcileFromDisk:()=>Sb,usePipelineAnalyticsRefreshStorageLocationsForMigration:()=>Lb,usePipelineAnalyticsRelocateMedia:()=>Vb,usePipelineAnalyticsRemoveRetrainFrameFromCollection:()=>Cx,usePipelineAnalyticsRenameRetrainCollection:()=>yx,usePipelineAnalyticsResolveRetrainTrainingCorpus:()=>vx,usePipelineAnalyticsRestageRetrainTrack:()=>lx,usePipelineAnalyticsResumeForStorageMigration:()=>Ib,usePipelineAnalyticsSaveRetrainAnnotations:()=>ox,usePipelineAnalyticsSearchObjectEvents:()=>Ax,usePipelineAnalyticsSelectRetrainFrames:()=>tx,usePipelineAnalyticsSetRetrainFrameComplete:()=>dx,usePipelineAnalyticsSetTrackFlags:()=>wb,usePipelineAnalyticsSetTrackPurity:()=>Ob,usePipelineAnalyticsSetTrackRelation:()=>Eb,usePipelineAnalyticsStartStorageMigrationMove:()=>Rb,usePipelineAnalyticsWipeAllAnalytics:()=>xb,usePipelineAnalyticsWipeObjectEmbeddings:()=>jx,usePipelineAnalyticsWriteRetrainArchive:()=>fx,usePipelineExecutorCacheFrameInPool:()=>$x,usePipelineExecutorDeleteModel:()=>Xx,usePipelineExecutorDownloadModel:()=>Yx,usePipelineExecutorGetAddonModels:()=>Jx,usePipelineExecutorGetAudioCapabilities:()=>uS,usePipelineExecutorGetAvailableEngines:()=>Lx,usePipelineExecutorGetCapabilities:()=>qx,usePipelineExecutorGetDetectionConfigSchema:()=>fS,usePipelineExecutorGetEffectiveTuning:()=>nS,usePipelineExecutorGetEngineProvisioning:()=>zx,usePipelineExecutorGetInferenceDeviceHealth:()=>Hx,usePipelineExecutorGetOrchestratorConfigSchema:()=>Gx,usePipelineExecutorGetReferenceAudio:()=>lS,usePipelineExecutorGetReferenceAudioFiles:()=>cS,usePipelineExecutorGetReferenceImage:()=>sS,usePipelineExecutorGetSchema:()=>Wx,usePipelineExecutorGetSelectedEngine:()=>Rx,usePipelineExecutorGetVideoPipelineSteps:()=>Bx,usePipelineExecutorInferCached:()=>eS,usePipelineExecutorKillEngine:()=>aS,usePipelineExecutorListLoadedEngines:()=>rS,usePipelineExecutorListReferenceImages:()=>oS,usePipelineExecutorRearmInferenceDevice:()=>Ux,usePipelineExecutorRunAudioTest:()=>dS,usePipelineExecutorRunPipeline:()=>Zx,usePipelineExecutorRunPipelineBatch:()=>Qx,usePipelineExecutorSetVideoPipelineSteps:()=>Vx,usePipelineExecutorSpinEngine:()=>iS,usePipelineExecutorUncacheFrame:()=>tS,usePipelineExecutorValidatePipeline:()=>Kx,usePipelineOrchestratorAbortNodeBenchmark:()=>rC,usePipelineOrchestratorApplyAutoTune:()=>JS,usePipelineOrchestratorApplyDeviceSettingsPatch:()=>SC,usePipelineOrchestratorAssignAudio:()=>AS,usePipelineOrchestratorAssignPipeline:()=>gS,usePipelineOrchestratorDeleteNodeBenchmarkResult:()=>oC,usePipelineOrchestratorForgetInferenceDevice:()=>GS,usePipelineOrchestratorGetAgentLoad:()=>CS,usePipelineOrchestratorGetAgentSettings:()=>FS,usePipelineOrchestratorGetAudioAssignment:()=>MS,usePipelineOrchestratorGetAudioAssignments:()=>PS,usePipelineOrchestratorGetAudioNodeLoad:()=>NS,usePipelineOrchestratorGetCameraDetectionSource:()=>lC,usePipelineOrchestratorGetCameraMetrics:()=>ES,usePipelineOrchestratorGetCameraSettings:()=>sC,usePipelineOrchestratorGetCameraStatus:()=>hC,usePipelineOrchestratorGetCameraStatuses:()=>gC,usePipelineOrchestratorGetCameraSwitches:()=>pC,usePipelineOrchestratorGetCapabilityBindings:()=>DS,usePipelineOrchestratorGetClusterModelChoice:()=>wS,usePipelineOrchestratorGetDeviceLiveContribution:()=>xC,usePipelineOrchestratorGetDeviceSettingsContribution:()=>bC,usePipelineOrchestratorGetEffectiveShares:()=>QS,usePipelineOrchestratorGetGlobalMetrics:()=>TS,usePipelineOrchestratorGetIngestOwner:()=>kS,usePipelineOrchestratorGetNodeBenchmarkCandidates:()=>iC,usePipelineOrchestratorGetNodeBenchmarkPreflight:()=>eC,usePipelineOrchestratorGetNodeBenchmarkStatus:()=>nC,usePipelineOrchestratorGetNodeInferenceDevices:()=>WS,usePipelineOrchestratorGetPipelineAssignment:()=>SS,usePipelineOrchestratorGetPipelineAssignments:()=>xS,usePipelineOrchestratorGetPipelineDevicePin:()=>yS,usePipelineOrchestratorGetPlacementStats:()=>XS,usePipelineOrchestratorGetReconcileFromDiskStatus:()=>yC,usePipelineOrchestratorListAgentSettings:()=>IS,usePipelineOrchestratorListNodeBenchmarkResults:()=>aC,usePipelineOrchestratorPauseForStorageMigration:()=>mS,usePipelineOrchestratorPlanAutoTune:()=>qS,usePipelineOrchestratorRebalance:()=>bS,usePipelineOrchestratorReconcileFromDisk:()=>vC,usePipelineOrchestratorRemoveAgentSettings:()=>LS,usePipelineOrchestratorRequestOccupancyLook:()=>pS,usePipelineOrchestratorResetNodePipelineDefaults:()=>KS,usePipelineOrchestratorResolvePipeline:()=>fC,usePipelineOrchestratorResumeForStorageMigration:()=>hS,usePipelineOrchestratorSetAgentCapabilities:()=>zS,usePipelineOrchestratorSetAgentDecodeLimits:()=>BS,usePipelineOrchestratorSetAgentInferenceDevices:()=>HS,usePipelineOrchestratorSetAgentMaxCameras:()=>RS,usePipelineOrchestratorSetAgentReachableHost:()=>VS,usePipelineOrchestratorSetCameraDetectionSource:()=>uC,usePipelineOrchestratorSetCameraSensors:()=>_C,usePipelineOrchestratorSetCameraStepSettings:()=>dC,usePipelineOrchestratorSetCameraStepToggle:()=>cC,usePipelineOrchestratorSetCameraSwitch:()=>mC,usePipelineOrchestratorSetCapabilityBinding:()=>OS,usePipelineOrchestratorSetLoadBalancingShares:()=>YS,usePipelineOrchestratorSetNodeStepSettings:()=>US,usePipelineOrchestratorSetPipelineDevicePin:()=>vS,usePipelineOrchestratorSetShareSource:()=>$S,usePipelineOrchestratorStartNodeBenchmark:()=>tC,usePipelineOrchestratorSuggestShares:()=>ZS,usePipelineOrchestratorUnassignAudio:()=>jS,usePipelineOrchestratorUnassignPipeline:()=>_S,usePipelineRunnerAbortNodeBench:()=>BC,usePipelineRunnerAttachCamera:()=>CC,usePipelineRunnerDetachCamera:()=>wC,usePipelineRunnerGetAllCameraMetrics:()=>kC,usePipelineRunnerGetCameraMetrics:()=>OC,usePipelineRunnerGetLocalCameras:()=>AC,usePipelineRunnerGetLocalLoad:()=>EC,usePipelineRunnerGetLocalMetrics:()=>DC,usePipelineRunnerGetNativeCrop:()=>MC,usePipelineRunnerGetNodeBenchStatus:()=>zC,usePipelineRunnerGetParkedTrackFrame:()=>IC,usePipelineRunnerParkTrackFrame:()=>FC,usePipelineRunnerReleaseParkedTrackFrames:()=>LC,usePipelineRunnerReportMotion:()=>TC,usePipelineRunnerRequestOccupancyBurst:()=>jC,usePipelineRunnerRunDetailSubtree:()=>NC,usePipelineRunnerRunStatelessStep:()=>PC,usePipelineRunnerStartNodeBench:()=>RC,usePlateGalleryAssignPlate:()=>ew,usePlateGalleryAssignPlates:()=>nw,usePlateGalleryCorrectPlateText:()=>KC,usePlateGalleryCreateVehicle:()=>YC,usePlateGalleryDeletePlate:()=>qC,usePlateGalleryDeleteVehicle:()=>ZC,usePlateGalleryGetPlateByTrack:()=>HC,usePlateGalleryGetPlateMedia:()=>UC,usePlateGalleryListPlates:()=>VC,usePlateGalleryListVehicleSamples:()=>QC,usePlateGalleryListVehicles:()=>JC,usePlateGalleryRemoveVehicleSample:()=>$C,usePlateGalleryRenameVehicle:()=>XC,usePlateGallerySearchPlates:()=>WC,usePlateGallerySuggestPlateClusters:()=>GC,usePlateGalleryUnassignPlate:()=>tw,usePlateGalleryUnassignPlates:()=>rw,usePlayerOverlayLayer:()=>Or,usePlayerOverlayLayers:()=>Xr,usePlayerToolbarButton:()=>tr,usePlayerToolbarButtons:()=>bn,usePowerMeterGetStatus:()=>iw,usePresenceGetStatus:()=>aw,usePressureSensorGetStatus:()=>ow,usePrivacyMaskGetOptions:()=>sw,usePrivacyMaskGetStatus:()=>uw,usePrivacyMaskSetAudioEnabled:()=>lw,usePrivacyMaskSetMask:()=>cw,usePrompt:()=>Pn,usePtzAutotrackGetSettings:()=>Aw,usePtzAutotrackGetStatus:()=>Ow,usePtzAutotrackSetEnabled:()=>kw,usePtzAutotrackSetSettings:()=>jw,usePtzCaptureHomeHere:()=>Sw,usePtzContinuousMove:()=>fw,usePtzDeletePreset:()=>_w,usePtzGetHomePreset:()=>bw,usePtzGetHomeReturn:()=>Cw,usePtzGetOptions:()=>vw,usePtzGetPosition:()=>Tw,usePtzGetPresets:()=>mw,usePtzGetStatus:()=>Dw,usePtzGoHome:()=>yw,usePtzGoToPreset:()=>hw,usePtzMove:()=>dw,usePtzSavePreset:()=>gw,usePtzSetAutofocus:()=>Ew,usePtzSetHomePreset:()=>xw,usePtzSetHomeReturn:()=>ww,usePtzStop:()=>pw,useRebootReboot:()=>Mw,useRecordEntriesDeleteEntry:()=>Iw,useRecordEntriesListEntries:()=>Pw,useRecordEntriesListEntryKinds:()=>Nw,useRecordEntriesPutEntry:()=>Fw,useRecordedPlayback:()=>oL,useRecordingArchiveApplyDeviceSettingsPatch:()=>xT,useRecordingArchiveCancelRelocateJob:()=>pT,useRecordingArchiveCancelStorageMigrationMove:()=>cT,useRecordingArchiveDeleteFootprint:()=>$w,useRecordingArchiveGetAvailabilityBatch:()=>Hw,useRecordingArchiveGetDaysWithRecordingsBatch:()=>Uw,useRecordingArchiveGetDeviceConfig:()=>Gw,useRecordingArchiveGetDeviceLiveContribution:()=>bT,useRecordingArchiveGetDeviceSettingsContribution:()=>yT,useRecordingArchiveGetPlacement:()=>gT,useRecordingArchiveGetRelocateResidue:()=>dT,useRecordingArchiveGetStatus:()=>vT,useRecordingArchiveGetStorageMigrationMoveStatus:()=>sT,useRecordingArchiveGetStorageUsage:()=>Ww,useRecordingArchiveListOpsLog:()=>eT,useRecordingArchiveListRelocateJobs:()=>uT,useRecordingArchiveLocateSegment:()=>Kw,useRecordingArchivePauseForStorageMigration:()=>rT,useRecordingArchivePlanStorageRebalance:()=>mT,useRecordingArchivePruneFootage:()=>Qw,useRecordingArchiveReadGopBytes:()=>Jw,useRecordingArchiveReadSegmentBytes:()=>qw,useRecordingArchiveReadWindowBytes:()=>Yw,useRecordingArchiveReconcileLedgerAgainstDisk:()=>fT,useRecordingArchiveRefreshStorageLocationsForMigration:()=>aT,useRecordingArchiveRelocateFootage:()=>lT,useRecordingArchiveRenderClip:()=>nT,useRecordingArchiveRenderGif:()=>tT,useRecordingArchiveRescanStorage:()=>Zw,useRecordingArchiveResumeForStorageMigration:()=>iT,useRecordingArchiveSetDeviceConfig:()=>Xw,useRecordingArchiveSetDevicePlacement:()=>_T,useRecordingArchiveStartStorageMigrationMove:()=>oT,useRecordingArchiveStartStorageRebalance:()=>hT,useRecordingExportCancelExport:()=>TT,useRecordingExportCreateExport:()=>ST,useRecordingExportDeleteExport:()=>ET,useRecordingExportGetDownloadUrl:()=>DT,useRecordingExportGetExport:()=>wT,useRecordingExportListExports:()=>CT,useRecordingExportReadExportBytes:()=>OT,useRecordingGetAvailability:()=>Rw,useRecordingGetDaysWithRecordings:()=>zw,useRecordingGetPlayback:()=>Bw,useRecordingGetPlaybackOptions:()=>Vw,useRecordingListSources:()=>Lw,useRecordingOnboardGetOptions:()=>kT,useRecordingOnboardGetStatus:()=>jT,useRecordingOnboardSetSettings:()=>AT,useRecordingSignalGetStatus:()=>MT,useRemoteComponent:()=>BA,useRemoteGetConfig:()=>NT,useRemoteListCommands:()=>FT,useRemoteSendCommand:()=>IT,useRemoteSendMediaCommand:()=>LT,useRemoteSetConfig:()=>PT,useRoleDisplayDefaults:()=>R4,useRunningStateGetStatus:()=>RT,useSceneMonitorCaptureReference:()=>WT,useSceneMonitorCreateScene:()=>VT,useSceneMonitorDeleteReference:()=>GT,useSceneMonitorDeleteScene:()=>UT,useSceneMonitorGetStatus:()=>JT,useSceneMonitorListScenes:()=>zT,useSceneMonitorListScenesBatch:()=>BT,useSceneMonitorRecheckNow:()=>KT,useSceneMonitorResetScene:()=>qT,useSceneMonitorUpdateScene:()=>HT,useScriptRunnerGetStatus:()=>ZT,useScriptRunnerRun:()=>YT,useScriptRunnerStop:()=>XT,useScrubController:()=>mL,useSearchFieldHotkey:()=>Cs,useServerManagementApplyServerUpdate:()=>eE,useServerManagementCheckServerUpdate:()=>$T,useServerManagementGetServerPackageStatus:()=>QT,useServerManagementRestartServer:()=>nE,useServerManagementRollbackServerUpdate:()=>tE,useSettingsStoreAggregate:()=>gE,useSettingsStoreCount:()=>hE,useSettingsStoreDeclareCollection:()=>yE,useSettingsStoreDelete:()=>fE,useSettingsStoreDeleteWhere:()=>pE,useSettingsStoreGet:()=>rE,useSettingsStoreHistogram:()=>_E,useSettingsStoreInsert:()=>cE,useSettingsStoreInsertMany:()=>lE,useSettingsStoreIsEmpty:()=>vE,useSettingsStoreQuery:()=>aE,useSettingsStoreSet:()=>iE,useSettingsStoreTransact:()=>uE,useSettingsStoreUpdate:()=>dE,useSettingsStoreUpdateWhere:()=>mE,useSettingsStoreUpsert:()=>oE,useSettingsStoreUpsertMany:()=>sE,useSmokeGetStatus:()=>bE,useSnapshotApplyDeviceSettingsPatch:()=>kE,useSnapshotGetDebugState:()=>wE,useSnapshotGetDeviceLiveContribution:()=>OE,useSnapshotGetDeviceSettingsContribution:()=>DE,useSnapshotGetSnapshot:()=>xE,useSnapshotGetSnapshotLinks:()=>TE,useSnapshotGetSnapshotOverview:()=>CE,useSnapshotGetStatus:()=>EE,useSnapshotInvalidateCache:()=>SE,useStationaryOverlay:()=>tle,useStorageAbortUpload:()=>BE,useStorageBeginDownload:()=>VE,useStorageBeginUpload:()=>LE,useStorageDelete:()=>FE,useStorageDeleteLocation:()=>qE,useStorageEndDownload:()=>UE,useStorageExists:()=>NE,useStorageFinalizeUpload:()=>zE,useStorageGetAvailableSpace:()=>IE,useStorageList:()=>PE,useStorageListDrainProgress:()=>JE,useStorageListLocationDeclarations:()=>GE,useStorageListLocations:()=>WE,useStorageListProviders:()=>XE,useStorageMigrationCancel:()=>tD,useStorageMigrationCleanupCancel:()=>cD,useStorageMigrationCleanupStart:()=>oD,useStorageMigrationCleanupStatus:()=>sD,useStorageMigrationDrain:()=>aD,useStorageMigrationHistory:()=>lD,useStorageMigrationMoverClearance:()=>rD,useStorageMigrationMovers:()=>nD,useStorageMigrationPlan:()=>QE,useStorageMigrationResidue:()=>iD,useStorageMigrationStart:()=>$E,useStorageMigrationStatus:()=>eD,useStorageRead:()=>ME,useStorageReadChunk:()=>HE,useStorageResolve:()=>AE,useStorageTestConfig:()=>ZE,useStorageTestLocation:()=>YE,useStorageUpsertLocation:()=>KE,useStorageWrite:()=>jE,useStorageWriteChunk:()=>RE,useStoredGroupBy:()=>E5,useStreamBrokerAcquireEgressTranscode:()=>AD,useStreamBrokerApplyDeviceSettingsPatch:()=>qD,useStreamBrokerAssignProfile:()=>pD,useStreamBrokerFetchEventMedia:()=>vD,useStreamBrokerForgetDeviceHardware:()=>hD,useStreamBrokerGetAllRtspEntries:()=>RD,useStreamBrokerGetBrokerStats:()=>xD,useStreamBrokerGetDeviceAudioMute:()=>UD,useStreamBrokerGetDeviceLiveContribution:()=>KD,useStreamBrokerGetDeviceSettingsContribution:()=>GD,useStreamBrokerGetLiveViewerCounts:()=>wD,useStreamBrokerGetPreBufferInfo:()=>ID,useStreamBrokerGetRtspEntry:()=>zD,useStreamBrokerGetRtspPort:()=>LD,useStreamBrokerGetStreamUrl:()=>DD,useStreamBrokerGetStreamWithCodec:()=>OD,useStreamBrokerIsRtspEnabled:()=>HD,useStreamBrokerKillClient:()=>TD,useStreamBrokerListAllCameraStreams:()=>yD,useStreamBrokerListAllProfileSlots:()=>bD,useStreamBrokerListClients:()=>CD,useStreamBrokerProbeStream:()=>SD,useStreamBrokerProduceEventMedia:()=>_D,useStreamBrokerPublishCameraStream:()=>dD,useStreamBrokerPullAudioChunks:()=>ND,useStreamBrokerRegenerateRtspToken:()=>BD,useStreamBrokerReleaseEgressTranscode:()=>jD,useStreamBrokerReleaseStreamWithCodec:()=>kD,useStreamBrokerRenderPreBufferClip:()=>gD,useStreamBrokerReportStreamSignal:()=>uD,useStreamBrokerRestartProfile:()=>ED,useStreamBrokerRetractCameraStream:()=>fD,useStreamBrokerSetDeviceAudioMute:()=>WD,useStreamBrokerSetPreBufferDuration:()=>FD,useStreamBrokerSetRtspEnabled:()=>VD,useStreamBrokerSubscribeAudioChunks:()=>MD,useStreamBrokerUnassignProfile:()=>mD,useStreamBrokerUnsubscribeAudioChunks:()=>PD,useStreamCatalogGetCatalog:()=>JD,useStreamParamsGetConfigSchema:()=>ZD,useStreamParamsGetOptions:()=>YD,useStreamParamsGetStatus:()=>QD,useStreamParamsSetProfile:()=>XD,useStreamSignalsListSignals:()=>$D,useSwitchGetStatus:()=>tO,useSwitchSetState:()=>eO,useSystem:()=>Rn,useSystemDetectSiteLocation:()=>dO,useSystemFeatureFlags:()=>iO,useSystemForceRetentionCleanup:()=>cO,useSystemGetFailureContributions:()=>mO,useSystemGetLoadContributions:()=>pO,useSystemGetLoggingSettings:()=>hO,useSystemGetRequestCensus:()=>fO,useSystemGetRetentionConfig:()=>oO,useSystemGetSiteLocation:()=>lO,useSystemHealth:()=>rO,useSystemInfo:()=>nO,useSystemMutation:()=>ile,useSystemNetworkAddresses:()=>aO,useSystemQuery:()=>rle,useSystemSetLoggingSettings:()=>gO,useSystemSetRetentionConfig:()=>sO,useSystemSetSiteLocation:()=>uO,useTamperGetStatus:()=>_O,useTemperatureSensorGetStatus:()=>vO,useTemplateCreate:()=>xO,useTemplateDelete:()=>CO,useTemplateGet:()=>bO,useTemplateList:()=>yO,useTemplateUpdate:()=>SO,useTerminalSessionAdoptLegacyMonitor:()=>jO,useTerminalSessionClose:()=>LO,useTerminalSessionCreateInstance:()=>EO,useTerminalSessionDeleteInstance:()=>OO,useTerminalSessionListInstances:()=>TO,useTerminalSessionListLegacyCameras:()=>AO,useTerminalSessionListProfiles:()=>wO,useTerminalSessionListSessions:()=>MO,useTerminalSessionOpenSession:()=>NO,useTerminalSessionPullOutput:()=>FO,useTerminalSessionResize:()=>PO,useTerminalSessionSetInstanceEnabled:()=>kO,useTerminalSessionUpdateInstance:()=>DO,useTerminalSessionWriteInput:()=>IO,useThemeMode:()=>yJ,useToastOnToast:()=>RO,useTrainingCanaryResult:()=>YO,useTrainingCancelJob:()=>GO,useTrainingDiscardResult:()=>ZO,useTrainingGetJob:()=>WO,useTrainingGetJobResult:()=>KO,useTrainingListBaseModels:()=>zO,useTrainingListCanaryTargets:()=>qO,useTrainingListJobs:()=>UO,useTrainingPlanJob:()=>BO,useTrainingRegisterResult:()=>JO,useTrainingRollbackCanary:()=>XO,useTrainingStartJob:()=>VO,useTrainingStartJobBatch:()=>HO,useTurnProviderGetTurnServers:()=>QO,useUiText:()=>q,useUnitPreferences:()=>fZ,useUpdateGetStatus:()=>ek,useUpdateInstallUpdate:()=>$O,useUrlQueryParam:()=>B6,useUserManagementConfirmTotp:()=>jre,useUserManagementCreateUser:()=>nk,useUserManagementDeleteUser:()=>ik,useUserManagementDisableTotp:()=>sk,useUserManagementFindUserByExternalIdentity:()=>Rre,useUserManagementGetTotpStatus:()=>ck,useUserManagementListExternalIdentities:()=>lk,useUserManagementListOauthSessions:()=>dk,useUserManagementListUsers:()=>tk,useUserManagementMigrateRawSecrets:()=>Mre,useUserManagementOauthExchangeCode:()=>Fre,useUserManagementOauthIssueCode:()=>Pre,useUserManagementOauthRefresh:()=>Ire,useUserManagementOauthVerifyAccessToken:()=>Lre,useUserManagementResetPassword:()=>ak,useUserManagementRevokeOauthSession:()=>fk,useUserManagementSetUserScopes:()=>ok,useUserManagementSetupTotp:()=>Are,useUserManagementUnlinkExternalIdentity:()=>uk,useUserManagementUpdateUser:()=>rk,useUserManagementValidateCredentials:()=>kre,useUserManagementVerifyTotp:()=>Nre,useVacuumControlGetStatus:()=>Gre,useVacuumControlLocate:()=>Ure,useVacuumControlPause:()=>Bre,useVacuumControlReturnToBase:()=>Hre,useVacuumControlSetFanSpeed:()=>Wre,useVacuumControlStart:()=>zre,useVacuumControlStop:()=>Vre,useValveClose:()=>qre,useValveGetStatus:()=>Xre,useValveOpen:()=>Kre,useValveSetPosition:()=>Yre,useValveStop:()=>Jre,useVibrationGetStatus:()=>Zre,useVideoclipsDialClipStream:()=>eie,useVideoclipsGetClipPlayback:()=>hk,useVideoclipsGetPlaybackOptions:()=>tie,useVideoclipsListClips:()=>pk,useVideoclipsListSources:()=>mk,useVideoclipsOfferClipBytes:()=>$re,useVideoclipsReadClipBytes:()=>Qre,useVodPlayback:()=>lF,useWaterHeaterGetStatus:()=>aie,useWaterHeaterSetAway:()=>iie,useWaterHeaterSetOperationMode:()=>rie,useWaterHeaterSetTargetTemp:()=>nie,useWeatherGetStatus:()=>oie,useWebrtcSessionAddIceCandidate:()=>die,useWebrtcSessionApplyDownlinkProbe:()=>gie,useWebrtcSessionCloseSession:()=>pie,useWebrtcSessionCreateSession:()=>cie,useWebrtcSessionGetIceCandidates:()=>fie,useWebrtcSessionGetSessionDebug:()=>_ie,useWebrtcSessionGetSessionState:()=>hie,useWebrtcSessionHandleAnswer:()=>uie,useWebrtcSessionHandleOffer:()=>lie,useWebrtcSessionHasAdaptiveBitrate:()=>mie,useWebrtcSessionListStreams:()=>sie,useWidget:()=>sae,useWidgetMetadata:()=>zA,useWidgetRegistry:()=>VA,useZoneAnalyticsGetCameraHistory:()=>xie,useZoneAnalyticsGetCurrentSnapshot:()=>vie,useZoneAnalyticsGetCurrentSnapshotBatch:()=>yie,useZoneAnalyticsGetUnzonedHistory:()=>Sie,useZoneAnalyticsGetZoneHistory:()=>bie,useZoneEditing:()=>ele,useZoneRulesListRules:()=>Cie,useZoneRulesSetRules:()=>wie,useZonesAddZone:()=>Tie,useZonesListZones:()=>gk,useZonesRemoveZone:()=>Eie,useZonesUpdateZone:()=>Die,vacuumStateMeta:()=>CQ,validateScopes:()=>m8,valveStateMeta:()=>KQ,variantLabel:()=>Br,waterHeaterPhase:()=>c$,waterHeaterTint:()=>s$,weatherConditionMeta:()=>p$,weatherTint:()=>m$,withHiddenChart:()=>q7,withPanel:()=>J7,withResolvedParentDetail:()=>S5,withUseRootModel:()=>Zz,withoutModelScopedFields:()=>gB,withoutPanel:()=>Y7,writeStoredGroupBy:()=>T5});E();var xle=m(()=>a(()=>import(`./MaskShapeCanvas-DnEx9aLt.js`).then(e=>({default:e.MaskShapeCanvas})),__vite__mapDeps([42,1,2,3]),import.meta.url)),Sle=m(()=>a(()=>import(`./MotionZonesSettings-BMDPF6-L.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([41,1,2,3,42]),import.meta.url)),$9=m(()=>a(()=>import(`./SceneMonitorEditor-BeZzFwDE.js`).then(e=>({default:e.SceneMonitorEditor})),__vite__mapDeps([44,1,2,3,36,42]),import.meta.url)),Cle=m(()=>a(()=>import(`./PrivacyMaskSettings-DXcb1Xsj.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([43,1,2,3,24,42]),import.meta.url));export{T8 as $,jf as $a,FS as $c,Oo as $d,Cu as $i,Mw as $l,EB as $n,em as $o,CA as $r,F_ as $s,hZ as $t,MO as $u,D7 as A,Ld as Aa,Zv as Ac,Nl as Ad,Wu as Ai,OS as Al,FV as An,Ip as Ao,YM as Ar,Mg as As,a6 as At,$E as Au,U5 as B,df as Ba,Dx as Bc,ps as Bd,Pu as Bi,nw as Bl,oV as Bn,xp as Bo,pj as Br,e_ as Bs,l3 as Bt,gO as Bu,R7 as C,Pd as Ca,kv as Cc,Ul as Cd,su as Ci,RS as Cl,TW as Cn,Lm as Co,aL as Cr,ig as Cs,T6 as Ct,oD as Cu,p7 as D,Kd as Da,$v as Dc,Il as Dd,$u as Di,dC as Dl,dU as Dn,Tm as Do,lF as Dr,jg as Ds,f6 as Dt,nD as Du,N7 as E,Ud as Ea,Nv as Ec,Vl as Ed,Zu as Ei,_C as El,fU as En,im as Eo,cF as Er,kg as Es,b6 as Et,lD as Eu,n7 as F,Wd as Fa,jb as Fc,ul as Fd,Mu as Fi,ZS as Fl,yV as Fn,Jp as Fo,aM as Fr,Lg as Fs,A3 as Ft,dO as Fu,D5 as G,hf as Ga,aS as Gc,qo as Gd,Ru as Gi,UC as Gl,GB as Gn,Qp as Go,qA as Gr,n_ as Gs,E2 as Gt,SO as Gu,L5 as H,$d as Ha,Ax as Hc,is as Hd,Ju as Hi,YC as Hl,XB as Hn,Vm as Ho,dj as Hr,Kg as Hs,b4 as Ht,xO as Hu,e7 as I,Xd as Ia,ib as Ic,al as Id,Lu as Ii,jS as Il,hV as In,Kp as Io,sM as Ir,Ig as Is,k3 as It,pO as Iu,X8 as J,mf as Ja,SC as Jc,Ro as Jd,Eu as Ji,JC as Jl,FB as Jn,bm as Jo,BA as Jr,Gg as Js,v2 as Jt,EO as Ju,b5 as K,bf as Ka,rS as Kc,zo as Kd,ju as Ki,VC as Kl,KB as Kn,Gp as Ko,KA as Kr,Jg as Ks,T2 as Kt,jO as Ku,Y5 as L,Jd as La,fb as Lc,il as Ld,Iu as Li,_S as Ll,gV as Ln,Hp as Lo,cM as Lr,Rg as Ls,O3 as Lt,hO as Lu,u7 as M,zd as Ma,ey as Mc,Cl as Md,Au as Mi,US as Ml,DV as Mn,nm as Mo,jM as Mr,Ng as Ms,Z3 as Mt,KE as Mu,s7 as N,Hd as Na,Pb as Nc,ll as Nd,Hu as Ni,vS as Nl,OV as Nn,gm as No,uM as Nr,Fg as Ns,X3 as Nt,SD as Nu,O7 as O,qd as Oa,ty as Oc,Rl as Od,td as Oi,cC as Ol,lU as On,rm as Oo,XP as Or,Dg as Os,d6 as Ot,QE as Ou,c7 as P,Bd as Pa,Cb as Pc,pl as Pd,Bu as Pi,$S as Pl,CV as Pn,fm as Po,lM as Pr,Ag as Ps,j3 as Pt,BD as Pu,E8 as Q,ff as Qa,CS as Qc,Do as Qd,Ku as Qi,rw as Ql,DB as Qn,qp as Qo,SA as Qr,D_ as Qs,LZ as Qt,wO as Qu,K5 as R,Yd as Ra,Ox as Rc,$ as Rd,yu as Ri,OC as Rl,dV as Rn,tm as Ro,hj as Rr,r_ as Rs,b3 as Rt,lO as Ru,V7 as S,xd as Sa,Av as Sc,gk as Sd,du as Si,HS as Sl,tG as Sn,zm as So,wL as Sr,Gh as Ss,E6 as St,cD as Su,Y7 as T,Vd as Ta,Ev as Tc,Hl as Td,ed as Ti,uC as Tl,mU as Tn,lm as To,dF as Tr,rg as Ts,x6 as Tt,aD as Tu,O5 as U,sf as Ua,wb as Uc,cs as Ud,Du as Ui,qC as Ul,WB as Un,sm as Uo,uj as Ur,$g as Us,U2 as Ut,CO as Uu,R5 as V,nf as Va,Nb as Vc,vs as Vd,wu as Vi,KC as Vl,sV as Vn,Bm as Vo,mj as Vr,qg as Vs,z4 as Vt,uO as Vu,k5 as W,pf as Wa,Wx as Wc,ss as Wd,Tu as Wi,ZC as Wl,qB as Wn,Wp as Wo,YA as Wr,t_ as Ws,O2 as Wt,yO as Wu,N8 as X,rf as Xa,gS as Xc,Ao as Xd,Vu as Xi,XC as Xl,AB as Xn,kp as Xo,AA as Xr,O_ as Xs,tQ as Xt,TO as Xu,P8 as Y,af as Ya,AS as Yc,Ho as Yd,Uu as Yi,$C as Yl,MB as Yn,Fp as Yo,zA as Yr,k_ as Ys,u2 as Yt,OO as Yu,A8 as Z,cf as Za,GS as Zc,ko as Zd,Fu as Zi,tw as Zl,OB as Zn,Yp as Zo,xA as Zr,M_ as Zs,$Z as Zt,AO as Zu,Q7 as _,Sd as _a,q_ as _c,ok as _d,cu as _i,bS as _l,kG as _n,cm as _o,SL as _r,Qh as _s,P6 as _t,JE as _u,E9 as a,fd as aa,j_ as ac,IO as ad,Uk as ai,gC as al,ZJ as an,op as ao,Jz as ar,pm as as,v8 as at,ST as au,z7 as b,Td as ba,pv as bc,pk as bd,tu as bi,fC as bl,pG as bn,Rm as bo,CL as br,Xh as bs,A6 as bt,XE as bu,v9 as c,Cd as ca,R_ as cc,nk as cd,zk as ci,QS as cl,yJ as cn,Up as co,Rz as cr,ph as cs,h8 as ct,NT as cu,f9 as d,Od as da,H_ as dc,ck as dd,Ok as di,xS as dl,jq as dn,Om as do,Oz as dr,Rh as ds,f8 as dt,PT as du,Ou as ea,E_ as ec,NO as ed,To as ef,gA as ei,PS as el,fZ as en,Wf as eo,SB as er,Op as es,C8 as et,$w as eu,u9 as f,Ed as fa,W_ as fc,lk as fd,yk as fi,yS as fl,xq as fn,km as fo,Cz as fr,zh as fs,U6 as ft,eE as fu,c9 as g,bd as ga,J_ as gc,fk as gd,ou as gi,qS as gl,zG as gn,Nm as go,_L as gr,Kh as gs,F6 as gt,qE as gu,o9 as h,Nd as ha,U_ as hc,ak as hd,bk as hi,IS as hl,BG as hn,Im as ho,YL as hr,tg as hs,B6 as ht,nE as hu,D9 as i,pd as ia,z_ as ic,DO as id,Gk as ii,hC as il,hY as in,ip as io,Yz as ir,Zp as is,b8 as it,TT as iu,d7 as j,Gd as ja,iy as jc,jl as jd,Gu as ji,YS as jl,PV as jn,Rp as jo,qM as jr,Eg as js,Q3 as jt,eD as ju,w7 as k,Id as ka,ry as kc,Ll as kd,Qu as ki,mC as kl,qH as kn,ym as ko,VN as kr,Pg as ks,o6 as kt,iD as ku,g9 as l,kd as la,B_ as lc,ik as ld,Rk as li,WS as ll,vJ as ln,wm as lo,zz as lr,fh as ls,p8 as lt,FT as lu,s9 as m,Ad as ma,G_ as mc,tk as md,Sk as mi,yC as ml,RG as mn,Am as mo,OR as mr,Wh as ms,V6 as mt,QT as mu,ble as n,dd as na,A_ as nc,PO as nd,cA as ni,lC as nl,lX as nn,Yf as no,gB as nr,zp as ns,x8 as nt,eT as nu,w9 as o,vd as oa,N_ as oc,RO as od,Hk as oi,pC as ol,LJ as on,yp as oo,qz as or,Dm as os,_8 as ot,ET as ou,i9 as p,wd as pa,K_ as pc,dk as pd,xk as pi,XS as pl,qG as pn,Pm as po,Sz as pr,ng as ps,H6 as pt,$T as pu,_5 as q,gf as qa,JS as qc,Uo as qd,zu as qi,QC as ql,IB as qn,$p as qo,RA as qr,Qg as qs,y2 as qt,LO as qu,O9 as r,ud as ra,P_ as rc,kO as rd,rA as ri,sC as rl,zY as rn,ap as ro,oB as rr,Lp as rs,Mse as rt,Qw as ru,y9 as s,yd as sa,L_ as sc,QO as sd,Vk as si,DS as sl,CJ as sn,vp as so,Vz as sr,Sm as ss,g8 as st,CT as su,$9 as t,md as ta,I_ as tc,FO as td,X as tf,mA as ti,NS as tl,rZ as tn,Gf as to,hB as tr,Np as ts,S8 as tt,Ww as tu,h9 as u,Fd as ua,V_ as uc,sk as ud,Ek as ui,SS as ul,fJ as un,Fm as uo,Pz as ur,Lh as us,m8 as ut,IT as uu,qce as v,Md as va,hv as vc,uk as vd,uu as vi,vC as vl,OG as vn,Em as vo,bL as vr,Uh as vs,M6 as vt,GE as vu,J7 as w,Rd as wa,Tv as wc,ql as wd,hu as wi,VS as wl,_W as wn,am as wo,mI as wr,eg as ws,w6 as wt,sD as wu,H7 as x,Dd as xa,vv as xc,mk as xd,ru as xi,zS as xl,fG as xn,Cm as xo,xL as xr,Yh as xs,k6 as xt,tD as xu,B7 as y,jd as ya,fv as yc,rk as yd,au as yi,KS as yl,hG as yn,om as yo,TL as yr,qh as ys,j6 as yt,WE as yu,G5 as z,Zd as za,Kb as zc,Cs as zd,gu as zi,AC as zl,aV as zn,Xp as zo,fj as zr,Zg as zs,u3 as zt,nO as zu};
67
+ `}function Z9(e){return Object.entries(e).filter(([e])=>e!==`provider`).map(([e,t])=>`--color-${Y9(e)}:${String(t)}`).join(`;`)}function Q9(e,t){return Object.entries(t).map(([t,n])=>`--${e}-${t}:${n}px`).join(`;`)}function yle(e){return[`:root{color-scheme:light dark;${[Q9(`spacing`,e.spacing),Q9(`radius`,e.radius),`--font-family:${e.typography.fontFamily}`].join(`;`)};${Z9(e.colors.light)}}`,`@media (prefers-color-scheme:dark){:root{${Z9(e.colors.dark)}}}`].join(``)}var ble=e({AddProviderEntryDialog:()=>Xoe,AddonGlobalSettingsForm:()=>Pz,AdminLinkQuickAction:()=>x4,AgentStepEditor:()=>jB,AlarmHeroCard:()=>k0,AlarmPanelInlineControl:()=>O0,AppShell:()=>$B,ArcKnob:()=>hX,AudioClassificationList:()=>nV,AudioLevelWaveform:()=>rV,AudioWaveform:()=>iV,AutomationHeroCard:()=>V0,AutomationInlineControl:()=>B0,AutotrackSection:()=>WA,BATTERY_BADGE_LOW_KEY:()=>aV,BATTERY_BADGE_NORMAL_KEY:()=>oV,BINARY_BATTERY_LOW_BELOW:()=>50,BOOLEAN_STATES:()=>E7,BTN_COMPACT:()=>Cr,BTN_COMPACT_DANGER:()=>Xn,BTN_COMPACT_PRIMARY:()=>Gn,BTN_COMPACT_WARNING:()=>hn,BackToStepsButton:()=>x8,Badge:()=>zk,BarSeries:()=>XP,BatteryBadge:()=>dV,BottomSheet:()=>ol,Breadcrumb:()=>FV,BrightnessPanel:()=>PX,Button:()=>gA,ButtonControl:()=>wX,ButtonHeroCard:()=>TX,CENTER:()=>oX,CHART_SERIES_TOKENS:()=>XM,CHIP_ACTIVE:()=>vi,CHIP_BASE:()=>ki,CHIP_INACTIVE:()=>En,CLASS_COLORS:()=>MG,COLUMN_BREAKPOINT_CLASS:()=>a4,COLUMN_PRIORITY:()=>i4,COMMIT_DEDUPE_TOLERANCE_MS:()=>750,COMMIT_DEDUPE_WINDOW_MS:()=>uL,CONSUMABLE_LOW_PERCENT:()=>15,CONTROL_CAP_NAMES:()=>AZ,CONTROL_FILLS:()=>c2,CameraStreamPlayer:()=>qH,Card:()=>dF,ChartFrame:()=>oN,ChartPlaceholder:()=>uN,ChartSwatch:()=>sN,ChartWindowToggle:()=>aP,Checkbox:()=>FB,ChildSectionAccordion:()=>k3,ClimatePanel:()=>qX,CodeBlock:()=>fG,CollapsibleCard:()=>oB,ConfigFormBuilder:()=>Oz,ConfigFormField:()=>Cz,ConfigNotificationTargetMultiSelectFieldView:()=>dA,ConfigNotificationTargetSelectFieldView:()=>fA,ConfigSchemaField:()=>fB,ConfirmActionButton:()=>pG,ConfirmDialogProvider:()=>or,ConsumableLevelBadge:()=>lM,ConsumablesPanel:()=>kM,ContainerChildrenProvider:()=>E4,ContainerPrimaryHero:()=>E2,ControlColumn:()=>sX,ControlHeroCard:()=>a2,ControlInlineControl:()=>i2,ControlPanel:()=>kZ,CopyButton:()=>hG,CoverHeroCard:()=>$Z,CoverInlineControl:()=>JZ,CoverPanel:()=>EX,CustomFieldRenderersProvider:()=>mA,DATA_RECORDS_KIND_PARAM:()=>d8,DATA_RECORDS_OWNER_PARAM:()=>u8,DATA_RECORD_FACET_GROUPS:()=>c8,DEFAULT_COLOR:()=>PG,DEFAULT_PAGINATION_LABELS:()=>QH,DEFAULT_UNIT_PREFERENCES:()=>iZ,DEVICE_COLUMNS:()=>t4,DEVICE_EXPORT_PAGE_SIZE_KEY:()=>n6,DEVICE_LIST_PAGE_SIZE_KEY:()=>I2,DEVICE_LIST_PAGE_SIZE_OPTIONS:()=>F2,DEVICE_NAME_FORMS:()=>dae,DEVICE_NAME_JOIN:()=>XA,DEVICE_PICKER_GROUP_STORAGE_KEY:()=>C5,DEVICE_ROLE_META:()=>No,DEVICE_ROLE_NOUNS:()=>aj,DEVICE_TYPE_CONTROL:()=>s2,DEVICE_TYPE_META:()=>Mo,DEVICE_TYPE_NOUNS:()=>oj,DataRecordsHub:()=>f8,DataTable:()=>dU,DataTableFilterBar:()=>OG,DataTablePager:()=>XH,DetectionCanvas:()=>VG,DetectionOverlay:()=>YG,DetectionResultTree:()=>tK,DevShell:()=>FJ,DeviceActivityPanel:()=>tX,DeviceBatchToolbar:()=>k2,DeviceCard:()=>rX,DeviceContextProvider:()=>xA,DeviceExportPanel:()=>o6,DeviceExportSetup:()=>a6,DeviceFilterBar:()=>y5,DeviceFleetFromServer:()=>YA,DeviceFleetProvider:()=>JA,DeviceGrid:()=>foe,DeviceHistoryView:()=>f9,DeviceItem:()=>A3,DeviceList:()=>Q3,DeviceMultiSelectField:()=>Rk,DeviceName:()=>hj,DevicePicker:()=>U5,DeviceQuickDetailProvider:()=>b3,DeviceSelectField:()=>Lk,DeviceSelectorPicker:()=>l6,DeviceStepMatrix:()=>b6,DevicesFailedLine:()=>B5,DevicesLoadingLine:()=>z5,DevicesWidenWarning:()=>R5,Dialog:()=>_L,DialogBody:()=>SL,DialogContent:()=>bL,DialogDescription:()=>TL,DialogFooter:()=>CL,DialogHeader:()=>xL,DialogTitle:()=>wL,DialogTrigger:()=>vL,DiscoveryPanel:()=>x6,DisplayPaletteProvider:()=>RG,DoorbellRecentPanel:()=>w6,Dropdown:()=>yk,DropdownContent:()=>xk,DropdownItem:()=>Sk,DropdownTrigger:()=>bk,DummyHeroCard:()=>tQ,DummyInline:()=>eQ,EMPTY_DATA_TABLE_FILTER:()=>vG,EMPTY_HISTORY_PANELS:()=>G7,EVENT_KIND_ICONS:()=>Bk,EmptyState:()=>qM,EndpointResultsCard:()=>mW,EndpointTestCard:()=>_W,EntryJsonSchemaForm:()=>e8,ErrorBox:()=>YM,EventKindGlyph:()=>Uk,EventStream:()=>hY,ExtensionsPanel:()=>mI,FALLBACK_SCOPE:()=>ps,FAST_ICON_GLYPHS:()=>Wo,FILL:()=>iX,FLEET_LIST_GC_TIME_MS:()=>SJ,FLEET_LIST_QUERY_KEY:()=>bJ,FLEET_LIST_STALE_TIME_MS:()=>xJ,FanHeroCard:()=>u0,FanInlineControl:()=>Y0,FanPanel:()=>FX,FilterBar:()=>Aoe,FloatingEventStream:()=>_Y,FloatingLogStream:()=>QJ,FloatingPanel:()=>YB,FormField:()=>T6,GAP_INTERVAL_FACTOR:()=>BN,GRID_GAP:()=>Ei,GRID_PAIRED:()=>At,GRID_QUICK_STATS:()=>ae,GateBadge:()=>jse,GateControl:()=>_8,GripTrack:()=>gX,GroupedModelSelector:()=>Vz,GroupedTilePicker:()=>E6,HISTORY_PAGE_PATH:()=>U7,HISTORY_PANELS_NAMESPACE:()=>W7,HISTORY_SELECTION_MAX:()=>24,HISTORY_WINDOW_IDS:()=>r7,HISTORY_WINDOW_MS:()=>o7,HOST_WIDGETS:()=>JL,HUB_SESSION_RUN_MS:()=>YW,HistoryChart:()=>F7,HistoryWindowBar:()=>Q7,HlsVideo:()=>D6,HotkeyProvider:()=>vs,HotkeyScope:()=>xs,HoverZoomImage:()=>g3,HubSessionTestCard:()=>tG,HumidifierHeroCard:()=>o$,HumidifierInlineControl:()=>i$,INPUT_COMPACT:()=>fee,INPUT_SHELL:()=>Wk,IconAction:()=>G4,IconButton:()=>jl,IconPicker:()=>Cl,ImageHeroCard:()=>j$,ImageInlineControl:()=>A$,ImageSelector:()=>Poe,InferenceConfigSelector:()=>Foe,Input:()=>Nl,ItemFormDialog:()=>F6,KebabMenu:()=>k6,KeyValueList:()=>pU,LIST_ROW:()=>Ft,Label:()=>MB,LawnMowerHeroCard:()=>GQ,LawnMowerInlineControl:()=>UQ,LayeredSettingsForm:()=>EB,LightHeroCard:()=>s0,LightInlineControl:()=>q0,LockHeroCard:()=>$1,LockInlineControl:()=>K0,LockPanel:()=>MX,LogStream:()=>ZJ,LoginForm:()=>DJ,MEDIA_GRID:()=>he,MODE_COLOR:()=>WX,MaskShapeCanvas:()=>xle,MediaCard:()=>Uoe,MediaGrid:()=>H6,MediaPlayerHeroCard:()=>_0,MediaPlayerInlineControl:()=>n2,MediaPlayerPanel:()=>eZ,MobileDrawer:()=>XB,ModelPicker:()=>Wz,MotionZonesSettings:()=>Sle,NAVIGATION_DRIVE_INTERVAL_MS:()=>hI,NODE_COLOR_IDS:()=>Cee,NatResultCard:()=>hW,NavigationPanel:()=>TI,NetworkLinkBadge:()=>yV,NodeMultiSelectField:()=>JR,NodePicker:()=>A6,NodeSelectField:()=>qR,NotificationTargetSelectField:()=>lA,NotificationTargetsField:()=>cA,OCCUPANCY_KEY:()=>p7,OPTION_SELECT_SEARCH_MIN_OPTIONS:()=>8,OfflineBadge:()=>y2,OptionSelect:()=>rA,PAGE_SIZE_ALL:()=>0,PHASE_CONFIG:()=>KG,PICKER_CHIP_LIMIT:()=>6,PICKER_DEFAULT_GROUP_BY:()=>J8,PICKER_GROUP_BY_MODES:()=>q8,PICKER_GROUP_COLLAPSE_AT:()=>8,PICKER_NONE_KEY:()=>r5,PICKER_NOUN_PLURAL:()=>N5,PICKER_NO_FILTERS:()=>i5,PICKER_PAGE_SIZE:()=>60,PICKER_SEARCH_DEBOUNCE_MS:()=>200,PICKER_WINDOW:()=>30,PRIORITY:()=>b2,PTZOverlay:()=>jI,PageHeader:()=>Loe,PageShell:()=>j6,PageSizeSelect:()=>F3,Pagination:()=>KM,PasswordInput:()=>Vl,PhaseIcon:()=>U6,PipelineBuilder:()=>Koe,PipelineRuntimeSelector:()=>qoe,PipelineStep:()=>cB,PlaceholderChipField:()=>Ace,PlayerOverlaysProvider:()=>ci,Popover:()=>ll,PopoverContent:()=>pl,PopoverRowAction:()=>NZ,PopoverTrigger:()=>ul,PrimaryChildPicker:()=>O2,PrivacyMaskSettings:()=>Cle,ProviderBadge:()=>Yoe,ProviderEntryPills:()=>tse,PtzPanel:()=>NI,QrCode:()=>OR,RECONNECT_POLICY:()=>IV,RECORDED_PLAYBACK_MODES:()=>eL,RESOLUTION_BUCKET_MS:()=>f7,RIGHT:()=>aX,ROI_AREA_WARN_FRACTION:()=>Pr,ROLE_DESCRIPTOR:()=>LZ,ROOT_DETECTOR_STEP_ID:()=>nG,RadialGauge:()=>SX,RecordEntriesPanel:()=>n8,RecordedPlaybackProvider:()=>aL,RecordingPanel:()=>qL,ResponseLog:()=>_se,RetrainReviewBadge:()=>Mce,RoleDisplayDefaultsFromServer:()=>z4,RoleDisplayDefaultsProvider:()=>L4,RoleNodePill:()=>PV,RootModelSourceControl:()=>eB,RootSuppliedModelNote:()=>AB,RunReport:()=>jW,RunningBadge:()=>hV,RunningStatusLine:()=>gV,SCENE_CAPTURE_VARIANTS:()=>ni,SECRET_MASK_PLACEHOLDER:()=>Wl,SECRET_REVEAL_MS:()=>Ul,SECTION_BODY:()=>ue,SECTION_CARD:()=>ut,SECTION_HEADER:()=>fr,SETTING_ROW:()=>H,SETTING_ROW_LABEL:()=>sr,SETTING_ROW_STACK_BREAKPOINT:()=>`sm`,SETTING_ROW_VALUE:()=>at,SETTING_ROW_VALUE_TEXT:()=>ht,SNAPSHOT_MEDIA_PATH:()=>Jt,SPLIT_PANEL_OUTER:()=>be,SPLIT_PANEL_SIDE:()=>Fe,STACK_GAP:()=>Xe,STATE_COLOR:()=>JX,STEP_DOCK_WIDTH_PX:()=>432,SUBJECT_PATH_DWELL_EPS:()=>oa,SUBJECT_PATH_FULL_FRAME_COVERAGE:()=>Ha,SUBJECT_PATH_MAX_POINTS:()=>120,SceneMonitorEditor:()=>$9,ScopePicker:()=>p8,ScriptHeroCard:()=>I0,ScriptInlineControl:()=>F0,ScrollArea:()=>JB,SecretFieldControl:()=>Ql,SecretRevealProvider:()=>ql,SectionCard:()=>mU,SectionToolbar:()=>Boe,SectionedPage:()=>P6,SegmentedChoice:()=>v8,Select:()=>Hl,SelectedChip:()=>Gk,SemanticBadge:()=>j8,SendFrameToTrainingButton:()=>kL,SensorHeroCard:()=>vQ,SensorInlineControl:()=>nQ,SensorValueAtom:()=>WZ,Separator:()=>PB,SettingRow:()=>fU,Sidebar:()=>QB,SidebarItem:()=>ZB,Skeleton:()=>uM,SlideToggle:()=>uX,SnapshotButton:()=>Dse,SortHeaderButton:()=>rU,Sparkline:()=>Vce,StableTabPanel:()=>M6,StatCard:()=>h8,StateTimeline:()=>n7,StateValuesStream:()=>zY,StatusBadge:()=>g8,StepDetailDock:()=>b8,StepInspectorPanel:()=>S8,StepModelRow:()=>C8,StepTimings:()=>kse,Stepper:()=>lX,StorageRecordsPanel:()=>r8,StreamBrokerSelector:()=>Rse,StreamDebugOverlay:()=>PH,StreamPanel:()=>A8,Switch:()=>IB,SwitchHeroCard:()=>d0,SwitchInlineControl:()=>W0,SwitchPanel:()=>NX,SystemProvider:()=>Sr,TABLE_SCROLL_MAX_H:()=>lU,TEMPERATURE_SCALES:()=>rZ,TEXT_FIELD_LABEL:()=>Tt,TEXT_HINT:()=>Ni,TEXT_METRIC:()=>te,TEXT_SECTION_LABEL:()=>Ut,TEXT_VALUE:()=>Ae,TIMEZONES:()=>zi,Tabs:()=>WB,TabsContent:()=>qB,TabsList:()=>GB,TabsTrigger:()=>KB,TapToggle:()=>CX,ThemeProvider:()=>vJ,ThermostatHeroCard:()=>K1,ThermostatInlineControl:()=>Q0,TimeSeriesChart:()=>e7,TimezoneSelector:()=>AR,Tooltip:()=>Il,TooltipContent:()=>Rl,TooltipTrigger:()=>Ll,TrainingBaseModelPicker:()=>dG,TrainingCollectionPicker:()=>EL,UNIT_PREFERENCES_NAMESPACE:()=>nZ,UiTextProvider:()=>vr,UiTrans:()=>hi,UnitPicker:()=>K5,UnitPreferencesFromServer:()=>g9,UnitPreferencesProvider:()=>dZ,VacuumHeroCard:()=>MQ,VacuumInlineControl:()=>AQ,ValueReadout:()=>cX,ValveHeroCard:()=>t$,ValveInlineControl:()=>XQ,VersionBadge:()=>Jse,ViewSwitch:()=>Y5,VodPlaybackProvider:()=>cF,WaterHeaterHeroCard:()=>f$,WaterHeaterInlineControl:()=>u$,WeatherHeroCard:()=>C$,WeatherInlineControl:()=>v$,WidgetMetricCard:()=>an,WidgetPanel:()=>$t,WidgetRegistryProvider:()=>RA,WidgetSlot:()=>YL,ZoneEditingProvider:()=>v9,acceleratorLabel:()=>Rz,acceleratorShortLabel:()=>zz,agentColumnKey:()=>f6,alignSeries:()=>dN,allDeviceTypeFilterOptions:()=>qo,anchorNow:()=>i9,applyFleetQueryDefaults:()=>CJ,applyPickerFilters:()=>d5,ariaSortForColumn:()=>cU,assignNodeColorId:()=>Vi,axisTicks:()=>RN,badgeFor:()=>jn,binaryBatteryIsLow:()=>sV,bindsToModel:()=>_B,booleanLabels:()=>N7,bucketTotals:()=>sP,buildColorByNodeId:()=>DV,buildDataRecordRows:()=>s8,buildPeerConnectionConfig:()=>aH,buildStepTreeFromSchema:()=>E8,buildSubjectPath:()=>La,buildTimeSeriesModel:()=>Q5,catalogHasDraft:()=>Zk,chartKeys:()=>S7,chartSeriesStyle:()=>QM,childEntityId:()=>S2,childListName:()=>U2,chipOverflow:()=>G8,chunk:()=>$7,classifyAddressScope:()=>xU,classifyCapability:()=>AM,classifySessionVerdict:()=>IW,clearPickerGroup:()=>W8,clusterRootModelIds:()=>aG,cn:()=>$,colorIdForNode:()=>OV,columnsForContext:()=>r4,compareSrflxMappings:()=>HU,computePageButtons:()=>GM,consumableItemLevel:()=>aM,consumableLevelBarClass:()=>tM,consumableLevelLabel:()=>nM,consumableLevelVariant:()=>eM,containerChildToRef:()=>C2,countableDevices:()=>j3,coverHighlight:()=>GZ,coverageLine:()=>_r,createAddonI18n:()=>ule,createSharedContext:()=>Wn,createTheme:()=>ple,currentAddonLanguage:()=>P9,cursorFractionFor:()=>fL,darkColors:()=>G9,dataRecordContents:()=>o8,dataRecordKey:()=>i8,dataRecordSearchText:()=>l8,dataRecordType:()=>a8,dataTableFacetGroups:()=>bG,dataTableFacets:()=>yG,decodeCustomWindow:()=>d7,decodeSeriesRef:()=>B7,defaultAxisSpec:()=>eP,defaultOfField:()=>vB,defaultSelectClusterRoots:()=>oG,defaultSingleClusterRoot:()=>uG,defaultTheme:()=>q9,defaultUiText:()=>Fn,deriveDeviceKind:()=>R2,deriveWebrtcDebugStats:()=>_H,describeDeviceSelector:()=>d6,detectPlatform:()=>us,deviceIntegrationResolver:()=>Z3,deviceListStateOf:()=>O5,deviceMatchesFilter:()=>Ck,deviceNameNouns:()=>uj,deviceOptionLabel:()=>wk,deviceRoleMeta:()=>zo,deviceRoleMetaOf:()=>Uo,deviceTypeLabel:()=>s6,deviceTypeMeta:()=>Ro,deviceTypeMetaOf:()=>Ho,devicesToOptions:()=>Tk,dockBox:()=>y8,draftFromQuery:()=>Xk,effectivePageSize:()=>P2,emptyDevicesWidens:()=>M5,emptySessionRun:()=>LW,encodeCustomWindow:()=>u7,encodeSeriesRef:()=>z7,energyBuckets:()=>O7,ensureMfHostInit:()=>AA,eventKindLabel:()=>Hk,filterDataTableRows:()=>wG,filterDeviceOptions:()=>kk,filterOccupancyLines:()=>j7,filterOptionSelectOptions:()=>qk,filterPickerDevices:()=>F8,finalizeSessionRun:()=>JW,findTimezone:()=>Ki,flattenPickerGrouping:()=>t5,flattenPickerRows:()=>V8,fleetViewOf:()=>G5,foldDeviceName:()=>ZA,formatChartBytes:()=>tP,formatChartNumber:()=>nP,formatChartValue:()=>iP,formatControlDateTime:()=>xZ,formatDeviceName:()=>ij,formatLastSeen:()=>v2,formatNumeric:()=>tZ,formatSettingValue:()=>bB,formatSpan:()=>wN,formatTimeLabel:()=>kN,freezeVerdict:()=>SH,fuzzyMatch:()=>_G,gapThresholdMs:()=>VN,getClassColor:()=>FG,getPhaseVisual:()=>qG,groupAgentColumns:()=>p6,groupChildrenByLayout:()=>O3,groupDeviceSeries:()=>x7,groupPickerDevices:()=>z8,groupPickerDevicesBy:()=>e5,hardwareLabel:()=>p4,historyPageHref:()=>H7,hubOrigin:()=>un,hubPath:()=>bt,hubUrl:()=>L,hubWsUrl:()=>cee,humanDuration:()=>mi,humanizeName:()=>d9,humidifierTint:()=>n$,iconGlyphsFailed:()=>ns,iconGlyphsLoaded:()=>rs,indexDeviceNames:()=>qA,initialScrubState:()=>sL,insertAtSelection:()=>q5,isAbsentProvider:()=>zt,isByteUnit:()=>QN,isConsumableLevelField:()=>sM,isDataTableFilterActive:()=>xG,isDeviceNameStock:()=>lj,isDrawableSubjectPath:()=>ga,isFieldVisible:()=>Sz,isGroupExpanded:()=>B8,isHistoryWindowId:()=>s7,isKeychainFieldValue:()=>Jl,isModelScopedField:()=>hB,isRedactedSecret:()=>J6,isRefusal:()=>e9,isSecretField:()=>Y6,isValueField:()=>mB,lawnMowerActivityMeta:()=>NQ,lightColors:()=>K9,linePoints:()=>w7,loadIconGlyphs:()=>ts,loadRemoteBundle:()=>IA,lucideExportName:()=>es,makeScrubBridge:()=>pL,mapRootDetectorPlacements:()=>iG,matchesCombo:()=>ds,mergeSecretForSubmit:()=>ase,metadataEntries:()=>m4,metadataString:()=>f4,mountAddonPage:()=>Ioe,mountPath:()=>pi,nextGridPosition:()=>y6,nextReconnectAction:()=>LV,nextSort:()=>q3,nextSortDirection:()=>iU,nextTableSort:()=>aU,niceMax:()=>LN,niceRange:()=>zN,nodeColorClass:()=>CV,nodeSoftBgClass:()=>TV,nodeTextColorClass:()=>wV,normalizeForSearch:()=>gG,normalizeLanguage:()=>N9,normalizeSelection:()=>V7,nounSpecFor:()=>cj,occupancyFacets:()=>A7,occupancyLines:()=>k7,offListSelections:()=>A5,openTopLayer:()=>Tn,optionSelectSearchText:()=>Kk,orphanDeviceLabel:()=>L5,overrideEntityIdFromLink:()=>w2,pageRows:()=>K8,pageSizeLabel:()=>P3,paginateRows:()=>ZH,parentDetailOf:()=>x5,parseCapKey:()=>m7,parseCombo:()=>ls,parseConsumableLevel:()=>cM,parseIceCandidate:()=>SU,parsePickerGroupBy:()=>Y8,parseProducerKey:()=>h7,parseRecordedServerMessage:()=>rL,partitionOptionSelectSelected:()=>Jk,partitionSuggested:()=>Ek,pickerFacetFilterShown:()=>g5,pickerFacetKey:()=>s5,pickerFacetOptions:()=>c5,pickerFiltersActive:()=>p5,pickerGroupKey:()=>R8,pickerHiddenSelectedCount:()=>h5,pickerLocationKey:()=>X8,pickerQueryTokens:()=>P8,pickerRowFacts:()=>n5,pickerSearchText:()=>N8,pickerZoneFilterSuspended:()=>l5,pinnedStreamChoices:()=>$W,placePopover:()=>fl,preferenceForQuantity:()=>lZ,previousWindow:()=>l7,projectSubjectPath:()=>Xi,providerIcons:()=>dle,readHistory:()=>n9,readHistoryPanels:()=>K7,readItemId:()=>s9,readStoredGroupBy:()=>w5,readUnitPreferences:()=>cZ,reduceSessionRun:()=>VW,registerAddonBundle:()=>F9,renderMarkup:()=>U9,renderTagged:()=>Bn,resetHubMountForTests:()=>Nr,resetPickerFilters:()=>m5,resolveContainerPrimary:()=>T2,resolveControlAlign:()=>d2,resolveDeviceControl:()=>u2,resolveDeviceIntegration:()=>X3,resolveDeviceLabel:()=>fj,resolveDisplayIcon:()=>is,resolveEffectiveDefaultModel:()=>Kz,resolveEffectiveStepModel:()=>Yz,resolveEventKindIcon:()=>Vk,resolveHistoryWindow:()=>c7,resolveOptionSelectSearchable:()=>Yk,resolveParentNames:()=>b5,resolvePrimaryChild:()=>x2,resolveSelectedDevices:()=>k5,resolveSensorDisplay:()=>hZ,resolveStepDefaultModel:()=>Gz,retrainReviewBadgeLook:()=>J5,roiTooLarge:()=>ree,rootSourceState:()=>Xz,routerBasename:()=>ti,runningDurationSince:()=>pV,runningStatusParts:()=>mV,sameDeviceName:()=>QA,sameLocationSuggestions:()=>Ok,scrubReducer:()=>cL,searchSteps:()=>T8,secretDisplayValue:()=>ise,secretSubmitValue:()=>Yl,segmentsFromChanges:()=>vN,selectPickerGroup:()=>U8,selectedDeviceOptions:()=>Ak,serializeRecordedCommand:()=>$I,seriesRefId:()=>R7,settingsModelIdFor:()=>OB,sharedGapSpans:()=>pN,shiftPoints:()=>T7,shouldCommit:()=>dL,shouldEmit:()=>lL,shouldShowAddNewFooter:()=>Qk,shouldShowUseQueryRow:()=>$k,shouldUseSingleNode:()=>m6,showsNoCamerasHint:()=>j5,sortRows:()=>J3,sortRowsByColumn:()=>sU,stackBuckets:()=>oP,stackSeries:()=>gN,stateAt:()=>bN,stateRow:()=>D7,stateStyle:()=>t7,statusIcons:()=>fle,statusLine:()=>lee,stepFieldDomId:()=>SB,stepHasModelForFormat:()=>Jz,stepLocalFields:()=>DB,stepModelOptions:()=>qz,stripDeviceParentPrefix:()=>$A,stripParentNamePrefix:()=>H2,subjectPathSampleFromBox:()=>Oa,subjectPathSvgPoints:()=>Ba,summarizeHubCandidates:()=>kU,swatchFillClass:()=>tN,swatchLineClass:()=>nN,tabForSelector:()=>c6,themeToCss:()=>vle,themeToRootCss:()=>yle,timeInState:()=>yN,toStationaryOverlayBox:()=>E9,toggleDataTableFacet:()=>CG,toggleDataTableGroupFacet:()=>SG,togglePickerDevice:()=>H8,togglePickerKey:()=>f5,trainingRefusalText:()=>OL,translateAddonKey:()=>B9,trpc:()=>X,typeLabel:()=>_5,unitAxes:()=>Z5,useAccessoriesGetStatus:()=>eu,useAccessoriesSetChildHidden:()=>$l,useAccountUnitPreferences:()=>h9,useActionSourceListActions:()=>fu,useActionSourceRunAction:()=>pu,useActionSourceStopAction:()=>mu,useActionsCreate:()=>ou,useActionsDelete:()=>cu,useActionsGet:()=>nu,useActionsGetLinks:()=>uu,useActionsGetTraces:()=>au,useActionsList:()=>tu,useActionsListForCamera:()=>lu,useActionsRun:()=>ru,useActionsSetLinks:()=>du,useActionsStop:()=>iu,useActionsUpdate:()=>su,useAddonPagesListPages:()=>hu,useAddonSettingsGetDeviceSettings:()=>ed,useAddonSettingsGetGlobalSettings:()=>Zu,useAddonSettingsGetIntegrationSettings:()=>$u,useAddonSettingsUpdateDeviceSettings:()=>td,useAddonSettingsUpdateGlobalSettings:()=>Qu,useAddonT:()=>V9,useAddonWidgetsListWidgets:()=>nd,useAddonsApplyAutoUpdateToAll:()=>Wu,useAddonsCancelJob:()=>Yu,useAddonsCustom:()=>Gu,useAddonsForceRefresh:()=>Au,useAddonsGetAddonAutoUpdate:()=>Hu,useAddonsGetAutoUpdateSettings:()=>Bu,useAddonsGetJob:()=>qu,useAddonsGetLastRestart:()=>Mu,useAddonsGetLogs:()=>_u,useAddonsGetPackageDocs:()=>Lu,useAddonsGetVersions:()=>Iu,useAddonsInstallFromWorkspace:()=>bu,useAddonsInstallPackage:()=>yu,useAddonsIsWorkspaceAvailable:()=>xu,useAddonsList:()=>gu,useAddonsListCapabilityProviders:()=>Pu,useAddonsListFrameworkPackages:()=>Nu,useAddonsListInstallations:()=>wu,useAddonsListJobs:()=>Ju,useAddonsListPackages:()=>vu,useAddonsListUpdates:()=>Du,useAddonsListWorkspacePackages:()=>Su,useAddonsOnAddonLogs:()=>Xu,useAddonsReloadPackages:()=>Tu,useAddonsRestartAddon:()=>Ru,useAddonsRestartServer:()=>ju,useAddonsRetryLoad:()=>zu,useAddonsRollbackPackage:()=>ku,useAddonsSearchAvailable:()=>Eu,useAddonsSetAddonAutoUpdate:()=>Uu,useAddonsSetAutoUpdateSettings:()=>Vu,useAddonsSetCapabilityProviderEnabled:()=>Fu,useAddonsStartJob:()=>Ku,useAddonsUninstallPackage:()=>Cu,useAddonsUpdatePackage:()=>Ou,useAirQualitySensorGetStatus:()=>rd,useAlarmPanelArm:()=>id,useAlarmPanelDisarm:()=>ad,useAlarmPanelGetStatus:()=>sd,useAlarmPanelTrigger:()=>od,useAlert:()=>zr,useAlertsDismiss:()=>md,useAlertsEmit:()=>cd,useAlertsGetUnreadCount:()=>dd,useAlertsList:()=>ud,useAlertsMarkAllRead:()=>pd,useAlertsMarkRead:()=>fd,useAlertsUpdate:()=>ld,useAllWidgets:()=>cae,useAmbientLightSensorGetStatus:()=>hd,useAudioAnalysisApplyDeviceSettingsPatch:()=>Vee,useAudioAnalysisGetDeviceLiveContribution:()=>Bee,useAudioAnalysisGetDeviceSettingsContribution:()=>_d,useAudioAnalysisResolveDeviceSettings:()=>gd,useAudioAnalyzerAnalyseChunk:()=>Hee,useAudioAnalyzerAttachDevice:()=>Wee,useAudioAnalyzerClassify:()=>Uee,useAudioAnalyzerDetachDevice:()=>Gee,useAudioAnalyzerDispose:()=>qee,useAudioAnalyzerIsReady:()=>Kee,useAudioAnalyzerReprobeAudioEngine:()=>vd,useAudioCodecCanHandle:()=>Yee,useAudioCodecCloseSession:()=>Qee,useAudioCodecCreateDecodeSession:()=>Xee,useAudioCodecCreateEncodeSession:()=>Zee,useAudioCodecFlushEncode:()=>rte,useAudioCodecListActiveSessions:()=>ite,useAudioCodecListSupportedCodecs:()=>Jee,useAudioCodecPullEncoded:()=>nte,useAudioCodecPullPcm:()=>ete,useAudioCodecPushEncodedFrame:()=>$ee,useAudioCodecPushPcm:()=>tte,useAudioMetricsGetCurrentSnapshot:()=>yd,useAudioMetricsGetHistory:()=>ate,useAutomationControlDisable:()=>ste,useAutomationControlEnable:()=>ote,useAutomationControlGetStatus:()=>lte,useAutomationControlTrigger:()=>cte,useBackupCancel:()=>Cd,useBackupCheckBackupKey:()=>fte,useBackupDelete:()=>kd,useBackupDeleteSchedule:()=>Fd,useBackupDisableEncryption:()=>Od,useBackupGetEncryption:()=>Ed,useBackupGetEntries:()=>wd,useBackupList:()=>ute,useBackupListArchives:()=>Ad,useBackupListAvailableDatabases:()=>Nd,useBackupListDestinations:()=>bd,useBackupListLocations:()=>dte,useBackupListRuns:()=>Sd,useBackupListSchedules:()=>Md,useBackupPreviewSchedule:()=>jd,useBackupRestore:()=>Td,useBackupSetupEncryption:()=>Dd,useBackupTrigger:()=>xd,useBackupUpsertDestinationPolicy:()=>pte,useBackupUpsertSchedule:()=>Pd,useBatteryGetStatus:()=>hte,useBatteryWakeForStream:()=>mte,useBinaryGetStatus:()=>gte,useBrightnessGetStatus:()=>vte,useBrightnessSetBrightness:()=>_te,useBrokerAdd:()=>Rd,useBrokerGet:()=>yte,useBrokerGetBrokerConfig:()=>bte,useBrokerGetSettings:()=>Vd,useBrokerGetSettingsSchema:()=>Ud,useBrokerGetState:()=>Kd,useBrokerGetStatus:()=>qd,useBrokerList:()=>Id,useBrokerListProviders:()=>Ld,useBrokerPublish:()=>Gd,useBrokerRemove:()=>zd,useBrokerSetSettings:()=>Hd,useBrokerSubscribe:()=>xte,useBrokerTestConnection:()=>Bd,useBrokerTestSettings:()=>Wd,useBrokerUnsubscribe:()=>Ste,useButtonPress:()=>Cte,useCalendarsGetPreferences:()=>Xd,useCalendarsListCalendars:()=>Jd,useCalendarsListEvents:()=>Yd,useCalendarsSetCalendarPreference:()=>Zd,useCameraCredentialsGetCredentials:()=>wte,useCameraCredentialsGetStatus:()=>Tte,useCameraGridLayoutApplyDeviceSettingsPatch:()=>Ate,useCameraGridLayoutGetDeviceLiveContribution:()=>kte,useCameraGridLayoutGetDeviceSettingsContribution:()=>Ote,useCameraGridLayoutGetLayout:()=>Ete,useCameraGridLayoutSaveLayout:()=>Dte,useCameraPipelineConfigApplyDeviceSettingsPatch:()=>Nte,useCameraPipelineConfigGetDeviceLiveContribution:()=>Mte,useCameraPipelineConfigGetDeviceSettingsContribution:()=>jte,useCameraStreamsGetBrokerStreams:()=>Fte,useCameraStreamsGetCameraStreams:()=>Pte,useCameraStreamsGetProfileRtspEntries:()=>Ite,useCameraStreamsGetRtspEntries:()=>Qd,useCameraStreamsPickStream:()=>Lte,useCapabilityPresence:()=>jM,useCarbonMonoxideGetStatus:()=>Rte,useClassPainter:()=>BG,useClimateControlGetStatus:()=>qte,useClimateControlSetFanMode:()=>Bte,useClimateControlSetMode:()=>zte,useClimateControlSetPreset:()=>Vte,useClimateControlSetSwingHorizontal:()=>Kte,useClimateControlSetSwingVertical:()=>Gte,useClimateControlSetTarget:()=>Hte,useClimateControlSetTargetHumidity:()=>Wte,useClimateControlSetTargetRange:()=>Ute,useClusterNodes:()=>Ao,useClusterTopology:()=>ko,useColorGetStatus:()=>Yte,useColorSetColor:()=>Jte,useConfirm:()=>si,useConnectionTestDescribeTest:()=>Zte,useConnectionTestTestSettings:()=>Xte,useConnectivityGetStatus:()=>Qte,useConsumablesGetStatus:()=>ene,useConsumablesReset:()=>$te,useContactGetStatus:()=>tne,useContainerChildren:()=>D4,useControlGetStatus:()=>rne,useControlSetValue:()=>nne,useCoreBlocksCompile:()=>of,useCoreBlocksCreate:()=>ef,useCoreBlocksCreateComposition:()=>df,useCoreBlocksDelete:()=>nf,useCoreBlocksGet:()=>$d,useCoreBlocksGetAutomationRunState:()=>yf,useCoreBlocksGetBlockSettings:()=>sf,useCoreBlocksGetComposition:()=>pf,useCoreBlocksGetCustomization:()=>hf,useCoreBlocksGetTraces:()=>bf,useCoreBlocksGetTypeDefs:()=>uf,useCoreBlocksList:()=>ine,useCoreBlocksListComposableCaps:()=>gf,useCoreBlocksListCompositions:()=>mf,useCoreBlocksMigrateRawSecrets:()=>lf,useCoreBlocksReportAutomationRun:()=>vf,useCoreBlocksRestart:()=>af,useCoreBlocksSetEnabled:()=>rf,useCoreBlocksUpdate:()=>tf,useCoreBlocksUpdateBlockSettings:()=>cf,useCoreBlocksUpdateComposition:()=>ff,useCoreBlocksValidateComposition:()=>_f,useCoverClose:()=>Sf,useCoverGetStatus:()=>Ef,useCoverOpen:()=>xf,useCoverSetPosition:()=>wf,useCoverSetTiltPosition:()=>Tf,useCoverStop:()=>Cf,useCustomFieldRenderer:()=>hA,useDataTableFilter:()=>kG,useDayNightGetOptions:()=>Df,useDayNightGetStatus:()=>kf,useDayNightSetSettings:()=>Of,useDebouncedString:()=>LJ,useDecoderGetInfo:()=>Af,useDecoderReprobeHwaccel:()=>jf,useDetectionPipelineApplyDeviceSettingsPatch:()=>Pf,useDetectionPipelineGetDeviceLiveContribution:()=>Nf,useDetectionPipelineGetDeviceSettingsContribution:()=>Mf,useDevShell:()=>AJ,useDevice:()=>_j,useDeviceAdminLink:()=>b4,useDeviceAdminLinkGetAdminLink:()=>Ff,useDeviceAdoptionAdopt:()=>Bf,useDeviceAdoptionGetCandidate:()=>Rf,useDeviceAdoptionGetStatus:()=>Uf,useDeviceAdoptionListCandidateFilters:()=>If,useDeviceAdoptionListCandidates:()=>Lf,useDeviceAdoptionRefresh:()=>zf,useDeviceAdoptionRelease:()=>Vf,useDeviceAdoptionResync:()=>Hf,useDeviceAutotrack:()=>UA,useDeviceBattery:()=>l3,useDeviceCapSlice:()=>y9,useDeviceCapability:()=>Kj,useDeviceCredentialsDeleteDeviceCredential:()=>une,useDeviceCredentialsGetDeviceCaStatus:()=>dne,useDeviceCredentialsGetDeviceCertificateSettings:()=>cne,useDeviceCredentialsListDeviceCredentials:()=>ane,useDeviceCredentialsRenameDeviceCredential:()=>fne,useDeviceCredentialsRevokeDeviceCredential:()=>sne,useDeviceCredentialsSetDeviceCertificateSettings:()=>lne,useDeviceCredentialsStartEnrollment:()=>one,useDeviceDetections:()=>w9,useDeviceDiscoveryAdoptDevice:()=>Kf,useDeviceDiscoveryGetStatus:()=>Jf,useDeviceDiscoveryListDiscovered:()=>Wf,useDeviceDiscoveryRefreshDiscovery:()=>Gf,useDeviceDiscoveryReleaseDevice:()=>qf,useDeviceExportApplyDeviceSettingsPatch:()=>np,useDeviceExportExposeDevice:()=>Qf,useDeviceExportGetDeviceLiveContribution:()=>tp,useDeviceExportGetDeviceSettingsContribution:()=>ep,useDeviceExportGetStatus:()=>Yf,useDeviceExportListExposedDevices:()=>Zf,useDeviceExportListSupportedDeviceKinds:()=>Xf,useDeviceExportUnexposeDevice:()=>$f,useDeviceExtensionListCandidates:()=>ap,useDeviceExtensionListSlots:()=>ip,useDeviceExtensionListSources:()=>rp,useDeviceExtensionSetSlot:()=>op,useDeviceHistoryDeclareSeries:()=>fp,useDeviceHistoryDeleteOrphanSeries:()=>yp,useDeviceHistoryGetDeviceEnabled:()=>hp,useDeviceHistoryGetStatus:()=>_p,useDeviceHistoryListNodeSeries:()=>cp,useDeviceHistoryListOrphanSeries:()=>vp,useDeviceHistoryListSeries:()=>sp,useDeviceHistoryQuery:()=>lp,useDeviceHistoryQueryMany:()=>dp,useDeviceHistoryQueryNode:()=>up,useDeviceHistoryRecord:()=>pp,useDeviceHistoryRecordBuckets:()=>mp,useDeviceHistorySetDeviceEnabled:()=>gp,useDeviceId:()=>SA,useDeviceLabel:()=>pj,useDeviceLabelById:()=>mj,useDeviceListPageSize:()=>L2,useDeviceManagerAddLocation:()=>Up,useDeviceManagerAdoptDevice:()=>wm,useDeviceManagerAdoptionAdopt:()=>jm,useDeviceManagerAdoptionCancelJob:()=>Fm,useDeviceManagerAdoptionListCandidateFilters:()=>Om,useDeviceManagerAdoptionListCandidates:()=>km,useDeviceManagerAdoptionListJobs:()=>Pm,useDeviceManagerAdoptionRefresh:()=>Am,useDeviceManagerAdoptionRelease:()=>Mm,useDeviceManagerAdoptionResync:()=>Im,useDeviceManagerAdoptionStartJob:()=>Nm,useDeviceManagerAllocateDeviceId:()=>bp,useDeviceManagerApplyInitialMeta:()=>Bp,useDeviceManagerCleanupDeletedDevicesData:()=>cm,useDeviceManagerCreateDevice:()=>Em,useDeviceManagerDisable:()=>om,useDeviceManagerDiscoverAllProviders:()=>Rm,useDeviceManagerDiscoverDevices:()=>Cm,useDeviceManagerDiscoverProvider:()=>zm,useDeviceManagerDiscoveryProviders:()=>Lm,useDeviceManagerEnable:()=>am,useDeviceManagerGetAllBindings:()=>dm,useDeviceManagerGetBindings:()=>lm,useDeviceManagerGetBindingsBatch:()=>um,useDeviceManagerGetChildren:()=>im,useDeviceManagerGetChildrenBatch:()=>mne,useDeviceManagerGetConfigSchema:()=>vne,useDeviceManagerGetCreationSchema:()=>Tm,useDeviceManagerGetDevice:()=>rm,useDeviceManagerGetDeviceAggregate:()=>ym,useDeviceManagerGetDeviceLiveInfoAggregate:()=>vm,useDeviceManagerGetDeviceSettingsAggregate:()=>_m,useDeviceManagerGetDeviceStatusAggregate:()=>Um,useDeviceManagerGetDeviceStatusAggregateBatch:()=>Wm,useDeviceManagerGetLinkedDevices:()=>hne,useDeviceManagerGetLinkedDevicesBatch:()=>gne,useDeviceManagerGetRoleDisplayDefaults:()=>Ip,useDeviceManagerGetSettingsSchema:()=>yne,useDeviceManagerGetStreamProfileMap:()=>Cne,useDeviceManagerGetStreamSources:()=>_ne,useDeviceManagerGetWireableFields:()=>Rp,useDeviceManagerGetWrapperActivation:()=>mm,useDeviceManagerListAll:()=>nm,useDeviceManagerListBindableCapsForDeviceType:()=>gm,useDeviceManagerListDeletedSince:()=>xne,useDeviceManagerListDeviceIdsByCaps:()=>fm,useDeviceManagerListLocationDescriptions:()=>Jp,useDeviceManagerListLocationIcons:()=>Kp,useDeviceManagerListLocations:()=>Hp,useDeviceManagerListPersistedByAddon:()=>tm,useDeviceManagerListSiteZones:()=>Xp,useDeviceManagerListWrappersForCap:()=>hm,useDeviceManagerLoadConfig:()=>Tp,useDeviceManagerLoadMeta:()=>Dp,useDeviceManagerLoadRuntimeState:()=>Ep,useDeviceManagerMigrateDevice:()=>xp,useDeviceManagerPersistConfig:()=>wp,useDeviceManagerProbeStreams:()=>Tne,useDeviceManagerProviderCreationType:()=>Bm,useDeviceManagerProviderDiscoveryParamsSchema:()=>Vm,useDeviceManagerRegisterDevice:()=>Sp,useDeviceManagerRemove:()=>sm,useDeviceManagerRemoveByIntegration:()=>Sne,useDeviceManagerRemoveDevice:()=>Cp,useDeviceManagerRemoveLocation:()=>Wp,useDeviceManagerRemoveSiteZone:()=>Qp,useDeviceManagerRenameLocation:()=>Gp,useDeviceManagerRenameSiteZone:()=>$p,useDeviceManagerRunDeviceAction:()=>bm,useDeviceManagerSetChildLayout:()=>Pp,useDeviceManagerSetDisabled:()=>pne,useDeviceManagerSetDisplay:()=>Fp,useDeviceManagerSetIntegrationId:()=>jp,useDeviceManagerSetLinkDeviceId:()=>Mp,useDeviceManagerSetLocation:()=>kp,useDeviceManagerSetLocationDescription:()=>Yp,useDeviceManagerSetLocationIcon:()=>qp,useDeviceManagerSetLocationZone:()=>em,useDeviceManagerSetMetadata:()=>Vp,useDeviceManagerSetName:()=>Op,useDeviceManagerSetPrimaryChildEntityId:()=>Np,useDeviceManagerSetRole:()=>zp,useDeviceManagerSetRoleDisplayDefaults:()=>Lp,useDeviceManagerSetSiteZone:()=>Zp,useDeviceManagerSetStreamProfileMap:()=>wne,useDeviceManagerSetType:()=>Ap,useDeviceManagerSetWrapperActive:()=>pm,useDeviceManagerTestCreationField:()=>Dm,useDeviceManagerTestField:()=>Hm,useDeviceManagerUpdateConfig:()=>bne,useDeviceManagerUpdateDeviceField:()=>xm,useDeviceManagerUpdateDeviceFieldsBatch:()=>Sm,useDeviceNameIndex:()=>KA,useDeviceNameNouns:()=>dj,useDeviceNetworkLink:()=>u3,useDeviceOpsGetConfigEntries:()=>Km,useDeviceOpsGetRawState:()=>Zm,useDeviceOpsGetSettingsSchema:()=>Xm,useDeviceOpsGetStreamSources:()=>Gm,useDeviceOpsRemoveDevice:()=>Ym,useDeviceOpsRunAction:()=>Jm,useDeviceOpsSetConfig:()=>qm,useDeviceProviderAdoptDiscoveredDevice:()=>sh,useDeviceProviderCreateDevice:()=>uh,useDeviceProviderDiscoverDevices:()=>ih,useDeviceProviderGetChildCreationSchema:()=>lh,useDeviceProviderGetDevices:()=>th,useDeviceProviderGetDiscoveryParamsSchema:()=>ah,useDeviceProviderGetManualCreationType:()=>oh,useDeviceProviderGetStatus:()=>eh,useDeviceProviderReloadDevice:()=>nh,useDeviceProviderStart:()=>Qm,useDeviceProviderStop:()=>$m,useDeviceProviderSupportsDiscovery:()=>rh,useDeviceProviderSupportsManualCreation:()=>ch,useDeviceProviderTestCreationField:()=>dh,useDeviceProxy:()=>Ge,useDeviceQuickDetailOpen:()=>x3,useDeviceSeriesList:()=>o9,useDeviceSnapshot:()=>CA,useDeviceSnapshotImage:()=>Te,useDeviceState:()=>Gr,useDeviceStateClaimFields:()=>gh,useDeviceStateGetAllSnapshots:()=>mh,useDeviceStateGetCapSlice:()=>ph,useDeviceStateGetNativeCapSlice:()=>bh,useDeviceStateGetSnapshot:()=>fh,useDeviceStateListClaims:()=>yh,useDeviceStatePatchOwnedFields:()=>_h,useDeviceStateReleaseClaim:()=>vh,useDeviceStateSetCapSlice:()=>hh,useDeviceStateSlice:()=>Be,useDeviceStatusGetStatus:()=>xh,useDeviceWebrtc:()=>TW,useDevices:()=>gj,useDishwasherGetOptions:()=>Fh,useDishwasherGetStatus:()=>Ih,useDishwasherPause:()=>Ch,useDishwasherResume:()=>wh,useDishwasherSetChildLock:()=>Nh,useDishwasherSetExtraDry:()=>Ah,useDishwasherSetHalfLoad:()=>Oh,useDishwasherSetHygienePlus:()=>kh,useDishwasherSetIntensiveZone:()=>jh,useDishwasherSetOption:()=>Ph,useDishwasherSetPower:()=>Dh,useDishwasherSetProgram:()=>Eh,useDishwasherSetVarioSpeedPlus:()=>Mh,useDishwasherStart:()=>Sh,useDishwasherStop:()=>Th,useDisplayIconResolver:()=>cs,useDisplayPaletteGetPalette:()=>Lh,useDisplayPaletteListPresets:()=>Rh,useDisplayPaletteSetPalette:()=>zh,useDisplayPaletteView:()=>zG,useDoorbellEvents:()=>D9,useDoorbellGetStatus:()=>Bh,useEnumSensorGetStatus:()=>Vh,useEventEmitterGetStatus:()=>Hh,useEventInvalidation:()=>O9,useEventStreamLatest:()=>Do,useEventStreamMap:()=>Oo,useFaceGalleryAssignFace:()=>$h,useFaceGalleryAssignFaces:()=>ng,useFaceGalleryAuditIdentitySamples:()=>Jh,useFaceGalleryCreateIdentity:()=>Wh,useFaceGalleryDeleteFace:()=>tg,useFaceGalleryDeleteIdentity:()=>Kh,useFaceGalleryGetFaceByTrack:()=>Zh,useFaceGalleryGetFaceMedia:()=>Qh,useFaceGalleryListIdentities:()=>Uh,useFaceGalleryListIdentitySamples:()=>qh,useFaceGalleryListRecentFaces:()=>Xh,useFaceGalleryRemoveSample:()=>Yh,useFaceGalleryRenameIdentity:()=>Gh,useFaceGallerySuggestFaceClusters:()=>ig,useFaceGalleryUnassignFace:()=>eg,useFaceGalleryUnassignFaces:()=>rg,useFanControlGetStatus:()=>lg,useFanControlSetDirection:()=>sg,useFanControlSetOscillating:()=>cg,useFanControlSetPercentage:()=>ag,useFanControlSetPreset:()=>og,useFeatureProbeGetStatus:()=>ug,useFloodGetStatus:()=>dg,useGasGetStatus:()=>fg,useGroupActiveGetStatus:()=>pg,useGroupCommandsGetStatus:()=>mg,useGroupStatusGetStatus:()=>hg,useHeatingValveGetStatus:()=>gg,useHistoryPanels:()=>u9,useHistoryReader:()=>a9,useHistoryReads:()=>c9,useHotkey:()=>bs,useHumidifierGetStatus:()=>bg,useHumidifierSetMode:()=>yg,useHumidifierSetOn:()=>_g,useHumidifierSetTargetHumidity:()=>vg,useHumiditySensorGetStatus:()=>xg,useIconGlyphsVersion:()=>ss,useImageGetStatus:()=>Sg,useImageSettingsGetOptions:()=>Cg,useImageSettingsGetStatus:()=>Tg,useImageSettingsSetSettings:()=>wg,useIntegrationsCreate:()=>kg,useIntegrationsDelete:()=>jg,useIntegrationsGet:()=>Dg,useIntegrationsGetAvailableTypes:()=>Pg,useIntegrationsGetByAddonId:()=>Og,useIntegrationsGetSettings:()=>Mg,useIntegrationsList:()=>Eg,useIntegrationsSetSettings:()=>Ng,useIntegrationsTestConnection:()=>Fg,useIntegrationsUpdate:()=>Ag,useIntercomEndTalkSession:()=>Vg,useIntercomGetStatus:()=>Hg,useIntercomHandleAnswer:()=>Lg,useIntercomPushTalkAudio:()=>Bg,useIntercomStartSession:()=>Ig,useIntercomStartTalkSession:()=>zg,useIntercomStopSession:()=>Rg,useIrTransmitterGetInfo:()=>Wg,useIrTransmitterSend:()=>Ug,useIsMidWidth:()=>al,useIsMobile:()=>il,useItemFormUrl:()=>V6,useKeychainAdminAcknowledgeReset:()=>r_,useKeychainAdminDeleteOrphans:()=>Zg,useKeychainAdminDownloadRecoveryKey:()=>e_,useKeychainAdminImportSecret:()=>Xg,useKeychainAdminListAudit:()=>qg,useKeychainAdminListSecrets:()=>Kg,useKeychainAdminPurgeRetiredKeys:()=>$g,useKeychainAdminResetKeychain:()=>t_,useKeychainAdminResetReport:()=>n_,useKeychainAdminReveal:()=>Jg,useKeychainAdminRotateMasterKey:()=>Qg,useKeychainAdminSetSystemSecret:()=>Yg,useKeychainAdminStatus:()=>Gg,useLawnMowerControlDock:()=>o_,useLawnMowerControlGetStatus:()=>s_,useLawnMowerControlPause:()=>a_,useLawnMowerControlStartMowing:()=>i_,useLiveBuffer:()=>IJ,useLiveEvent:()=>To,useLlmCancel:()=>u_,useLlmDeleteModel:()=>Ene,useLlmDeleteProfile:()=>h_,useLlmGenerate:()=>c_,useLlmGenerateVision:()=>l_,useLlmGetDefaults:()=>v_,useLlmGetRuntimeStatus:()=>Dne,useLlmGetUsage:()=>b_,useLlmInstallModel:()=>T_,useLlmListModelCatalog:()=>x_,useLlmListModels:()=>__,useLlmListNodeModels:()=>C_,useLlmListProfileKinds:()=>d_,useLlmListProfiles:()=>f_,useLlmListRuntimeNodes:()=>S_,useLlmMigrateRawSecrets:()=>m_,useLlmResolveModelRef:()=>w_,useLlmSetDefault:()=>y_,useLlmStartRuntime:()=>One,useLlmStopRuntime:()=>kne,useLlmTestProfile:()=>g_,useLlmUpsertProfile:()=>p_,useLocalNetworkAddCustomAddress:()=>k_,useLocalNetworkDownloadCa:()=>Ine,useLocalNetworkGetAddresses:()=>O_,useLocalNetworkGetAllowedAddresses:()=>M_,useLocalNetworkGetConnectionEndpoints:()=>D_,useLocalNetworkGetHubAddresses:()=>Fne,useLocalNetworkGetNotificationEndpoint:()=>jne,useLocalNetworkGetPreferred:()=>Ane,useLocalNetworkGetTlsStatus:()=>F_,useLocalNetworkGetViewerEndpoints:()=>Nne,useLocalNetworkList:()=>E_,useLocalNetworkRegenerateCertificate:()=>I_,useLocalNetworkRemoveCustomAddress:()=>A_,useLocalNetworkResetAllowlistToBestMatch:()=>P_,useLocalNetworkRevertToGeneratedCertificate:()=>z_,useLocalNetworkSetAddressRole:()=>j_,useLocalNetworkSetAllowedAddresses:()=>N_,useLocalNetworkSetNotificationEndpoint:()=>Mne,useLocalNetworkSetViewerEndpoints:()=>Pne,useLocalNetworkUploadCertificate:()=>L_,useLocalNetworkUseStoredUploadedCertificate:()=>R_,useLockControlGetStatus:()=>Rne,useLockControlLock:()=>B_,useLockControlOpen:()=>Lne,useLockControlUnlock:()=>V_,useMediaPlayerGetStatus:()=>Zne,useMediaPlayerNext:()=>Hne,useMediaPlayerPause:()=>Bne,useMediaPlayerPlay:()=>zne,useMediaPlayerPlayMedia:()=>Xne,useMediaPlayerPrevious:()=>Une,useMediaPlayerSeek:()=>Wne,useMediaPlayerSelectSource:()=>Yne,useMediaPlayerSetMute:()=>Kne,useMediaPlayerSetRepeat:()=>Jne,useMediaPlayerSetShuffle:()=>qne,useMediaPlayerSetVolume:()=>Gne,useMediaPlayerStop:()=>Vne,useMeshNetworkGetStatus:()=>H_,useMeshNetworkJoin:()=>Qne,useMeshNetworkLeave:()=>W_,useMeshNetworkListPeers:()=>K_,useMeshNetworkLogout:()=>G_,useMeshNetworkStartLogin:()=>U_,useMeshNetworkTestConnection:()=>$ne,useMeterGetStatus:()=>ere,useMetricsProviderCollectSnapshot:()=>tre,useMetricsProviderGetAddonStats:()=>lre,useMetricsProviderGetCached:()=>nre,useMetricsProviderGetCpuTemperature:()=>ore,useMetricsProviderGetCurrent:()=>rre,useMetricsProviderGetDiskSpace:()=>ire,useMetricsProviderGetGpuInfo:()=>are,useMetricsProviderGetLoadSeries:()=>J_,useMetricsProviderGetProcessStats:()=>sre,useMetricsProviderListAddonInstances:()=>cre,useMetricsProviderListNodeProcesses:()=>q_,useMotionDetectionAnalyze:()=>fre,useMotionDetectionApplyDeviceSettingsPatch:()=>_re,useMotionDetectionGetDeviceLiveContribution:()=>gre,useMotionDetectionGetDeviceSettingsContribution:()=>hre,useMotionDetectionRemoveCamera:()=>pre,useMotionDetectionReset:()=>mre,useMotionGetStatus:()=>dre,useMotionIsDetected:()=>ure,useMotionTriggerGetStatus:()=>yre,useMotionTriggerSetMotionTrigger:()=>vre,useMotionZonesGetOptions:()=>bre,useMotionZonesGetStatus:()=>Sre,useMotionZonesSetZone:()=>xre,useMqttBrokerAddBroker:()=>Tre,useMqttBrokerGetBrokerConfig:()=>wre,useMqttBrokerGetStatus:()=>X_,useMqttBrokerListBrokers:()=>Cre,useMqttBrokerRemoveBroker:()=>Ere,useMqttBrokerStartEmbeddedBroker:()=>Ore,useMqttBrokerStopEmbeddedBroker:()=>Y_,useMqttBrokerTestConnection:()=>Dre,useNativeObjectDetectionGetOptions:()=>Z_,useNativeObjectDetectionGetStatus:()=>ev,useNativeObjectDetectionSetEnabled:()=>$_,useNativeObjectDetectionSetSettings:()=>Q_,useNavigation:()=>vI,useNavigationGetFeatures:()=>uv,useNavigationGetStatus:()=>dv,useNavigationGoToPoint:()=>rv,useNavigationListActions:()=>iv,useNavigationMove:()=>tv,useNavigationPlaySound:()=>ov,useNavigationRunAction:()=>av,useNavigationSetLightLevel:()=>lv,useNavigationSetLightMode:()=>cv,useNavigationSetLightOn:()=>sv,useNavigationStop:()=>nv,useNetworkAccessGetEndpoint:()=>mv,useNetworkAccessGetStatus:()=>hv,useNetworkAccessListEndpoints:()=>gv,useNetworkAccessStart:()=>fv,useNetworkAccessStop:()=>pv,useNetworkLinkGetStatus:()=>_v,useNetworkQualityGetAllStats:()=>yv,useNetworkQualityGetDeviceStats:()=>vv,useNetworkQualityReportClientStats:()=>bv,useNodesClusterAddonStatus:()=>Av,useNodesDeployAddon:()=>Cv,useNodesDirectory:()=>Sv,useNodesExecuteQuery:()=>Pv,useNodesGetCapUsageGraph:()=>jv,useNodesGetNodeAddons:()=>Mv,useNodesRenameNode:()=>kv,useNodesRestartAddon:()=>Tv,useNodesRestartNode:()=>Dv,useNodesRestartProcess:()=>Ev,useNodesSetProcessLogLevel:()=>Nv,useNodesShutdownNode:()=>Ov,useNodesTopology:()=>xv,useNodesUndeployAddon:()=>wv,useNotificationOutputDeleteTarget:()=>Uv,useNotificationOutputDiscoverTargets:()=>Rv,useNotificationOutputGetTarget:()=>Lv,useNotificationOutputListTargetKinds:()=>Fv,useNotificationOutputListTargets:()=>Iv,useNotificationOutputProbeTargetConfig:()=>zv,useNotificationOutputSend:()=>Bv,useNotificationOutputSetTargetEnabled:()=>Wv,useNotificationOutputTestTarget:()=>Vv,useNotificationOutputUpsertTarget:()=>Hv,useNotificationRulesActivateAlarmProfile:()=>xy,useNotificationRulesCancelSnooze:()=>hy,useNotificationRulesCreateAlarmProfile:()=>vy,useNotificationRulesCreateRule:()=>qv,useNotificationRulesCreateSequence:()=>$v,useNotificationRulesCreateSnooze:()=>my,useNotificationRulesDeleteAlarmProfile:()=>by,useNotificationRulesDeleteRule:()=>Yv,useNotificationRulesDeleteSequence:()=>ty,useNotificationRulesGetAlarmConfig:()=>gy,useNotificationRulesGetAlarmSensors:()=>Sy,useNotificationRulesGetClipRetentionAsks:()=>ny,useNotificationRulesGetConditionCatalog:()=>sy,useNotificationRulesGetHistory:()=>uy,useNotificationRulesGetRule:()=>Kv,useNotificationRulesGetRuleLastRuns:()=>dy,useNotificationRulesGetSequence:()=>Qv,useNotificationRulesGetTemplateCatalog:()=>cy,useNotificationRulesListDeviceMutes:()=>ry,useNotificationRulesListRules:()=>Gv,useNotificationRulesListSequences:()=>Zv,useNotificationRulesListSnoozes:()=>py,useNotificationRulesPreviewStateSummary:()=>oy,useNotificationRulesPreviewTemplate:()=>ly,useNotificationRulesRenameAlarmProfile:()=>yy,useNotificationRulesResolveArtifactUrl:()=>fy,useNotificationRulesSetAlarmConfig:()=>_y,useNotificationRulesSetDeviceMuted:()=>iy,useNotificationRulesSetRuleEnabled:()=>Xv,useNotificationRulesTestRule:()=>ay,useNotificationRulesUpdateRule:()=>Jv,useNotificationRulesUpdateSequence:()=>ey,useNotifierCancel:()=>wy,useNotifierGetStatus:()=>Ty,useNotifierSend:()=>Cy,useNumericSensorGetStatus:()=>Ey,useOidcConnectionsConnectionFormSchema:()=>Dy,useOidcConnectionsCreateConnection:()=>ky,useOidcConnectionsDeleteConnection:()=>jy,useOidcConnectionsListConnections:()=>Oy,useOidcConnectionsUpdateConnection:()=>Ay,useOptimisticSlice:()=>AX,useOptionalSystem:()=>_i,useOptionalWidgetRegistry:()=>HA,useOsdGetStatus:()=>Ny,useOsdManagerClearSlotBinding:()=>Ry,useOsdManagerCopyDeviceConfiguration:()=>By,useOsdManagerDeleteTemplate:()=>Gy,useOsdManagerGetConditionSupport:()=>Iy,useOsdManagerGetDeviceOsd:()=>Py,useOsdManagerGetSourceCatalog:()=>Fy,useOsdManagerListTemplates:()=>Uy,useOsdManagerPreviewSlot:()=>Vy,useOsdManagerRenderDevice:()=>Hy,useOsdManagerSetSlotBinding:()=>Ly,useOsdManagerSetSlotCameraEnabled:()=>zy,useOsdManagerUpsertTemplate:()=>Wy,useOsdSetOverlay:()=>My,usePTZ:()=>DI,usePersistedDisclosure:()=>Zj,usePersistedPageSize:()=>N2,usePetFeederCallPet:()=>Xy,usePetFeederCancelFeed:()=>qy,usePetFeederFeed:()=>Ky,usePetFeederGetStatus:()=>nb,usePetFeederMarkFoodReplenished:()=>Yy,usePetFeederPlaySound:()=>Zy,usePetFeederResetDesiccant:()=>Jy,usePetFeederSetChildLock:()=>Qy,usePetFeederSetFeedSound:()=>eb,usePetFeederSetIndicatorLight:()=>$y,usePetFeederSetVolume:()=>tb,usePickerSiteZones:()=>D5,usePipelineAnalyticsAddRetrainFrameFromRecording:()=>xx,usePipelineAnalyticsAddRetrainFramesToCollection:()=>Sx,usePipelineAnalyticsApplyDeviceSettingsPatch:()=>Ix,usePipelineAnalyticsBackfillRetrainOrigins:()=>sx,usePipelineAnalyticsCancelRelocateMedia:()=>Gb,usePipelineAnalyticsCancelStorageMigrationMove:()=>Bb,usePipelineAnalyticsClearTrackRelation:()=>Db,usePipelineAnalyticsClearTracks:()=>sb,usePipelineAnalyticsCompleteRetrainTrack:()=>cx,usePipelineAnalyticsCountRelocatableMedia:()=>Ub,usePipelineAnalyticsCountUnstampedEventMedia:()=>Hb,usePipelineAnalyticsCreateRetrainCollection:()=>gx,usePipelineAnalyticsDeleteDeviceEvents:()=>Pb,usePipelineAnalyticsDeleteRetrainCollection:()=>bx,usePipelineAnalyticsDeleteTracks:()=>Cb,usePipelineAnalyticsDeselectRetrainFrame:()=>nx,usePipelineAnalyticsGetActiveTracks:()=>rb,usePipelineAnalyticsGetAudioEvents:()=>ub,usePipelineAnalyticsGetDeviceLiveContribution:()=>Fx,usePipelineAnalyticsGetDeviceSettingsContribution:()=>Px,usePipelineAnalyticsGetEventDensity:()=>_b,usePipelineAnalyticsGetEventDensityBatch:()=>vb,usePipelineAnalyticsGetEventMedia:()=>Tx,usePipelineAnalyticsGetEventMediaFootprintByKind:()=>Mb,usePipelineAnalyticsGetEventStoreFootprint:()=>jb,usePipelineAnalyticsGetKeyEvents:()=>mb,usePipelineAnalyticsGetKeyEventsBatch:()=>hb,usePipelineAnalyticsGetMediaReclaimStatus:()=>Jb,usePipelineAnalyticsGetMotionEvents:()=>cb,usePipelineAnalyticsGetObjectEmbeddingRebuildStatus:()=>Nx,usePipelineAnalyticsGetObjectEvents:()=>lb,usePipelineAnalyticsGetRetrainCorpusKpi:()=>$b,usePipelineAnalyticsGetRetrainExportUrl:()=>ux,usePipelineAnalyticsGetRetrainFrameImage:()=>rx,usePipelineAnalyticsGetSensorEvents:()=>pb,usePipelineAnalyticsGetStorageMigrationMoveStatus:()=>zb,usePipelineAnalyticsGetTrack:()=>ib,usePipelineAnalyticsGetTrackMedia:()=>Ex,usePipelineAnalyticsGetTrainingExportSummary:()=>Yb,usePipelineAnalyticsGetTrainingExportUrl:()=>Xb,usePipelineAnalyticsListArchivedDebugNotes:()=>Tb,usePipelineAnalyticsListBirthDecisions:()=>Ab,usePipelineAnalyticsListEventKinds:()=>db,usePipelineAnalyticsListEventKindsBatch:()=>fb,usePipelineAnalyticsListEventMedia:()=>Ox,usePipelineAnalyticsListOpsLog:()=>Kb,usePipelineAnalyticsListRecentTracks:()=>ob,usePipelineAnalyticsListRelocateMediaJobs:()=>Wb,usePipelineAnalyticsListRetrainAnnotations:()=>ax,usePipelineAnalyticsListRetrainAssistProfiles:()=>mx,usePipelineAnalyticsListRetrainCollectionFrames:()=>wx,usePipelineAnalyticsListRetrainCollections:()=>_x,usePipelineAnalyticsListRetrainCorpusPage:()=>Qb,usePipelineAnalyticsListRetrainFrames:()=>ex,usePipelineAnalyticsListRetrainStaging:()=>Zb,usePipelineAnalyticsListTrackMedia:()=>Dx,usePipelineAnalyticsListTrackRelations:()=>kb,usePipelineAnalyticsListTracks:()=>ab,usePipelineAnalyticsOfferRetrainArchive:()=>px,usePipelineAnalyticsOwnersWithMedia:()=>kx,usePipelineAnalyticsPauseForStorageMigration:()=>Fb,usePipelineAnalyticsProposeRetrainAnnotations:()=>ix,usePipelineAnalyticsProposeRetrainAnnotationsWithLlm:()=>hx,usePipelineAnalyticsPruneEvents:()=>Nb,usePipelineAnalyticsPruneEventsBefore:()=>yb,usePipelineAnalyticsPruneTracksBefore:()=>bb,usePipelineAnalyticsReadLongTermSeries:()=>gb,usePipelineAnalyticsRebuildObjectEmbeddings:()=>Mx,usePipelineAnalyticsReclaimDebugMedia:()=>qb,usePipelineAnalyticsReconcileFromDisk:()=>Sb,usePipelineAnalyticsRefreshStorageLocationsForMigration:()=>Lb,usePipelineAnalyticsRelocateMedia:()=>Vb,usePipelineAnalyticsRemoveRetrainFrameFromCollection:()=>Cx,usePipelineAnalyticsRenameRetrainCollection:()=>yx,usePipelineAnalyticsResolveRetrainTrainingCorpus:()=>vx,usePipelineAnalyticsRestageRetrainTrack:()=>lx,usePipelineAnalyticsResumeForStorageMigration:()=>Ib,usePipelineAnalyticsSaveRetrainAnnotations:()=>ox,usePipelineAnalyticsSearchObjectEvents:()=>Ax,usePipelineAnalyticsSelectRetrainFrames:()=>tx,usePipelineAnalyticsSetRetrainFrameComplete:()=>dx,usePipelineAnalyticsSetTrackFlags:()=>wb,usePipelineAnalyticsSetTrackPurity:()=>Ob,usePipelineAnalyticsSetTrackRelation:()=>Eb,usePipelineAnalyticsStartStorageMigrationMove:()=>Rb,usePipelineAnalyticsWipeAllAnalytics:()=>xb,usePipelineAnalyticsWipeObjectEmbeddings:()=>jx,usePipelineAnalyticsWriteRetrainArchive:()=>fx,usePipelineExecutorCacheFrameInPool:()=>$x,usePipelineExecutorDeleteModel:()=>Xx,usePipelineExecutorDownloadModel:()=>Yx,usePipelineExecutorGetAddonModels:()=>Jx,usePipelineExecutorGetAudioCapabilities:()=>uS,usePipelineExecutorGetAvailableEngines:()=>Lx,usePipelineExecutorGetCapabilities:()=>qx,usePipelineExecutorGetDetectionConfigSchema:()=>fS,usePipelineExecutorGetEffectiveTuning:()=>nS,usePipelineExecutorGetEngineProvisioning:()=>zx,usePipelineExecutorGetInferenceDeviceHealth:()=>Hx,usePipelineExecutorGetOrchestratorConfigSchema:()=>Gx,usePipelineExecutorGetReferenceAudio:()=>lS,usePipelineExecutorGetReferenceAudioFiles:()=>cS,usePipelineExecutorGetReferenceImage:()=>sS,usePipelineExecutorGetSchema:()=>Wx,usePipelineExecutorGetSelectedEngine:()=>Rx,usePipelineExecutorGetVideoPipelineSteps:()=>Bx,usePipelineExecutorInferCached:()=>eS,usePipelineExecutorKillEngine:()=>aS,usePipelineExecutorListLoadedEngines:()=>rS,usePipelineExecutorListReferenceImages:()=>oS,usePipelineExecutorRearmInferenceDevice:()=>Ux,usePipelineExecutorRunAudioTest:()=>dS,usePipelineExecutorRunPipeline:()=>Zx,usePipelineExecutorRunPipelineBatch:()=>Qx,usePipelineExecutorSetVideoPipelineSteps:()=>Vx,usePipelineExecutorSpinEngine:()=>iS,usePipelineExecutorUncacheFrame:()=>tS,usePipelineExecutorValidatePipeline:()=>Kx,usePipelineOrchestratorAbortNodeBenchmark:()=>rC,usePipelineOrchestratorApplyAutoTune:()=>JS,usePipelineOrchestratorApplyDeviceSettingsPatch:()=>SC,usePipelineOrchestratorAssignAudio:()=>AS,usePipelineOrchestratorAssignPipeline:()=>gS,usePipelineOrchestratorDeleteNodeBenchmarkResult:()=>oC,usePipelineOrchestratorForgetInferenceDevice:()=>GS,usePipelineOrchestratorGetAgentLoad:()=>CS,usePipelineOrchestratorGetAgentSettings:()=>FS,usePipelineOrchestratorGetAudioAssignment:()=>MS,usePipelineOrchestratorGetAudioAssignments:()=>PS,usePipelineOrchestratorGetAudioNodeLoad:()=>NS,usePipelineOrchestratorGetCameraDetectionSource:()=>lC,usePipelineOrchestratorGetCameraMetrics:()=>ES,usePipelineOrchestratorGetCameraSettings:()=>sC,usePipelineOrchestratorGetCameraStatus:()=>hC,usePipelineOrchestratorGetCameraStatuses:()=>gC,usePipelineOrchestratorGetCameraSwitches:()=>pC,usePipelineOrchestratorGetCapabilityBindings:()=>DS,usePipelineOrchestratorGetClusterModelChoice:()=>wS,usePipelineOrchestratorGetDeviceLiveContribution:()=>xC,usePipelineOrchestratorGetDeviceSettingsContribution:()=>bC,usePipelineOrchestratorGetEffectiveShares:()=>QS,usePipelineOrchestratorGetGlobalMetrics:()=>TS,usePipelineOrchestratorGetIngestOwner:()=>kS,usePipelineOrchestratorGetNodeBenchmarkCandidates:()=>iC,usePipelineOrchestratorGetNodeBenchmarkPreflight:()=>eC,usePipelineOrchestratorGetNodeBenchmarkStatus:()=>nC,usePipelineOrchestratorGetNodeInferenceDevices:()=>WS,usePipelineOrchestratorGetPipelineAssignment:()=>SS,usePipelineOrchestratorGetPipelineAssignments:()=>xS,usePipelineOrchestratorGetPipelineDevicePin:()=>yS,usePipelineOrchestratorGetPlacementStats:()=>XS,usePipelineOrchestratorGetReconcileFromDiskStatus:()=>yC,usePipelineOrchestratorListAgentSettings:()=>IS,usePipelineOrchestratorListNodeBenchmarkResults:()=>aC,usePipelineOrchestratorPauseForStorageMigration:()=>mS,usePipelineOrchestratorPlanAutoTune:()=>qS,usePipelineOrchestratorRebalance:()=>bS,usePipelineOrchestratorReconcileFromDisk:()=>vC,usePipelineOrchestratorRemoveAgentSettings:()=>LS,usePipelineOrchestratorRequestOccupancyLook:()=>pS,usePipelineOrchestratorResetNodePipelineDefaults:()=>KS,usePipelineOrchestratorResolvePipeline:()=>fC,usePipelineOrchestratorResumeForStorageMigration:()=>hS,usePipelineOrchestratorSetAgentCapabilities:()=>zS,usePipelineOrchestratorSetAgentDecodeLimits:()=>BS,usePipelineOrchestratorSetAgentInferenceDevices:()=>HS,usePipelineOrchestratorSetAgentMaxCameras:()=>RS,usePipelineOrchestratorSetAgentReachableHost:()=>VS,usePipelineOrchestratorSetCameraDetectionSource:()=>uC,usePipelineOrchestratorSetCameraSensors:()=>_C,usePipelineOrchestratorSetCameraStepSettings:()=>dC,usePipelineOrchestratorSetCameraStepToggle:()=>cC,usePipelineOrchestratorSetCameraSwitch:()=>mC,usePipelineOrchestratorSetCapabilityBinding:()=>OS,usePipelineOrchestratorSetLoadBalancingShares:()=>YS,usePipelineOrchestratorSetNodeStepSettings:()=>US,usePipelineOrchestratorSetPipelineDevicePin:()=>vS,usePipelineOrchestratorSetShareSource:()=>$S,usePipelineOrchestratorStartNodeBenchmark:()=>tC,usePipelineOrchestratorSuggestShares:()=>ZS,usePipelineOrchestratorUnassignAudio:()=>jS,usePipelineOrchestratorUnassignPipeline:()=>_S,usePipelineRunnerAbortNodeBench:()=>BC,usePipelineRunnerAttachCamera:()=>CC,usePipelineRunnerDetachCamera:()=>wC,usePipelineRunnerGetAllCameraMetrics:()=>kC,usePipelineRunnerGetCameraMetrics:()=>OC,usePipelineRunnerGetLocalCameras:()=>AC,usePipelineRunnerGetLocalLoad:()=>EC,usePipelineRunnerGetLocalMetrics:()=>DC,usePipelineRunnerGetNativeCrop:()=>MC,usePipelineRunnerGetNodeBenchStatus:()=>zC,usePipelineRunnerGetParkedTrackFrame:()=>IC,usePipelineRunnerParkTrackFrame:()=>FC,usePipelineRunnerReleaseParkedTrackFrames:()=>LC,usePipelineRunnerReportMotion:()=>TC,usePipelineRunnerRequestOccupancyBurst:()=>jC,usePipelineRunnerRunDetailSubtree:()=>NC,usePipelineRunnerRunStatelessStep:()=>PC,usePipelineRunnerStartNodeBench:()=>RC,usePlateGalleryAssignPlate:()=>ew,usePlateGalleryAssignPlates:()=>nw,usePlateGalleryCorrectPlateText:()=>KC,usePlateGalleryCreateVehicle:()=>YC,usePlateGalleryDeletePlate:()=>qC,usePlateGalleryDeleteVehicle:()=>ZC,usePlateGalleryGetPlateByTrack:()=>HC,usePlateGalleryGetPlateMedia:()=>UC,usePlateGalleryListPlates:()=>VC,usePlateGalleryListVehicleSamples:()=>QC,usePlateGalleryListVehicles:()=>JC,usePlateGalleryRemoveVehicleSample:()=>$C,usePlateGalleryRenameVehicle:()=>XC,usePlateGallerySearchPlates:()=>WC,usePlateGallerySuggestPlateClusters:()=>GC,usePlateGalleryUnassignPlate:()=>tw,usePlateGalleryUnassignPlates:()=>rw,usePlayerOverlayLayer:()=>Or,usePlayerOverlayLayers:()=>Xr,usePlayerToolbarButton:()=>tr,usePlayerToolbarButtons:()=>bn,usePowerMeterGetStatus:()=>iw,usePresenceGetStatus:()=>aw,usePressureSensorGetStatus:()=>ow,usePrivacyMaskGetOptions:()=>sw,usePrivacyMaskGetStatus:()=>uw,usePrivacyMaskSetAudioEnabled:()=>lw,usePrivacyMaskSetMask:()=>cw,usePrompt:()=>Pn,usePtzAutotrackGetSettings:()=>Aw,usePtzAutotrackGetStatus:()=>Ow,usePtzAutotrackSetEnabled:()=>kw,usePtzAutotrackSetSettings:()=>jw,usePtzCaptureHomeHere:()=>Sw,usePtzContinuousMove:()=>fw,usePtzDeletePreset:()=>_w,usePtzGetHomePreset:()=>bw,usePtzGetHomeReturn:()=>Cw,usePtzGetOptions:()=>vw,usePtzGetPosition:()=>Tw,usePtzGetPresets:()=>mw,usePtzGetStatus:()=>Dw,usePtzGoHome:()=>yw,usePtzGoToPreset:()=>hw,usePtzMove:()=>dw,usePtzSavePreset:()=>gw,usePtzSetAutofocus:()=>Ew,usePtzSetHomePreset:()=>xw,usePtzSetHomeReturn:()=>ww,usePtzStop:()=>pw,useRebootReboot:()=>Mw,useRecordEntriesDeleteEntry:()=>Iw,useRecordEntriesListEntries:()=>Pw,useRecordEntriesListEntryKinds:()=>Nw,useRecordEntriesPutEntry:()=>Fw,useRecordedPlayback:()=>oL,useRecordingArchiveApplyDeviceSettingsPatch:()=>xT,useRecordingArchiveCancelRelocateJob:()=>pT,useRecordingArchiveCancelStorageMigrationMove:()=>cT,useRecordingArchiveDeleteFootprint:()=>$w,useRecordingArchiveGetAvailabilityBatch:()=>Hw,useRecordingArchiveGetDaysWithRecordingsBatch:()=>Uw,useRecordingArchiveGetDeviceConfig:()=>Gw,useRecordingArchiveGetDeviceLiveContribution:()=>bT,useRecordingArchiveGetDeviceSettingsContribution:()=>yT,useRecordingArchiveGetPlacement:()=>gT,useRecordingArchiveGetRelocateResidue:()=>dT,useRecordingArchiveGetStatus:()=>vT,useRecordingArchiveGetStorageMigrationMoveStatus:()=>sT,useRecordingArchiveGetStorageUsage:()=>Ww,useRecordingArchiveListOpsLog:()=>eT,useRecordingArchiveListRelocateJobs:()=>uT,useRecordingArchiveLocateSegment:()=>Kw,useRecordingArchivePauseForStorageMigration:()=>rT,useRecordingArchivePlanStorageRebalance:()=>mT,useRecordingArchivePruneFootage:()=>Qw,useRecordingArchiveReadGopBytes:()=>Jw,useRecordingArchiveReadSegmentBytes:()=>qw,useRecordingArchiveReadWindowBytes:()=>Yw,useRecordingArchiveReconcileLedgerAgainstDisk:()=>fT,useRecordingArchiveRefreshStorageLocationsForMigration:()=>aT,useRecordingArchiveRelocateFootage:()=>lT,useRecordingArchiveRenderClip:()=>nT,useRecordingArchiveRenderGif:()=>tT,useRecordingArchiveRescanStorage:()=>Zw,useRecordingArchiveResumeForStorageMigration:()=>iT,useRecordingArchiveSetDeviceConfig:()=>Xw,useRecordingArchiveSetDevicePlacement:()=>_T,useRecordingArchiveStartStorageMigrationMove:()=>oT,useRecordingArchiveStartStorageRebalance:()=>hT,useRecordingExportCancelExport:()=>TT,useRecordingExportCreateExport:()=>ST,useRecordingExportDeleteExport:()=>ET,useRecordingExportGetDownloadUrl:()=>DT,useRecordingExportGetExport:()=>wT,useRecordingExportListExports:()=>CT,useRecordingExportReadExportBytes:()=>OT,useRecordingGetAvailability:()=>Rw,useRecordingGetDaysWithRecordings:()=>zw,useRecordingGetPlayback:()=>Bw,useRecordingGetPlaybackOptions:()=>Vw,useRecordingListSources:()=>Lw,useRecordingOnboardGetOptions:()=>kT,useRecordingOnboardGetStatus:()=>jT,useRecordingOnboardSetSettings:()=>AT,useRecordingSignalGetStatus:()=>MT,useRemoteComponent:()=>BA,useRemoteGetConfig:()=>NT,useRemoteListCommands:()=>FT,useRemoteSendCommand:()=>IT,useRemoteSendMediaCommand:()=>LT,useRemoteSetConfig:()=>PT,useRoleDisplayDefaults:()=>R4,useRunningStateGetStatus:()=>RT,useSceneMonitorCaptureReference:()=>WT,useSceneMonitorCreateScene:()=>VT,useSceneMonitorDeleteReference:()=>GT,useSceneMonitorDeleteScene:()=>UT,useSceneMonitorGetStatus:()=>JT,useSceneMonitorListScenes:()=>zT,useSceneMonitorListScenesBatch:()=>BT,useSceneMonitorRecheckNow:()=>KT,useSceneMonitorResetScene:()=>qT,useSceneMonitorUpdateScene:()=>HT,useScriptRunnerGetStatus:()=>ZT,useScriptRunnerRun:()=>YT,useScriptRunnerStop:()=>XT,useScrubController:()=>mL,useSearchFieldHotkey:()=>Cs,useServerManagementApplyServerUpdate:()=>eE,useServerManagementCheckServerUpdate:()=>$T,useServerManagementGetServerPackageStatus:()=>QT,useServerManagementRestartServer:()=>nE,useServerManagementRollbackServerUpdate:()=>tE,useSettingsStoreAggregate:()=>gE,useSettingsStoreCount:()=>hE,useSettingsStoreDeclareCollection:()=>yE,useSettingsStoreDelete:()=>fE,useSettingsStoreDeleteWhere:()=>pE,useSettingsStoreGet:()=>rE,useSettingsStoreHistogram:()=>_E,useSettingsStoreInsert:()=>cE,useSettingsStoreInsertMany:()=>lE,useSettingsStoreIsEmpty:()=>vE,useSettingsStoreQuery:()=>aE,useSettingsStoreSet:()=>iE,useSettingsStoreTransact:()=>uE,useSettingsStoreUpdate:()=>dE,useSettingsStoreUpdateWhere:()=>mE,useSettingsStoreUpsert:()=>oE,useSettingsStoreUpsertMany:()=>sE,useSmokeGetStatus:()=>bE,useSnapshotApplyDeviceSettingsPatch:()=>kE,useSnapshotGetDebugState:()=>wE,useSnapshotGetDeviceLiveContribution:()=>OE,useSnapshotGetDeviceSettingsContribution:()=>DE,useSnapshotGetSnapshot:()=>xE,useSnapshotGetSnapshotLinks:()=>TE,useSnapshotGetSnapshotOverview:()=>CE,useSnapshotGetStatus:()=>EE,useSnapshotInvalidateCache:()=>SE,useStationaryOverlay:()=>tle,useStorageAbortUpload:()=>BE,useStorageBeginDownload:()=>VE,useStorageBeginUpload:()=>LE,useStorageDelete:()=>FE,useStorageDeleteLocation:()=>qE,useStorageEndDownload:()=>UE,useStorageExists:()=>NE,useStorageFinalizeUpload:()=>zE,useStorageGetAvailableSpace:()=>IE,useStorageList:()=>PE,useStorageListDrainProgress:()=>JE,useStorageListLocationDeclarations:()=>GE,useStorageListLocations:()=>WE,useStorageListProviders:()=>XE,useStorageMigrationCancel:()=>tD,useStorageMigrationCleanupCancel:()=>cD,useStorageMigrationCleanupStart:()=>oD,useStorageMigrationCleanupStatus:()=>sD,useStorageMigrationDrain:()=>aD,useStorageMigrationHistory:()=>lD,useStorageMigrationMoverClearance:()=>rD,useStorageMigrationMovers:()=>nD,useStorageMigrationPlan:()=>QE,useStorageMigrationResidue:()=>iD,useStorageMigrationStart:()=>$E,useStorageMigrationStatus:()=>eD,useStorageRead:()=>ME,useStorageReadChunk:()=>HE,useStorageResolve:()=>AE,useStorageTestConfig:()=>ZE,useStorageTestLocation:()=>YE,useStorageUpsertLocation:()=>KE,useStorageWrite:()=>jE,useStorageWriteChunk:()=>RE,useStoredGroupBy:()=>E5,useStreamBrokerAcquireEgressTranscode:()=>AD,useStreamBrokerApplyDeviceSettingsPatch:()=>qD,useStreamBrokerAssignProfile:()=>pD,useStreamBrokerFetchEventMedia:()=>vD,useStreamBrokerForgetDeviceHardware:()=>hD,useStreamBrokerGetAllRtspEntries:()=>RD,useStreamBrokerGetBrokerStats:()=>xD,useStreamBrokerGetDeviceAudioMute:()=>UD,useStreamBrokerGetDeviceLiveContribution:()=>KD,useStreamBrokerGetDeviceSettingsContribution:()=>GD,useStreamBrokerGetLiveViewerCounts:()=>wD,useStreamBrokerGetPreBufferInfo:()=>ID,useStreamBrokerGetRtspEntry:()=>zD,useStreamBrokerGetRtspPort:()=>LD,useStreamBrokerGetStreamUrl:()=>DD,useStreamBrokerGetStreamWithCodec:()=>OD,useStreamBrokerIsRtspEnabled:()=>HD,useStreamBrokerKillClient:()=>TD,useStreamBrokerListAllCameraStreams:()=>yD,useStreamBrokerListAllProfileSlots:()=>bD,useStreamBrokerListClients:()=>CD,useStreamBrokerProbeStream:()=>SD,useStreamBrokerProduceEventMedia:()=>_D,useStreamBrokerPublishCameraStream:()=>dD,useStreamBrokerPullAudioChunks:()=>ND,useStreamBrokerRegenerateRtspToken:()=>BD,useStreamBrokerReleaseEgressTranscode:()=>jD,useStreamBrokerReleaseStreamWithCodec:()=>kD,useStreamBrokerRenderPreBufferClip:()=>gD,useStreamBrokerReportStreamSignal:()=>uD,useStreamBrokerRestartProfile:()=>ED,useStreamBrokerRetractCameraStream:()=>fD,useStreamBrokerSetDeviceAudioMute:()=>WD,useStreamBrokerSetPreBufferDuration:()=>FD,useStreamBrokerSetRtspEnabled:()=>VD,useStreamBrokerSubscribeAudioChunks:()=>MD,useStreamBrokerUnassignProfile:()=>mD,useStreamBrokerUnsubscribeAudioChunks:()=>PD,useStreamCatalogGetCatalog:()=>JD,useStreamParamsGetConfigSchema:()=>ZD,useStreamParamsGetOptions:()=>YD,useStreamParamsGetStatus:()=>QD,useStreamParamsSetProfile:()=>XD,useStreamSignalsListSignals:()=>$D,useSwitchGetStatus:()=>tO,useSwitchSetState:()=>eO,useSystem:()=>Rn,useSystemDetectSiteLocation:()=>dO,useSystemFeatureFlags:()=>iO,useSystemForceRetentionCleanup:()=>cO,useSystemGetFailureContributions:()=>mO,useSystemGetLoadContributions:()=>pO,useSystemGetLoggingSettings:()=>hO,useSystemGetRequestCensus:()=>fO,useSystemGetRetentionConfig:()=>oO,useSystemGetSiteLocation:()=>lO,useSystemHealth:()=>rO,useSystemInfo:()=>nO,useSystemMutation:()=>ile,useSystemNetworkAddresses:()=>aO,useSystemQuery:()=>rle,useSystemSetLoggingSettings:()=>gO,useSystemSetRetentionConfig:()=>sO,useSystemSetSiteLocation:()=>uO,useTamperGetStatus:()=>_O,useTemperatureSensorGetStatus:()=>vO,useTemplateCreate:()=>xO,useTemplateDelete:()=>CO,useTemplateGet:()=>bO,useTemplateList:()=>yO,useTemplateUpdate:()=>SO,useTerminalSessionAdoptLegacyMonitor:()=>jO,useTerminalSessionClose:()=>LO,useTerminalSessionCreateInstance:()=>EO,useTerminalSessionDeleteInstance:()=>OO,useTerminalSessionListInstances:()=>TO,useTerminalSessionListLegacyCameras:()=>AO,useTerminalSessionListProfiles:()=>wO,useTerminalSessionListSessions:()=>MO,useTerminalSessionOpenSession:()=>NO,useTerminalSessionPullOutput:()=>FO,useTerminalSessionResize:()=>PO,useTerminalSessionSetInstanceEnabled:()=>kO,useTerminalSessionUpdateInstance:()=>DO,useTerminalSessionWriteInput:()=>IO,useThemeMode:()=>yJ,useToastOnToast:()=>RO,useTrainingCanaryResult:()=>YO,useTrainingCancelJob:()=>GO,useTrainingDiscardResult:()=>ZO,useTrainingGetJob:()=>WO,useTrainingGetJobResult:()=>KO,useTrainingListBaseModels:()=>zO,useTrainingListCanaryTargets:()=>qO,useTrainingListJobs:()=>UO,useTrainingPlanJob:()=>BO,useTrainingRegisterResult:()=>JO,useTrainingRollbackCanary:()=>XO,useTrainingStartJob:()=>VO,useTrainingStartJobBatch:()=>HO,useTurnProviderGetTurnServers:()=>QO,useUiText:()=>q,useUnitPreferences:()=>fZ,useUpdateGetStatus:()=>ek,useUpdateInstallUpdate:()=>$O,useUrlQueryParam:()=>B6,useUserManagementConfirmTotp:()=>jre,useUserManagementCreateUser:()=>nk,useUserManagementDeleteUser:()=>ik,useUserManagementDisableTotp:()=>sk,useUserManagementFindUserByExternalIdentity:()=>Rre,useUserManagementGetTotpStatus:()=>ck,useUserManagementListExternalIdentities:()=>lk,useUserManagementListOauthSessions:()=>dk,useUserManagementListUsers:()=>tk,useUserManagementMigrateRawSecrets:()=>Mre,useUserManagementOauthExchangeCode:()=>Fre,useUserManagementOauthIssueCode:()=>Pre,useUserManagementOauthRefresh:()=>Ire,useUserManagementOauthVerifyAccessToken:()=>Lre,useUserManagementResetPassword:()=>ak,useUserManagementRevokeOauthSession:()=>fk,useUserManagementSetUserScopes:()=>ok,useUserManagementSetupTotp:()=>Are,useUserManagementUnlinkExternalIdentity:()=>uk,useUserManagementUpdateUser:()=>rk,useUserManagementValidateCredentials:()=>kre,useUserManagementVerifyTotp:()=>Nre,useVacuumControlGetStatus:()=>Gre,useVacuumControlLocate:()=>Ure,useVacuumControlPause:()=>Bre,useVacuumControlReturnToBase:()=>Hre,useVacuumControlSetFanSpeed:()=>Wre,useVacuumControlStart:()=>zre,useVacuumControlStop:()=>Vre,useValveClose:()=>qre,useValveGetStatus:()=>Xre,useValveOpen:()=>Kre,useValveSetPosition:()=>Yre,useValveStop:()=>Jre,useVibrationGetStatus:()=>Zre,useVideoclipsDialClipStream:()=>eie,useVideoclipsGetClipPlayback:()=>hk,useVideoclipsGetPlaybackOptions:()=>tie,useVideoclipsListClips:()=>pk,useVideoclipsListSources:()=>mk,useVideoclipsOfferClipBytes:()=>$re,useVideoclipsReadClipBytes:()=>Qre,useVodPlayback:()=>lF,useWaterHeaterGetStatus:()=>aie,useWaterHeaterSetAway:()=>iie,useWaterHeaterSetOperationMode:()=>rie,useWaterHeaterSetTargetTemp:()=>nie,useWeatherGetStatus:()=>oie,useWebrtcSessionAddIceCandidate:()=>die,useWebrtcSessionApplyDownlinkProbe:()=>gie,useWebrtcSessionCloseSession:()=>pie,useWebrtcSessionCreateSession:()=>cie,useWebrtcSessionGetIceCandidates:()=>fie,useWebrtcSessionGetSessionDebug:()=>_ie,useWebrtcSessionGetSessionState:()=>hie,useWebrtcSessionHandleAnswer:()=>uie,useWebrtcSessionHandleOffer:()=>lie,useWebrtcSessionHasAdaptiveBitrate:()=>mie,useWebrtcSessionListStreams:()=>sie,useWidget:()=>sae,useWidgetMetadata:()=>zA,useWidgetRegistry:()=>VA,useZoneAnalyticsGetCameraHistory:()=>xie,useZoneAnalyticsGetCurrentSnapshot:()=>vie,useZoneAnalyticsGetCurrentSnapshotBatch:()=>yie,useZoneAnalyticsGetUnzonedHistory:()=>Sie,useZoneAnalyticsGetZoneHistory:()=>bie,useZoneEditing:()=>ele,useZoneRulesListRules:()=>Cie,useZoneRulesSetRules:()=>wie,useZonesAddZone:()=>Tie,useZonesListZones:()=>gk,useZonesRemoveZone:()=>Eie,useZonesUpdateZone:()=>Die,vacuumStateMeta:()=>CQ,validateScopes:()=>m8,valveStateMeta:()=>KQ,variantLabel:()=>Br,waterHeaterPhase:()=>c$,waterHeaterTint:()=>s$,weatherConditionMeta:()=>p$,weatherTint:()=>m$,withHiddenChart:()=>q7,withPanel:()=>J7,withResolvedParentDetail:()=>S5,withUseRootModel:()=>Zz,withoutModelScopedFields:()=>gB,withoutPanel:()=>Y7,writeStoredGroupBy:()=>T5});E();var xle=m(()=>a(()=>import(`./MaskShapeCanvas-CCcjwlTm.js`).then(e=>({default:e.MaskShapeCanvas})),__vite__mapDeps([42,1,2,3]),import.meta.url)),Sle=m(()=>a(()=>import(`./MotionZonesSettings-15VWTACI.js`).then(e=>({default:e.MotionZonesSettings})),__vite__mapDeps([41,1,2,3,42]),import.meta.url)),$9=m(()=>a(()=>import(`./SceneMonitorEditor-DbEDdw8n.js`).then(e=>({default:e.SceneMonitorEditor})),__vite__mapDeps([44,1,2,3,36,42]),import.meta.url)),Cle=m(()=>a(()=>import(`./PrivacyMaskSettings-boU8xnXR.js`).then(e=>({default:e.PrivacyMaskSettings})),__vite__mapDeps([43,1,2,3,24,42]),import.meta.url));export{T8 as $,jf as $a,FS as $c,Oo as $d,Cu as $i,Mw as $l,EB as $n,em as $o,CA as $r,F_ as $s,hZ as $t,MO as $u,D7 as A,Ld as Aa,Zv as Ac,Nl as Ad,Wu as Ai,OS as Al,FV as An,Ip as Ao,YM as Ar,Mg as As,a6 as At,$E as Au,U5 as B,df as Ba,Dx as Bc,ps as Bd,Pu as Bi,nw as Bl,oV as Bn,xp as Bo,pj as Br,e_ as Bs,l3 as Bt,gO as Bu,R7 as C,Pd as Ca,kv as Cc,Ul as Cd,su as Ci,RS as Cl,TW as Cn,Lm as Co,aL as Cr,ig as Cs,T6 as Ct,oD as Cu,p7 as D,Kd as Da,$v as Dc,Il as Dd,$u as Di,dC as Dl,dU as Dn,Tm as Do,lF as Dr,jg as Ds,f6 as Dt,nD as Du,N7 as E,Ud as Ea,Nv as Ec,Vl as Ed,Zu as Ei,_C as El,fU as En,im as Eo,cF as Er,kg as Es,b6 as Et,lD as Eu,n7 as F,Wd as Fa,jb as Fc,ul as Fd,Mu as Fi,ZS as Fl,yV as Fn,Jp as Fo,aM as Fr,Lg as Fs,A3 as Ft,dO as Fu,D5 as G,hf as Ga,aS as Gc,qo as Gd,Ru as Gi,UC as Gl,GB as Gn,Qp as Go,qA as Gr,n_ as Gs,E2 as Gt,SO as Gu,L5 as H,$d as Ha,Ax as Hc,is as Hd,Ju as Hi,YC as Hl,XB as Hn,Vm as Ho,dj as Hr,Kg as Hs,b4 as Ht,xO as Hu,e7 as I,Xd as Ia,ib as Ic,al as Id,Lu as Ii,jS as Il,hV as In,Kp as Io,sM as Ir,Ig as Is,k3 as It,pO as Iu,X8 as J,mf as Ja,SC as Jc,Ro as Jd,Eu as Ji,JC as Jl,FB as Jn,bm as Jo,BA as Jr,Gg as Js,v2 as Jt,EO as Ju,b5 as K,bf as Ka,rS as Kc,zo as Kd,ju as Ki,VC as Kl,KB as Kn,Gp as Ko,KA as Kr,Jg as Ks,T2 as Kt,jO as Ku,Y5 as L,Jd as La,fb as Lc,il as Ld,Iu as Li,_S as Ll,gV as Ln,Hp as Lo,cM as Lr,Rg as Ls,O3 as Lt,hO as Lu,u7 as M,zd as Ma,ey as Mc,Cl as Md,Au as Mi,US as Ml,DV as Mn,nm as Mo,jM as Mr,Ng as Ms,Z3 as Mt,KE as Mu,s7 as N,Hd as Na,Pb as Nc,ll as Nd,Hu as Ni,vS as Nl,OV as Nn,gm as No,uM as Nr,Fg as Ns,X3 as Nt,SD as Nu,O7 as O,qd as Oa,ty as Oc,Rl as Od,td as Oi,cC as Ol,lU as On,rm as Oo,XP as Or,Dg as Os,d6 as Ot,QE as Ou,c7 as P,Bd as Pa,Cb as Pc,pl as Pd,Bu as Pi,$S as Pl,CV as Pn,fm as Po,lM as Pr,Ag as Ps,j3 as Pt,BD as Pu,E8 as Q,ff as Qa,CS as Qc,Do as Qd,Ku as Qi,rw as Ql,DB as Qn,qp as Qo,SA as Qr,D_ as Qs,LZ as Qt,wO as Qu,K5 as R,Yd as Ra,Ox as Rc,$ as Rd,yu as Ri,OC as Rl,dV as Rn,tm as Ro,hj as Rr,r_ as Rs,b3 as Rt,lO as Ru,V7 as S,xd as Sa,Av as Sc,gk as Sd,du as Si,HS as Sl,tG as Sn,zm as So,wL as Sr,Gh as Ss,E6 as St,cD as Su,Y7 as T,Vd as Ta,Ev as Tc,Hl as Td,ed as Ti,uC as Tl,mU as Tn,lm as To,dF as Tr,rg as Ts,x6 as Tt,aD as Tu,O5 as U,sf as Ua,wb as Uc,cs as Ud,Du as Ui,qC as Ul,WB as Un,sm as Uo,uj as Ur,$g as Us,U2 as Ut,CO as Uu,R5 as V,nf as Va,Nb as Vc,vs as Vd,wu as Vi,KC as Vl,sV as Vn,Bm as Vo,mj as Vr,qg as Vs,z4 as Vt,uO as Vu,k5 as W,pf as Wa,Wx as Wc,ss as Wd,Tu as Wi,ZC as Wl,qB as Wn,Wp as Wo,YA as Wr,t_ as Ws,O2 as Wt,yO as Wu,N8 as X,rf as Xa,gS as Xc,Ao as Xd,Vu as Xi,XC as Xl,AB as Xn,kp as Xo,AA as Xr,O_ as Xs,tQ as Xt,TO as Xu,P8 as Y,af as Ya,AS as Yc,Ho as Yd,Uu as Yi,$C as Yl,MB as Yn,Fp as Yo,zA as Yr,k_ as Ys,u2 as Yt,OO as Yu,A8 as Z,cf as Za,GS as Zc,ko as Zd,Fu as Zi,tw as Zl,OB as Zn,Yp as Zo,xA as Zr,M_ as Zs,$Z as Zt,AO as Zu,Q7 as _,Sd as _a,q_ as _c,ok as _d,cu as _i,bS as _l,kG as _n,cm as _o,SL as _r,Qh as _s,P6 as _t,JE as _u,E9 as a,fd as aa,j_ as ac,IO as ad,Uk as ai,gC as al,ZJ as an,op as ao,Jz as ar,pm as as,v8 as at,ST as au,z7 as b,Td as ba,pv as bc,pk as bd,tu as bi,fC as bl,pG as bn,Rm as bo,CL as br,Xh as bs,A6 as bt,XE as bu,v9 as c,Cd as ca,R_ as cc,nk as cd,zk as ci,QS as cl,yJ as cn,Up as co,Rz as cr,ph as cs,h8 as ct,NT as cu,f9 as d,Od as da,H_ as dc,ck as dd,Ok as di,xS as dl,jq as dn,Om as do,Oz as dr,Rh as ds,f8 as dt,PT as du,Ou as ea,E_ as ec,NO as ed,To as ef,gA as ei,PS as el,fZ as en,Wf as eo,SB as er,Op as es,C8 as et,$w as eu,u9 as f,Ed as fa,W_ as fc,lk as fd,yk as fi,yS as fl,xq as fn,km as fo,Cz as fr,zh as fs,U6 as ft,eE as fu,c9 as g,bd as ga,J_ as gc,fk as gd,ou as gi,qS as gl,zG as gn,Nm as go,_L as gr,Kh as gs,F6 as gt,qE as gu,o9 as h,Nd as ha,U_ as hc,ak as hd,bk as hi,IS as hl,BG as hn,Im as ho,YL as hr,tg as hs,B6 as ht,nE as hu,D9 as i,pd as ia,z_ as ic,DO as id,Gk as ii,hC as il,hY as in,ip as io,Yz as ir,Zp as is,b8 as it,TT as iu,d7 as j,Gd as ja,iy as jc,jl as jd,Gu as ji,YS as jl,PV as jn,Rp as jo,qM as jr,Eg as js,Q3 as jt,eD as ju,w7 as k,Id as ka,ry as kc,Ll as kd,Qu as ki,mC as kl,qH as kn,ym as ko,VN as kr,Pg as ks,o6 as kt,iD as ku,g9 as l,kd as la,B_ as lc,ik as ld,Rk as li,WS as ll,vJ as ln,wm as lo,zz as lr,fh as ls,p8 as lt,FT as lu,s9 as m,Ad as ma,G_ as mc,tk as md,Sk as mi,yC as ml,RG as mn,Am as mo,OR as mr,Wh as ms,V6 as mt,QT as mu,ble as n,dd as na,A_ as nc,PO as nd,cA as ni,lC as nl,lX as nn,Yf as no,gB as nr,zp as ns,x8 as nt,eT as nu,w9 as o,vd as oa,N_ as oc,RO as od,Hk as oi,pC as ol,LJ as on,yp as oo,qz as or,Dm as os,_8 as ot,ET as ou,i9 as p,wd as pa,K_ as pc,dk as pd,xk as pi,XS as pl,qG as pn,Pm as po,Sz as pr,ng as ps,H6 as pt,$T as pu,_5 as q,gf as qa,JS as qc,Uo as qd,zu as qi,QC as ql,IB as qn,$p as qo,RA as qr,Qg as qs,y2 as qt,LO as qu,O9 as r,ud as ra,P_ as rc,kO as rd,rA as ri,sC as rl,zY as rn,ap as ro,oB as rr,Lp as rs,Mse as rt,Qw as ru,y9 as s,yd as sa,L_ as sc,QO as sd,Vk as si,DS as sl,CJ as sn,vp as so,Vz as sr,Sm as ss,g8 as st,CT as su,$9 as t,md as ta,I_ as tc,FO as td,X as tf,mA as ti,NS as tl,rZ as tn,Gf as to,hB as tr,Np as ts,S8 as tt,Ww as tu,h9 as u,Fd as ua,V_ as uc,sk as ud,Ek as ui,SS as ul,fJ as un,Fm as uo,Pz as ur,Lh as us,m8 as ut,IT as uu,qce as v,Md as va,hv as vc,uk as vd,uu as vi,vC as vl,OG as vn,Em as vo,bL as vr,Uh as vs,M6 as vt,GE as vu,J7 as w,Rd as wa,Tv as wc,ql as wd,hu as wi,VS as wl,_W as wn,am as wo,mI as wr,eg as ws,w6 as wt,sD as wu,H7 as x,Dd as xa,vv as xc,mk as xd,ru as xi,zS as xl,fG as xn,Cm as xo,xL as xr,Yh as xs,k6 as xt,tD as xu,B7 as y,jd as ya,fv as yc,rk as yd,au as yi,KS as yl,hG as yn,om as yo,TL as yr,qh as ys,j6 as yt,WE as yu,G5 as z,Zd as za,Kb as zc,Cs as zd,gu as zi,AC as zl,aV as zn,Xp as zo,fj as zr,Zg as zs,u3 as zt,nO as zu};