@gjsify/adwaita-web 0.54.0 → 0.56.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 (479) hide show
  1. package/README.md +8 -0
  2. package/dist/adwaita-web.css +8146 -3011
  3. package/dist/adwaita-web.css.map +1 -1
  4. package/lib/types/adw-application-window.spec.d.ts +1 -0
  5. package/lib/types/adw-bin.spec.d.ts +1 -0
  6. package/lib/types/adw-breakpoint-bin.spec.d.ts +1 -0
  7. package/lib/types/adw-clamp-scrollable.spec.d.ts +1 -0
  8. package/lib/types/adw-multi-layout-view.spec.d.ts +1 -0
  9. package/lib/types/adw-preferences-row.spec.d.ts +1 -0
  10. package/lib/types/adw-shortcuts.spec.d.ts +1 -0
  11. package/lib/types/adw-status-page.spec.d.ts +1 -0
  12. package/lib/types/adw-tab-bar.spec.d.ts +1 -0
  13. package/lib/types/adw-tab-button.spec.d.ts +1 -0
  14. package/lib/types/adw-tab-overview.spec.d.ts +1 -0
  15. package/lib/types/adw-view-switcher-sidebar.spec.d.ts +1 -0
  16. package/lib/types/adw-window.spec.d.ts +1 -0
  17. package/lib/types/attributes.d.ts +19 -0
  18. package/lib/types/breakpoints.d.ts +14 -3
  19. package/lib/types/construct-vectors.spec.d.ts +1 -0
  20. package/lib/types/elements/adw-action-row.d.ts +4 -0
  21. package/lib/types/elements/adw-application-window.d.ts +27 -0
  22. package/lib/types/elements/adw-bin.d.ts +17 -0
  23. package/lib/types/elements/adw-breakpoint-bin.d.ts +67 -0
  24. package/lib/types/elements/adw-clamp-scrollable.d.ts +38 -0
  25. package/lib/types/elements/adw-combo-row.d.ts +4 -0
  26. package/lib/types/elements/adw-dialog.d.ts +10 -0
  27. package/lib/types/elements/adw-entry-row.d.ts +6 -0
  28. package/lib/types/elements/adw-expander-row.d.ts +2 -0
  29. package/lib/types/elements/adw-header-bar.d.ts +6 -0
  30. package/lib/types/elements/adw-layout-slot.d.ts +19 -0
  31. package/lib/types/elements/adw-multi-layout-view.d.ts +101 -0
  32. package/lib/types/elements/adw-overlay-split-view.d.ts +13 -0
  33. package/lib/types/elements/adw-preferences-row.d.ts +31 -0
  34. package/lib/types/elements/adw-shortcuts-dialog.d.ts +13 -0
  35. package/lib/types/elements/adw-shortcuts-item.d.ts +36 -0
  36. package/lib/types/elements/adw-shortcuts-section.d.ts +14 -0
  37. package/lib/types/elements/adw-sidebar.d.ts +8 -2
  38. package/lib/types/elements/adw-spin-row.d.ts +6 -0
  39. package/lib/types/elements/adw-switch-row.d.ts +7 -0
  40. package/lib/types/elements/adw-tab-bar.d.ts +108 -0
  41. package/lib/types/elements/adw-tab-button.d.ts +32 -0
  42. package/lib/types/elements/adw-tab-overview.d.ts +199 -0
  43. package/lib/types/elements/adw-tab-view.d.ts +19 -23
  44. package/lib/types/elements/adw-toggle-group.d.ts +17 -0
  45. package/lib/types/elements/adw-view-switcher-sidebar.d.ts +84 -0
  46. package/lib/types/elements/adw-window.d.ts +40 -0
  47. package/lib/types/elements/gtk-about-dialog.d.ts +146 -0
  48. package/lib/types/elements/gtk-application-window.d.ts +34 -0
  49. package/lib/types/elements/gtk-aspect-frame.d.ts +27 -0
  50. package/lib/types/elements/gtk-button.d.ts +9 -0
  51. package/lib/types/elements/gtk-calendar.d.ts +159 -0
  52. package/lib/types/elements/gtk-center-box.d.ts +39 -0
  53. package/lib/types/elements/gtk-color-dialog-button.d.ts +69 -0
  54. package/lib/types/elements/gtk-column-view.d.ts +50 -0
  55. package/lib/types/elements/gtk-drag-icon.d.ts +78 -0
  56. package/lib/types/elements/gtk-drawing-area.d.ts +95 -0
  57. package/lib/types/elements/gtk-editable-label.d.ts +33 -0
  58. package/lib/types/elements/gtk-emoji-chooser.d.ts +84 -0
  59. package/lib/types/elements/gtk-entry.d.ts +20 -1
  60. package/lib/types/elements/gtk-expander.d.ts +49 -0
  61. package/lib/types/elements/gtk-fixed.d.ts +13 -0
  62. package/lib/types/elements/gtk-flow-box-child.d.ts +14 -0
  63. package/lib/types/elements/gtk-flow-box.d.ts +87 -0
  64. package/lib/types/elements/gtk-font-dialog-button.d.ts +83 -0
  65. package/lib/types/elements/gtk-frame.d.ts +24 -0
  66. package/lib/types/elements/gtk-gl-area.d.ts +136 -0
  67. package/lib/types/elements/gtk-graphics-offload.d.ts +24 -0
  68. package/lib/types/elements/gtk-grid-view.d.ts +39 -0
  69. package/lib/types/elements/gtk-grid.d.ts +27 -0
  70. package/lib/types/elements/gtk-header-bar.d.ts +60 -0
  71. package/lib/types/elements/gtk-inscription.d.ts +64 -0
  72. package/lib/types/elements/gtk-label.d.ts +3 -0
  73. package/lib/types/elements/gtk-level-bar.d.ts +59 -0
  74. package/lib/types/elements/gtk-link-button.d.ts +29 -0
  75. package/lib/types/elements/gtk-list-box-row.d.ts +54 -0
  76. package/lib/types/elements/gtk-list-box.d.ts +100 -0
  77. package/lib/types/elements/gtk-list-view.d.ts +73 -0
  78. package/lib/types/elements/gtk-media-controls.d.ts +142 -0
  79. package/lib/types/elements/gtk-notebook.d.ts +148 -0
  80. package/lib/types/elements/gtk-overlay.d.ts +22 -0
  81. package/lib/types/elements/gtk-page-setup-unix-dialog.d.ts +87 -0
  82. package/lib/types/elements/gtk-paned.d.ts +121 -0
  83. package/lib/types/elements/gtk-password-entry.d.ts +27 -0
  84. package/lib/types/elements/gtk-picture.d.ts +66 -0
  85. package/lib/types/elements/gtk-popover-bin.d.ts +82 -0
  86. package/lib/types/elements/gtk-popover-menu-bar.d.ts +66 -0
  87. package/lib/types/elements/gtk-popover-menu.d.ts +83 -0
  88. package/lib/types/elements/gtk-popover.d.ts +28 -3
  89. package/lib/types/elements/gtk-print-unix-dialog.d.ts +167 -0
  90. package/lib/types/elements/gtk-revealer.d.ts +55 -0
  91. package/lib/types/elements/gtk-scale-button.d.ts +59 -0
  92. package/lib/types/elements/gtk-scale.d.ts +98 -0
  93. package/lib/types/elements/gtk-scrollbar.d.ts +124 -0
  94. package/lib/types/elements/gtk-scrolled-window.d.ts +129 -0
  95. package/lib/types/elements/gtk-search-bar.d.ts +39 -0
  96. package/lib/types/elements/gtk-search-entry.d.ts +27 -0
  97. package/lib/types/elements/gtk-separator.d.ts +10 -0
  98. package/lib/types/elements/gtk-spin-button.d.ts +94 -0
  99. package/lib/types/elements/gtk-spinner.d.ts +14 -0
  100. package/lib/types/elements/gtk-stack-sidebar.d.ts +43 -0
  101. package/lib/types/elements/gtk-stack-switcher.d.ts +58 -0
  102. package/lib/types/elements/gtk-stack.d.ts +154 -0
  103. package/lib/types/elements/gtk-switch.d.ts +4 -1
  104. package/lib/types/elements/gtk-text-view.d.ts +62 -0
  105. package/lib/types/elements/gtk-text.d.ts +45 -0
  106. package/lib/types/elements/gtk-toggle-button.d.ts +45 -0
  107. package/lib/types/elements/gtk-tree-expander.d.ts +38 -0
  108. package/lib/types/elements/gtk-video.d.ts +97 -0
  109. package/lib/types/elements/gtk-viewport.d.ts +84 -0
  110. package/lib/types/elements/gtk-window-controls.d.ts +80 -0
  111. package/lib/types/elements/gtk-window-handle.d.ts +39 -0
  112. package/lib/types/elements/gtk-window.d.ts +103 -0
  113. package/lib/types/elements/justification.d.ts +2 -0
  114. package/lib/types/elements/popover-menu.d.ts +18 -0
  115. package/lib/types/elements/roving-focus.d.ts +29 -1
  116. package/lib/types/emoji-data.d.ts +38 -0
  117. package/lib/types/font-description.d.ts +96 -0
  118. package/lib/types/gtk-about-dialog.spec.d.ts +1 -0
  119. package/lib/types/gtk-action-bar.spec.d.ts +1 -0
  120. package/lib/types/gtk-application-window.spec.d.ts +1 -0
  121. package/lib/types/gtk-aspect-frame.spec.d.ts +1 -0
  122. package/lib/types/gtk-calendar.spec.d.ts +1 -0
  123. package/lib/types/gtk-center-box.spec.d.ts +1 -0
  124. package/lib/types/gtk-color-dialog-button.spec.d.ts +1 -0
  125. package/lib/types/gtk-column-view.spec.d.ts +1 -0
  126. package/lib/types/gtk-drag-icon.spec.d.ts +1 -0
  127. package/lib/types/gtk-drawing-area.spec.d.ts +1 -0
  128. package/lib/types/gtk-editable-label.spec.d.ts +1 -0
  129. package/lib/types/gtk-emoji-chooser.spec.d.ts +1 -0
  130. package/lib/types/gtk-expander.spec.d.ts +1 -0
  131. package/lib/types/gtk-fixed.spec.d.ts +1 -0
  132. package/lib/types/gtk-flow-box.spec.d.ts +1 -0
  133. package/lib/types/gtk-font-dialog-button.spec.d.ts +1 -0
  134. package/lib/types/gtk-frame.spec.d.ts +1 -0
  135. package/lib/types/gtk-gl-area.spec.d.ts +1 -0
  136. package/lib/types/gtk-graphics-offload.spec.d.ts +1 -0
  137. package/lib/types/gtk-grid-view.spec.d.ts +1 -0
  138. package/lib/types/gtk-grid.spec.d.ts +1 -0
  139. package/lib/types/gtk-header-bar.spec.d.ts +1 -0
  140. package/lib/types/gtk-inscription.spec.d.ts +1 -0
  141. package/lib/types/gtk-level-bar.spec.d.ts +1 -0
  142. package/lib/types/gtk-link-button.spec.d.ts +1 -0
  143. package/lib/types/gtk-list-box.spec.d.ts +1 -0
  144. package/lib/types/gtk-list-view.spec.d.ts +1 -0
  145. package/lib/types/gtk-media-controls.spec.d.ts +1 -0
  146. package/lib/types/gtk-notebook.spec.d.ts +1 -0
  147. package/lib/types/gtk-overlay.spec.d.ts +1 -0
  148. package/lib/types/gtk-paned.spec.d.ts +1 -0
  149. package/lib/types/gtk-password-entry.spec.d.ts +1 -0
  150. package/lib/types/gtk-picture.spec.d.ts +1 -0
  151. package/lib/types/gtk-popover-bin.spec.d.ts +1 -0
  152. package/lib/types/gtk-popover-menu-bar.spec.d.ts +1 -0
  153. package/lib/types/gtk-popover-menu.spec.d.ts +1 -0
  154. package/lib/types/gtk-popover-role.spec.d.ts +1 -0
  155. package/lib/types/gtk-popover.spec.d.ts +1 -0
  156. package/lib/types/gtk-print-dialogs.spec.d.ts +1 -0
  157. package/lib/types/gtk-revealer.spec.d.ts +1 -0
  158. package/lib/types/gtk-scale-button.spec.d.ts +1 -0
  159. package/lib/types/gtk-scale.spec.d.ts +1 -0
  160. package/lib/types/gtk-scrollbar.spec.d.ts +1 -0
  161. package/lib/types/gtk-scrolled-window.spec.d.ts +1 -0
  162. package/lib/types/gtk-search-bar.spec.d.ts +1 -0
  163. package/lib/types/gtk-search-entry.spec.d.ts +1 -0
  164. package/lib/types/gtk-separator.spec.d.ts +1 -0
  165. package/lib/types/gtk-spin-button.spec.d.ts +1 -0
  166. package/lib/types/gtk-spinner.spec.d.ts +1 -0
  167. package/lib/types/gtk-stack-sidebar.spec.d.ts +1 -0
  168. package/lib/types/gtk-stack-switcher.spec.d.ts +1 -0
  169. package/lib/types/gtk-stack.spec.d.ts +1 -0
  170. package/lib/types/gtk-text-view.spec.d.ts +1 -0
  171. package/lib/types/gtk-text.spec.d.ts +1 -0
  172. package/lib/types/gtk-toggle-button.spec.d.ts +1 -0
  173. package/lib/types/gtk-tree-expander.spec.d.ts +1 -0
  174. package/lib/types/gtk-video.spec.d.ts +1 -0
  175. package/lib/types/gtk-viewport.spec.d.ts +1 -0
  176. package/lib/types/gtk-window-controls.spec.d.ts +1 -0
  177. package/lib/types/gtk-window-handle.spec.d.ts +1 -0
  178. package/lib/types/gtk-window.spec.d.ts +1 -0
  179. package/lib/types/index.d.ts +4 -1
  180. package/lib/types/list-view-dom.d.ts +44 -0
  181. package/lib/types/namespace/adw.d.ts +12 -0
  182. package/lib/types/namespace/gtk.d.ts +61 -0
  183. package/lib/types/page-setup.d.ts +100 -0
  184. package/lib/types/row-line-clamp.d.ts +20 -0
  185. package/lib/types/row-tooltip.d.ts +8 -0
  186. package/lib/types/row-tooltip.spec.d.ts +1 -0
  187. package/lib/types/scroll-shading.d.ts +15 -1
  188. package/lib/types/shared-tree-builder.d.ts +75 -17
  189. package/lib/types/shared-tree-mount.spec.d.ts +1 -0
  190. package/lib/types/signals.d.ts +4 -0
  191. package/lib/types/styles.generated.d.ts +1 -1
  192. package/lib/types/tab-chip.d.ts +73 -0
  193. package/lib/types/template-classes.d.ts +11 -0
  194. package/lib/types/widget-size.spec.d.ts +1 -0
  195. package/package.json +12 -8
  196. package/scss/_action_row.scss +41 -17
  197. package/scss/_application_window.scss +26 -0
  198. package/scss/_aspect_frame.scss +25 -0
  199. package/scss/_bin.scss +26 -0
  200. package/scss/_button.scss +45 -0
  201. package/scss/_button_row.scss +5 -0
  202. package/scss/_calendar.scss +176 -0
  203. package/scss/_center_box.scss +25 -0
  204. package/scss/_checks.scss +6 -1
  205. package/scss/_clamp_scrollable.scss +28 -0
  206. package/scss/_color_button.scss +67 -0
  207. package/scss/_column_view.scss +126 -0
  208. package/scss/_drag_icon.scss +55 -0
  209. package/scss/_drawing.scss +85 -0
  210. package/scss/_emoji_chooser.scss +213 -0
  211. package/scss/_entry.scss +13 -5
  212. package/scss/_entry_row.scss +1 -1
  213. package/scss/_expander.scss +113 -0
  214. package/scss/_expander_row.scss +36 -3
  215. package/scss/_fixed.scss +29 -0
  216. package/scss/_flow_box.scss +94 -0
  217. package/scss/_font_button.scss +63 -0
  218. package/scss/_frame.scss +41 -0
  219. package/scss/_grid.scss +19 -0
  220. package/scss/_grid_view.scss +46 -0
  221. package/scss/_gtk_about_dialog.scss +186 -0
  222. package/scss/_headerbar.scss +134 -1
  223. package/scss/_icons.generated.scss +186 -0
  224. package/scss/_inscription.scss +125 -0
  225. package/scss/_level_bar.scss +190 -0
  226. package/scss/_link.scss +82 -0
  227. package/scss/_list_box.scss +88 -0
  228. package/scss/_list_view.scss +96 -0
  229. package/scss/_media_controls.scss +139 -0
  230. package/scss/_overlay.scss +68 -0
  231. package/scss/_paned.scss +130 -0
  232. package/scss/_password_entry.scss +83 -0
  233. package/scss/_picture.scss +80 -0
  234. package/scss/_popover_bin.scss +53 -0
  235. package/scss/_popover_menu_bar.scss +104 -0
  236. package/scss/_preferences_row.scss +60 -0
  237. package/scss/_print_dialogs.scss +328 -0
  238. package/scss/_reset.scss +21 -19
  239. package/scss/_revealer.scss +37 -0
  240. package/scss/_row.scss +36 -5
  241. package/scss/_scale.scss +298 -0
  242. package/scss/_scale_button.scss +167 -0
  243. package/scss/_scrollbar.scss +230 -0
  244. package/scss/_scrolled_window.scss +131 -0
  245. package/scss/_search_bar.scss +118 -0
  246. package/scss/_search_entry.scss +86 -0
  247. package/scss/_separator.scss +44 -0
  248. package/scss/_shortcuts_dialog.scss +100 -0
  249. package/scss/_spin_button.scss +172 -0
  250. package/scss/_spin_row.scss +56 -8
  251. package/scss/_spinner.scss +85 -4
  252. package/scss/_stack.scss +729 -0
  253. package/scss/_status_page.scss +1 -1
  254. package/scss/_switch.scss +13 -5
  255. package/scss/_switch_row.scss +10 -0
  256. package/scss/_tab_bar.scss +317 -0
  257. package/scss/_tab_button.scss +98 -0
  258. package/scss/_tab_overview.scss +483 -0
  259. package/scss/_text.scss +182 -0
  260. package/scss/_theme.scss +1 -1
  261. package/scss/_toggle_group.scss +28 -0
  262. package/scss/_tree_expander.scss +62 -0
  263. package/scss/_variables.scss +1 -1
  264. package/scss/_video.scss +146 -0
  265. package/scss/_view_switcher_sidebar.scss +112 -0
  266. package/scss/_viewport.scss +50 -0
  267. package/scss/_widget.scss +14 -3
  268. package/scss/_window.scss +131 -2
  269. package/scss/_window_handle.scss +20 -0
  270. package/scss/adwaita-skin.scss +109 -0
  271. package/src/adw-action-rows.spec.ts +331 -0
  272. package/src/adw-application-window.spec.ts +118 -0
  273. package/src/adw-bin.spec.ts +75 -0
  274. package/src/adw-breakpoint-bin.spec.ts +324 -0
  275. package/src/adw-clamp-scrollable.spec.ts +189 -0
  276. package/src/adw-header-bar.spec.ts +18 -0
  277. package/src/adw-multi-layout-view.spec.ts +243 -0
  278. package/src/adw-preferences-row.spec.ts +164 -0
  279. package/src/adw-row-state.spec.ts +142 -0
  280. package/src/adw-shortcuts.spec.ts +155 -0
  281. package/src/adw-status-page.spec.ts +124 -0
  282. package/src/adw-tab-bar.spec.ts +287 -0
  283. package/src/adw-tab-button.spec.ts +101 -0
  284. package/src/adw-tab-overview.spec.ts +443 -0
  285. package/src/adw-view-switcher-sidebar.spec.ts +281 -0
  286. package/src/adw-window.spec.ts +129 -0
  287. package/src/attributes.ts +52 -0
  288. package/src/breakpoints.ts +25 -8
  289. package/src/capabilities.d.mts +3 -0
  290. package/src/capabilities.mjs +21 -0
  291. package/src/connect-lifecycle.spec.ts +12 -0
  292. package/src/construct-vectors.spec.ts +175 -0
  293. package/src/elements/adw-action-row.ts +31 -2
  294. package/src/elements/adw-alert-dialog.ts +4 -1
  295. package/src/elements/adw-application-window.ts +154 -0
  296. package/src/elements/adw-bin.ts +101 -0
  297. package/src/elements/adw-breakpoint-bin.ts +287 -0
  298. package/src/elements/adw-button-row.ts +7 -1
  299. package/src/elements/adw-clamp-scrollable.ts +207 -0
  300. package/src/elements/adw-combo-row.ts +26 -1
  301. package/src/elements/adw-dialog.ts +19 -0
  302. package/src/elements/adw-entry-row.ts +22 -12
  303. package/src/elements/adw-expander-row.ts +34 -1
  304. package/src/elements/adw-header-bar.ts +18 -4
  305. package/src/elements/adw-layout-slot.ts +95 -0
  306. package/src/elements/adw-multi-layout-view.ts +326 -0
  307. package/src/elements/adw-overlay-split-view.ts +29 -6
  308. package/src/elements/adw-preferences-row.ts +153 -0
  309. package/src/elements/adw-shortcuts-dialog.ts +52 -0
  310. package/src/elements/adw-shortcuts-item.ts +171 -0
  311. package/src/elements/adw-shortcuts-section.ts +86 -0
  312. package/src/elements/adw-sidebar.ts +74 -7
  313. package/src/elements/adw-spin-row.ts +37 -2
  314. package/src/elements/adw-status-page.ts +10 -2
  315. package/src/elements/adw-switch-row.ts +53 -2
  316. package/src/elements/adw-tab-bar.ts +529 -0
  317. package/src/elements/adw-tab-button.ts +194 -0
  318. package/src/elements/adw-tab-overview.ts +1011 -0
  319. package/src/elements/adw-tab-view.ts +66 -145
  320. package/src/elements/adw-toggle-group.ts +138 -14
  321. package/src/elements/adw-view-stack.ts +18 -0
  322. package/src/elements/adw-view-switcher-sidebar.ts +332 -0
  323. package/src/elements/adw-window.ts +190 -11
  324. package/src/elements/checks.ts +35 -8
  325. package/src/elements/gtk-about-dialog.ts +811 -0
  326. package/src/elements/gtk-application-window.ts +108 -0
  327. package/src/elements/gtk-aspect-frame.ts +160 -0
  328. package/src/elements/gtk-button.ts +12 -0
  329. package/src/elements/gtk-calendar.ts +757 -0
  330. package/src/elements/gtk-center-box.ts +184 -0
  331. package/src/elements/gtk-color-dialog-button.ts +278 -0
  332. package/src/elements/gtk-column-view.ts +320 -0
  333. package/src/elements/gtk-drag-icon.ts +257 -0
  334. package/src/elements/gtk-drawing-area.ts +303 -0
  335. package/src/elements/gtk-editable-label.ts +204 -0
  336. package/src/elements/gtk-emoji-chooser.ts +542 -0
  337. package/src/elements/gtk-entry.ts +39 -5
  338. package/src/elements/gtk-expander.ts +301 -0
  339. package/src/elements/gtk-fixed.ts +99 -0
  340. package/src/elements/gtk-flow-box-child.ts +68 -0
  341. package/src/elements/gtk-flow-box.ts +480 -0
  342. package/src/elements/gtk-font-dialog-button.ts +432 -0
  343. package/src/elements/gtk-frame.ts +174 -0
  344. package/src/elements/gtk-gl-area.ts +476 -0
  345. package/src/elements/gtk-graphics-offload.ts +130 -0
  346. package/src/elements/gtk-grid-view.ts +168 -0
  347. package/src/elements/gtk-grid.ts +127 -0
  348. package/src/elements/gtk-header-bar.ts +273 -0
  349. package/src/elements/gtk-inscription.ts +387 -0
  350. package/src/elements/gtk-label.ts +19 -11
  351. package/src/elements/gtk-level-bar.ts +323 -0
  352. package/src/elements/gtk-link-button.ts +138 -0
  353. package/src/elements/gtk-list-box-row.ts +195 -0
  354. package/src/elements/gtk-list-box.ts +413 -0
  355. package/src/elements/gtk-list-view.ts +370 -0
  356. package/src/elements/gtk-media-controls.ts +509 -0
  357. package/src/elements/gtk-notebook.ts +664 -0
  358. package/src/elements/gtk-overlay.ts +149 -0
  359. package/src/elements/gtk-page-setup-unix-dialog.ts +420 -0
  360. package/src/elements/gtk-paned.ts +597 -0
  361. package/src/elements/gtk-password-entry.ts +170 -0
  362. package/src/elements/gtk-picture.ts +254 -0
  363. package/src/elements/gtk-popover-bin.ts +332 -0
  364. package/src/elements/gtk-popover-menu-bar.ts +355 -0
  365. package/src/elements/gtk-popover-menu.ts +339 -0
  366. package/src/elements/gtk-popover.ts +92 -10
  367. package/src/elements/gtk-print-unix-dialog.ts +989 -0
  368. package/src/elements/gtk-progress-bar.ts +24 -11
  369. package/src/elements/gtk-revealer.ts +406 -0
  370. package/src/elements/gtk-scale-button.ts +358 -0
  371. package/src/elements/gtk-scale.ts +492 -0
  372. package/src/elements/gtk-scrollbar.ts +528 -0
  373. package/src/elements/gtk-scrolled-window.ts +653 -0
  374. package/src/elements/gtk-search-bar.ts +200 -0
  375. package/src/elements/gtk-search-entry.ts +172 -0
  376. package/src/elements/gtk-separator.ts +52 -0
  377. package/src/elements/gtk-spin-button.ts +475 -0
  378. package/src/elements/gtk-spinner.ts +126 -0
  379. package/src/elements/gtk-stack-sidebar.ts +212 -0
  380. package/src/elements/gtk-stack-switcher.ts +279 -0
  381. package/src/elements/gtk-stack.ts +748 -0
  382. package/src/elements/gtk-switch.ts +52 -19
  383. package/src/elements/gtk-text-view.ts +290 -0
  384. package/src/elements/gtk-text.ts +219 -0
  385. package/src/elements/gtk-toggle-button.ts +239 -0
  386. package/src/elements/gtk-tree-expander.ts +243 -0
  387. package/src/elements/gtk-video.ts +423 -0
  388. package/src/elements/gtk-viewport.ts +277 -0
  389. package/src/elements/gtk-window-controls.ts +341 -0
  390. package/src/elements/gtk-window-handle.ts +221 -0
  391. package/src/elements/gtk-window.ts +372 -0
  392. package/src/elements/justification.ts +24 -0
  393. package/src/elements/popover-menu.ts +24 -0
  394. package/src/elements/roving-focus.ts +53 -21
  395. package/src/emoji-data.ts +577 -0
  396. package/src/entry-rows.spec.ts +31 -0
  397. package/src/font-description.ts +238 -0
  398. package/src/gtk-about-dialog.spec.ts +250 -0
  399. package/src/gtk-action-bar.spec.ts +89 -0
  400. package/src/gtk-application-window.spec.ts +107 -0
  401. package/src/gtk-aspect-frame.spec.ts +114 -0
  402. package/src/gtk-calendar.spec.ts +589 -0
  403. package/src/gtk-center-box.spec.ts +125 -0
  404. package/src/gtk-color-dialog-button.spec.ts +141 -0
  405. package/src/gtk-column-view.spec.ts +154 -0
  406. package/src/gtk-drag-icon.spec.ts +190 -0
  407. package/src/gtk-drawing-area.spec.ts +211 -0
  408. package/src/gtk-editable-label.spec.ts +190 -0
  409. package/src/gtk-emoji-chooser.spec.ts +173 -0
  410. package/src/gtk-entry.spec.ts +23 -0
  411. package/src/gtk-expander.spec.ts +170 -0
  412. package/src/gtk-fixed.spec.ts +97 -0
  413. package/src/gtk-flow-box.spec.ts +289 -0
  414. package/src/gtk-font-dialog-button.spec.ts +166 -0
  415. package/src/gtk-frame.spec.ts +119 -0
  416. package/src/gtk-gl-area.spec.ts +361 -0
  417. package/src/gtk-graphics-offload.spec.ts +119 -0
  418. package/src/gtk-grid-view.spec.ts +106 -0
  419. package/src/gtk-grid.spec.ts +122 -0
  420. package/src/gtk-header-bar.spec.ts +202 -0
  421. package/src/gtk-inscription.spec.ts +235 -0
  422. package/src/gtk-level-bar.spec.ts +199 -0
  423. package/src/gtk-link-button.spec.ts +117 -0
  424. package/src/gtk-list-box.spec.ts +422 -0
  425. package/src/gtk-list-view.spec.ts +203 -0
  426. package/src/gtk-media-controls.spec.ts +295 -0
  427. package/src/gtk-notebook.spec.ts +546 -0
  428. package/src/gtk-overlay.spec.ts +141 -0
  429. package/src/gtk-paned.spec.ts +267 -0
  430. package/src/gtk-password-entry.spec.ts +150 -0
  431. package/src/gtk-picture.spec.ts +172 -0
  432. package/src/gtk-popover-bin.spec.ts +229 -0
  433. package/src/gtk-popover-menu-bar.spec.ts +296 -0
  434. package/src/gtk-popover-menu.spec.ts +261 -0
  435. package/src/gtk-popover-role.spec.ts +138 -0
  436. package/src/gtk-popover.spec.ts +264 -0
  437. package/src/gtk-print-dialogs.spec.ts +251 -0
  438. package/src/gtk-revealer.spec.ts +164 -0
  439. package/src/gtk-scale-button.spec.ts +218 -0
  440. package/src/gtk-scale.spec.ts +213 -0
  441. package/src/gtk-scrollbar.spec.ts +244 -0
  442. package/src/gtk-scrolled-window.spec.ts +262 -0
  443. package/src/gtk-search-bar.spec.ts +179 -0
  444. package/src/gtk-search-entry.spec.ts +142 -0
  445. package/src/gtk-separator.spec.ts +74 -0
  446. package/src/gtk-spin-button.spec.ts +186 -0
  447. package/src/gtk-spinner.spec.ts +130 -0
  448. package/src/gtk-stack-sidebar.spec.ts +217 -0
  449. package/src/gtk-stack-switcher.spec.ts +249 -0
  450. package/src/gtk-stack.spec.ts +432 -0
  451. package/src/gtk-text-view.spec.ts +189 -0
  452. package/src/gtk-text.spec.ts +163 -0
  453. package/src/gtk-toggle-button.spec.ts +186 -0
  454. package/src/gtk-tree-expander.spec.ts +201 -0
  455. package/src/gtk-video.spec.ts +240 -0
  456. package/src/gtk-viewport.spec.ts +140 -0
  457. package/src/gtk-window-controls.spec.ts +232 -0
  458. package/src/gtk-window-handle.spec.ts +158 -0
  459. package/src/gtk-window.spec.ts +202 -0
  460. package/src/index.ts +9 -1
  461. package/src/keyboard-operable.spec.ts +77 -9
  462. package/src/list-view-dom.ts +121 -0
  463. package/src/namespace/adw.ts +12 -0
  464. package/src/namespace/gtk.ts +61 -0
  465. package/src/page-setup.ts +222 -0
  466. package/src/row-line-clamp.ts +74 -0
  467. package/src/row-tooltip.spec.ts +313 -0
  468. package/src/row-tooltip.ts +52 -0
  469. package/src/scroll-shading.ts +18 -1
  470. package/src/shared-tree-builder.ts +336 -41
  471. package/src/shared-tree-mount.spec.ts +130 -0
  472. package/src/shared-trees.spec.ts +15 -0
  473. package/src/signals.ts +15 -0
  474. package/src/style-classes.spec.ts +9 -8
  475. package/src/styles.generated.ts +1 -1
  476. package/src/tab-chip.ts +200 -0
  477. package/src/template-classes.ts +45 -0
  478. package/src/test.browser.mts +160 -0
  479. package/src/widget-size.spec.ts +117 -0
