@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.
- package/README.md +3 -5
- package/compiler-assets/nextjs/defaults/app/globals.css +6 -0
- package/compiler-assets/nextjs/defaults/group/layout.tsx +23 -0
- package/compiler-assets/nextjs/defaults/group/leaf.tsx +48 -0
- package/compiler-assets/nextjs/defaults/group/page.tsx +50 -0
- package/compiler-assets/nextjs/defaults/project/next.config.mjs +45 -0
- package/compiler-assets/nextjs/defaults/project/postcss.config.mjs +5 -0
- package/compiler-assets/nextjs/defaults/project/tsconfig.json.template +41 -0
- package/compiler-assets/nextjs/defaults/root/css/animation.css +90 -0
- package/compiler-assets/nextjs/defaults/root/css/components/dialog.css +21 -0
- package/compiler-assets/nextjs/defaults/root/css/components/drawer.css +21 -0
- package/compiler-assets/nextjs/defaults/root/css/components/menu.css +23 -0
- package/compiler-assets/nextjs/defaults/root/css/components/navigation-menu.css +25 -0
- package/compiler-assets/nextjs/defaults/root/css/components/popover.css +17 -0
- package/compiler-assets/nextjs/defaults/root/css/components/select.css +23 -0
- package/compiler-assets/nextjs/defaults/root/css/components/toast.css +19 -0
- package/compiler-assets/nextjs/defaults/root/css/components/tooltip.css +15 -0
- package/compiler-assets/nextjs/defaults/root/css/layout.css +22 -0
- package/compiler-assets/nextjs/defaults/root/css/media.css +81 -0
- package/compiler-assets/nextjs/defaults/root/css/radius.css +49 -0
- package/compiler-assets/nextjs/defaults/root/css/scrollbar.css +43 -0
- package/compiler-assets/nextjs/defaults/root/css/shadow.css +145 -0
- package/compiler-assets/nextjs/defaults/root/css/typography.css +607 -0
- package/compiler-assets/nextjs/defaults/root/css/zindex.css +39 -0
- package/compiler-assets/nextjs/defaults/root/globals.css +191 -0
- package/compiler-assets/nextjs/defaults/root/layout.tsx +19 -0
- package/compiler-assets/nextjs/defaults/root/page.tsx +61 -0
- package/compiler-assets/nextjs/defaults/root/theme.css +50 -0
- package/compiler-assets/nextjs/defaults/source/_internal/logger.ts +21 -0
- package/compiler-assets/nextjs/shims/generated-group-layout.tsx +19 -0
- package/compiler-assets/nextjs/shims/generated-group-page.tsx +18 -0
- package/compiler-assets/nextjs/shims/generated-leaf-page.tsx +21 -0
- package/compiler-assets/nextjs/shims/global-layout.tsx +134 -0
- package/compiler-assets/nextjs/shims/markdown-route.ts +29 -0
- package/compiler-assets/nextjs/shims/og-image-route.ts +18 -0
- package/compiler-assets/nextjs/shims/powered-by-footer.tsx +40 -0
- package/compiler-assets/nextjs/shims/providers.tsx +13 -0
- package/compiler-assets/nextjs/shims/proxy.ts +317 -0
- package/compiler-assets/nextjs/shims/publish-os-theme-provider.tsx +77 -0
- package/compiler-assets/nextjs/shims/root-page.tsx +13 -0
- package/compiler-assets/nextjs/shims/theme-defaults.css +177 -0
- package/dist/{kernel/components/ui/button.d.cts → button-CFdx-ohV.d.ts} +1 -3
- package/dist/cache/tags.js +6 -14
- package/dist/compiler.d.ts +100 -0
- package/dist/compiler.js +13379 -0
- package/dist/config/createNextConfig.d.ts +2 -1
- package/dist/config/createNextConfig.js +16 -12
- package/dist/icons.d.ts +1 -0
- package/dist/icons.js +2 -0
- package/dist/index.d.ts +303 -15
- package/dist/index.js +30 -1196
- package/dist/kernel/components/blocks/AgentActions.d.ts +9 -3
- package/dist/kernel/components/blocks/AgentActions.js +114 -200
- package/dist/kernel/components/blocks/animated-icon-swap.js +4 -25
- package/dist/kernel/components/blocks/color-palette.js +107 -157
- package/dist/kernel/components/blocks/design-system-preview.d.ts +38 -6
- package/dist/kernel/components/blocks/design-system-preview.js +44 -52
- package/dist/kernel/components/blocks/link-playground.js +23 -71
- package/dist/kernel/components/blocks/logo-block.js +19 -48
- package/dist/kernel/components/blocks/nav-breadcrumb.d.ts +1 -1
- package/dist/kernel/components/blocks/nav-breadcrumb.js +28 -52
- package/dist/kernel/components/blocks/navbar.d.ts +1 -1
- package/dist/kernel/components/blocks/navbar.js +14 -41
- package/dist/kernel/components/blocks/navigation-progress-playground.js +56 -149
- package/dist/kernel/components/blocks/navigation-progress.js +53 -157
- package/dist/kernel/components/blocks/next-prev.d.ts +1 -1
- package/dist/kernel/components/blocks/next-prev.js +16 -42
- package/dist/kernel/components/blocks/page-list.d.ts +1 -1
- package/dist/kernel/components/blocks/page-list.js +11 -16
- package/dist/kernel/components/blocks/search.d.ts +13 -2
- package/dist/kernel/components/blocks/search.js +116 -247
- package/dist/kernel/components/blocks/sidebar-node.d.ts +2 -2
- package/dist/kernel/components/blocks/sidebar-node.js +56 -95
- package/dist/kernel/components/blocks/sidebar.d.ts +5 -23
- package/dist/kernel/components/blocks/sidebar.js +35 -103
- package/dist/kernel/components/blocks/theme-toggle.d.ts +7 -3
- package/dist/kernel/components/blocks/theme-toggle.js +2 -2
- package/dist/kernel/components/blocks/toc.js +42 -178
- package/dist/kernel/components/mdx/components/blockquote.js +3 -24
- package/dist/kernel/components/mdx/components/callout.d.ts +1 -1
- package/dist/kernel/components/mdx/components/callout.js +15 -47
- package/dist/kernel/components/mdx/components/code-block.js +2 -2
- package/dist/kernel/components/mdx/components/figure-caption.js +6 -24
- package/dist/kernel/components/mdx/components/figure.js +9 -36
- package/dist/kernel/components/mdx/components/footnotes.js +3 -24
- package/dist/kernel/components/mdx/components/heading-copy-link.js +13 -37
- package/dist/kernel/components/mdx/components/heading.d.ts +8 -3
- package/dist/kernel/components/mdx/components/heading.js +32 -116
- package/dist/kernel/components/mdx/components/hr.d.ts +5 -3
- package/dist/kernel/components/mdx/components/hr.js +2 -2
- package/dist/kernel/components/mdx/components/image-zoom.js +2 -3
- package/dist/kernel/components/mdx/components/image.js +23 -63
- package/dist/kernel/components/mdx/components/inline-code.js +3 -24
- package/dist/kernel/components/mdx/components/kbd.d.ts +9 -4
- package/dist/kernel/components/mdx/components/kbd.js +2 -2
- package/dist/kernel/components/mdx/components/link.d.ts +1 -2
- package/dist/kernel/components/mdx/components/link.js +2 -2
- package/dist/kernel/components/mdx/components/paragraph.js +13 -41
- package/dist/kernel/components/mdx/components/pre.js +3 -24
- package/dist/kernel/components/mdx/components/strikethrough.js +6 -24
- package/dist/kernel/components/mdx/components/table.js +2 -2
- package/dist/kernel/components/mdx/components/task-list.js +6 -28
- package/dist/kernel/components/mdx/components/video-player.js +53 -88
- package/dist/kernel/components/mdx/components/video.js +27 -75
- package/dist/kernel/components/mdx/error-boundary.d.ts +1 -1
- package/dist/kernel/components/mdx/error-boundary.js +12 -15
- package/dist/kernel/components/mdx/error-fallback.js +4 -4
- package/dist/kernel/components/mdx/mdx.d.ts +68 -11
- package/dist/kernel/components/mdx/mdx.js +29 -29
- package/dist/kernel/components/mdx/rehype-heading-ids.js +11 -67
- package/dist/kernel/components/mdx/types.d.ts +1 -1
- package/dist/kernel/components/ui/accordion.js +3 -26
- package/dist/kernel/components/ui/breadcrumb-trail.d.ts +26 -8
- package/dist/kernel/components/ui/breadcrumb-trail.js +32 -79
- package/dist/kernel/components/ui/breadcrumb.d.ts +2 -6
- package/dist/kernel/components/ui/breadcrumb.js +21 -70
- package/dist/kernel/components/ui/button-group.d.ts +4 -3
- package/dist/kernel/components/ui/button-group.js +7 -30
- package/dist/kernel/components/ui/button.js +13 -36
- package/dist/kernel/components/ui/card.d.ts +2 -2
- package/dist/kernel/components/ui/card.js +2 -23
- package/dist/kernel/components/ui/dialog.d.ts +9 -9
- package/dist/kernel/components/ui/dialog.js +15 -33
- package/dist/kernel/components/ui/drawer.d.ts +10 -10
- package/dist/kernel/components/ui/drawer.js +15 -33
- package/dist/kernel/components/ui/input.js +6 -30
- package/dist/kernel/components/ui/kbd.js +10 -31
- package/dist/kernel/components/ui/link.d.ts +1 -1
- package/dist/kernel/components/ui/link.js +53 -104
- package/dist/kernel/components/ui/menu.d.ts +21 -21
- package/dist/kernel/components/ui/menu.js +14 -36
- package/dist/kernel/components/ui/meta-key.d.ts +9 -4
- package/dist/kernel/components/ui/meta-key.js +2 -2
- package/dist/kernel/components/ui/navigation-menu.d.ts +14 -14
- package/dist/kernel/components/ui/navigation-menu.js +9 -30
- package/dist/kernel/components/ui/popover.d.ts +10 -10
- package/dist/kernel/components/ui/popover.js +13 -34
- package/dist/kernel/components/ui/progress.js +2 -25
- package/dist/kernel/components/ui/scroll-area.js +39 -118
- package/dist/kernel/components/ui/select.d.ts +15 -15
- package/dist/kernel/components/ui/select.js +19 -35
- package/dist/kernel/components/ui/separator.js +2 -25
- package/dist/kernel/components/ui/table.js +2 -23
- package/dist/kernel/components/ui/tabs.js +39 -99
- package/dist/kernel/components/ui/tag.d.ts +2 -2
- package/dist/kernel/components/ui/tag.js +4 -25
- package/dist/kernel/components/ui/text.d.ts +2 -2
- package/dist/kernel/components/ui/text.js +112 -131
- package/dist/kernel/components/ui/theme-toggle.d.ts +18 -4
- package/dist/kernel/components/ui/theme-toggle.js +18 -44
- package/dist/kernel/components/ui/toast.d.ts +10 -10
- package/dist/kernel/components/ui/toast.js +13 -35
- package/dist/kernel/components/ui/tooltip.d.ts +8 -8
- package/dist/kernel/components/ui/tooltip.js +9 -30
- package/dist/kernel/defaults.registry.d.ts +61 -70
- package/dist/kernel/defaults.registry.js +61 -69
- package/dist/kernel/framework-icons.d.ts +1 -0
- package/dist/kernel/framework-icons.js +39 -0
- package/dist/kernel/routes/agent/markdown.js +36 -65
- package/dist/kernel/routes/layouts/group.d.ts +1 -1
- package/dist/kernel/routes/layouts/group.js +20 -109
- package/dist/kernel/routes/metadata/feed.d.ts +1 -2
- package/dist/kernel/routes/metadata/feed.js +46 -127
- package/dist/kernel/routes/metadata/llms.d.ts +1 -2
- package/dist/kernel/routes/metadata/llms.js +42 -120
- package/dist/kernel/routes/metadata/og-image.d.ts +11 -1
- package/dist/kernel/routes/metadata/og-image.js +264 -198
- package/dist/kernel/routes/metadata/robots.d.ts +1 -2
- package/dist/kernel/routes/metadata/robots.js +21 -90
- package/dist/kernel/routes/metadata/sitemap.d.ts +1 -2
- package/dist/kernel/routes/metadata/sitemap.js +36 -102
- package/dist/kernel/routes/pages/group.d.ts +1 -1
- package/dist/kernel/routes/pages/group.js +42 -137
- package/dist/kernel/routes/pages/leaf.d.ts +1 -1
- package/dist/kernel/routes/pages/leaf.js +74 -213
- package/dist/kernel/routes/pages/root.d.ts +1 -1
- package/dist/kernel/routes/pages/root.js +37 -108
- package/dist/keyboard-shortcuts.js +69 -141
- package/dist/{kernel/components/ui/link.d.cts → link-CYaCRDb6.d.ts} +9 -5
- package/dist/resolvers/manifest-resolver.d.ts +3 -3
- package/dist/resolvers/manifest-resolver.js +15 -21
- package/dist/{kernel/routes/metadata/og-image.d.cts → route-metadata-og-image-BeKKFHg7.d.ts} +12 -16
- package/dist/search.d.ts +81 -4
- package/dist/search.js +124 -195
- package/dist/{kernel/components/blocks/sidebar.d.cts → sidebar-types-Bgchdfd6.d.ts} +2 -10
- package/dist/theme-scope.d.ts +15 -0
- package/dist/theme-scope.js +23 -0
- package/dist/types-B_b3C0U6.d.ts +63 -0
- package/dist/types-CIwwieNw.d.ts +127 -0
- package/dist/types-DHBm7-j6.d.ts +57 -0
- package/dist/types-sM2g9nW0.d.ts +12 -0
- package/dist/types.d.ts +0 -1
- package/dist/types.js +1 -1
- package/dist/utils/cn.d.ts +5 -9
- package/dist/utils/cn.js +13 -7
- package/dist/utils/heading-ids.js +20 -47
- package/dist/utils/pretty-date.js +7 -13
- package/init/seed/minimal/publish.os/assets/logo/publish-dev-logo.dark.png +0 -0
- package/init/seed/minimal/publish.os/assets/logo/publish-dev-logo.png +0 -0
- package/init/seed/minimal/publish.os/docs/content/get-started.mdx +54 -0
- package/init/seed/minimal/publish.os/docs/content/groups.mdx +31 -0
- package/init/seed/minimal/publish.os/docs/content/theme.mdx +64 -0
- package/init/seed/minimal/publish.os/publish.os.config.json +21 -0
- package/init/seed/minimal/publish.os/theme.css +47 -0
- package/init/seed/minimal/seed.json +13 -0
- package/package.json +470 -40
- package/release/{package.json → app/lucide/package.json} +14 -7
- package/release/app/lucide/pnpm-lock.yaml.template +2905 -0
- package/release/app/lucide/pnpm-workspace.yaml +11 -0
- package/release/app/phosphor/package.json +30 -0
- package/release/app/phosphor/pnpm-lock.yaml.template +2908 -0
- package/release/app/phosphor/pnpm-workspace.yaml +11 -0
- package/release/app/tabler/package.json +30 -0
- package/release/app/tabler/pnpm-lock.yaml.template +2911 -0
- package/release/app/tabler/pnpm-workspace.yaml +11 -0
- package/release/compiler/package.json +20 -0
- package/release/compiler/pnpm-lock.yaml.template +2432 -0
- package/release/compiler/pnpm-workspace.yaml +11 -0
- package/release/release.json +31 -7
- package/dist/cache/tags.cjs +0 -79
- package/dist/cache/tags.d.cts +0 -13
- package/dist/config/createNextConfig.cjs +0 -52
- package/dist/config/createNextConfig.d.cts +0 -8
- package/dist/config.cjs +0 -78
- package/dist/config.d.cts +0 -101
- package/dist/config.d.ts +0 -101
- package/dist/config.js +0 -48
- package/dist/index.cjs +0 -1266
- package/dist/index.d.cts +0 -18
- package/dist/kernel/components/blocks/AgentActions.cjs +0 -425
- package/dist/kernel/components/blocks/AgentActions.d.cts +0 -52
- package/dist/kernel/components/blocks/animated-icon-swap.cjs +0 -101
- package/dist/kernel/components/blocks/animated-icon-swap.d.cts +0 -16
- package/dist/kernel/components/blocks/color-palette.cjs +0 -413
- package/dist/kernel/components/blocks/color-palette.d.cts +0 -7
- package/dist/kernel/components/blocks/design-system-preview.cjs +0 -593
- package/dist/kernel/components/blocks/design-system-preview.d.cts +0 -29
- package/dist/kernel/components/blocks/link-playground.cjs +0 -816
- package/dist/kernel/components/blocks/link-playground.d.cts +0 -5
- package/dist/kernel/components/blocks/logo-block.cjs +0 -156
- package/dist/kernel/components/blocks/logo-block.d.cts +0 -21
- package/dist/kernel/components/blocks/nav-breadcrumb.cjs +0 -122
- package/dist/kernel/components/blocks/nav-breadcrumb.d.cts +0 -11
- package/dist/kernel/components/blocks/navbar.cjs +0 -154
- package/dist/kernel/components/blocks/navbar.d.cts +0 -16
- package/dist/kernel/components/blocks/navigation-progress-playground.cjs +0 -735
- package/dist/kernel/components/blocks/navigation-progress-playground.d.cts +0 -5
- package/dist/kernel/components/blocks/navigation-progress.cjs +0 -270
- package/dist/kernel/components/blocks/navigation-progress.d.cts +0 -16
- package/dist/kernel/components/blocks/next-prev.cjs +0 -142
- package/dist/kernel/components/blocks/next-prev.d.cts +0 -11
- package/dist/kernel/components/blocks/page-list.cjs +0 -59
- package/dist/kernel/components/blocks/page-list.d.cts +0 -11
- package/dist/kernel/components/blocks/search.cjs +0 -717
- package/dist/kernel/components/blocks/search.d.cts +0 -77
- package/dist/kernel/components/blocks/sidebar-node.cjs +0 -309
- package/dist/kernel/components/blocks/sidebar-node.d.cts +0 -8
- package/dist/kernel/components/blocks/sidebar.cjs +0 -317
- package/dist/kernel/components/blocks/theme-toggle.cjs +0 -31
- package/dist/kernel/components/blocks/theme-toggle.d.cts +0 -6
- package/dist/kernel/components/blocks/toc.cjs +0 -356
- package/dist/kernel/components/blocks/toc.d.cts +0 -10
- package/dist/kernel/components/mdx/components/blockquote.cjs +0 -66
- package/dist/kernel/components/mdx/components/blockquote.d.cts +0 -6
- package/dist/kernel/components/mdx/components/callout.cjs +0 -137
- package/dist/kernel/components/mdx/components/callout.d.cts +0 -18
- package/dist/kernel/components/mdx/components/code-block.cjs +0 -39
- package/dist/kernel/components/mdx/components/code-block.d.cts +0 -9
- package/dist/kernel/components/mdx/components/figure-caption.cjs +0 -63
- package/dist/kernel/components/mdx/components/figure-caption.d.cts +0 -6
- package/dist/kernel/components/mdx/components/figure.cjs +0 -78
- package/dist/kernel/components/mdx/components/figure.d.cts +0 -10
- package/dist/kernel/components/mdx/components/footnotes.cjs +0 -66
- package/dist/kernel/components/mdx/components/footnotes.d.cts +0 -6
- package/dist/kernel/components/mdx/components/heading-copy-link.cjs +0 -108
- package/dist/kernel/components/mdx/components/heading-copy-link.d.cts +0 -23
- package/dist/kernel/components/mdx/components/heading.cjs +0 -166
- package/dist/kernel/components/mdx/components/heading.d.cts +0 -8
- package/dist/kernel/components/mdx/components/hr.cjs +0 -34
- package/dist/kernel/components/mdx/components/hr.d.cts +0 -9
- package/dist/kernel/components/mdx/components/image-zoom.cjs +0 -49
- package/dist/kernel/components/mdx/components/image-zoom.d.cts +0 -10
- package/dist/kernel/components/mdx/components/image.cjs +0 -192
- package/dist/kernel/components/mdx/components/image.d.cts +0 -21
- package/dist/kernel/components/mdx/components/inline-code.cjs +0 -66
- package/dist/kernel/components/mdx/components/inline-code.d.cts +0 -6
- package/dist/kernel/components/mdx/components/kbd.cjs +0 -34
- package/dist/kernel/components/mdx/components/kbd.d.cts +0 -10
- package/dist/kernel/components/mdx/components/link.cjs +0 -49
- package/dist/kernel/components/mdx/components/link.d.cts +0 -11
- package/dist/kernel/components/mdx/components/paragraph.cjs +0 -87
- package/dist/kernel/components/mdx/components/paragraph.d.cts +0 -5
- package/dist/kernel/components/mdx/components/pre.cjs +0 -66
- package/dist/kernel/components/mdx/components/pre.d.cts +0 -6
- package/dist/kernel/components/mdx/components/strikethrough.cjs +0 -63
- package/dist/kernel/components/mdx/components/strikethrough.d.cts +0 -6
- package/dist/kernel/components/mdx/components/table.cjs +0 -59
- package/dist/kernel/components/mdx/components/table.d.cts +0 -10
- package/dist/kernel/components/mdx/components/task-list.cjs +0 -88
- package/dist/kernel/components/mdx/components/task-list.d.cts +0 -8
- package/dist/kernel/components/mdx/components/video-player.cjs +0 -173
- package/dist/kernel/components/mdx/components/video-player.d.cts +0 -18
- package/dist/kernel/components/mdx/components/video.cjs +0 -185
- package/dist/kernel/components/mdx/components/video.d.cts +0 -15
- package/dist/kernel/components/mdx/error-boundary.cjs +0 -62
- package/dist/kernel/components/mdx/error-boundary.d.cts +0 -8
- package/dist/kernel/components/mdx/error-fallback.cjs +0 -58
- package/dist/kernel/components/mdx/error-fallback.d.cts +0 -9
- package/dist/kernel/components/mdx/mdx.cjs +0 -141
- package/dist/kernel/components/mdx/mdx.d.cts +0 -22
- package/dist/kernel/components/mdx/rehype-heading-ids.cjs +0 -113
- package/dist/kernel/components/mdx/rehype-heading-ids.d.cts +0 -10
- package/dist/kernel/components/mdx/types.cjs +0 -18
- package/dist/kernel/components/mdx/types.d.cts +0 -18
- package/dist/kernel/components/ui/accordion.cjs +0 -104
- package/dist/kernel/components/ui/accordion.d.cts +0 -16
- package/dist/kernel/components/ui/breadcrumb-trail.cjs +0 -238
- package/dist/kernel/components/ui/breadcrumb-trail.d.cts +0 -13
- package/dist/kernel/components/ui/breadcrumb.cjs +0 -399
- package/dist/kernel/components/ui/breadcrumb.d.cts +0 -52
- package/dist/kernel/components/ui/button-group.cjs +0 -143
- package/dist/kernel/components/ui/button-group.d.cts +0 -19
- package/dist/kernel/components/ui/button.cjs +0 -139
- package/dist/kernel/components/ui/card.cjs +0 -133
- package/dist/kernel/components/ui/card.d.cts +0 -17
- package/dist/kernel/components/ui/dialog.cjs +0 -149
- package/dist/kernel/components/ui/dialog.d.cts +0 -22
- package/dist/kernel/components/ui/drawer.cjs +0 -163
- package/dist/kernel/components/ui/drawer.d.cts +0 -24
- package/dist/kernel/components/ui/input.cjs +0 -96
- package/dist/kernel/components/ui/input.d.cts +0 -18
- package/dist/kernel/components/ui/kbd.cjs +0 -105
- package/dist/kernel/components/ui/kbd.d.cts +0 -13
- package/dist/kernel/components/ui/link.cjs +0 -253
- package/dist/kernel/components/ui/menu.cjs +0 -301
- package/dist/kernel/components/ui/menu.d.cts +0 -70
- package/dist/kernel/components/ui/meta-key.cjs +0 -34
- package/dist/kernel/components/ui/meta-key.d.cts +0 -12
- package/dist/kernel/components/ui/navigation-menu.cjs +0 -253
- package/dist/kernel/components/ui/navigation-menu.d.cts +0 -47
- package/dist/kernel/components/ui/popover.cjs +0 -168
- package/dist/kernel/components/ui/popover.d.cts +0 -24
- package/dist/kernel/components/ui/progress.cjs +0 -112
- package/dist/kernel/components/ui/progress.d.cts +0 -16
- package/dist/kernel/components/ui/scroll-area.cjs +0 -413
- package/dist/kernel/components/ui/scroll-area.d.cts +0 -58
- package/dist/kernel/components/ui/select.cjs +0 -244
- package/dist/kernel/components/ui/select.d.cts +0 -40
- package/dist/kernel/components/ui/separator.cjs +0 -73
- package/dist/kernel/components/ui/separator.d.cts +0 -8
- package/dist/kernel/components/ui/table.cjs +0 -131
- package/dist/kernel/components/ui/table.d.cts +0 -11
- package/dist/kernel/components/ui/tabs.cjs +0 -450
- package/dist/kernel/components/ui/tabs.d.cts +0 -82
- package/dist/kernel/components/ui/tag.cjs +0 -104
- package/dist/kernel/components/ui/tag.d.cts +0 -14
- package/dist/kernel/components/ui/text.cjs +0 -184
- package/dist/kernel/components/ui/text.d.cts +0 -17
- package/dist/kernel/components/ui/theme-toggle.cjs +0 -108
- package/dist/kernel/components/ui/theme-toggle.d.cts +0 -10
- package/dist/kernel/components/ui/toast.cjs +0 -154
- package/dist/kernel/components/ui/toast.d.cts +0 -26
- package/dist/kernel/components/ui/tooltip.cjs +0 -127
- package/dist/kernel/components/ui/tooltip.d.cts +0 -20
- package/dist/kernel/defaults.registry.cjs +0 -541
- package/dist/kernel/defaults.registry.d.cts +0 -469
- package/dist/kernel/routes/agent/markdown.cjs +0 -202
- package/dist/kernel/routes/agent/markdown.d.cts +0 -58
- package/dist/kernel/routes/layouts/group.cjs +0 -181
- package/dist/kernel/routes/layouts/group.d.cts +0 -20
- package/dist/kernel/routes/metadata/feed.cjs +0 -293
- package/dist/kernel/routes/metadata/feed.d.cts +0 -20
- package/dist/kernel/routes/metadata/llms.cjs +0 -239
- package/dist/kernel/routes/metadata/llms.d.cts +0 -26
- package/dist/kernel/routes/metadata/og-image.cjs +0 -630
- package/dist/kernel/routes/metadata/robots.cjs +0 -148
- package/dist/kernel/routes/metadata/robots.d.cts +0 -6
- package/dist/kernel/routes/metadata/sitemap.cjs +0 -192
- package/dist/kernel/routes/metadata/sitemap.d.cts +0 -8
- package/dist/kernel/routes/pages/group.cjs +0 -263
- package/dist/kernel/routes/pages/group.d.cts +0 -17
- package/dist/kernel/routes/pages/leaf.cjs +0 -421
- package/dist/kernel/routes/pages/leaf.d.cts +0 -36
- package/dist/kernel/routes/pages/root.cjs +0 -229
- package/dist/kernel/routes/pages/root.d.cts +0 -16
- package/dist/keyboard-shortcuts.cjs +0 -345
- package/dist/keyboard-shortcuts.d.cts +0 -34
- package/dist/resolvers/manifest-resolver.cjs +0 -111
- package/dist/resolvers/manifest-resolver.d.cts +0 -13
- package/dist/search.cjs +0 -411
- package/dist/search.d.cts +0 -20
- package/dist/types.cjs +0 -30
- package/dist/types.d.cts +0 -269
- package/dist/utils/cn.cjs +0 -49
- package/dist/utils/cn.d.cts +0 -15
- package/dist/utils/heading-ids.cjs +0 -119
- package/dist/utils/heading-ids.d.cts +0 -15
- package/dist/utils/pretty-date.cjs +0 -55
- package/dist/utils/pretty-date.d.cts +0 -6
- package/release/pnpm-lock.yaml +0 -1215
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
@theme inline {
|
|
2
|
+
--font-main: var(--font-main);
|
|
3
|
+
--font-sans: var(--font-main);
|
|
4
|
+
--font-mono: var(--font-mono);
|
|
5
|
+
|
|
6
|
+
--color-surface-page: var(--surface-page);
|
|
7
|
+
--color-surface-1: var(--surface-1);
|
|
8
|
+
--color-surface-2: var(--surface-2);
|
|
9
|
+
--color-surface-3: var(--surface-3);
|
|
10
|
+
--color-surface-4: var(--surface-4);
|
|
11
|
+
--color-surface-hover: var(--surface-hover);
|
|
12
|
+
--color-surface-active: var(--surface-active);
|
|
13
|
+
--color-foreground-1: var(--foreground-1);
|
|
14
|
+
--color-foreground-2: var(--foreground-2);
|
|
15
|
+
--color-foreground-3: var(--foreground-3);
|
|
16
|
+
--color-foreground-4: var(--foreground-4);
|
|
17
|
+
--color-stroke-1: var(--stroke-1);
|
|
18
|
+
--color-stroke-2: var(--stroke-2);
|
|
19
|
+
--color-stroke-3: var(--stroke-3);
|
|
20
|
+
--color-stroke-4: var(--stroke-4);
|
|
21
|
+
--color-backdrop: var(--backdrop);
|
|
22
|
+
--color-focus-stroke: var(--focus-stroke);
|
|
23
|
+
|
|
24
|
+
--color-accent-1: var(--accent-1);
|
|
25
|
+
--color-accent-1-foreground: var(--accent-1-foreground);
|
|
26
|
+
--color-accent-1-stroke: var(--accent-1-stroke);
|
|
27
|
+
--color-accent-1-hover: var(--accent-1-hover);
|
|
28
|
+
--color-accent-1-active: var(--accent-1-active);
|
|
29
|
+
--color-accent-2: var(--accent-2);
|
|
30
|
+
--color-accent-2-foreground: var(--accent-2-foreground);
|
|
31
|
+
--color-accent-2-stroke: var(--accent-2-stroke);
|
|
32
|
+
--color-accent-2-hover: var(--accent-2-hover);
|
|
33
|
+
--color-accent-2-active: var(--accent-2-active);
|
|
34
|
+
--color-accent-3: var(--accent-3);
|
|
35
|
+
--color-accent-3-foreground: var(--accent-3-foreground);
|
|
36
|
+
--color-accent-3-stroke: var(--accent-3-stroke);
|
|
37
|
+
--color-accent-3-hover: var(--accent-3-hover);
|
|
38
|
+
--color-accent-3-active: var(--accent-3-active);
|
|
39
|
+
--color-accent-4: var(--accent-4);
|
|
40
|
+
--color-accent-4-foreground: var(--accent-4-foreground);
|
|
41
|
+
--color-accent-4-stroke: var(--accent-4-stroke);
|
|
42
|
+
--color-accent-4-hover: var(--accent-4-hover);
|
|
43
|
+
--color-accent-4-active: var(--accent-4-active);
|
|
44
|
+
|
|
45
|
+
--color-selection-surface: var(--selection-surface);
|
|
46
|
+
--color-selection-foreground: var(--selection-foreground);
|
|
47
|
+
--color-progress-track-surface: var(--progress-track-surface);
|
|
48
|
+
--color-progress-indicator-surface: var(--progress-indicator-surface);
|
|
49
|
+
--color-media-backdrop: var(--media-backdrop);
|
|
50
|
+
--color-media-surface: var(--media-surface);
|
|
51
|
+
--color-media-preview-backdrop: var(--media-preview-backdrop);
|
|
52
|
+
--color-media-preview-backdrop-hover: var(--media-preview-backdrop-hover);
|
|
53
|
+
--color-media-control-surface: var(--media-control-surface);
|
|
54
|
+
--color-media-control-foreground: var(--media-control-foreground);
|
|
55
|
+
--color-media-control-stroke: var(--media-control-stroke);
|
|
56
|
+
|
|
57
|
+
--color-success-100: var(--success-100);
|
|
58
|
+
--color-success-200: var(--success-200);
|
|
59
|
+
--color-success-300: var(--success-300);
|
|
60
|
+
--color-success-400: var(--success-400);
|
|
61
|
+
--color-success-500: var(--success-500);
|
|
62
|
+
--color-success-600: var(--success-600);
|
|
63
|
+
--color-success-700: var(--success-700);
|
|
64
|
+
--color-success-800: var(--success-800);
|
|
65
|
+
--color-success-900: var(--success-900);
|
|
66
|
+
--color-success-1000: var(--success-1000);
|
|
67
|
+
--color-success-1100: var(--success-1100);
|
|
68
|
+
--color-success-1200: var(--success-1200);
|
|
69
|
+
--color-warning-100: var(--warning-100);
|
|
70
|
+
--color-warning-200: var(--warning-200);
|
|
71
|
+
--color-warning-300: var(--warning-300);
|
|
72
|
+
--color-warning-400: var(--warning-400);
|
|
73
|
+
--color-warning-500: var(--warning-500);
|
|
74
|
+
--color-warning-600: var(--warning-600);
|
|
75
|
+
--color-warning-700: var(--warning-700);
|
|
76
|
+
--color-warning-800: var(--warning-800);
|
|
77
|
+
--color-warning-900: var(--warning-900);
|
|
78
|
+
--color-warning-1000: var(--warning-1000);
|
|
79
|
+
--color-warning-1100: var(--warning-1100);
|
|
80
|
+
--color-warning-1200: var(--warning-1200);
|
|
81
|
+
--color-danger-100: var(--danger-100);
|
|
82
|
+
--color-danger-200: var(--danger-200);
|
|
83
|
+
--color-danger-300: var(--danger-300);
|
|
84
|
+
--color-danger-400: var(--danger-400);
|
|
85
|
+
--color-danger-500: var(--danger-500);
|
|
86
|
+
--color-danger-600: var(--danger-600);
|
|
87
|
+
--color-danger-700: var(--danger-700);
|
|
88
|
+
--color-danger-800: var(--danger-800);
|
|
89
|
+
--color-danger-900: var(--danger-900);
|
|
90
|
+
--color-danger-1000: var(--danger-1000);
|
|
91
|
+
--color-danger-1100: var(--danger-1100);
|
|
92
|
+
--color-danger-1200: var(--danger-1200);
|
|
93
|
+
--color-info-100: var(--info-100);
|
|
94
|
+
--color-info-200: var(--info-200);
|
|
95
|
+
--color-info-300: var(--info-300);
|
|
96
|
+
--color-info-400: var(--info-400);
|
|
97
|
+
--color-info-500: var(--info-500);
|
|
98
|
+
--color-info-600: var(--info-600);
|
|
99
|
+
--color-info-700: var(--info-700);
|
|
100
|
+
--color-info-800: var(--info-800);
|
|
101
|
+
--color-info-900: var(--info-900);
|
|
102
|
+
--color-info-1000: var(--info-1000);
|
|
103
|
+
--color-info-1100: var(--info-1100);
|
|
104
|
+
--color-info-1200: var(--info-1200);
|
|
105
|
+
|
|
106
|
+
--color-floating-surface-1: var(--floating-surface-1);
|
|
107
|
+
--color-floating-surface-2: var(--floating-surface-2);
|
|
108
|
+
--color-floating-surface-3: var(--floating-surface-3);
|
|
109
|
+
--color-floating-surface-4: var(--floating-surface-4);
|
|
110
|
+
--color-floating-foreground-1: var(--floating-foreground-1);
|
|
111
|
+
--color-floating-foreground-2: var(--floating-foreground-2);
|
|
112
|
+
--color-floating-foreground-3: var(--floating-foreground-3);
|
|
113
|
+
--color-floating-foreground-4: var(--floating-foreground-4);
|
|
114
|
+
--color-floating-stroke-1: var(--floating-stroke-1);
|
|
115
|
+
--color-floating-stroke-2: var(--floating-stroke-2);
|
|
116
|
+
--color-floating-stroke-3: var(--floating-stroke-3);
|
|
117
|
+
--color-floating-stroke-4: var(--floating-stroke-4);
|
|
118
|
+
|
|
119
|
+
--radius-avatar: var(--radius-avatar);
|
|
120
|
+
--radius-button: var(--radius-button);
|
|
121
|
+
--radius-callout: var(--radius-callout);
|
|
122
|
+
--radius-card: var(--radius-card);
|
|
123
|
+
--radius-checkbox: var(--radius-checkbox);
|
|
124
|
+
--radius-codeblock: var(--radius-codeblock);
|
|
125
|
+
--radius-container: var(--radius-container);
|
|
126
|
+
--radius-dialog: var(--radius-dialog);
|
|
127
|
+
--radius-inline-code: var(--radius-inline-code);
|
|
128
|
+
--radius-input: var(--radius-input);
|
|
129
|
+
--radius-kbd: var(--radius-kbd);
|
|
130
|
+
--radius-media: var(--radius-media);
|
|
131
|
+
--radius-menu: var(--radius-menu);
|
|
132
|
+
--radius-panel: var(--radius-panel);
|
|
133
|
+
--radius-popup: var(--radius-popup);
|
|
134
|
+
--radius-radio: var(--radius-radio);
|
|
135
|
+
--radius-scrollarea: var(--radius-scrollarea);
|
|
136
|
+
--radius-scrollbar-thumb: var(--radius-scrollbar-thumb);
|
|
137
|
+
--radius-select: var(--radius-select);
|
|
138
|
+
--radius-spinner: var(--radius-spinner);
|
|
139
|
+
--radius-switch-thumb: var(--radius-switch-thumb);
|
|
140
|
+
--radius-switch-track: var(--radius-switch-track);
|
|
141
|
+
--radius-table: var(--radius-table);
|
|
142
|
+
--radius-tag: var(--radius-tag);
|
|
143
|
+
--radius-tooltip: var(--radius-tooltip);
|
|
144
|
+
|
|
145
|
+
--z-index-content: var(--z-content);
|
|
146
|
+
--z-index-nav: var(--z-nav);
|
|
147
|
+
--z-index-overlay: var(--z-overlay);
|
|
148
|
+
--z-index-modal: var(--z-modal);
|
|
149
|
+
--z-index-search: var(--z-search);
|
|
150
|
+
--z-index-toast: var(--z-toast);
|
|
151
|
+
--z-index-progress: var(--z-progress);
|
|
152
|
+
|
|
153
|
+
--spacing-layout-site-max-width: var(--layout-site-max-width);
|
|
154
|
+
--spacing-layout-sidebar-width: var(--layout-sidebar-width);
|
|
155
|
+
--spacing-layout-content-max-width: var(--layout-content-max-width);
|
|
156
|
+
--spacing-layout-toc-width: var(--layout-toc-width);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@layer base {
|
|
160
|
+
*,
|
|
161
|
+
*::before,
|
|
162
|
+
*::after {
|
|
163
|
+
box-sizing: border-box;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
html {
|
|
167
|
+
min-height: 100%;
|
|
168
|
+
font-family: var(--font-main);
|
|
169
|
+
-webkit-font-smoothing: antialiased;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
[data-theme-root] {
|
|
173
|
+
font-family: var(--font-main);
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
body {
|
|
177
|
+
min-height: 100%;
|
|
178
|
+
margin: 0;
|
|
179
|
+
background-color: var(--surface-page);
|
|
180
|
+
color: var(--foreground-2);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.publish-os-app-root {
|
|
184
|
+
isolation: isolate;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
::selection {
|
|
188
|
+
background-color: var(--selection-surface);
|
|
189
|
+
color: var(--selection-foreground);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Navbar } from "@components/blocks/navbar";
|
|
2
|
+
import type { RootLayoutProps } from "@publish.os/nextjs/types";
|
|
3
|
+
import { faviconsAndLogos } from "@source/.publishos/favicons-and-logos.generated";
|
|
4
|
+
import { log } from "@source/_internal/logger";
|
|
5
|
+
|
|
6
|
+
export default function DefaultRootLayout(props: RootLayoutProps) {
|
|
7
|
+
const { children, site, tree } = props;
|
|
8
|
+
log.debug("[default:root-layout]", {
|
|
9
|
+
site: site.name,
|
|
10
|
+
treeItems: tree.length,
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className="flex min-h-dvh flex-col bg-surface-2">
|
|
15
|
+
<Navbar logo={faviconsAndLogos.logo} site={site} tree={tree} />
|
|
16
|
+
<main className="flex w-full flex-1 flex-col">{children}</main>
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { Link } from "@components/ui/link";
|
|
2
|
+
import type {
|
|
3
|
+
LinkNode,
|
|
4
|
+
RootPageProps,
|
|
5
|
+
SectionNode,
|
|
6
|
+
TreeNode,
|
|
7
|
+
} from "@publish.os/nextjs/types";
|
|
8
|
+
import { log } from "@source/_internal/logger";
|
|
9
|
+
|
|
10
|
+
type RootNavNode = LinkNode | (SectionNode & { path: string });
|
|
11
|
+
|
|
12
|
+
function rootNavNodes(nodes: TreeNode[]): RootNavNode[] {
|
|
13
|
+
return nodes.filter((node): node is RootNavNode => {
|
|
14
|
+
if (node.type === "link") return true;
|
|
15
|
+
return node.type === "section" && typeof node.path === "string";
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default function HomePage(props: RootPageProps) {
|
|
20
|
+
log.debug("[default:root-page]", props);
|
|
21
|
+
const { site, tree } = props;
|
|
22
|
+
const navNodes = rootNavNodes(tree);
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<section className="mx-auto grid min-h-[calc(100vh_-_var(--layout-global-nav-height))] w-full max-w-(--layout-site-max-width) grid-cols-1 border-x border-stroke-3 bg-surface-1 md:grid-cols-[var(--layout-sidebar-width)_minmax(0,1fr)_var(--layout-toc-width)] supports-[height:100dvh]:min-h-[calc(100dvh_-_var(--layout-global-nav-height))] supports-[top:anchor-size(--global-navbar_height)]:min-h-[calc(100vh_-_anchor-size(--global-navbar_height,3.5rem))] supports-[top:anchor-size(--global-navbar_height)]:supports-[height:100dvh]:min-h-[calc(100dvh_-_anchor-size(--global-navbar_height,3.5rem))]">
|
|
26
|
+
<div className="hidden md:block" />
|
|
27
|
+
<main className="flex min-w-0 items-start justify-center px-6 pb-16 pt-[clamp(5rem,18vh,10rem)] text-foreground-1 lg:px-10">
|
|
28
|
+
<div className="w-full max-w-md">
|
|
29
|
+
<p className="mb-6 text-sm font-semibold text-foreground-1">
|
|
30
|
+
{site.name}
|
|
31
|
+
</p>
|
|
32
|
+
<h1 className="max-w-sm text-balance text-xl font-semibold leading-7 tracking-tight text-foreground-1">
|
|
33
|
+
{site.description ??
|
|
34
|
+
"Documentation, guides, and reference content for this site."}
|
|
35
|
+
</h1>
|
|
36
|
+
|
|
37
|
+
{navNodes.length > 0 ? (
|
|
38
|
+
<nav aria-label="Site sections" className="mt-8">
|
|
39
|
+
<ul className="flex flex-col gap-2 text-sm">
|
|
40
|
+
{navNodes.map((node) => (
|
|
41
|
+
<li key={node.id}>
|
|
42
|
+
{node.type === "link" ? (
|
|
43
|
+
<Link href={node.href} rightIcon="->" size="sm">
|
|
44
|
+
{node.title}
|
|
45
|
+
</Link>
|
|
46
|
+
) : (
|
|
47
|
+
<Link href={node.path} rightIcon="->" size="sm">
|
|
48
|
+
{node.title}
|
|
49
|
+
</Link>
|
|
50
|
+
)}
|
|
51
|
+
</li>
|
|
52
|
+
))}
|
|
53
|
+
</ul>
|
|
54
|
+
</nav>
|
|
55
|
+
) : null}
|
|
56
|
+
</div>
|
|
57
|
+
</main>
|
|
58
|
+
<div className="hidden md:block" />
|
|
59
|
+
</section>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* Complete monochrome defaults. Project theme.css loads after this file. */
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--theme-radius: var(--theme-radius-md);
|
|
5
|
+
|
|
6
|
+
--gray-100: #ffffff;
|
|
7
|
+
--gray-200: #fafafa;
|
|
8
|
+
--gray-300: #f5f5f5;
|
|
9
|
+
--gray-400: #eeeeee;
|
|
10
|
+
--gray-500: #e5e5e5;
|
|
11
|
+
--gray-600: #d4d4d4;
|
|
12
|
+
--gray-700: #a3a3a3;
|
|
13
|
+
--gray-800: #737373;
|
|
14
|
+
--gray-900: #525252;
|
|
15
|
+
--gray-1000: #404040;
|
|
16
|
+
--gray-1100: #262626;
|
|
17
|
+
--gray-1200: #000000;
|
|
18
|
+
|
|
19
|
+
--neutral-100: var(--gray-100);
|
|
20
|
+
--neutral-200: var(--gray-200);
|
|
21
|
+
--neutral-300: var(--gray-300);
|
|
22
|
+
--neutral-400: var(--gray-400);
|
|
23
|
+
--neutral-500: var(--gray-500);
|
|
24
|
+
--neutral-600: var(--gray-600);
|
|
25
|
+
--neutral-700: var(--gray-700);
|
|
26
|
+
--neutral-800: var(--gray-800);
|
|
27
|
+
--neutral-900: var(--gray-900);
|
|
28
|
+
--neutral-1000: var(--gray-1000);
|
|
29
|
+
--neutral-1100: var(--gray-1100);
|
|
30
|
+
--neutral-1200: var(--gray-1200);
|
|
31
|
+
|
|
32
|
+
--accent: var(--gray-1200);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.dark {
|
|
36
|
+
--gray-100: #000000;
|
|
37
|
+
--gray-200: #0a0a0a;
|
|
38
|
+
--gray-300: #171717;
|
|
39
|
+
--gray-400: #262626;
|
|
40
|
+
--gray-500: #404040;
|
|
41
|
+
--gray-600: #525252;
|
|
42
|
+
--gray-700: #737373;
|
|
43
|
+
--gray-800: #a3a3a3;
|
|
44
|
+
--gray-900: #d4d4d4;
|
|
45
|
+
--gray-1000: #e5e5e5;
|
|
46
|
+
--gray-1100: #f5f5f5;
|
|
47
|
+
--gray-1200: #ffffff;
|
|
48
|
+
|
|
49
|
+
--accent: var(--gray-1200);
|
|
50
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const isDev = process.env.NODE_ENV !== "production";
|
|
2
|
+
const isDebugEnabled = process.env.NEXT_PRIVATE_DEBUG_CACHE === "1";
|
|
3
|
+
|
|
4
|
+
export const log = {
|
|
5
|
+
debug(...args: unknown[]) {
|
|
6
|
+
// biome-ignore lint/suspicious/noConsole: generated runtime logger intentionally writes render diagnostics.
|
|
7
|
+
if (isDev && isDebugEnabled) console.debug("[publish.os:debug]", ...args);
|
|
8
|
+
},
|
|
9
|
+
info(...args: unknown[]) {
|
|
10
|
+
// biome-ignore lint/suspicious/noConsole: generated runtime logger intentionally writes render diagnostics.
|
|
11
|
+
console.log("[publish.os]", ...args);
|
|
12
|
+
},
|
|
13
|
+
warn(...args: unknown[]) {
|
|
14
|
+
// biome-ignore lint/suspicious/noConsole: generated runtime logger intentionally writes render diagnostics.
|
|
15
|
+
console.warn("[publish.os:warn]", ...args);
|
|
16
|
+
},
|
|
17
|
+
error(...args: unknown[]) {
|
|
18
|
+
// biome-ignore lint/suspicious/noConsole: generated runtime logger intentionally writes render diagnostics.
|
|
19
|
+
console.error("[publish.os:error]", ...args);
|
|
20
|
+
},
|
|
21
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import manifest from "@manifest";
|
|
2
|
+
import { createGroupLayout } from "@publish.os/nextjs/kernel/routes/layouts/group";
|
|
3
|
+
import type { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
__PUBLISHOS_THEME_IMPORTS__;
|
|
6
|
+
__PUBLISHOS_LAYOUT_IMPORTS__;
|
|
7
|
+
|
|
8
|
+
const route = {
|
|
9
|
+
group: __PUBLISHOS_GROUP_KEY__,
|
|
10
|
+
manifest,
|
|
11
|
+
layouts: [__PUBLISHOS_LAYOUTS__],
|
|
12
|
+
} as const;
|
|
13
|
+
|
|
14
|
+
const GroupLayout = createGroupLayout(route);
|
|
15
|
+
|
|
16
|
+
export default function GeneratedGroupLayout(props: { children: ReactNode }) {
|
|
17
|
+
__PUBLISHOS_FONT_PRELOADS__;
|
|
18
|
+
return <GroupLayout {...props} />;
|
|
19
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import manifest from "@manifest";
|
|
2
|
+
import {
|
|
3
|
+
createGroupMetadata,
|
|
4
|
+
createGroupPage,
|
|
5
|
+
} from "@publish.os/nextjs/kernel/routes/pages/group";
|
|
6
|
+
import { ogManifest } from "@source/.publishos/og-manifest.generated";
|
|
7
|
+
import IndexPage from "@source/__PUBLISHOS_OWNER_KEY__/page";
|
|
8
|
+
import type { Metadata } from "next";
|
|
9
|
+
|
|
10
|
+
const route = {
|
|
11
|
+
group: __PUBLISHOS_GROUP_KEY__,
|
|
12
|
+
manifest,
|
|
13
|
+
ogManifest,
|
|
14
|
+
IndexPage,
|
|
15
|
+
} as const;
|
|
16
|
+
|
|
17
|
+
export default createGroupPage(route);
|
|
18
|
+
export const metadata: Metadata = createGroupMetadata(route);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import manifest from "@manifest";
|
|
2
|
+
import {
|
|
3
|
+
createLeafMetadata,
|
|
4
|
+
createLeafPage,
|
|
5
|
+
createLeafStaticParams,
|
|
6
|
+
} from "@publish.os/nextjs/kernel/routes/pages/leaf";
|
|
7
|
+
import { ogManifest } from "@source/.publishos/og-manifest.generated";
|
|
8
|
+
import Leaf from "@source/__PUBLISHOS_OWNER_KEY__/leaf";
|
|
9
|
+
import { PoweredByFooter } from "@source/_internal/powered-by-footer.generated";
|
|
10
|
+
|
|
11
|
+
const route = {
|
|
12
|
+
group: __PUBLISHOS_GROUP_KEY__,
|
|
13
|
+
manifest,
|
|
14
|
+
ogManifest,
|
|
15
|
+
Leaf,
|
|
16
|
+
PoweredByFooter,
|
|
17
|
+
} as const;
|
|
18
|
+
|
|
19
|
+
export default createLeafPage(route);
|
|
20
|
+
export const generateMetadata = createLeafMetadata(route);
|
|
21
|
+
export const generateStaticParams = createLeafStaticParams(route);
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import manifest from "@manifest";
|
|
2
|
+
import "@source/.fonts.generated.css";
|
|
3
|
+
import { Providers } from "@app/providers";
|
|
4
|
+
import { preloadRootFonts, rootFontClassName } from "@source/.fonts.generated";
|
|
5
|
+
import { faviconsAndLogos } from "@source/.publishos/favicons-and-logos.generated";
|
|
6
|
+
import { ogManifest } from "@source/.publishos/og-manifest.generated";
|
|
7
|
+
import RootLayout from "@source/layout";
|
|
8
|
+
import type { Metadata } from "next";
|
|
9
|
+
import type { ReactNode } from "react";
|
|
10
|
+
import "@app/globals.css";
|
|
11
|
+
|
|
12
|
+
const siteDescription =
|
|
13
|
+
"description" in manifest.site &&
|
|
14
|
+
typeof manifest.site.description === "string"
|
|
15
|
+
? manifest.site.description
|
|
16
|
+
: undefined;
|
|
17
|
+
const siteUrl =
|
|
18
|
+
"url" in manifest.site && typeof manifest.site.url === "string"
|
|
19
|
+
? manifest.site.url
|
|
20
|
+
: undefined;
|
|
21
|
+
const isDevelopment = process.env.NODE_ENV === "development";
|
|
22
|
+
const metadataBase = isDevelopment
|
|
23
|
+
? new URL(`http://localhost:${process.env.PORT ?? "3000"}`)
|
|
24
|
+
: siteUrl
|
|
25
|
+
? new URL(siteUrl)
|
|
26
|
+
: undefined;
|
|
27
|
+
type GeneratedMetadataIcons = {
|
|
28
|
+
icon?: readonly {
|
|
29
|
+
media?: string;
|
|
30
|
+
sizes?: string;
|
|
31
|
+
type?: string;
|
|
32
|
+
url: string;
|
|
33
|
+
}[];
|
|
34
|
+
apple?: readonly {
|
|
35
|
+
sizes?: string;
|
|
36
|
+
type?: string;
|
|
37
|
+
url: string;
|
|
38
|
+
}[];
|
|
39
|
+
};
|
|
40
|
+
const generatedMetadataIcons =
|
|
41
|
+
faviconsAndLogos.metadataIcons as GeneratedMetadataIcons;
|
|
42
|
+
const metadataIcons: Metadata["icons"] | undefined =
|
|
43
|
+
Object.keys(generatedMetadataIcons).length > 0
|
|
44
|
+
? {
|
|
45
|
+
...(generatedMetadataIcons.icon
|
|
46
|
+
? { icon: [...generatedMetadataIcons.icon] }
|
|
47
|
+
: {}),
|
|
48
|
+
...(generatedMetadataIcons.apple
|
|
49
|
+
? { apple: [...generatedMetadataIcons.apple] }
|
|
50
|
+
: {}),
|
|
51
|
+
}
|
|
52
|
+
: undefined;
|
|
53
|
+
const rootOgKey = ogManifest.routes["/"];
|
|
54
|
+
const rootOgImage = rootOgKey ? ogManifest.entries[rootOgKey] : undefined;
|
|
55
|
+
const absoluteUrl = (path: string): string => {
|
|
56
|
+
if (/^https:\/\//.test(path)) return path;
|
|
57
|
+
if (isDevelopment || !siteUrl) return path;
|
|
58
|
+
return new URL(path, siteUrl).toString();
|
|
59
|
+
};
|
|
60
|
+
const rootSocialMetadata: Pick<Metadata, "openGraph" | "twitter"> | undefined =
|
|
61
|
+
rootOgImage
|
|
62
|
+
? {
|
|
63
|
+
openGraph: {
|
|
64
|
+
description: siteDescription,
|
|
65
|
+
images: [
|
|
66
|
+
{
|
|
67
|
+
alt: rootOgImage.alt,
|
|
68
|
+
height: rootOgImage.height,
|
|
69
|
+
url: absoluteUrl(rootOgImage.url),
|
|
70
|
+
width: rootOgImage.width,
|
|
71
|
+
},
|
|
72
|
+
],
|
|
73
|
+
siteName: manifest.site.name,
|
|
74
|
+
title: manifest.site.name,
|
|
75
|
+
type: "website",
|
|
76
|
+
url: "/",
|
|
77
|
+
},
|
|
78
|
+
twitter: {
|
|
79
|
+
card: "summary_large_image",
|
|
80
|
+
description: siteDescription,
|
|
81
|
+
images: [absoluteUrl(rootOgImage.url)],
|
|
82
|
+
title: manifest.site.name,
|
|
83
|
+
},
|
|
84
|
+
}
|
|
85
|
+
: undefined;
|
|
86
|
+
const agentDirectiveStyle = {
|
|
87
|
+
border: 0,
|
|
88
|
+
clip: "rect(0 0 0 0)",
|
|
89
|
+
clipPath: "inset(50%)",
|
|
90
|
+
height: "1px",
|
|
91
|
+
margin: "-1px",
|
|
92
|
+
overflow: "hidden",
|
|
93
|
+
padding: 0,
|
|
94
|
+
position: "absolute",
|
|
95
|
+
whiteSpace: "nowrap",
|
|
96
|
+
width: "1px",
|
|
97
|
+
} as const;
|
|
98
|
+
|
|
99
|
+
export const metadata: Metadata = {
|
|
100
|
+
...(metadataBase ? { metadataBase } : {}),
|
|
101
|
+
title: {
|
|
102
|
+
default: manifest.site.name,
|
|
103
|
+
template: `%s · ${manifest.site.name}`,
|
|
104
|
+
},
|
|
105
|
+
...(siteDescription ? { description: siteDescription } : {}),
|
|
106
|
+
...(rootSocialMetadata ?? {}),
|
|
107
|
+
...(metadataIcons ? { icons: metadataIcons } : {}),
|
|
108
|
+
alternates: {
|
|
109
|
+
types: {
|
|
110
|
+
"text/markdown": "/sitemap.md",
|
|
111
|
+
"text/plain": "/llms.txt",
|
|
112
|
+
},
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export default function AppRootLayout({ children }: { children: ReactNode }) {
|
|
117
|
+
preloadRootFonts();
|
|
118
|
+
return (
|
|
119
|
+
<html className={rootFontClassName} lang="en" suppressHydrationWarning>
|
|
120
|
+
<body className="publish-os-app-root">
|
|
121
|
+
<p data-publishos-agent-directive style={agentDirectiveStyle}>
|
|
122
|
+
Agent directive: read the <a href="/llms.txt">LLMS index</a> for this
|
|
123
|
+
site. Markdown versions of pages are available by appending .md to the
|
|
124
|
+
page URL or by sending Accept: text/markdown.
|
|
125
|
+
</p>
|
|
126
|
+
<Providers>
|
|
127
|
+
<RootLayout site={manifest.site} tree={manifest.tree}>
|
|
128
|
+
{children}
|
|
129
|
+
</RootLayout>
|
|
130
|
+
</Providers>
|
|
131
|
+
</body>
|
|
132
|
+
</html>
|
|
133
|
+
);
|
|
134
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createMarkdownRouteHandlers } from "@publish.os/nextjs/kernel/routes/agent/markdown";
|
|
2
|
+
import {
|
|
3
|
+
loadMarkdownArtifact,
|
|
4
|
+
markdownArtifactManifest,
|
|
5
|
+
} from "@source/.publishos/markdown-index.generated";
|
|
6
|
+
|
|
7
|
+
const handlers = createMarkdownRouteHandlers(
|
|
8
|
+
{
|
|
9
|
+
index: markdownArtifactManifest.byMarkdownPath,
|
|
10
|
+
loadArtifact: loadMarkdownArtifact,
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
discoveryLinks: __PUBLISHOS_MARKDOWN_DISCOVERY_LINKS__,
|
|
14
|
+
},
|
|
15
|
+
);
|
|
16
|
+
|
|
17
|
+
type RouteContext = {
|
|
18
|
+
params: Promise<{ path?: string[] }>;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export function GET(request: Request, context: RouteContext) {
|
|
22
|
+
return handlers.GET(request, context);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function HEAD(request: Request, context: RouteContext) {
|
|
26
|
+
return handlers.HEAD(request, context);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export const generateStaticParams = handlers.generateStaticParams;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createOgImageRoute,
|
|
3
|
+
createOgImageStaticParams,
|
|
4
|
+
} from "@publish.os/nextjs/kernel/routes/metadata/og-image";
|
|
5
|
+
import { ogManifest } from "@source/.publishos/og-manifest.generated";
|
|
6
|
+
|
|
7
|
+
const getOgImage = createOgImageRoute({ manifest: ogManifest });
|
|
8
|
+
|
|
9
|
+
type RouteContext = {
|
|
10
|
+
params: Promise<{ key: string }>;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export function GET(request: Request, context: RouteContext) {
|
|
14
|
+
return getOgImage(request, context);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const generateStaticParams = () =>
|
|
18
|
+
createOgImageStaticParams({ manifest: ogManifest });
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ResolvedAttribution } from "@publish.os/nextjs/types";
|
|
2
|
+
|
|
3
|
+
type PoweredByFooterProps = {
|
|
4
|
+
attribution: ResolvedAttribution;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
const styles = {
|
|
8
|
+
attr: "flex min-h-6 w-full justify-end font-sans text-[max(12px,0.8rem)] leading-[max(16px,1.5rem)] tracking-normal",
|
|
9
|
+
hrefLabel:
|
|
10
|
+
"inline underline decoration-stroke-3 decoration-1 underline-offset-[0.16em] transition-colors duration-100 ease-out group-hover/link:decoration-stroke-2 group-active/link:decoration-stroke-2 group-hover/link:text-foreground-1",
|
|
11
|
+
link: "group/link inline-flex items-center gap-1 px-1 rounded-button text-foreground-3 !no-underline transition-colors duration-100 ease-out hover:!no-underline active:!no-underline focus-visible:outline-2 focus-visible:outline-offset-0 focus-visible:outline-focus-stroke",
|
|
12
|
+
root: "!visible !block w-full py-8 !opacity-100",
|
|
13
|
+
rule: "mb-3.5 w-full border-stroke-3 border-t",
|
|
14
|
+
} as const;
|
|
15
|
+
|
|
16
|
+
export function PoweredByFooter({ attribution }: PoweredByFooterProps) {
|
|
17
|
+
if (!attribution.enabled) {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const label = attribution.label ?? "Powered by";
|
|
22
|
+
const hrefLabel = attribution.hrefLabel ?? "publish.dev";
|
|
23
|
+
|
|
24
|
+
return (
|
|
25
|
+
<footer className={styles.root} data-publishos-attribution-footer>
|
|
26
|
+
<div className={styles.rule} />
|
|
27
|
+
<div className={styles.attr}>
|
|
28
|
+
<a
|
|
29
|
+
className={styles.link}
|
|
30
|
+
href={attribution.href}
|
|
31
|
+
rel="noopener noreferrer"
|
|
32
|
+
target="_blank"
|
|
33
|
+
>
|
|
34
|
+
<span>{label}</span>
|
|
35
|
+
<span className={styles.hrefLabel}>{hrefLabel}</span>
|
|
36
|
+
</a>
|
|
37
|
+
</div>
|
|
38
|
+
</footer>
|
|
39
|
+
);
|
|
40
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { PublishOSThemeProvider } from "@app/publish-os-theme-provider";
|
|
4
|
+
import { KeyboardShortcutsProvider } from "@publish.os/nextjs/keyboard-shortcuts";
|
|
5
|
+
import type { ReactNode } from "react";
|
|
6
|
+
|
|
7
|
+
export function Providers({ children }: { children: ReactNode }) {
|
|
8
|
+
return (
|
|
9
|
+
<KeyboardShortcutsProvider>
|
|
10
|
+
<PublishOSThemeProvider>{children}</PublishOSThemeProvider>
|
|
11
|
+
</KeyboardShortcutsProvider>
|
|
12
|
+
);
|
|
13
|
+
}
|