@herdingbits/trailhead-core 0.0.12 → 0.0.14
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/shell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,oBAAoB,CAAqC;IACjE,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,SAAgB,OAAO,EAAE,mBAAmB,CAAC;gBAEjC,MAAM,EAAE,WAAW;IAO/B;;;OAGG;IACI,aAAa,IAAI,OAAO,EAAE;IAIjC;;OAEG;YACW,IAAI;IAwBlB;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,SAAS;
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,mBAAmB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAiB;IACnC,OAAO,CAAC,oBAAoB,CAAqC;IACjE,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,SAAgB,OAAO,EAAE,mBAAmB,CAAC;gBAEjC,MAAM,EAAE,WAAW;IAO/B;;;OAGG;IACI,aAAa,IAAI,OAAO,EAAE;IAIjC;;OAEG;YACW,IAAI;IAwBlB;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,SAAS;IAiFjB;;OAEG;YACW,cAAc;IAU5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;IACH,OAAO,CAAC,WAAW;IAsBnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;YACW,UAAU;CAoDzB"}
|
package/dist/shell.js
CHANGED
|
@@ -64,28 +64,35 @@ export class Trailhead {
|
|
|
64
64
|
warning: (message, duration) => adapter.feedback.showToast(message, "warning", duration || 4000),
|
|
65
65
|
info: (message, duration) => adapter.feedback.showToast(message, "info", duration),
|
|
66
66
|
alert: (message, variant = "info", duration) => adapter.feedback.showToast(message, variant, duration),
|
|
67
|
-
confirm: (message, title = "Confirm") => adapter.feedback
|
|
67
|
+
confirm: (message, title = "Confirm") => adapter.feedback
|
|
68
|
+
.showDialog({
|
|
68
69
|
message,
|
|
69
70
|
title,
|
|
70
71
|
buttons: [
|
|
71
72
|
{ label: "Cancel", value: "cancel", variant: "secondary" },
|
|
72
73
|
{ label: "Confirm", value: "confirm", variant: "primary" },
|
|
73
74
|
],
|
|
74
|
-
})
|
|
75
|
-
|
|
75
|
+
})
|
|
76
|
+
.then((result) => result.value === "confirm"),
|
|
77
|
+
ok: (message, title = "Information") => adapter.feedback
|
|
78
|
+
.showDialog({
|
|
76
79
|
message,
|
|
77
80
|
title,
|
|
78
81
|
buttons: [{ label: "OK", value: "ok", variant: "primary" }],
|
|
79
|
-
})
|
|
80
|
-
|
|
82
|
+
})
|
|
83
|
+
.then(() => undefined),
|
|
84
|
+
yesNo: (message, title = "Confirm") => adapter.feedback
|
|
85
|
+
.showDialog({
|
|
81
86
|
message,
|
|
82
87
|
title,
|
|
83
88
|
buttons: [
|
|
84
89
|
{ label: "No", value: "no", variant: "secondary" },
|
|
85
90
|
{ label: "Yes", value: "yes", variant: "primary" },
|
|
86
91
|
],
|
|
87
|
-
})
|
|
88
|
-
|
|
92
|
+
})
|
|
93
|
+
.then((result) => result.value === "yes"),
|
|
94
|
+
yesNoCancel: (message, title = "Confirm") => adapter.feedback
|
|
95
|
+
.showDialog({
|
|
89
96
|
message,
|
|
90
97
|
title,
|
|
91
98
|
buttons: [
|
|
@@ -93,9 +100,9 @@ export class Trailhead {
|
|
|
93
100
|
{ label: "No", value: "no", variant: "secondary" },
|
|
94
101
|
{ label: "Yes", value: "yes", variant: "primary" },
|
|
95
102
|
],
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
|
|
103
|
+
})
|
|
104
|
+
.then((result) => result.value || "cancel"),
|
|
105
|
+
custom: (message, title, buttons) => adapter.feedback.showDialog({ message, title, buttons }).then((result) => result.value),
|
|
99
106
|
},
|
|
100
107
|
http: {
|
|
101
108
|
get: http.get,
|
|
@@ -218,7 +225,17 @@ export class Trailhead {
|
|
|
218
225
|
if (!root)
|
|
219
226
|
return;
|
|
220
227
|
root.innerHTML = `<div class="shell-loading">Loading...</div>`;
|
|
228
|
+
const isDev = window.__SHELL_DEV__ === true;
|
|
221
229
|
try {
|
|
230
|
+
if (isDev) {
|
|
231
|
+
// ✅ DEV PATH — Vite-native, HMR-compatible
|
|
232
|
+
const mod = await import(
|
|
233
|
+
/* @vite-ignore */
|
|
234
|
+
`${this.basePath}${appPath}/src/index.ts`);
|
|
235
|
+
root.innerHTML = "";
|
|
236
|
+
mod.AppMount(root);
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
222
239
|
const pluginUrl = `${this.basePath}${appPath}/app.js`;
|
|
223
240
|
const pluginCss = `${this.basePath}${appPath}/${appName}.css`;
|
|
224
241
|
// Load CSS
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Public Shell API - Only these types are exposed to plugin applications
|
|
3
3
|
* This file explicitly defines what's public vs internal
|
|
4
4
|
*/
|
|
5
|
-
export type { ShellAPI, FeedbackAPI, AlertVariant, HttpAPI, RequestOptions, Result, SuccessResult, ErrorResult, HttpError, NavigationAPI, NavItem, } from
|
|
5
|
+
export type { ShellAPI, ShellPlugin, FeedbackAPI, AlertVariant, HttpAPI, RequestOptions, Result, SuccessResult, ErrorResult, HttpError, NavigationAPI, NavItem, } from "./shell-api.js";
|
|
6
6
|
//# sourceMappingURL=public-api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/types/public-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,OAAO,EACP,cAAc,EACd,MAAM,EACN,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,OAAO,GACR,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../../src/types/public-api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,OAAO,EACP,cAAc,EACd,MAAM,EACN,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,OAAO,GACR,MAAM,gBAAgB,CAAC"}
|
|
@@ -22,6 +22,55 @@ export interface ShellAPI {
|
|
|
22
22
|
/** Navigation and routing utilities */
|
|
23
23
|
navigation: NavigationAPI;
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Contract implemented by applications that can be hosted by the Shell.
|
|
27
|
+
*
|
|
28
|
+
* This is a **type-only interface** used at build time to define the shape of
|
|
29
|
+
* an application entry module. It does **not** introduce runtime dependencies
|
|
30
|
+
* or production code requirements.
|
|
31
|
+
*
|
|
32
|
+
* ### Purpose
|
|
33
|
+
* - Allows the Shell to load and bootstrap applications in both development
|
|
34
|
+
* and production environments.
|
|
35
|
+
* - Enables strongly-typed guarantees for the Shell without coupling
|
|
36
|
+
* applications to shell-specific runtime logic.
|
|
37
|
+
*
|
|
38
|
+
* ### Implementation requirements
|
|
39
|
+
* Applications do **not** need to import or reference this type directly.
|
|
40
|
+
* An application satisfies this contract automatically by exporting the
|
|
41
|
+
* required functions from its entry module.
|
|
42
|
+
*
|
|
43
|
+
* ### Development vs Production
|
|
44
|
+
* - In development, the Shell may `import()` an application's source entry
|
|
45
|
+
* module directly to enable fast reload behaviour.
|
|
46
|
+
* - In production, the Shell loads the application's bundled output.
|
|
47
|
+
*
|
|
48
|
+
* This interface exists solely to document and enforce the expected surface
|
|
49
|
+
* area between the Shell and hosted applications.
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* // src/main.ts
|
|
54
|
+
* export function AppMount(root: HTMLElement) {
|
|
55
|
+
* // Mount application UI into the provided DOM node
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export type ShellPlugin = {
|
|
60
|
+
/**
|
|
61
|
+
* Mounts the application into a DOM element provided by the Shell.
|
|
62
|
+
*
|
|
63
|
+
* This function is responsible for rendering the application UI
|
|
64
|
+
* into the given container element.
|
|
65
|
+
*
|
|
66
|
+
* The Shell guarantees that:
|
|
67
|
+
* - `root` is an empty, attached DOM element
|
|
68
|
+
* - The application owns the DOM subtree beneath `root`
|
|
69
|
+
*
|
|
70
|
+
* @param root - Container element into which the application should render.
|
|
71
|
+
*/
|
|
72
|
+
AppMount(root: HTMLElement): void;
|
|
73
|
+
};
|
|
25
74
|
/**
|
|
26
75
|
* Feedback system API
|
|
27
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-api.d.ts","sourceRoot":"","sources":["../../src/types/shell-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,QAAQ;IACvB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAEhB,mEAAmE;IACnE,QAAQ,EAAE,WAAW,CAAC;IAEtB,uEAAuE;IACvE,IAAI,EAAE,OAAO,CAAC;IAEd,uCAAuC;IACvC,UAAU,EAAE,aAAa,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"shell-api.d.ts","sourceRoot":"","sources":["../../src/types/shell-api.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herdingbits/trailhead-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.14",
|
|
4
4
|
"description": "Simple application shell that orchestrates multiple SPAs. No webpack magic, just the browser's native module system.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|