@camstack/addon-training 0.1.103 → 0.1.104
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/CHANGELOG.md +6 -0
- package/dist/{MotionZonesSettings-HAJ6awj4.mjs → MotionZonesSettings-Bm3-aVd_.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-BF0NUmVm.mjs → PrivacyMaskSettings-CHKqJ1Jl.mjs} +2 -2
- package/dist/{SceneMonitorEditor-CeEWTp0p.mjs → SceneMonitorEditor-BLeDd1kR.mjs} +2 -2
- package/dist/_stub.js +6578 -6515
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-T_zCH7zZ.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-DsiAbTAk.mjs} +3 -3
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-rtY7yvpT.mjs +26 -0
- package/dist/addon-training.css +1 -1
- package/dist/{dist-BfxOw6-O.mjs → dist-CXZDrfkr.mjs} +472 -10
- package/dist/{dist-Cq0HT75H.js → dist-DkRYepCT.js} +472 -10
- package/dist/{hostInit-DRiiL3Ka.mjs → hostInit-CkFf4SAO.mjs} +2 -2
- package/dist/index.js +1 -1
- package/dist/orchestrator/training.addon.js +1 -1
- package/dist/orchestrator/training.addon.mjs +1 -1
- package/dist/{player-overlays-NVql0bBe.mjs → player-overlays-DxLTXMBd.mjs} +1 -1
- 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-Cw10UV1G.mjs → responsive-1P4H2DQA.mjs} +1 -1
- package/dist/{scene-monitor-copy-BiaQA_PZ.mjs → scene-monitor-copy-DmazWKcQ.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Bg8j40fX.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-BBdigjaL.mjs} +399 -390
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CLeWJI6-.mjs +0 -26
|
@@ -5613,7 +5613,7 @@ var ZodIssueCode = {
|
|
|
5613
5613
|
var ZodFirstPartyTypeKind;
|
|
5614
5614
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5615
5615
|
//#endregion
|
|
5616
|
-
//#region ../types/dist/sleep-
|
|
5616
|
+
//#region ../types/dist/sleep-DJws6ho7.mjs
|
|
5617
5617
|
/**
|
|
5618
5618
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5619
5619
|
* window to float samples (D455).
|
|
@@ -9054,6 +9054,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9054
9054
|
"recording-onboard",
|
|
9055
9055
|
"recording-signal",
|
|
9056
9056
|
"records",
|
|
9057
|
+
"remote",
|
|
9057
9058
|
"running-state",
|
|
9058
9059
|
"scene-monitor",
|
|
9059
9060
|
"script-runner",
|
|
@@ -9077,6 +9078,7 @@ var CAP_NAMES = Object.freeze([
|
|
|
9077
9078
|
"system",
|
|
9078
9079
|
"tamper",
|
|
9079
9080
|
"temperature-sensor",
|
|
9081
|
+
"template",
|
|
9080
9082
|
"terminal-session",
|
|
9081
9083
|
"toast",
|
|
9082
9084
|
"training",
|
|
@@ -10017,6 +10019,11 @@ Object.freeze({
|
|
|
10017
10019
|
"standby"
|
|
10018
10020
|
]
|
|
10019
10021
|
},
|
|
10022
|
+
{
|
|
10023
|
+
"path": "stateSource",
|
|
10024
|
+
"valueType": "enum",
|
|
10025
|
+
"enumValues": ["reported", "assumed"]
|
|
10026
|
+
},
|
|
10020
10027
|
{
|
|
10021
10028
|
"path": "volumeLevel",
|
|
10022
10029
|
"valueType": "number"
|
|
@@ -10292,6 +10299,18 @@ Object.freeze({
|
|
|
10292
10299
|
{
|
|
10293
10300
|
"path": "volume",
|
|
10294
10301
|
"valueType": "number"
|
|
10302
|
+
},
|
|
10303
|
+
{
|
|
10304
|
+
"path": "lastFeedGrams",
|
|
10305
|
+
"valueType": "number"
|
|
10306
|
+
},
|
|
10307
|
+
{
|
|
10308
|
+
"path": "lastFeedHopper1",
|
|
10309
|
+
"valueType": "number"
|
|
10310
|
+
},
|
|
10311
|
+
{
|
|
10312
|
+
"path": "lastFeedHopper2",
|
|
10313
|
+
"valueType": "number"
|
|
10295
10314
|
}
|
|
10296
10315
|
],
|
|
10297
10316
|
"power-meter": [
|
|
@@ -57793,6 +57812,318 @@ DeviceType.Light, method(object({
|
|
|
57793
57812
|
level: number().min(0).max(100),
|
|
57794
57813
|
lastChangedAt: number()
|
|
57795
57814
|
});
|
|
57815
|
+
/**
|
|
57816
|
+
* The role vocabulary of a remote (D963): what a button MEANS, independent of
|
|
57817
|
+
* how it is wired. A layout template places buttons by role; a device binds a
|
|
57818
|
+
* role to an action; an exporter asks for a role by name. Roles are shared so
|
|
57819
|
+
* one layout fits every appliance and one voice command fits every binding.
|
|
57820
|
+
*
|
|
57821
|
+
* A role outside this list is `custom:<key>` — the operator's own button (a
|
|
57822
|
+
* SmartIR source, a channel preset). The key is a lowercase slug.
|
|
57823
|
+
*/
|
|
57824
|
+
var REMOTE_KNOWN_ROLES = [
|
|
57825
|
+
"power",
|
|
57826
|
+
"power_on",
|
|
57827
|
+
"power_off",
|
|
57828
|
+
"volume_up",
|
|
57829
|
+
"volume_down",
|
|
57830
|
+
"mute",
|
|
57831
|
+
"channel_up",
|
|
57832
|
+
"channel_down",
|
|
57833
|
+
"up",
|
|
57834
|
+
"down",
|
|
57835
|
+
"left",
|
|
57836
|
+
"right",
|
|
57837
|
+
"ok",
|
|
57838
|
+
"back",
|
|
57839
|
+
"home",
|
|
57840
|
+
"menu",
|
|
57841
|
+
"info",
|
|
57842
|
+
"guide",
|
|
57843
|
+
"exit",
|
|
57844
|
+
"input",
|
|
57845
|
+
"play",
|
|
57846
|
+
"pause",
|
|
57847
|
+
"play_pause",
|
|
57848
|
+
"stop",
|
|
57849
|
+
"next",
|
|
57850
|
+
"previous",
|
|
57851
|
+
"fast_forward",
|
|
57852
|
+
"rewind",
|
|
57853
|
+
"digit_0",
|
|
57854
|
+
"digit_1",
|
|
57855
|
+
"digit_2",
|
|
57856
|
+
"digit_3",
|
|
57857
|
+
"digit_4",
|
|
57858
|
+
"digit_5",
|
|
57859
|
+
"digit_6",
|
|
57860
|
+
"digit_7",
|
|
57861
|
+
"digit_8",
|
|
57862
|
+
"digit_9"
|
|
57863
|
+
];
|
|
57864
|
+
var CUSTOM_KEY_RE = /^[a-z0-9][a-z0-9_]{0,47}$/;
|
|
57865
|
+
var KNOWN_ROLES = new Set(REMOTE_KNOWN_ROLES);
|
|
57866
|
+
function isRemoteKnownRole(value) {
|
|
57867
|
+
return KNOWN_ROLES.has(value);
|
|
57868
|
+
}
|
|
57869
|
+
function isRemoteCustomKey(key) {
|
|
57870
|
+
return CUSTOM_KEY_RE.test(key);
|
|
57871
|
+
}
|
|
57872
|
+
/** The key of a `custom:<key>` role, or null for any other string. */
|
|
57873
|
+
function customKeyOfRole(role) {
|
|
57874
|
+
if (!role.startsWith("custom:")) return null;
|
|
57875
|
+
const key = role.slice(7);
|
|
57876
|
+
return isRemoteCustomKey(key) ? key : null;
|
|
57877
|
+
}
|
|
57878
|
+
function isRemoteRole(value) {
|
|
57879
|
+
return isRemoteKnownRole(value) || customKeyOfRole(value) !== null;
|
|
57880
|
+
}
|
|
57881
|
+
var RemoteRoleSchema = string().refine(isRemoteRole, { message: "a role is one of the known roles or custom:<key> (lowercase letters, digits, _)" });
|
|
57882
|
+
var RemoteBindingSchema = object({ action: AutomationCapStepSchema.extend({ deviceId: number().int().nonnegative() }) });
|
|
57883
|
+
var RemoteCustomButtonSchema = object({
|
|
57884
|
+
/** The slug after `custom:` in the role. */
|
|
57885
|
+
key: string().refine(isRemoteCustomKey, { message: "a lowercase slug" }),
|
|
57886
|
+
/** What the operator calls it, and what a voice command may name. */
|
|
57887
|
+
name: string().min(1).max(60)
|
|
57888
|
+
});
|
|
57889
|
+
var RemotePowerModeSchema = _enum(["toggle", "discrete"]);
|
|
57890
|
+
var RemoteConfigSchema = object({
|
|
57891
|
+
layoutTemplateId: string().min(1).nullable(),
|
|
57892
|
+
/**
|
|
57893
|
+
* The transmitter device new bindings and an import send through. A binding
|
|
57894
|
+
* names its own device, so one command may override it.
|
|
57895
|
+
*/
|
|
57896
|
+
defaultTransmitterId: number().int().nonnegative().nullable().default(null),
|
|
57897
|
+
/** Keyed by role. A role with no entry falls back to the native cap. */
|
|
57898
|
+
bindings: record(string(), RemoteBindingSchema),
|
|
57899
|
+
customButtons: array(RemoteCustomButtonSchema).max(100),
|
|
57900
|
+
power: object({ mode: RemotePowerModeSchema })
|
|
57901
|
+
}).superRefine((config, ctx) => {
|
|
57902
|
+
const roles = Object.keys(config.bindings);
|
|
57903
|
+
if (roles.length > 200) ctx.addIssue({
|
|
57904
|
+
code: "custom",
|
|
57905
|
+
message: "too many bindings",
|
|
57906
|
+
path: ["bindings"]
|
|
57907
|
+
});
|
|
57908
|
+
for (const role of roles) if (!isRemoteRole(role)) ctx.addIssue({
|
|
57909
|
+
code: "custom",
|
|
57910
|
+
message: `"${role}" is not a role`,
|
|
57911
|
+
path: ["bindings", role]
|
|
57912
|
+
});
|
|
57913
|
+
const keys = /* @__PURE__ */ new Set();
|
|
57914
|
+
config.customButtons.forEach((button, index) => {
|
|
57915
|
+
if (keys.has(button.key)) ctx.addIssue({
|
|
57916
|
+
code: "custom",
|
|
57917
|
+
message: `custom button "${button.key}" is listed twice`,
|
|
57918
|
+
path: [
|
|
57919
|
+
"customButtons",
|
|
57920
|
+
index,
|
|
57921
|
+
"key"
|
|
57922
|
+
]
|
|
57923
|
+
});
|
|
57924
|
+
keys.add(button.key);
|
|
57925
|
+
});
|
|
57926
|
+
for (const role of roles) {
|
|
57927
|
+
const key = customKeyOfRole(role);
|
|
57928
|
+
if (key !== null && !keys.has(key)) ctx.addIssue({
|
|
57929
|
+
code: "custom",
|
|
57930
|
+
message: `${role} is bound but has no entry in customButtons`,
|
|
57931
|
+
path: ["bindings", role]
|
|
57932
|
+
});
|
|
57933
|
+
}
|
|
57934
|
+
});
|
|
57935
|
+
object({
|
|
57936
|
+
power: object({
|
|
57937
|
+
state: _enum(["on", "off"]),
|
|
57938
|
+
at: number()
|
|
57939
|
+
}).nullable(),
|
|
57940
|
+
muted: object({
|
|
57941
|
+
value: boolean(),
|
|
57942
|
+
at: number()
|
|
57943
|
+
}).nullable()
|
|
57944
|
+
});
|
|
57945
|
+
var RemoteLayoutButtonSchema = object({
|
|
57946
|
+
id: string().min(1).max(40),
|
|
57947
|
+
/** 0-based grid position. */
|
|
57948
|
+
row: number().int().min(0).max(24),
|
|
57949
|
+
col: number().int().min(0).max(24),
|
|
57950
|
+
rowSpan: number().int().min(1).max(24),
|
|
57951
|
+
colSpan: number().int().min(1).max(24),
|
|
57952
|
+
icon: string().min(1).max(60).optional(),
|
|
57953
|
+
label: string().min(1).max(40).optional(),
|
|
57954
|
+
role: RemoteRoleSchema
|
|
57955
|
+
});
|
|
57956
|
+
object({
|
|
57957
|
+
columns: number().int().min(1).max(24),
|
|
57958
|
+
rows: number().int().min(1).max(24),
|
|
57959
|
+
buttons: array(RemoteLayoutButtonSchema).max(200)
|
|
57960
|
+
}).superRefine((grid, ctx) => {
|
|
57961
|
+
const ids = /* @__PURE__ */ new Set();
|
|
57962
|
+
const taken = /* @__PURE__ */ new Map();
|
|
57963
|
+
grid.buttons.forEach((button, index) => {
|
|
57964
|
+
if (ids.has(button.id)) ctx.addIssue({
|
|
57965
|
+
code: "custom",
|
|
57966
|
+
message: `button id "${button.id}" is used twice`,
|
|
57967
|
+
path: [
|
|
57968
|
+
"buttons",
|
|
57969
|
+
index,
|
|
57970
|
+
"id"
|
|
57971
|
+
]
|
|
57972
|
+
});
|
|
57973
|
+
ids.add(button.id);
|
|
57974
|
+
if (button.row + button.rowSpan > grid.rows || button.col + button.colSpan > grid.columns) {
|
|
57975
|
+
ctx.addIssue({
|
|
57976
|
+
code: "custom",
|
|
57977
|
+
message: `button "${button.id}" leaves the grid`,
|
|
57978
|
+
path: ["buttons", index]
|
|
57979
|
+
});
|
|
57980
|
+
return;
|
|
57981
|
+
}
|
|
57982
|
+
for (let r = button.row; r < button.row + button.rowSpan; r += 1) for (let c = button.col; c < button.col + button.colSpan; c += 1) {
|
|
57983
|
+
const cell = `${r}:${c}`;
|
|
57984
|
+
const other = taken.get(cell);
|
|
57985
|
+
if (other !== void 0) {
|
|
57986
|
+
ctx.addIssue({
|
|
57987
|
+
code: "custom",
|
|
57988
|
+
message: `buttons "${other}" and "${button.id}" overlap`,
|
|
57989
|
+
path: ["buttons", index]
|
|
57990
|
+
});
|
|
57991
|
+
return;
|
|
57992
|
+
}
|
|
57993
|
+
taken.set(cell, button.id);
|
|
57994
|
+
}
|
|
57995
|
+
});
|
|
57996
|
+
});
|
|
57997
|
+
var RemoteBoundCommandSchema = object({
|
|
57998
|
+
role: RemoteRoleSchema,
|
|
57999
|
+
/** The operator's name for a custom button; absent for a known role. */
|
|
58000
|
+
label: string().optional(),
|
|
58001
|
+
custom: boolean()
|
|
58002
|
+
});
|
|
58003
|
+
var RemoteCommandListSchema = object({
|
|
58004
|
+
layoutTemplateId: string().nullable(),
|
|
58005
|
+
power: object({ mode: RemotePowerModeSchema }),
|
|
58006
|
+
/** Only the roles that are BOUND — the ones a press can reach. */
|
|
58007
|
+
commands: array(RemoteBoundCommandSchema)
|
|
58008
|
+
});
|
|
58009
|
+
var RemoteRefusalReasonSchema = _enum([
|
|
58010
|
+
"no-remote",
|
|
58011
|
+
"unbound-role",
|
|
58012
|
+
"action-failed"
|
|
58013
|
+
]);
|
|
58014
|
+
var RemoteSendResultSchema = discriminatedUnion("status", [
|
|
58015
|
+
object({
|
|
58016
|
+
status: literal("sent"),
|
|
58017
|
+
/** How many times the action ran. */
|
|
58018
|
+
sends: number().int().min(1)
|
|
58019
|
+
}),
|
|
58020
|
+
object({
|
|
58021
|
+
status: literal("skipped"),
|
|
58022
|
+
reason: literal("already-in-state")
|
|
58023
|
+
}),
|
|
58024
|
+
object({
|
|
58025
|
+
status: literal("refused"),
|
|
58026
|
+
reason: RemoteRefusalReasonSchema,
|
|
58027
|
+
detail: string().optional()
|
|
58028
|
+
})
|
|
58029
|
+
]);
|
|
58030
|
+
var RemoteMediaCommandSchema = _enum([
|
|
58031
|
+
"play",
|
|
58032
|
+
"pause",
|
|
58033
|
+
"stop",
|
|
58034
|
+
"next",
|
|
58035
|
+
"previous",
|
|
58036
|
+
"setMute",
|
|
58037
|
+
"selectSource"
|
|
58038
|
+
]);
|
|
58039
|
+
/** A send result, or `not-routed`: the role is not bound, so the native cap answers. */
|
|
58040
|
+
var RemoteMediaCommandResultSchema = discriminatedUnion("status", [...RemoteSendResultSchema.options, object({ status: literal("not-routed") })]);
|
|
58041
|
+
var RemoteSetConfigResultSchema = discriminatedUnion("status", [object({ status: literal("saved") }), object({
|
|
58042
|
+
status: literal("refused"),
|
|
58043
|
+
reason: _enum(["unknown-template", "not-a-media-player"]),
|
|
58044
|
+
detail: string()
|
|
58045
|
+
})]);
|
|
58046
|
+
var deviceInput = object({ deviceId: number().int().nonnegative() });
|
|
58047
|
+
DeviceType.MediaPlayer;
|
|
58048
|
+
method(deviceInput, RemoteConfigSchema, { auth: "admin" }), method(deviceInput.extend({ config: RemoteConfigSchema }), RemoteSetConfigResultSchema, {
|
|
58049
|
+
kind: "mutation",
|
|
58050
|
+
auth: "admin"
|
|
58051
|
+
}), method(deviceInput, RemoteCommandListSchema, { auth: "protected" }), method(deviceInput.extend({
|
|
58052
|
+
role: RemoteRoleSchema,
|
|
58053
|
+
/** Sends in a row (volume steps). */
|
|
58054
|
+
repeat: number().int().min(1).max(50).default(1)
|
|
58055
|
+
}), RemoteSendResultSchema, {
|
|
58056
|
+
kind: "mutation",
|
|
58057
|
+
auth: "protected"
|
|
58058
|
+
}), method(deviceInput.extend({
|
|
58059
|
+
command: RemoteMediaCommandSchema,
|
|
58060
|
+
muted: boolean().optional(),
|
|
58061
|
+
source: string().optional(),
|
|
58062
|
+
repeat: number().int().min(1).max(50).default(1)
|
|
58063
|
+
}), RemoteMediaCommandResultSchema, {
|
|
58064
|
+
kind: "mutation",
|
|
58065
|
+
auth: "protected"
|
|
58066
|
+
});
|
|
58067
|
+
var TemplateKindSchema = _enum(["remote"]);
|
|
58068
|
+
/**
|
|
58069
|
+
* template — the generic store of reusable, named operator data (D963). A
|
|
58070
|
+
* record is `{ id, kind, name, payload }`; the kinds (today only `remote`, the
|
|
58071
|
+
* button grid of a remote) and the schema each payload must satisfy are
|
|
58072
|
+
* declared by the system in `template-kinds.ts`. Nothing here is specific to a
|
|
58073
|
+
* kind: the engine validates a payload against its kind's schema and, on a
|
|
58074
|
+
* delete, asks the kind's owner whether anything still points at the record.
|
|
58075
|
+
*
|
|
58076
|
+
* Every refusal is a typed result — a UI says "unknown kind" or names the
|
|
58077
|
+
* devices that still use a template, without parsing text.
|
|
58078
|
+
*/
|
|
58079
|
+
var TemplateRecordSchema = object({
|
|
58080
|
+
id: string().min(1),
|
|
58081
|
+
kind: TemplateKindSchema,
|
|
58082
|
+
name: string().min(1).max(120),
|
|
58083
|
+
/** Shaped by the kind; `checkTemplatePayload(kind, payload)` reads it. */
|
|
58084
|
+
payload: unknown(),
|
|
58085
|
+
createdAt: number(),
|
|
58086
|
+
updatedAt: number()
|
|
58087
|
+
});
|
|
58088
|
+
var TemplateWriteResultSchema = discriminatedUnion("status", [object({
|
|
58089
|
+
status: literal("saved"),
|
|
58090
|
+
template: TemplateRecordSchema
|
|
58091
|
+
}), object({
|
|
58092
|
+
status: literal("refused"),
|
|
58093
|
+
reason: _enum(["invalid-payload", "not-found"]),
|
|
58094
|
+
detail: string()
|
|
58095
|
+
})]);
|
|
58096
|
+
/** A device still pointing at a template. */
|
|
58097
|
+
var TemplateUserSchema = object({
|
|
58098
|
+
deviceId: number().int().nonnegative(),
|
|
58099
|
+
name: string()
|
|
58100
|
+
});
|
|
58101
|
+
var TemplateDeleteResultSchema = discriminatedUnion("status", [
|
|
58102
|
+
object({ status: literal("deleted") }),
|
|
58103
|
+
object({ status: literal("not-found") }),
|
|
58104
|
+
object({
|
|
58105
|
+
status: literal("in-use"),
|
|
58106
|
+
devices: array(TemplateUserSchema).min(1)
|
|
58107
|
+
})
|
|
58108
|
+
]);
|
|
58109
|
+
method(object({ kind: TemplateKindSchema.optional() }), array(TemplateRecordSchema), { auth: "protected" }), method(object({ id: string().min(1) }), TemplateRecordSchema.nullable(), { auth: "protected" }), method(object({
|
|
58110
|
+
kind: TemplateKindSchema,
|
|
58111
|
+
name: string().min(1).max(120),
|
|
58112
|
+
payload: unknown()
|
|
58113
|
+
}), TemplateWriteResultSchema, {
|
|
58114
|
+
kind: "mutation",
|
|
58115
|
+
auth: "admin"
|
|
58116
|
+
}), method(object({
|
|
58117
|
+
id: string().min(1),
|
|
58118
|
+
name: string().min(1).max(120).optional(),
|
|
58119
|
+
payload: unknown().optional()
|
|
58120
|
+
}), TemplateWriteResultSchema, {
|
|
58121
|
+
kind: "mutation",
|
|
58122
|
+
auth: "admin"
|
|
58123
|
+
}), method(object({ id: string().min(1) }), TemplateDeleteResultSchema, {
|
|
58124
|
+
kind: "mutation",
|
|
58125
|
+
auth: "admin"
|
|
58126
|
+
});
|
|
57796
58127
|
DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
|
|
57797
58128
|
kind: "mutation",
|
|
57798
58129
|
auth: "protected"
|
|
@@ -60542,9 +60873,35 @@ var MediaInfoSchema = object({
|
|
|
60542
60873
|
/** Optional cover-art / thumbnail URL. */
|
|
60543
60874
|
imageUrl: string().optional()
|
|
60544
60875
|
});
|
|
60876
|
+
/**
|
|
60877
|
+
* Where `state`, `volumeLevel`, `isMuted` and `source` come from. `reported`:
|
|
60878
|
+
* the device said so. `assumed`: the driver has no feedback (infrared) and
|
|
60879
|
+
* tracks what it last SENT; it moves only after a send was accepted, and a
|
|
60880
|
+
* human at the real remote makes it wrong. A UI shows an assumed value as a
|
|
60881
|
+
* guess, never as a reading.
|
|
60882
|
+
*/
|
|
60883
|
+
var MediaPlayerStateSourceSchema = _enum(["reported", "assumed"]);
|
|
60884
|
+
/** The fields of a media-player status a driver can only guess. */
|
|
60885
|
+
var MediaPlayerAssumedFieldSchema = _enum([
|
|
60886
|
+
"state",
|
|
60887
|
+
"volumeLevel",
|
|
60888
|
+
"isMuted",
|
|
60889
|
+
"source"
|
|
60890
|
+
]);
|
|
60545
60891
|
object({
|
|
60546
60892
|
/** Playback lifecycle state. */
|
|
60547
60893
|
state: MediaPlayerStateSchema,
|
|
60894
|
+
/**
|
|
60895
|
+
* Whether the state fields are readings or the driver's own bookkeeping.
|
|
60896
|
+
* A slice written before this field existed parses as `reported`.
|
|
60897
|
+
*/
|
|
60898
|
+
stateSource: MediaPlayerStateSourceSchema.default("reported"),
|
|
60899
|
+
/**
|
|
60900
|
+
* Which fields are the driver's own guess. `stateSource` is `assumed` when
|
|
60901
|
+
* this is not empty; a field not listed here is a reading even then (power
|
|
60902
|
+
* from a running-state source, mute guessed from the last send).
|
|
60903
|
+
*/
|
|
60904
|
+
assumedFields: array(MediaPlayerAssumedFieldSchema).default([]),
|
|
60548
60905
|
/** Volume as 0..100 inclusive. Null when the device has no volume
|
|
60549
60906
|
* surface. Pair with `DeviceFeature.MediaPlayerVolume`. */
|
|
60550
60907
|
volumeLevel: number().min(0).max(100).nullable().meta(readingMeta("percentage")),
|
|
@@ -61985,6 +62342,14 @@ object({
|
|
|
61985
62342
|
feedSound: boolean(),
|
|
61986
62343
|
/** Speaker / prompt volume level (device-scaled integer). */
|
|
61987
62344
|
volume: number().meta(readingMeta("none")),
|
|
62345
|
+
/** Portion (grams) of the last manual feed sent from a single-hopper
|
|
62346
|
+
* stepper — the default the next manual feed starts from. Persisted per
|
|
62347
|
+
* device by the provider; null until a manual feed has been sent. */
|
|
62348
|
+
lastFeedGrams: gramsPortion.nullable(),
|
|
62349
|
+
/** Hopper-1 portion of the last manual feed (dual-hopper); null until sent. */
|
|
62350
|
+
lastFeedHopper1: gramsPortion.nullable(),
|
|
62351
|
+
/** Hopper-2 portion of the last manual feed (dual-hopper); null until sent. */
|
|
62352
|
+
lastFeedHopper2: gramsPortion.nullable(),
|
|
61988
62353
|
/** Ms epoch when the slice was last refreshed from the cloud. */
|
|
61989
62354
|
lastFetchedAt: number()
|
|
61990
62355
|
});
|
|
@@ -66728,9 +67093,17 @@ var trainingCapability = {
|
|
|
66728
67093
|
})
|
|
66729
67094
|
}
|
|
66730
67095
|
};
|
|
67096
|
+
discriminatedUnion("kind", [object({
|
|
67097
|
+
kind: literal("raw"),
|
|
67098
|
+
timings: array(number().int()),
|
|
67099
|
+
settings: TransmitSettingsSchema.optional()
|
|
67100
|
+
}), object({
|
|
67101
|
+
kind: literal("pronto"),
|
|
67102
|
+
code: string()
|
|
67103
|
+
})]);
|
|
66731
67104
|
DeviceFeature.FanSpeed, DeviceFeature.FanPreset, DeviceFeature.FanDirection, DeviceFeature.FanOscillating, DeviceFeature.CoverPositionable, DeviceFeature.CoverTilt, DeviceFeature.ValvePositionable, DeviceFeature.MediaPlayerVolume, DeviceFeature.ClimateFanMode;
|
|
66732
67105
|
SOURCE_CAPS.filter((cap) => cap !== "switch" && cap !== "motion");
|
|
66733
|
-
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
67106
|
+
DeviceType.Camera, DeviceType.Sensor, DeviceType.Button, DeviceType.Switch, DeviceType.PetFeeder, DeviceType.Container, DeviceType.Thermostat, DeviceType.EventEmitter, DeviceType.Camera, DeviceType.Hub, DeviceType.Light, DeviceType.Siren, DeviceType.Switch, DeviceType.Sensor, DeviceType.Thermostat, DeviceType.Climate, DeviceType.Button, DeviceType.EventEmitter, DeviceType.Update, DeviceType.Generic, DeviceType.Notifier, DeviceType.Script, DeviceType.Automation, DeviceType.Lock, DeviceType.Cover, DeviceType.Valve, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.Fan, DeviceType.MediaPlayer, DeviceType.AlarmPanel, DeviceType.Control, DeviceType.Presence, DeviceType.Weather, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.Container, DeviceType.Image, DeviceType.PetFeeder, DeviceType.Dishwasher, DeviceType.Washer, DeviceType.Dryer, DeviceType.Camera, DeviceType.Camera, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.Switch, DeviceType.Light, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.Humidifier, DeviceType.WaterHeater, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.PetFeeder, DeviceType.MediaPlayer, DeviceType.Washer, DeviceType.Dryer, DeviceType.Dishwasher, DeviceType.Vacuum, DeviceType.LawnMower, DeviceType.MediaPlayer, DeviceType.WaterHeater, DeviceType.Humidifier, DeviceType.Fan, DeviceType.Climate, DeviceType.Thermostat, DeviceType.PetFeeder;
|
|
66734
67107
|
String.raw`rose\(active(\d+), changed(\d+), (\d+(?:\.\d+)?)\)`;
|
|
66735
67108
|
DeviceRole.BinarySensor, DeviceRole.MotionSensor;
|
|
66736
67109
|
new Set(CAP_NAMES);
|
|
@@ -74472,6 +74845,41 @@ Object.freeze({
|
|
|
74472
74845
|
access: "create",
|
|
74473
74846
|
role: "admin"
|
|
74474
74847
|
},
|
|
74848
|
+
"remote.getConfig": {
|
|
74849
|
+
capName: "remote",
|
|
74850
|
+
capScope: "system",
|
|
74851
|
+
addonId: null,
|
|
74852
|
+
access: "view",
|
|
74853
|
+
role: "admin"
|
|
74854
|
+
},
|
|
74855
|
+
"remote.listCommands": {
|
|
74856
|
+
capName: "remote",
|
|
74857
|
+
capScope: "system",
|
|
74858
|
+
addonId: null,
|
|
74859
|
+
access: "view",
|
|
74860
|
+
role: "admin"
|
|
74861
|
+
},
|
|
74862
|
+
"remote.sendCommand": {
|
|
74863
|
+
capName: "remote",
|
|
74864
|
+
capScope: "system",
|
|
74865
|
+
addonId: null,
|
|
74866
|
+
access: "create",
|
|
74867
|
+
role: "admin"
|
|
74868
|
+
},
|
|
74869
|
+
"remote.sendMediaCommand": {
|
|
74870
|
+
capName: "remote",
|
|
74871
|
+
capScope: "system",
|
|
74872
|
+
addonId: null,
|
|
74873
|
+
access: "create",
|
|
74874
|
+
role: "admin"
|
|
74875
|
+
},
|
|
74876
|
+
"remote.setConfig": {
|
|
74877
|
+
capName: "remote",
|
|
74878
|
+
capScope: "system",
|
|
74879
|
+
addonId: null,
|
|
74880
|
+
access: "create",
|
|
74881
|
+
role: "admin"
|
|
74882
|
+
},
|
|
74475
74883
|
"runningState.getStatus": {
|
|
74476
74884
|
capName: "running-state",
|
|
74477
74885
|
capScope: "device",
|
|
@@ -75662,6 +76070,41 @@ Object.freeze({
|
|
|
75662
76070
|
access: "view",
|
|
75663
76071
|
role: "viewer"
|
|
75664
76072
|
},
|
|
76073
|
+
"template.create": {
|
|
76074
|
+
capName: "template",
|
|
76075
|
+
capScope: "system",
|
|
76076
|
+
addonId: null,
|
|
76077
|
+
access: "create",
|
|
76078
|
+
role: "admin"
|
|
76079
|
+
},
|
|
76080
|
+
"template.delete": {
|
|
76081
|
+
capName: "template",
|
|
76082
|
+
capScope: "system",
|
|
76083
|
+
addonId: null,
|
|
76084
|
+
access: "delete",
|
|
76085
|
+
role: "admin"
|
|
76086
|
+
},
|
|
76087
|
+
"template.get": {
|
|
76088
|
+
capName: "template",
|
|
76089
|
+
capScope: "system",
|
|
76090
|
+
addonId: null,
|
|
76091
|
+
access: "view",
|
|
76092
|
+
role: "admin"
|
|
76093
|
+
},
|
|
76094
|
+
"template.list": {
|
|
76095
|
+
capName: "template",
|
|
76096
|
+
capScope: "system",
|
|
76097
|
+
addonId: null,
|
|
76098
|
+
access: "view",
|
|
76099
|
+
role: "admin"
|
|
76100
|
+
},
|
|
76101
|
+
"template.update": {
|
|
76102
|
+
capName: "template",
|
|
76103
|
+
capScope: "system",
|
|
76104
|
+
addonId: null,
|
|
76105
|
+
access: "create",
|
|
76106
|
+
role: "admin"
|
|
76107
|
+
},
|
|
75665
76108
|
"terminalSession.adoptLegacyMonitor": {
|
|
75666
76109
|
capName: "terminal-session",
|
|
75667
76110
|
capScope: "system",
|
|
@@ -80493,6 +80936,7 @@ var SYSTEM_CAP_VOCABULARY = {
|
|
|
80493
80936
|
"recording-archive": system(STORAGE),
|
|
80494
80937
|
"recording-export": system("recording exports — requested from the timeline, not an automation step"),
|
|
80495
80938
|
records: system(INTERNAL),
|
|
80939
|
+
remote: system("the per-device remote setup — authored in the Customize remote editor, sent through the remote UI"),
|
|
80496
80940
|
"server-management": system(CLUSTER),
|
|
80497
80941
|
"settings-store": system(INTERNAL),
|
|
80498
80942
|
"smtp-provider": system(INTERNAL),
|
|
@@ -80505,6 +80949,7 @@ var SYSTEM_CAP_VOCABULARY = {
|
|
|
80505
80949
|
"storage-provider": system(STORAGE),
|
|
80506
80950
|
"stream-broker": system(PIPELINE),
|
|
80507
80951
|
system: system(CLUSTER),
|
|
80952
|
+
template: system("operator-authored templates — edited in their own editor, never actuated"),
|
|
80508
80953
|
"terminal-session": system(CLUSTER),
|
|
80509
80954
|
toast: system(UI_PLUMBING),
|
|
80510
80955
|
training: system(ML),
|
|
@@ -82931,6 +83376,31 @@ Object.freeze({
|
|
|
82931
83376
|
form: "single",
|
|
82932
83377
|
optional: true
|
|
82933
83378
|
}],
|
|
83379
|
+
"remote.getConfig": [{
|
|
83380
|
+
name: "deviceId",
|
|
83381
|
+
form: "single",
|
|
83382
|
+
optional: false
|
|
83383
|
+
}],
|
|
83384
|
+
"remote.listCommands": [{
|
|
83385
|
+
name: "deviceId",
|
|
83386
|
+
form: "single",
|
|
83387
|
+
optional: false
|
|
83388
|
+
}],
|
|
83389
|
+
"remote.sendCommand": [{
|
|
83390
|
+
name: "deviceId",
|
|
83391
|
+
form: "single",
|
|
83392
|
+
optional: false
|
|
83393
|
+
}],
|
|
83394
|
+
"remote.sendMediaCommand": [{
|
|
83395
|
+
name: "deviceId",
|
|
83396
|
+
form: "single",
|
|
83397
|
+
optional: false
|
|
83398
|
+
}],
|
|
83399
|
+
"remote.setConfig": [{
|
|
83400
|
+
name: "deviceId",
|
|
83401
|
+
form: "single",
|
|
83402
|
+
optional: false
|
|
83403
|
+
}],
|
|
82934
83404
|
"runningState.getStatus": [{
|
|
82935
83405
|
name: "deviceId",
|
|
82936
83406
|
form: "single",
|
|
@@ -84739,14 +85209,6 @@ DEFAULT_NATIVE_LEASE_SETTINGS.admission;
|
|
|
84739
85209
|
String.raw`(?<=^|["'(\s>,\[{])`;
|
|
84740
85210
|
var MB = 1024 * 1024;
|
|
84741
85211
|
1024 * MB, 3072 * MB;
|
|
84742
|
-
discriminatedUnion("kind", [object({
|
|
84743
|
-
kind: literal("raw"),
|
|
84744
|
-
timings: array(number().int()),
|
|
84745
|
-
settings: TransmitSettingsSchema.optional()
|
|
84746
|
-
}), object({
|
|
84747
|
-
kind: literal("pronto"),
|
|
84748
|
-
code: string()
|
|
84749
|
-
})]);
|
|
84750
85212
|
object({
|
|
84751
85213
|
manufacturer: string().optional(),
|
|
84752
85214
|
supportedModels: array(string()).optional(),
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.441",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
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.348",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
require("./dist-
|
|
2
|
+
require("./dist-DkRYepCT.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,5 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_dist = require("../dist-
|
|
2
|
+
const require_dist = require("../dist-DkRYepCT.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, m as defineRecordKinds, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA, u as RECORD_MAX_DATA_BYTES } from "../dist-
|
|
1
|
+
import { a as addonPagesSourceCapability, i as TrainingResultSchema, l as BaseAddon, m as defineRecordKinds, n as TrainingJobSchema, o as parseTrainingEventLine, r as TrainingJobSpecSchema, s as trainingCapability, t as TRAINING_JOB_SCHEMA, u as RECORD_MAX_DATA_BYTES } from "../dist-CXZDrfkr.mjs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { createHash } from "node:crypto";
|
|
4
4
|
import { createReadStream } from "node:fs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
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
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
3
|
import { n as s, t as c } from "./chevron-right-cA8Hucbi.mjs";
|
|
4
|
-
import { g as l } from "./responsive-
|
|
4
|
+
import { g as l } from "./responsive-1P4H2DQA.mjs";
|
|
5
5
|
//#region ../ui-library/src/composites/widget-panel.tsx
|
|
6
6
|
n();
|
|
7
7
|
function u({ title: e, icon: t, headerRight: n, collapsible: l = !1, defaultOpen: u = !0, open: d, onOpenChange: f, bodyClassName: p = "p-3", children: m }) {
|
|
@@ -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-DkRYepCT.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 { C as record, S as object, _ as isSecretClear, b as boolean, c as trainingProviderCapability, d as SECRET_CLEAR, f as arrayItemFieldPath, g as globalSecretScope, h as entryBody, l as BaseAddon, p as defineEntryKind, v as isSecretMarker, w as string, x as number, y as toSecretFieldView } from "../../dist-
|
|
1
|
+
import { C as record, S as object, _ as isSecretClear, b as boolean, c as trainingProviderCapability, d as SECRET_CLEAR, f as arrayItemFieldPath, g as globalSecretScope, h as entryBody, l as BaseAddon, p as defineEntryKind, v as isSecretMarker, w as string, x as number, y as toSecretFieldView } from "../../dist-CXZDrfkr.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-BBdigjaL.mjs";
|
|
2
2
|
export { t as get, e as init };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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";
|
|
2
2
|
import "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
|
|
3
|
-
import { E as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-
|
|
3
|
+
import { E as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-rtY7yvpT.mjs";
|
|
4
4
|
//#region ../ui-library/src/lib/shared-context.ts
|
|
5
5
|
o();
|
|
6
6
|
function l(e, t) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { g as e, l as t, u as n, w as r, y as i } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react__loadShare__.js-CEvdvp1T.mjs";
|
|
2
2
|
import "./_virtual_mf___mfe_internal__addon_training_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-DnrbBvrw.mjs";
|
|
3
3
|
import { n as a } from "./ui-text-CqJgUCKX.mjs";
|
|
4
|
-
import { g as o } from "./responsive-
|
|
4
|
+
import { g as o } from "./responsive-1P4H2DQA.mjs";
|
|
5
5
|
//#region ../ui-library/src/composites/confirm-dialog.tsx
|
|
6
6
|
r();
|
|
7
7
|
var s = o("camstack:confirm-dialog", null);
|