@opinly/next 0.1.13 → 0.1.14

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 (151) hide show
  1. package/dist/components/author-page/_helpers/json-ld.js +1 -0
  2. package/dist/components/author-page/_helpers/json-ld.mjs +1 -0
  3. package/dist/components/author-page/index.js +57 -22
  4. package/dist/components/author-page/index.js.map +1 -1
  5. package/dist/components/author-page/index.mjs +50 -0
  6. package/dist/components/author-page/index.mjs.map +1 -0
  7. package/dist/components/authors-page/index.js +63 -29
  8. package/dist/components/authors-page/index.js.map +1 -1
  9. package/dist/components/authors-page/index.mjs +71 -0
  10. package/dist/components/authors-page/{index.cjs.map → index.mjs.map} +1 -1
  11. package/dist/components/blog-post/_components/content.js +63 -28
  12. package/dist/components/blog-post/_components/content.js.map +1 -1
  13. package/dist/components/blog-post/_components/content.mjs +126 -0
  14. package/dist/components/blog-post/_components/content.mjs.map +1 -0
  15. package/dist/components/blog-post/_components/faq.js +32 -8
  16. package/dist/components/blog-post/_components/faq.js.map +1 -1
  17. package/dist/components/blog-post/_components/faq.mjs +15 -0
  18. package/dist/components/blog-post/_components/{faq.cjs.map → faq.mjs.map} +1 -1
  19. package/dist/components/blog-post/_components/share.js +58 -24
  20. package/dist/components/blog-post/_components/share.js.map +1 -1
  21. package/dist/components/blog-post/_components/share.mjs +66 -0
  22. package/dist/components/blog-post/_components/{share.cjs.map → share.mjs.map} +1 -1
  23. package/dist/components/blog-post/_components/table-of-contents.js +58 -23
  24. package/dist/components/blog-post/_components/table-of-contents.js.map +1 -1
  25. package/dist/components/blog-post/_components/table-of-contents.mjs +48 -0
  26. package/dist/components/blog-post/_components/table-of-contents.mjs.map +1 -0
  27. package/dist/components/blog-post/_helpers/calc-reading-time.js +1 -0
  28. package/dist/components/blog-post/_helpers/calc-reading-time.mjs +1 -0
  29. package/dist/components/blog-post/_helpers/extract-headings.js +26 -2
  30. package/dist/components/blog-post/_helpers/extract-headings.js.map +1 -1
  31. package/dist/components/blog-post/_helpers/extract-headings.mjs +20 -0
  32. package/dist/components/blog-post/_helpers/{extract-headings.cjs.map → extract-headings.mjs.map} +1 -1
  33. package/dist/components/blog-post/_helpers/json-ld.js +38 -11
  34. package/dist/components/blog-post/_helpers/json-ld.js.map +1 -1
  35. package/dist/components/blog-post/_helpers/{json-ld.cjs → json-ld.mjs} +12 -39
  36. package/dist/components/blog-post/_helpers/{json-ld.cjs.map → json-ld.mjs.map} +1 -1
  37. package/dist/components/blog-post/_helpers/reading-time.js +27 -2
  38. package/dist/components/blog-post/_helpers/reading-time.js.map +1 -1
  39. package/dist/components/blog-post/_helpers/reading-time.mjs +25 -0
  40. package/dist/components/blog-post/_helpers/{reading-time.cjs.map → reading-time.mjs.map} +1 -1
  41. package/dist/components/blog-post/_types/blog-post.js +16 -0
  42. package/dist/components/blog-post/_types/blog-post.js.map +1 -1
  43. package/dist/components/blog-post/_types/blog-post.mjs +1 -0
  44. package/dist/components/blog-post/_types/blog-post.mjs.map +1 -0
  45. package/dist/components/blog-post/_types/class-names.js +16 -0
  46. package/dist/components/blog-post/_types/class-names.js.map +1 -1
  47. package/dist/components/blog-post/_types/class-names.mjs +1 -0
  48. package/dist/components/blog-post/_types/class-names.mjs.map +1 -0
  49. package/dist/components/blog-post/index.js +77 -47
  50. package/dist/components/blog-post/index.js.map +1 -1
  51. package/dist/components/blog-post/index.mjs +118 -0
  52. package/dist/components/blog-post/{index.cjs.map → index.mjs.map} +1 -1
  53. package/dist/components/bread-crumbs.js +47 -13
  54. package/dist/components/bread-crumbs.js.map +1 -1
  55. package/dist/components/bread-crumbs.mjs +26 -0
  56. package/dist/components/{bread-crumbs.cjs.map → bread-crumbs.mjs.map} +1 -1
  57. package/dist/components/folder-page/index.js +36 -12
  58. package/dist/components/folder-page/index.js.map +1 -1
  59. package/dist/components/folder-page/index.mjs +37 -0
  60. package/dist/components/folder-page/{index.cjs.map → index.mjs.map} +1 -1
  61. package/dist/components/home-page/folders.js +64 -29
  62. package/dist/components/home-page/folders.js.map +1 -1
  63. package/dist/components/home-page/folders.mjs +63 -0
  64. package/dist/components/home-page/{folders.cjs.map → folders.mjs.map} +1 -1
  65. package/dist/components/home-page/index.js +35 -11
  66. package/dist/components/home-page/index.js.map +1 -1
  67. package/dist/components/home-page/index.mjs +20 -0
  68. package/dist/components/home-page/{index.cjs.map → index.mjs.map} +1 -1
  69. package/dist/components/home-page/pagination.js +43 -9
  70. package/dist/components/home-page/pagination.js.map +1 -1
  71. package/dist/components/home-page/pagination.mjs +57 -0
  72. package/dist/components/home-page/{pagination.cjs.map → pagination.mjs.map} +1 -1
  73. package/dist/components/home-page/top-posts.js +34 -10
  74. package/dist/components/home-page/top-posts.js.map +1 -1
  75. package/dist/components/home-page/top-posts.mjs +28 -0
  76. package/dist/components/home-page/{top-posts.cjs.map → top-posts.mjs.map} +1 -1
  77. package/dist/components/not-found.js +49 -15
  78. package/dist/components/not-found.js.map +1 -1
  79. package/dist/components/not-found.mjs +26 -0
  80. package/dist/components/{not-found.cjs.map → not-found.mjs.map} +1 -1
  81. package/dist/components/opinly-blog.js +39 -15
  82. package/dist/components/opinly-blog.js.map +1 -1
  83. package/dist/components/opinly-blog.mjs +33 -0
  84. package/dist/components/{opinly-blog.cjs.map → opinly-blog.mjs.map} +1 -1
  85. package/dist/components/post-preview.js +77 -41
  86. package/dist/components/post-preview.js.map +1 -1
  87. package/dist/components/post-preview.mjs +77 -0
  88. package/dist/components/post-preview.mjs.map +1 -0
  89. package/dist/index.js +22 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/index.mjs +2 -0
  92. package/dist/index.mjs.map +1 -0
  93. package/dist/utils/dates.js +26 -2
  94. package/dist/utils/dates.js.map +1 -1
  95. package/dist/utils/dates.mjs +9 -0
  96. package/dist/utils/{dates.cjs.map → dates.mjs.map} +1 -1
  97. package/dist/utils/generate-metadata.d.cts +5 -3
  98. package/dist/utils/generate-metadata.d.ts +5 -3
  99. package/dist/utils/generate-metadata.js +33 -9
  100. package/dist/utils/generate-metadata.js.map +1 -1
  101. package/dist/utils/generate-metadata.mjs +36 -0
  102. package/dist/utils/generate-metadata.mjs.map +1 -0
  103. package/dist/utils/merge.js +29 -5
  104. package/dist/utils/merge.js.map +1 -1
  105. package/dist/utils/merge.mjs +9 -0
  106. package/dist/utils/{merge.cjs.map → merge.mjs.map} +1 -1
  107. package/dist/utils/sdk-config.d.cts +1 -0
  108. package/dist/utils/sdk-config.d.ts +1 -0
  109. package/dist/utils/sdk-config.js +31 -4
  110. package/dist/utils/sdk-config.js.map +1 -1
  111. package/dist/utils/sdk-config.mjs +32 -0
  112. package/dist/utils/sdk-config.mjs.map +1 -0
  113. package/package.json +2 -2
  114. package/dist/components/author-page/_helpers/json-ld.cjs +0 -2
  115. package/dist/components/author-page/index.cjs +0 -83
  116. package/dist/components/author-page/index.cjs.map +0 -1
  117. package/dist/components/authors-page/index.cjs +0 -105
  118. package/dist/components/blog-post/_components/content.cjs +0 -159
  119. package/dist/components/blog-post/_components/content.cjs.map +0 -1
  120. package/dist/components/blog-post/_components/faq.cjs +0 -39
  121. package/dist/components/blog-post/_components/share.cjs +0 -100
  122. package/dist/components/blog-post/_components/table-of-contents.cjs +0 -81
  123. package/dist/components/blog-post/_components/table-of-contents.cjs.map +0 -1
  124. package/dist/components/blog-post/_helpers/calc-reading-time.cjs +0 -2
  125. package/dist/components/blog-post/_helpers/extract-headings.cjs +0 -44
  126. package/dist/components/blog-post/_helpers/reading-time.cjs +0 -50
  127. package/dist/components/blog-post/_types/blog-post.cjs +0 -17
  128. package/dist/components/blog-post/_types/blog-post.cjs.map +0 -1
  129. package/dist/components/blog-post/_types/class-names.cjs +0 -17
  130. package/dist/components/blog-post/_types/class-names.cjs.map +0 -1
  131. package/dist/components/blog-post/index.cjs +0 -148
  132. package/dist/components/bread-crumbs.cjs +0 -60
  133. package/dist/components/folder-page/index.cjs +0 -61
  134. package/dist/components/home-page/folders.cjs +0 -98
  135. package/dist/components/home-page/index.cjs +0 -44
  136. package/dist/components/home-page/pagination.cjs +0 -91
  137. package/dist/components/home-page/top-posts.cjs +0 -52
  138. package/dist/components/not-found.cjs +0 -60
  139. package/dist/components/opinly-blog.cjs +0 -57
  140. package/dist/components/post-preview.cjs +0 -111
  141. package/dist/components/post-preview.cjs.map +0 -1
  142. package/dist/index.cjs +0 -23
  143. package/dist/index.cjs.map +0 -1
  144. package/dist/utils/dates.cjs +0 -33
  145. package/dist/utils/generate-metadata.cjs +0 -60
  146. package/dist/utils/generate-metadata.cjs.map +0 -1
  147. package/dist/utils/merge.cjs +0 -33
  148. package/dist/utils/sdk-config.cjs +0 -55
  149. package/dist/utils/sdk-config.cjs.map +0 -1
  150. /package/dist/components/author-page/_helpers/{json-ld.cjs.map → json-ld.mjs.map} +0 -0
  151. /package/dist/components/blog-post/_helpers/{calc-reading-time.cjs.map → calc-reading-time.mjs.map} +0 -0
