@opinly/next 0.1.26 → 1.0.0-alpha.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 (209) hide show
  1. package/dist/config.cjs +16 -7
  2. package/dist/config.cjs.map +1 -1
  3. package/dist/config.d.cts +7 -2
  4. package/dist/config.d.ts +7 -2
  5. package/dist/config.js +16 -7
  6. package/dist/config.js.map +1 -1
  7. package/dist/index.cjs +33 -3
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.cts +12 -6
  10. package/dist/index.d.ts +12 -6
  11. package/dist/index.js +26 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/json-ld.cjs +61 -0
  14. package/dist/json-ld.cjs.map +1 -0
  15. package/dist/json-ld.d.cts +17 -0
  16. package/dist/json-ld.d.ts +17 -0
  17. package/dist/json-ld.js +38 -0
  18. package/dist/json-ld.js.map +1 -0
  19. package/dist/utils/generate-metadata.cjs +23 -79
  20. package/dist/utils/generate-metadata.cjs.map +1 -1
  21. package/dist/utils/generate-metadata.d.cts +11 -2
  22. package/dist/utils/generate-metadata.d.ts +11 -2
  23. package/dist/utils/generate-metadata.js +23 -79
  24. package/dist/utils/generate-metadata.js.map +1 -1
  25. package/dist/utils/generate-sitemap-xml.cjs.map +1 -1
  26. package/dist/utils/generate-sitemap-xml.d.cts +5 -3
  27. package/dist/utils/generate-sitemap-xml.d.ts +5 -3
  28. package/dist/utils/generate-sitemap-xml.js.map +1 -1
  29. package/dist/utils/sdk-config.cjs +6 -2
  30. package/dist/utils/sdk-config.cjs.map +1 -1
  31. package/dist/utils/sdk-config.d.cts +4 -0
  32. package/dist/utils/sdk-config.d.ts +4 -0
  33. package/dist/utils/sdk-config.js +6 -2
  34. package/dist/utils/sdk-config.js.map +1 -1
  35. package/package.json +6 -20
  36. package/dist/components/author-page/_helpers/json-ld.cjs +0 -44
  37. package/dist/components/author-page/_helpers/json-ld.cjs.map +0 -1
  38. package/dist/components/author-page/_helpers/json-ld.d.cts +0 -8
  39. package/dist/components/author-page/_helpers/json-ld.d.ts +0 -8
  40. package/dist/components/author-page/_helpers/json-ld.js +0 -20
  41. package/dist/components/author-page/_helpers/json-ld.js.map +0 -1
  42. package/dist/components/author-page/index.cjs +0 -104
  43. package/dist/components/author-page/index.cjs.map +0 -1
  44. package/dist/components/author-page/index.d.cts +0 -10
  45. package/dist/components/author-page/index.d.ts +0 -10
  46. package/dist/components/author-page/index.js +0 -70
  47. package/dist/components/author-page/index.js.map +0 -1
  48. package/dist/components/authors-page/_helpers/json-ld.cjs +0 -53
  49. package/dist/components/authors-page/_helpers/json-ld.cjs.map +0 -1
  50. package/dist/components/authors-page/_helpers/json-ld.d.cts +0 -8
  51. package/dist/components/authors-page/_helpers/json-ld.d.ts +0 -8
  52. package/dist/components/authors-page/_helpers/json-ld.js +0 -29
  53. package/dist/components/authors-page/_helpers/json-ld.js.map +0 -1
  54. package/dist/components/authors-page/index.cjs +0 -121
  55. package/dist/components/authors-page/index.cjs.map +0 -1
  56. package/dist/components/authors-page/index.d.cts +0 -10
  57. package/dist/components/authors-page/index.d.ts +0 -10
  58. package/dist/components/authors-page/index.js +0 -87
  59. package/dist/components/authors-page/index.js.map +0 -1
  60. package/dist/components/blog-post/_components/content.cjs +0 -157
  61. package/dist/components/blog-post/_components/content.cjs.map +0 -1
  62. package/dist/components/blog-post/_components/content.d.cts +0 -10
  63. package/dist/components/blog-post/_components/content.d.ts +0 -10
  64. package/dist/components/blog-post/_components/content.js +0 -123
  65. package/dist/components/blog-post/_components/content.js.map +0 -1
  66. package/dist/components/blog-post/_components/faq.cjs +0 -39
  67. package/dist/components/blog-post/_components/faq.cjs.map +0 -1
  68. package/dist/components/blog-post/_components/faq.d.cts +0 -9
  69. package/dist/components/blog-post/_components/faq.d.ts +0 -9
  70. package/dist/components/blog-post/_components/faq.js +0 -15
  71. package/dist/components/blog-post/_components/faq.js.map +0 -1
  72. package/dist/components/blog-post/_components/share.cjs +0 -100
  73. package/dist/components/blog-post/_components/share.cjs.map +0 -1
  74. package/dist/components/blog-post/_components/share.d.cts +0 -9
  75. package/dist/components/blog-post/_components/share.d.ts +0 -9
  76. package/dist/components/blog-post/_components/share.js +0 -66
  77. package/dist/components/blog-post/_components/share.js.map +0 -1
  78. package/dist/components/blog-post/_components/table-of-contents.cjs +0 -111
  79. package/dist/components/blog-post/_components/table-of-contents.cjs.map +0 -1
  80. package/dist/components/blog-post/_components/table-of-contents.d.cts +0 -14
  81. package/dist/components/blog-post/_components/table-of-contents.d.ts +0 -14
  82. package/dist/components/blog-post/_components/table-of-contents.js +0 -77
  83. package/dist/components/blog-post/_components/table-of-contents.js.map +0 -1
  84. package/dist/components/blog-post/_helpers/calc-reading-time.cjs +0 -2
  85. package/dist/components/blog-post/_helpers/calc-reading-time.cjs.map +0 -1
  86. package/dist/components/blog-post/_helpers/calc-reading-time.d.cts +0 -2
  87. package/dist/components/blog-post/_helpers/calc-reading-time.d.ts +0 -2
  88. package/dist/components/blog-post/_helpers/calc-reading-time.js +0 -1
  89. package/dist/components/blog-post/_helpers/calc-reading-time.js.map +0 -1
  90. package/dist/components/blog-post/_helpers/extract-headings.cjs +0 -45
  91. package/dist/components/blog-post/_helpers/extract-headings.cjs.map +0 -1
  92. package/dist/components/blog-post/_helpers/extract-headings.d.cts +0 -9
  93. package/dist/components/blog-post/_helpers/extract-headings.d.ts +0 -9
  94. package/dist/components/blog-post/_helpers/extract-headings.js +0 -21
  95. package/dist/components/blog-post/_helpers/extract-headings.js.map +0 -1
  96. package/dist/components/blog-post/_helpers/json-ld.cjs +0 -162
  97. package/dist/components/blog-post/_helpers/json-ld.cjs.map +0 -1
  98. package/dist/components/blog-post/_helpers/json-ld.d.cts +0 -15
  99. package/dist/components/blog-post/_helpers/json-ld.d.ts +0 -15
  100. package/dist/components/blog-post/_helpers/json-ld.js +0 -135
  101. package/dist/components/blog-post/_helpers/json-ld.js.map +0 -1
  102. package/dist/components/blog-post/_helpers/reading-time.cjs +0 -50
  103. package/dist/components/blog-post/_helpers/reading-time.cjs.map +0 -1
  104. package/dist/components/blog-post/_helpers/reading-time.d.cts +0 -6
  105. package/dist/components/blog-post/_helpers/reading-time.d.ts +0 -6
  106. package/dist/components/blog-post/_helpers/reading-time.js +0 -25
  107. package/dist/components/blog-post/_helpers/reading-time.js.map +0 -1
  108. package/dist/components/blog-post/_types/blog-post.cjs +0 -17
  109. package/dist/components/blog-post/_types/blog-post.cjs.map +0 -1
  110. package/dist/components/blog-post/_types/blog-post.d.cts +0 -7
  111. package/dist/components/blog-post/_types/blog-post.d.ts +0 -7
  112. package/dist/components/blog-post/_types/blog-post.js +0 -1
  113. package/dist/components/blog-post/_types/blog-post.js.map +0 -1
  114. package/dist/components/blog-post/_types/class-names.cjs +0 -17
  115. package/dist/components/blog-post/_types/class-names.cjs.map +0 -1
  116. package/dist/components/blog-post/_types/class-names.d.cts +0 -12
  117. package/dist/components/blog-post/_types/class-names.d.ts +0 -12
  118. package/dist/components/blog-post/_types/class-names.js +0 -1
  119. package/dist/components/blog-post/_types/class-names.js.map +0 -1
  120. package/dist/components/blog-post/index.cjs +0 -133
  121. package/dist/components/blog-post/index.cjs.map +0 -1
  122. package/dist/components/blog-post/index.d.cts +0 -15
  123. package/dist/components/blog-post/index.d.ts +0 -15
  124. package/dist/components/blog-post/index.js +0 -99
  125. package/dist/components/blog-post/index.js.map +0 -1
  126. package/dist/components/bread-crumbs.cjs +0 -60
  127. package/dist/components/bread-crumbs.cjs.map +0 -1
  128. package/dist/components/bread-crumbs.d.cts +0 -10
  129. package/dist/components/bread-crumbs.d.ts +0 -10
  130. package/dist/components/bread-crumbs.js +0 -26
  131. package/dist/components/bread-crumbs.js.map +0 -1
  132. package/dist/components/folder-page/_helpers/json-ld.cjs +0 -43
  133. package/dist/components/folder-page/_helpers/json-ld.cjs.map +0 -1
  134. package/dist/components/folder-page/_helpers/json-ld.d.cts +0 -8
  135. package/dist/components/folder-page/_helpers/json-ld.d.ts +0 -8
  136. package/dist/components/folder-page/_helpers/json-ld.js +0 -19
  137. package/dist/components/folder-page/_helpers/json-ld.js.map +0 -1
  138. package/dist/components/folder-page/index.cjs +0 -84
  139. package/dist/components/folder-page/index.cjs.map +0 -1
  140. package/dist/components/folder-page/index.d.cts +0 -10
  141. package/dist/components/folder-page/index.d.ts +0 -10
  142. package/dist/components/folder-page/index.js +0 -60
  143. package/dist/components/folder-page/index.js.map +0 -1
  144. package/dist/components/home-page/_helpers/json-ld.cjs +0 -43
  145. package/dist/components/home-page/_helpers/json-ld.cjs.map +0 -1
  146. package/dist/components/home-page/_helpers/json-ld.d.cts +0 -3
  147. package/dist/components/home-page/_helpers/json-ld.d.ts +0 -3
  148. package/dist/components/home-page/_helpers/json-ld.js +0 -19
  149. package/dist/components/home-page/_helpers/json-ld.js.map +0 -1
  150. package/dist/components/home-page/folders.cjs +0 -108
  151. package/dist/components/home-page/folders.cjs.map +0 -1
  152. package/dist/components/home-page/folders.d.cts +0 -11
  153. package/dist/components/home-page/folders.d.ts +0 -11
  154. package/dist/components/home-page/folders.js +0 -73
  155. package/dist/components/home-page/folders.js.map +0 -1
  156. package/dist/components/home-page/index.cjs +0 -50
  157. package/dist/components/home-page/index.cjs.map +0 -1
  158. package/dist/components/home-page/index.d.cts +0 -14
  159. package/dist/components/home-page/index.d.ts +0 -14
  160. package/dist/components/home-page/index.js +0 -26
  161. package/dist/components/home-page/index.js.map +0 -1
  162. package/dist/components/home-page/pagination.cjs +0 -97
  163. package/dist/components/home-page/pagination.cjs.map +0 -1
  164. package/dist/components/home-page/pagination.d.cts +0 -9
  165. package/dist/components/home-page/pagination.d.ts +0 -9
  166. package/dist/components/home-page/pagination.js +0 -63
  167. package/dist/components/home-page/pagination.js.map +0 -1
  168. package/dist/components/home-page/top-posts.cjs +0 -35
  169. package/dist/components/home-page/top-posts.cjs.map +0 -1
  170. package/dist/components/home-page/top-posts.d.cts +0 -10
  171. package/dist/components/home-page/top-posts.d.ts +0 -10
  172. package/dist/components/home-page/top-posts.js +0 -11
  173. package/dist/components/home-page/top-posts.js.map +0 -1
  174. package/dist/components/json-ld.cjs +0 -92
  175. package/dist/components/json-ld.cjs.map +0 -1
  176. package/dist/components/json-ld.d.cts +0 -13
  177. package/dist/components/json-ld.d.ts +0 -13
  178. package/dist/components/json-ld.js +0 -57
  179. package/dist/components/json-ld.js.map +0 -1
  180. package/dist/components/opinly-blog.cjs +0 -57
  181. package/dist/components/opinly-blog.cjs.map +0 -1
  182. package/dist/components/opinly-blog.d.cts +0 -15
  183. package/dist/components/opinly-blog.d.ts +0 -15
  184. package/dist/components/opinly-blog.js +0 -33
  185. package/dist/components/opinly-blog.js.map +0 -1
  186. package/dist/components/post-preview.cjs +0 -114
  187. package/dist/components/post-preview.cjs.map +0 -1
  188. package/dist/components/post-preview.d.cts +0 -10
  189. package/dist/components/post-preview.d.ts +0 -10
  190. package/dist/components/post-preview.js +0 -79
  191. package/dist/components/post-preview.js.map +0 -1
  192. package/dist/pages/index.cjs +0 -23
  193. package/dist/pages/index.cjs.map +0 -1
  194. package/dist/pages/index.d.cts +0 -3
  195. package/dist/pages/index.d.ts +0 -3
  196. package/dist/pages/index.js +0 -2
  197. package/dist/pages/index.js.map +0 -1
  198. package/dist/pages/opinly-blog-pages.cjs +0 -127
  199. package/dist/pages/opinly-blog-pages.cjs.map +0 -1
  200. package/dist/pages/opinly-blog-pages.d.cts +0 -9
  201. package/dist/pages/opinly-blog-pages.d.ts +0 -9
  202. package/dist/pages/opinly-blog-pages.js +0 -103
  203. package/dist/pages/opinly-blog-pages.js.map +0 -1
  204. package/dist/utils/json-ld.cjs +0 -2
  205. package/dist/utils/json-ld.cjs.map +0 -1
  206. package/dist/utils/json-ld.d.cts +0 -2
  207. package/dist/utils/json-ld.d.ts +0 -2
  208. package/dist/utils/json-ld.js +0 -1
  209. package/dist/utils/json-ld.js.map +0 -1
