## Description
Projects using newer versions of sass which have deprecated `lighten()`
will get deprecation warnings.
This updates sass, and switches to `color.adjust()`. This function is
available since dart sass 1.23.0.
Note this would increase the output CSS size, as it will output
different colour syntax, .e.g.
```
< background-image: linear-gradient(-180deg, #fff 88%, rgb(114.9141509434, 132.7028301887, 159.3858490566) 100%);
---
> background-image: linear-gradient(-180deg, #fff 88%, #73859f 100%);
```
Closes#8876
## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
- [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
Problem: the vjs-user-inactive class triggering the hiding of the
tooltip is added much later on touch devices, therefore the mouse
tooltip stays visible on its last seek target position whenever the user
taps the screen to access the controls.
This change ensures that the mouse tooltip is only visible when the user
is actually scrubbing.
## Description
- Configure GitHub Actions workflow for secure publishing
- Enable automatic provenance generation during npm publish
- Add integrity verification through Sigstore transparency logs
Following the recent Lottie-Player supply chain attack, it's crucial to
enhance package security. NPM provenance provides cryptographic proof
that this package was built from this repository using GitHub Actions,
making supply chain attacks significantly harder. More info in my blog
post
https://medium.com/exaforce/npm-provenance-the-missing-security-layer-in-popular-javascript-libraries-b50107927008
## Specific Changes proposed
Changes the workflow github to publish provenance attestation on
https://www.npmjs.com/package/video.js
## Requirements Checklist
- [x] Feature implemented in CI/CD
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
- [x] Unit Tests updated or fixed
- [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ x Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
- [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
## Description
Pressing the arrow and page keys seeks, currently by a set interval.
This change makes this configurable.
## Specific Changes proposed
Adds options that can be included in player options which set the
increments to used.
```
{
controlBar: {
progressControl: {
seekBar: {
stepSeconds: 2,
pageMultiplier: 4
}
}
}
}
```
Defaults remain as 5 seconds for left/right and 12x multiplier for page
up/down.
## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
- [x] Unit Tests updated or fixed
- [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
- [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
## Description
- Add "Playing in Picture-in-Picture" translations to zh-TW.json
- Deduplicate object keys in zh-TW.json
- Update translations-needed.md
- Auto-generated - The np.json section removed from
translations-needed.md was a duplicate.
## Specific Changes proposed
- Add missing translation for "Playing in Picture-in-Picture" to zh-TW
locale.
- Remove duplicate keys 'Picture-in-Picture' and 'Exit
Picture-in-Picture' from zh-TW.json to eliminate redundancy.
## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [x] Change has been verified in an actual browser (Chrome, Firefox,
IE)
- [x] Docs/guides updated
- [x] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
- [x] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Reviewed by Two Core Contributors
---------
Co-authored-by: Harisha Rajam Swaminathan <35213866+harisha-swaminathan@users.noreply.github.com>
## Description
On desktop, a user can hover over the progress bar while content plays,
which makes it possible to seek to a relatively precise location without
disrupting playback. On mobile there is no hovering, so in order to seek
during inline playback the user can only tap a location on the progress
bar (very hard to do precisely on a small screen) or scrub to try to
hone in on a specific location (can be very clunky because seeks are
constantly being executed). This PR adds a feature to treat scrubbing on
mobile more like hovering on desktop-- while scrubbing, seeks are
disabled and playback continues, only when the user finishes scrubbing
is a single seek executed to the desired location.
One key use-case for this feature is thumbnail seeking integrations on
mobile, where the user can scrub through different thumbnail images
until they find their desired seek location.
## Specific Changes proposed
This behavior is similar to the existing `enableSmoothSeeking` behavior
in that the `PlayProgressBar` slider visibly updates with the scrubbing
movements, but differs in a few ways:
- Playback continues while scrubbing, no seeks are executed until
`touchend`.
- The seek bar's `TimeTooltip` component displays the target seek time
while scrubbing, rather than the `CurrentTimeDisplay` (which continues
to show the current time of the playing content).
## Description
n/a
## Specific Changes proposed
n/a
## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
- [ ] Unit Tests updated or fixed
- [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
- [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
Localization is not applied correctly in fieldset labels and select
options. As a result, the text track setting modal dialog is only half
translated.
- add `localize` at `label` level in `TextTrackFieldset`
- add `localize` at `option` level in `TextTrackSelect`
- add test cases
## Description
It is useful to have methods for appending and removing `<source>`
elements to the `<video>` element, as they are sometimes required to
enable certain playback features, for example, using [Airplay with
MSE](https://webkit.org/blog/15036/how-to-use-media-source-extensions-with-airplay).
## Specific Changes proposed
Add new methods-- `addSourceElement()` and `removeSourceElement()` to
the player and tech. The former will take a source object and create and
append a new `<source>` element to the `<video>` element, and the latter
will take a source url and remove any `<source>` element with a matching
`src`.
## Requirements Checklist
- [ ] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
- [ ] Unit Tests updated or fixed
- [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
- [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
## Description
Double clicking the document pip window requests fullscreen but this
fails. The gesture on the pip window can't initiate fullscreen.
Fixes#8877
## Specific Changes proposed
Change the default double click action to just exit pip. This is the
same behaviour as before without the error, as requestFullScreen() calls
exitPictureInPicture();
---------
Co-authored-by: Gary Katsevman <git@gkatsev.com>
## Description
Update VHS to v3.14.1 for a VTT timing fix detailed here:
https://github.com/videojs/http-streaming/pull/1537
## Specific Changes proposed
Update the VHS package to v.3.14.1.
## Requirements Checklist
- [x] Feature implemented / Bug fixed
- [ ] If necessary, more likely in a feature request than a bug fix
- [ ] Change has been verified in an actual browser (Chrome, Firefox,
IE)
- [ ] Unit Tests updated or fixed
- [ ] Docs/guides updated
- [ ] Example created ([starter template on
JSBin](https://codepen.io/gkatsev/pen/GwZegv?editors=1000#0))
- [ ] Has no DOM changes which impact accessiblilty or trigger warnings
(e.g. Chrome issues tab)
- [ ] Has no changes to JSDoc which cause `npm run docs:api` to error
- [ ] Reviewed by Two Core Contributors
---------
Co-authored-by: Essk <sarah@teaandbiscuits.net>