@starlightcms/react-sdk 0.1.1 → 0.2.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.
Files changed (63) hide show
  1. package/dist/cjs/VisualContent/blocks/HTML.d.ts +5 -0
  2. package/dist/cjs/VisualContent/blocks/HTML.d.ts.map +1 -0
  3. package/dist/cjs/VisualContent/blocks/HTML.js +11 -0
  4. package/dist/cjs/VisualContent/blocks/HTML.js.map +1 -0
  5. package/dist/cjs/VisualContent/blocks/Header.d.ts +3 -3
  6. package/dist/cjs/VisualContent/blocks/Header.d.ts.map +1 -1
  7. package/dist/cjs/VisualContent/blocks/Header.js +6 -37
  8. package/dist/cjs/VisualContent/blocks/Header.js.map +1 -1
  9. package/dist/cjs/VisualContent/blocks/Image.d.ts +6 -3
  10. package/dist/cjs/VisualContent/blocks/Image.d.ts.map +1 -1
  11. package/dist/cjs/VisualContent/blocks/Image.js +19 -3
  12. package/dist/cjs/VisualContent/blocks/Image.js.map +1 -1
  13. package/dist/cjs/VisualContent/blocks/List.d.ts +5 -0
  14. package/dist/cjs/VisualContent/blocks/List.d.ts.map +1 -0
  15. package/dist/cjs/VisualContent/blocks/List.js +18 -0
  16. package/dist/cjs/VisualContent/blocks/List.js.map +1 -0
  17. package/dist/cjs/VisualContent/blocks/Paragraph.d.ts +3 -3
  18. package/dist/cjs/VisualContent/blocks/Paragraph.d.ts.map +1 -1
  19. package/dist/cjs/VisualContent/blocks/Paragraph.js +5 -21
  20. package/dist/cjs/VisualContent/blocks/Paragraph.js.map +1 -1
  21. package/dist/cjs/VisualContent/blocks/Quote.d.ts +3 -3
  22. package/dist/cjs/VisualContent/blocks/Quote.d.ts.map +1 -1
  23. package/dist/cjs/VisualContent/blocks/Quote.js +4 -20
  24. package/dist/cjs/VisualContent/blocks/Quote.js.map +1 -1
  25. package/dist/cjs/VisualContent/index.d.ts +10 -3
  26. package/dist/cjs/VisualContent/index.d.ts.map +1 -1
  27. package/dist/cjs/VisualContent/index.js +17 -4
  28. package/dist/cjs/VisualContent/index.js.map +1 -1
  29. package/dist/cjs/VisualContent/types.d.ts +3 -1
  30. package/dist/cjs/VisualContent/types.d.ts.map +1 -1
  31. package/dist/cjs/VisualContent/types.js.map +1 -1
  32. package/dist/esm/VisualContent/blocks/HTML.d.ts +5 -0
  33. package/dist/esm/VisualContent/blocks/HTML.d.ts.map +1 -0
  34. package/dist/esm/VisualContent/blocks/HTML.js +6 -0
  35. package/dist/esm/VisualContent/blocks/HTML.js.map +1 -0
  36. package/dist/esm/VisualContent/blocks/Header.d.ts +3 -3
  37. package/dist/esm/VisualContent/blocks/Header.d.ts.map +1 -1
  38. package/dist/esm/VisualContent/blocks/Header.js +4 -19
  39. package/dist/esm/VisualContent/blocks/Header.js.map +1 -1
  40. package/dist/esm/VisualContent/blocks/Image.d.ts +6 -3
  41. package/dist/esm/VisualContent/blocks/Image.d.ts.map +1 -1
  42. package/dist/esm/VisualContent/blocks/Image.js +20 -4
  43. package/dist/esm/VisualContent/blocks/Image.js.map +1 -1
  44. package/dist/esm/VisualContent/blocks/List.d.ts +5 -0
  45. package/dist/esm/VisualContent/blocks/List.d.ts.map +1 -0
  46. package/dist/esm/VisualContent/blocks/List.js +13 -0
  47. package/dist/esm/VisualContent/blocks/List.js.map +1 -0
  48. package/dist/esm/VisualContent/blocks/Paragraph.d.ts +3 -3
  49. package/dist/esm/VisualContent/blocks/Paragraph.d.ts.map +1 -1
  50. package/dist/esm/VisualContent/blocks/Paragraph.js +3 -3
  51. package/dist/esm/VisualContent/blocks/Paragraph.js.map +1 -1
  52. package/dist/esm/VisualContent/blocks/Quote.d.ts +3 -3
  53. package/dist/esm/VisualContent/blocks/Quote.d.ts.map +1 -1
  54. package/dist/esm/VisualContent/blocks/Quote.js +2 -2
  55. package/dist/esm/VisualContent/blocks/Quote.js.map +1 -1
  56. package/dist/esm/VisualContent/index.d.ts +10 -3
  57. package/dist/esm/VisualContent/index.d.ts.map +1 -1
  58. package/dist/esm/VisualContent/index.js +12 -5
  59. package/dist/esm/VisualContent/index.js.map +1 -1
  60. package/dist/esm/VisualContent/types.d.ts +3 -1
  61. package/dist/esm/VisualContent/types.d.ts.map +1 -1
  62. package/dist/esm/VisualContent/types.js.map +1 -1
  63. package/package.json +7 -4
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { HTMLBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
+ declare const HTML: FC<VisualDataBlock<HTMLBlock>>;
4
+ export default HTML;
5
+ //# sourceMappingURL=HTML.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTML.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/HTML.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEjE,QAAA,MAAM,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAOxC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const HTML = ({ data }) => {
8
+ return (react_1.default.createElement("div", { className: "sl-content-block sl-html test", dangerouslySetInnerHTML: { __html: data.html } }));
9
+ };
10
+ exports.default = HTML;
11
+ //# sourceMappingURL=HTML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTML.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/HTML.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AAGjC,MAAM,IAAI,GAAmC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACxD,OAAO,CACL,uCACE,SAAS,EAAC,+BAA+B,EACzC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAC9C,CACH,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,IAAI,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { HTMLBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst HTML: FC<VisualDataBlock<HTMLBlock>> = ({ data }) => {\n return (\n <div\n className=\"sl-content-block sl-html test\"\n dangerouslySetInnerHTML={{ __html: data.html }}\n />\n )\n}\n\nexport default HTML\n"]}
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { HeaderBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<HeaderBlock>>;
4
- export default _default;
3
+ declare const Header: FC<VisualDataBlock<HeaderBlock>>;
4
+ export default Header;
5
5
  //# sourceMappingURL=Header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAcnE,wBAA2B"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEnE,QAAA,MAAM,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAS5C,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,43 +1,12 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
20
- };
21
- var __rest = (this && this.__rest) || function (s, e) {
22
- var t = {};
23
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
24
- t[p] = s[p];
25
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
26
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
27
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
28
- t[p[i]] = s[p[i]];
29
- }
30
- return t;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
31
4
  };
32
5
  Object.defineProperty(exports, "__esModule", { value: true });
33
- const react_1 = __importStar(require("react"));
6
+ const react_1 = __importDefault(require("react"));
34
7
  const Header = ({ data }) => {
35
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
- const HeaderComponent = (_a) => {
37
- var { children } = _a, props = __rest(_a, ["children"]);
38
- return (0, react_1.createElement)(`h${data.level}`, props, children);
39
- };
40
- return (react_1.default.createElement(HeaderComponent, { className: "sl-content-block sl-header" }, data.text));
8
+ const HeaderComponent = `h${data.level}`;
9
+ return (react_1.default.createElement(HeaderComponent, { className: "sl-content-block sl-header", dangerouslySetInnerHTML: { __html: data.text } }));
41
10
  };
