tmg-media-player 0.0.13 → 0.0.14

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 (156) hide show
  1. package/dist/{chunk-GYOLYI5N.js → chunk-2RIHGX2I.js} +4 -4
  2. package/dist/{chunk-NR3EG3JD.js → chunk-3LG4VKXU.js} +23 -23
  3. package/dist/{chunk-QZ2QT2N6.js → chunk-4IUKR4Y5.js} +3 -3
  4. package/dist/chunk-4IUKR4Y5.js.map +1 -0
  5. package/dist/{chunk-UQ3MKRLQ.js → chunk-DKRTF4JZ.js} +2 -2
  6. package/dist/{chunk-LB42O7DY.js → chunk-E3OEEZCP.js} +7 -7
  7. package/dist/{chunk-TKH75DPW.js → chunk-EKT4QKAK.js} +4 -4
  8. package/dist/{chunk-VMPYTHFM.js → chunk-G4SD3DCN.js} +63 -63
  9. package/dist/{chunk-DO5FYNGI.js → chunk-GF3OXHC5.js} +4 -4
  10. package/dist/{chunk-JUARS7T7.js → chunk-HWOZBZGM.js} +36 -36
  11. package/dist/{chunk-36KHZQDB.js → chunk-NKKW77WS.js} +41 -41
  12. package/dist/{chunk-JRJGAC2I.js → chunk-QW7E7VHZ.js} +67 -67
  13. package/dist/{chunk-ADPJDVOX.js → chunk-YAXL5Z6Z.js} +3 -1
  14. package/dist/chunk-YAXL5Z6Z.js.map +1 -0
  15. package/dist/components/controls/airplay.js +1 -1
  16. package/dist/components/controls/backward10.js +1 -1
  17. package/dist/components/controls/bignext.js +1 -1
  18. package/dist/components/controls/bigplaypause.js +1 -1
  19. package/dist/components/controls/bigprevious.js +1 -1
  20. package/dist/components/controls/brightness/index.js +1 -1
  21. package/dist/components/controls/captions.js +1 -1
  22. package/dist/components/controls/capture.js +1 -1
  23. package/dist/components/controls/cast.js +1 -1
  24. package/dist/components/controls/expandminiplayer.js +1 -1
  25. package/dist/components/controls/forward10.js +1 -1
  26. package/dist/components/controls/fullscreen.js +1 -1
  27. package/dist/components/controls/fullscreenlock.js +1 -1
  28. package/dist/components/controls/fullscreenorientation.js +1 -1
  29. package/dist/components/controls/next.js +1 -1
  30. package/dist/components/controls/objectfit.js +1 -1
  31. package/dist/components/controls/pictureinpicture.js +1 -1
  32. package/dist/components/controls/playpause.js +1 -1
  33. package/dist/components/controls/previous.js +1 -1
  34. package/dist/components/controls/removeminiplayer.js +1 -1
  35. package/dist/components/controls/settings.js +1 -1
  36. package/dist/components/controls/theater.js +1 -1
  37. package/dist/components/controls/volume/index.js +1 -1
  38. package/dist/components/holders/airplayplaceholder.js +1 -1
  39. package/dist/components/holders/castplaceholder.js +1 -1
  40. package/dist/components/holders/pipplaceholder.js +1 -1
  41. package/dist/components/notifiers/airplay.js +1 -1
  42. package/dist/components/notifiers/brightness.js +1 -1
  43. package/dist/components/notifiers/captions.js +1 -1
  44. package/dist/components/notifiers/capture.js +1 -1
  45. package/dist/components/notifiers/cast.js +1 -1
  46. package/dist/components/notifiers/fastplay.js +1 -1
  47. package/dist/components/notifiers/fwdbwd.js +1 -1
  48. package/dist/components/notifiers/objectfit.js +1 -1
  49. package/dist/components/notifiers/playbackrate.js +1 -1
  50. package/dist/components/notifiers/playpause.js +1 -1
  51. package/dist/components/notifiers/prevnext.js +1 -1
  52. package/dist/components/notifiers/scrub.js +1 -1
  53. package/dist/components/notifiers/timer.js +1 -1
  54. package/dist/components/notifiers/touchbrightness.js +1 -1
  55. package/dist/components/notifiers/touchvolume.js +1 -1
  56. package/dist/components/notifiers/volume.js +1 -1
  57. package/dist/components/notifiers/z-register.js +10 -10
  58. package/dist/components/screenlock.js +1 -1
  59. package/dist/components/z-register.js +17 -17
  60. package/dist/core/controller.js +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/init.js +1 -1
  63. package/dist/plugs/base/index.js +1 -1
  64. package/dist/plugs/base/slider.js +1 -1
  65. package/dist/plugs/main/disabled/index.js +1 -1
  66. package/dist/plugs/main/lightState/index.js +1 -1
  67. package/dist/plugs/main/playlist/index.js +1 -1
  68. package/dist/plugs/main/skeleton/index.js +1 -1
  69. package/dist/plugs/menus/z-register.js +1 -1
  70. package/dist/plugs/settings/airplay/index.js +1 -1
  71. package/dist/plugs/settings/ambience/index.js +1 -1
  72. package/dist/plugs/settings/auto/index.js +1 -1
  73. package/dist/plugs/settings/brightness/index.js +1 -1
  74. package/dist/plugs/settings/captions/index.js +1 -1
  75. package/dist/plugs/settings/cast/index.js +1 -1
  76. package/dist/plugs/settings/controlPanel/draggable.js +1 -1
  77. package/dist/plugs/settings/controlPanel/index.js +1 -1
  78. package/dist/plugs/settings/css/index.js +1 -1
  79. package/dist/plugs/settings/errors/index.js +1 -1
  80. package/dist/plugs/settings/fastPlay/index.js +1 -1
  81. package/dist/plugs/settings/frame/index.js +1 -1
  82. package/dist/plugs/settings/gesture/base.js +1 -1
  83. package/dist/plugs/settings/gesture/index.js +1 -1
  84. package/dist/plugs/settings/gesture/touch.js +1 -1
  85. package/dist/plugs/settings/gesture/wheel.js +1 -1
  86. package/dist/plugs/settings/keys/index.js +1 -1
  87. package/dist/plugs/settings/locked/index.cjs +2 -0
  88. package/dist/plugs/settings/locked/index.cjs.map +1 -1
  89. package/dist/plugs/settings/locked/index.js +2 -2
  90. package/dist/plugs/settings/metadata/index.js +1 -1
  91. package/dist/plugs/settings/modes/fullscreen.js +1 -1
  92. package/dist/plugs/settings/modes/index.js +1 -1
  93. package/dist/plugs/settings/modes/miniplayer.js +1 -1
  94. package/dist/plugs/settings/modes/pictureInPicture.js +1 -1
  95. package/dist/plugs/settings/modes/theater.js +1 -1
  96. package/dist/plugs/settings/notifiers/index.js +1 -1
  97. package/dist/plugs/settings/objectFit/index.js +1 -1
  98. package/dist/plugs/settings/overlay/index.js +1 -1
  99. package/dist/plugs/settings/persist/index.js +1 -1
  100. package/dist/plugs/settings/playbackRate/index.js +1 -1
  101. package/dist/plugs/settings/poster/index.js +1 -1
  102. package/dist/plugs/settings/settingsView/index.js +5 -5
  103. package/dist/plugs/settings/settingsView/menu/index.js +4 -4
  104. package/dist/plugs/settings/settingsView/menu/panel/main.js +2 -2
  105. package/dist/plugs/settings/settingsView/menu/panel/sub.js +3 -3
  106. package/dist/plugs/settings/settingsView/menu/widgets/base.js +1 -1
  107. package/dist/plugs/settings/settingsView/menu/widgets/button.js +1 -1
  108. package/dist/plugs/settings/settingsView/menu/widgets/color.js +1 -1
  109. package/dist/plugs/settings/settingsView/menu/widgets/dragselect.js +1 -1
  110. package/dist/plugs/settings/settingsView/menu/widgets/group.js +1 -1
  111. package/dist/plugs/settings/settingsView/menu/widgets/index.js +1 -1
  112. package/dist/plugs/settings/settingsView/menu/widgets/input.js +1 -1
  113. package/dist/plugs/settings/settingsView/menu/widgets/limits.js +1 -1
  114. package/dist/plugs/settings/settingsView/menu/widgets/range.js +1 -1
  115. package/dist/plugs/settings/settingsView/menu/widgets/select.js +1 -1
  116. package/dist/plugs/settings/settingsView/menu/widgets/toggle.js +1 -1
  117. package/dist/plugs/settings/sleepTimer/index.js +1 -1
  118. package/dist/plugs/settings/time/index.js +1 -1
  119. package/dist/plugs/settings/timeTravel/index.js +1 -1
  120. package/dist/plugs/settings/toasts/index.js +1 -1
  121. package/dist/plugs/settings/voice/index.cjs +2 -2
  122. package/dist/plugs/settings/voice/index.cjs.map +1 -1
  123. package/dist/plugs/settings/voice/index.js +2 -2
  124. package/dist/plugs/settings/volume/index.js +1 -1
  125. package/dist/plugs/z-register.cjs +4 -2
  126. package/dist/plugs/z-register.cjs.map +1 -1
  127. package/dist/plugs/z-register.js +33 -33
  128. package/dist/super/components/index.js +67 -67
  129. package/dist/super/components/notifiers.js +24 -24
  130. package/dist/super/consts.js +4 -4
  131. package/dist/super/plugs/index.cjs +4 -2
  132. package/dist/super/plugs/index.cjs.map +1 -1
  133. package/dist/super/plugs/index.js +78 -78
  134. package/dist/super/plugs/menus.js +1 -1
  135. package/dist/super/techs.js +4 -4
  136. package/dist/super.cjs +4 -2
  137. package/dist/super.cjs.map +1 -1
  138. package/dist/super.global.js +4 -2
  139. package/dist/super.global.js.map +1 -1
  140. package/dist/super.js +77 -77
  141. package/dist/techs/z-register.js +4 -4
  142. package/dist/tools/player.js +1 -1
  143. package/dist/tools/runtime/index.js +1 -1
  144. package/package.json +1 -1
  145. package/dist/chunk-ADPJDVOX.js.map +0 -1
  146. package/dist/chunk-QZ2QT2N6.js.map +0 -1
  147. /package/dist/{chunk-GYOLYI5N.js.map → chunk-2RIHGX2I.js.map} +0 -0
  148. /package/dist/{chunk-NR3EG3JD.js.map → chunk-3LG4VKXU.js.map} +0 -0
  149. /package/dist/{chunk-UQ3MKRLQ.js.map → chunk-DKRTF4JZ.js.map} +0 -0
  150. /package/dist/{chunk-LB42O7DY.js.map → chunk-E3OEEZCP.js.map} +0 -0
  151. /package/dist/{chunk-TKH75DPW.js.map → chunk-EKT4QKAK.js.map} +0 -0
  152. /package/dist/{chunk-VMPYTHFM.js.map → chunk-G4SD3DCN.js.map} +0 -0
  153. /package/dist/{chunk-DO5FYNGI.js.map → chunk-GF3OXHC5.js.map} +0 -0
  154. /package/dist/{chunk-JUARS7T7.js.map → chunk-HWOZBZGM.js.map} +0 -0
  155. /package/dist/{chunk-36KHZQDB.js.map → chunk-NKKW77WS.js.map} +0 -0
  156. /package/dist/{chunk-JRJGAC2I.js.map → chunk-QW7E7VHZ.js.map} +0 -0
