@prose-reader/react-native 1.324.0 → 1.325.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.
@@ -2,7 +2,7 @@ import { ContextState, createReader, EnhancerPaginationInto, Manifest } from '@p
2
2
  import { Bridge, BridgeStore } from '@webview-bridge/react-native';
3
3
  type ReaderOptions = Parameters<typeof createReader>[0];
4
4
  type RnPaginationState = Omit<EnhancerPaginationInto, "navigationId">;
5
- type RnContextState = Omit<ContextState, "containerElement" | "rootElement">;
5
+ type RnContextState = Omit<ContextState, "rootElement">;
6
6
  export interface BridgeState extends Bridge {
7
7
  pagination: RnPaginationState | undefined;
8
8
  setPagination: (pagination: RnPaginationState) => Promise<void>;
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@webview-bridge/web");var t=()=>(0,e.linkBridge)({onReady:async()=>{}}),n=({bridge:e,reader:t,containerElement:n})=>(e.addEventListener(`load`,e=>{t.load({containerElement:n,manifest:e.manifest})}),e.addEventListener(`turnRight`,()=>{t.navigation.turnRight()}),e.addEventListener(`turnLeft`,()=>{t.navigation.turnLeft()}),t.pagination.state$.subscribe(t=>{e.setPagination(t)}),t.context.subscribe(({rootElement:t,...n})=>{e.setContext(n)}),t);exports.bridgeReader=n,exports.createReaderBridge=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@webview-bridge/web");var t=()=>(0,e.linkBridge)({onReady:async()=>{}}),n=({bridge:e,createReader:t,containerElement:n})=>{let r;return e.addEventListener(`load`,i=>{r?.destroy();let a=t(i.manifest);r=a,a.pagination.state$.subscribe(t=>{e.setPagination(t)}),a.context.subscribe(({rootElement:t,...n})=>{e.setContext(n)}),a.mount(n)}),e.addEventListener(`turnRight`,()=>{r?.navigation.turnRight()}),e.addEventListener(`turnLeft`,()=>{r?.navigation.turnLeft()}),{getReader:()=>r}};exports.bridgeReader=n,exports.createReaderBridge=t;
@@ -1,10 +1,166 @@
1
- import { createReader as createReaderCore } from '@prose-reader/core';
1
+ import { createReader as createReaderCore, Manifest } from '@prose-reader/core';
2
2
  import { ProseBridgeStore, ProsePostMessageSchema } from '../shared';
3
3
  type Reader = ReturnType<typeof createReaderCore>;
4
4
  export declare const createReaderBridge: () => import('@webview-bridge/web').LinkBridge<import('@webview-bridge/types').ExcludePrimitive<import('../shared').BridgeMethods & import('../shared').BridgeState>, Omit<ProseBridgeStore, "setState">, ProsePostMessageSchema>;
