@fecommunity/reactpress-toolkit 3.0.4 → 3.7.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 (527) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +194 -309
  3. package/dist/.source-fingerprint-toolkit +1 -0
  4. package/dist/admin/index.d.ts +2 -0
  5. package/dist/admin/index.js +18 -0
  6. package/dist/admin/permissions.d.ts +5 -0
  7. package/dist/admin/permissions.js +33 -0
  8. package/dist/admin/registry.d.ts +62 -0
  9. package/dist/admin/registry.js +79 -0
  10. package/dist/api/HttpClient.d.ts +2 -2
  11. package/dist/api/HttpClient.js +1 -1
  12. package/dist/api/Smtp.d.ts +17 -0
  13. package/dist/api/Smtp.js +15 -0
  14. package/dist/api/instance.d.ts +1 -1
  15. package/dist/api/instance.js +3 -3
  16. package/dist/app/createReactPressApp.d.ts +8 -0
  17. package/dist/app/createReactPressApp.js +265 -0
  18. package/dist/app/createThemeApp.d.ts +8 -0
  19. package/dist/app/createThemeApp.js +51 -0
  20. package/dist/app/devChunkRecovery.d.ts +2 -0
  21. package/dist/app/devChunkRecovery.js +68 -0
  22. package/dist/app/index.d.ts +39 -0
  23. package/dist/app/index.js +11 -0
  24. package/dist/config/env.js +29 -15
  25. package/dist/config/global.d.ts +7 -1
  26. package/dist/config/global.js +9 -3
  27. package/dist/config/i18n.js +27 -11
  28. package/dist/config/index.d.ts +3 -3
  29. package/dist/config/index.js +6 -5
  30. package/dist/{locales → config/locales}/en.json +31 -3
  31. package/dist/{locales → config/locales}/zh.json +31 -3
  32. package/dist/dev/index.d.ts +3 -0
  33. package/dist/dev/index.js +12 -0
  34. package/dist/dev/portRedirect.d.ts +20 -0
  35. package/dist/dev/portRedirect.js +93 -0
  36. package/dist/dev/vitePortRedirectPlugin.d.ts +24 -0
  37. package/dist/dev/vitePortRedirectPlugin.js +40 -0
  38. package/dist/extension/branding-mods.d.ts +10 -0
  39. package/dist/extension/branding-mods.js +65 -0
  40. package/dist/extension/configuration/defaults.d.ts +3 -0
  41. package/dist/extension/configuration/defaults.js +32 -0
  42. package/dist/extension/configuration/formily.d.ts +10 -0
  43. package/dist/extension/configuration/formily.js +170 -0
  44. package/dist/extension/configuration/index.d.ts +7 -0
  45. package/dist/extension/configuration/index.js +28 -0
  46. package/dist/extension/configuration/paths.d.ts +4 -0
  47. package/dist/extension/configuration/paths.js +50 -0
  48. package/dist/extension/configuration/presets/twentytwentyfive.d.ts +7 -0
  49. package/dist/extension/configuration/presets/twentytwentyfive.js +94 -0
  50. package/dist/extension/configuration/resolve.d.ts +24 -0
  51. package/dist/extension/configuration/resolve.js +98 -0
  52. package/dist/extension/configuration/types.d.ts +68 -0
  53. package/dist/extension/configuration/types.js +3 -0
  54. package/dist/extension/configuration/validate.d.ts +8 -0
  55. package/dist/extension/configuration/validate.js +21 -0
  56. package/dist/extension/index.d.ts +9 -0
  57. package/dist/extension/index.js +35 -0
  58. package/dist/extension/manifest-normalize.d.ts +5 -0
  59. package/dist/extension/manifest-normalize.js +75 -0
  60. package/dist/extension/node.d.ts +2 -0
  61. package/dist/extension/node.js +6 -0
  62. package/dist/extension/presets/twentytwentyfive-appearance.d.ts +10 -0
  63. package/dist/extension/presets/twentytwentyfive-appearance.js +193 -0
  64. package/dist/extension/presets/twentytwentyfive-customizer.d.ts +19 -0
  65. package/dist/extension/presets/twentytwentyfive-customizer.js +199 -0
  66. package/dist/extension/preview.d.ts +46 -0
  67. package/dist/extension/preview.js +92 -0
  68. package/dist/extension/site-notices.d.ts +19 -0
  69. package/dist/extension/site-notices.js +88 -0
  70. package/dist/extension/site-settings.d.ts +37 -0
  71. package/dist/extension/site-settings.js +144 -0
  72. package/dist/extension/theme-admin-locale.d.ts +11 -0
  73. package/dist/extension/theme-admin-locale.io.d.ts +2 -0
  74. package/dist/extension/theme-admin-locale.io.js +54 -0
  75. package/dist/extension/theme-admin-locale.js +81 -0
  76. package/dist/extension/theme.d.ts +89 -0
  77. package/dist/extension/theme.js +93 -0
  78. package/dist/extension/twentytwentyfive-vars.d.ts +7 -0
  79. package/dist/extension/twentytwentyfive-vars.js +100 -0
  80. package/dist/index.d.ts +15 -7
  81. package/dist/index.js +44 -22
  82. package/dist/plugin/admin/index.d.ts +2 -0
  83. package/dist/plugin/admin/index.js +18 -0
  84. package/dist/plugin/admin/permissions.d.ts +5 -0
  85. package/dist/plugin/admin/permissions.js +33 -0
  86. package/dist/plugin/admin/plugin-admin.d.ts +37 -0
  87. package/dist/plugin/admin/plugin-admin.js +41 -0
  88. package/dist/plugin/admin/registry.d.ts +62 -0
  89. package/dist/plugin/admin/registry.js +79 -0
  90. package/dist/plugin/admin/slots.d.ts +36 -0
  91. package/dist/plugin/admin/slots.js +16 -0
  92. package/dist/plugin/client/client.d.ts +14 -0
  93. package/dist/plugin/client/client.js +95 -0
  94. package/dist/plugin/client/index.d.ts +4 -0
  95. package/dist/plugin/client/index.js +11 -0
  96. package/dist/plugin/client/runtime.d.ts +18 -0
  97. package/dist/plugin/client/runtime.js +30 -0
  98. package/dist/plugin/dev/index.d.ts +4 -0
  99. package/dist/plugin/dev/index.js +16 -0
  100. package/dist/plugin/dev/portRedirect.d.ts +26 -0
  101. package/dist/plugin/dev/portRedirect.js +111 -0
  102. package/dist/plugin/dev/vitePortRedirectPlugin.d.ts +24 -0
  103. package/dist/plugin/dev/vitePortRedirectPlugin.js +40 -0
  104. package/dist/plugin/extension/index.d.ts +4 -0
  105. package/dist/plugin/extension/index.js +20 -0
  106. package/dist/plugin/extension/plugin-admin-locale.d.ts +21 -0
  107. package/dist/plugin/extension/plugin-admin-locale.io.d.ts +2 -0
  108. package/dist/plugin/extension/plugin-admin-locale.io.js +54 -0
  109. package/dist/plugin/extension/plugin-admin-locale.js +60 -0
  110. package/dist/plugin/extension/plugin.d.ts +82 -0
  111. package/dist/plugin/extension/plugin.js +146 -0
  112. package/dist/plugin/extension/security.d.ts +7 -0
  113. package/dist/plugin/extension/security.js +74 -0
  114. package/dist/plugin/extension/validate.d.ts +8 -0
  115. package/dist/plugin/extension/validate.js +55 -0
  116. package/dist/plugin/index.d.ts +9 -0
  117. package/dist/plugin/index.js +48 -0
  118. package/dist/plugin/node.d.ts +2 -0
  119. package/dist/plugin/node.js +6 -0
  120. package/dist/plugin/react/client.d.ts +14 -0
  121. package/dist/plugin/react/client.js +95 -0
  122. package/dist/plugin/react/index.d.ts +2 -0
  123. package/dist/plugin/react/index.js +18 -0
  124. package/dist/plugin/react/plugin-admin-ui.d.ts +23 -0
  125. package/dist/plugin/react/plugin-admin-ui.js +38 -0
  126. package/dist/plugin/react/runtime.d.ts +18 -0
  127. package/dist/plugin/react/runtime.js +30 -0
  128. package/dist/plugin/server/hook-reject.d.ts +12 -0
  129. package/dist/plugin/server/hook-reject.js +39 -0
  130. package/dist/plugin/server/index.d.ts +2 -0
  131. package/dist/plugin/server/index.js +18 -0
  132. package/dist/plugin/server/types.d.ts +34 -0
  133. package/dist/plugin/server/types.js +3 -0
  134. package/dist/primitives/AntdStyleTransitionFix.d.ts +2 -0
  135. package/dist/primitives/AntdStyleTransitionFix.js +16 -0
  136. package/dist/primitives/Badge.d.ts +7 -0
  137. package/dist/primitives/Badge.js +9 -0
  138. package/dist/primitives/Button.d.ts +10 -0
  139. package/dist/primitives/Button.js +38 -0
  140. package/dist/primitives/ColorModeToggle.d.ts +8 -0
  141. package/dist/primitives/ColorModeToggle.js +13 -0
  142. package/dist/primitives/IconButton.d.ts +7 -0
  143. package/dist/primitives/IconButton.js +13 -0
  144. package/dist/primitives/ScrollToTarget.d.ts +9 -0
  145. package/dist/primitives/ScrollToTarget.js +48 -0
  146. package/dist/primitives/Separator.d.ts +7 -0
  147. package/dist/primitives/Separator.js +9 -0
  148. package/dist/primitives/Skeleton.d.ts +7 -0
  149. package/dist/primitives/Skeleton.js +9 -0
  150. package/dist/primitives/Slot.d.ts +10 -0
  151. package/dist/primitives/Slot.js +25 -0
  152. package/dist/primitives/Spinner.d.ts +6 -0
  153. package/dist/primitives/Spinner.js +9 -0
  154. package/dist/primitives/animation/ConditionTransition.d.ts +8 -0
  155. package/dist/primitives/animation/ConditionTransition.js +13 -0
  156. package/dist/primitives/animation/ListTrail.d.ts +10 -0
  157. package/dist/primitives/animation/ListTrail.js +14 -0
  158. package/dist/primitives/animation/Opacity.d.ts +3 -0
  159. package/dist/primitives/animation/Opacity.js +10 -0
  160. package/dist/primitives/animation/Spring.d.ts +9 -0
  161. package/dist/primitives/animation/Spring.js +29 -0
  162. package/dist/primitives/animation/index.d.ts +7 -0
  163. package/dist/primitives/animation/index.js +11 -0
  164. package/dist/primitives/cn.d.ts +4 -0
  165. package/dist/primitives/cn.js +7 -0
  166. package/dist/primitives/icons.d.ts +4 -0
  167. package/dist/primitives/icons.js +15 -0
  168. package/dist/primitives/index.d.ts +22 -0
  169. package/dist/primitives/index.js +44 -0
  170. package/dist/react/client.d.ts +14 -0
  171. package/dist/react/client.js +95 -0
  172. package/dist/react/index.d.ts +4 -0
  173. package/dist/react/index.js +11 -0
  174. package/dist/react/runtime.d.ts +18 -0
  175. package/dist/react/runtime.js +30 -0
  176. package/dist/theme/antdDocument.d.ts +18 -0
  177. package/dist/theme/antdDocument.js +59 -0
  178. package/dist/theme/api/api-data.d.ts +2 -0
  179. package/dist/theme/api/api-data.js +8 -0
  180. package/dist/theme/api/api.d.ts +28 -0
  181. package/dist/theme/api/api.js +27 -0
  182. package/dist/theme/api/httpClient.d.ts +24 -0
  183. package/dist/theme/api/httpClient.js +83 -0
  184. package/dist/theme/api/json.d.ts +1 -0
  185. package/dist/theme/api/json.js +5 -0
  186. package/dist/theme/api/jsonp.d.ts +1 -0
  187. package/dist/theme/api/jsonp.js +5 -0
  188. package/dist/theme/api-data.d.ts +12 -0
  189. package/dist/theme/api-data.js +22 -0
  190. package/dist/theme/api.d.ts +28 -0
  191. package/dist/theme/api.js +27 -0
  192. package/dist/theme/appearance.d.ts +4 -0
  193. package/dist/theme/appearance.js +16 -0
  194. package/dist/theme/assets.d.ts +2 -0
  195. package/dist/theme/assets.js +27 -0
  196. package/dist/theme/authSession.d.ts +16 -0
  197. package/dist/theme/authSession.js +92 -0
  198. package/dist/theme/build/antdDocument.d.ts +145 -0
  199. package/dist/theme/build/antdDocument.js +70 -0
  200. package/dist/theme/build/next-config.d.ts +15 -0
  201. package/dist/theme/build/next-config.js +63 -0
  202. package/dist/theme/build/node.d.ts +2 -0
  203. package/dist/theme/build/node.js +6 -0
  204. package/dist/theme/colorMode.d.ts +12 -0
  205. package/dist/theme/colorMode.js +45 -0
  206. package/dist/theme/commentAuthor.d.ts +17 -0
  207. package/dist/theme/commentAuthor.js +48 -0
  208. package/dist/theme/content/archiveSlim.d.ts +7 -0
  209. package/dist/theme/content/archiveSlim.js +38 -0
  210. package/dist/theme/content/articleSlim.d.ts +10 -0
  211. package/dist/theme/content/articleSlim.js +35 -0
  212. package/dist/theme/content/assets.d.ts +8 -0
  213. package/dist/theme/content/assets.js +74 -0
  214. package/dist/theme/content/carouselArticles.d.ts +10 -0
  215. package/dist/theme/content/carouselArticles.js +39 -0
  216. package/dist/theme/content/excerpt.d.ts +15 -0
  217. package/dist/theme/content/excerpt.js +42 -0
  218. package/dist/theme/content/nav.d.ts +10 -0
  219. package/dist/theme/content/nav.js +30 -0
  220. package/dist/theme/content/seo.d.ts +6 -0
  221. package/dist/theme/content/seo.js +12 -0
  222. package/dist/theme/createAntdApp.d.ts +106 -0
  223. package/dist/theme/createAntdApp.js +175 -0
  224. package/dist/theme/createApp.d.ts +10 -0
  225. package/dist/theme/createApp.js +141 -0
  226. package/dist/theme/createCatalogApp.d.ts +108 -0
  227. package/dist/theme/createCatalogApp.js +168 -0
  228. package/dist/theme/customizer.d.ts +1 -0
  229. package/dist/theme/customizer.js +5 -0
  230. package/dist/theme/excerpt.d.ts +16 -0
  231. package/dist/theme/excerpt.js +31 -0
  232. package/dist/theme/extension/branding-mods.d.ts +10 -0
  233. package/dist/theme/extension/branding-mods.js +65 -0
  234. package/dist/theme/extension/configuration/defaults.d.ts +3 -0
  235. package/dist/theme/extension/configuration/defaults.js +32 -0
  236. package/dist/theme/extension/configuration/formily.d.ts +10 -0
  237. package/dist/theme/extension/configuration/formily.js +170 -0
  238. package/dist/theme/extension/configuration/index.d.ts +7 -0
  239. package/dist/theme/extension/configuration/index.js +28 -0
  240. package/dist/theme/extension/configuration/paths.d.ts +1 -0
  241. package/dist/theme/extension/configuration/paths.js +7 -0
  242. package/dist/theme/extension/configuration/presets/twentytwentyfive.d.ts +7 -0
  243. package/dist/theme/extension/configuration/presets/twentytwentyfive.js +94 -0
  244. package/dist/theme/extension/configuration/resolve.d.ts +24 -0
  245. package/dist/theme/extension/configuration/resolve.js +98 -0
  246. package/dist/theme/extension/configuration/types.d.ts +68 -0
  247. package/dist/theme/extension/configuration/types.js +3 -0
  248. package/dist/theme/extension/configuration/validate.d.ts +8 -0
  249. package/dist/theme/extension/configuration/validate.js +21 -0
  250. package/dist/theme/extension/index.d.ts +11 -0
  251. package/dist/theme/extension/index.js +38 -0
  252. package/dist/theme/extension/manifest-normalize.d.ts +5 -0
  253. package/dist/theme/extension/manifest-normalize.js +75 -0
  254. package/dist/theme/extension/presets/twentytwentyfive-appearance.d.ts +10 -0
  255. package/dist/theme/extension/presets/twentytwentyfive-appearance.js +193 -0
  256. package/dist/theme/extension/preview.d.ts +46 -0
  257. package/dist/theme/extension/preview.js +92 -0
  258. package/dist/theme/extension/site-notices.d.ts +19 -0
  259. package/dist/theme/extension/site-notices.js +88 -0
  260. package/dist/theme/extension/site-settings.d.ts +37 -0
  261. package/dist/theme/extension/site-settings.js +144 -0
  262. package/dist/theme/extension/siteNav.d.ts +18 -0
  263. package/dist/theme/extension/siteNav.js +17 -0
  264. package/dist/theme/extension/theme-admin-locale.d.ts +11 -0
  265. package/dist/theme/extension/theme-admin-locale.io.d.ts +2 -0
  266. package/dist/theme/extension/theme-admin-locale.io.js +54 -0
  267. package/dist/theme/extension/theme-admin-locale.js +68 -0
  268. package/dist/theme/extension/theme.d.ts +89 -0
  269. package/dist/theme/extension/theme.js +93 -0
  270. package/dist/theme/extension/twentytwentyfive-vars.d.ts +9 -0
  271. package/dist/theme/extension/twentytwentyfive-vars.js +103 -0
  272. package/dist/theme/fetch.d.ts +134 -0
  273. package/dist/theme/fetch.js +241 -0
  274. package/dist/theme/format.d.ts +16 -0
  275. package/dist/theme/format.js +48 -0
  276. package/dist/theme/httpClient.d.ts +20 -0
  277. package/dist/theme/httpClient.js +89 -0
  278. package/dist/theme/index.d.ts +63 -0
  279. package/dist/theme/index.js +226 -0
  280. package/dist/theme/json.d.ts +1 -0
  281. package/dist/theme/json.js +17 -0
  282. package/dist/theme/jsonp.d.ts +8 -0
  283. package/dist/theme/jsonp.js +27 -0
  284. package/dist/theme/locale.d.ts +23 -0
  285. package/dist/theme/locale.js +55 -0
  286. package/dist/theme/nav.d.ts +10 -0
  287. package/dist/theme/nav.js +30 -0
  288. package/dist/theme/next-config.d.ts +2 -0
  289. package/dist/theme/next-config.js +18 -0
  290. package/dist/theme/node.d.ts +2 -0
  291. package/dist/theme/node.js +18 -0
  292. package/dist/theme/preview/preview-config.d.ts +13 -0
  293. package/dist/theme/preview/preview-config.js +65 -0
  294. package/dist/theme/preview/preview-draft.d.ts +19 -0
  295. package/dist/theme/preview/preview-draft.js +51 -0
  296. package/dist/theme/preview/preview-mods.d.ts +16 -0
  297. package/dist/theme/preview/preview-mods.js +78 -0
  298. package/dist/theme/preview-config.d.ts +13 -0
  299. package/dist/theme/preview-config.js +65 -0
  300. package/dist/theme/preview-draft.d.ts +19 -0
  301. package/dist/theme/preview-draft.js +51 -0
  302. package/dist/theme/preview-mods.d.ts +16 -0
  303. package/dist/theme/preview-mods.js +78 -0
  304. package/dist/theme/providers/index.d.ts +118 -0
  305. package/dist/theme/providers/index.js +251 -0
  306. package/dist/theme/providers/setup.d.ts +124 -0
  307. package/dist/theme/providers/setup.js +29 -0
  308. package/dist/theme/runtime.d.ts +18 -0
  309. package/dist/theme/runtime.js +19 -0
  310. package/dist/theme/seo.d.ts +6 -0
  311. package/dist/theme/seo.js +12 -0
  312. package/dist/theme/server.d.ts +65 -0
  313. package/dist/theme/server.js +177 -0
  314. package/dist/theme/setting.d.ts +12 -0
  315. package/dist/theme/setting.js +42 -0
  316. package/dist/theme/ssr/bootstrap.d.ts +48 -0
  317. package/dist/theme/ssr/bootstrap.js +112 -0
  318. package/dist/theme/ssr/fetch.d.ts +134 -0
  319. package/dist/theme/ssr/fetch.js +264 -0
  320. package/dist/theme/ssr/format.d.ts +3 -0
  321. package/dist/theme/ssr/format.js +8 -0
  322. package/dist/theme/ssr/pageProps.d.ts +62 -0
  323. package/dist/theme/ssr/pageProps.js +138 -0
  324. package/dist/theme/ssr/setting.d.ts +12 -0
  325. package/dist/theme/ssr/setting.js +42 -0
  326. package/dist/theme/ssr/slimBootstrap.d.ts +11 -0
  327. package/dist/theme/ssr/slimBootstrap.js +75 -0
  328. package/dist/theme/ssr/static.d.ts +10 -0
  329. package/dist/theme/ssr/static.js +17 -0
  330. package/dist/theme/ssr/templates.d.ts +35 -0
  331. package/dist/theme/ssr/templates.js +50 -0
  332. package/dist/theme/static.d.ts +10 -0
  333. package/dist/theme/static.js +17 -0
  334. package/dist/theme/templates.d.ts +27 -0
  335. package/dist/theme/templates.js +38 -0
  336. package/dist/theme/ui-optional.d.ts +1 -0
  337. package/dist/theme/ui-optional.js +21 -0
  338. package/dist/theme/visitor/appearance.d.ts +4 -0
  339. package/dist/theme/visitor/appearance.js +16 -0
  340. package/dist/theme/visitor/authSession.d.ts +16 -0
  341. package/dist/theme/visitor/authSession.js +92 -0
  342. package/dist/theme/visitor/colorMode.d.ts +17 -0
  343. package/dist/theme/visitor/colorMode.js +59 -0
  344. package/dist/theme/visitor/commentAuthor.d.ts +16 -0
  345. package/dist/theme/visitor/commentAuthor.js +45 -0
  346. package/dist/theme/visitor/i18n.d.ts +4 -0
  347. package/dist/theme/visitor/i18n.js +28 -0
  348. package/dist/theme/visitor/locale.d.ts +23 -0
  349. package/dist/theme/visitor/locale.js +72 -0
  350. package/dist/theme/visitor/runtime.d.ts +18 -0
  351. package/dist/theme/visitor/runtime.js +19 -0
  352. package/dist/theme/visitor/visitorLocale.d.ts +11 -0
  353. package/dist/theme/visitor/visitorLocale.js +56 -0
  354. package/dist/theme/visitorLocale.d.ts +6 -0
  355. package/dist/theme/visitorLocale.js +39 -0
  356. package/dist/types/index.d.ts +79 -68
  357. package/dist/ui/AntdStyleTransitionFix.d.ts +5 -0
  358. package/dist/ui/AntdStyleTransitionFix.js +16 -0
  359. package/dist/ui/ArchiveEmptyState.d.ts +13 -0
  360. package/dist/ui/ArchiveEmptyState.js +8 -0
  361. package/dist/ui/ArchivePageLayout.d.ts +10 -0
  362. package/dist/ui/ArchivePageLayout.js +8 -0
  363. package/dist/ui/ArticleCard.d.ts +27 -0
  364. package/dist/ui/ArticleCard.js +16 -0
  365. package/dist/ui/ArticleList.d.ts +14 -0
  366. package/dist/ui/ArticleList.js +16 -0
  367. package/dist/ui/BaseGlobalStyles.d.ts +5 -0
  368. package/dist/ui/BaseGlobalStyles.js +18 -0
  369. package/dist/ui/LocaleSwitcher.d.ts +7 -0
  370. package/dist/ui/LocaleSwitcher.js +15 -0
  371. package/dist/ui/NavMenu.d.ts +16 -0
  372. package/dist/ui/NavMenu.js +8 -0
  373. package/dist/ui/NotFoundPanel.d.ts +11 -0
  374. package/dist/ui/NotFoundPanel.js +8 -0
  375. package/dist/ui/PageHeader.d.ts +10 -0
  376. package/dist/ui/PageHeader.js +8 -0
  377. package/dist/ui/SiteBranding.d.ts +10 -0
  378. package/dist/ui/SiteBranding.js +14 -0
  379. package/dist/ui/SiteDocument.d.ts +20 -0
  380. package/dist/ui/SiteDocument.js +13 -0
  381. package/dist/ui/SiteDocumentFallback.d.ts +8 -0
  382. package/dist/ui/SiteDocumentFallback.js +9 -0
  383. package/dist/ui/SiteLogo.d.ts +6 -0
  384. package/dist/ui/SiteLogo.js +16 -0
  385. package/dist/ui/SiteTagline.d.ts +7 -0
  386. package/dist/ui/SiteTagline.js +15 -0
  387. package/dist/ui/TaxonomyList.d.ts +25 -0
  388. package/dist/ui/TaxonomyList.js +30 -0
  389. package/dist/ui/ThemeCssVars.d.ts +2 -0
  390. package/dist/ui/ThemeCssVars.js +85 -0
  391. package/dist/ui/ThemeLayout.d.ts +13 -0
  392. package/dist/ui/ThemeLayout.js +11 -0
  393. package/dist/ui/components/AntdStyleTransitionFix.d.ts +5 -0
  394. package/dist/ui/components/AntdStyleTransitionFix.js +16 -0
  395. package/dist/ui/components/ArchiveEmptyState.d.ts +13 -0
  396. package/dist/ui/components/ArchiveEmptyState.js +8 -0
  397. package/dist/ui/components/ArchivePageLayout.d.ts +10 -0
  398. package/dist/ui/components/ArchivePageLayout.js +8 -0
  399. package/dist/ui/components/ArticleCard.d.ts +27 -0
  400. package/dist/ui/components/ArticleCard.js +16 -0
  401. package/dist/ui/components/ArticleList.d.ts +14 -0
  402. package/dist/ui/components/ArticleList.js +16 -0
  403. package/dist/ui/components/BaseGlobalStyles.d.ts +6 -0
  404. package/dist/ui/components/BaseGlobalStyles.js +18 -0
  405. package/dist/ui/components/LocaleSwitcher.d.ts +10 -0
  406. package/dist/ui/components/LocaleSwitcher.js +11 -0
  407. package/dist/ui/components/NavMenu.d.ts +16 -0
  408. package/dist/ui/components/NavMenu.js +8 -0
  409. package/dist/ui/components/NotFoundPanel.d.ts +11 -0
  410. package/dist/ui/components/NotFoundPanel.js +8 -0
  411. package/dist/ui/components/PageHeader.d.ts +10 -0
  412. package/dist/ui/components/PageHeader.js +8 -0
  413. package/dist/ui/components/RouteProgress.d.ts +9 -0
  414. package/dist/ui/components/RouteProgress.js +40 -0
  415. package/dist/ui/components/SiteAnalytics.d.ts +5 -0
  416. package/dist/ui/components/SiteAnalytics.js +42 -0
  417. package/dist/ui/components/SiteBranding.d.ts +11 -0
  418. package/dist/ui/components/SiteBranding.js +14 -0
  419. package/dist/ui/components/SiteDocument.d.ts +20 -0
  420. package/dist/ui/components/SiteDocument.js +13 -0
  421. package/dist/ui/components/SiteDocumentFallback.d.ts +8 -0
  422. package/dist/ui/components/SiteDocumentFallback.js +9 -0
  423. package/dist/ui/components/SiteLogo.d.ts +9 -0
  424. package/dist/ui/components/SiteLogo.js +23 -0
  425. package/dist/ui/components/SiteSeo.d.ts +13 -0
  426. package/dist/ui/components/SiteSeo.js +19 -0
  427. package/dist/ui/components/SiteTagline.d.ts +8 -0
  428. package/dist/ui/components/SiteTagline.js +15 -0
  429. package/dist/ui/components/TaxonomyList.d.ts +25 -0
  430. package/dist/ui/components/TaxonomyList.js +30 -0
  431. package/dist/ui/components/ThemeCssVars.d.ts +3 -0
  432. package/dist/ui/components/ThemeCssVars.js +85 -0
  433. package/dist/ui/components/ThemeLayout.d.ts +13 -0
  434. package/dist/ui/components/ThemeLayout.js +11 -0
  435. package/dist/ui/components/content/ArticleReader.d.ts +45 -0
  436. package/dist/ui/components/content/ArticleReader.js +23 -0
  437. package/dist/ui/components/content/ArticleToc.d.ts +21 -0
  438. package/dist/ui/components/content/ArticleToc.js +75 -0
  439. package/dist/ui/components/content/HtmlContent.d.ts +16 -0
  440. package/dist/ui/components/content/HtmlContent.js +237 -0
  441. package/dist/ui/components/content/Image.d.ts +9 -0
  442. package/dist/ui/components/content/Image.js +13 -0
  443. package/dist/ui/components/content/ImageViewer.d.ts +8 -0
  444. package/dist/ui/components/content/ImageViewer.js +33 -0
  445. package/dist/ui/components/content/LocaleTime.d.ts +10 -0
  446. package/dist/ui/components/content/LocaleTime.js +63 -0
  447. package/dist/ui/components/content/index.d.ts +14 -0
  448. package/dist/ui/components/content/index.js +18 -0
  449. package/dist/ui/components/toolbar/LocaleToggleButton.d.ts +8 -0
  450. package/dist/ui/components/toolbar/LocaleToggleButton.js +18 -0
  451. package/dist/ui/components/toolbar/ThemeToggleButton.d.ts +7 -0
  452. package/dist/ui/components/toolbar/ThemeToggleButton.js +10 -0
  453. package/dist/ui/components/toolbar/ToolbarIconButton.d.ts +7 -0
  454. package/dist/ui/components/toolbar/ToolbarIconButton.js +22 -0
  455. package/dist/ui/components/toolbar/constants.d.ts +5 -0
  456. package/dist/ui/components/toolbar/constants.js +8 -0
  457. package/dist/ui/components/toolbar/icons.d.ts +17 -0
  458. package/dist/ui/components/toolbar/icons.js +44 -0
  459. package/dist/ui/components/toolbar/index.d.ts +9 -0
  460. package/dist/ui/components/toolbar/index.js +25 -0
  461. package/dist/ui/components/toolbar/locale-label.d.ts +3 -0
  462. package/dist/ui/components/toolbar/locale-label.js +19 -0
  463. package/dist/ui/context/LocaleContext.d.ts +15 -0
  464. package/dist/ui/context/LocaleContext.js +59 -0
  465. package/dist/ui/context/ReactPressProvider.d.ts +4 -0
  466. package/dist/ui/context/ReactPressProvider.js +10 -0
  467. package/dist/ui/context/SiteCatalogContext.d.ts +41 -0
  468. package/dist/ui/context/SiteCatalogContext.js +60 -0
  469. package/dist/ui/context/ThemeRuntimeContext.d.ts +21 -0
  470. package/dist/ui/context/ThemeRuntimeContext.js +59 -0
  471. package/dist/ui/context/index.d.ts +8 -0
  472. package/dist/ui/context/index.js +26 -0
  473. package/dist/ui/context/siteCatalogTypes.d.ts +64 -0
  474. package/dist/ui/context/siteCatalogTypes.js +20 -0
  475. package/dist/ui/context/types.d.ts +34 -0
  476. package/dist/ui/context/types.js +2 -0
  477. package/dist/ui/hooks/index.d.ts +12 -0
  478. package/dist/ui/hooks/index.js +29 -0
  479. package/dist/ui/hooks/useAsyncLoading.d.ts +4 -0
  480. package/dist/ui/hooks/useAsyncLoading.js +31 -0
  481. package/dist/ui/hooks/useForceUpdate.d.ts +2 -0
  482. package/dist/ui/hooks/useForceUpdate.js +11 -0
  483. package/dist/ui/hooks/useNavActive.d.ts +5 -0
  484. package/dist/ui/hooks/useNavActive.js +11 -0
  485. package/dist/ui/hooks/usePagination.d.ts +34 -0
  486. package/dist/ui/hooks/usePagination.js +55 -0
  487. package/dist/ui/hooks/useReportArticleView.d.ts +4 -0
  488. package/dist/ui/hooks/useReportArticleView.js +40 -0
  489. package/dist/ui/hooks/useReportPageView.d.ts +11 -0
  490. package/dist/ui/hooks/useReportPageView.js +28 -0
  491. package/dist/ui/hooks/useRouteParam.d.ts +5 -0
  492. package/dist/ui/hooks/useRouteParam.js +15 -0
  493. package/dist/ui/hooks/useToggle.d.ts +2 -0
  494. package/dist/ui/hooks/useToggle.js +17 -0
  495. package/dist/ui/hooks/useWarningOnExit.d.ts +5 -0
  496. package/dist/ui/hooks/useWarningOnExit.js +59 -0
  497. package/dist/ui/index.d.ts +43 -0
  498. package/dist/ui/index.js +87 -0
  499. package/dist/utils/api-envelope.d.ts +14 -0
  500. package/dist/utils/api-envelope.js +31 -0
  501. package/dist/utils/clipboard.d.ts +2 -0
  502. package/dist/utils/clipboard.js +24 -0
  503. package/dist/utils/cookie.d.ts +2 -0
  504. package/dist/utils/cookie.js +15 -0
  505. package/dist/utils/date.d.ts +4 -0
  506. package/dist/utils/date.js +45 -0
  507. package/dist/utils/email.d.ts +3 -0
  508. package/dist/utils/email.js +9 -0
  509. package/dist/utils/error.d.ts +7 -0
  510. package/dist/utils/error.js +26 -0
  511. package/dist/utils/image.d.ts +7 -0
  512. package/dist/utils/image.js +34 -0
  513. package/dist/utils/index.d.ts +15 -33
  514. package/dist/utils/index.js +37 -57
  515. package/dist/utils/json.d.ts +2 -0
  516. package/dist/utils/json.js +18 -0
  517. package/dist/utils/jsonp.d.ts +8 -0
  518. package/dist/utils/jsonp.js +27 -0
  519. package/dist/utils/object.d.ts +7 -0
  520. package/dist/utils/object.js +63 -0
  521. package/dist/utils/setting.d.ts +12 -0
  522. package/dist/utils/setting.js +13 -0
  523. package/dist/utils/string.d.ts +4 -0
  524. package/dist/utils/string.js +15 -0
  525. package/dist/utils/viewport.d.ts +3 -0
  526. package/dist/utils/viewport.js +14 -0
  527. package/package.json +141 -12
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ /** WordPress-style theme manifest and site theme state (shared by server / web / themes). */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PREVIEW_MODS_QUERY_KEY = exports.parsePreviewModsParam = exports.parsePreviewModsFromRequestUrl = exports.parsePreviewModsFromNextCtx = exports.mergePreviewMods = exports.appendPreviewModsToUrl = exports.PREVIEW_TOKEN_QUERY_KEY = exports.parsePreviewTokenFromRequestUrl = exports.parsePreviewTokenFromNextCtx = exports.appendPreviewTokenToUrl = exports.PREVIEW_CONFIG_QUERY_KEY = exports.parsePreviewConfigParam = exports.parsePreviewConfigFromRequestUrl = exports.parsePreviewConfigFromNextCtx = exports.appendPreviewConfigToUrl = exports.resolvePublicAssetUrl = exports.defaultSiteThemeState = exports.DEFAULT_ACTIVE_THEME = exports.appearancePrimaryColorForMode = exports.THEME_BRANDING_MOD_TO_SETTING = exports.THEME_BRANDING_DIRECT_MODS = exports.seedThemeModsFromLegacySetting = exports.applyThemeModsToSiteSetting = void 0;
5
+ exports.appearancePrimaryColor = appearancePrimaryColor;
6
+ exports.parseThemeManifest = parseThemeManifest;
7
+ exports.getThemeStateFromGlobalSetting = getThemeStateFromGlobalSetting;
8
+ exports.mergeThemeStateIntoGlobalSetting = mergeThemeStateIntoGlobalSetting;
9
+ const manifest_normalize_1 = require("./manifest-normalize");
10
+ var branding_mods_1 = require("./branding-mods");
11
+ Object.defineProperty(exports, "applyThemeModsToSiteSetting", { enumerable: true, get: function () { return branding_mods_1.applyThemeModsToSiteSetting; } });
12
+ Object.defineProperty(exports, "seedThemeModsFromLegacySetting", { enumerable: true, get: function () { return branding_mods_1.seedThemeModsFromLegacySetting; } });
13
+ Object.defineProperty(exports, "THEME_BRANDING_DIRECT_MODS", { enumerable: true, get: function () { return branding_mods_1.THEME_BRANDING_DIRECT_MODS; } });
14
+ Object.defineProperty(exports, "THEME_BRANDING_MOD_TO_SETTING", { enumerable: true, get: function () { return branding_mods_1.THEME_BRANDING_MOD_TO_SETTING; } });
15
+ const twentytwentyfive_vars_1 = require("./twentytwentyfive-vars");
16
+ var twentytwentyfive_vars_2 = require("./twentytwentyfive-vars");
17
+ Object.defineProperty(exports, "appearancePrimaryColorForMode", { enumerable: true, get: function () { return twentytwentyfive_vars_2.appearancePrimaryColorForMode; } });
18
+ /** Primary color from appearance mods (Ant Design / CSS), light mode. */
19
+ function appearancePrimaryColor(mods, fallback = '#f44336') {
20
+ return (0, twentytwentyfive_vars_1.appearancePrimaryColorForMode)(mods, false, fallback);
21
+ }
22
+ exports.DEFAULT_ACTIVE_THEME = 'twentytwentyfive';
23
+ exports.defaultSiteThemeState = {
24
+ activeTheme: exports.DEFAULT_ACTIVE_THEME,
25
+ installedThemes: [exports.DEFAULT_ACTIVE_THEME],
26
+ mods: {},
27
+ };
28
+ function parseThemeManifest(raw) {
29
+ if (!raw || typeof raw !== 'object')
30
+ return null;
31
+ const o = raw;
32
+ if (typeof o.id !== 'string' || typeof o.name !== 'string')
33
+ return null;
34
+ const platform = (0, manifest_normalize_1.normalizePlatformFields)(o);
35
+ const appearance = (0, manifest_normalize_1.normalizeAppearance)(o.appearance);
36
+ return {
37
+ id: o.id,
38
+ name: o.name,
39
+ version: typeof o.version === 'string' ? o.version : '1.0.0',
40
+ description: typeof o.description === 'string' ? o.description : undefined,
41
+ author: typeof o.author === 'string' ? o.author : undefined,
42
+ authorUri: typeof o.authorUri === 'string' ? o.authorUri : undefined,
43
+ themeUri: typeof o.themeUri === 'string' ? o.themeUri : undefined,
44
+ tags: Array.isArray(o.tags) ? o.tags.filter((t) => typeof t === 'string') : undefined,
45
+ cover: typeof o.cover === 'string' ? o.cover : undefined,
46
+ ...platform,
47
+ appearance,
48
+ };
49
+ }
50
+ function getThemeStateFromGlobalSetting(raw) {
51
+ if (!raw || typeof raw !== 'object')
52
+ return { ...exports.defaultSiteThemeState };
53
+ const gs = raw;
54
+ const theme = gs.theme;
55
+ if (!theme || typeof theme !== 'object')
56
+ return { ...exports.defaultSiteThemeState };
57
+ return {
58
+ activeTheme: typeof theme.activeTheme === 'string' ? theme.activeTheme : exports.defaultSiteThemeState.activeTheme,
59
+ installedThemes: Array.isArray(theme.installedThemes)
60
+ ? theme.installedThemes.filter((id) => typeof id === 'string')
61
+ : [...exports.defaultSiteThemeState.installedThemes],
62
+ mods: theme.mods && typeof theme.mods === 'object'
63
+ ? theme.mods
64
+ : {},
65
+ previewThemeId: typeof theme.previewThemeId === 'string' ? theme.previewThemeId : undefined,
66
+ };
67
+ }
68
+ var assets_1 = require("../theme/assets");
69
+ Object.defineProperty(exports, "resolvePublicAssetUrl", { enumerable: true, get: function () { return assets_1.resolvePublicAssetUrl; } });
70
+ var preview_config_1 = require("../theme/preview-config");
71
+ Object.defineProperty(exports, "appendPreviewConfigToUrl", { enumerable: true, get: function () { return preview_config_1.appendPreviewConfigToUrl; } });
72
+ Object.defineProperty(exports, "parsePreviewConfigFromNextCtx", { enumerable: true, get: function () { return preview_config_1.parsePreviewConfigFromNextCtx; } });
73
+ Object.defineProperty(exports, "parsePreviewConfigFromRequestUrl", { enumerable: true, get: function () { return preview_config_1.parsePreviewConfigFromRequestUrl; } });
74
+ Object.defineProperty(exports, "parsePreviewConfigParam", { enumerable: true, get: function () { return preview_config_1.parsePreviewConfigParam; } });
75
+ Object.defineProperty(exports, "PREVIEW_CONFIG_QUERY_KEY", { enumerable: true, get: function () { return preview_config_1.PREVIEW_CONFIG_QUERY_KEY; } });
76
+ var preview_draft_1 = require("../theme/preview-draft");
77
+ Object.defineProperty(exports, "appendPreviewTokenToUrl", { enumerable: true, get: function () { return preview_draft_1.appendPreviewTokenToUrl; } });
78
+ Object.defineProperty(exports, "parsePreviewTokenFromNextCtx", { enumerable: true, get: function () { return preview_draft_1.parsePreviewTokenFromNextCtx; } });
79
+ Object.defineProperty(exports, "parsePreviewTokenFromRequestUrl", { enumerable: true, get: function () { return preview_draft_1.parsePreviewTokenFromRequestUrl; } });
80
+ Object.defineProperty(exports, "PREVIEW_TOKEN_QUERY_KEY", { enumerable: true, get: function () { return preview_draft_1.PREVIEW_TOKEN_QUERY_KEY; } });
81
+ var preview_mods_1 = require("../theme/preview-mods");
82
+ Object.defineProperty(exports, "appendPreviewModsToUrl", { enumerable: true, get: function () { return preview_mods_1.appendPreviewModsToUrl; } });
83
+ Object.defineProperty(exports, "mergePreviewMods", { enumerable: true, get: function () { return preview_mods_1.mergePreviewMods; } });
84
+ Object.defineProperty(exports, "parsePreviewModsFromNextCtx", { enumerable: true, get: function () { return preview_mods_1.parsePreviewModsFromNextCtx; } });
85
+ Object.defineProperty(exports, "parsePreviewModsFromRequestUrl", { enumerable: true, get: function () { return preview_mods_1.parsePreviewModsFromRequestUrl; } });
86
+ Object.defineProperty(exports, "parsePreviewModsParam", { enumerable: true, get: function () { return preview_mods_1.parsePreviewModsParam; } });
87
+ Object.defineProperty(exports, "PREVIEW_MODS_QUERY_KEY", { enumerable: true, get: function () { return preview_mods_1.PREVIEW_MODS_QUERY_KEY; } });
88
+ function mergeThemeStateIntoGlobalSetting(raw, patch) {
89
+ const base = raw && typeof raw === 'object' ? { ...raw } : {};
90
+ const current = getThemeStateFromGlobalSetting(base);
91
+ base.theme = { ...current, ...patch };
92
+ return base;
93
+ }
@@ -0,0 +1,7 @@
1
+ import { type ThemeMods } from './branding-mods';
2
+ export declare function appearanceBackgroundColor(mods: ThemeMods, fallback?: string): string | undefined;
3
+ export declare function appearanceSecondaryBackgroundColor(mods: ThemeMods): string | undefined;
4
+ export declare function appearanceLinkColor(mods: ThemeMods): string | undefined;
5
+ export declare function appearancePrimaryColorForMode(mods: ThemeMods, dark: boolean, fallback?: string): string;
6
+ /** Maps Twenty Twenty-Five appearance color mods to theme CSS variables. */
7
+ export declare function buildTwentyTwentyFiveAppearanceCss(mods: ThemeMods): string;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.appearanceBackgroundColor = appearanceBackgroundColor;
4
+ exports.appearanceSecondaryBackgroundColor = appearanceSecondaryBackgroundColor;
5
+ exports.appearanceLinkColor = appearanceLinkColor;
6
+ exports.appearancePrimaryColorForMode = appearancePrimaryColorForMode;
7
+ exports.buildTwentyTwentyFiveAppearanceCss = buildTwentyTwentyFiveAppearanceCss;
8
+ const branding_mods_1 = require("./branding-mods");
9
+ const HEX_COLOR = /^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
10
+ function normalizeHexColor(value) {
11
+ if (!value)
12
+ return undefined;
13
+ const trimmed = value.trim();
14
+ if (!HEX_COLOR.test(trimmed))
15
+ return undefined;
16
+ if (trimmed.length === 4) {
17
+ const [, r, g, b] = trimmed;
18
+ return `#${r}${r}${g}${g}${b}${b}`.toLowerCase();
19
+ }
20
+ return trimmed.toLowerCase();
21
+ }
22
+ function hexToRgbChannels(hex) {
23
+ const normalized = normalizeHexColor(hex);
24
+ if (!normalized)
25
+ return null;
26
+ const raw = normalized.slice(1);
27
+ const r = parseInt(raw.slice(0, 2), 16);
28
+ const g = parseInt(raw.slice(2, 4), 16);
29
+ const b = parseInt(raw.slice(4, 6), 16);
30
+ if ([r, g, b].some((n) => Number.isNaN(n)))
31
+ return null;
32
+ return `${r}, ${g}, ${b}`;
33
+ }
34
+ const LIGHT_COLOR_KEYS = {
35
+ primary: 'primaryColor',
36
+ background: 'backgroundColor',
37
+ secondaryBackground: 'secondaryBackgroundColor',
38
+ link: 'linkColor',
39
+ };
40
+ const DARK_COLOR_KEYS = {
41
+ primary: 'darkPrimaryColor',
42
+ background: 'darkBackgroundColor',
43
+ secondaryBackground: 'darkSecondaryBackgroundColor',
44
+ link: 'darkLinkColor',
45
+ };
46
+ function buildModeColorDeclarations(mods, keys) {
47
+ const primary = normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, keys.primary));
48
+ const background = normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, keys.background));
49
+ const secondaryBg = normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, keys.secondaryBackground));
50
+ const link = normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, keys.link));
51
+ const declarations = [];
52
+ if (primary)
53
+ declarations.push(`--primary-color: ${primary};`);
54
+ if (background) {
55
+ declarations.push(`--bg: ${background};`);
56
+ declarations.push(`--bg-body: ${background};`);
57
+ }
58
+ if (secondaryBg) {
59
+ declarations.push(`--bg-second: ${secondaryBg};`);
60
+ declarations.push(`--bg-box: ${secondaryBg};`);
61
+ const rgb = hexToRgbChannels(secondaryBg);
62
+ if (rgb)
63
+ declarations.push(`--rgb-bg-second: ${rgb};`);
64
+ }
65
+ else if (background) {
66
+ declarations.push(`--bg-box: ${background};`);
67
+ }
68
+ if (link)
69
+ declarations.push(`--link-color: ${link};`);
70
+ return declarations;
71
+ }
72
+ function appearanceBackgroundColor(mods, fallback) {
73
+ const v = (0, branding_mods_1.brandingModValue)(mods, LIGHT_COLOR_KEYS.background);
74
+ return normalizeHexColor(v) ?? (fallback ? normalizeHexColor(fallback) : undefined);
75
+ }
76
+ function appearanceSecondaryBackgroundColor(mods) {
77
+ return normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, LIGHT_COLOR_KEYS.secondaryBackground));
78
+ }
79
+ function appearanceLinkColor(mods) {
80
+ return normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, LIGHT_COLOR_KEYS.link));
81
+ }
82
+ function appearancePrimaryColorForMode(mods, dark, fallback = '#f44336') {
83
+ const keys = dark ? DARK_COLOR_KEYS : LIGHT_COLOR_KEYS;
84
+ return (normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, keys.primary)) ??
85
+ normalizeHexColor((0, branding_mods_1.brandingModValue)(mods, LIGHT_COLOR_KEYS.primary)) ??
86
+ fallback);
87
+ }
88
+ /** Maps Twenty Twenty-Five appearance color mods to theme CSS variables. */
89
+ function buildTwentyTwentyFiveAppearanceCss(mods) {
90
+ const lightDecl = buildModeColorDeclarations(mods, LIGHT_COLOR_KEYS);
91
+ const darkDecl = buildModeColorDeclarations(mods, DARK_COLOR_KEYS);
92
+ const blocks = [];
93
+ if (lightDecl.length > 0) {
94
+ blocks.push(`body:not(.dark) { ${lightDecl.join(' ')} }`);
95
+ }
96
+ if (darkDecl.length > 0) {
97
+ blocks.push(`body.dark { ${darkDecl.join(' ')} }`);
98
+ }
99
+ return blocks.join('\n');
100
+ }
package/dist/index.d.ts CHANGED
@@ -1,11 +1,19 @@
1
- import { api, createApiInstance } from './api/instance';
2
- import * as types from './types';
3
- import * as utils from './utils';
4
- import * as config from './config';
5
- declare const http: {
1
+ export * as config from './config';
2
+ export * as plugin from './plugin';
3
+ export * as theme from './theme';
4
+ export * as types from './types';
5
+ export * as ui from './ui';
6
+ export * as utils from './utils';
7
+ /** @deprecated Prefer `@fecommunity/reactpress-toolkit/api` subpath imports. */
8
+ export { api, createApiInstance, http as httpInstance } from './api/instance';
9
+ export * from './config';
10
+ export * from './types';
11
+ export * from './utils';
12
+ import { createApiInstance } from './api/instance';
13
+ /** @deprecated Prefer `createApiInstance` from `@fecommunity/reactpress-toolkit/api/instance`. */
14
+ export declare const http: {
6
15
  createApiInstance: typeof createApiInstance;
7
16
  instance: import("axios").AxiosInstance;
8
- setSecurityData: (data: unknown) => void;
17
+ setSecurityData: (data: SecurityDataType | null) => void;
9
18
  request: <T = any, _E = any>({ secure, path, type, query, format, body, ...params }: import("./api/HttpClient").FullRequestParams) => Promise<T>;
10
19
  };
11
- export { api, types, utils, config, http };
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
- // Automatically generated API toolkit for ReactPress
3
- // Do not manually modify this file
4
- // Generated at: 9/25/2025, 9:47:27 PM
2
+ // Public subpath modules: api, types, ui, utils, theme, plugin, config
5
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
4
  if (k2 === undefined) k2 = k;
7
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
8
10
  }) : (function(o, m, k, k2) {
9
11
  if (k2 === undefined) k2 = k;
10
12
  o[k2] = m[k];
@@ -14,25 +16,45 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
14
16
  }) : function(o, v) {
15
17
  o["default"] = v;
16
18
  });