@@ -1,9 +1,9 @@
1
- import {
2
- GroupWidget
3
- } from "./chunk-VWUBKOWE.js";
4
1
  import {
5
2
  BaseMenuPanel
6
3
  } from "./chunk-CD5IDENC.js";
4
+ import {
5
+ GroupWidget
6
+ } from "./chunk-VWUBKOWE.js";
7
7
  import {
8
8
  WidgetRegistry
9
9
  } from "./chunk-P3DOHAVA.js";
@@ -123,4 +123,4 @@ var SubMenuPanel = class extends BaseMenuPanel {
123
123
  export {
124
124
  SubMenuPanel
125
125
  };
126
- //# sourceMappingURL=chunk-GYOLYI5N.js.map
126
+ //# sourceMappingURL=chunk-2RIHGX2I.js.map
@@ -1,3 +1,21 @@
1
+ import {
2
+ TouchTimelineNotifier
3
+ } from "./chunk-AEP5HJTD.js";
4
+ import {
5
+ TouchVolumeNotifier
6
+ } from "./chunk-I4SSEP4U.js";
7
+ import {
8
+ VolumeNotifier
9
+ } from "./chunk-UYDE7QNR.js";
10
+ import {
11
+ FwdBwdNotifier
12
+ } from "./chunk-WW3IT2RA.js";
13
+ import {
14
+ ObjectFitNotifier
15
+ } from "./chunk-CS64PANN.js";
16
+ import {
17
+ PlaybackRateNotifier
18
+ } from "./chunk-B6YJERSR.js";
1
19
  import {
2
20
  PlayPauseNotifier
3
21
  } from "./chunk-UFD3NXRT.js";
@@ -14,14 +32,11 @@ import {
14
32
  TouchBrightnessNotifier
15
33
  } from "./chunk-7UO35PX4.js";
16
34
  import {
17
- TouchTimelineNotifier
18
- } from "./chunk-AEP5HJTD.js";
19
- import {
20
- TouchVolumeNotifier
21
- } from "./chunk-I4SSEP4U.js";
35
+ BrightnessNotifier
36
+ } from "./chunk-J4PCG44Y.js";
22
37
  import {
23
- VolumeNotifier
24
- } from "./chunk-UYDE7QNR.js";
38
+ CancelScrubNotifier
39
+ } from "./chunk-NKIBSEUG.js";
25
40
  import {
26
41
  CaptionsNotifier
27
42
  } from "./chunk-XZNDRHZB.js";
@@ -37,24 +52,9 @@ import {
37
52
  import {
38
53
  FastPlayNotifier
39
54
  } from "./chunk-SC5IBOFE.js";
40
- import {
41
- FwdBwdNotifier
42
- } from "./chunk-WW3IT2RA.js";
43
- import {
44
- ObjectFitNotifier
45
- } from "./chunk-CS64PANN.js";
46
- import {
47
- PlaybackRateNotifier
48
- } from "./chunk-B6YJERSR.js";
49
55
  import {
50
56
  AirPlayNotifier
51
57
  } from "./chunk-A62XDSLJ.js";
52
- import {
53
- BrightnessNotifier
54
- } from "./chunk-J4PCG44Y.js";
55
- import {
56
- CancelScrubNotifier
57
- } from "./chunk-NKIBSEUG.js";
58
58
  import {
59
59
  ComponentRegistry
60
60
  } from "./chunk-TUZDTGTA.js";
@@ -83,4 +83,4 @@ for (const Comp of [
83
83
  TimerNotifier
84
84
  ])
85
85
  ComponentRegistry.register(Comp);
86
- //# sourceMappingURL=chunk-NR3EG3JD.js.map
86
+ //# sourceMappingURL=chunk-3LG4VKXU.js.map
@@ -65,7 +65,7 @@ var VoicePlug = class extends BasePlug {
65
65
  }, { init: true, signal: this.signal });
66
66
  this.ctlr.state.on("mediaIntersecting", () => this.ctlr.debounce("syncingIntersectingVoiceListeners", this.syncListeners, 300, false, this.signal), { signal: this.signal });
67
67
  this.ctlr.config.on("settings.voice.active", this.handleActive, { signal: this.signal });
