@camstack/addon-model-studio 1.0.3 → 1.0.5

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 (29) hide show
  1. package/dist/MaskShapeCanvas-C4g96eMz.mjs +13806 -0
  2. package/dist/MotionZonesSettings-B8ishTpw.mjs +309 -0
  3. package/dist/PrivacyMaskSettings-P06be0E2.mjs +290 -0
  4. package/dist/_stub.js +8968 -0
  5. package/dist/_virtual_mf-localSharedImportMap___mfe_internal__addon_model_studio_page-CI4Ho-xh.mjs +156 -0
  6. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_sdk__loadShare__.js-ZNPquRb4.mjs +25 -0
  7. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-cUKFrqHE.mjs +26 -0
  8. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-B-9Pn2K0.mjs +25 -0
  9. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_client__loadShare__.js-nybV3Y4f.mjs +25 -0
  10. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_trpc_mf_1_react_mf_2_query__loadShare__.js-BvzT760A.mjs +26 -0
  11. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs +70 -0
  12. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs +26 -0
  13. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_2_dom__loadShare__.js-Dh0QbaoP.mjs +26 -0
  14. package/dist/_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-BjUy5evk.mjs +25 -0
  15. package/dist/addon-model-studio.css +3 -0
  16. package/dist/hostInit-I8461iVN.mjs +129 -0
  17. package/dist/model-studio.addon.js +72 -12
  18. package/dist/model-studio.addon.mjs +72 -12
  19. package/dist/player-overlays-CeF0YjKF.mjs +163 -0
  20. package/dist/remoteEntry.js +2 -0
  21. package/dist/remoteEntry.ssr.js +33 -0
  22. package/dist/rolldown-runtime-HEgqtunE.mjs +20 -0
  23. package/dist/trash-2-Ct7_ZXVk.mjs +49 -0
  24. package/dist/virtualExposes-CWSi4E_g.mjs +27 -0
  25. package/dist/virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C-Qc_p47.mjs +2857 -0
  26. package/dist/virtual_mf-exposes-ssr___mfe_internal__addon_model_studio_page__remoteEntry_js-BoA99BYM.mjs +10 -0
  27. package/package.json +30 -3
  28. package/python/convert_lib.py +38 -3
  29. package/python/requirements.txt +10 -0
@@ -4638,7 +4638,7 @@ function _instanceof(cls, params = {}) {
4638
4638
  return inst;
4639
4639
  }
4640
4640
  //#endregion
4641
- //#region ../types/dist/sleep-BV7rLc6Y.mjs
4641
+ //#region ../types/dist/sleep-NOH4yRwj.mjs
4642
4642
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4643
4643
  EventCategory["SystemBoot"] = "system.boot";
4644
4644
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -5753,15 +5753,24 @@ var BaseAddon = class {
5753
5753
  } catch {}
5754
5754
  }
5755
5755
  /**
5756
- * Resolve the shared models directory path via the storage capability.
5757
- * Falls back to `camstack-data/models` if storage is unavailable.
5758
- * Used by inference addons (detection-pipeline, audio-classifier, embedding-encoder).
5756
+ * Resolve the shared, node-local models directory: `<nodeDataDir>/models`.
5757
+ *
5758
+ * This is the SINGLE centralized models-dir resolver for every inference addon
5759
+ * (detection-pipeline, audio-analyzer, embedding-encoder, model-studio). It is
5760
+ * anchored at the node's own writable data root (`ctx.nodeDataDir`, i.e.
5761
+ * `CAMSTACK_DATA` ?? the kernel boot dir) — never the hub-singleton `storage`
5762
+ * cap, which returns the hub's `/data/models` to every node and breaks any node
5763
+ * whose real data dir differs (e.g. the macOS electron agent).
5764
+ *
5765
+ * `node:path`/`node:fs` are imported dynamically so the `@camstack/types` root
5766
+ * barrel (re-exported into browser bundles) stays free of node builtins.
5759
5767
  */
