misraj-mushaf-renderer 1.2.0 → 1.2.1

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,19 +1,9 @@
1
1
  declare const classnames: {
2
- ChapterIconContainer: {
3
- iconContainer: string;
4
- };
5
- MushafWord: {
6
- container: string;
7
- colored: string;
8
- filled: string;
9
- highlightOnHover: string;
10
- highlighted: string;
11
- };
12
- ReadingView: {
13
- container: string;
14
- };
15
- VerseText: {
16
- highlighted: string;
17
- };
2
+ ChapterIconContainer: readonly ["iconContainer"];
3
+ MushafWord: readonly ["colored", "filled", "highlightOnHover", "highlighted"];
4
+ ReadingView: readonly ["container"];
5
+ VerseText: readonly ["highlighted"];
6
+ MushafReader: readonly ["twoPagesRow"];
7
+ Page: readonly ["container", "border", "blueBorder", "sepiaBorder", "bottomBorder", "blueBottomBorder", "sepiaBottomBorder", "mobileCenterText", "firstTwoPagesBorder", "blueFirstTwoPagesBorder", "sepiaFirstTwoPagesBorder", "pageNumberContainer", "pageNumber", "surah", "juz"];
18
8
  };
19
9
  export default classnames;
@@ -0,0 +1,8 @@
1
+ import { MushafPageProviderProps } from './contexts/MushafPage/MushafPageProvider';
2
+ import { ThemeProviderProps } from './contexts/Theme/type';
3
+ type MushafReaderProviderProps = MushafPageProviderProps & {
4
+ themeProps?: ThemeProviderProps['themeProps'];
5
+ styleOverride?: ThemeProviderProps['styleOverride'];
6
+ };
7
+ declare const MushafReaderProvider: ({ children, themeProps, styleOverride, ...props }: MushafReaderProviderProps) => import("react/jsx-runtime").JSX.Element;
8
+ export default MushafReaderProvider;
@@ -10,5 +10,5 @@ type LineProps = {
10
10
  onWordHover?: (word: Word, event: React.MouseEvent<HTMLElement>) => void;
11
11
  borderColor?: BorderColor;
12
12
  };
13
- declare const _default: import('react').MemoExoticComponent<({ lineKey, words, isBigTextLayout, pageIndex, lineIndex, onWordClick, onWordHover, borderColor, }: LineProps) => import("react/jsx-runtime").JSX.Element>;
13
+ declare const _default: import('react').MemoExoticComponent<({ lineKey, words, isBigTextLayout, pageIndex, lineIndex, onWordClick, onWordHover, }: LineProps) => import("react/jsx-runtime").JSX.Element>;
14
14
  export default _default;
@@ -1,14 +1,12 @@
1
1
  import { default as React } from 'react';
2
2
  import { default as Word } from '../../../types/Word';
3
3
  import { Ayah } from '../../../types/verses';
4
- import { BorderColor } from '../../../types/border-color';
5
4
  type PageProps = {
6
5
  verses: Ayah[];
7
6
  pageNumber: number;
8
7
  pageIndex: number;
9
8
  onWordClick?: (word: Word, event: React.MouseEvent<HTMLElement>) => void;
10
9
  onWordHover?: (word: Word, event: React.MouseEvent<HTMLElement>) => void;
11
- borderColor?: BorderColor;
12
10
  };
13
- declare const Page: ({ verses, pageNumber, pageIndex, onWordClick, onWordHover, borderColor, }: PageProps) => import("react/jsx-runtime").JSX.Element;
11
+ declare const Page: ({ verses, pageNumber, pageIndex, onWordClick, onWordHover }: PageProps) => import("react/jsx-runtime").JSX.Element;
14
12
  export default Page;
@@ -1,8 +1,9 @@
1
1
  import { default as React } from 'react';
2
2
  import { BorderColor } from '../../../../types/border-color';
