@forwardimpact/pathway 0.18.0 → 0.19.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forwardimpact/pathway",
3
- "version": "0.18.0",
3
+ "version": "0.19.0",
4
4
  "description": "Career progression web app and CLI for exploring roles and generating agent teams",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -41,7 +41,7 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@forwardimpact/schema": "^0.10.0",
44
- "@forwardimpact/model": "^1.2.0",
44
+ "@forwardimpact/libpathway": "^2.0.0",
45
45
  "mustache": "^4.2.0",
46
46
  "simple-icons": "^16.7.0",
47
47
  "yaml": "^2.3.4"
@@ -42,7 +42,7 @@ import {
42
42
  buildAgentIndex,
43
43
  getDisciplineAbbreviation,
44
44
  toKebabCase,
45
- } from "@forwardimpact/model";
45
+ } from "@forwardimpact/libpathway";
46
46
  import { formatAgentProfile } from "../formatters/agent/profile.js";
47
47
  import {
48
48
  formatAgentSkill,
@@ -42,7 +42,7 @@ function resolvePackageLib(packageName) {
42
42
  }
43
43
 
44
44
  const schemaLibDir = resolvePackageLib("@forwardimpact/schema");
45
- const modelLibDir = resolvePackageLib("@forwardimpact/model");
45
+ const modelLibDir = resolvePackageLib("@forwardimpact/libpathway");
46
46
 
47
47
  /**
48
48
  * Files and directories to copy from app/
@@ -141,7 +141,7 @@ ${framework.emojiIcon} Generating ${framework.title} static site...
141
141
  }
142
142
  }
143
143
 
144
- // Copy @forwardimpact/schema and @forwardimpact/model packages
144
+ // Copy @forwardimpact/schema and @forwardimpact/libpathway packages
145
145
  // These are needed by the browser's import map
146
146
  console.log("📚 Copying package dependencies...");
147
147
  await cp(schemaLibDir, join(outputDir, "schema/lib"), { recursive: true });
@@ -31,7 +31,7 @@ function resolvePackageLib(packageName) {
31
31
  }
32
32
 
33
33
  const schemaLibDir = resolvePackageLib("@forwardimpact/schema");
34
- const modelLibDir = resolvePackageLib("@forwardimpact/model");
34
+ const modelLibDir = resolvePackageLib("@forwardimpact/libpathway");
35
35
 
36
36
  const MIME_TYPES = {
37
37
  ".html": "text/html; charset=utf-8",
@@ -138,7 +138,7 @@ export async function runDevCommand({ dataDir, options }) {
138
138
  // Serve @forwardimpact/schema package files (resolved via Node module resolution)
139
139
  filePath = join(schemaLibDir, pathname.slice(12));
140
140
  } else if (pathname.startsWith("/model/lib/")) {
141
- // Serve @forwardimpact/model package files (resolved via Node module resolution)
141
+ // Serve @forwardimpact/libpathway package files (resolved via Node module resolution)
142
142
  filePath = join(modelLibDir, pathname.slice(11));
143
143
  } else if (pathname === "/" || pathname === "") {
144
144
  // Serve index.html for root
@@ -14,14 +14,14 @@
14
14
  * npx pathway job --validate # Validation checks
15
15
  */
16
16
 
17
- import { prepareJobDetail } from "@forwardimpact/model/job";
17
+ import { prepareJobDetail } from "@forwardimpact/libpathway/job";
18
18
  import { jobToMarkdown } from "../formatters/job/markdown.js";
19
- import { generateAllJobs } from "@forwardimpact/model/derivation";
19
+ import { generateAllJobs } from "@forwardimpact/libpathway/derivation";
20
20
  import { formatTable } from "../lib/cli-output.js";
21
21
  import {
22
22
  deriveChecklist,
23
23
  formatChecklistMarkdown,
24
- } from "@forwardimpact/model/checklist";
24
+ } from "@forwardimpact/libpathway/checklist";
25
25
  import { loadJobTemplate } from "../lib/template-loader.js";
26
26
  import { toolkitToPlainList } from "../formatters/toolkit/markdown.js";
27
27
 
@@ -16,7 +16,7 @@ import { skillToMarkdown } from "../formatters/skill/markdown.js";
16
16
  import { prepareSkillsList } from "../formatters/skill/shared.js";
