@camstack/addon-osd-manager 0.1.178 → 0.1.180

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 (18) hide show
  1. package/dist/{MotionZonesSettings-Bvj0n89I.mjs → MotionZonesSettings-ZY8nEZ4A.mjs} +2 -2
  2. package/dist/{PrivacyMaskSettings-Dg8I0QKQ.mjs → PrivacyMaskSettings-CBh-nVj6.mjs} +4 -4
  3. package/dist/{SceneMonitorEditor-B7gcNcHz.mjs → SceneMonitorEditor-CCZdsPeR.mjs} +3 -3
  4. package/dist/_stub.js +10 -10
  5. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DooJvhL_.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-odNWYe2P.mjs} +3 -3
  6. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D4hHi1KB.mjs +26 -0
  7. package/dist/{hostInit-C89VbDl6.mjs → hostInit-C4sW45bX.mjs} +2 -2
  8. package/dist/index.js +359 -9
  9. package/dist/index.mjs +359 -9
  10. package/dist/{player-overlays-eA3CQbg5.mjs → player-overlays-ClqS_7qr.mjs} +1 -1
  11. package/dist/remoteEntry.js +1 -1
  12. package/dist/{responsive-DkeTfJj6.mjs → responsive-OY2AYs2K.mjs} +1 -1
  13. package/dist/{scene-monitor-copy-Dp7L5KAz.mjs → scene-monitor-copy-D50g5tDa.mjs} +1 -1
  14. package/dist/{square-C3hFg2T6.mjs → square-CMXmMI2_.mjs} +1 -1
  15. package/dist/{trash-2-Y_FstTEx.mjs → trash-2-CS8cJOvy.mjs} +1 -1
  16. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-5lxDThy0.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Ga9h-wWR.mjs} +1 -1
  17. package/package.json +1 -1
  18. package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BPGj9pUC.mjs +0 -26
package/dist/index.mjs CHANGED
@@ -10610,7 +10610,53 @@ var ModelFormatEntrySchema = object({
10610
10610
  /** Multi-file payload (directory members or sibling files). */
10611
10611
  files: array(string()).readonly().optional(),
10612
10612
  /** Runtime(s) that can use this format. If omitted, inferred from ModelFormat key */
10613
- runtimes: array(_enum(["python"])).readonly().optional()
10613
+ runtimes: array(_enum(["python"])).readonly().optional(),
10614
+ /**
10615
+ * Content revision of the artefact, for one hosted OFF the CamStack mirror.
10616
+ * A format on the mirror leaves it unset: its revision (the sha256 of its
10617
+ * weight file) comes from the downloader's generated table, kept in step
10618
+ * with the mirror by `scripts/check-hosted-model-revisions.ts` (D744). A
10619
+ * node records the revision it downloaded next to the file
10620
+ * (`<file>.revision`); a copy with no record or a different one is stale
10621
+ * unless its weight file hashes to the revision, and a stale copy is
10622
+ * downloaded again, the old one serving until the new one is complete. No
10623
+ * revision at all ⇒ a file on disk is current, whatever it holds (D743).
10624
+ */
10625
+ revision: string().min(1).optional()
10626
+ });
10627
+ /**
10628
+ * What a node holds for one (model, format) (D746). `current` is a complete
10629
+ * copy at its catalog revision — exactly what `downloaded: true` means.
10630
+ * `stale` is bytes on disk that are not (yet) proven current under D743/D744:
10631
+ * no or a different revision record, or a missing sibling. `missing` is no
10632
+ * copy. `downloaded` alone folds `stale` into "not downloaded", which hid
10633
+ * reclaimable bytes and a copy about to be replaced.
10634
+ */
10635
+ var ModelOnDiskStateSchema = _enum([
10636
+ "current",
10637
+ "stale",
10638
+ "missing"
10639
+ ]);
10640
+ /**
10641
+ * The numeric precision of one format's BUILD (D746) — reported only when the
10642
+ * build states it (file-name token, an INT8 variant, an EdgeTPU compile, a
10643
+ * CamStack Core ML export). Absent means "not stated", never "fp32".
10644
+ */
10645
+ var ModelFormatPrecisionSchema = _enum([
10646
+ "fp32",
10647
+ "fp16",
10648
+ "int8"
10649
+ ]);
10650
+ /**
10651
+ * One format of one model as a node's `pipelineExecutor.getSchema` reports it.
10652
+ * `onDisk` / `precision` are optional for version skew: a runner that predates
10653
+ * them omits them, and a reader falls back to `downloaded`.
10654
+ */
10655
+ var PipelineModelFormatStatusSchema = object({
10656
+ downloaded: boolean(),
10657
+ sizeMB: number(),
10658
+ onDisk: ModelOnDiskStateSchema.optional(),
10659
+ precision: ModelFormatPrecisionSchema.optional()
10614
10660
  });
