@forwardimpact/pathway 0.21.0 → 0.23.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.
Files changed (123) hide show
  1. package/README.md +3 -3
  2. package/bin/fit-pathway.js +22 -22
  3. package/package.json +4 -3
  4. package/src/commands/agent.js +14 -10
  5. package/src/commands/behaviour.js +11 -1
  6. package/src/commands/build.js +11 -2
  7. package/src/commands/command-factory.js +4 -2
  8. package/src/commands/dev.js +9 -2
  9. package/src/commands/discipline.js +19 -2
  10. package/src/commands/driver.js +11 -1
  11. package/src/commands/index.js +1 -1
  12. package/src/commands/init.js +1 -1
  13. package/src/commands/interview.js +8 -8
  14. package/src/commands/job.js +41 -28
  15. package/src/commands/level.js +76 -0
  16. package/src/commands/progress.js +20 -20
  17. package/src/commands/questions.js +3 -3
  18. package/src/commands/skill.js +11 -1
  19. package/src/commands/stage.js +11 -1
  20. package/src/commands/tool.js +4 -3
  21. package/src/commands/track.js +11 -1
  22. package/src/components/action-buttons.js +3 -3
  23. package/src/components/builder.js +25 -25
  24. package/src/components/card.js +8 -104
  25. package/src/components/comparison-radar.js +4 -4
  26. package/src/components/detail.js +18 -120
  27. package/src/components/error-page.js +8 -68
  28. package/src/components/grid.js +12 -106
  29. package/src/components/list.js +7 -116
  30. package/src/components/nav.js +7 -60
  31. package/src/components/radar-chart.js +3 -3
  32. package/src/components/skill-matrix.js +7 -7
  33. package/src/css/bundles/app.css +25 -21
  34. package/src/css/bundles/handout.css +33 -33
  35. package/src/css/bundles/slides.css +25 -25
  36. package/src/css/pages/landing.css +5 -5
  37. package/src/formatters/index.js +5 -5
  38. package/src/formatters/interview/shared.js +23 -23
  39. package/src/formatters/job/description.js +18 -18
  40. package/src/formatters/job/dom.js +12 -12
  41. package/src/formatters/job/markdown.js +7 -7
  42. package/src/formatters/json-ld.js +24 -24
  43. package/src/formatters/{grade → level}/dom.js +31 -27
  44. package/src/formatters/{grade → level}/markdown.js +19 -28
  45. package/src/formatters/{grade → level}/microdata.js +28 -38
  46. package/src/formatters/level/shared.js +86 -0
  47. package/src/formatters/progress/markdown.js +2 -2
  48. package/src/formatters/progress/shared.js +51 -51
  49. package/src/formatters/questions/markdown.js +8 -6
  50. package/src/formatters/questions/shared.js +7 -7
  51. package/src/formatters/skill/dom.js +4 -4
  52. package/src/formatters/skill/markdown.js +1 -1
  53. package/src/formatters/skill/microdata.js +3 -3
  54. package/src/formatters/skill/shared.js +3 -3
  55. package/src/formatters/track/shared.js +1 -1
  56. package/src/handout-main.js +12 -12
  57. package/src/handout.html +32 -13
  58. package/src/index.html +33 -14
  59. package/src/lib/card-mappers.js +16 -16
  60. package/src/lib/cli-command.js +3 -3
  61. package/src/lib/cli-output.js +2 -2
  62. package/src/lib/error-boundary.js +3 -66
  63. package/src/lib/errors.js +7 -45
  64. package/src/lib/job-cache.js +12 -12
  65. package/src/lib/markdown.js +2 -109
  66. package/src/lib/reactive.js +7 -73
  67. package/src/lib/render.js +53 -201
  68. package/src/lib/router-core.js +2 -156
  69. package/src/lib/router-pages.js +2 -11
  70. package/src/lib/router-slides.js +2 -197
  71. package/src/lib/state.js +16 -65
  72. package/src/lib/utils.js +3 -10
  73. package/src/lib/yaml-loader.js +22 -80
  74. package/src/main.js +10 -10
  75. package/src/pages/agent-builder.js +12 -12
  76. package/src/pages/assessment-results.js +28 -24
  77. package/src/pages/interview-builder.js +6 -6
  78. package/src/pages/interview.js +8 -8
  79. package/src/pages/job-builder.js +7 -7
  80. package/src/pages/job.js +8 -8
  81. package/src/pages/landing.js +8 -8
  82. package/src/pages/level.js +122 -0
  83. package/src/pages/progress-builder.js +8 -8
  84. package/src/pages/progress.js +74 -74
  85. package/src/pages/self-assessment.js +7 -7
  86. package/src/pages/skill.js +1 -1
  87. package/src/slide-main.js +23 -23
  88. package/src/slides/chapter.js +4 -4
  89. package/src/slides/index.js +11 -11
  90. package/src/slides/interview.js +2 -2
  91. package/src/slides/job.js +4 -4
  92. package/src/slides/level.js +32 -0
  93. package/src/slides/overview.js +10 -10
  94. package/src/slides/progress.js +13 -13
  95. package/src/slides.html +32 -13
  96. package/src/types.js +1 -1
  97. package/templates/job.template.md +2 -2
  98. package/src/commands/grade.js +0 -60
  99. package/src/css/base.css +0 -56
  100. package/src/css/components/badges.css +0 -232
  101. package/src/css/components/buttons.css +0 -101
  102. package/src/css/components/forms.css +0 -191
  103. package/src/css/components/layout.css +0 -218
  104. package/src/css/components/nav.css +0 -206
  105. package/src/css/components/progress.css +0 -166
  106. package/src/css/components/states.css +0 -82
  107. package/src/css/components/surfaces.css +0 -347
  108. package/src/css/components/tables.css +0 -362
  109. package/src/css/components/top-bar.css +0 -180
  110. package/src/css/components/typography.css +0 -121
  111. package/src/css/components/utilities.css +0 -41
  112. package/src/css/pages/detail.css +0 -119
  113. package/src/css/reset.css +0 -50
  114. package/src/css/tokens.css +0 -162
  115. package/src/css/views/handout.css +0 -30
  116. package/src/css/views/print.css +0 -634
  117. package/src/css/views/slide-animations.css +0 -113
  118. package/src/css/views/slide-base.css +0 -331
  119. package/src/css/views/slide-sections.css +0 -597
  120. package/src/css/views/slide-tables.css +0 -275
  121. package/src/formatters/grade/shared.js +0 -86
  122. package/src/pages/grade.js +0 -122
  123. package/src/slides/grade.js +0 -32
