react-modern-audio-player 1.2.5 → 1.4.0-rc.0

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 (25) hide show
  1. package/README.md +64 -2
  2. package/dist/index.es.js +4845 -4858
  3. package/dist/types/components/AudioPlayer/Audio/index.d.ts +4 -2
  4. package/dist/types/components/AudioPlayer/Audio/useAudio.d.ts +2 -0
  5. package/dist/types/components/AudioPlayer/Context/StateContext/placement.d.ts +9 -7
  6. package/dist/types/components/AudioPlayer/Context/dispatchContext.d.ts +3 -3
  7. package/dist/types/components/AudioPlayer/Interface/Controller/Input/Progress/useProgress.d.ts +2 -0
  8. package/dist/types/components/AudioPlayer/Interface/Controller/Input/Progress/useWavesurfer.d.ts +1 -0
  9. package/dist/types/components/AudioPlayer/Interface/CustomComponent/index.d.ts +7 -0
  10. package/dist/types/components/AudioPlayer/Interface/index.d.ts +6 -2
  11. package/dist/types/components/AudioPlayer/Player/index.d.ts +5 -4
  12. package/dist/types/components/AudioPlayer/Player/usePropsStateEffect.d.ts +1 -1
  13. package/dist/types/components/AudioPlayer/index.d.ts +9 -3
  14. package/dist/types/components/Drawer/Drawer.d.ts +1 -2
  15. package/dist/types/components/Dropdown/Dropdown.d.ts +1 -2
  16. package/dist/types/components/Grid/Item.d.ts +1 -1
  17. package/dist/types/components/Provider/AudioPlayerProvider.d.ts +2 -2
  18. package/dist/types/hooks/useGridTemplate.d.ts +1 -1
  19. package/dist/types/index.d.ts +2 -2
  20. package/package.json +1 -1
  21. package/dist/types/components/AudioPlayer/Audio/Basic.d.ts +0 -2
  22. package/dist/types/components/AudioPlayer/Audio/WaveSurfer.d.ts +0 -2
  23. package/dist/types/components/AudioPlayer/Audio/useBasicAudio.d.ts +0 -2
  24. package/dist/types/components/AudioPlayer/Audio/useWaveSurfer.d.ts +0 -1
  25. package/dist/types/components/AudioPlayer/Interface/Controller/Input/Progress/useBarProgress.d.ts +0 -2
@@ -1,2 +1,4 @@
1
- import { FC } from "react";
2
- export declare const Audio: FC;
1
+ import React, { FC } from "react";
2
+ export declare const Audio: FC<{
3
+ audioRef?: React.MutableRefObject<HTMLAudioElement>;
4
+ }>;
@@ -0,0 +1,2 @@
1
+ import { HTMLAttributes } from "react";
2
+ export declare const useAudio: () => HTMLAttributes<HTMLAudioElement>;
@@ -4,20 +4,22 @@ import { ActiveUI } from "./element";
4
4
  export declare type VolumeSliderPlacement = DropdownContentPlacement;
5
5
  export declare type PlayListPlacement = "bottom" | "top";
6
6
  export declare type PlayerPlacement = "bottom" | "top" | "bottom-left" | "bottom-right" | "top-left" | "top-right" | "static";
7
- export declare const interfacePlacementMaxLength = 10;
7
+ export declare const defaultInterfacePlacementMaxLength = 10;
8
8
  export declare type InterfacePlacementKey = Exclude<keyof ActiveUI, "all" | "prevNnext" | "trackTime" | "volumeSlider"> | "trackTimeCurrent" | "trackTimeDuration";
9
- export declare type InterfaceGridTemplateArea = Partial<Record<InterfacePlacementKey, `row${NumbersToUnionNum<typeof interfacePlacementMaxLength>}-${NumbersToUnionNum<typeof interfacePlacementMaxLength>}`>>;
9
+ export declare type InterfaceGridTemplateArea<TMaxLength extends number> = Partial<Record<InterfacePlacementKey, `row${NumbersToUnionNum<TMaxLength>}-${NumbersToUnionNum<TMaxLength>}`>>;
10
+ export declare type InterfaceGridCustomComponentsArea<TMaxLength extends number> = Partial<Record<string, `row${NumbersToUnionNum<TMaxLength>}-${NumbersToUnionNum<TMaxLength>}`>>;
10
11
  export declare type InterfaceGridItemArea = Partial<Record<InterfacePlacementKey, string>>;
