@gtkx/codegen 1.0.0-rc.1 → 1.0.0-rc.2

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 (521) hide show
  1. package/dist/analysis/descriptor-render.d.ts +18 -11
  2. package/dist/analysis/descriptor-render.d.ts.map +1 -1
  3. package/dist/analysis/descriptor-render.js +275 -152
  4. package/dist/analysis/descriptor-render.js.map +1 -1
  5. package/dist/analysis/descriptor.d.ts +37 -34
  6. package/dist/analysis/descriptor.d.ts.map +1 -1
  7. package/dist/analysis/descriptor.js +34 -30
  8. package/dist/analysis/descriptor.js.map +1 -1
  9. package/dist/analysis/inheritance.d.ts +16 -16
  10. package/dist/analysis/inheritance.d.ts.map +1 -1
  11. package/dist/analysis/inheritance.js +139 -84
  12. package/dist/analysis/inheritance.js.map +1 -1
  13. package/dist/analysis/param-structure.d.ts +14 -13
  14. package/dist/analysis/param-structure.d.ts.map +1 -1
  15. package/dist/analysis/param-structure.js +104 -53
  16. package/dist/analysis/param-structure.js.map +1 -1
  17. package/dist/analysis/ts-type.d.ts +6 -5
  18. package/dist/analysis/ts-type.d.ts.map +1 -1
  19. package/dist/analysis/ts-type.js +69 -23
  20. package/dist/analysis/ts-type.js.map +1 -1
  21. package/dist/compile.d.ts +5 -5
  22. package/dist/compile.d.ts.map +1 -1
  23. package/dist/compile.js +70 -63
  24. package/dist/compile.js.map +1 -1
  25. package/dist/docs/api-reference.d.ts +12 -11
  26. package/dist/docs/api-reference.d.ts.map +1 -1
  27. package/dist/docs/api-reference.js +194 -121
  28. package/dist/docs/api-reference.js.map +1 -1
  29. package/dist/docs/element-page.d.ts +6 -9
  30. package/dist/docs/element-page.d.ts.map +1 -1
  31. package/dist/docs/element-page.js +68 -133
  32. package/dist/docs/element-page.js.map +1 -1
  33. package/dist/docs/pipeline.d.ts +8 -7
  34. package/dist/docs/pipeline.d.ts.map +1 -1
  35. package/dist/docs/pipeline.js +79 -53
  36. package/dist/docs/pipeline.js.map +1 -1
  37. package/dist/docs/render.d.ts +21 -19
  38. package/dist/docs/render.d.ts.map +1 -1
  39. package/dist/docs/render.js +80 -71
  40. package/dist/docs/render.js.map +1 -1
  41. package/dist/docs/symbol-page.d.ts +6 -6
  42. package/dist/docs/symbol-page.d.ts.map +1 -1
  43. package/dist/docs/symbol-page.js +126 -84
  44. package/dist/docs/symbol-page.js.map +1 -1
  45. package/dist/fingerprint.d.ts +28 -5
  46. package/dist/fingerprint.d.ts.map +1 -1
  47. package/dist/fingerprint.js +66 -13
  48. package/dist/fingerprint.js.map +1 -1
  49. package/dist/gi.d.ts +13 -0
  50. package/dist/gi.d.ts.map +1 -0
  51. package/dist/gi.js +21 -0
  52. package/dist/gi.js.map +1 -0
  53. package/dist/gir/ancestry.d.ts +4 -3
  54. package/dist/gir/ancestry.d.ts.map +1 -1
  55. package/dist/gir/ancestry.js +12 -15
  56. package/dist/gir/ancestry.js.map +1 -1
  57. package/dist/gir/callback.d.ts +6 -11
  58. package/dist/gir/callback.d.ts.map +1 -1
  59. package/dist/gir/callback.js +6 -7
  60. package/dist/gir/callback.js.map +1 -1
  61. package/dist/gir/class.d.ts +7 -5
  62. package/dist/gir/class.d.ts.map +1 -1
  63. package/dist/gir/class.js +14 -12
  64. package/dist/gir/class.js.map +1 -1
  65. package/dist/gir/enum.d.ts +3 -3
  66. package/dist/gir/enum.d.ts.map +1 -1
  67. package/dist/gir/enum.js +7 -6
  68. package/dist/gir/enum.js.map +1 -1
  69. package/dist/gir/field.d.ts +8 -3
  70. package/dist/gir/field.d.ts.map +1 -1
  71. package/dist/gir/field.js +30 -7
  72. package/dist/gir/field.js.map +1 -1
  73. package/dist/gir/function.d.ts +6 -3
  74. package/dist/gir/function.d.ts.map +1 -1
  75. package/dist/gir/function.js +23 -7
  76. package/dist/gir/function.js.map +1 -1
  77. package/dist/gir/gir-path.d.ts +2 -1
  78. package/dist/gir/gir-path.d.ts.map +1 -1
  79. package/dist/gir/gir-path.js +26 -10
  80. package/dist/gir/gir-path.js.map +1 -1
  81. package/dist/gir/libraries.d.ts +3 -2
  82. package/dist/gir/libraries.d.ts.map +1 -1
  83. package/dist/gir/libraries.js +39 -27
  84. package/dist/gir/libraries.js.map +1 -1
  85. package/dist/gir/library.d.ts +17 -11
  86. package/dist/gir/library.d.ts.map +1 -1
  87. package/dist/gir/library.js +116 -92
  88. package/dist/gir/library.js.map +1 -1
  89. package/dist/gir/namespace.d.ts +10 -10
  90. package/dist/gir/namespace.d.ts.map +1 -1
  91. package/dist/gir/namespace.js +21 -20
  92. package/dist/gir/namespace.js.map +1 -1
  93. package/dist/gir/nullable-overrides.d.ts +3 -0
  94. package/dist/gir/nullable-overrides.d.ts.map +1 -0
  95. package/dist/gir/nullable-overrides.js +5 -0
  96. package/dist/gir/nullable-overrides.js.map +1 -0
  97. package/dist/gir/parameter.d.ts +14 -12
  98. package/dist/gir/parameter.d.ts.map +1 -1
  99. package/dist/gir/parameter.js +27 -18
  100. package/dist/gir/parameter.js.map +1 -1
  101. package/dist/gir/parse.d.ts +12 -13
  102. package/dist/gir/parse.d.ts.map +1 -1
  103. package/dist/gir/parse.js +50 -40
  104. package/dist/gir/parse.js.map +1 -1
  105. package/dist/gir/primitives.d.ts +5 -4
  106. package/dist/gir/primitives.d.ts.map +1 -1
  107. package/dist/gir/primitives.js +4 -3
  108. package/dist/gir/primitives.js.map +1 -1
  109. package/dist/gir/property.d.ts +5 -4
  110. package/dist/gir/property.d.ts.map +1 -1
  111. package/dist/gir/property.js +10 -9
  112. package/dist/gir/property.js.map +1 -1
  113. package/dist/gir/record.d.ts +5 -4
  114. package/dist/gir/record.d.ts.map +1 -1
  115. package/dist/gir/record.js +13 -12
  116. package/dist/gir/record.js.map +1 -1
  117. package/dist/gir/size.d.ts +6 -5
  118. package/dist/gir/size.d.ts.map +1 -1
  119. package/dist/gir/size.js +49 -47
  120. package/dist/gir/size.js.map +1 -1
  121. package/dist/gir/type-id.d.ts +17 -15
  122. package/dist/gir/type-id.d.ts.map +1 -1
  123. package/dist/gir/type-id.js +5 -1
  124. package/dist/gir/type-id.js.map +1 -1
  125. package/dist/gir/type-ref.d.ts +3 -2
  126. package/dist/gir/type-ref.d.ts.map +1 -1
  127. package/dist/gir/type-ref.js +36 -25
  128. package/dist/gir/type-ref.js.map +1 -1
  129. package/dist/gir/type.d.ts +3 -2
  130. package/dist/gir/type.d.ts.map +1 -1
  131. package/dist/gir/type.js.map +1 -1
  132. package/dist/index.d.ts +2 -0
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +1 -0
  135. package/dist/index.js.map +1 -1
  136. package/dist/jsx.d.ts +26 -0
  137. package/dist/jsx.d.ts.map +1 -0
  138. package/dist/jsx.js +40 -0
  139. package/dist/jsx.js.map +1 -0
  140. package/dist/khronos/args.d.ts +7 -7
  141. package/dist/khronos/args.d.ts.map +1 -1
  142. package/dist/khronos/args.js +88 -67
  143. package/dist/khronos/args.js.map +1 -1
  144. package/dist/khronos/jsdoc.d.ts +4 -4
  145. package/dist/khronos/jsdoc.d.ts.map +1 -1
  146. package/dist/khronos/jsdoc.js +29 -16
  147. package/dist/khronos/jsdoc.js.map +1 -1
  148. package/dist/khronos/model.d.ts +8 -7
  149. package/dist/khronos/model.d.ts.map +1 -1
  150. package/dist/khronos/model.js +94 -59
  151. package/dist/khronos/model.js.map +1 -1
  152. package/dist/khronos/modules.d.ts +4 -3
  153. package/dist/khronos/modules.d.ts.map +1 -1
  154. package/dist/khronos/modules.js +40 -25
  155. package/dist/khronos/modules.js.map +1 -1
  156. package/dist/khronos/param-pair.d.ts +11 -0
  157. package/dist/khronos/param-pair.d.ts.map +1 -0
  158. package/dist/khronos/param-pair.js +6 -0
  159. package/dist/khronos/param-pair.js.map +1 -0
  160. package/dist/khronos/parse.d.ts +7 -8
  161. package/dist/khronos/parse.d.ts.map +1 -1
  162. package/dist/khronos/parse.js +17 -16
  163. package/dist/khronos/parse.js.map +1 -1
  164. package/dist/khronos/pipeline.d.ts +4 -4
  165. package/dist/khronos/pipeline.d.ts.map +1 -1
  166. package/dist/khronos/pipeline.js +97 -56
  167. package/dist/khronos/pipeline.js.map +1 -1
  168. package/dist/khronos/plan.d.ts +11 -10
  169. package/dist/khronos/plan.d.ts.map +1 -1
  170. package/dist/khronos/plan.js +109 -45
  171. package/dist/khronos/plan.js.map +1 -1
  172. package/dist/khronos/render.d.ts +5 -4
  173. package/dist/khronos/render.d.ts.map +1 -1
  174. package/dist/khronos/render.js +106 -59
  175. package/dist/khronos/render.js.map +1 -1
  176. package/dist/khronos/select.d.ts +4 -4
  177. package/dist/khronos/select.d.ts.map +1 -1
  178. package/dist/khronos/select.js +30 -19
  179. package/dist/khronos/select.js.map +1 -1
  180. package/dist/react/element-config.d.ts +17 -0
  181. package/dist/react/element-config.d.ts.map +1 -0
  182. package/dist/react/element-config.js +61 -0
  183. package/dist/react/element-config.js.map +1 -0
  184. package/dist/runner.d.ts +17 -10
  185. package/dist/runner.d.ts.map +1 -1
  186. package/dist/runner.js +45 -43
  187. package/dist/runner.js.map +1 -1
  188. package/dist/store/compile-store.d.ts +5 -3
  189. package/dist/store/compile-store.d.ts.map +1 -1
  190. package/dist/store/compile-store.js +24 -22
  191. package/dist/store/compile-store.js.map +1 -1
  192. package/dist/store/gi/async.d.ts +2 -1
  193. package/dist/store/gi/async.d.ts.map +1 -1
  194. package/dist/store/gi/async.js +28 -24
  195. package/dist/store/gi/async.js.map +1 -1
  196. package/dist/store/gi/callables.d.ts +26 -20
  197. package/dist/store/gi/callables.d.ts.map +1 -1
  198. package/dist/store/gi/callables.js +162 -100
  199. package/dist/store/gi/callables.js.map +1 -1
  200. package/dist/store/gi/callback.d.ts +3 -2
  201. package/dist/store/gi/callback.d.ts.map +1 -1
  202. package/dist/store/gi/callback.js +6 -3
  203. package/dist/store/gi/callback.js.map +1 -1
  204. package/dist/store/gi/class-struct-record.d.ts +4 -3
  205. package/dist/store/gi/class-struct-record.d.ts.map +1 -1
  206. package/dist/store/gi/class-struct-record.js +33 -15
  207. package/dist/store/gi/class-struct-record.js.map +1 -1
  208. package/dist/store/gi/class.d.ts +2 -1
  209. package/dist/store/gi/class.d.ts.map +1 -1
  210. package/dist/store/gi/class.js +86 -47
  211. package/dist/store/gi/class.js.map +1 -1
  212. package/dist/store/gi/companion.d.ts +2 -1
  213. package/dist/store/gi/companion.d.ts.map +1 -1
  214. package/dist/store/gi/companion.js +8 -5
  215. package/dist/store/gi/companion.js.map +1 -1
  216. package/dist/store/gi/constant.d.ts +3 -2
  217. package/dist/store/gi/constant.d.ts.map +1 -1
  218. package/dist/store/gi/constant.js +25 -8
  219. package/dist/store/gi/constant.js.map +1 -1
  220. package/dist/store/gi/constructor-props.d.ts +3 -2
  221. package/dist/store/gi/constructor-props.d.ts.map +1 -1
  222. package/dist/store/gi/constructor-props.js +17 -10
  223. package/dist/store/gi/constructor-props.js.map +1 -1
  224. package/dist/store/gi/enum.d.ts +3 -2
  225. package/dist/store/gi/enum.d.ts.map +1 -1
  226. package/dist/store/gi/enum.js +14 -11
  227. package/dist/store/gi/enum.js.map +1 -1
  228. package/dist/store/gi/function.d.ts +5 -4
  229. package/dist/store/gi/function.d.ts.map +1 -1
  230. package/dist/store/gi/function.js +50 -23
  231. package/dist/store/gi/function.js.map +1 -1
  232. package/dist/store/gi/gtype-binding.d.ts +4 -4
  233. package/dist/store/gi/gtype-binding.d.ts.map +1 -1
  234. package/dist/store/gi/gtype-binding.js +15 -11
  235. package/dist/store/gi/gtype-binding.js.map +1 -1
  236. package/dist/store/gi/interface.d.ts +2 -1
  237. package/dist/store/gi/interface.d.ts.map +1 -1
  238. package/dist/store/gi/interface.js +36 -18
  239. package/dist/store/gi/interface.js.map +1 -1
  240. package/dist/store/gi/item-comparators.d.ts +3 -2
  241. package/dist/store/gi/item-comparators.d.ts.map +1 -1
  242. package/dist/store/gi/item-comparators.js +33 -21
  243. package/dist/store/gi/item-comparators.js.map +1 -1
  244. package/dist/store/gi/method.d.ts +13 -13
  245. package/dist/store/gi/method.d.ts.map +1 -1
  246. package/dist/store/gi/method.js +187 -130
  247. package/dist/store/gi/method.js.map +1 -1
  248. package/dist/store/gi/param-marshal.d.ts +7 -6
  249. package/dist/store/gi/param-marshal.d.ts.map +1 -1
  250. package/dist/store/gi/param-marshal.js +26 -13
  251. package/dist/store/gi/param-marshal.js.map +1 -1
  252. package/dist/store/gi/pipeline.d.ts +2 -1
  253. package/dist/store/gi/pipeline.d.ts.map +1 -1
  254. package/dist/store/gi/pipeline.js +38 -23
  255. package/dist/store/gi/pipeline.js.map +1 -1
  256. package/dist/store/gi/properties.d.ts +2 -1
  257. package/dist/store/gi/properties.d.ts.map +1 -1
  258. package/dist/store/gi/properties.js +6 -4
  259. package/dist/store/gi/properties.js.map +1 -1
  260. package/dist/store/gi/property-accessor.d.ts +11 -10
  261. package/dist/store/gi/property-accessor.d.ts.map +1 -1
  262. package/dist/store/gi/property-accessor.js +86 -60
  263. package/dist/store/gi/property-accessor.js.map +1 -1
  264. package/dist/store/gi/record-constructor.d.ts +3 -2
  265. package/dist/store/gi/record-constructor.d.ts.map +1 -1
  266. package/dist/store/gi/record-constructor.js +36 -25
  267. package/dist/store/gi/record-constructor.js.map +1 -1
  268. package/dist/store/gi/record-field-accessor.d.ts +8 -8
  269. package/dist/store/gi/record-field-accessor.d.ts.map +1 -1
  270. package/dist/store/gi/record-field-accessor.js +171 -99
  271. package/dist/store/gi/record-field-accessor.js.map +1 -1
  272. package/dist/store/gi/record-layout.d.ts +6 -5
  273. package/dist/store/gi/record-layout.d.ts.map +1 -1
  274. package/dist/store/gi/record-layout.js +75 -39
  275. package/dist/store/gi/record-layout.js.map +1 -1
  276. package/dist/store/gi/record.d.ts +2 -1
  277. package/dist/store/gi/record.d.ts.map +1 -1
  278. package/dist/store/gi/record.js +19 -13
  279. package/dist/store/gi/record.js.map +1 -1
  280. package/dist/store/gi/registration.d.ts +3 -3
  281. package/dist/store/gi/registration.d.ts.map +1 -1
  282. package/dist/store/gi/registration.js +3 -2
  283. package/dist/store/gi/registration.js.map +1 -1
  284. package/dist/store/gi/return-wrap.d.ts +2 -2
  285. package/dist/store/gi/return-wrap.d.ts.map +1 -1
  286. package/dist/store/gi/return-wrap.js +43 -22
  287. package/dist/store/gi/return-wrap.js.map +1 -1
  288. package/dist/store/gi/runtime-override.d.ts +2 -1
  289. package/dist/store/gi/runtime-override.d.ts.map +1 -1
  290. package/dist/store/gi/runtime-override.js +6 -3
  291. package/dist/store/gi/runtime-override.js.map +1 -1
  292. package/dist/store/gi/signal.d.ts +3 -2
  293. package/dist/store/gi/signal.d.ts.map +1 -1
  294. package/dist/store/gi/signal.js +113 -66
  295. package/dist/store/gi/signal.js.map +1 -1
  296. package/dist/store/gi/vtable.d.ts +2 -1
  297. package/dist/store/gi/vtable.d.ts.map +1 -1
  298. package/dist/store/gi/vtable.js +60 -30
  299. package/dist/store/gi/vtable.js.map +1 -1
  300. package/dist/store/gi-store.d.ts +5 -4
  301. package/dist/store/gi-store.d.ts.map +1 -1
  302. package/dist/store/gi-store.js +4 -2
  303. package/dist/store/gi-store.js.map +1 -1
  304. package/dist/store/jsx/element-components.d.ts +23 -0
  305. package/dist/store/jsx/element-components.d.ts.map +1 -0
  306. package/dist/store/jsx/element-components.js +86 -0
  307. package/dist/store/jsx/element-components.js.map +1 -0
  308. package/dist/store/jsx/element-prop-imports.d.ts +17 -0
  309. package/dist/store/jsx/element-prop-imports.d.ts.map +1 -0
  310. package/dist/store/jsx/element-prop-imports.js +15 -0
  311. package/dist/store/jsx/element-prop-imports.js.map +1 -0
  312. package/dist/store/jsx/element-prop-types.d.ts +10 -0
  313. package/dist/store/jsx/element-prop-types.d.ts.map +1 -0
  314. package/dist/store/jsx/element-prop-types.js +41 -0
  315. package/dist/store/jsx/element-prop-types.js.map +1 -0
  316. package/dist/store/jsx/gir-index.d.ts +16 -0
  317. package/dist/store/jsx/gir-index.d.ts.map +1 -0
  318. package/dist/store/jsx/gir-index.js +33 -0
  319. package/dist/store/jsx/gir-index.js.map +1 -0
  320. package/dist/store/jsx/intrinsic-elements.d.ts +27 -0
  321. package/dist/store/jsx/intrinsic-elements.d.ts.map +1 -0
  322. package/dist/store/jsx/intrinsic-elements.js +128 -0
  323. package/dist/store/jsx/intrinsic-elements.js.map +1 -0
  324. package/dist/store/{react → jsx}/jsx.d.ts +2 -4
  325. package/dist/store/jsx/jsx.d.ts.map +1 -0
  326. package/dist/store/{react → jsx}/jsx.js +110 -71
  327. package/dist/store/jsx/jsx.js.map +1 -0
  328. package/dist/store/jsx/metadata.d.ts +4 -0
  329. package/dist/store/jsx/metadata.d.ts.map +1 -0
  330. package/dist/store/{react → jsx}/metadata.js +148 -69
  331. package/dist/store/jsx/metadata.js.map +1 -0
  332. package/dist/store/jsx/pipeline.d.ts +21 -0
  333. package/dist/store/jsx/pipeline.d.ts.map +1 -0
  334. package/dist/store/{react → jsx}/pipeline.js +36 -15
  335. package/dist/store/jsx/pipeline.js.map +1 -0
  336. package/dist/store/{react → jsx}/props.d.ts +9 -12
  337. package/dist/store/jsx/props.d.ts.map +1 -0
  338. package/dist/store/jsx/props.js +158 -0
  339. package/dist/store/jsx/props.js.map +1 -0
  340. package/dist/store/jsx-store.d.ts +5 -3
  341. package/dist/store/jsx-store.d.ts.map +1 -1
  342. package/dist/store/jsx-store.js +4 -1
  343. package/dist/store/jsx-store.js.map +1 -1
  344. package/dist/store/store-fs.d.ts +14 -12
  345. package/dist/store/store-fs.d.ts.map +1 -1
  346. package/dist/store/store-fs.js +9 -7
  347. package/dist/store/store-fs.js.map +1 -1
  348. package/dist/writer/context.d.ts +2 -1
  349. package/dist/writer/context.d.ts.map +1 -1
  350. package/dist/writer/context.js +12 -6
  351. package/dist/writer/context.js.map +1 -1
  352. package/dist/writer/doc.d.ts +2 -1
  353. package/dist/writer/doc.d.ts.map +1 -1
  354. package/dist/writer/doc.js +13 -7
  355. package/dist/writer/doc.js.map +1 -1
  356. package/dist/writer/emit.d.ts +8 -7
  357. package/dist/writer/emit.d.ts.map +1 -1
  358. package/dist/writer/emit.js +13 -10
  359. package/dist/writer/emit.js.map +1 -1
  360. package/dist/writer/gtk-doc.d.ts +2 -1
  361. package/dist/writer/gtk-doc.d.ts.map +1 -1
  362. package/dist/writer/gtk-doc.js +29 -18
  363. package/dist/writer/gtk-doc.js.map +1 -1
  364. package/dist/writer/imports.d.ts +4 -2
  365. package/dist/writer/imports.d.ts.map +1 -1
  366. package/dist/writer/imports.js +35 -24
  367. package/dist/writer/imports.js.map +1 -1
  368. package/dist/writer/module.d.ts +3 -2
  369. package/dist/writer/module.d.ts.map +1 -1
  370. package/dist/writer/module.js +16 -9
  371. package/dist/writer/module.js.map +1 -1
  372. package/dist/xml.d.ts +4 -0
  373. package/dist/xml.d.ts.map +1 -0
  374. package/dist/xml.js +10 -0
  375. package/dist/xml.js.map +1 -0
  376. package/overrides/cairo/context.ts.ejs +7 -7
  377. package/overrides/cairo/matrix.ts.ejs +2 -2
  378. package/overrides/cairo/recording-surface.ts.ejs +2 -2
  379. package/overrides/cairo/region.ts.ejs +1 -1
  380. package/overrides/cairo/scaled-font.ts.ejs +3 -3
  381. package/package.json +15 -9
  382. package/src/analysis/descriptor-render.ts +484 -168
  383. package/src/analysis/descriptor.ts +162 -125
  384. package/src/analysis/inheritance.ts +286 -98
  385. package/src/analysis/param-structure.ts +188 -57
  386. package/src/analysis/ts-type.ts +112 -26
  387. package/src/compile.ts +103 -76
  388. package/src/docs/api-reference.ts +340 -144
  389. package/src/docs/element-page.ts +137 -146
  390. package/src/docs/pipeline.ts +132 -73
  391. package/src/docs/render.ts +151 -87
  392. package/src/docs/symbol-page.ts +268 -123
  393. package/src/fingerprint.ts +127 -29
  394. package/src/gi.ts +26 -0
  395. package/src/gir/ancestry.ts +26 -14
  396. package/src/gir/callback.ts +10 -15
  397. package/src/gir/class.ts +20 -16
  398. package/src/gir/enum.ts +9 -7
  399. package/src/gir/field.ts +37 -8
  400. package/src/gir/function.ts +33 -9
  401. package/src/gir/gir-path.ts +36 -12
  402. package/src/gir/libraries.ts +56 -31
  403. package/src/gir/library.ts +200 -97
  404. package/src/gir/namespace.ts +42 -26
  405. package/src/gir/nullable-overrides.ts +5 -0
  406. package/src/gir/parameter.ts +80 -42
  407. package/src/gir/parse.ts +102 -47
  408. package/src/gir/primitives.ts +25 -23
  409. package/src/gir/property.ts +13 -11
  410. package/src/gir/record.ts +16 -14
  411. package/src/gir/size.ts +91 -58
  412. package/src/gir/type-id.ts +33 -18
  413. package/src/gir/type-ref.ts +62 -26
  414. package/src/gir/type.ts +10 -8
  415. package/src/index.ts +7 -0
  416. package/src/jsx.ts +70 -0
  417. package/src/khronos/args.ts +158 -89
  418. package/src/khronos/jsdoc.ts +67 -29
  419. package/src/khronos/model.ts +154 -53
  420. package/src/khronos/modules.ts +67 -27
  421. package/src/khronos/param-pair.ts +14 -0
  422. package/src/khronos/parse.ts +37 -17
  423. package/src/khronos/pipeline.ts +193 -90
  424. package/src/khronos/plan.ts +235 -86
  425. package/src/khronos/render.ts +208 -71
  426. package/src/khronos/select.ts +48 -18
  427. package/src/react/element-config.ts +91 -0
  428. package/src/runner.ts +93 -57
  429. package/src/store/compile-store.ts +32 -26
  430. package/src/store/gi/async.ts +48 -21
  431. package/src/store/gi/callables.ts +345 -136
  432. package/src/store/gi/callback.ts +13 -4
  433. package/src/store/gi/class-struct-record.ts +49 -17
  434. package/src/store/gi/class.ts +186 -64
  435. package/src/store/gi/companion.ts +15 -6
  436. package/src/store/gi/constant.ts +42 -8
  437. package/src/store/gi/constructor-props.ts +42 -16
  438. package/src/store/gi/enum.ts +28 -13
  439. package/src/store/gi/function.ts +90 -24
  440. package/src/store/gi/gtype-binding.ts +31 -18
  441. package/src/store/gi/interface.ts +101 -36
  442. package/src/store/gi/item-comparators.ts +74 -26
  443. package/src/store/gi/method.ts +376 -159
  444. package/src/store/gi/param-marshal.ts +38 -15
  445. package/src/store/gi/pipeline.ts +72 -22
  446. package/src/store/gi/properties.ts +16 -5
  447. package/src/store/gi/property-accessor.ts +192 -84
  448. package/src/store/gi/record-constructor.ts +62 -30
  449. package/src/store/gi/record-field-accessor.ts +380 -167
  450. package/src/store/gi/record-layout.ts +130 -43
  451. package/src/store/gi/record.ts +37 -14
  452. package/src/store/gi/registration.ts +15 -9
  453. package/src/store/gi/return-wrap.ts +71 -23
  454. package/src/store/gi/runtime-override.ts +13 -3
  455. package/src/store/gi/signal.ts +244 -104
  456. package/src/store/gi/vtable.ts +117 -41
  457. package/src/store/gi-store.ts +26 -13
  458. package/src/store/jsx/element-components.ts +152 -0
  459. package/src/store/jsx/element-prop-imports.ts +24 -0
  460. package/src/store/jsx/element-prop-types.ts +59 -0
  461. package/src/store/jsx/gir-index.ts +62 -0
  462. package/src/store/jsx/intrinsic-elements.ts +262 -0
  463. package/src/store/{react → jsx}/jsx.ts +213 -99
  464. package/src/store/jsx/metadata.ts +385 -0
  465. package/src/store/jsx/pipeline.ts +145 -0
  466. package/src/store/jsx/props.ts +274 -0
  467. package/src/store/jsx-store.ts +15 -3
  468. package/src/store/store-fs.ts +36 -20
  469. package/src/writer/context.ts +25 -6
  470. package/src/writer/doc.ts +19 -5
  471. package/src/writer/emit.ts +20 -11
  472. package/src/writer/gtk-doc.ts +48 -21
  473. package/src/writer/imports.ts +63 -28
  474. package/src/writer/module.ts +35 -11
  475. package/src/xml.ts +12 -0
  476. package/dist/store/react/built-ins.d.ts +0 -9
  477. package/dist/store/react/built-ins.d.ts.map +0 -1
  478. package/dist/store/react/built-ins.js +0 -226
  479. package/dist/store/react/built-ins.js.map +0 -1
  480. package/dist/store/react/element-components.d.ts +0 -15
  481. package/dist/store/react/element-components.d.ts.map +0 -1
  482. package/dist/store/react/element-components.js +0 -92
  483. package/dist/store/react/element-components.js.map +0 -1
  484. package/dist/store/react/element-prop-types.d.ts +0 -19
  485. package/dist/store/react/element-prop-types.d.ts.map +0 -1
  486. package/dist/store/react/element-prop-types.js +0 -244
  487. package/dist/store/react/element-prop-types.js.map +0 -1
  488. package/dist/store/react/element-props.d.ts +0 -4
  489. package/dist/store/react/element-props.d.ts.map +0 -1
  490. package/dist/store/react/element-props.js +0 -178
  491. package/dist/store/react/element-props.js.map +0 -1
  492. package/dist/store/react/gir-index.d.ts +0 -25
  493. package/dist/store/react/gir-index.d.ts.map +0 -1
  494. package/dist/store/react/gir-index.js +0 -55
  495. package/dist/store/react/gir-index.js.map +0 -1
  496. package/dist/store/react/intrinsic-elements.d.ts +0 -26
  497. package/dist/store/react/intrinsic-elements.d.ts.map +0 -1
  498. package/dist/store/react/intrinsic-elements.js +0 -107
  499. package/dist/store/react/intrinsic-elements.js.map +0 -1
  500. package/dist/store/react/jsx.d.ts.map +0 -1
  501. package/dist/store/react/jsx.js.map +0 -1
  502. package/dist/store/react/metadata.d.ts +0 -4
  503. package/dist/store/react/metadata.d.ts.map +0 -1
  504. package/dist/store/react/metadata.js.map +0 -1
  505. package/dist/store/react/pipeline.d.ts +0 -14
  506. package/dist/store/react/pipeline.d.ts.map +0 -1
  507. package/dist/store/react/pipeline.js.map +0 -1
  508. package/dist/store/react/props.d.ts.map +0 -1
  509. package/dist/store/react/props.js +0 -133
  510. package/dist/store/react/props.js.map +0 -1
  511. package/overrides/gtk/constants.ts.ejs +0 -3
  512. package/overrides/gtk/index.ts.ejs +0 -2
  513. package/src/store/react/built-ins.ts +0 -260
  514. package/src/store/react/element-components.ts +0 -138
  515. package/src/store/react/element-prop-types.ts +0 -280
  516. package/src/store/react/element-props.ts +0 -204
  517. package/src/store/react/gir-index.ts +0 -85
  518. package/src/store/react/intrinsic-elements.ts +0 -161
  519. package/src/store/react/metadata.ts +0 -197
  520. package/src/store/react/pipeline.ts +0 -90
  521. package/src/store/react/props.ts +0 -197
