@camstack/addon-admin-ui 1.2.136 → 1.2.137

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 (108) hide show
  1. package/dist/assets/{AddLocationWizard-mVaAkllu.js → AddLocationWizard-DE8TrO5_.js} +1 -1
  2. package/dist/assets/{AddonCollectionPage-CaPJcCMl.js → AddonCollectionPage-OPmRN2-Z.js} +1 -1
  3. package/dist/assets/{Addons-D2I_esyD.js → Addons-Dkrye7QB.js} +1 -1
  4. package/dist/assets/{AdminTabs-Deriw2hW.js → AdminTabs-jaMulRAk.js} +1 -1
  5. package/dist/assets/{AiProfiles-DpGUrbkq.js → AiProfiles-DgyShhKS.js} +1 -1
  6. package/dist/assets/{BrokerForm-BV2ENKUn.js → BrokerForm-pMFtnb-a.js} +1 -1
  7. package/dist/assets/{Build-DIwjJX1u.js → Build-Clb_g7YK.js} +4 -4
  8. package/dist/assets/{Capabilities-CUk8ImxR.js → Capabilities-C7a1d_FF.js} +1 -1
  9. package/dist/assets/{CapabilityBadges-BljLOSl8.js → CapabilityBadges-Czma7LeQ.js} +1 -1
  10. package/dist/assets/{Cluster-B04Dntx1.js → Cluster-CW5x1UpZ.js} +1 -1
  11. package/dist/assets/{Data-8q9qJ1E1.js → Data-CBN6vyFP.js} +1 -1
  12. package/dist/assets/{DetectionIntelligence-M69Rh2Fu.js → DetectionIntelligence-DW_odUVL.js} +1 -1
  13. package/dist/assets/{DeviceAggregateSection-ZEdmE1Tr.js → DeviceAggregateSection-CFq8Ftlu.js} +1 -1
  14. package/dist/assets/{DeviceDetail-D-4CwvyO.js → DeviceDetail-gwY20PNa.js} +2 -2
  15. package/dist/assets/{Devices-DF6jpmce.js → Devices-VqYztriw.js} +1 -1
  16. package/dist/assets/{EmbedPlayerPage-KrGElk9a.js → EmbedPlayerPage-KhKUwKNn.js} +1 -1
  17. package/dist/assets/{Events-DoYqNSUV.js → Events-BSzyvsmh.js} +1 -1
  18. package/dist/assets/{FormBuilder-CsypX2wJ.js → FormBuilder-Dkt4v2_0.js} +1 -1
  19. package/dist/assets/{Identity-Cly1pkY0.js → Identity-DHDSIMX-.js} +1 -1
  20. package/dist/assets/{IntegrationDetail-Ua-4eUiQ.js → IntegrationDetail-B4-oLpK9.js} +1 -1
  21. package/dist/assets/{Integrations-BKW9f5Tq.js → Integrations-CBDbJ0RX.js} +1 -1
  22. package/dist/assets/{Integrations-Dw_5CkVj.js → Integrations-si6q-Ocu.js} +1 -1
  23. package/dist/assets/{Locations-BzyjI6El.js → Locations-FyvpKtqs.js} +1 -1
  24. package/dist/assets/{Logs-D2LjU4W5.js → Logs-Dc2B-op5.js} +1 -1
  25. package/dist/assets/{MotionZonesSettings-dUd4dTsA.js → MotionZonesSettings-BBi0DSiv.js} +1 -1
  26. package/dist/assets/{MyAccess-CYtGheNF.js → MyAccess-DKf9xjay.js} +1 -1
  27. package/dist/assets/{Network-EIyn_EB4.js → Network-hfbUX-2U.js} +1 -1
  28. package/dist/assets/{NodeAddonsSettingsPanel-Cn-rIXGF.js → NodeAddonsSettingsPanel-CErDs0U3.js} +1 -1
  29. package/dist/assets/{NodeInferenceDevices-FBayPhvF.js → NodeInferenceDevices-D6znl_VM.js} +1 -1
  30. package/dist/assets/Notifications-nyiRi0I1.js +1 -0
  31. package/dist/assets/{Pipeline-BLI2Oq15.js → Pipeline-BTp-FV8c.js} +1 -1
  32. package/dist/assets/{Plates-C4OD82o4.js → Plates-1BmvoonY.js} +1 -1
  33. package/dist/assets/{PrivacyMaskSettings-CJwRkAjL.js → PrivacyMaskSettings-Z8Gbi9nT.js} +1 -1
  34. package/dist/assets/{ProviderIcon-CBNqs16I.js → ProviderIcon-B2A0uhnX.js} +1 -1
  35. package/dist/assets/{Recordings-BZXYg9q5.js → Recordings-Ba-h_lLz.js} +1 -1
  36. package/dist/assets/{ScanNetworkModal-CHyzU4Pu.js → ScanNetworkModal-Bgaaunlm.js} +1 -1
  37. package/dist/assets/{SceneMonitorEditor-BmK8D-Mn.js → SceneMonitorEditor-u0XdXm3g.js} +1 -1
  38. package/dist/assets/{Scenes-CbxsoKAl.js → Scenes-CPsalNQ3.js} +1 -1
  39. package/dist/assets/{Settings-B858OsRX.js → Settings-DwKlV4v6.js} +1 -1
  40. package/dist/assets/{Showroom-tr1EdFcT.js → Showroom-CgQSBBWO.js} +1 -1
  41. package/dist/assets/{StorageLocationsPanel-BiP3z_s1.js → StorageLocationsPanel-ButvDgb9.js} +1 -1
  42. package/dist/assets/{Terminal-CbuRFD97.js → Terminal-CUHVIlcH.js} +1 -1
  43. package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DP3QHSOf.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-CLKeSd81.js} +1 -1
  44. package/dist/assets/{bell-off-3pzidZwL.js → bell-off-DBX9VtHr.js} +1 -1
  45. package/dist/assets/{bell-ring-BNMfRLHE.js → bell-ring-BKjClKV3.js} +1 -1
  46. package/dist/assets/{boxes-wUdab8Mw.js → boxes-CFKQPNcl.js} +1 -1
  47. package/dist/assets/circle-check-big-OnA7vQPH.js +1 -0
  48. package/dist/assets/circle-dot-BeEDMJeP.js +1 -0
  49. package/dist/assets/{circle-x-Cxto7gxg.js → circle-x-DLyMvpqw.js} +1 -1
  50. package/dist/assets/clock-BlE1Z8uN.js +1 -0
  51. package/dist/assets/{copy-Dzoj1sL2.js → copy-D7Q-XwUE.js} +1 -1
  52. package/dist/assets/{debounced-invalidate-DS28CcfM.js → debounced-invalidate-BkwOwfDj.js} +1 -1
  53. package/dist/assets/{dist-8TKoJB2v.js → dist-HY8uAEel.js} +1 -1
  54. package/dist/assets/{dist-DFSfnZbu.js → dist-sBo8hdm_.js} +1 -1
  55. package/dist/assets/{download-DxszViZg.js → download-DCYZyaLu.js} +1 -1
  56. package/dist/assets/{face-bbox-rixxoMVN.js → face-bbox-EwN3dhYI.js} +1 -1
  57. package/dist/assets/{flame-y-WWWoqN.js → flame-D6RRIJVv.js} +1 -1
  58. package/dist/assets/{hard-drive-Cx9nO3D9.js → hard-drive-DYUBKqc1.js} +1 -1
  59. package/dist/assets/{hostInit-M-UNOI3G.js → hostInit-Bl0yanR3.js} +1 -1
  60. package/dist/assets/{index-BGfoUOZH.js → index-COfCMzdp.js} +3 -3
  61. package/dist/assets/{key-round-Cf_iahkO.js → key-round-DXfG5TNc.js} +1 -1
  62. package/dist/assets/{layers-D2h0nzB6.js → layers-Dh_ssy3Z.js} +1 -1
  63. package/dist/assets/{mf-entry-bootstrap-0-7877987d.js → mf-entry-bootstrap-0-313eaa7d.js} +2 -2
  64. package/dist/assets/{pencil-BYfHIRND.js → pencil-B_HY7ALY.js} +1 -1
  65. package/dist/assets/play-B260Yq96.js +1 -0
  66. package/dist/assets/{player-overlays-CbzaJwg-.js → player-overlays-BvaB0zsn.js} +1 -1
  67. package/dist/assets/plus-Bmpti2bL.js +1 -0
  68. package/dist/assets/power-CDkIG5KO.js +1 -0
  69. package/dist/assets/{radio-CVCZPeGS.js → radio-DF3u16mQ.js} +1 -1
  70. package/dist/assets/{refresh-cw-zgZZERqO.js → refresh-cw-zWuQibcq.js} +1 -1
  71. package/dist/assets/remoteEntry-_6w_mBVY.js +1 -0
  72. package/dist/assets/rotate-ccw-CrfX-geF.js +1 -0
  73. package/dist/assets/rotate-cw-BRtf_4At.js +1 -0
  74. package/dist/assets/{send-pS3EZzI2.js → send-CKoLuEW8.js} +1 -1
  75. package/dist/assets/{server-DxNJ1sP2.js → server-DvQVqyln.js} +1 -1
  76. package/dist/assets/{shield-DdRJkqKO.js → shield-Cr14RSvv.js} +1 -1
  77. package/dist/assets/{shield-alert-CFw-3aoD.js → shield-alert-BMnR1x93.js} +1 -1
  78. package/dist/assets/square-DFgqQ_QQ.js +1 -0
  79. package/dist/assets/{square-check-big-Dlho6m1g.js → square-check-big-D8Ad6bck.js} +1 -1
  80. package/dist/assets/src-BbDOGyc_.js +67 -0
  81. package/dist/assets/src-C-HoK3rq.js +349 -0
  82. package/dist/assets/{undo-2-L-coRO82.js → undo-2-CkYdSUUf.js} +1 -1
  83. package/dist/assets/{use-scenes-feed-C6jbwvBT.js → use-scenes-feed-aXk-ZWBT.js} +1 -1
  84. package/dist/assets/useEventInvalidation-BBx2BKoX.js +1 -0
  85. package/dist/assets/{useNodeUrlSelection-C8kKmEH-.js → useNodeUrlSelection-Dwprb-jl.js} +1 -1
  86. package/dist/assets/user-round-B_6lJ8tg.js +1 -0
  87. package/dist/assets/{video-VQ0yM0l4.js → video-CVzhP16W.js} +1 -1
  88. package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DR-QYwCq.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DMx_t_Oo.js} +2 -2
  89. package/dist/assets/{wifi-BWx65_WT.js → wifi-C9rXpfcp.js} +1 -1
  90. package/dist/assets/{zap-g_CScZV9.js → zap-DSEfDhEj.js} +1 -1
  91. package/dist/index.html +5 -5
  92. package/dist/server/addon.js +31 -4
  93. package/package.json +1 -1
  94. package/dist/assets/Notifications-ASnN4lfj.js +0 -1
  95. package/dist/assets/circle-check-big-DqrpEEJk.js +0 -1
  96. package/dist/assets/circle-dot-BQYpE1hW.js +0 -1
  97. package/dist/assets/clock-DcwuYKfL.js +0 -1
  98. package/dist/assets/play-3WHdfZns.js +0 -1
  99. package/dist/assets/plus-DybJZLlz.js +0 -1
  100. package/dist/assets/power-V-NCnOD5.js +0 -1
  101. package/dist/assets/remoteEntry-C33H90bT.js +0 -1
  102. package/dist/assets/rotate-ccw-P6KpUkTu.js +0 -1
  103. package/dist/assets/rotate-cw-Bmr-g_8P.js +0 -1
  104. package/dist/assets/square-k5jQT1Qs.js +0 -1
  105. package/dist/assets/src-HS-Ah-dU.js +0 -67
  106. package/dist/assets/src-P91nlzf3.js +0 -349
  107. package/dist/assets/useEventInvalidation-B3ksj3kK.js +0 -1
  108. package/dist/assets/user-round-Ce2JWAZY.js +0 -1
