@camstack/addon-training 0.1.109 → 0.1.111

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 (22) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{MotionZonesSettings-BFubqBUi.mjs → MotionZonesSettings-D4s4e-dn.mjs} +2 -2
  3. package/dist/{PrivacyMaskSettings-sNWgI2Ak.mjs → PrivacyMaskSettings-BtdwrmHQ.mjs} +2 -2
  4. package/dist/{SceneMonitorEditor-CyQQi49c.mjs → SceneMonitorEditor-DOX6WQaZ.mjs} +2 -2
  5. package/dist/_stub.js +10 -10
  6. package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-CoE4OqSm.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-wgqnvZam.mjs} +3 -3
  7. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CmVZHQ-k.mjs +26 -0
  8. package/dist/{dist-DW0wmCpB.mjs → dist-BY4SxNbQ.mjs} +322 -3
  9. package/dist/{dist-BkNG49yZ.js → dist-BsIozugK.js} +322 -3
  10. package/dist/{hostInit-C5xfMSma.mjs → hostInit-COVVezu5.mjs} +2 -2
  11. package/dist/index.js +1 -1
  12. package/dist/orchestrator/training.addon.js +1 -1
  13. package/dist/orchestrator/training.addon.mjs +1 -1
  14. package/dist/{player-overlays-DPQZJVmM.mjs → player-overlays-C_B-yc3g.mjs} +1 -1
  15. package/dist/providers/modal/training-modal.addon.js +1 -1
  16. package/dist/providers/modal/training-modal.addon.mjs +1 -1
  17. package/dist/remoteEntry.js +1 -1
  18. package/dist/{responsive-Dq7_CDVT.mjs → responsive-YANRyril.mjs} +1 -1
  19. package/dist/{scene-monitor-copy-B6AKXb0r.mjs → scene-monitor-copy-B0w92y1z.mjs} +1 -1
  20. package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CLjAuQ-T.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Xpg6ATFx.mjs} +1 -1
  21. package/package.json +1 -1
  22. package/dist/_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-L5NIyvFm.mjs +0 -26
