@applemusic-like-lyrics/react-full 0.3.1 → 0.3.2

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.
@@ -1,5 +1,5 @@
1
1
  import React$1, { ComponentProps, FC, ForwardRefExoticComponent, HTMLProps, NamedExoticComponent, PropsWithChildren, ReactNode, RefAttributes } from "react";
2
- import { LyricLine, LyricLineMouseEvent, LyricPlayerBase } from "@applemusic-like-lyrics/core";
2
+ import { LyricLine, LyricLineMouseEvent, LyricPlayerBase, OptimizeLyricOptions } from "@applemusic-like-lyrics/core";
3
3
  import { BackgroundRenderProps, LyricPlayerRef } from "@applemusic-like-lyrics/react";
4
4
  import { PrimitiveAtom, WritableAtom } from "jotai";
5
5
  import { RESET } from "jotai/utils";
@@ -70,12 +70,14 @@ declare const MusicInfo: React.FC<{
70
70
  } & HTMLProps<HTMLDivElement>>;
71
71
  //#endregion
72
72
  //#region src/components/PrebuiltLyricPlayer/index.d.ts
73
+ interface PrebuiltLyricPlayerProps extends HTMLProps<HTMLDivElement> {
74
+ bottomLineSlot?: React$1.ReactNode;
75
+ optimizeOptions?: OptimizeLyricOptions;
76
+ }
73
77
  /**
74
78
  * 已经部署好所有组件的歌词播放器组件,在正确设置所有的 Jotai 状态后可以开箱即用
75
79
  */
76
- declare const PrebuiltLyricPlayer: FC<HTMLProps<HTMLDivElement> & {
77
- bottomLineSlot?: React$1.ReactNode;
78
- }>;
80
+ declare const PrebuiltLyricPlayer: FC<PrebuiltLyricPlayerProps>;
79
81
  //#endregion
80
82
  //#region src/components/TextMarquee/index.d.ts
81
83
  declare const TextMarquee: FC<PropsWithChildren<HTMLProps<HTMLDivElement>>>;
@@ -598,5 +600,5 @@ declare const lowFreqVolumeAtom: PrimitiveAtom<number>;
598
600
  //#region src/utils/duration.d.ts
599
601
  declare function toDuration(duration: number): string;
600
602
  //#endregion
601
- export { ArtistStateEntry, AudioFFTVisualizer, AudioQualityTag, AudioQualityTagProps, AudioQualityType, AutoLyricLayout, BouncingSlider, Callback, ControlThumb, Cover, CoverProps, HorizontalLayout, LyricBackgroundRenderer, LyricPlayerImplementation, LyricPlayerImplementationObject, LyricSizePreset, MediaButton, MenuButton, MusicInfo, MusicQualityState, PlayerControlsType, PrebuiltLyricPlayer, PrebuiltToggleIconButton, PrebuiltToggleIconButtonType, RepeatMode, SliderProps, SongData, TextMarquee, ToggleIconButton, VerticalCoverLayout, VerticalLayout, VolumeControl, cssBackgroundPropertyAtom, cycleRepeatModeActionAtom, enableLyricLineBlurEffectAtom, enableLyricLineScaleEffectAtom, enableLyricLineSpringAnimationAtom, enableLyricRomanLineAtom, enableLyricSwapTransRomanLineAtom, enableLyricTranslationLineAtom, fftDataAtom, fftDataRangeAtom, hideLyricViewAtom, isLyricPageOpenedAtom, isRepeatEnabledAtom, isShuffleActiveAtom, isShuffleEnabledAtom, lowFreqVolumeAtom, lyricBackgroundFPSAtom, lyricBackgroundRenderScaleAtom, lyricBackgroundRendererAtom, lyricBackgroundStaticModeAtom, lyricFontFamilyAtom, lyricFontWeightAtom, lyricLetterSpacingAtom, lyricPlayerImplementationAtom, lyricSizePresetAtom, lyricWordFadeWidthAtom, musicAlbumNameAtom, musicArtistsAtom, musicCoverAtom, musicCoverIsVideoAtom, musicDurationAtom, musicIdAtom, musicLyricLinesAtom, musicNameAtom, musicPlayingAtom, musicPlayingPositionAtom, musicQualityAtom, musicQualityTagAtom, musicVolumeAtom, onChangeVolumeAtom, onClickAudioQualityTagAtom, onClickControlThumbAtom, onCycleRepeatModeAtom, onLyricLineClickAtom, onLyricLineContextMenuAtom, onPlayOrResumeAtom, onRequestNextSongAtom, onRequestOpenMenuAtom, onRequestPrevSongAtom, onSeekPositionAtom, onToggleShuffleAtom, playerControlsTypeAtom, repeatModeAtom, showBottomControlAtom, showMusicAlbumAtom, showMusicArtistsAtom, showMusicNameAtom, showRemainingTimeAtom, showVolumeControlAtom, toDuration, toggleShuffleActionAtom, verticalCoverLayoutAtom };
603
+ export { ArtistStateEntry, AudioFFTVisualizer, AudioQualityTag, AudioQualityTagProps, AudioQualityType, AutoLyricLayout, BouncingSlider, Callback, ControlThumb, Cover, CoverProps, HorizontalLayout, LyricBackgroundRenderer, LyricPlayerImplementation, LyricPlayerImplementationObject, LyricSizePreset, MediaButton, MenuButton, MusicInfo, MusicQualityState, PlayerControlsType, PrebuiltLyricPlayer, PrebuiltLyricPlayerProps, PrebuiltToggleIconButton, PrebuiltToggleIconButtonType, RepeatMode, SliderProps, SongData, TextMarquee, ToggleIconButton, VerticalCoverLayout, VerticalLayout, VolumeControl, cssBackgroundPropertyAtom, cycleRepeatModeActionAtom, enableLyricLineBlurEffectAtom, enableLyricLineScaleEffectAtom, enableLyricLineSpringAnimationAtom, enableLyricRomanLineAtom, enableLyricSwapTransRomanLineAtom, enableLyricTranslationLineAtom, fftDataAtom, fftDataRangeAtom, hideLyricViewAtom, isLyricPageOpenedAtom, isRepeatEnabledAtom, isShuffleActiveAtom, isShuffleEnabledAtom, lowFreqVolumeAtom, lyricBackgroundFPSAtom, lyricBackgroundRenderScaleAtom, lyricBackgroundRendererAtom, lyricBackgroundStaticModeAtom, lyricFontFamilyAtom, lyricFontWeightAtom, lyricLetterSpacingAtom, lyricPlayerImplementationAtom, lyricSizePresetAtom, lyricWordFadeWidthAtom, musicAlbumNameAtom, musicArtistsAtom, musicCoverAtom, musicCoverIsVideoAtom, musicDurationAtom, musicIdAtom, musicLyricLinesAtom, musicNameAtom, musicPlayingAtom, musicPlayingPositionAtom, musicQualityAtom, musicQualityTagAtom, musicVolumeAtom, onChangeVolumeAtom, onClickAudioQualityTagAtom, onClickControlThumbAtom, onCycleRepeatModeAtom, onLyricLineClickAtom, onLyricLineContextMenuAtom, onPlayOrResumeAtom, onRequestNextSongAtom, onRequestOpenMenuAtom, onRequestPrevSongAtom, onSeekPositionAtom, onToggleShuffleAtom, playerControlsTypeAtom, repeatModeAtom, showBottomControlAtom, showMusicAlbumAtom, showMusicArtistsAtom, showMusicNameAtom, showRemainingTimeAtom, showVolumeControlAtom, toDuration, toggleShuffleActionAtom, verticalCoverLayoutAtom };
602
604
  //# sourceMappingURL=amll-react-framework.d.cts.map