11
- export declare type InterfacePlacement = {
12
- templateArea?: InterfaceGridTemplateArea;
12
+ export declare type InterfacePlacement<TMaxLength extends number = typeof defaultInterfacePlacementMaxLength> = {
13
+ templateArea?: InterfaceGridTemplateArea<TMaxLength>;
14
+ customComponentsArea?: InterfaceGridCustomComponentsArea<TMaxLength>;
13
15
  itemCustomArea?: InterfaceGridItemArea;
14
16
  };
15
17
  export declare const defaultInterfacePlacement: {
16
- templateArea: Required<InterfaceGridTemplateArea>;
18
+ templateArea: Required<InterfaceGridTemplateArea<typeof defaultInterfacePlacementMaxLength>>;
17
19
  };
18
- export interface Placements {
20
+ export interface Placements<TInterfacePlacementLength extends number = typeof defaultInterfacePlacementMaxLength> {
19
21
  playListPlacement: PlayListPlacement;
20
- interfacePlacement: InterfacePlacement;
22
+ interfacePlacement: InterfacePlacement<TInterfacePlacementLength>;
21
23
  volumeSliderPlacement: VolumeSliderPlacement | undefined;
22
24
  playerPlacement: PlayerPlacement | undefined;
23
25
  }
@@ -1,6 +1,6 @@
1
1
  import { Dispatch } from "react";
2
- import { RepeatType, PlayList, PlayListPlacement, PlayerPlacement, ActiveUI, ElementRefs, CustomIcons, AudioInitialState, InterfacePlacement, CoverImgsCss, VolumeSliderPlacement } from "./StateContext";
3
- export declare type AudioContextAction = {
2
+ import { RepeatType, PlayList, PlayListPlacement, PlayerPlacement, ActiveUI, ElementRefs, CustomIcons, AudioInitialState, InterfacePlacement, CoverImgsCss, VolumeSliderPlacement, defaultInterfacePlacementMaxLength } from "./StateContext";
3
+ export declare type AudioContextAction<TInterfacePlacementLength extends number = typeof defaultInterfacePlacementMaxLength> = {
4
4
  type: "NEXT_AUDIO";
5
5
  } | {
6
6
  type: "PREV_AUDIO";
@@ -42,7 +42,7 @@ export declare type AudioContextAction = {
42
42
  type: "SET_PLACEMENTS";
43
43
  playerPlacement?: PlayerPlacement;
44
44
  playListPlacement?: PlayListPlacement;
45
- interfacePlacement?: InterfacePlacement;
45
+ interfacePlacement?: InterfacePlacement<TInterfacePlacementLength>;
46
46
  volumeSliderPlacement?: VolumeSliderPlacement;
47
47
  };
48
48
  export declare type AudioPlayerDispatchContext = Dispatch<AudioContextAction>;
@@ -0,0 +1,2 @@
1
+ import { HTMLAttributes } from "react";
2
+ export declare const useProgress: () => HTMLAttributes<HTMLDivElement>;
@@ -0,0 +1 @@
1
+ export declare const useWaveSurfer: (waveformRef: React.RefObject<HTMLElement>) => void;
@@ -0,0 +1,7 @@
1
+ import { GridItemProps } from '../../../Grid/Item';
2
+ import React, { FC } from "react";
3
+ export declare type CustomComponentProps = {
4
+ children?: React.ReactNode;
5
+ id: string;
6
+ } & GridItemProps;
7
+ export declare const CustomComponent: FC<CustomComponentProps>;
@@ -1,2 +1,6 @@
1
- import { FC } from "react";
2
- export declare const Interface: FC;
1
+ import React, { FC } from "react";
2
+ interface InterfaceProps {
3
+ children: React.ReactNode;
4
+ }
5
+ export declare const Interface: FC<InterfaceProps>;
6
+ export {};
@@ -1,16 +1,17 @@
1
- import { FC } from "react";
2
1
  import { ActiveUI, PlayListPlacement, CustomIcons, PlayerPlacement, PlayList, AudioInitialState, InterfacePlacement, CoverImgsCss, VolumeSliderPlacement } from '../../AudioPlayer/Context';
3
- export interface AudioPlayerProps {
2
+ export interface AudioPlayerProps<TInterfacePlacementLength extends number> {
3
+ children?: React.ReactNode;
4
4
  playList: PlayList;
5
5
  audioInitialState?: AudioInitialState;
6
+ audioRef?: React.MutableRefObject<HTMLAudioElement>;
6
7
  activeUI?: ActiveUI;
7
8
  customIcons?: CustomIcons;
8
9
  coverImgsCss?: CoverImgsCss;
9
10
  placement?: {
10
11
  player?: PlayerPlacement;
11
12
  playList?: PlayListPlacement;
12
- interface?: InterfacePlacement;
13
+ interface?: InterfacePlacement<TInterfacePlacementLength>;
13
14
  volumeSlider?: VolumeSliderPlacement;
14
15
  };
15
16
  }
16
- export declare const AudioPlayer: FC<AudioPlayerProps>;
17
+ export declare const AudioPlayer: <TInterfacePlacementLength extends number = 10>({ audioRef, children, ...restProps }: AudioPlayerProps<TInterfacePlacementLength>) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { AudioPlayerProps } from ".";
2
- export declare const usePropsStateEffect: ({ placement, activeUI, coverImgsCss, audioInitialState, playList, customIcons, }: AudioPlayerProps) => void;
2
+ export declare const usePropsStateEffect: <TInterfacePlacementLength extends number = 10>({ placement, activeUI, coverImgsCss, audioInitialState, playList, customIcons, }: Omit<AudioPlayerProps<TInterfacePlacementLength>, "children">) => void;
@@ -1,5 +1,11 @@
1
1
  import { SpectrumProviderProps } from '../Provider';
2
- import { FC } from "react";
2
+ import { defaultInterfacePlacementMaxLength } from "./Context";
3
+ import { CustomComponent } from "./Interface/CustomComponent";
3
4
  import { AudioPlayerProps } from "./Player";
4
- export declare type RMAudioPlayerProps = AudioPlayerProps & SpectrumProviderProps;
5
- export declare const AudioPlayerWithProvider: FC<RMAudioPlayerProps>;
5
+ export declare type RMAudioPlayerProps<TInterfacePlacementLength extends number = typeof defaultInterfacePlacementMaxLength> = AudioPlayerProps<TInterfacePlacementLength> & SpectrumProviderProps;
6
+ declare const AudioPlayerWithProviders: <TInterfacePlacementLength extends number>({ rootContainerProps, ...audioPlayProps }: RMAudioPlayerProps<TInterfacePlacementLength>) => JSX.Element;
7
+ declare type AudioPlayerComponent = typeof AudioPlayerWithProviders & {
8
+ CustomComponent: typeof CustomComponent;
9
+ };
10
+ declare const _default: AudioPlayerComponent;
11
+ export default _default;
@@ -1,5 +1,4 @@
1
- import { PropsWithChildren } from "react";
2
- import { FC } from "react";
1
+ import { PropsWithChildren, FC } from "react";
3
2
  import { DrawerContext } from "./DrawerContext";
4
3
  import { DrawerTrigger } from "./DrawerTrigger";
5
4
  import { DrawerContent } from "./DrawerContent";
@@ -1,5 +1,4 @@
1
- import { PropsWithChildren } from "react";
2
- import { FC } from "react";
1
+ import { PropsWithChildren, FC } from "react";
3
2
  import { DropdownContext } from "./DropdownContext";
4
3
  import { DropdownTrigger } from "./DropdownTrigger";
5
4
  import { DropdownContent } from "./DropdownContent";
@@ -1,4 +1,4 @@
1
- import { ViewProps } from "@react-types/view";
1
+ import { ViewProps } from "@react-spectrum/view";
2
2
  import { DOMRefValue } from "@react-types/shared";
3
3
  export interface GridItemProps extends Omit<ViewProps, "children"> {
4
4
  visible?: boolean;
@@ -1,3 +1,3 @@
1
- import { PropsWithChildren, FC } from "react";
1
+ import { PropsWithChildren } from "react";
2
2
  import { AudioPlayerProps } from "../AudioPlayer/Player";
3
- export declare const AudioPlayerProvider: FC<PropsWithChildren<AudioPlayerProps>>;
3
+ export declare const AudioPlayerProvider: <TInterfacePlacementLength extends number = 10>({ children, ...props }: PropsWithChildren<AudioPlayerProps<TInterfacePlacementLength>>) => JSX.Element;
@@ -1,2 +1,2 @@
1
1
  import { ActiveUI, InterfacePlacement } from '../components/AudioPlayer/Context';
2
- export declare const useGridTemplate: (activeUI: ActiveUI, templateArea: InterfacePlacement["templateArea"] | undefined) => readonly [string[], string[]];
2
+ export declare const useGridTemplate: (activeUI: ActiveUI, templateArea: InterfacePlacement["templateArea"] | undefined, customComponentsArea?: InterfacePlacement["customComponentsArea"]) => readonly [string[], string[]];
@@ -1,5 +1,5 @@
1
- import { AudioPlayerWithProvider as AudioPlayer } from "./components/AudioPlayer";
2
- export default AudioPlayer;
1
+ import AudioPlayerWithProviders from "./components/AudioPlayer";
2
+ export default AudioPlayerWithProviders;
3
3
  export * from "./components/AudioPlayer";
4
4
  export * from "./components/AudioPlayer/Context";
5
5
  export * from "./components/AudioPlayer/Player";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-modern-audio-player",
3
- "version": "1.2.5",
3
+ "version": "1.4.0-rc.0",
4
4
  "author": {
5
5
  "name": "LYH",
6
6
  "email": "slash9494@naver.com",
@@ -1,2 +0,0 @@
1
- import { FC } from "react";
2
- export declare const Basic: FC;
@@ -1,2 +0,0 @@
1
- import { FC } from "react";
2
- export declare const WaveSurferAudio: FC;
@@ -1,2 +0,0 @@
1
- import { HTMLAttributes } from "react";
2
- export declare const useBasicAudio: () => HTMLAttributes<HTMLAudioElement>;
@@ -1 +0,0 @@
1
- export declare const useWaveSurfer: () => null;
@@ -1,2 +0,0 @@
1
- import { HTMLAttributes } from "react";
2
- export declare const useBarProgress: () => HTMLAttributes<HTMLDivElement>;