@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,124 @@
1
+ import { type AdwAdjustment, type AdwAdjustmentInput, type BoxOrientation } from '@gjsify/adwaita-core';
2
+ /** `GtkScrollType`'s six kinds, which is what a `scroll-child` names. */
3
+ export type GtkScrollType = 'step-backward' | 'step-forward' | 'page-backward' | 'page-forward' | 'start' | 'end';
4
+ export declare class GtkScrollbar extends HTMLElement {
5
+ private _trough;
6
+ private _slider;
7
+ private _observer;
8
+ private _built;
9
+ private _adjustment;
10
+ /** `priv->slide_initial_slider_position` — the slider's position when the drag began. */
11
+ private _grabPosition;
12
+ /** `priv->slide_initial_coordinate_delta` — how far into the slider the pointer was. */
13
+ private _grabDelta;
14
+ /** `priv->zoom` — the fine adjustment, `.fine-tune` and all. */
15
+ private _zoom;
16
+ private _dragging;
17
+ static get observedAttributes(): string[];
18
+ /** `GtkOrientable:orientation` — HORIZONTAL in `gtk_scrollbar_init`; unknown is that. */
19
+ get orientation(): BoxOrientation;
20
+ set orientation(value: BoxOrientation);
21
+ /**
22
+ * `GtkScrollbar:adjustment` — the range this bar moves, as the portable value.
23
+ *
24
+ * NEVER `null`, which is the half of this property that is easy to get wrong: GTK's
25
+ * pspec default is NULL, but `gtk_range_set_adjustment` answers a NULL with the ZERO
26
+ * adjustment (gtkrange.c:687-688) and `gtk_range_get_adjustment` creates it on demand
27
+ * (gtkrange.c:658-659), so a bare `GtkScrollbar` reads back a real adjustment whose
28
+ * `upper` is 0. A read that could return null would be a property GTK's own does not
29
+ * have, and the slider geometry would have to carry a second "nothing here" case.
30
+ *
31
+ * A string is read as the JSON the attribute carries, so the property and the
32
+ * attribute are one write; a partial object MERGES, which is
33
+ * `gtk_adjustment_configure`'s own contract (gtkadjustment.c). Assigning `null` is
34
+ * `gtk_scrollbar_set_adjustment (self, NULL)`: the zero adjustment again, and the
35
+ * property is assigned rather than merged.
36
+ */
37
+ get adjustment(): AdwAdjustment;
38
+ set adjustment(value: AdwAdjustmentInput | string | null);
39
+ /** The position, which is the adjustment's own value (gtkrange.c:1168-1176). */
40
+ get value(): number;
41
+ /**
42
+ * `gtk_adjustment_set_value`: move the range, clamped, and announce it.
43
+ *
44
+ * A scrollbar is a VIEW of an adjustment it does not own, so the `value-changed`
45
+ * CustomEvent (bubbles, detail `{ adjustment }`) stands for `GtkAdjustment`'s signal —
46
+ * and `<gtk-scrolled-window>` is what listens, exactly as GTK reads the adjustment off
47
+ * the scrollbar it owns (`gtk_scrolled_window_scroll_child`, gtkscrolledwindow.c:3007).
48
+ *
49
+ * Over the zero adjustment `set_value` CLAMPS to 0 and reports no change, so a bar with
50
+ * no adjustment of its own is inert without being a special case anywhere.
51
+ */
52
+ set value(value: number);
53
+ /**
54
+ * The value one `GtkScrollType` moves by, which is `gtk_scrolled_window_scroll_child`'s
55
+ * switch.
56
+ *
57
+ * `scrollBy` is a platform method with a delta form, so both are here and the KIND of the
58
+ * argument decides — a `GtkScrollType` nick moves the adjustment, a number or a
59
+ * `ScrollToOptions` is the scrollport's own call, which a bar has none of (it is not a
60
+ * scrollport) and which therefore lands on no adjustment and does nothing.
61
+ */
62
+ scrollBy(kind: GtkScrollType): void;
63
+ scrollBy(options?: ScrollToOptions): void;
64
+ scrollBy(x: number, y: number): void;
65
+ /** How far a wheel detent moves the value: `scroll_delta_to_value` on a WHEEL unit. */
66
+ scrollByWheel(deltaY: number, deltaMode: number): void;
67
+ /**
68
+ * `gtk_range_get_range_area`-ish: the length of the trough, which is what the slider
69
+ * is a fraction of. Read on demand so a caller can scale with the same numbers.
70
+ */
71
+ private get _troughLength();
72
+ connectedCallback(): void;
73
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
74
+ private _notify;
75
+ /**
76
+ * The trough's three rules and the slider's drag, at the settings default
77
+ * (`gtk_range_click_gesture_pressed`, gtkrange.c:2018-2138).
78
+ */
79
+ private _onPointerDown;
80
+ /**
81
+ * `update_slider_position`: the pointer's travel since the grab, scaled by the zoom,
82
+ * added to where the slider WAS — so the slider keeps the offset it was grabbed at.
83
+ */
84
+ private _onPointerMove;
85
+ private _onPointerEnd;
86
+ private _endDrag;
87
+ /**
88
+ * Keep the gesture alive past the bar's own edges, which is what `GtkGestureDrag` does
89
+ * upstream for as long as the button is held.
90
+ *
91
+ * `setPointerCapture` THROWS for a pointer id the platform is no longer tracking, and an
92
+ * exception here would abort the gesture before the warp or the page that follows it —
93
+ * which is not a state a scrollbar can be in. So a refused capture is a drag that ends at
94
+ * the bar's edge, and the synchronous move still happens.
95
+ */
96
+ private _capture;
97
+ /** The keys `GtkScrollbar`'s own doc names: the arrow keys step, Page Up/Down page. */
98
+ private _onKeyDown;
99
+ private _onWheel;
100
+ private _setZoom;
101
+ /** `update_slider_position`'s zoom: the trough per unit of range, or the fallback. */
102
+ private _zoomFactor;
103
+ /**
104
+ * `gtk_range_compute_slider_position`, in CSS pixels.
105
+ *
106
+ * The slider's length is a fraction of the WHOLE adjustment range and its position a
107
+ * fraction of the SCROLLABLE one, which is why the two denominators differ and why
108
+ * neither is a plain percentage of the trough. A range with nothing to scroll is the
109
+ * `trough_length == slider_length` case upstream and answers 1.0.
110
+ */
111
+ private _render;
112
+ /** Where the slider's START is along the trough, in pixels. */
113
+ private _sliderPosition;
114
+ /** The slider's own length, in pixels, from the last layout. */
115
+ private _sliderSize;
116
+ /**
117
+ * `coord_to_value` (gtkrange.c:1842-1886): a coordinate along the trough scaled by the
118
+ * FREE space — the trough less the slider — because the slider's centre has to reach
119
+ * both ends and not one of them twice over.
120
+ */
121
+ private _coordinateValue;
122
+ /** The pointer's coordinate along the trough, from the trough's own box. */
123
+ private _coordinate;
124
+ }
@@ -0,0 +1,129 @@
1
+ import type { GtkViewport } from './gtk-viewport.js';
2
+ /** `GtkPolicyType`'s four nicks; `automatic` is the pspec's default for both bars. */
3
+ export type GtkPolicyType = 'always' | 'never' | 'automatic' | 'external';
4
+ /** `GtkCornerType`'s four corners, `top-left` being the pspec's default. */
5
+ export type GtkCornerType = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
6
+ /** `Gtk.PositionType`'s four edges, as `edge-reached` and `edge-overshot` name them. */
7
+ export type GtkPositionType = 'left' | 'right' | 'top' | 'bottom';
8
+ /** `Gtk.DirectionType`'s two, as `move-focus-out` names them. */
9
+ export type GtkDirectionType = 'forward' | 'backward';
10
+ export declare class GtkScrolledWindow extends HTMLElement {
11
+ private _viewport;
12
+ private _bars;
13
+ /** The size clamps `_writeSize` last wrote, which are the only ones it may clear. */
14
+ private readonly _wroteSizes;
15
+ private _shading;
16
+ private _observer;
17
+ private _hoverable;
18
+ private _fadeTimer;
19
+ private _built;
20
+ static get observedAttributes(): string[];
21
+ /** `GtkScrolledWindow:hscrollbar-policy` — `automatic` in the pspec. */
22
+ get hscrollbarPolicy(): GtkPolicyType;
23
+ set hscrollbarPolicy(value: GtkPolicyType);
24
+ /** `GtkScrolledWindow:vscrollbar-policy` — `automatic` in the pspec. */
25
+ get vscrollbarPolicy(): GtkPolicyType;
26
+ set vscrollbarPolicy(value: GtkPolicyType);
27
+ /** `GtkScrolledWindow:window-placement` — where the contents sit against the bars. */
28
+ get windowPlacement(): GtkCornerType;
29
+ set windowPlacement(value: GtkCornerType);
30
+ /** `GtkScrolledWindow:has-frame` — the `.frame` style class on the node, and nothing more. */
31
+ get hasFrame(): boolean;
32
+ set hasFrame(value: boolean);
33
+ /** `GtkScrolledWindow:overlay-scrolling` — TRUE in the pspec, and unknown is that. */
34
+ get overlayScrolling(): boolean;
35
+ set overlayScrolling(value: boolean);
36
+ /** `GtkScrolledWindow:min-content-width`, in px, or `null` for the pspec's -1. */
37
+ get minContentWidth(): number | null;
38
+ set minContentWidth(value: number | null);
39
+ /** `GtkScrolledWindow:min-content-height`, in px, or `null` for the pspec's -1. */
40
+ get minContentHeight(): number | null;
41
+ set minContentHeight(value: number | null);
42
+ /** `GtkScrolledWindow:max-content-width`, in px, or `null` for the pspec's -1. */
43
+ get maxContentWidth(): number | null;
44
+ set maxContentWidth(value: number | null);
45
+ /** `GtkScrolledWindow:max-content-height`, in px, or `null` for the pspec's -1. */
46
+ get maxContentHeight(): number | null;
47
+ set maxContentHeight(value: number | null);
48
+ /** `GtkScrolledWindow:propagate-natural-width` — FALSE in the pspec, so absent is that. */
49
+ get propagateNaturalWidth(): boolean;
50
+ set propagateNaturalWidth(value: boolean);
51
+ /** `GtkScrolledWindow:propagate-natural-height` — FALSE in the pspec, so absent is that. */
52
+ get propagateNaturalHeight(): boolean;
53
+ set propagateNaturalHeight(value: boolean);
54
+ /**
55
+ * `gtk_scrolled_window_get_hscrollbar` / `get_vscrollbar`, as METHODS and not getters.
56
+ *
57
+ * `connect-lifecycle.spec.ts` reads a get-only accessor returning an element as an
58
+ * invitation to append into it, and a scrollbar that is not visible is not an append
59
+ * point — which is the whole of what a getter here would be asking for.
60
+ */
61
+ hscrollbar(): HTMLElement | null;
62
+ vscrollbar(): HTMLElement | null;
63
+ /** The `<gtk-viewport>` the child sits in — the one GTK's `set_child` builds for itself. */
64
+ get viewport(): GtkViewport;
65
+ connectedCallback(): void;
66
+ disconnectedCallback(): void;
67
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
68
+ /** The NORMALISED value a notify carries, which is the property and not the raw attribute. */
69
+ private _normalized;
70
+ private _writeSizeRequest;
71
+ /**
72
+ * `priv->use_indicators` — the AND of the property with the `gtk-overlay-scrolling`
73
+ * setting, whose browser spelling is whether a pointer that can hover exists at all.
74
+ */
75
+ private get _useIndicators();
76
+ /** Everything the pspec's own state decides: the classes, the bars, the sizes. */
77
+ private _sync;
78
+ /**
79
+ * One of the four clamps as inline style. An unwritten clamp clears only what THIS element
80
+ * wrote: `min-width` / `min-height` are also where a tree's `width-request` /
81
+ * `height-request` land (`GTK_WIDGET_SIZE_CSS`), and assigning '' unconditionally erased it.
82
+ * Where both are set the content clamp wins, which is the one the widget measures itself.
83
+ */
84
+ private _writeSize;
85
+ /** The viewport's adjustment for one axis, which is where GTK reads the scrollbar's. */
86
+ private _adjustment;
87
+ /**
88
+ * `may_hscroll` / `may_vscroll`: a bar that is DRAWN, or an EXTERNAL policy, which is a
89
+ * scrollbar this window does not show but can still be driven with.
90
+ */
91
+ private _mayScroll;
92
+ /**
93
+ * The viewport moved: hand the position to the bars, ask whether an edge was REACHED
94
+ * (`maybe_emit_edge_reached` fires whenever the adjustment lands exactly on `lower` or
95
+ * `upper - page_size`, gtkscrolledwindow.c:3629-3661) and fade the indicators in.
96
+ */
97
+ private _onViewportValue;
98
+ /**
99
+ * A bar moved: move the scrollport. GTK's direction is the other way round — the
100
+ * adjustment belongs to the scrollbar and the scrolled window reads it — which is why
101
+ * the bar is given the adjustment here instead of owning it: the numbers are the same
102
+ * either way, and one writer per side is what keeps them from fighting.
103
+ */
104
+ private _onBarValue;
105
+ private _edgeReached;
106
+ /**
107
+ * `_gtk_scrolled_window_set_adjustment_value`'s `EDGE_OVERSHOT`, from the shading
108
+ * controller's unclamped position: negative is the near edge, positive the far one,
109
+ * and `0` is the settled case the C returns without emitting — it is the value CLAMPED
110
+ * to `lower - MAX_OVERSHOOT_DISTANCE` and `upper - page_size + MAX_OVERSHOOT_DISTANCE`
111
+ * that the signal compares (gtkscrolledwindow.c:3306-3352).
112
+ */
113
+ private _edgeOvershot;
114
+ /** The keys of `gtk_scrolled_window_class_init`, and the two signals they emit. */
115
+ private _onKeyDown;
116
+ /**
117
+ * `indicator_start_fade(indicator, 1.0)` on every value change, and
118
+ * `maybe_hide_indicator`'s check `INDICATOR_FADE_OUT_DELAY` after the last one — a poll
119
+ * upstream, one timer here, and `!indicator->over` is the `.hovering` class (a pointer
120
+ * over the indicator holds it open).
121
+ */
122
+ private _fadeIn;
123
+ private _fadeOut;
124
+ private _clearFade;
125
+ private _onIndicatorOver;
126
+ private _onIndicatorOut;
127
+ private _onHoverableChange;
128
+ private _releaseHoverable;
129
+ }
@@ -0,0 +1,39 @@
1
+ export declare class GtkSearchBar extends HTMLElement {
2
+ private _box;
3
+ private _center;
4
+ private _close;
5
+ private _initialized;
6
+ private _capture;
7
+ private readonly _onCapturedKey;
8
+ private readonly _onInput;
9
+ static get observedAttributes(): string[];
10
+ /** `Gtk.SearchBar:search-mode-enabled` — the revealer's `reveal-child`. Defaults FALSE. */
11
+ get searchModeEnabled(): boolean;
12
+ set searchModeEnabled(value: boolean);
13
+ /** `Gtk.SearchBar:show-close-button` — the `.close` button at the end of the box. */
14
+ get showCloseButton(): boolean;
15
+ set showCloseButton(value: boolean);
16
+ /** `Gtk.SearchBar:key-capture-widget` — where printable keys start a search. */
17
+ get keyCaptureWidget(): HTMLElement | null;
18
+ set keyCaptureWidget(widget: HTMLElement | null);
19
+ /** The editable the C's `connect_entry` would have bound: the first field inside the bar. */
20
+ get entry(): HTMLInputElement | HTMLTextAreaElement | null;
21
+ connectedCallback(): void;
22
+ disconnectedCallback(): void;
23
+ attributeChangedCallback(name: string, _old: string | null, _value: string | null): void;
24
+ private _render;
25
+ /**
26
+ * `reveal_child_changed_cb` (gtksearchbar.c:183-205): revealing focuses the entry,
27
+ * hiding clears it. Run on a real CHANGE only — at init the C's own notify fires before
28
+ * the handler is connected, so a child that arrives with the bar is left alone.
29
+ */
30
+ private _applyReveal;
31
+ private _revealFromTyping;
32
+ /**
33
+ * The key-capture path (gtksearchbar.c:525-556): a printable key on the capture widget
34
+ * opens the bar and goes into the entry, which is what forwarding the event does in the C.
35
+ * Modified keys and the functional keys are left alone — GTK forwards them, but a bar
36
+ * that opened on every arrow key would not be a search bar.
37
+ */
38
+ private _captureKey;
39
+ }
@@ -0,0 +1,27 @@
1
+ import { GtkEntry } from './gtk-entry.js';
2
+ export declare class GtkSearchEntry extends GtkEntry {
3
+ private _searchIcon;
4
+ private _clear;
5
+ private _clearIcon;
6
+ private _timeout;
7
+ static get observedAttributes(): string[];
8
+ /** `GtkSearchEntry:search-delay` — ms from the last keypress to `search-changed`. */
9
+ get searchDelay(): number;
10
+ set searchDelay(value: number);
11
+ /** Whether there is text, which is what decides the two icons. */
12
+ private get _empty();
13
+ connectedCallback(): void;
14
+ attributeChangedCallback(name: string, oldValue: string | null, value: string | null): void;
15
+ disconnectedCallback(): void;
16
+ /**
17
+ * `gtk_search_entry_changed` (gtksearchentry.c:776-803) over `reset_timeout`.
18
+ *
19
+ * Empty is immediate and cancels; non-empty replaces the queue. `clearTimeout` before
20
+ * arming is `reset_timeout`'s `g_source_remove`, and without it two keystrokes would
21
+ * fire the signal twice.
22
+ */
23
+ private _onChanged;
24
+ private _cancel;
25
+ private _onKeyDown;
26
+ private _render;
27
+ }
@@ -0,0 +1,10 @@
1
+ import { type BoxOrientation } from '@gjsify/adwaita-core';
2
+ export declare class GtkSeparator extends HTMLElement {
3
+ static get observedAttributes(): string[];
4
+ /** `GtkOrientable:orientation` — `horizontal` (the default) or `vertical`. */
5
+ get orientation(): BoxOrientation;
6
+ set orientation(value: BoxOrientation);
7
+ connectedCallback(): void;
8
+ attributeChangedCallback(): void;
9
+ private _render;
10
+ }
@@ -0,0 +1,94 @@
1
+ import type { AdwAdjustment, AdwAdjustmentInput } from '@gjsify/adwaita-core';
2
+ /** `Gtk.SpinButtonUpdatePolicy` nicks; `always` is the pspec default (gtkspinbutton.c:472-475). */
3
+ declare const UPDATE_POLICIES: readonly ["always", "if-valid"];
4
+ export declare class GtkSpinButton extends HTMLElement {
5
+ private readonly _range;
6
+ private _input;
7
+ private _down;
8
+ private _up;
9
+ private _initialized;
10
+ private _edited;
11
+ /** The orientation the children are CURRENTLY arranged for — see `_render`. */
12
+ private _vertical;
13
+ private _initialTimer;
14
+ private _repeatTimer;
15
+ private _timerCalls;
16
+ private _timerStep;
17
+ static get observedAttributes(): string[];
18
+ /** The numeric range — `Gtk.SpinButton:adjustment`, as the portable value. Writes MERGE. */
19
+ get adjustment(): AdwAdjustment;
20
+ set adjustment(value: AdwAdjustmentInput | string);
21
+ /** `Gtk.SpinButton:value` — always inside `adjustmentRange`. */
22
+ get value(): number;
23
+ set value(v: number);
24
+ /** `Gtk.SpinButton:digits` — `gtk_spin_button_init` starts it at 0. */
25
+ get digits(): number;
26
+ set digits(value: number);
27
+ /** `Gtk.SpinButton:numeric` — "whether non-numeric characters should be ignored". */
28
+ get numeric(): boolean;
29
+ set numeric(value: boolean);
30
+ /** `Gtk.SpinButton:snap-to-ticks`. */
31
+ get snapToTicks(): boolean;
32
+ set snapToTicks(value: boolean);
33
+ /** `Gtk.SpinButton:wrap` — whether the value wraps at either bound. */
34
+ get wrap(): boolean;
35
+ set wrap(value: boolean);
36
+ /** `Gtk.SpinButton:update-policy` — `always` (the default) or `if-valid`. */
37
+ get updatePolicy(): (typeof UPDATE_POLICIES)[number];
38
+ set updatePolicy(value: (typeof UPDATE_POLICIES)[number]);
39
+ /** `Gtk.SpinButton:climb-rate` — the acceleration of a held arrow. */
40
+ get climbRate(): number;
41
+ set climbRate(value: number);
42
+ /** The inner text node, for a consumer that needs to place a caret in it. */
43
+ get text(): HTMLInputElement;
44
+ connectedCallback(): void;
45
+ attributeChangedCallback(name: string): void;
46
+ /**
47
+ * `gtk_spin_button_real_spin` (gtkspinbutton.c:1666-1711), the whole of it: the two wrap
48
+ * branches, the two clamp branches and the `wrapped` signal.
49
+ *
50
+ * The clamp itself is `SpinState`'s; what is here is that `wrap` REPLACES it, which is
51
+ * why this is a method and not `increment()`/`decrement()` on the core state.
52
+ */
53
+ private _spin;
54
+ /**
55
+ * `gtk_spin_button_update` (gtkspinbutton.c:1795-1832) over
56
+ * `gtk_spin_button_default_input` (gtkspinbutton.c:1673-1752).
57
+ *
58
+ * `update-policy` is the two branches that decide what a bad entry does: `always`
59
+ * clamps, `if-valid` leaves the field ALONE and re-formats the committed value — which
60
+ * is the `value_changed` call plus the early return C does at :1820-1824.
61
+ */
62
+ private _update;
63
+ private _commit;
64
+ /**
65
+ * `gtk_spin_button_insert_text`'s `numeric` filter (gtkspinbutton.c:1589-1649), applied to
66
+ * the field's whole text rather than to one insertion — a browser input hands over the
67
+ * result, not the keystroke. The three refusals C has are the three here: a sign after
68
+ * the first character, a decimal point when `digits` is 0 or one is already there, and
69
+ * anything that is not a digit.
70
+ */
71
+ private _rejectNonNumeric;
72
+ /** A refused character drops the WHOLE edit and restores the formatted value, as C does. */
73
+ private _resetText;
74
+ /**
75
+ * The held-arrow repeat, `gtk_spin_button_timer` (gtkspinbutton.c:1374-1407) with the
76
+ * two constants that shape it.
77
+ *
78
+ * The ramp is C's exactly: the step grows by `climb-rate` once every `MAX_TIMER_CALLS`
79
+ * ticks, and only while it is still below `page-increment`.
80
+ */
81
+ private _hold;
82
+ private _tick;
83
+ private _stopHold;
84
+ /**
85
+ * The keys `GtkSpinButton` takes on the entry (gtkspinbutton.c:1495-1525): the arrows and
86
+ * Page Up/Down move by the step and the page, and the vertical pair is bound on the
87
+ * SCROLL controller rather than the keyboard — which is the same "arrows step whatever way
88
+ * the widget runs" rule `GtkScale` states in its own words.
89
+ */
90
+ private _onKeyDown;
91
+ private _formatted;
92
+ private _render;
93
+ }
94
+ export {};
@@ -0,0 +1,14 @@
1
+ export declare class GtkSpinner extends HTMLElement {
2
+ private _initialized;
3
+ static get observedAttributes(): string[];
4
+ /** `Gtk.Spinner:spinning` — whether the animation runs. Defaults to FALSE (:338-340). */
5
+ get spinning(): boolean;
6
+ set spinning(v: boolean);
7
+ /** `gtk_spinner_start` (gtkspinner.c:373-383): spin, and announce the busy state. */
8
+ start(): void;
9
+ /** `gtk_spinner_stop` (gtkspinner.c:391-400). */
10
+ stop(): void;
11
+ connectedCallback(): void;
12
+ attributeChangedCallback(name: string): void;
13
+ private _render;
14
+ }
@@ -0,0 +1,43 @@
1
+ import type { GtkStack } from './gtk-stack.js';
2
+ export declare class GtkStackSidebar extends HTMLElement {
3
+ private _stack;
4
+ private _list;
5
+ private _initialized;
6
+ private _rows;
7
+ private readonly _onStackChange;
8
+ static get observedAttributes(): string[];
9
+ /** `Gtk.StackSidebar:stack` — the stack this sidebar drives, or null. */
10
+ get stack(): GtkStack | null;
11
+ set stack(value: GtkStack | string | null);
12
+ /** Rebuild the rows by hand, for a consumer that mutated a page in place. */
13
+ refresh(): void;
14
+ connectedCallback(): void;
15
+ disconnectedCallback(): void;
16
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
17
+ /** Bind to a stack element (or null). Unbinds the previous one, as `set_stack` does. */
18
+ setStack(stack: GtkStack | null): void;
19
+ private _resolve;
20
+ private _bindStack;
21
+ private _unbindStack;
22
+ private _pages;
23
+ /**
24
+ * `update_row`'s visibility rule (gtkstacksidebar.c:186): the page is visible AND
25
+ * carries a title. There is no icon fallback — `update_row` never reads `icon-name`,
26
+ * which is the one rule where this sidebar and the switcher disagree.
27
+ */
28
+ private _visible;
29
+ private _selectedIndex;
30
+ /**
31
+ * An `items-changed` rebuilds the list wholesale (gtkstacksidebar.c:307-311) and a
32
+ * `selection-changed` does not (:317-338), so the rows are recreated ONLY when the
33
+ * page COUNT moves.
34
+ */
35
+ private _rebuild;
36
+ private _buildRow;
37
+ /**
38
+ * `gtk_stack_sidebar_row_selected` (gtkstacksidebar.c:130-143): a selected row
39
+ * selects its page. An UNSELECTION is not driven from here — the model is the
40
+ * authority, exactly as in the switcher.
41
+ */
42
+ private _onRowActivated;
43
+ }
@@ -0,0 +1,58 @@
1
+ import { type BoxOrientation } from '@gjsify/adwaita-core';
2
+ import type { GtkStack } from './gtk-stack.js';
3
+ export declare class GtkStackSwitcher extends HTMLElement {
4
+ private _stack;
5
+ private _initialized;
6
+ private _nodes;
7
+ private readonly _onStackChange;
8
+ static get observedAttributes(): string[];
9
+ /** `Gtk.StackSwitcher:stack` — the stack this switcher drives, or null. */
10
+ get stack(): GtkStack | null;
11
+ set stack(value: GtkStack | string | null);
12
+ /** `GtkOrientable:orientation` (gtkstackswitcher.c:47). */
13
+ get orientation(): BoxOrientation;
14
+ set orientation(v: BoxOrientation);
15
+ /**
16
+ * Rebuild the buttons by hand, for a consumer that mutated a page in place. Not
17
+ * the only path: the stack emits `page-updated` and `items-changed`, and this
18
+ * element binds both, which is the mechanism C uses (`:311-321`, `:347-355`).
19
+ */
20
+ refresh(): void;
21
+ connectedCallback(): void;
22
+ disconnectedCallback(): void;
23
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
24
+ /** Bind to a stack element (or null). Unbinds the previous one, as `set_stack` does. */
25
+ setStack(stack: GtkStack | null): void;
26
+ private _resolve;
27
+ private _bindStack;
28
+ private _unbindStack;
29
+ /**
30
+ * A button is visible when its page is visible AND the page carries a title or an
31
+ * icon (gtkstackswitcher.c:200). `visible` false must hide the row, and an absent
32
+ * title with no icon leaves the button childless — `rebuild_child` builds nothing
33
+ * for it (`:158-176`).
34
+ */
35
+ private _visible;
36
+ /**
37
+ * The pages, in the order the stack holds them. A stack that is not upgraded has no
38
+ * `pages` getter, which is why it is read defensively.
39
+ */
40
+ private _pages;
41
+ /** Which page the stack has selected, by position, `-1` for none. */
42
+ private _selectedIndex;
43
+ /**
44
+ * `items_changed_cb` rebuilds everything (gtkstackswitcher.c:347-355) and a
45
+ * `selection_changed_cb` does not — so the nodes are recreated ONLY when the page
46
+ * COUNT moves, and a selection change re-marks them in place (:359-381). Replacing
47
+ * a button mid-interaction would also drop keyboard focus.
48
+ */
49
+ private _rebuild;
50
+ private _buildButton;
51
+ private _onToggled;
52
+ /**
53
+ * The orientation attribute is the GIR property's own spelling (gtkstackswitcher.c:47)
54
+ * and the stylesheet selects on it directly, so there is nothing to mirror onto a
55
+ * second attribute; this hook exists so the render pass has one entry point.
56
+ */
57
+ private _render;
58
+ }