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,248 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @vitest-environment jsdom
|
3
|
-
*/
|
4
|
-
|
5
|
-
import { beforeEach, describe, expect, it } from 'vitest'
|
6
|
-
import { createSimpleOverlay, createSimplePositionCalculator } from './positioning-simple.ts'
|
7
|
-
import type { Identifier } from './types.ts'
|
8
|
-
|
9
|
-
// Helper to create test identifier
|
10
|
-
const createTestIdentifier = (
|
11
|
-
name: string,
|
12
|
-
line: number,
|
13
|
-
column: number,
|
14
|
-
kind: Identifier['kind'] = 'Field',
|
15
|
-
): Identifier => ({
|
16
|
-
name,
|
17
|
-
kind,
|
18
|
-
position: {
|
19
|
-
start: column - 1,
|
20
|
-
end: column - 1 + name.length,
|
21
|
-
line,
|
22
|
-
column,
|
23
|
-
},
|
24
|
-
schemaPath: [name],
|
25
|
-
context: { selectionPath: [] },
|
26
|
-
})
|
27
|
-
|
28
|
-
describe('Simple Positioning Engine', () => {
|
29
|
-
describe('SimplePositionCalculator', () => {
|
30
|
-
const calculator = createSimplePositionCalculator()
|
31
|
-
|
32
|
-
it('should wrap identifiers in spans', () => {
|
33
|
-
const container = document.createElement('div')
|
34
|
-
container.innerHTML = `
|
35
|
-
<pre class="shiki">
|
36
|
-
<code>query GetUser {
|
37
|
-
user {
|
38
|
-
name
|
39
|
-
}
|
40
|
-
}</code>
|
41
|
-
</pre>
|
42
|
-
`
|
43
|
-
|
44
|
-
const identifiers = [
|
45
|
-
createTestIdentifier('query', 1, 1),
|
46
|
-
createTestIdentifier('user', 2, 3, 'Field'),
|
47
|
-
createTestIdentifier('name', 3, 5, 'Field'),
|
48
|
-
]
|
49
|
-
|
50
|
-
const codeElement = container.querySelector('code')!
|
51
|
-
calculator.prepareCodeBlock(codeElement, identifiers)
|
52
|
-
|
53
|
-
// Check that identifiers were wrapped
|
54
|
-
const wrappedElements = container.querySelectorAll('[data-graphql-id]')
|
55
|
-
expect(wrappedElements.length).toBe(3)
|
56
|
-
|
57
|
-
// Check first wrapped element
|
58
|
-
const firstWrapped = wrappedElements[0] as HTMLElement
|
59
|
-
expect(firstWrapped.textContent).toBe('query')
|
60
|
-
expect(firstWrapped.getAttribute('data-graphql-name')).toBe('query')
|
61
|
-
expect(firstWrapped.getAttribute('data-graphql-kind')).toBe('Field')
|
62
|
-
})
|
63
|
-
|
64
|
-
it('should handle multiple identifiers in same line', () => {
|
65
|
-
const container = document.createElement('div')
|
66
|
-
container.innerHTML = `
|
67
|
-
<pre class="shiki">
|
68
|
-
<code>query GetUserById($id: ID!) {</code>
|
69
|
-
</pre>
|
70
|
-
`
|
71
|
-
|
72
|
-
const identifiers = [
|
73
|
-
createTestIdentifier('query', 1, 1),
|
74
|
-
createTestIdentifier('GetUserById', 1, 7),
|
75
|
-
createTestIdentifier('$id', 1, 19, 'Variable'),
|
76
|
-
createTestIdentifier('ID', 1, 24, 'Type'),
|
77
|
-
]
|
78
|
-
|
79
|
-
const codeElement = container.querySelector('code')!
|
80
|
-
calculator.prepareCodeBlock(codeElement, identifiers)
|
81
|
-
|
82
|
-
const wrappedElements = container.querySelectorAll('[data-graphql-id]')
|
83
|
-
expect(wrappedElements.length).toBe(4)
|
84
|
-
})
|
85
|
-
|
86
|
-
it('should get positions of wrapped identifiers', () => {
|
87
|
-
const container = document.createElement('div')
|
88
|
-
container.innerHTML = `
|
89
|
-
<pre class="shiki">
|
90
|
-
<code>
|
91
|
-
<span class="line"><span data-graphql-id="0-user-Field" data-graphql-name="user" data-graphql-kind="Field" data-graphql-start="0" data-graphql-end="4" data-graphql-line="1" data-graphql-column="1" data-graphql-path="user">user</span> {</span>
|
92
|
-
</code>
|
93
|
-
</pre>
|
94
|
-
`
|
95
|
-
|
96
|
-
// Mock getBoundingClientRect
|
97
|
-
container.getBoundingClientRect = () => ({
|
98
|
-
top: 0,
|
99
|
-
left: 0,
|
100
|
-
right: 100,
|
101
|
-
bottom: 100,
|
102
|
-
width: 100,
|
103
|
-
height: 100,
|
104
|
-
x: 0,
|
105
|
-
y: 0,
|
106
|
-
toJSON: () => ({}),
|
107
|
-
})
|
108
|
-
|
109
|
-
const userSpan = container.querySelector('[data-graphql-id]') as HTMLElement
|
110
|
-
userSpan.getBoundingClientRect = () => ({
|
111
|
-
top: 10,
|
112
|
-
left: 20,
|
113
|
-
right: 60,
|
114
|
-
bottom: 30,
|
115
|
-
width: 40,
|
116
|
-
height: 20,
|
117
|
-
x: 20,
|
118
|
-
y: 10,
|
119
|
-
toJSON: () => ({}),
|
120
|
-
})
|
121
|
-
|
122
|
-
const positions = calculator.getIdentifierPositions(container)
|
123
|
-
|
124
|
-
expect(positions.size).toBe(1)
|
125
|
-
const result = positions.get('0-user-Field')
|
126
|
-
expect(result).toBeDefined()
|
127
|
-
expect(result!.position).toEqual({
|
128
|
-
top: 10,
|
129
|
-
left: 20,
|
130
|
-
width: 40,
|
131
|
-
height: 20,
|
132
|
-
})
|
133
|
-
expect(result!.identifier.name).toBe('user')
|
134
|
-
expect(result!.identifier.kind).toBe('Field')
|
135
|
-
})
|
136
|
-
|
137
|
-
it('should skip already wrapped identifiers', () => {
|
138
|
-
const container = document.createElement('div')
|
139
|
-
container.innerHTML = `
|
140
|
-
<pre class="shiki">
|
141
|
-
<code><span data-graphql-id="existing">user</span> {</code>
|
142
|
-
</pre>
|
143
|
-
`
|
144
|
-
|
145
|
-
const identifiers = [
|
146
|
-
createTestIdentifier('user', 1, 1),
|
147
|
-
]
|
148
|
-
|
149
|
-
const codeElement = container.querySelector('code')!
|
150
|
-
calculator.prepareCodeBlock(codeElement, identifiers)
|
151
|
-
|
152
|
-
// Should still only have one wrapped element
|
153
|
-
const wrappedElements = container.querySelectorAll('[data-graphql-id]')
|
154
|
-
expect(wrappedElements.length).toBe(1)
|
155
|
-
expect(wrappedElements[0]!.getAttribute('data-graphql-id')).toBe('existing')
|
156
|
-
})
|
157
|
-
|
158
|
-
it('should handle empty lines gracefully', () => {
|
159
|
-
const container = document.createElement('div')
|
160
|
-
container.innerHTML = `
|
161
|
-
<pre class="shiki">
|
162
|
-
<code>query {
|
163
|
-
|
164
|
-
user</code>
|
165
|
-
</pre>
|
166
|
-
`
|
167
|
-
|
168
|
-
const identifiers = [
|
169
|
-
createTestIdentifier('query', 1, 1),
|
170
|
-
createTestIdentifier('user', 3, 3),
|
171
|
-
]
|
172
|
-
|
173
|
-
const codeElement = container.querySelector('code')!
|
174
|
-
expect(() => {
|
175
|
-
calculator.prepareCodeBlock(codeElement, identifiers)
|
176
|
-
}).not.toThrow()
|
177
|
-
|
178
|
-
const wrappedElements = container.querySelectorAll('[data-graphql-id]')
|
179
|
-
expect(wrappedElements.length).toBe(2)
|
180
|
-
})
|
181
|
-
})
|
182
|
-
|
183
|
-
describe('createSimpleOverlay', () => {
|
184
|
-
it('should create positioned overlay element', () => {
|
185
|
-
const position = { top: 10, left: 20, width: 40, height: 20 }
|
186
|
-
const identifier = createTestIdentifier('user', 1, 1)
|
187
|
-
|
188
|
-
const overlay = createSimpleOverlay(position, identifier)
|
189
|
-
|
190
|
-
expect(overlay.style.position).toBe('absolute')
|
191
|
-
expect(overlay.style.top).toBe('10px')
|
192
|
-
expect(overlay.style.left).toBe('20px')
|
193
|
-
expect(overlay.style.width).toBe('40px')
|
194
|
-
expect(overlay.style.height).toBe('20px')
|
195
|
-
expect(overlay.style.cursor).toBe('pointer')
|
196
|
-
expect(overlay.getAttribute('data-graphql-overlay')).toBe('true')
|
197
|
-
expect(overlay.getAttribute('data-graphql-name')).toBe('user')
|
198
|
-
expect(overlay.getAttribute('data-graphql-kind')).toBe('Field')
|
199
|
-
})
|
200
|
-
|
201
|
-
it('should handle click events', () => {
|
202
|
-
const position = { top: 10, left: 20, width: 40, height: 20 }
|
203
|
-
const identifier = createTestIdentifier('user', 1, 1)
|
204
|
-
let clickedIdentifier: Identifier | null = null
|
205
|
-
|
206
|
-
const overlay = createSimpleOverlay(position, identifier, {
|
207
|
-
onClick: (id) => {
|
208
|
-
clickedIdentifier = id
|
209
|
-
},
|
210
|
-
})
|
211
|
-
|
212
|
-
// Simulate click
|
213
|
-
const event = new MouseEvent('click')
|
214
|
-
overlay.dispatchEvent(event)
|
215
|
-
|
216
|
-
expect(clickedIdentifier).toBe(identifier)
|
217
|
-
})
|
218
|
-
|
219
|
-
it('should handle hover events', () => {
|
220
|
-
const position = { top: 10, left: 20, width: 40, height: 20 }
|
221
|
-
const identifier = createTestIdentifier('user', 1, 1)
|
222
|
-
let hoveredIdentifier: Identifier | null = null
|
223
|
-
|
224
|
-
const overlay = createSimpleOverlay(position, identifier, {
|
225
|
-
onHover: (id) => {
|
226
|
-
hoveredIdentifier = id
|
227
|
-
},
|
228
|
-
})
|
229
|
-
|
230
|
-
// Simulate hover
|
231
|
-
const event = new MouseEvent('mouseenter')
|
232
|
-
overlay.dispatchEvent(event)
|
233
|
-
|
234
|
-
expect(hoveredIdentifier).toBe(identifier)
|
235
|
-
})
|
236
|
-
|
237
|
-
it('should apply custom className', () => {
|
238
|
-
const position = { top: 10, left: 20, width: 40, height: 20 }
|
239
|
-
const identifier = createTestIdentifier('user', 1, 1)
|
240
|
-
|
241
|
-
const overlay = createSimpleOverlay(position, identifier, {
|
242
|
-
className: 'custom-overlay-class',
|
243
|
-
})
|
244
|
-
|
245
|
-
expect(overlay.className).toBe('custom-overlay-class')
|
246
|
-
})
|
247
|
-
})
|
248
|
-
})
|
@@ -1,260 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Layer 3: Simplified Positioning & Layout Engine
|
3
|
-
*
|
4
|
-
* Maps GraphQL AST positions to DOM coordinates for overlay placement.
|
5
|
-
* This simplified version focuses on working with Polen's existing infrastructure.
|
6
|
-
*/
|
7
|
-
|
8
|
-
import type { Identifier } from './types.ts'
|
9
|
-
|
10
|
-
/**
|
11
|
-
* DOM position for rendering overlays
|
12
|
-
*/
|
13
|
-
export interface DOMPosition {
|
14
|
-
/** Distance from top of container in pixels */
|
15
|
-
top: number
|
16
|
-
/** Distance from left of container in pixels */
|
17
|
-
left: number
|
18
|
-
/** Width of the identifier in pixels */
|
19
|
-
width: number
|
20
|
-
/** Height of the identifier in pixels */
|
21
|
-
height: number
|
22
|
-
}
|
23
|
-
|
24
|
-
/**
|
25
|
-
* Position calculation result
|
26
|
-
*/
|
27
|
-
export interface PositionResult {
|
28
|
-
/** The calculated DOM position */
|
29
|
-
position: DOMPosition
|
30
|
-
/** The identifier this position is for */
|
31
|
-
identifier: Identifier
|
32
|
-
}
|
33
|
-
|
34
|
-
/**
|
35
|
-
* Simplified position calculator for Shiki-rendered code
|
36
|
-
*
|
37
|
-
* This version uses a more straightforward approach:
|
38
|
-
* 1. Find the line element by line number
|
39
|
-
* 2. Search for the identifier text within that line
|
40
|
-
* 3. Create a span around the identifier for positioning
|
41
|
-
*
|
42
|
-
* This approach modifies the DOM but is more reliable for testing
|
43
|
-
* and works well with React's reconciliation.
|
44
|
-
*/
|
45
|
-
export class SimplePositionCalculator {
|
46
|
-
/**
|
47
|
-
* Prepare a code block for positioning by wrapping identifiers in spans
|
48
|
-
*/
|
49
|
-
prepareCodeBlock(
|
50
|
-
containerElement: Element,
|
51
|
-
identifiers: Identifier[],
|
52
|
-
): void {
|
53
|
-
// Get the full text content of the container
|
54
|
-
const fullText = containerElement.textContent || ''
|
55
|
-
const lines = fullText.split('\n')
|
56
|
-
|
57
|
-
// Build a map of line start positions in the full text
|
58
|
-
const lineStartPositions: number[] = [0]
|
59
|
-
for (let i = 0; i < lines.length - 1; i++) {
|
60
|
-
const lineLength = lines[i]?.length ?? 0
|
61
|
-
lineStartPositions.push(lineStartPositions[i]! + lineLength + 1) // +1 for newline
|
62
|
-
}
|
63
|
-
|
64
|
-
// Process identifiers by line
|
65
|
-
for (const identifier of identifiers) {
|
66
|
-
const lineIndex = identifier.position.line - 1
|
67
|
-
if (lineIndex >= lines.length || lineIndex < 0) continue
|
68
|
-
|
69
|
-
const lineText = lines[lineIndex]
|
70
|
-
if (!lineText) continue
|
71
|
-
|
72
|
-
const columnIndex = identifier.position.column - 1
|
73
|
-
|
74
|
-
// Check if the identifier exists at the expected position
|
75
|
-
if (lineText.substring(columnIndex).startsWith(identifier.name)) {
|
76
|
-
// Calculate the absolute position in the full text
|
77
|
-
const lineStartPosition = lineStartPositions[lineIndex] ?? 0
|
78
|
-
const absolutePosition = lineStartPosition + columnIndex
|
79
|
-
|
80
|
-
// Check if already wrapped at this specific position
|
81
|
-
const existingWrapped = containerElement.querySelectorAll(`[data-graphql-id]`)
|
82
|
-
let alreadyWrapped = false
|
83
|
-
for (const wrapped of existingWrapped) {
|
84
|
-
if (wrapped.textContent === identifier.name) {
|
85
|
-
const startPos = parseInt(wrapped.getAttribute('data-graphql-start') || '0')
|
86
|
-
if (startPos === identifier.position.start) {
|
87
|
-
alreadyWrapped = true
|
88
|
-
break
|
89
|
-
}
|
90
|
-
}
|
91
|
-
}
|
92
|
-
if (alreadyWrapped) continue
|
93
|
-
|
94
|
-
// Create wrapper span
|
95
|
-
const wrapper = document.createElement('span')
|
96
|
-
const id = `${identifier.position.start}-${identifier.name}-${identifier.kind}`
|
97
|
-
wrapper.setAttribute('data-graphql-id', id)
|
98
|
-
wrapper.setAttribute('data-graphql-name', identifier.name)
|
99
|
-
wrapper.setAttribute('data-graphql-kind', identifier.kind)
|
100
|
-
wrapper.setAttribute('data-graphql-start', String(identifier.position.start))
|
101
|
-
wrapper.setAttribute('data-graphql-end', String(identifier.position.end))
|
102
|
-
wrapper.setAttribute('data-graphql-line', String(identifier.position.line))
|
103
|
-
wrapper.setAttribute('data-graphql-column', String(identifier.position.column))
|
104
|
-
wrapper.setAttribute('data-graphql-path', identifier.schemaPath.join(','))
|
105
|
-
|
106
|
-
// Find the position in the container and wrap the text
|
107
|
-
const walker = document.createTreeWalker(
|
108
|
-
containerElement,
|
109
|
-
NodeFilter.SHOW_TEXT,
|
110
|
-
null,
|
111
|
-
)
|
112
|
-
|
113
|
-
let currentPos = 0
|
114
|
-
let node: Node | null
|
115
|
-
|
116
|
-
while (node = walker.nextNode()) {
|
117
|
-
const textNode = node as Text
|
118
|
-
const text = textNode.textContent || ''
|
119
|
-
|
120
|
-
// Check if this text node contains our identifier
|
121
|
-
if (currentPos <= absolutePosition && absolutePosition < currentPos + text.length) {
|
122
|
-
const relativePos = absolutePosition - currentPos
|
123
|
-
|
124
|
-
if (text.substring(relativePos).startsWith(identifier.name)) {
|
125
|
-
// Split the text node
|
126
|
-
const before = text.substring(0, relativePos)
|
127
|
-
const identifierText = identifier.name
|
128
|
-
const after = text.substring(relativePos + identifierText.length)
|
129
|
-
|
130
|
-
const parent = textNode.parentNode!
|
131
|
-
|
132
|
-
if (before) {
|
133
|
-
parent.insertBefore(document.createTextNode(before), textNode)
|
134
|
-
}
|
135
|
-
|
136
|
-
wrapper.textContent = identifierText
|
137
|
-
parent.insertBefore(wrapper, textNode)
|
138
|
-
|
139
|
-
if (after) {
|
140
|
-
parent.insertBefore(document.createTextNode(after), textNode)
|
141
|
-
}
|
142
|
-
|
143
|
-
parent.removeChild(textNode)
|
144
|
-
break
|
145
|
-
}
|
146
|
-
}
|
147
|
-
|
148
|
-
currentPos += text.length
|
149
|
-
}
|
150
|
-
}
|
151
|
-
}
|
152
|
-
}
|
153
|
-
|
154
|
-
/**
|
155
|
-
* Get positions of all wrapped identifiers
|
156
|
-
*/
|
157
|
-
getIdentifierPositions(
|
158
|
-
containerElement: Element,
|
159
|
-
relativeToElement?: Element,
|
160
|
-
): Map<string, PositionResult> {
|
161
|
-
const results = new Map<string, PositionResult>()
|
162
|
-
|
163
|
-
// Find all wrapped identifiers
|
164
|
-
const wrappedIdentifiers = containerElement.querySelectorAll('[data-graphql-id]')
|
165
|
-
|
166
|
-
// Use the provided element for relative positioning, or the container itself
|
167
|
-
const referenceElement = relativeToElement || containerElement
|
168
|
-
|
169
|
-
for (const element of wrappedIdentifiers) {
|
170
|
-
const id = element.getAttribute('data-graphql-id')
|
171
|
-
if (!id) continue
|
172
|
-
|
173
|
-
// Get position relative to the reference element
|
174
|
-
const referenceRect = referenceElement.getBoundingClientRect()
|
175
|
-
const elementRect = element.getBoundingClientRect()
|
176
|
-
|
177
|
-
const position: DOMPosition = {
|
178
|
-
top: elementRect.top - referenceRect.top,
|
179
|
-
left: elementRect.left - referenceRect.left,
|
180
|
-
width: elementRect.width,
|
181
|
-
height: elementRect.height,
|
182
|
-
}
|
183
|
-
|
184
|
-
// Reconstruct identifier from data attributes
|
185
|
-
const identifier: Identifier = {
|
186
|
-
name: element.getAttribute('data-graphql-name') || '',
|
187
|
-
kind: (element.getAttribute('data-graphql-kind') || 'Field') as Identifier['kind'],
|
188
|
-
position: {
|
189
|
-
start: parseInt(element.getAttribute('data-graphql-start') || '0'),
|
190
|
-
end: parseInt(element.getAttribute('data-graphql-end') || '0'),
|
191
|
-
line: parseInt(element.getAttribute('data-graphql-line') || '1'),
|
192
|
-
column: parseInt(element.getAttribute('data-graphql-column') || '1'),
|
193
|
-
},
|
194
|
-
schemaPath: (element.getAttribute('data-graphql-path') || '').split(',').filter(Boolean),
|
195
|
-
context: { selectionPath: [] },
|
196
|
-
}
|
197
|
-
|
198
|
-
results.set(id, { position, identifier })
|
199
|
-
}
|
200
|
-
|
201
|
-
return results
|
202
|
-
}
|
203
|
-
}
|
204
|
-
|
205
|
-
/**
|
206
|
-
* Create invisible overlay for a position
|
207
|
-
*/
|
208
|
-
export const createSimpleOverlay = (
|
209
|
-
position: DOMPosition,
|
210
|
-
identifier: Identifier,
|
211
|
-
options?: {
|
212
|
-
onClick?: (identifier: Identifier) => void
|
213
|
-
onHover?: (identifier: Identifier, event: MouseEvent) => void
|
214
|
-
className?: string
|
215
|
-
},
|
216
|
-
): HTMLElement => {
|
217
|
-
const overlay = document.createElement('div')
|
218
|
-
|
219
|
-
// Base styles for positioning
|
220
|
-
overlay.style.position = 'absolute'
|
221
|
-
overlay.style.top = `${position.top}px`
|
222
|
-
overlay.style.left = `${position.left}px`
|
223
|
-
overlay.style.width = `${position.width}px`
|
224
|
-
overlay.style.height = `${position.height}px`
|
225
|
-
overlay.style.cursor = 'pointer'
|
226
|
-
overlay.style.zIndex = '10'
|
227
|
-
|
228
|
-
// Add custom class if provided
|
229
|
-
if (options?.className) {
|
230
|
-
overlay.className = options.className
|
231
|
-
}
|
232
|
-
|
233
|
-
// Data attributes
|
234
|
-
overlay.setAttribute('data-graphql-overlay', 'true')
|
235
|
-
overlay.setAttribute('data-graphql-name', identifier.name)
|
236
|
-
overlay.setAttribute('data-graphql-kind', identifier.kind)
|
237
|
-
|
238
|
-
// Event handlers
|
239
|
-
if (options?.onClick) {
|
240
|
-
overlay.addEventListener('click', (e) => {
|
241
|
-
e.preventDefault()
|
242
|
-
options.onClick!(identifier)
|
243
|
-
})
|
244
|
-
}
|
245
|
-
|
246
|
-
if (options?.onHover) {
|
247
|
-
overlay.addEventListener('mouseenter', (e) => {
|
248
|
-
options.onHover!(identifier, e)
|
249
|
-
})
|
250
|
-
}
|
251
|
-
|
252
|
-
return overlay
|
253
|
-
}
|
254
|
-
|
255
|
-
/**
|
256
|
-
* Factory function for position calculator
|
257
|
-
*/
|
258
|
-
export const createSimplePositionCalculator = (): SimplePositionCalculator => {
|
259
|
-
return new SimplePositionCalculator()
|
260
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import type { GraphQLSchema } from 'graphql'
|
2
|
-
import React from 'react'
|
3
|
-
|
4
|
-
export const GraphQLSchemaContext = React.createContext<GraphQLSchema | null>(null)
|
5
|
-
|
6
|
-
export const useGraphQLSchema = () => {
|
7
|
-
const schema = React.useContext(GraphQLSchemaContext)
|
8
|
-
return schema
|
9
|
-
}
|
10
|
-
|
11
|
-
export const GraphQLSchemaProvider: React.FC<React.PropsWithChildren<{ schema: GraphQLSchema | null }>> = ({
|
12
|
-
children,
|
13
|
-
schema,
|
14
|
-
}) => {
|
15
|
-
return (
|
16
|
-
<GraphQLSchemaContext.Provider value={schema}>
|
17
|
-
{children}
|
18
|
-
</GraphQLSchemaContext.Provider>
|
19
|
-
)
|
20
|
-
}
|