5760
5768
  async resolveModelsDir() {
5761
- return this.ctx.api.storage.resolve.query({
5762
- location: "models",
5763
- relativePath: ""
5764
- }).catch(() => "camstack-data/models");
5769
+ const { join } = await import("node:path");
5770
+ const { promises: fsp } = await import("node:fs");
5771
+ const dir = join(this.ctx.nodeDataDir, "models");
5772
+ await fsp.mkdir(dir, { recursive: true });
5773
+ return dir;
5765
5774
  }
5766
5775
  /**
5767
5776
  * Access the runtime capability registry for in-process provider lookups.
@@ -12524,7 +12533,13 @@ var AddonPageDeclarationSchema = object({
12524
12533
  */
12525
12534
  bundle: string()
12526
12535
  });
12527
- method(_void(), array(AddonPageDeclarationSchema).readonly());
12536
+ var addonPagesSourceCapability = {
12537
+ name: "addon-pages-source",
12538
+ scope: "system",
12539
+ mode: "collection",
12540
+ internal: true,
12541
+ methods: { listPages: method(_void(), array(AddonPageDeclarationSchema).readonly()) }
12542
+ };
12528
12543
  /**
12529
12544
  * `addon-widgets-source` — collection cap exposing per-addon raw widget
12530
12545
  * declarations. Mirrors the addon-pages split: every addon shipping
@@ -12720,7 +12735,8 @@ var modelConvertCapability = {
12720
12735
  sessionId: string().optional()
12721
12736
  }), ConvertResultSchema, {
12722
12737
  kind: "mutation",
12723
- auth: "admin"
12738
+ auth: "admin",
12739
+ timeoutMs: 6e5
12724
12740
  }) }
12725
12741
  };
12726
12742
  var AddonHttpRouteSchema = object({
@@ -14257,7 +14273,14 @@ var NotificationRuleConditionsSchema = object({
14257
14273
  /** Match against `event.data.eventType` token (e.g. `'press_long'`). When non-empty, only events
14258
14274
  * carrying a matching `data.eventType` string pass this condition. Rules without this field are
14259
14275
  * unaffected (back-compat). Distinct from `rule.eventTypes` which holds EventCategory strings. */
14260
- eventTypeTokens: array(string()).readonly().optional()
14276
+ eventTypeTokens: array(string()).readonly().optional(),
14277
+ /** Match detections whose CLIP image embedding is semantically similar to this free-text
14278
+ * description. Requires the embedding-encoder cap to have pre-warmed the text vector.
14279
+ * `minSimilarity` is the cosine similarity threshold in [0, 1]. */
14280
+ clipDescription: object({
14281
+ text: string().min(1),
14282
+ minSimilarity: number().min(0).max(1)
14283
+ }).optional()
14261
14284
  });