3
- declare const PageMetaDataContainer: ({ className, children, borderColor, }: {
3
+ declare const PageMetaDataContainer: ({ className, children, borderColor, style, }: {
4
4
  className?: string;
5
5
  children: React.ReactNode;
6
6
  borderColor?: BorderColor;
7
+ style?: React.CSSProperties;
7
8
  }) => import("react/jsx-runtime").JSX.Element;
8
9
  export default PageMetaDataContainer;
@@ -6,11 +6,5 @@ export type DataId = NarrationId | ReciterId;
6
6
  export interface MushafPageProps {
7
7
  onWordClick?: (word: Word, event: React.MouseEvent<HTMLElement>) => void;
8
8
  onWordHover?: (word: Word, event: React.MouseEvent<HTMLElement>) => void;
9
- styleOverride?: {
10
- borderColor?: 'blue' | 'green' | 'sepia';
11
- wordHighlightColor?: string;
12
- chapterHeaderFontSize?: string;
13
- primaryFontColor?: string;
14
- };
15
9
  }
16
10
  export {};
@@ -1,6 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  import { Ayah, IVersesListDto } from '../../../../types/verses';
3
3
  import { DataId } from './MushafPage.types';
4
+ import { ThemeProviderProps } from '../Theme/type';
4
5
  /** ---------- Types ---------- */
5
6
  type MushafPageState = {
6
7
  fontScale: number;
@@ -19,13 +20,15 @@ type MushafPageActions = {
19
20
  setSelectedVerse: React.Dispatch<React.SetStateAction<Ayah | null>>;
20
21
  refresh: () => void;
21
22
  };
22
- type MushafPageProviderProps = {
23
+ export type MushafPageProviderProps = {
23
24
  children: React.ReactNode;
24
25
  dataId: DataId;
25
26
  pageNumber: number;
26
27
  initialFontScale?: number;
27
28
  hasBorder?: boolean;
28
29
  initialIsTwoPagesView?: boolean;
30
+ themeProps?: ThemeProviderProps['themeProps'];
31
+ styleOverride?: ThemeProviderProps['styleOverride'];
29
32
  };
30
33
  export declare const MushafPageProvider: ({ children, dataId, pageNumber, initialFontScale, hasBorder, initialIsTwoPagesView, }: MushafPageProviderProps) => import("react/jsx-runtime").JSX.Element;
31
34
  export type MushafContextStateTypes = MushafPageState & MushafPageActions;
@@ -0,0 +1,3 @@
1
+ import { ThemeProviderProps, ThemeState } from './type';
2
+ export declare const useThemeContext: () => ThemeState;
3
+ export declare const ThemeProvider: ({ children, themeProps, styleOverride, }: ThemeProviderProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import { default as React } from 'react';
2
+ import { default as classnames } from '../../../../classnames';
3
+ import { BorderColor } from '../../../../types/border-color';
4
+ type ThemeProps = {
5
+ borderColor?: BorderColor;
6
+ wordHighlightColor?: string;
7
+ chapterHeaderFontSize?: string;
8
+ primaryFontColor?: string;
9
+ };
10
+ type ClassnameGroups = typeof classnames;
11
+ type GroupName = keyof ClassnameGroups;
12
+ type GroupKey<K extends GroupName> = ClassnameGroups[K][number];
13
+ type StyleOverride = {
14
+ [K in GroupName]?: Partial<Record<GroupKey<K>, React.CSSProperties>>;
15
+ };
16
+ export type ThemeState = {
17
+ themeProps: ThemeProps;
18
+ styleOverride: StyleOverride;
19
+ };
20
+ export type ThemeProviderProps = {
21
+ children: React.ReactNode;
22
+ themeProps?: ThemeProps;
23
+ styleOverride?: StyleOverride;
24
+ };
25
+ export {};
@@ -1,3 +1,3 @@
1
1
  import { MushafPageProps } from './contexts/MushafPage/MushafPage.types';
2
- declare const Mushaf: ({ onWordClick, onWordHover, styleOverride }: MushafPageProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const Mushaf: ({ onWordClick, onWordHover }: MushafPageProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export default Mushaf;
@@ -1,9 +1,7 @@
1
1
  import { default as React } from 'react';
2
- import { BorderColor } from '../../../types/border-color';
3
2
  interface Props {
4
3
  chapterId: string;
5
4
  pageNumber: number;
6
- borderColor?: BorderColor;
7
5
  }
8
6
  declare const ChapterHeader: React.FC<Props>;
9
7
  export default ChapterHeader;
@@ -1,9 +1,7 @@
1
1
  import { default as React } from 'react';
2
- import { BorderColor } from '../../../types/border-color';
3
2
  interface Props {
4
3
  chapterId: string;
5
4
  hasSurahPrefix?: boolean;
6
- borderColor?: BorderColor;
7
5
  }
8
6
  declare const IconContainer: React.FC<Props>;
9
7
  export default IconContainer;