@@ -1,119 +0,0 @@
1
- /**
2
- * Detail Page Styles
3
- *
4
- * Shared styles for entity detail pages.
5
- */
6
-
7
- @layer pages {
8
- /* Expectation items */
9
- .expectation-item {
10
- background: var(--color-bg);
11
- padding: var(--space-md);
12
- border-radius: var(--radius-md);
13
- border-left: 4px solid var(--color-primary);
14
- }
15
-
16
- .expectation-value {
17
- font-weight: 500;
18
- }
19
-
20
- /* Question groups */
21
- .question-group {
22
- margin-bottom: var(--space-lg);
23
- padding: var(--space-md);
24
- background: var(--color-surface);
25
- border-radius: var(--radius-md);
26
- border: 1px solid var(--color-border);
27
- }
28
-
29
- .question-group-title {
30
- font-weight: 600;
31
- margin-bottom: var(--space-sm);
32
- display: flex;
33
- align-items: center;
34
- gap: var(--space-sm);
35
- }
36
-
37
- .question-list {
38
- margin-top: var(--space-md);
39
- }
40
-
41
- .question-text {
42
- padding: var(--space-sm) 0;
43
- color: var(--color-text-secondary);
44
- margin: 0;
45
- }
46
-
47
- /* Links list */
48
- .links-list {
49
- display: flex;
50
- flex-direction: column;
51
- gap: var(--space-sm);
52
- }
53
-
54
- .links-list a {
55
- display: inline-flex;
56
- align-items: center;
57
- gap: var(--space-xs);
58
- }
59
-
60
- /* Tools table (for skill detail page) */
61
- .tools-table {
62
- width: 100%;
63
- border-collapse: separate;
64
- border-spacing: 0;
65
- margin-top: var(--space-md);
66
- border: 1px solid var(--color-border);
67
- border-radius: var(--radius-lg);
68
- overflow: hidden;
69
- background: var(--color-surface);
70
- }
71
-
72
- /*
73
- * Table cells: 60px row height = 16px padding-top + 28px content + 16px padding-bottom
74
- * Matches list-item height for visual consistency
75
- */
76
- .tools-table th,
77
- .tools-table td {
78
- padding: var(--space-md) var(--space-lg);
79
- text-align: left;
80
- border-bottom: 1px solid var(--color-border);
81
- height: 60px;
82
- }
83
-
84
- .tools-table th {
85
- font-weight: 600;
86
- font-size: var(--font-size-sm);
87
- color: var(--color-text-secondary);
88
- background: var(--color-bg);
89
- text-transform: uppercase;
90
- letter-spacing: 0.025em;
91
- }
92
-
93
- .tools-table th:first-child {
94
- width: 260px;
95
- white-space: nowrap;
96
- }
97
-
98
- .tools-table td:first-child {
99
- white-space: nowrap;
100
- }
101
-
102
- .tools-table tbody tr:last-child td {
103
- border-bottom: none;
104
- }
105
-
106
- .tools-table tbody tr:hover {
107
- background: var(--color-bg);
108
- }
109
-
110
- /* See all link */
111
- .see-all-link {
112
- margin-top: var(--space-md);
113
- }
114
-
115
- .see-all-link a {
116
- color: var(--color-primary);
117
- font-size: var(--font-size-sm);
118
- }
119
- }
package/src/css/reset.css DELETED
@@ -1,50 +0,0 @@
1
- /**
2
- * CSS Reset
3
- *
4
- * Browser normalization and box-sizing reset.
5
- * This layer provides a consistent baseline across browsers.
6
- */
7
-
8
- @layer reset {
9
- *,
10
- *::before,
11
- *::after {
12
- box-sizing: border-box;
13
- }
14
-
15
- html {
16
- font-size: 16px;
17
- scroll-behavior: smooth;
18
- }
19
-
20
- body {
21
- margin: 0;
22
- }
23
-
24
- h1,
25
- h2,
26
- h3,
27
- h4,
28
- h5,
29
- h6 {
30
- margin: 0;
31
- line-height: 1;
32
- font-weight: 600;
33
- }
34
-
35
- p {
36
- margin: 0;
37
- }
38
-
39
- ul,
40
- ol {
41
- margin: 0;
42
- padding: 0;
43
- list-style: none;
44
- }
45
-
46
- table {
47
- width: 100%;
48
- border-collapse: collapse;
49
- }
50
- }
@@ -1,162 +0,0 @@
1
- /**
2
- * Design Tokens
3
- *
4
- * Single source of truth for colors, spacing, typography, and other
5
- * design decisions.
6
- */
7
-
8
- @layer tokens {
9
- :root {
10
- /* --------------------------------------------------------------------------
11
- Colors - Primary
12
- -------------------------------------------------------------------------- */
13
- --color-primary: #3b82f6;
14
- --color-primary-dark: #2563eb;
15
- --color-primary-light: #93c5fd;
16
-
17
- /* --------------------------------------------------------------------------
18
- Colors - Skill Types
19
- -------------------------------------------------------------------------- */
20
- --color-primary-skill: #ef4444;
21
- --color-primary-skill-light: #fecaca;
22
- --color-secondary: #f59e0b;
23
- --color-secondary-light: #fde68a;
24
- --color-broad: #10b981;
25
- --color-broad-light: #a7f3d0;
26
-
27
- /* --------------------------------------------------------------------------
28
- Colors - Skill Levels (1-5)
29
- -------------------------------------------------------------------------- */
30
- --color-level-1: #fecaca;
31
- --color-level-2: #fde68a;
32
- --color-level-3: #bbf7d0;
33
- --color-level-4: #a5f3fc;
34
- --color-level-5: #c4b5fd;
35
-
36
- /* --------------------------------------------------------------------------
37
- Colors - Behaviour Maturities (1-5)
38
- -------------------------------------------------------------------------- */
39
- --color-maturity-1: #fecaca;
40
- --color-maturity-2: #fde68a;
41
- --color-maturity-3: #bbf7d0;
42
- --color-maturity-4: #a5f3fc;
43
- --color-maturity-5: #c4b5fd;
44
-
45
- /* --------------------------------------------------------------------------
46
- Colors - Capabilities (text) - matches data/capabilities/*.yaml IDs
47
- -------------------------------------------------------------------------- */
48
- --color-cap-ai: #7c3aed; /* violet */
49
- --color-cap-business: #b45309; /* amber */
50
- --color-cap-data: #0f766e; /* teal */
51
- --color-cap-delivery: #dc2626; /* red */
52
- --color-cap-documentation: #15803d; /* green */
53
- --color-cap-ml: #9333ea; /* purple */
54
- --color-cap-people: #be185d; /* pink */
55
- --color-cap-process: #c2410c; /* orange */
56
- --color-cap-product: #4f46e5; /* indigo */
57
- --color-cap-reliability: #0891b2; /* cyan */
58
- --color-cap-scale: #1d4ed8; /* blue */
59
-
60
- /* --------------------------------------------------------------------------
61
- Colors - Capabilities (backgrounds)
62
- -------------------------------------------------------------------------- */
63
- --color-cap-ai-light: #ede9fe; /* violet */
64
- --color-cap-business-light: #fef3c7; /* amber */
65
- --color-cap-data-light: #ccfbf1; /* teal */
66
- --color-cap-delivery-light: #fecaca; /* red */
67
- --color-cap-documentation-light: #dcfce7; /* green */
68
- --color-cap-ml-light: #f3e8ff; /* purple */
69
- --color-cap-people-light: #fce7f3; /* pink */
70
- --color-cap-process-light: #ffedd5; /* orange */
71
- --color-cap-product-light: #e0e7ff; /* indigo */
72
- --color-cap-reliability-light: #cffafe; /* cyan */
73
- --color-cap-scale-light: #dbeafe; /* blue */
74
-
75
- /* --------------------------------------------------------------------------
76
- Colors - Neutrals
77
- -------------------------------------------------------------------------- */
78
- --color-bg: #f8fafc;
79
- --color-bg-secondary: #f1f5f9;
80
- --color-surface: #ffffff;
81
- --color-border: #e2e8f0;
82
- --color-text: #1e293b;
83
- --color-text-muted: #64748b;
84
- --color-text-secondary: #475569;
85
- --color-text-light: #94a3b8;
86
-
87
- /* --------------------------------------------------------------------------
88
- Colors - Status
89
- -------------------------------------------------------------------------- */
90
- --color-success: #10b981;
91
- --color-warning: #f59e0b;
92
- --color-error: #ef4444;
93
- --color-info: #3b82f6;
94
-
95
- /* --------------------------------------------------------------------------
96
- Colors - Graph Nodes (entity types)
97
- -------------------------------------------------------------------------- */
98
- --color-node-driver: #4caf50;
99
- --color-node-skill: #2196f3;
100
- --color-node-behaviour: #9c27b0;
101
- --color-node-discipline: #ff9800;
102
- --color-node-track: #00bcd4;
103
-
104
- /* --------------------------------------------------------------------------
105
- Spacing
106
- -------------------------------------------------------------------------- */
107
- --space-xs: 0.25rem;
108
- --space-sm: 0.5rem;
109
- --space-md: 1rem;
110
- --space-lg: 1.5rem;
111
- --space-xl: 2rem;
112
- --space-2xl: 3rem;
113
-
114
- /* --------------------------------------------------------------------------
115
- Border Radius
116
- -------------------------------------------------------------------------- */
117
- --radius-sm: 0.25rem;
118
- --radius-md: 0.5rem;
119
- --radius-lg: 0.75rem;
120
- --radius-xl: 1rem;
121
-
122
- /* --------------------------------------------------------------------------
123
- Shadows
124
- -------------------------------------------------------------------------- */
125
- --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
126
- --shadow-md:
127
- 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
128
- --shadow-lg:
129
- 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
130
-
131
- /* --------------------------------------------------------------------------
132
- Typography
133
- -------------------------------------------------------------------------- */
134
- --font-family:
135
- system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
136
- sans-serif;
137
- --font-family-mono:
138
- "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo,
139
- Consolas, monospace;
140
- --font-size-xs: 0.75rem;
141
- --font-size-sm: 0.875rem;
142
- --font-size-base: 1rem;
143
- --font-size-lg: 1.125rem;
144
- --font-size-xl: 1.25rem;
145
- --font-size-2xl: 1.5rem;
146
- --font-size-3xl: 2rem;
147
-
148
- /* --------------------------------------------------------------------------
149
- Layout
150
- -------------------------------------------------------------------------- */
151
- --max-width: 1400px;
152
- --drawer-width: 240px;
153
- --top-bar-height: 48px;
154
-
155
- /*
156
- * Responsive breakpoints (used in @media queries):
157
- * - 1280px: Tablet/laptop - layout stacking
158
- * - 768px: Mobile - drawer overlays instead of pushing content
159
- * - 640px: Mobile - full-width buttons, simplified layouts
160
- */
161
- }
162
- }
@@ -1,30 +0,0 @@
1
- /**
2
- * Handout View Styles
3
- *
4
- * Handout-specific styles that override slide view.
5
- */
6
-
7
- @layer handout {
8
- .handout-view {
9
- padding: var(--space-lg);
10
- }
11
-
12
- .handout-view .detail-page {
13
- margin-bottom: var(--space-xl);
14
- padding-bottom: var(--space-xl);
15
- border-bottom: 3px solid var(--color-border);
16
- }
17
-
18
- .handout-view .detail-page:last-child {
19
- border-bottom: none;
20
- margin-bottom: 0;
21
- padding-bottom: 0;
22
- }
23
-
24
- .handout-section-title {
25
- font-size: var(--font-size-xl);
26
- margin-bottom: var(--space-lg);
27
- padding-bottom: var(--space-sm);
28
- border-bottom: 2px solid var(--color-primary);
29
- }
30
- }