68
- this.ctlr.config.on("settings.voice.muted", ({ value }, { type, actions, autoClose } = this.getListenerOptions()) => this.config.active.value && (value ? this.recognition?.abort() : this.start(), this.ctlr.plug("settings.toasts")?.toast?.update(this.IDS.LISTENER, this.asking ? { type, actions, autoClose, render: this.getListenerSpeech() } : { type, actions })), { signal: this.signal });
68
+ this.ctlr.config.on("settings.voice.muted", ({ value }, { icon, type, actions, autoClose } = this.getListenerOptions()) => this.config.active.value && (value ? this.recognition?.abort() : this.start(), this.ctlr.plug("settings.toasts")?.toast?.update(this.IDS.LISTENER, this.asking ? { type, actions, autoClose, icon, render: this.getListenerSpeech() } : { type, actions })), { signal: this.signal });
69
69
  this.ctlr.config.on("settings.voice.wakeWord", ({ value }) => !this.state.listening && (value ? this.config.active.value && (this.start(), this.ctlr.plug("settings.toasts")?.toast?.update(this.IDS.LISTENER, { render: this.getListenerSpeech() })) : this.stop()), { signal: this.signal });
70
70
  this.ctlr.config.on("settings.voice.behavior", ({ value }) => this.config.active.value && (value === "persistent" ? this.ctlr.plug("settings.toasts")?.toast?.(this.getListenerSpeech(), this.getListenerOptions()) : t007.toast?.dismiss(this.IDS.LISTENER)), { signal: this.signal });
71
71
  this.ctlr.config.on("settings.voice.listenerPos.value", ({ value }) => this.ctlr.plug("settings.toasts")?.toast?.update(this.IDS.LISTENER, { position: value }), { signal: this.signal });
@@ -200,7 +200,7 @@ var VoicePlug = class extends BasePlug {
200
200
  const paths = this.getValidPaths();
201
201
  if (!paths.length) return;
202
202
  const inputHtml = `<input type="text" class="tmg-media-voice-path-input") placeholder="...text"/>`;
203
- this.ctlr.plug("settings.toasts")?.toast?.(`${crumbHtml}Say these:<br>${inputHtml} \u2022 ${paths.map((p) => this.linked(p.split(".").pop())).join(" \u2022 ")}`, this.getPredictorOptions(actions));
203
+ this.ctlr.plug("settings.toasts")?.toast?.(`${crumbHtml}<small style="font-weight: 500;"><i>Say these:</i></small><br>${inputHtml} \u2022 ${paths.map((p) => this.linked(p.split(".").pop())).join(" \u2022 ")}`, this.getPredictorOptions(actions));
204
204
  }
