fix(client): keep v-click hidden state on annotated code and KaTeX blocks - #2712
Merged
antfu merged 2 commits intoAug 24, 2026
Merged
Conversation
✅ Deploy Preview for slidev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
@slidev/client
create-slidev
create-slidev-theme
@slidev/parser
@slidev/cli
@slidev/types
commit: |
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.
A fenced code block with a line-highlight annotation (
```ts {*}) placed inside<v-click>was already visible on the slide's first render, while the rest of the<v-click>content stayed hidden. Navigating one click forward and back fixed it.CodeBlockWrappergets thev-clickdirective applied to its root element, and the directive's effect addsslidev-vclick-hiddenthere. The wrapper's own effect then callsclassList.toggle(CLASS_VCLICK_HIDDEN, hide)for its ranges, and for any normal range (*,1-3, …) that removes the class the directive just added. On mount the wrapper's effect runs last, so the block ends up visible; on later click changes the directive wins, which is why navigating repairs it.The wrapper now only touches the class when its own
hiderange put it there, so a click directive on the same element keeps ownership.CLASS_VCLICK_HIDDEN_EXPisn't usable for this, sincev-clickonly sets it on the.hidepath.KaTexBlockWrapperhad the same code and gets the same fix.Added a Cypress case (page 17 of the basic fixture) that asserts the wrapper is hidden on first render and revealed after one click. It fails on
mainand passes here. Also checked a{hide|1|2}deck by hand to confirm thehiderange still hides and reveals as before.Fixes #2711