@embedpdf/core 1.4.1 → 2.0.0-next.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 (55) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +680 -113
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/base/base-plugin.d.ts +52 -0
  6. package/dist/lib/index.d.ts +1 -0
  7. package/dist/lib/registry/plugin-registry.d.ts +6 -2
  8. package/dist/lib/store/actions.d.ts +122 -31
  9. package/dist/lib/store/initial-state.d.ts +22 -6
  10. package/dist/lib/store/reducer-helpers.d.ts +11 -0
  11. package/dist/lib/store/selectors.d.ts +21 -3
  12. package/dist/lib/types/plugin.d.ts +2 -2
  13. package/dist/lib/utils/event-control.d.ts +37 -2
  14. package/dist/lib/utils/eventing.d.ts +1 -1
  15. package/dist/lib/utils/scoped-eventing.d.ts +71 -0
  16. package/dist/preact/index.cjs +1 -1
  17. package/dist/preact/index.cjs.map +1 -1
  18. package/dist/preact/index.js +53 -18
  19. package/dist/preact/index.js.map +1 -1
  20. package/dist/react/index.cjs +1 -1
  21. package/dist/react/index.cjs.map +1 -1
  22. package/dist/react/index.js +53 -18
  23. package/dist/react/index.js.map +1 -1
  24. package/dist/shared/context.d.ts +6 -1
  25. package/dist/shared/hooks/index.d.ts +1 -0
  26. package/dist/shared/hooks/use-core-state.d.ts +4 -2
  27. package/dist/shared/hooks/use-document-state.d.ts +8 -0
  28. package/dist/shared-preact/context.d.ts +6 -1
  29. package/dist/shared-preact/hooks/index.d.ts +1 -0
  30. package/dist/shared-preact/hooks/use-core-state.d.ts +4 -2
  31. package/dist/shared-preact/hooks/use-document-state.d.ts +8 -0
  32. package/dist/shared-react/context.d.ts +6 -1
  33. package/dist/shared-react/hooks/index.d.ts +1 -0
  34. package/dist/shared-react/hooks/use-core-state.d.ts +4 -2
  35. package/dist/shared-react/hooks/use-document-state.d.ts +8 -0
  36. package/dist/svelte/hooks/index.d.ts +1 -0
  37. package/dist/svelte/hooks/use-core-state.svelte.d.ts +5 -4
  38. package/dist/svelte/hooks/use-document-state.svelte.d.ts +9 -0
  39. package/dist/svelte/hooks/use-registry.svelte.d.ts +6 -1
  40. package/dist/svelte/index.cjs +1 -1
  41. package/dist/svelte/index.cjs.map +1 -1
  42. package/dist/svelte/index.js +55 -17
  43. package/dist/svelte/index.js.map +1 -1
  44. package/dist/vue/components/auto-mount.vue.d.ts +3 -2
  45. package/dist/vue/components/embed-pdf.vue.d.ts +13 -2
  46. package/dist/vue/components/nested-wrapper.vue.d.ts +3 -2
  47. package/dist/vue/composables/index.d.ts +1 -0
  48. package/dist/vue/composables/use-core-state.d.ts +8 -1
  49. package/dist/vue/composables/use-document-state.d.ts +8 -0
  50. package/dist/vue/context.d.ts +6 -1
  51. package/dist/vue/index.cjs +1 -1
  52. package/dist/vue/index.cjs.map +1 -1
  53. package/dist/vue/index.js +88 -27
  54. package/dist/vue/index.js.map +1 -1
  55. package/package.json +3 -3
package/dist/vue/index.js CHANGED
@@ -1,5 +1,5 @@
1
- import { inject, ref, onMounted, onBeforeUnmount, shallowRef, watch, computed, defineComponent, resolveComponent, createBlock, openBlock, resolveDynamicComponent, withCtx, renderSlot, createElementBlock, Fragment, renderList, provide } from "vue";
2
- import { arePropsEqual, hasAutoMountElements, PluginRegistry } from "@embedpdf/core";
1
+ import { inject, computed, toValue, shallowRef, ref, onMounted, watch, onBeforeUnmount, defineComponent, resolveComponent, createBlock, openBlock, resolveDynamicComponent, withCtx, renderSlot, createElementBlock, Fragment, renderList, provide } from "vue";
2
+ import { hasAutoMountElements, PluginRegistry } from "@embedpdf/core";
3
3
  const pdfKey = Symbol("pdfKey");
