From a0a1bb5cfc88a8a65f37cb51c6b94e4a87716043 Mon Sep 17 00:00:00 2001
From: Iisyourdad
Date: Wed, 10 Jun 2026 21:33:58 -0500
Subject: [PATCH] Add sample guide, sample exports, and enriched build report
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- examples/: sample guide store, .sfgz share archive, and exported
output in all nine formats (JSON/MD/HTML×2/PDF/GIF/images/DOCX/PPTX)
- build_report.md now records packaging tool availability, fallback
policy, offline guarantee, and verification entrypoints
- artifacts_manifest.json with sha256 checksums for packages + samples
- CHANGELOG entries for the welcome screen and renderer fixes
Co-Authored-By: Claude Fable 5
---
CHANGELOG.md | 16 ++
build/artifacts_manifest.json | 218 +++++++++++++++
build/build_report.md | 43 +++
.../guide.json | 29 ++
.../step.json | 32 +++
.../original.png | Bin 0 -> 13643 bytes
.../step.json | 73 +++++
.../working.png | Bin 0 -> 13643 bytes
.../step.json | 24 ++
.../original.png | Bin 0 -> 13602 bytes
.../step.json | 100 +++++++
.../working.png | Bin 0 -> 13602 bytes
.../original.png | Bin 0 -> 14031 bytes
.../step.json | 88 ++++++
.../working.png | Bin 0 -> 14031 bytes
.../step.json | 24 ++
.../reset-a-password-in-admin-portal.docx | Bin 0 -> 110463 bytes
.../gif/reset-a-password-in-admin-portal.gif | Bin 0 -> 32090 bytes
...reset-a-password-in-admin-portal-rich.html | 130 +++++++++
.../reset-a-password-in-admin-portal.html | 61 +++++
...set-a-password-in-admin-portal-bundle.json | 30 +++
.../001-open-admin-portal-users.png | Bin 0 -> 31424 bytes
.../002-enable-the-reset-policy.png | Bin 0 -> 38991 bytes
.../004-review-the-confirmation.png | Bin 0 -> 37274 bytes
.../reset-a-password-in-admin-portal.json | 255 ++++++++++++++++++
.../001-open-admin-portal-users.png | Bin 0 -> 31424 bytes
.../002-enable-the-reset-policy.png | Bin 0 -> 38991 bytes
.../004-review-the-confirmation.png | Bin 0 -> 37274 bytes
.../reset-a-password-in-admin-portal.md | 56 ++++
.../001-open-admin-portal-users.png | Bin 0 -> 31424 bytes
.../002-enable-the-reset-policy.png | Bin 0 -> 38991 bytes
.../004-review-the-confirmation.png | Bin 0 -> 37274 bytes
.../pdf/reset-a-password-in-admin-portal.pdf | Bin 0 -> 103120 bytes
.../reset-a-password-in-admin-portal.pptx | Bin 0 -> 117643 bytes
examples/sample-guide.sfgz | Bin 0 -> 88967 bytes
examples/sample-manifest.json | 23 ++
scripts/build-release.sh | 47 +++-
37 files changed, 1245 insertions(+), 4 deletions(-)
create mode 100644 build/artifacts_manifest.json
create mode 100644 build/build_report.md
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/guide.json
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-0997fb48-b598-4319-8144-0ceef68a84f4/step.json
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/original.png
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/step.json
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/working.png
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-62da8044-c236-4012-9fce-15785c94bfa7/step.json
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/original.png
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/step.json
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/working.png
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/original.png
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/step.json
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/working.png
create mode 100644 examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-c0addd40-3e96-495f-b196-d49c08518dba/step.json
create mode 100644 examples/sample-exports/docx/reset-a-password-in-admin-portal.docx
create mode 100644 examples/sample-exports/gif/reset-a-password-in-admin-portal.gif
create mode 100644 examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html
create mode 100644 examples/sample-exports/html-simple/reset-a-password-in-admin-portal.html
create mode 100644 examples/sample-exports/image-bundle/reset-a-password-in-admin-portal-bundle.json
create mode 100644 examples/sample-exports/image-bundle/steps-reset-a-password-in-admin-portal/001-open-admin-portal-users.png
create mode 100644 examples/sample-exports/image-bundle/steps-reset-a-password-in-admin-portal/002-enable-the-reset-policy.png
create mode 100644 examples/sample-exports/image-bundle/steps-reset-a-password-in-admin-portal/004-review-the-confirmation.png
create mode 100644 examples/sample-exports/json/reset-a-password-in-admin-portal.json
create mode 100644 examples/sample-exports/json/steps-reset-a-password-in-admin-portal/001-open-admin-portal-users.png
create mode 100644 examples/sample-exports/json/steps-reset-a-password-in-admin-portal/002-enable-the-reset-policy.png
create mode 100644 examples/sample-exports/json/steps-reset-a-password-in-admin-portal/004-review-the-confirmation.png
create mode 100644 examples/sample-exports/markdown/reset-a-password-in-admin-portal.md
create mode 100644 examples/sample-exports/markdown/steps-reset-a-password-in-admin-portal/001-open-admin-portal-users.png
create mode 100644 examples/sample-exports/markdown/steps-reset-a-password-in-admin-portal/002-enable-the-reset-policy.png
create mode 100644 examples/sample-exports/markdown/steps-reset-a-password-in-admin-portal/004-review-the-confirmation.png
create mode 100644 examples/sample-exports/pdf/reset-a-password-in-admin-portal.pdf
create mode 100644 examples/sample-exports/pptx/reset-a-password-in-admin-portal.pptx
create mode 100644 examples/sample-guide.sfgz
create mode 100644 examples/sample-manifest.json
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9d14e88..f2aec59 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,22 @@ Initial release.
### Added
+- Welcome screen on launch: app title with three actions — New Capture
+ (creates a guide, opens the editor, and starts a capture session),
+ Existing Workspace (guide library), and Settings. The brand button
+ returns to the welcome screen from any view.
+
+### Fixed
+
+- Renderer scripts no longer collide in the shared global scope (the app
+ previously failed to boot with a blank window).
+- Focused-view toggle persists correctly (`step.focusedView.enabled`).
+- Annotation style edits no longer steal input focus on each keystroke.
+- Step list stays in sync after saves and undo/redo.
+- Escape deselects the active annotation instead of deleting it.
+
+### Added (initial feature set)
+
- Guide library with folders, favorites, title + full-text search, and a
quick-actions palette.
- Capture engine: full-screen / active-window / region capture, delay,
diff --git a/build/artifacts_manifest.json b/build/artifacts_manifest.json
new file mode 100644
index 0000000..f6e4ab3
--- /dev/null
+++ b/build/artifacts_manifest.json
@@ -0,0 +1,218 @@
+{
+ "format": "stepforge-artifacts-manifest",
+ "version": 1,
+ "generatedAt": "2026-06-11T02:33:30.203Z",
+ "packageVersion": "0.1.0",
+ "files": [
+ {
+ "kind": "artifact",
+ "path": "artifacts/stepforge_0.1.0_amd64.deb",
+ "size": 103679916,
+ "sha256": "e568d19b18dbd5be3f2bde1c3e6b70ce79243ba697d625e0a5c1af3e2bd9733e"
+ },
+ {
+ "kind": "artifact",
+ "path": "artifacts/stepforge_0.1.0_linux-x64.tar.gz",
+ "size": 139347926,
+ "sha256": "0bd6ea1d2c42b74e0b7411427f047dc8cbcc293507172b53ce43116e5f1affac"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/guide.json",
+ "size": 928,
+ "sha256": "1fcb87d79d7c8d187256dafdefdd065d3bb3e2fc3b76c52a6003e147213ec1ba"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-0997fb48-b598-4319-8144-0ceef68a84f4/step.json",
+ "size": 784,
+ "sha256": "e6233ff39c5ee5e869900fe2db3208443fc126b02aca1175412bc5ab28c767ae"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/original.png",
+ "size": 13643,
+ "sha256": "09e12f935511bb6fabb5637501aa7743516b96d990adfab62ccfa311a7b60606"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/step.json",
+ "size": 1609,
+ "sha256": "36048ccb6e30c00d6b652a0959f794c841ba3b11ff2ba1d6d2afcc94eeed6634"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/working.png",
+ "size": 13643,
+ "sha256": "09e12f935511bb6fabb5637501aa7743516b96d990adfab62ccfa311a7b60606"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-62da8044-c236-4012-9fce-15785c94bfa7/step.json",
+ "size": 547,
+ "sha256": "243b7b1d9e9697dce03eb5b80254fe898835f2f7a89c287e3a6d6cd305f660b9"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/original.png",
+ "size": 13602,
+ "sha256": "c96eedffdc5fd2eb9b63942cc00f1c8a91d01a0c5c2316c1d12d750b9b49e3d0"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/step.json",
+ "size": 1975,
+ "sha256": "32ee15cec46e2ce8c9fe289ab9848c461978bf3d3ff0625fbaf8c4958575e573"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/working.png",
+ "size": 13602,
+ "sha256": "c96eedffdc5fd2eb9b63942cc00f1c8a91d01a0c5c2316c1d12d750b9b49e3d0"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/original.png",
+ "size": 14031,
+ "sha256": "b5e93a0ee74e2bdbbdf0871e901726dfbdc8b45dd648c959743520f92b02e7a2"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/step.json",
+ "size": 1886,
+ "sha256": "e707642d9fb4c2079075615836b26834cc1c053b6b2fb7eec0dc0b40029db614"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/working.png",
+ "size": 14031,
+ "sha256": "b5e93a0ee74e2bdbbdf0871e901726dfbdc8b45dd648c959743520f92b02e7a2"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-c0addd40-3e96-495f-b196-d49c08518dba/step.json",
+ "size": 521,
+ "sha256": "3d89cd70a5294a4166d60e20b0d19408a834c31415e4319839577a8b18ccbce3"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/docx/reset-a-password-in-admin-portal.docx",
+ "size": 110463,
+ "sha256": "be9e2b550b732fc6cd4a171b72749b49fe67730ee9969f69c23175688b0bea14"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/gif/reset-a-password-in-admin-portal.gif",
+ "size": 32090,
+ "sha256": "70a789c6ce1aa6154c65d0ee88a286d888fdfd9fd5c3045a14242e13df5ca263"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/html-rich/reset-a-password-in-admin-portal-rich.html",
+ "size": 149943,
+ "sha256": "9a449f2507f6f4b43d67589cb2f4f28682d8f6fdec15cc0541b26a81624a528b"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/html-simple/reset-a-password-in-admin-portal.html",
+ "size": 146646,
+ "sha256": "5cababe0b51a3590d3ceee4179760e0c2179e9ed340d85e1b65253e4275bb9d0"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/image-bundle/reset-a-password-in-admin-portal-bundle.json",
+ "size": 779,
+ "sha256": "24bae92a7d627ad65d9cea906f840fcfd46e44aa263ab927774daa49fef60f45"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/image-bundle/steps-reset-a-password-in-admin-portal/001-open-admin-portal-users.png",
+ "size": 31424,
+ "sha256": "892a3174e9876ebfab4c879d6d579cf8ad6eba2f299ad95feff33adaf205e042"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/image-bundle/steps-reset-a-password-in-admin-portal/002-enable-the-reset-policy.png",
+ "size": 38991,
+ "sha256": "f1c79fb2baa1ef41dd85b04be59cc796f3822858654612044a22e27f20d0696a"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/image-bundle/steps-reset-a-password-in-admin-portal/004-review-the-confirmation.png",
+ "size": 37274,
+ "sha256": "32c5e15f8a04d6af01b7d139cff732872d5ce7e3e519be6ece99cca4167856ed"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/json/reset-a-password-in-admin-portal.json",
+ "size": 6740,
+ "sha256": "7257af7b3df168df9656159f84e0f7b538437775dc2e716e7f87d00dd9d40efd"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/json/steps-reset-a-password-in-admin-portal/001-open-admin-portal-users.png",
+ "size": 31424,
+ "sha256": "892a3174e9876ebfab4c879d6d579cf8ad6eba2f299ad95feff33adaf205e042"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/json/steps-reset-a-password-in-admin-portal/002-enable-the-reset-policy.png",
+ "size": 38991,
+ "sha256": "f1c79fb2baa1ef41dd85b04be59cc796f3822858654612044a22e27f20d0696a"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/json/steps-reset-a-password-in-admin-portal/004-review-the-confirmation.png",
+ "size": 37274,
+ "sha256": "32c5e15f8a04d6af01b7d139cff732872d5ce7e3e519be6ece99cca4167856ed"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/markdown/reset-a-password-in-admin-portal.md",
+ "size": 1186,
+ "sha256": "16bbd2eb8850d8a55914abe9ece4d2aee465820fcd6c5ffde8925f37dd2b115b"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/markdown/steps-reset-a-password-in-admin-portal/001-open-admin-portal-users.png",
+ "size": 31424,
+ "sha256": "892a3174e9876ebfab4c879d6d579cf8ad6eba2f299ad95feff33adaf205e042"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/markdown/steps-reset-a-password-in-admin-portal/002-enable-the-reset-policy.png",
+ "size": 38991,
+ "sha256": "f1c79fb2baa1ef41dd85b04be59cc796f3822858654612044a22e27f20d0696a"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/markdown/steps-reset-a-password-in-admin-portal/004-review-the-confirmation.png",
+ "size": 37274,
+ "sha256": "32c5e15f8a04d6af01b7d139cff732872d5ce7e3e519be6ece99cca4167856ed"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/pdf/reset-a-password-in-admin-portal.pdf",
+ "size": 103120,
+ "sha256": "58a952a2f95653a91d4e662e4bc2ddcb0177de33e51a8f9e454cdf158ba3a795"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-exports/pptx/reset-a-password-in-admin-portal.pptx",
+ "size": 117643,
+ "sha256": "4ce1e82903b726c549e53235e3fd4c70cf647123ccd823052030e2e1b9449864"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-guide.sfgz",
+ "size": 88967,
+ "sha256": "4c36ae2ee22ca8da9fc066efaed72dc19084f8655b10162deb1528e2ebb3a0bf"
+ },
+ {
+ "kind": "sample",
+ "path": "../examples/sample-manifest.json",
+ "size": 1186,
+ "sha256": "2cecfc8eaef1a6b87aeac4692b6a22d2c6d81b533b18b15bc87db1bc3774b007"
+ }
+ ]
+}
diff --git a/build/build_report.md b/build/build_report.md
new file mode 100644
index 0000000..7f53150
--- /dev/null
+++ b/build/build_report.md
@@ -0,0 +1,43 @@
+# StepForge Build Report
+
+Version: 0.1.0
+Generated: 2026-06-11T02:33:30.201Z
+Host: linux x64 (node v20.20.2)
+
+## Outputs
+
+- Portable tarball: artifacts/stepforge_0.1.0_linux-x64.tar.gz
+- Debian package: artifacts/stepforge_0.1.0_amd64.deb
+- Sample guide archive: ../examples/sample-guide.sfgz
+- Sample exports (9 formats): see examples/sample-exports/
+- Full artifact list with sha256 checksums: artifacts_manifest.json
+
+## Packaging tool availability
+
+| Tool | Status |
+|---|---|
+| dpkg-deb (Linux .deb) | available |
+| rpmbuild (Linux .rpm) | **missing** |
+| appimagetool (Linux AppImage) | **missing** |
+| makensis (Windows installer .exe) | **missing** |
+| wixl / WiX (Windows .msi) | **missing** |
+
+Fallback policy: when a packaging tool is missing the build still produces
+the runnable app (portable tarball with launcher) plus whatever package
+formats the available tools allow. Windows artifacts are produced by
+`npm run package:windows` (electron-builder, portable .exe); .msi/.rpm/
+AppImage require the tools listed above and are skipped on this host.
+
+## Offline guarantee
+
+- The shipped app opens no sockets: no telemetry, update checks, license
+ checks, cloud sync, or remote AI. See SECURITY.md.
+- All exporters (PNG/GIF/PDF/DOCX/PPTX/ZIP) are implemented in-repo with
+ Node built-ins; Electron is the only third-party dependency
+ (dev-time fetch recorded in build/agent_audit.md).
+
+## Verification
+
+- `bash tests/run_test.sh` runs the workflow suites (node --test), a
+ startup smoke test of the Electron launcher, the sample-artifact
+ pipeline, and this release build.
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/guide.json b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/guide.json
new file mode 100644
index 0000000..89025da
--- /dev/null
+++ b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/guide.json
@@ -0,0 +1,29 @@
+{
+ "schemaVersion": 1,
+ "guideId": "guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f",
+ "title": "Reset a password in Admin Portal",
+ "descriptionHtml": "Offline sample guide showing capture, annotations, rich text, and exports.
",
+ "placeholders": {
+ "Product": "Admin Portal",
+ "Author": "StepForge",
+ "Department": "Support"
+ },
+ "flags": {
+ "focusedViewDefault": true,
+ "hideSkippedStepsInExports": true
+ },
+ "themeOverride": "system",
+ "createdAt": "2026-06-11T02:32:07Z",
+ "updatedAt": "2026-06-11T02:32:07Z",
+ "stepsOrder": [
+ "step-592cde3d-19e2-441a-a19b-53ccd4ac132c",
+ "step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48",
+ "step-0997fb48-b598-4319-8144-0ceef68a84f4",
+ "step-8a33be62-08c7-4a5d-ab9d-9f415269d015",
+ "step-c0addd40-3e96-495f-b196-d49c08518dba",
+ "step-62da8044-c236-4012-9fce-15785c94bfa7"
+ ],
+ "favorite": false,
+ "linkedSource": null,
+ "exportProfiles": {}
+}
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-0997fb48-b598-4319-8144-0ceef68a84f4/step.json b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-0997fb48-b598-4319-8144-0ceef68a84f4/step.json
new file mode 100644
index 0000000..6c7ad9d
--- /dev/null
+++ b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-0997fb48-b598-4319-8144-0ceef68a84f4/step.json
@@ -0,0 +1,32 @@
+{
+ "stepId": "step-0997fb48-b598-4319-8144-0ceef68a84f4",
+ "parentStepId": "step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48",
+ "kind": "empty",
+ "status": "todo",
+ "title": "Confirm permission prompt",
+ "descriptionHtml": "Only administrators can complete this step.
",
+ "hidden": false,
+ "skipped": false,
+ "forceNewPage": false,
+ "focusedView": {
+ "enabled": false,
+ "zoom": 1,
+ "panX": 0.5,
+ "panY": 0.5
+ },
+ "image": null,
+ "extraImages": [],
+ "annotations": [],
+ "textBlocks": [
+ {
+ "id": "tb-e3aa7982-3eb4-4db1-a1af-fda7c72b46aa",
+ "position": "after-description",
+ "level": "warn",
+ "title": "Access",
+ "descriptionHtml": "Admin rights required.
"
+ }
+ ],
+ "codeBlocks": [],
+ "tableBlocks": [],
+ "links": []
+}
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/original.png b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/original.png
new file mode 100644
index 0000000000000000000000000000000000000000..8478071b91fe98d1c716739b5d9f84ac2ce366a3
GIT binary patch
literal 13643
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 the users list and select the target account.
",
+ "hidden": false,
+ "skipped": false,
+ "forceNewPage": false,
+ "focusedView": {
+ "enabled": true,
+ "zoom": 1.1,
+ "panX": 0.5,
+ "panY": 0.5
+ },
+ "image": {
+ "originalPath": "original.png",
+ "workingPath": "working.png",
+ "size": {
+ "width": 1280,
+ "height": 760
+ }
+ },
+ "extraImages": [],
+ "annotations": [
+ {
+ "id": "ann-54403181-b784-4d9b-9285-b9504a7c2f8d",
+ "type": "rect",
+ "x": 0.275,
+ "y": 0.18,
+ "w": 0.19,
+ "h": 0.18,
+ "text": "",
+ "style": {
+ "stroke": "#0068ff",
+ "fill": "transparent",
+ "textColor": "#FFFFFF",
+ "strokeWidth": 6,
+ "fontSize": 0.022
+ }
+ },
+ {
+ "id": "ann-303a7cdc-4866-4667-8046-33ba7bfb8687",
+ "type": "number",
+ "x": 0.3,
+ "y": 0.08,
+ "w": 0.08,
+ "h": 0.12,
+ "text": "",
+ "style": {
+ "stroke": "#0068ff",
+ "fill": "transparent",
+ "textColor": "#FFFFFF",
+ "strokeWidth": 3,
+ "fontSize": 0.022
+ },
+ "value": 1
+ }
+ ],
+ "textBlocks": [
+ {
+ "id": "tb-69f3f373-12e6-4ecf-b93c-36f3b770bece",
+ "position": "after-description",
+ "level": "info",
+ "title": "Tip",
+ "descriptionHtml": "Use the search box to avoid scrolling.
"
+ }
+ ],
+ "codeBlocks": [],
+ "tableBlocks": [],
+ "links": []
+}
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/working.png b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-592cde3d-19e2-441a-a19b-53ccd4ac132c/working.png
new file mode 100644
index 0000000000000000000000000000000000000000..8478071b91fe98d1c716739b5d9f84ac2ce366a3
GIT binary patch
literal 13643
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 skipped step remains in the library but is excluded from exports.",
+ "hidden": false,
+ "skipped": true,
+ "forceNewPage": false,
+ "focusedView": {
+ "enabled": false,
+ "zoom": 1,
+ "panX": 0.5,
+ "panY": 0.5
+ },
+ "image": null,
+ "extraImages": [],
+ "annotations": [],
+ "textBlocks": [],
+ "codeBlocks": [],
+ "tableBlocks": [],
+ "links": []
+}
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/original.png b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/original.png
new file mode 100644
index 0000000000000000000000000000000000000000..64693bbe4a0da7ea0e83af6438c38e48079fea99
GIT binary patch
literal 13602
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
IZGHVe0PiPu>;M1&
literal 0
HcmV?d00001
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/step.json b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/step.json
new file mode 100644
index 0000000..262bc97
--- /dev/null
+++ b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/step.json
@@ -0,0 +1,100 @@
+{
+ "stepId": "step-8a33be62-08c7-4a5d-ab9d-9f415269d015",
+ "parentStepId": null,
+ "kind": "image",
+ "status": "todo",
+ "title": "Review the confirmation",
+ "descriptionHtml": "Confirm the summary and close the modal.
",
+ "hidden": false,
+ "skipped": false,
+ "forceNewPage": false,
+ "focusedView": {
+ "enabled": true,
+ "zoom": 1.1,
+ "panX": 0.5,
+ "panY": 0.5
+ },
+ "image": {
+ "originalPath": "original.png",
+ "workingPath": "working.png",
+ "size": {
+ "width": 1280,
+ "height": 760
+ }
+ },
+ "extraImages": [],
+ "annotations": [
+ {
+ "id": "ann-281ebcd6-e0e3-4304-9232-ee25353e2321",
+ "type": "blur",
+ "x": 0.49,
+ "y": 0.32,
+ "w": 0.21,
+ "h": 0.08,
+ "text": "",
+ "style": {
+ "stroke": "#9ca3af",
+ "fill": "transparent",
+ "textColor": "#FFFFFF",
+ "strokeWidth": 2,
+ "fontSize": 0.022
+ },
+ "radius": 12
+ },
+ {
+ "id": "ann-6224b838-a39d-4fae-9b68-6a4f2f8af60d",
+ "type": "highlight",
+ "x": 0.47,
+ "y": 0.24,
+ "w": 0.28,
+ "h": 0.2,
+ "text": "",
+ "style": {
+ "stroke": "#f0a500",
+ "fill": "#ffeeb0",
+ "textColor": "#FFFFFF",
+ "strokeWidth": 2,
+ "fontSize": 0.022
+ }
+ },
+ {
+ "id": "ann-6dd50b00-6f29-431b-bee0-c217032af1a4",
+ "type": "number",
+ "x": 0.31,
+ "y": 0.08,
+ "w": 0.08,
+ "h": 0.12,
+ "text": "",
+ "style": {
+ "stroke": "#36a",
+ "fill": "transparent",
+ "textColor": "#FFFFFF",
+ "strokeWidth": 3,
+ "fontSize": 0.022
+ },
+ "value": 3
+ }
+ ],
+ "textBlocks": [],
+ "codeBlocks": [],
+ "tableBlocks": [
+ {
+ "id": "t1",
+ "rows": [
+ [
+ "Field",
+ "Value"
+ ],
+ [
+ "Title",
+ "Admin Portal"
+ ],
+ [
+ "Owner",
+ "Support"
+ ]
+ ]
+ }
+ ],
+ "links": []
+}
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/working.png b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-8a33be62-08c7-4a5d-ab9d-9f415269d015/working.png
new file mode 100644
index 0000000000000000000000000000000000000000..64693bbe4a0da7ea0e83af6438c38e48079fea99
GIT binary patch
literal 13602
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
IZGHVe0PiPu>;M1&
literal 0
HcmV?d00001
diff --git a/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/original.png b/examples/sample-data/library/guides/guide-319c9f4d-4fa5-4399-81b5-258cc3393e1f/steps/step-bf6e1f92-47c8-478b-ba42-d2a3fe93bc48/original.png
new file mode 100644
index 0000000000000000000000000000000000000000..621101a765981551eb8bd8076f1ef57a7f7f1f58
GIT binary patch
literal 14031
zcmeHO4OA0nx}Kn{ZrzpcwhR4H<92In>knHyMiOnRF(hH6$s}YZGjqS-FT34)ckgNU
z+iVV!J-NGl&iQ4RN;8InO@C4?nA#T_MVX5M{mQBbSAkEn8SjWnzIuJ;
z#6oCZc(AJBlT7HDtAjh$&^r?|tM16>%%8aX;4k_k)?B^&Xl>+sSMP3!n~{9=ZqwH2
zimP|mUHF%5xH<>==#=ic`w&&WKHV>JouCr!!M>$oYS!gNS3ILNsf7!u6D3yq=v7|Q
zdLz~}1;qY>O{k{7OMjKzhRutF&_}YL`9I4Pe9Lbdc2h3;SK&RH0gumoBVCtxjX`TZ
zr}5_^bnu!G8UlY%L(d1_mkql5w=+gV|2S=SoFS7G?d*P29Zhvfjp9n=^WxF+(2{yY
zQ*fp@)TZkC_W7{boc@JSVs6>zUJbwWa~$JW8y)wS(CCR#x6S5J8;ik;Vuu|a3w7n}
zueTRThYvU&2$Q7A=X^ERxujlCe7Ho0_>UjqV~sBMo05E%DMXLfgB7)jTz0p^=Be?`
zLR_x)q?qusPVL1R-FV;lpO=rUetF1-A7_^27WgHvXabnKw5vZe@cxJw(=lDNE==4j
z&qh~N(=v=e$FkJ6)m>U7Ph%;
zSfL)K=tsh9NMa#0jmNr+(QQeIdZXL*(WlD}=d|35#gCA?#q|TIo)DE%v>6wKXP;5!
zbK))s^HFNI-5flcC)CVt?{R1KZSP-e${+OBGNCq1ZNV`aGGW)Uuq5jAd+WD{c#cFW
z%Tp>`k%K;*_xz``M^_tze9>^d-FzWf)+OY1SW&QlRf775i;p<
z`+cKZg&qBY9+!U>HWSlZ=#hN{GXWP`99^-Ci(tWiU3%AW^;(nTt$R&dcTrU(Izg_+
zvAuLVGd!9hZw)9X?7*~|wsGR9)faz?vEKwT<`f$Xj^^&VOIYyvGCcm08AD6@%5?lT
z`LHL8I60ma=6KzKg-{g2JgnD$dq|zzLL}6VXDw+LVUJ@nrnNxlC0>!b3r)=_pF6^{
ztD0ZpY#;Z+LHdB9mdI)|UHFTsW?P@6QsnpM=XmQ>0@sUWUFp0h_=5244et*|zIP-$
z`tHtn90{*)J{dbFN$LmTgc-{^Gw-bMGYFcabK)VIj0Qpf#+5X%NS(_Q7n3<
zT?4jTst5WJ2tP=dawum>DiyK)>{z$9b-Sgt3ekCUWaMrRs$6kSF+iUVwY*J~`4D5iTXefx2K~##Qvtd*>AhCbo9HMuHF2_D8
z&?i^&@z%&^{13cfB!t9HpJ!VV4XT7)}Tr`KoIm{HVf
zIso=6JRPz1i