@fecommunity/reactpress-toolkit 3.0.4 → 3.1.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 (500) hide show
  1. package/README.md +194 -309
  2. package/dist/admin/index.d.ts +2 -0
  3. package/dist/admin/index.js +18 -0
  4. package/dist/admin/permissions.d.ts +5 -0
  5. package/dist/admin/permissions.js +33 -0
  6. package/dist/admin/registry.d.ts +62 -0
  7. package/dist/admin/registry.js +79 -0
  8. package/dist/api/HttpClient.d.ts +2 -2
  9. package/dist/api/HttpClient.js +1 -1
  10. package/dist/api/Smtp.d.ts +17 -0
  11. package/dist/api/Smtp.js +15 -0
  12. package/dist/api/instance.d.ts +1 -1
  13. package/dist/api/instance.js +3 -3
  14. package/dist/app/createReactPressApp.d.ts +88 -0
  15. package/dist/app/createReactPressApp.js +262 -0
  16. package/dist/app/createThemeApp.d.ts +6 -0
  17. package/dist/app/createThemeApp.js +47 -0
  18. package/dist/app/devChunkRecovery.d.ts +2 -0
  19. package/dist/app/devChunkRecovery.js +68 -0
  20. package/dist/app/index.d.ts +39 -0
  21. package/dist/app/index.js +11 -0
  22. package/dist/config/env.js +29 -15
  23. package/dist/config/global.d.ts +7 -1
  24. package/dist/config/global.js +9 -3
  25. package/dist/config/i18n.js +27 -11
  26. package/dist/config/index.d.ts +3 -3
  27. package/dist/config/index.js +6 -5
  28. package/dist/{locales → config/locales}/en.json +31 -3
  29. package/dist/{locales → config/locales}/zh.json +31 -3
  30. package/dist/dev/index.d.ts +3 -0
  31. package/dist/dev/index.js +12 -0
  32. package/dist/dev/portRedirect.d.ts +20 -0
  33. package/dist/dev/portRedirect.js +93 -0
  34. package/dist/dev/vitePortRedirectPlugin.d.ts +24 -0
  35. package/dist/dev/vitePortRedirectPlugin.js +40 -0
  36. package/dist/extension/branding-mods.d.ts +10 -0
  37. package/dist/extension/branding-mods.js +65 -0
  38. package/dist/extension/configuration/defaults.d.ts +3 -0
  39. package/dist/extension/configuration/defaults.js +32 -0
  40. package/dist/extension/configuration/formily.d.ts +10 -0
  41. package/dist/extension/configuration/formily.js +170 -0
  42. package/dist/extension/configuration/index.d.ts +7 -0
  43. package/dist/extension/configuration/index.js +28 -0
  44. package/dist/extension/configuration/paths.d.ts +4 -0
  45. package/dist/extension/configuration/paths.js +50 -0
  46. package/dist/extension/configuration/presets/twentytwentyfive.d.ts +7 -0
  47. package/dist/extension/configuration/presets/twentytwentyfive.js +94 -0
  48. package/dist/extension/configuration/resolve.d.ts +24 -0
  49. package/dist/extension/configuration/resolve.js +98 -0
  50. package/dist/extension/configuration/types.d.ts +68 -0
  51. package/dist/extension/configuration/types.js +3 -0
  52. package/dist/extension/configuration/validate.d.ts +8 -0
  53. package/dist/extension/configuration/validate.js +21 -0
  54. package/dist/extension/index.d.ts +9 -0
  55. package/dist/extension/index.js +35 -0
  56. package/dist/extension/manifest-normalize.d.ts +5 -0
  57. package/dist/extension/manifest-normalize.js +75 -0
  58. package/dist/extension/node.d.ts +2 -0
  59. package/dist/extension/node.js +6 -0
  60. package/dist/extension/presets/twentytwentyfive-appearance.d.ts +10 -0
  61. package/dist/extension/presets/twentytwentyfive-appearance.js +193 -0
  62. package/dist/extension/presets/twentytwentyfive-customizer.d.ts +19 -0
  63. package/dist/extension/presets/twentytwentyfive-customizer.js +199 -0
  64. package/dist/extension/preview.d.ts +46 -0
  65. package/dist/extension/preview.js +92 -0
  66. package/dist/extension/site-notices.d.ts +19 -0
  67. package/dist/extension/site-notices.js +88 -0
  68. package/dist/extension/site-settings.d.ts +37 -0
  69. package/dist/extension/site-settings.js +144 -0
  70. package/dist/extension/theme-admin-locale.d.ts +11 -0
  71. package/dist/extension/theme-admin-locale.io.d.ts +2 -0
  72. package/dist/extension/theme-admin-locale.io.js +54 -0
  73. package/dist/extension/theme-admin-locale.js +81 -0
  74. package/dist/extension/theme.d.ts +89 -0
  75. package/dist/extension/theme.js +93 -0
  76. package/dist/extension/twentytwentyfive-vars.d.ts +7 -0
  77. package/dist/extension/twentytwentyfive-vars.js +100 -0
  78. package/dist/index.d.ts +15 -7
  79. package/dist/index.js +44 -22
  80. package/dist/plugin/admin/index.d.ts +2 -0
  81. package/dist/plugin/admin/index.js +18 -0
  82. package/dist/plugin/admin/permissions.d.ts +5 -0
  83. package/dist/plugin/admin/permissions.js +33 -0
  84. package/dist/plugin/admin/registry.d.ts +62 -0
  85. package/dist/plugin/admin/registry.js +79 -0
  86. package/dist/plugin/client/client.d.ts +14 -0
  87. package/dist/plugin/client/client.js +95 -0
  88. package/dist/plugin/client/index.d.ts +4 -0
  89. package/dist/plugin/client/index.js +11 -0
  90. package/dist/plugin/client/runtime.d.ts +18 -0
  91. package/dist/plugin/client/runtime.js +30 -0
  92. package/dist/plugin/dev/index.d.ts +4 -0
  93. package/dist/plugin/dev/index.js +16 -0
  94. package/dist/plugin/dev/portRedirect.d.ts +26 -0
  95. package/dist/plugin/dev/portRedirect.js +111 -0
  96. package/dist/plugin/dev/vitePortRedirectPlugin.d.ts +24 -0
  97. package/dist/plugin/dev/vitePortRedirectPlugin.js +40 -0
  98. package/dist/plugin/index.d.ts +9 -0
  99. package/dist/plugin/index.js +48 -0
  100. package/dist/plugin/react/client.d.ts +14 -0
  101. package/dist/plugin/react/client.js +95 -0
  102. package/dist/plugin/react/index.d.ts +2 -0
  103. package/dist/plugin/react/index.js +18 -0
  104. package/dist/plugin/react/runtime.d.ts +18 -0
  105. package/dist/plugin/react/runtime.js +30 -0
  106. package/dist/primitives/AntdStyleTransitionFix.d.ts +2 -0
  107. package/dist/primitives/AntdStyleTransitionFix.js +16 -0
  108. package/dist/primitives/Badge.d.ts +7 -0
  109. package/dist/primitives/Badge.js +9 -0
  110. package/dist/primitives/Button.d.ts +10 -0
  111. package/dist/primitives/Button.js +38 -0
  112. package/dist/primitives/ColorModeToggle.d.ts +8 -0
  113. package/dist/primitives/ColorModeToggle.js +13 -0
  114. package/dist/primitives/IconButton.d.ts +7 -0
  115. package/dist/primitives/IconButton.js +13 -0
  116. package/dist/primitives/ScrollToTarget.d.ts +9 -0
  117. package/dist/primitives/ScrollToTarget.js +48 -0
  118. package/dist/primitives/Separator.d.ts +7 -0
  119. package/dist/primitives/Separator.js +9 -0
  120. package/dist/primitives/Skeleton.d.ts +7 -0
  121. package/dist/primitives/Skeleton.js +9 -0
  122. package/dist/primitives/Slot.d.ts +10 -0
  123. package/dist/primitives/Slot.js +25 -0
  124. package/dist/primitives/Spinner.d.ts +6 -0
  125. package/dist/primitives/Spinner.js +9 -0
  126. package/dist/primitives/animation/ConditionTransition.d.ts +8 -0
  127. package/dist/primitives/animation/ConditionTransition.js +13 -0
  128. package/dist/primitives/animation/ListTrail.d.ts +10 -0
  129. package/dist/primitives/animation/ListTrail.js +14 -0
  130. package/dist/primitives/animation/Opacity.d.ts +3 -0
  131. package/dist/primitives/animation/Opacity.js +10 -0
  132. package/dist/primitives/animation/Spring.d.ts +9 -0
  133. package/dist/primitives/animation/Spring.js +29 -0
  134. package/dist/primitives/animation/index.d.ts +7 -0
  135. package/dist/primitives/animation/index.js +11 -0
  136. package/dist/primitives/cn.d.ts +4 -0
  137. package/dist/primitives/cn.js +7 -0
  138. package/dist/primitives/icons.d.ts +4 -0
  139. package/dist/primitives/icons.js +15 -0
  140. package/dist/primitives/index.d.ts +22 -0
  141. package/dist/primitives/index.js +44 -0
  142. package/dist/react/client.d.ts +14 -0
  143. package/dist/react/client.js +95 -0
  144. package/dist/react/index.d.ts +4 -0
  145. package/dist/react/index.js +11 -0
  146. package/dist/react/runtime.d.ts +18 -0
  147. package/dist/react/runtime.js +30 -0
  148. package/dist/theme/antdDocument.d.ts +18 -0
  149. package/dist/theme/antdDocument.js +59 -0
  150. package/dist/theme/api/api-data.d.ts +2 -0
  151. package/dist/theme/api/api-data.js +8 -0
  152. package/dist/theme/api/api.d.ts +28 -0
  153. package/dist/theme/api/api.js +27 -0
  154. package/dist/theme/api/httpClient.d.ts +24 -0
  155. package/dist/theme/api/httpClient.js +83 -0
  156. package/dist/theme/api/json.d.ts +1 -0
  157. package/dist/theme/api/json.js +5 -0
  158. package/dist/theme/api/jsonp.d.ts +1 -0
  159. package/dist/theme/api/jsonp.js +5 -0
  160. package/dist/theme/api-data.d.ts +12 -0
  161. package/dist/theme/api-data.js +22 -0
  162. package/dist/theme/api.d.ts +28 -0
  163. package/dist/theme/api.js +27 -0
  164. package/dist/theme/appearance.d.ts +4 -0
  165. package/dist/theme/appearance.js +16 -0
  166. package/dist/theme/assets.d.ts +2 -0
  167. package/dist/theme/assets.js +27 -0
  168. package/dist/theme/authSession.d.ts +16 -0
  169. package/dist/theme/authSession.js +92 -0
  170. package/dist/theme/build/antdDocument.d.ts +145 -0
  171. package/dist/theme/build/antdDocument.js +70 -0
  172. package/dist/theme/build/next-config.d.ts +17 -0
  173. package/dist/theme/build/next-config.js +100 -0
  174. package/dist/theme/build/node.d.ts +2 -0
  175. package/dist/theme/build/node.js +6 -0
  176. package/dist/theme/colorMode.d.ts +12 -0
  177. package/dist/theme/colorMode.js +45 -0
  178. package/dist/theme/commentAuthor.d.ts +17 -0
  179. package/dist/theme/commentAuthor.js +48 -0
  180. package/dist/theme/content/archiveSlim.d.ts +7 -0
  181. package/dist/theme/content/archiveSlim.js +38 -0
  182. package/dist/theme/content/articleSlim.d.ts +10 -0
  183. package/dist/theme/content/articleSlim.js +35 -0
  184. package/dist/theme/content/assets.d.ts +8 -0
  185. package/dist/theme/content/assets.js +74 -0
  186. package/dist/theme/content/carouselArticles.d.ts +10 -0
  187. package/dist/theme/content/carouselArticles.js +39 -0
  188. package/dist/theme/content/excerpt.d.ts +15 -0
  189. package/dist/theme/content/excerpt.js +42 -0
  190. package/dist/theme/content/nav.d.ts +10 -0
  191. package/dist/theme/content/nav.js +30 -0
  192. package/dist/theme/content/seo.d.ts +6 -0
  193. package/dist/theme/content/seo.js +12 -0
  194. package/dist/theme/createAntdApp.d.ts +106 -0
  195. package/dist/theme/createAntdApp.js +175 -0
  196. package/dist/theme/createApp.d.ts +10 -0
  197. package/dist/theme/createApp.js +141 -0
  198. package/dist/theme/createCatalogApp.d.ts +108 -0
  199. package/dist/theme/createCatalogApp.js +168 -0
  200. package/dist/theme/customizer.d.ts +1 -0
  201. package/dist/theme/customizer.js +5 -0
  202. package/dist/theme/excerpt.d.ts +16 -0
  203. package/dist/theme/excerpt.js +31 -0
  204. package/dist/theme/extension/branding-mods.d.ts +10 -0
  205. package/dist/theme/extension/branding-mods.js +65 -0
  206. package/dist/theme/extension/configuration/defaults.d.ts +3 -0
  207. package/dist/theme/extension/configuration/defaults.js +32 -0
  208. package/dist/theme/extension/configuration/formily.d.ts +10 -0
  209. package/dist/theme/extension/configuration/formily.js +170 -0
  210. package/dist/theme/extension/configuration/index.d.ts +7 -0
  211. package/dist/theme/extension/configuration/index.js +28 -0
  212. package/dist/theme/extension/configuration/paths.d.ts +1 -0
  213. package/dist/theme/extension/configuration/paths.js +7 -0
  214. package/dist/theme/extension/configuration/presets/twentytwentyfive.d.ts +7 -0
  215. package/dist/theme/extension/configuration/presets/twentytwentyfive.js +94 -0
  216. package/dist/theme/extension/configuration/resolve.d.ts +24 -0
  217. package/dist/theme/extension/configuration/resolve.js +98 -0
  218. package/dist/theme/extension/configuration/types.d.ts +68 -0
  219. package/dist/theme/extension/configuration/types.js +3 -0
  220. package/dist/theme/extension/configuration/validate.d.ts +8 -0
  221. package/dist/theme/extension/configuration/validate.js +21 -0
  222. package/dist/theme/extension/index.d.ts +11 -0
  223. package/dist/theme/extension/index.js +38 -0
  224. package/dist/theme/extension/manifest-normalize.d.ts +5 -0
  225. package/dist/theme/extension/manifest-normalize.js +75 -0
  226. package/dist/theme/extension/presets/twentytwentyfive-appearance.d.ts +10 -0
  227. package/dist/theme/extension/presets/twentytwentyfive-appearance.js +193 -0
  228. package/dist/theme/extension/preview.d.ts +46 -0
  229. package/dist/theme/extension/preview.js +92 -0
  230. package/dist/theme/extension/site-notices.d.ts +19 -0
  231. package/dist/theme/extension/site-notices.js +88 -0
  232. package/dist/theme/extension/site-settings.d.ts +37 -0
  233. package/dist/theme/extension/site-settings.js +144 -0
  234. package/dist/theme/extension/siteNav.d.ts +18 -0
  235. package/dist/theme/extension/siteNav.js +17 -0
  236. package/dist/theme/extension/theme-admin-locale.d.ts +11 -0
  237. package/dist/theme/extension/theme-admin-locale.io.d.ts +2 -0
  238. package/dist/theme/extension/theme-admin-locale.io.js +54 -0
  239. package/dist/theme/extension/theme-admin-locale.js +68 -0
  240. package/dist/theme/extension/theme.d.ts +89 -0
  241. package/dist/theme/extension/theme.js +93 -0
  242. package/dist/theme/extension/twentytwentyfive-vars.d.ts +9 -0
  243. package/dist/theme/extension/twentytwentyfive-vars.js +103 -0
  244. package/dist/theme/fetch.d.ts +134 -0
  245. package/dist/theme/fetch.js +241 -0
  246. package/dist/theme/format.d.ts +16 -0
  247. package/dist/theme/format.js +48 -0
  248. package/dist/theme/httpClient.d.ts +20 -0
  249. package/dist/theme/httpClient.js +89 -0
  250. package/dist/theme/index.d.ts +63 -0
  251. package/dist/theme/index.js +226 -0
  252. package/dist/theme/json.d.ts +1 -0
  253. package/dist/theme/json.js +17 -0
  254. package/dist/theme/jsonp.d.ts +8 -0
  255. package/dist/theme/jsonp.js +27 -0
  256. package/dist/theme/locale.d.ts +23 -0
  257. package/dist/theme/locale.js +55 -0
  258. package/dist/theme/nav.d.ts +10 -0
  259. package/dist/theme/nav.js +30 -0
  260. package/dist/theme/next-config.d.ts +2 -0
  261. package/dist/theme/next-config.js +18 -0
  262. package/dist/theme/node.d.ts +2 -0
  263. package/dist/theme/node.js +18 -0
  264. package/dist/theme/preview/preview-config.d.ts +13 -0
  265. package/dist/theme/preview/preview-config.js +65 -0
  266. package/dist/theme/preview/preview-draft.d.ts +19 -0
  267. package/dist/theme/preview/preview-draft.js +51 -0
  268. package/dist/theme/preview/preview-mods.d.ts +16 -0
  269. package/dist/theme/preview/preview-mods.js +78 -0
  270. package/dist/theme/preview-config.d.ts +13 -0
  271. package/dist/theme/preview-config.js +65 -0
  272. package/dist/theme/preview-draft.d.ts +19 -0
  273. package/dist/theme/preview-draft.js +51 -0
  274. package/dist/theme/preview-mods.d.ts +16 -0
  275. package/dist/theme/preview-mods.js +78 -0
  276. package/dist/theme/providers/index.d.ts +118 -0
  277. package/dist/theme/providers/index.js +251 -0
  278. package/dist/theme/providers/setup.d.ts +124 -0
  279. package/dist/theme/providers/setup.js +29 -0
  280. package/dist/theme/runtime.d.ts +18 -0
  281. package/dist/theme/runtime.js +19 -0
  282. package/dist/theme/seo.d.ts +6 -0
  283. package/dist/theme/seo.js +12 -0
  284. package/dist/theme/server.d.ts +65 -0
  285. package/dist/theme/server.js +177 -0
  286. package/dist/theme/setting.d.ts +12 -0
  287. package/dist/theme/setting.js +42 -0
  288. package/dist/theme/ssr/bootstrap.d.ts +48 -0
  289. package/dist/theme/ssr/bootstrap.js +112 -0
  290. package/dist/theme/ssr/fetch.d.ts +134 -0
  291. package/dist/theme/ssr/fetch.js +264 -0
  292. package/dist/theme/ssr/format.d.ts +3 -0
  293. package/dist/theme/ssr/format.js +8 -0
  294. package/dist/theme/ssr/pageProps.d.ts +62 -0
  295. package/dist/theme/ssr/pageProps.js +138 -0
  296. package/dist/theme/ssr/setting.d.ts +12 -0
  297. package/dist/theme/ssr/setting.js +42 -0
  298. package/dist/theme/ssr/slimBootstrap.d.ts +11 -0
  299. package/dist/theme/ssr/slimBootstrap.js +75 -0
  300. package/dist/theme/ssr/static.d.ts +10 -0
  301. package/dist/theme/ssr/static.js +17 -0
  302. package/dist/theme/ssr/templates.d.ts +35 -0
  303. package/dist/theme/ssr/templates.js +50 -0
  304. package/dist/theme/static.d.ts +10 -0
  305. package/dist/theme/static.js +17 -0
  306. package/dist/theme/templates.d.ts +27 -0
  307. package/dist/theme/templates.js +38 -0
  308. package/dist/theme/ui-optional.d.ts +1 -0
  309. package/dist/theme/ui-optional.js +21 -0
  310. package/dist/theme/visitor/appearance.d.ts +4 -0
  311. package/dist/theme/visitor/appearance.js +16 -0
  312. package/dist/theme/visitor/authSession.d.ts +16 -0
  313. package/dist/theme/visitor/authSession.js +92 -0
  314. package/dist/theme/visitor/colorMode.d.ts +17 -0
  315. package/dist/theme/visitor/colorMode.js +59 -0
  316. package/dist/theme/visitor/commentAuthor.d.ts +16 -0
  317. package/dist/theme/visitor/commentAuthor.js +45 -0
  318. package/dist/theme/visitor/i18n.d.ts +4 -0
  319. package/dist/theme/visitor/i18n.js +28 -0
  320. package/dist/theme/visitor/locale.d.ts +23 -0
  321. package/dist/theme/visitor/locale.js +72 -0
  322. package/dist/theme/visitor/runtime.d.ts +18 -0
  323. package/dist/theme/visitor/runtime.js +19 -0
  324. package/dist/theme/visitor/visitorLocale.d.ts +11 -0
  325. package/dist/theme/visitor/visitorLocale.js +56 -0
  326. package/dist/theme/visitorLocale.d.ts +6 -0
  327. package/dist/theme/visitorLocale.js +39 -0
  328. package/dist/types/index.d.ts +79 -68
  329. package/dist/ui/AntdStyleTransitionFix.d.ts +5 -0
  330. package/dist/ui/AntdStyleTransitionFix.js +16 -0
  331. package/dist/ui/ArchiveEmptyState.d.ts +13 -0
  332. package/dist/ui/ArchiveEmptyState.js +8 -0
  333. package/dist/ui/ArchivePageLayout.d.ts +10 -0
  334. package/dist/ui/ArchivePageLayout.js +8 -0
  335. package/dist/ui/ArticleCard.d.ts +27 -0
  336. package/dist/ui/ArticleCard.js +16 -0
  337. package/dist/ui/ArticleList.d.ts +14 -0
  338. package/dist/ui/ArticleList.js +16 -0
  339. package/dist/ui/BaseGlobalStyles.d.ts +5 -0
  340. package/dist/ui/BaseGlobalStyles.js +18 -0
  341. package/dist/ui/LocaleSwitcher.d.ts +7 -0
  342. package/dist/ui/LocaleSwitcher.js +15 -0
  343. package/dist/ui/NavMenu.d.ts +16 -0
  344. package/dist/ui/NavMenu.js +8 -0
  345. package/dist/ui/NotFoundPanel.d.ts +11 -0
  346. package/dist/ui/NotFoundPanel.js +8 -0
  347. package/dist/ui/PageHeader.d.ts +10 -0
  348. package/dist/ui/PageHeader.js +8 -0
  349. package/dist/ui/SiteBranding.d.ts +10 -0
  350. package/dist/ui/SiteBranding.js +14 -0
  351. package/dist/ui/SiteDocument.d.ts +20 -0
  352. package/dist/ui/SiteDocument.js +13 -0
  353. package/dist/ui/SiteDocumentFallback.d.ts +8 -0
  354. package/dist/ui/SiteDocumentFallback.js +9 -0
  355. package/dist/ui/SiteLogo.d.ts +6 -0
  356. package/dist/ui/SiteLogo.js +16 -0
  357. package/dist/ui/SiteTagline.d.ts +7 -0
  358. package/dist/ui/SiteTagline.js +15 -0
  359. package/dist/ui/TaxonomyList.d.ts +25 -0
  360. package/dist/ui/TaxonomyList.js +30 -0
  361. package/dist/ui/ThemeCssVars.d.ts +2 -0
  362. package/dist/ui/ThemeCssVars.js +85 -0
  363. package/dist/ui/ThemeLayout.d.ts +13 -0
  364. package/dist/ui/ThemeLayout.js +11 -0
  365. package/dist/ui/components/AntdStyleTransitionFix.d.ts +5 -0
  366. package/dist/ui/components/AntdStyleTransitionFix.js +16 -0
  367. package/dist/ui/components/ArchiveEmptyState.d.ts +13 -0
  368. package/dist/ui/components/ArchiveEmptyState.js +8 -0
  369. package/dist/ui/components/ArchivePageLayout.d.ts +10 -0
  370. package/dist/ui/components/ArchivePageLayout.js +8 -0
  371. package/dist/ui/components/ArticleCard.d.ts +27 -0
  372. package/dist/ui/components/ArticleCard.js +16 -0
  373. package/dist/ui/components/ArticleList.d.ts +14 -0
  374. package/dist/ui/components/ArticleList.js +16 -0
  375. package/dist/ui/components/BaseGlobalStyles.d.ts +5 -0
  376. package/dist/ui/components/BaseGlobalStyles.js +18 -0
  377. package/dist/ui/components/LocaleSwitcher.d.ts +10 -0
  378. package/dist/ui/components/LocaleSwitcher.js +11 -0
  379. package/dist/ui/components/NavMenu.d.ts +16 -0
  380. package/dist/ui/components/NavMenu.js +8 -0
  381. package/dist/ui/components/NotFoundPanel.d.ts +11 -0
  382. package/dist/ui/components/NotFoundPanel.js +8 -0
  383. package/dist/ui/components/PageHeader.d.ts +10 -0
  384. package/dist/ui/components/PageHeader.js +8 -0
  385. package/dist/ui/components/RouteProgress.d.ts +9 -0
  386. package/dist/ui/components/RouteProgress.js +40 -0
  387. package/dist/ui/components/SiteAnalytics.d.ts +5 -0
  388. package/dist/ui/components/SiteAnalytics.js +42 -0
  389. package/dist/ui/components/SiteBranding.d.ts +10 -0
  390. package/dist/ui/components/SiteBranding.js +14 -0
  391. package/dist/ui/components/SiteDocument.d.ts +20 -0
  392. package/dist/ui/components/SiteDocument.js +13 -0
  393. package/dist/ui/components/SiteDocumentFallback.d.ts +8 -0
  394. package/dist/ui/components/SiteDocumentFallback.js +9 -0
  395. package/dist/ui/components/SiteLogo.d.ts +8 -0
  396. package/dist/ui/components/SiteLogo.js +23 -0
  397. package/dist/ui/components/SiteSeo.d.ts +13 -0
  398. package/dist/ui/components/SiteSeo.js +19 -0
  399. package/dist/ui/components/SiteTagline.d.ts +7 -0
  400. package/dist/ui/components/SiteTagline.js +15 -0
  401. package/dist/ui/components/TaxonomyList.d.ts +25 -0
  402. package/dist/ui/components/TaxonomyList.js +30 -0
  403. package/dist/ui/components/ThemeCssVars.d.ts +2 -0
  404. package/dist/ui/components/ThemeCssVars.js +85 -0
  405. package/dist/ui/components/ThemeLayout.d.ts +13 -0
  406. package/dist/ui/components/ThemeLayout.js +11 -0
  407. package/dist/ui/components/content/ArticleReader.d.ts +45 -0
  408. package/dist/ui/components/content/ArticleReader.js +23 -0
  409. package/dist/ui/components/content/ArticleToc.d.ts +21 -0
  410. package/dist/ui/components/content/ArticleToc.js +75 -0
  411. package/dist/ui/components/content/HtmlContent.d.ts +15 -0
  412. package/dist/ui/components/content/HtmlContent.js +237 -0
  413. package/dist/ui/components/content/Image.d.ts +9 -0
  414. package/dist/ui/components/content/Image.js +13 -0
  415. package/dist/ui/components/content/ImageViewer.d.ts +8 -0
  416. package/dist/ui/components/content/ImageViewer.js +33 -0
  417. package/dist/ui/components/content/LocaleTime.d.ts +9 -0
  418. package/dist/ui/components/content/LocaleTime.js +63 -0
  419. package/dist/ui/components/content/index.d.ts +14 -0
  420. package/dist/ui/components/content/index.js +18 -0
  421. package/dist/ui/components/toolbar/LocaleToggleButton.d.ts +8 -0
  422. package/dist/ui/components/toolbar/LocaleToggleButton.js +18 -0
  423. package/dist/ui/components/toolbar/ThemeToggleButton.d.ts +7 -0
  424. package/dist/ui/components/toolbar/ThemeToggleButton.js +10 -0
  425. package/dist/ui/components/toolbar/ToolbarIconButton.d.ts +7 -0
  426. package/dist/ui/components/toolbar/ToolbarIconButton.js +22 -0
  427. package/dist/ui/components/toolbar/constants.d.ts +5 -0
  428. package/dist/ui/components/toolbar/constants.js +8 -0
  429. package/dist/ui/components/toolbar/icons.d.ts +17 -0
  430. package/dist/ui/components/toolbar/icons.js +44 -0
  431. package/dist/ui/components/toolbar/index.d.ts +9 -0
  432. package/dist/ui/components/toolbar/index.js +25 -0
  433. package/dist/ui/components/toolbar/locale-label.d.ts +3 -0
  434. package/dist/ui/components/toolbar/locale-label.js +19 -0
  435. package/dist/ui/context/LocaleContext.d.ts +15 -0
  436. package/dist/ui/context/LocaleContext.js +59 -0
  437. package/dist/ui/context/ReactPressProvider.d.ts +3 -0
  438. package/dist/ui/context/ReactPressProvider.js +10 -0
  439. package/dist/ui/context/SiteCatalogContext.d.ts +41 -0
  440. package/dist/ui/context/SiteCatalogContext.js +60 -0
  441. package/dist/ui/context/ThemeRuntimeContext.d.ts +21 -0
  442. package/dist/ui/context/ThemeRuntimeContext.js +59 -0
  443. package/dist/ui/context/index.d.ts +8 -0
  444. package/dist/ui/context/index.js +26 -0
  445. package/dist/ui/context/siteCatalogTypes.d.ts +64 -0
  446. package/dist/ui/context/siteCatalogTypes.js +20 -0
  447. package/dist/ui/context/types.d.ts +34 -0
  448. package/dist/ui/context/types.js +2 -0
  449. package/dist/ui/hooks/index.d.ts +12 -0
  450. package/dist/ui/hooks/index.js +29 -0
  451. package/dist/ui/hooks/useAsyncLoading.d.ts +4 -0
  452. package/dist/ui/hooks/useAsyncLoading.js +31 -0
  453. package/dist/ui/hooks/useForceUpdate.d.ts +2 -0
  454. package/dist/ui/hooks/useForceUpdate.js +11 -0
  455. package/dist/ui/hooks/useNavActive.d.ts +5 -0
  456. package/dist/ui/hooks/useNavActive.js +11 -0
  457. package/dist/ui/hooks/usePagination.d.ts +34 -0
  458. package/dist/ui/hooks/usePagination.js +55 -0
  459. package/dist/ui/hooks/useReportArticleView.d.ts +4 -0
  460. package/dist/ui/hooks/useReportArticleView.js +40 -0
  461. package/dist/ui/hooks/useReportPageView.d.ts +11 -0
  462. package/dist/ui/hooks/useReportPageView.js +28 -0
  463. package/dist/ui/hooks/useRouteParam.d.ts +5 -0
  464. package/dist/ui/hooks/useRouteParam.js +15 -0
  465. package/dist/ui/hooks/useToggle.d.ts +2 -0
  466. package/dist/ui/hooks/useToggle.js +17 -0
  467. package/dist/ui/hooks/useWarningOnExit.d.ts +5 -0
  468. package/dist/ui/hooks/useWarningOnExit.js +59 -0
  469. package/dist/ui/index.d.ts +43 -0
  470. package/dist/ui/index.js +87 -0
  471. package/dist/utils/api-envelope.d.ts +14 -0
  472. package/dist/utils/api-envelope.js +31 -0
  473. package/dist/utils/clipboard.d.ts +2 -0
  474. package/dist/utils/clipboard.js +24 -0
  475. package/dist/utils/cookie.d.ts +2 -0
  476. package/dist/utils/cookie.js +15 -0
  477. package/dist/utils/date.d.ts +4 -0
  478. package/dist/utils/date.js +45 -0
  479. package/dist/utils/email.d.ts +3 -0
  480. package/dist/utils/email.js +9 -0
  481. package/dist/utils/error.d.ts +7 -0
  482. package/dist/utils/error.js +26 -0
  483. package/dist/utils/image.d.ts +7 -0
  484. package/dist/utils/image.js +34 -0
  485. package/dist/utils/index.d.ts +15 -33
  486. package/dist/utils/index.js +37 -57
  487. package/dist/utils/json.d.ts +2 -0
  488. package/dist/utils/json.js +18 -0
  489. package/dist/utils/jsonp.d.ts +8 -0
  490. package/dist/utils/jsonp.js +27 -0
  491. package/dist/utils/object.d.ts +7 -0
  492. package/dist/utils/object.js +63 -0
  493. package/dist/utils/setting.d.ts +12 -0
  494. package/dist/utils/setting.js +13 -0
  495. package/dist/utils/string.d.ts +4 -0
  496. package/dist/utils/string.js +15 -0
  497. package/dist/utils/viewport.d.ts +3 -0
  498. package/dist/utils/viewport.js +14 -0
  499. package/package.json +129 -16
  500. package/LICENSE +0 -21
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Report article view on mount and return the latest view count for display.
3
+ */
4
+ export declare function useReportArticleView(articleId: string | undefined, initialViews?: number): number | undefined;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useReportArticleView = useReportArticleView;
4
+ const react_1 = require("react");
5
+ const api_envelope_1 = require("../../utils/api-envelope");
6
+ const api_1 = require("../../theme/api/api");
7
+ /**
8
+ * Report article view on mount and return the latest view count for display.
9
+ */
10
+ function useReportArticleView(articleId, initialViews) {
11
+ const [views, setViews] = (0, react_1.useState)(initialViews);
12
+ (0, react_1.useEffect)(() => {
13
+ setViews(initialViews);
14
+ }, [articleId, initialViews]);
15
+ (0, react_1.useEffect)(() => {
16
+ if (!articleId)
17
+ return undefined;
18
+ let cancelled = false;
19
+ api_1.themeApi.article
20
+ .updateViewsById(articleId)
21
+ .then((res) => {
22
+ if (cancelled)
23
+ return;
24
+ const updated = (0, api_envelope_1.unpackOne)(res);
25
+ if (typeof updated?.views === 'number') {
26
+ setViews(updated.views);
27
+ }
28
+ else {
29
+ setViews((prev) => (typeof prev === 'number' ? prev + 1 : 1));
30
+ }
31
+ })
32
+ .catch((error) => {
33
+ console.error('[reactpress] report article view failed', error);
34
+ });
35
+ return () => {
36
+ cancelled = true;
37
+ };
38
+ }, [articleId]);
39
+ return views;
40
+ }
@@ -0,0 +1,11 @@
1
+ export interface UseReportPageViewOptions {
2
+ /** Report on every render when URL changes; default uses current `window.location.href`. */
3
+ url?: string;
4
+ /** Skip localhost / 127.0.0.1 (default true). */
5
+ skipLocalhost?: boolean;
6
+ enabled?: boolean;
7
+ }
8
+ /**
9
+ * POST a page view once per distinct URL (browser only). Pair with layout shell or `_app`.
10
+ */
11
+ export declare function useReportPageView(options?: UseReportPageViewOptions): void;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useReportPageView = useReportPageView;
4
+ const react_1 = require("react");
5
+ const api_1 = require("../../theme/api/api");
6
+ /**
7
+ * POST a page view once per distinct URL (browser only). Pair with layout shell or `_app`.
8
+ */
9
+ function useReportPageView(options = {}) {
10
+ const { url, skipLocalhost = true, enabled = true } = options;
11
+ const lastUrl = (0, react_1.useRef)(undefined);
12
+ (0, react_1.useEffect)(() => {
13
+ if (!enabled || typeof window === 'undefined')
14
+ return undefined;
15
+ const target = url ?? window.location.href;
16
+ if (skipLocalhost && /localhost|127\.0\.0\.1/.test(target))
17
+ return undefined;
18
+ if (lastUrl.current === target)
19
+ return undefined;
20
+ lastUrl.current = target;
21
+ api_1.themeApi.view
22
+ .create({ body: { url: target } })
23
+ .catch((error) => {
24
+ console.error('[reactpress] report page view failed', error);
25
+ });
26
+ return undefined;
27
+ });
28
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Resolve a dynamic route param during ISR fallback.
3
+ * Prefers the value from `getStaticProps`, then falls back to `router.query`.
4
+ */
5
+ export declare function useRouteParam(propValue: string | undefined, paramName: string): string;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useRouteParam = useRouteParam;
4
+ const router_1 = require("next/router");
5
+ /**
6
+ * Resolve a dynamic route param during ISR fallback.
7
+ * Prefers the value from `getStaticProps`, then falls back to `router.query`.
8
+ */
9
+ function useRouteParam(propValue, paramName) {
10
+ const router = (0, router_1.useRouter)();
11
+ if (propValue)
12
+ return propValue;
13
+ const queryValue = router.query[paramName];
14
+ return typeof queryValue === 'string' ? queryValue : '';
15
+ }
@@ -0,0 +1,2 @@
1
+ /** Boolean state with `toggle(next?)` — pass a boolean to set explicitly, or omit to flip. */
2
+ export declare function useToggle(initialValue: boolean): [boolean, (arg?: boolean | null) => void];
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useToggle = useToggle;
4
+ const react_1 = require("react");
5
+ /** Boolean state with `toggle(next?)` — pass a boolean to set explicitly, or omit to flip. */
6
+ function useToggle(initialValue) {
7
+ const [value, setValue] = (0, react_1.useState)(initialValue);
8
+ const toggle = (0, react_1.useCallback)((arg = null) => {
9
+ if (arg !== null && typeof arg === 'boolean') {
10
+ setValue(arg);
11
+ }
12
+ else {
13
+ setValue((v) => !v);
14
+ }
15
+ }, []);
16
+ return [value, toggle];
17
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Confirm before leaving the page (browser refresh/close or Next.js route change).
3
+ * `warn` should return `true` to allow navigation, `false` to cancel.
4
+ */
5
+ export declare function useWarningOnExit(shouldWarn: boolean, warn?: () => boolean): void;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useWarningOnExit = useWarningOnExit;
7
+ const router_1 = __importDefault(require("next/router"));
8
+ const react_1 = require("react");
9
+ /**
10
+ * Confirm before leaving the page (browser refresh/close or Next.js route change).
11
+ * `warn` should return `true` to allow navigation, `false` to cancel.
12
+ */
13
+ function useWarningOnExit(shouldWarn, warn = () => true) {
14
+ (0, react_1.useEffect)(() => {
15
+ let isWarned = false;
16
+ const routeChangeStart = (url) => {
17
+ if (router_1.default.asPath !== url && shouldWarn && !isWarned) {
18
+ isWarned = true;
19
+ if (warn()) {
20
+ router_1.default.push(url);
21
+ }
22
+ else {
23
+ isWarned = false;
24
+ router_1.default.events.emit('routeChangeError');
25
+ router_1.default.replace(router_1.default, router_1.default.asPath, { shallow: true });
26
+ throw 'Abort route change. Please ignore this error.';
27
+ }
28
+ }
29
+ };
30
+ const beforeUnload = (e) => {
31
+ if (shouldWarn && !isWarned) {
32
+ const event = e || window.event;
33
+ event.returnValue = 'Abort route change. Please ignore this error.';
34
+ return 'Abort route change. Please ignore this error.';
35
+ }
36
+ return null;
37
+ };
38
+ router_1.default.events.on('routeChangeStart', routeChangeStart);
39
+ window.addEventListener('beforeunload', beforeUnload);
40
+ router_1.default.beforePopState(({ url }) => {
41
+ if (router_1.default.asPath !== url && shouldWarn && !isWarned) {
42
+ isWarned = true;
43
+ if (warn()) {
44
+ return true;
45
+ }
46
+ isWarned = false;
47
+ window.history.pushState(null, '', url);
48
+ router_1.default.replace(router_1.default, router_1.default.asPath, { shallow: true });
49
+ return false;
50
+ }
51
+ return true;
52
+ });
53
+ return () => {
54
+ router_1.default.events.off('routeChangeStart', routeChangeStart);
55
+ window.removeEventListener('beforeunload', beforeUnload);
56
+ router_1.default.beforePopState(() => true);
57
+ };
58
+ }, [warn, shouldWarn]);
59
+ }
@@ -0,0 +1,43 @@
1
+ export type { ArchiveEmptyStateProps } from './components/ArchiveEmptyState';
2
+ export { ArchiveEmptyState } from './components/ArchiveEmptyState';
3
+ export type { ArchivePageLayoutProps } from './components/ArchivePageLayout';
4
+ export { ArchivePageLayout } from './components/ArchivePageLayout';
5
+ export type { ArticleCardArticle, ArticleCardLinkProps, ArticleCardProps } from './components/ArticleCard';
6
+ export { ArticleCard } from './components/ArticleCard';
7
+ export type { ArticleListProps } from './components/ArticleList';
8
+ export { ArticleList } from './components/ArticleList';
9
+ export type { BaseGlobalStylesProps } from './components/BaseGlobalStyles';
10
+ export { BaseGlobalStyles } from './components/BaseGlobalStyles';
11
+ export type { LocaleContextValue, LocaleProviderProps, ReactPressProviderProps, ThemeRuntimeContextValue, ThemeRuntimeProviderProps, SiteCatalogContextValue, SiteCatalogSiteConfig, SiteConfigNav, } from './context';
12
+ export { LocaleProvider, ReactPressProvider, readPersistedLocale, SiteCatalogContext, SiteCatalogProvider, ThemeRuntimeProvider, useColorMode, useSiteCatalog, useSiteConfig, useSiteSetting, useSiteUser, useActiveThemeId, useIsThemePreview, useLocale, useSiteMeta, useThemeId, useThemeMod, useThemeModBool, useThemeRuntime, } from './context';
13
+ export { useAsyncLoading, useForceUpdate, useNavActive, usePagination, useReportArticleView, useReportPageView, useRouteParam, useToggle, useWarningOnExit, } from './hooks';
14
+ export type { PaginatedFetch, UsePaginationOptions, UsePaginationResult, UseReportPageViewOptions, } from './hooks';
15
+ export type { LocaleSwitcherProps } from './components/LocaleSwitcher';
16
+ export { LocaleSwitcher } from './components/LocaleSwitcher';
17
+ export type { LocaleToggleButtonProps, ThemeToggleButtonProps, ToolbarIconButtonProps, } from './components/toolbar';
18
+ export { LanguagesIcon, LocaleActiveIcon, LocaleEnToggleIcon, LocaleToggleButton, LocaleZhToggleIcon, localeToggleLabel, MoonIcon, nextLocale, SearchIcon, RP_TOOLBAR_BTN_CLASS, SunIcon, ThemeToggleButton, TOOLBAR_ICON_SIZE, ToolbarIconButton, } from './components/toolbar';
19
+ export type { NavMenuProps, NavMenuRenderLinkProps } from './components/NavMenu';
20
+ export { NavMenu } from './components/NavMenu';
21
+ export type { NotFoundPanelProps } from './components/NotFoundPanel';
22
+ export { NotFoundPanel } from './components/NotFoundPanel';
23
+ export type { PageHeaderProps } from './components/PageHeader';
24
+ export { PageHeader } from './components/PageHeader';
25
+ export type { SiteBrandingProps } from './components/SiteBranding';
26
+ export { SiteBranding } from './components/SiteBranding';
27
+ export type { SiteDocumentProps } from './components/SiteDocument';
28
+ export { SiteDocument } from './components/SiteDocument';
29
+ export type { SiteDocumentFallbackProps } from './components/SiteDocumentFallback';
30
+ export { SiteDocumentFallback } from './components/SiteDocumentFallback';
31
+ export type { SiteLogoProps } from './components/SiteLogo';
32
+ export { SiteLogo } from './components/SiteLogo';
33
+ export type { SiteTaglineProps } from './components/SiteTagline';
34
+ export { SiteTagline } from './components/SiteTagline';
35
+ export type { TaxonomyItem, TaxonomyListProps, TaxonomyListRenderLinkProps, TaxonomyListVariant, } from './components/TaxonomyList';
36
+ export { TaxonomyList } from './components/TaxonomyList';
37
+ export { ThemeCssVars } from './components/ThemeCssVars';
38
+ export type { ThemeLayoutProps } from './components/ThemeLayout';
39
+ export { ThemeLayout } from './components/ThemeLayout';
40
+ export type { SiteAnalyticsProps } from './components/SiteAnalytics';
41
+ export { SiteAnalytics } from './components/SiteAnalytics';
42
+ export type { SiteSeoProps } from './components/SiteSeo';
43
+ export { SiteSeo } from './components/SiteSeo';
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NotFoundPanel = exports.NavMenu = exports.ToolbarIconButton = exports.TOOLBAR_ICON_SIZE = exports.ThemeToggleButton = exports.SunIcon = exports.RP_TOOLBAR_BTN_CLASS = exports.SearchIcon = exports.nextLocale = exports.MoonIcon = exports.localeToggleLabel = exports.LocaleZhToggleIcon = exports.LocaleToggleButton = exports.LocaleEnToggleIcon = exports.LocaleActiveIcon = exports.LanguagesIcon = exports.LocaleSwitcher = exports.useWarningOnExit = exports.useToggle = exports.useRouteParam = exports.useReportPageView = exports.useReportArticleView = exports.usePagination = exports.useNavActive = exports.useForceUpdate = exports.useAsyncLoading = exports.useThemeRuntime = exports.useThemeModBool = exports.useThemeMod = exports.useThemeId = exports.useSiteMeta = exports.useLocale = exports.useIsThemePreview = exports.useActiveThemeId = exports.useSiteUser = exports.useSiteSetting = exports.useSiteConfig = exports.useSiteCatalog = exports.useColorMode = exports.ThemeRuntimeProvider = exports.SiteCatalogProvider = exports.SiteCatalogContext = exports.readPersistedLocale = exports.ReactPressProvider = exports.LocaleProvider = exports.BaseGlobalStyles = exports.ArticleList = exports.ArticleCard = exports.ArchivePageLayout = exports.ArchiveEmptyState = void 0;
4
+ exports.SiteSeo = exports.SiteAnalytics = exports.ThemeLayout = exports.ThemeCssVars = exports.TaxonomyList = exports.SiteTagline = exports.SiteLogo = exports.SiteDocumentFallback = exports.SiteDocument = exports.SiteBranding = exports.PageHeader = void 0;
5
+ var ArchiveEmptyState_1 = require("./components/ArchiveEmptyState");
6
+ Object.defineProperty(exports, "ArchiveEmptyState", { enumerable: true, get: function () { return ArchiveEmptyState_1.ArchiveEmptyState; } });
7
+ var ArchivePageLayout_1 = require("./components/ArchivePageLayout");
8
+ Object.defineProperty(exports, "ArchivePageLayout", { enumerable: true, get: function () { return ArchivePageLayout_1.ArchivePageLayout; } });
9
+ var ArticleCard_1 = require("./components/ArticleCard");
10
+ Object.defineProperty(exports, "ArticleCard", { enumerable: true, get: function () { return ArticleCard_1.ArticleCard; } });
11
+ var ArticleList_1 = require("./components/ArticleList");
12
+ Object.defineProperty(exports, "ArticleList", { enumerable: true, get: function () { return ArticleList_1.ArticleList; } });
13
+ var BaseGlobalStyles_1 = require("./components/BaseGlobalStyles");
14
+ Object.defineProperty(exports, "BaseGlobalStyles", { enumerable: true, get: function () { return BaseGlobalStyles_1.BaseGlobalStyles; } });
15
+ var context_1 = require("./context");
16
+ Object.defineProperty(exports, "LocaleProvider", { enumerable: true, get: function () { return context_1.LocaleProvider; } });
17
+ Object.defineProperty(exports, "ReactPressProvider", { enumerable: true, get: function () { return context_1.ReactPressProvider; } });
18
+ Object.defineProperty(exports, "readPersistedLocale", { enumerable: true, get: function () { return context_1.readPersistedLocale; } });
19
+ Object.defineProperty(exports, "SiteCatalogContext", { enumerable: true, get: function () { return context_1.SiteCatalogContext; } });
20
+ Object.defineProperty(exports, "SiteCatalogProvider", { enumerable: true, get: function () { return context_1.SiteCatalogProvider; } });
21
+ Object.defineProperty(exports, "ThemeRuntimeProvider", { enumerable: true, get: function () { return context_1.ThemeRuntimeProvider; } });
22
+ Object.defineProperty(exports, "useColorMode", { enumerable: true, get: function () { return context_1.useColorMode; } });
23
+ Object.defineProperty(exports, "useSiteCatalog", { enumerable: true, get: function () { return context_1.useSiteCatalog; } });
24
+ Object.defineProperty(exports, "useSiteConfig", { enumerable: true, get: function () { return context_1.useSiteConfig; } });
25
+ Object.defineProperty(exports, "useSiteSetting", { enumerable: true, get: function () { return context_1.useSiteSetting; } });
26
+ Object.defineProperty(exports, "useSiteUser", { enumerable: true, get: function () { return context_1.useSiteUser; } });
27
+ Object.defineProperty(exports, "useActiveThemeId", { enumerable: true, get: function () { return context_1.useActiveThemeId; } });
28
+ Object.defineProperty(exports, "useIsThemePreview", { enumerable: true, get: function () { return context_1.useIsThemePreview; } });
29
+ Object.defineProperty(exports, "useLocale", { enumerable: true, get: function () { return context_1.useLocale; } });
30
+ Object.defineProperty(exports, "useSiteMeta", { enumerable: true, get: function () { return context_1.useSiteMeta; } });
31
+ Object.defineProperty(exports, "useThemeId", { enumerable: true, get: function () { return context_1.useThemeId; } });
32
+ Object.defineProperty(exports, "useThemeMod", { enumerable: true, get: function () { return context_1.useThemeMod; } });
33
+ Object.defineProperty(exports, "useThemeModBool", { enumerable: true, get: function () { return context_1.useThemeModBool; } });
34
+ Object.defineProperty(exports, "useThemeRuntime", { enumerable: true, get: function () { return context_1.useThemeRuntime; } });
35
+ var hooks_1 = require("./hooks");
36
+ Object.defineProperty(exports, "useAsyncLoading", { enumerable: true, get: function () { return hooks_1.useAsyncLoading; } });
37
+ Object.defineProperty(exports, "useForceUpdate", { enumerable: true, get: function () { return hooks_1.useForceUpdate; } });
38
+ Object.defineProperty(exports, "useNavActive", { enumerable: true, get: function () { return hooks_1.useNavActive; } });
39
+ Object.defineProperty(exports, "usePagination", { enumerable: true, get: function () { return hooks_1.usePagination; } });
40
+ Object.defineProperty(exports, "useReportArticleView", { enumerable: true, get: function () { return hooks_1.useReportArticleView; } });
41
+ Object.defineProperty(exports, "useReportPageView", { enumerable: true, get: function () { return hooks_1.useReportPageView; } });
42
+ Object.defineProperty(exports, "useRouteParam", { enumerable: true, get: function () { return hooks_1.useRouteParam; } });
43
+ Object.defineProperty(exports, "useToggle", { enumerable: true, get: function () { return hooks_1.useToggle; } });
44
+ Object.defineProperty(exports, "useWarningOnExit", { enumerable: true, get: function () { return hooks_1.useWarningOnExit; } });
45
+ var LocaleSwitcher_1 = require("./components/LocaleSwitcher");
46
+ Object.defineProperty(exports, "LocaleSwitcher", { enumerable: true, get: function () { return LocaleSwitcher_1.LocaleSwitcher; } });
47
+ var toolbar_1 = require("./components/toolbar");
48
+ Object.defineProperty(exports, "LanguagesIcon", { enumerable: true, get: function () { return toolbar_1.LanguagesIcon; } });
49
+ Object.defineProperty(exports, "LocaleActiveIcon", { enumerable: true, get: function () { return toolbar_1.LocaleActiveIcon; } });
50
+ Object.defineProperty(exports, "LocaleEnToggleIcon", { enumerable: true, get: function () { return toolbar_1.LocaleEnToggleIcon; } });
51
+ Object.defineProperty(exports, "LocaleToggleButton", { enumerable: true, get: function () { return toolbar_1.LocaleToggleButton; } });
52
+ Object.defineProperty(exports, "LocaleZhToggleIcon", { enumerable: true, get: function () { return toolbar_1.LocaleZhToggleIcon; } });
53
+ Object.defineProperty(exports, "localeToggleLabel", { enumerable: true, get: function () { return toolbar_1.localeToggleLabel; } });
54
+ Object.defineProperty(exports, "MoonIcon", { enumerable: true, get: function () { return toolbar_1.MoonIcon; } });
55
+ Object.defineProperty(exports, "nextLocale", { enumerable: true, get: function () { return toolbar_1.nextLocale; } });
56
+ Object.defineProperty(exports, "SearchIcon", { enumerable: true, get: function () { return toolbar_1.SearchIcon; } });
57
+ Object.defineProperty(exports, "RP_TOOLBAR_BTN_CLASS", { enumerable: true, get: function () { return toolbar_1.RP_TOOLBAR_BTN_CLASS; } });
58
+ Object.defineProperty(exports, "SunIcon", { enumerable: true, get: function () { return toolbar_1.SunIcon; } });
59
+ Object.defineProperty(exports, "ThemeToggleButton", { enumerable: true, get: function () { return toolbar_1.ThemeToggleButton; } });
60
+ Object.defineProperty(exports, "TOOLBAR_ICON_SIZE", { enumerable: true, get: function () { return toolbar_1.TOOLBAR_ICON_SIZE; } });
61
+ Object.defineProperty(exports, "ToolbarIconButton", { enumerable: true, get: function () { return toolbar_1.ToolbarIconButton; } });
62
+ var NavMenu_1 = require("./components/NavMenu");
63
+ Object.defineProperty(exports, "NavMenu", { enumerable: true, get: function () { return NavMenu_1.NavMenu; } });
64
+ var NotFoundPanel_1 = require("./components/NotFoundPanel");
65
+ Object.defineProperty(exports, "NotFoundPanel", { enumerable: true, get: function () { return NotFoundPanel_1.NotFoundPanel; } });
66
+ var PageHeader_1 = require("./components/PageHeader");
67
+ Object.defineProperty(exports, "PageHeader", { enumerable: true, get: function () { return PageHeader_1.PageHeader; } });
68
+ var SiteBranding_1 = require("./components/SiteBranding");
69
+ Object.defineProperty(exports, "SiteBranding", { enumerable: true, get: function () { return SiteBranding_1.SiteBranding; } });
70
+ var SiteDocument_1 = require("./components/SiteDocument");
71
+ Object.defineProperty(exports, "SiteDocument", { enumerable: true, get: function () { return SiteDocument_1.SiteDocument; } });
72
+ var SiteDocumentFallback_1 = require("./components/SiteDocumentFallback");
73
+ Object.defineProperty(exports, "SiteDocumentFallback", { enumerable: true, get: function () { return SiteDocumentFallback_1.SiteDocumentFallback; } });
74
+ var SiteLogo_1 = require("./components/SiteLogo");
75
+ Object.defineProperty(exports, "SiteLogo", { enumerable: true, get: function () { return SiteLogo_1.SiteLogo; } });
76
+ var SiteTagline_1 = require("./components/SiteTagline");
77
+ Object.defineProperty(exports, "SiteTagline", { enumerable: true, get: function () { return SiteTagline_1.SiteTagline; } });
78
+ var TaxonomyList_1 = require("./components/TaxonomyList");
79
+ Object.defineProperty(exports, "TaxonomyList", { enumerable: true, get: function () { return TaxonomyList_1.TaxonomyList; } });
80
+ var ThemeCssVars_1 = require("./components/ThemeCssVars");
81
+ Object.defineProperty(exports, "ThemeCssVars", { enumerable: true, get: function () { return ThemeCssVars_1.ThemeCssVars; } });
82
+ var ThemeLayout_1 = require("./components/ThemeLayout");
83
+ Object.defineProperty(exports, "ThemeLayout", { enumerable: true, get: function () { return ThemeLayout_1.ThemeLayout; } });
84
+ var SiteAnalytics_1 = require("./components/SiteAnalytics");
85
+ Object.defineProperty(exports, "SiteAnalytics", { enumerable: true, get: function () { return SiteAnalytics_1.SiteAnalytics; } });
86
+ var SiteSeo_1 = require("./components/SiteSeo");
87
+ Object.defineProperty(exports, "SiteSeo", { enumerable: true, get: function () { return SiteSeo_1.SiteSeo; } });
@@ -0,0 +1,14 @@
1
+ /** Nest TransformInterceptor body (axios already returns this as `response.data`). */
2
+ export interface ApiEnvelope<T = unknown> {
3
+ statusCode?: number;
4
+ msg?: string | null;
5
+ success?: boolean;
6
+ data?: T;
7
+ }
8
+ /** Paginated endpoints: `data` is `[items, total]`. */
9
+ export declare function unpackPaginated<T>(res: ApiEnvelope<[T[], number]> | null | undefined): T[];
10
+ /** Paginated endpoints — returns `[items, total]`. */
11
+ export declare function unpackPaginatedPair<T>(res: ApiEnvelope<[T[], number]> | null | undefined): [T[], number];
12
+ /** List or single entity wrapped in `data`. */
13
+ export declare function unpackList<T>(res: ApiEnvelope<T[]> | null | undefined): T[];
14
+ export declare function unpackOne<T>(res: ApiEnvelope<T> | null | undefined): T | null;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.unpackPaginated = unpackPaginated;
4
+ exports.unpackPaginatedPair = unpackPaginatedPair;
5
+ exports.unpackList = unpackList;
6
+ exports.unpackOne = unpackOne;
7
+ /** Paginated endpoints: `data` is `[items, total]`. */
8
+ function unpackPaginated(res) {
9
+ const payload = res?.data;
10
+ if (Array.isArray(payload) && Array.isArray(payload[0])) {
11
+ return payload[0];
12
+ }
13
+ return [];
14
+ }
15
+ /** Paginated endpoints — returns `[items, total]`. */
16
+ function unpackPaginatedPair(res) {
17
+ const payload = res?.data;
18
+ if (Array.isArray(payload) && Array.isArray(payload[0])) {
19
+ return [payload[0], typeof payload[1] === 'number' ? payload[1] : payload[0].length];
20
+ }
21
+ return [[], 0];
22
+ }
23
+ /** List or single entity wrapped in `data`. */
24
+ function unpackList(res) {
25
+ const data = res?.data;
26
+ return Array.isArray(data) ? data : [];
27
+ }
28
+ function unpackOne(res) {
29
+ const data = res?.data;
30
+ return data != null ? data : null;
31
+ }
@@ -0,0 +1,2 @@
1
+ /** Copy text to clipboard; returns whether the operation succeeded. */
2
+ export declare function copyToClipboard(text: string): boolean;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copyToClipboard = copyToClipboard;
4
+ /** Copy text to clipboard; returns whether the operation succeeded. */
5
+ function copyToClipboard(text) {
6
+ if (typeof navigator !== 'undefined' && navigator.clipboard?.writeText) {
7
+ void navigator.clipboard.writeText(text);
8
+ return true;
9
+ }
10
+ try {
11
+ const textarea = document.createElement('textarea');
12
+ textarea.value = text;
13
+ textarea.style.position = 'fixed';
14
+ textarea.style.opacity = '0';
15
+ document.body.appendChild(textarea);
16
+ textarea.select();
17
+ const ok = document.execCommand('copy');
18
+ document.body.removeChild(textarea);
19
+ return ok;
20
+ }
21
+ catch {
22
+ return false;
23
+ }
24
+ }
@@ -0,0 +1,2 @@
1
+ import type { IncomingMessage } from 'http';
2
+ export declare function readRequestCookie(req: IncomingMessage | undefined, name: string): string | undefined;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readRequestCookie = readRequestCookie;
4
+ function readRequestCookie(req, name) {
5
+ const header = req?.headers?.cookie ?? '';
6
+ const match = new RegExp(`(?:^|;\\s*)${name}=([^;]*)`).exec(header);
7
+ if (!match?.[1])
8
+ return undefined;
9
+ try {
10
+ return decodeURIComponent(match[1]);
11
+ }
12
+ catch {
13
+ return match[1];
14
+ }
15
+ }
@@ -0,0 +1,4 @@
1
+ export declare function formatDate(date: Date, format?: string): string;
2
+ /** Format article `publishAt` for templates (SSR-safe). */
3
+ export declare function formatPublishDate(value: string | Date | null | undefined, options?: Intl.DateTimeFormatOptions, locale?: string): string;
4
+ export declare function formatPublishDateShort(value: string | Date | null | undefined): string;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatDate = formatDate;
4
+ exports.formatPublishDate = formatPublishDate;
5
+ exports.formatPublishDateShort = formatPublishDateShort;
6
+ function formatDate(date, format = 'YYYY-MM-DD') {
7
+ const year = date.getFullYear();
8
+ const month = String(date.getMonth() + 1).padStart(2, '0');
9
+ const day = String(date.getDate()).padStart(2, '0');
10
+ return format
11
+ .replace('YYYY', String(year))
12
+ .replace('MM', month)
13
+ .replace('DD', day);
14
+ }
15
+ /** Format article `publishAt` for templates (SSR-safe). */
16
+ function formatPublishDate(value, options = {
17
+ year: 'numeric',
18
+ month: 'long',
19
+ day: 'numeric',
20
+ }, locale = 'en-US') {
21
+ if (value == null || value === '')
22
+ return '';
23
+ try {
24
+ const date = value instanceof Date ? value : new Date(value);
25
+ if (Number.isNaN(date.getTime()))
26
+ return '';
27
+ return date.toLocaleDateString(locale, options);
28
+ }
29
+ catch {
30
+ return '';
31
+ }
32
+ }
33
+ function formatPublishDateShort(value) {
34
+ if (value == null || value === '')
35
+ return '';
36
+ try {
37
+ const date = value instanceof Date ? value : new Date(value);
38
+ if (Number.isNaN(date.getTime()))
39
+ return '';
40
+ return formatDate(date, 'YYYY-MM-DD');
41
+ }
42
+ catch {
43
+ return '';
44
+ }
45
+ }
@@ -0,0 +1,3 @@
1
+ /** Permissive enough for common guest comment emails (qq/163/gmail, subdomains). */
2
+ export declare const COMMENT_EMAIL_REGEXP: RegExp;
3
+ export declare function isValidCommentEmail(email: string | undefined | null): boolean;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.COMMENT_EMAIL_REGEXP = void 0;
4
+ exports.isValidCommentEmail = isValidCommentEmail;
5
+ /** Permissive enough for common guest comment emails (qq/163/gmail, subdomains). */
6
+ exports.COMMENT_EMAIL_REGEXP = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
7
+ function isValidCommentEmail(email) {
8
+ return Boolean(email?.trim() && exports.COMMENT_EMAIL_REGEXP.test(email.trim()));
9
+ }
@@ -0,0 +1,7 @@
1
+ export declare function isApiError(error: unknown): boolean;
2
+ export declare class ApiError extends Error {
3
+ code: number;
4
+ details: unknown;
5
+ constructor(message: string, code?: number, details?: unknown);
6
+ static isInstance(error: unknown): error is ApiError;
7
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiError = void 0;
4
+ exports.isApiError = isApiError;
5
+ function isApiError(error) {
6
+ return Boolean(error &&
7
+ typeof error === 'object' &&
8
+ 'response' in error &&
9
+ error.response?.data);
10
+ }
11
+ class ApiError extends Error {
12
+ constructor(message, code = 500, details = null) {
13
+ super(message);
14
+ this.name = 'ApiError';
15
+ this.code = code;
16
+ this.details = details;
17
+ }
18
+ static isInstance(error) {
19
+ return (error instanceof ApiError ||
20
+ Boolean(error &&
21
+ typeof error === 'object' &&
22
+ error.name === 'ApiError' &&
23
+ error.code !== undefined));
24
+ }
25
+ }
26
+ exports.ApiError = ApiError;
@@ -0,0 +1,7 @@
1
+ export type ImageVariant = 'large' | 'medium' | 'thumb' | 'avatar';
2
+ /**
3
+ * 根据展示场景解析图片 URL。
4
+ * 上传后的 WebP 资源会按 `_medium` / `_thumb` / `_avatar` 后缀生成多尺寸版本;
5
+ * 非 WebP 或无法识别的 URL 将原样返回,兼容历史数据。
6
+ */
7
+ export declare function resolveImageUrl(url: string | null | undefined, variant?: ImageVariant): string;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolveImageUrl = resolveImageUrl;
4
+ const VARIANT_SUFFIX = {
5
+ medium: '_medium',
6
+ thumb: '_thumb',
7
+ avatar: '_avatar',
8
+ };
9
+ const WEBP_VARIANT_PATTERN = /^(.+?)(?:_(medium|thumb|avatar))?\.webp(\?.*)?$/i;
10
+ function extractWebpBase(url) {
11
+ const match = url.match(WEBP_VARIANT_PATTERN);
12
+ if (!match) {
13
+ return null;
14
+ }
15
+ return match[1];
16
+ }
17
+ /**
18
+ * 根据展示场景解析图片 URL。
19
+ * 上传后的 WebP 资源会按 `_medium` / `_thumb` / `_avatar` 后缀生成多尺寸版本;
20
+ * 非 WebP 或无法识别的 URL 将原样返回,兼容历史数据。
21
+ */
22
+ function resolveImageUrl(url, variant = 'medium') {
23
+ if (!url) {
24
+ return '';
25
+ }
26
+ const base = extractWebpBase(url);
27
+ if (!base) {
28
+ return url;
29
+ }
30
+ if (variant === 'large') {
31
+ return `${base}.webp`;
32
+ }
33
+ return `${base}${VARIANT_SUFFIX[variant]}.webp`;
34
+ }
@@ -1,33 +1,15 @@
1
- /**
2
- * Format a date to the specified format
3
- * @param date - Date to format
4
- * @param format - Format string (default: YYYY-MM-DD)
5
- * @returns Formatted date string
6
- */
7
- export declare function formatDate(date: Date, format?: string): string;
8
- /**
9
- * Deep clone an object
10
- * @param obj - Object to clone
11
- * @returns Cloned object
12
- */
13
- export declare function deepClone<T>(obj: T): T;
14
- /**
15
- * Check if an error is an API error
16
- * @param error - Error to check
17
- * @returns True if it's an API error
18
- */
19
- export declare function isApiError(error: any): boolean;
20
- /**
21
- * API Error class
22
- */
23
- export declare class ApiError extends Error {
24
- code: number;
25
- details: any;
26
- constructor(message: string, code?: number, details?: any);
27
- /**
28
- * Check if an object is an instance of ApiError
29
- * @param error - Error to check
30
- * @returns True if it's an ApiError instance
31
- */
32
- static isInstance(error: any): error is ApiError;
33
- }
1
+ export type { ApiEnvelope } from './api-envelope';
2
+ export { unpackList, unpackOne, unpackPaginated } from './api-envelope';
3
+ export { readRequestCookie } from './cookie';
4
+ export { formatDate, formatPublishDate, formatPublishDateShort, } from './date';
5
+ export { COMMENT_EMAIL_REGEXP, isValidCommentEmail } from './email';
6
+ export { ApiError, isApiError } from './error';
7
+ export { jsonp } from './jsonp';
8
+ export { safeJsonParse } from './json';
9
+ export { deepClone, deepMerge, getByPath, getNestedLocaleString, getNestedLocaleValue, setByPath, } from './object';
10
+ export type { SettingRow } from './setting';
11
+ export { pickSiteSettings } from './setting';
12
+ export { stripHtml, truncateWords } from './string';
13
+ export { copyToClipboard } from './clipboard';
14
+ export type { ImageVariant } from './image';
15
+ export { resolveImageUrl } from './image';