@rakun-kit/react 1.5.1 → 1.6.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/README.md +122 -115
- package/dist/cjs/Image.js +40 -27
- package/dist/cjs/Image.js.map +1 -1
- package/dist/cjs/JsonViewer.js +76 -0
- package/dist/cjs/JsonViewer.js.map +1 -0
- package/dist/cjs/ModuleRenderer.js +7 -2
- package/dist/cjs/ModuleRenderer.js.map +1 -1
- package/dist/cjs/PageInfoClientProvider.js +9 -6
- package/dist/cjs/PageInfoClientProvider.js.map +1 -1
- package/dist/cjs/PageInfoClientSync.js +3 -2
- package/dist/cjs/PageInfoClientSync.js.map +1 -1
- package/dist/cjs/PageInfoProvider.js +6 -2
- package/dist/cjs/PageInfoProvider.js.map +1 -1
- package/dist/cjs/RakunLogo.js +12 -0
- package/dist/cjs/RakunLogo.js.map +1 -0
- package/dist/cjs/ServerModuleRenderer.js +4 -0
- package/dist/cjs/ServerModuleRenderer.js.map +1 -1
- package/dist/cjs/StructuredData.js +135 -0
- package/dist/cjs/StructuredData.js.map +1 -0
- package/dist/cjs/Video.js +64 -0
- package/dist/cjs/Video.js.map +1 -0
- package/dist/cjs/builtin-modules.js +7 -0
- package/dist/cjs/builtin-modules.js.map +1 -0
- package/dist/cjs/format.js +3 -3
- package/dist/cjs/format.js.map +1 -1
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mediaUrl.js +25 -0
- package/dist/cjs/mediaUrl.js.map +1 -0
- package/dist/cjs/pageInfoStore.js +58 -14
- package/dist/cjs/pageInfoStore.js.map +1 -1
- package/dist/cjs/translation.js +2 -1
- package/dist/cjs/translation.js.map +1 -1
- package/dist/cjs/useClientT.js +2 -0
- package/dist/cjs/useClientT.js.map +1 -1
- package/dist/cjs/useT.js +2 -0
- package/dist/cjs/useT.js.map +1 -1
- package/dist/docs/index.md +57 -8
- package/dist/esm/Image.d.ts +2 -2
- package/dist/esm/Image.d.ts.map +1 -1
- package/dist/esm/Image.js +37 -24
- package/dist/esm/Image.js.map +1 -1
- package/dist/esm/JsonViewer.d.ts +17 -0
- package/dist/esm/JsonViewer.d.ts.map +1 -0
- package/dist/esm/JsonViewer.js +73 -0
- package/dist/esm/JsonViewer.js.map +1 -0
- package/dist/esm/ModuleRenderer.d.ts +1 -1
- package/dist/esm/ModuleRenderer.d.ts.map +1 -1
- package/dist/esm/ModuleRenderer.js +7 -2
- package/dist/esm/ModuleRenderer.js.map +1 -1
- package/dist/esm/PageInfoClientProvider.d.ts +4 -2
- package/dist/esm/PageInfoClientProvider.d.ts.map +1 -1
- package/dist/esm/PageInfoClientProvider.js +8 -6
- package/dist/esm/PageInfoClientProvider.js.map +1 -1
- package/dist/esm/PageInfoClientSync.d.ts +1 -0
- package/dist/esm/PageInfoClientSync.d.ts.map +1 -1
- package/dist/esm/PageInfoClientSync.js +3 -2
- package/dist/esm/PageInfoClientSync.js.map +1 -1
- package/dist/esm/PageInfoProvider.d.ts +1 -0
- package/dist/esm/PageInfoProvider.d.ts.map +1 -1
- package/dist/esm/PageInfoProvider.js +7 -3
- package/dist/esm/PageInfoProvider.js.map +1 -1
- package/dist/esm/RakunLogo.d.ts +6 -0
- package/dist/esm/RakunLogo.d.ts.map +1 -0
- package/dist/esm/RakunLogo.js +7 -0
- package/dist/esm/RakunLogo.js.map +1 -0
- package/dist/esm/ServerModuleRenderer.d.ts.map +1 -1
- package/dist/esm/ServerModuleRenderer.js +4 -0
- package/dist/esm/ServerModuleRenderer.js.map +1 -1
- package/dist/esm/StructuredData.d.ts +29 -0
- package/dist/esm/StructuredData.d.ts.map +1 -0
- package/dist/esm/StructuredData.js +129 -0
- package/dist/esm/StructuredData.js.map +1 -0
- package/dist/esm/Video.d.ts +35 -0
- package/dist/esm/Video.d.ts.map +1 -0
- package/dist/esm/Video.js +60 -0
- package/dist/esm/Video.js.map +1 -0
- package/dist/esm/builtin-modules.d.ts +3 -0
- package/dist/esm/builtin-modules.d.ts.map +1 -0
- package/dist/esm/builtin-modules.js +3 -0
- package/dist/esm/builtin-modules.js.map +1 -0
- package/dist/esm/format.d.ts +2 -0
- package/dist/esm/format.d.ts.map +1 -1
- package/dist/esm/format.js +3 -3
- package/dist/esm/format.js.map +1 -1
- package/dist/esm/index.d.ts +11 -6
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +11 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mediaUrl.d.ts +7 -0
- package/dist/esm/mediaUrl.d.ts.map +1 -0
- package/dist/esm/mediaUrl.js +21 -0
- package/dist/esm/mediaUrl.js.map +1 -0
- package/dist/esm/pageInfoStore.d.ts +4 -1
- package/dist/esm/pageInfoStore.d.ts.map +1 -1
- package/dist/esm/pageInfoStore.js +55 -13
- package/dist/esm/pageInfoStore.js.map +1 -1
- package/dist/esm/translation.d.ts +1 -1
- package/dist/esm/translation.d.ts.map +1 -1
- package/dist/esm/translation.js +1 -1
- package/dist/esm/translation.js.map +1 -1
- package/dist/esm/useClientT.d.ts +1 -1
- package/dist/esm/useClientT.d.ts.map +1 -1
- package/dist/esm/useClientT.js +3 -1
- package/dist/esm/useClientT.js.map +1 -1
- package/dist/esm/useT.d.ts +1 -1
- package/dist/esm/useT.d.ts.map +1 -1
- package/dist/esm/useT.js +3 -1
- package/dist/esm/useT.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +68 -68
package/README.md
CHANGED
|
@@ -1,68 +1,63 @@
|
|
|
1
|
-
# @rakun-kit/react
|
|
2
|
-
|
|
3
|
-
React helpers for rendering Rakun web modules.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
1
|
+
# @rakun-kit/react
|
|
2
|
+
|
|
3
|
+
React helpers for rendering Rakun web modules.
|
|
4
|
+
|
|
5
|
+
The package also exports `RakunLogoMark` and `RakunLogoBadge` for Rakun-owned
|
|
6
|
+
development and manager UI. `JsonViewer` provides the shared collapsible JSON
|
|
7
|
+
tree used by Rakun debugging interfaces; use `defaultExpandedDepth={-1}` when
|
|
8
|
+
the root should start collapsed.
|
|
9
|
+
|
|
10
|
+
Apps provide a module registry, so framework adapters stay open:
|
|
11
|
+
|
|
12
|
+
```tsx
|
|
13
|
+
import { createModuleRegistry, ModuleRenderer } from '@rakun-kit/react'
|
|
14
|
+
|
|
15
|
+
const registry = createModuleRegistry({
|
|
16
|
+
Hero: () => import('./modules/Hero'),
|
|
17
|
+
Footer: () => import('./modules/Footer'),
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export function Page({ modules }) {
|
|
21
|
+
return <ModuleRenderer modules={modules} registry={registry} />
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Vite, Next, and custom adapters can all feed the same renderer with different
|
|
26
|
+
loading strategies.
|
|
27
|
+
|
|
28
|
+
With Vite, use `import.meta.glob`:
|
|
29
|
+
|
|
30
|
+
```tsx
|
|
31
|
+
import { createModuleRegistryFromGlob, ModuleRenderer } from '@rakun-kit/react'
|
|
32
|
+
|
|
33
|
+
const registry = createModuleRegistryFromGlob(import.meta.glob('./modules/*.{tsx,jsx}'))
|
|
34
|
+
|
|
15
35
|
export function Page({ modules }) {
|
|
16
|
-
return <ModuleRenderer modules={modules} registry={registry}
|
|
17
|
-
}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```tsx
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
export function Page({ modules }) {
|
|
33
|
-
return <ModuleRenderer modules={modules} registry={registry} />;
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
The default key is the file name without extension, so `./modules/Hero.tsx`
|
|
38
|
-
matches a Rakun module with `_type: "Hero"`.
|
|
39
|
-
|
|
40
|
-
For nested folders or custom names:
|
|
41
|
-
|
|
42
|
-
```tsx
|
|
43
|
-
const registry = createModuleRegistryFromGlob(
|
|
44
|
-
import.meta.glob("./modules/**/*.tsx"),
|
|
45
|
-
{
|
|
46
|
-
getName: (path) => path.split("/").at(-2),
|
|
47
|
-
},
|
|
48
|
-
);
|
|
49
|
-
```
|
|
50
|
-
|
|
36
|
+
return <ModuleRenderer modules={modules} registry={registry} />
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The default key is the file name without extension, so `./modules/Hero.tsx`
|
|
41
|
+
matches a Rakun module with `_type: "Hero"`.
|
|
42
|
+
|
|
43
|
+
For nested folders or custom names:
|
|
44
|
+
|
|
45
|
+
```tsx
|
|
46
|
+
const registry = createModuleRegistryFromGlob(import.meta.glob('./modules/**/*.tsx'), {
|
|
47
|
+
getName: (path) => path.split('/').at(-2),
|
|
48
|
+
})
|
|
49
|
+
```
|
|
50
|
+
|
|
51
51
|
With Next, keep the dynamic import inside a client module when using
|
|
52
52
|
`ModuleRenderer`:
|
|
53
53
|
|
|
54
54
|
```tsx
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
import { ModuleRenderer } from
|
|
58
|
-
|
|
59
|
-
export function Page({ modules }) {
|
|
60
|
-
return (
|
|
61
|
-
<ModuleRenderer
|
|
62
|
-
modules={modules}
|
|
63
|
-
loadModule={(name) => import(`@/modules/${name}`)}
|
|
64
|
-
/>
|
|
65
|
-
);
|
|
55
|
+
'use client'
|
|
56
|
+
|
|
57
|
+
import { ModuleRenderer } from '@rakun-kit/react'
|
|
58
|
+
|
|
59
|
+
export function Page({ modules }) {
|
|
60
|
+
return <ModuleRenderer modules={modules} loadModule={(name) => import(`@/modules/${name}`)} />
|
|
66
61
|
}
|
|
67
62
|
```
|
|
68
63
|
|
|
@@ -71,20 +66,15 @@ For nested modules rendered by a React Server Component, use
|
|
|
71
66
|
does not cross a server-to-client boundary:
|
|
72
67
|
|
|
73
68
|
```tsx
|
|
74
|
-
import { ServerModuleRenderer } from
|
|
69
|
+
import { ServerModuleRenderer } from '@rakun-kit/react'
|
|
75
70
|
|
|
76
71
|
export default async function SectionLayout({ blocks = [] }) {
|
|
77
72
|
const modules = blocks.map(({ name, value }) => ({
|
|
78
73
|
...value,
|
|
79
74
|
_type: name,
|
|
80
|
-
}))
|
|
75
|
+
}))
|
|
81
76
|
|
|
82
|
-
return (
|
|
83
|
-
<ServerModuleRenderer
|
|
84
|
-
modules={modules}
|
|
85
|
-
loadModule={(name) => import(`./${name}`)}
|
|
86
|
-
/>
|
|
87
|
-
);
|
|
77
|
+
return <ServerModuleRenderer modules={modules} loadModule={(name) => import(`./${name}`)} />
|
|
88
78
|
}
|
|
89
79
|
```
|
|
90
80
|
|
|
@@ -92,51 +82,68 @@ Use the client `ModuleRenderer` when viewport lazy loading or client-side module
|
|
|
92
82
|
loading is required. `ServerModuleRenderer` also accepts a `registry` and a
|
|
93
83
|
`missing` renderer, but intentionally has no client-only lazy-loading props.
|
|
94
84
|
|
|
85
|
+
Both renderers handle Rakun's built-in `StructuredData` module without a loader
|
|
86
|
+
entry and emit a safely escaped `application/ld+json` script. An explicit
|
|
87
|
+
registry entry named `StructuredData` overrides the native renderer. The package
|
|
88
|
+
also exports `StructuredData`, `buildStructuredData`, and `serializeJsonLd` for
|
|
89
|
+
direct use.
|
|
90
|
+
|
|
95
91
|
Web plugins package module registries that the application explicitly merges:
|
|
96
|
-
|
|
97
|
-
```tsx
|
|
98
|
-
import {
|
|
99
|
-
defineRakunWebPlugin,
|
|
100
|
-
mergeRakunModuleRegistries,
|
|
101
|
-
PageLayoutRenderer,
|
|
102
|
-
} from '@rakun-kit/react'
|
|
103
|
-
|
|
104
|
-
const marketingWebPlugin = defineRakunWebPlugin({
|
|
105
|
-
id: '@acme/rakun-marketing',
|
|
106
|
-
modules: {
|
|
107
|
-
CampaignHero: () => import('./CampaignHero'),
|
|
108
|
-
},
|
|
109
|
-
})
|
|
110
|
-
|
|
111
|
-
const registry = mergeRakunModuleRegistries({
|
|
112
|
-
modules: appModules,
|
|
113
|
-
plugins: [marketingWebPlugin],
|
|
114
|
-
})
|
|
115
|
-
|
|
116
|
-
<PageLayoutRenderer page={page} registry={registry} />
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Duplicate plugin ids or module names fail immediately. Next.js users can pass
|
|
120
|
-
the same web facets to `createRakunPageModuleLoader` from `@rakun-kit/next/web`.
|
|
121
|
-
|
|
122
|
-
This is intentionally a function instead of a path string: Next needs to see the
|
|
123
|
-
dynamic import from inside the application bundle.
|
|
124
|
-
|
|
125
|
-
Use `PageLayoutRenderer` when Rakun returns layout slots:
|
|
126
|
-
|
|
127
|
-
```tsx
|
|
128
|
-
import { PageLayoutRenderer } from
|
|
129
|
-
|
|
130
|
-
export function Page({ page }) {
|
|
131
|
-
return (
|
|
132
|
-
<PageLayoutRenderer
|
|
133
|
-
page={page}
|
|
134
|
-
loadModule={(name) => import(`@/modules/${name}`)}
|
|
135
|
-
renderContent={({ children }) => <main>{children}</main>}
|
|
136
|
-
/>
|
|
137
|
-
)
|
|
138
|
-
}
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
Given a layout like `header -> content -> footer`, only the content modules are
|
|
142
|
-
wrapped in `<main>`.
|
|
92
|
+
|
|
93
|
+
```tsx
|
|
94
|
+
import {
|
|
95
|
+
defineRakunWebPlugin,
|
|
96
|
+
mergeRakunModuleRegistries,
|
|
97
|
+
PageLayoutRenderer,
|
|
98
|
+
} from '@rakun-kit/react'
|
|
99
|
+
|
|
100
|
+
const marketingWebPlugin = defineRakunWebPlugin({
|
|
101
|
+
id: '@acme/rakun-marketing',
|
|
102
|
+
modules: {
|
|
103
|
+
CampaignHero: () => import('./CampaignHero'),
|
|
104
|
+
},
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
const registry = mergeRakunModuleRegistries({
|
|
108
|
+
modules: appModules,
|
|
109
|
+
plugins: [marketingWebPlugin],
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
<PageLayoutRenderer page={page} registry={registry} />
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Duplicate plugin ids or module names fail immediately. Next.js users can pass
|
|
116
|
+
the same web facets to `createRakunPageModuleLoader` from `@rakun-kit/next/web`.
|
|
117
|
+
|
|
118
|
+
This is intentionally a function instead of a path string: Next needs to see the
|
|
119
|
+
dynamic import from inside the application bundle.
|
|
120
|
+
|
|
121
|
+
Use `PageLayoutRenderer` when Rakun returns layout slots:
|
|
122
|
+
|
|
123
|
+
```tsx
|
|
124
|
+
import { PageLayoutRenderer } from '@rakun-kit/react'
|
|
125
|
+
|
|
126
|
+
export function Page({ page }) {
|
|
127
|
+
return (
|
|
128
|
+
<PageLayoutRenderer
|
|
129
|
+
page={page}
|
|
130
|
+
loadModule={(name) => import(`@/modules/${name}`)}
|
|
131
|
+
renderContent={({ children }) => <main>{children}</main>}
|
|
132
|
+
/>
|
|
133
|
+
)
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Given a layout like `header -> content -> footer`, only the content modules are
|
|
138
|
+
wrapped in `<main>`.
|
|
139
|
+
|
|
140
|
+
Media returned by Rakun can be rendered with the package's `Image` and `Video`
|
|
141
|
+
components. `Video` puts WebM before MP4, allowing the browser to prefer WebM
|
|
142
|
+
when it is supported and fall back to MP4 otherwise:
|
|
143
|
+
|
|
144
|
+
```tsx
|
|
145
|
+
import { Image, Video } from '@rakun-kit/react'
|
|
146
|
+
|
|
147
|
+
<Image image={hero.image} sizes="100vw" />
|
|
148
|
+
<Video video={hero.video} controls playsInline />
|
|
149
|
+
```
|
package/dist/cjs/Image.js
CHANGED
|
@@ -4,33 +4,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.Image = void 0;
|
|
5
5
|
exports.RakunImage = RakunImage;
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
.filter(Boolean)
|
|
10
|
-
.map((part) => encodeURIComponent(part))
|
|
11
|
-
.join("/");
|
|
12
|
-
const joinUrlPath = (baseUrl, pathname) => {
|
|
13
|
-
const normalizedPath = pathname.startsWith("/") ? pathname : `/${pathname}`;
|
|
14
|
-
if (!baseUrl)
|
|
15
|
-
return normalizedPath;
|
|
16
|
-
return `${baseUrl.replace(/\/$/, "")}${normalizedPath}`;
|
|
17
|
-
};
|
|
18
|
-
const resolvePublicMediaUrl = ({ key, access, mediaBaseUrl, mediaPublicPath, }) => {
|
|
19
|
-
if (!key || access === "private")
|
|
20
|
-
return undefined;
|
|
21
|
-
const publicKey = key.startsWith("public/")
|
|
22
|
-
? key.slice("public/".length)
|
|
23
|
-
: key;
|
|
24
|
-
const encodedKey = encodeMediaPath(publicKey);
|
|
25
|
-
if (!encodedKey)
|
|
26
|
-
return undefined;
|
|
27
|
-
return joinUrlPath(mediaBaseUrl, `${mediaPublicPath}/${encodedKey}`);
|
|
28
|
-
};
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const mediaUrl_1 = require("./mediaUrl.js");
|
|
29
9
|
const buildSrcSet = ({ src, width, sizes, access, mediaBaseUrl, mediaPublicPath, includeOriginal, }) => {
|
|
30
10
|
const entries = (sizes ?? [])
|
|
31
11
|
.map((size) => ({
|
|
32
12
|
url: size.url ||
|
|
33
|
-
resolvePublicMediaUrl({
|
|
13
|
+
(0, mediaUrl_1.resolvePublicMediaUrl)({
|
|
34
14
|
key: size.key,
|
|
35
15
|
access,
|
|
36
16
|
mediaBaseUrl,
|
|
@@ -57,18 +37,18 @@ const buildSrcSet = ({ src, width, sizes, access, mediaBaseUrl, mediaPublicPath,
|
|
|
57
37
|
.join(", ");
|
|
58
38
|
return srcSet || undefined;
|
|
59
39
|
};
|
|
60
|
-
function RakunImage({ image, src, previewSrc, fallbackSrc, usePreview = false, alt, title, width, height, sizes = "100vw", imageSizes, srcSet, mediaBaseUrl, mediaPublicPath = "/media/public", includeOriginalInSrcSet = true, priority = false, loading = "lazy", decoding = "async", ...imgProps }) {
|
|
40
|
+
function RakunImage({ image, src, previewSrc, fallbackSrc, usePreview = false, alt, title, width, height, sizes = "100vw", imageSizes, srcSet, mediaBaseUrl, mediaPublicPath = "/media/public", includeOriginalInSrcSet = true, priority = false, loading = "lazy", decoding = "async", style, onLoad, ...imgProps }) {
|
|
61
41
|
const resolvedImgProps = {
|
|
62
42
|
...imgProps,
|
|
63
43
|
...(priority ? { fetchPriority: "high" } : {}),
|
|
64
44
|
};
|
|
65
|
-
const resolvedOriginalFromKey = resolvePublicMediaUrl({
|
|
45
|
+
const resolvedOriginalFromKey = (0, mediaUrl_1.resolvePublicMediaUrl)({
|
|
66
46
|
key: image?.key,
|
|
67
47
|
access: image?.access,
|
|
68
48
|
mediaBaseUrl,
|
|
69
49
|
mediaPublicPath,
|
|
70
50
|
});
|
|
71
|
-
const resolvedPreviewFromKey = resolvePublicMediaUrl({
|
|
51
|
+
const resolvedPreviewFromKey = (0, mediaUrl_1.resolvePublicMediaUrl)({
|
|
72
52
|
key: image?.previewKey,
|
|
73
53
|
access: image?.access,
|
|
74
54
|
mediaBaseUrl,
|
|
@@ -95,7 +75,40 @@ function RakunImage({ image, src, previewSrc, fallbackSrc, usePreview = false, a
|
|
|
95
75
|
mediaPublicPath,
|
|
96
76
|
includeOriginal: includeOriginalInSrcSet,
|
|
97
77
|
}));
|
|
98
|
-
|
|
78
|
+
const inlinePreviewSrc = !usePreview &&
|
|
79
|
+
resolvedPreviewSrc &&
|
|
80
|
+
resolvedPreviewSrc.startsWith("data:")
|
|
81
|
+
? resolvedPreviewSrc
|
|
82
|
+
: undefined;
|
|
83
|
+
const imageRef = (0, react_1.useRef)(null);
|
|
84
|
+
const [loadedSrc, setLoadedSrc] = (0, react_1.useState)();
|
|
85
|
+
const isLoaded = !!resolvedSrc && loadedSrc === resolvedSrc;
|
|
86
|
+
(0, react_1.useEffect)(() => {
|
|
87
|
+
const element = imageRef.current;
|
|
88
|
+
if (resolvedSrc && element?.complete && element.naturalWidth > 0) {
|
|
89
|
+
setLoadedSrc(resolvedSrc);
|
|
90
|
+
}
|
|
91
|
+
}, [resolvedSrc]);
|
|
92
|
+
const previewStyle = inlinePreviewSrc
|
|
93
|
+
? {
|
|
94
|
+
...style,
|
|
95
|
+
backgroundImage: isLoaded
|
|
96
|
+
? style?.backgroundImage
|
|
97
|
+
: `url("${inlinePreviewSrc}")`,
|
|
98
|
+
backgroundSize: isLoaded ? style?.backgroundSize : "cover",
|
|
99
|
+
backgroundPosition: isLoaded ? style?.backgroundPosition : "center",
|
|
100
|
+
filter: isLoaded
|
|
101
|
+
? style?.filter
|
|
102
|
+
: [style?.filter, "blur(20px)"].filter(Boolean).join(" "),
|
|
103
|
+
transition: [style?.transition, "filter 250ms ease-out"]
|
|
104
|
+
.filter(Boolean)
|
|
105
|
+
.join(", "),
|
|
106
|
+
}
|
|
107
|
+
: style;
|
|
108
|
+
return ((0, jsx_runtime_1.jsx)("img", { ref: imageRef, ...resolvedImgProps, src: resolvedSrc, srcSet: responsiveSrcSet || undefined, sizes: responsiveSrcSet ? sizes : undefined, alt: alt ?? image?.alt ?? image?.title ?? image?.name ?? "", title: title ?? image?.title ?? undefined, width: resolvedWidth ?? undefined, height: resolvedHeight ?? undefined, loading: priority ? "eager" : loading, decoding: decoding, style: previewStyle, onLoad: (event) => {
|
|
109
|
+
setLoadedSrc(resolvedSrc);
|
|
110
|
+
onLoad?.(event);
|
|
111
|
+
} }));
|
|
99
112
|
}
|
|
100
113
|
exports.Image = RakunImage;
|
|
101
114
|
//# sourceMappingURL=Image.js.map
|
package/dist/cjs/Image.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Image.js","sourceRoot":"","sources":["../../src/Image.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;
|
|
1
|
+
{"version":3,"file":"Image.js","sourceRoot":"","sources":["../../src/Image.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.JsonViewer = JsonViewer;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const defaultTheme = {
|
|
8
|
+
foreground: 'currentColor',
|
|
9
|
+
muted: '#8f99a3',
|
|
10
|
+
accent: '#49d17d',
|
|
11
|
+
border: 'rgba(127, 127, 127, 0.28)',
|
|
12
|
+
hover: 'rgba(127, 127, 127, 0.12)',
|
|
13
|
+
};
|
|
14
|
+
const isObject = (value) => typeof value === 'object' && value !== null;
|
|
15
|
+
const getEntries = (value) => Array.isArray(value)
|
|
16
|
+
? value.map((item, index) => [String(index), item])
|
|
17
|
+
: Object.entries(value);
|
|
18
|
+
const formatPrimitive = (value) => {
|
|
19
|
+
if (typeof value === 'string')
|
|
20
|
+
return JSON.stringify(value);
|
|
21
|
+
if (typeof value === 'number' || typeof value === 'boolean')
|
|
22
|
+
return String(value);
|
|
23
|
+
if (value === null)
|
|
24
|
+
return 'null';
|
|
25
|
+
if (value === undefined)
|
|
26
|
+
return 'undefined';
|
|
27
|
+
return String(value);
|
|
28
|
+
};
|
|
29
|
+
const Chevron = ({ open, color }) => ((0, jsx_runtime_1.jsx)("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: {
|
|
30
|
+
width: 16,
|
|
31
|
+
height: 16,
|
|
32
|
+
flexShrink: 0,
|
|
33
|
+
color,
|
|
34
|
+
transform: open ? 'rotate(90deg)' : undefined,
|
|
35
|
+
transition: 'transform 140ms ease',
|
|
36
|
+
}, children: (0, jsx_runtime_1.jsx)("path", { d: "m9 18 6-6-6-6" }) }));
|
|
37
|
+
const JsonNode = ({ name, value, depth, isLast = true, defaultExpandedDepth, theme, }) => {
|
|
38
|
+
const [open, setOpen] = (0, react_1.useState)(depth <= defaultExpandedDepth);
|
|
39
|
+
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
40
|
+
const entries = isObject(value) ? getEntries(value) : [];
|
|
41
|
+
const expandable = entries.length > 0;
|
|
42
|
+
const array = Array.isArray(value);
|
|
43
|
+
const openToken = array ? '[' : '{';
|
|
44
|
+
const closeToken = array ? ']' : '}';
|
|
45
|
+
const suffix = isLast ? '' : ',';
|
|
46
|
+
const collapsedToken = `${openToken}...${closeToken}${suffix}`;
|
|
47
|
+
const nameLabel = name === undefined ? null : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { style: { color: theme.foreground }, children: JSON.stringify(name) }), (0, jsx_runtime_1.jsx)("span", { style: { color: theme.muted }, children: ": " })] }));
|
|
48
|
+
if (!expandable) {
|
|
49
|
+
const emptyCollection = isObject(value) ? `${openToken}${closeToken}` : null;
|
|
50
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', minWidth: 0, paddingLeft: 16 }, children: (0, jsx_runtime_1.jsxs)("span", { style: { minWidth: 0, overflowWrap: 'anywhere' }, children: [nameLabel, (0, jsx_runtime_1.jsx)("span", { style: { color: theme.accent }, children: emptyCollection ?? formatPrimitive(value) }), (0, jsx_runtime_1.jsx)("span", { style: { color: theme.muted }, children: suffix })] }) }));
|
|
51
|
+
}
|
|
52
|
+
return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("button", { type: "button", "aria-expanded": open, onClick: () => setOpen((value) => !value), onMouseEnter: () => setHovered(true), onMouseLeave: () => setHovered(false), style: {
|
|
53
|
+
display: 'flex',
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
width: '100%',
|
|
56
|
+
minWidth: 0,
|
|
57
|
+
padding: 0,
|
|
58
|
+
border: 0,
|
|
59
|
+
borderRadius: 3,
|
|
60
|
+
background: hovered ? theme.hover : 'transparent',
|
|
61
|
+
color: 'inherit',
|
|
62
|
+
font: 'inherit',
|
|
63
|
+
lineHeight: 'inherit',
|
|
64
|
+
textAlign: 'left',
|
|
65
|
+
cursor: 'pointer',
|
|
66
|
+
}, children: [(0, jsx_runtime_1.jsx)(Chevron, { open: open, color: theme.muted }), (0, jsx_runtime_1.jsxs)("span", { style: { minWidth: 0, overflowWrap: 'anywhere' }, children: [nameLabel, (0, jsx_runtime_1.jsx)("span", { style: { color: theme.muted }, children: open ? openToken : collapsedToken })] })] }), open ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: {
|
|
67
|
+
marginLeft: 8,
|
|
68
|
+
paddingLeft: 12,
|
|
69
|
+
borderLeft: `1px solid ${theme.border}`,
|
|
70
|
+
}, children: entries.map(([key, child], index) => ((0, jsx_runtime_1.jsx)(JsonNode, { name: key, value: child, depth: depth + 1, isLast: index === entries.length - 1, defaultExpandedDepth: defaultExpandedDepth, theme: theme }, key))) }), (0, jsx_runtime_1.jsxs)("div", { style: { marginLeft: 8, color: theme.muted }, children: [closeToken, suffix] })] })) : null] }));
|
|
71
|
+
};
|
|
72
|
+
function JsonViewer({ value, className, style, defaultExpandedDepth = 0, theme: themeOverrides, }) {
|
|
73
|
+
const theme = { ...defaultTheme, ...themeOverrides };
|
|
74
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: className, style: { minWidth: 0, ...style }, children: (0, jsx_runtime_1.jsx)(JsonNode, { value: value, depth: 0, defaultExpandedDepth: defaultExpandedDepth, theme: theme }) }));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=JsonViewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"JsonViewer.js","sourceRoot":"","sources":["../../src/JsonViewer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const web_1 = require("@rakun-kit/core/web");
|
|
9
9
|
const ErrorBoundary_1 = require("./ErrorBoundary.js");
|
|
10
|
+
const builtin_modules_1 = require("./builtin-modules.js");
|
|
10
11
|
const LazyViewport_1 = require("./LazyViewport.js");
|
|
11
12
|
const pageInfoStore_1 = require("./pageInfoStore.js");
|
|
12
13
|
const registry_1 = require("./registry.js");
|
|
@@ -32,6 +33,10 @@ function getLazyComponent(load) {
|
|
|
32
33
|
}
|
|
33
34
|
function ModuleView({ module, index, registry, loadModule, fallback, missing, }) {
|
|
34
35
|
const entry = registry?.[module._type];
|
|
36
|
+
const BuiltinComponent = entry ? null : (0, builtin_modules_1.getRakunBuiltinModuleComponent)(module._type);
|
|
37
|
+
if (BuiltinComponent) {
|
|
38
|
+
return (0, jsx_runtime_1.jsx)(BuiltinComponent, { ...module });
|
|
39
|
+
}
|
|
35
40
|
if (!entry && !loadModule) {
|
|
36
41
|
return missing?.({ module, index }) ?? null;
|
|
37
42
|
}
|
|
@@ -67,7 +72,7 @@ function ModuleRenderer({ modules, page, layout, registry, loadModule, fallback,
|
|
|
67
72
|
const render = () => ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: entries.map((entry) => {
|
|
68
73
|
return ((0, jsx_runtime_1.jsx)(RenderModule, { module: entry.module, index: entry.index, entry: entry, registry: registry, loadModule: loadModule, fallback: fallback, missing: missing, error: error, lazyByViewport: lazyByViewport, eager: eager, rootMargin: rootMargin, threshold: threshold, getKey: getKey }, `${entry.module._id}:${entry.index}`));
|
|
69
74
|
}) }));
|
|
70
|
-
return page ? (0, pageInfoStore_1.runWithPageInfo)(page.info, render) : render();
|
|
75
|
+
return page ? (0, pageInfoStore_1.runWithPageInfo)(page.info, render, page.literals) : render();
|
|
71
76
|
}
|
|
72
77
|
function PageLayoutRenderer({ modules, page, layout, registry, loadModule, fallback, missing, error, eager = 3, lazy: lazyByViewport = true, rootMargin, threshold, getKey = defaultGetKey, renderContent = ({ children }) => (0, jsx_runtime_1.jsx)("main", { children: children }), }) {
|
|
73
78
|
const source = (0, react_1.useMemo)(() => layout ??
|
|
@@ -110,6 +115,6 @@ function PageLayoutRenderer({ modules, page, layout, registry, loadModule, fallb
|
|
|
110
115
|
index: layoutIndex,
|
|
111
116
|
}) }, `content:${layoutIndex}`));
|
|
112
117
|
}) }));
|
|
113
|
-
return page ? (0, pageInfoStore_1.runWithPageInfo)(page.info, render) : render();
|
|
118
|
+
return page ? (0, pageInfoStore_1.runWithPageInfo)(page.info, render, page.literals) : render();
|
|
114
119
|
}
|
|
115
120
|
//# sourceMappingURL=ModuleRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModuleRenderer.js","sourceRoot":"","sources":["../../src/ModuleRenderer.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"ModuleRenderer.js","sourceRoot":"","sources":["../../src/ModuleRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.useClientPageInfo = void 0;
|
|
4
|
+
exports.useClientPageLiterals = exports.useClientPageInfo = void 0;
|
|
5
5
|
exports.PageInfoClientProvider = PageInfoClientProvider;
|
|
6
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const react_1 = require("react");
|
|
8
8
|
const pageInfoStore_1 = require("./pageInfoStore.js");
|
|
9
|
-
const
|
|
10
|
-
function PageInfoClientProvider({ value, children, }) {
|
|
9
|
+
const PageRuntimeContext = (0, react_1.createContext)({ info: undefined, literals: undefined });
|
|
10
|
+
function PageInfoClientProvider({ value, literals, children, }) {
|
|
11
11
|
(0, react_1.useEffect)(() => {
|
|
12
12
|
(0, pageInfoStore_1.setCurrentPageInfo)(value);
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
(0, pageInfoStore_1.setCurrentPageLiterals)(literals);
|
|
14
|
+
}, [value, literals]);
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)(PageRuntimeContext.Provider, { value: { info: value, literals }, children: children }));
|
|
15
16
|
}
|
|
16
|
-
const useClientPageInfo = () => (0, react_1.useContext)(
|
|
17
|
+
const useClientPageInfo = () => (0, react_1.useContext)(PageRuntimeContext).info;
|
|
17
18
|
exports.useClientPageInfo = useClientPageInfo;
|
|
19
|
+
const useClientPageLiterals = () => (0, react_1.useContext)(PageRuntimeContext).literals;
|
|
20
|
+
exports.useClientPageLiterals = useClientPageLiterals;
|
|
18
21
|
//# sourceMappingURL=PageInfoClientProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageInfoClientProvider.js","sourceRoot":"","sources":["../../src/PageInfoClientProvider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;
|
|
1
|
+
{"version":3,"file":"PageInfoClientProvider.js","sourceRoot":"","sources":["../../src/PageInfoClientProvider.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;AAgBZ,wDAmBC;;AAjCD,iCAA4E;AAE5E,mDAKwB;AAExB,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAGrC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAA;AAE5C,SAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,QAAQ,EACR,QAAQ,GAKT;IACC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAA,kCAAkB,EAAC,KAAK,CAAC,CAAA;QACzB,IAAA,sCAAsB,EAAC,QAAQ,CAAC,CAAA;IAClC,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAErB,OAAO,CACL,uBAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,YAC1D,QAAQ,GACmB,CAC/B,CAAA;AACH,CAAC;AAEM,MAAM,iBAAiB,GAAG,GAAa,EAAE,CAAC,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAC,IAAI,CAAA;AAAvE,QAAA,iBAAiB,qBAAsD;AAC7E,MAAM,qBAAqB,GAAG,GAAiB,EAAE,CACtD,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAA;AAD5B,QAAA,qBAAqB,yBACO"}
|
|
@@ -4,11 +4,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.PageInfoClientSync = PageInfoClientSync;
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
function PageInfoClientSync(props) {
|
|
7
|
-
const { value } = props;
|
|
7
|
+
const { value, literals } = props;
|
|
8
8
|
(0, react_1.useEffect)(() => {
|
|
9
9
|
;
|
|
10
10
|
window.__CMS_PAGE_INFO__ = value;
|
|
11
|
-
|
|
11
|
+
window.__CMS_PAGE_LITERALS__ = literals;
|
|
12
|
+
}, [value, literals]);
|
|
12
13
|
return null;
|
|
13
14
|
}
|
|
14
15
|
//# sourceMappingURL=PageInfoClientSync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageInfoClientSync.js","sourceRoot":"","sources":["../../src/PageInfoClientSync.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;
|
|
1
|
+
{"version":3,"file":"PageInfoClientSync.js","sourceRoot":"","sources":["../../src/PageInfoClientSync.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAA;;AASZ,gDAYC;AAnBD,iCAAiC;AAOjC,SAAgB,kBAAkB,CAAC,KAGlC;IACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAEjC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,CAAC;QAAC,MAAwB,CAAC,iBAAiB,GAAG,KAAK,CACnD;QAAC,MAAwB,CAAC,qBAAqB,GAAG,QAAQ,CAAA;IAC7D,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAA;IAErB,OAAO,IAAI,CAAA;AACb,CAAC"}
|
|
@@ -14,12 +14,16 @@ const pageInfoScriptEscapes = {
|
|
|
14
14
|
};
|
|
15
15
|
const serializePageInfo = (value) => JSON.stringify(value ?? null).replace(/[<>&\u2028\u2029]/g, (char) => pageInfoScriptEscapes[char] ?? char);
|
|
16
16
|
function PageInfoProvider(props) {
|
|
17
|
-
const { value, children } = props;
|
|
17
|
+
const { value, literals, children } = props;
|
|
18
18
|
const serializedValue = serializePageInfo(value);
|
|
19
|
+
const serializedLiterals = serializePageInfo(literals);
|
|
19
20
|
(0, pageInfoStore_1.setCurrentPageInfo)(value);
|
|
21
|
+
(0, pageInfoStore_1.setCurrentPageLiterals)(literals);
|
|
20
22
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("template", { "data-rakun-page-info": "", dangerouslySetInnerHTML: {
|
|
21
23
|
__html: serializedValue,
|
|
22
|
-
} }), (0, jsx_runtime_1.jsx)(
|
|
24
|
+
} }), (0, jsx_runtime_1.jsx)("template", { "data-rakun-page-literals": "", dangerouslySetInnerHTML: {
|
|
25
|
+
__html: serializedLiterals,
|
|
26
|
+
} }), (0, jsx_runtime_1.jsx)(PageInfoClientProvider_1.PageInfoClientProvider, { value: value, literals: literals, children: children })] }));
|
|
23
27
|
}
|
|
24
28
|
const usePageInfo = () => (0, pageInfoStore_1.getCurrentPageInfo)();
|
|
25
29
|
exports.usePageInfo = usePageInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageInfoProvider.js","sourceRoot":"","sources":["../../src/PageInfoProvider.tsx"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"PageInfoProvider.js","sourceRoot":"","sources":["../../src/PageInfoProvider.tsx"],"names":[],"mappings":";;;AAuBA,4CA8BC;;AAnDD,qEAAiE;AACjE,mDAIwB;AAExB,MAAM,qBAAqB,GAA2B;IACpD,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;CACpB,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,KAA+B,EAAE,EAAE,CAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,CACnC,oBAAoB,EACpB,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAC9C,CAAA;AAEH,SAAgB,gBAAgB,CAAC,KAIhC;IACC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAA;IAC3C,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAChD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IACtD,IAAA,kCAAkB,EAAC,KAAK,CAAC,CAAA;IACzB,IAAA,sCAAsB,EAAC,QAAQ,CAAC,CAAA;IAEhC,OAAO,CACL,6DACE,6DACuB,EAAE,EACvB,uBAAuB,EAAE;oBACvB,MAAM,EAAE,eAAe;iBACxB,GACD,EACF,iEAC2B,EAAE,EAC3B,uBAAuB,EAAE;oBACvB,MAAM,EAAE,kBAAkB;iBAC3B,GACD,EACF,uBAAC,+CAAsB,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,YACrD,QAAQ,GACc,IACxB,CACJ,CAAA;AACH,CAAC;AAEM,MAAM,WAAW,GAAG,GAAwC,EAAE,CACnE,IAAA,kCAAkB,GAAE,CAAA;AADT,QAAA,WAAW,eACF"}
|