ketatlas 0.2.2 → 0.2.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.4
4
+
5
+ - Anchor the progress detail header directly inside the modal top border and scroll only the form beneath it.
6
+
7
+ ## 0.2.3
8
+
9
+ - Keep preview headers and progress footers outside the scrolling content so the footer remains fixed to the frame bottom.
10
+
3
11
  ## 0.2.2
4
12
 
5
13
  - Show screen status, blockers, linked PR states and scoped state checks in preview footers, with direct access to progress details.
package/README.md CHANGED
@@ -17,15 +17,15 @@ https://github.com/user-attachments/assets/13f24fc8-7b8e-4bda-9e02-364c120ee163
17
17
  [KetAtlas is available on npm](https://www.npmjs.com/package/ketatlas). Use Node.js 22+ and run it from any directory:
18
18
 
19
19
  ```sh
20
- npx --yes ketatlas@0.2.2 scaffold my-atlas --template web
21
- npx --yes ketatlas@0.2.2 serve my-atlas/atlas.json
22
- npx --yes ketatlas@0.2.2 audit my-atlas/atlas.json --strict
20
+ npx --yes ketatlas@0.2.4 scaffold my-atlas --template web
21
+ npx --yes ketatlas@0.2.4 serve my-atlas/atlas.json
22
+ npx --yes ketatlas@0.2.4 audit my-atlas/atlas.json --strict
23
23
  ```
24
24
 
25
25
  Or install the CLI once for your user account:
26
26
 
27
27
  ```sh
28
- npm install --global ketatlas@0.2.2
28
+ npm install --global ketatlas@0.2.4
29
29
  ketatlas scaffold my-atlas
30
30
  ketatlas serve my-atlas/atlas.json
31
31
  ketatlas audit my-atlas/atlas.json --strict
package/docs/progress.md CHANGED
@@ -71,11 +71,11 @@ Evidence kinds are `pr`, `test`, `release`, `reference`. Required fields: `id`,
71
71
  ## Editing locally and from agents
72
72
 
73
73
  ```sh
74
- npx --yes ketatlas@0.2.2 serve atlas.json
75
- npx --yes ketatlas@0.2.2 serve atlas.json --read-only
76
- npx --yes ketatlas@0.2.2 progress atlas.json --init
77
- npx --yes ketatlas@0.2.2 progress atlas.json --json
78
- npx --yes ketatlas@0.2.2 progress atlas.json --set sign-in --record record.json --expect REVISION_FROM_READ
74
+ npx --yes ketatlas@0.2.4 serve atlas.json
75
+ npx --yes ketatlas@0.2.4 serve atlas.json --read-only
76
+ npx --yes ketatlas@0.2.4 progress atlas.json --init
77
+ npx --yes ketatlas@0.2.4 progress atlas.json --json
78
+ npx --yes ketatlas@0.2.4 progress atlas.json --set sign-in --record record.json --expect REVISION_FROM_READ
79
79
  ```
80
80
 
81
81
  `--init` explicitly creates Unassessed records and refuses an existing progress file. `--set` replaces one complete screen record; preserve existing checklist IDs, evidence and state references. Read the revision with `--json` first. Do not retry a stale revision by blindly substituting a new one: reload and reconcile changes. `updatedAt` is stamped on successful record writes.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ketatlas",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Interactive HTML maps for screens, workflows, and user journeys.",
5
5
  "type": "module",
6
6
  "license": "MIT",
package/src/index.js CHANGED
@@ -365,7 +365,7 @@ export function createAtlas(container, input, options = {}) {
365
365
  const v = previewNode.screen.viewport,
366
366
  dialog = $("screen-dialog"),
367
367
  frame = $("dialog-preview").querySelector("iframe");
368
- const scale = Math.min(1, dialog.clientWidth / v.width);
368
+ const scale = Math.min(1, dialog.querySelector(".preview-scroll").clientWidth / v.width);
369
369
  $("dialog-preview").style.width = v.width * scale + "px";
370
370
  $("dialog-preview").style.height = v.height * scale + "px";
371
371
  frame.style.width = v.width + "px";
package/src/template.js CHANGED
@@ -30,7 +30,7 @@ export function template(config) {
30
30
  <div class="map-minimap"><span>Current flow</span><svg id="minimap" viewBox="0 0 168 114" role="img" aria-label="Current viewport position"></svg><button id="minimap-fit">Fit entire flow</button></div>
31
31
  </main>
32
32
  </div>
33
- <dialog id="screen-dialog" class="screen-dialog" aria-labelledby="dialog-title"><header><div><small id="dialog-screen-id"></small><h2 id="dialog-title"></h2></div><button id="close-screen" class="icon-button" aria-label="Close preview"></button></header><div id="dialog-preview"></div><footer><div id="dialog-progress" class="preview-progress"></div><div class="preview-actions"><button id="dialog-progress-details" data-ui="action" data-variant="secondary">Progress details</button><a id="dialog-open" data-ui="action" data-variant="secondary" target="_blank" rel="noopener noreferrer">Open in new tab</a></div></footer></dialog>
33
+ <dialog id="screen-dialog" class="screen-dialog" aria-labelledby="dialog-title"><header><div><small id="dialog-screen-id"></small><h2 id="dialog-title"></h2></div><button id="close-screen" class="icon-button" aria-label="Close preview"></button></header><div class="preview-scroll"><div id="dialog-preview"></div></div><footer><div id="dialog-progress" class="preview-progress"></div><div class="preview-actions"><button id="dialog-progress-details" data-ui="action" data-variant="secondary">Progress details</button><a id="dialog-open" data-ui="action" data-variant="secondary" target="_blank" rel="noopener noreferrer">Open in new tab</a></div></footer></dialog>
34
34
  <dialog id="help-dialog" class="help-dialog" aria-labelledby="help-title"><h2 id="help-title">Explore the whole journey</h2><ul>
35
35
  <li>Drag the canvas or a screen card to move around.</li><li>Use + / −, Ctrl/⌘ + scroll, or pinch to zoom.</li><li>Choose a workflow in the sidebar. Fit the flow to see every branch.</li><li>Click a node to follow its outgoing steps. Double-click a screen to interact.</li><li>Use arrow keys to pan, F to fit, 0 to return to the start, and Escape to close.</li>
36
36
  </ul><p>Arrows describe the authored flow. Embedded screens keep their own behavior.</p><button id="close-help" data-ui="action" data-variant="primary">Got it</button></dialog>
@@ -1258,12 +1258,12 @@ a svg {
1258
1258
  width: 100%;
1259
1259
  }
1260
1260
  .progress-editor > .progress-header {
1261
- position: sticky;
1262
- top: 0;
1261
+ position: static;
1262
+ flex: none;
1263
1263
  background: var(--kv-panel-bg);
1264
1264
  z-index: 2;
1265
1265
  border-bottom: 1px solid var(--kv-border-default);
1266
- padding-bottom: var(--kv-space-3);
1266
+ padding: var(--progress-dialog-padding);
1267
1267
  }
1268
1268
  .progress-editor .progress-actions {
1269
1269
  position: sticky;
@@ -1358,11 +1358,9 @@ a svg {
1358
1358
  }
1359
1359
  }
1360
1360
 
1361
- /* Keep delivery context visible while scrolling a full-size screen preview. */
1361
+ /* Only preview content scrolls; the footer remains outside the scrolling region. */
1362
1362
  .screen-dialog footer {
1363
- position: sticky;
1364
- bottom: 0;
1365
- z-index: 1;
1363
+ flex: none;
1366
1364
  background: var(--kv-panel-bg);
1367
1365
  flex-wrap: wrap;
1368
1366
  max-height: 40dvh;
@@ -1406,3 +1404,39 @@ a svg {
1406
1404
  .preview-actions [data-ui] {
1407
1405
  font-size: var(--kv-text-xs);
1408
1406
  }
1407
+
1408
+ .screen-dialog[open] {
1409
+ display: flex;
1410
+ flex-direction: column;
1411
+ overflow: hidden;
1412
+ }
1413
+ .screen-dialog > header {
1414
+ flex: none;
1415
+ position: static;
1416
+ }
1417
+ .preview-scroll {
1418
+ flex: 1 1 auto;
1419
+ min-height: 0;
1420
+ overflow: auto;
1421
+ }
1422
+
1423
+ .progress-editor {
1424
+ --progress-dialog-padding: var(--kv-space-6);
1425
+ padding: 0;
1426
+ overflow: hidden;
1427
+ }
1428
+ .progress-editor[open] {
1429
+ display: flex;
1430
+ flex-direction: column;
1431
+ }
1432
+ .progress-editor > #progress-form {
1433
+ flex: 1 1 auto;
1434
+ min-height: 0;
1435
+ overflow: auto;
1436
+ padding: 0 var(--progress-dialog-padding) var(--progress-dialog-padding);
1437
+ }
1438
+ @media (max-width: 760px) {
1439
+ .progress-editor {
1440
+ --progress-dialog-padding: var(--kv-space-3);
1441
+ }
1442
+ }
@@ -7,7 +7,7 @@ npx ketatlas serve atlas.json
7
7
  npx ketatlas audit atlas.json --strict
8
8
  ```
9
9
 
10
- Edit `atlas.json` to change nodes, edges, and screen URLs. Screen URLs are relative to that file. Refresh the browser after editing. No wrapper HTML, package manifest, lockfile, node_modules, or build step is needed. Alternatively, install the CLI once with npm install --global ketatlas@0.2.2 and use ketatlas serve atlas.json.
10
+ Edit `atlas.json` to change nodes, edges, and screen URLs. Screen URLs are relative to that file. Refresh the browser after editing. No wrapper HTML, package manifest, lockfile, node_modules, or build step is needed. Alternatively, install the CLI once with npm install --global ketatlas@0.2.4 and use ketatlas serve atlas.json.
11
11
 
12
12
  Edit the HTML files in screens/ to replace the sample product. styles/design-system.css is generated from the pinned KetJS design system; do not manually fork its tokens.
13
13
 
@@ -7,7 +7,7 @@ npx ketatlas serve atlas.json
7
7
  npx ketatlas audit atlas.json --strict
8
8
  ```
9
9
 
10
- Edit `atlas.json` to change nodes, edges, and screen URLs. Screen URLs are relative to that file. Refresh the browser after editing. No wrapper HTML, package manifest, lockfile, node_modules, or build step is needed. Alternatively, install the CLI once with npm install --global ketatlas@0.2.2 and use ketatlas serve atlas.json.
10
+ Edit `atlas.json` to change nodes, edges, and screen URLs. Screen URLs are relative to that file. Refresh the browser after editing. No wrapper HTML, package manifest, lockfile, node_modules, or build step is needed. Alternatively, install the CLI once with npm install --global ketatlas@0.2.4 and use ketatlas serve atlas.json.
11
11
 
12
12
  This template models a process without HTML screens. Add a screen registry and screen nodes when needed.
13
13
 
@@ -7,7 +7,7 @@ npx ketatlas serve atlas.json
7
7
  npx ketatlas audit atlas.json --strict
8
8
  ```
9
9
 
10
- Edit `atlas.json` to change nodes, edges, and screen URLs. Screen URLs are relative to that file. Refresh the browser after editing. No wrapper HTML, package manifest, lockfile, node_modules, or build step is needed. Alternatively, install the CLI once with npm install --global ketatlas@0.2.2 and use ketatlas serve atlas.json.
10
+ Edit `atlas.json` to change nodes, edges, and screen URLs. Screen URLs are relative to that file. Refresh the browser after editing. No wrapper HTML, package manifest, lockfile, node_modules, or build step is needed. Alternatively, install the CLI once with npm install --global ketatlas@0.2.4 and use ketatlas serve atlas.json.
11
11
 
12
12
  Edit the HTML files in screens/ to replace the sample product. styles/design-system.css is generated from the pinned KetJS design system; do not manually fork its tokens.
13
13