@gtkx/react 0.21.0 → 1.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (636) hide show
  1. package/README.md +137 -34
  2. package/dist/components/application.d.ts +10 -0
  3. package/dist/components/application.d.ts.map +1 -0
  4. package/dist/components/application.js +26 -0
  5. package/dist/components/application.js.map +1 -0
  6. package/dist/components/window.d.ts +8 -0
  7. package/dist/components/window.d.ts.map +1 -0
  8. package/dist/components/window.js +23 -0
  9. package/dist/components/window.js.map +1 -0
  10. package/dist/hooks/use-application.d.ts +8 -0
  11. package/dist/hooks/use-application.d.ts.map +1 -0
  12. package/dist/hooks/use-application.js +13 -0
  13. package/dist/hooks/use-application.js.map +1 -0
  14. package/dist/hooks/use-bind-setting.d.ts +6 -0
  15. package/dist/hooks/use-bind-setting.d.ts.map +1 -0
  16. package/dist/hooks/use-bind-setting.js +19 -0
  17. package/dist/hooks/use-bind-setting.js.map +1 -0
  18. package/dist/hooks/use-merge-refs.d.ts +3 -0
  19. package/dist/hooks/use-merge-refs.d.ts.map +1 -0
  20. package/dist/hooks/use-merge-refs.js +48 -0
  21. package/dist/hooks/use-merge-refs.js.map +1 -0
  22. package/dist/hooks/use-object-attachment.d.ts +10 -0
  23. package/dist/hooks/use-object-attachment.d.ts.map +1 -0
  24. package/dist/hooks/use-object-attachment.js +24 -0
  25. package/dist/hooks/use-object-attachment.js.map +1 -0
  26. package/dist/hooks/use-object-value.d.ts +4 -0
  27. package/dist/hooks/use-object-value.d.ts.map +1 -0
  28. package/dist/hooks/use-object-value.js +32 -0
  29. package/dist/hooks/use-object-value.js.map +1 -0
  30. package/dist/hooks/use-parent-window.d.ts +8 -0
  31. package/dist/hooks/use-parent-window.d.ts.map +1 -0
  32. package/dist/hooks/use-parent-window.js +7 -0
  33. package/dist/hooks/use-parent-window.js.map +1 -0
  34. package/dist/hooks/use-property.d.ts +14 -0
  35. package/dist/hooks/use-property.d.ts.map +1 -0
  36. package/dist/hooks/use-property.js +13 -0
  37. package/dist/hooks/use-property.js.map +1 -0
  38. package/dist/hooks/use-setting.d.ts +25 -0
  39. package/dist/hooks/use-setting.d.ts.map +1 -0
  40. package/dist/hooks/use-setting.js +15 -0
  41. package/dist/hooks/use-setting.js.map +1 -0
  42. package/dist/hooks/use-signal.d.ts +21 -0
  43. package/dist/hooks/use-signal.d.ts.map +1 -0
  44. package/dist/hooks/use-signal.js +20 -0
  45. package/dist/hooks/use-signal.js.map +1 -0
  46. package/dist/index.d.ts +14 -7
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +10 -7
  49. package/dist/index.js.map +1 -1
  50. package/dist/internal.d.ts +14 -0
  51. package/dist/internal.d.ts.map +1 -0
  52. package/dist/internal.js +14 -0
  53. package/dist/internal.js.map +1 -0
  54. package/dist/libraries/adw/dialog.d.ts +8 -0
  55. package/dist/libraries/adw/dialog.d.ts.map +1 -0
  56. package/dist/libraries/adw/dialog.js +25 -0
  57. package/dist/libraries/adw/dialog.js.map +1 -0
  58. package/dist/libraries/adw/index.d.ts +2 -0
  59. package/dist/libraries/adw/index.d.ts.map +1 -0
  60. package/dist/libraries/adw/index.js +2 -0
  61. package/dist/libraries/adw/index.js.map +1 -0
  62. package/dist/reconciler/accessible.d.ts +59 -0
  63. package/dist/reconciler/accessible.d.ts.map +1 -0
  64. package/dist/reconciler/accessible.js +143 -0
  65. package/dist/reconciler/accessible.js.map +1 -0
  66. package/dist/reconciler/apply-props.d.ts +8 -0
  67. package/dist/reconciler/apply-props.d.ts.map +1 -0
  68. package/dist/reconciler/apply-props.js +92 -0
  69. package/dist/reconciler/apply-props.js.map +1 -0
  70. package/dist/reconciler/commit-flush.d.ts +3 -0
  71. package/dist/reconciler/commit-flush.d.ts.map +1 -0
  72. package/dist/reconciler/commit-flush.js +13 -0
  73. package/dist/reconciler/commit-flush.js.map +1 -0
  74. package/dist/reconciler/container-attach.d.ts +10 -0
  75. package/dist/reconciler/container-attach.d.ts.map +1 -0
  76. package/dist/reconciler/container-attach.js +216 -0
  77. package/dist/reconciler/container-attach.js.map +1 -0
  78. package/dist/reconciler/content-rebuild.d.ts +3 -0
  79. package/dist/reconciler/content-rebuild.d.ts.map +1 -0
  80. package/dist/reconciler/content-rebuild.js +15 -0
  81. package/dist/reconciler/content-rebuild.js.map +1 -0
  82. package/dist/reconciler/dispatch.d.ts +6 -0
  83. package/dist/reconciler/dispatch.d.ts.map +1 -0
  84. package/dist/reconciler/dispatch.js +61 -0
  85. package/dist/reconciler/dispatch.js.map +1 -0
  86. package/dist/reconciler/element-prop-appliers.d.ts +5 -0
  87. package/dist/reconciler/element-prop-appliers.d.ts.map +1 -0
  88. package/dist/reconciler/element-prop-appliers.js +104 -0
  89. package/dist/reconciler/element-prop-appliers.js.map +1 -0
  90. package/dist/reconciler/element-props.d.ts +25 -0
  91. package/dist/reconciler/element-props.d.ts.map +1 -0
  92. package/dist/reconciler/element-props.js +157 -0
  93. package/dist/reconciler/element-props.js.map +1 -0
  94. package/dist/reconciler/host-config.d.ts +13 -0
  95. package/dist/reconciler/host-config.d.ts.map +1 -0
  96. package/dist/reconciler/host-config.js +309 -0
  97. package/dist/reconciler/host-config.js.map +1 -0
  98. package/dist/reconciler/instance.d.ts +6 -0
  99. package/dist/reconciler/instance.d.ts.map +1 -0
  100. package/dist/reconciler/instance.js +27 -0
  101. package/dist/reconciler/instance.js.map +1 -0
  102. package/dist/reconciler/label-text-rebuild.d.ts +3 -0
  103. package/dist/reconciler/label-text-rebuild.d.ts.map +1 -0
  104. package/dist/reconciler/label-text-rebuild.js +22 -0
  105. package/dist/reconciler/label-text-rebuild.js.map +1 -0
  106. package/dist/reconciler/portal.d.ts +11 -0
  107. package/dist/reconciler/portal.d.ts.map +1 -0
  108. package/dist/reconciler/portal.js +20 -0
  109. package/dist/reconciler/portal.js.map +1 -0
  110. package/dist/reconciler/reconciler-error-handler.d.ts +7 -0
  111. package/dist/reconciler/reconciler-error-handler.d.ts.map +1 -0
  112. package/dist/reconciler/reconciler-error-handler.js +24 -0
  113. package/dist/reconciler/reconciler-error-handler.js.map +1 -0
  114. package/dist/reconciler/reconciler-root.d.ts +19 -0
  115. package/dist/reconciler/reconciler-root.d.ts.map +1 -0
  116. package/dist/reconciler/reconciler-root.js +24 -0
  117. package/dist/reconciler/reconciler-root.js.map +1 -0
  118. package/dist/reconciler/reconciler.d.ts +3 -0
  119. package/dist/reconciler/reconciler.d.ts.map +1 -0
  120. package/dist/reconciler/reconciler.js +12 -0
  121. package/dist/reconciler/reconciler.js.map +1 -0
  122. package/dist/reconciler/render.d.ts +23 -0
  123. package/dist/reconciler/render.d.ts.map +1 -0
  124. package/dist/reconciler/render.js +46 -0
  125. package/dist/reconciler/render.js.map +1 -0
  126. package/dist/reconciler/root-element.d.ts +14 -0
  127. package/dist/reconciler/root-element.d.ts.map +1 -0
  128. package/dist/reconciler/root-element.js +7 -0
  129. package/dist/reconciler/root-element.js.map +1 -0
  130. package/dist/reconciler/signal-store.d.ts +22 -0
  131. package/dist/reconciler/signal-store.d.ts.map +1 -0
  132. package/dist/reconciler/signal-store.js +84 -0
  133. package/dist/reconciler/signal-store.js.map +1 -0
  134. package/dist/reconciler/state.d.ts +36 -0
  135. package/dist/reconciler/state.d.ts.map +1 -0
  136. package/dist/reconciler/state.js +38 -0
  137. package/dist/reconciler/state.js.map +1 -0
  138. package/dist/reconciler/text-buffer-controller.d.ts +17 -0
  139. package/dist/reconciler/text-buffer-controller.d.ts.map +1 -0
  140. package/dist/reconciler/text-buffer-controller.js +102 -0
  141. package/dist/reconciler/text-buffer-controller.js.map +1 -0
  142. package/dist/reconciler/text-buffer-rebuild.d.ts +3 -0
  143. package/dist/reconciler/text-buffer-rebuild.d.ts.map +1 -0
  144. package/dist/reconciler/text-buffer-rebuild.js +7 -0
  145. package/dist/reconciler/text-buffer-rebuild.js.map +1 -0
  146. package/dist/reconciler/text-node.d.ts +7 -0
  147. package/dist/reconciler/text-node.d.ts.map +1 -0
  148. package/dist/reconciler/text-node.js +8 -0
  149. package/dist/reconciler/text-node.js.map +1 -0
  150. package/dist/reconciler/types.d.ts +5 -0
  151. package/dist/reconciler/types.d.ts.map +1 -0
  152. package/dist/reconciler/types.js.map +1 -0
  153. package/dist/reconciler/visibility.d.ts +6 -0
  154. package/dist/reconciler/visibility.d.ts.map +1 -0
  155. package/dist/reconciler/visibility.js +57 -0
  156. package/dist/reconciler/visibility.js.map +1 -0
  157. package/dist/reconciler/wrapper-apply.d.ts +6 -0
  158. package/dist/reconciler/wrapper-apply.d.ts.map +1 -0
  159. package/dist/reconciler/wrapper-apply.js +287 -0
  160. package/dist/reconciler/wrapper-apply.js.map +1 -0
  161. package/dist/reconciler/wrapper-content.d.ts +8 -0
  162. package/dist/reconciler/wrapper-content.d.ts.map +1 -0
  163. package/dist/reconciler/wrapper-content.js +19 -0
  164. package/dist/reconciler/wrapper-content.js.map +1 -0
  165. package/dist/reconciler/wrapper-node.d.ts +8 -0
  166. package/dist/reconciler/wrapper-node.d.ts.map +1 -0
  167. package/dist/reconciler/wrapper-node.js +4 -0
  168. package/dist/reconciler/wrapper-node.js.map +1 -0
  169. package/dist/reconciler/wrapper-protocol.d.ts +13 -0
  170. package/dist/reconciler/wrapper-protocol.d.ts.map +1 -0
  171. package/dist/reconciler/wrapper-protocol.js +20 -0
  172. package/dist/reconciler/wrapper-protocol.js.map +1 -0
  173. package/dist/utils/accessible-metadata.d.ts +5 -0
  174. package/dist/utils/accessible-metadata.d.ts.map +1 -0
  175. package/dist/utils/accessible-metadata.js +22 -0
  176. package/dist/utils/accessible-metadata.js.map +1 -0
  177. package/dist/utils/create-element-component.d.ts +4 -0
  178. package/dist/utils/create-element-component.d.ts.map +1 -0
  179. package/dist/utils/create-element-component.js +54 -0
  180. package/dist/utils/create-element-component.js.map +1 -0
  181. package/dist/utils/gtype.d.ts +16 -0
  182. package/dist/utils/gtype.d.ts.map +1 -0
  183. package/dist/utils/gtype.js +127 -0
  184. package/dist/utils/gtype.js.map +1 -0
  185. package/dist/utils/notify-name.d.ts +5 -0
  186. package/dist/utils/notify-name.d.ts.map +1 -0
  187. package/dist/utils/notify-name.js +6 -0
  188. package/dist/utils/notify-name.js.map +1 -0
  189. package/dist/utils/object-prop.d.ts +8 -0
  190. package/dist/utils/object-prop.d.ts.map +1 -0
  191. package/dist/utils/object-prop.js +9 -0
  192. package/dist/utils/object-prop.js.map +1 -0
  193. package/dist/utils/settings-accessor.d.ts +8 -0
  194. package/dist/utils/settings-accessor.d.ts.map +1 -0
  195. package/dist/utils/settings-accessor.js +69 -0
  196. package/dist/utils/settings-accessor.js.map +1 -0
  197. package/dist/utils/wrapper-node-jsx.d.ts +32 -0
  198. package/dist/utils/wrapper-node-jsx.d.ts.map +1 -0
  199. package/dist/utils/wrapper-node-jsx.js +2 -0
  200. package/dist/utils/wrapper-node-jsx.js.map +1 -0
  201. package/package.json +22 -8
  202. package/src/components/application.tsx +43 -0
  203. package/src/components/window.tsx +36 -0
  204. package/src/hooks/use-application.ts +17 -0
  205. package/src/hooks/use-bind-setting.ts +35 -0
  206. package/src/hooks/use-merge-refs.ts +53 -0
  207. package/src/hooks/use-object-attachment.ts +35 -0
  208. package/src/hooks/use-object-value.ts +50 -0
  209. package/src/hooks/use-parent-window.ts +9 -0
  210. package/src/hooks/use-property.ts +22 -0
  211. package/src/hooks/use-setting.ts +47 -0
  212. package/src/hooks/use-signal.ts +71 -0
  213. package/src/index.ts +15 -14
  214. package/src/internal.ts +24 -0
  215. package/src/libraries/adw/dialog.tsx +34 -0
  216. package/src/libraries/adw/index.ts +1 -0
  217. package/src/reconciler/accessible.ts +232 -0
  218. package/src/reconciler/apply-props.ts +117 -0
  219. package/src/reconciler/commit-flush.ts +13 -0
  220. package/src/reconciler/container-attach.ts +219 -0
  221. package/src/reconciler/content-rebuild.ts +19 -0
  222. package/src/reconciler/dispatch.ts +58 -0
  223. package/src/reconciler/element-prop-appliers.ts +110 -0
  224. package/src/reconciler/element-props.ts +192 -0
  225. package/src/reconciler/host-config.ts +405 -0
  226. package/src/reconciler/instance.ts +30 -0
  227. package/src/reconciler/label-text-rebuild.ts +26 -0
  228. package/src/reconciler/portal.ts +28 -0
  229. package/src/reconciler/reconciler-error-handler.ts +29 -0
  230. package/src/reconciler/reconciler-root.ts +57 -0
  231. package/src/reconciler/reconciler.ts +13 -0
  232. package/src/reconciler/render.ts +61 -0
  233. package/src/reconciler/root-element.ts +14 -0
  234. package/src/reconciler/signal-store.ts +103 -0
  235. package/src/reconciler/state.ts +72 -0
  236. package/src/reconciler/text-buffer-controller.ts +107 -0
  237. package/src/reconciler/text-buffer-rebuild.ts +12 -0
  238. package/src/reconciler/text-node.ts +13 -0
  239. package/src/reconciler/types.ts +6 -0
  240. package/src/reconciler/visibility.ts +52 -0
  241. package/src/reconciler/wrapper-apply.ts +308 -0
  242. package/src/reconciler/wrapper-content.ts +24 -0
  243. package/src/reconciler/wrapper-node.ts +8 -0
  244. package/src/reconciler/wrapper-protocol.ts +32 -0
  245. package/src/utils/accessible-metadata.ts +26 -0
  246. package/src/utils/create-element-component.ts +77 -0
  247. package/src/utils/gtype.ts +166 -0
  248. package/src/utils/notify-name.ts +10 -0
  249. package/src/utils/object-prop.ts +13 -0
  250. package/src/utils/settings-accessor.ts +89 -0
  251. package/src/utils/wrapper-node-jsx.ts +34 -0
  252. package/dist/components/compound.d.ts +0 -40
  253. package/dist/components/compound.d.ts.map +0 -1
  254. package/dist/components/compound.js +0 -46
  255. package/dist/components/compound.js.map +0 -1
  256. package/dist/components/list.d.ts +0 -75
  257. package/dist/components/list.d.ts.map +0 -1
  258. package/dist/components/list.js +0 -81
  259. package/dist/components/list.js.map +0 -1
  260. package/dist/components/slot-widget.d.ts +0 -15
  261. package/dist/components/slot-widget.d.ts.map +0 -1
  262. package/dist/components/slot-widget.js +0 -37
  263. package/dist/components/slot-widget.js.map +0 -1
  264. package/dist/errors.d.ts +0 -15
  265. package/dist/errors.d.ts.map +0 -1
  266. package/dist/errors.js +0 -44
  267. package/dist/errors.js.map +0 -1
  268. package/dist/factory.d.ts +0 -5
  269. package/dist/factory.d.ts.map +0 -1
  270. package/dist/factory.js +0 -37
  271. package/dist/factory.js.map +0 -1
  272. package/dist/generated/compounds.d.ts +0 -2672
  273. package/dist/generated/compounds.d.ts.map +0 -1
  274. package/dist/generated/compounds.js +0 -2624
  275. package/dist/generated/compounds.js.map +0 -1
  276. package/dist/generated/internal.d.ts +0 -16
  277. package/dist/generated/internal.d.ts.map +0 -1
  278. package/dist/generated/internal.js +0 -3638
  279. package/dist/generated/internal.js.map +0 -1
  280. package/dist/generated/jsx.d.ts +0 -17074
  281. package/dist/generated/jsx.d.ts.map +0 -1
  282. package/dist/generated/jsx.js +0 -6715
  283. package/dist/generated/jsx.js.map +0 -1
  284. package/dist/generated/registry.d.ts +0 -5
  285. package/dist/generated/registry.d.ts.map +0 -1
  286. package/dist/generated/registry.js +0 -13
  287. package/dist/generated/registry.js.map +0 -1
  288. package/dist/host-config.d.ts +0 -24
  289. package/dist/host-config.d.ts.map +0 -1
  290. package/dist/host-config.js +0 -172
  291. package/dist/host-config.js.map +0 -1
  292. package/dist/jsx.d.ts +0 -974
  293. package/dist/jsx.d.ts.map +0 -1
  294. package/dist/jsx.js +0 -8
  295. package/dist/jsx.js.map +0 -1
  296. package/dist/metadata.d.ts +0 -5
  297. package/dist/metadata.d.ts.map +0 -1
  298. package/dist/metadata.js +0 -33
  299. package/dist/metadata.js.map +0 -1
  300. package/dist/node.d.ts +0 -25
  301. package/dist/node.d.ts.map +0 -1
  302. package/dist/node.js +0 -85
  303. package/dist/node.js.map +0 -1
  304. package/dist/nodes/adjustable.d.ts +0 -11
  305. package/dist/nodes/adjustable.d.ts.map +0 -1
  306. package/dist/nodes/adjustable.js +0 -46
  307. package/dist/nodes/adjustable.js.map +0 -1
  308. package/dist/nodes/alert-dialog-response.d.ts +0 -15
  309. package/dist/nodes/alert-dialog-response.d.ts.map +0 -1
  310. package/dist/nodes/alert-dialog-response.js +0 -61
  311. package/dist/nodes/alert-dialog-response.js.map +0 -1
  312. package/dist/nodes/alert-dialog.d.ts +0 -14
  313. package/dist/nodes/alert-dialog.d.ts.map +0 -1
  314. package/dist/nodes/alert-dialog.js +0 -41
  315. package/dist/nodes/alert-dialog.js.map +0 -1
  316. package/dist/nodes/animation.d.ts +0 -39
  317. package/dist/nodes/animation.d.ts.map +0 -1
  318. package/dist/nodes/animation.js +0 -326
  319. package/dist/nodes/animation.js.map +0 -1
  320. package/dist/nodes/application.d.ts +0 -12
  321. package/dist/nodes/application.d.ts.map +0 -1
  322. package/dist/nodes/application.js +0 -51
  323. package/dist/nodes/application.js.map +0 -1
  324. package/dist/nodes/calendar.d.ts +0 -18
  325. package/dist/nodes/calendar.d.ts.map +0 -1
  326. package/dist/nodes/calendar.js +0 -28
  327. package/dist/nodes/calendar.js.map +0 -1
  328. package/dist/nodes/color-dialog-button.d.ts +0 -15
  329. package/dist/nodes/color-dialog-button.d.ts.map +0 -1
  330. package/dist/nodes/color-dialog-button.js +0 -43
  331. package/dist/nodes/color-dialog-button.js.map +0 -1
  332. package/dist/nodes/column-view-column.d.ts +0 -36
  333. package/dist/nodes/column-view-column.d.ts.map +0 -1
  334. package/dist/nodes/column-view-column.js +0 -168
  335. package/dist/nodes/column-view-column.js.map +0 -1
  336. package/dist/nodes/container-slot.d.ts +0 -18
  337. package/dist/nodes/container-slot.d.ts.map +0 -1
  338. package/dist/nodes/container-slot.js +0 -81
  339. package/dist/nodes/container-slot.js.map +0 -1
  340. package/dist/nodes/dialog.d.ts +0 -10
  341. package/dist/nodes/dialog.d.ts.map +0 -1
  342. package/dist/nodes/dialog.js +0 -20
  343. package/dist/nodes/dialog.js.map +0 -1
  344. package/dist/nodes/drawing-area.d.ts +0 -19
  345. package/dist/nodes/drawing-area.d.ts.map +0 -1
  346. package/dist/nodes/drawing-area.js +0 -40
  347. package/dist/nodes/drawing-area.js.map +0 -1
  348. package/dist/nodes/event-controller.d.ts +0 -15
  349. package/dist/nodes/event-controller.d.ts.map +0 -1
  350. package/dist/nodes/event-controller.js +0 -73
  351. package/dist/nodes/event-controller.js.map +0 -1
  352. package/dist/nodes/fixed-child.d.ts +0 -19
  353. package/dist/nodes/fixed-child.d.ts.map +0 -1
  354. package/dist/nodes/fixed-child.js +0 -99
  355. package/dist/nodes/fixed-child.js.map +0 -1
  356. package/dist/nodes/font-dialog-button.d.ts +0 -15
  357. package/dist/nodes/font-dialog-button.d.ts.map +0 -1
  358. package/dist/nodes/font-dialog-button.js +0 -76
  359. package/dist/nodes/font-dialog-button.js.map +0 -1
  360. package/dist/nodes/grid-child.d.ts +0 -19
  361. package/dist/nodes/grid-child.d.ts.map +0 -1
  362. package/dist/nodes/grid-child.js +0 -94
  363. package/dist/nodes/grid-child.js.map +0 -1
  364. package/dist/nodes/internal/accessible.d.ts +0 -5
  365. package/dist/nodes/internal/accessible.d.ts.map +0 -1
  366. package/dist/nodes/internal/accessible.js +0 -119
  367. package/dist/nodes/internal/accessible.js.map +0 -1
  368. package/dist/nodes/internal/bound-item.d.ts +0 -4
  369. package/dist/nodes/internal/bound-item.d.ts.map +0 -1
  370. package/dist/nodes/internal/bound-item.js +0 -2
  371. package/dist/nodes/internal/bound-item.js.map +0 -1
  372. package/dist/nodes/internal/construct.d.ts +0 -3
  373. package/dist/nodes/internal/construct.d.ts.map +0 -1
  374. package/dist/nodes/internal/construct.js +0 -44
  375. package/dist/nodes/internal/construct.js.map +0 -1
  376. package/dist/nodes/internal/predicates.d.ts +0 -51
  377. package/dist/nodes/internal/predicates.d.ts.map +0 -1
  378. package/dist/nodes/internal/predicates.js +0 -36
  379. package/dist/nodes/internal/predicates.js.map +0 -1
  380. package/dist/nodes/internal/props.d.ts +0 -6
  381. package/dist/nodes/internal/props.d.ts.map +0 -1
  382. package/dist/nodes/internal/props.js +0 -43
  383. package/dist/nodes/internal/props.js.map +0 -1
  384. package/dist/nodes/internal/signal-store.d.ts +0 -22
  385. package/dist/nodes/internal/signal-store.d.ts.map +0 -1
  386. package/dist/nodes/internal/signal-store.js +0 -98
  387. package/dist/nodes/internal/signal-store.js.map +0 -1
  388. package/dist/nodes/internal/text-buffer-controller.d.ts +0 -40
  389. package/dist/nodes/internal/text-buffer-controller.d.ts.map +0 -1
  390. package/dist/nodes/internal/text-buffer-controller.js +0 -327
  391. package/dist/nodes/internal/text-buffer-controller.js.map +0 -1
  392. package/dist/nodes/internal/widget.d.ts +0 -8
  393. package/dist/nodes/internal/widget.d.ts.map +0 -1
  394. package/dist/nodes/internal/widget.js +0 -68
  395. package/dist/nodes/internal/widget.js.map +0 -1
  396. package/dist/nodes/level-bar.d.ts +0 -12
  397. package/dist/nodes/level-bar.d.ts.map +0 -1
  398. package/dist/nodes/level-bar.js +0 -24
  399. package/dist/nodes/level-bar.js.map +0 -1
  400. package/dist/nodes/list-item-node.d.ts +0 -12
  401. package/dist/nodes/list-item-node.d.ts.map +0 -1
  402. package/dist/nodes/list-item-node.js +0 -45
  403. package/dist/nodes/list-item-node.js.map +0 -1
  404. package/dist/nodes/list.d.ts +0 -100
  405. package/dist/nodes/list.d.ts.map +0 -1
  406. package/dist/nodes/list.js +0 -950
  407. package/dist/nodes/list.js.map +0 -1
  408. package/dist/nodes/menu.d.ts +0 -7
  409. package/dist/nodes/menu.d.ts.map +0 -1
  410. package/dist/nodes/menu.js +0 -20
  411. package/dist/nodes/menu.js.map +0 -1
  412. package/dist/nodes/models/menu.d.ts +0 -47
  413. package/dist/nodes/models/menu.d.ts.map +0 -1
  414. package/dist/nodes/models/menu.js +0 -240
  415. package/dist/nodes/models/menu.js.map +0 -1
  416. package/dist/nodes/navigation-page.d.ts +0 -19
  417. package/dist/nodes/navigation-page.d.ts.map +0 -1
  418. package/dist/nodes/navigation-page.js +0 -129
  419. package/dist/nodes/navigation-page.js.map +0 -1
  420. package/dist/nodes/navigation-view.d.ts +0 -19
  421. package/dist/nodes/navigation-view.d.ts.map +0 -1
  422. package/dist/nodes/navigation-view.js +0 -51
  423. package/dist/nodes/navigation-view.js.map +0 -1
  424. package/dist/nodes/notebook-page-tab.d.ts +0 -15
  425. package/dist/nodes/notebook-page-tab.d.ts.map +0 -1
  426. package/dist/nodes/notebook-page-tab.js +0 -40
  427. package/dist/nodes/notebook-page-tab.js.map +0 -1
  428. package/dist/nodes/notebook-page.d.ts +0 -29
  429. package/dist/nodes/notebook-page.d.ts.map +0 -1
  430. package/dist/nodes/notebook-page.js +0 -151
  431. package/dist/nodes/notebook-page.js.map +0 -1
  432. package/dist/nodes/notebook.d.ts +0 -16
  433. package/dist/nodes/notebook.d.ts.map +0 -1
  434. package/dist/nodes/notebook.js +0 -31
  435. package/dist/nodes/notebook.js.map +0 -1
  436. package/dist/nodes/overlay-child.d.ts +0 -20
  437. package/dist/nodes/overlay-child.d.ts.map +0 -1
  438. package/dist/nodes/overlay-child.js +0 -109
  439. package/dist/nodes/overlay-child.js.map +0 -1
  440. package/dist/nodes/popover-menu.d.ts +0 -19
  441. package/dist/nodes/popover-menu.d.ts.map +0 -1
  442. package/dist/nodes/popover-menu.js +0 -54
  443. package/dist/nodes/popover-menu.js.map +0 -1
  444. package/dist/nodes/scale.d.ts +0 -10
  445. package/dist/nodes/scale.d.ts.map +0 -1
  446. package/dist/nodes/scale.js +0 -19
  447. package/dist/nodes/scale.js.map +0 -1
  448. package/dist/nodes/scrolled-window.d.ts +0 -11
  449. package/dist/nodes/scrolled-window.d.ts.map +0 -1
  450. package/dist/nodes/scrolled-window.js +0 -18
  451. package/dist/nodes/scrolled-window.js.map +0 -1
  452. package/dist/nodes/search-bar.d.ts +0 -11
  453. package/dist/nodes/search-bar.d.ts.map +0 -1
  454. package/dist/nodes/search-bar.js +0 -16
  455. package/dist/nodes/search-bar.js.map +0 -1
  456. package/dist/nodes/shortcut.d.ts +0 -19
  457. package/dist/nodes/shortcut.d.ts.map +0 -1
  458. package/dist/nodes/shortcut.js +0 -72
  459. package/dist/nodes/shortcut.js.map +0 -1
  460. package/dist/nodes/slot.d.ts +0 -21
  461. package/dist/nodes/slot.d.ts.map +0 -1
  462. package/dist/nodes/slot.js +0 -102
  463. package/dist/nodes/slot.js.map +0 -1
  464. package/dist/nodes/source-view.d.ts +0 -18
  465. package/dist/nodes/source-view.d.ts.map +0 -1
  466. package/dist/nodes/source-view.js +0 -94
  467. package/dist/nodes/source-view.js.map +0 -1
  468. package/dist/nodes/spin-row.d.ts +0 -14
  469. package/dist/nodes/spin-row.d.ts.map +0 -1
  470. package/dist/nodes/spin-row.js +0 -46
  471. package/dist/nodes/spin-row.js.map +0 -1
  472. package/dist/nodes/stack-page.d.ts +0 -22
  473. package/dist/nodes/stack-page.d.ts.map +0 -1
  474. package/dist/nodes/stack-page.js +0 -140
  475. package/dist/nodes/stack-page.js.map +0 -1
  476. package/dist/nodes/stack.d.ts +0 -13
  477. package/dist/nodes/stack.d.ts.map +0 -1
  478. package/dist/nodes/stack.js +0 -21
  479. package/dist/nodes/stack.js.map +0 -1
  480. package/dist/nodes/switch-row.d.ts +0 -11
  481. package/dist/nodes/switch-row.d.ts.map +0 -1
  482. package/dist/nodes/switch-row.js +0 -15
  483. package/dist/nodes/switch-row.js.map +0 -1
  484. package/dist/nodes/text-anchor.d.ts +0 -23
  485. package/dist/nodes/text-anchor.d.ts.map +0 -1
  486. package/dist/nodes/text-anchor.js +0 -74
  487. package/dist/nodes/text-anchor.js.map +0 -1
  488. package/dist/nodes/text-content.d.ts +0 -12
  489. package/dist/nodes/text-content.d.ts.map +0 -1
  490. package/dist/nodes/text-content.js +0 -2
  491. package/dist/nodes/text-content.js.map +0 -1
  492. package/dist/nodes/text-paintable.d.ts +0 -19
  493. package/dist/nodes/text-paintable.d.ts.map +0 -1
  494. package/dist/nodes/text-paintable.js +0 -42
  495. package/dist/nodes/text-paintable.js.map +0 -1
  496. package/dist/nodes/text-segment.d.ts +0 -18
  497. package/dist/nodes/text-segment.d.ts.map +0 -1
  498. package/dist/nodes/text-segment.js +0 -38
  499. package/dist/nodes/text-segment.js.map +0 -1
  500. package/dist/nodes/text-tag.d.ts +0 -38
  501. package/dist/nodes/text-tag.d.ts.map +0 -1
  502. package/dist/nodes/text-tag.js +0 -247
  503. package/dist/nodes/text-tag.js.map +0 -1
  504. package/dist/nodes/text-view.d.ts +0 -29
  505. package/dist/nodes/text-view.d.ts.map +0 -1
  506. package/dist/nodes/text-view.js +0 -80
  507. package/dist/nodes/text-view.js.map +0 -1
  508. package/dist/nodes/toggle-group.d.ts +0 -17
  509. package/dist/nodes/toggle-group.d.ts.map +0 -1
  510. package/dist/nodes/toggle-group.js +0 -65
  511. package/dist/nodes/toggle-group.js.map +0 -1
  512. package/dist/nodes/toggle.d.ts +0 -16
  513. package/dist/nodes/toggle.d.ts.map +0 -1
  514. package/dist/nodes/toggle.js +0 -61
  515. package/dist/nodes/toggle.js.map +0 -1
  516. package/dist/nodes/virtual.d.ts +0 -7
  517. package/dist/nodes/virtual.d.ts.map +0 -1
  518. package/dist/nodes/virtual.js +0 -9
  519. package/dist/nodes/virtual.js.map +0 -1
  520. package/dist/nodes/web-view.d.ts +0 -11
  521. package/dist/nodes/web-view.d.ts.map +0 -1
  522. package/dist/nodes/web-view.js +0 -16
  523. package/dist/nodes/web-view.js.map +0 -1
  524. package/dist/nodes/widget.d.ts +0 -26
  525. package/dist/nodes/widget.d.ts.map +0 -1
  526. package/dist/nodes/widget.js +0 -308
  527. package/dist/nodes/widget.js.map +0 -1
  528. package/dist/nodes/window.d.ts +0 -31
  529. package/dist/nodes/window.d.ts.map +0 -1
  530. package/dist/nodes/window.js +0 -122
  531. package/dist/nodes/window.js.map +0 -1
  532. package/dist/portal.d.ts +0 -29
  533. package/dist/portal.d.ts.map +0 -1
  534. package/dist/portal.js +0 -35
  535. package/dist/portal.js.map +0 -1
  536. package/dist/reconciler.d.ts +0 -34
  537. package/dist/reconciler.d.ts.map +0 -1
  538. package/dist/reconciler.js +0 -48
  539. package/dist/reconciler.js.map +0 -1
  540. package/dist/registry.d.ts +0 -18
  541. package/dist/registry.d.ts.map +0 -1
  542. package/dist/registry.js +0 -98
  543. package/dist/registry.js.map +0 -1
  544. package/dist/render.d.ts +0 -117
  545. package/dist/render.d.ts.map +0 -1
  546. package/dist/render.js +0 -159
  547. package/dist/render.js.map +0 -1
  548. package/dist/types.d.ts +0 -6
  549. package/dist/types.d.ts.map +0 -1
  550. package/dist/types.js.map +0 -1
  551. package/dist/use-property.d.ts +0 -29
  552. package/dist/use-property.d.ts.map +0 -1
  553. package/dist/use-property.js +0 -44
  554. package/dist/use-property.js.map +0 -1
  555. package/dist/use-setting.d.ts +0 -36
  556. package/dist/use-setting.d.ts.map +0 -1
  557. package/dist/use-setting.js +0 -68
  558. package/dist/use-setting.js.map +0 -1
  559. package/src/components/compound.tsx +0 -57
  560. package/src/components/list.tsx +0 -140
  561. package/src/components/slot-widget.tsx +0 -46
  562. package/src/errors.ts +0 -53
  563. package/src/factory.ts +0 -62
  564. package/src/generated/compounds.ts +0 -2741
  565. package/src/generated/internal.ts +0 -3642
  566. package/src/generated/jsx.ts +0 -17383
  567. package/src/generated/registry.ts +0 -17
  568. package/src/host-config.ts +0 -219
  569. package/src/jsx.ts +0 -1033
  570. package/src/metadata.ts +0 -43
  571. package/src/node.ts +0 -107
  572. package/src/nodes/adjustable.ts +0 -68
  573. package/src/nodes/alert-dialog-response.ts +0 -78
  574. package/src/nodes/alert-dialog.ts +0 -55
  575. package/src/nodes/animation.ts +0 -409
  576. package/src/nodes/application.ts +0 -61
  577. package/src/nodes/calendar.ts +0 -42
  578. package/src/nodes/color-dialog-button.ts +0 -69
  579. package/src/nodes/column-view-column.ts +0 -189
  580. package/src/nodes/container-slot.ts +0 -100
  581. package/src/nodes/dialog.ts +0 -25
  582. package/src/nodes/drawing-area.ts +0 -53
  583. package/src/nodes/event-controller.ts +0 -96
  584. package/src/nodes/fixed-child.ts +0 -122
  585. package/src/nodes/font-dialog-button.ts +0 -107
  586. package/src/nodes/grid-child.ts +0 -116
  587. package/src/nodes/internal/accessible.ts +0 -155
  588. package/src/nodes/internal/bound-item.ts +0 -4
  589. package/src/nodes/internal/construct.ts +0 -60
  590. package/src/nodes/internal/predicates.ts +0 -80
  591. package/src/nodes/internal/props.ts +0 -51
  592. package/src/nodes/internal/signal-store.ts +0 -141
  593. package/src/nodes/internal/text-buffer-controller.ts +0 -417
  594. package/src/nodes/internal/widget.ts +0 -74
  595. package/src/nodes/level-bar.ts +0 -36
  596. package/src/nodes/list-item-node.ts +0 -53
  597. package/src/nodes/list.ts +0 -1082
  598. package/src/nodes/menu.ts +0 -27
  599. package/src/nodes/models/menu.ts +0 -314
  600. package/src/nodes/navigation-page.ts +0 -154
  601. package/src/nodes/navigation-view.ts +0 -66
  602. package/src/nodes/notebook-page-tab.ts +0 -55
  603. package/src/nodes/notebook-page.ts +0 -189
  604. package/src/nodes/notebook.ts +0 -42
  605. package/src/nodes/overlay-child.ts +0 -130
  606. package/src/nodes/popover-menu.ts +0 -67
  607. package/src/nodes/scale.ts +0 -28
  608. package/src/nodes/scrolled-window.ts +0 -23
  609. package/src/nodes/search-bar.ts +0 -27
  610. package/src/nodes/shortcut.ts +0 -86
  611. package/src/nodes/slot.ts +0 -138
  612. package/src/nodes/source-view.ts +0 -130
  613. package/src/nodes/spin-row.ts +0 -72
  614. package/src/nodes/stack-page.ts +0 -170
  615. package/src/nodes/stack.ts +0 -35
  616. package/src/nodes/switch-row.ts +0 -26
  617. package/src/nodes/text-anchor.ts +0 -88
  618. package/src/nodes/text-content.ts +0 -14
  619. package/src/nodes/text-paintable.ts +0 -51
  620. package/src/nodes/text-segment.ts +0 -55
  621. package/src/nodes/text-tag.ts +0 -298
  622. package/src/nodes/text-view.ts +0 -100
  623. package/src/nodes/toggle-group.ts +0 -81
  624. package/src/nodes/toggle.ts +0 -72
  625. package/src/nodes/virtual.ts +0 -16
  626. package/src/nodes/web-view.ts +0 -22
  627. package/src/nodes/widget.ts +0 -369
  628. package/src/nodes/window.ts +0 -172
  629. package/src/portal.ts +0 -37
  630. package/src/reconciler.ts +0 -52
  631. package/src/registry.ts +0 -119
  632. package/src/render.tsx +0 -192
  633. package/src/types.ts +0 -13
  634. package/src/use-property.ts +0 -58
  635. package/src/use-setting.ts +0 -96
  636. /package/dist/{types.js → reconciler/types.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-property.js","sourceRoot":"","sources":["../../src/hooks/use-property.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMvD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACvB,MAAqB,EACrB,YAAe;IAEf,OAAO,cAAc,CAAC,MAAM,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpH,CAAC","sourcesContent":["import type * as GObject from \"@gtkx/gi/gobject\";\nimport { propToNotifySignal } from \"../utils/notify-name.js\";\nimport type { ObjectProp } from \"../utils/object-prop.js\";\nimport { useObjectValue } from \"./use-object-value.js\";\n\ntype PropertiesOf<T extends GObject.Object> = NonNullable<T[\"__properties__\"]>;\n\nexport type PropertyNameOf<T extends GObject.Object> = keyof PropertiesOf<T> & keyof T & string;\n\n/**\n * Subscribes to a GObject property and returns its current value, re-rendering when the property changes.\n *\n * @param object The GObject (or ref to one) whose property to observe.\n * @param propertyName The camelCase name of a readable property on the object.\n * @returns The current property value, or `undefined` when the object is not resolved.\n */\nexport function useProperty<T extends GObject.Object, K extends PropertyNameOf<T>>(\n object: ObjectProp<T>,\n propertyName: K,\n): T[K] | undefined {\n return useObjectValue(object, propToNotifySignal(propertyName), (obj) => (obj ? obj[propertyName] : undefined));\n}\n"]}
