@storyblok/react 4.2.1 → 4.3.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 +108 -1
- package/dist/client.js +1 -1
- package/dist/common/index.d.ts +2 -2
- package/dist/common/index.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +39 -29
- package/dist/index2.js +1 -1
- package/dist/index2.mjs +22 -18
- package/dist/live-editing.js +1 -1
- package/dist/richtext.d.ts +7 -0
- package/dist/richtext.d.ts.map +1 -0
- package/dist/richtext.js +1 -0
- package/dist/richtext.mjs +26 -0
- package/dist/rsc/index.d.ts +3 -0
- package/dist/rsc/index.d.ts.map +1 -1
- package/dist/rsc.js +1 -1
- package/dist/rsc.mjs +29 -21
- package/dist/server-component.js +1 -1
- package/dist/server-component.mjs +2 -0
- package/dist/storyblok-js.js +2 -2
- package/dist/storyblok-js.mjs +541 -339
- package/dist/storyblok-rich-text.d.ts +5 -0
- package/dist/storyblok-rich-text.d.ts.map +1 -0
- package/dist/storyblok-rich-text.js +1 -0
- package/dist/storyblok-rich-text.mjs +15 -0
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +1 -0
- package/dist/utils.mjs +33 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -522,7 +522,114 @@ sbBridge.on(['input', 'published', 'change'], (event) => {
|
|
|
522
522
|
})
|
|
523
523
|
```
|
|
524
524
|
|
|
525
|
-
|
|
525
|
+
## Rendering Rich Text
|
|
526
|
+
|
|
527
|
+
> [!WARNING]
|
|
528
|
+
> We have identified issues with richtext and Types on React 19 and Next.js 15. As a temporary measure, we advise you to continue using React 18 and Next.js 14 until we have fully resolved the issues.
|
|
529
|
+
|
|
530
|
+
You can render rich text fields by using the `StoryblokRichText` component:
|
|
531
|
+
|
|
532
|
+
```ts
|
|
533
|
+
import { StoryblokRichText, useStoryblok } from '@storyblok/react';
|
|
534
|
+
|
|
535
|
+
function App() {
|
|
536
|
+
const story = useStoryblok('home', { version: 'draft' });
|
|
537
|
+
|
|
538
|
+
if (!story?.content) {
|
|
539
|
+
return <div>Loading...</div>;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
return (
|
|
543
|
+
<div>
|
|
544
|
+
<StoryblokRichText doc={story.content.richText} />
|
|
545
|
+
</div>
|
|
546
|
+
);
|
|
547
|
+
}
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
Or you can have more control by using the `useStoryblokRichText` hook:
|
|
551
|
+
|
|
552
|
+
```ts
|
|
553
|
+
import { useStoryblokRichText, convertAttributesInElement } from '@storyblok/react';
|
|
554
|
+
import Codeblock from './Codeblock';
|
|
555
|
+
|
|
556
|
+
function App() {
|
|
557
|
+
const { render } = useStoryblokRichTextResolver({
|
|
558
|
+
// options like resolvers
|
|
559
|
+
});
|
|
560
|
+
|
|
561
|
+
const html = render(doc);
|
|
562
|
+
const formattedHtml = convertAttributesInElement(html as React.ReactElement); // JSX
|
|
563
|
+
|
|
564
|
+
return (
|
|
565
|
+
<div ref={ref}>
|
|
566
|
+
{formattedHtml}
|
|
567
|
+
</div>
|
|
568
|
+
);
|
|
569
|
+
}
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
For more incredible options you can pass to the `useStoryblokRichText`, please consult the [Full options](https://github.com/storyblok/richtext?tab=readme-ov-file#options) documentation.
|
|
573
|
+
|
|
574
|
+
### Overriding the default resolvers
|
|
575
|
+
|
|
576
|
+
You can override the default resolvers by passing a `resolvers` prop to the `StoryblokRichText` component, for example, to use NextJS Link component or add a custom codeblok component:
|
|
577
|
+
|
|
578
|
+
```ts
|
|
579
|
+
import { StoryblokRichText, useStoryblok, MarkTypes, type StoryblokRichTextNode } from '@storyblok/react';
|
|
580
|
+
import Link from 'next/link';
|
|
581
|
+
import CodeBlock from './components/CodeBlock';
|
|
582
|
+
|
|
583
|
+
function App() {
|
|
584
|
+
const story = useStoryblok('home', { version: 'draft' });
|
|
585
|
+
|
|
586
|
+
if (!story?.content) {
|
|
587
|
+
return <div>Loading...</div>;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
const resolvers = {
|
|
591
|
+
[MarkTypes.LINK]: (node: StoryblokRichTextNode<ReactElement>) => {
|
|
592
|
+
return node.attrs?.linktype === 'story'
|
|
593
|
+
? (
|
|
594
|
+
<Link
|
|
595
|
+
href={node.attrs?.href}
|
|
596
|
+
target={node.attrs?.target}
|
|
597
|
+
>
|
|
598
|
+
{node.text}
|
|
599
|
+
</Link>
|
|
600
|
+
)
|
|
601
|
+
: (
|
|
602
|
+
<a
|
|
603
|
+
href={node.attrs?.href}
|
|
604
|
+
target={node.attrs?.target}
|
|
605
|
+
>
|
|
606
|
+
{node.text}
|
|
607
|
+
</a>
|
|
608
|
+
);
|
|
609
|
+
},
|
|
610
|
+
[BlockTypes.CODE_BLOCK]: (node) =>
|
|
611
|
+
<CodeBlock
|
|
612
|
+
class={node?.attrs?.class}
|
|
613
|
+
>
|
|
614
|
+
{node.children}
|
|
615
|
+
</CodeBlock>;
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
return (
|
|
619
|
+
<div>
|
|
620
|
+
<StoryblokRichText
|
|
621
|
+
doc={story.content.richText}
|
|
622
|
+
resolvers={resolvers}
|
|
623
|
+
/>
|
|
624
|
+
</div>
|
|
625
|
+
);
|
|
626
|
+
}
|
|
627
|
+
```
|
|
628
|
+
|
|
629
|
+
### Legacy Rich Text Resolver
|
|
630
|
+
|
|
631
|
+
> [!WARNING]
|
|
632
|
+
> The legacy `renderRichText` is soon to be deprecated. We recommend migrating to the new approach described above instead.
|
|
526
633
|
|
|
527
634
|
You can easily render rich text by using the `renderRichText` function that comes with `@storyblok/react`:
|
|
528
635
|
|
package/dist/client.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),b=require("./storyblok-js.js"),f=(e=null,o={})=>{const[
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),b=require("./storyblok-js.js"),f=(e=null,o={})=>{const[u,s]=d.useState(e),r=(e==null?void 0:e.internalId)??(e==null?void 0:e.id)??0,t=typeof window<"u"&&typeof window.storyblokRegisterEvent<"u";return d.useEffect(()=>{s(e),!(!t||!e)&&b.registerStoryblokBridge(r,c=>s(c),o)},[e]),u};exports.useStoryblokState=f;
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { SbReactComponentsMap, SbReactSDKOptions, StoryblokClient } from '@/types';
|
|
2
|
+
export * from '../types';
|
|
2
3
|
export declare const useStoryblokApi: () => StoryblokClient;
|
|
3
4
|
export declare const setComponents: (newComponentsMap: SbReactComponentsMap) => SbReactComponentsMap;
|
|
4
5
|
export declare const getComponent: (componentKey: string) => false | import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements>;
|
|
5
6
|
export declare const getEnableFallbackComponent: () => boolean;
|
|
6
7
|
export declare const getCustomFallbackComponent: () => import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements>;
|
|
7
8
|
export declare const storyblokInit: (pluginOptions?: SbReactSDKOptions) => void;
|
|
8
|
-
export * from '../types';
|
|
9
9
|
export { useStoryblokApi as getStoryblokApi };
|
|
10
10
|
export { default as StoryblokComponent } from './storyblok-component';
|
|
11
|
-
export { apiPlugin, loadStoryblokBridge, registerStoryblokBridge, renderRichText, RichTextResolver, RichTextSchema, storyblokEditable, useStoryblokBridge, } from '@storyblok/js';
|
|
11
|
+
export { apiPlugin, BlockTypes, loadStoryblokBridge, MarkTypes, registerStoryblokBridge, renderRichText, RichTextResolver, richTextResolver, RichTextSchema, storyblokEditable, type StoryblokRichTextImageOptimizationOptions, type StoryblokRichTextNode, type StoryblokRichTextNodeResolver, type StoryblokRichTextNodeTypes, type StoryblokRichTextOptions, type StoryblokRichTextResolvers, TextTypes, useStoryblokBridge, } from '@storyblok/js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,cAAc,UAAU,CAAC;AAOzB,eAAO,MAAM,eAAe,QAAO,eAQlC,CAAC;AAEF,eAAO,MAAM,aAAa,qBAAsB,oBAAoB,yBAGnE,CAAC;AAEF,eAAO,MAAM,YAAY,iBAAkB,MAAM,0FAOhD,CAAC;AAEF,eAAO,MAAM,0BAA0B,eAAgC,CAAC;AACxE,eAAO,MAAM,0BAA0B,qFAAgC,CAAC;AAExE,eAAO,MAAM,aAAa,mBAAmB,iBAAiB,SAO7D,CAAC;AAEF,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EACL,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,SAAS,EACT,uBAAuB,EACvB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,KAAK,yCAAyC,EAC9C,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,SAAS,EACT,kBAAkB,GACnB,MAAM,eAAe,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,4 +4,7 @@ export declare const useStoryblok: (slug: string, apiOptions?: ISbStoriesParams,
|
|
|
4
4
|
}>;
|
|
5
5
|
export * from './common/client';
|
|
6
6
|
export * from './common/index';
|
|
7
|
+
export { useStoryblokRichTextResolver } from './richtext';
|
|
8
|
+
export { default as StoryblokRichText } from './storyblok-rich-text';
|
|
9
|
+
export * from './utils';
|
|
7
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,YAAY,SACjB,MAAM,eACA,gBAAgB,kBACb,uBAAuB;;EAgDvC,CAAC;AAEF,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,uBAAuB,EACxB,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,YAAY,SACjB,MAAM,eACA,gBAAgB,kBACb,uBAAuB;;EAgDvC,CAAC;AAEF,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACrE,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),e=require("./storyblok-js.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),e=require("./storyblok-js.js"),t=require("./index2.js"),a=require("./client.js"),S=require("./richtext.js"),d=require("./storyblok-rich-text.js"),g=require("./utils.js"),T=require("./storyblok-component.js"),R=(n,r={},o={})=>{const[c,i]=y.useState({}),u=typeof window<"u"&&typeof window.storyblokRegisterEvent<"u",s=t.useStoryblokApi();return y.useEffect(()=>{if(!s){console.error("You can't use useStoryblok if you're not loading apiPlugin.");return}async function k(){const{data:l}=await s.get(`cdn/stories/${n}`,r);i(l.story),u&&l.story.id&&e.registerStoryblokBridge(l.story.id,b=>i(b),o)}k()},[n,JSON.stringify(r),s]),s?(o.resolveRelations=o.resolveRelations??r.resolve_relations,o.resolveLinks=o.resolveLinks??r.resolve_links,c):null};exports.BlockTypes=e.BlockTypes;exports.MarkTypes=e.MarkTypes;exports.RichTextResolver=e.RichTextResolver;exports.RichTextSchema=e.RichTextSchema;exports.TextTypes=e.TextTypes;exports.apiPlugin=e.apiPlugin;exports.loadStoryblokBridge=e.loadStoryblokBridge;exports.registerStoryblokBridge=e.registerStoryblokBridge;exports.renderRichText=e.renderRichText;exports.richTextResolver=e.richTextResolver;exports.storyblokEditable=e.storyblokEditable;exports.useStoryblokBridge=e.registerStoryblokBridge;exports.getComponent=t.getComponent;exports.getCustomFallbackComponent=t.getCustomFallbackComponent;exports.getEnableFallbackComponent=t.getEnableFallbackComponent;exports.getStoryblokApi=t.useStoryblokApi;exports.setComponents=t.setComponents;exports.storyblokInit=t.storyblokInit;exports.useStoryblokApi=t.useStoryblokApi;exports.useStoryblokState=a.useStoryblokState;exports.useStoryblokRichTextResolver=S.useStoryblokRichTextResolver;exports.StoryblokRichText=d;exports.convertAttributesInElement=g.convertAttributesInElement;exports.StoryblokComponent=T;exports.useStoryblok=R;
|
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import { useState as f, useEffect as
|
|
1
|
+
import { useState as f, useEffect as c } from "react";
|
|
2
2
|
import { registerStoryblokBridge as k } from "./storyblok-js.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import { useStoryblokApi as
|
|
5
|
-
import { getComponent as
|
|
6
|
-
import { useStoryblokState as
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
import { BlockTypes as g, MarkTypes as v, RichTextResolver as R, RichTextSchema as T, TextTypes as h, apiPlugin as B, loadStoryblokBridge as C, renderRichText as E, richTextResolver as w, storyblokEditable as A } from "./storyblok-js.mjs";
|
|
4
|
+
import { useStoryblokApi as u } from "./index2.mjs";
|
|
5
|
+
import { getComponent as F, getCustomFallbackComponent as L, getEnableFallbackComponent as P, setComponents as _, storyblokInit as q } from "./index2.mjs";
|
|
6
|
+
import { useStoryblokState as M } from "./client.mjs";
|
|
7
|
+
import { useStoryblokRichTextResolver as Y } from "./richtext.mjs";
|
|
8
|
+
import { default as j } from "./storyblok-rich-text.mjs";
|
|
9
|
+
import { convertAttributesInElement as D } from "./utils.mjs";
|
|
10
|
+
import { default as H } from "./storyblok-component.mjs";
|
|
11
|
+
const d = (s, o = {}, e = {}) => {
|
|
12
|
+
const [n, l] = f({}), i = typeof window < "u" && typeof window.storyblokRegisterEvent < "u", t = u();
|
|
13
|
+
return c(() => {
|
|
11
14
|
if (!t) {
|
|
12
15
|
console.error(
|
|
13
16
|
"You can't use useStoryblok if you're not loading apiPlugin."
|
|
@@ -17,34 +20,41 @@ const b = (s, e = {}, o = {}) => {
|
|
|
17
20
|
async function a() {
|
|
18
21
|
const { data: r } = await t.get(
|
|
19
22
|
`cdn/stories/${s}`,
|
|
20
|
-
|
|
23
|
+
o
|
|
21
24
|
);
|
|
22
|
-
|
|
25
|
+
l(r.story), i && r.story.id && k(
|
|
23
26
|
r.story.id,
|
|
24
|
-
(y) =>
|
|
25
|
-
|
|
27
|
+
(y) => l(y),
|
|
28
|
+
e
|
|
26
29
|
);
|
|
27
30
|
}
|
|
28
31
|
a();
|
|
29
|
-
}, [s, JSON.stringify(
|
|
32
|
+
}, [s, JSON.stringify(o), t]), t ? (e.resolveRelations = e.resolveRelations ?? o.resolve_relations, e.resolveLinks = e.resolveLinks ?? o.resolve_links, n) : null;
|
|
30
33
|
};
|
|
31
34
|
export {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
g as BlockTypes,
|
|
36
|
+
v as MarkTypes,
|
|
37
|
+
R as RichTextResolver,
|
|
38
|
+
T as RichTextSchema,
|
|
39
|
+
H as StoryblokComponent,
|
|
40
|
+
j as StoryblokRichText,
|
|
41
|
+
h as TextTypes,
|
|
42
|
+
B as apiPlugin,
|
|
43
|
+
D as convertAttributesInElement,
|
|
44
|
+
F as getComponent,
|
|
45
|
+
L as getCustomFallbackComponent,
|
|
46
|
+
P as getEnableFallbackComponent,
|
|
47
|
+
u as getStoryblokApi,
|
|
40
48
|
C as loadStoryblokBridge,
|
|
41
49
|
k as registerStoryblokBridge,
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
50
|
+
E as renderRichText,
|
|
51
|
+
w as richTextResolver,
|
|
52
|
+
_ as setComponents,
|
|
53
|
+
A as storyblokEditable,
|
|
54
|
+
q as storyblokInit,
|
|
55
|
+
d as useStoryblok,
|
|
56
|
+
u as useStoryblokApi,
|
|
48
57
|
k as useStoryblokBridge,
|
|
49
|
-
|
|
58
|
+
Y as useStoryblokRichTextResolver,
|
|
59
|
+
M as useStoryblokState
|
|
50
60
|
};
|
package/dist/index2.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./storyblok-js.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./storyblok-js.js"),i=require("./storyblok-component.js");let r=null,t={},l=!1,n=null;const s=()=>(r||console.error("You can't use getStoryblokApi if you're not loading apiPlugin."),r),c=o=>(t=o,t),b=o=>t[o]?t[o]:(console.error(`Component ${o} doesn't exist.`),!1),k=()=>l,y=()=>n,p=(o={})=>{const{storyblokApi:a}=e.storyblokInit(o);r=a,t=o.components,l=o.enableFallbackComponent,n=o.customFallbackComponent};exports.BlockTypes=e.BlockTypes;exports.MarkTypes=e.MarkTypes;exports.RichTextResolver=e.RichTextResolver;exports.RichTextSchema=e.RichTextSchema;exports.TextTypes=e.TextTypes;exports.apiPlugin=e.apiPlugin;exports.loadStoryblokBridge=e.loadStoryblokBridge;exports.registerStoryblokBridge=e.registerStoryblokBridge;exports.renderRichText=e.renderRichText;exports.richTextResolver=e.richTextResolver;exports.storyblokEditable=e.storyblokEditable;exports.useStoryblokBridge=e.registerStoryblokBridge;exports.StoryblokComponent=i;exports.getComponent=b;exports.getCustomFallbackComponent=y;exports.getEnableFallbackComponent=k;exports.getStoryblokApi=s;exports.setComponents=c;exports.storyblokInit=p;exports.useStoryblokApi=s;
|
package/dist/index2.mjs
CHANGED
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
import { storyblokInit as s } from "./storyblok-js.mjs";
|
|
2
|
-
import {
|
|
3
|
-
import { default as
|
|
2
|
+
import { BlockTypes as g, MarkTypes as C, RichTextResolver as d, RichTextSchema as f, TextTypes as x, apiPlugin as S, loadStoryblokBridge as T, registerStoryblokBridge as F, renderRichText as h, richTextResolver as A, storyblokEditable as B, registerStoryblokBridge as R } from "./storyblok-js.mjs";
|
|
3
|
+
import { default as v } from "./storyblok-component.mjs";
|
|
4
4
|
let t = null, e = {}, r = !1, l = null;
|
|
5
|
-
const
|
|
5
|
+
const c = () => (t || console.error(
|
|
6
6
|
"You can't use getStoryblokApi if you're not loading apiPlugin."
|
|
7
|
-
), t),
|
|
7
|
+
), t), b = (o) => (e = o, e), i = (o) => e[o] ? e[o] : (console.error(`Component ${o} doesn't exist.`), !1), k = () => r, p = () => l, m = (o = {}) => {
|
|
8
8
|
const { storyblokApi: n } = s(o);
|
|
9
9
|
t = n, e = o.components, r = o.enableFallbackComponent, l = o.customFallbackComponent;
|
|
10
10
|
};
|
|
11
11
|
export {
|
|
12
|
-
g as
|
|
13
|
-
C as
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
g as BlockTypes,
|
|
13
|
+
C as MarkTypes,
|
|
14
|
+
d as RichTextResolver,
|
|
15
|
+
f as RichTextSchema,
|
|
16
|
+
v as StoryblokComponent,
|
|
17
|
+
x as TextTypes,
|
|
18
|
+
S as apiPlugin,
|
|
16
19
|
i as getComponent,
|
|
17
|
-
|
|
20
|
+
p as getCustomFallbackComponent,
|
|
18
21
|
k as getEnableFallbackComponent,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
c as getStoryblokApi,
|
|
23
|
+
T as loadStoryblokBridge,
|
|
24
|
+
F as registerStoryblokBridge,
|
|
25
|
+
h as renderRichText,
|
|
26
|
+
A as richTextResolver,
|
|
27
|
+
b as setComponents,
|
|
28
|
+
B as storyblokEditable,
|
|
29
|
+
m as storyblokInit,
|
|
30
|
+
c as useStoryblokApi,
|
|
31
|
+
R as useStoryblokBridge
|
|
28
32
|
};
|
package/dist/live-editing.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
"use strict";const
|
|
2
|
+
"use strict";const r=require("./storyblok-js.js"),t=require("react"),o=require("./live-edit-update-action.js"),a=({story:e=null,bridgeOptions:i={}})=>{if(typeof window>"u")return null;const d=n=>{n&&t.startTransition(()=>{o.liveEditUpdateAction({story:n,pathToRevalidate:window.location.pathname})})},l=(e==null?void 0:e.internalId)??(e==null?void 0:e.id)??0;return t.useEffect(()=>{r.registerStoryblokBridge(l,n=>d(n),i)},[]),null};module.exports=a;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { StoryblokRichTextNode, StoryblokRichTextOptions } from '@storyblok/js';
|
|
3
|
+
export declare function componentResolver(node: StoryblokRichTextNode<React.ReactElement>): React.ReactElement;
|
|
4
|
+
export declare function useStoryblokRichTextResolver(options: StoryblokRichTextOptions<React.ReactElement>): {
|
|
5
|
+
render: (node: StoryblokRichTextNode<React.ReactNode>) => React.ReactNode;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=richtext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext.d.ts","sourceRoot":"","sources":["../src/richtext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGrF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,YAAY,CAMrG;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,wBAAwB,CAAC,KAAK,CAAC,YAAY,CAAC;;EAWtD"}
|
package/dist/richtext.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),c=require("./storyblok-component.js"),s=require("./storyblok-js.js");function n(e){var t,o;const r=(t=e==null?void 0:e.attrs)==null?void 0:t.body;return l.createElement(c,{blok:Array.isArray(r)?r[0]:void 0,key:(o=e.attrs)==null?void 0:o.id})}function i(e){const r={renderFn:l.createElement,resolvers:{[s.BlockTypes.COMPONENT]:n,...e.resolvers},keyedResolvers:!0};return s.richTextResolver(r)}exports.componentResolver=n;exports.useStoryblokRichTextResolver=i;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import s from "react";
|
|
2
|
+
import l from "./storyblok-component.mjs";
|
|
3
|
+
import { BlockTypes as n, richTextResolver as c } from "./storyblok-js.mjs";
|
|
4
|
+
function i(e) {
|
|
5
|
+
var t, o;
|
|
6
|
+
const r = (t = e == null ? void 0 : e.attrs) == null ? void 0 : t.body;
|
|
7
|
+
return s.createElement(l, {
|
|
8
|
+
blok: Array.isArray(r) ? r[0] : void 0,
|
|
9
|
+
key: (o = e.attrs) == null ? void 0 : o.id
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
function p(e) {
|
|
13
|
+
const r = {
|
|
14
|
+
renderFn: s.createElement,
|
|
15
|
+
resolvers: {
|
|
16
|
+
[n.COMPONENT]: i,
|
|
17
|
+
...e.resolvers
|
|
18
|
+
},
|
|
19
|
+
keyedResolvers: !0
|
|
20
|
+
};
|
|
21
|
+
return c(r);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
i as componentResolver,
|
|
25
|
+
p as useStoryblokRichTextResolver
|
|
26
|
+
};
|
package/dist/rsc/index.d.ts
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
export { useStoryblokRichTextResolver } from '../richtext';
|
|
2
|
+
export { default as StoryblokRichText } from '../storyblok-rich-text';
|
|
1
3
|
export * from './common';
|
|
2
4
|
export { default as StoryblokStory } from './story';
|
|
5
|
+
export { BlockTypes, MarkTypes, richTextResolver, type StoryblokRichTextImageOptimizationOptions, type StoryblokRichTextNode, type StoryblokRichTextNodeResolver, type StoryblokRichTextNodeTypes, type StoryblokRichTextOptions, type StoryblokRichTextResolvers, TextTypes, } from '@storyblok/js';
|
|
3
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/rsc/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rsc/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rsc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtE,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EACL,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,KAAK,yCAAyC,EAC9C,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,EAC7B,KAAK,0BAA0B,EAC/B,SAAS,GACV,MAAM,eAAe,CAAC"}
|
package/dist/rsc.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./common.js"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./richtext.js"),r=require("./storyblok-rich-text.js"),o=require("./common.js"),l=require("./story.js"),e=require("./storyblok-js.js"),s=require("./server-component.js");exports.useStoryblokRichTextResolver=t.useStoryblokRichTextResolver;exports.StoryblokRichText=r;exports.getComponent=o.getComponent;exports.getCustomFallbackComponent=o.getCustomFallbackComponent;exports.getEnableFallbackComponent=o.getEnableFallbackComponent;exports.getStoryblokApi=o.useStoryblokApi;exports.setComponents=o.setComponents;exports.storyblokInit=o.storyblokInit;exports.useStoryblokApi=o.useStoryblokApi;exports.StoryblokStory=l;exports.BlockTypes=e.BlockTypes;exports.MarkTypes=e.MarkTypes;exports.RichTextResolver=e.RichTextResolver;exports.RichTextSchema=e.RichTextSchema;exports.TextTypes=e.TextTypes;exports.apiPlugin=e.apiPlugin;exports.loadStoryblokBridge=e.loadStoryblokBridge;exports.registerStoryblokBridge=e.registerStoryblokBridge;exports.renderRichText=e.renderRichText;exports.richTextResolver=e.richTextResolver;exports.storyblokEditable=e.storyblokEditable;exports.useStoryblokBridge=e.registerStoryblokBridge;exports.StoryblokServerComponent=s;
|
package/dist/rsc.mjs
CHANGED
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { default as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { useStoryblokRichTextResolver as t } from "./richtext.mjs";
|
|
2
|
+
import { default as l } from "./storyblok-rich-text.mjs";
|
|
3
|
+
import { getComponent as i, getCustomFallbackComponent as a, getEnableFallbackComponent as p, useStoryblokApi as b, setComponents as k, storyblokInit as y, useStoryblokApi as n } from "./common.mjs";
|
|
4
|
+
import { default as m } from "./story.mjs";
|
|
5
|
+
import { BlockTypes as g, MarkTypes as c, RichTextResolver as d, RichTextSchema as T, TextTypes as f, apiPlugin as u, loadStoryblokBridge as R, registerStoryblokBridge as h, renderRichText as C, richTextResolver as B, storyblokEditable as v, registerStoryblokBridge as A } from "./storyblok-js.mjs";
|
|
6
|
+
import { default as F } from "./server-component.mjs";
|
|
5
7
|
export {
|
|
6
|
-
g as
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
g as BlockTypes,
|
|
9
|
+
c as MarkTypes,
|
|
10
|
+
d as RichTextResolver,
|
|
11
|
+
T as RichTextSchema,
|
|
12
|
+
l as StoryblokRichText,
|
|
13
|
+
F as StoryblokServerComponent,
|
|
14
|
+
m as StoryblokStory,
|
|
15
|
+
f as TextTypes,
|
|
16
|
+
u as apiPlugin,
|
|
17
|
+
i as getComponent,
|
|
18
|
+
a as getCustomFallbackComponent,
|
|
19
|
+
p as getEnableFallbackComponent,
|
|
20
|
+
b as getStoryblokApi,
|
|
21
|
+
R as loadStoryblokBridge,
|
|
22
|
+
h as registerStoryblokBridge,
|
|
23
|
+
C as renderRichText,
|
|
24
|
+
B as richTextResolver,
|
|
25
|
+
k as setComponents,
|
|
26
|
+
v as storyblokEditable,
|
|
27
|
+
y as storyblokInit,
|
|
28
|
+
n as useStoryblokApi,
|
|
29
|
+
A as useStoryblokBridge,
|
|
30
|
+
t as useStoryblokRichTextResolver
|
|
23
31
|
};
|
package/dist/server-component.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),l=require("react")
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),l=require("react");require("./storyblok-component.js");require("./storyblok-rich-text.js");const r=require("./common.js");require("./story.js");const c=l.forwardRef(({blok:o,...n},i)=>{if(!o)return console.error("Please provide a 'blok' property to the StoryblokComponent"),e.jsx("div",{children:"Please provide a blok property to the StoryblokServerComponent"});const t=r.getComponent(o.component);if(t)return e.jsx(t,{ref:i,blok:o,...n});if(r.getEnableFallbackComponent()){const s=r.getCustomFallbackComponent();return s?e.jsx(s,{blok:o,...n}):e.jsx(e.Fragment,{children:e.jsxs("p",{children:["Component could not be found for blok"," ",e.jsx("strong",{children:o.component}),"! Is it configured correctly?"]})})}return e.jsx("div",{})});c.displayName="StoryblokServerComponent";module.exports=c;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx as o, Fragment as m, jsxs as l } from "react/jsx-runtime";
|
|
2
2
|
import { forwardRef as i } from "react";
|
|
3
|
+
import "./storyblok-component.mjs";
|
|
4
|
+
import "./storyblok-rich-text.mjs";
|
|
3
5
|
import { getComponent as a, getEnableFallbackComponent as c, getCustomFallbackComponent as d } from "./common.mjs";
|
|
4
6
|
import "./story.mjs";
|
|
5
7
|
const s = i(
|