14262
14285
  var NotificationRuleTemplateSchema = object({
14263
14286
  title: string(),
@@ -14499,6 +14522,16 @@ var TrackedDetectionSchema = object({
14499
14522
  zones: array(string()).readonly(),
14500
14523
  state: TrackStateSchema
14501
14524
  });
14525
+ var ScoredObjectEventSchema = ObjectEventSchema.extend({ score: number() });
14526
+ var SearchObjectEventsInput = object({
14527
+ text: string(),
14528
+ deviceId: number().optional(),
14529
+ since: number().optional(),
14530
+ until: number().optional(),
14531
+ classFilter: string().optional(),
14532
+ limit: number().default(50),
14533
+ minScore: number().min(0).max(1).default(.2)
14534
+ });
14502
14535
  DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).readonly()), method(object({
14503
14536
  deviceId: number(),
14504
14537
  trackId: string()
@@ -14533,7 +14566,7 @@ DeviceType.Camera, method(object({ deviceId: number() }), array(TrackSchema).rea
14533
14566
  }), method(object({
14534
14567
  eventId: string(),
14535
14568
  kind: MediaFileKindEnum.optional()
14536
- }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), object({
14569
+ }), array(MediaFileSchema).readonly()), method(object({ trackId: string() }), array(MediaFileSchema).readonly()), method(SearchObjectEventsInput, array(ScoredObjectEventSchema).readonly()), object({
14537
14570
  deviceId: number(),
14538
14571
  timestamp: number(),
14539
14572
  frameWidth: number(),
@@ -19183,6 +19216,12 @@ Object.freeze({
19183
19216
  addonId: null,
19184
19217
  access: "create"
19185
19218
  },
19219
+ "pipelineAnalytics.searchObjectEvents": {
19220
+ capName: "pipeline-analytics",
19221
+ capScope: "device",
19222
+ addonId: null,
19223
+ access: "view"
19224
+ },
19186
19225
  "pipelineExecutor.cacheFrameInPool": {
19187
19226
  capName: "pipeline-executor",
19188
19227
  capScope: "system",
@@ -21418,6 +21457,20 @@ var ModelStudioAddon = class extends BaseAddon {
21418
21457
  id = "model-studio";
21419
21458
  modelsState = null;
21420
21459
  availabilityState = null;
21460
+ /**
21461
+ * Module-Federation page declaration surfaced via the `addon-pages-source`
21462
+ * collection cap. Mirrors the manifest `pages[]` entry — admin-ui's
21463
+ * `<AddonPageLoader>` loads `addon_model_studio_page/page` from
21464
+ * `/api/addon-pages/model-studio/remoteEntry.js`.
21465
+ */
21466
+ pages = [{
21467
+ id: "model-studio",
21468
+ label: "Model Studio",
21469
+ icon: "boxes",
21470
+ path: "/addon/model-studio",
21471
+ remoteName: "addon_model_studio_page",
21472
+ bundle: "remoteEntry.js"
21473
+ }];
21421
21474
  constructor() {
21422
21475
  super({});
21423
21476
  }
@@ -21471,9 +21524,16 @@ var ModelStudioAddon = class extends BaseAddon {
21471
21524
  this.availabilityState = this.state(KEY_AVAILABILITY, ModelAvailabilityMapSchema, {});
21472
21525
  const rawNode = this.ctx.kernel?.localNodeId ?? "hub";
21473
21526
  const isHub = (rawNode.includes("/") ? rawNode.split("/")[0] : rawNode) === "hub";
21527
+ const pagesProvider = {
21528
+ id: this.id,
21529
+ listPages: () => this.pages
21530
+ };
21474
21531
  const providers = [{
21475
21532
  capability: modelConvertCapability,
21476
21533
  provider: buildModelConvertProvider(this.makeConvertDeps())
21534
+ }, {
21535
+ capability: addonPagesSourceCapability,
21536
+ provider: pagesProvider
21477
21537
  }];
21478
21538
  if (isHub) providers.push({
21479
21539
  capability: customModelRegistryCapability,
@@ -0,0 +1,163 @@
1
+ import { c as e, g as t, h as n, l as r, n as i, p as a, r as o, t as s, u as c, y as l } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react__loadShare__.js-DJDHChgO.mjs";
2
+ import { n as u, r as d, t as f } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare__react_mf_1_jsx_mf_2_runtime__loadShare__.js-ds_Ehzaa.mjs";
3
+ import { c as p } from "./_virtual_mf___mfe_internal__addon_model_studio_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-cUKFrqHE.mjs";
4
+ //#region ../ui-library/src/lib/cap-error.ts
5
+ function m(e) {
6
+ if (typeof e != "object" || !e) return null;
7
+ let t = Reflect.get(e, "data");
8
+ if (typeof t == "object" && t) {
9
+ let e = Reflect.get(t, "capRouteReason");
10
+ if (typeof e == "string") return e;
11
+ }
12
+ return null;
13
+ }
14
+ function h(e) {
15
+ let t = m(e);
16
+ return t === null ? (e instanceof Error ? e.message : String(e)).includes("provider not available") : t === "no-provider" || t === "node-offline";
17
+ }
18
+ //#endregion
19
+ //#region ../ui-library/src/lib/responsive.ts
20
+ var g = "text-[10px] text-foreground-subtle";
21
+ //#endregion
22
+ //#region ../ui-library/src/lib/shared-context.ts
23
+ l();
24
+ function _(e, t) {
25
+ if (typeof globalThis > "u") return s(t);
26
+ let n = globalThis.__camstackSharedContexts, r = n ?? /* @__PURE__ */ new Map();
27
+ n || (globalThis.__camstackSharedContexts = r);
28
+ let i = r.get(e);
29
+ if (i) return i;
30
+ let a = s(t);
31
+ return r.set(e, a), a;
32
+ }
33
+ //#endregion
34
+ //#region ../ui-library/node_modules/lucide-react/dist/esm/shared/src/utils/mergeClasses.js
35
+ var v = (...e) => e.filter((e, t, n) => !!e && e.trim() !== "" && n.indexOf(e) === t).join(" ").trim(), y = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), b = (e) => e.replace(/^([A-Z])|[\s-_]+(\w)/g, (e, t, n) => n ? n.toUpperCase() : t.toLowerCase()), x = (e) => {
36
+ let t = b(e);
37
+ return t.charAt(0).toUpperCase() + t.slice(1);
38
+ }, S = {
39
+ xmlns: "http://www.w3.org/2000/svg",
40
+ width: 24,
41
+ height: 24,
42
+ viewBox: "0 0 24 24",
43
+ fill: "none",
44
+ stroke: "currentColor",
45
+ strokeWidth: 2,
46
+ strokeLinecap: "round",
47
+ strokeLinejoin: "round"
48
+ }, C = (e) => {
49
+ for (let t in e) if (t.startsWith("aria-") || t === "role" || t === "title") return !0;
50
+ return !1;
51
+ };
52
+ //#endregion
53
+ //#region ../ui-library/node_modules/lucide-react/dist/esm/Icon.js
54
+ l();
55
+ var w = o(({ color: e = "currentColor", size: t = 24, strokeWidth: n = 2, absoluteStrokeWidth: r, className: a = "", children: o, iconNode: s, ...c }, l) => i("svg", {
56
+ ref: l,
57
+ ...S,
58
+ width: t,
59
+ height: t,
60
+ stroke: e,
61
+ strokeWidth: r ? Number(n) * 24 / Number(t) : n,
62
+ className: v("lucide", a),
63
+ ...!o && !C(c) && { "aria-hidden": "true" },
64
+ ...c
65
+ }, [...s.map(([e, t]) => i(e, t)), ...Array.isArray(o) ? o : [o]]));
66
+ //#endregion
67
+ //#region ../ui-library/node_modules/lucide-react/dist/esm/createLucideIcon.js
68
+ l();
69
+ var T = (e, t) => {
70
+ let n = o(({ className: n, ...r }, a) => i(w, {
71
+ ref: a,
72
+ iconNode: t,
73
+ className: v(`lucide-${y(x(e))}`, `lucide-${e}`, n),
74
+ ...r
75
+ }));
76
+ return n.displayName = x(e), n;
77
+ }, E = T("chevron-down", [["path", {
78
+ d: "m6 9 6 6 6-6",
79
+ key: "qrunsl"
80
+ }]]), D = T("chevron-right", [["path", {
81
+ d: "m9 18 6-6-6-6",
82
+ key: "mthhwq"
83
+ }]]);
84
+ //#endregion
85
+ //#region ../ui-library/src/contexts/system-context.tsx
86
+ l();
87
+ var O = _("camstack:system", null);
88
+ function k() {
89
+ let e = r(O);
90
+ if (!e) throw Error("useSystem(): no <SystemProvider> in tree");
91
+ return e;
92
+ }
93
+ //#endregion
94
+ //#region ../ui-library/src/hooks/use-device-proxy.ts
95
+ l();
96
+ var A = "capability.binding-changed";
97
+ function j(e, t) {
98
+ let [r, i] = n(null);
99
+ return c(() => {
100
+ if (t === null) {
101
+ i(null);
102
+ return;
103
+ }
104
+ let n = !1, r = async () => {
105
+ try {
106
+ let r = await e.deviceManager.getBindings.query({ deviceId: t });
107
+ n || i(r);
108
+ } catch {
109
+ n || i((e) => e);
110
+ }
111
+ };
112
+ r();
113
+ let a = e.live?.onEvent.subscribe({ category: A }, { onData: (e) => {
114
+ let n = e.data?.source;
115
+ if (!n) {
116
+ r();
117
+ return;
118
+ }
119
+ n.type === "device" && n.id === t && r();
120
+ } });
121
+ return () => {
122
+ n = !0, a?.unsubscribe();
123
+ };
124
+ }, [e, t]), a(() => r ? p(e, r) : null, [e, r]);
125
+ }
126
+ function M(n) {
127
+ let r = e((e) => n ? n.subscribe(() => e()) : () => void 0, [n]), i = e(() => n?.value, [n]);
128
+ return t(r, i, i);
129
+ }
130
+ //#endregion
131
+ //#region ../ui-library/src/composites/widget-panel.tsx
132
+ l();
133
+ function N({ title: e, icon: t, headerRight: r, collapsible: i = !1, defaultOpen: a = !0, bodyClassName: o = "p-3", children: s }) {
134
+ let [c, l] = n(a), p = !i || c, m = /* @__PURE__ */ d(f, { children: [/* @__PURE__ */ d("span", {
135
+ className: "flex items-center gap-2 text-xs font-semibold uppercase tracking-wider text-foreground",
136
+ children: [t, e]
137
+ }), i ? u(c ? E : D, { className: "h-3.5 w-3.5 text-foreground-subtle" }) : r] }), h = `px-4 py-2 flex items-center justify-between ${p ? "border-b border-border" : ""}`;
138
+ return /* @__PURE__ */ d("div", {
139
+ className: "rounded-lg border border-border bg-surface overflow-hidden",
140
+ children: [i ? /* @__PURE__ */ u("button", {
141
+ type: "button",
142
+ onClick: () => l((e) => !e),
143
+ className: `w-full text-left ${h}`,
144
+ children: m
145
+ }) : /* @__PURE__ */ u("div", {
146
+ className: h,
147
+ children: m
148
+ }), p ? /* @__PURE__ */ u("div", {
149
+ className: o,
150
+ children: s
151
+ }) : null]
152
+ });
153
+ }
154
+ l(), _("camstack:player-overlays-state", null);
155
+ var P = _("camstack:player-overlays-actions", null);
156
+ function F(e) {
157
+ let t = r(P);
158
+ c(() => {
159
+ if (!(!t || !e)) return t.setLayer(e), () => t.removeLayer(e.id);
160
+ }, [t, e]);
161
+ }
162
+ //#endregion
163
+ export { k as a, _ as c, M as i, g as l, N as n, E as o, j as r, T as s, F as t, h as u };
@@ -0,0 +1,2 @@
1
+ import { n as e, t } from "./virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_model_studio_page__remoteEntry_js-C-Qc_p47.mjs";
2
+ export { t as get, e as init };
@@ -0,0 +1,33 @@
1
+ import { init as e } from "@module-federation/runtime";
2
+ //#region virtual:mf-REMOTE_ENTRY_SSR_ID:__mfe_internal__addon_model_studio_page__remoteEntry_js
3
+ var t;
4
+ async function n() {
5
+ return t ??= import("./virtual_mf-exposes-ssr___mfe_internal__addon_model_studio_page__remoteEntry_js-BoA99BYM.mjs").then((e) => e.default ?? e), t;
6
+ }
7
+ async function r(t = {}, n = []) {
8
+ let r = e({
9
+ name: "addon_model_studio_page",
10
+ remotes: [],
11
+ shared: {}
12
+ }), i = { from: "addon_model_studio_page" };
13
+ if (!(n.indexOf(i) >= 0)) {
14
+ n.push(i), r.initShareScopeMap("default", t);
15
+ try {
16
+ await Promise.all(await r.initializeSharing("default", {
17
+ strategy: "version-first",
18
+ from: "build",
19
+ initScope: n
20
+ }));
21
+ } catch (e) {
22
+ console.error("[Module Federation SSR]", e);
23
+ }
24
+ return r;
25
+ }
26
+ }
27
+ async function i(e) {
28
+ let t = await n();
29
+ if (!(e in t)) throw Error(`[Module Federation] Module ${e} does not exist in container.`);
30
+ return t[e]().then((e) => () => e);
31
+ }
32
+ //#endregion
33
+ export { i as get, r as init };
@@ -0,0 +1,20 @@
1
+ //#region \0rolldown/runtime.js
2
+ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescriptor, r = Object.getOwnPropertyNames, i = Object.getPrototypeOf, a = Object.prototype.hasOwnProperty, o = (e, t) => () => (e && (t = e(e = 0)), t), s = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), c = (e, n) => {
3
+ let r = {};
4
+ for (var i in e) t(r, i, {
5
+ get: e[i],
6
+ enumerable: !0
7
+ });
8
+ return n || t(r, Symbol.toStringTag, { value: "Module" }), r;
9
+ }, l = (e, i, o, s) => {
10
+ if (i && typeof i == "object" || typeof i == "function") for (var c = r(i), l = 0, u = c.length, d; l < u; l++) d = c[l], !a.call(e, d) && d !== o && t(e, d, {
11
+ get: ((e) => i[e]).bind(null, d),
12
+ enumerable: !(s = n(i, d)) || s.enumerable
13
+ });
14
+ return e;
15
+ }, u = (n, r, a) => (a = n == null ? {} : e(i(n)), l(r || !n || !n.__esModule ? t(a, "default", {
16
+ value: n,
17
+ enumerable: !0
18
+ }) : a, n)), d = (e) => a.call(e, "module.exports") ? e["module.exports"] : l(t({}, "__esModule", { value: !0 }), e);
19
+ //#endregion
20
+ export { u as a, d as i, o as n, c as r, s as t };
@@ -0,0 +1,49 @@
1
+ import { s as e } from "./player-overlays-CeF0YjKF.mjs";
2
+ var t = e("eye-off", [
3
+ ["path", {
4
+ d: "M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",
5
+ key: "ct8e1f"
6
+ }],
7
+ ["path", {
8
+ d: "M14.084 14.158a3 3 0 0 1-4.242-4.242",
9
+ key: "151rxh"
10
+ }],
11
+ ["path", {
12
+ d: "M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",
13
+ key: "13bj9a"
14
+ }],
15
+ ["path", {
16
+ d: "m2 2 20 20",
17
+ key: "1ooewy"
18
+ }]
19
+ ]), n = e("square", [["rect", {
20
+ width: "18",
21
+ height: "18",
22
+ x: "3",
23
+ y: "3",
24
+ rx: "2",
25
+ key: "afitv7"
26
+ }]]), r = e("trash-2", [
27
+ ["path", {
28
+ d: "M10 11v6",
29
+ key: "nco0om"
30
+ }],
31
+ ["path", {
32
+ d: "M14 11v6",
33
+ key: "outv1u"
34
+ }],
35
+ ["path", {
36
+ d: "M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",
37
+ key: "miytrc"
38
+ }],
39
+ ["path", {
40
+ d: "M3 6h18",
41
+ key: "d0wm0j"
42
+ }],
43
+ ["path", {
44
+ d: "M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",
45
+ key: "e791ji"
46
+ }]
47
+ ]);
48
+ //#endregion
49
+ export { n, t as r, r as t };
@@ -0,0 +1,27 @@
1
+ //#region virtual:mf-exposes:__mfe_internal__addon_model_studio_page__remoteEntry_js
2
+ var e = {}, t = /* @__PURE__ */ new Set(), n = Promise.resolve();
3
+ async function r(e) {
4
+ let t = n.then(e, e);
5
+ return n = t.then(() => void 0, () => void 0), t;
6
+ }
7
+ async function i(n) {
8
+ if (typeof document > "u") return;
9
+ let r = e[n] || [];
10
+ await Promise.all(r.map((e) => {
11
+ let n = new URL(e, import.meta.url).href;
12
+ return t.has(n) || (t.add(n), document.querySelector(`link[rel="stylesheet"][data-mf-href="${n}"]`)) ? Promise.resolve() : new Promise((e, t) => {
13
+ let r = document.createElement("link");
14
+ r.rel = "stylesheet", r.href = n, r.setAttribute("data-mf-href", n), r.onload = () => e(), r.onerror = () => t(/* @__PURE__ */ Error(`[Module Federation] Failed to load CSS asset: ${n}`)), document.head.appendChild(r);
15
+ });
16
+ }));
17
+ }
18
+ var a = { "./page": async () => {
19
+ await i("./page");
20
+ let e = await r(() => import("./_stub.js")), t = {};
21
+ return Object.assign(t, e), Object.defineProperty(t, "__esModule", {
22
+ value: !0,
23
+ enumerable: !1
24
+ }), t;
25
+ } };
26
+ //#endregion
27
+ export { a as default };