10615
10661
  /**
10616
10662
  * Extra file that must be downloaded alongside the model (e.g., labels JSON, dict.txt).
@@ -10819,6 +10865,35 @@ var ModelCatalogEntrySchema = object({
10819
10865
  */
10820
10866
  defaultConfidence: number().min(0).max(1).optional(),
10821
10867
  /**
10868
+ * Per-MODEL default of the per-class confidence floors (`minConfidence<Macro>`
10869
+ * on a detector step), keyed by macro class: `{ person: 0.45 }`. A class
10870
+ * absent here runs at the step slider's global default. The same row shape
10871
+ * the floor measurement produces (`model-floors.json`: modelId → floors), so
10872
+ * a measured table is copied in as-is. An operator override is bound to the
10873
+ * model it was made for and does not survive a model change (D738). A custom
10874
+ * / imported model may declare it; without it, the global defaults apply.
10875
+ */
10876
+ defaultClassFloors: record(string(), number().min(0).max(1)).optional(),
10877
+ /**
10878
+ * The inference precision this model's OpenVINO IR needs on an Intel GPU.
10879
+ * Absent ⇒ the device default (f16 on a GPU). Set to `'f32'` for an FP32 IR
10880
+ * that produces invalid output at f16 — measured 2026-10-07 for YOLO26
10881
+ * base IRs (`yolo26s`: 0 true / 146 false positives; `yolo26m*`: NaN
10882
+ * scores) on the Core Ultra iGPU and the N100. Threaded to the pool as
10883
+ * `PoolModelConfig.gpuInferencePrecision`; the pool sets
10884
+ * INFERENCE_PRECISION_HINT on a GPU only. Costs ~60% latency on the GPU.
10885
+ */
10886
+ gpuInferencePrecision: _enum(["f32", "f16"]).optional(),
10887
+ /**
10888
+ * ROOT detectors only: per supplied step (`animal-classifier`, …), the
10889
+ * minimum DETECTION score from which this root's own fine label (species,
10890
+ * vehicle type — D736 root supply) is taken (D741). Below it the detection
10891
+ * keeps its macro class without the fine label. `1` = never take it from
10892
+ * this root. Absent ⇒ no floor beyond the macro floor. The supplied step's
10893
+ * `minConfidence` slider, bound to the ROOT model, overrides it.
10894
+ */
10895
+ suppliedLabelFloors: record(string(), number().min(0).max(1)).optional(),
10896
+ /**
10822
10897
  * When true, the executor produces a landmark-aligned crop (similarity warp
10823
10898
  * onto the canonical template) before this step runs, instead of a plain
10824
10899
  * axis-aligned bbox crop. Required for face-recognition embedders (ArcFace):
@@ -27344,7 +27419,7 @@ var FrameRefSchema = object({
27344
27419
  timestamp: number(),
27345
27420
  capturedAt: number().optional()
27346
27421
  });
27347
- var ModelFormatSchema$1 = _enum([
27422
+ var ModelFormatSchema$2 = _enum([
27348
27423
  "onnx",
27349
27424
  "coreml",
27350
27425
  "openvino",
@@ -27362,7 +27437,7 @@ var PipelineSlotSchema = _enum([
27362
27437
  var PipelineEngineChoiceSchema = object({
27363
27438
  runtime: literal("python"),
27364
27439
  backend: string(),
27365
- format: ModelFormatSchema$1,
27440
+ format: ModelFormatSchema$2,
27366
27441
  device: string().optional()
27367
27442
  });
27368
27443
  /**
@@ -27419,10 +27494,7 @@ var PipelineTemplateSchema$1 = object({
27419
27494
  var PipelineModelOptionSchema = object({
27420
27495
  id: string(),
27421
27496
  name: string(),
27422
- formats: record(string(), object({
27423
- downloaded: boolean(),
27424
- sizeMB: number()
27425
- })),
27497
+ formats: record(string(), PipelineModelFormatStatusSchema),
27426
27498
  group: ModelVariantGroupSchema.optional(),
27427
27499
  legacy: boolean().optional(),
27428
27500
  provider: ModelProviderIdSchema.optional(),
@@ -27637,6 +27709,32 @@ var pipelineExecutorCapability = {
27637
27709
  auth: "admin"
27638
27710
  }),
27639
27711
  /**
27712
+ * Best settings (D745): the MODEL-BOUND thresholds (`bindsToModel` keys of
27713
+ * the object-detection root, and their binding keys) stored in THIS node's
27714
+ * per-camera detector settings — and, unless `dryRun`, remove them so the
27715
+ * running model's own defaults apply. Every other key of a camera's store
27716
+ * is kept. `nodeId` is the ROUTING key. `deviceIds` absent ⇒ every camera
27717
+ * with a store. A camera whose store could not be read is `refused`, never
27718
+ * reported as clean.
27719
+ */
27720
+ clearModelBoundDeviceOverrides: method(object({
27721
+ nodeId: string(),
27722
+ deviceIds: array(number()).readonly().optional(),
27723
+ dryRun: boolean()
27724
+ }), object({
27725
+ entries: array(object({
27726
+ deviceId: number(),
27727
+ keys: array(string()).readonly()
27728
+ })).readonly(),
27729
+ refused: array(object({
27730
+ deviceId: number(),
27731
+ reason: string()
27732
+ })).readonly()
27733
+ }), {
27734
+ kind: "mutation",
27735
+ auth: "admin"
27736
+ }),
27737
+ /**
27640
27738
  * Which of THIS node's inference devices the executor currently refuses,
27641
27739
  * and why. `nodeId` is the ROUTING key (stripped by the generated router).
27642
27740
  *
@@ -27731,12 +27829,12 @@ var pipelineExecutorCapability = {
27731
27829
  downloadModel: method(object({
27732
27830
  addonId: string(),
27733
27831
  modelId: string(),
27734
- format: ModelFormatSchema$1
27832
+ format: ModelFormatSchema$2
27735
27833
  }), DownloadModelResultSchema, { kind: "mutation" }),
27736
27834
  deleteModel: method(object({
27737
27835
  addonId: string(),
27738
27836
  modelId: string(),
27739
- format: ModelFormatSchema$1
27837
+ format: ModelFormatSchema$2
27740
27838
  }), object({ success: literal(true) }), { kind: "mutation" }),
27741
27839
  /**
27742
27840
  * Stateless single-frame execution. Callers (runner, benchmark) pass
@@ -27982,6 +28080,204 @@ var pipelineExecutorCapability = {
27982
28080
  getDetectionConfigSchema: method(_void(), ConfigUISchemaNullableBridge)
27983
28081
  }
27984
28082
  };
28083
+ /**
28084
+ * The wire shapes of the Best settings plan and apply (D745), used by the
28085
+ * `pipeline-orchestrator` cap. The recommender's own types
28086
+ * (`recommend.ts`, `demand.ts`) are the TS face of the same data; these
28087
+ * schemas are what crosses the cap boundary.
28088
+ */
28089
+ var ModelFormatSchema$1 = _enum(MODEL_FORMATS);
28090
+ var HardwareClassIdSchema = _enum([
28091
+ "intel-core-ultra",
28092
+ "intel-n-series",
28093
+ "apple-m-base",
28094
+ "apple-m-pro",
28095
+ "unknown"
28096
+ ]);
28097
+ var AcceleratorKindSchema = _enum([
28098
+ "intel-npu",
28099
+ "intel-igpu",
28100
+ "x86-cpu",
28101
+ "arm-cpu",
28102
+ "apple-ane",
28103
+ "coral"
28104
+ ]);
28105
+ var RecommendationReasonSchema = discriminatedUnion("kind", [
28106
+ object({
28107
+ kind: literal("fits"),
28108
+ utilisation: number()
28109
+ }),
28110
+ object({
28111
+ kind: literal("tie-faster"),
28112
+ over: string(),
28113
+ recallDelta: number()
28114
+ }),
28115
+ object({
28116
+ kind: literal("stepped-down"),
28117
+ from: string(),
28118
+ to: string(),
28119
+ limitedBy: string()
28120
+ }),
28121
+ object({
28122
+ kind: literal("no-fit-lightest"),
28123
+ utilisation: number()
28124
+ }),
28125
+ object({
28126
+ kind: literal("derived-latency"),
28127
+ modelId: string()
28128
+ }),
28129
+ object({
28130
+ kind: literal("estimated-load"),
28131
+ observedForMs: number().nullable()
28132
+ }),
28133
+ object({ kind: literal("cpu-device") }),
28134
+ object({ kind: literal("coral-untouched") }),
28135
+ object({ kind: literal("device-disabled") }),
28136
+ object({ kind: literal("device-unavailable") }),
28137
+ object({ kind: literal("node-offline") }),
28138
+ object({ kind: literal("no-hardware-facts") }),
28139
+ object({
28140
+ kind: literal("no-measured-data"),
28141
+ hardwareClass: HardwareClassIdSchema
28142
+ }),
28143
+ object({
28144
+ kind: literal("no-family-build"),
28145
+ format: ModelFormatSchema$1
28146
+ })
28147
+ ]);
28148
+ var DeviceDemandSchema = object({
28149
+ nodeId: string(),
28150
+ deviceKey: string(),
28151
+ demandFps: number(),
28152
+ maxCameraFps: number(),
28153
+ alwaysOnCameras: number(),
28154
+ onMotionSessions: number(),
28155
+ onMotionSource: _enum([
28156
+ "observed-24h",
28157
+ "estimate",
28158
+ "none"
28159
+ ]),
28160
+ observedForMs: number().nullable()
28161
+ });
28162
+ var DeviceModelChoiceSchema = object({
28163
+ modelId: string(),
28164
+ p50Ms: number(),
28165
+ fps: number(),
28166
+ measured: boolean(),
28167
+ utilisation: number(),
28168
+ personRecall: number()
28169
+ });
28170
+ var DeviceRecommendationSchema = object({
28171
+ deviceKey: string(),
28172
+ accelerator: AcceleratorKindSchema.nullable(),
28173
+ enabled: boolean(),
28174
+ available: boolean(),
28175
+ demand: DeviceDemandSchema.nullable(),
28176
+ chosen: DeviceModelChoiceSchema.nullable(),
28177
+ reasons: array(RecommendationReasonSchema).readonly()
28178
+ });
28179
+ var NodeRecommendationSchema = object({
28180
+ nodeId: string(),
28181
+ reachable: boolean(),
28182
+ hardwareClass: HardwareClassIdSchema.nullable(),
28183
+ cpuModel: string().nullable(),
28184
+ skipped: boolean(),
28185
+ acceleratorModelId: string().nullable(),
28186
+ devices: array(DeviceRecommendationSchema).readonly(),
28187
+ reasons: array(RecommendationReasonSchema).readonly()
28188
+ });
28189
+ var ModelPinChangeSchema = object({
28190
+ stepId: string(),
28191
+ before: string().nullable(),
28192
+ after: string().nullable()
28193
+ });
28194
+ var NodeDeviceChangeSchema = object({
28195
+ nodeId: string(),
28196
+ deviceKey: string(),
28197
+ madeExplicit: boolean(),
28198
+ modelPins: array(ModelPinChangeSchema).readonly(),
28199
+ thresholds: array(object({
28200
+ stepId: string(),
28201
+ keys: array(string()).readonly()
28202
+ })).readonly()
28203
+ });
28204
+ var CameraOverrideClearSchema = object({
28205
+ deviceId: number(),
28206
+ source: _enum(["step-override", "wholesale"]),
28207
+ nodeId: string(),
28208
+ deviceKey: string().nullable(),
28209
+ stepId: string(),
28210
+ modelIdBefore: string().nullable(),
28211
+ keys: array(string()).readonly()
28212
+ });
28213
+ var DetectorStoreClearSchema = object({
28214
+ deviceId: number(),
28215
+ keys: array(string()).readonly()
28216
+ });
28217
+ var BestSettingsWarningSchema = discriminatedUnion("kind", [
28218
+ object({
28219
+ kind: literal("detector-store-cluster-wide"),
28220
+ skippedNodes: array(string()).readonly()
28221
+ }),
28222
+ object({
28223
+ kind: literal("detector-store-unreadable"),
28224
+ error: string()
28225
+ }),
28226
+ object({
28227
+ kind: literal("coral-enabled"),
28228
+ nodeId: string(),
28229
+ deviceKey: string()
28230
+ })
28231
+ ]);
28232
+ var BestSettingsOptionsSchema = object({
28233
+ /** Share of each accelerator's throughput kept free (0.3–0.5). */
28234
+ headroom: number().min(.3).max(.5).default(.4) });
28235
+ var BestSettingsPlanSchema = object({
28236
+ /** Hash of everything the apply will write — the apply refuses a different one. */
28237
+ planHash: string(),
28238
+ family: literal("yolov9"),
28239
+ headroom: number(),
28240
+ generatedAt: number(),
28241
+ nodes: array(NodeRecommendationSchema).readonly(),
28242
+ nodeChanges: array(NodeDeviceChangeSchema).readonly(),
28243
+ cameraClears: array(CameraOverrideClearSchema).readonly(),
28244
+ detectorStoreClears: array(DetectorStoreClearSchema).readonly(),
28245
+ warnings: array(BestSettingsWarningSchema).readonly()
28246
+ });
28247
+ var BestSettingsApplyInputSchema = object({
28248
+ planHash: string(),
28249
+ headroom: number().min(.3).max(.5).default(.4)
28250
+ });
28251
+ var BestSettingsPhaseResultSchema = object({
28252
+ phase: _enum([
28253
+ "download",
28254
+ "camera-overrides",
28255
+ "detector-thresholds",
28256
+ "node-models",
28257
+ "redispatch"
28258
+ ]),
28259
+ ok: boolean(),
28260
+ detail: string()
28261
+ });
28262
+ var BestSettingsApplyResultSchema = discriminatedUnion("kind", [
28263
+ object({
28264
+ kind: literal("applied"),
28265
+ planHash: string(),
28266
+ phases: array(BestSettingsPhaseResultSchema).readonly()
28267
+ }),
28268
+ object({
28269
+ kind: literal("aborted"),
28270
+ phases: array(BestSettingsPhaseResultSchema).readonly()
28271
+ }),
28272
+ object({
28273
+ kind: literal("stale"),
28274
+ plan: BestSettingsPlanSchema
28275
+ }),
28276
+ object({
28277
+ kind: literal("refused"),
28278
+ reason: _enum(["apply-in-progress"])
28279
+ })
28280
+ ]);
27985
28281
  object({
27986
28282
  activeCameras: number(),
27987
28283
  throttledCameras: number(),
@@ -30172,6 +30468,27 @@ var pipelineOrchestratorCapability = {
30172
30468
  kind: "mutation",
30173
30469
  auth: "admin"
30174
30470
  }),
30471
+ /**
30472
+ * Best settings (D745) — DRY RUN. Recommends ONE detector family (YOLOv9)
30473
+ * for the whole cluster from each node's static hardware class, the
30474
+ * measured latency table and the detection demand, and lists every write
30475
+ * the apply would make: the node model pins set, the enrichment pins and
30476
+ * model-bound thresholds removed (node level and per camera), and the
30477
+ * per-camera detector thresholds cleared. Writes nothing. Step
30478
+ * enablement, device enablement, pins, recording, notifications, zones and
30479
+ * rules are never part of it. `planHash` names exactly this diff.
30480
+ */
30481
+ planBestSettings: method(BestSettingsOptionsSchema, BestSettingsPlanSchema, { auth: "admin" }),
30482
+ /**
30483
+ * Best settings (D745) — APPLY the plan the operator confirmed. Recomputes
30484
+ * the plan and refuses (`stale`, with the fresh plan) when its hash is not
30485
+ * `planHash`, so what is written is exactly the confirmed diff. Offline
30486
+ * nodes are skipped; there is no undo.
30487
+ */
30488
+ applyBestSettings: method(BestSettingsApplyInputSchema, BestSettingsApplyResultSchema, {
30489
+ kind: "mutation",
30490
+ auth: "admin"
30491
+ }),
30175
30492
  /** Read one camera's settings. Null when never touched (inherits agent defaults fully). */
30176
30493
  getCameraSettings: method(object({ deviceId: number() }), CameraPipelineSettingsSchema.nullable()),
30177
30494
  /** Set or clear the 3-state toggle for one (camera, addonId). Pass `enabled: null` to clear and revert to agent default. */
@@ -46444,6 +46761,16 @@ function tryConvertUnit(value, from, to) {
46444
46761
  return fromCanonical(toCanonical(value, fromSpec), toSpec);
46445
46762
  }
46446
46763
  SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
46764
+ Object.freeze({
46765
+ person: .5,
46766
+ vehicle: .5,
46767
+ animal: .5
46768
+ });
46769
+ Object.freeze({
46770
+ person: .65,
46771
+ vehicle: .65,
46772
+ animal: .65
46773
+ });
46447
46774
  /**
46448
46775
  * Most specific first. Extending this list is how a new device kind becomes
46449
46776
  * gateable; nothing else needs to change.
@@ -51015,6 +51342,12 @@ Object.freeze({
51015
51342
  addonId: null,
51016
51343
  access: "delete"
51017
51344
  },
51345
+ "pipelineExecutor.clearModelBoundDeviceOverrides": {
51346
+ capName: "pipeline-executor",
51347
+ capScope: "system",
51348
+ addonId: null,
51349
+ access: "delete"
51350
+ },
51018
51351
  "pipelineExecutor.deleteModel": {
51019
51352
  capName: "pipeline-executor",
51020
51353
  capScope: "system",
@@ -51231,6 +51564,12 @@ Object.freeze({
51231
51564
  addonId: null,
51232
51565
  access: "view"
51233
51566
  },
51567
+ "pipelineOrchestrator.applyBestSettings": {
51568
+ capName: "pipeline-orchestrator",
51569
+ capScope: "system",
51570
+ addonId: null,
51571
+ access: "create"
51572
+ },
51234
51573
  "pipelineOrchestrator.applyDeviceSettingsPatch": {
51235
51574
  capName: "pipeline-orchestrator",
51236
51575
  capScope: "system",
@@ -51405,6 +51744,12 @@ Object.freeze({
51405
51744
  addonId: null,
51406
51745
  access: "create"
51407
51746
  },
51747
+ "pipelineOrchestrator.planBestSettings": {
51748
+ capName: "pipeline-orchestrator",
51749
+ capScope: "system",
51750
+ addonId: null,
51751
+ access: "view"
51752
+ },
51408
51753
  "pipelineOrchestrator.rebalance": {
51409
51754
  capName: "pipeline-orchestrator",
51410
51755
  capScope: "system",
@@ -57003,6 +57348,11 @@ Object.freeze({
57003
57348
  form: "single",
57004
57349
  optional: false
57005
57350
  }],
57351
+ "pipelineExecutor.clearModelBoundDeviceOverrides": [{
57352
+ name: "deviceIds",
57353
+ form: "array",
57354
+ optional: true
57355
+ }],
57006
57356
  "pipelineExecutor.runPipeline": [{
57007
57357
  name: "deviceId",
57008
57358
  form: "single",
@@ -1,5 +1,5 @@
1
1
  import { b as e, g as t, l as n, u as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C5jUMd7X.mjs";
2
- import { c as i, s as a } from "./responsive-DkeTfJj6.mjs";
2
+ import { c as i, s as a } from "./responsive-OY2AYs2K.mjs";
3
3
  import { n as o, r as s, t as c } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
4
4
  var l = i("chevron-down", [["path", {
5
5
  d: "m6 9 6 6 6-6",
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-5lxDThy0.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-Ga9h-wWR.mjs";
2
2
  export { t as get, e as init };
@@ -1,6 +1,6 @@
1
1
  import { _ as e, b as t, c as n, g as r, l as i, m as a, n as o, r as s, t as c, u as l } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C5jUMd7X.mjs";
2
2
  import "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DalfdIDw.mjs";
3
- import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BPGj9pUC.mjs";
3
+ import { i as u } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-D4hHi1KB.mjs";
4
4
  //#region ../../node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
5
5
  t();
6
6
  var d = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), f = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), p = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), m = (e) => {
@@ -1,5 +1,5 @@
1
1
  import { b as e, c as t, g as n, m as r } from "./_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare__react__loadShare__.js-C5jUMd7X.mjs";
2
- import { c as i } from "./responsive-DkeTfJj6.mjs";
2
+ import { c as i } from "./responsive-OY2AYs2K.mjs";
3
3
  var a = i("camera", [["path", {
4
4
  d: "M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",
5
5
  key: "18u6gg"
@@ -1,4 +1,4 @@
1
- import { c as e } from "./responsive-DkeTfJj6.mjs";
1
+ import { c as e } from "./responsive-OY2AYs2K.mjs";
2
2
  var t = e("eye-off", [
3
3
  ["path", {
4
4
  d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
@@ -1,4 +1,4 @@
1
- import { c as e } from "./responsive-DkeTfJj6.mjs";
1
+ import { c as e } from "./responsive-OY2AYs2K.mjs";
2
2
  var t = e("trash-2", [
3
3
  ["path", {
4
4
  d: "M10 11v6",
@@ -2753,7 +2753,7 @@ async function rr(e) {
2753
2753
  }
2754
2754
  }
2755
2755
  async function ir() {
2756
- return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-DooJvhL_.mjs")).catch((e) => {
2756
+ return tr ||= rr(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-odNWYe2P.mjs")).catch((e) => {
2757
2757
  throw tr = void 0, e;
2758
2758
  }), tr;
2759
2759
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-osd-manager",
3
- "version": "0.1.178",
3
+ "version": "0.1.180",
4
4
  "description": "Binds camera on-screen-display slots to live state and recognitions",
5
5
  "keywords": [
6
6
  "camstack",