flipbookengine 0.5.2 → 0.5.4

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,4 +1,4 @@
1
- import { F as s, i as a, n as e } from "./engine-BuVkDIh-.js";
1
+ import { F as s, i as a, n as e } from "./engine-7jWE07Zq.js";
2
2
  export {
3
3
  s as FlipbookEngine,
4
4
  a as isFlipbookPageAsset,
@@ -1,6 +1,6 @@
1
1
  import { jsx as m } from "react/jsx-runtime";
2
2
  import { forwardRef as P, useRef as g, useImperativeHandle as x, useEffect as c } from "react";
3
- import { F as d } from "./engine-BuVkDIh-.js";
3
+ import { F as d } from "./engine-7jWE07Zq.js";
4
4
  const v = P(({
5
5
  className: a,
6
6
  style: f,
@@ -1 +1 @@
1
- {"version":3,"file":"flipbook-engine.react.js","sources":["../src/react/index.tsx"],"sourcesContent":["/**\n * FlipbookEngine\n * Copyright (c) 2026 Murat Dogan\n * SPDX-License-Identifier: AGPL-3.0-or-later\n * https://flipbookengine.com\n */\n\n/** @jsxImportSource react */\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { FlipbookEngine, FlipbookEngineOptions, FlipbookPageAsset } from '../index';\n\nexport interface FlipbookProps extends Omit<FlipbookEngineOptions, 'theme'> {\n className?: string;\n style?: React.CSSProperties;\n pdfUrl?: string;\n pages?: FlipbookPageAsset[];\n theme?: 'auto' | 'light' | 'dark';\n onPageChange?: (e: { currentPage: number; totalPages: number }) => void;\n}\n\nexport interface FlipbookRef {\n engine: FlipbookEngine | null;\n nextPage: () => void;\n prevPage: () => void;\n goToPage: (pageIndex: number) => void;\n flipNext: () => void;\n flipPrev: () => void;\n turnToPage: (pageIndex: number) => void;\n}\n\nexport const Flipbook = forwardRef<FlipbookRef, FlipbookProps>(({\n className,\n style,\n pdfUrl,\n pages,\n onPageChange,\n ...options\n}, ref) => {\n const containerRef = useRef<HTMLDivElement>(null);\n const engineRef = useRef<FlipbookEngine | null>(null);\n\n useImperativeHandle(ref, () => ({\n get engine() { return engineRef.current; },\n nextPage: () => engineRef.current?.nextPage(),\n prevPage: () => engineRef.current?.prevPage(),\n goToPage: (index: number) => engineRef.current?.goToPage(index),\n flipNext: () => engineRef.current?.nextPage(),\n flipPrev: () => engineRef.current?.prevPage(),\n turnToPage: (index: number) => engineRef.current?.goToPage(index)\n }), []);\n\n // Create one engine for the mounted component. Source data is managed by the\n // separate effect below so PDF-only renders do not trigger a second empty init.\n useEffect(() => {\n if (!containerRef.current) return;\n\n const engine = new FlipbookEngine(containerRef.current, options);\n engineRef.current = engine;\n const unsubscribeChange = engine.on('pageChange', (e: any) => onPageChange?.(e));\n\n return () => {\n unsubscribeChange();\n engine.destroy();\n engineRef.current = null;\n };\n // The engine is intentionally created once per mount, including Strict Mode remounts.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // A source update is the only place that initializes or reinitializes the engine.\n useEffect(() => {\n const engine = engineRef.current;\n if (!engine) return;\n engine.setPages(pages, pdfUrl).catch(console.error);\n }, [pdfUrl, pages]);\n\n useEffect(() => {\n engineRef.current?.updateOptions(options);\n }, [options]);\n\n return <div ref={containerRef} className={className} style={{ width: '100%', height: '100%', minHeight: '400px', ...style }} />;\n});\n\nFlipbook.displayName = 'Flipbook';\r\n"],"names":["Flipbook","forwardRef","className","style","pdfUrl","pages","onPageChange","options","ref","containerRef","useRef","engineRef","useImperativeHandle","_a","index","useEffect","engine","FlipbookEngine","unsubscribeChange","e","jsx"],"mappings":";;;AA8BO,MAAMA,IAAWC,EAAuC,CAAC;AAAA,EAC5D,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACP,GAAGC,MAAQ;AACP,QAAMC,IAAeC,EAAuB,IAAI,GAC1CC,IAAYD,EAA8B,IAAI;AAEpD,SAAAE,EAAoBJ,GAAK,OAAO;AAAA,IAC5B,IAAI,SAAS;AAAE,aAAOG,EAAU;AAAA,IAAS;AAAA,IACzC,UAAU,MAAA;;AAAM,cAAAE,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,UAAU,MAAA;;AAAM,cAAAA,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,UAAU,CAACC,MAAA;;AAAkB,cAAAD,IAAAF,EAAU,YAAV,gBAAAE,EAAmB,SAASC;AAAA;AAAA,IACzD,UAAU,MAAA;;AAAM,cAAAD,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,UAAU,MAAA;;AAAM,cAAAA,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,YAAY,CAACC,MAAA;;AAAkB,cAAAD,IAAAF,EAAU,YAAV,gBAAAE,EAAmB,SAASC;AAAA;AAAA,EAAK,IAChE,CAAA,CAAE,GAINC,EAAU,MAAM;AACZ,QAAI,CAACN,EAAa,QAAS;AAE3B,UAAMO,IAAS,IAAIC,EAAeR,EAAa,SAASF,CAAO;AAC/D,IAAAI,EAAU,UAAUK;AACpB,UAAME,IAAoBF,EAAO,GAAG,cAAc,CAACG,MAAWb,KAAA,gBAAAA,EAAea,EAAE;AAE/E,WAAO,MAAM;AACT,MAAAD,EAAA,GACAF,EAAO,QAAA,GACPL,EAAU,UAAU;AAAA,IACxB;AAAA,EAGJ,GAAG,CAAA,CAAE,GAGLI,EAAU,MAAM;AACZ,UAAMC,IAASL,EAAU;AACzB,IAAKK,KACLA,EAAO,SAASX,GAAOD,CAAM,EAAE,MAAM,QAAQ,KAAK;AAAA,EACtD,GAAG,CAACA,GAAQC,CAAK,CAAC,GAElBU,EAAU,MAAM;;AACZ,KAAAF,IAAAF,EAAU,YAAV,QAAAE,EAAmB,cAAcN;AAAA,EACrC,GAAG,CAACA,CAAO,CAAC,GAEL,gBAAAa,EAAC,OAAA,EAAI,KAAKX,GAAc,WAAAP,GAAsB,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,SAAS,GAAGC,KAAS;AACjI,CAAC;AAEDH,EAAS,cAAc;"}
1
+ {"version":3,"file":"flipbook-engine.react.js","sources":["../src/react/index.tsx"],"sourcesContent":["/**\r\n * FlipbookEngine\r\n * Copyright (c) 2026 Murat Dogan\r\n * SPDX-License-Identifier: AGPL-3.0-or-later\r\n * https://flipbookengine.com\r\n */\r\n\r\n/** @jsxImportSource react */\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\r\nimport { FlipbookEngine, FlipbookEngineOptions, FlipbookPageAsset } from '../index';\r\n\r\nexport interface FlipbookProps extends Omit<FlipbookEngineOptions, 'theme'> {\r\n className?: string;\r\n style?: React.CSSProperties;\r\n pdfUrl?: string;\r\n pages?: FlipbookPageAsset[];\r\n theme?: 'auto' | 'light' | 'dark';\r\n onPageChange?: (e: { currentPage: number; totalPages: number }) => void;\r\n}\r\n\r\nexport interface FlipbookRef {\r\n engine: FlipbookEngine | null;\r\n nextPage: () => void;\r\n prevPage: () => void;\r\n goToPage: (pageIndex: number) => void;\r\n flipNext: () => void;\r\n flipPrev: () => void;\r\n turnToPage: (pageIndex: number) => void;\r\n}\r\n\r\nexport const Flipbook = forwardRef<FlipbookRef, FlipbookProps>(({\r\n className,\r\n style,\r\n pdfUrl,\r\n pages,\r\n onPageChange,\r\n ...options\r\n}, ref) => {\r\n const containerRef = useRef<HTMLDivElement>(null);\r\n const engineRef = useRef<FlipbookEngine | null>(null);\r\n\r\n useImperativeHandle(ref, () => ({\r\n get engine() { return engineRef.current; },\r\n nextPage: () => engineRef.current?.nextPage(),\r\n prevPage: () => engineRef.current?.prevPage(),\r\n goToPage: (index: number) => engineRef.current?.goToPage(index),\r\n flipNext: () => engineRef.current?.nextPage(),\r\n flipPrev: () => engineRef.current?.prevPage(),\r\n turnToPage: (index: number) => engineRef.current?.goToPage(index)\r\n }), []);\r\n\r\n // Create one engine for the mounted component. Source data is managed by the\r\n // separate effect below so PDF-only renders do not trigger a second empty init.\r\n useEffect(() => {\r\n if (!containerRef.current) return;\r\n\r\n const engine = new FlipbookEngine(containerRef.current, options);\r\n engineRef.current = engine;\r\n const unsubscribeChange = engine.on('pageChange', (e: any) => onPageChange?.(e));\r\n\r\n return () => {\r\n unsubscribeChange();\r\n engine.destroy();\r\n engineRef.current = null;\r\n };\r\n // The engine is intentionally created once per mount, including Strict Mode remounts.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n // A source update is the only place that initializes or reinitializes the engine.\r\n useEffect(() => {\r\n const engine = engineRef.current;\r\n if (!engine) return;\r\n engine.setPages(pages, pdfUrl).catch(console.error);\r\n }, [pdfUrl, pages]);\r\n\r\n useEffect(() => {\r\n engineRef.current?.updateOptions(options);\r\n }, [options]);\r\n\r\n return <div ref={containerRef} className={className} style={{ width: '100%', height: '100%', minHeight: '400px', ...style }} />;\r\n});\r\n\r\nFlipbook.displayName = 'Flipbook';\r\n"],"names":["Flipbook","forwardRef","className","style","pdfUrl","pages","onPageChange","options","ref","containerRef","useRef","engineRef","useImperativeHandle","_a","index","useEffect","engine","FlipbookEngine","unsubscribeChange","e","jsx"],"mappings":";;;AA8BO,MAAMA,IAAWC,EAAuC,CAAC;AAAA,EAC5D,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,GAAGC;AACP,GAAGC,MAAQ;AACP,QAAMC,IAAeC,EAAuB,IAAI,GAC1CC,IAAYD,EAA8B,IAAI;AAEpD,SAAAE,EAAoBJ,GAAK,OAAO;AAAA,IAC5B,IAAI,SAAS;AAAE,aAAOG,EAAU;AAAA,IAAS;AAAA,IACzC,UAAU,MAAA;;AAAM,cAAAE,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,UAAU,MAAA;;AAAM,cAAAA,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,UAAU,CAACC,MAAA;;AAAkB,cAAAD,IAAAF,EAAU,YAAV,gBAAAE,EAAmB,SAASC;AAAA;AAAA,IACzD,UAAU,MAAA;;AAAM,cAAAD,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,UAAU,MAAA;;AAAM,cAAAA,IAAAF,EAAU,YAAV,gBAAAE,EAAmB;AAAA;AAAA,IACnC,YAAY,CAACC,MAAA;;AAAkB,cAAAD,IAAAF,EAAU,YAAV,gBAAAE,EAAmB,SAASC;AAAA;AAAA,EAAK,IAChE,CAAA,CAAE,GAINC,EAAU,MAAM;AACZ,QAAI,CAACN,EAAa,QAAS;AAE3B,UAAMO,IAAS,IAAIC,EAAeR,EAAa,SAASF,CAAO;AAC/D,IAAAI,EAAU,UAAUK;AACpB,UAAME,IAAoBF,EAAO,GAAG,cAAc,CAACG,MAAWb,KAAA,gBAAAA,EAAea,EAAE;AAE/E,WAAO,MAAM;AACT,MAAAD,EAAA,GACAF,EAAO,QAAA,GACPL,EAAU,UAAU;AAAA,IACxB;AAAA,EAGJ,GAAG,CAAA,CAAE,GAGLI,EAAU,MAAM;AACZ,UAAMC,IAASL,EAAU;AACzB,IAAKK,KACLA,EAAO,SAASX,GAAOD,CAAM,EAAE,MAAM,QAAQ,KAAK;AAAA,EACtD,GAAG,CAACA,GAAQC,CAAK,CAAC,GAElBU,EAAU,MAAM;;AACZ,KAAAF,IAAAF,EAAU,YAAV,QAAAE,EAAmB,cAAcN;AAAA,EACrC,GAAG,CAACA,CAAO,CAAC,GAEL,gBAAAa,EAAC,OAAA,EAAI,KAAKX,GAAc,WAAAP,GAAsB,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,SAAS,GAAGC,KAAS;AACjI,CAAC;AAEDH,EAAS,cAAc;"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent as d, ref as s, onMounted as g, onBeforeUnmount as P, watch as l, h as c } from "vue";
2
- import { F as h } from "./engine-BuVkDIh-.js";
2
+ import { F as h } from "./engine-7jWE07Zq.js";
3
3
  const v = d({
4
4
  name: "Flipbook",
5
5
  props: {
@@ -1 +1 @@
1
- {"version":3,"file":"flipbook-engine.vue.js","sources":["../src/vue/index.ts"],"sourcesContent":["/**\n * FlipbookEngine\n * Copyright (c) 2026 Murat Dogan\n * SPDX-License-Identifier: AGPL-3.0-or-later\n * https://flipbookengine.com\n */\n\nimport { defineComponent, h, ref, onMounted, onBeforeUnmount, watch, PropType } from 'vue';\nimport { FlipbookEngine, FlipbookEngineOptions, FlipbookPageAsset } from '../index';\n\nexport const Flipbook = defineComponent({\n name: 'Flipbook',\n props: {\n pdfUrl: {\n type: String,\n required: false,\n default: ''\n },\n pages: {\n type: Array as PropType<FlipbookPageAsset[]>,\n required: false,\n default: () => []\n },\n options: {\n type: Object as PropType<Omit<FlipbookEngineOptions, 'theme'> & { theme?: 'auto' | 'light' | 'dark' }>,\n default: () => ({})\n }\n },\n emits: ['pageChange'],\n setup(props, { emit, expose }) {\n const containerRef = ref<HTMLElement | null>(null);\n let engine: FlipbookEngine | null = null;\n let unsubscribeChange: (() => void) | undefined;\n\n onMounted(() => {\n if (!containerRef.value) return;\n\n engine = new FlipbookEngine(containerRef.value, props.options as any);\n unsubscribeChange = engine.on('pageChange', (e: any) => emit('pageChange', e));\n engine.setPages(props.pages, props.pdfUrl).catch(console.error);\n });\n\n onBeforeUnmount(() => {\n unsubscribeChange?.();\n engine?.destroy();\n engine = null;\n });\n\n watch(() => props.options, (newOptions) => {\n engine?.updateOptions(newOptions as any);\n }, { deep: true });\n\n // Source changes are handled together to guarantee one reinitialization per update.\n watch([() => props.pdfUrl, () => props.pages], ([newPdfUrl, newPages]) => {\n engine?.setPages(newPages || [], newPdfUrl || '').catch(console.error);\n }, { deep: true });\n\n expose({\n getEngine: () => engine,\n engine: () => engine,\n nextPage: () => engine?.nextPage(),\n prevPage: () => engine?.prevPage(),\n goToPage: (index: number) => engine?.goToPage(index),\n flipNext: () => engine?.nextPage(),\n flipPrev: () => engine?.prevPage(),\n turnToPage: (index: number) => engine?.goToPage(index)\n });\n\n return () => h('div', {\n ref: containerRef,\n style: { width: '100%', height: '100%', minHeight: '400px' }\n });\n }\n});\r\n"],"names":["Flipbook","defineComponent","props","emit","expose","containerRef","ref","engine","unsubscribeChange","onMounted","FlipbookEngine","e","onBeforeUnmount","watch","newOptions","newPdfUrl","newPages","index","h"],"mappings":";;AAUO,MAAMA,IAAWC,EAAgB;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AAAA,IACH,QAAQ;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEb,OAAO;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA,IAEpB,SAAS;AAAA,MACL,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA,IAAC;AAAA,EACrB;AAAA,EAEJ,OAAO,CAAC,YAAY;AAAA,EACpB,MAAMC,GAAO,EAAE,MAAAC,GAAM,QAAAC,KAAU;AAC3B,UAAMC,IAAeC,EAAwB,IAAI;AACjD,QAAIC,IAAgC,MAChCC;AAEJ,WAAAC,EAAU,MAAM;AACZ,MAAKJ,EAAa,UAElBE,IAAS,IAAIG,EAAeL,EAAa,OAAOH,EAAM,OAAc,GACpEM,IAAoBD,EAAO,GAAG,cAAc,CAACI,MAAWR,EAAK,cAAcQ,CAAC,CAAC,GAC7EJ,EAAO,SAASL,EAAM,OAAOA,EAAM,MAAM,EAAE,MAAM,QAAQ,KAAK;AAAA,IAClE,CAAC,GAEDU,EAAgB,MAAM;AAClB,MAAAJ,KAAA,QAAAA,KACAD,KAAA,QAAAA,EAAQ,WACRA,IAAS;AAAA,IACb,CAAC,GAEDM,EAAM,MAAMX,EAAM,SAAS,CAACY,MAAe;AACvC,MAAAP,KAAA,QAAAA,EAAQ,cAAcO;AAAA,IAC1B,GAAG,EAAE,MAAM,IAAM,GAGjBD,EAAM,CAAC,MAAMX,EAAM,QAAQ,MAAMA,EAAM,KAAK,GAAG,CAAC,CAACa,GAAWC,CAAQ,MAAM;AACtE,MAAAT,KAAA,QAAAA,EAAQ,SAASS,KAAY,IAAID,KAAa,IAAI,MAAM,QAAQ;AAAA,IACpE,GAAG,EAAE,MAAM,IAAM,GAEjBX,EAAO;AAAA,MACH,WAAW,MAAMG;AAAA,MACjB,QAAQ,MAAMA;AAAA,MACd,UAAU,MAAMA,KAAA,gBAAAA,EAAQ;AAAA,MACxB,UAAU,MAAMA,KAAA,gBAAAA,EAAQ;AAAA,MACxB,UAAU,CAACU,MAAkBV,KAAA,gBAAAA,EAAQ,SAASU;AAAA,MAC9C,UAAU,MAAMV,KAAA,gBAAAA,EAAQ;AAAA,MACxB,UAAU,MAAMA,KAAA,gBAAAA,EAAQ;AAAA,MACxB,YAAY,CAACU,MAAkBV,KAAA,gBAAAA,EAAQ,SAASU;AAAA,IAAK,CACxD,GAEM,MAAMC,EAAE,OAAO;AAAA,MAClB,KAAKb;AAAA,MACL,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,QAAA;AAAA,IAAQ,CAC9D;AAAA,EACL;AACJ,CAAC;"}
1
+ {"version":3,"file":"flipbook-engine.vue.js","sources":["../src/vue/index.ts"],"sourcesContent":["/**\r\n * FlipbookEngine\r\n * Copyright (c) 2026 Murat Dogan\r\n * SPDX-License-Identifier: AGPL-3.0-or-later\r\n * https://flipbookengine.com\r\n */\r\n\r\nimport { defineComponent, h, ref, onMounted, onBeforeUnmount, watch, PropType } from 'vue';\r\nimport { FlipbookEngine, FlipbookEngineOptions, FlipbookPageAsset } from '../index';\r\n\r\nexport const Flipbook = defineComponent({\r\n name: 'Flipbook',\r\n props: {\r\n pdfUrl: {\r\n type: String,\r\n required: false,\r\n default: ''\r\n },\r\n pages: {\r\n type: Array as PropType<FlipbookPageAsset[]>,\r\n required: false,\r\n default: () => []\r\n },\r\n options: {\r\n type: Object as PropType<Omit<FlipbookEngineOptions, 'theme'> & { theme?: 'auto' | 'light' | 'dark' }>,\r\n default: () => ({})\r\n }\r\n },\r\n emits: ['pageChange'],\r\n setup(props, { emit, expose }) {\r\n const containerRef = ref<HTMLElement | null>(null);\r\n let engine: FlipbookEngine | null = null;\r\n let unsubscribeChange: (() => void) | undefined;\r\n\r\n onMounted(() => {\r\n if (!containerRef.value) return;\r\n\r\n engine = new FlipbookEngine(containerRef.value, props.options as any);\r\n unsubscribeChange = engine.on('pageChange', (e: any) => emit('pageChange', e));\r\n engine.setPages(props.pages, props.pdfUrl).catch(console.error);\r\n });\r\n\r\n onBeforeUnmount(() => {\r\n unsubscribeChange?.();\r\n engine?.destroy();\r\n engine = null;\r\n });\r\n\r\n watch(() => props.options, (newOptions) => {\r\n engine?.updateOptions(newOptions as any);\r\n }, { deep: true });\r\n\r\n // Source changes are handled together to guarantee one reinitialization per update.\r\n watch([() => props.pdfUrl, () => props.pages], ([newPdfUrl, newPages]) => {\r\n engine?.setPages(newPages || [], newPdfUrl || '').catch(console.error);\r\n }, { deep: true });\r\n\r\n expose({\r\n getEngine: () => engine,\r\n engine: () => engine,\r\n nextPage: () => engine?.nextPage(),\r\n prevPage: () => engine?.prevPage(),\r\n goToPage: (index: number) => engine?.goToPage(index),\r\n flipNext: () => engine?.nextPage(),\r\n flipPrev: () => engine?.prevPage(),\r\n turnToPage: (index: number) => engine?.goToPage(index)\r\n });\r\n\r\n return () => h('div', {\r\n ref: containerRef,\r\n style: { width: '100%', height: '100%', minHeight: '400px' }\r\n });\r\n }\r\n});\r\n"],"names":["Flipbook","defineComponent","props","emit","expose","containerRef","ref","engine","unsubscribeChange","onMounted","FlipbookEngine","e","onBeforeUnmount","watch","newOptions","newPdfUrl","newPages","index","h"],"mappings":";;AAUO,MAAMA,IAAWC,EAAgB;AAAA,EACpC,MAAM;AAAA,EACN,OAAO;AAAA,IACH,QAAQ;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,IAEb,OAAO;AAAA,MACH,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS,MAAM,CAAA;AAAA,IAAC;AAAA,IAEpB,SAAS;AAAA,MACL,MAAM;AAAA,MACN,SAAS,OAAO,CAAA;AAAA,IAAC;AAAA,EACrB;AAAA,EAEJ,OAAO,CAAC,YAAY;AAAA,EACpB,MAAMC,GAAO,EAAE,MAAAC,GAAM,QAAAC,KAAU;AAC3B,UAAMC,IAAeC,EAAwB,IAAI;AACjD,QAAIC,IAAgC,MAChCC;AAEJ,WAAAC,EAAU,MAAM;AACZ,MAAKJ,EAAa,UAElBE,IAAS,IAAIG,EAAeL,EAAa,OAAOH,EAAM,OAAc,GACpEM,IAAoBD,EAAO,GAAG,cAAc,CAACI,MAAWR,EAAK,cAAcQ,CAAC,CAAC,GAC7EJ,EAAO,SAASL,EAAM,OAAOA,EAAM,MAAM,EAAE,MAAM,QAAQ,KAAK;AAAA,IAClE,CAAC,GAEDU,EAAgB,MAAM;AAClB,MAAAJ,KAAA,QAAAA,KACAD,KAAA,QAAAA,EAAQ,WACRA,IAAS;AAAA,IACb,CAAC,GAEDM,EAAM,MAAMX,EAAM,SAAS,CAACY,MAAe;AACvC,MAAAP,KAAA,QAAAA,EAAQ,cAAcO;AAAA,IAC1B,GAAG,EAAE,MAAM,IAAM,GAGjBD,EAAM,CAAC,MAAMX,EAAM,QAAQ,MAAMA,EAAM,KAAK,GAAG,CAAC,CAACa,GAAWC,CAAQ,MAAM;AACtE,MAAAT,KAAA,QAAAA,EAAQ,SAASS,KAAY,IAAID,KAAa,IAAI,MAAM,QAAQ;AAAA,IACpE,GAAG,EAAE,MAAM,IAAM,GAEjBX,EAAO;AAAA,MACH,WAAW,MAAMG;AAAA,MACjB,QAAQ,MAAMA;AAAA,MACd,UAAU,MAAMA,KAAA,gBAAAA,EAAQ;AAAA,MACxB,UAAU,MAAMA,KAAA,gBAAAA,EAAQ;AAAA,MACxB,UAAU,CAACU,MAAkBV,KAAA,gBAAAA,EAAQ,SAASU;AAAA,MAC9C,UAAU,MAAMV,KAAA,gBAAAA,EAAQ;AAAA,MACxB,UAAU,MAAMA,KAAA,gBAAAA,EAAQ;AAAA,MACxB,YAAY,CAACU,MAAkBV,KAAA,gBAAAA,EAAQ,SAASU;AAAA,IAAK,CACxD,GAEM,MAAMC,EAAE,OAAO;AAAA,MAClB,KAAKb;AAAA,MACL,OAAO,EAAE,OAAO,QAAQ,QAAQ,QAAQ,WAAW,QAAA;AAAA,IAAQ,CAC9D;AAAA,EACL;AACJ,CAAC;"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: AGPL-3.0-or-later
5
5
  * https://flipbookengine.com
6
6
  */
7
- export { FlipbookEngine, type FlipbookEngineOptions, type PageImages, type FlipbookEngineEventMap, type FlipbookEngineEventName } from './engine';
7
+ export { FlipbookEngine, type FlipbookEngineOptions, type FlipbookLocaleMessages, type PageImages, type FlipbookEngineEventMap, type FlipbookEngineEventName } from './engine';
8
8
  export type { FlipbookPageAsset, FlipbookPageKind, FlipbookCropMode, FlipbookSplitDirection, NormalizedFlipbookPage } from './model/pages';
9
9
  export { normalizeFlipbookPages, isFlipbookPageAsset } from './model/pages';
10
10
  export type { FlipbookLocale, FlipbookMessages, PartialFlipbookMessages } from './i18n/service';
@@ -38,6 +38,7 @@ export interface FlipbookStore {
38
38
  isFrontCover: ReadonlySignal<boolean>;
39
39
  isBackCover: ReadonlySignal<boolean>;
40
40
  init(options: FlipbookEngineOptions, total: number, mappedPages: NormalizedFlipbookPage[], hasPdfUrl: boolean): void;
41
+ reset(): void;
41
42
  }
42
43
  /** Creates an isolated reactive state container for one FlipbookEngine instance. */
43
44
  export declare function createFlipbookStore(): FlipbookStore;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flipbookengine",
3
- "version": "0.5.2",
3
+ "version": "0.5.4",
4
4
  "description": "A modern, embeddable HTML flipbook engine for PDF-backed catalogs and digital publications.",
5
5
  "private": false,
6
6
  "scripts": {
@@ -94,7 +94,7 @@
94
94
  "@types/page-flip": "^2.0.4",
95
95
  "@types/react": "^19.2.14",
96
96
  "@types/react-dom": "^19.2.3",
97
- "jsdom": "^29.1.1",
97
+ "jsdom": "^26.1.0",
98
98
  "react": "^19.2.6",
99
99
  "react-dom": "^19.2.6",
100
100
  "rimraf": "^6.0.0",
@@ -1,5 +1,5 @@
1
- {
2
- "main": "../dist/flipbook-engine.react.js",
3
- "module": "../dist/flipbook-engine.react.js",
4
- "types": "../dist/react/index.d.ts"
5
- }
1
+ {
2
+ "main": "../dist/flipbook-engine.react.js",
3
+ "module": "../dist/flipbook-engine.react.js",
4
+ "types": "../dist/react/index.d.ts"
5
+ }
package/vue/package.json CHANGED
@@ -1,5 +1,5 @@
1
- {
2
- "main": "../dist/flipbook-engine.vue.js",
3
- "module": "../dist/flipbook-engine.vue.js",
4
- "types": "../dist/vue/index.d.ts"
5
- }
1
+ {
2
+ "main": "../dist/flipbook-engine.vue.js",
3
+ "module": "../dist/flipbook-engine.vue.js",
4
+ "types": "../dist/vue/index.d.ts"
5
+ }