You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Restore generated skin behavior and visual parity discovered while exercising the new Shadcn consumers and skin preview across React, HTML, Tailwind, and CSS. The supporting runtime changes preserve authored component props and make popup interactions stable.
Changes
preserve authored host props through VJSC React and HTML render targets
expose popup boundaries through the shared component contracts without leaking DOM types into core
prevent deferred popovers, menu sizing, and composed refs from causing broken opens or render loops
align audio and video controls, sliders, menus, tooltips, dialogs, posters, and playback feedback with legacy skins
improve the skin preview with color-scheme controls and clearer audio layout spacing
Testing
pnpm -F @videojs/core test — 1498 passed
pnpm -F @videojs/react test — 543 passed
pnpm -F vjsc test — 105 passed
pnpm -F @videojs/skins test — 34 passed
pnpm typecheck
manual React/CSS and React/Tailwind error-dialog verification in the skin preview
Note
Medium Risk
Touches popover open timing, menu measurement, ref composition, and broad skin/control markup—user-visible UI with moderate regression surface but well-covered by tests.
Overview
Restores generated skin behavior and visuals across React, HTML, CSS, and Tailwind while tightening popup/menu runtime behavior discovered in preview and Shadcn-style consumers.
Runtime & contracts: Adds shared PopoverBoundary on menu, popover, and tooltip public props (kept out of core state machines). Deferred popover opens now call showPopover on commit when the popup is already mounted. Menu popup sizing accounts for vertical scrollbar width. use-render merges refs so a single callback ref is not re-invoked every render (avoids loops). VJSC forwards React className on component children in HTML targets and merges classes on Host.
Skins & UX: Moves tooltips to control layouts (ButtonTooltip) instead of wrapping every primitive button; captions menu uses CaptionsButton as the menu trigger (no nested tooltip). Video presets use renderPoster instead of a poster string prop; generated React skin wrappers pass {...props} only. Settings menus get resizable popup transition classes; popup safe-area and theme/surface tweaks (hairline via shadow-media-sm, primary dialog buttons, slider thumb sizing). Skin preview adds light/dark scheme and layout polish. Hotkeys/gestures drop redundant step value props where defaults apply.
Tests cover scrollbar menu width, deferred popover show, ref stability, and async submenu assertions.
Reviewed by Cursor Bugbot for commit 0dfdc2d. Bugbot is set up for automated code reviews on this repo. Configure here.
Each entry is independently bundled, minified, and brotli-compressed. Initial size includes its static import graph; lazy dynamic chunks are reported separately.
Entries are not additive because their dependency graphs overlap. Preset rows represent realistic combined bundles.
Changes of 300 B or less across initial, lazy, and total size are collapsed, not discarded.
Run pnpm size locally to check current initial sizes.
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
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.
Refs #1055
Stacked on #2576.
Summary
Restore generated skin behavior and visual parity discovered while exercising the new Shadcn consumers and skin preview across React, HTML, Tailwind, and CSS. The supporting runtime changes preserve authored component props and make popup interactions stable.
Changes
Testing
pnpm -F @videojs/core test— 1498 passedpnpm -F @videojs/react test— 543 passedpnpm -F vjsc test— 105 passedpnpm -F @videojs/skins test— 34 passedpnpm typecheckNote
Medium Risk
Touches popover open timing, menu measurement, ref composition, and broad skin/control markup—user-visible UI with moderate regression surface but well-covered by tests.
Overview
Restores generated skin behavior and visuals across React, HTML, CSS, and Tailwind while tightening popup/menu runtime behavior discovered in preview and Shadcn-style consumers.
Runtime & contracts: Adds shared
PopoverBoundaryon menu, popover, and tooltip public props (kept out of core state machines). Deferred popover opens now callshowPopoveron commit when the popup is already mounted. Menu popup sizing accounts for vertical scrollbar width.use-rendermerges refs so a single callback ref is not re-invoked every render (avoids loops). VJSC forwards ReactclassNameon component children in HTML targets and merges classes onHost.Skins & UX: Moves tooltips to control layouts (
ButtonTooltip) instead of wrapping every primitive button; captions menu usesCaptionsButtonas the menu trigger (no nested tooltip). Video presets userenderPosterinstead of aposterstring prop; generated React skin wrappers pass{...props}only. Settings menus get resizable popup transition classes; popup safe-area and theme/surface tweaks (hairline viashadow-media-sm, primary dialog buttons, slider thumb sizing). Skin preview adds light/dark scheme and layout polish. Hotkeys/gestures drop redundant stepvalueprops where defaults apply.Tests cover scrollbar menu width, deferred popover show, ref stability, and async submenu assertions.
Reviewed by Cursor Bugbot for commit 0dfdc2d. Bugbot is set up for automated code reviews on this repo. Configure here.