205
205
  execute(path, transcript, cleaned = transcript.replace(/[-\s]/g, ""), isNav = false, isSubmit = false) {
206
206
  const value = this.parse(transcript, cleaned, path, isNav);
@@ -302,4 +302,4 @@ var clame = (suffix) => `.tmg-media-voice-${suffix}`;
302
302
  export {
303
303
  VoicePlug
304
304
  };
305
- //# sourceMappingURL=chunk-QZ2QT2N6.js.map
305
+ //# sourceMappingURL=chunk-4IUKR4Y5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ts/plugs/settings/voice/index.ts"],"sourcesContent":["import { BasePlug } from \"@plugs/base\";\nimport type { Controller } from \"@core/controller\";\nimport { force, getPath, getPaths, isLeafPath, setPath } from \"sia-reactor/utils\";\nimport { limited } from \"@utils/fn\";\nimport type { VoiceStage, VoiceConfig, VoiceState } from \"./types\";\nimport { VOICE_BUILD } from \"./build\";\nimport { capitalize, fuzzyMatch as match, getLevenshteinSimilarity, uncamelize } from \"@utils/str\";\nimport { formatActionForDisplay } from \"@utils/keys\";\nimport { type ToastOptions } from \"@t007/toast\";\nimport { REvent } from \"sia-reactor\";\nimport { CtlrConfig } from \"@defs/config\";\nimport { tutorialOpts } from \"../toasts\";\nimport { Action } from \"@defs/actions\";\nimport { IconRegistry } from \"@core/registries\";\n\nexport class VoicePlug extends BasePlug<VoiceConfig, VoiceState> {\n public static readonly plugName = \"voice\";\n public static readonly BUILD = VOICE_BUILD;\n protected recognition?: any;\n protected teachBasics = limited((_id?: string) => ((_id = this.ctlr.plug(\"settings.toasts\")?.toast?.(`Follow the predictor guides at the ${uncamelize(this.config.predictorPos.value, \"-\")}. Click ⚙ for settings`, { ...tutorialOpts(() => (this.teachBasics.block(), t007.toast?.dismiss(_id))), signal: this.signal })), { key: \"tmg_voice_tut_1\", maxTimes: 6, perSession: 2 }));\n protected snublist: Array<Action[\"id\"]> = [\"voiceToggleOn\", \"voiceToggleOff\"] as const;\n protected readonly IDS = { LISTENER: \"tmg-media-voice-listener\" + this.ctlr.config.id, PREDICTOR: \"tmg-media-voice-predictor\" + this.ctlr.config.id };\n protected get root() {\n return { media: this.ctlr.media, settings: this.ctlr.settings };\n }\n\n constructor(ctlr: Controller, config = ctlr.settings.voice) {\n super(ctlr, config, { context: \"*\", listening: false });\n }\n\n public override mount(): void {\n // Variables Assignment\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognitn;\n if (!SpeechRecognition) return;\n this.recognition = new SpeechRecognition();\n Object.assign(this.recognition, { continuous: true, interimResults: true, onresult: this.handleResult, onend: this.handleEnd, onerror: this.handleError });\n }\n\n public override wire(): void {\n // Variables Assignment\n const container = this.ctlr.plug(\"settings.toasts\")?.container;\n // Event Listeners\n container?.addEventListener(\"click\", this.handleLinkClick, { signal: this.signal });\n container?.addEventListener(\"click\", this.handleInputEvent, { signal: this.signal });\n container?.addEventListener(\"keydown\", this.handleInputEvent, { signal: this.signal });\n container?.addEventListener(\"wheel\", this.stayWoke, { signal: this.signal, passive: true });\n container?.addEventListener(\"mousemove\", this.stayWoke, { signal: this.signal });\n container?.addEventListener(\"touchmove\", this.stayWoke, { signal: this.signal, passive: true });\n // State Watchers\n this.state.watch(\"context\", this.onContext, { signal: this.signal });\n // ----- Listeners\n this.state.on(\"listening\", ({ value }) => this.media.container.classList.toggle(\"tmg-media-voice-listening\", value), { signal: this.signal });\n // Ctlr Media Watchers\n this.media.watch(\"tech\", () => (this.media.features.voice ||= !this.recognition), { init: true, signal: this.signal });\n // ---- State Listeners\n this.ctlr.state.on(\"mediaIntersecting\", () => this.ctlr.debounce(\"syncingIntersectingVoiceListeners\", this.syncListeners, 300, false, this.signal), { signal: this.signal });\n // ---- Config -------\n this.ctlr.config.on(\"settings.voice.active\", this.handleActive, { signal: this.signal });\n this.ctlr.config.on(\"settings.voice.muted\", ({ value }, { icon, type, actions, autoClose } = this.getListenerOptions()) => this.config.active.value && (value ? this.recognition?.abort() : this.start(), this.ctlr.plug(\"settings.toasts\")?.toast?.update(this.IDS.LISTENER, this.asking ? { type, actions, autoClose, icon, render: this.getListenerSpeech() } : { type, actions })), { signal: this.signal });\n this.ctlr.config.on(\"settings.voice.wakeWord\", ({ value }) => !this.state.listening && (value ? this.config.active.value && (this.start(), this.ctlr.plug(\"settings.toasts\")?.toast?.update(this.IDS.LISTENER, { render: this.getListenerSpeech() })) : this.stop()), { signal: this.signal });\n this.ctlr.config.on(\"settings.voice.behavior\", ({ value }) => this.config.active.value && (value === \"persistent\" ? this.ctlr.plug(\"settings.toasts\")?.toast?.(this.getListenerSpeech(), this.getListenerOptions()) : t007.toast?.dismiss(this.IDS.LISTENER)), { signal: this.signal });\n this.ctlr.config.on(\"settings.voice.listenerPos.value\", ({ value }) => this.ctlr.plug(\"settings.toasts\")?.toast?.update(this.IDS.LISTENER, { position: value }), { signal: this.signal });\n this.ctlr.config.on(\"settings.voice.predictorPos.value\", ({ value }) => this.ctlr.plug(\"settings.toasts\")?.toast?.update(this.state.listening ? this.IDS.PREDICTOR : this.IDS.LISTENER, { position: value }), { signal: this.signal });\n this.ctlr.config.on(\"disabled\", this.syncListeners, { signal: this.signal });\n // Post Wiring\n this.ctlr.registerAction(\"voiceQuit\", { voice: { stage: \"anytime\" } });\n this.ctlr.registerAction(\"voiceMute\", { voice: { stage: \"anytime\" } });\n this.ctlr.registerAction(\"voiceSleep\", { fn: this.sleep });\n this.ctlr.registerAction(\"voiceSubmit\", { fn: () => this.submit(), voice: { stage: \"pre-route\" } });\n this.ctlr.registerAction(\"voiceHistoryFirst\", { fn: () => this.goTo(\"*\") });\n this.ctlr.registerAction(\"voiceHistoryPrevious\", { fn: this.goBack });\n this.ctlr.registerAction(\"voiceHistoryNext\", { fn: this.goForward });\n this.ctlr.registerAction(\"voiceHistoryLast\", { fn: () => this.goTo(this.state.context) });\n this.ctlr.registerAction(\"voiceHistoryClear\", { fn: () => this.resetContext(false) });\n this.ctlr.payload.wired ? this.syncListeners() : this.ctlr.state.wonce(\"readyState\", this.syncListeners, { signal: this.signal }); // #HEAVY: waits for !lightState. If wake word is enabled, start the engine immediately in \"sleep\" mode\n super.wire();\n }\n\n protected handleResult(e: any): void {\n let transcript = \"\";\n if (!this.config.muted) for (let i = e.resultIndex; i < e.results.length; ++i) transcript += e.results[i][0].transcript;\n transcript = transcript.trim().toLowerCase();\n if (`${e.resultIndex}-${transcript}` === this.prevRes) return; // Block the interim/final duplicate fire\n this.prevRes = `${e.resultIndex}-${transcript}`;\n // 1. Wake Word Detection\n if (transcript && !this.state.listening) {\n const token = match([this.config.wakeWord.toLowerCase()], transcript, this.config.inputs.accuracy);\n if (token) {\n this.wakeUp();\n const idx = transcript.indexOf(token);\n transcript = idx !== -1 ? transcript.substring(idx + token.length).trim() : \"\"; // Remove the wake word from the transcript\n }\n if ((!token || !transcript) && this.config.behavior.value === \"strict\") return;\n }\n // 2. Update the listener UI.\n if (!this.config.muted) this.ctlr.plug(\"settings.toasts\")?.toast?.(transcript ? `${transcript}${!this.state.listening ? `... Say \"${this.linked(this.config.wakeWord)}\"!` : \"\"}` : this.getListenerSpeech(undefined, this.state.listening ? \"Didn't catch that...\" : undefined), this.getListenerOptions(true));\n this.ctlr.debounce(\"voiceSleeping\", this.sleep, this.config.timeout, false, this.signal);\n // 3. Anytime-stage actions (run regardless of listening state)\n transcript && this.process(transcript);\n }\n private prevRes = \"\";\n protected handleEnd(): void {\n this.config && this.config.active.value && this.start();\n }\n protected handleError(e: any): void {\n if (e.error.endsWith(\"not-allowed\")) this.config.muted ? this.start() : (this.config.active.value = false), this.ctlr.plug(\"settings.toasts\")?.toast?.error(\"Microphone access revoked. Please check your settings.\");\n }\n protected handleActive({ value }: REvent<CtlrConfig, \"settings.voice.active\">): void {\n if (value === false) {\n this.state.listening = false;\n this.recognition?.abort(), t007.toast?.dismiss(this.IDS.PREDICTOR), t007.toast?.dismiss(this.IDS.LISTENER);\n } else if (this.shouldListen()) value === \"passive\" ? (this.sleep(), this.start()) : (this.wakeUp(), this.start());\n }\n\n public syncListeners(): void {\n if (!this.shouldListen()) (this.state.listening = false), this.recognition?.abort(), t007.toast?.dismiss(this.IDS.PREDICTOR), t007.toast?.dismiss(this.IDS.LISTENER);\n else this.config.active.value === true ? (this.wakeUp(), this.start()) : this.config.active.value === \"passive\" && this.start();\n }\n protected shouldListen(): boolean {\n return this.ctlr.payload.wired && !this.ctlr.config.disabled && (this.config.muted || this.ctlr.state.mediaIntersecting);\n }\n\n protected async askPermission(): Promise<\"granted\" | \"denied\" | \"cancelled\"> {\n const state = (await navigator.permissions?.query({ name: \"microphone\" }).catch(() => null))?.state ?? \"prompt\";\n if (state === \"granted\" || state === \"denied\") return state;\n // prettier-ignore\n return new Promise((res, _, req?: () => void, i = 0) => ((req = () => this.ctlr.plug(\"settings.toasts\")?.toast?.info(\"We need permission to use Voice Control\", { id: this.IDS.LISTENER, autoClose: false, closeButton: true, actions: { OK: () => navigator.mediaDevices.getUserMedia({ audio: true }).then((s) => (s.getTracks().forEach((t) => t.stop()), res(\"granted\"))).catch(() => (this.ctlr.plug(\"settings.toasts\")?.toast?.warn(\"Grant permissions to use Voice Control\", { id: this.IDS.LISTENER, autoClose: false, actions: { Retry: req!, } }), ++i > 3 && res(\"cancelled\"))) }, onClose: () => res(\"cancelled\") }))())); // #EXTRA-MILE: doing the most with the least\n }\n private asking = false;\n public async start(): Promise<void> {\n let state = this.config.muted ? \"granted\" : ((this.asking = true), await this.askPermission());\n if (this.config.muted || (state === \"granted\" && !this.state.listening)) this.config.behavior.value === \"persistent\" ? (!this.config.muted || !t007.toast.isActive(this.IDS.LISTENER)) && this.ctlr.plug(\"settings.toasts\")?.toast?.(this.getListenerSpeech(), this.getListenerOptions()) : t007.toast?.dismiss(this.IDS.LISTENER);\n try {\n (this.asking = false), state === \"granted\" ? !this.config.muted && this.recognition?.start() : this.handleError({ error: \"not-allowed\" });\n } catch (e) {\n this.ctlr.log(e, \"error\", true);\n } // Silently swallows the InvalidStateError since we might call when already on due to wake word\n }\n public stop(): void {\n this.sleep(), this.recognition?.abort();\n }\n public wakeUp(): void {\n if (this.config.active.value !== true) return void (this.config.active.value = true);\n if (this.state.listening) return;\n this.state.listening = true;\n this.resetContext();\n this.teachBasics(), this.ctlr.plug(\"settings.toasts\")?.toast?.(this.getListenerSpeech(false), this.getListenerOptions());\n this.ctlr.debounce(\"voiceSleeping\", this.sleep, this.config.timeout, false, this.signal);\n }\n public sleep(): void {\n if (this.config.active.value === false) return;\n if (this.config.active.value !== \"passive\") return void (this.config.active.value = this.config.wakeWord ? \"passive\" : false);\n this.state.listening = false;\n this.resetContext();\n t007.toast?.dismiss(this.IDS.PREDICTOR), !this.config.active.value || this.config.behavior.value !== \"persistent\" ? t007.toast?.dismiss(this.IDS.LISTENER) : this.ctlr.plug(\"settings.toasts\")?.toast?.(this.getListenerSpeech(), this.getListenerOptions(true));\n }\n\n protected dispatchActions(stage: VoiceStage, transcript: string): boolean {\n const acc = this.config.inputs.accuracy;\n for (const action of Object.values(this.ctlr.actions.entries)) {\n const triggers = this.config.commands[action.id];\n if (!this.snublist.includes(action.id) && (action.voice?.stage ?? \"post-route\") === stage && triggers?.length && match(triggers, transcript, acc)) return this.ctlr.runAction(action.id), this.ctlr.plug(\"settings.toasts\")?.toast?.success(`Executed <i>${action.label || action.id}</i>`, { id: this.IDS.LISTENER, autoClose: this.config.behavior.value !== \"persistent\" }), true;\n }\n return false;\n }\n protected process(transcript: string, cleaned = transcript.replace(/[-\\s]/g, \"\"), isSubmit = false, dormant = !this.state.listening): void {\n if ((!this.config.inputs.commandsDisabled && this.dispatchActions(\"anytime\", transcript)) || dormant) return;\n // --- 1. PRE-ROUTE STAGE ---\n if (!this.config.inputs.commandsDisabled && this.dispatchActions(\"pre-route\", transcript)) return;\n // --- 2. LEAF EXECUTION ---\n if (this.isLeaf(this.state.context)) return this.execute(this.state.context, transcript, cleaned, false);\n // --- 3. PATH EXTRACTION (PRIORITY) ---\n const paths = this.getValidPaths();\n let matched: string | null = null,\n highest = 0;\n if (paths.length)\n for (let i = 0; i < paths.length; i++) {\n const leaf = paths[i].split(\".\").pop()!.toLowerCase();\n if (cleaned === leaf) {\n matched = paths[i];\n break;\n }\n const score = getLevenshteinSimilarity(leaf, transcript);\n if (score > this.config.inputs.accuracy && score > highest) (highest = score), (matched = paths[i]);\n } // Fuzzy Match: Check if the user said the last word of any valid path\n if (matched) return void ((this.state.context = matched), this.isLeaf(matched) && this.execute(matched, transcript, cleaned, true)); // If a S.I.A path strongly matches what they said, TAKE IT. Bypasses commands completely.\n else if (isSubmit) {\n const path = this.state.context === \"*\" ? transcript : `${this.state.context}.${transcript}`,\n val = this.ctlr.isLogicPath(path) ? getPath(this.root as any, path) : undefined;\n if (val !== undefined) return void ((this.state.context = path), this.isLeaf(path, val) && this.execute(path, transcript, cleaned, true)); // Hey dev or explorer, here u go!\n }\n if (paths.length) {\n const pathInput = this.ctlr.plug(\"settings.toasts\")?.container?.querySelector<HTMLInputElement>(\".tmg-media-voice-path-input\");\n if (pathInput) pathInput.value = transcript.trim();\n }\n // --- 4. POST-ROUTE STAGE ---\n if (!this.config.inputs.commandsDisabled) this.dispatchActions(\"post-route\", transcript);\n }\n protected predict(): void {\n const crumbHtml = this.history.length < 2 ? \"\" : `<div class=\"tmg-media-voice-sticky-crumb\">` + this.history.map((p, idx, _, active = idx === this.historyIdx) => `<small><i style=\"${active ? \"font-weight: bold;\" : \"opacity: 0.8;\"}\">${this.linked(p === \"*\" ? \"Root\" : capitalize(p.split(\".\").pop()!), p, true)}</i></small>`).join(\" <span style='opacity: 0.4;'><small>></small></span> \") + `</div>`,\n actions: Record<string, () => void> = {};\n if (this.history.length > 1) actions[`<span title='Reset Context${formatActionForDisplay(this.settings.keys.shortcuts.voiceHistoryClear, this.config.commands.voiceHistoryClear)}'>↻</span>`] = () => this.resetContext(false);\n if (this.historyIdx > 0) actions[`<span title='Go Back${formatActionForDisplay(this.settings.keys.shortcuts.voiceHistoryPrevious, this.config.commands.voiceHistoryPrevious)}'>‹</span>`] = this.goBack;\n if (this.historyIdx < this.history.length - 1) actions[`<span title='Go Forward${formatActionForDisplay(this.settings.keys.shortcuts.voiceHistoryNext, this.config.commands.voiceHistoryNext)}'>›</span>`] = this.goForward;\n if (this.isLeaf(this.state.context)) {\n const value = getPath(this.root as any, this.state.context as any),\n isArray = Array.isArray(value),\n type = isArray ? \"array\" : typeof value,\n showInput = this.config.inputs.strict.value === true || (this.config.inputs.strict.value === \"auto\" && type !== \"boolean\"),\n showSubmit = this.config.inputs.strict.value === true || (this.config.inputs.strict.value === \"auto\" && type === \"string\"),\n display = isArray ? value.join(\", \") : value ?? \"\",\n inputHtml = showInput ? `<div class=\"tmg-media-voice-input-wrap\"><input type=\"${type === \"number\" ? \"number\" : \"text\"}\" class=\"tmg-media-voice-exact-input\") placeholder=\"${display || \"Type value...\"}\" value=\"${display}\"/>${showSubmit ? `<button type=\"button\" title='Submit ${formatActionForDisplay(this.settings.keys.shortcuts.voiceSubmit, this.config.commands.voiceSubmit)}' class=\"tmg-media-voice-exact-submit\")>↳</button>` : \"\"}</div>` : \"\",\n // prettier-ignore\n hints = type === \"boolean\" ? `${this.config.commands.voiceToggleOn?.slice(0, 2).map((v) => this.linked(v)).join(\", \")} or ${this.config.commands.voiceToggleOff?.slice(0, 2).map((v) => this.linked(v)).join(\", \")} ${inputHtml}` : type === \"number\" ? `a number (like ${this.linked(\"0\")}, ${this.linked(\"50\")}) ${inputHtml}` : isArray ? `comma-separated values ${inputHtml}` : `the exact text ${inputHtml}`;\n return void this.ctlr.plug(\"settings.toasts\")?.toast?.(`${crumbHtml}Try saying ${hints}`, this.getPredictorOptions(actions));\n }\n const paths = this.getValidPaths();\n if (!paths.length) return;\n const inputHtml = `<input type=\"text\" class=\"tmg-media-voice-path-input\") placeholder=\"...text\"/>`;\n this.ctlr.plug(\"settings.toasts\")?.toast?.(`${crumbHtml}<small style=\"font-weight: 500;\"><i>Say these:</i></small><br>${inputHtml} • ${paths.map((p) => this.linked(p.split(\".\").pop()!)).join(\" • \")}`, this.getPredictorOptions(actions));\n }\n protected execute(path: string, transcript: string, cleaned = transcript.replace(/[-\\s]/g, \"\"), isNav = false, isSubmit = false): void {\n const value = this.parse(transcript, cleaned, path, isNav);\n if (value === null) return;\n const strict = this.config.inputs.strict.value === true || (this.config.inputs.strict.value === \"auto\" && typeof value === \"string\");\n if (strict && !isSubmit) {\n const input = this.ctlr.plug(\"settings.toasts\")?.container?.querySelector<HTMLInputElement>(clame(\"exact-input\"));\n if (input) input.value = Array.isArray(value) ? value.join(\", \") : String(value);\n return void this.ctlr.plug(\"settings.toasts\")?.toast?.update(this.IDS.LISTENER, { render: transcript || String(value) });\n } // Auto-Strict: Blocks execution for strings only (or everything if true)\n setPath(this.root as any, path as any, value), this.ctlr.plug(\"settings.toasts\")?.toast?.success(`Set <i>${path.split(\".\").join(\" > \")}</i> to ${Array.isArray(value) ? `[${value.join(\", \")}]` : value}`, { id: this.IDS.LISTENER, autoClose: this.config.behavior.value !== \"persistent\" }), this.goBack();\n }\n protected parse(transcript: string, cleaned = transcript.replace(/[-\\s]/g, \"\"), path: string, isNav = false): any {\n const val = getPath(this.root as any, path as any),\n type = typeof val;\n if (type === \"boolean\") {\n if (isNav && this.config.inputs.autoToggles) return !val;\n return match(this.config.commands.voiceToggleOn!, transcript, this.config.inputs.accuracy) ? true : match(this.config.commands.voiceToggleOff!, transcript, this.config.inputs.accuracy) ? false : null;\n }\n if (type === \"number\") {\n const match = transcript.replace(/,/g, \"\").match(/-?\\d+(\\.\\d+)?/);\n return match ? Number(match[0]) : null;\n }\n if (Array.isArray(val) || type === \"string\") {\n const leaf = path.split(\".\").pop()!.toLowerCase(),\n rgx = new RegExp(`^(set|change)\\\\s+${leaf}\\\\s+to\\\\s+`, \"i\"),\n val = transcript.replace(rgx, \"\").trim();\n if (isNav && !rgx.test(transcript)) if (cleaned === leaf || getLevenshteinSimilarity(leaf, transcript) > this.config.inputs.accuracy) return null;\n return val ? (type === \"string\" ? val : val.split(/\\s*(?:,|and)\\s*/i).filter(Boolean)) : null;\n }\n return null;\n }\n\n protected history: string[] = [\"*\"];\n protected historyIdx: number = 0;\n protected resetContext(direct = this.config.inputs.direct): void {\n if (direct) (this.history = [\"*\", \"media\", \"media.intent\"]), (this.historyIdx = 2), force(() => (this.state.context = \"media.intent\"));\n else (this.history = [\"*\"]), (this.historyIdx = 0), force(() => (this.state.context = \"*\"));\n }\n protected onContext(value: string): void {\n if (this.history[this.historyIdx] !== this.state.context) {\n const idx = this.history.indexOf(this.state.context);\n if (idx !== -1) this.historyIdx = idx;\n else (this.history = this.history.slice(0, this.historyIdx + 1)), this.history.push(value), (this.historyIdx = this.history.length - 1);\n }\n this.state.listening && this.predict(); // The single source of truth for rendering the UI\n }\n protected goBack(): void {\n if (this.historyIdx > 0) this.state.context = this.history[--this.historyIdx];\n }\n protected goForward(): void {\n if (this.historyIdx < this.history.length - 1) this.state.context = this.history[++this.historyIdx];\n }\n protected goTo(path: string): void {\n this.state.context = path;\n }\n\n protected linked(text: string, value = text.toLowerCase(), isGoto = false): string {\n return `<u class=\"tmg-media-voice-link\" ${isGoto ? \"data-goto\" : \"data-cmd\"}=\"${value}\" tabindex=\"0\" style=\"cursor:pointer; text-decoration-color: currentColor;\">${text}</u>`;\n }\n protected handleLinkClick(e: MouseEvent, target = e.target as HTMLElement): void {\n if (!target.matches?.(clame(\"link\"))) return;\n e.preventDefault(), e.stopPropagation();\n if (target.dataset.goto) return this.goTo(target.dataset.goto);\n const cmd = target.dataset.cmd!;\n this.ctlr.plug(\"settings.toasts\")?.toast?.(cmd, { id: this.IDS.LISTENER }); // Instantly update the listener toast to show they \"clicked/said\" it\n cmd === this.config.wakeWord.toLowerCase() ? this.wakeUp() : this.process(cmd); // Pipe it straight into the process engine as if they spoke it!\n }\n protected handleInputEvent(e: Event, target = e.target as HTMLElement, isEnter = e.type === \"keydown\" && (e as KeyboardEvent).key === \"Enter\", isClick = e.type === \"click\"): void {\n this.stayWoke(e);\n if ((isEnter && target?.matches?.(clame(\"exact-input\"))) || (isClick && target?.matches?.(clame(\"exact-submit\")))) e.preventDefault(), e.stopPropagation(), this.submit(target.closest?.(clame(\"input-wrap\"))?.querySelector?.<HTMLInputElement>(clame(\"exact-input\")));\n else if (isEnter && target?.matches?.(clame(\"path-input\"))) e.preventDefault(), e.stopPropagation(), this.submit(target as HTMLInputElement, undefined, true);\n }\n protected submit(input = this.ctlr.plug(\"settings.toasts\")?.container?.querySelector<HTMLInputElement>(clame(\"exact-input\")), render = input?.value.trim(), process = false): void {\n if (input && render) this.ctlr.plug(\"settings.toasts\")?.toast?.update(this.IDS.LISTENER, { render: render, type: undefined }), !process ? this.execute(this.state.context, render, undefined, false, true) : this.process(render, undefined, true); // Execute with isSubmit = true\n }\n protected stayWoke(e: Event): void {\n this.state.listening && this.ctlr.throttle(\"voiceWoking\", () => e.composedPath().some((el) => (el as HTMLElement)?.matches?.(`:is([id=\"${this.IDS.PREDICTOR}\"],[id=\"${this.IDS.LISTENER}\"])`)) && this.ctlr.debounce(\"voiceSleeping\", this.sleep, this.config.timeout, false, this.signal), 100);\n }\n\n protected isLeaf(path: string, val = path !== \"*\" && getPath(this.root as any, path as any)): boolean {\n return (val && Array.isArray(val)) || isLeafPath(this.root as any, path as any, undefined, val);\n }\n protected getValidPaths(): string[] {\n // prettier-ignore\n return getPaths(this.root as any, this.state.context as any, { depth: 1 }).filter(this.ctlr.isLogicPath).sort((a, b) => a.localeCompare(b));\n }\n protected getListenerOptions(transient = false): ToastOptions {\n const actions: Record<string, () => void> = { [this.config.muted ? `<span title='Unmute my Voice'>${IconRegistry.get(\"volumemuted\", true)}</span>` : `<span title='Mute my Voice${formatActionForDisplay(this.settings.keys.shortcuts.voiceMute, this.config.commands.voiceMute)}'>${IconRegistry.get(\"volumehigh\", true)}</span>`]: () => (this.config.muted = !this.config.muted) };\n return { id: this.IDS.LISTENER, icon: \"🎙️\", position: this.state.listening ? this.config.listenerPos.value : this.config.predictorPos.value, autoClose: transient ? this.config.behavior.value !== \"persistent\" : false, closeButton: true, dragToClose: false, actions, onClose: (elapsed) => !elapsed && (this.config.active.value = false), type: this.config.muted ? \"warning\" : undefined, signal: this.signal };\n }\n protected getPredictorOptions(actions: ToastOptions[\"actions\"]): ToastOptions {\n return { id: this.IDS.PREDICTOR, icon: \"✨\", position: this.config.predictorPos.value, autoClose: false, closeButton: true, dragToClose: false, animation: \"fade\", actions, onClose: (elapsed) => !elapsed && this.sleep(), signal: this.signal };\n }\n protected getListenerSpeech(full = !this.state.listening, firstHalf = \"Listening...\", secondHalf = `Say \"${this.linked(this.config.wakeWord)}\" to wake me up!`, first = true): string {\n return full ? `${firstHalf} ${secondHalf}` : first ? firstHalf : secondHalf;\n }\n\n public override onDestroy(): void {\n this.stop(), super.onDestroy();\n }\n}\nconst clame = (suffix: string) => `.tmg-media-voice-${suffix}`;\n\nexport type * from \"./types\";\nexport * from \"./build\";\n\ndeclare module \"@defs/registries\" {\n interface PlugRegistryMap {\n \"settings.voice\": typeof VoicePlug;\n }\n}\n\ndeclare module \"@defs/config\" {\n interface Settings {\n voice: VoiceConfig;\n }\n}\n\ndeclare module \"@defs/contract\" {\n interface MediaExtraFeatures {\n voice: boolean;\n }\n}\n"],"mappings":"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","names":["inputHtml","val"]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SettingsMenu
3
- } from "./chunk-TKH75DPW.js";
3
+ } from "./chunk-EKT4QKAK.js";
4
4
  import {
5
5
  SETTINGS_BUILD
6
6
  } from "./chunk-RGGVFSC3.js";
