@publish.os/nextjs 0.0.1-alpha.6 → 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 (220) 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/button-CFdx-ohV.d.ts +20 -0
  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 -1198
  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 +88 -169
  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 +18 -47
  60. package/dist/kernel/components/blocks/nav-breadcrumb.d.ts +1 -1
  61. package/dist/kernel/components/blocks/nav-breadcrumb.js +28 -42
  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 +22 -62
  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 +23 -7
  114. package/dist/kernel/components/ui/breadcrumb-trail.js +32 -80
  115. package/dist/kernel/components/ui/breadcrumb.d.ts +1 -1
  116. package/dist/kernel/components/ui/breadcrumb.js +20 -54
  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 +10 -32
  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 +19 -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 +3 -25
  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 +8 -29
  155. package/dist/kernel/defaults.registry.d.ts +1 -1
  156. package/dist/kernel/defaults.registry.js +2 -2
  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 +40 -120
  166. package/dist/kernel/routes/metadata/og-image.d.ts +10 -0
  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/link-CYaCRDb6.d.ts +35 -0
  180. package/dist/resolvers/manifest-resolver.d.ts +3 -3
  181. package/dist/resolvers/manifest-resolver.js +15 -21
  182. package/dist/route-metadata-og-image-BeKKFHg7.d.ts +58 -0
  183. package/dist/search.d.ts +81 -4
  184. package/dist/search.js +124 -195
  185. package/dist/sidebar-types-Bgchdfd6.d.ts +25 -0
  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 +469 -35
  207. package/release/{package.json → app/lucide/package.json} +11 -5
  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 +29 -5
  220. package/release/runtime-pnpm-lock.yaml +0 -1316
@@ -1,8 +1,9 @@
1
1
  import { NextConfig } from 'next';
2
2
 
3
3
  interface CreateNextConfigOptions {
4
+ /** Next.js build output directory, relative to the project root. */
4
5
  outputDir: string;
5
6
  }
6
- declare function createNextConfig(_options: CreateNextConfigOptions): NextConfig;
7
+ declare function createNextConfig({ outputDir, }: CreateNextConfigOptions): NextConfig;
7
8
 
8
9
  export { type CreateNextConfigOptions, createNextConfig };