@@ -5621,7 +5621,7 @@ var ZodIssueCode = {
5621
5621
  var ZodFirstPartyTypeKind;
5622
5622
  ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
5623
5623
  //#endregion
5624
- //#region ../types/dist/sleep-6eG9C8Xl.mjs
5624
+ //#region ../types/dist/sleep-63gM_1JR.mjs
5625
5625
  /**
5626
5626
  * The audio chunk plane's byte format, and the ONE expansion from a coded
5627
5627
  * window to float samples (D455).
@@ -9149,6 +9149,7 @@ var CAP_NAMES = Object.freeze([
9149
9149
  "recording-signal",
9150
9150
  "records",
9151
9151
  "remote",
9152
+ "remote-layout-components",
9152
9153
  "running-state",
9153
9154
  "scene-monitor",
9154
9155
  "script-runner",
@@ -58599,6 +58600,30 @@ object({
58599
58600
  at: number()
58600
58601
  }).nullable()
58601
58602
  });
58603
+ var RemoteButtonShapeSchema = _enum([
58604
+ "rect",
58605
+ "rounded",
58606
+ "round",
58607
+ "pill"
58608
+ ]);
58609
+ var RemoteButtonToneSchema = _enum([
58610
+ "neutral",
58611
+ "accent",
58612
+ "danger",
58613
+ "red",
58614
+ "green",
58615
+ "yellow",
58616
+ "blue"
58617
+ ]);
58618
+ var RemoteGroupFrameSchema = _enum([
58619
+ "none",
58620
+ "panel",
58621
+ "divider",
58622
+ "dpad",
58623
+ "rocker-v",
58624
+ "rocker-h",
58625
+ "keypad"
58626
+ ]);
58602
58627
  var RemoteLayoutButtonSchema = object({
58603
58628
  id: string().min(1).max(40),
58604
58629
  /** 0-based grid position. */
@@ -58608,12 +58633,94 @@ var RemoteLayoutButtonSchema = object({
58608
58633
  colSpan: number().int().min(1).max(24),
58609
58634
  icon: string().min(1).max(60).optional(),
58610
58635
  label: string().min(1).max(40).optional(),
58611
- role: RemoteRoleSchema
58636
+ role: RemoteRoleSchema,
58637
+ /** Absent = the plain rendering every layout had before shapes existed. */
58638
+ shape: RemoteButtonShapeSchema.optional(),
58639
+ tone: RemoteButtonToneSchema.optional(),
58640
+ /** The group this button belongs to; it must lie inside that group's rectangle. */
58641
+ groupId: string().min(1).max(40).optional()
58612
58642
  });
58643
+ /**
58644
+ * A rectangle of the grid that moves as ONE thing and is drawn with a frame: a
58645
+ * titled panel, a section divider, a D-pad ring. `componentId` names the palette
58646
+ * entry it came from (informational: the layout is self-contained).
58647
+ */
58648
+ var RemoteLayoutGroupSchema = object({
58649
+ id: string().min(1).max(40),
58650
+ componentId: string().min(1).max(80),
58651
+ frame: RemoteGroupFrameSchema,
58652
+ row: number().int().min(0).max(24),
58653
+ col: number().int().min(0).max(24),
58654
+ rowSpan: number().int().min(1).max(24),
58655
+ colSpan: number().int().min(1).max(24),
58656
+ title: string().min(1).max(40).optional()
58657
+ });
58658
+ function rectsOverlap(a, b) {
58659
+ return a.row < b.row + b.rowSpan && b.row < a.row + a.rowSpan && a.col < b.col + b.colSpan && b.col < a.col + a.colSpan;
58660
+ }
58661
+ function rectContains(outer, inner) {
58662
+ return inner.row >= outer.row && inner.col >= outer.col && inner.row + inner.rowSpan <= outer.row + outer.rowSpan && inner.col + inner.colSpan <= outer.col + outer.colSpan;
58663
+ }
58664
+ /**
58665
+ * The group rules of a layout: inside the grid, no two groups overlap, a
58666
+ * member lies inside its group, a divider holds nothing, and a button that is
58667
+ * not a member never sits inside someone else's rectangle (a group moves as
58668
+ * one thing, so a stray key under it would be left behind).
58669
+ */
58670
+ function refineGroups(grid, ctx) {
58671
+ const groups = grid.groups ?? [];
58672
+ const byId = /* @__PURE__ */ new Map();
58673
+ const fail = (message, path) => {
58674
+ ctx.addIssue({
58675
+ code: "custom",
58676
+ message,
58677
+ path
58678
+ });
58679
+ };
58680
+ groups.forEach((group, index) => {
58681
+ if (byId.has(group.id)) fail(`group id "${group.id}" is used twice`, [
58682
+ "groups",
58683
+ index,
58684
+ "id"
58685
+ ]);
58686
+ byId.set(group.id, group);
58687
+ if (group.row + group.rowSpan > grid.rows || group.col + group.colSpan > grid.columns) fail(`group "${group.id}" leaves the grid`, ["groups", index]);
58688
+ for (let other = 0; other < index; other += 1) {
58689
+ const earlier = groups[other];
58690
+ if (earlier !== void 0 && rectsOverlap(earlier, group)) {
58691
+ fail(`groups "${earlier.id}" and "${group.id}" overlap`, ["groups", index]);
58692
+ return;
58693
+ }
58694
+ }
58695
+ });
58696
+ grid.buttons.forEach((button, index) => {
58697
+ if (button.groupId !== void 0) {
58698
+ const group = byId.get(button.groupId);
58699
+ if (group === void 0) {
58700
+ fail(`button "${button.id}" names the unknown group "${button.groupId}"`, [
58701
+ "buttons",
58702
+ index,
58703
+ "groupId"
58704
+ ]);
58705
+ return;
58706
+ }
58707
+ if (group.frame === "divider") fail(`a divider group ("${group.id}") holds no buttons`, [
58708
+ "buttons",
58709
+ index,
58710
+ "groupId"
58711
+ ]);
58712
+ if (!rectContains(group, button)) fail(`button "${button.id}" lies outside its group "${group.id}"`, ["buttons", index]);
58713
+ return;
58714
+ }
58715
+ const foreign = groups.find((group) => rectsOverlap(group, button));
58716
+ if (foreign !== void 0) fail(`button "${button.id}" lies inside group "${foreign.id}" but is not a member`, ["buttons", index]);
58717
+ });
58718
+ }
58613
58719
  object({
58614
58720
  columns: number().int().min(1).max(24),
58615
58721
  rows: number().int().min(1).max(24),
58616
- buttons: array(RemoteLayoutButtonSchema).max(200)
58722
+ buttons: array(RemoteLayoutButtonSchema).max(200),
58723
+ groups: array(RemoteLayoutGroupSchema).max(50).optional()
58617
58724
  }).superRefine((grid, ctx) => {
58618
58725
  const ids = /* @__PURE__ */ new Set();
58619
58726
  const taken = /* @__PURE__ */ new Map();
@@ -58650,6 +58757,7 @@ object({
58650
58757
  taken.set(cell, button.id);
58651
58758
  }
58652
58759
  });
58760
+ refineGroups(grid, ctx);
58653
58761
  });