@@ -1,27 +1,25 @@
1
- import type { ContainerProp, ElementProp } from "@gtkx/config";
2
1
  import { sortStringsBy, toCamelIdentifier, upperFirst } from "@gtkx/utils";
3
- import { ancestorChain } from "../gir/ancestry.js";
4
2
  import type { GirClass } from "../gir/class.js";
5
3
  import type { Library } from "../gir/library.js";
4
+ import { ancestorChain } from "../gir/ancestry.js";
6
5
  import { type GirNamespace, namespaceDirectory } from "../gir/namespace.js";
7
- import type { GirSignal } from "../gir/parameter.js";
8
6
  import { type GirProperty, isConstructableProperty } from "../gir/property.js";
9
- import { createElementPropTypegen, type ElementPropTypegen } from "../store/react/element-prop-types.js";
10
- import { assembleElementProps } from "../store/react/element-props.js";
11
- import { buildGirIndex, type GirIndex } from "../store/react/gir-index.js";
7
+ import { elementPropTypeFor } from "../store/jsx/element-prop-imports.js";
8
+ import { buildGirIndex, type GirIndex } from "../store/jsx/gir-index.js";
12
9
  import {
10
+ getGlibName,
13
11
  type GlibNamedClass,
14
- glibNameOf,
15
12
  implementedInterfaces,
16
13
  newlyImplementedInterfaces,
17
14
  signalHandlerName,
18
- } from "../store/react/intrinsic-elements.js";
19
- import { isObjectProp } from "../store/react/props.js";
15
+ } from "../store/jsx/intrinsic-elements.js";
16
+ import { isObjectProp } from "../store/jsx/props.js";
20
17
  import {
21
18
  classMethodEntries,
22
19
  docMarkdown,
23
20
  docsDefaultValue,
24
21
  firstSentence,
22
+ implementsLine,
25
23
  joinSections,
26
24
  metaBlock,
27
25
  methodsSectionBlocks,
@@ -30,30 +28,12 @@ import {
30
28
  renderDocsType,
31
29
  } from "./render.js";
32
30
 
33
- export type ElementPageContext = {
31
+ type ElementPageContext = {
34
32
  library: Library;
35
33
  girIndex: GirIndex;
36
- typegen: ElementPropTypegen;
37
- elementProps: Record<string, ElementProp[]>;
38
34
  linkFor: (glibName: string) => string | undefined;
39
35
  };
40
36
 
41
- export const createElementPageContext = (
42
- library: Library,
43
- elementProps: Record<string, ElementProp[]>,
44
- linkFor: (glibName: string) => string | undefined,
45
- ): ElementPageContext => {
46
- const girIndex = buildGirIndex(library);
47
- const applied = assembleElementProps(girIndex, elementProps);
48
- return {
49
- library,
50
- girIndex,
51
- typegen: createElementPropTypegen(girIndex, applied),
52
- elementProps: applied,
53
- linkFor,
54
- };
55
- };
56
-
57
37
  type MemberOwner = {
58
38
  klass: GirClass;
59
39
  namespace: GirNamespace;
@@ -67,9 +47,22 @@ type PropEntry = {
67
47
  doc: string;
68
48
  };
69
49
 
50
+ type SignalEntry = {
51
+ name: string;
52
+ signature: string;
53
+ doc: string;
54
+ origin: string | undefined;
55
+ };
56
+
57
+ const createElementPageContext = (
58
+ library: Library,
59
+ linkFor: (glibName: string) => string | undefined,
60
+ ): ElementPageContext => ({ library, girIndex: buildGirIndex(library), linkFor });
61
+
70
62
  const frontmatter = (entry: GlibNamedClass): string => {
71
63
  const sentence = firstSentence(entry.klass.doc);
72
64
  const description = sentence.length > 0 ? sentence : `API reference for the ${entry.glibName} element.`;
65
+
73
66
  return `---\ndescription: ${JSON.stringify(description)}\n---`;
74
67
  };
75
68
 
@@ -78,60 +71,33 @@ const importBlock = (entry: GlibNamedClass): string =>
78
71
 
79
72
  const glibLabel = (context: ElementPageContext, glibName: string): string => {
80
73
  const link = context.linkFor(glibName);
74
+
81
75
  return link === undefined ? `\`${glibName}\`` : `[${glibName}](${link})`;
82
76
  };
83
77
 
84
78
  const hierarchySection = (entry: GlibNamedClass, context: ElementPageContext): string[] => {
85
- const ancestors = [...ancestorChain(context.library, entry.klass, entry.namespace.name)].slice(1).reverse();
86
- if (ancestors.length === 0) return [];
79
+ const ancestors = [...ancestorChain(context.library, entry.klass, entry.namespace.name)].slice(1).toReversed();
80
+
81
+ if (ancestors.length === 0) {
82
+ return [];
83
+ }
84
+
87
85
  const parts = ancestors.map((ancestor) => {
88
- const glib = glibNameOf(ancestor.klass);
86
+ const glib = getGlibName(ancestor.klass);
87
+
89
88
  return glib === undefined ? `\`${ancestor.namespaceName}.${ancestor.klass.name}\`` : glibLabel(context, glib);
90
89
  });
90
+
91
91
  parts.push(`**${entry.glibName}**`);
92
- const lines = [`## Hierarchy`, parts.join(" → ")];
92
+ const lines = ["## Hierarchy", parts.join(" → ")];
93
+
93
94
  const interfaces = implementedInterfaces(entry.klass, entry.namespace, context.library)
94
- .map((iface) => glibNameOf(iface.klass))
95
+ .map((iface) => getGlibName(iface.klass))
95
96
  .filter((name): name is string => name !== undefined);
96
- if (interfaces.length > 0) {
97
- lines.push(`Implements ${interfaces.map((name) => `\`${name}\``).join(", ")}.`);
98
- }
99
- return lines;
100
- };
101
97
 
102
- const callName = (call: ContainerProp["append"]): string | undefined =>
103
- call === undefined ? undefined : typeof call === "string" ? call : call.method;
98
+ lines.push(...implementsLine(interfaces));
104
99
 
105
- const containerLine = (prop: ContainerProp, context: ElementPageContext): string => {
106
- const child = glibLabel(context, prop.child);
107
- const attach = callName(prop.append);
108
- const detail: string[] = [];
109
- if (attach !== undefined) detail.push(`attached with \`${attach}()\``);
110
- if (prop.autowrap !== undefined) {
111
- detail.push(`children are wrapped in a ${glibLabel(context, prop.autowrap)} before attaching`);
112
- }
113
- const suffix = detail.length > 0 ? ` (${detail.join("; ")})` : "";
114
- if (prop.prop === "children") return `- \`children\` accepts ${child} elements${suffix}.`;
115
- return `- \`${prop.prop}\` is a slot accepting ${child} elements${suffix}.`;
116
- };
117
-
118
- const childrenSection = (entry: GlibNamedClass, context: ElementPageContext): string[] => {
119
- const lines: string[] = [];
120
- const seen = new Set<string>();
121
- for (const owner of memberOwners(entry, context)) {
122
- if (owner.glibName === undefined) continue;
123
- const overlays = context.elementProps[owner.glibName] ?? [];
124
- const containers = overlays.filter(
125
- (prop): prop is ContainerProp => prop.kind === "container" && !seen.has(prop.prop),
126
- );
127
- for (const prop of containers) lines.push(containerLine(prop, context));
128
- for (const prop of containers) seen.add(prop.prop);
129
- }
130
- if (!seen.has("children") && context.typegen.acceptsChildren(entry.glibName)) {
131
- lines.push("- `children` accepts child elements.");
132
- }
133
- if (lines.length === 0) return [];
134
- return ["## Children", lines.join("\n")];
100
+ return lines;
135
101
  };
136
102
 
137
103
  const memberOwners = (entry: GlibNamedClass, context: ElementPageContext): MemberOwner[] => [
@@ -140,9 +106,10 @@ const memberOwners = (entry: GlibNamedClass, context: ElementPageContext): Membe
140
106
  entry.klass,
141
107
  entry.namespace,
142
108
  context.library,
143
- (glibName) => glibName !== undefined && context.typegen.containerPropNamesFor(glibName).length > 0,
109
+ (glibName) => glibName !== undefined && elementPropTypeFor(glibName) !== undefined,
144
110
  ).map((iface) => {
145
- const glibName = glibNameOf(iface.klass);
111
+ const glibName = getGlibName(iface.klass);
112
+
146
113
  return { klass: iface.klass, namespace: iface.namespace, origin: glibName, glibName };
147
114
  }),
148
115
  ];
@@ -153,138 +120,162 @@ const propertyEntry = (
153
120
  property: GirProperty,
154
121
  jsName: string,
155
122
  ): PropEntry => {
156
- const object = isObjectProp(
123
+ const isObject = isObjectProp(
157
124
  { library: context.library, klass: owner.klass, namespace: owner.namespace },
158
125
  property,
159
126
  jsName,
160
127
  );
128
+
161
129
  const baseType = renderDocsType(context.library, property.type, false);
162
- const type = object ? `${baseType} | ReactElement` : baseType;
130
+ const type = isObject ? `${baseType} | ReactElement` : baseType;
163
131
  const meta: string[] = [`\`${type}\``];
164
- if (property.defaultValue !== undefined) meta.push(`default \`${docsDefaultValue(property.defaultValue)}\``);
165
- if (property.constructOnly) meta.push("construct-only");
166
- if (!isConstructableProperty(property)) meta.push(`read-only, observe with \`onNotify${upperFirst(jsName)}\``);
167
- if (owner.origin !== undefined) meta.push(`from \`${owner.origin}\``);
132
+
133
+ if (property.defaultValue !== undefined) {
134
+ meta.push(`default \`${docsDefaultValue(property.defaultValue)}\``);
135
+ }
136
+
137
+ if (property.constructOnly) {
138
+ meta.push("construct-only");
139
+ }
140
+
141
+ if (!isConstructableProperty(property)) {
142
+ meta.push(`read-only, observe with \`onNotify${upperFirst(jsName)}\``);
143
+ }
144
+
145
+ if (owner.origin !== undefined) {
146
+ meta.push(`from \`${owner.origin}\``);
147
+ }
148
+
168
149
  return { name: jsName, meta: meta.join(" · "), doc: docMarkdown(property.doc) };
169
150
  };
170
151
 
171
- const overlayNote = (overlays: ElementProp[], name: string): string | undefined => {
172
- for (const overlay of overlays) {
173
- if (overlay.kind === "container" || overlay.prop !== name) continue;
174
- if (overlay.kind === "value") return `Applied with \`${callName(overlay.call)}()\`.`;
175
- if (overlay.kind === "list") {
176
- const applied = (Array.isArray(overlay.add) ? overlay.add : [overlay.add])
177
- .map((call) => `\`${callName(call)}()\``)
178
- .join(", ");
179
- return `Array prop; items are applied with ${applied}.`;
180
- }
181
- if (overlay.kind === "controlled-text") {
182
- 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.";
183
- }
152
+ const propJsName = (property: GirProperty, seen: Set<string>): string | undefined => {
153
+ if (!property.introspectable) {
154
+ return undefined;
184
155
  }
185
- return undefined;
186
- };
187
156
 
188
- const cleanOverlayType = (type: string): string => type.replace(/\s*\|\s*undefined$/, "").replaceAll("$.", ".");
157
+ const jsName = toCamelIdentifier(property.name);
189
158
 
190
- const overlayEntries = (entry: GlibNamedClass, context: ElementPageContext, seen: Set<string>): PropEntry[] => {
191
- const overlays = context.elementProps[entry.glibName] ?? [];
192
- const entries: PropEntry[] = [];
193
- const lines = context.typegen.classPropLines(entry.glibName, entry.klass, entry.namespace, new Map());
194
- for (const line of lines) {
195
- const match = line.match(/^([A-Za-z0-9_]+)\?: (.*);$/);
196
- if (match === null) continue;
197
- const [, name = "", rawType = ""] = match;
198
- if (seen.has(name)) continue;
199
- seen.add(name);
200
- const note = overlayNote(overlays, name) ?? "Element prop managed by GTKX.";
201
- entries.push({ name, meta: `\`${cleanOverlayType(rawType)}\``, doc: note });
159
+ if (seen.has(jsName)) {
160
+ return undefined;
202
161
  }
203
- return entries;
162
+
163
+ seen.add(jsName);
164
+
165
+ return jsName;
204
166
  };
205
167
 
206
- const withOverlayNote = (propEntry: PropEntry, note: string | undefined): PropEntry => {
207
- if (note === undefined) return propEntry;
208
- return { ...propEntry, doc: propEntry.doc.length > 0 ? `${note}\n\n${propEntry.doc}` : note };
168
+ const ownerPropEntries = (context: ElementPageContext, owner: MemberOwner, seen: Set<string>): PropEntry[] => {
169
+ const entries: PropEntry[] = [];
170
+
171
+ for (const property of owner.klass.properties) {
172
+ const jsName = propJsName(property, seen);
173
+
174
+ if (jsName !== undefined) {
175
+ entries.push(propertyEntry(context, owner, property, jsName));
176
+ }
177
+ }
178
+
179
+ return entries;
209
180
  };
210
181
 
211
182
  const propertyEntries = (entry: GlibNamedClass, context: ElementPageContext, seen: Set<string>): PropEntry[] => {
212
- const owners = memberOwners(entry, context);
213
- const overlays = owners.flatMap((owner) =>
214
- owner.glibName === undefined ? [] : (context.elementProps[owner.glibName] ?? []),
215
- );
216
183
  const entries: PropEntry[] = [];
217
- for (const owner of owners) {
218
- for (const property of owner.klass.properties) {
219
- if (!property.introspectable) continue;
220
- const jsName = toCamelIdentifier(property.name);
221
- if (seen.has(jsName)) continue;
222
- seen.add(jsName);
223
- const propEntry = propertyEntry(context, owner, property, jsName);
224
- entries.push(withOverlayNote(propEntry, overlayNote(overlays, jsName)));
225
- }
184
+
185
+ for (const owner of memberOwners(entry, context)) {
186
+ entries.push(...ownerPropEntries(context, owner, seen));
226
187
  }
188
+
227
189
  return entries;
228
190
  };
229
191
 
230
192
  const propsSection = (entry: GlibNamedClass, context: ElementPageContext, selfType: string): string[] => {
231
- const seen = new Set<string>();
232
- const entries = [...propertyEntries(entry, context, seen), ...overlayEntries(entry, context, seen)];
193
+ const seen: Set<string> = new Set();
194
+ const entries = propertyEntries(entry, context, seen);
195
+
233
196
  const intro = [
234
197
  `\`ref\` receives the \`${selfType}\` instance.`,
235
- `Every mutable property also has an \`onNotify<Prop>\` handler prop called with the new value when the property changes.`,
236
- `Props inherited from ancestor elements are documented on their own pages.`,
198
+ "Every mutable property also has an `onNotify<Prop>` handler prop called with the new value " +
199
+ "when the property changes.",
200
+ "Props inherited from ancestor elements are documented on their own pages.",
237
201
  ].join(" ");
238
- if (entries.length === 0) return ["## Props", intro];
202
+
203
+ if (entries.length === 0) {
204
+ return ["## Props", intro];
205
+ }
206
+
239
207
  const sorted = sortStringsBy(entries, (item) => item.name);
240
- return ["## Props", intro, ...sorted.map((item) => metaBlock(item.name, item.meta, item.doc))];
241
- };
242
208
 
243
- type SignalEntry = {
244
- name: string;
245
- signature: string;
246
- doc: string;
247
- origin: string | undefined;
209
+ return ["## Props", intro, ...sorted.map((item) => metaBlock(item.name, item.meta, item.doc))];
248
210
  };
249
211
 
250
- const signalsSection = (entry: GlibNamedClass, context: ElementPageContext, selfType: string): string[] => {
251
- const seen = new Set<string>();
212
+ const ownerSignalEntries = (
213
+ context: ElementPageContext,
214
+ owner: MemberOwner,
215
+ selfType: string,
216
+ seen: Set<string>,
217
+ ): SignalEntry[] => {
252
218
  const entries: SignalEntry[] = [];
253
- const acceptSignal = (signal: GirSignal, origin: string | undefined): void => {
219
+
220
+ for (const signal of owner.klass.signals) {
254
221
  const name = signalHandlerName(signal.name);
255
- if (seen.has(name)) return;
222
+
223
+ if (seen.has(name)) {
224
+ continue;
225
+ }
226
+
256
227
  seen.add(name);
228
+
257
229
  entries.push({
258
230
  name,
259
231
  signature: renderDocsSignalSignature(context.library, signal, selfType),
260
232
  doc: docMarkdown(signal.doc),
261
- origin,
233
+ origin: owner.origin,
262
234
  });
263
- };
235
+ }
236
+
237
+ return entries;
238
+ };
239
+
240
+ const signalsSection = (entry: GlibNamedClass, context: ElementPageContext, selfType: string): string[] => {
241
+ const seen: Set<string> = new Set();
242
+ const entries: SignalEntry[] = [];
243
+
264
244
  for (const owner of memberOwners(entry, context)) {
265
- for (const signal of owner.klass.signals) acceptSignal(signal, owner.origin);
245
+ entries.push(...ownerSignalEntries(context, owner, selfType, seen));
246
+ }
247
+
248
+ if (entries.length === 0) {
249
+ return [];
266
250
  }
267
- if (entries.length === 0) return [];
251
+
268
252
  return ["## Signals", ...originSignatureBlocks(entries)];
269
253
  };
270
254
 
271
255
  const methodsSection = (entry: GlibNamedClass, context: ElementPageContext, selfType: string): string[] => {
272
256
  const entries = classMethodEntries(context.library, entry.namespace, entry.klass);
273
- 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.`;
257
+ const importPath = `@gtkx/gi/${namespaceDirectory(entry.namespace)}`;
258
+
259
+ const intro =
260
+ `Methods are called on the \`${selfType}\` instance, obtained with the \`ref\` prop or ` +
261
+ `imported from \`${importPath}\`. Methods inherited from ancestors are documented on their own pages.`;
262
+
274
263
  return methodsSectionBlocks(entries, intro);
275
264
  };
276
265
 
277
- export const renderElementPage = (entry: GlibNamedClass, context: ElementPageContext): string => {
266
+ const renderElementPage = (entry: GlibNamedClass, context: ElementPageContext): string => {
278
267
  const selfType = `${entry.namespace.name}.${entry.klass.name}`;
268
+
279
269
  return joinSections([
280
270
  frontmatter(entry),
281
271
  `# ${entry.glibName}`,
282
272
  docMarkdown(entry.klass.doc),
283
273
  importBlock(entry),
284
274
  ...hierarchySection(entry, context),
285
- ...childrenSection(entry, context),
286
275
  ...propsSection(entry, context, selfType),
287
276
  ...signalsSection(entry, context, selfType),
288
277
  ...methodsSection(entry, context, selfType),
289
278
  ]);
290
279
  };
280
+
281
+ export { createElementPageContext, renderElementPage, type ElementPageContext };