@videojs/html 0.1.0-preview.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/LICENSE +20 -0
  2. package/README.md +26 -0
  3. package/dist/button-Bu1mGG-F.js +63 -0
  4. package/dist/button-Bu1mGG-F.js.map +1 -0
  5. package/dist/component-factory-vR-5t251.js +95 -0
  6. package/dist/component-factory-vR-5t251.js.map +1 -0
  7. package/dist/current-time-display-BNvqKqSQ.js +36 -0
  8. package/dist/current-time-display-BNvqKqSQ.js.map +1 -0
  9. package/dist/custom-element-3bDlB2XO.js +10 -0
  10. package/dist/custom-element-3bDlB2XO.js.map +1 -0
  11. package/dist/define/index.d.ts +12 -0
  12. package/dist/define/index.js +27 -0
  13. package/dist/define/media-container.d.ts +1 -0
  14. package/dist/define/media-container.js +3 -0
  15. package/dist/define/media-current-time-display.d.ts +1 -0
  16. package/dist/define/media-current-time-display.js +4 -0
  17. package/dist/define/media-duration-display.d.ts +1 -0
  18. package/dist/define/media-duration-display.js +4 -0
  19. package/dist/define/media-fullscreen-button.d.ts +1 -0
  20. package/dist/define/media-fullscreen-button.js +5 -0
  21. package/dist/define/media-mute-button.d.ts +1 -0
  22. package/dist/define/media-mute-button.js +5 -0
  23. package/dist/define/media-play-button.d.ts +1 -0
  24. package/dist/define/media-play-button.js +5 -0
  25. package/dist/define/media-popover.d.ts +1 -0
  26. package/dist/define/media-popover.js +4 -0
  27. package/dist/define/media-preview-time-display.d.ts +1 -0
  28. package/dist/define/media-preview-time-display.js +4 -0
  29. package/dist/define/media-time-slider.d.ts +1 -0
  30. package/dist/define/media-time-slider.js +4 -0
  31. package/dist/define/media-tooltip.d.ts +1 -0
  32. package/dist/define/media-tooltip.js +5 -0
  33. package/dist/define/media-volume-slider.d.ts +1 -0
  34. package/dist/define/media-volume-slider.js +4 -0
  35. package/dist/define/video-provider.d.ts +1 -0
  36. package/dist/define/video-provider.js +3 -0
  37. package/dist/duration-display-Dtl2RCNd.js +44 -0
  38. package/dist/duration-display-Dtl2RCNd.js.map +1 -0
  39. package/dist/fullscreen-button-CKOv8Ywh.js +40 -0
  40. package/dist/fullscreen-button-CKOv8Ywh.js.map +1 -0
  41. package/dist/icons-CuxuONCk.js +209 -0
  42. package/dist/icons-CuxuONCk.js.map +1 -0
  43. package/dist/icons.d.ts +1 -0
  44. package/dist/icons.js +2 -0
  45. package/dist/index-LKrIp3Oo.d.ts +1 -0
  46. package/dist/index.d.ts +205 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +17 -0
  49. package/dist/media-container-BOL0PKuG.js +80 -0
  50. package/dist/media-container-BOL0PKuG.js.map +1 -0
  51. package/dist/media-container-ChS9lZvf.d.ts +1 -0
  52. package/dist/media-container-DwKSOa1h.js +8 -0
  53. package/dist/media-container-DwKSOa1h.js.map +1 -0
  54. package/dist/media-current-time-display-Cd0rPAuj.d.ts +1 -0
  55. package/dist/media-current-time-display-Cr2LJaRo.js +8 -0
  56. package/dist/media-current-time-display-Cr2LJaRo.js.map +1 -0
  57. package/dist/media-duration-display-6KTtxmm3.js +8 -0
  58. package/dist/media-duration-display-6KTtxmm3.js.map +1 -0
  59. package/dist/media-duration-display-qvm6YX-q.d.ts +1 -0
  60. package/dist/media-fullscreen-button-BgUK3lgu.d.ts +1 -0
  61. package/dist/media-fullscreen-button-CiG60HOW.js +8 -0
  62. package/dist/media-fullscreen-button-CiG60HOW.js.map +1 -0
  63. package/dist/media-mute-button-DXq-JKvc.js +8 -0
  64. package/dist/media-mute-button-DXq-JKvc.js.map +1 -0
  65. package/dist/media-mute-button-NVJF2EEW.d.ts +1 -0
  66. package/dist/media-play-button-Wt6RbYe5.js +8 -0
  67. package/dist/media-play-button-Wt6RbYe5.js.map +1 -0
  68. package/dist/media-play-button-oq8yDlxe.d.ts +1 -0
  69. package/dist/media-popover-BtJmPv0E.d.ts +1 -0
  70. package/dist/media-popover-CpbBQOK2.js +8 -0
  71. package/dist/media-popover-CpbBQOK2.js.map +1 -0
  72. package/dist/media-preview-time-display-4YX5Rics.d.ts +1 -0
  73. package/dist/media-preview-time-display-DF6tOv7J.js +8 -0
  74. package/dist/media-preview-time-display-DF6tOv7J.js.map +1 -0
  75. package/dist/media-skin-CxnuHwhu.js +36 -0
  76. package/dist/media-skin-CxnuHwhu.js.map +1 -0
  77. package/dist/media-skin-Di3vSHvS.d.ts +11 -0
  78. package/dist/media-skin-Di3vSHvS.d.ts.map +1 -0
  79. package/dist/media-time-slider-DFfiWHUh.js +12 -0
  80. package/dist/media-time-slider-DFfiWHUh.js.map +1 -0
  81. package/dist/media-time-slider-DvMnfYXZ.d.ts +1 -0
  82. package/dist/media-tooltip-BqV17mdM.d.ts +1 -0
  83. package/dist/media-tooltip-RjL5rqLT.js +8 -0
  84. package/dist/media-tooltip-RjL5rqLT.js.map +1 -0
  85. package/dist/media-volume-slider-DHV-7FOd.js +11 -0
  86. package/dist/media-volume-slider-DHV-7FOd.js.map +1 -0
  87. package/dist/media-volume-slider-DP47VLVi.d.ts +1 -0
  88. package/dist/mute-button-BCN9DDLN.js +39 -0
  89. package/dist/mute-button-BCN9DDLN.js.map +1 -0
  90. package/dist/play-button-DP8VldNs.js +40 -0
  91. package/dist/play-button-DP8VldNs.js.map +1 -0
  92. package/dist/popover-ah61j3HR.js +63 -0
  93. package/dist/popover-ah61j3HR.js.map +1 -0
  94. package/dist/preview-time-display-DwLOj4CJ.js +36 -0
  95. package/dist/preview-time-display-DwLOj4CJ.js.map +1 -0
  96. package/dist/skins/frosted.d.ts +23 -0
  97. package/dist/skins/frosted.d.ts.map +1 -0
  98. package/dist/skins/frosted.js +145 -0
  99. package/dist/skins/frosted.js.map +1 -0
  100. package/dist/skins/minimal.d.ts +23 -0
  101. package/dist/skins/minimal.d.ts.map +1 -0
  102. package/dist/skins/minimal.js +150 -0
  103. package/dist/skins/minimal.js.map +1 -0
  104. package/dist/store.d.ts +1 -0
  105. package/dist/store.js +0 -0
  106. package/dist/time-slider-DBWcZzRe.js +141 -0
  107. package/dist/time-slider-DBWcZzRe.js.map +1 -0
  108. package/dist/tooltip-O0U-gkDS.js +23 -0
  109. package/dist/tooltip-O0U-gkDS.js.map +1 -0
  110. package/dist/video-provider-Bj9JwzDx.js +23 -0
  111. package/dist/video-provider-Bj9JwzDx.js.map +1 -0
  112. package/dist/video-provider-HuYjfSUk.js +8 -0
  113. package/dist/video-provider-HuYjfSUk.js.map +1 -0
  114. package/dist/video-provider-nSCfwA7l.d.ts +1 -0
  115. package/dist/volume-slider-cwSYSsFC.js +118 -0
  116. package/dist/volume-slider-cwSYSsFC.js.map +1 -0
  117. package/package.json +67 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-mute-button-DXq-JKvc.js","names":[],"sources":["../src/define/media-mute-button.ts"],"sourcesContent":["import { MuteButtonElement } from '@/elements/mute-button';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-mute-button', MuteButtonElement);\n"],"mappings":";;;;AAGA,oBAAoB,qBAAqB,kBAAkB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { t as PlayButtonElement } from "./play-button-DP8VldNs.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-play-button.ts