@@ -1,7 +1,7 @@
1
1
  import React$1, { ComponentProps, FC, ForwardRefExoticComponent, HTMLProps, NamedExoticComponent, PropsWithChildren, ReactNode, RefAttributes } from "react";
2
2
  import { BackgroundRenderProps, LyricPlayerRef } from "@applemusic-like-lyrics/react";
3
3
  import { PrimitiveAtom, WritableAtom } from "jotai";
4
- import { LyricLine, LyricLineMouseEvent, LyricPlayerBase } from "@applemusic-like-lyrics/core";
4
+ import { LyricLine, LyricLineMouseEvent, LyricPlayerBase, OptimizeLyricOptions } from "@applemusic-like-lyrics/core";
5
5
  import { RESET } from "jotai/utils";
6
6
 
7
7
  //#region src/components/AudioFFTVisualizer/index.d.ts
@@ -54,12 +54,14 @@ declare const MusicInfo: React.FC<{
54
54
  onAlbumClicked?: () => void;
55
55
  onMenuButtonClicked?: () => void;
56
56
  } & HTMLProps<HTMLDivElement>>;
57
+ interface PrebuiltLyricPlayerProps extends HTMLProps<HTMLDivElement> {
58
+ bottomLineSlot?: React$1.ReactNode;
59
+ optimizeOptions?: OptimizeLyricOptions;
60
+ }
57
61
  /**
58
62
  * 已经部署好所有组件的歌词播放器组件,在正确设置所有的 Jotai 状态后可以开箱即用
59
63
  */
60
- declare const PrebuiltLyricPlayer: FC<HTMLProps<HTMLDivElement> & {
61
- bottomLineSlot?: React$1.ReactNode;
62
- }>;
64
+ declare const PrebuiltLyricPlayer: FC<PrebuiltLyricPlayerProps>;
63
65
  declare const TextMarquee: FC<PropsWithChildren<HTMLProps<HTMLDivElement>>>;
