@gjsify/adwaita-web 0.53.0 → 0.55.0

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 (440) hide show
  1. package/dist/adwaita-web.css +8070 -3037
  2. package/dist/adwaita-web.css.map +1 -1
  3. package/lib/types/adw-application-window.spec.d.ts +1 -0
  4. package/lib/types/adw-bin.spec.d.ts +1 -0
  5. package/lib/types/adw-breakpoint-bin.spec.d.ts +1 -0
  6. package/lib/types/adw-clamp-scrollable.spec.d.ts +1 -0
  7. package/lib/types/adw-multi-layout-view.spec.d.ts +1 -0
  8. package/lib/types/adw-preferences-row.spec.d.ts +1 -0
  9. package/lib/types/adw-shortcuts.spec.d.ts +1 -0
  10. package/lib/types/adw-tab-bar.spec.d.ts +1 -0
  11. package/lib/types/adw-tab-button.spec.d.ts +1 -0
  12. package/lib/types/adw-tab-overview.spec.d.ts +1 -0
  13. package/lib/types/adw-view-switcher-sidebar.spec.d.ts +1 -0
  14. package/lib/types/adw-window.spec.d.ts +1 -0
  15. package/lib/types/breakpoints.d.ts +14 -3
  16. package/lib/types/construct-vectors.spec.d.ts +1 -0
  17. package/lib/types/elements/adw-application-window.d.ts +27 -0
  18. package/lib/types/elements/adw-bin.d.ts +17 -0
  19. package/lib/types/elements/adw-breakpoint-bin.d.ts +67 -0
  20. package/lib/types/elements/adw-clamp-scrollable.d.ts +38 -0
  21. package/lib/types/elements/adw-dialog.d.ts +10 -0
  22. package/lib/types/elements/adw-layout-slot.d.ts +19 -0
  23. package/lib/types/elements/adw-multi-layout-view.d.ts +101 -0
  24. package/lib/types/elements/adw-preferences-row.d.ts +31 -0
  25. package/lib/types/elements/adw-shortcuts-dialog.d.ts +13 -0
  26. package/lib/types/elements/adw-shortcuts-item.d.ts +36 -0
  27. package/lib/types/elements/adw-shortcuts-section.d.ts +14 -0
  28. package/lib/types/elements/adw-sidebar.d.ts +5 -0
  29. package/lib/types/elements/adw-switch-row.d.ts +3 -0
  30. package/lib/types/elements/adw-tab-bar.d.ts +108 -0
  31. package/lib/types/elements/adw-tab-button.d.ts +32 -0
  32. package/lib/types/elements/adw-tab-overview.d.ts +199 -0
  33. package/lib/types/elements/adw-tab-view.d.ts +19 -23
  34. package/lib/types/elements/adw-view-switcher-sidebar.d.ts +84 -0
  35. package/lib/types/elements/adw-window.d.ts +40 -0
  36. package/lib/types/elements/gtk-about-dialog.d.ts +146 -0
  37. package/lib/types/elements/gtk-application-window.d.ts +34 -0
  38. package/lib/types/elements/gtk-aspect-frame.d.ts +27 -0
  39. package/lib/types/elements/gtk-button.d.ts +9 -0
  40. package/lib/types/elements/gtk-calendar.d.ts +159 -0
  41. package/lib/types/elements/gtk-center-box.d.ts +39 -0
  42. package/lib/types/elements/gtk-color-dialog-button.d.ts +69 -0
  43. package/lib/types/elements/gtk-column-view.d.ts +50 -0
  44. package/lib/types/elements/gtk-drag-icon.d.ts +78 -0
  45. package/lib/types/elements/gtk-drawing-area.d.ts +95 -0
  46. package/lib/types/elements/gtk-editable-label.d.ts +33 -0
  47. package/lib/types/elements/gtk-emoji-chooser.d.ts +84 -0
  48. package/lib/types/elements/gtk-entry.d.ts +20 -1
  49. package/lib/types/elements/gtk-expander.d.ts +49 -0
  50. package/lib/types/elements/gtk-fixed.d.ts +13 -0
  51. package/lib/types/elements/gtk-flow-box-child.d.ts +14 -0
  52. package/lib/types/elements/gtk-flow-box.d.ts +87 -0
  53. package/lib/types/elements/gtk-font-dialog-button.d.ts +83 -0
  54. package/lib/types/elements/gtk-frame.d.ts +24 -0
  55. package/lib/types/elements/gtk-gl-area.d.ts +136 -0
  56. package/lib/types/elements/gtk-graphics-offload.d.ts +24 -0
  57. package/lib/types/elements/gtk-grid-view.d.ts +39 -0
  58. package/lib/types/elements/gtk-grid.d.ts +27 -0
  59. package/lib/types/elements/gtk-header-bar.d.ts +60 -0
  60. package/lib/types/elements/gtk-inscription.d.ts +64 -0
  61. package/lib/types/elements/gtk-label.d.ts +3 -0
  62. package/lib/types/elements/gtk-level-bar.d.ts +59 -0
  63. package/lib/types/elements/gtk-link-button.d.ts +29 -0
  64. package/lib/types/elements/gtk-list-box-row.d.ts +54 -0
  65. package/lib/types/elements/gtk-list-box.d.ts +100 -0
  66. package/lib/types/elements/gtk-list-view.d.ts +73 -0
  67. package/lib/types/elements/gtk-media-controls.d.ts +142 -0
  68. package/lib/types/elements/gtk-notebook.d.ts +148 -0
  69. package/lib/types/elements/gtk-overlay.d.ts +22 -0
  70. package/lib/types/elements/gtk-page-setup-unix-dialog.d.ts +87 -0
  71. package/lib/types/elements/gtk-paned.d.ts +121 -0
  72. package/lib/types/elements/gtk-password-entry.d.ts +27 -0
  73. package/lib/types/elements/gtk-picture.d.ts +66 -0
  74. package/lib/types/elements/gtk-popover-bin.d.ts +82 -0
  75. package/lib/types/elements/gtk-popover-menu-bar.d.ts +66 -0
  76. package/lib/types/elements/gtk-popover-menu.d.ts +83 -0
  77. package/lib/types/elements/gtk-popover.d.ts +28 -3
  78. package/lib/types/elements/gtk-print-unix-dialog.d.ts +167 -0
  79. package/lib/types/elements/gtk-revealer.d.ts +55 -0
  80. package/lib/types/elements/gtk-scale-button.d.ts +59 -0
  81. package/lib/types/elements/gtk-scale.d.ts +98 -0
  82. package/lib/types/elements/gtk-scrollbar.d.ts +124 -0
  83. package/lib/types/elements/gtk-scrolled-window.d.ts +121 -0
  84. package/lib/types/elements/gtk-search-bar.d.ts +39 -0
  85. package/lib/types/elements/gtk-search-entry.d.ts +27 -0
  86. package/lib/types/elements/gtk-separator.d.ts +10 -0
  87. package/lib/types/elements/gtk-spin-button.d.ts +94 -0
  88. package/lib/types/elements/gtk-spinner.d.ts +14 -0
  89. package/lib/types/elements/gtk-stack-sidebar.d.ts +43 -0
  90. package/lib/types/elements/gtk-stack-switcher.d.ts +58 -0
  91. package/lib/types/elements/gtk-stack.d.ts +154 -0
  92. package/lib/types/elements/gtk-switch.d.ts +4 -1
  93. package/lib/types/elements/gtk-text-view.d.ts +62 -0
  94. package/lib/types/elements/gtk-text.d.ts +45 -0
  95. package/lib/types/elements/gtk-toggle-button.d.ts +45 -0
  96. package/lib/types/elements/gtk-tree-expander.d.ts +38 -0
  97. package/lib/types/elements/gtk-video.d.ts +97 -0
  98. package/lib/types/elements/gtk-viewport.d.ts +84 -0
  99. package/lib/types/elements/gtk-window-controls.d.ts +80 -0
  100. package/lib/types/elements/gtk-window-handle.d.ts +39 -0
  101. package/lib/types/elements/gtk-window.d.ts +97 -0
  102. package/lib/types/elements/justification.d.ts +2 -0
  103. package/lib/types/elements/popover-menu.d.ts +18 -0
  104. package/lib/types/elements/roving-focus.d.ts +29 -1
  105. package/lib/types/emoji-data.d.ts +38 -0
  106. package/lib/types/font-description.d.ts +96 -0
  107. package/lib/types/gtk-about-dialog.spec.d.ts +1 -0
  108. package/lib/types/gtk-action-bar.spec.d.ts +1 -0
  109. package/lib/types/gtk-application-window.spec.d.ts +1 -0
  110. package/lib/types/gtk-aspect-frame.spec.d.ts +1 -0
  111. package/lib/types/gtk-calendar.spec.d.ts +1 -0
  112. package/lib/types/gtk-center-box.spec.d.ts +1 -0
  113. package/lib/types/gtk-color-dialog-button.spec.d.ts +1 -0
  114. package/lib/types/gtk-column-view.spec.d.ts +1 -0
  115. package/lib/types/gtk-drag-icon.spec.d.ts +1 -0
  116. package/lib/types/gtk-drawing-area.spec.d.ts +1 -0
  117. package/lib/types/gtk-editable-label.spec.d.ts +1 -0
  118. package/lib/types/gtk-emoji-chooser.spec.d.ts +1 -0
  119. package/lib/types/gtk-expander.spec.d.ts +1 -0
  120. package/lib/types/gtk-fixed.spec.d.ts +1 -0
  121. package/lib/types/gtk-flow-box.spec.d.ts +1 -0
  122. package/lib/types/gtk-font-dialog-button.spec.d.ts +1 -0
  123. package/lib/types/gtk-frame.spec.d.ts +1 -0
  124. package/lib/types/gtk-gl-area.spec.d.ts +1 -0
  125. package/lib/types/gtk-graphics-offload.spec.d.ts +1 -0
  126. package/lib/types/gtk-grid-view.spec.d.ts +1 -0
  127. package/lib/types/gtk-grid.spec.d.ts +1 -0
  128. package/lib/types/gtk-header-bar.spec.d.ts +1 -0
  129. package/lib/types/gtk-inscription.spec.d.ts +1 -0
  130. package/lib/types/gtk-level-bar.spec.d.ts +1 -0
  131. package/lib/types/gtk-link-button.spec.d.ts +1 -0
  132. package/lib/types/gtk-list-box.spec.d.ts +1 -0
  133. package/lib/types/gtk-list-view.spec.d.ts +1 -0
  134. package/lib/types/gtk-media-controls.spec.d.ts +1 -0
  135. package/lib/types/gtk-notebook.spec.d.ts +1 -0
  136. package/lib/types/gtk-overlay.spec.d.ts +1 -0
  137. package/lib/types/gtk-paned.spec.d.ts +1 -0
  138. package/lib/types/gtk-password-entry.spec.d.ts +1 -0
  139. package/lib/types/gtk-picture.spec.d.ts +1 -0
  140. package/lib/types/gtk-popover-bin.spec.d.ts +1 -0
  141. package/lib/types/gtk-popover-menu-bar.spec.d.ts +1 -0
  142. package/lib/types/gtk-popover-menu.spec.d.ts +1 -0
  143. package/lib/types/gtk-popover-role.spec.d.ts +1 -0
  144. package/lib/types/gtk-popover.spec.d.ts +1 -0
  145. package/lib/types/gtk-print-dialogs.spec.d.ts +1 -0
  146. package/lib/types/gtk-revealer.spec.d.ts +1 -0
  147. package/lib/types/gtk-scale-button.spec.d.ts +1 -0
  148. package/lib/types/gtk-scale.spec.d.ts +1 -0
  149. package/lib/types/gtk-scrollbar.spec.d.ts +1 -0
  150. package/lib/types/gtk-scrolled-window.spec.d.ts +1 -0
  151. package/lib/types/gtk-search-bar.spec.d.ts +1 -0
  152. package/lib/types/gtk-search-entry.spec.d.ts +1 -0
  153. package/lib/types/gtk-separator.spec.d.ts +1 -0
  154. package/lib/types/gtk-spin-button.spec.d.ts +1 -0
  155. package/lib/types/gtk-spinner.spec.d.ts +1 -0
  156. package/lib/types/gtk-stack-sidebar.spec.d.ts +1 -0
  157. package/lib/types/gtk-stack-switcher.spec.d.ts +1 -0
  158. package/lib/types/gtk-stack.spec.d.ts +1 -0
  159. package/lib/types/gtk-text-view.spec.d.ts +1 -0
  160. package/lib/types/gtk-text.spec.d.ts +1 -0
  161. package/lib/types/gtk-toggle-button.spec.d.ts +1 -0
  162. package/lib/types/gtk-tree-expander.spec.d.ts +1 -0
  163. package/lib/types/gtk-video.spec.d.ts +1 -0
  164. package/lib/types/gtk-viewport.spec.d.ts +1 -0
  165. package/lib/types/gtk-window-controls.spec.d.ts +1 -0
  166. package/lib/types/gtk-window-handle.spec.d.ts +1 -0
  167. package/lib/types/gtk-window.spec.d.ts +1 -0
  168. package/lib/types/index.d.ts +4 -1
  169. package/lib/types/list-view-dom.d.ts +44 -0
  170. package/lib/types/namespace/adw.d.ts +12 -0
  171. package/lib/types/namespace/gtk.d.ts +61 -0
  172. package/lib/types/page-setup.d.ts +100 -0
  173. package/lib/types/scroll-shading.d.ts +15 -1
  174. package/lib/types/shared-tree-builder.d.ts +30 -2
  175. package/lib/types/signals.d.ts +4 -0
  176. package/lib/types/styles.generated.d.ts +1 -1
  177. package/lib/types/tab-chip.d.ts +73 -0
  178. package/lib/types/template-classes.d.ts +11 -0
  179. package/package.json +12 -8
  180. package/scss/_action_row.scss +2 -2
  181. package/scss/_application_window.scss +26 -0
  182. package/scss/_aspect_frame.scss +25 -0
  183. package/scss/_bin.scss +26 -0
  184. package/scss/_button.scss +45 -0
  185. package/scss/_calendar.scss +176 -0
  186. package/scss/_center_box.scss +25 -0
  187. package/scss/_checks.scss +6 -1
  188. package/scss/_clamp_scrollable.scss +28 -0
  189. package/scss/_color_button.scss +67 -0
  190. package/scss/_column_view.scss +126 -0
  191. package/scss/_drag_icon.scss +55 -0
  192. package/scss/_drawing.scss +85 -0
  193. package/scss/_emoji_chooser.scss +213 -0
  194. package/scss/_entry.scss +13 -5
  195. package/scss/_entry_row.scss +1 -1
  196. package/scss/_expander.scss +113 -0
  197. package/scss/_fixed.scss +29 -0
  198. package/scss/_flow_box.scss +94 -0
  199. package/scss/_font_button.scss +63 -0
  200. package/scss/_frame.scss +41 -0
  201. package/scss/_grid.scss +19 -0
  202. package/scss/_grid_view.scss +46 -0
  203. package/scss/_gtk_about_dialog.scss +186 -0
  204. package/scss/_headerbar.scss +132 -0
  205. package/scss/_icons.generated.scss +186 -0
  206. package/scss/_inscription.scss +125 -0
  207. package/scss/_level_bar.scss +190 -0
  208. package/scss/_link.scss +82 -0
  209. package/scss/_list_box.scss +88 -0
  210. package/scss/_list_view.scss +96 -0
  211. package/scss/_media_controls.scss +139 -0
  212. package/scss/_overlay.scss +68 -0
  213. package/scss/_paned.scss +130 -0
  214. package/scss/_password_entry.scss +83 -0
  215. package/scss/_picture.scss +80 -0
  216. package/scss/_popover_bin.scss +53 -0
  217. package/scss/_popover_menu_bar.scss +104 -0
  218. package/scss/_preferences_row.scss +51 -0
  219. package/scss/_print_dialogs.scss +328 -0
  220. package/scss/_reset.scss +21 -19
  221. package/scss/_revealer.scss +37 -0
  222. package/scss/_row.scss +20 -5
  223. package/scss/_scale.scss +298 -0
  224. package/scss/_scale_button.scss +167 -0
  225. package/scss/_scrollbar.scss +230 -0
  226. package/scss/_scrolled_window.scss +131 -0
  227. package/scss/_search_bar.scss +118 -0
  228. package/scss/_search_entry.scss +86 -0
  229. package/scss/_separator.scss +44 -0
  230. package/scss/_shortcuts_dialog.scss +100 -0
  231. package/scss/_spin_button.scss +172 -0
  232. package/scss/_spin_row.scss +56 -8
  233. package/scss/_spinner.scss +85 -4
  234. package/scss/_stack.scss +729 -0
  235. package/scss/_switch.scss +13 -5
  236. package/scss/_switch_row.scss +10 -0
  237. package/scss/_tab_bar.scss +317 -0
  238. package/scss/_tab_button.scss +98 -0
  239. package/scss/_tab_overview.scss +483 -0
  240. package/scss/_text.scss +182 -0
  241. package/scss/_theme.scss +1 -1
  242. package/scss/_tree_expander.scss +62 -0
  243. package/scss/_variables.scss +43 -21
  244. package/scss/_video.scss +146 -0
  245. package/scss/_view_switcher_sidebar.scss +112 -0
  246. package/scss/_viewport.scss +50 -0
  247. package/scss/_window.scss +118 -1
  248. package/scss/_window_handle.scss +20 -0
  249. package/scss/adwaita-skin.scss +109 -0
  250. package/src/adw-action-rows.spec.ts +76 -0
  251. package/src/adw-application-window.spec.ts +118 -0
  252. package/src/adw-bin.spec.ts +75 -0
  253. package/src/adw-breakpoint-bin.spec.ts +324 -0
  254. package/src/adw-clamp-scrollable.spec.ts +189 -0
  255. package/src/adw-multi-layout-view.spec.ts +243 -0
  256. package/src/adw-preferences-row.spec.ts +164 -0
  257. package/src/adw-row-state.spec.ts +142 -0
  258. package/src/adw-shortcuts.spec.ts +155 -0
  259. package/src/adw-tab-bar.spec.ts +287 -0
  260. package/src/adw-tab-button.spec.ts +101 -0
  261. package/src/adw-tab-overview.spec.ts +443 -0
  262. package/src/adw-view-switcher-sidebar.spec.ts +281 -0
  263. package/src/adw-window.spec.ts +129 -0
  264. package/src/breakpoints.ts +25 -8
  265. package/src/capabilities.d.mts +3 -0
  266. package/src/capabilities.mjs +18 -0
  267. package/src/connect-lifecycle.spec.ts +12 -0
  268. package/src/construct-vectors.spec.ts +175 -0
  269. package/src/elements/adw-application-window.ts +154 -0
  270. package/src/elements/adw-bin.ts +101 -0
  271. package/src/elements/adw-breakpoint-bin.ts +287 -0
  272. package/src/elements/adw-clamp-scrollable.ts +207 -0
  273. package/src/elements/adw-dialog.ts +19 -0
  274. package/src/elements/adw-layout-slot.ts +95 -0
  275. package/src/elements/adw-multi-layout-view.ts +326 -0
  276. package/src/elements/adw-preferences-row.ts +150 -0
  277. package/src/elements/adw-shortcuts-dialog.ts +52 -0
  278. package/src/elements/adw-shortcuts-item.ts +171 -0
  279. package/src/elements/adw-shortcuts-section.ts +86 -0
  280. package/src/elements/adw-sidebar.ts +42 -3
  281. package/src/elements/adw-switch-row.ts +28 -1
  282. package/src/elements/adw-tab-bar.ts +529 -0
  283. package/src/elements/adw-tab-button.ts +194 -0
  284. package/src/elements/adw-tab-overview.ts +1011 -0
  285. package/src/elements/adw-tab-view.ts +66 -145
  286. package/src/elements/adw-toggle-group.ts +20 -5
  287. package/src/elements/adw-view-stack.ts +18 -0
  288. package/src/elements/adw-view-switcher-sidebar.ts +332 -0
  289. package/src/elements/adw-window.ts +185 -11
  290. package/src/elements/checks.ts +35 -8
  291. package/src/elements/gtk-about-dialog.ts +811 -0
  292. package/src/elements/gtk-application-window.ts +108 -0
  293. package/src/elements/gtk-aspect-frame.ts +160 -0
  294. package/src/elements/gtk-button.ts +12 -0
  295. package/src/elements/gtk-calendar.ts +757 -0
  296. package/src/elements/gtk-center-box.ts +184 -0
  297. package/src/elements/gtk-color-dialog-button.ts +278 -0
  298. package/src/elements/gtk-column-view.ts +320 -0
  299. package/src/elements/gtk-drag-icon.ts +257 -0
  300. package/src/elements/gtk-drawing-area.ts +303 -0
  301. package/src/elements/gtk-editable-label.ts +204 -0
  302. package/src/elements/gtk-emoji-chooser.ts +542 -0
  303. package/src/elements/gtk-entry.ts +39 -5
  304. package/src/elements/gtk-expander.ts +301 -0
  305. package/src/elements/gtk-fixed.ts +99 -0
  306. package/src/elements/gtk-flow-box-child.ts +68 -0
  307. package/src/elements/gtk-flow-box.ts +480 -0
  308. package/src/elements/gtk-font-dialog-button.ts +432 -0
  309. package/src/elements/gtk-frame.ts +174 -0
  310. package/src/elements/gtk-gl-area.ts +476 -0
  311. package/src/elements/gtk-graphics-offload.ts +130 -0
  312. package/src/elements/gtk-grid-view.ts +168 -0
  313. package/src/elements/gtk-grid.ts +127 -0
  314. package/src/elements/gtk-header-bar.ts +273 -0
  315. package/src/elements/gtk-inscription.ts +387 -0
  316. package/src/elements/gtk-label.ts +19 -11
  317. package/src/elements/gtk-level-bar.ts +323 -0
  318. package/src/elements/gtk-link-button.ts +138 -0
  319. package/src/elements/gtk-list-box-row.ts +195 -0
  320. package/src/elements/gtk-list-box.ts +413 -0
  321. package/src/elements/gtk-list-view.ts +370 -0
  322. package/src/elements/gtk-media-controls.ts +509 -0
  323. package/src/elements/gtk-notebook.ts +664 -0
  324. package/src/elements/gtk-overlay.ts +149 -0
  325. package/src/elements/gtk-page-setup-unix-dialog.ts +420 -0
  326. package/src/elements/gtk-paned.ts +597 -0
  327. package/src/elements/gtk-password-entry.ts +170 -0
  328. package/src/elements/gtk-picture.ts +254 -0
  329. package/src/elements/gtk-popover-bin.ts +332 -0
  330. package/src/elements/gtk-popover-menu-bar.ts +355 -0
  331. package/src/elements/gtk-popover-menu.ts +339 -0
  332. package/src/elements/gtk-popover.ts +92 -10
  333. package/src/elements/gtk-print-unix-dialog.ts +989 -0
  334. package/src/elements/gtk-progress-bar.ts +24 -11
  335. package/src/elements/gtk-revealer.ts +406 -0
  336. package/src/elements/gtk-scale-button.ts +358 -0
  337. package/src/elements/gtk-scale.ts +492 -0
  338. package/src/elements/gtk-scrollbar.ts +528 -0
  339. package/src/elements/gtk-scrolled-window.ts +642 -0
  340. package/src/elements/gtk-search-bar.ts +200 -0
  341. package/src/elements/gtk-search-entry.ts +172 -0
  342. package/src/elements/gtk-separator.ts +52 -0
  343. package/src/elements/gtk-spin-button.ts +475 -0
  344. package/src/elements/gtk-spinner.ts +126 -0
  345. package/src/elements/gtk-stack-sidebar.ts +212 -0
  346. package/src/elements/gtk-stack-switcher.ts +279 -0
  347. package/src/elements/gtk-stack.ts +748 -0
  348. package/src/elements/gtk-switch.ts +52 -19
  349. package/src/elements/gtk-text-view.ts +290 -0
  350. package/src/elements/gtk-text.ts +219 -0
  351. package/src/elements/gtk-toggle-button.ts +239 -0
  352. package/src/elements/gtk-tree-expander.ts +243 -0
  353. package/src/elements/gtk-video.ts +423 -0
  354. package/src/elements/gtk-viewport.ts +277 -0
  355. package/src/elements/gtk-window-controls.ts +341 -0
  356. package/src/elements/gtk-window-handle.ts +221 -0
  357. package/src/elements/gtk-window.ts +366 -0
  358. package/src/elements/justification.ts +24 -0
  359. package/src/elements/popover-menu.ts +24 -0
  360. package/src/elements/roving-focus.ts +53 -21
  361. package/src/emoji-data.ts +577 -0
  362. package/src/entry-rows.spec.ts +31 -0
  363. package/src/font-description.ts +238 -0
  364. package/src/gtk-about-dialog.spec.ts +250 -0
  365. package/src/gtk-action-bar.spec.ts +89 -0
  366. package/src/gtk-application-window.spec.ts +107 -0
  367. package/src/gtk-aspect-frame.spec.ts +114 -0
  368. package/src/gtk-calendar.spec.ts +589 -0
  369. package/src/gtk-center-box.spec.ts +125 -0
  370. package/src/gtk-color-dialog-button.spec.ts +141 -0
  371. package/src/gtk-column-view.spec.ts +154 -0
  372. package/src/gtk-drag-icon.spec.ts +190 -0
  373. package/src/gtk-drawing-area.spec.ts +211 -0
  374. package/src/gtk-editable-label.spec.ts +190 -0
  375. package/src/gtk-emoji-chooser.spec.ts +173 -0
  376. package/src/gtk-entry.spec.ts +23 -0
  377. package/src/gtk-expander.spec.ts +170 -0
  378. package/src/gtk-fixed.spec.ts +97 -0
  379. package/src/gtk-flow-box.spec.ts +289 -0
  380. package/src/gtk-font-dialog-button.spec.ts +166 -0
  381. package/src/gtk-frame.spec.ts +119 -0
  382. package/src/gtk-gl-area.spec.ts +361 -0
  383. package/src/gtk-graphics-offload.spec.ts +119 -0
  384. package/src/gtk-grid-view.spec.ts +106 -0
  385. package/src/gtk-grid.spec.ts +122 -0
  386. package/src/gtk-header-bar.spec.ts +202 -0
  387. package/src/gtk-inscription.spec.ts +235 -0
  388. package/src/gtk-level-bar.spec.ts +199 -0
  389. package/src/gtk-link-button.spec.ts +117 -0
  390. package/src/gtk-list-box.spec.ts +422 -0
  391. package/src/gtk-list-view.spec.ts +203 -0
  392. package/src/gtk-media-controls.spec.ts +295 -0
  393. package/src/gtk-notebook.spec.ts +546 -0
  394. package/src/gtk-overlay.spec.ts +141 -0
  395. package/src/gtk-paned.spec.ts +267 -0
  396. package/src/gtk-password-entry.spec.ts +150 -0
  397. package/src/gtk-picture.spec.ts +172 -0
  398. package/src/gtk-popover-bin.spec.ts +229 -0
  399. package/src/gtk-popover-menu-bar.spec.ts +296 -0
  400. package/src/gtk-popover-menu.spec.ts +261 -0
  401. package/src/gtk-popover-role.spec.ts +138 -0
  402. package/src/gtk-popover.spec.ts +264 -0
  403. package/src/gtk-print-dialogs.spec.ts +251 -0
  404. package/src/gtk-revealer.spec.ts +164 -0
  405. package/src/gtk-scale-button.spec.ts +218 -0
  406. package/src/gtk-scale.spec.ts +213 -0
  407. package/src/gtk-scrollbar.spec.ts +244 -0
  408. package/src/gtk-scrolled-window.spec.ts +262 -0
  409. package/src/gtk-search-bar.spec.ts +179 -0
  410. package/src/gtk-search-entry.spec.ts +142 -0
  411. package/src/gtk-separator.spec.ts +74 -0
  412. package/src/gtk-spin-button.spec.ts +186 -0
  413. package/src/gtk-spinner.spec.ts +130 -0
  414. package/src/gtk-stack-sidebar.spec.ts +217 -0
  415. package/src/gtk-stack-switcher.spec.ts +249 -0
  416. package/src/gtk-stack.spec.ts +432 -0
  417. package/src/gtk-text-view.spec.ts +189 -0
  418. package/src/gtk-text.spec.ts +163 -0
  419. package/src/gtk-toggle-button.spec.ts +186 -0
  420. package/src/gtk-tree-expander.spec.ts +201 -0
  421. package/src/gtk-video.spec.ts +240 -0
  422. package/src/gtk-viewport.spec.ts +140 -0
  423. package/src/gtk-window-controls.spec.ts +232 -0
  424. package/src/gtk-window-handle.spec.ts +158 -0
  425. package/src/gtk-window.spec.ts +190 -0
  426. package/src/index.ts +9 -1
  427. package/src/keyboard-operable.spec.ts +33 -1
  428. package/src/list-view-dom.ts +121 -0
  429. package/src/namespace/adw.ts +12 -0
  430. package/src/namespace/gtk.ts +61 -0
  431. package/src/page-setup.ts +222 -0
  432. package/src/scroll-shading.ts +18 -1
  433. package/src/shared-tree-builder.ts +263 -21
  434. package/src/signals.ts +15 -0
  435. package/src/source-view/theme.ts +11 -5
  436. package/src/style-classes.spec.ts +9 -8
  437. package/src/styles.generated.ts +1 -1
  438. package/src/tab-chip.ts +200 -0
  439. package/src/template-classes.ts +45 -0
  440. package/src/test.browser.mts +152 -0