17
17
  import { getConceptEmoji } from "@forwardimpact/schema/levels";
18
18
  import { formatTable, formatError } from "../lib/cli-output.js";
19
- import { generateSkillMarkdown } from "@forwardimpact/model/agent";
19
+ import { generateSkillMarkdown } from "@forwardimpact/libpathway/agent";
20
20
  import { formatAgentSkill } from "../formatters/agent/skill.js";
21
21
  import { loadSkillTemplate } from "../lib/template-loader.js";
22
22
 
@@ -13,7 +13,7 @@ import {
13
13
  getBehaviourMaturityIndex,
14
14
  formatLevel,
15
15
  } from "../lib/render.js";
16
- import { compareByCapability } from "@forwardimpact/model/policies";
16
+ import { compareByCapability } from "@forwardimpact/libpathway/policies";
17
17
 
18
18
  /**
19
19
  * Create a comparison skill radar chart
@@ -546,6 +546,15 @@
546
546
  padding-top: 3rem;
547
547
  }
548
548
 
549
+ /* Handout view: hide brand header — chapter covers provide branding */
550
+ .handout-view .page-brand-header {
551
+ display: none !important;
552
+ }
553
+
554
+ .handout-view main {
555
+ padding-top: 0;
556
+ }
557
+
549
558
  /* Chapter cover print styles */
550
559
  .chapter-cover {
551
560
  page-break-after: always;
@@ -556,6 +565,23 @@
556
565
  align-items: center;
557
566
  }
558
567
 
568
+ /* Handout view: page breaks between chapters and sections */
569
+ .handout-view .chapter-cover {
570
+ page-break-before: always;
571
+ page-break-after: auto;
572
+ }
573
+
574
+ .handout-view .detail-page {
575
+ page-break-before: always;
576
+ border-bottom: none;
577
+ margin-bottom: 0;
578
+ padding-bottom: 0;
579
+ }
580
+
581
+ .handout-view main > :first-child {
582
+ page-break-before: auto;
583
+ }
584
+
559
585
  /* Checklist print styles */
560
586
  .checklist-section {
561
587
  page-break-inside: avoid;
@@ -8,13 +8,13 @@ import {
8
8
  isValidJobCombination,
9
9
  generateJobTitle,
10
10
  getDisciplineSkillIds,
11
- } from "@forwardimpact/model/derivation";
11
+ } from "@forwardimpact/libpathway/derivation";
12
12
  import {
13
13
  deriveMissionFitInterview,
14
14
  deriveDecompositionInterview,
15
15
  deriveStakeholderInterview,
16
- } from "@forwardimpact/model/interview";
17
- import { getOrCreateJob } from "@forwardimpact/model/job-cache";
16
+ } from "@forwardimpact/libpathway/interview";
17
+ import { getOrCreateJob } from "@forwardimpact/libpathway/job-cache";
18
18
 
