@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
package/src/nodes/slot.ts DELETED
@@ -1,138 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import { toCamelCase } from "@gtkx/gir";
3
- import type { SlotProps } from "../jsx.js";
4
- import type { Node } from "../node.js";
5
- import type { ContainerClass, Props } from "../types.js";
6
- import { getFocusWidget, isDescendantOf, resolvePropertySetter } from "./internal/widget.js";
7
- import { VirtualNode } from "./virtual.js";
8
- import { WidgetNode } from "./widget.js";
9
-
10
- export class SlotNode<P extends Props = SlotProps, TChild extends Node = WidgetNode> extends VirtualNode<
11
- P,
12
- WidgetNode,
13
- TChild
14
- > {
15
- private cachedSetter: ((child: Gtk.Widget | null) => void) | null = null;
16
- private detachedParentWidget: Gtk.Widget | null = null;
17
-
18
- public override isValidChild(child: Node): boolean {
19
- return child instanceof WidgetNode;
20
- }
21
-
22
- public override isValidParent(parent: Node): boolean {
23
- return parent instanceof WidgetNode;
24
- }
25
-
26
- public override setParent(parent: WidgetNode | null): void {
27
- const previousParent = this.parent;
28
- if (previousParent !== parent) {
29
- this.cachedSetter = null;
30
- }
31
-
32
- if (!parent && previousParent) {
33
- this.detachedParentWidget = previousParent.container;
34
- }
35
-
36
- super.setParent(parent);
37
-
38
- if (parent && this.children[0]) {
39
- this.onChildChange(null);
40
- }
41
- }
42
-
43
- public override appendChild(child: TChild): void {
44
- const firstChild = this.children[0];
45
- const oldChildWidget = firstChild instanceof WidgetNode ? firstChild.container : null;
46
-
47
- super.appendChild(child);
48
-
49
- if (this.parent) {
50
- this.onChildChange(oldChildWidget);
51
- }
52
- }
53
-
54
- public override removeChild(child: TChild): void {
55
- const oldChildWidget = child instanceof WidgetNode ? child.container : null;
56
-
57
- super.removeChild(child);
58
-
59
- if (this.parent && oldChildWidget) {
60
- this.onChildChange(oldChildWidget);
61
- }
62
- }
63
-
64
- public override detachDeletedInstance(): void {
65
- const parentWidget = this.detachedParentWidget;
66
-
67
- if (parentWidget && this.children[0]) {
68
- if (parentWidget.getRoot() !== null) {
69
- this.cachedSetter = null;
70
- const setter = this.resolveChildSetter(parentWidget);
71
- if (setter) {
72
- const oldChild = this.children[0].container;
73
- const focus = getFocusWidget(oldChild);
74
- if (focus && isDescendantOf(focus, oldChild)) {
75
- parentWidget.grabFocus();
76
- }
77
- setter(null);
78
- }
79
- }
80
- this.detachedParentWidget = null;
81
- }
82
-
83
- super.detachDeletedInstance();
84
- }
85
-
86
- private getId(): string {
87
- const id = (this.props as SlotProps).id;
88
-
89
- if (!id) {
90
- throw new Error("Expected 'id' prop to be present on Slot");
91
- }
92
-
93
- return toCamelCase(id);
94
- }
95
-
96
- private getParentWidget(): Gtk.Widget {
97
- if (!this.parent) {
98
- throw new Error(`Expected parent widget to be set on '${this.getId()}' SlotNode`);
99
- }
100
-
101
- return this.parent.container;
102
- }
103
-
104
- private ensureChildSetter(): (child: Gtk.Widget | null) => void {
105
- if (this.cachedSetter) return this.cachedSetter;
106
-
107
- const parent = this.getParentWidget();
108
- const setter = this.resolveChildSetter(parent);
109
-
110
- if (!setter) {
111
- const parentType = (parent.constructor as ContainerClass).glibTypeName;
112
- throw new Error(`Unable to find property for Slot '${this.getId()}' on type '${parentType}'`);
113
- }
114
-
115
- this.cachedSetter = setter;
116
- return this.cachedSetter;
117
- }
118
-
119
- private onChildChange(oldChild: Gtk.Widget | null): void {
120
- const setter = this.ensureChildSetter();
121
- const childWidget = this.children[0]?.container ?? null;
122
-
123
- if (oldChild && !childWidget) {
124
- const parent = this.getParentWidget();
125
- const focus = getFocusWidget(oldChild);
126
-
127
- if (focus && isDescendantOf(focus, oldChild)) {
128
- parent.grabFocus();
129
- }
130
- }
131
-
132
- setter(childWidget);
133
- }
134
-
135
- private resolveChildSetter(parent: Gtk.Widget): ((child: Gtk.Widget | null) => void) | null {
136
- return resolvePropertySetter(parent, this.getId());
137
- }
138
- }
@@ -1,130 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import * as GtkSource from "@gtkx/ffi/gtksource";
3
- import type { GtkSourceViewProps } from "../jsx.js";
4
- import { filterProps, hasChanged } from "./internal/props.js";
5
- import { TextBufferController } from "./internal/text-buffer-controller.js";
6
- import { TextViewNode } from "./text-view.js";
7
-
8
- const OWN_PROPS = [
9
- "language",
10
- "styleScheme",
11
- "highlightSyntax",
12
- "highlightMatchingBrackets",
13
- "implicitTrailingNewline",
14
- "onCursorMoved",
15
- "onHighlightUpdated",
16
- ] as const;
17
-
18
- type SourceViewProps = Pick<
19
- GtkSourceViewProps,
20
- | "enableUndo"
21
- | "onBufferChanged"
22
- | "onTextInserted"
23
- | "onTextDeleted"
24
- | "onCanUndoChanged"
25
- | "onCanRedoChanged"
26
- | (typeof OWN_PROPS)[number]
27
- >;
28
-
29
- export class SourceViewNode extends TextViewNode {
30
- protected override createBufferController(): TextBufferController<GtkSource.Buffer> {
31
- return new TextBufferController<GtkSource.Buffer>(this, this.container, () => new GtkSource.Buffer());
32
- }
33
-
34
- protected override ensureBufferController(): TextBufferController<GtkSource.Buffer> {
35
- return super.ensureBufferController() as TextBufferController<GtkSource.Buffer>;
36
- }
37
-
38
- public override commitUpdate(oldProps: SourceViewProps | null, newProps: SourceViewProps): void {
39
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
40
- this.applyOwnProps(oldProps, newProps);
41
- }
42
-
43
- private resolveLanguage(language: string | GtkSource.Language): GtkSource.Language | null {
44
- if (typeof language === "string") {
45
- const langManager = GtkSource.LanguageManager.getDefault();
46
- return langManager.getLanguage(language);
47
- }
48
- return language;
49
- }
50
-
51
- private resolveStyleScheme(scheme: string | GtkSource.StyleScheme): GtkSource.StyleScheme | null {
52
- if (typeof scheme === "string") {
53
- const schemeManager = GtkSource.StyleSchemeManager.getDefault();
54
- return schemeManager.getScheme(scheme);
55
- }
56
- return scheme;
57
- }
58
-
59
- private applyOwnProps(oldProps: SourceViewProps | null, newProps: SourceViewProps): void {
60
- if (hasChanged(oldProps, newProps, "onCursorMoved") || hasChanged(oldProps, newProps, "onHighlightUpdated")) {
61
- this.applySignalProps(newProps);
62
- }
63
-
64
- this.applyBufferProps(oldProps, newProps);
65
- }
66
-
67
- private applyBufferProps(oldProps: SourceViewProps | null, newProps: SourceViewProps): void {
68
- const languageChanged = hasChanged(oldProps, newProps, "language");
69
- const styleSchemeChanged = hasChanged(oldProps, newProps, "styleScheme");
70
- const highlightSyntaxChanged = hasChanged(oldProps, newProps, "highlightSyntax");
71
- const highlightBracketsChanged = hasChanged(oldProps, newProps, "highlightMatchingBrackets");
72
- const trailingNewlineChanged = hasChanged(oldProps, newProps, "implicitTrailingNewline");
73
-
74
- if (
75
- !languageChanged &&
76
- !styleSchemeChanged &&
77
- !highlightSyntaxChanged &&
78
- !highlightBracketsChanged &&
79
- !trailingNewlineChanged
80
- ) {
81
- return;
82
- }
83
-
84
- const buffer = this.ensureBufferController().ensureBuffer();
85
-
86
- if (languageChanged) {
87
- if (newProps.language !== undefined) {
88
- buffer.setLanguage(this.resolveLanguage(newProps.language));
89
- } else if (oldProps?.language !== undefined) {
90
- buffer.setLanguage(null);
91
- }
92
- }
93
-
94
- if (styleSchemeChanged) {
95
- if (newProps.styleScheme !== undefined) {
96
- buffer.setStyleScheme(this.resolveStyleScheme(newProps.styleScheme));
97
- } else if (oldProps?.styleScheme !== undefined) {
98
- buffer.setStyleScheme(null);
99
- }
100
- }
101
-
102
- if (highlightSyntaxChanged || languageChanged) {
103
- buffer.setHighlightSyntax(newProps.highlightSyntax ?? newProps.language !== undefined);
104
- }
105
-
106
- if (highlightBracketsChanged) {
107
- buffer.setHighlightMatchingBrackets(newProps.highlightMatchingBrackets ?? true);
108
- }
109
-
110
- if (trailingNewlineChanged && newProps.implicitTrailingNewline !== undefined) {
111
- buffer.setImplicitTrailingNewline(newProps.implicitTrailingNewline);
112
- }
113
- }
114
-
115
- private applySignalProps(props: SourceViewProps): void {
116
- const buffer = this.ensureBufferController().getBuffer();
117
- if (!buffer) return;
118
-
119
- const { onCursorMoved, onHighlightUpdated } = props;
120
-
121
- this.signalStore.set(this, buffer, "cursor-moved", onCursorMoved);
122
-
123
- this.signalStore.set(
124
- this,
125
- buffer,
126
- "highlight-updated",
127
- onHighlightUpdated ? (start: Gtk.TextIter, end: Gtk.TextIter) => onHighlightUpdated(start, end) : undefined,
128
- );
129
- }
130
- }
@@ -1,170 +0,0 @@
1
- import * as Adw from "@gtkx/ffi/adw";
2
- import * as Gtk from "@gtkx/ffi/gtk";
3
- import type { StackPageProps } from "../jsx.js";
4
- import type { Node } from "../node.js";
5
- import type { StackWidget } from "../registry.js";
6
- import { hasChanged } from "./internal/props.js";
7
- import { VirtualNode } from "./virtual.js";
8
- import { WidgetNode } from "./widget.js";
9
-
10
- export class StackPageNode extends VirtualNode<StackPageProps, WidgetNode<StackWidget>, WidgetNode> {
11
- private page: Gtk.StackPage | Adw.ViewStackPage | null = null;
12
-
13
- public override isValidChild(child: Node): boolean {
14
- return child instanceof WidgetNode;
15
- }
16
-
17
- public override isValidParent(parent: Node): boolean {
18
- return (
19
- parent instanceof WidgetNode &&
20
- (parent.container instanceof Gtk.Stack || parent.container instanceof Adw.ViewStack)
21
- );
22
- }
23
-
24
- public override setParent(parent: WidgetNode<StackWidget> | null): void {
25
- const previousParent = this.parent;
26
-
27
- if (previousParent && !parent) {
28
- const childWidget = this.children[0]?.container ?? null;
29
- if (childWidget) {
30
- this.removePage(childWidget);
31
- }
32
- this.page = null;
33
- }
34
-
35
- super.setParent(parent);
36
-
37
- if (parent && this.children[0]) {
38
- this.onChildChange(null);
39
- }
40
- }
41
-
42
- public override appendChild(child: WidgetNode): void {
43
- const oldChildWidget = this.children[0]?.container ?? null;
44
- super.appendChild(child);
45
-
46
- if (this.parent) {
47
- this.onChildChange(oldChildWidget);
48
- }
49
- }
50
-
51
- public override removeChild(child: WidgetNode): void {
52
- const oldChildWidget = child.container;
53
- super.removeChild(child);
54
-
55
- if (this.parent && oldChildWidget) {
56
- this.onChildChange(oldChildWidget);
57
- }
58
- }
59
-
60
- public override commitUpdate(oldProps: StackPageProps | null, newProps: StackPageProps): void {
61
- super.commitUpdate(oldProps, newProps);
62
- this.applyOwnProps(oldProps, newProps);
63
- }
64
-
65
- public override detachDeletedInstance(): void {
66
- const childWidget = this.children[0]?.container ?? null;
67
- if (childWidget && this.parent) {
68
- this.removePage(childWidget);
69
- }
70
- this.page = null;
71
- super.detachDeletedInstance();
72
- }
73
-
74
- private getChildWidget(): Gtk.Widget {
75
- const child = this.children[0];
76
- if (!child) {
77
- throw new Error("Expected child widget to be set on StackPageNode");
78
- }
79
- return child.container;
80
- }
81
-
82
- private getParentWidget(): StackWidget {
83
- if (!this.parent) {
84
- throw new Error("Expected parent widget to be set on StackPageNode");
85
- }
86
- return this.parent.container;
87
- }
88
-
89
- private applyOwnProps(oldProps: StackPageProps | null, newProps: StackPageProps): void {
90
- if (!this.page) {
91
- return;
92
- }
93
-
94
- if (hasChanged(oldProps, newProps, "title") && newProps.title !== undefined) {
95
- this.page.setTitle(newProps.title);
96
- }
97
-
98
- if (hasChanged(oldProps, newProps, "iconName") && newProps.iconName !== undefined) {
99
- this.page.setIconName(newProps.iconName);
100
- }
101
-
102
- if (hasChanged(oldProps, newProps, "needsAttention")) {
103
- this.page.setNeedsAttention(newProps.needsAttention ?? false);
104
- }
105
-
106
- if (hasChanged(oldProps, newProps, "visible")) {
107
- this.page.setVisible(newProps.visible ?? true);
108
- }
109
-
110
- if (hasChanged(oldProps, newProps, "useUnderline")) {
111
- this.page.setUseUnderline(newProps.useUnderline ?? false);
112
- }
113
-
114
- if ("setBadgeNumber" in this.page && hasChanged(oldProps, newProps, "badgeNumber")) {
115
- this.page.setBadgeNumber?.(newProps.badgeNumber ?? 0);
116
- }
117
- }
118
-
119
- private onChildChange(oldChild: Gtk.Widget | null): void {
120
- this.removePage(oldChild);
121
-
122
- if (this.children[0]) {
123
- this.addPage();
124
- }
125
- }
126
-
127
- private addPage(): void {
128
- const child = this.getChildWidget();
129
- const parent = this.getParentWidget();
130
-
131
- let page: Gtk.StackPage | Adw.ViewStackPage;
132
-
133
- if (parent instanceof Adw.ViewStack) {
134
- if (this.props.title && this.props.iconName) {
135
- page = parent.addTitledWithIcon(child, this.props.title, this.props.iconName, this.props.id);
136
- } else if (this.props.title) {
137
- page = parent.addTitled(child, this.props.title, this.props.id);
138
- } else if (this.props.id) {
139
- page = parent.addNamed(child, this.props.id);
140
- } else {
141
- page = parent.add(child);
142
- }
143
- } else {
144
- if (this.props.title) {
145
- page = parent.addTitled(child, this.props.title, this.props.id);
146
- } else if (this.props.id) {
147
- page = parent.addNamed(child, this.props.id);
148
- } else {
149
- page = parent.addChild(child);
150
- }
151
- }
152
-
153
- this.page = page;
154
- this.commitUpdate(null, this.props);
155
- }
156
-
157
- private removePage(oldChild: Gtk.Widget | null): void {
158
- const parent = this.getParentWidget();
159
-
160
- if (!oldChild) {
161
- return;
162
- }
163
-
164
- const currentParent = oldChild.getParent();
165
-
166
- if (currentParent && currentParent === parent) {
167
- parent.remove(oldChild);
168
- }
169
- }
170
- }
@@ -1,35 +0,0 @@
1
- import type { AdwViewStackProps, GtkStackProps } from "../jsx.js";
2
- import type { StackWidget } from "../registry.js";
3
- import { filterProps, hasChanged } from "./internal/props.js";
4
- import { WidgetNode } from "./widget.js";
5
-
6
- const OWN_PROPS = ["page", "onPageChanged"] as const;
7
-
8
- type StackProps = Omit<Pick<GtkStackProps | AdwViewStackProps, (typeof OWN_PROPS)[number]>, "onPageChanged"> & {
9
- onPageChanged?: ((page: string | null, self: StackWidget) => void) | null;
10
- };
11
-
12
- export class StackNode extends WidgetNode<StackWidget, StackProps> {
13
- public override commitUpdate(oldProps: StackProps | null, newProps: StackProps): void {
14
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
15
- this.applyOwnProps(oldProps, newProps);
16
- }
17
-
18
- private applyOwnProps(oldProps: StackProps | null, newProps: StackProps): void {
19
- if (newProps.page && this.container.getVisibleChildName() !== newProps.page) {
20
- if (this.container.getChildByName(newProps.page)) {
21
- this.container.setVisibleChildName(newProps.page);
22
- }
23
- }
24
-
25
- if (hasChanged(oldProps, newProps, "onPageChanged")) {
26
- const { onPageChanged } = newProps;
27
- this.signalStore.set(
28
- this,
29
- this.container,
30
- "notify::visible-child-name",
31
- onPageChanged ? (self: StackWidget) => onPageChanged(self.getVisibleChildName(), self) : undefined,
32
- );
33
- }
34
- }
35
- }
@@ -1,79 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { TextAnchorProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import { TEXT_OBJECT_REPLACEMENT, type TextContentParent } from "./text-content.js";
5
- import { isTextContentParent } from "./text-segment.js";
6
- import { VirtualNode } from "./virtual.js";
7
- import { WidgetNode } from "./widget.js";
8
-
9
- export class TextAnchorNode extends VirtualNode<TextAnchorProps, Node & TextContentParent, WidgetNode> {
10
- private textView: Gtk.TextView | null = null;
11
- private buffer: Gtk.TextBuffer | null = null;
12
- private anchor: Gtk.TextChildAnchor | null = null;
13
-
14
- private bufferOffset = 0;
15
-
16
- public getBufferOffset(): number {
17
- return this.bufferOffset;
18
- }
19
-
20
- public setBufferOffset(offset: number): void {
21
- this.bufferOffset = offset;
22
- }
23
-
24
- public override isValidChild(child: Node): boolean {
25
- return child instanceof WidgetNode;
26
- }
27
-
28
- public override isValidParent(parent: Node): boolean {
29
- return isTextContentParent(parent);
30
- }
31
-
32
- public getLength(): number {
33
- return 1;
34
- }
35
-
36
- public getText(): string {
37
- return TEXT_OBJECT_REPLACEMENT;
38
- }
39
-
40
- public setTextViewAndBuffer(textView: Gtk.TextView, buffer: Gtk.TextBuffer): void {
41
- this.textView = textView;
42
- this.buffer = buffer;
43
- this.setupAnchor();
44
- }
45
-
46
- private setupAnchor(): void {
47
- if (!this.textView || !this.buffer) return;
48
-
49
- const iter = new Gtk.TextIter();
50
- this.buffer.getIterAtOffset(iter, this.bufferOffset);
51
-
52
- if (this.props.replacementChar) {
53
- this.anchor = Gtk.TextChildAnchor.newWithReplacement(this.props.replacementChar);
54
- this.buffer.insertChildAnchor(iter, this.anchor);
55
- } else {
56
- this.anchor = this.buffer.createChildAnchor(iter);
57
- }
58
-
59
- const widgetChild = this.children[0];
60
- if (widgetChild?.container && this.anchor) {
61
- this.textView.addChildAtAnchor(widgetChild.container, this.anchor);
62
- }
63
- }
64
-
65
- public override appendChild(child: WidgetNode): void {
66
- super.appendChild(child);
67
-
68
- if (this.textView && this.anchor && child.container) {
69
- this.textView.addChildAtAnchor(child.container, this.anchor);
70
- }
71
- }
72
-
73
- public override detachDeletedInstance(): void {
74
- this.anchor = null;
75
- this.buffer = null;
76
- this.textView = null;
77
- super.detachDeletedInstance();
78
- }
79
- }
@@ -1,14 +0,0 @@
1
- import type { TextAnchorNode } from "./text-anchor.js";
2
- import type { TextPaintableNode } from "./text-paintable.js";
3
- import type { TextSegmentNode } from "./text-segment.js";
4
- import type { TextTagNode } from "./text-tag.js";
5
-
6
- export const TEXT_OBJECT_REPLACEMENT = "\uFFFC";
7
-
8
- export type TextContentChild = TextSegmentNode | TextTagNode | TextAnchorNode | TextPaintableNode;
9
-
10
- export type TextContentParent = {
11
- onChildInserted(child: TextContentChild): void;
12
- onChildRemoved(child: TextContentChild): void;
13
- onChildTextChanged(child: TextSegmentNode, oldLength: number, newLength: number): void;
14
- };
@@ -1,51 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { TextPaintableProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import { TEXT_OBJECT_REPLACEMENT, type TextContentParent } from "./text-content.js";
5
- import { isTextContentParent } from "./text-segment.js";
6
- import { VirtualNode } from "./virtual.js";
7
-
8
- export class TextPaintableNode extends VirtualNode<TextPaintableProps, Node & TextContentParent, never> {
9
- public override isValidChild(_child: Node): boolean {
10
- return false;
11
- }
12
-
13
- public override isValidParent(parent: Node): boolean {
14
- return isTextContentParent(parent);
15
- }
16
- private buffer: Gtk.TextBuffer | null = null;
17
- private bufferOffset = 0;
18
-
19
- public getBufferOffset(): number {
20
- return this.bufferOffset;
21
- }
22
-
23
- public setBufferOffset(offset: number): void {
24
- this.bufferOffset = offset;
25
- }
26
-
27
- public getLength(): number {
28
- return 1;
29
- }
30
-
31
- public getText(): string {
32
- return TEXT_OBJECT_REPLACEMENT;
33
- }
34
-
35
- public setTextViewAndBuffer(_textView: Gtk.TextView, buffer: Gtk.TextBuffer): void {
36
- this.buffer = buffer;
37
- this.insertPaintable();
38
- }
39
-
40
- private insertPaintable(): void {
41
- if (!this.buffer || !this.props.paintable) return;
42
- const iter = new Gtk.TextIter();
43
- this.buffer.getIterAtOffset(iter, this.bufferOffset);
44
- this.buffer.insertPaintable(iter, this.props.paintable);
45
- }
46
-
47
- public override detachDeletedInstance(): void {
48
- this.buffer = null;
49
- super.detachDeletedInstance();
50
- }
51
- }
@@ -1,55 +0,0 @@
1
- import type { TextSegmentProps } from "../jsx.js";
2
- import type { Node } from "../node.js";
3
- import { hasChanged } from "./internal/props.js";
4
- import type { TextContentParent } from "./text-content.js";
5
- import { VirtualNode } from "./virtual.js";
6
-
7
- type TextSegmentParent = Node & TextContentParent;
8
-
9
- export class TextSegmentNode extends VirtualNode<TextSegmentProps, TextSegmentParent, never> {
10
- private bufferOffset = 0;
11
-
12
- public getBufferOffset(): number {
13
- return this.bufferOffset;
14
- }
15
-
16
- public setBufferOffset(offset: number): void {
17
- this.bufferOffset = offset;
18
- }
19
-
20
- public override isValidChild(_child: Node): boolean {
21
- return false;
22
- }
23
-
24
- public override isValidParent(parent: Node): boolean {
25
- return isTextContentParent(parent);
26
- }
27
-
28
- public getText(): string {
29
- return this.props.text;
30
- }
31
-
32
- public getLength(): number {
33
- return this.props.text.length;
34
- }
35
-
36
- public override commitUpdate(oldProps: TextSegmentProps | null, newProps: TextSegmentProps): void {
37
- const oldText = oldProps?.text ?? "";
38
- const newText = newProps.text;
39
-
40
- super.commitUpdate(oldProps, newProps);
41
-
42
- if (hasChanged(oldProps, newProps, "text") && this.parent) {
43
- this.parent.onChildTextChanged(this, oldText.length, newText.length);
44
- }
45
- }
46
- }
47
-
48
- export function isTextContentParent(node: Node): node is TextSegmentParent {
49
- const candidate = node as unknown as TextContentParent;
50
- return (
51
- typeof candidate.onChildInserted === "function" &&
52
- typeof candidate.onChildRemoved === "function" &&
53
- typeof candidate.onChildTextChanged === "function"
54
- );
55
- }