@gtkx/react 0.21.0 → 1.0.0-rc.2

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