@embedpdf/plugin-i18n 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 (63) hide show
  1. package/LICENSE +21 -0
  2. package/dist/index.cjs +2 -0
  3. package/dist/index.cjs.map +1 -0
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +399 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/lib/actions.d.ts +15 -0
  8. package/dist/lib/i18n-plugin.d.ts +28 -0
  9. package/dist/lib/index.d.ts +9 -0
  10. package/dist/lib/locales/en.d.ts +2 -0
  11. package/dist/lib/locales/es.d.ts +2 -0
  12. package/dist/lib/locales/index.d.ts +2 -0
  13. package/dist/lib/manifest.d.ts +4 -0
  14. package/dist/lib/reducer.d.ts +5 -0
  15. package/dist/lib/types.d.ts +104 -0
  16. package/dist/preact/adapter.d.ts +5 -0
  17. package/dist/preact/core.d.ts +1 -0
  18. package/dist/preact/index.cjs +2 -0
  19. package/dist/preact/index.cjs.map +1 -0
  20. package/dist/preact/index.d.ts +1 -0
  21. package/dist/preact/index.js +70 -0
  22. package/dist/preact/index.js.map +1 -0
  23. package/dist/react/adapter.d.ts +2 -0
  24. package/dist/react/core.d.ts +1 -0
  25. package/dist/react/index.cjs +2 -0
  26. package/dist/react/index.cjs.map +1 -0
  27. package/dist/react/index.d.ts +1 -0
  28. package/dist/react/index.js +69 -0
  29. package/dist/react/index.js.map +1 -0
  30. package/dist/shared/components/index.d.ts +1 -0
  31. package/dist/shared/components/translate.d.ts +35 -0
  32. package/dist/shared/hooks/index.d.ts +1 -0
  33. package/dist/shared/hooks/use-i18n.d.ts +43 -0
  34. package/dist/shared/index.d.ts +3 -0
  35. package/dist/shared-preact/components/index.d.ts +1 -0
  36. package/dist/shared-preact/components/translate.d.ts +35 -0
  37. package/dist/shared-preact/hooks/index.d.ts +1 -0
  38. package/dist/shared-preact/hooks/use-i18n.d.ts +43 -0
  39. package/dist/shared-preact/index.d.ts +3 -0
  40. package/dist/shared-react/components/index.d.ts +1 -0
  41. package/dist/shared-react/components/translate.d.ts +35 -0
  42. package/dist/shared-react/hooks/index.d.ts +1 -0
  43. package/dist/shared-react/hooks/use-i18n.d.ts +43 -0
  44. package/dist/shared-react/index.d.ts +3 -0
  45. package/dist/svelte/components/Translate.svelte.d.ts +9 -0
  46. package/dist/svelte/components/index.d.ts +1 -0
  47. package/dist/svelte/hooks/index.d.ts +1 -0
  48. package/dist/svelte/hooks/use-i18n.svelte.d.ts +41 -0
  49. package/dist/svelte/index.cjs +2 -0
  50. package/dist/svelte/index.cjs.map +1 -0
  51. package/dist/svelte/index.d.ts +3 -0
  52. package/dist/svelte/index.js +90 -0
  53. package/dist/svelte/index.js.map +1 -0
  54. package/dist/vue/components/index.d.ts +1 -0
  55. package/dist/vue/components/translate.vue.d.ts +9 -0
  56. package/dist/vue/hooks/index.d.ts +1 -0
  57. package/dist/vue/hooks/use-i18n.d.ts +30 -0
  58. package/dist/vue/index.cjs +2 -0
  59. package/dist/vue/index.cjs.map +1 -0
  60. package/dist/vue/index.d.ts +3 -0
  61. package/dist/vue/index.js +98 -0
  62. package/dist/vue/index.js.map +1 -0
  63. package/package.json +81 -0