58654
58762
  var RemoteBoundCommandSchema = object({
58655
58763
  role: RemoteRoleSchema,
@@ -58781,6 +58889,91 @@ method(object({ kind: TemplateKindSchema.optional() }), array(TemplateRecordSche
58781
58889
  kind: "mutation",
58782
58890
  auth: "admin"
58783
58891
  });
58892
+ var RemoteComponentCategorySchema = _enum([
58893
+ "power",
58894
+ "navigation",
58895
+ "volume",
58896
+ "numbers",
58897
+ "media",
58898
+ "colour",
58899
+ "apps",
58900
+ "layout"
58901
+ ]);
58902
+ /** `<namespace>:<name>`, both lowercase slugs — `core:dpad`, `<addonId>:<name>`. */
58903
+ var COMPONENT_ID_RE = /^[a-z0-9][a-z0-9_.-]*:[a-z0-9][a-z0-9_-]*$/;
58904
+ var RemoteComponentButtonSchema = object({
58905
+ /** Joined to the instance id when the component is inserted. */
58906
+ idSuffix: string().regex(/^[a-z0-9][a-z0-9_-]{0,19}$/, { message: "a short lowercase slug" }),
58907
+ row: number().int().min(0).max(24),
58908
+ col: number().int().min(0).max(24),
58909
+ rowSpan: number().int().min(1).max(24),
58910
+ colSpan: number().int().min(1).max(24),
58911
+ role: RemoteRoleSchema,
58912
+ icon: string().min(1).max(60).optional(),
58913
+ label: string().min(1).max(40).optional(),
58914
+ shape: RemoteButtonShapeSchema.optional(),
58915
+ tone: RemoteButtonToneSchema.optional()
58916
+ });
58917
+ var RemoteLayoutComponentSchema = object({
58918
+ id: string().max(80).regex(COMPONENT_ID_RE, { message: "<namespace>:<name>, lowercase" }),
58919
+ name: string().min(1).max(60),
58920
+ nameI18n: object({
58921
+ en: string().min(1).max(60),
58922
+ it: string().min(1).max(60)
58923
+ }).optional(),
58924
+ /** A display icon key, resolved by the UI like a button icon. */
58925
+ icon: string().min(1).max(60),
58926
+ category: RemoteComponentCategorySchema,
58927
+ size: object({
58928
+ rows: number().int().min(1).max(24),
58929
+ cols: number().int().min(1).max(24)
58930
+ }),
58931
+ /** The frame drawn around the whole component, or null for loose buttons. */
58932
+ group: object({
58933
+ frame: RemoteGroupFrameSchema,
58934
+ title: string().min(1).max(40).optional()
58935
+ }).nullable(),
58936
+ buttons: array(RemoteComponentButtonSchema).max(40)
58937
+ }).superRefine((component, ctx) => {
58938
+ const suffixes = /* @__PURE__ */ new Set();
58939
+ component.buttons.forEach((button, index) => {
58940
+ if (suffixes.has(button.idSuffix)) ctx.addIssue({
58941
+ code: "custom",
58942
+ message: `button "${button.idSuffix}" is listed twice`,
58943
+ path: [
58944
+ "buttons",
58945
+ index,
58946
+ "idSuffix"
58947
+ ]
58948
+ });
58949
+ suffixes.add(button.idSuffix);
58950
+ if (button.row + button.rowSpan > component.size.rows || button.col + button.colSpan > component.size.cols) {
58951
+ ctx.addIssue({
58952
+ code: "custom",
58953
+ message: `button "${button.idSuffix}" leaves the component`,
58954
+ path: ["buttons", index]
58955
+ });
58956
+ return;
58957
+ }
58958
+ for (let other = 0; other < index; other += 1) {
58959
+ const earlier = component.buttons[other];
58960
+ if (earlier !== void 0 && rectsOverlap(earlier, button)) {
58961
+ ctx.addIssue({
58962
+ code: "custom",
58963
+ message: `buttons "${earlier.idSuffix}" and "${button.idSuffix}" overlap`,
58964
+ path: ["buttons", index]
58965
+ });
58966
+ return;
58967
+ }
58968
+ }
58969
+ });
58970
+ if (component.group?.frame === "divider" && component.buttons.length > 0) ctx.addIssue({
58971
+ code: "custom",
58972
+ message: "a divider component holds no buttons",
58973
+ path: ["buttons"]
58974
+ });
58975
+ });
58976
+ method(object({}), array(RemoteLayoutComponentSchema), { auth: "protected" });
58784
58977
  DeviceType.Button, method(object({ deviceId: number().int().nonnegative() }), _void(), {
58785
58978
  kind: "mutation",
58786
58979
  auth: "protected"
@@ -67818,6 +68011,124 @@ var trainingCapability = {
67818
68011
  })
67819
68012
  }
67820
68013
  };
68014
+ var btn = (idSuffix, row, col, init) => ({
68015
+ idSuffix,
68016
+ row,
68017
+ col,
68018
+ rowSpan: 1,
68019
+ colSpan: 1,
68020
+ ...init
68021
+ });
68022
+ function rocker(id, name, it, frame, title, buttons, size) {
68023
+ return {
68024
+ id,
68025
+ name,
68026
+ nameI18n: {
68027
+ en: name,
68028
+ it
68029
+ },
68030
+ icon: frame === "rocker-v" ? "chevrons-up-down" : "chevrons-left-right",
68031
+ category: id.includes("channel") || id.includes("volume") ? "volume" : "navigation",
68032
+ size,
68033
+ group: title === null ? { frame } : {
68034
+ frame,
68035
+ title
68036
+ },
68037
+ buttons
68038
+ };
68039
+ }
68040
+ btn("power", 0, 0, {
68041
+ role: "power",
68042
+ shape: "round",
68043
+ tone: "danger"
68044
+ }), btn("up", 0, 1, {
68045
+ role: "up",
68046
+ icon: "chevron-up"
68047
+ }), btn("left", 1, 0, {
68048
+ role: "left",
68049
+ icon: "chevron-left"
68050
+ }), btn("ok", 1, 1, {
68051
+ role: "ok",
68052
+ shape: "round",
68053
+ tone: "accent"
68054
+ }), btn("right", 1, 2, {
68055
+ role: "right",
68056
+ icon: "chevron-right"
68057
+ }), btn("down", 2, 1, {
68058
+ role: "down",
68059
+ icon: "chevron-down"
68060
+ }), rocker("core:rocker-volume-v", "Volume rocker", "Bilanciere volume", "rocker-v", "VOL", [btn("up", 0, 0, {
68061
+ role: "volume_up",
68062
+ icon: "plus",
68063
+ shape: "pill"
68064
+ }), btn("down", 1, 0, {
68065
+ role: "volume_down",
68066
+ icon: "minus",
68067
+ shape: "pill"
68068
+ })], {
68069
+ rows: 2,
68070
+ cols: 1
68071
+ }), rocker("core:rocker-channel-v", "Channel rocker", "Bilanciere canali", "rocker-v", "CH", [btn("up", 0, 0, {
68072
+ role: "channel_up",
68073
+ icon: "chevron-up",
68074
+ shape: "pill"
68075
+ }), btn("down", 1, 0, {
68076
+ role: "channel_down",
68077
+ icon: "chevron-down",
68078
+ shape: "pill"
68079
+ })], {
68080
+ rows: 2,
68081
+ cols: 1
68082
+ }), rocker("core:rocker-h", "Minus / plus rocker", "Bilanciere meno / più", "rocker-h", null, [btn("minus", 0, 0, {
68083
+ role: "custom:minus",
68084
+ label: "Minus",
68085
+ icon: "minus",
68086
+ shape: "pill"
68087
+ }), btn("plus", 0, 1, {
68088
+ role: "custom:plus",
68089
+ label: "Plus",
68090
+ icon: "plus",
68091
+ shape: "pill"
68092
+ })], {
68093
+ rows: 1,
68094
+ cols: 2
68095
+ }), [...Array.from({ length: 9 }, (_, i) => btn(`d${i + 1}`, Math.floor(i / 3), i % 3, { role: `digit_${i + 1}` })), btn("d0", 3, 1, { role: "digit_0" })], btn("red", 0, 0, {
68096
+ role: "custom:color_red",
68097
+ label: "Red",
68098
+ tone: "red"
68099
+ }), btn("green", 0, 1, {
68100
+ role: "custom:color_green",
68101
+ label: "Green",
68102
+ tone: "green"
68103
+ }), btn("yellow", 0, 2, {
68104
+ role: "custom:color_yellow",
68105
+ label: "Yellow",
68106
+ tone: "yellow"
68107
+ }), btn("blue", 0, 3, {
68108
+ role: "custom:color_blue",
68109
+ label: "Blue",
68110
+ tone: "blue"
68111
+ }), btn("rewind", 0, 0, {
68112
+ role: "rewind",
68113
+ icon: "rewind"
68114
+ }), btn("play", 0, 1, {
68115
+ role: "play",
68116
+ icon: "play"
68117
+ }), btn("pause", 0, 2, {
68118
+ role: "pause",
68119
+ icon: "pause"
68120
+ }), btn("forward", 0, 3, {
68121
+ role: "fast_forward",
68122
+ icon: "fast-forward"
68123
+ }), btn("stop", 0, 4, {
68124
+ role: "stop",
68125
+ icon: "square"
68126
+ }), [
68127
+ 1,
68128
+ 2,
68129
+ 3,
68130
+ 4
68131
+ ].map((n) => btn(`app${n}`, 0, n - 1, { role: `custom:app_slot_${n}` })), btn("back", 0, 0, { role: "back" }), btn("home", 0, 1, { role: "home" }), btn("menu", 0, 2, { role: "menu" });
67821
68132
  discriminatedUnion("kind", [object({
67822
68133
  kind: literal("raw"),
67823
68134
  timings: array(number().int()),
@@ -75682,6 +75993,13 @@ Object.freeze({
75682
75993
  access: "create",
75683
75994
  role: "admin"
75684
75995
  },
75996
+ "remoteLayoutComponents.listComponents": {
75997
+ capName: "remote-layout-components",
75998
+ capScope: "system",
75999
+ addonId: null,
76000
+ access: "view",
76001
+ role: "admin"
76002
+ },
75685
76003
  "runningState.getStatus": {
75686
76004
  capName: "running-state",
75687
76005
  capScope: "device",
@@ -81858,6 +82176,7 @@ var SYSTEM_CAP_VOCABULARY = {
81858
82176
  "recording-export": system("recording exports — requested from the timeline, not an automation step"),
81859
82177
  records: system(INTERNAL),
81860
82178
  remote: system("the per-device remote setup — authored in the Customize remote editor, sent through the remote UI"),
82179
+ "remote-layout-components": system("the palette of the remote template editor — read-only data, never actuated"),
81861
82180
  "server-management": system(CLUSTER),
81862
82181
  "settings-store": system(INTERNAL),
81863
82182
  "smtp-provider": system(INTERNAL),
@@ -36,7 +36,7 @@ async function r() {
36
36
  }
37
37
  },
38
38
  "@camstack/types": {
39
- version: "1.2.447",
39
+ version: "1.2.449",
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.353",
84
+ version: "1.2.355",
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-BkNG49yZ.js");
2
+ require("./dist-BsIozugK.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-BkNG49yZ.js");
2
+ const require_dist = require("../dist-BsIozugK.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 parseTrainingEventLine, c as BaseAddon, d as addonPagesSourceCapability, i as TrainingResultSchema, l as RECORD_MAX_DATA_BYTES, m as defineRecordKinds, n as TrainingJobSchema, o as trainingCapability, r as TrainingJobSpecSchema, t as TRAINING_JOB_SCHEMA } from "../dist-DW0wmCpB.mjs";
1
+ import { a as parseTrainingEventLine, c as BaseAddon, d as addonPagesSourceCapability, i as TrainingResultSchema, l as RECORD_MAX_DATA_BYTES, m as defineRecordKinds, n as TrainingJobSchema, o as trainingCapability, r as TrainingJobSpecSchema, t as TRAINING_JOB_SCHEMA } from "../dist-BY4SxNbQ.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-Dq7_CDVT.mjs";
4
+ import { g as l } from "./responsive-YANRyril.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-BkNG49yZ.js");
2
+ const require_dist = require("../../dist-BsIozugK.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 BaseAddon, f as arrayItemFieldPath, g as globalSecretScope, h as entryBody, p as defineEntryKind, s as trainingProviderCapability, u as SECRET_CLEAR, v as isSecretMarker, w as string, x as number, y as toSecretFieldView } from "../../dist-DW0wmCpB.mjs";
1
+ import { C as record, S as object, _ as isSecretClear, b as boolean, c as BaseAddon, f as arrayItemFieldPath, g as globalSecretScope, h as entryBody, p as defineEntryKind, s as trainingProviderCapability, u as SECRET_CLEAR, v as isSecretMarker, w as string, x as number, y as toSecretFieldView } from "../../dist-BY4SxNbQ.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";
@@ -1,2 +1,2 @@
1
- import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-CLjAuQ-T.mjs";
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_training_page__remoteEntry_js-Xpg6ATFx.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 { D as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-L5NIyvFm.mjs";
3
+ import { D as c } from "./_virtual_mf___mfe_internal__addon_training_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-CmVZHQ-k.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-Dq7_CDVT.mjs";
4
+ import { g as o } from "./responsive-YANRyril.mjs";
5
5
  //#region ../ui-library/src/composites/confirm-dialog.tsx
6
6
  r();
7
7
  var s = o("camstack:confirm-dialog", null);
@@ -2762,7 +2762,7 @@ async function or(e) {
2762
2762
  }
2763
2763
  }
2764
2764
  async function sr() {
2765
- return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-CoE4OqSm.mjs")).catch((e) => {
2765
+ return ir ||= or(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_training_page-wgqnvZam.mjs")).catch((e) => {
2766
2766
  throw ir = void 0, e;
2767
2767
  }), ir;
2768
2768
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-training",
3
- "version": "0.1.109",
3
+ "version": "0.1.111",
4
4
  "description": "Cloud training for CamStack: fine-tune the root detector on your own frames, on your own GPU-cloud account",
5
5
  "keywords": [
6
6
  "camstack",