@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,97 @@
1
+ /** The four overlay glyphs, in the order `update_overlay_icon` tests them (gtkvideo.c:626-646). */
2
+ export type VideoOverlayIcon = 'media-eject-symbolic' | 'dialog-error-symbolic' | 'media-playlist-repeat-symbolic' | 'media-playback-start-symbolic';
3
+ /**
4
+ * The glyph a video with NO stream draws — the FIRST arm of the four-way choice
5
+ * (gtkvideo.c:629), because "there is nothing here to play" is the state every GtkVideo
6
+ * starts in.
7
+ */
8
+ export declare const NO_STREAM_ICON = "media-eject-symbolic";
9
+ /** The glyph a stream that FAILED draws (gtkvideo.c:633) — tested before `ended`. */
10
+ export declare const ERROR_ICON = "dialog-error-symbolic";
11
+ /** The glyph a stream that has ENDED draws (gtkvideo.c:638-639). */
12
+ export declare const ENDED_ICON = "media-playlist-repeat-symbolic";
13
+ /** The glyph a READY stream draws (gtkvideo.c:645) — the arm everything else falls through to. */
14
+ export declare const READY_ICON = "media-playback-start-symbolic";
15
+ /** `gtk_video_reveal_controls`' timeout: 3 s (gtkvideo.c:130). */
16
+ export declare const CONTROLS_HIDE_MS = 3000;
17
+ export declare class GtkVideo extends HTMLElement {
18
+ private _initialized;
19
+ private _overlayIcon;
20
+ private _controlsRevealer;
21
+ private _media;
22
+ /** The listeners currently bound on `_media`, so `_detachMedia` removes the SAME ones. */
23
+ private mediaListeners;
24
+ private _hideTimer;
25
+ /** What the media element last told us, in the four fields the overlay choice reads. */
26
+ private _hasStream;
27
+ private _error;
28
+ private _ended;
29
+ private _playing;
30
+ static get observedAttributes(): string[];
31
+ /**
32
+ * `GtkVideo:autoplay` (gtkvideo.c:407-414). Defaults to FALSE. The C plays on the
33
+ * stream's `prepared` notification and not on this write — see the header — so this
34
+ * setter records the flag and lets the media's own readiness decide.
35
+ */
36
+ get autoplay(): boolean;
37
+ set autoplay(value: boolean);
38
+ /** `GtkVideo:loop` (gtkvideo.c:432-439). Defaults to FALSE. A plain `<video loop>`. */
39
+ get loop(): boolean;
40
+ set loop(value: boolean);
41
+ /**
42
+ * `GtkVideo:graphics-offload` (gtkvideo.c:400-406, :1010-1023). Defaults to FALSE — the
43
+ * template ships `<property name="enabled">disabled</property>` (ui/gtkvideo.ui), so the
44
+ * C starts with the offload OFF and an application has to ask for it.
45
+ *
46
+ * Stored, readable and class-flagged, and NOTHING ELSE HAPPENS: CSS has no way to move a
47
+ * subtree into a shared GPU texture, which is what `GtkGraphicsOffload` is. The class is
48
+ * `graphics-offload` so a page can still target it, and `KNOWN_GAPS` in
49
+ * `check-adwaita-element-properties.mjs` does not list it because the PROPERTY is
50
+ * observed — what it does not buy is a faster composite.
51
+ */
52
+ get graphicsOffload(): boolean;
53
+ set graphicsOffload(value: boolean);
54
+ /** The `<video>` this element drives — the browser's answer to a `GtkMediaStream`. */
55
+ get media(): HTMLVideoElement | null;
56
+ /** Whether the media reports itself playing — `GtkVideo:playing` (`gtk_video_get_playing`). */
57
+ get playing(): boolean;
58
+ /** The current position in SECONDS — the C's `timestamp`, in microseconds × 1000. */
59
+ get timestamp(): number;
60
+ /** The media's duration in SECONDS — the C's `duration`; 0 while it is unknown. */
61
+ get duration(): number;
62
+ /** Whether the overlay controls bar is currently revealed. */
63
+ get controlsRevealed(): boolean;
64
+ private _write;
65
+ connectedCallback(): void;
66
+ /**
67
+ * `ui/gtkvideo.ui` keeps the author's `<video>` as the MAIN child of the overlay and adds
68
+ * the two overlay children around it. Wrapping in place rather than re-creating is what
69
+ * lets the light DOM stay the API: a page writes `<gtk-video><video src=…></video></gtk-video>`
70
+ * and the element never has to be told where the media is.
71
+ */
72
+ private _wrap;
73
+ private _adoptMedia;
74
+ private _detachMedia;
75
+ /** `autoplay` and `loop` are declared PROPERTIES of the widget, so they are applied to
76
+ * the media rather than left to the author's markup — `ui/gtkvideo.ui` does the same by
77
+ * binding them on the template. */
78
+ private _syncMedia;
79
+ private _overlayClicked;
80
+ /**
81
+ * `gtk_video_reveal_controls` (gtkvideo.c:125-133): reveal, then arm a 3 s timeout that
82
+ * hides it again. Re-arming on every call is what makes it a "three seconds after the
83
+ * LAST movement" rather than a "three seconds after the first".
84
+ */
85
+ revealControls(): void;
86
+ private _hideControls;
87
+ /** `gtk_video_motion` (ui/gtkvideo.ui) — the motion controller's only job. */
88
+ private _onPointerMove;
89
+ attributeChangedCallback(name: string): void;
90
+ /** The `notify::` detail for `name`: the PROPERTY, parsed, not the raw attribute. */
91
+ private _property;
92
+ /** `gtk_video_update_playing` (gtkvideo.c:658-666) — VISIBILITY, not an icon swap. */
93
+ private _updatePlaying;
94
+ /** `gtk_video_update_overlay_icon` (gtkvideo.c:626-646), arm by arm. */
95
+ private _updateOverlayIcon;
96
+ disconnectedCallback(): void;
97
+ }
@@ -0,0 +1,84 @@
1
+ import { type AdwAdjustment } from '@gjsify/adwaita-core';
2
+ /** The two axes a scrollport reports numbers for, in the order GTK declares them. */
3
+ declare const AXES: readonly ["horizontal", "vertical"];
4
+ type Axis = (typeof AXES)[number];
5
+ export declare class GtkViewport extends HTMLElement {
6
+ private _observer;
7
+ private _watch;
8
+ static get observedAttributes(): string[];
9
+ /**
10
+ * `GtkScrollable:hadjustment` — the horizontal position, as the portable value.
11
+ *
12
+ * Computed on read rather than stored: `viewport_set_adjustment_values` reconfigures both
13
+ * axes on every allocation, so there is no state to cache and nothing an author can write.
14
+ */
15
+ get hadjustment(): AdwAdjustment;
16
+ /** `GtkScrollable:vadjustment` — the vertical position, as the portable value. */
17
+ get vadjustment(): AdwAdjustment;
18
+ /**
19
+ * `GtkViewport:scroll-to-focus` — whether the viewport keeps the focus widget in view.
20
+ * TRUE in the pspec (gtkviewport.c:338-340), and an unknown value is the DEFAULT rather
21
+ * than "off": only the literal `false` turns it off, which is what FALSE in a construct
22
+ * bag means and what a boolean attribute has to spell out to be read at all.
23
+ */
24
+ get scrollToFocus(): boolean;
25
+ set scrollToFocus(value: boolean);
26
+ connectedCallback(): void;
27
+ disconnectedCallback(): void;
28
+ /**
29
+ * Announce whenever a number the adjustments are made of has changed.
30
+ *
31
+ * GTK reconfigures both axes on every allocation — `viewport_set_adjustment_values` runs
32
+ * out of `size_allocate`, and `gtk_adjustment_configure` compresses the notifications into
33
+ * one. A browser reports the same event as the scrollport's own box changing (this
34
+ * element) and its CONTENT changing (the children), and neither is the other's: a child
35
+ * that grows leaves the viewport's box exactly where it was, which is why BOTH are watched.
36
+ * The content watcher is what makes a scrolled window's bars appear the moment content
37
+ * lands in it, and it is `gtk_widget_queue_resize` on the child propagating upward.
38
+ */
39
+ private _observe;
40
+ attributeChangedCallback(name: string): void;
41
+ /**
42
+ * `gtk_adjustment_set_value` on one of the viewport's OWN adjustments — the half of a
43
+ * scrolled window's job that moves content rather than deciding whether to.
44
+ *
45
+ * The value is clamped first, which is `set_value`'s documented behaviour ("The value is
46
+ * clamped to lie between lower and upper") and the reason a bar may ask for a position its
47
+ * own range has just outgrown.
48
+ */
49
+ scrollAxis(axis: Axis, value: number): void;
50
+ /**
51
+ * `gtk_viewport_scroll_to` — move the position so `descendant` is inside the window.
52
+ * `null` asks only for the position to be CLAMPED, which is what a content that shrank
53
+ * needs from a value that was legal a moment ago.
54
+ *
55
+ * GTK animates the move (`gtk_adjustment_animate_to_value`, gtkviewport.c:757-758) for
56
+ * `ANIMATION_DURATION` unless the widget should not animate — the browser's spelling of
57
+ * that setting is `prefers-reduced-motion`, and `scrollIntoView`'s own `behavior` is where
58
+ * the choice belongs.
59
+ *
60
+ * `scrollTo` IS a platform method with an options form, so both are here and the KIND of
61
+ * the argument decides: a node is GTK's `scroll_to(descendant)` and anything else is the
62
+ * scrollport's own `scrollTo(options)`, which this element is (one element for the two
63
+ * GTK nodes is the port's own decision, see the header).
64
+ */
65
+ scrollTo(descendant: Element | null): void;
66
+ scrollTo(options?: ScrollToOptions): void;
67
+ scrollTo(x: number, y: number): void;
68
+ /** The adjustments of both axes, as the detail of the `value-changed` event. */
69
+ get adjustments(): {
70
+ hadjustment: AdwAdjustment;
71
+ vadjustment: AdwAdjustment;
72
+ };
73
+ /**
74
+ * One event for both adjustments: a browser scroll moves them together, and the C's
75
+ * `GtkAdjustment::value-changed` is a signal of the ADJUSTMENT rather than of the viewport
76
+ * that reads it. Bubbling, so `<gtk-scrolled-window>` hears it without holding a reference
77
+ * to anything in here.
78
+ */
79
+ private _announce;
80
+ /** `setup_focus_change_handler` / `clear_focus_change_handler`, on one event instead of a root signal. */
81
+ private _bindFocus;
82
+ private _onFocusIn;
83
+ }
84
+ export {};
@@ -0,0 +1,80 @@
1
+ /** `Gtk.PackType`, spelled as the GIR's enum nicks (gtkwindowcontrols.c:68). */
2
+ type PackSide = 'start' | 'end';
3
+ /** What a press asks for: the `GtkActionable` action name minus its `window.` prefix. */
4
+ export type WindowAction = 'minimize' | 'toggle-maximized' | 'close';
5
+ export declare class GtkWindowControls extends HTMLElement {
6
+ private _initialized;
7
+ private _empty;
8
+ /** The frame this controls answers to, or `null` outside one (`:257-263`). */
9
+ private _window;
10
+ private _windowObserver;
11
+ static get observedAttributes(): string[];
12
+ /** `Gtk.WindowControls:side` — which half of the decoration layout to build. */
13
+ get side(): PackSide;
14
+ set side(value: PackSide);
15
+ /** `Gtk.WindowControls:use-native-controls` — a macOS-only branch; see KNOWN_GAPS. */
16
+ get useNativeControls(): boolean;
17
+ /**
18
+ * `Gtk.WindowControls:empty` (read-only in GIR). TRUE — the GIR default (:618) — until a
19
+ * render finds a button, which is what happens outside a window.
20
+ */
21
+ get empty(): boolean;
22
+ /** `setAttribute` for a write that changes nothing; every GObject setter here returns early. */
23
+ private _write;
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ attributeChangedCallback(name: string): void;
27
+ private _property;
28
+ /**
29
+ * Bind to the frame above, the way `gtk_window_controls_root` binds to the settings and
30
+ * to `notify` on the window (:443-462) — then run the build, which is that handler's
31
+ * first act. Re-established on every connect: a bar moved into another window has a new
32
+ * ancestor, which is why C does it in `root` and drops it in `unroot`.
33
+ */
34
+ private _followWindow;
35
+ /** `is_sovereign_window` (gtkwindowcontrols.c:272-273): neither modal nor transient. */
36
+ private _isSovereign;
37
+ /**
38
+ * The window property, in ITS polarity. `resizable` and `deletable` default TRUE
39
+ * (gtkwindow.c:893, :1024) and `maximized` defaults FALSE (:1044), so one helper reading
40
+ * them alike would put a maximize button on a window that cannot be maximized — and a
41
+ * restore glyph on every window there is.
42
+ */
43
+ private _windowFlag;
44
+ /**
45
+ * `get_layout` (gtkwindowcontrols.c:120-176), reduced to what a page can answer: this
46
+ * widget's own value, then the frame's, then GNOME's default. The first ':' splits the
47
+ * layout in two, and a layout with no ':' is the same half on both sides.
48
+ */
49
+ private _layoutHalf;
50
+ /** `update_window_buttons` (gtkwindowcontrols.c:247-426), token for token. */
51
+ private _render;
52
+ /** Every render writes the class, whether the VALUE moved or not — see {@link _setEmpty}. */
53
+ private _applyEmptyClass;
54
+ /** The one child a token builds, or `null` for the tokens that build nothing here. */
55
+ private _buttonFor;
56
+ /**
57
+ * `update_window_icon` (gtkwindowcontrols.c:187-210): the icon node is `presentation` to
58
+ * an accessibility tree, and it is dropped when the window has no icon — which for a
59
+ * frame means no `icon-name`, the analogue of a window with no `GdkPaintable`.
60
+ */
61
+ private _windowIcon;
62
+ /**
63
+ * One `GtkButton` with its `GtkImage` child. A plain `<button>` rather than
64
+ * `<gtk-button>`: libadwaita's own rules select `windowcontrols > button > image`
65
+ * (refs/libadwaita/src/stylesheet/widgets/_header-bar.scss:178-202), so the button IS
66
+ * the widget node here, and `<gtk-button>` would wrap a second one inside it.
67
+ */
68
+ private _controlButton;
69
+ /**
70
+ * `set_empty` (gtkwindowcontrols.c:216-230): a style class, and a notify of its own.
71
+ *
72
+ * The early return is about the NOTIFY, and it is the whole of C's `if (empty ==
73
+ * self->empty) return;`. The CLASS is not part of that comparison here: `empty` starts
74
+ * TRUE, so the first render outside a window is a no-op against C and the widget was
75
+ * left wearing nothing at all — a property whose style class only appears once it has
76
+ * been wrong and then right again.
77
+ */
78
+ private _setEmpty;
79
+ }
80
+ export {};
@@ -0,0 +1,39 @@
1
+ /** `GtkTitlebarGesture`'s three gestures, as `perform_titlebar_action` decides them. */
2
+ export type GtkTitlebarGesture = 'double-click' | 'middle-click' | 'right-click';
3
+ /** The settings' own vocabulary, `none` included: "the compositor declined" is one. */
4
+ export type GtkTitlebarAction = 'toggle-maximize' | 'lower' | 'minimize' | 'menu' | 'none';
5
+ export declare class GtkWindowHandle extends HTMLElement {
6
+ /** The gesture in progress, as `priv->drag_start_x` / `_y` are in the C. */
7
+ private _drag;
8
+ /**
9
+ * The three gesture SETTINGS, spelled out.
10
+ *
11
+ * `GESTURES` above names the same three, and the list is written rather than computed
12
+ * from it because `scripts/adwaita-elements.mjs` reads `observedAttributes` as an array
13
+ * LITERAL: a `.map()` over a table reads as an unreadable element there, which is
14
+ * reported as "this reader cannot tell" rather than as the three attributes it is.
15
+ */
16
+ static get observedAttributes(): string[];
17
+ /** The action one gesture is set to, as the settings are read in C. */
18
+ actionFor(gesture: GtkTitlebarGesture): GtkTitlebarAction;
19
+ connectedCallback(): void;
20
+ disconnectedCallback(): void;
21
+ /**
22
+ * `perform_titlebar_action_fallback`: raise the action GTK would have activated, and
23
+ * then the event NAMED for it.
24
+ *
25
+ * Both fire for every gesture, `none` included: the first is what a consumer reads to
26
+ * know a titlebar was clicked at all — the C's `retval = FALSE`, where the compositor
27
+ * declined, is a fact worth reporting — and the second is what a window host binds to.
28
+ */
29
+ private _perform;
30
+ private _onClick;
31
+ private _onPointerDown;
32
+ /**
33
+ * `drag_gesture_update_cb`: past the threshold the WINDOW moves, and the sequence is
34
+ * reset so the gesture does not repeat. The move is a compositor operation, so what is
35
+ * emitted is the INTENT, with the pointer's position where GTK hands `begin_move` its
36
+ * own surface coordinates.
37
+ */
38
+ private _onPointerMove;
39
+ }
@@ -0,0 +1,97 @@
1
+ import { type AdwSlot } from '../slotted-children.js';
2
+ import './gtk-window-controls.js';
3
+ export declare class GtkWindow extends HTMLElement {
4
+ private _initialized;
5
+ /** The `titlebar` strip — `protected` so a subclass can place its own strips around it. */
6
+ protected _titlebar: HTMLDivElement;
7
+ /** Every child the window has no slot name for. */
8
+ protected _content: HTMLDivElement;
9
+ /** The SSD controls the strip draws when the window has no titlebar of its own. */
10
+ private _startControls;
11
+ private _endControls;
12
+ /** The window's own title in the strip, or `null` when a titlebar holds it. */
13
+ private _titleLabel;
14
+ /** Watches the strip for an author's titlebar arriving after the build. */
15
+ private _titlebarObserver;
16
+ static get observedAttributes(): string[];
17
+ /** `Gtk.Window:title` — the window's title. */
18
+ get title(): string | null;
19
+ set title(value: string | null);
20
+ /** `Gtk.Window:decorated` — whether the frame and its titlebar strip are drawn at all. */
21
+ get decorated(): boolean;
22
+ set decorated(value: boolean);
23
+ /** `Gtk.Window:maximized` — square corners and the restore glyph. */
24
+ get maximized(): boolean;
25
+ set maximized(value: boolean);
26
+ /** `Gtk.Window:resizable` — whether the maximize button may appear. */
27
+ get resizable(): boolean;
28
+ set resizable(value: boolean);
29
+ /** `Gtk.Window:deletable` — whether the close button may appear. */
30
+ get deletable(): boolean;
31
+ set deletable(value: boolean);
32
+ /**
33
+ * `setAttribute` for a write that changes nothing. Every GObject setter here returns
34
+ * early when the value is already right (gtkwindow.c:1015-1017, :1045-1046, :894-895),
35
+ * and a boolean property whose value did not move must not notify.
36
+ */
37
+ protected _write(name: string, value: string | null): void;
38
+ /**
39
+ * The two default polarities, because one of them is wrong for half of this widget.
40
+ *
41
+ * `decorated`, `resizable` and `deletable` default TRUE (gtkwindow.c:1014, :893, :1024)
42
+ * and `maximized`, `fullscreened`, `modal` and `hide-on-close` default FALSE (:1044,
43
+ * :1060, :903, :945). Reading them all through one helper is how a bare `<gtk-window>`
44
+ * ended up wearing `.maximized` and `.fullscreen` — square corners and no shadow, on a
45
+ * window that had never been maximized.
46
+ */
47
+ private _onByDefault;
48
+ private _offByDefault;
49
+ connectedCallback(): void;
50
+ disconnectedCallback(): void;
51
+ /**
52
+ * A `slot="titlebar"` child adopted AFTER the build has to take the strip over from the
53
+ * server-side decoration, and `_render` is the one that notices — nothing else here runs
54
+ * when a child lands. Observed on `_titlebar`, which is where the adopted child goes,
55
+ * because `bindSlottedChildren` already watches the host for it.
56
+ *
57
+ * Re-established on every connect, so a window moved between parents keeps it.
58
+ */
59
+ private _watchTitlebar;
60
+ /**
61
+ * The strips the frame is built from, in order. A subclass with a strip of its own —
62
+ * `<gtk-application-window>`'s menubar — adds it here, which is the only reason this pair
63
+ * exists: `install()` takes the structure and the slots at once, and the ORDER is that
64
+ * call's invariant (see `slotted-children.ts`).
65
+ */
66
+ protected strips(): Node[];
67
+ /** The slots a subclass adds beside `titlebar`; none by default. */
68
+ protected extraSlots(): AdwSlot[];
69
+ attributeChangedCallback(name: string): void;
70
+ private _property;
71
+ private _render;
72
+ /**
73
+ * The strip, in the two shapes a window can be in. With a `titlebar` child the strip
74
+ * holds exactly that — GTK hands the whole titlebar to the bar, decorations and all. With
75
+ * none it holds the two `<gtk-window-controls>` and the window's title, which is the
76
+ * server-side decoration GTK would otherwise have asked the window manager to draw and
77
+ * which a page has to draw for itself.
78
+ */
79
+ private _renderTitlebar;
80
+ /** The frame controls' `GtkActionable` names, answered here — gtkwindow.c:1274-1287. */
81
+ private _onWindowAction;
82
+ /**
83
+ * `gtk_window_close` (gtkwindow.c:1274-1287): emit `close-request` and, if nothing handled
84
+ * it, hide the window when `hide-on-close` is set and DESTROY it otherwise. "Destroy" is
85
+ * the one word this port cannot mean — a page has no unref — so the default detaches the
86
+ * frame, which is the same observable outcome for everything above it.
87
+ */
88
+ close(): boolean;
89
+ /**
90
+ * `gtk_window_maximize`. ASYNCHRONOUS in GTK — the GIR says so at gtkwindow.c:1044 — so
91
+ * the property is the thing a caller watches, and this writes it directly rather than
92
+ * pretending to round-trip a compositor.
93
+ */
94
+ maximize(): void;
95
+ /** `gtk_window_unmaximize`, with the same caveat as {@link maximize}. */
96
+ unmaximize(): void;
97
+ }
@@ -0,0 +1,2 @@
1
+ import type { LabelJustification } from '@gjsify/adwaita-core';
2
+ export declare const JUSTIFY_TEXT_ALIGN: Record<LabelJustification, string>;
@@ -45,6 +45,24 @@ export declare class PopoverMenuView {
45
45
  private _onKeyDown;
46
46
  /** Every row of the open page, in order — including the ones no key can reach. */
47
47
  get rows(): readonly HTMLButtonElement[];
48
+ /**
49
+ * The path of the page showing; `[]` is the root.
50
+ *
51
+ * Public because `GtkPopoverMenu:visible-submenu` IS this: GTK's value is the
52
+ * `GtkStack` child's name (gtkpopovermenu.c:755-757), and the stack child's identity
53
+ * here is the path that leads to it. Reading it is how the element answers the
54
+ * property without keeping a second copy of the open page beside this one.
55
+ */
56
+ get page(): AdwMenuPath;
57
+ /**
58
+ * Point the view at `path` without rendering — {@link render} does that, and doing it
59
+ * here as well would rebuild the rows twice per change.
60
+ *
61
+ * Distinct from {@link reset} because it NAMES the destination: a popover menu can be
62
+ * opened straight into a submenu, and a caller that had to open the parent first and
63
+ * then click into it would be reporting the reader's journey as the widget's state.
64
+ */
65
+ showPage(path: AdwMenuPath): void;
48
66
  /**
49
67
  * The rows a key can actually REACH, which is the only list worth focusing into.
50
68
  *
@@ -1,12 +1,28 @@
1
1
  /** Which axis the items are laid out along — it decides which arrow keys move. */
2
2
  export type AdwRovingOrientation = 'horizontal' | 'vertical';
3
+ /**
4
+ * Where one key lands, given where the cursor is.
5
+ *
6
+ * The DEFAULT is the neighbouring index, which is what a single run of items means. A widget
7
+ * whose two axes do NOT both mean "one along" supplies its own: `Gtk.FlowBox` binds
8
+ * `GTK_MOVEMENT_VISUAL_POSITIONS` sideways and `GTK_MOVEMENT_DISPLAY_LINES` vertically
9
+ * (gtkflowbox.c:3944-3951), and against a grid those differ — from the last cell of a full
10
+ * line, "left" is the first cell of the next one by INDEX and one row UP by POSITION.
11
+ */
12
+ export type AdwRovingStep = (items: readonly HTMLElement[], from: number, direction: -1 | 1) => number | null;
3
13
  export interface AdwRovingFocusInit {
4
14
  /**
5
15
  * The element the listener sits on — the custom element itself, so items rebuilt at
6
16
  * any time are still covered.
7
17
  */
8
18
  host: HTMLElement;
9
- orientation: AdwRovingOrientation;
19
+ /**
20
+ * Which axis the arrows move along. A FUNCTION where the widget is a `GtkOrientable`
21
+ * and can be turned after the listener is installed — `<gtk-list-view>` and
22
+ * `<gtk-flow-box>` are, and a value read once at install time pointed its arrow keys at
23
+ * the axis it had at connect for the rest of its life.
24
+ */
25
+ orientation: AdwRovingOrientation | (() => AdwRovingOrientation);
10
26
  /**
11
27
  * The items a key may land on, in visual order. The widget filters: a `hidden` or
12
28
  * `disabled` item is not navigable, and leaving one in would strand the user on a
@@ -18,6 +34,18 @@ export interface AdwRovingFocusInit {
18
34
  * focus travels with the key either way ({@link attachRovingFocus}).
19
35
  */
20
36
  select: (item: HTMLElement) => void;
37
+ /** Where a previous/next key lands. Defaults to the neighbouring index. */
38
+ step?: AdwRovingStep;
39
+ /**
40
+ * A SECOND pair of arrows, for the one widget GTK gives both. It contributes those two
41
+ * keys ONLY — never `Home` and `End`, which name the two ENDS of the box and stay one
42
+ * answer however many axes ask.
43
+ */
44
+ crossAxis?: {
45
+ orientation: AdwRovingOrientation | (() => AdwRovingOrientation);
46
+ /** Required here, unlike on the primary axis: a second axis is a grid, not a run. */
47
+ step: AdwRovingStep;
48
+ };
21
49
  }
22
50
  /**
23
51
  * Make a roving tabindex navigable: arrows step, Home/End jump, and focus travels with
@@ -0,0 +1,38 @@
1
+ /** One emoji entry: the code points and the words the search reads. */
2
+ export interface EmojiEntry {
3
+ /** The code points, as one string — a ZWJ sequence is already spelled out. */
4
+ readonly text: string;
5
+ /** The English name — `filter_func`'s second list. */
6
+ readonly name: string;
7
+ /** Search keywords, one word each — `filter_func`'s third list. */
8
+ readonly keywords: readonly string[];
9
+ }
10
+ /** One `EmojiSection`, with the heading and the toolbar button's own label. */
11
+ export interface EmojiCategory {
12
+ /** The section key: `recent`, `people`, … */
13
+ readonly id: string;
14
+ /** The heading above the section, `''` for the one without (recent). */
15
+ readonly heading: string;
16
+ /** The `.ui` tooltip of the toolbar button, which for every section but recent is its heading. */
17
+ readonly tooltip: string;
18
+ /** The emoji, in the order GTK appends them. */
19
+ readonly entries: readonly EmojiEntry[];
20
+ }
21
+ /** `MAX_RECENT` — 7 columns by 3 rows (gtkemojichooser.c:363). */
22
+ export declare const EMOJI_MAX_RECENT: number;
23
+ /** `EMOJI_SKIN_TONES` — `1F3FB`…`1F3FF`, the five modifiers (gtkemojichooser.c:530). */
24
+ export declare const EMOJI_SKIN_TONES: readonly string[];
25
+ /** `has_variations` (gtkemojichooser.c:489-508) — whether an entry carries a skin slot. */
26
+ export declare function hasVariations(entry: EmojiEntry): boolean;
27
+ /**
28
+ * The nine category sections, in `setup_section`'s registration order. `recent` is NOT
29
+ * here: its emoji come from `GSettings` (`recently-used-emoji`), so the element owns
30
+ * that list and this table does not know about it.
31
+ */
32
+ export declare const EMOJI_CATEGORIES: readonly EmojiCategory[];
33
+ /** The section ids in order, `recent` FIRST — the struct order of `GtkEmojiChooser`. */
34
+ export declare const EMOJI_SECTION_IDS: readonly string[];
35
+ /** The heading of a section, `''` for `recent` — the one with no heading widget at all. */
36
+ export declare function emojiHeading(id: string): string;
37
+ /** The toolbar button's tooltip for a section: its heading, or `Recent` for the first. */
38
+ export declare function emojiTooltip(id: string): string;
@@ -0,0 +1,96 @@
1
+ /** The horizontal slant Pango spells. CSS has `italic` and `oblique`, and so does this. */
2
+ export type FontSlant = 'normal' | 'italic' | 'oblique';
3
+ /** The four widths Pango distinguishes; CSS `font-stretch` names the same three. */
4
+ export type FontWidth = 'normal' | 'condensed' | 'expanded';
5
+ /**
6
+ * The fields `GtkFontDialogButton` reads. `variant` and the exact family/face are
7
+ * deliberately absent: the C compares them in `font_description_style_equal`
8
+ * (gtkfontdialogbutton.c:586-592) to pick a face out of a font map, and a browser page
9
+ * has no font map — see `font-button`'s header for what stands in for it.
10
+ */
11
+ export interface PangoFontDescription {
12
+ /** The family name, or `''` for the "unset" a fresh description carries. */
13
+ family: string;
14
+ slant: FontSlant;
15
+ /** Pango's numeric weight, which is also CSS's `font-weight` number. */
16
+ weight: number;
17
+ width: FontWidth;
18
+ /** The size as written. `unit` says what it is counted in. */
19
+ size: number;
20
+ /** `pango_font_description_set_size_is_absolute` — `true` means the size is pixels. */
21
+ absolute: boolean;
22
+ }
23
+ /** The description `gtk_font_dialog_button_init` builds: `pango_font_description_from_string ("Sans 12")`. */
24
+ export declare const PANGO_FONT_DESCRIPTION_DEFAULT: PangoFontDescription;
25
+ /**
26
+ * `pango_font_description_from_string` — family, style words and a trailing size, in any
27
+ * order.
28
+ *
29
+ * Total, like the C: an unrecognised word is not a style, and a family is whatever is
30
+ * left over once the styles and the size are gone — which is why the tokens are consumed
31
+ * from the END, where Pango reads the size, and a token that matches no style word stays
32
+ * in the family.
33
+ */
34
+ export declare function parseFontDescription(text: string): PangoFontDescription;
35
+ /** `pango_font_description_to_string` — the same words, in the same order. */
36
+ export declare function formatFontDescription(description: PangoFontDescription): string;
37
+ /**
38
+ * `pango_font_description_equal` — every field, as Pango's own comparison is. `font-desc`
39
+ * is `G_PARAM_EXPLICIT_NOTIFY` (:345), so a write of the description already held must be
40
+ * the write that changes nothing (gtkfontdialogbutton.c:869-871).
41
+ */
42
+ export declare function fontDescriptionEqual(a: PangoFontDescription, b: PangoFontDescription): boolean;
43
+ /**
44
+ * `update_font_info`'s size format, `g_strdup_printf ("%2.4g%s", size / PANGO_SCALE, …)`
45
+ * (gtkfontdialogbutton.c:669-673) — four significant digits with the zeros stripped, and
46
+ * `px` when the size is absolute. `%g` is what `Number#toPrecision` computes and
47
+ * `Number#toString` then tidies, which is the whole of the difference between `12` and
48
+ * `12.00`.
49
+ */
50
+ export declare function formatFontSize(size: number, absolute: boolean): string;
51
+ /**
52
+ * The CSS projection of a description — `apply_use_font`'s attribute list
53
+ * (gtkfontdialogbutton.c:689-720), as the four LONGHANDS Pango's own attribute list sets.
54
+ *
55
+ * `use_size` is the one field `apply_use_font` may unset, and it is a parameter here for
56
+ * that reason: `PANGO_FONT_MASK_SIZE` goes only when the size is not wanted.
57
+ *
58
+ * The longhands rather than the `font` SHORTHAND, because the shorthand is all-or-nothing:
59
+ * one rejected token discards the family with it, and a description is half its fields.
60
+ * `cssFontShorthand` is the same projection for the one caller that needs a string —
61
+ * `FontFaceSet.check()`, which takes nothing else.
62
+ *
63
+ * THE SIZE CARRIES A UNIT, and Pango's own string does not — which is the one place this
64
+ * projection is not a rename. A bare `12` is a size in Pango (points, because
65
+ * `PangoFontDescription`'s size is divided by `PANGO_SCALE` and Pango's renderer reads
66
+ * points) and a length a CSS declaration REJECTS. `pt` is the unit Pango means — one point
67
+ * is 1/72 inch in both — so an absolute size keeps `px` and everything else becomes `pt`.
68
+ */
69
+ export interface CssFontParts {
70
+ fontFamily: string;
71
+ fontWeight: string;
72
+ fontStyle: string;
73
+ fontStretch: string;
74
+ fontSize: string;
75
+ }
76
+ /** An unset family is "None" as a LABEL, not a font to render in — so the generic is. */
77
+ export declare function cssFontParts(description: PangoFontDescription, useSize: boolean): CssFontParts;
78
+ /** {@link cssFontParts} as one `font` shorthand, for the string-shaped caller. */
79
+ export declare function cssFontShorthand(description: PangoFontDescription, useSize: boolean): string;
80
+ /**
81
+ * Pango's feature list as the TAGS a CSS `font-feature-settings` value is built from — the
82
+ * one place this module translates rather than renames.
83
+ *
84
+ * `pango_font_features_to_string` writes a comma-separated list of bare tags with `-` for
85
+ * off, which is the same LIST and not the same SYNTAX: CSS wants each tag quoted (`"liga"`).
86
+ *
87
+ * The tags come back as a LIST on purpose. `font-feature-settings` is all-or-nothing, and
88
+ * MEASURED in Firefox: the declaration `"liga", "-kern"` is DROPPED WHOLE — an unknown tag
89
+ * invalidates the value, not just itself — while `"liga"` alone stands. A single joined
90
+ * string would therefore lose every tag the browser does not know, which is a silent
91
+ * difference from Pango's "keep what you recognise". The caller applies the tags one at a
92
+ * time so a rejection costs one feature.
93
+ *
94
+ * `tnum=1` keeps its `=1`, which is Pango's own spelling for "on with a value".
95
+ */
96
+ export declare function cssFontFeatureTags(features: string): string[];
@@ -0,0 +1 @@
1
+ export declare const GtkAboutDialogTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkActionBarTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkApplicationWindowTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkAspectFrameTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkCalendarTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkCenterBoxTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkColorDialogButtonTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkColumnViewTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkDragIconTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkDrawingAreaTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkEditableLabelTest: () => Promise<void>;
@@ -0,0 +1 @@
1
+ export declare const GtkEmojiChooserTest: () => Promise<void>;