@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,87 @@
1
+ import { type PageSetup, type PageUnit } from '../page-setup.js';
2
+ import { AdwDialog } from './adw-dialog.js';
3
+ /** One row of the "Format for:" drop down. */
4
+ export interface PrinterInfo {
5
+ /** `gtk_printer_get_name` — what `format-for-printer` is compared against. */
6
+ readonly name: string;
7
+ /** `gtk_printer_get_location`, the dimmed second line of the row. */
8
+ readonly location?: string;
9
+ }
10
+ /** The one `GtkPrintSettings` key this dialog reads or writes. */
11
+ export interface PrintSettingsData {
12
+ /** `format-for-printer` — the printer name the settings belong to. */
13
+ readonly 'format-for-printer'?: string;
14
+ }
15
+ export declare class GtkPageSetupUnixDialog extends AdwDialog {
16
+ private _built;
17
+ static get observedAttributes(): string[];
18
+ private _printerEl;
19
+ private _paperEl;
20
+ private _sizeLabelEl;
21
+ private _radios;
22
+ private _printers;
23
+ /** The setups in the drop-down, in the order the C appends them. */
24
+ private _setups;
25
+ /** `last_setup` — the size the drop down is put back to when a row is not a size. */
26
+ private _lastSetup;
27
+ private _printSettings;
28
+ private _unit;
29
+ /** The unit the two labels speak — `_gtk_print_get_default_user_units` is mm here. */
30
+ get unit(): PageUnit;
31
+ set unit(value: PageUnit);
32
+ /**
33
+ * The printer list GTK discovers through a print backend. A browser has no CUPS, so
34
+ * this is an INPUT; the row every dialog starts with is added by the element itself.
35
+ */
36
+ get printers(): PrinterInfo[];
37
+ set printers(value: readonly PrinterInfo[]);
38
+ /**
39
+ * The current page setup — `gtk_page_setup_unix_dialog_get_page_setup`, which returns
40
+ * the SELECTED setup with the orientation the radios hold.
41
+ */
42
+ get pageSetup(): PageSetup;
43
+ /**
44
+ * `gtk_page_setup_unix_dialog_set_page_setup`: select the matching row, appending the
45
+ * setup when no row matches (`set_paper_size` with `add_item` TRUE), then set the
46
+ * orientation radios.
47
+ */
48
+ set pageSetup(value: PageSetup);
49
+ /** `gtk_page_setup_unix_dialog_get_print_settings` — the object, not a copy of it. */
50
+ get printSettings(): PrintSettingsData | null;
51
+ /** Selects the printer named by `format-for-printer`, as the setter does. */
52
+ set printSettings(value: PrintSettingsData | null);
53
+ connectedCallback(): void;
54
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
55
+ private _build;
56
+ /** A `GtkDropDown` with its label as the accessible name, `column-span 3`. */
57
+ private _dropDown;
58
+ /** A grid label — right-aligned, `use-underline` in the `.ui`, no keyvals here. */
59
+ private _label;
60
+ /**
61
+ * The `.dialog-action-area` row: `_Cancel` (GTK_RESPONSE_CANCEL) and `_Apply`
62
+ * (GTK_RESPONSE_OK), which is the label `gtk_dialog_add_buttons` gives the OK response
63
+ * in this dialog. Escape is the close action the base class already binds.
64
+ */
65
+ private _actions;
66
+ private _respond;
67
+ /** The drop-down's rows: the pseudo printer first, then the caller's. */
68
+ private _printerRows;
69
+ /**
70
+ * `fill_paper_sizes_from_printer` (:470-491): with no printer — which includes the
71
+ * "Any Printer" row, because `printer_changed_callback` clears it before the call
72
+ * (:576-580) — the list is the twelve common sizes. A REAL printer would bring its
73
+ * own `gtk_printer_list_papers`, which needs the backend this port has not.
74
+ */
75
+ private _fillPaperSizes;
76
+ /** The selected setup, before the radios' orientation is folded in. */
77
+ private _current;
78
+ private _orientation;
79
+ private _setOrientation;
80
+ private _renderSetup;
81
+ /** `printer_changed_callback` (:557-609): the paper list follows the printer. */
82
+ private _printerChanged;
83
+ /** `paper_size_changed` (:635-758). */
84
+ private _paperChanged;
85
+ /** The radios' side of `get_orientation` — the label follows them. */
86
+ private _orientationChanged;
87
+ }
@@ -0,0 +1,121 @@
1
+ import { type BoxOrientation } from '@gjsify/adwaita-core';
2
+ /** The inputs of `gtk_paned_compute_position`, one per field it reads. */
3
+ export interface PanedPositionInput {
4
+ /** The paned's own allocation along the axis, minus the handle — its `allocation`. */
5
+ allocation: number;
6
+ /** The start child's size REQUEST along the axis. */
7
+ startRequest: number;
8
+ /** The end child's size REQUEST along the axis. */
9
+ endRequest: number;
10
+ resizeStart: boolean;
11
+ resizeEnd: boolean;
12
+ shrinkStart: boolean;
13
+ shrinkEnd: boolean;
14
+ /** `position_set` — whether the app or the user has placed the divider. */
15
+ positionSet: boolean;
16
+ /** `start_child_size` — the divider as last allocated or set; `0` when unset. */
17
+ startChildSize: number;
18
+ /** `last_allocation` — what `startChildSize` was measured against. */
19
+ lastAllocation: number;
20
+ }
21
+ /** What `gtk_paned_compute_position` writes back through its three out-parameters. */
22
+ export interface PanedPosition {
23
+ min: number;
24
+ max: number;
25
+ position: number;
26
+ }
27
+ /**
28
+ * `gtk_paned_compute_position` (gtkpaned.c:1092-1146), statement for statement.
29
+ *
30
+ * Exported so a spec can pin the arithmetic without a layout. The branch keyed on
31
+ * `lastAllocation` is the one a browser cannot reach on its own — there is no "position was
32
+ * set before the first allocation" moment in a flex layout — so it is the piece only a table
33
+ * of inputs can hold.
34
+ */
35
+ export declare function computePanedPosition(input: PanedPositionInput): PanedPosition;
36
+ export declare class GtkPaned extends HTMLElement {
37
+ private _startEl;
38
+ private _handleEl;
39
+ private _endEl;
40
+ private _initialized;
41
+ /** `start_child_size` — the divider. `-1` is GTK's "unset". */
42
+ private _position;
43
+ /** `position_set` — GTK's read-only flag; see the header. */
44
+ private _positionSet;
45
+ /** What `gtk_paned_compute_position` last produced for `min_position`. */
46
+ private _minPosition;
47
+ /** …and for `max_position`. */
48
+ private _maxPosition;
49
+ /** `last_allocation` — the allocation the current position was computed against. */
50
+ private _lastAllocation;
51
+ /** `drag_pos` — where inside the handle the gesture began (gtkpaned.c:930-940). */
52
+ private _dragPos;
53
+ private _dragging;
54
+ private _resize;
55
+ static get observedAttributes(): string[];
56
+ /** `GtkOrientable:orientation` — which way the divider runs. */
57
+ get orientation(): BoxOrientation;
58
+ set orientation(value: BoxOrientation);
59
+ /** `Gtk.Paned:position` — the divider in pixels; `-1` puts it back to derived. */
60
+ get position(): number;
61
+ set position(value: number);
62
+ /** `Gtk.Paned:position-set` — read-only in GTK; only `position` moves it. */
63
+ get positionSet(): boolean;
64
+ /** `Gtk.AccessibleRange:min-position` as the last computation left it. */
65
+ get minPosition(): number;
66
+ /** `Gtk.AccessibleRange:max-position` as the last computation left it. */
67
+ get maxPosition(): number;
68
+ /** `Gtk.Paned:wide-handle` — the stronger visual separation. */
69
+ get wideHandle(): boolean;
70
+ set wideHandle(value: boolean);
71
+ /** `Gtk.Paned:start-child` — the light-DOM node in the leading pane. */
72
+ get startChild(): Element | null;
73
+ /** `Gtk.Paned:end-child` — the light-DOM node in the trailing pane. */
74
+ get endChild(): Element | null;
75
+ connectedCallback(): void;
76
+ disconnectedCallback(): void;
77
+ attributeChangedCallback(name: string): void;
78
+ private _property;
79
+ private _observe;
80
+ /** `gtk_paned_set_position` (gtkpaned.c:1874-1910), with its two notifications. */
81
+ private setPosition;
82
+ /** `gtk_paned_calc_position` (gtkpaned.c:1021-1053): compute, place, notify, remember. */
83
+ private _layout;
84
+ /**
85
+ * A child's SIZE REQUEST — what `gtk_widget_measure` answers with.
86
+ *
87
+ * `flex: none` pins the item to its content size, which is exactly a GTK size request,
88
+ * and the read is one forced reflow. It has to be a separate pass: the laid-out size of a
89
+ * pane that is currently `flex-grow: 1` is its ALLOCATION, and feeding that back as a
90
+ * request is how a paned ends up re-deriving its own divisor.
91
+ */
92
+ private _sizeRequest;
93
+ /**
94
+ * `shrink-*` is "can this child be made smaller than its requisition", which in CSS is
95
+ * whether the AUTOMATIC minimum applies — `min-width: auto` is the flex automatic
96
+ * minimum, so `min-width: 0` is the permission and leaving the longhand alone is the
97
+ * prohibition.
98
+ */
99
+ private _applyMinimum;
100
+ /**
101
+ * `notify::<property>`, with the DETAIL keyed by the JS property name — the spelling
102
+ * `<adw-expander-row>`, `<adw-entry-row>` and `<gtk-switch>` use, and the one a caller
103
+ * destructures. `notify::position-set` therefore carries `{ positionSet }`.
104
+ */
105
+ private _notify;
106
+ /** `is_rtl` (gtkpaned.c:1533-1536): only a horizontal paned mirrors. */
107
+ private get _isRtl();
108
+ /** `gesture_drag_begin_cb` (gtkpaned.c:915-955) — the capture and `drag_pos`. */
109
+ private readonly _onPointerDown;
110
+ /** `update_drag` (gtkpaned.c:1538-1573), from the capture phase. */
111
+ private readonly _onPointerMove;
112
+ private readonly _onPointerUp;
113
+ /**
114
+ * `gtk_paned_move_handle` (gtkpaned.c:2286-2353) over `add_move_binding`'s key list
115
+ * (gtkpaned.c:768-785). `Escape` and `Return`/Space are `cancel-position` /
116
+ * `accept-position`, which GTK binds to no handler of its own — they are the signals an
117
+ * embedding application listens for — so they are dispatched as events and left to
118
+ * bubble rather than swallowed here.
119
+ */
120
+ private readonly _onKeyDown;
121
+ }
@@ -0,0 +1,27 @@
1
+ import { GtkEntry } from './gtk-entry.js';
2
+ export declare class GtkPasswordEntry extends GtkEntry {
3
+ /** The headless peek + caps-lock derivation, composing the entry's own state. */
4
+ private readonly _entry;
5
+ private readonly _password;
6
+ private _toggle;
7
+ private _peekIcon;
8
+ private _capsLock;
9
+ static get observedAttributes(): string[];
10
+ /** Whether the contents are shown in clear text (`GtkText:visibility`). */
11
+ get revealed(): boolean;
12
+ set revealed(value: boolean);
13
+ /** Whether Caps Lock is engaged, as last observed from a keyboard event. */
14
+ get capsLockOn(): boolean;
15
+ /**
16
+ * Feed the platform's Caps Lock state in — GDK reads it off the keyboard device
17
+ * (`gdk_device_get_caps_lock_state`), which a browser exposes only on keyboard events.
18
+ * Public so a host that knows better (a virtual keyboard, a test) can drive it directly.
19
+ */
20
+ setCapsLockOn(on: boolean): void;
21
+ connectedCallback(): void;
22
+ attributeChangedCallback(name: string, oldValue: string | null, value: string | null): void;
23
+ /** A focus change re-derives, because the warning's visibility is `editing && …`. */
24
+ private _passwordChanged;
25
+ /** `notify_visibility_cb`, applied to the DOM. */
26
+ private _applyPassword;
27
+ }
@@ -0,0 +1,66 @@
1
+ /** `GtkContentFit`, in enum order — the four nicks the GIR and CSS share. */
2
+ export declare const PICTURE_CONTENT_FIT_MODES: readonly ["fill", "contain", "cover", "scale-down"];
3
+ export type PictureContentFit = (typeof PICTURE_CONTENT_FIT_MODES)[number];
4
+ /** `GTK_CONTENT_FIT_CONTAIN`, the default the C installs (gtkpicture.c:530, :555). */
5
+ export declare const DEFAULT_PICTURE_CONTENT_FIT: PictureContentFit;
6
+ /**
7
+ * `GtkPicture:content-fit` from its nick, with the C's own guard: an unknown nick is left
8
+ * to the default rather than coerced to `fill`, which is the one value that would silently
9
+ * distort every picture a page writes.
10
+ */
11
+ export declare function normalizePictureContentFit(value: unknown): PictureContentFit;
12
+ export declare class GtkPicture extends HTMLElement {
13
+ private _initialized;
14
+ static get observedAttributes(): string[];
15
+ /**
16
+ * `GtkPicture:alternative-text` (gtkpicture.c:474-483) — the accessible NAME of the
17
+ * picture. It is NOT `alt`: the GIR property is `alternative-text`, and the element
18
+ * carries that spelling so the attribute and the property are one write.
19
+ */
20
+ get alternativeText(): string;
21
+ set alternativeText(value: string);
22
+ /** `GtkPicture:can-shrink` (gtkpicture.c:486-497). Defaults to TRUE (gtkpicture.c:554). */
23
+ get canShrink(): boolean;
24
+ set canShrink(value: boolean);
25
+ /** `GtkPicture:content-fit` (gtkpicture.c:520-531). Defaults to CONTAIN. */
26
+ get contentFit(): PictureContentFit;
27
+ set contentFit(value: PictureContentFit);
28
+ /**
29
+ * `GtkPicture:isolate-contents` (gtkpicture.c:538-549). Defaults to TRUE
30
+ * (gtkpicture.c:555) — the same absent-is-true rule {@link canShrink} follows, and for
31
+ * the same reason: the C installs the value in `init`, before any attribute is read.
32
+ */
33
+ get isolateContents(): boolean;
34
+ set isolateContents(value: boolean);
35
+ /**
36
+ * `GtkPicture:keep-aspect-ratio` — DEPRECATED in 4.8, and implemented rather than
37
+ * dropped, because the C did not drop it (gtkpicture.c:1006-1040).
38
+ *
39
+ * The setter is a MAPPING, not a stored boolean (gtkpicture.c:1017-1021): TRUE sets
40
+ * `content-fit` to CONTAIN, FALSE sets it to FILL. The getter is the INVERSE test over
41
+ * the live `content-fit` (gtkpicture.c:1040), so a picture authored as `cover` or
42
+ * `scale-down` reads `true` back — those two preserve the ratio, exactly as CONTAIN
43
+ * does, and returning `false` for them would contradict the property's own definition.
44
+ */
45
+ get keepAspectRatio(): boolean;
46
+ set keepAspectRatio(value: boolean);
47
+ /**
48
+ * `setAttribute` runs the custom-element reaction for a write that changes nothing,
49
+ * while every GObject setter here returns early when the value is already right
50
+ * (gtkpicture.c:1111-1112). This is the guard that makes "notify only on a real
51
+ * change" true.
52
+ */
53
+ private _write;
54
+ /**
55
+ * A boolean whose GIR default is TRUE needs three states, not two: absent means TRUE
56
+ * (the default the C installs in `init`), `=""` means TRUE, and `="false"` means FALSE.
57
+ * `toggleAttribute` alone would make absent and empty the same state, which is right for
58
+ * a FALSE-defaulted property and wrong for every one of these three.
59
+ */
60
+ private _toggle;
61
+ connectedCallback(): void;
62
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
63
+ /** The `notify::` detail for `name`: the PROPERTY, parsed, not the raw attribute. */
64
+ private _property;
65
+ private _render;
66
+ }
@@ -0,0 +1,82 @@
1
+ import type { AdwMenuActions, AdwMenuInput, AdwMenuModel } from '@gjsify/adwaita-core';
2
+ import './gtk-popover-menu.js';
3
+ import type { GtkPopoverMenu } from './gtk-popover-menu.js';
4
+ export declare class GtkPopoverBin extends HTMLElement {
5
+ private _model;
6
+ private _popover;
7
+ private _actions;
8
+ private _initialized;
9
+ private _longPressTimer;
10
+ static get observedAttributes(): string[];
11
+ /** The menu model, normalised (ADR 0042). */
12
+ get menuModel(): AdwMenuModel;
13
+ /**
14
+ * The model the popover is built from — ONE slot with `popover`, because GTK's two
15
+ * setters clear each other (gtkpopoverbin.c:474-500, :543-551). A model REPLACES the
16
+ * popover; a popover DROPS the model, and both notify for both properties.
17
+ */
18
+ set menuModel(value: AdwMenuInput | AdwMenuModel);
19
+ /**
20
+ * The popover this bin presents, or `null`.
21
+ *
22
+ * NOT `popover`, which is `GtkPopoverBin`'s GObject name and also `HTMLElement`'s: the
23
+ * DOM's Popover API spells a string attribute `popover`, and shadowing it with a widget
24
+ * would make the element disagree with the platform it sits on. The `Element` suffix is
25
+ * what this package already uses where a GIR name is taken (`childElement` below, and
26
+ * `Adw.NavigationPage`'s own `navigationPage`).
27
+ */
28
+ get popoverElement(): GtkPopoverMenu | null;
29
+ set popoverElement(value: GtkPopoverMenu | null);
30
+ /** Whether a right click or a long press opens the popover. GTK's default is FALSE. */
31
+ get handleInput(): boolean;
32
+ set handleInput(value: boolean);
33
+ /** What the action group publishes about the actions the menu names (ADR 0042). */
34
+ get actions(): AdwMenuActions | null;
35
+ set actions(value: AdwMenuActions | null);
36
+ connectedCallback(): void;
37
+ disconnectedCallback(): void;
38
+ attributeChangedCallback(name?: string): void;
39
+ /** The `menu.popup` action — present the popover. */
40
+ popup(): void;
41
+ /** Dismiss the popover. */
42
+ popdown(): void;
43
+ /** The widget whose `.has-open-popup` follows the popover, when the bin has one. */
44
+ get childElement(): HTMLElement | null;
45
+ private _wireGestures;
46
+ private _cancelLongPress;
47
+ private _onContextMenu;
48
+ /**
49
+ * `popup_at_position` WITH the pointer's coordinates, which is the branch that sets
50
+ * `pointing-to` to `(x, y)` (gtkpopoverbin.c:141-145). `<gtk-popover>` has no
51
+ * `pointing-to` to set — placement is the `position`/`align` pair, the same gap the
52
+ * element's own KNOWN_GAPS records — so the call is the plain `popup()` and what the
53
+ * reader sees is GTK's: the menu under the child.
54
+ */
55
+ private _popupAt;
56
+ /**
57
+ * The Menu key, which is the shortcut GTK installs next to the gestures
58
+ * (`gtk_shortcut_trigger_create_for_menu`, gtkpopoverbin.c:643-649). GTK builds the
59
+ * trigger in the platform's canonical form, which a keydown cannot carry, so the
60
+ * un-modified key beside Shift is the whole binding here.
61
+ */
62
+ private _onKeyDown;
63
+ private _buildPopover;
64
+ /**
65
+ * `set_popover` (gtkpopoverbin.c:543-587): hide and unparent the old one, parent the
66
+ * new one, and wire the map/unmap handlers that carry `.has-open-popup` on the child.
67
+ */
68
+ private _adoptPopover;
69
+ /**
70
+ * `g_object_notify_by_pspec` is called for `:popover` AND `:menu-model` by BOTH setters
71
+ * (gtkpopoverbin.c:502, :586-587), because the two are one slot. One event carrying
72
+ * both is the faithful reading, and the second notify GTK sends separately has no state
73
+ * of its own to report.
74
+ */
75
+ private _notifyModel;
76
+ /**
77
+ * The `menu-model` ATTRIBUTE through the core parser, refusing a `custom` item the way
78
+ * every menu-bearing surface here does: markup is parsed by the browser, so a throw from
79
+ * `connectedCallback` would reach nobody and the menu would be silently empty.
80
+ */
81
+ private _parseMenuAttr;
82
+ }
@@ -0,0 +1,66 @@
1
+ import type { AdwMenuActions, AdwMenuInput, AdwMenuModel } from '@gjsify/adwaita-core';
2
+ import './gtk-popover-menu.js';
3
+ export declare class GtkPopoverMenuBar extends HTMLElement {
4
+ private _model;
5
+ private _actions;
6
+ private _items;
7
+ private _active;
8
+ private _initialized;
9
+ static get observedAttributes(): string[];
10
+ /** The menu model, normalised (ADR 0042). */
11
+ get menuModel(): AdwMenuModel;
12
+ set menuModel(value: AdwMenuInput);
13
+ /** What the action group publishes about the actions these menus name (ADR 0042). */
14
+ get actions(): AdwMenuActions | null;
15
+ set actions(value: AdwMenuActions | null);
16
+ /** The active item's button, or `null` — GTK's `active_item`, as a widget. */
17
+ get activeItem(): HTMLElement | null;
18
+ connectedCallback(): void;
19
+ attributeChangedCallback(name?: string): void;
20
+ /** `gtk_popover_menu_bar_select_first` — activate and OPEN the first item. */
21
+ selectFirst(): void;
22
+ /** What the bar's `menu.popup` action does, which is the same thing. */
23
+ popup(): void;
24
+ /**
25
+ * `set_active_item` (gtkpopovermenubar.c:126-163), variable names and all.
26
+ *
27
+ * `changed` and `was_popup` decide three DIFFERENT outcomes — close the old one, open
28
+ * the new one, or move focus onto it — and collapsing them is how a hover would come to
29
+ * open menus, which is the single behaviour that separates a menubar from a row of menu
30
+ * buttons.
31
+ */
32
+ private _setActive;
33
+ private _onKeyDown;
34
+ /**
35
+ * The sibling in `step`'s direction, WRAPPING at either end
36
+ * (gtkpopovermenubar.c:232-252): with no active item there is no sibling, so the first
37
+ * move goes to the first child for RIGHT and to the LAST for LEFT.
38
+ */
39
+ private _move;
40
+ private _rebuild;
41
+ /**
42
+ * Focus the first row a key can reach in a menu that has just opened.
43
+ *
44
+ * This is what `autohide` does in GTK: `gtk_popover_show` calls
45
+ * `gtk_widget_child_focus (widget, GTK_DIR_TAB_FORWARD)` when the property holds
46
+ * (gtkpopover.c:1188-1192), and a browser popup takes no focus until it is told to —
47
+ * which is why the item whose menu opened is what does it here.
48
+ */
49
+ private _focusFirstRow;
50
+ /**
51
+ * One `menubar > item > popover` (the node tree in gtkpopovermenubar.c:38-46).
52
+ *
53
+ * A toplevel node that is not a submenu is refused by `_parseMenuAttr` with GTK's own
54
+ * wording rather than drawn: `tracker_insert` builds nothing for it
55
+ * (gtkpopovermenubar.c:466), and a row that opens nothing is the same lie in another
56
+ * shape.
57
+ */
58
+ private _buildItem;
59
+ /**
60
+ * Activating a row inside one of the popovers closes THAT popover and hands focus back
61
+ * to its item, which is what `gtk_popover_menu_set_active_item` does when the active
62
+ * row is not the row that opened a submenu (gtkpopovermenu.c:257-259).
63
+ */
64
+ private _activate;
65
+ private _parseMenuAttr;
66
+ }
@@ -0,0 +1,83 @@
1
+ import type { AdwMenuActions, AdwMenuInput, AdwMenuModel } from '@gjsify/adwaita-core';
2
+ import { GtkPopover } from './gtk-popover.js';
3
+ export declare class GtkPopoverMenu extends GtkPopover {
4
+ private _model;
5
+ private _actions;
6
+ private _menuView;
7
+ /** Named apart from `GtkPopover`'s own: two `private` fields of one name are two fields. */
8
+ private _menuInitialized;
9
+ static get observedAttributes(): string[];
10
+ /** The menu, normalised (ADR 0042). */
11
+ get menuModel(): AdwMenuModel;
12
+ /**
13
+ * Set the menu from anything the portable model accepts, refusing a `custom` item
14
+ * HERE — at the assignment, where it is a call the caller can catch. An ATTRIBUTE is
15
+ * markup the browser parses, so the attribute path refuses the whole menu instead and
16
+ * says why on `console.error`, exactly as `<gtk-menu-button>` does.
17
+ *
18
+ * `AdwMenuModel` is in the union because a menu bar hands over a submenu's own `items`
19
+ * untouched, and `normalizeMenuModel` is documented to be IDEMPOTENT over an
20
+ * already-normalised node — that is what lets a renderer hand a model it is holding
21
+ * straight back. The one cast is where the core's parameter type (`AdwMenuInput`, whose
22
+ * entries are the AUTHORED shapes) is narrower than the behaviour it documents.
23
+ */
24
+ set menuModel(value: AdwMenuInput | AdwMenuModel);
25
+ /** What the action group publishes about the actions this menu names (ADR 0042). */
26
+ get actions(): AdwMenuActions | null;
27
+ set actions(value: AdwMenuActions | null);
28
+ /** The optional heading. GTK spells one as a labelled SECTION; this is the shorthand. */
29
+ get menuTitle(): string;
30
+ set menuTitle(value: string);
31
+ /**
32
+ * The name of the open page — `'main'` for the root, a submenu's label for a submenu.
33
+ *
34
+ * GTK's value is the stack child's NAME, which `GtkMenuTracker` gives a submenu page
35
+ * from the node it links; with no name given that is the submenu's label, so the label
36
+ * is what this element answers with. `gtk_popover_menu_open_submenu` (gtkpopovermenu.c
37
+ * :755-757) is the only way in, so setting it navigates rather than describing.
38
+ */
39
+ get visibleSubmenu(): string;
40
+ set visibleSubmenu(value: string);
41
+ connectedCallback(): void;
42
+ attributeChangedCallback(name?: string, previous?: string | null, value?: string | null): void;
43
+ /** `gtk_popover_menu_open_submenu` — switch to the named page. */
44
+ openSubmenu(name: string): void;
45
+ /**
46
+ * The ONE way the open page changes, from the property and from the attribute alike.
47
+ *
48
+ * The notify belongs HERE rather than beside the attribute write: a page can change
49
+ * without the attribute's text changing (`openSubmenu('More')` when it is already
50
+ * `More` after a dismissal, or an attribute set to the page already showing), and
51
+ * `GObject` notifies on the state, not on the spelling.
52
+ */
53
+ private _navigate;
54
+ /**
55
+ * Point the page stack at the named page and rebuild it. `false` when the name is not
56
+ * one of the stack's children, which is what `gtk_stack_set_visible_child_name` leaves
57
+ * alone — the current page keeps showing rather than the surface blanking.
58
+ */
59
+ private _showPage;
60
+ /**
61
+ * `gtk_popover_menu_close_submenus` — leave the open submenu, ONE level
62
+ * (gtkpopovermenu.c:223-233), which is what the back row does.
63
+ */
64
+ closeSubmenus(): void;
65
+ private _openPageLabel;
66
+ private _findSubmenu;
67
+ /**
68
+ * Write the open page back to the attribute, ONCE, and only when the spelling differs.
69
+ *
70
+ * Reading the attribute instead of the state is the whole loop guard: navigating sets
71
+ * this, the attribute change calls back into `_navigate`, and a comparison against the
72
+ * current value stops the second turn.
73
+ */
74
+ private _reflectSubmenu;
75
+ /**
76
+ * Activating an item closes the popover and returns focus to the anchor — the
77
+ * behaviour every menu-bearing surface here has, and the reason a menu cannot be left
78
+ * open by choosing from it.
79
+ */
80
+ private _activate;
81
+ private _renderMenu;
82
+ private _parseMenuAttr;
83
+ }
@@ -2,8 +2,15 @@
2
2
  export type GtkPopoverPosition = 'bottom' | 'top' | 'start' | 'end';
