@gtkx/react 0.21.0 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. package/README.md +137 -34
  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 -7
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +10 -7
  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 -14
  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/compound.d.ts +0 -40
  253. package/dist/components/compound.d.ts.map +0 -1
  254. package/dist/components/compound.js +0 -46
  255. package/dist/components/compound.js.map +0 -1
  256. package/dist/components/list.d.ts +0 -75
  257. package/dist/components/list.d.ts.map +0 -1
  258. package/dist/components/list.js +0 -81
  259. package/dist/components/list.js.map +0 -1
  260. package/dist/components/slot-widget.d.ts +0 -15
  261. package/dist/components/slot-widget.d.ts.map +0 -1
  262. package/dist/components/slot-widget.js +0 -37
  263. package/dist/components/slot-widget.js.map +0 -1
  264. package/dist/errors.d.ts +0 -15
  265. package/dist/errors.d.ts.map +0 -1
  266. package/dist/errors.js +0 -44
  267. package/dist/errors.js.map +0 -1
  268. package/dist/factory.d.ts +0 -5
  269. package/dist/factory.d.ts.map +0 -1
  270. package/dist/factory.js +0 -37
  271. package/dist/factory.js.map +0 -1
  272. package/dist/generated/compounds.d.ts +0 -2672
  273. package/dist/generated/compounds.d.ts.map +0 -1
  274. package/dist/generated/compounds.js +0 -2624
  275. package/dist/generated/compounds.js.map +0 -1
  276. package/dist/generated/internal.d.ts +0 -16
  277. package/dist/generated/internal.d.ts.map +0 -1
  278. package/dist/generated/internal.js +0 -3638
  279. package/dist/generated/internal.js.map +0 -1
  280. package/dist/generated/jsx.d.ts +0 -17074
  281. package/dist/generated/jsx.d.ts.map +0 -1
  282. package/dist/generated/jsx.js +0 -6715
  283. package/dist/generated/jsx.js.map +0 -1
  284. package/dist/generated/registry.d.ts +0 -5
  285. package/dist/generated/registry.d.ts.map +0 -1
  286. package/dist/generated/registry.js +0 -13
  287. package/dist/generated/registry.js.map +0 -1
  288. package/dist/host-config.d.ts +0 -24
  289. package/dist/host-config.d.ts.map +0 -1
  290. package/dist/host-config.js +0 -172
  291. package/dist/host-config.js.map +0 -1
  292. package/dist/jsx.d.ts +0 -974
  293. package/dist/jsx.d.ts.map +0 -1
  294. package/dist/jsx.js +0 -8
  295. package/dist/jsx.js.map +0 -1
  296. package/dist/metadata.d.ts +0 -5
  297. package/dist/metadata.d.ts.map +0 -1
  298. package/dist/metadata.js +0 -33
  299. package/dist/metadata.js.map +0 -1
  300. package/dist/node.d.ts +0 -25
  301. package/dist/node.d.ts.map +0 -1
  302. package/dist/node.js +0 -85
  303. package/dist/node.js.map +0 -1
  304. package/dist/nodes/adjustable.d.ts +0 -11
  305. package/dist/nodes/adjustable.d.ts.map +0 -1
  306. package/dist/nodes/adjustable.js +0 -46
  307. package/dist/nodes/adjustable.js.map +0 -1
  308. package/dist/nodes/alert-dialog-response.d.ts +0 -15
  309. package/dist/nodes/alert-dialog-response.d.ts.map +0 -1
  310. package/dist/nodes/alert-dialog-response.js +0 -61
  311. package/dist/nodes/alert-dialog-response.js.map +0 -1
  312. package/dist/nodes/alert-dialog.d.ts +0 -14
  313. package/dist/nodes/alert-dialog.d.ts.map +0 -1
  314. package/dist/nodes/alert-dialog.js +0 -41
  315. package/dist/nodes/alert-dialog.js.map +0 -1
  316. package/dist/nodes/animation.d.ts +0 -39
  317. package/dist/nodes/animation.d.ts.map +0 -1
  318. package/dist/nodes/animation.js +0 -326
  319. package/dist/nodes/animation.js.map +0 -1
  320. package/dist/nodes/application.d.ts +0 -12
  321. package/dist/nodes/application.d.ts.map +0 -1
  322. package/dist/nodes/application.js +0 -51
  323. package/dist/nodes/application.js.map +0 -1
  324. package/dist/nodes/calendar.d.ts +0 -18
  325. package/dist/nodes/calendar.d.ts.map +0 -1
  326. package/dist/nodes/calendar.js +0 -28
  327. package/dist/nodes/calendar.js.map +0 -1
  328. package/dist/nodes/color-dialog-button.d.ts +0 -15
  329. package/dist/nodes/color-dialog-button.d.ts.map +0 -1
  330. package/dist/nodes/color-dialog-button.js +0 -43
  331. package/dist/nodes/color-dialog-button.js.map +0 -1
  332. package/dist/nodes/column-view-column.d.ts +0 -36
  333. package/dist/nodes/column-view-column.d.ts.map +0 -1
  334. package/dist/nodes/column-view-column.js +0 -168
  335. package/dist/nodes/column-view-column.js.map +0 -1
  336. package/dist/nodes/container-slot.d.ts +0 -18
  337. package/dist/nodes/container-slot.d.ts.map +0 -1
  338. package/dist/nodes/container-slot.js +0 -81
  339. package/dist/nodes/container-slot.js.map +0 -1
  340. package/dist/nodes/dialog.d.ts +0 -10
  341. package/dist/nodes/dialog.d.ts.map +0 -1
  342. package/dist/nodes/dialog.js +0 -20
  343. package/dist/nodes/dialog.js.map +0 -1
  344. package/dist/nodes/drawing-area.d.ts +0 -19
  345. package/dist/nodes/drawing-area.d.ts.map +0 -1
  346. package/dist/nodes/drawing-area.js +0 -40
  347. package/dist/nodes/drawing-area.js.map +0 -1
  348. package/dist/nodes/event-controller.d.ts +0 -15
  349. package/dist/nodes/event-controller.d.ts.map +0 -1
  350. package/dist/nodes/event-controller.js +0 -73
  351. package/dist/nodes/event-controller.js.map +0 -1
  352. package/dist/nodes/fixed-child.d.ts +0 -19
  353. package/dist/nodes/fixed-child.d.ts.map +0 -1
  354. package/dist/nodes/fixed-child.js +0 -99
  355. package/dist/nodes/fixed-child.js.map +0 -1
  356. package/dist/nodes/font-dialog-button.d.ts +0 -15
  357. package/dist/nodes/font-dialog-button.d.ts.map +0 -1
  358. package/dist/nodes/font-dialog-button.js +0 -76
  359. package/dist/nodes/font-dialog-button.js.map +0 -1
  360. package/dist/nodes/grid-child.d.ts +0 -19
  361. package/dist/nodes/grid-child.d.ts.map +0 -1
  362. package/dist/nodes/grid-child.js +0 -94
  363. package/dist/nodes/grid-child.js.map +0 -1
  364. package/dist/nodes/internal/accessible.d.ts +0 -5
  365. package/dist/nodes/internal/accessible.d.ts.map +0 -1
  366. package/dist/nodes/internal/accessible.js +0 -119
  367. package/dist/nodes/internal/accessible.js.map +0 -1
  368. package/dist/nodes/internal/bound-item.d.ts +0 -4
  369. package/dist/nodes/internal/bound-item.d.ts.map +0 -1
  370. package/dist/nodes/internal/bound-item.js +0 -2
  371. package/dist/nodes/internal/bound-item.js.map +0 -1
  372. package/dist/nodes/internal/construct.d.ts +0 -3
  373. package/dist/nodes/internal/construct.d.ts.map +0 -1
  374. package/dist/nodes/internal/construct.js +0 -44
  375. package/dist/nodes/internal/construct.js.map +0 -1
  376. package/dist/nodes/internal/predicates.d.ts +0 -51
  377. package/dist/nodes/internal/predicates.d.ts.map +0 -1
  378. package/dist/nodes/internal/predicates.js +0 -36
  379. package/dist/nodes/internal/predicates.js.map +0 -1
  380. package/dist/nodes/internal/props.d.ts +0 -6
  381. package/dist/nodes/internal/props.d.ts.map +0 -1
  382. package/dist/nodes/internal/props.js +0 -43
  383. package/dist/nodes/internal/props.js.map +0 -1
  384. package/dist/nodes/internal/signal-store.d.ts +0 -22
  385. package/dist/nodes/internal/signal-store.d.ts.map +0 -1
  386. package/dist/nodes/internal/signal-store.js +0 -98
  387. package/dist/nodes/internal/signal-store.js.map +0 -1
  388. package/dist/nodes/internal/text-buffer-controller.d.ts +0 -40
  389. package/dist/nodes/internal/text-buffer-controller.d.ts.map +0 -1
  390. package/dist/nodes/internal/text-buffer-controller.js +0 -327
  391. package/dist/nodes/internal/text-buffer-controller.js.map +0 -1
  392. package/dist/nodes/internal/widget.d.ts +0 -8
  393. package/dist/nodes/internal/widget.d.ts.map +0 -1
  394. package/dist/nodes/internal/widget.js +0 -68
  395. package/dist/nodes/internal/widget.js.map +0 -1
  396. package/dist/nodes/level-bar.d.ts +0 -12
  397. package/dist/nodes/level-bar.d.ts.map +0 -1
  398. package/dist/nodes/level-bar.js +0 -24
  399. package/dist/nodes/level-bar.js.map +0 -1
  400. package/dist/nodes/list-item-node.d.ts +0 -12
  401. package/dist/nodes/list-item-node.d.ts.map +0 -1
  402. package/dist/nodes/list-item-node.js +0 -45
  403. package/dist/nodes/list-item-node.js.map +0 -1
  404. package/dist/nodes/list.d.ts +0 -100
  405. package/dist/nodes/list.d.ts.map +0 -1
  406. package/dist/nodes/list.js +0 -950
  407. package/dist/nodes/list.js.map +0 -1
  408. package/dist/nodes/menu.d.ts +0 -7
  409. package/dist/nodes/menu.d.ts.map +0 -1
  410. package/dist/nodes/menu.js +0 -20
  411. package/dist/nodes/menu.js.map +0 -1
  412. package/dist/nodes/models/menu.d.ts +0 -47
  413. package/dist/nodes/models/menu.d.ts.map +0 -1
  414. package/dist/nodes/models/menu.js +0 -240
  415. package/dist/nodes/models/menu.js.map +0 -1
  416. package/dist/nodes/navigation-page.d.ts +0 -19
  417. package/dist/nodes/navigation-page.d.ts.map +0 -1
  418. package/dist/nodes/navigation-page.js +0 -129
  419. package/dist/nodes/navigation-page.js.map +0 -1
  420. package/dist/nodes/navigation-view.d.ts +0 -19
  421. package/dist/nodes/navigation-view.d.ts.map +0 -1
  422. package/dist/nodes/navigation-view.js +0 -51
  423. package/dist/nodes/navigation-view.js.map +0 -1
  424. package/dist/nodes/notebook-page-tab.d.ts +0 -15
  425. package/dist/nodes/notebook-page-tab.d.ts.map +0 -1
  426. package/dist/nodes/notebook-page-tab.js +0 -40
  427. package/dist/nodes/notebook-page-tab.js.map +0 -1
  428. package/dist/nodes/notebook-page.d.ts +0 -29
  429. package/dist/nodes/notebook-page.d.ts.map +0 -1
  430. package/dist/nodes/notebook-page.js +0 -151
  431. package/dist/nodes/notebook-page.js.map +0 -1
  432. package/dist/nodes/notebook.d.ts +0 -16
  433. package/dist/nodes/notebook.d.ts.map +0 -1
  434. package/dist/nodes/notebook.js +0 -31
  435. package/dist/nodes/notebook.js.map +0 -1
  436. package/dist/nodes/overlay-child.d.ts +0 -20
  437. package/dist/nodes/overlay-child.d.ts.map +0 -1
  438. package/dist/nodes/overlay-child.js +0 -109
  439. package/dist/nodes/overlay-child.js.map +0 -1
  440. package/dist/nodes/popover-menu.d.ts +0 -19
  441. package/dist/nodes/popover-menu.d.ts.map +0 -1
  442. package/dist/nodes/popover-menu.js +0 -54
  443. package/dist/nodes/popover-menu.js.map +0 -1
  444. package/dist/nodes/scale.d.ts +0 -10
  445. package/dist/nodes/scale.d.ts.map +0 -1
  446. package/dist/nodes/scale.js +0 -19
  447. package/dist/nodes/scale.js.map +0 -1
  448. package/dist/nodes/scrolled-window.d.ts +0 -11
  449. package/dist/nodes/scrolled-window.d.ts.map +0 -1
  450. package/dist/nodes/scrolled-window.js +0 -18
  451. package/dist/nodes/scrolled-window.js.map +0 -1
  452. package/dist/nodes/search-bar.d.ts +0 -11
  453. package/dist/nodes/search-bar.d.ts.map +0 -1
  454. package/dist/nodes/search-bar.js +0 -16
  455. package/dist/nodes/search-bar.js.map +0 -1
  456. package/dist/nodes/shortcut.d.ts +0 -19
  457. package/dist/nodes/shortcut.d.ts.map +0 -1
  458. package/dist/nodes/shortcut.js +0 -72
  459. package/dist/nodes/shortcut.js.map +0 -1
  460. package/dist/nodes/slot.d.ts +0 -21
  461. package/dist/nodes/slot.d.ts.map +0 -1
  462. package/dist/nodes/slot.js +0 -102
  463. package/dist/nodes/slot.js.map +0 -1
  464. package/dist/nodes/source-view.d.ts +0 -18
  465. package/dist/nodes/source-view.d.ts.map +0 -1
  466. package/dist/nodes/source-view.js +0 -94
  467. package/dist/nodes/source-view.js.map +0 -1
  468. package/dist/nodes/spin-row.d.ts +0 -14
  469. package/dist/nodes/spin-row.d.ts.map +0 -1
  470. package/dist/nodes/spin-row.js +0 -46
  471. package/dist/nodes/spin-row.js.map +0 -1
  472. package/dist/nodes/stack-page.d.ts +0 -22
  473. package/dist/nodes/stack-page.d.ts.map +0 -1
  474. package/dist/nodes/stack-page.js +0 -140
  475. package/dist/nodes/stack-page.js.map +0 -1
  476. package/dist/nodes/stack.d.ts +0 -13
  477. package/dist/nodes/stack.d.ts.map +0 -1
  478. package/dist/nodes/stack.js +0 -21
  479. package/dist/nodes/stack.js.map +0 -1
  480. package/dist/nodes/switch-row.d.ts +0 -11
  481. package/dist/nodes/switch-row.d.ts.map +0 -1
  482. package/dist/nodes/switch-row.js +0 -15
  483. package/dist/nodes/switch-row.js.map +0 -1
  484. package/dist/nodes/text-anchor.d.ts +0 -23
  485. package/dist/nodes/text-anchor.d.ts.map +0 -1
  486. package/dist/nodes/text-anchor.js +0 -74
  487. package/dist/nodes/text-anchor.js.map +0 -1
  488. package/dist/nodes/text-content.d.ts +0 -12
  489. package/dist/nodes/text-content.d.ts.map +0 -1
  490. package/dist/nodes/text-content.js +0 -2
  491. package/dist/nodes/text-content.js.map +0 -1
  492. package/dist/nodes/text-paintable.d.ts +0 -19
  493. package/dist/nodes/text-paintable.d.ts.map +0 -1
  494. package/dist/nodes/text-paintable.js +0 -42
  495. package/dist/nodes/text-paintable.js.map +0 -1
  496. package/dist/nodes/text-segment.d.ts +0 -18
  497. package/dist/nodes/text-segment.d.ts.map +0 -1
  498. package/dist/nodes/text-segment.js +0 -38
  499. package/dist/nodes/text-segment.js.map +0 -1
  500. package/dist/nodes/text-tag.d.ts +0 -38
  501. package/dist/nodes/text-tag.d.ts.map +0 -1
  502. package/dist/nodes/text-tag.js +0 -247
  503. package/dist/nodes/text-tag.js.map +0 -1
  504. package/dist/nodes/text-view.d.ts +0 -29
  505. package/dist/nodes/text-view.d.ts.map +0 -1
  506. package/dist/nodes/text-view.js +0 -80
  507. package/dist/nodes/text-view.js.map +0 -1
  508. package/dist/nodes/toggle-group.d.ts +0 -17
  509. package/dist/nodes/toggle-group.d.ts.map +0 -1
  510. package/dist/nodes/toggle-group.js +0 -65
  511. package/dist/nodes/toggle-group.js.map +0 -1
  512. package/dist/nodes/toggle.d.ts +0 -16
  513. package/dist/nodes/toggle.d.ts.map +0 -1
  514. package/dist/nodes/toggle.js +0 -61
  515. package/dist/nodes/toggle.js.map +0 -1
  516. package/dist/nodes/virtual.d.ts +0 -7
  517. package/dist/nodes/virtual.d.ts.map +0 -1
  518. package/dist/nodes/virtual.js +0 -9
  519. package/dist/nodes/virtual.js.map +0 -1
  520. package/dist/nodes/web-view.d.ts +0 -11
  521. package/dist/nodes/web-view.d.ts.map +0 -1
  522. package/dist/nodes/web-view.js +0 -16
  523. package/dist/nodes/web-view.js.map +0 -1
  524. package/dist/nodes/widget.d.ts +0 -26
  525. package/dist/nodes/widget.d.ts.map +0 -1
  526. package/dist/nodes/widget.js +0 -308
  527. package/dist/nodes/widget.js.map +0 -1
  528. package/dist/nodes/window.d.ts +0 -31
  529. package/dist/nodes/window.d.ts.map +0 -1
  530. package/dist/nodes/window.js +0 -122
  531. package/dist/nodes/window.js.map +0 -1
  532. package/dist/portal.d.ts +0 -29
  533. package/dist/portal.d.ts.map +0 -1
  534. package/dist/portal.js +0 -35
  535. package/dist/portal.js.map +0 -1
  536. package/dist/reconciler.d.ts +0 -34
  537. package/dist/reconciler.d.ts.map +0 -1
  538. package/dist/reconciler.js +0 -48
  539. package/dist/reconciler.js.map +0 -1
  540. package/dist/registry.d.ts +0 -18
  541. package/dist/registry.d.ts.map +0 -1
  542. package/dist/registry.js +0 -98
  543. package/dist/registry.js.map +0 -1
  544. package/dist/render.d.ts +0 -117
  545. package/dist/render.d.ts.map +0 -1
  546. package/dist/render.js +0 -159
  547. package/dist/render.js.map +0 -1
  548. package/dist/types.d.ts +0 -6
  549. package/dist/types.d.ts.map +0 -1
  550. package/dist/types.js.map +0 -1
  551. package/dist/use-property.d.ts +0 -29
  552. package/dist/use-property.d.ts.map +0 -1
  553. package/dist/use-property.js +0 -44
  554. package/dist/use-property.js.map +0 -1
  555. package/dist/use-setting.d.ts +0 -36
  556. package/dist/use-setting.d.ts.map +0 -1
  557. package/dist/use-setting.js +0 -68
  558. package/dist/use-setting.js.map +0 -1
  559. package/src/components/compound.tsx +0 -57
  560. package/src/components/list.tsx +0 -140
  561. package/src/components/slot-widget.tsx +0 -46
  562. package/src/errors.ts +0 -53
  563. package/src/factory.ts +0 -62
  564. package/src/generated/compounds.ts +0 -2741
  565. package/src/generated/internal.ts +0 -3642
  566. package/src/generated/jsx.ts +0 -17383
  567. package/src/generated/registry.ts +0 -17
  568. package/src/host-config.ts +0 -219
  569. package/src/jsx.ts +0 -1033
  570. package/src/metadata.ts +0 -43
  571. package/src/node.ts +0 -107
  572. package/src/nodes/adjustable.ts +0 -68
  573. package/src/nodes/alert-dialog-response.ts +0 -78
  574. package/src/nodes/alert-dialog.ts +0 -55
  575. package/src/nodes/animation.ts +0 -409
  576. package/src/nodes/application.ts +0 -61
  577. package/src/nodes/calendar.ts +0 -42
  578. package/src/nodes/color-dialog-button.ts +0 -69
  579. package/src/nodes/column-view-column.ts +0 -189
  580. package/src/nodes/container-slot.ts +0 -100
  581. package/src/nodes/dialog.ts +0 -25
  582. package/src/nodes/drawing-area.ts +0 -53
  583. package/src/nodes/event-controller.ts +0 -96
  584. package/src/nodes/fixed-child.ts +0 -122
  585. package/src/nodes/font-dialog-button.ts +0 -107
  586. package/src/nodes/grid-child.ts +0 -116
  587. package/src/nodes/internal/accessible.ts +0 -155
  588. package/src/nodes/internal/bound-item.ts +0 -4
  589. package/src/nodes/internal/construct.ts +0 -60
  590. package/src/nodes/internal/predicates.ts +0 -80
  591. package/src/nodes/internal/props.ts +0 -51
  592. package/src/nodes/internal/signal-store.ts +0 -141
  593. package/src/nodes/internal/text-buffer-controller.ts +0 -417
  594. package/src/nodes/internal/widget.ts +0 -74
  595. package/src/nodes/level-bar.ts +0 -36
  596. package/src/nodes/list-item-node.ts +0 -53
  597. package/src/nodes/list.ts +0 -1082
  598. package/src/nodes/menu.ts +0 -27
  599. package/src/nodes/models/menu.ts +0 -314
  600. package/src/nodes/navigation-page.ts +0 -154
  601. package/src/nodes/navigation-view.ts +0 -66
  602. package/src/nodes/notebook-page-tab.ts +0 -55
  603. package/src/nodes/notebook-page.ts +0 -189
  604. package/src/nodes/notebook.ts +0 -42
  605. package/src/nodes/overlay-child.ts +0 -130
  606. package/src/nodes/popover-menu.ts +0 -67
  607. package/src/nodes/scale.ts +0 -28
  608. package/src/nodes/scrolled-window.ts +0 -23
  609. package/src/nodes/search-bar.ts +0 -27
  610. package/src/nodes/shortcut.ts +0 -86
  611. package/src/nodes/slot.ts +0 -138
  612. package/src/nodes/source-view.ts +0 -130
  613. package/src/nodes/spin-row.ts +0 -72
  614. package/src/nodes/stack-page.ts +0 -170
  615. package/src/nodes/stack.ts +0 -35
  616. package/src/nodes/switch-row.ts +0 -26
  617. package/src/nodes/text-anchor.ts +0 -88
  618. package/src/nodes/text-content.ts +0 -14
  619. package/src/nodes/text-paintable.ts +0 -51
  620. package/src/nodes/text-segment.ts +0 -55
  621. package/src/nodes/text-tag.ts +0 -298
  622. package/src/nodes/text-view.ts +0 -100
  623. package/src/nodes/toggle-group.ts +0 -81
  624. package/src/nodes/toggle.ts +0 -72
  625. package/src/nodes/virtual.ts +0 -16
  626. package/src/nodes/web-view.ts +0 -22
  627. package/src/nodes/widget.ts +0 -369
  628. package/src/nodes/window.ts +0 -172
  629. package/src/portal.ts +0 -37
  630. package/src/reconciler.ts +0 -52
  631. package/src/registry.ts +0 -119
  632. package/src/render.tsx +0 -192
  633. package/src/types.ts +0 -13
  634. package/src/use-property.ts +0 -58
  635. package/src/use-setting.ts +0 -96
  636. /package/dist/{types.js → reconciler/types.js} +0 -0