@@ -164,4 +164,4 @@ __publicField(SettingsViewPlug, "BUILD", SETTINGS_BUILD);
164
164
  export {
165
165
  SettingsViewPlug
166
166
  };
167
- //# sourceMappingURL=chunk-UQ3MKRLQ.js.map
167
+ //# sourceMappingURL=chunk-DKRTF4JZ.js.map
@@ -1,3 +1,9 @@
1
+ import {
2
+ ShakaTech
3
+ } from "./chunk-MC7MLH5K.js";
4
+ import {
5
+ VimeoTech
6
+ } from "./chunk-R67WTAPQ.js";
1
7
  import {
2
8
  YouTubeTech
3
9
  } from "./chunk-YHLOLK6U.js";
@@ -7,12 +13,6 @@ import {
7
13
  import {
8
14
  HLSTech
9
15
  } from "./chunk-4ZILVW76.js";
10
- import {
11
- ShakaTech
12
- } from "./chunk-MC7MLH5K.js";
13
- import {
14
- VimeoTech
15
- } from "./chunk-R67WTAPQ.js";
16
16
  import {
17
17
  HTML5Tech
18
18
  } from "./chunk-5DNRFVFX.js";
@@ -31,4 +31,4 @@ for (const Tech of [
31
31
  VimeoTech
32
32
  ])
33
33
  TechRegistry.register(Tech);
34
- //# sourceMappingURL=chunk-LB42O7DY.js.map
34
+ //# sourceMappingURL=chunk-E3OEEZCP.js.map
@@ -1,9 +1,9 @@
1
+ import {
2
+ SubMenuPanel
3
+ } from "./chunk-2RIHGX2I.js";
1
4
  import {
2
5
  MainMenuPanel
3
6
  } from "./chunk-GEKGI65C.js";
4
- import {
5
- SubMenuPanel
6
- } from "./chunk-GYOLYI5N.js";
7
7
  import {
8
8
  OrderedRegistry
9
9
  } from "./chunk-TUZDTGTA.js";
@@ -195,4 +195,4 @@ __publicField(SettingsMenu, "componentName", "SettingsMenu");
195
195
  export {
196
196
  SettingsMenu
197
197
  };
198
- //# sourceMappingURL=chunk-TKH75DPW.js.map
198
+ //# sourceMappingURL=chunk-EKT4QKAK.js.map
@@ -1,3 +1,21 @@
1
+ import {
2
+ TouchTimelineNotifier
3
+ } from "./chunk-AEP5HJTD.js";
4
+ import {
5
+ TouchVolumeNotifier
6
+ } from "./chunk-I4SSEP4U.js";
7
+ import {
8
+ VolumeNotifier
9
+ } from "./chunk-UYDE7QNR.js";
10
+ import {
11
+ FwdBwdNotifier
12
+ } from "./chunk-WW3IT2RA.js";
13
+ import {
14
+ ObjectFitNotifier
15
+ } from "./chunk-CS64PANN.js";
16
+ import {
17
+ PlaybackRateNotifier
18
+ } from "./chunk-B6YJERSR.js";
1
19
  import {
2
20
  PlayPauseNotifier
3
21
  } from "./chunk-UFD3NXRT.js";
@@ -11,14 +29,11 @@ import {
11
29
  TouchBrightnessNotifier
12
30
  } from "./chunk-7UO35PX4.js";
13
31
  import {
14
- TouchTimelineNotifier
15
- } from "./chunk-AEP5HJTD.js";
16
- import {
17
- TouchVolumeNotifier
18
- } from "./chunk-I4SSEP4U.js";
32
+ BrightnessNotifier
33
+ } from "./chunk-J4PCG44Y.js";
19
34
  import {
20
- VolumeNotifier
21
- } from "./chunk-UYDE7QNR.js";
35
+ CancelScrubNotifier
36
+ } from "./chunk-NKIBSEUG.js";
22
37
  import {
23
38
  CaptionsNotifier
24
39
  } from "./chunk-XZNDRHZB.js";
