@publish.os/nextjs 0.0.1-alpha.5 → 0.0.1-alpha.7

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 (400) hide show
  1. package/README.md +3 -5
  2. package/compiler-assets/nextjs/defaults/app/globals.css +6 -0
  3. package/compiler-assets/nextjs/defaults/group/layout.tsx +23 -0
  4. package/compiler-assets/nextjs/defaults/group/leaf.tsx +48 -0
  5. package/compiler-assets/nextjs/defaults/group/page.tsx +50 -0
  6. package/compiler-assets/nextjs/defaults/project/next.config.mjs +45 -0
  7. package/compiler-assets/nextjs/defaults/project/postcss.config.mjs +5 -0
  8. package/compiler-assets/nextjs/defaults/project/tsconfig.json.template +41 -0
  9. package/compiler-assets/nextjs/defaults/root/css/animation.css +90 -0
  10. package/compiler-assets/nextjs/defaults/root/css/components/dialog.css +21 -0
  11. package/compiler-assets/nextjs/defaults/root/css/components/drawer.css +21 -0
  12. package/compiler-assets/nextjs/defaults/root/css/components/menu.css +23 -0
  13. package/compiler-assets/nextjs/defaults/root/css/components/navigation-menu.css +25 -0
  14. package/compiler-assets/nextjs/defaults/root/css/components/popover.css +17 -0
  15. package/compiler-assets/nextjs/defaults/root/css/components/select.css +23 -0
  16. package/compiler-assets/nextjs/defaults/root/css/components/toast.css +19 -0
  17. package/compiler-assets/nextjs/defaults/root/css/components/tooltip.css +15 -0
  18. package/compiler-assets/nextjs/defaults/root/css/layout.css +22 -0
  19. package/compiler-assets/nextjs/defaults/root/css/media.css +81 -0
  20. package/compiler-assets/nextjs/defaults/root/css/radius.css +49 -0
  21. package/compiler-assets/nextjs/defaults/root/css/scrollbar.css +43 -0
  22. package/compiler-assets/nextjs/defaults/root/css/shadow.css +145 -0
  23. package/compiler-assets/nextjs/defaults/root/css/typography.css +607 -0
  24. package/compiler-assets/nextjs/defaults/root/css/zindex.css +39 -0
  25. package/compiler-assets/nextjs/defaults/root/globals.css +191 -0
  26. package/compiler-assets/nextjs/defaults/root/layout.tsx +19 -0
  27. package/compiler-assets/nextjs/defaults/root/page.tsx +61 -0
  28. package/compiler-assets/nextjs/defaults/root/theme.css +50 -0
  29. package/compiler-assets/nextjs/defaults/source/_internal/logger.ts +21 -0
  30. package/compiler-assets/nextjs/shims/generated-group-layout.tsx +19 -0
  31. package/compiler-assets/nextjs/shims/generated-group-page.tsx +18 -0
  32. package/compiler-assets/nextjs/shims/generated-leaf-page.tsx +21 -0
  33. package/compiler-assets/nextjs/shims/global-layout.tsx +134 -0
  34. package/compiler-assets/nextjs/shims/markdown-route.ts +29 -0
  35. package/compiler-assets/nextjs/shims/og-image-route.ts +18 -0
  36. package/compiler-assets/nextjs/shims/powered-by-footer.tsx +40 -0
  37. package/compiler-assets/nextjs/shims/providers.tsx +13 -0
  38. package/compiler-assets/nextjs/shims/proxy.ts +317 -0
  39. package/compiler-assets/nextjs/shims/publish-os-theme-provider.tsx +77 -0
  40. package/compiler-assets/nextjs/shims/root-page.tsx +13 -0
  41. package/compiler-assets/nextjs/shims/theme-defaults.css +177 -0
  42. package/dist/{kernel/components/ui/button.d.cts → button-CFdx-ohV.d.ts} +1 -3
  43. package/dist/cache/tags.js +6 -14
  44. package/dist/compiler.d.ts +100 -0
  45. package/dist/compiler.js +13379 -0
  46. package/dist/config/createNextConfig.d.ts +2 -1
  47. package/dist/config/createNextConfig.js +16 -12
  48. package/dist/icons.d.ts +1 -0
  49. package/dist/icons.js +2 -0
  50. package/dist/index.d.ts +303 -15
  51. package/dist/index.js +30 -1196
  52. package/dist/kernel/components/blocks/AgentActions.d.ts +9 -3
  53. package/dist/kernel/components/blocks/AgentActions.js +114 -200
  54. package/dist/kernel/components/blocks/animated-icon-swap.js +4 -25
  55. package/dist/kernel/components/blocks/color-palette.js +107 -157
  56. package/dist/kernel/components/blocks/design-system-preview.d.ts +38 -6
  57. package/dist/kernel/components/blocks/design-system-preview.js +44 -52
  58. package/dist/kernel/components/blocks/link-playground.js +23 -71
  59. package/dist/kernel/components/blocks/logo-block.js +19 -48
  60. package/dist/kernel/components/blocks/nav-breadcrumb.d.ts +1 -1
  61. package/dist/kernel/components/blocks/nav-breadcrumb.js +28 -52
  62. package/dist/kernel/components/blocks/navbar.d.ts +1 -1
  63. package/dist/kernel/components/blocks/navbar.js +14 -41
  64. package/dist/kernel/components/blocks/navigation-progress-playground.js +56 -149
  65. package/dist/kernel/components/blocks/navigation-progress.js +53 -157
  66. package/dist/kernel/components/blocks/next-prev.d.ts +1 -1
  67. package/dist/kernel/components/blocks/next-prev.js +16 -42
  68. package/dist/kernel/components/blocks/page-list.d.ts +1 -1
  69. package/dist/kernel/components/blocks/page-list.js +11 -16
  70. package/dist/kernel/components/blocks/search.d.ts +13 -2
  71. package/dist/kernel/components/blocks/search.js +116 -247
  72. package/dist/kernel/components/blocks/sidebar-node.d.ts +2 -2
  73. package/dist/kernel/components/blocks/sidebar-node.js +56 -95
  74. package/dist/kernel/components/blocks/sidebar.d.ts +5 -23
  75. package/dist/kernel/components/blocks/sidebar.js +35 -103
  76. package/dist/kernel/components/blocks/theme-toggle.d.ts +7 -3
  77. package/dist/kernel/components/blocks/theme-toggle.js +2 -2
  78. package/dist/kernel/components/blocks/toc.js +42 -178
  79. package/dist/kernel/components/mdx/components/blockquote.js +3 -24
  80. package/dist/kernel/components/mdx/components/callout.d.ts +1 -1
  81. package/dist/kernel/components/mdx/components/callout.js +15 -47
  82. package/dist/kernel/components/mdx/components/code-block.js +2 -2
  83. package/dist/kernel/components/mdx/components/figure-caption.js +6 -24
  84. package/dist/kernel/components/mdx/components/figure.js +9 -36
  85. package/dist/kernel/components/mdx/components/footnotes.js +3 -24
  86. package/dist/kernel/components/mdx/components/heading-copy-link.js +13 -37
  87. package/dist/kernel/components/mdx/components/heading.d.ts +8 -3
  88. package/dist/kernel/components/mdx/components/heading.js +32 -116
  89. package/dist/kernel/components/mdx/components/hr.d.ts +5 -3
  90. package/dist/kernel/components/mdx/components/hr.js +2 -2
  91. package/dist/kernel/components/mdx/components/image-zoom.js +2 -3
  92. package/dist/kernel/components/mdx/components/image.js +23 -63
  93. package/dist/kernel/components/mdx/components/inline-code.js +3 -24
  94. package/dist/kernel/components/mdx/components/kbd.d.ts +9 -4
  95. package/dist/kernel/components/mdx/components/kbd.js +2 -2
  96. package/dist/kernel/components/mdx/components/link.d.ts +1 -2
  97. package/dist/kernel/components/mdx/components/link.js +2 -2
  98. package/dist/kernel/components/mdx/components/paragraph.js +13 -41
  99. package/dist/kernel/components/mdx/components/pre.js +3 -24
  100. package/dist/kernel/components/mdx/components/strikethrough.js +6 -24
  101. package/dist/kernel/components/mdx/components/table.js +2 -2
  102. package/dist/kernel/components/mdx/components/task-list.js +6 -28
  103. package/dist/kernel/components/mdx/components/video-player.js +53 -88
  104. package/dist/kernel/components/mdx/components/video.js +27 -75
  105. package/dist/kernel/components/mdx/error-boundary.d.ts +1 -1
  106. package/dist/kernel/components/mdx/error-boundary.js +12 -15
  107. package/dist/kernel/components/mdx/error-fallback.js +4 -4
  108. package/dist/kernel/components/mdx/mdx.d.ts +68 -11
  109. package/dist/kernel/components/mdx/mdx.js +29 -29
  110. package/dist/kernel/components/mdx/rehype-heading-ids.js +11 -67
  111. package/dist/kernel/components/mdx/types.d.ts +1 -1
  112. package/dist/kernel/components/ui/accordion.js +3 -26
  113. package/dist/kernel/components/ui/breadcrumb-trail.d.ts +26 -8
  114. package/dist/kernel/components/ui/breadcrumb-trail.js +32 -79
  115. package/dist/kernel/components/ui/breadcrumb.d.ts +2 -6
  116. package/dist/kernel/components/ui/breadcrumb.js +21 -70
  117. package/dist/kernel/components/ui/button-group.d.ts +4 -3
  118. package/dist/kernel/components/ui/button-group.js +7 -30
  119. package/dist/kernel/components/ui/button.js +13 -36
  120. package/dist/kernel/components/ui/card.d.ts +2 -2
  121. package/dist/kernel/components/ui/card.js +2 -23
  122. package/dist/kernel/components/ui/dialog.d.ts +9 -9
  123. package/dist/kernel/components/ui/dialog.js +15 -33
  124. package/dist/kernel/components/ui/drawer.d.ts +10 -10
  125. package/dist/kernel/components/ui/drawer.js +15 -33
  126. package/dist/kernel/components/ui/input.js +6 -30
  127. package/dist/kernel/components/ui/kbd.js +10 -31
  128. package/dist/kernel/components/ui/link.d.ts +1 -1
  129. package/dist/kernel/components/ui/link.js +53 -104
  130. package/dist/kernel/components/ui/menu.d.ts +21 -21
  131. package/dist/kernel/components/ui/menu.js +14 -36
  132. package/dist/kernel/components/ui/meta-key.d.ts +9 -4
  133. package/dist/kernel/components/ui/meta-key.js +2 -2
  134. package/dist/kernel/components/ui/navigation-menu.d.ts +14 -14
  135. package/dist/kernel/components/ui/navigation-menu.js +9 -30
  136. package/dist/kernel/components/ui/popover.d.ts +10 -10
  137. package/dist/kernel/components/ui/popover.js +13 -34
  138. package/dist/kernel/components/ui/progress.js +2 -25
  139. package/dist/kernel/components/ui/scroll-area.js +39 -118
  140. package/dist/kernel/components/ui/select.d.ts +15 -15
  141. package/dist/kernel/components/ui/select.js +19 -35
  142. package/dist/kernel/components/ui/separator.js +2 -25
  143. package/dist/kernel/components/ui/table.js +2 -23
  144. package/dist/kernel/components/ui/tabs.js +39 -99
  145. package/dist/kernel/components/ui/tag.d.ts +2 -2
  146. package/dist/kernel/components/ui/tag.js +4 -25
  147. package/dist/kernel/components/ui/text.d.ts +2 -2
  148. package/dist/kernel/components/ui/text.js +112 -131
  149. package/dist/kernel/components/ui/theme-toggle.d.ts +18 -4
  150. package/dist/kernel/components/ui/theme-toggle.js +18 -44
  151. package/dist/kernel/components/ui/toast.d.ts +10 -10
  152. package/dist/kernel/components/ui/toast.js +13 -35
  153. package/dist/kernel/components/ui/tooltip.d.ts +8 -8
  154. package/dist/kernel/components/ui/tooltip.js +9 -30
  155. package/dist/kernel/defaults.registry.d.ts +61 -70
  156. package/dist/kernel/defaults.registry.js +61 -69
  157. package/dist/kernel/framework-icons.d.ts +1 -0
  158. package/dist/kernel/framework-icons.js +39 -0
  159. package/dist/kernel/routes/agent/markdown.js +36 -65
  160. package/dist/kernel/routes/layouts/group.d.ts +1 -1
  161. package/dist/kernel/routes/layouts/group.js +20 -109
  162. package/dist/kernel/routes/metadata/feed.d.ts +1 -2
  163. package/dist/kernel/routes/metadata/feed.js +46 -127
  164. package/dist/kernel/routes/metadata/llms.d.ts +1 -2
  165. package/dist/kernel/routes/metadata/llms.js +42 -120
  166. package/dist/kernel/routes/metadata/og-image.d.ts +11 -1
  167. package/dist/kernel/routes/metadata/og-image.js +264 -198
  168. package/dist/kernel/routes/metadata/robots.d.ts +1 -2
  169. package/dist/kernel/routes/metadata/robots.js +21 -90
  170. package/dist/kernel/routes/metadata/sitemap.d.ts +1 -2
  171. package/dist/kernel/routes/metadata/sitemap.js +36 -102
  172. package/dist/kernel/routes/pages/group.d.ts +1 -1
  173. package/dist/kernel/routes/pages/group.js +42 -137
  174. package/dist/kernel/routes/pages/leaf.d.ts +1 -1
  175. package/dist/kernel/routes/pages/leaf.js +74 -213
  176. package/dist/kernel/routes/pages/root.d.ts +1 -1
  177. package/dist/kernel/routes/pages/root.js +37 -108
  178. package/dist/keyboard-shortcuts.js +69 -141
  179. package/dist/{kernel/components/ui/link.d.cts → link-CYaCRDb6.d.ts} +9 -5
  180. package/dist/resolvers/manifest-resolver.d.ts +3 -3
  181. package/dist/resolvers/manifest-resolver.js +15 -21
  182. package/dist/{kernel/routes/metadata/og-image.d.cts → route-metadata-og-image-BeKKFHg7.d.ts} +12 -16
  183. package/dist/search.d.ts +81 -4
  184. package/dist/search.js +124 -195
  185. package/dist/{kernel/components/blocks/sidebar.d.cts → sidebar-types-Bgchdfd6.d.ts} +2 -10
  186. package/dist/theme-scope.d.ts +15 -0
  187. package/dist/theme-scope.js +23 -0
  188. package/dist/types-B_b3C0U6.d.ts +63 -0
  189. package/dist/types-CIwwieNw.d.ts +127 -0
  190. package/dist/types-DHBm7-j6.d.ts +57 -0
  191. package/dist/types-sM2g9nW0.d.ts +12 -0
  192. package/dist/types.d.ts +0 -1
  193. package/dist/types.js +1 -1
  194. package/dist/utils/cn.d.ts +5 -9
  195. package/dist/utils/cn.js +13 -7
  196. package/dist/utils/heading-ids.js +20 -47
  197. package/dist/utils/pretty-date.js +7 -13
  198. package/init/seed/minimal/publish.os/assets/logo/publish-dev-logo.dark.png +0 -0
  199. package/init/seed/minimal/publish.os/assets/logo/publish-dev-logo.png +0 -0
  200. package/init/seed/minimal/publish.os/docs/content/get-started.mdx +54 -0
  201. package/init/seed/minimal/publish.os/docs/content/groups.mdx +31 -0
  202. package/init/seed/minimal/publish.os/docs/content/theme.mdx +64 -0
  203. package/init/seed/minimal/publish.os/publish.os.config.json +21 -0
  204. package/init/seed/minimal/publish.os/theme.css +47 -0
  205. package/init/seed/minimal/seed.json +13 -0
  206. package/package.json +470 -40
  207. package/release/{package.json → app/lucide/package.json} +14 -7
  208. package/release/app/lucide/pnpm-lock.yaml.template +2905 -0
  209. package/release/app/lucide/pnpm-workspace.yaml +11 -0
  210. package/release/app/phosphor/package.json +30 -0
  211. package/release/app/phosphor/pnpm-lock.yaml.template +2908 -0
  212. package/release/app/phosphor/pnpm-workspace.yaml +11 -0
  213. package/release/app/tabler/package.json +30 -0
  214. package/release/app/tabler/pnpm-lock.yaml.template +2911 -0
  215. package/release/app/tabler/pnpm-workspace.yaml +11 -0
  216. package/release/compiler/package.json +20 -0
  217. package/release/compiler/pnpm-lock.yaml.template +2432 -0
  218. package/release/compiler/pnpm-workspace.yaml +11 -0
  219. package/release/release.json +31 -7
  220. package/dist/cache/tags.cjs +0 -79
  221. package/dist/cache/tags.d.cts +0 -13
  222. package/dist/config/createNextConfig.cjs +0 -52
  223. package/dist/config/createNextConfig.d.cts +0 -8
  224. package/dist/config.cjs +0 -78
  225. package/dist/config.d.cts +0 -101
  226. package/dist/config.d.ts +0 -101
  227. package/dist/config.js +0 -48
  228. package/dist/index.cjs +0 -1266
  229. package/dist/index.d.cts +0 -18
  230. package/dist/kernel/components/blocks/AgentActions.cjs +0 -425
  231. package/dist/kernel/components/blocks/AgentActions.d.cts +0 -52
  232. package/dist/kernel/components/blocks/animated-icon-swap.cjs +0 -101
  233. package/dist/kernel/components/blocks/animated-icon-swap.d.cts +0 -16
  234. package/dist/kernel/components/blocks/color-palette.cjs +0 -413
  235. package/dist/kernel/components/blocks/color-palette.d.cts +0 -7
  236. package/dist/kernel/components/blocks/design-system-preview.cjs +0 -593
  237. package/dist/kernel/components/blocks/design-system-preview.d.cts +0 -29
  238. package/dist/kernel/components/blocks/link-playground.cjs +0 -816
  239. package/dist/kernel/components/blocks/link-playground.d.cts +0 -5
  240. package/dist/kernel/components/blocks/logo-block.cjs +0 -156
  241. package/dist/kernel/components/blocks/logo-block.d.cts +0 -21
  242. package/dist/kernel/components/blocks/nav-breadcrumb.cjs +0 -122
  243. package/dist/kernel/components/blocks/nav-breadcrumb.d.cts +0 -11
  244. package/dist/kernel/components/blocks/navbar.cjs +0 -154
  245. package/dist/kernel/components/blocks/navbar.d.cts +0 -16
  246. package/dist/kernel/components/blocks/navigation-progress-playground.cjs +0 -735
  247. package/dist/kernel/components/blocks/navigation-progress-playground.d.cts +0 -5
  248. package/dist/kernel/components/blocks/navigation-progress.cjs +0 -270
  249. package/dist/kernel/components/blocks/navigation-progress.d.cts +0 -16
  250. package/dist/kernel/components/blocks/next-prev.cjs +0 -142
  251. package/dist/kernel/components/blocks/next-prev.d.cts +0 -11
  252. package/dist/kernel/components/blocks/page-list.cjs +0 -59
  253. package/dist/kernel/components/blocks/page-list.d.cts +0 -11
  254. package/dist/kernel/components/blocks/search.cjs +0 -717
  255. package/dist/kernel/components/blocks/search.d.cts +0 -77
  256. package/dist/kernel/components/blocks/sidebar-node.cjs +0 -309
  257. package/dist/kernel/components/blocks/sidebar-node.d.cts +0 -8
  258. package/dist/kernel/components/blocks/sidebar.cjs +0 -317
  259. package/dist/kernel/components/blocks/theme-toggle.cjs +0 -31
  260. package/dist/kernel/components/blocks/theme-toggle.d.cts +0 -6
  261. package/dist/kernel/components/blocks/toc.cjs +0 -356
  262. package/dist/kernel/components/blocks/toc.d.cts +0 -10
  263. package/dist/kernel/components/mdx/components/blockquote.cjs +0 -66
  264. package/dist/kernel/components/mdx/components/blockquote.d.cts +0 -6
  265. package/dist/kernel/components/mdx/components/callout.cjs +0 -137
  266. package/dist/kernel/components/mdx/components/callout.d.cts +0 -18
  267. package/dist/kernel/components/mdx/components/code-block.cjs +0 -39
  268. package/dist/kernel/components/mdx/components/code-block.d.cts +0 -9
  269. package/dist/kernel/components/mdx/components/figure-caption.cjs +0 -63
  270. package/dist/kernel/components/mdx/components/figure-caption.d.cts +0 -6
  271. package/dist/kernel/components/mdx/components/figure.cjs +0 -78
  272. package/dist/kernel/components/mdx/components/figure.d.cts +0 -10
  273. package/dist/kernel/components/mdx/components/footnotes.cjs +0 -66
  274. package/dist/kernel/components/mdx/components/footnotes.d.cts +0 -6
  275. package/dist/kernel/components/mdx/components/heading-copy-link.cjs +0 -108
  276. package/dist/kernel/components/mdx/components/heading-copy-link.d.cts +0 -23
  277. package/dist/kernel/components/mdx/components/heading.cjs +0 -166
  278. package/dist/kernel/components/mdx/components/heading.d.cts +0 -8
  279. package/dist/kernel/components/mdx/components/hr.cjs +0 -34
  280. package/dist/kernel/components/mdx/components/hr.d.cts +0 -9
  281. package/dist/kernel/components/mdx/components/image-zoom.cjs +0 -49
  282. package/dist/kernel/components/mdx/components/image-zoom.d.cts +0 -10
  283. package/dist/kernel/components/mdx/components/image.cjs +0 -192
  284. package/dist/kernel/components/mdx/components/image.d.cts +0 -21
  285. package/dist/kernel/components/mdx/components/inline-code.cjs +0 -66
  286. package/dist/kernel/components/mdx/components/inline-code.d.cts +0 -6
  287. package/dist/kernel/components/mdx/components/kbd.cjs +0 -34
  288. package/dist/kernel/components/mdx/components/kbd.d.cts +0 -10
  289. package/dist/kernel/components/mdx/components/link.cjs +0 -49
  290. package/dist/kernel/components/mdx/components/link.d.cts +0 -11
  291. package/dist/kernel/components/mdx/components/paragraph.cjs +0 -87
  292. package/dist/kernel/components/mdx/components/paragraph.d.cts +0 -5
  293. package/dist/kernel/components/mdx/components/pre.cjs +0 -66
  294. package/dist/kernel/components/mdx/components/pre.d.cts +0 -6
  295. package/dist/kernel/components/mdx/components/strikethrough.cjs +0 -63
  296. package/dist/kernel/components/mdx/components/strikethrough.d.cts +0 -6
  297. package/dist/kernel/components/mdx/components/table.cjs +0 -59
  298. package/dist/kernel/components/mdx/components/table.d.cts +0 -10
  299. package/dist/kernel/components/mdx/components/task-list.cjs +0 -88
  300. package/dist/kernel/components/mdx/components/task-list.d.cts +0 -8
  301. package/dist/kernel/components/mdx/components/video-player.cjs +0 -173
  302. package/dist/kernel/components/mdx/components/video-player.d.cts +0 -18
  303. package/dist/kernel/components/mdx/components/video.cjs +0 -185
  304. package/dist/kernel/components/mdx/components/video.d.cts +0 -15
  305. package/dist/kernel/components/mdx/error-boundary.cjs +0 -62
  306. package/dist/kernel/components/mdx/error-boundary.d.cts +0 -8
  307. package/dist/kernel/components/mdx/error-fallback.cjs +0 -58
  308. package/dist/kernel/components/mdx/error-fallback.d.cts +0 -9
  309. package/dist/kernel/components/mdx/mdx.cjs +0 -141
  310. package/dist/kernel/components/mdx/mdx.d.cts +0 -22
  311. package/dist/kernel/components/mdx/rehype-heading-ids.cjs +0 -113
  312. package/dist/kernel/components/mdx/rehype-heading-ids.d.cts +0 -10
  313. package/dist/kernel/components/mdx/types.cjs +0 -18
  314. package/dist/kernel/components/mdx/types.d.cts +0 -18
  315. package/dist/kernel/components/ui/accordion.cjs +0 -104
  316. package/dist/kernel/components/ui/accordion.d.cts +0 -16
  317. package/dist/kernel/components/ui/breadcrumb-trail.cjs +0 -238
  318. package/dist/kernel/components/ui/breadcrumb-trail.d.cts +0 -13
  319. package/dist/kernel/components/ui/breadcrumb.cjs +0 -399
  320. package/dist/kernel/components/ui/breadcrumb.d.cts +0 -52
  321. package/dist/kernel/components/ui/button-group.cjs +0 -143
  322. package/dist/kernel/components/ui/button-group.d.cts +0 -19
  323. package/dist/kernel/components/ui/button.cjs +0 -139
  324. package/dist/kernel/components/ui/card.cjs +0 -133
  325. package/dist/kernel/components/ui/card.d.cts +0 -17
  326. package/dist/kernel/components/ui/dialog.cjs +0 -149
  327. package/dist/kernel/components/ui/dialog.d.cts +0 -22
  328. package/dist/kernel/components/ui/drawer.cjs +0 -163
  329. package/dist/kernel/components/ui/drawer.d.cts +0 -24
  330. package/dist/kernel/components/ui/input.cjs +0 -96
  331. package/dist/kernel/components/ui/input.d.cts +0 -18
  332. package/dist/kernel/components/ui/kbd.cjs +0 -105
  333. package/dist/kernel/components/ui/kbd.d.cts +0 -13
  334. package/dist/kernel/components/ui/link.cjs +0 -253
  335. package/dist/kernel/components/ui/menu.cjs +0 -301
  336. package/dist/kernel/components/ui/menu.d.cts +0 -70
  337. package/dist/kernel/components/ui/meta-key.cjs +0 -34
  338. package/dist/kernel/components/ui/meta-key.d.cts +0 -12
  339. package/dist/kernel/components/ui/navigation-menu.cjs +0 -253
  340. package/dist/kernel/components/ui/navigation-menu.d.cts +0 -47
  341. package/dist/kernel/components/ui/popover.cjs +0 -168
  342. package/dist/kernel/components/ui/popover.d.cts +0 -24
  343. package/dist/kernel/components/ui/progress.cjs +0 -112
  344. package/dist/kernel/components/ui/progress.d.cts +0 -16
  345. package/dist/kernel/components/ui/scroll-area.cjs +0 -413
  346. package/dist/kernel/components/ui/scroll-area.d.cts +0 -58
  347. package/dist/kernel/components/ui/select.cjs +0 -244
  348. package/dist/kernel/components/ui/select.d.cts +0 -40
  349. package/dist/kernel/components/ui/separator.cjs +0 -73
  350. package/dist/kernel/components/ui/separator.d.cts +0 -8
  351. package/dist/kernel/components/ui/table.cjs +0 -131
  352. package/dist/kernel/components/ui/table.d.cts +0 -11
  353. package/dist/kernel/components/ui/tabs.cjs +0 -450
  354. package/dist/kernel/components/ui/tabs.d.cts +0 -82
  355. package/dist/kernel/components/ui/tag.cjs +0 -104
  356. package/dist/kernel/components/ui/tag.d.cts +0 -14
  357. package/dist/kernel/components/ui/text.cjs +0 -184
  358. package/dist/kernel/components/ui/text.d.cts +0 -17
  359. package/dist/kernel/components/ui/theme-toggle.cjs +0 -108
  360. package/dist/kernel/components/ui/theme-toggle.d.cts +0 -10
  361. package/dist/kernel/components/ui/toast.cjs +0 -154
  362. package/dist/kernel/components/ui/toast.d.cts +0 -26
  363. package/dist/kernel/components/ui/tooltip.cjs +0 -127
  364. package/dist/kernel/components/ui/tooltip.d.cts +0 -20
  365. package/dist/kernel/defaults.registry.cjs +0 -541
  366. package/dist/kernel/defaults.registry.d.cts +0 -469
  367. package/dist/kernel/routes/agent/markdown.cjs +0 -202
  368. package/dist/kernel/routes/agent/markdown.d.cts +0 -58
  369. package/dist/kernel/routes/layouts/group.cjs +0 -181
  370. package/dist/kernel/routes/layouts/group.d.cts +0 -20
  371. package/dist/kernel/routes/metadata/feed.cjs +0 -293
  372. package/dist/kernel/routes/metadata/feed.d.cts +0 -20
  373. package/dist/kernel/routes/metadata/llms.cjs +0 -239
  374. package/dist/kernel/routes/metadata/llms.d.cts +0 -26
  375. package/dist/kernel/routes/metadata/og-image.cjs +0 -630
  376. package/dist/kernel/routes/metadata/robots.cjs +0 -148
  377. package/dist/kernel/routes/metadata/robots.d.cts +0 -6
  378. package/dist/kernel/routes/metadata/sitemap.cjs +0 -192
  379. package/dist/kernel/routes/metadata/sitemap.d.cts +0 -8
  380. package/dist/kernel/routes/pages/group.cjs +0 -263
  381. package/dist/kernel/routes/pages/group.d.cts +0 -17
  382. package/dist/kernel/routes/pages/leaf.cjs +0 -421
  383. package/dist/kernel/routes/pages/leaf.d.cts +0 -36
  384. package/dist/kernel/routes/pages/root.cjs +0 -229
  385. package/dist/kernel/routes/pages/root.d.cts +0 -16
  386. package/dist/keyboard-shortcuts.cjs +0 -345
  387. package/dist/keyboard-shortcuts.d.cts +0 -34
  388. package/dist/resolvers/manifest-resolver.cjs +0 -111
  389. package/dist/resolvers/manifest-resolver.d.cts +0 -13
  390. package/dist/search.cjs +0 -411
  391. package/dist/search.d.cts +0 -20
  392. package/dist/types.cjs +0 -30
  393. package/dist/types.d.cts +0 -269
  394. package/dist/utils/cn.cjs +0 -49
  395. package/dist/utils/cn.d.cts +0 -15
  396. package/dist/utils/heading-ids.cjs +0 -119
  397. package/dist/utils/heading-ids.d.cts +0 -15
  398. package/dist/utils/pretty-date.cjs +0 -55
  399. package/dist/utils/pretty-date.d.cts +0 -6
  400. package/release/pnpm-lock.yaml +0 -1215
