polen 0.10.0-next.14 → 0.10.0-next.4
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 +1 -2
- package/build/api/builder/builder.js +1 -1
- package/build/api/builder/builder.js.map +1 -1
- package/build/api/config/load.js +6 -6
- package/build/api/config/load.js.map +1 -1
- package/build/api/config-resolver/resolve.js +2 -2
- package/build/api/config-resolver/resolve.js.map +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.js +1 -1
- package/build/api/schema/data-sources/schema-directory/schema-directory.js.map +1 -1
- package/build/api/vite/plugins/branding/index.js +4 -4
- package/build/api/vite/plugins/branding/index.js.map +1 -1
- package/build/api/vite/plugins/build.d.ts.map +1 -1
- package/build/api/vite/plugins/build.js +4 -12
- package/build/api/vite/plugins/build.js.map +1 -1
- package/build/api/vite/plugins/core.d.ts +2 -2
- package/build/api/vite/plugins/core.d.ts.map +1 -1
- package/build/api/vite/plugins/core.js +13 -13
- package/build/api/vite/plugins/core.js.map +1 -1
- package/build/api/vite/plugins/pages.d.ts +14 -8
- package/build/api/vite/plugins/pages.d.ts.map +1 -1
- package/build/api/vite/plugins/pages.js +185 -111
- package/build/api/vite/plugins/pages.js.map +1 -1
- package/build/api/vite/plugins/serve.d.ts.map +1 -1
- package/build/api/vite/plugins/serve.js +12 -52
- package/build/api/vite/plugins/serve.js.map +1 -1
- package/build/cli/_/self-contained-mode.js +5 -5
- package/build/cli/_/self-contained-mode.js.map +1 -1
- package/build/lib/demos/config-schema.d.ts +20 -20
- package/build/lib/file-router/diagnostic-reporter.js +2 -2
- package/build/lib/file-router/diagnostic-reporter.js.map +1 -1
- package/build/lib/file-router/file-router.d.ts +2 -0
- package/build/lib/file-router/file-router.d.ts.map +1 -1
- package/build/lib/file-router/file-router.js +2 -0
- package/build/lib/file-router/file-router.js.map +1 -1
- package/build/lib/file-router/route.d.ts +0 -2
- package/build/lib/file-router/route.d.ts.map +1 -1
- package/build/lib/file-router/route.js.map +1 -1
- package/build/lib/file-router/scan-tree.d.ts +20 -0
- package/build/lib/file-router/scan-tree.d.ts.map +1 -0
- package/build/lib/file-router/scan-tree.js +158 -0
- package/build/lib/file-router/scan-tree.js.map +1 -0
- package/build/lib/file-router/scan.d.ts.map +1 -1
- package/build/lib/file-router/scan.js +13 -22
- package/build/lib/file-router/scan.js.map +1 -1
- package/build/lib/file-router/sidebar/index.d.ts +3 -0
- package/build/lib/file-router/sidebar/index.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/index.js +4 -0
- package/build/lib/file-router/sidebar/index.js.map +1 -0
- package/build/lib/file-router/sidebar/sidebar-tree.d.ts +9 -0
- package/build/lib/file-router/sidebar/sidebar-tree.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/sidebar-tree.js +85 -0
- package/build/lib/file-router/sidebar/sidebar-tree.js.map +1 -0
- package/build/lib/file-router/sidebar/types.d.ts +17 -0
- package/build/lib/file-router/sidebar/types.d.ts.map +1 -0
- package/build/lib/file-router/sidebar/types.js.map +1 -0
- package/build/lib/github-actions/runner.js +2 -2
- package/build/lib/github-actions/runner.js.map +1 -1
- package/build/lib/github-actions/schemas/context.d.ts +2 -2
- package/build/lib/kit-temp.d.ts +0 -103
- package/build/lib/kit-temp.d.ts.map +1 -1
- package/build/lib/kit-temp.js +3 -239
- package/build/lib/kit-temp.js.map +1 -1
- package/build/lib/tree/index.d.ts +3 -0
- package/build/lib/tree/index.d.ts.map +1 -0
- package/build/lib/tree/index.js +2 -0
- package/build/lib/tree/index.js.map +1 -0
- package/build/lib/tree/tree.d.ts +62 -0
- package/build/lib/tree/tree.d.ts.map +1 -0
- package/build/lib/tree/tree.js +134 -0
- package/build/lib/tree/tree.js.map +1 -0
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts +8 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.d.ts.map +1 -1
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js +53 -48
- package/build/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.js.map +1 -1
- package/build/package-paths.js +3 -3
- package/build/package-paths.js.map +1 -1
- package/build/sandbox.js +2 -17
- package/build/sandbox.js.map +1 -1
- package/build/singletons/debug.d.ts +1 -1
- package/build/singletons/debug.d.ts.map +1 -1
- package/build/singletons/debug.js +1 -1
- package/build/singletons/debug.js.map +1 -1
- package/build/template/components/ArgumentAnnotation.jsx +16 -0
- package/build/template/components/ArgumentAnnotation.jsx.map +1 -0
- package/build/template/components/ArgumentList.jsx +16 -0
- package/build/template/components/ArgumentList.jsx.map +1 -0
- package/build/template/components/ArgumentListAnnotation.jsx +23 -0
- package/build/template/components/ArgumentListAnnotation.jsx.map +1 -0
- package/build/template/components/Changelog.jsx +68 -0
- package/build/template/components/Changelog.jsx.map +1 -0
- package/build/template/components/{CodeBlock.js → CodeBlock.jsx} +5 -4
- package/build/template/components/{CodeBlock.js.map → CodeBlock.jsx.map} +1 -1
- package/build/template/components/DeprecationReason.jsx +10 -0
- package/build/template/components/DeprecationReason.jsx.map +1 -0
- package/build/template/components/Description.jsx +10 -0
- package/build/template/components/Description.jsx.map +1 -0
- package/build/template/components/Field.jsx +22 -0
- package/build/template/components/Field.jsx.map +1 -0
- package/build/template/components/{FieldList.js → FieldList.jsx} +5 -4
- package/build/template/components/FieldList.jsx.map +1 -0
- package/build/template/components/{FieldListSection.js → FieldListSection.jsx} +6 -4
- package/build/template/components/FieldListSection.jsx.map +1 -0
- package/build/template/components/Link.d.ts +2 -2
- package/build/template/components/Link.d.ts.map +1 -1
- package/build/template/components/{Link.js → Link.jsx} +9 -17
- package/build/template/components/Link.jsx.map +1 -0
- package/build/template/components/Logo.jsx +29 -0
- package/build/template/components/Logo.jsx.map +1 -0
- package/build/template/components/{Markdown.js → Markdown.jsx} +2 -3
- package/build/template/components/Markdown.jsx.map +1 -0
- package/build/template/components/MissingSchema.d.ts +1 -1
- package/build/template/components/MissingSchema.d.ts.map +1 -1
- package/build/template/components/MissingSchema.jsx +4 -0
- package/build/template/components/MissingSchema.jsx.map +1 -0
- package/build/template/components/NamedType.jsx +17 -0
- package/build/template/components/NamedType.jsx.map +1 -0
- package/build/template/components/{RadixLink.js → RadixLink.jsx} +1 -1
- package/build/template/components/RadixLink.jsx.map +1 -0
- package/build/template/components/Texts/{MinorHeading.js → MinorHeading.jsx} +3 -4
- package/build/template/components/Texts/MinorHeading.jsx.map +1 -0
- package/build/template/components/Texts/texts.js +1 -1
- package/build/template/components/Texts/texts.js.map +1 -1
- package/build/template/components/{TypeAnnotation.js → TypeAnnotation.jsx} +18 -8
- package/build/template/components/TypeAnnotation.jsx.map +1 -0
- package/build/template/components/TypeFieldsLinkList.jsx +17 -0
- package/build/template/components/TypeFieldsLinkList.jsx.map +1 -0
- package/build/template/components/TypeIndex.jsx +27 -0
- package/build/template/components/TypeIndex.jsx.map +1 -0
- package/build/template/components/graphql/graphql.d.ts +2 -2
- package/build/template/components/graphql/graphql.jsx +3 -0
- package/build/template/components/graphql/graphql.jsx.map +1 -0
- package/build/template/components/graphql/index.d.ts +1 -1
- package/build/template/components/graphql/index.js +1 -1
- package/build/template/components/graphql/index.js.map +1 -1
- package/build/template/components/graphql/{type-kind-icon.js → type-kind-icon.jsx} +2 -3
- package/build/template/components/graphql/type-kind-icon.jsx.map +1 -0
- package/build/template/components/graphql/type-link.jsx +16 -0
- package/build/template/components/graphql/type-link.jsx.map +1 -0
- package/build/template/components/sidebar/Sidebar.d.ts +3 -3
- package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
- package/build/template/components/sidebar/Sidebar.jsx +15 -0
- package/build/template/components/sidebar/Sidebar.jsx.map +1 -0
- package/build/template/components/sidebar/SidebarItem.d.ts +3 -3
- package/build/template/components/sidebar/SidebarItem.d.ts.map +1 -1
- package/build/template/components/sidebar/{SidebarItem.js → SidebarItem.jsx} +35 -18
- package/build/template/components/sidebar/SidebarItem.jsx.map +1 -0
- package/build/template/components/sidebar/ToggleButton.d.ts +1 -1
- package/build/template/components/sidebar/ToggleButton.d.ts.map +1 -1
- package/build/template/components/sidebar/ToggleButton.jsx +6 -0
- package/build/template/components/sidebar/ToggleButton.jsx.map +1 -0
- package/build/template/entry.client.d.ts +0 -1
- package/build/template/entry.client.d.ts.map +1 -1
- package/build/template/{entry.client.js → entry.client.jsx} +9 -5
- package/build/template/entry.client.jsx.map +1 -0
- package/build/template/routes/changelog.d.ts +1 -1
- package/build/template/routes/{changelog.js → changelog.jsx} +4 -5
- package/build/template/routes/changelog.jsx.map +1 -0
- package/build/template/routes/{index.js → index.jsx} +2 -3
- package/build/template/routes/index.jsx.map +1 -0
- package/build/template/routes/reference.$type.$field.d.ts +1 -1
- package/build/template/routes/{reference.$type.$field.js → reference.$type.$field.jsx} +5 -6
- package/build/template/routes/reference.$type.$field.jsx.map +1 -0
- package/build/template/routes/reference.$type.d.ts +1 -1
- package/build/template/routes/{reference.$type.js → reference.$type.jsx} +5 -6
- package/build/template/routes/reference.$type.jsx.map +1 -0
- package/build/template/routes/reference.d.ts +2 -2
- package/build/template/routes/reference.d.ts.map +1 -1
- package/build/template/routes/{reference.js → reference.jsx} +12 -7
- package/build/template/routes/reference.jsx.map +1 -0
- package/build/template/routes/root.d.ts +2 -2
- package/build/template/routes/root.d.ts.map +1 -1
- package/build/template/routes/root.jsx +188 -0
- package/build/template/routes/root.jsx.map +1 -0
- package/build/template/routes.jsx +5 -0
- package/build/template/routes.jsx.map +1 -0
- package/build/template/server/app.d.ts +1 -8
- package/build/template/server/app.d.ts.map +1 -1
- package/build/template/server/app.js +21 -21
- package/build/template/server/app.js.map +1 -1
- package/build/template/server/main.js +1 -2
- package/build/template/server/main.js.map +1 -1
- package/build/template/server/render-page.d.ts +3 -0
- package/build/template/server/render-page.d.ts.map +1 -0
- package/build/template/server/{create-page-html-response.js → render-page.jsx} +17 -11
- package/build/template/server/render-page.jsx.map +1 -0
- package/build/template/server/ssg/generate.d.ts.map +1 -1
- package/build/template/server/ssg/generate.js +34 -33
- package/build/template/server/ssg/generate.js.map +1 -1
- package/build/template/server/ssg/get-route-paths.js +1 -1
- package/build/template/server/ssg/get-route-paths.js.map +1 -1
- package/build/template/server/view.js +1 -1
- package/build/template/server/view.js.map +1 -1
- package/package.json +9 -66
- package/src/api/config/load.ts +5 -5
- package/src/api/config-resolver/resolve.ts +2 -2
- package/src/api/schema/data-sources/schema-directory/schema-directory.ts +1 -1
- package/src/api/singletons/markdown/markdown.test.ts +1 -1
- package/src/api/vite/plugins/branding/index.ts +4 -4
- package/src/api/vite/plugins/build.ts +89 -97
- package/src/api/vite/plugins/core.ts +16 -18
- package/src/api/vite/plugins/pages.ts +209 -135
- package/src/api/vite/plugins/serve.ts +14 -67
- package/src/cli/_/self-contained-mode.ts +5 -5
- package/src/lib/deployment/$$.ts +1 -1
- package/src/lib/deployment/$.test.ts +3 -3
- package/src/lib/deployment/$.ts +1 -1
- package/src/lib/file-router/diagnostic-reporter.ts +2 -2
- package/src/lib/file-router/file-router.ts +2 -0
- package/src/lib/file-router/linter.test.ts +0 -2
- package/src/lib/file-router/route.ts +0 -2
- package/src/lib/file-router/scan-tree.test.ts +189 -0
- package/src/lib/file-router/scan-tree.ts +205 -0
- package/src/lib/file-router/scan.ts +14 -26
- package/src/lib/file-router/sidebar/index.ts +3 -0
- package/src/lib/file-router/sidebar/sidebar-tree.test.ts +123 -0
- package/src/lib/file-router/sidebar/sidebar-tree.ts +110 -0
- package/src/lib/file-router/sidebar/types.ts +19 -0
- package/src/lib/kit-temp.test.ts +7 -19
- package/src/lib/kit-temp.ts +5 -307
- package/src/lib/task/$.test.ts +3 -3
- package/src/lib/tree/index.ts +2 -0
- package/src/lib/tree/tree.test.ts +117 -0
- package/src/lib/tree/tree.ts +183 -0
- package/src/lib/version-history/index.test.ts +4 -12
- package/src/lib/vite-plugin-reactive-data/vite-plugin-reactive-data.ts +58 -52
- package/src/package-paths.ts +3 -3
- package/src/sandbox.ts +1 -20
- package/src/singletons/debug.ts +1 -1
- package/src/template/components/ArgumentAnnotation.tsx +1 -1
- package/src/template/components/ArgumentList.tsx +1 -1
- package/src/template/components/ArgumentListAnnotation.tsx +2 -2
- package/src/template/components/DeprecationReason.tsx +1 -1
- package/src/template/components/Description.tsx +1 -1
- package/src/template/components/Field.tsx +4 -4
- package/src/template/components/FieldList.tsx +1 -1
- package/src/template/components/FieldListSection.tsx +1 -1
- package/src/template/components/Link.tsx +14 -22
- package/src/template/components/NamedType.tsx +2 -2
- package/src/template/components/TypeAnnotation.tsx +1 -1
- package/src/template/components/TypeFieldsLinkList.tsx +1 -1
- package/src/template/components/TypeIndex.tsx +1 -1
- package/src/template/components/graphql/graphql.tsx +2 -2
- package/src/template/components/graphql/index.ts +1 -1
- package/src/template/components/graphql/type-link.tsx +2 -2
- package/src/template/components/sidebar/Sidebar.tsx +2 -2
- package/src/template/components/sidebar/SidebarItem.tsx +14 -14
- package/src/template/entry.client.tsx +5 -2
- package/src/template/routes/changelog.tsx +1 -1
- package/src/template/routes/reference.$type.$field.tsx +3 -3
- package/src/template/routes/reference.$type.tsx +3 -3
- package/src/template/routes/reference.tsx +10 -6
- package/src/template/routes/root.tsx +108 -112
- package/src/template/routes.tsx +1 -1
- package/src/template/server/app.ts +23 -33
- package/src/template/server/main.ts +1 -2
- package/src/template/server/{create-page-html-response.ts → render-page.tsx} +16 -19
- package/src/template/server/ssg/generate.ts +72 -68
- package/src/template/server/ssg/get-route-paths.ts +1 -1
- package/src/template/server/view.ts +1 -1
- package/src/template/styles/code-block.css +0 -32
- package/build/api/content/$$.d.ts +0 -7
- package/build/api/content/$$.d.ts.map +0 -1
- package/build/api/content/$$.js +0 -7
- package/build/api/content/$$.js.map +0 -1
- package/build/api/content/$.d.ts +0 -2
- package/build/api/content/$.d.ts.map +0 -1
- package/build/api/content/$.js +0 -2
- package/build/api/content/$.js.map +0 -1
- package/build/api/content/metadata.d.ts +0 -10
- package/build/api/content/metadata.d.ts.map +0 -1
- package/build/api/content/metadata.js +0 -9
- package/build/api/content/metadata.js.map +0 -1
- package/build/api/content/navbar.d.ts +0 -10
- package/build/api/content/navbar.d.ts.map +0 -1
- package/build/api/content/navbar.js +0 -45
- package/build/api/content/navbar.js.map +0 -1
- package/build/api/content/page.d.ts +0 -11
- package/build/api/content/page.d.ts.map +0 -1
- package/build/api/content/page.js +0 -2
- package/build/api/content/page.js.map +0 -1
- package/build/api/content/scan.d.ts +0 -19
- package/build/api/content/scan.d.ts.map +0 -1
- package/build/api/content/scan.js +0 -90
- package/build/api/content/scan.js.map +0 -1
- package/build/api/content/sidebar.d.ts +0 -104
- package/build/api/content/sidebar.d.ts.map +0 -1
- package/build/api/content/sidebar.js +0 -166
- package/build/api/content/sidebar.js.map +0 -1
- package/build/api/content/utils.d.ts +0 -5
- package/build/api/content/utils.d.ts.map +0 -1
- package/build/api/content/utils.js +0 -8
- package/build/api/content/utils.js.map +0 -1
- package/build/exports/components.d.ts +0 -5
- package/build/exports/components.d.ts.map +0 -1
- package/build/exports/components.js +0 -5
- package/build/exports/components.js.map +0 -1
- package/build/lib/graphql-document/$$.d.ts +0 -5
- package/build/lib/graphql-document/$$.d.ts.map +0 -1
- package/build/lib/graphql-document/$$.js +0 -5
- package/build/lib/graphql-document/$$.js.map +0 -1
- package/build/lib/graphql-document/$.d.ts +0 -2
- package/build/lib/graphql-document/$.d.ts.map +0 -1
- package/build/lib/graphql-document/$.js +0 -2
- package/build/lib/graphql-document/$.js.map +0 -1
- package/build/lib/graphql-document/analysis.d.ts +0 -44
- package/build/lib/graphql-document/analysis.d.ts.map +0 -1
- package/build/lib/graphql-document/analysis.js +0 -361
- package/build/lib/graphql-document/analysis.js.map +0 -1
- package/build/lib/graphql-document/components/CopyButton.d.ts +0 -19
- package/build/lib/graphql-document/components/CopyButton.d.ts.map +0 -1
- package/build/lib/graphql-document/components/CopyButton.js +0 -43
- package/build/lib/graphql-document/components/CopyButton.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts +0 -38
- package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocument.js +0 -142
- package/build/lib/graphql-document/components/GraphQLDocument.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +0 -7
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +0 -45
- package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +0 -33
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +0 -1
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +0 -48
- package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.d.ts +0 -39
- package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +0 -1
- package/build/lib/graphql-document/components/IdentifierLink.js +0 -75
- package/build/lib/graphql-document/components/IdentifierLink.js.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts +0 -5
- package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +0 -1
- package/build/lib/graphql-document/components/graphql-document-styles.js +0 -167
- package/build/lib/graphql-document/components/graphql-document-styles.js.map +0 -1
- package/build/lib/graphql-document/components/index.d.ts +0 -6
- package/build/lib/graphql-document/components/index.d.ts.map +0 -1
- package/build/lib/graphql-document/components/index.js +0 -6
- package/build/lib/graphql-document/components/index.js.map +0 -1
- package/build/lib/graphql-document/example.d.ts +0 -25
- package/build/lib/graphql-document/example.d.ts.map +0 -1
- package/build/lib/graphql-document/example.js +0 -140
- package/build/lib/graphql-document/example.js.map +0 -1
- package/build/lib/graphql-document/graphql-document.d.ts +0 -35
- package/build/lib/graphql-document/graphql-document.d.ts.map +0 -1
- package/build/lib/graphql-document/graphql-document.js +0 -36
- package/build/lib/graphql-document/graphql-document.js.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +0 -43
- package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +0 -1
- package/build/lib/graphql-document/hooks/use-tooltip-state.js +0 -132
- package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +0 -1
- package/build/lib/graphql-document/positioning-simple.d.ts +0 -63
- package/build/lib/graphql-document/positioning-simple.d.ts.map +0 -1
- package/build/lib/graphql-document/positioning-simple.js +0 -185
- package/build/lib/graphql-document/positioning-simple.js.map +0 -1
- package/build/lib/graphql-document/schema-context.d.ts +0 -8
- package/build/lib/graphql-document/schema-context.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-context.js +0 -11
- package/build/lib/graphql-document/schema-context.js.map +0 -1
- package/build/lib/graphql-document/schema-integration-example.d.ts +0 -27
- package/build/lib/graphql-document/schema-integration-example.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-integration-example.js +0 -297
- package/build/lib/graphql-document/schema-integration-example.js.map +0 -1
- package/build/lib/graphql-document/schema-integration.d.ts +0 -135
- package/build/lib/graphql-document/schema-integration.d.ts.map +0 -1
- package/build/lib/graphql-document/schema-integration.js +0 -328
- package/build/lib/graphql-document/schema-integration.js.map +0 -1
- package/build/lib/graphql-document/types.d.ts +0 -117
- package/build/lib/graphql-document/types.d.ts.map +0 -1
- package/build/lib/graphql-document/types.js.map +0 -1
- package/build/template/components/ArgumentAnnotation.js +0 -10
- package/build/template/components/ArgumentAnnotation.js.map +0 -1
- package/build/template/components/ArgumentList.js +0 -9
- package/build/template/components/ArgumentList.js.map +0 -1
- package/build/template/components/ArgumentListAnnotation.js +0 -15
- package/build/template/components/ArgumentListAnnotation.js.map +0 -1
- package/build/template/components/Changelog.js +0 -44
- package/build/template/components/Changelog.js.map +0 -1
- package/build/template/components/CodeBlockEnhancer.d.ts +0 -2
- package/build/template/components/CodeBlockEnhancer.d.ts.map +0 -1
- package/build/template/components/CodeBlockEnhancer.js +0 -175
- package/build/template/components/CodeBlockEnhancer.js.map +0 -1
- package/build/template/components/DeprecationReason.js +0 -9
- package/build/template/components/DeprecationReason.js.map +0 -1
- package/build/template/components/Description.js +0 -9
- package/build/template/components/Description.js.map +0 -1
- package/build/template/components/Field.js +0 -14
- package/build/template/components/Field.js.map +0 -1
- package/build/template/components/FieldList.js.map +0 -1
- package/build/template/components/FieldListSection.js.map +0 -1
- package/build/template/components/HamburgerMenu.d.ts +0 -9
- package/build/template/components/HamburgerMenu.d.ts.map +0 -1
- package/build/template/components/HamburgerMenu.js +0 -30
- package/build/template/components/HamburgerMenu.js.map +0 -1
- package/build/template/components/Link.js.map +0 -1
- package/build/template/components/Logo.js +0 -20
- package/build/template/components/Logo.js.map +0 -1
- package/build/template/components/MDXComponents.d.ts +0 -11
- package/build/template/components/MDXComponents.d.ts.map +0 -1
- package/build/template/components/MDXComponents.js +0 -70
- package/build/template/components/MDXComponents.js.map +0 -1
- package/build/template/components/Markdown.js.map +0 -1
- package/build/template/components/MissingSchema.js +0 -5
- package/build/template/components/MissingSchema.js.map +0 -1
- package/build/template/components/NamedType.js +0 -12
- package/build/template/components/NamedType.js.map +0 -1
- package/build/template/components/NotFound.d.ts +0 -2
- package/build/template/components/NotFound.d.ts.map +0 -1
- package/build/template/components/NotFound.js +0 -7
- package/build/template/components/NotFound.js.map +0 -1
- package/build/template/components/RadixLink.js.map +0 -1
- package/build/template/components/TestComponent.d.ts +0 -5
- package/build/template/components/TestComponent.d.ts.map +0 -1
- package/build/template/components/TestComponent.js +0 -7
- package/build/template/components/TestComponent.js.map +0 -1
- package/build/template/components/Texts/MinorHeading.js.map +0 -1
- package/build/template/components/ThemeToggle.d.ts +0 -3
- package/build/template/components/ThemeToggle.d.ts.map +0 -1
- package/build/template/components/ThemeToggle.js +0 -9
- package/build/template/components/ThemeToggle.js.map +0 -1
- package/build/template/components/TypeAnnotation.js.map +0 -1
- package/build/template/components/TypeFieldsLinkList.js +0 -9
- package/build/template/components/TypeFieldsLinkList.js.map +0 -1
- package/build/template/components/TypeIndex.js +0 -17
- package/build/template/components/TypeIndex.js.map +0 -1
- package/build/template/components/content/$$.d.ts +0 -3
- package/build/template/components/content/$$.d.ts.map +0 -1
- package/build/template/components/content/$$.js +0 -3
- package/build/template/components/content/$$.js.map +0 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts +0 -8
- package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +0 -1
- package/build/template/components/content/GraphQLDocumentWithSchema.js +0 -13
- package/build/template/components/content/GraphQLDocumentWithSchema.js.map +0 -1
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts +0 -7
- package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +0 -1
- package/build/template/components/content/GraphQLDocumentWrapper.js +0 -63
- package/build/template/components/content/GraphQLDocumentWrapper.js.map +0 -1
- package/build/template/components/graphql/graphql.js +0 -3
- package/build/template/components/graphql/graphql.js.map +0 -1
- package/build/template/components/graphql/type-kind-icon.js.map +0 -1
- package/build/template/components/graphql/type-link.js +0 -11
- package/build/template/components/graphql/type-link.js.map +0 -1
- package/build/template/components/sidebar/Sidebar.js +0 -11
- package/build/template/components/sidebar/Sidebar.js.map +0 -1
- package/build/template/components/sidebar/SidebarItem.js.map +0 -1
- package/build/template/components/sidebar/ToggleButton.js +0 -5
- package/build/template/components/sidebar/ToggleButton.js.map +0 -1
- package/build/template/contexts/ThemeContext.d.ts +0 -12
- package/build/template/contexts/ThemeContext.d.ts.map +0 -1
- package/build/template/contexts/ThemeContext.js +0 -40
- package/build/template/contexts/ThemeContext.js.map +0 -1
- package/build/template/entry.client.js.map +0 -1
- package/build/template/hooks/useClientOnly.d.ts +0 -9
- package/build/template/hooks/useClientOnly.d.ts.map +0 -1
- package/build/template/hooks/useClientOnly.js +0 -16
- package/build/template/hooks/useClientOnly.js.map +0 -1
- package/build/template/routes/changelog.js.map +0 -1
- package/build/template/routes/index.js.map +0 -1
- package/build/template/routes/reference.$type.$field.js.map +0 -1
- package/build/template/routes/reference.$type.js.map +0 -1
- package/build/template/routes/reference.js.map +0 -1
- package/build/template/routes/root.js +0 -138
- package/build/template/routes/root.js.map +0 -1
- package/build/template/routes.js +0 -5
- package/build/template/routes.js.map +0 -1
- package/build/template/server/create-page-html-response.d.ts +0 -7
- package/build/template/server/create-page-html-response.d.ts.map +0 -1
- package/build/template/server/create-page-html-response.js.map +0 -1
- package/build/template/server/middleware/page.d.ts +0 -4
- package/build/template/server/middleware/page.d.ts.map +0 -1
- package/build/template/server/middleware/page.js +0 -15
- package/build/template/server/middleware/page.js.map +0 -1
- package/build/template/server/middleware/unsupported-assets.d.ts +0 -10
- package/build/template/server/middleware/unsupported-assets.d.ts.map +0 -1
- package/build/template/server/middleware/unsupported-assets.js +0 -21
- package/build/template/server/middleware/unsupported-assets.js.map +0 -1
- package/build/template/styles/code-block.css +0 -218
- package/src/api/content/$$.ts +0 -6
- package/src/api/content/$.test.ts +0 -72
- package/src/api/content/$.ts +0 -1
- package/src/api/content/metadata.ts +0 -11
- package/src/api/content/navbar.test.ts +0 -55
- package/src/api/content/navbar.ts +0 -61
- package/src/api/content/page.ts +0 -12
- package/src/api/content/scan.ts +0 -117
- package/src/api/content/sidebar.test.ts +0 -297
- package/src/api/content/sidebar.ts +0 -283
- package/src/api/content/utils.ts +0 -7
- package/src/exports/components.ts +0 -4
- package/src/lib/graphql-document/$$.ts +0 -4
- package/src/lib/graphql-document/$.test.ts +0 -132
- package/src/lib/graphql-document/$.ts +0 -1
- package/src/lib/graphql-document/README.md +0 -102
- package/src/lib/graphql-document/analysis.ts +0 -415
- package/src/lib/graphql-document/components/CopyButton.tsx +0 -76
- package/src/lib/graphql-document/components/GraphQLDocument.tsx +0 -262
- package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +0 -188
- package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +0 -70
- package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +0 -197
- package/src/lib/graphql-document/components/IdentifierLink.tsx +0 -160
- package/src/lib/graphql-document/components/graphql-document-styles.ts +0 -167
- package/src/lib/graphql-document/components/index.ts +0 -5
- package/src/lib/graphql-document/demo.md +0 -155
- package/src/lib/graphql-document/example.ts +0 -163
- package/src/lib/graphql-document/graphql-document.ts +0 -37
- package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +0 -76
- package/src/lib/graphql-document/hooks/use-tooltip-state.ts +0 -191
- package/src/lib/graphql-document/positioning-simple.test.ts +0 -248
- package/src/lib/graphql-document/positioning-simple.ts +0 -260
- package/src/lib/graphql-document/schema-context.tsx +0 -20
- package/src/lib/graphql-document/schema-integration-example.ts +0 -341
- package/src/lib/graphql-document/schema-integration.test.ts +0 -365
- package/src/lib/graphql-document/schema-integration.ts +0 -497
- package/src/lib/graphql-document/types.ts +0 -129
- package/src/template/components/CodeBlockEnhancer.tsx +0 -192
- package/src/template/components/HamburgerMenu.tsx +0 -96
- package/src/template/components/MDXComponents.tsx +0 -101
- package/src/template/components/NotFound.tsx +0 -28
- package/src/template/components/TestComponent.tsx +0 -6
- package/src/template/components/ThemeToggle.tsx +0 -21
- package/src/template/components/content/$$.ts +0 -2
- package/src/template/components/content/GraphQLDocumentWithSchema.tsx +0 -13
- package/src/template/components/content/GraphQLDocumentWrapper.tsx +0 -89
- package/src/template/contexts/ThemeContext.tsx +0 -60
- package/src/template/hooks/useClientOnly.ts +0 -21
- package/src/template/server/middleware/page.ts +0 -19
- package/src/template/server/middleware/unsupported-assets.ts +0 -25
- /package/build/lib/{graphql-document → file-router/sidebar}/types.js +0 -0
@@ -1,10 +0,0 @@
|
|
1
|
-
import type { Hono } from '#dep/hono/index';
|
2
|
-
/**
|
3
|
-
* Temporary middleware to block unsupported asset requests
|
4
|
-
*
|
5
|
-
* TODO: Polen should eventually support favicon and apple-touch-icon generation
|
6
|
-
* For now, we return 404 immediately to prevent these requests from reaching
|
7
|
-
* React Router and causing unnecessary processing or errors.
|
8
|
-
*/
|
9
|
-
export declare const UnsupportedAssetsMiddleware: () => Hono.MiddlewareHandler;
|
10
|
-
//# sourceMappingURL=unsupported-assets.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"unsupported-assets.d.ts","sourceRoot":"","sources":["../../../../src/template/server/middleware/unsupported-assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAK3C;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B,QAAO,IAAI,CAAC,iBAYnD,CAAA"}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { AppleTouchIcon } from '#lib/apple-touch-icon/index';
|
2
|
-
import { Favicon } from '#lib/favicon/index';
|
3
|
-
import { Http } from '@wollybeard/kit';
|
4
|
-
/**
|
5
|
-
* Temporary middleware to block unsupported asset requests
|
6
|
-
*
|
7
|
-
* TODO: Polen should eventually support favicon and apple-touch-icon generation
|
8
|
-
* For now, we return 404 immediately to prevent these requests from reaching
|
9
|
-
* React Router and causing unnecessary processing or errors.
|
10
|
-
*/
|
11
|
-
export const UnsupportedAssetsMiddleware = () => {
|
12
|
-
return async (ctx, next) => {
|
13
|
-
// Block these asset requests until Polen supports them
|
14
|
-
if (Favicon.fileNamePattern.test(ctx.req.path)
|
15
|
-
|| AppleTouchIcon.fileNamePattern.test(ctx.req.path)) {
|
16
|
-
return Http.Response.notFound;
|
17
|
-
}
|
18
|
-
await next();
|
19
|
-
};
|
20
|
-
};
|
21
|
-
//# sourceMappingURL=unsupported-assets.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"unsupported-assets.js","sourceRoot":"","sources":["../../../../src/template/server/middleware/unsupported-assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAA2B,EAAE;IACtE,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,uDAAuD;QACvD,IACE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;eACvC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EACpD,CAAC;YACD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAA;QAC/B,CAAC;QAED,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAA;AACH,CAAC,CAAA"}
|
@@ -1,218 +0,0 @@
|
|
1
|
-
/* Code Block Styles */
|
2
|
-
|
3
|
-
/* Base code block container */
|
4
|
-
.code-block {
|
5
|
-
position: relative;
|
6
|
-
margin: 1rem 0;
|
7
|
-
border-radius: 8px;
|
8
|
-
overflow: hidden;
|
9
|
-
font-size: 14px;
|
10
|
-
line-height: 1.6;
|
11
|
-
}
|
12
|
-
|
13
|
-
.code-block pre {
|
14
|
-
margin: 0;
|
15
|
-
padding: 1rem;
|
16
|
-
overflow-x: auto;
|
17
|
-
background: inherit;
|
18
|
-
}
|
19
|
-
|
20
|
-
.code-block code {
|
21
|
-
font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;
|
22
|
-
font-variant-ligatures: contextual;
|
23
|
-
}
|
24
|
-
|
25
|
-
/* Shiki theme switching with CSS variables */
|
26
|
-
/* Default to light theme */
|
27
|
-
:root {
|
28
|
-
color-scheme: light;
|
29
|
-
}
|
30
|
-
|
31
|
-
/* When dark mode is active */
|
32
|
-
.dark {
|
33
|
-
color-scheme: dark;
|
34
|
-
}
|
35
|
-
|
36
|
-
/* Shiki token colors for light theme (github-light) */
|
37
|
-
:root {
|
38
|
-
--shiki-color-text: #24292e;
|
39
|
-
--shiki-color-background: #f6f8fa;
|
40
|
-
--shiki-token-constant: #005cc5;
|
41
|
-
--shiki-token-string: #032f62;
|
42
|
-
--shiki-token-comment: #6a737d;
|
43
|
-
--shiki-token-keyword: #d73a49;
|
44
|
-
--shiki-token-parameter: #e36209;
|
45
|
-
--shiki-token-function: #6f42c1;
|
46
|
-
--shiki-token-string-expression: #032f62;
|
47
|
-
--shiki-token-punctuation: #24292e;
|
48
|
-
--shiki-token-link: #032f62;
|
49
|
-
}
|
50
|
-
|
51
|
-
/* Shiki token colors for dark theme (tokyo-night) */
|
52
|
-
.dark {
|
53
|
-
--shiki-color-text: #c0caf5;
|
54
|
-
--shiki-color-background: #1a1b26;
|
55
|
-
--shiki-token-constant: #ff9e64;
|
56
|
-
--shiki-token-string: #9ece6a;
|
57
|
-
--shiki-token-comment: #565f89;
|
58
|
-
--shiki-token-keyword: #bb9af7;
|
59
|
-
--shiki-token-parameter: #e0af68;
|
60
|
-
--shiki-token-function: #7aa2f7;
|
61
|
-
--shiki-token-string-expression: #9ece6a;
|
62
|
-
--shiki-token-punctuation: #c0caf5;
|
63
|
-
--shiki-token-link: #9ece6a;
|
64
|
-
}
|
65
|
-
|
66
|
-
/* Shiki code blocks */
|
67
|
-
pre.shiki {
|
68
|
-
margin: 1rem 0;
|
69
|
-
padding: 1rem;
|
70
|
-
border-radius: 8px;
|
71
|
-
overflow-x: auto;
|
72
|
-
font-size: 14px;
|
73
|
-
line-height: 1.6;
|
74
|
-
background-color: var(--shiki-color-background);
|
75
|
-
color: var(--shiki-color-text);
|
76
|
-
}
|
77
|
-
|
78
|
-
pre.shiki code {
|
79
|
-
font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;
|
80
|
-
font-variant-ligatures: contextual;
|
81
|
-
}
|
82
|
-
|
83
|
-
/* Line numbers */
|
84
|
-
.code-block[data-line-numbers="true"] pre {
|
85
|
-
padding-left: 3.5rem;
|
86
|
-
position: relative;
|
87
|
-
}
|
88
|
-
|
89
|
-
.code-block[data-line-numbers="true"] .line {
|
90
|
-
position: relative;
|
91
|
-
}
|
92
|
-
|
93
|
-
.code-block[data-line-numbers="true"] .line::before {
|
94
|
-
content: attr(data-line);
|
95
|
-
position: absolute;
|
96
|
-
left: -3rem;
|
97
|
-
width: 2.5rem;
|
98
|
-
text-align: right;
|
99
|
-
color: var(--gray-a6);
|
100
|
-
user-select: none;
|
101
|
-
}
|
102
|
-
|
103
|
-
/* Line highlighting */
|
104
|
-
.code-block .line[data-highlighted="true"] {
|
105
|
-
background-color: var(--amber-a3);
|
106
|
-
display: block;
|
107
|
-
margin: 0 -1rem;
|
108
|
-
padding: 0 1rem;
|
109
|
-
}
|
110
|
-
|
111
|
-
/* Diff lines */
|
112
|
-
.code-block .line[data-diff="+"] {
|
113
|
-
background-color: var(--green-a3);
|
114
|
-
display: block;
|
115
|
-
margin: 0 -1rem;
|
116
|
-
padding: 0 1rem;
|
117
|
-
}
|
118
|
-
|
119
|
-
.code-block .line[data-diff="-"] {
|
120
|
-
background-color: var(--red-a3);
|
121
|
-
display: block;
|
122
|
-
margin: 0 -1rem;
|
123
|
-
padding: 0 1rem;
|
124
|
-
}
|
125
|
-
|
126
|
-
.code-block .line[data-diff="+"]::before {
|
127
|
-
content: "+ ";
|
128
|
-
color: var(--green-11);
|
129
|
-
font-weight: bold;
|
130
|
-
}
|
131
|
-
|
132
|
-
.code-block .line[data-diff="-"]::before {
|
133
|
-
content: "- ";
|
134
|
-
color: var(--red-11);
|
135
|
-
font-weight: bold;
|
136
|
-
}
|
137
|
-
|
138
|
-
/* Focus lines */
|
139
|
-
.code-block .line:not([data-focus="true"]) {
|
140
|
-
opacity: 0.5;
|
141
|
-
filter: grayscale(100%);
|
142
|
-
transition: opacity 0.2s, filter 0.2s;
|
143
|
-
}
|
144
|
-
|
145
|
-
.code-block:hover .line:not([data-focus="true"]) {
|
146
|
-
opacity: 0.8;
|
147
|
-
filter: grayscale(0%);
|
148
|
-
}
|
149
|
-
|
150
|
-
/* Copy button */
|
151
|
-
.code-block-copy {
|
152
|
-
position: absolute;
|
153
|
-
top: 0.5rem;
|
154
|
-
right: 0.5rem;
|
155
|
-
padding: 0.25rem 0.5rem;
|
156
|
-
border-radius: 4px;
|
157
|
-
background: var(--gray-a3);
|
158
|
-
color: var(--gray-12);
|
159
|
-
border: 1px solid var(--gray-a5);
|
160
|
-
cursor: pointer;
|
161
|
-
font-size: 12px;
|
162
|
-
transition: all 0.2s;
|
163
|
-
}
|
164
|
-
|
165
|
-
.code-block-copy:hover {
|
166
|
-
background: var(--gray-a4);
|
167
|
-
border-color: var(--gray-a6);
|
168
|
-
}
|
169
|
-
|
170
|
-
.code-block-copy.copied {
|
171
|
-
background: var(--green-a3);
|
172
|
-
border-color: var(--green-a5);
|
173
|
-
color: var(--green-11);
|
174
|
-
}
|
175
|
-
|
176
|
-
/* Language badge */
|
177
|
-
.code-block-lang {
|
178
|
-
position: absolute;
|
179
|
-
top: 0;
|
180
|
-
right: 0;
|
181
|
-
padding: 0.25rem 0.75rem;
|
182
|
-
background: var(--gray-a3);
|
183
|
-
color: var(--gray-11);
|
184
|
-
font-size: 12px;
|
185
|
-
font-weight: 500;
|
186
|
-
border-bottom-left-radius: 4px;
|
187
|
-
user-select: none;
|
188
|
-
}
|
189
|
-
|
190
|
-
/* Scrollbar styling */
|
191
|
-
.code-block pre::-webkit-scrollbar {
|
192
|
-
height: 8px;
|
193
|
-
width: 8px;
|
194
|
-
}
|
195
|
-
|
196
|
-
.code-block pre::-webkit-scrollbar-track {
|
197
|
-
background: var(--gray-a3);
|
198
|
-
border-radius: 4px;
|
199
|
-
}
|
200
|
-
|
201
|
-
.code-block pre::-webkit-scrollbar-thumb {
|
202
|
-
background: var(--gray-a6);
|
203
|
-
border-radius: 4px;
|
204
|
-
}
|
205
|
-
|
206
|
-
.code-block pre::-webkit-scrollbar-thumb:hover {
|
207
|
-
background: var(--gray-a7);
|
208
|
-
}
|
209
|
-
|
210
|
-
/* Inline code */
|
211
|
-
code:not(.code-block code) {
|
212
|
-
padding: 0.2em 0.4em;
|
213
|
-
margin: 0;
|
214
|
-
font-size: 0.85em;
|
215
|
-
background-color: var(--gray-a3);
|
216
|
-
border-radius: 4px;
|
217
|
-
font-family: 'JetBrains Mono', 'Fira Code', 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;
|
218
|
-
}
|
package/src/api/content/$$.ts
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
import { Fs, Path } from '@wollybeard/kit'
|
2
|
-
import { afterEach, beforeEach, describe, expect, test } from 'vitest'
|
3
|
-
import { Content } from './$.ts'
|
4
|
-
|
5
|
-
describe('content', () => {
|
6
|
-
let testDir: string
|
7
|
-
|
8
|
-
beforeEach(async () => {
|
9
|
-
testDir = await Fs.makeTemporaryDirectory()
|
10
|
-
})
|
11
|
-
|
12
|
-
afterEach(async () => {
|
13
|
-
if (testDir && await Fs.exists(testDir)) {
|
14
|
-
await Fs.remove(testDir)
|
15
|
-
}
|
16
|
-
})
|
17
|
-
|
18
|
-
describe('MetadataSchema', () => {
|
19
|
-
test('validates metadata correctly', () => {
|
20
|
-
const valid = Content.MetadataSchema.safeParse({
|
21
|
-
description: 'Test page description',
|
22
|
-
hidden: true,
|
23
|
-
})
|
24
|
-
expect(valid.success).toBe(true)
|
25
|
-
expect(valid.data).toEqual({
|
26
|
-
description: 'Test page description',
|
27
|
-
hidden: true,
|
28
|
-
})
|
29
|
-
})
|
30
|
-
|
31
|
-
test('applies default values', () => {
|
32
|
-
const result = Content.MetadataSchema.safeParse({
|
33
|
-
description: 'Just a description',
|
34
|
-
})
|
35
|
-
expect(result.success).toBe(true)
|
36
|
-
expect(result.data?.hidden).toBe(false)
|
37
|
-
})
|
38
|
-
|
39
|
-
test('rejects invalid values', () => {
|
40
|
-
const result = Content.MetadataSchema.safeParse({
|
41
|
-
hidden: 'not a boolean',
|
42
|
-
invalid_field: 123,
|
43
|
-
})
|
44
|
-
expect(result.success).toBe(false)
|
45
|
-
})
|
46
|
-
})
|
47
|
-
|
48
|
-
describe('scan', () => {
|
49
|
-
test('scans directory and extracts metadata', async () => {
|
50
|
-
const filePath = Path.join(testDir, 'page.md')
|
51
|
-
await Fs.write({
|
52
|
-
path: filePath,
|
53
|
-
content: `---
|
54
|
-
description: Page description
|
55
|
-
---
|
56
|
-
Content`,
|
57
|
-
})
|
58
|
-
|
59
|
-
const result = await Content.scan({
|
60
|
-
dir: testDir,
|
61
|
-
glob: '**/*.md',
|
62
|
-
})
|
63
|
-
|
64
|
-
expect(result.list).toHaveLength(1)
|
65
|
-
expect(result.list[0]?.metadata).toEqual({
|
66
|
-
description: 'Page description',
|
67
|
-
hidden: false,
|
68
|
-
})
|
69
|
-
expect(result.diagnostics).toEqual([])
|
70
|
-
})
|
71
|
-
})
|
72
|
-
})
|
package/src/api/content/$.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
export * as Content from './$$.ts'
|
@@ -1,11 +0,0 @@
|
|
1
|
-
import { z } from 'zod/v4'
|
2
|
-
|
3
|
-
/**
|
4
|
-
* Schema for validating front matter content
|
5
|
-
*/
|
6
|
-
export const MetadataSchema = z.object({
|
7
|
-
description: z.string().optional(),
|
8
|
-
hidden: z.boolean().default(false),
|
9
|
-
})
|
10
|
-
|
11
|
-
export type Metadata = z.infer<typeof MetadataSchema>
|
@@ -1,55 +0,0 @@
|
|
1
|
-
import { describe, expect, it } from 'vitest'
|
2
|
-
import { createNavbar } from './navbar.ts'
|
3
|
-
import type { Page } from './page.ts'
|
4
|
-
|
5
|
-
const createPage = (path: string[], fileName = 'index', hidden = false): Page => ({
|
6
|
-
route: {
|
7
|
-
id: path.join('/'),
|
8
|
-
parentId: path.length > 1 ? path.slice(0, -1).join('/') : null,
|
9
|
-
logical: { path },
|
10
|
-
file: {
|
11
|
-
path: {
|
12
|
-
absolute: { root: '/', dir: `/pages/${path.join('/')}`, base: `${fileName}.md`, ext: '.md', name: fileName },
|
13
|
-
relative: { root: '', dir: path.join('/'), base: `${fileName}.md`, ext: '.md', name: fileName },
|
14
|
-
},
|
15
|
-
},
|
16
|
-
},
|
17
|
-
metadata: { description: undefined, hidden },
|
18
|
-
})
|
19
|
-
|
20
|
-
describe('createNavbar', () => {
|
21
|
-
it('returns empty for empty input', () => {
|
22
|
-
expect(createNavbar([])).toEqual([])
|
23
|
-
})
|
24
|
-
|
25
|
-
it('excludes hidden pages', () => {
|
26
|
-
const pages = [createPage(['visible'], 'index', false), createPage(['hidden'], 'index', true)]
|
27
|
-
const result = createNavbar(pages)
|
28
|
-
expect(result).toEqual([{ pathExp: '/visible', title: 'Visible' }])
|
29
|
-
})
|
30
|
-
|
31
|
-
it('includes directories with index pages', () => {
|
32
|
-
const pages = [createPage(['guide'], 'index'), createPage(['guide', 'intro'], 'intro')]
|
33
|
-
const result = createNavbar(pages)
|
34
|
-
expect(result).toEqual([{ pathExp: '/guide', title: 'Guide' }])
|
35
|
-
})
|
36
|
-
|
37
|
-
it('excludes directories without index pages', () => {
|
38
|
-
const pages = [createPage(['guide', 'intro'], 'intro')]
|
39
|
-
const result = createNavbar(pages)
|
40
|
-
expect(result).toEqual([])
|
41
|
-
})
|
42
|
-
|
43
|
-
it('includes single top-level pages', () => {
|
44
|
-
const pages = [createPage(['about'], 'about')]
|
45
|
-
const result = createNavbar(pages)
|
46
|
-
expect(result).toEqual([{ pathExp: '/about', title: 'About' }])
|
47
|
-
})
|
48
|
-
|
49
|
-
it('sorts results alphabetically', () => {
|
50
|
-
const pages = [createPage(['zebra'], 'zebra'), createPage(['alpha'], 'alpha')]
|
51
|
-
const result = createNavbar(pages)
|
52
|
-
expect(result[0]!.title).toBe('Alpha')
|
53
|
-
expect(result[1]!.title).toBe('Zebra')
|
54
|
-
})
|
55
|
-
})
|
@@ -1,61 +0,0 @@
|
|
1
|
-
import { Str } from '@wollybeard/kit'
|
2
|
-
import type { Page } from './page.ts'
|
3
|
-
|
4
|
-
export interface NavbarItem {
|
5
|
-
pathExp: string
|
6
|
-
title: string
|
7
|
-
}
|
8
|
-
|
9
|
-
/**
|
10
|
-
* Generate navbar items from a list of pages
|
11
|
-
*/
|
12
|
-
export const createNavbar = (pages: Page[]): NavbarItem[] => {
|
13
|
-
const navbarItems: NavbarItem[] = []
|
14
|
-
|
15
|
-
// Group pages by their top-level directory/segment
|
16
|
-
const topLevelGroups = new Map<string, Page[]>()
|
17
|
-
|
18
|
-
pages.forEach(page => {
|
19
|
-
// Skip hidden pages
|
20
|
-
if (page.metadata.hidden) return
|
21
|
-
|
22
|
-
const firstSegment = page.route.logical.path[0]
|
23
|
-
if (firstSegment) {
|
24
|
-
if (!topLevelGroups.has(firstSegment)) {
|
25
|
-
topLevelGroups.set(firstSegment, [])
|
26
|
-
}
|
27
|
-
topLevelGroups.get(firstSegment)!.push(page)
|
28
|
-
}
|
29
|
-
})
|
30
|
-
|
31
|
-
// Add each top-level group to navbar
|
32
|
-
topLevelGroups.forEach((pages, segment) => {
|
33
|
-
// For directories, check if there's an index page
|
34
|
-
const indexPage = pages.find(p =>
|
35
|
-
p.route.logical.path.length === 1
|
36
|
-
&& p.route.file.path.relative.name === 'index'
|
37
|
-
)
|
38
|
-
|
39
|
-
// For single non-index files at top level
|
40
|
-
const singlePage = pages.length === 1 && pages[0]!.route.logical.path.length === 1
|
41
|
-
&& pages[0]!.route.file.path.relative.name !== 'index'
|
42
|
-
|
43
|
-
// Include in navbar if:
|
44
|
-
// 1. It's a directory with an index page, OR
|
45
|
-
// 2. It's a single top-level page (not index)
|
46
|
-
if (indexPage || singlePage) {
|
47
|
-
const title = Str.titlizeSlug(segment)
|
48
|
-
const pathExp = `/${segment}`
|
49
|
-
|
50
|
-
navbarItems.push({
|
51
|
-
pathExp,
|
52
|
-
title,
|
53
|
-
})
|
54
|
-
}
|
55
|
-
})
|
56
|
-
|
57
|
-
// Sort navbar items alphabetically for consistency
|
58
|
-
navbarItems.sort((a, b) => a.title.localeCompare(b.title))
|
59
|
-
|
60
|
-
return navbarItems
|
61
|
-
}
|
package/src/api/content/page.ts
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
import type { FileRouter } from '#lib/file-router/index'
|
2
|
-
import type { Metadata } from './metadata.ts'
|
3
|
-
|
4
|
-
export type { Metadata }
|
5
|
-
|
6
|
-
/**
|
7
|
-
* A route with its associated metadata
|
8
|
-
*/
|
9
|
-
export interface Page {
|
10
|
-
route: FileRouter.Route
|
11
|
-
metadata: Metadata
|
12
|
-
}
|
package/src/api/content/scan.ts
DELETED
@@ -1,117 +0,0 @@
|
|
1
|
-
import { FileRouter } from '#lib/file-router/index'
|
2
|
-
import { Fs, Path, Tree } from '@wollybeard/kit'
|
3
|
-
import matter from 'gray-matter'
|
4
|
-
import { MetadataSchema } from './metadata.ts'
|
5
|
-
import type { Page } from './page.ts'
|
6
|
-
|
7
|
-
export interface ScanResult {
|
8
|
-
list: Page[]
|
9
|
-
tree: Tree.Tree<Page>
|
10
|
-
diagnostics: FileRouter.Diagnostic[]
|
11
|
-
}
|
12
|
-
|
13
|
-
/**
|
14
|
-
* Scan a directory for pages and extract metadata from their front matter
|
15
|
-
* By default, hidden pages are filtered out from both the pages list and route tree.
|
16
|
-
*/
|
17
|
-
export const scan = async (options: {
|
18
|
-
dir: string
|
19
|
-
glob?: string
|
20
|
-
/** Include hidden pages in the result (useful for debugging or admin interfaces) */
|
21
|
-
includeHidden?: boolean
|
22
|
-
}): Promise<ScanResult> => {
|
23
|
-
// Scan for routes
|
24
|
-
const routeScanResult = await FileRouter.scan({
|
25
|
-
dir: options.dir,
|
26
|
-
glob: options.glob ?? '**/*.{md,mdx}',
|
27
|
-
})
|
28
|
-
|
29
|
-
// Create pages with metadata (id/parentId now come from route)
|
30
|
-
const allPages = await Promise.all(
|
31
|
-
routeScanResult.routes.map(route => readRoute(route)),
|
32
|
-
)
|
33
|
-
|
34
|
-
// Apply filtering if needed
|
35
|
-
const pages = options.includeHidden
|
36
|
-
? allPages
|
37
|
-
: allPages.filter(page => !page.metadata.hidden)
|
38
|
-
|
39
|
-
// Build tree from pages using Tree.fromList
|
40
|
-
// Transform pages to include id/parentId at the top level for Tree.fromList
|
41
|
-
const pagesWithIds = pages.map(page => ({
|
42
|
-
...page,
|
43
|
-
id: page.route.id,
|
44
|
-
parentId: page.route.parentId,
|
45
|
-
}))
|
46
|
-
|
47
|
-
// Handle cases where there might be multiple root nodes
|
48
|
-
// If all pages are at root level (no parentId), create a virtual root
|
49
|
-
const hasMultipleRoots = pagesWithIds.filter(p => !p.parentId).length > 1
|
50
|
-
|
51
|
-
let tree: Tree.Tree<Page>
|
52
|
-
if (hasMultipleRoots) {
|
53
|
-
// Create a virtual root node to hold all root-level pages
|
54
|
-
const virtualRoot: Page & { id: string; parentId: null } = {
|
55
|
-
route: {
|
56
|
-
id: '__virtual_root__',
|
57
|
-
parentId: null,
|
58
|
-
file: {
|
59
|
-
path: {
|
60
|
-
absolute: Path.parse(''),
|
61
|
-
relative: Path.parse(''),
|
62
|
-
},
|
63
|
-
},
|
64
|
-
logical: {
|
65
|
-
path: [],
|
66
|
-
},
|
67
|
-
},
|
68
|
-
metadata: { hidden: true },
|
69
|
-
id: '__virtual_root__',
|
70
|
-
parentId: null,
|
71
|
-
}
|
72
|
-
|
73
|
-
// Update pages to have virtual root as parent if they don't have one
|
74
|
-
const pagesWithVirtualRoot = pagesWithIds.map(page => ({
|
75
|
-
...page,
|
76
|
-
parentId: page.parentId || '__virtual_root__',
|
77
|
-
}))
|
78
|
-
|
79
|
-
tree = Tree.fromList([virtualRoot, ...pagesWithVirtualRoot])
|
80
|
-
} else {
|
81
|
-
tree = Tree.fromList(pagesWithIds)
|
82
|
-
}
|
83
|
-
|
84
|
-
return {
|
85
|
-
list: pages,
|
86
|
-
tree,
|
87
|
-
diagnostics: routeScanResult.diagnostics,
|
88
|
-
}
|
89
|
-
}
|
90
|
-
|
91
|
-
/**
|
92
|
-
* Read a single route file and extract metadata from its front matter
|
93
|
-
*/
|
94
|
-
const readRoute = async (route: FileRouter.Route): Promise<Page> => {
|
95
|
-
const filePath = Path.format(route.file.path.absolute)
|
96
|
-
const fileContent = await Fs.read(filePath)
|
97
|
-
|
98
|
-
// Empty files still get default metadata (not hidden by default)
|
99
|
-
// This allows placeholder pages to exist in the navigation
|
100
|
-
if (!fileContent) {
|
101
|
-
return { route, metadata: { hidden: false } }
|
102
|
-
}
|
103
|
-
|
104
|
-
// Parse front matter
|
105
|
-
const { data } = matter(fileContent)
|
106
|
-
|
107
|
-
// Validate and parse the data
|
108
|
-
const parsed = MetadataSchema.safeParse(data)
|
109
|
-
|
110
|
-
if (!parsed.success) {
|
111
|
-
// Log warning but continue with defaults
|
112
|
-
console.warn(`Invalid front matter in ${filePath}:`, parsed.error.issues)
|
113
|
-
}
|
114
|
-
|
115
|
-
const metadata = parsed.success ? parsed.data : { hidden: false }
|
116
|
-
return { route, metadata }
|
117
|
-
}
|