64
66
  declare enum PrebuiltToggleIconButtonType {
65
67
  Lyrics = "lyrics",
@@ -558,5 +560,5 @@ declare const fftDataAtom: PrimitiveAtom<number[]>;
558
560
  declare const lowFreqVolumeAtom: PrimitiveAtom<number>;
559
561
  declare function toDuration(duration: number): string;
560
562
  //#endregion
561
- export { ArtistStateEntry, AudioFFTVisualizer, AudioQualityTag, AudioQualityTagProps, AudioQualityType, AutoLyricLayout, BouncingSlider, Callback, ControlThumb, Cover, CoverProps, HorizontalLayout, LyricBackgroundRenderer, LyricPlayerImplementation, LyricPlayerImplementationObject, LyricSizePreset, MediaButton, MenuButton, MusicInfo, MusicQualityState, PlayerControlsType, PrebuiltLyricPlayer, PrebuiltToggleIconButton, PrebuiltToggleIconButtonType, RepeatMode, SliderProps, SongData, TextMarquee, ToggleIconButton, VerticalCoverLayout, VerticalLayout, VolumeControl, cssBackgroundPropertyAtom, cycleRepeatModeActionAtom, enableLyricLineBlurEffectAtom, enableLyricLineScaleEffectAtom, enableLyricLineSpringAnimationAtom, enableLyricRomanLineAtom, enableLyricSwapTransRomanLineAtom, enableLyricTranslationLineAtom, fftDataAtom, fftDataRangeAtom, hideLyricViewAtom, isLyricPageOpenedAtom, isRepeatEnabledAtom, isShuffleActiveAtom, isShuffleEnabledAtom, lowFreqVolumeAtom, lyricBackgroundFPSAtom, lyricBackgroundRenderScaleAtom, lyricBackgroundRendererAtom, lyricBackgroundStaticModeAtom, lyricFontFamilyAtom, lyricFontWeightAtom, lyricLetterSpacingAtom, lyricPlayerImplementationAtom, lyricSizePresetAtom, lyricWordFadeWidthAtom, musicAlbumNameAtom, musicArtistsAtom, musicCoverAtom, musicCoverIsVideoAtom, musicDurationAtom, musicIdAtom, musicLyricLinesAtom, musicNameAtom, musicPlayingAtom, musicPlayingPositionAtom, musicQualityAtom, musicQualityTagAtom, musicVolumeAtom, onChangeVolumeAtom, onClickAudioQualityTagAtom, onClickControlThumbAtom, onCycleRepeatModeAtom, onLyricLineClickAtom, onLyricLineContextMenuAtom, onPlayOrResumeAtom, onRequestNextSongAtom, onRequestOpenMenuAtom, onRequestPrevSongAtom, onSeekPositionAtom, onToggleShuffleAtom, playerControlsTypeAtom, repeatModeAtom, showBottomControlAtom, showMusicAlbumAtom, showMusicArtistsAtom, showMusicNameAtom, showRemainingTimeAtom, showVolumeControlAtom, toDuration, toggleShuffleActionAtom, verticalCoverLayoutAtom };
563
+ export { ArtistStateEntry, AudioFFTVisualizer, AudioQualityTag, AudioQualityTagProps, AudioQualityType, AutoLyricLayout, BouncingSlider, Callback, ControlThumb, Cover, CoverProps, HorizontalLayout, LyricBackgroundRenderer, LyricPlayerImplementation, LyricPlayerImplementationObject, LyricSizePreset, MediaButton, MenuButton, MusicInfo, MusicQualityState, PlayerControlsType, PrebuiltLyricPlayer, PrebuiltLyricPlayerProps, PrebuiltToggleIconButton, PrebuiltToggleIconButtonType, RepeatMode, SliderProps, SongData, TextMarquee, ToggleIconButton, VerticalCoverLayout, VerticalLayout, VolumeControl, cssBackgroundPropertyAtom, cycleRepeatModeActionAtom, enableLyricLineBlurEffectAtom, enableLyricLineScaleEffectAtom, enableLyricLineSpringAnimationAtom, enableLyricRomanLineAtom, enableLyricSwapTransRomanLineAtom, enableLyricTranslationLineAtom, fftDataAtom, fftDataRangeAtom, hideLyricViewAtom, isLyricPageOpenedAtom, isRepeatEnabledAtom, isShuffleActiveAtom, isShuffleEnabledAtom, lowFreqVolumeAtom, lyricBackgroundFPSAtom, lyricBackgroundRenderScaleAtom, lyricBackgroundRendererAtom, lyricBackgroundStaticModeAtom, lyricFontFamilyAtom, lyricFontWeightAtom, lyricLetterSpacingAtom, lyricPlayerImplementationAtom, lyricSizePresetAtom, lyricWordFadeWidthAtom, musicAlbumNameAtom, musicArtistsAtom, musicCoverAtom, musicCoverIsVideoAtom, musicDurationAtom, musicIdAtom, musicLyricLinesAtom, musicNameAtom, musicPlayingAtom, musicPlayingPositionAtom, musicQualityAtom, musicQualityTagAtom, musicVolumeAtom, onChangeVolumeAtom, onClickAudioQualityTagAtom, onClickControlThumbAtom, onCycleRepeatModeAtom, onLyricLineClickAtom, onLyricLineContextMenuAtom, onPlayOrResumeAtom, onRequestNextSongAtom, onRequestOpenMenuAtom, onRequestPrevSongAtom, onSeekPositionAtom, onToggleShuffleAtom, playerControlsTypeAtom, repeatModeAtom, showBottomControlAtom, showMusicAlbumAtom, showMusicArtistsAtom, showMusicNameAtom, showRemainingTimeAtom, showVolumeControlAtom, toDuration, toggleShuffleActionAtom, verticalCoverLayoutAtom };
562
564
  //# sourceMappingURL=amll-react-framework.d.mts.map
@@ -1,4 +1,3 @@
1
- import "./chunk-xCsw59S1.mjs";
2
1
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
2
  import { c } from "react/compiler-runtime";
4
3
  import React, { forwardRef, memo, useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
@@ -2027,12 +2026,12 @@ const ToggleIconButton = memo((t0) => {
2027
2026
  return t3;
2028
2027
  });
2029
2028
  const PREBUILT_ICONS_MAP = {
2030
- [PrebuiltToggleIconButtonType.Lyrics]: [ForwardRef$20, ForwardRef$19],
2031
- [PrebuiltToggleIconButtonType.Playlist]: [ForwardRef$18, ForwardRef$17],
2032
- [PrebuiltToggleIconButtonType.Repeat]: [ForwardRef$16, ForwardRef$15],
2033
- [PrebuiltToggleIconButtonType.Shuffle]: [ForwardRef$14, ForwardRef$13],
2034
- [PrebuiltToggleIconButtonType.Star]: [ForwardRef$12, ForwardRef$11],
2035
- [PrebuiltToggleIconButtonType.AirPlay]: [ForwardRef$21, ForwardRef$21]
2029
+ ["lyrics"]: [ForwardRef$20, ForwardRef$19],
2030
+ ["playlist"]: [ForwardRef$18, ForwardRef$17],
2031
+ ["repeat"]: [ForwardRef$16, ForwardRef$15],
2032
+ ["shuffle"]: [ForwardRef$14, ForwardRef$13],
2033
+ ["star"]: [ForwardRef$12, ForwardRef$11],
2034
+ ["airplay"]: [ForwardRef$21, ForwardRef$21]
2036
2035
  };
2037
2036
  const PrebuiltToggleIconButton = memo((t0) => {
2038
2037
  const $ = c(15);
@@ -2533,7 +2532,7 @@ let LyricSizePreset = /* @__PURE__ */ function(LyricSizePreset) {
2533
2532
  }({});
2534
2533
  const getInitialPlayerImplementation = () => {
2535
2534
  switch (localStorage.getItem("amll-react-full.lyricPlayerImplementation")) {
2536
- case LyricPlayerImplementation.DomSlim: return { lyricPlayer: DomSlimLyricPlayer };
2535
+ case "dom-slim": return { lyricPlayer: DomSlimLyricPlayer };
2537
2536
  default: return { lyricPlayer: DomLyricPlayer };
2538
2537
  }
2539
2538
  };
@@ -2632,12 +2631,12 @@ const lyricLetterSpacingAtom = globalThis.jotaiAtomCache.get("/home/runner/work/
2632
2631
  * @default LyricSizePreset.Medium
2633
2632
  */
2634
2633
  lyricLetterSpacingAtom.debugLabel = "lyricLetterSpacingAtom";
2635
- const lyricSizePresetAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/configAtoms.ts/lyricSizePresetAtom", atomWithStorage("amll-react-full.lyricSizePreset", LyricSizePreset.Medium));
2634
+ const lyricSizePresetAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/configAtoms.ts/lyricSizePresetAtom", atomWithStorage("amll-react-full.lyricSizePreset", "medium"));
2636
2635
  /**
2637
2636
  * 播放控制组件的显示类型,即歌曲信息下方的组件
2638
2637
  */
2639
2638
  lyricSizePresetAtom.debugLabel = "lyricSizePresetAtom";
2640
- const playerControlsTypeAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/configAtoms.ts/playerControlsTypeAtom", atomWithStorage("amll-react-full.playerControlsType", PlayerControlsType.Controls));
2639
+ const playerControlsTypeAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/configAtoms.ts/playerControlsTypeAtom", atomWithStorage("amll-react-full.playerControlsType", "controls"));
2641
2640
  /**
2642
2641
  * 是否显示歌曲名称
2643
2642
  * @default true
@@ -2649,7 +2648,7 @@ const showMusicNameAtom = globalThis.jotaiAtomCache.get("/home/runner/work/apple
2649
2648
  * @default VerticalCoverLayout.Auto
2650
2649
  */
2651
2650
  showMusicNameAtom.debugLabel = "showMusicNameAtom";
2652
- const verticalCoverLayoutAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/configAtoms.ts/verticalCoverLayoutAtom", atomWithStorage("amll-react-full.verticalCoverLayout", VerticalCoverLayout.Auto));
2651
+ const verticalCoverLayoutAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/configAtoms.ts/verticalCoverLayoutAtom", atomWithStorage("amll-react-full.verticalCoverLayout", "auto"));
2653
2652
  /**
2654
2653
  * 是否显示歌曲作者
2655
2654
  * @default true
@@ -2775,7 +2774,7 @@ const isShuffleActiveAtom = globalThis.jotaiAtomCache.get("/home/runner/work/app
2775
2774
  * 当前的重复播放模式
2776
2775
  */
2777
2776
  isShuffleActiveAtom.debugLabel = "isShuffleActiveAtom";
2778
- const repeatModeAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/controlsAtoms.ts/repeatModeAtom", atom(RepeatMode.Off));
2777
+ const repeatModeAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/controlsAtoms.ts/repeatModeAtom", atom("off"));
2779
2778
  /**
2780
2779
  * 随机按钮是否可用
2781
2780
  */
@@ -2886,7 +2885,7 @@ const musicLyricLinesAtom = globalThis.jotaiAtomCache.get("/home/runner/work/app
2886
2885
  */
2887
2886
  musicLyricLinesAtom.debugLabel = "musicLyricLinesAtom";
2888
2887
  const musicQualityAtom = globalThis.jotaiAtomCache.get("/home/runner/work/applemusic-like-lyrics/applemusic-like-lyrics/packages/react-full/src/states/dataAtoms.ts/musicQualityAtom", atom({
2889
- type: AudioQualityType.None,
2888
+ type: "none",
2890
2889
  codec: "unknown",
2891
2890
  channels: 2,
2892
2891
  sampleRate: 44100,
@@ -2930,10 +2929,6 @@ var index_module_default = {
2930
2929
  };
2931
2930
  //#endregion
2932
2931
  //#region src/components/PrebuiltLyricPlayer/index.tsx
2933
- /**
2934
- * @fileoverview
2935
- * 已经部署好所有组件的歌词播放器组件,在正确设置所有的 Jotai 状态后可以开箱即用
2936
- */
2937
2932
  globalThis.jotaiAtomCache = globalThis.jotaiAtomCache || {
2938
2933
  cache: /* @__PURE__ */ new Map(),
2939
2934
  get(name, inst) {
@@ -3026,11 +3021,11 @@ const PrebuiltMediaButtons = (t0) => {
3026
3021
  if ($[1] !== currentRepeatMode) {
3027
3022
  t2 = () => {
3028
3023
  switch (currentRepeatMode) {
3029
- case RepeatMode.One: return /* @__PURE__ */ jsx(ForwardRef$2, {
3024
+ case "one": return /* @__PURE__ */ jsx(ForwardRef$2, {
3030
3025
  color: "#ffffffff",
3031
3026
  style: iconStyle
3032
3027
  });
3033
- case RepeatMode.All: return /* @__PURE__ */ jsx(ForwardRef$3, {
3028
+ case "all": return /* @__PURE__ */ jsx(ForwardRef$3, {
3034
3029
  color: "#ffffffff",
3035
3030
  style: iconStyle
3036
3031
  });
@@ -3335,18 +3330,18 @@ const PrebuiltProgressBar = React.memo(() => {
3335
3330
  });
3336
3331
  function getLyricFontSizeFromPreset(preset) {
3337
3332
  switch (preset) {
3338
- case LyricSizePreset.Tiny: return "max(max(2.5vh, 1.25vw), 10px)";
3339
- case LyricSizePreset.ExtraSmall: return "max(max(3vh, 1.5vw), 10px)";
3340
- case LyricSizePreset.Small: return "max(max(4vh, 2vw), 12px)";
3341
- case LyricSizePreset.Large: return "max(max(6vh, 3vw), 16px)";
3342
- case LyricSizePreset.ExtraLarge: return "max(max(7vh, 3.5vw), 18px)";
3343
- case LyricSizePreset.Huge: return "max(max(8vh, 4vw), 20px)";
3333
+ case "tiny": return "max(max(2.5vh, 1.25vw), 10px)";
3334
+ case "extra-small": return "max(max(3vh, 1.5vw), 10px)";
3335
+ case "small": return "max(max(4vh, 2vw), 12px)";
3336
+ case "large": return "max(max(6vh, 3vw), 16px)";
3337
+ case "extra-large": return "max(max(7vh, 3.5vw), 18px)";
3338
+ case "huge": return "max(max(8vh, 4vw), 20px)";
3344
3339
  default: return "max(max(5vh, 2.5vw), 14px)";
3345
3340
  }
3346
3341
  }
3347
3342
  const PrebuiltCoreLyricPlayer = (t0) => {
3348
- const $ = c(35);
3349
- const { alignPosition, alignAnchor, bottomLine } = t0;
3343
+ const $ = c(36);
3344
+ const { alignPosition, alignAnchor, bottomLine, optimizeOptions } = t0;
3350
3345
  const amllPlayerRef = useRef(null);
3351
3346
  const musicIsPlaying = useAtomValue(musicPlayingAtom);
3352
3347
  const lyricLines = useAtomValue(musicLyricLinesAtom);
@@ -3443,7 +3438,7 @@ const PrebuiltCoreLyricPlayer = (t0) => {
3443
3438
  $[18] = t11;
3444
3439
  } else t11 = $[18];
3445
3440
  let t12;
3446
- if ($[19] !== alignAnchor || $[20] !== alignPosition || $[21] !== bottomLine || $[22] !== enableLyricLineBlurEffect || $[23] !== enableLyricLineScaleEffect || $[24] !== enableLyricLineSpringAnimation || $[25] !== lyricPlayerImplementation || $[26] !== lyricWordFadeWidth || $[27] !== musicIsPlaying || $[28] !== musicPlayingPosition || $[29] !== processedLyricLines || $[30] !== t10 || $[31] !== t11 || $[32] !== t8 || $[33] !== t9) {
3441
+ if ($[19] !== alignAnchor || $[20] !== alignPosition || $[21] !== bottomLine || $[22] !== enableLyricLineBlurEffect || $[23] !== enableLyricLineScaleEffect || $[24] !== enableLyricLineSpringAnimation || $[25] !== lyricPlayerImplementation || $[26] !== lyricWordFadeWidth || $[27] !== musicIsPlaying || $[28] !== musicPlayingPosition || $[29] !== optimizeOptions || $[30] !== processedLyricLines || $[31] !== t10 || $[32] !== t11 || $[33] !== t8 || $[34] !== t9) {
3447
3442
  t12 = /* @__PURE__ */ jsx(LyricPlayer, {
3448
3443
  style: t8,
3449
3444
  ref: amllPlayerRef,
@@ -3453,6 +3448,7 @@ const PrebuiltCoreLyricPlayer = (t0) => {
3453
3448
  alignAnchor,
3454
3449
  currentTime: musicPlayingPosition,
3455
3450
  lyricLines: processedLyricLines,
3451
+ optimizeOptions,
3456
3452
  enableBlur: enableLyricLineBlurEffect,
3457
3453
  enableScale: enableLyricLineScaleEffect,
3458
3454
  enableSpring: enableLyricLineSpringAnimation,
@@ -3472,13 +3468,14 @@ const PrebuiltCoreLyricPlayer = (t0) => {
3472
3468
  $[26] = lyricWordFadeWidth;
3473
3469
  $[27] = musicIsPlaying;
3474
3470
  $[28] = musicPlayingPosition;
3475
- $[29] = processedLyricLines;
3476
- $[30] = t10;
3477
- $[31] = t11;
3478
- $[32] = t8;
3479
- $[33] = t9;
3480
- $[34] = t12;
3481
- } else t12 = $[34];
3471
+ $[29] = optimizeOptions;
3472
+ $[30] = processedLyricLines;
3473
+ $[31] = t10;
3474
+ $[32] = t11;
3475
+ $[33] = t8;
3476
+ $[34] = t9;
3477
+ $[35] = t12;
3478
+ } else t12 = $[35];
3482
3479
  return t12;
3483
3480
  };
3484
3481
  const PrebuiltVolumeControl = (t0) => {
@@ -3533,14 +3530,14 @@ const PrebuiltMusicControls = (t0) => {
3533
3530
  } else t1 = $[5];
3534
3531
  let t2;
3535
3532
  if ($[6] !== playerControlsType || $[7] !== showOtherButtons) {
3536
- t2 = playerControlsType === PlayerControlsType.Controls && /* @__PURE__ */ jsx(PrebuiltMediaButtons, { showOtherButtons });
3533
+ t2 = playerControlsType === "controls" && /* @__PURE__ */ jsx(PrebuiltMediaButtons, { showOtherButtons });
3537
3534
  $[6] = playerControlsType;
3538
3535
  $[7] = showOtherButtons;
3539
3536
  $[8] = t2;
3540
3537
  } else t2 = $[8];
3541
3538
  let t3;
3542
3539
  if ($[9] !== fftData || $[10] !== playerControlsType) {
3543
- t3 = playerControlsType === PlayerControlsType.FFT && /* @__PURE__ */ jsx(AudioFFTVisualizer, {
3540
+ t3 = playerControlsType === "fft" && /* @__PURE__ */ jsx(AudioFFTVisualizer, {
3544
3541
  style: {
3545
3542
  width: "100%",
3546
3543
  height: "8vh"
@@ -3570,20 +3567,23 @@ const PrebuiltMusicControls = (t0) => {
3570
3567
  * 已经部署好所有组件的歌词播放器组件,在正确设置所有的 Jotai 状态后可以开箱即用
3571
3568
  */
3572
3569
  const PrebuiltLyricPlayer = (t0) => {
3573
- const $ = c(65);
3570
+ const $ = c(67);
3574
3571
  let bottomLineSlot;
3575
3572
  let className;
3573
+ let optimizeOptions;
3576
3574
  let rest;
3577
3575
  if ($[0] !== t0) {
3578
- ({className, bottomLineSlot, ...rest} = t0);
3576
+ ({className, bottomLineSlot, optimizeOptions, ...rest} = t0);
3579
3577
  $[0] = t0;
3580
3578
  $[1] = bottomLineSlot;
3581
3579
  $[2] = className;
3582
- $[3] = rest;
3580
+ $[3] = optimizeOptions;
3581
+ $[4] = rest;
3583
3582
  } else {
3584
3583
  bottomLineSlot = $[1];
3585
3584
  className = $[2];
3586
- rest = $[3];
3585
+ optimizeOptions = $[3];
3586
+ rest = $[4];
3587
3587
  }
3588
3588
  const [hideLyricView, setHideLyricView] = useAtom(hideLyricViewAtom);
3589
3589
  const musicCover = useAtomValue(musicCoverAtom);
@@ -3606,7 +3606,7 @@ const PrebuiltLyricPlayer = (t0) => {
3606
3606
  const cssBackgroundProperty = useAtomValue(cssBackgroundPropertyAtom);
3607
3607
  let t1;
3608
3608
  let t2;
3609
- if ($[4] !== isVertical || $[5] !== layoutEl) {
3609
+ if ($[5] !== isVertical || $[6] !== layoutEl) {
3610
3610
  t1 = () => {
3611
3611
  if (!isVertical && coverElRef.current && layoutEl) {
3612
3612
  const obz = new ResizeObserver(() => {
@@ -3626,57 +3626,57 @@ const PrebuiltLyricPlayer = (t0) => {
3626
3626
  }
3627
3627
  };
3628
3628
  t2 = [isVertical, layoutEl];
3629
- $[4] = isVertical;
3630
- $[5] = layoutEl;
3631
- $[6] = t1;
3632
- $[7] = t2;
3629
+ $[5] = isVertical;
3630
+ $[6] = layoutEl;
3631
+ $[7] = t1;
3632
+ $[8] = t2;
3633
3633
  } else {
3634
- t1 = $[6];
3635
- t2 = $[7];
3634
+ t1 = $[7];
3635
+ t2 = $[8];
3636
3636
  }
3637
3637
  useLayoutEffect(t1, t2);
3638
- const verticalImmerseCover = hideLyricView && (verticalCoverLayout === VerticalCoverLayout.Auto ? musicCoverIsVideo && isVertical : verticalCoverLayout === VerticalCoverLayout.ForceImmersive);
3638
+ const verticalImmerseCover = hideLyricView && (verticalCoverLayout === "auto" ? musicCoverIsVideo && isVertical : verticalCoverLayout === "force-immersive");
3639
3639
  let t3;
3640
- if ($[8] !== className) {
3640
+ if ($[9] !== className) {
3641
3641
  t3 = classnames(index_module_default.autoLyricLayout, className);
3642
- $[8] = className;
3643
- $[9] = t3;
3644
- } else t3 = $[9];
3642
+ $[9] = className;
3643
+ $[10] = t3;
3644
+ } else t3 = $[10];
3645
3645
  const t4 = !musicIsPlaying && !musicCoverIsVideo && verticalImmerseCover;
3646
3646
  let t5;
3647
- if ($[10] !== musicCover || $[11] !== musicCoverIsVideo || $[12] !== t4) {
3647
+ if ($[11] !== musicCover || $[12] !== musicCoverIsVideo || $[13] !== t4) {
3648
3648
  t5 = /* @__PURE__ */ jsx(Cover, {
3649
3649
  coverUrl: musicCover,
3650
3650
  coverIsVideo: musicCoverIsVideo,
3651
3651
  ref: coverElRef,
3652
3652
  musicPaused: t4
3653
3653
  });
3654
- $[10] = musicCover;
3655
- $[11] = musicCoverIsVideo;
3656
- $[12] = t4;
3657
- $[13] = t5;
3658
- } else t5 = $[13];
3654
+ $[11] = musicCover;
3655
+ $[12] = musicCoverIsVideo;
3656
+ $[13] = t4;
3657
+ $[14] = t5;
3658
+ } else t5 = $[14];
3659
3659
  let t6;
3660
- if ($[14] !== onClickControlThumb) {
3660
+ if ($[15] !== onClickControlThumb) {
3661
3661
  t6 = /* @__PURE__ */ jsx(ControlThumb, { onClick: onClickControlThumb });
3662
- $[14] = onClickControlThumb;
3663
- $[15] = t6;
3664
- } else t6 = $[15];
3662
+ $[15] = onClickControlThumb;
3663
+ $[16] = t6;
3664
+ } else t6 = $[16];
3665
3665
  const t7 = hideLyricView && index_module_default.hideLyric;
3666
3666
  let t8;
3667
- if ($[16] !== t7) {
3667
+ if ($[17] !== t7) {
3668
3668
  t8 = classnames(index_module_default.smallMusicInfo, t7);
3669
- $[16] = t7;
3670
- $[17] = t8;
3671
- } else t8 = $[17];
3669
+ $[17] = t7;
3670
+ $[18] = t8;
3671
+ } else t8 = $[18];
3672
3672
  let t9;
3673
- if ($[18] !== t8) {
3673
+ if ($[19] !== t8) {
3674
3674
  t9 = /* @__PURE__ */ jsx(PrebuiltMusicInfo, { className: t8 });
3675
- $[18] = t8;
3676
- $[19] = t9;
3677
- } else t9 = $[19];
3675
+ $[19] = t8;
3676
+ $[20] = t9;
3677
+ } else t9 = $[20];
3678
3678
  let t10;
3679
- if ($[20] !== backgroundRenderer.renderer || $[21] !== cssBackgroundProperty || $[22] !== isLyricPageOpened || $[23] !== lowFreqVolume || $[24] !== lyricBackgroundFPS || $[25] !== lyricBackgroundRenderScale || $[26] !== lyricBackgroundStaticMode || $[27] !== musicCover || $[28] !== musicCoverIsVideo) {
3679
+ if ($[21] !== backgroundRenderer.renderer || $[22] !== cssBackgroundProperty || $[23] !== isLyricPageOpened || $[24] !== lowFreqVolume || $[25] !== lyricBackgroundFPS || $[26] !== lyricBackgroundRenderScale || $[27] !== lyricBackgroundStaticMode || $[28] !== musicCover || $[29] !== musicCoverIsVideo) {
3680
3680
  t10 = typeof backgroundRenderer.renderer === "string" && backgroundRenderer.renderer === "css-bg" ? /* @__PURE__ */ jsx("div", { style: {
3681
3681
  zIndex: -1,
3682
3682
  width: "100%",
@@ -3695,43 +3695,43 @@ const PrebuiltLyricPlayer = (t0) => {
3695
3695
  staticMode: lyricBackgroundStaticMode || !isLyricPageOpened,
3696
3696
  style: { zIndex: -1 }
3697
3697
  });
3698
- $[20] = backgroundRenderer.renderer;
3699
- $[21] = cssBackgroundProperty;
3700
- $[22] = isLyricPageOpened;
3701
- $[23] = lowFreqVolume;
3702
- $[24] = lyricBackgroundFPS;
3703
- $[25] = lyricBackgroundRenderScale;
3704
- $[26] = lyricBackgroundStaticMode;
3705
- $[27] = musicCover;
3706
- $[28] = musicCoverIsVideo;
3707
- $[29] = t10;
3708
- } else t10 = $[29];
3698
+ $[21] = backgroundRenderer.renderer;
3699
+ $[22] = cssBackgroundProperty;
3700
+ $[23] = isLyricPageOpened;
3701
+ $[24] = lowFreqVolume;
3702
+ $[25] = lyricBackgroundFPS;
3703
+ $[26] = lyricBackgroundRenderScale;
3704
+ $[27] = lyricBackgroundStaticMode;
3705
+ $[28] = musicCover;
3706
+ $[29] = musicCoverIsVideo;
3707
+ $[30] = t10;
3708
+ } else t10 = $[30];
3709
3709
  const t11 = hideLyricView && index_module_default.hideLyric;
3710
3710
  let t12;
3711
- if ($[30] !== t11) {
3711
+ if ($[31] !== t11) {
3712
3712
  t12 = classnames(index_module_default.bigMusicInfo, t11);
3713
- $[30] = t11;
3714
- $[31] = t12;
3715
- } else t12 = $[31];
3713
+ $[31] = t11;
3714
+ $[32] = t12;
3715
+ } else t12 = $[32];
3716
3716
  let t13;
3717
- if ($[32] !== t12) {
3717
+ if ($[33] !== t12) {
3718
3718
  t13 = /* @__PURE__ */ jsx(PrebuiltMusicInfo, { className: t12 });
3719
- $[32] = t12;
3720
- $[33] = t13;
3721
- } else t13 = $[33];
3719
+ $[33] = t12;
3720
+ $[34] = t13;
3721
+ } else t13 = $[34];
3722
3722
  let t14;
3723
3723
  let t15;
3724
- if ($[34] === Symbol.for("react.memo_cache_sentinel")) {
3724
+ if ($[35] === Symbol.for("react.memo_cache_sentinel")) {
3725
3725
  t14 = /* @__PURE__ */ jsx(PrebuiltProgressBar, {});
3726
3726
  t15 = /* @__PURE__ */ jsx(PrebuiltMusicControls, { className: index_module_default.bigControls });
3727
- $[34] = t14;
3728
- $[35] = t15;
3727
+ $[35] = t14;
3728
+ $[36] = t15;
3729
3729
  } else {
3730
- t14 = $[34];
3731
- t15 = $[35];
3730
+ t14 = $[35];
3731
+ t15 = $[36];
3732
3732
  }
3733
3733
  let t16;
3734
- if ($[36] !== hideLyricView || $[37] !== setHideLyricView || $[38] !== showBottomControl) {
3734
+ if ($[37] !== hideLyricView || $[38] !== setHideLyricView || $[39] !== showBottomControl) {
3735
3735
  t16 = showBottomControl && /* @__PURE__ */ jsxs("div", {
3736
3736
  style: {
3737
3737
  display: "flex",
@@ -3739,26 +3739,26 @@ const PrebuiltLyricPlayer = (t0) => {
3739
3739
  },
3740
3740
  children: [
3741
3741
  /* @__PURE__ */ jsx(PrebuiltToggleIconButton, {
3742
- type: PrebuiltToggleIconButtonType.Lyrics,
3742
+ type: "lyrics",
3743
3743
  checked: !hideLyricView,
3744
3744
  onClick: () => setHideLyricView(!hideLyricView)
3745
3745
  }),
3746
- /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: PrebuiltToggleIconButtonType.AirPlay }),
3747
- /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: PrebuiltToggleIconButtonType.Playlist })
3746
+ /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: "airplay" }),
3747
+ /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: "playlist" })
3748
3748
  ]
3749
3749
  });
3750
- $[36] = hideLyricView;
3751
- $[37] = setHideLyricView;
3752
- $[38] = showBottomControl;
3753
- $[39] = t16;
3754
- } else t16 = $[39];
3750
+ $[37] = hideLyricView;
3751
+ $[38] = setHideLyricView;
3752
+ $[39] = showBottomControl;
3753
+ $[40] = t16;
3754
+ } else t16 = $[40];
3755
3755
  let t17;
3756
- if ($[40] === Symbol.for("react.memo_cache_sentinel")) {
3756
+ if ($[41] === Symbol.for("react.memo_cache_sentinel")) {
3757
3757
  t17 = /* @__PURE__ */ jsx(PrebuiltVolumeControl, { className: index_module_default.bigVolumeControl });
3758
- $[40] = t17;
3759
- } else t17 = $[40];
3758
+ $[41] = t17;
3759
+ } else t17 = $[41];
3760
3760
  let t18;
3761
- if ($[41] !== t13 || $[42] !== t16) {
3761
+ if ($[42] !== t13 || $[43] !== t16) {
3762
3762
  t18 = /* @__PURE__ */ jsxs(Fragment, { children: [
3763
3763
  t13,
3764
3764
  t14,
@@ -3766,12 +3766,12 @@ const PrebuiltLyricPlayer = (t0) => {
3766
3766
  t16,
3767
3767
  t17
3768
3768
  ] });
3769
- $[41] = t13;
3770
- $[42] = t16;
3771
- $[43] = t18;
3772
- } else t18 = $[43];
3769
+ $[42] = t13;
3770
+ $[43] = t16;
3771
+ $[44] = t18;
3772
+ } else t18 = $[44];
3773
3773
  let t19;
3774
- if ($[44] === Symbol.for("react.memo_cache_sentinel")) {
3774
+ if ($[45] === Symbol.for("react.memo_cache_sentinel")) {
3775
3775
  t19 = /* @__PURE__ */ jsxs(Fragment, { children: [
3776
3776
  /* @__PURE__ */ jsx(PrebuiltMusicInfo, { className: index_module_default.horizontalControls }),
3777
3777
  /* @__PURE__ */ jsx(PrebuiltProgressBar, {}),
@@ -3781,39 +3781,41 @@ const PrebuiltLyricPlayer = (t0) => {
3781
3781
  }),
3782
3782
  /* @__PURE__ */ jsx(PrebuiltVolumeControl, {})
3783
3783
  ] });
3784
- $[44] = t19;
3785
- } else t19 = $[44];
3784
+ $[45] = t19;
3785
+ } else t19 = $[45];
3786
3786
  let t20;
3787
- if ($[45] !== hideLyricView || $[46] !== setHideLyricView || $[47] !== showBottomControl) {
3787
+ if ($[46] !== hideLyricView || $[47] !== setHideLyricView || $[48] !== showBottomControl) {
3788
3788
  t20 = showBottomControl && /* @__PURE__ */ jsxs(Fragment, { children: [
3789
- /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: PrebuiltToggleIconButtonType.Playlist }),
3789
+ /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: "playlist" }),
3790
3790
  /* @__PURE__ */ jsx(PrebuiltToggleIconButton, {
3791
- type: PrebuiltToggleIconButtonType.Lyrics,
3791
+ type: "lyrics",
3792
3792
  checked: !hideLyricView,
3793
3793
  onClick: () => setHideLyricView(!hideLyricView)
3794
3794
  }),
3795
3795
  /* @__PURE__ */ jsx("div", { style: { flex: "1" } }),
3796
- /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: PrebuiltToggleIconButtonType.AirPlay })
3796
+ /* @__PURE__ */ jsx(PrebuiltToggleIconButton, { type: "airplay" })
3797
3797
  ] });
3798
- $[45] = hideLyricView;
3799
- $[46] = setHideLyricView;
3800
- $[47] = showBottomControl;
3801
- $[48] = t20;
3802
- } else t20 = $[48];
3798
+ $[46] = hideLyricView;
3799
+ $[47] = setHideLyricView;
3800
+ $[48] = showBottomControl;
3801
+ $[49] = t20;
3802
+ } else t20 = $[49];
3803
3803
  let t21;
3804
- if ($[49] !== alignAnchor || $[50] !== alignPosition || $[51] !== bottomLineSlot) {
3804
+ if ($[50] !== alignAnchor || $[51] !== alignPosition || $[52] !== bottomLineSlot || $[53] !== optimizeOptions) {
3805
3805
  t21 = /* @__PURE__ */ jsx(PrebuiltCoreLyricPlayer, {
3806
3806
  alignPosition,
3807
3807
  alignAnchor,
3808
- bottomLine: bottomLineSlot
3808
+ bottomLine: bottomLineSlot,
3809
+ optimizeOptions
3809
3810
  });
3810
- $[49] = alignAnchor;
3811
- $[50] = alignPosition;
3812
- $[51] = bottomLineSlot;
3813
- $[52] = t21;
3814
- } else t21 = $[52];
3811
+ $[50] = alignAnchor;
3812
+ $[51] = alignPosition;
3813
+ $[52] = bottomLineSlot;
3814
+ $[53] = optimizeOptions;
3815
+ $[54] = t21;
3816
+ } else t21 = $[54];
3815
3817
  let t22;
3816
- if ($[53] !== hideLyricView || $[54] !== rest || $[55] !== t10 || $[56] !== t18 || $[57] !== t20 || $[58] !== t21 || $[59] !== t3 || $[60] !== t5 || $[61] !== t6 || $[62] !== t9 || $[63] !== verticalImmerseCover) {
3818
+ if ($[55] !== hideLyricView || $[56] !== rest || $[57] !== t10 || $[58] !== t18 || $[59] !== t20 || $[60] !== t21 || $[61] !== t3 || $[62] !== t5 || $[63] !== t6 || $[64] !== t9 || $[65] !== verticalImmerseCover) {
3817
3819
  t22 = /* @__PURE__ */ jsx(LayoutGroup, { children: /* @__PURE__ */ jsx(AutoLyricLayout, {
3818
3820
  onElementMounted: setLayoutEl,
3819
3821
  className: t3,
@@ -3830,19 +3832,19 @@ const PrebuiltLyricPlayer = (t0) => {
3830
3832
  hideLyric: hideLyricView,
3831
3833
  ...rest
3832
3834
  }) });
3833
- $[53] = hideLyricView;
3834
- $[54] = rest;
3835
- $[55] = t10;
3836
- $[56] = t18;
3837
- $[57] = t20;
3838
- $[58] = t21;
3839
- $[59] = t3;
3840
- $[60] = t5;
3841
- $[61] = t6;
3842
- $[62] = t9;
3843
- $[63] = verticalImmerseCover;
3844
- $[64] = t22;
3845
- } else t22 = $[64];
3835
+ $[55] = hideLyricView;
3836
+ $[56] = rest;
3837
+ $[57] = t10;
3838
+ $[58] = t18;
3839
+ $[59] = t20;
3840
+ $[60] = t21;
3841
+ $[61] = t3;
3842
+ $[62] = t5;
3843
+ $[63] = t6;
3844
+ $[64] = t9;
3845
+ $[65] = verticalImmerseCover;
3846
+ $[66] = t22;
3847
+ } else t22 = $[66];
3846
3848
  return t22;
3847
3849
  };
3848
3850
  function _temp(v) {