polen 0.10.0-next.11 → 0.10.0-next.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. package/build/api/builder/builder.js +1 -1
  2. package/build/api/builder/builder.js.map +1 -1
  3. package/build/api/config/load.js +1 -1
  4. package/build/api/config/load.js.map +1 -1
  5. package/build/api/vite/plugins/build.js +1 -1
  6. package/build/api/vite/plugins/build.js.map +1 -1
  7. package/build/api/vite/plugins/core.d.ts.map +1 -1
  8. package/build/api/vite/plugins/core.js +0 -2
  9. package/build/api/vite/plugins/core.js.map +1 -1
  10. package/build/api/vite/plugins/pages.js +1 -1
  11. package/build/api/vite/plugins/pages.js.map +1 -1
  12. package/build/exports/components.d.ts +4 -1
  13. package/build/exports/components.d.ts.map +1 -1
  14. package/build/exports/components.js +4 -1
  15. package/build/exports/components.js.map +1 -1
  16. package/build/lib/demos/config-schema.d.ts +6 -6
  17. package/build/lib/github-actions/runner.js +2 -2
  18. package/build/lib/github-actions/runner.js.map +1 -1
  19. package/build/lib/graphql-document/$$.d.ts +5 -0
  20. package/build/lib/graphql-document/$$.d.ts.map +1 -0
  21. package/build/lib/graphql-document/$$.js +5 -0
  22. package/build/lib/graphql-document/$$.js.map +1 -0
  23. package/build/lib/graphql-document/$.d.ts +2 -0
  24. package/build/lib/graphql-document/$.d.ts.map +1 -0
  25. package/build/lib/graphql-document/$.js +2 -0
  26. package/build/lib/graphql-document/$.js.map +1 -0
  27. package/build/lib/graphql-document/analysis.d.ts +44 -0
  28. package/build/lib/graphql-document/analysis.d.ts.map +1 -0
  29. package/build/lib/graphql-document/analysis.js +361 -0
  30. package/build/lib/graphql-document/analysis.js.map +1 -0
  31. package/build/lib/graphql-document/components/CopyButton.d.ts +19 -0
  32. package/build/lib/graphql-document/components/CopyButton.d.ts.map +1 -0
  33. package/build/lib/graphql-document/components/CopyButton.js +43 -0
  34. package/build/lib/graphql-document/components/CopyButton.js.map +1 -0
  35. package/build/lib/graphql-document/components/GraphQLDocument.d.ts +38 -0
  36. package/build/lib/graphql-document/components/GraphQLDocument.d.ts.map +1 -0
  37. package/build/lib/graphql-document/components/GraphQLDocument.js +130 -0
  38. package/build/lib/graphql-document/components/GraphQLDocument.js.map +1 -0
  39. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts +7 -0
  40. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.d.ts.map +1 -0
  41. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js +45 -0
  42. package/build/lib/graphql-document/components/GraphQLDocumentWithSchema.js.map +1 -0
  43. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts +33 -0
  44. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.d.ts.map +1 -0
  45. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js +48 -0
  46. package/build/lib/graphql-document/components/GraphQLIdentifierPopover.js.map +1 -0
  47. package/build/lib/graphql-document/components/IdentifierLink.d.ts +39 -0
  48. package/build/lib/graphql-document/components/IdentifierLink.d.ts.map +1 -0
  49. package/build/lib/graphql-document/components/IdentifierLink.js +75 -0
  50. package/build/lib/graphql-document/components/IdentifierLink.js.map +1 -0
  51. package/build/lib/graphql-document/components/graphql-document-styles.d.ts +5 -0
  52. package/build/lib/graphql-document/components/graphql-document-styles.d.ts.map +1 -0
  53. package/build/lib/graphql-document/components/graphql-document-styles.js +167 -0
  54. package/build/lib/graphql-document/components/graphql-document-styles.js.map +1 -0
  55. package/build/lib/graphql-document/components/index.d.ts +6 -0
  56. package/build/lib/graphql-document/components/index.d.ts.map +1 -0
  57. package/build/lib/graphql-document/components/index.js +6 -0
  58. package/build/lib/graphql-document/components/index.js.map +1 -0
  59. package/build/lib/graphql-document/example.d.ts +25 -0
  60. package/build/lib/graphql-document/example.d.ts.map +1 -0
  61. package/build/lib/graphql-document/example.js +140 -0
  62. package/build/lib/graphql-document/example.js.map +1 -0
  63. package/build/lib/graphql-document/graphql-document.d.ts +35 -0
  64. package/build/lib/graphql-document/graphql-document.d.ts.map +1 -0
  65. package/build/lib/graphql-document/graphql-document.js +36 -0
  66. package/build/lib/graphql-document/graphql-document.js.map +1 -0
  67. package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts +43 -0
  68. package/build/lib/graphql-document/hooks/use-tooltip-state.d.ts.map +1 -0
  69. package/build/lib/graphql-document/hooks/use-tooltip-state.js +132 -0
  70. package/build/lib/graphql-document/hooks/use-tooltip-state.js.map +1 -0
  71. package/build/lib/graphql-document/positioning-simple.d.ts +68 -0
  72. package/build/lib/graphql-document/positioning-simple.d.ts.map +1 -0
  73. package/build/lib/graphql-document/positioning-simple.js +197 -0
  74. package/build/lib/graphql-document/positioning-simple.js.map +1 -0
  75. package/build/lib/graphql-document/schema-context.d.ts +8 -0
  76. package/build/lib/graphql-document/schema-context.d.ts.map +1 -0
  77. package/build/lib/graphql-document/schema-context.js +11 -0
  78. package/build/lib/graphql-document/schema-context.js.map +1 -0
  79. package/build/lib/graphql-document/schema-integration-example.d.ts +27 -0
  80. package/build/lib/graphql-document/schema-integration-example.d.ts.map +1 -0
  81. package/build/lib/graphql-document/schema-integration-example.js +297 -0
  82. package/build/lib/graphql-document/schema-integration-example.js.map +1 -0
  83. package/build/lib/graphql-document/schema-integration.d.ts +135 -0
  84. package/build/lib/graphql-document/schema-integration.d.ts.map +1 -0
  85. package/build/lib/graphql-document/schema-integration.js +328 -0
  86. package/build/lib/graphql-document/schema-integration.js.map +1 -0
  87. package/build/lib/graphql-document/types.d.ts +117 -0
  88. package/build/lib/graphql-document/types.d.ts.map +1 -0
  89. package/build/lib/graphql-document/types.js +2 -0
  90. package/build/lib/graphql-document/types.js.map +1 -0
  91. package/build/template/components/ArgumentAnnotation.js +10 -0
  92. package/build/template/components/ArgumentAnnotation.js.map +1 -0
  93. package/build/template/components/ArgumentList.js +9 -0
  94. package/build/template/components/ArgumentList.js.map +1 -0
  95. package/build/template/components/ArgumentListAnnotation.js +15 -0
  96. package/build/template/components/ArgumentListAnnotation.js.map +1 -0
  97. package/build/template/components/Changelog.js +44 -0
  98. package/build/template/components/Changelog.js.map +1 -0
  99. package/build/template/components/{CodeBlock.jsx → CodeBlock.js} +4 -5
  100. package/build/template/components/{CodeBlock.jsx.map → CodeBlock.js.map} +1 -1
  101. package/build/template/components/{CodeBlockEnhancer.jsx → CodeBlockEnhancer.js} +4 -4
  102. package/build/template/components/CodeBlockEnhancer.js.map +1 -0
  103. package/build/template/components/DeprecationReason.js +9 -0
  104. package/build/template/components/DeprecationReason.js.map +1 -0
  105. package/build/template/components/Description.js +9 -0
  106. package/build/template/components/Description.js.map +1 -0
  107. package/build/template/components/Field.js +14 -0
  108. package/build/template/components/Field.js.map +1 -0
  109. package/build/template/components/{FieldList.jsx → FieldList.js} +4 -5
  110. package/build/template/components/FieldList.js.map +1 -0
  111. package/build/template/components/{FieldListSection.jsx → FieldListSection.js} +4 -6
  112. package/build/template/components/FieldListSection.js.map +1 -0
  113. package/build/template/components/HamburgerMenu.js +30 -0
  114. package/build/template/components/HamburgerMenu.js.map +1 -0
  115. package/build/template/components/Link.d.ts +1 -1
  116. package/build/template/components/{Link.jsx → Link.js} +4 -5
  117. package/build/template/components/Link.js.map +1 -0
  118. package/build/template/components/Logo.js +20 -0
  119. package/build/template/components/Logo.js.map +1 -0
  120. package/build/template/components/MDXComponents.d.ts +11 -0
  121. package/build/template/components/MDXComponents.d.ts.map +1 -0
  122. package/build/template/components/MDXComponents.js +70 -0
  123. package/build/template/components/MDXComponents.js.map +1 -0
  124. package/build/template/components/{Markdown.jsx → Markdown.js} +3 -2
  125. package/build/template/components/Markdown.js.map +1 -0
  126. package/build/template/components/MissingSchema.d.ts +1 -1
  127. package/build/template/components/MissingSchema.d.ts.map +1 -1
  128. package/build/template/components/MissingSchema.js +5 -0
  129. package/build/template/components/MissingSchema.js.map +1 -0
  130. package/build/template/components/NamedType.js +12 -0
  131. package/build/template/components/NamedType.js.map +1 -0
  132. package/build/template/components/NotFound.js +7 -0
  133. package/build/template/components/NotFound.js.map +1 -0
  134. package/build/template/components/{RadixLink.jsx → RadixLink.js} +1 -1
  135. package/build/template/components/RadixLink.js.map +1 -0
  136. package/build/template/components/TestComponent.d.ts +5 -0
  137. package/build/template/components/TestComponent.d.ts.map +1 -0
  138. package/build/template/components/TestComponent.js +7 -0
  139. package/build/template/components/TestComponent.js.map +1 -0
  140. package/build/template/components/Texts/{MinorHeading.jsx → MinorHeading.js} +4 -3
  141. package/build/template/components/Texts/MinorHeading.js.map +1 -0
  142. package/build/template/components/Texts/texts.js +1 -1
  143. package/build/template/components/Texts/texts.js.map +1 -1
  144. package/build/template/components/ThemeToggle.js +9 -0
  145. package/build/template/components/ThemeToggle.js.map +1 -0
  146. package/build/template/components/{TypeAnnotation.jsx → TypeAnnotation.js} +8 -18
  147. package/build/template/components/TypeAnnotation.js.map +1 -0
  148. package/build/template/components/TypeFieldsLinkList.js +9 -0
  149. package/build/template/components/TypeFieldsLinkList.js.map +1 -0
  150. package/build/template/components/TypeIndex.js +17 -0
  151. package/build/template/components/TypeIndex.js.map +1 -0
  152. package/build/template/components/content/$$.d.ts +1 -0
  153. package/build/template/components/content/$$.d.ts.map +1 -1
  154. package/build/template/components/content/$$.js +1 -0
  155. package/build/template/components/content/$$.js.map +1 -1
  156. package/build/template/components/content/GraphQLDocumentWithSchema.d.ts +8 -0
  157. package/build/template/components/content/GraphQLDocumentWithSchema.d.ts.map +1 -0
  158. package/build/template/components/content/GraphQLDocumentWithSchema.js +16 -0
  159. package/build/template/components/content/GraphQLDocumentWithSchema.js.map +1 -0
  160. package/build/template/components/content/GraphQLDocumentWrapper.d.ts +7 -0
  161. package/build/template/components/content/GraphQLDocumentWrapper.d.ts.map +1 -0
  162. package/build/template/components/content/GraphQLDocumentWrapper.js +62 -0
  163. package/build/template/components/content/GraphQLDocumentWrapper.js.map +1 -0
  164. package/build/template/components/graphql/graphql.d.ts +2 -2
  165. package/build/template/components/graphql/graphql.js +3 -0
  166. package/build/template/components/graphql/graphql.js.map +1 -0
  167. package/build/template/components/graphql/index.d.ts +1 -1
  168. package/build/template/components/graphql/index.js +1 -1
  169. package/build/template/components/graphql/index.js.map +1 -1
  170. package/build/template/components/graphql/{type-kind-icon.jsx → type-kind-icon.js} +3 -2
  171. package/build/template/components/graphql/type-kind-icon.js.map +1 -0
  172. package/build/template/components/graphql/type-link.js +11 -0
  173. package/build/template/components/graphql/type-link.js.map +1 -0
  174. package/build/template/components/sidebar/Sidebar.d.ts +1 -1
  175. package/build/template/components/sidebar/Sidebar.d.ts.map +1 -1
  176. package/build/template/components/sidebar/Sidebar.js +11 -0
  177. package/build/template/components/sidebar/Sidebar.js.map +1 -0
  178. package/build/template/components/sidebar/{SidebarItem.jsx → SidebarItem.js} +15 -32
  179. package/build/template/components/sidebar/SidebarItem.js.map +1 -0
  180. package/build/template/components/sidebar/ToggleButton.d.ts +1 -1
  181. package/build/template/components/sidebar/ToggleButton.d.ts.map +1 -1
  182. package/build/template/components/sidebar/ToggleButton.js +5 -0
  183. package/build/template/components/sidebar/ToggleButton.js.map +1 -0
  184. package/build/template/contexts/{ThemeContext.jsx → ThemeContext.js} +3 -4
  185. package/build/template/contexts/{ThemeContext.jsx.map → ThemeContext.js.map} +1 -1
  186. package/build/template/entry.client.d.ts +1 -0
  187. package/build/template/entry.client.d.ts.map +1 -1
  188. package/build/template/{entry.client.jsx → entry.client.js} +5 -6
  189. package/build/template/entry.client.js.map +1 -0
  190. package/build/template/routes/changelog.d.ts +1 -1
  191. package/build/template/routes/{changelog.jsx → changelog.js} +5 -4
  192. package/build/template/routes/changelog.js.map +1 -0
  193. package/build/template/routes/{index.jsx → index.js} +3 -2
  194. package/build/template/routes/index.js.map +1 -0
  195. package/build/template/routes/reference.$type.$field.d.ts +1 -1
  196. package/build/template/routes/{reference.$type.$field.jsx → reference.$type.$field.js} +6 -5
  197. package/build/template/routes/reference.$type.$field.js.map +1 -0
  198. package/build/template/routes/reference.$type.d.ts +1 -1
  199. package/build/template/routes/{reference.$type.jsx → reference.$type.js} +6 -5
  200. package/build/template/routes/reference.$type.js.map +1 -0
  201. package/build/template/routes/reference.d.ts +2 -2
  202. package/build/template/routes/{reference.jsx → reference.js} +6 -7
  203. package/build/template/routes/reference.js.map +1 -0
  204. package/build/template/routes/root.d.ts +2 -2
  205. package/build/template/routes/root.d.ts.map +1 -1
  206. package/build/template/routes/{root.jsx → root.js} +46 -88
  207. package/build/template/routes/root.js.map +1 -0
  208. package/build/template/routes.js +5 -0
  209. package/build/template/routes.js.map +1 -0
  210. package/build/template/server/app.js +1 -1
  211. package/build/template/server/app.js.map +1 -1
  212. package/build/template/server/{render-page.jsx → render-page.js} +3 -4
  213. package/build/template/server/render-page.js.map +1 -0
  214. package/build/template/server/ssg/generate.js +1 -1
  215. package/build/template/server/ssg/generate.js.map +1 -1
  216. package/build/template/server/ssg/get-route-paths.js +1 -1
  217. package/build/template/server/ssg/get-route-paths.js.map +1 -1
  218. package/build/template/server/view.js +1 -1
  219. package/build/template/server/view.js.map +1 -1
  220. package/package.json +57 -8
  221. package/src/api/vite/plugins/core.ts +0 -3
  222. package/src/api/vite/plugins/pages.ts +1 -1
  223. package/src/exports/components.ts +4 -1
  224. package/src/lib/graphql-document/$$.ts +4 -0
  225. package/src/lib/graphql-document/$.test.ts +132 -0
  226. package/src/lib/graphql-document/$.ts +1 -0
  227. package/src/lib/graphql-document/README.md +102 -0
  228. package/src/lib/graphql-document/analysis.ts +415 -0
  229. package/src/lib/graphql-document/components/CopyButton.tsx +76 -0
  230. package/src/lib/graphql-document/components/GraphQLDocument.tsx +250 -0
  231. package/src/lib/graphql-document/components/GraphQLDocument.unit.test.ts +188 -0
  232. package/src/lib/graphql-document/components/GraphQLDocumentWithSchema.tsx +70 -0
  233. package/src/lib/graphql-document/components/GraphQLIdentifierPopover.tsx +197 -0
  234. package/src/lib/graphql-document/components/IdentifierLink.tsx +160 -0
  235. package/src/lib/graphql-document/components/graphql-document-styles.ts +167 -0
  236. package/src/lib/graphql-document/components/index.ts +5 -0
  237. package/src/lib/graphql-document/demo.md +155 -0
  238. package/src/lib/graphql-document/example.ts +163 -0
  239. package/src/lib/graphql-document/graphql-document.ts +37 -0
  240. package/src/lib/graphql-document/hooks/use-tooltip-state.test.ts +76 -0
  241. package/src/lib/graphql-document/hooks/use-tooltip-state.ts +191 -0
  242. package/src/lib/graphql-document/positioning-simple.test.ts +252 -0
  243. package/src/lib/graphql-document/positioning-simple.ts +271 -0
  244. package/src/lib/graphql-document/schema-context.tsx +20 -0
  245. package/src/lib/graphql-document/schema-integration-example.ts +341 -0
  246. package/src/lib/graphql-document/schema-integration.test.ts +365 -0
  247. package/src/lib/graphql-document/schema-integration.ts +497 -0
  248. package/src/lib/graphql-document/types.ts +129 -0
  249. package/src/template/components/ArgumentAnnotation.tsx +1 -1
  250. package/src/template/components/ArgumentList.tsx +1 -1
  251. package/src/template/components/ArgumentListAnnotation.tsx +2 -2
  252. package/src/template/components/CodeBlockEnhancer.tsx +21 -21
  253. package/src/template/components/DeprecationReason.tsx +1 -1
  254. package/src/template/components/Description.tsx +1 -1
  255. package/src/template/components/Field.tsx +4 -4
  256. package/src/template/components/FieldList.tsx +1 -1
  257. package/src/template/components/FieldListSection.tsx +1 -1
  258. package/src/template/components/Link.tsx +2 -2
  259. package/src/template/components/MDXComponents.tsx +101 -0
  260. package/src/template/components/NamedType.tsx +2 -2
  261. package/src/template/components/TestComponent.tsx +6 -0
  262. package/src/template/components/TypeAnnotation.tsx +1 -1
  263. package/src/template/components/TypeFieldsLinkList.tsx +1 -1
  264. package/src/template/components/TypeIndex.tsx +1 -1
  265. package/src/template/components/content/$$.ts +1 -0
  266. package/src/template/components/content/GraphQLDocumentWithSchema.tsx +18 -0
  267. package/src/template/components/content/GraphQLDocumentWrapper.tsx +82 -0
  268. package/src/template/components/graphql/graphql.tsx +2 -2
  269. package/src/template/components/graphql/index.ts +1 -1
  270. package/src/template/components/graphql/type-link.tsx +2 -2
  271. package/src/template/entry.client.tsx +2 -2
  272. package/src/template/routes/changelog.tsx +1 -1
  273. package/src/template/routes/reference.$type.$field.tsx +3 -3
  274. package/src/template/routes/reference.$type.tsx +3 -3
  275. package/src/template/routes/reference.tsx +3 -3
  276. package/src/template/routes/root.tsx +36 -25
  277. package/src/template/routes.tsx +1 -1
  278. package/src/template/server/app.ts +1 -1
  279. package/src/template/server/ssg/generate.ts +1 -1
  280. package/src/template/server/ssg/get-route-paths.ts +1 -1
  281. package/src/template/server/view.ts +1 -1
  282. package/src/template/styles/code-block.css +32 -0
  283. package/build/template/components/ArgumentAnnotation.jsx +0 -16
  284. package/build/template/components/ArgumentAnnotation.jsx.map +0 -1
  285. package/build/template/components/ArgumentList.jsx +0 -16
  286. package/build/template/components/ArgumentList.jsx.map +0 -1
  287. package/build/template/components/ArgumentListAnnotation.jsx +0 -23
  288. package/build/template/components/ArgumentListAnnotation.jsx.map +0 -1
  289. package/build/template/components/Changelog.jsx +0 -68
  290. package/build/template/components/Changelog.jsx.map +0 -1
  291. package/build/template/components/CodeBlockEnhancer.jsx.map +0 -1
  292. package/build/template/components/DeprecationReason.jsx +0 -10
  293. package/build/template/components/DeprecationReason.jsx.map +0 -1
  294. package/build/template/components/Description.jsx +0 -10
  295. package/build/template/components/Description.jsx.map +0 -1
  296. package/build/template/components/Field.jsx +0 -22
  297. package/build/template/components/Field.jsx.map +0 -1
  298. package/build/template/components/FieldList.jsx.map +0 -1
  299. package/build/template/components/FieldListSection.jsx.map +0 -1
  300. package/build/template/components/HamburgerMenu.jsx +0 -53
  301. package/build/template/components/HamburgerMenu.jsx.map +0 -1
  302. package/build/template/components/Link.jsx.map +0 -1
  303. package/build/template/components/Logo.jsx +0 -29
  304. package/build/template/components/Logo.jsx.map +0 -1
  305. package/build/template/components/Markdown.jsx.map +0 -1
  306. package/build/template/components/MissingSchema.jsx +0 -4
  307. package/build/template/components/MissingSchema.jsx.map +0 -1
  308. package/build/template/components/NamedType.jsx +0 -17
  309. package/build/template/components/NamedType.jsx.map +0 -1
  310. package/build/template/components/NotFound.jsx +0 -26
  311. package/build/template/components/NotFound.jsx.map +0 -1
  312. package/build/template/components/RadixLink.jsx.map +0 -1
  313. package/build/template/components/Texts/MinorHeading.jsx.map +0 -1
  314. package/build/template/components/ThemeToggle.jsx +0 -10
  315. package/build/template/components/ThemeToggle.jsx.map +0 -1
  316. package/build/template/components/TypeAnnotation.jsx.map +0 -1
  317. package/build/template/components/TypeFieldsLinkList.jsx +0 -17
  318. package/build/template/components/TypeFieldsLinkList.jsx.map +0 -1
  319. package/build/template/components/TypeIndex.jsx +0 -27
  320. package/build/template/components/TypeIndex.jsx.map +0 -1
  321. package/build/template/components/graphql/graphql.jsx +0 -3
  322. package/build/template/components/graphql/graphql.jsx.map +0 -1
  323. package/build/template/components/graphql/type-kind-icon.jsx.map +0 -1
  324. package/build/template/components/graphql/type-link.jsx +0 -16
  325. package/build/template/components/graphql/type-link.jsx.map +0 -1
  326. package/build/template/components/sidebar/Sidebar.jsx +0 -15
  327. package/build/template/components/sidebar/Sidebar.jsx.map +0 -1
  328. package/build/template/components/sidebar/SidebarItem.jsx.map +0 -1
  329. package/build/template/components/sidebar/ToggleButton.jsx +0 -6
  330. package/build/template/components/sidebar/ToggleButton.jsx.map +0 -1
  331. package/build/template/entry.client.jsx.map +0 -1
  332. package/build/template/routes/changelog.jsx.map +0 -1
  333. package/build/template/routes/index.jsx.map +0 -1
  334. package/build/template/routes/reference.$type.$field.jsx.map +0 -1
  335. package/build/template/routes/reference.$type.jsx.map +0 -1
  336. package/build/template/routes/reference.jsx.map +0 -1
  337. package/build/template/routes/root.jsx.map +0 -1
  338. package/build/template/routes.jsx +0 -5
  339. package/build/template/routes.jsx.map +0 -1
  340. package/build/template/server/render-page.jsx.map +0 -1