@@ -34,15 +49,6 @@ import {
34
49
  import {
35
50
  FastPlayNotifier
36
51
  } from "./chunk-SC5IBOFE.js";
37
- import {
38
- FwdBwdNotifier
39
- } from "./chunk-WW3IT2RA.js";
40
- import {
41
- ObjectFitNotifier
42
- } from "./chunk-CS64PANN.js";
43
- import {
44
- PlaybackRateNotifier
45
- } from "./chunk-B6YJERSR.js";
46
52
  import {
47
53
  volumehigh
48
54
  } from "./chunk-JRWYWTTT.js";
@@ -55,12 +61,6 @@ import {
55
61
  import {
56
62
  AirPlayNotifier
57
63
  } from "./chunk-A62XDSLJ.js";
58
- import {
59
- BrightnessNotifier
60
- } from "./chunk-J4PCG44Y.js";
61
- import {
62
- CancelScrubNotifier
63
- } from "./chunk-NKIBSEUG.js";
64
64
  import {
65
65
  BaseNotifier
66
66
  } from "./chunk-254AE7UJ.js";
@@ -217,18 +217,42 @@ import {
217
217
  import {
218
218
  add
219
219
  } from "./chunk-ID72UAJE.js";
220
- import {
221
- Timeline
222
- } from "./chunk-A742ACWU.js";
223
220
  import {
224
221
  VolumeControl
225
222
  } from "./chunk-DKOY23J6.js";
223
+ import {
224
+ Timeline
225
+ } from "./chunk-A742ACWU.js";
226
226
  import {
227
227
  BrightnessControl
228
228
  } from "./chunk-QMGQTOC5.js";
229
229
  import {
230
230
  RangeInput
231
231
  } from "./chunk-AQMEXSBY.js";
232
+ import {
233
+ TimeButton
234
+ } from "./chunk-2QSACBJ3.js";
235
+ import {
236
+ TimeAndDurationButton
237
+ } from "./chunk-ORXXCDRO.js";
238
+ import {
239
+ AirPlayPlaceholder
240
+ } from "./chunk-R4OWJP7Z.js";
241
+ import {
242
+ CastPlaceholder
243
+ } from "./chunk-UKYSH5O2.js";
244
+ import {
245
+ PiPPlaceholder
246
+ } from "./chunk-BS73PKPS.js";
247
+ import {
248
+ NextButton
249
+ } from "./chunk-VYIMG6YY.js";
250
+ import {
251
+ ObjectFitButton
252
+ } from "./chunk-VLJWC4SE.js";
253
+ import {
254
+ PictureInPictureButton
255
+ } from "./chunk-627G5HXZ.js";
232
256
  import {
233
257
  PlayPauseButton
234
258
  } from "./chunk-WGS3LSTG.js";
@@ -245,11 +269,14 @@ import {
245
269
  TheaterButton
246
270
  } from "./chunk-BSVBNDZ6.js";
247
271
  import {
248
- TimeButton
249
- } from "./chunk-2QSACBJ3.js";
272
+ ChapterButton
273
+ } from "./chunk-NM254BRR.js";
250
274
  import {
251
- TimeAndDurationButton
252
- } from "./chunk-ORXXCDRO.js";
275
+ DurationButton
276
+ } from "./chunk-PRV5QMJK.js";
277
+ import {
278
+ ExpandMiniplayerButton
279
+ } from "./chunk-CHYYGNDU.js";
253
280
  import {
254
281
  Forward10Button
255
282
  } from "./chunk-VGMUZLWF.js";
@@ -266,14 +293,14 @@ import {
266
293
  Meta
267
294
  } from "./chunk-BYENKVXX.js";
268
295
  import {
269
- NextButton
270
- } from "./chunk-VYIMG6YY.js";
296
+ AirPlayButton
297
+ } from "./chunk-DFKNDZ3G.js";
271
298
  import {
272
- ObjectFitButton
273
- } from "./chunk-VLJWC4SE.js";
299
+ Backward10Button
300
+ } from "./chunk-L6VPRTBS.js";
274
301
  import {
275
- PictureInPictureButton
276
- } from "./chunk-627G5HXZ.js";
302
+ BigNextButton
303
+ } from "./chunk-7THCNYFO.js";
277
304
  import {
278
305
  BigPlayPauseButton
279
306
  } from "./chunk-RZMZ6BWQ.js";