@@ -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
- }
@@ -1,298 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { TextTagProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import { hasChanged } from "./internal/props.js";
5
- import { TextAnchorNode } from "./text-anchor.js";
6
- import type { TextContentChild, TextContentParent } from "./text-content.js";
7
- import { TextPaintableNode } from "./text-paintable.js";
8
- import { isTextContentParent, TextSegmentNode } from "./text-segment.js";
9
- import { VirtualNode } from "./virtual.js";
10
-
11
- const STYLE_PROPS: Partial<Record<keyof TextTagProps, keyof Gtk.TextTag | string>> = {
12
- background: "setBackground",
13
- backgroundFullHeight: "backgroundFullHeight",
14
- foreground: "setForeground",
15
- family: "family",
16
- font: "font",
17
- sizePoints: "sizePoints",
18
- size: "size",
19
- scale: "scale",
20
- weight: "weight",
21
- style: "style",
22
- stretch: "stretch",
23
- variant: "variant",
24
- strikethrough: "strikethrough",
25
- underline: "underline",
26
- overline: "overline",
27
- rise: "rise",
28
- letterSpacing: "letterSpacing",
29
- lineHeight: "lineHeight",
30
- leftMargin: "leftMargin",
31
- rightMargin: "rightMargin",
32
- indent: "indent",
33
- pixelsAboveLines: "pixelsAboveLines",
34
- pixelsBelowLines: "pixelsBelowLines",
35
- pixelsInsideWrap: "pixelsInsideWrap",
36
- justification: "justification",
37
- direction: "direction",
38
- wrapMode: "wrapMode",
39
- editable: "editable",
40
- invisible: "invisible",
41
- allowBreaks: "allowBreaks",
42
- insertHyphens: "insertHyphens",
43
- fallback: "fallback",
44
- accumulativeMargin: "accumulativeMargin",
45
- paragraphBackground: "setParagraphBackground",
46
- showSpaces: "showSpaces",
47
- textTransform: "textTransform",
48
- fontFeatures: "fontFeatures",
49
- language: "language",
50
- };
51
-
52
- type TextTagParent = Node & TextContentParent;
53
-
54
- export class TextTagNode
55
- extends VirtualNode<TextTagProps, TextTagParent, TextContentChild>
56
- implements TextContentParent
57
- {
58
- private buffer: Gtk.TextBuffer | null = null;
59
- private tag: Gtk.TextTag | null = null;
60
-
61
- private bufferOffset = 0;
62
-
63
- public getBufferOffset(): number {
64
- return this.bufferOffset;
65
- }
66
-
67
- public setBufferOffset(offset: number): void {
68
- this.bufferOffset = offset;
69
- }
70
-
71
- public override isValidChild(child: Node): boolean {
72
- return this.isTextContentChild(child);
73
- }
74
-
75
- public override isValidParent(parent: Node): boolean {
76
- return isTextContentParent(parent);
77
- }
78
-
79
- public override appendChild(child: TextContentChild): void {
80
- const index = this.children.length;
81
- super.appendChild(child);
82
-
83
- if (child instanceof TextTagNode && this.buffer) {
84
- child.setBuffer(this.buffer);
85
- }
86
-
87
- this.updateChildOffsets(index);
88
- this.parent?.onChildInserted(child);
89
- }
90
-
91
- public override removeChild(child: TextContentChild): void {
92
- const index = this.children.indexOf(child);
93
- if (index !== -1) {
94
- this.children.splice(index, 1);
95
- child.setParent(null);
96
- this.updateChildOffsets(index);
97
- this.parent?.onChildRemoved(child);
98
- return;
99
- }
100
- super.removeChild(child);
101
- }
102
-
103
- public override insertBefore(child: TextContentChild, before: TextContentChild): void {
104
- const beforeIndex = this.children.indexOf(before);
105
- const insertIndex = beforeIndex !== -1 ? beforeIndex : this.children.length;
106
-
107
- super.insertBefore(child, before);
108
-
109
- if (child instanceof TextTagNode && this.buffer) {
110
- child.setBuffer(this.buffer);
111
- }
112
-
113
- this.updateChildOffsets(insertIndex);
114
- this.parent?.onChildInserted(child);
115
- }
116
-
117
- public override commitUpdate(oldProps: TextTagProps | null, newProps: TextTagProps): void {
118
- super.commitUpdate(oldProps, newProps);
119
- this.applyOwnProps(oldProps, newProps);
120
- }
121
-
122
- public override detachDeletedInstance(): void {
123
- if (this.buffer && this.tag) {
124
- this.removeTagFromBuffer();
125
- const tagTable = this.buffer.getTagTable();
126
- tagTable.remove(this.tag);
127
- }
128
- this.tag = null;
129
- this.buffer = null;
130
- super.detachDeletedInstance();
131
- }
132
-
133
- public setBuffer(buffer: Gtk.TextBuffer): void {
134
- this.buffer = buffer;
135
- this.updateChildOffsets(0);
136
- this.setupTag();
137
-
138
- for (const child of this.children) {
139
- if (child instanceof TextTagNode) {
140
- child.setBuffer(buffer);
141
- }
142
- }
143
- }
144
-
145
- public hasBuffer(): boolean {
146
- return this.buffer !== null;
147
- }
148
-
149
- public getText(): string {
150
- let text = "";
151
- for (const child of this.children) {
152
- text += child.getText();
153
- }
154
- return text;
155
- }
156
-
157
- public getLength(): number {
158
- let length = 0;
159
- for (const child of this.children) {
160
- length += child.getLength();
161
- }
162
- return length;
163
- }
164
-
165
- public reapplyTag(): void {
166
- if (!this.buffer || !this.tag) return;
167
- this.removeTagFromBuffer();
168
- this.applyTagToRange();
169
- }
170
-
171
- public onChildInserted(child: TextContentChild): void {
172
- const index = this.children.indexOf(child);
173
- if (index !== -1) {
174
- this.updateChildOffsets(index);
175
- }
176
-
177
- this.parent?.onChildInserted(child);
178
- }
179
-
180
- public onChildRemoved(child: TextContentChild): void {
181
- this.parent?.onChildRemoved(child);
182
- }
183
-
184
- public onChildTextChanged(child: TextSegmentNode, oldLength: number, newLength: number): void {
185
- const index = this.children.indexOf(child);
186
- if (index !== -1) {
187
- this.updateChildOffsets(index + 1);
188
- }
189
-
190
- this.parent?.onChildTextChanged(child, oldLength, newLength);
191
- }
192
-
193
- private setupTag(): void {
194
- if (!this.buffer) return;
195
-
196
- const tagTable = this.buffer.getTagTable();
197
- this.tag = new Gtk.TextTag(this.props.id);
198
-
199
- this.applyStyleProps(null, this.props);
200
- tagTable.add(this.tag);
201
-
202
- if (this.props.priority !== undefined) {
203
- this.tag.setPriority(this.props.priority);
204
- }
205
-
206
- this.applyTagToRange();
207
- }
208
-
209
- private applyOwnProps(oldProps: TextTagProps | null, newProps: TextTagProps): void {
210
- if (oldProps && oldProps.id !== newProps.id) {
211
- throw new Error("TextTag id cannot be changed after creation");
212
- }
213
-
214
- if (!this.tag) return;
215
-
216
- this.applyStyleProps(oldProps, newProps);
217
-
218
- if (hasChanged(oldProps, newProps, "priority") && newProps.priority !== undefined) {
219
- this.tag.setPriority(newProps.priority);
220
- }
221
- }
222
-
223
- private applyStyleProps(oldProps: TextTagProps | null, newProps: TextTagProps): void {
224
- if (!this.tag) return;
225
- for (const prop of Object.keys(STYLE_PROPS) as (keyof TextTagProps)[]) {
226
- if (hasChanged(oldProps, newProps, prop)) {
227
- const value = newProps[prop];
228
- const target = STYLE_PROPS[prop];
229
- if (value !== undefined && target) {
230
- const tag = this.tag as unknown as Record<string, unknown>;
231
- const member = tag[target];
232
- if (typeof member === "function") {
233
- (member as (v: unknown) => void).call(this.tag, value);
234
- } else {
235
- tag[target] = value;
236
- }
237
- }
238
- }
239
- }
240
- }
241
-
242
- private applyTagToRange(): void {
243
- const buffer = this.buffer;
244
- const tag = this.tag;
245
- if (!buffer || !tag) return;
246
-
247
- const length = this.getLength();
248
- if (length === 0) return;
249
-
250
- const startIter = new Gtk.TextIter();
251
- const endIter = new Gtk.TextIter();
252
-
253
- buffer.getIterAtOffset(startIter, this.bufferOffset);
254
- buffer.getIterAtOffset(endIter, this.bufferOffset + length);
255
-
256
- buffer.applyTag(tag, startIter, endIter);
257
- }
258
-
259
- private removeTagFromBuffer(): void {
260
- const buffer = this.buffer;
261
- const tag = this.tag;
262
- if (!buffer || !tag) return;
263
-
264
- const startIter = new Gtk.TextIter();
265
- const endIter = new Gtk.TextIter();
266
-
267
- buffer.getStartIter(startIter);
268
- buffer.getEndIter(endIter);
269
-
270
- buffer.removeTag(tag, startIter, endIter);
271
- }
272
-
273
- private updateChildOffsets(startIndex: number): void {
274
- let offset = this.bufferOffset;
275
-
276
- for (let i = 0; i < startIndex; i++) {
277
- const child = this.children[i];
278
- if (child) offset += child.getLength();
279
- }
280
-
281
- for (let i = startIndex; i < this.children.length; i++) {
282
- const child = this.children[i];
283
- if (child) {
284
- child.setBufferOffset(offset);
285
- offset += child.getLength();
286
- }
287
- }
288
- }
289
-
290
- private isTextContentChild(child: Node): child is TextContentChild {
291
- return (
292
- child instanceof TextSegmentNode ||
293
- child instanceof TextTagNode ||
294
- child instanceof TextAnchorNode ||
295
- child instanceof TextPaintableNode
296
- );
297
- }
298
- }
@@ -1,100 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { GtkTextViewProps } 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 } from "./internal/props.js";
7
- import { TextBufferController } from "./internal/text-buffer-controller.js";
8
- import { SlotNode } from "./slot.js";
9
- import { TextAnchorNode } from "./text-anchor.js";
10
- import type { TextContentChild, TextContentParent } from "./text-content.js";
11
- import { TextPaintableNode } from "./text-paintable.js";
12
- import { TextSegmentNode } from "./text-segment.js";
13
- import { TextTagNode } from "./text-tag.js";
14
- import { WidgetNode } from "./widget.js";
15
-
16
- const OWN_PROPS = [
17
- "enableUndo",
18
- "onBufferChanged",
19
- "onTextInserted",
20
- "onTextDeleted",
21
- "onCanUndoChanged",
22
- "onCanRedoChanged",
23
- ] as const;
24
-
25
- type TextViewProps = Pick<GtkTextViewProps, (typeof OWN_PROPS)[number]>;
26
- type TextViewChild = TextContentChild | SlotNode | ContainerSlotNode | EventControllerNode | WidgetNode;
27
-
28
- export class TextViewNode extends WidgetNode<Gtk.TextView, TextViewProps, TextViewChild> implements TextContentParent {
29
- protected bufferController: TextBufferController | null = null;
30
-
31
- public override isValidChild(child: Node): boolean {
32
- return (
33
- child instanceof TextSegmentNode ||
34
- child instanceof TextTagNode ||
35
- child instanceof TextAnchorNode ||
36
- child instanceof TextPaintableNode ||
37
- child instanceof SlotNode ||
38
- child instanceof ContainerSlotNode ||
39
- child instanceof EventControllerNode ||
40
- child instanceof WidgetNode
41
- );
42
- }
43
-
44
- protected ensureBufferController(): TextBufferController {
45
- if (!this.bufferController) {
46
- this.bufferController = this.createBufferController();
47
- }
48
- return this.bufferController;
49
- }
50
-
51
- protected createBufferController(): TextBufferController {
52
- return new TextBufferController(this, this.container, () => new Gtk.TextBuffer());
53
- }
54
-
55
- public override finalizeInitialChildren(props: TextViewProps): boolean {
56
- this.bufferController?.finalizeInitialMount();
57
- return super.finalizeInitialChildren(props);
58
- }
59
-
60
- public override commitUpdate(oldProps: TextViewProps | null, newProps: TextViewProps): void {
61
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
62
- this.ensureBufferController().applyOwnProps(oldProps, newProps);
63
- }
64
-
65
- public override appendChild(child: TextViewChild): void {
66
- const controller = this.ensureBufferController();
67
- if (controller.isTextContentChild(child)) {
68
- controller.appendChild(child);
69
- }
70
- super.appendChild(child);
71
- }
72
-
73
- public override insertBefore(child: TextViewChild, before: TextViewChild): void {
74
- const controller = this.ensureBufferController();
75
- if (controller.isTextContentChild(child)) {
76
- controller.insertBefore(child, before as TextContentChild);
77
- }
78
- super.insertBefore(child, before);
79
- }
80
-
81
- public override removeChild(child: TextViewChild): void {
82
- const controller = this.ensureBufferController();
83
- if (controller.isTextContentChild(child)) {
84
- controller.removeChild(child);
85
- }
86
- super.removeChild(child);
87
- }
88
-
89
- public onChildInserted(child: TextContentChild): void {
90
- this.ensureBufferController().onChildInserted(child);
91
- }
92
-
93
- public onChildRemoved(child: TextContentChild): void {
94
- this.ensureBufferController().onChildRemoved(child);
95
- }
96
-
97
- public onChildTextChanged(child: TextSegmentNode, oldLength: number, newLength: number): void {
98
- this.ensureBufferController().onChildTextChanged(child, oldLength, newLength);
99
- }
100
- }
@@ -1,81 +0,0 @@
1
- import * as Adw from "@gtkx/ffi/adw";
2
- import type * as Gtk from "@gtkx/ffi/gtk";
3
- import type { AdwToggleGroupProps, ToggleProps } from "../jsx.js";
4
- import type { Container, Props } from "../types.js";
5
- import { createContainerWithProperties } from "./internal/construct.js";
6
- import { filterProps, hasChanged } from "./internal/props.js";
7
- import { WidgetNode } from "./widget.js";
8
-
9
- const DEFERRED_PROPS = ["activeName", "active"] as const;
10
- const OWN_PROPS = ["onActiveChanged", "toggles", ...DEFERRED_PROPS] as const;
11
-
12
- type OwnProps = Pick<AdwToggleGroupProps, (typeof OWN_PROPS)[number]>;
13
-
14
- export class ToggleGroupNode extends WidgetNode<Adw.ToggleGroup, OwnProps> {
15
- private managedToggles: Adw.Toggle[] = [];
16
-
17
- public static override createContainer(props: Props, containerClass: typeof Gtk.Widget): Container | null {
18
- const { activeName: _, active: __, ...rest } = props;
19
- return createContainerWithProperties(containerClass, rest);
20
- }
21
-
22
- public override commitUpdate(oldProps: OwnProps | null, newProps: OwnProps): void {
23
- if (hasChanged(oldProps, newProps, "toggles")) {
24
- this.syncToggles(newProps.toggles ?? []);
25
- }
26
-
27
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
28
-
29
- if (hasChanged(oldProps, newProps, "activeName")) {
30
- this.container.setActiveName(newProps.activeName ?? null);
31
- }
32
-
33
- if (hasChanged(oldProps, newProps, "active")) {
34
- if (newProps.active != null) {
35
- this.container.setActive(newProps.active);
36
- }
37
- }
38
-
39
- if (hasChanged(oldProps, newProps, "onActiveChanged")) {
40
- const callback = newProps.onActiveChanged;
41
- this.signalStore.set(
42
- this,
43
- this.container,
44
- "notify::active",
45
- callback ? () => callback(this.container.getActive(), this.container.getActiveName()) : undefined,
46
- );
47
- }
48
- }
49
-
50
- public override detachDeletedInstance(): void {
51
- this.clearToggles();
52
- super.detachDeletedInstance();
53
- }
54
-
55
- private syncToggles(newToggles: ToggleProps[]): void {
56
- this.clearToggles();
57
-
58
- for (const toggleProps of newToggles) {
59
- const toggle = new Adw.Toggle();
60
- applyToggleProps(toggle, toggleProps);
61
- this.container.add(toggle);
62
- this.managedToggles.push(toggle);
63
- }
64
- }
65
-
66
- private clearToggles(): void {
67
- for (const toggle of this.managedToggles) {
68
- this.container.remove(toggle);
69
- }
70
- this.managedToggles = [];
71
- }
72
- }
73
-
74
- function applyToggleProps(toggle: Adw.Toggle, props: ToggleProps): void {
75
- if (props.id != null) toggle.setName(props.id);
76
- if (props.label != null) toggle.setLabel(props.label);
77
- if (props.iconName != null) toggle.setIconName(props.iconName);
78
- if (props.tooltip !== undefined) toggle.setTooltip(props.tooltip);
79
- if (props.enabled !== undefined) toggle.setEnabled(props.enabled);
80
- if (props.useUnderline !== undefined) toggle.setUseUnderline(props.useUnderline);
81
- }
@@ -1,72 +0,0 @@
1
- import * as Adw from "@gtkx/ffi/adw";
2
- import type { ToggleProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import { hasChanged } from "./internal/props.js";
5
- import { VirtualNode } from "./virtual.js";
6
- import { WidgetNode } from "./widget.js";
7
-
8
- export class ToggleNode extends VirtualNode<ToggleProps, WidgetNode<Adw.ToggleGroup>, never> {
9
- private toggle: Adw.Toggle | null = null;
10
-
11
- public override isValidChild(_child: Node): boolean {
12
- return false;
13
- }
14
-
15
- public override isValidParent(parent: Node): boolean {
16
- return parent instanceof WidgetNode && parent.container instanceof Adw.ToggleGroup;
17
- }
18
-
19
- public override setParent(parent: WidgetNode<Adw.ToggleGroup> | null): void {
20
- if (!parent && this.parent) {
21
- this.removeFromGroup();
22
- }
23
-
24
- super.setParent(parent);
25
-
26
- if (parent && !this.toggle) {
27
- this.toggle = new Adw.Toggle();
28
- this.applyOwnProps(null, this.props);
29
- parent.container.add(this.toggle);
30
- }
31
- }
32
-
33
- public override commitUpdate(oldProps: ToggleProps | null, newProps: ToggleProps): void {
34
- super.commitUpdate(oldProps, newProps);
35
- this.applyOwnProps(oldProps, newProps);
36
- }
37
-
38
- public override detachDeletedInstance(): void {
39
- this.removeFromGroup();
40
- super.detachDeletedInstance();
41
- }
42
-
43
- private removeFromGroup(): void {
44
- if (!this.parent || !this.toggle) return;
45
-
46
- this.parent.container.remove(this.toggle);
47
- this.toggle = null;
48
- }
49
-
50
- private applyOwnProps(oldProps: ToggleProps | null, newProps: ToggleProps): void {
51
- if (!this.toggle) return;
52
-
53
- if (hasChanged(oldProps, newProps, "id")) {
54
- this.toggle.setName(newProps.id ?? "");
55
- }
56
- if (hasChanged(oldProps, newProps, "label")) {
57
- this.toggle.setLabel(newProps.label ?? "");
58
- }
59
- if (hasChanged(oldProps, newProps, "iconName")) {
60
- this.toggle.setIconName(newProps.iconName ?? "");
61
- }
62
- if (hasChanged(oldProps, newProps, "tooltip")) {
63
- this.toggle.setTooltip(newProps.tooltip ?? "");
64
- }
65
- if (hasChanged(oldProps, newProps, "enabled")) {
66
- this.toggle.setEnabled(newProps.enabled ?? true);
67
- }
68
- if (hasChanged(oldProps, newProps, "useUnderline")) {
69
- this.toggle.setUseUnderline(newProps.useUnderline ?? false);
70
- }
71
- }
72
- }
@@ -1,16 +0,0 @@
1
- import { Node } from "../node.js";
2
- import type { Container } from "../types.js";
3
-
4
- // biome-ignore lint/suspicious/noExplicitAny: Self-referential type bounds require any
5
- export class VirtualNode<TProps = any, TParent extends Node = any, TChild extends Node = any> extends Node<
6
- undefined,
7
- TProps,
8
- TParent,
9
- TChild
10
- > {
11
- public static override createContainer() {}
12
-
13
- constructor(typeName: string, props: TProps = {} as TProps, container: undefined, rootContainer: Container) {
14
- super(typeName, props, container, rootContainer);
15
- }
16
- }
@@ -1,22 +0,0 @@
1
- import type * as WebKit from "@gtkx/ffi/webkit";
2
- import type { WebKitWebViewProps } from "../jsx.js";
3
- import { filterProps, hasChanged } from "./internal/props.js";
4
- import { WidgetNode } from "./widget.js";
5
-
6
- const OWN_PROPS = ["onLoadChanged"] as const;
7
-
8
- type WebViewProps = Pick<WebKitWebViewProps, (typeof OWN_PROPS)[number]>;
9
-
10
- export class WebViewNode extends WidgetNode<WebKit.WebView, WebViewProps> {
11
- public override commitUpdate(oldProps: WebViewProps | null, newProps: WebViewProps): void {
12
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
13
- this.applyOwnProps(oldProps, newProps);
14
- }
15
-
16
- private applyOwnProps(oldProps: WebViewProps | null, newProps: WebViewProps): void {
17
- if (hasChanged(oldProps, newProps, "onLoadChanged")) {
18
- const callback = newProps.onLoadChanged;
19
- this.signalStore.set(this, this.container, "load-changed", callback ?? undefined, { blockable: false });
20
- }
21
- }
22
- }