@rakun-kit/react 1.5.2 → 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 +41 -34
- package/dist/cjs/Image.js +35 -34
- 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 +43 -10
- package/dist/esm/Image.d.ts +2 -2
- package/dist/esm/Image.d.ts.map +1 -1
- package/dist/esm/Image.js +32 -31
- 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
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeJsonLd = exports.buildStructuredData = void 0;
|
|
4
|
+
exports.StructuredData = StructuredData;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const getImageUrl = (value) => {
|
|
7
|
+
if (!value || typeof value !== 'object' || !('url' in value))
|
|
8
|
+
return undefined;
|
|
9
|
+
return typeof value.url === 'string' && value.url ? value.url : undefined;
|
|
10
|
+
};
|
|
11
|
+
const getDateValue = (value) => {
|
|
12
|
+
if (!value)
|
|
13
|
+
return undefined;
|
|
14
|
+
if (value instanceof Date)
|
|
15
|
+
return Number.isNaN(value.getTime()) ? undefined : value.toISOString();
|
|
16
|
+
const date = new Date(value);
|
|
17
|
+
return Number.isNaN(date.getTime()) ? value : date.toISOString();
|
|
18
|
+
};
|
|
19
|
+
const compactJsonLd = (value) => {
|
|
20
|
+
if (value === undefined || value === null || value === '')
|
|
21
|
+
return undefined;
|
|
22
|
+
if (Array.isArray(value)) {
|
|
23
|
+
const items = value.map(compactJsonLd).filter((item) => item !== undefined);
|
|
24
|
+
return items.length ? items : undefined;
|
|
25
|
+
}
|
|
26
|
+
if (typeof value === 'object') {
|
|
27
|
+
const entries = Object.entries(value).flatMap(([key, item]) => {
|
|
28
|
+
const compacted = compactJsonLd(item);
|
|
29
|
+
return compacted === undefined ? [] : [[key, compacted]];
|
|
30
|
+
});
|
|
31
|
+
return entries.length ? Object.fromEntries(entries) : undefined;
|
|
32
|
+
}
|
|
33
|
+
return value;
|
|
34
|
+
};
|
|
35
|
+
const schemaUrl = (value) => value ? `https://schema.org/${value}` : undefined;
|
|
36
|
+
const buildStructuredData = (props) => {
|
|
37
|
+
const common = {
|
|
38
|
+
'@context': 'https://schema.org',
|
|
39
|
+
'@type': props.schemaType,
|
|
40
|
+
name: props.name,
|
|
41
|
+
description: props.description,
|
|
42
|
+
url: props.url,
|
|
43
|
+
image: getImageUrl(props.image),
|
|
44
|
+
};
|
|
45
|
+
switch (props.schemaType) {
|
|
46
|
+
case 'Product':
|
|
47
|
+
return compactJsonLd({
|
|
48
|
+
...common,
|
|
49
|
+
sku: props.sku,
|
|
50
|
+
brand: props.brand ? { '@type': 'Brand', name: props.brand } : undefined,
|
|
51
|
+
offers: props.price !== undefined ||
|
|
52
|
+
props.priceCurrency ||
|
|
53
|
+
props.availability ||
|
|
54
|
+
props.itemCondition
|
|
55
|
+
? {
|
|
56
|
+
'@type': 'Offer',
|
|
57
|
+
url: props.url,
|
|
58
|
+
price: props.price,
|
|
59
|
+
priceCurrency: props.priceCurrency,
|
|
60
|
+
availability: schemaUrl(props.availability),
|
|
61
|
+
itemCondition: schemaUrl(props.itemCondition),
|
|
62
|
+
}
|
|
63
|
+
: undefined,
|
|
64
|
+
aggregateRating: props.ratingValue !== undefined || props.reviewCount !== undefined
|
|
65
|
+
? {
|
|
66
|
+
'@type': 'AggregateRating',
|
|
67
|
+
ratingValue: props.ratingValue,
|
|
68
|
+
reviewCount: props.reviewCount,
|
|
69
|
+
}
|
|
70
|
+
: undefined,
|
|
71
|
+
});
|
|
72
|
+
case 'Article':
|
|
73
|
+
return compactJsonLd({
|
|
74
|
+
...common,
|
|
75
|
+
headline: props.name,
|
|
76
|
+
author: props.authorName
|
|
77
|
+
? { '@type': 'Person', name: props.authorName }
|
|
78
|
+
: undefined,
|
|
79
|
+
publisher: props.publisherName
|
|
80
|
+
? { '@type': 'Organization', name: props.publisherName }
|
|
81
|
+
: undefined,
|
|
82
|
+
datePublished: getDateValue(props.datePublished),
|
|
83
|
+
dateModified: getDateValue(props.dateModified),
|
|
84
|
+
});
|
|
85
|
+
case 'Organization':
|
|
86
|
+
return compactJsonLd({
|
|
87
|
+
...common,
|
|
88
|
+
logo: getImageUrl(props.logo),
|
|
89
|
+
});
|
|
90
|
+
case 'WebSite':
|
|
91
|
+
return compactJsonLd(common);
|
|
92
|
+
case 'BreadcrumbList':
|
|
93
|
+
return compactJsonLd({
|
|
94
|
+
'@context': 'https://schema.org',
|
|
95
|
+
'@type': 'BreadcrumbList',
|
|
96
|
+
itemListElement: props.breadcrumbs?.map((item, index) => ({
|
|
97
|
+
'@type': 'ListItem',
|
|
98
|
+
position: index + 1,
|
|
99
|
+
name: item.title,
|
|
100
|
+
item: item.href,
|
|
101
|
+
})),
|
|
102
|
+
});
|
|
103
|
+
case 'Custom':
|
|
104
|
+
if (!props.customJson?.trim())
|
|
105
|
+
return undefined;
|
|
106
|
+
try {
|
|
107
|
+
return JSON.parse(props.customJson);
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
default:
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
exports.buildStructuredData = buildStructuredData;
|
|
117
|
+
const serializeJsonLd = (value) => JSON.stringify(value)
|
|
118
|
+
.replace(/</g, '\\u003c')
|
|
119
|
+
.replace(/\u2028/g, '\\u2028')
|
|
120
|
+
.replace(/\u2029/g, '\\u2029');
|
|
121
|
+
exports.serializeJsonLd = serializeJsonLd;
|
|
122
|
+
const serializeInvalidJsonLd = (value) => value.replace(/</g, '\\u003c').replace(/\u2028/g, '\\u2028').replace(/\u2029/g, '\\u2029');
|
|
123
|
+
function StructuredData(props) {
|
|
124
|
+
const data = (0, exports.buildStructuredData)(props);
|
|
125
|
+
const invalidCustomJson = props.schemaType === 'Custom' && props.customJson?.trim() && data === undefined
|
|
126
|
+
? props.customJson
|
|
127
|
+
: undefined;
|
|
128
|
+
if (invalidCustomJson) {
|
|
129
|
+
return ((0, jsx_runtime_1.jsx)("script", { "data-rakun-json-ld-invalid": "", type: "application/ld+json", dangerouslySetInnerHTML: { __html: serializeInvalidJsonLd(invalidCustomJson) } }));
|
|
130
|
+
}
|
|
131
|
+
if (data === undefined)
|
|
132
|
+
return null;
|
|
133
|
+
return ((0, jsx_runtime_1.jsx)("script", { "data-rakun-json-ld": "", type: "application/ld+json", dangerouslySetInnerHTML: { __html: (0, exports.serializeJsonLd)(data) } }));
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=StructuredData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StructuredData.js","sourceRoot":"","sources":["../../src/StructuredData.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Video = void 0;
|
|
4
|
+
exports.RakunVideo = RakunVideo;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
const mediaUrl_1 = require("./mediaUrl.js");
|
|
7
|
+
const sourcePriority = (source) => {
|
|
8
|
+
const type = source.type?.toLowerCase();
|
|
9
|
+
if (type === 'video/webm')
|
|
10
|
+
return 0;
|
|
11
|
+
if (type === 'video/mp4')
|
|
12
|
+
return 1;
|
|
13
|
+
return 2;
|
|
14
|
+
};
|
|
15
|
+
const resolveVideoSources = ({ video, src, type, sources, fallbackSrc, mediaBaseUrl, mediaPublicPath, }) => {
|
|
16
|
+
const candidates = [
|
|
17
|
+
...(sources ?? video?.sources ?? []),
|
|
18
|
+
...(src
|
|
19
|
+
? [{ url: src, mime: type ?? video?.mime }]
|
|
20
|
+
: video?.url || video?.key
|
|
21
|
+
? [{ key: video.key, url: video.url, mime: video.mime }]
|
|
22
|
+
: []),
|
|
23
|
+
...(fallbackSrc ? [{ url: fallbackSrc }] : []),
|
|
24
|
+
];
|
|
25
|
+
const resolved = candidates.flatMap((source, index) => {
|
|
26
|
+
const sourceUrl = source.url ||
|
|
27
|
+
(0, mediaUrl_1.resolvePublicMediaUrl)({
|
|
28
|
+
key: source.key,
|
|
29
|
+
access: video?.access,
|
|
30
|
+
mediaBaseUrl,
|
|
31
|
+
mediaPublicPath: mediaPublicPath ?? '/media/public',
|
|
32
|
+
});
|
|
33
|
+
if (!sourceUrl)
|
|
34
|
+
return [];
|
|
35
|
+
return [
|
|
36
|
+
{
|
|
37
|
+
src: sourceUrl,
|
|
38
|
+
type: source.mime || undefined,
|
|
39
|
+
index,
|
|
40
|
+
},
|
|
41
|
+
];
|
|
42
|
+
});
|
|
43
|
+
return resolved
|
|
44
|
+
.filter((source, index, all) => all.findIndex((candidate) => candidate.src === source.src) === index)
|
|
45
|
+
.sort((a, b) => sourcePriority(a) - sourcePriority(b) || a.index - b.index)
|
|
46
|
+
.map(({ src: sourceSrc, type: sourceType }) => ({
|
|
47
|
+
src: sourceSrc,
|
|
48
|
+
type: sourceType,
|
|
49
|
+
}));
|
|
50
|
+
};
|
|
51
|
+
function RakunVideo({ video, src, type, sources, fallbackSrc, title, width, height, mediaBaseUrl, mediaPublicPath = '/media/public', children, ...videoProps }) {
|
|
52
|
+
const resolvedSources = resolveVideoSources({
|
|
53
|
+
video,
|
|
54
|
+
src,
|
|
55
|
+
type,
|
|
56
|
+
sources,
|
|
57
|
+
fallbackSrc,
|
|
58
|
+
mediaBaseUrl,
|
|
59
|
+
mediaPublicPath,
|
|
60
|
+
});
|
|
61
|
+
return ((0, jsx_runtime_1.jsxs)("video", { ...videoProps, title: title ?? video?.title ?? video?.name ?? undefined, width: width ?? video?.width ?? undefined, height: height ?? video?.height ?? undefined, children: [resolvedSources.map((source) => ((0, jsx_runtime_1.jsx)("source", { src: source.src, type: source.type }, `${source.type ?? ''}:${source.src}`))), children] }));
|
|
62
|
+
}
|
|
63
|
+
exports.Video = RakunVideo;
|
|
64
|
+
//# sourceMappingURL=Video.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Video.js","sourceRoot":"","sources":["../../src/Video.tsx"],"names":[],"mappings":";;;AAyGA,gCAqCC;;AA5ID,yCAAkD;AAyClD,MAAM,cAAc,GAAG,CAAC,MAA2B,EAAU,EAAE;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAA;IAEvC,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,CAAC,CAAA;IACnC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,CAAC,CAAA;IAClC,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,CAAC,EAC3B,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,eAAe,GAIhB,EAAyB,EAAE;IAC1B,MAAM,UAAU,GAAuB;QACrC,GAAG,CAAC,OAAO,IAAI,KAAK,EAAE,OAAO,IAAI,EAAE,CAAC;QACpC,GAAG,CAAC,GAAG;YACL,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC;YAC3C,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG;gBACxB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxD,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAC/C,CAAA;IAED,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACpD,MAAM,SAAS,GACb,MAAM,CAAC,GAAG;YACV,IAAA,gCAAqB,EAAC;gBACpB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,KAAK,EAAE,MAAM;gBACrB,YAAY;gBACZ,eAAe,EAAE,eAAe,IAAI,eAAe;aACpD,CAAC,CAAA;QAEJ,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,CAAA;QAEzB,OAAO;YACL;gBACE,GAAG,EAAE,SAAS;gBACd,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;gBAC9B,KAAK;aACN;SACF,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,QAAQ;SACZ,MAAM,CACL,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAC7F;SACA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SAC1E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,GAAG,EAAE,SAAS;QACd,IAAI,EAAE,UAAU;KACjB,CAAC,CAAC,CAAA;AACP,CAAC,CAAA;AAED,SAAgB,UAAU,CAAC,EACzB,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,WAAW,EACX,KAAK,EACL,KAAK,EACL,MAAM,EACN,YAAY,EACZ,eAAe,GAAG,eAAe,EACjC,QAAQ,EACR,GAAG,UAAU,EACG;IAChB,MAAM,eAAe,GAAG,mBAAmB,CAAC;QAC1C,KAAK;QACL,GAAG;QACH,IAAI;QACJ,OAAO;QACP,WAAW;QACX,YAAY;QACZ,eAAe;KAChB,CAAC,CAAA;IAEF,OAAO,CACL,sCACM,UAAU,EACd,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,IAAI,IAAI,SAAS,EACxD,KAAK,EAAE,KAAK,IAAI,KAAK,EAAE,KAAK,IAAI,SAAS,EACzC,MAAM,EAAE,MAAM,IAAI,KAAK,EAAE,MAAM,IAAI,SAAS,aAE3C,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B,mCAAmD,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAxE,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,IAAI,MAAM,CAAC,GAAG,EAAE,CAAwC,CAC1F,CAAC,EACD,QAAQ,IACH,CACT,CAAA;AACH,CAAC;AAEY,QAAA,KAAK,GAAG,UAAU,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getRakunBuiltinModuleComponent = void 0;
|
|
4
|
+
const StructuredData_1 = require("./StructuredData.js");
|
|
5
|
+
const getRakunBuiltinModuleComponent = (name) => (name === 'StructuredData' ? StructuredData_1.StructuredData : null);
|
|
6
|
+
exports.getRakunBuiltinModuleComponent = getRakunBuiltinModuleComponent;
|
|
7
|
+
//# sourceMappingURL=builtin-modules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin-modules.js","sourceRoot":"","sources":["../../src/builtin-modules.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AAE1C,MAAM,8BAA8B,GAAG,CAC5C,IAAY,EACiB,EAAE,CAAC,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC,CAAC,+BAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAFxE,QAAA,8BAA8B,kCAE0C"}
|
package/dist/cjs/format.js
CHANGED
|
@@ -47,10 +47,10 @@ const getLocaleFromInfo = (info) => {
|
|
|
47
47
|
return typeof locale === 'string' && locale ? locale : 'en';
|
|
48
48
|
};
|
|
49
49
|
exports.getLocaleFromInfo = getLocaleFromInfo;
|
|
50
|
-
function tFromInfo({ info, key, values, }) {
|
|
51
|
-
const
|
|
50
|
+
function tFromInfo({ info, literals, key, values, }) {
|
|
51
|
+
const resolvedLiterals = literals ?? (0, exports.getLiteralsFromInfo)(info);
|
|
52
52
|
const locale = (0, exports.getLocaleFromInfo)(info);
|
|
53
|
-
const message =
|
|
53
|
+
const message = resolvedLiterals[key] || (0, literals_1.getLiteralDefinition)(key)?.defaultMessage || String(key);
|
|
54
54
|
return formatIcuLike({
|
|
55
55
|
message,
|
|
56
56
|
locale,
|
package/dist/cjs/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -16,10 +16,15 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./ErrorBoundary.js"), exports);
|
|
18
18
|
__exportStar(require("./Image.js"), exports);
|
|
19
|
+
__exportStar(require("./JsonViewer.js"), exports);
|
|
19
20
|
__exportStar(require("./LazyViewport.js"), exports);
|
|
20
21
|
__exportStar(require("./ModuleRenderer.js"), exports);
|
|
22
|
+
__exportStar(require("./RakunLogo.js"), exports);
|
|
21
23
|
__exportStar(require("./ServerModuleRenderer.js"), exports);
|
|
22
24
|
__exportStar(require("./registry.js"), exports);
|
|
23
25
|
__exportStar(require("./translation.js"), exports);
|
|
24
26
|
__exportStar(require("./plugins.js"), exports);
|
|
27
|
+
__exportStar(require("./StructuredData.js"), exports);
|
|
28
|
+
__exportStar(require("./builtin-modules.js"), exports);
|
|
29
|
+
__exportStar(require("./Video.js"), exports);
|
|
25
30
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAA+B;AAC/B,0CAAuB;AACvB,+CAA4B;AAC5B,iDAA8B;AAC9B,mDAAgC;AAChC,8CAA2B;AAC3B,yDAAsC;AACtC,6CAA0B;AAC1B,gDAA6B;AAC7B,4CAAyB;AACzB,mDAAgC;AAChC,oDAAiC;AACjC,0CAAuB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePublicMediaUrl = void 0;
|
|
4
|
+
const encodeMediaPath = (value) => value
|
|
5
|
+
.split('/')
|
|
6
|
+
.filter(Boolean)
|
|
7
|
+
.map((part) => encodeURIComponent(part))
|
|
8
|
+
.join('/');
|
|
9
|
+
const joinUrlPath = (baseUrl, pathname) => {
|
|
10
|
+
const normalizedPath = pathname.startsWith('/') ? pathname : `/${pathname}`;
|
|
11
|
+
if (!baseUrl)
|
|
12
|
+
return normalizedPath;
|
|
13
|
+
return `${baseUrl.replace(/\/$/, '')}${normalizedPath}`;
|
|
14
|
+
};
|
|
15
|
+
const resolvePublicMediaUrl = ({ key, access, mediaBaseUrl, mediaPublicPath, }) => {
|
|
16
|
+
if (!key || access === 'private')
|
|
17
|
+
return undefined;
|
|
18
|
+
const publicKey = key.startsWith('public/') ? key.slice('public/'.length) : key;
|
|
19
|
+
const encodedKey = encodeMediaPath(publicKey);
|
|
20
|
+
if (!encodedKey)
|
|
21
|
+
return undefined;
|
|
22
|
+
return joinUrlPath(mediaBaseUrl, `${mediaPublicPath}/${encodedKey}`);
|
|
23
|
+
};
|
|
24
|
+
exports.resolvePublicMediaUrl = resolvePublicMediaUrl;
|
|
25
|
+
//# sourceMappingURL=mediaUrl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaUrl.js","sourceRoot":"","sources":["../../src/mediaUrl.ts"],"names":[],"mappings":";;;AAAA,MAAM,eAAe,GAAG,CAAC,KAAa,EAAU,EAAE,CAChD,KAAK;KACF,KAAK,CAAC,GAAG,CAAC;KACV,MAAM,CAAC,OAAO,CAAC;KACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;KACvC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEd,MAAM,WAAW,GAAG,CAAC,OAAkC,EAAE,QAAgB,EAAE,EAAE;IAC3E,MAAM,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAA;IAE3E,IAAI,CAAC,OAAO;QAAE,OAAO,cAAc,CAAA;IAEnC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,cAAc,EAAE,CAAA;AACzD,CAAC,CAAA;AAEM,MAAM,qBAAqB,GAAG,CAAC,EACpC,GAAG,EACH,MAAM,EACN,YAAY,EACZ,eAAe,GAMhB,EAAsB,EAAE;IACvB,IAAI,CAAC,GAAG,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAElD,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAC/E,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,CAAA;IAE7C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAA;IAEjC,OAAO,WAAW,CAAC,YAAY,EAAE,GAAG,eAAe,IAAI,UAAU,EAAE,CAAC,CAAA;AACtE,CAAC,CAAA;AAnBY,QAAA,qBAAqB,yBAmBjC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getCurrentPageInfo = exports.setCurrentPageInfo = exports.runWithPageInfo = void 0;
|
|
4
|
-
let
|
|
3
|
+
exports.getCurrentPageLiterals = exports.getCurrentPageInfo = exports.setCurrentPageLiterals = exports.setCurrentPageInfo = exports.runWithPageInfo = void 0;
|
|
4
|
+
let currentServerPageContext;
|
|
5
5
|
let asyncLocalStore;
|
|
6
6
|
const pageInfoTemplateSelector = 'template[data-rakun-page-info]';
|
|
7
|
+
const pageLiteralsTemplateSelector = 'template[data-rakun-page-literals]';
|
|
7
8
|
const getNodeRequire = () => {
|
|
8
9
|
try {
|
|
9
10
|
return Function('return typeof require === "function" ? require : null')();
|
|
@@ -45,21 +46,21 @@ const getAsyncLocalStore = () => {
|
|
|
45
46
|
: null;
|
|
46
47
|
return asyncLocalStore;
|
|
47
48
|
};
|
|
48
|
-
const runWithFallbackPageInfo = (info, fn) => {
|
|
49
|
-
const previous =
|
|
50
|
-
|
|
49
|
+
const runWithFallbackPageInfo = (info, fn, literals) => {
|
|
50
|
+
const previous = currentServerPageContext;
|
|
51
|
+
currentServerPageContext = { info, literals };
|
|
51
52
|
try {
|
|
52
53
|
const result = fn();
|
|
53
54
|
if (isPromiseLike(result)) {
|
|
54
55
|
return Promise.resolve(result).finally(() => {
|
|
55
|
-
|
|
56
|
+
currentServerPageContext = previous;
|
|
56
57
|
});
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
+
currentServerPageContext = previous;
|
|
59
60
|
return result;
|
|
60
61
|
}
|
|
61
62
|
catch (error) {
|
|
62
|
-
|
|
63
|
+
currentServerPageContext = previous;
|
|
63
64
|
throw error;
|
|
64
65
|
}
|
|
65
66
|
};
|
|
@@ -80,17 +81,35 @@ const getTemplatePageInfo = () => {
|
|
|
80
81
|
return undefined;
|
|
81
82
|
}
|
|
82
83
|
};
|
|
83
|
-
const
|
|
84
|
+
const getTemplatePageLiterals = () => {
|
|
85
|
+
if (typeof document === 'undefined')
|
|
86
|
+
return undefined;
|
|
87
|
+
const template = document.querySelector(pageLiteralsTemplateSelector);
|
|
88
|
+
const raw = template?.content.textContent ?? template?.innerHTML ?? template?.textContent;
|
|
89
|
+
if (!raw)
|
|
90
|
+
return undefined;
|
|
91
|
+
try {
|
|
92
|
+
const parsed = JSON.parse(raw);
|
|
93
|
+
if (!parsed || typeof parsed !== 'object')
|
|
94
|
+
return undefined;
|
|
95
|
+
return Object.fromEntries(Object.entries(parsed).filter(([, value]) => typeof value === 'string'));
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
return undefined;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
const runWithPageInfo = (info, fn, literals) => {
|
|
84
102
|
if (typeof window !== 'undefined') {
|
|
85
103
|
const browserWindow = window;
|
|
86
104
|
browserWindow.__CMS_PAGE_INFO__ = info;
|
|
105
|
+
browserWindow.__CMS_PAGE_LITERALS__ = literals;
|
|
87
106
|
return fn();
|
|
88
107
|
}
|
|
89
108
|
const store = getAsyncLocalStore();
|
|
90
109
|
if (store) {
|
|
91
|
-
return store.run(info, fn);
|
|
110
|
+
return store.run({ info, literals }, fn);
|
|
92
111
|
}
|
|
93
|
-
return runWithFallbackPageInfo(info, fn);
|
|
112
|
+
return runWithFallbackPageInfo(info, fn, literals);
|
|
94
113
|
};
|
|
95
114
|
exports.runWithPageInfo = runWithPageInfo;
|
|
96
115
|
const setCurrentPageInfo = (info) => {
|
|
@@ -99,16 +118,41 @@ const setCurrentPageInfo = (info) => {
|
|
|
99
118
|
window.__CMS_PAGE_INFO__ = info;
|
|
100
119
|
return;
|
|
101
120
|
}
|
|
102
|
-
|
|
121
|
+
currentServerPageContext = {
|
|
122
|
+
info,
|
|
123
|
+
literals: currentServerPageContext?.literals,
|
|
124
|
+
};
|
|
103
125
|
};
|
|
104
126
|
exports.setCurrentPageInfo = setCurrentPageInfo;
|
|
127
|
+
const setCurrentPageLiterals = (literals) => {
|
|
128
|
+
if (typeof window !== 'undefined') {
|
|
129
|
+
;
|
|
130
|
+
window.__CMS_PAGE_LITERALS__ = literals;
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
currentServerPageContext = {
|
|
134
|
+
info: currentServerPageContext?.info,
|
|
135
|
+
literals,
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
exports.setCurrentPageLiterals = setCurrentPageLiterals;
|
|
105
139
|
const getCurrentPageInfo = () => {
|
|
106
140
|
if (typeof window !== 'undefined') {
|
|
107
141
|
return (window.__CMS_PAGE_INFO__ ??
|
|
108
142
|
getTemplatePageInfo() ??
|
|
109
|
-
|
|
143
|
+
currentServerPageContext?.info);
|
|
110
144
|
}
|
|
111
|
-
return getAsyncLocalStore()?.getStore() ??
|
|
145
|
+
return getAsyncLocalStore()?.getStore()?.info ?? currentServerPageContext?.info;
|
|
112
146
|
};
|
|
113
147
|
exports.getCurrentPageInfo = getCurrentPageInfo;
|
|
148
|
+
const getCurrentPageLiterals = () => {
|
|
149
|
+
if (typeof window !== 'undefined') {
|
|
150
|
+
return (window.__CMS_PAGE_LITERALS__ ??
|
|
151
|
+
getTemplatePageLiterals() ??
|
|
152
|
+
currentServerPageContext?.literals);
|
|
153
|
+
}
|
|
154
|
+
return (getAsyncLocalStore()?.getStore()?.literals ??
|
|
155
|
+
currentServerPageContext?.literals);
|
|
156
|
+
};
|
|
157
|
+
exports.getCurrentPageLiterals = getCurrentPageLiterals;
|
|
114
158
|
//# sourceMappingURL=pageInfoStore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageInfoStore.js","sourceRoot":"","sources":["../../src/pageInfoStore.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"pageInfoStore.js","sourceRoot":"","sources":["../../src/pageInfoStore.ts"],"names":[],"mappings":";;;AAmBA,IAAI,wBAAwD,CAAA;AAC5D,IAAI,eAAyE,CAAA;AAC7E,MAAM,wBAAwB,GAAG,gCAAgC,CAAA;AACjE,MAAM,4BAA4B,GAAG,oCAAoC,CAAA;AAazE,MAAM,cAAc,GAAG,GAAuB,EAAE;IAC9C,IAAI,CAAC;QACH,OAAO,QAAQ,CACb,uDAAuD,CACxD,EAAwB,CAAA;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,CAAI,KAAc,EAA2B,EAAE,CACnE,CAAC,CAAC,KAAK;IACP,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC;IAC1D,OAAQ,KAAwB,CAAC,IAAI,KAAK,UAAU,CAAA;AAEtD,MAAM,mBAAmB,GAAG,GAA4B,EAAE;IACxD,MAAM,aAAa,GAAI,UAAgC,CAAC,OAAO,EAAE,gBAAgB,EAAE,CACjF,kBAAkB,CACa,CAAA;IAEjC,IAAI,aAAa,EAAE,iBAAiB,EAAE,CAAC;QACrC,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAA;IAEpC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,WAAW,CAAC,kBAAkB,CAAqB,CAAA;QAC1E,OAAO,cAAc,EAAE,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,GAAiD,EAAE;IAC5E,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,eAAe,CAAA;IACzD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,eAAe,GAAG,IAAI,CAAA;QACtB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAA;IAC9C,eAAe,GAAG,gBAAgB;QAChC,CAAC,CAAC,IAAI,gBAAgB,CAAC,iBAAiB,EAAsB;QAC9D,CAAC,CAAC,IAAI,CAAA;IAER,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,CAC9B,IAAc,EACd,EAAW,EACX,QAAsB,EACnB,EAAE;IACL,MAAM,QAAQ,GAAG,wBAAwB,CAAA;IACzC,wBAAwB,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAE7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,EAAE,EAAE,CAAA;QAEnB,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBAC1C,wBAAwB,GAAG,QAAQ,CAAA;YACrC,CAAC,CAAM,CAAA;QACT,CAAC;QAED,wBAAwB,GAAG,QAAQ,CAAA;QACnC,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wBAAwB,GAAG,QAAQ,CAAA;QACnC,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,mBAAmB,GAAG,GAAa,EAAE;IACzC,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IAErD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CACrC,wBAAwB,CACzB,CAAA;IACD,MAAM,GAAG,GACP,QAAQ,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,WAAW,CAAA;IAE/E,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAA;QAEzC,OAAO,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YACzC,CAAC,CAAE,MAAkC;YACrC,CAAC,CAAC,SAAS,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED,MAAM,uBAAuB,GAAG,GAAiB,EAAE;IACjD,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,SAAS,CAAA;IAErD,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CACrC,4BAA4B,CAC7B,CAAA;IACD,MAAM,GAAG,GACP,QAAQ,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ,EAAE,SAAS,IAAI,QAAQ,EAAE,WAAW,CAAA;IAE/E,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAA;IAE1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAA;QAEzC,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAA;QAE3D,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAiC,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CACzC,CACwB,CAAA;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAEM,MAAM,eAAe,GAAG,CAC7B,IAAc,EACd,EAAW,EACX,QAAuB,EACpB,EAAE;IACL,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAuB,CAAA;QAC7C,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAA;QACtC,aAAa,CAAC,qBAAqB,GAAG,QAAQ,CAAA;QAC9C,OAAO,EAAE,EAAE,CAAA;IACb,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAA;IAElC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,OAAO,uBAAuB,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAA;AACpD,CAAC,CAAA;AAnBY,QAAA,eAAe,mBAmB3B;AAEM,MAAM,kBAAkB,GAAG,CAAC,IAAc,EAAQ,EAAE;IACzD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,CAAC;QAAC,MAAwB,CAAC,iBAAiB,GAAG,IAAI,CAAA;QACnD,OAAM;IACR,CAAC;IAED,wBAAwB,GAAG;QACzB,IAAI;QACJ,QAAQ,EAAE,wBAAwB,EAAE,QAAQ;KAC7C,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,kBAAkB,sBAU9B;AAEM,MAAM,sBAAsB,GAAG,CAAC,QAAsB,EAAQ,EAAE;IACrE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,CAAC;QAAC,MAAwB,CAAC,qBAAqB,GAAG,QAAQ,CAAA;QAC3D,OAAM;IACR,CAAC;IAED,wBAAwB,GAAG;QACzB,IAAI,EAAE,wBAAwB,EAAE,IAAI;QACpC,QAAQ;KACT,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,sBAAsB,0BAUlC;AAEM,MAAM,kBAAkB,GAAG,GAAa,EAAE;IAC/C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,CACJ,MAAwB,CAAC,iBAAiB;YAC3C,mBAAmB,EAAE;YACrB,wBAAwB,EAAE,IAAI,CAC/B,CAAA;IACH,CAAC;IAED,OAAO,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,IAAI,wBAAwB,EAAE,IAAI,CAAA;AACjF,CAAC,CAAA;AAVY,QAAA,kBAAkB,sBAU9B;AAEM,MAAM,sBAAsB,GAAG,GAAiB,EAAE;IACvD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO,CACJ,MAAwB,CAAC,qBAAqB;YAC/C,uBAAuB,EAAE;YACzB,wBAAwB,EAAE,QAAQ,CACnC,CAAA;IACH,CAAC;IAED,OAAO,CACL,kBAAkB,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ;QAC1C,wBAAwB,EAAE,QAAQ,CACnC,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,sBAAsB,0BAalC"}
|
package/dist/cjs/translation.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.useT = exports.useClientT = exports.usePageInfo = exports.PageInfoProvider = exports.PageInfoClientSync = exports.runWithPageInfo = exports.getCurrentPageInfo = exports.tFromInfo = exports.getLiteralsFromInfo = exports.getLocaleFromInfo = void 0;
|
|
3
|
+
exports.useT = exports.useClientT = exports.usePageInfo = exports.PageInfoProvider = exports.PageInfoClientSync = exports.runWithPageInfo = exports.getCurrentPageLiterals = exports.getCurrentPageInfo = exports.tFromInfo = exports.getLiteralsFromInfo = exports.getLocaleFromInfo = void 0;
|
|
4
4
|
var format_1 = require("./format.js");
|
|
5
5
|
Object.defineProperty(exports, "getLocaleFromInfo", { enumerable: true, get: function () { return format_1.getLocaleFromInfo; } });
|
|
6
6
|
Object.defineProperty(exports, "getLiteralsFromInfo", { enumerable: true, get: function () { return format_1.getLiteralsFromInfo; } });
|
|
7
7
|
Object.defineProperty(exports, "tFromInfo", { enumerable: true, get: function () { return format_1.tFromInfo; } });
|
|
8
8
|
var pageInfoStore_1 = require("./pageInfoStore.js");
|
|
9
9
|
Object.defineProperty(exports, "getCurrentPageInfo", { enumerable: true, get: function () { return pageInfoStore_1.getCurrentPageInfo; } });
|
|
10
|
+
Object.defineProperty(exports, "getCurrentPageLiterals", { enumerable: true, get: function () { return pageInfoStore_1.getCurrentPageLiterals; } });
|
|
10
11
|
Object.defineProperty(exports, "runWithPageInfo", { enumerable: true, get: function () { return pageInfoStore_1.runWithPageInfo; } });
|
|
11
12
|
var PageInfoClientSync_1 = require("./PageInfoClientSync.js");
|
|
12
13
|
Object.defineProperty(exports, "PageInfoClientSync", { enumerable: true, get: function () { return PageInfoClientSync_1.PageInfoClientSync; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.js","sourceRoot":"","sources":["../../src/translation.ts"],"names":[],"mappings":";;;AAAA,mCAMiB;AALf,2GAAA,iBAAiB,OAAA;AACjB,6GAAA,mBAAmB,OAAA;AACnB,mGAAA,SAAS,OAAA;AAIX,
|
|
1
|
+
{"version":3,"file":"translation.js","sourceRoot":"","sources":["../../src/translation.ts"],"names":[],"mappings":";;;AAAA,mCAMiB;AALf,2GAAA,iBAAiB,OAAA;AACjB,6GAAA,mBAAmB,OAAA;AACnB,mGAAA,SAAS,OAAA;AAIX,iDAMwB;AALtB,mHAAA,kBAAkB,OAAA;AAClB,uHAAA,sBAAsB,OAAA;AACtB,gHAAA,eAAe,OAAA;AAIjB,2DAAyD;AAAhD,wHAAA,kBAAkB,OAAA;AAC3B,uDAAkE;AAAzD,oHAAA,gBAAgB,OAAA;AAAE,+GAAA,WAAW,OAAA;AACtC,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AACnB,+BAA6B;AAApB,4FAAA,IAAI,OAAA"}
|
package/dist/cjs/useClientT.js
CHANGED
|
@@ -6,8 +6,10 @@ const format_1 = require("./format.js");
|
|
|
6
6
|
const PageInfoClientProvider_1 = require("./PageInfoClientProvider.js");
|
|
7
7
|
const useClientT = () => {
|
|
8
8
|
const info = (0, PageInfoClientProvider_1.useClientPageInfo)();
|
|
9
|
+
const literals = (0, PageInfoClientProvider_1.useClientPageLiterals)();
|
|
9
10
|
return (input) => (0, format_1.tFromInfo)({
|
|
10
11
|
info,
|
|
12
|
+
literals,
|
|
11
13
|
...input,
|
|
12
14
|
});
|
|
13
15
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useClientT.js","sourceRoot":"","sources":["../../src/useClientT.ts"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;AAIZ,qCAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"useClientT.js","sourceRoot":"","sources":["../../src/useClientT.ts"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;AAIZ,qCAAwD;AACxD,qEAGiC;AAE1B,MAAM,UAAU,GAAG,GAAG,EAAE;IAC7B,MAAM,IAAI,GAAG,IAAA,0CAAiB,GAAE,CAAA;IAChC,MAAM,QAAQ,GAAG,IAAA,8CAAqB,GAAE,CAAA;IAExC,OAAO,CACL,KAAkD,EAClD,EAAE,CACF,IAAA,kBAAS,EAAC;QACR,IAAI;QACJ,QAAQ;QACR,GAAG,KAAK;KACT,CAAC,CAAA;AACN,CAAC,CAAA;AAZY,QAAA,UAAU,cAYtB"}
|
package/dist/cjs/useT.js
CHANGED
|
@@ -6,8 +6,10 @@ const pageInfoStore_1 = require("./pageInfoStore.js");
|
|
|
6
6
|
const useT = () => {
|
|
7
7
|
return (input) => {
|
|
8
8
|
const info = (0, pageInfoStore_1.getCurrentPageInfo)();
|
|
9
|
+
const literals = (0, pageInfoStore_1.getCurrentPageLiterals)();
|
|
9
10
|
return (0, format_1.tFromInfo)({
|
|
10
11
|
info,
|
|
12
|
+
literals,
|
|
11
13
|
...input,
|
|
12
14
|
});
|
|
13
15
|
};
|
package/dist/cjs/useT.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useT.js","sourceRoot":"","sources":["../../src/useT.ts"],"names":[],"mappings":";;;AAEA,qCAAwD;AACxD,
|
|
1
|
+
{"version":3,"file":"useT.js","sourceRoot":"","sources":["../../src/useT.ts"],"names":[],"mappings":";;;AAEA,qCAAwD;AACxD,mDAA4E;AAErE,MAAM,IAAI,GAAG,GAAG,EAAE;IACvB,OAAO,CACL,KAAkD,EAClD,EAAE;QACF,MAAM,IAAI,GAAG,IAAA,kCAAkB,GAAE,CAAA;QACjC,MAAM,QAAQ,GAAG,IAAA,sCAAsB,GAAE,CAAA;QAEzC,OAAO,IAAA,kBAAS,EAAC;YACf,IAAI;YACJ,QAAQ;YACR,GAAG,KAAK;SACT,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,IAAI,QAahB"}
|
package/dist/docs/index.md
CHANGED
|
@@ -26,6 +26,13 @@ export function Page({ modules }) {
|
|
|
26
26
|
Registry keys must match module `_type` values. A module file exports either a
|
|
27
27
|
default component or a named `component`.
|
|
28
28
|
|
|
29
|
+
The built-in `StructuredData` module is handled before the registry or loader.
|
|
30
|
+
It renders a safely escaped `application/ld+json` script for Rakun's typed
|
|
31
|
+
schema forms and needs no application component. An explicit registry entry
|
|
32
|
+
with the same name still takes precedence when an application intentionally
|
|
33
|
+
overrides it. `buildStructuredData`, `serializeJsonLd`, and the component are
|
|
34
|
+
also exported for direct use.
|
|
35
|
+
|
|
29
36
|
For Vite, `createModuleRegistryFromGlob(import.meta.glob(...))` maps file names
|
|
30
37
|
to module names. Pass `getName` for nested or nonstandard layouts. When using
|
|
31
38
|
the client `ModuleRenderer` with Next.js, define `(name) => import(...)` inside
|
|
@@ -47,12 +54,7 @@ export default async function SectionLayout({ blocks = [] }) {
|
|
|
47
54
|
_type: name,
|
|
48
55
|
}))
|
|
49
56
|
|
|
50
|
-
return (
|
|
51
|
-
<ServerModuleRenderer
|
|
52
|
-
modules={modules}
|
|
53
|
-
loadModule={(name) => import(`./${name}`)}
|
|
54
|
-
/>
|
|
55
|
-
)
|
|
57
|
+
return <ServerModuleRenderer modules={modules} loadModule={(name) => import(`./${name}`)} />
|
|
56
58
|
}
|
|
57
59
|
```
|
|
58
60
|
|
|
@@ -64,7 +66,14 @@ the client renderer. It also accepts `missing` and `getKey`. Use the client
|
|
|
64
66
|
|
|
65
67
|
Use `PageLayoutRenderer` for page responses with fixed layout slots. Its
|
|
66
68
|
`renderContent` callback wraps only the modules at the `{ type: 'content' }`
|
|
67
|
-
slot.
|
|
69
|
+
slot. Page responses carry modules only in their required `layout`; the
|
|
70
|
+
standalone `modules` prop remains available when rendering a module array that
|
|
71
|
+
did not come from the page endpoint.
|
|
72
|
+
|
|
73
|
+
When a complete page response is passed, its top-level `literals` property is
|
|
74
|
+
made available automatically to `useT`; it is not part of the public page
|
|
75
|
+
`info` object. Custom providers can pass it through the separate `literals`
|
|
76
|
+
prop on `PageInfoProvider`, or as the third argument to `runWithPageInfo`.
|
|
68
77
|
|
|
69
78
|
Web plugins are explicit browser/runtime facets:
|
|
70
79
|
|
|
@@ -95,8 +104,9 @@ server bootstrap separately.
|
|
|
95
104
|
`Image` / `RakunImage` builds a responsive `srcSet` from media `sizes` and
|
|
96
105
|
accepts a layout `sizes` attribute so the browser picks an appropriate width.
|
|
97
106
|
When `previewUrl` is a `data:image/...` LQIP string, it is used as the image
|
|
98
|
-
background while the full asset loads.
|
|
99
|
-
|
|
107
|
+
background with a blur while the full asset loads. The blur is removed after
|
|
108
|
+
the final image fires `load`. Pass `usePreview` to render the preview string/URL
|
|
109
|
+
as the primary `src` instead.
|
|
100
110
|
|
|
101
111
|
```tsx
|
|
102
112
|
import { Image } from '@rakun-kit/react'
|
|
@@ -106,9 +116,32 @@ export function HeroImage({ image }) {
|
|
|
106
116
|
}
|
|
107
117
|
```
|
|
108
118
|
|
|
119
|
+
## Videos
|
|
120
|
+
|
|
121
|
+
`Video` / `RakunVideo` renders Rakun media variants as native `<source>`
|
|
122
|
+
elements. WebM sources are placed before MP4, so browsers that support WebM
|
|
123
|
+
select it while the MP4 variant remains the fallback. Pass the populated media
|
|
124
|
+
object directly; public storage keys are resolved with the same
|
|
125
|
+
`mediaBaseUrl`/`mediaPublicPath` behavior as `Image`.
|
|
126
|
+
|
|
127
|
+
```tsx
|
|
128
|
+
import { Video } from '@rakun-kit/react'
|
|
129
|
+
|
|
130
|
+
export function HeroVideo({ video }) {
|
|
131
|
+
return <Video video={video} controls playsInline />
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Use `sources` to override `video.sources`, or `src` and `type` for a standalone
|
|
136
|
+
video. Private media must already contain resolved source URLs; storage keys
|
|
137
|
+
for private objects are never converted into public URLs.
|
|
138
|
+
|
|
109
139
|
## Public entrypoints and constraints
|
|
110
140
|
|
|
111
|
-
- `@rakun-kit/react`: registries
|
|
141
|
+
- `@rakun-kit/react`: registries, module/page renderers, `Image`, `Video`, the
|
|
142
|
+
`JsonViewer` collapsible tree, and the `RakunLogoMark` / `RakunLogoBadge` SVG
|
|
143
|
+
components. `JsonViewer` accepts theme colors and `defaultExpandedDepth`; use
|
|
144
|
+
`-1` for a fully collapsed initial tree.
|
|
112
145
|
- `@rakun-kit/react/plugins`: web plugin contracts and registry composition.
|
|
113
146
|
- `@rakun-kit/react/translation`: React translation helpers.
|
|
114
147
|
|
package/dist/esm/Image.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ImgHTMLAttributes } from "react";
|
|
2
2
|
type ImageFetchPriority = "high" | "low" | "auto";
|
|
3
3
|
type ImageElementProps = ImgHTMLAttributes<HTMLImageElement> & {
|
|
4
4
|
fetchPriority?: ImageFetchPriority;
|
|
@@ -43,7 +43,7 @@ export type RakunImageProps = Omit<ImageElementProps, "alt" | "height" | "sizes"
|
|
|
43
43
|
includeOriginalInSrcSet?: boolean;
|
|
44
44
|
priority?: boolean;
|
|
45
45
|
};
|
|
46
|
-
export declare function RakunImage({ image, src, previewSrc, fallbackSrc, usePreview, alt, title, width, height, sizes, imageSizes, srcSet, mediaBaseUrl, mediaPublicPath, includeOriginalInSrcSet, priority, loading, decoding, style, ...imgProps }: RakunImageProps): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
export declare function RakunImage({ image, src, previewSrc, fallbackSrc, usePreview, alt, title, width, height, sizes, imageSizes, srcSet, mediaBaseUrl, mediaPublicPath, includeOriginalInSrcSet, priority, loading, decoding, style, onLoad, ...imgProps }: RakunImageProps): import("react/jsx-runtime").JSX.Element;
|
|
47
47
|
export declare const Image: typeof RakunImage;
|
|
48
48
|
export {};
|
|
49
49
|
//# sourceMappingURL=Image.d.ts.map
|