@@ -0,0 +1,25 @@
1
+ import * as Gio from "@gtkx/gi/gio";
2
+ /**
3
+ * A typed reference to a GSettings schema: its id, path, and the mapping of typed keys to their setting names.
4
+ */
5
+ export type SchemaRef<K extends object = Record<string, unknown>> = {
6
+ id: string;
7
+ /** The schema's object path, or `null` to use the schema's default path. */
8
+ path: string | null;
9
+ /** Maps each typed key of `K` to its corresponding GSettings key name. */
10
+ keys: {
11
+ [P in keyof K]: string;
12
+ };
13
+ /** Phantom field carrying the value type `K`; never populated at runtime. */
14
+ __keys__?: K;
15
+ };
16
+ export declare const useSettingsInstance: ({ id, path }: Pick<SchemaRef, "id" | "path">) => Gio.Settings;
17
+ /**
18
+ * Reads and writes a single key of a GSettings schema, re-rendering when the stored value changes.
19
+ *
20
+ * @param schema The schema reference identifying the settings backend.
21
+ * @param key The key within the schema to read and write.
22
+ * @returns A tuple of the current value and a setter that persists a new value.
23
+ */
24
+ export declare function useSetting<K extends object, P extends keyof K & string>(schema: SchemaRef<K>, key: P): [K[P], (value: K[P]) => void];
25
+ //# sourceMappingURL=use-setting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-setting.d.ts","sourceRoot":"","sources":["../../src/hooks/use-setting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AAKpC;;GAEG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0EAA0E;IAC1E,IAAI,EAAE;SAAG,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM;KAAE,CAAC;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,CAAC,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,mBAAmB,iBAAkB,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC,KAAG,GAAG,CAAC,QACyB,CAAC;AAEjH;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,GAAG,MAAM,EACnE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,GAAG,EAAE,CAAC,GACP,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import * as Gio from "@gtkx/gi/gio";
2
+ import { useCallback, useMemo } from "react";
3
+ import { resolveAccessor } from "../utils/settings-accessor.js";
4
+ import { useObjectValue } from "./use-object-value.js";
5
+ export const useSettingsInstance = ({ id, path }) => useMemo(() => (path === null ? Gio.Settings.new(id) : new Gio.Settings({ schemaId: id, path })), [id, path]);
6
+ export function useSetting(schema, key) {
7
+ const accessor = resolveAccessor(schema.keys[key], key, schema.id);
8
+ const settings = useSettingsInstance(schema);
9
+ const value = useObjectValue(settings, `changed::${key}`, () => accessor.read(settings, key));
10
+ const set = useCallback((newValue) => {
11
+ accessor.write(settings, key, newValue);
12
+ }, [accessor, settings, key]);
13
+ return [value, set];
14
+ }
15
+ //# sourceMappingURL=use-setting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-setting.js","sourceRoot":"","sources":["../../src/hooks/use-setting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAevD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAkC,EAAgB,EAAE,CAC9F,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;AAajH,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,GAAW;IACrD,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAE9F,MAAM,GAAG,GAAG,WAAW,CACnB,CAAC,QAAiB,EAAE,EAAE;QAClB,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,CAAC,CAC5B,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACxB,CAAC","sourcesContent":["import * as Gio from \"@gtkx/gi/gio\";\nimport { useCallback, useMemo } from \"react\";\nimport { resolveAccessor } from \"../utils/settings-accessor.js\";\nimport { useObjectValue } from \"./use-object-value.js\";\n\n/**\n * A typed reference to a GSettings schema: its id, path, and the mapping of typed keys to their setting names.\n */\nexport type SchemaRef<K extends object = Record<string, unknown>> = {\n id: string;\n /** The schema's object path, or `null` to use the schema's default path. */\n path: string | null;\n /** Maps each typed key of `K` to its corresponding GSettings key name. */\n keys: { [P in keyof K]: string };\n /** Phantom field carrying the value type `K`; never populated at runtime. */\n __keys__?: K;\n};\n\nexport const useSettingsInstance = ({ id, path }: Pick<SchemaRef, \"id\" | \"path\">): Gio.Settings =>\n useMemo(() => (path === null ? Gio.Settings.new(id) : new Gio.Settings({ schemaId: id, path })), [id, path]);\n\n/**\n * Reads and writes a single key of a GSettings schema, re-rendering when the stored value changes.\n *\n * @param schema The schema reference identifying the settings backend.\n * @param key The key within the schema to read and write.\n * @returns A tuple of the current value and a setter that persists a new value.\n */\nexport function useSetting<K extends object, P extends keyof K & string>(\n schema: SchemaRef<K>,\n key: P,\n): [K[P], (value: K[P]) => void];\nexport function useSetting(schema: SchemaRef, key: string): [unknown, (value: unknown) => void] {\n const accessor = resolveAccessor(schema.keys[key], key, schema.id);\n const settings = useSettingsInstance(schema);\n\n const value = useObjectValue(settings, `changed::${key}`, () => accessor.read(settings, key));\n\n const set = useCallback(\n (newValue: unknown) => {\n accessor.write(settings, key, newValue);\n },\n [accessor, settings, key],\n );\n\n return [value, set];\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import type * as GObject from "@gtkx/gi/gobject";
2
+ import type { ObjectProp } from "../utils/object-prop.js";
3
+ type AnySignalHandler = (...args: unknown[]) => unknown;
4
+ type SignalsOf<T extends GObject.Object> = NonNullable<T["__signals__"]>;
5
+ export type SignalNameOf<T extends GObject.Object> = (keyof SignalsOf<T> & string) | `${keyof SignalsOf<T> & string}::${string}`;
6
+ export type SignalHandlerFor<T extends GObject.Object, S extends string> = S extends keyof SignalsOf<T> ? SignalsOf<T>[S] : S extends `${infer TBase}::${string}` ? TBase extends keyof SignalsOf<T> ? SignalsOf<T>[TBase] : AnySignalHandler : AnySignalHandler;
7
+ type UseSignalOptions = {
8
+ after?: boolean;
9
+ immediate?: boolean;
10
+ };
11
+ /**
12
+ * Connects a handler to a GObject signal for the lifetime of the component, reconnecting when the object changes.
13
+ *
14
+ * @param object The GObject (or ref to one) to connect to.
15
+ * @param signal The signal name, optionally with a detail suffix.
16
+ * @param handler The callback invoked when the signal is emitted.
17
+ * @param options Connection options such as running after the default handler or invoking immediately.
18
+ */
19
+ export declare function useSignal<T extends GObject.Object, S extends SignalNameOf<T>>(object: ObjectProp<T>, signal: S, handler: SignalHandlerFor<T, S>, options?: UseSignalOptions): void;
20
+ export {};
21
+ //# sourceMappingURL=use-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-signal.d.ts","sourceRoot":"","sources":["../../src/hooks/use-signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAG1D,KAAK,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;AAExD,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAEzE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,IAC3C,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAC7B,GAAG,MAAM,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC;AAElD,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,MAAM,SAAS,CAAC,CAAC,CAAC,GACjG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACf,CAAC,SAAS,GAAG,MAAM,KAAK,KAAK,MAAM,EAAE,GACnC,KAAK,SAAS,MAAM,SAAS,CAAC,CAAC,CAAC,GAC5B,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GACnB,gBAAgB,GACpB,gBAAgB,CAAC;AAEzB,KAAK,gBAAgB,GAAG;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AASF;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,EAAE,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EACzE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,EACrB,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,EAC/B,OAAO,CAAC,EAAE,gBAAgB,GAC3B,IAAI,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { useRef } from "react";
2
+ import { useObjectAttachment } from "./use-object-attachment.js";
3
+ export function useSignal(object, signal, handler, options) {
4
+ const handlerRef = useRef(handler);
5
+ handlerRef.current = handler;
6
+ const after = options?.after ?? false;
7
+ const immediate = options?.immediate ?? false;
8
+ useObjectAttachment(object, {
9
+ attach: (obj) => {
10
+ const listener = (...args) => handlerRef.current(...args);
11
+ obj.on(signal, listener, after);
12
+ if (immediate)
13
+ handlerRef.current();
14
+ return { obj, signal, after, listener };
15
+ },
16
+ detach: (subscription) => subscription.obj.off(subscription.signal, subscription.listener),
17
+ isSame: (subscription, obj) => subscription.obj === obj && subscription.signal === signal && subscription.after === after,
18
+ });
19
+ }
20
+ //# sourceMappingURL=use-signal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-signal.js","sourceRoot":"","sources":["../../src/hooks/use-signal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AA4CjE,MAAM,UAAU,SAAS,CACrB,MAAkC,EAClC,MAAc,EACd,OAAyB,EACzB,OAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;IAC7B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC;IACtC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,KAAK,CAAC;IAE9C,mBAAmB,CAAqC,MAAM,EAAE;QAC5D,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,QAAQ,GAAkB,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;YACzE,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAChC,IAAI,SAAS;gBAAE,UAAU,CAAC,OAAO,EAAE,CAAC;YACpC,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC5C,CAAC;QACD,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC;QAC1F,MAAM,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE,EAAE,CAC1B,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,KAAK,KAAK;KACjG,CAAC,CAAC;AACP,CAAC","sourcesContent":["import type * as GObject from \"@gtkx/gi/gobject\";\nimport type { SignalHandler } from \"@gtkx/runtime\";\nimport { useRef } from \"react\";\nimport type { ObjectProp } from \"../utils/object-prop.js\";\nimport { useObjectAttachment } from \"./use-object-attachment.js\";\n\ntype AnySignalHandler = (...args: unknown[]) => unknown;\n\ntype SignalsOf<T extends GObject.Object> = NonNullable<T[\"__signals__\"]>;\n\nexport type SignalNameOf<T extends GObject.Object> =\n | (keyof SignalsOf<T> & string)\n | `${keyof SignalsOf<T> & string}::${string}`;\n\nexport type SignalHandlerFor<T extends GObject.Object, S extends string> = S extends keyof SignalsOf<T>\n ? SignalsOf<T>[S]\n : S extends `${infer TBase}::${string}`\n ? TBase extends keyof SignalsOf<T>\n ? SignalsOf<T>[TBase]\n : AnySignalHandler\n : AnySignalHandler;\n\ntype UseSignalOptions = {\n after?: boolean;\n immediate?: boolean;\n};\n\ntype SignalSubscription = {\n obj: GObject.Object;\n signal: string;\n after: boolean;\n listener: SignalHandler;\n};\n\n/**\n * Connects a handler to a GObject signal for the lifetime of the component, reconnecting when the object changes.\n *\n * @param object The GObject (or ref to one) to connect to.\n * @param signal The signal name, optionally with a detail suffix.\n * @param handler The callback invoked when the signal is emitted.\n * @param options Connection options such as running after the default handler or invoking immediately.\n */\nexport function useSignal<T extends GObject.Object, S extends SignalNameOf<T>>(\n object: ObjectProp<T>,\n signal: S,\n handler: SignalHandlerFor<T, S>,\n options?: UseSignalOptions,\n): void;\nexport function useSignal(\n object: ObjectProp<GObject.Object>,\n signal: string,\n handler: AnySignalHandler,\n options?: UseSignalOptions,\n): void {\n const handlerRef = useRef(handler);\n handlerRef.current = handler;\n const after = options?.after ?? false;\n const immediate = options?.immediate ?? false;\n\n useObjectAttachment<GObject.Object, SignalSubscription>(object, {\n attach: (obj) => {\n const listener: SignalHandler = (...args) => handlerRef.current(...args);\n obj.on(signal, listener, after);\n if (immediate) handlerRef.current();\n return { obj, signal, after, listener };\n },\n detach: (subscription) => subscription.obj.off(subscription.signal, subscription.listener),\n isSame: (subscription, obj) =>\n subscription.obj === obj && subscription.signal === signal && subscription.after === after,\n });\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,15 @@
1
- export { GtkxError } from "./errors.js";
2
- export * from "./jsx.js";
3
- export { createPortal } from "./portal.js";
4
- export { reconciler } from "./reconciler.js";
5
- export { ApplicationContext, quit, render, setHotReloading, update, useApplication, } from "./render.js";
6
- export { useProperty } from "./use-property.js";
7
- export { useSetting } from "./use-setting.js";
1
+ import "./utils/wrapper-node-jsx.js";
2
+ export type { ElementProp } from "@gtkx/config";
3
+ export { useApplication } from "./hooks/use-application.js";
4
+ export { useBindSetting } from "./hooks/use-bind-setting.js";
5
+ export { useParentWindow } from "./hooks/use-parent-window.js";
6
+ export { useProperty } from "./hooks/use-property.js";
7
+ export { type SchemaRef, useSetting } from "./hooks/use-setting.js";
8
+ export { useSignal } from "./hooks/use-signal.js";
9
+ export type { AccessibleProps } from "./reconciler/accessible.js";
10
+ export { createPortal } from "./reconciler/portal.js";
11
+ export { createRoot, quit, type Root } from "./reconciler/render.js";
12
+ export { type RootElement, rootElement } from "./reconciler/root-element.js";
13
+ export type { ObjectProp } from "./utils/object-prop.js";
14
+ export type { TextAnchorProps, TextPaintableProps } from "./utils/wrapper-node-jsx.js";
8
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACH,kBAAkB,EAClB,IAAI,EACJ,MAAM,EACN,eAAe,EACf,MAAM,EACN,cAAc,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AAErC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC7E,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}
package/dist/index.js CHANGED
@@ -1,8 +1,11 @@
1
- export { GtkxError } from "./errors.js";
2
- export * from "./jsx.js";
3
- export { createPortal } from "./portal.js";
4
- export { reconciler } from "./reconciler.js";
5
- export { ApplicationContext, quit, render, setHotReloading, update, useApplication, } from "./render.js";
6
- export { useProperty } from "./use-property.js";
7
- export { useSetting } from "./use-setting.js";
1
+ import "./utils/wrapper-node-jsx.js";
2
+ export { useApplication } from "./hooks/use-application.js";
3
+ export { useBindSetting } from "./hooks/use-bind-setting.js";
4
+ export { useParentWindow } from "./hooks/use-parent-window.js";
5
+ export { useProperty } from "./hooks/use-property.js";
6
+ export { useSetting } from "./hooks/use-setting.js";
7
+ export { useSignal } from "./hooks/use-signal.js";
8
+ export { createPortal } from "./reconciler/portal.js";
9
+ export { createRoot, quit } from "./reconciler/render.js";
10
+ export { rootElement } from "./reconciler/root-element.js";
8
11
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACH,kBAAkB,EAClB,IAAI,EACJ,MAAM,EACN,eAAe,EACf,MAAM,EACN,cAAc,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,6BAA6B,CAAC;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAkB,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAa,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAoB,WAAW,EAAE,MAAM,8BAA8B,CAAC","sourcesContent":["import \"./utils/wrapper-node-jsx.js\";\n\nexport type { ElementProp } from \"@gtkx/config\";\nexport { useApplication } from \"./hooks/use-application.js\";\nexport { useBindSetting } from \"./hooks/use-bind-setting.js\";\nexport { useParentWindow } from \"./hooks/use-parent-window.js\";\nexport { useProperty } from \"./hooks/use-property.js\";\nexport { type SchemaRef, useSetting } from \"./hooks/use-setting.js\";\nexport { useSignal } from \"./hooks/use-signal.js\";\nexport type { AccessibleProps } from \"./reconciler/accessible.js\";\nexport { createPortal } from \"./reconciler/portal.js\";\nexport { createRoot, quit, type Root } from \"./reconciler/render.js\";\nexport { type RootElement, rootElement } from \"./reconciler/root-element.js\";\nexport type { ObjectProp } from \"./utils/object-prop.js\";\nexport type { TextAnchorProps, TextPaintableProps } from \"./utils/wrapper-node-jsx.js\";\n"]}
@@ -0,0 +1,14 @@
1
+ export { createApplicationComponent } from "./components/application.js";
2
+ export { createWindowComponent } from "./components/window.js";
3
+ export { ApplicationContext } from "./hooks/use-application.js";
4
+ export { useMergeRefs } from "./hooks/use-merge-refs.js";
5
+ export { useObjectAttachment } from "./hooks/use-object-attachment.js";
6
+ export { useObjectValue } from "./hooks/use-object-value.js";
7
+ export { setReconcilerErrorHandler } from "./reconciler/reconciler-error-handler.js";
8
+ export { createReconcilerRoot, type ReconcilerRoot } from "./reconciler/reconciler-root.js";
9
+ export { isRootElement } from "./reconciler/root-element.js";
10
+ export { BUFFER_TEXT_KIND, CONTAINER_PROP_KIND, isWrapperKind, LABEL_TEXT_KIND, LAZY_ELEMENT_KIND, OBJECT_PROP_KIND, TEXT_ANCHOR_KIND, TEXT_PAINTABLE_KIND, WRAPPER_NODE_ELEMENT, type WrapperKind, } from "./reconciler/wrapper-protocol.js";
11
+ export { getAccessibleMetadata } from "./utils/accessible-metadata.js";
12
+ export { createElementComponent, createLazyElementComponent } from "./utils/create-element-component.js";
13
+ export { type ObjectProp, resolveObjectProp } from "./utils/object-prop.js";
14
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,WAAW,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACzG,OAAO,EAAE,KAAK,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export { createApplicationComponent } from "./components/application.js";
2
+ export { createWindowComponent } from "./components/window.js";
3
+ export { ApplicationContext } from "./hooks/use-application.js";
4
+ export { useMergeRefs } from "./hooks/use-merge-refs.js";
5
+ export { useObjectAttachment } from "./hooks/use-object-attachment.js";
6
+ export { useObjectValue } from "./hooks/use-object-value.js";
7
+ export { setReconcilerErrorHandler } from "./reconciler/reconciler-error-handler.js";
8
+ export { createReconcilerRoot } from "./reconciler/reconciler-root.js";
9
+ export { isRootElement } from "./reconciler/root-element.js";
10
+ export { BUFFER_TEXT_KIND, CONTAINER_PROP_KIND, isWrapperKind, LABEL_TEXT_KIND, LAZY_ELEMENT_KIND, OBJECT_PROP_KIND, TEXT_ANCHOR_KIND, TEXT_PAINTABLE_KIND, WRAPPER_NODE_ELEMENT, } from "./reconciler/wrapper-protocol.js";
11
+ export { getAccessibleMetadata } from "./utils/accessible-metadata.js";
12
+ export { createElementComponent, createLazyElementComponent } from "./utils/create-element-component.js";
13
+ export { resolveObjectProp } from "./utils/object-prop.js";
14
+ //# sourceMappingURL=internal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAuB,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACH,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,GAEvB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACzG,OAAO,EAAmB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC","sourcesContent":["export { createApplicationComponent } from \"./components/application.js\";\nexport { createWindowComponent } from \"./components/window.js\";\nexport { ApplicationContext } from \"./hooks/use-application.js\";\nexport { useMergeRefs } from \"./hooks/use-merge-refs.js\";\nexport { useObjectAttachment } from \"./hooks/use-object-attachment.js\";\nexport { useObjectValue } from \"./hooks/use-object-value.js\";\nexport { setReconcilerErrorHandler } from \"./reconciler/reconciler-error-handler.js\";\nexport { createReconcilerRoot, type ReconcilerRoot } from \"./reconciler/reconciler-root.js\";\nexport { isRootElement } from \"./reconciler/root-element.js\";\nexport {\n BUFFER_TEXT_KIND,\n CONTAINER_PROP_KIND,\n isWrapperKind,\n LABEL_TEXT_KIND,\n LAZY_ELEMENT_KIND,\n OBJECT_PROP_KIND,\n TEXT_ANCHOR_KIND,\n TEXT_PAINTABLE_KIND,\n WRAPPER_NODE_ELEMENT,\n type WrapperKind,\n} from \"./reconciler/wrapper-protocol.js\";\nexport { getAccessibleMetadata } from \"./utils/accessible-metadata.js\";\nexport { createElementComponent, createLazyElementComponent } from \"./utils/create-element-component.js\";\nexport { type ObjectProp, resolveObjectProp } from \"./utils/object-prop.js\";\n"]}
@@ -0,0 +1,8 @@
1
+ import type * as Adw from "@gtkx/gi/adw";
2
+ import { type ElementType, type ReactNode, type Ref } from "react";
3
+ type DialogComponentProps = {
4
+ ref?: Ref<Adw.Dialog | null> | undefined;
5
+ };
6
+ export declare const createDialogComponent: (Component: ElementType) => ((props: DialogComponentProps) => ReactNode);
7
+ export {};
8
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/libraries/adw/dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,EAA0C,MAAM,OAAO,CAAC;AAM3G,KAAK,oBAAoB,GAAG;IACxB,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;CAC5C,CAAC;AAEF,eAAO,MAAM,qBAAqB,cAAe,WAAW,KAAG,CAAC,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,CAsBzG,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useLayoutEffect, useState } from "react";
3
+ import { useMergeRefs } from "../../hooks/use-merge-refs.js";
4
+ import { useParentWindow } from "../../hooks/use-parent-window.js";
5
+ import { createPortal } from "../../reconciler/portal.js";
6
+ import { rootElement } from "../../reconciler/root-element.js";
7
+ export const createDialogComponent = (Component) => {
8
+ return ({ ref, ...rest }) => {
9
+ const parent = useParentWindow();
10
+ const [dialog, setDialog] = useState(null);
11
+ const handleMount = useCallback((instance) => {
12
+ setDialog(instance);
13
+ return () => {
14
+ instance.forceClose();
15
+ setDialog(null);
16
+ };
17
+ }, []);
18
+ useLayoutEffect(() => {
19
+ dialog?.present(parent);
20
+ }, [dialog, parent]);
21
+ const mergedRef = useMergeRefs(ref, handleMount);
22
+ return createPortal(_jsx(Component, { ref: mergedRef, ...rest }), rootElement);
23
+ };
24
+ };
25
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../src/libraries/adw/dialog.tsx"],"names":[],"mappings":";AACA,OAAO,EAA8C,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAM/D,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,SAAsB,EAAgD,EAAE;IAC1G,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,EAAwB,EAAa,EAAE;QACzD,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;QACjC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAC;QAE9D,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,QAAoB,EAAE,EAAE;YACrD,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEpB,OAAO,GAAG,EAAE;gBACR,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACtB,SAAS,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC,CAAC;QACN,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,eAAe,CAAC,GAAG,EAAE;YACjB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAErB,MAAM,SAAS,GAAG,YAAY,CAAa,GAAG,EAAE,WAAW,CAAC,CAAC;QAE7D,OAAO,YAAY,CAAC,KAAC,SAAS,IAAC,GAAG,EAAE,SAAS,KAAM,IAAI,GAAI,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC,CAAC;AACN,CAAC,CAAC","sourcesContent":["import type * as Adw from \"@gtkx/gi/adw\";\nimport { type ElementType, type ReactNode, type Ref, useCallback, useLayoutEffect, useState } from \"react\";\nimport { useMergeRefs } from \"../../hooks/use-merge-refs.js\";\nimport { useParentWindow } from \"../../hooks/use-parent-window.js\";\nimport { createPortal } from \"../../reconciler/portal.js\";\nimport { rootElement } from \"../../reconciler/root-element.js\";\n\ntype DialogComponentProps = {\n ref?: Ref<Adw.Dialog | null> | undefined;\n};\n\nexport const createDialogComponent = (Component: ElementType): ((props: DialogComponentProps) => ReactNode) => {\n return ({ ref, ...rest }: DialogComponentProps): ReactNode => {\n const parent = useParentWindow();\n const [dialog, setDialog] = useState<Adw.Dialog | null>(null);\n\n const handleMount = useCallback((instance: Adw.Dialog) => {\n setDialog(instance);\n\n return () => {\n instance.forceClose();\n setDialog(null);\n };\n }, []);\n\n useLayoutEffect(() => {\n dialog?.present(parent);\n }, [dialog, parent]);\n\n const mergedRef = useMergeRefs<Adw.Dialog>(ref, handleMount);\n\n return createPortal(<Component ref={mergedRef} {...rest} />, rootElement);\n };\n};\n"]}
@@ -0,0 +1,2 @@
1
+ export { createDialogComponent } from "./dialog.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/libraries/adw/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { createDialogComponent } from "./dialog.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/libraries/adw/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC","sourcesContent":["export { createDialogComponent } from \"./dialog.js\";\n"]}
@@ -0,0 +1,59 @@
1
+ import * as Gtk from "@gtkx/gi/gtk";
2
+ import type { Props } from "./types.js";
3
+ /**
4
+ * Accessibility props available on every widget. Each member maps to a GTK4 accessible attribute
5
+ * (a `Gtk.AccessibleProperty`, `Gtk.AccessibleState`, or `Gtk.AccessibleRelation`) and is applied
6
+ * to the widget's accessible interface; setting a member to `undefined` resets that attribute to its default.
7
+ */
8
+ export interface AccessibleProps {
9
+ accessibleAutocomplete?: Gtk.AccessibleAutocomplete | null | undefined;
10
+ accessibleDescription?: string | null | undefined;
11
+ accessibleHasPopup?: boolean | null | undefined;
12
+ accessibleKeyShortcuts?: string | null | undefined;
13
+ accessibleLabel?: string | null | undefined;
14
+ accessibleLevel?: number | null | undefined;
15
+ accessibleModal?: boolean | null | undefined;
16
+ accessibleMultiLine?: boolean | null | undefined;
17
+ accessibleMultiSelectable?: boolean | null | undefined;
18
+ accessibleOrientation?: Gtk.Orientation | null | undefined;
19
+ accessiblePlaceholder?: string | null | undefined;
20
+ accessibleReadOnly?: boolean | null | undefined;
21
+ accessibleRequired?: boolean | null | undefined;
22
+ accessibleRoleDescription?: string | null | undefined;
23
+ accessibleSort?: Gtk.AccessibleSort | null | undefined;
24
+ accessibleValueMax?: number | null | undefined;
25
+ accessibleValueMin?: number | null | undefined;
26
+ accessibleValueNow?: number | null | undefined;
27
+ accessibleValueText?: string | null | undefined;
28
+ accessibleHelpText?: string | null | undefined;
29
+ accessibleBusy?: boolean | null | undefined;
30
+ accessibleChecked?: Gtk.AccessibleTristate | null | undefined;
31
+ accessibleDisabled?: boolean | null | undefined;
32
+ accessibleExpanded?: boolean | null | undefined;
33
+ accessibleHidden?: boolean | null | undefined;
34
+ accessibleInvalid?: Gtk.AccessibleInvalidState | null | undefined;
35
+ accessiblePressed?: Gtk.AccessibleTristate | null | undefined;
36
+ accessibleSelected?: boolean | null | undefined;
37
+ accessibleVisited?: boolean | null | undefined;
38
+ accessibleActiveDescendant?: Gtk.Widget | null | undefined;
39
+ accessibleColCount?: number | null | undefined;
40
+ accessibleColIndex?: number | null | undefined;
41
+ accessibleColIndexText?: string | null | undefined;
42
+ accessibleColSpan?: number | null | undefined;
43
+ accessibleControls?: Gtk.Widget[] | null | undefined;
44
+ accessibleDescribedBy?: Gtk.Widget[] | null | undefined;
45
+ accessibleDetails?: Gtk.Widget[] | null | undefined;
46
+ accessibleErrorMessage?: Gtk.Widget[] | null | undefined;
47
+ accessibleFlowTo?: Gtk.Widget[] | null | undefined;
48
+ accessibleLabelledBy?: Gtk.Widget[] | null | undefined;
49
+ accessibleOwns?: Gtk.Widget[] | null | undefined;
50
+ accessiblePosInSet?: number | null | undefined;
51
+ accessibleRowCount?: number | null | undefined;
52
+ accessibleRowIndex?: number | null | undefined;
53
+ accessibleRowIndexText?: string | null | undefined;
54
+ accessibleRowSpan?: number | null | undefined;
55
+ accessibleSetSize?: number | null | undefined;
56
+ }
57
+ export declare const isAccessibleProp: (name: string) => boolean;
58
+ export declare const applyAccessibleProps: (widget: Gtk.Accessible, oldProps: Props | null, newProps: Props) => void;
59
+ //# sourceMappingURL=accessible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessible.d.ts","sourceRoot":"","sources":["../../src/reconciler/accessible.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ import * as GObject from "@gtkx/gi/gobject";
2
+ import * as Gtk from "@gtkx/gi/gtk";
3
+ import { deleteAccessibleMetadata, setAccessibleMetadata } from "../utils/accessible-metadata.js";
4
+ const fromString = (val) => GObject.buildValue(GObject.TYPE_STRING, (v) => v.setString(val));
5
+ const fromBoolean = (val) => GObject.buildValue(GObject.TYPE_BOOLEAN, (v) => v.setBoolean(val));
6
+ const fromInt = (val) => GObject.buildValue(GObject.TYPE_INT, (v) => v.setInt(val));
7
+ const fromDouble = (val) => GObject.buildValue(GObject.TYPE_DOUBLE, (v) => v.setDouble(val));
8
+ const fromObject = (val) => GObject.buildValue(GObject.TYPE_OBJECT, (v) => v.setObject(val));
9
+ const fromRefList = (val) => {
10
+ const widgets = val;
11
+ const list = Gtk.AccessibleList.newFromList(widgets);
12
+ return GObject.buildValue(Gtk.AccessibleList.prototype.__type__, (v) => v.setBoxed(list));
13
+ };
14
+ const property = (enumValue, createValue) => ({
15
+ kind: "property",
16
+ enumValue,
17
+ createValue,
18
+ });
19
+ const state = (enumValue, createValue) => ({
20
+ kind: "state",
21
+ enumValue,
22
+ createValue,
23
+ });
24
+ const relation = (enumValue, createValue) => ({
25
+ kind: "relation",
26
+ enumValue,
27
+ createValue,
28
+ });
29
+ const ACCESSIBLE_PROP_MAP = {
30
+ accessibleAutocomplete: property(Gtk.AccessibleProperty.AUTOCOMPLETE, fromInt),
31
+ accessibleDescription: property(Gtk.AccessibleProperty.DESCRIPTION, fromString),
32
+ accessibleHasPopup: property(Gtk.AccessibleProperty.HAS_POPUP, fromBoolean),
33
+ accessibleKeyShortcuts: property(Gtk.AccessibleProperty.KEY_SHORTCUTS, fromString),
34
+ accessibleLabel: property(Gtk.AccessibleProperty.LABEL, fromString),
35
+ accessibleLevel: property(Gtk.AccessibleProperty.LEVEL, fromInt),
36
+ accessibleModal: property(Gtk.AccessibleProperty.MODAL, fromBoolean),
37
+ accessibleMultiLine: property(Gtk.AccessibleProperty.MULTI_LINE, fromBoolean),
38
+ accessibleMultiSelectable: property(Gtk.AccessibleProperty.MULTI_SELECTABLE, fromBoolean),
39
+ accessibleOrientation: property(Gtk.AccessibleProperty.ORIENTATION, fromInt),
40
+ accessiblePlaceholder: property(Gtk.AccessibleProperty.PLACEHOLDER, fromString),
41
+ accessibleReadOnly: property(Gtk.AccessibleProperty.READ_ONLY, fromBoolean),
42
+ accessibleRequired: property(Gtk.AccessibleProperty.REQUIRED, fromBoolean),
43
+ accessibleRoleDescription: property(Gtk.AccessibleProperty.ROLE_DESCRIPTION, fromString),
44
+ accessibleSort: property(Gtk.AccessibleProperty.SORT, fromInt),
45
+ accessibleValueMax: property(Gtk.AccessibleProperty.VALUE_MAX, fromDouble),
46
+ accessibleValueMin: property(Gtk.AccessibleProperty.VALUE_MIN, fromDouble),
47
+ accessibleValueNow: property(Gtk.AccessibleProperty.VALUE_NOW, fromDouble),
48
+ accessibleValueText: property(Gtk.AccessibleProperty.VALUE_TEXT, fromString),
49
+ accessibleHelpText: property(Gtk.AccessibleProperty.HELP_TEXT, fromString),
50
+ accessibleBusy: state(Gtk.AccessibleState.BUSY, fromBoolean),
51
+ accessibleChecked: state(Gtk.AccessibleState.CHECKED, fromInt),
52
+ accessibleDisabled: state(Gtk.AccessibleState.DISABLED, fromBoolean),
53
+ accessibleExpanded: state(Gtk.AccessibleState.EXPANDED, fromInt),
54
+ accessibleHidden: state(Gtk.AccessibleState.HIDDEN, fromBoolean),
55
+ accessibleInvalid: state(Gtk.AccessibleState.INVALID, fromInt),
56
+ accessiblePressed: state(Gtk.AccessibleState.PRESSED, fromInt),
57
+ accessibleSelected: state(Gtk.AccessibleState.SELECTED, fromInt),
58
+ accessibleVisited: state(Gtk.AccessibleState.VISITED, fromInt),
59
+ accessibleActiveDescendant: relation(Gtk.AccessibleRelation.ACTIVE_DESCENDANT, fromObject),
60
+ accessibleColCount: relation(Gtk.AccessibleRelation.COL_COUNT, fromInt),
61
+ accessibleColIndex: relation(Gtk.AccessibleRelation.COL_INDEX, fromInt),
62
+ accessibleColIndexText: relation(Gtk.AccessibleRelation.COL_INDEX_TEXT, fromString),
63
+ accessibleColSpan: relation(Gtk.AccessibleRelation.COL_SPAN, fromInt),
64
+ accessibleControls: relation(Gtk.AccessibleRelation.CONTROLS, fromRefList),
65
+ accessibleDescribedBy: relation(Gtk.AccessibleRelation.DESCRIBED_BY, fromRefList),
66
+ accessibleDetails: relation(Gtk.AccessibleRelation.DETAILS, fromRefList),
67
+ accessibleErrorMessage: relation(Gtk.AccessibleRelation.ERROR_MESSAGE, fromRefList),
68
+ accessibleFlowTo: relation(Gtk.AccessibleRelation.FLOW_TO, fromRefList),
69
+ accessibleLabelledBy: relation(Gtk.AccessibleRelation.LABELLED_BY, fromRefList),
70
+ accessibleOwns: relation(Gtk.AccessibleRelation.OWNS, fromRefList),
71
+ accessiblePosInSet: relation(Gtk.AccessibleRelation.POS_IN_SET, fromInt),
72
+ accessibleRowCount: relation(Gtk.AccessibleRelation.ROW_COUNT, fromInt),
73
+ accessibleRowIndex: relation(Gtk.AccessibleRelation.ROW_INDEX, fromInt),
74
+ accessibleRowIndexText: relation(Gtk.AccessibleRelation.ROW_INDEX_TEXT, fromString),
75
+ accessibleRowSpan: relation(Gtk.AccessibleRelation.ROW_SPAN, fromInt),
76
+ accessibleSetSize: relation(Gtk.AccessibleRelation.SET_SIZE, fromInt),
77
+ };
78
+ const lookupDescriptor = (name) => Object.hasOwn(ACCESSIBLE_PROP_MAP, name) ? ACCESSIBLE_PROP_MAP[name] : undefined;
79
+ export const isAccessibleProp = (name) => Object.hasOwn(ACCESSIBLE_PROP_MAP, name);
80
+ function applyDescriptor(widget, descriptor, newValue) {
81
+ const gvalue = descriptor.createValue(newValue);
82
+ switch (descriptor.kind) {
83
+ case "property":
84
+ widget.updateProperty([descriptor.enumValue], [gvalue]);
85
+ break;
86
+ case "state":
87
+ widget.updateState([descriptor.enumValue], [gvalue]);
88
+ break;
89
+ case "relation":
90
+ widget.updateRelation([descriptor.enumValue], [gvalue]);
91
+ break;
92
+ }
93
+ }
94
+ function resetDescriptor(widget, descriptor) {
95
+ switch (descriptor.kind) {
96
+ case "property":
97
+ widget.resetProperty(descriptor.enumValue);
98
+ break;
99
+ case "state":
100
+ widget.resetState(descriptor.enumValue);
101
+ break;
102
+ case "relation":
103
+ widget.resetRelation(descriptor.enumValue);
104
+ break;
105
+ }
106
+ }
107
+ const applyChangedAccessibleProps = (widget, oldProps, newProps) => {
108
+ for (const name in newProps) {
109
+ const descriptor = lookupDescriptor(name);
110
+ if (!descriptor)
111
+ continue;
112
+ const newValue = newProps[name];
113
+ if (oldProps?.[name] === newValue)
114
+ continue;
115
+ if (newValue === undefined) {
116
+ resetDescriptor(widget, descriptor);
117
+ deleteAccessibleMetadata(widget, name);
118
+ }
119
+ else {
120
+ applyDescriptor(widget, descriptor, newValue);
121
+ setAccessibleMetadata(widget, name, newValue);
122
+ }
123
+ }
124
+ };
125
+ const resetRemovedAccessibleProps = (widget, oldProps, newProps) => {
126
+ for (const name in oldProps) {
127
+ if (Object.hasOwn(newProps, name))
128
+ continue;
129
+ const descriptor = lookupDescriptor(name);
130
+ if (!descriptor)
131
+ continue;
132
+ if (oldProps[name] !== undefined) {
133
+ resetDescriptor(widget, descriptor);
134
+ deleteAccessibleMetadata(widget, name);
135
+ }
136
+ }
137
+ };
138
+ export const applyAccessibleProps = (widget, oldProps, newProps) => {
139
+ applyChangedAccessibleProps(widget, oldProps, newProps);
140
+ if (oldProps)
141
+ resetRemovedAccessibleProps(widget, oldProps, newProps);
142
+ };
143
+ //# sourceMappingURL=accessible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accessible.js","sourceRoot":"","sources":["../../src/reconciler/accessible.ts"],"names":[],"mappings":"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","sourcesContent":["import * as GObject from \"@gtkx/gi/gobject\";\nimport * as Gtk from \"@gtkx/gi/gtk\";\nimport { deleteAccessibleMetadata, setAccessibleMetadata } from \"../utils/accessible-metadata.js\";\nimport type { Props } from \"./types.js\";\n\n/**\n * Accessibility props available on every widget. Each member maps to a GTK4 accessible attribute\n * (a `Gtk.AccessibleProperty`, `Gtk.AccessibleState`, or `Gtk.AccessibleRelation`) and is applied\n * to the widget's accessible interface; setting a member to `undefined` resets that attribute to its default.\n */\nexport interface AccessibleProps {\n accessibleAutocomplete?: Gtk.AccessibleAutocomplete | null | undefined;\n accessibleDescription?: string | null | undefined;\n accessibleHasPopup?: boolean | null | undefined;\n accessibleKeyShortcuts?: string | null | undefined;\n accessibleLabel?: string | null | undefined;\n accessibleLevel?: number | null | undefined;\n accessibleModal?: boolean | null | undefined;\n accessibleMultiLine?: boolean | null | undefined;\n accessibleMultiSelectable?: boolean | null | undefined;\n accessibleOrientation?: Gtk.Orientation | null | undefined;\n accessiblePlaceholder?: string | null | undefined;\n accessibleReadOnly?: boolean | null | undefined;\n accessibleRequired?: boolean | null | undefined;\n accessibleRoleDescription?: string | null | undefined;\n accessibleSort?: Gtk.AccessibleSort | null | undefined;\n accessibleValueMax?: number | null | undefined;\n accessibleValueMin?: number | null | undefined;\n accessibleValueNow?: number | null | undefined;\n accessibleValueText?: string | null | undefined;\n accessibleHelpText?: string | null | undefined;\n accessibleBusy?: boolean | null | undefined;\n accessibleChecked?: Gtk.AccessibleTristate | null | undefined;\n accessibleDisabled?: boolean | null | undefined;\n accessibleExpanded?: boolean | null | undefined;\n accessibleHidden?: boolean | null | undefined;\n accessibleInvalid?: Gtk.AccessibleInvalidState | null | undefined;\n accessiblePressed?: Gtk.AccessibleTristate | null | undefined;\n accessibleSelected?: boolean | null | undefined;\n accessibleVisited?: boolean | null | undefined;\n accessibleActiveDescendant?: Gtk.Widget | null | undefined;\n accessibleColCount?: number | null | undefined;\n accessibleColIndex?: number | null | undefined;\n accessibleColIndexText?: string | null | undefined;\n accessibleColSpan?: number | null | undefined;\n accessibleControls?: Gtk.Widget[] | null | undefined;\n accessibleDescribedBy?: Gtk.Widget[] | null | undefined;\n accessibleDetails?: Gtk.Widget[] | null | undefined;\n accessibleErrorMessage?: Gtk.Widget[] | null | undefined;\n accessibleFlowTo?: Gtk.Widget[] | null | undefined;\n accessibleLabelledBy?: Gtk.Widget[] | null | undefined;\n accessibleOwns?: Gtk.Widget[] | null | undefined;\n accessiblePosInSet?: number | null | undefined;\n accessibleRowCount?: number | null | undefined;\n accessibleRowIndex?: number | null | undefined;\n accessibleRowIndexText?: string | null | undefined;\n accessibleRowSpan?: number | null | undefined;\n accessibleSetSize?: number | null | undefined;\n}\n\ntype CreateValue = (jsValue: unknown) => GObject.Value;\n\ntype AccessiblePropertyDescriptor = {\n kind: \"property\";\n enumValue: Gtk.AccessibleProperty;\n createValue: CreateValue;\n};\n\ntype AccessibleStateDescriptor = {\n kind: \"state\";\n enumValue: Gtk.AccessibleState;\n createValue: CreateValue;\n};\n\ntype AccessibleRelationDescriptor = {\n kind: \"relation\";\n enumValue: Gtk.AccessibleRelation;\n createValue: CreateValue;\n};\n\ntype AccessibleDescriptor = AccessiblePropertyDescriptor | AccessibleStateDescriptor | AccessibleRelationDescriptor;\n\nconst fromString: CreateValue = (val) => GObject.buildValue(GObject.TYPE_STRING, (v) => v.setString(val as string));\nconst fromBoolean: CreateValue = (val) => GObject.buildValue(GObject.TYPE_BOOLEAN, (v) => v.setBoolean(val as boolean));\nconst fromInt: CreateValue = (val) => GObject.buildValue(GObject.TYPE_INT, (v) => v.setInt(val as number));\nconst fromDouble: CreateValue = (val) => GObject.buildValue(GObject.TYPE_DOUBLE, (v) => v.setDouble(val as number));\nconst fromObject: CreateValue = (val) =>\n GObject.buildValue(GObject.TYPE_OBJECT, (v) => v.setObject(val as GObject.Object));\n\nconst fromRefList: CreateValue = (val) => {\n const widgets = val as Gtk.Accessible[];\n const list = Gtk.AccessibleList.newFromList(widgets);\n return GObject.buildValue(Gtk.AccessibleList.prototype.__type__, (v) => v.setBoxed(list));\n};\n\nconst property = (enumValue: Gtk.AccessibleProperty, createValue: CreateValue): AccessiblePropertyDescriptor => ({\n kind: \"property\",\n enumValue,\n createValue,\n});\n\nconst state = (enumValue: Gtk.AccessibleState, createValue: CreateValue): AccessibleStateDescriptor => ({\n kind: \"state\",\n enumValue,\n createValue,\n});\n\nconst relation = (enumValue: Gtk.AccessibleRelation, createValue: CreateValue): AccessibleRelationDescriptor => ({\n kind: \"relation\",\n enumValue,\n createValue,\n});\n\nconst ACCESSIBLE_PROP_MAP: Record<keyof AccessibleProps, AccessibleDescriptor> = {\n accessibleAutocomplete: property(Gtk.AccessibleProperty.AUTOCOMPLETE, fromInt),\n accessibleDescription: property(Gtk.AccessibleProperty.DESCRIPTION, fromString),\n accessibleHasPopup: property(Gtk.AccessibleProperty.HAS_POPUP, fromBoolean),\n accessibleKeyShortcuts: property(Gtk.AccessibleProperty.KEY_SHORTCUTS, fromString),\n accessibleLabel: property(Gtk.AccessibleProperty.LABEL, fromString),\n accessibleLevel: property(Gtk.AccessibleProperty.LEVEL, fromInt),\n accessibleModal: property(Gtk.AccessibleProperty.MODAL, fromBoolean),\n accessibleMultiLine: property(Gtk.AccessibleProperty.MULTI_LINE, fromBoolean),\n accessibleMultiSelectable: property(Gtk.AccessibleProperty.MULTI_SELECTABLE, fromBoolean),\n accessibleOrientation: property(Gtk.AccessibleProperty.ORIENTATION, fromInt),\n accessiblePlaceholder: property(Gtk.AccessibleProperty.PLACEHOLDER, fromString),\n accessibleReadOnly: property(Gtk.AccessibleProperty.READ_ONLY, fromBoolean),\n accessibleRequired: property(Gtk.AccessibleProperty.REQUIRED, fromBoolean),\n accessibleRoleDescription: property(Gtk.AccessibleProperty.ROLE_DESCRIPTION, fromString),\n accessibleSort: property(Gtk.AccessibleProperty.SORT, fromInt),\n accessibleValueMax: property(Gtk.AccessibleProperty.VALUE_MAX, fromDouble),\n accessibleValueMin: property(Gtk.AccessibleProperty.VALUE_MIN, fromDouble),\n accessibleValueNow: property(Gtk.AccessibleProperty.VALUE_NOW, fromDouble),\n accessibleValueText: property(Gtk.AccessibleProperty.VALUE_TEXT, fromString),\n accessibleHelpText: property(Gtk.AccessibleProperty.HELP_TEXT, fromString),\n accessibleBusy: state(Gtk.AccessibleState.BUSY, fromBoolean),\n accessibleChecked: state(Gtk.AccessibleState.CHECKED, fromInt),\n accessibleDisabled: state(Gtk.AccessibleState.DISABLED, fromBoolean),\n accessibleExpanded: state(Gtk.AccessibleState.EXPANDED, fromInt),\n accessibleHidden: state(Gtk.AccessibleState.HIDDEN, fromBoolean),\n accessibleInvalid: state(Gtk.AccessibleState.INVALID, fromInt),\n accessiblePressed: state(Gtk.AccessibleState.PRESSED, fromInt),\n accessibleSelected: state(Gtk.AccessibleState.SELECTED, fromInt),\n accessibleVisited: state(Gtk.AccessibleState.VISITED, fromInt),\n accessibleActiveDescendant: relation(Gtk.AccessibleRelation.ACTIVE_DESCENDANT, fromObject),\n accessibleColCount: relation(Gtk.AccessibleRelation.COL_COUNT, fromInt),\n accessibleColIndex: relation(Gtk.AccessibleRelation.COL_INDEX, fromInt),\n accessibleColIndexText: relation(Gtk.AccessibleRelation.COL_INDEX_TEXT, fromString),\n accessibleColSpan: relation(Gtk.AccessibleRelation.COL_SPAN, fromInt),\n accessibleControls: relation(Gtk.AccessibleRelation.CONTROLS, fromRefList),\n accessibleDescribedBy: relation(Gtk.AccessibleRelation.DESCRIBED_BY, fromRefList),\n accessibleDetails: relation(Gtk.AccessibleRelation.DETAILS, fromRefList),\n accessibleErrorMessage: relation(Gtk.AccessibleRelation.ERROR_MESSAGE, fromRefList),\n accessibleFlowTo: relation(Gtk.AccessibleRelation.FLOW_TO, fromRefList),\n accessibleLabelledBy: relation(Gtk.AccessibleRelation.LABELLED_BY, fromRefList),\n accessibleOwns: relation(Gtk.AccessibleRelation.OWNS, fromRefList),\n accessiblePosInSet: relation(Gtk.AccessibleRelation.POS_IN_SET, fromInt),\n accessibleRowCount: relation(Gtk.AccessibleRelation.ROW_COUNT, fromInt),\n accessibleRowIndex: relation(Gtk.AccessibleRelation.ROW_INDEX, fromInt),\n accessibleRowIndexText: relation(Gtk.AccessibleRelation.ROW_INDEX_TEXT, fromString),\n accessibleRowSpan: relation(Gtk.AccessibleRelation.ROW_SPAN, fromInt),\n accessibleSetSize: relation(Gtk.AccessibleRelation.SET_SIZE, fromInt),\n};\n\nconst lookupDescriptor = (name: string): AccessibleDescriptor | undefined =>\n Object.hasOwn(ACCESSIBLE_PROP_MAP, name) ? ACCESSIBLE_PROP_MAP[name as keyof AccessibleProps] : undefined;\n\nexport const isAccessibleProp = (name: string): boolean => Object.hasOwn(ACCESSIBLE_PROP_MAP, name);\n\nfunction applyDescriptor(widget: Gtk.Accessible, descriptor: AccessibleDescriptor, newValue: unknown): void {\n const gvalue = descriptor.createValue(newValue);\n\n switch (descriptor.kind) {\n case \"property\":\n widget.updateProperty([descriptor.enumValue], [gvalue]);\n break;\n case \"state\":\n widget.updateState([descriptor.enumValue], [gvalue]);\n break;\n case \"relation\":\n widget.updateRelation([descriptor.enumValue], [gvalue]);\n break;\n }\n}\n\nfunction resetDescriptor(widget: Gtk.Accessible, descriptor: AccessibleDescriptor): void {\n switch (descriptor.kind) {\n case \"property\":\n widget.resetProperty(descriptor.enumValue);\n break;\n case \"state\":\n widget.resetState(descriptor.enumValue);\n break;\n case \"relation\":\n widget.resetRelation(descriptor.enumValue);\n break;\n }\n}\n\nconst applyChangedAccessibleProps = (widget: Gtk.Accessible, oldProps: Props | null, newProps: Props): void => {\n for (const name in newProps) {\n const descriptor = lookupDescriptor(name);\n if (!descriptor) continue;\n\n const newValue = newProps[name];\n if (oldProps?.[name] === newValue) continue;\n\n if (newValue === undefined) {\n resetDescriptor(widget, descriptor);\n deleteAccessibleMetadata(widget, name);\n } else {\n applyDescriptor(widget, descriptor, newValue);\n setAccessibleMetadata(widget, name, newValue);\n }\n }\n};\n\nconst resetRemovedAccessibleProps = (widget: Gtk.Accessible, oldProps: Props, newProps: Props): void => {\n for (const name in oldProps) {\n if (Object.hasOwn(newProps, name)) continue;\n const descriptor = lookupDescriptor(name);\n if (!descriptor) continue;\n if (oldProps[name] !== undefined) {\n resetDescriptor(widget, descriptor);\n deleteAccessibleMetadata(widget, name);\n }\n }\n};\n\nexport const applyAccessibleProps = (widget: Gtk.Accessible, oldProps: Props | null, newProps: Props): void => {\n applyChangedAccessibleProps(widget, oldProps, newProps);\n if (oldProps) resetRemovedAccessibleProps(widget, oldProps, newProps);\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import type * as GObject from "@gtkx/gi/gobject";
2
+ import type { Props } from "./types.js";
3
+ type ApplyPropsOptions = {
4
+ exclude?: (name: string) => boolean;
5
+ };
6
+ export declare function applyProps(container: GObject.Object, oldProps: Props | null, newProps: Props, options?: ApplyPropsOptions): void;
7
+ export {};
8
+ //# sourceMappingURL=apply-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply-props.d.ts","sourceRoot":"","sources":["../../src/reconciler/apply-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAKjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA4BxC,KAAK,iBAAiB,GAAG;IACrB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC,CAAC;AAkDF,wBAAgB,UAAU,CACtB,SAAS,EAAE,OAAO,CAAC,MAAM,EACzB,QAAQ,EAAE,KAAK,GAAG,IAAI,EACtB,QAAQ,EAAE,KAAK,EACf,OAAO,CAAC,EAAE,iBAAiB,GAC5B,IAAI,CA0BN"}