@gtkx/react 0.20.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 (596) hide show
  1. package/README.md +122 -55
  2. package/dist/components/application.d.ts +10 -0
  3. package/dist/components/application.d.ts.map +1 -0
  4. package/dist/components/application.js +26 -0
  5. package/dist/components/application.js.map +1 -0
  6. package/dist/components/window.d.ts +8 -0
  7. package/dist/components/window.d.ts.map +1 -0
  8. package/dist/components/window.js +23 -0
  9. package/dist/components/window.js.map +1 -0
  10. package/dist/hooks/use-application.d.ts +8 -0
  11. package/dist/hooks/use-application.d.ts.map +1 -0
  12. package/dist/hooks/use-application.js +13 -0
  13. package/dist/hooks/use-application.js.map +1 -0
  14. package/dist/hooks/use-bind-setting.d.ts +6 -0
  15. package/dist/hooks/use-bind-setting.d.ts.map +1 -0
  16. package/dist/hooks/use-bind-setting.js +19 -0
  17. package/dist/hooks/use-bind-setting.js.map +1 -0
  18. package/dist/hooks/use-merge-refs.d.ts +3 -0
  19. package/dist/hooks/use-merge-refs.d.ts.map +1 -0
  20. package/dist/hooks/use-merge-refs.js +48 -0
  21. package/dist/hooks/use-merge-refs.js.map +1 -0
  22. package/dist/hooks/use-object-attachment.d.ts +10 -0
  23. package/dist/hooks/use-object-attachment.d.ts.map +1 -0
  24. package/dist/hooks/use-object-attachment.js +24 -0
  25. package/dist/hooks/use-object-attachment.js.map +1 -0
  26. package/dist/hooks/use-object-value.d.ts +4 -0
  27. package/dist/hooks/use-object-value.d.ts.map +1 -0
  28. package/dist/hooks/use-object-value.js +32 -0
  29. package/dist/hooks/use-object-value.js.map +1 -0
  30. package/dist/hooks/use-parent-window.d.ts +8 -0
  31. package/dist/hooks/use-parent-window.d.ts.map +1 -0
  32. package/dist/hooks/use-parent-window.js +7 -0
  33. package/dist/hooks/use-parent-window.js.map +1 -0
  34. package/dist/hooks/use-property.d.ts +14 -0
  35. package/dist/hooks/use-property.d.ts.map +1 -0
  36. package/dist/hooks/use-property.js +13 -0
  37. package/dist/hooks/use-property.js.map +1 -0
  38. package/dist/hooks/use-setting.d.ts +25 -0
  39. package/dist/hooks/use-setting.d.ts.map +1 -0
  40. package/dist/hooks/use-setting.js +15 -0
  41. package/dist/hooks/use-setting.js.map +1 -0
  42. package/dist/hooks/use-signal.d.ts +21 -0
  43. package/dist/hooks/use-signal.d.ts.map +1 -0
  44. package/dist/hooks/use-signal.js +20 -0
  45. package/dist/hooks/use-signal.js.map +1 -0
  46. package/dist/index.d.ts +14 -5
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +10 -5
  49. package/dist/index.js.map +1 -1
  50. package/dist/internal.d.ts +14 -0
  51. package/dist/internal.d.ts.map +1 -0
  52. package/dist/internal.js +14 -0
  53. package/dist/internal.js.map +1 -0
  54. package/dist/libraries/adw/dialog.d.ts +8 -0
  55. package/dist/libraries/adw/dialog.d.ts.map +1 -0
  56. package/dist/libraries/adw/dialog.js +25 -0
  57. package/dist/libraries/adw/dialog.js.map +1 -0
  58. package/dist/libraries/adw/index.d.ts +2 -0
  59. package/dist/libraries/adw/index.d.ts.map +1 -0
  60. package/dist/libraries/adw/index.js +2 -0
  61. package/dist/libraries/adw/index.js.map +1 -0
  62. package/dist/reconciler/accessible.d.ts +59 -0
  63. package/dist/reconciler/accessible.d.ts.map +1 -0
  64. package/dist/reconciler/accessible.js +143 -0
  65. package/dist/reconciler/accessible.js.map +1 -0
  66. package/dist/reconciler/apply-props.d.ts +8 -0
  67. package/dist/reconciler/apply-props.d.ts.map +1 -0
  68. package/dist/reconciler/apply-props.js +92 -0
  69. package/dist/reconciler/apply-props.js.map +1 -0
  70. package/dist/reconciler/commit-flush.d.ts +3 -0
  71. package/dist/reconciler/commit-flush.d.ts.map +1 -0
  72. package/dist/reconciler/commit-flush.js +13 -0
  73. package/dist/reconciler/commit-flush.js.map +1 -0
  74. package/dist/reconciler/container-attach.d.ts +10 -0
  75. package/dist/reconciler/container-attach.d.ts.map +1 -0
  76. package/dist/reconciler/container-attach.js +216 -0
  77. package/dist/reconciler/container-attach.js.map +1 -0
  78. package/dist/reconciler/content-rebuild.d.ts +3 -0
  79. package/dist/reconciler/content-rebuild.d.ts.map +1 -0
  80. package/dist/reconciler/content-rebuild.js +15 -0
  81. package/dist/reconciler/content-rebuild.js.map +1 -0
  82. package/dist/reconciler/dispatch.d.ts +6 -0
  83. package/dist/reconciler/dispatch.d.ts.map +1 -0
  84. package/dist/reconciler/dispatch.js +61 -0
  85. package/dist/reconciler/dispatch.js.map +1 -0
  86. package/dist/reconciler/element-prop-appliers.d.ts +5 -0
  87. package/dist/reconciler/element-prop-appliers.d.ts.map +1 -0
  88. package/dist/reconciler/element-prop-appliers.js +104 -0
  89. package/dist/reconciler/element-prop-appliers.js.map +1 -0
  90. package/dist/reconciler/element-props.d.ts +25 -0
  91. package/dist/reconciler/element-props.d.ts.map +1 -0
  92. package/dist/reconciler/element-props.js +157 -0
  93. package/dist/reconciler/element-props.js.map +1 -0
  94. package/dist/reconciler/host-config.d.ts +13 -0
  95. package/dist/reconciler/host-config.d.ts.map +1 -0
  96. package/dist/reconciler/host-config.js +309 -0
  97. package/dist/reconciler/host-config.js.map +1 -0
  98. package/dist/reconciler/instance.d.ts +6 -0
  99. package/dist/reconciler/instance.d.ts.map +1 -0
  100. package/dist/reconciler/instance.js +27 -0
  101. package/dist/reconciler/instance.js.map +1 -0
  102. package/dist/reconciler/label-text-rebuild.d.ts +3 -0
  103. package/dist/reconciler/label-text-rebuild.d.ts.map +1 -0
  104. package/dist/reconciler/label-text-rebuild.js +22 -0
  105. package/dist/reconciler/label-text-rebuild.js.map +1 -0
  106. package/dist/reconciler/portal.d.ts +11 -0
  107. package/dist/reconciler/portal.d.ts.map +1 -0
  108. package/dist/reconciler/portal.js +20 -0
  109. package/dist/reconciler/portal.js.map +1 -0
  110. package/dist/reconciler/reconciler-error-handler.d.ts +7 -0
  111. package/dist/reconciler/reconciler-error-handler.d.ts.map +1 -0
  112. package/dist/reconciler/reconciler-error-handler.js +24 -0
  113. package/dist/reconciler/reconciler-error-handler.js.map +1 -0
  114. package/dist/reconciler/reconciler-root.d.ts +19 -0
  115. package/dist/reconciler/reconciler-root.d.ts.map +1 -0
  116. package/dist/reconciler/reconciler-root.js +24 -0
  117. package/dist/reconciler/reconciler-root.js.map +1 -0
  118. package/dist/reconciler/reconciler.d.ts +3 -0
  119. package/dist/reconciler/reconciler.d.ts.map +1 -0
  120. package/dist/reconciler/reconciler.js +12 -0
  121. package/dist/reconciler/reconciler.js.map +1 -0
  122. package/dist/reconciler/render.d.ts +23 -0
  123. package/dist/reconciler/render.d.ts.map +1 -0
  124. package/dist/reconciler/render.js +46 -0
  125. package/dist/reconciler/render.js.map +1 -0
  126. package/dist/reconciler/root-element.d.ts +14 -0
  127. package/dist/reconciler/root-element.d.ts.map +1 -0
  128. package/dist/reconciler/root-element.js +7 -0
  129. package/dist/reconciler/root-element.js.map +1 -0
  130. package/dist/reconciler/signal-store.d.ts +22 -0
  131. package/dist/reconciler/signal-store.d.ts.map +1 -0
  132. package/dist/reconciler/signal-store.js +84 -0
  133. package/dist/reconciler/signal-store.js.map +1 -0
  134. package/dist/reconciler/state.d.ts +36 -0
  135. package/dist/reconciler/state.d.ts.map +1 -0
  136. package/dist/reconciler/state.js +38 -0
  137. package/dist/reconciler/state.js.map +1 -0
  138. package/dist/reconciler/text-buffer-controller.d.ts +17 -0
  139. package/dist/reconciler/text-buffer-controller.d.ts.map +1 -0
  140. package/dist/reconciler/text-buffer-controller.js +102 -0
  141. package/dist/reconciler/text-buffer-controller.js.map +1 -0
  142. package/dist/reconciler/text-buffer-rebuild.d.ts +3 -0
  143. package/dist/reconciler/text-buffer-rebuild.d.ts.map +1 -0
  144. package/dist/reconciler/text-buffer-rebuild.js +7 -0
  145. package/dist/reconciler/text-buffer-rebuild.js.map +1 -0
  146. package/dist/reconciler/text-node.d.ts +7 -0
  147. package/dist/reconciler/text-node.d.ts.map +1 -0
  148. package/dist/reconciler/text-node.js +8 -0
  149. package/dist/reconciler/text-node.js.map +1 -0
  150. package/dist/reconciler/types.d.ts +5 -0
  151. package/dist/reconciler/types.d.ts.map +1 -0
  152. package/dist/reconciler/types.js.map +1 -0
  153. package/dist/reconciler/visibility.d.ts +6 -0
  154. package/dist/reconciler/visibility.d.ts.map +1 -0
  155. package/dist/reconciler/visibility.js +57 -0
  156. package/dist/reconciler/visibility.js.map +1 -0
  157. package/dist/reconciler/wrapper-apply.d.ts +6 -0
  158. package/dist/reconciler/wrapper-apply.d.ts.map +1 -0
  159. package/dist/reconciler/wrapper-apply.js +287 -0
  160. package/dist/reconciler/wrapper-apply.js.map +1 -0
  161. package/dist/reconciler/wrapper-content.d.ts +8 -0
  162. package/dist/reconciler/wrapper-content.d.ts.map +1 -0
  163. package/dist/reconciler/wrapper-content.js +19 -0
  164. package/dist/reconciler/wrapper-content.js.map +1 -0
  165. package/dist/reconciler/wrapper-node.d.ts +8 -0
  166. package/dist/reconciler/wrapper-node.d.ts.map +1 -0
  167. package/dist/reconciler/wrapper-node.js +4 -0
  168. package/dist/reconciler/wrapper-node.js.map +1 -0
  169. package/dist/reconciler/wrapper-protocol.d.ts +13 -0
  170. package/dist/reconciler/wrapper-protocol.d.ts.map +1 -0
  171. package/dist/reconciler/wrapper-protocol.js +20 -0
  172. package/dist/reconciler/wrapper-protocol.js.map +1 -0
  173. package/dist/utils/accessible-metadata.d.ts +5 -0
  174. package/dist/utils/accessible-metadata.d.ts.map +1 -0
  175. package/dist/utils/accessible-metadata.js +22 -0
  176. package/dist/utils/accessible-metadata.js.map +1 -0
  177. package/dist/utils/create-element-component.d.ts +4 -0
  178. package/dist/utils/create-element-component.d.ts.map +1 -0
  179. package/dist/utils/create-element-component.js +54 -0
  180. package/dist/utils/create-element-component.js.map +1 -0
  181. package/dist/utils/gtype.d.ts +16 -0
  182. package/dist/utils/gtype.d.ts.map +1 -0
  183. package/dist/utils/gtype.js +127 -0
  184. package/dist/utils/gtype.js.map +1 -0
  185. package/dist/utils/notify-name.d.ts +5 -0
  186. package/dist/utils/notify-name.d.ts.map +1 -0
  187. package/dist/utils/notify-name.js +6 -0
  188. package/dist/utils/notify-name.js.map +1 -0
  189. package/dist/utils/object-prop.d.ts +8 -0
  190. package/dist/utils/object-prop.d.ts.map +1 -0
  191. package/dist/utils/object-prop.js +9 -0
  192. package/dist/utils/object-prop.js.map +1 -0
  193. package/dist/utils/settings-accessor.d.ts +8 -0
  194. package/dist/utils/settings-accessor.d.ts.map +1 -0
  195. package/dist/utils/settings-accessor.js +69 -0
  196. package/dist/utils/settings-accessor.js.map +1 -0
  197. package/dist/utils/wrapper-node-jsx.d.ts +32 -0
  198. package/dist/utils/wrapper-node-jsx.d.ts.map +1 -0
  199. package/dist/utils/wrapper-node-jsx.js +2 -0
  200. package/dist/utils/wrapper-node-jsx.js.map +1 -0
  201. package/package.json +22 -8
  202. package/src/components/application.tsx +43 -0
  203. package/src/components/window.tsx +36 -0
  204. package/src/hooks/use-application.ts +17 -0
  205. package/src/hooks/use-bind-setting.ts +35 -0
  206. package/src/hooks/use-merge-refs.ts +53 -0
  207. package/src/hooks/use-object-attachment.ts +35 -0
  208. package/src/hooks/use-object-value.ts +50 -0
  209. package/src/hooks/use-parent-window.ts +9 -0
  210. package/src/hooks/use-property.ts +22 -0
  211. package/src/hooks/use-setting.ts +47 -0
  212. package/src/hooks/use-signal.ts +71 -0
  213. package/src/index.ts +15 -12
  214. package/src/internal.ts +24 -0
  215. package/src/libraries/adw/dialog.tsx +34 -0
  216. package/src/libraries/adw/index.ts +1 -0
  217. package/src/reconciler/accessible.ts +232 -0
  218. package/src/reconciler/apply-props.ts +117 -0
  219. package/src/reconciler/commit-flush.ts +13 -0
  220. package/src/reconciler/container-attach.ts +219 -0
  221. package/src/reconciler/content-rebuild.ts +19 -0
  222. package/src/reconciler/dispatch.ts +58 -0
  223. package/src/reconciler/element-prop-appliers.ts +110 -0
  224. package/src/reconciler/element-props.ts +192 -0
  225. package/src/reconciler/host-config.ts +405 -0
  226. package/src/reconciler/instance.ts +30 -0
  227. package/src/reconciler/label-text-rebuild.ts +26 -0
  228. package/src/reconciler/portal.ts +28 -0
  229. package/src/reconciler/reconciler-error-handler.ts +29 -0
  230. package/src/reconciler/reconciler-root.ts +57 -0
  231. package/src/reconciler/reconciler.ts +13 -0
  232. package/src/reconciler/render.ts +61 -0
  233. package/src/reconciler/root-element.ts +14 -0
  234. package/src/reconciler/signal-store.ts +103 -0
  235. package/src/reconciler/state.ts +72 -0
  236. package/src/reconciler/text-buffer-controller.ts +107 -0
  237. package/src/reconciler/text-buffer-rebuild.ts +12 -0
  238. package/src/reconciler/text-node.ts +13 -0
  239. package/src/reconciler/types.ts +6 -0
  240. package/src/reconciler/visibility.ts +52 -0
  241. package/src/reconciler/wrapper-apply.ts +308 -0
  242. package/src/reconciler/wrapper-content.ts +24 -0
  243. package/src/reconciler/wrapper-node.ts +8 -0
  244. package/src/reconciler/wrapper-protocol.ts +32 -0
  245. package/src/utils/accessible-metadata.ts +26 -0
  246. package/src/utils/create-element-component.ts +77 -0
  247. package/src/utils/gtype.ts +166 -0
  248. package/src/utils/notify-name.ts +10 -0
  249. package/src/utils/object-prop.ts +13 -0
  250. package/src/utils/settings-accessor.ts +89 -0
  251. package/src/utils/wrapper-node-jsx.ts +34 -0
  252. package/dist/components/list.d.ts +0 -35
  253. package/dist/components/list.d.ts.map +0 -1
  254. package/dist/components/list.js +0 -40
  255. package/dist/components/list.js.map +0 -1
  256. package/dist/errors.d.ts +0 -9
  257. package/dist/errors.d.ts.map +0 -1
  258. package/dist/errors.js +0 -42
  259. package/dist/errors.js.map +0 -1
  260. package/dist/factory.d.ts +0 -5
  261. package/dist/factory.d.ts.map +0 -1
  262. package/dist/factory.js +0 -37
  263. package/dist/factory.js.map +0 -1
  264. package/dist/generated/internal.d.ts +0 -16
  265. package/dist/generated/internal.d.ts.map +0 -1
  266. package/dist/generated/internal.js +0 -5635
  267. package/dist/generated/internal.js.map +0 -1
  268. package/dist/generated/jsx.d.ts +0 -19624
  269. package/dist/generated/jsx.d.ts.map +0 -1
  270. package/dist/generated/jsx.js +0 -9274
  271. package/dist/generated/jsx.js.map +0 -1
  272. package/dist/generated/registry.d.ts +0 -4
  273. package/dist/generated/registry.d.ts.map +0 -1
  274. package/dist/generated/registry.js +0 -14
  275. package/dist/generated/registry.js.map +0 -1
  276. package/dist/host-config.d.ts +0 -24
  277. package/dist/host-config.d.ts.map +0 -1
  278. package/dist/host-config.js +0 -172
  279. package/dist/host-config.js.map +0 -1
  280. package/dist/jsx.d.ts +0 -1272
  281. package/dist/jsx.d.ts.map +0 -1
  282. package/dist/jsx.js +0 -331
  283. package/dist/jsx.js.map +0 -1
  284. package/dist/metadata.d.ts +0 -5
  285. package/dist/metadata.d.ts.map +0 -1
  286. package/dist/metadata.js +0 -33
  287. package/dist/metadata.js.map +0 -1
  288. package/dist/node.d.ts +0 -25
  289. package/dist/node.d.ts.map +0 -1
  290. package/dist/node.js +0 -85
  291. package/dist/node.js.map +0 -1
  292. package/dist/nodes/adjustable.d.ts +0 -11
  293. package/dist/nodes/adjustable.d.ts.map +0 -1
  294. package/dist/nodes/adjustable.js +0 -46
  295. package/dist/nodes/adjustable.js.map +0 -1
  296. package/dist/nodes/alert-dialog-response.d.ts +0 -15
  297. package/dist/nodes/alert-dialog-response.d.ts.map +0 -1
  298. package/dist/nodes/alert-dialog-response.js +0 -61
  299. package/dist/nodes/alert-dialog-response.js.map +0 -1
  300. package/dist/nodes/animation.d.ts +0 -38
  301. package/dist/nodes/animation.d.ts.map +0 -1
  302. package/dist/nodes/animation.js +0 -310
  303. package/dist/nodes/animation.js.map +0 -1
  304. package/dist/nodes/application.d.ts +0 -12
  305. package/dist/nodes/application.d.ts.map +0 -1
  306. package/dist/nodes/application.js +0 -51
  307. package/dist/nodes/application.js.map +0 -1
  308. package/dist/nodes/calendar.d.ts +0 -18
  309. package/dist/nodes/calendar.d.ts.map +0 -1
  310. package/dist/nodes/calendar.js +0 -28
  311. package/dist/nodes/calendar.js.map +0 -1
  312. package/dist/nodes/color-dialog-button.d.ts +0 -15
  313. package/dist/nodes/color-dialog-button.d.ts.map +0 -1
  314. package/dist/nodes/color-dialog-button.js +0 -43
  315. package/dist/nodes/color-dialog-button.js.map +0 -1
  316. package/dist/nodes/column-view-column.d.ts +0 -36
  317. package/dist/nodes/column-view-column.d.ts.map +0 -1
  318. package/dist/nodes/column-view-column.js +0 -168
  319. package/dist/nodes/column-view-column.js.map +0 -1
  320. package/dist/nodes/container-slot.d.ts +0 -16
  321. package/dist/nodes/container-slot.d.ts.map +0 -1
  322. package/dist/nodes/container-slot.js +0 -69
  323. package/dist/nodes/container-slot.js.map +0 -1
  324. package/dist/nodes/dialog.d.ts +0 -10
  325. package/dist/nodes/dialog.d.ts.map +0 -1
  326. package/dist/nodes/dialog.js +0 -20
  327. package/dist/nodes/dialog.js.map +0 -1
  328. package/dist/nodes/drawing-area.d.ts +0 -17
  329. package/dist/nodes/drawing-area.d.ts.map +0 -1
  330. package/dist/nodes/drawing-area.js +0 -42
  331. package/dist/nodes/drawing-area.js.map +0 -1
  332. package/dist/nodes/event-controller.d.ts +0 -15
  333. package/dist/nodes/event-controller.d.ts.map +0 -1
  334. package/dist/nodes/event-controller.js +0 -77
  335. package/dist/nodes/event-controller.js.map +0 -1
  336. package/dist/nodes/fixed-child.d.ts +0 -18
  337. package/dist/nodes/fixed-child.d.ts.map +0 -1
  338. package/dist/nodes/fixed-child.js +0 -86
  339. package/dist/nodes/fixed-child.js.map +0 -1
  340. package/dist/nodes/font-dialog-button.d.ts +0 -15
  341. package/dist/nodes/font-dialog-button.d.ts.map +0 -1
  342. package/dist/nodes/font-dialog-button.js +0 -76
  343. package/dist/nodes/font-dialog-button.js.map +0 -1
  344. package/dist/nodes/grid-child.d.ts +0 -18
  345. package/dist/nodes/grid-child.d.ts.map +0 -1
  346. package/dist/nodes/grid-child.js +0 -81
  347. package/dist/nodes/grid-child.js.map +0 -1
  348. package/dist/nodes/internal/accessible.d.ts +0 -5
  349. package/dist/nodes/internal/accessible.d.ts.map +0 -1
  350. package/dist/nodes/internal/accessible.js +0 -119
  351. package/dist/nodes/internal/accessible.js.map +0 -1
  352. package/dist/nodes/internal/bound-item.d.ts +0 -4
  353. package/dist/nodes/internal/bound-item.d.ts.map +0 -1
  354. package/dist/nodes/internal/bound-item.js +0 -2
  355. package/dist/nodes/internal/bound-item.js.map +0 -1
  356. package/dist/nodes/internal/construct.d.ts +0 -3
  357. package/dist/nodes/internal/construct.d.ts.map +0 -1
  358. package/dist/nodes/internal/construct.js +0 -44
  359. package/dist/nodes/internal/construct.js.map +0 -1
  360. package/dist/nodes/internal/predicates.d.ts +0 -51
  361. package/dist/nodes/internal/predicates.d.ts.map +0 -1
  362. package/dist/nodes/internal/predicates.js +0 -36
  363. package/dist/nodes/internal/predicates.js.map +0 -1
  364. package/dist/nodes/internal/props.d.ts +0 -6
  365. package/dist/nodes/internal/props.d.ts.map +0 -1
  366. package/dist/nodes/internal/props.js +0 -43
  367. package/dist/nodes/internal/props.js.map +0 -1
  368. package/dist/nodes/internal/signal-store.d.ts +0 -22
  369. package/dist/nodes/internal/signal-store.d.ts.map +0 -1
  370. package/dist/nodes/internal/signal-store.js +0 -98
  371. package/dist/nodes/internal/signal-store.js.map +0 -1
  372. package/dist/nodes/internal/text-buffer-controller.d.ts +0 -40
  373. package/dist/nodes/internal/text-buffer-controller.d.ts.map +0 -1
  374. package/dist/nodes/internal/text-buffer-controller.js +0 -327
  375. package/dist/nodes/internal/text-buffer-controller.js.map +0 -1
  376. package/dist/nodes/internal/widget.d.ts +0 -8
  377. package/dist/nodes/internal/widget.d.ts.map +0 -1
  378. package/dist/nodes/internal/widget.js +0 -72
  379. package/dist/nodes/internal/widget.js.map +0 -1
  380. package/dist/nodes/level-bar.d.ts +0 -12
  381. package/dist/nodes/level-bar.d.ts.map +0 -1
  382. package/dist/nodes/level-bar.js +0 -24
  383. package/dist/nodes/level-bar.js.map +0 -1
  384. package/dist/nodes/list-item-node.d.ts +0 -12
  385. package/dist/nodes/list-item-node.d.ts.map +0 -1
  386. package/dist/nodes/list-item-node.js +0 -23
  387. package/dist/nodes/list-item-node.js.map +0 -1
  388. package/dist/nodes/list.d.ts +0 -100
  389. package/dist/nodes/list.d.ts.map +0 -1
  390. package/dist/nodes/list.js +0 -950
  391. package/dist/nodes/list.js.map +0 -1
  392. package/dist/nodes/menu.d.ts +0 -7
  393. package/dist/nodes/menu.d.ts.map +0 -1
  394. package/dist/nodes/menu.js +0 -20
  395. package/dist/nodes/menu.js.map +0 -1
  396. package/dist/nodes/models/menu.d.ts +0 -47
  397. package/dist/nodes/models/menu.d.ts.map +0 -1
  398. package/dist/nodes/models/menu.js +0 -240
  399. package/dist/nodes/models/menu.js.map +0 -1
  400. package/dist/nodes/navigation-page.d.ts +0 -19
  401. package/dist/nodes/navigation-page.d.ts.map +0 -1
  402. package/dist/nodes/navigation-page.js +0 -129
  403. package/dist/nodes/navigation-page.js.map +0 -1
  404. package/dist/nodes/navigation-view.d.ts +0 -19
  405. package/dist/nodes/navigation-view.d.ts.map +0 -1
  406. package/dist/nodes/navigation-view.js +0 -51
  407. package/dist/nodes/navigation-view.js.map +0 -1
  408. package/dist/nodes/notebook-page-tab.d.ts +0 -15
  409. package/dist/nodes/notebook-page-tab.d.ts.map +0 -1
  410. package/dist/nodes/notebook-page-tab.js +0 -40
  411. package/dist/nodes/notebook-page-tab.js.map +0 -1
  412. package/dist/nodes/notebook-page.d.ts +0 -29
  413. package/dist/nodes/notebook-page.d.ts.map +0 -1
  414. package/dist/nodes/notebook-page.js +0 -151
  415. package/dist/nodes/notebook-page.js.map +0 -1
  416. package/dist/nodes/notebook.d.ts +0 -16
  417. package/dist/nodes/notebook.d.ts.map +0 -1
  418. package/dist/nodes/notebook.js +0 -31
  419. package/dist/nodes/notebook.js.map +0 -1
  420. package/dist/nodes/overlay-child.d.ts +0 -18
  421. package/dist/nodes/overlay-child.d.ts.map +0 -1
  422. package/dist/nodes/overlay-child.js +0 -88
  423. package/dist/nodes/overlay-child.js.map +0 -1
  424. package/dist/nodes/popover-menu.d.ts +0 -19
  425. package/dist/nodes/popover-menu.d.ts.map +0 -1
  426. package/dist/nodes/popover-menu.js +0 -54
  427. package/dist/nodes/popover-menu.js.map +0 -1
  428. package/dist/nodes/scale.d.ts +0 -10
  429. package/dist/nodes/scale.d.ts.map +0 -1
  430. package/dist/nodes/scale.js +0 -19
  431. package/dist/nodes/scale.js.map +0 -1
  432. package/dist/nodes/scrolled-window.d.ts +0 -11
  433. package/dist/nodes/scrolled-window.d.ts.map +0 -1
  434. package/dist/nodes/scrolled-window.js +0 -18
  435. package/dist/nodes/scrolled-window.js.map +0 -1
  436. package/dist/nodes/search-bar.d.ts +0 -11
  437. package/dist/nodes/search-bar.d.ts.map +0 -1
  438. package/dist/nodes/search-bar.js +0 -16
  439. package/dist/nodes/search-bar.js.map +0 -1
  440. package/dist/nodes/shortcut.d.ts +0 -19
  441. package/dist/nodes/shortcut.d.ts.map +0 -1
  442. package/dist/nodes/shortcut.js +0 -72
  443. package/dist/nodes/shortcut.js.map +0 -1
  444. package/dist/nodes/slot.d.ts +0 -21
  445. package/dist/nodes/slot.d.ts.map +0 -1
  446. package/dist/nodes/slot.js +0 -102
  447. package/dist/nodes/slot.js.map +0 -1
  448. package/dist/nodes/source-view.d.ts +0 -18
  449. package/dist/nodes/source-view.d.ts.map +0 -1
  450. package/dist/nodes/source-view.js +0 -94
  451. package/dist/nodes/source-view.js.map +0 -1
  452. package/dist/nodes/stack-page.d.ts +0 -22
  453. package/dist/nodes/stack-page.d.ts.map +0 -1
  454. package/dist/nodes/stack-page.js +0 -140
  455. package/dist/nodes/stack-page.js.map +0 -1
  456. package/dist/nodes/stack.d.ts +0 -13
  457. package/dist/nodes/stack.d.ts.map +0 -1
  458. package/dist/nodes/stack.js +0 -21
  459. package/dist/nodes/stack.js.map +0 -1
  460. package/dist/nodes/text-anchor.d.ts +0 -23
  461. package/dist/nodes/text-anchor.d.ts.map +0 -1
  462. package/dist/nodes/text-anchor.js +0 -64
  463. package/dist/nodes/text-anchor.js.map +0 -1
  464. package/dist/nodes/text-content.d.ts +0 -12
  465. package/dist/nodes/text-content.d.ts.map +0 -1
  466. package/dist/nodes/text-content.js +0 -2
  467. package/dist/nodes/text-content.js.map +0 -1
  468. package/dist/nodes/text-paintable.d.ts +0 -19
  469. package/dist/nodes/text-paintable.d.ts.map +0 -1
  470. package/dist/nodes/text-paintable.js +0 -42
  471. package/dist/nodes/text-paintable.js.map +0 -1
  472. package/dist/nodes/text-segment.d.ts +0 -18
  473. package/dist/nodes/text-segment.d.ts.map +0 -1
  474. package/dist/nodes/text-segment.js +0 -38
  475. package/dist/nodes/text-segment.js.map +0 -1
  476. package/dist/nodes/text-tag.d.ts +0 -38
  477. package/dist/nodes/text-tag.d.ts.map +0 -1
  478. package/dist/nodes/text-tag.js +0 -241
  479. package/dist/nodes/text-tag.js.map +0 -1
  480. package/dist/nodes/text-view.d.ts +0 -29
  481. package/dist/nodes/text-view.d.ts.map +0 -1
  482. package/dist/nodes/text-view.js +0 -80
  483. package/dist/nodes/text-view.js.map +0 -1
  484. package/dist/nodes/toggle-group.d.ts +0 -11
  485. package/dist/nodes/toggle-group.d.ts.map +0 -1
  486. package/dist/nodes/toggle-group.js +0 -16
  487. package/dist/nodes/toggle-group.js.map +0 -1
  488. package/dist/nodes/toggle.d.ts +0 -16
  489. package/dist/nodes/toggle.d.ts.map +0 -1
  490. package/dist/nodes/toggle.js +0 -61
  491. package/dist/nodes/toggle.js.map +0 -1
  492. package/dist/nodes/virtual.d.ts +0 -7
  493. package/dist/nodes/virtual.d.ts.map +0 -1
  494. package/dist/nodes/virtual.js +0 -9
  495. package/dist/nodes/virtual.js.map +0 -1
  496. package/dist/nodes/web-view.d.ts +0 -11
  497. package/dist/nodes/web-view.d.ts.map +0 -1
  498. package/dist/nodes/web-view.js +0 -16
  499. package/dist/nodes/web-view.js.map +0 -1
  500. package/dist/nodes/widget.d.ts +0 -26
  501. package/dist/nodes/widget.d.ts.map +0 -1
  502. package/dist/nodes/widget.js +0 -315
  503. package/dist/nodes/widget.js.map +0 -1
  504. package/dist/nodes/window.d.ts +0 -31
  505. package/dist/nodes/window.d.ts.map +0 -1
  506. package/dist/nodes/window.js +0 -122
  507. package/dist/nodes/window.js.map +0 -1
  508. package/dist/portal.d.ts +0 -29
  509. package/dist/portal.d.ts.map +0 -1
  510. package/dist/portal.js +0 -35
  511. package/dist/portal.js.map +0 -1
  512. package/dist/reconciler.d.ts +0 -34
  513. package/dist/reconciler.d.ts.map +0 -1
  514. package/dist/reconciler.js +0 -48
  515. package/dist/reconciler.js.map +0 -1
  516. package/dist/registry.d.ts +0 -18
  517. package/dist/registry.d.ts.map +0 -1
  518. package/dist/registry.js +0 -96
  519. package/dist/registry.js.map +0 -1
  520. package/dist/render.d.ts +0 -117
  521. package/dist/render.d.ts.map +0 -1
  522. package/dist/render.js +0 -159
  523. package/dist/render.js.map +0 -1
  524. package/dist/types.d.ts +0 -5
  525. package/dist/types.d.ts.map +0 -1
  526. package/dist/types.js.map +0 -1
  527. package/src/components/list.tsx +0 -83
  528. package/src/errors.ts +0 -52
  529. package/src/factory.ts +0 -62
  530. package/src/generated/internal.ts +0 -5644
  531. package/src/generated/jsx.ts +0 -19900
  532. package/src/generated/registry.ts +0 -16
  533. package/src/host-config.ts +0 -219
  534. package/src/jsx.ts +0 -1355
  535. package/src/metadata.ts +0 -43
  536. package/src/node.ts +0 -107
  537. package/src/nodes/adjustable.ts +0 -68
  538. package/src/nodes/alert-dialog-response.ts +0 -78
  539. package/src/nodes/animation.ts +0 -402
  540. package/src/nodes/application.ts +0 -61
  541. package/src/nodes/calendar.ts +0 -42
  542. package/src/nodes/color-dialog-button.ts +0 -69
  543. package/src/nodes/column-view-column.ts +0 -189
  544. package/src/nodes/container-slot.ts +0 -87
  545. package/src/nodes/dialog.ts +0 -25
  546. package/src/nodes/drawing-area.ts +0 -62
  547. package/src/nodes/event-controller.ts +0 -100
  548. package/src/nodes/fixed-child.ts +0 -109
  549. package/src/nodes/font-dialog-button.ts +0 -107
  550. package/src/nodes/grid-child.ts +0 -103
  551. package/src/nodes/internal/accessible.ts +0 -155
  552. package/src/nodes/internal/bound-item.ts +0 -4
  553. package/src/nodes/internal/construct.ts +0 -60
  554. package/src/nodes/internal/predicates.ts +0 -80
  555. package/src/nodes/internal/props.ts +0 -51
  556. package/src/nodes/internal/signal-store.ts +0 -141
  557. package/src/nodes/internal/text-buffer-controller.ts +0 -417
  558. package/src/nodes/internal/widget.ts +0 -80
  559. package/src/nodes/level-bar.ts +0 -36
  560. package/src/nodes/list-item-node.ts +0 -29
  561. package/src/nodes/list.ts +0 -1082
  562. package/src/nodes/menu.ts +0 -27
  563. package/src/nodes/models/menu.ts +0 -314
  564. package/src/nodes/navigation-page.ts +0 -154
  565. package/src/nodes/navigation-view.ts +0 -66
  566. package/src/nodes/notebook-page-tab.ts +0 -55
  567. package/src/nodes/notebook-page.ts +0 -189
  568. package/src/nodes/notebook.ts +0 -42
  569. package/src/nodes/overlay-child.ts +0 -109
  570. package/src/nodes/popover-menu.ts +0 -67
  571. package/src/nodes/scale.ts +0 -28
  572. package/src/nodes/scrolled-window.ts +0 -23
  573. package/src/nodes/search-bar.ts +0 -27
  574. package/src/nodes/shortcut.ts +0 -86
  575. package/src/nodes/slot.ts +0 -138
  576. package/src/nodes/source-view.ts +0 -130
  577. package/src/nodes/stack-page.ts +0 -170
  578. package/src/nodes/stack.ts +0 -35
  579. package/src/nodes/text-anchor.ts +0 -79
  580. package/src/nodes/text-content.ts +0 -14
  581. package/src/nodes/text-paintable.ts +0 -51
  582. package/src/nodes/text-segment.ts +0 -55
  583. package/src/nodes/text-tag.ts +0 -293
  584. package/src/nodes/text-view.ts +0 -100
  585. package/src/nodes/toggle-group.ts +0 -27
  586. package/src/nodes/toggle.ts +0 -72
  587. package/src/nodes/virtual.ts +0 -16
  588. package/src/nodes/web-view.ts +0 -22
  589. package/src/nodes/widget.ts +0 -376
  590. package/src/nodes/window.ts +0 -172
  591. package/src/portal.ts +0 -37
  592. package/src/reconciler.ts +0 -52
  593. package/src/registry.ts +0 -117
  594. package/src/render.tsx +0 -192
  595. package/src/types.ts +0 -12
  596. /package/dist/{types.js → reconciler/types.js} +0 -0
