@mux/mux-player 2.3.2 → 2.3.3-canary.0-9c4cb2a

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.
@@ -71,10 +71,6 @@ var gerwig_default = `<template id="media-theme-gerwig">
71
71
  --media-control-background: var(--_secondary-color);
72
72
  --media-control-hover-background: var(--_accent-color);
73
73
  --media-time-buffered-color: rgba(255, 255, 255, 0.4);
74
- --media-preview-thumbnail-border: 0;
75
- --media-preview-thumbnail-border-radius: 2px 2px 0 0;
76
- --media-preview-time-border-radius: 0 0 2px 2px;
77
- --media-preview-time-margin: 0 0 8px;
78
74
  --media-preview-time-text-shadow: none;
79
75
  --media-control-height: 14px;
80
76
  --media-control-padding: 6px;
@@ -87,8 +83,6 @@ var gerwig_default = `<template id="media-theme-gerwig">
87
83
 
88
84
  :host([audio]) {
89
85
  --_secondary-color: var(--media-secondary-color, black);
90
- --media-preview-time-border-radius: 3px;
91
- --media-preview-time-margin: 0 0 5px;
92
86
  --media-preview-time-text-shadow: none;
93
87
  }
94
88
 
@@ -127,6 +121,8 @@ var gerwig_default = `<template id="media-theme-gerwig">
127
121
  }
128
122
 
129
123
  media-time-range {
124
+ --media-box-padding-left: 6px;
125
+ --media-box-padding-right: 6px;
130
126
  --media-range-bar-color: var(--_accent-color);
131
127
  --media-time-range-buffered-color: var(--_primary-color);
132
128
  --media-range-track-color: transparent;
@@ -143,41 +139,27 @@ var gerwig_default = `<template id="media-theme-gerwig">
143
139
  --media-range-thumb-transform: scale(0);
144
140
  --media-range-thumb-transition: transform 0.3s;
145
141
  --media-range-thumb-opacity: 1;
146
- --media-preview-thumbnail-background: var(--_primary-color);
142
+ --media-preview-background: var(--_primary-color);
143
+ --media-box-arrow-background: var(--_primary-color);
147
144
  --media-preview-thumbnail-border: 5px solid var(--_primary-color);
148
- --media-preview-thumbnail-border-radius: 5px 5px 0 0;
149
- --media-preview-time-background: var(--_primary-color);
150
- --media-preview-time-border-radius: 0 0 5px 5px;
151
- --media-preview-time-margin: 0 0 10px;
152
- --media-preview-time-padding: 2px 0 6px;
145
+ --media-preview-border-radius: 5px;
153
146
  --media-text-color: var(--_text-color);
154
- --media-preview-thumbnail-max-width: 150px;
155
- --media-range-track-pointer-border-right: 2px solid #000;
156
147
  --media-control-hover-background: transparent;
157
148
  color: var(--_accent-color);
158
149
  padding: 0 6px;
159
150
  }
160
151
 
161
152
  :host([audio]) media-time-range {
162
- --media-preview-time-border-radius: 5px;
163
- --media-preview-time-padding: 5px;
153
+ --media-preview-time-padding: 1.5px 6px;
154
+ --media-preview-box-margin: 0 0 -5px;
164
155
  }
165
156
 
166
157
  media-time-range:hover {
167
158
  --media-range-thumb-transform: scale(1);
168
159
  }
169
160
 
