@forwardimpact/pathway 0.22.0 → 0.23.1

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 (78) hide show
  1. package/bin/fit-pathway.js +8 -4
  2. package/package.json +6 -2
  3. package/src/commands/agent.js +6 -3
  4. package/src/commands/behaviour.js +11 -1
  5. package/src/commands/build.js +11 -2
  6. package/src/commands/command-factory.js +4 -2
  7. package/src/commands/dev.js +9 -2
  8. package/src/commands/discipline.js +25 -10
  9. package/src/commands/driver.js +11 -1
  10. package/src/commands/job.js +127 -28
  11. package/src/commands/level.js +25 -3
  12. package/src/commands/skill.js +11 -1
  13. package/src/commands/stage.js +11 -1
  14. package/src/commands/tool.js +6 -3
  15. package/src/commands/track.js +20 -4
  16. package/src/components/card.js +8 -104
  17. package/src/components/comparison-radar.js +1 -1
  18. package/src/components/detail.js +16 -118
  19. package/src/components/error-page.js +8 -68
  20. package/src/components/grid.js +12 -106
  21. package/src/components/list.js +7 -116
  22. package/src/components/nav.js +7 -60
  23. package/src/css/bundles/app.css +25 -21
  24. package/src/css/bundles/handout.css +33 -33
  25. package/src/css/bundles/slides.css +25 -25
  26. package/src/formatters/discipline/markdown.js +16 -1
  27. package/src/formatters/interview/shared.js +3 -3
  28. package/src/formatters/job/description.js +2 -2
  29. package/src/formatters/progress/shared.js +3 -3
  30. package/src/formatters/skill/shared.js +1 -1
  31. package/src/formatters/track/markdown.js +14 -0
  32. package/src/formatters/track/shared.js +1 -1
  33. package/src/handout.html +32 -13
  34. package/src/index.html +32 -13
  35. package/src/lib/error-boundary.js +3 -66
  36. package/src/lib/errors.js +7 -45
  37. package/src/lib/job-cache.js +1 -1
  38. package/src/lib/markdown.js +2 -109
  39. package/src/lib/reactive.js +7 -73
  40. package/src/lib/render.js +49 -197
  41. package/src/lib/router-core.js +2 -156
  42. package/src/lib/router-pages.js +2 -11
  43. package/src/lib/router-slides.js +2 -197
  44. package/src/lib/state.js +14 -63
  45. package/src/lib/utils.js +3 -10
  46. package/src/lib/yaml-loader.js +13 -71
  47. package/src/pages/agent-builder.js +1 -1
  48. package/src/pages/assessment-results.js +1 -1
  49. package/src/pages/job-builder.js +1 -1
  50. package/src/pages/job.js +1 -1
  51. package/src/pages/skill.js +1 -1
  52. package/src/slide-main.js +1 -1
  53. package/src/slides/index.js +1 -1
  54. package/src/slides/job.js +1 -1
  55. package/src/slides/overview.js +1 -1
  56. package/src/slides.html +32 -13
  57. package/src/css/base.css +0 -56
  58. package/src/css/components/badges.css +0 -232
  59. package/src/css/components/buttons.css +0 -101
  60. package/src/css/components/forms.css +0 -191
  61. package/src/css/components/layout.css +0 -218
  62. package/src/css/components/nav.css +0 -206
  63. package/src/css/components/progress.css +0 -166
  64. package/src/css/components/states.css +0 -82
  65. package/src/css/components/surfaces.css +0 -347
  66. package/src/css/components/tables.css +0 -362
  67. package/src/css/components/top-bar.css +0 -180
  68. package/src/css/components/typography.css +0 -121
  69. package/src/css/components/utilities.css +0 -41
  70. package/src/css/pages/detail.css +0 -119
  71. package/src/css/reset.css +0 -50
  72. package/src/css/tokens.css +0 -162
  73. package/src/css/views/handout.css +0 -30
  74. package/src/css/views/print.css +0 -634
  75. package/src/css/views/slide-animations.css +0 -113
  76. package/src/css/views/slide-base.css +0 -331
  77. package/src/css/views/slide-sections.css +0 -597
  78. package/src/css/views/slide-tables.css +0 -275