@@ -1,5 +1,10 @@
1
- // src/kernel/routes/pages/leaf.tsx
1
+ // src/route-page-leaf.tsx
2
+ import { tags } from "@publish.os/nextjs/cache/tags";
2
3
  import { MDX } from "@publish.os/nextjs/mdx";
4
+ import {
5
+ listStaticParams,
6
+ resolveLeaf
7
+ } from "@publish.os/nextjs/resolvers/manifest-resolver";
3
8
  import { cacheLife, cacheTag } from "next/cache";
4
9
  import { notFound } from "next/navigation";
5
10
  import {
@@ -8,64 +13,10 @@ import {
8
13
  isValidElement
9
14
  } from "react";
10
15
 
11
- // src/cache/tags.ts
12
- import { createHash } from "crypto";
13
- var MAX_TAG_LEN = 256;
14
- var MAX_SEGMENT_LEN = 80;
15
- var TAG_PATTERN = /^[a-z0-9:_./-]+$/;
16
- function sha256(value) {
17
- return createHash("sha256").update(value).digest("hex").slice(0, 16);
18
- }
19
- function safeSegment(value) {
20
- const raw = value.trim().toLowerCase() || "root";
21
- const normalized = raw.replace(/\\/g, "/").replace(/\/+/g, "/").replace(/^\//, "").replace(/\/$/, "").replace(/[^a-z0-9:_./-]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
22
- const segment = normalized || "root";
23
- if (segment.length <= MAX_SEGMENT_LEN) return segment;
24
- return `${segment.slice(0, 48)}.${sha256(segment)}`;
25
- }
26
- function assertTag(tag) {
27
- if (tag.length > MAX_TAG_LEN || !TAG_PATTERN.test(tag)) {
28
- return `tag:${sha256(tag)}`;
29
- }
30
- return tag;
31
- }
32
- var tags = {
33
- site() {
34
- return "site";
35
- },
36
- pages() {
37
- return "pages";
38
- },
39
- group(group) {
40
- return assertTag(`group:${safeSegment(group)}`);
41
- },
42
- page(group, slug) {
43
- const path = Array.isArray(slug) ? slug.join("/") : slug;
44
- return assertTag(`page:${safeSegment(group)}:${safeSegment(path)}`);
45
- },
46
- manifest(contentHash) {
47
- return assertTag(`manifest:${safeSegment(contentHash)}`);
48
- },
49
- sitemap() {
50
- return "sitemap";
51
- },
52
- robots() {
53
- return "robots";
54
- },
55
- llms(scope = "root") {
56
- return assertTag(`llms:${safeSegment(scope)}`);
57
- },
58
- feed(format, scope = "site") {
59
- return assertTag(`feed:${safeSegment(format)}:${safeSegment(scope)}`);
60
- }
61
- };
62
-
63
- // src/internal/utils/logger.ts
64
- var isDev = process.env.NODE_ENV !== "production";
65
- var isDebugEnabled = process.env.NEXT_PRIVATE_DEBUG_CACHE === "1";
66
- var log = {
16
+ // src/lib/runtime/logging/logger.ts
17
+ var isDev = process.env.NODE_ENV !== "production", isDebugEnabled = process.env.NEXT_PRIVATE_DEBUG_CACHE === "1", log = {
67
18
  debug(...args) {
68
- if (isDev && isDebugEnabled) console.debug("[publish.os:debug]", ...args);
19
+ isDev && isDebugEnabled && console.debug("[publish.os:debug]", ...args);
69
20
  },
70
21
  info(...args) {
71
22
  console.log("[publish.os]", ...args);
@@ -78,68 +29,14 @@ var log = {
78
29
  }
79
30
  };
80
31
 
81
- // src/resolvers/manifest-resolver.ts
82
- function findNodeInTree(nodes, id) {
83
- for (const node of nodes) {
84
- if (node.type === "page") {
85
- if (node.fileID === id) return node;
86
- } else if (node.id === id) {
87
- return node;
88
- }
89
- if (node.type === "section" || node.type === "folder") {
90
- const found = findNodeInTree(node.children, id);
91
- if (found) return found;
92
- }
93
- }
94
- return null;
95
- }
96
- function pageNode(page) {
97
- return {
98
- type: "page",
99
- fileID: page.fileID,
100
- title: page.title,
101
- path: page.path,
102
- group: page.group,
103
- description: page.description,
104
- status: page.status,
105
- publishedAt: page.publishedAt,
106
- updatedAt: page.updatedAt,
107
- authors: page.authors,
108
- tags: page.tags,
109
- meta: page.meta
110
- };
111
- }
112
- function resolveLeaf(manifest, group, slug) {
113
- const slugPath = Array.isArray(slug) ? slug.join("/") : slug;
114
- const page = manifest.pages.find((p) => p.group === group && p.slug === slugPath) ?? null;
115
- if (!page) return null;
116
- const groupData = manifest.groups[group];
117
- if (!groupData) return null;
118
- return {
119
- site: manifest.site,
120
- tree: groupData.tree,
121
- node: findNodeInTree(groupData.tree, page.fileID) ?? pageNode(page),
122
- page,
123
- currentPath: page.path,
124
- group
125
- };
126
- }
127
- function listStaticParams(manifest, group) {
128
- const groupData = manifest.groups[group];
129
- if (!groupData) return [];
130
- return groupData.pages.map((page) => ({ slug: page.slug.split("/") }));
131
- }
132
-
133
- // src/kernel/routes/pages/agent-metadata.ts
32
+ // src/lib/runtime/metadata/agent-metadata.ts
134
33
  function normalizePath(path) {
135
- const prefixed = path.startsWith("/") ? path : `/${path}`;
136
- if (prefixed === "/") return prefixed;
137
- return prefixed.replace(/\/+$/, "");
34
+ let prefixed = path.startsWith("/") ? path : `/${path}`;
35
+ return prefixed === "/" ? prefixed : prefixed.replace(/\/+$/, "");
138
36
  }
139
37
  function markdownPathForHtmlPath(path) {
140
- const normalized = normalizePath(path);
141
- if (normalized === "/") return "/index.md";
142
- return `${normalized}.md`;
38
+ let normalized = normalizePath(path);
39
+ return normalized === "/" ? "/index.md" : `${normalized}.md`;
143
40
  }
144
41
  function agentReadableAlternates({
145
42
  canonicalPath,
@@ -155,15 +52,14 @@ function agentReadableAlternates({
155
52
  };
156
53
  }
157
54
 
158
- // src/kernel/routes/pages/social-metadata.ts
159
- function isDevelopment() {
160
- return process.env.NODE_ENV === "development";
161
- }
162
- function absoluteUrl(path, siteUrl) {
163
- if (/^https:\/\//.test(path)) return path;
164
- if (isDevelopment()) return path;
165
- if (!siteUrl) return path;
166
- return new URL(path, siteUrl).toString();
55
+ // src/lib/runtime/metadata/social-metadata.ts
56
+ function absoluteUrl({
57
+ path,
58
+ siteUrl
59
+ }) {
60
+ if (/^https?:\/\//i.test(path)) return path;
61
+ if (siteUrl)
62
+ return new URL(path, siteUrl).toString();
167
63
  }
168
64
  function createSocialMetadata({
169
65
  canonicalPath,
@@ -173,26 +69,20 @@ function createSocialMetadata({
173
69
  title,
174
70
  type = "website"
175
71
  }) {
176
- const key = ogManifest?.routes?.[canonicalPath];
177
- const rootKey = ogManifest?.routes?.["/"];
178
- const entry = (key ? ogManifest?.entries?.[key] : void 0) ?? (rootKey ? ogManifest?.entries?.[rootKey] : void 0);
179
- if (!entry) {
180
- return {
181
- openGraph: {
182
- description,
183
- title,
184
- type,
185
- url: canonicalPath
186
- },
187
- twitter: {
188
- card: "summary",
189
- description,
190
- title
191
- }
192
- };
193
- }
194
- const imageUrl = absoluteUrl(entry.url, manifest.site.url);
195
- return {
72
+ let key = ogManifest?.routes?.[canonicalPath], rootKey = ogManifest?.routes?.["/"], entry = (key ? ogManifest?.entries?.[key] : void 0) ?? (rootKey ? ogManifest?.entries?.[rootKey] : void 0), url = absoluteUrl({ path: canonicalPath, siteUrl: manifest.site.url }), imageUrl = entry ? absoluteUrl({ path: entry.url, siteUrl: manifest.site.url }) : void 0;
73
+ return !entry || !imageUrl ? {
74
+ openGraph: {
75
+ description,
76
+ title,
77
+ type,
78
+ ...url ? { url } : {}
79
+ },
80
+ twitter: {
81
+ card: "summary",
82
+ description,
83
+ title
84
+ }
85
+ } : {
196
86
  openGraph: {
197
87
  description,
198
88
  images: [
@@ -206,7 +96,7 @@ function createSocialMetadata({
206
96
  siteName: manifest.site.name,
207
97
  title,
208
98
  type,
209
- url: canonicalPath
99
+ ...url ? { url } : {}
210
100
  },
211
101
  twitter: {
212
102
  card: "summary_large_image",
@@ -217,28 +107,24 @@ function createSocialMetadata({
217
107
  };
218
108
  }
219
109
 
220
- // src/kernel/routes/pages/leaf.tsx
110
+ // src/route-page-leaf.tsx
221
111
  import { jsx, jsxs } from "react/jsx-runtime";
222
- var manifests = /* @__PURE__ */ new Map();
223
- var leaves = /* @__PURE__ */ new Map();
224
- var poweredByFooters = /* @__PURE__ */ new Map();
112
+ var manifests = /* @__PURE__ */ new Map(), leaves = /* @__PURE__ */ new Map(), poweredByFooters = /* @__PURE__ */ new Map();
225
113
  function hasClassName(value, className) {
226
- return typeof value === "string" && value.split(/\s+/).includes(className);
114
+ return typeof value == "string" && value.split(/\s+/).includes(className);
227
115
  }
228
116
  function isPlatformMdx(value) {
229
- return value === MDX || typeof value === "function" && value.__publishOsMdx === true;
117
+ return value === MDX || typeof value == "function" && value.__publishOsMdx === !0;
230
118
  }
231
119
  function findMdxPath(node) {
232
- if (!isValidElement(node)) {
120
+ if (!isValidElement(node))
233
121
  return null;
234
- }
235
- if (isPlatformMdx(node.type)) {
122
+ if (isPlatformMdx(node.type))
236
123
  return [];
237
- }
238
- const children = Children.toArray(node.props.children);
124
+ let children = Children.toArray(node.props.children);
239
125
  for (let index = 0; index < children.length; index += 1) {
240
- const childPath = findMdxPath(children[index]);
241
- if (childPath) {
126
+ let childPath = findMdxPath(children[index]);
127
+ if (childPath)
242
128
  return [
243
129
  {
244
130
  childIndex: index,
@@ -247,22 +133,19 @@ function findMdxPath(node) {
247
133
  },
248
134
  ...childPath
249
135
  ];
250
- }
251
136
  }
252
137
  return null;
253
138
  }
254
139
  function targetDepthForMdxPath(path) {
255
140
  for (let index = path.length - 1; index >= 0; index -= 1) {
256
- const entry = path[index];
257
- if (entry && entry.childIndex < entry.children.length - 1) {
141
+ let entry = path[index];
142
+ if (entry && entry.childIndex < entry.children.length - 1)
258
143
  return index;
259
- }
260
144
  }
261
145
  for (let index = path.length - 1; index >= 0; index -= 1) {
262
- const entry = path[index];
263
- if (!hasClassName(entry?.element.props.className, "markdown-prose")) {
146
+ let entry = path[index];
147
+ if (!hasClassName(entry?.element.props.className, "markdown-prose"))
264
148
  return index;
265
- }
266
149
  }
267
150
  return 0;
268
151
  }
@@ -272,15 +155,12 @@ function appendFooterAtPath({
272
155
  node,
273
156
  targetPath
274
157
  }) {
275
- if (!isValidElement(node)) {
158
+ if (!isValidElement(node))
276
159
  return node;
277
- }
278
- const children = Children.toArray(node.props.children);
279
- if (currentPath.length === targetPath.length) {
160
+ let children = Children.toArray(node.props.children);
161
+ if (currentPath.length === targetPath.length)
280
162
  return cloneElement(node, void 0, ...children, footer);
281
- }
282
- const childIndex = targetPath[currentPath.length];
283
- const nextChildren = children.map(
163
+ let childIndex = targetPath[currentPath.length], nextChildren = children.map(
284
164
  (child, index) => index === childIndex ? appendFooterAtPath({
285
165
  currentPath: [...currentPath, index],
286
166
  footer,
@@ -294,15 +174,13 @@ function appendPoweredByFooter({
294
174
  footer,
295
175
  node
296
176
  }) {
297
- const path = findMdxPath(node);
298
- if (!path?.length) {
299
- return { node, placed: false };
300
- }
301
- const targetDepth = targetDepthForMdxPath(path);
302
- const targetPath = path.slice(0, targetDepth).map((entry) => entry.childIndex);
177
+ let path = findMdxPath(node);
178
+ if (!path?.length)
179
+ return { node, placed: !1 };
180
+ let targetDepth = targetDepthForMdxPath(path), targetPath = path.slice(0, targetDepth).map((entry) => entry.childIndex);
303
181
  return {
304
182
  node: appendFooterAtPath({ footer, node, targetPath }),
305
- placed: true
183
+ placed: !0
306
184
  };
307
185
  }
308
186
  async function CachedLeafPage({
@@ -310,25 +188,17 @@ async function CachedLeafPage({
310
188
  slug
311
189
  }) {
312
190
  "use cache";
313
- cacheLife("page");
314
- cacheTag(
191
+ cacheLife("page"), cacheTag(
315
192
  tags.site(),
316
193
  tags.pages(),
317
194
  tags.group(group),
318
195
  tags.page(group, slug)
319
196
  );
320
- const manifest = manifests.get(group);
321
- const Leaf = leaves.get(group);
322
- const PoweredByFooter = poweredByFooters.get(group);
323
- if (!manifest || !Leaf) notFound();
324
- cacheTag(tags.manifest(manifest.contentHash));
325
- log.debug("[cache]", `${group}/${slug.join("/")}`);
326
- const resolved = resolveLeaf(manifest, group, slug);
327
- if (!resolved) notFound();
328
- const attribution = manifest.attribution?.[group] ?? { enabled: false };
329
- const leaf = await Leaf(resolved);
330
- const footer = attribution.enabled && PoweredByFooter ? /* @__PURE__ */ jsx(PoweredByFooter, { attribution }) : null;
331
- const placed = footer ? appendPoweredByFooter({ footer, node: leaf }) : { node: leaf, placed: true };
197
+ let manifest = manifests.get(group), Leaf = leaves.get(group), PoweredByFooter = poweredByFooters.get(group);
198
+ (!manifest || !Leaf) && notFound(), cacheTag(tags.manifest(manifest.contentHash)), log.debug("[cache]", `${group}/${slug.join("/")}`);
199
+ let resolved = resolveLeaf(manifest, group, slug);
200
+ resolved || notFound();
201
+ let attribution = manifest.attribution?.[group] ?? { enabled: !1 }, leaf = await Leaf(resolved), footer = attribution.enabled && PoweredByFooter ? /* @__PURE__ */ jsx(PoweredByFooter, { attribution }) : null, placed = footer ? appendPoweredByFooter({ footer, node: leaf }) : { node: leaf, placed: !0 };
332
202
  return /* @__PURE__ */ jsxs("div", { className: "flex min-h-full min-w-0 flex-1 flex-col", children: [
333
203
  placed.node,
334
204
  footer && !placed.placed ? footer : null
@@ -340,17 +210,9 @@ function createLeafPage({
340
210
  Leaf,
341
211
  PoweredByFooter
342
212
  }) {
343
- manifests.set(group, manifest);
344
- leaves.set(group, Leaf);
345
- if (PoweredByFooter) {
346
- poweredByFooters.set(group, PoweredByFooter);
347
- } else {
348
- poweredByFooters.delete(group);
349
- }
350
- return async function Page({ params }) {
351
- const { slug = [] } = await params;
352
- log.debug("[render]", `${group}/${slug.join("/")}`);
353
- return /* @__PURE__ */ jsx(CachedLeafPage, { group, slug });
213
+ return manifests.set(group, manifest), leaves.set(group, Leaf), PoweredByFooter ? poweredByFooters.set(group, PoweredByFooter) : poweredByFooters.delete(group), async function({ params }) {
214
+ let { slug = [] } = await params;
215
+ return log.debug("[render]", `${group}/${slug.join("/")}`), /* @__PURE__ */ jsx(CachedLeafPage, { group, slug });
354
216
  };
355
217
  }
356
218
  function createLeafMetadata({
@@ -358,14 +220,13 @@ function createLeafMetadata({
358
220
  manifest,
359
221
  ogManifest
360
222
  }) {
361
- return async function generateMetadata({
223
+ return async function({
362
224
  params
363
225
  }) {
364
- const { slug = [] } = await params;
226
+ let { slug = [] } = await params;
365
227
  log.debug("[metadata]", `${group}/${slug.join("/")}`);
366
- const resolved = resolveLeaf(manifest, group, slug);
367
- if (!resolved) return {};
368
- return {
228
+ let resolved = resolveLeaf(manifest, group, slug);
229
+ return resolved ? {
369
230
  title: resolved.page.title,
370
231
  description: resolved.page.description,
371
232
  alternates: agentReadableAlternates({
@@ -381,11 +242,11 @@ function createLeafMetadata({
381
242
  title: resolved.page.title,
382
243
  type: "article"
383
244
  })
384
- };
245
+ } : {};
385
246
  };
386
247
  }
387
248
  function createLeafStaticParams({ group, manifest }) {
388
- return function generateStaticParams() {
249
+ return function() {
389
250
  return listStaticParams(manifest, group);
390
251
  };
391
252
  }
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Metadata } from 'next';
3
3
  import { ReactElement } from 'react';
4
+ import { O as OgManifestLike } from '../../../route-metadata-og-image-BeKKFHg7.js';
4
5
  import { RootPageProps, ManifestLike } from '../../../types.js';
5
- import { OgManifestLike } from '../metadata/og-image.js';
6
6
 
7
7
  type RootPageComponent = (props: RootPageProps) => ReactElement | Promise<ReactElement>;
8
8
  type RootRouteConfig = {
@@ -1,64 +1,11 @@
1
- // src/kernel/routes/pages/root.tsx
1
+ // src/route-page-root.tsx
2
+ import { tags } from "@publish.os/nextjs/cache/tags";
2
3
  import { cacheLife, cacheTag } from "next/cache";
3
4
 
4
- // src/cache/tags.ts
5
- import { createHash } from "crypto";
6
- var MAX_TAG_LEN = 256;
7
- var MAX_SEGMENT_LEN = 80;
8
- var TAG_PATTERN = /^[a-z0-9:_./-]+$/;
9
- function sha256(value) {
10
- return createHash("sha256").update(value).digest("hex").slice(0, 16);
11
- }
12
- function safeSegment(value) {
13
- const raw = value.trim().toLowerCase() || "root";
14
- const normalized = raw.replace(/\\/g, "/").replace(/\/+/g, "/").replace(/^\//, "").replace(/\/$/, "").replace(/[^a-z0-9:_./-]+/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
15
- const segment = normalized || "root";
16
- if (segment.length <= MAX_SEGMENT_LEN) return segment;
17
- return `${segment.slice(0, 48)}.${sha256(segment)}`;
18
- }
19
- function assertTag(tag) {
20
- if (tag.length > MAX_TAG_LEN || !TAG_PATTERN.test(tag)) {
21
- return `tag:${sha256(tag)}`;
22
- }
23
- return tag;
24
- }
25
- var tags = {
26
- site() {
27
- return "site";
28
- },
29
- pages() {
30
- return "pages";
31
- },
32
- group(group) {
33
- return assertTag(`group:${safeSegment(group)}`);
34
- },
35
- page(group, slug) {
36
- const path = Array.isArray(slug) ? slug.join("/") : slug;
37
- return assertTag(`page:${safeSegment(group)}:${safeSegment(path)}`);
38
- },
39
- manifest(contentHash) {
40
- return assertTag(`manifest:${safeSegment(contentHash)}`);
41
- },
42
- sitemap() {
43
- return "sitemap";
44
- },
45
- robots() {
46
- return "robots";
47
- },
48
- llms(scope = "root") {
49
- return assertTag(`llms:${safeSegment(scope)}`);
50
- },
51
- feed(format, scope = "site") {
52
- return assertTag(`feed:${safeSegment(format)}:${safeSegment(scope)}`);
53
- }
54
- };
55
-
56
- // src/internal/utils/logger.ts
57
- var isDev = process.env.NODE_ENV !== "production";
58
- var isDebugEnabled = process.env.NEXT_PRIVATE_DEBUG_CACHE === "1";
59
- var log = {
5
+ // src/lib/runtime/logging/logger.ts
6
+ var isDev = process.env.NODE_ENV !== "production", isDebugEnabled = process.env.NEXT_PRIVATE_DEBUG_CACHE === "1", log = {
60
7
  debug(...args) {
61
- if (isDev && isDebugEnabled) console.debug("[publish.os:debug]", ...args);
8
+ isDev && isDebugEnabled && console.debug("[publish.os:debug]", ...args);
62
9
  },
63
10
  info(...args) {
64
11
  console.log("[publish.os]", ...args);
@@ -71,11 +18,10 @@ var log = {
71
18
  }
72
19
  };
73
20
 
74
- // src/kernel/routes/pages/agent-metadata.ts
21
+ // src/lib/runtime/metadata/agent-metadata.ts
75
22
  function normalizePath(path) {
76
- const prefixed = path.startsWith("/") ? path : `/${path}`;
77
- if (prefixed === "/") return prefixed;
78
- return prefixed.replace(/\/+$/, "");
23
+ let prefixed = path.startsWith("/") ? path : `/${path}`;
24
+ return prefixed === "/" ? prefixed : prefixed.replace(/\/+$/, "");
79
25
  }
80
26
  function agentReadableAlternates({
81
27
  canonicalPath,
@@ -91,15 +37,14 @@ function agentReadableAlternates({
91
37
  };
92
38
  }
93
39
 
94
- // src/kernel/routes/pages/social-metadata.ts
95
- function isDevelopment() {
96
- return process.env.NODE_ENV === "development";
97
- }
98
- function absoluteUrl(path, siteUrl) {
99
- if (/^https:\/\//.test(path)) return path;
100
- if (isDevelopment()) return path;
101
- if (!siteUrl) return path;
102
- return new URL(path, siteUrl).toString();
40
+ // src/lib/runtime/metadata/social-metadata.ts
41
+ function absoluteUrl({
42
+ path,
43
+ siteUrl
44
+ }) {
45
+ if (/^https?:\/\//i.test(path)) return path;
46
+ if (siteUrl)
47
+ return new URL(path, siteUrl).toString();
103
48
  }
104
49
  function createSocialMetadata({
105
50
  canonicalPath,
@@ -109,26 +54,20 @@ function createSocialMetadata({
109
54
  title,
110
55
  type = "website"
111
56
  }) {
112
- const key = ogManifest?.routes?.[canonicalPath];
113
- const rootKey = ogManifest?.routes?.["/"];
114
- const entry = (key ? ogManifest?.entries?.[key] : void 0) ?? (rootKey ? ogManifest?.entries?.[rootKey] : void 0);
115
- if (!entry) {
116
- return {
117
- openGraph: {
118
- description,
119
- title,
120
- type,
121
- url: canonicalPath
122
- },
123
- twitter: {
124
- card: "summary",
125
- description,
126
- title
127
- }
128
- };
129
- }
130
- const imageUrl = absoluteUrl(entry.url, manifest.site.url);
131
- return {
57
+ let key = ogManifest?.routes?.[canonicalPath], rootKey = ogManifest?.routes?.["/"], entry = (key ? ogManifest?.entries?.[key] : void 0) ?? (rootKey ? ogManifest?.entries?.[rootKey] : void 0), url = absoluteUrl({ path: canonicalPath, siteUrl: manifest.site.url }), imageUrl = entry ? absoluteUrl({ path: entry.url, siteUrl: manifest.site.url }) : void 0;
58
+ return !entry || !imageUrl ? {
59
+ openGraph: {
60
+ description,
61
+ title,
62
+ type,
63
+ ...url ? { url } : {}
64
+ },
65
+ twitter: {
66
+ card: "summary",
67
+ description,
68
+ title
69
+ }
70
+ } : {
132
71
  openGraph: {
133
72
  description,
134
73
  images: [
@@ -142,7 +81,7 @@ function createSocialMetadata({
142
81
  siteName: manifest.site.name,
143
82
  title,
144
83
  type,
145
- url: canonicalPath
84
+ ...url ? { url } : {}
146
85
  },
147
86
  twitter: {
148
87
  card: "summary_large_image",
@@ -153,33 +92,23 @@ function createSocialMetadata({
153
92
  };
154
93
  }
155
94
 
156
- // src/kernel/routes/pages/root.tsx
95
+ // src/route-page-root.tsx
157
96
  import { jsx } from "react/jsx-runtime";
158
- var rootManifest;
159
- var rootPage;
97
+ var rootManifest, rootPage;
160
98
  async function CachedRootPage() {
161
99
  "use cache";
162
- cacheLife("page");
163
- cacheTag(tags.site());
164
- if (!rootManifest || !rootPage) return null;
165
- cacheTag(tags.manifest(rootManifest.contentHash));
166
- log.debug("[cache]", "root");
167
- const RootPage = rootPage;
168
- return /* @__PURE__ */ jsx(RootPage, { site: rootManifest.site, tree: rootManifest.tree });
100
+ return cacheLife("page"), cacheTag(tags.site()), !rootManifest || !rootPage ? null : (cacheTag(tags.manifest(rootManifest.contentHash)), log.debug("[cache]", "root"), /* @__PURE__ */ jsx(rootPage, { site: rootManifest.site, tree: rootManifest.tree }));
169
101
  }
170
102
  function createRootPage({ manifest, RootPage }) {
171
- rootManifest = manifest;
172
- rootPage = RootPage;
173
- return async function Page() {
174
- log.debug("[render]", "root");
175
- return /* @__PURE__ */ jsx(CachedRootPage, {});
103
+ return rootManifest = manifest, rootPage = RootPage, async function() {
104
+ return log.debug("[render]", "root"), /* @__PURE__ */ jsx(CachedRootPage, {});
176
105
  };
177
106
  }
178
107
  function createRootMetadata({
179
108
  manifest,
180
109
  ogManifest
181
110
  }) {
182
- const description = manifest.site.description;
111
+ let description = manifest.site.description;
183
112
  return {
184
113
  title: manifest.site.name,
185
114
  description,