Commit Graph
72 Commits
Author SHA1 Message Date
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
52b91d3bd8 chore: release main (#132)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-24 19:38:42 -05:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
aa9b1bb1e8 chore: release main (#130)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-24 19:18:00 -05:00
Wesley Luyten 4a9f8b2ad6 fix(root): add videojs keyword to package.json 2025-10-24 17:14:55 -07:00
RahimandGitHub 24022e93c3 chore: fix html-demo not importing skin (#127) 2025-10-24 16:00:39 -07:00
RahimandGitHub a69b7769d9 Add community links to all packages (#124) 2025-10-24 10:51:30 -07:00
RahimandGitHub 40dc067512 Update readmes and add bages (#122) 2025-10-24 10:46:00 -07:00
RahimandGitHub f9dcb12542 Use @videojs npm scope (#121) 2025-10-23 15:23:21 -07:00
RahimandGitHub 1ad0bc436f Flatten workspace (#120) 2025-10-23 15:19:36 -07:00
Wesley LuytenandGitHub 4f06ef6c76 feat: add display click to play / pause (#117) 2025-10-23 12:24:34 -05:00
Wesley LuytenandGitHub 0a4902623d feat: add keyboard control to sliders (#115) 2025-10-22 17:12:32 -05:00
Wesley LuytenandGitHub 591dab66ca fix: minimal volume slider bug & fix dev infinite bug (#73) 2025-10-21 16:50:23 -05:00
4448a5b252 docs: readmes v0 (#72)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-21 14:02:10 -07:00
Wesley LuytenandGitHub f514051263 feat: add focus state to sliders and volume slider (#60) 2025-10-21 15:43:47 -05:00
Wesley LuytenandGitHub 6d7325cedb feat: add data style attributes to popover (#62) 2025-10-18 20:52:35 -05:00
Wesley Luyten 05988a82ba feat: add tooltip transition status 2025-10-13 16:26:10 -07:00
Wesley LuytenandGitHub 871701a453 feat: add html preview time display (#58) 2025-10-13 16:11:14 -05:00
RahimandGitHub 75a54e9b5e chore: __dirname not defined (#57) 2025-10-13 11:02:11 -07:00
RahimandGitHub 146a4d8323 chore: resolve alias during build (#56) 2025-10-13 09:35:38 -07:00
Christian PillsburyandGitHub d4f3f4b75b fix: skin syntax usage cleanup (#48) 2025-10-10 12:59:26 -07:00
Christian PillsburyandGitHub 9c5b29a15b chore: consistent formatting (#47) 2025-10-09 12:18:31 -07:00
Wesley LuytenandGitHub 9c6eaef2aa feat: rename range to slider (#46) 2025-10-09 13:05:56 -05:00
Sam PottsandGitHub 3a0767c340 fix: design tweaks to toasted skin, lint rule tweaks (#44) 2025-10-09 10:21:18 +11:00
Wesley LuytenandGitHub 5cb93a14a7 fix: enable eslint & run eslint:fix (#43) 2025-10-08 17:52:02 -05:00
Wesley LuytenandGitHub d2a0b27272 feat: add HTML tooltip component (#40) 2025-10-07 16:22:05 -05:00
Wesley Luyten 5195c09af6 fix: rename attributes to kebab-case 2025-10-03 13:30:53 -05:00
Wesley LuytenandGitHub 17b632f5f9 feat: add media-popover, cleanup html demo (#34) 2025-10-02 14:09:33 -05:00
Wesley LuytenandGitHub 7b79854304 feat: add HTML vertical orientation to time and volume (#32)
* feat: add vertical orientation to time and volume
range components

* fix: improve resetting of styles
2025-10-01 15:02:23 -05:00
687b7655b0 feat: add core range, time and volume range (#23)
* feat: add poc for core time range class

* fix: use object keys instead of strings
for minification

* Update packages/react/react/src/components/TimeRange.tsx

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix: cleanup and add time range core to html

* fix: add range core component, implement volume

* Update packages/core/core/src/utils/state.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/core/core/src/components/range.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-26 14:10:40 -05:00
Wesley LuytenandGitHub a3f9630bd1 fix: seek jump back to current time (#22) 2025-09-23 15:26:45 -05:00
Wesley LuytenandGitHub aefe890fee feat: add volume range compound component (#19) 2025-09-23 11:07:47 -05:00
RahimandGitHub e3dcb6aba7 chore: gitignore cleanup (#21) 2025-09-23 23:32:00 +10:00
RahimandGitHub 6ad5340b40 chore: new builds & types using tsdown (#20) 2025-09-23 23:12:19 +10:00
Rahim 68666d0901 done 2025-09-23 00:57:47 +10:00
Rahim d2b2dd4868 done 2025-09-22 23:39:30 +10:00
Sam Potts 9950945008 feat(ui): port over default skin 2025-09-21 13:37:14 +10:00
Wesley LuytenandGitHub 017ecdbff9 feat: add compound html timerange component (#14)
* fix: add context logic to component factory

* feat: add compound time range html component
2025-09-18 17:58:53 -05:00
597e79d7fc fix(time-display): clean up time utilities and simplify components
- Remove deprecated formatDuration function from time utils
- Simplify HTML current time display by removing template generation
- Use direct shadow DOM text content updates for better performance
- Remove unused imports from React current time display component
- Enable show-remaining by default in HTML skin
- Ensure consistent negative time formatting across platforms

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
ab07a8a9a2 feat: add showRemaining functionality to current time display
Adds support for displaying remaining time (countdown) instead of elapsed time:

**HTML Component:**
- Add `show-remaining` attribute support with observedAttributes
- Implement attributeChangedCallback for reactive updates
- Display remaining time as `-{duration - currentTime}` when attribute present
- Maintain backward compatibility with default current time display

**React Component:**
- Add `showRemaining` prop with proper TypeScript typing
- Calculate and display remaining time in render function
- Destructure prop to avoid passing to DOM element
- Consistent `-{remaining}` format matching HTML component

**Usage:**
- HTML: `<media-current-time-display show-remaining></media-current-time-display>`
- React: `<CurrentTimeDisplay showRemaining />`

Both implementations include documentation comments and maintain
consistent behavior across platforms.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
5aeeb6dde6 style: add visual styling to time display components
Adds consistent styling to duration and current time display components
across both HTML and React platforms:
- Semi-transparent dark background matching other UI components
- Monospace font for better time alignment
- Proper padding, borders, and text alignment
- Consistent color scheme with existing control bar elements

Both HTML and React skins now display time values with proper visual
styling that integrates seamlessly with the control bar design.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
0746d400af refactor: rename formatDuration to formatDisplayTime
Renames the time formatting utility to be more generic since it's used for
both duration and currentTime display:
- Add formatDisplayTime as the primary function name
- Update all component references to use formatDisplayTime
- Keep formatDuration as deprecated alias for backward compatibility
- More semantic naming that reflects actual usage across components

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
5bd0a154db feat: implement current time display components
Adds current time display functionality across HTML and React platforms:
- Core state definition for current time with duration support
- HTML component with shadow DOM and span rendering
- React component following hook-style architecture
- Integration into both HTML and React default skins
- Proper exports and component registration

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
6db4c3c4b8 refactor: move time formatting logic to platform components
Move time formatting responsibility from core component state definition
to platform-specific components for better separation of concerns:

- Core state definition now only provides raw duration value
- HTML component calls formatDuration() in _update() method
- React component calls formatDuration() in render function
- Maintains same functionality with cleaner architecture

This approach gives platforms more control over formatting and reduces
the responsibility of the core state abstraction.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
2ed219158d feat(skins): integrate duration display into default skins
Add duration display components to both HTML and React default skins:
- HTML: Add media-duration-display element to control bar
- React: Add DurationDisplay component to MediaSkinDefault

Duration display appears between time range and mute button controls,
providing users with total media duration information in the default
player interface.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
e35dd44be8 feat(html): implement duration display component
Add HTML duration display component using VJS-10 hook-style architecture:
- Custom element with shadow DOM containing single span
- Uses duration display state definition from media-store
- Minimal implementation without styling or ARIA attributes
- Follows toConnectedHTMLComponent pattern for consistency

Component renders formatted duration (e.g., "4:32") in a simple span element.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 15:59:15 -07:00
35072fd7c5 refactor(html): remove temporary fullscreen test code from play button
Clean up development artifacts:
- Remove double-click event listener for fullscreen testing
- Remove temporary mediaStore reference and console logging
- Simplify handleEvent to only handle click for play/pause
- Restore play button to single responsibility (playback control only)

Play button now focuses solely on play/pause functionality while
fullscreen control is handled by dedicated fullscreen button.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 08:06:08 -07:00
465342e431 feat(html): integrate fullscreen button into control bar and improve container lifecycle
Complete fullscreen button integration:
- Add fullscreen button to media-skin-default control bar as rightmost control
- Icon styling follows play/pause pattern with proper state-based visibility
- Container state owner lifecycle management in media-container component
- Component factory passes mediaStore reference to support advanced integrations

Control bar layout: Play → Time → Mute → Volume → Fullscreen
Icons change appropriately based on [data-fullscreen] attribute state.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 08:06:08 -07:00
63a340213f feat(html): add fullscreen button component and icons
Implement HTML fullscreen button following established patterns:
- MediaFullscreenButton web component with hook-style architecture
- HTML icon components: MediaFullscreenEnterIcon, MediaFullscreenExitIcon
- State management via useFullscreenButtonState hook
- Props handling via useFullscreenButtonProps hook
- Explicit enter/exit fullscreen methods (no toggle)
- Proper accessibility with aria-label and data-tooltip

Components integrate seamlessly with existing HTML component architecture
and provide foundation for control bar integration.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 08:06:08 -07:00
2e99ba79ae refactor(media-store): add container state owner and rename event types
- Add container state owner to StateOwners type for fullscreen support
- Rename mediaelementchangerequest to mediastateownerchangerequest
- Add containerstateownerchangerequest event handling
- Refactor updateStateOwners to support multiple state owners
- Update all usage locations across HTML and React packages
- Validated with Playwright testing on both demo applications

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 08:06:08 -07:00
Christian PillsburyandChristian Pillsbury 517bb30678 chore: remove range css from skins for now. 2025-09-09 07:59:56 -07:00
Christian PillsburyandChristian Pillsbury bef0d42631 chore: Add todo code comments. 2025-09-09 07:59:56 -07:00