@@ -1,61 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import { Node } from "../node.js";
3
- import type { Container, Props } from "../types.js";
4
- import { MenuNode } from "./menu.js";
5
- import { MenuModel } from "./models/menu.js";
6
- import { WindowNode } from "./window.js";
7
-
8
- export class ApplicationNode extends Node<Gtk.Application, Props, Node, Node> {
9
- private menu: MenuModel;
10
-
11
- constructor(typeName: string, props: Props, container: Gtk.Application, rootContainer: Container) {
12
- super(typeName, props, container, rootContainer);
13
- const application = rootContainer instanceof Gtk.Application ? rootContainer : undefined;
14
- this.menu = new MenuModel("root", {}, rootContainer, container, application);
15
- }
16
-
17
- public override isValidChild(): boolean {
18
- return true;
19
- }
20
-
21
- public override appendChild(child: Node): void {
22
- if (child instanceof MenuNode) {
23
- this.menu.appendChild(child);
24
- this.container.setMenubar(this.menu.getMenu());
25
- return;
26
- }
27
-
28
- super.appendChild(child);
29
- }
30
-
31
- public override insertBefore(child: Node, before: Node): void {
32
- if (child instanceof MenuNode) {
33
- if (before instanceof MenuNode) {
34
- this.menu.insertBefore(child, before);
35
- } else {
36
- this.menu.appendChild(child);
37
- }
38
- this.container.setMenubar(this.menu.getMenu());
39
- return;
40
- }
41
-
42
- super.insertBefore(child, before);
43
- }
44
-
45
- public override removeChild(child: Node): void {
46
- if (child instanceof MenuNode) {
47
- this.menu.removeChild(child);
48
-
49
- if (this.menu.getMenu().getNItems() === 0) {
50
- this.container.setMenubar(null);
51
- }
52
- return;
53
- }
54
-
55
- if (child instanceof WindowNode) {
56
- child.container.setVisible(false);
57
- }
58
-
59
- super.removeChild(child);
60
- }
61
- }
@@ -1,42 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import type { GtkCalendarProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import { ContainerSlotNode } from "./container-slot.js";
5
- import { EventControllerNode } from "./event-controller.js";
6
- import { filterProps, primitiveArrayEqual } from "./internal/props.js";
7
- import { SlotNode } from "./slot.js";
8
- import { WidgetNode } from "./widget.js";
9
-
10
- const OWN_PROPS = ["markedDays"] as const;
11
-
12
- type CalendarProps = Pick<GtkCalendarProps, (typeof OWN_PROPS)[number]>;
13
-
14
- type CalendarChild = EventControllerNode | SlotNode | ContainerSlotNode;
15
-
16
- export class CalendarNode extends WidgetNode<Gtk.Calendar, CalendarProps, CalendarChild> {
17
- public override isValidChild(child: Node): boolean {
18
- return child instanceof EventControllerNode || child instanceof SlotNode || child instanceof ContainerSlotNode;
19
- }
20
- private appliedMarks: number[] = [];
21
-
22
- public override commitUpdate(oldProps: CalendarProps | null, newProps: CalendarProps): void {
23
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
24
- this.applyOwnProps(newProps);
25
- }
26
-
27
- private applyOwnProps(newProps: CalendarProps): void {
28
- const newMarkedDays = newProps.markedDays ?? [];
29
-
30
- if (primitiveArrayEqual(this.appliedMarks, newMarkedDays)) {
31
- return;
32
- }
33
-
34
- this.container.clearMarks();
35
-
36
- for (const day of newMarkedDays) {
37
- this.container.markDay(day);
38
- }
39
-
40
- this.appliedMarks = [...newMarkedDays];
41
- }
42
- }
@@ -1,69 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { GtkColorDialogButtonProps } from "../jsx.js";
3
- import type { Container } from "../types.js";
4
- import { filterProps, hasChanged } from "./internal/props.js";
5
- import { WidgetNode } from "./widget.js";
6
-
7
- const OWN_PROPS = ["rgba", "onRgbaChanged", "title", "modal", "withAlpha"] as const;
8
-
9
- type ColorDialogButtonProps = Pick<GtkColorDialogButtonProps, (typeof OWN_PROPS)[number]>;
10
-
11
- export class ColorDialogButtonNode extends WidgetNode<Gtk.ColorDialogButton, ColorDialogButtonProps> {
12
- private dialog: Gtk.ColorDialog;
13
-
14
- public static override createContainer(
15
- _props: ColorDialogButtonProps,
16
- containerClass: typeof Gtk.Widget,
17
- ): Container | null {
18
- const dialog = new Gtk.ColorDialog();
19
- const button = new (containerClass as typeof Gtk.ColorDialogButton)(dialog);
20
- return button;
21
- }
22
-
23
- constructor(
24
- typeName: string,
25
- props: ColorDialogButtonProps,
26
- container: Gtk.ColorDialogButton,
27
- rootContainer: Container,
28
- ) {
29
- super(typeName, props, container, rootContainer);
30
- const dialog = container.getDialog();
31
- if (!dialog) {
32
- throw new Error("ColorDialogButton must have a dialog");
33
- }
34
- this.dialog = dialog;
35
- }
36
-
37
- public override commitUpdate(oldProps: ColorDialogButtonProps | null, newProps: ColorDialogButtonProps): void {
38
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
39
- this.applyOwnProps(oldProps, newProps);
40
- }
41
-
42
- private applyOwnProps(oldProps: ColorDialogButtonProps | null, newProps: ColorDialogButtonProps): void {
43
- if (hasChanged(oldProps, newProps, "title")) {
44
- this.dialog.setTitle(newProps.title ?? "");
45
- }
46
-
47
- if (hasChanged(oldProps, newProps, "modal")) {
48
- this.dialog.setModal(newProps.modal ?? true);
49
- }
50
-
51
- if (hasChanged(oldProps, newProps, "withAlpha")) {
52
- this.dialog.setWithAlpha(newProps.withAlpha ?? true);
53
- }
54
-
55
- if (hasChanged(oldProps, newProps, "rgba") && newProps.rgba) {
56
- this.container.setRgba(newProps.rgba);
57
- }
58
-
59
- if (hasChanged(oldProps, newProps, "onRgbaChanged")) {
60
- const callback = newProps.onRgbaChanged;
61
- this.signalStore.set(
62
- this,
63
- this.container,
64
- "notify::rgba",
65
- callback ? () => callback(this.container.getRgba()) : undefined,
66
- );
67
- }
68
- }
69
- }
@@ -1,189 +0,0 @@
1
- import { getNativeId } from "@gtkx/ffi";
2
- import * as Gio from "@gtkx/ffi/gio";
3
- import type * as GObject from "@gtkx/ffi/gobject";
4
- import * as Gtk from "@gtkx/ffi/gtk";
5
- import type { ColumnViewColumnProps, ListItem } from "../jsx.js";
6
- import type { Node } from "../node.js";
7
- import type { Container } from "../types.js";
8
- import type { BoundItem } from "./internal/bound-item.js";
9
- import { hasChanged } from "./internal/props.js";
10
- import { MenuNode } from "./menu.js";
11
- import { MenuModel } from "./models/menu.js";
12
- import { VirtualNode } from "./virtual.js";
13
- import { WidgetNode } from "./widget.js";
14
-
15
- const UNBOUND_POSITION = -1;
16
-
17
- export class ColumnViewColumnNode extends VirtualNode<ColumnViewColumnProps, WidgetNode, MenuNode> {
18
- private column: Gtk.ColumnViewColumn | null = null;
19
- private columnFactory: Gtk.SignalListItemFactory | null = null;
20
- private containers = new Map<Gtk.ListItem, number>();
21
- private containerKeys = new Map<Gtk.ListItem, string>();
22
- private menu: MenuModel;
23
- private actionGroup: Gio.SimpleActionGroup;
24
-
25
- constructor(typeName: string, props: ColumnViewColumnProps, container: undefined, rootContainer: Container) {
26
- super(typeName, props, container, rootContainer);
27
- this.actionGroup = new Gio.SimpleActionGroup();
28
- this.menu = new MenuModel("root", {}, rootContainer, this.actionGroup);
29
- this.menu.setActionMap(this.actionGroup, props.id);
30
- }
31
-
32
- public override isValidChild(child: Node): boolean {
33
- return child instanceof MenuNode;
34
- }
35
-
36
- public override isValidParent(parent: Node): boolean {
37
- return parent instanceof WidgetNode && parent.container instanceof Gtk.ColumnView;
38
- }
39
-
40
- public override finalizeInitialChildren(props: ColumnViewColumnProps): boolean {
41
- this.setupFactory();
42
- this.setupColumn(props);
43
- this.updateHeaderMenu();
44
- return false;
45
- }
46
-
47
- public override commitUpdate(oldProps: ColumnViewColumnProps | null, newProps: ColumnViewColumnProps): void {
48
- super.commitUpdate(oldProps, newProps);
49
- if (oldProps === null) return;
50
- this.applyColumnProps(oldProps, newProps);
51
- }
52
-
53
- public override appendChild(child: MenuNode): void {
54
- this.menu.appendChild(child);
55
- this.updateHeaderMenu();
56
- }
57
-
58
- public override insertBefore(child: MenuNode, before: MenuNode): void {
59
- this.menu.insertBefore(child, before);
60
- this.updateHeaderMenu();
61
- }
62
-
63
- public override removeChild(child: MenuNode): void {
64
- this.menu.removeChild(child);
65
- this.updateHeaderMenu();
66
- }
67
-
68
- public override detachDeletedInstance(): void {
69
- super.detachDeletedInstance();
70
- }
71
-
72
- public getColumn(): Gtk.ColumnViewColumn {
73
- if (!this.column) throw new Error("ColumnViewColumn not initialized");
74
- return this.column;
75
- }
76
-
77
- public collectBoundItems(flatItems: ListItem[]): BoundItem[] {
78
- const { renderCell } = this.props;
79
- if (!renderCell) return [];
80
-
81
- const items: BoundItem[] = [];
82
-
83
- for (const [container, position] of this.containers) {
84
- if (position === UNBOUND_POSITION) continue;
85
-
86
- const key = this.containerKeys.get(container);
87
- if (!key) continue;
88
-
89
- const item = flatItems[position];
90
- if (!item) continue;
91
- const content = renderCell(item.value);
92
- items.push([content, container, key]);
93
- }
94
-
95
- return items;
96
- }
97
-
98
- public installActionGroup(widget: Gtk.Widget): void {
99
- widget.insertActionGroup(this.props.id, this.actionGroup);
100
- }
101
-
102
- public uninstallActionGroup(widget: Gtk.Widget): void {
103
- widget.insertActionGroup(this.props.id, null);
104
- }
105
-
106
- private setupFactory(): void {
107
- this.columnFactory = new Gtk.SignalListItemFactory();
108
-
109
- this.columnFactory.connect("setup", (_self: GObject.Object, obj: GObject.Object) => {
110
- const listItem = obj as unknown as Gtk.ListItem;
111
- const key = String(getNativeId(listItem.handle));
112
- const placeholder = new Gtk.Box();
113
- const { width, height } = this.getParentEstimatedItemSize();
114
- placeholder.setSizeRequest(width, height);
115
- listItem.setChild(placeholder);
116
- this.containers.set(listItem, UNBOUND_POSITION);
117
- this.containerKeys.set(listItem, key);
118
- });
119
-
120
- this.columnFactory.connect("bind", (_self: GObject.Object, obj: GObject.Object) => {
121
- const listItem = obj as unknown as Gtk.ListItem;
122
- this.containers.set(listItem, listItem.getPosition());
123
- this.scheduleParentUpdate();
124
- });
125
-
126
- this.columnFactory.connect("unbind", (_self: GObject.Object, obj: GObject.Object) => {
127
- const listItem = obj as unknown as Gtk.ListItem;
128
- this.containers.set(listItem, UNBOUND_POSITION);
129
- this.scheduleParentUpdate();
130
- });
131
-
132
- this.columnFactory.connect("teardown", (_self: GObject.Object, obj: GObject.Object) => {
133
- const listItem = obj as unknown as Gtk.ListItem;
134
- this.containers.delete(listItem);
135
- this.containerKeys.delete(listItem);
136
- listItem.setChild(null);
137
- });
138
- }
139
-
140
- private setupColumn(props: ColumnViewColumnProps): void {
141
- this.column = new Gtk.ColumnViewColumn(props.title, this.columnFactory);
142
- this.column.setId(props.id);
143
-
144
- if (props.expand !== undefined) this.column.setExpand(props.expand);
145
- if (props.resizable !== undefined) this.column.setResizable(props.resizable);
146
- if (props.fixedWidth !== undefined) this.column.setFixedWidth(props.fixedWidth);
147
- if (props.visible !== undefined) this.column.setVisible(props.visible);
148
- if (props.sortable) this.column.setSorter(new Gtk.Sorter());
149
- }
150
-
151
- private applyColumnProps(oldProps: ColumnViewColumnProps, newProps: ColumnViewColumnProps): void {
152
- if (!this.column) return;
153
-
154
- if (hasChanged(oldProps, newProps, "title")) this.column.setTitle(newProps.title);
155
- if (hasChanged(oldProps, newProps, "expand")) this.column.setExpand(newProps.expand ?? false);
156
- if (hasChanged(oldProps, newProps, "resizable")) this.column.setResizable(newProps.resizable ?? false);
157
- if (hasChanged(oldProps, newProps, "fixedWidth")) this.column.setFixedWidth(newProps.fixedWidth ?? -1);
158
- if (hasChanged(oldProps, newProps, "visible")) this.column.setVisible(newProps.visible ?? true);
159
- if (hasChanged(oldProps, newProps, "sortable")) {
160
- this.column.setSorter(newProps.sortable ? new Gtk.Sorter() : null);
161
- }
162
- if (hasChanged(oldProps, newProps, "renderCell")) this.scheduleParentUpdate();
163
- }
164
-
165
- private updateHeaderMenu(): void {
166
- if (!this.column) return;
167
- const menu = this.menu.getMenu();
168
- this.column.setHeaderMenu(menu.getNItems() > 0 ? menu : null);
169
- }
170
-
171
- private getParentEstimatedItemSize(): { width: number; height: number } {
172
- if (this.parent && "getEstimatedItemSize" in this.parent) {
173
- return (
174
- this.parent as { getEstimatedItemSize(): { width: number; height: number } }
175
- ).getEstimatedItemSize();
176
- }
177
- return { width: -1, height: -1 };
178
- }
179
-
180
- private scheduleParentUpdate(): void {
181
- if (
182
- this.parent &&
183
- "scheduleBoundItemsUpdate" in this.parent &&
184
- typeof this.parent.scheduleBoundItemsUpdate === "function"
185
- ) {
186
- (this.parent as { scheduleBoundItemsUpdate(): void }).scheduleBoundItemsUpdate();
187
- }
188
- }
189
- }
@@ -1,87 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import type { ContainerSlotProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import { isRemovable } from "./internal/predicates.js";
5
- import { VirtualNode } from "./virtual.js";
6
- import { WidgetNode } from "./widget.js";
7
-
8
- export class ContainerSlotNode extends VirtualNode<ContainerSlotProps, WidgetNode, WidgetNode> {
9
- public override isValidChild(child: Node): boolean {
10
- return child instanceof WidgetNode;
11
- }
12
-
13
- public override isValidParent(parent: Node): boolean {
14
- return parent instanceof WidgetNode;
15
- }
16
-
17
- public override setParent(parent: WidgetNode | null): void {
18
- if (!parent && this.parent) {
19
- this.detachAllChildren(this.parent.container);
20
- }
21
-
22
- super.setParent(parent);
23
-
24
- if (parent) {
25
- for (const child of this.children) {
26
- this.attachToParent(parent.container, child.container);
27
- }
28
- }
29
- }
30
-
31
- public override appendChild(child: WidgetNode): void {
32
- super.appendChild(child);
33
-
34
- if (this.parent) {
35
- this.attachToParent(this.parent.container, child.container);
36
- }
37
- }
38
-
39
- public override insertBefore(child: WidgetNode, before: WidgetNode): void {
40
- super.insertBefore(child, before);
41
-
42
- if (this.parent) {
43
- this.attachToParent(this.parent.container, child.container);
44
- }
45
- }
46
-
47
- public override removeChild(child: WidgetNode): void {
48
- if (this.parent && isRemovable(this.parent.container)) {
49
- const widget = child.container;
50
- const currentParent = widget.getParent();
51
- if (currentParent && currentParent === this.parent.container) {
52
- this.parent.container.remove(widget);
53
- }
54
- }
55
-
56
- super.removeChild(child);
57
- }
58
-
59
- public override detachDeletedInstance(): void {
60
- if (this.parent) {
61
- this.detachAllChildren(this.parent.container);
62
- }
63
- super.detachDeletedInstance();
64
- }
65
-
66
- private attachToParent(parent: Gtk.Widget, child: Gtk.Widget): void {
67
- const methodName = this.props.id;
68
- const method = parent[methodName as keyof Gtk.Widget];
69
-
70
- if (typeof method !== "function") {
71
- throw new Error(`Method '${methodName}' not found on '${parent.constructor.name}'`);
72
- }
73
-
74
- (method as (child: Gtk.Widget) => void).call(parent, child);
75
- }
76
-
77
- private detachAllChildren(parent: Gtk.Widget): void {
78
- if (!isRemovable(parent)) return;
79
-
80
- for (const child of this.children) {
81
- const currentParent = child.container.getParent();
82
- if (currentParent && currentParent === parent) {
83
- parent.remove(child.container);
84
- }
85
- }
86
- }
87
- }
@@ -1,25 +0,0 @@
1
- import type * as Adw from "@gtkx/ffi/adw";
2
- import type { Props } from "../types.js";
3
- import { WidgetNode } from "./widget.js";
4
- import { WindowNode } from "./window.js";
5
-
6
- export class DialogNode extends WidgetNode<Adw.Dialog> {
7
- protected override shouldAttachToParent(): boolean {
8
- return false;
9
- }
10
-
11
- public override finalizeInitialChildren(props: Props): boolean {
12
- this.commitUpdate(null, props);
13
- return true;
14
- }
15
-
16
- public override commitMount(): void {
17
- const parent = this.parent instanceof WindowNode ? this.parent.container : undefined;
18
- this.container.present(parent);
19
- }
20
-
21
- public override detachDeletedInstance(): void {
22
- this.container.forceClose();
23
- super.detachDeletedInstance();
24
- }
25
- }
@@ -1,62 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import type { GtkDrawingAreaProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import { ContainerSlotNode } from "./container-slot.js";
5
- import { EventControllerNode } from "./event-controller.js";
6
- import { filterProps, hasChanged } from "./internal/props.js";
7
- import { SlotNode } from "./slot.js";
8
- import { WidgetNode } from "./widget.js";
9
-
10
- const OWN_PROPS = ["onDraw"] as const;
11
-
12
- type DrawFunc = (cr: import("@gtkx/ffi/cairo").Context, width: number, height: number, self: Gtk.DrawingArea) => void;
13
- type DrawingAreaProps = Pick<GtkDrawingAreaProps, (typeof OWN_PROPS)[number]>;
14
-
15
- type PendingDrawFuncEntry = { container: Gtk.DrawingArea; fn: DrawFunc };
16
-
17
- const pendingDrawFuncs: PendingDrawFuncEntry[] = [];
18
-
19
- function wrapDrawFunc(
20
- fn: DrawFunc,
21
- ): (self: Gtk.DrawingArea, cr: import("@gtkx/ffi/cairo").Context, width: number, height: number) => void {
22
- return (self, cr, width, height) => fn(cr, width, height, self);
23
- }
24
-
25
- function ensurePendingBatch(): PendingDrawFuncEntry[] {
26
- if (pendingDrawFuncs.length === 0) {
27
- queueMicrotask(flushPendingDrawFuncs);
28
- }
29
-
30
- return pendingDrawFuncs;
31
- }
32
-
33
- function flushPendingDrawFuncs(): void {
34
- const batch = pendingDrawFuncs.splice(0);
35
-
36
- for (const { container, fn } of batch) {
37
- container.setDrawFunc(wrapDrawFunc(fn));
38
- }
39
- }
40
-
41
- type DrawingAreaChild = EventControllerNode | SlotNode | ContainerSlotNode;
42
-
43
- export class DrawingAreaNode extends WidgetNode<Gtk.DrawingArea, DrawingAreaProps, DrawingAreaChild> {
44
- public override isValidChild(child: Node): boolean {
45
- return child instanceof EventControllerNode || child instanceof SlotNode || child instanceof ContainerSlotNode;
46
- }
47
-
48
- public override commitUpdate(oldProps: DrawingAreaProps | null, newProps: DrawingAreaProps): void {
49
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
50
- this.applyOwnProps(oldProps, newProps);
51
- }
52
-
53
- private applyOwnProps(oldProps: DrawingAreaProps | null, newProps: DrawingAreaProps): void {
54
- if (hasChanged(oldProps, newProps, "onDraw")) {
55
- if (this.container.getAllocatedWidth() > 0) {
56
- this.container.setDrawFunc(newProps.onDraw ? wrapDrawFunc(newProps.onDraw) : null);
57
- } else if (newProps.onDraw) {
58
- ensurePendingBatch().push({ container: this.container, fn: newProps.onDraw });
59
- }
60
- }
61
- }
62
- }
@@ -1,100 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import { isConstructOnlyProp, resolvePropMeta, resolveSignal } from "../metadata.js";
3
- import { Node } from "../node.js";
4
- import type { Props } from "../types.js";
5
- import { createContainerWithProperties } from "./internal/construct.js";
6
- import type { SignalHandler } from "./internal/signal-store.js";
7
- import { WidgetNode } from "./widget.js";
8
-
9
- const G_TYPE_INVALID = 0;
10
-
11
- export class EventControllerNode<
12
- T extends Gtk.EventController = Gtk.EventController,
13
- // biome-ignore lint/suspicious/noExplicitAny: Self-referential type bounds require any
14
- TChild extends Node = any,
15
- > extends Node<T, Props, WidgetNode, TChild> {
16
- public static override createContainer(
17
- props: Props,
18
- containerClass: typeof Gtk.EventController,
19
- ): Gtk.EventController {
20
- if (containerClass.glibTypeName === "GtkDropTarget") {
21
- const actions = (props.actions as number | undefined) ?? 0;
22
- return new Gtk.DropTarget(G_TYPE_INVALID, actions);
23
- }
24
-
25
- return createContainerWithProperties(containerClass, props) as Gtk.EventController;
26
- }
27
-
28
- public override isValidChild(child: Node): boolean {
29
- return this.container instanceof Gtk.ShortcutController && child.typeName === "Shortcut";
30
- }
31
-
32
- public override isValidParent(parent: Node): boolean {
33
- return parent instanceof WidgetNode;
34
- }
35
-
36
- public override setParent(parent: WidgetNode | null): void {
37
- if (!parent && this.parent) {
38
- this.parent.container.removeController(this.container);
39
- }
40
-
41
- super.setParent(parent);
42
-
43
- if (parent) {
44
- parent.container.addController(this.container);
45
- }
46
- }
47
-
48
- public override commitUpdate(oldProps: Props | null, newProps: Props): void {
49
- super.commitUpdate(oldProps, newProps);
50
- this.applyOwnProps(oldProps, newProps);
51
- }
52
-
53
- public override detachDeletedInstance(): void {
54
- if (this.parent && this.container.getWidget() === this.parent.container) {
55
- this.parent.container.removeController(this.container);
56
- }
57
- super.detachDeletedInstance();
58
- }
59
-
60
- private applyOwnProps(oldProps: Props | null, newProps: Props): void {
61
- const propNames = new Set([...Object.keys(oldProps ?? {}), ...Object.keys(newProps ?? {})]);
62
-
63
- for (const name of propNames) {
64
- if (name === "children") continue;
65
- if (isConstructOnlyProp(this.container, name)) continue;
66
-
67
- const oldValue = oldProps?.[name];
68
- const newValue = newProps[name];
69
-
70
- if (oldValue === newValue) continue;
71
-
72
- const signalName = resolveSignal(this.container, name);
73
-
74
- if (signalName) {
75
- const handler = typeof newValue === "function" ? (newValue as SignalHandler) : undefined;
76
- this.signalStore.set(this, this.container, signalName, handler, { blockable: false });
77
- } else if (newValue !== undefined) {
78
- this.setProperty(name, newValue);
79
- }
80
- }
81
- }
82
-
83
- private setProperty(name: string, value: unknown): void {
84
- if (name === "types" && this.container instanceof Gtk.DropTarget) {
85
- const types = value as number[];
86
- this.container.setGtypes(types.length, types);
87
- return;
88
- }
89
-
90
- const propMeta = resolvePropMeta(this.container, name);
91
-
92
- if (propMeta) {
93
- const [, setterName] = propMeta;
94
- const setterFn = (this.container as unknown as Record<string, (v: unknown) => void>)[setterName];
95
- if (typeof setterFn === "function") {
96
- setterFn.call(this.container, value);
97
- }
98
- }
99
- }
100
- }