@@ -1,275 +0,0 @@
1
- /**
2
- * Slide Table Styles
3
- *
4
- * Enhanced table styles for slide views.
5
- */
6
-
7
- @layer slides {
8
- .slide-view .data-table,
9
- .slide-view .level-table {
10
- width: 100%;
11
- border-collapse: separate;
12
- border-spacing: 0;
13
- margin-bottom: var(--space-lg);
14
- border-radius: var(--radius-lg);
15
- overflow: hidden;
16
- box-shadow: 0 2px 12px rgba(59, 130, 246, 0.08);
17
- }
18
-
19
- .slide-view .data-table th,
20
- .slide-view .data-table td,
21
- .slide-view .level-table th,
22
- .slide-view .level-table td {
23
- padding: var(--space-sm) var(--space-md);
24
- text-align: left;
25
- border-bottom: 1px solid rgba(59, 130, 246, 0.1);
26
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
27
- }
28
-
29
- .slide-view .data-table tbody tr,
30
- .slide-view .level-table tbody tr {
31
- background: rgba(255, 255, 255, 0.6);
32
- backdrop-filter: blur(5px);
33
- }
34
-
35
- .slide-view .data-table tbody tr:hover,
36
- .slide-view .level-table tbody tr:hover {
37
- background: linear-gradient(
38
- 90deg,
39
- rgba(59, 130, 246, 0.05) 0%,
40
- rgba(147, 51, 234, 0.03) 100%
41
- );
42
- transform: scale(1.01);
43
- box-shadow: 0 2px 8px rgba(59, 130, 246, 0.1);
44
- }
45
-
46
- .slide-view .data-table th,
47
- .slide-view .level-table th {
48
- background: linear-gradient(
49
- 135deg,
50
- rgba(59, 130, 246, 0.08) 0%,
51
- rgba(147, 51, 234, 0.05) 100%
52
- );
53
- backdrop-filter: blur(10px);
54
- font-weight: 600;
55
- font-size: var(--font-size-sm);
56
- color: var(--color-text-muted);
57
- text-transform: uppercase;
58
- letter-spacing: 0.05em;
59
- }
60
-
61
- .slide-view .level-table th:first-child {
62
- width: 140px;
63
- }
64
-
65
- /* Modifiers in slides */
66
- .slide-modifier {
67
- display: inline-block;
68
- padding: 0.125rem 0.375rem;
69
- border-radius: var(--radius-sm);
70
- font-size: var(--font-size-xs);
71
- font-weight: 600;
72
- box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
73
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
74
- }
75
-
76
- .slide-modifier:hover {
77
- transform: translateY(-1px);
78
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
79
- }
80
-
81
- .slide-modifier-positive {
82
- background: linear-gradient(
83
- 135deg,
84
- rgba(16, 185, 129, 0.2),
85
- rgba(16, 185, 129, 0.15)
86
- );
87
- color: var(--color-success);
88
- border: 1px solid rgba(16, 185, 129, 0.3);
89
- }
90
-
91
- .slide-modifier-negative {
92
- background: linear-gradient(
93
- 135deg,
94
- rgba(239, 68, 68, 0.2),
95
- rgba(239, 68, 68, 0.15)
96
- );
97
- color: var(--color-error);
98
- border: 1px solid rgba(239, 68, 68, 0.3);
99
- }
100
-
101
- .slide-modifier-neutral {
102
- background: linear-gradient(
103
- 135deg,
104
- rgba(148, 163, 184, 0.15),
105
- rgba(148, 163, 184, 0.1)
106
- );
107
- color: var(--color-text-muted);
108
- border: 1px solid rgba(148, 163, 184, 0.3);
109
- }
110
-
111
- /* Badges in slides */
112
- .slide-view .badge,
113
- .slide-view .level-badge {
114
- display: inline-block;
115
- padding: var(--space-xs) var(--space-sm);
116
- border-radius: var(--radius-md);
117
- font-size: var(--font-size-xs);
118
- font-weight: 500;
119
- position: relative;
120
- box-shadow:
121
- 0 2px 8px rgba(0, 0, 0, 0.08),
122
- inset 0 1px 2px rgba(255, 255, 255, 0.5);
123
- border: 1px solid rgba(255, 255, 255, 0.3);
124
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
125
- animation: badgePopIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) backwards;
126
- overflow: hidden;
127
- }
128
-
129
- /* Staggered delays for sequential appearance */
130
- .slide-view .badge:nth-of-type(1),
131
- .slide-view .level-badge:nth-of-type(1) {
132
- animation-delay: 0.1s;
133
- }
134
-
135
- .slide-view .badge:nth-of-type(2),
136
- .slide-view .level-badge:nth-of-type(2) {
137
- animation-delay: 0.15s;
138
- }
139
-
140
- .slide-view .badge:nth-of-type(3),
141
- .slide-view .level-badge:nth-of-type(3) {
142
- animation-delay: 0.2s;
143
- }
144
-
145
- .slide-view .badge:nth-of-type(4),
146
- .slide-view .level-badge:nth-of-type(4) {
147
- animation-delay: 0.25s;
148
- }
149
-
150
- .slide-view .badge:nth-of-type(5),
151
- .slide-view .level-badge:nth-of-type(5) {
152
- animation-delay: 0.3s;
153
- }
154
-
155
- /* Shimmer effect on hover */
156
- .slide-view .badge::before,
157
- .slide-view .level-badge::before {
158
- content: "";
159
- position: absolute;
160
- top: 0;
161
- left: -100%;
162
- width: 100%;
163
- height: 100%;
164
- background: linear-gradient(
165
- 90deg,
166
- transparent,
167
- rgba(255, 255, 255, 0.4),
168
- transparent
169
- );
170
- transition: left 0.5s;
171
- }
172
-
173
- .slide-view .badge:hover,
174
- .slide-view .level-badge:hover {
175
- transform: translateY(-2px) scale(1.05) rotate(-1deg);
176
- box-shadow:
177
- 0 6px 16px rgba(59, 130, 246, 0.2),
178
- inset 0 1px 2px rgba(255, 255, 255, 0.7);
179
- }
180
-
181
- .slide-view .badge:hover::before,
182
- .slide-view .level-badge:hover::before {
183
- left: 100%;
184
- }
185
-
186
- /* Level bars and dots in slides */
187
- .slide-view .level-bar {
188
- display: flex;
189
- gap: 6px;
190
- }
191
-
192
- .slide-view .level-dot {
193
- width: 14px;
194
- height: 14px;
195
- border-radius: 50%;
196
- background: rgba(226, 232, 240, 0.5);
197
- border: 2px solid rgba(203, 213, 225, 0.8);
198
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
199
- position: relative;
200
- }
201
-
202
- .slide-view .level-dot.filled {
203
- box-shadow:
204
- 0 2px 8px rgba(59, 130, 246, 0.4),
205
- inset 0 1px 2px rgba(255, 255, 255, 0.5);
206
- animation:
207
- dotFillUp 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards,
208
- dotPulse 2s ease-in-out 0.8s infinite;
209
- }
210
-
211
- /* Staggered animation delays for sequential fill */
212
- .slide-view .level-dot.filled:nth-child(1) {
213
- animation-delay: 0s, 0.8s;
214
- }
215
-
216
- .slide-view .level-dot.filled:nth-child(2) {
217
- animation-delay: 0.1s, 0.9s;
218
- }
219
-
220
- .slide-view .level-dot.filled:nth-child(3) {
221
- animation-delay: 0.2s, 1s;
222
- }
223
-
224
- .slide-view .level-dot.filled:nth-child(4) {
225
- animation-delay: 0.3s, 1.1s;
226
- }
227
-
228
- .slide-view .level-dot.filled:nth-child(5) {
229
- animation-delay: 0.4s, 1.2s;
230
- }
231
-
232
- .slide-view .level-dot.filled.level-1 {
233
- background: linear-gradient(135deg, #fecaca, #fca5a5);
234
- border-color: #f87171;
235
- box-shadow:
236
- 0 2px 8px rgba(239, 68, 68, 0.4),
237
- inset 0 1px 2px rgba(255, 255, 255, 0.5);
238
- }
239
-
240
- .slide-view .level-dot.filled.level-2 {
241
- background: linear-gradient(135deg, #fde68a, #fcd34d);
242
- border-color: #fbbf24;
243
- box-shadow:
244
- 0 2px 8px rgba(245, 158, 11, 0.4),
245
- inset 0 1px 2px rgba(255, 255, 255, 0.5);
246
- }
247
-
248
- .slide-view .level-dot.filled.level-3 {
249
- background: linear-gradient(135deg, #bbf7d0, #86efac);
250
- border-color: #34d399;
251
- box-shadow:
252
- 0 2px 8px rgba(16, 185, 129, 0.4),
253
- inset 0 1px 2px rgba(255, 255, 255, 0.5);
254
- }
255
-
256
- .slide-view .level-dot.filled.level-4 {
257
- background: linear-gradient(135deg, #a5f3fc, #67e8f9);
258
- border-color: #22d3ee;
259
- box-shadow:
260
- 0 2px 8px rgba(6, 182, 212, 0.4),
261
- inset 0 1px 2px rgba(255, 255, 255, 0.5);
262
- }
263
-
264
- .slide-view .level-dot.filled.level-5 {
265
- background: linear-gradient(135deg, #c4b5fd, #a78bfa);
266
- border-color: #a78bfa;
267
- box-shadow:
268
- 0 2px 8px rgba(139, 92, 246, 0.4),
269
- inset 0 1px 2px rgba(255, 255, 255, 0.5);
270
- }
271
-
272
- .slide-view .level-dot:hover {
273
- transform: scale(1.2);
274
- }
275
- }