@herdingbits/trailhead-core 0.0.17 → 0.1.0
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/README.md +5 -5
- package/dist/adapters/types.d.ts +1 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/shell.d.ts +1 -1
- package/dist/shell.d.ts.map +1 -1
- package/dist/shell.js +3 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,18 +7,18 @@ Simple application shell that orchestrates multiple SPAs. No webpack magic, just
|
|
|
7
7
|
This package provides the core shell logic for the Trailhead micro-frontend pattern:
|
|
8
8
|
- Orchestrates multiple single page applications (SPAs) within a shared layout
|
|
9
9
|
- Manages navigation and routing (no URL rewrites needed between apps)
|
|
10
|
-
- Provides
|
|
10
|
+
- Provides centralised HTTP client with error handling
|
|
11
11
|
- Coordinates user feedback (toasts, dialogs, busy states)
|
|
12
12
|
- Integrates with design systems via adapters
|
|
13
13
|
|
|
14
|
-
**Think of it like browser extensions or VS Code plugins**
|
|
14
|
+
**Think of it like browser extensions or VS Code plugins** — the shell provides infrastructure, SPAs focus on business logic.
|
|
15
15
|
|
|
16
16
|
## Key Features
|
|
17
17
|
|
|
18
18
|
- **Framework Agnostic**: SPAs can use React, Vue, Svelte, or vanilla JS
|
|
19
19
|
- **Independent Deployment**: Deploy one SPA without touching others
|
|
20
20
|
- **Simple Deployment**: No URL rewrites, works on any static host
|
|
21
|
-
- **Design System Adapters**: Pluggable UI layer (
|
|
21
|
+
- **Design System Adapters**: Pluggable UI layer (Web Awesome, CloudScape, or custom)
|
|
22
22
|
|
|
23
23
|
## Installation
|
|
24
24
|
|
|
@@ -42,8 +42,8 @@ const shell = new Trailhead({
|
|
|
42
42
|
|
|
43
43
|
## Available Adapters
|
|
44
44
|
|
|
45
|
-
- **[@herdingbits/trailhead-
|
|
46
|
-
- **[@herdingbits/trailhead-cloudscape](https://www.npmjs.com/package/@herdingbits/trailhead-cloudscape)**
|
|
45
|
+
- **[@herdingbits/trailhead-webawesome](https://www.npmjs.com/package/@herdingbits/trailhead-webawesome)** — Web Awesome web components (vanilla TypeScript)
|
|
46
|
+
- **[@herdingbits/trailhead-cloudscape](https://www.npmjs.com/package/@herdingbits/trailhead-cloudscape)** — AWS CloudScape Design System (React)
|
|
47
47
|
|
|
48
48
|
## Documentation
|
|
49
49
|
|
package/dist/adapters/types.d.ts
CHANGED
|
@@ -53,7 +53,7 @@ export interface FeedbackAdapter {
|
|
|
53
53
|
* Implement this interface to support a new component library as the shell's UI layer.
|
|
54
54
|
*/
|
|
55
55
|
export interface DesignSystemAdapter {
|
|
56
|
-
/** Identifier used in startup logs and diagnostics (e.g., `"
|
|
56
|
+
/** Identifier used in startup logs and diagnostics (e.g., `"webawesome"`, `"cloudscape"`). */
|
|
57
57
|
name: string;
|
|
58
58
|
/** Adapter package version, logged at shell startup. */
|
|
59
59
|
version: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2FAA2F;AAC3F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACrD,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,EAAE,CAAC,CAAC;IACT,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACrD,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACrD,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,6DAA6D;IAC7D,SAAS,IAAI,IAAI,CAAC;IAElB,oFAAoF;IACpF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3E,gFAAgF;IAChF,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CACjF;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2FAA2F;AAC3F,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACrD,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,EAAE,CAAC,CAAC;IACT,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACrD,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACrD,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,6DAA6D;IAC7D,SAAS,IAAI,IAAI,CAAC;IAElB,oFAAoF;IACpF,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3E,gFAAgF;IAChF,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CACjF;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,IAAI,EAAE,MAAM,CAAC;IAEb,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,iFAAiF;IACjF,QAAQ,EAAE,eAAe,CAAC;CAC3B"}
|
package/dist/shell.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ export interface ShellConfig {
|
|
|
23
23
|
* @example
|
|
24
24
|
* ```typescript
|
|
25
25
|
* import { Trailhead } from '@herdingbits/trailhead-core';
|
|
26
|
-
* import {
|
|
26
|
+
* import { WebAwesomeAdapter } from '@herdingbits/trailhead-webawesome';
|
|
27
27
|
*
|
|
28
28
|
* new Trailhead({ adapter: createAdapter() });
|
|
29
29
|
* ```
|
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,EAAW,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0FAA0F;IAC1F,OAAO,EAAE,mBAAmB,CAAC;IAE7B,wKAAwK;IACxK,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qHAAqH;IACrH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,oBAAoB,CAAqC;IAEjE,oFAAoF;IACpF,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,6EAA6E;IAC7E,SAAgB,OAAO,EAAE,mBAAmB,CAAC;IAE7C;;;;;OAKG;gBACS,MAAM,EAAE,WAAW;IAO/B;;;OAGG;IACI,aAAa,IAAI,OAAO,EAAE;IAIjC;;;OAGG;IACI,OAAO,IAAI,QAAQ,EAAE;IAI5B;;OAEG;YACW,IAAI;IAwBlB;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,SAAS;IAiFjB;;OAEG;YACW,cAAc;IAa5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../src/shell.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAY,OAAO,EAAW,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAChG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAI/D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,0FAA0F;IAC1F,OAAO,EAAE,mBAAmB,CAAC;IAE7B,wKAAwK;IACxK,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,qHAAqH;IACrH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,GAAG,CAAiB;IAC5B,OAAO,CAAC,oBAAoB,CAAqC;IAEjE,oFAAoF;IACpF,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,6EAA6E;IAC7E,SAAgB,OAAO,EAAE,mBAAmB,CAAC;IAE7C;;;;;OAKG;gBACS,MAAM,EAAE,WAAW;IAO/B;;;OAGG;IACI,aAAa,IAAI,OAAO,EAAE;IAIjC;;;OAGG;IACI,OAAO,IAAI,QAAQ,EAAE;IAI5B;;OAEG;YACW,IAAI;IAwBlB;;OAEG;YACW,WAAW;IAUzB;;OAEG;IACH,OAAO,CAAC,SAAS;IAiFjB;;OAEG;YACW,cAAc;IAa5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;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;CAqDzB"}
|
package/dist/shell.js
CHANGED
|
@@ -7,7 +7,7 @@ import * as requestManager from "./lib/requestManager.js";
|
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
9
9
|
* import { Trailhead } from '@herdingbits/trailhead-core';
|
|
10
|
-
* import {
|
|
10
|
+
* import { WebAwesomeAdapter } from '@herdingbits/trailhead-webawesome';
|
|
11
11
|
*
|
|
12
12
|
* new Trailhead({ adapter: createAdapter() });
|
|
13
13
|
* ```
|
|
@@ -178,8 +178,7 @@ export class Trailhead {
|
|
|
178
178
|
const isExternal = (href) => /^https?:\/\/|^\/\//.test(href);
|
|
179
179
|
const renderLink = (item, isChild = false) => {
|
|
180
180
|
const external = isExternal(item.href);
|
|
181
|
-
|
|
182
|
-
return `<a href="${fullHref}"
|
|
181
|
+
return `<a href="${item.href}"
|
|
183
182
|
class="shell-nav-item${isChild ? " shell-nav-item-child" : ""}"
|
|
184
183
|
data-path="${item.href}"
|
|
185
184
|
data-external="${external}">
|
|
@@ -230,7 +229,7 @@ export class Trailhead {
|
|
|
230
229
|
* Navigate to path
|
|
231
230
|
*/
|
|
232
231
|
navigate(path) {
|
|
233
|
-
window.location.href =
|
|
232
|
+
window.location.href = path;
|
|
234
233
|
}
|
|
235
234
|
/**
|
|
236
235
|
* Handle route change
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@herdingbits/trailhead-core",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
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",
|