@@ -289,33 +316,6 @@ import {
289
316
  import {
290
317
  CastButton
291
318
  } from "./chunk-245PQRQ6.js";
292
- import {
293
- ChapterButton
294
- } from "./chunk-NM254BRR.js";
295
- import {
296
- DurationButton
297
- } from "./chunk-PRV5QMJK.js";
298
- import {
299
- ExpandMiniplayerButton
300
- } from "./chunk-CHYYGNDU.js";
301
- import {
302
- AirPlayPlaceholder
303
- } from "./chunk-R4OWJP7Z.js";
304
- import {
305
- CastPlaceholder
306
- } from "./chunk-UKYSH5O2.js";
307
- import {
308
- PiPPlaceholder
309
- } from "./chunk-BS73PKPS.js";
310
- import {
311
- AirPlayButton
312
- } from "./chunk-DFKNDZ3G.js";
313
- import {
314
- Backward10Button
315
- } from "./chunk-L6VPRTBS.js";
316
- import {
317
- BigNextButton
318
- } from "./chunk-7THCNYFO.js";
319
319
  import {
320
320
  Buffer
321
321
  } from "./chunk-VOBM2BKO.js";
@@ -468,4 +468,4 @@ __export(components_exports, {
468
468
  export {
469
469
  components_exports
470
470
  };
471
- //# sourceMappingURL=chunk-VMPYTHFM.js.map
471
+ //# sourceMappingURL=chunk-G4SD3DCN.js.map
@@ -7,13 +7,13 @@ import {
7
7
  import {
8
8
  CONFIG_BUILD
9
9
  } from "./chunk-NMXD4JXZ.js";
10
+ import {
11
+ ACTIONS_BUILD
12
+ } from "./chunk-6CCUKWQD.js";
10
13
  import {
11
14
  FN_KEY,
12
15
  LUID_KEY
13
16
  } from "./chunk-57L2PE3B.js";
14
- import {
15
- ACTIONS_BUILD
16
- } from "./chunk-6CCUKWQD.js";
17
17
  import {
18
18
  __export
19
19
  } from "./chunk-UVKRO5ER.js";
@@ -34,4 +34,4 @@ __export(consts_exports, {
34
34
  export {
35
35
  consts_exports
36
36
  };
37
- //# sourceMappingURL=chunk-DO5FYNGI.js.map
37
+ //# sourceMappingURL=chunk-GF3OXHC5.js.map
@@ -1,33 +1,33 @@
1
+ import {
2
+ VoicePlug
3
+ } from "./chunk-4IUKR4Y5.js";
4
+ import {
5
+ TimePlug
6
+ } from "./chunk-VX3KG53P.js";
1
7
  import {
2
8
  VolumePlug
3
9
  } from "./chunk-KUEH2ZE3.js";
4
10
  import {
5
11
  TimeTravelPlug
6
12
  } from "./chunk-4NVFMTAB.js";
7
- import {
8
- VoicePlug
9
- } from "./chunk-QZ2QT2N6.js";
10
13
  import {
11
14
  SleepTimerPlug
12
15
  } from "./chunk-H4EYMHCR.js";
13
16
  import {
14
- TimePlug
15
- } from "./chunk-VX3KG53P.js";
16
- import {
17
- PlaybackRatePlug
18
- } from "./chunk-F5CUNYJ7.js";
17
+ SettingsViewPlug
18
+ } from "./chunk-DKRTF4JZ.js";
19
19
  import {
20
20
  PosterPlug
21
21
  } from "./chunk-WNAOQ4K4.js";
22
- import {
23
- SettingsViewPlug
24
- } from "./chunk-UQ3MKRLQ.js";
25
22
  import {
26
23
  NotifiersPlug
27
24
  } from "./chunk-QF22DKQC.js";
28
25
  import {
29
26
  PersistPlug
30
27
  } from "./chunk-QHDSPXCH.js";
28
+ import {
29
+ PlaybackRatePlug
30
+ } from "./chunk-F5CUNYJ7.js";
31
31
  import {
32
32
  ObjectFitPlug
33
33
  } from "./chunk-LXK5V753.js";
@@ -45,31 +45,31 @@ import {
45
45
  ModesTheaterPin
46
46
  } from "./chunk-5B77QOQ4.js";
47
47
  import {
48
- ErrorsPlug
49
- } from "./chunk-3Q7XPMH2.js";
50
- import {
51
- KeysPlug
52
- } from "./chunk-XHUQJPQS.js";
48
+ GesturePlug,
49
+ GestureTouchPin,
50
+ GestureWheelPin
51
+ } from "./chunk-XDFDRIPO.js";
53
52
  import {
54
53
  LockedPlug
55
- } from "./chunk-ADPJDVOX.js";
54
+ } from "./chunk-YAXL5Z6Z.js";
56
55
  import {
57
56
  FastPlayPlug
58
57
  } from "./chunk-562WFIVT.js";
59
58
  import {
60
- GesturePlug,
61
- GestureTouchPin,
62
- GestureWheelPin
63
- } from "./chunk-XDFDRIPO.js";
59
+ FramePlug
60
+ } from "./chunk-PRRFHEVV.js";
61
+ import {
62
+ KeysPlug
63
+ } from "./chunk-XHUQJPQS.js";
64
64
  import {
65
65
  CSSPlug
66
66
  } from "./chunk-KXTNHTQB.js";
67
67
  import {
68
- FramePlug
69
- } from "./chunk-PRRFHEVV.js";
68
+ ErrorsPlug
69
+ } from "./chunk-3Q7XPMH2.js";
70
70
  import {
71
- AmbiencePlug
72
- } from "./chunk-X446IW66.js";
71
+ CaptionsPlug
72
+ } from "./chunk-V426FOHU.js";
73
73
  import {
74
74
  CastPlug
75
75
  } from "./chunk-2CUZX3X2.js";
