@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,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
- }