@@ -0,0 +1,199 @@
1
+ import { type AdwMenuInput, type AdwMenuModel } from '@gjsify/adwaita-core';
2
+ import type { AdwTabView } from './adw-tab-view.js';
3
+ export declare class AdwTabOverview extends HTMLElement {
4
+ private _childEl;
5
+ private _overviewEl;
6
+ private _headerEl;
7
+ private _startButtonsEl;
8
+ private _endButtonsEl;
9
+ private _titleEl;
10
+ private _searchBtn;
11
+ private _searchEntry;
12
+ private _searchClamp;
13
+ private _searchBar;
14
+ private _menuBtn;
15
+ private _gridEl;
16
+ private _pinnedGridEl;
17
+ private _emptyState;
18
+ private _searchEmptyState;
19
+ private _newTabBtn;
20
+ private readonly _thumbs;
21
+ private _view;
22
+ private _model;
23
+ private _searchActive;
24
+ private _initialized;
25
+ /** The last visibility actually painted, so `notify::open` fires on a real change. */
26
+ private _appliedOpen;
27
+ /** Guards the `open` attribute we write ourselves from re-entering `setOpen`. */
28
+ private _reflecting;
29
+ static get observedAttributes(): string[];
30
+ /** `Adw.TabOverview:view` — the tab view the overview controls. */
31
+ get view(): AdwTabView | null;
32
+ set view(value: AdwTabView | string | null);
33
+ /**
34
+ * `adw_tab_overview_set_view`: rebind the view's five signals, then repopulate.
35
+ * The view must be INSIDE the overview (adw-tab-overview.c:1090-1093 refuses
36
+ * otherwise), which the element enforces by looking the view up among its own
37
+ * children when the reference is not a live element.
38
+ */
39
+ setView(view: AdwTabView | null): void;
40
+ /**
41
+ * `Adw.TabOverview:child` — the widget the overview covers. Declared children are
42
+ * it: there is one slot in the template and it holds whatever the author wrote.
43
+ */
44
+ get child(): HTMLElement | null;
45
+ /** `Adw.TabOverview:open` — whether the overview is showing. */
46
+ get open(): boolean;
47
+ set open(value: boolean);
48
+ /**
49
+ * Whether the thumbnails use the INVERTED layout: the close/unpin button at the
50
+ * START and the indicator at the END, rather than the other way round
51
+ * (adw-tab-overview.c:1626-1634).
52
+ */
53
+ get inverted(): boolean;
54
+ set inverted(value: boolean);
55
+ /**
56
+ * `Adw.TabOverview:enable-search`, TRUE upstream — and so `="false"` is the off
57
+ * switch, absent meaning on. The same MODIFICATION `<adw-carousel>` makes for
58
+ * `allow-scroll-wheel`: an HTML boolean attribute can only mean TRUE.
59
+ */
60
+ get enableSearch(): boolean;
61
+ set enableSearch(value: boolean);
62
+ /** `Adw.TabOverview:search-active` — read-only upstream, and read-only here. */
63
+ get searchActive(): boolean;
64
+ /** `Adw.TabOverview:enable-new-tab`. */
65
+ get enableNewTab(): boolean;
66
+ set enableNewTab(value: boolean);
67
+ /** `Adw.TabOverview:secondary-menu` — the portal menu of extra actions. */
68
+ get secondaryMenu(): AdwMenuModel;
69
+ set secondaryMenu(value: AdwMenuInput);
70
+ /** `Adw.TabOverview:show-start-title-buttons`, TRUE upstream, so `="false"` turns it off. */
71
+ get showStartTitleButtons(): boolean;
72
+ set showStartTitleButtons(value: boolean);
73
+ /** `Adw.TabOverview:show-end-title-buttons`, TRUE upstream, so `="false"` turns it off. */
74
+ get showEndTitleButtons(): boolean;
75
+ set showEndTitleButtons(value: boolean);
76
+ /**
77
+ * `Adw.TabOverview:extra-drag-preload`. Stored and reported; it gates the GDK drag
78
+ * protocol this port does not have (see the header).
79
+ */
80
+ get extraDragPreload(): boolean;
81
+ set extraDragPreload(value: boolean);
82
+ /** `Adw.TabOverview:extra-drag-preferred-action` — always 0 here, for the same reason. */
83
+ get extraDragPreferredAction(): number;
84
+ /**
85
+ * The `overview.open` action (`overview_open_cb`, adw-tab-overview.c:1517-1521),
86
+ * with `update_actions`' enabled rule: closed AND holding a view (:816-826).
87
+ */
88
+ activateOverviewOpen(): boolean;
89
+ /**
90
+ * The `overview.close` action (`overview_close_cb`, :1523-1527): open, holding a
91
+ * view, and holding at least one page — an empty overview has nothing to close to.
92
+ */
93
+ activateOverviewClose(): boolean;
94
+ connectedCallback(): void;
95
+ disconnectedCallback(): void;
96
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
97
+ private _resolveView;
98
+ /** The `AdwTabView` among our own children — the only place the C allows one. */
99
+ private _findView;
100
+ /**
101
+ * `set_view`'s five connections (adw-tab-overview.c:1140-1209), read off the view's
102
+ * own events: the page list's attach/detach/reorder, each page's `pinned` change,
103
+ * the selection, and the page COUNT (which the title and the actions are derived
104
+ * from). The pinned page change arrives as `page-updated` / `page-pinned`.
105
+ */
106
+ private _bindView;
107
+ private _unbindView;
108
+ private _onViewChange;
109
+ private _syncAll;
110
+ /**
111
+ * `notify_n_pages_cb`: `dngettext ("%u Tab", "%u Tabs", n_pages)` — the count is
112
+ * the number of pages, and the singular is only for exactly one. No view means an
113
+ * EMPTY title, which is the C's own branch before the format string (:955-958).
114
+ */
115
+ private _applyTitle;
116
+ /**
117
+ * The two grids, split the way `populate_sidebar`-shaped code splits them: pinned
118
+ * pages in `pinned_grid` in view order, the rest in `grid`, each filtered by the
119
+ * current search terms. Thumbnails are edited in place; a page that left either
120
+ * grid loses its node.
121
+ */
122
+ private _syncGrids;
123
+ /**
124
+ * `empty_changed_cb`: EMPTY is BOTH grids empty, and which of the two status pages
125
+ * shows is the search — `empty_state` when it is off, `search_empty_state` when on.
126
+ */
127
+ private _applyEmptyStates;
128
+ /** `update_new_tab_button`: the button hides while the search is running. */
129
+ private _applyNewTabButton;
130
+ /**
131
+ * `update_header_bar`: the bar shows when search is on, or a secondary menu is set,
132
+ * or either side wants its title buttons. The two sides are drawn as the slots C
133
+ * puts the window buttons in — this renderer has no window chrome to move, so the
134
+ * slot is where an application puts its own controls.
135
+ */
136
+ private _applyHeaderBar;
137
+ private _applyMenu;
138
+ /** `set_open` + `set_overview_visible` (:916-939): one visibility, two surfaces. */
139
+ private _applyOpen;
140
+ /** `adw_tab_overview_set_open`, the setter the actions and the grid both call. */
141
+ setOpen(open: boolean): void;
142
+ private _searchMode;
143
+ /** The template's `search-mode-enabled` binding: the search BUTTON's own state. */
144
+ private _toggleSearchMode;
145
+ /**
146
+ * `search_changed_cb`: the terms go to BOTH grids and `search-active` is just
147
+ * "the entry is non-empty" — there is no separate mode to keep in step, which is why
148
+ * `stop_search_cb` has to clear the entry itself before reporting FALSE.
149
+ */
150
+ private _onSearchChanged;
151
+ private _stopSearch;
152
+ /** `set_search_active` (:838-852): assign, re-derive, and notify only on a change. */
153
+ private _setSearchActive;
154
+ /**
155
+ * `search_activated_cb` (:884-893): Enter in the entry moves into the grid, and it
156
+ * is the PINNED grid first, because it sits above `grid` in the scrolled window.
157
+ */
158
+ private _onSearchKeyDown;
159
+ /**
160
+ * `adw_tab_overview_focus` (:1343-1405), the parts the DOM can honour: the search
161
+ * button and the entry go DOWN into the first row, the secondary-menu button goes
162
+ * down to the LAST row, and the new-tab button goes UP to the last row of `grid`
163
+ * first. GTK's focus is a widget returning TRUE for a direction; a browser moves the
164
+ * focus itself, so this only names the destination.
165
+ */
166
+ private _onKeyDown;
167
+ /**
168
+ * The thumbnail grids are `GtkGridView`s: arrows move a cursor in two dimensions over
169
+ * a column count the layout decides (the grid reflows), Home/End jump, and nothing
170
+ * wraps. Selection follows focus; Enter and Space activate like a click, because a
171
+ * thumbnail is a `div` with no activation of its own. A move that would leave the
172
+ * grid is not claimed for Up/Down, so `_onKeyDown` can still hand focus to the
173
+ * new-tab button.
174
+ */
175
+ private _onGridKey;
176
+ private _focusFirstRow;
177
+ private _focusLastRow;
178
+ /**
179
+ * `create_tab` (:895-909) and `new_tab_clicked_cb` (:911-926).
180
+ *
181
+ * `create-tab`'s handler RETURNS a page, which a DOM event cannot do: `detail.page`
182
+ * is the return slot, and a listener fills it (usually by appending to the view).
183
+ * Nothing filled is C's `g_critical ("AdwTabOverview::create-tab handler must not
184
+ * return NULL")`, reported on `console.error` because the click cannot be abandoned.
185
+ */
186
+ private _requestCreateTab;
187
+ private _createGrid;
188
+ /**
189
+ * adw-tab-thumbnail.ui, node for node: the `.thumbnail` overlay over a `.card`
190
+ * overlay holding the PICTURE, the close button, the unpin icon and the indicator
191
+ * button, with the attention dot over that and the icon/title box underneath.
192
+ */
193
+ private _thumbFor;
194
+ /**
195
+ * `update_tooltip`, `update_icon`, `update_indicator`, `update_loading` and the
196
+ * needs-attention revealer, in that order (adw-tab-thumbnail.c:82-152).
197
+ */
198
+ private _refreshThumb;
199
+ }
@@ -19,6 +19,8 @@ export declare class AdwTabView extends HTMLElement {
19
19
  private readonly _pagesEl;
20
20
  /** Tab chips keyed by page id — the bar is edited in place, never rebuilt. */
21
21
  private readonly _tabs;
22
+ /** The same chips as {@link _tabs}, held as the shared builder's parts for a refresh. */
23
+ private readonly _chips;
22
24
  /** Page panels keyed by page id; kept so a DETACHED page's node is still reachable. */
23
25
  private readonly _panels;
24
26
  private readonly _hovered;
@@ -103,7 +105,16 @@ export declare class AdwTabView extends HTMLElement {
103
105
  reorderLast(id: string): boolean;
104
106
  setPageTitle(id: string, title: string | null): boolean;
105
107
  setPageTooltip(id: string, tooltip: string | null): boolean;
108
+ /**
109
+ * Set a page's search keyword (`AdwTabPage:keyword`) — the string the tab overview's
110
+ * search matches on beside the title and the tooltip ("Use keywords to search in
111
+ * e.g. page URLs in a web browser", adw-tab-overview.c:1646-1648).
112
+ */
113
+ setPageKeyword(id: string, keyword: string | null): boolean;
114
+ /** Set a page's icon name (`adw_tab_page_set_icon`). */
106
115
  setPageIcon(id: string, icon: string | null): boolean;
116
+ /** Set a page's indicator icon (`adw_tab_page_set_indicator_icon`). */
117
+ setPageIndicatorIcon(id: string, indicatorIcon: string | null): boolean;
107
118
  setPageLoading(id: string, loading: boolean): boolean;
108
119
  setPageNeedsAttention(id: string, needsAttention: boolean): boolean;
109
120
  /** Every precondition the model refused, as C would have warned about it. */
@@ -117,35 +128,20 @@ export declare class AdwTabView extends HTMLElement {
117
128
  private _moveTab;
118
129
  private _refreshTab;
119
130
  /**
120
- * `get_tab_position` in the BAR's scroll space: how far the chip sits from the
121
- * strip's scroll origin, the one coordinate both `scroll_to_tab_full` and
122
- * `update_visible` compare against the adjustment.
123
- *
124
- * Never `offsetLeft`. Nothing in this widget is positioned, so a chip's offsetParent
125
- * is whichever positioned ancestor the HOST page happens to have; a tab view that
126
- * merely sits indented then measured every chip against the wrong origin and
127
- * reported all of them clipped.
128
- */
129
- private _tabPosition;
130
- /**
131
- * `tabCloseVisible`, with its pinned gate. `dragging` is constantly false — tab
132
- * drag-and-drop is compositor work and is not modelled — and `fullyVisible` is
133
- * measured against the bar's scroll window, which is what the C term means for a
134
- * horizontally scrolled bar.
131
+ * The close affordance's visibility, and both halves of it now live in `../tab-chip.js`
132
+ * — `tabCloseVisible` and the geometry it is measured with, in the BAR's own scroll
133
+ * space. The incident that moved them there is recorded beside `chipPosition`: the
134
+ * measurement once used `offsetLeft`, which is relative to whichever positioned ancestor
135
+ * the HOST page happens to have, so a tab view that merely sat indented reported every
136
+ * chip clipped and swallowed the close button on hover.
135
137
  */
136
138
  private _refreshCloseVisibility;
137
139
  private _onSelectionChange;
138
140
  private _applyActiveState;
139
141
  /**
140
142
  * `scroll_to_tab_full` (adw-tab-box.c:928-961), called on every selection the way
141
- * `select_page` calls it (:1728): bring the selected chip inside the BAR's own
142
- * scroll window, padded by half of whichever is smaller, the chip or the leftover.
143
- *
144
- * The bar is the only thing C ever scrolls for a tab: `scroll_to_tab_full` writes
145
- * `self->adjustment`, the strip's own adjustment, and nothing else. The DOM has no
146
- * such narrow API: `focus()` and `scrollIntoView()` both walk EVERY scrollable
147
- * ancestor up to the window. So this moves `scrollLeft` by hand, and the focus call
148
- * below passes `preventScroll`.
143
+ * `select_page` calls it (:1728) — `scrollChipIntoBar` in `../tab-chip.js`, with the
144
+ * reasoning and the SPACING slack that is deliberately not transplanted.
149
145
  */
150
146
  private _scrollSelectedTabIntoBar;
151
147
  private _applyBarVisibility;
@@ -0,0 +1,84 @@
1
+ import type { SidebarItemFilter } from '@gjsify/adwaita-core';
2
+ import type { AdwViewStack } from './adw-view-stack.js';
3
+ export declare class AdwViewSwitcherSidebar extends HTMLElement {
4
+ private _sidebar;
5
+ private _placeholderEl;
6
+ private _prefixEl;
7
+ private _suffixEl;
8
+ private _stack;
9
+ private _filter;
10
+ private _initialized;
11
+ static get observedAttributes(): string[];
12
+ /** `AdwViewSwitcherSidebar:stack` — the stack the sidebar controls. */
13
+ get stack(): AdwViewStack | null;
14
+ set stack(value: AdwViewStack | string | null);
15
+ /**
16
+ * `adw_view_switcher_sidebar_set_stack`: unbind the old stack's four connections, bind
17
+ * the new one's, and populate. A NULL stack is refused, exactly as C is
18
+ * (`g_return_if_fail (!stack)`, :284) — an overview-less sidebar is not a state the C
19
+ * has, and inventing one here would give a reader a widget libadwaita cannot build.
20
+ */
21
+ setStack(stack: AdwViewStack | null): void;
22
+ /** `AdwViewSwitcherSidebar:mode` — `sidebar` (default) or `page`. */
23
+ get mode(): 'sidebar' | 'page';
24
+ set mode(value: 'sidebar' | 'page');
25
+ /**
26
+ * `AdwViewSwitcherSidebar:filter` — a `GtkFilter`, which on this renderer is the
27
+ * sidebar's own predicate. A property and not an attribute: it is a FUNCTION, and
28
+ * markup cannot carry one.
29
+ */
30
+ get filter(): SidebarItemFilter | null;
31
+ set filter(value: SidebarItemFilter | null);
32
+ /** `AdwViewSwitcherSidebar:placeholder` — shown when no item survives. */
33
+ get placeholder(): HTMLElement | null;
34
+ set placeholder(value: HTMLElement | null);
35
+ /**
36
+ * `AdwViewSwitcherSidebar:prefix` (1.10) — shown above the items.
37
+ *
38
+ * NOT `prefix`. `HTMLElement.prefix` is the RDFa attribute and a STRING, and a
39
+ * property of a different type cannot shadow it (TS2416). The GIR name is kept in the
40
+ * SLOT (`slot="prefix"`, what a `.blp`'s `prefix: …` authors) and here in the header.
41
+ */
42
+ get prefixWidget(): HTMLElement | null;
43
+ set prefixWidget(value: HTMLElement | null);
44
+ /** `AdwViewSwitcherSidebar:suffix` (1.10) — shown below the items. `suffixWidget`, as `prefixWidget`. */
45
+ get suffixWidget(): HTMLElement | null;
46
+ set suffixWidget(value: HTMLElement | null);
47
+ connectedCallback(): void;
48
+ disconnectedCallback(): void;
49
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
50
+ private _resolveStack;
51
+ /** The stack this sidebar is next to, when the author named no id. */
52
+ private _findStack;
53
+ /** `set_stack`'s four connections (:270-282), read off the stack's own events. */
54
+ private _bindStack;
55
+ private _unbindStack;
56
+ private _onStackChange;
57
+ /**
58
+ * `activated_cb` (:104-112) — the row's index is the stack's index, so the two lists
59
+ * are kept one for one. The selection moves FIRST: `activated` is the signal a split
60
+ * view reveals its content pane on, and a handler that read the stack in that callback
61
+ * would otherwise see the page the user was leaving.
62
+ */
63
+ private _onSidebarActivated;
64
+ /**
65
+ * `populate_sidebar` (:225-249) — one `AdwSidebarSection` per group of pages, each
66
+ * holding one `AdwSidebarItem` per page. The grouping is core's, so the browser and
67
+ * any second renderer derive the sections from the same table.
68
+ */
69
+ private _populate;
70
+ private _toSectionSpec;
71
+ /**
72
+ * `selection_changed_cb` (:258-271) — the row follows the stack's visible page. Read as
73
+ * the INDEX, because the sidebar's flat index space is the unfiltered one (ADR 0004),
74
+ * so page position and row position are the same number.
75
+ */
76
+ private _syncSelection;
77
+ private _applyMode;
78
+ /**
79
+ * `placeholder` (:449-460) — shown when the sidebar has no items, or when the filter
80
+ * took them all. The `<adw-sidebar>` knows the filtered list (`visibleItems` is empty),
81
+ * which is the C condition in `AdwSidebar`'s own words.
82
+ */
83
+ private _applyEmptyState;
84
+ }
@@ -1,3 +1,43 @@
1
+ import { AdwBreakpoint } from '@gjsify/adwaita-core';
1
2
  export declare class AdwWindow extends HTMLElement {
3
+ private _initialized;
4
+ private _contentEl;
5
+ private _breakpoints;
6
+ private _disposeBreakpoints;
7
+ private _openDialogs;
8
+ static get observedAttributes(): string[];
9
+ /** The content area — the Adw.Window:content property. */
10
+ get contentArea(): HTMLDivElement;
11
+ /** The content widget — the first child of the content area. */
12
+ get content(): HTMLElement | null;
13
+ set content(value: HTMLElement | null);
14
+ /** The breakpoints added to this window. */
15
+ get breakpoints(): readonly AdwBreakpoint[];
16
+ /** The currently applied breakpoint, or null when none is. */
17
+ get currentBreakpoint(): AdwBreakpoint | null;
18
+ /** The open dialogs presented inside this window (Adw.Window:dialogs). */
19
+ get dialogs(): readonly HTMLElement[];
20
+ /** The currently visible dialog, or null when none is (Adw.Window:visible-dialog). */
21
+ get visibleDialog(): HTMLElement | null;
22
+ /**
23
+ * Add a breakpoint to this window (adw_window_add_breakpoint).
24
+ * The breakpoint evaluates against the window's own box and sets a
25
+ * `data-breakpoint` attribute when applied.
26
+ */
27
+ addBreakpoint(condition: string): AdwBreakpoint;
2
28
  connectedCallback(): void;
29
+ disconnectedCallback(): void;
30
+ attributeChangedCallback(name: string): void;
31
+ private _buildOnce;
32
+ /**
33
+ * Bind the breakpoints to THIS box.
34
+ *
35
+ * NOT once per lifetime: `disconnectedCallback` releases the disposer, so a
36
+ * window moved between parents would come back deaf — and a window is exactly
37
+ * the thing a client-side route change re-parents. Re-binding is cheap and
38
+ * idempotent, and it re-measures the new box on the way.
39
+ */
40
+ private _bindBreakpoints;
41
+ /** The window's size request — GTK's, not CSS's, so an absent attribute means the default. */
42
+ private _applySizeRequest;
3
43
  }
@@ -0,0 +1,146 @@
1
+ import { AdwDialog } from './adw-dialog.js';
2
+ /**
3
+ * GTK's licence preamble (`gtk_about_dialog_set_license_type`, :2301) — NOT
4
+ * libadwaita's `ADW_LICENSE_WARRANTY_TEMPLATE`, which says "This application" and has no
5
+ * newline. Both strings are translatable and they are not translations of each other.
6
+ * The C template is `'This program comes with absolutely no warranty.\nSee the
7
+ * <a href="%s">%s</a> for details.'`; `_licenseMarkup` composes the same three runs —
8
+ * text, link, text — as DOM, because the scan it uses for plain licence text would read
9
+ * the `<a href>` as an email address.
10
+ */
11
+ export declare class GtkAboutDialog extends AdwDialog {
12
+ private _built;
13
+ private _logo;
14
+ private _switcherEl;
15
+ private _stackEl;
16
+ private _pages;
17
+ private _populated;
18
+ private _authors;
19
+ private _documenters;
20
+ private _artists;
21
+ private _creditSections;
22
+ static get observedAttributes(): string[];
23
+ /** The program name; unset falls back to the document's own title (`g_get_application_name`). */
24
+ get programName(): string;
25
+ set programName(value: string);
26
+ get version(): string;
27
+ set version(value: string);
28
+ get copyright(): string;
29
+ set copyright(value: string);
30
+ get comments(): string;
31
+ set comments(value: string);
32
+ get license(): string;
33
+ set license(value: string);
34
+ /** The `GtkLicense` nick — `unknown`, `custom`, `mit-x11`, … */
35
+ get licenseType(): string;
36
+ set licenseType(value: string);
37
+ get systemInformation(): string;
38
+ set systemInformation(value: string);
39
+ get website(): string;
40
+ set website(value: string);
41
+ get websiteLabel(): string;
42
+ set websiteLabel(value: string);
43
+ get translatorCredits(): string;
44
+ set translatorCredits(value: string);
45
+ /** The named-icon logo; overrides {@link logo}, as in the C. */
46
+ get logoIconName(): string;
47
+ set logoIconName(value: string);
48
+ /** Whether the License page's text view WRAPS (`populate_license_page`, :2157). */
49
+ get wrapLicense(): boolean;
50
+ set wrapLicense(value: boolean);
51
+ /**
52
+ * A logo URL, drawn as an `<img>`.
53
+ *
54
+ * `GtkAboutDialog:logo` is a `GdkPaintable`, which is the one GObject property here
55
+ * an attribute could have carried and cannot: there is no paintable in a document.
56
+ * A URL is the honest browser stand-in and the override order is the C's.
57
+ */
58
+ get logo(): string;
59
+ set logo(value: string);
60
+ /** The people whose names the Credits page shows — `GtkAboutDialog:authors`. */
61
+ get authors(): string[];
62
+ set authors(value: readonly string[]);
63
+ get documenters(): string[];
64
+ set documenters(value: readonly string[]);
65
+ get artists(): string[];
66
+ set artists(value: readonly string[]);
67
+ /** `gtk_about_dialog_add_credit_section` — an extra titled group on the Credits page. */
68
+ addCreditSection(name: string, people: readonly string[]): void;
69
+ private _creditsChanged;
70
+ connectedCallback(): void;
71
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
72
+ /**
73
+ * The headerbar carries the stack switcher and nothing else, exactly as
74
+ * `gtkaboutdialog.ui` declares it (`title-widget` → the switcher, no title).
75
+ */
76
+ protected decorateHeader(header: HTMLElement): void;
77
+ /** Which stack page is showing — `gtk_stack_get_visible_child_name`. */
78
+ get visiblePage(): string;
79
+ /**
80
+ * Show a page of the stack — `gtk_stack_set_visible_child_name`. The switcher buttons
81
+ * call it, and it is the one way the stack's lazy population (`stack_visible_child_notify`)
82
+ * runs: a page is built the first time it is shown, not before.
83
+ */
84
+ showPage(name: string): void;
85
+ private _build;
86
+ private _renderAbout;
87
+ /** The three visibility rules, one predicate each, as in the C. */
88
+ private _pageVisible;
89
+ /** `add_credits_section`'s input, in `populate_credits_page`'s order. */
90
+ private _creditsPeople;
91
+ /** Whether the stack switcher has anything to show (`update_stack_switcher_visibility`). */
92
+ private _visiblePages;
93
+ private _renderSwitcher;
94
+ private _renderLogo;
95
+ /** The main page: version, comments, website, copyright, licence — in `.ui` order. */
96
+ private _renderMain;
97
+ /**
98
+ * The licence label: the text `license` holds, with its `<…>` and bare-URL links
99
+ * turned into spans — or, for a known type, the warranty preamble `set_license_type`
100
+ * composes. The preamble keeps its `<a href>` markup and is read with
101
+ * `gtk_label_set_markup` (:2354), a REAL link: it never goes through the
102
+ * `text_buffer_new` scan below, which would read `<a href="…">` as an email
103
+ * address. Same split here.
104
+ */
105
+ private _licenseMarkup;
106
+ /** The License page — a text view whose wrap mode is `wrap-license`. */
107
+ private _populateLicense;
108
+ /** The System page — a text view with no wrap mode of its own. */
109
+ private _populateSystem;
110
+ /** The Credits page — the scrolled, framed grid `populate_credits_page` fills. */
111
+ private _populateCredits;
112
+ /**
113
+ * `stack_visible_child_notify` (:297-333): each of the three pages is built the first
114
+ * time the stack SHOWS it, and never rebuilt after. A credits grid for three hundred
115
+ * authors is not work a dialog nobody opened it for.
116
+ */
117
+ private _populatePage;
118
+ /** The framed scrolled window the three extra pages sit in (`has-frame`). */
119
+ private _frame;
120
+ private _link;
121
+ /**
122
+ * `text_buffer_new` (:1903-2028 of `gtkaboutdialog.c`) for the plain-DOM case: split
123
+ * the string into literal runs and links. A `<…>` run is an email when it carries no
124
+ * scheme and a URL when it does; a bare `http://` or `https://` run ends at the first
125
+ * of space, newline, tab or `>`, which is `strpbrk (r1, " \n\t>")`.
126
+ */
127
+ private _fillWithLinks;
128
+ /**
129
+ * `emit_activate_link` (:646-655): the `BOOLEAN__STRING` accumulator. A handler that
130
+ * returns TRUE says it took over, which is `preventDefault()` here — and only then
131
+ * does the default `Gtk.UriLauncher` navigation not happen.
132
+ */
133
+ private _activateLink;
134
+ }
135
+ /** One run of `text_buffer_new`'s output: literal text, or a link with its URI. */
136
+ interface LinkPart {
137
+ readonly text: string;
138
+ readonly uri: string | null;
139
+ }
140
+ /**
141
+ * `text_buffer_new`'s scan, in order: the first `<` and the first `>` after it, the
142
+ * earliest bare `http://` or `https://` and where it ends, and the C's own precedence —
143
+ * a URL that starts AT or just after the `<` wins, which leaves the bracket in the text.
144
+ */
145
+ export declare function splitLinks(text: string): LinkPart[];
146
+ export {};
@@ -0,0 +1,34 @@
1
+ import type { AdwSlot } from '../slotted-children.js';
2
+ import { GtkWindow } from './gtk-window.js';
3
+ export declare class GtkApplicationWindow extends GtkWindow {
4
+ private _menubar;
5
+ private _menubarObserver;
6
+ static get observedAttributes(): string[];
7
+ /** `Gtk.ApplicationWindow:show-menubar` — whether the window shows a menubar of its own. */
8
+ get showMenubar(): boolean;
9
+ set showMenubar(value: boolean);
10
+ /**
11
+ * The menubar strip, created once and reused: `strips()` and `extraSlots()` both ask for
12
+ * it, so whichever runs first builds it and the other finds it.
13
+ */
14
+ private menubarSection;
15
+ /**
16
+ * Titlebar, then menubar, then content — the order `update_menubar` parents the bar at
17
+ * (:418) inside a window whose titlebar sits above its own child.
18
+ */
19
+ protected strips(): Node[];
20
+ /** The `menubar` slot, which is where a `GtkPopoverMenuBar` goes. */
21
+ protected extraSlots(): AdwSlot[];
22
+ connectedCallback(): void;
23
+ disconnectedCallback(): void;
24
+ attributeChangedCallback(name: string): void;
25
+ /**
26
+ * `update_menubar`'s visibility rule (gtkapplicationwindow.c:400-402), BOTH halves: the
27
+ * property AND at least one item in the section. This element has no `GMenuModel` to ask,
28
+ * so the second half is the SLOT — an empty `menubar` slot is an empty `menubar_section`.
29
+ * The observer is what makes the second half live: `bindSlottedChildren` adopts a
30
+ * `slot="menubar"` child after connect, and a bar that appeared then must appear.
31
+ */
32
+ private _followMenubar;
33
+ private _renderMenubar;
34
+ }
@@ -0,0 +1,27 @@
1
+ export declare class GtkAspectFrame extends HTMLElement {
2
+ static get observedAttributes(): string[];
3
+ /** `Gtk.AspectFrame:ratio` — the width/height of the child. Ignored under `obey-child`. */
4
+ get ratio(): number;
5
+ set ratio(value: number);
6
+ /** `Gtk.AspectFrame:xalign` — where the child sits horizontally. `0.5` is the centre. */
7
+ get xalign(): number;
8
+ set xalign(value: number);
9
+ /** `Gtk.AspectFrame:yalign` — where the child sits vertically. `0.5` is the centre. */
10
+ get yalign(): number;
11
+ set yalign(value: number);
12
+ /**
13
+ * `Gtk.AspectFrame:obey-child` — TRUE (the pspec default, and therefore the ABSENCE of
14
+ * the attribute) takes the ratio from the child and ignores `ratio`. Spelled as
15
+ * `obey-child="false"` rather than as an inverted attribute, because the default is the
16
+ * affirmative one and every other boolean on every other element here means "present".
17
+ */
18
+ get obeyChild(): boolean;
19
+ set obeyChild(value: boolean);
20
+ /** `Gtk.AspectFrame:child` — the single widget the frame shapes. */
21
+ get child(): HTMLElement | null;
22
+ set child(value: HTMLElement | null);
23
+ connectedCallback(): void;
24
+ attributeChangedCallback(name: string, old: string | null, value: string | null): void;
25
+ private _normalized;
26
+ private _sync;
27
+ }
@@ -1,4 +1,7 @@
1
+ import type { DispatchedSignals } from '../signals.js';
1
2
  export declare class GtkButton extends HTMLElement {
3
+ /** The GTK signals this element dispatches, each with the DOM event it arrives as (ADR 0093). */
4
+ static readonly signals: DispatchedSignals;
2
5
  private _button;
3
6
  private _label;
4
7
  private _initialized;
@@ -10,4 +13,10 @@ export declare class GtkButton extends HTMLElement {
10
13
  connectedCallback(): void;
11
14
  attributeChangedCallback(): void;
12
15
  private _render;
16
+ /**
17
+ * Last step of every render, after the class and the content are written. A subclass
18
+ * adds its own state to the inner button here, because `_render` resets `className` and
19
+ * anything set earlier would be gone with it.
20
+ */
21
+ protected decorate(_button: HTMLButtonElement): void;
13
22
  }