@embedpdf/plugin-fullscreen 1.3.16 → 1.4.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.
@@ -0,0 +1,7 @@
1
+ import { HTMLAttributes, CSSProperties, ReactNode } from '../../react/adapter.ts';
2
+ type FullscreenProviderProps = Omit<HTMLAttributes<HTMLDivElement>, 'style'> & {
3
+ children: ReactNode;
4
+ style?: CSSProperties;
5
+ };
6
+ export declare function FullscreenProvider({ children, ...props }: FullscreenProviderProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1 @@
1
+ export * from './fullscreen';
@@ -0,0 +1 @@
1
+ export * from './use-fullscreen';
@@ -0,0 +1,15 @@
1
+ import { FullscreenPlugin, FullscreenState } from '../../index.ts';
2
+ export declare const useFullscreenPlugin: () => {
3
+ plugin: FullscreenPlugin | null;
4
+ isLoading: boolean;
5
+ ready: Promise<void>;
6
+ };
7
+ export declare const useFullscreenCapability: () => {
8
+ provides: Readonly<import('../../index.ts').FullscreenCapability> | null;
9
+ isLoading: boolean;
10
+ ready: Promise<void>;
11
+ };
12
+ export declare const useFullscreen: () => {
13
+ provides: Readonly<import('../../index.ts').FullscreenCapability> | null;
14
+ state: FullscreenState;
15
+ };
@@ -0,0 +1,4 @@
1
+ export * from './hooks';
2
+ export * from './components';
3
+ export * from '../index.ts';
4
+ export declare const FullscreenPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../index.ts').FullscreenPlugin, import('../index.ts').FullscreenPluginConfig, import('../index.ts').FullscreenState, import('../index.ts').SetFullscreenAction>>;
@@ -0,0 +1,9 @@
1
+ import { Snippet } from 'svelte';
2
+ interface Props {
3
+ children: Snippet;
4
+ class?: string;
5
+ style?: string;
6
+ }
7
+ declare const FullscreenProvider: import('svelte', { with: { "resolution-mode": "import" } }).Component<Props, {}, "">;
8
+ type FullscreenProvider = ReturnType<typeof FullscreenProvider>;
9
+ export default FullscreenProvider;
@@ -0,0 +1 @@
1
+ export { default as FullscreenProvider } from './FullscreenProvider.svelte';
@@ -0,0 +1 @@
1
+ export * from './use-fullscreen.svelte';
@@ -0,0 +1,15 @@
1
+ import { FullscreenPlugin, FullscreenState } from '../../lib/index.ts';
2
+ export declare const useFullscreenPlugin: () => {
3
+ plugin: FullscreenPlugin | null;
4
+ isLoading: boolean;
5
+ ready: Promise<void>;
6
+ };
7
+ export declare const useFullscreenCapability: () => {
8
+ provides: Readonly<import('../../lib/index.ts').FullscreenCapability> | null;
9
+ isLoading: boolean;
10
+ ready: Promise<void>;
11
+ };
12
+ export declare const useFullscreen: () => {
13
+ readonly provides: Readonly<import('../../lib/index.ts').FullscreenCapability> | null;
14
+ readonly state: FullscreenState;
15
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("@embedpdf/core"),t=require("@embedpdf/plugin-fullscreen");require("svelte/internal/disclose-version");const r=require("svelte/internal/client"),n=require("@embedpdf/core/svelte");function l(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)}const s=l(r),u=()=>n.usePlugin(t.FullscreenPlugin.id),c=()=>n.useCapability(t.FullscreenPlugin.id);var i=s.from_html("<div><!></div>");function o(e,t){s.push(t,!0);const{provides:r}=c(),{plugin:n}=u();let l;s.user_effect((()=>{if(!r)return;return r.onRequest((async e=>{if("enter"===e){const e=l;e&&!document.fullscreenElement&&await e.requestFullscreen()}else document.fullscreenElement&&await document.exitFullscreen()}))})),s.user_effect((()=>{if(!n)return;const e=()=>{n.setFullscreenState(!!document.fullscreenElement)};return document.addEventListener("fullscreenchange",e),()=>document.removeEventListener("fullscreenchange",e)}));var o=i(),a=s.child(o);s.snippet(a,(()=>t.children)),s.reset(o),s.bind_this(o,(e=>l=e),(()=>l)),s.template_effect((()=>{s.set_class(o,1,s.clsx(t.class)),s.set_style(o,`position: relative; width: 100%; height: 100%; ${(t.style||"")??""}`)})),s.append(e,o),s.pop()}const a=e.createPluginPackage(t.FullscreenPluginPackage).addWrapper(o).build();exports.FullscreenPluginPackage=a,exports.FullscreenProvider=o,exports.useFullscreen=()=>{const e=s.derived(c),r=s.derived((()=>s.get(e).provides)),n=s.proxy(t.initialState);return s.user_effect((()=>{if(s.get(r))return s.get(r).onStateChange((e=>{n.isFullscreen=e.isFullscreen}))})),{get provides(){return s.get(r)},get state(){return n}}},exports.useFullscreenCapability=c,exports.useFullscreenPlugin=u,Object.keys(t).forEach((e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>t[e]})}));
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/svelte/hooks/use-fullscreen.svelte.ts","../../src/svelte/components/FullscreenProvider.svelte","../../src/svelte/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\n\nexport const useFullscreenPlugin = () => usePlugin<FullscreenPlugin>(FullscreenPlugin.id);\nexport const useFullscreenCapability = () => useCapability<FullscreenPlugin>(FullscreenPlugin.id);\n\nexport const useFullscreen = () => {\n const { provides } = $derived(useFullscreenCapability());\n const state = $state<FullscreenState>(initialState);\n\n $effect(() => {\n if (!provides) return;\n return provides.onStateChange((newState) => {\n state.isFullscreen = newState.isFullscreen;\n });\n });\n\n return {\n get provides() {\n return provides;\n },\n get state() {\n return state;\n },\n };\n};\n","<script lang=\"ts\">\n import type { Snippet } from 'svelte';\n import { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\n interface Props {\n children: Snippet;\n class?: string;\n style?: string;\n }\n\n const { children, class: className, style }: Props = $props();\n\n const { provides: fullscreenCapability } = useFullscreenCapability();\n const { plugin } = useFullscreenPlugin();\n\n let containerElement: HTMLDivElement | undefined;\n\n // Handle fullscreen requests\n $effect(() => {\n if (!fullscreenCapability) return;\n\n const unsub = fullscreenCapability.onRequest(async (action) => {\n if (action === 'enter') {\n const el = containerElement;\n if (el && !document.fullscreenElement) {\n await el.requestFullscreen();\n }\n } else {\n if (document.fullscreenElement) {\n await document.exitFullscreen();\n }\n }\n });\n\n return unsub;\n });\n\n // Listen for fullscreen changes\n $effect(() => {\n if (!plugin) return;\n\n const handler = () => {\n plugin.setFullscreenState(!!document.fullscreenElement);\n };\n\n document.addEventListener('fullscreenchange', handler);\n return () => document.removeEventListener('fullscreenchange', handler);\n });\n</script>\n\n<div\n bind:this={containerElement}\n class={className}\n style=\"position: relative; width: 100%; height: 100%; {style || ''}\"\n>\n {@render children()}\n</div>\n","import { createPluginPackage } from '@embedpdf/core';\nimport { FullscreenPluginPackage as BaseFullscreenPackage } from '@embedpdf/plugin-fullscreen';\nimport { FullscreenProvider } from './components';\n\nexport * from './hooks';\nexport * from './components';\n\nexport * from '@embedpdf/plugin-fullscreen';\n\nexport const FullscreenPluginPackage = createPluginPackage(BaseFullscreenPackage)\n .addWrapper(FullscreenProvider)\n .build();\n"],"names":["useFullscreenPlugin","usePlugin","FullscreenPlugin","id","useFullscreenCapability","useCapability","provides","fullscreenCapability","plugin","containerElement","$","user_effect","onRequest","async","action","el","document","fullscreenElement","requestFullscreen","exitFullscreen","handler","setFullscreenState","addEventListener","removeEventListener","bind_this","div","$$value","FullscreenPluginPackage","createPluginPackage","BaseFullscreenPackage","addWrapper","FullscreenProvider","build","state","initialState","get","onStateChange","newState","isFullscreen"],"mappings":"4iBAGaA,EAA4B,IAAAC,YAA4BC,EAAAA,iBAAiBC,IACzEC,EAAgC,IAAAC,gBAAgCH,EAAAA,iBAAiBC,2ECQpFG,SAAUC,GAAyBH,KACnCI,OAAAA,GAAWR,IAEf,IAAAS,EAGJC,EAAAC,aAAc,SACPJ,EAAoB,OAelB,OAbOA,EAAqBK,WAASC,MAAQC,OACnC,UAAXA,EAAoB,CAChB,MAAAC,EAAKN,EACPM,IAAOC,SAASC,yBACZF,EAAGG,mBAEb,MACMF,SAASC,yBACLD,SAASG,gBAEnB,GAGK,IAITT,EAAAC,aAAc,SACPH,EAAM,OAEL,MAAAY,EAAgB,KACpBZ,EAAOa,qBAAqBL,SAASC,kBAAiB,EAI3C,OADJD,SAAAM,iBAAiB,mBAAoBF,GACjC,IAAAJ,SAASO,oBAAoB,mBAAoBH,EAAO,oEAK5DV,EAAAc,UAAAC,GAAAC,GAAAjB,UAAAA,uIAEqD,KAAE,KAAA,yBALpE,CCvCO,MAAMkB,EAA0BC,EAAoBA,oBAAAC,EAAqBF,yBAC7EG,WAAWC,GACXC,oHFJ6B5B,GAAtBE,0BAAAA,WACF2B,UAAgCC,uBAEtCxB,EAAAC,2BACOL,GACE,OAAAI,EAAAyB,IAAA7B,GAAS8B,eAAeC,IAC7BJ,EAAMK,aAAeD,EAASC,YAAA,GAC/B,KAIG,YAAAhC,gBACKA,EACT,EACI,SAAA2B,GACK,OAAAA"}
@@ -0,0 +1,4 @@
1
+ export * from './hooks';
2
+ export * from './components';
3
+ export * from '../lib/index.ts';
4
+ export declare const FullscreenPluginPackage: import('@embedpdf/core').WithAutoMount<import('@embedpdf/core').PluginPackage<import('../lib/index.ts').FullscreenPlugin, import('../lib/index.ts').FullscreenPluginConfig, import('../lib/index.ts').FullscreenState, import('../lib/index.ts').SetFullscreenAction>>;
@@ -0,0 +1,77 @@
1
+ import { createPluginPackage } from "@embedpdf/core";
2
+ import { FullscreenPlugin, initialState, FullscreenPluginPackage as FullscreenPluginPackage$1 } from "@embedpdf/plugin-fullscreen";
3
+ export * from "@embedpdf/plugin-fullscreen";
4
+ import "svelte/internal/disclose-version";
5
+ import * as $ from "svelte/internal/client";
6
+ import { useCapability, usePlugin } from "@embedpdf/core/svelte";
7
+ const useFullscreenPlugin = () => usePlugin(FullscreenPlugin.id);
8
+ const useFullscreenCapability = () => useCapability(FullscreenPlugin.id);
9
+ const useFullscreen = () => {
10
+ const $$d = $.derived(useFullscreenCapability), provides = $.derived(() => $.get($$d).provides);
11
+ const state = $.proxy(initialState);
12
+ $.user_effect(() => {
13
+ if (!$.get(provides)) return;
14
+ return $.get(provides).onStateChange((newState) => {
15
+ state.isFullscreen = newState.isFullscreen;
16
+ });
17
+ });
18
+ return {
19
+ get provides() {
20
+ return $.get(provides);
21
+ },
22
+ get state() {
23
+ return state;
24
+ }
25
+ };
26
+ };
27
+ var root = $.from_html(`<div><!></div>`);
28
+ function FullscreenProvider($$anchor, $$props) {
29
+ $.push($$props, true);
30
+ const { provides: fullscreenCapability } = useFullscreenCapability();
31
+ const { plugin } = useFullscreenPlugin();
32
+ let containerElement;
33
+ $.user_effect(() => {
34
+ if (!fullscreenCapability) return;
35
+ const unsub = fullscreenCapability.onRequest(async (action) => {
36
+ if (action === "enter") {
37
+ const el = containerElement;
38
+ if (el && !document.fullscreenElement) {
39
+ await el.requestFullscreen();
40
+ }
41
+ } else {
42
+ if (document.fullscreenElement) {
43
+ await document.exitFullscreen();
44
+ }
45
+ }
46
+ });
47
+ return unsub;
48
+ });
49
+ $.user_effect(() => {
50
+ if (!plugin) return;
51
+ const handler = () => {
52
+ plugin.setFullscreenState(!!document.fullscreenElement);
53
+ };
54
+ document.addEventListener("fullscreenchange", handler);
55
+ return () => document.removeEventListener("fullscreenchange", handler);
56
+ });
57
+ var div = root();
58
+ var node = $.child(div);
59
+ $.snippet(node, () => $$props.children);
60
+ $.reset(div);
61
+ $.bind_this(div, ($$value) => containerElement = $$value, () => containerElement);
62
+ $.template_effect(() => {
63
+ $.set_class(div, 1, $.clsx($$props.class));
64
+ $.set_style(div, `position: relative; width: 100%; height: 100%; ${($$props.style || "") ?? ""}`);
65
+ });
66
+ $.append($$anchor, div);
67
+ $.pop();
68
+ }
69
+ const FullscreenPluginPackage = createPluginPackage(FullscreenPluginPackage$1).addWrapper(FullscreenProvider).build();
70
+ export {
71
+ FullscreenPluginPackage,
72
+ FullscreenProvider,
73
+ useFullscreen,
74
+ useFullscreenCapability,
75
+ useFullscreenPlugin
76
+ };
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/svelte/hooks/use-fullscreen.svelte.ts","../../src/svelte/components/FullscreenProvider.svelte","../../src/svelte/index.ts"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { FullscreenPlugin, FullscreenState, initialState } from '@embedpdf/plugin-fullscreen';\n\nexport const useFullscreenPlugin = () => usePlugin<FullscreenPlugin>(FullscreenPlugin.id);\nexport const useFullscreenCapability = () => useCapability<FullscreenPlugin>(FullscreenPlugin.id);\n\nexport const useFullscreen = () => {\n const { provides } = $derived(useFullscreenCapability());\n const state = $state<FullscreenState>(initialState);\n\n $effect(() => {\n if (!provides) return;\n return provides.onStateChange((newState) => {\n state.isFullscreen = newState.isFullscreen;\n });\n });\n\n return {\n get provides() {\n return provides;\n },\n get state() {\n return state;\n },\n };\n};\n","<script lang=\"ts\">\n import type { Snippet } from 'svelte';\n import { useFullscreenPlugin, useFullscreenCapability } from '../hooks';\n\n interface Props {\n children: Snippet;\n class?: string;\n style?: string;\n }\n\n const { children, class: className, style }: Props = $props();\n\n const { provides: fullscreenCapability } = useFullscreenCapability();\n const { plugin } = useFullscreenPlugin();\n\n let containerElement: HTMLDivElement | undefined;\n\n // Handle fullscreen requests\n $effect(() => {\n if (!fullscreenCapability) return;\n\n const unsub = fullscreenCapability.onRequest(async (action) => {\n if (action === 'enter') {\n const el = containerElement;\n if (el && !document.fullscreenElement) {\n await el.requestFullscreen();\n }\n } else {\n if (document.fullscreenElement) {\n await document.exitFullscreen();\n }\n }\n });\n\n return unsub;\n });\n\n // Listen for fullscreen changes\n $effect(() => {\n if (!plugin) return;\n\n const handler = () => {\n plugin.setFullscreenState(!!document.fullscreenElement);\n };\n\n document.addEventListener('fullscreenchange', handler);\n return () => document.removeEventListener('fullscreenchange', handler);\n });\n</script>\n\n<div\n bind:this={containerElement}\n class={className}\n style=\"position: relative; width: 100%; height: 100%; {style || ''}\"\n>\n {@render children()}\n</div>\n","import { createPluginPackage } from '@embedpdf/core';\nimport { FullscreenPluginPackage as BaseFullscreenPackage } from '@embedpdf/plugin-fullscreen';\nimport { FullscreenProvider } from './components';\n\nexport * from './hooks';\nexport * from './components';\n\nexport * from '@embedpdf/plugin-fullscreen';\n\nexport const FullscreenPluginPackage = createPluginPackage(BaseFullscreenPackage)\n .addWrapper(FullscreenProvider)\n .build();\n"],"names":["BaseFullscreenPackage"],"mappings":";;;;;;AAGa,MAAA,sBAA4B,MAAA,UAA4B,iBAAiB,EAAE;AAC3E,MAAA,0BAAgC,MAAA,cAAgC,iBAAiB,EAAE;AAEnF,MAAA,sBAAsB;wBACH,0BAAtB,sCAAA,QAAA;AACF,QAAA,gBAAgC,YAAY;AAElD,IAAA,kBAAc;eACP,QAAU,EAAA;AACR,WAAA,EAAA,IAAA,QAAA,EAAS,cAAe,CAAA,aAAa;AAC1C,YAAM,eAAe,SAAS;AAAA,KAC/B;AAAA,GACF;;IAGK,IAAA,WAAW;mBACN,QAAA;AAAA,IACT;AAAA,IACI,IAAA,QAAQ;aACH;AAAA;;AAGb;;+CCzBA;;UAYU,UAAU,qBAAoB,IAAK,wBAAuB;AAC1D,QAAA,EAAA,WAAW,oBAAmB;MAElC;AAGJ,IAAA,YAAc,MAAA;SACP,qBAAoB;AAEnB,UAAA,QAAQ,qBAAqB,UAAS,OAAQ,WAAW;UACzD,WAAW,SAAS;AAChB,cAAA,KAAK;AACP,YAAA,MAAO,CAAA,SAAS,mBAAmB;AAC/B,gBAAA,GAAG,kBAAiB;AAAA,QAC5B;AAAA,MACF,OAAO;YACD,SAAS,mBAAmB;AACxB,gBAAA,SAAS,eAAc;AAAA,QAC/B;AAAA,MACF;AAAA,KACD;WAEM;AAAA,GACR;AAGD,IAAA,YAAc,MAAA;SACP,OAAM;AAEL,UAAA,UAAgB,MAAA;AACpB,aAAO,mBAAqB,CAAA,CAAA,SAAS,iBAAiB;AAAA,IACvD;AAED,aAAS,iBAAiB,oBAAoB,OAAO;AACxC,WAAA,MAAA,SAAS,oBAAoB,oBAAoB,OAAO;AAAA,GACtE;;;;;AAIU,IAAA,UAAA,KAAA,CAAA,YAAA,kCAAA,gBAAgB;;;yFAEqC,OAAE,EAAA,EAAA;AAAA;;;AALpE;ACvCO,MAAM,0BAA0B,oBAAoBA,yBAAqB,EAC7E,WAAW,kBAAkB,EAC7B,MAAM;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/plugin-fullscreen",
3
- "version": "1.3.16",
3
+ "version": "1.4.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.cjs",
@@ -26,23 +26,29 @@
26
26
  "types": "./dist/vue/index.d.ts",