@@ -0,0 +1,24 @@
1
+ /** `GtkGraphicsOffloadEnabled`, spelled as the GIR's enum nicks. */
2
+ type OffloadEnabled = 'enabled' | 'disabled';
3
+ export declare class GtkGraphicsOffload extends HTMLElement {
4
+ private _childEl;
5
+ private _initialized;
6
+ static get observedAttributes(): string[];
7
+ /** `Gtk.GraphicsOffload:child` — the child widget, as the light-DOM node adopted. */
8
+ get child(): Element | null;
9
+ /**
10
+ * `Gtk.GraphicsOffload:enabled` — whether the widget ATTEMPTS to offload its child's
11
+ * contents. Defaults to `GTK_GRAPHICS_OFFLOAD_ENABLED` (`:267-273`).
12
+ */
13
+ get enabled(): OffloadEnabled;
14
+ set enabled(v: OffloadEnabled);
15
+ /** `Gtk.GraphicsOffload:black-background` — the black rect painted before the child. */
16
+ get blackBackground(): boolean;
17
+ set blackBackground(v: boolean);
18
+ connectedCallback(): void;
19
+ attributeChangedCallback(name: string): void;
20
+ /** `sync_subsurface` (:176-191): the subsurface exists while the widget is realized and offload is not disabled. */
21
+ private _render;
22
+ private _notify;
23
+ }
24
+ export {};
@@ -0,0 +1,39 @@
1
+ import { GtkListView } from './gtk-list-view.js';
2
+ export declare class GtkGridView extends GtkListView {
3
+ private _observer;
4
+ static get observedAttributes(): string[];
5
+ /** `GtkGridView:min-columns` — at least one, as the ParamSpec's range says. */
6
+ get minColumns(): number;
7
+ set minColumns(value: number);
8
+ /** `GtkGridView:max-columns` — `DEFAULT_MAX_COLUMNS` is 7 (gtkgridview.c:42). */
9
+ get maxColumns(): number;
10
+ set maxColumns(value: number);
11
+ connectedCallback(): void;
12
+ disconnectedCallback(): void;
13
+ attributeChangedCallback(name?: string): void;
14
+ protected get _viewClass(): string;
15
+ protected get _rowClass(): string;
16
+ protected _renderRows(): void;
17
+ /** An attribute that is not a positive integer is the property's default, not NaN. */
18
+ private _columnBound;
19
+ /**
20
+ * Measure, count, and write the tracks.
21
+ *
22
+ * THE ITEM SIZE IS THE CELL'S `min-width`, NOT ITS RENDERED WIDTH, and the difference
23
+ * is the whole reason this is three lines rather than one. The tracks are written as
24
+ * `1fr`, so a rendered cell is as wide as the count made it: feeding that back in
25
+ * would measure the answer and converge on whatever the first frame happened to do.
26
+ * `min-width` is a fact about the CONTENT instead, declared by the stylesheet and
27
+ * overridable per cell — and it is the branch GTK itself takes under
28
+ * `GTK_SCROLL_MINIMUM` (gtkgridview.c:628-630). The natural-size branch needs a
29
+ * measurement a browser can only take by first undoing the layout the answer feeds.
30
+ *
31
+ * The gap is read the same way, off the container's own `column-gap`, so the two
32
+ * numbers the arithmetic takes come from ONE place — the stylesheet — and an author
33
+ * who widens the gap does not get a column count computed against the old one.
34
+ *
35
+ * An empty view keeps the tracks it had: there is nothing to measure, and no cell for
36
+ * the answer to be wrong about.
37
+ */
38
+ private _applyColumns;
39
+ }
@@ -0,0 +1,27 @@
1
+ import { type BoxOrientation } from '@gjsify/adwaita-core';
2
+ export declare class GtkGrid extends HTMLElement {
3
+ static get observedAttributes(): string[];
4
+ /** `Gtk.Grid:column-spacing` — the gap between two consecutive columns. Defaults to 0. */
5
+ get columnSpacing(): number;
6
+ set columnSpacing(value: number);
7
+ /** `Gtk.Grid:row-spacing` — the gap between two consecutive rows. Defaults to 0. */
8
+ get rowSpacing(): number;
9
+ set rowSpacing(value: number);
10
+ /** `Gtk.Grid:column-homogeneous` — whether every column gets the same width. */
11
+ get columnHomogeneous(): boolean;
12
+ set columnHomogeneous(value: boolean);
13
+ /** `Gtk.Grid:row-homogeneous` — whether every row gets the same height. */
14
+ get rowHomogeneous(): boolean;
15
+ set rowHomogeneous(value: boolean);
16
+ /**
17
+ * `GtkOrientable:orientation` — the axis a child with no position of its own is
18
+ * attached along. `horizontal` (the default) appends each one to ROW 0 at the next
19
+ * free column, `vertical` to COLUMN 0 at the next free row.
20
+ */
21
+ get orientation(): BoxOrientation;
22
+ set orientation(value: BoxOrientation);
23
+ connectedCallback(): void;
24
+ attributeChangedCallback(name: string, old: string | null, value: string | null): void;
25
+ private _normalized;
26
+ private _sync;
27
+ }
@@ -0,0 +1,60 @@
1
+ import './gtk-window-controls.js';
2
+ export declare class GtkHeaderBar extends HTMLElement {
3
+ private _initialized;
4
+ private _handle;
5
+ private _box;
6
+ private _startBox;
7
+ private _endBox;
8
+ /** The two `GtkWindowControls`, present only while `show-title-buttons` is true (:798-826). */
9
+ private _startControls;
10
+ private _endControls;
11
+ /** The derived `GtkLabel`, or `null` while a `title-widget` holds the centre. */
12
+ private _titleLabel;
13
+ /** The child that took the centre — read back out of `_box`, never stored as truth. */
14
+ private _centre;
15
+ private _centreObserver;
16
+ static get observedAttributes(): string[];
17
+ /** `Gtk.HeaderBar:decoration-layout` — bound to both controls (:231-236, :240-245). */
18
+ get decorationLayout(): string | null;
19
+ set decorationLayout(value: string | null);
20
+ /** `Gtk.HeaderBar:show-title-buttons` — whether the standard frame controls are built. */
21
+ get showTitleButtons(): boolean;
22
+ set showTitleButtons(value: boolean);
23
+ /** `Gtk.HeaderBar:title-widget`, read as the element that holds the centre — or `null`. */
24
+ get titleWidget(): HTMLElement | null;
25
+ /** `setAttribute` for a write that changes nothing; every GObject setter here returns early. */
26
+ private _write;
27
+ connectedCallback(): void;
28
+ disconnectedCallback(): void;
29
+ attributeChangedCallback(name: string): void;
30
+ private _property;
31
+ /**
32
+ * `create_window_controls` and its inverse, `gtk_header_bar_set_show_title_buttons`
33
+ * (gtkheaderbar.c:198-249, :798-826): the start controls are PREPENDED into the start
34
+ * box, the end controls APPENDED into the end box, and setting the property false
35
+ * REMOVES both — which is why a bar with the property off has no controls at all rather
36
+ * than hidden ones.
37
+ */
38
+ private _renderTitleButtons;
39
+ /** The two `G_BINDING_SYNC_CREATE` bindings onto the controls (:229-247). */
40
+ private _bindDecorationLayout;
41
+ /**
42
+ * The two things `gtk_header_bar_root` connects to (gtkheaderbar.c:362-376): the centre
43
+ * either/or, which changes what belongs in the middle in BOTH directions — `set_title_widget`
44
+ * empties the bin before installing and rebuilds the derived label when it is handed back
45
+ * to NULL (:319-341) — and `notify::title` on the ROOT, which re-runs `update_title`.
46
+ */
47
+ private _followCentre;
48
+ /** The child of `_box` that is neither a side box nor the derived label. */
49
+ private _centreChild;
50
+ private _syncCentre;
51
+ /** `construct_title_label` (gtkheaderbar.c:274-290), with `width-chars=5` as CSS. */
52
+ private _constructTitleLabel;
53
+ /** `gtk_header_bar_set_title_widget`'s first act: the centre bin goes empty (:323). */
54
+ private _dropTitleLabel;
55
+ /**
56
+ * `update_title` (gtkheaderbar.c:250-271): the root window's title, then the two GLib
57
+ * process-name fallbacks — which is what the page's own `<title>` stands in for here.
58
+ */
59
+ private _updateTitle;
60
+ }
@@ -0,0 +1,64 @@
1
+ import { type LabelWrapMode } from '@gjsify/adwaita-core';
2
+ /** `GtkInscriptionOverflow`, in enum order (gtkinscription.h:44-48). */
3
+ export declare const INSCRIPTION_OVERFLOW_MODES: readonly ["clip", "ellipsize-start", "ellipsize-middle", "ellipsize-end"];
4
+ export type InscriptionOverflow = (typeof INSCRIPTION_OVERFLOW_MODES)[number];
5
+ /** `GTK_INSCRIPTION_OVERFLOW_CLIP`, the pspec default (gtkinscription.c:728-733). */
6
+ export declare const DEFAULT_INSCRIPTION_OVERFLOW: InscriptionOverflow;
7
+ /**
8
+ * `PANGO_WRAP_WORD_CHAR`, the pspec's default — which is NOT GtkLabel's
9
+ * (gtkinscription.c:738-740). The nick set is shared; only the fallback differs, and it
10
+ * differs because this widget sizes itself in characters and lines and therefore has to be
11
+ * able to break a word inside the box it just reserved.
12
+ */
13
+ export declare const DEFAULT_INSCRIPTION_WRAP_MODE: LabelWrapMode;
14
+ /** `GtkInscription:text-overflow` from its nick, leaving an unknown nick at the default. */
15
+ export declare function normalizeInscriptionOverflow(value: unknown): InscriptionOverflow;
16
+ /** `GtkInscription:wrap-mode` from its nick, with {@link DEFAULT_INSCRIPTION_WRAP_MODE}. */
17
+ export declare function normalizeInscriptionWrapMode(value: unknown): LabelWrapMode;
18
+ export declare class GtkInscription extends HTMLElement {
19
+ private _initialized;
20
+ static get observedAttributes(): string[];
21
+ /** `GtkInscription:text` — the plain string to draw (gtkinscription.c:713-717). */
22
+ get text(): string;
23
+ set text(value: string);
24
+ /**
25
+ * `GtkInscription:markup` — a Pango-markup string (gtkinscription.c:617-622), reduced
26
+ * to its plain text by `labelDisplayText` rather than parsed. See the header for why
27
+ * that is the XSS answer and why {@link text} wins when both are present.
28
+ */
29
+ get markup(): string;
30
+ set markup(value: string);
31
+ /** `GtkInscription:min-chars` (gtkinscription.c:638-644). Defaults to 3. */
32
+ get minChars(): number;
33
+ set minChars(value: number);
34
+ /** `GtkInscription:nat-chars` (gtkinscription.c:680-686). Defaults to 0. */
35
+ get natChars(): number;
36
+ set natChars(value: number);
37
+ /** `GtkInscription:min-lines` (gtkinscription.c:660-666). Defaults to 1. */
38
+ get minLines(): number;
39
+ set minLines(value: number);
40
+ /** `GtkInscription:nat-lines` (gtkinscription.c:700-706). Defaults to 0. */
41
+ get natLines(): number;
42
+ set natLines(value: number);
43
+ /** `GtkInscription:text-overflow` (gtkinscription.c:726-732). Defaults to CLIP. */
44
+ get textOverflow(): InscriptionOverflow;
45
+ set textOverflow(value: InscriptionOverflow);
46
+ /** `GtkInscription:wrap-mode` (gtkinscription.c:741-746). Defaults to WORD_CHAR. */
47
+ get wrapMode(): LabelWrapMode;
48
+ set wrapMode(value: LabelWrapMode);
49
+ /**
50
+ * `GtkInscription:xalign` (gtkinscription.c:757-760). Defaults to 0.0
51
+ * (gtkinscription.c:67, :791) — start-aligned, unlike GtkLabel's 0.5.
52
+ */
53
+ get xalign(): number;
54
+ set xalign(value: number);
55
+ /** `GtkInscription:yalign` (gtkinscription.c:773-776). Defaults to 0.5. */
56
+ get yalign(): number;
57
+ set yalign(value: number);
58
+ private _write;
59
+ connectedCallback(): void;
60
+ attributeChangedCallback(name: string): void;
61
+ /** The `notify::` detail for `name`: the PROPERTY, parsed, not the raw attribute. */
62
+ private _property;
63
+ private _render;
64
+ }
@@ -11,6 +11,9 @@ export declare class GtkLabel extends HTMLElement {
11
11
  */
12
12
  private _wrapSpan;
13
13
  private _resizes;
14
+ /** Whether `_sync` last wrote `min-width` / `max-width` itself, and so may clear them. */
15
+ private _wroteMinWidth;
16
+ private _wroteMaxWidth;
14
17
  static get observedAttributes(): ("label" | "use-markup" | "use-underline" | "justify" | "wrap" | "xalign" | "yalign" | "wrap-mode" | "ellipsize" | "lines" | "width-chars" | "max-width-chars" | "selectable")[];
15
18
  /** `Gtk.Label:label` — the text as written, before markup and the mnemonic come out. */
16
19
  get label(): string;
@@ -0,0 +1,59 @@
1
+ import { type BoxOrientation } from '@gjsify/adwaita-core';
2
+ /** `GtkLevelBarMode`, spelled as the GIR's enum nicks (:1004-1008). */
3
+ type LevelBarMode = 'continuous' | 'discrete';
4
+ export declare class GtkLevelBar extends HTMLElement {
5
+ private _trough;
6
+ private _initialized;
7
+ /** Offset name → value, kept sorted ascending exactly as the C's `GList` is. */
8
+ private _offsets;
9
+ static get observedAttributes(): string[];
10
+ /** `Gtk.LevelBar:value` — the filled level. */
11
+ get value(): number;
12
+ set value(v: number);
13
+ /** `Gtk.LevelBar:min-value` — the low end of the interval. Defaults to 0. */
14
+ get minValue(): number;
15
+ set minValue(v: number);
16
+ /** `Gtk.LevelBar:max-value` — the high end of the interval. Defaults to 1. */
17
+ get maxValue(): number;
18
+ set maxValue(v: number);
19
+ /** `Gtk.LevelBar:mode` — one filled block, or one per unit of the interval. */
20
+ get mode(): LevelBarMode;
21
+ set mode(v: LevelBarMode);
22
+ /** `Gtk.LevelBar:inverted` — grow from the far end. */
23
+ get inverted(): boolean;
24
+ set inverted(v: boolean);
25
+ /** `GtkOrientable:orientation` (gtklevelbar.c:825-835). Horizontal fills rightwards. */
26
+ get orientation(): BoxOrientation;
27
+ set orientation(v: BoxOrientation);
28
+ /**
29
+ * `setAttribute` runs the custom-element reaction for a write that changes nothing,
30
+ * while every GObject setter here returns early when the value is already right
31
+ * (gtklevelbar.c:1186-1187, :1224-1225, :1300-1301, :1260-1261). This is the guard
32
+ * that makes "notify only on a real change" true for the numeric and enum half.
33
+ */
34
+ private _write;
35
+ get disabled(): boolean;
36
+ set disabled(v: boolean);
37
+ /**
38
+ * `gtk_level_bar_add_offset_value` (gtklevelbar.c:1395-1411): replaces the value of
39
+ * an offset of the same name, keeps the list sorted, refuses a value outside the
40
+ * interval (`g_return_if_fail (gtk_level_bar_value_in_interval (…))`, :1403), and
41
+ * emits `offset-changed` — but only when the value actually moved (:259-260).
42
+ */
43
+ addOffsetValue(name: string, value: number): void;
44
+ /** `gtk_level_bar_remove_offset_value` (gtklevelbar.c:1362-1377). */
45
+ removeOffsetValue(name: string): void;
46
+ /** `gtk_level_bar_get_offset_value` (gtklevelbar.c:1423-1443) — `null` when absent. */
47
+ offsetValue(name: string): number | null;
48
+ connectedCallback(): void;
49
+ attributeChangedCallback(name: string): void;
50
+ private _notify;
51
+ /** One interval endpoint CLAMPS every offset into the new range — the other does not. */
52
+ private _clampOffsets;
53
+ /** The `notify::` detail for `name`: the PROPERTY, parsed, not the raw attribute. */
54
+ private _property;
55
+ private _render;
56
+ /** One `block` node, `filled` or `empty`, wearing the offset's class (:635-652). */
57
+ private _block;
58
+ }
59
+ export {};
@@ -0,0 +1,29 @@
1
+ import { GtkButton } from './gtk-button.js';
2
+ export declare class GtkLinkButton extends GtkButton {
3
+ private _wired;
4
+ static get observedAttributes(): string[];
5
+ /** `Gtk.LinkButton:uri` — the address this button points at. */
6
+ get uri(): string;
7
+ set uri(value: string);
8
+ /**
9
+ * `Gtk.LinkButton:visited` — whether the link has been followed. The state flag
10
+ * GTK swaps here is what the stylesheet paints as `:visited`, and the `VISITED`
11
+ * accessibility state beside it; see the header.
12
+ */
13
+ get visited(): boolean;
14
+ set visited(value: boolean);
15
+ connectedCallback(): void;
16
+ attributeChangedCallback(name?: string): void;
17
+ /**
18
+ * `::activate-link` — cancelable, because the signal is a boolean accumulator
19
+ * (gtklinkbutton.c:216-238) and `preventDefault()` is the DOM spelling of a handler
20
+ * returning TRUE. Nothing cancelled ⇒ the default handler runs.
21
+ */
22
+ private _activateLink;
23
+ /**
24
+ * The launcher call, on its own method so a caller (or a spec) can stand in for the
25
+ * window the desktop would have opened.
26
+ */
27
+ protected launch(uri: string): void;
28
+ protected decorate(button: HTMLButtonElement): void;
29
+ }
@@ -0,0 +1,54 @@
1
+ export declare class GtkListBoxRow extends HTMLElement {
2
+ private _contentsEl;
3
+ private _activation?;
4
+ private _initialized;
5
+ static get observedAttributes(): string[];
6
+ /**
7
+ * `GtkListBoxRow:activatable` — TRUE by default (gtklistbox.c:3961), so this is the OFF
8
+ * switch and the attribute is read as `activatable="false"`.
9
+ */
10
+ get activatable(): boolean;
11
+ set activatable(value: boolean);
12
+ /**
13
+ * `GtkListBoxRow:selectable` — TRUE by default (gtklistbox.c:3962), read the same way as
14
+ * `activatable`.
15
+ */
16
+ get selectable(): boolean;
17
+ set selectable(value: boolean);
18
+ /** Where this row sits in its box, or -1 while it has no box. */
19
+ get index(): number;
20
+ /**
21
+ * Whether this row is selected — `gtk_list_box_row_is_selected`, answered by the parent so
22
+ * a row moved between boxes never carries a stale answer.
23
+ */
24
+ get selected(): boolean;
25
+ /** `GtkListBoxRow:child`, as the light-DOM child it already is. */
26
+ get child(): Element | null;
27
+ connectedCallback(): void;
28
+ /**
29
+ * Hand this row's `.activatable` class and tab stop to its box.
30
+ *
31
+ * Both are the box's to derive and neither is derivable here: `can_select` is the BOX's
32
+ * `selection-mode` (gtklistbox.c:3606-3609) and the tab stop is `GtkListBox:tab-behavior`,
33
+ * where `all` gives every activatable row its own stop and `item`/`cell` hand out a
34
+ * roving one — the split `gtk_list_box_focus` draws by walking rows between Tab presses
35
+ * only under `GTK_LIST_TAB_ALL` (gtklistbox.c:2037, :2067). The keys stay the row's:
36
+ * Enter and Space are `GtkListBoxRow`'s own (see `row-activation.ts`).
37
+ */
38
+ claim(): void;
39
+ /** Give the row back to itself, for a box that no longer manages it. */
40
+ release(): void;
41
+ /** What the box last said about itself; TRUE until a box narrows it. */
42
+ private _canSelect;
43
+ /** Set by {@link claim}. While it is set the row derives neither class nor tab stop. */
44
+ private _claimed;
45
+ attributeChangedCallback(): void;
46
+ /**
47
+ * Re-derive the tab stop and the `.activatable` class.
48
+ *
49
+ * Public because the box owns the second half of the class rule — it knows
50
+ * `selection-mode`, this row does not — and calls this for every row when that changes.
51
+ */
52
+ syncClasses(canSelect: boolean): void;
53
+ private _syncActivation;
54
+ }
@@ -0,0 +1,100 @@
1
+ import { type AdwBoxSelectionMode } from '@gjsify/adwaita-core';
2
+ import type { GtkListBoxRow } from './gtk-list-box-row.js';
3
+ import './gtk-list-box-row.js';
4
+ /** `GtkListTabBehavior`'s nicks — `cell` behaves as `item` outside a cell-based box. */
5
+ export type GtkListTabBehavior = 'all' | 'item' | 'cell';
6
+ /** An unknown nick is `all`, the ParamSpec's default (gtklistbox.c:574-578). */
7
+ export declare function normalizeListTabBehavior(raw: string | null | undefined): GtkListTabBehavior;
8
+ export declare class GtkListBox extends HTMLElement {
9
+ private _rows;
10
+ private _selection;
11
+ /** `box->selected_row`, `-1` for the C's NULL. */
12
+ private _anchor;
13
+ private _initialized;
14
+ static get observedAttributes(): string[];
15
+ /** `GtkListBox:selection-mode` — the four `Gtk.SelectionMode` values. */
16
+ get selectionMode(): AdwBoxSelectionMode;
17
+ set selectionMode(value: AdwBoxSelectionMode);
18
+ /** Default TRUE (gtklistbox.c:543), so the attribute is the OFF switch. */
19
+ get activateOnSingleClick(): boolean;
20
+ set activateOnSingleClick(value: boolean);
21
+ /**
22
+ * `GtkListBox:accept-unpaired-release` — FALSE by default (gtklistbox.c:552-553).
23
+ *
24
+ * Upstream this decides whether a press followed by a release somewhere else still
25
+ * activates the row under the press (:1922-1935). A browser delivers `click` on the
26
+ * NEAREST COMMON ANCESTOR of the press and the release, so a release outside the row
27
+ * reaches this box rather than the row — and this attribute says whether that box-level
28
+ * click selects the row the press started on or is dropped.
29
+ */
30
+ get acceptUnpairedRelease(): boolean;
31
+ set acceptUnpairedRelease(value: boolean);
32
+ get showSeparators(): boolean;
33
+ set showSeparators(value: boolean);
34
+ /** `GtkListBox:tab-behavior` (4.18) — `all` | `item` | `cell`. */
35
+ get tabBehavior(): GtkListTabBehavior;
36
+ set tabBehavior(value: GtkListTabBehavior);
37
+ /** The rows, in order. */
38
+ get rows(): readonly GtkListBoxRow[];
39
+ /**
40
+ * The selected positions, ascending.
41
+ *
42
+ * NOT a GIR property: `GtkListBox` exposes its selection through the `row-selected` /
43
+ * `selected-rows-changed` SIGNALS and the `get_selected_rows()` METHOD, and this element
44
+ * spells the signal as `notify::selected-rows` so a `notify::` listener finds the shape it
45
+ * expects everywhere else in the package.
46
+ */
47
+ get selectedRows(): number[];
48
+ set selectedRows(value: Iterable<number> | number | null);
49
+ /** `gtk_list_box_selected_foreach`, as the rows themselves. */
50
+ get selectedRowElements(): GtkListBoxRow[];
51
+ connectedCallback(): void;
52
+ attributeChangedCallback(name?: string): void;
53
+ /** `gtk_list_box_select_row` (gtklistbox.c:915-933). `null` is the C's unselect-all (:926). */
54
+ selectRow(row: GtkListBoxRow | null): void;
55
+ /** `gtk_list_box_unselect_row` (gtklistbox.c:943-950). */
56
+ unselectRow(row: GtkListBoxRow): void;
57
+ /** `gtk_list_box_select_all` — refused unless the mode is `multiple` (:963-964). */
58
+ selectAll(): void;
59
+ /** `gtk_list_box_unselect_all` — refused in `browse`, a no-op on an empty selection. */
60
+ unselectAll(): void;
61
+ /** The classes and ARIA that follow directly from the attributes. */
62
+ private _applyAttributes;
63
+ /** Re-read the children and re-derive everything that follows from them. */
64
+ private _collectRows;
65
+ /**
66
+ * Re-derive every row's `.activatable` class, its `aria-selected` and the roving tabindex.
67
+ *
68
+ * Called on connect, on `selection-mode`, and from the childList observer, so a row
69
+ * appended after connect is in the selection from its first frame.
70
+ */
71
+ private _syncRows;
72
+ /** The tab stops `tab-behavior` hands out: one per row, or one for the whole box. */
73
+ private _syncTabIndexes;
74
+ /**
75
+ * One click. Selection always follows; activation depends on the click COUNT, which a
76
+ * plain `click` cannot say — so the count comes from `detail` and a second click arrives
77
+ * here too.
78
+ */
79
+ private _onClick;
80
+ /** The double-click arm, for the browser that reports the second click as `detail === 2`. */
81
+ private _onDoubleClick;
82
+ /**
83
+ * `Ctrl`+Space is `toggle-cursor-row` (gtklistbox.c:753-755) and nothing else is: Enter and
84
+ * Space reach the ROW, which `attachRowActivation` owns, and this box must not answer the
85
+ * same key twice.
86
+ */
87
+ private _onKeyDown;
88
+ /** The row a click or key landed in, or null. */
89
+ private _rowAt;
90
+ /** One click or `Ctrl`+Space — `gtk_list_box_update_selection_full` (:1799-1871). */
91
+ private _updateSelection;
92
+ /** `gtk_list_box_activate` (:1873-1884) — an unactivatable row emits nothing. */
93
+ private _activate;
94
+ /**
95
+ * The two signals GObject emits for every selection change (:594-616) plus the notify a
96
+ * declarative port owes. `selected-rows-changed` is `RUN_FIRST` upstream and carries
97
+ * nothing, so its `detail` stays empty.
98
+ */
99
+ private _emitSelection;
100
+ }
@@ -0,0 +1,73 @@
1
+ import { ListViewState, type AdwComboOption, type AdwListItemFactory, type AdwListModelInput, type AdwListSelectionMode, type BoxOrientation } from '@gjsify/adwaita-core';
2
+ /** `GtkListTabBehavior`'s nicks — `cell` behaves as `item` outside a cell-based view. */
3
+ export type GtkListTabBehavior = 'all' | 'item' | 'cell';
4
+ /** An unknown nick is `all`, the ParamSpec's default (gtklistview.c:965-969). */
5
+ export declare function normalizeListTabBehavior(raw: string | null | undefined): GtkListTabBehavior;
6
+ export declare class GtkListView extends HTMLElement {
7
+ protected _listEl: HTMLDivElement;
8
+ protected _rows: HTMLElement[];
9
+ /** The model + selection machine all three views share (ADR 0004, ADR 0089). */
10
+ protected readonly _state: ListViewState;
11
+ protected _factory: AdwListItemFactory<Node>;
12
+ private _initialized;
13
+ static get observedAttributes(): string[];
14
+ /** The list model (`Gtk.ListView:model`, minus the selection ADR 0046 declined). */
15
+ get model(): AdwComboOption[];
16
+ set model(value: AdwListModelInput);
17
+ /** The per-item renderer — `Gtk.ListView:factory`, as one function. */
18
+ get factory(): AdwListItemFactory<Node>;
19
+ set factory(value: AdwListItemFactory<Node> | null);
20
+ /** The selected positions, ascending. Assigning replaces the selection. */
21
+ get selected(): number[];
22
+ set selected(value: Iterable<number> | number | null);
23
+ get selectionMode(): AdwListSelectionMode;
24
+ set selectionMode(value: AdwListSelectionMode);
25
+ get showSeparators(): boolean;
26
+ set showSeparators(value: boolean);
27
+ get singleClickActivate(): boolean;
28
+ set singleClickActivate(value: boolean);
29
+ get enableRubberband(): boolean;
30
+ set enableRubberband(value: boolean);
31
+ get tabBehavior(): GtkListTabBehavior;
32
+ set tabBehavior(value: GtkListTabBehavior);
33
+ /**
34
+ * `GtkOrientable:orientation` — which way the rows run.
35
+ *
36
+ * VERTICAL by default, and NOT through `normalizeBoxOrientation`: that helper is
37
+ * `GtkBox`'s parser and answers the interface default, horizontal. `GtkListBase` sets
38
+ * `priv->orientation = GTK_ORIENTATION_VERTICAL` in its own init
39
+ * (gtklistbase.c:2070), which is why every GTK list view scrolls DOWN out of the box.
40
+ * Taking the shared helper's default here put `.horizontal` on every list view,
41
+ * flowed the rows across, pointed the arrow keys at the wrong axis and stopped the
42
+ * `show-separators` rule matching — one wrong default, three symptoms.
43
+ */
44
+ get orientation(): BoxOrientation;
45
+ set orientation(value: BoxOrientation);
46
+ connectedCallback(): void;
47
+ attributeChangedCallback(name?: string): void;
48
+ /** The classes and ARIA that follow directly from the attributes. */
49
+ protected _applyAttributes(): void;
50
+ /**
51
+ * The class the HOST wears. GTK names its views by CSS node — `listview`, `gridview`,
52
+ * `columnview` — and the three partials select on the tag, so this is what a consumer
53
+ * or a page rule has to spell; a subclass wearing the base's class would offer one
54
+ * name for two widgets.
55
+ */
56
+ protected get _viewClass(): string;
57
+ /** The CSS node name GTK gives each child — `row` here, `child` in a grid view. */
58
+ protected get _rowClass(): string;
59
+ /** Build every row from scratch — the factory changed, or the view did. */
60
+ protected _renderRows(): void;
61
+ /** One row: the factory's node inside the element GTK calls `row`. */
62
+ protected _createRow(position: number): HTMLElement | null;
63
+ private _selectRow;
64
+ private _activateRow;
65
+ private _onSelectionChanged;
66
+ /** The per-row selected state, and the one tab stop a roving tabindex leaves open. */
67
+ protected _syncSelectedStates(): void;
68
+ /**
69
+ * Apply one `items-changed` — remove `removed` rows at `position`, insert `added`
70
+ * fresh ones there, leave every other row standing.
71
+ */
72
+ private _applyItemsChanged;
73
+ }