@@ -81,20 +81,20 @@ import {
81
81
  ToastsPlug
82
82
  } from "./chunk-EYIT7JFI.js";
83
83
  import {
84
- AutoPlug
85
- } from "./chunk-U4FRLM4H.js";
84
+ AmbiencePlug
85
+ } from "./chunk-X446IW66.js";
86
86
  import {
87
- CaptionsPlug
88
- } from "./chunk-V426FOHU.js";
87
+ BrightnessPlug
88
+ } from "./chunk-32Z7LZQK.js";
89
89
  import {
90
90
  AirPlayPlug
91
91
  } from "./chunk-HBJ6D47A.js";
92
92
  import {
93
- BrightnessPlug
94
- } from "./chunk-32Z7LZQK.js";
93
+ AutoPlug
94
+ } from "./chunk-U4FRLM4H.js";
95
95
  import {
96
- LightStatePlug
97
- } from "./chunk-3ZLJHGBQ.js";
96
+ DisabledPlug
97
+ } from "./chunk-TYM7WPA2.js";
98
98
  import {
99
99
  PlaylistPlug
100
100
  } from "./chunk-PFKIZWZ4.js";
@@ -102,8 +102,8 @@ import {
102
102
  SkeletonPlug
103
103
  } from "./chunk-C2RF75F6.js";
104
104
  import {
105
- DisabledPlug
106
- } from "./chunk-TYM7WPA2.js";
105
+ LightStatePlug
106
+ } from "./chunk-3ZLJHGBQ.js";
107
107
  import {
108
108
  PinRegistry,
109
109
  PlugRegistry
@@ -159,4 +159,4 @@ for (const Pin of [
159
159
  GestureTouchPin
160
160
  ])
161
161
  PinRegistry.register(Pin);
162
- //# sourceMappingURL=chunk-JUARS7T7.js.map
162
+ //# sourceMappingURL=chunk-HWOZBZGM.js.map