@storyblok/react 6.1.11 → 7.0.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.
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime");function i(r){return function({attrs:e}){return Array.isArray(e==null?void 0:e.body)?e.body.map((u,n)=>o.jsx(r,{blok:u},u._uid||n)):null}}exports.createDefaultBlok=i;
@@ -0,0 +1,15 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ function l(e) {
3
+ return function({ attrs: r }) {
4
+ return Array.isArray(r == null ? void 0 : r.body) ? r.body.map((u, n) => /* @__PURE__ */ o(
5
+ e,
6
+ {
7
+ blok: u
8
+ },
9
+ u._uid || n
10
+ )) : null;
11
+ };
12
+ }
13
+ export {
14
+ l as createDefaultBlok
15
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),s=require("./rich-text-renderer.js");require("@storyblok/richtext");const a=require("./create-default-blok.js");function d(t){const r=a.createDefaultBlok(t);return function({document:n,optimizeImage:o,components:c,wrapper:i=!0,...u}){const e=s.createRichTextRenderer({optimizeImage:o,components:{blok:r,...c}})(n);return i?l.jsx("div",{...u,children:e}):e}}exports.createStoryblokRichText=d;
@@ -0,0 +1,26 @@
1
+ import { jsx as l } from "react/jsx-runtime";
2
+ import { createRichTextRenderer as m } from "./rich-text-renderer.mjs";
3
+ import "@storyblok/richtext";
4
+ import { createDefaultBlok as u } from "./create-default-blok.mjs";
5
+ function h(t) {
6
+ const e = u(t);
7
+ return function({
8
+ document: o,
9
+ optimizeImage: n,
10
+ components: c,
11
+ wrapper: i = !0,
12
+ ...f
13
+ }) {
14
+ const r = m({
15
+ optimizeImage: n,
16
+ components: {
17
+ blok: e,
18
+ ...c
19
+ }
20
+ })(o);
21
+ return i ? /* @__PURE__ */ l("div", { ...f, children: r }) : r;
22
+ };
23
+ }
24
+ export {
25
+ h as createStoryblokRichText
26
+ };
package/dist/core/init.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@storyblok/js"),t=require("./state.js"),l=(e={})=>{const o=t.getStoryblokApiInstance();if(o)return()=>o;const{storyblokApi:n}=a.storyblokInit(e);return t.setStoryblokApiInstance(n),e.components&&t.setComponents(e.components),e.enableFallbackComponent!==void 0&&t.setEnableFallbackComponent(e.enableFallbackComponent),e.customFallbackComponent&&t.setCustomFallbackComponent(e.customFallbackComponent),()=>n};exports.getComponent=t.getComponent;exports.getCustomFallbackComponent=t.getCustomFallbackComponent;exports.getEnableFallbackComponent=t.getEnableFallbackComponent;exports.setComponents=t.setComponents;exports.storyblokInit=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@storyblok/js"),e=require("./state.js"),l=(t={})=>{const n=e.getStoryblokApiInstance();if(n)return()=>n;const{storyblokApi:a}=o.storyblokInit(t);return e.setStoryblokApiInstance(a),t.components&&e.setComponents(t.components),t.enableFallbackComponent!==void 0&&e.setEnableFallbackComponent(t.enableFallbackComponent),t.customFallbackComponent&&e.setCustomFallbackComponent(t.customFallbackComponent),()=>a};Object.defineProperty(exports,"apiPlugin",{enumerable:!0,get:()=>o.apiPlugin});Object.defineProperty(exports,"storyblokEditable",{enumerable:!0,get:()=>o.storyblokEditable});exports.getComponent=e.getComponent;exports.getCustomFallbackComponent=e.getCustomFallbackComponent;exports.getEnableFallbackComponent=e.getEnableFallbackComponent;exports.setComponents=e.setComponents;exports.storyblokInit=l;
@@ -1,17 +1,20 @@
1
1
  import { storyblokInit as n } from "@storyblok/js";
2
- import { setComponents as a, setEnableFallbackComponent as m, setCustomFallbackComponent as l, setStoryblokApiInstance as b, getStoryblokApiInstance as c } from "./state.mjs";
3
- import { getComponent as f, getCustomFallbackComponent as p, getEnableFallbackComponent as y } from "./state.mjs";
2
+ import { apiPlugin as f, storyblokEditable as F } from "@storyblok/js";
3
+ import { setComponents as a, setEnableFallbackComponent as l, setCustomFallbackComponent as m, setStoryblokApiInstance as b, getStoryblokApiInstance as r } from "./state.mjs";
4
+ import { getComponent as i, getCustomFallbackComponent as I, getEnableFallbackComponent as x } from "./state.mjs";
4
5
  const k = (o = {}) => {
5
- const t = c();
6
+ const t = r();
6
7
  if (t)
7
8
  return () => t;
8
9
  const { storyblokApi: e } = n(o);
9
- return b(e), o.components && a(o.components), o.enableFallbackComponent !== void 0 && m(o.enableFallbackComponent), o.customFallbackComponent && l(o.customFallbackComponent), () => e;
10
+ return b(e), o.components && a(o.components), o.enableFallbackComponent !== void 0 && l(o.enableFallbackComponent), o.customFallbackComponent && m(o.customFallbackComponent), () => e;
10
11
  };