5
- export declare const bridgeReader: ({ bridge, reader, containerElement, }: {
6
- reader: Reader;
5
+ export declare const bridgeReader: ({ bridge, createReader, containerElement, }: {
6
+ /**
7
+ * Factory invoked for every `load` event coming from the native side.
8
+ * A reader renders a single book: a subsequent `load` destroys the
9
+ * previous reader and creates a fresh one from the new manifest.
10
+ */
11
+ createReader: (manifest: Manifest) => Reader;
7
12
  bridge: ReturnType<typeof createReaderBridge>;
8
13
  containerElement: HTMLElement;
9
- }) => Reader;
14
+ }) => {
15
+ getReader: () => (Omit<Omit<Omit<{
16
+ id: `${string}-${string}-${string}-${string}-${string}`;
17
+ context: import('@prose-reader/core').Context;
18
+ spine: import('@prose-reader/core').Spine;
19
+ hookManager: import('@prose-reader/core').HookManager<import('@prose-reader/core').CoreHook>;
20
+ cfi: import('@prose-reader/core').CfiManager;
21
+ navigation: {
22
+ destroy: () => void;
23
+ getNavigation: () => import('@prose-reader/core').InternalNavigationEntry;
24
+ internalNavigator: import('@prose-reader/core').InternalNavigator;
25
+ scrollNavigationController: import('@prose-reader/core').ScrollNavigationController;
26
+ controlledNavigationController: import('@prose-reader/core').ControlledNavigationController;
27
+ navigationState$: import('rxjs').Observable<"free" | "busy">;
28
+ navigate: (to: import('@prose-reader/core').UserNavigationEntry) => void;
29
+ lock: () => () => void;
30
+ isLocked$: import('rxjs').Observable<boolean>;
31
+ navigationResolver: {
32
+ getNavigationForUrl: (url: string | URL) => {
33
+ position: import('@prose-reader/core').SpinePosition;
34
+ spineItemId: string;
35
+ } | undefined;
36
+ getNavigationForSpineItemPage: (params: Omit<Parameters<getNavigationForSpineItemPage>[0], "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator" | "viewport">) => import('@prose-reader/core').SpinePosition;
37
+ getNavigationFromSpineItemPosition: (params: {
38
+ spineItemPosition: import('@prose-reader/core').SpineItemPosition;
39
+ spineItem: import('@prose-reader/core').SpineItem;
40
+ }) => import('@prose-reader/core').SpinePosition;
41
+ getNavigationForCfi: (cfi: string) => import('@prose-reader/core').SpinePosition | undefined;
42
+ getNavigationForLastPage: (spineItem: import('@prose-reader/core').SpineItem) => import('@prose-reader/core').SpinePosition;
43
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | import('@prose-reader/core').SpineItem) => import('@prose-reader/core').SpinePosition;
44
+ getNavigationForPosition: (viewportPosition: import('@prose-reader/core').SpinePosition | import('@prose-reader/core').UnboundSpinePosition) => import('@prose-reader/core').SpinePosition;
45
+ getMostPredominantNavigationForPosition: (viewportPosition: import('@prose-reader/core').SpinePosition) => import('@prose-reader/core').SpinePosition;
46
+ clampPositionInSpine: (position: import('@prose-reader/core').SpinePosition | import('@prose-reader/core').UnboundSpinePosition, size: import('@prose-reader/core').NavigationVisibleArea) => import('@prose-reader/core').UnboundSpinePosition;
47
+ getBoundaryForPosition: (position: import('@prose-reader/core').SpinePosition | import('@prose-reader/core').UnboundSpinePosition, size?: import('@prose-reader/core').NavigationVisibleArea) => import('@prose-reader/core').SpineBoundary | undefined;
48
+ isNavigationGoingForwardFrom: (to: import('@prose-reader/core').SpinePosition, from: import('@prose-reader/core').SpinePosition) => boolean;
49
+ arePositionsDifferent: (a: {
50
+ x: number;
51
+ y: number;
52
+ }, b: {
53
+ x: number;
54
+ y: number;
55
+ }) => boolean;
56
+ getAdjustedPositionForSpread: (position: import('@prose-reader/core').SpinePosition | import('@prose-reader/core').UnboundSpinePosition) => import('@prose-reader/core').SpinePosition | import('@prose-reader/core').UnboundSpinePosition;
57
+ spineItemNavigator: {
58
+ getNavigationForLastPage: (spineItem: import('@prose-reader/core').SpineItem) => import('@prose-reader/core').SpineItemPosition;
59
+ getNavigationForPosition: (spineItem: import('@prose-reader/core').SpineItem, position: import('@prose-reader/core').SpineItemPosition) => import('@prose-reader/core').SpineItemPosition;
60
+ getNavigationFromNode: (spineItem: import('@prose-reader/core').SpineItem, node: Node, offset: number) => import('@prose-reader/core').SpineItemPosition;
61
+ };
62
+ };
63
+ navigation$: import('rxjs').Observable<Pick<import('@prose-reader/core').InternalNavigationEntry, "id" | "position" | "requestedPosition" | "requestedVisibleArea"> & {
64
+ triggeredBy: import('@prose-reader/core').InternalNavigationEntry["meta"]["triggeredBy"];
65
+ }>;
66
+ position$: import('rxjs').Observable<import('@prose-reader/core').SpinePosition | import('@prose-reader/core').UnboundSpinePosition>;
67
+ };
68
+ spineItemsObserver: import('@prose-reader/core').SpineItemsObserver;
69
+ spineItemsManager: import('@prose-reader/core').SpineItemsManager;
70
+ layout: (options?: {
71
+ immediate?: boolean;
72
+ }) => void;
73
+ mount: (containerElement: HTMLElement) => void;
74
+ destroy: () => void;
75
+ pagination: {
76
+ readonly state: import('@prose-reader/core').PaginationInfo;
77
+ readonly state$: import('rxjs').Observable<import('rxjs').ObservedValueOf<import('@prose-reader/core').Pagination>>;
78
+ };
79
+ settings: import('@prose-reader/core').SettingsInterface<NonNullable<import('@prose-reader/core').CoreInputSettings>, NonNullable<import('@prose-reader/core').CoreOutputSettings | undefined>>;
80
+ renderHeadless: (spineItem: import('@prose-reader/core').SpineItemReference) => import('rxjs').Observable<{
81
+ doc: Document;
82
+ release: () => void;
83
+ } | undefined>;
84
+ viewport: import('@prose-reader/core').Viewport;
85
+ viewportState$: import('rxjs').Observable<"free" | "busy">;
86
+ viewportFree$: import('rxjs').Observable<"free">;
87
+ mounted$: import('rxjs').Observable<boolean>;
88
+ features: import('@prose-reader/core').Features;
89
+ $: {
90
+ destroy$: import('rxjs').Subject<void>;
91
+ };
92
+ } & {
93
+ theme: import('@prose-reader/core').ThemeEnhancerOutput;
94
+ }, "settings"> & import('@prose-reader/core').LayoutEnhancerOutput & {
95
+ settings: import('@prose-reader/core').SettingsInterface<import('@prose-reader/core').CoreInputSettings & import('@prose-reader/core').EnhancerLayoutInputSettings, import('@prose-reader/core').EnhancerLayoutInputSettings & import('@prose-reader/core').CoreInputSettings & import('@prose-reader/core').ComputedCoreSettings>;
96
+ }, "pagination"> & {
97
+ pagination: Omit<{
98
+ readonly state: import('@prose-reader/core').PaginationInfo;
99
+ readonly state$: import('rxjs').Observable<import('rxjs').ObservedValueOf<import('@prose-reader/core').Pagination>>;
100
+ }, "state" | "state$"> & {
101
+ state$: import('rxjs').Observable<import('@prose-reader/core').PaginationInfo & import('@prose-reader/core').ExtraPaginationInfo>;
102
+ state: import('@prose-reader/core').PaginationInfo & import('@prose-reader/core').ExtraPaginationInfo;
103
+ };
104
+ locateResource: import('@prose-reader/core').ResourcesLocator["locateResource"];
105
+ } & {
106
+ links$: import('rxjs').Observable<MouseEvent>;
107
+ } & import('@prose-reader/core').NavigationEnhancerOutput & import('@prose-reader/core').ZoomEnhancerOutput & {
108
+ utils: {
109
+ isOrIsWithinValidLink: (target: Event[`target`]) => boolean;
110
+ injectScopedCSS: (doc: Document, scope: string, styleTemplate: string) => () => void;
111
+ };
112
+ }, "settings"> & {
113
+ settings: import('@prose-reader/core').SettingsInterface<import('@prose-reader/core').CoreInputSettings & import('@prose-reader/core').EnhancerLayoutInputSettings & import('@prose-reader/core').EnhancerFontsInputSettings, import('@prose-reader/core').EnhancerFontsInputSettings & import('@prose-reader/core').EnhancerLayoutInputSettings & import('@prose-reader/core').CoreInputSettings & import('@prose-reader/core').ComputedCoreSettings>;
114
+ } & {
115
+ selection: {
116
+ selection$: import('rxjs').Observable<{
117
+ itemIndex: number;
118
+ type: "change";
119
+ selection: Selection;
120
+ } | {
121
+ itemIndex: number;
122
+ type: "over";
123
+ event: Event;
124
+ selection: Selection;
125
+ } | undefined>;
126
+ selectionStart$: import('rxjs').Observable<boolean>;
127
+ selectionEnd$: import('rxjs').Observable<void>;
128
+ selectionOver$: import('rxjs').Observable<{
129
+ itemIndex: number;
130
+ type: "over";
131
+ event: Event;
132
+ selection: Selection;
133
+ }>;
134
+ lastSelectionOnPointerdown$: import('rxjs').Observable<{
135
+ itemIndex: number;
136
+ type: "change";
137
+ selection: Selection;
138
+ } | {
139
+ itemIndex: number;
140
+ type: "over";
141
+ event: Event;
142
+ selection: Selection;
143
+ } | undefined>;
144
+ getSelection: () => {
145
+ itemIndex: number;
146
+ type: "change";
147
+ selection: Selection;
148
+ } | {
149
+ itemIndex: number;
150
+ type: "over";
151
+ event: Event;
152
+ selection: Selection;
153
+ } | undefined;
154
+ createOrderedRangeFromSelection: (params: {
155
+ selection: {
156
+ anchorNode?: Node | null;
157
+ anchorOffset?: number;
158
+ focusNode?: Node | null;
159
+ focusOffset?: number;
160
+ };
161
+ spineItem: import('@prose-reader/core').SpineItem;
162
+ }) => Range | undefined;
163
+ };
164
+ }) | undefined;
165
+ };
10
166
  export {};