19
19
  /**
20
20
  * Interview type configurations
@@ -7,13 +7,13 @@
7
7
  import {
8
8
  isValidJobCombination,
9
9
  generateJobTitle,
10
- } from "@forwardimpact/model/derivation";
10
+ } from "@forwardimpact/libpathway/derivation";
11
11
  import {
12
12
  analyzeProgression,
13
13
  analyzeCustomProgression,
14
14
  getNextGrade,
15
- } from "@forwardimpact/model/progression";
16
- import { getOrCreateJob } from "@forwardimpact/model/job-cache";
15
+ } from "@forwardimpact/libpathway/progression";
16
+ import { getOrCreateJob } from "@forwardimpact/libpathway/job-cache";
17
17
 
18
18
  /**
19
19
  * Get the next grade for progression
@@ -8,7 +8,7 @@ import {
8
8
  groupSkillsByCapability,
9
9
  getCapabilityEmoji,
10
10
  } from "@forwardimpact/schema/levels";
11
- import { getSkillTypeForDiscipline } from "@forwardimpact/model/derivation";
11
+ import { getSkillTypeForDiscipline } from "@forwardimpact/libpathway/derivation";
12
12
  import { truncate } from "../shared.js";
13
13
 
14
14
  /**
@@ -7,7 +7,7 @@
7
7
  import {
8
8
  isCapability,
9
9
  getSkillsByCapability,
10
- } from "@forwardimpact/model/modifiers";
10
+ } from "@forwardimpact/libpathway/modifiers";
11
11
  import { truncate } from "../shared.js";
12
12
 
13
13
  /**
package/src/handout.html CHANGED
@@ -13,19 +13,19 @@
13
13
  "@forwardimpact/schema/levels": "/schema/lib/levels.js",
14
14
  "@forwardimpact/schema/loader": "/schema/lib/loader.js",
15
15
  "@forwardimpact/schema/validation": "/schema/lib/validation.js",
16
- "@forwardimpact/model": "/model/lib/index.js",
17
- "@forwardimpact/model/derivation": "/model/lib/derivation.js",
18
- "@forwardimpact/model/modifiers": "/model/lib/modifiers.js",
19
- "@forwardimpact/model/agent": "/model/lib/agent.js",
20
- "@forwardimpact/model/interview": "/model/lib/interview.js",
21
- "@forwardimpact/model/job": "/model/lib/job.js",
22
- "@forwardimpact/model/job-cache": "/model/lib/job-cache.js",
23
- "@forwardimpact/model/checklist": "/model/lib/checklist.js",
24
- "@forwardimpact/model/matching": "/model/lib/matching.js",
25
- "@forwardimpact/model/profile": "/model/lib/profile.js",
26
- "@forwardimpact/model/progression": "/model/lib/progression.js",
27
- "@forwardimpact/model/policies": "/model/lib/policies/index.js",
28
- "@forwardimpact/model/toolkit": "/model/lib/toolkit.js"
16
+ "@forwardimpact/libpathway": "/model/lib/index.js",
17
+ "@forwardimpact/libpathway/derivation": "/model/lib/derivation.js",
18
+ "@forwardimpact/libpathway/modifiers": "/model/lib/modifiers.js",
19
+ "@forwardimpact/libpathway/agent": "/model/lib/agent.js",
20
+ "@forwardimpact/libpathway/interview": "/model/lib/interview.js",
21
+ "@forwardimpact/libpathway/job": "/model/lib/job.js",
22
+ "@forwardimpact/libpathway/job-cache": "/model/lib/job-cache.js",
23
+ "@forwardimpact/libpathway/checklist": "/model/lib/checklist.js",
24
+ "@forwardimpact/libpathway/matching": "/model/lib/matching.js",
25
+ "@forwardimpact/libpathway/profile": "/model/lib/profile.js",
26
+ "@forwardimpact/libpathway/progression": "/model/lib/progression.js",
27
+ "@forwardimpact/libpathway/policies": "/model/lib/policies/index.js",
28
+ "@forwardimpact/libpathway/toolkit": "/model/lib/toolkit.js"
29
29
  }
30
30
  }
31
31
  </script>
package/src/index.html CHANGED
@@ -25,19 +25,19 @@
25
25
  "@forwardimpact/schema/levels": "/schema/lib/levels.js",
26
26
  "@forwardimpact/schema/loader": "/schema/lib/loader.js",
27
27
  "@forwardimpact/schema/validation": "/schema/lib/validation.js",
28
- "@forwardimpact/model": "/model/lib/index.js",
29
- "@forwardimpact/model/derivation": "/model/lib/derivation.js",
30
- "@forwardimpact/model/modifiers": "/model/lib/modifiers.js",
31
- "@forwardimpact/model/agent": "/model/lib/agent.js",
32
- "@forwardimpact/model/interview": "/model/lib/interview.js",
33
- "@forwardimpact/model/job": "/model/lib/job.js",
34
- "@forwardimpact/model/job-cache": "/model/lib/job-cache.js",
35
- "@forwardimpact/model/checklist": "/model/lib/checklist.js",
36
- "@forwardimpact/model/matching": "/model/lib/matching.js",
37
- "@forwardimpact/model/profile": "/model/lib/profile.js",
38
- "@forwardimpact/model/progression": "/model/lib/progression.js",
39
- "@forwardimpact/model/policies": "/model/lib/policies/index.js",
40
- "@forwardimpact/model/toolkit": "/model/lib/toolkit.js"
28
+ "@forwardimpact/libpathway": "/model/lib/index.js",
29
+ "@forwardimpact/libpathway/derivation": "/model/lib/derivation.js",
30
+ "@forwardimpact/libpathway/modifiers": "/model/lib/modifiers.js",
31
+ "@forwardimpact/libpathway/agent": "/model/lib/agent.js",
32
+ "@forwardimpact/libpathway/interview": "/model/lib/interview.js",
33
+ "@forwardimpact/libpathway/job": "/model/lib/job.js",
34
+ "@forwardimpact/libpathway/job-cache": "/model/lib/job-cache.js",
35
+ "@forwardimpact/libpathway/checklist": "/model/lib/checklist.js",
36
+ "@forwardimpact/libpathway/matching": "/model/lib/matching.js",
37
+ "@forwardimpact/libpathway/profile": "/model/lib/profile.js",
38
+ "@forwardimpact/libpathway/progression": "/model/lib/progression.js",
39
+ "@forwardimpact/libpathway/policies": "/model/lib/policies/index.js",
40
+ "@forwardimpact/libpathway/toolkit": "/model/lib/toolkit.js"
41
41
  }
42
42
  }
43
43
  </script>
@@ -5,7 +5,7 @@
5
5
  * Provides consistent key generation and get-or-create pattern.
6
6
  */
