svelte-intlayer 7.1.8-canary.0 → 7.1.9-canary.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.
- package/dist/IntlayerNodeWrapper.svelte +10 -0
- package/dist/IntlayerNodeWrapper.svelte.d.ts +22 -0
- package/dist/client/IntlayerProvider.svelte +24 -0
- package/dist/client/IntlayerProvider.svelte.d.ts +30 -0
- package/dist/{types/client → client}/getBrowserLocale.d.ts +1 -1
- package/dist/client/getBrowserLocale.js +17 -0
- package/dist/client/index.js +12 -0
- package/dist/{types/client → client}/intlayerContext.d.ts +2 -1
- package/dist/client/intlayerContext.js +8 -0
- package/dist/client/intlayerStore.d.ts +11 -0
- package/dist/client/intlayerStore.js +19 -0
- package/dist/{types/client → client}/useDictionary.d.ts +3 -3
- package/dist/client/useDictionary.js +18 -0
- package/dist/{types/client → client}/useDictionaryAsync.d.ts +2 -2
- package/dist/client/useDictionaryAsync.js +38 -0
- package/dist/{types/client → client}/useDictionaryDynamic.d.ts +2 -2
- package/dist/client/useDictionaryDynamic.js +38 -0
- package/dist/{types/client → client}/useIntlayer.d.ts +4 -3
- package/dist/client/useIntlayer.js +18 -0
- package/dist/client/useLocale.d.ts +16 -0
- package/dist/client/useLocale.js +33 -0
- package/dist/client/useLocaleStorage.d.ts +39 -0
- package/dist/client/useLocaleStorage.js +52 -0
- package/dist/editor/ContentSelector.svelte +125 -0
- package/dist/editor/ContentSelector.svelte.d.ts +35 -0
- package/dist/editor/ContentSelectorWrapper.svelte +69 -0
- package/dist/editor/ContentSelectorWrapper.svelte.d.ts +31 -0
- package/dist/editor/communicator.d.ts +9 -0
- package/dist/editor/communicator.js +54 -0
- package/dist/editor/dictionariesRecord.d.ts +5 -0
- package/dist/editor/dictionariesRecord.js +16 -0
- package/dist/editor/editorEnabled.d.ts +14 -0
- package/dist/editor/editorEnabled.js +41 -0
- package/dist/editor/focusDictionary.d.ts +15 -0
- package/dist/editor/focusDictionary.js +22 -0
- package/dist/editor/index.d.ts +9 -0
- package/dist/editor/index.js +9 -0
- package/dist/editor/useCrossFrameMessageListener.d.ts +2 -0
- package/dist/editor/useCrossFrameMessageListener.js +65 -0
- package/dist/editor/useCrossFrameState.d.ts +7 -0
- package/dist/editor/useCrossFrameState.js +82 -0
- package/dist/editor/useEditor.d.ts +1 -0
- package/dist/editor/useEditor.js +46 -0
- package/dist/editor/useIframeClickInterceptor.d.ts +2 -0
- package/dist/editor/useIframeClickInterceptor.js +29 -0
- package/dist/{types/getDictionary.d.ts → getDictionary.d.ts} +3 -3
- package/dist/getDictionary.js +18 -0
- package/dist/{types/getIntlayer.d.ts → getIntlayer.d.ts} +3 -3
- package/dist/getIntlayer.js +18 -0
- package/dist/{types/index.d.ts → index.d.ts} +4 -2
- package/dist/index.js +7 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/index.test.js +6 -0
- package/dist/markdown/MarkdownMetadataRenderer.svelte +21 -0
- package/dist/markdown/MarkdownMetadataRenderer.svelte.d.ts +25 -0
- package/dist/markdown/MarkdownMetadataWithSelector.svelte +21 -0
- package/dist/markdown/MarkdownMetadataWithSelector.svelte.d.ts +24 -0
- package/dist/markdown/MarkdownProvider.svelte +9 -0
- package/dist/markdown/MarkdownProvider.svelte.d.ts +29 -0
- package/dist/markdown/MarkdownRenderer.svelte +11 -0
- package/dist/markdown/MarkdownRenderer.svelte.d.ts +20 -0
- package/dist/markdown/MarkdownWithSelector.svelte +15 -0
- package/dist/markdown/MarkdownWithSelector.svelte.d.ts +23 -0
- package/dist/markdown/context.d.ts +6 -0
- package/dist/markdown/context.js +10 -0
- package/dist/markdown/index.d.ts +4 -0
- package/dist/markdown/index.js +4 -0
- package/dist/plugins.d.ts +42 -0
- package/dist/plugins.js +87 -0
- package/dist/renderIntlayerNode.d.ts +13 -0
- package/dist/renderIntlayerNode.js +44 -0
- package/dist/setIntlayerMarkdown.d.ts +1 -0
- package/dist/setIntlayerMarkdown.js +2 -0
- package/package.json +22 -29
- package/dist/cjs/client/getBrowserLocale.cjs +0 -1
- package/dist/cjs/client/index.cjs +0 -1
- package/dist/cjs/client/intlayerContext.cjs +0 -1
- package/dist/cjs/client/intlayerStore.cjs +0 -1
- package/dist/cjs/client/useDictionary.cjs +0 -1
- package/dist/cjs/client/useDictionaryAsync.cjs +0 -1
- package/dist/cjs/client/useDictionaryDynamic.cjs +0 -1
- package/dist/cjs/client/useIntlayer.cjs +0 -1
- package/dist/cjs/client/useLocale.cjs +0 -1
- package/dist/cjs/getDictionary.cjs +0 -1
- package/dist/cjs/getIntlayer.cjs +0 -1
- package/dist/cjs/index.cjs +0 -1
- package/dist/cjs/markdown/index.cjs +0 -1
- package/dist/cjs/plugins.cjs +0 -1
- package/dist/esm/client/getBrowserLocale.mjs +0 -9
- package/dist/esm/client/index.mjs +0 -19
- package/dist/esm/client/intlayerContext.mjs +0 -8
- package/dist/esm/client/intlayerStore.mjs +0 -16
- package/dist/esm/client/useDictionary.mjs +0 -14
- package/dist/esm/client/useDictionaryAsync.mjs +0 -27
- package/dist/esm/client/useDictionaryDynamic.mjs +0 -27
- package/dist/esm/client/useIntlayer.mjs +0 -14
- package/dist/esm/client/useLocale.mjs +0 -22
- package/dist/esm/getDictionary.mjs +0 -18
- package/dist/esm/getIntlayer.mjs +0 -14
- package/dist/esm/index.mjs +0 -30
- package/dist/esm/markdown/index.mjs +0 -10
- package/dist/esm/plugins.mjs +0 -18
- package/dist/types/client/intlayerStore.d.ts +0 -11
- package/dist/types/client/useLocale.d.ts +0 -15
- package/dist/types/markdown/index.d.ts +0 -27
- package/dist/types/plugins.d.ts +0 -27
- /package/dist/{types/client → client}/index.d.ts +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IInterpreterPluginSvelte } from './plugins';
|
|
1
|
+
import type { IInterpreterPluginSvelte } from './plugins';
|
|
2
2
|
declare module '@intlayer/core' {
|
|
3
3
|
interface IInterpreterPlugin<T, S, L> extends IInterpreterPluginSvelte<T> {
|
|
4
4
|
}
|
|
@@ -6,5 +6,7 @@ declare module '@intlayer/core' {
|
|
|
6
6
|
export * from './client';
|
|
7
7
|
export * from './getDictionary';
|
|
8
8
|
export * from './getIntlayer';
|
|
9
|
-
export * from './markdown';
|
|
10
9
|
export * from './plugins';
|
|
10
|
+
import { useEditor } from './editor';
|
|
11
|
+
import { setMarkdownContext } from './markdown';
|
|
12
|
+
export { useEditor as useIntlayerEditor, setMarkdownContext as setIntlayerMarkdown, };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './client';
|
|
2
|
+
export * from './getDictionary';
|
|
3
|
+
export * from './getIntlayer';
|
|
4
|
+
export * from './plugins';
|
|
5
|
+
import { useEditor } from './editor';
|
|
6
|
+
import { setMarkdownContext } from './markdown';
|
|
7
|
+
export { useEditor as useIntlayerEditor, setMarkdownContext as setIntlayerMarkdown, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { getContentNodeByKeyPath, getMarkdownMetadata } from '@intlayer/core';
|
|
3
|
+
import type { ContentNode, KeyPath, Locale } from '@intlayer/types';
|
|
4
|
+
import { useLocale } from '../client/useLocale';
|
|
5
|
+
|
|
6
|
+
export const locale: Locale | undefined = undefined;
|
|
7
|
+
export let value: string;
|
|
8
|
+
export let metadataKeyPath: KeyPath[];
|
|
9
|
+
|
|
10
|
+
const { locale: contextLocale } = useLocale();
|
|
11
|
+
|
|
12
|
+
$: metadata = getMarkdownMetadata(value);
|
|
13
|
+
$: currentLocale = locale ?? $contextLocale;
|
|
14
|
+
$: metadataEl = getContentNodeByKeyPath(
|
|
15
|
+
metadata as ContentNode,
|
|
16
|
+
metadataKeyPath,
|
|
17
|
+
currentLocale
|
|
18
|
+
);
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
{metadataEl}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { KeyPath, Locale } from '@intlayer/types';
|
|
2
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
+
$$bindings?: Bindings;
|
|
5
|
+
} & Exports;
|
|
6
|
+
(internal: unknown, props: Props & {
|
|
7
|
+
$$events?: Events;
|
|
8
|
+
$$slots?: Slots;
|
|
9
|
+
}): Exports & {
|
|
10
|
+
$set?: any;
|
|
11
|
+
$on?: any;
|
|
12
|
+
};
|
|
13
|
+
z_$$bindings?: Bindings;
|
|
14
|
+
}
|
|
15
|
+
declare const MarkdownMetadataRenderer: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
+
locale?: Locale | undefined;
|
|
17
|
+
value: string;
|
|
18
|
+
metadataKeyPath: KeyPath[];
|
|
19
|
+
}, {
|
|
20
|
+
[evt: string]: CustomEvent<any>;
|
|
21
|
+
}, {}, {
|
|
22
|
+
locale: Locale | undefined;
|
|
23
|
+
}, string>;
|
|
24
|
+
type MarkdownMetadataRenderer = InstanceType<typeof MarkdownMetadataRenderer>;
|
|
25
|
+
export default MarkdownMetadataRenderer;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { KeyPath } from '@intlayer/types';
|
|
3
|
+
import ContentSelectorWrapper from '../editor/ContentSelectorWrapper.svelte';
|
|
4
|
+
import MarkdownMetadataRenderer from './MarkdownMetadataRenderer.svelte';
|
|
5
|
+
|
|
6
|
+
export let dictionaryKey: string;
|
|
7
|
+
export let keyPath: KeyPath[];
|
|
8
|
+
export let value: string;
|
|
9
|
+
export let metadataKeyPath: KeyPath[];
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<ContentSelectorWrapper {dictionaryKey} {keyPath}>
|
|
13
|
+
<MarkdownMetadataRenderer
|
|
14
|
+
{dictionaryKey}
|
|
15
|
+
{keyPath}
|
|
16
|
+
{value}
|
|
17
|
+
{metadataKeyPath}
|
|
18
|
+
/>
|
|
19
|
+
</ContentSelectorWrapper>
|
|
20
|
+
|
|
21
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { KeyPath } from '@intlayer/types';
|
|
2
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
+
$$bindings?: Bindings;
|
|
5
|
+
} & Exports;
|
|
6
|
+
(internal: unknown, props: Props & {
|
|
7
|
+
$$events?: Events;
|
|
8
|
+
$$slots?: Slots;
|
|
9
|
+
}): Exports & {
|
|
10
|
+
$set?: any;
|
|
11
|
+
$on?: any;
|
|
12
|
+
};
|
|
13
|
+
z_$$bindings?: Bindings;
|
|
14
|
+
}
|
|
15
|
+
declare const MarkdownMetadataWithSelector: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
+
dictionaryKey: string;
|
|
17
|
+
keyPath: KeyPath[];
|
|
18
|
+
value: string;
|
|
19
|
+
metadataKeyPath: KeyPath[];
|
|
20
|
+
}, {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
}, {}, {}, string>;
|
|
23
|
+
type MarkdownMetadataWithSelector = InstanceType<typeof MarkdownMetadataWithSelector>;
|
|
24
|
+
export default MarkdownMetadataWithSelector;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: Props & {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
type $$__sveltets_2_PropsWithChildren<Props, Slots> = Props & (Slots extends {
|
|
15
|
+
default: any;
|
|
16
|
+
} ? Props extends Record<string, never> ? any : {
|
|
17
|
+
children?: any;
|
|
18
|
+
} : {});
|
|
19
|
+
declare const MarkdownProvider: $$__sveltets_2_IsomorphicComponent<$$__sveltets_2_PropsWithChildren<{
|
|
20
|
+
renderMarkdown?: (markdown: string) => string;
|
|
21
|
+
}, {
|
|
22
|
+
default: {};
|
|
23
|
+
}>, {
|
|
24
|
+
[evt: string]: CustomEvent<any>;
|
|
25
|
+
}, {
|
|
26
|
+
default: {};
|
|
27
|
+
}, {}, string>;
|
|
28
|
+
type MarkdownProvider = InstanceType<typeof MarkdownProvider>;
|
|
29
|
+
export default MarkdownProvider;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
2
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
+
$$bindings?: Bindings;
|
|
4
|
+
} & Exports;
|
|
5
|
+
(internal: unknown, props: Props & {
|
|
6
|
+
$$events?: Events;
|
|
7
|
+
$$slots?: Slots;
|
|
8
|
+
}): Exports & {
|
|
9
|
+
$set?: any;
|
|
10
|
+
$on?: any;
|
|
11
|
+
};
|
|
12
|
+
z_$$bindings?: Bindings;
|
|
13
|
+
}
|
|
14
|
+
declare const MarkdownRenderer: $$__sveltets_2_IsomorphicComponent<{
|
|
15
|
+
value: string;
|
|
16
|
+
}, {
|
|
17
|
+
[evt: string]: CustomEvent<any>;
|
|
18
|
+
}, {}, {}, string>;
|
|
19
|
+
type MarkdownRenderer = InstanceType<typeof MarkdownRenderer>;
|
|
20
|
+
export default MarkdownRenderer;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { KeyPath } from '@intlayer/types';
|
|
3
|
+
import ContentSelectorWrapper from '../editor/ContentSelectorWrapper.svelte';
|
|
4
|
+
import MarkdownRenderer from './MarkdownRenderer.svelte';
|
|
5
|
+
|
|
6
|
+
export let dictionaryKey: string;
|
|
7
|
+
export let keyPath: KeyPath[];
|
|
8
|
+
export let value: string;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<ContentSelectorWrapper {dictionaryKey} {keyPath}>
|
|
12
|
+
<MarkdownRenderer {dictionaryKey} {keyPath} {value} />
|
|
13
|
+
</ContentSelectorWrapper>
|
|
14
|
+
|
|
15
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { KeyPath } from '@intlayer/types';
|
|
2
|
+
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
3
|
+
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
|
+
$$bindings?: Bindings;
|
|
5
|
+
} & Exports;
|
|
6
|
+
(internal: unknown, props: Props & {
|
|
7
|
+
$$events?: Events;
|
|
8
|
+
$$slots?: Slots;
|
|
9
|
+
}): Exports & {
|
|
10
|
+
$set?: any;
|
|
11
|
+
$on?: any;
|
|
12
|
+
};
|
|
13
|
+
z_$$bindings?: Bindings;
|
|
14
|
+
}
|
|
15
|
+
declare const MarkdownWithSelector: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
+
dictionaryKey: string;
|
|
17
|
+
keyPath: KeyPath[];
|
|
18
|
+
value: string;
|
|
19
|
+
}, {
|
|
20
|
+
[evt: string]: CustomEvent<any>;
|
|
21
|
+
}, {}, {}, string>;
|
|
22
|
+
type MarkdownWithSelector = InstanceType<typeof MarkdownWithSelector>;
|
|
23
|
+
export default MarkdownWithSelector;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare const MARKDOWN_CONTEXT_KEY: unique symbol;
|
|
2
|
+
export interface MarkdownContext {
|
|
3
|
+
renderMarkdown: (markdown: string) => string;
|
|
4
|
+
}
|
|
5
|
+
export declare const getMarkdownContext: () => MarkdownContext;
|
|
6
|
+
export declare const setMarkdownContext: (context: MarkdownContext) => void;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { getContext, setContext } from 'svelte';
|
|
2
|
+
export const MARKDOWN_CONTEXT_KEY = Symbol('INTLAYER_MARKDOWN_CONTEXT');
|
|
3
|
+
export const getMarkdownContext = () => {
|
|
4
|
+
return (getContext(MARKDOWN_CONTEXT_KEY) || {
|
|
5
|
+
renderMarkdown: (md) => md,
|
|
6
|
+
});
|
|
7
|
+
};
|
|
8
|
+
export const setMarkdownContext = (context) => {
|
|
9
|
+
setContext(MARKDOWN_CONTEXT_KEY, context);
|
|
10
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type DeepTransformContent as DeepTransformContentCore, type IInterpreterPluginState as IInterpreterPluginStateCore, type Plugins } from '@intlayer/core';
|
|
2
|
+
import { type DeclaredLocales, type LocalesValues, NodeType } from '@intlayer/types';
|
|
3
|
+
import { type IntlayerNode } from './renderIntlayerNode';
|
|
4
|
+
/**
|
|
5
|
+
* Interface for Svelte-specific plugin functionality
|
|
6
|
+
* This interface can be augmented to add more Svelte-specific transformations
|
|
7
|
+
*/
|
|
8
|
+
export type IInterpreterPluginState = IInterpreterPluginStateCore & {
|
|
9
|
+
/** Any Svelte-specific properties can be added here */
|
|
10
|
+
intlayerNode: true;
|
|
11
|
+
markdown: true;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Type that represents the deep transformation of content for Svelte
|
|
15
|
+
* This applies Svelte-specific transformations recursively to all content
|
|
16
|
+
*/
|
|
17
|
+
export type DeepTransformContent<T, L extends LocalesValues = DeclaredLocales> = DeepTransformContentCore<T, IInterpreterPluginState, L>;
|
|
18
|
+
/**
|
|
19
|
+
* Basic Intlayer node plugins for content handling
|
|
20
|
+
* These handle the core content transformation logic
|
|
21
|
+
*/
|
|
22
|
+
export declare const intlayerNodePlugins: Plugins;
|
|
23
|
+
/**
|
|
24
|
+
* Svelte-specific node plugins for handling basic content types
|
|
25
|
+
* These plugins handle strings, numbers, and bigints in Svelte applications
|
|
26
|
+
*/
|
|
27
|
+
export declare const svelteNodePlugins: Plugins;
|
|
28
|
+
export type MarkdownStringCond<T> = T extends string ? IntlayerNode<string> : never;
|
|
29
|
+
/** Markdown string plugin. Replaces string node with a component that render the markdown. */
|
|
30
|
+
export declare const markdownStringPlugin: Plugins;
|
|
31
|
+
export type MarkdownCond<T> = T extends {
|
|
32
|
+
nodeType: NodeType | string;
|
|
33
|
+
[NodeType.Markdown]: infer M;
|
|
34
|
+
metadata?: infer U;
|
|
35
|
+
} ? IntlayerNode<DeepTransformContent<M>, {
|
|
36
|
+
metadata: DeepTransformContent<U>;
|
|
37
|
+
}> : never;
|
|
38
|
+
export declare const markdownPlugin: Plugins;
|
|
39
|
+
export interface IInterpreterPluginSvelte<T> {
|
|
40
|
+
intlayerNode: T extends string | number ? IntlayerNode<T> : never;
|
|
41
|
+
markdown: MarkdownCond<T>;
|
|
42
|
+
}
|
package/dist/plugins.js
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { getMarkdownMetadata, } from '@intlayer/core';
|
|
2
|
+
import { NodeType, } from '@intlayer/types';
|
|
3
|
+
import { ContentSelectorWrapper } from './editor';
|
|
4
|
+
import MarkdownMetadataWithSelector from './markdown/MarkdownMetadataWithSelector.svelte';
|
|
5
|
+
import MarkdownWithSelector from './markdown/MarkdownWithSelector.svelte';
|
|
6
|
+
import { renderIntlayerNode } from './renderIntlayerNode';
|
|
7
|
+
/**
|
|
8
|
+
* Basic Intlayer node plugins for content handling
|
|
9
|
+
* These handle the core content transformation logic
|
|
10
|
+
*/
|
|
11
|
+
export const intlayerNodePlugins = {
|
|
12
|
+
id: 'intlayer-node-plugin',
|
|
13
|
+
canHandle: (node) => typeof node === 'bigint' ||
|
|
14
|
+
typeof node === 'string' ||
|
|
15
|
+
typeof node === 'number',
|
|
16
|
+
transform: (node, { children, ...rest }) => renderIntlayerNode({
|
|
17
|
+
value: children ?? node,
|
|
18
|
+
component: ContentSelectorWrapper,
|
|
19
|
+
props: rest,
|
|
20
|
+
}),
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Svelte-specific node plugins for handling basic content types
|
|
24
|
+
* These plugins handle strings, numbers, and bigints in Svelte applications
|
|
25
|
+
*/
|
|
26
|
+
export const svelteNodePlugins = intlayerNodePlugins;
|
|
27
|
+
/** Markdown string plugin. Replaces string node with a component that render the markdown. */
|
|
28
|
+
export const markdownStringPlugin = {
|
|
29
|
+
id: 'markdown-string-plugin',
|
|
30
|
+
canHandle: (node) => typeof node === 'string',
|
|
31
|
+
transform: (node, props, deepTransformNode) => {
|
|
32
|
+
const { ...rest } = props;
|
|
33
|
+
const metadata = getMarkdownMetadata(node) ?? {};
|
|
34
|
+
const metadataPlugins = {
|
|
35
|
+
id: 'markdown-metadata-plugin',
|
|
36
|
+
canHandle: (metadataNode) => typeof metadataNode === 'string' ||
|
|
37
|
+
typeof metadataNode === 'number' ||
|
|
38
|
+
typeof metadataNode === 'boolean' ||
|
|
39
|
+
!metadataNode,
|
|
40
|
+
transform: (metadataNode, props) => renderIntlayerNode({
|
|
41
|
+
value: metadataNode,
|
|
42
|
+
component: MarkdownMetadataWithSelector,
|
|
43
|
+
props: {
|
|
44
|
+
...rest,
|
|
45
|
+
value: node, // The full markdown string
|
|
46
|
+
metadataKeyPath: props.keyPath,
|
|
47
|
+
},
|
|
48
|
+
}),
|
|
49
|
+
};
|
|
50
|
+
// Transform metadata while keeping the same structure
|
|
51
|
+
const metadataNodes = deepTransformNode(metadata, {
|
|
52
|
+
plugins: [metadataPlugins],
|
|
53
|
+
dictionaryKey: rest.dictionaryKey,
|
|
54
|
+
keyPath: [],
|
|
55
|
+
}) ?? {};
|
|
56
|
+
return renderIntlayerNode({
|
|
57
|
+
value: node,
|
|
58
|
+
component: MarkdownWithSelector,
|
|
59
|
+
props: {
|
|
60
|
+
...rest,
|
|
61
|
+
value: node,
|
|
62
|
+
},
|
|
63
|
+
additionalProps: {
|
|
64
|
+
metadata: metadataNodes,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
export const markdownPlugin = {
|
|
70
|
+
id: 'markdown-plugin',
|
|
71
|
+
canHandle: (node) => typeof node === 'object' && node?.nodeType === NodeType.Markdown,
|
|
72
|
+
transform: (node, props, deepTransformNode) => {
|
|
73
|
+
const newKeyPath = [
|
|
74
|
+
...props.keyPath,
|
|
75
|
+
{
|
|
76
|
+
type: NodeType.Markdown,
|
|
77
|
+
},
|
|
78
|
+
];
|
|
79
|
+
const children = node[NodeType.Markdown];
|
|
80
|
+
return deepTransformNode(children, {
|
|
81
|
+
...props,
|
|
82
|
+
children,
|
|
83
|
+
keyPath: newKeyPath,
|
|
84
|
+
plugins: [markdownStringPlugin, ...(props.plugins ?? [])],
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
type IntlayerNodeProps = {
|
|
2
|
+
value: any;
|
|
3
|
+
component: any;
|
|
4
|
+
props: Record<string, any>;
|
|
5
|
+
additionalProps?: Record<string, any>;
|
|
6
|
+
};
|
|
7
|
+
export type IntlayerNode<T = any, P = Record<string, any>> = {
|
|
8
|
+
new (...args: any[]): any;
|
|
9
|
+
(anchor: any, props: any): any;
|
|
10
|
+
value: T;
|
|
11
|
+
} & P;
|
|
12
|
+
export declare const renderIntlayerNode: <T = any, P = Record<string, any>>(args: IntlayerNodeProps) => IntlayerNode<T, P>;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import IntlayerNodeWrapper from './IntlayerNodeWrapper.svelte';
|
|
2
|
+
export const renderIntlayerNode = (args) => {
|
|
3
|
+
const isClassComponent = Boolean(IntlayerNodeWrapper.prototype?.$destroy);
|
|
4
|
+
let Node;
|
|
5
|
+
if (isClassComponent) {
|
|
6
|
+
Node = class extends IntlayerNodeWrapper {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
super({
|
|
9
|
+
...options,
|
|
10
|
+
props: {
|
|
11
|
+
...options.props,
|
|
12
|
+
Renderer: args.component,
|
|
13
|
+
rendererProps: args.props,
|
|
14
|
+
value: args.value,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
// Functional component (Svelte 5)
|
|
22
|
+
Node = (anchor, props) => {
|
|
23
|
+
const mergedProps = {
|
|
24
|
+
...props,
|
|
25
|
+
Renderer: args.component,
|
|
26
|
+
rendererProps: args.props,
|
|
27
|
+
value: args.value,
|
|
28
|
+
};
|
|
29
|
+
return IntlayerNodeWrapper(anchor, mergedProps);
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
Object.defineProperty(Node, 'value', {
|
|
33
|
+
value: args.value,
|
|
34
|
+
writable: false,
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(Node, 'toString', {
|
|
37
|
+
value: () => args.value?.toString() ?? '',
|
|
38
|
+
writable: false,
|
|
39
|
+
});
|
|
40
|
+
if (args.additionalProps) {
|
|
41
|
+
Object.assign(Node, args.additionalProps);
|
|
42
|
+
}
|
|
43
|
+
return Node;
|
|
44
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setIntlayerMarkdown: (context: import("./markdown").MarkdownContext) => void;
|
package/package.json
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "svelte-intlayer",
|
|
3
|
-
"version": "7.1.
|
|
4
|
-
"private": false,
|
|
3
|
+
"version": "7.1.9-canary.0",
|
|
5
4
|
"description": "Easily internationalize i18n your Svelte applications with type-safe multilingual content management.",
|
|
6
5
|
"keywords": [
|
|
7
6
|
"intlayer",
|
|
@@ -36,31 +35,25 @@
|
|
|
36
35
|
"type": "module",
|
|
37
36
|
"exports": {
|
|
38
37
|
".": {
|
|
39
|
-
"types": "./dist/
|
|
40
|
-
"
|
|
41
|
-
"
|
|
38
|
+
"types": "./dist/index.d.ts",
|
|
39
|
+
"svelte": "./dist/index.js",
|
|
40
|
+
"default": "./dist/index.js"
|
|
42
41
|
},
|
|
43
42
|
"./package.json": "./package.json"
|
|
44
43
|
},
|
|
45
|
-
"main": "dist/
|
|
46
|
-
"module": "dist/
|
|
47
|
-
"types": "dist/
|
|
48
|
-
"typesVersions": {
|
|
49
|
-
"*": {
|
|
50
|
-
"package.json": [
|
|
51
|
-
"./package.json"
|
|
52
|
-
]
|
|
53
|
-
}
|
|
54
|
-
},
|
|
44
|
+
"main": "dist/index.js",
|
|
45
|
+
"module": "dist/index.js",
|
|
46
|
+
"types": "dist/index.d.ts",
|
|
55
47
|
"files": [
|
|
56
48
|
"./dist",
|
|
57
49
|
"./package.json"
|
|
58
50
|
],
|
|
59
51
|
"scripts": {
|
|
60
|
-
"build": "
|
|
61
|
-
"build:ci": "
|
|
52
|
+
"build": "svelte-package -i src -o dist",
|
|
53
|
+
"build:ci": "svelte-package -i src -o dist",
|
|
54
|
+
"check": "svelte-check --tsconfig ./tsconfig.types.json",
|
|
62
55
|
"clean": "rimraf ./dist .turbo",
|
|
63
|
-
"dev": "
|
|
56
|
+
"dev": "svelte-package -i src -o dist --watch",
|
|
64
57
|
"format": "biome format . --check",
|
|
65
58
|
"format:fix": "biome format --write .",
|
|
66
59
|
"lint": "biome lint .",
|
|
@@ -74,23 +67,26 @@
|
|
|
74
67
|
"typecheck": "tsc --noEmit --project tsconfig.types.json"
|
|
75
68
|
},
|
|
76
69
|
"dependencies": {
|
|
77
|
-
"@intlayer/api": "7.1.8
|
|
78
|
-
"@intlayer/config": "7.1.8
|
|
79
|
-
"@intlayer/core": "7.1.8
|
|
80
|
-
"@intlayer/editor": "7.1.8
|
|
81
|
-
"@intlayer/types": "7.1.8
|
|
70
|
+
"@intlayer/api": "7.1.8",
|
|
71
|
+
"@intlayer/config": "7.1.8",
|
|
72
|
+
"@intlayer/core": "7.1.8",
|
|
73
|
+
"@intlayer/editor": "7.1.8",
|
|
74
|
+
"@intlayer/types": "7.1.8",
|
|
75
|
+
"@intlayer/unmerged-dictionaries-entry": "7.1.8"
|
|
82
76
|
},
|
|
83
77
|
"devDependencies": {
|
|
84
|
-
"@sveltejs/
|
|
78
|
+
"@sveltejs/package": "^2.5.4",
|
|
79
|
+
"@sveltejs/vite-plugin-svelte": "^4.0.0",
|
|
85
80
|
"@types/node": "24.10.1",
|
|
86
81
|
"@utils/ts-config": "1.0.4",
|
|
87
82
|
"@utils/ts-config-types": "1.0.4",
|
|
88
83
|
"@utils/tsdown-config": "1.0.4",
|
|
89
84
|
"rimraf": "6.1.0",
|
|
85
|
+
"svelte": "^5.0.0",
|
|
86
|
+
"svelte-check": "^4.0.0",
|
|
90
87
|
"tsdown": "0.16.5",
|
|
91
88
|
"typescript": "5.9.3",
|
|
92
|
-
"vite": "
|
|
93
|
-
"vite-plugin-dts": "4.5.4",
|
|
89
|
+
"vite": "^5.0.0",
|
|
94
90
|
"vitest": "4.0.10"
|
|
95
91
|
},
|
|
96
92
|
"peerDependencies": {
|
|
@@ -98,8 +94,5 @@
|
|
|
98
94
|
},
|
|
99
95
|
"engines": {
|
|
100
96
|
"node": ">=14.18"
|
|
101
|
-
},
|
|
102
|
-
"bug": {
|
|
103
|
-
"url": "https://github.com/aymericzip/intlayer/issues"
|
|
104
97
|
}
|
|
105
98
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=()=>{if(typeof navigator>"u")return"en";const e=navigator.language||navigator.languages?.[0];return e&&e.split("-")[0]||"en"};exports.getBrowserLocale=n;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./getBrowserLocale.cjs"),e=require("./intlayerContext.cjs"),n=require("./intlayerStore.cjs"),r=require("./useDictionary.cjs"),i=require("./useDictionaryAsync.cjs"),c=require("./useDictionaryDynamic.cjs"),o=require("./useIntlayer.cjs"),s=require("./useLocale.cjs");exports.getBrowserLocale=t.getBrowserLocale;exports.getIntlayerContext=e.getIntlayerContext;exports.setIntlayerContext=e.setIntlayerContext;exports.intlayerStore=n.intlayerStore;exports.useDictionary=r.useDictionary;exports.useDictionaryAsync=i.useDictionaryAsync;exports.useDictionaryDynamic=c.useDictionaryDynamic;exports.useIntlayer=o.useIntlayer;exports.useLocale=s.useLocale;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("svelte"),e=Symbol("intlayer"),o=n=>{t.setContext(e,n)},r=()=>t.getContext(e);exports.getIntlayerContext=r;exports.setIntlayerContext=o;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("svelte/store"),c=()=>{const{subscribe:t,set:o,update:l}=r.writable({locale:"en"});return{subscribe:t,setLocale:e=>l(a=>({...a,locale:e})),getLocale:()=>r.derived({subscribe:t},e=>e.locale),reset:()=>o({locale:"en"})}},n=c();exports.intlayerStore=n;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("svelte/store"),c=require("../getDictionary.cjs"),a=require("./intlayerContext.cjs"),l=require("./intlayerStore.cjs"),s=(e,t)=>{const r=a.getIntlayerContext();return i.derived([l.intlayerStore],([n])=>{const o=t??r?.locale??n.locale;return c.getDictionary(e,o)})};exports.useDictionary=s;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("svelte/store"),s=require("./intlayerContext.cjs"),y=require("./intlayerStore.cjs"),d=async(n,c)=>{const i=s.getIntlayerContext(),e=r.writable(null);return r.derived([y.intlayerStore],([a])=>{const o=c??i?.locale??a.locale;return(async()=>{try{const t=n[o];if(t){const l=await t();e.set(l)}else e.set(null)}catch(t){console.error(`Failed to load dictionary for key: ${String(o)}`,t),e.set(null)}})(),null})};exports.useDictionaryAsync=d;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("svelte/store"),y=require("./intlayerContext.cjs"),d=require("./intlayerStore.cjs"),u=(r,n,i)=>{const c=y.getIntlayerContext(),e=o.writable(null);return o.derived([d.intlayerStore],([a])=>{const l=i??c?.locale??a.locale;return(async()=>{try{const t=r[l];if(t){const s=await t();e.set(s)}else e.set(null)}catch(t){console.error(`Failed to load dictionary for key: ${String(n)}`,t),e.set(null)}})(),null})};exports.useDictionaryDynamic=u;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("svelte/store"),c=require("../getIntlayer.cjs"),a=require("./intlayerContext.cjs"),i=require("./intlayerStore.cjs"),s=(e,t)=>{const r=a.getIntlayerContext();return l.derived([i.intlayerStore],([n])=>{const o=t??r?.locale??n.locale;return c.getIntlayer(e,o)})};exports.useIntlayer=s;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("@intlayer/config/built"),n=require("svelte/store"),c=require("./intlayerContext.cjs"),t=require("./intlayerStore.cjs"),i=()=>{const e=c.getIntlayerContext(),{defaultLocale:o,locales:l}=r?.internationalization??{};return e?{locale:n.derived([t.intlayerStore],([a])=>e.locale||a.locale),setLocale:e.setLocale}:{locale:t.intlayerStore.getLocale(),setLocale:t.intlayerStore.setLocale,defaultLocale:o,availableLocales:l}};exports.useLocale=i;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@intlayer/core"),e=require("./plugins.cjs"),s=(t,i,n)=>{const r=[e.intlayerNodePlugins,e.svelteNodePlugins,e.markdownPlugin,...n??[]];return o.getDictionary(t,i,r)};exports.getDictionary=s;
|
package/dist/cjs/getIntlayer.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@intlayer/core"),e=require("./plugins.cjs"),i=(t,n,r)=>{const l=[e.intlayerNodePlugins,e.svelteNodePlugins,e.markdownPlugin,...r??[]];return o.getIntlayer(t,n,l)};exports.getIntlayer=i;
|
package/dist/cjs/index.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./client/getBrowserLocale.cjs"),t=require("./client/intlayerContext.cjs"),i=require("./client/intlayerStore.cjs"),o=require("./client/useDictionary.cjs"),a=require("./client/useDictionaryAsync.cjs"),c=require("./client/useDictionaryDynamic.cjs"),s=require("./client/useIntlayer.cjs"),l=require("./client/useLocale.cjs"),u=require("./getDictionary.cjs"),y=require("./getIntlayer.cjs"),n=require("./markdown/index.cjs"),e=require("./plugins.cjs");exports.getBrowserLocale=r.getBrowserLocale;exports.getIntlayerContext=t.getIntlayerContext;exports.setIntlayerContext=t.setIntlayerContext;exports.intlayerStore=i.intlayerStore;exports.useDictionary=o.useDictionary;exports.useDictionaryAsync=a.useDictionaryAsync;exports.useDictionaryDynamic=c.useDictionaryDynamic;exports.useIntlayer=s.useIntlayer;exports.useLocale=l.useLocale;exports.getDictionary=u.getDictionary;exports.getIntlayer=y.getIntlayer;exports.defaultMarkdownRenderer=n.defaultMarkdownRenderer;exports.processMarkdown=n.processMarkdown;exports.intlayerNodePlugins=e.intlayerNodePlugins;exports.markdownPlugin=e.markdownPlugin;exports.svelteNodePlugins=e.svelteNodePlugins;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=e=>e,o={render:r,configure:e=>{console.log("Configuring markdown renderer with options:",e)}};exports.defaultMarkdownRenderer=o;exports.processMarkdown=r;
|
package/dist/cjs/plugins.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r={id:"svelte-node-plugin",canHandle:n=>typeof n=="bigint"||typeof n=="string"||typeof n=="number",transform:(n,{children:e,...t})=>e??n},i={id:"intlayer-node-plugin",canHandle:n=>typeof n=="bigint"||typeof n=="string"||typeof n=="number",transform:(n,{children:e,...t})=>e??n},o={id:"markdown-plugin",canHandle:n=>typeof n=="string",transform:(n,e)=>n};exports.intlayerNodePlugins=i;exports.markdownPlugin=o;exports.svelteNodePlugins=r;
|