@gtkx/codegen 0.21.0 → 1.0.0-rc.1

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 (732) hide show
  1. package/README.md +173 -0
  2. package/dist/analysis/descriptor-render.d.ts +18 -0
  3. package/dist/analysis/descriptor-render.d.ts.map +1 -0
  4. package/dist/analysis/descriptor-render.js +297 -0
  5. package/dist/analysis/descriptor-render.js.map +1 -0
  6. package/dist/analysis/descriptor.d.ts +59 -0
  7. package/dist/analysis/descriptor.d.ts.map +1 -0
  8. package/dist/analysis/descriptor.js +123 -0
  9. package/dist/analysis/descriptor.js.map +1 -0
  10. package/dist/analysis/inheritance.d.ts +38 -0
  11. package/dist/analysis/inheritance.d.ts.map +1 -0
  12. package/dist/analysis/inheritance.js +193 -0
  13. package/dist/analysis/inheritance.js.map +1 -0
  14. package/dist/analysis/param-structure.d.ts +26 -0
  15. package/dist/analysis/param-structure.d.ts.map +1 -0
  16. package/dist/analysis/param-structure.js +107 -0
  17. package/dist/analysis/param-structure.js.map +1 -0
  18. package/dist/analysis/ts-type.d.ts +19 -0
  19. package/dist/analysis/ts-type.d.ts.map +1 -0
  20. package/dist/analysis/ts-type.js +65 -0
  21. package/dist/analysis/ts-type.js.map +1 -0
  22. package/dist/compile.d.ts +18 -0
  23. package/dist/compile.d.ts.map +1 -0
  24. package/dist/compile.js +123 -0
  25. package/dist/compile.js.map +1 -0
  26. package/dist/docs/api-reference.d.ts +66 -0
  27. package/dist/docs/api-reference.d.ts.map +1 -0
  28. package/dist/docs/api-reference.js +299 -0
  29. package/dist/docs/api-reference.js.map +1 -0
  30. package/dist/docs/element-page.d.ts +15 -0
  31. package/dist/docs/element-page.d.ts.map +1 -0
  32. package/dist/docs/element-page.js +221 -0
  33. package/dist/docs/element-page.js.map +1 -0
  34. package/dist/docs/pipeline.d.ts +25 -0
  35. package/dist/docs/pipeline.d.ts.map +1 -0
  36. package/dist/docs/pipeline.js +130 -0
  37. package/dist/docs/pipeline.js.map +1 -0
  38. package/dist/docs/render.d.ts +32 -0
  39. package/dist/docs/render.d.ts.map +1 -0
  40. package/dist/docs/render.js +134 -0
  41. package/dist/docs/render.js.map +1 -0
  42. package/dist/docs/symbol-page.d.ts +41 -0
  43. package/dist/docs/symbol-page.d.ts.map +1 -0
  44. package/dist/docs/symbol-page.js +338 -0
  45. package/dist/docs/symbol-page.js.map +1 -0
  46. package/dist/fingerprint.d.ts +6 -26
  47. package/dist/fingerprint.d.ts.map +1 -1
  48. package/dist/fingerprint.js +30 -18
  49. package/dist/fingerprint.js.map +1 -1
  50. package/dist/gir/ancestry.d.ts +9 -0
  51. package/dist/gir/ancestry.d.ts.map +1 -0
  52. package/dist/gir/ancestry.js +29 -0
  53. package/dist/gir/ancestry.js.map +1 -0
  54. package/dist/gir/callback.d.ts +9 -10
  55. package/dist/gir/callback.d.ts.map +1 -1
  56. package/dist/gir/callback.js +17 -16
  57. package/dist/gir/callback.js.map +1 -1
  58. package/dist/gir/class.d.ts +22 -43
  59. package/dist/gir/class.d.ts.map +1 -1
  60. package/dist/gir/class.js +11 -23
  61. package/dist/gir/class.js.map +1 -1
  62. package/dist/gir/enum.d.ts +13 -31
  63. package/dist/gir/enum.d.ts.map +1 -1
  64. package/dist/gir/enum.js +7 -14
  65. package/dist/gir/enum.js.map +1 -1
  66. package/dist/gir/field.d.ts +10 -23
  67. package/dist/gir/field.d.ts.map +1 -1
  68. package/dist/gir/field.js +12 -18
  69. package/dist/gir/field.js.map +1 -1
  70. package/dist/gir/function.d.ts +11 -42
  71. package/dist/gir/function.d.ts.map +1 -1
  72. package/dist/gir/function.js +7 -20
  73. package/dist/gir/function.js.map +1 -1
  74. package/dist/gir/gir-path.d.ts +2 -0
  75. package/dist/gir/gir-path.d.ts.map +1 -0
  76. package/dist/gir/gir-path.js +41 -0
  77. package/dist/gir/gir-path.js.map +1 -0
  78. package/dist/gir/libraries.d.ts +4 -0
  79. package/dist/gir/libraries.d.ts.map +1 -0
  80. package/dist/gir/libraries.js +62 -0
  81. package/dist/gir/libraries.js.map +1 -0
  82. package/dist/gir/library.d.ts +37 -0
  83. package/dist/gir/library.d.ts.map +1 -0
  84. package/dist/gir/library.js +218 -0
  85. package/dist/gir/library.js.map +1 -0
  86. package/dist/gir/namespace.d.ts +36 -50
  87. package/dist/gir/namespace.d.ts.map +1 -1
  88. package/dist/gir/namespace.js +46 -36
  89. package/dist/gir/namespace.js.map +1 -1
  90. package/dist/gir/parameter.d.ts +25 -69
  91. package/dist/gir/parameter.d.ts.map +1 -1
  92. package/dist/gir/parameter.js +36 -57
  93. package/dist/gir/parameter.js.map +1 -1
  94. package/dist/gir/parse.d.ts +6 -70
  95. package/dist/gir/parse.d.ts.map +1 -1
  96. package/dist/gir/parse.js +32 -80
  97. package/dist/gir/parse.js.map +1 -1
  98. package/dist/gir/primitives.d.ts +3 -34
  99. package/dist/gir/primitives.d.ts.map +1 -1
  100. package/dist/gir/primitives.js +19 -35
  101. package/dist/gir/primitives.js.map +1 -1
  102. package/dist/gir/property.d.ts +16 -25
  103. package/dist/gir/property.d.ts.map +1 -1
  104. package/dist/gir/property.js +12 -9
  105. package/dist/gir/property.js.map +1 -1
  106. package/dist/gir/record.d.ts +27 -0
  107. package/dist/gir/record.d.ts.map +1 -0
  108. package/dist/gir/record.js +25 -0
  109. package/dist/gir/record.js.map +1 -0
  110. package/dist/gir/size.d.ts +10 -57
  111. package/dist/gir/size.d.ts.map +1 -1
  112. package/dist/gir/size.js +0 -25
  113. package/dist/gir/size.js.map +1 -1
  114. package/dist/gir/type-id.d.ts +49 -0
  115. package/dist/gir/type-id.d.ts.map +1 -0
  116. package/dist/gir/type-id.js +8 -0
  117. package/dist/gir/type-id.js.map +1 -0
  118. package/dist/gir/type-ref.d.ts +3 -77
  119. package/dist/gir/type-ref.d.ts.map +1 -1
  120. package/dist/gir/type-ref.js +35 -65
  121. package/dist/gir/type-ref.js.map +1 -1
  122. package/dist/gir/type.d.ts +33 -0
  123. package/dist/gir/type.d.ts.map +1 -0
  124. package/dist/gir/type.js +2 -0
  125. package/dist/gir/type.js.map +1 -0
  126. package/dist/index.d.ts +5 -11
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +5 -11
  129. package/dist/index.js.map +1 -1
  130. package/dist/khronos/args.d.ts +30 -0
  131. package/dist/khronos/args.d.ts.map +1 -0
  132. package/dist/khronos/args.js +150 -0
  133. package/dist/khronos/args.js.map +1 -0
  134. package/dist/khronos/jsdoc.d.ts +21 -0
  135. package/dist/khronos/jsdoc.d.ts.map +1 -0
  136. package/dist/khronos/jsdoc.js +59 -0
  137. package/dist/khronos/jsdoc.js.map +1 -0
  138. package/dist/khronos/model.d.ts +37 -0
  139. package/dist/khronos/model.d.ts.map +1 -0
  140. package/dist/khronos/model.js +132 -0
  141. package/dist/khronos/model.js.map +1 -0
  142. package/dist/khronos/modules.d.ts +11 -0
  143. package/dist/khronos/modules.d.ts.map +1 -0
  144. package/dist/khronos/modules.js +58 -0
  145. package/dist/khronos/modules.js.map +1 -0
  146. package/dist/khronos/parse.d.ts +9 -0
  147. package/dist/khronos/parse.d.ts.map +1 -0
  148. package/dist/khronos/parse.js +61 -0
  149. package/dist/khronos/parse.js.map +1 -0
  150. package/dist/khronos/pipeline.d.ts +24 -0
  151. package/dist/khronos/pipeline.d.ts.map +1 -0
  152. package/dist/khronos/pipeline.js +182 -0
  153. package/dist/khronos/pipeline.js.map +1 -0
  154. package/dist/khronos/plan.d.ts +80 -0
  155. package/dist/khronos/plan.d.ts.map +1 -0
  156. package/dist/khronos/plan.js +136 -0
  157. package/dist/khronos/plan.js.map +1 -0
  158. package/dist/khronos/render.d.ts +16 -0
  159. package/dist/khronos/render.d.ts.map +1 -0
  160. package/dist/khronos/render.js +158 -0
  161. package/dist/khronos/render.js.map +1 -0
  162. package/dist/khronos/select.d.ts +15 -0
  163. package/dist/khronos/select.d.ts.map +1 -0
  164. package/dist/khronos/select.js +45 -0
  165. package/dist/khronos/select.js.map +1 -0
  166. package/dist/runner.d.ts +29 -47
  167. package/dist/runner.d.ts.map +1 -1
  168. package/dist/runner.js +78 -53
  169. package/dist/runner.js.map +1 -1
  170. package/dist/store/compile-store.d.ts +9 -0
  171. package/dist/store/compile-store.d.ts.map +1 -0
  172. package/dist/store/compile-store.js +38 -0
  173. package/dist/store/compile-store.js.map +1 -0
  174. package/dist/store/gi/async.d.ts +4 -0
  175. package/dist/store/gi/async.d.ts.map +1 -0
  176. package/dist/store/gi/async.js +41 -0
  177. package/dist/store/gi/async.js.map +1 -0
  178. package/dist/store/gi/callables.d.ts +36 -0
  179. package/dist/store/gi/callables.d.ts.map +1 -0
  180. package/dist/store/gi/callables.js +202 -0
  181. package/dist/store/gi/callables.js.map +1 -0
  182. package/dist/store/gi/callback.d.ts +4 -0
  183. package/dist/store/gi/callback.d.ts.map +1 -0
  184. package/dist/store/gi/callback.js +14 -0
  185. package/dist/store/gi/callback.js.map +1 -0
  186. package/dist/store/gi/class-struct-record.d.ts +9 -0
  187. package/dist/store/gi/class-struct-record.d.ts.map +1 -0
  188. package/dist/store/gi/class-struct-record.js +34 -0
  189. package/dist/store/gi/class-struct-record.js.map +1 -0
  190. package/dist/store/gi/class.d.ts +4 -0
  191. package/dist/store/gi/class.d.ts.map +1 -0
  192. package/dist/store/gi/class.js +169 -0
  193. package/dist/store/gi/class.js.map +1 -0
  194. package/dist/store/gi/companion.d.ts +4 -0
  195. package/dist/store/gi/companion.d.ts.map +1 -0
  196. package/dist/store/gi/companion.js +13 -0
  197. package/dist/store/gi/companion.js.map +1 -0
  198. package/dist/store/gi/constant.d.ts +5 -0
  199. package/dist/store/gi/constant.d.ts.map +1 -0
  200. package/dist/store/gi/constant.js +18 -0
  201. package/dist/store/gi/constant.js.map +1 -0
  202. package/dist/store/gi/constructor-props.d.ts +5 -0
  203. package/dist/store/gi/constructor-props.d.ts.map +1 -0
  204. package/dist/store/gi/constructor-props.js +64 -0
  205. package/dist/store/gi/constructor-props.js.map +1 -0
  206. package/dist/store/gi/enum.d.ts +5 -0
  207. package/dist/store/gi/enum.d.ts.map +1 -0
  208. package/dist/store/gi/enum.js +38 -0
  209. package/dist/store/gi/enum.js.map +1 -0
  210. package/dist/store/gi/function.d.ts +8 -0
  211. package/dist/store/gi/function.d.ts.map +1 -0
  212. package/dist/store/gi/function.js +87 -0
  213. package/dist/store/gi/function.js.map +1 -0
  214. package/dist/store/gi/gtype-binding.d.ts +10 -0
  215. package/dist/store/gi/gtype-binding.d.ts.map +1 -0
  216. package/dist/store/gi/gtype-binding.js +20 -0
  217. package/dist/store/gi/gtype-binding.js.map +1 -0
  218. package/dist/store/gi/interface.d.ts +4 -0
  219. package/dist/store/gi/interface.d.ts.map +1 -0
  220. package/dist/store/gi/interface.js +99 -0
  221. package/dist/store/gi/interface.js.map +1 -0
  222. package/dist/store/gi/item-comparators.d.ts +6 -0
  223. package/dist/store/gi/item-comparators.d.ts.map +1 -0
  224. package/dist/store/gi/item-comparators.js +76 -0
  225. package/dist/store/gi/item-comparators.js.map +1 -0
  226. package/dist/store/gi/method.d.ts +24 -0
  227. package/dist/store/gi/method.d.ts.map +1 -0
  228. package/dist/store/gi/method.js +279 -0
  229. package/dist/store/gi/method.js.map +1 -0
  230. package/dist/store/gi/param-marshal.d.ts +9 -0
  231. package/dist/store/gi/param-marshal.d.ts.map +1 -0
  232. package/dist/store/gi/param-marshal.js +37 -0
  233. package/dist/store/gi/param-marshal.js.map +1 -0
  234. package/dist/store/gi/pipeline.d.ts +4 -0
  235. package/dist/store/gi/pipeline.d.ts.map +1 -0
  236. package/dist/store/gi/pipeline.js +80 -0
  237. package/dist/store/gi/pipeline.js.map +1 -0
  238. package/dist/store/gi/properties.d.ts +5 -0
  239. package/dist/store/gi/properties.d.ts.map +1 -0
  240. package/dist/store/gi/properties.js +30 -0
  241. package/dist/store/gi/properties.js.map +1 -0
  242. package/dist/store/gi/property-accessor.d.ts +26 -0
  243. package/dist/store/gi/property-accessor.d.ts.map +1 -0
  244. package/dist/store/gi/property-accessor.js +132 -0
  245. package/dist/store/gi/property-accessor.js.map +1 -0
  246. package/dist/store/gi/record-constructor.d.ts +5 -0
  247. package/dist/store/gi/record-constructor.d.ts.map +1 -0
  248. package/dist/store/gi/record-constructor.js +65 -0
  249. package/dist/store/gi/record-constructor.js.map +1 -0
  250. package/dist/store/gi/record-field-accessor.d.ts +25 -0
  251. package/dist/store/gi/record-field-accessor.d.ts.map +1 -0
  252. package/dist/store/gi/record-field-accessor.js +288 -0
  253. package/dist/store/gi/record-field-accessor.js.map +1 -0
  254. package/dist/store/gi/record-layout.d.ts +14 -0
  255. package/dist/store/gi/record-layout.d.ts.map +1 -0
  256. package/dist/store/gi/record-layout.js +96 -0
  257. package/dist/store/gi/record-layout.js.map +1 -0
  258. package/dist/store/gi/record.d.ts +4 -0
  259. package/dist/store/gi/record.d.ts.map +1 -0
  260. package/dist/store/gi/record.js +59 -0
  261. package/dist/store/gi/record.js.map +1 -0
  262. package/dist/store/gi/registration.d.ts +16 -0
  263. package/dist/store/gi/registration.d.ts.map +1 -0
  264. package/dist/store/gi/registration.js +20 -0
  265. package/dist/store/gi/registration.js.map +1 -0
  266. package/dist/store/gi/return-wrap.d.ts +10 -0
  267. package/dist/store/gi/return-wrap.d.ts.map +1 -0
  268. package/dist/store/gi/return-wrap.js +46 -0
  269. package/dist/store/gi/return-wrap.js.map +1 -0
  270. package/dist/store/gi/runtime-override.d.ts +3 -0
  271. package/dist/store/gi/runtime-override.d.ts.map +1 -0
  272. package/dist/{writers → store/gi}/runtime-override.js +0 -15
  273. package/dist/store/gi/runtime-override.js.map +1 -0
  274. package/dist/store/gi/signal.d.ts +5 -0
  275. package/dist/store/gi/signal.d.ts.map +1 -0
  276. package/dist/store/gi/signal.js +233 -0
  277. package/dist/store/gi/signal.js.map +1 -0
  278. package/dist/store/gi/vtable.d.ts +4 -0
  279. package/dist/store/gi/vtable.d.ts.map +1 -0
  280. package/dist/store/gi/vtable.js +78 -0
  281. package/dist/store/gi/vtable.js.map +1 -0
  282. package/dist/store/gi-store.d.ts +9 -0
  283. package/dist/store/gi-store.d.ts.map +1 -0
  284. package/dist/store/gi-store.js +57 -0
  285. package/dist/store/gi-store.js.map +1 -0
  286. package/dist/store/jsx-store.d.ts +5 -0
  287. package/dist/store/jsx-store.d.ts.map +1 -0
  288. package/dist/store/jsx-store.js +23 -0
  289. package/dist/store/jsx-store.js.map +1 -0
  290. package/dist/store/react/built-ins.d.ts +9 -0
  291. package/dist/store/react/built-ins.d.ts.map +1 -0
  292. package/dist/store/react/built-ins.js +226 -0
  293. package/dist/store/react/built-ins.js.map +1 -0
  294. package/dist/store/react/element-components.d.ts +15 -0
  295. package/dist/store/react/element-components.d.ts.map +1 -0
  296. package/dist/store/react/element-components.js +92 -0
  297. package/dist/store/react/element-components.js.map +1 -0
  298. package/dist/store/react/element-prop-types.d.ts +19 -0
  299. package/dist/store/react/element-prop-types.d.ts.map +1 -0
  300. package/dist/store/react/element-prop-types.js +244 -0
  301. package/dist/store/react/element-prop-types.js.map +1 -0
  302. package/dist/store/react/element-props.d.ts +4 -0
  303. package/dist/store/react/element-props.d.ts.map +1 -0
  304. package/dist/store/react/element-props.js +178 -0
  305. package/dist/store/react/element-props.js.map +1 -0
  306. package/dist/store/react/gir-index.d.ts +25 -0
  307. package/dist/store/react/gir-index.d.ts.map +1 -0
  308. package/dist/store/react/gir-index.js +55 -0
  309. package/dist/store/react/gir-index.js.map +1 -0
  310. package/dist/store/react/intrinsic-elements.d.ts +26 -0
  311. package/dist/store/react/intrinsic-elements.d.ts.map +1 -0
  312. package/dist/store/react/intrinsic-elements.js +107 -0
  313. package/dist/store/react/intrinsic-elements.js.map +1 -0
  314. package/dist/store/react/jsx.d.ts +18 -0
  315. package/dist/store/react/jsx.d.ts.map +1 -0
  316. package/dist/store/react/jsx.js +203 -0
  317. package/dist/store/react/jsx.js.map +1 -0
  318. package/dist/store/react/metadata.d.ts +4 -0
  319. package/dist/store/react/metadata.d.ts.map +1 -0
  320. package/dist/store/react/metadata.js +174 -0
  321. package/dist/store/react/metadata.js.map +1 -0
  322. package/dist/store/react/pipeline.d.ts +14 -0
  323. package/dist/store/react/pipeline.d.ts.map +1 -0
  324. package/dist/store/react/pipeline.js +60 -0
  325. package/dist/store/react/pipeline.js.map +1 -0
  326. package/dist/store/react/props.d.ts +36 -0
  327. package/dist/store/react/props.d.ts.map +1 -0
  328. package/dist/store/react/props.js +133 -0
  329. package/dist/store/react/props.js.map +1 -0
  330. package/dist/store/store-fs.d.ts +41 -0
  331. package/dist/store/store-fs.d.ts.map +1 -0
  332. package/dist/store/store-fs.js +71 -0
  333. package/dist/store/store-fs.js.map +1 -0
  334. package/dist/writer/context.d.ts +16 -0
  335. package/dist/writer/context.d.ts.map +1 -0
  336. package/dist/writer/context.js +44 -0
  337. package/dist/writer/context.js.map +1 -0
  338. package/dist/writer/doc.d.ts +2 -0
  339. package/dist/writer/doc.d.ts.map +1 -0
  340. package/dist/writer/doc.js +12 -0
  341. package/dist/writer/doc.js.map +1 -0
  342. package/dist/writer/emit.d.ts +8 -0
  343. package/dist/writer/emit.d.ts.map +1 -0
  344. package/dist/writer/emit.js +21 -0
  345. package/dist/writer/emit.js.map +1 -0
  346. package/dist/writer/gtk-doc.d.ts +2 -0
  347. package/dist/writer/gtk-doc.d.ts.map +1 -0
  348. package/dist/writer/gtk-doc.js +67 -0
  349. package/dist/writer/gtk-doc.js.map +1 -0
  350. package/dist/writer/imports.d.ts +10 -0
  351. package/dist/writer/imports.d.ts.map +1 -0
  352. package/dist/writer/imports.js +50 -0
  353. package/dist/writer/imports.js.map +1 -0
  354. package/dist/writer/module.d.ts +15 -0
  355. package/dist/writer/module.d.ts.map +1 -0
  356. package/dist/writer/module.js +46 -0
  357. package/dist/writer/module.js.map +1 -0
  358. package/overrides/cairo/context.ts.ejs +1269 -0
  359. package/overrides/cairo/font-face.ts.ejs +151 -0
  360. package/overrides/cairo/font-options.ts.ejs +199 -0
  361. package/overrides/cairo/image-surface.ts.ejs +132 -0
  362. package/overrides/cairo/index.ts.ejs +22 -0
  363. package/overrides/cairo/matrix.ts.ejs +171 -0
  364. package/overrides/cairo/pattern.ts.ejs +476 -0
  365. package/overrides/cairo/recording-surface.ts.ejs +102 -0
  366. package/overrides/cairo/region.ts.ejs +237 -0
  367. package/overrides/cairo/scaled-font.ts.ejs +330 -0
  368. package/overrides/cairo/surface.ts.ejs +296 -0
  369. package/overrides/gdk/index.ts.ejs +2 -0
  370. package/overrides/gdk/rgba.ts.ejs +11 -0
  371. package/overrides/gobject/index.ts.ejs +29 -0
  372. package/overrides/gobject/object.ts.ejs +51 -0
  373. package/overrides/gobject/value.ts.ejs +17 -0
  374. package/overrides/graphene/index.ts.ejs +2 -0
  375. package/overrides/graphene/structs.ts.ejs +37 -0
  376. package/overrides/gtk/constants.ts.ejs +3 -0
  377. package/overrides/gtk/index.ts.ejs +2 -0
  378. package/package.json +15 -15
  379. package/src/analysis/descriptor-render.ts +407 -0
  380. package/src/analysis/descriptor.ts +263 -0
  381. package/src/analysis/inheritance.ts +242 -0
  382. package/src/analysis/param-structure.ts +127 -0
  383. package/src/analysis/ts-type.ts +88 -0
  384. package/src/compile.ts +152 -0
  385. package/src/docs/api-reference.ts +361 -0
  386. package/src/docs/element-page.ts +290 -0
  387. package/src/docs/pipeline.ts +182 -0
  388. package/src/docs/render.ts +191 -0
  389. package/src/docs/symbol-page.ts +444 -0
  390. package/src/fingerprint.ts +40 -29
  391. package/src/gir/ancestry.ts +41 -0
  392. package/src/gir/callback.ts +25 -22
  393. package/src/gir/class.ts +31 -57
  394. package/src/gir/enum.ts +20 -38
  395. package/src/gir/field.ts +21 -36
  396. package/src/gir/function.ts +17 -56
  397. package/src/gir/gir-path.ts +49 -0
  398. package/src/gir/libraries.ts +77 -0
  399. package/src/gir/library.ts +248 -0
  400. package/src/gir/namespace.ts +85 -80
  401. package/src/gir/parameter.ts +64 -93
  402. package/src/gir/parse.ts +43 -95
  403. package/src/gir/primitives.ts +23 -45
  404. package/src/gir/property.ts +27 -29
  405. package/src/gir/record.ts +53 -0
  406. package/src/gir/size.ts +9 -56
  407. package/src/gir/type-id.ts +49 -0
  408. package/src/gir/type-ref.ts +35 -140
  409. package/src/gir/type.ts +16 -0
  410. package/src/index.ts +20 -15
  411. package/src/khronos/args.ts +202 -0
  412. package/src/khronos/jsdoc.ts +76 -0
  413. package/src/khronos/model.ts +166 -0
  414. package/src/khronos/modules.ts +75 -0
  415. package/src/khronos/parse.ts +66 -0
  416. package/src/khronos/pipeline.ts +234 -0
  417. package/src/khronos/plan.ts +191 -0
  418. package/src/khronos/registry/LICENSE +202 -0
  419. package/src/khronos/registry/gl.xml +47748 -0
  420. package/src/khronos/render.ts +193 -0
  421. package/src/khronos/select.ts +67 -0
  422. package/src/runner.ts +112 -75
  423. package/src/store/compile-store.ts +49 -0
  424. package/src/store/gi/async.ts +42 -0
  425. package/src/store/gi/callables.ts +309 -0
  426. package/src/store/gi/callback.ts +15 -0
  427. package/src/store/gi/class-struct-record.ts +40 -0
  428. package/src/store/gi/class.ts +212 -0
  429. package/src/store/gi/companion.ts +13 -0
  430. package/src/store/gi/constant.ts +24 -0
  431. package/src/store/gi/constructor-props.ts +82 -0
  432. package/src/store/gi/enum.ts +49 -0
  433. package/src/store/gi/function.ts +107 -0
  434. package/src/store/gi/gtype-binding.ts +33 -0
  435. package/src/store/gi/interface.ts +157 -0
  436. package/src/store/gi/item-comparators.ts +90 -0
  437. package/src/store/gi/method.ts +417 -0
  438. package/src/store/gi/param-marshal.ts +48 -0
  439. package/src/store/gi/pipeline.ts +85 -0
  440. package/src/store/gi/properties.ts +39 -0
  441. package/src/store/gi/property-accessor.ts +194 -0
  442. package/src/store/gi/record-constructor.ts +87 -0
  443. package/src/store/gi/record-field-accessor.ts +394 -0
  444. package/src/store/gi/record-layout.ts +134 -0
  445. package/src/store/gi/record.ts +66 -0
  446. package/src/store/gi/registration.ts +38 -0
  447. package/src/store/gi/return-wrap.ts +52 -0
  448. package/src/store/gi/runtime-override.ts +36 -0
  449. package/src/store/gi/signal.ts +310 -0
  450. package/src/store/gi/vtable.ts +99 -0
  451. package/src/store/gi-store.ts +79 -0
  452. package/src/store/jsx-store.ts +27 -0
  453. package/src/store/react/built-ins.ts +260 -0
  454. package/src/store/react/element-components.ts +138 -0
  455. package/src/store/react/element-prop-types.ts +280 -0
  456. package/src/store/react/element-props.ts +204 -0
  457. package/src/store/react/gir-index.ts +85 -0
  458. package/src/store/react/intrinsic-elements.ts +161 -0
  459. package/src/store/react/jsx.ts +294 -0
  460. package/src/store/react/metadata.ts +197 -0
  461. package/src/store/react/pipeline.ts +90 -0
  462. package/src/store/react/props.ts +197 -0
  463. package/src/store/store-fs.ts +112 -0
  464. package/src/writer/context.ts +48 -0
  465. package/src/writer/doc.ts +11 -0
  466. package/src/writer/emit.ts +26 -0
  467. package/src/writer/gtk-doc.ts +74 -0
  468. package/src/writer/imports.ts +59 -0
  469. package/src/writer/module.ts +45 -0
  470. package/LICENSE +0 -373
  471. package/dist/dsl/context.d.ts +0 -104
  472. package/dist/dsl/context.d.ts.map +0 -1
  473. package/dist/dsl/context.js +0 -140
  474. package/dist/dsl/context.js.map +0 -1
  475. package/dist/dsl/emit.d.ts +0 -28
  476. package/dist/dsl/emit.d.ts.map +0 -1
  477. package/dist/dsl/emit.js +0 -41
  478. package/dist/dsl/emit.js.map +0 -1
  479. package/dist/dsl/identifier.d.ts +0 -28
  480. package/dist/dsl/identifier.d.ts.map +0 -1
  481. package/dist/dsl/identifier.js +0 -45
  482. package/dist/dsl/identifier.js.map +0 -1
  483. package/dist/dsl/imports.d.ts +0 -58
  484. package/dist/dsl/imports.d.ts.map +0 -1
  485. package/dist/dsl/imports.js +0 -107
  486. package/dist/dsl/imports.js.map +0 -1
  487. package/dist/dsl/module.d.ts +0 -53
  488. package/dist/dsl/module.d.ts.map +0 -1
  489. package/dist/dsl/module.js +0 -76
  490. package/dist/dsl/module.js.map +0 -1
  491. package/dist/ffi/pipeline.d.ts +0 -19
  492. package/dist/ffi/pipeline.d.ts.map +0 -1
  493. package/dist/ffi/pipeline.js +0 -107
  494. package/dist/ffi/pipeline.js.map +0 -1
  495. package/dist/gi-store.d.ts +0 -34
  496. package/dist/gi-store.d.ts.map +0 -1
  497. package/dist/gi-store.js +0 -154
  498. package/dist/gi-store.js.map +0 -1
  499. package/dist/gir/boxed.d.ts +0 -66
  500. package/dist/gir/boxed.d.ts.map +0 -1
  501. package/dist/gir/boxed.js +0 -49
  502. package/dist/gir/boxed.js.map +0 -1
  503. package/dist/gir/qualified-name.d.ts +0 -37
  504. package/dist/gir/qualified-name.d.ts.map +0 -1
  505. package/dist/gir/qualified-name.js +0 -39
  506. package/dist/gir/qualified-name.js.map +0 -1
  507. package/dist/gir/qualify.d.ts +0 -32
  508. package/dist/gir/qualify.d.ts.map +0 -1
  509. package/dist/gir/qualify.js +0 -60
  510. package/dist/gir/qualify.js.map +0 -1
  511. package/dist/gir/repository.d.ts +0 -82
  512. package/dist/gir/repository.d.ts.map +0 -1
  513. package/dist/gir/repository.js +0 -122
  514. package/dist/gir/repository.js.map +0 -1
  515. package/dist/gir/signal.d.ts +0 -22
  516. package/dist/gir/signal.d.ts.map +0 -1
  517. package/dist/gir/signal.js +0 -20
  518. package/dist/gir/signal.js.map +0 -1
  519. package/dist/jsx-store.d.ts +0 -22
  520. package/dist/jsx-store.d.ts.map +0 -1
  521. package/dist/jsx-store.js +0 -40
  522. package/dist/jsx-store.js.map +0 -1
  523. package/dist/react/compounds-meta.d.ts +0 -18
  524. package/dist/react/compounds-meta.d.ts.map +0 -1
  525. package/dist/react/compounds-meta.js +0 -93
  526. package/dist/react/compounds-meta.js.map +0 -1
  527. package/dist/react/compounds.d.ts +0 -27
  528. package/dist/react/compounds.d.ts.map +0 -1
  529. package/dist/react/compounds.js +0 -164
  530. package/dist/react/compounds.js.map +0 -1
  531. package/dist/react/internal.d.ts +0 -14
  532. package/dist/react/internal.d.ts.map +0 -1
  533. package/dist/react/internal.js +0 -79
  534. package/dist/react/internal.js.map +0 -1
  535. package/dist/react/jsx.d.ts +0 -22
  536. package/dist/react/jsx.d.ts.map +0 -1
  537. package/dist/react/jsx.js +0 -134
  538. package/dist/react/jsx.js.map +0 -1
  539. package/dist/react/pipeline.d.ts +0 -13
  540. package/dist/react/pipeline.d.ts.map +0 -1
  541. package/dist/react/pipeline.js +0 -25
  542. package/dist/react/pipeline.js.map +0 -1
  543. package/dist/react/props.d.ts +0 -38
  544. package/dist/react/props.d.ts.map +0 -1
  545. package/dist/react/props.js +0 -231
  546. package/dist/react/props.js.map +0 -1
  547. package/dist/react/slot-props.d.ts +0 -10
  548. package/dist/react/slot-props.d.ts.map +0 -1
  549. package/dist/react/slot-props.js +0 -56
  550. package/dist/react/slot-props.js.map +0 -1
  551. package/dist/react/widgets.d.ts +0 -83
  552. package/dist/react/widgets.d.ts.map +0 -1
  553. package/dist/react/widgets.js +0 -152
  554. package/dist/react/widgets.js.map +0 -1
  555. package/dist/store-fs.d.ts +0 -109
  556. package/dist/store-fs.d.ts.map +0 -1
  557. package/dist/store-fs.js +0 -98
  558. package/dist/store-fs.js.map +0 -1
  559. package/dist/transpile.d.ts +0 -32
  560. package/dist/transpile.d.ts.map +0 -1
  561. package/dist/transpile.js +0 -63
  562. package/dist/transpile.js.map +0 -1
  563. package/dist/typecheck-store.d.ts +0 -41
  564. package/dist/typecheck-store.d.ts.map +0 -1
  565. package/dist/typecheck-store.js +0 -102
  566. package/dist/typecheck-store.js.map +0 -1
  567. package/dist/writers/alias.d.ts +0 -13
  568. package/dist/writers/alias.d.ts.map +0 -1
  569. package/dist/writers/alias.js +0 -17
  570. package/dist/writers/alias.js.map +0 -1
  571. package/dist/writers/async.d.ts +0 -22
  572. package/dist/writers/async.d.ts.map +0 -1
  573. package/dist/writers/async.js +0 -48
  574. package/dist/writers/async.js.map +0 -1
  575. package/dist/writers/boxed-constructor.d.ts +0 -26
  576. package/dist/writers/boxed-constructor.d.ts.map +0 -1
  577. package/dist/writers/boxed-constructor.js +0 -85
  578. package/dist/writers/boxed-constructor.js.map +0 -1
  579. package/dist/writers/boxed-field-accessor.d.ts +0 -18
  580. package/dist/writers/boxed-field-accessor.d.ts.map +0 -1
  581. package/dist/writers/boxed-field-accessor.js +0 -260
  582. package/dist/writers/boxed-field-accessor.js.map +0 -1
  583. package/dist/writers/boxed-layout.d.ts +0 -27
  584. package/dist/writers/boxed-layout.d.ts.map +0 -1
  585. package/dist/writers/boxed-layout.js +0 -128
  586. package/dist/writers/boxed-layout.js.map +0 -1
  587. package/dist/writers/boxed.d.ts +0 -20
  588. package/dist/writers/boxed.d.ts.map +0 -1
  589. package/dist/writers/boxed.js +0 -71
  590. package/dist/writers/boxed.js.map +0 -1
  591. package/dist/writers/callables.d.ts +0 -124
  592. package/dist/writers/callables.d.ts.map +0 -1
  593. package/dist/writers/callables.js +0 -283
  594. package/dist/writers/callables.js.map +0 -1
  595. package/dist/writers/callback.d.ts +0 -16
  596. package/dist/writers/callback.d.ts.map +0 -1
  597. package/dist/writers/callback.js +0 -38
  598. package/dist/writers/callback.js.map +0 -1
  599. package/dist/writers/class-struct-record.d.ts +0 -31
  600. package/dist/writers/class-struct-record.d.ts.map +0 -1
  601. package/dist/writers/class-struct-record.js +0 -67
  602. package/dist/writers/class-struct-record.js.map +0 -1
  603. package/dist/writers/class-struct.d.ts +0 -22
  604. package/dist/writers/class-struct.d.ts.map +0 -1
  605. package/dist/writers/class-struct.js +0 -85
  606. package/dist/writers/class-struct.js.map +0 -1
  607. package/dist/writers/class.d.ts +0 -16
  608. package/dist/writers/class.d.ts.map +0 -1
  609. package/dist/writers/class.js +0 -307
  610. package/dist/writers/class.js.map +0 -1
  611. package/dist/writers/constant.d.ts +0 -15
  612. package/dist/writers/constant.d.ts.map +0 -1
  613. package/dist/writers/constant.js +0 -23
  614. package/dist/writers/constant.js.map +0 -1
  615. package/dist/writers/constants.d.ts +0 -15
  616. package/dist/writers/constants.d.ts.map +0 -1
  617. package/dist/writers/constants.js +0 -23
  618. package/dist/writers/constants.js.map +0 -1
  619. package/dist/writers/constructor-props.d.ts +0 -32
  620. package/dist/writers/constructor-props.d.ts.map +0 -1
  621. package/dist/writers/constructor-props.js +0 -110
  622. package/dist/writers/constructor-props.js.map +0 -1
  623. package/dist/writers/enum.d.ts +0 -21
  624. package/dist/writers/enum.d.ts.map +0 -1
  625. package/dist/writers/enum.js +0 -48
  626. package/dist/writers/enum.js.map +0 -1
  627. package/dist/writers/function.d.ts +0 -40
  628. package/dist/writers/function.d.ts.map +0 -1
  629. package/dist/writers/function.js +0 -127
  630. package/dist/writers/function.js.map +0 -1
  631. package/dist/writers/gtype-binding.d.ts +0 -19
  632. package/dist/writers/gtype-binding.d.ts.map +0 -1
  633. package/dist/writers/gtype-binding.js +0 -40
  634. package/dist/writers/gtype-binding.js.map +0 -1
  635. package/dist/writers/inheritance.d.ts +0 -48
  636. package/dist/writers/inheritance.d.ts.map +0 -1
  637. package/dist/writers/inheritance.js +0 -90
  638. package/dist/writers/inheritance.js.map +0 -1
  639. package/dist/writers/interface.d.ts +0 -16
  640. package/dist/writers/interface.d.ts.map +0 -1
  641. package/dist/writers/interface.js +0 -155
  642. package/dist/writers/interface.js.map +0 -1
  643. package/dist/writers/method.d.ts +0 -150
  644. package/dist/writers/method.d.ts.map +0 -1
  645. package/dist/writers/method.js +0 -510
  646. package/dist/writers/method.js.map +0 -1
  647. package/dist/writers/param-classify.d.ts +0 -93
  648. package/dist/writers/param-classify.d.ts.map +0 -1
  649. package/dist/writers/param-classify.js +0 -163
  650. package/dist/writers/param-classify.js.map +0 -1
  651. package/dist/writers/property-accessor.d.ts +0 -19
  652. package/dist/writers/property-accessor.d.ts.map +0 -1
  653. package/dist/writers/property-accessor.js +0 -117
  654. package/dist/writers/property-accessor.js.map +0 -1
  655. package/dist/writers/registration.d.ts +0 -27
  656. package/dist/writers/registration.d.ts.map +0 -1
  657. package/dist/writers/registration.js +0 -30
  658. package/dist/writers/registration.js.map +0 -1
  659. package/dist/writers/return-wrap.d.ts +0 -39
  660. package/dist/writers/return-wrap.d.ts.map +0 -1
  661. package/dist/writers/return-wrap.js +0 -152
  662. package/dist/writers/return-wrap.js.map +0 -1
  663. package/dist/writers/runtime-override.d.ts +0 -18
  664. package/dist/writers/runtime-override.d.ts.map +0 -1
  665. package/dist/writers/runtime-override.js.map +0 -1
  666. package/dist/writers/signal.d.ts +0 -21
  667. package/dist/writers/signal.d.ts.map +0 -1
  668. package/dist/writers/signal.js +0 -260
  669. package/dist/writers/signal.js.map +0 -1
  670. package/dist/writers/ts-type.d.ts +0 -50
  671. package/dist/writers/ts-type.d.ts.map +0 -1
  672. package/dist/writers/ts-type.js +0 -75
  673. package/dist/writers/ts-type.js.map +0 -1
  674. package/dist/writers/types-ts.d.ts +0 -27
  675. package/dist/writers/types-ts.d.ts.map +0 -1
  676. package/dist/writers/types-ts.js +0 -97
  677. package/dist/writers/types-ts.js.map +0 -1
  678. package/dist/writers/value.d.ts +0 -89
  679. package/dist/writers/value.d.ts.map +0 -1
  680. package/dist/writers/value.js +0 -402
  681. package/dist/writers/value.js.map +0 -1
  682. package/src/dsl/context.ts +0 -146
  683. package/src/dsl/emit.ts +0 -42
  684. package/src/dsl/identifier.ts +0 -52
  685. package/src/dsl/imports.ts +0 -109
  686. package/src/dsl/module.ts +0 -75
  687. package/src/ffi/pipeline.ts +0 -113
  688. package/src/gi-store.ts +0 -199
  689. package/src/gir/boxed.ts +0 -94
  690. package/src/gir/qualified-name.ts +0 -55
  691. package/src/gir/qualify.ts +0 -64
  692. package/src/gir/repository.ts +0 -149
  693. package/src/gir/signal.ts +0 -36
  694. package/src/jsx-store.ts +0 -53
  695. package/src/react/compounds-meta.ts +0 -99
  696. package/src/react/compounds.ts +0 -204
  697. package/src/react/internal.ts +0 -91
  698. package/src/react/jsx.ts +0 -155
  699. package/src/react/pipeline.ts +0 -29
  700. package/src/react/props.ts +0 -307
  701. package/src/react/slot-props.ts +0 -57
  702. package/src/react/widgets.ts +0 -185
  703. package/src/store-fs.ts +0 -157
  704. package/src/transpile.ts +0 -80
  705. package/src/typecheck-store.ts +0 -136
  706. package/src/writers/alias.ts +0 -19
  707. package/src/writers/async.ts +0 -44
  708. package/src/writers/boxed-constructor.ts +0 -105
  709. package/src/writers/boxed-field-accessor.ts +0 -306
  710. package/src/writers/boxed-layout.ts +0 -166
  711. package/src/writers/boxed.ts +0 -77
  712. package/src/writers/callables.ts +0 -339
  713. package/src/writers/callback.ts +0 -40
  714. package/src/writers/class-struct-record.ts +0 -75
  715. package/src/writers/class-struct.ts +0 -96
  716. package/src/writers/class.ts +0 -384
  717. package/src/writers/constant.ts +0 -29
  718. package/src/writers/constructor-props.ts +0 -130
  719. package/src/writers/enum.ts +0 -53
  720. package/src/writers/function.ts +0 -136
  721. package/src/writers/gtype-binding.ts +0 -48
  722. package/src/writers/inheritance.ts +0 -104
  723. package/src/writers/interface.ts +0 -168
  724. package/src/writers/method.ts +0 -678
  725. package/src/writers/param-classify.ts +0 -178
  726. package/src/writers/property-accessor.ts +0 -139
  727. package/src/writers/registration.ts +0 -42
  728. package/src/writers/return-wrap.ts +0 -180
  729. package/src/writers/runtime-override.ts +0 -59
  730. package/src/writers/signal.ts +0 -318
  731. package/src/writers/ts-type.ts +0 -115
  732. package/src/writers/value.ts +0 -485
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-reference.js","sourceRoot":"","sources":["../../src/docs/api-reference.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ElementProp } from \"@gtkx/config\";\nimport { sortStrings, sortStringsBy, toPascalCase } from \"@gtkx/utils\";\nimport { Library } from \"../gir/library.js\";\nimport { type GirNamespace, namespaceDirectory } from \"../gir/namespace.js\";\nimport { dedupeCallables, isEmittableCallable } from \"../store/gi/callables.js\";\nimport { isClassStructRecord } from \"../store/gi/class-struct-record.js\";\nimport { namespaceFunctionExportName } from \"../store/gi/function.js\";\nimport { collectIntrinsicElementClasses, type GlibNamedClass } from \"../store/react/intrinsic-elements.js\";\nimport { createElementPageContext, type ElementPageContext, renderElementPage } from \"./element-page.js\";\nimport { docsSignatureContext, firstSentence, namespaceOrder } from \"./render.js\";\nimport { type GiSymbolEntry, renderSymbolPage, type SymbolPageOptions } from \"./symbol-page.js\";\n\nexport type ApiReferenceOptions = {\n libraries: string[];\n girPath: string[];\n elementProps?: Record<string, ElementProp[]>;\n};\n\nexport type ApiSymbolKind = GiSymbolEntry[\"kind\"] | \"element\";\n\nexport const API_SYMBOL_KINDS: ApiSymbolKind[] = [\n \"element\",\n \"class\",\n \"interface\",\n \"record\",\n \"enum\",\n \"callback\",\n \"alias\",\n \"function\",\n \"constant\",\n];\n\nexport type ApiSymbol = {\n namespace: string;\n name: string;\n kind: ApiSymbolKind;\n summary: string;\n};\n\nexport type ApiNamespaceSummary = {\n name: string;\n importPath: string;\n symbols: number;\n elements: number;\n};\n\nexport type ApiLookupResult =\n | { outcome: \"page\"; symbol: ApiSymbol; markdown: string }\n | { outcome: \"ambiguous\"; candidates: ApiSymbol[] }\n | { outcome: \"notFound\" };\n\nexport type ApiSearchOptions = {\n query: string;\n namespace?: string;\n kinds?: ApiSymbolKind[];\n limit?: number;\n};\n\ntype ElementEntry = {\n kind: \"element\";\n namespace: GirNamespace;\n name: string;\n doc: string | undefined;\n element: GlibNamedClass;\n};\n\ntype SymbolEntry = GiSymbolEntry | ElementEntry;\n\nconst KIND_SECTION_TITLES: Record<ApiSymbolKind, string> = {\n element: \"JSX elements\",\n class: \"Classes\",\n interface: \"Interfaces\",\n record: \"Records\",\n enum: \"Enums\",\n callback: \"Callbacks\",\n alias: \"Aliases\",\n function: \"Functions\",\n constant: \"Constants\",\n};\n\nconst DEFAULT_SEARCH_LIMIT = 20;\n\nconst compareNames = (a: string, b: string): number => (a < b ? -1 : a > b ? 1 : 0);\n\nclass ApiReference {\n private library: Library;\n private libraries: string[];\n private elementContext: ElementPageContext;\n private entries: SymbolEntry[] = [];\n private byQualified = new Map<string, SymbolEntry[]>();\n private byName = new Map<string, SymbolEntry[]>();\n private byNamespace = new Map<string, SymbolEntry[]>();\n private elementsByClass = new Map<string, string>();\n\n constructor(options: ApiReferenceOptions) {\n this.libraries = options.libraries;\n this.library = Library.load(options.libraries, options.girPath);\n this.elementContext = createElementPageContext(this.library, options.elementProps ?? {}, () => undefined);\n this.buildIndex();\n }\n\n get girFiles(): string[] {\n return this.library.girFiles;\n }\n\n private add(entry: SymbolEntry): void {\n this.entries.push(entry);\n const push = (map: Map<string, SymbolEntry[]>, key: string): void => {\n const list = map.get(key) ?? [];\n list.push(entry);\n map.set(key, list);\n };\n push(this.byQualified, `${entry.namespace.name}.${entry.name}`.toLowerCase());\n push(this.byName, entry.name.toLowerCase());\n push(this.byNamespace, entry.namespace.name);\n }\n\n private buildIndex(): void {\n for (const namespace of this.library.namespaces.values()) {\n this.indexNamespace(namespace);\n }\n for (const element of collectIntrinsicElementClasses(this.library)) {\n this.add({\n kind: \"element\",\n namespace: element.namespace,\n name: element.glibName,\n doc: element.klass.doc,\n element,\n });\n this.elementsByClass.set(`${element.namespace.name}.${element.klass.name}`, element.glibName);\n }\n }\n\n private indexNamespace(namespace: GirNamespace): void {\n const entries = [\n ...classEntries(namespace),\n ...recordEntries(this.library, namespace),\n ...valueEntries(namespace),\n ];\n for (const entry of entries) {\n this.add(entry);\n }\n this.indexFunctions(namespace);\n }\n\n private indexFunctions(namespace: GirNamespace): void {\n if (namespace.sharedLibrary === undefined) return;\n const docsContext = docsSignatureContext(namespace, this.library);\n for (const fn of dedupeCallables(namespace.functions)) {\n if (!isEmittableCallable(docsContext, fn)) continue;\n const cIdentifier = fn.cIdentifier;\n if (cIdentifier === undefined) continue;\n const name = namespaceFunctionExportName(cIdentifier, fn.name, namespace.cSymbolPrefixes);\n this.add({ kind: \"function\", namespace, name, doc: fn.doc, fn });\n }\n }\n\n private toApiSymbol(entry: SymbolEntry): ApiSymbol {\n return {\n namespace: entry.namespace.name,\n name: entry.name,\n kind: entry.kind,\n summary: firstSentence(entry.doc),\n };\n }\n\n private symbolPageOptions(): SymbolPageOptions {\n return {\n library: this.library,\n elementNameFor: (namespaceName, className) => this.elementsByClass.get(`${namespaceName}.${className}`),\n };\n }\n\n private renderPage(entry: SymbolEntry): string {\n if (entry.kind === \"element\") return renderElementPage(entry.element, this.elementContext);\n return renderSymbolPage(entry, this.symbolPageOptions());\n }\n\n private findNamespace(name: string): GirNamespace | undefined {\n const lower = name.toLowerCase();\n for (const namespace of this.library.namespaces.values()) {\n if (namespace.name.toLowerCase() === lower) return namespace;\n }\n return undefined;\n }\n\n lookup(query: string, kind?: ApiSymbolKind): ApiLookupResult {\n const trimmed = query.trim();\n if (trimmed.length === 0) return { outcome: \"notFound\" };\n const qualified = trimmed.includes(\".\");\n const map = qualified ? this.byQualified : this.byName;\n let candidates = map.get(trimmed.toLowerCase()) ?? [];\n if (kind !== undefined) candidates = candidates.filter((entry) => entry.kind === kind);\n if (candidates.length > 1) {\n const exact = candidates.filter((entry) =>\n qualified ? `${entry.namespace.name}.${entry.name}` === trimmed : entry.name === trimmed,\n );\n if (exact.length > 0) candidates = exact;\n }\n const entry = candidates[0];\n if (entry === undefined) return { outcome: \"notFound\" };\n if (candidates.length > 1) {\n return { outcome: \"ambiguous\", candidates: candidates.map((candidate) => this.toApiSymbol(candidate)) };\n }\n return { outcome: \"page\", symbol: this.toApiSymbol(entry), markdown: this.renderPage(entry) };\n }\n\n search(options: ApiSearchOptions): ApiSymbol[] {\n const query = options.query.trim().toLowerCase();\n if (query.length === 0) return [];\n const limit = Math.max(1, Math.floor(options.limit ?? DEFAULT_SEARCH_LIMIT));\n const namespaceFilter = options.namespace?.toLowerCase();\n const scored: { score: number; entry: SymbolEntry }[] = [];\n for (const entry of this.entries) {\n if (namespaceFilter !== undefined && entry.namespace.name.toLowerCase() !== namespaceFilter) continue;\n if (options.kinds !== undefined && !options.kinds.includes(entry.kind)) continue;\n const score = searchScore(entry, query);\n if (score === 0) continue;\n scored.push({ score, entry });\n }\n scored.sort(\n (a, b) =>\n b.score - a.score ||\n a.entry.name.length - b.entry.name.length ||\n compareNames(a.entry.name, b.entry.name) ||\n compareNames(namespaceOrder(a.entry.namespace.name), namespaceOrder(b.entry.namespace.name)) ||\n compareNames(a.entry.kind, b.entry.kind),\n );\n return scored.slice(0, limit).map((item) => this.toApiSymbol(item.entry));\n }\n\n namespaces(): ApiNamespaceSummary[] {\n const summaries = [...this.byNamespace.entries()].map(([name, entries]) => ({\n name,\n importPath: `@gtkx/gi/${namespaceDirectory({ name })}`,\n symbols: entries.filter((entry) => entry.kind !== \"element\").length,\n elements: entries.filter((entry) => entry.kind === \"element\").length,\n }));\n return sortStringsBy(summaries, (summary) => namespaceOrder(summary.name));\n }\n\n symbolNames(namespaceName: string): string[] {\n const namespace = this.findNamespace(namespaceName);\n if (namespace === undefined) return [];\n const entries = this.byNamespace.get(namespace.name) ?? [];\n return sortStrings(entries.map((entry) => entry.name));\n }\n\n overview(): string {\n const rows = this.namespaces().map(\n (summary) => `| ${summary.name} | \\`${summary.importPath}\\` | ${summary.symbols} | ${summary.elements} |`,\n );\n const librariesList = this.libraries.map((library) => `\\`${library}\\``).join(\", \");\n return [\n \"# API Reference\",\n \"\",\n `Generated bindings for ${librariesList} and the namespaces they pull in. Classes, interfaces, records, enums, callbacks, aliases, functions, and constants are imported from \\`@gtkx/gi/<namespace>\\`; JSX elements are imported from \\`@gtkx/jsx/<namespace>\\`.`,\n \"\",\n \"Every symbol has a reference page addressed by its qualified name (for example `Gtk.Button`, `Gtk.Orientation`, `GLib.idleAdd`) and every JSX element by its element name (for example `GtkButton`).\",\n \"\",\n \"| Namespace | Import | Symbols | JSX elements |\",\n \"| --- | --- | --- | --- |\",\n ...rows,\n \"\",\n ].join(\"\\n\");\n }\n\n namespaceOverview(name: string): string | undefined {\n const namespace = this.findNamespace(name);\n if (namespace === undefined) return undefined;\n const entries = this.byNamespace.get(namespace.name) ?? [];\n const directory = namespaceDirectory(namespace);\n const lines = [\n `# ${namespace.name}`,\n \"\",\n `\\`\\`\\`ts\\nimport * as ${namespace.name} from \"@gtkx/gi/${directory}\";\\n\\`\\`\\``,\n ];\n for (const kind of API_SYMBOL_KINDS) {\n const names = entries.filter((entry) => entry.kind === kind).map((entry) => entry.name);\n if (names.length === 0) continue;\n lines.push(\n \"\",\n `## ${KIND_SECTION_TITLES[kind]} (${names.length})`,\n \"\",\n sortStrings(names)\n .map((symbolName) => `\\`${symbolName}\\``)\n .join(\", \"),\n );\n }\n lines.push(\"\");\n return lines.join(\"\\n\");\n }\n}\n\nexport type { ApiReference };\n\nexport const loadApiReference = (options: ApiReferenceOptions): ApiReference => new ApiReference(options);\n\nconst classEntries = (namespace: GirNamespace): GiSymbolEntry[] => {\n const entries: GiSymbolEntry[] = [];\n for (const klass of [...namespace.classes, ...namespace.interfaces]) {\n if (!klass.introspectable || klass.name.length === 0) continue;\n const kind = klass.isInterface ? \"interface\" : \"class\";\n entries.push({ kind, namespace, name: toPascalCase(klass.name), doc: klass.doc, klass });\n }\n return entries;\n};\n\nconst recordEntries = (library: Library, namespace: GirNamespace): GiSymbolEntry[] => {\n const entries: GiSymbolEntry[] = [];\n for (const record of namespace.records) {\n if (!record.introspectable || record.isVtable || record.name.length === 0) continue;\n if (isClassStructRecord(library, namespace.name, record)) continue;\n entries.push({ kind: \"record\", namespace, name: record.name, doc: record.doc, record });\n }\n return entries;\n};\n\nconst valueEntries = (namespace: GirNamespace): GiSymbolEntry[] => [\n ...namespace.enums\n .filter((enumeration) => enumeration.introspectable)\n .map<GiSymbolEntry>((enumeration) => ({\n kind: \"enum\",\n namespace,\n name: enumeration.name,\n doc: enumeration.doc,\n enumeration,\n })),\n ...namespace.callbacks\n .filter((callback) => callback.introspectable)\n .map<GiSymbolEntry>((callback) => ({\n kind: \"callback\",\n namespace,\n name: callback.name,\n doc: callback.doc,\n callback,\n })),\n ...namespace.aliases.map<GiSymbolEntry>((alias) => ({\n kind: \"alias\",\n namespace,\n name: alias.name,\n doc: alias.doc,\n alias,\n })),\n ...namespace.constants.map<GiSymbolEntry>((constant) => ({\n kind: \"constant\",\n namespace,\n name: constant.name,\n doc: constant.doc,\n constant,\n })),\n];\n\nconst searchScore = (entry: SymbolEntry, query: string): number => {\n const name = entry.name.toLowerCase();\n const qualified = `${entry.namespace.name.toLowerCase()}.${name}`;\n if (name === query || qualified === query) return 3;\n if (name.startsWith(query)) return 2;\n if (name.includes(query) || qualified.includes(query)) return 1;\n return 0;\n};\n"]}
@@ -0,0 +1,15 @@
1
+ import type { ElementProp } from "@gtkx/config";
2
+ import type { Library } from "../gir/library.js";
3
+ import { type ElementPropTypegen } from "../store/react/element-prop-types.js";
4
+ import { type GirIndex } from "../store/react/gir-index.js";
5
+ import { type GlibNamedClass } from "../store/react/intrinsic-elements.js";
6
+ export type ElementPageContext = {
7
+ library: Library;
8
+ girIndex: GirIndex;
9
+ typegen: ElementPropTypegen;
10
+ elementProps: Record<string, ElementProp[]>;
11
+ linkFor: (glibName: string) => string | undefined;
12
+ };
13
+ export declare const createElementPageContext: (library: Library, elementProps: Record<string, ElementProp[]>, linkFor: (glibName: string) => string | undefined) => ElementPageContext;
14
+ export declare const renderElementPage: (entry: GlibNamedClass, context: ElementPageContext) => string;
15
+ //# sourceMappingURL=element-page.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-page.d.ts","sourceRoot":"","sources":["../../src/docs/element-page.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,WAAW,EAAE,MAAM,cAAc,CAAC;AAI/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAA4B,KAAK,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAEzG,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EACH,KAAK,cAAc,EAKtB,MAAM,sCAAsC,CAAC;AAe9C,MAAM,MAAM,kBAAkB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5C,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACrD,CAAC;AAEF,eAAO,MAAM,wBAAwB,YACxB,OAAO,gBACF,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,WAClC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,KAClD,kBAUF,CAAC;AA8NF,eAAO,MAAM,iBAAiB,UAAW,cAAc,WAAW,kBAAkB,KAAG,MAatF,CAAC"}
@@ -0,0 +1,221 @@
1
+ import { sortStringsBy, toCamelIdentifier, upperFirst } from "@gtkx/utils";
2
+ import { ancestorChain } from "../gir/ancestry.js";
3
+ import { namespaceDirectory } from "../gir/namespace.js";
4
+ import { isConstructableProperty } from "../gir/property.js";
5
+ import { createElementPropTypegen } from "../store/react/element-prop-types.js";
6
+ import { assembleElementProps } from "../store/react/element-props.js";
7
+ import { buildGirIndex } from "../store/react/gir-index.js";
8
+ import { glibNameOf, implementedInterfaces, newlyImplementedInterfaces, signalHandlerName, } from "../store/react/intrinsic-elements.js";
9
+ import { isObjectProp } from "../store/react/props.js";
10
+ import { classMethodEntries, docMarkdown, docsDefaultValue, firstSentence, joinSections, metaBlock, methodsSectionBlocks, originSignatureBlocks, renderDocsSignalSignature, renderDocsType, } from "./render.js";
11
+ export const createElementPageContext = (library, elementProps, linkFor) => {
12
+ const girIndex = buildGirIndex(library);
13
+ const applied = assembleElementProps(girIndex, elementProps);
14
+ return {
15
+ library,
16
+ girIndex,
17
+ typegen: createElementPropTypegen(girIndex, applied),
18
+ elementProps: applied,
19
+ linkFor,
20
+ };
21
+ };
22
+ const frontmatter = (entry) => {
23
+ const sentence = firstSentence(entry.klass.doc);
24
+ const description = sentence.length > 0 ? sentence : `API reference for the ${entry.glibName} element.`;
25
+ return `---\ndescription: ${JSON.stringify(description)}\n---`;
26
+ };
27
+ const importBlock = (entry) => `\`\`\`tsx\nimport { ${entry.glibName} } from "@gtkx/jsx/${namespaceDirectory(entry.namespace)}";\n\`\`\``;
28
+ const glibLabel = (context, glibName) => {
29
+ const link = context.linkFor(glibName);
30
+ return link === undefined ? `\`${glibName}\`` : `[${glibName}](${link})`;
31
+ };
32
+ const hierarchySection = (entry, context) => {
33
+ const ancestors = [...ancestorChain(context.library, entry.klass, entry.namespace.name)].slice(1).reverse();
34
+ if (ancestors.length === 0)
35
+ return [];
36
+ const parts = ancestors.map((ancestor) => {
37
+ const glib = glibNameOf(ancestor.klass);
38
+ return glib === undefined ? `\`${ancestor.namespaceName}.${ancestor.klass.name}\`` : glibLabel(context, glib);
39
+ });
40
+ parts.push(`**${entry.glibName}**`);
41
+ const lines = [`## Hierarchy`, parts.join(" → ")];
42
+ const interfaces = implementedInterfaces(entry.klass, entry.namespace, context.library)
43
+ .map((iface) => glibNameOf(iface.klass))
44
+ .filter((name) => name !== undefined);
45
+ if (interfaces.length > 0) {
46
+ lines.push(`Implements ${interfaces.map((name) => `\`${name}\``).join(", ")}.`);
47
+ }
48
+ return lines;
49
+ };
50
+ const callName = (call) => call === undefined ? undefined : typeof call === "string" ? call : call.method;
51
+ const containerLine = (prop, context) => {
52
+ const child = glibLabel(context, prop.child);
53
+ const attach = callName(prop.append);
54
+ const detail = [];
55
+ if (attach !== undefined)
56
+ detail.push(`attached with \`${attach}()\``);
57
+ if (prop.autowrap !== undefined) {
58
+ detail.push(`children are wrapped in a ${glibLabel(context, prop.autowrap)} before attaching`);
59
+ }
60
+ const suffix = detail.length > 0 ? ` (${detail.join("; ")})` : "";
61
+ if (prop.prop === "children")
62
+ return `- \`children\` accepts ${child} elements${suffix}.`;
63
+ return `- \`${prop.prop}\` is a slot accepting ${child} elements${suffix}.`;
64
+ };
65
+ const childrenSection = (entry, context) => {
66
+ const lines = [];
67
+ const seen = new Set();
68
+ for (const owner of memberOwners(entry, context)) {
69
+ if (owner.glibName === undefined)
70
+ continue;
71
+ const overlays = context.elementProps[owner.glibName] ?? [];
72
+ const containers = overlays.filter((prop) => prop.kind === "container" && !seen.has(prop.prop));
73
+ for (const prop of containers)
74
+ lines.push(containerLine(prop, context));
75
+ for (const prop of containers)
76
+ seen.add(prop.prop);
77
+ }
78
+ if (!seen.has("children") && context.typegen.acceptsChildren(entry.glibName)) {
79
+ lines.push("- `children` accepts child elements.");
80
+ }
81
+ if (lines.length === 0)
82
+ return [];
83
+ return ["## Children", lines.join("\n")];
84
+ };
85
+ const memberOwners = (entry, context) => [
86
+ { klass: entry.klass, namespace: entry.namespace, origin: undefined, glibName: entry.glibName },
87
+ ...newlyImplementedInterfaces(entry.klass, entry.namespace, context.library, (glibName) => glibName !== undefined && context.typegen.containerPropNamesFor(glibName).length > 0).map((iface) => {
88
+ const glibName = glibNameOf(iface.klass);
89
+ return { klass: iface.klass, namespace: iface.namespace, origin: glibName, glibName };
90
+ }),
91
+ ];
92
+ const propertyEntry = (context, owner, property, jsName) => {
93
+ const object = isObjectProp({ library: context.library, klass: owner.klass, namespace: owner.namespace }, property, jsName);
94
+ const baseType = renderDocsType(context.library, property.type, false);
95
+ const type = object ? `${baseType} | ReactElement` : baseType;
96
+ const meta = [`\`${type}\``];
97
+ if (property.defaultValue !== undefined)
98
+ meta.push(`default \`${docsDefaultValue(property.defaultValue)}\``);
99
+ if (property.constructOnly)
100
+ meta.push("construct-only");
101
+ if (!isConstructableProperty(property))
102
+ meta.push(`read-only, observe with \`onNotify${upperFirst(jsName)}\``);
103
+ if (owner.origin !== undefined)
104
+ meta.push(`from \`${owner.origin}\``);
105
+ return { name: jsName, meta: meta.join(" · "), doc: docMarkdown(property.doc) };
106
+ };
107
+ const overlayNote = (overlays, name) => {
108
+ for (const overlay of overlays) {
109
+ if (overlay.kind === "container" || overlay.prop !== name)
110
+ continue;
111
+ if (overlay.kind === "value")
112
+ return `Applied with \`${callName(overlay.call)}()\`.`;
113
+ if (overlay.kind === "list") {
114
+ const applied = (Array.isArray(overlay.add) ? overlay.add : [overlay.add])
115
+ .map((call) => `\`${callName(call)}()\``)
116
+ .join(", ");
117
+ return `Array prop; items are applied with ${applied}.`;
118
+ }
119
+ if (overlay.kind === "controlled-text") {
120
+ return "Controlled: the element is synced to the prop value whenever that value changes; text the user has typed is preserved rather than reverted on every render.";
121
+ }
122
+ }
123
+ return undefined;
124
+ };
125
+ const cleanOverlayType = (type) => type.replace(/\s*\|\s*undefined$/, "").replaceAll("$.", ".");
126
+ const overlayEntries = (entry, context, seen) => {
127
+ const overlays = context.elementProps[entry.glibName] ?? [];
128
+ const entries = [];
129
+ const lines = context.typegen.classPropLines(entry.glibName, entry.klass, entry.namespace, new Map());
130
+ for (const line of lines) {
131
+ const match = line.match(/^([A-Za-z0-9_]+)\?: (.*);$/);
132
+ if (match === null)
133
+ continue;
134
+ const [, name = "", rawType = ""] = match;
135
+ if (seen.has(name))
136
+ continue;
137
+ seen.add(name);
138
+ const note = overlayNote(overlays, name) ?? "Element prop managed by GTKX.";
139
+ entries.push({ name, meta: `\`${cleanOverlayType(rawType)}\``, doc: note });
140
+ }
141
+ return entries;
142
+ };
143
+ const withOverlayNote = (propEntry, note) => {
144
+ if (note === undefined)
145
+ return propEntry;
146
+ return { ...propEntry, doc: propEntry.doc.length > 0 ? `${note}\n\n${propEntry.doc}` : note };
147
+ };
148
+ const propertyEntries = (entry, context, seen) => {
149
+ const owners = memberOwners(entry, context);
150
+ const overlays = owners.flatMap((owner) => owner.glibName === undefined ? [] : (context.elementProps[owner.glibName] ?? []));
151
+ const entries = [];
152
+ for (const owner of owners) {
153
+ for (const property of owner.klass.properties) {
154
+ if (!property.introspectable)
155
+ continue;
156
+ const jsName = toCamelIdentifier(property.name);
157
+ if (seen.has(jsName))
158
+ continue;
159
+ seen.add(jsName);
160
+ const propEntry = propertyEntry(context, owner, property, jsName);
161
+ entries.push(withOverlayNote(propEntry, overlayNote(overlays, jsName)));
162
+ }
163
+ }
164
+ return entries;
165
+ };
166
+ const propsSection = (entry, context, selfType) => {
167
+ const seen = new Set();
168
+ const entries = [...propertyEntries(entry, context, seen), ...overlayEntries(entry, context, seen)];
169
+ const intro = [
170
+ `\`ref\` receives the \`${selfType}\` instance.`,
171
+ `Every mutable property also has an \`onNotify<Prop>\` handler prop called with the new value when the property changes.`,
172
+ `Props inherited from ancestor elements are documented on their own pages.`,
173
+ ].join(" ");
174
+ if (entries.length === 0)
175
+ return ["## Props", intro];
176
+ const sorted = sortStringsBy(entries, (item) => item.name);
177
+ return ["## Props", intro, ...sorted.map((item) => metaBlock(item.name, item.meta, item.doc))];
178
+ };
179
+ const signalsSection = (entry, context, selfType) => {
180
+ const seen = new Set();
181
+ const entries = [];
182
+ const acceptSignal = (signal, origin) => {
183
+ const name = signalHandlerName(signal.name);
184
+ if (seen.has(name))
185
+ return;
186
+ seen.add(name);
187
+ entries.push({
188
+ name,
189
+ signature: renderDocsSignalSignature(context.library, signal, selfType),
190
+ doc: docMarkdown(signal.doc),
191
+ origin,
192
+ });
193
+ };
194
+ for (const owner of memberOwners(entry, context)) {
195
+ for (const signal of owner.klass.signals)
196
+ acceptSignal(signal, owner.origin);
197
+ }
198
+ if (entries.length === 0)
199
+ return [];
200
+ return ["## Signals", ...originSignatureBlocks(entries)];
201
+ };
202
+ const methodsSection = (entry, context, selfType) => {
203
+ const entries = classMethodEntries(context.library, entry.namespace, entry.klass);
204
+ const intro = `Methods are called on the \`${selfType}\` instance, obtained with the \`ref\` prop or imported from \`@gtkx/gi/${namespaceDirectory(entry.namespace)}\`. Methods inherited from ancestors are documented on their own pages.`;
205
+ return methodsSectionBlocks(entries, intro);
206
+ };
207
+ export const renderElementPage = (entry, context) => {
208
+ const selfType = `${entry.namespace.name}.${entry.klass.name}`;
209
+ return joinSections([
210
+ frontmatter(entry),
211
+ `# ${entry.glibName}`,
212
+ docMarkdown(entry.klass.doc),
213
+ importBlock(entry),
214
+ ...hierarchySection(entry, context),
215
+ ...childrenSection(entry, context),
216
+ ...propsSection(entry, context, selfType),
217
+ ...signalsSection(entry, context, selfType),
218
+ ...methodsSection(entry, context, selfType),
219
+ ]);
220
+ };
221
+ //# sourceMappingURL=element-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element-page.js","sourceRoot":"","sources":["../../src/docs/element-page.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ContainerProp, ElementProp } from \"@gtkx/config\";\nimport { sortStringsBy, toCamelIdentifier, upperFirst } from \"@gtkx/utils\";\nimport { ancestorChain } from \"../gir/ancestry.js\";\nimport type { GirClass } from \"../gir/class.js\";\nimport type { Library } from \"../gir/library.js\";\nimport { type GirNamespace, namespaceDirectory } from \"../gir/namespace.js\";\nimport type { GirSignal } from \"../gir/parameter.js\";\nimport { type GirProperty, isConstructableProperty } from \"../gir/property.js\";\nimport { createElementPropTypegen, type ElementPropTypegen } from \"../store/react/element-prop-types.js\";\nimport { assembleElementProps } from \"../store/react/element-props.js\";\nimport { buildGirIndex, type GirIndex } from \"../store/react/gir-index.js\";\nimport {\n type GlibNamedClass,\n glibNameOf,\n implementedInterfaces,\n newlyImplementedInterfaces,\n signalHandlerName,\n} from \"../store/react/intrinsic-elements.js\";\nimport { isObjectProp } from \"../store/react/props.js\";\nimport {\n classMethodEntries,\n docMarkdown,\n docsDefaultValue,\n firstSentence,\n joinSections,\n metaBlock,\n methodsSectionBlocks,\n originSignatureBlocks,\n renderDocsSignalSignature,\n renderDocsType,\n} from \"./render.js\";\n\nexport type ElementPageContext = {\n library: Library;\n girIndex: GirIndex;\n typegen: ElementPropTypegen;\n elementProps: Record<string, ElementProp[]>;\n linkFor: (glibName: string) => string | undefined;\n};\n\nexport const createElementPageContext = (\n library: Library,\n elementProps: Record<string, ElementProp[]>,\n linkFor: (glibName: string) => string | undefined,\n): ElementPageContext => {\n const girIndex = buildGirIndex(library);\n const applied = assembleElementProps(girIndex, elementProps);\n return {\n library,\n girIndex,\n typegen: createElementPropTypegen(girIndex, applied),\n elementProps: applied,\n linkFor,\n };\n};\n\ntype MemberOwner = {\n klass: GirClass;\n namespace: GirNamespace;\n origin: string | undefined;\n glibName: string | undefined;\n};\n\ntype PropEntry = {\n name: string;\n meta: string;\n doc: string;\n};\n\nconst frontmatter = (entry: GlibNamedClass): string => {\n const sentence = firstSentence(entry.klass.doc);\n const description = sentence.length > 0 ? sentence : `API reference for the ${entry.glibName} element.`;\n return `---\\ndescription: ${JSON.stringify(description)}\\n---`;\n};\n\nconst importBlock = (entry: GlibNamedClass): string =>\n `\\`\\`\\`tsx\\nimport { ${entry.glibName} } from \"@gtkx/jsx/${namespaceDirectory(entry.namespace)}\";\\n\\`\\`\\``;\n\nconst glibLabel = (context: ElementPageContext, glibName: string): string => {\n const link = context.linkFor(glibName);\n return link === undefined ? `\\`${glibName}\\`` : `[${glibName}](${link})`;\n};\n\nconst hierarchySection = (entry: GlibNamedClass, context: ElementPageContext): string[] => {\n const ancestors = [...ancestorChain(context.library, entry.klass, entry.namespace.name)].slice(1).reverse();\n if (ancestors.length === 0) return [];\n const parts = ancestors.map((ancestor) => {\n const glib = glibNameOf(ancestor.klass);\n return glib === undefined ? `\\`${ancestor.namespaceName}.${ancestor.klass.name}\\`` : glibLabel(context, glib);\n });\n parts.push(`**${entry.glibName}**`);\n const lines = [`## Hierarchy`, parts.join(\" → \")];\n const interfaces = implementedInterfaces(entry.klass, entry.namespace, context.library)\n .map((iface) => glibNameOf(iface.klass))\n .filter((name): name is string => name !== undefined);\n if (interfaces.length > 0) {\n lines.push(`Implements ${interfaces.map((name) => `\\`${name}\\``).join(\", \")}.`);\n }\n return lines;\n};\n\nconst callName = (call: ContainerProp[\"append\"]): string | undefined =>\n call === undefined ? undefined : typeof call === \"string\" ? call : call.method;\n\nconst containerLine = (prop: ContainerProp, context: ElementPageContext): string => {\n const child = glibLabel(context, prop.child);\n const attach = callName(prop.append);\n const detail: string[] = [];\n if (attach !== undefined) detail.push(`attached with \\`${attach}()\\``);\n if (prop.autowrap !== undefined) {\n detail.push(`children are wrapped in a ${glibLabel(context, prop.autowrap)} before attaching`);\n }\n const suffix = detail.length > 0 ? ` (${detail.join(\"; \")})` : \"\";\n if (prop.prop === \"children\") return `- \\`children\\` accepts ${child} elements${suffix}.`;\n return `- \\`${prop.prop}\\` is a slot accepting ${child} elements${suffix}.`;\n};\n\nconst childrenSection = (entry: GlibNamedClass, context: ElementPageContext): string[] => {\n const lines: string[] = [];\n const seen = new Set<string>();\n for (const owner of memberOwners(entry, context)) {\n if (owner.glibName === undefined) continue;\n const overlays = context.elementProps[owner.glibName] ?? [];\n const containers = overlays.filter(\n (prop): prop is ContainerProp => prop.kind === \"container\" && !seen.has(prop.prop),\n );\n for (const prop of containers) lines.push(containerLine(prop, context));\n for (const prop of containers) seen.add(prop.prop);\n }\n if (!seen.has(\"children\") && context.typegen.acceptsChildren(entry.glibName)) {\n lines.push(\"- `children` accepts child elements.\");\n }\n if (lines.length === 0) return [];\n return [\"## Children\", lines.join(\"\\n\")];\n};\n\nconst memberOwners = (entry: GlibNamedClass, context: ElementPageContext): MemberOwner[] => [\n { klass: entry.klass, namespace: entry.namespace, origin: undefined, glibName: entry.glibName },\n ...newlyImplementedInterfaces(\n entry.klass,\n entry.namespace,\n context.library,\n (glibName) => glibName !== undefined && context.typegen.containerPropNamesFor(glibName).length > 0,\n ).map((iface) => {\n const glibName = glibNameOf(iface.klass);\n return { klass: iface.klass, namespace: iface.namespace, origin: glibName, glibName };\n }),\n];\n\nconst propertyEntry = (\n context: ElementPageContext,\n owner: MemberOwner,\n property: GirProperty,\n jsName: string,\n): PropEntry => {\n const object = isObjectProp(\n { library: context.library, klass: owner.klass, namespace: owner.namespace },\n property,\n jsName,\n );\n const baseType = renderDocsType(context.library, property.type, false);\n const type = object ? `${baseType} | ReactElement` : baseType;\n const meta: string[] = [`\\`${type}\\``];\n if (property.defaultValue !== undefined) meta.push(`default \\`${docsDefaultValue(property.defaultValue)}\\``);\n if (property.constructOnly) meta.push(\"construct-only\");\n if (!isConstructableProperty(property)) meta.push(`read-only, observe with \\`onNotify${upperFirst(jsName)}\\``);\n if (owner.origin !== undefined) meta.push(`from \\`${owner.origin}\\``);\n return { name: jsName, meta: meta.join(\" · \"), doc: docMarkdown(property.doc) };\n};\n\nconst overlayNote = (overlays: ElementProp[], name: string): string | undefined => {\n for (const overlay of overlays) {\n if (overlay.kind === \"container\" || overlay.prop !== name) continue;\n if (overlay.kind === \"value\") return `Applied with \\`${callName(overlay.call)}()\\`.`;\n if (overlay.kind === \"list\") {\n const applied = (Array.isArray(overlay.add) ? overlay.add : [overlay.add])\n .map((call) => `\\`${callName(call)}()\\``)\n .join(\", \");\n return `Array prop; items are applied with ${applied}.`;\n }\n if (overlay.kind === \"controlled-text\") {\n return \"Controlled: the element is synced to the prop value whenever that value changes; text the user has typed is preserved rather than reverted on every render.\";\n }\n }\n return undefined;\n};\n\nconst cleanOverlayType = (type: string): string => type.replace(/\\s*\\|\\s*undefined$/, \"\").replaceAll(\"$.\", \".\");\n\nconst overlayEntries = (entry: GlibNamedClass, context: ElementPageContext, seen: Set<string>): PropEntry[] => {\n const overlays = context.elementProps[entry.glibName] ?? [];\n const entries: PropEntry[] = [];\n const lines = context.typegen.classPropLines(entry.glibName, entry.klass, entry.namespace, new Map());\n for (const line of lines) {\n const match = line.match(/^([A-Za-z0-9_]+)\\?: (.*);$/);\n if (match === null) continue;\n const [, name = \"\", rawType = \"\"] = match;\n if (seen.has(name)) continue;\n seen.add(name);\n const note = overlayNote(overlays, name) ?? \"Element prop managed by GTKX.\";\n entries.push({ name, meta: `\\`${cleanOverlayType(rawType)}\\``, doc: note });\n }\n return entries;\n};\n\nconst withOverlayNote = (propEntry: PropEntry, note: string | undefined): PropEntry => {\n if (note === undefined) return propEntry;\n return { ...propEntry, doc: propEntry.doc.length > 0 ? `${note}\\n\\n${propEntry.doc}` : note };\n};\n\nconst propertyEntries = (entry: GlibNamedClass, context: ElementPageContext, seen: Set<string>): PropEntry[] => {\n const owners = memberOwners(entry, context);\n const overlays = owners.flatMap((owner) =>\n owner.glibName === undefined ? [] : (context.elementProps[owner.glibName] ?? []),\n );\n const entries: PropEntry[] = [];\n for (const owner of owners) {\n for (const property of owner.klass.properties) {\n if (!property.introspectable) continue;\n const jsName = toCamelIdentifier(property.name);\n if (seen.has(jsName)) continue;\n seen.add(jsName);\n const propEntry = propertyEntry(context, owner, property, jsName);\n entries.push(withOverlayNote(propEntry, overlayNote(overlays, jsName)));\n }\n }\n return entries;\n};\n\nconst propsSection = (entry: GlibNamedClass, context: ElementPageContext, selfType: string): string[] => {\n const seen = new Set<string>();\n const entries = [...propertyEntries(entry, context, seen), ...overlayEntries(entry, context, seen)];\n const intro = [\n `\\`ref\\` receives the \\`${selfType}\\` instance.`,\n `Every mutable property also has an \\`onNotify<Prop>\\` handler prop called with the new value when the property changes.`,\n `Props inherited from ancestor elements are documented on their own pages.`,\n ].join(\" \");\n if (entries.length === 0) return [\"## Props\", intro];\n const sorted = sortStringsBy(entries, (item) => item.name);\n return [\"## Props\", intro, ...sorted.map((item) => metaBlock(item.name, item.meta, item.doc))];\n};\n\ntype SignalEntry = {\n name: string;\n signature: string;\n doc: string;\n origin: string | undefined;\n};\n\nconst signalsSection = (entry: GlibNamedClass, context: ElementPageContext, selfType: string): string[] => {\n const seen = new Set<string>();\n const entries: SignalEntry[] = [];\n const acceptSignal = (signal: GirSignal, origin: string | undefined): void => {\n const name = signalHandlerName(signal.name);\n if (seen.has(name)) return;\n seen.add(name);\n entries.push({\n name,\n signature: renderDocsSignalSignature(context.library, signal, selfType),\n doc: docMarkdown(signal.doc),\n origin,\n });\n };\n for (const owner of memberOwners(entry, context)) {\n for (const signal of owner.klass.signals) acceptSignal(signal, owner.origin);\n }\n if (entries.length === 0) return [];\n return [\"## Signals\", ...originSignatureBlocks(entries)];\n};\n\nconst methodsSection = (entry: GlibNamedClass, context: ElementPageContext, selfType: string): string[] => {\n const entries = classMethodEntries(context.library, entry.namespace, entry.klass);\n const intro = `Methods are called on the \\`${selfType}\\` instance, obtained with the \\`ref\\` prop or imported from \\`@gtkx/gi/${namespaceDirectory(entry.namespace)}\\`. Methods inherited from ancestors are documented on their own pages.`;\n return methodsSectionBlocks(entries, intro);\n};\n\nexport const renderElementPage = (entry: GlibNamedClass, context: ElementPageContext): string => {\n const selfType = `${entry.namespace.name}.${entry.klass.name}`;\n return joinSections([\n frontmatter(entry),\n `# ${entry.glibName}`,\n docMarkdown(entry.klass.doc),\n importBlock(entry),\n ...hierarchySection(entry, context),\n ...childrenSection(entry, context),\n ...propsSection(entry, context, selfType),\n ...signalsSection(entry, context, selfType),\n ...methodsSection(entry, context, selfType),\n ]);\n};\n"]}
@@ -0,0 +1,25 @@
1
+ import type { ElementProp } from "@gtkx/config";
2
+ export type DocsElementLink = {
3
+ text: string;
4
+ link: string;
5
+ };
6
+ export type DocsNamespace = {
7
+ name: string;
8
+ directory: string;
9
+ link: string;
10
+ elements: DocsElementLink[];
11
+ };
12
+ export type DocsOptions = {
13
+ libraries: string[];
14
+ girPath: string[];
15
+ outDir: string;
16
+ basePath?: string;
17
+ elementProps?: Record<string, ElementProp[]>;
18
+ force?: boolean;
19
+ };
20
+ export type DocsResult = {
21
+ regenerated: boolean;
22
+ namespaces: DocsNamespace[];
23
+ };
24
+ export declare const writeDocs: (options: DocsOptions) => DocsResult;
25
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/docs/pipeline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAShD,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAkHF,MAAM,MAAM,UAAU,GAAG;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,SAAS,YAAa,WAAW,KAAG,UAgChD,CAAC"}
@@ -0,0 +1,130 @@
1
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { sortStringsBy } from "@gtkx/utils";
4
+ import { computeFingerprint, FINGERPRINT_FILENAME, isStoreFresh } from "../fingerprint.js";
5
+ import { Library } from "../gir/library.js";
6
+ import { namespaceDirectory } from "../gir/namespace.js";
7
+ import { collectIntrinsicElementClasses } from "../store/react/intrinsic-elements.js";
8
+ import { createElementPageContext, renderElementPage } from "./element-page.js";
9
+ import { elementSlug, firstSentence, namespaceOrder } from "./render.js";
10
+ const MANIFEST_FILENAME = "manifest.json";
11
+ const namespaceIndexPage = (namespace, elements) => {
12
+ const rows = elements.map((entry, index) => {
13
+ const link = namespace.elements[index]?.link ?? "";
14
+ const description = firstSentence(entry.klass.doc).replaceAll("|", "\\|");
15
+ return `| [${entry.glibName}](${link}) | ${description} |`;
16
+ });
17
+ return [
18
+ "---",
19
+ `description: ${JSON.stringify(`Reference pages for the ${namespace.elements.length} JSX elements in the ${namespace.name} namespace.`)}`,
20
+ "---",
21
+ "",
22
+ `# ${namespace.name} elements`,
23
+ "",
24
+ `Elements in this namespace are imported from \`@gtkx/jsx/${namespace.directory}\`; the matching classes, enums, and functions are imported from \`@gtkx/gi/${namespace.directory}\`.`,
25
+ "",
26
+ "| Element | Description |",
27
+ "| --- | --- |",
28
+ ...rows,
29
+ "",
30
+ ].join("\n");
31
+ };
32
+ const rootIndexPage = (namespaces, libraries) => {
33
+ const rows = namespaces.map((ns) => `| [${ns.name}](${ns.link}) | \`@gtkx/jsx/${ns.directory}\` | ${ns.elements.length} |`);
34
+ const librariesList = libraries.map((library) => `\`${library}\``).join(", ");
35
+ return [
36
+ "---",
37
+ `description: "Generated reference documentation for every JSX element in this project's GIR libraries."`,
38
+ "---",
39
+ "",
40
+ "# Element Reference",
41
+ "",
42
+ `This reference documents every JSX element generated from the GObject-Introspection data for ${librariesList}, together with the namespaces they pull in. It is produced by \`gtkx docs\` using the same pipeline that generates the \`@gtkx/jsx\` and \`@gtkx/gi\` bindings, so every page matches the types your editor sees.`,
43
+ "",
44
+ "Each element page lists:",
45
+ "",
46
+ "- **Props** derived from GObject properties, plus the element props GTKX adds (such as `children` and named slots), with types, defaults, and upstream documentation.",
47
+ "- **Signals** as `on<Signal>` handler props with their exact handler signatures.",
48
+ "- **Methods** available on the underlying instance through the `ref` prop.",
49
+ "",
50
+ "## Namespaces",
51
+ "",
52
+ "| Namespace | Import | Elements |",
53
+ "| --- | --- | --- |",
54
+ ...rows,
55
+ "",
56
+ ].join("\n");
57
+ };
58
+ const generatePages = (options, basePath, library) => {
59
+ const intrinsicElements = collectIntrinsicElementClasses(library);
60
+ const byNamespace = new Map();
61
+ for (const entry of intrinsicElements) {
62
+ const list = byNamespace.get(entry.namespace.name) ?? [];
63
+ list.push(entry);
64
+ byNamespace.set(entry.namespace.name, list);
65
+ }
66
+ const linkByGlibName = new Map();
67
+ for (const entry of intrinsicElements) {
68
+ const directory = namespaceDirectory(entry.namespace);
69
+ const slug = elementSlug(entry.klass.name);
70
+ const link = `${basePath}/${directory}/${slug}`;
71
+ const existing = [...linkByGlibName.values()].includes(link);
72
+ if (existing)
73
+ throw new Error(`Docs page slug collision for ${entry.glibName} at ${link}`);
74
+ linkByGlibName.set(entry.glibName, link);
75
+ }
76
+ const pageContext = createElementPageContext(library, options.elementProps ?? {}, (glibName) => linkByGlibName.get(glibName));
77
+ const pages = [];
78
+ const namespaces = [];
79
+ const orderedNames = sortStringsBy([...byNamespace.keys()], namespaceOrder);
80
+ for (const name of orderedNames) {
81
+ const elements = sortStringsBy(byNamespace.get(name) ?? [], (entry) => entry.glibName);
82
+ const directory = name.toLowerCase();
83
+ const namespaceDocs = {
84
+ name,
85
+ directory,
86
+ link: `${basePath}/${directory}/`,
87
+ elements: elements.map((entry) => ({
88
+ text: entry.glibName,
89
+ link: linkByGlibName.get(entry.glibName) ?? "",
90
+ })),
91
+ };
92
+ for (const entry of elements) {
93
+ const slug = elementSlug(entry.klass.name);
94
+ pages.push({ path: `${directory}/${slug}.md`, content: renderElementPage(entry, pageContext) });
95
+ }
96
+ pages.push({ path: `${directory}/index.md`, content: namespaceIndexPage(namespaceDocs, elements) });
97
+ namespaces.push(namespaceDocs);
98
+ }
99
+ pages.push({ path: "index.md", content: rootIndexPage(namespaces, options.libraries) });
100
+ return { pages, namespaces };
101
+ };
102
+ export const writeDocs = (options) => {
103
+ const basePath = options.basePath ?? "/reference";
104
+ const elementProps = options.elementProps ?? {};
105
+ const manifestPath = join(options.outDir, MANIFEST_FILENAME);
106
+ if (options.force !== true && isStoreFresh(options.outDir, options.libraries, elementProps)) {
107
+ if (existsSync(manifestPath)) {
108
+ const manifest = JSON.parse(readFileSync(manifestPath, "utf8"));
109
+ return { regenerated: false, namespaces: manifest.namespaces };
110
+ }
111
+ }
112
+ const library = Library.load(options.libraries, options.girPath);
113
+ const { pages, namespaces } = generatePages(options, basePath, library);
114
+ rmSync(options.outDir, { recursive: true, force: true });
115
+ mkdirSync(options.outDir, { recursive: true });
116
+ for (const page of pages) {
117
+ const target = join(options.outDir, page.path);
118
+ mkdirSync(dirname(target), { recursive: true });
119
+ writeFileSync(target, page.content);
120
+ }
121
+ const manifest = { namespaces };
122
+ writeFileSync(manifestPath, JSON.stringify(manifest));
123
+ writeFileSync(join(options.outDir, FINGERPRINT_FILENAME), JSON.stringify({
124
+ value: computeFingerprint(library.girFiles, options.libraries, elementProps),
125
+ girFiles: library.girFiles,
126
+ libraries: options.libraries,
127
+ }));
128
+ return { regenerated: true, namespaces };
129
+ };
130
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/docs/pipeline.ts"],"names":[],"mappings":"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","sourcesContent":["import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport type { ElementProp } from \"@gtkx/config\";\nimport { sortStringsBy } from \"@gtkx/utils\";\nimport { computeFingerprint, FINGERPRINT_FILENAME, isStoreFresh } from \"../fingerprint.js\";\nimport { Library } from \"../gir/library.js\";\nimport { namespaceDirectory } from \"../gir/namespace.js\";\nimport { collectIntrinsicElementClasses, type GlibNamedClass } from \"../store/react/intrinsic-elements.js\";\nimport { createElementPageContext, renderElementPage } from \"./element-page.js\";\nimport { elementSlug, firstSentence, namespaceOrder } from \"./render.js\";\n\nexport type DocsElementLink = {\n text: string;\n link: string;\n};\n\nexport type DocsNamespace = {\n name: string;\n directory: string;\n link: string;\n elements: DocsElementLink[];\n};\n\nexport type DocsOptions = {\n libraries: string[];\n girPath: string[];\n outDir: string;\n basePath?: string;\n elementProps?: Record<string, ElementProp[]>;\n force?: boolean;\n};\n\ntype DocsManifest = {\n namespaces: DocsNamespace[];\n};\n\nconst MANIFEST_FILENAME = \"manifest.json\";\n\nconst namespaceIndexPage = (namespace: DocsNamespace, elements: GlibNamedClass[]): string => {\n const rows = elements.map((entry, index) => {\n const link = namespace.elements[index]?.link ?? \"\";\n const description = firstSentence(entry.klass.doc).replaceAll(\"|\", \"\\\\|\");\n return `| [${entry.glibName}](${link}) | ${description} |`;\n });\n return [\n \"---\",\n `description: ${JSON.stringify(`Reference pages for the ${namespace.elements.length} JSX elements in the ${namespace.name} namespace.`)}`,\n \"---\",\n \"\",\n `# ${namespace.name} elements`,\n \"\",\n `Elements in this namespace are imported from \\`@gtkx/jsx/${namespace.directory}\\`; the matching classes, enums, and functions are imported from \\`@gtkx/gi/${namespace.directory}\\`.`,\n \"\",\n \"| Element | Description |\",\n \"| --- | --- |\",\n ...rows,\n \"\",\n ].join(\"\\n\");\n};\n\nconst rootIndexPage = (namespaces: DocsNamespace[], libraries: string[]): string => {\n const rows = namespaces.map(\n (ns) => `| [${ns.name}](${ns.link}) | \\`@gtkx/jsx/${ns.directory}\\` | ${ns.elements.length} |`,\n );\n const librariesList = libraries.map((library) => `\\`${library}\\``).join(\", \");\n return [\n \"---\",\n `description: \"Generated reference documentation for every JSX element in this project's GIR libraries.\"`,\n \"---\",\n \"\",\n \"# Element Reference\",\n \"\",\n `This reference documents every JSX element generated from the GObject-Introspection data for ${librariesList}, together with the namespaces they pull in. It is produced by \\`gtkx docs\\` using the same pipeline that generates the \\`@gtkx/jsx\\` and \\`@gtkx/gi\\` bindings, so every page matches the types your editor sees.`,\n \"\",\n \"Each element page lists:\",\n \"\",\n \"- **Props** derived from GObject properties, plus the element props GTKX adds (such as `children` and named slots), with types, defaults, and upstream documentation.\",\n \"- **Signals** as `on<Signal>` handler props with their exact handler signatures.\",\n \"- **Methods** available on the underlying instance through the `ref` prop.\",\n \"\",\n \"## Namespaces\",\n \"\",\n \"| Namespace | Import | Elements |\",\n \"| --- | --- | --- |\",\n ...rows,\n \"\",\n ].join(\"\\n\");\n};\n\ntype GeneratedDocs = {\n pages: { path: string; content: string }[];\n namespaces: DocsNamespace[];\n};\n\nconst generatePages = (options: DocsOptions, basePath: string, library: Library): GeneratedDocs => {\n const intrinsicElements = collectIntrinsicElementClasses(library);\n\n const byNamespace = new Map<string, GlibNamedClass[]>();\n for (const entry of intrinsicElements) {\n const list = byNamespace.get(entry.namespace.name) ?? [];\n list.push(entry);\n byNamespace.set(entry.namespace.name, list);\n }\n\n const linkByGlibName = new Map<string, string>();\n for (const entry of intrinsicElements) {\n const directory = namespaceDirectory(entry.namespace);\n const slug = elementSlug(entry.klass.name);\n const link = `${basePath}/${directory}/${slug}`;\n const existing = [...linkByGlibName.values()].includes(link);\n if (existing) throw new Error(`Docs page slug collision for ${entry.glibName} at ${link}`);\n linkByGlibName.set(entry.glibName, link);\n }\n\n const pageContext = createElementPageContext(library, options.elementProps ?? {}, (glibName) =>\n linkByGlibName.get(glibName),\n );\n\n const pages: { path: string; content: string }[] = [];\n const namespaces: DocsNamespace[] = [];\n const orderedNames = sortStringsBy([...byNamespace.keys()], namespaceOrder);\n for (const name of orderedNames) {\n const elements = sortStringsBy(byNamespace.get(name) ?? [], (entry) => entry.glibName);\n const directory = name.toLowerCase();\n const namespaceDocs: DocsNamespace = {\n name,\n directory,\n link: `${basePath}/${directory}/`,\n elements: elements.map((entry) => ({\n text: entry.glibName,\n link: linkByGlibName.get(entry.glibName) ?? \"\",\n })),\n };\n for (const entry of elements) {\n const slug = elementSlug(entry.klass.name);\n pages.push({ path: `${directory}/${slug}.md`, content: renderElementPage(entry, pageContext) });\n }\n pages.push({ path: `${directory}/index.md`, content: namespaceIndexPage(namespaceDocs, elements) });\n namespaces.push(namespaceDocs);\n }\n pages.push({ path: \"index.md\", content: rootIndexPage(namespaces, options.libraries) });\n return { pages, namespaces };\n};\n\nexport type DocsResult = {\n regenerated: boolean;\n namespaces: DocsNamespace[];\n};\n\nexport const writeDocs = (options: DocsOptions): DocsResult => {\n const basePath = options.basePath ?? \"/reference\";\n const elementProps = options.elementProps ?? {};\n const manifestPath = join(options.outDir, MANIFEST_FILENAME);\n if (options.force !== true && isStoreFresh(options.outDir, options.libraries, elementProps)) {\n if (existsSync(manifestPath)) {\n const manifest = JSON.parse(readFileSync(manifestPath, \"utf8\")) as DocsManifest;\n return { regenerated: false, namespaces: manifest.namespaces };\n }\n }\n\n const library = Library.load(options.libraries, options.girPath);\n const { pages, namespaces } = generatePages(options, basePath, library);\n\n rmSync(options.outDir, { recursive: true, force: true });\n mkdirSync(options.outDir, { recursive: true });\n for (const page of pages) {\n const target = join(options.outDir, page.path);\n mkdirSync(dirname(target), { recursive: true });\n writeFileSync(target, page.content);\n }\n const manifest: DocsManifest = { namespaces };\n writeFileSync(manifestPath, JSON.stringify(manifest));\n writeFileSync(\n join(options.outDir, FINGERPRINT_FILENAME),\n JSON.stringify({\n value: computeFingerprint(library.girFiles, options.libraries, elementProps),\n girFiles: library.girFiles,\n libraries: options.libraries,\n }),\n );\n return { regenerated: true, namespaces };\n};\n"]}
@@ -0,0 +1,32 @@
1
+ import type { GirClass } from "../gir/class.js";
2
+ import type { GirFunction } from "../gir/function.js";
3
+ import type { Library } from "../gir/library.js";
4
+ import type { GirNamespace } from "../gir/namespace.js";
5
+ import type { GirSignal } from "../gir/parameter.js";
6
+ import type { TypeId } from "../gir/type-id.js";
7
+ import { ModuleContext } from "../writer/context.js";
8
+ export declare const renderDocsType: (library: Library, ref: TypeId | undefined, isNullable: boolean) => string;
9
+ export declare const renderDocsSignalSignature: (library: Library, signal: GirSignal, selfType: string) => string;
10
+ export declare const renderDocsSignalHandlerType: (library: Library, signal: GirSignal) => string;
11
+ export declare const docsDefaultValue: (value: string) => string;
12
+ export declare const docMarkdown: (doc: string | undefined) => string;
13
+ export declare const firstSentence: (doc: string | undefined) => string;
14
+ export declare const elementSlug: (className: string) => string;
15
+ export declare const joinSections: (sections: string[]) => string;
16
+ export declare const metaBlock: (name: string, meta: string, doc: string) => string;
17
+ export declare const signatureBlock: (name: string, signature: string, notes: string[]) => string;
18
+ export declare const namespaceOrder: (name: string) => string;
19
+ export declare const docsSignatureContext: (namespace: GirNamespace, library: Library) => ModuleContext;
20
+ export type SignatureEntry = {
21
+ name: string;
22
+ signature: string;
23
+ doc: string;
24
+ };
25
+ export type OriginSignatureEntry = SignatureEntry & {
26
+ origin: string | undefined;
27
+ };
28
+ export declare const originSignatureBlocks: (entries: OriginSignatureEntry[]) => string[];
29
+ export declare const classMethodEntries: (library: Library, namespace: GirNamespace, klass: GirClass) => SignatureEntry[];
30
+ export declare const methodsSectionBlocks: (entries: SignatureEntry[], intro: string) => string[];
31
+ export declare const instanceMethodEntries: (signatureContext: ModuleContext, methods: GirFunction[], rename: (fn: GirFunction) => string | undefined) => SignatureEntry[];
32
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/docs/render.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAkBrD,eAAO,MAAM,cAAc,YAAa,OAAO,OAAO,MAAM,GAAG,SAAS,cAAc,OAAO,KAAG,MAG/F,CAAC;AAcF,eAAO,MAAM,yBAAyB,YAAa,OAAO,UAAU,SAAS,YAAY,MAAM,KAAG,MAGjG,CAAC;AAEF,eAAO,MAAM,2BAA2B,YAAa,OAAO,UAAU,SAAS,KAAG,MACmC,CAAC;AAItH,eAAO,MAAM,gBAAgB,UAAW,MAAM,KAAG,MAA6C,CAAC;AAuB/F,eAAO,MAAM,WAAW,QAAS,MAAM,GAAG,SAAS,KAAG,MACsD,CAAC;AAW7G,eAAO,MAAM,aAAa,QAAS,MAAM,GAAG,SAAS,KAAG,MAMvD,CAAC;AAEF,eAAO,MAAM,WAAW,cAAe,MAAM,KAAG,MAI1B,CAAC;AAEvB,eAAO,MAAM,YAAY,aAAc,MAAM,EAAE,KAAG,MACsB,CAAC;AAEzE,eAAO,MAAM,SAAS,SAAU,MAAM,QAAQ,MAAM,OAAO,MAAM,KAAG,MAInE,CAAC;AAEF,eAAO,MAAM,cAAc,SAAU,MAAM,aAAa,MAAM,SAAS,MAAM,EAAE,KAAG,MAMjF,CAAC;AAIF,eAAO,MAAM,cAAc,SAAU,MAAM,KAAG,MAG7C,CAAC;AAIF,eAAO,MAAM,oBAAoB,cAAe,YAAY,WAAW,OAAO,KAAG,aACD,CAAC;AAEjF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,cAAc,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEnF,eAAO,MAAM,qBAAqB,YAAa,oBAAoB,EAAE,KAAG,MAAM,EAMzE,CAAC;AAEN,eAAO,MAAM,kBAAkB,YAAa,OAAO,aAAa,YAAY,SAAS,QAAQ,KAAG,cAAc,EAQ7G,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,cAAc,EAAE,SAAS,MAAM,KAAG,MAAM,EAG0B,CAAC;AAEjH,eAAO,MAAM,qBAAqB,qBACZ,aAAa,WACtB,WAAW,EAAE,UACd,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,GAAG,SAAS,KAChD,cAAc,EAoBhB,CAAC"}