5
+ defineCustomElement("media-play-button", PlayButtonElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-play-button-Wt6RbYe5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-play-button-Wt6RbYe5.js","names":[],"sources":["../src/define/media-play-button.ts"],"sourcesContent":["import { PlayButtonElement } from '@/elements/play-button';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-play-button', PlayButtonElement);\n"],"mappings":";;;;AAGA,oBAAoB,qBAAqB,kBAAkB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { n as PopoverElement } from "./popover-ah61j3HR.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-popover.ts
5
+ defineCustomElement("media-popover", PopoverElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-popover-CpbBQOK2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-popover-CpbBQOK2.js","names":[],"sources":["../src/define/media-popover.ts"],"sourcesContent":["import { PopoverElement } from '@/elements/popover';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-popover', PopoverElement);\n"],"mappings":";;;;AAGA,oBAAoB,iBAAiB,eAAe"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { t as PreviewTimeDisplayElement } from "./preview-time-display-DwLOj4CJ.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-preview-time-display.ts
5
+ defineCustomElement("media-preview-time-display", PreviewTimeDisplayElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-preview-time-display-DF6tOv7J.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-preview-time-display-DF6tOv7J.js","names":[],"sources":["../src/define/media-preview-time-display.ts"],"sourcesContent":["import { PreviewTimeDisplayElement } from '@/elements/preview-time-display';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-preview-time-display', PreviewTimeDisplayElement);\n"],"mappings":";;;;AAGA,oBAAoB,8BAA8B,0BAA0B"}
@@ -0,0 +1,36 @@
1
+ //#region src/media/media-skin.ts
2
+ function getTemplateHTML() {
3
+ return `
4
+ <style>
5
+ :host {
6
+ display: block;
7
+ }
8
+
9
+ media-container {
10
+ display: block;
11
+ width: 100%;
12
+ height: 100%;
13
+ }
14
+ </style>
15
+ <slot></slot>
16
+ `;
17
+ }
18
+ var MediaSkinElement = class extends HTMLElement {
19
+ static {
20
+ this.shadowRootOptions = { mode: "open" };
21
+ }
22
+ static {
23
+ this.getTemplateHTML = getTemplateHTML;
24
+ }
25
+ constructor() {
26
+ super();
27
+ if (!this.shadowRoot) {
28
+ this.attachShadow(this.constructor.shadowRootOptions);
29
+ this.shadowRoot.innerHTML = this.constructor.getTemplateHTML();
30
+ }
31
+ }
32
+ };
33
+
34
+ //#endregion
35
+ export { MediaSkinElement as t };
36
+ //# sourceMappingURL=media-skin-CxnuHwhu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-skin-CxnuHwhu.js","names":[],"sources":["../src/media/media-skin.ts"],"sourcesContent":["export function getTemplateHTML() {\n return /* html */ `\n <style>\n :host {\n display: block;\n }\n\n media-container {\n display: block;\n width: 100%;\n height: 100%;\n }\n </style>\n <slot></slot>\n `;\n}\n\nexport class MediaSkinElement extends HTMLElement {\n static shadowRootOptions = { mode: 'open' as ShadowRootMode };\n static getTemplateHTML: () => string = getTemplateHTML;\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof MediaSkinElement).shadowRootOptions);\n this.shadowRoot!.innerHTML = (this.constructor as typeof MediaSkinElement).getTemplateHTML();\n }\n }\n}\n"],"mappings":";AAAA,SAAgB,kBAAkB;AAChC,QAAkB;;;;;;;;;;;;;;;AAgBpB,IAAa,mBAAb,cAAsC,YAAY;;2BACrB,EAAE,MAAM,QAA0B;;;yBACtB;;CAEvC,cAAc;AACZ,SAAO;AAEP,MAAI,CAAC,KAAK,YAAY;AACpB,QAAK,aAAc,KAAK,YAAwC,kBAAkB;AAClF,QAAK,WAAY,YAAa,KAAK,YAAwC,iBAAiB"}
@@ -0,0 +1,11 @@
1
+ //#region src/media/media-skin.d.ts
2
+ declare class MediaSkinElement extends HTMLElement {
3
+ static shadowRootOptions: {
4
+ mode: ShadowRootMode;
5
+ };
6
+ static getTemplateHTML: () => string;
7
+ constructor();
8
+ }
9
+ //#endregion
10
+ export { MediaSkinElement as t };
11
+ //# sourceMappingURL=media-skin-Di3vSHvS.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-skin-Di3vSHvS.d.ts","names":[],"sources":["../src/media/media-skin.ts"],"sourcesContent":[],"mappings":";AAiBa,cAAA,gBAAA,SAAyB,WAAA,CAAA;;UACS"}
@@ -0,0 +1,12 @@
1
+ import { a as TimeSliderThumbElement, i as TimeSliderRootElement, n as TimeSliderPointerElement, o as TimeSliderTrackElement, r as TimeSliderProgressElement } from "./time-slider-DBWcZzRe.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-time-slider.ts
5
+ defineCustomElement("media-time-slider", TimeSliderRootElement);
6
+ defineCustomElement("media-time-slider-track", TimeSliderTrackElement);
7
+ defineCustomElement("media-time-slider-progress", TimeSliderProgressElement);
8
+ defineCustomElement("media-time-slider-pointer", TimeSliderPointerElement);
9
+ defineCustomElement("media-time-slider-thumb", TimeSliderThumbElement);
10
+
11
+ //#endregion
12
+ //# sourceMappingURL=media-time-slider-DFfiWHUh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-time-slider-DFfiWHUh.js","names":[],"sources":["../src/define/media-time-slider.ts"],"sourcesContent":["import { TimeSliderPointerElement, TimeSliderProgressElement, TimeSliderRootElement, TimeSliderThumbElement, TimeSliderTrackElement } from '@/elements/time-slider';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-time-slider', TimeSliderRootElement);\ndefineCustomElement('media-time-slider-track', TimeSliderTrackElement);\ndefineCustomElement('media-time-slider-progress', TimeSliderProgressElement);\ndefineCustomElement('media-time-slider-pointer', TimeSliderPointerElement);\ndefineCustomElement('media-time-slider-thumb', TimeSliderThumbElement);\n"],"mappings":";;;;AAGA,oBAAoB,qBAAqB,sBAAsB;AAC/D,oBAAoB,2BAA2B,uBAAuB;AACtE,oBAAoB,8BAA8B,0BAA0B;AAC5E,oBAAoB,6BAA6B,yBAAyB;AAC1E,oBAAoB,2BAA2B,uBAAuB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,8 @@
1
+ import { t as TooltipElement } from "./tooltip-O0U-gkDS.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-tooltip.ts
5
+ defineCustomElement("media-tooltip", TooltipElement);
6
+
7
+ //#endregion
8
+ //# sourceMappingURL=media-tooltip-RjL5rqLT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-tooltip-RjL5rqLT.js","names":[],"sources":["../src/define/media-tooltip.ts"],"sourcesContent":["import { TooltipElement } from '@/elements/tooltip';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-tooltip', TooltipElement);\n"],"mappings":";;;;AAGA,oBAAoB,iBAAiB,eAAe"}
@@ -0,0 +1,11 @@
1
+ import { a as VolumeSliderTrackElement, i as VolumeSliderThumbElement, n as VolumeSliderIndicatorElement, r as VolumeSliderRootElement } from "./volume-slider-cwSYSsFC.js";
2
+ import { t as defineCustomElement } from "./custom-element-3bDlB2XO.js";
3
+
4
+ //#region src/define/media-volume-slider.ts
5
+ defineCustomElement("media-volume-slider", VolumeSliderRootElement);
6
+ defineCustomElement("media-volume-slider-track", VolumeSliderTrackElement);
7
+ defineCustomElement("media-volume-slider-indicator", VolumeSliderIndicatorElement);
8
+ defineCustomElement("media-volume-slider-thumb", VolumeSliderThumbElement);
9
+
10
+ //#endregion
11
+ //# sourceMappingURL=media-volume-slider-DHV-7FOd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-volume-slider-DHV-7FOd.js","names":[],"sources":["../src/define/media-volume-slider.ts"],"sourcesContent":["import { VolumeSliderIndicatorElement, VolumeSliderRootElement, VolumeSliderThumbElement, VolumeSliderTrackElement } from '@/elements/volume-slider';\nimport { defineCustomElement } from '@/utils/custom-element';\n\ndefineCustomElement('media-volume-slider', VolumeSliderRootElement);\ndefineCustomElement('media-volume-slider-track', VolumeSliderTrackElement);\ndefineCustomElement('media-volume-slider-indicator', VolumeSliderIndicatorElement);\ndefineCustomElement('media-volume-slider-thumb', VolumeSliderThumbElement);\n"],"mappings":";;;;AAGA,oBAAoB,uBAAuB,wBAAwB;AACnE,oBAAoB,6BAA6B,yBAAyB;AAC1E,oBAAoB,iCAAiC,6BAA6B;AAClF,oBAAoB,6BAA6B,yBAAyB"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,39 @@
1
+ import { r as toConnectedHTMLComponent } from "./component-factory-vR-5t251.js";
2
+ import { t as ButtonElement } from "./button-Bu1mGG-F.js";
3
+ import { muteButtonStateDefinition } from "@videojs/core/store";
4
+ import { memoize } from "@videojs/utils";
5
+
6
+ //#region src/elements/mute-button.ts
7
+ const muteButtonCreateRequestMethods = memoize(muteButtonStateDefinition.createRequestMethods);
8
+ const getMuteButtonState = (_element, mediaStore) => {
9
+ return {
10
+ ...muteButtonStateDefinition.stateTransform(mediaStore.getState()),
11
+ ...muteButtonCreateRequestMethods(mediaStore.dispatch)
12
+ };
13
+ };
14
+ const getMuteButtonProps = (_element, state) => {
15
+ return {
16
+ "data-muted": state.muted,
17
+ "data-volume-level": state.volumeLevel,
18
+ role: "button",
19
+ tabindex: "0",
20
+ "aria-label": state.muted ? "unmute" : "mute",
21
+ "data-tooltip": state.muted ? "Unmute" : "Mute"
22
+ };
23
+ };
24
+ var MuteButton = class extends ButtonElement {
25
+ handleEvent(event) {
26
+ super.handleEvent(event);
27
+ const { type } = event;
28
+ const state = this._state;
29
+ if (state) {
30
+ if (type === "click") if (state.volumeLevel === "off") state.requestUnmute();
31
+ else state.requestMute();
32
+ }
33
+ }
34
+ };
35
+ const MuteButtonElement = toConnectedHTMLComponent(MuteButton, getMuteButtonState, getMuteButtonProps, "MuteButton");
36
+
37
+ //#endregion
38
+ export { MuteButtonElement as t };
39
+ //# sourceMappingURL=mute-button-BCN9DDLN.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mute-button-BCN9DDLN.js","names":["getMuteButtonState: StateHook<MuteButton, MuteButtonStateWithMethods>","getMuteButtonProps: PropsHook<MuteButton, MuteButtonStateWithMethods>","MuteButtonElement: ConnectedComponentConstructor<MuteButton, MuteButtonStateWithMethods>"],"sources":["../src/elements/mute-button.ts"],"sourcesContent":["import type { MuteButtonState } from '@videojs/core/store';\nimport type { Prettify } from '../types';\nimport type { ConnectedComponentConstructor, PropsHook, StateHook } from '../utils/component-factory';\n\nimport { muteButtonStateDefinition } from '@videojs/core/store';\n\nimport { memoize } from '@videojs/utils';\nimport { toConnectedHTMLComponent } from '../utils/component-factory';\nimport { ButtonElement } from './button';\n\ntype MuteButtonStateWithMethods = Prettify<MuteButtonState & ReturnType<typeof muteButtonStateDefinition.createRequestMethods>>;\n\nconst muteButtonCreateRequestMethods = memoize(muteButtonStateDefinition.createRequestMethods);\n\nexport const getMuteButtonState: StateHook<MuteButton, MuteButtonStateWithMethods> = (_element, mediaStore) => {\n return {\n ...muteButtonStateDefinition.stateTransform(mediaStore.getState()),\n ...muteButtonCreateRequestMethods(mediaStore.dispatch),\n };\n};\n\nexport const getMuteButtonProps: PropsHook<MuteButton, MuteButtonStateWithMethods> = (_element, state) => {\n const baseProps: Record<string, any> = {\n /** data attributes/props */\n 'data-muted': state.muted,\n 'data-volume-level': state.volumeLevel,\n /** @TODO Need another state provider in core for i18n (CJP) */\n /** aria attributes/props */\n role: 'button',\n tabindex: '0',\n 'aria-label': state.muted ? 'unmute' : 'mute',\n /** tooltip */\n 'data-tooltip': state.muted ? 'Unmute' : 'Mute',\n /** @TODO Figure out how we want to handle attr overrides (e.g. aria-label) (CJP) */\n /** external props spread last to allow for overriding */\n // ...props,\n };\n return baseProps;\n};\n\nexport class MuteButton extends ButtonElement {\n _state: MuteButtonStateWithMethods | undefined;\n\n handleEvent(event: Event): void {\n super.handleEvent(event);\n\n const { type } = event;\n const state = this._state;\n\n if (state) {\n if (type === 'click') {\n if (state.volumeLevel === 'off') {\n state.requestUnmute();\n } else {\n state.requestMute();\n }\n }\n }\n }\n}\n\nexport const MuteButtonElement: ConnectedComponentConstructor<MuteButton, MuteButtonStateWithMethods> = toConnectedHTMLComponent(\n MuteButton,\n getMuteButtonState,\n getMuteButtonProps,\n 'MuteButton',\n);\n"],"mappings":";;;;;;AAYA,MAAM,iCAAiC,QAAQ,0BAA0B,qBAAqB;AAE9F,MAAaA,sBAAyE,UAAU,eAAe;AAC7G,QAAO;EACL,GAAG,0BAA0B,eAAe,WAAW,UAAU,CAAC;EAClE,GAAG,+BAA+B,WAAW,SAAS;EACvD;;AAGH,MAAaC,sBAAyE,UAAU,UAAU;AAgBxG,QAfuC;EAErC,cAAc,MAAM;EACpB,qBAAqB,MAAM;EAG3B,MAAM;EACN,UAAU;EACV,cAAc,MAAM,QAAQ,WAAW;EAEvC,gBAAgB,MAAM,QAAQ,WAAW;EAI1C;;AAIH,IAAa,aAAb,cAAgC,cAAc;CAG5C,YAAY,OAAoB;AAC9B,QAAM,YAAY,MAAM;EAExB,MAAM,EAAE,SAAS;EACjB,MAAM,QAAQ,KAAK;AAEnB,MAAI,OACF;OAAI,SAAS,QACX,KAAI,MAAM,gBAAgB,MACxB,OAAM,eAAe;OAErB,OAAM,aAAa;;;;AAO7B,MAAaC,oBAA2F,yBACtG,YACA,oBACA,oBACA,aACD"}
@@ -0,0 +1,40 @@
1
+ import { r as toConnectedHTMLComponent } from "./component-factory-vR-5t251.js";
2
+ import { t as ButtonElement } from "./button-Bu1mGG-F.js";
3
+ import { playButtonStateDefinition } from "@videojs/core/store";
4
+ import { memoize } from "@videojs/utils";
5
+
6
+ //#region src/elements/play-button.ts
7
+ const playButtonCreateRequestMethods = memoize(playButtonStateDefinition.createRequestMethods);
8
+ /**
9
+ * PlayButton state hook - equivalent to React's usePlayButtonState
10
+ * Handles media store state subscription and transformation
11
+ */
12
+ const getPlayButtonState = (_element, mediaStore) => {
13
+ return {
14
+ ...playButtonStateDefinition.stateTransform(mediaStore.getState()),
15
+ ...playButtonCreateRequestMethods(mediaStore.dispatch)
16
+ };
17
+ };
18
+ const getPlayButtonProps = (_element, state) => {
19
+ return {
20
+ "data-paused": state.paused,
21
+ role: "button",
22
+ tabindex: "0",
23
+ "aria-label": state.paused ? "play" : "pause",
24
+ "data-tooltip": state.paused ? "Play" : "Pause"
25
+ };
26
+ };
27
+ var PlayButton = class extends ButtonElement {
28
+ handleEvent(event) {
29
+ super.handleEvent(event);
30
+ const { type } = event;
31
+ const state = this._state;
32
+ if (state && type === "click") if (state.paused) state.requestPlay();
33
+ else state.requestPause();
34
+ }
35
+ };
36
+ const PlayButtonElement = toConnectedHTMLComponent(PlayButton, getPlayButtonState, getPlayButtonProps, "PlayButton");
37
+
38
+ //#endregion
39
+ export { PlayButtonElement as t };
40
+ //# sourceMappingURL=play-button-DP8VldNs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"play-button-DP8VldNs.js","names":["getPlayButtonState: StateHook<PlayButton, PlayButtonStateWithMethods>","getPlayButtonProps: PropsHook<PlayButton, PlayButtonStateWithMethods>","PlayButtonElement: ConnectedComponentConstructor<PlayButton, PlayButtonStateWithMethods>"],"sources":["../src/elements/play-button.ts"],"sourcesContent":["import type { PlayButtonState } from '@videojs/core/store';\nimport type { Prettify } from '../types';\nimport type { ConnectedComponentConstructor, PropsHook, StateHook } from '../utils/component-factory';\n\nimport { playButtonStateDefinition } from '@videojs/core/store';\nimport { memoize } from '@videojs/utils';\nimport { toConnectedHTMLComponent } from '../utils/component-factory';\nimport { ButtonElement } from './button';\n\ntype PlayButtonStateWithMethods = Prettify<PlayButtonState & ReturnType<typeof playButtonStateDefinition.createRequestMethods>>;\n\nconst playButtonCreateRequestMethods = memoize(playButtonStateDefinition.createRequestMethods);\n\n/**\n * PlayButton state hook - equivalent to React's usePlayButtonState\n * Handles media store state subscription and transformation\n */\nexport const getPlayButtonState: StateHook<PlayButton, PlayButtonStateWithMethods> = (_element, mediaStore) => {\n return {\n ...playButtonStateDefinition.stateTransform(mediaStore.getState()),\n ...playButtonCreateRequestMethods(mediaStore.dispatch),\n };\n};\n\nexport const getPlayButtonProps: PropsHook<PlayButton, PlayButtonStateWithMethods> = (_element, state) => {\n const baseProps: Record<string, any> = {\n /** data attributes/props */\n 'data-paused': state.paused,\n /** @TODO Need another state provider in core for i18n (CJP) */\n /** aria attributes/props */\n role: 'button',\n tabindex: '0',\n 'aria-label': state.paused ? 'play' : 'pause',\n /** tooltip */\n 'data-tooltip': state.paused ? 'Play' : 'Pause',\n /** @TODO Figure out how we want to handle attr overrides (e.g. aria-label) (CJP) */\n /** external props spread last to allow for overriding */\n // ...props,\n };\n\n return baseProps;\n};\n\nexport class PlayButton extends ButtonElement {\n _state: PlayButtonStateWithMethods | undefined;\n\n handleEvent(event: Event): void {\n super.handleEvent(event);\n\n const { type } = event;\n const state = this._state;\n if (state && type === 'click') {\n if (state.paused) {\n state.requestPlay();\n } else {\n state.requestPause();\n }\n }\n }\n}\n\nexport const PlayButtonElement: ConnectedComponentConstructor<PlayButton, PlayButtonStateWithMethods> = toConnectedHTMLComponent(\n PlayButton,\n getPlayButtonState,\n getPlayButtonProps,\n 'PlayButton',\n);\n"],"mappings":";;;;;;AAWA,MAAM,iCAAiC,QAAQ,0BAA0B,qBAAqB;;;;;AAM9F,MAAaA,sBAAyE,UAAU,eAAe;AAC7G,QAAO;EACL,GAAG,0BAA0B,eAAe,WAAW,UAAU,CAAC;EAClE,GAAG,+BAA+B,WAAW,SAAS;EACvD;;AAGH,MAAaC,sBAAyE,UAAU,UAAU;AAgBxG,QAfuC;EAErC,eAAe,MAAM;EAGrB,MAAM;EACN,UAAU;EACV,cAAc,MAAM,SAAS,SAAS;EAEtC,gBAAgB,MAAM,SAAS,SAAS;EAIzC;;AAKH,IAAa,aAAb,cAAgC,cAAc;CAG5C,YAAY,OAAoB;AAC9B,QAAM,YAAY,MAAM;EAExB,MAAM,EAAE,SAAS;EACjB,MAAM,QAAQ,KAAK;AACnB,MAAI,SAAS,SAAS,QACpB,KAAI,MAAM,OACR,OAAM,aAAa;MAEnB,OAAM,cAAc;;;AAM5B,MAAaC,oBAA2F,yBACtG,YACA,oBACA,oBACA,aACD"}
@@ -0,0 +1,63 @@
1
+ import { n as getPropsFromAttrs, r as toConnectedHTMLComponent, t as getCoreState } from "./component-factory-vR-5t251.js";
2
+ import { getDocumentOrShadowRoot } from "@videojs/utils/dom";
3
+ import { Popover } from "@videojs/core";
4
+
5
+ //#region src/elements/popover.ts
6
+ const getPopoverState = (element, _mediaStore) => {
7
+ return { ...getCoreState(Popover, getPropsFromAttrs(element)) };
8
+ };
9
+ const getPopoverProps = (element, state) => {
10
+ if (state._popoverElement !== element) state._setPopoverElement(element);
11
+ const triggerElement = getDocumentOrShadowRoot(element)?.querySelector(`[commandfor="${element.id}"]`);
12
+ if (state._triggerElement !== triggerElement) state._setTriggerElement(triggerElement);
13
+ const mediaContainer = element.closest(element.collisionBoundary ? `#${element.collisionBoundary}` : "media-container");
14
+ if (state._collisionBoundaryElement !== mediaContainer) state._setCollisionBoundaryElement(mediaContainer);
15
+ return {
16
+ "data-side": state.placement,
17
+ "data-starting-style": state._transitionStatus === "initial",
18
+ "data-open": state._transitionStatus === "initial" || state._transitionStatus === "open",
19
+ "data-ending-style": state._transitionStatus === "close" || state._transitionStatus === "unmounted",
20
+ "data-closed": state._transitionStatus === "close" || state._transitionStatus === "unmounted",
21
+ style: { ...state._popoverStyle }
22
+ };
23
+ };
24
+ var Popover$1 = class extends HTMLElement {
25
+ static get observedAttributes() {
26
+ return [
27
+ "id",
28
+ "open-on-hover",
29
+ "delay",
30
+ "close-delay",
31
+ "side",
32
+ "side-offset",
33
+ "collision-padding",
34
+ "collision-boundary"
35
+ ];
36
+ }
37
+ get openOnHover() {
38
+ return this.hasAttribute("open-on-hover");
39
+ }
40
+ get delay() {
41
+ return Number.parseInt(this.getAttribute("delay") ?? "0", 10);
42
+ }
43
+ get closeDelay() {
44
+ return Number.parseInt(this.getAttribute("close-delay") ?? "0", 10);
45
+ }
46
+ get side() {
47
+ return this.getAttribute("side");
48
+ }
49
+ get sideOffset() {
50
+ return Number.parseInt(this.getAttribute("side-offset") ?? "0", 10);
51
+ }
52
+ get collisionPadding() {
53
+ return Number.parseInt(this.getAttribute("collision-padding") ?? "0", 10);
54
+ }
55
+ get collisionBoundary() {
56
+ return this.getAttribute("collision-boundary");
57
+ }
58
+ };
59
+ const PopoverElement = toConnectedHTMLComponent(Popover$1, getPopoverState, getPopoverProps, "Popover");
60
+
61
+ //#endregion
62
+ export { PopoverElement as n, getPopoverProps as r, Popover$1 as t };
63
+ //# sourceMappingURL=popover-ah61j3HR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover-ah61j3HR.js","names":["getPopoverState: StateHook<Popover, PopoverState>","CorePopover","getPopoverProps: PropsHook<Popover, PopoverState>","Popover","PopoverElement: ConnectedComponentConstructor<Popover, PopoverState>"],"sources":["../src/elements/popover.ts"],"sourcesContent":["import type { PopoverState as CorePopoverState } from '@videojs/core';\nimport type { Prettify } from '../types';\nimport type { ConnectedComponentConstructor, PropsHook, StateHook } from '../utils/component-factory';\nimport { Popover as CorePopover } from '@videojs/core';\nimport { getDocumentOrShadowRoot } from '@videojs/utils/dom';\nimport { getCoreState, getPropsFromAttrs, toConnectedHTMLComponent } from '../utils/component-factory';\n\ntype Placement = CorePopoverState['placement'];\n\nexport type PopoverState = Prettify<ReturnType<CorePopover['getState']>>;\n\nexport const getPopoverState: StateHook<Popover, PopoverState> = (element, _mediaStore) => {\n const coreState = getCoreState(CorePopover, getPropsFromAttrs(element));\n return {\n ...coreState,\n };\n};\n\nexport const getPopoverProps: PropsHook<Popover, PopoverState> = (element, state) => {\n if (state._popoverElement !== element) {\n state._setPopoverElement(element);\n }\n\n const triggerElement = getDocumentOrShadowRoot(element)?.querySelector(\n `[commandfor=\"${element.id}\"]`,\n ) as HTMLElement | null;\n\n if (state._triggerElement !== triggerElement) {\n state._setTriggerElement(triggerElement);\n }\n\n const mediaContainer = element.closest(element.collisionBoundary\n ? `#${element.collisionBoundary}`\n : 'media-container') as HTMLElement | null;\n\n if (state._collisionBoundaryElement !== mediaContainer) {\n state._setCollisionBoundaryElement(mediaContainer);\n }\n\n return {\n 'data-side': state.placement,\n 'data-starting-style': state._transitionStatus === 'initial',\n 'data-open': state._transitionStatus === 'initial' || state._transitionStatus === 'open',\n 'data-ending-style': state._transitionStatus === 'close' || state._transitionStatus === 'unmounted',\n 'data-closed': state._transitionStatus === 'close' || state._transitionStatus === 'unmounted',\n style: {\n ...state._popoverStyle,\n },\n };\n};\n\nexport class Popover extends HTMLElement {\n static get observedAttributes(): string[] {\n return [\n 'id',\n 'open-on-hover',\n 'delay',\n 'close-delay',\n 'side',\n 'side-offset',\n 'collision-padding',\n 'collision-boundary',\n ];\n }\n\n get openOnHover(): boolean {\n return this.hasAttribute('open-on-hover');\n }\n\n get delay(): number {\n return Number.parseInt(this.getAttribute('delay') ?? '0', 10);\n }\n\n get closeDelay(): number {\n return Number.parseInt(this.getAttribute('close-delay') ?? '0', 10);\n }\n\n get side(): Placement {\n return this.getAttribute('side') as Placement;\n }\n\n get sideOffset(): number {\n return Number.parseInt(this.getAttribute('side-offset') ?? '0', 10);\n }\n\n get collisionPadding(): number {\n return Number.parseInt(this.getAttribute('collision-padding') ?? '0', 10);\n }\n\n get collisionBoundary(): string | null {\n return this.getAttribute('collision-boundary');\n }\n}\n\nexport const PopoverElement: ConnectedComponentConstructor<Popover, PopoverState> = toConnectedHTMLComponent(\n Popover,\n getPopoverState,\n getPopoverProps,\n 'Popover',\n);\n"],"mappings":";;;;;AAWA,MAAaA,mBAAqD,SAAS,gBAAgB;AAEzF,QAAO,EACL,GAFgB,aAAaC,SAAa,kBAAkB,QAAQ,CAAC,EAGtE;;AAGH,MAAaC,mBAAqD,SAAS,UAAU;AACnF,KAAI,MAAM,oBAAoB,QAC5B,OAAM,mBAAmB,QAAQ;CAGnC,MAAM,iBAAiB,wBAAwB,QAAQ,EAAE,cACvD,gBAAgB,QAAQ,GAAG,IAC5B;AAED,KAAI,MAAM,oBAAoB,eAC5B,OAAM,mBAAmB,eAAe;CAG1C,MAAM,iBAAiB,QAAQ,QAAQ,QAAQ,oBAC3C,IAAI,QAAQ,sBACZ,kBAAkB;AAEtB,KAAI,MAAM,8BAA8B,eACtC,OAAM,6BAA6B,eAAe;AAGpD,QAAO;EACL,aAAa,MAAM;EACnB,uBAAuB,MAAM,sBAAsB;EACnD,aAAa,MAAM,sBAAsB,aAAa,MAAM,sBAAsB;EAClF,qBAAqB,MAAM,sBAAsB,WAAW,MAAM,sBAAsB;EACxF,eAAe,MAAM,sBAAsB,WAAW,MAAM,sBAAsB;EAClF,OAAO,EACL,GAAG,MAAM,eACV;EACF;;AAGH,IAAaC,YAAb,cAA6B,YAAY;CACvC,WAAW,qBAA+B;AACxC,SAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD;;CAGH,IAAI,cAAuB;AACzB,SAAO,KAAK,aAAa,gBAAgB;;CAG3C,IAAI,QAAgB;AAClB,SAAO,OAAO,SAAS,KAAK,aAAa,QAAQ,IAAI,KAAK,GAAG;;CAG/D,IAAI,aAAqB;AACvB,SAAO,OAAO,SAAS,KAAK,aAAa,cAAc,IAAI,KAAK,GAAG;;CAGrE,IAAI,OAAkB;AACpB,SAAO,KAAK,aAAa,OAAO;;CAGlC,IAAI,aAAqB;AACvB,SAAO,OAAO,SAAS,KAAK,aAAa,cAAc,IAAI,KAAK,GAAG;;CAGrE,IAAI,mBAA2B;AAC7B,SAAO,OAAO,SAAS,KAAK,aAAa,oBAAoB,IAAI,KAAK,GAAG;;CAG3E,IAAI,oBAAmC;AACrC,SAAO,KAAK,aAAa,qBAAqB;;;AAIlD,MAAaC,iBAAuE,yBAClFD,WACA,iBACA,iBACA,UACD"}
@@ -0,0 +1,36 @@
1
+ import { r as toConnectedHTMLComponent } from "./component-factory-vR-5t251.js";
2
+ import { previewTimeDisplayStateDefinition } from "@videojs/core/store";
3
+ import { formatDisplayTime } from "@videojs/utils";
4
+
5
+ //#region src/elements/preview-time-display.ts
6
+ const getPreviewTimeDisplayState = (_element, mediaStore) => {
7
+ return { ...previewTimeDisplayStateDefinition.stateTransform(mediaStore.getState()) };
8
+ };
9
+ const getPreviewTimeDisplayProps = (_element, _state) => {
10
+ return {};
11
+ };
12
+ var PreviewTimeDisplay = class extends HTMLElement {
13
+ static {
14
+ this.shadowRootOptions = { mode: "open" };
15
+ }
16
+ static {
17
+ this.observedAttributes = ["show-remaining"];
18
+ }
19
+ constructor() {
20
+ super();
21
+ if (!this.shadowRoot) this.attachShadow(this.constructor.shadowRootOptions);
22
+ }
23
+ get showRemaining() {
24
+ return this.hasAttribute("show-remaining");
25
+ }
26
+ _update(_props, state) {
27
+ /** @TODO Should this live here or elsewhere? (CJP) */
28
+ const timeLabel = formatDisplayTime(state.previewTime);
29
+ if (this.shadowRoot) this.shadowRoot.textContent = timeLabel;
30
+ }
31
+ };
32
+ const PreviewTimeDisplayElement = toConnectedHTMLComponent(PreviewTimeDisplay, getPreviewTimeDisplayState, getPreviewTimeDisplayProps, "PreviewTimeDisplay");
33
+
34
+ //#endregion
35
+ export { PreviewTimeDisplayElement as t };
36
+ //# sourceMappingURL=preview-time-display-DwLOj4CJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-time-display-DwLOj4CJ.js","names":["getPreviewTimeDisplayState: StateHook<PreviewTimeDisplay, PreviewTimeDisplayState>","getPreviewTimeDisplayProps: PropsHook<PreviewTimeDisplay, PreviewTimeDisplayState>","PreviewTimeDisplayElement: ConnectedComponentConstructor<PreviewTimeDisplay, PreviewTimeDisplayState>"],"sources":["../src/elements/preview-time-display.ts"],"sourcesContent":["import type { PreviewTimeDisplayState } from '@videojs/core/store';\nimport type { ConnectedComponentConstructor, PropsHook, StateHook } from '../utils/component-factory';\n\nimport { previewTimeDisplayStateDefinition } from '@videojs/core/store';\n\nimport { formatDisplayTime } from '@videojs/utils';\nimport { toConnectedHTMLComponent } from '../utils/component-factory';\n\nexport const getPreviewTimeDisplayState: StateHook<PreviewTimeDisplay, PreviewTimeDisplayState> = (_element, mediaStore) => {\n return {\n ...previewTimeDisplayStateDefinition.stateTransform(mediaStore.getState()),\n // Preview time display is read-only, so no request methods needed\n };\n};\n\nexport const getPreviewTimeDisplayProps: PropsHook<PreviewTimeDisplay, PreviewTimeDisplayState> = (_element, _state) => {\n return {};\n};\n\nexport class PreviewTimeDisplay extends HTMLElement {\n static shadowRootOptions = {\n mode: 'open' as ShadowRootMode,\n };\n\n static observedAttributes: string[] = ['show-remaining'];\n\n constructor() {\n super();\n\n if (!this.shadowRoot) {\n this.attachShadow((this.constructor as typeof PreviewTimeDisplay).shadowRootOptions);\n }\n }\n\n get showRemaining(): boolean {\n return this.hasAttribute('show-remaining');\n }\n\n _update(_props: any, state: PreviewTimeDisplayState): void {\n /** @TODO Should this live here or elsewhere? (CJP) */\n const timeLabel = formatDisplayTime(state.previewTime);\n\n if (this.shadowRoot) {\n this.shadowRoot.textContent = timeLabel;\n }\n }\n}\n\nexport const PreviewTimeDisplayElement: ConnectedComponentConstructor<PreviewTimeDisplay, PreviewTimeDisplayState> = toConnectedHTMLComponent(\n PreviewTimeDisplay,\n getPreviewTimeDisplayState,\n getPreviewTimeDisplayProps,\n 'PreviewTimeDisplay',\n);\n"],"mappings":";;;;;AAQA,MAAaA,8BAAsF,UAAU,eAAe;AAC1H,QAAO,EACL,GAAG,kCAAkC,eAAe,WAAW,UAAU,CAAC,EAE3E;;AAGH,MAAaC,8BAAsF,UAAU,WAAW;AACtH,QAAO,EAAE;;AAGX,IAAa,qBAAb,cAAwC,YAAY;;2BACvB,EACzB,MAAM,QACP;;;4BAEqC,CAAC,iBAAiB;;CAExD,cAAc;AACZ,SAAO;AAEP,MAAI,CAAC,KAAK,WACR,MAAK,aAAc,KAAK,YAA0C,kBAAkB;;CAIxF,IAAI,gBAAyB;AAC3B,SAAO,KAAK,aAAa,iBAAiB;;CAG5C,QAAQ,QAAa,OAAsC;;EAEzD,MAAM,YAAY,kBAAkB,MAAM,YAAY;AAEtD,MAAI,KAAK,WACP,MAAK,WAAW,cAAc;;;AAKpC,MAAaC,4BAAwG,yBACnH,oBACA,4BACA,4BACA,qBACD"}
@@ -0,0 +1,23 @@
1
+ import "../video-provider-nSCfwA7l.js";
2
+ import "../media-container-ChS9lZvf.js";
3
+ import "../media-play-button-oq8yDlxe.js";
4
+ import "../media-mute-button-NVJF2EEW.js";
5
+ import "../media-volume-slider-DP47VLVi.js";
6
+ import "../media-time-slider-DvMnfYXZ.js";
7
+ import "../media-fullscreen-button-BgUK3lgu.js";
8
+ import "../media-duration-display-qvm6YX-q.js";
9
+ import "../media-current-time-display-Cd0rPAuj.js";
10
+ import "../media-preview-time-display-4YX5Rics.js";
11
+ import "../media-popover-BtJmPv0E.js";
12
+ import "../media-tooltip-BqV17mdM.js";
13
+ import "../index-LKrIp3Oo.js";
14
+ import { t as MediaSkinElement } from "../media-skin-Di3vSHvS.js";
15
+
16
+ //#region src/skins/frosted/index.d.ts
17
+ declare function getTemplateHTML(): string;
18
+ declare class MediaSkinFrostedElement extends MediaSkinElement {
19
+ static getTemplateHTML: () => string;
20
+ }
21
+ //#endregion
22
+ export { MediaSkinFrostedElement, getTemplateHTML };
23
+ //# sourceMappingURL=frosted.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frosted.d.ts","names":[],"sources":["../../src/skins/frosted/index.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;;;;iBAkBgB,eAAA,CAAA;cAqGH,uBAAA,SAAgC,gBAAA;EArG7C,OAAgB,eAAA,EAAA,GAAA,GAAA,MAAA;AAqGhB"}
@@ -0,0 +1,145 @@
1
+ import "../component-factory-vR-5t251.js";
2
+ import "../current-time-display-BNvqKqSQ.js";
3
+ import "../duration-display-Dtl2RCNd.js";
4
+ import "../button-Bu1mGG-F.js";
5
+ import "../fullscreen-button-CKOv8Ywh.js";
6
+ import "../mute-button-BCN9DDLN.js";
7
+ import "../play-button-DP8VldNs.js";
8
+ import "../popover-ah61j3HR.js";
9
+ import "../preview-time-display-DwLOj4CJ.js";
10
+ import "../time-slider-DBWcZzRe.js";
11
+ import "../tooltip-O0U-gkDS.js";
12
+ import "../volume-slider-cwSYSsFC.js";
13
+ import "../media-container-BOL0PKuG.js";
14
+ import { t as MediaSkinElement } from "../media-skin-CxnuHwhu.js";
15
+ import "../video-provider-Bj9JwzDx.js";
16
+ import { t as defineCustomElement } from "../custom-element-3bDlB2XO.js";
17
+ import "../icons-CuxuONCk.js";
18
+ import "../video-provider-HuYjfSUk.js";
19
+ import "../media-container-DwKSOa1h.js";
20
+ import "../media-play-button-Wt6RbYe5.js";
21
+ import "../media-mute-button-DXq-JKvc.js";
22
+ import "../media-volume-slider-DHV-7FOd.js";
23
+ import "../media-time-slider-DFfiWHUh.js";
24
+ import "../media-fullscreen-button-CiG60HOW.js";
25
+ import "../media-duration-display-6KTtxmm3.js";
26
+ import "../media-current-time-display-Cr2LJaRo.js";
27
+ import "../media-preview-time-display-DF6tOv7J.js";
28
+ import "../media-popover-CpbBQOK2.js";
29
+ import "../media-tooltip-RjL5rqLT.js";
30
+
31
+ //#region src/skins/frosted/styles.css
32
+ var styles_default = "media-container * {\n box-sizing: border-box;\n}\n\nmedia-container {\n position: relative;\n isolation: isolate;\n container: root / inline-size;\n overflow: clip;\n border-radius: var(--frosted-border-radius, 2rem);\n background: oklab(0 0 0);\n font-family: ui-sans-serif, system-ui, sans-serif;\n font-size: 0.8125rem;\n line-height: 1.5;\n -webkit-font-smoothing: auto;\n -moz-osx-font-smoothing: auto;\n}\nmedia-container::before,\nmedia-container::after {\n content: '';\n position: absolute;\n pointer-events: none;\n border-radius: inherit;\n z-index: 10;\n}\nmedia-container::before {\n inset: 1px;\n box-shadow: inset 0 0 0 1px oklab(1 0 0 / 0.15);\n}\nmedia-container::after {\n inset: 0;\n box-shadow: inset 0 0 0 1px oklab(0 0 0 / 0.1);\n}\n\n/* Fullscreen */\nmedia-container:fullscreen {\n border-radius: 0;\n}\n\nmedia-container > ::slotted([slot='media']) {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n/* Media Container UI Overlay Styling */\nmedia-container > .overlay {\n position: absolute;\n inset: 0;\n display: flex;\n flex-flow: column nowrap;\n align-items: start;\n pointer-events: none;\n border-radius: inherit;\n background-image: linear-gradient(to top, oklab(0 0 0 / 0.5), oklab(0 0 0 / 0.3), rgba(0, 0, 0, 0));\n backdrop-filter: saturate(1.5) brightness(0.9);\n transition: opacity 0.15s ease-out;\n transition-delay: 500ms;\n opacity: 0;\n}\nmedia-container:hover > .overlay,\nmedia-container:has([data-paused]) > .overlay,\nmedia-container:has([aria-expanded='true']) > .overlay {\n opacity: 1;\n transition-duration: 100ms;\n transition-delay: 0ms;\n}\n\n/* Common Surface Styles - e.g. tooltips, popovers, controls */\n.surface {\n background-color: oklab(1 0 0 / 0.1);\n backdrop-filter: blur(64px) brightness(0.9) saturate(1.5);\n box-shadow:\n inset 0 0 0 1px oklab(1 0 0 / 0.15),\n 0 0 0 1px oklab(0 0 0 / 0.15),\n oklab(0 0 0 / 0.15) 0px 1px 3px 0px,\n oklab(0 0 0 / 0.15) 0px 1px 2px -1px;\n}\n@media (prefers-reduced-transparency: reduce) {\n .surface {\n background-color: oklab(0 0 0 / 0.7);\n box-shadow:\n inset 0 0 0 1px oklab(0 0 0),\n 0 0 0 1px oklab(1 0 0 / 0.2);\n }\n}\n@media (prefers-contrast: more) {\n .surface {\n background-color: oklab(0 0 0 / 0.9);\n box-shadow:\n inset 0 0 0 1px oklab(0 0 0),\n 0 0 0 1px oklab(1 0 0 / 0.2);\n }\n}\n\n/* Media Control Bar UI/Styles */\n.control-bar {\n position: absolute;\n bottom: 0.75rem;\n inset-inline: 0.75rem;\n padding: 0.25rem;\n display: flex;\n align-items: center;\n gap: 0.125rem;\n border-radius: calc(infinity * 1px);\n will-change: scale, transform, filter, opacity;\n scale: 0.9;\n opacity: 0;\n filter: blur(8px);\n transition-property: scale, transform, filter, opacity;\n transition-delay: 500ms;\n transition-duration: 300ms;\n transition-timing-function: ease-out;\n transform-origin: bottom;\n color: oklab(1 0 0);\n}\nmedia-container:hover > .control-bar,\nmedia-container:has([data-paused]) > .control-bar,\nmedia-container:has([aria-expanded='true']) > .control-bar {\n opacity: 1;\n scale: 1;\n filter: blur(0px);\n transition-delay: 0ms;\n transition-duration: 100ms;\n}\n\n/* Time Display Styling */\n.time-controls {\n display: flex;\n align-items: center;\n flex: 1;\n gap: 0.75rem;\n padding-inline: 0.375rem;\n}\nmedia-current-time-display,\nmedia-duration-display {\n text-shadow: 0 1px 0 oklab(0 0 0 / 0.25);\n font-variant-numeric: tabular-nums;\n}\n\n/* Generic Media Button Styling */\n.button {\n display: grid;\n flex-shrink: 0;\n padding: 0.5rem;\n cursor: pointer;\n background: transparent;\n border: none;\n border-radius: calc(infinity * 1px);\n color: oklab(1 0 0 / 0.9);\n user-select: none;\n outline: 2px solid transparent;\n outline-offset: -2px;\n transition-property: background-color, color, outline-offset;\n transition-duration: 150ms;\n transition-timing-function: ease-out;\n}\n.button:hover,\n.button:focus-visible,\n.button[aria-expanded='true'] {\n background-color: oklab(1 0 0 / 0.1);\n color: oklab(1 0 0);\n text-decoration: none;\n}\n.button:focus-visible {\n outline-color: oklch(62.3% 0.214 259.815);\n outline-offset: 2px;\n}\n.button[disabled] {\n cursor: not-allowed;\n opacity: 0.5;\n filter: grayscale(1);\n}\n\n.button .icon {\n grid-area: 1 / 1;\n width: 18px;\n height: 18px;\n filter: drop-shadow(0 1px 0 oklab(0 0 0 / 0.25));\n}\n\n/* Media Play Button UI/Styles */\nmedia-play-button .icon {\n opacity: 0;\n transition: opacity 150ms linear;\n}\n\nmedia-play-button:not([data-paused]) .pause-icon,\nmedia-play-button[data-paused] .play-icon {\n opacity: 1;\n}\n\n/* Media Fullscreen Button UI/Styles */\nmedia-fullscreen-button .icon {\n display: none;\n}\nmedia-fullscreen-button:not([data-fullscreen]) .fullscreen-enter-icon,\nmedia-fullscreen-button[data-fullscreen] .fullscreen-exit-icon {\n display: inline;\n}\n\n/* One way to define the \"default visible\" icon (CJP) */\nmedia-mute-button .icon {\n display: none;\n}\nmedia-mute-button:not([data-volume-level]) .volume-low-icon,\nmedia-mute-button[data-volume-level='high'] .volume-high-icon,\nmedia-mute-button[data-volume-level='low'] .volume-low-icon,\nmedia-mute-button[data-volume-level='medium'] .volume-low-icon,\nmedia-mute-button[data-volume-level='off'] .volume-off-icon {\n display: inline;\n}\n\n/* TimeSlider Component Styles */\n.slider {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n position: relative;\n border-radius: calc(infinity * 1px);\n outline: none;\n}\n\n/* Horizontal orientation styles */\n.slider[data-orientation='horizontal'] {\n min-width: 5rem;\n width: 100%;\n height: 1.25rem;\n}\n\n/* Vertical orientation styles */\n.slider[data-orientation='vertical'] {\n height: 5rem;\n width: 1.25rem;\n}\n\n.slider-track {\n position: relative;\n isolation: isolate;\n background-color: oklab(1 0 0 / 0.2);\n border-radius: inherit;\n overflow: hidden;\n user-select: none;\n outline: 2px solid transparent;\n outline-offset: -2px;\n transition: outline-offset 150ms ease-out;\n box-shadow: 0 0 0 1px oklab(0 0 0 / 0.05);\n}\n\n/* Horizontal track styles */\n.slider-track[data-orientation='horizontal'] {\n width: 100%;\n height: 0.25rem;\n}\n\n/* Vertical track styles */\n.slider-track[data-orientation='vertical'] {\n width: 0.25rem;\n height: 100%;\n}\n\n.slider:focus-visible .slider-track {\n outline-color: oklch(62.3% 0.214 259.815);\n outline-offset: 6px;\n}\n\n.slider-thumb {\n width: 0.625rem;\n height: 0.625rem;\n background-color: oklab(1 0 0);\n border-radius: calc(infinity * 1px);\n user-select: none;\n z-index: 10;\n box-shadow:\n 0 0 0 1px oklab(0 0 0 / 0.1),\n 0 1px 3px 0 oklab(0 0 0 / 0.15),\n 0 1px 2px -1px oklab(0 0 0 / 0.15);\n opacity: 0;\n transition-property: opacity, height, width;\n transition-duration: 150ms;\n transition-timing-function: ease-out;\n}\n.slider-thumb:active {\n width: 0.75rem;\n height: 0.75rem;\n}\n.slider:hover .slider-thumb,\n.slider:focus-within .slider-thumb {\n opacity: 1;\n}\n.slider-track[data-orientation='horizontal'] .slider-thumb {\n cursor: ew-resize;\n}\n.slider-track[data-orientation='vertical'] .slider-thumb {\n cursor: ns-resize;\n}\n\n.slider-pointer {\n background-color: oklab(1 0 0 / 0.2);\n border-radius: inherit;\n}\n\n.slider-progress {\n background-color: oklab(1 0 0);\n border-radius: inherit;\n}\n\nmedia-preview-time-display {\n font-variant-numeric: tabular-nums;\n}\n\n.popup-animation {\n transition-property: transform, scale, opacity, filter;\n transition-duration: 200ms;\n transform: scale(1);\n transform-origin: bottom;\n opacity: 1;\n filter: blur(0px);\n}\n.popup-animation[data-starting-style],\n.popup-animation[data-ending-style] {\n transform: scale(0);\n opacity: 0;\n filter: blur(8px);\n}\n.popup-animation[data-instant] {\n transition-duration: 0ms;\n}\n\nmedia-popover {\n margin: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n padding: 0.75rem 0.25rem;\n border-radius: calc(infinity * 1px);\n}\n\n/* Tooltip Component Styles */\nmedia-tooltip {\n margin: 0;\n border: none;\n box-shadow: none;\n background: transparent;\n color: oklab(1 0 0);\n padding: 0.25rem 0.625rem;\n border-radius: calc(infinity * 1px);\n font-size: 0.75rem;\n}\n\n.tooltip {\n display: none;\n white-space: nowrap;\n}\n\n[data-paused] + media-tooltip .play-tooltip,\n:not([data-paused]) + media-tooltip .pause-tooltip {\n display: block;\n}\n\n[data-fullscreen] + media-tooltip .fullscreen-exit-tooltip,\n:not([data-fullscreen]) + media-tooltip .fullscreen-enter-tooltip {\n display: block;\n}\n";
33
+
34
+ //#endregion
35
+ //#region src/skins/frosted/index.ts
36
+ function getTemplateHTML() {
37
+ return `
38
+ ${MediaSkinElement.getTemplateHTML()}
39
+ <style>${styles_default}</style>
40
+
41
+ <media-container>
42
+ <slot name="media" slot="media"></slot>
43
+
44
+ <div class="overlay"></div>
45
+
46
+ <div class="control-bar surface">
47
+ <!-- NOTE: We can decide if we further want to provide a further, "themed" media-play-button that comes with baked in default styles and icons. (CJP) -->
48
+
49
+ <media-play-button commandfor="play-tooltip" class="button">
50
+ <media-play-icon class="icon play-icon"></media-play-icon>
51
+ <media-pause-icon class="icon pause-icon"></media-pause-icon>
52
+ </media-play-button>
53
+ <media-tooltip
54
+ id="play-tooltip"
55
+ class="surface popup-animation"
56
+ popover="manual"
57
+ delay="500"
58
+ side="top"
59
+ side-offset="12"
60
+ collision-padding="12"
61
+ >
62
+ <span class="tooltip play-tooltip">Play</span>
63
+ <span class="tooltip pause-tooltip">Pause</span>
64
+ </media-tooltip>
65
+
66
+ <div class="time-controls">
67
+ <!-- Use the show-remaining attribute to show count down/remaining time -->
68
+ <media-current-time-display></media-current-time-display>
69
+
70
+ <media-time-slider commandfor="time-slider-tooltip" class="slider">
71
+ <media-time-slider-track class="slider-track">
72
+ <media-time-slider-progress class="slider-progress"></media-time-slider-progress>
73
+ <media-time-slider-pointer class="slider-pointer"></media-time-slider-pointer>
74
+ </media-time-slider-track>
75
+ <media-time-slider-thumb class="slider-thumb"></media-time-slider-thumb>
76
+ </media-time-slider>
77
+ <media-tooltip
78
+ id="time-slider-tooltip"
79
+ class="surface popup-animation"
80
+ popover="manual"
81
+ track-cursor-axis="x"
82
+ side="top"
83
+ side-offset="18"
84
+ collision-padding="12"
85
+ >
86
+ <media-preview-time-display></media-preview-time-display>
87
+ </media-tooltip>
88
+
89
+ <media-duration-display></media-duration-display>
90
+ </div>
91
+
92
+ <media-mute-button commandfor="volume-slider-popover" command="toggle-popover" class="button">
93
+ <media-volume-high-icon class="icon volume-high-icon"></media-volume-high-icon>
94
+ <media-volume-low-icon class="icon volume-low-icon"></media-volume-low-icon>
95
+ <media-volume-off-icon class="icon volume-off-icon"></media-volume-off-icon>
96
+ </media-mute-button>
97
+ <media-popover
98
+ id="volume-slider-popover"
99
+ class="surface popup-animation"
100
+ popover="manual"
101
+ open-on-hover
102
+ delay="200"
103
+ close-delay="100"
104
+ side="top"
105
+ side-offset="12"
106
+ collision-padding="12"
107
+ >
108
+ <media-volume-slider class="slider" orientation="vertical">
109
+ <media-volume-slider-track class="slider-track">
110
+ <media-volume-slider-indicator class="slider-progress"></media-volume-slider-indicator>
111
+ </media-volume-slider-track>
112
+ <media-volume-slider-thumb class="slider-thumb"></media-volume-slider-thumb>
113
+ </media-volume-slider>
114
+ </media-popover>
115
+
116
+ <media-fullscreen-button commandfor="fullscreen-tooltip" class="button">
117
+ <media-fullscreen-enter-icon class="icon fullscreen-enter-icon"></media-fullscreen-enter-icon>
118
+ <media-fullscreen-exit-icon class="icon fullscreen-exit-icon"></media-fullscreen-exit-icon>
119
+ </media-fullscreen-button>
120
+ <media-tooltip
121
+ id="fullscreen-tooltip"
122
+ class="surface popup-animation"
123
+ popover="manual"
124
+ delay="500"
125
+ side="top"
126
+ side-offset="12"
127
+ collision-padding="12"
128
+ >
129
+ <span class="tooltip fullscreen-enter-tooltip">Enter Fullscreen</span>
130
+ <span class="tooltip fullscreen-exit-tooltip">Exit Fullscreen</span>
131
+ </media-tooltip>
132
+ </div>
133
+ </media-container>
134
+ `;
135
+ }
136
+ var MediaSkinFrostedElement = class extends MediaSkinElement {
137
+ static {
138
+ this.getTemplateHTML = getTemplateHTML;
139
+ }
140
+ };
141
+ defineCustomElement("media-skin-frosted", MediaSkinFrostedElement);
142
+
143
+ //#endregion
144
+ export { MediaSkinFrostedElement, getTemplateHTML };
145
+ //# sourceMappingURL=frosted.js.map