@@ -0,0 +1,41 @@
1
+ import { I18nPlugin } from '../../lib/index.ts';
2
+ export declare const useI18nCapability: () => {
3
+ provides: Readonly<import('../../lib/index.ts').I18nCapability> | null;
4
+ isLoading: boolean;
5
+ ready: Promise<void>;
6
+ };
7
+ export declare const useI18nPlugin: () => {
8
+ plugin: I18nPlugin | null;
9
+ isLoading: boolean;
10
+ ready: Promise<void>;
11
+ };
12
+ /**
13
+ * Hook to get a translate function for a component
14
+ * Automatically updates all translations on locale or param changes
15
+ *
16
+ * @param getDocumentId - Function that returns the document ID for document-scoped translations
17
+ * @returns translate function and current locale
18
+ *
19
+ * @example
20
+ * const { translate, locale } = useTranslations(() => documentId);
21
+ * // In template:
22
+ * {translate('page.title')}
23
+ * {translate('page.count', { params: { count: 5 } })}
24
+ * {translate('unknown.key', { fallback: 'Default Text' })}
25
+ */
26
+ export declare const useTranslations: (getDocumentId?: () => string | undefined) => {
27
+ translate: (key: string, options?: {
28
+ params?: Record<string, string | number>;
29
+ fallback?: string;
30
+ }) => string;
31
+ readonly locale: string;
32
+ };
33
+ export declare const useTranslation: (getKey: () => string, getOptions?: () => {
34
+ params?: Record<string, string | number>;
35
+ fallback?: string;
36
+ } | undefined, getDocumentId?: () => string | undefined) => {
37
+ readonly current: string;
38
+ };
39
+ export declare const useLocale: () => {
40
+ readonly current: string;
41
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("svelte/internal/client"),t=require("@embedpdf/core/svelte"),r=require("@embedpdf/plugin-i18n");function n(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)}require("svelte/internal/disclose-version");const o=n(e),a=()=>t.useCapability(r.I18nPlugin.id),l=e=>{const t=a();let r=o.state(0);const n=o.derived(()=>null==e?void 0:e());o.user_effect(()=>{const e=t.provides,a=o.get(n);if(!e)return;const l=e.onLocaleChange(()=>{o.update(r)}),s=a?e.forDocument(a).onParamsChanged(()=>{o.update(r)}):e.onParamsChanged(()=>{o.update(r)});return()=>{l(),s()}});return{translate:(n,a)=>{o.get(r);const l=t.provides;if(!l)return(null==a?void 0:a.fallback)??n;const s=null==e?void 0:e();return l.t(n,{documentId:s,params:null==a?void 0:a.params,fallback:null==a?void 0:a.fallback})},get locale(){var e;return(null==(e=t.provides)?void 0:e.getLocale())??"en"}}},s=(e,t,r)=>{const{translate:n}=l(r);return{get current(){return n(e(),null==t?void 0:t())}}};exports.Translate=function(e,t){o.push(t,!0);const r=s(()=>t.k,()=>({params:t.params,fallback:t.fallback}),()=>t.documentId);o.next();var n=o.text();o.template_effect(()=>o.set_text(n,r.current)),o.append(e,n),o.pop()},exports.useI18nCapability=a,exports.useI18nPlugin=()=>t.usePlugin(r.I18nPlugin.id),exports.useLocale=()=>{const e=a();let t=o.state("en");return o.user_effect(()=>{const r=e.provides;if(r)return o.set(t,r.getLocale(),!0),r.onLocaleChange(({currentLocale:e})=>{o.set(t,e,!0)})}),{get current(){return o.get(t)}}},exports.useTranslation=s,exports.useTranslations=l,Object.keys(r).forEach(e=>{"default"===e||Object.prototype.hasOwnProperty.call(exports,e)||Object.defineProperty(exports,e,{enumerable:!0,get:()=>r[e]})});
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../src/svelte/hooks/use-i18n.svelte.ts","../../src/svelte/components/Translate.svelte"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { I18nPlugin } from '@embedpdf/plugin-i18n';\n\nexport const useI18nCapability = () => useCapability<I18nPlugin>(I18nPlugin.id);\nexport const useI18nPlugin = () => usePlugin<I18nPlugin>(I18nPlugin.id);\n\n/**\n * Hook to get a translate function for a component\n * Automatically updates all translations on locale or param changes\n *\n * @param getDocumentId - Function that returns the document ID for document-scoped translations\n * @returns translate function and current locale\n *\n * @example\n * const { translate, locale } = useTranslations(() => documentId);\n * // In template:\n * {translate('page.title')}\n * {translate('page.count', { params: { count: 5 } })}\n * {translate('unknown.key', { fallback: 'Default Text' })}\n */\nexport const useTranslations = (getDocumentId?: () => string | undefined) => {\n const capability = useI18nCapability();\n\n let forceUpdateCounter = $state(0);\n\n // Reactive documentId\n const documentId = $derived(getDocumentId?.());\n\n $effect(() => {\n const provides = capability.provides;\n const docId = documentId;\n\n if (!provides) return;\n\n // Subscribe to locale changes\n const unsubscribeLocale = provides.onLocaleChange(() => {\n forceUpdateCounter++;\n });\n\n // Subscribe to params changes\n const unsubscribeParams = docId\n ? provides.forDocument(docId).onParamsChanged(() => {\n forceUpdateCounter++;\n })\n : provides.onParamsChanged(() => {\n forceUpdateCounter++;\n });\n\n return () => {\n unsubscribeLocale();\n unsubscribeParams();\n };\n });\n\n // Create translate function\n const translate = (\n key: string,\n options?: {\n params?: Record<string, string | number>;\n fallback?: string;\n },\n ): string => {\n // Access forceUpdateCounter to trigger reactivity\n forceUpdateCounter;\n\n const provides = capability.provides;\n if (!provides) return options?.fallback ?? key;\n\n const docId = getDocumentId?.();\n return provides.t(key, {\n documentId: docId,\n params: options?.params,\n fallback: options?.fallback,\n });\n };\n\n return {\n translate,\n get locale() {\n return capability.provides?.getLocale() ?? 'en';\n },\n };\n};\n\n// Keep the old hook for single-key translations (useful for derived state)\nexport const useTranslation = (\n getKey: () => string,\n getOptions?: () =>\n | {\n params?: Record<string, string | number>;\n fallback?: string;\n }\n | undefined,\n getDocumentId?: () => string | undefined,\n) => {\n const { translate } = useTranslations(getDocumentId);\n\n return {\n get current() {\n return translate(getKey(), getOptions?.());\n },\n };\n};\n\nexport const useLocale = () => {\n const capability = useI18nCapability();\n\n let locale = $state<string>('en');\n\n $effect(() => {\n const provides = capability.provides;\n\n if (!provides) return;\n\n locale = provides.getLocale();\n\n return provides.onLocaleChange(({ currentLocale }) => {\n locale = currentLocale;\n });\n });\n\n return {\n get current() {\n return locale;\n },\n };\n};\n","<script lang=\"ts\">\n import { useTranslation } from '../hooks/use-i18n.svelte';\n\n interface TranslateProps {\n k: string;\n params?: Record<string, string | number>;\n fallback?: string;\n documentId?: string;\n }\n\n let { k, params, fallback, documentId }: TranslateProps = $props();\n\n const translation = useTranslation(\n () => k,\n () => ({ params, fallback }),\n () => documentId,\n );\n</script>\n\n{translation.current}\n"],"names":["useI18nCapability","useCapability","I18nPlugin","id","useTranslations","getDocumentId","capability","forceUpdateCounter","documentId","$","user_effect","provides","docId","unsubscribeLocale","onLocaleChange","unsubscribeParams","forDocument","onParamsChanged","translate","key","options","fallback","t","params","locale","_a","getLocale","useTranslation","getKey","getOptions","current","translation","$$props","k","template_effect","set_text","text","usePlugin","currentLocale","set"],"mappings":"ogBAGaA,EAAA,IAA0BC,gBAA0BC,EAAAA,WAAWC,IAiB/DC,EAAmBC,IACxB,MAAAC,EAAaN,IAEf,IAAAO,UAA4B,GAG1B,MAAAC,gBAAsB,MAAAH,OAAA,EAAAA,KAE5BI,EAAAC,uBACQC,EAAWL,EAAWK,SACtBC,QAAQJ,OAETG,EAAA,OAGC,MAAAE,EAAoBF,EAASG,6BACjCP,KAIIQ,EAAoBH,EACtBD,EAASK,YAAYJ,GAAOK,8BAC1BV,KAEFI,EAASM,gBAAA,cACPV,gBAIJM,IACAE,cA2BFG,UAtBI,CACJC,EACAC,WAMAb,SAEMI,EAAWL,EAAWK,SACvB,IAAAA,EAAA,OAAiB,MAAAS,OAAA,EAAAA,EAASC,WAAYF,EAErC,MAAAP,EAAQ,MAAAP,OAAA,EAAAA,WACPM,EAASW,EAAEH,EAAA,CAChBX,WAAYI,EACZW,OAAQ,MAAAH,OAAA,EAAAA,EAASG,OACjBF,SAAU,MAAAD,OAAA,EAAAA,EAASC,YAMjB,UAAAG,SACK,OAAA,OAAAC,EAAAnB,EAAWK,eAAX,EAAAc,EAAqBC,cAAe,IAC7C,IAKSC,GACXC,EACAC,EAMAxB,qBAEQa,GAAcd,EAAgBC,UAGhC,WAAAyB,UACKZ,EAAUU,IAAU,MAAAC,OAAA,EAAAA,IAC7B,iDCxFI,MAAAE,EAAcJ,EAAc,IAAAK,EAAAC,EAAA,MAEvBV,gBAAQF,SAAQW,EAAAX,WAAA,IAAAW,EAAAxB,oCAK5BC,EAAAyB,gBAAA,IAAAzB,EAAA0B,SAAAC,EAAAL,EAAYD,+BAFb,oDDba,IAAsBO,YAAsBnC,EAAAA,WAAWC,2BAqG5D,MAAAG,EAAaN,IAEf,IAAAwB,UAAwB,aAE5Bf,EAAAC,uBACQC,EAAWL,EAAWK,YAEvBA,EAIE,aAFPa,EAASb,EAASe,aAAA,GAEXf,EAASG,eAAA,EAAkBwB,oBAChC7B,EAAA8B,IAAAf,EAASc,GAAA,QAKP,WAAAR,gBACKN,EACT"}
@@ -0,0 +1,3 @@
1
+ export * from './hooks';
2
+ export * from './components';
3
+ export * from '../lib/index.ts';
@@ -0,0 +1,90 @@
1
+ import * as $ from "svelte/internal/client";
2
+ import { useCapability, usePlugin } from "@embedpdf/core/svelte";
3
+ import { I18nPlugin } from "@embedpdf/plugin-i18n";
4
+ export * from "@embedpdf/plugin-i18n";
5
+ import "svelte/internal/disclose-version";
6
+ const useI18nCapability = () => useCapability(I18nPlugin.id);
7
+ const useI18nPlugin = () => usePlugin(I18nPlugin.id);
8
+ const useTranslations = (getDocumentId) => {
9
+ const capability = useI18nCapability();
10
+ let forceUpdateCounter = $.state(0);
11
+ const documentId = $.derived(() => getDocumentId == null ? void 0 : getDocumentId());
12
+ $.user_effect(() => {
13
+ const provides = capability.provides;
14
+ const docId = $.get(documentId);
15
+ if (!provides) return;
16
+ const unsubscribeLocale = provides.onLocaleChange(() => {
17
+ $.update(forceUpdateCounter);
18
+ });
19
+ const unsubscribeParams = docId ? provides.forDocument(docId).onParamsChanged(() => {
20
+ $.update(forceUpdateCounter);
21
+ }) : provides.onParamsChanged(() => {
22
+ $.update(forceUpdateCounter);
23
+ });
24
+ return () => {
25
+ unsubscribeLocale();
26
+ unsubscribeParams();
27
+ };
28
+ });
29
+ const translate = (key, options) => {
30
+ $.get(forceUpdateCounter);
31
+ const provides = capability.provides;
32
+ if (!provides) return (options == null ? void 0 : options.fallback) ?? key;
33
+ const docId = getDocumentId == null ? void 0 : getDocumentId();
34
+ return provides.t(key, {
35
+ documentId: docId,
36
+ params: options == null ? void 0 : options.params,
37
+ fallback: options == null ? void 0 : options.fallback
38
+ });
39
+ };
40
+ return {
41
+ translate,
42
+ get locale() {
43
+ var _a;
44
+ return ((_a = capability.provides) == null ? void 0 : _a.getLocale()) ?? "en";
45
+ }
46
+ };
47
+ };
48
+ const useTranslation = (getKey, getOptions, getDocumentId) => {
49
+ const { translate } = useTranslations(getDocumentId);
50
+ return {
51
+ get current() {
52
+ return translate(getKey(), getOptions == null ? void 0 : getOptions());
53
+ }
54
+ };
55
+ };
56
+ const useLocale = () => {
57
+ const capability = useI18nCapability();
58
+ let locale = $.state("en");
59
+ $.user_effect(() => {
60
+ const provides = capability.provides;
61
+ if (!provides) return;
62
+ $.set(locale, provides.getLocale(), true);
63
+ return provides.onLocaleChange(({ currentLocale }) => {
64
+ $.set(locale, currentLocale, true);
65
+ });
66
+ });
67
+ return {
68
+ get current() {
69
+ return $.get(locale);
70
+ }
71
+ };
72
+ };
73
+ function Translate($$anchor, $$props) {
74
+ $.push($$props, true);
75
+ const translation = useTranslation(() => $$props.k, () => ({ params: $$props.params, fallback: $$props.fallback }), () => $$props.documentId);
76
+ $.next();
77
+ var text = $.text();
78
+ $.template_effect(() => $.set_text(text, translation.current));
79
+ $.append($$anchor, text);
80
+ $.pop();
81
+ }
82
+ export {
83
+ Translate,
84
+ useI18nCapability,
85
+ useI18nPlugin,
86
+ useLocale,
87
+ useTranslation,
88
+ useTranslations
89
+ };
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/svelte/hooks/use-i18n.svelte.ts","../../src/svelte/components/Translate.svelte"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/svelte';\nimport { I18nPlugin } from '@embedpdf/plugin-i18n';\n\nexport const useI18nCapability = () => useCapability<I18nPlugin>(I18nPlugin.id);\nexport const useI18nPlugin = () => usePlugin<I18nPlugin>(I18nPlugin.id);\n\n/**\n * Hook to get a translate function for a component\n * Automatically updates all translations on locale or param changes\n *\n * @param getDocumentId - Function that returns the document ID for document-scoped translations\n * @returns translate function and current locale\n *\n * @example\n * const { translate, locale } = useTranslations(() => documentId);\n * // In template:\n * {translate('page.title')}\n * {translate('page.count', { params: { count: 5 } })}\n * {translate('unknown.key', { fallback: 'Default Text' })}\n */\nexport const useTranslations = (getDocumentId?: () => string | undefined) => {\n const capability = useI18nCapability();\n\n let forceUpdateCounter = $state(0);\n\n // Reactive documentId\n const documentId = $derived(getDocumentId?.());\n\n $effect(() => {\n const provides = capability.provides;\n const docId = documentId;\n\n if (!provides) return;\n\n // Subscribe to locale changes\n const unsubscribeLocale = provides.onLocaleChange(() => {\n forceUpdateCounter++;\n });\n\n // Subscribe to params changes\n const unsubscribeParams = docId\n ? provides.forDocument(docId).onParamsChanged(() => {\n forceUpdateCounter++;\n })\n : provides.onParamsChanged(() => {\n forceUpdateCounter++;\n });\n\n return () => {\n unsubscribeLocale();\n unsubscribeParams();\n };\n });\n\n // Create translate function\n const translate = (\n key: string,\n options?: {\n params?: Record<string, string | number>;\n fallback?: string;\n },\n ): string => {\n // Access forceUpdateCounter to trigger reactivity\n forceUpdateCounter;\n\n const provides = capability.provides;\n if (!provides) return options?.fallback ?? key;\n\n const docId = getDocumentId?.();\n return provides.t(key, {\n documentId: docId,\n params: options?.params,\n fallback: options?.fallback,\n });\n };\n\n return {\n translate,\n get locale() {\n return capability.provides?.getLocale() ?? 'en';\n },\n };\n};\n\n// Keep the old hook for single-key translations (useful for derived state)\nexport const useTranslation = (\n getKey: () => string,\n getOptions?: () =>\n | {\n params?: Record<string, string | number>;\n fallback?: string;\n }\n | undefined,\n getDocumentId?: () => string | undefined,\n) => {\n const { translate } = useTranslations(getDocumentId);\n\n return {\n get current() {\n return translate(getKey(), getOptions?.());\n },\n };\n};\n\nexport const useLocale = () => {\n const capability = useI18nCapability();\n\n let locale = $state<string>('en');\n\n $effect(() => {\n const provides = capability.provides;\n\n if (!provides) return;\n\n locale = provides.getLocale();\n\n return provides.onLocaleChange(({ currentLocale }) => {\n locale = currentLocale;\n });\n });\n\n return {\n get current() {\n return locale;\n },\n };\n};\n","<script lang=\"ts\">\n import { useTranslation } from '../hooks/use-i18n.svelte';\n\n interface TranslateProps {\n k: string;\n params?: Record<string, string | number>;\n fallback?: string;\n documentId?: string;\n }\n\n let { k, params, fallback, documentId }: TranslateProps = $props();\n\n const translation = useTranslation(\n () => k,\n () => ({ params, fallback }),\n () => documentId,\n );\n</script>\n\n{translation.current}\n"],"names":[],"mappings":";;;;;AAGa,MAAA,oBAAA,MAA0B,cAA0B,WAAW,EAAE;AACjE,MAAA,gBAAA,MAAsB,UAAsB,WAAW,EAAE;MAgBzD,kBAAA,CAAmB,kBAA6C;AACrE,QAAA,aAAa,kBAAA;AAEf,MAAA,6BAA4B,CAAC;AAG3B,QAAA,6BAAsB,gDAAA;AAE5B,IAAA,kBAAc;UACN,WAAW,WAAW;AACtB,UAAA,cAAQ,UAAA;SAET,SAAA;AAGC,UAAA,oBAAoB,SAAS,qBAAqB;eACtD,kBAAA;AAAA,IACF,CAAC;AAGK,UAAA,oBAAoB,QACtB,SAAS,YAAY,KAAK,EAAE,sBAAsB;eAChD,kBAAA;AAAA,IACF,CAAC,IACD,SAAS,gBAAA,MAAsB;eAC7B,kBAAA;AAAA,IACF,CAAC;iBAEQ;AACX,wBAAA;AACA,wBAAA;AAAA,IACF;AAAA,EACF,CAAC;AAGK,QAAA,YAAA,CACJ,KACA,YAIW;UAEX,kBAAA;UAEM,WAAW,WAAW;AACvB,QAAA,CAAA,SAAA,SAAiB,mCAAS,aAAY;AAErC,UAAA,QAAQ;WACP,SAAS,EAAE,KAAA;AAAA,MAChB,YAAY;AAAA,MACZ,QAAQ,mCAAS;AAAA,MACjB,UAAU,mCAAS;AAAA;EAEvB;;IAGE;AAAA,IACI,IAAA,SAAS;;AACJ,eAAA,gBAAW,aAAX,mBAAqB,gBAAe;AAAA,IAC7C;AAAA;AAEJ;AAGa,MAAA,kBACX,QACA,YAMA,kBACG;UACK,UAAA,IAAc,gBAAgB,aAAa;;IAG7C,IAAA,UAAU;aACL,UAAU,UAAU,0CAAA;AAAA,IAC7B;AAAA;AAEJ;AAEa,MAAA,kBAAkB;AACvB,QAAA,aAAa,kBAAA;AAEf,MAAA,iBAAwB,IAAI;AAEhC,IAAA,kBAAc;UACN,WAAW,WAAW;SAEvB,SAAA;UAEL,QAAS,SAAS,UAAA,GAAA,IAAA;AAEX,WAAA,SAAS,eAAA,CAAA,EAAkB,oBAAoB;AACpD,QAAA,IAAA,QAAS,eAAA,IAAA;AAAA,IACX,CAAC;AAAA,EACH,CAAC;;IAGK,IAAA,UAAU;mBACL,MAAA;AAAA,IACT;AAAA;AAEJ;sCC9HA;;AAYQ,QAAA,cAAc,eAAc,MAAA,QAAA,GAAA,OAAA,EAEvB,wBAAQ,UAAQ,QAAA,SAAA,IAAA,MAAA,QAAA,UAAA;;;AAK5B,IAAA,gBAAA,MAAA,EAAA,SAAA,MAAA,YAAY,OAAO,CAAA;;;AAFpB;"}
@@ -0,0 +1 @@
1
+ export { default as Translate } from './translate.vue';
@@ -0,0 +1,9 @@
1
+ interface TranslateProps {
2
+ k: string;
3
+ params?: Record<string, string | number>;
4
+ fallback?: string;
5
+ documentId?: string;
6
+ }
7
+ declare const __VLS_export: import('vue').DefineComponent<TranslateProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<TranslateProps> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1 @@
1
+ export * from './use-i18n';
@@ -0,0 +1,30 @@
1
+ import { MaybeRefOrGetter } from 'vue';
2
+ import { I18nPlugin } from '../../lib/index.ts';
3
+ export declare const useI18nCapability: () => import('@embedpdf/core/vue').CapabilityState<Readonly<import('../../lib/index.ts').I18nCapability>>;
4
+ export declare const useI18nPlugin: () => import('@embedpdf/core/vue').PluginState<I18nPlugin>;
5
+ /**
6
+ * Hook to get a translate function for a component
7
+ * Automatically updates all translations on locale or param changes
8
+ *
9
+ * @param documentId - Optional document ID for document-scoped translations (can be ref, computed, getter, or plain value)
10
+ * @returns translate function and current locale
11
+ *
12
+ * @example
13
+ * const { translate, locale } = useTranslations(documentId);
14
+ * // In template:
15
+ * {{ translate('page.title') }}
16
+ * {{ translate('page.count', { params: { count: 5 } }) }}
17
+ * {{ translate('unknown.key', { fallback: 'Default Text' }) }}
18
+ */
19
+ export declare const useTranslations: (documentId?: MaybeRefOrGetter<string | undefined>) => {
20
+ translate: (key: string, options?: {
21
+ params?: Record<string, string | number>;
22
+ fallback?: string;
23
+ }) => string;
24
+ locale: Readonly<import('vue').Ref<string, string>>;
25
+ };
26
+ export declare const useTranslation: (key: string, options?: {
27
+ params?: Record<string, string | number>;
28
+ fallback?: string;
29
+ }, documentId?: MaybeRefOrGetter<string | undefined>) => import('vue').ComputedRef<string>;
30
+ export declare const useLocale: () => import('vue').Ref<string, string>;
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),a=require("@embedpdf/core/vue"),t=require("@embedpdf/plugin-i18n"),n=()=>a.useCapability(t.I18nPlugin.id),r=a=>{const{provides:t}=n(),r=e.ref(0);e.watch([t,()=>a?e.toValue(a):void 0],([e,a],t,n)=>{if(!e)return;const o=e.onLocaleChange(()=>{r.value++}),l=a?e.forDocument(a).onParamsChanged(()=>{r.value++}):e.onParamsChanged(()=>{r.value++});n(()=>{o(),l()})},{immediate:!0});const o=e.computed(()=>{var e;return(null==(e=t.value)?void 0:e.getLocale())??"en"});return{translate:(n,o)=>{r.value;const l=t.value;if(!l)return(null==o?void 0:o.fallback)??n;const u=a?e.toValue(a):void 0;return l.t(n,{documentId:u,params:null==o?void 0:o.params,fallback:null==o?void 0:o.fallback})},locale:e.readonly(o)}},o=(a,t,n)=>{const{translate:o}=r(n);return e.computed(()=>o(a,t))},l=e.defineComponent({__name:"translate",props:{k:{},params:{},fallback:{},documentId:{}},setup(a){const t=a,n=o(t.k,{params:t.params,fallback:t.fallback},()=>t.documentId);return(a,t)=>(e.openBlock(),e.createElementBlock("span",null,e.toDisplayString(e.unref(n)),1))}});exports.Translate=l,exports.useI18nCapability=n,exports.useI18nPlugin=()=>a.usePlugin(t.I18nPlugin.id),exports.useLocale=()=>{const{provides:a}=n(),t=e.ref("en");return e.watch(a,(e,a,n)=>{if(!e)return;t.value=e.getLocale();n(e.onLocaleChange(({currentLocale:e})=>{t.value=e}))},{immediate:!0}),t},exports.useTranslation=o,exports.useTranslations=r,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/vue/hooks/use-i18n.ts","../../src/vue/components/translate.vue"],"sourcesContent":["import { ref, watch, computed, readonly, toValue, MaybeRefOrGetter } from 'vue';\nimport { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { I18nPlugin } from '@embedpdf/plugin-i18n';\n\nexport const useI18nCapability = () => useCapability<I18nPlugin>(I18nPlugin.id);\nexport const useI18nPlugin = () => usePlugin<I18nPlugin>(I18nPlugin.id);\n\n/**\n * Hook to get a translate function for a component\n * Automatically updates all translations on locale or param changes\n *\n * @param documentId - Optional document ID for document-scoped translations (can be ref, computed, getter, or plain value)\n * @returns translate function and current locale\n *\n * @example\n * const { translate, locale } = useTranslations(documentId);\n * // In template:\n * {{ translate('page.title') }}\n * {{ translate('page.count', { params: { count: 5 } }) }}\n * {{ translate('unknown.key', { fallback: 'Default Text' }) }}\n */\nexport const useTranslations = (documentId?: MaybeRefOrGetter<string | undefined>) => {\n const { provides } = useI18nCapability();\n const forceUpdateCounter = ref(0);\n\n // Watch for locale and params changes\n watch(\n [provides, () => (documentId ? toValue(documentId) : undefined)],\n ([providesValue, docId], _, onCleanup) => {\n if (!providesValue) return;\n\n // Subscribe to locale changes\n const unsubscribeLocale = providesValue.onLocaleChange(() => {\n forceUpdateCounter.value++;\n });\n\n // Subscribe to params changes\n const unsubscribeParams = docId\n ? providesValue.forDocument(docId).onParamsChanged(() => {\n forceUpdateCounter.value++;\n })\n : providesValue.onParamsChanged(() => {\n forceUpdateCounter.value++;\n });\n\n onCleanup(() => {\n unsubscribeLocale();\n unsubscribeParams();\n });\n },\n { immediate: true },\n );\n\n // Create translate function\n const translate = (\n key: string,\n options?: {\n params?: Record<string, string | number>;\n fallback?: string;\n },\n ): string => {\n // Access forceUpdateCounter to trigger reactivity\n forceUpdateCounter.value;\n\n const providesValue = provides.value;\n if (!providesValue) return options?.fallback ?? key;\n\n const docId = documentId ? toValue(documentId) : undefined;\n return providesValue.t(key, {\n documentId: docId,\n params: options?.params,\n fallback: options?.fallback,\n });\n };\n\n const locale = computed(() => provides.value?.getLocale() ?? 'en');\n\n return {\n translate,\n locale: readonly(locale),\n };\n};\n\n// Keep the old hook for single-key translations (useful for derived state)\nexport const useTranslation = (\n key: string,\n options?: {\n params?: Record<string, string | number>;\n fallback?: string;\n },\n documentId?: MaybeRefOrGetter<string | undefined>,\n) => {\n const { translate } = useTranslations(documentId);\n return computed(() => translate(key, options));\n};\n\nexport const useLocale = () => {\n const { provides } = useI18nCapability();\n const locale = ref<string>('en');\n\n watch(\n provides,\n (providesValue, _, onCleanup) => {\n if (!providesValue) return;\n\n locale.value = providesValue.getLocale();\n\n const unsubscribe = providesValue.onLocaleChange(({ currentLocale }) => {\n locale.value = currentLocale;\n });\n\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n return locale;\n};\n","<script setup lang=\"ts\">\nimport { useTranslation } from '../hooks/use-i18n';\n\ninterface TranslateProps {\n k: string;\n params?: Record<string, string | number>;\n fallback?: string;\n documentId?: string;\n}\n\nconst props = defineProps<TranslateProps>();\nconst translation = useTranslation(\n props.k,\n { params: props.params, fallback: props.fallback },\n () => props.documentId,\n);\n</script>\n\n<template>\n <span>{{ translation }}</span>\n</template>\n"],"names":["useI18nCapability","useCapability","I18nPlugin","id","useTranslations","documentId","provides","forceUpdateCounter","ref","watch","toValue","providesValue","docId","_","onCleanup","unsubscribeLocale","onLocaleChange","value","unsubscribeParams","forDocument","onParamsChanged","immediate","locale","computed","_a","getLocale","translate","key","options","fallback","t","params","readonly","useTranslation","props","__props","translation","k","_openBlock","_createElementBlock","_unref","usePlugin","currentLocale"],"mappings":"0KAIaA,EAAoB,IAAMC,gBAA0BC,EAAAA,WAAWC,IAiB/DC,EAAmBC,IAC9B,MAAMC,SAAEA,GAAaN,IACfO,EAAqBC,EAAAA,IAAI,GAG/BC,EAAAA,MACE,CAACH,EAAU,IAAOD,EAAaK,EAAAA,QAAQL,QAAc,GACrD,EAAEM,EAAeC,GAAQC,EAAGC,KAC1B,IAAKH,EAAe,OAGpB,MAAMI,EAAoBJ,EAAcK,eAAe,KACrDT,EAAmBU,UAIfC,EAAoBN,EACtBD,EAAcQ,YAAYP,GAAOQ,gBAAgB,KAC/Cb,EAAmBU,UAErBN,EAAcS,gBAAgB,KAC5Bb,EAAmBU,UAGzBH,EAAU,KACRC,IACAG,OAGJ,CAAEG,WAAW,IAIf,MAqBMC,EAASC,EAAAA,SAAS,WAAM,OAAA,OAAAC,EAAAlB,EAASW,gBAAOQ,cAAe,OAE7D,MAAO,CACLC,UAxBgB,CAChBC,EACAC,KAMArB,EAAmBU,MAEnB,MAAMN,EAAgBL,EAASW,MAC/B,IAAKN,EAAe,OAAO,MAAAiB,OAAA,EAAAA,EAASC,WAAYF,EAEhD,MAAMf,EAAQP,EAAaK,UAAQL,QAAc,EACjD,OAAOM,EAAcmB,EAAEH,EAAK,CAC1BtB,WAAYO,EACZmB,OAAQ,MAAAH,OAAA,EAAAA,EAASG,OACjBF,SAAU,MAAAD,OAAA,EAAAA,EAASC,YAQrBP,OAAQU,EAAAA,SAASV,KAKRW,EAAiB,CAC5BN,EACAC,EAIAvB,KAEA,MAAMqB,UAAEA,GAActB,EAAgBC,GACtC,OAAOkB,EAAAA,SAAS,IAAMG,EAAUC,EAAKC,uGCnFvC,MAAMM,EAAQC,EACRC,EAAcH,EAClBC,EAAMG,EACN,CAAEN,OAAQG,EAAMH,OAAQF,SAAUK,EAAML,UACxC,IAAMK,EAAM7B,0BAKZiC,EAAAA,YAAAC,EAAAA,mBAA8B,8BAArBC,QAAAJ,IAAW,6EDdO,IAAMK,YAAsBvC,EAAAA,WAAWC,sBA2F3C,KACvB,MAAMG,SAAEA,GAAaN,IACfsB,EAASd,EAAAA,IAAY,MAkB3B,OAhBAC,EAAAA,MACEH,EACA,CAACK,EAAeE,EAAGC,KACjB,IAAKH,EAAe,OAEpBW,EAAOL,MAAQN,EAAcc,YAM7BX,EAJoBH,EAAcK,eAAe,EAAG0B,oBAClDpB,EAAOL,MAAQyB,MAKnB,CAAErB,WAAW,IAGRC"}
@@ -0,0 +1,3 @@
1
+ export * from './hooks';
2
+ export * from './components';
3
+ export * from '../lib/index.ts';
@@ -0,0 +1,98 @@
1
+ import { ref, watch, toValue, computed, readonly, defineComponent, createElementBlock, openBlock, toDisplayString, unref } from "vue";
2
+ import { useCapability, usePlugin } from "@embedpdf/core/vue";
3
+ import { I18nPlugin } from "@embedpdf/plugin-i18n";
4
+ export * from "@embedpdf/plugin-i18n";
5
+ const useI18nCapability = () => useCapability(I18nPlugin.id);
6
+ const useI18nPlugin = () => usePlugin(I18nPlugin.id);
7
+ const useTranslations = (documentId) => {
8
+ const { provides } = useI18nCapability();
9
+ const forceUpdateCounter = ref(0);
10
+ watch(
11
+ [provides, () => documentId ? toValue(documentId) : void 0],
12
+ ([providesValue, docId], _, onCleanup) => {
13
+ if (!providesValue) return;
14
+ const unsubscribeLocale = providesValue.onLocaleChange(() => {
15
+ forceUpdateCounter.value++;
16
+ });
17
+ const unsubscribeParams = docId ? providesValue.forDocument(docId).onParamsChanged(() => {
18
+ forceUpdateCounter.value++;
19
+ }) : providesValue.onParamsChanged(() => {
20
+ forceUpdateCounter.value++;
21
+ });
22
+ onCleanup(() => {
23
+ unsubscribeLocale();
24
+ unsubscribeParams();
25
+ });
26
+ },
27
+ { immediate: true }
28
+ );
29
+ const translate = (key, options) => {
30
+ forceUpdateCounter.value;
31
+ const providesValue = provides.value;
32
+ if (!providesValue) return (options == null ? void 0 : options.fallback) ?? key;
33
+ const docId = documentId ? toValue(documentId) : void 0;
34
+ return providesValue.t(key, {
35
+ documentId: docId,
36
+ params: options == null ? void 0 : options.params,
37
+ fallback: options == null ? void 0 : options.fallback
38
+ });
39
+ };
40
+ const locale = computed(() => {
41
+ var _a;
42
+ return ((_a = provides.value) == null ? void 0 : _a.getLocale()) ?? "en";
43
+ });
44
+ return {
45
+ translate,
46
+ locale: readonly(locale)
47
+ };
48
+ };
49
+ const useTranslation = (key, options, documentId) => {
50
+ const { translate } = useTranslations(documentId);
51
+ return computed(() => translate(key, options));
52
+ };
53
+ const useLocale = () => {
54
+ const { provides } = useI18nCapability();
55
+ const locale = ref("en");
56
+ watch(
57
+ provides,
58
+ (providesValue, _, onCleanup) => {
59
+ if (!providesValue) return;
60
+ locale.value = providesValue.getLocale();
61
+ const unsubscribe = providesValue.onLocaleChange(({ currentLocale }) => {
62
+ locale.value = currentLocale;
63
+ });
64
+ onCleanup(unsubscribe);
65
+ },
66
+ { immediate: true }
67
+ );
68
+ return locale;
69
+ };
70
+ const _sfc_main = /* @__PURE__ */ defineComponent({
71
+ __name: "translate",
72
+ props: {
73
+ k: {},
74
+ params: {},
75
+ fallback: {},
76
+ documentId: {}
77
+ },
78
+ setup(__props) {
79
+ const props = __props;
80
+ const translation = useTranslation(
81
+ props.k,
82
+ { params: props.params, fallback: props.fallback },
83
+ () => props.documentId
84
+ );
85
+ return (_ctx, _cache) => {
86
+ return openBlock(), createElementBlock("span", null, toDisplayString(unref(translation)), 1);
87
+ };
88
+ }
89
+ });
90
+ export {
91
+ _sfc_main as Translate,
92
+ useI18nCapability,
93
+ useI18nPlugin,
94
+ useLocale,
95
+ useTranslation,
96
+ useTranslations
97
+ };
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/vue/hooks/use-i18n.ts","../../src/vue/components/translate.vue"],"sourcesContent":["import { ref, watch, computed, readonly, toValue, MaybeRefOrGetter } from 'vue';\nimport { useCapability, usePlugin } from '@embedpdf/core/vue';\nimport { I18nPlugin } from '@embedpdf/plugin-i18n';\n\nexport const useI18nCapability = () => useCapability<I18nPlugin>(I18nPlugin.id);\nexport const useI18nPlugin = () => usePlugin<I18nPlugin>(I18nPlugin.id);\n\n/**\n * Hook to get a translate function for a component\n * Automatically updates all translations on locale or param changes\n *\n * @param documentId - Optional document ID for document-scoped translations (can be ref, computed, getter, or plain value)\n * @returns translate function and current locale\n *\n * @example\n * const { translate, locale } = useTranslations(documentId);\n * // In template:\n * {{ translate('page.title') }}\n * {{ translate('page.count', { params: { count: 5 } }) }}\n * {{ translate('unknown.key', { fallback: 'Default Text' }) }}\n */\nexport const useTranslations = (documentId?: MaybeRefOrGetter<string | undefined>) => {\n const { provides } = useI18nCapability();\n const forceUpdateCounter = ref(0);\n\n // Watch for locale and params changes\n watch(\n [provides, () => (documentId ? toValue(documentId) : undefined)],\n ([providesValue, docId], _, onCleanup) => {\n if (!providesValue) return;\n\n // Subscribe to locale changes\n const unsubscribeLocale = providesValue.onLocaleChange(() => {\n forceUpdateCounter.value++;\n });\n\n // Subscribe to params changes\n const unsubscribeParams = docId\n ? providesValue.forDocument(docId).onParamsChanged(() => {\n forceUpdateCounter.value++;\n })\n : providesValue.onParamsChanged(() => {\n forceUpdateCounter.value++;\n });\n\n onCleanup(() => {\n unsubscribeLocale();\n unsubscribeParams();\n });\n },\n { immediate: true },\n );\n\n // Create translate function\n const translate = (\n key: string,\n options?: {\n params?: Record<string, string | number>;\n fallback?: string;\n },\n ): string => {\n // Access forceUpdateCounter to trigger reactivity\n forceUpdateCounter.value;\n\n const providesValue = provides.value;\n if (!providesValue) return options?.fallback ?? key;\n\n const docId = documentId ? toValue(documentId) : undefined;\n return providesValue.t(key, {\n documentId: docId,\n params: options?.params,\n fallback: options?.fallback,\n });\n };\n\n const locale = computed(() => provides.value?.getLocale() ?? 'en');\n\n return {\n translate,\n locale: readonly(locale),\n };\n};\n\n// Keep the old hook for single-key translations (useful for derived state)\nexport const useTranslation = (\n key: string,\n options?: {\n params?: Record<string, string | number>;\n fallback?: string;\n },\n documentId?: MaybeRefOrGetter<string | undefined>,\n) => {\n const { translate } = useTranslations(documentId);\n return computed(() => translate(key, options));\n};\n\nexport const useLocale = () => {\n const { provides } = useI18nCapability();\n const locale = ref<string>('en');\n\n watch(\n provides,\n (providesValue, _, onCleanup) => {\n if (!providesValue) return;\n\n locale.value = providesValue.getLocale();\n\n const unsubscribe = providesValue.onLocaleChange(({ currentLocale }) => {\n locale.value = currentLocale;\n });\n\n onCleanup(unsubscribe);\n },\n { immediate: true },\n );\n\n return locale;\n};\n","<script setup lang=\"ts\">\nimport { useTranslation } from '../hooks/use-i18n';\n\ninterface TranslateProps {\n k: string;\n params?: Record<string, string | number>;\n fallback?: string;\n documentId?: string;\n}\n\nconst props = defineProps<TranslateProps>();\nconst translation = useTranslation(\n props.k,\n { params: props.params, fallback: props.fallback },\n () => props.documentId,\n);\n</script>\n\n<template>\n <span>{{ translation }}</span>\n</template>\n"],"names":["_openBlock","_createElementBlock","_unref"],"mappings":";;;;AAIO,MAAM,oBAAoB,MAAM,cAA0B,WAAW,EAAE;AACvE,MAAM,gBAAgB,MAAM,UAAsB,WAAW,EAAE;AAgB/D,MAAM,kBAAkB,CAAC,eAAsD;AACpF,QAAM,EAAE,SAAA,IAAa,kBAAA;AACrB,QAAM,qBAAqB,IAAI,CAAC;AAGhC;AAAA,IACE,CAAC,UAAU,MAAO,aAAa,QAAQ,UAAU,IAAI,MAAU;AAAA,IAC/D,CAAC,CAAC,eAAe,KAAK,GAAG,GAAG,cAAc;AACxC,UAAI,CAAC,cAAe;AAGpB,YAAM,oBAAoB,cAAc,eAAe,MAAM;AAC3D,2BAAmB;AAAA,MACrB,CAAC;AAGD,YAAM,oBAAoB,QACtB,cAAc,YAAY,KAAK,EAAE,gBAAgB,MAAM;AACrD,2BAAmB;AAAA,MACrB,CAAC,IACD,cAAc,gBAAgB,MAAM;AAClC,2BAAmB;AAAA,MACrB,CAAC;AAEL,gBAAU,MAAM;AACd,0BAAA;AACA,0BAAA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,IACA,EAAE,WAAW,KAAA;AAAA,EAAK;AAIpB,QAAM,YAAY,CAChB,KACA,YAIW;AAEX,uBAAmB;AAEnB,UAAM,gBAAgB,SAAS;AAC/B,QAAI,CAAC,cAAe,SAAO,mCAAS,aAAY;AAEhD,UAAM,QAAQ,aAAa,QAAQ,UAAU,IAAI;AACjD,WAAO,cAAc,EAAE,KAAK;AAAA,MAC1B,YAAY;AAAA,MACZ,QAAQ,mCAAS;AAAA,MACjB,UAAU,mCAAS;AAAA,IAAA,CACpB;AAAA,EACH;AAEA,QAAM,SAAS,SAAS,MAAA;;AAAM,2BAAS,UAAT,mBAAgB,gBAAe;AAAA,GAAI;AAEjE,SAAO;AAAA,IACL;AAAA,IACA,QAAQ,SAAS,MAAM;AAAA,EAAA;AAE3B;AAGO,MAAM,iBAAiB,CAC5B,KACA,SAIA,eACG;AACH,QAAM,EAAE,UAAA,IAAc,gBAAgB,UAAU;AAChD,SAAO,SAAS,MAAM,UAAU,KAAK,OAAO,CAAC;AAC/C;AAEO,MAAM,YAAY,MAAM;AAC7B,QAAM,EAAE,SAAA,IAAa,kBAAA;AACrB,QAAM,SAAS,IAAY,IAAI;AAE/B;AAAA,IACE;AAAA,IACA,CAAC,eAAe,GAAG,cAAc;AAC/B,UAAI,CAAC,cAAe;AAEpB,aAAO,QAAQ,cAAc,UAAA;AAE7B,YAAM,cAAc,cAAc,eAAe,CAAC,EAAE,oBAAoB;AACtE,eAAO,QAAQ;AAAA,MACjB,CAAC;AAED,gBAAU,WAAW;AAAA,IACvB;AAAA,IACA,EAAE,WAAW,KAAA;AAAA,EAAK;AAGpB,SAAO;AACT;;;;;;;;;;AC3GA,UAAM,QAAQ;AACd,UAAM,cAAc;AAAA,MAClB,MAAM;AAAA,MACN,EAAE,QAAQ,MAAM,QAAQ,UAAU,MAAM,SAAA;AAAA,MACxC,MAAM,MAAM;AAAA,IAAA;;AAKZ,aAAAA,UAAA,GAAAC,mBAA8B,8BAArBC,MAAA,WAAA,CAAW,GAAA,CAAA;AAAA;;;"}
package/package.json ADDED
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "@embedpdf/plugin-i18n",
3
+ "version": "2.0.0-next.0",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.cjs"
14
+ },
15
+ "./preact": {
16
+ "types": "./dist/preact/index.d.ts",
17
+ "import": "./dist/preact/index.js",
18
+ "require": "./dist/preact/index.cjs"
19
+ },
20
+ "./react": {
21
+ "types": "./dist/react/index.d.ts",
22
+ "import": "./dist/react/index.js",
23
+ "require": "./dist/react/index.cjs"
24
+ },
25
+ "./vue": {
26
+ "types": "./dist/vue/index.d.ts",
27
+ "import": "./dist/vue/index.js",
28
+ "require": "./dist/vue/index.cjs"
29
+ },
30
+ "./svelte": {
31
+ "types": "./dist/svelte/index.d.ts",
32
+ "svelte": "./dist/svelte/index.js",
33
+ "import": "./dist/svelte/index.js",
34
+ "require": "./dist/svelte/index.cjs"
35
+ }
36
+ },
37
+ "dependencies": {
38
+ "@embedpdf/models": "2.0.0-next.0"
39
+ },
40
+ "devDependencies": {
41
+ "@types/react": "^18.2.0",
42
+ "typescript": "^5.0.0",
43
+ "@embedpdf/core": "2.0.0-next.0",
44
+ "@embedpdf/build": "1.1.0"
45
+ },
46
+ "peerDependencies": {
47
+ "react": ">=16.8.0",
48
+ "react-dom": ">=16.8.0",
49
+ "preact": "^10.26.4",
50
+ "vue": ">=3.2.0",
51
+ "svelte": ">=5 <6",
52
+ "@embedpdf/core": "2.0.0-next.0"
53
+ },
54
+ "files": [
55
+ "dist",
56
+ "README.md"
57
+ ],
58
+ "repository": {
59
+ "type": "git",
60
+ "url": "https://github.com/embedpdf/embed-pdf-viewer",
61
+ "directory": "packages/plugin-i18n"
62
+ },
63
+ "homepage": "https://www.embedpdf.com/docs",
64
+ "bugs": {
65
+ "url": "https://github.com/embedpdf/embed-pdf-viewer/issues"
66
+ },
67
+ "publishConfig": {
68
+ "access": "public"
69
+ },
70
+ "scripts": {
71
+ "build:base": "vite build --mode base",
72
+ "build:react": "vite build --mode react",
73
+ "build:preact": "vite build --mode preact",
74
+ "build:vue": "vite build --mode vue",
75
+ "build:svelte": "vite build --mode svelte",
76
+ "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\"",
77
+ "clean": "rimraf dist",
78
+ "lint": "eslint src --color",
79
+ "lint:fix": "eslint src --color --fix"
80
+ }
81
+ }