@camstack/addon-model-studio 1.1.309 → 1.1.310

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 (19) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{MotionZonesSettings-D9qlMn0i.mjs → MotionZonesSettings-DmT3_5uL.mjs} +2 -2
  3. package/dist/{PrivacyMaskSettings-BgJSIubF.mjs → PrivacyMaskSettings-DUvJko35.mjs} +4 -4
  4. package/dist/{SceneMonitorEditor-CZzBhOoI.mjs → SceneMonitorEditor-BVMxs7LB.mjs} +3 -3
  5. package/dist/_stub.js +622 -620
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-Ca8KtYYT.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-BUDlZg-M.mjs} +3 -3
  7. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DhQKnJ3x.mjs +26 -0
  8. package/dist/{hostInit-C4p0TGqg.mjs → hostInit-DlOqhXnD.mjs} +2 -2
  9. package/dist/model-studio.addon.js +648 -70
  10. package/dist/model-studio.addon.mjs +648 -70
  11. package/dist/{player-overlays-C1od7kvL.mjs → player-overlays-UNmRn2Lm.mjs} +1 -1
  12. package/dist/remoteEntry.js +1 -1
  13. package/dist/{responsive-IwU1xXrH.mjs → responsive-DpFvXEzP.mjs} +1 -1
  14. package/dist/{scene-monitor-copy-B_r_xdlw.mjs → scene-monitor-copy-55pWpNVH.mjs} +1 -1
  15. package/dist/{square-cXunBHEd.mjs → square-C3qrCBUt.mjs} +1 -1
  16. package/dist/{trash-2-CZlLF-tK.mjs → trash-2-g3e9eqho.mjs} +1 -1
  17. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CGN2iLLF.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-B1TWKKP3.mjs} +1 -1
  18. package/package.json +1 -1
  19. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CD8IeDkZ.mjs +0 -26
package/dist/_stub.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import "./virtualExposes-CWSi4E_g.mjs";
2
- import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-CGN2iLLF.mjs";
2
+ import "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-B1TWKKP3.mjs";
3
3
  import { S as e, _ as t, a as n, b as r, d as i, f as a, g as o, h as s, i as c, l, m as u, n as d, p as f, r as p, t as m, u as h, v as g, y as _ } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DMBKVIH7.mjs";
4
4
  import { n as v, r as y, t as b } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
5
5
  import { n as x, r as S, t as C } from "./ui-text-BqZa5BNK.mjs";
6
- import { $ as w, A as T, B as E, C as ee, D as te, E as ne, F as D, G as re, H as O, I as ie, J as ae, K as oe, L as k, M as se, N as ce, O as le, P as ue, Q as de, R as A, T as fe, U as pe, V as me, W as he, X as ge, Y as _e, Z as ve, _ as ye, a as be, at as xe, b as Se, c as Ce, ct as j, d as we, dt as Te, et as Ee, f as De, ft as Oe, g as ke, h as Ae, i as je, it as Me, j as Ne, k as Pe, l as Fe, lt as M, m as Ie, n as Le, nt as Re, o as ze, ot as Be, p as Ve, q as He, r as Ue, rt as We, s as Ge, st as N, t as Ke, tt as qe, u as Je, v as Ye, w as Xe, x as Ze, y as Qe, z as $e } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CD8IeDkZ.mjs";
7
- import { _ as P, a as et, c as tt, f as nt, g as rt, h as it, i as at, l as ot, m as st, o as ct, p as lt, r as ut, s as dt, t as ft, u as pt } from "./responsive-IwU1xXrH.mjs";
8
- import { d as mt, f as ht, l as gt, u as _t } from "./scene-monitor-copy-B_r_xdlw.mjs";
9
- import { i as vt, r as yt } from "./player-overlays-C1od7kvL.mjs";
10
- import { r as bt, t as xt } from "./square-cXunBHEd.mjs";
11
- import { t as St } from "./trash-2-CZlLF-tK.mjs";
6
+ import { $ as w, A as T, B as ee, C as E, D as te, E as ne, F as D, G as re, H as ie, I as ae, J as oe, K as se, L as O, M as ce, N as le, O as k, P as ue, Q as de, R as A, T as fe, U as pe, V as me, W as he, X as ge, Y as _e, Z as ve, _ as ye, a as be, at as xe, b as Se, c as Ce, ct as we, d as Te, dt as j, et as Ee, f as De, g as Oe, h as ke, i as Ae, it as je, j as Me, k as Ne, l as Pe, lt as M, m as Fe, n as Ie, nt as Le, o as Re, ot as ze, p as Be, q as Ve, r as He, rt as Ue, s as We, st as Ge, t as Ke, tt as qe, u as Je, ut as N, v as Ye, w as Xe, x as Ze, y as Qe, z as $e } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DhQKnJ3x.mjs";
7
+ import { _ as P, a as et, c as tt, f as nt, g as rt, h as it, i as at, l as ot, m as st, o as ct, p as lt, r as ut, s as dt, t as ft, u as pt } from "./responsive-DpFvXEzP.mjs";
8
+ import { d as mt, f as ht, l as gt, u as _t } from "./scene-monitor-copy-55pWpNVH.mjs";
9
+ import { i as vt, r as yt } from "./player-overlays-UNmRn2Lm.mjs";
10
+ import { r as bt, t as xt } from "./square-C3qrCBUt.mjs";
11
+ import { t as St } from "./trash-2-g3e9eqho.mjs";
12
12
  import { t as Ct } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BvzT760A.mjs";
13
13
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_2_dom__loadShare__.js-C8Ar0nzL.mjs";
14
14
  import "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B-9Pn2K0.mjs";
@@ -2462,474 +2462,474 @@ function si(e, t) {
2462
2462
  };
2463
2463
  }
