@herdingbits/trailhead-core 0.0.16 → 0.0.17

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 CHANGED
@@ -35,7 +35,7 @@ import { YourAdapter } from '@herdingbits/trailhead-your-design-system';
35
35
  const shell = new Trailhead({
36
36
  adapter: new YourAdapter(),
37
37
  appBasePath: '/app', // URL prefix where SPAs are hosted
38
- shellUrl: '/app', // URL where shell.js and navigation.json are served (defaults to appBasePath)
38
+ shellUrl: '/app', // URL where shell.js and shell.json are served (defaults to appBasePath)
39
39
  apiUrl: 'https://api.example.com'
40
40
  });
41
41
  ```
package/dist/index.d.ts CHANGED
@@ -4,4 +4,5 @@
4
4
  */
5
5
  export { Trailhead } from './shell.js';
6
6
  export type { ShellConfig } from './shell.js';
7
+ export type { NavItem, NavLink, NavSection, NavDivider, AppEntry, ShellManifest } from './types/shell-api.js';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/shell.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Trailhead Core Shell - Design system agnostic orchestration
3
3
  */
4
- import type { NavItem } from "./types/shell-api.js";
4
+ import type { NavItem, AppEntry } from "./types/shell-api.js";
5
5
  import type { DesignSystemAdapter } from "./adapters/types.js";
6
6
  /**
7
7
  * Configuration passed to the `Trailhead` constructor.
@@ -13,7 +13,7 @@ export interface ShellConfig {
13
13
  appBasePath?: string;
14
14
  /** Base URL prepended to all SPA HTTP requests made via `shell.http`. */
15
15
  apiUrl?: string;
16
- /** URL from which the shell bundle and static assets (e.g., `navigation.json`) are fetched. Defaults to `appBasePath`. */
16
+ /** URL from which the shell bundle and static assets (e.g., `shell.json`) are fetched. Defaults to `appBasePath`. */
17
17
  shellUrl?: string;
18
18
  }
19
19
  /**
@@ -29,7 +29,8 @@ export interface ShellConfig {
29
29
  * ```
30
30
  */
