@camstack/addon-training 0.1.47 → 0.1.49
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.
- package/dist/{MaskShapeCanvas-Kfg9dl6B.mjs → MaskShapeCanvas-HNL0xNpy.mjs} +229 -228
- package/dist/MotionZonesSettings-B1g6IUfQ.mjs +291 -0
- package/dist/PrivacyMaskSettings-D4WRZZeD.mjs +339 -0
- package/dist/{ReactKonva-DGuYUN0L.mjs → ReactKonva-DzGysLZQ.mjs} +28 -28
- package/dist/SceneMonitorEditor-pYZfyXtn.mjs +825 -0
- package/dist/_stub.js +11562 -10221
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-cOIklMU6.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-OY71DavC.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BVsoOuTM.mjs +26 -0
- package/dist/{_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-DeDbF7NI.mjs → _virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs} +1 -1
- package/dist/addon-training.css +1 -1
- package/dist/{chevron-right-D3StkdcR.mjs → chevron-right-cA8Hucbi.mjs} +1 -1
- package/dist/{createLucideIcon-CPP1Jzoz.mjs → createLucideIcon-C0bBNRpC.mjs} +8 -8
- package/dist/{dist-CCnnaqt1.mjs → dist-D-7oMcBM.mjs} +198 -9
- package/dist/{dist-BUzSmOA3.js → dist-DvgVhVUN.js} +198 -9
- package/dist/{grid-2x2-Yngdckwo.mjs → grid-2x2-CHuMzRxF.mjs} +1 -1
- package/dist/{hostInit-v495uwvg.mjs → hostInit-B3DR-ujG.mjs} +3 -3
- package/dist/{icons-C4_Ji5S0.mjs → icons-BwkaMam3.mjs} +9 -9
- package/dist/index.js +1 -1
- package/dist/{mic-off-DPNSd6G7.mjs → mic-off-2uHAsVtR.mjs} +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-DXTsKpgo.mjs → player-overlays-B4V_uIvb.mjs} +25 -25
- package/dist/providers/modal/training-modal.addon.js +1 -1
- package/dist/providers/modal/training-modal.addon.mjs +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-Cfmds8tw.mjs → responsive-1iwc-rj2.mjs} +26 -26
- package/dist/{rotate-ccw-Dak-lXgZ.mjs → rotate-ccw-Cu6tGrgG.mjs} +1 -1
- package/dist/scene-monitor-copy-Cqfs4Vng.mjs +176 -0
- package/dist/{settings-2-Cgiv3kQb.mjs → settings-2-xV0I5Y5U.mjs} +1 -1
- package/dist/{square-B_679zIX.mjs → square-ZPUterXM.mjs} +1 -1
- package/dist/{trash-2-DC8LDYlI.mjs → trash-2-BKfuhsgY.mjs} +1 -1
- package/dist/ui-text-CqJgUCKX.mjs +34 -0
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CdlOqgkp.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Dk6Nf5b3.mjs} +1 -1
- package/dist/{zoom-out-BJoVDYa3.mjs → zoom-out-DDZCsqkQ.mjs} +1 -1
- package/package.json +1 -1
- package/dist/MotionZonesSettings-15Lfyz9l.mjs +0 -292
- package/dist/PrivacyMaskSettings-CAyzlGjl.mjs +0 -348
- package/dist/SceneMonitorEditor-D49_o83T.mjs +0 -810
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Cn2OEGrR.mjs +0 -26
- package/dist/scene-monitor-copy-DX2u-htD.mjs +0 -136
|
@@ -5420,7 +5420,7 @@ var ZodIssueCode = {
|
|
|
5420
5420
|
var ZodFirstPartyTypeKind;
|
|
5421
5421
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5422
5422
|
//#endregion
|
|
5423
|
-
//#region ../types/dist/sleep-
|
|
5423
|
+
//#region ../types/dist/sleep-DRqxtc0C.mjs
|
|
5424
5424
|
/**
|
|
5425
5425
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5426
5426
|
* window to float samples (D455).
|
|
@@ -8188,8 +8188,12 @@ method(object({ deviceId: number() }), array(StreamSourceEntrySchema)), method(o
|
|
|
8188
8188
|
kind: "mutation",
|
|
8189
8189
|
auth: "admin"
|
|
8190
8190
|
}), method(object({ deviceId: number() }), unknown().nullable()), method(object({ deviceId: number() }), RawStateResultSchema.nullable(), { auth: "protected" });
|
|
8191
|
+
object({
|
|
8192
|
+
code: string().regex(/^[a-z][a-z0-9-]*(\.[a-z0-9-]+)+$/),
|
|
8193
|
+
params: record(string(), union([string(), number()])).optional()
|
|
8194
|
+
});
|
|
8191
8195
|
//#endregion
|
|
8192
|
-
//#region ../types/dist/err-msg-
|
|
8196
|
+
//#region ../types/dist/err-msg-DLerKiVO.mjs
|
|
8193
8197
|
var DeviceType = /* @__PURE__ */ function(DeviceType) {
|
|
8194
8198
|
DeviceType["Camera"] = "camera";
|
|
8195
8199
|
DeviceType["Hub"] = "hub";
|
|
@@ -8439,6 +8443,22 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8439
8443
|
DeviceRole["Nightvision"] = "nightvision";
|
|
8440
8444
|
DeviceRole["PrivacyMask"] = "privacy-mask";
|
|
8441
8445
|
DeviceRole["Doorbell"] = "doorbell";
|
|
8446
|
+
/** Interior blind / shade / roller blind. HA `device_class: blind|shade`. */
|
|
8447
|
+
DeviceRole["CoverBlind"] = "cover-blind";
|
|
8448
|
+
/** Exterior roller shutter. HA `device_class: shutter`; Homematic BROLL. */
|
|
8449
|
+
DeviceRole["CoverShutter"] = "cover-shutter";
|
|
8450
|
+
/** Exterior awning. HA `device_class: awning`. */
|
|
8451
|
+
DeviceRole["CoverAwning"] = "cover-awning";
|
|
8452
|
+
/** Curtain / drape. HA `device_class: curtain`. */
|
|
8453
|
+
DeviceRole["CoverCurtain"] = "cover-curtain";
|
|
8454
|
+
/** Garage door. HA `device_class: garage`. A security actuator: exports gate it. */
|
|
8455
|
+
DeviceRole["CoverGarage"] = "cover-garage";
|
|
8456
|
+
/** Gate. HA `device_class: gate`. A security actuator: exports gate it. */
|
|
8457
|
+
DeviceRole["CoverGate"] = "cover-gate";
|
|
8458
|
+
/** Door. HA `device_class: door`. A security actuator: exports gate it. */
|
|
8459
|
+
DeviceRole["CoverDoor"] = "cover-door";
|
|
8460
|
+
/** Window. HA `device_class: window`. */
|
|
8461
|
+
DeviceRole["CoverWindow"] = "cover-window";
|
|
8442
8462
|
/** Virtual HA toggle (input_boolean.*) — distinguishable from a
|
|
8443
8463
|
* real Switch device for UI rendering / export adapters. */
|
|
8444
8464
|
DeviceRole["BinaryHelper"] = "binary-helper";
|
|
@@ -8509,7 +8529,7 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
8509
8529
|
return DeviceRole;
|
|
8510
8530
|
}({});
|
|
8511
8531
|
//#endregion
|
|
8512
|
-
//#region ../types/dist/composition-
|
|
8532
|
+
//#region ../types/dist/composition-EQ9Ok0Ee.mjs
|
|
8513
8533
|
/**
|
|
8514
8534
|
* The ffmpeg build every CamStack node downloads, per platform and arch.
|
|
8515
8535
|
*
|
|
@@ -11731,11 +11751,10 @@ var ClipModelMetaSchema = object({
|
|
|
11731
11751
|
/**
|
|
11732
11752
|
* The `vector-store` index this model's vectors live in. ONE feature space
|
|
11733
11753
|
* per index: two models share an index only when their vectors are ranked
|
|
11734
|
-
* against each other, which for CLIP means never across families.
|
|
11735
|
-
*
|
|
11736
|
-
* `modelId`); any other model gets its own.
|
|
11754
|
+
* against each other, which for CLIP means never across families. Every
|
|
11755
|
+
* model gets its own.
|
|
11737
11756
|
*/
|
|
11738
|
-
vectorIndex: string().regex(/^object-clip
|
|
11757
|
+
vectorIndex: string().regex(/^object-clip-[a-z0-9][a-z0-9-]*$/),
|
|
11739
11758
|
/**
|
|
11740
11759
|
* The text encoder's tokenizer, a declared SIBLING file of its onnx. The name
|
|
11741
11760
|
* must be unique per tokenizer: every model's siblings land in ONE flat
|
|
@@ -12204,7 +12223,8 @@ var ConvertResultSchema = object({
|
|
|
12204
12223
|
})).readonly()
|
|
12205
12224
|
});
|
|
12206
12225
|
_enum(["new-session", "step-up"]);
|
|
12207
|
-
|
|
12226
|
+
/** The languages the hub's app landing pages are written in (D858). */
|
|
12227
|
+
var AppPageLangSchema = _enum(["en", "it"]);
|
|
12208
12228
|
/** How a native app starts one login method (D858), as `auth.listLoginMethods` reports it. */
|
|
12209
12229
|
var AppLoginPathSchema = discriminatedUnion("kind", [object({ kind: literal("native") }), object({
|
|
12210
12230
|
kind: literal("browser"),
|
|
@@ -12718,7 +12738,9 @@ var ConfigTabDeclarationSchema = object({
|
|
|
12718
12738
|
var ConfigSectionWithValuesSchema = object({
|
|
12719
12739
|
id: string(),
|
|
12720
12740
|
title: string(),
|
|
12741
|
+
titleKey: string().optional(),
|
|
12721
12742
|
description: string().optional(),
|
|
12743
|
+
descriptionKey: string().optional(),
|
|
12722
12744
|
style: _enum(["card", "accordion"]).optional(),
|
|
12723
12745
|
defaultCollapsed: boolean().optional(),
|
|
12724
12746
|
columns: union([
|
|
@@ -15944,6 +15966,9 @@ method(object({
|
|
|
15944
15966
|
}), method(object({ refs: RefListSchema }), KeychainResolveResultSchema, { auth: "admin" }), method(object({ refs: RefListSchema }), object({ deleted: number().int() }), {
|
|
15945
15967
|
kind: "mutation",
|
|
15946
15968
|
auth: "admin"
|
|
15969
|
+
}), method(object({ deviceId: number().int() }), object({ refs: array(string()).readonly() }), {
|
|
15970
|
+
kind: "mutation",
|
|
15971
|
+
auth: "admin"
|
|
15947
15972
|
}), method(object({}), array(KeychainSecretMetaSchema).readonly(), { auth: "admin" }), method(object({}), KeychainStateSchema, { auth: "admin" });
|
|
15948
15973
|
/**
|
|
15949
15974
|
* device-history — the ONE mechanism for numeric history (D850).
|
|
@@ -37347,6 +37372,38 @@ var DeviceRegisterPayloadSchema = object({
|
|
|
37347
37372
|
* omits it and the keyword backstop applies. */
|
|
37348
37373
|
secretConfigPaths: array(string()).optional()
|
|
37349
37374
|
});
|
|
37375
|
+
/** One deleted device, kept by device-manager so an addon that missed the
|
|
37376
|
+
* deletion can still learn of it (D865). Written by the delete path ONLY. */
|
|
37377
|
+
var DeviceTombstoneSchema = object({
|
|
37378
|
+
deviceId: number().int().positive(),
|
|
37379
|
+
/** Epoch ms the device was deleted. */
|
|
37380
|
+
deletedAt: number(),
|
|
37381
|
+
/** The addon that owned the device when it was deleted. */
|
|
37382
|
+
providerAddonId: string()
|
|
37383
|
+
});
|
|
37384
|
+
/** Data held for one device that device-manager no longer knows. */
|
|
37385
|
+
var OrphanDeviceDataSchema = object({
|
|
37386
|
+
deviceId: number().int().positive(),
|
|
37387
|
+
/** Rows/files per store (`<addonId>:<store>`). */
|
|
37388
|
+
stores: record(string(), number().int().nonnegative())
|
|
37389
|
+
});
|
|
37390
|
+
var CleanupDeletedDevicesResultSchema = object({
|
|
37391
|
+
/**
|
|
37392
|
+
* `skipped` — the absence check could not be trusted (a device-list read
|
|
37393
|
+
* failed or the two reads disagreed); nothing was listed or deleted.
|
|
37394
|
+
* `dry-run` — `devices` is what a confirmed run would delete.
|
|
37395
|
+
* `cleaned` — `devices` is what was deleted.
|
|
37396
|
+
*/
|
|
37397
|
+
status: _enum([
|
|
37398
|
+
"skipped",
|
|
37399
|
+
"dry-run",
|
|
37400
|
+
"cleaned"
|
|
37401
|
+
]),
|
|
37402
|
+
reason: string().nullable(),
|
|
37403
|
+
devices: array(OrphanDeviceDataSchema),
|
|
37404
|
+
/** Implementers that could not be asked (their stores are not in `devices`). */
|
|
37405
|
+
unreachable: array(string())
|
|
37406
|
+
});
|
|
37350
37407
|
var DeviceRemovePayloadSchema = object({ deviceId: number() });
|
|
37351
37408
|
var DevicePersistConfigPayloadSchema = object({
|
|
37352
37409
|
deviceId: number(),
|
|
@@ -37585,6 +37642,9 @@ method(object({
|
|
|
37585
37642
|
}), method(object({ deviceId: number() }), object({ success: literal(true) }), {
|
|
37586
37643
|
kind: "mutation",
|
|
37587
37644
|
auth: "admin"
|
|
37645
|
+
}), method(object({ sinceMs: number() }), array(DeviceTombstoneSchema).readonly(), { auth: "admin" }), method(object({ confirm: boolean() }), CleanupDeletedDevicesResultSchema, {
|
|
37646
|
+
kind: "mutation",
|
|
37647
|
+
auth: "admin"
|
|
37588
37648
|
}), method(object({ integrationId: string() }), object({ removed: number() }), {
|
|
37589
37649
|
kind: "mutation",
|
|
37590
37650
|
auth: "admin"
|
|
@@ -38047,6 +38107,72 @@ method(object({
|
|
|
38047
38107
|
auth: "admin"
|
|
38048
38108
|
});
|
|
38049
38109
|
/**
|
|
38110
|
+
* `device-removal-hook` — the reliable way an addon learns a device was DELETED,
|
|
38111
|
+
* so it can delete what it keeps for that device (D865).
|
|
38112
|
+
*
|
|
38113
|
+
* ## Why an event was not enough
|
|
38114
|
+
*
|
|
38115
|
+
* `DeviceUnregistered` is telemetry and may be dropped (D8, D11). An addon that
|
|
38116
|
+
* hung its per-device clean-up on it left durable garbage whenever the event was
|
|
38117
|
+
* lost, the addon was down, or it was restarting at that moment — footage,
|
|
38118
|
+
* analytics rows and settings of device 4483 outlived the device. Loss of this
|
|
38119
|
+
* signal corrupts durable state, so it travels by RPC with a recorded fact
|
|
38120
|
+
* behind it (D8: "if loss would corrupt durable state, use RPC plus a reconcile").
|
|
38121
|
+
*
|
|
38122
|
+
* ## The three pieces
|
|
38123
|
+
*
|
|
38124
|
+
* 1. device-manager records a TOMBSTONE per deleted device
|
|
38125
|
+
* (`deviceManager.listDeletedSince`). The tombstone is written by the delete
|
|
38126
|
+
* path only — a device that is unregistered, offline or whose provider is
|
|
38127
|
+
* restarting is NOT deleted and gets none.
|
|
38128
|
+
* 2. After a delete, device-manager calls `onDeviceRemoved` on EVERY provider of
|
|
38129
|
+
* this collection, one by one, with bounded retries, logged.
|
|
38130
|
+
* 3. An implementer that was down asks `deviceManager.listDeletedSince` at start
|
|
38131
|
+
* (and periodically) and runs its own `onDeviceRemoved` for each tombstone it
|
|
38132
|
+
* may have missed. Reconcile is driven by tombstones, never by "the device is
|
|
38133
|
+
* not in the current list": a failed or partial list read must not destroy data.
|
|
38134
|
+
*
|
|
38135
|
+
* ## Contract for an implementer
|
|
38136
|
+
*
|
|
38137
|
+
* - **Idempotent.** It is called again by a retry, by a reconcile and by the
|
|
38138
|
+
* admin cleanup of data that predates tombstones. A device with nothing left
|
|
38139
|
+
* answers zero counts.
|
|
38140
|
+
* - **One key per store** in `counts`, deleted rows/files per store, so the log
|
|
38141
|
+
* line and the admin dry run can say where the data was.
|
|
38142
|
+
* - **Training datasets are NOT device data** and are never deleted by a hook.
|
|
38143
|
+
* - **Per-device SETTINGS are not hooked.** Configuration lives in the standard
|
|
38144
|
+
* per-device store (`ctx.settings.*DeviceStore`), which device-manager clears
|
|
38145
|
+
* for every addon centrally at delete time. This hook is for device DATA
|
|
38146
|
+
* that is not settings: footage, event media, analytics rows, history.
|
|
38147
|
+
* - A provider that cannot tell is allowed to throw; the caller retries it.
|
|
38148
|
+
*
|
|
38149
|
+
* `listDeviceData` is the read side of the admin "Clean data of deleted devices"
|
|
38150
|
+
* action: which device ids this addon holds data for, and how much per store. It
|
|
38151
|
+
* never deletes. device-manager decides which of those ids are absent from the
|
|
38152
|
+
* fleet, from TWO consistent reads of the device list (D49).
|
|
38153
|
+
*/
|
|
38154
|
+
/** What a hook is told about the deletion. */
|
|
38155
|
+
var DeviceRemovedInputSchema = object({
|
|
38156
|
+
deviceId: number().int().positive(),
|
|
38157
|
+
/** Epoch ms the device was deleted (the tombstone's `deletedAt`). */
|
|
38158
|
+
deletedAt: number(),
|
|
38159
|
+
/** The addon that owned the device, as device-manager last knew it. */
|
|
38160
|
+
providerAddonId: string()
|
|
38161
|
+
});
|
|
38162
|
+
/** Rows/files/refs deleted, per store this implementer owns. */
|
|
38163
|
+
var DeviceRemovedResultSchema = object({ counts: record(string(), number().int().nonnegative()) });
|
|
38164
|
+
/** One (store, device) pair an implementer holds data for. */
|
|
38165
|
+
var DeviceDataEntrySchema = object({
|
|
38166
|
+
store: string(),
|
|
38167
|
+
deviceId: number().int().positive(),
|
|
38168
|
+
/** Rows (or files) held for the device in the store. */
|
|
38169
|
+
count: number().int().nonnegative()
|
|
38170
|
+
});
|
|
38171
|
+
method(DeviceRemovedInputSchema, DeviceRemovedResultSchema, {
|
|
38172
|
+
kind: "mutation",
|
|
38173
|
+
auth: "admin"
|
|
38174
|
+
}), method(_void(), array(DeviceDataEntrySchema).readonly(), { auth: "admin" });
|
|
38175
|
+
/**
|
|
38050
38176
|
* `failure-contribution` — the capability an addon reports its OWN losses
|
|
38051
38177
|
* through, per camera, with the denominator attached. It stores nothing.
|
|
38052
38178
|
*
|
|
@@ -54566,7 +54692,19 @@ var TlsStatusSchema = object({
|
|
|
54566
54692
|
sans: array(string()),
|
|
54567
54693
|
caCertPem: string().nullable(),
|
|
54568
54694
|
reissueError: string().nullable(),
|
|
54569
|
-
restartRequired: boolean()
|
|
54695
|
+
restartRequired: boolean(),
|
|
54696
|
+
/** An uploaded certificate is served but no CA is kept for it and it is not publicly signed (D873). */
|
|
54697
|
+
caMissing: boolean(),
|
|
54698
|
+
/** Does the hub's own generated CA carry a critical name constraint? `null` while it has none. */
|
|
54699
|
+
localCaConstrained: boolean().nullable(),
|
|
54700
|
+
/** ISO time the generated CA was replaced by a constrained one; devices must re-download it. */
|
|
54701
|
+
caReplacedAt: string().nullable(),
|
|
54702
|
+
/** The uploaded certificate kept on disk, selectable again after "Revert to generated". */
|
|
54703
|
+
storedUpload: object({
|
|
54704
|
+
leafFingerprintSha256: string(),
|
|
54705
|
+
validTo: string(),
|
|
54706
|
+
hasCa: boolean()
|
|
54707
|
+
}).nullable()
|
|
54570
54708
|
});
|
|
54571
54709
|
method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
|
|
54572
54710
|
/**
|
|
@@ -54622,6 +54760,9 @@ method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(obje
|
|
|
54622
54760
|
}), method(_void(), object({ pem: string() })), method(_void(), TlsStatusSchema, {
|
|
54623
54761
|
kind: "mutation",
|
|
54624
54762
|
auth: "admin"
|
|
54763
|
+
}), method(_void(), TlsStatusSchema, {
|
|
54764
|
+
kind: "mutation",
|
|
54765
|
+
auth: "admin"
|
|
54625
54766
|
});
|
|
54626
54767
|
object({
|
|
54627
54768
|
/** Lifecycle state of the lock. `jammed` means the motor reported
|
|
@@ -62646,6 +62787,12 @@ Object.freeze({
|
|
|
62646
62787
|
addonId: null,
|
|
62647
62788
|
access: "create"
|
|
62648
62789
|
},
|
|
62790
|
+
"deviceManager.cleanupDeletedDevicesData": {
|
|
62791
|
+
capName: "device-manager",
|
|
62792
|
+
capScope: "system",
|
|
62793
|
+
addonId: null,
|
|
62794
|
+
access: "create"
|
|
62795
|
+
},
|
|
62649
62796
|
"deviceManager.createDevice": {
|
|
62650
62797
|
capName: "device-manager",
|
|
62651
62798
|
capScope: "system",
|
|
@@ -62826,6 +62973,12 @@ Object.freeze({
|
|
|
62826
62973
|
addonId: null,
|
|
62827
62974
|
access: "view"
|
|
62828
62975
|
},
|
|
62976
|
+
"deviceManager.listDeletedSince": {
|
|
62977
|
+
capName: "device-manager",
|
|
62978
|
+
capScope: "system",
|
|
62979
|
+
addonId: null,
|
|
62980
|
+
access: "view"
|
|
62981
|
+
},
|
|
62829
62982
|
"deviceManager.listDeviceIdsByCaps": {
|
|
62830
62983
|
capName: "device-manager",
|
|
62831
62984
|
capScope: "system",
|
|
@@ -63234,6 +63387,18 @@ Object.freeze({
|
|
|
63234
63387
|
addonId: null,
|
|
63235
63388
|
access: "create"
|
|
63236
63389
|
},
|
|
63390
|
+
"deviceRemovalHook.listDeviceData": {
|
|
63391
|
+
capName: "device-removal-hook",
|
|
63392
|
+
capScope: "system",
|
|
63393
|
+
addonId: null,
|
|
63394
|
+
access: "view"
|
|
63395
|
+
},
|
|
63396
|
+
"deviceRemovalHook.onDeviceRemoved": {
|
|
63397
|
+
capName: "device-removal-hook",
|
|
63398
|
+
capScope: "system",
|
|
63399
|
+
addonId: null,
|
|
63400
|
+
access: "create"
|
|
63401
|
+
},
|
|
63237
63402
|
"deviceState.claimFields": {
|
|
63238
63403
|
capName: "device-state",
|
|
63239
63404
|
capScope: "system",
|
|
@@ -63666,6 +63831,12 @@ Object.freeze({
|
|
|
63666
63831
|
addonId: null,
|
|
63667
63832
|
access: "delete"
|
|
63668
63833
|
},
|
|
63834
|
+
"keychain.deleteDeviceScope": {
|
|
63835
|
+
capName: "keychain",
|
|
63836
|
+
capScope: "system",
|
|
63837
|
+
addonId: null,
|
|
63838
|
+
access: "delete"
|
|
63839
|
+
},
|
|
63669
63840
|
"keychain.getState": {
|
|
63670
63841
|
capName: "keychain",
|
|
63671
63842
|
capScope: "system",
|
|
@@ -64104,6 +64275,12 @@ Object.freeze({
|
|
|
64104
64275
|
addonId: null,
|
|
64105
64276
|
access: "create"
|
|
64106
64277
|
},
|
|
64278
|
+
"localNetwork.useStoredUploadedCertificate": {
|
|
64279
|
+
capName: "local-network",
|
|
64280
|
+
capScope: "system",
|
|
64281
|
+
addonId: null,
|
|
64282
|
+
access: "create"
|
|
64283
|
+
},
|
|
64107
64284
|
"lockControl.getStatus": {
|
|
64108
64285
|
capName: "lock-control",
|
|
64109
64286
|
capScope: "device",
|
|
@@ -69678,6 +69855,11 @@ Object.freeze({
|
|
|
69678
69855
|
form: "single",
|
|
69679
69856
|
optional: false
|
|
69680
69857
|
}],
|
|
69858
|
+
"deviceRemovalHook.onDeviceRemoved": [{
|
|
69859
|
+
name: "deviceId",
|
|
69860
|
+
form: "single",
|
|
69861
|
+
optional: false
|
|
69862
|
+
}],
|
|
69681
69863
|
"deviceState.claimFields": [{
|
|
69682
69864
|
name: "deviceId",
|
|
69683
69865
|
form: "single",
|
|
@@ -69867,6 +70049,11 @@ Object.freeze({
|
|
|
69867
70049
|
form: "single",
|
|
69868
70050
|
optional: false
|
|
69869
70051
|
}],
|
|
70052
|
+
"keychain.deleteDeviceScope": [{
|
|
70053
|
+
name: "deviceId",
|
|
70054
|
+
form: "single",
|
|
70055
|
+
optional: false
|
|
70056
|
+
}],
|
|
69870
70057
|
"lawnMowerControl.dock": [{
|
|
69871
70058
|
name: "deviceId",
|
|
69872
70059
|
form: "single",
|
|
@@ -72215,6 +72402,8 @@ new Set([
|
|
|
72215
72402
|
"audio-tools",
|
|
72216
72403
|
"audio-silence"
|
|
72217
72404
|
]);
|
|
72405
|
+
AppPageLangSchema.options;
|
|
72406
|
+
record(string().min(1), string());
|
|
72218
72407
|
/**
|
|
72219
72408
|
* TimelapseRule — the STANDALONE scheduled timelapse producer's rule model.
|
|
72220
72409
|
*
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.375",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
singleton: !0,
|
|
@@ -45,7 +45,7 @@ async function r() {
|
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
47
|
"@camstack/sdk": {
|
|
48
|
-
version: "1.2.
|
|
48
|
+
version: "1.2.132",
|
|
49
49
|
scope: "default",
|
|
50
50
|
shareConfig: {
|
|
51
51
|
singleton: !0,
|
|
@@ -81,7 +81,7 @@ async function r() {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"@camstack/ui-library": {
|
|
84
|
-
version: "1.2.
|
|
84
|
+
version: "1.2.293",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { t as e } from "./createLucideIcon-
|
|
2
|
-
import { $ as t, $n as n, $t as r, A as i, An as a, At as o, B as s, Bn as c, Bt as l, C as u, Cn as d, Ct as f, D as p, Dn as m, Dt as h, E as g, En as _, Et as v, F as y, Fn as b, Ft as x, G as S, Gn as C, Gt as w, H as T, Hn as E, Ht as D, I as O, In as k, It as A, J as j, Jn as M, Jt as N, K as P, Kn as F, Kt as I, L, Ln as R, Lt as z, M as B, Mn as V, Mt as H, N as U, Nn as W, Nt as G, O as K, On as q, Ot as J, P as Y, Pn as X, Pt as Z, Q, Qn as $, Qt as ee, R as te, Rn as ne, Rt as re, S as ie, Sn as ae, St as oe, T as se, Tn as ce, Tt as le, U as ue, Un as de, Ut as fe, V as pe, Vn as me, Vt as he, W as ge, Wn as _e, Wt as ve, X as ye, Xn as be, Xt as xe, Y as Se, Yn as Ce, Yt as we, Z as Te, Zn as Ee, Zt as De, _ as Oe, _n as ke, _t as Ae, a as je, an as Me, ar as Ne, at as Pe, b as Fe, bn as Ie, bt as Le, c as Re, cn as ze, cr as Be, ct as Ve, d as He, dn as Ue, dr as We, dt as Ge, en as Ke, er as qe, et as Je, f as Ye, fn as Xe, fr as Ze, ft as Qe, g as $e, gn as et, gt as tt, h as nt, hn as rt, ht as it, i as at, in as ot, ir as st, it as ct, j as lt, jn as ut, jt as dt, k as ft, kn as pt, kt as mt, l as ht, ln as gt, lr as _t, lt as vt, m as yt, mn as bt, mt as xt, n as St, nn as Ct, nr as wt, nt as Tt, o as Et, on as Dt, or as Ot, ot as kt, p as At, pn as jt, pt as Mt, q as Nt, qn as Pt, qt as Ft, r as It, rn as Lt, rr as Rt, rt as zt, s as Bt, sn as Vt, sr as Ht, st as Ut, t as Wt, tn as Gt, tr as Kt, tt as qt, u as Jt, un as Yt, ur as Xt, ut as Zt, v as Qt, vn as $t, vt as en, w as tn, wn as nn, wt as rn, x as an, xn as on, xt as sn, y as cn, yn as ln, yt as un, z as dn, zn as fn, zt as pn } from "./zoom-out-
|
|
3
|
-
import { n as mn, r as hn, t as gn } from "./rotate-ccw-
|
|
4
|
-
import { n as _n, t as vn } from "./chevron-right-
|
|
5
|
-
import { n as yn, r as bn, t as xn } from "./square-
|
|
6
|
-
import { t as Sn } from "./grid-2x2-
|
|
7
|
-
import { n as Cn, t as wn } from "./mic-off-
|
|
8
|
-
import { t as Tn } from "./settings-2-
|
|
9
|
-
import { t as En } from "./trash-2-
|
|
1
|
+
import { t as e } from "./createLucideIcon-C0bBNRpC.mjs";
|
|
2
|
+
import { $ as t, $n as n, $t as r, A as i, An as a, At as o, B as s, Bn as c, Bt as l, C as u, Cn as d, Ct as f, D as p, Dn as m, Dt as h, E as g, En as _, Et as v, F as y, Fn as b, Ft as x, G as S, Gn as C, Gt as w, H as T, Hn as E, Ht as D, I as O, In as k, It as A, J as j, Jn as M, Jt as N, K as P, Kn as F, Kt as I, L, Ln as R, Lt as z, M as B, Mn as V, Mt as H, N as U, Nn as W, Nt as G, O as K, On as q, Ot as J, P as Y, Pn as X, Pt as Z, Q, Qn as $, Qt as ee, R as te, Rn as ne, Rt as re, S as ie, Sn as ae, St as oe, T as se, Tn as ce, Tt as le, U as ue, Un as de, Ut as fe, V as pe, Vn as me, Vt as he, W as ge, Wn as _e, Wt as ve, X as ye, Xn as be, Xt as xe, Y as Se, Yn as Ce, Yt as we, Z as Te, Zn as Ee, Zt as De, _ as Oe, _n as ke, _t as Ae, a as je, an as Me, ar as Ne, at as Pe, b as Fe, bn as Ie, bt as Le, c as Re, cn as ze, cr as Be, ct as Ve, d as He, dn as Ue, dr as We, dt as Ge, en as Ke, er as qe, et as Je, f as Ye, fn as Xe, fr as Ze, ft as Qe, g as $e, gn as et, gt as tt, h as nt, hn as rt, ht as it, i as at, in as ot, ir as st, it as ct, j as lt, jn as ut, jt as dt, k as ft, kn as pt, kt as mt, l as ht, ln as gt, lr as _t, lt as vt, m as yt, mn as bt, mt as xt, n as St, nn as Ct, nr as wt, nt as Tt, o as Et, on as Dt, or as Ot, ot as kt, p as At, pn as jt, pt as Mt, q as Nt, qn as Pt, qt as Ft, r as It, rn as Lt, rr as Rt, rt as zt, s as Bt, sn as Vt, sr as Ht, st as Ut, t as Wt, tn as Gt, tr as Kt, tt as qt, u as Jt, un as Yt, ur as Xt, ut as Zt, v as Qt, vn as $t, vt as en, w as tn, wn as nn, wt as rn, x as an, xn as on, xt as sn, y as cn, yn as ln, yt as un, z as dn, zn as fn, zt as pn } from "./zoom-out-DDZCsqkQ.mjs";
|
|
3
|
+
import { n as mn, r as hn, t as gn } from "./rotate-ccw-Cu6tGrgG.mjs";
|
|
4
|
+
import { n as _n, t as vn } from "./chevron-right-cA8Hucbi.mjs";
|
|
5
|
+
import { n as yn, r as bn, t as xn } from "./square-ZPUterXM.mjs";
|
|
6
|
+
import { t as Sn } from "./grid-2x2-CHuMzRxF.mjs";
|
|
7
|
+
import { n as Cn, t as wn } from "./mic-off-2uHAsVtR.mjs";
|
|
8
|
+
import { t as Tn } from "./settings-2-xV0I5Y5U.mjs";
|
|
9
|
+
import { t as En } from "./trash-2-BKfuhsgY.mjs";
|
|
10
10
|
var Dn = e("a-arrow-down", [
|
|
11
11
|
["path", {
|
|
12
12
|
d: "m14 12 4 4 4-4",
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
require("./dist-
|
|
2
|
+
require("./dist-DvgVhVUN.js");
|
|
3
3
|
const require_orchestrator_training_addon = require("./orchestrator/training.addon.js");
|
|
4
4
|
const require_providers_modal_training_modal_addon = require("./providers/modal/training-modal.addon.js");
|
|
5
5
|
//#region src/providers/fake/fake-provider.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as e } from "./createLucideIcon-
|
|
1
|
+
import { t as e } from "./createLucideIcon-C0bBNRpC.mjs";
|
|
2
2
|
var t = e("hexagon", [["path", {
|
|
3
3
|
d: "M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z",
|
|
4
4
|
key: "yt0hxn"
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("../dist-
|
|
2
|
+
const require_dist = require("../dist-DvgVhVUN.js");
|
|
3
3
|
let node_path = require("node:path");
|
|
4
4
|
node_path = require_dist.__toESM(node_path);
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA } from "../dist-
|
|
1
|
+
import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA } from "../dist-D-7oMcBM.mjs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { createReadStream } from "node:fs";
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { n as i,
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { d as e, u as t, w as n, y as r } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs";
|
|
2
|
+
import { n as i, r as a, t as o } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
|
|
3
|
+
import { n as s, t as c } from "./chevron-right-cA8Hucbi.mjs";
|
|
4
|
+
import { h as l } from "./responsive-1iwc-rj2.mjs";
|
|
5
5
|
//#region ../ui-library/src/composites/widget-panel.tsx
|
|
6
|
-
|
|
7
|
-
function u({ title: e, icon:
|
|
8
|
-
let [p, m] =
|
|
6
|
+
n();
|
|
7
|
+
function u({ title: e, icon: t, headerRight: n, collapsible: l = !1, defaultOpen: u = !0, bodyClassName: d = "p-3", children: f }) {
|
|
8
|
+
let [p, m] = r(u), h = !l || p, g = /* @__PURE__ */ a(o, { children: [/* @__PURE__ */ a("span", {
|
|
9
9
|
className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-wider text-foreground",
|
|
10
|
-
children: [
|
|
11
|
-
}),
|
|
12
|
-
return /* @__PURE__ */
|
|
10
|
+
children: [t, e]
|
|
11
|
+
}), l ? i(p ? s : c, { className: "h-3.5 w-3.5 text-foreground-subtle" }) : n] }), _ = `px-4 py-2 flex items-center justify-between ${h ? "border-b border-border" : ""}`;
|
|
12
|
+
return /* @__PURE__ */ a("div", {
|
|
13
13
|
className: "rounded-lg border border-border bg-surface overflow-hidden",
|
|
14
|
-
children: [
|
|
14
|
+
children: [l ? /* @__PURE__ */ i("button", {
|
|
15
15
|
type: "button",
|
|
16
16
|
onClick: () => m((e) => !e),
|
|
17
17
|
className: `w-full text-left ${_}`,
|
|
18
18
|
children: g
|
|
19
|
-
}) : /* @__PURE__ */
|
|
19
|
+
}) : /* @__PURE__ */ i("div", {
|
|
20
20
|
className: _,
|
|
21
21
|
children: g
|
|
22
|
-
}), h ? /* @__PURE__ */
|
|
22
|
+
}), h ? /* @__PURE__ */ i("div", {
|
|
23
23
|
className: d,
|
|
24
24
|
children: f
|
|
25
25
|
}) : null]
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
28
|
function d({ label: e, icon: t, children: n, footer: r }) {
|
|
29
|
-
return /* @__PURE__ */
|
|
29
|
+
return /* @__PURE__ */ a("div", {
|
|
30
30
|
className: "min-w-0 rounded-lg border border-border bg-surface p-2 sm:p-2.5",
|
|
31
31
|
children: [
|
|
32
|
-
/* @__PURE__ */
|
|
32
|
+
/* @__PURE__ */ a("div", {
|
|
33
33
|
className: "mb-0.5 flex min-w-0 items-center gap-1.5 text-[10px] uppercase tracking-wider text-foreground-subtle",
|
|
34
|
-
children: [t, /* @__PURE__ */
|
|
34
|
+
children: [t, /* @__PURE__ */ i("span", {
|
|
35
35
|
className: "min-w-0 truncate",
|
|
36
36
|
children: e
|
|
37
37
|
})]
|
|
38
38
|
}),
|
|
39
|
-
/* @__PURE__ */
|
|
39
|
+
/* @__PURE__ */ i("div", {
|
|
40
40
|
className: "truncate text-lg font-semibold leading-tight text-foreground",
|
|
41
41
|
children: n
|
|
42
42
|
}),
|
|
43
|
-
r == null ? null : /* @__PURE__ */
|
|
43
|
+
r == null ? null : /* @__PURE__ */ i("div", {
|
|
44
44
|
className: "mt-0.5 truncate text-[10px] text-foreground-subtle",
|
|
45
45
|
children: r
|
|
46
46
|
})
|
|
47
47
|
]
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
|
-
|
|
51
|
-
var f =
|
|
52
|
-
function p(
|
|
53
|
-
let
|
|
54
|
-
|
|
55
|
-
if (!(!
|
|
56
|
-
}, [
|
|
50
|
+
n(), l("camstack:player-overlays-state", null);
|
|
51
|
+
var f = l("camstack:player-overlays-actions", null);
|
|
52
|
+
function p(n) {
|
|
53
|
+
let r = t(f);
|
|
54
|
+
e(() => {
|
|
55
|
+
if (!(!r || !n)) return r.setLayer(n), () => r.removeLayer(n.id);
|
|
56
|
+
}, [r, n]);
|
|
57
57
|
}
|
|
58
58
|
//#endregion
|
|
59
59
|
export { d as n, u as r, p as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("../../dist-
|
|
2
|
+
const require_dist = require("../../dist-DvgVhVUN.js");
|
|
3
3
|
let node_path = require("node:path");
|
|
4
4
|
node_path = require_dist.__toESM(node_path, 1);
|
|
5
5
|
let node_crypto = require("node:crypto");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as number, b as string, c as trainingProviderCapability, d as arrayItemFieldPath, f as globalSecretScope, g as boolean, h as toSecretFieldView, l as BaseAddon, m as isSecretMarker, p as isSecretClear, u as SECRET_CLEAR, v as object, y as record } from "../../dist-
|
|
1
|
+
import { _ as number, b as string, c as trainingProviderCapability, d as arrayItemFieldPath, f as globalSecretScope, g as boolean, h as toSecretFieldView, l as BaseAddon, m as isSecretMarker, p as isSecretClear, u as SECRET_CLEAR, v as object, y as record } from "../../dist-D-7oMcBM.mjs";
|
|
2
2
|
import { createRequire } from "node:module";
|
|
3
3
|
import path, { dirname, posix } from "node:path";
|
|
4
4
|
import { createHash, createPrivateKey, createPublicKey, createSign, randomBytes, randomUUID } from "node:crypto";
|
package/dist/remoteEntry.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-
|
|
1
|
+
import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Dk6Nf5b3.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { y as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-Cn2OEGrR.mjs";
|
|
1
|
+
import { b as e, d as t, g as n, l as r, n as i, u as a, w as o, y as s } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs";
|
|
3
2
|
import "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
|
|
3
|
+
import { y as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-BVsoOuTM.mjs";
|
|
4
4
|
//#region ../ui-library/src/lib/shared-context.ts
|
|
5
|
-
|
|
5
|
+
o();
|
|
6
6
|
function l(e, t) {
|
|
7
|
-
if (typeof globalThis > "u") return
|
|
7
|
+
if (typeof globalThis > "u") return i(t);
|
|
8
8
|
let n = globalThis.__camstackSharedContexts, r = n ?? /* @__PURE__ */ new Map();
|
|
9
9
|
n || (globalThis.__camstackSharedContexts = r);
|
|
10
|
-
let
|
|
11
|
-
if (
|
|
12
|
-
let o =
|
|
10
|
+
let a = r.get(e);
|
|
11
|
+
if (a) return a;
|
|
12
|
+
let o = i(t);
|
|
13
13
|
return r.set(e, o), o;
|
|
14
14
|
}
|
|
15
15
|
//#endregion
|
|
16
16
|
//#region ../ui-library/src/contexts/system-context.tsx
|
|
17
|
-
|
|
17
|
+
o();
|
|
18
18
|
var u = l("camstack:system", null);
|
|
19
19
|
function d() {
|
|
20
|
-
let e =
|
|
20
|
+
let e = a(u);
|
|
21
21
|
if (!e) throw Error("useSystem(): no <SystemProvider> in tree");
|
|
22
22
|
return e;
|
|
23
23
|
}
|
|
24
24
|
//#endregion
|
|
25
25
|
//#region ../ui-library/src/hooks/use-device-proxy.ts
|
|
26
|
-
|
|
26
|
+
o();
|
|
27
27
|
var f = "capability.binding-changed";
|
|
28
|
-
function p(e,
|
|
29
|
-
let [
|
|
30
|
-
return
|
|
31
|
-
if (
|
|
28
|
+
function p(e, r) {
|
|
29
|
+
let [i, a] = s(null);
|
|
30
|
+
return t(() => {
|
|
31
|
+
if (r === null) {
|
|
32
32
|
a(null);
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
|
-
let t = !1,
|
|
35
|
+
let t = !1, n = async () => {
|
|
36
36
|
try {
|
|
37
|
-
let
|
|
38
|
-
t || a(
|
|
37
|
+
let n = await e.deviceManager.getBindings.query({ deviceId: r });
|
|
38
|
+
t || a(n);
|
|
39
39
|
} catch {
|
|
40
40
|
t || a((e) => e);
|
|
41
41
|
}
|
|
42
42
|
};
|
|
43
|
-
|
|
43
|
+
n();
|
|
44
44
|
let i = e.live?.onEvent.subscribe({ category: f }, { onData: (e) => {
|
|
45
45
|
let t = e.data?.source;
|
|
46
46
|
if (!t) {
|
|
47
|
-
|
|
47
|
+
n();
|
|
48
48
|
return;
|
|
49
49
|
}
|
|
50
|
-
t.type === "device" && t.id ===
|
|
50
|
+
t.type === "device" && t.id === r && n();
|
|
51
51
|
} });
|
|
52
52
|
return () => {
|
|
53
53
|
t = !0, i?.unsubscribe();
|
|
54
54
|
};
|
|
55
|
-
}, [e,
|
|
55
|
+
}, [e, r]), n(() => i ? c(e, i) : null, [e, i]);
|
|
56
56
|
}
|
|
57
|
-
function m(
|
|
58
|
-
let
|
|
59
|
-
return
|
|
57
|
+
function m(t) {
|
|
58
|
+
let n = r((e) => t ? t.subscribe(() => e()) : () => void 0, [t]), i = r(() => t?.value, [t]);
|
|
59
|
+
return e(n, i, i);
|
|
60
60
|
}
|
|
61
61
|
function h(e, t, n) {
|
|
62
62
|
let r = p(e, t);
|
|
@@ -79,6 +79,6 @@ function _(e) {
|
|
|
79
79
|
}
|
|
80
80
|
//#endregion
|
|
81
81
|
//#region ../ui-library/src/lib/responsive.ts
|
|
82
|
-
var v = "rounded-lg border border-border bg-surface overflow-hidden", y = "border-b border-border px-3 sm:px-4 py-1.5 sm:py-2", b = "p-2 sm:p-3 lg:p-4", x = "grid grid-cols-2 sm:grid-cols-2 lg:grid-cols-4", S = "
|
|
82
|
+
var v = "rounded-lg border border-border bg-surface overflow-hidden", y = "border-b border-border px-3 sm:px-4 py-1.5 sm:py-2", b = "p-2 sm:p-3 lg:p-4", x = "grid grid-cols-2 sm:grid-cols-2 lg:grid-cols-4", S = "text-[10px] sm:text-[11px] font-semibold text-foreground uppercase tracking-wider", C = "text-[10px] text-foreground-subtle", w = "inline-flex items-center gap-1 rounded-full border px-1.5 py-0.5 text-[10px] font-medium transition-colors", T = "border-primary/50 bg-primary/15 text-primary", E = "border-border bg-surface text-foreground-subtle hover:bg-surface-hover";
|
|
83
83
|
//#endregion
|
|
84
|
-
export {
|
|
84
|
+
export { b as a, C as c, p as d, h as f, l as h, x as i, S as l, d as m, w as n, v as o, m as p, E as r, y as s, T as t, _ as u };
|