2464
2464
  var ci = {
2465
- [j.Camera]: {
2465
+ [N.Camera]: {
2466
2466
  icon: ht,
2467
2467
  labelKey: "uiLibrary.deviceMeta.type.camera",
2468
2468
  labelFallback: "Camera"
2469
2469
  },
2470
- [j.Hub]: {
2470
+ [N.Hub]: {
2471
2471
  icon: Xn,
2472
2472
  labelKey: "uiLibrary.deviceMeta.type.hub",
2473
2473
  labelFallback: "Hub"
2474
2474
  },
2475
- [j.Light]: {
2475
+ [N.Light]: {
2476
2476
  icon: Nn,
2477
2477
  labelKey: "uiLibrary.deviceMeta.type.light",
2478
2478
  labelFallback: "Light"
2479
2479
  },
2480
- [j.Siren]: {
2480
+ [N.Siren]: {
2481
2481
  icon: _r,
2482
2482
  labelKey: "uiLibrary.deviceMeta.type.siren",
2483
2483
  labelFallback: "Siren"
2484
2484
  },
2485
- [j.Switch]: {
2485
+ [N.Switch]: {
2486
2486
  icon: jr,
2487
2487
  labelKey: "uiLibrary.deviceMeta.type.switch",
2488
2488
  labelFallback: "Switch"
2489
2489
  },
2490
- [j.Sensor]: {
2490
+ [N.Sensor]: {
2491
2491
  icon: wt,
2492
2492
  labelKey: "uiLibrary.deviceMeta.type.sensor",
2493
2493
  labelFallback: "Sensor"
2494
2494
  },
2495
- [j.Thermostat]: {
2495
+ [N.Thermostat]: {
2496
2496
  icon: kr,
2497
2497
  labelKey: "uiLibrary.deviceMeta.type.thermostat",
2498
2498
  labelFallback: "Thermostat"
2499
2499
  },
2500
- [j.Climate]: {
2500
+ [N.Climate]: {
2501
2501
  icon: Tt,
2502
2502
  labelKey: "uiLibrary.deviceMeta.type.climate",
2503
2503
  labelFallback: "Air conditioner"
2504
2504
  },
2505
- [j.Button]: {
2505
+ [N.Button]: {
2506
2506
  icon: Qt,
2507
2507
  labelKey: "uiLibrary.deviceMeta.type.button",
2508
2508
  labelFallback: "Button"
2509
2509
  },
2510
- [j.EventEmitter]: {
2510
+ [N.EventEmitter]: {
2511
2511
  icon: Qr,
2512
2512
  labelKey: "uiLibrary.deviceMeta.type.eventEmitter",
2513
2513
  labelFallback: "Event Emitter"
2514
2514
  },
2515
- [j.Update]: {
2515
+ [N.Update]: {
2516
2516
  icon: lr,
2517
2517
  labelKey: "uiLibrary.deviceMeta.type.update",
2518
2518
  labelFallback: "Update"
2519
2519
  },
2520
- [j.Generic]: {
2520
+ [N.Generic]: {
2521
2521
  icon: Bt,
2522
2522
  labelKey: "uiLibrary.deviceMeta.type.generic",
2523
2523
  labelFallback: "Generic"
2524
2524
  },
2525
- [j.Notifier]: {
2525
+ [N.Notifier]: {
2526
2526
  icon: Pt,
2527
2527
  labelKey: "uiLibrary.deviceMeta.type.notifier",
2528
2528
  labelFallback: "Notifier"
2529
2529
  },
2530
- [j.Script]: {
2530
+ [N.Script]: {
2531
2531
  icon: dr,
2532
2532
  labelKey: "uiLibrary.deviceMeta.type.script",
2533
2533
  labelFallback: "Script"
2534
2534
  },
2535
- [j.Automation]: {
2535
+ [N.Automation]: {
2536
2536
  icon: Xr,
2537
2537
  labelKey: "uiLibrary.deviceMeta.type.automation",
2538
2538
  labelFallback: "Automation"
2539
2539
  },
2540
- [j.Lock]: {
2540
+ [N.Lock]: {
2541
2541
  icon: Rn,
2542
2542
  labelKey: "uiLibrary.deviceMeta.type.lock",
2543
2543
  labelFallback: "Lock"
2544
2544
  },
2545
- [j.Cover]: {
2545
+ [N.Cover]: {
2546
2546
  icon: Lt,
2547
2547
  labelKey: "uiLibrary.deviceMeta.type.cover",
2548
2548
  labelFallback: "Cover"
2549
2549
  },
2550
- [j.Valve]: {
2550
+ [N.Valve]: {
2551
2551
  icon: nr,
2552
2552
  labelKey: "uiLibrary.deviceMeta.type.valve",
2553
2553
  labelFallback: "Valve"
2554
2554
  },
2555
- [j.Humidifier]: {
2555
+ [N.Humidifier]: {
2556
2556
  icon: Kr,
2557
2557
  labelKey: "uiLibrary.deviceMeta.type.humidifier",
2558
2558
  labelFallback: "Humidifier"
2559
2559
  },
2560
- [j.WaterHeater]: {
2560
+ [N.WaterHeater]: {
2561
2561
  icon: At,
2562
2562
  labelKey: "uiLibrary.deviceMeta.type.waterHeater",
2563
2563
  labelFallback: "Water heater"
2564
2564
  },
2565
- [j.Fan]: {
2565
+ [N.Fan]: {
2566
2566
  icon: yn,
2567
2567
  labelKey: "uiLibrary.deviceMeta.type.fan",
2568
2568
  labelFallback: "Fan"
2569
2569
  },
2570
- [j.MediaPlayer]: {
2570
+ [N.MediaPlayer]: {
2571
2571
  icon: Un,
2572
2572
  labelKey: "uiLibrary.deviceMeta.type.mediaPlayer",
2573
2573
  labelFallback: "Media player"
2574
2574
  },
2575
- [j.AlarmPanel]: {
2575
+ [N.AlarmPanel]: {
2576
2576
  icon: pr,
2577
2577
  labelKey: "uiLibrary.deviceMeta.type.alarmPanel",
2578
2578
  labelFallback: "Alarm panel"
2579
2579
  },
2580
- [j.Control]: {
2580
+ [N.Control]: {
2581
2581
  icon: br,
2582
2582
  labelKey: "uiLibrary.deviceMeta.type.control",
2583
2583
  labelFallback: "Control"
2584
2584
  },
2585
- [j.Presence]: {
2585
+ [N.Presence]: {
2586
2586
  icon: Bn,
2587
2587
  labelKey: "uiLibrary.deviceMeta.type.presence",
2588
2588
  labelFallback: "Presence"
2589
2589
  },
2590
- [j.Weather]: {
2590
+ [N.Weather]: {
2591
2591
  icon: on,
2592
2592
  labelKey: "uiLibrary.deviceMeta.type.weather",
2593
2593
  labelFallback: "Weather"
2594
2594
  },
2595
- [j.Vacuum]: {
2595
+ [N.Vacuum]: {
2596
2596
  icon: zt,
2597
2597
  labelKey: "uiLibrary.deviceMeta.type.vacuum",
2598
2598
  labelFallback: "Vacuum"
2599
2599
  },
2600
- [j.LawnMower]: {
2600
+ [N.LawnMower]: {
2601
2601
  icon: Nr,
2602
2602
  labelKey: "uiLibrary.deviceMeta.type.lawnMower",
2603
2603
  labelFallback: "Lawn mower"
2604
2604
  },
2605
- [j.Container]: {
2605
+ [N.Container]: {
2606
2606
  icon: Bt,
2607
2607
  labelKey: "uiLibrary.deviceMeta.type.container",
2608
2608
  labelFallback: "Container"
2609
2609
  },
2610
- [j.Image]: {
2610
+ [N.Image]: {
2611
2611
  icon: kn,
2612
2612
  labelKey: "uiLibrary.deviceMeta.type.image",
2613
2613
  labelFallback: "Image"
2614
2614
  },
2615
- [j.PetFeeder]: {
2615
+ [N.PetFeeder]: {
2616
2616
  icon: Rt,
2617
2617
  labelKey: "uiLibrary.deviceMeta.type.petFeeder",
2618
2618
  labelFallback: "Pet feeder"
2619
2619
  },
2620
- [j.Dishwasher]: {
2620
+ [N.Dishwasher]: {
2621
2621
  icon: Kr,
2622
2622
  labelKey: "uiLibrary.deviceMeta.type.dishwasher",
2623
2623
  labelFallback: "Dishwasher"
2624
2624
  },
2625
- [j.Washer]: {
2625
+ [N.Washer]: {
2626
2626
  icon: Gr,
2627
2627
  labelKey: "uiLibrary.deviceMeta.type.washer",
2628
2628
  labelFallback: "Washing machine"
2629
2629
  },
2630
- [j.Dryer]: {
2630
+ [N.Dryer]: {
2631
2631
  icon: Yr,
2632
2632
  labelKey: "uiLibrary.deviceMeta.type.dryer",
2633
2633
  labelFallback: "Dryer"
2634
2634
  }
2635
2635
  }, li = {
2636
- [N.Siren]: {
2636
+ [M.Siren]: {
2637
2637
  icon: _r,
2638
2638
  labelKey: "uiLibrary.deviceMeta.role.siren",
2639
2639
  labelFallback: "Siren"
2640
2640
  },
2641
- [N.Floodlight]: {
2641
+ [M.Floodlight]: {
2642
2642
  icon: Nn,
2643
2643
  labelKey: "uiLibrary.deviceMeta.role.floodlight",
2644
2644
  labelFallback: "Floodlight"
2645
2645
  },
2646
- [N.Spotlight]: {
2646
+ [M.Spotlight]: {
2647
2647
  icon: Sn,
2648
2648
  labelKey: "uiLibrary.deviceMeta.role.spotlight",
2649
2649
  labelFallback: "Spotlight"
2650
2650
  },
2651
- [N.PirSensor]: {
2651
+ [M.PirSensor]: {
2652
2652
  icon: sr,
2653
2653
  labelKey: "uiLibrary.deviceMeta.role.pirSensor",
2654
2654
  labelFallback: "PIR sensor"
2655
2655
  },
2656
- [N.Chime]: {
2656
+ [M.Chime]: {
2657
2657
  icon: Pt,
2658
2658
  labelKey: "uiLibrary.deviceMeta.role.chime",
2659
2659
  labelFallback: "Chime"
2660
2660
  },
2661
- [N.Autotrack]: {
2661
+ [M.Autotrack]: {
2662
2662
  icon: dn,
2663
2663
  labelKey: "uiLibrary.deviceMeta.role.autotrack",
2664
2664
  labelFallback: "Auto-track"
2665
2665
  },
2666
- [N.Nightvision]: {
2666
+ [M.Nightvision]: {
2667
2667
  icon: Wn,
2668
2668
  labelKey: "uiLibrary.deviceMeta.role.nightvision",
2669
2669
  labelFallback: "Night vision"
2670
2670
  },
2671
- [N.PrivacyMask]: {
2671
+ [M.PrivacyMask]: {
2672
2672
  icon: bt,
2673
2673
  labelKey: "uiLibrary.deviceMeta.role.privacyMask",
2674
2674
  labelFallback: "Privacy mask"
2675
2675
  },
2676
- [N.Doorbell]: {
2676
+ [M.Doorbell]: {
2677
2677
  icon: pn,
2678
2678
  labelKey: "uiLibrary.deviceMeta.role.doorbell",
2679
2679
  labelFallback: "Doorbell"
2680
2680
  },
2681
- [N.CoverBlind]: {
2681
+ [M.CoverBlind]: {
2682
2682
  icon: Lt,
2683
2683
  labelKey: "uiLibrary.deviceMeta.role.coverBlind",
2684
2684
  labelFallback: "Blind"
2685
2685
  },
2686
- [N.CoverShutter]: {
2686
+ [M.CoverShutter]: {
2687
2687
  icon: Lt,
2688
2688
  labelKey: "uiLibrary.deviceMeta.role.coverShutter",
2689
2689
  labelFallback: "Shutter"
2690
2690
  },
2691
- [N.CoverAwning]: {
2691
+ [M.CoverAwning]: {
2692
2692
  icon: Lt,
2693
2693
  labelKey: "uiLibrary.deviceMeta.role.coverAwning",
2694
2694
  labelFallback: "Awning"
2695
2695
  },
2696
- [N.CoverCurtain]: {
2696
+ [M.CoverCurtain]: {
2697
2697
  icon: Lt,
2698
2698
  labelKey: "uiLibrary.deviceMeta.role.coverCurtain",
2699
2699
  labelFallback: "Curtain"
2700
2700
  },
2701
- [N.CoverGarage]: {
2701
+ [M.CoverGarage]: {
2702
2702
  icon: pn,
2703
2703
  labelKey: "uiLibrary.deviceMeta.role.coverGarage",
2704
2704
  labelFallback: "Garage door"
2705
2705
  },
2706
- [N.CoverGate]: {
2706
+ [M.CoverGate]: {
2707
2707
  icon: pn,
2708
2708
  labelKey: "uiLibrary.deviceMeta.role.coverGate",
2709
2709
  labelFallback: "Gate"
2710
2710
  },
2711
- [N.CoverDoor]: {
2711
+ [M.CoverDoor]: {
2712
2712
  icon: mn,
2713
2713
  labelKey: "uiLibrary.deviceMeta.role.coverDoor",
2714
2714
  labelFallback: "Door"
2715
2715
  },
2716
- [N.CoverWindow]: {
2716
+ [M.CoverWindow]: {
2717
2717
  icon: Lt,
2718
2718
  labelKey: "uiLibrary.deviceMeta.role.coverWindow",
2719
2719
  labelFallback: "Window"
2720
2720
  },
2721
- [N.BinaryHelper]: {
2721
+ [M.BinaryHelper]: {
2722
2722
  icon: jr,
2723
2723
  labelKey: "uiLibrary.deviceMeta.role.binaryHelper",
2724
2724
  labelFallback: "Binary helper"
2725
2725
  },
2726
- [N.Outlet]: {
2726
+ [M.Outlet]: {
2727
2727
  icon: ar,
2728
2728
  labelKey: "uiLibrary.deviceMeta.role.outlet",
2729
2729
  labelFallback: "Outlet"
2730
2730
  },
2731
- [N.MotionSensor]: {
2731
+ [M.MotionSensor]: {
2732
2732
  icon: Cn,
2733
2733
  labelKey: "uiLibrary.deviceMeta.role.motionSensor",
2734
2734
  labelFallback: "Motion sensor"
2735
2735
  },
2736
- [N.ContactSensor]: {
2736
+ [M.ContactSensor]: {
2737
2737
  icon: mn,
2738
2738
  labelKey: "uiLibrary.deviceMeta.role.contactSensor",
2739
2739
  labelFallback: "Contact sensor"
2740
2740
  },
2741
- [N.LeakSensor]: {
2741
+ [M.LeakSensor]: {
2742
2742
  icon: gn,
2743
2743
  labelKey: "uiLibrary.deviceMeta.role.leakSensor",
2744
2744
  labelFallback: "Leak sensor"
2745
2745
  },
2746
- [N.SmokeSensor]: {
2746
+ [M.SmokeSensor]: {
2747
2747
  icon: Et,
2748
2748
  labelKey: "uiLibrary.deviceMeta.role.smokeSensor",
2749
2749
  labelFallback: "Smoke sensor"
2750
2750
  },
2751
- [N.COSensor]: {
2751
+ [M.COSensor]: {
2752
2752
  icon: Yr,
2753
2753
  labelKey: "uiLibrary.deviceMeta.role.cOSensor",
2754
2754
  labelFallback: "CO sensor"
2755
2755
  },
2756
- [N.GasSensor]: {
2756
+ [M.GasSensor]: {
2757
2757
  icon: xn,
2758
2758
  labelKey: "uiLibrary.deviceMeta.role.gasSensor",
2759
2759
  labelFallback: "Gas sensor"
2760
2760
  },
2761
- [N.TamperSensor]: {
2761
+ [M.TamperSensor]: {
2762
2762
  icon: pr,
2763
2763
  labelKey: "uiLibrary.deviceMeta.role.tamperSensor",
2764
2764
  labelFallback: "Tamper sensor"
2765
2765
  },
2766
- [N.VibrationSensor]: {
2766
+ [M.VibrationSensor]: {
2767
2767
  icon: Hr,
2768
2768
  labelKey: "uiLibrary.deviceMeta.role.vibrationSensor",
2769
2769
  labelFallback: "Vibration sensor"
2770
2770
  },
2771
- [N.ConnectivitySensor]: {
2771
+ [M.ConnectivitySensor]: {
2772
2772
  icon: Jr,
2773
2773
  labelKey: "uiLibrary.deviceMeta.role.connectivitySensor",
2774
2774
  labelFallback: "Connectivity"
2775
2775
  },
2776
- [N.SoundSensor]: {
2776
+ [M.SoundSensor]: {
2777
2777
  icon: Ur,
2778
2778
  labelKey: "uiLibrary.deviceMeta.role.soundSensor",
2779
2779
  labelFallback: "Sound sensor"
2780
2780
  },
2781
- [N.BinarySensor]: {
2781
+ [M.BinarySensor]: {
2782
2782
  icon: jr,
2783
2783
  labelKey: "uiLibrary.deviceMeta.role.binarySensor",
2784
2784
  labelFallback: "Binary sensor"
2785
2785
  },
2786
- [N.TemperatureSensor]: {
2786
+ [M.TemperatureSensor]: {
2787
2787
  icon: kr,
2788
2788
  labelKey: "uiLibrary.deviceMeta.role.temperatureSensor",
2789
2789
  labelFallback: "Temperature"
2790
2790
  },
2791
- [N.HumiditySensor]: {
2791
+ [M.HumiditySensor]: {
2792
2792
  icon: _n,
2793
2793
  labelKey: "uiLibrary.deviceMeta.role.humiditySensor",
2794
2794
  labelFallback: "Humidity"
2795
2795
  },
2796
- [N.AmbientLightSensor]: {
2796
+ [M.AmbientLightSensor]: {
2797
2797
  icon: Er,
2798
2798
  labelKey: "uiLibrary.deviceMeta.role.ambientLightSensor",
2799
2799
  labelFallback: "Ambient light"
2800
2800
  },
2801
- [N.PressureSensor]: {
2801
+ [M.PressureSensor]: {
2802
2802
  icon: wn,
2803
2803
  labelKey: "uiLibrary.deviceMeta.role.pressureSensor",
2804
2804
  labelFallback: "Pressure"
2805
2805
  },
2806
- [N.WindSensor]: {
2806
+ [M.WindSensor]: {
2807
2807
  icon: Yr,
2808
2808
  labelKey: "uiLibrary.deviceMeta.role.windSensor",
2809
2809
  labelFallback: "Wind"
2810
2810
  },
2811
- [N.RainSensor]: {
2811
+ [M.RainSensor]: {
2812
2812
  icon: rn,
2813
2813
  labelKey: "uiLibrary.deviceMeta.role.rainSensor",
2814
2814
  labelFallback: "Rain"
2815
2815
  },
2816
- [N.UvSensor]: {
2816
+ [M.UvSensor]: {
2817
2817
  icon: Tr,
2818
2818
  labelKey: "uiLibrary.deviceMeta.role.uvSensor",
2819
2819
  labelFallback: "UV index"
2820
2820
  },
2821
- [N.SolarRadiationSensor]: {
2821
+ [M.SolarRadiationSensor]: {
2822
2822
  icon: Dr,
2823
2823
  labelKey: "uiLibrary.deviceMeta.role.solarRadiationSensor",
2824
2824
  labelFallback: "Solar radiation"
2825
2825
  },
2826
- [N.SoilMoistureSensor]: {
2826
+ [M.SoilMoistureSensor]: {
2827
2827
  icon: wr,
2828
2828
  labelKey: "uiLibrary.deviceMeta.role.soilMoistureSensor",
2829
2829
  labelFallback: "Soil moisture"
2830
2830
  },
2831
- [N.PowerSensor]: {
2831
+ [M.PowerSensor]: {
2832
2832
  icon: Qr,
2833
2833
  labelKey: "uiLibrary.deviceMeta.role.powerSensor",
2834
2834
  labelFallback: "Power"
2835
2835
  },
2836
- [N.EnergySensor]: {
2836
+ [M.EnergySensor]: {
2837
2837
  icon: Qr,
2838
2838
  labelKey: "uiLibrary.deviceMeta.role.energySensor",
2839
2839
  labelFallback: "Energy"
2840
2840
  },
2841
- [N.VoltageSensor]: {
2841
+ [M.VoltageSensor]: {
2842
2842
  icon: Qr,
2843
2843
  labelKey: "uiLibrary.deviceMeta.role.voltageSensor",
2844
2844
  labelFallback: "Voltage"
2845
2845
  },
2846
- [N.CurrentSensor]: {
2846
+ [M.CurrentSensor]: {
2847
2847
  icon: Qr,
2848
2848
  labelKey: "uiLibrary.deviceMeta.role.currentSensor",
2849
2849
  labelFallback: "Current"
2850
2850
  },
2851
- [N.AirQualitySensor]: {
2851
+ [M.AirQualitySensor]: {
2852
2852
  icon: Yr,
2853
2853
  labelKey: "uiLibrary.deviceMeta.role.airQualitySensor",
2854
2854
  labelFallback: "Air quality"
2855
2855
  },
2856
- [N.BatterySensor]: {
2856
+ [M.BatterySensor]: {
2857
2857
  icon: wn,
2858
2858
  labelKey: "uiLibrary.deviceMeta.role.batterySensor",
2859
2859
  labelFallback: "Battery"
2860
2860
  },
2861
- [N.NumericSensor]: {
2861
+ [M.NumericSensor]: {
2862
2862
  icon: En,
2863
2863
  labelKey: "uiLibrary.deviceMeta.role.numericSensor",
2864
2864
  labelFallback: "Numeric sensor"
2865
2865
  },
2866
- [N.EnumSensor]: {
2866
+ [M.EnumSensor]: {
2867
2867
  icon: Fn,
2868
2868
  labelKey: "uiLibrary.deviceMeta.role.enumSensor",
2869
2869
  labelFallback: "Enum sensor"
2870
2870
  },
2871
- [N.DateTimeSensor]: {
2871
+ [M.DateTimeSensor]: {
2872
2872
  icon: en,
2873
2873
  labelKey: "uiLibrary.deviceMeta.role.dateTimeSensor",
2874
2874
  labelFallback: "Date / time"
2875
2875
  },
2876
- [N.GenericSensor]: {
2876
+ [M.GenericSensor]: {
2877
2877
  icon: wn,
2878
2878
  labelKey: "uiLibrary.deviceMeta.role.genericSensor",
2879
2879
  labelFallback: "Sensor"
2880
2880
  },
2881
- [N.NumericControl]: {
2881
+ [M.NumericControl]: {
2882
2882
  icon: br,
2883
2883
  labelKey: "uiLibrary.deviceMeta.role.numericControl",
2884
2884
  labelFallback: "Numeric control"
2885
2885
  },
2886
- [N.SelectControl]: {
2886
+ [M.SelectControl]: {
2887
2887
  icon: Pn,
2888
2888
  labelKey: "uiLibrary.deviceMeta.role.selectControl",
2889
2889
  labelFallback: "Select control"
2890
2890
  },
2891
- [N.TextControl]: {
2891
+ [M.TextControl]: {
2892
2892
  icon: Lr,
2893
2893
  labelKey: "uiLibrary.deviceMeta.role.textControl",
2894
2894
  labelFallback: "Text control"
2895
2895
  },
2896
- [N.DateTimeControl]: {
2896
+ [M.DateTimeControl]: {
2897
2897
  icon: en,
2898
2898
  labelKey: "uiLibrary.deviceMeta.role.dateTimeControl",
2899
2899
  labelFallback: "Date / time control"
2900
2900
  },
2901
- [N.MobilePushNotifier]: {
2901
+ [M.MobilePushNotifier]: {
2902
2902
  icon: xr,
2903
2903
  labelKey: "uiLibrary.deviceMeta.role.mobilePushNotifier",
2904
2904
  labelFallback: "Mobile push"
2905
2905
  },
2906
- [N.MessagingNotifier]: {
2906
+ [M.MessagingNotifier]: {
2907
2907
  icon: Hn,
2908
2908
  labelKey: "uiLibrary.deviceMeta.role.messagingNotifier",
2909
2909
  labelFallback: "Messaging"
2910
2910
  },
2911
- [N.EmailNotifier]: {
2911
+ [M.EmailNotifier]: {
2912
2912
  icon: zn,
2913
2913
  labelKey: "uiLibrary.deviceMeta.role.emailNotifier",
2914
2914
  labelFallback: "Email"
2915
2915
  },
2916
- [N.GenericNotifier]: {
2916
+ [M.GenericNotifier]: {
2917
2917
  icon: Pt,
2918
2918
  labelKey: "uiLibrary.deviceMeta.role.genericNotifier",
2919
2919
  labelFallback: "Notifier"
2920
2920
  }
2921
- }, ui = new Set(Object.values(j));
2922
- new Set(Object.values(N));
2921
+ }, ui = new Set(Object.values(N));
2922
+ new Set(Object.values(M));
2923
2923
  function di(e) {
2924
2924
  return ui.has(e);
2925
2925
  }
2926
- var fi = ci[j.Generic];
2927
- li[N.GenericSensor];
2926
+ var fi = ci[N.Generic];
2927
+ li[M.GenericSensor];
2928
2928
  function pi(e, t = x) {
2929
2929
  return di(e) ? si(ci[e] ?? fi, t) : si(fi, t);
2930
2930
  }
2931
2931
  function mi(e) {
2932
- return Object.values(j).map((t) => {
2932
+ return Object.values(N).map((t) => {
2933
2933
  let n = pi(t, e);
2934
2934
  return {
2935
2935
  id: t,
@@ -3240,13 +3240,13 @@ var _i = (e, t) => {
3240
3240
  "full",
3241
3241
  "auto",
3242
3242
  ...w()
3243
- ], E = () => [
3243
+ ], ee = () => [
3244
3244
  oa,
3245
3245
  "none",
3246
3246
  "subgrid",
3247
3247
  R,
3248
3248
  L
3249
- ], ee = () => [
3249
+ ], E = () => [
3250
3250
  "auto",
3251
3251
  { span: [
3252
3252
  "full",
@@ -3287,7 +3287,7 @@ var _i = (e, t) => {
3287
3287
  "stretch",
3288
3288
  "center-safe",
3289
3289
  "end-safe"
3290
- ], O = () => ["auto", ...w()], ie = () => [
3290
+ ], ie = () => ["auto", ...w()], ae = () => [
3291
3291
  aa,
3292
3292
  "auto",
3293
3293
  "full",
@@ -3301,7 +3301,7 @@ var _i = (e, t) => {
3301
3301
  "max",
3302
3302
  "fit",
3303
3303
  ...w()
3304
- ], ae = () => [
3304
+ ], oe = () => [
3305
3305
  aa,
3306
3306
  "screen",
3307
3307
  "full",
@@ -3312,7 +3312,7 @@ var _i = (e, t) => {
3312
3312
  "max",
3313
3313
  "fit",
3314
3314
  ...w()
3315
- ], oe = () => [
3315
+ ], se = () => [
3316
3316
  aa,
3317
3317
  "screen",
3318
3318
  "full",
@@ -3324,22 +3324,22 @@ var _i = (e, t) => {
3324
3324
  "max",
3325
3325
  "fit",
3326
3326
  ...w()
3327
- ], k = () => [
3327
+ ], O = () => [
3328
3328
  e,
3329
3329
  R,
3330
3330
  L
3331
- ], se = () => [
3331
+ ], ce = () => [
3332
3332
  ...b(),
3333
3333
  Ea,
3334
3334
  xa,
3335
3335
  { position: [R, L] }
3336
- ], ce = () => ["no-repeat", { repeat: [
3336
+ ], le = () => ["no-repeat", { repeat: [
3337
3337
  "",
3338
3338
  "x",
3339
3339
  "y",
3340
3340
  "space",
3341
3341
  "round"
3342
- ] }], le = () => [
3342
+ ] }], k = () => [
3343
3343
  "auto",
3344
3344
  "cover",
3345
3345
  "contain",
@@ -3646,12 +3646,12 @@ var _i = (e, t) => {
3646
3646
  R,
3647
3647
  L
3648
3648
  ] }],
3649
- "grid-cols": [{ "grid-cols": E() }],
3650
- "col-start-end": [{ col: ee() }],
3649
+ "grid-cols": [{ "grid-cols": ee() }],
3650
+ "col-start-end": [{ col: E() }],
3651
3651
  "col-start": [{ "col-start": te() }],
3652
3652
  "col-end": [{ "col-end": te() }],
3653
- "grid-rows": [{ "grid-rows": E() }],
3654
- "row-start-end": [{ row: ee() }],
3653
+ "grid-rows": [{ "grid-rows": ee() }],
3654
+ "row-start-end": [{ row: E() }],
3655
3655
  "row-start": [{ "row-start": te() }],
3656
3656
  "row-end": [{ "row-end": te() }],
3657
3657
  "grid-flow": [{ "grid-flow": [
@@ -3690,38 +3690,38 @@ var _i = (e, t) => {
3690
3690
  pr: [{ pr: w() }],
3691
3691
  pb: [{ pb: w() }],
3692
3692
  pl: [{ pl: w() }],
3693
- m: [{ m: O() }],
3694
- mx: [{ mx: O() }],
3695
- my: [{ my: O() }],
3696
- ms: [{ ms: O() }],
3697
- me: [{ me: O() }],
3698
- mbs: [{ mbs: O() }],
3699
- mbe: [{ mbe: O() }],
3700
- mt: [{ mt: O() }],
3701
- mr: [{ mr: O() }],
3702
- mb: [{ mb: O() }],
3703
- ml: [{ ml: O() }],
3693
+ m: [{ m: ie() }],
3694
+ mx: [{ mx: ie() }],
3695
+ my: [{ my: ie() }],
3696
+ ms: [{ ms: ie() }],
3697
+ me: [{ me: ie() }],
3698
+ mbs: [{ mbs: ie() }],
3699
+ mbe: [{ mbe: ie() }],
3700
+ mt: [{ mt: ie() }],
3701
+ mr: [{ mr: ie() }],
3702
+ mb: [{ mb: ie() }],
3703
+ ml: [{ ml: ie() }],
3704
3704
  "space-x": [{ "space-x": w() }],
3705
3705
  "space-x-reverse": ["space-x-reverse"],
3706
3706
  "space-y": [{ "space-y": w() }],
3707
3707
  "space-y-reverse": ["space-y-reverse"],
3708
- size: [{ size: ie() }],
3709
- "inline-size": [{ inline: ["auto", ...ae()] }],
3710
- "min-inline-size": [{ "min-inline": ["auto", ...ae()] }],
3711
- "max-inline-size": [{ "max-inline": ["none", ...ae()] }],
3712
- "block-size": [{ block: ["auto", ...oe()] }],
3713
- "min-block-size": [{ "min-block": ["auto", ...oe()] }],
3714
- "max-block-size": [{ "max-block": ["none", ...oe()] }],
3708
+ size: [{ size: ae() }],
3709
+ "inline-size": [{ inline: ["auto", ...oe()] }],
3710
+ "min-inline-size": [{ "min-inline": ["auto", ...oe()] }],
3711
+ "max-inline-size": [{ "max-inline": ["none", ...oe()] }],
3712
+ "block-size": [{ block: ["auto", ...se()] }],
3713
+ "min-block-size": [{ "min-block": ["auto", ...se()] }],
3714
+ "max-block-size": [{ "max-block": ["none", ...se()] }],
3715
3715
  w: [{ w: [
3716
3716
  s,
3717
3717
  "screen",
3718
- ...ie()
3718
+ ...ae()
3719
3719
  ] }],
3720
3720
  "min-w": [{ "min-w": [
3721
3721
  s,
3722
3722
  "screen",
3723
3723
  "none",
3724
- ...ie()
3724
+ ...ae()
3725
3725
  ] }],
3726
3726
  "max-w": [{ "max-w": [
3727
3727
  s,
@@ -3729,23 +3729,23 @@ var _i = (e, t) => {
3729
3729
  "none",
3730
3730
  "prose",
3731
3731
  { screen: [o] },
3732
- ...ie()
3732
+ ...ae()
3733
3733
  ] }],
3734
3734
  h: [{ h: [
3735
3735
  "screen",
3736
3736
  "lh",
3737
- ...ie()
3737
+ ...ae()
3738
3738
  ] }],
3739
3739
  "min-h": [{ "min-h": [
3740
3740
  "screen",
3741
3741
  "lh",
3742
3742
  "none",
3743
- ...ie()
3743
+ ...ae()
3744
3744
  ] }],
3745
3745
  "max-h": [{ "max-h": [
3746
3746
  "screen",
3747
3747
  "lh",
3748
- ...ie()
3748
+ ...ae()
3749
3749
  ] }],
3750
3750
  "font-size": [{ text: [
3751
3751
  "base",
@@ -3818,8 +3818,8 @@ var _i = (e, t) => {
3818
3818
  "start",
3819
3819
  "end"
3820
3820
  ] }],
3821
- "placeholder-color": [{ placeholder: k() }],
3822
- "text-color": [{ text: k() }],
3821
+ "placeholder-color": [{ placeholder: O() }],
3822
+ "text-color": [{ text: O() }],
3823
3823
  "text-decoration": [
3824
3824
  "underline",
3825
3825
  "overline",
@@ -3834,7 +3834,7 @@ var _i = (e, t) => {
3834
3834
  R,
3835
3835
  _a
3836
3836
  ] }],
3837
- "text-decoration-color": [{ decoration: k() }],
3837
+ "text-decoration-color": [{ decoration: O() }],
3838
3838
  "underline-offset": [{ "underline-offset": [
3839
3839
  I,
3840
3840
  "auto",
@@ -3921,9 +3921,9 @@ var _i = (e, t) => {
3921
3921
  "padding",
3922
3922
  "content"
3923
3923
  ] }],
3924
- "bg-position": [{ bg: se() }],
3925
- "bg-repeat": [{ bg: ce() }],
3926
- "bg-size": [{ bg: le() }],
3924
+ "bg-position": [{ bg: ce() }],
3925
+ "bg-repeat": [{ bg: le() }],
3926
+ "bg-size": [{ bg: k() }],
3927
3927
  "bg-image": [{ bg: [
3928
3928
  "none",
3929
3929
  {
@@ -3956,13 +3956,13 @@ var _i = (e, t) => {
3956
3956
  Oa,
3957
3957
  Sa
3958
3958
  ] }],
3959
- "bg-color": [{ bg: k() }],
3959
+ "bg-color": [{ bg: O() }],
3960
3960
  "gradient-from-pos": [{ from: ue() }],
3961
3961
  "gradient-via-pos": [{ via: ue() }],
3962
3962
  "gradient-to-pos": [{ to: ue() }],
3963
- "gradient-from": [{ from: k() }],
3964
- "gradient-via": [{ via: k() }],
3965
- "gradient-to": [{ to: k() }],
3963
+ "gradient-from": [{ from: O() }],
3964
+ "gradient-via": [{ via: O() }],
3965
+ "gradient-to": [{ to: O() }],
3966
3966
  rounded: [{ rounded: de() }],
3967
3967
  "rounded-s": [{ "rounded-s": de() }],
3968
3968
  "rounded-e": [{ "rounded-e": de() }],
@@ -4003,18 +4003,18 @@ var _i = (e, t) => {
4003
4003
  "hidden",
4004
4004
  "none"
4005
4005
  ] }],
4006
- "border-color": [{ border: k() }],
4007
- "border-color-x": [{ "border-x": k() }],
4008
- "border-color-y": [{ "border-y": k() }],
4009
- "border-color-s": [{ "border-s": k() }],
4010
- "border-color-e": [{ "border-e": k() }],
4011
- "border-color-bs": [{ "border-bs": k() }],
4012
- "border-color-be": [{ "border-be": k() }],
4013
- "border-color-t": [{ "border-t": k() }],
4014
- "border-color-r": [{ "border-r": k() }],
4015
- "border-color-b": [{ "border-b": k() }],
4016
- "border-color-l": [{ "border-l": k() }],
4017
- "divide-color": [{ divide: k() }],
4006
+ "border-color": [{ border: O() }],
4007
+ "border-color-x": [{ "border-x": O() }],
4008
+ "border-color-y": [{ "border-y": O() }],
4009
+ "border-color-s": [{ "border-s": O() }],
4010
+ "border-color-e": [{ "border-e": O() }],
4011
+ "border-color-bs": [{ "border-bs": O() }],
4012
+ "border-color-be": [{ "border-be": O() }],
4013
+ "border-color-t": [{ "border-t": O() }],
4014
+ "border-color-r": [{ "border-r": O() }],
4015
+ "border-color-b": [{ "border-b": O() }],
4016
+ "border-color-l": [{ "border-l": O() }],
4017
+ "divide-color": [{ divide: O() }],
4018
4018
  "outline-style": [{ outline: [
4019
4019
  ...fe(),
4020
4020
  "none",
@@ -4031,7 +4031,7 @@ var _i = (e, t) => {
4031
4031
  wa,
4032
4032
  _a
4033
4033
  ] }],
4034
- "outline-color": [{ outline: k() }],
4034
+ "outline-color": [{ outline: O() }],
4035
4035
  shadow: [{ shadow: [
4036
4036
  "",
4037
4037
  "none",
@@ -4039,28 +4039,28 @@ var _i = (e, t) => {
4039
4039
  ka,
4040
4040
  Ca
4041
4041
  ] }],
4042
- "shadow-color": [{ shadow: k() }],
4042
+ "shadow-color": [{ shadow: O() }],
4043
4043
  "inset-shadow": [{ "inset-shadow": [
4044
4044
  "none",
4045
4045
  d,
4046
4046
  ka,
4047
4047
  Ca
4048
4048
  ] }],
4049
- "inset-shadow-color": [{ "inset-shadow": k() }],
4049
+ "inset-shadow-color": [{ "inset-shadow": O() }],
4050
4050
  "ring-w": [{ ring: A() }],
4051
4051
  "ring-w-inset": ["ring-inset"],
4052
- "ring-color": [{ ring: k() }],
4052
+ "ring-color": [{ ring: O() }],
4053
4053
  "ring-offset-w": [{ "ring-offset": [I, _a] }],
4054
- "ring-offset-color": [{ "ring-offset": k() }],
4054
+ "ring-offset-color": [{ "ring-offset": O() }],
4055
4055
  "inset-ring-w": [{ "inset-ring": A() }],
4056
- "inset-ring-color": [{ "inset-ring": k() }],
4056
+ "inset-ring-color": [{ "inset-ring": O() }],
4057
4057
  "text-shadow": [{ "text-shadow": [
4058
4058
  "none",
4059
4059
  f,
4060
4060
  ka,
4061
4061
  Ca
4062
4062
  ] }],
4063
- "text-shadow-color": [{ "text-shadow": k() }],
4063
+ "text-shadow-color": [{ "text-shadow": O() }],
4064
4064
  opacity: [{ opacity: [
4065
4065
  I,
4066
4066
  R,
@@ -4089,37 +4089,37 @@ var _i = (e, t) => {
4089
4089
  "mask-image-linear-pos": [{ "mask-linear": [I] }],
4090
4090
  "mask-image-linear-from-pos": [{ "mask-linear-from": me() }],
4091
4091
  "mask-image-linear-to-pos": [{ "mask-linear-to": me() }],
4092
- "mask-image-linear-from-color": [{ "mask-linear-from": k() }],
4093
- "mask-image-linear-to-color": [{ "mask-linear-to": k() }],
4092
+ "mask-image-linear-from-color": [{ "mask-linear-from": O() }],
4093
+ "mask-image-linear-to-color": [{ "mask-linear-to": O() }],
4094
4094
  "mask-image-t-from-pos": [{ "mask-t-from": me() }],
4095
4095
  "mask-image-t-to-pos": [{ "mask-t-to": me() }],
4096
- "mask-image-t-from-color": [{ "mask-t-from": k() }],
4097
- "mask-image-t-to-color": [{ "mask-t-to": k() }],
4096
+ "mask-image-t-from-color": [{ "mask-t-from": O() }],
4097
+ "mask-image-t-to-color": [{ "mask-t-to": O() }],
4098
4098
  "mask-image-r-from-pos": [{ "mask-r-from": me() }],
4099
4099
  "mask-image-r-to-pos": [{ "mask-r-to": me() }],
4100
- "mask-image-r-from-color": [{ "mask-r-from": k() }],
4101
- "mask-image-r-to-color": [{ "mask-r-to": k() }],
4100
+ "mask-image-r-from-color": [{ "mask-r-from": O() }],
4101
+ "mask-image-r-to-color": [{ "mask-r-to": O() }],
4102
4102
  "mask-image-b-from-pos": [{ "mask-b-from": me() }],
4103
4103
  "mask-image-b-to-pos": [{ "mask-b-to": me() }],
4104
- "mask-image-b-from-color": [{ "mask-b-from": k() }],
4105
- "mask-image-b-to-color": [{ "mask-b-to": k() }],
4104
+ "mask-image-b-from-color": [{ "mask-b-from": O() }],
4105
+ "mask-image-b-to-color": [{ "mask-b-to": O() }],
4106
4106
  "mask-image-l-from-pos": [{ "mask-l-from": me() }],
4107
4107
  "mask-image-l-to-pos": [{ "mask-l-to": me() }],
4108
- "mask-image-l-from-color": [{ "mask-l-from": k() }],
4109
- "mask-image-l-to-color": [{ "mask-l-to": k() }],
4108
+ "mask-image-l-from-color": [{ "mask-l-from": O() }],
4109
+ "mask-image-l-to-color": [{ "mask-l-to": O() }],
4110
4110
  "mask-image-x-from-pos": [{ "mask-x-from": me() }],
4111
4111
  "mask-image-x-to-pos": [{ "mask-x-to": me() }],
4112
- "mask-image-x-from-color": [{ "mask-x-from": k() }],
4113
- "mask-image-x-to-color": [{ "mask-x-to": k() }],
4112
+ "mask-image-x-from-color": [{ "mask-x-from": O() }],
4113
+ "mask-image-x-to-color": [{ "mask-x-to": O() }],
4114
4114
  "mask-image-y-from-pos": [{ "mask-y-from": me() }],
4115
4115
  "mask-image-y-to-pos": [{ "mask-y-to": me() }],
4116
- "mask-image-y-from-color": [{ "mask-y-from": k() }],
4117
- "mask-image-y-to-color": [{ "mask-y-to": k() }],
4116
+ "mask-image-y-from-color": [{ "mask-y-from": O() }],
4117
+ "mask-image-y-to-color": [{ "mask-y-to": O() }],
4118
4118
  "mask-image-radial": [{ "mask-radial": [R, L] }],
4119
4119
  "mask-image-radial-from-pos": [{ "mask-radial-from": me() }],
4120
4120
  "mask-image-radial-to-pos": [{ "mask-radial-to": me() }],
4121
- "mask-image-radial-from-color": [{ "mask-radial-from": k() }],
4122
- "mask-image-radial-to-color": [{ "mask-radial-to": k() }],
4121
+ "mask-image-radial-from-color": [{ "mask-radial-from": O() }],
4122
+ "mask-image-radial-to-color": [{ "mask-radial-to": O() }],
4123
4123
  "mask-image-radial-shape": [{ "mask-radial": ["circle", "ellipse"] }],
4124
4124
  "mask-image-radial-size": [{ "mask-radial": [{
4125
4125
  closest: ["side", "corner"],
@@ -4129,8 +4129,8 @@ var _i = (e, t) => {
4129
4129
  "mask-image-conic-pos": [{ "mask-conic": [I] }],
4130
4130
  "mask-image-conic-from-pos": [{ "mask-conic-from": me() }],
4131
4131
  "mask-image-conic-to-pos": [{ "mask-conic-to": me() }],
4132
- "mask-image-conic-from-color": [{ "mask-conic-from": k() }],
4133
- "mask-image-conic-to-color": [{ "mask-conic-to": k() }],
4132
+ "mask-image-conic-from-color": [{ "mask-conic-from": O() }],
4133
+ "mask-image-conic-to-color": [{ "mask-conic-to": O() }],
4134
4134
  "mask-mode": [{ mask: [
4135
4135
  "alpha",
4136
4136
  "luminance",
@@ -4144,9 +4144,9 @@ var _i = (e, t) => {
4144
4144
  "stroke",
4145
4145
  "view"
4146
4146
  ] }],
4147
- "mask-position": [{ mask: se() }],
4148
- "mask-repeat": [{ mask: ce() }],
4149
- "mask-size": [{ mask: le() }],
4147
+ "mask-position": [{ mask: ce() }],
4148
+ "mask-repeat": [{ mask: le() }],
4149
+ "mask-size": [{ mask: k() }],
4150
4150
  "mask-type": [{ "mask-type": ["alpha", "luminance"] }],
4151
4151
  "mask-image": [{ mask: [
4152
4152
  "none",
@@ -4177,7 +4177,7 @@ var _i = (e, t) => {
4177
4177
  ka,
4178
4178
  Ca
4179
4179
  ] }],
4180
- "drop-shadow-color": [{ "drop-shadow": k() }],
4180
+ "drop-shadow-color": [{ "drop-shadow": O() }],
4181
4181
  grayscale: [{ grayscale: [
4182
4182
  "",
4183
4183
  I,
@@ -4337,9 +4337,9 @@ var _i = (e, t) => {
4337
4337
  R,
4338
4338
  L
4339
4339
  ] }],
4340
- accent: [{ accent: k() }],
4340
+ accent: [{ accent: O() }],
4341
4341
  appearance: [{ appearance: ["none", "auto"] }],
4342
- "caret-color": [{ caret: k() }],
4342
+ "caret-color": [{ caret: O() }],
4343
4343
  "color-scheme": [{ scheme: [
4344
4344
  "normal",
4345
4345
  "dark",
@@ -4397,8 +4397,8 @@ var _i = (e, t) => {
4397
4397
  "x"
4398
4398
  ] }],
4399
4399
  "scroll-behavior": [{ scroll: ["auto", "smooth"] }],
4400
- "scrollbar-thumb-color": [{ "scrollbar-thumb": k() }],
4401
- "scrollbar-track-color": [{ "scrollbar-track": k() }],
4400
+ "scrollbar-thumb-color": [{ "scrollbar-thumb": O() }],
4401
+ "scrollbar-track-color": [{ "scrollbar-track": O() }],
4402
4402
  "scrollbar-gutter": [{ "scrollbar-gutter": [
4403
4403
  "auto",
4404
4404
  "stable",
@@ -4475,14 +4475,14 @@ var _i = (e, t) => {
4475
4475
  R,
4476
4476
  L
4477
4477
  ] }],
4478
- fill: [{ fill: ["none", ...k()] }],
4478
+ fill: [{ fill: ["none", ...O()] }],
4479
4479
  "stroke-w": [{ stroke: [
4480
4480
  I,
4481
4481
  wa,
4482
4482
  _a,
4483
4483
  va
4484
4484
  ] }],
4485
- stroke: [{ stroke: ["none", ...k()] }],
4485
+ stroke: [{ stroke: ["none", ...O()] }],
4486
4486
  "forced-color-adjust": [{ "forced-color-adjust": ["auto", "none"] }]
4487
4487
  },
4488
4488
  conflictingClassGroups: {
@@ -4882,7 +4882,7 @@ var no = c(({ className: e, options: t, disabled: n, ...r }, i) => /* @__PURE__
4882
4882
  children: /* @__PURE__ */ v(vt, { className: "h-3.5 w-3.5" })
4883
4883
  })]
4884
4884
  }));
4885
- no.displayName = "Select", e(), rt("camstack:secret-reveal", null), F.accessories.setChildHidden.useMutation, F.accessories.getStatus.useQuery, F.addonPages.listPages.useQuery, F.addons.list.useQuery, F.addons.getLogs.useQuery, F.addons.listPackages.useQuery, F.addons.installPackage.useMutation, F.addons.installFromWorkspace.useMutation, F.addons.isWorkspaceAvailable.useQuery, F.addons.listWorkspacePackages.useQuery, F.addons.uninstallPackage.useMutation, F.addons.listInstallations.useQuery, F.addons.reloadPackages.useMutation, F.addons.searchAvailable.useQuery, F.addons.listUpdates.useQuery, F.addons.updatePackage.useMutation, F.addons.rollbackPackage.useMutation, F.addons.forceRefresh.useMutation, F.addons.restartServer.useMutation, F.addons.getLastRestart.useQuery, F.addons.listFrameworkPackages.useQuery, F.addons.listCapabilityProviders.useQuery, F.addons.setCapabilityProviderEnabled.useMutation, F.addons.getVersions.useQuery, F.addons.getPackageDocs.useQuery, F.addons.restartAddon.useMutation, F.addons.retryLoad.useMutation, F.addons.getAutoUpdateSettings.useQuery, F.addons.setAutoUpdateSettings.useMutation, F.addons.getAddonAutoUpdate.useQuery, F.addons.setAddonAutoUpdate.useMutation, F.addons.applyAutoUpdateToAll.useMutation, F.addons.custom.useMutation, F.addons.startJob.useMutation, F.addons.getJob.useQuery, F.addons.listJobs.useQuery, F.addons.cancelJob.useMutation, F.addons.onAddonLogs.useSubscription, F.addonSettings.getGlobalSettings.useQuery, F.addonSettings.updateGlobalSettings.useMutation, F.addonSettings.getIntegrationSettings.useQuery, F.addonSettings.getDeviceSettings.useQuery, F.addonSettings.updateDeviceSettings.useMutation, F.addonWidgets.listWidgets.useQuery, F.airQualitySensor.getStatus.useQuery, F.alarmPanel.arm.useMutation, F.alarmPanel.disarm.useMutation, F.alarmPanel.trigger.useMutation, F.alarmPanel.getStatus.useQuery, F.alerts.emit.useMutation, F.alerts.update.useMutation, F.alerts.list.useQuery, F.alerts.getUnreadCount.useQuery, F.alerts.markRead.useMutation, F.alerts.markAllRead.useMutation, F.alerts.dismiss.useMutation, F.ambientLightSensor.getStatus.useQuery, F.audioAnalysis.resolveDeviceSettings.useQuery, F.audioAnalysis.getDeviceSettingsContribution.useQuery, F.audioAnalysis.getDeviceLiveContribution.useQuery, F.audioAnalysis.applyDeviceSettingsPatch.useMutation, F.audioAnalyzer.analyseChunk.useMutation, F.audioAnalyzer.classify.useQuery, F.audioAnalyzer.attachDevice.useMutation, F.audioAnalyzer.detachDevice.useMutation, F.audioAnalyzer.isReady.useQuery, F.audioAnalyzer.dispose.useMutation, F.audioAnalyzer.reprobeAudioEngine.useMutation, F.audioCodec.listSupportedCodecs.useQuery, F.audioCodec.canHandle.useQuery, F.audioCodec.createDecodeSession.useMutation, F.audioCodec.createEncodeSession.useMutation, F.audioCodec.closeSession.useMutation, F.audioCodec.pushEncodedFrame.useMutation, F.audioCodec.pullPcm.useQuery, F.audioCodec.pushPcm.useMutation, F.audioCodec.pullEncoded.useQuery, F.audioCodec.flushEncode.useMutation, F.audioCodec.listActiveSessions.useQuery, F.audioMetrics.getCurrentSnapshot.useQuery, F.audioMetrics.getHistory.useQuery, F.automationControl.enable.useMutation, F.automationControl.disable.useMutation, F.automationControl.trigger.useMutation, F.automationControl.getStatus.useQuery, F.backup.listDestinations.useQuery, F.backup.trigger.useMutation, F.backup.listRuns.useQuery, F.backup.cancel.useMutation, F.backup.list.useQuery, F.backup.listLocations.useQuery, F.backup.getEntries.useQuery, F.backup.restore.useMutation, F.backup.getEncryption.useQuery, F.backup.setupEncryption.useMutation, F.backup.disableEncryption.useMutation, F.backup.checkBackupKey.useMutation, F.backup.delete.useMutation, F.backup.listArchives.useQuery, F.backup.upsertDestinationPolicy.useMutation, F.backup.previewSchedule.useQuery, F.backup.listSchedules.useQuery, F.backup.listAvailableDatabases.useQuery, F.backup.upsertSchedule.useMutation, F.backup.deleteSchedule.useMutation, F.battery.wakeForStream.useMutation, F.battery.getStatus.useQuery, F.binary.getStatus.useQuery, F.brightness.setBrightness.useMutation, F.brightness.getStatus.useQuery, F.broker.list.useQuery, F.broker.get.useQuery, F.broker.listProviders.useQuery, F.broker.add.useMutation, F.broker.remove.useMutation, F.broker.testConnection.useMutation, F.broker.getSettings.useQuery, F.broker.setSettings.useMutation, F.broker.getBrokerConfig.useQuery, F.broker.getSettingsSchema.useQuery, F.broker.testSettings.useMutation, F.broker.publish.useMutation, F.broker.subscribe.useMutation, F.broker.unsubscribe.useMutation, F.broker.getState.useQuery, F.broker.getStatus.useQuery, F.button.press.useMutation, F.calendars.listCalendars.useQuery, F.calendars.listEvents.useQuery, F.calendars.getPreferences.useQuery, F.calendars.setCalendarPreference.useMutation, F.cameraCredentials.getCredentials.useQuery, F.cameraCredentials.getStatus.useQuery, F.cameraGridLayout.getLayout.useQuery, F.cameraGridLayout.saveLayout.useMutation, F.cameraGridLayout.getDeviceSettingsContribution.useQuery, F.cameraGridLayout.getDeviceLiveContribution.useQuery, F.cameraGridLayout.applyDeviceSettingsPatch.useMutation, F.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, F.cameraPipelineConfig.getDeviceLiveContribution.useQuery, F.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, F.cameraStreams.getCameraStreams.useQuery, F.cameraStreams.getBrokerStreams.useQuery, F.cameraStreams.getRtspEntries.useQuery, F.cameraStreams.getProfileRtspEntries.useQuery, F.cameraStreams.pickStream.useQuery, F.carbonMonoxide.getStatus.useQuery, F.climateControl.setMode.useMutation, F.climateControl.setFanMode.useMutation, F.climateControl.setPreset.useMutation, F.climateControl.setTarget.useMutation, F.climateControl.setTargetRange.useMutation, F.climateControl.setTargetHumidity.useMutation, F.climateControl.setSwingVertical.useMutation, F.climateControl.setSwingHorizontal.useMutation, F.climateControl.getStatus.useQuery, F.color.setColor.useMutation, F.color.getStatus.useQuery, F.connectionTest.testSettings.useMutation, F.connectionTest.describeTest.useQuery, F.connectivity.getStatus.useQuery, F.consumables.reset.useMutation, F.consumables.getStatus.useQuery, F.contact.getStatus.useQuery, F.control.setValue.useMutation, F.control.getStatus.useQuery, F.coreBlocks.list.useQuery, F.coreBlocks.get.useQuery, F.coreBlocks.create.useMutation, F.coreBlocks.update.useMutation, F.coreBlocks.delete.useMutation, F.coreBlocks.setEnabled.useMutation, F.coreBlocks.restart.useMutation, F.coreBlocks.compile.useMutation, F.coreBlocks.getBlockSettings.useQuery, F.coreBlocks.updateBlockSettings.useMutation, F.coreBlocks.migrateRawSecrets.useMutation, F.coreBlocks.getTypeDefs.useQuery, F.coreBlocks.createComposition.useMutation, F.coreBlocks.updateComposition.useMutation, F.coreBlocks.getComposition.useQuery, F.coreBlocks.listCompositions.useQuery, F.coreBlocks.getCustomization.useQuery, F.coreBlocks.listComposableCaps.useQuery, F.coreBlocks.validateComposition.useMutation, F.cover.open.useMutation, F.cover.close.useMutation, F.cover.stop.useMutation, F.cover.setPosition.useMutation, F.cover.setTiltPosition.useMutation, F.cover.getStatus.useQuery, F.dayNight.getOptions.useQuery, F.dayNight.setSettings.useMutation, F.dayNight.getStatus.useQuery, F.decoder.getInfo.useQuery, F.decoder.reprobeHwaccel.useMutation, F.detectionPipeline.getDeviceSettingsContribution.useQuery, F.detectionPipeline.getDeviceLiveContribution.useQuery, F.detectionPipeline.applyDeviceSettingsPatch.useMutation, F.deviceAdminLink.getAdminLink.useQuery, F.deviceAdoption.listCandidateFilters.useQuery, F.deviceAdoption.listCandidates.useQuery, F.deviceAdoption.getCandidate.useQuery, F.deviceAdoption.refresh.useMutation, F.deviceAdoption.adopt.useMutation, F.deviceAdoption.release.useMutation, F.deviceAdoption.resync.useMutation, F.deviceAdoption.getStatus.useQuery, F.deviceCredentials.listDeviceCredentials.useQuery, F.deviceCredentials.startEnrollment.useMutation, F.deviceCredentials.revokeDeviceCredential.useMutation, F.deviceCredentials.getDeviceCertificateSettings.useQuery, F.deviceCredentials.setDeviceCertificateSettings.useMutation, F.deviceCredentials.deleteDeviceCredential.useMutation, F.deviceCredentials.getDeviceCaStatus.useQuery, F.deviceCredentials.renameDeviceCredential.useMutation, F.deviceDiscovery.listDiscovered.useQuery, F.deviceDiscovery.refreshDiscovery.useMutation, F.deviceDiscovery.adoptDevice.useMutation, F.deviceDiscovery.releaseDevice.useMutation, F.deviceDiscovery.getStatus.useQuery, F.deviceExport.getStatus.useQuery, F.deviceExport.listSupportedDeviceKinds.useQuery, F.deviceExport.listExposedDevices.useQuery, F.deviceExport.exposeDevice.useMutation, F.deviceExport.unexposeDevice.useMutation, F.deviceExport.getDeviceSettingsContribution.useQuery, F.deviceExport.getDeviceLiveContribution.useQuery, F.deviceExport.applyDeviceSettingsPatch.useMutation, F.deviceExtension.listSources.useQuery, F.deviceExtension.listSlots.useQuery, F.deviceExtension.listCandidates.useQuery, F.deviceExtension.setSlot.useMutation, F.deviceHistory.listSeries.useQuery, F.deviceHistory.listNodeSeries.useQuery, F.deviceHistory.query.useQuery, F.deviceHistory.queryNode.useQuery, F.deviceHistory.queryMany.useQuery, F.deviceHistory.declareSeries.useMutation, F.deviceHistory.record.useMutation, F.deviceHistory.recordBuckets.useMutation, F.deviceHistory.getDeviceEnabled.useQuery, F.deviceHistory.setDeviceEnabled.useMutation, F.deviceHistory.getStatus.useQuery, F.deviceHistory.listOrphanSeries.useQuery, F.deviceHistory.deleteOrphanSeries.useMutation, F.deviceManager.allocateDeviceId.useMutation, F.deviceManager.migrateDevice.useMutation, F.deviceManager.registerDevice.useMutation, F.deviceManager.removeDevice.useMutation, F.deviceManager.persistConfig.useMutation, F.deviceManager.loadConfig.useQuery, F.deviceManager.loadRuntimeState.useQuery, F.deviceManager.loadMeta.useQuery, F.deviceManager.setName.useMutation, F.deviceManager.setLocation.useMutation, F.deviceManager.setType.useMutation, F.deviceManager.setIntegrationId.useMutation, F.deviceManager.setLinkDeviceId.useMutation, F.deviceManager.setPrimaryChildEntityId.useMutation, F.deviceManager.setChildLayout.useMutation, F.deviceManager.setDisplay.useMutation;
4885
+ no.displayName = "Select", e(), rt("camstack:secret-reveal", null), F.accessories.setChildHidden.useMutation, F.accessories.getStatus.useQuery, F.actions.list.useQuery, F.actions.get.useQuery, F.actions.run.useMutation, F.actions.stop.useMutation, F.actions.getTraces.useQuery, F.actions.create.useMutation, F.actions.update.useMutation, F.actions.delete.useMutation, F.actions.listForCamera.useQuery, F.actions.getLinks.useQuery, F.actions.setLinks.useMutation, F.actionSource.listActions.useQuery, F.actionSource.runAction.useMutation, F.actionSource.stopAction.useMutation, F.addonPages.listPages.useQuery, F.addons.list.useQuery, F.addons.getLogs.useQuery, F.addons.listPackages.useQuery, F.addons.installPackage.useMutation, F.addons.installFromWorkspace.useMutation, F.addons.isWorkspaceAvailable.useQuery, F.addons.listWorkspacePackages.useQuery, F.addons.uninstallPackage.useMutation, F.addons.listInstallations.useQuery, F.addons.reloadPackages.useMutation, F.addons.searchAvailable.useQuery, F.addons.listUpdates.useQuery, F.addons.updatePackage.useMutation, F.addons.rollbackPackage.useMutation, F.addons.forceRefresh.useMutation, F.addons.restartServer.useMutation, F.addons.getLastRestart.useQuery, F.addons.listFrameworkPackages.useQuery, F.addons.listCapabilityProviders.useQuery, F.addons.setCapabilityProviderEnabled.useMutation, F.addons.getVersions.useQuery, F.addons.getPackageDocs.useQuery, F.addons.restartAddon.useMutation, F.addons.retryLoad.useMutation, F.addons.getAutoUpdateSettings.useQuery, F.addons.setAutoUpdateSettings.useMutation, F.addons.getAddonAutoUpdate.useQuery, F.addons.setAddonAutoUpdate.useMutation, F.addons.applyAutoUpdateToAll.useMutation, F.addons.custom.useMutation, F.addons.startJob.useMutation, F.addons.getJob.useQuery, F.addons.listJobs.useQuery, F.addons.cancelJob.useMutation, F.addons.onAddonLogs.useSubscription, F.addonSettings.getGlobalSettings.useQuery, F.addonSettings.updateGlobalSettings.useMutation, F.addonSettings.getIntegrationSettings.useQuery, F.addonSettings.getDeviceSettings.useQuery, F.addonSettings.updateDeviceSettings.useMutation, F.addonWidgets.listWidgets.useQuery, F.airQualitySensor.getStatus.useQuery, F.alarmPanel.arm.useMutation, F.alarmPanel.disarm.useMutation, F.alarmPanel.trigger.useMutation, F.alarmPanel.getStatus.useQuery, F.alerts.emit.useMutation, F.alerts.update.useMutation, F.alerts.list.useQuery, F.alerts.getUnreadCount.useQuery, F.alerts.markRead.useMutation, F.alerts.markAllRead.useMutation, F.alerts.dismiss.useMutation, F.ambientLightSensor.getStatus.useQuery, F.audioAnalysis.resolveDeviceSettings.useQuery, F.audioAnalysis.getDeviceSettingsContribution.useQuery, F.audioAnalysis.getDeviceLiveContribution.useQuery, F.audioAnalysis.applyDeviceSettingsPatch.useMutation, F.audioAnalyzer.analyseChunk.useMutation, F.audioAnalyzer.classify.useQuery, F.audioAnalyzer.attachDevice.useMutation, F.audioAnalyzer.detachDevice.useMutation, F.audioAnalyzer.isReady.useQuery, F.audioAnalyzer.dispose.useMutation, F.audioAnalyzer.reprobeAudioEngine.useMutation, F.audioCodec.listSupportedCodecs.useQuery, F.audioCodec.canHandle.useQuery, F.audioCodec.createDecodeSession.useMutation, F.audioCodec.createEncodeSession.useMutation, F.audioCodec.closeSession.useMutation, F.audioCodec.pushEncodedFrame.useMutation, F.audioCodec.pullPcm.useQuery, F.audioCodec.pushPcm.useMutation, F.audioCodec.pullEncoded.useQuery, F.audioCodec.flushEncode.useMutation, F.audioCodec.listActiveSessions.useQuery, F.audioMetrics.getCurrentSnapshot.useQuery, F.audioMetrics.getHistory.useQuery, F.automationControl.enable.useMutation, F.automationControl.disable.useMutation, F.automationControl.trigger.useMutation, F.automationControl.getStatus.useQuery, F.backup.listDestinations.useQuery, F.backup.trigger.useMutation, F.backup.listRuns.useQuery, F.backup.cancel.useMutation, F.backup.list.useQuery, F.backup.listLocations.useQuery, F.backup.getEntries.useQuery, F.backup.restore.useMutation, F.backup.getEncryption.useQuery, F.backup.setupEncryption.useMutation, F.backup.disableEncryption.useMutation, F.backup.checkBackupKey.useMutation, F.backup.delete.useMutation, F.backup.listArchives.useQuery, F.backup.upsertDestinationPolicy.useMutation, F.backup.previewSchedule.useQuery, F.backup.listSchedules.useQuery, F.backup.listAvailableDatabases.useQuery, F.backup.upsertSchedule.useMutation, F.backup.deleteSchedule.useMutation, F.battery.wakeForStream.useMutation, F.battery.getStatus.useQuery, F.binary.getStatus.useQuery, F.brightness.setBrightness.useMutation, F.brightness.getStatus.useQuery, F.broker.list.useQuery, F.broker.get.useQuery, F.broker.listProviders.useQuery, F.broker.add.useMutation, F.broker.remove.useMutation, F.broker.testConnection.useMutation, F.broker.getSettings.useQuery, F.broker.setSettings.useMutation, F.broker.getBrokerConfig.useQuery, F.broker.getSettingsSchema.useQuery, F.broker.testSettings.useMutation, F.broker.publish.useMutation, F.broker.subscribe.useMutation, F.broker.unsubscribe.useMutation, F.broker.getState.useQuery, F.broker.getStatus.useQuery, F.button.press.useMutation, F.calendars.listCalendars.useQuery, F.calendars.listEvents.useQuery, F.calendars.getPreferences.useQuery, F.calendars.setCalendarPreference.useMutation, F.cameraCredentials.getCredentials.useQuery, F.cameraCredentials.getStatus.useQuery, F.cameraGridLayout.getLayout.useQuery, F.cameraGridLayout.saveLayout.useMutation, F.cameraGridLayout.getDeviceSettingsContribution.useQuery, F.cameraGridLayout.getDeviceLiveContribution.useQuery, F.cameraGridLayout.applyDeviceSettingsPatch.useMutation, F.cameraPipelineConfig.getDeviceSettingsContribution.useQuery, F.cameraPipelineConfig.getDeviceLiveContribution.useQuery, F.cameraPipelineConfig.applyDeviceSettingsPatch.useMutation, F.cameraStreams.getCameraStreams.useQuery, F.cameraStreams.getBrokerStreams.useQuery, F.cameraStreams.getRtspEntries.useQuery, F.cameraStreams.getProfileRtspEntries.useQuery, F.cameraStreams.pickStream.useQuery, F.carbonMonoxide.getStatus.useQuery, F.climateControl.setMode.useMutation, F.climateControl.setFanMode.useMutation, F.climateControl.setPreset.useMutation, F.climateControl.setTarget.useMutation, F.climateControl.setTargetRange.useMutation, F.climateControl.setTargetHumidity.useMutation, F.climateControl.setSwingVertical.useMutation, F.climateControl.setSwingHorizontal.useMutation, F.climateControl.getStatus.useQuery, F.color.setColor.useMutation, F.color.getStatus.useQuery, F.connectionTest.testSettings.useMutation, F.connectionTest.describeTest.useQuery, F.connectivity.getStatus.useQuery, F.consumables.reset.useMutation, F.consumables.getStatus.useQuery, F.contact.getStatus.useQuery, F.control.setValue.useMutation, F.control.getStatus.useQuery, F.coreBlocks.list.useQuery, F.coreBlocks.get.useQuery, F.coreBlocks.create.useMutation, F.coreBlocks.update.useMutation, F.coreBlocks.delete.useMutation, F.coreBlocks.setEnabled.useMutation, F.coreBlocks.restart.useMutation, F.coreBlocks.compile.useMutation, F.coreBlocks.getBlockSettings.useQuery, F.coreBlocks.updateBlockSettings.useMutation, F.coreBlocks.migrateRawSecrets.useMutation, F.coreBlocks.getTypeDefs.useQuery, F.coreBlocks.createComposition.useMutation, F.coreBlocks.updateComposition.useMutation, F.coreBlocks.getComposition.useQuery, F.coreBlocks.listCompositions.useQuery, F.coreBlocks.getCustomization.useQuery, F.coreBlocks.listComposableCaps.useQuery, F.coreBlocks.validateComposition.useMutation, F.coreBlocks.reportAutomationRun.useMutation, F.coreBlocks.getAutomationRunState.useQuery, F.coreBlocks.getTraces.useQuery, F.cover.open.useMutation, F.cover.close.useMutation, F.cover.stop.useMutation, F.cover.setPosition.useMutation, F.cover.setTiltPosition.useMutation, F.cover.getStatus.useQuery, F.dayNight.getOptions.useQuery, F.dayNight.setSettings.useMutation, F.dayNight.getStatus.useQuery, F.decoder.getInfo.useQuery, F.decoder.reprobeHwaccel.useMutation, F.detectionPipeline.getDeviceSettingsContribution.useQuery, F.detectionPipeline.getDeviceLiveContribution.useQuery, F.detectionPipeline.applyDeviceSettingsPatch.useMutation, F.deviceAdminLink.getAdminLink.useQuery, F.deviceAdoption.listCandidateFilters.useQuery, F.deviceAdoption.listCandidates.useQuery, F.deviceAdoption.getCandidate.useQuery, F.deviceAdoption.refresh.useMutation, F.deviceAdoption.adopt.useMutation, F.deviceAdoption.release.useMutation, F.deviceAdoption.resync.useMutation, F.deviceAdoption.getStatus.useQuery, F.deviceCredentials.listDeviceCredentials.useQuery, F.deviceCredentials.startEnrollment.useMutation, F.deviceCredentials.revokeDeviceCredential.useMutation, F.deviceCredentials.getDeviceCertificateSettings.useQuery, F.deviceCredentials.setDeviceCertificateSettings.useMutation, F.deviceCredentials.deleteDeviceCredential.useMutation, F.deviceCredentials.getDeviceCaStatus.useQuery, F.deviceCredentials.renameDeviceCredential.useMutation, F.deviceDiscovery.listDiscovered.useQuery, F.deviceDiscovery.refreshDiscovery.useMutation, F.deviceDiscovery.adoptDevice.useMutation, F.deviceDiscovery.releaseDevice.useMutation, F.deviceDiscovery.getStatus.useQuery, F.deviceExport.getStatus.useQuery, F.deviceExport.listSupportedDeviceKinds.useQuery, F.deviceExport.listExposedDevices.useQuery, F.deviceExport.exposeDevice.useMutation, F.deviceExport.unexposeDevice.useMutation, F.deviceExport.getDeviceSettingsContribution.useQuery, F.deviceExport.getDeviceLiveContribution.useQuery, F.deviceExport.applyDeviceSettingsPatch.useMutation, F.deviceExtension.listSources.useQuery, F.deviceExtension.listSlots.useQuery, F.deviceExtension.listCandidates.useQuery, F.deviceExtension.setSlot.useMutation, F.deviceHistory.listSeries.useQuery, F.deviceHistory.listNodeSeries.useQuery, F.deviceHistory.query.useQuery, F.deviceHistory.queryNode.useQuery, F.deviceHistory.queryMany.useQuery, F.deviceHistory.declareSeries.useMutation, F.deviceHistory.record.useMutation, F.deviceHistory.recordBuckets.useMutation, F.deviceHistory.getDeviceEnabled.useQuery, F.deviceHistory.setDeviceEnabled.useMutation, F.deviceHistory.getStatus.useQuery, F.deviceHistory.listOrphanSeries.useQuery, F.deviceHistory.deleteOrphanSeries.useMutation, F.deviceManager.allocateDeviceId.useMutation, F.deviceManager.migrateDevice.useMutation, F.deviceManager.registerDevice.useMutation, F.deviceManager.removeDevice.useMutation, F.deviceManager.persistConfig.useMutation, F.deviceManager.loadConfig.useQuery, F.deviceManager.loadRuntimeState.useQuery, F.deviceManager.loadMeta.useQuery, F.deviceManager.setName.useMutation, F.deviceManager.setLocation.useMutation, F.deviceManager.setType.useMutation, F.deviceManager.setIntegrationId.useMutation, F.deviceManager.setLinkDeviceId.useMutation, F.deviceManager.setPrimaryChildEntityId.useMutation, F.deviceManager.setChildLayout.useMutation, F.deviceManager.setDisplay.useMutation;
4886
4886
  var ro = F.deviceManager.getRoleDisplayDefaults.useQuery;
4887
4887
  F.deviceManager.setRoleDisplayDefaults.useMutation, F.deviceManager.getWireableFields.useQuery, F.deviceManager.setRole.useMutation, F.deviceManager.applyInitialMeta.useMutation, F.deviceManager.setMetadata.useMutation, F.deviceManager.listLocations.useQuery, F.deviceManager.addLocation.useMutation, F.deviceManager.removeLocation.useMutation, F.deviceManager.renameLocation.useMutation, F.deviceManager.listLocationIcons.useQuery, F.deviceManager.setLocationIcon.useMutation, F.deviceManager.listLocationDescriptions.useQuery, F.deviceManager.setLocationDescription.useMutation, F.deviceManager.listSiteZones.useQuery, F.deviceManager.setSiteZone.useMutation, F.deviceManager.removeSiteZone.useMutation, F.deviceManager.renameSiteZone.useMutation, F.deviceManager.setLocationZone.useMutation, F.deviceManager.setDisabled.useMutation, F.deviceManager.listPersistedByAddon.useQuery, F.deviceManager.listAll.useQuery;
4888
4888
  var io = F.deviceManager.getDevice.useQuery;
@@ -8734,11 +8734,56 @@ var Pp = {
8734
8734
  vibration: "detected",
8735
8735
  tamper: "tampered"
8736
8736
  };
8737
+ new Set([
8738
+ {
8739
+ id: "person",
8740
+ name: "Person"
8741
+ },
8742
+ {
8743
+ id: "vehicle",
8744
+ name: "Vehicle"
8745
+ },
8746
+ {
8747
+ id: "animal",
8748
+ name: "Animal"
8749
+ },
8750
+ {
8751
+ id: "package",
8752
+ name: "Package"
8753
+ }
8754
+ ].map((e) => e.id));
8755
+ var Fp = {
8756
+ mapping: {
8757
+ person: "person",
8758
+ bicycle: "vehicle",
8759
+ car: "vehicle",
8760
+ motorcycle: "vehicle",
8761
+ airplane: "vehicle",
8762
+ bus: "vehicle",
8763
+ train: "vehicle",
8764
+ truck: "vehicle",
8765
+ boat: "vehicle",
8766
+ bird: "animal",
8767
+ cat: "animal",
8768
+ dog: "animal",
8769
+ horse: "animal",
8770
+ sheep: "animal",
8771
+ cow: "animal",
8772
+ elephant: "animal",
8773
+ bear: "animal",
8774
+ zebra: "animal",
8775
+ giraffe: "animal",
8776
+ suitcase: "package",
8777
+ backpack: "package",
8778
+ handbag: "package"
8779
+ },
8780
+ preserveOriginal: !1
8781
+ };
8737
8782
  K({
8738
8783
  field: H().min(1),
8739
8784
  on: J("advance")
8740
8785
  });
8741
- var Fp = K({
8786
+ var Ip = K({
8742
8787
  id: H(),
8743
8788
  title: H(),
8744
8789
  description: H().optional(),
@@ -8766,7 +8811,7 @@ K({
8766
8811
  icon: H(),
8767
8812
  order: U().optional()
8768
8813
  })).optional(),
8769
- sections: G(Fp)
8814
+ sections: G(Ip)
8770
8815
  }).nullable(), K({ deviceId: U() }), K({ deviceId: U() }), K({
8771
8816
  deviceId: U(),
8772
8817
  patch: Pf(H(), bf())
@@ -8783,13 +8828,13 @@ function Y(e, t, n) {
8783
8828
  timeoutMs: n?.timeoutMs
8784
8829
  };
8785
8830
  }
8786
- function Ip(e, t, n) {
8831
+ function Lp(e, t, n) {
8787
8832
  return {
8788
8833
  ...Y(e, t, n),
8789
8834
  providerOptional: !0
8790
8835
  };
8791
8836
  }
8792
- var Lp = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.charts.communication.connectivity.cursors.design.development.devices.emoji.files.finance.food-beverage.gaming.home.layout.mail.math.medical.multimedia.nature.navigation.notifications.people.photography.science.seasons.security.shapes.shopping.social.sports.sustainability.text.time.tools.transportation.travel.weather".split("."), Rp = /* @__PURE__ */ "a-arrow-down.a-arrow-up.a-large-small.accessibility.activity.air-vent.airplay.alarm-clock.alarm-clock-check.alarm-clock-minus.alarm-clock-off.alarm-clock-plus.alarm-smoke.album.align-center-horizontal.align-center-vertical.align-end-horizontal.align-end-vertical.align-horizontal-distribute-center.align-horizontal-distribute-end.align-horizontal-distribute-start.align-horizontal-justify-center.align-horizontal-justify-end.align-horizontal-justify-start.align-horizontal-space-around.align-horizontal-space-between.align-start-horizontal.align-start-vertical.align-vertical-distribute-center.align-vertical-distribute-end.align-vertical-distribute-start.align-vertical-justify-center.align-vertical-justify-end.align-vertical-justify-start.align-vertical-space-around.align-vertical-space-between.ambulance.ampersand.ampersands.amphora.anchor.angry.annoyed.antenna.anvil.aperture.app-window.app-window-mac.apple.archive.archive-restore.archive-x.armchair.arrow-big-down.arrow-big-down-dash.arrow-big-left.arrow-big-left-dash.arrow-big-right.arrow-big-right-dash.arrow-big-up.arrow-big-up-dash.arrow-down.arrow-down-0-1.arrow-down-1-0.arrow-down-a-z.arrow-down-from-line.arrow-down-left.arrow-down-narrow-wide.arrow-down-right.arrow-down-to-dot.arrow-down-to-line.arrow-down-up.arrow-down-wide-narrow.arrow-down-z-a.arrow-left.arrow-left-from-line.arrow-left-right.arrow-left-to-line.arrow-right.arrow-right-from-line.arrow-right-left.arrow-right-to-line.arrow-up.arrow-up-0-1.arrow-up-1-0.arrow-up-a-z.arrow-up-down.arrow-up-from-dot.arrow-up-from-line.arrow-up-left.arrow-up-narrow-wide.arrow-up-right.arrow-up-to-line.arrow-up-wide-narrow.arrow-up-z-a.arrows-up-from-line.asterisk.at-sign.atom.audio-lines.audio-waveform.award.axe.axis-3d.baby.backpack.badge.badge-alert.badge-cent.badge-check.badge-dollar-sign.badge-euro.badge-indian-rupee.badge-info.badge-japanese-yen.badge-minus.badge-percent.badge-plus.badge-pound-sterling.badge-question-mark.badge-russian-ruble.badge-swiss-franc.badge-turkish-lira.badge-x.baggage-claim.balloon.ban.banana.bandage.banknote.banknote-arrow-down.banknote-arrow-up.banknote-x.barcode.barrel.baseline.bath.battery.battery-charging.battery-full.battery-low.battery-medium.battery-plus.battery-warning.beaker.bean.bean-off.bed.bed-double.bed-single.beef.beer.beer-off.bell.bell-dot.bell-electric.bell-minus.bell-off.bell-plus.bell-ring.between-horizontal-end.between-horizontal-start.between-vertical-end.between-vertical-start.biceps-flexed.bike.binary.binoculars.biohazard.bird.birdhouse.bitcoin.blend.blinds.blocks.bluetooth.bluetooth-connected.bluetooth-off.bluetooth-searching.bold.bolt.bomb.bone.book.book-a.book-alert.book-audio.book-check.book-copy.book-dashed.book-down.book-headphones.book-heart.book-image.book-key.book-lock.book-marked.book-minus.book-open.book-open-check.book-open-text.book-plus.book-search.book-text.book-type.book-up.book-up-2.book-user.book-x.bookmark.bookmark-check.bookmark-minus.bookmark-plus.bookmark-x.boom-box.bot.bot-message-square.bot-off.bottle-wine.bow-arrow.box.boxes.braces.brackets.brain.brain-circuit.brain-cog.brick-wall.brick-wall-fire.brick-wall-shield.briefcase.briefcase-business.briefcase-conveyor-belt.briefcase-medical.bring-to-front.brush.brush-cleaning.bubbles.bug.bug-off.bug-play.building.building-2.bus.bus-front.cable.cable-car.cake.cake-slice.calculator.calendar.calendar-1.calendar-arrow-down.calendar-arrow-up.calendar-check.calendar-check-2.calendar-clock.calendar-cog.calendar-days.calendar-fold.calendar-heart.calendar-minus.calendar-minus-2.calendar-off.calendar-plus.calendar-plus-2.calendar-range.calendar-search.calendar-sync.calendar-x.calendar-x-2.calendars.camera.camera-off.candy.candy-cane.candy-off.cannabis.cannabis-off.captions.captions-off.car.car-front.car-taxi-front.caravan.card-sim.carrot.case-lower.case-sensitive.case-upper.cassette-tape.cast.castle.cat.cctv.chart-area.chart-bar.chart-bar-big.chart-bar-decreasing.chart-bar-increasing.chart-bar-stacked.chart-candlestick.chart-column.chart-column-big.chart-column-decreasing.chart-column-increasing.chart-column-stacked.chart-gantt.chart-line.chart-network.chart-no-axes-column.chart-no-axes-column-decreasing.chart-no-axes-column-increasing.chart-no-axes-combined.chart-no-axes-gantt.chart-pie.chart-scatter.chart-spline.check.check-check.check-line.chef-hat.cherry.chess-bishop.chess-king.chess-knight.chess-pawn.chess-queen.chess-rook.chevron-down.chevron-first.chevron-last.chevron-left.chevron-right.chevron-up.chevrons-down.chevrons-down-up.chevrons-left.chevrons-left-right.chevrons-left-right-ellipsis.chevrons-right.chevrons-right-left.chevrons-up.chevrons-up-down.church.cigarette.cigarette-off.circle.circle-alert.circle-arrow-down.circle-arrow-left.circle-arrow-out-down-left.circle-arrow-out-down-right.circle-arrow-out-up-left.circle-arrow-out-up-right.circle-arrow-right.circle-arrow-up.circle-check.circle-check-big.circle-chevron-down.circle-chevron-left.circle-chevron-right.circle-chevron-up.circle-dashed.circle-divide.circle-dollar-sign.circle-dot.circle-dot-dashed.circle-ellipsis.circle-equal.circle-fading-arrow-up.circle-fading-plus.circle-gauge.circle-minus.circle-off.circle-parking.circle-parking-off.circle-pause.circle-percent.circle-pile.circle-play.circle-plus.circle-pound-sterling.circle-power.circle-question-mark.circle-slash.circle-slash-2.circle-small.circle-star.circle-stop.circle-user.circle-user-round.circle-x.circuit-board.citrus.clapperboard.clipboard.clipboard-check.clipboard-clock.clipboard-copy.clipboard-list.clipboard-minus.clipboard-paste.clipboard-pen.clipboard-pen-line.clipboard-plus.clipboard-type.clipboard-x.clock.clock-1.clock-10.clock-11.clock-12.clock-2.clock-3.clock-4.clock-5.clock-6.clock-7.clock-8.clock-9.clock-alert.clock-arrow-down.clock-arrow-up.clock-check.clock-fading.clock-plus.closed-caption.cloud.cloud-alert.cloud-backup.cloud-check.cloud-cog.cloud-download.cloud-drizzle.cloud-fog.cloud-hail.cloud-lightning.cloud-moon.cloud-moon-rain.cloud-off.cloud-rain.cloud-rain-wind.cloud-snow.cloud-sun.cloud-sun-rain.cloud-sync.cloud-upload.cloudy.clover.club.code.code-xml.coffee.cog.coins.columns-2.columns-3.columns-3-cog.columns-4.combine.command.compass.component.computer.concierge-bell.cone.construction.contact.contact-round.container.contrast.cookie.cooking-pot.copy.copy-check.copy-minus.copy-plus.copy-slash.copy-x.copyleft.copyright.corner-down-left.corner-down-right.corner-left-down.corner-left-up.corner-right-down.corner-right-up.corner-up-left.corner-up-right.cpu.creative-commons.credit-card.croissant.crop.cross.crosshair.crown.cuboid.cup-soda.currency.cylinder.dam.database.database-backup.database-search.database-zap.decimals-arrow-left.decimals-arrow-right.delete.dessert.diameter.diamond.diamond-minus.diamond-percent.diamond-plus.dice-1.dice-2.dice-3.dice-4.dice-5.dice-6.dices.diff.disc.disc-2.disc-3.disc-album.divide.dna.dna-off.dock.dog.dollar-sign.donut.door-closed.door-closed-locked.door-open.dot.download.drafting-compass.drama.drill.drone.droplet.droplet-off.droplets.drum.drumstick.dumbbell.ear.ear-off.earth.earth-lock.eclipse.egg.egg-fried.egg-off.ellipsis.ellipsis-vertical.equal.equal-approximately.equal-not.eraser.ethernet-port.euro.ev-charger.expand.external-link.eye.eye-closed.eye-off.factory.fan.fast-forward.feather.fence.ferris-wheel.file.file-archive.file-axis-3d.file-badge.file-box.file-braces.file-braces-corner.file-chart-column.file-chart-column-increasing.file-chart-line.file-chart-pie.file-check.file-check-corner.file-clock.file-code.file-code-corner.file-cog.file-diff.file-digit.file-down.file-exclamation-point.file-headphone.file-heart.file-image.file-input.file-key.file-lock.file-minus.file-minus-corner.file-music.file-output.file-pen.file-pen-line.file-play.file-plus.file-plus-corner.file-question-mark.file-scan.file-search.file-search-corner.file-signal.file-sliders.file-spreadsheet.file-stack.file-symlink.file-terminal.file-text.file-type.file-type-corner.file-up.file-user.file-video-camera.file-volume.file-x.file-x-corner.files.film.fingerprint-pattern.fire-extinguisher.fish.fish-off.fish-symbol.fishing-hook.fishing-rod.flag.flag-off.flag-triangle-left.flag-triangle-right.flame.flame-kindling.flashlight.flashlight-off.flask-conical.flask-conical-off.flask-round.flip-horizontal-2.flip-vertical-2.flower.flower-2.focus.fold-horizontal.fold-vertical.folder.folder-archive.folder-check.folder-clock.folder-closed.folder-code.folder-cog.folder-dot.folder-down.folder-git.folder-git-2.folder-heart.folder-input.folder-kanban.folder-key.folder-lock.folder-minus.folder-open.folder-open-dot.folder-output.folder-pen.folder-plus.folder-root.folder-search.folder-search-2.folder-symlink.folder-sync.folder-tree.folder-up.folder-x.folders.footprints.forklift.form.forward.frame.frown.fuel.fullscreen.funnel.funnel-plus.funnel-x.gallery-horizontal.gallery-horizontal-end.gallery-thumbnails.gallery-vertical.gallery-vertical-end.gamepad.gamepad-2.gamepad-directional.gauge.gavel.gem.georgian-lari.ghost.gift.git-branch.git-branch-minus.git-branch-plus.git-commit-horizontal.git-commit-vertical.git-compare.git-compare-arrows.git-fork.git-graph.git-merge.git-merge-conflict.git-pull-request.git-pull-request-arrow.git-pull-request-closed.git-pull-request-create.git-pull-request-create-arrow.git-pull-request-draft.glass-water.glasses.globe.globe-lock.globe-off.globe-x.goal.gpu.graduation-cap.grape.grid-2x2.grid-2x2-check.grid-2x2-plus.grid-2x2-x.grid-3x2.grid-3x3.grip.grip-horizontal.grip-vertical.group.guitar.ham.hamburger.hammer.hand.hand-coins.hand-fist.hand-grab.hand-heart.hand-helping.hand-metal.hand-platter.handbag.handshake.hard-drive.hard-drive-download.hard-drive-upload.hard-hat.hash.hat-glasses.haze.hd.hdmi-port.heading.heading-1.heading-2.heading-3.heading-4.heading-5.heading-6.headphone-off.headphones.headset.heart.heart-crack.heart-handshake.heart-minus.heart-off.heart-plus.heart-pulse.heater.helicopter.hexagon.highlighter.history.hop.hop-off.hospital.hotel.hourglass.house.house-heart.house-plug.house-plus.house-wifi.ice-cream-bowl.ice-cream-cone.id-card.id-card-lanyard.image.image-down.image-minus.image-off.image-play.image-plus.image-up.image-upscale.images.import.inbox.indian-rupee.infinity.info.inspection-panel.italic.iteration-ccw.iteration-cw.japanese-yen.joystick.kanban.kayak.key.key-round.key-square.keyboard.keyboard-music.keyboard-off.lamp.lamp-ceiling.lamp-desk.lamp-floor.lamp-wall-down.lamp-wall-up.land-plot.landmark.languages.laptop.laptop-minimal.laptop-minimal-check.lasso.lasso-select.laugh.layers.layers-2.layers-plus.layout-dashboard.layout-grid.layout-list.layout-panel-left.layout-panel-top.layout-template.leaf.leafy-green.lectern.lens-concave.lens-convex.library.library-big.life-buoy.ligature.lightbulb.lightbulb-off.line-dot-right-horizontal.line-squiggle.link.link-2.link-2-off.list.list-check.list-checks.list-chevrons-down-up.list-chevrons-up-down.list-collapse.list-end.list-filter.list-filter-plus.list-indent-decrease.list-indent-increase.list-minus.list-music.list-ordered.list-plus.list-restart.list-start.list-todo.list-tree.list-video.list-x.loader.loader-circle.loader-pinwheel.locate.locate-fixed.locate-off.lock.lock-keyhole.lock-keyhole-open.lock-open.log-in.log-out.logs.lollipop.luggage.magnet.mail.mail-check.mail-minus.mail-open.mail-plus.mail-question-mark.mail-search.mail-warning.mail-x.mailbox.mails.map.map-minus.map-pin.map-pin-check.map-pin-check-inside.map-pin-house.map-pin-minus.map-pin-minus-inside.map-pin-off.map-pin-pen.map-pin-plus.map-pin-plus-inside.map-pin-x.map-pin-x-inside.map-pinned.map-plus.mars.mars-stroke.martini.maximize.maximize-2.medal.megaphone.megaphone-off.meh.memory-stick.menu.merge.message-circle.message-circle-check.message-circle-code.message-circle-dashed.message-circle-heart.message-circle-more.message-circle-off.message-circle-plus.message-circle-question-mark.message-circle-reply.message-circle-warning.message-circle-x.message-square.message-square-check.message-square-code.message-square-dashed.message-square-diff.message-square-dot.message-square-heart.message-square-lock.message-square-more.message-square-off.message-square-plus.message-square-quote.message-square-reply.message-square-share.message-square-text.message-square-warning.message-square-x.messages-square.metronome.mic.mic-off.mic-vocal.microchip.microscope.microwave.milestone.milk.milk-off.minimize.minimize-2.minus.mirror-rectangular.mirror-round.monitor.monitor-check.monitor-cloud.monitor-cog.monitor-dot.monitor-down.monitor-off.monitor-pause.monitor-play.monitor-smartphone.monitor-speaker.monitor-stop.monitor-up.monitor-x.moon.moon-star.motorbike.mountain.mountain-snow.mouse.mouse-left.mouse-off.mouse-pointer.mouse-pointer-2.mouse-pointer-2-off.mouse-pointer-ban.mouse-pointer-click.mouse-right.move.move-3d.move-diagonal.move-diagonal-2.move-down.move-down-left.move-down-right.move-horizontal.move-left.move-right.move-up.move-up-left.move-up-right.move-vertical.music.music-2.music-3.music-4.navigation.navigation-2.navigation-2-off.navigation-off.network.newspaper.nfc.non-binary.notebook.notebook-pen.notebook-tabs.notebook-text.notepad-text.notepad-text-dashed.nut.nut-off.octagon.octagon-alert.octagon-minus.octagon-pause.octagon-x.omega.option.orbit.origami.package.package-2.package-check.package-minus.package-open.package-plus.package-search.package-x.paint-bucket.paint-roller.paintbrush.paintbrush-vertical.palette.panda.panel-bottom.panel-bottom-close.panel-bottom-dashed.panel-bottom-open.panel-left.panel-left-close.panel-left-dashed.panel-left-open.panel-left-right-dashed.panel-right.panel-right-close.panel-right-dashed.panel-right-open.panel-top.panel-top-bottom-dashed.panel-top-close.panel-top-dashed.panel-top-open.panels-left-bottom.panels-right-bottom.panels-top-left.paperclip.parentheses.parking-meter.party-popper.pause.paw-print.pc-case.pen.pen-line.pen-off.pen-tool.pencil.pencil-line.pencil-off.pencil-ruler.pentagon.percent.person-standing.philippine-peso.phone.phone-call.phone-forwarded.phone-incoming.phone-missed.phone-off.phone-outgoing.pi.piano.pickaxe.picture-in-picture.picture-in-picture-2.piggy-bank.pilcrow.pilcrow-left.pilcrow-right.pill.pill-bottle.pin.pin-off.pipette.pizza.plane.plane-landing.plane-takeoff.play.plug.plug-2.plug-zap.plus.pocket-knife.podcast.pointer.pointer-off.popcorn.popsicle.pound-sterling.power.power-off.presentation.printer.printer-check.printer-x.projector.proportions.puzzle.pyramid.qr-code.quote.rabbit.radar.radiation.radical.radio.radio-receiver.radio-tower.radius.rainbow.rat.ratio.receipt.receipt-cent.receipt-euro.receipt-indian-rupee.receipt-japanese-yen.receipt-pound-sterling.receipt-russian-ruble.receipt-swiss-franc.receipt-text.receipt-turkish-lira.rectangle-circle.rectangle-ellipsis.rectangle-goggles.rectangle-horizontal.rectangle-vertical.recycle.redo.redo-2.redo-dot.refresh-ccw.refresh-ccw-dot.refresh-cw.refresh-cw-off.refrigerator.regex.remove-formatting.repeat.repeat-1.repeat-2.replace.replace-all.reply.reply-all.rewind.ribbon.rocket.rocking-chair.roller-coaster.rose.rotate-3d.rotate-ccw.rotate-ccw-key.rotate-ccw-square.rotate-cw.rotate-cw-square.route.route-off.router.rows-2.rows-3.rows-4.rss.ruler.ruler-dimension-line.russian-ruble.sailboat.salad.sandwich.satellite.satellite-dish.saudi-riyal.save.save-all.save-off.scale.scale-3d.scaling.scan.scan-barcode.scan-eye.scan-face.scan-heart.scan-line.scan-qr-code.scan-search.scan-text.school.scissors.scissors-line-dashed.scooter.screen-share.screen-share-off.scroll.scroll-text.search.search-alert.search-check.search-code.search-slash.search-x.section.send.send-horizontal.send-to-back.separator-horizontal.separator-vertical.server.server-cog.server-crash.server-off.settings.settings-2.shapes.share.share-2.sheet.shell.shelving-unit.shield.shield-alert.shield-ban.shield-check.shield-ellipsis.shield-half.shield-minus.shield-off.shield-plus.shield-question-mark.shield-user.shield-x.ship.ship-wheel.shirt.shopping-bag.shopping-basket.shopping-cart.shovel.shower-head.shredder.shrimp.shrink.shrub.shuffle.sigma.signal.signal-high.signal-low.signal-medium.signal-zero.signature.signpost.signpost-big.siren.skip-back.skip-forward.skull.slash.slice.sliders-horizontal.sliders-vertical.smartphone.smartphone-charging.smartphone-nfc.smile.smile-plus.snail.snowflake.soap-dispenser-droplet.sofa.solar-panel.soup.space.spade.sparkle.sparkles.speaker.speech.spell-check.spell-check-2.spline.spline-pointer.split.spool.spotlight.spray-can.sprout.square.square-activity.square-arrow-down.square-arrow-down-left.square-arrow-down-right.square-arrow-left.square-arrow-out-down-left.square-arrow-out-down-right.square-arrow-out-up-left.square-arrow-out-up-right.square-arrow-right.square-arrow-right-enter.square-arrow-right-exit.square-arrow-up.square-arrow-up-left.square-arrow-up-right.square-asterisk.square-bottom-dashed-scissors.square-centerline-dashed-horizontal.square-centerline-dashed-vertical.square-chart-gantt.square-check.square-check-big.square-chevron-down.square-chevron-left.square-chevron-right.square-chevron-up.square-code.square-dashed.square-dashed-bottom.square-dashed-bottom-code.square-dashed-kanban.square-dashed-mouse-pointer.square-dashed-top-solid.square-divide.square-dot.square-equal.square-function.square-kanban.square-library.square-m.square-menu.square-minus.square-mouse-pointer.square-parking.square-parking-off.square-pause.square-pen.square-percent.square-pi.square-pilcrow.square-play.square-plus.square-power.square-radical.square-round-corner.square-scissors.square-sigma.square-slash.square-split-horizontal.square-split-vertical.square-square.square-stack.square-star.square-stop.square-terminal.square-user.square-user-round.square-x.squares-exclude.squares-intersect.squares-subtract.squares-unite.squircle.squircle-dashed.squirrel.stamp.star.star-half.star-off.step-back.step-forward.stethoscope.sticker.sticky-note.stone.store.stretch-horizontal.stretch-vertical.strikethrough.subscript.sun.sun-dim.sun-medium.sun-moon.sun-snow.sunrise.sunset.superscript.swatch-book.swiss-franc.switch-camera.sword.swords.syringe.table.table-2.table-cells-merge.table-cells-split.table-columns-split.table-of-contents.table-properties.table-rows-split.tablet.tablet-smartphone.tablets.tag.tags.tally-1.tally-2.tally-3.tally-4.tally-5.tangent.target.telescope.tent.tent-tree.terminal.test-tube.test-tube-diagonal.test-tubes.text-align-center.text-align-end.text-align-justify.text-align-start.text-cursor.text-cursor-input.text-initial.text-quote.text-search.text-select.text-wrap.theater.thermometer.thermometer-snowflake.thermometer-sun.thumbs-down.thumbs-up.ticket.ticket-check.ticket-minus.ticket-percent.ticket-plus.ticket-slash.ticket-x.tickets.tickets-plane.timer.timer-off.timer-reset.toggle-left.toggle-right.toilet.tool-case.toolbox.tornado.torus.touchpad.touchpad-off.towel-rack.tower-control.toy-brick.tractor.traffic-cone.train-front.train-front-tunnel.train-track.tram-front.transgender.trash.trash-2.tree-deciduous.tree-palm.tree-pine.trees.trending-down.trending-up.trending-up-down.triangle.triangle-alert.triangle-dashed.triangle-right.trophy.truck.truck-electric.turkish-lira.turntable.turtle.tv.tv-minimal.tv-minimal-play.type.type-outline.umbrella.umbrella-off.underline.undo.undo-2.undo-dot.unfold-horizontal.unfold-vertical.ungroup.university.unlink.unlink-2.unplug.upload.usb.user.user-check.user-cog.user-key.user-lock.user-minus.user-pen.user-plus.user-round.user-round-check.user-round-cog.user-round-key.user-round-minus.user-round-pen.user-round-plus.user-round-search.user-round-x.user-search.user-star.user-x.users.users-round.utensils.utensils-crossed.utility-pole.van.variable.vault.vector-square.vegan.venetian-mask.venus.venus-and-mars.vibrate.vibrate-off.video.video-off.videotape.view.voicemail.volleyball.volume.volume-1.volume-2.volume-off.volume-x.vote.wallet.wallet-cards.wallet-minimal.wallpaper.wand.wand-sparkles.warehouse.washing-machine.watch.waves.waves-arrow-down.waves-arrow-up.waves-ladder.waypoints.webcam.webhook.webhook-off.weight.weight-tilde.wheat.wheat-off.whole-word.wifi.wifi-cog.wifi-high.wifi-low.wifi-off.wifi-pen.wifi-sync.wifi-zero.wind.wind-arrow-down.wine.wine-off.workflow.worm.wrench.x.x-line-top.zap.zap-off.zodiac-aquarius.zodiac-aries.zodiac-cancer.zodiac-capricorn.zodiac-gemini.zodiac-leo.zodiac-libra.zodiac-ophiuchus.zodiac-pisces.zodiac-sagittarius.zodiac-scorpio.zodiac-taurus.zodiac-virgo.zoom-in.zoom-out".split("."), zp = [
8837
+ var Rp = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.charts.communication.connectivity.cursors.design.development.devices.emoji.files.finance.food-beverage.gaming.home.layout.mail.math.medical.multimedia.nature.navigation.notifications.people.photography.science.seasons.security.shapes.shopping.social.sports.sustainability.text.time.tools.transportation.travel.weather".split("."), zp = /* @__PURE__ */ "a-arrow-down.a-arrow-up.a-large-small.accessibility.activity.air-vent.airplay.alarm-clock.alarm-clock-check.alarm-clock-minus.alarm-clock-off.alarm-clock-plus.alarm-smoke.album.align-center-horizontal.align-center-vertical.align-end-horizontal.align-end-vertical.align-horizontal-distribute-center.align-horizontal-distribute-end.align-horizontal-distribute-start.align-horizontal-justify-center.align-horizontal-justify-end.align-horizontal-justify-start.align-horizontal-space-around.align-horizontal-space-between.align-start-horizontal.align-start-vertical.align-vertical-distribute-center.align-vertical-distribute-end.align-vertical-distribute-start.align-vertical-justify-center.align-vertical-justify-end.align-vertical-justify-start.align-vertical-space-around.align-vertical-space-between.ambulance.ampersand.ampersands.amphora.anchor.angry.annoyed.antenna.anvil.aperture.app-window.app-window-mac.apple.archive.archive-restore.archive-x.armchair.arrow-big-down.arrow-big-down-dash.arrow-big-left.arrow-big-left-dash.arrow-big-right.arrow-big-right-dash.arrow-big-up.arrow-big-up-dash.arrow-down.arrow-down-0-1.arrow-down-1-0.arrow-down-a-z.arrow-down-from-line.arrow-down-left.arrow-down-narrow-wide.arrow-down-right.arrow-down-to-dot.arrow-down-to-line.arrow-down-up.arrow-down-wide-narrow.arrow-down-z-a.arrow-left.arrow-left-from-line.arrow-left-right.arrow-left-to-line.arrow-right.arrow-right-from-line.arrow-right-left.arrow-right-to-line.arrow-up.arrow-up-0-1.arrow-up-1-0.arrow-up-a-z.arrow-up-down.arrow-up-from-dot.arrow-up-from-line.arrow-up-left.arrow-up-narrow-wide.arrow-up-right.arrow-up-to-line.arrow-up-wide-narrow.arrow-up-z-a.arrows-up-from-line.asterisk.at-sign.atom.audio-lines.audio-waveform.award.axe.axis-3d.baby.backpack.badge.badge-alert.badge-cent.badge-check.badge-dollar-sign.badge-euro.badge-indian-rupee.badge-info.badge-japanese-yen.badge-minus.badge-percent.badge-plus.badge-pound-sterling.badge-question-mark.badge-russian-ruble.badge-swiss-franc.badge-turkish-lira.badge-x.baggage-claim.balloon.ban.banana.bandage.banknote.banknote-arrow-down.banknote-arrow-up.banknote-x.barcode.barrel.baseline.bath.battery.battery-charging.battery-full.battery-low.battery-medium.battery-plus.battery-warning.beaker.bean.bean-off.bed.bed-double.bed-single.beef.beer.beer-off.bell.bell-dot.bell-electric.bell-minus.bell-off.bell-plus.bell-ring.between-horizontal-end.between-horizontal-start.between-vertical-end.between-vertical-start.biceps-flexed.bike.binary.binoculars.biohazard.bird.birdhouse.bitcoin.blend.blinds.blocks.bluetooth.bluetooth-connected.bluetooth-off.bluetooth-searching.bold.bolt.bomb.bone.book.book-a.book-alert.book-audio.book-check.book-copy.book-dashed.book-down.book-headphones.book-heart.book-image.book-key.book-lock.book-marked.book-minus.book-open.book-open-check.book-open-text.book-plus.book-search.book-text.book-type.book-up.book-up-2.book-user.book-x.bookmark.bookmark-check.bookmark-minus.bookmark-plus.bookmark-x.boom-box.bot.bot-message-square.bot-off.bottle-wine.bow-arrow.box.boxes.braces.brackets.brain.brain-circuit.brain-cog.brick-wall.brick-wall-fire.brick-wall-shield.briefcase.briefcase-business.briefcase-conveyor-belt.briefcase-medical.bring-to-front.brush.brush-cleaning.bubbles.bug.bug-off.bug-play.building.building-2.bus.bus-front.cable.cable-car.cake.cake-slice.calculator.calendar.calendar-1.calendar-arrow-down.calendar-arrow-up.calendar-check.calendar-check-2.calendar-clock.calendar-cog.calendar-days.calendar-fold.calendar-heart.calendar-minus.calendar-minus-2.calendar-off.calendar-plus.calendar-plus-2.calendar-range.calendar-search.calendar-sync.calendar-x.calendar-x-2.calendars.camera.camera-off.candy.candy-cane.candy-off.cannabis.cannabis-off.captions.captions-off.car.car-front.car-taxi-front.caravan.card-sim.carrot.case-lower.case-sensitive.case-upper.cassette-tape.cast.castle.cat.cctv.chart-area.chart-bar.chart-bar-big.chart-bar-decreasing.chart-bar-increasing.chart-bar-stacked.chart-candlestick.chart-column.chart-column-big.chart-column-decreasing.chart-column-increasing.chart-column-stacked.chart-gantt.chart-line.chart-network.chart-no-axes-column.chart-no-axes-column-decreasing.chart-no-axes-column-increasing.chart-no-axes-combined.chart-no-axes-gantt.chart-pie.chart-scatter.chart-spline.check.check-check.check-line.chef-hat.cherry.chess-bishop.chess-king.chess-knight.chess-pawn.chess-queen.chess-rook.chevron-down.chevron-first.chevron-last.chevron-left.chevron-right.chevron-up.chevrons-down.chevrons-down-up.chevrons-left.chevrons-left-right.chevrons-left-right-ellipsis.chevrons-right.chevrons-right-left.chevrons-up.chevrons-up-down.church.cigarette.cigarette-off.circle.circle-alert.circle-arrow-down.circle-arrow-left.circle-arrow-out-down-left.circle-arrow-out-down-right.circle-arrow-out-up-left.circle-arrow-out-up-right.circle-arrow-right.circle-arrow-up.circle-check.circle-check-big.circle-chevron-down.circle-chevron-left.circle-chevron-right.circle-chevron-up.circle-dashed.circle-divide.circle-dollar-sign.circle-dot.circle-dot-dashed.circle-ellipsis.circle-equal.circle-fading-arrow-up.circle-fading-plus.circle-gauge.circle-minus.circle-off.circle-parking.circle-parking-off.circle-pause.circle-percent.circle-pile.circle-play.circle-plus.circle-pound-sterling.circle-power.circle-question-mark.circle-slash.circle-slash-2.circle-small.circle-star.circle-stop.circle-user.circle-user-round.circle-x.circuit-board.citrus.clapperboard.clipboard.clipboard-check.clipboard-clock.clipboard-copy.clipboard-list.clipboard-minus.clipboard-paste.clipboard-pen.clipboard-pen-line.clipboard-plus.clipboard-type.clipboard-x.clock.clock-1.clock-10.clock-11.clock-12.clock-2.clock-3.clock-4.clock-5.clock-6.clock-7.clock-8.clock-9.clock-alert.clock-arrow-down.clock-arrow-up.clock-check.clock-fading.clock-plus.closed-caption.cloud.cloud-alert.cloud-backup.cloud-check.cloud-cog.cloud-download.cloud-drizzle.cloud-fog.cloud-hail.cloud-lightning.cloud-moon.cloud-moon-rain.cloud-off.cloud-rain.cloud-rain-wind.cloud-snow.cloud-sun.cloud-sun-rain.cloud-sync.cloud-upload.cloudy.clover.club.code.code-xml.coffee.cog.coins.columns-2.columns-3.columns-3-cog.columns-4.combine.command.compass.component.computer.concierge-bell.cone.construction.contact.contact-round.container.contrast.cookie.cooking-pot.copy.copy-check.copy-minus.copy-plus.copy-slash.copy-x.copyleft.copyright.corner-down-left.corner-down-right.corner-left-down.corner-left-up.corner-right-down.corner-right-up.corner-up-left.corner-up-right.cpu.creative-commons.credit-card.croissant.crop.cross.crosshair.crown.cuboid.cup-soda.currency.cylinder.dam.database.database-backup.database-search.database-zap.decimals-arrow-left.decimals-arrow-right.delete.dessert.diameter.diamond.diamond-minus.diamond-percent.diamond-plus.dice-1.dice-2.dice-3.dice-4.dice-5.dice-6.dices.diff.disc.disc-2.disc-3.disc-album.divide.dna.dna-off.dock.dog.dollar-sign.donut.door-closed.door-closed-locked.door-open.dot.download.drafting-compass.drama.drill.drone.droplet.droplet-off.droplets.drum.drumstick.dumbbell.ear.ear-off.earth.earth-lock.eclipse.egg.egg-fried.egg-off.ellipsis.ellipsis-vertical.equal.equal-approximately.equal-not.eraser.ethernet-port.euro.ev-charger.expand.external-link.eye.eye-closed.eye-off.factory.fan.fast-forward.feather.fence.ferris-wheel.file.file-archive.file-axis-3d.file-badge.file-box.file-braces.file-braces-corner.file-chart-column.file-chart-column-increasing.file-chart-line.file-chart-pie.file-check.file-check-corner.file-clock.file-code.file-code-corner.file-cog.file-diff.file-digit.file-down.file-exclamation-point.file-headphone.file-heart.file-image.file-input.file-key.file-lock.file-minus.file-minus-corner.file-music.file-output.file-pen.file-pen-line.file-play.file-plus.file-plus-corner.file-question-mark.file-scan.file-search.file-search-corner.file-signal.file-sliders.file-spreadsheet.file-stack.file-symlink.file-terminal.file-text.file-type.file-type-corner.file-up.file-user.file-video-camera.file-volume.file-x.file-x-corner.files.film.fingerprint-pattern.fire-extinguisher.fish.fish-off.fish-symbol.fishing-hook.fishing-rod.flag.flag-off.flag-triangle-left.flag-triangle-right.flame.flame-kindling.flashlight.flashlight-off.flask-conical.flask-conical-off.flask-round.flip-horizontal-2.flip-vertical-2.flower.flower-2.focus.fold-horizontal.fold-vertical.folder.folder-archive.folder-check.folder-clock.folder-closed.folder-code.folder-cog.folder-dot.folder-down.folder-git.folder-git-2.folder-heart.folder-input.folder-kanban.folder-key.folder-lock.folder-minus.folder-open.folder-open-dot.folder-output.folder-pen.folder-plus.folder-root.folder-search.folder-search-2.folder-symlink.folder-sync.folder-tree.folder-up.folder-x.folders.footprints.forklift.form.forward.frame.frown.fuel.fullscreen.funnel.funnel-plus.funnel-x.gallery-horizontal.gallery-horizontal-end.gallery-thumbnails.gallery-vertical.gallery-vertical-end.gamepad.gamepad-2.gamepad-directional.gauge.gavel.gem.georgian-lari.ghost.gift.git-branch.git-branch-minus.git-branch-plus.git-commit-horizontal.git-commit-vertical.git-compare.git-compare-arrows.git-fork.git-graph.git-merge.git-merge-conflict.git-pull-request.git-pull-request-arrow.git-pull-request-closed.git-pull-request-create.git-pull-request-create-arrow.git-pull-request-draft.glass-water.glasses.globe.globe-lock.globe-off.globe-x.goal.gpu.graduation-cap.grape.grid-2x2.grid-2x2-check.grid-2x2-plus.grid-2x2-x.grid-3x2.grid-3x3.grip.grip-horizontal.grip-vertical.group.guitar.ham.hamburger.hammer.hand.hand-coins.hand-fist.hand-grab.hand-heart.hand-helping.hand-metal.hand-platter.handbag.handshake.hard-drive.hard-drive-download.hard-drive-upload.hard-hat.hash.hat-glasses.haze.hd.hdmi-port.heading.heading-1.heading-2.heading-3.heading-4.heading-5.heading-6.headphone-off.headphones.headset.heart.heart-crack.heart-handshake.heart-minus.heart-off.heart-plus.heart-pulse.heater.helicopter.hexagon.highlighter.history.hop.hop-off.hospital.hotel.hourglass.house.house-heart.house-plug.house-plus.house-wifi.ice-cream-bowl.ice-cream-cone.id-card.id-card-lanyard.image.image-down.image-minus.image-off.image-play.image-plus.image-up.image-upscale.images.import.inbox.indian-rupee.infinity.info.inspection-panel.italic.iteration-ccw.iteration-cw.japanese-yen.joystick.kanban.kayak.key.key-round.key-square.keyboard.keyboard-music.keyboard-off.lamp.lamp-ceiling.lamp-desk.lamp-floor.lamp-wall-down.lamp-wall-up.land-plot.landmark.languages.laptop.laptop-minimal.laptop-minimal-check.lasso.lasso-select.laugh.layers.layers-2.layers-plus.layout-dashboard.layout-grid.layout-list.layout-panel-left.layout-panel-top.layout-template.leaf.leafy-green.lectern.lens-concave.lens-convex.library.library-big.life-buoy.ligature.lightbulb.lightbulb-off.line-dot-right-horizontal.line-squiggle.link.link-2.link-2-off.list.list-check.list-checks.list-chevrons-down-up.list-chevrons-up-down.list-collapse.list-end.list-filter.list-filter-plus.list-indent-decrease.list-indent-increase.list-minus.list-music.list-ordered.list-plus.list-restart.list-start.list-todo.list-tree.list-video.list-x.loader.loader-circle.loader-pinwheel.locate.locate-fixed.locate-off.lock.lock-keyhole.lock-keyhole-open.lock-open.log-in.log-out.logs.lollipop.luggage.magnet.mail.mail-check.mail-minus.mail-open.mail-plus.mail-question-mark.mail-search.mail-warning.mail-x.mailbox.mails.map.map-minus.map-pin.map-pin-check.map-pin-check-inside.map-pin-house.map-pin-minus.map-pin-minus-inside.map-pin-off.map-pin-pen.map-pin-plus.map-pin-plus-inside.map-pin-x.map-pin-x-inside.map-pinned.map-plus.mars.mars-stroke.martini.maximize.maximize-2.medal.megaphone.megaphone-off.meh.memory-stick.menu.merge.message-circle.message-circle-check.message-circle-code.message-circle-dashed.message-circle-heart.message-circle-more.message-circle-off.message-circle-plus.message-circle-question-mark.message-circle-reply.message-circle-warning.message-circle-x.message-square.message-square-check.message-square-code.message-square-dashed.message-square-diff.message-square-dot.message-square-heart.message-square-lock.message-square-more.message-square-off.message-square-plus.message-square-quote.message-square-reply.message-square-share.message-square-text.message-square-warning.message-square-x.messages-square.metronome.mic.mic-off.mic-vocal.microchip.microscope.microwave.milestone.milk.milk-off.minimize.minimize-2.minus.mirror-rectangular.mirror-round.monitor.monitor-check.monitor-cloud.monitor-cog.monitor-dot.monitor-down.monitor-off.monitor-pause.monitor-play.monitor-smartphone.monitor-speaker.monitor-stop.monitor-up.monitor-x.moon.moon-star.motorbike.mountain.mountain-snow.mouse.mouse-left.mouse-off.mouse-pointer.mouse-pointer-2.mouse-pointer-2-off.mouse-pointer-ban.mouse-pointer-click.mouse-right.move.move-3d.move-diagonal.move-diagonal-2.move-down.move-down-left.move-down-right.move-horizontal.move-left.move-right.move-up.move-up-left.move-up-right.move-vertical.music.music-2.music-3.music-4.navigation.navigation-2.navigation-2-off.navigation-off.network.newspaper.nfc.non-binary.notebook.notebook-pen.notebook-tabs.notebook-text.notepad-text.notepad-text-dashed.nut.nut-off.octagon.octagon-alert.octagon-minus.octagon-pause.octagon-x.omega.option.orbit.origami.package.package-2.package-check.package-minus.package-open.package-plus.package-search.package-x.paint-bucket.paint-roller.paintbrush.paintbrush-vertical.palette.panda.panel-bottom.panel-bottom-close.panel-bottom-dashed.panel-bottom-open.panel-left.panel-left-close.panel-left-dashed.panel-left-open.panel-left-right-dashed.panel-right.panel-right-close.panel-right-dashed.panel-right-open.panel-top.panel-top-bottom-dashed.panel-top-close.panel-top-dashed.panel-top-open.panels-left-bottom.panels-right-bottom.panels-top-left.paperclip.parentheses.parking-meter.party-popper.pause.paw-print.pc-case.pen.pen-line.pen-off.pen-tool.pencil.pencil-line.pencil-off.pencil-ruler.pentagon.percent.person-standing.philippine-peso.phone.phone-call.phone-forwarded.phone-incoming.phone-missed.phone-off.phone-outgoing.pi.piano.pickaxe.picture-in-picture.picture-in-picture-2.piggy-bank.pilcrow.pilcrow-left.pilcrow-right.pill.pill-bottle.pin.pin-off.pipette.pizza.plane.plane-landing.plane-takeoff.play.plug.plug-2.plug-zap.plus.pocket-knife.podcast.pointer.pointer-off.popcorn.popsicle.pound-sterling.power.power-off.presentation.printer.printer-check.printer-x.projector.proportions.puzzle.pyramid.qr-code.quote.rabbit.radar.radiation.radical.radio.radio-receiver.radio-tower.radius.rainbow.rat.ratio.receipt.receipt-cent.receipt-euro.receipt-indian-rupee.receipt-japanese-yen.receipt-pound-sterling.receipt-russian-ruble.receipt-swiss-franc.receipt-text.receipt-turkish-lira.rectangle-circle.rectangle-ellipsis.rectangle-goggles.rectangle-horizontal.rectangle-vertical.recycle.redo.redo-2.redo-dot.refresh-ccw.refresh-ccw-dot.refresh-cw.refresh-cw-off.refrigerator.regex.remove-formatting.repeat.repeat-1.repeat-2.replace.replace-all.reply.reply-all.rewind.ribbon.rocket.rocking-chair.roller-coaster.rose.rotate-3d.rotate-ccw.rotate-ccw-key.rotate-ccw-square.rotate-cw.rotate-cw-square.route.route-off.router.rows-2.rows-3.rows-4.rss.ruler.ruler-dimension-line.russian-ruble.sailboat.salad.sandwich.satellite.satellite-dish.saudi-riyal.save.save-all.save-off.scale.scale-3d.scaling.scan.scan-barcode.scan-eye.scan-face.scan-heart.scan-line.scan-qr-code.scan-search.scan-text.school.scissors.scissors-line-dashed.scooter.screen-share.screen-share-off.scroll.scroll-text.search.search-alert.search-check.search-code.search-slash.search-x.section.send.send-horizontal.send-to-back.separator-horizontal.separator-vertical.server.server-cog.server-crash.server-off.settings.settings-2.shapes.share.share-2.sheet.shell.shelving-unit.shield.shield-alert.shield-ban.shield-check.shield-ellipsis.shield-half.shield-minus.shield-off.shield-plus.shield-question-mark.shield-user.shield-x.ship.ship-wheel.shirt.shopping-bag.shopping-basket.shopping-cart.shovel.shower-head.shredder.shrimp.shrink.shrub.shuffle.sigma.signal.signal-high.signal-low.signal-medium.signal-zero.signature.signpost.signpost-big.siren.skip-back.skip-forward.skull.slash.slice.sliders-horizontal.sliders-vertical.smartphone.smartphone-charging.smartphone-nfc.smile.smile-plus.snail.snowflake.soap-dispenser-droplet.sofa.solar-panel.soup.space.spade.sparkle.sparkles.speaker.speech.spell-check.spell-check-2.spline.spline-pointer.split.spool.spotlight.spray-can.sprout.square.square-activity.square-arrow-down.square-arrow-down-left.square-arrow-down-right.square-arrow-left.square-arrow-out-down-left.square-arrow-out-down-right.square-arrow-out-up-left.square-arrow-out-up-right.square-arrow-right.square-arrow-right-enter.square-arrow-right-exit.square-arrow-up.square-arrow-up-left.square-arrow-up-right.square-asterisk.square-bottom-dashed-scissors.square-centerline-dashed-horizontal.square-centerline-dashed-vertical.square-chart-gantt.square-check.square-check-big.square-chevron-down.square-chevron-left.square-chevron-right.square-chevron-up.square-code.square-dashed.square-dashed-bottom.square-dashed-bottom-code.square-dashed-kanban.square-dashed-mouse-pointer.square-dashed-top-solid.square-divide.square-dot.square-equal.square-function.square-kanban.square-library.square-m.square-menu.square-minus.square-mouse-pointer.square-parking.square-parking-off.square-pause.square-pen.square-percent.square-pi.square-pilcrow.square-play.square-plus.square-power.square-radical.square-round-corner.square-scissors.square-sigma.square-slash.square-split-horizontal.square-split-vertical.square-square.square-stack.square-star.square-stop.square-terminal.square-user.square-user-round.square-x.squares-exclude.squares-intersect.squares-subtract.squares-unite.squircle.squircle-dashed.squirrel.stamp.star.star-half.star-off.step-back.step-forward.stethoscope.sticker.sticky-note.stone.store.stretch-horizontal.stretch-vertical.strikethrough.subscript.sun.sun-dim.sun-medium.sun-moon.sun-snow.sunrise.sunset.superscript.swatch-book.swiss-franc.switch-camera.sword.swords.syringe.table.table-2.table-cells-merge.table-cells-split.table-columns-split.table-of-contents.table-properties.table-rows-split.tablet.tablet-smartphone.tablets.tag.tags.tally-1.tally-2.tally-3.tally-4.tally-5.tangent.target.telescope.tent.tent-tree.terminal.test-tube.test-tube-diagonal.test-tubes.text-align-center.text-align-end.text-align-justify.text-align-start.text-cursor.text-cursor-input.text-initial.text-quote.text-search.text-select.text-wrap.theater.thermometer.thermometer-snowflake.thermometer-sun.thumbs-down.thumbs-up.ticket.ticket-check.ticket-minus.ticket-percent.ticket-plus.ticket-slash.ticket-x.tickets.tickets-plane.timer.timer-off.timer-reset.toggle-left.toggle-right.toilet.tool-case.toolbox.tornado.torus.touchpad.touchpad-off.towel-rack.tower-control.toy-brick.tractor.traffic-cone.train-front.train-front-tunnel.train-track.tram-front.transgender.trash.trash-2.tree-deciduous.tree-palm.tree-pine.trees.trending-down.trending-up.trending-up-down.triangle.triangle-alert.triangle-dashed.triangle-right.trophy.truck.truck-electric.turkish-lira.turntable.turtle.tv.tv-minimal.tv-minimal-play.type.type-outline.umbrella.umbrella-off.underline.undo.undo-2.undo-dot.unfold-horizontal.unfold-vertical.ungroup.university.unlink.unlink-2.unplug.upload.usb.user.user-check.user-cog.user-key.user-lock.user-minus.user-pen.user-plus.user-round.user-round-check.user-round-cog.user-round-key.user-round-minus.user-round-pen.user-round-plus.user-round-search.user-round-x.user-search.user-star.user-x.users.users-round.utensils.utensils-crossed.utility-pole.van.variable.vault.vector-square.vegan.venetian-mask.venus.venus-and-mars.vibrate.vibrate-off.video.video-off.videotape.view.voicemail.volleyball.volume.volume-1.volume-2.volume-off.volume-x.vote.wallet.wallet-cards.wallet-minimal.wallpaper.wand.wand-sparkles.warehouse.washing-machine.watch.waves.waves-arrow-down.waves-arrow-up.waves-ladder.waypoints.webcam.webhook.webhook-off.weight.weight-tilde.wheat.wheat-off.whole-word.wifi.wifi-cog.wifi-high.wifi-low.wifi-off.wifi-pen.wifi-sync.wifi-zero.wind.wind-arrow-down.wine.wine-off.workflow.worm.wrench.x.x-line-top.zap.zap-off.zodiac-aquarius.zodiac-aries.zodiac-cancer.zodiac-capricorn.zodiac-gemini.zodiac-leo.zodiac-libra.zodiac-ophiuchus.zodiac-pisces.zodiac-sagittarius.zodiac-scorpio.zodiac-taurus.zodiac-virgo.zoom-in.zoom-out".split("."), Bp = [
8793
8838
  [[37, 10], [
8794
8839
  "letter",
8795
8840
  "font size",
@@ -24606,7 +24651,7 @@ var Lp = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.
24606
24651
  37,
24607
24652
  28
24608
24653
  ], ["magnifying glass", "plus"]]
24609
- ], Bp = {
24654
+ ], Vp = {
24610
24655
  "activity-square": "square-activity",
24611
24656
  "alarm-check": "alarm-clock-check",
24612
24657
  "alarm-minus": "alarm-clock-minus",
@@ -24854,7 +24899,7 @@ var Lp = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.
24854
24899
  "x-circle": "circle-x",
24855
24900
  "x-octagon": "octagon-x",
24856
24901
  "x-square": "square-x"
24857
- }, Vp = {
24902
+ }, Hp = {
24858
24903
  activity: [
24859
24904
  "attivita",
24860
24905
  "sensore",
@@ -25510,26 +25555,26 @@ var Lp = /* @__PURE__ */ "accessibility.account.animals.arrows.brands.buildings.
25510
25555
  "watt",
25511
25556
  "elettricita"
25512
25557
  ]
25513
- }, Hp = { gauge2: "gauge" }, Up = new Set(Rp);
25514
- new Map([...Object.entries(Bp), ...Object.entries(Hp)]);
25515
- function Wp(e) {
25516
- return typeof e == "string" && Up.has(e);
25517
- }
25518
- var Gp = op(Wp, "Not an icon of the catalog"), Kp = Rp.map((e, t) => {
25519
- let [n, r] = zp[t] ?? [[], []], i = n.flatMap((e) => {
25520
- let t = Lp[e];
25558
+ }, Up = { gauge2: "gauge" }, Wp = new Set(zp);
25559
+ new Map([...Object.entries(Vp), ...Object.entries(Up)]);
25560
+ function Gp(e) {
25561
+ return typeof e == "string" && Wp.has(e);
25562
+ }
25563
+ var Kp = op(Gp, "Not an icon of the catalog"), qp = zp.map((e, t) => {
25564
+ let [n, r] = Bp[t] ?? [[], []], i = n.flatMap((e) => {
25565
+ let t = Rp[e];
25521
25566
  return t === void 0 ? [] : [t];
25522
25567
  });
25523
25568
  return {
25524
25569
  key: e,
25525
25570
  categories: i,
25526
- primaryCategory: i[0] ?? Lp[0],
25571
+ primaryCategory: i[0] ?? Rp[0],
25527
25572
  tags: r,
25528
- synonyms: Vp[e] ?? []
25573
+ synonyms: Hp[e] ?? []
25529
25574
  };
25530
25575
  });
25531
- new Map(Kp.map((e) => [e.key, e]));
25532
- var qp = [
25576
+ new Map(qp.map((e) => [e.key, e]));
25577
+ var Jp = [
25533
25578
  "devices",
25534
25579
  "home",
25535
25580
  "security",
@@ -25540,31 +25585,31 @@ var qp = [
25540
25585
  "weather",
25541
25586
  "transportation",
25542
25587
  "animals"
25543
- ], Jp = new Set(Kp.map((e) => e.primaryCategory));
25544
- [...qp, ...Lp.filter((e) => !qp.includes(e))].filter((e) => Jp.has(e)), K({
25588
+ ], Yp = new Set(qp.map((e) => e.primaryCategory));
25589
+ [...Jp, ...Rp.filter((e) => !Jp.includes(e))].filter((e) => Yp.has(e)), K({
25545
25590
  locationKey: H(),
25546
- icon: Gp
25591
+ icon: Kp
25547
25592
  }), K({
25548
25593
  locationKey: H(),
25549
25594
  description: H()
25550
25595
  });
25551
- var Yp = q([
25596
+ var Xp = q([
25552
25597
  "image",
25553
25598
  "video",
25554
25599
  "gif",
25555
25600
  "audio",
25556
25601
  "icon"
25557
- ]), Xp = K({
25558
- mediaType: Yp,
25602
+ ]), Zp = K({
25603
+ mediaType: Xp,
25559
25604
  url: H().optional(),
25560
25605
  bytes: lp(Uint8Array).optional(),
25561
25606
  mime: H().optional(),
25562
25607
  name: H().optional()
25563
- }).refine((e) => e.url !== void 0 || e.bytes !== void 0, { message: "Attachment requires either `url` or `bytes`" }), Zp = q([
25608
+ }).refine((e) => e.url !== void 0 || e.bytes !== void 0, { message: "Attachment requires either `url` or `bytes`" }), Qp = q([
25564
25609
  "text",
25565
25610
  "markdown",
25566
25611
  "html"
25567
- ]), Qp = q([
25612
+ ]), $p = q([
25568
25613
  "acknowledge",
25569
25614
  "dismiss",
25570
25615
  "silence",
@@ -25583,29 +25628,29 @@ var Yp = q([
25583
25628
  "light",
25584
25629
  "alert",
25585
25630
  "camera"
25586
- ]), $p = K({
25631
+ ]), em = K({
25587
25632
  id: H(),
25588
25633
  label: H(),
25589
25634
  url: H().optional(),
25590
- icon: Qp.optional(),
25635
+ icon: $p.optional(),
25591
25636
  destructive: W().optional(),
25592
25637
  mode: q(["navigate", "background"]).optional()
25593
- }), em = K({
25638
+ }), tm = K({
25594
25639
  body: H(),
25595
25640
  title: H().optional(),
25596
- format: Zp.default("text"),
25641
+ format: Qp.default("text"),
25597
25642
  priority: U().int().min(1).max(5).default(3),
25598
25643
  level: H().optional(),
25599
- attachments: G(Xp).optional(),
25644
+ attachments: G(Zp).optional(),
25600
25645
  clickUrl: H().optional(),
25601
- actions: G($p).optional(),
25646
+ actions: G(em).optional(),
25602
25647
  sound: H().optional(),
25603
25648
  ttl: U().optional(),
25604
25649
  tag: H().optional(),
25605
25650
  deviceId: U().optional(),
25606
25651
  eventId: H().optional(),
25607
25652
  metadata: Pf(H(), bf()).optional()
25608
- }), tm = K({
25653
+ }), nm = K({
25609
25654
  id: H(),
25610
25655
  label: H(),
25611
25656
  ordinal: U().int().min(1).max(5).nullable(),
@@ -25616,9 +25661,9 @@ var Yp = q([
25616
25661
  }).optional(),
25617
25662
  requires: G(H()).optional(),
25618
25663
  description: H().optional()
25619
- }), nm = K({
25664
+ }), rm = K({
25620
25665
  attachments: K({
25621
- mediaTypes: G(Yp),
25666
+ mediaTypes: G(Xp),
25622
25667
  mode: q([
25623
25668
  "url",
25624
25669
  "bytes",
@@ -25629,79 +25674,79 @@ var Yp = q([
25629
25674
  }),
25630
25675
  actions: U().int().nonnegative(),
25631
25676
  actionIcons: W().optional(),
25632
- levels: G(tm),
25633
- format: G(Zp),
25677
+ levels: G(nm),
25678
+ format: G(Qp),
25634
25679
  clickUrl: W(),
25635
25680
  sound: W(),
25636
25681
  ttl: W(),
25637
25682
  bodyMaxLen: U().int().positive()
25638
- }), rm = bf(), im = K({
25683
+ }), im = bf(), am = K({
25639
25684
  kind: H(),
25640
25685
  label: H(),
25641
25686
  icon: H(),
25642
25687
  addonId: H(),
25643
25688
  iconUrl: H().optional(),
25644
25689
  iconMediaType: H().optional(),
25645
- configSchema: rm,
25690
+ configSchema: im,
25646
25691
  destinationKeys: G(H()).optional(),
25647
25692
  supportsDiscovery: W(),
25648
- caps: nm
25649
- }), am = K({
25693
+ caps: rm
25694
+ }), om = K({
25650
25695
  id: H(),
25651
25696
  name: H(),
25652
25697
  kind: H(),
25653
25698
  addonId: H(),
25654
25699
  enabled: W(),
25655
25700
  config: Pf(H(), bf())
25656
- }), om = K({
25701
+ }), sm = K({
25657
25702
  kind: H(),
25658
25703
  suggestedName: H(),
25659
25704
  config: Pf(H(), bf())
25660
- }), sm = K({
25705
+ }), cm = K({
25661
25706
  level: H(),
25662
- format: Zp,
25707
+ format: Qp,
25663
25708
  attachmentsSent: U().int().nonnegative(),
25664
25709
  actionsSent: U().int().nonnegative(),
25665
25710
  truncated: W(),
25666
25711
  dropped: G(H())
25667
- }), cm = K({
25712
+ }), lm = K({
25668
25713
  success: W(),
25669
25714
  error: H().optional(),
25670
- renderedAs: sm.optional()
25671
- }), lm = cm, um = K({
25715
+ renderedAs: cm.optional()
25716
+ }), um = lm, dm = K({
25672
25717
  ok: W(),
25673
25718
  resolvedUrl: H(),
25674
25719
  httpStatus: U().int().optional(),
25675
25720
  stateInstance: H().optional(),
25676
25721
  error: H().optional()
25677
25722
  });
25678
- Y(K({}), G(im)), Y(K({}), G(am), { auth: "admin" }), Y(K({ targetId: H() }), am, { auth: "admin" }), Y(K({
25723
+ Y(K({}), G(am)), Y(K({}), G(om), { auth: "admin" }), Y(K({ targetId: H() }), om, { auth: "admin" }), Y(K({
25679
25724
  kind: H(),
25680
25725
  config: Pf(H(), bf()).optional(),
25681
25726
  targetId: H().optional()
25682
- }), G(om), { auth: "admin" }), Y(K({
25727
+ }), G(sm), { auth: "admin" }), Y(K({
25683
25728
  kind: H(),
25684
25729
  config: Pf(H(), bf()),
25685
25730
  targetId: H().optional()
25686
- }), um, {
25731
+ }), dm, {
25687
25732
  kind: "mutation",
25688
25733
  auth: "admin"
25689
25734
  }), Y(K({
25690
25735
  targetId: H(),
25691
- notification: em
25692
- }), cm, {
25736
+ notification: tm
25737
+ }), lm, {
25693
25738
  kind: "mutation",
25694
25739
  auth: "admin"
25695
25740
  }), Y(K({
25696
25741
  targetId: H(),
25697
- sample: em.optional()
25698
- }), lm, {
25742
+ sample: tm.optional()
25743
+ }), um, {
25699
25744
  kind: "mutation",
25700
25745
  auth: "admin"
25701
25746
  }), Y(K({
25702
- target: am,
25747
+ target: om,
25703
25748
  cloneSecretsFrom: H().optional()
25704
- }), am, {
25749
+ }), om, {
25705
25750
  kind: "mutation",
25706
25751
  auth: "admin"
25707
25752
  }), Y(K({ targetId: H() }), wf(), {
@@ -25713,51 +25758,8 @@ Y(K({}), G(im)), Y(K({}), G(am), { auth: "admin" }), Y(K({ targetId: H() }), am,
25713
25758
  }), wf(), {
25714
25759
  kind: "mutation",
25715
25760
  auth: "admin"
25716
- }), new Set([
25717
- {
25718
- id: "person",
25719
- name: "Person"
25720
- },
25721
- {
25722
- id: "vehicle",
25723
- name: "Vehicle"
25724
- },
25725
- {
25726
- id: "animal",
25727
- name: "Animal"
25728
- },
25729
- {
25730
- id: "package",
25731
- name: "Package"
25732
- }
25733
- ].map((e) => e.id));
25734
- var dm = {
25735
- mapping: {
25736
- person: "person",
25737
- bicycle: "vehicle",
25738
- car: "vehicle",
25739
- motorcycle: "vehicle",
25740
- airplane: "vehicle",
25741
- bus: "vehicle",
25742
- train: "vehicle",
25743
- truck: "vehicle",
25744
- boat: "vehicle",
25745
- bird: "animal",
25746
- cat: "animal",
25747
- dog: "animal",
25748
- horse: "animal",
25749
- sheep: "animal",
25750
- cow: "animal",
25751
- elephant: "animal",
25752
- bear: "animal",
25753
- zebra: "animal",
25754
- giraffe: "animal",
25755
- suitcase: "package",
25756
- backpack: "package",
25757
- handbag: "package"
25758
- },
25759
- preserveOriginal: !1
25760
- }, fm = [
25761
+ });
25762
+ var fm = [
25761
25763
  {
25762
25764
  id: "speech",
25763
25765
  name: "Speech"
@@ -26454,7 +26456,7 @@ function Wm(e, t, n, r, i) {
26454
26456
  });
26455
26457
  }
26456
26458
  Um("motion", "motion", "motion", "Motion"), Um("audio", "audio", "audio", "Audio"), Um("person", "detection", "person", "Person"), Um("vehicle", "detection", "vehicle", "Vehicle"), Um("animal", "detection", "animal", "Animal"), Um("package", "package", "package", "Package"), Um("sensor", "sensor", "sensor", "Sensor"), Um("control", "control", "control", "Control");
26457
- for (let [e, t] of Object.entries(dm.mapping)) t !== "vehicle" && t !== "animal" || Hm.has(e) || Wm(e, t, "detection", e, Vm(e));
26459
+ for (let [e, t] of Object.entries(Fp.mapping)) t !== "vehicle" && t !== "animal" || Hm.has(e) || Wm(e, t, "detection", e, Vm(e));
26458
26460
  Wm("package-delivered", "package", "package", "package", "Package delivered"), Wm("package-picked-up", "package", "package", "package", "Package picked up"), Wm("contact", "sensor", "sensor", "door", "Contact"), Wm("motion-sensor", "sensor", "sensor", "pir", "Motion sensor"), Wm("smoke", "sensor", "sensor", "smoke", "Smoke"), Wm("flood", "sensor", "sensor", "water", "Water leak"), Wm("gas", "sensor", "sensor", "gas", "Gas"), Wm("carbon-monoxide", "sensor", "sensor", "smoke", "Carbon monoxide"), Wm("vibration", "sensor", "sensor", "vibration", "Vibration"), Wm("tamper", "sensor", "sensor", "tamper", "Tamper"), Wm("presence", "sensor", "sensor", "presence", "Presence"), Wm("enum-sensor", "sensor", "sensor", "generic", "Sensor state"), Wm("device-event", "sensor", "sensor", "button", "Device event"), Wm("lock", "control", "control", "lock", "Lock"), Wm("cover", "control", "control", "door", "Cover"), Wm("switch", "control", "control", "switch", "Switch"), Wm("siren", "control", "control", "siren", "Siren"), Wm("button", "control", "control", "button", "Button"), Wm("doorbell", "control", "control", "doorbell", "Doorbell");
26459
26461
  for (let e of fm) {
26460
26462
  let t = `audio-${e.id}`;
@@ -26663,7 +26665,7 @@ var ah = [
26663
26665
  id: H().min(1).max(64),
26664
26666
  label: H().min(1).max(40),
26665
26667
  sequenceId: H().min(1),
26666
- icon: Qp.optional(),
26668
+ icon: $p.optional(),
26667
26669
  destructive: W().optional()
26668
26670
  }), Ch = K({
26669
26671
  onActivation: xh.optional(),
@@ -27483,7 +27485,7 @@ wp.Camera, Y(K({
27483
27485
  }), i_, {
27484
27486
  kind: "query",
27485
27487
  auth: "protected"
27486
- }), Ip(K({
27488
+ }), Lp(K({
27487
27489
  deviceId: U(),
27488
27490
  clipId: H().min(1),
27489
27491
  provider: H().min(1),
@@ -27493,7 +27495,7 @@ wp.Camera, Y(K({
27493
27495
  }), o_, {
27494
27496
  kind: "query",
27495
27497
  auth: "protected"
27496
- }), Ip(K({
27498
+ }), Lp(K({
27497
27499
  deviceId: U(),
27498
27500
  clipId: H().min(1),
27499
27501
  provider: H().min(1),
@@ -27503,7 +27505,7 @@ wp.Camera, Y(K({
27503
27505
  }), s_, {
27504
27506
  kind: "query",
27505
27507
  auth: "protected"
27506
- }), Ip(K({
27508
+ }), Lp(K({
27507
27509
  deviceId: U(),
27508
27510
  clipId: H().min(1),
27509
27511
  provider: H().min(1),
@@ -27512,7 +27514,7 @@ wp.Camera, Y(K({
27512
27514
  }), u_, {
27513
27515
  kind: "query",
27514
27516
  auth: "protected"
27515
- }), Ip(K({
27517
+ }), Lp(K({
27516
27518
  deviceId: U(),
27517
27519
  provider: H().min(1)
27518
27520
  }), d_, {
@@ -29448,7 +29450,7 @@ function ty({ device: e, form: t, parent: n, siblings: r, className: i, testId:
29448
29450
  children: o
29449
29451
  });
29450
29452
  }
29451
- e(), e(), j.Camera;
29453
+ e(), e(), N.Camera;
29452
29454
  //#endregion
29453
29455
  //#region ../ui-library/src/hooks/use-device-capability.ts
29454
29456
  function Z(e) {
@@ -29464,7 +29466,7 @@ function Z(e) {
29464
29466
  }
29465
29467
  //#endregion
29466
29468
  //#region ../ui-library/src/primitives/skeleton.tsx
29467
- e(), Ee.exclude(["full"]).options, e();
29469
+ e(), Le.exclude(["full"]).options, e();
29468
29470
  var ny = c(({ className: e, ...t }, n) => /* @__PURE__ */ v("div", {
29469
29471
  ref: n,
29470
29472
  className: z("animate-pulse bg-surface-hover rounded-md h-4 w-full", e),
@@ -29623,7 +29625,7 @@ function py({ className: e, ...t }) {
29623
29625
  }
29624
29626
  //#endregion
29625
29627
  //#region ../../node_modules/qrcode.react/lib/esm/index.js
29626
- e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-D9qlMn0i.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-BgJSIubF.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
29628
+ e(), e(), e(), e(), e(), e(), e(), n(() => import("./MotionZonesSettings-DmT3_5uL.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./PrivacyMaskSettings-DUvJko35.mjs").then((e) => ({ default: e.PrivacyMaskSettings }))), e(), e();
29627
29629
  var my = Object.defineProperty, hy = Object.getOwnPropertySymbols, gy = Object.prototype.hasOwnProperty, _y = Object.prototype.propertyIsEnumerable, vy = (e, t, n) => t in e ? my(e, t, {
29628
29630
  enumerable: !0,
29629
29631
  configurable: !0,
@@ -30476,7 +30478,7 @@ var Ry = function() {
30476
30478
  "imageSettings"
30477
30479
  ]), { style: h } = m, g = by(m, ["style"]), _ = p?.src, v = r.useRef(null), y = r.useRef(null), b = r.useCallback((e) => {
30478
30480
  v.current = e, typeof t == "function" ? t(e) : t && (t.current = e);
30479
- }, [t]), [x, S] = r.useState(!1), { margin: C, cells: w, numCells: T, calculatedImageSettings: E } = Ly({
30481
+ }, [t]), [x, S] = r.useState(!1), { margin: C, cells: w, numCells: T, calculatedImageSettings: ee } = Ly({
30480
30482
  value: i,
30481
30483
  level: o,
30482
30484
  minVersion: u,
@@ -30490,8 +30492,8 @@ var Ry = function() {
30490
30492
  if (v.current != null) {
30491
30493
  let e = v.current, t = e.getContext("2d");
30492
30494
  if (!t) return;
30493
- let n = w, r = y.current, i = E != null && r !== null && r.complete && r.naturalHeight !== 0 && r.naturalWidth !== 0;
30494
- i && E.excavation != null && (n = Py(w, E.excavation));
30495
+ let n = w, r = y.current, i = ee != null && r !== null && r.complete && r.naturalHeight !== 0 && r.naturalWidth !== 0;
30496
+ i && ee.excavation != null && (n = Py(w, ee.excavation));
30495
30497
  let o = window.devicePixelRatio || 1;
30496
30498
  e.height = e.width = a * o;
30497
30499
  let l = a / T * o;
@@ -30499,12 +30501,12 @@ var Ry = function() {
30499
30501
  e.forEach(function(e, r) {
30500
30502
  e && t.fillRect(r + C, n + C, 1, 1);
30501
30503
  });
30502
- }), E && (t.globalAlpha = E.opacity), i && t.drawImage(r, E.x + C, E.y + C, E.w, E.h);
30504
+ }), ee && (t.globalAlpha = ee.opacity), i && t.drawImage(r, ee.x + C, ee.y + C, ee.w, ee.h);
30503
30505
  }
30504
30506
  }), r.useEffect(() => {
30505
30507
  S(!1);
30506
30508
  }, [_]);
30507
- let ee = yy({
30509
+ let E = yy({
30508
30510
  height: a,
30509
30511
  width: a
30510
30512
  }, h), te = null;
@@ -30516,9 +30518,9 @@ var Ry = function() {
30516
30518
  S(!0);
30517
30519
  },
30518
30520
  ref: y,
30519
- crossOrigin: E?.crossOrigin
30521
+ crossOrigin: ee?.crossOrigin
30520
30522
  })), /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement("canvas", yy({
30521
- style: ee,
30523
+ style: E,
30522
30524
  height: a,
30523
30525
  width: a,
30524
30526
  ref: b,
@@ -30638,7 +30640,7 @@ function Ky({ active: e, onClick: t, disabled: n, children: r, title: i }) {
30638
30640
  });
30639
30641
  }
30640
30642
  function qy({ catalog: e, value: t, onChange: n, disabled: r }) {
30641
- let i = S(), a = De(e), o = ne(e, t), s = a.find((e) => e.family === o?.family)?.family ?? a[0]?.family ?? "", c = a.find((e) => e.family === s) ?? a[0];
30643
+ let i = S(), a = Fe(e), o = fe(e, t), s = a.find((e) => e.family === o?.family)?.family ?? a[0]?.family ?? "", c = a.find((e) => e.family === s) ?? a[0];
30642
30644
  if (!c) return null;
30643
30645
  let l = c.tiers.find((e) => e.tier === o?.tier)?.tier ?? c.tiers[0]?.tier ?? "", u = c.tiers.find((e) => e.tier === l) ?? c.tiers[0];
30644
30646
  if (!u) return null;
@@ -30649,7 +30651,7 @@ function qy({ catalog: e, value: t, onChange: n, disabled: r }) {
30649
30651
  let t = u.options.filter((t) => t.resolution === e), r = t.find((e) => e.precision === (o?.precision ?? "fp32") && e.optimization === (o?.optimization ?? "standard")) ?? t[0];
30650
30652
  r && n(r.modelId);
30651
30653
  }, _ = (t) => {
30652
- let r = He(e, {
30654
+ let r = _e(e, {
30653
30655
  family: c.family,
30654
30656
  tier: u.tier,
30655
30657
  precision: t.precision,
@@ -30781,7 +30783,7 @@ function Xy({ models: e, value: t, onChange: n, disabled: r, defaultModelId: a }
30781
30783
  r ? r.push(n) : t.set(e, [n]);
30782
30784
  }
30783
30785
  return t;
30784
- }, [e]), l = o(() => Oe.filter((e) => (c.get(e)?.length ?? 0) > 0), [c]), u = o(() => {
30786
+ }, [e]), l = o(() => Ie.filter((e) => (c.get(e)?.length ?? 0) > 0), [c]), u = o(() => {
30785
30787
  let n = e.find((e) => e.id === t);
30786
30788
  return n ? Yy(n) : void 0;
30787
30789
  }, [e, t]) ?? (l.includes("camstack") ? "camstack" : l[0] ?? "camstack"), [d, f] = g(u);
@@ -30879,12 +30881,12 @@ function tb(e) {
30879
30881
  //#endregion
30880
30882
  //#region ../ui-library/src/composites/root-model-source.tsx
30881
30883
  function nb(e, t, n) {
30882
- return ie(e) ? oe(e, t, n?.supplies) : null;
30884
+ return A(e) ? oe(e, t, n?.supplies) : null;
30883
30885
  }
30884
30886
  function rb(e, t) {
30885
30887
  return {
30886
30888
  ...e,
30887
- [Fe]: t
30889
+ [Te]: t
30888
30890
  };
30889
30891
  }
30890
30892
  function ib(e, t = x) {
@@ -30947,8 +30949,8 @@ function cb(e, t) {
30947
30949
  return (t === void 0 ? e : e / t).toFixed(2).replace(/\.?0+$/, "");
30948
30950
  }
30949
30951
  function lb({ field: e, modelId: t, settings: n, disabled: r, onChangeSettings: i, hideSourceRow: a = !1 }) {
30950
- let o = S(), s = e.modelApplicability?.defaultByModel?.[t], c = re(n, e.key, t.length > 0 ? t : void 0, s, e.default), l = typeof e.default == "number" ? e.default : e.min ?? 0, u = typeof c.value == "number" ? c.value : l, d = e.type === "slider" ? e.displayScale : void 0, f = "unit" in e ? e.unit : void 0, p = c.inapplicableOverride, m = n?.[e.key] !== void 0, h = (r) => {
30951
- i(t.length > 0 ? w(n, e.key, r, t) : {
30952
+ let o = S(), s = e.modelApplicability?.defaultByModel?.[t], c = Ve(n, e.key, t.length > 0 ? t : void 0, s, e.default), l = typeof e.default == "number" ? e.default : e.min ?? 0, u = typeof c.value == "number" ? c.value : l, d = e.type === "slider" ? e.displayScale : void 0, f = "unit" in e ? e.unit : void 0, p = c.inapplicableOverride, m = n?.[e.key] !== void 0, h = (r) => {
30953
+ i(t.length > 0 ? qe(n, e.key, r, t) : {
30952
30954
  ...n,
30953
30955
  [e.key]: r
30954
30956
  });
@@ -30988,7 +30990,7 @@ function lb({ field: e, modelId: t, settings: n, disabled: r, onChangeSettings:
30988
30990
  type: "button",
30989
30991
  disabled: r,
30990
30992
  className: "text-foreground-subtle hover:text-foreground disabled:opacity-50",
30991
- onClick: () => i(ke(n, e.key)),
30993
+ onClick: () => i(Ye(n, e.key)),
30992
30994
  children: o("uiLibrary.modelBoundSlider.resetToDefault", "Reset to model default")
30993
30995
  })]
30994
30996
  }),
@@ -31006,11 +31008,11 @@ function ub(e) {
31006
31008
  }
31007
31009
  function db({ fields: e, modelId: t, settings: n, disabled: r, onReset: i }) {
31008
31010
  let a = S(), o = ub(e), s = t.length > 0 ? t : void 0;
31009
- return o.length === 0 || !Ne(n, o, s) ? null : /* @__PURE__ */ v("button", {
31011
+ return o.length === 0 || !ce(n, o, s) ? null : /* @__PURE__ */ v("button", {
31010
31012
  type: "button",
31011
31013
  disabled: r,
31012
31014
  className: "text-[10px] text-primary hover:underline disabled:opacity-50",
31013
- onClick: () => i(Ae(n, o, s)),
31015
+ onClick: () => i(ye(n, o, s)),
31014
31016
  children: a("uiLibrary.modelBoundSlider.resetThresholds", "Reset thresholds to model defaults")
31015
31017
  });
31016
31018
  }
@@ -31213,7 +31215,7 @@ function _b(e) {
31213
31215
  return e.type !== "separator" && e.type !== "info" && e.type !== "group";
31214
31216
  }
31215
31217
  function vb(e) {
31216
- return "bindsToModel" in e && e.bindsToModel === !0 ? !0 : "key" in e && ue(e.key);
31218
+ return "bindsToModel" in e && e.bindsToModel === !0 ? !0 : "key" in e && ae(e.key);
31217
31219
  }
31218
31220
  function yb(e) {
31219
31221
  return e.flatMap((e) => {
@@ -31281,13 +31283,13 @@ function Eb(e, t, n) {
31281
31283
  }
31282
31284
  var Db = ["camera", "node"];
31283
31285
  function Ob({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId: a, pinned: o, disabled: s, onReset: c, action: l }) {
31284
- let u = S(), d = Pe(t), f = xb(e, a), p = f.fromModel ? u("uiLibrary.layeredSettings.modelDefault", "model default") : u("uiLibrary.layeredSettings.default", "default"), m = _e(t, e.key, i), h = bb(e), g = h ? re(d, e.key, a, f.value, f.value) : null, _ = g === null || g.source === "override" ? m : "default", b = _ === "default" ? p : r[_] ?? _, x = Db.filter((e) => e !== _ && r[e] !== void 0).filter((n) => t[n]?.[e.key] !== void 0).map((n) => {
31285
- let i = h ? t[n]?.[k(e.key)] : void 0, o = typeof i == "string" && i !== a ? u("uiLibrary.layeredSettings.forModel", " (for {{model}})", { model: i }) : "";
31286
+ let u = S(), d = k(t), f = xb(e, a), p = f.fromModel ? u("uiLibrary.layeredSettings.modelDefault", "model default") : u("uiLibrary.layeredSettings.default", "default"), m = ve(t, e.key, i), h = bb(e), g = h ? Ve(d, e.key, a, f.value, f.value) : null, _ = g === null || g.source === "override" ? m : "default", b = _ === "default" ? p : r[_] ?? _, x = Db.filter((e) => e !== _ && r[e] !== void 0).filter((n) => t[n]?.[e.key] !== void 0).map((n) => {
31287
+ let i = h ? t[n]?.[$e(e.key)] : void 0, o = typeof i == "string" && i !== a ? u("uiLibrary.layeredSettings.forModel", " (for {{model}})", { model: i }) : "";
31286
31288
  return `${r[n]} ${Cb(e, t[n]?.[e.key])}${o}`;
31287
- }), C = _ === "default" ? x : [...x, `${p} ${Cb(e, f.value)}`], w = _e({ [n]: t[n] }, e.key, i) !== "default", T = Db.slice(Db.indexOf(n) + 1).find((n) => r[n] !== void 0 && t[n]?.[e.key] !== void 0), E = T === void 0 ? p : r[T] ?? T, ee = m === "default" ? "default" : _e({
31289
+ }), C = _ === "default" ? x : [...x, `${p} ${Cb(e, f.value)}`], w = ve({ [n]: t[n] }, e.key, i) !== "default", T = Db.slice(Db.indexOf(n) + 1).find((n) => r[n] !== void 0 && t[n]?.[e.key] !== void 0), ee = T === void 0 ? p : r[T] ?? T, E = m === "default" ? "default" : ve({
31288
31290
  ...t,
31289
31291
  [m]: void 0
31290
- }, e.key, i), te = ee === "default" ? p : r[ee] ?? ee;
31292
+ }, e.key, i), te = E === "default" ? p : r[E] ?? E;
31291
31293
  return /* @__PURE__ */ y("div", {
31292
31294
  className: "mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-[10px]",
31293
31295
  children: [
@@ -31313,14 +31315,14 @@ function Ob({ field: e, layers: t, target: n, labels: r, boundKeys: i, modelId:
31313
31315
  disabled: s,
31314
31316
  onClick: c,
31315
31317
  className: "rounded px-1 text-foreground-subtle hover:bg-muted hover:text-foreground disabled:opacity-50",
31316
- children: u("uiLibrary.layeredSettings.resetTo", "Reset to {{target}}", { target: E.toLowerCase() })
31318
+ children: u("uiLibrary.layeredSettings.resetTo", "Reset to {{target}}", { target: ee.toLowerCase() })
31317
31319
  })]
31318
31320
  })
31319
31321
  ]
31320
31322
  });
31321
31323
  }
31322
31324
  function kb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a, onChangeLayer: o, rootModel: s, pinnedKeys: c = [], fieldActions: l, headerActions: u, highlightKey: d = null, disabled: f = !1 }) {
31323
- let p = S(), m = r === "camera" ? yb(t) : t, h = Qe(m), g = Pe(n), _ = n[r], b = Eb(e, a, g), x = nb(e.id, g, s);
31325
+ let p = S(), m = r === "camera" ? yb(t) : t, h = Ze(m), g = k(n), _ = n[r], b = Eb(e, a, g), x = nb(e.id, g, s);
31324
31326
  return /* @__PURE__ */ y("div", {
31325
31327
  className: "space-y-2 text-xs",
31326
31328
  children: [
@@ -31352,7 +31354,7 @@ function kb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31352
31354
  settings: g,
31353
31355
  rootModel: s,
31354
31356
  disabled: f,
31355
- onChange: (e) => o(ve(_, Fe, rb(g, e), []))
31357
+ onChange: (e) => o(w(_, Te, rb(g, e), []))
31356
31358
  }),
31357
31359
  m.map((e) => {
31358
31360
  if (!_b(e)) return /* @__PURE__ */ v(hb, {
@@ -31373,7 +31375,7 @@ function kb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31373
31375
  step: b,
31374
31376
  disabled: f,
31375
31377
  hideModelBoundSourceRow: !0,
31376
- onChange: (t) => o(ve(_, e.key, t.settings ?? {}, h))
31378
+ onChange: (t) => o(w(_, e.key, t.settings ?? {}, h))
31377
31379
  }), /* @__PURE__ */ v(Ob, {
31378
31380
  field: e,
31379
31381
  layers: n,
@@ -31383,8 +31385,8 @@ function kb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31383
31385
  modelId: a,
31384
31386
  pinned: c.includes(e.key),
31385
31387
  disabled: f,
31386
- onReset: () => o(de(_, e.key, h)),
31387
- action: l?.(e.key, _e(n, e.key, h))
31388
+ onReset: () => o(Ee(_, e.key, h)),
31389
+ action: l?.(e.key, ve(n, e.key, h))
31388
31390
  })]
31389
31391
  }, e.key);
31390
31392
  })
@@ -31395,7 +31397,7 @@ function kb({ addon: e, fields: t, layers: n, target: r, labels: i, modelId: a,
31395
31397
  //#region ../ui-library/src/composites/agent-step-editor.tsx
31396
31398
  e();
31397
31399
  function Ab(e) {
31398
- let t = new Set(Ye(e.id).map((e) => e.key));
31400
+ let t = new Set(Se(e.id).map((e) => e.key));
31399
31401
  return (e.configSchema ?? []).filter((e) => !t.has(e.key));
31400
31402
  }
31401
31403
  function jb(e, t, n, r) {
@@ -31403,7 +31405,7 @@ function jb(e, t, n, r) {
31403
31405
  }
31404
31406
  function Mb({ addonId: e }) {
31405
31407
  let t = S();
31406
- return Ye(e).length === 0 ? null : /* @__PURE__ */ v("p", {
31408
+ return Se(e).length === 0 ? null : /* @__PURE__ */ v("p", {
31407
31409
  className: "text-[10px] leading-snug text-foreground-subtle",
31408
31410
  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.")
31409
31411
  });
@@ -31723,13 +31725,13 @@ function tx(e) {
31723
31725
  function nx(e) {
31724
31726
  let t = /* @__PURE__ */ new Map();
31725
31727
  for (let n of e ?? []) {
31726
- let e = je.safeParse(tx(n.settings));
31727
- t.set(n.nodeId, e.success ? e.data : Je(n.nodeId));
31728
+ let e = Re.safeParse(tx(n.settings));
31729
+ t.set(n.nodeId, e.success ? e.data : De(n.nodeId));
31728
31730
  }
31729
31731
  return t;
31730
31732
  }
31731
31733
  function rx(e, t) {
31732
- return e.get(t) ?? Je(t);
31734
+ return e.get(t) ?? De(t);
31733
31735
  }
31734
31736
  //#endregion
31735
31737
  //#region ../ui-library/src/composites/camera-stream-player.tsx
@@ -31883,18 +31885,18 @@ var _x = {
31883
31885
  center: "text-center"
31884
31886
  };
31885
31887
  function vx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480, emptyMessage: s, className: c, bordered: l = !0, rowClassName: u, maxBodyHeight: d, fill: f = !1, defaultSort: p, sort: m, onSortChange: h, pageSize: _, page: b, onPageChange: x, paginationLabels: S = ox, selection: C, renderExpanded: w, isExpanded: T }) {
31886
- let [E, ee] = g(p ?? null), [te, ne] = g(0), D = m === void 0 ? E : m, re = (e) => {
31887
- m === void 0 && ee(e), h?.(e);
31888
- }, O = (e) => {
31888
+ let [ee, E] = g(p ?? null), [te, ne] = g(0), D = m === void 0 ? ee : m, re = (e) => {
31889
+ m === void 0 && E(e), h?.(e);
31890
+ }, ie = (e) => {
31889
31891
  b === void 0 && ne(e), x?.(e);
31890
- }, ie = f || d !== void 0, ae = f ? "h-full min-h-0" : d ?? "", oe = o(() => D === null ? void 0 : e.find((e) => e.key === D.columnKey && e.sortValue !== void 0), [e, D]), k = oe?.sortValue, se = o(() => k === void 0 ? t : hx(t, D, k), [
31892
+ }, ae = f || d !== void 0, oe = f ? "h-full min-h-0" : d ?? "", se = o(() => D === null ? void 0 : e.find((e) => e.key === D.columnKey && e.sortValue !== void 0), [e, D]), O = se?.sortValue, ce = o(() => O === void 0 ? t : hx(t, D, O), [
31891
31893
  t,
31892
31894
  D,
31893
- k
31894
- ]), ce = oe === void 0 ? null : D, le = _ === void 0 ? null : ax(se, b ?? te, _), ue = le === null ? se : le.pageRows, de = le !== null && le.pageCount > 1 ? /* @__PURE__ */ v(ix, {
31895
- page: le,
31895
+ O
31896
+ ]), le = se === void 0 ? null : D, k = _ === void 0 ? null : ax(ce, b ?? te, _), ue = k === null ? ce : k.pageRows, de = k !== null && k.pageCount > 1 ? /* @__PURE__ */ v(ix, {
31897
+ page: k,
31896
31898
  labels: S,
31897
- onPageChange: O
31899
+ onPageChange: ie
31898
31900
  }) : null, A = C === void 0 ? e : [ux(C, ue, (e) => String(n ? n(e, t.indexOf(e)) : t.indexOf(e))), ...e];
31899
31901
  if (t.length === 0 && s) return /* @__PURE__ */ v("div", {
31900
31902
  className: `rounded-lg ${l ? "border border-border" : ""} bg-surface px-3 py-4 text-xs text-foreground-subtle text-center ${c ?? ""}`,
@@ -31906,23 +31908,23 @@ function vx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480
31906
31908
  "rounded-lg",
31907
31909
  l ? "border border-border" : "",
31908
31910
  "bg-surface overflow-x-auto",
31909
- ie ? `${ae} overflow-y-auto` : "",
31911
+ ae ? `${oe} overflow-y-auto` : "",
31910
31912
  f ? "min-h-0 flex-1" : "",
31911
31913
  !f && de === null ? c ?? "" : ""
31912
31914
  ].filter(Boolean).join(" "),
31913
31915
  children: /* @__PURE__ */ y("table", {
31914
- className: `w-full text-xs ${ie ? "border-separate border-spacing-0" : ""}`,
31916
+ className: `w-full text-xs ${ae ? "border-separate border-spacing-0" : ""}`,
31915
31917
  style: { minWidth: `${i}px` },
31916
31918
  children: [/* @__PURE__ */ v("thead", {
31917
31919
  className: "bg-surface",
31918
31920
  children: /* @__PURE__ */ v("tr", { children: A.map((e) => {
31919
- let t = e.align ?? "left", n = e.nowrap ?? !0, r = e.sortValue !== void 0, i = ce !== null && ce.columnKey === e.key;
31921
+ let t = e.align ?? "left", n = e.nowrap ?? !0, r = e.sortValue !== void 0, i = le !== null && le.columnKey === e.key;
31920
31922
  return /* @__PURE__ */ v("th", {
31921
- "aria-sort": r ? gx(ce, e.key) : void 0,
31923
+ "aria-sort": r ? gx(le, e.key) : void 0,
31922
31924
  title: r ? void 0 : e.notSortableReason,
31923
31925
  className: [
31924
31926
  "px-3 py-2 text-foreground-subtle font-medium bg-surface border-b border-border",
31925
- ie ? "sticky top-0 z-10" : "",
31927
+ ae ? "sticky top-0 z-10" : "",
31926
31928
  _x[t],
31927
31929
  n ? "whitespace-nowrap" : "",
31928
31930
  e.width ?? ""
@@ -31930,7 +31932,7 @@ function vx({ columns: e, rows: t, rowKey: n, onRowClick: r, minWidthPx: i = 480
31930
31932
  children: r ? /* @__PURE__ */ v(dx, {
31931
31933
  label: e.headerRender ? e.headerRender() : e.header,
31932
31934
  active: i,
31933
- dir: i && ce !== null ? ce.dir : "asc",
31935
+ dir: i && le !== null ? le.dir : "asc",
31934
31936
  onSort: () => re(px(D, e.key))
31935
31937
  }) : e.headerRender ? e.headerRender() : e.header
31936
31938
  }, e.key);
@@ -32058,12 +32060,12 @@ var wx = class {
32058
32060
  e(), new wx(), e(), e(), e(), e(), e(), e();
32059
32061
  //#endregion
32060
32062
  //#region ../ui-library/src/composites/detection-colors.ts
32061
- var Tx = Ve(), Ex = new Set([
32063
+ var Tx = ke(), Ex = new Set([
32062
32064
  "live",
32063
32065
  "recording",
32064
32066
  "heatmapScrub"
32065
32067
  ]);
32066
- Object.freeze(Object.fromEntries(be.filter((e) => !Ex.has(e)).map((e) => [e, $e(Tx.swatches, Tx.fallbacks, e)])));
32068
+ Object.freeze(Object.fromEntries(We.filter((e) => !Ex.has(e)).map((e) => [e, me(Tx.swatches, Tx.fallbacks, e)])));
32067
32069
  function Dx(e) {
32068
32070
  let t = e[0];
32069
32071
  if (t === void 0) throw Error("display palette has no fallback colour");
@@ -32071,7 +32073,7 @@ function Dx(e) {
32071
32073
  }
32072
32074
  //#endregion
32073
32075
  //#region ../ui-library/src/composites/detection-result-tree.tsx
32074
- Dx(Tx.fallbacks), e(), Ve(), d({ status: "absent" }), e(), e();
32076
+ Dx(Tx.fallbacks), e(), ke(), d({ status: "absent" }), e(), e();
32075
32077
  //#endregion
32076
32078
  //#region ../../node_modules/superjson/dist/double-indexed-kv.js
32077
32079
  var Ox = class {
@@ -32749,27 +32751,27 @@ var KS = {
32749
32751
  "error"
32750
32752
  ], JS = 500, YS = 300, XS = 24, ZS = 1024 * 1024;
32751
32753
  function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integrationId: c, requestId: u, level: d, maxHeight: f = "max-h-96", showScope: p = !1, showDeviceChip: m = !1, showFilters: h = !0, showSourceSelect: _, limit: b = 100, liveBuffer: x, onClose: C, className: w }) {
32752
- let T = S(), E = _ ?? h, [ee, te] = g(""), [ne, D] = g(""), [re, O] = g(d ?? "info"), [ie, ae] = g(void 0), oe = e, k = n ?? (ee || void 0), se = r ?? (ne ? Number(ne) : void 0), ce = c, le = u, ue = o(() => {
32754
+ let T = S(), ee = _ ?? h, [E, te] = g(""), [ne, D] = g(""), [re, ie] = g(d ?? "info"), [ae, oe] = g(void 0), se = e, O = n ?? (E || void 0), ce = r ?? (ne ? Number(ne) : void 0), le = c, k = u, ue = o(() => {
32753
32755
  let e = {};
32754
- return oe && (e.agentId = oe), k && (e.addonId = k), a !== void 0 && Number.isFinite(a) ? e.containerDeviceId = a : se !== void 0 && Number.isFinite(se) && (e.deviceId = se), ce && (e.integrationId = ce), le && (e.requestId = le), Object.keys(e).length > 0 ? e : void 0;
32756
+ return se && (e.agentId = se), O && (e.addonId = O), a !== void 0 && Number.isFinite(a) ? e.containerDeviceId = a : ce !== void 0 && Number.isFinite(ce) && (e.deviceId = ce), le && (e.integrationId = le), k && (e.requestId = k), Object.keys(e).length > 0 ? e : void 0;
32755
32757
  }, [
32756
- oe,
32757
- k,
32758
32758
  se,
32759
- a,
32759
+ O,
32760
32760
  ce,
32761
- le
32762
- ]), de = LS(JS), A = x ?? de, fe = A.entries, [pe, me] = g(0), [he, ge] = g(!0), _e = t(!1), [ve, ye] = g(!1), [be, xe] = g(!1), [Se, Ce] = g(/* @__PURE__ */ new Set()), [j, we] = g(""), Te = t(null), Ee = `${oe ?? ""}:${k ?? ""}:${String(se ?? "")}:${String(a ?? "")}:${ce ?? ""}:${le ?? ""}`, De = t(Ee);
32761
+ a,
32762
+ le,
32763
+ k
32764
+ ]), de = LS(JS), A = x ?? de, fe = A.entries, [pe, me] = g(0), [he, ge] = g(!0), _e = t(!1), [ve, ye] = g(!1), [be, xe] = g(!1), [Se, Ce] = g(/* @__PURE__ */ new Set()), [we, Te] = g(""), j = t(null), Ee = `${se ?? ""}:${O ?? ""}:${String(ce ?? "")}:${String(a ?? "")}:${le ?? ""}:${k ?? ""}`, De = t(Ee);
32763
32765
  i(() => {
32764
32766
  De.current !== Ee && (De.current = Ee, A.reset(), me(0), Ce(/* @__PURE__ */ new Set()), ye(!1));
32765
32767
  }, [Ee, A]);
32766
- let Oe = RS(j, YS).trim(), ke = F.logs.sources.useQuery(void 0, { staleTime: 6e4 }), Ae = o(() => (ke.data ?? []).filter((e) => e.readable), [ke.data]), je = US(o(() => ({
32767
- ...ie ? { source: ie } : {},
32768
+ let Oe = RS(we, YS).trim(), ke = F.logs.sources.useQuery(void 0, { staleTime: 6e4 }), Ae = o(() => (ke.data ?? []).filter((e) => e.readable), [ke.data]), je = US(o(() => ({
32769
+ ...ae ? { source: ae } : {},
32768
32770
  level: re,
32769
32771
  ...Oe ? { text: Oe } : {},
32770
32772
  ...ue ? { tags: ue } : {}
32771
32773
  }), [
32772
- ie,
32774
+ ae,
32773
32775
  re,
32774
32776
  Oe,
32775
32777
  ue
@@ -32781,7 +32783,7 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32781
32783
  }, { onData: (e) => {
32782
32784
  A.append(e);
32783
32785
  } });
32784
- let Me = `${ie ?? ""}|${re}|${Oe}`, Ne = t(Me);
32786
+ let Me = `${ae ?? ""}|${re}|${Oe}`, Ne = t(Me);
32785
32787
  i(() => {
32786
32788
  Ne.current !== Me && (Ne.current = Me, A.reset(), ge(!0));
32787
32789
  }, [Me, A]);
@@ -32792,23 +32794,23 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32792
32794
  je.entries,
32793
32795
  fe,
32794
32796
  pe
32795
- ]), Fe = t(null), M = l(() => {
32797
+ ]), M = t(null), Fe = l(() => {
32796
32798
  if (je.status === "loading" || je.done) return;
32797
- let e = Te.current;
32798
- e && (Fe.current = {
32799
+ let e = j.current;
32800
+ e && (M.current = {
32799
32801
  height: e.scrollHeight,
32800
32802
  top: e.scrollTop
32801
32803
  }), je.loadOlder();
32802
32804
  }, [je]);
32803
32805
  s(() => {
32804
- let e = Fe.current, t = Te.current;
32806
+ let e = M.current, t = j.current;
32805
32807
  if (!e || !t || je.status !== "idle") return;
32806
- Fe.current = null;
32808
+ M.current = null;
32807
32809
  let n = e.top + (t.scrollHeight - e.height);
32808
32810
  Math.abs(n - t.scrollTop) < 1 || (_e.current = !0, t.scrollTop = n);
32809
32811
  }, [je.status, je.entries.length]);
32810
32812
  let Ie = l((e) => {
32811
- let t = Te.current;
32813
+ let t = j.current;
32812
32814
  t && (_e.current = !0, t.scrollTo({
32813
32815
  top: t.scrollHeight,
32814
32816
  ...e ? { behavior: e } : {}
@@ -32831,11 +32833,11 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32831
32833
  _e.current = !1;
32832
32834
  return;
32833
32835
  }
32834
- let e = Te.current;
32836
+ let e = j.current;
32835
32837
  if (!e) return;
32836
32838
  let t = WS(e, 40);
32837
- ge((e) => e === t ? e : t), e.scrollTop <= XS && M();
32838
- }, [M]), Ue = o(() => Pe.filter((e) => e.tags && Object.keys(e.tags).length > 0 || e.meta && Object.keys(e.meta).length > 0).map(BS), [Pe]), We = l(() => {
32839
+ ge((e) => e === t ? e : t), e.scrollTop <= XS && Fe();
32840
+ }, [Fe]), Ue = o(() => Pe.filter((e) => e.tags && Object.keys(e.tags).length > 0 || e.meta && Object.keys(e.meta).length > 0).map(BS), [Pe]), We = l(() => {
32839
32841
  ye((e) => (e && Ce(/* @__PURE__ */ new Set()), !e));
32840
32842
  }, []), Ge = l(() => {
32841
32843
  let e = Pe.map((e) => {
@@ -32845,18 +32847,18 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32845
32847
  navigator.clipboard.writeText(e.join("\n")).then(() => {
32846
32848
  xe(!0), setTimeout(() => xe(!1), 1500);
32847
32849
  });
32848
- }, [Pe]), N = F.logs.clear.useMutation(), Ke = l(() => {
32849
- me(Date.now()), A.reset(), N.mutate(ue ? { tags: ue } : {});
32850
+ }, [Pe]), Ke = F.logs.clear.useMutation(), qe = l(() => {
32851
+ me(Date.now()), A.reset(), Ke.mutate(ue ? { tags: ue } : {});
32850
32852
  }, [
32851
32853
  A,
32852
- N,
32854
+ Ke,
32853
32855
  ue
32854
- ]), qe = l((e) => {
32856
+ ]), Je = l((e) => {
32855
32857
  Ce((t) => {
32856
32858
  let n = new Set(t);
32857
32859
  return n.has(e) ? n.delete(e) : n.add(e), n;
32858
32860
  });
32859
- }, []), [Je, Ye] = g(null), Xe = l((e, t) => {
32861
+ }, []), [N, Ye] = g(null), Xe = l((e, t) => {
32860
32862
  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}`;
32861
32863
  navigator.clipboard.writeText(a).then(() => {
32862
32864
  Ye(t), setTimeout(() => Ye((e) => e === t ? null : e), 1200);
@@ -32875,41 +32877,41 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32875
32877
  className: "text-[10px] uppercase tracking-wide text-foreground-subtle font-medium",
32876
32878
  children: T("uiLibrary.logStream.logs", "Logs")
32877
32879
  }),
32878
- oe && /* @__PURE__ */ v(tC, {
32880
+ se && /* @__PURE__ */ v(tC, {
32879
32881
  label: T("uiLibrary.logStream.scopeAgent", "agent"),
32880
- value: oe
32882
+ value: se
32881
32883
  }),
32882
- k && /* @__PURE__ */ v(tC, {
32884
+ O && /* @__PURE__ */ v(tC, {
32883
32885
  label: T("uiLibrary.logStream.scopeAddon", "addon"),
32884
- value: k
32886
+ value: O
32885
32887
  }),
32886
- se !== void 0 && /* @__PURE__ */ v(tC, {
32888
+ ce !== void 0 && /* @__PURE__ */ v(tC, {
32887
32889
  label: T("uiLibrary.logStream.scopeDevice", "device"),
32888
- value: `#${se}`
32890
+ value: `#${ce}`
32889
32891
  }),
32890
32892
  /* @__PURE__ */ v("div", {
32891
32893
  className: "flex rounded border border-border overflow-hidden text-[9px]",
32892
32894
  children: qS.map((e, t) => /* @__PURE__ */ y("button", {
32893
32895
  type: "button",
32894
- onClick: () => O(e),
32896
+ onClick: () => ie(e),
32895
32897
  className: z("px-1.5 py-0.5 capitalize transition-colors", re === e ? "bg-primary/10 text-primary" : "text-foreground-subtle hover:bg-surface-hover", t > 0 && "border-l border-border"),
32896
32898
  children: [e, "+"]
32897
32899
  }, e))
32898
32900
  }),
32899
- E && Ae.length > 1 && /* @__PURE__ */ v("div", {
32901
+ ee && Ae.length > 1 && /* @__PURE__ */ v("div", {
32900
32902
  className: "w-36",
32901
32903
  children: /* @__PURE__ */ v(no, {
32902
32904
  "aria-label": T("uiLibrary.logStream.source", "Log source"),
32903
32905
  className: "h-5 text-[10px]",
32904
- value: ie ?? Ae.find((e) => e.isDefault)?.addonId ?? "",
32905
- onChange: (e) => ae(e.target.value),
32906
+ value: ae ?? Ae.find((e) => e.isDefault)?.addonId ?? "",
32907
+ onChange: (e) => oe(e.target.value),
32906
32908
  options: Ae.map((e) => ({
32907
32909
  value: e.addonId,
32908
32910
  label: e.addonId
32909
32911
  }))
32910
32912
  })
32911
32913
  }),
32912
- E && Ae.length <= 1 && je.source && /* @__PURE__ */ v("span", {
32914
+ ee && Ae.length <= 1 && je.source && /* @__PURE__ */ v("span", {
32913
32915
  className: "text-[9px] text-foreground-subtle",
32914
32916
  children: T("uiLibrary.logStream.sourceName", "Source: {{name}}", { name: je.source })
32915
32917
  }),
@@ -32937,19 +32939,19 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32937
32939
  /* @__PURE__ */ v(rC, {
32938
32940
  icon: St,
32939
32941
  label: T("uiLibrary.logStream.clear", "Clear"),
32940
- onClick: Ke
32942
+ onClick: qe
32941
32943
  }),
32942
32944
  /* @__PURE__ */ y("div", {
32943
32945
  className: "relative",
32944
32946
  children: [/* @__PURE__ */ v("input", {
32945
32947
  type: "text",
32946
- value: j,
32947
- onChange: (e) => we(e.target.value),
32948
+ value: we,
32949
+ onChange: (e) => Te(e.target.value),
32948
32950
  placeholder: T("uiLibrary.logStream.searchPlaceholder", "Search…"),
32949
32951
  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"
32950
- }), j && /* @__PURE__ */ v("button", {
32952
+ }), we && /* @__PURE__ */ v("button", {
32951
32953
  type: "button",
32952
- onClick: () => we(""),
32954
+ onClick: () => Te(""),
32953
32955
  className: "absolute right-1 top-1/2 -translate-y-1/2 text-foreground-subtle hover:text-foreground",
32954
32956
  title: T("uiLibrary.logStream.clearSearch", "Clear search"),
32955
32957
  children: /* @__PURE__ */ v(Zr, { className: "h-2.5 w-2.5" })
@@ -32977,7 +32979,7 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
32977
32979
  children: T("uiLibrary.logStream.addon", "Addon:")
32978
32980
  }), /* @__PURE__ */ v("input", {
32979
32981
  type: "text",
32980
- value: ee,
32982
+ value: E,
32981
32983
  onChange: (e) => te(e.target.value),
32982
32984
  placeholder: T("uiLibrary.logStream.all", "all"),
32983
32985
  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"
@@ -33006,7 +33008,7 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
33006
33008
  title: T("uiLibrary.logStream.jumpTitle", "Jump to the newest log line and resume following"),
33007
33009
  children: [/* @__PURE__ */ v(Dt, { className: "h-3 w-3" }), T("uiLibrary.logStream.jumpToLatest", "Jump to latest")]
33008
33010
  }), /* @__PURE__ */ y("div", {
33009
- ref: Te,
33011
+ ref: j,
33010
33012
  onScroll: He,
33011
33013
  className: z("flex-1 min-h-0 overflow-auto font-mono text-[10px]", f),
33012
33014
  children: [
@@ -33016,7 +33018,7 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
33016
33018
  scannedBytes: je.scannedBytes,
33017
33019
  hasRows: Pe.length > 0,
33018
33020
  error: je.error,
33019
- onLoadOlder: M,
33021
+ onLoadOlder: Fe,
33020
33022
  onCancel: je.cancel
33021
33023
  }),
33022
33024
  je.status === "idle" && je.done && Pe.length === 0 && /* @__PURE__ */ v("div", {
@@ -33029,7 +33031,7 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
33029
33031
  let t = KS[e.level] ?? KS.info, n = t.icon, r = Ze(e), i = ve || Se.has(r), a = e.tags && Object.keys(e.tags).length > 0, o = e.meta && Object.keys(e.meta).length > 0, s = a || o;
33030
33032
  return /* @__PURE__ */ y("tr", {
33031
33033
  className: z("hover:bg-surface-hover/30 border-b border-border/30", s && "cursor-pointer"),
33032
- onClick: s ? () => qe(r) : void 0,
33034
+ onClick: s ? () => Je(r) : void 0,
33033
33035
  children: [
33034
33036
  /* @__PURE__ */ v("td", {
33035
33037
  className: "px-2 py-1 text-foreground-subtle whitespace-nowrap align-top w-[70px]",
@@ -33099,7 +33101,7 @@ function QS({ agentId: e, addonId: n, deviceId: r, containerDeviceId: a, integra
33099
33101
  /* @__PURE__ */ v("td", {
33100
33102
  className: "px-1 py-1 align-top w-5",
33101
33103
  children: /* @__PURE__ */ v(nC, {
33102
- copied: Je === r,
33104
+ copied: N === r,
33103
33105
  onCopy: () => Xe(e, r)
33104
33106
  })
33105
33107
  })
@@ -33186,30 +33188,30 @@ function rC({ icon: e, label: t, onClick: n, disabled: r, active: i }) {
33186
33188
  children: [/* @__PURE__ */ v(e, { className: "h-2.5 w-2.5" }), t]
33187
33189
  });
33188
33190
  }
33189
- e(), M.AddonStarted, M.AddonInstalled, M.AddonRestarted, M.AddonUpdated, M.AddonStopped, M.AddonUninstalled, M.AddonCrashed, M.AddonError, M.DetectionPhaseTransition, M.DetectionResult, M.DetectionEvent, M.DetectionCameraNative, M.ProviderMotion, M.MotionOnMotionChanged, M.MotionAnalysis, M.MotionZonesRaw, M.ProviderDetection, M.PipelineAudioInferenceResult, M.AgentOnline, M.AgentOffline, M.DeviceRegistered, M.DeviceUnregistered, M.DeviceStateChanged, M.EventEmitted;
33190
- var iC = Object.freeze([...he()]), aC = Object.freeze([
33191
- M.PipelineCameraMetricsSnapshot,
33192
- M.PipelineRunnerLoadSnapshot,
33193
- M.PipelineEngineMetricsSnapshot,
33194
- M.PipelineInferenceResult,
33195
- M.PipelineTrace,
33196
- M.PipelineProgress,
33197
- M.StreamBrokerMetricsSnapshot,
33198
- M.MetricsNodeResourcesSnapshot,
33199
- M.MetricsNodeProcessesSnapshot,
33200
- M.ClusterTopologySnapshot,
33201
- M.MotionAnalysis,
33202
- M.MotionZonesRaw,
33203
- M.DetectionResult,
33204
- M.PipelineAudioInferenceResult,
33205
- M.PlatformProbePhase,
33206
- M.BenchmarkProgress,
33207
- M.ModelDownloadProgress,
33208
- M.ProviderMotion
33191
+ e(), j.AddonStarted, j.AddonInstalled, j.AddonRestarted, j.AddonUpdated, j.AddonStopped, j.AddonUninstalled, j.AddonCrashed, j.AddonError, j.DetectionPhaseTransition, j.DetectionResult, j.DetectionEvent, j.DetectionCameraNative, j.ProviderMotion, j.MotionOnMotionChanged, j.MotionAnalysis, j.MotionZonesRaw, j.ProviderDetection, j.PipelineAudioInferenceResult, j.AgentOnline, j.AgentOffline, j.DeviceRegistered, j.DeviceUnregistered, j.DeviceStateChanged, j.EventEmitted;
33192
+ var iC = Object.freeze([...se()]), aC = Object.freeze([
33193
+ j.PipelineCameraMetricsSnapshot,
33194
+ j.PipelineRunnerLoadSnapshot,
33195
+ j.PipelineEngineMetricsSnapshot,
33196
+ j.PipelineInferenceResult,
33197
+ j.PipelineTrace,
33198
+ j.PipelineProgress,
33199
+ j.StreamBrokerMetricsSnapshot,
33200
+ j.MetricsNodeResourcesSnapshot,
33201
+ j.MetricsNodeProcessesSnapshot,
33202
+ j.ClusterTopologySnapshot,
33203
+ j.MotionAnalysis,
33204
+ j.MotionZonesRaw,
33205
+ j.DetectionResult,
33206
+ j.PipelineAudioInferenceResult,
33207
+ j.PlatformProbePhase,
33208
+ j.BenchmarkProgress,
33209
+ j.ModelDownloadProgress,
33210
+ j.ProviderMotion
33209
33211
  ]), oC = new Set(aC);
33210
33212
  //#endregion
33211
33213
  //#region ../ui-library/src/composites/device-controls/atoms.tsx
33212
- Object.freeze(iC.filter((e) => !oC.has(e))), e(), Object.freeze([...new Set(Ue.filter((e) => e.scope === "device").map((e) => e.name))].toSorted()), e(), e();
33214
+ Object.freeze(iC.filter((e) => !oC.has(e))), e(), Object.freeze([...new Set(be.filter((e) => e.scope === "device").map((e) => e.name))].toSorted()), e(), e();
33213
33215
  function sC({ value: e, unit: t, onDelta: n }) {
33214
33216
  let r = S();
33215
33217
  return /* @__PURE__ */ y("div", {
@@ -33487,11 +33489,11 @@ function OC({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
33487
33489
  slice: (e) => e.state.lockControl
33488
33490
  }), { display: l, applyOptimistic: u } = EC(s, { enabled: r ?? !0 }), [d, f] = g(null), [p, m] = g(!1), [h, _] = g(null);
33489
33491
  if (l === void 0) return null;
33490
- let b = l.state === "locked" || l.state === "locking", x = !c || l.state === "jammed", C = i?.includes(Be.LockOpen) === !0, w = n === "compact", T = () => {
33492
+ let b = l.state === "locked" || l.state === "locking", x = !c || l.state === "jammed", C = i?.includes(we.LockOpen) === !0, w = n === "compact", T = () => {
33491
33493
  u({ state: "locking" }), o?.lock({});
33492
- }, E = () => {
33493
- u({ state: "unlocking" }), o?.unlock({});
33494
33494
  }, ee = () => {
33495
+ u({ state: "unlocking" }), o?.unlock({});
33496
+ }, E = () => {
33495
33497
  o?.open({});
33496
33498
  }, te = () => {
33497
33499
  if (!x) {
@@ -33503,7 +33505,7 @@ function OC({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
33503
33505
  _(null), f("unlock");
33504
33506
  return;
33505
33507
  }
33506
- E();
33508
+ ee();
33507
33509
  }
33508
33510
  }, ne = () => {
33509
33511
  if (!x) {
@@ -33511,7 +33513,7 @@ function OC({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
33511
33513
  _(null), f("open");
33512
33514
  return;
33513
33515
  }
33514
- ee();
33516
+ E();
33515
33517
  }
33516
33518
  }, D = () => {
33517
33519
  p || f(null);
@@ -33526,14 +33528,14 @@ function OC({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
33526
33528
  m(!1);
33527
33529
  }
33528
33530
  }
33529
- }, O = b ? a("uiLibrary.lockPanel.unlock", "Unlock") : a("uiLibrary.lockPanel.lock", "Lock"), ie = d === "open" ? a("uiLibrary.lockPanel.openDoorTitle", "Open door?") : a("uiLibrary.lockPanel.unlockTitle", "Unlock device?"), ae = d === "open" ? a("uiLibrary.lockPanel.openDoorBody", "This will release the latch and open the door.") : a("uiLibrary.lockPanel.unlockBody", "This will unlock the device."), oe = d === "open" ? a("uiLibrary.lockPanel.confirmOpen", "Confirm open") : a("uiLibrary.lockPanel.confirmUnlock", "Confirm unlock"), k = v(d === "open" ? mn : Ln, { className: "h-4 w-4 text-amber-400" });
33531
+ }, ie = b ? a("uiLibrary.lockPanel.unlock", "Unlock") : a("uiLibrary.lockPanel.lock", "Lock"), ae = d === "open" ? a("uiLibrary.lockPanel.openDoorTitle", "Open door?") : a("uiLibrary.lockPanel.unlockTitle", "Unlock device?"), oe = d === "open" ? a("uiLibrary.lockPanel.openDoorBody", "This will release the latch and open the door.") : a("uiLibrary.lockPanel.unlockBody", "This will unlock the device."), se = d === "open" ? a("uiLibrary.lockPanel.confirmOpen", "Confirm open") : a("uiLibrary.lockPanel.confirmUnlock", "Confirm unlock"), O = v(d === "open" ? mn : Ln, { className: "h-4 w-4 text-amber-400" });
33530
33532
  return /* @__PURE__ */ y("div", {
33531
33533
  className: z("inline-flex items-center", n === "full" ? "gap-2" : "gap-1"),
33532
33534
  children: [
33533
33535
  /* @__PURE__ */ y("button", {
33534
33536
  type: "button",
33535
- "aria-label": O,
33536
- title: l.state === "jammed" ? a("uiLibrary.lockPanel.jammed", "Jammed") : O,
33537
+ "aria-label": ie,
33538
+ title: l.state === "jammed" ? a("uiLibrary.lockPanel.jammed", "Jammed") : ie,
33537
33539
  disabled: x,
33538
33540
  onClick: (e) => {
33539
33541
  e.stopPropagation(), te();
@@ -33563,8 +33565,8 @@ function OC({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
33563
33565
  children: [
33564
33566
  /* @__PURE__ */ y(uy, { children: [/* @__PURE__ */ y(fy, {
33565
33567
  className: "flex items-center gap-2",
33566
- children: [k, ie]
33567
- }), /* @__PURE__ */ v(py, { children: ae })] }),
33568
+ children: [O, ae]
33569
+ }), /* @__PURE__ */ v(py, { children: oe })] }),
33568
33570
  h !== null && /* @__PURE__ */ v("div", {
33569
33571
  className: "mt-2 px-3 py-2 rounded border border-danger/40 bg-danger/10 text-xs text-danger",
33570
33572
  children: h
@@ -33580,12 +33582,12 @@ function OC({ trpc: e, deviceId: t, layout: n, optimistic: r, features: i }) {
33580
33582
  type: "button",
33581
33583
  variant: "danger",
33582
33584
  size: "sm",
33583
- "aria-label": oe,
33585
+ "aria-label": se,
33584
33586
  disabled: p,
33585
33587
  onClick: () => {
33586
33588
  re();
33587
33589
  },
33588
- children: [p && /* @__PURE__ */ v(In, { className: "h-3.5 w-3.5 animate-spin" }), oe]
33590
+ children: [p && /* @__PURE__ */ v(In, { className: "h-3.5 w-3.5 animate-spin" }), se]
33589
33591
  })] })
33590
33592
  ]
33591
33593
  })
@@ -34177,7 +34179,7 @@ function GC(e, t) {
34177
34179
  //#endregion
34178
34180
  //#region ../ui-library/src/lib/resolve-sensor-display.ts
34179
34181
  function KC(e) {
34180
- if (e !== void 0) return A(e) ?? e;
34182
+ if (e !== void 0) return ee(e) ?? e;
34181
34183
  }
34182
34184
  function qC(e) {
34183
34185
  if (e.quantity !== void 0) {
@@ -34189,12 +34191,12 @@ function qC(e) {
34189
34191
  }
34190
34192
  }
34191
34193
  function JC(e) {
34192
- 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 = qC(e), i = e.preference ?? Me, a = r === void 0 ? void 0 : we(r), o = r === void 0 ? void 0 : le(r, i), s = KC(t?.unit ?? e.display?.unit ?? e.roleDefault?.unit), c = s !== void 0 && a !== void 0 && s !== a && Ie(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 : ge(e, a, l) ?? e;
34194
+ 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 = qC(e), i = e.preference ?? ze, a = r === void 0 ? void 0 : Be(r), o = r === void 0 ? void 0 : te(r, i), s = KC(t?.unit ?? e.display?.unit ?? e.roleDefault?.unit), c = s !== void 0 && a !== void 0 && s !== a && Oe(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 : de(e, a, l) ?? e;
34193
34195
  return {
34194
34196
  unit: l,
34195
34197
  precision: n,
34196
34198
  toDisplayValue: d,
34197
- fromDisplayValue: (e) => u || a === void 0 || l.length === 0 || l === a ? e : ge(e, l, a) ?? e,
34199
+ fromDisplayValue: (e) => u || a === void 0 || l.length === 0 || l === a ? e : de(e, l, a) ?? e,
34198
34200
  format: (e) => {
34199
34201
  if (r !== void 0 && !c) {
34200
34202
  let t = T({
@@ -34448,7 +34450,7 @@ function cw({ trpc: e, deviceId: t, features: n, layout: r, optimistic: i }) {
34448
34450
  slice: (e) => e.state.control
34449
34451
  }), { display: l, applyOptimistic: u } = EC(s, { enabled: i ?? !0 });
34450
34452
  if (l === void 0) return null;
34451
- let d = !c, f = a?.sourceInfo?.quantity, p = D(f) && f !== "device" && f !== "none" ? f : void 0;
34453
+ let d = !c, f = a?.sourceInfo?.quantity, p = O(f) && f !== "device" && f !== "none" ? f : void 0;
34452
34454
  return /* @__PURE__ */ v("div", {
34453
34455
  "data-kind": l.kind,
34454
34456
  className: "inline-flex min-w-0 max-w-full items-center gap-1 rounded border border-border px-2 py-1 transition-colors",
@@ -34933,7 +34935,7 @@ function Ow({ trpc: e, deviceId: t, features: n, optimistic: r }) {
34933
34935
  slice: (e) => e.state.cover
34934
34936
  }), { display: c, applyOptimistic: l } = EC(o, { enabled: r ?? !0 });
34935
34937
  if (a === void 0) return null;
34936
- let u = !s, d = (n ?? []).includes(Be.CoverPositionable), f = (n ?? []).includes(Be.CoverTilt), p = bw(c?.state), m = c?.position ?? null, h = m !== null, g = c?.state === "open" || c?.state === "opening", _ = (e, t) => {
34938
+ let u = !s, d = (n ?? []).includes(we.CoverPositionable), f = (n ?? []).includes(we.CoverTilt), p = bw(c?.state), m = c?.position ?? null, h = m !== null, g = c?.state === "open" || c?.state === "opening", _ = (e, t) => {
34937
34939
  u || !e || (t !== void 0 && l(t), e({}));
34938
34940
  }, b = (e) => {
34939
34941
  u || (l({ position: e }), a?.setPosition({ position: e }));
@@ -35186,7 +35188,7 @@ function zw(e) {
35186
35188
  return t !== void 0 && Fw(t, n) ? {
35187
35189
  kind: "value",
35188
35190
  slice: n
35189
- } : e.addonId === ee && e.snapshotStatus === "success" ? { kind: "quiet" } : { kind: "awaiting" };
35191
+ } : e.addonId === le && e.snapshotStatus === "success" ? { kind: "quiet" } : { kind: "awaiting" };
35190
35192
  }
35191
35193
  //#endregion
35192
35194
  //#region ../ui-library/src/composites/device-controls/sensor-hero-card.tsx
@@ -36562,7 +36564,7 @@ function AT({ label: e, busy: t, variant: n, onClick: r, children: i }) {
36562
36564
  function jT({ trpc: e, deviceId: t, features: n, optimistic: r }) {
36563
36565
  let i = S(), { cap: a, slice: o, available: s } = CT(e, t), { display: c, applyOptimistic: l } = EC(o, { enabled: r ?? !0 });
36564
36566
  if (a === void 0) return null;
36565
- let u = !s, d = (n ?? []).includes(Be.ValvePositionable), f = bw(c?.state), p = ST(c?.state, i), m = c?.position ?? null, h = m !== null, g = (e, t) => {
36567
+ let u = !s, d = (n ?? []).includes(we.ValvePositionable), f = bw(c?.state), p = ST(c?.state, i), m = c?.position ?? null, h = m !== null, g = (e, t) => {
36566
36568
  u || !e || (t !== void 0 && l(t), e({}));
36567
36569
  }, _ = (e) => {
36568
36570
  u || (l({ position: e }), a.setPosition({ position: e }));
@@ -37856,7 +37858,7 @@ function sE({ trpc: e, deviceId: t, deviceName: n }) {
37856
37858
  e();
37857
37859
  var cE = 20, lE = 9, uE = "#f59e0b", dE = "#ef4444";
37858
37860
  function fE(e) {
37859
- return Math.min(ze, Math.max(Ge, e));
37861
+ return Math.min(Ce, Math.max(Pe, e));
37860
37862
  }
37861
37863
  var pE = "\n@keyframes pf-eat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(2px)} }\n@keyframes pf-pulse { 0%,100%{opacity:.55} 50%{opacity:1} }\n@media (prefers-reduced-motion: reduce) {\n .pf-eat, .pf-pulse { animation: none !important; }\n}\n";
37862
37864
  function mE({ trpc: e, deviceId: t, layout: n, optimistic: r }) {
@@ -38135,7 +38137,7 @@ function gE({ icon: e, label: t }) {
38135
38137
  });
38136
38138
  }
38137
38139
  function _E({ grams: e, low: t, eating: n }) {
38138
- let r = S(), i = Math.min(1, Math.max(0, (e ?? 0) / ze)), a = t ? dE : uE, o = 52 - i * 24;
38140
+ let r = S(), i = Math.min(1, Math.max(0, (e ?? 0) / Ce)), a = t ? dE : uE, o = 52 - i * 24;
38139
38141
  return /* @__PURE__ */ y("svg", {
38140
38142
  width: 72,
38141
38143
  height: 72,
@@ -38201,7 +38203,7 @@ function vE({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
38201
38203
  /* @__PURE__ */ v(yE, {
38202
38204
  label: a("uiLibrary.petFeeder.decreasePortion", "Decrease {{label}} portion", { label: e }),
38203
38205
  symbol: "−",
38204
- disabled: n || t <= Ge,
38206
+ disabled: n || t <= Pe,
38205
38207
  onClick: () => r(fE(t - 1))
38206
38208
  }),
38207
38209
  /* @__PURE__ */ y("span", {
@@ -38214,7 +38216,7 @@ function vE({ label: e, grams: t, busy: n, onGrams: r, onFeed: i }) {
38214
38216
  /* @__PURE__ */ v(yE, {
38215
38217
  label: a("uiLibrary.petFeeder.increasePortion", "Increase {{label}} portion", { label: e }),
38216
38218
  symbol: "+",
38217
- disabled: n || t >= ze,
38219
+ disabled: n || t >= Ce,
38218
38220
  onClick: () => r(fE(t + 1))
38219
38221
  })
38220
38222
  ]
@@ -39553,7 +39555,7 @@ function wD({ trpc: e, deviceId: t, features: n, optimistic: r }) {
39553
39555
  slice: (e) => e.state.lockControl
39554
39556
  }), { display: s, applyOptimistic: c } = EC(a, { enabled: r ?? !0 });
39555
39557
  if (i === void 0 || s === void 0 || !(s.state in bD)) return null;
39556
- let l = vD(s.state), u = yD(s.state) || !o, d = n?.includes(Be.LockOpen) === !0, f = () => {
39558
+ let l = vD(s.state), u = yD(s.state) || !o, d = n?.includes(we.LockOpen) === !0, f = () => {
39557
39559
  u || (l ? (c({ state: "unlocking" }), i.unlock({})) : (c({ state: "locking" }), i.lock({})));
39558
39560
  }, p = () => {
39559
39561
  u || i.open({});
@@ -39611,7 +39613,7 @@ function MD({ trpc: e, deviceId: t, features: n, optimistic: r }) {
39611
39613
  slice: (e) => e.state.color
39612
39614
  }), c = EC(a.slice, { enabled: r ?? !0 }), l = EC(o.slice, { enabled: r ?? !0 }), u = EC(s.slice, { enabled: r ?? !0 });
39613
39615
  if (a.cap === void 0 || c.display === void 0) return null;
39614
- let d = c.display.on === !0, f = !a.available, p = l.display?.percentage ?? 0, m = !o.available, h = d ? p / 100 : 0, g = d ? AD : jD, _ = (n?.includes(Be.LightColorMired) ?? !1) && s.cap !== void 0, b = u.display?.mireds, x = !s.available;
39616
+ let d = c.display.on === !0, f = !a.available, p = l.display?.percentage ?? 0, m = !o.available, h = d ? p / 100 : 0, g = d ? AD : jD, _ = (n?.includes(we.LightColorMired) ?? !1) && s.cap !== void 0, b = u.display?.mireds, x = !s.available;
39615
39617
  return /* @__PURE__ */ y("div", {
39616
39618
  className: "flex flex-col items-stretch gap-4 rounded-lg border border-border bg-surface p-4",
39617
39619
  children: [
@@ -39736,7 +39738,7 @@ function FD({ trpc: e, deviceId: t, features: n, optimistic: r }) {
39736
39738
  slice: (e) => e.state.fanControl
39737
39739
  }), s = EC(a.slice, { enabled: r ?? !0 }), c = EC(o.slice, { enabled: r ?? !0 });
39738
39740
  if (a.cap === void 0 || s.display === void 0) return null;
39739
- let l = s.display.on === !0, u = !a.available, d = c.display?.percentage ?? 0, f = !o.available, p = l ? d / 100 : 0, m = l ? ND : PD, h = n?.includes(Be.FanSpeed) ?? !1, g = (n?.includes(Be.FanOscillating) ?? !1) && o.cap !== void 0, _ = c.display?.availablePresets ?? [], b = (n?.includes(Be.FanPreset) ?? !1) && o.cap !== void 0 && _.length > 0, x = c.display?.preset ?? "", C = c.display?.oscillating === !0, w = () => {
39741
+ let l = s.display.on === !0, u = !a.available, d = c.display?.percentage ?? 0, f = !o.available, p = l ? d / 100 : 0, m = l ? ND : PD, h = n?.includes(we.FanSpeed) ?? !1, g = (n?.includes(we.FanOscillating) ?? !1) && o.cap !== void 0, _ = c.display?.availablePresets ?? [], b = (n?.includes(we.FanPreset) ?? !1) && o.cap !== void 0 && _.length > 0, x = c.display?.preset ?? "", C = c.display?.oscillating === !0, w = () => {
39740
39742
  if (u) return;
39741
39743
  let e = !l;
39742
39744
  s.applyOptimistic({ on: e }), a.cap?.setState({ on: e });
@@ -39744,13 +39746,13 @@ function FD({ trpc: e, deviceId: t, features: n, optimistic: r }) {
39744
39746
  if (f) return;
39745
39747
  let e = !C;
39746
39748
  c.applyOptimistic({ oscillating: e }), o.cap?.setOscillating({ oscillating: e });
39747
- }, E = (e) => {
39749
+ }, ee = (e) => {
39748
39750
  if (f) return;
39749
39751
  let t = c.display;
39750
39752
  if (t === void 0) return;
39751
39753
  let n = t.percentageStep !== void 0 && t.percentageStep > 0 ? t.percentageStep : 1, r = Math.min(100, Math.max(0, Math.round(e * 100 / n) * n));
39752
39754
  c.applyOptimistic({ percentage: r }), o.cap?.setPercentage({ percentage: r });
39753
- }, ee = (e) => {
39755
+ }, E = (e) => {
39754
39756
  f || e === "" || (c.applyOptimistic({ preset: e }), o.cap?.setPreset({ preset: e }));
39755
39757
  };
39756
39758
  return /* @__PURE__ */ y("div", {
@@ -39761,7 +39763,7 @@ function FD({ trpc: e, deviceId: t, features: n, optimistic: r }) {
39761
39763
  children: h ? /* @__PURE__ */ y(bC, {
39762
39764
  fraction: p,
39763
39765
  color: m,
39764
- onDragFraction: E,
39766
+ onDragFraction: ee,
39765
39767
  children: [/* @__PURE__ */ y("div", {
39766
39768
  "data-testid": "speed-readout",
39767
39769
  className: "text-3xl font-bold tabular-nums text-foreground leading-none",
@@ -39792,7 +39794,7 @@ function FD({ trpc: e, deviceId: t, features: n, optimistic: r }) {
39792
39794
  value: x,
39793
39795
  disabled: f,
39794
39796
  onChange: (e) => {
39795
- e.stopPropagation(), ee(e.target.value);
39797
+ e.stopPropagation(), E(e.target.value);
39796
39798
  },
39797
39799
  className: z("bg-surface border border-border rounded px-1 py-0.5", f && "opacity-40 cursor-not-allowed"),
39798
39800
  children: [/* @__PURE__ */ v("option", {
@@ -39926,7 +39928,7 @@ function HD({ trpc: e, deviceId: t, features: n, optimistic: r }) {
39926
39928
  slice: (e) => e.state.mediaPlayer
39927
39929
  }), { display: c, applyOptimistic: l } = EC(o, { enabled: r ?? !0 });
39928
39930
  if (a === void 0 || c === void 0) return null;
39929
- let u = !s, d = LD(c.state), f = (n?.includes(Be.MediaPlayerSeek) ?? !1) && c.durationMs !== null && c.durationMs > 0, p = n?.includes(Be.MediaPlayerNext) ?? !1, m = n?.includes(Be.MediaPlayerPrevious) ?? !1, h = (n?.includes(Be.MediaPlayerVolume) ?? !1) && c.volumeLevel !== null, g = () => {
39931
+ let u = !s, d = LD(c.state), f = (n?.includes(we.MediaPlayerSeek) ?? !1) && c.durationMs !== null && c.durationMs > 0, p = n?.includes(we.MediaPlayerNext) ?? !1, m = n?.includes(we.MediaPlayerPrevious) ?? !1, h = (n?.includes(we.MediaPlayerVolume) ?? !1) && c.volumeLevel !== null, g = () => {
39930
39932
  u || (d === "play" ? (l({ state: "playing" }), a.play({})) : (l({ state: "paused" }), a.pause({})));
39931
39933
  }, _ = c.currentMedia?.artist ?? c.currentMedia?.album ?? null, b = RD(c.positionMs, c.durationMs), x = c.volumeLevel ?? 0;
39932
39934
  return /* @__PURE__ */ y("div", {
@@ -40820,13 +40822,13 @@ var jO = {
40820
40822
  HeroCard: Aw
40821
40823
  }
40822
40824
  };
40823
- Object.fromEntries(Object.values(j).map((e) => [e, jO[xe[e]]])), j.Cover, j.Valve, j.Thermostat, j.Climate, j.Control, j.Button, j.MediaPlayer, j.AlarmPanel, j.Lock, j.Vacuum, j.LawnMower, j.Humidifier, j.Switch, j.Siren, j.Light, j.Fan, j.WaterHeater, j.Sensor, j.Presence, j.EventEmitter, j.Notifier, j.Script, j.Automation, j.Camera, j.Hub, j.Update, j.Generic, j.Weather, j.Container, j.Image, j.PetFeeder, j.Dishwasher, j.Washer, j.Dryer, new Set(Object.values(j));
40825
+ Object.fromEntries(Object.values(N).map((e) => [e, jO[Ge[e]]])), N.Cover, N.Valve, N.Thermostat, N.Climate, N.Control, N.Button, N.MediaPlayer, N.AlarmPanel, N.Lock, N.Vacuum, N.LawnMower, N.Humidifier, N.Switch, N.Siren, N.Light, N.Fan, N.WaterHeater, N.Sensor, N.Presence, N.EventEmitter, N.Notifier, N.Script, N.Automation, N.Camera, N.Hub, N.Update, N.Generic, N.Weather, N.Container, N.Image, N.PetFeeder, N.Dishwasher, N.Washer, N.Dryer, new Set(Object.values(N));
40824
40826
  //#endregion
40825
40827
  //#region ../ui-library/src/lib/format-last-seen.ts
40826
40828
  var MO = 1e3;
40827
40829
  //#endregion
40828
40830
  //#region ../ui-library/src/composites/device-selector-picker.tsx
40829
- 24 * (60 * MO * 60), 30 * MO, e(), e(), e(), e(), e(), d(null), e(), new Set([j.Sensor, j.Presence]), e(), d({}), e(), e(), Object.freeze([]), e(), e(), e(), rt("camstack:device-quick-detail", null), e(), e(), e(), e(), e(), e(), e(), e(), e(), K({
40831
+ 24 * (60 * MO * 60), 30 * MO, e(), e(), e(), e(), e(), d(null), e(), new Set([N.Sensor, N.Presence]), e(), d({}), e(), e(), Object.freeze([]), e(), e(), e(), rt("camstack:device-quick-detail", null), e(), e(), e(), e(), e(), e(), e(), e(), e(), K({
40830
40832
  id: U(),
40831
40833
  stableId: H(),
40832
40834
  addonId: H(),
@@ -41128,7 +41130,7 @@ function ZO({ nodes: e, selected: t, onSelect: n }) {
41128
41130
  });
41129
41131
  }
41130
41132
  var QO = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onStepClick: c, stepBadge: l, selectedCell: d, single: f, reserveRightPx: p, label: m }, h) {
41131
- let _ = S(), b = o(() => FO(e), [e]), x = o(() => PO(n), [n]), C = t(null), w = f ? JO : KO, T = `${w}rem repeat(${n.length}, 13rem)`, E = n.length + 1, [ee, te] = g(!0);
41133
+ let _ = S(), b = o(() => FO(e), [e]), x = o(() => PO(n), [n]), C = t(null), w = f ? JO : KO, T = `${w}rem repeat(${n.length}, 13rem)`, ee = n.length + 1, [E, te] = g(!0);
41132
41134
  s(() => {
41133
41135
  let e = C.current;
41134
41136
  if (!e || p <= 0) {
@@ -41161,10 +41163,10 @@ var QO = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
41161
41163
  i(() => {
41162
41164
  ne !== null && re(ne);
41163
41165
  }, [ne]);
41164
- let O = D.r < b.length && D.c < E ? D : {
41166
+ let ie = D.r < b.length && D.c < ee ? D : {
41165
41167
  r: 0,
41166
41168
  c: 0
41167
- }, ie = (e, t) => {
41169
+ }, ae = (e, t) => {
41168
41170
  C.current?.querySelector(`[data-r="${e}"][data-c="${t}"]`)?.focus();
41169
41171
  };
41170
41172
  return u(h, () => ({ focusCell: (e, t) => {
@@ -41174,7 +41176,7 @@ var QO = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
41174
41176
  re({
41175
41177
  r,
41176
41178
  c: a
41177
- }), ie(r, a);
41179
+ }), ae(r, a);
41178
41180
  } }), [b, n]), s(() => {
41179
41181
  if (ne === null) return;
41180
41182
  let e = C.current, t = e?.querySelector(`[data-r="${ne.r}"][data-c="${ne.c}"]`);
@@ -41187,7 +41189,7 @@ var QO = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
41187
41189
  }, [
41188
41190
  ne,
41189
41191
  p,
41190
- ee
41192
+ E
41191
41193
  ]), /* @__PURE__ */ v("div", {
41192
41194
  ref: C,
41193
41195
  className: "overflow-auto rounded border border-border",
@@ -41204,15 +41206,15 @@ var QO = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
41204
41206
  let t = {
41205
41207
  r: Number(e.target.dataset.r),
41206
41208
  c: Number(e.target.dataset.c)
41207
- }, n = YO(e.key, t, b.length, E);
41208
- n !== null && (e.preventDefault(), re(n), ie(n.r, n.c));
41209
+ }, n = YO(e.key, t, b.length, ee);
41210
+ n !== null && (e.preventDefault(), re(n), ae(n.r, n.c));
41209
41211
  },
41210
41212
  children: [/* @__PURE__ */ y("div", {
41211
41213
  role: "row",
41212
41214
  className: "contents",
41213
41215
  children: [/* @__PURE__ */ v("div", {
41214
41216
  role: "columnheader",
41215
- className: z("top-0 z-20 border-b border-border bg-muted/60 px-3 py-2 text-[10px] uppercase tracking-widest text-foreground-subtle", ee ? "sticky left-0" : "sticky"),
41217
+ className: z("top-0 z-20 border-b border-border bg-muted/60 px-3 py-2 text-[10px] uppercase tracking-widest text-foreground-subtle", E ? "sticky left-0" : "sticky"),
41216
41218
  children: _("uiLibrary.deviceStepMatrix.step", "Step")
41217
41219
  }), x.map((e) => e.grouped ? /* @__PURE__ */ v(HO, { group: e }, e.agentNodeId) : e.columns.map((e) => /* @__PURE__ */ y("div", {
41218
41220
  role: "columnheader",
@@ -41229,11 +41231,11 @@ var QO = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
41229
41231
  node: e,
41230
41232
  depth: t,
41231
41233
  r: i,
41232
- tabbable: O.r === i && O.c === 0,
41234
+ tabbable: ie.r === i && ie.c === 0,
41233
41235
  selected: d?.addonId === e.addonId,
41234
41236
  badge: l?.(e.addonId),
41235
41237
  onClick: c ? (t) => c(e.addonId, t) : void 0,
41236
- sticky: ee
41238
+ sticky: E
41237
41239
  }), n.map((t, n) => {
41238
41240
  let o = r(e.addonId, t), s = d !== null && d.addonId === e.addonId && NO(d) === NO(t), c = o.kind === "enabled" || o.kind === "skip";
41239
41241
  return /* @__PURE__ */ v("div", {
@@ -41245,7 +41247,7 @@ var QO = c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, onSte
41245
41247
  "data-c": n + 1,
41246
41248
  "data-step": e.addonId,
41247
41249
  "data-col": NO(t),
41248
- tabIndex: O.r === i && O.c === n + 1 ? 0 : -1,
41250
+ tabIndex: ie.r === i && ie.c === n + 1 ? 0 : -1,
41249
41251
  "aria-disabled": !c,
41250
41252
  "aria-selected": s,
41251
41253
  onClick: (n) => {
@@ -41286,7 +41288,7 @@ c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, selectedCell:
41286
41288
  l,
41287
41289
  u
41288
41290
  ]);
41289
- let E = C && w ? w.columns : n;
41291
+ let ee = C && w ? w.columns : n;
41290
41292
  return /* @__PURE__ */ y("div", {
41291
41293
  ref: _,
41292
41294
  className: "w-full space-y-2",
@@ -41297,7 +41299,7 @@ c(function({ tree: e, agents: n, getCellState: r, onCellClick: a, selectedCell:
41297
41299
  }), /* @__PURE__ */ v(QO, {
41298
41300
  ref: h,
41299
41301
  tree: e,
41300
- agents: E,
41302
+ agents: ee,
41301
41303
  getCellState: r,
41302
41304
  onCellClick: a,
41303
41305
  onStepClick: d,
@@ -41674,7 +41676,7 @@ function Fk(e, t) {
41674
41676
  translate: (t, n) => kk(e, bk(), t, n)
41675
41677
  };
41676
41678
  }
41677
- e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-D9qlMn0i.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-CZzBhOoI.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-BgJSIubF.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
41679
+ e(), n(() => import("./MaskShapeCanvas-CrWutXSb.mjs").then((e) => ({ default: e.MaskShapeCanvas }))), n(() => import("./MotionZonesSettings-DmT3_5uL.mjs").then((e) => ({ default: e.MotionZonesSettings }))), n(() => import("./SceneMonitorEditor-BVMxs7LB.mjs").then((e) => ({ default: e.SceneMonitorEditor }))), n(() => import("./PrivacyMaskSettings-DUvJko35.mjs").then((e) => ({ default: e.PrivacyMaskSettings })));
41678
41680
  //#endregion
41679
41681
  //#region src/plugin-catalog/plugin-catalog-yolo-manifest-data.json
41680
41682
  var Ik = /*#__PURE__*/ JSON.parse("[{\"id\":\"scrypted-yolov9t-relu-coreml\",\"label\":\"plugin catalog YOLOv9T ReLU CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"0a8733949d77e3204dba6418e81a11a8cc177015711457ce2c171266f23382d6\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"f5a62f196f1e72a84efa1637119dffb6501621af9cf6f867bc76b4b59c9242a0\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu/scrypted_yolov9t_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"b994419b8b68cfd6b89c3c6f3fe6b37458c86cc1d87fcca3df5034476a99dd38\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-onnx\",\"label\":\"plugin catalog YOLOv9T ReLU ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu/scrypted_yolov9t_relu.onnx\",\"size\":8499266,\"sha256\":\"3f11ea2071b27c285b58c16636a44d6a0a27bdd1ca8b64112dfadabd39cfea47\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9t-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9T ReLU test CoreML\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"a5e0128b643f1a66f3e07d4b332f9ccbca97ccab75651c794f0b9f1fb41c8491\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322229,\"sha256\":\"79f4f647f2a0c79db3b560c84251b48c7ba7cbe9c1fecc9674d1a603a389dfa3\"},{\"relativePath\":\"coreml/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":3797160,\"sha256\":\"72efc9dc6af9241b5e5ee7de24a4f55741f6425d0e279d797f0f223e3d355f84\"}],\"sizeMB\":4.12},{\"id\":\"scrypted-yolov9t-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9T ReLU test ONNX\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9t_relu_test/scrypted_yolov9t_relu_test.onnx\",\"size\":8499266,\"sha256\":\"d20aa0e6923a3af7f5e84e3a6d28fb00e8ecd592e3225f986f93bd34b634e2f8\"}],\"sizeMB\":8.5},{\"id\":\"scrypted-yolov9s-relu-coreml\",\"label\":\"plugin catalog YOLOv9S ReLU CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"3bcdb820b82f1e89266f2d11bae1604d3ee4ca6d11dc5bd5c57055ff4157e9f3\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"9a9c3c9cbca406ec2f0418ec867ed6b878ec6d02c16636d30e0bbd83d2ff7c40\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu/scrypted_yolov9s_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"fd51eda58a993997268f6a2e424b536ba173207ad7974ab8bee2a8ff76d52dab\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-onnx\",\"label\":\"plugin catalog YOLOv9S ReLU ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu/scrypted_yolov9s_relu.onnx\",\"size\":29287339,\"sha256\":\"ca0b5bd98d5f59eb2029c6cb5129d53af59873f62a317a028beda463bbb96399\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9s-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9S ReLU test CoreML\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"e2d24de0ce7e8573f19572029765e55abc714f36a85175ad7fcb95c001a76653\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":322664,\"sha256\":\"186b147cdfd15c5ed7a381ec3a426a22cee0b5c52d56f14efd26da06357f5cb0\"},{\"relativePath\":\"coreml/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":14190120,\"sha256\":\"e50651924c2cbffd56008a8953569e66c3de69f21807fcf7d825390ce30f21f8\"}],\"sizeMB\":14.51},{\"id\":\"scrypted-yolov9s-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9S ReLU test ONNX\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9s_relu_test/scrypted_yolov9s_relu_test.onnx\",\"size\":29287339,\"sha256\":\"115ddb83333762a0f2599421335678696454a5c3571ade5df9bac8e9cb5fb4cf\"}],\"sizeMB\":29.29},{\"id\":\"scrypted-yolov9m-relu-coreml\",\"label\":\"plugin catalog YOLOv9M ReLU CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"c548c6e1ff768b2b01bd71e230aa712a1635ae2baa30e0369557a42fc531ecbf\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"1c40e02fc2a2559cb906ea6cd9da9c730d4a78f5019290cbb38d2fcaae379fe7\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu/scrypted_yolov9m_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"4cf938e5bfcc3ee1644813e4eb4702a7de450cc0581df94c719cf43d0ed2e408\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-onnx\",\"label\":\"plugin catalog YOLOv9M ReLU ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu/scrypted_yolov9m_relu.onnx\",\"size\":80380404,\"sha256\":\"e7a81fb33224a0105d2a0a594c3fa43c398c361de623f1d14156ae826e7312d5\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9m-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9M ReLU test CoreML\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"8e2684b286d02b4bdf9db1027c84cb89bf8e4830cfb58269f3ec457c5a010650\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":247061,\"sha256\":\"53d5946e74b13b15c5f8616081c9f15e8a95a5df3d5b45b830fc5a7f49561c16\"},{\"relativePath\":\"coreml/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":39880616,\"sha256\":\"69774bf0032c37707601b8cdc1e1820dbd9f8288eb5d6f3879618a5d34ff5199\"}],\"sizeMB\":40.13},{\"id\":\"scrypted-yolov9m-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9M ReLU test ONNX\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9m_relu_test/scrypted_yolov9m_relu_test.onnx\",\"size\":80380404,\"sha256\":\"8bb054f099295909ec518e2a6598d63db24d3f90edc8105a0f016903f2a205a2\"}],\"sizeMB\":80.38},{\"id\":\"scrypted-yolov9c-relu-coreml\",\"label\":\"plugin catalog YOLOv9C ReLU CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"813a306ebd69cabfd31f00434f5a961feeca7d237833f3e11805dcf4ad120ba9\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"862f082619075e470738306b0ff0a37ae70a7d08e684ca6a6dfa1971d404e0c3\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu/scrypted_yolov9c_relu.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"ed89747e58943758e2a87221d1d404f6a4466cbc039c3c6f96e327cadc403d27\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-onnx\",\"label\":\"plugin catalog YOLOv9C ReLU ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu/scrypted_yolov9c_relu.onnx\",\"size\":101631962,\"sha256\":\"b9372c4428daf4cd944c114b1e80d1a9ff0487d743e53a77216a051cfbef7116\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9c-relu-test-coreml\",\"label\":\"plugin catalog YOLOv9C ReLU test CoreML\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"coreml\",\"precision\":\"fp16\",\"files\":[{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Manifest.json\",\"size\":617,\"sha256\":\"966ef82a93cb0ccf1036a8c9729c065fd372fa9590a97d0945e581cc674f7ad2\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/model.mlmodel\",\"size\":263210,\"sha256\":\"08718ecd3e9552d21a702bd8df60911cad0eec7b2ae382466809550f14634711\"},{\"relativePath\":\"coreml/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.mlpackage/Data/com.apple.CoreML/weights/weight.bin\",\"size\":50489960,\"sha256\":\"fe5936b9430ab4c87f30b148220131d6ec998b2377223d033e2fa2a00e60aada\"}],\"sizeMB\":50.75},{\"id\":\"scrypted-yolov9c-relu-test-onnx\",\"label\":\"plugin catalog YOLOv9C ReLU test ONNX\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"onnx\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"onnx/scrypted_yolov9c_relu_test/scrypted_yolov9c_relu_test.onnx\",\"size\":101631962,\"sha256\":\"2f4e2031e8efb4cbc871594338b2e875d78ab4af3ee0258d253273b1aac84742\"}],\"sizeMB\":101.63},{\"id\":\"scrypted-yolov9t-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9T ReLU OpenVINO FP32\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.xml\",\"size\":628222,\"sha256\":\"01b5a9d02a0f281e1aaf4860e1b0ed3a7f16b9d78975be8ff985ae0ee283d877\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu/best-converted.bin\",\"size\":7542204,\"sha256\":\"4fe9ce8dbdf94514fdd450cbfc907f257153e4898a0c1489a44e4912d8e32cc7\"}],\"sizeMB\":8.17},{\"id\":\"scrypted-yolov9s-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9S ReLU OpenVINO FP32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.xml\",\"size\":629249,\"sha256\":\"5b4a229bf7229425698b63bd065a403e440a6151a6ddff0034867659cc4a480d\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu/best-converted.bin\",\"size\":28329724,\"sha256\":\"c030bd219208ea94082578c81f383d4ef9ec45d7150eec1c2c2ff2569cf49b35\"}],\"sizeMB\":28.96},{\"id\":\"scrypted-yolov9m-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9M ReLU OpenVINO FP32\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.xml\",\"size\":485439,\"sha256\":\"c66f9f1965bf70fd3635d4dfc3cb94c72c06b344c256713237d77706725b9a0c\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu/best-converted.bin\",\"size\":79717372,\"sha256\":\"dfc2d8952bbca9ad0e116168e3fd5c754e601c327d78c4f4d0d4cae12f0e1d2a\"}],\"sizeMB\":80.2},{\"id\":\"scrypted-yolov9c-relu-openvino-fp32\",\"label\":\"plugin catalog YOLOv9C ReLU OpenVINO FP32\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"fp32\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.xml\",\"size\":535047,\"sha256\":\"836c1e998ebf76108ff64d554fdfa07aa72c42624f1a5448701bb409f27b8d68\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu/best-converted.bin\",\"size\":100942972,\"sha256\":\"11a1b330ac9843b349927977b3c7c7f17bb42af73a7ff102969132f27ab81814\"}],\"sizeMB\":101.48},{\"id\":\"scrypted-yolov9t-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9T ReLU OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.xml\",\"size\":1380379,\"sha256\":\"e5a76bf88ac69fc0ebc50c04b61ff91550dd9c2349af1f6d7e4cac949c640cec\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_int8/best-converted.bin\",\"size\":1954956,\"sha256\":\"98fb5b6826d7c6697a585f69ba96754873772d9d61fbed8335aab761e8248659\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9t-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9T ReLU test OpenVINO INT8\",\"family\":\"yolov9t\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.xml\",\"size\":1380383,\"sha256\":\"9e4119284e923e08c9929e78fd31e2552e602a552ac538ae99bf34a50dd4d172\"},{\"relativePath\":\"openvino/scrypted_yolov9t_relu_test_int8/best-converted.bin\",\"size\":1954960,\"sha256\":\"efe5b0a2fd2f5ddef5923eeb9e592a7ef14719061bb7605c86e05b35c2c58ea9\"}],\"sizeMB\":3.34},{\"id\":\"scrypted-yolov9s-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9S ReLU OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.xml\",\"size\":1382088,\"sha256\":\"4e6c24cf24afbab21462f7e1a15bd05b1cbbe5915046000e03c2435d8110bbbf\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_int8/best-converted.bin\",\"size\":7197308,\"sha256\":\"23fd3d666a938c41db232d9c6239baec1134716cfb4ed4ddd3d602dd20eb8ac0\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9s-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9S ReLU test OpenVINO INT8\",\"family\":\"yolov9s\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.xml\",\"size\":1382092,\"sha256\":\"49865bfeafe7576afce089ba6f5c3e25a9192c8b514eb96265c90fe877795641\"},{\"relativePath\":\"openvino/scrypted_yolov9s_relu_test_int8/best-converted.bin\",\"size\":7197312,\"sha256\":\"78e9d36e6b74754db2b624ea3ec0b3ff57ed6dfed59a4f2225e1a271054597de\"}],\"sizeMB\":8.58},{\"id\":\"scrypted-yolov9m-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9M ReLU OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.xml\",\"size\":1024595,\"sha256\":\"1242ab8d8c73b2e80c5dd541177ade6e102a2684114b059136acb4cad6efb034\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_int8/best-converted.bin\",\"size\":20090516,\"sha256\":\"da8e44af8bee66478e6f359e9504bfb13ab4b76f4bd8a2f1b10cfbc22febcf6e\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9m-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9M ReLU test OpenVINO INT8\",\"family\":\"yolov9m\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.xml\",\"size\":1024601,\"sha256\":\"24395ae5fdbb321304c865372cd2b905cdc55abb7610520f3963702e2371decb\"},{\"relativePath\":\"openvino/scrypted_yolov9m_relu_test_int8/best-converted.bin\",\"size\":20090520,\"sha256\":\"4360fe0312067f92c49f180c7b8a10271f14d58b8909aa9b96b13af4ab9289aa\"}],\"sizeMB\":21.12},{\"id\":\"scrypted-yolov9c-relu-openvino-int8\",\"label\":\"plugin catalog YOLOv9C ReLU OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a45c62940120c4301d8fff9fb3b275c29e3618f403ea68a785f2f3220cefec7a\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"0643403a56178c3ed1e066c7884458d8ea6780115d662bdc38d10754d7a11c79\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9c-relu-test-openvino-int8\",\"label\":\"plugin catalog YOLOv9C ReLU test OpenVINO INT8\",\"family\":\"yolov9c\",\"variant\":\"relu_test\",\"format\":\"openvino\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.xml\",\"size\":1092695,\"sha256\":\"a8a1899848ebd060af2326d3c8d3c09ea83354f0bedff6cce6fa08b284ea5519\"},{\"relativePath\":\"openvino/scrypted_yolov9c_relu_test_int8/best-converted.bin\",\"size\":25428280,\"sha256\":\"2eb6bb3d0a03a9b239b6f623f9e7bced62eea61fbe4d8ff89c1b3e2e2b7978a2\"}],\"sizeMB\":26.52},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float16\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite float16\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float16\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float16.tflite\",\"size\":14482836,\"sha256\":\"04889db3b81af361c361e41ffa99327330d37b71d680a2f889e6cdf1e94c0d8c\"}],\"sizeMB\":14.48},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-float32\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite float32\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"float32\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_float32.tflite\",\"size\":28777068,\"sha256\":\"f5d7d08fc1d8f2262633d2df4391638e0481740331aaa1837880a47c33001a96\"}],\"sizeMB\":28.78},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-int8\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite int8\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"int8\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_int8.tflite\",\"size\":7325616,\"sha256\":\"1e9866b16fe80931383bf3c94dc629fe93a37ba3dc1465ea019eb0a50bd428df\"}],\"sizeMB\":7.33},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-integer_quant\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_integer_quant.tflite\",\"size\":7342552,\"sha256\":\"bc1c902e9a9865637ee2403f70c6bf5c29c695d9163e58ad658feb29bb097ebc\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-full_integer_quant\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite full_integer_quant\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"full_integer_quant\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant.tflite\",\"size\":7341704,\"sha256\":\"483ce38dbe33ee5a35f40a82f56c77629a44fa5d95efd8ade9fa97e4d2a261fd\"}],\"sizeMB\":7.34},{\"id\":\"scrypted-yolov9s-relu-sep-320-tflite-edgetpu\",\"label\":\"plugin catalog YOLOv9s ReLU sep 320 TFLite edgetpu\",\"family\":\"yolov9s\",\"variant\":\"relu\",\"format\":\"tflite\",\"precision\":\"edgetpu\",\"files\":[{\"relativePath\":\"tflite/scrypted_yolov9s_relu_sep_320/best_full_integer_quant_edgetpu.tflite\",\"size\":8164480,\"sha256\":\"e1e6b074a3b9fdf19a171baf615553ad375a046aa7de2a3fef9a1950175fab22\"}],\"sizeMB\":8.16}]"), Lk = {
@@ -41875,7 +41877,7 @@ var rA = K({
41875
41877
  bytes: typeof t.bytes == "number" ? t.bytes : 0,
41876
41878
  at: typeof t.at == "number" ? t.at : 0
41877
41879
  } } } : e;
41878
- }, K({ formats: Ff(q(Te), rA) })), aA = Pf(H(), Pf(H(), iA));
41880
+ }, K({ formats: Ff(q(Ke), rA) })), aA = Pf(H(), Pf(H(), iA));
41879
41881
  function oA(e) {
41880
41882
  return `plus-catalog-${e}`;
41881
41883
  }
@@ -41905,7 +41907,7 @@ var sA = K({
41905
41907
  height: U()
41906
41908
  }),
41907
41909
  files: G(sA).readonly(),
41908
- model: Ke
41910
+ model: He
41909
41911
  }), lA = K({
41910
41912
  manifestId: H(),
41911
41913
  status: q([
@@ -41918,7 +41920,7 @@ var sA = K({
41918
41920
  }), uA = K({
41919
41921
  id: H(),
41920
41922
  label: H(),
41921
- format: q(Te),
41923
+ format: q(Ke),
41922
41924
  sizeMB: U(),
41923
41925
  inputSize: U(),
41924
41926
  notes: H()
@@ -41935,8 +41937,8 @@ var sA = K({
41935
41937
  width: U().optional(),
41936
41938
  height: U().optional()
41937
41939
  });
41938
- fe({
41939
- registerCustomModel: Xe(We, K({
41940
+ Xe({
41941
+ registerCustomModel: E(xe, K({
41940
41942
  ok: J(!0),
41941
41943
  conversions: G(K({
41942
41944
  format: q(["openvino", "coreml"]),
@@ -41945,7 +41947,7 @@ fe({
41945
41947
  error: H().optional()
41946
41948
  })).readonly()
41947
41949
  }), { kind: "mutation" }),
41948
- ensureFormatsThenDistribute: Xe(K({ modelId: H() }), K({
41950
+ ensureFormatsThenDistribute: E(K({ modelId: H() }), K({
41949
41951
  conversions: G(K({
41950
41952
  format: q(["openvino", "coreml"]),
41951
41953
  ok: W(),
@@ -41954,13 +41956,13 @@ fe({
41954
41956
  })).readonly(),
41955
41957
  distributed: G(K({
41956
41958
  nodeId: H(),
41957
- format: q(Te),
41959
+ format: q(Ke),
41958
41960
  ok: W(),
41959
41961
  error: H().optional(),
41960
41962
  bytes: U().optional()
41961
41963
  })).readonly()
41962
41964
  }), { kind: "mutation" }),
41963
- ensureModelFormats: Xe(K({
41965
+ ensureModelFormats: E(K({
41964
41966
  modelId: H(),
41965
41967
  formats: G(q(["openvino", "coreml"])).min(1).readonly()
41966
41968
  }), K({ conversions: G(K({
@@ -41969,59 +41971,59 @@ fe({
41969
41971
  nodeId: H().optional(),
41970
41972
  error: H().optional()
41971
41973
  })).readonly() }), { kind: "mutation" }),
41972
- removeCustomModel: Xe(K({ modelId: H() }), K({
41974
+ removeCustomModel: E(K({ modelId: H() }), K({
41973
41975
  removed: W(),
41974
41976
  deletedNodes: G(H()).readonly(),
41975
41977
  clearedPins: U().int().nonnegative()
41976
41978
  }), { kind: "mutation" }),
41977
- renameCustomModel: Xe(K({
41979
+ renameCustomModel: E(K({
41978
41980
  modelId: H().min(1),
41979
41981
  name: H()
41980
41982
  }), K({
41981
41983
  modelId: H(),
41982
41984
  name: H()
41983
41985
  }), { kind: "mutation" }),
41984
- removeModelFromNode: Xe(K({
41986
+ removeModelFromNode: E(K({
41985
41987
  modelId: H(),
41986
41988
  nodeId: H(),
41987
- format: q(Te)
41989
+ format: q(Ke)
41988
41990
  }), K({
41989
41991
  deleted: W(),
41990
41992
  clearedAvailability: W()
41991
41993
  }), { kind: "mutation" }),
41992
- deleteSeedFromNode: Xe(K({
41994
+ deleteSeedFromNode: E(K({
41993
41995
  addonId: H(),
41994
41996
  modelId: H(),
41995
- format: q(Te),
41997
+ format: q(Ke),
41996
41998
  nodeId: H()
41997
41999
  }), K({ success: J(!0) }), { kind: "mutation" }),
41998
- listCustomModels: Xe(wf(), G(We).readonly()),
41999
- distributeModel: Xe(K({
42000
+ listCustomModels: E(wf(), G(xe).readonly()),
42001
+ distributeModel: E(K({
42000
42002
  modelId: H(),
42001
42003
  nodeId: H(),
42002
- format: q(Te)
42004
+ format: q(Ke)
42003
42005
  }), K({
42004
42006
  ok: W(),
42005
42007
  sha256: H(),
42006
42008
  bytes: U()
42007
42009
  }), { kind: "mutation" }),
42008
- listAvailability: Xe(wf(), aA),
42009
- beginModelUpload: Xe(K({
42010
+ listAvailability: E(wf(), aA),
42011
+ beginModelUpload: E(K({
42010
42012
  filename: H(),
42011
42013
  totalBytes: U().int().positive()
42012
42014
  }), K({ uploadId: H() }), { kind: "mutation" }),
42013
- appendModelUpload: Xe(K({
42015
+ appendModelUpload: E(K({
42014
42016
  uploadId: H(),
42015
42017
  chunkBase64: H()
42016
42018
  }), K({ received: U() }), { kind: "mutation" }),
42017
- commitModelUpload: Xe(K({ uploadId: H() }), K({
42019
+ commitModelUpload: E(K({ uploadId: H() }), K({
42018
42020
  filename: H(),
42019
42021
  bytes: U(),
42020
42022
  sha256: H()
42021
42023
  }), { kind: "mutation" }),
42022
- abortModelUpload: Xe(K({ uploadId: H() }), K({ ok: J(!0) }), { kind: "mutation" }),
42023
- listPlusCatalogCatalog: Xe(wf(), G(uA).readonly()),
42024
- importPlusCatalogCatalogModel: Xe(K({
42024
+ abortModelUpload: E(K({ uploadId: H() }), K({ ok: J(!0) }), { kind: "mutation" }),
42025
+ listPlusCatalogCatalog: E(wf(), G(uA).readonly()),
42026
+ importPlusCatalogCatalogModel: E(K({
42025
42027
  catalogId: H(),
42026
42028
  modelId: H().optional(),
42027
42029
  name: H().optional(),
@@ -42031,26 +42033,26 @@ fe({
42031
42033
  modelId: H(),
42032
42034
  bytes: U()
42033
42035
  }), { kind: "mutation" }),
42034
- listPluginCatalogCatalog: Xe(wf(), K({
42036
+ listPluginCatalogCatalog: E(wf(), K({
42035
42037
  entries: G(cA).readonly(),
42036
42038
  drift: G(lA).readonly()
42037
42039
  })),
42038
- importPluginCatalogCatalogModel: Xe(K({
42040
+ importPluginCatalogCatalogModel: E(K({
42039
42041
  manifestId: H(),
42040
42042
  name: H().optional(),
42041
42043
  targetNodeId: H().optional()
42042
- }), We, { kind: "mutation" }),
42043
- tfliteSupport: Xe(K({}).optional(), K({ nodes: G(H()).readonly() })),
42044
- plusCatalogPlusStatus: Xe(wf(), K({
42044
+ }), xe, { kind: "mutation" }),
42045
+ tfliteSupport: E(K({}).optional(), K({ nodes: G(H()).readonly() })),
42046
+ plusCatalogPlusStatus: E(wf(), K({
42045
42047
  configured: W(),
42046
42048
  keyFormatValid: W()
42047
42049
  })),
42048
- plusCatalogPlusTest: Xe(wf(), K({
42050
+ plusCatalogPlusTest: E(wf(), K({
42049
42051
  ok: W(),
42050
42052
  error: H().optional()
42051
42053
  }), { kind: "mutation" }),
42052
- plusCatalogPlusListModels: Xe(wf(), G(dA).readonly()),
42053
- importPlusCatalogModel: Xe(K({
42054
+ plusCatalogPlusListModels: E(wf(), G(dA).readonly()),
42055
+ importPlusCatalogModel: E(K({
42054
42056
  plusModelId: H(),
42055
42057
  modelId: H().optional(),
42056
42058
  name: H().optional(),
@@ -42067,21 +42069,21 @@ fe({
42067
42069
  error: H().optional()
42068
42070
  })).readonly()
42069
42071
  }), { kind: "mutation" }),
42070
- recommendConvertNode: Xe(K({ targets: G(Re).min(1).readonly() }), G(K({
42072
+ recommendConvertNode: E(K({ targets: G(je).min(1).readonly() }), G(K({
42071
42073
  nodeId: H(),
42072
42074
  reason: H(),
42073
42075
  supported: W()
42074
42076
  })).readonly()),
42075
- convertModel: Xe(K({
42077
+ convertModel: E(K({
42076
42078
  sourceUrl: H(),
42077
- metadata: Le,
42078
- targets: G(Re).min(1).readonly(),
42079
+ metadata: Ae,
42080
+ targets: G(je).min(1).readonly(),
42079
42081
  targetNodeId: H().optional(),
42080
42082
  calibrationRef: H().optional()
42081
42083
  }), K({
42082
- entry: Ke,
42084
+ entry: He,
42083
42085
  nodeId: H(),
42084
- artifacts: G(qe).readonly()
42086
+ artifacts: G(Ue).readonly()
42085
42087
  }), { kind: "mutation" })
42086
42088
  });
42087
42089
  var fA = /[\u0000-\u001f\u007f]/;
@@ -42110,9 +42112,9 @@ function mA(e) {
42110
42112
  //#region src/ui/model-studio-ui.ts
42111
42113
  var hA = "object-detection";
42112
42114
  function gA(e) {
42113
- return e.stepId === hA ? ae(e.entry, {
42115
+ return e.stepId === hA ? ge(e.entry, {
42114
42116
  labels: [],
42115
- classMap: Ze
42117
+ classMap: Me
42116
42118
  }) : [];
42117
42119
  }
42118
42120
  var _A = [
@@ -42287,7 +42289,7 @@ function HA(e, t, n) {
42287
42289
  return r.data;
42288
42290
  }
42289
42291
  function UA(e) {
42290
- return Array.isArray(e) ? VA(We, e, "listCustomModels") : [];
42292
+ return Array.isArray(e) ? VA(xe, e, "listCustomModels") : [];
42291
42293
  }
42292
42294
  function WA(e) {
42293
42295
  if (!BA(e)) return {};
@@ -42491,13 +42493,13 @@ async function yj(e, t) {
42491
42493
  }
42492
42494
  async function bj(e, t) {
42493
42495
  let n = await LA(e, "pipelineExecutor.listLoadedEngines.query").pipelineExecutor.listLoadedEngines.query({ nodeId: t });
42494
- return HA(me.methods.listLoadedEngines.output, n, "listLoadedEngines");
42496
+ return HA(pe.methods.listLoadedEngines.output, n, "listLoadedEngines");
42495
42497
  }
42496
42498
  async function xj(e, t) {
42497
42499
  await LA(e, "pipelineOrchestrator.setAgentInferenceDevices.mutate").pipelineOrchestrator.setAgentInferenceDevices.mutate(t);
42498
42500
  }
42499
42501
  async function Sj(e) {
42500
- return E(await LA(e, "addonSettings.getGlobalSettings.query").addonSettings.getGlobalSettings.query({ addonId: "pipeline-orchestrator" }));
42502
+ return ie(await LA(e, "addonSettings.getGlobalSettings.query").addonSettings.getGlobalSettings.query({ addonId: "pipeline-orchestrator" }));
42501
42503
  }
42502
42504
  async function Cj(e, t) {
42503
42505
  await LA(e, "addonSettings.updateGlobalSettings.mutate").addonSettings.updateGlobalSettings.mutate({
@@ -42540,7 +42542,7 @@ async function Dj(e) {
42540
42542
  };
42541
42543
  }
42542
42544
  async function Oj(e, t) {
42543
- return HA(We, await zA(e, "importPluginCatalogCatalogModel", {
42545
+ return HA(xe, await zA(e, "importPluginCatalogCatalogModel", {
42544
42546
  manifestId: t.manifestId,
42545
42547
  ...t.name === void 0 ? {} : { name: t.name },
42546
42548
  ...t.targetNodeId === void 0 ? {} : { targetNodeId: t.targetNodeId }
@@ -43853,7 +43855,7 @@ function vM({ label: e, value: t, options: n, onChange: r, disabled: i = !1, pla
43853
43855
  //#region src/components/SourceModelBrowser.tsx
43854
43856
  e();
43855
43857
  function yM({ preSelectors: e = [], catalog: t, value: n, onChange: r, title: i, subtitle: a, actionRow: o, renderActionRow: s, footer: c, emptyMessage: l, testId: u = "source-model-browser" }) {
43856
- let { t: d } = $(), f = De(t), [p, m] = g({});
43858
+ let { t: d } = $(), f = Fe(t), [p, m] = g({});
43857
43859
  return /* @__PURE__ */ y("div", {
43858
43860
  className: "space-y-3",
43859
43861
  "data-testid": u,
@@ -44037,8 +44039,8 @@ var TM = [
44037
44039
  key: "test"
44038
44040
  }];
44039
44041
  function DM({ trpc: e, landNodeId: n, onImported: r }) {
44040
- let { t: a } = $(), s = qj(), [c, u] = g(null), [d, f] = g([]), [p, m] = g(null), [h, _] = g({}), [b, x] = g({}), [S, C] = g(null), [w, T] = g(null), [E, ee] = g(null), [te, ne] = g("relu"), [D, re] = g(""), [O, ie] = g(""), [ae, oe] = g(null), [k, se] = g(""), ce = t(0), le = t(!1), ue = n !== void 0 && n.length > 0 ? n : k.length > 0 ? k : void 0, de = l(async () => {
44041
- let t = ++ce.current;
44042
+ let { t: a } = $(), s = qj(), [c, u] = g(null), [d, f] = g([]), [p, m] = g(null), [h, _] = g({}), [b, x] = g({}), [S, C] = g(null), [w, T] = g(null), [ee, E] = g(null), [te, ne] = g("relu"), [D, re] = g(""), [ie, ae] = g(""), [oe, se] = g(null), [O, ce] = g(""), le = t(0), k = t(!1), ue = n !== void 0 && n.length > 0 ? n : O.length > 0 ? O : void 0, de = l(async () => {
44043
+ let t = ++le.current;
44042
44044
  C(null);
44043
44045
  try {
44044
44046
  let n = Dj(e), r = GA(e).then((e) => ({
@@ -44053,8 +44055,8 @@ function DM({ trpc: e, landNodeId: n, onImported: r }) {
44053
44055
  i,
44054
44056
  a
44055
44057
  ]);
44056
- if (t !== ce.current) return;
44057
- if (u(o.entries), f(o.drift), oe(l), l.length > 0 && se((e) => e.length > 0 && l.includes(e) ? e : l[0]), s.ok) {
44058
+ if (t !== le.current) return;
44059
+ if (u(o.entries), f(o.drift), se(l), l.length > 0 && ce((e) => e.length > 0 && l.includes(e) ? e : l[0]), s.ok) {
44058
44060
  m(new Set(s.value.map((e) => e.entry.id)));
44059
44061
  let e = {};
44060
44062
  for (let t of s.value) e[t.entry.id] = vA(t.entry);
@@ -44066,7 +44068,7 @@ function DM({ trpc: e, landNodeId: n, onImported: r }) {
44066
44068
  x(e);
44067
44069
  } else x({});
44068
44070
  } catch (e) {
44069
- if (t !== ce.current) return;
44071
+ if (t !== le.current) return;
44070
44072
  u(null), C(e instanceof Error ? e.message : a("pluginCatalog.loadFailed"));
44071
44073
  }
44072
44074
  }, [e, a]);
@@ -44074,9 +44076,9 @@ function DM({ trpc: e, landNodeId: n, onImported: r }) {
44074
44076
  de();
44075
44077
  }, [de]);
44076
44078
  let A = o(() => (c ?? []).filter((e) => e.variant === te), [c, te]), fe = o(() => hM(A), [A]), pe = o(() => new Map(fe.map((e) => [e.id, e])), [fe]), me = D.length > 0 && pe.has(D) ? D : fe[0]?.id ?? "", he = l(async (t) => {
44077
- if (le.current || wM(O)) return;
44078
- let i = CM(O);
44079
- le.current = !0, T(t.id), ee(null);
44079
+ if (k.current || wM(ie)) return;
44080
+ let i = CM(ie);
44081
+ k.current = !0, T(t.id), E(null);
44080
44082
  let o = t.format === "tflite" ? ue : n !== void 0 && n.length > 0 ? n : void 0;
44081
44083
  try {
44082
44084
  await s.run({
@@ -44121,9 +44123,9 @@ function DM({ trpc: e, landNodeId: n, onImported: r }) {
44121
44123
  } : e));
44122
44124
  }), await de(), r?.();
44123
44125
  } catch (e) {
44124
- ee(e instanceof Error ? e.message : a("importOp.failed"));
44126
+ E(e instanceof Error ? e.message : a("importOp.failed"));
44125
44127
  } finally {
44126
- le.current = !1, T(null);
44128
+ k.current = !1, T(null);
44127
44129
  }
44128
44130
  }, [
44129
44131
  e,
@@ -44134,7 +44136,7 @@ function DM({ trpc: e, landNodeId: n, onImported: r }) {
44134
44136
  ue,
44135
44137
  n,
44136
44138
  s,
44137
- O,
44139
+ ie,
44138
44140
  a
44139
44141
  ]);
44140
44142
  if (c === null && S === null) return /* @__PURE__ */ v("div", {
@@ -44169,30 +44171,30 @@ function DM({ trpc: e, landNodeId: n, onImported: r }) {
44169
44171
  "data-testid": "plugin-catalog-tab",
44170
44172
  className: "space-y-4",
44171
44173
  children: [
44172
- E && /* @__PURE__ */ v("div", {
44174
+ ee && /* @__PURE__ */ v("div", {
44173
44175
  className: "rounded-md border border-danger/30 bg-danger/10 px-3 py-2 text-xs text-danger",
44174
- children: E
44176
+ children: ee
44175
44177
  }),
44176
44178
  /* @__PURE__ */ v("p", {
44177
44179
  className: "text-[11px] text-foreground-subtle",
44178
44180
  children: a("pluginCatalog.intro")
44179
44181
  }),
44180
- n === void 0 && ae !== null && ae.length > 0 && /* @__PURE__ */ y("label", {
44182
+ n === void 0 && oe !== null && oe.length > 0 && /* @__PURE__ */ y("label", {
44181
44183
  className: "flex items-center gap-2 text-[11px] text-foreground",
44182
44184
  children: [/* @__PURE__ */ v("span", {
44183
44185
  className: "text-foreground-subtle uppercase tracking-wide text-[10px]",
44184
44186
  children: a("pluginCatalog.tfliteCoral")
44185
44187
  }), /* @__PURE__ */ v("select", {
44186
44188
  className: "bg-surface border border-border rounded px-2 py-0.5 text-[11px]",
44187
- value: k,
44188
- onChange: (e) => se(e.target.value),
44189
- children: ae.map((e) => /* @__PURE__ */ v("option", {
44189
+ value: O,
44190
+ onChange: (e) => ce(e.target.value),
44191
+ children: oe.map((e) => /* @__PURE__ */ v("option", {
44190
44192
  value: e,
44191
44193
  children: e
44192
44194
  }, e))
44193
44195
  })]
44194
44196
  }),
44195
- n === void 0 && ae !== null && ae.length === 0 && /* @__PURE__ */ v("p", {
44197
+ n === void 0 && oe !== null && oe.length === 0 && /* @__PURE__ */ v("p", {
44196
44198
  className: "text-[11px] text-warning",
44197
44199
  children: a("pluginCatalog.noCoral")
44198
44200
  }),
@@ -44228,8 +44230,8 @@ function DM({ trpc: e, landNodeId: n, onImported: r }) {
44228
44230
  actionRow: ge && ve.length > 0 ? /* @__PURE__ */ y("div", {
44229
44231
  className: "space-y-2",
44230
44232
  children: [/* @__PURE__ */ v(SM, {
44231
- value: O,
44232
- onChange: ie,
44233
+ value: ie,
44234
+ onChange: ae,
44233
44235
  defaultName: ge.name
44234
44236
  }), /* @__PURE__ */ v(xM, {
44235
44237
  entries: ve,
@@ -45382,7 +45384,7 @@ var _N = [
45382
45384
  value: "frigate",
45383
45385
  label: "plus catalog"
45384
45386
  }
45385
- ], vN = new Set(Te);
45387
+ ], vN = new Set(Ke);
45386
45388
  function yN(e) {
45387
45389
  return vN.has(e);
45388
45390
  }
@@ -45419,7 +45421,7 @@ function bN({ seed: e, nodeId: t, busyKey: n, onDownload: r }) {
45419
45421
  });
45420
45422
  }
45421
45423
  function xN({ seeds: e, nodeId: t, busyKey: n, selectedByFamily: r, onSelectFamily: i, onDownload: a }) {
45422
- let o = AA(e), s = jA(e), c = o.map(MA), l = De(c), u = new Map(e.map((e) => [e.modelId, e]));
45424
+ let o = AA(e), s = jA(e), c = o.map(MA), l = Fe(c), u = new Map(e.map((e) => [e.modelId, e]));
45423
45425
  return l.length === 0 && s.length === 0 ? null : /* @__PURE__ */ y("div", {
45424
45426
  className: "space-y-3",
45425
45427
  "data-testid": "catalog-provider",
@@ -45494,21 +45496,21 @@ function SN({ trpc: e, refreshKey: t, nodeId: n }) {
45494
45496
  i(() => {
45495
45497
  f(!0), w();
45496
45498
  }, [w, t]);
45497
- let T = o(() => OA(a), [a]), E = o(() => kA(a, c).filter((e) => e.provider === "camstack"), [a, c]), ee = o(() => De(AA(E).map(MA)), [E]), te = o(() => {
45499
+ let T = o(() => OA(a), [a]), ee = o(() => kA(a, c).filter((e) => e.provider === "camstack"), [a, c]), E = o(() => Fe(AA(ee).map(MA)), [ee]), te = o(() => {
45498
45500
  let e = /* @__PURE__ */ new Map();
45499
- for (let t of E) e.set(t.modelId, t);
45501
+ for (let t of ee) e.set(t.modelId, t);
45500
45502
  return e;
45501
- }, [E]);
45503
+ }, [ee]);
45502
45504
  i(() => {
45503
45505
  C((e) => {
45504
45506
  let t = {}, n = !1;
45505
- for (let r of ee) {
45507
+ for (let r of E) {
45506
45508
  let i = r.tiers[0]?.baseModelId ?? "", a = e[r.family], o = a !== void 0 && te.has(a) && te.get(a)?.group?.family === r.family ? a : i;
45507
45509
  t[r.family] = o, o !== a && (n = !0);
45508
45510
  }
45509
45511
  return !n && Object.keys(e).length === Object.keys(t).length ? e : t;
45510
45512
  });
45511
- }, [ee, te]);
45513
+ }, [E, te]);
45512
45514
  let ne = qj(), D = l(async (t, i) => {
45513
45515
  if (yN(i)) {
45514
45516
  _(`${t.stepId}/${t.modelId}/${i}`), x(null);
@@ -45592,11 +45594,11 @@ function SN({ trpc: e, refreshKey: t, nodeId: n }) {
45592
45594
  }))
45593
45595
  })
45594
45596
  }),
45595
- E.length === 0 ? /* @__PURE__ */ v("div", {
45597
+ ee.length === 0 ? /* @__PURE__ */ v("div", {
45596
45598
  className: "rounded-xl border border-border bg-surface text-center text-xs text-foreground-subtle italic py-10",
45597
45599
  children: r("catalog.noCamstackModels")
45598
45600
  }) : /* @__PURE__ */ v(xN, {
45599
- seeds: E,
45601
+ seeds: ee,
45600
45602
  nodeId: n,
45601
45603
  busyKey: h,
45602
45604
  selectedByFamily: S,
@@ -45720,8 +45722,8 @@ function ON(e) {
45720
45722
  } : {
45721
45723
  provider: "frigate",
45722
45724
  group: jM(e.type, e.inputWidth),
45723
- ...pe(e.labels),
45724
- defaultClassFloors: O("stock", e.defaultClassFloors)
45725
+ ...re(e.labels),
45726
+ defaultClassFloors: he("stock", e.defaultClassFloors)
45725
45727
  }
45726
45728
  };
45727
45729
  return {
@@ -45837,13 +45839,13 @@ var LN = [
45837
45839
  ".pt"
45838
45840
  ], zN = [{ value: "upload" }, { value: "url" }];
45839
45841
  function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsumed: a }) {
45840
- let { t: s } = $(), c = qj(), [u, d] = g("upload"), [f, p] = g(""), [m, h] = g(""), [_, b] = g("object-detection"), [x, S] = g("onnx"), [C, w] = g(""), [T, E] = g(""), [ee, te] = g(0), [ne, D] = g(320), [re, O] = g(320), [ie, ae] = g(""), [oe, k] = g(null), [se, ce] = g([]), [le, ue] = g({ state: "idle" }), [de, A] = g(!1), [fe, pe] = g(null), [me, he] = g(null), ge = t(null), _e = o(() => NM(ie), [ie]);
45842
+ let { t: s } = $(), c = qj(), [u, d] = g("upload"), [f, p] = g(""), [m, h] = g(""), [_, b] = g("object-detection"), [x, S] = g("onnx"), [C, w] = g(""), [T, ee] = g(""), [E, te] = g(0), [ne, D] = g(320), [re, ie] = g(320), [ae, oe] = g(""), [se, O] = g(null), [ce, le] = g([]), [k, ue] = g({ state: "idle" }), [de, A] = g(!1), [fe, pe] = g(null), [me, he] = g(null), ge = t(null), _e = o(() => NM(ae), [ae]);
45841
45843
  i(() => {
45842
- r != null && (d("upload"), S(r.format), w(r.postprocessor ?? ""), D(r.inputSize), O(r.inputSize), ae(r.labels.join("\n")), k(r.sourceLabel), pe(null), he(null), a?.());
45844
+ r != null && (d("upload"), S(r.format), w(r.postprocessor ?? ""), D(r.inputSize), ie(r.inputSize), oe(r.labels.join("\n")), O(r.sourceLabel), pe(null), he(null), a?.());
45843
45845
  }, [r, a]);
45844
45846
  let ve = l((e, t) => {
45845
45847
  let n = IN(e);
45846
- ce(n.hints), n.format !== null && S(n.format), D(n.inputSize), O(n.inputSize), (t?.forceId || !f) && p(n.modelId), m || h(n.name), n.sizeMB !== null && e.kind === "url" && te(n.sizeMB);
45848
+ le(n.hints), n.format !== null && S(n.format), D(n.inputSize), ie(n.inputSize), (t?.forceId || !f) && p(n.modelId), m || h(n.name), n.sizeMB !== null && e.kind === "url" && te(n.sizeMB);
45847
45849
  }, [f, m]), ye = l(async (t) => {
45848
45850
  pe(null), ve({
45849
45851
  kind: "file",
@@ -45890,14 +45892,14 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
45890
45892
  s
45891
45893
  ]), xe = l(async () => {
45892
45894
  pe(null), he(null);
45893
- let t = u === "upload" ? le.state === "done" ? {
45895
+ let t = u === "upload" ? k.state === "done" ? {
45894
45896
  kind: "upload",
45895
- filename: le.file.filename,
45896
- sizeMB: Number((le.file.bytes / 1e6).toFixed(1))
45897
+ filename: k.file.filename,
45898
+ sizeMB: Number((k.file.bytes / 1e6).toFixed(1))
45897
45899
  } : null : T.trim() ? {
45898
45900
  kind: "url",
45899
45901
  url: T.trim(),
45900
- sizeMB: ee
45902
+ sizeMB: E
45901
45903
  } : null;
45902
45904
  if (t === null) return pe(s(u === "upload" ? "register.uploadFirst" : "register.urlRequired"));
45903
45905
  if (wM(m)) return pe(s("register.nameInvalid"));
@@ -45959,11 +45961,11 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
45959
45961
  x,
45960
45962
  C,
45961
45963
  T,
45962
- ee,
45964
+ E,
45963
45965
  ne,
45964
45966
  re,
45965
45967
  _e,
45966
- le,
45968
+ k,
45967
45969
  n,
45968
45970
  c,
45969
45971
  s
@@ -45997,11 +45999,11 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
45997
45999
  }, e.value))
45998
46000
  })]
45999
46001
  }),
46000
- oe !== null && u === "upload" && /* @__PURE__ */ v("div", {
46002
+ se !== null && u === "upload" && /* @__PURE__ */ v("div", {
46001
46003
  className: "rounded-md border border-primary/30 bg-primary/10 px-3 py-2 text-[11px] text-foreground-subtle",
46002
46004
  children: /* @__PURE__ */ v(Nj, {
46003
46005
  i18nKey: "register.prefilled",
46004
- values: { source: oe },
46006
+ values: { source: se },
46005
46007
  components: { b: /* @__PURE__ */ v("span", { className: "text-foreground" }) }
46006
46008
  })
46007
46009
  }),
@@ -46013,25 +46015,25 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
46013
46015
  children: [
46014
46016
  /* @__PURE__ */ v("button", {
46015
46017
  onClick: () => ge.current?.click(),
46016
- disabled: le.state === "uploading",
46018
+ disabled: k.state === "uploading",
46017
46019
  className: "px-4 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors",
46018
- children: le.state === "uploading" ? s("register.uploading", { pct: le.pct }) : s("register.chooseFile")
46020
+ children: k.state === "uploading" ? s("register.uploading", { pct: k.pct }) : s("register.chooseFile")
46019
46021
  }),
46020
- le.state === "done" && /* @__PURE__ */ y("span", {
46022
+ k.state === "done" && /* @__PURE__ */ y("span", {
46021
46023
  className: "text-[11px] text-success font-mono",
46022
46024
  children: [
46023
- le.file.filename,
46025
+ k.file.filename,
46024
46026
  " · ",
46025
- (le.file.bytes / 1e6).toFixed(1),
46027
+ (k.file.bytes / 1e6).toFixed(1),
46026
46028
  " MB ·",
46027
46029
  " ",
46028
- le.file.sha256.slice(0, 12),
46030
+ k.file.sha256.slice(0, 12),
46029
46031
  "…"
46030
46032
  ]
46031
46033
  }),
46032
- le.state === "error" && /* @__PURE__ */ v("span", {
46034
+ k.state === "error" && /* @__PURE__ */ v("span", {
46033
46035
  className: "text-[11px] text-danger",
46034
- children: le.message
46036
+ children: k.message
46035
46037
  })
46036
46038
  ]
46037
46039
  }),
@@ -46045,11 +46047,11 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
46045
46047
  t && ye(t), e.target.value = "";
46046
46048
  }
46047
46049
  }),
46048
- le.state === "uploading" && /* @__PURE__ */ v("div", {
46050
+ k.state === "uploading" && /* @__PURE__ */ v("div", {
46049
46051
  className: "h-1.5 w-full rounded-full bg-surface overflow-hidden mt-2",
46050
46052
  children: /* @__PURE__ */ v("div", {
46051
46053
  className: "h-full rounded-full bg-primary transition-all duration-200",
46052
- style: { width: `${Math.max(2, le.pct)}%` }
46054
+ style: { width: `${Math.max(2, k.pct)}%` }
46053
46055
  })
46054
46056
  })
46055
46057
  ]
@@ -46062,12 +46064,12 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
46062
46064
  children: /* @__PURE__ */ v(jj, {
46063
46065
  label: s("register.urlLabel"),
46064
46066
  value: T,
46065
- onChange: E,
46067
+ onChange: ee,
46066
46068
  placeholder: s("register.urlPlaceholder")
46067
46069
  })
46068
46070
  }), /* @__PURE__ */ v(Mj, {
46069
46071
  label: s("register.sizeMb"),
46070
- value: ee,
46072
+ value: E,
46071
46073
  onChange: te,
46072
46074
  min: 0
46073
46075
  })]
@@ -46078,9 +46080,9 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
46078
46080
  children: s("register.probeUrl")
46079
46081
  })]
46080
46082
  }),
46081
- se.length > 0 && /* @__PURE__ */ v("ul", {
46083
+ ce.length > 0 && /* @__PURE__ */ v("ul", {
46082
46084
  className: "rounded-md border border-border bg-surface px-3 py-2 text-[10px] text-foreground-subtle space-y-0.5 list-disc list-inside",
46083
- children: se.map((e) => /* @__PURE__ */ v("li", { children: e }, e))
46085
+ children: ce.map((e) => /* @__PURE__ */ v("li", { children: e }, e))
46084
46086
  }),
46085
46087
  /* @__PURE__ */ y("div", {
46086
46088
  className: "grid grid-cols-1 sm:grid-cols-2 gap-3",
@@ -46112,7 +46114,7 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
46112
46114
  /* @__PURE__ */ v(Mj, {
46113
46115
  label: s("register.inputHeight"),
46114
46116
  value: re,
46115
- onChange: O,
46117
+ onChange: ie,
46116
46118
  min: 1
46117
46119
  })
46118
46120
  ]
@@ -46155,8 +46157,8 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
46155
46157
  /* @__PURE__ */ v(Aj, {
46156
46158
  label: s("register.labelmap", { count: _e.length }),
46157
46159
  children: /* @__PURE__ */ v("textarea", {
46158
- value: ie,
46159
- onChange: (e) => ae(e.target.value),
46160
+ value: ae,
46161
+ onChange: (e) => oe(e.target.value),
46160
46162
  rows: 8,
46161
46163
  spellCheck: !1,
46162
46164
  className: "w-full px-3 py-1.5 text-xs font-mono rounded-md border border-border bg-surface text-foreground focus:outline-none focus:border-primary/50"
@@ -46166,7 +46168,7 @@ function BN({ trpc: e, onRegistered: n, initialPrefill: r = null, onPrefillConsu
46166
46168
  className: "flex items-center gap-2",
46167
46169
  children: /* @__PURE__ */ v("button", {
46168
46170
  onClick: () => void xe(),
46169
- disabled: de || u === "upload" && le.state !== "done",
46171
+ disabled: de || u === "upload" && k.state !== "done",
46170
46172
  className: "px-4 py-1.5 text-xs font-medium rounded-md bg-primary text-primary-foreground hover:bg-primary/90 disabled:opacity-50 transition-colors",
46171
46173
  children: s(de ? "register.registering" : "register.registerModel")
46172
46174
  })
@@ -46209,7 +46211,7 @@ function VN({ trpc: e, onRegistered: t, initialPrefill: n = null, onPrefillConsu
46209
46211
  //#endregion
46210
46212
  //#region src/ui/installed-activation.ts
46211
46213
  function HN(e, t, n, r, i) {
46212
- if (r == null || ce(t)) return [];
46214
+ if (r == null || D(t)) return [];
46213
46215
  let a = [];
46214
46216
  for (let o of e) o.enabled && i.has(o.format) && eb(r.models, o.format) && tb({
46215
46217
  catalog: r,
@@ -46223,7 +46225,7 @@ function HN(e, t, n, r, i) {
46223
46225
  return a;
46224
46226
  }
46225
46227
  function UN(e, t) {
46226
- return { [ye(e)]: t };
46228
+ return { [Qe(e)]: t };
46227
46229
  }
46228
46230
  function WN(e, t, n) {
46229
46231
  let r = Object.keys(t).length > 0;
@@ -46294,7 +46296,7 @@ function $N(e, t, n) {
46294
46296
  function eP(e, t) {
46295
46297
  if (e.onDisk !== "current") return /* @__PURE__ */ new Set();
46296
46298
  let n = t.stepCatalogs[e.stepId], r = new Set([e.format]);
46297
- return ce(e.stepId) ? $N(e.stepId, t.clusterModels, n) === e.modelId ? new Set(t.devices.filter((t) => t.enabled && t.format === e.format).map((e) => e.key)) : /* @__PURE__ */ new Set() : new Set(HN(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
46299
+ return D(e.stepId) ? $N(e.stepId, t.clusterModels, n) === e.modelId ? new Set(t.devices.filter((t) => t.enabled && t.format === e.format).map((e) => e.key)) : /* @__PURE__ */ new Set() : new Set(HN(t.devices, e.stepId, e.modelId, n, r).map((e) => e.deviceKey));
46298
46300
  }
46299
46301
  function tP(e, t, n) {
46300
46302
  return t ? "outside-pools" : e.some((e) => e.loaded === !0) ? "in-use" : e.some((e) => e.configured) ? "configured" : e.some((e) => e.enabled) ? n ? "idle" : "unknown" : "unused";
@@ -46311,7 +46313,7 @@ function nP(e, t) {
46311
46313
  ...e,
46312
46314
  key: `${e.stepId}::${e.modelId}::${e.format}`,
46313
46315
  renameable: e.origin === "registry",
46314
- clusterScoped: ce(e.stepId),
46316
+ clusterScoped: D(e.stepId),
46315
46317
  chips: r,
46316
46318
  usage: a,
46317
46319
  removable: a === "idle" || a === "unused"
@@ -46341,7 +46343,7 @@ function iP(e, t) {
46341
46343
  modelId: i,
46342
46344
  name: mA(r.entry),
46343
46345
  description: r.entry.description,
46344
- provider: se({
46346
+ provider: ue({
46345
46347
  id: i,
46346
46348
  description: r.entry.description,
46347
46349
  provider: r.entry.provider
@@ -46743,7 +46745,7 @@ function yP({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
46743
46745
  id: "installed-cluster-models",
46744
46746
  className: pt,
46745
46747
  children: a("cluster.title")
46746
- }), Se.map((e) => /* @__PURE__ */ v(vP, {
46748
+ }), Ne.map((e) => /* @__PURE__ */ v(vP, {
46747
46749
  step: e,
46748
46750
  current: n?.[e.stepId] ?? e.defaultModelId,
46749
46751
  inputs: s,
@@ -46756,7 +46758,7 @@ function yP({ trpc: e, refreshKey: t, clusterModels: n, onChanged: r, onError: i
46756
46758
  function bP(e, t) {
46757
46759
  if (e.kind === "mask") return t("fillBadges.mask");
46758
46760
  if (e.kind === "crop") return e.stepId === "face-detection" ? t("fillBadges.cropFace") : t("fillBadges.cropPlate");
46759
- let n = Ce[e.stepId], r = {
46761
+ let n = Je[e.stepId], r = {
46760
46762
  stepId: e.stepId,
46761
46763
  uncovered: e.uncovered.join(", ")
46762
46764
  };
@@ -46770,7 +46772,7 @@ function xP({ supplies: e }) {
46770
46772
  children: e.map((e) => /* @__PURE__ */ v("span", {
46771
46773
  className: "inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-medium border bg-primary/10 text-primary border-primary/30",
46772
46774
  title: bP(e, t),
46773
- children: te(e)
46775
+ children: ne(e)
46774
46776
  }, e.stepId))
46775
46777
  });
46776
46778
  }
@@ -47271,7 +47273,7 @@ function KP(e) {
47271
47273
  return e === null || e.length === 0 ? "hub" : e;
47272
47274
  }
47273
47275
  function qP(e) {
47274
- return Te.some((t) => t === e);
47276
+ return Ke.some((t) => t === e);
47275
47277
  }
47276
47278
  async function JP(e, t) {
47277
47279
  let [n, r, i, a, o, s] = await Promise.all([
@@ -47297,7 +47299,7 @@ function YP(e, t, n) {
47297
47299
  return [t(r), a];
47298
47300
  }
47299
47301
  function XP({ trpc: e, refreshKey: t }) {
47300
- let { t: n } = $(), [r, a] = ck("provider"), s = HP(r), c = l((e) => a(e === "all" ? null : e), [a]), [u, d] = YP("type", WP, "all"), [f, p] = YP("device", GP, "all"), [m, h] = YP("node", KP, "hub"), _ = gt(), [x, S] = g(null), [C, w] = g(null), [T, E] = g(0), [ee, te] = g(null), ne = l(async () => {
47302
+ let { t: n } = $(), [r, a] = ck("provider"), s = HP(r), c = l((e) => a(e === "all" ? null : e), [a]), [u, d] = YP("type", WP, "all"), [f, p] = YP("device", GP, "all"), [m, h] = YP("node", KP, "hub"), _ = gt(), [x, S] = g(null), [C, w] = g(null), [T, ee] = g(0), [E, te] = g(null), ne = l(async () => {
47301
47303
  w(null);
47302
47304
  try {
47303
47305
  S(await JP(e, m));
@@ -47313,7 +47315,7 @@ function XP({ trpc: e, refreshKey: t }) {
47313
47315
  S(null), ne();
47314
47316
  }, [ne, t]);
47315
47317
  let D = l(async () => {
47316
- await ne(), E((e) => e + 1);
47318
+ await ne(), ee((e) => e + 1);
47317
47319
  }, [ne]), re = o(() => x === null ? [] : aP({
47318
47320
  nodeId: m,
47319
47321
  seeds: x.seeds,
@@ -47323,20 +47325,20 @@ function XP({ trpc: e, refreshKey: t }) {
47323
47325
  clusterModels: x.clusterModels,
47324
47326
  registry: x.models,
47325
47327
  availability: x.availability
47326
- }), [x, m]), O = x?.devices ?? [], ie = o(() => oP(re, O, {
47328
+ }), [x, m]), ie = x?.devices ?? [], ae = o(() => oP(re, ie, {
47327
47329
  provider: s,
47328
47330
  step: u,
47329
47331
  device: f
47330
47332
  }), [
47331
47333
  re,
47332
- O,
47334
+ ie,
47333
47335
  s,
47334
47336
  u,
47335
47337
  f
47336
- ]), ae = o(() => {
47338
+ ]), oe = o(() => {
47337
47339
  let e = new Set(re.map((e) => e.stepId));
47338
47340
  return u !== "all" && e.add(u), [...e].toSorted((e, t) => e.localeCompare(t));
47339
- }, [re, u]), oe = l(async (t) => {
47341
+ }, [re, u]), se = l(async (t) => {
47340
47342
  if (!t.removable || !qP(t.format)) return;
47341
47343
  let n = {
47342
47344
  modelId: t.modelId,
@@ -47347,7 +47349,7 @@ function XP({ trpc: e, refreshKey: t }) {
47347
47349
  ...n,
47348
47350
  addonId: t.stepId
47349
47351
  });
47350
- }, [m, e]), k = l(async (e) => {
47352
+ }, [m, e]), O = l(async (e) => {
47351
47353
  !e.removable || !qP(e.format) || await _({
47352
47354
  title: n("installed.deleteFile.title"),
47353
47355
  message: n("installed.deleteFile.message", {
@@ -47360,20 +47362,20 @@ function XP({ trpc: e, refreshKey: t }) {
47360
47362
  confirmLabel: n("installed.deleteFile.confirm"),
47361
47363
  cancelLabel: n("common.cancel"),
47362
47364
  variant: "danger"
47363
- }) && (await oe(e), await D());
47365
+ }) && (await se(e), await D());
47364
47366
  }, [
47365
47367
  _,
47366
- oe,
47368
+ se,
47367
47369
  m,
47368
47370
  D,
47369
47371
  n
47370
- ]), se = o(() => ie.filter((e) => e.removable), [ie]), ce = l(async () => {
47371
- if (se.length === 0) return;
47372
- let e = se.reduce((e, t) => e + t.sizeMB, 0);
47372
+ ]), ce = o(() => ae.filter((e) => e.removable), [ae]), le = l(async () => {
47373
+ if (ce.length === 0) return;
47374
+ let e = ce.reduce((e, t) => e + t.sizeMB, 0);
47373
47375
  if (await _({
47374
47376
  title: n("installed.deleteUnused.title"),
47375
47377
  message: n("installed.deleteUnused.message", {
47376
- count: se.length,
47378
+ count: ce.length,
47377
47379
  size: NA(e),
47378
47380
  nodeId: m
47379
47381
  }),
@@ -47381,17 +47383,17 @@ function XP({ trpc: e, refreshKey: t }) {
47381
47383
  cancelLabel: n("common.cancel"),
47382
47384
  variant: "danger"
47383
47385
  })) {
47384
- for (let e of se) await oe(e);
47386
+ for (let e of ce) await se(e);
47385
47387
  await D();
47386
47388
  }
47387
47389
  }, [
47388
47390
  _,
47389
- oe,
47391
+ se,
47390
47392
  m,
47391
47393
  D,
47392
- se,
47394
+ ce,
47393
47395
  n
47394
- ]), le = l(async (t, n) => {
47396
+ ]), k = l(async (t, n) => {
47395
47397
  await YA(e, {
47396
47398
  modelId: t.modelId,
47397
47399
  name: n
@@ -47417,13 +47419,13 @@ function XP({ trpc: e, refreshKey: t }) {
47417
47419
  variant: "default"
47418
47420
  }) && (await xj(e, {
47419
47421
  agentNodeId: m,
47420
- inferenceDevices: GN(O, t.stepId, t.modelId, [r.deviceKey])
47422
+ inferenceDevices: GN(ie, t.stepId, t.modelId, [r.deviceKey])
47421
47423
  }), await D());
47422
47424
  }, [
47423
47425
  _,
47424
47426
  m,
47425
47427
  e,
47426
- O,
47428
+ ie,
47427
47429
  D,
47428
47430
  n
47429
47431
  ]), de = re.reduce((e, t) => e + t.sizeMB, 0), A = s !== "all" || u !== "all" || f !== "all";
@@ -47439,10 +47441,10 @@ function XP({ trpc: e, refreshKey: t }) {
47439
47441
  provider: s,
47440
47442
  onProvider: c,
47441
47443
  step: u,
47442
- stepOptions: ae,
47444
+ stepOptions: oe,
47443
47445
  onStep: d,
47444
47446
  device: f,
47445
- deviceOptions: JN(O),
47447
+ deviceOptions: JN(ie),
47446
47448
  onDevice: p,
47447
47449
  nodeId: m,
47448
47450
  onNode: h
@@ -47458,7 +47460,7 @@ function XP({ trpc: e, refreshKey: t }) {
47458
47460
  "data-testid": "installed-summary",
47459
47461
  children: [
47460
47462
  n("installed.summary.files", {
47461
- count: ie.length,
47463
+ count: ae.length,
47462
47464
  nodeId: m
47463
47465
  }),
47464
47466
  A ? ` ${n("installed.summary.ofTotal", { total: re.length })}` : "",
@@ -47470,19 +47472,19 @@ function XP({ trpc: e, refreshKey: t }) {
47470
47472
  n("installed.summary.reclaimable", { size: NA(sP(re)) }),
47471
47473
  x?.engines === null ? ` · ${n("installed.summary.loadedUnavailable")}` : ""
47472
47474
  ]
47473
- }), se.length > 0 && /* @__PURE__ */ v("button", {
47475
+ }), ce.length > 0 && /* @__PURE__ */ v("button", {
47474
47476
  type: "button",
47475
47477
  className: "inline-flex items-center justify-center gap-1 rounded border border-danger/40 bg-danger/10 px-1.5 py-0.5 sm:px-2 sm:py-1 text-[10px] sm:text-[11px] font-medium text-danger hover:bg-danger/20 transition-colors disabled:opacity-40",
47476
47478
  "data-testid": "installed-remove-unused-bulk",
47477
- onClick: () => void ce(),
47478
- children: n("installed.removeUnused", { count: se.length })
47479
+ onClick: () => void le(),
47480
+ children: n("installed.removeUnused", { count: ce.length })
47479
47481
  })]
47480
47482
  }),
47481
47483
  /* @__PURE__ */ v(zP, {
47482
- rows: ie,
47484
+ rows: ae,
47483
47485
  emptyMessage: re.length === 0 ? n("installed.emptyNode", { nodeId: m }) : n("installed.emptyFiltered"),
47484
- onRemove: k,
47485
- onRename: le,
47486
+ onRemove: O,
47487
+ onRename: k,
47486
47488
  onChip: ue,
47487
47489
  onError: w
47488
47490
  }),
@@ -47494,14 +47496,14 @@ function XP({ trpc: e, refreshKey: t }) {
47494
47496
  onError: w
47495
47497
  })
47496
47498
  ] }),
47497
- ee && /* @__PURE__ */ v(uP, {
47499
+ E && /* @__PURE__ */ v(uP, {
47498
47500
  trpc: e,
47499
47501
  nodeId: m,
47500
- stepId: ee.row.stepId,
47501
- modelId: ee.row.modelId,
47502
- modelName: ee.row.name,
47503
- devices: O,
47504
- deviceKey: ee.deviceKey,
47502
+ stepId: E.row.stepId,
47503
+ modelId: E.row.modelId,
47504
+ modelName: E.row.name,
47505
+ devices: ie,
47506
+ deviceKey: E.deviceKey,
47505
47507
  onClose: () => te(null),
47506
47508
  onDone: () => void D()
47507
47509
  })