Repository navigation
Setup page: copy buttons on every command, path and URL, one block per level, skeletons as download buttons (#141) - #150
Merged
Merged
Conversation
…as download buttons (#141) The init commands and the al.ruleSetPath and rulesetFile lines are rendered once per level in a details element, the first open; every command, path and URL gets a copy button (data-copy or data-copy-target) that shell.js shows and binds: the Clipboard API with a textarea fallback, "Copied" on the button and in the one live region p.copy-status, reset after two seconds. Without JavaScript the buttons stay hidden and the text stays selectable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d links and the live region on the real build (#141) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…etup page, the copy hook of the shell (#141) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, the fallback selection range, a repeated announcement, room for "Copy failed", no copy buttons in print (#141) A missing data-copy-target reports a failure instead of copying an empty string; the label is restored from dataset.label; the live region reuses .sr-only. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4 tasks
2 tasks
This was referenced Oct 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #141. Part of WP16 #136.
What
setup/renders the two commands of the init script and theal.ruleSetPath/rulesetFilelines once per level, in a<details>per level (the first open; no level picker, decided 2026-10-28). The page stays complete without JavaScript; the anchors#al-project,#levelsand#stage-<slug>stay.aria-labelthat names what it copies: one button for both init commands (data-copy-target="#init-<slug>"), one per settings line, therulebook.jsonURL and every endpoint URL (data-copy). Every skeleton is a download button (a.button.download[download]) in the endpoint row; the endpoint tables scroll inside.table-wrap.js/shell.jsshows and binds the buttons: the Clipboard API in a secure context, atextarea+execCommand('copy')fallback, "Copied" on the button and in the one live regionp.copy-status.sr-only[aria-live=polite], reset after two seconds; a missing target reports a failure. Without JavaScript the buttons stay hidden and the text stays selectable; they are not printed. No new asset: the published paths and the asset lists are unchanged.template/docs/al-project.md,template/docs/dashboard.mdsection 1,docs/dashboard.md(the setup page row, the copy hook in the shell part),RELEASENOTES.md.Deviations from the issue
shell.js, not a separatecopy.js; the live region sits in the setup layout and is visually hidden (the button shows "Copied").Verification
node --test tests/site/: 35 passed.Review
Sonnet code-review round 1: no must-fix; five should-fix items and the nits applied in 601ffe7.
🤖 Generated with Claude Code