@@ -1,11 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- declare const HomePageFoldersSkeleton: () => react_jsx_runtime.JSX.Element;
5
- declare const HomePageFolders: ({ folders, }: {
6
- folders: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
7
- type: "home";
8
- }>["data"]["folders"];
9
- }) => react_jsx_runtime.JSX.Element;
10
-
11
- export { HomePageFolders, HomePageFoldersSkeleton };
@@ -1,11 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- declare const HomePageFoldersSkeleton: () => react_jsx_runtime.JSX.Element;
5
- declare const HomePageFolders: ({ folders, }: {
6
- folders: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
7
- type: "home";
8
- }>["data"]["folders"];
9
- }) => react_jsx_runtime.JSX.Element;
10
-
11
- export { HomePageFolders, HomePageFoldersSkeleton };
@@ -1,73 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import Link from "next/link";
3
- import { PostPreview } from "../post-preview";
4
- import { ArrowRight } from "lucide-react";
5
- const HomePageFoldersSkeleton = () => {
6
- return /* @__PURE__ */ jsx(Fragment, { children: Array(2).fill(null).map((_, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: "space-y-4 mb-5", children: [
7
- /* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-2", children: [
8
- /* @__PURE__ */ jsx("div", { className: "h-8 w-1/3 bg-gray-200 dark:bg-gray-700 rounded" }),
9
- /* @__PURE__ */ jsx("div", { className: "h-4 w-1/2 bg-gray-200 dark:bg-gray-700 rounded" })
10
- ] }),
11
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10", children: [
12
- Array(3).fill(null).map((__, postIdx) => /* @__PURE__ */ jsxs("div", { className: "animate-pulse space-y-3", children: [
13
- /* @__PURE__ */ jsx("div", { className: "w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg" }),
14
- /* @__PURE__ */ jsx("div", { className: "h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded" }),
15
- /* @__PURE__ */ jsx("div", { className: "h-4 w-full bg-gray-200 dark:bg-gray-700 rounded" })
16
- ] }, postIdx)),
17
- /* @__PURE__ */ jsx("div", { className: "flex justify-center items-center animate-pulse", children: /* @__PURE__ */ jsx("div", { className: "h-4 w-48 bg-gray-200 text-op-heading rounded" }) })
18
- ] })
19
- ] }, sectionIdx)) });
20
- };
21
- const HomePageFolders = ({
22
- folders
23
- }) => {
24
- return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-10 mt-20", children: folders.map((folder) => /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
25
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 mb-20", children: [
26
- /* @__PURE__ */ jsx(
27
- Link,
28
- {
29
- href: `/blog/${folder.slug}`,
30
- className: "text-3xl",
31
- children: folder.title
32
- },
33
- folder.slug
34
- ),
35
- /* @__PURE__ */ jsx("p", { className: "text-sm text-op-muted", children: folder.description })
36
- ] }),
37
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 mb-20", children: [
38
- folder.posts.filter((post) => post !== null).map((post) => /* @__PURE__ */ jsx(
39
- PostPreview,
40
- {
41
- post: {
42
- ...post,
43
- folder: {
44
- name: folder.title,
45
- slug: folder.slug,
46
- description: folder.description || ""
47
- }
48
- }
49
- },
50
- post.slug
51
- )),
52
- /* @__PURE__ */ jsx("div", { className: "flex justify-center w-full h-full items-center ", children: /* @__PURE__ */ jsxs(
53
- Link,
54
- {
55
- href: `/blog/${folder.slug}`,
56
- className: "flex items-center gap-2",
57
- children: [
58
- /* @__PURE__ */ jsxs("span", { children: [
59
- "View all posts in ",
60
- folder.title
61
- ] }),
62
- /* @__PURE__ */ jsx(ArrowRight, { className: "w-4 h-4" })
63
- ]
64
- }
65
- ) })
66
- ] })
67
- ] })) });
68
- };
69
- export {
70
- HomePageFolders,
71
- HomePageFoldersSkeleton
72
- };
73
- //# sourceMappingURL=folders.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/home-page/folders.tsx"],"sourcesContent":["import Link from \"next/link\";\nimport { PostPreview } from \"../post-preview\";\nimport { ArrowRight } from \"lucide-react\";\nimport { Opinly } from \"@opinly/backend\";\n\nexport const HomePageFoldersSkeleton = () => {\n return (\n <>\n {Array(2) // render 2 folder sections\n .fill(null)\n .map((_, sectionIdx) => (\n <div key={sectionIdx} className=\"space-y-4 mb-5\">\n {/* Folder title + description */}\n <div className=\"animate-pulse space-y-2\">\n <div className=\"h-8 w-1/3 bg-gray-200 dark:bg-gray-700 rounded\" />\n <div className=\"h-4 w-1/2 bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n\n {/* Posts grid */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10\">\n {Array(3) // 3 post placeholders\n .fill(null)\n .map((__, postIdx) => (\n <div key={postIdx} className=\"animate-pulse space-y-3\">\n {/* Image */}\n <div className=\"w-full h-48 bg-gray-200 dark:bg-gray-700 rounded-lg\" />\n {/* Title bar */}\n <div className=\"h-5 w-3/4 bg-gray-200 dark:bg-gray-700 rounded\" />\n {/* Description line */}\n <div className=\"h-4 w-full bg-gray-200 dark:bg-gray-700 rounded\" />\n </div>\n ))}\n\n {/* “View all” link */}\n <div className=\"flex justify-center items-center animate-pulse\">\n <div className=\"h-4 w-48 bg-gray-200 text-op-heading rounded\" />\n </div>\n </div>\n </div>\n ))}\n </>\n );\n};\n\nexport const HomePageFolders = ({\n folders,\n}: {\n folders: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"][\"folders\"];\n}) => {\n return (\n <div className=\"flex flex-col gap-10 mt-20\">\n {folders.map((folder) => (\n <div className=\"space-y-4\">\n <div className=\"flex flex-col gap-2 mb-20\">\n <Link\n key={folder.slug}\n href={`/blog/${folder.slug}`}\n className=\"text-3xl\"\n >\n {folder.title}\n </Link>\n <p className=\"text-sm text-op-muted\">{folder.description}</p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10 mb-20\">\n {folder.posts\n .filter((post) => post !== null)\n .map((post) => (\n <PostPreview\n key={post.slug}\n post={{\n ...post,\n folder: {\n name: folder.title,\n slug: folder.slug,\n description: folder.description || \"\",\n },\n }}\n />\n ))}\n <div className=\"flex justify-center w-full h-full items-center \">\n <Link\n href={`/blog/${folder.slug}`}\n className=\"flex items-center gap-2\"\n >\n <span>View all posts in {folder.title}</span>\n <ArrowRight className=\"w-4 h-4\" />\n </Link>\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":"AAOI,mBAOU,KADF,YANR;AAPJ,OAAO,UAAU;AACjB,SAAS,mBAAmB;AAC5B,SAAS,kBAAkB;AAGpB,MAAM,0BAA0B,MAAM;AAC3C,SACE,gCACG,gBAAM,CAAC,EACL,KAAK,IAAI,EACT,IAAI,CAAC,GAAG,eACP,qBAAC,SAAqB,WAAU,kBAE9B;AAAA,yBAAC,SAAI,WAAU,2BACb;AAAA,0BAAC,SAAI,WAAU,kDAAiD;AAAA,MAChE,oBAAC,SAAI,WAAU,kDAAiD;AAAA,OAClE;AAAA,IAGA,qBAAC,SAAI,WAAU,yDACZ;AAAA,YAAM,CAAC,EACL,KAAK,IAAI,EACT,IAAI,CAAC,IAAI,YACR,qBAAC,SAAkB,WAAU,2BAE3B;AAAA,4BAAC,SAAI,WAAU,uDAAsD;AAAA,QAErE,oBAAC,SAAI,WAAU,kDAAiD;AAAA,QAEhE,oBAAC,SAAI,WAAU,mDAAkD;AAAA,WANzD,OAOV,CACD;AAAA,MAGH,oBAAC,SAAI,WAAU,kDACb,8BAAC,SAAI,WAAU,gDAA+C,GAChE;AAAA,OACF;AAAA,OA1BQ,UA2BV,CACD,GACL;AAEJ;AAEO,MAAM,kBAAkB,CAAC;AAAA,EAC9B;AACF,MAKM;AACJ,SACE,oBAAC,SAAI,WAAU,8BACZ,kBAAQ,IAAI,CAAC,WACZ,qBAAC,SAAI,WAAU,aACb;AAAA,yBAAC,SAAI,WAAU,6BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM,SAAS,OAAO,IAAI;AAAA,UAC1B,WAAU;AAAA,UAET,iBAAO;AAAA;AAAA,QAJH,OAAO;AAAA,MAKd;AAAA,MACA,oBAAC,OAAE,WAAU,yBAAyB,iBAAO,aAAY;AAAA,OAC3D;AAAA,IACA,qBAAC,SAAI,WAAU,+DACZ;AAAA,aAAO,MACL,OAAO,CAAC,SAAS,SAAS,IAAI,EAC9B,IAAI,CAAC,SACJ;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,YACJ,GAAG;AAAA,YACH,QAAQ;AAAA,cACN,MAAM,OAAO;AAAA,cACb,MAAM,OAAO;AAAA,cACb,aAAa,OAAO,eAAe;AAAA,YACrC;AAAA,UACF;AAAA;AAAA,QARK,KAAK;AAAA,MASZ,CACD;AAAA,MACH,oBAAC,SAAI,WAAU,mDACb;AAAA,QAAC;AAAA;AAAA,UACC,MAAM,SAAS,OAAO,IAAI;AAAA,UAC1B,WAAU;AAAA,UAEV;AAAA,iCAAC,UAAK;AAAA;AAAA,cAAmB,OAAO;AAAA,eAAM;AAAA,YACtC,oBAAC,cAAW,WAAU,WAAU;AAAA;AAAA;AAAA,MAClC,GACF;AAAA,OACF;AAAA,KACF,CACD,GACH;AAEJ;","names":[]}
@@ -1,50 +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 home_page_exports = {};
20
- __export(home_page_exports, {
21
- HomePage: () => HomePage
22
- });
23
- module.exports = __toCommonJS(home_page_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_top_posts = require("./top-posts");
26
- var import_folders = require("./folders");
27
- var import_pagination = require("./pagination");
28
- var import_json_ld = require("./_helpers/json-ld");
29
- var import_json_ld2 = require("../json-ld");
30
- const HomePage = ({
31
- data,
32
- header,
33
- cta
34
- }) => {
35
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
36
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_json_ld2.OpinlyJSONLD, { content: (0, import_json_ld.blogJSONLD)() }),
37
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "max-w-7xl mx-auto px-4 py-10", children: [
38
- header,
39
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_top_posts.TopPosts, { posts: data.posts }),
40
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_pagination.HomePagePagination, { count: data.count, page: data.page }),
41
- cta,
42
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_folders.HomePageFolders, { folders: data.folders })
43
- ] })
44
- ] });
45
- };
46
- // Annotate the CommonJS export names for ESM import in node:
47
- 0 && (module.exports = {
48
- HomePage
49
- });
50
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/home-page/index.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { TopPosts } from \"./top-posts\";\nimport { HomePageFolders } from \"./folders\";\nimport { HomePagePagination } from \"./pagination\";\nimport { blogJSONLD } from \"./_helpers/json-ld\";\nimport { OpinlyBreadCrumbJsonLd, OpinlyJSONLD } from \"../json-ld\";\n\nexport type HomePageProps = {\n header?: React.ReactNode;\n cta?: React.ReactNode;\n};\n\nexport const HomePage = ({\n data,\n header,\n cta,\n}: {\n data: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"];\n} & HomePageProps) => {\n return (\n <>\n <OpinlyJSONLD content={blogJSONLD()} />\n\n <div className=\"max-w-7xl mx-auto px-4 py-10\">\n {header}\n\n <TopPosts posts={data.posts} />\n <HomePagePagination count={data.count} page={data.page} />\n {cta}\n <HomePageFolders folders={data.folders} />\n </div>\n </>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBI;AAtBJ,uBAAyB;AACzB,qBAAgC;AAChC,wBAAmC;AACnC,qBAA2B;AAC3B,IAAAA,kBAAqD;AAO9C,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,MAKsB;AACpB,SACE,4EACE;AAAA,gDAAC,gCAAa,aAAS,2BAAW,GAAG;AAAA,IAErC,6CAAC,SAAI,WAAU,gCACZ;AAAA;AAAA,MAED,4CAAC,6BAAS,OAAO,KAAK,OAAO;AAAA,MAC7B,4CAAC,wCAAmB,OAAO,KAAK,OAAO,MAAM,KAAK,MAAM;AAAA,MACvD;AAAA,MACD,4CAAC,kCAAgB,SAAS,KAAK,SAAS;AAAA,OAC1C;AAAA,KACF;AAEJ;","names":["import_json_ld"]}
@@ -1,14 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- type HomePageProps = {
5
- header?: React.ReactNode;
6
- cta?: React.ReactNode;
7
- };
8
- declare const HomePage: ({ data, header, cta, }: {
9
- data: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
10
- type: "home";
11
- }>["data"];
12
- } & HomePageProps) => react_jsx_runtime.JSX.Element;
13
-
14
- export { HomePage, type HomePageProps };
@@ -1,14 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- type HomePageProps = {
5
- header?: React.ReactNode;
6
- cta?: React.ReactNode;
7
- };
8
- declare const HomePage: ({ data, header, cta, }: {
9
- data: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
10
- type: "home";
11
- }>["data"];
12
- } & HomePageProps) => react_jsx_runtime.JSX.Element;
13
-
14
- export { HomePage, type HomePageProps };
@@ -1,26 +0,0 @@
1
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
- import { TopPosts } from "./top-posts";
3
- import { HomePageFolders } from "./folders";
4
- import { HomePagePagination } from "./pagination";
5
- import { blogJSONLD } from "./_helpers/json-ld";
6
- import { OpinlyJSONLD } from "../json-ld";
7
- const HomePage = ({
8
- data,
9
- header,
10
- cta
11
- }) => {
12
- return /* @__PURE__ */ jsxs(Fragment, { children: [
13
- /* @__PURE__ */ jsx(OpinlyJSONLD, { content: blogJSONLD() }),
14
- /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto px-4 py-10", children: [
15
- header,
16
- /* @__PURE__ */ jsx(TopPosts, { posts: data.posts }),
17
- /* @__PURE__ */ jsx(HomePagePagination, { count: data.count, page: data.page }),
18
- cta,
19
- /* @__PURE__ */ jsx(HomePageFolders, { folders: data.folders })
20
- ] })
21
- ] });
22
- };
23
- export {
24
- HomePage
25
- };
26
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/home-page/index.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { TopPosts } from \"./top-posts\";\nimport { HomePageFolders } from \"./folders\";\nimport { HomePagePagination } from \"./pagination\";\nimport { blogJSONLD } from \"./_helpers/json-ld\";\nimport { OpinlyBreadCrumbJsonLd, OpinlyJSONLD } from \"../json-ld\";\n\nexport type HomePageProps = {\n header?: React.ReactNode;\n cta?: React.ReactNode;\n};\n\nexport const HomePage = ({\n data,\n header,\n cta,\n}: {\n data: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"];\n} & HomePageProps) => {\n return (\n <>\n <OpinlyJSONLD content={blogJSONLD()} />\n\n <div className=\"max-w-7xl mx-auto px-4 py-10\">\n {header}\n\n <TopPosts posts={data.posts} />\n <HomePagePagination count={data.count} page={data.page} />\n {cta}\n <HomePageFolders folders={data.folders} />\n </div>\n </>\n );\n};\n"],"mappings":"AAuBI,mBACE,KAEA,YAHF;AAtBJ,SAAS,gBAAgB;AACzB,SAAS,uBAAuB;AAChC,SAAS,0BAA0B;AACnC,SAAS,kBAAkB;AAC3B,SAAiC,oBAAoB;AAO9C,MAAM,WAAW,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AACF,MAKsB;AACpB,SACE,iCACE;AAAA,wBAAC,gBAAa,SAAS,WAAW,GAAG;AAAA,IAErC,qBAAC,SAAI,WAAU,gCACZ;AAAA;AAAA,MAED,oBAAC,YAAS,OAAO,KAAK,OAAO;AAAA,MAC7B,oBAAC,sBAAmB,OAAO,KAAK,OAAO,MAAM,KAAK,MAAM;AAAA,MACvD;AAAA,MACD,oBAAC,mBAAgB,SAAS,KAAK,SAAS;AAAA,OAC1C;AAAA,KACF;AAEJ;","names":[]}
@@ -1,97 +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 pagination_exports = {};
30
- __export(pagination_exports, {
31
- HomePagePagination: () => HomePagePagination
32
- });
33
- module.exports = __toCommonJS(pagination_exports);
34
- var import_jsx_runtime = require("react/jsx-runtime");
35
- var import_link = __toESM(require("next/link"), 1);
36
- var import_merge = require("../../utils/merge");
37
- const HomePagePagination = ({
38
- count,
39
- page
40
- }) => {
41
- const totalPages = Math.ceil(count / 9);
42
- const pages = [];
43
- if (totalPages <= 5) {
44
- for (let i = 1; i <= totalPages; i++) {
45
- pages.push(i);
46
- }
47
- } else {
48
- let start, end;
49
- if (page <= 3) {
50
- start = 1;
51
- end = 5;
52
- } else if (page >= totalPages - 2) {
53
- start = totalPages - 4;
54
- end = totalPages;
55
- } else {
56
- start = page - 2;
57
- end = page + 2;
58
- }
59
- if (start > 1) {
60
- pages.push(1);
61
- if (start > 2) pages.push("ellipsis");
62
- }
63
- for (let i = start; i <= end; i++) {
64
- pages.push(i);
65
- }
66
- if (end < totalPages) {
67
- if (end < totalPages - 1) pages.push("ellipsis");
68
- pages.push(totalPages);
69
- }
70
- }
71
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
72
- "nav",
73
- {
74
- "aria-label": "Pagination",
75
- className: "flex justify-center items-center mt-10 gap-2",
76
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex items-center space-x-1", children: pages.map(
77
- (p, idx) => p === "ellipsis" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "px-2", children: "\u2026" }, `el-${idx}`) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
- import_link.default,
79
- {
80
- href: `?page=${p}`,
81
- className: (0, import_merge.cn)(
82
- "w-10 h-10 flex items-center justify-center rounded-md",
83
- page === p ? "bg-primary text-white bg-black" : "border border-gray-200 dark:border-gray-700"
84
- ),
85
- children: p
86
- },
87
- p
88
- )
89
- ) })
90
- }
91
- );
92
- };
93
- // Annotate the CommonJS export names for ESM import in node:
94
- 0 && (module.exports = {
95
- HomePagePagination
96
- });
97
- //# sourceMappingURL=pagination.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/home-page/pagination.tsx"],"sourcesContent":["import React from \"react\";\nimport Link from \"next/link\";\nimport { cn } from \"../../utils/merge\";\nimport { Opinly } from \"@opinly/backend\";\n\ninterface HomePagePaginationProps {\n count: number;\n page: number;\n}\n\nexport const HomePagePagination = ({\n count,\n page,\n}: HomePagePaginationProps) => {\n const totalPages = Math.ceil(count / 9);\n\n // build a list of page labels: either a number or the string \"ellipsis\"\n const pages: (number | \"ellipsis\")[] = [];\n\n if (totalPages <= 5) {\n // Show every page\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n // determine sliding window\n let start: number, end: number;\n\n if (page <= 3) {\n start = 1;\n end = 5;\n } else if (page >= totalPages - 2) {\n start = totalPages - 4;\n end = totalPages;\n } else {\n start = page - 2;\n end = page + 2;\n }\n\n // first page + leading ellipsis\n if (start > 1) {\n pages.push(1);\n if (start > 2) pages.push(\"ellipsis\");\n }\n\n // window of pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // trailing ellipsis + last page\n if (end < totalPages) {\n if (end < totalPages - 1) pages.push(\"ellipsis\");\n pages.push(totalPages);\n }\n }\n\n return (\n <nav\n aria-label=\"Pagination\"\n className=\"flex justify-center items-center mt-10 gap-2\"\n >\n <div className=\"flex items-center space-x-1\">\n {pages.map((p, idx) =>\n p === \"ellipsis\" ? (\n <span key={`el-${idx}`} className=\"px-2\">\n …\n </span>\n ) : (\n <Link\n key={p}\n href={`?page=${p}`}\n className={cn(\n \"w-10 h-10 flex items-center justify-center rounded-md\",\n page === p\n ? \"bg-primary text-white bg-black\"\n : \"border border-gray-200 dark:border-gray-700\"\n )}\n >\n {p}\n </Link>\n )\n )}\n </div>\n </nav>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAiEY;AAhEZ,kBAAiB;AACjB,mBAAmB;AAQZ,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,aAAa,KAAK,KAAK,QAAQ,CAAC;AAGtC,QAAM,QAAiC,CAAC;AAExC,MAAI,cAAc,GAAG;AAEnB,aAAS,IAAI,GAAG,KAAK,YAAY,KAAK;AACpC,YAAM,KAAK,CAAC;AAAA,IACd;AAAA,EACF,OAAO;AAEL,QAAI,OAAe;AAEnB,QAAI,QAAQ,GAAG;AACb,cAAQ;AACR,YAAM;AAAA,IACR,WAAW,QAAQ,aAAa,GAAG;AACjC,cAAQ,aAAa;AACrB,YAAM;AAAA,IACR,OAAO;AACL,cAAQ,OAAO;AACf,YAAM,OAAO;AAAA,IACf;AAGA,QAAI,QAAQ,GAAG;AACb,YAAM,KAAK,CAAC;AACZ,UAAI,QAAQ,EAAG,OAAM,KAAK,UAAU;AAAA,IACtC;AAGA,aAAS,IAAI,OAAO,KAAK,KAAK,KAAK;AACjC,YAAM,KAAK,CAAC;AAAA,IACd;AAGA,QAAI,MAAM,YAAY;AACpB,UAAI,MAAM,aAAa,EAAG,OAAM,KAAK,UAAU;AAC/C,YAAM,KAAK,UAAU;AAAA,IACvB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,WAAU;AAAA,MAEV,sDAAC,SAAI,WAAU,+BACZ,gBAAM;AAAA,QAAI,CAAC,GAAG,QACb,MAAM,aACJ,4CAAC,UAAuB,WAAU,QAAO,sBAA9B,MAAM,GAAG,EAEpB,IAEA;AAAA,UAAC,YAAAA;AAAA,UAAA;AAAA,YAEC,MAAM,SAAS,CAAC;AAAA,YAChB,eAAW;AAAA,cACT;AAAA,cACA,SAAS,IACL,mCACA;AAAA,YACN;AAAA,YAEC;AAAA;AAAA,UATI;AAAA,QAUP;AAAA,MAEJ,GACF;AAAA;AAAA,EACF;AAEJ;","names":["Link"]}
@@ -1,9 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- interface HomePagePaginationProps {
4
- count: number;
5
- page: number;
6
- }
7
- declare const HomePagePagination: ({ count, page, }: HomePagePaginationProps) => react_jsx_runtime.JSX.Element;
8
-
9
- export { HomePagePagination };
@@ -1,9 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- interface HomePagePaginationProps {
4
- count: number;
5
- page: number;
6
- }
7
- declare const HomePagePagination: ({ count, page, }: HomePagePaginationProps) => react_jsx_runtime.JSX.Element;
8
-
9
- export { HomePagePagination };
@@ -1,63 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import Link from "next/link";
3
- import { cn } from "../../utils/merge";
4
- const HomePagePagination = ({
5
- count,
6
- page
7
- }) => {
8
- const totalPages = Math.ceil(count / 9);
9
- const pages = [];
10
- if (totalPages <= 5) {
11
- for (let i = 1; i <= totalPages; i++) {
12
- pages.push(i);
13
- }
14
- } else {
15
- let start, end;
16
- if (page <= 3) {
17
- start = 1;
18
- end = 5;
19
- } else if (page >= totalPages - 2) {
20
- start = totalPages - 4;
21
- end = totalPages;
22
- } else {
23
- start = page - 2;
24
- end = page + 2;
25
- }
26
- if (start > 1) {
27
- pages.push(1);
28
- if (start > 2) pages.push("ellipsis");
29
- }
30
- for (let i = start; i <= end; i++) {
31
- pages.push(i);
32
- }
33
- if (end < totalPages) {
34
- if (end < totalPages - 1) pages.push("ellipsis");
35
- pages.push(totalPages);
36
- }
37
- }
38
- return /* @__PURE__ */ jsx(
39
- "nav",
40
- {
41
- "aria-label": "Pagination",
42
- className: "flex justify-center items-center mt-10 gap-2",
43
- children: /* @__PURE__ */ jsx("div", { className: "flex items-center space-x-1", children: pages.map(
44
- (p, idx) => p === "ellipsis" ? /* @__PURE__ */ jsx("span", { className: "px-2", children: "\u2026" }, `el-${idx}`) : /* @__PURE__ */ jsx(
45
- Link,
46
- {
47
- href: `?page=${p}`,
48
- className: cn(
49
- "w-10 h-10 flex items-center justify-center rounded-md",
50
- page === p ? "bg-primary text-white bg-black" : "border border-gray-200 dark:border-gray-700"
51
- ),
52
- children: p
53
- },
54
- p
55
- )
56
- ) })
57
- }
58
- );
59
- };
60
- export {
61
- HomePagePagination
62
- };
63
- //# sourceMappingURL=pagination.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/home-page/pagination.tsx"],"sourcesContent":["import React from \"react\";\nimport Link from \"next/link\";\nimport { cn } from \"../../utils/merge\";\nimport { Opinly } from \"@opinly/backend\";\n\ninterface HomePagePaginationProps {\n count: number;\n page: number;\n}\n\nexport const HomePagePagination = ({\n count,\n page,\n}: HomePagePaginationProps) => {\n const totalPages = Math.ceil(count / 9);\n\n // build a list of page labels: either a number or the string \"ellipsis\"\n const pages: (number | \"ellipsis\")[] = [];\n\n if (totalPages <= 5) {\n // Show every page\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n // determine sliding window\n let start: number, end: number;\n\n if (page <= 3) {\n start = 1;\n end = 5;\n } else if (page >= totalPages - 2) {\n start = totalPages - 4;\n end = totalPages;\n } else {\n start = page - 2;\n end = page + 2;\n }\n\n // first page + leading ellipsis\n if (start > 1) {\n pages.push(1);\n if (start > 2) pages.push(\"ellipsis\");\n }\n\n // window of pages\n for (let i = start; i <= end; i++) {\n pages.push(i);\n }\n\n // trailing ellipsis + last page\n if (end < totalPages) {\n if (end < totalPages - 1) pages.push(\"ellipsis\");\n pages.push(totalPages);\n }\n }\n\n return (\n <nav\n aria-label=\"Pagination\"\n className=\"flex justify-center items-center mt-10 gap-2\"\n >\n <div className=\"flex items-center space-x-1\">\n {pages.map((p, idx) =>\n p === \"ellipsis\" ? (\n <span key={`el-${idx}`} className=\"px-2\">\n …\n </span>\n ) : (\n <Link\n key={p}\n href={`?page=${p}`}\n className={cn(\n \"w-10 h-10 flex items-center justify-center rounded-md\",\n page === p\n ? \"bg-primary text-white bg-black\"\n : \"border border-gray-200 dark:border-gray-700\"\n )}\n >\n {p}\n </Link>\n )\n )}\n </div>\n </nav>\n );\n};\n"],"mappings":"AAiEY;AAhEZ,OAAO,UAAU;AACjB,SAAS,UAAU;AAQZ,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AACF,MAA+B;AAC7B,QAAM,aAAa,KAAK,KAAK,QAAQ,CAAC;AAGtC,QAAM,QAAiC,CAAC;AAExC,MAAI,cAAc,GAAG;AAEnB,aAAS,IAAI,GAAG,KAAK,YAAY,KAAK;AACpC,YAAM,KAAK,CAAC;AAAA,IACd;AAAA,EACF,OAAO;AAEL,QAAI,OAAe;AAEnB,QAAI,QAAQ,GAAG;AACb,cAAQ;AACR,YAAM;AAAA,IACR,WAAW,QAAQ,aAAa,GAAG;AACjC,cAAQ,aAAa;AACrB,YAAM;AAAA,IACR,OAAO;AACL,cAAQ,OAAO;AACf,YAAM,OAAO;AAAA,IACf;AAGA,QAAI,QAAQ,GAAG;AACb,YAAM,KAAK,CAAC;AACZ,UAAI,QAAQ,EAAG,OAAM,KAAK,UAAU;AAAA,IACtC;AAGA,aAAS,IAAI,OAAO,KAAK,KAAK,KAAK;AACjC,YAAM,KAAK,CAAC;AAAA,IACd;AAGA,QAAI,MAAM,YAAY;AACpB,UAAI,MAAM,aAAa,EAAG,OAAM,KAAK,UAAU;AAC/C,YAAM,KAAK,UAAU;AAAA,IACvB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,WAAU;AAAA,MAEV,8BAAC,SAAI,WAAU,+BACZ,gBAAM;AAAA,QAAI,CAAC,GAAG,QACb,MAAM,aACJ,oBAAC,UAAuB,WAAU,QAAO,sBAA9B,MAAM,GAAG,EAEpB,IAEA;AAAA,UAAC;AAAA;AAAA,YAEC,MAAM,SAAS,CAAC;AAAA,YAChB,WAAW;AAAA,cACT;AAAA,cACA,SAAS,IACL,mCACA;AAAA,YACN;AAAA,YAEC;AAAA;AAAA,UATI;AAAA,QAUP;AAAA,MAEJ,GACF;AAAA;AAAA,EACF;AAEJ;","names":[]}
@@ -1,35 +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 top_posts_exports = {};
20
- __export(top_posts_exports, {
21
- TopPosts: () => TopPosts
22
- });
23
- module.exports = __toCommonJS(top_posts_exports);
24
- var import_jsx_runtime = require("react/jsx-runtime");
25
- var import_post_preview = require("../post-preview");
26
- const TopPosts = ({
27
- posts
28
- }) => {
29
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10", children: posts.map((post) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_post_preview.PostPreview, { post, priority: true }, "top-posts-" + post.slug)) });
30
- };
31
- // Annotate the CommonJS export names for ESM import in node:
32
- 0 && (module.exports = {
33
- TopPosts
34
- });
35
- //# sourceMappingURL=top-posts.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/home-page/top-posts.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { PostPreview } from \"../post-preview\";\n\nexport const TopPosts = ({\n posts,\n}: {\n posts: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"][\"posts\"];\n}) => {\n return (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10\">\n {posts.map((post) => (\n <PostPreview key={\"top-posts-\" + post.slug} post={post} priority />\n ))}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAcQ;AAbR,0BAA4B;AAErB,MAAM,WAAW,CAAC;AAAA,EACvB;AACF,MAKM;AACJ,SACE,4CAAC,SAAI,WAAU,yDACZ,gBAAM,IAAI,CAAC,SACV,4CAAC,mCAA2C,MAAY,UAAQ,QAA9C,eAAe,KAAK,IAA2B,CAClE,GACH;AAEJ;","names":[]}
@@ -1,10 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- declare const TopPosts: ({ posts, }: {
5
- posts: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
6
- type: "home";
7
- }>["data"]["posts"];
8
- }) => react_jsx_runtime.JSX.Element;
9
-
10
- export { TopPosts };
@@ -1,10 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { Opinly } from '@opinly/backend';
3
-
4
- declare const TopPosts: ({ posts, }: {
5
- posts: Extract<Awaited<ReturnType<Opinly["content"]["blog"]>>, {
6
- type: "home";
7
- }>["data"]["posts"];
8
- }) => react_jsx_runtime.JSX.Element;
9
-
10
- export { TopPosts };
@@ -1,11 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { PostPreview } from "../post-preview";
3
- const TopPosts = ({
4
- posts
5
- }) => {
6
- return /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10", children: posts.map((post) => /* @__PURE__ */ jsx(PostPreview, { post, priority: true }, "top-posts-" + post.slug)) });
7
- };
8
- export {
9
- TopPosts
10
- };
11
- //# sourceMappingURL=top-posts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/components/home-page/top-posts.tsx"],"sourcesContent":["import { Opinly } from \"@opinly/backend\";\nimport { PostPreview } from \"../post-preview\";\n\nexport const TopPosts = ({\n posts,\n}: {\n posts: Extract<\n Awaited<ReturnType<Opinly[\"content\"][\"blog\"]>>,\n { type: \"home\" }\n >[\"data\"][\"posts\"];\n}) => {\n return (\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-10\">\n {posts.map((post) => (\n <PostPreview key={\"top-posts-\" + post.slug} post={post} priority />\n ))}\n </div>\n );\n};\n"],"mappings":"AAcQ;AAbR,SAAS,mBAAmB;AAErB,MAAM,WAAW,CAAC;AAAA,EACvB;AACF,MAKM;AACJ,SACE,oBAAC,SAAI,WAAU,yDACZ,gBAAM,IAAI,CAAC,SACV,oBAAC,eAA2C,MAAY,UAAQ,QAA9C,eAAe,KAAK,IAA2B,CAClE,GACH;AAEJ;","names":[]}
@@ -1,92 +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 json_ld_exports = {};
30
- __export(json_ld_exports, {
31
- OpinlyBreadCrumbJsonLd: () => OpinlyBreadCrumbJsonLd,
32
- OpinlyJSONLD: () => OpinlyJSONLD
33
- });
34
- module.exports = __toCommonJS(json_ld_exports);
35
- var import_jsx_runtime = require("react/jsx-runtime");
36
- var import_script = __toESM(require("next/script"), 1);
37
- var import_sdk_config = require("../utils/sdk-config");
38
- const OpinlyJSONLD = ({ content }) => {
39
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
40
- import_script.default,
41
- {
42
- strategy: "beforeInteractive",
43
- type: "application/ld+json",
44
- dangerouslySetInnerHTML: {
45
- __html: content
46
- }
47
- }
48
- );
49
- };
50
- const OpinlyBreadCrumbJsonLd = ({
51
- items
52
- }) => {
53
- const itemListElement = [
54
- {
55
- "@type": "ListItem",
56
- position: 1,
57
- item: {
58
- "@id": import_sdk_config.opinlyConfig.siteUrl,
59
- name: import_sdk_config.opinlyConfig.siteName
60
- }
61
- },
62
- {
63
- "@type": "ListItem",
64
- position: 2,
65
- item: {
66
- "@id": import_sdk_config.opinlyConfig.blogUrl,
67
- name: "Blog"
68
- }
69
- },
70
- ...items.map((item, index) => ({
71
- "@type": "ListItem",
72
- position: index + 3,
73
- item: {
74
- "@id": `${import_sdk_config.opinlyConfig.blogUrl}/${item.slugNoPrefixSlash}`,
75
- name: item.name
76
- }
77
- }))
78
- ];
79
- const jsonLD = {
80
- "@context": "https://schema.org",
81
- "@type": "BreadcrumbList",
82
- // @ts-expect-error - itemListElement is not typed correctly
83
- itemListElement
84
- };
85
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(OpinlyJSONLD, { content: JSON.stringify(jsonLD) });
86
- };
87
- // Annotate the CommonJS export names for ESM import in node:
88
- 0 && (module.exports = {
89
- OpinlyBreadCrumbJsonLd,
90
- OpinlyJSONLD
91
- });
92
- //# sourceMappingURL=json-ld.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/components/json-ld.tsx"],"sourcesContent":["import Script from \"next/script\";\nimport { opinlyConfig } from \"../utils/sdk-config\";\nimport { BreadcrumbList, WithContext } from \"schema-dts\";\n\nexport const OpinlyJSONLD = ({ content }: { content: string }) => {\n return (\n <Script\n strategy=\"beforeInteractive\"\n type=\"application/ld+json\"\n dangerouslySetInnerHTML={{\n __html: content,\n }}\n />\n );\n};\n\nexport const OpinlyBreadCrumbJsonLd = ({\n items,\n}: {\n items: {\n slugNoPrefixSlash: string;\n name: string;\n }[];\n}) => {\n const itemListElement = [\n {\n \"@type\": \"ListItem\",\n position: 1,\n item: {\n \"@id\": opinlyConfig.siteUrl,\n name: opinlyConfig.siteName,\n },\n },\n {\n \"@type\": \"ListItem\",\n position: 2,\n item: {\n \"@id\": opinlyConfig.blogUrl,\n name: \"Blog\",\n },\n },\n ...items.map((item, index) => ({\n \"@type\": \"ListItem\",\n position: index + 3,\n item: {\n \"@id\": `${opinlyConfig.blogUrl}/${item.slugNoPrefixSlash}`,\n name: item.name,\n },\n })),\n ];\n\n const jsonLD: WithContext<BreadcrumbList> = {\n \"@context\": \"https://schema.org\",\n \"@type\": \"BreadcrumbList\",\n // @ts-expect-error - itemListElement is not typed correctly\n itemListElement,\n };\n\n return <OpinlyJSONLD content={JSON.stringify(jsonLD)} />;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAMI;AANJ,oBAAmB;AACnB,wBAA6B;AAGtB,MAAM,eAAe,CAAC,EAAE,QAAQ,MAA2B;AAChE,SACE;AAAA,IAAC,cAAAA;AAAA,IAAA;AAAA,MACC,UAAS;AAAA,MACT,MAAK;AAAA,MACL,yBAAyB;AAAA,QACvB,QAAQ;AAAA,MACV;AAAA;AAAA,EACF;AAEJ;AAEO,MAAM,yBAAyB,CAAC;AAAA,EACrC;AACF,MAKM;AACJ,QAAM,kBAAkB;AAAA,IACtB;AAAA,MACE,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM;AAAA,QACJ,OAAO,+BAAa;AAAA,QACpB,MAAM,+BAAa;AAAA,MACrB;AAAA,IACF;AAAA,IACA;AAAA,MACE,SAAS;AAAA,MACT,UAAU;AAAA,MACV,MAAM;AAAA,QACJ,OAAO,+BAAa;AAAA,QACpB,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,GAAG,MAAM,IAAI,CAAC,MAAM,WAAW;AAAA,MAC7B,SAAS;AAAA,MACT,UAAU,QAAQ;AAAA,MAClB,MAAM;AAAA,QACJ,OAAO,GAAG,+BAAa,OAAO,IAAI,KAAK,iBAAiB;AAAA,QACxD,MAAM,KAAK;AAAA,MACb;AAAA,IACF,EAAE;AAAA,EACJ;AAEA,QAAM,SAAsC;AAAA,IAC1C,YAAY;AAAA,IACZ,SAAS;AAAA;AAAA,IAET;AAAA,EACF;AAEA,SAAO,4CAAC,gBAAa,SAAS,KAAK,UAAU,MAAM,GAAG;AACxD;","names":["Script"]}
@@ -1,13 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- declare const OpinlyJSONLD: ({ content }: {
4
- content: string;
5
- }) => react_jsx_runtime.JSX.Element;
6
- declare const OpinlyBreadCrumbJsonLd: ({ items, }: {
7
- items: {
8
- slugNoPrefixSlash: string;
9
- name: string;
10
- }[];
11
- }) => react_jsx_runtime.JSX.Element;
12
-
13
- export { OpinlyBreadCrumbJsonLd, OpinlyJSONLD };
@@ -1,13 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
-
3
- declare const OpinlyJSONLD: ({ content }: {
4
- content: string;
5
- }) => react_jsx_runtime.JSX.Element;
6
- declare const OpinlyBreadCrumbJsonLd: ({ items, }: {
7
- items: {
8
- slugNoPrefixSlash: string;
9
- name: string;
10
- }[];
11
- }) => react_jsx_runtime.JSX.Element;
12
-
13
- export { OpinlyBreadCrumbJsonLd, OpinlyJSONLD };