diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76e27fe..c8a49cc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -141,7 +141,7 @@ jobs: contents: write # tags and the GitHub release issues: write # release comments on issues pull-requests: write # and on pull requests - id-token: write # npm provenance + id-token: write # npm trusted publishing (OIDC) and provenance steps: # The deploy key pushes the release commit and the back-merge past branch protection. - uses: actions/checkout@v4 @@ -155,13 +155,14 @@ jobs: with: node-version: 24 registry-url: https://registry.npmjs.org + # Trusted publishing needs npm 11.5.1+, newer than some Node 24 images bundle. + - run: npm install -g npm@^11.5.1 - run: bun install --frozen-lockfile # The CLI's prepack bundles the viewer template, which this fresh checkout hasn't built yet. - run: bun run build - run: npx --no-install semantic-release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} GIT_AUTHOR_NAME: github-actions[bot] GIT_AUTHOR_EMAIL: 41898282+github-actions[bot]@users.noreply.github.com GIT_COMMITTER_NAME: github-actions[bot] diff --git a/README.md b/README.md index cfdeb27..235e490 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Then ask:
-The agent writes `.stackmap/
Validates, lays out and writes one offline HTML file, next to the input unless you pass
Press F, or Present in the toolbar, for the stage alone, full screen where the browser allows it. It steps through Overview and then each view:{' '} → or Space moves on, ← goes back, Home and End jump to the ends, and Esc leaves.
++ For the canvas alone without presenting, press Z or Focus in the toolbar. The header, view tabs and inspector step aside and everything on the canvas keeps + working; H then hides the toolbar too, and Z brings it all back. +
The Export menu in the toolbar saves what the stage shows:
diff --git a/site/app/opengraph-image.alt.txt b/site/app/opengraph-image.alt.txt index dc0c1d7..f01727e 100644 --- a/site/app/opengraph-image.alt.txt +++ b/site/app/opengraph-image.alt.txt @@ -1 +1 @@ -stackmap: every layer of your stack, on one map \ No newline at end of file +stackmap: every layer of your stack, on one map. The viewer, open on a Commerce API diagram with a route lit \ No newline at end of file diff --git a/site/app/opengraph-image.png b/site/app/opengraph-image.png index 2165ddc..ac20e3f 100644 Binary files a/site/app/opengraph-image.png and b/site/app/opengraph-image.png differ diff --git a/site/app/twitter-image.alt.txt b/site/app/twitter-image.alt.txt index dc0c1d7..f01727e 100644 --- a/site/app/twitter-image.alt.txt +++ b/site/app/twitter-image.alt.txt @@ -1 +1 @@ -stackmap: every layer of your stack, on one map \ No newline at end of file +stackmap: every layer of your stack, on one map. The viewer, open on a Commerce API diagram with a route lit \ No newline at end of file diff --git a/site/app/twitter-image.png b/site/app/twitter-image.png index 2165ddc..ac20e3f 100644 Binary files a/site/app/twitter-image.png and b/site/app/twitter-image.png differ diff --git a/site/components/docs/ViewerTry.tsx b/site/components/docs/ViewerTry.tsx index e00a40f..2013010 100644 --- a/site/components/docs/ViewerTry.tsx +++ b/site/components/docs/ViewerTry.tsx @@ -66,7 +66,7 @@ const FEATURES: { id: Try; label: string; icon: ReactNode; title: string; desc: label: 'Play', icon: icon(Play), title: 'Play the flow', - desc: 'Pulses travel whatever you’re looking at: the whole diagram, a view, a trace or a route, hop by hop. With reduced motion there is nothing to play.', + desc: 'Pulses travel whatever you’re looking at: the whole diagram, a view, a trace or a route, hop by hop. The button beside Play sets the speed: 1×, 2× or 0.5×. With reduced motion there is nothing to play.', keys: [['P', 'play or stop']], }, ]; diff --git a/site/components/site/Nav.tsx b/site/components/site/Nav.tsx index 95390f4..6481dda 100644 --- a/site/components/site/Nav.tsx +++ b/site/components/site/Nav.tsx @@ -9,13 +9,12 @@ import { LINKS } from './links'; import { Lockup } from './Lockup'; import { ThemeButton } from './theme'; -// The landing's sections the nav follows; `install` has no link, so over it the marker hides. +// The landing's sections the nav follows; `kinds` and `install` have no link, so over them the marker hides. const SPY = ['how', 'kinds', 'install'] as const; type Spy = (typeof SPY)[number]; const ITEMS = [ { ...LINKS.how, spy: 'how' as Spy }, - { ...LINKS.kinds, label: 'Kinds', spy: 'kinds' as Spy }, { ...LINKS.examples, page: (p: string) => p.startsWith('/examples') }, { ...LINKS.docs, page: (p: string) => p.startsWith('/docs') }, ]; diff --git a/site/lib/docs-nav.ts b/site/lib/docs-nav.ts index 7614370..a0b2308 100644 --- a/site/lib/docs-nav.ts +++ b/site/lib/docs-nav.ts @@ -42,7 +42,7 @@ export const DOC_PAGES: DocPage[] = [ sections: [ s('try', 'Try it'), s('share', 'Share a view'), - s('present', 'Present'), + s('present', 'Present and focus'), s('export', 'Export'), s('keys', 'Keyboard'), s('themes', 'Themes and motion'), diff --git a/site/lib/reference.ts b/site/lib/reference.ts index 252ceda..5cac21e 100644 --- a/site/lib/reference.ts +++ b/site/lib/reference.ts @@ -6,13 +6,14 @@ export type Family = (typeof FAMILIES)[number]; export const CLI_COMMANDS = [ { name: 'validate', usage: '