4
4
  function useRegistry() {
5
5
  const ctx = inject(pdfKey);
@@ -7,19 +7,18 @@ function useRegistry() {
7
7
  return ctx;
8
8
  }
9
9
  function useCoreState() {
10
- const { registry } = useRegistry();
11
- const core = ref();
12
- onMounted(() => {
13
- const store = registry.value.getStore();
14
- core.value = store.getState().core;
15
- const unsub = store.subscribe((action, newSt, oldSt) => {
16
- if (store.isCoreAction(action) && !arePropsEqual(newSt.core, oldSt.core)) {
17
- core.value = newSt.core;
18
- }
19
- });
20
- onBeforeUnmount(unsub);
10
+ const { coreState } = useRegistry();
11
+ return coreState;
12
+ }
13
+ function useDocumentState(documentId) {
14
+ const coreState = useCoreState();
15
+ const documentState = computed(() => {
16
+ const core = coreState.value;
17
+ const docId = toValue(documentId);
18
+ if (!core || !docId) return null;
19
+ return core.documents[docId] ?? null;
21
20
  });
22
- return core;
21
+ return documentState;
23
22
  }
24
23
  function usePlugin(pluginId) {
25
24
  const { registry } = useRegistry();
@@ -76,11 +75,11 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
76
75
  setup(__props) {
77
76
  return (_ctx, _cache) => {
78
77
  const _component_NestedWrapper = resolveComponent("NestedWrapper", true);
79
- return openBlock(), createBlock(resolveDynamicComponent(_ctx.wrappers[0]), null, {
78
+ return openBlock(), createBlock(resolveDynamicComponent(__props.wrappers[0]), null, {
80
79
  default: withCtx(() => [
81
- _ctx.wrappers.length > 1 ? (openBlock(), createBlock(_component_NestedWrapper, {
80
+ __props.wrappers.length > 1 ? (openBlock(), createBlock(_component_NestedWrapper, {
82
81
  key: 0,
83
- wrappers: _ctx.wrappers.slice(1)
82
+ wrappers: __props.wrappers.slice(1)
84
83
  }, {
85
84
  default: withCtx(() => [
86
85
  renderSlot(_ctx.$slots, "default")
@@ -150,41 +149,102 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
150
149
  setup(__props) {
151
150
  const props = __props;
152
151
  const registry = shallowRef(null);
152
+ const coreState = ref(null);
153
153
  const isInit = ref(true);
154
154
  const pluginsOk = ref(false);
155
- provide(pdfKey, { registry, isInitializing: isInit, pluginsReady: pluginsOk });
155
+ const activeDocumentId = computed(() => {
156
+ var _a;
157
+ return ((_a = coreState.value) == null ? void 0 : _a.activeDocumentId) ?? null;
158
+ });
159
+ const documents = computed(() => {
160
+ var _a;
161
+ return ((_a = coreState.value) == null ? void 0 : _a.documents) ?? {};
162
+ });
163
+ const documentOrder = computed(() => {
164
+ var _a;
165
+ return ((_a = coreState.value) == null ? void 0 : _a.documentOrder) ?? [];
166
+ });
167
+ const activeDocument = computed(() => {
168
+ const docId = activeDocumentId.value;
169
+ const docs = documents.value;
170
+ return docId && docs[docId] ? docs[docId] : null;
171
+ });
172
+ const documentStates = computed(() => {
173
+ const docs = documents.value;
174
+ const order = documentOrder.value;
175
+ return order.map((docId) => docs[docId]).filter((doc) => doc !== null && doc !== void 0);
176
+ });
177
+ provide(pdfKey, {
178
+ registry,
179
+ coreState,
180
+ isInitializing: isInit,
181
+ pluginsReady: pluginsOk,
182
+ activeDocumentId,
183
+ activeDocument,
184
+ documents,
185
+ documentStates
186
+ });
156
187
  onMounted(async () => {
157
188
  var _a;
158
189
  const reg = new PluginRegistry(props.engine, { logger: props.logger });
159
190
  reg.registerPluginBatch(props.plugins);
160
191
  await reg.initialize();
192
+ if (reg.isDestroyed()) {
193
+ return;
194
+ }
195
+ const store = reg.getStore();
196
+ coreState.value = store.getState().core;
197
+ const unsubscribe = store.subscribe((action, newState, oldState) => {
198
+ if (store.isCoreAction(action) && newState.core !== oldState.core) {
199
+ coreState.value = newState.core;
200
+ }
201
+ });
161
202
  await ((_a = props.onInitialized) == null ? void 0 : _a.call(props, reg));
203
+ if (reg.isDestroyed()) {
204
+ unsubscribe();
205
+ return;
206
+ }
162
207
  registry.value = reg;
163
208
  isInit.value = false;
164
- reg.pluginsReady().then(() => pluginsOk.value = true);
165
- });
166
- onBeforeUnmount(() => {
167
- var _a;
168
- return (_a = registry.value) == null ? void 0 : _a.destroy();
209
+ reg.pluginsReady().then(() => {
210
+ if (!reg.isDestroyed()) {
211
+ pluginsOk.value = true;
212
+ }
213
+ });
214
+ onBeforeUnmount(() => {
215
+ var _a2;
216
+ unsubscribe();
217
+ (_a2 = registry.value) == null ? void 0 : _a2.destroy();
218
+ });
169
219
  });
170
220
  return (_ctx, _cache) => {
171
- return pluginsOk.value && _ctx.autoMountDomElements ? (openBlock(), createBlock(_sfc_main$1, {
221
+ return pluginsOk.value && __props.autoMountDomElements ? (openBlock(), createBlock(_sfc_main$1, {
172
222
  key: 0,
173
- plugins: _ctx.plugins
223
+ plugins: __props.plugins
174
224
  }, {
175
225
  default: withCtx(() => [
176
226
  renderSlot(_ctx.$slots, "default", {
177
227
  registry: registry.value,
228
+ coreState: coreState.value,
178
229
  isInitializing: isInit.value,
179
- pluginsReady: pluginsOk.value
230
+ pluginsReady: pluginsOk.value,
231
+ activeDocumentId: activeDocumentId.value,
232
+ activeDocument: activeDocument.value,
233
+ documents: documents.value,
234
+ documentStates: documentStates.value
180
235
  })
181
236
  ]),
182
237
  _: 3
183
238
  }, 8, ["plugins"])) : renderSlot(_ctx.$slots, "default", {
184
239
  key: 1,
185
240
  registry: registry.value,
241
+ coreState: coreState.value,
186
242
  isInitializing: isInit.value,
187
- pluginsReady: pluginsOk.value
243
+ pluginsReady: pluginsOk.value,
244
+ activeDocumentId: activeDocumentId.value,
245
+ activeDocument: activeDocument.value,
246
+ documents: documents.value,
247
+ documentStates: documentStates.value
188
248
  });
189
249
  };
190
250
  }
@@ -193,6 +253,7 @@ export {
193
253
  _sfc_main as EmbedPDF,
194
254
  useCapability,
195
255
  useCoreState,
256
+ useDocumentState,
196
257
  usePlugin,
197
258
  useRegistry,
198
259
  useStoreState
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/vue/context.ts","../../src/vue/composables/use-registry.ts","../../src/vue/composables/use-core-state.ts","../../src/vue/composables/use-plugin.ts","../../src/vue/composables/use-capability.ts","../../src/vue/composables/use-store-state.ts","../../src/vue/components/nested-wrapper.vue","../../src/vue/components/auto-mount.vue","../../src/vue/components/embed-pdf.vue"],"sourcesContent":["import { InjectionKey, Ref, ShallowRef } from 'vue';\nimport type { PluginRegistry } from '@embedpdf/core';\n\nexport interface PDFContextState {\n registry: ShallowRef<PluginRegistry | null>;\n isInitializing: Ref<boolean>;\n pluginsReady: Ref<boolean>;\n}\n\nexport const pdfKey: InjectionKey<PDFContextState> = Symbol('pdfKey');\n","import { inject } from 'vue';\nimport { pdfKey } from '../context';\n\nexport function useRegistry() {\n const ctx = inject(pdfKey);\n if (!ctx) throw new Error('useRegistry must be used inside <EmbedPDF>');\n return ctx;\n}\n","import { ref, onMounted, onBeforeUnmount } from 'vue';\nimport { arePropsEqual, type CoreState } from '@embedpdf/core';\nimport { useRegistry } from './use-registry';\n\nexport function useCoreState() {\n const { registry } = useRegistry();\n const core = ref<CoreState>();\n\n onMounted(() => {\n const store = registry.value!.getStore();\n core.value = store.getState().core;\n\n const unsub = store.subscribe((action, newSt, oldSt) => {\n if (store.isCoreAction(action) && !arePropsEqual(newSt.core, oldSt.core)) {\n core.value = newSt.core;\n }\n });\n onBeforeUnmount(unsub);\n });\n\n return core;\n}\n","import { shallowRef, ref, onMounted, watch, type ShallowRef, type Ref } from 'vue';\nimport type { BasePlugin } from '@embedpdf/core';\nimport { useRegistry } from './use-registry';\n\nexport interface PluginState<T extends BasePlugin> {\n plugin: ShallowRef<T | null>;\n isLoading: Ref<boolean>;\n ready: Ref<Promise<void>>;\n}\n\nexport function usePlugin<T extends BasePlugin>(pluginId: T['id']): PluginState<T> {\n const { registry } = useRegistry();\n\n const plugin = shallowRef(null) as ShallowRef<T | null>;\n\n const isLoading = ref(true);\n const ready = ref<Promise<void>>(new Promise(() => {}));\n\n const load = () => {\n if (!registry.value) return;\n\n const p = registry.value.getPlugin<T>(pluginId);\n if (!p) throw new Error(`Plugin ${pluginId} not found`);\n\n plugin.value = p;\n isLoading.value = false;\n ready.value = p.ready?.() ?? Promise.resolve();\n };\n\n onMounted(load);\n watch(registry, load);\n\n return { plugin, isLoading, ready };\n}\n","import type { BasePlugin } from '@embedpdf/core';\nimport { computed, type Ref } from 'vue';\nimport { usePlugin } from './use-plugin';\n\nexport interface CapabilityState<C> {\n provides: Ref<C | null>;\n isLoading: Ref<boolean>;\n ready: Ref<Promise<void>>;\n}\n\n/**\n * Access the public capability exposed by a plugin.\n *\n * @example\n * const { provides: zoom } = useCapability<ZoomPlugin>(ZoomPlugin.id);\n * zoom.value?.zoomIn();\n */\nexport function useCapability<T extends BasePlugin>(\n pluginId: T['id'],\n): CapabilityState<ReturnType<NonNullable<T['provides']>>> {\n const { plugin, isLoading, ready } = usePlugin<T>(pluginId);\n\n const provides = computed(() => {\n if (!plugin.value) return null;\n if (!plugin.value.provides) {\n throw new Error(`Plugin ${pluginId} does not implement provides()`);\n }\n return plugin.value.provides() as ReturnType<NonNullable<T['provides']>>;\n });\n\n return { provides, isLoading, ready };\n}\n","import { ref, onMounted, onBeforeUnmount, watch } from 'vue';\nimport type { CoreState, StoreState } from '@embedpdf/core';\nimport { useRegistry } from './use-registry';\n\n/**\n * Reactive getter for the *entire* global store.\n * Re‑emits whenever any slice changes.\n *\n * @example\n * const state = useStoreState(); // Ref<StoreState<CoreState>>\n * console.log(state.value.core.scale);\n */\nexport function useStoreState<T = CoreState>() {\n const { registry } = useRegistry();\n const state = ref<StoreState<T>>();\n\n function attach() {\n if (!registry.value) return () => {};\n\n // initial snapshot\n state.value = registry.value.getStore().getState() as StoreState<T>;\n\n // live updates\n return registry.value\n .getStore()\n .subscribe((_action, newState) => (state.value = newState as StoreState<T>));\n }\n\n /* attach now and re‑attach if registry instance ever changes */\n let unsubscribe = attach();\n watch(registry, () => {\n unsubscribe?.();\n unsubscribe = attach();\n });\n\n onBeforeUnmount(() => unsubscribe?.());\n\n return state;\n}\n","<script setup lang=\"ts\">\ndefineProps<{\n wrappers: any[];\n}>();\n</script>\n\n<template>\n <component :is=\"wrappers[0]\">\n <NestedWrapper v-if=\"wrappers.length > 1\" :wrappers=\"wrappers.slice(1)\">\n <slot />\n </NestedWrapper>\n <slot v-else />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hasAutoMountElements, type PluginBatchRegistration, type IPlugin } from '@embedpdf/core';\nimport NestedWrapper from './nested-wrapper.vue';\n\nconst props = defineProps<{\n plugins: PluginBatchRegistration<IPlugin<any>, any>[];\n}>();\n\nconst elements = computed(() => {\n const utilities: any[] = [];\n const wrappers: any[] = [];\n\n for (const reg of props.plugins) {\n const pkg = reg.package;\n if (hasAutoMountElements(pkg)) {\n const elements = pkg.autoMountElements() || [];\n\n for (const element of elements) {\n if (element.type === 'utility') {\n utilities.push(element.component);\n } else if (element.type === 'wrapper') {\n wrappers.push(element.component);\n }\n }\n }\n }\n\n return { utilities, wrappers };\n});\n</script>\n\n<template>\n <NestedWrapper v-if=\"elements.wrappers.length > 0\" :wrappers=\"elements.wrappers\">\n <slot />\n </NestedWrapper>\n <slot v-else />\n\n <component\n v-for=\"(utility, index) in elements.utilities\"\n :key=\"`utility-${index}`\"\n :is=\"utility\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ref, provide, onMounted, onBeforeUnmount, shallowRef } from 'vue';\nimport { PluginRegistry, PluginBatchRegistrations } from '@embedpdf/core';\nimport { Logger, PdfEngine } from '@embedpdf/models';\nimport { pdfKey, PDFContextState } from '../context';\nimport AutoMount from './auto-mount.vue';\n\nexport type { PluginBatchRegistrations };\n\nconst props = withDefaults(\n defineProps<{\n engine: PdfEngine;\n logger?: Logger;\n plugins: PluginBatchRegistrations;\n onInitialized?: (registry: PluginRegistry) => Promise<void>;\n autoMountDomElements?: boolean;\n }>(),\n {\n autoMountDomElements: true,\n },\n);\n\n/* reactive state */\nconst registry = shallowRef<PluginRegistry | null>(null);\nconst isInit = ref(true);\nconst pluginsOk = ref(false);\n\n/* expose to children */\nprovide<PDFContextState>(pdfKey, { registry, isInitializing: isInit, pluginsReady: pluginsOk });\n\nonMounted(async () => {\n const reg = new PluginRegistry(props.engine, { logger: props.logger });\n reg.registerPluginBatch(props.plugins);\n await reg.initialize();\n await props.onInitialized?.(reg);\n\n registry.value = reg;\n isInit.value = false;\n\n reg.pluginsReady().then(() => (pluginsOk.value = true));\n});\n\nonBeforeUnmount(() => registry.value?.destroy());\n</script>\n\n<template>\n <AutoMount v-if=\"pluginsOk && autoMountDomElements\" :plugins=\"plugins\">\n <!-- scoped slot keeps API parity with React version -->\n <slot :registry=\"registry\" :isInitializing=\"isInit\" :pluginsReady=\"pluginsOk\" />\n </AutoMount>\n\n <!-- No auto-mount or not ready yet -->\n <slot v-else :registry=\"registry\" :isInitializing=\"isInit\" :pluginsReady=\"pluginsOk\" />\n</template>\n"],"names":["_openBlock","_createBlock","_resolveDynamicComponent","wrappers","_renderSlot","elements","NestedWrapper","_createElementBlock","_Fragment","autoMountDomElements","AutoMount","plugins"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/vue/context.ts","../../src/vue/composables/use-registry.ts","../../src/vue/composables/use-core-state.ts","../../src/vue/composables/use-document-state.ts","../../src/vue/composables/use-plugin.ts","../../src/vue/composables/use-capability.ts","../../src/vue/composables/use-store-state.ts","../../src/vue/components/nested-wrapper.vue","../../src/vue/components/auto-mount.vue","../../src/vue/components/embed-pdf.vue"],"sourcesContent":["import { InjectionKey, Ref, ShallowRef } from 'vue';\nimport type { PluginRegistry, CoreState, DocumentState } from '@embedpdf/core';\n\nexport interface PDFContextState {\n registry: ShallowRef<PluginRegistry | null>;\n coreState: Ref<CoreState | null>;\n isInitializing: Ref<boolean>;\n pluginsReady: Ref<boolean>;\n\n // Convenience accessors (always safe to use)\n activeDocumentId: Ref<string | null>;\n activeDocument: Ref<DocumentState | null>;\n documents: Ref<Record<string, DocumentState>>;\n documentStates: Ref<DocumentState[]>;\n}\n\nexport const pdfKey: InjectionKey<PDFContextState> = Symbol('pdfKey');\n","import { inject } from 'vue';\nimport { pdfKey } from '../context';\n\nexport function useRegistry() {\n const ctx = inject(pdfKey);\n if (!ctx) throw new Error('useRegistry must be used inside <EmbedPDF>');\n return ctx;\n}\n","import { Ref } from 'vue';\nimport { type CoreState } from '@embedpdf/core';\nimport { useRegistry } from './use-registry';\n\n/**\n * Hook that provides access to the current core state.\n *\n * Note: This reads from the context which is already subscribed to core state changes\n * in the EmbedPDF component, so there's no additional subscription overhead.\n */\nexport function useCoreState(): Ref<CoreState | null> {\n const { coreState } = useRegistry();\n return coreState;\n}\n","import { computed, toValue, type MaybeRefOrGetter } from 'vue';\nimport { useCoreState } from './use-core-state';\n\n/**\n * Hook that provides reactive access to a specific document's state from the core store.\n *\n * @param documentId The ID of the document to retrieve (can be ref, computed, getter, or plain value).\n * @returns A computed ref containing the DocumentState object or null if not found.\n */\nexport function useDocumentState(documentId: MaybeRefOrGetter<string | null>) {\n const coreState = useCoreState();\n\n const documentState = computed(() => {\n const core = coreState.value;\n const docId = toValue(documentId);\n\n if (!core || !docId) return null;\n return core.documents[docId] ?? null;\n });\n\n return documentState;\n}\n","import { shallowRef, ref, onMounted, watch, type ShallowRef, type Ref } from 'vue';\nimport type { BasePlugin } from '@embedpdf/core';\nimport { useRegistry } from './use-registry';\n\nexport interface PluginState<T extends BasePlugin> {\n plugin: ShallowRef<T | null>;\n isLoading: Ref<boolean>;\n ready: Ref<Promise<void>>;\n}\n\nexport function usePlugin<T extends BasePlugin>(pluginId: T['id']): PluginState<T> {\n const { registry } = useRegistry();\n\n const plugin = shallowRef(null) as ShallowRef<T | null>;\n\n const isLoading = ref(true);\n const ready = ref<Promise<void>>(new Promise(() => {}));\n\n const load = () => {\n if (!registry.value) return;\n\n const p = registry.value.getPlugin<T>(pluginId);\n if (!p) throw new Error(`Plugin ${pluginId} not found`);\n\n plugin.value = p;\n isLoading.value = false;\n ready.value = p.ready?.() ?? Promise.resolve();\n };\n\n onMounted(load);\n watch(registry, load);\n\n return { plugin, isLoading, ready };\n}\n","import type { BasePlugin } from '@embedpdf/core';\nimport { computed, type Ref } from 'vue';\nimport { usePlugin } from './use-plugin';\n\nexport interface CapabilityState<C> {\n provides: Ref<C | null>;\n isLoading: Ref<boolean>;\n ready: Ref<Promise<void>>;\n}\n\n/**\n * Access the public capability exposed by a plugin.\n *\n * @example\n * const { provides: zoom } = useCapability<ZoomPlugin>(ZoomPlugin.id);\n * zoom.value?.zoomIn();\n */\nexport function useCapability<T extends BasePlugin>(\n pluginId: T['id'],\n): CapabilityState<ReturnType<NonNullable<T['provides']>>> {\n const { plugin, isLoading, ready } = usePlugin<T>(pluginId);\n\n const provides = computed(() => {\n if (!plugin.value) return null;\n if (!plugin.value.provides) {\n throw new Error(`Plugin ${pluginId} does not implement provides()`);\n }\n return plugin.value.provides() as ReturnType<NonNullable<T['provides']>>;\n });\n\n return { provides, isLoading, ready };\n}\n","import { ref, onMounted, onBeforeUnmount, watch } from 'vue';\nimport type { CoreState, StoreState } from '@embedpdf/core';\nimport { useRegistry } from './use-registry';\n\n/**\n * Reactive getter for the *entire* global store.\n * Re‑emits whenever any slice changes.\n *\n * @example\n * const state = useStoreState(); // Ref<StoreState<CoreState>>\n * console.log(state.value.core.scale);\n */\nexport function useStoreState<T = CoreState>() {\n const { registry } = useRegistry();\n const state = ref<StoreState<T>>();\n\n function attach() {\n if (!registry.value) return () => {};\n\n // initial snapshot\n state.value = registry.value.getStore().getState() as StoreState<T>;\n\n // live updates\n return registry.value\n .getStore()\n .subscribe((_action, newState) => (state.value = newState as StoreState<T>));\n }\n\n /* attach now and re‑attach if registry instance ever changes */\n let unsubscribe = attach();\n watch(registry, () => {\n unsubscribe?.();\n unsubscribe = attach();\n });\n\n onBeforeUnmount(() => unsubscribe?.());\n\n return state;\n}\n","<script setup lang=\"ts\">\ndefineProps<{\n wrappers: any[];\n}>();\n</script>\n\n<template>\n <component :is=\"wrappers[0]\">\n <NestedWrapper v-if=\"wrappers.length > 1\" :wrappers=\"wrappers.slice(1)\">\n <slot />\n </NestedWrapper>\n <slot v-else />\n </component>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hasAutoMountElements, type PluginBatchRegistration, type IPlugin } from '@embedpdf/core';\nimport NestedWrapper from './nested-wrapper.vue';\n\nconst props = defineProps<{\n plugins: PluginBatchRegistration<IPlugin<any>, any>[];\n}>();\n\nconst elements = computed(() => {\n const utilities: any[] = [];\n const wrappers: any[] = [];\n\n for (const reg of props.plugins) {\n const pkg = reg.package;\n if (hasAutoMountElements(pkg)) {\n const elements = pkg.autoMountElements() || [];\n\n for (const element of elements) {\n if (element.type === 'utility') {\n utilities.push(element.component);\n } else if (element.type === 'wrapper') {\n wrappers.push(element.component);\n }\n }\n }\n }\n\n return { utilities, wrappers };\n});\n</script>\n\n<template>\n <NestedWrapper v-if=\"elements.wrappers.length > 0\" :wrappers=\"elements.wrappers\">\n <slot />\n </NestedWrapper>\n <slot v-else />\n\n <component\n v-for=\"(utility, index) in elements.utilities\"\n :key=\"`utility-${index}`\"\n :is=\"utility\"\n />\n</template>\n","<script setup lang=\"ts\">\nimport { ref, provide, onMounted, onBeforeUnmount, shallowRef, computed } from 'vue';\nimport { PluginRegistry, PluginBatchRegistrations, CoreState, DocumentState } from '@embedpdf/core';\nimport { Logger, PdfEngine } from '@embedpdf/models';\nimport { pdfKey, PDFContextState } from '../context';\nimport AutoMount from './auto-mount.vue';\n\nexport type { PluginBatchRegistrations };\n\nconst props = withDefaults(\n defineProps<{\n engine: PdfEngine;\n logger?: Logger;\n plugins: PluginBatchRegistrations;\n onInitialized?: (registry: PluginRegistry) => Promise<void>;\n autoMountDomElements?: boolean;\n }>(),\n {\n autoMountDomElements: true,\n },\n);\n\n/* reactive state */\nconst registry = shallowRef<PluginRegistry | null>(null);\nconst coreState = ref<CoreState | null>(null);\nconst isInit = ref(true);\nconst pluginsOk = ref(false);\n\n// Compute convenience accessors\nconst activeDocumentId = computed(() => coreState.value?.activeDocumentId ?? null);\nconst documents = computed(() => coreState.value?.documents ?? {});\nconst documentOrder = computed(() => coreState.value?.documentOrder ?? []);\n\nconst activeDocument = computed(() => {\n const docId = activeDocumentId.value;\n const docs = documents.value;\n return docId && docs[docId] ? docs[docId] : null;\n});\n\nconst documentStates = computed(() => {\n const docs = documents.value;\n const order = documentOrder.value;\n return order\n .map((docId) => docs[docId])\n .filter((doc): doc is DocumentState => doc !== null && doc !== undefined);\n});\n\n/* expose to children */\nprovide<PDFContextState>(pdfKey, {\n registry,\n coreState,\n isInitializing: isInit,\n pluginsReady: pluginsOk,\n activeDocumentId,\n activeDocument,\n documents,\n documentStates,\n});\n\nonMounted(async () => {\n const reg = new PluginRegistry(props.engine, { logger: props.logger });\n reg.registerPluginBatch(props.plugins);\n await reg.initialize();\n\n if (reg.isDestroyed()) {\n return;\n }\n\n const store = reg.getStore();\n coreState.value = store.getState().core;\n\n const unsubscribe = store.subscribe((action, newState, oldState) => {\n // Only update if it's a core action and the core state changed\n if (store.isCoreAction(action) && newState.core !== oldState.core) {\n coreState.value = newState.core;\n }\n });\n\n await props.onInitialized?.(reg);\n\n if (reg.isDestroyed()) {\n unsubscribe();\n return;\n }\n\n registry.value = reg;\n isInit.value = false;\n\n reg.pluginsReady().then(() => {\n if (!reg.isDestroyed()) {\n pluginsOk.value = true;\n }\n });\n\n onBeforeUnmount(() => {\n unsubscribe();\n registry.value?.destroy();\n });\n});\n</script>\n\n<template>\n <AutoMount v-if=\"pluginsOk && autoMountDomElements\" :plugins=\"plugins\">\n <!-- scoped slot keeps API parity with React version -->\n <slot\n :registry=\"registry\"\n :coreState=\"coreState\"\n :isInitializing=\"isInit\"\n :pluginsReady=\"pluginsOk\"\n :activeDocumentId=\"activeDocumentId\"\n :activeDocument=\"activeDocument\"\n :documents=\"documents\"\n :documentStates=\"documentStates\"\n />\n </AutoMount>\n\n <!-- No auto-mount or not ready yet -->\n <slot\n v-else\n :registry=\"registry\"\n :coreState=\"coreState\"\n :isInitializing=\"isInit\"\n :pluginsReady=\"pluginsOk\"\n :activeDocumentId=\"activeDocumentId\"\n :activeDocument=\"activeDocument\"\n :documents=\"documents\"\n :documentStates=\"documentStates\"\n />\n</template>\n"],"names":["_openBlock","_createBlock","_resolveDynamicComponent","_renderSlot","elements","NestedWrapper","_createElementBlock","_Fragment","_a","AutoMount"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/core",
3
- "version": "1.4.1",
3
+ "version": "2.0.0-next.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.cjs",
@@ -40,8 +40,8 @@
40
40
  "@embedpdf/build": "1.1.0"
41
41
  },
42
42
  "dependencies": {
43
- "@embedpdf/engines": "1.4.1",
44
- "@embedpdf/models": "1.4.1"
43
+ "@embedpdf/engines": "2.0.0-next.0",
44
+ "@embedpdf/models": "2.0.0-next.0"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "preact": "^10.26.4",