7
7
 
8
- import { deriveJob } from "@forwardimpact/model/derivation";
8
+ import { deriveJob } from "@forwardimpact/libpathway/derivation";
9
9
 
10
10
  /** @type {Map<string, Object>} */
11
11
  const cache = new Map();
@@ -29,7 +29,7 @@ import {
29
29
  deriveReferenceGrade,
30
30
  deriveToolkit,
31
31
  buildAgentIndex,
32
- } from "@forwardimpact/model";
32
+ } from "@forwardimpact/libpathway";
33
33
  import {
34
34
  createSelectWithValue,
35
35
  createDisciplineSelect,
@@ -19,7 +19,7 @@ import { getState } from "../lib/state.js";
19
19
  import { createBadge } from "../components/card.js";
20
20
  import { formatLevel } from "../lib/render.js";
21
21
  import { getAssessmentState, resetAssessment } from "./self-assessment.js";
22
- import { findRealisticMatches } from "@forwardimpact/model/matching";
22
+ import { findRealisticMatches } from "@forwardimpact/libpathway/matching";
23
23
 
24
24
  /**
25
25
  * Render the assessment results page
@@ -5,7 +5,7 @@
5
5
  import { render } from "../lib/render.js";
6
6
  import { getState } from "../lib/state.js";
7
7
  import { createBuilder, createStandardPreview } from "../components/builder.js";
8
- import { prepareJobBuilderPreview } from "@forwardimpact/model/job";
8
+ import { prepareJobBuilderPreview } from "@forwardimpact/libpathway/job";
9
9
 
10
10
  /**
11
11
  * Render job builder page
package/src/pages/job.js CHANGED
@@ -5,7 +5,7 @@
5
5
  import { render, div, p } from "../lib/render.js";
6
6
  import { getState } from "../lib/state.js";
7
7
  import { renderError } from "../components/error-page.js";
8
- import { prepareJobDetail } from "@forwardimpact/model/job";
8
+ import { prepareJobDetail } from "@forwardimpact/libpathway/job";
9
9
  import { jobToDOM } from "../formatters/job/dom.js";
10
10
 
11
11
  /** @type {string|null} Cached job template */
@@ -14,7 +14,7 @@ import {
14
14
  getCapabilityEmoji,
15
15
  getConceptEmoji,
16
16
  } from "@forwardimpact/schema/levels";
17
- import { generateSkillMarkdown } from "@forwardimpact/model";
17
+ import { generateSkillMarkdown } from "@forwardimpact/libpathway";
18
18
  import { formatAgentSkill } from "../formatters/agent/skill.js";
19
19
 
20
20
  /** @type {string|null} Cached skill template */
package/src/slide-main.js CHANGED
@@ -8,7 +8,7 @@ import { createSlideRouter } from "./lib/router-slides.js";
8
8
  import { setData, getState } from "./lib/state.js";
9
9
  import { loadAllData } from "./lib/yaml-loader.js";
10
10
  import { span, a } from "./lib/render.js";
11
- import { generateAllJobs } from "@forwardimpact/model/derivation";
11
+ import { generateAllJobs } from "@forwardimpact/libpathway/derivation";
12
12
  import { sortTracksByName } from "./formatters/track/shared.js";
13
13
 
14
14
  // Import slide renderers
@@ -6,7 +6,7 @@
6
6
 
7
7
  import { div, heading1, heading2, p, a, ul, li, span } from "../lib/render.js";
8
8
  import { getConceptEmoji } from "@forwardimpact/schema/levels";
9
- import { generateAllJobs } from "@forwardimpact/model/derivation";
9
+ import { generateAllJobs } from "@forwardimpact/libpathway/derivation";
10
10
 
11
11
  /**
12
12
  * Render the slide index
package/src/slides/job.js CHANGED
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import { div, h1, p } from "../lib/render.js";
8
- import { prepareJobDetail } from "@forwardimpact/model/job";
8
+ import { prepareJobDetail } from "@forwardimpact/libpathway/job";
9
9
  import { jobToDOM } from "../formatters/index.js";
10
10
 
11
11
  /**
@@ -22,7 +22,7 @@ import { prepareBehavioursList } from "../formatters/behaviour/shared.js";
22
22
  import { prepareDriversList } from "../formatters/driver/shared.js";
23
23
  import { prepareGradesList } from "../formatters/grade/shared.js";
24
24
  import { prepareTracksList } from "../formatters/track/shared.js";
25
- import { generateAllJobs } from "@forwardimpact/model/derivation";
25
+ import { generateAllJobs } from "@forwardimpact/libpathway/derivation";
26
26
 
27
27
  /**
28
28
  * Format discipline group name for display
package/src/slides.html CHANGED
@@ -13,19 +13,19 @@
13
13
  "@forwardimpact/schema/levels": "/schema/lib/levels.js",
14
14
  "@forwardimpact/schema/loader": "/schema/lib/loader.js",
15
15
  "@forwardimpact/schema/validation": "/schema/lib/validation.js",
16
- "@forwardimpact/model": "/model/lib/index.js",
17
- "@forwardimpact/model/derivation": "/model/lib/derivation.js",
18
- "@forwardimpact/model/modifiers": "/model/lib/modifiers.js",
19
- "@forwardimpact/model/agent": "/model/lib/agent.js",
20
- "@forwardimpact/model/interview": "/model/lib/interview.js",
21
- "@forwardimpact/model/job": "/model/lib/job.js",
22
- "@forwardimpact/model/job-cache": "/model/lib/job-cache.js",
23
- "@forwardimpact/model/checklist": "/model/lib/checklist.js",
24
- "@forwardimpact/model/matching": "/model/lib/matching.js",
25
- "@forwardimpact/model/profile": "/model/lib/profile.js",
26
- "@forwardimpact/model/progression": "/model/lib/progression.js",
27
- "@forwardimpact/model/policies": "/model/lib/policies/index.js",
28
- "@forwardimpact/model/toolkit": "/model/lib/toolkit.js"
16
+ "@forwardimpact/libpathway": "/model/lib/index.js",
17
+ "@forwardimpact/libpathway/derivation": "/model/lib/derivation.js",
18
+ "@forwardimpact/libpathway/modifiers": "/model/lib/modifiers.js",
19
+ "@forwardimpact/libpathway/agent": "/model/lib/agent.js",
20
+ "@forwardimpact/libpathway/interview": "/model/lib/interview.js",
21
+ "@forwardimpact/libpathway/job": "/model/lib/job.js",
22
+ "@forwardimpact/libpathway/job-cache": "/model/lib/job-cache.js",
23
+ "@forwardimpact/libpathway/checklist": "/model/lib/checklist.js",
24
+ "@forwardimpact/libpathway/matching": "/model/lib/matching.js",
25
+ "@forwardimpact/libpathway/profile": "/model/lib/profile.js",
26
+ "@forwardimpact/libpathway/progression": "/model/lib/progression.js",
27
+ "@forwardimpact/libpathway/policies": "/model/lib/policies/index.js",
28
+ "@forwardimpact/libpathway/toolkit": "/model/lib/toolkit.js"
29
29
  }
30
30
  }
31
31
  </script>