170
- media-time-range::part(preview-box)::after {
171
- position: absolute;
172
- content: '';
173
- width: 0;
174
- height: 0;
175
- border-style: solid;
176
- border-width: 10px 8.5px 0 8.5px;
177
- border-color: var(--_primary-color) transparent transparent transparent;
178
- top: 100%;
179
- left: 50%;
180
- transform: translate(-50%, -10px);
161
+ media-preview-thumbnail {
162
+ border-bottom-width: 0;
181
163
  }
182
164
 
183
165
  [part~='listbox'] {
@@ -268,12 +250,20 @@ var gerwig_default = `<template id="media-theme-gerwig">
268
250
  pointer-events: none;
269
251
  }
270
252
 
253
+ media-control-bar {
254
+ --gradient-steps: hsl(0 0% 0% / 0) 0%, hsl(0 0% 0% / 0.013) 8.1%, hsl(0 0% 0% / 0.049) 15.5%,
255
+ hsl(0 0% 0% / 0.104) 22.5%, hsl(0 0% 0% / 0.175) 29%, hsl(0 0% 0% / 0.259) 35.3%, hsl(0 0% 0% / 0.352) 41.2%,
256
+ hsl(0 0% 0% / 0.45) 47.1%, hsl(0 0% 0% / 0.55) 52.9%, hsl(0 0% 0% / 0.648) 58.8%, hsl(0 0% 0% / 0.741) 64.7%,
257
+ hsl(0 0% 0% / 0.825) 71%, hsl(0 0% 0% / 0.896) 77.5%, hsl(0 0% 0% / 0.951) 84.5%, hsl(0 0% 0% / 0.987) 91.9%,
258
+ hsl(0 0% 0%) 100%;
259
+ }
260
+
271
261
  :host([title]:not([audio])) media-control-bar[slot='top-chrome']::before {
272
262
  content: '';
273
263
  position: absolute;
274
264
  width: 100%;
275
265
  padding-bottom: min(100px, 25%);
276
- background: linear-gradient(#000, transparent);
266
+ background: linear-gradient(to top, var(--gradient-steps));
277
267
  opacity: 0.8;
278
268
  pointer-events: none;
279
269
  }
@@ -285,7 +275,7 @@ var gerwig_default = `<template id="media-theme-gerwig">
285
275
  bottom: 0;
286
276
  left: 0;
287
277
  padding-bottom: min(100px, 25%);
288
- background: linear-gradient(transparent, #000);
278
+ background: linear-gradient(to bottom, var(--gradient-steps));
289
279
  opacity: 0.8;
290
280
  z-index: 1;
291
281
  pointer-events: none;
@@ -435,7 +425,7 @@ var gerwig_default = `<template id="media-theme-gerwig">
435
425
  }
436
426
 
437
427
  /* Intentionally don't target the div for transition but the children
438
- of the div. Prevents messing with media-chrome's autohide feature. */
428
+ of the div. Prevents messing with media-chrome's autohide feature. */
439
429
  media-loading-indicator + div * {
440
430
  transition: opacity 0.15s;
441
431
  opacity: 1;
@@ -832,7 +822,12 @@ var gerwig_default = `<template id="media-theme-gerwig">
832
822
  </template>
833
823
 
834
824
  <template partial="TimeRange">
835
- <media-time-range part="bottom time range" disabled="{{disabled}}" aria-disabled="{{disabled}}"></media-time-range>
825
+ <media-time-range part="bottom time range" disabled="{{disabled}}" aria-disabled="{{disabled}}">
826
+ <media-preview-thumbnail slot="preview"></media-preview-thumbnail>
827
+ <media-preview-chapter-display slot="preview"></media-preview-chapter-display>
828
+ <media-preview-time-display slot="preview"></media-preview-time-display>
829
+ <div slot="preview" part="arrow"></div>
830
+ </media-time-range>
836
831
  </template>
837
832
 
838
833
  <template partial="AudioTrackSelect">
@@ -1129,6 +1124,7 @@ var MediaUIProps = {
1129
1124
  MEDIA_PREVIEW_TIME: "mediaPreviewTime",
1130
1125
  MEDIA_PREVIEW_IMAGE: "mediaPreviewImage",
1131
1126
  MEDIA_PREVIEW_COORDS: "mediaPreviewCoords",
1127
+ MEDIA_PREVIEW_CHAPTER: "mediaPreviewChapter",
1132
1128
  MEDIA_LOADING: "mediaLoading",
1133
1129
  MEDIA_BUFFERED: "mediaBuffered",
1134
1130
  MEDIA_STREAM_TYPE: "mediaStreamType",
@@ -1137,23 +1133,38 @@ var MediaUIProps = {
1137
1133
  MEDIA_RENDITION_LIST: "mediaRenditionList",
1138
1134
  MEDIA_RENDITION_SELECTED: "mediaRenditionSelected",
1139
1135
  MEDIA_AUDIO_TRACK_LIST: "mediaAudioTrackList",
1140
- MEDIA_AUDIO_TRACK_ENABLED: "mediaAudioTrackEnabled"
1136
+ MEDIA_AUDIO_TRACK_ENABLED: "mediaAudioTrackEnabled",
1137
+ MEDIA_CHAPTERS_CUES: "mediaChaptersCues"
1141
1138
  };
1142
- var MediaUIPropsEntries = Object.entries(MediaUIProps);
1143
- var MediaUIAttributes = MediaUIPropsEntries.reduce((dictObj, [key, propName]) => {
1144
- dictObj[key] = `${propName.toLowerCase()}`;
1145
- return dictObj;
1146
- }, {});
1147
- var MediaStateChangeEvents = MediaUIPropsEntries.reduce(
1148
- (dictObj, [key, propName]) => {
1149
- dictObj[key] = `${propName.toLowerCase()}`;
1150
- return dictObj;
1151
- },
1152
- {
1153
- USER_INACTIVE: "userinactivechange",
1154
- BREAKPOINTS_CHANGE: "breakpointchange",
1155
- BREAKPOINTS_COMPUTED: "breakpointscomputed"
1156
- }
1139
+ var MediaUIPropsEntries = (
1140
+ /** @type {[keyof MediaUIProps, string][]} */
1141
+ Object.entries(MediaUIProps)
1142
+ );
1143
+ var MediaUIAttributes = (
1144
+ /** @type {{ [k in keyof MediaUIProps]: string }} */
1145
+ MediaUIPropsEntries.reduce(
1146
+ (dictObj, [key, propName]) => {
1147
+ dictObj[key] = `${propName.toLowerCase()}`;
1148
+ return dictObj;
1149
+ },
1150
+ /** @type {Partial<{ [k in keyof MediaUIProps]: string }>} */
1151
+ {}
1152
+ )
1153
+ );
1154
+ var MediaStateChangeEvents = (
1155
+ /** @type {{ [k in keyof MediaUIProps | 'USER_INACTIVE' | 'BREAKPOINTS_CHANGE' | 'BREAKPOINTS_COMPUTED']: string }} */
1156
+ MediaUIPropsEntries.reduce(
1157
+ (dictObj, [key, propName]) => {
1158
+ dictObj[key] = `${propName.toLowerCase()}`;
1159
+ return dictObj;
1160
+ },
1161
+ /** @type {Partial<{ [k in keyof MediaUIProps | 'USER_INACTIVE' | 'BREAKPOINTS_CHANGE' | 'BREAKPOINTS_COMPUTED']: string }>} */
1162
+ {
1163
+ USER_INACTIVE: "userinactivechange",
1164
+ BREAKPOINTS_CHANGE: "breakpointchange",
1165
+ BREAKPOINTS_COMPUTED: "breakpointscomputed"
1166
+ }
1167
+ )
1157
1168
  );
1158
1169
  var StateChangeEventToAttributeMap = Object.entries(
1159
1170
  MediaStateChangeEvents
@@ -1190,6 +1201,8 @@ var EventTarget2 = class {
1190
1201
  return true;
1191
1202
  }
1192
1203
  };
1204
+ var Node = class extends EventTarget2 {
1205
+ };
1193
1206
  var ResizeObserver = class {
1194
1207
  observe() {
1195
1208
  }
@@ -1202,15 +1215,28 @@ var documentShim = {
1202
1215
  createElement: function() {
1203
1216
  return new globalThisShim2.HTMLElement();
1204
1217
  },
1218
+ createElementNS: function() {
1219
+ return new globalThisShim2.HTMLElement();
1220
+ },
1205
1221
  addEventListener() {
1206
1222
  },
1207
1223
  removeEventListener() {
1224
+ },
1225
+ /**
1226
+ *
1227
+ * @param {Event} event
1228
+ * @returns {boolean}
1229
+ */
1230
+ dispatchEvent(event) {
1231
+ return false;
1208
1232
  }
1233
+ // eslint-disable-line no-unused-vars
1209
1234
  };
1210
1235
  var globalThisShim2 = {
1211
1236
  ResizeObserver,
1212
1237
  document: documentShim,
1213
- HTMLElement: class HTMLElement2 extends EventTarget2 {
1238
+ Node,
1239
+ HTMLElement: class HTMLElement2 extends Node {
1214
1240
  },
1215
1241
  DocumentFragment: class DocumentFragment2 extends EventTarget2 {
1216
1242
  },
@@ -1222,12 +1248,47 @@ var globalThisShim2 = {
1222
1248
  whenDefined: function() {
1223
1249
  }
1224
1250
  },
1251
+ localStorage: {
1252
+ /**
1253
+ * @param {string} key
1254
+ * @returns {string|null}
1255
+ */
1256
+ getItem(key) {
1257
+ return null;
1258
+ },
1259
+ // eslint-disable-line no-unused-vars
1260
+ /**
1261
+ * @param {string} key
1262
+ * @param {string} value
1263
+ */
1264
+ setItem(key, value) {
1265
+ },
1266
+ // eslint-disable-line no-unused-vars
1267
+ /**
1268
+ * @param {string} key
1269
+ */
1270
+ removeItem(key) {
1271
+ }
1272
+ // eslint-disable-line no-unused-vars
1273
+ },
1225
1274
  CustomEvent: function CustomEvent2() {
1226
1275
  },
1227
1276
  getComputedStyle: function() {
1228
1277
  },
1229
1278
  navigator: {
1230
- languages: []
1279
+ languages: [],
1280
+ get userAgent() {
1281
+ return "";
1282
+ }
1283
+ },
1284
+ /**
1285
+ * @param {string} media
1286
+ */
1287
+ matchMedia(media) {
1288
+ return {
1289
+ matches: false,
1290
+ media
1291
+ };
1231
1292
  }
1232
1293
  };
1233
1294
  var isServer2 = typeof window === "undefined" || typeof window.customElements === "undefined";
@@ -1466,6 +1527,7 @@ var AttrPart = class extends Part {
1466
1527
  );
1467
1528
  }
1468
1529
  }
1530
+ /** @type boolean */
1469
1531
  get booleanValue() {
1470
1532
  return __privateGet2(this, _element).hasAttributeNS(
1471
1533
  __privateGet2(this, _namespaceURI),
@@ -1507,6 +1569,7 @@ var ChildNodePart = class extends Part {
1507
1569
  get previousSibling() {
1508
1570
  return __privateGet2(this, _nodes)[0].previousSibling;
1509
1571
  }
1572
+ // FIXME: not sure why do we need string serialization here? Just because parent class has type DOMString?
1510
1573
  get value() {
1511
1574
  return __privateGet2(this, _nodes).map((node) => node.textContent).join("");
1512
1575
  }
@@ -1850,7 +1913,8 @@ var observedMediaAttributes = {
1850
1913
  mediastreamtype: "streamtype"
1851
1914
  };
1852
1915
  var prependTemplate = Document.createElement("template");
1853
- prependTemplate.innerHTML = `
1916
+ prependTemplate.innerHTML = /*html*/
1917
+ `
1854
1918
  <style>
1855
1919
  :host {
1856
1920
  display: inline-block;
@@ -1896,7 +1960,10 @@ var MediaThemeElement = class extends GlobalThis.HTMLElement {
1896
1960
  if (this.mediaController && !((_a2 = this.mediaController) == null ? void 0 : _a2.breakpointsComputed))
1897
1961
  return;
1898
1962
  if (mutationList.some((mutation) => {
1899
- const target = mutation.target;
1963
+ const target = (
1964
+ /** @type {HTMLElement} */
1965
+ mutation.target
1966
+ );
1900
1967
  if (target === this)
1901
1968
  return true;
1902
1969
  if (target.localName !== "media-controller")
@@ -1918,6 +1985,7 @@ var MediaThemeElement = class extends GlobalThis.HTMLElement {
1918
1985
  this.addEventListener(MediaStateChangeEvents.BREAKPOINTS_COMPUTED, this.render);
1919
1986
  __privateMethod(this, _upgradeProperty, upgradeProperty_fn).call(this, "template");
1920
1987
  }
1988
+ /** @type {HTMLElement & { breakpointsComputed?: boolean }} */
1921
1989
  get mediaController() {
1922
1990
  return this.renderRoot.querySelector("media-controller");
1923
1991
  }
@@ -1967,6 +2035,7 @@ var MediaThemeElement = class extends GlobalThis.HTMLElement {
1967
2035
  this.renderer = new TemplateInstance(
1968
2036
  this.template,
1969
2037
  this.props,
2038
+ // @ts-ignore
1970
2039
  this.constructor.processor
1971
2040
  );
1972
2041
  this.renderRoot.textContent = "";
@@ -1998,7 +2067,10 @@ updateTemplate_fn = function() {
1998
2067
  const templateId = this.getAttribute("template");
1999
2068
  if (!templateId || templateId === __privateGet3(this, _prevTemplateId))
2000
2069
  return;
2001
- const rootNode = this.getRootNode();
2070
+ const rootNode = (
2071
+ /** @type HTMLDocument | ShadowRoot */
2072
+ this.getRootNode()
2073
+ );
2002
2074
  const template2 = (_a2 = rootNode == null ? void 0 : rootNode.getElementById) == null ? void 0 : _a2.call(rootNode, templateId);
2003
2075
  if (template2) {
2004
2076
  __privateSet3(this, _prevTemplateId, templateId);
@@ -71,10 +71,6 @@ var mediaThemeGerwig = (() => {
71
71
  --media-control-background: var(--_secondary-color);
72
72
  --media-control-hover-background: var(--_accent-color);
73
73
  --media-time-buffered-color: rgba(255, 255, 255, 0.4);
74
- --media-preview-thumbnail-border: 0;
75
- --media-preview-thumbnail-border-radius: 2px 2px 0 0;
76
- --media-preview-time-border-radius: 0 0 2px 2px;
77
- --media-preview-time-margin: 0 0 8px;
78
74
  --media-preview-time-text-shadow: none;
79
75
  --media-control-height: 14px;
80
76
  --media-control-padding: 6px;
@@ -87,8 +83,6 @@ var mediaThemeGerwig = (() => {
87
83
 
88
84
  :host([audio]) {
89
85
  --_secondary-color: var(--media-secondary-color, black);
90
- --media-preview-time-border-radius: 3px;
91
- --media-preview-time-margin: 0 0 5px;
92
86
  --media-preview-time-text-shadow: none;
93
87
  }
94
88
 
@@ -127,6 +121,8 @@ var mediaThemeGerwig = (() => {
127
121
  }
128
122
 
129
123
  media-time-range {
124
+ --media-box-padding-left: 6px;
125
+ --media-box-padding-right: 6px;
130
126
  --media-range-bar-color: var(--_accent-color);
131
127
  --media-time-range-buffered-color: var(--_primary-color);
132
128
  --media-range-track-color: transparent;
@@ -143,41 +139,27 @@ var mediaThemeGerwig = (() => {
143
139
  --media-range-thumb-transform: scale(0);
144
140
  --media-range-thumb-transition: transform 0.3s;
145
141
  --media-range-thumb-opacity: 1;
146
- --media-preview-thumbnail-background: var(--_primary-color);
142
+ --media-preview-background: var(--_primary-color);
143
+ --media-box-arrow-background: var(--_primary-color);
147
144
  --media-preview-thumbnail-border: 5px solid var(--_primary-color);
148
- --media-preview-thumbnail-border-radius: 5px 5px 0 0;
149
- --media-preview-time-background: var(--_primary-color);
150
- --media-preview-time-border-radius: 0 0 5px 5px;
151
- --media-preview-time-margin: 0 0 10px;
152
- --media-preview-time-padding: 2px 0 6px;
145
+ --media-preview-border-radius: 5px;
153
146
  --media-text-color: var(--_text-color);
154
- --media-preview-thumbnail-max-width: 150px;
155
- --media-range-track-pointer-border-right: 2px solid #000;
156
147
  --media-control-hover-background: transparent;
157
148
  color: var(--_accent-color);
158
149
  padding: 0 6px;
159
150
  }
160
151
 
161
152
  :host([audio]) media-time-range {
162
- --media-preview-time-border-radius: 5px;
163
- --media-preview-time-padding: 5px;
153
+ --media-preview-time-padding: 1.5px 6px;
154
+ --media-preview-box-margin: 0 0 -5px;
164
155
  }
165
156
 
166
157
  media-time-range:hover {
167
158
  --media-range-thumb-transform: scale(1);
168
159
  }
169
160
 
170
- media-time-range::part(preview-box)::after {
171
- position: absolute;
172
- content: '';
173
- width: 0;
174
- height: 0;
175
- border-style: solid;
176
- border-width: 10px 8.5px 0 8.5px;
177
- border-color: var(--_primary-color) transparent transparent transparent;
178
- top: 100%;
179
- left: 50%;
180
- transform: translate(-50%, -10px);
161
+ media-preview-thumbnail {
162
+ border-bottom-width: 0;
181
163
  }
182
164
 
183
165
  [part~='listbox'] {
@@ -268,12 +250,20 @@ var mediaThemeGerwig = (() => {
268
250
  pointer-events: none;
269
251
  }
270
252
 
253
+ media-control-bar {
254
+ --gradient-steps: hsl(0 0% 0% / 0) 0%, hsl(0 0% 0% / 0.013) 8.1%, hsl(0 0% 0% / 0.049) 15.5%,
255
+ hsl(0 0% 0% / 0.104) 22.5%, hsl(0 0% 0% / 0.175) 29%, hsl(0 0% 0% / 0.259) 35.3%, hsl(0 0% 0% / 0.352) 41.2%,
256
+ hsl(0 0% 0% / 0.45) 47.1%, hsl(0 0% 0% / 0.55) 52.9%, hsl(0 0% 0% / 0.648) 58.8%, hsl(0 0% 0% / 0.741) 64.7%,
257
+ hsl(0 0% 0% / 0.825) 71%, hsl(0 0% 0% / 0.896) 77.5%, hsl(0 0% 0% / 0.951) 84.5%, hsl(0 0% 0% / 0.987) 91.9%,
258
+ hsl(0 0% 0%) 100%;
259
+ }
260
+
271
261
  :host([title]:not([audio])) media-control-bar[slot='top-chrome']::before {
272
262
  content: '';
273
263
  position: absolute;
274
264
  width: 100%;
275
265
  padding-bottom: min(100px, 25%);
276
- background: linear-gradient(#000, transparent);
266
+ background: linear-gradient(to top, var(--gradient-steps));
277
267
  opacity: 0.8;
278
268
  pointer-events: none;
279
269
  }
@@ -285,7 +275,7 @@ var mediaThemeGerwig = (() => {
285
275
  bottom: 0;
286
276
  left: 0;
287
277
  padding-bottom: min(100px, 25%);
288
- background: linear-gradient(transparent, #000);
278
+ background: linear-gradient(to bottom, var(--gradient-steps));
289
279
  opacity: 0.8;
290
280
  z-index: 1;
291
281
  pointer-events: none;
@@ -435,7 +425,7 @@ var mediaThemeGerwig = (() => {
435
425
  }
436
426
 
437
427
  /* Intentionally don't target the div for transition but the children
438
- of the div. Prevents messing with media-chrome's autohide feature. */
428
+ of the div. Prevents messing with media-chrome's autohide feature. */
439
429
  media-loading-indicator + div * {
440
430
  transition: opacity 0.15s;
441
431
  opacity: 1;
@@ -832,7 +822,12 @@ var mediaThemeGerwig = (() => {
832
822
  </template>
833
823
 
834
824
  <template partial="TimeRange">
835
- <media-time-range part="bottom time range" disabled="{{disabled}}" aria-disabled="{{disabled}}"></media-time-range>
825
+ <media-time-range part="bottom time range" disabled="{{disabled}}" aria-disabled="{{disabled}}">
826
+ <media-preview-thumbnail slot="preview"></media-preview-thumbnail>
827
+ <media-preview-chapter-display slot="preview"></media-preview-chapter-display>
828
+ <media-preview-time-display slot="preview"></media-preview-time-display>
829
+ <div slot="preview" part="arrow"></div>
830
+ </media-time-range>
836
831
  </template>
837
832
 
838
833
  <template partial="AudioTrackSelect">
@@ -1129,6 +1124,7 @@ var mediaThemeGerwig = (() => {
1129
1124
  MEDIA_PREVIEW_TIME: "mediaPreviewTime",
1130
1125
  MEDIA_PREVIEW_IMAGE: "mediaPreviewImage",
1131
1126
  MEDIA_PREVIEW_COORDS: "mediaPreviewCoords",
1127
+ MEDIA_PREVIEW_CHAPTER: "mediaPreviewChapter",
1132
1128
  MEDIA_LOADING: "mediaLoading",
1133
1129
  MEDIA_BUFFERED: "mediaBuffered",
1134
1130
  MEDIA_STREAM_TYPE: "mediaStreamType",
@@ -1137,23 +1133,38 @@ var mediaThemeGerwig = (() => {
1137
1133
  MEDIA_RENDITION_LIST: "mediaRenditionList",
1138
1134
  MEDIA_RENDITION_SELECTED: "mediaRenditionSelected",
1139
1135
  MEDIA_AUDIO_TRACK_LIST: "mediaAudioTrackList",
1140
- MEDIA_AUDIO_TRACK_ENABLED: "mediaAudioTrackEnabled"
1136
+ MEDIA_AUDIO_TRACK_ENABLED: "mediaAudioTrackEnabled",
1137
+ MEDIA_CHAPTERS_CUES: "mediaChaptersCues"
1141
1138
  };
1142
- var MediaUIPropsEntries = Object.entries(MediaUIProps);
1143
- var MediaUIAttributes = MediaUIPropsEntries.reduce((dictObj, [key, propName]) => {
1144
- dictObj[key] = `${propName.toLowerCase()}`;
1145
- return dictObj;
1146
- }, {});
1147
- var MediaStateChangeEvents = MediaUIPropsEntries.reduce(
1148
- (dictObj, [key, propName]) => {
1149
- dictObj[key] = `${propName.toLowerCase()}`;
1150
- return dictObj;
1151
- },
1152
- {
1153
- USER_INACTIVE: "userinactivechange",
1154
- BREAKPOINTS_CHANGE: "breakpointchange",
1155
- BREAKPOINTS_COMPUTED: "breakpointscomputed"
1156
- }
1139
+ var MediaUIPropsEntries = (
1140
+ /** @type {[keyof MediaUIProps, string][]} */
1141
+ Object.entries(MediaUIProps)
1142
+ );
1143
+ var MediaUIAttributes = (
1144
+ /** @type {{ [k in keyof MediaUIProps]: string }} */
1145
+ MediaUIPropsEntries.reduce(
1146
+ (dictObj, [key, propName]) => {
1147
+ dictObj[key] = `${propName.toLowerCase()}`;
1148
+ return dictObj;
1149
+ },
1150
+ /** @type {Partial<{ [k in keyof MediaUIProps]: string }>} */
1151
+ {}
1152
+ )
1153
+ );
1154
+ var MediaStateChangeEvents = (
1155
+ /** @type {{ [k in keyof MediaUIProps | 'USER_INACTIVE' | 'BREAKPOINTS_CHANGE' | 'BREAKPOINTS_COMPUTED']: string }} */
1156
+ MediaUIPropsEntries.reduce(
1157
+ (dictObj, [key, propName]) => {
1158
+ dictObj[key] = `${propName.toLowerCase()}`;
1159
+ return dictObj;
1160
+ },
1161
+ /** @type {Partial<{ [k in keyof MediaUIProps | 'USER_INACTIVE' | 'BREAKPOINTS_CHANGE' | 'BREAKPOINTS_COMPUTED']: string }>} */
1162
+ {
1163
+ USER_INACTIVE: "userinactivechange",
1164
+ BREAKPOINTS_CHANGE: "breakpointchange",
1165
+ BREAKPOINTS_COMPUTED: "breakpointscomputed"
1166
+ }
1167
+ )
1157
1168
  );
1158
1169
  var StateChangeEventToAttributeMap = Object.entries(
1159
1170
  MediaStateChangeEvents
@@ -1190,6 +1201,8 @@ var mediaThemeGerwig = (() => {
1190
1201
  return true;
1191
1202
  }
1192
1203
  };
1204
+ var Node = class extends EventTarget2 {
1205
+ };
1193
1206
  var ResizeObserver = class {
1194
1207
  observe() {
1195
1208
  }
@@ -1202,15 +1215,28 @@ var mediaThemeGerwig = (() => {
1202
1215
  createElement: function() {
1203
1216
  return new globalThisShim2.HTMLElement();
1204
1217
  },
1218
+ createElementNS: function() {
1219
+ return new globalThisShim2.HTMLElement();
1220
+ },
1205
1221
  addEventListener() {
1206
1222
  },
1207
1223
  removeEventListener() {
1224
+ },
1225
+ /**
1226
+ *
1227
+ * @param {Event} event
1228
+ * @returns {boolean}
1229
+ */
1230
+ dispatchEvent(event) {
1231
+ return false;
1208
1232
  }
1233
+ // eslint-disable-line no-unused-vars
1209
1234
  };
1210
1235
  var globalThisShim2 = {
1211
1236
  ResizeObserver,
1212
1237
  document: documentShim,
1213
- HTMLElement: class HTMLElement2 extends EventTarget2 {
1238
+ Node,
1239
+ HTMLElement: class HTMLElement2 extends Node {
1214
1240
  },
1215
1241
  DocumentFragment: class DocumentFragment2 extends EventTarget2 {
1216
1242
  },
@@ -1222,12 +1248,47 @@ var mediaThemeGerwig = (() => {
1222
1248
  whenDefined: function() {
1223
1249
  }
1224
1250
  },
1251
+ localStorage: {
1252
+ /**
1253
+ * @param {string} key
1254
+ * @returns {string|null}
1255
+ */
1256
+ getItem(key) {
1257
+ return null;
1258
+ },
1259
+ // eslint-disable-line no-unused-vars
1260
+ /**
1261
+ * @param {string} key
1262
+ * @param {string} value
1263
+ */
1264
+ setItem(key, value) {
1265
+ },
1266
+ // eslint-disable-line no-unused-vars
1267
+ /**
1268
+ * @param {string} key
1269
+ */
1270
+ removeItem(key) {
1271
+ }
1272
+ // eslint-disable-line no-unused-vars
1273
+ },
1225
1274
  CustomEvent: function CustomEvent2() {
1226
1275
  },
1227
1276
  getComputedStyle: function() {
1228
1277
  },
1229
1278
  navigator: {
1230
- languages: []
1279
+ languages: [],
1280
+ get userAgent() {
1281
+ return "";
1282
+ }
1283
+ },
1284
+ /**
1285
+ * @param {string} media
1286
+ */
1287
+ matchMedia(media) {
1288
+ return {
1289
+ matches: false,
1290
+ media
1291
+ };
1231
1292
  }
1232
1293
  };
1233
1294
  var isServer2 = typeof window === "undefined" || typeof window.customElements === "undefined";
@@ -1466,6 +1527,7 @@ var mediaThemeGerwig = (() => {
1466
1527
  );
1467
1528
  }
1468
1529
  }
1530
+ /** @type boolean */
1469
1531
  get booleanValue() {
1470
1532
  return __privateGet2(this, _element).hasAttributeNS(
1471
1533
  __privateGet2(this, _namespaceURI),
@@ -1507,6 +1569,7 @@ var mediaThemeGerwig = (() => {
1507
1569
  get previousSibling() {
1508
1570
  return __privateGet2(this, _nodes)[0].previousSibling;
1509
1571
  }
1572
+ // FIXME: not sure why do we need string serialization here? Just because parent class has type DOMString?
1510
1573
  get value() {
1511
1574
  return __privateGet2(this, _nodes).map((node) => node.textContent).join("");
1512
1575
  }
@@ -1850,7 +1913,8 @@ var mediaThemeGerwig = (() => {
1850
1913
  mediastreamtype: "streamtype"
1851
1914
  };
1852
1915
  var prependTemplate = Document.createElement("template");
1853
- prependTemplate.innerHTML = `
1916
+ prependTemplate.innerHTML = /*html*/
1917
+ `
1854
1918
  <style>
1855
1919
  :host {
1856
1920
  display: inline-block;
@@ -1896,7 +1960,10 @@ var mediaThemeGerwig = (() => {
1896
1960
  if (this.mediaController && !((_a2 = this.mediaController) == null ? void 0 : _a2.breakpointsComputed))
1897
1961
  return;
1898
1962
  if (mutationList.some((mutation) => {
1899
- const target = mutation.target;
1963
+ const target = (
1964
+ /** @type {HTMLElement} */
1965
+ mutation.target
1966
+ );
1900
1967
  if (target === this)
1901
1968
  return true;
1902
1969
  if (target.localName !== "media-controller")
@@ -1918,6 +1985,7 @@ var mediaThemeGerwig = (() => {
1918
1985
  this.addEventListener(MediaStateChangeEvents.BREAKPOINTS_COMPUTED, this.render);
1919
1986
  __privateMethod(this, _upgradeProperty, upgradeProperty_fn).call(this, "template");
1920
1987
  }
1988
+ /** @type {HTMLElement & { breakpointsComputed?: boolean }} */
1921
1989
  get mediaController() {
1922
1990
  return this.renderRoot.querySelector("media-controller");
1923
1991
  }
@@ -1967,6 +2035,7 @@ var mediaThemeGerwig = (() => {
1967
2035
  this.renderer = new TemplateInstance(
1968
2036
  this.template,
1969
2037
  this.props,
2038
+ // @ts-ignore
1970
2039
  this.constructor.processor
1971
2040
  );
1972
2041
  this.renderRoot.textContent = "";
@@ -1998,7 +2067,10 @@ var mediaThemeGerwig = (() => {
1998
2067
  const templateId = this.getAttribute("template");
1999
2068
  if (!templateId || templateId === __privateGet3(this, _prevTemplateId))
2000
2069
  return;
2001
- const rootNode = this.getRootNode();
2070
+ const rootNode = (
2071
+ /** @type HTMLDocument | ShadowRoot */
2072
+ this.getRootNode()
2073
+ );
2002
2074
  const template2 = (_a2 = rootNode == null ? void 0 : rootNode.getElementById) == null ? void 0 : _a2.call(rootNode, templateId);
2003
2075
  if (template2) {
2004
2076
  __privateSet3(this, _prevTemplateId, templateId);