@@ -1 +1 @@
1
- import{J as e}from"./index-BGfoUOZH.js";var t=e(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]);export{t};
1
+ import{J as e}from"./index-COfCMzdp.js";var t=e(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]);export{t};
@@ -1 +1 @@
1
- import{K as e,Q as t,S as n,W as r,q as i,x as a,z as o}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-DhP-Lgiq.js";import{B as s,H as c,J as l,L as u,R as d,z as f}from"./index-BGfoUOZH.js";var p=l(`image-off`,[[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}],[`path`,{d:`M10.41 10.41a2 2 0 1 1-2.83-2.83`,key:`1bzlo9`}],[`line`,{x1:`13.5`,x2:`6`,y1:`13.5`,y2:`21`,key:`1q0aeu`}],[`line`,{x1:`18`,x2:`21`,y1:`12`,y2:`15`,key:`5mozeu`}],[`path`,{d:`M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59`,key:`mmje98`}],[`path`,{d:`M21 15V5a2 2 0 0 0-2-2H9`,key:`43el77`}]]);t();var m={fromMs:null,toMs:null},h=36e5,g=24*h;function _(e,t){switch(e){case`24h`:return{fromMs:t-g,toMs:null};case`7d`:return{fromMs:t-7*g,toMs:null};case`30d`:return{fromMs:t-30*g,toMs:null};case`all`:return m}}function v(e){return e.fromMs!==null||e.toMs!==null}function y(e,t){return v(t)?e.filter(e=>!(t.fromMs!==null&&e.timestamp<t.fromMs||t.toMs!==null&&e.timestamp>t.toMs)):[...e]}function b(e,t){return t.size===0?[...e]:e.filter(e=>t.has(e.deviceId))}function x(e){let t=new Set,n=[];for(let r of e)t.has(r.deviceId)||(t.add(r.deviceId),n.push(r.deviceId));return n}function S(e){if(!e)return null;let t=Date.parse(`${e}T00:00:00`);return Number.isNaN(t)?null:t}function C(e){if(!e)return null;let t=Date.parse(`${e}T23:59:59.999`);return Number.isNaN(t)?null:t}function w(e,t){if(!Number.isFinite(e)||e<=0)return`—`;let n=t-e;return n<6e4?`just now`:n<h?`${String(Math.floor(n/6e4))}m ago`:n<g?`${String(Math.floor(n/h))}h ago`:n<7*g?`${String(Math.floor(n/g))}d ago`:new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function T(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function D(e,t,n){let[a,s]=i(1);o(()=>{s(1)},[n]);let c=e.length,l=Math.max(1,Math.ceil(c/t)),u=Math.min(a,l);return o(()=>{u!==a&&s(u)},[u,a]),{page:u,setPage:s,pageItems:r(()=>{let n=(u-1)*t;return e.slice(n,n+t)},[e,u,t]),totalPages:l,totalItems:c,pageSize:t}}var O=2;function k(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-O),i=Math.min(t-1,e+O);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 A({currentPage:e,totalItems:t,pageSize:r,onPageChange:i,itemNoun:o=`items`}){if(t<=r)return null;let s=Math.ceil(t/r),c=(e-1)*r+1,l=Math.min(e*r,t),f=k(e,s),p=`inline-flex h-7 min-w-7 items-center justify-center rounded-md px-2 text-[11px] transition-colors disabled:opacity-40`;return n(`div`,{className:`flex items-center justify-between gap-4 flex-wrap pt-2 text-[11px] text-foreground-subtle`,children:[n(`span`,{children:[`Showing `,c,`–`,l,` of `,t,` `,o]}),n(`div`,{className:`flex items-center gap-1`,children:[a(`button`,{type:`button`,className:`${p} hover:bg-surface-hover`,onClick:()=>i(e-1),disabled:e<=1,"aria-label":`Previous page`,children:a(d,{className:`h-3.5 w-3.5`})}),f.map(t=>t.kind===`ellipsis`?a(`span`,{className:`px-1 opacity-60`,children:`…`},`ellipsis-${t.side}`):a(`button`,{type:`button`,className:`${p} ${t.n===e?`bg-primary/12 text-primary font-medium`:`hover:bg-surface-hover hover:text-foreground`}`,onClick:()=>i(t.n),"aria-current":t.n===e?`page`:void 0,children:t.n},t.n)),a(`button`,{type:`button`,className:`${p} hover:bg-surface-hover`,onClick:()=>i(e+1),disabled:e>=s,"aria-label":`Next page`,children:a(u,{className:`h-3.5 w-3.5`})})]})]})}t();function j({cameras:t,selected:r,onChange:l}){let[u,d]=i(!1),p=e(null);o(()=>{if(!u)return;function e(e){p.current&&e.target instanceof Node&&!p.current.contains(e.target)&&d(!1)}function t(e){e.key===`Escape`&&d(!1)}return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[u]);function m(e){let t=new Set(r);t.has(e)?t.delete(e):t.add(e),l(t)}let h=r.size,g=h===0?`All cameras`:h===1?t.find(e=>r.has(e.id))?.name??`1 camera`:`${String(h)} cameras`;return n(`div`,{ref:p,className:`relative`,children:[n(`button`,{type:`button`,onClick:()=>d(e=>!e),disabled:t.length===0,className:`flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs transition-colors disabled:opacity-40 ${h>0?`border-primary/40 bg-primary/8 text-primary`:`border-border text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,children:[a(c,{className:`h-3.5 w-3.5`}),a(`span`,{className:`max-w-[10rem] truncate`,children:g}),a(f,{className:`h-3 w-3 opacity-70`})]}),u&&n(`div`,{className:`absolute left-0 z-30 mt-1 max-h-64 w-[min(15rem,calc(100vw-1.5rem))] overflow-y-auto rounded-md border border-border bg-surface p-1 shadow-lg shadow-black/30`,children:[h>0&&a(`button`,{type:`button`,onClick:()=>l(new Set),className:`mb-1 w-full rounded px-2 py-1 text-left text-[11px] text-foreground-subtle hover:bg-surface-hover hover:text-foreground`,children:`Clear selection`}),t.map(e=>{let t=r.has(e.id);return n(`button`,{type:`button`,onClick:()=>m(e.id),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${t?`bg-primary/10 text-primary`:`text-foreground hover:bg-surface-hover`}`,children:[a(`span`,{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded-sm border ${t?`border-primary bg-primary text-white`:`border-border`}`,children:t&&a(s,{className:`h-2.5 w-2.5`})}),a(`span`,{className:`truncate`,children:e.name})]},e.id)})]})]})}t();var M=[{label:`24h`,value:`24h`},{label:`7d`,value:`7d`},{label:`30d`,value:`30d`},{label:`All`,value:`all`}];function N({onChange:e}){let[t,r]=i(`all`),[o,s]=i(``),[c,l]=i(``);function u(t){r(t),s(``),l(``),e(_(t,Date.now()))}function d(t,n){r(`custom`),s(t),l(n),e({fromMs:S(t),toMs:C(n)})}let f=`rounded-md border border-border bg-surface px-2 py-1.5 text-[11px] text-foreground outline-none focus:border-primary [color-scheme:light] dark:[color-scheme:dark]`;return n(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[a(`div`,{className:`flex items-center gap-1 rounded-md border border-border p-0.5`,children:M.map(e=>a(`button`,{type:`button`,onClick:()=>u(e.value),className:`rounded px-2.5 py-1 text-[11px] transition-colors ${t===e.value?`bg-primary/12 text-primary font-medium`:`text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,children:e.label},e.value))}),n(`div`,{className:`flex items-center gap-1`,children:[a(`input`,{type:`date`,"aria-label":`From date`,value:o,max:c||void 0,onChange:e=>d(e.target.value,c),className:`${f} ${t===`custom`&&o?`border-primary/50`:``}`}),a(`span`,{className:`text-[11px] text-foreground-subtle`,children:`→`}),a(`input`,{type:`date`,"aria-label":`To date`,value:c,min:o||void 0,onChange:e=>d(o,e.target.value),className:`${f} ${t===`custom`&&c?`border-primary/50`:``}`})]})]})}t();var P=2.6;function F({src:e,alt:t,className:r,overlay:s,fit:c=`contain`}){let[l,u]=i(!1),[d,f]=i(`50% 50%`);o(()=>{u(!1),f(`50% 50%`)},[e]);function p(e){if(!l){let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width*100,r=(e.clientY-t.top)/t.height*100;f(`${String(n)}% ${String(r)}%`)}u(e=>!e)}let m=c===`natural`;return a(`div`,{className:`relative overflow-hidden bg-background ${r??``}`,onClick:p,children:n(`div`,{className:`relative select-none transition-transform duration-200 ease-out ${m?`w-full`:`h-full w-full`} ${l?`cursor-zoom-out`:`cursor-zoom-in`}`,style:{transformOrigin:d,transform:l?`scale(${String(P)})`:`scale(1)`},children:[a(`img`,{src:e,alt:t,draggable:!1,className:m?`block h-auto w-full object-contain`:`h-full w-full object-contain`}),s]})})}function I(e){let{delayMs:t,invalidate:n,setTimeoutFn:r=setTimeout,clearTimeoutFn:i=clearTimeout}=e,a;function o(){a===void 0&&(a=r(()=>{a=void 0,n()},t))}function s(){a!==void 0&&(i(a),a=void 0)}return{trigger:o,cancel:s}}export{A as a,x as c,T as d,w as f,j as i,b as l,p as m,F as n,D as o,E as p,N as r,m as s,I as t,y as u};
1
+ import{K as e,Q as t,S as n,W as r,q as i,x as a,z as o}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-DhP-Lgiq.js";import{B as s,H as c,J as l,L as u,R as d,z as f}from"./index-COfCMzdp.js";var p=l(`image-off`,[[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}],[`path`,{d:`M10.41 10.41a2 2 0 1 1-2.83-2.83`,key:`1bzlo9`}],[`line`,{x1:`13.5`,x2:`6`,y1:`13.5`,y2:`21`,key:`1q0aeu`}],[`line`,{x1:`18`,x2:`21`,y1:`12`,y2:`15`,key:`5mozeu`}],[`path`,{d:`M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59`,key:`mmje98`}],[`path`,{d:`M21 15V5a2 2 0 0 0-2-2H9`,key:`43el77`}]]);t();var m={fromMs:null,toMs:null},h=36e5,g=24*h;function _(e,t){switch(e){case`24h`:return{fromMs:t-g,toMs:null};case`7d`:return{fromMs:t-7*g,toMs:null};case`30d`:return{fromMs:t-30*g,toMs:null};case`all`:return m}}function v(e){return e.fromMs!==null||e.toMs!==null}function y(e,t){return v(t)?e.filter(e=>!(t.fromMs!==null&&e.timestamp<t.fromMs||t.toMs!==null&&e.timestamp>t.toMs)):[...e]}function b(e,t){return t.size===0?[...e]:e.filter(e=>t.has(e.deviceId))}function x(e){let t=new Set,n=[];for(let r of e)t.has(r.deviceId)||(t.add(r.deviceId),n.push(r.deviceId));return n}function S(e){if(!e)return null;let t=Date.parse(`${e}T00:00:00`);return Number.isNaN(t)?null:t}function C(e){if(!e)return null;let t=Date.parse(`${e}T23:59:59.999`);return Number.isNaN(t)?null:t}function w(e,t){if(!Number.isFinite(e)||e<=0)return`—`;let n=t-e;return n<6e4?`just now`:n<h?`${String(Math.floor(n/6e4))}m ago`:n<g?`${String(Math.floor(n/h))}h ago`:n<7*g?`${String(Math.floor(n/g))}d ago`:new Date(e).toLocaleDateString(void 0,{month:`short`,day:`numeric`})}function T(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleTimeString(void 0,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function E(e){return!Number.isFinite(e)||e<=0?`—`:new Date(e).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function D(e,t,n){let[a,s]=i(1);o(()=>{s(1)},[n]);let c=e.length,l=Math.max(1,Math.ceil(c/t)),u=Math.min(a,l);return o(()=>{u!==a&&s(u)},[u,a]),{page:u,setPage:s,pageItems:r(()=>{let n=(u-1)*t;return e.slice(n,n+t)},[e,u,t]),totalPages:l,totalItems:c,pageSize:t}}var O=2;function k(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-O),i=Math.min(t-1,e+O);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 A({currentPage:e,totalItems:t,pageSize:r,onPageChange:i,itemNoun:o=`items`}){if(t<=r)return null;let s=Math.ceil(t/r),c=(e-1)*r+1,l=Math.min(e*r,t),f=k(e,s),p=`inline-flex h-7 min-w-7 items-center justify-center rounded-md px-2 text-[11px] transition-colors disabled:opacity-40`;return n(`div`,{className:`flex items-center justify-between gap-4 flex-wrap pt-2 text-[11px] text-foreground-subtle`,children:[n(`span`,{children:[`Showing `,c,`–`,l,` of `,t,` `,o]}),n(`div`,{className:`flex items-center gap-1`,children:[a(`button`,{type:`button`,className:`${p} hover:bg-surface-hover`,onClick:()=>i(e-1),disabled:e<=1,"aria-label":`Previous page`,children:a(d,{className:`h-3.5 w-3.5`})}),f.map(t=>t.kind===`ellipsis`?a(`span`,{className:`px-1 opacity-60`,children:`…`},`ellipsis-${t.side}`):a(`button`,{type:`button`,className:`${p} ${t.n===e?`bg-primary/12 text-primary font-medium`:`hover:bg-surface-hover hover:text-foreground`}`,onClick:()=>i(t.n),"aria-current":t.n===e?`page`:void 0,children:t.n},t.n)),a(`button`,{type:`button`,className:`${p} hover:bg-surface-hover`,onClick:()=>i(e+1),disabled:e>=s,"aria-label":`Next page`,children:a(u,{className:`h-3.5 w-3.5`})})]})]})}t();function j({cameras:t,selected:r,onChange:l}){let[u,d]=i(!1),p=e(null);o(()=>{if(!u)return;function e(e){p.current&&e.target instanceof Node&&!p.current.contains(e.target)&&d(!1)}function t(e){e.key===`Escape`&&d(!1)}return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[u]);function m(e){let t=new Set(r);t.has(e)?t.delete(e):t.add(e),l(t)}let h=r.size,g=h===0?`All cameras`:h===1?t.find(e=>r.has(e.id))?.name??`1 camera`:`${String(h)} cameras`;return n(`div`,{ref:p,className:`relative`,children:[n(`button`,{type:`button`,onClick:()=>d(e=>!e),disabled:t.length===0,className:`flex items-center gap-1.5 rounded-md border px-2.5 py-1 text-xs transition-colors disabled:opacity-40 ${h>0?`border-primary/40 bg-primary/8 text-primary`:`border-border text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,children:[a(c,{className:`h-3.5 w-3.5`}),a(`span`,{className:`max-w-[10rem] truncate`,children:g}),a(f,{className:`h-3 w-3 opacity-70`})]}),u&&n(`div`,{className:`absolute left-0 z-30 mt-1 max-h-64 w-[min(15rem,calc(100vw-1.5rem))] overflow-y-auto rounded-md border border-border bg-surface p-1 shadow-lg shadow-black/30`,children:[h>0&&a(`button`,{type:`button`,onClick:()=>l(new Set),className:`mb-1 w-full rounded px-2 py-1 text-left text-[11px] text-foreground-subtle hover:bg-surface-hover hover:text-foreground`,children:`Clear selection`}),t.map(e=>{let t=r.has(e.id);return n(`button`,{type:`button`,onClick:()=>m(e.id),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${t?`bg-primary/10 text-primary`:`text-foreground hover:bg-surface-hover`}`,children:[a(`span`,{className:`flex h-3.5 w-3.5 shrink-0 items-center justify-center rounded-sm border ${t?`border-primary bg-primary text-white`:`border-border`}`,children:t&&a(s,{className:`h-2.5 w-2.5`})}),a(`span`,{className:`truncate`,children:e.name})]},e.id)})]})]})}t();var M=[{label:`24h`,value:`24h`},{label:`7d`,value:`7d`},{label:`30d`,value:`30d`},{label:`All`,value:`all`}];function N({onChange:e}){let[t,r]=i(`all`),[o,s]=i(``),[c,l]=i(``);function u(t){r(t),s(``),l(``),e(_(t,Date.now()))}function d(t,n){r(`custom`),s(t),l(n),e({fromMs:S(t),toMs:C(n)})}let f=`rounded-md border border-border bg-surface px-2 py-1.5 text-[11px] text-foreground outline-none focus:border-primary [color-scheme:light] dark:[color-scheme:dark]`;return n(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[a(`div`,{className:`flex items-center gap-1 rounded-md border border-border p-0.5`,children:M.map(e=>a(`button`,{type:`button`,onClick:()=>u(e.value),className:`rounded px-2.5 py-1 text-[11px] transition-colors ${t===e.value?`bg-primary/12 text-primary font-medium`:`text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,children:e.label},e.value))}),n(`div`,{className:`flex items-center gap-1`,children:[a(`input`,{type:`date`,"aria-label":`From date`,value:o,max:c||void 0,onChange:e=>d(e.target.value,c),className:`${f} ${t===`custom`&&o?`border-primary/50`:``}`}),a(`span`,{className:`text-[11px] text-foreground-subtle`,children:`→`}),a(`input`,{type:`date`,"aria-label":`To date`,value:c,min:o||void 0,onChange:e=>d(o,e.target.value),className:`${f} ${t===`custom`&&c?`border-primary/50`:``}`})]})]})}t();var P=2.6;function F({src:e,alt:t,className:r,overlay:s,fit:c=`contain`}){let[l,u]=i(!1),[d,f]=i(`50% 50%`);o(()=>{u(!1),f(`50% 50%`)},[e]);function p(e){if(!l){let t=e.currentTarget.getBoundingClientRect(),n=(e.clientX-t.left)/t.width*100,r=(e.clientY-t.top)/t.height*100;f(`${String(n)}% ${String(r)}%`)}u(e=>!e)}let m=c===`natural`;return a(`div`,{className:`relative overflow-hidden bg-background ${r??``}`,onClick:p,children:n(`div`,{className:`relative select-none transition-transform duration-200 ease-out ${m?`w-full`:`h-full w-full`} ${l?`cursor-zoom-out`:`cursor-zoom-in`}`,style:{transformOrigin:d,transform:l?`scale(${String(P)})`:`scale(1)`},children:[a(`img`,{src:e,alt:t,draggable:!1,className:m?`block h-auto w-full object-contain`:`h-full w-full object-contain`}),s]})})}function I(e){let{delayMs:t,invalidate:n,setTimeoutFn:r=setTimeout,clearTimeoutFn:i=clearTimeout}=e,a;function o(){a===void 0&&(a=r(()=>{a=void 0,n()},t))}function s(){a!==void 0&&(i(a),a=void 0)}return{trigger:o,cancel:s}}export{A as a,x as c,T as d,w as f,j as i,b as l,p as m,F as n,D as o,E as p,N as r,m as s,I as t,y as u};