27
27
  "import": "./dist/vue/index.js",
28
28
  "require": "./dist/vue/index.cjs"
29
+ },
30
+ "./svelte": {
31
+ "types": "./dist/svelte/index.d.ts",
32
+ "import": "./dist/svelte/index.js",
33
+ "require": "./dist/svelte/index.cjs"
29
34
  }
30
35
  },
31
36
  "dependencies": {
32
- "@embedpdf/models": "1.3.16"
37
+ "@embedpdf/models": "1.4.0"
33
38
  },
34
39
  "devDependencies": {
35
40
  "@types/react": "^18.2.0",
36
41
  "typescript": "^5.0.0",
37
- "@embedpdf/core": "1.3.16",
38
- "@embedpdf/build": "1.0.1"
42
+ "@embedpdf/build": "1.1.0",
43
+ "@embedpdf/core": "1.4.0"
39
44
  },
40
45
  "peerDependencies": {
41
46
  "react": ">=16.8.0",
42
47
  "react-dom": ">=16.8.0",
43
48
  "preact": "^10.26.4",
44
49
  "vue": ">=3.2.0",
45
- "@embedpdf/core": "1.3.16"
50
+ "svelte": ">=5 <6",
51
+ "@embedpdf/core": "1.4.0"
46
52
  },
47
53
  "files": [
48
54
  "dist",
@@ -65,7 +71,8 @@
65
71
  "build:react": "vite build --mode react",
66
72
  "build:preact": "vite build --mode preact",
67
73
  "build:vue": "vite build --mode vue",
68
- "build": "pnpm run clean && concurrently -c auto -n base,react,preact,vue \"vite build --mode base\" \"vite build --mode react\" \"vite build --mode preact\" \"vite build --mode vue\"",
74
+ "build:svelte": "vite build --mode svelte",
75
+ "build": "pnpm run clean && concurrently -c auto -n base,react,preact,vue,svelte \"vite build --mode base\" \"vite build --mode react\" \"vite build --mode preact\" \"vite build --mode vue\" \"vite build --mode svelte\"",
69
76
  "clean": "rimraf dist",
70
77
  "lint": "eslint src --color",
71
78
  "lint:fix": "eslint src --color --fix"