42
- exports.default = (0, react_1.memo)(Header);
11
+ exports.default = Header;
43
12
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsD;AAGtD,MAAM,MAAM,GAAqC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5D,8DAA8D;IAC9D,MAAM,eAAe,GAAY,CAAC,EAAsB,EAAE,EAAE;YAA1B,EAAE,QAAQ,OAAY,EAAP,KAAK,cAApB,YAAsB,CAAF;QACpD,OAAA,IAAA,qBAAa,EAAC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;KAAA,CAAA;IAElD,OAAO,CACL,8BAAC,eAAe,IAAC,SAAS,EAAC,4BAA4B,IACpD,IAAI,CAAC,IAAI,CACM,CACnB,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,IAAA,YAAI,EAAC,MAAM,CAAC,CAAA","sourcesContent":["import React, { createElement, FC, memo } from 'react'\nimport { HeaderBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Header: FC<VisualDataBlock<HeaderBlock>> = ({ data }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const HeaderComponent: FC<any> = ({ children, ...props }) =>\n createElement(`h${data.level}`, props, children)\n\n return (\n <HeaderComponent className=\"sl-content-block sl-header\">\n {data.text}\n </HeaderComponent>\n )\n}\n\nexport default memo(Header)\n"]}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AAGjC,MAAM,MAAM,GAAqC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5D,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,KAAK,EAAU,CAAA;IAEhD,OAAO,CACL,8BAAC,eAAe,IACd,SAAS,EAAC,4BAA4B,EACtC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAC9C,CACH,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,MAAM,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { HeaderBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Header: FC<VisualDataBlock<HeaderBlock>> = ({ data }) => {\n const HeaderComponent = `h${data.level}` as 'h1'\n\n return (\n <HeaderComponent\n className=\"sl-content-block sl-header\"\n dangerouslySetInnerHTML={{ __html: data.text }}\n />\n )\n}\n\nexport default Header\n"]}
@@ -1,5 +1,8 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { ImageBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<ImageBlock>>;
4
- export default _default;
3
+ declare type ImageOptions = {
4
+ sizes?: string;
5
+ };
6
+ declare const Image: FC<VisualDataBlock<ImageBlock> & ImageOptions>;
7
+ export default Image;
5
8
  //# sourceMappingURL=Image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAMlE,wBAA0B"}
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,aAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,QAAA,MAAM,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,YAAY,CA8CzD,CAAA;AAED,eAAe,KAAK,CAAA"}
@@ -20,8 +20,24 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  const react_1 = __importStar(require("react"));
23
- const Image = ({ data }) => {
24
- return react_1.default.createElement("img", { className: "sl-content-block sl-image", src: data.url, alt: "" });
23
+ const Image = ({ data, sizes = '(max-width: 480px) 90vw, 70vw', }) => {
24
+ const { url, files, alt = '', caption, href } = data;
25
+ const [target, setTarget] = (0, react_1.useState)('_self');
26
+ const [srcSet, setSrcSet] = (0, react_1.useState)('');
27
+ (0, react_1.useEffect)(() => {
28
+ if (!href)
29
+ return;
30
+ setTarget(new URL(href).origin === window.location.origin ? '_self' : '_blank');
31
+ }, [href]);
32
+ (0, react_1.useEffect)(() => {
33
+ if (!files || !files.length)
34
+ return;
35
+ setSrcSet(files.map((file) => `${file.url} ${file.width}w`).join(', '));
36
+ }, [files]);
37
+ return (react_1.default.createElement("figure", null,
38
+ href ? (react_1.default.createElement("a", { href: href, target: target },
39
+ react_1.default.createElement("img", { className: "sl-content-block sl-image", src: url, alt: alt, srcSet: srcSet, sizes: srcSet ? sizes : undefined }))) : (react_1.default.createElement("img", { className: "sl-content-block sl-image", src: url, alt: alt, srcSet: srcSet, sizes: srcSet ? sizes : undefined })),
40
+ caption && react_1.default.createElement("figcaption", { dangerouslySetInnerHTML: { __html: caption } })));
25
41
  };
26
- exports.default = (0, react_1.memo)(Image);
42
+ exports.default = Image;
27
43
  //# sourceMappingURL=Image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAGvC,MAAM,KAAK,GAAoC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1D,OAAO,uCAAK,SAAS,EAAC,2BAA2B,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC,EAAE,GAAG,CAAA;AAC5E,CAAC,CAAA;AAED,kBAAe,IAAA,YAAI,EAAC,KAAK,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { ImageBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Image: FC<VisualDataBlock<ImageBlock>> = ({ data }) => {\n return <img className=\"sl-content-block sl-image\" src={data.url} alt=\"\" />\n}\n\nexport default memo(Image)\n"]}
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAsD;AAOtD,MAAM,KAAK,GAAmD,CAAC,EAC7D,IAAI,EACJ,KAAK,GAAG,+BAA+B,GACxC,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,OAAO,CAAC,CAAA;IAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IAExC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,SAAS,CACP,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CACrE,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAM;QAEnC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACzE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,CACL;QACG,IAAI,CAAC,CAAC,CAAC,CACN,qCAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;YAC3B,uCACE,SAAS,EAAC,2BAA2B,EACrC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GACjC,CACA,CACL,CAAC,CAAC,CAAC,CACF,uCACE,SAAS,EAAC,2BAA2B,EACrC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GACjC,CACH;QACA,OAAO,IAAI,8CAAY,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAI,CACjE,CACV,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,KAAK,CAAA","sourcesContent":["import React, { FC, useEffect, useState } from 'react'\nimport { ImageBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\ntype ImageOptions = {\n sizes?: string\n}\n\nconst Image: FC<VisualDataBlock<ImageBlock> & ImageOptions> = ({\n data,\n sizes = '(max-width: 480px) 90vw, 70vw',\n}) => {\n const { url, files, alt = '', caption, href } = data\n const [target, setTarget] = useState('_self')\n const [srcSet, setSrcSet] = useState('')\n\n useEffect(() => {\n if (!href) return\n\n setTarget(\n new URL(href).origin === window.location.origin ? '_self' : '_blank'\n )\n }, [href])\n\n useEffect(() => {\n if (!files || !files.length) return\n\n setSrcSet(files.map((file) => `${file.url} ${file.width}w`).join(', '))\n }, [files])\n\n return (\n <figure>\n {href ? (\n <a href={href} target={target}>\n <img\n className=\"sl-content-block sl-image\"\n src={url}\n alt={alt}\n srcSet={srcSet}\n sizes={srcSet ? sizes : undefined}\n />\n </a>\n ) : (\n <img\n className=\"sl-content-block sl-image\"\n src={url}\n alt={alt}\n srcSet={srcSet}\n sizes={srcSet ? sizes : undefined}\n />\n )}\n {caption && <figcaption dangerouslySetInnerHTML={{ __html: caption }} />}\n </figure>\n )\n}\n\nexport default Image\n"]}
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { ListBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
+ declare const List: FC<VisualDataBlock<ListBlock>>;
4
+ export default List;
5
+ //# sourceMappingURL=List.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/List.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAY,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAuB3E,QAAA,MAAM,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAUxC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const react_1 = __importDefault(require("react"));
7
+ const SubList = ({ item, Wrapper }) => {
8
+ return (react_1.default.createElement("li", null,
9
+ react_1.default.createElement("span", { dangerouslySetInnerHTML: { __html: item.content } }),
10
+ item.items && item.items.length ? (react_1.default.createElement(Wrapper, null, item.items &&
11
+ item.items.map((subItem, index) => (react_1.default.createElement(SubList, { key: index, item: subItem, Wrapper: Wrapper }))))) : null));
12
+ };
13
+ const List = ({ data }) => {
14
+ const ListWrapper = data.style === 'ordered' ? 'ol' : 'ul';
15
+ return (react_1.default.createElement(ListWrapper, { className: "sl-content-block sl-list sl-list__root" }, data.items.map((item, index) => (react_1.default.createElement(SubList, { key: index, item: item, Wrapper: ListWrapper })))));
16
+ };
17
+ exports.default = List;
18
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/List.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AAQjC,MAAM,OAAO,GAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACtD,OAAO,CACL;QACE,wCAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAI;QAC1D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACjC,8BAAC,OAAO,QACL,IAAI,CAAC,KAAK;YACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,8BAAC,OAAO,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CACzD,CAAC,CACI,CACX,CAAC,CAAC,CAAC,IAAI,CACL,CACN,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAmC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAE1D,OAAO,CACL,8BAAC,WAAW,IAAC,SAAS,EAAC,wCAAwC,IAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,8BAAC,OAAO,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAI,CAC1D,CAAC,CACU,CACf,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,IAAI,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { ListBlock, ListItem, VisualDataBlock } from '@starlightcms/js-sdk'\n\ntype SubListProps = {\n item: ListItem\n Wrapper: 'ul' | 'ol'\n}\n\nconst SubList: FC<SubListProps> = ({ item, Wrapper }) => {\n return (\n <li>\n <span dangerouslySetInnerHTML={{ __html: item.content }} />\n {item.items && item.items.length ? (\n <Wrapper>\n {item.items &&\n item.items.map((subItem, index) => (\n <SubList key={index} item={subItem} Wrapper={Wrapper} />\n ))}\n </Wrapper>\n ) : null}\n </li>\n )\n}\n\nconst List: FC<VisualDataBlock<ListBlock>> = ({ data }) => {\n const ListWrapper = data.style === 'ordered' ? 'ol' : 'ul'\n\n return (\n <ListWrapper className=\"sl-content-block sl-list sl-list__root\">\n {data.items.map((item, index) => (\n <SubList key={index} item={item} Wrapper={ListWrapper} />\n ))}\n </ListWrapper>\n )\n}\n\nexport default List\n"]}
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { ParagraphBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<ParagraphBlock>>;
4
- export default _default;
3
+ declare const Paragraph: FC<VisualDataBlock<ParagraphBlock>>;
4
+ export default Paragraph;
5
5
  //# sourceMappingURL=Paragraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAMtE,wBAA8B"}
1
+ {"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtE,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAOlD,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -1,27 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
4
  };
21
5
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const react_1 = __importStar(require("react"));
6
+ const react_1 = __importDefault(require("react"));
23
7
  const Paragraph = ({ data }) => {
24
- return react_1.default.createElement("p", { className: "sl-content-block sl-paragraph" }, data.text);
8
+ return (react_1.default.createElement("p", { className: "sl-content-block sl-paragraph", dangerouslySetInnerHTML: { __html: data.text } }));
25
9
  };
26
- exports.default = (0, react_1.memo)(Paragraph);
10
+ exports.default = Paragraph;
27
11
  //# sourceMappingURL=Paragraph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paragraph.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAGvC,MAAM,SAAS,GAAwC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClE,OAAO,qCAAG,SAAS,EAAC,+BAA+B,IAAE,IAAI,CAAC,IAAI,CAAK,CAAA;AACrE,CAAC,CAAA;AAED,kBAAe,IAAA,YAAI,EAAC,SAAS,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { ParagraphBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Paragraph: FC<VisualDataBlock<ParagraphBlock>> = ({ data }) => {\n return <p className=\"sl-content-block sl-paragraph\">{data.text}</p>\n}\n\nexport default memo(Paragraph)\n"]}
1
+ {"version":3,"file":"Paragraph.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AAGjC,MAAM,SAAS,GAAwC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClE,OAAO,CACL,qCACE,SAAS,EAAC,+BAA+B,EACzC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAC9C,CACH,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,SAAS,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { ParagraphBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Paragraph: FC<VisualDataBlock<ParagraphBlock>> = ({ data }) => {\n return (\n <p\n className=\"sl-content-block sl-paragraph\"\n dangerouslySetInnerHTML={{ __html: data.text }}\n />\n )\n}\n\nexport default Paragraph\n"]}
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { QuoteBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<QuoteBlock>>;
4
- export default _default;
3
+ declare const Quote: FC<VisualDataBlock<QuoteBlock>>;
4
+ export default Quote;
5
5
  //# sourceMappingURL=Quote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Quote.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAQlE,wBAA0B"}
1
+ {"version":3,"file":"Quote.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,QAAA,MAAM,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAI1C,CAAA;AAED,eAAe,KAAK,CAAA"}
@@ -1,27 +1,11 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
- Object.defineProperty(o, "default", { enumerable: true, value: v });
11
- }) : function(o, v) {
12
- o["default"] = v;
13
- });
14
- var __importStar = (this && this.__importStar) || function (mod) {
15
- if (mod && mod.__esModule) return mod;
16
- var result = {};
17
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
- __setModuleDefault(result, mod);
19
- return result;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
4
  };
21
5
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const react_1 = __importStar(require("react"));
6
+ const react_1 = __importDefault(require("react"));
23
7
  const Quote = ({ data }) => {
24
8
  return (react_1.default.createElement("blockquote", { className: "sl-content-block sl-quote" }, data.text));
25
9
  };
26
- exports.default = (0, react_1.memo)(Quote);
10
+ exports.default = Quote;
27
11
  //# sourceMappingURL=Quote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAGvC,MAAM,KAAK,GAAoC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1D,OAAO,CACL,8CAAY,SAAS,EAAC,2BAA2B,IAAE,IAAI,CAAC,IAAI,CAAc,CAC3E,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,IAAA,YAAI,EAAC,KAAK,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { QuoteBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Quote: FC<VisualDataBlock<QuoteBlock>> = ({ data }) => {\n return (\n <blockquote className=\"sl-content-block sl-quote\">{data.text}</blockquote>\n )\n}\n\nexport default memo(Quote)\n"]}
1
+ {"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAiC;AAGjC,MAAM,KAAK,GAAoC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1D,OAAO,CACL,8CAAY,SAAS,EAAC,2BAA2B,IAAE,IAAI,CAAC,IAAI,CAAc,CAC3E,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,KAAK,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { QuoteBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Quote: FC<VisualDataBlock<QuoteBlock>> = ({ data }) => {\n return (\n <blockquote className=\"sl-content-block sl-quote\">{data.text}</blockquote>\n )\n}\n\nexport default Quote\n"]}
@@ -1,5 +1,12 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { VisualContentProps } from './types';
3
- declare const _default: React.NamedExoticComponent<VisualContentProps>;
4
- export default _default;
3
+ import Paragraph from './blocks/Paragraph';
4
+ import Header from './blocks/Header';
5
+ import Quote from './blocks/Quote';
6
+ import Image from './blocks/Image';
7
+ import HTML from './blocks/HTML';
8
+ import List from './blocks/List';
9
+ declare const VisualContent: FC<VisualContentProps>;
10
+ export default VisualContent;
11
+ export { Paragraph, Header, Quote, Image, HTML, List };
5
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAmB,kBAAkB,EAAE,MAAM,SAAS,CAAA;;AAoC7D,wBAAkC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAW,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAmB,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAC1C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AACpC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,IAAI,MAAM,eAAe,CAAA;AAWhC,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA+BzC,CAAA;AAED,eAAe,aAAa,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA"}
@@ -22,26 +22,39 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.List = exports.HTML = exports.Image = exports.Quote = exports.Header = exports.Paragraph = void 0;
25
26
  const react_1 = __importStar(require("react"));
26
27
  const Paragraph_1 = __importDefault(require("./blocks/Paragraph"));
28
+ exports.Paragraph = Paragraph_1.default;
27
29
  const Header_1 = __importDefault(require("./blocks/Header"));
30
+ exports.Header = Header_1.default;
28
31
  const Quote_1 = __importDefault(require("./blocks/Quote"));
32
+ exports.Quote = Quote_1.default;
29
33
  const Image_1 = __importDefault(require("./blocks/Image"));
34
+ exports.Image = Image_1.default;
35
+ const HTML_1 = __importDefault(require("./blocks/HTML"));
36
+ exports.HTML = HTML_1.default;
37
+ const List_1 = __importDefault(require("./blocks/List"));
38
+ exports.List = List_1.default;
30
39
  const defaultComponents = {
31
40
  paragraph: Paragraph_1.default,
32
41
  header: Header_1.default,
33
42
  quote: Quote_1.default,
34
43
  image: Image_1.default,
44
+ raw: HTML_1.default,
45
+ list: List_1.default,
35
46
  };
36
47
  const VisualContent = ({ content, components = {}, }) => {
37
- const componentList = Object.assign({}, defaultComponents, components);
48
+ const componentList = (0, react_1.useMemo)(() => (Object.assign(Object.assign({}, defaultComponents), components)), [components]);
38
49
  if (!content) {
39
50
  return null;
40
51
  }
41
- return (react_1.default.createElement("div", { className: "sl-visual-content" }, content.blocks.map((block, index) => {
52
+ return (react_1.default.createElement("div", { className: "sl-visual-content" }, content.blocks.map((block) => {
42
53
  const Component = componentList[block.type];
43
- return (react_1.default.createElement(Component, { key: index, type: block.type, data: block.data }));
54
+ if (!Component)
55
+ return null;
56
+ return (react_1.default.createElement(Component, { key: block.id, id: block.id, type: block.type, data: block.data }));
44
57
  })));
45
58
  };
46
- exports.default = (0, react_1.memo)(VisualContent);
59
+ exports.default = VisualContent;
47
60
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAuC;AAEvC,mEAA0C;AAC1C,6DAAoC;AACpC,2DAAkC;AAClC,2DAAkC;AAElC,MAAM,iBAAiB,GAAoB;IACzC,SAAS,EAAE,mBAAS;IACpB,MAAM,EAAE,gBAAM;IACd,KAAK,EAAE,eAAK;IACZ,KAAK,EAAE,eAAK;CACb,CAAA;AAED,MAAM,aAAa,GAA2B,CAAC,EAC7C,OAAO,EACP,UAAU,GAAG,EAAE,GAChB,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAA;IAEtE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,uCAAK,SAAS,EAAC,mBAAmB,IAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,OAAO,CACL,8BAAC,SAAS,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAa,GAAI,CACvE,CAAA;IACH,CAAC,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,IAAA,YAAI,EAAC,aAAa,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { BlockComponents, VisualContentProps } from './types'\nimport Paragraph from './blocks/Paragraph'\nimport Header from './blocks/Header'\nimport Quote from './blocks/Quote'\nimport Image from './blocks/Image'\n\nconst defaultComponents: BlockComponents = {\n paragraph: Paragraph,\n header: Header,\n quote: Quote,\n image: Image,\n}\n\nconst VisualContent: FC<VisualContentProps> = ({\n content,\n components = {},\n}) => {\n const componentList = Object.assign({}, defaultComponents, components)\n\n if (!content) {\n return null\n }\n\n return (\n <div className=\"sl-visual-content\">\n {content.blocks.map((block, index) => {\n const Component = componentList[block.type]\n\n return (\n <Component key={index} type={block.type} data={block.data as never} />\n )\n })}\n </div>\n )\n}\n\nexport default memo(VisualContent)\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAE1C,mEAA0C;AAmDjC,oBAnDF,mBAAS,CAmDE;AAlDlB,6DAAoC;AAkDhB,iBAlDb,gBAAM,CAkDa;AAjD1B,2DAAkC;AAiDN,gBAjDrB,eAAK,CAiDqB;AAhDjC,2DAAkC;AAgDC,gBAhD5B,eAAK,CAgD4B;AA/CxC,yDAAgC;AA+CU,eA/CnC,cAAI,CA+CmC;AA9C9C,yDAAgC;AA8CgB,eA9CzC,cAAI,CA8CyC;AA5CpD,MAAM,iBAAiB,GAAoB;IACzC,SAAS,EAAE,mBAAS;IACpB,MAAM,EAAE,gBAAM;IACd,KAAK,EAAE,eAAK;IACZ,KAAK,EAAE,eAAK;IACZ,GAAG,EAAE,cAAI;IACT,IAAI,EAAE,cAAI;CACX,CAAA;AAED,MAAM,aAAa,GAA2B,CAAC,EAC7C,OAAO,EACP,UAAU,GAAG,EAAE,GAChB,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,IAAA,eAAO,EAC3B,GAAG,EAAE,CAAC,iCAAM,iBAAiB,GAAK,UAAU,EAAG,EAC/C,CAAC,UAAU,CAAC,CACb,CAAA;IAED,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,uCAAK,SAAS,EAAC,mBAAmB,IAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAE3B,OAAO,CACL,8BAAC,SAAS,IACR,GAAG,EAAE,KAAK,CAAC,EAAE,EACb,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,IAAa,GACzB,CACH,CAAA;IACH,CAAC,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,aAAa,CAAA","sourcesContent":["import React, { FC, useMemo } from 'react'\nimport { BlockComponents, VisualContentProps } from './types'\nimport Paragraph from './blocks/Paragraph'\nimport Header from './blocks/Header'\nimport Quote from './blocks/Quote'\nimport Image from './blocks/Image'\nimport HTML from './blocks/HTML'\nimport List from './blocks/List'\n\nconst defaultComponents: BlockComponents = {\n paragraph: Paragraph,\n header: Header,\n quote: Quote,\n image: Image,\n raw: HTML,\n list: List,\n}\n\nconst VisualContent: FC<VisualContentProps> = ({\n content,\n components = {},\n}) => {\n const componentList = useMemo(\n () => ({ ...defaultComponents, ...components }),\n [components]\n )\n\n if (!content) {\n return null\n }\n\n return (\n <div className=\"sl-visual-content\">\n {content.blocks.map((block) => {\n const Component = componentList[block.type]\n\n if (!Component) return null\n\n return (\n <Component\n key={block.id}\n id={block.id}\n type={block.type}\n data={block.data as never}\n />\n )\n })}\n </div>\n )\n}\n\nexport default VisualContent\n\nexport { Paragraph, Header, Quote, Image, HTML, List }\n"]}
@@ -1,11 +1,13 @@
1
1
  import { ComponentType } from 'react';
2
- import { HeaderBlock, ImageBlock, ParagraphBlock, QuoteBlock, VisualData, VisualDataBlock, BlockType } from '@starlightcms/js-sdk';
2
+ import { HeaderBlock, ImageBlock, ParagraphBlock, QuoteBlock, VisualData, VisualDataBlock, BlockType, HTMLBlock, ListBlock } from '@starlightcms/js-sdk';
3
3
  declare type Implements<T, U extends T> = Record<string, unknown>;
4
4
  export interface BlockComponents extends Implements<Record<BlockType, unknown>, BlockComponents> {
5
5
  paragraph: ComponentType<VisualDataBlock<ParagraphBlock>>;
6
6
  header: ComponentType<VisualDataBlock<HeaderBlock>>;
7
7
  quote: ComponentType<VisualDataBlock<QuoteBlock>>;
8
8
  image: ComponentType<VisualDataBlock<ImageBlock>>;
9
+ raw: ComponentType<VisualDataBlock<HTMLBlock>>;
10
+ list: ComponentType<VisualDataBlock<ListBlock>>;
9
11
  }
10
12
  export declare type VisualContentProps = {
11
13
  content?: VisualData;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACV,MAAM,sBAAsB,CAAA;AAG7B,aAAK,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzD,MAAM,WAAW,eACf,SAAQ,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC/D,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAA;IACzD,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;CAClD;AAED,oBAAY,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACtC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,sBAAsB,CAAA;AAG7B,aAAK,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzD,MAAM,WAAW,eACf,SAAQ,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC/D,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAA;IACzD,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,GAAG,EAAE,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9C,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;CAChD;AAED,oBAAY,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ComponentType } from 'react'\nimport {\n HeaderBlock,\n ImageBlock,\n ParagraphBlock,\n QuoteBlock,\n VisualData,\n VisualDataBlock,\n BlockType,\n} from '@starlightcms/js-sdk'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Implements<T, U extends T> = Record<string, unknown>\n\nexport interface BlockComponents\n extends Implements<Record<BlockType, unknown>, BlockComponents> {\n paragraph: ComponentType<VisualDataBlock<ParagraphBlock>>\n header: ComponentType<VisualDataBlock<HeaderBlock>>\n quote: ComponentType<VisualDataBlock<QuoteBlock>>\n image: ComponentType<VisualDataBlock<ImageBlock>>\n}\n\nexport type VisualContentProps = {\n content?: VisualData\n components?: Partial<BlockComponents>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ComponentType } from 'react'\nimport {\n HeaderBlock,\n ImageBlock,\n ParagraphBlock,\n QuoteBlock,\n VisualData,\n VisualDataBlock,\n BlockType,\n HTMLBlock,\n ListBlock,\n} from '@starlightcms/js-sdk'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Implements<T, U extends T> = Record<string, unknown>\n\nexport interface BlockComponents\n extends Implements<Record<BlockType, unknown>, BlockComponents> {\n paragraph: ComponentType<VisualDataBlock<ParagraphBlock>>\n header: ComponentType<VisualDataBlock<HeaderBlock>>\n quote: ComponentType<VisualDataBlock<QuoteBlock>>\n image: ComponentType<VisualDataBlock<ImageBlock>>\n raw: ComponentType<VisualDataBlock<HTMLBlock>>\n list: ComponentType<VisualDataBlock<ListBlock>>\n}\n\nexport type VisualContentProps = {\n content?: VisualData\n components?: Partial<BlockComponents>\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { HTMLBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
+ declare const HTML: FC<VisualDataBlock<HTMLBlock>>;
4
+ export default HTML;
5
+ //# sourceMappingURL=HTML.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTML.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/HTML.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEjE,QAAA,MAAM,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAOxC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ const HTML = ({ data }) => {
3
+ return (React.createElement("div", { className: "sl-content-block sl-html test", dangerouslySetInnerHTML: { __html: data.html } }));
4
+ };
5
+ export default HTML;
6
+ //# sourceMappingURL=HTML.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTML.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/HTML.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AAGjC,MAAM,IAAI,GAAmC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACxD,OAAO,CACL,6BACE,SAAS,EAAC,+BAA+B,EACzC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAC9C,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { HTMLBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst HTML: FC<VisualDataBlock<HTMLBlock>> = ({ data }) => {\n return (\n <div\n className=\"sl-content-block sl-html test\"\n dangerouslySetInnerHTML={{ __html: data.html }}\n />\n )\n}\n\nexport default HTML\n"]}
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { HeaderBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<HeaderBlock>>;
4
- export default _default;
3
+ declare const Header: FC<VisualDataBlock<HeaderBlock>>;
4
+ export default Header;
5
5
  //# sourceMappingURL=Header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkC,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAcnE,wBAA2B"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEnE,QAAA,MAAM,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAS5C,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,22 +1,7 @@
1
- var __rest = (this && this.__rest) || function (s, e) {
2
- var t = {};
3
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
- t[p] = s[p];
5
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
- t[p[i]] = s[p[i]];
9
- }
10
- return t;
11
- };
12
- import React, { createElement, memo } from 'react';
1
+ import React from 'react';
13
2
  const Header = ({ data }) => {
14
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
- const HeaderComponent = (_a) => {
16
- var { children } = _a, props = __rest(_a, ["children"]);
17
- return createElement(`h${data.level}`, props, children);
18
- };
19
- return (React.createElement(HeaderComponent, { className: "sl-content-block sl-header" }, data.text));
3
+ const HeaderComponent = `h${data.level}`;
4
+ return (React.createElement(HeaderComponent, { className: "sl-content-block sl-header", dangerouslySetInnerHTML: { __html: data.text } }));
20
5
  };
21
- export default memo(Header);
6
+ export default Header;
22
7
  //# sourceMappingURL=Header.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAM,IAAI,EAAE,MAAM,OAAO,CAAA;AAGtD,MAAM,MAAM,GAAqC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5D,8DAA8D;IAC9D,MAAM,eAAe,GAAY,CAAC,EAAsB,EAAE,EAAE;YAA1B,EAAE,QAAQ,OAAY,EAAP,KAAK,cAApB,YAAsB,CAAF;QACpD,OAAA,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;KAAA,CAAA;IAElD,OAAO,CACL,oBAAC,eAAe,IAAC,SAAS,EAAC,4BAA4B,IACpD,IAAI,CAAC,IAAI,CACM,CACnB,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAC,MAAM,CAAC,CAAA","sourcesContent":["import React, { createElement, FC, memo } from 'react'\nimport { HeaderBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Header: FC<VisualDataBlock<HeaderBlock>> = ({ data }) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const HeaderComponent: FC<any> = ({ children, ...props }) =>\n createElement(`h${data.level}`, props, children)\n\n return (\n <HeaderComponent className=\"sl-content-block sl-header\">\n {data.text}\n </HeaderComponent>\n )\n}\n\nexport default memo(Header)\n"]}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AAGjC,MAAM,MAAM,GAAqC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC5D,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,KAAK,EAAU,CAAA;IAEhD,OAAO,CACL,oBAAC,eAAe,IACd,SAAS,EAAC,4BAA4B,EACtC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAC9C,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,MAAM,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { HeaderBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Header: FC<VisualDataBlock<HeaderBlock>> = ({ data }) => {\n const HeaderComponent = `h${data.level}` as 'h1'\n\n return (\n <HeaderComponent\n className=\"sl-content-block sl-header\"\n dangerouslySetInnerHTML={{ __html: data.text }}\n />\n )\n}\n\nexport default Header\n"]}
@@ -1,5 +1,8 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { ImageBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<ImageBlock>>;
4
- export default _default;
3
+ declare type ImageOptions = {
4
+ sizes?: string;
5
+ };
6
+ declare const Image: FC<VisualDataBlock<ImageBlock> & ImageOptions>;
7
+ export default Image;
5
8
  //# sourceMappingURL=Image.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAMlE,wBAA0B"}
1
+ {"version":3,"file":"Image.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,aAAK,YAAY,GAAG;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,QAAA,MAAM,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,YAAY,CA8CzD,CAAA;AAED,eAAe,KAAK,CAAA"}
@@ -1,6 +1,22 @@
1
- import React, { memo } from 'react';
2
- const Image = ({ data }) => {
3
- return React.createElement("img", { className: "sl-content-block sl-image", src: data.url, alt: "" });
1
+ import React, { useEffect, useState } from 'react';
2
+ const Image = ({ data, sizes = '(max-width: 480px) 90vw, 70vw', }) => {
3
+ const { url, files, alt = '', caption, href } = data;
4
+ const [target, setTarget] = useState('_self');
5
+ const [srcSet, setSrcSet] = useState('');
6
+ useEffect(() => {
7
+ if (!href)
8
+ return;
9
+ setTarget(new URL(href).origin === window.location.origin ? '_self' : '_blank');
10
+ }, [href]);
11
+ useEffect(() => {
12
+ if (!files || !files.length)
13
+ return;
14
+ setSrcSet(files.map((file) => `${file.url} ${file.width}w`).join(', '));
15
+ }, [files]);
16
+ return (React.createElement("figure", null,
17
+ href ? (React.createElement("a", { href: href, target: target },
18
+ React.createElement("img", { className: "sl-content-block sl-image", src: url, alt: alt, srcSet: srcSet, sizes: srcSet ? sizes : undefined }))) : (React.createElement("img", { className: "sl-content-block sl-image", src: url, alt: alt, srcSet: srcSet, sizes: srcSet ? sizes : undefined })),
19
+ caption && React.createElement("figcaption", { dangerouslySetInnerHTML: { __html: caption } })));
4
20
  };
5
- export default memo(Image);
21
+ export default Image;
6
22
  //# sourceMappingURL=Image.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,IAAI,EAAE,MAAM,OAAO,CAAA;AAGvC,MAAM,KAAK,GAAoC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1D,OAAO,6BAAK,SAAS,EAAC,2BAA2B,EAAC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC,EAAE,GAAG,CAAA;AAC5E,CAAC,CAAA;AAED,eAAe,IAAI,CAAC,KAAK,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { ImageBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Image: FC<VisualDataBlock<ImageBlock>> = ({ data }) => {\n return <img className=\"sl-content-block sl-image\" src={data.url} alt=\"\" />\n}\n\nexport default memo(Image)\n"]}
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Image.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAOtD,MAAM,KAAK,GAAmD,CAAC,EAC7D,IAAI,EACJ,KAAK,GAAG,+BAA+B,GACxC,EAAE,EAAE;IACH,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;IACpD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;IAC7C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,SAAS,CACP,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CACrE,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAEV,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAM;QAEnC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACzE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,CACL;QACG,IAAI,CAAC,CAAC,CAAC,CACN,2BAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;YAC3B,6BACE,SAAS,EAAC,2BAA2B,EACrC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GACjC,CACA,CACL,CAAC,CAAC,CAAC,CACF,6BACE,SAAS,EAAC,2BAA2B,EACrC,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,GACjC,CACH;QACA,OAAO,IAAI,oCAAY,uBAAuB,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAI,CACjE,CACV,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAA","sourcesContent":["import React, { FC, useEffect, useState } from 'react'\nimport { ImageBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\ntype ImageOptions = {\n sizes?: string\n}\n\nconst Image: FC<VisualDataBlock<ImageBlock> & ImageOptions> = ({\n data,\n sizes = '(max-width: 480px) 90vw, 70vw',\n}) => {\n const { url, files, alt = '', caption, href } = data\n const [target, setTarget] = useState('_self')\n const [srcSet, setSrcSet] = useState('')\n\n useEffect(() => {\n if (!href) return\n\n setTarget(\n new URL(href).origin === window.location.origin ? '_self' : '_blank'\n )\n }, [href])\n\n useEffect(() => {\n if (!files || !files.length) return\n\n setSrcSet(files.map((file) => `${file.url} ${file.width}w`).join(', '))\n }, [files])\n\n return (\n <figure>\n {href ? (\n <a href={href} target={target}>\n <img\n className=\"sl-content-block sl-image\"\n src={url}\n alt={alt}\n srcSet={srcSet}\n sizes={srcSet ? sizes : undefined}\n />\n </a>\n ) : (\n <img\n className=\"sl-content-block sl-image\"\n src={url}\n alt={alt}\n srcSet={srcSet}\n sizes={srcSet ? sizes : undefined}\n />\n )}\n {caption && <figcaption dangerouslySetInnerHTML={{ __html: caption }} />}\n </figure>\n )\n}\n\nexport default Image\n"]}
@@ -0,0 +1,5 @@
1
+ import { FC } from 'react';
2
+ import { ListBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
+ declare const List: FC<VisualDataBlock<ListBlock>>;
4
+ export default List;
5
+ //# sourceMappingURL=List.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/List.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAY,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAuB3E,QAAA,MAAM,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAUxC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ const SubList = ({ item, Wrapper }) => {
3
+ return (React.createElement("li", null,
4
+ React.createElement("span", { dangerouslySetInnerHTML: { __html: item.content } }),
5
+ item.items && item.items.length ? (React.createElement(Wrapper, null, item.items &&
6
+ item.items.map((subItem, index) => (React.createElement(SubList, { key: index, item: subItem, Wrapper: Wrapper }))))) : null));
7
+ };
8
+ const List = ({ data }) => {
9
+ const ListWrapper = data.style === 'ordered' ? 'ol' : 'ul';
10
+ return (React.createElement(ListWrapper, { className: "sl-content-block sl-list sl-list__root" }, data.items.map((item, index) => (React.createElement(SubList, { key: index, item: item, Wrapper: ListWrapper })))));
11
+ };
12
+ export default List;
13
+ //# sourceMappingURL=List.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/List.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AAQjC,MAAM,OAAO,GAAqB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACtD,OAAO,CACL;QACE,8BAAM,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAI;QAC1D,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACjC,oBAAC,OAAO,QACL,IAAI,CAAC,KAAK;YACT,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,oBAAC,OAAO,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAI,CACzD,CAAC,CACI,CACX,CAAC,CAAC,CAAC,IAAI,CACL,CACN,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAmC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACxD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAE1D,OAAO,CACL,oBAAC,WAAW,IAAC,SAAS,EAAC,wCAAwC,IAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAC/B,oBAAC,OAAO,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,GAAI,CAC1D,CAAC,CACU,CACf,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { ListBlock, ListItem, VisualDataBlock } from '@starlightcms/js-sdk'\n\ntype SubListProps = {\n item: ListItem\n Wrapper: 'ul' | 'ol'\n}\n\nconst SubList: FC<SubListProps> = ({ item, Wrapper }) => {\n return (\n <li>\n <span dangerouslySetInnerHTML={{ __html: item.content }} />\n {item.items && item.items.length ? (\n <Wrapper>\n {item.items &&\n item.items.map((subItem, index) => (\n <SubList key={index} item={subItem} Wrapper={Wrapper} />\n ))}\n </Wrapper>\n ) : null}\n </li>\n )\n}\n\nconst List: FC<VisualDataBlock<ListBlock>> = ({ data }) => {\n const ListWrapper = data.style === 'ordered' ? 'ol' : 'ul'\n\n return (\n <ListWrapper className=\"sl-content-block sl-list sl-list__root\">\n {data.items.map((item, index) => (\n <SubList key={index} item={item} Wrapper={ListWrapper} />\n ))}\n </ListWrapper>\n )\n}\n\nexport default List\n"]}
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { ParagraphBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<ParagraphBlock>>;
4
- export default _default;
3
+ declare const Paragraph: FC<VisualDataBlock<ParagraphBlock>>;
4
+ export default Paragraph;
5
5
  //# sourceMappingURL=Paragraph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAMtE,wBAA8B"}
1
+ {"version":3,"file":"Paragraph.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtE,QAAA,MAAM,SAAS,EAAE,EAAE,CAAC,eAAe,CAAC,cAAc,CAAC,CAOlD,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -1,6 +1,6 @@
1
- import React, { memo } from 'react';
1
+ import React from 'react';
2
2
  const Paragraph = ({ data }) => {
3
- return React.createElement("p", { className: "sl-content-block sl-paragraph" }, data.text);
3
+ return (React.createElement("p", { className: "sl-content-block sl-paragraph", dangerouslySetInnerHTML: { __html: data.text } }));
4
4
  };
5
- export default memo(Paragraph);
5
+ export default Paragraph;
6
6
  //# sourceMappingURL=Paragraph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Paragraph.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,IAAI,EAAE,MAAM,OAAO,CAAA;AAGvC,MAAM,SAAS,GAAwC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClE,OAAO,2BAAG,SAAS,EAAC,+BAA+B,IAAE,IAAI,CAAC,IAAI,CAAK,CAAA;AACrE,CAAC,CAAA;AAED,eAAe,IAAI,CAAC,SAAS,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { ParagraphBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Paragraph: FC<VisualDataBlock<ParagraphBlock>> = ({ data }) => {\n return <p className=\"sl-content-block sl-paragraph\">{data.text}</p>\n}\n\nexport default memo(Paragraph)\n"]}
1
+ {"version":3,"file":"Paragraph.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AAGjC,MAAM,SAAS,GAAwC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAClE,OAAO,CACL,2BACE,SAAS,EAAC,+BAA+B,EACzC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAC9C,CACH,CAAA;AACH,CAAC,CAAA;AAED,eAAe,SAAS,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { ParagraphBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Paragraph: FC<VisualDataBlock<ParagraphBlock>> = ({ data }) => {\n return (\n <p\n className=\"sl-content-block sl-paragraph\"\n dangerouslySetInnerHTML={{ __html: data.text }}\n />\n )\n}\n\nexport default Paragraph\n"]}
@@ -1,5 +1,5 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { QuoteBlock, VisualDataBlock } from '@starlightcms/js-sdk';
3
- declare const _default: React.NamedExoticComponent<VisualDataBlock<QuoteBlock>>;
4
- export default _default;
3
+ declare const Quote: FC<VisualDataBlock<QuoteBlock>>;
4
+ export default Quote;
5
5
  //# sourceMappingURL=Quote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Quote.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;;AAQlE,wBAA0B"}
1
+ {"version":3,"file":"Quote.d.ts","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAElE,QAAA,MAAM,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAI1C,CAAA;AAED,eAAe,KAAK,CAAA"}
@@ -1,6 +1,6 @@
1
- import React, { memo } from 'react';
1
+ import React from 'react';
2
2
  const Quote = ({ data }) => {
3
3
  return (React.createElement("blockquote", { className: "sl-content-block sl-quote" }, data.text));
4
4
  };
5
- export default memo(Quote);
5
+ export default Quote;
6
6
  //# sourceMappingURL=Quote.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,IAAI,EAAE,MAAM,OAAO,CAAA;AAGvC,MAAM,KAAK,GAAoC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1D,OAAO,CACL,oCAAY,SAAS,EAAC,2BAA2B,IAAE,IAAI,CAAC,IAAI,CAAc,CAC3E,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAC,KAAK,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { QuoteBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Quote: FC<VisualDataBlock<QuoteBlock>> = ({ data }) => {\n return (\n <blockquote className=\"sl-content-block sl-quote\">{data.text}</blockquote>\n )\n}\n\nexport default memo(Quote)\n"]}
1
+ {"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../../../src/VisualContent/blocks/Quote.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAa,MAAM,OAAO,CAAA;AAGjC,MAAM,KAAK,GAAoC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1D,OAAO,CACL,oCAAY,SAAS,EAAC,2BAA2B,IAAE,IAAI,CAAC,IAAI,CAAc,CAC3E,CAAA;AACH,CAAC,CAAA;AAED,eAAe,KAAK,CAAA","sourcesContent":["import React, { FC } from 'react'\nimport { QuoteBlock, VisualDataBlock } from '@starlightcms/js-sdk'\n\nconst Quote: FC<VisualDataBlock<QuoteBlock>> = ({ data }) => {\n return (\n <blockquote className=\"sl-content-block sl-quote\">{data.text}</blockquote>\n )\n}\n\nexport default Quote\n"]}
@@ -1,5 +1,12 @@
1
- import React from 'react';
1
+ import { FC } from 'react';
2
2
  import { VisualContentProps } from './types';
3
- declare const _default: React.NamedExoticComponent<VisualContentProps>;
4
- export default _default;
3
+ import Paragraph from './blocks/Paragraph';
4
+ import Header from './blocks/Header';
5
+ import Quote from './blocks/Quote';
6
+ import Image from './blocks/Image';
7
+ import HTML from './blocks/HTML';
8
+ import List from './blocks/List';
9
+ declare const VisualContent: FC<VisualContentProps>;
10
+ export default VisualContent;
11
+ export { Paragraph, Header, Quote, Image, HTML, List };
5
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,EAAmB,kBAAkB,EAAE,MAAM,SAAS,CAAA;;AAoC7D,wBAAkC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAW,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAmB,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAC1C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AACpC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,IAAI,MAAM,eAAe,CAAA;AAWhC,QAAA,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA+BzC,CAAA;AAED,eAAe,aAAa,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA"}
@@ -1,23 +1,30 @@
1
- import React, { memo } from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import Paragraph from './blocks/Paragraph';
3
3
  import Header from './blocks/Header';
4
4
  import Quote from './blocks/Quote';
5
5
  import Image from './blocks/Image';
6
+ import HTML from './blocks/HTML';
7
+ import List from './blocks/List';
6
8
  const defaultComponents = {
7
9
  paragraph: Paragraph,
8
10
  header: Header,
9
11
  quote: Quote,
10
12
  image: Image,
13
+ raw: HTML,
14
+ list: List,
11
15
  };
12
16
  const VisualContent = ({ content, components = {}, }) => {
13
- const componentList = Object.assign({}, defaultComponents, components);
17
+ const componentList = useMemo(() => (Object.assign(Object.assign({}, defaultComponents), components)), [components]);
14
18
  if (!content) {
15
19
  return null;
16
20
  }
17
- return (React.createElement("div", { className: "sl-visual-content" }, content.blocks.map((block, index) => {
21
+ return (React.createElement("div", { className: "sl-visual-content" }, content.blocks.map((block) => {
18
22
  const Component = componentList[block.type];
19
- return (React.createElement(Component, { key: index, type: block.type, data: block.data }));
23
+ if (!Component)
24
+ return null;
25
+ return (React.createElement(Component, { key: block.id, id: block.id, type: block.type, data: block.data }));
20
26
  })));
21
27
  };
22
- export default memo(VisualContent);
28
+ export default VisualContent;
29
+ export { Paragraph, Header, Quote, Image, HTML, List };
23
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,IAAI,EAAE,MAAM,OAAO,CAAA;AAEvC,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAC1C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AACpC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAElC,MAAM,iBAAiB,GAAoB;IACzC,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;CACb,CAAA;AAED,MAAM,aAAa,GAA2B,CAAC,EAC7C,OAAO,EACP,UAAU,GAAG,EAAE,GAChB,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAA;IAEtE,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,mBAAmB,IAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACnC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,OAAO,CACL,oBAAC,SAAS,IAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAa,GAAI,CACvE,CAAA;IACH,CAAC,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,IAAI,CAAC,aAAa,CAAC,CAAA","sourcesContent":["import React, { FC, memo } from 'react'\nimport { BlockComponents, VisualContentProps } from './types'\nimport Paragraph from './blocks/Paragraph'\nimport Header from './blocks/Header'\nimport Quote from './blocks/Quote'\nimport Image from './blocks/Image'\n\nconst defaultComponents: BlockComponents = {\n paragraph: Paragraph,\n header: Header,\n quote: Quote,\n image: Image,\n}\n\nconst VisualContent: FC<VisualContentProps> = ({\n content,\n components = {},\n}) => {\n const componentList = Object.assign({}, defaultComponents, components)\n\n if (!content) {\n return null\n }\n\n return (\n <div className=\"sl-visual-content\">\n {content.blocks.map((block, index) => {\n const Component = componentList[block.type]\n\n return (\n <Component key={index} type={block.type} data={block.data as never} />\n )\n })}\n </div>\n )\n}\n\nexport default memo(VisualContent)\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/VisualContent/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,OAAO,EAAE,MAAM,OAAO,CAAA;AAE1C,OAAO,SAAS,MAAM,oBAAoB,CAAA;AAC1C,OAAO,MAAM,MAAM,iBAAiB,CAAA;AACpC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,KAAK,MAAM,gBAAgB,CAAA;AAClC,OAAO,IAAI,MAAM,eAAe,CAAA;AAChC,OAAO,IAAI,MAAM,eAAe,CAAA;AAEhC,MAAM,iBAAiB,GAAoB;IACzC,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,KAAK;IACZ,GAAG,EAAE,IAAI;IACT,IAAI,EAAE,IAAI;CACX,CAAA;AAED,MAAM,aAAa,GAA2B,CAAC,EAC7C,OAAO,EACP,UAAU,GAAG,EAAE,GAChB,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,iCAAM,iBAAiB,GAAK,UAAU,EAAG,EAC/C,CAAC,UAAU,CAAC,CACb,CAAA;IAED,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,mBAAmB,IAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAE3C,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAA;QAE3B,OAAO,CACL,oBAAC,SAAS,IACR,GAAG,EAAE,KAAK,CAAC,EAAE,EACb,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,IAAa,GACzB,CACH,CAAA;IACH,CAAC,CAAC,CACE,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,aAAa,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA","sourcesContent":["import React, { FC, useMemo } from 'react'\nimport { BlockComponents, VisualContentProps } from './types'\nimport Paragraph from './blocks/Paragraph'\nimport Header from './blocks/Header'\nimport Quote from './blocks/Quote'\nimport Image from './blocks/Image'\nimport HTML from './blocks/HTML'\nimport List from './blocks/List'\n\nconst defaultComponents: BlockComponents = {\n paragraph: Paragraph,\n header: Header,\n quote: Quote,\n image: Image,\n raw: HTML,\n list: List,\n}\n\nconst VisualContent: FC<VisualContentProps> = ({\n content,\n components = {},\n}) => {\n const componentList = useMemo(\n () => ({ ...defaultComponents, ...components }),\n [components]\n )\n\n if (!content) {\n return null\n }\n\n return (\n <div className=\"sl-visual-content\">\n {content.blocks.map((block) => {\n const Component = componentList[block.type]\n\n if (!Component) return null\n\n return (\n <Component\n key={block.id}\n id={block.id}\n type={block.type}\n data={block.data as never}\n />\n )\n })}\n </div>\n )\n}\n\nexport default VisualContent\n\nexport { Paragraph, Header, Quote, Image, HTML, List }\n"]}
@@ -1,11 +1,13 @@
1
1
  import { ComponentType } from 'react';
2
- import { HeaderBlock, ImageBlock, ParagraphBlock, QuoteBlock, VisualData, VisualDataBlock, BlockType } from '@starlightcms/js-sdk';
2
+ import { HeaderBlock, ImageBlock, ParagraphBlock, QuoteBlock, VisualData, VisualDataBlock, BlockType, HTMLBlock, ListBlock } from '@starlightcms/js-sdk';
3
3
  declare type Implements<T, U extends T> = Record<string, unknown>;
4
4
  export interface BlockComponents extends Implements<Record<BlockType, unknown>, BlockComponents> {
5
5
  paragraph: ComponentType<VisualDataBlock<ParagraphBlock>>;
6
6
  header: ComponentType<VisualDataBlock<HeaderBlock>>;
7
7
  quote: ComponentType<VisualDataBlock<QuoteBlock>>;
8
8
  image: ComponentType<VisualDataBlock<ImageBlock>>;
9
+ raw: ComponentType<VisualDataBlock<HTMLBlock>>;
10
+ list: ComponentType<VisualDataBlock<ListBlock>>;
9
11
  }
10
12
  export declare type VisualContentProps = {
11
13
  content?: VisualData;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACV,MAAM,sBAAsB,CAAA;AAG7B,aAAK,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzD,MAAM,WAAW,eACf,SAAQ,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC/D,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAA;IACzD,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;CAClD;AAED,oBAAY,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACtC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AACrC,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,eAAe,EACf,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,sBAAsB,CAAA;AAG7B,aAAK,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzD,MAAM,WAAW,eACf,SAAQ,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC;IAC/D,SAAS,EAAE,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAA;IACzD,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;IACnD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,KAAK,EAAE,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAA;IACjD,GAAG,EAAE,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;IAC9C,IAAI,EAAE,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAA;CAChD;AAED,oBAAY,kBAAkB,GAAG;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;CACtC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ComponentType } from 'react'\nimport {\n HeaderBlock,\n ImageBlock,\n ParagraphBlock,\n QuoteBlock,\n VisualData,\n VisualDataBlock,\n BlockType,\n} from '@starlightcms/js-sdk'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Implements<T, U extends T> = Record<string, unknown>\n\nexport interface BlockComponents\n extends Implements<Record<BlockType, unknown>, BlockComponents> {\n paragraph: ComponentType<VisualDataBlock<ParagraphBlock>>\n header: ComponentType<VisualDataBlock<HeaderBlock>>\n quote: ComponentType<VisualDataBlock<QuoteBlock>>\n image: ComponentType<VisualDataBlock<ImageBlock>>\n}\n\nexport type VisualContentProps = {\n content?: VisualData\n components?: Partial<BlockComponents>\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/VisualContent/types.ts"],"names":[],"mappings":"","sourcesContent":["import { ComponentType } from 'react'\nimport {\n HeaderBlock,\n ImageBlock,\n ParagraphBlock,\n QuoteBlock,\n VisualData,\n VisualDataBlock,\n BlockType,\n HTMLBlock,\n ListBlock,\n} from '@starlightcms/js-sdk'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype Implements<T, U extends T> = Record<string, unknown>\n\nexport interface BlockComponents\n extends Implements<Record<BlockType, unknown>, BlockComponents> {\n paragraph: ComponentType<VisualDataBlock<ParagraphBlock>>\n header: ComponentType<VisualDataBlock<HeaderBlock>>\n quote: ComponentType<VisualDataBlock<QuoteBlock>>\n image: ComponentType<VisualDataBlock<ImageBlock>>\n raw: ComponentType<VisualDataBlock<HTMLBlock>>\n list: ComponentType<VisualDataBlock<ListBlock>>\n}\n\nexport type VisualContentProps = {\n content?: VisualData\n components?: Partial<BlockComponents>\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@starlightcms/react-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "The Starlight SDK for React",
5
5
  "main": "dist/cjs/index.js",
6
6
  "exports": {
@@ -11,7 +11,8 @@
11
11
  "build": "rimraf dist && npm run build:cjs && npm run build:esm",
12
12
  "build:esm": "tsc --module esnext --outDir dist/esm",
13
13
  "build:cjs": "tsc --module commonjs --outDir dist/cjs",
14
- "dev": "tsc --watch",
14
+ "dev": "tsc --watch --module esnext --outDir dist/esm",
15
+ "dev:cjs": "tsc --watch --module commonjs --outDir dist/cjs",
15
16
  "prepare": "husky install",
16
17
  "prepublishOnly": "npm run build",
17
18
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -53,7 +54,9 @@
53
54
  ]
54
55
  },
55
56
  "dependencies": {
56
- "@starlightcms/js-sdk": "^0.4.1",
57
- "react": "^17.0.2"
57
+ "@starlightcms/js-sdk": "^0.5.0"
58
+ },
59
+ "peerDependencies": {
60
+ "react": ">=16.0.0"
58
61
  }
59
62
  }