@@ -1,57 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var opinly_blog_exports = {};
20
- __export(opinly_blog_exports, {
21
- OpinlyBlog: () => OpinlyBlog
22
- });
23
- module.exports = __toCommonJS(opinly_blog_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_blog_post = require("./blog-post");
26
- var import_folder_page = require("./folder-page");
27
- var import_home_page = require("./home-page");
28
- var import_author_page = require("./author-page");
29
- var import_not_found = require("./not-found");
30
- var import_authors_page = require("./authors-page");
31
- const OpinlyBlog = ({
32
- blog,
33
- searchParams,
34
- client
35
- }) => {
36
- if (blog.type === "not-found") {
37
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_not_found.OpinlyNotFound, {});
38
- }
39
- if (blog.type === "home") {
40
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_home_page.HomePage, { searchParams, client });
41
- }
42
- if (blog.type === "post") {
43
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_blog_post.BlogPost, { post: blog.data });
44
- }
45
- if (blog.type === "author") {
46
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_author_page.AuthorPage, { author: blog.data });
47
- }
48
- if (blog.type === "authors") {
49
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_authors_page.AuthorsPage, { authors: blog.data });
50
- }
51
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_folder_page.FolderPage, { folder: blog.data });
52
- };
53
- // Annotate the CommonJS export names for ESM import in node:
54
- 0 && (module.exports = {
55
- OpinlyBlog
56
- });
57
- //# sourceMappingURL=opinly-blog.cjs.map
@@ -1,111 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var post_preview_exports = {};
30
- __export(post_preview_exports, {
31
- PostPreview: () => PostPreview,
32
- PostPreviewSkeleton: () => PostPreviewSkeleton
33
- });
34
- module.exports = __toCommonJS(post_preview_exports);
35
- var import_jsx_runtime = require("react/jsx-runtime");
36
- var import_link = __toESM(require("next/link"), 1);
37
- var import_image = __toESM(require("next/image"), 1);
38
- var import_sdk_config = require("../utils/sdk-config");
39
- var import_dates = require("../utils/dates");
40
- const PostPreviewSkeleton = () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "w-full h-full ", children: [
41
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse mb-5", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg" }) }),
42
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center space-x-2 text-sm text-muted-foreground mb-3", children: [
43
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded" }),
44
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-1 bg-gray-200 dark:bg-gray-700 rounded-full" }),
45
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-16 bg-gray-200 dark:bg-gray-700 rounded" })
46
- ] }),
47
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2" }),
48
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-1 mt-1 pr-4", children: [
49
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" }),
50
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded" })
51
- ] }),
52
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center space-x-2 text-xs text-gray-500 mt-2", children: [
53
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded" }),
54
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded" })
55
- ] })
56
- ] });
57
- const PostPreview = ({
58
- post
59
- }) => {
60
- const postSlug = `${import_sdk_config.opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : ""}${post.slug}`;
61
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "w-full h-full ", children: [
62
- post.image?.fileKey && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: postSlug, className: "group", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative w-full h-48 mb-4", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
63
- import_image.default,
64
- {
65
- src: `${import_sdk_config.opinlyConfig.imagesPrefix}/${post.image.fileKey}`,
66
- alt: post.title,
67
- fill: true,
68
- className: "object-cover rounded-lg"
69
- }
70
- ) }) }),
71
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-sm text-muted-foreground mb-1", children: [
72
- post.folder?.name && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
73
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
74
- import_link.default,
75
- {
76
- href: `${import_sdk_config.opinlyConfig.blogPrefix}/${post.folder.slug}`,
77
- className: "hover:underline",
78
- children: post.folder.name
79
- }
80
- ),
81
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mx-1", children: "\xB7" })
82
- ] }),
83
- " ",
84
- (0, import_dates.formatDate)(post.firstPublishedAt)
85
- ] }),
86
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_link.default, { href: postSlug, className: "group", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { className: "text-lg font-semibold leading-snug group-hover:underline", children: post.title }) }),
87
- post.description && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm text-gray-600 mt-1 line-clamp-2", children: post.description }),
88
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "text-xs text-gray-500 mt-2", children: [
89
- post.author && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
90
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
91
- import_link.default,
92
- {
93
- href: `${import_sdk_config.opinlyConfig.blogPrefix}/authors/${post.author.slug}`,
94
- className: "font-medium hover:underline",
95
- children: post.author?.name
96
- }
97
- ),
98
- " ",
99
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "mx-1", children: "\xB7" })
100
- ] }),
101
- " ",
102
- (0, import_dates.formatDate)(post.firstPublishedAt)
103
- ] })
104
- ] });
105
- };
106
- // Annotate the CommonJS export names for ESM import in node:
107
- 0 && (module.exports = {
108
- PostPreview,
109
- PostPreviewSkeleton
110
- });
111
- //# sourceMappingURL=post-preview.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/post-preview.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport Link from \"next/link\";\nimport Image from \"next/image\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\nimport { formatDate } from \"../utils/dates\";\n\nexport const PostPreviewSkeleton: React.FC = () => (\n <div className=\"w-full h-full \">\n {/* Image placeholder (with same mb-4 as real) */}\n <div className=\"animate-pulse mb-5\">\n <div className=\"w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg\" />\n </div>\n\n {/* Folder · dot · date (text-sm text-muted-foreground mb-1) */}\n <div className=\"flex items-center space-x-2 text-sm text-muted-foreground mb-3\">\n <div className=\"animate-pulse h-4 w-20 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-1 bg-gray-200 dark:bg-gray-700 rounded-full\" />\n <div className=\"animate-pulse h-4 w-16 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Title (text-lg font-semibold leading-snug) */}\n <div className=\"animate-pulse h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded mb-2\" />\n\n {/* Description (text-sm mt-1 line-clamp-2) */}\n <div className=\"space-y-1 mt-1 pr-4\">\n <div className=\"animate-pulse h-4 w-full bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-4 w-10/12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Author · date (text-xs text-gray-500 mt-2 flex items-center space-x-2) */}\n <div className=\"flex items-center space-x-2 text-xs text-gray-500 mt-2\">\n <div className=\"animate-pulse h-3 w-24 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"animate-pulse h-3 w-12 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n </div>\n);\nexport const PostPreview = ({\n post,\n}: {\n post: NonNullable<\n NonNullable<\n Awaited<\n ReturnType<Opinly[\"client\"][\"content\"][\"authorPage\"][\"query\"]>\n >[\"data\"]\n >[\"posts\"][number]\n >;\n}) => {\n const postSlug = `${opinlyConfig.blogPrefix}/${post.folder?.slug ? `${post.folder.slug}/` : \"\"}${post.slug}`;\n\n return (\n <div className=\"w-full h-full \">\n {post.image?.fileKey && (\n <Link href={postSlug} className=\"group\">\n <div className=\"relative w-full h-48 mb-4\">\n <Image\n src={`${opinlyConfig.imagesPrefix}/${post.image.fileKey}`}\n alt={post.title}\n fill\n className=\"object-cover rounded-lg\"\n />\n </div>\n </Link>\n )}\n <div className=\"text-sm text-muted-foreground mb-1\">\n {post.folder?.name && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/${post.folder.slug}`}\n className=\"hover:underline\"\n >\n {post.folder.name}\n </Link>\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n <Link href={postSlug} className=\"group\">\n <h2 className=\"text-lg font-semibold leading-snug group-hover:underline\">\n {post.title}\n </h2>\n </Link>\n\n {post.description && (\n <p className=\"text-sm text-gray-600 mt-1 line-clamp-2\">\n {post.description}\n </p>\n )}\n <div className=\"text-xs text-gray-500 mt-2\">\n {post.author && (\n <>\n <Link\n href={`${opinlyConfig.blogPrefix}/authors/${post.author.slug}`}\n className=\"font-medium hover:underline\"\n >\n {post.author?.name}\n </Link>{\" \"}\n <span className=\"mx-1\">·</span>\n </>\n )}{\" \"}\n {formatDate(post.firstPublishedAt as string)}\n </div>\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUM;AATN,kBAAiB;AACjB,mBAAkB;AAClB,wBAA6B;AAC7B,mBAA2B;AAEpB,MAAM,sBAAgC,MAC3C,6CAAC,SAAI,WAAU,kBAEb;AAAA,8CAAC,SAAI,WAAU,sBACb,sDAAC,SAAI,WAAU,uDAAsD,GACvE;AAAA,EAGA,6CAAC,SAAI,WAAU,kEACb;AAAA,gDAAC,SAAI,WAAU,+DAA8D;AAAA,IAC7E,4CAAC,SAAI,WAAU,mEAAkE;AAAA,IACjF,4CAAC,SAAI,WAAU,+DAA8D;AAAA,KAC/E;AAAA,EAGA,4CAAC,SAAI,WAAU,qEAAoE;AAAA,EAGnF,6CAAC,SAAI,WAAU,uBACb;AAAA,gDAAC,SAAI,WAAU,iEAAgE;AAAA,IAC/E,4CAAC,SAAI,WAAU,kEAAiE;AAAA,KAClF;AAAA,EAGA,6CAAC,SAAI,WAAU,0DACb;AAAA,gDAAC,SAAI,WAAU,+DAA8D;AAAA,IAC7E,4CAAC,SAAI,WAAU,+DAA8D;AAAA,KAC/E;AAAA,GACF;AAEK,MAAM,cAAc,CAAC;AAAA,EAC1B;AACF,MAQM;AACJ,QAAM,WAAW,GAAG,+BAAa,UAAU,IAAI,KAAK,QAAQ,OAAO,GAAG,KAAK,OAAO,IAAI,MAAM,EAAE,GAAG,KAAK,IAAI;AAE1G,SACE,6CAAC,SAAI,WAAU,kBACZ;AAAA,SAAK,OAAO,WACX,4CAAC,YAAAA,SAAA,EAAK,MAAM,UAAU,WAAU,SAC9B,sDAAC,SAAI,WAAU,6BACb;AAAA,MAAC,aAAAC;AAAA,MAAA;AAAA,QACC,KAAK,GAAG,+BAAa,YAAY,IAAI,KAAK,MAAM,OAAO;AAAA,QACvD,KAAK,KAAK;AAAA,QACV,MAAI;AAAA,QACJ,WAAU;AAAA;AAAA,IACZ,GACF,GACF;AAAA,IAEF,6CAAC,SAAI,WAAU,sCACZ;AAAA,WAAK,QAAQ,QACZ,4EACE;AAAA;AAAA,UAAC,YAAAD;AAAA,UAAA;AAAA,YACC,MAAM,GAAG,+BAAa,UAAU,IAAI,KAAK,OAAO,IAAI;AAAA,YACpD,WAAU;AAAA,YAET,eAAK,OAAO;AAAA;AAAA,QACf;AAAA,QACA,4CAAC,UAAK,WAAU,QAAO,kBAAC;AAAA,SAC1B;AAAA,MACC;AAAA,UACF,yBAAW,KAAK,gBAA0B;AAAA,OAC7C;AAAA,IACA,4CAAC,YAAAA,SAAA,EAAK,MAAM,UAAU,WAAU,SAC9B,sDAAC,QAAG,WAAU,4DACX,eAAK,OACR,GACF;AAAA,IAEC,KAAK,eACJ,4CAAC,OAAE,WAAU,2CACV,eAAK,aACR;AAAA,IAEF,6CAAC,SAAI,WAAU,8BACZ;AAAA,WAAK,UACJ,4EACE;AAAA;AAAA,UAAC,YAAAA;AAAA,UAAA;AAAA,YACC,MAAM,GAAG,+BAAa,UAAU,YAAY,KAAK,OAAO,IAAI;AAAA,YAC5D,WAAU;AAAA,YAET,eAAK,QAAQ;AAAA;AAAA,QAChB;AAAA,QAAQ;AAAA,QACR,4CAAC,UAAK,WAAU,QAAO,kBAAC;AAAA,SAC1B;AAAA,MACC;AAAA,UACF,yBAAW,KAAK,gBAA0B;AAAA,OAC7C;AAAA,KACF;AAEJ;","names":["Link","Image"]}
package/dist/index.cjs DELETED
@@ -1,23 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var index_exports = {};
17
- module.exports = __toCommonJS(index_exports);
18
- __reExport(index_exports, require("./components/opinly-blog"), module.exports);
19
- // Annotate the CommonJS export names for ESM import in node:
20
- 0 && (module.exports = {
21
- ...require("./components/opinly-blog")
22
- });
23
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./components/opinly-blog\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,qCAAd;","names":[]}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var dates_exports = {};
20
- __export(dates_exports, {
21
- formatDate: () => formatDate
22
- });
23
- module.exports = __toCommonJS(dates_exports);
24
- const formatDate = (iso) => new Date(iso).toLocaleDateString("en-US", {
25
- month: "short",
26
- day: "2-digit",
27
- year: "numeric"
28
- });
29
- // Annotate the CommonJS export names for ESM import in node:
30
- 0 && (module.exports = {
31
- formatDate
32
- });
33
- //# sourceMappingURL=dates.cjs.map
@@ -1,60 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var generate_metadata_exports = {};
20
- __export(generate_metadata_exports, {
21
- generateMetadata: () => generateMetadata
22
- });
23
- module.exports = __toCommonJS(generate_metadata_exports);
24
- var import_sdk_config = require("./sdk-config");
25
- const generateMetadata = async (client, params, parent) => {
26
- const blog = await client.content.blog(params);
27
- if (blog.type === "not-found") {
28
- return parent;
29
- }
30
- const previousImages = (await parent).openGraph?.images || [];
31
- if (blog.type === "post") {
32
- const openGraphImageKey = blog.data?.titleFile?.fileKey;
33
- const images = openGraphImageKey ? [`${import_sdk_config.opinlyConfig.imagesUrl}/${openGraphImageKey}`, ...previousImages] : previousImages;
34
- return {
35
- ...parent,
36
- title: blog.data.title,
37
- openGraph: {
38
- images,
39
- type: "article",
40
- authors: blog.data.author && [
41
- `${import_sdk_config.opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`
42
- ]
43
- },
44
- // keywords: [blog.data.keywords],
45
- authors: blog.data.author && [
46
- {
47
- name: blog.data.author.name,
48
- url: `${import_sdk_config.opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`
49
- }
50
- ],
51
- other: {}
52
- };
53
- }
54
- return parent;
55
- };
56
- // Annotate the CommonJS export names for ESM import in node:
57
- 0 && (module.exports = {
58
- generateMetadata
59
- });
60
- //# sourceMappingURL=generate-metadata.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/generate-metadata.ts"],"sourcesContent":["import { Opinly, OpinlyPageProps } from \"@opinly/backend\";\nimport type { Metadata, ResolvingMetadata } from \"next\";\nimport { opinlyConfig } from \"./sdk-config\";\n\nexport const generateMetadata = async (\n client: Opinly,\n params: OpinlyPageProps,\n parent: ResolvingMetadata\n): Promise<Metadata> => {\n const blog = await client.content.blog(params);\n\n if (blog.type === \"not-found\") {\n return parent as Metadata;\n }\n\n const previousImages = (await parent).openGraph?.images || [];\n\n if (blog.type === \"post\") {\n const openGraphImageKey = blog.data?.titleFile?.fileKey;\n\n const images = openGraphImageKey\n ? [`${opinlyConfig.imagesUrl}/${openGraphImageKey}`, ...previousImages]\n : previousImages;\n\n return {\n ...(parent as Metadata),\n title: blog.data.title,\n\n openGraph: {\n images: images,\n type: \"article\",\n authors: blog.data.author && [\n `${opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`,\n ],\n },\n\n // keywords: [blog.data.keywords],\n authors: blog.data.author && [\n {\n name: blog.data.author.name,\n url: `${opinlyConfig.blogUrl}/authors/${blog.data.author.slug}`,\n },\n ],\n other: {},\n };\n }\n\n return parent as Metadata;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,wBAA6B;AAEtB,MAAM,mBAAmB,OAC9B,QACA,QACA,WACsB;AACtB,QAAM,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM;AAE7C,MAAI,KAAK,SAAS,aAAa;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,kBAAkB,MAAM,QAAQ,WAAW,UAAU,CAAC;AAE5D,MAAI,KAAK,SAAS,QAAQ;AACxB,UAAM,oBAAoB,KAAK,MAAM,WAAW;AAEhD,UAAM,SAAS,oBACX,CAAC,GAAG,+BAAa,SAAS,IAAI,iBAAiB,IAAI,GAAG,cAAc,IACpE;AAEJ,WAAO;AAAA,MACL,GAAI;AAAA,MACJ,OAAO,KAAK,KAAK;AAAA,MAEjB,WAAW;AAAA,QACT;AAAA,QACA,MAAM;AAAA,QACN,SAAS,KAAK,KAAK,UAAU;AAAA,UAC3B,GAAG,+BAAa,OAAO,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QAC1D;AAAA,MACF;AAAA;AAAA,MAGA,SAAS,KAAK,KAAK,UAAU;AAAA,QAC3B;AAAA,UACE,MAAM,KAAK,KAAK,OAAO;AAAA,UACvB,KAAK,GAAG,+BAAa,OAAO,YAAY,KAAK,KAAK,OAAO,IAAI;AAAA,QAC/D;AAAA,MACF;AAAA,MACA,OAAO,CAAC;AAAA,IACV;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var merge_exports = {};
20
- __export(merge_exports, {
21
- cn: () => cn
22
- });
23
- module.exports = __toCommonJS(merge_exports);
24
- var import_clsx = require("clsx");
25
- var import_tailwind_merge = require("tailwind-merge");
26
- const cn = (...inputs) => {
27
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(inputs));
28
- };
29
- // Annotate the CommonJS export names for ESM import in node:
30
- 0 && (module.exports = {
31
- cn
32
- });
33
- //# sourceMappingURL=merge.cjs.map
@@ -1,55 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var sdk_config_exports = {};
20
- __export(sdk_config_exports, {
21
- opinlyConfig: () => opinlyConfig,
22
- setOpinlyConfig: () => setOpinlyConfig
23
- });
24
- module.exports = __toCommonJS(sdk_config_exports);
25
- const siteUrl = process.env.OPINLY_SITE_URL;
26
- const opinlyEnvVars = {
27
- OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX,
28
- OPINLY_SITE_URL: process.env.OPINLY_SITE_URL,
29
- OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX,
30
- OPINLY_CDN_URL: process.env.OPINLY_CDN_URL,
31
- OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME
32
- };
33
- Object.entries(opinlyEnvVars).forEach(([key, value]) => {
34
- if (!value) {
35
- throw new Error(`OPINLY ERROR: env var ${key} is not set`);
36
- }
37
- });
38
- let opinlyConfig = {
39
- cdnUrl: process.env.OPINLY_CDN_URL || "https://cdn.opinly.ai",
40
- siteUrl: process.env.OPINLY_SITE_URL,
41
- imagesPrefix: process.env.OPINLY_IMAGES_PREFIX,
42
- imagesUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_IMAGES_PREFIX}`,
43
- blogPrefix: process.env.OPINLY_BLOG_PREFIX,
44
- blogUrl: `${process.env.OPINLY_SITE_URL}${process.env.OPINLY_BLOG_PREFIX}`,
45
- siteName: process.env.OPINLY_SITE_NAME
46
- };
47
- function setOpinlyConfig(newConfig) {
48
- opinlyConfig = { ...opinlyConfig, ...newConfig };
49
- }
50
- // Annotate the CommonJS export names for ESM import in node:
51
- 0 && (module.exports = {
52
- opinlyConfig,
53
- setOpinlyConfig
54
- });
55
- //# sourceMappingURL=sdk-config.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/sdk-config.ts"],"sourcesContent":["const siteUrl = process.env.OPINLY_SITE_URL;\n\nconst opinlyEnvVars = {\n OPINLY_IMAGES_PREFIX: process.env.OPINLY_IMAGES_PREFIX as string,\n OPINLY_SITE_URL: process.env.OPINLY_SITE_URL as string,\n OPINLY_BLOG_PREFIX: process.env.OPINLY_BLOG_PREFIX as string,\n OPINLY_CDN_URL: process.env.OPINLY_CDN_URL as string,\n OPINLY_SITE_NAME: process.env.OPINLY_SITE_NAME as string,\n};\n\nObject.entries(opinlyEnvVars).forEach(([key, value]) => {\n if (!value) {\n throw new Error(`OPINLY ERROR: env var ${key} is not set`);\n }\n});\n\nexport let opinlyConfig: {\n cdnUrl: string;\n imagesPrefix: string;\n imagesUrl: string;\n siteUrl: string;\n blogPrefix: string;\n blogUrl: string;\n siteName: string;\n} = {\n cdnUrl: process.env.OPINLY_CDN_URL || \"https://cdn.opinly.ai\",\n siteUrl: process.env.OPINLY_SITE_URL as string,\n imagesPrefix: process.env.OPINLY_IMAGES_PREFIX as string,\n imagesUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_IMAGES_PREFIX as string}`,\n blogPrefix: process.env.OPINLY_BLOG_PREFIX as string,\n blogUrl: `${process.env.OPINLY_SITE_URL as string}${process.env.OPINLY_BLOG_PREFIX as string}`,\n siteName: process.env.OPINLY_SITE_NAME as string,\n};\n\nexport function setOpinlyConfig(newConfig: typeof opinlyConfig) {\n opinlyConfig = { ...opinlyConfig, ...newConfig };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,UAAU,QAAQ,IAAI;AAE5B,MAAM,gBAAgB;AAAA,EACpB,sBAAsB,QAAQ,IAAI;AAAA,EAClC,iBAAiB,QAAQ,IAAI;AAAA,EAC7B,oBAAoB,QAAQ,IAAI;AAAA,EAChC,gBAAgB,QAAQ,IAAI;AAAA,EAC5B,kBAAkB,QAAQ,IAAI;AAChC;AAEA,OAAO,QAAQ,aAAa,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AACtD,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,yBAAyB,GAAG,aAAa;AAAA,EAC3D;AACF,CAAC;AAEM,IAAI,eAQP;AAAA,EACF,QAAQ,QAAQ,IAAI,kBAAkB;AAAA,EACtC,SAAS,QAAQ,IAAI;AAAA,EACrB,cAAc,QAAQ,IAAI;AAAA,EAC1B,WAAW,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,oBAA8B;AAAA,EAChG,YAAY,QAAQ,IAAI;AAAA,EACxB,SAAS,GAAG,QAAQ,IAAI,eAAyB,GAAG,QAAQ,IAAI,kBAA4B;AAAA,EAC5F,UAAU,QAAQ,IAAI;AACxB;AAEO,SAAS,gBAAgB,WAAgC;AAC9D,iBAAe,EAAE,GAAG,cAAc,GAAG,UAAU;AACjD;","names":[]}