@@ -1,23 +1,27 @@
1
- // src/config/createNextConfig.ts
2
- function createNextConfig(_options) {
1
+ // src/create-next-config.ts
2
+ function createNextConfig({
3
+ outputDir
4
+ }) {
3
5
  return {
6
+ distDir: outputDir,
4
7
  transpilePackages: ["@publish.os/nextjs"],
5
- cacheComponents: true,
8
+ cacheComponents: !0,
6
9
  cacheLife: {
10
+ // Published content changes with each build, which gets new use-cache keys.
7
11
  page: {
8
- stale: 60 * 5,
9
- revalidate: 60 * 60,
10
- expire: 60 * 60 * 24
12
+ stale: 300,
13
+ revalidate: 3600 * 24 * 30,
14
+ expire: 3600 * 24 * 365
11
15
  },
12
16
  feed: {
13
- stale: 60 * 60,
14
- revalidate: 60 * 60 * 6,
15
- expire: 60 * 60 * 24 * 7
17
+ stale: 3600,
18
+ revalidate: 3600 * 6,
19
+ expire: 3600 * 24 * 7
16
20
  },
17
21
  sitemap: {
18
- stale: 60 * 60,
19
- revalidate: 60 * 60 * 24,
20
- expire: 60 * 60 * 24 * 30
22
+ stale: 3600,
23
+ revalidate: 3600 * 24,
24
+ expire: 3600 * 24 * 30
21
25
  }
22
26
  }
23
27
  };
@@ -0,0 +1 @@
1
+ export * from 'lucide-react';
package/dist/icons.js ADDED
@@ -0,0 +1,2 @@
1
+ // src/icons.ts
2
+ export * from "lucide-react";
package/dist/index.d.ts CHANGED
@@ -1,18 +1,306 @@
1
1
  export { tags } from './cache/tags.js';
2
2
  export { createNextConfig } from './config/createNextConfig.js';
3
- export { PageList } from './kernel/components/blocks/page-list.js';
4
- export { createAtomFeedRoute, createJsonFeedRoute, createRssFeedRoute } from './kernel/routes/metadata/feed.js';
5
- export { createLlmsTxtRoute } from './kernel/routes/metadata/llms.js';
6
- export { createOgImageRoute, createOgImageStaticParams } from './kernel/routes/metadata/og-image.js';
7
- export { createRobotsTxtRoute } from './kernel/routes/metadata/robots.js';
8
- export { createSitemapXmlRoute } from './kernel/routes/metadata/sitemap.js';
9
- export { listStaticParams, resolveGroup, resolveGroupLayout, resolveLeaf } from './resolvers/manifest-resolver.js';
10
- export { GroupContext, IndexPageProps, LayoutProps, ManifestLike, NavFolder, NavItem, NavLink, NavPage, NavSection, OgImageMetadata, OgMetadata, PageData, PageProps, ResolvedAttribution, RootLayoutProps, RootPageProps, SiteData, TreeNode } from './types.js';
11
- export { cn } from './utils/cn.js';
12
- export { HeadingIdGenerator, MdxHeadingItem, cleanHeadingText, createHeadingIdGenerator, extractMdxHeadings, headingToHTMLId, urlIdToText } from './utils/heading-ids.js';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import React$1, { ReactNode } from 'react';
5
+ import { CnFunction } from 'cn';
13
6
  import 'next';
14
- import 'react/jsx-runtime';
15
- import '@publish.os/nextjs/types';
16
- import './kernel/routes/agent/markdown.js';
17
- import 'react';
18
- import 'clsx';
7
+
8
+ type SiteData = {
9
+ name: string;
10
+ description?: string;
11
+ url?: string;
12
+ og?: OgMetadata;
13
+ };
14
+ type OgImageMetadata = string | {
15
+ src: string;
16
+ alt?: string;
17
+ };
18
+ type OgMetadata = {
19
+ title?: string;
20
+ description?: string;
21
+ image?: OgImageMetadata;
22
+ };
23
+ type Author = {
24
+ id?: string;
25
+ name: string;
26
+ handle?: string;
27
+ avatar?: string;
28
+ url?: string;
29
+ };
30
+ type PageStatus = "published" | "draft" | "archived";
31
+ type PageData<TMeta extends Record<string, unknown> = Record<string, unknown>> = {
32
+ fileID: string;
33
+ group: string;
34
+ slug: string;
35
+ path: string;
36
+ title: string;
37
+ description?: string;
38
+ status: PageStatus;
39
+ publishedAt?: string;
40
+ updatedAt?: string;
41
+ authors: Author[];
42
+ tags: string[];
43
+ og?: OgMetadata;
44
+ meta: TMeta;
45
+ body: string;
46
+ };
47
+ type PageNode = {
48
+ type: "page";
49
+ fileID: string;
50
+ title: string;
51
+ path: string;
52
+ group: string;
53
+ description?: string;
54
+ status: PageStatus;
55
+ publishedAt?: string;
56
+ updatedAt?: string;
57
+ authors: Author[];
58
+ tags?: string[];
59
+ og?: OgMetadata;
60
+ meta: Record<string, unknown>;
61
+ };
62
+ type SectionNode = {
63
+ type: "section";
64
+ id: string;
65
+ title: string;
66
+ path?: string;
67
+ group?: string;
68
+ children: TreeNode[];
69
+ };
70
+ type FolderNode = {
71
+ type: "folder";
72
+ id: string;
73
+ title: string;
74
+ path?: string;
75
+ group?: string;
76
+ children: TreeNode[];
77
+ };
78
+ type LinkNode = {
79
+ type: "link";
80
+ id: string;
81
+ title: string;
82
+ href: string;
83
+ };
84
+ type TreeNode = PageNode | SectionNode | FolderNode | LinkNode;
85
+ type NavPage = PageNode;
86
+ type NavLink = LinkNode;
87
+ type NavSection = SectionNode;
88
+ type NavFolder = FolderNode;
89
+ type NavItem = TreeNode;
90
+ type RouteRecord = {
91
+ fileID: string;
92
+ slug: string;
93
+ path: string;
94
+ group: string;
95
+ };
96
+ type ResolvedAttribution = {
97
+ enabled: false;
98
+ } | {
99
+ enabled: true;
100
+ variant: "publish-dev";
101
+ label?: string;
102
+ hrefLabel?: string;
103
+ href: string;
104
+ };
105
+ type GroupManifest = {
106
+ key: string;
107
+ title: string;
108
+ path: string;
109
+ ancestry?: string[];
110
+ meta?: Record<string, unknown>;
111
+ tree: TreeNode[];
112
+ pages: PageData[];
113
+ };
114
+ type ManifestLike = {
115
+ site: SiteData;
116
+ groups: Record<string, GroupManifest>;
117
+ routes: RouteRecord[];
118
+ pages: PageData[];
119
+ tree: TreeNode[];
120
+ attribution?: Record<string, ResolvedAttribution>;
121
+ contentHash: string;
122
+ };
123
+ type RootLayoutProps = {
124
+ children: React.ReactNode;
125
+ site: SiteData;
126
+ tree: TreeNode[];
127
+ currentPath?: string;
128
+ currentGroup?: GroupContext;
129
+ activeGroups?: readonly GroupContext[];
130
+ };
131
+ type RootPageProps = {
132
+ site: SiteData;
133
+ tree: TreeNode[];
134
+ };
135
+ type LayoutProps = {
136
+ children: React.ReactNode;
137
+ site: SiteData;
138
+ tree: TreeNode[];
139
+ node: TreeNode;
140
+ currentPath: string;
141
+ group: string;
142
+ };
143
+ type PageProps<TMeta extends Record<string, unknown> = Record<string, unknown>> = {
144
+ site: SiteData;
145
+ tree: TreeNode[];
146
+ node: TreeNode;
147
+ page: PageData<TMeta>;
148
+ currentPath: string;
149
+ group: string;
150
+ };
151
+ type IndexPageProps = {
152
+ site: SiteData;
153
+ tree: TreeNode[];
154
+ node: TreeNode;
155
+ currentPath: string;
156
+ group: string;
157
+ };
158
+ type GroupForcedMode = "light" | "dark" | "none";
159
+ type GroupContext = {
160
+ key: string;
161
+ title: string;
162
+ path: string;
163
+ ancestry: readonly string[];
164
+ hasThemeCss: boolean;
165
+ hasFontScope: boolean;
166
+ forcedMode?: GroupForcedMode;
167
+ resolvedForcedMode?: "light" | "dark";
168
+ escapesForcedMode?: boolean;
169
+ meta?: Record<string, unknown>;
170
+ };
171
+
172
+ type PageListProps = {
173
+ tree: TreeNode[];
174
+ currentPath?: string;
175
+ className?: string;
176
+ };
177
+ declare function PageList({ tree, currentPath, className }: PageListProps): react_jsx_runtime.JSX.Element | null;
178
+
179
+ type FeedScope = "site" | "group" | "self";
180
+ type FeedRouteOptions = {
181
+ scope?: FeedScope;
182
+ group?: string;
183
+ limit?: number;
184
+ status?: PageStatus[];
185
+ };
186
+ declare function createRssFeedRoute(manifest: ManifestLike, options?: FeedRouteOptions): () => Promise<Response>;
187
+ declare function createAtomFeedRoute(manifest: ManifestLike, options?: FeedRouteOptions): () => Promise<Response>;
188
+ declare function createJsonFeedRoute(manifest: ManifestLike, options?: FeedRouteOptions): () => Promise<Response>;
189
+
190
+ type LlmsRouteOptions = {
191
+ scope?: "site" | "group" | "self";
192
+ group?: string;
193
+ limit?: number;
194
+ includeDescriptions?: boolean;
195
+ links?: Array<{
196
+ title: string;
197
+ path: string;
198
+ }>;
199
+ };
200
+ declare function createLlmsTxtRoute(manifest: ManifestLike, options?: LlmsRouteOptions): () => Promise<Response>;
201
+
202
+ type OgImageEntryLike = {
203
+ key: string;
204
+ routePath: string;
205
+ title: string;
206
+ description?: string;
207
+ source: "asset" | "generated" | "remote";
208
+ url: string;
209
+ width: number;
210
+ height: number;
211
+ alt: string;
212
+ group?: string;
213
+ logo?: {
214
+ dataUri?: string;
215
+ height?: number;
216
+ kind: "logo" | "mark" | "wordmark";
217
+ url: string;
218
+ width?: number;
219
+ };
220
+ siteName?: string;
221
+ siteUrl?: string;
222
+ label?: string;
223
+ background?: string;
224
+ textPrimary?: string;
225
+ textSecondary?: string;
226
+ accent?: string;
227
+ stroke?: string;
228
+ theme?: "light" | "dark";
229
+ fonts?: {
230
+ main: OgFontRoleLike;
231
+ mono: OgFontRoleLike;
232
+ };
233
+ emoji?: Readonly<Record<string, string>>;
234
+ fallbackGlyphs?: Partial<Record<"main" | "mono", Readonly<Record<string, string>>>>;
235
+ fallbackFonts?: ReadonlyArray<{
236
+ family: string;
237
+ data: string;
238
+ style: "normal" | "italic";
239
+ weight: number;
240
+ }>;
241
+ };
242
+ type OgManifestLike = {
243
+ width: number;
244
+ height: number;
245
+ generated: Record<string, OgImageEntryLike>;
246
+ };
247
+ type OgImageRouteConfig = {
248
+ manifest: OgManifestLike;
249
+ };
250
+ type RouteContext = {
251
+ params: Promise<{
252
+ key: string;
253
+ }> | {
254
+ key: string;
255
+ };
256
+ };
257
+ type OgFontRoleLike = {
258
+ family: string;
259
+ files?: ReadonlyArray<{
260
+ data: string;
261
+ path?: string;
262
+ probe?: string;
263
+ style: "normal" | "italic";
264
+ weight: number;
265
+ }>;
266
+ sourceType: "google" | "local";
267
+ };
268
+ declare function createOgImageRoute({ manifest }: OgImageRouteConfig): (_request: Request, context: RouteContext) => Promise<Response>;
269
+ declare function createOgImageStaticParams({ manifest }: OgImageRouteConfig): {
270
+ key: string;
271
+ }[];
272
+
273
+ declare function createRobotsTxtRoute(manifest: ManifestLike): () => Promise<Response>;
274
+
275
+ declare function createSitemapXmlRoute(manifest: ManifestLike): () => Promise<Response>;
276
+
277
+ type ResolvedLeaf = PageProps;
278
+ type ResolvedGroup = Omit<IndexPageProps, "children">;
279
+ declare function resolveLeaf(manifest: ManifestLike, group: string, slug: string | string[]): ResolvedLeaf | null;
280
+ declare function resolveGroup(manifest: ManifestLike, group: string): ResolvedGroup | null;
281
+ declare function resolveGroupLayout(manifest: ManifestLike, group: string, children: React$1.ReactNode): LayoutProps | null;
282
+ declare function listStaticParams(manifest: ManifestLike, group: string): Array<{
283
+ slug: string[];
284
+ }>;
285
+
286
+ /**
287
+ * Shared class merging for PublishOS runtime and project components.
288
+ *
289
+ * Custom z-index classes conflict with each other and standard z-index classes,
290
+ * so the last one passed to `cn()` wins.
291
+ */
292
+ declare const cn: CnFunction;
293
+
294
+ type HeadingIdGenerator = (input: ReactNode) => string;
295
+ type MdxHeadingItem = {
296
+ id: string;
297
+ level: number;
298
+ text: string;
299
+ };
300
+ declare function cleanHeadingText(input: ReactNode): string;
301
+ declare function headingToHTMLId(input: ReactNode): string;
302
+ declare function createHeadingIdGenerator(): HeadingIdGenerator;
303
+ declare function extractMdxHeadings(content: string | undefined, levels: [number, number]): MdxHeadingItem[];
304
+ declare function urlIdToText(urlId: string): string;
305
+
306
+ export { type GroupContext, type HeadingIdGenerator, type IndexPageProps, type LayoutProps, type ManifestLike, type MdxHeadingItem, type NavFolder, type NavItem, type NavLink, type NavPage, type NavSection, type OgImageMetadata, type OgMetadata, type PageData, PageList, type PageProps, type ResolvedAttribution, type RootLayoutProps, type RootPageProps, type SiteData, type TreeNode, cleanHeadingText, cn, createAtomFeedRoute, createHeadingIdGenerator, createJsonFeedRoute, createLlmsTxtRoute, createOgImageRoute, createOgImageStaticParams, createRobotsTxtRoute, createRssFeedRoute, createSitemapXmlRoute, extractMdxHeadings, headingToHTMLId, listStaticParams, resolveGroup, resolveGroupLayout, resolveLeaf, urlIdToText };