package/dist/web/index.js CHANGED
@@ -1,18 +1,20 @@
1
1
  import { linkBridge as e } from "@webview-bridge/web";
2
2
  //#region src/web/index.ts
3
- var t = () => e({ onReady: async () => {} }), n = ({ bridge: e, reader: t, containerElement: n }) => (e.addEventListener("load", (e) => {
4
- t.load({
5
- containerElement: n,
6
- manifest: e.manifest
7
- });
8
- }), e.addEventListener("turnRight", () => {
9
- t.navigation.turnRight();
10
- }), e.addEventListener("turnLeft", () => {
11
- t.navigation.turnLeft();
12
- }), t.pagination.state$.subscribe((t) => {
13
- e.setPagination(t);
14
- }), t.context.subscribe(({ rootElement: t, ...n }) => {
15
- e.setContext(n);
16
- }), t);
3
+ var t = () => e({ onReady: async () => {} }), n = ({ bridge: e, createReader: t, containerElement: n }) => {
4
+ let r;
5
+ return e.addEventListener("load", (i) => {
6
+ r?.destroy();
7
+ let a = t(i.manifest);
8
+ r = a, a.pagination.state$.subscribe((t) => {
9
+ e.setPagination(t);
10
+ }), a.context.subscribe(({ rootElement: t, ...n }) => {
11
+ e.setContext(n);
12
+ }), a.mount(n);
13
+ }), e.addEventListener("turnRight", () => {
14
+ r?.navigation.turnRight();
15
+ }), e.addEventListener("turnLeft", () => {
16
+ r?.navigation.turnLeft();
17
+ }), { getReader: () => r };
18
+ };
17
19
  //#endregion
18
20
  export { n as bridgeReader, t as createReaderBridge };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/react-native",
3
- "version": "1.324.0",
3
+ "version": "1.325.0",
4
4
  "type": "module",
5
5
  "main": "./dist/native/index.cjs",
6
6
  "module": "./dist/native/index.js",
@@ -42,5 +42,5 @@
42
42
  "react": "19.x",
43
43
  "rxjs": "*"
44
44
  },
45
- "gitHead": "70a490808c1db75819d239ccc6ef7933a1156a4f"
45
+ "gitHead": "b450baa3343e03a2d6adb584124325fe9f54ca68"
46
46
  }