@fecommunity/reactpress-toolkit 3.0.0 → 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,15 @@
1
+ import React from 'react';
2
+ import type { LocaleCatalog, LocaleMessages } from '../../theme/visitor/locale';
3
+ import type { LocaleContextValue } from './types';
4
+ export interface LocaleProviderProps {
5
+ locale: string;
6
+ locales: string[];
7
+ messages: LocaleMessages;
8
+ catalog: LocaleCatalog;
9
+ children: React.ReactNode;
10
+ persistLocale?: boolean;
11
+ onLocaleChange?: (locale: string) => void;
12
+ }
13
+ export declare function LocaleProvider({ locale: initialLocale, locales, messages: initialMessages, catalog, children, persistLocale, onLocaleChange, }: LocaleProviderProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function useLocale(): LocaleContextValue;
15
+ export declare function readPersistedLocale(locales: string[], fallback: string): string;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LocaleProvider = LocaleProvider;
4
+ exports.useLocale = useLocale;
5
+ exports.readPersistedLocale = readPersistedLocale;
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const locale_1 = require("../../theme/visitor/locale");
9
+ const visitorLocale_1 = require("../../theme/visitor/visitorLocale");
10
+ const LocaleContext = (0, react_1.createContext)(null);
11
+ function LocaleProvider({ locale: initialLocale, locales, messages: initialMessages, catalog, children, persistLocale = true, onLocaleChange, }) {
12
+ const [locale, setLocaleState] = (0, react_1.useState)(initialLocale);
13
+ const [messages, setMessages] = (0, react_1.useState)(initialMessages);
14
+ (0, react_1.useEffect)(() => {
15
+ setMessages({ ...(catalog[locale] ?? {}) });
16
+ }, [catalog, locale]);
17
+ const setLocale = (0, react_1.useCallback)((next) => {
18
+ if (!locales.includes(next))
19
+ return;
20
+ setLocaleState(next);
21
+ setMessages({ ...(catalog[next] ?? {}) });
22
+ if (persistLocale && typeof window !== 'undefined') {
23
+ window.localStorage.setItem(visitorLocale_1.VISITOR_LOCALE_COOKIE, next);
24
+ }
25
+ onLocaleChange?.(next);
26
+ }, [catalog, locales, onLocaleChange, persistLocale]);
27
+ const value = (0, react_1.useMemo)(() => {
28
+ const t = (0, locale_1.createTranslator)(messages);
29
+ return {
30
+ locale,
31
+ locales,
32
+ messages,
33
+ catalog,
34
+ setLocale,
35
+ t,
36
+ };
37
+ }, [catalog, locale, locales, messages, setLocale]);
38
+ return (0, jsx_runtime_1.jsx)(LocaleContext.Provider, { value: value, children: children });
39
+ }
40
+ function useLocale() {
41
+ const ctx = (0, react_1.useContext)(LocaleContext);
42
+ if (!ctx) {
43
+ throw new Error('useLocale must be used within ReactPressProvider or LocaleProvider');
44
+ }
45
+ return ctx;
46
+ }
47
+ function readPersistedLocale(locales, fallback) {
48
+ if (typeof window === 'undefined')
49
+ return fallback;
50
+ try {
51
+ const stored = window.localStorage.getItem(visitorLocale_1.VISITOR_LOCALE_COOKIE);
52
+ if (stored && locales.includes(stored))
53
+ return stored;
54
+ }
55
+ catch {
56
+ // ignore
57
+ }
58
+ return fallback;
59
+ }
@@ -0,0 +1,3 @@
1
+ import type { ReactPressProviderProps } from './types';
2
+ /** Wraps the theme app with locale + active theme / customizer context. */
3
+ export declare function ReactPressProvider({ locale, locales, messages, catalog, themeId, activeThemeId, mods, isPreview, siteMeta, children, persistLocale, onLocaleChange, }: ReactPressProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReactPressProvider = ReactPressProvider;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const LocaleContext_1 = require("./LocaleContext");
6
+ const ThemeRuntimeContext_1 = require("./ThemeRuntimeContext");
7
+ /** Wraps the theme app with locale + active theme / customizer context. */
8
+ function ReactPressProvider({ locale, locales, messages, catalog = {}, themeId, activeThemeId, mods = {}, isPreview = false, siteMeta, children, persistLocale = true, onLocaleChange, }) {
9
+ return ((0, jsx_runtime_1.jsx)(LocaleContext_1.LocaleProvider, { locale: locale, locales: locales, messages: messages, catalog: catalog, persistLocale: persistLocale, onLocaleChange: onLocaleChange, children: (0, jsx_runtime_1.jsx)(ThemeRuntimeContext_1.ThemeRuntimeProvider, { themeId: themeId, activeThemeId: activeThemeId, mods: mods, isPreview: isPreview, siteMeta: siteMeta, children: children }) }));
10
+ }
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import type { SiteCatalogContextValue } from './siteCatalogTypes';
3
+ export type { SiteCatalogContextValue, SiteCatalogSiteConfig, SiteConfigNav, } from './siteCatalogTypes';
4
+ /** Global site catalog + session state for full-featured themes. */
5
+ export declare const SiteCatalogContext: React.Context<SiteCatalogContextValue>;
6
+ export declare function SiteCatalogProvider({ value, children, }: {
7
+ value: SiteCatalogContextValue;
8
+ children: React.ReactNode;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export declare function useSiteCatalog(): {
11
+ categories: import("../..").ICategory[];
12
+ tags: import("../..").ITag[];
13
+ pages: import("../..").IPage[];
14
+ siteConfig: (import("./siteCatalogTypes").SiteCatalogSiteConfig & import("../../theme").ResolvedSiteConfig) | undefined;
15
+ globalSetting: {
16
+ globalConfig: Record<string, unknown>;
17
+ } | undefined;
18
+ locale: string | undefined;
19
+ locales: string[];
20
+ i18n: Record<string, unknown> | undefined;
21
+ changeLocale: ((locale: string) => void) | undefined;
22
+ collapsed: boolean | undefined;
23
+ toggleCollapse: (() => void) | undefined;
24
+ };
25
+ export declare function useSiteSetting(): import("../..").ISetting;
26
+ export declare function useSiteUser(): {
27
+ user: import("../..").IUser | Partial<import("../..").IUser> | null | undefined;
28
+ setUser: ((user: import("../..").IUser) => void) | undefined;
29
+ removeUser: (() => void) | undefined;
30
+ };
31
+ export declare function useColorMode(): {
32
+ colorMode: import("../../theme").ThemeColorMode;
33
+ changeColorMode: ((mode: import("../../theme").ThemeColorMode) => void) | undefined;
34
+ };
35
+ /** @deprecated Prefer `useSiteCatalog().siteConfig`. */
36
+ export declare function useSiteConfig(): {
37
+ siteConfig: (import("./siteCatalogTypes").SiteCatalogSiteConfig & import("../../theme").ResolvedSiteConfig) | undefined;
38
+ globalSetting: {
39
+ globalConfig: Record<string, unknown>;
40
+ } | undefined;
41
+ };
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SiteCatalogContext = void 0;
4
+ exports.SiteCatalogProvider = SiteCatalogProvider;
5
+ exports.useSiteCatalog = useSiteCatalog;
6
+ exports.useSiteSetting = useSiteSetting;
7
+ exports.useSiteUser = useSiteUser;
8
+ exports.useColorMode = useColorMode;
9
+ exports.useSiteConfig = useSiteConfig;
10
+ const jsx_runtime_1 = require("react/jsx-runtime");
11
+ const react_1 = require("react");
12
+ const siteCatalogTypes_1 = require("./siteCatalogTypes");
13
+ /** Global site catalog + session state for full-featured themes. */
14
+ exports.SiteCatalogContext = (0, react_1.createContext)(siteCatalogTypes_1.defaultSiteCatalogContext);
15
+ function SiteCatalogProvider({ value, children, }) {
16
+ return ((0, jsx_runtime_1.jsx)(exports.SiteCatalogContext.Provider, { value: value, children: children }));
17
+ }
18
+ function useSiteCatalog() {
19
+ const ctx = (0, react_1.useContext)(exports.SiteCatalogContext);
20
+ return {
21
+ categories: ctx.categories ?? [],
22
+ tags: ctx.tags ?? [],
23
+ pages: ctx.pages ?? [],
24
+ siteConfig: ctx.siteConfig,
25
+ globalSetting: ctx.globalSetting,
26
+ locale: ctx.locale,
27
+ locales: ctx.locales ?? [],
28
+ i18n: ctx.i18n,
29
+ changeLocale: ctx.changeLocale,
30
+ collapsed: ctx.collapsed,
31
+ toggleCollapse: ctx.toggleCollapse,
32
+ };
33
+ }
34
+ function useSiteSetting() {
35
+ const ctx = (0, react_1.useContext)(exports.SiteCatalogContext);
36
+ return ctx.setting ?? {};
37
+ }
38
+ function useSiteUser() {
39
+ const ctx = (0, react_1.useContext)(exports.SiteCatalogContext);
40
+ return {
41
+ user: ctx.user,
42
+ setUser: ctx.setUser,
43
+ removeUser: ctx.removeUser,
44
+ };
45
+ }
46
+ function useColorMode() {
47
+ const ctx = (0, react_1.useContext)(exports.SiteCatalogContext);
48
+ return {
49
+ colorMode: ctx.theme ?? 'light',
50
+ changeColorMode: ctx.changeTheme,
51
+ };
52
+ }
53
+ /** @deprecated Prefer `useSiteCatalog().siteConfig`. */
54
+ function useSiteConfig() {
55
+ const ctx = (0, react_1.useContext)(exports.SiteCatalogContext);
56
+ return {
57
+ siteConfig: ctx.siteConfig,
58
+ globalSetting: ctx.globalSetting,
59
+ };
60
+ }
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { ThemeMods } from '../../theme/extension/theme';
3
+ import type { ThemeRuntimeContextValue } from './types';
4
+ export interface ThemeRuntimeProviderProps {
5
+ themeId: string;
6
+ activeThemeId: string;
7
+ mods?: ThemeMods;
8
+ isPreview?: boolean;
9
+ siteMeta?: ThemeRuntimeContextValue['siteMeta'];
10
+ children: React.ReactNode;
11
+ }
12
+ export declare function ThemeRuntimeProvider({ themeId, activeThemeId, mods, isPreview, siteMeta, children, }: ThemeRuntimeProviderProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function useThemeRuntime(): ThemeRuntimeContextValue;
14
+ /** Read a single customizer mod with optional default (from `theme.json` customizer). */
15
+ export declare function useThemeMod(modId: string, defaultValue?: string): string;
16
+ /** Checkbox mods are stored as strings (`"1"` / `"0"`). */
17
+ export declare function useThemeModBool(modId: string, defaultValue?: boolean): boolean;
18
+ export declare function useThemeId(): string;
19
+ export declare function useActiveThemeId(): string;
20
+ export declare function useIsThemePreview(): boolean;
21
+ export declare function useSiteMeta(): ThemeRuntimeContextValue['siteMeta'];
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThemeRuntimeProvider = ThemeRuntimeProvider;
4
+ exports.useThemeRuntime = useThemeRuntime;
5
+ exports.useThemeMod = useThemeMod;
6
+ exports.useThemeModBool = useThemeModBool;
7
+ exports.useThemeId = useThemeId;
8
+ exports.useActiveThemeId = useActiveThemeId;
9
+ exports.useIsThemePreview = useIsThemePreview;
10
+ exports.useSiteMeta = useSiteMeta;
11
+ const jsx_runtime_1 = require("react/jsx-runtime");
12
+ const react_1 = require("react");
13
+ const setting_1 = require("../../theme/ssr/setting");
14
+ const ThemeRuntimeContext = (0, react_1.createContext)(null);
15
+ function ThemeRuntimeProvider({ themeId, activeThemeId, mods = {}, isPreview = false, siteMeta = setting_1.DEFAULT_SITE_META, children, }) {
16
+ const value = (0, react_1.useMemo)(() => ({
17
+ themeId,
18
+ activeThemeId,
19
+ mods,
20
+ isPreview,
21
+ siteMeta,
22
+ }), [activeThemeId, isPreview, mods, siteMeta, themeId]);
23
+ return ((0, jsx_runtime_1.jsx)(ThemeRuntimeContext.Provider, { value: value, children: children }));
24
+ }
25
+ function useThemeRuntime() {
26
+ const ctx = (0, react_1.useContext)(ThemeRuntimeContext);
27
+ if (!ctx) {
28
+ throw new Error('useThemeRuntime must be used within ReactPressProvider or ThemeRuntimeProvider');
29
+ }
30
+ return ctx;
31
+ }
32
+ /** Read a single customizer mod with optional default (from `theme.json` customizer). */
33
+ function useThemeMod(modId, defaultValue = '') {
34
+ const ctx = (0, react_1.useContext)(ThemeRuntimeContext);
35
+ if (!ctx)
36
+ return defaultValue;
37
+ return ctx.mods[modId] ?? defaultValue;
38
+ }
39
+ const TRUTHY = new Set(['1', 'true', 'yes', 'on']);
40
+ /** Checkbox mods are stored as strings (`"1"` / `"0"`). */
41
+ function useThemeModBool(modId, defaultValue = false) {
42
+ const raw = useThemeMod(modId, defaultValue ? '1' : '0');
43
+ if (raw === '')
44
+ return defaultValue;
45
+ return TRUTHY.has(raw.trim().toLowerCase());
46
+ }
47
+ function useThemeId() {
48
+ return useThemeRuntime().themeId;
49
+ }
50
+ function useActiveThemeId() {
51
+ return useThemeRuntime().activeThemeId;
52
+ }
53
+ function useIsThemePreview() {
54
+ return useThemeRuntime().isPreview;
55
+ }
56
+ function useSiteMeta() {
57
+ const ctx = (0, react_1.useContext)(ThemeRuntimeContext);
58
+ return ctx?.siteMeta ?? setting_1.DEFAULT_SITE_META;
59
+ }
@@ -0,0 +1,8 @@
1
+ export type { LocaleProviderProps } from './LocaleContext';
2
+ export { LocaleProvider, readPersistedLocale, useLocale } from './LocaleContext';
3
+ export { ReactPressProvider } from './ReactPressProvider';
4
+ export type { ThemeRuntimeProviderProps } from './ThemeRuntimeContext';
5
+ export { ThemeRuntimeProvider, useActiveThemeId, useIsThemePreview, useSiteMeta, useThemeId, useThemeMod, useThemeModBool, useThemeRuntime, } from './ThemeRuntimeContext';
6
+ export type { LocaleContextValue, ReactPressProviderProps, ThemeRuntimeContextValue, } from './types';
7
+ export type { SiteCatalogContextValue, SiteCatalogSiteConfig, SiteConfigNav, } from './SiteCatalogContext';
8
+ export { SiteCatalogContext, SiteCatalogProvider, useColorMode, useSiteCatalog, useSiteConfig, useSiteSetting, useSiteUser, } from './SiteCatalogContext';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSiteUser = exports.useSiteSetting = exports.useSiteConfig = exports.useSiteCatalog = exports.useColorMode = exports.SiteCatalogProvider = exports.SiteCatalogContext = exports.useThemeRuntime = exports.useThemeModBool = exports.useThemeMod = exports.useThemeId = exports.useSiteMeta = exports.useIsThemePreview = exports.useActiveThemeId = exports.ThemeRuntimeProvider = exports.ReactPressProvider = exports.useLocale = exports.readPersistedLocale = exports.LocaleProvider = void 0;
4
+ var LocaleContext_1 = require("./LocaleContext");
5
+ Object.defineProperty(exports, "LocaleProvider", { enumerable: true, get: function () { return LocaleContext_1.LocaleProvider; } });
6
+ Object.defineProperty(exports, "readPersistedLocale", { enumerable: true, get: function () { return LocaleContext_1.readPersistedLocale; } });
7
+ Object.defineProperty(exports, "useLocale", { enumerable: true, get: function () { return LocaleContext_1.useLocale; } });
8
+ var ReactPressProvider_1 = require("./ReactPressProvider");
9
+ Object.defineProperty(exports, "ReactPressProvider", { enumerable: true, get: function () { return ReactPressProvider_1.ReactPressProvider; } });
10
+ var ThemeRuntimeContext_1 = require("./ThemeRuntimeContext");
11
+ Object.defineProperty(exports, "ThemeRuntimeProvider", { enumerable: true, get: function () { return ThemeRuntimeContext_1.ThemeRuntimeProvider; } });
12
+ Object.defineProperty(exports, "useActiveThemeId", { enumerable: true, get: function () { return ThemeRuntimeContext_1.useActiveThemeId; } });
13
+ Object.defineProperty(exports, "useIsThemePreview", { enumerable: true, get: function () { return ThemeRuntimeContext_1.useIsThemePreview; } });
14
+ Object.defineProperty(exports, "useSiteMeta", { enumerable: true, get: function () { return ThemeRuntimeContext_1.useSiteMeta; } });
15
+ Object.defineProperty(exports, "useThemeId", { enumerable: true, get: function () { return ThemeRuntimeContext_1.useThemeId; } });
16
+ Object.defineProperty(exports, "useThemeMod", { enumerable: true, get: function () { return ThemeRuntimeContext_1.useThemeMod; } });
17
+ Object.defineProperty(exports, "useThemeModBool", { enumerable: true, get: function () { return ThemeRuntimeContext_1.useThemeModBool; } });
18
+ Object.defineProperty(exports, "useThemeRuntime", { enumerable: true, get: function () { return ThemeRuntimeContext_1.useThemeRuntime; } });
19
+ var SiteCatalogContext_1 = require("./SiteCatalogContext");
20
+ Object.defineProperty(exports, "SiteCatalogContext", { enumerable: true, get: function () { return SiteCatalogContext_1.SiteCatalogContext; } });
21
+ Object.defineProperty(exports, "SiteCatalogProvider", { enumerable: true, get: function () { return SiteCatalogContext_1.SiteCatalogProvider; } });
22
+ Object.defineProperty(exports, "useColorMode", { enumerable: true, get: function () { return SiteCatalogContext_1.useColorMode; } });
23
+ Object.defineProperty(exports, "useSiteCatalog", { enumerable: true, get: function () { return SiteCatalogContext_1.useSiteCatalog; } });
24
+ Object.defineProperty(exports, "useSiteConfig", { enumerable: true, get: function () { return SiteCatalogContext_1.useSiteConfig; } });
25
+ Object.defineProperty(exports, "useSiteSetting", { enumerable: true, get: function () { return SiteCatalogContext_1.useSiteSetting; } });
26
+ Object.defineProperty(exports, "useSiteUser", { enumerable: true, get: function () { return SiteCatalogContext_1.useSiteUser; } });
@@ -0,0 +1,64 @@
1
+ import type { ResolvedSiteConfig } from '../../theme/extension/configuration/types';
2
+ import type { ThemeColorMode } from '../../theme/visitor/colorMode';
3
+ import type { ICategory, IPage, ISetting, ITag, IUser } from '../../types';
4
+ export interface SiteConfigNav {
5
+ urlConfig?: Array<{
6
+ key: string;
7
+ label: string;
8
+ icon?: string;
9
+ children?: Array<{
10
+ key: string;
11
+ label: string;
12
+ url?: string;
13
+ description?: string;
14
+ icon?: string;
15
+ type?: string;
16
+ }>;
17
+ }>;
18
+ searchCategories?: {
19
+ categories?: Array<{
20
+ label: string;
21
+ key: string;
22
+ }>;
23
+ subCategories?: Record<string, Array<{
24
+ label: string;
25
+ key: string;
26
+ url?: string;
27
+ }>>;
28
+ };
29
+ }
30
+ export interface SiteCatalogSiteConfig {
31
+ header?: {
32
+ navLinks?: Array<{
33
+ path: string;
34
+ locale?: string;
35
+ label?: string;
36
+ icon?: string;
37
+ visible?: boolean;
38
+ }>;
39
+ };
40
+ nav?: SiteConfigNav;
41
+ }
42
+ export interface SiteCatalogContextValue {
43
+ setting?: ISetting;
44
+ i18n?: Record<string, unknown>;
45
+ siteConfig?: SiteCatalogSiteConfig & ResolvedSiteConfig;
46
+ globalSetting?: {
47
+ globalConfig: Record<string, unknown>;
48
+ };
49
+ locale?: string;
50
+ locales?: string[];
51
+ pages?: IPage[];
52
+ categories?: ICategory[];
53
+ tags?: ITag[];
54
+ changeLocale?: (locale: string) => void;
55
+ user?: IUser | Partial<IUser> | null;
56
+ setUser?: (user: IUser) => void;
57
+ removeUser?: () => void;
58
+ changeTheme?: (mode: ThemeColorMode) => void;
59
+ theme?: ThemeColorMode;
60
+ collapsed?: boolean;
61
+ getSetting?: () => void;
62
+ toggleCollapse?: () => void;
63
+ }
64
+ export declare const defaultSiteCatalogContext: SiteCatalogContextValue;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultSiteCatalogContext = void 0;
4
+ exports.defaultSiteCatalogContext = {
5
+ setting: {},
6
+ i18n: {},
7
+ locale: '',
8
+ locales: [],
9
+ pages: [],
10
+ categories: [],
11
+ tags: [],
12
+ changeLocale: () => { },
13
+ user: null,
14
+ setUser: () => { },
15
+ removeUser: () => { },
16
+ changeTheme: () => { },
17
+ theme: 'light',
18
+ getSetting: () => { },
19
+ toggleCollapse: () => { },
20
+ };
@@ -0,0 +1,34 @@
1
+ import type React from 'react';
2
+ import type { ThemeMods } from '../../theme/extension/theme';
3
+ import type { LocaleCatalog, LocaleMessages } from '../../theme/visitor/locale';
4
+ import type { SiteMeta } from '../../theme/ssr/setting';
5
+ export interface LocaleContextValue {
6
+ locale: string;
7
+ locales: string[];
8
+ messages: LocaleMessages;
9
+ catalog: LocaleCatalog;
10
+ setLocale: (next: string) => void;
11
+ t: (key: string, fallback?: string) => string;
12
+ }
13
+ export interface ThemeRuntimeContextValue {
14
+ themeId: string;
15
+ activeThemeId: string;
16
+ mods: ThemeMods;
17
+ isPreview: boolean;
18
+ siteMeta: SiteMeta;
19
+ }
20
+ export interface ReactPressProviderProps {
21
+ locale: string;
22
+ locales: string[];
23
+ messages: LocaleMessages;
24
+ catalog?: LocaleCatalog;
25
+ themeId: string;
26
+ activeThemeId: string;
27
+ mods?: ThemeMods;
28
+ isPreview?: boolean;
29
+ siteMeta?: SiteMeta;
30
+ children: React.ReactNode;
31
+ /** Persist locale in `localStorage` (browser only). */
32
+ persistLocale?: boolean;
33
+ onLocaleChange?: (locale: string) => void;
34
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,12 @@
1
+ export { readPersistedLocale, useActiveThemeId, useIsThemePreview, useLocale, useThemeId, useThemeMod, useThemeRuntime, } from '../context';
2
+ export { useAsyncLoading } from './useAsyncLoading';
3
+ export { useForceUpdate } from './useForceUpdate';
4
+ export { useNavActive } from './useNavActive';
5
+ export type { PaginatedFetch, UsePaginationOptions, UsePaginationResult, } from './usePagination';
6
+ export { usePagination } from './usePagination';
7
+ export type { UseReportPageViewOptions } from './useReportPageView';
8
+ export { useReportPageView } from './useReportPageView';
9
+ export { useReportArticleView } from './useReportArticleView';
10
+ export { useRouteParam } from './useRouteParam';
11
+ export { useToggle } from './useToggle';
12
+ export { useWarningOnExit } from './useWarningOnExit';
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useWarningOnExit = exports.useToggle = exports.useRouteParam = exports.useReportArticleView = exports.useReportPageView = exports.usePagination = exports.useNavActive = exports.useForceUpdate = exports.useAsyncLoading = exports.useThemeRuntime = exports.useThemeMod = exports.useThemeId = exports.useLocale = exports.useIsThemePreview = exports.useActiveThemeId = exports.readPersistedLocale = void 0;
4
+ var context_1 = require("../context");
5
+ Object.defineProperty(exports, "readPersistedLocale", { enumerable: true, get: function () { return context_1.readPersistedLocale; } });
6
+ Object.defineProperty(exports, "useActiveThemeId", { enumerable: true, get: function () { return context_1.useActiveThemeId; } });
7
+ Object.defineProperty(exports, "useIsThemePreview", { enumerable: true, get: function () { return context_1.useIsThemePreview; } });
8
+ Object.defineProperty(exports, "useLocale", { enumerable: true, get: function () { return context_1.useLocale; } });
9
+ Object.defineProperty(exports, "useThemeId", { enumerable: true, get: function () { return context_1.useThemeId; } });
10
+ Object.defineProperty(exports, "useThemeMod", { enumerable: true, get: function () { return context_1.useThemeMod; } });
11
+ Object.defineProperty(exports, "useThemeRuntime", { enumerable: true, get: function () { return context_1.useThemeRuntime; } });
12
+ var useAsyncLoading_1 = require("./useAsyncLoading");
13
+ Object.defineProperty(exports, "useAsyncLoading", { enumerable: true, get: function () { return useAsyncLoading_1.useAsyncLoading; } });
14
+ var useForceUpdate_1 = require("./useForceUpdate");
15
+ Object.defineProperty(exports, "useForceUpdate", { enumerable: true, get: function () { return useForceUpdate_1.useForceUpdate; } });
16
+ var useNavActive_1 = require("./useNavActive");
17
+ Object.defineProperty(exports, "useNavActive", { enumerable: true, get: function () { return useNavActive_1.useNavActive; } });
18
+ var usePagination_1 = require("./usePagination");
19
+ Object.defineProperty(exports, "usePagination", { enumerable: true, get: function () { return usePagination_1.usePagination; } });
20
+ var useReportPageView_1 = require("./useReportPageView");
21
+ Object.defineProperty(exports, "useReportPageView", { enumerable: true, get: function () { return useReportPageView_1.useReportPageView; } });
22
+ var useReportArticleView_1 = require("./useReportArticleView");
23
+ Object.defineProperty(exports, "useReportArticleView", { enumerable: true, get: function () { return useReportArticleView_1.useReportArticleView; } });
24
+ var useRouteParam_1 = require("./useRouteParam");
25
+ Object.defineProperty(exports, "useRouteParam", { enumerable: true, get: function () { return useRouteParam_1.useRouteParam; } });
26
+ var useToggle_1 = require("./useToggle");
27
+ Object.defineProperty(exports, "useToggle", { enumerable: true, get: function () { return useToggle_1.useToggle; } });
28
+ var useWarningOnExit_1 = require("./useWarningOnExit");
29
+ Object.defineProperty(exports, "useWarningOnExit", { enumerable: true, get: function () { return useWarningOnExit_1.useWarningOnExit; } });
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Wrap an async function and expose a debounced `loading` flag (avoids flicker on fast requests).
3
+ */
4
+ export declare function useAsyncLoading<A extends (...args: any[]) => Promise<any>>(action: A, wait?: number, initialLoading?: boolean): [A, boolean];
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useAsyncLoading = useAsyncLoading;
4
+ const react_1 = require("react");
5
+ /**
6
+ * Wrap an async function and expose a debounced `loading` flag (avoids flicker on fast requests).
7
+ */
8
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
+ function useAsyncLoading(action, wait = 200, initialLoading = false) {
10
+ const timerRef = (0, react_1.useRef)(null);
11
+ const [pending, setPending] = (0, react_1.useState)(false);
12
+ const [loading, setLoading] = (0, react_1.useState)(initialLoading);
13
+ const actionWithPending = (0, react_1.useCallback)((...args) => {
14
+ setPending(true);
15
+ const promise = action(...args);
16
+ promise.then(() => setPending(false), () => setPending(false));
17
+ return promise;
18
+ }, [action]);
19
+ (0, react_1.useEffect)(() => {
20
+ if (timerRef.current)
21
+ clearTimeout(timerRef.current);
22
+ timerRef.current = setTimeout(() => {
23
+ setLoading(pending);
24
+ }, wait);
25
+ return () => {
26
+ if (timerRef.current)
27
+ clearTimeout(timerRef.current);
28
+ };
29
+ }, [wait, pending]);
30
+ return [actionWithPending, loading];
31
+ }
@@ -0,0 +1,2 @@
1
+ /** Force a function component re-render without changing state props. */
2
+ export declare function useForceUpdate(): () => void;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useForceUpdate = useForceUpdate;
4
+ const react_1 = require("react");
5
+ /** Force a function component re-render without changing state props. */
6
+ function useForceUpdate() {
7
+ const [, update] = (0, react_1.useState)(0);
8
+ return (0, react_1.useCallback)(() => {
9
+ update((v) => v + 1);
10
+ }, []);
11
+ }
@@ -0,0 +1,5 @@
1
+ import type { NavItem } from '../../theme/content/nav';
2
+ /**
3
+ * Derive active nav id from pathname (pass `router.pathname` from `next/router` in client components).
4
+ */
5
+ export declare function useNavActive(items: NavItem[], pathname: string): string | undefined;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNavActive = useNavActive;
4
+ const react_1 = require("react");
5
+ const nav_1 = require("../../theme/content/nav");
6
+ /**
7
+ * Derive active nav id from pathname (pass `router.pathname` from `next/router` in client components).
8
+ */
9
+ function useNavActive(items, pathname) {
10
+ return (0, react_1.useMemo)(() => (0, nav_1.getNavActiveId)(pathname, items), [pathname, items]);
11
+ }
@@ -0,0 +1,34 @@
1
+ import type { Dispatch, SetStateAction } from 'react';
2
+ export type PaginatedFetch<T> = (params: Record<string, unknown> & {
3
+ page: number;
4
+ pageSize: number;
5
+ }) => Promise<[T[], number]>;
6
+ export interface UsePaginationOptions<T> {
7
+ page?: number;
8
+ pageSize?: number;
9
+ params?: Record<string, unknown>;
10
+ after?: (snapshot?: {
11
+ loading: boolean;
12
+ page: number;
13
+ pageSize: number;
14
+ data: T[];
15
+ total: number;
16
+ }) => void;
17
+ }
18
+ export interface UsePaginationResult<T> {
19
+ loading: boolean;
20
+ data: T[];
21
+ total: number;
22
+ page: number;
23
+ pageSize: number;
24
+ params: Record<string, unknown>;
25
+ setPage: Dispatch<SetStateAction<number>>;
26
+ setPageSize: Dispatch<SetStateAction<number>>;
27
+ setParams: Dispatch<SetStateAction<Record<string, unknown>>>;
28
+ refresh: () => void;
29
+ reset: () => void;
30
+ }
31
+ /**
32
+ * Paginated list state for APIs that return `[items, total]`.
33
+ */
34
+ export declare function usePagination<T>(fetch: PaginatedFetch<T>, options?: UsePaginationOptions<T>): UsePaginationResult<T>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.usePagination = usePagination;
4
+ const react_1 = require("react");
5
+ const useAsyncLoading_1 = require("./useAsyncLoading");
6
+ const DEFAULT_PAGE = 1;
7
+ const DEFAULT_PAGE_SIZE = 12;
8
+ /**
9
+ * Paginated list state for APIs that return `[items, total]`.
10
+ */
11
+ function usePagination(fetch, options) {
12
+ const defaultPage = options?.page ?? DEFAULT_PAGE;
13
+ const defaultPageSize = options?.pageSize ?? DEFAULT_PAGE_SIZE;
14
+ const defaultParams = options?.params ?? {};
15
+ const after = options?.after;
16
+ const [api, loading] = (0, useAsyncLoading_1.useAsyncLoading)(fetch);
17
+ const [page, setPage] = (0, react_1.useState)(defaultPage);
18
+ const [pageSize, setPageSize] = (0, react_1.useState)(defaultPageSize);
19
+ const [params, setParams] = (0, react_1.useState)(defaultParams);
20
+ const [total, setTotal] = (0, react_1.useState)(0);
21
+ const [data, setData] = (0, react_1.useState)([]);
22
+ const callAfter = (0, react_1.useCallback)(() => {
23
+ after?.({ page, pageSize, data, total, loading });
24
+ }, [after, page, pageSize, data, total, loading]);
25
+ const query = (0, react_1.useCallback)((queryParams) => api(queryParams).then((res) => {
26
+ const [items, count] = res;
27
+ setData(items);
28
+ setTotal(count);
29
+ callAfter();
30
+ return res;
31
+ }), [api, callAfter]);
32
+ const refresh = (0, react_1.useCallback)(() => query({ page, pageSize, ...params }), [query, page, pageSize, params]);
33
+ const reset = (0, react_1.useCallback)(() => {
34
+ setPage(defaultPage);
35
+ setPageSize(defaultPageSize);
36
+ setParams(defaultParams);
37
+ }, [defaultPage, defaultPageSize, defaultParams]);
38
+ (0, react_1.useEffect)(() => {
39
+ query({ page, pageSize, ...params });
40
+ // eslint-disable-next-line react-hooks/exhaustive-deps -- refresh when page/size/filters change only
41
+ }, [page, pageSize, params]);
42
+ return {
43
+ loading,
44
+ data,
45
+ total,
46
+ page,
47
+ pageSize,
48
+ params,
49
+ setPage,
50
+ setPageSize,
51
+ setParams,
52
+ refresh,
53
+ reset,
54
+ };
55
+ }