31
31
  export declare class Trailhead {
32
- private navigation;
32
+ private apps;
33
+ private nav;
33
34
  private routeChangeCallbacks;
34
35
  /** URL prefix under which SPAs are hosted. Empty string when hosted at the root. */
35
36
  readonly appBasePath: string;
@@ -44,10 +45,15 @@ export declare class Trailhead {
44
45
  */
45
46
  constructor(config: ShellConfig);
46
47
  /**
47
- * Returns the navigation items loaded from `navigation.json`.
48
+ * Returns the nav menu items loaded from `shell.json`.
48
49
  * Adapters call this to render the shell's navigation menu.
49
50
  */
50
51
  getNavigation(): NavItem[];
52
+ /**
53
+ * Returns the SPA registry loaded from `shell.json`.
54
+ * Adapters that manage their own routing call this to resolve which app to load.
55
+ */
56
+ getApps(): AppEntry[];
51
57
  /**
52
58
  * Initialize shell
53
59
  */
@@ -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;;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,0HAA0H;IAC1H,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,UAAU,CAAiB;IACnC,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;;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;CAqDzB"}
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;IAmDxB;;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
@@ -20,7 +20,8 @@ export class Trailhead {
20
20
  * @param config - Shell configuration
21
21
  */
22
22
  constructor(config) {
23
- this.navigation = [];
23
+ this.apps = [];
24
+ this.nav = [];
24
25
  this.routeChangeCallbacks = [];
25
26
  this.appBasePath = config.appBasePath || "";
26
27
  this.shellUrl = config.shellUrl || this.appBasePath;
@@ -28,11 +29,18 @@ export class Trailhead {
28
29
  this.init(config.apiUrl);
29
30
  }
30
31
  /**
31
- * Returns the navigation items loaded from `navigation.json`.
32
+ * Returns the nav menu items loaded from `shell.json`.
32
33
  * Adapters call this to render the shell's navigation menu.
33
34
  */
34
35
  getNavigation() {
35
- return this.navigation;
36
+ return this.nav;
37
+ }
38
+ /**
39
+ * Returns the SPA registry loaded from `shell.json`.
40
+ * Adapters that manage their own routing call this to resolve which app to load.
41
+ */
42
+ getApps() {
43
+ return this.apps;
36
44
  }
37
45
  /**
38
46
  * Initialize shell
@@ -149,12 +157,15 @@ export class Trailhead {
149
157
  */
150
158
  async loadNavigation() {
151
159
  try {
152
- const response = await fetch(`${this.shellUrl}/navigation.json`);
153
- this.navigation = await response.json();
160
+ const response = await fetch(`${this.shellUrl}/shell.json`);
161
+ const manifest = await response.json();
162
+ this.apps = manifest.apps ?? [];
163
+ this.nav = manifest.nav ?? [];
154
164
  }
155
165
  catch (error) {
156
- console.error("Failed to load navigation:", error);
157
- this.navigation = [];
166
+ console.error("Failed to load shell.json:", error);
167
+ this.apps = [];
168
+ this.nav = [];
158
169
  }
159
170
  }
160
171
  /**
@@ -164,25 +175,47 @@ export class Trailhead {
164
175
  const nav = document.getElementById("shell-navigation");
165
176
  if (!nav)
166
177
  return;
167
- nav.innerHTML = this.navigation
168
- .map((item) => `
169
- <a href="${this.appBasePath}${item.path}"
170
- class="shell-nav-item"
171
- data-path="${item.path}"
172
- data-app="${item.app}">
173
- <i class="shell-icon shell-icon-${item.icon}"></i>
178
+ const isExternal = (href) => /^https?:\/\/|^\/\//.test(href);
179
+ const renderLink = (item, isChild = false) => {
180
+ const external = isExternal(item.href);
181
+ const fullHref = external ? item.href : `${this.appBasePath}${item.href}`;
182
+ return `<a href="${fullHref}"
183
+ class="shell-nav-item${isChild ? " shell-nav-item-child" : ""}"
184
+ data-path="${item.href}"
185
+ data-external="${external}">
186
+ <i class="shell-icon shell-icon-${item.icon ?? ""}"></i>
174
187
  <span class="shell-nav-label">${item.label}</span>
175
- </a>
176
- `)
188
+ </a>`;
189
+ };
190
+ nav.innerHTML = [...this.nav]
191
+ .sort((a, b) => a.order - b.order)
192
+ .map((item) => {
193
+ switch (item.type) {
194
+ case "link":
195
+ return renderLink(item);
196
+ case "section":
197
+ return `<div class="shell-nav-section">
198
+ <span class="shell-nav-section-header">
199
+ <i class="shell-icon shell-icon-${item.icon ?? ""}"></i>
200
+ <span class="shell-nav-label">${item.label}</span>
201
+ </span>
202
+ ${[...item.children].sort((a, b) => a.order - b.order).map((c) => renderLink(c, true)).join("")}
203
+ </div>`;
204
+ case "divider":
205
+ return `<hr class="shell-nav-divider" />`;
206
+ }
207
+ })
177
208
  .join("");
178
209
  nav.querySelectorAll("a").forEach((link) => {
179
- link.addEventListener("click", (e) => {
180
- e.preventDefault();
181
- const path = link.getAttribute("data-path");
182
- if (path) {
183
- this.navigate(path);
184
- }
185
- });
210
+ if (link.getAttribute("data-external") !== "true") {
211
+ link.addEventListener("click", (e) => {
212
+ e.preventDefault();
213
+ const path = link.getAttribute("data-path");
214
+ if (path) {
215
+ this.navigate(path);
216
+ }
217
+ });
218
+ }
186
219
  });
187
220
  }
188
221
  /**
@@ -207,16 +240,16 @@ export class Trailhead {
207
240
  if (this.appBasePath && path.startsWith(this.appBasePath)) {
208
241
  path = path.substring(this.appBasePath.length) || "/";
209
242
  }
210
- const navItem = this.navigation.find((item) => path.startsWith(item.path));
211
- if (navItem) {
243
+ const app = this.apps.find((entry) => path.startsWith(entry.basePath));
244
+ if (app) {
212
245
  // Skip loading if app is already mounted (dev mode)
213
246
  const shellContent = document.getElementById("shell-content");
214
247
  const rootElement = shellContent?.querySelector("#root");
215
248
  const isAlreadyMounted = rootElement && rootElement.children.length > 0;
216
249
  if (!isAlreadyMounted) {
217
- this.loadPlugin(navItem.app, navItem.path);
250
+ this.loadPlugin(app.src, app.basePath);
218
251
  }
219
- this.updateActiveNav(navItem.path);
252
+ this.updateActiveNav(app.basePath);
220
253
  }
221
254
  }
222
255
  /**
@@ -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, ShellPlugin, FeedbackAPI, AlertVariant, HttpAPI, RequestOptions, Result, SuccessResult, ErrorResult, HttpError, NavigationAPI, NavItem, } from "./shell-api.js";
5
+ export type { ShellAPI, ShellPlugin, FeedbackAPI, AlertVariant, HttpAPI, RequestOptions, Result, SuccessResult, ErrorResult, HttpError, NavigationAPI, NavItem, NavLink, NavSection, NavDivider, AppEntry, ShellManifest, } 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,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,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,GACd,MAAM,gBAAgB,CAAC"}
@@ -448,25 +448,58 @@ export interface NavigationAPI {
448
448
  onRouteChange(callback: (path: string) => void): () => void;
449
449
  }
450
450
  /**
451
- * Navigation item configuration
452
- *
453
- * Defines a navigation menu item in `navigation.json`.
451
+ * SPA registration entry in `shell.json`.
452
+ * Describes a hosted application — where it lives and how to load it.
454
453
  */
455
- export interface NavItem {
456
- /** Stable key used to match active nav state and correlate items across reloads. */
454
+ export interface AppEntry {
455
+ /** Unique identifier for this SPA (used in logs and as the CSS filename stem). */
457
456
  id: string;
458
- /** Route path this item activates (e.g., `"/demo"`). Must match the SPA's base route. */
459
- path: string;
460
- /** SPA directory name; the shell resolves `<basePath>/<app>/app.js` when this route is activated. */
461
- app: string;
462
- /** Icon identifier passed to the adapter's icon component. Naming convention is design-system-specific. */
463
- icon: string;
457
+ /** URL path prefix at which this SPA is mounted (e.g., `"/demo"`). Shell loads the app when the current URL starts with this value. */
458
+ basePath: string;
459
+ /** Asset directory name. Shell resolves `<appBasePath>/<src>/app.js` and `<appBasePath>/<src>/<src>.css`. */
460
+ src: string;
461
+ }
462
+ /**
463
+ * Parsed structure of `shell.json`.
464
+ */
465
+ export interface ShellManifest {
466
+ apps: AppEntry[];
467
+ nav: NavItem[];
468
+ }
469
+ /** A leaf nav item that links to a URL or SPA route. */
470
+ export interface NavLink {
471
+ type: 'link';
472
+ /** Visible label rendered in the nav. */
464
473
  label: string;
474
+ /** Icon identifier passed to the adapter's icon component. Naming convention is design-system-specific. */
475
+ icon?: string;
465
476
  /** Lower numbers appear earlier in the menu. */
466
477
  order: number;
467
- /** Called on each render to get a live count shown as a badge on the nav item (e.g., unread notifications). */
478
+ /** Absolute URL (browser handles navigation; shell does not intercept) or relative path (shell loads the matching SPA). */
479
+ href: string;
480
+ /** Called on each render to get a live count shown as a badge on this item. */
468
481
  badge?: () => number;
469
482
  }
483
+ /** A section header that groups a set of child links. Maximum nesting depth is one level. */
484
+ export interface NavSection {
485
+ type: 'section';
486
+ /** Visible label for the section header. */
487
+ label: string;
488
+ /** Icon identifier for the section header. */
489
+ icon?: string;
490
+ /** Lower numbers appear earlier in the menu. */
491
+ order: number;
492
+ /** Child link items. Only `NavLink` is allowed here — no nested sections. */
493
+ children: NavLink[];
494
+ }
495
+ /** A visual divider rendered between nav groups. */
496
+ export interface NavDivider {
497
+ type: 'divider';
498
+ /** Lower numbers appear earlier in the menu. */
499
+ order: number;
500
+ }
501
+ /** Discriminated union of all nav item types. */
502
+ export type NavItem = NavLink | NavSection | NavDivider;
470
503
  /**
471
504
  * Global window extension
472
505
  *
@@ -1 +1 @@
1
- {"version":3,"file":"shell-api.d.ts","sourceRoot":"","sources":["../../src/types/shell-api.ts"],"names":[],"mappings":"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"}
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.16",
3
+ "version": "0.0.17",
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",