@canvas-digital/blog-sdk 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/README.md +110 -0
  2. package/dist/BlogPlatform.d.ts +40 -0
  3. package/dist/BlogPlatform.d.ts.map +1 -0
  4. package/dist/BlogPlatform.js +38 -0
  5. package/dist/admin/components/BlogAdmin.d.ts +10 -0
  6. package/dist/admin/components/BlogAdmin.d.ts.map +1 -0
  7. package/dist/admin/components/BlogAdmin.js +36 -0
  8. package/dist/admin/components/CategoryManager.d.ts +5 -0
  9. package/dist/admin/components/CategoryManager.d.ts.map +1 -0
  10. package/dist/admin/components/CategoryManager.js +43 -0
  11. package/dist/admin/components/MediaManager.d.ts +7 -0
  12. package/dist/admin/components/MediaManager.d.ts.map +1 -0
  13. package/dist/admin/components/MediaManager.js +37 -0
  14. package/dist/admin/components/PostEditor.d.ts +7 -0
  15. package/dist/admin/components/PostEditor.d.ts.map +1 -0
  16. package/dist/admin/components/PostEditor.js +160 -0
  17. package/dist/admin/components/PostList.d.ts +8 -0
  18. package/dist/admin/components/PostList.d.ts.map +1 -0
  19. package/dist/admin/components/PostList.js +32 -0
  20. package/dist/admin/components/TagManager.d.ts +5 -0
  21. package/dist/admin/components/TagManager.d.ts.map +1 -0
  22. package/dist/admin/components/TagManager.js +41 -0
  23. package/dist/admin/components/editor/RichTextEditor.d.ts +8 -0
  24. package/dist/admin/components/editor/RichTextEditor.d.ts.map +1 -0
  25. package/dist/admin/components/editor/RichTextEditor.js +47 -0
  26. package/dist/admin/components/internal/States.d.ts +16 -0
  27. package/dist/admin/components/internal/States.d.ts.map +1 -0
  28. package/dist/admin/components/internal/States.js +15 -0
  29. package/dist/admin/hooks/useAsync.d.ts +23 -0
  30. package/dist/admin/hooks/useAsync.d.ts.map +1 -0
  31. package/dist/admin/hooks/useAsync.js +40 -0
  32. package/dist/admin/index.d.ts +10 -0
  33. package/dist/admin/index.d.ts.map +1 -0
  34. package/dist/admin/index.js +9 -0
  35. package/dist/admin/theme.d.ts +6 -0
  36. package/dist/admin/theme.d.ts.map +1 -0
  37. package/dist/admin/theme.js +52 -0
  38. package/dist/admin/types.d.ts +27 -0
  39. package/dist/admin/types.d.ts.map +1 -0
  40. package/dist/admin/types.js +1 -0
  41. package/dist/blog-client.iife.js +1 -0
  42. package/dist/client/admin-client.d.ts +33 -0
  43. package/dist/client/admin-client.d.ts.map +1 -0
  44. package/dist/client/admin-client.js +153 -0
  45. package/dist/client/errors.d.ts +14 -0
  46. package/dist/client/errors.d.ts.map +1 -0
  47. package/dist/client/errors.js +26 -0
  48. package/dist/client/http.d.ts +12 -0
  49. package/dist/client/http.d.ts.map +1 -0
  50. package/dist/client/http.js +135 -0
  51. package/dist/client/index.d.ts +7 -0
  52. package/dist/client/index.d.ts.map +1 -0
  53. package/dist/client/index.js +6 -0
  54. package/dist/client/pagination.d.ts +4 -0
  55. package/dist/client/pagination.d.ts.map +1 -0
  56. package/dist/client/pagination.js +32 -0
  57. package/dist/client/public-client.d.ts +23 -0
  58. package/dist/client/public-client.d.ts.map +1 -0
  59. package/dist/client/public-client.js +94 -0
  60. package/dist/client/types.d.ts +115 -0
  61. package/dist/client/types.d.ts.map +1 -0
  62. package/dist/client/types.js +1 -0
  63. package/dist/components/BlogUploader/BackButton.d.ts +5 -0
  64. package/dist/components/BlogUploader/BackButton.d.ts.map +1 -0
  65. package/dist/components/BlogUploader/BackButton.js +27 -0
  66. package/dist/components/BlogUploader/CommentSection.d.ts +12 -0
  67. package/dist/components/BlogUploader/CommentSection.d.ts.map +1 -0
  68. package/dist/components/BlogUploader/CommentSection.js +65 -0
  69. package/dist/components/BlogUploader/PostCard.d.ts +17 -0
  70. package/dist/components/BlogUploader/PostCard.d.ts.map +1 -0
  71. package/dist/components/BlogUploader/PostCard.js +42 -0
  72. package/dist/components/BlogUploader/PostFormatHero.d.ts +7 -0
  73. package/dist/components/BlogUploader/PostFormatHero.d.ts.map +1 -0
  74. package/dist/components/BlogUploader/PostFormatHero.js +47 -0
  75. package/dist/components/BlogUploader/ReadingProgress.d.ts +9 -0
  76. package/dist/components/BlogUploader/ReadingProgress.d.ts.map +1 -0
  77. package/dist/components/BlogUploader/ReadingProgress.js +28 -0
  78. package/dist/components/BlogUploader/RichText.d.ts +5 -0
  79. package/dist/components/BlogUploader/RichText.d.ts.map +1 -0
  80. package/dist/components/BlogUploader/RichText.js +59 -0
  81. package/dist/components/BlogUploader/ShareRow.d.ts +12 -0
  82. package/dist/components/BlogUploader/ShareRow.d.ts.map +1 -0
  83. package/dist/components/BlogUploader/ShareRow.js +13 -0
  84. package/dist/components/BlogUploader/ViewBeacon.d.ts +12 -0
  85. package/dist/components/BlogUploader/ViewBeacon.d.ts.map +1 -0
  86. package/dist/components/BlogUploader/ViewBeacon.js +37 -0
  87. package/dist/components/BlogUploader/dashboard/BrandSettings.d.ts +28 -0
  88. package/dist/components/BlogUploader/dashboard/BrandSettings.d.ts.map +1 -0
  89. package/dist/components/BlogUploader/dashboard/BrandSettings.js +60 -0
  90. package/dist/components/BlogUploader/dashboard/BrandSwitcher.d.ts +14 -0
  91. package/dist/components/BlogUploader/dashboard/BrandSwitcher.d.ts.map +1 -0
  92. package/dist/components/BlogUploader/dashboard/BrandSwitcher.js +25 -0
  93. package/dist/components/BlogUploader/dashboard/Chips.d.ts +15 -0
  94. package/dist/components/BlogUploader/dashboard/Chips.d.ts.map +1 -0
  95. package/dist/components/BlogUploader/dashboard/Chips.js +15 -0
  96. package/dist/components/BlogUploader/dashboard/CommentsManager.d.ts +19 -0
  97. package/dist/components/BlogUploader/dashboard/CommentsManager.d.ts.map +1 -0
  98. package/dist/components/BlogUploader/dashboard/CommentsManager.js +32 -0
  99. package/dist/components/BlogUploader/dashboard/LogOutButton.d.ts +4 -0
  100. package/dist/components/BlogUploader/dashboard/LogOutButton.d.ts.map +1 -0
  101. package/dist/components/BlogUploader/dashboard/LogOutButton.js +22 -0
  102. package/dist/components/BlogUploader/dashboard/MediaLibrary.d.ts +16 -0
  103. package/dist/components/BlogUploader/dashboard/MediaLibrary.d.ts.map +1 -0
  104. package/dist/components/BlogUploader/dashboard/MediaLibrary.js +124 -0
  105. package/dist/components/BlogUploader/dashboard/MediaPicker.d.ts +19 -0
  106. package/dist/components/BlogUploader/dashboard/MediaPicker.d.ts.map +1 -0
  107. package/dist/components/BlogUploader/dashboard/MediaPicker.js +99 -0
  108. package/dist/components/BlogUploader/dashboard/PostsTable.d.ts +46 -0
  109. package/dist/components/BlogUploader/dashboard/PostsTable.d.ts.map +1 -0
  110. package/dist/components/BlogUploader/dashboard/PostsTable.js +109 -0
  111. package/dist/components/BlogUploader/dashboard/Shell.d.ts +25 -0
  112. package/dist/components/BlogUploader/dashboard/Shell.d.ts.map +1 -0
  113. package/dist/components/BlogUploader/dashboard/Shell.js +128 -0
  114. package/dist/components/BlogUploader/dashboard/TermManager.d.ts +29 -0
  115. package/dist/components/BlogUploader/dashboard/TermManager.d.ts.map +1 -0
  116. package/dist/components/BlogUploader/dashboard/TermManager.js +96 -0
  117. package/dist/components/BlogUploader/dashboard/ToastProvider.d.ts +6 -0
  118. package/dist/components/BlogUploader/dashboard/ToastProvider.d.ts.map +1 -0
  119. package/dist/components/BlogUploader/dashboard/ToastProvider.js +5 -0
  120. package/dist/components/BlogUploader/dashboard/UsersManager.d.ts +32 -0
  121. package/dist/components/BlogUploader/dashboard/UsersManager.d.ts.map +1 -0
  122. package/dist/components/BlogUploader/dashboard/UsersManager.js +98 -0
  123. package/dist/components/BlogUploader/dashboard/charts.d.ts +22 -0
  124. package/dist/components/BlogUploader/dashboard/charts.d.ts.map +1 -0
  125. package/dist/components/BlogUploader/dashboard/charts.js +79 -0
  126. package/dist/components/BlogUploader/dashboard/editor/FormatContentPanel.d.ts +25 -0
  127. package/dist/components/BlogUploader/dashboard/editor/FormatContentPanel.d.ts.map +1 -0
  128. package/dist/components/BlogUploader/dashboard/editor/FormatContentPanel.js +62 -0
  129. package/dist/components/BlogUploader/dashboard/editor/PostEditor.d.ts +95 -0
  130. package/dist/components/BlogUploader/dashboard/editor/PostEditor.d.ts.map +1 -0
  131. package/dist/components/BlogUploader/dashboard/editor/PostEditor.js +649 -0
  132. package/dist/components/BlogUploader/dashboard/editor/RichTextEditor.d.ts +37 -0
  133. package/dist/components/BlogUploader/dashboard/editor/RichTextEditor.d.ts.map +1 -0
  134. package/dist/components/BlogUploader/dashboard/editor/RichTextEditor.js +475 -0
  135. package/dist/components/BlogUploader/dashboard/editor/SeoAnalysisPanel.d.ts +11 -0
  136. package/dist/components/BlogUploader/dashboard/editor/SeoAnalysisPanel.d.ts.map +1 -0
  137. package/dist/components/BlogUploader/dashboard/editor/SeoAnalysisPanel.js +31 -0
  138. package/dist/components/BlogUploader/dashboard/editor/YoastCollapsible.d.ts +12 -0
  139. package/dist/components/BlogUploader/dashboard/editor/YoastCollapsible.d.ts.map +1 -0
  140. package/dist/components/BlogUploader/dashboard/editor/YoastCollapsible.js +5 -0
  141. package/dist/components/BlogUploader/dashboard/editor/YoastInsightsPanel.d.ts +4 -0
  142. package/dist/components/BlogUploader/dashboard/editor/YoastInsightsPanel.d.ts.map +1 -0
  143. package/dist/components/BlogUploader/dashboard/editor/YoastInsightsPanel.js +31 -0
  144. package/dist/components/BlogUploader/dashboard/editor/YoastInternalLinksPanel.d.ts +4 -0
  145. package/dist/components/BlogUploader/dashboard/editor/YoastInternalLinksPanel.d.ts.map +1 -0
  146. package/dist/components/BlogUploader/dashboard/editor/YoastInternalLinksPanel.js +35 -0
  147. package/dist/components/BlogUploader/dashboard/editor/YoastSeoAnalysisPanel.d.ts +11 -0
  148. package/dist/components/BlogUploader/dashboard/editor/YoastSeoAnalysisPanel.d.ts.map +1 -0
  149. package/dist/components/BlogUploader/dashboard/editor/YoastSeoAnalysisPanel.js +23 -0
  150. package/dist/components/BlogUploader/dashboard/editor/YoastSeoMetabox.d.ts +50 -0
  151. package/dist/components/BlogUploader/dashboard/editor/YoastSeoMetabox.d.ts.map +1 -0
  152. package/dist/components/BlogUploader/dashboard/editor/YoastSeoMetabox.js +101 -0
  153. package/dist/components/BlogUploader/dashboard/editor/YoastSnippetField.d.ts +22 -0
  154. package/dist/components/BlogUploader/dashboard/editor/YoastSnippetField.d.ts.map +1 -0
  155. package/dist/components/BlogUploader/dashboard/editor/YoastSnippetField.js +51 -0
  156. package/dist/components/BlogUploader/dashboard/editor/load.d.ts +10 -0
  157. package/dist/components/BlogUploader/dashboard/editor/load.d.ts.map +1 -0
  158. package/dist/components/BlogUploader/dashboard/editor/load.js +141 -0
  159. package/dist/components/BlogUploader/dashboard/loadTerms.d.ts +13 -0
  160. package/dist/components/BlogUploader/dashboard/loadTerms.d.ts.map +1 -0
  161. package/dist/components/BlogUploader/dashboard/loadTerms.js +41 -0
  162. package/dist/components/BlogUploader/dashboard/seo/BrandSeoActions.d.ts +8 -0
  163. package/dist/components/BlogUploader/dashboard/seo/BrandSeoActions.d.ts.map +1 -0
  164. package/dist/components/BlogUploader/dashboard/seo/BrandSeoActions.js +35 -0
  165. package/dist/components/BlogUploader/dashboard/seo/Ga4Settings.d.ts +9 -0
  166. package/dist/components/BlogUploader/dashboard/seo/Ga4Settings.d.ts.map +1 -0
  167. package/dist/components/BlogUploader/dashboard/seo/Ga4Settings.js +40 -0
  168. package/dist/components/BlogUploader/dashboard/seo/RedirectAnalyticsDashboard.d.ts +5 -0
  169. package/dist/components/BlogUploader/dashboard/seo/RedirectAnalyticsDashboard.d.ts.map +1 -0
  170. package/dist/components/BlogUploader/dashboard/seo/RedirectAnalyticsDashboard.js +29 -0
  171. package/dist/components/BlogUploader/dashboard/seo/RedirectDetail.d.ts +10 -0
  172. package/dist/components/BlogUploader/dashboard/seo/RedirectDetail.d.ts.map +1 -0
  173. package/dist/components/BlogUploader/dashboard/seo/RedirectDetail.js +31 -0
  174. package/dist/components/BlogUploader/dashboard/seo/RedirectForm.d.ts +27 -0
  175. package/dist/components/BlogUploader/dashboard/seo/RedirectForm.d.ts.map +1 -0
  176. package/dist/components/BlogUploader/dashboard/seo/RedirectForm.js +79 -0
  177. package/dist/components/BlogUploader/dashboard/seo/RedirectList.d.ts +20 -0
  178. package/dist/components/BlogUploader/dashboard/seo/RedirectList.d.ts.map +1 -0
  179. package/dist/components/BlogUploader/dashboard/seo/RedirectList.js +33 -0
  180. package/dist/components/BlogUploader/dashboard/seo/RobotsEditor.d.ts +11 -0
  181. package/dist/components/BlogUploader/dashboard/seo/RobotsEditor.d.ts.map +1 -0
  182. package/dist/components/BlogUploader/dashboard/seo/RobotsEditor.js +54 -0
  183. package/dist/components/BlogUploader/dashboard/seo/SearchConsoleSettings.d.ts +9 -0
  184. package/dist/components/BlogUploader/dashboard/seo/SearchConsoleSettings.d.ts.map +1 -0
  185. package/dist/components/BlogUploader/dashboard/seo/SearchConsoleSettings.js +38 -0
  186. package/dist/components/BlogUploader/dashboard/seo/SeoBrandList.d.ts +28 -0
  187. package/dist/components/BlogUploader/dashboard/seo/SeoBrandList.d.ts.map +1 -0
  188. package/dist/components/BlogUploader/dashboard/seo/SeoBrandList.js +29 -0
  189. package/dist/components/BlogUploader/dashboard/seo/SeoBrandLists.d.ts +17 -0
  190. package/dist/components/BlogUploader/dashboard/seo/SeoBrandLists.d.ts.map +1 -0
  191. package/dist/components/BlogUploader/dashboard/seo/SeoBrandLists.js +8 -0
  192. package/dist/components/BlogUploader/dashboard/seo/shared.d.ts +18 -0
  193. package/dist/components/BlogUploader/dashboard/seo/shared.d.ts.map +1 -0
  194. package/dist/components/BlogUploader/dashboard/seo/shared.js +6 -0
  195. package/dist/components/BlogUploader/dashboard/tools/ExportTool.d.ts +8 -0
  196. package/dist/components/BlogUploader/dashboard/tools/ExportTool.d.ts.map +1 -0
  197. package/dist/components/BlogUploader/dashboard/tools/ExportTool.js +78 -0
  198. package/dist/components/BlogUploader/dashboard/tools/ImportTool.d.ts +7 -0
  199. package/dist/components/BlogUploader/dashboard/tools/ImportTool.d.ts.map +1 -0
  200. package/dist/components/BlogUploader/dashboard/tools/ImportTool.js +70 -0
  201. package/dist/components/BlogUploader/dashboard/upload.d.ts +47 -0
  202. package/dist/components/BlogUploader/dashboard/upload.d.ts.map +1 -0
  203. package/dist/components/BlogUploader/dashboard/upload.js +68 -0
  204. package/dist/components/BlogUploader/site/ArticleDetailHero.d.ts +27 -0
  205. package/dist/components/BlogUploader/site/ArticleDetailHero.d.ts.map +1 -0
  206. package/dist/components/BlogUploader/site/ArticleDetailHero.js +13 -0
  207. package/dist/components/BlogUploader/site/ArticleRailDetails.d.ts +27 -0
  208. package/dist/components/BlogUploader/site/ArticleRailDetails.d.ts.map +1 -0
  209. package/dist/components/BlogUploader/site/ArticleRailDetails.js +17 -0
  210. package/dist/components/BlogUploader/site/BlogIndexView.d.ts +28 -0
  211. package/dist/components/BlogUploader/site/BlogIndexView.d.ts.map +1 -0
  212. package/dist/components/BlogUploader/site/BlogIndexView.js +34 -0
  213. package/dist/components/BlogUploader/site/BrandTableOfContents.d.ts +18 -0
  214. package/dist/components/BlogUploader/site/BrandTableOfContents.d.ts.map +1 -0
  215. package/dist/components/BlogUploader/site/BrandTableOfContents.js +15 -0
  216. package/dist/components/BlogUploader/site/HeroFadeSlide.d.ts +11 -0
  217. package/dist/components/BlogUploader/site/HeroFadeSlide.d.ts.map +1 -0
  218. package/dist/components/BlogUploader/site/HeroFadeSlide.js +3 -0
  219. package/dist/components/BlogUploader/site/HeroMediaVisual.d.ts +23 -0
  220. package/dist/components/BlogUploader/site/HeroMediaVisual.d.ts.map +1 -0
  221. package/dist/components/BlogUploader/site/HeroMediaVisual.js +50 -0
  222. package/dist/components/BlogUploader/site/IndexFeedSection.d.ts +14 -0
  223. package/dist/components/BlogUploader/site/IndexFeedSection.d.ts.map +1 -0
  224. package/dist/components/BlogUploader/site/IndexFeedSection.js +12 -0
  225. package/dist/components/BlogUploader/site/InfinitePostFeed.d.ts +23 -0
  226. package/dist/components/BlogUploader/site/InfinitePostFeed.d.ts.map +1 -0
  227. package/dist/components/BlogUploader/site/InfinitePostFeed.js +152 -0
  228. package/dist/components/BlogUploader/site/SiteMediaHero.d.ts +12 -0
  229. package/dist/components/BlogUploader/site/SiteMediaHero.d.ts.map +1 -0
  230. package/dist/components/BlogUploader/site/SiteMediaHero.js +80 -0
  231. package/dist/components/BlogUploader/site/SiteMotion.d.ts +12 -0
  232. package/dist/components/BlogUploader/site/SiteMotion.d.ts.map +1 -0
  233. package/dist/components/BlogUploader/site/SiteMotion.js +27 -0
  234. package/dist/components/BlogUploader/site/SiteNavAuth.d.ts +8 -0
  235. package/dist/components/BlogUploader/site/SiteNavAuth.d.ts.map +1 -0
  236. package/dist/components/BlogUploader/site/SiteNavAuth.js +36 -0
  237. package/dist/components/admin/AdminPostDetail.d.ts +7 -0
  238. package/dist/components/admin/AdminPostDetail.d.ts.map +1 -0
  239. package/dist/components/admin/AdminPostDetail.js +105 -0
  240. package/dist/components/admin/BrandSettings.d.ts +11 -0
  241. package/dist/components/admin/BrandSettings.d.ts.map +1 -0
  242. package/dist/components/admin/BrandSettings.js +71 -0
  243. package/dist/components/admin/BrandSwitcher.d.ts +3 -0
  244. package/dist/components/admin/BrandSwitcher.d.ts.map +1 -0
  245. package/dist/components/admin/BrandSwitcher.js +12 -0
  246. package/dist/components/admin/CategoryManager.d.ts +2 -0
  247. package/dist/components/admin/CategoryManager.d.ts.map +1 -0
  248. package/dist/components/admin/CategoryManager.js +1 -0
  249. package/dist/components/admin/Chips.d.ts +15 -0
  250. package/dist/components/admin/Chips.d.ts.map +1 -0
  251. package/dist/components/admin/Chips.js +15 -0
  252. package/dist/components/admin/CommentsManager.d.ts +6 -0
  253. package/dist/components/admin/CommentsManager.d.ts.map +1 -0
  254. package/dist/components/admin/CommentsManager.js +30 -0
  255. package/dist/components/admin/Dashboard.d.ts +3 -0
  256. package/dist/components/admin/Dashboard.d.ts.map +1 -0
  257. package/dist/components/admin/Dashboard.js +34 -0
  258. package/dist/components/admin/MediaLibrary.d.ts +4 -0
  259. package/dist/components/admin/MediaLibrary.d.ts.map +1 -0
  260. package/dist/components/admin/MediaLibrary.js +119 -0
  261. package/dist/components/admin/MediaManager.d.ts +2 -0
  262. package/dist/components/admin/MediaManager.d.ts.map +1 -0
  263. package/dist/components/admin/MediaManager.js +1 -0
  264. package/dist/components/admin/MediaPicker.d.ts +10 -0
  265. package/dist/components/admin/MediaPicker.d.ts.map +1 -0
  266. package/dist/components/admin/MediaPicker.js +86 -0
  267. package/dist/components/admin/PostEditor.d.ts +2 -0
  268. package/dist/components/admin/PostEditor.d.ts.map +1 -0
  269. package/dist/components/admin/PostEditor.js +1 -0
  270. package/dist/components/admin/PostList.d.ts +13 -0
  271. package/dist/components/admin/PostList.d.ts.map +1 -0
  272. package/dist/components/admin/PostList.js +93 -0
  273. package/dist/components/admin/PostsTable.d.ts +15 -0
  274. package/dist/components/admin/PostsTable.d.ts.map +1 -0
  275. package/dist/components/admin/PostsTable.js +106 -0
  276. package/dist/components/admin/Shell.d.ts +18 -0
  277. package/dist/components/admin/Shell.d.ts.map +1 -0
  278. package/dist/components/admin/Shell.js +99 -0
  279. package/dist/components/admin/TagManager.d.ts +2 -0
  280. package/dist/components/admin/TagManager.d.ts.map +1 -0
  281. package/dist/components/admin/TagManager.js +1 -0
  282. package/dist/components/admin/TermManager.d.ts +9 -0
  283. package/dist/components/admin/TermManager.d.ts.map +1 -0
  284. package/dist/components/admin/TermManager.js +105 -0
  285. package/dist/components/admin/UsersManager.d.ts +5 -0
  286. package/dist/components/admin/UsersManager.d.ts.map +1 -0
  287. package/dist/components/admin/UsersManager.js +96 -0
  288. package/dist/components/admin/api/mappers.d.ts +37 -0
  289. package/dist/components/admin/api/mappers.d.ts.map +1 -0
  290. package/dist/components/admin/api/mappers.js +174 -0
  291. package/dist/components/admin/charts.d.ts +30 -0
  292. package/dist/components/admin/charts.d.ts.map +1 -0
  293. package/dist/components/admin/charts.js +79 -0
  294. package/dist/components/admin/editor/FormatContentPanel.d.ts +25 -0
  295. package/dist/components/admin/editor/FormatContentPanel.d.ts.map +1 -0
  296. package/dist/components/admin/editor/FormatContentPanel.js +62 -0
  297. package/dist/components/admin/editor/PostEditor.d.ts +5 -0
  298. package/dist/components/admin/editor/PostEditor.d.ts.map +1 -0
  299. package/dist/components/admin/editor/PostEditor.js +404 -0
  300. package/dist/components/admin/editor/RichTextEditor.d.ts +42 -0
  301. package/dist/components/admin/editor/RichTextEditor.d.ts.map +1 -0
  302. package/dist/components/admin/editor/RichTextEditor.js +475 -0
  303. package/dist/components/admin/editor/SeoAnalysisPanel.d.ts +11 -0
  304. package/dist/components/admin/editor/SeoAnalysisPanel.d.ts.map +1 -0
  305. package/dist/components/admin/editor/SeoAnalysisPanel.js +31 -0
  306. package/dist/components/admin/editor/YoastCollapsible.d.ts +12 -0
  307. package/dist/components/admin/editor/YoastCollapsible.d.ts.map +1 -0
  308. package/dist/components/admin/editor/YoastCollapsible.js +5 -0
  309. package/dist/components/admin/editor/YoastInsightsPanel.d.ts +4 -0
  310. package/dist/components/admin/editor/YoastInsightsPanel.d.ts.map +1 -0
  311. package/dist/components/admin/editor/YoastInsightsPanel.js +31 -0
  312. package/dist/components/admin/editor/YoastInternalLinksPanel.d.ts +4 -0
  313. package/dist/components/admin/editor/YoastInternalLinksPanel.d.ts.map +1 -0
  314. package/dist/components/admin/editor/YoastInternalLinksPanel.js +35 -0
  315. package/dist/components/admin/editor/YoastSeoAnalysisPanel.d.ts +11 -0
  316. package/dist/components/admin/editor/YoastSeoAnalysisPanel.d.ts.map +1 -0
  317. package/dist/components/admin/editor/YoastSeoAnalysisPanel.js +23 -0
  318. package/dist/components/admin/editor/YoastSeoMetabox.d.ts +54 -0
  319. package/dist/components/admin/editor/YoastSeoMetabox.d.ts.map +1 -0
  320. package/dist/components/admin/editor/YoastSeoMetabox.js +101 -0
  321. package/dist/components/admin/editor/YoastSnippetField.d.ts +22 -0
  322. package/dist/components/admin/editor/YoastSnippetField.d.ts.map +1 -0
  323. package/dist/components/admin/editor/YoastSnippetField.js +51 -0
  324. package/dist/components/admin/editor/load.d.ts +10 -0
  325. package/dist/components/admin/editor/load.d.ts.map +1 -0
  326. package/dist/components/admin/editor/load.js +141 -0
  327. package/dist/components/admin/index.d.ts +28 -0
  328. package/dist/components/admin/index.d.ts.map +1 -0
  329. package/dist/components/admin/index.js +27 -0
  330. package/dist/components/admin/internal/States.d.ts +16 -0
  331. package/dist/components/admin/internal/States.d.ts.map +1 -0
  332. package/dist/components/admin/internal/States.js +15 -0
  333. package/dist/components/admin/lib/format.d.ts +7 -0
  334. package/dist/components/admin/lib/format.d.ts.map +1 -0
  335. package/dist/components/admin/lib/format.js +43 -0
  336. package/dist/components/admin/lib/publishing.d.ts +8 -0
  337. package/dist/components/admin/lib/publishing.d.ts.map +1 -0
  338. package/dist/components/admin/lib/publishing.js +10 -0
  339. package/dist/components/admin/lib/robots.d.ts +13 -0
  340. package/dist/components/admin/lib/robots.d.ts.map +1 -0
  341. package/dist/components/admin/lib/robots.js +22 -0
  342. package/dist/components/admin/mock/fixtures.d.ts +240 -0
  343. package/dist/components/admin/mock/fixtures.d.ts.map +1 -0
  344. package/dist/components/admin/mock/fixtures.js +546 -0
  345. package/dist/components/admin/mock/store.d.ts +139 -0
  346. package/dist/components/admin/mock/store.d.ts.map +1 -0
  347. package/dist/components/admin/mock/store.js +1067 -0
  348. package/dist/components/admin/seo/Ga4Settings.d.ts +34 -0
  349. package/dist/components/admin/seo/Ga4Settings.d.ts.map +1 -0
  350. package/dist/components/admin/seo/Ga4Settings.js +80 -0
  351. package/dist/components/admin/seo/RedirectAnalyticsDashboard.d.ts +5 -0
  352. package/dist/components/admin/seo/RedirectAnalyticsDashboard.d.ts.map +1 -0
  353. package/dist/components/admin/seo/RedirectAnalyticsDashboard.js +24 -0
  354. package/dist/components/admin/seo/RedirectDetail.d.ts +11 -0
  355. package/dist/components/admin/seo/RedirectDetail.d.ts.map +1 -0
  356. package/dist/components/admin/seo/RedirectDetail.js +30 -0
  357. package/dist/components/admin/seo/RedirectForm.d.ts +29 -0
  358. package/dist/components/admin/seo/RedirectForm.d.ts.map +1 -0
  359. package/dist/components/admin/seo/RedirectForm.js +89 -0
  360. package/dist/components/admin/seo/RedirectList.d.ts +10 -0
  361. package/dist/components/admin/seo/RedirectList.d.ts.map +1 -0
  362. package/dist/components/admin/seo/RedirectList.js +28 -0
  363. package/dist/components/admin/seo/RobotsEditor.d.ts +5 -0
  364. package/dist/components/admin/seo/RobotsEditor.d.ts.map +1 -0
  365. package/dist/components/admin/seo/RobotsEditor.js +50 -0
  366. package/dist/components/admin/seo/SearchConsoleSettings.d.ts +3 -0
  367. package/dist/components/admin/seo/SearchConsoleSettings.d.ts.map +1 -0
  368. package/dist/components/admin/seo/SearchConsoleSettings.js +1 -0
  369. package/dist/components/admin/seo/SeoBrandList.d.ts +3 -0
  370. package/dist/components/admin/seo/SeoBrandList.d.ts.map +1 -0
  371. package/dist/components/admin/seo/SeoBrandList.js +1 -0
  372. package/dist/components/admin/seo/shared.d.ts +17 -0
  373. package/dist/components/admin/seo/shared.d.ts.map +1 -0
  374. package/dist/components/admin/seo/shared.js +7 -0
  375. package/dist/components/admin/tools/ExportTool.d.ts +3 -0
  376. package/dist/components/admin/tools/ExportTool.d.ts.map +1 -0
  377. package/dist/components/admin/tools/ExportTool.js +1 -0
  378. package/dist/components/admin/tools/ImportTool.d.ts +3 -0
  379. package/dist/components/admin/tools/ImportTool.d.ts.map +1 -0
  380. package/dist/components/admin/tools/ImportTool.js +1 -0
  381. package/dist/components/admin/tools/ToolsHub.d.ts +10 -0
  382. package/dist/components/admin/tools/ToolsHub.d.ts.map +1 -0
  383. package/dist/components/admin/tools/ToolsHub.js +106 -0
  384. package/dist/components/admin/tools/index.d.ts +3 -0
  385. package/dist/components/admin/tools/index.d.ts.map +1 -0
  386. package/dist/components/admin/tools/index.js +1 -0
  387. package/dist/components/index.d.ts +3 -0
  388. package/dist/components/index.d.ts.map +1 -0
  389. package/dist/components/index.js +2 -0
  390. package/dist/components/user/BlogCard.d.ts +20 -0
  391. package/dist/components/user/BlogCard.d.ts.map +1 -0
  392. package/dist/components/user/BlogCard.js +22 -0
  393. package/dist/components/user/BlogCategories.d.ts +6 -0
  394. package/dist/components/user/BlogCategories.d.ts.map +1 -0
  395. package/dist/components/user/BlogCategories.js +11 -0
  396. package/dist/components/user/BlogDetail.d.ts +25 -0
  397. package/dist/components/user/BlogDetail.d.ts.map +1 -0
  398. package/dist/components/user/BlogDetail.js +90 -0
  399. package/dist/components/user/BlogList.d.ts +20 -0
  400. package/dist/components/user/BlogList.d.ts.map +1 -0
  401. package/dist/components/user/BlogList.js +56 -0
  402. package/dist/components/user/BlogSearch.d.ts +8 -0
  403. package/dist/components/user/BlogSearch.d.ts.map +1 -0
  404. package/dist/components/user/BlogSearch.js +19 -0
  405. package/dist/components/user/BlogTags.d.ts +6 -0
  406. package/dist/components/user/BlogTags.d.ts.map +1 -0
  407. package/dist/components/user/BlogTags.js +11 -0
  408. package/dist/components/user/FeaturedBlogs.d.ts +8 -0
  409. package/dist/components/user/FeaturedBlogs.d.ts.map +1 -0
  410. package/dist/components/user/FeaturedBlogs.js +12 -0
  411. package/dist/components/user/RelatedBlogs.d.ts +9 -0
  412. package/dist/components/user/RelatedBlogs.d.ts.map +1 -0
  413. package/dist/components/user/RelatedBlogs.js +12 -0
  414. package/dist/components/user/SiteMediaHero.d.ts +14 -0
  415. package/dist/components/user/SiteMediaHero.d.ts.map +1 -0
  416. package/dist/components/user/SiteMediaHero.js +43 -0
  417. package/dist/components/user/detail/ArticleDetailHero.d.ts +30 -0
  418. package/dist/components/user/detail/ArticleDetailHero.d.ts.map +1 -0
  419. package/dist/components/user/detail/ArticleDetailHero.js +29 -0
  420. package/dist/components/user/detail/ArticleRailDetails.d.ts +24 -0
  421. package/dist/components/user/detail/ArticleRailDetails.d.ts.map +1 -0
  422. package/dist/components/user/detail/ArticleRailDetails.js +12 -0
  423. package/dist/components/user/detail/BackButton.d.ts +7 -0
  424. package/dist/components/user/detail/BackButton.d.ts.map +1 -0
  425. package/dist/components/user/detail/BackButton.js +18 -0
  426. package/dist/components/user/detail/CommentSection.d.ts +28 -0
  427. package/dist/components/user/detail/CommentSection.d.ts.map +1 -0
  428. package/dist/components/user/detail/CommentSection.js +68 -0
  429. package/dist/components/user/detail/HeroFadeSlide.d.ts +12 -0
  430. package/dist/components/user/detail/HeroFadeSlide.d.ts.map +1 -0
  431. package/dist/components/user/detail/HeroFadeSlide.js +5 -0
  432. package/dist/components/user/detail/ReadingProgress.d.ts +2 -0
  433. package/dist/components/user/detail/ReadingProgress.d.ts.map +1 -0
  434. package/dist/components/user/detail/ReadingProgress.js +20 -0
  435. package/dist/components/user/detail/ShareRow.d.ts +7 -0
  436. package/dist/components/user/detail/ShareRow.d.ts.map +1 -0
  437. package/dist/components/user/detail/ShareRow.js +7 -0
  438. package/dist/components/user/detail/toc.d.ts +14 -0
  439. package/dist/components/user/detail/toc.d.ts.map +1 -0
  440. package/dist/components/user/detail/toc.js +106 -0
  441. package/dist/components/user/index.d.ts +14 -0
  442. package/dist/components/user/index.d.ts.map +1 -0
  443. package/dist/components/user/index.js +13 -0
  444. package/dist/components/user/internal/States.d.ts +18 -0
  445. package/dist/components/user/internal/States.d.ts.map +1 -0
  446. package/dist/components/user/internal/States.js +21 -0
  447. package/dist/constants/index.d.ts +4 -0
  448. package/dist/constants/index.d.ts.map +1 -0
  449. package/dist/constants/index.js +3 -0
  450. package/dist/hooks/index.d.ts +2 -0
  451. package/dist/hooks/index.d.ts.map +1 -0
  452. package/dist/hooks/index.js +1 -0
  453. package/dist/hooks/useAsync.d.ts +23 -0
  454. package/dist/hooks/useAsync.d.ts.map +1 -0
  455. package/dist/hooks/useAsync.js +40 -0
  456. package/dist/index.d.ts +12 -0
  457. package/dist/index.d.ts.map +1 -0
  458. package/dist/index.js +9 -0
  459. package/dist/lib/access.d.ts +64 -0
  460. package/dist/lib/access.d.ts.map +1 -0
  461. package/dist/lib/access.js +127 -0
  462. package/dist/lib/canonical.d.ts +15 -0
  463. package/dist/lib/canonical.d.ts.map +1 -0
  464. package/dist/lib/canonical.js +34 -0
  465. package/dist/lib/comments.d.ts +9 -0
  466. package/dist/lib/comments.d.ts.map +1 -0
  467. package/dist/lib/comments.js +23 -0
  468. package/dist/lib/dashboard.d.ts +39 -0
  469. package/dist/lib/dashboard.d.ts.map +1 -0
  470. package/dist/lib/dashboard.js +157 -0
  471. package/dist/lib/data-transfer.d.ts +23 -0
  472. package/dist/lib/data-transfer.d.ts.map +1 -0
  473. package/dist/lib/data-transfer.js +436 -0
  474. package/dist/lib/default-author.d.ts +12 -0
  475. package/dist/lib/default-author.d.ts.map +1 -0
  476. package/dist/lib/default-author.js +57 -0
  477. package/dist/lib/format-media.d.ts +6 -0
  478. package/dist/lib/format-media.d.ts.map +1 -0
  479. package/dist/lib/format-media.js +18 -0
  480. package/dist/lib/format.d.ts +7 -0
  481. package/dist/lib/format.d.ts.map +1 -0
  482. package/dist/lib/format.js +43 -0
  483. package/dist/lib/hero-post.d.ts +24 -0
  484. package/dist/lib/hero-post.d.ts.map +1 -0
  485. package/dist/lib/hero-post.js +95 -0
  486. package/dist/lib/lexical-build.d.ts +30 -0
  487. package/dist/lib/lexical-build.d.ts.map +1 -0
  488. package/dist/lib/lexical-build.js +57 -0
  489. package/dist/lib/lexical-doc.d.ts +88 -0
  490. package/dist/lib/lexical-doc.d.ts.map +1 -0
  491. package/dist/lib/lexical-doc.js +385 -0
  492. package/dist/lib/lexical-dom.d.ts +19 -0
  493. package/dist/lib/lexical-dom.d.ts.map +1 -0
  494. package/dist/lib/lexical-dom.js +181 -0
  495. package/dist/lib/lexical.d.ts +31 -0
  496. package/dist/lib/lexical.d.ts.map +1 -0
  497. package/dist/lib/lexical.js +59 -0
  498. package/dist/lib/post-categories.d.ts +11 -0
  499. package/dist/lib/post-categories.d.ts.map +1 -0
  500. package/dist/lib/post-categories.js +27 -0
  501. package/dist/lib/post-format.d.ts +39 -0
  502. package/dist/lib/post-format.d.ts.map +1 -0
  503. package/dist/lib/post-format.js +82 -0
  504. package/dist/lib/publishing.d.ts +3 -0
  505. package/dist/lib/publishing.d.ts.map +1 -0
  506. package/dist/lib/publishing.js +1 -0
  507. package/dist/lib/queries.d.ts +49 -0
  508. package/dist/lib/queries.d.ts.map +1 -0
  509. package/dist/lib/queries.js +340 -0
  510. package/dist/lib/redirect-analytics.d.ts +27 -0
  511. package/dist/lib/redirect-analytics.d.ts.map +1 -0
  512. package/dist/lib/redirect-analytics.js +147 -0
  513. package/dist/lib/redirects.d.ts +39 -0
  514. package/dist/lib/redirects.d.ts.map +1 -0
  515. package/dist/lib/redirects.js +96 -0
  516. package/dist/lib/revalidate.d.ts +30 -0
  517. package/dist/lib/revalidate.d.ts.map +1 -0
  518. package/dist/lib/revalidate.js +91 -0
  519. package/dist/lib/robots.d.ts +19 -0
  520. package/dist/lib/robots.d.ts.map +1 -0
  521. package/dist/lib/robots.js +38 -0
  522. package/dist/lib/seo-analysis.d.ts +28 -0
  523. package/dist/lib/seo-analysis.d.ts.map +1 -0
  524. package/dist/lib/seo-analysis.js +153 -0
  525. package/dist/lib/seo-limits.d.ts +19 -0
  526. package/dist/lib/seo-limits.d.ts.map +1 -0
  527. package/dist/lib/seo-limits.js +39 -0
  528. package/dist/lib/seo.d.ts +50 -0
  529. package/dist/lib/seo.d.ts.map +1 -0
  530. package/dist/lib/seo.js +238 -0
  531. package/dist/lib/slug.d.ts +3 -0
  532. package/dist/lib/slug.d.ts.map +1 -0
  533. package/dist/lib/slug.js +9 -0
  534. package/dist/lib/stats.d.ts +71 -0
  535. package/dist/lib/stats.d.ts.map +1 -0
  536. package/dist/lib/stats.js +207 -0
  537. package/dist/lib/tenant-host.d.ts +9 -0
  538. package/dist/lib/tenant-host.d.ts.map +1 -0
  539. package/dist/lib/tenant-host.js +15 -0
  540. package/dist/lib/tenant.d.ts +41 -0
  541. package/dist/lib/tenant.d.ts.map +1 -0
  542. package/dist/lib/tenant.js +140 -0
  543. package/dist/lib/toc.d.ts +16 -0
  544. package/dist/lib/toc.d.ts.map +1 -0
  545. package/dist/lib/toc.js +28 -0
  546. package/dist/lib/yoast-snippet.d.ts +25 -0
  547. package/dist/lib/yoast-snippet.d.ts.map +1 -0
  548. package/dist/lib/yoast-snippet.js +79 -0
  549. package/dist/pages/admin/BlogAdmin.d.ts +9 -0
  550. package/dist/pages/admin/BlogAdmin.d.ts.map +1 -0
  551. package/dist/pages/admin/BlogAdmin.js +234 -0
  552. package/dist/pages/admin/index.d.ts +2 -0
  553. package/dist/pages/admin/index.d.ts.map +1 -0
  554. package/dist/pages/admin/index.js +1 -0
  555. package/dist/pages/index.d.ts +3 -0
  556. package/dist/pages/index.d.ts.map +1 -0
  557. package/dist/pages/index.js +2 -0
  558. package/dist/pages/user/UserBlogPage.d.ts +10 -0
  559. package/dist/pages/user/UserBlogPage.d.ts.map +1 -0
  560. package/dist/pages/user/UserBlogPage.js +15 -0
  561. package/dist/pages/user/index.d.ts +2 -0
  562. package/dist/pages/user/index.d.ts.map +1 -0
  563. package/dist/pages/user/index.js +1 -0
  564. package/dist/services/admin-client.d.ts +33 -0
  565. package/dist/services/admin-client.d.ts.map +1 -0
  566. package/dist/services/admin-client.js +154 -0
  567. package/dist/services/admin-sdk-client.d.ts +285 -0
  568. package/dist/services/admin-sdk-client.d.ts.map +1 -0
  569. package/dist/services/admin-sdk-client.js +242 -0
  570. package/dist/services/errors.d.ts +14 -0
  571. package/dist/services/errors.d.ts.map +1 -0
  572. package/dist/services/errors.js +26 -0
  573. package/dist/services/http.d.ts +24 -0
  574. package/dist/services/http.d.ts.map +1 -0
  575. package/dist/services/http.js +159 -0
  576. package/dist/services/index.d.ts +8 -0
  577. package/dist/services/index.d.ts.map +1 -0
  578. package/dist/services/index.js +7 -0
  579. package/dist/services/pagination.d.ts +4 -0
  580. package/dist/services/pagination.d.ts.map +1 -0
  581. package/dist/services/pagination.js +32 -0
  582. package/dist/services/public-client.d.ts +23 -0
  583. package/dist/services/public-client.d.ts.map +1 -0
  584. package/dist/services/public-client.js +94 -0
  585. package/dist/services/types.d.ts +124 -0
  586. package/dist/services/types.d.ts.map +1 -0
  587. package/dist/services/types.js +1 -0
  588. package/dist/style.css +3105 -0
  589. package/dist/styles/adminTheme.d.ts +6 -0
  590. package/dist/styles/adminTheme.d.ts.map +1 -0
  591. package/dist/styles/adminTheme.js +52 -0
  592. package/dist/styles/index.d.ts +3 -0
  593. package/dist/styles/index.d.ts.map +1 -0
  594. package/dist/styles/index.js +2 -0
  595. package/dist/styles/userTheme.d.ts +8 -0
  596. package/dist/styles/userTheme.d.ts.map +1 -0
  597. package/dist/styles/userTheme.js +60 -0
  598. package/dist/types/admin.d.ts +28 -0
  599. package/dist/types/admin.d.ts.map +1 -0
  600. package/dist/types/admin.js +1 -0
  601. package/dist/types/index.d.ts +4 -0
  602. package/dist/types/index.d.ts.map +1 -0
  603. package/dist/types/index.js +1 -0
  604. package/dist/types/user.d.ts +41 -0
  605. package/dist/types/user.d.ts.map +1 -0
  606. package/dist/types/user.js +1 -0
  607. package/dist/user/components/BlogCard.d.ts +15 -0
  608. package/dist/user/components/BlogCard.d.ts.map +1 -0
  609. package/dist/user/components/BlogCard.js +31 -0
  610. package/dist/user/components/BlogCategories.d.ts +6 -0
  611. package/dist/user/components/BlogCategories.d.ts.map +1 -0
  612. package/dist/user/components/BlogCategories.js +11 -0
  613. package/dist/user/components/BlogDetail.d.ts +7 -0
  614. package/dist/user/components/BlogDetail.d.ts.map +1 -0
  615. package/dist/user/components/BlogDetail.js +19 -0
  616. package/dist/user/components/BlogList.d.ts +8 -0
  617. package/dist/user/components/BlogList.d.ts.map +1 -0
  618. package/dist/user/components/BlogList.js +18 -0
  619. package/dist/user/components/BlogSearch.d.ts +8 -0
  620. package/dist/user/components/BlogSearch.d.ts.map +1 -0
  621. package/dist/user/components/BlogSearch.js +19 -0
  622. package/dist/user/components/BlogTags.d.ts +6 -0
  623. package/dist/user/components/BlogTags.d.ts.map +1 -0
  624. package/dist/user/components/BlogTags.js +11 -0
  625. package/dist/user/components/FeaturedBlogs.d.ts +8 -0
  626. package/dist/user/components/FeaturedBlogs.d.ts.map +1 -0
  627. package/dist/user/components/FeaturedBlogs.js +12 -0
  628. package/dist/user/components/RelatedBlogs.d.ts +9 -0
  629. package/dist/user/components/RelatedBlogs.d.ts.map +1 -0
  630. package/dist/user/components/RelatedBlogs.js +12 -0
  631. package/dist/user/components/internal/States.d.ts +18 -0
  632. package/dist/user/components/internal/States.d.ts.map +1 -0
  633. package/dist/user/components/internal/States.js +16 -0
  634. package/dist/user/hooks/useAsync.d.ts +21 -0
  635. package/dist/user/hooks/useAsync.d.ts.map +1 -0
  636. package/dist/user/hooks/useAsync.js +40 -0
  637. package/dist/user/index.d.ts +11 -0
  638. package/dist/user/index.d.ts.map +1 -0
  639. package/dist/user/index.js +10 -0
  640. package/dist/user/sanitize.d.ts +2 -0
  641. package/dist/user/sanitize.d.ts.map +1 -0
  642. package/dist/user/sanitize.js +120 -0
  643. package/dist/user/theme.d.ts +8 -0
  644. package/dist/user/theme.d.ts.map +1 -0
  645. package/dist/user/theme.js +60 -0
  646. package/dist/user/types.d.ts +41 -0
  647. package/dist/user/types.d.ts.map +1 -0
  648. package/dist/user/types.js +1 -0
  649. package/dist/utils/env.d.ts +16 -0
  650. package/dist/utils/env.d.ts.map +1 -0
  651. package/dist/utils/env.js +57 -0
  652. package/dist/utils/index.d.ts +3 -0
  653. package/dist/utils/index.d.ts.map +1 -0
  654. package/dist/utils/index.js +2 -0
  655. package/dist/utils/sanitize.d.ts +2 -0
  656. package/dist/utils/sanitize.d.ts.map +1 -0
  657. package/dist/utils/sanitize.js +120 -0
  658. package/package.json +63 -0