@@ -0,0 +1,197 @@
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
+ * Simplified position calculator for Shiki-rendered code
9
+ *
10
+ * This version uses a more straightforward approach:
11
+ * 1. Find the line element by line number
12
+ * 2. Search for the identifier text within that line
13
+ * 3. Create a span around the identifier for positioning
14
+ *
15
+ * This approach modifies the DOM but is more reliable for testing
16
+ * and works well with React's reconciliation.
17
+ */
18
+ export class SimplePositionCalculator {
19
+ /**
20
+ * Prepare a code block for positioning by wrapping identifiers in spans
21
+ */
22
+ prepareCodeBlock(containerElement, identifiers) {
23
+ // Sort all identifiers by position (right to left, bottom to top)
24
+ const sortedIdentifiers = [...identifiers].sort((a, b) => {
25
+ // Sort by line first (bottom to top)
26
+ if (a.position.line !== b.position.line) {
27
+ return b.position.line - a.position.line;
28
+ }
29
+ // Then by column (right to left)
30
+ return b.position.column - a.position.column;
31
+ });
32
+ // Process all identifiers
33
+ let wrappedCount = 0;
34
+ for (const identifier of sortedIdentifiers) {
35
+ const wrapped = this.wrapIdentifier(containerElement, identifier);
36
+ if (wrapped)
37
+ wrappedCount++;
38
+ }
39
+ }
40
+ /**
41
+ * Get positions of all wrapped identifiers
42
+ */
43
+ getIdentifierPositions(containerElement, relativeToElement) {
44
+ const results = new Map();
45
+ // Find all wrapped identifiers
46
+ const wrappedIdentifiers = containerElement.querySelectorAll('[data-graphql-id]');
47
+ // Use the provided element for relative positioning, or the container itself
48
+ const referenceElement = relativeToElement || containerElement;
49
+ for (const element of wrappedIdentifiers) {
50
+ const id = element.getAttribute('data-graphql-id');
51
+ if (!id)
52
+ continue;
53
+ // Get position relative to the reference element
54
+ const referenceRect = referenceElement.getBoundingClientRect();
55
+ const elementRect = element.getBoundingClientRect();
56
+ const position = {
57
+ top: elementRect.top - referenceRect.top,
58
+ left: elementRect.left - referenceRect.left,
59
+ width: elementRect.width,
60
+ height: elementRect.height,
61
+ };
62
+ // Reconstruct identifier from data attributes
63
+ const identifier = {
64
+ name: element.getAttribute('data-graphql-name') || '',
65
+ kind: (element.getAttribute('data-graphql-kind') || 'Field'),
66
+ position: {
67
+ start: parseInt(element.getAttribute('data-graphql-start') || '0'),
68
+ end: parseInt(element.getAttribute('data-graphql-end') || '0'),
69
+ line: parseInt(element.getAttribute('data-graphql-line') || '1'),
70
+ column: parseInt(element.getAttribute('data-graphql-column') || '1'),
71
+ },
72
+ schemaPath: (element.getAttribute('data-graphql-path') || '').split(',').filter(Boolean),
73
+ context: { selectionPath: [] },
74
+ };
75
+ results.set(id, { position, identifier });
76
+ }
77
+ return results;
78
+ }
79
+ /**
80
+ * Wrap an identifier in a span for positioning
81
+ * Returns true if the identifier was successfully wrapped
82
+ */
83
+ wrapIdentifier(containerElement, identifier) {
84
+ const walker = document.createTreeWalker(containerElement, NodeFilter.SHOW_TEXT, null);
85
+ let currentLine = 1;
86
+ let currentColumn = 1;
87
+ let node;
88
+ while (node = walker.nextNode()) {
89
+ const textNode = node;
90
+ const text = textNode.textContent || '';
91
+ // Check if already wrapped
92
+ if (textNode.parentElement?.hasAttribute('data-graphql-id')) {
93
+ // Update position tracking and continue
94
+ for (const char of text) {
95
+ if (char === '\n') {
96
+ currentLine++;
97
+ currentColumn = 1;
98
+ }
99
+ else {
100
+ currentColumn++;
101
+ }
102
+ }
103
+ continue;
104
+ }
105
+ // Track position in the text
106
+ let textIndex = 0;
107
+ while (textIndex < text.length) {
108
+ // Check if we're at the identifier's position
109
+ if (currentLine === identifier.position.line
110
+ && currentColumn === identifier.position.column) {
111
+ // Verify it's actually our identifier
112
+ const remainingText = text.substring(textIndex);
113
+ if (remainingText.startsWith(identifier.name)) {
114
+ // Create a unique ID for this identifier
115
+ const id = `${identifier.position.start}-${identifier.name}-${identifier.kind}`;
116
+ // Split the text node and wrap the identifier
117
+ const before = text.substring(0, textIndex);
118
+ const after = text.substring(textIndex + identifier.name.length);
119
+ const span = document.createElement('span');
120
+ span.setAttribute('data-graphql-id', id);
121
+ span.setAttribute('data-graphql-name', identifier.name);
122
+ span.setAttribute('data-graphql-kind', identifier.kind);
123
+ span.setAttribute('data-graphql-start', String(identifier.position.start));
124
+ span.setAttribute('data-graphql-end', String(identifier.position.end));
125
+ span.setAttribute('data-graphql-line', String(identifier.position.line));
126
+ span.setAttribute('data-graphql-column', String(identifier.position.column));
127
+ span.setAttribute('data-graphql-path', identifier.schemaPath.join(','));
128
+ span.textContent = identifier.name;
129
+ const parent = textNode.parentNode;
130
+ if (before) {
131
+ parent.insertBefore(document.createTextNode(before), textNode);
132
+ }
133
+ parent.insertBefore(span, textNode);
134
+ if (after) {
135
+ parent.insertBefore(document.createTextNode(after), textNode);
136
+ }
137
+ parent.removeChild(textNode);
138
+ return true;
139
+ }
140
+ }
141
+ // Update position tracking
142
+ const char = text[textIndex];
143
+ if (char === '\n') {
144
+ currentLine++;
145
+ currentColumn = 1;
146
+ }
147
+ else {
148
+ currentColumn++;
149
+ }
150
+ textIndex++;
151
+ }
152
+ }
153
+ return false; // Identifier not found
154
+ }
155
+ }
156
+ /**
157
+ * Create invisible overlay for a position
158
+ */
159
+ export const createSimpleOverlay = (position, identifier, options) => {
160
+ const overlay = document.createElement('div');
161
+ // Base styles for positioning
162
+ overlay.style.position = 'absolute';
163
+ overlay.style.top = `${position.top}px`;
164
+ overlay.style.left = `${position.left}px`;
165
+ overlay.style.width = `${position.width}px`;
166
+ overlay.style.height = `${position.height}px`;
167
+ overlay.style.cursor = 'pointer';
168
+ overlay.style.zIndex = '10';
169
+ // Add custom class if provided
170
+ if (options?.className) {
171
+ overlay.className = options.className;
172
+ }
173
+ // Data attributes
174
+ overlay.setAttribute('data-graphql-overlay', 'true');
175
+ overlay.setAttribute('data-graphql-name', identifier.name);
176
+ overlay.setAttribute('data-graphql-kind', identifier.kind);
177
+ // Event handlers
178
+ if (options?.onClick) {
179
+ overlay.addEventListener('click', (e) => {
180
+ e.preventDefault();
181
+ options.onClick(identifier);
182
+ });
183
+ }
184
+ if (options?.onHover) {
185
+ overlay.addEventListener('mouseenter', (e) => {
186
+ options.onHover(identifier, e);
187
+ });
188
+ }
189
+ return overlay;
190
+ };
191
+ /**
192
+ * Factory function for position calculator
193
+ */
194
+ export const createSimplePositionCalculator = () => {
195
+ return new SimplePositionCalculator();
196
+ };
197
+ //# sourceMappingURL=positioning-simple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"positioning-simple.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/positioning-simple.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { GraphQLSchema } from 'graphql';
2
+ import React from 'react';
3
+ export declare const GraphQLSchemaContext: React.Context<GraphQLSchema | null>;
4
+ export declare const useGraphQLSchema: () => GraphQLSchema | null;
5
+ export declare const GraphQLSchemaProvider: React.FC<React.PropsWithChildren<{
6
+ schema: GraphQLSchema | null;
7
+ }>>;
8
+ //# sourceMappingURL=schema-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-context.d.ts","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,oBAAoB,qCAAkD,CAAA;AAEnF,eAAO,MAAM,gBAAgB,4BAG5B,CAAA;AAED,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC;IAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,CAAC,CASrG,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ export const GraphQLSchemaContext = React.createContext(null);
4
+ export const useGraphQLSchema = () => {
5
+ const schema = React.useContext(GraphQLSchemaContext);
6
+ return schema;
7
+ };
8
+ export const GraphQLSchemaProvider = ({ children, schema, }) => {
9
+ return (_jsx(GraphQLSchemaContext.Provider, { value: schema, children: children }));
10
+ };
11
+ //# sourceMappingURL=schema-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-context.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-context.tsx"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,aAAa,CAAuB,IAAI,CAAC,CAAA;AAEnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAA;IACrD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAwE,CAAC,EACzG,QAAQ,EACR,MAAM,GACP,EAAE,EAAE;IACH,OAAO,CACL,KAAC,oBAAoB,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,YACzC,QAAQ,GACqB,CACjC,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Example usage of Schema Integration (Layer 2)
3
+ *
4
+ * Demonstrates how the schema integration layer resolves GraphQL identifiers
5
+ * against actual schemas, extracts documentation, and generates reference URLs.
6
+ */
7
+ /**
8
+ * Demonstrate basic schema resolution
9
+ */
10
+ export declare const demonstrateSchemaResolution: () => void;
11
+ /**
12
+ * Demonstrate full schema-aware analysis
13
+ */
14
+ export declare const demonstrateSchemaAwareAnalysis: () => void;
15
+ /**
16
+ * Demonstrate tooltip data extraction
17
+ */
18
+ export declare const demonstrateTooltipData: () => void;
19
+ /**
20
+ * Demonstrate URL generation customization
21
+ */
22
+ export declare const demonstrateCustomURLGeneration: () => void;
23
+ /**
24
+ * Show integration with Polen's reference system
25
+ */
26
+ export declare const demonstratePolenIntegration: () => void;
27
+ //# sourceMappingURL=schema-integration-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-integration-example.d.ts","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-integration-example.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmFH;;GAEG;AACH,eAAO,MAAM,2BAA2B,YAkEvC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,YA+C1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,YAoClC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,YA2B1C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,2BAA2B,YA4CvC,CAAA"}
@@ -0,0 +1,297 @@
1
+ /**
2
+ * Example usage of Schema Integration (Layer 2)
3
+ *
4
+ * Demonstrates how the schema integration layer resolves GraphQL identifiers
5
+ * against actual schemas, extracts documentation, and generates reference URLs.
6
+ */
7
+ import { buildSchema } from 'graphql';
8
+ import { analyzeWithSchema, createPolenSchemaResolver } from "./schema-integration.js";
9
+ // Example schema - typical GraphQL API
10
+ const pokemonSchema = buildSchema(`
11
+ """
12
+ A PokƩmon character
13
+ """
14
+ type Pokemon {
15
+ """
16
+ The PokƩmon's unique identifier
17
+ """
18
+ id: ID!
19
+
20
+ """
21
+ The PokƩmon's name
22
+ """
23
+ name: String!
24
+
25
+ """
26
+ The PokƩmon's type (e.g., Electric, Fire, Water)
27
+ """
28
+ type: String!
29
+
30
+ """
31
+ The PokƩmon's abilities
32
+ """
33
+ abilities(
34
+ """
35
+ Maximum number of abilities to return
36
+ """
37
+ first: Int = 5
38
+ ): [Ability!]!
39
+
40
+ """
41
+ @deprecated Use evolutionChain instead
42
+ """
43
+ evolutions: [Pokemon!] @deprecated(reason: "Use evolutionChain instead")
44
+ }
45
+
46
+ """
47
+ A special ability that PokƩmon can have
48
+ """
49
+ type Ability {
50
+ id: ID!
51
+ name: String!
52
+ description: String
53
+ isHidden: Boolean!
54
+ }
55
+
56
+ type Query {
57
+ """
58
+ Get a PokƩmon by ID
59
+ """
60
+ pokemon(id: ID!): Pokemon
61
+
62
+ """
63
+ Search for PokƩmon by name
64
+ """
65
+ searchPokemon(query: String!): [Pokemon!]!
66
+ }
67
+ `);
68
+ // Example GraphQL query with various constructs
69
+ const exampleQuery = `
70
+ query GetPokemonDetails($pokemonId: ID!, $abilityLimit: Int = 3) {
71
+ pokemon(id: $pokemonId) {
72
+ id
73
+ name
74
+ type
75
+ abilities(first: $abilityLimit) {
76
+ name
77
+ description
78
+ isHidden
79
+ }
80
+ evolutions # This field is deprecated
81
+ invalidField # This field doesn't exist
82
+ }
83
+ }
84
+ `;
85
+ /**
86
+ * Demonstrate basic schema resolution
87
+ */
88
+ export const demonstrateSchemaResolution = () => {
89
+ console.log('šŸ”— Schema Integration Demo\n');
90
+ const resolver = createPolenSchemaResolver(pokemonSchema);
91
+ // Example identifiers (normally extracted from AST)
92
+ const testIdentifiers = [
93
+ {
94
+ name: 'Pokemon',
95
+ kind: 'Type',
96
+ position: { start: 50, end: 57, line: 3, column: 5 },
97
+ schemaPath: ['Pokemon'],
98
+ context: { selectionPath: [] },
99
+ },
100
+ {
101
+ name: 'name',
102
+ kind: 'Field',
103
+ position: { start: 75, end: 79, line: 4, column: 7 },
104
+ parentType: 'Pokemon',
105
+ schemaPath: ['Pokemon', 'name'],
106
+ context: { selectionPath: ['pokemon', 'name'] },
107
+ },
108
+ {
109
+ name: 'evolutions',
110
+ kind: 'Field',
111
+ position: { start: 150, end: 160, line: 9, column: 7 },
112
+ parentType: 'Pokemon',
113
+ schemaPath: ['Pokemon', 'evolutions'],
114
+ context: { selectionPath: ['pokemon', 'evolutions'] },
115
+ },
116
+ {
117
+ name: 'first',
118
+ kind: 'Argument',
119
+ position: { start: 120, end: 125, line: 6, column: 20 },
120
+ parentType: 'Pokemon',
121
+ schemaPath: ['Pokemon', 'abilities', 'first'],
122
+ context: { selectionPath: ['pokemon', 'abilities'] },
123
+ },
124
+ ];
125
+ console.log('šŸ“‹ Identifier Resolutions:\n');
126
+ for (const identifier of testIdentifiers) {
127
+ const resolution = resolver.resolveIdentifier(identifier);
128
+ if (!resolution)
129
+ continue;
130
+ console.log(`šŸ·ļø ${identifier.kind}: ${identifier.name}`);
131
+ console.log(` āœ… Exists: ${resolution.exists}`);
132
+ console.log(` šŸ”— URL: ${resolution.referenceUrl}`);
133
+ if (resolution.documentation) {
134
+ console.log(` šŸ“ Type: ${resolution.documentation.typeInfo}`);
135
+ if (resolution.documentation.description) {
136
+ console.log(` šŸ’¬ Description: ${resolution.documentation.description}`);
137
+ }
138
+ if (resolution.documentation.defaultValue) {
139
+ console.log(` šŸŽÆ Default: ${resolution.documentation.defaultValue}`);
140
+ }
141
+ }
142
+ if (resolution.deprecated) {
143
+ console.log(` āš ļø DEPRECATED: ${resolution.deprecated.reason}`);
144
+ }
145
+ console.log();
146
+ }
147
+ };
148
+ /**
149
+ * Demonstrate full schema-aware analysis
150
+ */
151
+ export const demonstrateSchemaAwareAnalysis = () => {
152
+ console.log('šŸ” Schema-Aware Analysis\n');
153
+ const result = analyzeWithSchema(exampleQuery, pokemonSchema);
154
+ console.log(`šŸ“Š Analysis Summary:`);
155
+ console.log(` • Valid GraphQL: ${result.analysis.isValid}`);
156
+ console.log(` • Total identifiers: ${result.analysis.identifiers.all.length}`);
157
+ console.log(` • Schema resolutions: ${result.resolutions.size}`);
158
+ console.log(` • Schema errors: ${result.schemaErrors.length}\n`);
159
+ // Show validation errors
160
+ if (result.schemaErrors.length > 0) {
161
+ console.log('🚨 Schema Validation Issues:\n');
162
+ for (const error of result.schemaErrors) {
163
+ const emoji = error.severity === 'error' ? 'āŒ' : 'āš ļø';
164
+ const pos = `${error.identifier.position.line}:${error.identifier.position.column}`;
165
+ console.log(` ${emoji} ${error.message} @ ${pos}`);
166
+ }
167
+ console.log();
168
+ }
169
+ // Show successful resolutions with hyperlink potential
170
+ console.log('šŸ”— Generated Hyperlinks:\n');
171
+ let linkCount = 0;
172
+ for (const [key, resolution] of result.resolutions) {
173
+ if (resolution.exists && linkCount < 8) { // Show first 8 successful resolutions
174
+ const identifier = result.analysis.identifiers.all.find(id => key.startsWith(`${id.position.start}-${id.name}-${id.kind}`));
175
+ if (identifier) {
176
+ const pos = `${identifier.position.line}:${identifier.position.column}`;
177
+ console.log(` šŸ“ ${identifier.name} (${identifier.kind}) → ${resolution.referenceUrl}`);
178
+ if (resolution.documentation?.description) {
179
+ const shortDesc = resolution.documentation.description.length > 50
180
+ ? resolution.documentation.description.substring(0, 50) + '...'
181
+ : resolution.documentation.description;
182
+ console.log(` šŸ’¬ "${shortDesc}"`);
183
+ }
184
+ linkCount++;
185
+ }
186
+ }
187
+ }
188
+ };
189
+ /**
190
+ * Demonstrate tooltip data extraction
191
+ */
192
+ export const demonstrateTooltipData = () => {
193
+ console.log('\nšŸ’¬ Tooltip Data Extraction\n');
194
+ const resolver = createPolenSchemaResolver(pokemonSchema);
195
+ // Simulate tooltip hover scenarios
196
+ const tooltipExamples = [
197
+ ['Pokemon'],
198
+ ['Pokemon', 'name'],
199
+ ['Pokemon', 'abilities'],
200
+ ['Pokemon', 'abilities', 'first'],
201
+ ['Ability', 'isHidden'],
202
+ ];
203
+ for (const schemaPath of tooltipExamples) {
204
+ const docs = resolver.getDocumentation(schemaPath);
205
+ if (docs) {
206
+ const pathStr = schemaPath.join(' → ');
207
+ console.log(`šŸ·ļø ${pathStr}`);
208
+ console.log(` šŸ“‹ Type: ${docs.typeInfo}`);
209
+ if (docs.description) {
210
+ console.log(` šŸ’¬ Description: ${docs.description}`);
211
+ }
212
+ if (docs.defaultValue) {
213
+ console.log(` šŸŽÆ Default: ${docs.defaultValue}`);
214
+ }
215
+ if (docs.deprecated) {
216
+ console.log(` āš ļø DEPRECATED: ${docs.deprecated.reason}`);
217
+ }
218
+ console.log();
219
+ }
220
+ }
221
+ };
222
+ /**
223
+ * Demonstrate URL generation customization
224
+ */
225
+ export const demonstrateCustomURLGeneration = () => {
226
+ console.log('šŸ› ļø Custom URL Generation\n');
227
+ // Different resolver configurations
228
+ const configurations = [
229
+ { name: 'Default', config: {} },
230
+ { name: 'Custom Base Path', config: { basePath: '/docs/api' } },
231
+ { name: 'No Fragments', config: { includeFragments: false } },
232
+ { name: 'Custom + No Fragments', config: { basePath: '/schema', includeFragments: false } },
233
+ ];
234
+ const testPaths = [
235
+ ['Pokemon'],
236
+ ['Pokemon', 'name'],
237
+ ['Pokemon', 'abilities', 'first'],
238
+ ];
239
+ for (const { name, config } of configurations) {
240
+ console.log(`šŸ“‹ ${name}:`);
241
+ const resolver = createPolenSchemaResolver(pokemonSchema, config);
242
+ for (const path of testPaths) {
243
+ const url = resolver.generateReferenceLink(path);
244
+ console.log(` ${path.join(' → ')} → ${url}`);
245
+ }
246
+ console.log();
247
+ }
248
+ };
249
+ /**
250
+ * Show integration with Polen's reference system
251
+ */
252
+ export const demonstratePolenIntegration = () => {
253
+ console.log('šŸ—ļø Polen Integration Preview\n');
254
+ // This demonstrates how the schema integration connects with Polen's existing systems
255
+ const result = analyzeWithSchema(exampleQuery, pokemonSchema, {
256
+ basePath: '/reference', // Polen's reference page base
257
+ includeFragments: true, // Enable field anchors
258
+ });
259
+ console.log('šŸ”„ How this integrates with Polen:\n');
260
+ console.log('1. šŸ“‹ Schema Loading:');
261
+ console.log(" • Uses PROJECT_DATA.schema from Polen's build system");
262
+ console.log(' • Leverages existing schema processing pipeline');
263
+ console.log();
264
+ console.log('2. šŸ”— Reference Links:');
265
+ console.log(" • Generates URLs matching Polen's /reference/* structure");
266
+ console.log(' • Works with existing TypeIndex and sidebar system');
267
+ console.log();
268
+ console.log('3. šŸ’¬ Documentation:');
269
+ console.log(' • Extracts descriptions for hover tooltips');
270
+ console.log(' • Provides type signatures for context');
271
+ console.log(' • Detects deprecation warnings');
272
+ console.log();
273
+ console.log('4. āœ… Validation:');
274
+ console.log(' • Build-time validation against actual schema');
275
+ console.log(' • Catches typos and invalid references');
276
+ console.log(' • Reports deprecation usage');
277
+ console.log();
278
+ // Show some example integrations
279
+ const validFields = Array.from(result.resolutions.values())
280
+ .filter(r => r.exists)
281
+ .slice(0, 3);
282
+ if (validFields.length > 0) {
283
+ console.log('šŸ“‹ Example Reference Links:');
284
+ for (const resolution of validFields) {
285
+ console.log(` • ${resolution.referenceUrl}`);
286
+ }
287
+ }
288
+ };
289
+ // Run examples if executed directly
290
+ if (import.meta.url === `file://${process.argv[1]}`) {
291
+ demonstrateSchemaResolution();
292
+ demonstrateSchemaAwareAnalysis();
293
+ demonstrateTooltipData();
294
+ demonstrateCustomURLGeneration();
295
+ demonstratePolenIntegration();
296
+ }
297
+ //# sourceMappingURL=schema-integration-example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-integration-example.js","sourceRoot":"","sources":["../../../src/lib/graphql-document/schema-integration-example.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAA;AAEtF,uCAAuC;AACvC,MAAM,aAAa,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDjC,CAAC,CAAA;AAEF,gDAAgD;AAChD,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;CAepB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC9C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAEzD,oDAAoD;IACpD,MAAM,eAAe,GAAG;QACtB;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,MAAe;YACrB,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YACpD,UAAU,EAAE,CAAC,SAAS,CAAC;YACvB,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;SAC/B;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,OAAgB;YACtB,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YACpD,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;YAC/B,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;SAChD;QACD;YACE,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,OAAgB;YACtB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YACtD,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC;YACrC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE;SACtD;QACD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,UAAmB;YACzB,QAAQ,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE;YACvD,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;YAC7C,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;SACrD;KACF,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAA;QACzD,IAAI,CAAC,UAAU;YAAE,SAAQ;QAEzB,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1D,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAChD,OAAO,CAAC,GAAG,CAAC,cAAc,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;QAEpD,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAe,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC/D,IAAI,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAA;YAC3E,CAAC;YACD,IAAI,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;gBAC1C,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAA;YACxE,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,sBAAsB,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QACnE,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAA;IACf,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE;IACjD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IAEzC,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAA;IAE7D,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7D,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;IAChF,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,CAAA;IAElE,yBAAyB;IACzB,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;YACrD,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;YACnF,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,MAAM,GAAG,EAAE,CAAC,CAAA;QACtD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;IACf,CAAC;IAED,uDAAuD;IACvD,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;IACzC,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACnD,IAAI,UAAU,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC,CAAC,sCAAsC;YAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAC3D,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,CAC7D,CAAA;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;gBACvE,OAAO,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,OAAO,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;gBAEzF,IAAI,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;oBAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,GAAG,EAAE;wBAChE,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;wBAC/D,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAA;oBACxC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,GAAG,CAAC,CAAA;gBACxC,CAAC;gBAED,SAAS,EAAE,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAE7C,MAAM,QAAQ,GAAG,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAEzD,mCAAmC;IACnC,MAAM,eAAe,GAAG;QACtB,CAAC,SAAS,CAAC;QACX,CAAC,SAAS,EAAE,MAAM,CAAC;QACnB,CAAC,SAAS,EAAE,WAAW,CAAC;QACxB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;QACjC,CAAC,SAAS,EAAE,UAAU,CAAC;KACxB,CAAA;IAED,KAAK,MAAM,UAAU,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAA;QAClD,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAA;YAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;YAE3C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;YACvD,CAAC;YAED,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;YACpD,CAAC;YAED,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;YAC7D,CAAC;YAED,OAAO,CAAC,GAAG,EAAE,CAAA;QACf,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,EAAE;IACjD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAE3C,oCAAoC;IACpC,MAAM,cAAc,GAAG;QACrB,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE;QAC/D,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE;QAC7D,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE;KAC5F,CAAA;IAED,MAAM,SAAS,GAAG;QAChB,CAAC,SAAS,CAAC;QACX,CAAC,SAAS,EAAE,MAAM,CAAC;QACnB,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC;KAClC,CAAA;IAED,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAA;QAC1B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,aAAa,EAAE,MAAM,CAAC,CAAA;QAEjE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAA;YAChD,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;QAChD,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;IACf,CAAC;AACH,CAAC,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,EAAE;IAC9C,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;IAE/C,sFAAsF;IACtF,MAAM,MAAM,GAAG,iBAAiB,CAAC,YAAY,EAAE,aAAa,EAAE;QAC5D,QAAQ,EAAE,YAAY,EAAE,8BAA8B;QACtD,gBAAgB,EAAE,IAAI,EAAE,uBAAuB;KAChD,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;IAEnD,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAA;IACpC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAA;IACtE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAA;IACjE,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACrC,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAA;IAC1E,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IACpE,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;IACnC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;IAChD,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAC7C,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,iCAAiC;IACjC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;SACxD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAEd,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAA;QAC1C,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,oCAAoC;AACpC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,2BAA2B,EAAE,CAAA;IAC7B,8BAA8B,EAAE,CAAA;IAChC,sBAAsB,EAAE,CAAA;IACxB,8BAA8B,EAAE,CAAA;IAChC,2BAA2B,EAAE,CAAA;AAC/B,CAAC"}