3
3
  /** Which edge of the anchor the surface lines up with. */
4
4
  export type GtkPopoverAlign = 'start' | 'end';
5
- /** The ARIA role of the surface — it decides the row role consumers give their items. */
6
- export type GtkPopoverRole = 'menu' | 'listbox';
5
+ /**
6
+ * The ARIA role of the surface — it decides the row role consumers give their items.
7
+ *
8
+ * `dialog` is the one role that is not a container of ROWS: it is for a surface holding
9
+ * content, so nothing derives an item role from it. Upstream splits the same way —
10
+ * `GtkPopoverMenu` declares itself a menu (`refs/gtk/gtk/gtkpopovermenu.c:676`), a bare
11
+ * `GtkPopover` declares nothing.
12
+ */
13
+ export type GtkPopoverRole = 'menu' | 'listbox' | 'dialog';
7
14
  export declare class GtkPopover extends HTMLElement {
8
15
  private readonly _state;
9
16
  private _anchor;
@@ -15,6 +22,17 @@ export declare class GtkPopover extends HTMLElement {
15
22
  static get observedAttributes(): string[];
16
23
  get open(): boolean;
17
24
  set open(value: boolean);
25
+ /**
26
+ * Whether an outside click (or an Escape) dismisses the popover — GTK's grab.
27
+ *
28
+ * `autohide` defaults to TRUE in C (`priv->autohide = TRUE`, gtkpopover.c:1046) and
29
+ * that default is what every existing consumer in this package relies on, so it is
30
+ * the ABSENCE of the attribute rather than its presence, exactly as GTK spells it.
31
+ * Turning it off is entry completion's shape, which is the usecase the property
32
+ * documents: the entry keeps the caret and the list follows the typing.
33
+ */
34
+ get autohide(): boolean;
35
+ set autohide(value: boolean);
18
36
  /**
19
37
  * The element the surface is positioned against and hands focus back to. Defaults to
20
38
  * `parentElement`: the popover is normally the last child of the widget that owns it.
@@ -25,6 +43,7 @@ export declare class GtkPopover extends HTMLElement {
25
43
  set position(value: GtkPopoverPosition);
26
44
  get align(): GtkPopoverAlign;
27
45
  set align(value: GtkPopoverAlign);
46
+ /** The ARIA role of the surface; an unknown value reads as the `menu` default. */
28
47
  get popoverRole(): GtkPopoverRole;
29
48
  /**
30
49
  * The navigable rows, in DOM order.
@@ -50,7 +69,13 @@ export declare class GtkPopover extends HTMLElement {
50
69
  connectedCallback(): void;
51
70
  private _buildOnce;
52
71
  disconnectedCallback(): void;
53
- attributeChangedCallback(name: string, _previous: string | null, value: string | null): void;
72
+ /**
73
+ * Every parameter is optional, and that is FOR `<gtk-popover-menu>`, which subclasses
74
+ * this element: an override may not demand a parameter the base signature does not pass,
75
+ * and the platform always passes all three — the `?` is a typescript-visible fact about
76
+ * the CALLER, not about what arrives.
77
+ */
78
+ attributeChangedCallback(name?: string, _previous?: string | null, value?: string | null): void;
54
79
  private _onStateChange;
55
80
  private _bindDocument;
56
81
  private _unbindDocument;