@@ -0,0 +1,140 @@
1
+ import { headers } from 'next/headers';
2
+ import { cache } from 'react';
3
+ import { getPayload } from 'payload';
4
+ import config from '@payload-config';
5
+ import { allowTenantSlugOverride, DEV_TENANT_HEADER, isSharedPreviewHost, } from './tenant-host';
6
+ /**
7
+ * Tenant resolution.
8
+ *
9
+ * The renderer is a single deployment serving every brand, so which brand a
10
+ * request belongs to is derived from the Host header — never from a path prefix
11
+ * and never from an environment variable. That is what lets one origin sit
12
+ * behind fifteen `/blog` rewrites without any per-brand configuration.
13
+ *
14
+ * In local development several brands share localhost, so `?_tenant=slug` (and
15
+ * a short-lived cookie set from it) selects the brand when the Host alone is
16
+ * ambiguous.
17
+ */
18
+ export { ADMIN_BRAND_PARAM, DEV_TENANT_COOKIE, DEV_TENANT_HEADER, DEV_TENANT_PARAM } from './tenant-host';
19
+ /** One Payload instance per request — pages + layout used to open it twice. */
20
+ export const getPayloadClient = cache(async () => getPayload({ config }));
21
+ const normaliseHost = (host) => host.trim().toLowerCase().replace(/\.$/, '');
22
+ /** Strip the port for matching, but keep it available for local development. */
23
+ const hostVariants = (host) => {
24
+ const h = normaliseHost(host);
25
+ const withoutPort = h.replace(/:\d+$/, '');
26
+ const withoutWww = withoutPort.replace(/^www\./, '');
27
+ return [...new Set([h, withoutPort, withoutWww])];
28
+ };
29
+ const findTenantBySlug = async (slug) => {
30
+ const payload = await getPayloadClient();
31
+ const found = await payload.find({
32
+ collection: 'tenants',
33
+ where: { slug: { equals: slug } },
34
+ limit: 1,
35
+ depth: 0,
36
+ pagination: false,
37
+ overrideAccess: true,
38
+ });
39
+ return found.docs[0] ?? null;
40
+ };
41
+ export const resolveTenantByHost = async (host) => {
42
+ const payload = await getPayloadClient();
43
+ const candidates = host ? hostVariants(host) : [];
44
+ if (candidates.length) {
45
+ const match = await payload.find({
46
+ collection: 'tenants',
47
+ where: {
48
+ or: [
49
+ { 'domains.hostname': { in: candidates } },
50
+ { primaryDomain: { in: candidates } },
51
+ ],
52
+ },
53
+ limit: 1,
54
+ depth: 0,
55
+ pagination: false,
56
+ overrideAccess: true,
57
+ });
58
+ if (match.docs[0])
59
+ return match.docs[0];
60
+ }
61
+ // Development convenience only: with no matching host, fall back to the first
62
+ // tenant so `localhost:3000/blog` works without editing /etc/hosts. In
63
+ // production an unmatched host is a misconfiguration and must not silently
64
+ // serve another brand's content.
65
+ if (process.env.NEXT_PUBLIC_APP_ENV !== 'production') {
66
+ const first = await payload.find({
67
+ collection: 'tenants',
68
+ limit: 1,
69
+ depth: 0,
70
+ sort: 'createdAt',
71
+ pagination: false,
72
+ overrideAccess: true,
73
+ });
74
+ return first.docs[0] ?? null;
75
+ }
76
+ return null;
77
+ };
78
+ /**
79
+ * Brand slug from the current request override header (set by middleware from
80
+ * `?_tenant=` on public pages, or `?brand=` / cookie on admin).
81
+ */
82
+ export const getExplicitTenantSlug = async () => {
83
+ const h = await headers();
84
+ const host = h.get('host');
85
+ if (!allowTenantSlugOverride(host))
86
+ return null;
87
+ return h.get(DEV_TENANT_HEADER)?.trim() || null;
88
+ };
89
+ /**
90
+ * On localhost / *.vercel.app, public listings match admin "All brands" by default.
91
+ * Pass `tenantFromQuery` from `?_tenant=` to scope to one brand.
92
+ */
93
+ export const shouldListAllBrands = async (tenantFromQuery) => {
94
+ const h = await headers();
95
+ const host = h.get('host');
96
+ if (!isSharedPreviewHost(host))
97
+ return false;
98
+ if (tenantFromQuery?.trim())
99
+ return false;
100
+ // Layout / API with no query: also treat a public _tenant header as scoped.
101
+ const explicit = await getExplicitTenantSlug();
102
+ return !explicit;
103
+ };
104
+ /**
105
+ * Resolve the tenant for the current request.
106
+ *
107
+ * On a real brand domain, the Host header wins. On shared preview hosts
108
+ * (localhost, *.vercel.app), `?_tenant=` (public) or `?brand=` (admin) selects
109
+ * a brand. Public default with no picker is all-brands listings.
110
+ *
111
+ * Wrapped in React cache so layout + page share one lookup per request.
112
+ */
113
+ export const getCurrentTenant = cache(async (overrideSlug) => {
114
+ const h = await headers();
115
+ const host = h.get('host');
116
+ const canPickBrand = allowTenantSlugOverride(host);
117
+ let slug = overrideSlug?.trim() || '';
118
+ if (!slug && canPickBrand) {
119
+ slug = h.get(DEV_TENANT_HEADER)?.trim() || '';
120
+ }
121
+ if (slug && canPickBrand) {
122
+ const bySlug = await findTenantBySlug(slug);
123
+ if (bySlug)
124
+ return bySlug;
125
+ }
126
+ return resolveTenantByHost(host);
127
+ });
128
+ /** Absolute origin for canonical URLs and the sitemap. */
129
+ export const tenantOrigin = (tenant, requestHost) => {
130
+ if (process.env.NEXT_PUBLIC_APP_ENV === 'production') {
131
+ return `https://${normaliseHost(tenant.primaryDomain)}`;
132
+ }
133
+ const host = requestHost ? normaliseHost(requestHost) : 'localhost:3000';
134
+ const protocol = host.startsWith('localhost') || host.startsWith('127.0.0.1') ? 'http' : 'https';
135
+ return `${protocol}://${host}`;
136
+ };
137
+ export const currentOrigin = async (tenant) => {
138
+ const h = await headers();
139
+ return tenantOrigin(tenant, h.get('host') ?? undefined);
140
+ };
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The contents rail on an article.
3
+ *
4
+ * Built from the stored document rather than from the rendered DOM, so it exists
5
+ * on the server, needs no JavaScript, and cannot disagree with the article: the
6
+ * same slug function generates the anchor here and the `id` in the renderer
7
+ * (see components/RichText.tsx).
8
+ */
9
+ export type Heading = {
10
+ id: string;
11
+ text: string;
12
+ level: 2 | 3;
13
+ };
14
+ export declare const headingId: (text: string) => string;
15
+ export declare const extractHeadings: (content: unknown) => Heading[];
16
+ //# sourceMappingURL=toc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toc.d.ts","sourceRoot":"","sources":["../../app/lib/toc.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AAEH,MAAM,MAAM,OAAO,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;CAAE,CAAA;AAEhE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAA2C,CAAA;AAEpF,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,OAAO,EAyBzD,CAAA"}
@@ -0,0 +1,28 @@
1
+ import { walk } from './lexical';
2
+ import { slugify } from './slug';
3
+ export const headingId = (text) => `h-${slugify(text).slice(0, 60)}`;
4
+ export const extractHeadings = (content) => {
5
+ const out = [];
6
+ const seen = new Set();
7
+ walk(content?.root, (node) => {
8
+ if (node.type !== 'heading')
9
+ return;
10
+ const tag = String(node.tag ?? '');
11
+ if (tag !== 'h2' && tag !== 'h3')
12
+ return;
13
+ const text = (Array.isArray(node.children) ? node.children : [])
14
+ .map((child) => (typeof child.text === 'string' ? child.text : ''))
15
+ .join('')
16
+ .trim();
17
+ if (!text)
18
+ return;
19
+ // Two sections called "Method" would otherwise fight over one anchor.
20
+ let id = headingId(text);
21
+ let n = 2;
22
+ while (seen.has(id))
23
+ id = `${headingId(text)}-${n++}`;
24
+ seen.add(id);
25
+ out.push({ id, text, level: tag === 'h2' ? 2 : 3 });
26
+ });
27
+ return out;
28
+ };
@@ -0,0 +1,25 @@
1
+ export type SnippetContext = {
2
+ title: string;
3
+ slug: string;
4
+ excerpt: string;
5
+ siteName: string;
6
+ separator?: string;
7
+ categoryName?: string;
8
+ focusKeyphrase?: string;
9
+ contentText?: string;
10
+ date?: string;
11
+ };
12
+ export type SnippetVariable = {
13
+ label: string;
14
+ token: string;
15
+ description?: string;
16
+ };
17
+ export declare const SEO_TITLE_VARIABLES: SnippetVariable[];
18
+ export declare const META_DESCRIPTION_VARIABLES: SnippetVariable[];
19
+ export declare const expandSnippet: (template: string, ctx: SnippetContext) => string;
20
+ export declare const brandTitleTemplateToSnippet: (titleTemplate?: string | null) => string;
21
+ export declare const generateSeoTitleSnippet: (titleTemplate?: string | null) => string;
22
+ export declare const generateMetaDescriptionSnippet: (ctx: SnippetContext) => string;
23
+ export declare const resolveSeoTitle: (stored: string | null | undefined, ctx: SnippetContext) => string;
24
+ export declare const resolveMetaDescription: (stored: string | null | undefined, ctx: SnippetContext) => string;
25
+ //# sourceMappingURL=yoast-snippet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yoast-snippet.d.ts","sourceRoot":"","sources":["../../app/lib/yoast-snippet.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,eAAe,EAShD,CAAA;AAED,eAAO,MAAM,0BAA0B,EAAE,eAAe,EAMvD,CAAA;AAID,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,EAAE,KAAK,cAAc,KAAG,MAqBrE,CAAA;AAED,eAAO,MAAM,2BAA2B,GAAI,gBAAgB,MAAM,GAAG,IAAI,KAAG,MAI3E,CAAA;AAED,eAAO,MAAM,uBAAuB,GAAI,gBAAgB,MAAM,GAAG,IAAI,KAAG,MAC5B,CAAA;AAE5C,eAAO,MAAM,8BAA8B,GAAI,KAAK,cAAc,KAAG,MAiBpE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,cAAc,KAAG,MAGxF,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,QAAQ,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,cAAc,KAAG,MAM/F,CAAA"}
@@ -0,0 +1,79 @@
1
+ import { slugify } from './slug';
2
+ export const SEO_TITLE_VARIABLES = [
3
+ { label: 'Title', token: '%%title%%', description: 'Post title' },
4
+ { label: 'Page', token: '%%page%%', description: 'Same as post title' },
5
+ { label: 'Separator', token: '%%sep%%', description: 'Title separator (|)' },
6
+ { label: 'Site title', token: '%%sitename%%', description: 'Site / brand name' },
7
+ { label: 'Slug', token: '%%slug%%', description: 'URL slug' },
8
+ { label: 'Primary category', token: '%%category%%', description: 'Main category' },
9
+ { label: 'Focus keyphrase', token: '%%focuskw%%', description: 'SEO focus keyphrase' },
10
+ { label: 'Date', token: '%%date%%', description: 'Publish date' },
11
+ ];
12
+ export const META_DESCRIPTION_VARIABLES = [
13
+ { label: 'Excerpt', token: '%%excerpt%%', description: 'Post excerpt' },
14
+ { label: 'Title', token: '%%title%%', description: 'Post title' },
15
+ { label: 'Site title', token: '%%sitename%%', description: 'Site / brand name' },
16
+ { label: 'Focus keyphrase', token: '%%focuskw%%', description: 'SEO focus keyphrase' },
17
+ { label: 'Primary category', token: '%%category%%', description: 'Main category' },
18
+ ];
19
+ const hasSnippetTokens = (value) => /%%\w+%%/.test(value);
20
+ export const expandSnippet = (template, ctx) => {
21
+ if (!template.trim())
22
+ return '';
23
+ if (!hasSnippetTokens(template))
24
+ return template.trim();
25
+ const sep = ctx.separator ?? '|';
26
+ const date = ctx.date ?? '';
27
+ return template
28
+ .replace(/%%title%%/g, ctx.title)
29
+ .replace(/%%page%%/g, ctx.title)
30
+ .replace(/%%sep%%/g, sep)
31
+ .replace(/%%sitename%%/g, ctx.siteName)
32
+ .replace(/%%slug%%/g, ctx.slug || slugify(ctx.title))
33
+ .replace(/%%excerpt%%/g, ctx.excerpt)
34
+ .replace(/%%category%%/g, ctx.categoryName ?? "")
35
+ .replace(/%%focuskw%%/g, ctx.focusKeyphrase ?? "")
36
+ .replace(/%%date%%/g, date)
37
+ .replace(/\s{2,}/g, " ")
38
+ .replace(/\s+\|/g, " |")
39
+ .replace(/\|\s+/g, "| ")
40
+ .trim();
41
+ };
42
+ export const brandTitleTemplateToSnippet = (titleTemplate) => {
43
+ const raw = (titleTemplate ?? '').trim();
44
+ if (!raw)
45
+ return '%%title%% %%sep%% %%sitename%%';
46
+ return raw.replace(/%s/g, '%%title%%').replace(/%site%/gi, '%%sitename%%');
47
+ };
48
+ export const generateSeoTitleSnippet = (titleTemplate) => brandTitleTemplateToSnippet(titleTemplate);
49
+ export const generateMetaDescriptionSnippet = (ctx) => {
50
+ if (ctx.excerpt.trim())
51
+ return '%%excerpt%%';
52
+ const plain = (ctx.contentText ?? '').trim().replace(/\s+/g, ' ');
53
+ if (!plain)
54
+ return '%%excerpt%%';
55
+ let text = plain;
56
+ const phrase = ctx.focusKeyphrase?.trim();
57
+ if (phrase && !text.toLowerCase().includes(phrase.toLowerCase())) {
58
+ const intro = `${phrase}: `;
59
+ const room = 156 - intro.length;
60
+ text = intro + (text.length > room ? `${text.slice(0, room - 1).trim()}…` : text);
61
+ }
62
+ else if (text.length > 156) {
63
+ text = `${text.slice(0, 153).trim()}…`;
64
+ }
65
+ return text;
66
+ };
67
+ export const resolveSeoTitle = (stored, ctx) => {
68
+ const expanded = expandSnippet(stored ?? '', ctx);
69
+ return expanded || ctx.title;
70
+ };
71
+ export const resolveMetaDescription = (stored, ctx) => {
72
+ const expanded = expandSnippet(stored ?? '', ctx);
73
+ if (expanded)
74
+ return expanded;
75
+ if (ctx.excerpt.trim())
76
+ return ctx.excerpt.trim();
77
+ const plain = (ctx.contentText ?? '').trim().replace(/\s+/g, ' ');
78
+ return plain ? plain.slice(0, 155) : '';
79
+ };
@@ -0,0 +1,9 @@
1
+ import type { AdminSdkConfig, AdminTheme, Branding } from "../../types/admin";
2
+ export type BlogAdminProps = {
3
+ config: AdminSdkConfig;
4
+ theme?: AdminTheme;
5
+ branding?: Branding;
6
+ className?: string;
7
+ };
8
+ export declare function BlogAdmin({ config, theme, branding, className }: BlogAdminProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=BlogAdmin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlogAdmin.d.ts","sourceRoot":"","sources":["../../../app/pages/admin/BlogAdmin.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAuB9E,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AA8WF,wBAAgB,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,cAAc,+BAM/E"}
@@ -0,0 +1,234 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { cx, themeVars } from "../../styles/adminTheme";
4
+ import { Shell } from "../../components/admin/Shell";
5
+ import { Dashboard } from "../../components/admin/Dashboard";
6
+ import { PostList } from "../../components/admin/PostList";
7
+ import { PostEditor } from "../../components/admin/PostEditor";
8
+ import { AdminPostDetail } from "../../components/admin/AdminPostDetail";
9
+ import { CategoryManager, TagManager, AuthorsManager } from "../../components/admin/TermManager";
10
+ import { MediaLibrary } from "../../components/admin/MediaLibrary";
11
+ import { CommentsManager } from "../../components/admin/CommentsManager";
12
+ import { UsersManager } from "../../components/admin/UsersManager";
13
+ import { BrandSettings, BrandsList, ProfilePanel } from "../../components/admin/BrandSettings";
14
+ import { AdminMockProvider, useAdminMock } from "../../components/admin/mock/store";
15
+ import { RedirectList } from "../../components/admin/seo/RedirectList";
16
+ import { RedirectForm, redirectToFormValues } from "../../components/admin/seo/RedirectForm";
17
+ import { RedirectDetail } from "../../components/admin/seo/RedirectDetail";
18
+ import { RedirectAnalyticsDashboard } from "../../components/admin/seo/RedirectAnalyticsDashboard";
19
+ import { RobotsEditor } from "../../components/admin/seo/RobotsEditor";
20
+ import { Ga4Settings, SitemapPanel } from "../../components/admin/seo/Ga4Settings";
21
+ import { SearchConsoleSettings } from "../../components/admin/seo/SearchConsoleSettings";
22
+ import { BrandPickPanel } from "../../components/admin/seo/shared";
23
+ import { ExportTool, ImportTool, ToolsHub } from "../../components/admin/tools";
24
+ function BlogAdminInner({ theme, branding, className, }) {
25
+ const store = useAdminMock();
26
+ const [activeNav, setActiveNav] = useState("overview");
27
+ const [editingId, setEditingId] = useState(undefined);
28
+ const [viewingId, setViewingId] = useState(undefined);
29
+ const [redirectId, setRedirectId] = useState(undefined);
30
+ const [settingsBrandId, setSettingsBrandId] = useState(undefined);
31
+ const openEditor = (id) => {
32
+ setViewingId(undefined);
33
+ setEditingId(id);
34
+ setActiveNav("posts-new");
35
+ };
36
+ const openView = (id) => {
37
+ setEditingId(undefined);
38
+ setViewingId(id);
39
+ };
40
+ const navigate = (key) => {
41
+ setActiveNav(key);
42
+ if (key !== "posts-new")
43
+ setEditingId(undefined);
44
+ setViewingId(undefined);
45
+ if (key !== "redirects-new" && key !== "redirects-all" && key !== "redirects") {
46
+ setRedirectId(undefined);
47
+ }
48
+ };
49
+ const postFilterForNav = (nav) => {
50
+ if (nav === "attention")
51
+ return "attention";
52
+ if (nav === "scheduled")
53
+ return "scheduled";
54
+ if (nav === "trash")
55
+ return "trash";
56
+ return "all";
57
+ };
58
+ const requireBrand = (title, render) => {
59
+ const brandId = store.activeBrandId ?? store.brands[0]?.id;
60
+ if (!brandId) {
61
+ return _jsx(BrandPickPanel, { title: title, onPick: (id) => store.setActiveBrandId(id) });
62
+ }
63
+ if (!store.activeBrandId) {
64
+ return (_jsxs(_Fragment, { children: [_jsx(BrandPickPanel, { title: title, onPick: (id) => store.setActiveBrandId(id) }), _jsx("p", { className: "note", children: "Showing first brand until one is selected." }), render(brandId)] }));
65
+ }
66
+ return render(brandId);
67
+ };
68
+ const viewingPost = viewingId ? store.getPost(viewingId) : undefined;
69
+ const getTitle = () => {
70
+ if (viewingId)
71
+ return viewingPost?.title || "Post";
72
+ if (activeNav === "posts-new" && !editingId)
73
+ return "Add Post";
74
+ if (activeNav === "posts-new" || editingId)
75
+ return "Edit Post";
76
+ if (activeNav.startsWith("posts") || activeNav === "attention" || activeNav === "scheduled" || activeNav === "trash")
77
+ return "Posts";
78
+ if (activeNav === "categories")
79
+ return "Categories";
80
+ if (activeNav === "tags")
81
+ return "Tags";
82
+ if (activeNav === "authors")
83
+ return "Authors";
84
+ if (activeNav === "media")
85
+ return "Media";
86
+ if (activeNav === "comments")
87
+ return "Comments";
88
+ if (activeNav === "overview")
89
+ return "Dashboard";
90
+ if (activeNav.startsWith("redirects"))
91
+ return "Redirects";
92
+ if (activeNav === "robots")
93
+ return "Robots.txt";
94
+ if (activeNav === "sitemap")
95
+ return "XML Sitemap";
96
+ if (activeNav === "analytics")
97
+ return "Google Analytics";
98
+ if (activeNav === "search-console")
99
+ return "Search Console";
100
+ if (activeNav === "users")
101
+ return "People";
102
+ if (activeNav === "settings")
103
+ return "Settings";
104
+ if (activeNav === "brands")
105
+ return "Brands";
106
+ if (activeNav === "profile")
107
+ return "Profile";
108
+ if (activeNav.startsWith("tools"))
109
+ return "Tools";
110
+ return activeNav.charAt(0).toUpperCase() + activeNav.slice(1);
111
+ };
112
+ const renderContent = () => {
113
+ if (viewingId) {
114
+ return (_jsx(AdminPostDetail, { postId: viewingId, onBack: () => {
115
+ setViewingId(undefined);
116
+ setActiveNav("posts-all");
117
+ }, onEdit: (id) => openEditor(id), onViewRelated: (id) => setViewingId(id) }));
118
+ }
119
+ if (activeNav === "posts-new" || editingId) {
120
+ return (_jsx(PostEditor, { postId: editingId, onDone: () => {
121
+ setEditingId(undefined);
122
+ setActiveNav("posts-all");
123
+ } }));
124
+ }
125
+ if (activeNav === "posts" ||
126
+ activeNav === "posts-all" ||
127
+ activeNav === "attention" ||
128
+ activeNav === "scheduled" ||
129
+ activeNav === "trash") {
130
+ return (_jsx(PostList, { filterState: postFilterForNav(activeNav), onCreate: () => openEditor(), onEdit: (id) => openEditor(id), onView: (id) => openView(id) }));
131
+ }
132
+ switch (activeNav) {
133
+ case "overview":
134
+ return _jsx(Dashboard, {});
135
+ case "categories":
136
+ return _jsx(CategoryManager, {});
137
+ case "tags":
138
+ return _jsx(TagManager, {});
139
+ case "authors":
140
+ return _jsx(AuthorsManager, {});
141
+ case "media":
142
+ return _jsx(MediaLibrary, {});
143
+ case "comments":
144
+ return _jsx(CommentsManager, { onOpenPost: (id) => openEditor(id) });
145
+ case "redirects":
146
+ return (_jsxs(_Fragment, { children: [_jsx(RedirectAnalyticsDashboard, { data: store.redirectAnalytics }), _jsxs("div", { className: "btn-row", style: { marginTop: 16 }, children: [_jsx("button", { type: "button", className: "btn", onClick: () => navigate("redirects-all"), children: "All redirects" }), _jsx("button", { type: "button", className: "btn btn-primary", onClick: () => navigate("redirects-new"), children: "Add redirect" })] })] }));
147
+ case "redirects-all":
148
+ if (redirectId) {
149
+ return (_jsx(RedirectDetail, { redirectId: redirectId, onEdit: () => setActiveNav("redirects-new"), onBack: () => setRedirectId(undefined) }));
150
+ }
151
+ return (_jsx(RedirectList, { onCreate: () => {
152
+ setRedirectId(undefined);
153
+ navigate("redirects-new");
154
+ }, onView: (id) => setRedirectId(id), onEdit: (id) => {
155
+ setRedirectId(id);
156
+ navigate("redirects-new");
157
+ } }));
158
+ case "redirects-new": {
159
+ const existing = redirectId ? store.getRedirect(redirectId) : undefined;
160
+ return (_jsx(RedirectForm, { mode: existing ? "edit" : "create", initial: existing ? redirectToFormValues(existing) : undefined, onDone: () => {
161
+ setRedirectId(undefined);
162
+ navigate("redirects-all");
163
+ }, onCancel: () => {
164
+ setRedirectId(undefined);
165
+ navigate("redirects-all");
166
+ } }));
167
+ }
168
+ case "robots":
169
+ return requireBrand("Robots.txt", (brandId) => _jsx(RobotsEditor, { brandId: brandId }));
170
+ case "sitemap":
171
+ return requireBrand("XML Sitemap", (brandId) => _jsx(SitemapPanel, { brandId: brandId }));
172
+ case "analytics":
173
+ return requireBrand("Google Analytics", (brandId) => _jsx(Ga4Settings, { brandId: brandId }));
174
+ case "search-console":
175
+ return requireBrand("Search Console", (brandId) => _jsx(SearchConsoleSettings, { brandId: brandId }));
176
+ case "users":
177
+ return _jsx(UsersManager, {});
178
+ case "settings":
179
+ return _jsx(BrandSettings, { brandId: settingsBrandId ?? store.activeBrandId ?? store.brands[0]?.id });
180
+ case "brands":
181
+ return (_jsx(BrandsList, { onOpenSettings: (id) => {
182
+ setSettingsBrandId(id);
183
+ navigate("settings");
184
+ } }));
185
+ case "profile":
186
+ return _jsx(ProfilePanel, {});
187
+ case "tools":
188
+ return (_jsx(ToolsHub, { onExport: () => navigate("tools-export"), onImport: () => navigate("tools-import") }));
189
+ case "tools-export":
190
+ return _jsx(ExportTool, {});
191
+ case "tools-import":
192
+ return _jsx(ImportTool, {});
193
+ default:
194
+ return _jsx(Dashboard, {});
195
+ }
196
+ };
197
+ const postCount = store.postCounts().all;
198
+ return (_jsxs("div", { className: cx("bp-admin-wrapper", branding?.className, className), style: {
199
+ ...themeVars(theme, branding),
200
+ }, children: [branding?.css ? _jsx("style", { children: branding.css }) : null, _jsx(Shell, { active: activeNav, onNavigate: navigate, title: getTitle(), wide: Boolean(viewingId), subtitle: viewingId
201
+ ? viewingPost?.status === "published"
202
+ ? "Published post"
203
+ : "Draft preview"
204
+ : activeNav === "overview"
205
+ ? `Editorial overview · last 30 days · ${store.brands.length} brands`
206
+ : activeNav.startsWith("posts") && activeNav !== "posts-new"
207
+ ? `${postCount} posts across ${store.activeBrand ? "this brand" : "all brands"}`
208
+ : store.activeBrand
209
+ ? store.activeBrand.name
210
+ : undefined, actions: _jsx(_Fragment, { children: _jsxs("div", { style: { display: "flex", gap: 12, alignItems: "center" }, children: [_jsxs("select", { className: "fld fld-sm", style: { minWidth: 140 }, "aria-label": "Brand filter", value: store.activeBrandId ?? "", onChange: (e) => store.setActiveBrandId(e.target.value || null), children: [_jsx("option", { value: "", children: "All brands" }), store.brands.map((b) => (_jsx("option", { value: b.id, children: b.name }, b.id)))] }), activeNav === "overview" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "btn-group", style: { display: "flex", background: "var(--d-rule)", borderRadius: 6, overflow: "hidden" }, children: [_jsx("button", { type: "button", className: "btn btn-ghost btn-sm", style: { borderRadius: 0, opacity: 0.6 }, children: "7d" }), _jsx("button", { type: "button", className: "btn btn-ghost btn-sm", style: {
211
+ borderRadius: 0,
212
+ background: "var(--d-accent-soft)",
213
+ color: "var(--d-accent)",
214
+ fontWeight: 600,
215
+ }, children: "30d" }), _jsx("button", { type: "button", className: "btn btn-ghost btn-sm", style: { borderRadius: 0, opacity: 0.6 }, children: "90d" })] }), _jsx("button", { type: "button", className: "btn btn-primary btn-sm", onClick: () => openEditor(), children: "+ New post" })] })) : null, viewingId ? (_jsx("button", { type: "button", className: "btn btn-primary", onClick: () => openEditor(viewingId), children: "Edit post" })) : null, (activeNav.startsWith("posts") ||
216
+ activeNav === "attention" ||
217
+ activeNav === "scheduled" ||
218
+ activeNav === "trash") &&
219
+ activeNav !== "posts-new" &&
220
+ !viewingId ? (_jsx("button", { type: "button", className: "btn btn-primary btn-sm", onClick: () => openEditor(), children: "+ Add new" })) : null] }) }), branding: branding, userName: store.profile.name, userRole: store.profile.globalRole === "platform-admin" ? "Platform admin" : store.profile.globalRole, onProfile: () => navigate("profile"), children: renderContent() })] }));
221
+ }
222
+ function BlogAdminBootGate({ theme, branding, className, }) {
223
+ const store = useAdminMock();
224
+ if (store.live && store.bootStatus === "loading") {
225
+ return (_jsx("div", { className: className, role: "status", style: { padding: 24 }, children: "Connecting to Admin API\u2026" }));
226
+ }
227
+ if (store.live && store.bootStatus === "error") {
228
+ return (_jsxs("div", { className: className, role: "alert", style: { padding: 24 }, children: [_jsx("p", { children: "Could not load Admin SDK data." }), _jsx("p", { style: { color: "#b91c1c" }, children: store.bootError ?? "Unknown error" }), _jsx("button", { type: "button", className: "btn btn-primary", onClick: () => void store.refreshFromApi(), children: "Retry" })] }));
229
+ }
230
+ return _jsx(BlogAdminInner, { theme: theme, branding: branding, className: className });
231
+ }
232
+ export function BlogAdmin({ config, theme, branding, className }) {
233
+ return (_jsx(AdminMockProvider, { config: config, children: _jsx(BlogAdminBootGate, { theme: theme, branding: branding, className: className }) }));
234
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./BlogAdmin";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../app/pages/admin/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./BlogAdmin";
@@ -0,0 +1,3 @@
1
+ export * from "./admin";
2
+ export * from "./user";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../app/pages/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./admin";
2
+ export * from "./user";
@@ -0,0 +1,10 @@
1
+ import type { BlogTheme, Branding, BlogSdkConfig } from "../../types/user";
2
+ export type UserBlogPageProps = {
3
+ config: BlogSdkConfig;
4
+ theme?: BlogTheme;
5
+ branding?: Branding;
6
+ className?: string;
7
+ };
8
+ /** Public browsing page: published list → detail (BlogUploader layout). */
9
+ export declare function UserBlogPage({ config, theme, branding, className, }: UserBlogPageProps): import("react").JSX.Element;
10
+ //# sourceMappingURL=UserBlogPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserBlogPage.d.ts","sourceRoot":"","sources":["../../../app/pages/user/UserBlogPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAQ,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,KAAK,EACL,QAAQ,EACR,SAAS,GACV,EAAE,iBAAiB,+BAkCnB"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { BlogDetail, BlogList } from "../../components/user";
4
+ /** Public browsing page: published list → detail (BlogUploader layout). */
5
+ export function UserBlogPage({ config, theme, branding, className, }) {
6
+ const [selectedSlug, setSelectedSlug] = useState(null);
7
+ if (selectedSlug) {
8
+ return (_jsx(BlogDetail, { className: className, config: config, slug: selectedSlug, theme: theme, branding: branding, blogDetailsHero: true, onBack: () => setSelectedSlug(null), onHome: () => setSelectedSlug(null), onSelectRelated: (slug) => {
9
+ setSelectedSlug(slug);
10
+ } }));
11
+ }
12
+ return (_jsx(BlogList, { className: className, config: config, theme: theme ?? { layout: "grid", columns: 3, showExcerpt: true, showDate: true }, branding: branding, title: "Stories", description: "Published stories, guides, and updates from our team.", onSelect: (blog) => {
13
+ setSelectedSlug(blog.slug);
14
+ } }));
15
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./UserBlogPage";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../app/pages/user/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./UserBlogPage";