@profpowell/vb-project-planning 0.2.1 → 0.2.2
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 -2
- package/dist/vb-project-planning.css +56 -2
- package/dist/vb-project-planning.js +3188 -2544
- package/dist/vb-project-planning.min.css +1 -1
- package/dist/vb-project-planning.min.js +221 -197
- package/package.json +7 -4
- package/src/lib/board-surface.js +158 -0
- package/src/lib/bundle-registry.js +2 -75
- package/src/lib/dates.js +125 -0
- package/src/lib/escape.js +34 -0
- package/src/lib/hash.js +16 -0
- package/src/lib/portrait-url.js +3 -29
- package/src/lib/src-loader.js +78 -0
- package/src/utils/copy-init.js +56 -17
- package/src/web-components/_ux-base.js +409 -24
- package/src/web-components/adr-wc/README.md +18 -16
- package/src/web-components/adr-wc/api.json +7 -5
- package/src/web-components/adr-wc/logic.js +50 -136
- package/src/web-components/burndown-chart/api.json +8 -6
- package/src/web-components/burndown-chart/logic.js +75 -39
- package/src/web-components/empathy-map/api.json +13 -13
- package/src/web-components/empathy-map/logic.js +161 -168
- package/src/web-components/empathy-map/static.html +3 -3
- package/src/web-components/empathy-map/styles.js +1 -0
- package/src/web-components/gantt-chart/README.md +12 -6
- package/src/web-components/gantt-chart/api.json +23 -7
- package/src/web-components/gantt-chart/logic.js +456 -431
- package/src/web-components/gantt-chart/styles.css +9 -1
- package/src/web-components/impact-effort/api.json +9 -7
- package/src/web-components/impact-effort/logic.js +238 -209
- package/src/web-components/impact-effort/static.html +12 -4
- package/src/web-components/iron-triangle/_capacity.js +0 -18
- package/src/web-components/kanban-board/api.json +8 -6
- package/src/web-components/kanban-board/logic.js +289 -333
- package/src/web-components/product-roadmap/api.json +14 -13
- package/src/web-components/product-roadmap/logic.js +393 -246
- package/src/web-components/product-roadmap/styles.css +40 -0
- package/src/web-components/quadrant-grid/api.json +9 -4
- package/src/web-components/quadrant-grid/logic.js +80 -12
- package/src/web-components/quadrant-grid/styles.css +7 -0
- package/src/web-components/quality-target/_quality-utils.js +2 -46
- package/src/web-components/review-surface/README.md +9 -5
- package/src/web-components/review-surface/api.json +10 -8
- package/src/web-components/review-surface/logic.js +349 -218
- package/src/web-components/risk-register/api.json +1 -6
- package/src/web-components/risk-register/logic.js +71 -24
- package/src/web-components/story-map/api.json +8 -6
- package/src/web-components/story-map/logic.js +280 -281
- package/src/web-components/story-map/static.html +15 -5
- package/src/web-components/traceability-matrix/api.json +10 -3
- package/src/web-components/traceability-matrix/logic.js +112 -63
- package/src/web-components/traceability-matrix/styles.css +14 -1
- package/src/web-components/user-journey/api.json +25 -24
- package/src/web-components/user-journey/logic.js +76 -127
- package/src/web-components/user-journey/static.html +2 -2
- package/src/web-components/user-persona/api.json +15 -14
- package/src/web-components/user-persona/logic.js +71 -117
- package/src/web-components/user-persona/styles.js +1 -0
- package/src/web-components/user-story/api.json +13 -11
- package/src/web-components/user-story/logic.js +164 -195
- package/src/web-components/user-story/styles.js +28 -1
- package/src/web-components/work-item/README.md +3 -3
- package/src/web-components/work-item/api.json +13 -11
- package/src/web-components/work-item/logic.js +58 -154
package/README.md
CHANGED
|
@@ -86,10 +86,13 @@ This package was decomposed out of `vanilla-breeze` core so that framework stays
|
|
|
86
86
|
## Development
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
npm run build
|
|
90
|
-
npm
|
|
89
|
+
npm run build # bundle dist/ (esm + minified, js + css) via esbuild
|
|
90
|
+
npm run typecheck # tsc checkJs over src/ (JSDoc types, no unused locals)
|
|
91
|
+
npm test # unit tests (src/lib, run with TZ=America/Los_Angeles) + Playwright specs
|
|
91
92
|
```
|
|
92
93
|
|
|
94
|
+
The Playwright specs load the demo pages from the committed `docs/` site but serve the component bundle from `dist/`, so run `npm run build` first and they test your current `src/`. Set `VB_TEST_PORT` to run the suite in more than one checkout at once (default 4331).
|
|
95
|
+
|
|
93
96
|
`dist/` is committed: it is what the npm tarball ships and what the docs site vendors. CI fails if `src/` changes without a rebuilt `dist/`.
|
|
94
97
|
|
|
95
98
|
The docs site lives in `site/` (CookSSG, styled by Vanilla Breeze) and depends on `vanilla-breeze` for tokens/themes and the `<drag-surface>` / `<data-table>` peers. It imports this package's `dist/` directly.
|
|
@@ -265,6 +265,9 @@ quadrant-grid {
|
|
|
265
265
|
border-radius: var(--radius-s, 0.25rem);
|
|
266
266
|
font-size: var(--font-size-sm, 0.875rem);
|
|
267
267
|
}
|
|
268
|
+
.qg-items > li.qg-pin-item {
|
|
269
|
+
display: contents;
|
|
270
|
+
}
|
|
268
271
|
.qg-pinned {
|
|
269
272
|
position: absolute;
|
|
270
273
|
inline-size: max-content;
|
|
@@ -402,9 +405,19 @@ traceability-matrix {
|
|
|
402
405
|
border-block-end: var(--border-width-thin, 1px) solid var(--color-border, oklch(85% 0 0));
|
|
403
406
|
cursor: default;
|
|
404
407
|
}
|
|
405
|
-
|
|
408
|
+
.tm-cell-btn {
|
|
409
|
+
all: unset;
|
|
410
|
+
box-sizing: border-box;
|
|
411
|
+
display: block;
|
|
412
|
+
inline-size: 100%;
|
|
413
|
+
min-block-size: 1.5em;
|
|
414
|
+
text-align: inherit;
|
|
406
415
|
cursor: pointer;
|
|
407
416
|
}
|
|
417
|
+
.tm-cell-btn:focus-visible {
|
|
418
|
+
outline: 2px solid var(--color-accent, oklch(45% 0.18 260));
|
|
419
|
+
outline-offset: 2px;
|
|
420
|
+
}
|
|
408
421
|
}
|
|
409
422
|
[data-state-highlighted]:not(traceability-matrix *) {
|
|
410
423
|
outline: 2px solid var(--color-accent, oklch(45% 0.18 260));
|
|
@@ -584,6 +597,38 @@ product-roadmap > section[data-lane] {
|
|
|
584
597
|
border-start-end-radius: var(--radius-s, 0.25rem);
|
|
585
598
|
border-end-end-radius: var(--radius-s, 0.25rem);
|
|
586
599
|
}
|
|
600
|
+
.rm-bar:focus-visible {
|
|
601
|
+
outline: var(--border-width-medium, 2px) solid var(--color-focus, var(--color-interactive, #0066cc));
|
|
602
|
+
outline-offset: 2px;
|
|
603
|
+
}
|
|
604
|
+
.rm-bar[data-dragging] {
|
|
605
|
+
cursor: grabbing;
|
|
606
|
+
z-index: 3;
|
|
607
|
+
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
|
|
608
|
+
}
|
|
609
|
+
.rm-bar-status {
|
|
610
|
+
flex: none;
|
|
611
|
+
font-size: var(--font-size-xs, 0.75rem);
|
|
612
|
+
font-weight: 600;
|
|
613
|
+
opacity: 0.9;
|
|
614
|
+
white-space: nowrap;
|
|
615
|
+
padding-inline-end: var(--size-xs, 0.5rem);
|
|
616
|
+
}
|
|
617
|
+
.rm-track[data-drop-target] {
|
|
618
|
+
outline: var(--border-width-medium, 2px) dashed var(--color-interactive, #0066cc);
|
|
619
|
+
outline-offset: -2px;
|
|
620
|
+
}
|
|
621
|
+
.rm-sr-only {
|
|
622
|
+
position: absolute;
|
|
623
|
+
inline-size: 1px;
|
|
624
|
+
block-size: 1px;
|
|
625
|
+
margin: -1px;
|
|
626
|
+
padding: 0;
|
|
627
|
+
overflow: hidden;
|
|
628
|
+
clip-path: inset(50%);
|
|
629
|
+
white-space: nowrap;
|
|
630
|
+
border: 0;
|
|
631
|
+
}
|
|
587
632
|
.rm-bar[data-status=planned] {
|
|
588
633
|
background: var(--color-info, oklch(60% 0.12 240));
|
|
589
634
|
}
|
|
@@ -617,6 +662,9 @@ product-roadmap:not([editable]) .rm-bar {
|
|
|
617
662
|
product-roadmap:not([editable]) .rm-bar-handle {
|
|
618
663
|
display: none;
|
|
619
664
|
}
|
|
665
|
+
product-roadmap[editable] .rm-bar {
|
|
666
|
+
touch-action: none;
|
|
667
|
+
}
|
|
620
668
|
@media (prefers-reduced-motion: reduce) {
|
|
621
669
|
product-roadmap .rm-bar {
|
|
622
670
|
transition: none;
|
|
@@ -999,6 +1047,13 @@ gantt-chart:not([data-upgraded]) > table {
|
|
|
999
1047
|
overflow: hidden;
|
|
1000
1048
|
text-overflow: ellipsis;
|
|
1001
1049
|
}
|
|
1050
|
+
.gc-task-status {
|
|
1051
|
+
flex: none;
|
|
1052
|
+
margin-inline-start: auto;
|
|
1053
|
+
font-size: 11px;
|
|
1054
|
+
font-weight: 600;
|
|
1055
|
+
color: var(--color-text-muted, #666666);
|
|
1056
|
+
}
|
|
1002
1057
|
.gc-task-dates {
|
|
1003
1058
|
position: absolute;
|
|
1004
1059
|
width: 1px;
|
|
@@ -1149,7 +1204,6 @@ gantt-chart:not([data-upgraded]) > table {
|
|
|
1149
1204
|
fill: none;
|
|
1150
1205
|
stroke: var(--color-text-muted, #666666);
|
|
1151
1206
|
stroke-width: 1.5;
|
|
1152
|
-
marker-end: url(#gc-arrowhead);
|
|
1153
1207
|
}
|
|
1154
1208
|
.gc-sr-only {
|
|
1155
1209
|
position: absolute;
|