17
- var __importStar = (this && this.__importStar) || function (mod) {
18
- if (mod && mod.__esModule) return mod;
19
- var result = {};
20
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
- __setModuleDefault(result, mod);
22
- return result;
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
37
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
38
  };
24
39
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.http = exports.config = exports.utils = exports.types = exports.api = void 0;
26
- const instance_1 = require("./api/instance");
40
+ exports.http = exports.httpInstance = exports.createApiInstance = exports.api = exports.utils = exports.ui = exports.types = exports.theme = exports.plugin = exports.config = void 0;
41
+ exports.config = __importStar(require("./config"));
42
+ exports.plugin = __importStar(require("./plugin"));
43
+ exports.theme = __importStar(require("./theme"));
44
+ exports.types = __importStar(require("./types"));
45
+ exports.ui = __importStar(require("./ui"));
46
+ exports.utils = __importStar(require("./utils"));
47
+ /** @deprecated Prefer `@fecommunity/reactpress-toolkit/api` subpath imports. */
48
+ var instance_1 = require("./api/instance");
27
49
  Object.defineProperty(exports, "api", { enumerable: true, get: function () { return instance_1.api; } });
28
- const types = __importStar(require("./types"));
29
- exports.types = types;
30
- const utils = __importStar(require("./utils"));
31
- exports.utils = utils;
32
- const config = __importStar(require("./config"));
33
- exports.config = config;
34
- const http = {
35
- ...instance_1.http,
36
- createApiInstance: instance_1.createApiInstance,
50
+ Object.defineProperty(exports, "createApiInstance", { enumerable: true, get: function () { return instance_1.createApiInstance; } });
51
+ Object.defineProperty(exports, "httpInstance", { enumerable: true, get: function () { return instance_1.http; } });
52
+ __exportStar(require("./config"), exports);
53
+ __exportStar(require("./types"), exports);
54
+ __exportStar(require("./utils"), exports);
55
+ const instance_2 = require("./api/instance");
56
+ /** @deprecated Prefer `createApiInstance` from `@fecommunity/reactpress-toolkit/api/instance`. */
57
+ exports.http = {
58
+ ...instance_2.http,
59
+ createApiInstance: instance_2.createApiInstance,
37
60
  };
38
- exports.http = http;
@@ -0,0 +1,2 @@
1
+ export * from './permissions';
2
+ export * from './registry';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./permissions"), exports);
18
+ __exportStar(require("./registry"), exports);
@@ -0,0 +1,5 @@
1
+ /** Admin capability strings — keep in sync with server guards. */
2
+ export type Permission = 'article:read' | 'article:write' | 'article:publish' | 'media:manage' | 'page:manage' | 'user:manage' | 'setting:manage' | 'extension:manage' | 'comment:manage' | 'view:read';
3
+ export declare const ADMIN_PERMISSIONS: Permission[];
4
+ /** Map legacy server roles to capability strings. */
5
+ export declare function permissionsForRole(role: string | undefined): Permission[];
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ADMIN_PERMISSIONS = void 0;
4
+ exports.permissionsForRole = permissionsForRole;
5
+ exports.ADMIN_PERMISSIONS = [
6
+ 'article:read',
7
+ 'article:write',
8
+ 'article:publish',
9
+ 'media:manage',
10
+ 'page:manage',
11
+ 'user:manage',
12
+ 'setting:manage',
13
+ 'extension:manage',
14
+ 'comment:manage',
15
+ 'view:read',
16
+ ];
17
+ /** Map legacy server roles to capability strings. */
18
+ function permissionsForRole(role) {
19
+ if (role === 'admin')
20
+ return [...exports.ADMIN_PERMISSIONS];
21
+ if (role === 'editor') {
22
+ return [
23
+ 'article:read',
24
+ 'article:write',
25
+ 'article:publish',
26
+ 'media:manage',
27
+ 'page:manage',
28
+ 'comment:manage',
29
+ 'view:read',
30
+ ];
31
+ }
32
+ return ['article:read', 'view:read'];
33
+ }
@@ -0,0 +1,37 @@
1
+ import type { AdminSlotId } from './slots';
2
+ export interface PluginAdminContext {
3
+ id: string;
4
+ config: Record<string, unknown>;
5
+ }
6
+ /** Plugin admin entry — called once per active plugin when admin shell loads. */
7
+ export interface PluginAdminModule {
8
+ registerAdmin(registry: PluginAdminRegistry, ctx: PluginAdminContext): void | Promise<void>;
9
+ }
10
+ /** Opaque component type — React `ComponentType` lives in `@fecommunity/reactpress-toolkit/plugin/react`. */
11
+ export type PluginAdminSlotComponent = (props: PluginAdminSlotComponentProps<unknown>) => unknown;
12
+ export interface PluginAdminSlotComponentProps<TContext = unknown> {
13
+ context: TContext;
14
+ pluginId: string;
15
+ config: Record<string, unknown>;
16
+ }
17
+ export interface PluginAdminSlotContribution {
18
+ pluginId: string;
19
+ slot: AdminSlotId;
20
+ priority: number;
21
+ Component: PluginAdminSlotComponent;
22
+ }
23
+ export interface PluginAdminRegistry {
24
+ registerSlot<TContext = unknown>(slot: AdminSlotId, component: (props: PluginAdminSlotComponentProps<TContext>) => unknown, options?: {
25
+ priority?: number;
26
+ }): void;
27
+ }
28
+ export interface PluginAdminSlotHost {
29
+ registerSlot<TContext = unknown>(pluginId: string, slot: AdminSlotId, component: (props: PluginAdminSlotComponentProps<TContext>) => unknown, options?: {
30
+ priority?: number;
31
+ }): void;
32
+ getContributions(slot: AdminSlotId): PluginAdminSlotContribution[];
33
+ reset(): void;
34
+ }
35
+ export declare function createPluginAdminSlotHost(): PluginAdminSlotHost;
36
+ /** Registry passed to `registerAdmin` — scopes contributions to one plugin id. */
37
+ export declare function createPluginAdminRegistry(pluginId: string, host: PluginAdminSlotHost): PluginAdminRegistry;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPluginAdminSlotHost = createPluginAdminSlotHost;
4
+ exports.createPluginAdminRegistry = createPluginAdminRegistry;
5
+ function createPluginAdminSlotHost() {
6
+ const contributions = [];
7
+ return {
8
+ registerSlot(pluginId, slot, component, options) {
9
+ const priority = options?.priority ?? 10;
10
+ const existing = contributions.findIndex((item) => item.pluginId === pluginId && item.slot === slot);
11
+ const entry = {
12
+ pluginId,
13
+ slot,
14
+ Component: component,
15
+ priority,
16
+ };
17
+ if (existing >= 0) {
18
+ contributions[existing] = entry;
19
+ }
20
+ else {
21
+ contributions.push(entry);
22
+ }
23
+ },
24
+ getContributions(slot) {
25
+ return contributions
26
+ .filter((item) => item.slot === slot)
27
+ .sort((a, b) => a.priority - b.priority);
28
+ },
29
+ reset() {
30
+ contributions.length = 0;
31
+ },
32
+ };
33
+ }
34
+ /** Registry passed to `registerAdmin` — scopes contributions to one plugin id. */
35
+ function createPluginAdminRegistry(pluginId, host) {
36
+ return {
37
+ registerSlot(slot, component, options) {
38
+ host.registerSlot(pluginId, slot, component, options);
39
+ },
40
+ };
41
+ }
@@ -0,0 +1,62 @@
1
+ import type { Permission } from './permissions';
2
+ export type MenuNodeKind = 'group' | 'item';
3
+ export interface AdminMenuItem {
4
+ id: string;
5
+ kind: MenuNodeKind;
6
+ title: string;
7
+ path: string | null;
8
+ icon?: string | null;
9
+ sort?: number;
10
+ hidden?: boolean;
11
+ permissions?: Permission[] | null;
12
+ children?: AdminMenuItem[];
13
+ }
14
+ export interface MenuRegisterInput {
15
+ id: string;
16
+ title: string;
17
+ path?: string | null;
18
+ icon?: string | null;
19
+ sort?: number;
20
+ hidden?: boolean;
21
+ permissions?: Permission[] | null;
22
+ children?: MenuRegisterInput[];
23
+ }
24
+ export interface SettingsTabInput {
25
+ id: string;
26
+ title: string;
27
+ path: string;
28
+ permission?: Permission;
29
+ sort?: number;
30
+ }
31
+ export interface RoutePermissionInput {
32
+ path: string;
33
+ permission: Permission | null;
34
+ }
35
+ export interface MenuRegistry {
36
+ register(input: MenuRegisterInput): void;
37
+ getTree(): AdminMenuItem[];
38
+ }
39
+ export interface SettingsRegistry {
40
+ registerTab(input: SettingsTabInput): void;
41
+ getTabs(): SettingsTabInput[];
42
+ }
43
+ export interface PermissionRegistry {
44
+ register(perms: Permission[]): void;
45
+ getAll(): Permission[];
46
+ }
47
+ export interface RouteRegistry {
48
+ registerRoute(input: RoutePermissionInput): void;
49
+ getRoutePermissions(): RoutePermissionInput[];
50
+ }
51
+ export interface AdminContext {
52
+ menu: MenuRegistry;
53
+ settings: SettingsRegistry;
54
+ permissions: PermissionRegistry;
55
+ routes: RouteRegistry;
56
+ }
57
+ export interface AdminModule {
58
+ id: string;
59
+ register(ctx: AdminContext): void;
60
+ }
61
+ export declare function createAdminRegistry(): AdminContext;
62
+ export declare function filterMenuByPermissions(nodes: AdminMenuItem[], granted: Set<string>): AdminMenuItem[];
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createAdminRegistry = createAdminRegistry;
4
+ exports.filterMenuByPermissions = filterMenuByPermissions;
5
+ function normalizeMenuInput(input) {
6
+ const hasChildren = Boolean(input.children?.length);
7
+ return {
8
+ id: input.id,
9
+ kind: hasChildren && !input.path ? 'group' : 'item',
10
+ title: input.title,
11
+ path: input.path ?? (hasChildren ? null : '/'),
12
+ icon: input.icon ?? null,
13
+ sort: input.sort ?? 0,
14
+ hidden: input.hidden ?? false,
15
+ permissions: input.permissions ?? null,
16
+ children: input.children?.map(normalizeMenuInput),
17
+ };
18
+ }
19
+ function createAdminRegistry() {
20
+ const menuItems = [];
21
+ const settingsTabs = [];
22
+ const permissions = new Set();
23
+ const routePermissions = [];
24
+ const menu = {
25
+ register(input) {
26
+ menuItems.push(normalizeMenuInput(input));
27
+ },
28
+ getTree() {
29
+ return [...menuItems].sort((a, b) => (a.sort ?? 0) - (b.sort ?? 0));
30
+ },
31
+ };
32
+ const settings = {
33
+ registerTab(input) {
34
+ settingsTabs.push(input);
35
+ },
36
+ getTabs() {
37
+ return [...settingsTabs].sort((a, b) => (a.sort ?? 0) - (b.sort ?? 0));
38
+ },
39
+ };
40
+ const permissionRegistry = {
41
+ register(perms) {
42
+ for (const p of perms)
43
+ permissions.add(p);
44
+ },
45
+ getAll() {
46
+ return [...permissions];
47
+ },
48
+ };
49
+ const routes = {
50
+ registerRoute(input) {
51
+ routePermissions.push(input);
52
+ },
53
+ getRoutePermissions() {
54
+ return routePermissions;
55
+ },
56
+ };
57
+ return { menu, settings, permissions: permissionRegistry, routes };
58
+ }
59
+ function filterMenuByPermissions(nodes, granted) {
60
+ const can = (required) => {
61
+ if (!required?.length)
62
+ return true;
63
+ return required.every((p) => granted.has(p));
64
+ };
65
+ const walk = (list) => list
66
+ .map((node) => {
67
+ if (!can(node.permissions))
68
+ return null;
69
+ if (node.children?.length) {
70
+ const children = walk(node.children);
71
+ if (children.length === 0)
72
+ return null;
73
+ return { ...node, children };
74
+ }
75
+ return node;
76
+ })
77
+ .filter((n) => n != null);
78
+ return walk(nodes);
79
+ }
@@ -0,0 +1,36 @@
1
+ /** Built-in admin UI slot identifiers. Plugins register React components against these ids. */
2
+ export declare const AdminSlotIds: {
3
+ /** 文章编辑器 · 摘要面板下方(SEO、自定义 meta 等) */
4
+ readonly ARTICLE_EDITOR_META_AFTER_SUMMARY: "article.editor.meta.afterSummary";
5
+ /** 文章编辑器 · 右侧发布框下方 */
6
+ readonly ARTICLE_EDITOR_SIDEBAR_AFTER_PUBLISH: "article.editor.sidebar.afterPublish";
7
+ };
8
+ export type AdminSlotId = (typeof AdminSlotIds)[keyof typeof AdminSlotIds];
9
+ /** All built-in slot ids — used for manifest validation and JSON Schema enum. */
10
+ export declare const ALL_ADMIN_SLOT_IDS: readonly AdminSlotId[];
11
+ export declare function isAdminSlotId(value: string): value is AdminSlotId;
12
+ export interface AdminSlotDefinition {
13
+ id: AdminSlotId;
14
+ /** Human-readable label for plugin authors / docs */
15
+ title: string;
16
+ /** Core module that owns the host surface */
17
+ module: string;
18
+ description?: string;
19
+ }
20
+ /** Draft fields exposed to article editor slots. Host pages may extend via `context`. */
21
+ export interface ArticleEditorDraftFields {
22
+ title: string;
23
+ summary: string;
24
+ slug: string;
25
+ seoKeywords: string;
26
+ seoDescription: string;
27
+ status: 'draft' | 'publish';
28
+ }
29
+ /** Context passed to `article.editor.*` slot components from the article editor page. */
30
+ export interface ArticleEditorAdminSlotContext {
31
+ articleId?: string;
32
+ draft: ArticleEditorDraftFields;
33
+ patch: <K extends keyof ArticleEditorDraftFields>(key: K, value: ArticleEditorDraftFields[K]) => void;
34
+ /** Host-provided i18n helper (typically `react-i18next` `t`). */
35
+ translate: (key: string) => string;
36
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ALL_ADMIN_SLOT_IDS = exports.AdminSlotIds = void 0;
4
+ exports.isAdminSlotId = isAdminSlotId;
5
+ /** Built-in admin UI slot identifiers. Plugins register React components against these ids. */
6
+ exports.AdminSlotIds = {
7
+ /** 文章编辑器 · 摘要面板下方(SEO、自定义 meta 等) */
8
+ ARTICLE_EDITOR_META_AFTER_SUMMARY: 'article.editor.meta.afterSummary',
9
+ /** 文章编辑器 · 右侧发布框下方 */
10
+ ARTICLE_EDITOR_SIDEBAR_AFTER_PUBLISH: 'article.editor.sidebar.afterPublish',
11
+ };
12
+ /** All built-in slot ids — used for manifest validation and JSON Schema enum. */
13
+ exports.ALL_ADMIN_SLOT_IDS = Object.values(exports.AdminSlotIds);
14
+ function isAdminSlotId(value) {
15
+ return exports.ALL_ADMIN_SLOT_IDS.includes(value);
16
+ }