11
12
  export {
12
- f as getComponent,
13
- p as getCustomFallbackComponent,
14
- y as getEnableFallbackComponent,
13
+ f as apiPlugin,
14
+ i as getComponent,
15
+ I as getCustomFallbackComponent,
16
+ x as getEnableFallbackComponent,
15
17
  a as setComponents,
18
+ F as storyblokEditable,
16
19
  k as storyblokInit
17
20
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react/jsx-runtime"),i=require("@storyblok/richtext"),o=require("react");function y(t,e){return e==null?void 0:e[t]}const p={class:"className"};function C(t){return function(c){const r=i.normalizeNodes(c,!0);return r!=null&&r.length?g(r,t):null}}function g(t,e){return i.groupLinkNodes(t).map((r,n)=>r.linkMark?T(r.nodes,r.linkMark,e,r._key||n):x(r.nodes[0],e,r._key||n))}function T(t,e,c,r){const n=t.map((l,a)=>{const m=l,h=i.getInnerMarks(l);return b(m,h,c,l._key||a)}),s=y(e.type,c.components);if(s)return f.jsx(s,{...e,children:n},r);const u=i.resolveTag(e);return u?o.createElement(u,{key:r,...i.processAttrs(e.type,e.attrs,p)},n):f.jsx(o.Fragment,{children:n},r)}function x(t,e,c){if(t.type==="text")return A(t,e,c);const r=y(t.type,e.components);if(r)return f.jsx(r,{...t,context:e,children:t.content?g(t.content,e):null},c);const n=i.resolveTag(t);if(!n)return t.content?g(t.content,e):null;if(t.type==="image"&&e.optimizeImage)return R(t,e,c);const s=i.processAttrs(t.type,t.attrs,p);if(i.isSelfClosing(n))return o.createElement(n,{key:c,...s});if(t.type==="table")return S(t,e,c,n,s);const u=i.getStaticChildren(t);if(u){const l=t.content?g(t.content,e):null,a=d(t.type,u,t.attrs,l);return o.createElement(n,{key:c},a)}return o.createElement(n,{key:c,...s},t.content?g(t.content,e):null)}function R(t,e,c){const r=t.attrs,n=r==null?void 0:r.src;if(!n)return null;const{src:s,attrs:u}=i.buildStoryblokImage(n,e.optimizeImage),l=i.processAttrs("image",{...r,src:s,...u},p);return f.jsx("img",{...l},c)}function S(t,e,c,r,n){const{headerRows:s,bodyRows:u}=i.splitTableRows(t.content),l=[];return s.length>0&&l.push(f.jsx("thead",{children:s.map((a,m)=>x(a,e,a._key||m))},"thead")),u.length>0&&l.push(f.jsx("tbody",{children:u.map((a,m)=>x(a,e,a._key||m))},"tbody")),o.createElement(r,{key:c,...n},l)}function d(t,e,c,r){return e.map((n,s)=>{const{tag:u,children:l,attrs:a}=n,m={...a,...c},h=i.processAttrs(t,m,p);if(i.isSelfClosing(u))return o.createElement(u,{key:s,...h});const j=l?d(t,l,c,r):r;return o.createElement(u,{key:s,...h},j)})}function A(t,e,c){return b(t,t.marks,e,c)}function b(t,e,c,r){let n=t.text;if(e!=null&&e.length)for(const s of e)n=E(n,s,c);return f.jsx(o.Fragment,{children:n},r)}function E(t,e,c){const r=y(e.type,c.components);if(r)return f.jsx(r,{...e,children:t});const n=i.resolveTag(e);if(!n)return t;const s=i.processAttrs(e.type,e.attrs,p);return o.createElement(n,s,t)}exports.createRichTextRenderer=C;
@@ -0,0 +1,106 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { normalizeNodes as R, groupLinkNodes as S, getInnerMarks as T, resolveTag as d, processAttrs as p, isSelfClosing as x, getStaticChildren as z, buildStoryblokImage as _, splitTableRows as A } from "@storyblok/richtext";
3
+ import a from "react";
4
+ function b(t, e) {
5
+ return e == null ? void 0 : e[t];
6
+ }
7
+ const g = {
8
+ class: "className"
9
+ };
10
+ function O(t) {
11
+ return function(c) {
12
+ const r = R(c, !0);
13
+ return r != null && r.length ? m(r, t) : null;
14
+ };
15
+ }
16
+ function m(t, e) {
17
+ return S(t).map((r, n) => r.linkMark ? I(r.nodes, r.linkMark, e, r._key || n) : y(r.nodes[0], e, r._key || n));
18
+ }
19
+ function I(t, e, c, r) {
20
+ const n = t.map((i, l) => {
21
+ const f = i, h = T(i);
22
+ return E(f, h, c, i._key || l);
23
+ }), s = b(e.type, c.components);
24
+ if (s)
25
+ return /* @__PURE__ */ o(s, { ...e, children: n }, r);
26
+ const u = d(e);
27
+ return u ? a.createElement(u, { key: r, ...p(e.type, e.attrs, g) }, n) : /* @__PURE__ */ o(a.Fragment, { children: n }, r);
28
+ }
29
+ function y(t, e, c) {
30
+ if (t.type === "text")
31
+ return w(t, e, c);
32
+ const r = b(t.type, e.components);
33
+ if (r)
34
+ return /* @__PURE__ */ o(r, { ...t, context: e, children: t.content ? m(t.content, e) : null }, c);
35
+ const n = d(t);
36
+ if (!n)
37
+ return t.content ? m(t.content, e) : null;
38
+ if (t.type === "image" && e.optimizeImage)
39
+ return M(t, e, c);
40
+ const s = p(t.type, t.attrs, g);
41
+ if (x(n))
42
+ return a.createElement(n, { key: c, ...s });
43
+ if (t.type === "table")
44
+ return v(t, e, c, n, s);
45
+ const u = z(t);
46
+ if (u) {
47
+ const i = t.content ? m(t.content, e) : null, l = C(t.type, u, t.attrs, i);
48
+ return a.createElement(n, { key: c }, l);
49
+ }
50
+ return a.createElement(
51
+ n,
52
+ { key: c, ...s },
53
+ t.content ? m(t.content, e) : null
54
+ );
55
+ }
56
+ function M(t, e, c) {
57
+ const r = t.attrs, n = r == null ? void 0 : r.src;
58
+ if (!n)
59
+ return null;
60
+ const { src: s, attrs: u } = _(n, e.optimizeImage), i = p("image", {
61
+ ...r,
62
+ src: s,
63
+ ...u
64
+ }, g);
65
+ return /* @__PURE__ */ o("img", { ...i }, c);
66
+ }
67
+ function v(t, e, c, r, n) {
68
+ const { headerRows: s, bodyRows: u } = A(t.content), i = [];
69
+ return s.length > 0 && i.push(
70
+ /* @__PURE__ */ o("thead", { children: s.map((l, f) => y(l, e, l._key || f)) }, "thead")
71
+ ), u.length > 0 && i.push(
72
+ /* @__PURE__ */ o("tbody", { children: u.map((l, f) => y(l, e, l._key || f)) }, "tbody")
73
+ ), a.createElement(r, { key: c, ...n }, i);
74
+ }
75
+ function C(t, e, c, r) {
76
+ return e.map((n, s) => {
77
+ const { tag: u, children: i, attrs: l } = n, f = { ...l, ...c }, h = p(t, f, g);
78
+ if (x(u))
79
+ return a.createElement(u, { key: s, ...h });
80
+ const N = i ? C(t, i, c, r) : r;
81
+ return a.createElement(u, { key: s, ...h }, N);
82
+ });
83
+ }
84
+ function w(t, e, c) {
85
+ return E(t, t.marks, e, c);
86
+ }
87
+ function E(t, e, c, r) {
88
+ let n = t.text;
89
+ if (e != null && e.length)
90
+ for (const s of e)
91
+ n = F(n, s, c);
92
+ return /* @__PURE__ */ o(a.Fragment, { children: n }, r);
93
+ }
94
+ function F(t, e, c) {
95
+ const r = b(e.type, c.components);
96
+ if (r)
97
+ return /* @__PURE__ */ o(r, { ...e, children: t });
98
+ const n = d(e);
99
+ if (!n)
100
+ return t;
101
+ const s = p(e.type, e.attrs, g);
102
+ return a.createElement(n, s, t);
103
+ }
104
+ export {
105
+ O as createRichTextRenderer
106
+ };
package/dist/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { apiPlugin } from '@storyblok/js';
2
2
  import { ArrayFn } from '@storyblok/js';
3
- import { asTag } from '@storyblok/js';
4
3
  import { AsyncFn } from '@storyblok/js';
5
- import { BlockTypes } from '@storyblok/js';
6
- import { ComponentBlok } from '@storyblok/js';
4
+ import { buildStoryblokImage } from '@storyblok/richtext';
5
+ import { ComponentPropsWithoutRef } from 'react';
6
+ import { ComponentType } from 'react';
7
7
  import { default as default_2 } from 'react';
8
8
  import { ForwardRefExoticComponent } from 'react';
9
9
  import { ISbAlternateObject } from '@storyblok/js';
@@ -24,43 +24,42 @@ import { ISbStoryData } from '@storyblok/js';
24
24
  import { ISbStoryParams } from '@storyblok/js';
25
25
  import { ISbThrottle } from '@storyblok/js';
26
26
  import { loadStoryblokBridge } from '@storyblok/js';
27
- import { MarkTypes } from '@storyblok/js';
28
27
  import { ReactNode } from 'react';
29
28
  import { RefAttributes } from 'react';
30
29
  import { registerStoryblokBridge } from '@storyblok/js';
31
- import { renderRichText } from '@storyblok/js';
32
- import { richTextResolver } from '@storyblok/js';
30
+ import { renderRichText } from '@storyblok/richtext';
33
31
  import { SbBlokData } from '@storyblok/js';
34
32
  import { SbBlokKeyDataTypes } from '@storyblok/js';
33
+ import { SbRichTextDoc } from '@storyblok/richtext';
34
+ import { SbRichTextElement } from '@storyblok/richtext';
35
+ import { SbRichTextElementByType } from '@storyblok/richtext';
36
+ import { SbRichTextImageOptions } from '@storyblok/richtext';
37
+ import { SbRichTextInput } from '@storyblok/richtext';
38
+ import { SbRichTextMark } from '@storyblok/richtext';
39
+ import { SbRichTextNode } from '@storyblok/richtext';
40
+ import { SbRichTextProps } from '@storyblok/richtext';
41
+ import { SbRichTextRenderContext } from '@storyblok/richtext';
42
+ import { SbRichTextRendererMap } from '@storyblok/richtext';
35
43
  import { SbSDKOptions } from '@storyblok/js';
44
+ import { splitTableRows } from '@storyblok/richtext';
36
45
  import { StoryblokBridgeConfigV2 } from '@storyblok/js';
37
46
  import { StoryblokBridgeV2 } from '@storyblok/js';
38
47
  import { StoryblokClient } from '@storyblok/js';
39
48
  import { StoryblokComponentType } from '@storyblok/js';
40
49
  import { storyblokEditable } from '@storyblok/js';
41
- import { StoryblokRichTextDocumentNode } from '@storyblok/richtext';
42
- import { StoryblokRichTextImageOptimizationOptions } from '@storyblok/js';
43
- import { StoryblokRichTextNode } from '@storyblok/js';
44
- import { StoryblokRichTextNode as StoryblokRichTextNode_2 } from '@storyblok/richtext';
45
- import { StoryblokRichTextNodeTypes } from '@storyblok/js';
46
- import { StoryblokRichTextOptions } from '@storyblok/js';
47
- import { StoryblokRichTextOptions as StoryblokRichTextOptions_2 } from '@storyblok/richtext';
48
- import { TextTypes } from '@storyblok/js';
49
50
  import { useStoryblokBridge } from '@storyblok/js';
50
51
 
51
52
  export { apiPlugin }
52
53
 
53
54
  export { ArrayFn }
54
55
 
55
- export { asTag }
56
-
57
56
  export { AsyncFn }
58
57
 
59
- export { BlockTypes }
60
-
61
- export { ComponentBlok }
58
+ export { buildStoryblokImage }
62
59
 
63
60
  /**
61
+ * @deprecated This utility is no longer needed and will be removed in a future release.
62
+ *
64
63
  * Recursively converts HTML attributes in a React element tree to their JSX property names.
65
64
  *
66
65
  * @param {React.ReactElement} element The React element to process.
@@ -68,6 +67,10 @@ export { ComponentBlok }
68
67
  */
69
68
  export declare function convertAttributesInElement(element: default_2.ReactElement | default_2.ReactElement[]): default_2.ReactElement | default_2.ReactElement[];
70
69
 
70
+ export declare function createRichTextRenderer(options: SbReactRichTextRenderContext): (document: SbRichTextInput) => ReactNode | null;
71
+
72
+ declare type DivProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'>;
73
+
71
74
  export declare const getComponent: (componentKey: string) => React.ElementType | false;
72
75
 
73
76
  export declare const getCustomFallbackComponent: () => React.ElementType;
@@ -123,14 +126,10 @@ export declare const isVisualEditor: () => boolean;
123
126
 
124
127
  export { loadStoryblokBridge }
125
128
 
126
- export { MarkTypes }
127
-
128
129
  export { registerStoryblokBridge }
129
130
 
130
131
  export { renderRichText }
131
132
 
132
- export { richTextResolver }
133
-
134
133
  export { SbBlokData }
135
134
 
136
135
  export { SbBlokKeyDataTypes }
@@ -139,16 +138,53 @@ export declare interface SbReactComponentsMap {
139
138
  [key: string]: default_2.ElementType;
140
139
  }
141
140
 
141
+ declare type SbReactRichTextComponent<T extends SbRichTextElement> = ComponentType<SbReactRichTextProps<T>>;
142
+
143
+ export declare type SbReactRichTextComponentMap = {
144
+ [K in SbRichTextElement]?: SbReactRichTextComponent<K>;
145
+ };
146
+
147
+ /**
148
+ * Props type for React richtext node/mark components.
149
+ * Similar to SbRichTextProps but uses ReactNode for children instead of string.
150
+ */
151
+ export declare type SbReactRichTextProps<T extends SbRichTextElement> = SbRichTextElementByType<SbReactRichTextRenderContext>[T] & {
152
+ children?: ReactNode;
153
+ };
154
+
155
+ export declare interface SbReactRichTextRenderContext {
156
+ optimizeImage?: boolean | SbRichTextImageOptions;
157
+ components?: SbReactRichTextComponentMap;
158
+ }
159
+
142
160
  export declare interface SbReactSDKOptions extends SbSDKOptions {
143
161
  components?: SbReactComponentsMap;
144
162
  enableFallbackComponent?: boolean;
145
163
  customFallbackComponent?: default_2.ElementType;
146
164
  }
147
165
 
166
+ export { SbRichTextDoc }
167
+
168
+ export { SbRichTextImageOptions }
169
+
170
+ export { SbRichTextMark }
171
+
172
+ export { SbRichTextNode }
173
+
174
+ export { SbRichTextProps }
175
+
176
+ declare type SbRichTextProps_2 = WrappedProps | UnwrappedProps;
177
+
178
+ export { SbRichTextRenderContext }
179
+
180
+ export { SbRichTextRendererMap }
181
+
148
182
  export { SbSDKOptions }
149
183
 
150
184
  export declare const setComponents: (newComponentsMap: SbReactComponentsMap) => Map<string, React.ElementType>;
151
185
 
186
+ export { splitTableRows }
187
+
152
188
  export { StoryblokBridgeConfigV2 }
153
189
 
154
190
  export { StoryblokBridgeV2 }
@@ -167,25 +203,19 @@ export { storyblokEditable }
167
203
 
168
204
  export declare const storyblokInit: (pluginOptions?: SbReactSDKOptions) => (() => StoryblokClient);
169
205
 
170
- export declare const StoryblokRichText: default_2.ForwardRefExoticComponent<StoryblokRichTextProps & default_2.RefAttributes<HTMLDivElement>>;
171
-
172
- export { StoryblokRichTextImageOptimizationOptions }
173
-
174
- export { StoryblokRichTextNode }
175
-
176
- export { StoryblokRichTextNodeTypes }
206
+ export declare const StoryblokRichText: ({ document, optimizeImage, components, wrapper, ...rest }: SbRichTextProps_2) => ReactNode;
177
207
 
178
- export { StoryblokRichTextOptions }
179
-
180
- export declare interface StoryblokRichTextProps {
181
- doc: StoryblokRichTextNode<default_2.ReactElement>;
182
- tiptapExtensions?: StoryblokRichTextOptions<default_2.ReactElement>['tiptapExtensions'];
208
+ export declare interface StoryblokRichTextProps extends SbReactRichTextRenderContext {
209
+ optimizeImage?: boolean | SbRichTextImageOptions;
210
+ document?: SbRichTextInput;
183
211
  }
184
212
 
185
- export { TextTypes }
186
-
187
213
  export declare type TUseStoryblokState = <T = void>(initialStory: ISbStoryData<T> | null, bridgeOptions?: StoryblokBridgeConfigV2) => ISbStoryData<T> | null;
188
214
 
215
+ declare type UnwrappedProps = StoryblokRichTextProps & {
216
+ wrapper: false;
217
+ };
218
+
189
219
  export declare const useStoryblok: (slug: string, apiOptions?: ISbStoriesParams, bridgeOptions?: StoryblokBridgeConfigV2) => ISbStoryData<ISbComponentType<string> & {
190
220
  [index: string]: any;
191
221
  }>;
@@ -196,15 +226,12 @@ export { useStoryblokApi }
196
226
 
197
227
  export { useStoryblokBridge }
198
228
 
199
- export declare const useStoryblokRichText: (options: StoryblokRichTextOptions_2<React.ReactElement>) => {
200
- render: (node: StoryblokRichTextDocumentNode | StoryblokRichTextNode_2<ReactNode>) => ReactNode;
201
- };
202
-
203
- /** @deprecated Use useStoryblokRichText instead */
204
- export declare const useStoryblokRichTextResolver: (options: StoryblokRichTextOptions_2<React.ReactElement>) => {
205
- render: (node: StoryblokRichTextDocumentNode | StoryblokRichTextNode_2<ReactNode>) => ReactNode;
206
- };
229
+ export declare const useStoryblokRichText: (props?: SbReactRichTextRenderContext) => (document: SbRichTextInput) => ReactNode | null;
207
230
 
208
231
  export declare const useStoryblokState: TUseStoryblokState;
209
232
 
233
+ declare type WrappedProps = StoryblokRichTextProps & DivProps & {
234
+ wrapper?: true;
235
+ };
236
+
210
237
  export { }
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"),S=require("./core/init.js"),l=require("./core/use-storyblok-api.js"),p=require("./core/storyblok-component.js"),m=require("./core/use-storyblok-state.js"),a=require("./richtext.js"),f=require("./storyblok-rich-text.js"),t=require("./utils.js"),s=require("./core/state.js"),T=(u,o={},r={})=>{const[c,b]=y.useState({}),k=typeof window<"u"&&typeof window.storyblokRegisterEvent<"u",n=l.getStoryblokApi();return y.useEffect(()=>{if(!n){console.error("You can't use useStoryblok if you're not loading apiPlugin.");return}async function d(){const{data:i}=await n.get(`cdn/stories/${u}`,o);b(i.story),k&&i.story.id&&e.registerStoryblokBridge(i.story.id,g=>b(g),r)}d()},[u,JSON.stringify(o),n]),n?(r.resolveRelations=r.resolveRelations??o.resolve_relations,r.resolveLinks=r.resolveLinks??o.resolve_links,c):null},R=a.useStoryblokRichText;Object.defineProperty(exports,"BlockTypes",{enumerable:!0,get:()=>e.BlockTypes});Object.defineProperty(exports,"ComponentBlok",{enumerable:!0,get:()=>e.ComponentBlok});Object.defineProperty(exports,"MarkTypes",{enumerable:!0,get:()=>e.MarkTypes});Object.defineProperty(exports,"TextTypes",{enumerable:!0,get:()=>e.TextTypes});Object.defineProperty(exports,"apiPlugin",{enumerable:!0,get:()=>e.apiPlugin});Object.defineProperty(exports,"asTag",{enumerable:!0,get:()=>e.asTag});Object.defineProperty(exports,"loadStoryblokBridge",{enumerable:!0,get:()=>e.loadStoryblokBridge});Object.defineProperty(exports,"registerStoryblokBridge",{enumerable:!0,get:()=>e.registerStoryblokBridge});Object.defineProperty(exports,"renderRichText",{enumerable:!0,get:()=>e.renderRichText});Object.defineProperty(exports,"richTextResolver",{enumerable:!0,get:()=>e.richTextResolver});Object.defineProperty(exports,"storyblokEditable",{enumerable:!0,get:()=>e.storyblokEditable});Object.defineProperty(exports,"useStoryblokBridge",{enumerable:!0,get:()=>e.useStoryblokBridge});exports.storyblokInit=S.storyblokInit;exports.getStoryblokApi=l.getStoryblokApi;exports.useStoryblokApi=l.getStoryblokApi;exports.StoryblokComponent=p;exports.useStoryblokState=m.useStoryblokState;exports.useStoryblokRichText=a.useStoryblokRichText;exports.StoryblokRichText=f;exports.convertAttributesInElement=t.convertAttributesInElement;exports.isBridgeLoaded=t.isBridgeLoaded;exports.isBrowser=t.isBrowser;exports.isIframe=t.isIframe;exports.isServer=t.isServer;exports.isVisualEditor=t.isVisualEditor;exports.getComponent=s.getComponent;exports.getCustomFallbackComponent=s.getCustomFallbackComponent;exports.getEnableFallbackComponent=s.getEnableFallbackComponent;exports.setComponents=s.setComponents;exports.useStoryblok=T;exports.useStoryblokRichTextResolver=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("react"),e=require("@storyblok/js"),S=require("./core/init.js"),l=require("./core/use-storyblok-api.js"),m=require("./core/storyblok-component.js"),f=require("./core/use-storyblok-state.js"),p=require("./richtext.js"),R=require("./core/rich-text-renderer.js"),u=require("@storyblok/richtext"),T=require("./storyblok-rich-text.js"),t=require("./utils.js"),n=require("./core/state.js"),h=(b,o={},r={})=>{const[a,c]=y.useState({}),d=typeof window<"u"&&typeof window.storyblokRegisterEvent<"u",i=l.getStoryblokApi();return y.useEffect(()=>{if(!i){console.error("You can't use useStoryblok if you're not loading apiPlugin.");return}async function k(){const{data:s}=await i.get(`cdn/stories/${b}`,o);c(s.story),d&&s.story.id&&e.registerStoryblokBridge(s.story.id,g=>c(g),r)}k()},[b,JSON.stringify(o),i]),i?(r.resolveRelations=r.resolveRelations??o.resolve_relations,r.resolveLinks=r.resolveLinks??o.resolve_links,a):null};Object.defineProperty(exports,"apiPlugin",{enumerable:!0,get:()=>e.apiPlugin});Object.defineProperty(exports,"loadStoryblokBridge",{enumerable:!0,get:()=>e.loadStoryblokBridge});Object.defineProperty(exports,"registerStoryblokBridge",{enumerable:!0,get:()=>e.registerStoryblokBridge});Object.defineProperty(exports,"storyblokEditable",{enumerable:!0,get:()=>e.storyblokEditable});Object.defineProperty(exports,"useStoryblokBridge",{enumerable:!0,get:()=>e.useStoryblokBridge});exports.storyblokInit=S.storyblokInit;exports.getStoryblokApi=l.getStoryblokApi;exports.useStoryblokApi=l.getStoryblokApi;exports.StoryblokComponent=m;exports.useStoryblokState=f.useStoryblokState;exports.useStoryblokRichText=p.useStoryblokRichText;exports.createRichTextRenderer=R.createRichTextRenderer;Object.defineProperty(exports,"buildStoryblokImage",{enumerable:!0,get:()=>u.buildStoryblokImage});Object.defineProperty(exports,"renderRichText",{enumerable:!0,get:()=>u.renderRichText});Object.defineProperty(exports,"splitTableRows",{enumerable:!0,get:()=>u.splitTableRows});exports.StoryblokRichText=T.StoryblokRichText;exports.convertAttributesInElement=t.convertAttributesInElement;exports.isBridgeLoaded=t.isBridgeLoaded;exports.isBrowser=t.isBrowser;exports.isIframe=t.isIframe;exports.isServer=t.isServer;exports.isVisualEditor=t.isVisualEditor;exports.getComponent=n.getComponent;exports.getCustomFallbackComponent=n.getCustomFallbackComponent;exports.getEnableFallbackComponent=n.getEnableFallbackComponent;exports.setComponents=n.setComponents;exports.useStoryblok=h;
package/dist/index.mjs CHANGED
@@ -1,17 +1,19 @@
1
- import { useState as f, useEffect as k } from "react";
1
+ import { useState as f, useEffect as m } from "react";
2
2
  import { registerStoryblokBridge as u } from "@storyblok/js";
3
- import { BlockTypes as B, ComponentBlok as R, MarkTypes as C, TextTypes as E, apiPlugin as w, asTag as h, loadStoryblokBridge as A, registerStoryblokBridge as I, renderRichText as L, richTextResolver as F, storyblokEditable as P, useStoryblokBridge as _ } from "@storyblok/js";
4
- import { storyblokInit as M } from "./core/init.mjs";
5
- import { getStoryblokApi as m } from "./core/use-storyblok-api.mjs";
6
- import { default as V } from "./core/storyblok-component.mjs";
7
- import { useStoryblokState as $ } from "./core/use-storyblok-state.mjs";
8
- import { useStoryblokRichText as c } from "./richtext.mjs";
9
- import { default as q } from "./storyblok-rich-text.mjs";
10
- import { convertAttributesInElement as D, isBridgeLoaded as G, isBrowser as H, isIframe as K, isServer as Q, isVisualEditor as U } from "./utils.mjs";
11
- import { getComponent as X, getCustomFallbackComponent as Z, getEnableFallbackComponent as O, setComponents as oo } from "./core/state.mjs";
12
- const g = (s, e = {}, o = {}) => {
13
- const [n, l] = f({}), i = typeof window < "u" && typeof window.storyblokRegisterEvent < "u", t = m();
14
- return k(() => {
3
+ import { apiPlugin as x, loadStoryblokBridge as v, registerStoryblokBridge as R, storyblokEditable as w, useStoryblokBridge as B } from "@storyblok/js";
4
+ import { storyblokInit as C } from "./core/init.mjs";
5
+ import { getStoryblokApi as k } from "./core/use-storyblok-api.mjs";
6
+ import { default as I } from "./core/storyblok-component.mjs";
7
+ import { useStoryblokState as h } from "./core/use-storyblok-state.mjs";
8
+ import { useStoryblokRichText as F } from "./richtext.mjs";
9
+ import { createRichTextRenderer as _ } from "./core/rich-text-renderer.mjs";
10
+ import { buildStoryblokImage as N, renderRichText as V, splitTableRows as Y } from "@storyblok/richtext";
11
+ import { StoryblokRichText as j } from "./storyblok-rich-text.mjs";
12
+ import { convertAttributesInElement as z, isBridgeLoaded as D, isBrowser as G, isIframe as H, isServer as K, isVisualEditor as M } from "./utils.mjs";
13
+ import { getComponent as U, getCustomFallbackComponent as W, getEnableFallbackComponent as X, setComponents as Z } from "./core/state.mjs";
14
+ const S = (s, e = {}, o = {}) => {
15
+ const [l, i] = f({}), n = typeof window < "u" && typeof window.storyblokRegisterEvent < "u", t = k();
16
+ return m(() => {
15
17
  if (!t) {
16
18
  console.error(
17
19
  "You can't use useStoryblok if you're not loading apiPlugin."
@@ -23,45 +25,41 @@ const g = (s, e = {}, o = {}) => {
23
25
  `cdn/stories/${s}`,
24
26
  e
25
27
  );
26
- l(r.story), i && r.story.id && u(
28
+ i(r.story), n && r.story.id && u(
27
29
  r.story.id,
28
- (y) => l(y),
30
+ (y) => i(y),
29
31
  o
30
32
  );
31
33
  }
32
34
  a();
33
- }, [s, JSON.stringify(e), t]), t ? (o.resolveRelations = o.resolveRelations ?? e.resolve_relations, o.resolveLinks = o.resolveLinks ?? e.resolve_links, n) : null;
34
- }, x = c;
35
+ }, [s, JSON.stringify(e), t]), t ? (o.resolveRelations = o.resolveRelations ?? e.resolve_relations, o.resolveLinks = o.resolveLinks ?? e.resolve_links, l) : null;
36
+ };
35
37
  export {
36
- B as BlockTypes,
37
- R as ComponentBlok,
38
- C as MarkTypes,
39
- V as StoryblokComponent,
40
- q as StoryblokRichText,
41
- E as TextTypes,
42
- w as apiPlugin,
43
- h as asTag,
44
- D as convertAttributesInElement,
45
- X as getComponent,
46
- Z as getCustomFallbackComponent,
47
- O as getEnableFallbackComponent,
48
- m as getStoryblokApi,
49
- G as isBridgeLoaded,
50
- H as isBrowser,
51
- K as isIframe,
52
- Q as isServer,
53
- U as isVisualEditor,
54
- A as loadStoryblokBridge,
55
- I as registerStoryblokBridge,
56
- L as renderRichText,
57
- F as richTextResolver,
58
- oo as setComponents,
59
- P as storyblokEditable,
60
- M as storyblokInit,
61
- g as useStoryblok,
62
- m as useStoryblokApi,
63
- _ as useStoryblokBridge,
64
- c as useStoryblokRichText,
65
- x as useStoryblokRichTextResolver,
66
- $ as useStoryblokState
38
+ I as StoryblokComponent,
39
+ j as StoryblokRichText,
40
+ x as apiPlugin,
41
+ N as buildStoryblokImage,
42
+ z as convertAttributesInElement,
43
+ _ as createRichTextRenderer,
44
+ U as getComponent,
45
+ W as getCustomFallbackComponent,
46
+ X as getEnableFallbackComponent,
47
+ k as getStoryblokApi,
48
+ D as isBridgeLoaded,
49
+ G as isBrowser,
50
+ H as isIframe,
51
+ K as isServer,
52
+ M as isVisualEditor,
53
+ v as loadStoryblokBridge,
54
+ R as registerStoryblokBridge,
55
+ V as renderRichText,
56
+ Z as setComponents,
57
+ Y as splitTableRows,
58
+ w as storyblokEditable,
59
+ C as storyblokInit,
60
+ S as useStoryblok,
61
+ k as useStoryblokApi,
62
+ B as useStoryblokBridge,
63
+ F as useStoryblokRichText,
64
+ h as useStoryblokState
67
65
  };
package/dist/richtext.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./core/storyblok-component.js"),t=require("./core/richtext-hoc.js"),o=t.createRichTextHook(e,{isServerContext:!1});exports.useStoryblokRichText=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./core/rich-text-renderer.js");require("@storyblok/richtext");const o=require("./core/storyblok-component.js"),r=require("./core/create-default-blok.js"),c=(e={})=>t.createRichTextRenderer({optimizeImage:e.optimizeImage,components:{blok:r.createDefaultBlok(o),...e.components}});exports.useStoryblokRichText=c;
package/dist/richtext.mjs CHANGED
@@ -1,8 +1,14 @@
1
- import o from "./core/storyblok-component.mjs";
2
- import { createRichTextHook as t } from "./core/richtext-hoc.mjs";
3
- const i = t(o, {
4
- isServerContext: !1
1
+ import { createRichTextRenderer as e } from "./core/rich-text-renderer.mjs";
2
+ import "@storyblok/richtext";
3
+ import t from "./core/storyblok-component.mjs";
4
+ import { createDefaultBlok as r } from "./core/create-default-blok.mjs";
5
+ const c = (o = {}) => e({
6
+ optimizeImage: o.optimizeImage,
7
+ components: {
8
+ blok: r(t),
9
+ ...o.components
10
+ }
5
11
  });
6
12
  export {
7
- i as useStoryblokRichText
13
+ c as useStoryblokRichText
8
14
  };
package/dist/rsc.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { apiPlugin } from '@storyblok/js';
2
2
  import { ArrayFn } from '@storyblok/js';
3
- import { asTag } from '@storyblok/js';
4
3
  import { AsyncFn } from '@storyblok/js';
5
- import { BlockTypes } from '@storyblok/js';
6
- import { ComponentBlok } from '@storyblok/js';
4
+ import { buildStoryblokImage } from '@storyblok/richtext';
5
+ import { ComponentPropsWithoutRef } from 'react';
6
+ import { ComponentType } from 'react';
7
7
  import { default as default_2 } from 'react';
8
8
  import { ForwardRefExoticComponent } from 'react';
9
9
  import { ISbAlternateObject } from '@storyblok/js';
@@ -22,42 +22,41 @@ import { ISbStory } from '@storyblok/js';
22
22
  import { ISbStoryData } from '@storyblok/js';
23
23
  import { ISbStoryParams } from '@storyblok/js';
24
24
  import { ISbThrottle } from '@storyblok/js';
25
- import { loadStoryblokBridge } from '@storyblok/js';
26
- import { MarkTypes } from '@storyblok/js';
27
25
  import { ReactNode } from 'react';
28
26
  import { RefAttributes } from 'react';
29
- import { registerStoryblokBridge } from '@storyblok/js';
30
- import { renderRichText } from '@storyblok/js';
31
- import { richTextResolver } from '@storyblok/js';
27
+ import { renderRichText } from '@storyblok/richtext';
32
28
  import { SbBlokData } from '@storyblok/js';
33
29
  import { SbBlokKeyDataTypes } from '@storyblok/js';
30
+ import { SbRichTextDoc } from '@storyblok/richtext';
31
+ import { SbRichTextElement } from '@storyblok/richtext';
32
+ import { SbRichTextElementByType } from '@storyblok/richtext';
33
+ import { SbRichTextImageOptions } from '@storyblok/richtext';
34
+ import { SbRichTextInput } from '@storyblok/richtext';
35
+ import { SbRichTextMark } from '@storyblok/richtext';
36
+ import { SbRichTextNode } from '@storyblok/richtext';
37
+ import { SbRichTextProps } from '@storyblok/richtext';
38
+ import { SbRichTextRenderContext } from '@storyblok/richtext';
39
+ import { SbRichTextRendererMap } from '@storyblok/richtext';
34
40
  import { SbSDKOptions } from '@storyblok/js';
41
+ import { splitTableRows } from '@storyblok/richtext';
35
42
  import { StoryblokBridgeConfigV2 } from '@storyblok/js';
36
43
  import { StoryblokBridgeV2 } from '@storyblok/js';
37
44
  import { StoryblokClient } from '@storyblok/js';
38
45
  import { StoryblokComponentType } from '@storyblok/js';
39
46
  import { storyblokEditable } from '@storyblok/js';
40
- import { StoryblokRichTextDocumentNode } from '@storyblok/richtext';
41
- import { StoryblokRichTextImageOptimizationOptions } from '@storyblok/js';
42
- import { StoryblokRichTextNode } from '@storyblok/js';
43
- import { StoryblokRichTextNode as StoryblokRichTextNode_2 } from '@storyblok/richtext';
44
- import { StoryblokRichTextNodeTypes } from '@storyblok/js';
45
- import { StoryblokRichTextOptions } from '@storyblok/js';
46
- import { StoryblokRichTextOptions as StoryblokRichTextOptions_2 } from '@storyblok/richtext';
47
- import { TextTypes } from '@storyblok/js';
48
47
  import { useStoryblokBridge } from '@storyblok/js';
49
48
 
50
49
  export { apiPlugin }
51
50
 
52
51
  export { ArrayFn }
53
52
 
54
- export { asTag }
55
-
56
53
  export { AsyncFn }
57
54
 
58
- export { BlockTypes }
55
+ export { buildStoryblokImage }
56
+
57
+ export declare function createRichTextRenderer(options: SbReactRichTextRenderContext): (document: SbRichTextInput) => ReactNode | null;
59
58
 
60
- export { ComponentBlok }
59
+ declare type DivProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'>;
61
60
 
62
61
  export declare const getComponent: (componentKey: string) => React.ElementType | false;
63
62
 
@@ -99,16 +98,8 @@ export { ISbStoryParams }
99
98
 
100
99
  export { ISbThrottle }
101
100
 
102
- export { loadStoryblokBridge }
103
-
104
- export { MarkTypes }
105
-
106
- export { registerStoryblokBridge }
107
-
108
101
  export { renderRichText }
109
102
 
110
- export { richTextResolver }
111
-
112
103
  export { SbBlokData }
113
104
 
114
105
  export { SbBlokKeyDataTypes }
@@ -117,12 +108,47 @@ export declare interface SbReactComponentsMap {
117
108
  [key: string]: default_2.ElementType;
118
109
  }
119
110
 
111
+ declare type SbReactRichTextComponent<T extends SbRichTextElement> = ComponentType<SbReactRichTextProps<T>>;
112
+
113
+ export declare type SbReactRichTextComponentMap = {
114
+ [K in SbRichTextElement]?: SbReactRichTextComponent<K>;
115
+ };
116
+
117
+ /**
118
+ * Props type for React richtext node/mark components.
119
+ * Similar to SbRichTextProps but uses ReactNode for children instead of string.
120
+ */
121
+ export declare type SbReactRichTextProps<T extends SbRichTextElement> = SbRichTextElementByType<SbReactRichTextRenderContext>[T] & {
122
+ children?: ReactNode;
123
+ };
124
+
125
+ export declare interface SbReactRichTextRenderContext {
126
+ optimizeImage?: boolean | SbRichTextImageOptions;
127
+ components?: SbReactRichTextComponentMap;
128
+ }
129
+
120
130
  export declare interface SbReactSDKOptions extends SbSDKOptions {
121
131
  components?: SbReactComponentsMap;
122
132
  enableFallbackComponent?: boolean;
123
133
  customFallbackComponent?: default_2.ElementType;
124
134
  }
125
135
 
136
+ export { SbRichTextDoc }
137
+
138
+ export { SbRichTextImageOptions }
139
+
140
+ export { SbRichTextMark }
141
+
142
+ export { SbRichTextNode }
143
+
144
+ export { SbRichTextProps }
145
+
146
+ declare type SbRichTextProps_2 = WrappedProps | UnwrappedProps;
147
+
148
+ export { SbRichTextRenderContext }
149
+
150
+ export { SbRichTextRendererMap }
151
+
126
152
  export { SbSDKOptions }
127
153
 
128
154
  declare interface SbServerComponentProps extends Omit<Record<string, unknown>, 'blok'> {
@@ -131,6 +157,8 @@ declare interface SbServerComponentProps extends Omit<Record<string, unknown>, '
131
157
 
132
158
  export declare const setComponents: (newComponentsMap: SbReactComponentsMap) => Map<string, React.ElementType>;
133
159
 
160
+ export { splitTableRows }
161
+
134
162
  export { StoryblokBridgeConfigV2 }
135
163
 
136
164
  export { StoryblokBridgeV2 }
@@ -148,22 +176,14 @@ export declare const StoryblokLiveEditing: ({ story, bridgeOptions }: {
148
176
  bridgeOptions?: StoryblokBridgeConfigV2;
149
177
  }) => any;
150
178
 
151
- export { StoryblokRichTextImageOptimizationOptions }
152
-
153
- export { StoryblokRichTextNode }
154
-
155
- export { StoryblokRichTextNodeTypes }
156
-
157
- export { StoryblokRichTextOptions }
158
-
159
- export declare interface StoryblokRichTextProps {
160
- doc: StoryblokRichTextNode<default_2.ReactElement>;
161
- tiptapExtensions?: StoryblokRichTextOptions<default_2.ReactElement>['tiptapExtensions'];
179
+ export declare interface StoryblokRichTextProps extends SbReactRichTextRenderContext {
180
+ optimizeImage?: boolean | SbRichTextImageOptions;
181
+ document?: SbRichTextInput;
162
182
  }
163
183
 
164
184
  export declare const StoryblokServerComponent: ForwardRefExoticComponent<Omit<SbServerComponentProps, "ref"> & RefAttributes<HTMLElement>>;
165
185
 
166
- export declare const StoryblokServerRichText: default_2.ForwardRefExoticComponent<StoryblokRichTextProps & default_2.RefAttributes<HTMLDivElement>>;
186
+ export declare const StoryblokServerRichText: ({ document, optimizeImage, components, wrapper, ...rest }: SbRichTextProps_2) => ReactNode;
167
187
 
168
188
  /**
169
189
  * Shared server component for rendering Storyblok stories.
@@ -182,14 +202,18 @@ declare interface StoryblokStoryProps extends Omit<Record<string, unknown>, 'sto
182
202
  bridgeOptions?: StoryblokBridgeConfigV2;
183
203
  }
184
204
 
185
- export { TextTypes }
186
-
187
205
  export declare type TUseStoryblokState = <T = void>(initialStory: ISbStoryData<T> | null, bridgeOptions?: StoryblokBridgeConfigV2) => ISbStoryData<T> | null;
188
206
 
207
+ declare type UnwrappedProps = StoryblokRichTextProps & {
208
+ wrapper: false;
209
+ };
210
+
189
211
  export { useStoryblokBridge }
190
212
 
191
- export declare const useStoryblokServerRichText: (options: StoryblokRichTextOptions_2<React.ReactElement>) => {
192
- render: (node: StoryblokRichTextDocumentNode | StoryblokRichTextNode_2<ReactNode>) => ReactNode;
213
+ export declare const useStoryblokServerRichText: (props?: SbReactRichTextRenderContext) => (document: SbRichTextInput) => ReactNode | null;
214
+
215
+ declare type WrappedProps = StoryblokRichTextProps & DivProps & {
216
+ wrapper?: true;
193
217
  };
194
218
 
195
219
  export { }
package/dist/rsc.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./core/init.js"),o=require("./server/richtext.js"),n=require("./server/server-component.js"),i=require("./server/server-story.js"),l=require("./server/server-storyblok-richtext-component.js"),b=require("./rsc/live-editing.js"),u=require("./rsc/story.js"),e=require("@storyblok/js"),t=require("./core/state.js"),s=require("./core/use-storyblok-api.js");exports.storyblokInit=r.storyblokInit;exports.useStoryblokServerRichText=o.useStoryblokServerRichText;exports.StoryblokServerComponent=n;exports.StoryblokServerStory=i;exports.StoryblokServerRichText=l;exports.StoryblokLiveEditing=b;exports.StoryblokStory=u;Object.defineProperty(exports,"BlockTypes",{enumerable:!0,get:()=>e.BlockTypes});Object.defineProperty(exports,"ComponentBlok",{enumerable:!0,get:()=>e.ComponentBlok});Object.defineProperty(exports,"MarkTypes",{enumerable:!0,get:()=>e.MarkTypes});Object.defineProperty(exports,"TextTypes",{enumerable:!0,get:()=>e.TextTypes});Object.defineProperty(exports,"apiPlugin",{enumerable:!0,get:()=>e.apiPlugin});Object.defineProperty(exports,"asTag",{enumerable:!0,get:()=>e.asTag});Object.defineProperty(exports,"loadStoryblokBridge",{enumerable:!0,get:()=>e.loadStoryblokBridge});Object.defineProperty(exports,"registerStoryblokBridge",{enumerable:!0,get:()=>e.registerStoryblokBridge});Object.defineProperty(exports,"renderRichText",{enumerable:!0,get:()=>e.renderRichText});Object.defineProperty(exports,"richTextResolver",{enumerable:!0,get:()=>e.richTextResolver});Object.defineProperty(exports,"storyblokEditable",{enumerable:!0,get:()=>e.storyblokEditable});Object.defineProperty(exports,"useStoryblokBridge",{enumerable:!0,get:()=>e.useStoryblokBridge});exports.getComponent=t.getComponent;exports.getCustomFallbackComponent=t.getCustomFallbackComponent;exports.getEnableFallbackComponent=t.getEnableFallbackComponent;exports.setComponents=t.setComponents;exports.getStoryblokApi=s.getStoryblokApi;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./core/init.js"),n=require("./core/rich-text-renderer.js"),t=require("@storyblok/richtext"),i=require("./server/richtext.js"),l=require("./server/server-component.js"),b=require("./server/server-story.js"),c=require("./server/server-storyblok-richtext.js"),s=require("./rsc/live-editing.js"),u=require("./rsc/story.js"),r=require("@storyblok/js"),e=require("./core/state.js"),y=require("./core/use-storyblok-api.js");exports.storyblokInit=o.storyblokInit;exports.createRichTextRenderer=n.createRichTextRenderer;Object.defineProperty(exports,"buildStoryblokImage",{enumerable:!0,get:()=>t.buildStoryblokImage});Object.defineProperty(exports,"renderRichText",{enumerable:!0,get:()=>t.renderRichText});Object.defineProperty(exports,"splitTableRows",{enumerable:!0,get:()=>t.splitTableRows});exports.useStoryblokServerRichText=i.useStoryblokServerRichText;exports.StoryblokServerComponent=l;exports.StoryblokServerStory=b;exports.StoryblokServerRichText=c.StoryblokServerRichText;exports.StoryblokLiveEditing=s;exports.StoryblokStory=u;Object.defineProperty(exports,"apiPlugin",{enumerable:!0,get:()=>r.apiPlugin});Object.defineProperty(exports,"storyblokEditable",{enumerable:!0,get:()=>r.storyblokEditable});exports.getComponent=e.getComponent;exports.getCustomFallbackComponent=e.getCustomFallbackComponent;exports.getEnableFallbackComponent=e.getEnableFallbackComponent;exports.setComponents=e.setComponents;exports.getStoryblokApi=y.getStoryblokApi;
package/dist/rsc.mjs CHANGED
@@ -1,36 +1,32 @@
1
1
  import { storyblokInit as r } from "./core/init.mjs";
2
- import { useStoryblokServerRichText as l } from "./server/richtext.mjs";
3
- import { default as p } from "./server/server-component.mjs";
2
+ import { createRichTextRenderer as l } from "./core/rich-text-renderer.mjs";
3
+ import { buildStoryblokImage as m, renderRichText as a, splitTableRows as b } from "@storyblok/richtext";
4
+ import { useStoryblokServerRichText as n } from "./server/richtext.mjs";
5
+ import { default as i } from "./server/server-component.mjs";
4
6
  import { default as k } from "./server/server-story.mjs";
5
- import { default as n } from "./server/server-storyblok-richtext-component.mjs";
6
- import { default as b } from "./rsc/live-editing.mjs";
7
- import { default as S } from "./rsc/story.mjs";
8
- import { BlockTypes as x, ComponentBlok as d, MarkTypes as g, TextTypes as u, apiPlugin as T, asTag as c, loadStoryblokBridge as C, registerStoryblokBridge as v, renderRichText as B, richTextResolver as h, storyblokEditable as R, useStoryblokBridge as E } from "@storyblok/js";
9
- import { getComponent as A, getCustomFallbackComponent as I, getEnableFallbackComponent as L, setComponents as M } from "./core/state.mjs";
10
- import { getStoryblokApi as j } from "./core/use-storyblok-api.mjs";
7
+ import { StoryblokServerRichText as y } from "./server/server-storyblok-richtext.mjs";
8
+ import { default as u } from "./rsc/live-editing.mjs";
9
+ import { default as g } from "./rsc/story.mjs";
10
+ import { apiPlugin as R, storyblokEditable as v } from "@storyblok/js";
11
+ import { getComponent as h, getCustomFallbackComponent as E, getEnableFallbackComponent as F, setComponents as I } from "./core/state.mjs";
12
+ import { getStoryblokApi as A } from "./core/use-storyblok-api.mjs";
11
13
  export {
12
- x as BlockTypes,
13
- d as ComponentBlok,
14
- g as MarkTypes,
15
- b as StoryblokLiveEditing,
16
- p as StoryblokServerComponent,
17
- n as StoryblokServerRichText,
14
+ u as StoryblokLiveEditing,
15
+ i as StoryblokServerComponent,
16
+ y as StoryblokServerRichText,
18
17
  k as StoryblokServerStory,
19
- S as StoryblokStory,
20
- u as TextTypes,
21
- T as apiPlugin,
22
- c as asTag,
23
- A as getComponent,
24
- I as getCustomFallbackComponent,
25
- L as getEnableFallbackComponent,
26
- j as getStoryblokApi,
27
- C as loadStoryblokBridge,
28
- v as registerStoryblokBridge,
29
- B as renderRichText,
30
- h as richTextResolver,
31
- M as setComponents,
32
- R as storyblokEditable,
18
+ g as StoryblokStory,
19
+ R as apiPlugin,
20
+ m as buildStoryblokImage,
21
+ l as createRichTextRenderer,
22
+ h as getComponent,
23
+ E as getCustomFallbackComponent,
24
+ F as getEnableFallbackComponent,
25
+ A as getStoryblokApi,
26
+ a as renderRichText,
27
+ I as setComponents,
28
+ b as splitTableRows,
29
+ v as storyblokEditable,
33
30
  r as storyblokInit,
34
- E as useStoryblokBridge,
35
- l as useStoryblokServerRichText
31
+ n as useStoryblokServerRichText
36
32
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-component.js"),r=require("../core/richtext-hoc.js"),t=r.createRichTextHook(e,{isServerContext:!0});exports.useStoryblokServerRichText=t;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("../core/create-default-blok.js"),t=require("../core/rich-text-renderer.js");require("@storyblok/richtext");const o=require("./server-component.js"),c=(e={})=>t.createRichTextRenderer({optimizeImage:e.optimizeImage,components:{blok:r.createDefaultBlok(o),...e.components}});exports.useStoryblokServerRichText=c;
@@ -1,8 +1,14 @@
1
- import e from "./server-component.mjs";
2
- import { createRichTextHook as o } from "../core/richtext-hoc.mjs";
3
- const i = o(e, {
4
- isServerContext: !0
1
+ import { createDefaultBlok as o } from "../core/create-default-blok.mjs";
2
+ import { createRichTextRenderer as r } from "../core/rich-text-renderer.mjs";
3
+ import "@storyblok/richtext";
4
+ import t from "./server-component.mjs";
5
+ const c = (e = {}) => r({
6
+ optimizeImage: e.optimizeImage,
7
+ components: {
8
+ blok: o(t),
9
+ ...e.components
10
+ }
5
11
  });
6
12
  export {
7
- i as useStoryblokServerRichText
13
+ c as useStoryblokServerRichText
8
14
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./server-component.js"),t=require("../core/create-storyblok-richtext.js"),r=t.createStoryblokRichText(e);exports.StoryblokServerRichText=r;
@@ -0,0 +1,6 @@
1
+ import o from "./server-component.mjs";
2
+ import { createStoryblokRichText as r } from "../core/create-storyblok-richtext.mjs";
3
+ const m = r(o);
4
+ export {
5
+ m as StoryblokServerRichText
6
+ };
package/dist/ssr.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { apiPlugin } from '@storyblok/js';
2
2
  import { ArrayFn } from '@storyblok/js';
3
- import { asTag } from '@storyblok/js';
4
3
  import { AsyncFn } from '@storyblok/js';
5
- import { BlockTypes } from '@storyblok/js';
6
- import { ComponentBlok } from '@storyblok/js';
4
+ import { buildStoryblokImage } from '@storyblok/richtext';
5
+ import { ComponentPropsWithoutRef } from 'react';
6
+ import { ComponentType } from 'react';
7
7
  import { default as default_2 } from 'react';
8
8
  import { ForwardRefExoticComponent } from 'react';
9
9
  import { ISbAlternateObject } from '@storyblok/js';
@@ -23,41 +23,42 @@ import { ISbStoryData } from '@storyblok/js';
23
23
  import { ISbStoryParams } from '@storyblok/js';
24
24
  import { ISbThrottle } from '@storyblok/js';
25
25
  import { loadStoryblokBridge } from '@storyblok/js';
26
- import { MarkTypes } from '@storyblok/js';
27
26
  import { ReactNode } from 'react';
28
27
  import { RefAttributes } from 'react';
29
28
  import { registerStoryblokBridge } from '@storyblok/js';
30
- import { renderRichText } from '@storyblok/js';
31
- import { richTextResolver } from '@storyblok/js';
29
+ import { renderRichText } from '@storyblok/richtext';
32
30
  import { SbBlokData } from '@storyblok/js';
33
31
  import { SbBlokKeyDataTypes } from '@storyblok/js';
32
+ import { SbRichTextDoc } from '@storyblok/richtext';
33
+ import { SbRichTextElement } from '@storyblok/richtext';
34
+ import { SbRichTextElementByType } from '@storyblok/richtext';
35
+ import { SbRichTextImageOptions } from '@storyblok/richtext';
36
+ import { SbRichTextInput } from '@storyblok/richtext';
37
+ import { SbRichTextMark } from '@storyblok/richtext';
38
+ import { SbRichTextNode } from '@storyblok/richtext';
39
+ import { SbRichTextProps } from '@storyblok/richtext';
40
+ import { SbRichTextRenderContext } from '@storyblok/richtext';
41
+ import { SbRichTextRendererMap } from '@storyblok/richtext';
34
42
  import { SbSDKOptions } from '@storyblok/js';
43
+ import { splitTableRows } from '@storyblok/richtext';
35
44
  import { StoryblokBridgeConfigV2 } from '@storyblok/js';
36
45
  import { StoryblokBridgeV2 } from '@storyblok/js';
37
46
  import { StoryblokClient } from '@storyblok/js';
38
47
  import { StoryblokComponentType } from '@storyblok/js';
39
48
  import { storyblokEditable } from '@storyblok/js';
40
- import { StoryblokRichTextDocumentNode } from '@storyblok/richtext';
41
- import { StoryblokRichTextImageOptimizationOptions } from '@storyblok/js';
42
- import { StoryblokRichTextNode } from '@storyblok/js';
43
- import { StoryblokRichTextNode as StoryblokRichTextNode_2 } from '@storyblok/richtext';
44
- import { StoryblokRichTextNodeTypes } from '@storyblok/js';
45
- import { StoryblokRichTextOptions } from '@storyblok/js';
46
- import { StoryblokRichTextOptions as StoryblokRichTextOptions_2 } from '@storyblok/richtext';
47
- import { TextTypes } from '@storyblok/js';
48
49
  import { useStoryblokBridge } from '@storyblok/js';
49
50
 
50
51
  export { apiPlugin }
51
52
 
52
53
  export { ArrayFn }
53
54
 
54
- export { asTag }
55
-
56
55
  export { AsyncFn }
57
56
 
58
- export { BlockTypes }
57
+ export { buildStoryblokImage }
58
+
59
+ export declare function createRichTextRenderer(options: SbReactRichTextRenderContext): (document: SbRichTextInput) => ReactNode | null;
59
60
 
60
- export { ComponentBlok }
61
+ declare type DivProps = Omit<ComponentPropsWithoutRef<'div'>, 'children'>;
61
62
 
62
63
  export declare const getComponent: (componentKey: string) => React.ElementType | false;
63
64
 
@@ -99,14 +100,10 @@ export { ISbThrottle }
99
100
 
100
101
  export { loadStoryblokBridge }
101
102
 
102
- export { MarkTypes }
103
-
104
103
  export { registerStoryblokBridge }
105
104
 
106
105
  export { renderRichText }
107
106
 
108
- export { richTextResolver }
109
-
110
107
  export { SbBlokData }
111
108
 
112
109
  export { SbBlokKeyDataTypes }
@@ -115,12 +112,47 @@ export declare interface SbReactComponentsMap {
115
112
  [key: string]: default_2.ElementType;
116
113
  }
117
114
 
115
+ declare type SbReactRichTextComponent<T extends SbRichTextElement> = ComponentType<SbReactRichTextProps<T>>;
116
+
117
+ export declare type SbReactRichTextComponentMap = {
118
+ [K in SbRichTextElement]?: SbReactRichTextComponent<K>;
119
+ };
120
+
121
+ /**
122
+ * Props type for React richtext node/mark components.
123
+ * Similar to SbRichTextProps but uses ReactNode for children instead of string.
124
+ */
125
+ export declare type SbReactRichTextProps<T extends SbRichTextElement> = SbRichTextElementByType<SbReactRichTextRenderContext>[T] & {
126
+ children?: ReactNode;
127
+ };
128
+
129
+ export declare interface SbReactRichTextRenderContext {
130
+ optimizeImage?: boolean | SbRichTextImageOptions;
131
+ components?: SbReactRichTextComponentMap;
132
+ }
133
+
118
134
  export declare interface SbReactSDKOptions extends SbSDKOptions {
119
135
  components?: SbReactComponentsMap;
120
136
  enableFallbackComponent?: boolean;
121
137
  customFallbackComponent?: default_2.ElementType;
122
138
  }
123
139
 
140
+ export { SbRichTextDoc }
141
+
142
+ export { SbRichTextImageOptions }
143
+
144
+ export { SbRichTextMark }
145
+
146
+ export { SbRichTextNode }
147
+
148
+ export { SbRichTextProps }
149
+
150
+ declare type SbRichTextProps_2 = WrappedProps | UnwrappedProps;
151
+
152
+ export { SbRichTextRenderContext }
153
+
154
+ export { SbRichTextRendererMap }
155
+
124
156
  export { SbSDKOptions }
125
157
 
126
158
  declare interface SbServerComponentProps extends Omit<Record<string, unknown>, 'blok'> {
@@ -129,6 +161,8 @@ declare interface SbServerComponentProps extends Omit<Record<string, unknown>, '
129
161
 
130
162
  export declare const setComponents: (newComponentsMap: SbReactComponentsMap) => Map<string, React.ElementType>;
131
163
 
164
+ export { splitTableRows }
165
+
132
166
  export { StoryblokBridgeConfigV2 }
133
167
 
134
168
  export { StoryblokBridgeV2 }
@@ -147,22 +181,14 @@ export { storyblokEditable }
147
181
 
148
182
  export declare const storyblokInit: (pluginOptions?: SbReactSDKOptions) => (() => StoryblokClient);
149
183
 
150
- export { StoryblokRichTextImageOptimizationOptions }
151
-
152
- export { StoryblokRichTextNode }
153
-
154
- export { StoryblokRichTextNodeTypes }
155
-
156
- export { StoryblokRichTextOptions }
157
-
158
- export declare interface StoryblokRichTextProps {
159
- doc: StoryblokRichTextNode<default_2.ReactElement>;
160
- tiptapExtensions?: StoryblokRichTextOptions<default_2.ReactElement>['tiptapExtensions'];
184
+ export declare interface StoryblokRichTextProps extends SbReactRichTextRenderContext {
185
+ optimizeImage?: boolean | SbRichTextImageOptions;
186
+ document?: SbRichTextInput;
161
187
  }
162
188
 
163
189
  export declare const StoryblokServerComponent: ForwardRefExoticComponent<Omit<SbServerComponentProps, "ref"> & RefAttributes<HTMLElement>>;
164
190
 
165
- export declare const StoryblokServerRichText: default_2.ForwardRefExoticComponent<StoryblokRichTextProps & default_2.RefAttributes<HTMLDivElement>>;
191
+ export declare const StoryblokServerRichText: ({ document, optimizeImage, components, wrapper, ...rest }: SbRichTextProps_2) => ReactNode;
166
192
 
167
193
  /**
168
194
  * Shared server component for rendering Storyblok stories.
@@ -174,20 +200,22 @@ declare interface StoryblokServerStoryProps extends Omit<Record<string, unknown>
174
200
  story: ISbStoryData;
175
201
  }
176
202
 
177
- export { TextTypes }
178
-
179
203
  export declare type TUseStoryblokState = <T = void>(initialStory: ISbStoryData<T> | null, bridgeOptions?: StoryblokBridgeConfigV2) => ISbStoryData<T> | null;
180
204
 
205
+ declare type UnwrappedProps = StoryblokRichTextProps & {
206
+ wrapper: false;
207
+ };
208
+
181
209
  declare const useStoryblokApi: () => StoryblokClient;
182
210
  export { useStoryblokApi as getStoryblokApi }
183
211
  export { useStoryblokApi }
184
212
 
185
213
  export { useStoryblokBridge }
186
214
 
187
- export declare const useStoryblokServerRichText: (options: StoryblokRichTextOptions_2<React.ReactElement>) => {
188
- render: (node: StoryblokRichTextDocumentNode | StoryblokRichTextNode_2<ReactNode>) => ReactNode;
189
- };
190
-
191
215
  export declare const useStoryblokState: TUseStoryblokState;
192
216
 
217
+ declare type WrappedProps = StoryblokRichTextProps & DivProps & {
218
+ wrapper?: true;
219
+ };
220
+
193
221
  export { }
package/dist/ssr.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./core/init.js"),r=require("./core/use-storyblok-api.js"),n=require("./core/storyblok-component.js"),l=require("./core/use-storyblok-state.js"),e=require("@storyblok/js"),b=require("./server/richtext.js"),i=require("./server/server-component.js"),u=require("./server/server-story.js"),s=require("./server/server-storyblok-richtext-component.js"),t=require("./core/state.js");exports.storyblokInit=o.storyblokInit;exports.getStoryblokApi=r.getStoryblokApi;exports.useStoryblokApi=r.getStoryblokApi;exports.StoryblokComponent=n;exports.useStoryblokState=l.useStoryblokState;Object.defineProperty(exports,"BlockTypes",{enumerable:!0,get:()=>e.BlockTypes});Object.defineProperty(exports,"ComponentBlok",{enumerable:!0,get:()=>e.ComponentBlok});Object.defineProperty(exports,"MarkTypes",{enumerable:!0,get:()=>e.MarkTypes});Object.defineProperty(exports,"TextTypes",{enumerable:!0,get:()=>e.TextTypes});Object.defineProperty(exports,"apiPlugin",{enumerable:!0,get:()=>e.apiPlugin});Object.defineProperty(exports,"asTag",{enumerable:!0,get:()=>e.asTag});Object.defineProperty(exports,"loadStoryblokBridge",{enumerable:!0,get:()=>e.loadStoryblokBridge});Object.defineProperty(exports,"registerStoryblokBridge",{enumerable:!0,get:()=>e.registerStoryblokBridge});Object.defineProperty(exports,"renderRichText",{enumerable:!0,get:()=>e.renderRichText});Object.defineProperty(exports,"richTextResolver",{enumerable:!0,get:()=>e.richTextResolver});Object.defineProperty(exports,"storyblokEditable",{enumerable:!0,get:()=>e.storyblokEditable});Object.defineProperty(exports,"useStoryblokBridge",{enumerable:!0,get:()=>e.useStoryblokBridge});exports.useStoryblokServerRichText=b.useStoryblokServerRichText;exports.StoryblokServerComponent=i;exports.StoryblokServerStory=u;exports.StoryblokServerRichText=s;exports.getComponent=t.getComponent;exports.getCustomFallbackComponent=t.getCustomFallbackComponent;exports.getEnableFallbackComponent=t.getEnableFallbackComponent;exports.setComponents=t.setComponents;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./core/init.js"),o=require("./core/use-storyblok-api.js"),l=require("./core/storyblok-component.js"),i=require("./core/use-storyblok-state.js"),e=require("@storyblok/js"),b=require("./core/rich-text-renderer.js"),r=require("@storyblok/richtext"),u=require("./server/server-component.js"),s=require("./server/server-story.js"),y=require("./server/server-storyblok-richtext.js"),t=require("./core/state.js");exports.storyblokInit=n.storyblokInit;exports.getStoryblokApi=o.getStoryblokApi;exports.useStoryblokApi=o.getStoryblokApi;exports.StoryblokComponent=l;exports.useStoryblokState=i.useStoryblokState;Object.defineProperty(exports,"apiPlugin",{enumerable:!0,get:()=>e.apiPlugin});Object.defineProperty(exports,"loadStoryblokBridge",{enumerable:!0,get:()=>e.loadStoryblokBridge});Object.defineProperty(exports,"registerStoryblokBridge",{enumerable:!0,get:()=>e.registerStoryblokBridge});Object.defineProperty(exports,"storyblokEditable",{enumerable:!0,get:()=>e.storyblokEditable});Object.defineProperty(exports,"useStoryblokBridge",{enumerable:!0,get:()=>e.useStoryblokBridge});exports.createRichTextRenderer=b.createRichTextRenderer;Object.defineProperty(exports,"buildStoryblokImage",{enumerable:!0,get:()=>r.buildStoryblokImage});Object.defineProperty(exports,"renderRichText",{enumerable:!0,get:()=>r.renderRichText});Object.defineProperty(exports,"splitTableRows",{enumerable:!0,get:()=>r.splitTableRows});exports.StoryblokServerComponent=u;exports.StoryblokServerStory=s;exports.StoryblokServerRichText=y.StoryblokServerRichText;exports.getComponent=t.getComponent;exports.getCustomFallbackComponent=t.getCustomFallbackComponent;exports.getEnableFallbackComponent=t.getEnableFallbackComponent;exports.setComponents=t.setComponents;
package/dist/ssr.mjs CHANGED
@@ -1,37 +1,34 @@
1
1
  import { storyblokInit as r } from "./core/init.mjs";
2
2
  import { getStoryblokApi as l, getStoryblokApi as p } from "./core/use-storyblok-api.mjs";
3
- import { default as s } from "./core/storyblok-component.mjs";
4
- import { useStoryblokState as b } from "./core/use-storyblok-state.mjs";
5
- import { BlockTypes as n, ComponentBlok as y, MarkTypes as S, TextTypes as i, apiPlugin as x, asTag as f, loadStoryblokBridge as g, registerStoryblokBridge as d, renderRichText as u, richTextResolver as T, storyblokEditable as C, useStoryblokBridge as c } from "@storyblok/js";
6
- import { useStoryblokServerRichText as B } from "./server/richtext.mjs";
7
- import { default as R } from "./server/server-component.mjs";
8
- import { default as E } from "./server/server-story.mjs";
9
- import { default as I } from "./server/server-storyblok-richtext-component.mjs";
10
- import { getComponent as P, getCustomFallbackComponent as j, getEnableFallbackComponent as q, setComponents as w } from "./core/state.mjs";
3
+ import { default as a } from "./core/storyblok-component.mjs";
4
+ import { useStoryblokState as n } from "./core/use-storyblok-state.mjs";
5
+ import { apiPlugin as i, loadStoryblokBridge as k, registerStoryblokBridge as s, storyblokEditable as y, useStoryblokBridge as f } from "@storyblok/js";
6
+ import { createRichTextRenderer as d } from "./core/rich-text-renderer.mjs";
7
+ import { buildStoryblokImage as u, renderRichText as C, splitTableRows as c } from "@storyblok/richtext";
8
+ import { default as T } from "./server/server-component.mjs";
9
+ import { default as v } from "./server/server-story.mjs";
10
+ import { StoryblokServerRichText as B } from "./server/server-storyblok-richtext.mjs";
11
+ import { getComponent as F, getCustomFallbackComponent as I, getEnableFallbackComponent as w, setComponents as P } from "./core/state.mjs";
11
12
  export {
12
- n as BlockTypes,
13
- y as ComponentBlok,
14
- S as MarkTypes,
15
- s as StoryblokComponent,
16
- R as StoryblokServerComponent,
17
- I as StoryblokServerRichText,
18
- E as StoryblokServerStory,
19
- i as TextTypes,
20
- x as apiPlugin,
21
- f as asTag,
22
- P as getComponent,
23
- j as getCustomFallbackComponent,
24
- q as getEnableFallbackComponent,
13
+ a as StoryblokComponent,
14
+ T as StoryblokServerComponent,
15
+ B as StoryblokServerRichText,
16
+ v as StoryblokServerStory,
17
+ i as apiPlugin,
18
+ u as buildStoryblokImage,
19
+ d as createRichTextRenderer,
20
+ F as getComponent,
21
+ I as getCustomFallbackComponent,
22
+ w as getEnableFallbackComponent,
25
23
  l as getStoryblokApi,
26
- g as loadStoryblokBridge,
27
- d as registerStoryblokBridge,
28
- u as renderRichText,
29
- T as richTextResolver,
30
- w as setComponents,
31
- C as storyblokEditable,
24
+ k as loadStoryblokBridge,
25
+ s as registerStoryblokBridge,
26
+ C as renderRichText,
27
+ P as setComponents,
28
+ c as splitTableRows,
29
+ y as storyblokEditable,
32
30
  r as storyblokInit,
33
31
  p as useStoryblokApi,
34
- c as useStoryblokBridge,
35
- B as useStoryblokServerRichText,
36
- b as useStoryblokState
32
+ f as useStoryblokBridge,
33
+ n as useStoryblokState
37
34
  };
@@ -1 +1 @@
1
- "use strict";const n=require("react/jsx-runtime"),i=require("react"),u=require("./utils.js"),l=require("./richtext.js"),x=i.forwardRef(({doc:t,tiptapExtensions:e},r)=>{const{render:o}=l.useStoryblokRichText({tiptapExtensions:e}),s=o(t),c=u.convertAttributesInElement(s);return n.jsx("div",{ref:r,children:c})});module.exports=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./core/storyblok-component.js"),e=require("./core/create-storyblok-richtext.js"),o=e.createStoryblokRichText(t);exports.StoryblokRichText=o;
@@ -1,15 +1,6 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { forwardRef as c } from "react";
3
- import { convertAttributesInElement as f } from "./utils.mjs";
4
- import { useStoryblokRichText as s } from "./richtext.mjs";
5
- const h = c(
6
- ({ doc: t, tiptapExtensions: r }, o) => {
7
- const { render: e } = s({
8
- tiptapExtensions: r
9
- }), m = e(t), n = f(m);
10
- return /* @__PURE__ */ i("div", { ref: o, children: n });
11
- }
12
- );
1
+ import o from "./core/storyblok-component.mjs";
2
+ import { createStoryblokRichText as t } from "./core/create-storyblok-richtext.mjs";
3
+ const m = t(o);
13
4
  export {
14
- h as default
5
+ m as StoryblokRichText
15
6
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@storyblok/react",
3
3
  "type": "module",
4
- "version": "6.1.11",
4
+ "version": "7.0.0",
5
5
  "private": false,
6
6
  "description": "SDK to integrate Storyblok into your project using React.",
7
7
  "author": "Storyblok",
@@ -49,7 +49,8 @@
49
49
  }
50
50
  },
51
51
  "dependencies": {
52
- "@storyblok/js": "5.1.10"
52
+ "@storyblok/js": "6.0.0",
53
+ "@storyblok/richtext": "5.0.0"
53
54
  },
54
55
  "devDependencies": {
55
56
  "@babel/core": "^7.27.1",
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),o=require("@storyblok/js");function m(c,{isServerContext:n=!1}={}){return function(r){const{tiptapExtensions:i,...s}=r,a={...n?r:{},renderFn:t.createElement,textFn:e=>t.createElement(t.Fragment,{key:Math.random().toString(36).substring(2,15)},e),keyedResolvers:!0,...n?{}:s,tiptapExtensions:{blok:o.ComponentBlok.configure({renderComponent:(e,u)=>{const l=u||(n?`fallback-key-${JSON.stringify(e)}`:void 0);return t.createElement(c,{blok:e,key:l})}}),...i}};return o.richTextResolver(a)}}exports.createRichTextHook=m;
@@ -1,33 +0,0 @@
1
- import t from "react";
2
- import { ComponentBlok as l, richTextResolver as p } from "@storyblok/js";
3
- function d(o, {
4
- isServerContext: n = !1
5
- } = {}) {
6
- return function(r) {
7
- const { tiptapExtensions: c, ...i } = r, s = {
8
- ...n ? r : {},
9
- renderFn: t.createElement,
10
- textFn: (e) => t.createElement(t.Fragment, {
11
- key: Math.random().toString(36).substring(2, 15)
12
- }, e),
13
- keyedResolvers: !0,
14
- ...n ? {} : i,
15
- tiptapExtensions: {
16
- blok: l.configure({
17
- renderComponent: (e, a) => {
18
- const m = a || (n ? `fallback-key-${JSON.stringify(e)}` : void 0);
19
- return t.createElement(o, {
20
- blok: e,
21
- key: m
22
- });
23
- }
24
- }),
25
- ...c
26
- }
27
- };
28
- return p(s);
29
- };
30
- }
31
- export {
32
- d as createRichTextHook
33
- };
@@ -1 +0,0 @@
1
- "use strict";const c=require("react/jsx-runtime"),i=require("react"),u=require("../utils.js"),l=require("./richtext.js"),x=i.forwardRef(({doc:t,tiptapExtensions:e},r)=>{if(!t)return null;const{render:n}=l.useStoryblokServerRichText({tiptapExtensions:e}),s=n(t),o=u.convertAttributesInElement(s);return c.jsx("div",{ref:r,children:o})});module.exports=x;
@@ -1,17 +0,0 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { forwardRef as f } from "react";
3
- import { convertAttributesInElement as l } from "../utils.mjs";
4
- import { useStoryblokServerRichText as s } from "./richtext.mjs";
5
- const a = f(
6
- ({ doc: r, tiptapExtensions: t }, o) => {
7
- if (!r)
8
- return null;
9
- const { render: e } = s({
10
- tiptapExtensions: t
11
- }), m = e(r), n = l(m);
12
- return /* @__PURE__ */ i("div", { ref: o, children: n });
13
- }
14
- );
15
- export {
16
- a as default
17
- };