@gjsify/adwaita-web 0.64.1 → 0.64.2-next.254

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 (335) hide show
  1. package/README.md +22 -88
  2. package/dist/adwaita-web.css +91 -12
  3. package/dist/adwaita-web.css.map +1 -1
  4. package/lib/types/accessible.d.ts +8 -0
  5. package/lib/types/application.d.ts +1 -1
  6. package/lib/types/child-slot.spec.d.ts +1 -0
  7. package/lib/types/compute-expand.d.ts +5 -0
  8. package/lib/types/compute-expand.spec.d.ts +1 -0
  9. package/lib/types/container-fill.spec.d.ts +1 -0
  10. package/lib/types/elements/adw-about-dialog.d.ts +28 -1
  11. package/lib/types/elements/adw-action-row.d.ts +2 -1
  12. package/lib/types/elements/adw-alert-dialog.d.ts +80 -19
  13. package/lib/types/elements/adw-avatar.d.ts +2 -1
  14. package/lib/types/elements/adw-banner.d.ts +2 -1
  15. package/lib/types/elements/adw-bin.d.ts +2 -1
  16. package/lib/types/elements/adw-bottom-sheet.d.ts +5 -4
  17. package/lib/types/elements/adw-breakpoint-bin.d.ts +2 -1
  18. package/lib/types/elements/adw-button-content.d.ts +2 -1
  19. package/lib/types/elements/adw-button-row.d.ts +2 -1
  20. package/lib/types/elements/adw-card.d.ts +2 -1
  21. package/lib/types/elements/adw-carousel.d.ts +20 -3
  22. package/lib/types/elements/adw-clamp-scrollable.d.ts +2 -1
  23. package/lib/types/elements/adw-clamp.d.ts +2 -1
  24. package/lib/types/elements/adw-combo-row.d.ts +6 -1
  25. package/lib/types/elements/adw-data-grid.d.ts +2 -1
  26. package/lib/types/elements/adw-dialog.d.ts +2 -1
  27. package/lib/types/elements/adw-entry-row.d.ts +2 -1
  28. package/lib/types/elements/adw-expander-row.d.ts +2 -1
  29. package/lib/types/elements/adw-header-bar.d.ts +2 -1
  30. package/lib/types/elements/adw-inline-view-switcher.d.ts +3 -2
  31. package/lib/types/elements/adw-layout-slot.d.ts +2 -1
  32. package/lib/types/elements/adw-multi-layout-view.d.ts +2 -1
  33. package/lib/types/elements/adw-navigation-split-view.d.ts +2 -1
  34. package/lib/types/elements/adw-navigation-view.d.ts +3 -2
  35. package/lib/types/elements/adw-overlay-split-view.d.ts +2 -1
  36. package/lib/types/elements/adw-preferences-dialog.d.ts +5 -4
  37. package/lib/types/elements/adw-preferences-group.d.ts +2 -1
  38. package/lib/types/elements/adw-preferences-row.d.ts +2 -1
  39. package/lib/types/elements/adw-shortcut-label.d.ts +2 -1
  40. package/lib/types/elements/adw-shortcuts-item.d.ts +2 -1
  41. package/lib/types/elements/adw-shortcuts-section.d.ts +2 -1
  42. package/lib/types/elements/adw-sidebar.d.ts +4 -3
  43. package/lib/types/elements/adw-spin-row.d.ts +2 -1
  44. package/lib/types/elements/adw-spinner.d.ts +2 -1
  45. package/lib/types/elements/adw-split-button.d.ts +2 -1
  46. package/lib/types/elements/adw-status-page.d.ts +2 -1
  47. package/lib/types/elements/adw-switch-row.d.ts +4 -1
  48. package/lib/types/elements/adw-tab-bar.d.ts +2 -1
  49. package/lib/types/elements/adw-tab-button.d.ts +2 -1
  50. package/lib/types/elements/adw-tab-overview.d.ts +2 -1
  51. package/lib/types/elements/adw-tab-view.d.ts +3 -2
  52. package/lib/types/elements/adw-toast-overlay.d.ts +10 -30
  53. package/lib/types/elements/adw-toggle-group.d.ts +3 -2
  54. package/lib/types/elements/adw-toolbar-view.d.ts +2 -1
  55. package/lib/types/elements/adw-view-stack.d.ts +3 -1
  56. package/lib/types/elements/adw-view-switcher-bar.d.ts +2 -1
  57. package/lib/types/elements/adw-view-switcher-sidebar.d.ts +2 -1
  58. package/lib/types/elements/adw-view-switcher.d.ts +3 -2
  59. package/lib/types/elements/adw-window-features.d.ts +8 -0
  60. package/lib/types/elements/adw-window-title.d.ts +2 -1
  61. package/lib/types/elements/adw-wrap-box.d.ts +2 -1
  62. package/lib/types/elements/checks.d.ts +16 -1
  63. package/lib/types/elements/gtk-action-bar.d.ts +2 -1
  64. package/lib/types/elements/gtk-application-window.d.ts +1 -4
  65. package/lib/types/elements/gtk-aspect-frame.d.ts +2 -1
  66. package/lib/types/elements/gtk-box.d.ts +5 -1
  67. package/lib/types/elements/gtk-button.d.ts +5 -7
  68. package/lib/types/elements/gtk-calendar.d.ts +2 -1
  69. package/lib/types/elements/gtk-center-box.d.ts +2 -1
  70. package/lib/types/elements/gtk-color-dialog-button.d.ts +2 -1
  71. package/lib/types/elements/gtk-drag-icon.d.ts +2 -1
  72. package/lib/types/elements/gtk-drawing-area.d.ts +2 -1
  73. package/lib/types/elements/gtk-drop-down.d.ts +2 -1
  74. package/lib/types/elements/gtk-editable-label.d.ts +2 -1
  75. package/lib/types/elements/gtk-emoji-chooser.d.ts +2 -0
  76. package/lib/types/elements/gtk-entry.d.ts +2 -1
  77. package/lib/types/elements/gtk-expander.d.ts +2 -1
  78. package/lib/types/elements/gtk-fixed.d.ts +2 -1
  79. package/lib/types/elements/gtk-flow-box-child.d.ts +2 -1
  80. package/lib/types/elements/gtk-flow-box.d.ts +2 -1
  81. package/lib/types/elements/gtk-font-dialog-button.d.ts +2 -1
  82. package/lib/types/elements/gtk-frame.d.ts +2 -1
  83. package/lib/types/elements/gtk-gl-area.d.ts +2 -1
  84. package/lib/types/elements/gtk-graphics-offload.d.ts +2 -1
  85. package/lib/types/elements/gtk-grid.d.ts +2 -1
  86. package/lib/types/elements/gtk-header-bar.d.ts +2 -1
  87. package/lib/types/elements/gtk-image.d.ts +5 -6
  88. package/lib/types/elements/gtk-inscription.d.ts +2 -1
  89. package/lib/types/elements/gtk-label.d.ts +10 -3
  90. package/lib/types/elements/gtk-level-bar.d.ts +2 -1
  91. package/lib/types/elements/gtk-list-box-row.d.ts +2 -1
  92. package/lib/types/elements/gtk-list-box.d.ts +2 -1
  93. package/lib/types/elements/gtk-list-view.d.ts +2 -1
  94. package/lib/types/elements/gtk-media-controls.d.ts +2 -1
  95. package/lib/types/elements/gtk-menu-button.d.ts +2 -1
  96. package/lib/types/elements/gtk-notebook.d.ts +2 -1
  97. package/lib/types/elements/gtk-overlay.d.ts +2 -1
  98. package/lib/types/elements/gtk-paned.d.ts +2 -1
  99. package/lib/types/elements/gtk-picture.d.ts +2 -1
  100. package/lib/types/elements/gtk-popover-bin.d.ts +2 -1
  101. package/lib/types/elements/gtk-popover-menu-bar.d.ts +2 -1
  102. package/lib/types/elements/gtk-popover-menu.d.ts +2 -0
  103. package/lib/types/elements/gtk-popover.d.ts +7 -1
  104. package/lib/types/elements/gtk-progress-bar.d.ts +2 -1
  105. package/lib/types/elements/gtk-revealer.d.ts +2 -1
  106. package/lib/types/elements/gtk-scale-button.d.ts +2 -1
  107. package/lib/types/elements/gtk-scale.d.ts +2 -1
  108. package/lib/types/elements/gtk-scrollbar.d.ts +2 -1
  109. package/lib/types/elements/gtk-scrolled-window.d.ts +2 -1
  110. package/lib/types/elements/gtk-search-bar.d.ts +2 -1
  111. package/lib/types/elements/gtk-separator.d.ts +2 -1
  112. package/lib/types/elements/gtk-spin-button.d.ts +2 -1
  113. package/lib/types/elements/gtk-spinner.d.ts +2 -1
  114. package/lib/types/elements/gtk-stack-page.d.ts +29 -0
  115. package/lib/types/elements/gtk-stack-sidebar.d.ts +2 -1
  116. package/lib/types/elements/gtk-stack-switcher.d.ts +2 -1
  117. package/lib/types/elements/gtk-stack.d.ts +13 -1
  118. package/lib/types/elements/gtk-switch.d.ts +2 -1
  119. package/lib/types/elements/gtk-text-view.d.ts +2 -1
  120. package/lib/types/elements/gtk-text.d.ts +2 -1
  121. package/lib/types/elements/gtk-tree-expander.d.ts +2 -1
  122. package/lib/types/elements/gtk-video.d.ts +2 -1
  123. package/lib/types/elements/gtk-viewport.d.ts +2 -1
  124. package/lib/types/elements/gtk-window-controls.d.ts +2 -1
  125. package/lib/types/elements/gtk-window-handle.d.ts +2 -1
  126. package/lib/types/elements/gtk-window.d.ts +18 -2
  127. package/lib/types/gobject-elements.d.ts +15 -0
  128. package/lib/types/gtksource/gtk-source-view.d.ts +2 -1
  129. package/lib/types/{icon-registry.spec.d.ts → icon-masks.spec.d.ts} +1 -1
  130. package/lib/types/icon-theme.d.ts +15 -35
  131. package/lib/types/index.d.ts +3 -4
  132. package/lib/types/learn6502-window.spec.d.ts +1 -0
  133. package/lib/types/namespace/adw.d.ts +1 -1
  134. package/lib/types/namespace/gdk.d.ts +1 -0
  135. package/lib/types/namespace/gio.d.ts +1 -0
  136. package/lib/types/namespace/glib.d.ts +2 -1
  137. package/lib/types/namespace/gtk.d.ts +2 -0
  138. package/lib/types/shared-tree-builder.d.ts +31 -0
  139. package/lib/types/signals.d.ts +5 -1
  140. package/lib/types/source-view/adw-source-view.d.ts +2 -1
  141. package/lib/types/styles.generated.d.ts +1 -1
  142. package/lib/types/widget-element.d.ts +25 -0
  143. package/lib/types/widget-map.spec.d.ts +1 -0
  144. package/lib/types/widget-mapping.d.ts +7 -0
  145. package/lib/types/widget-visible.spec.d.ts +1 -0
  146. package/lib/types/window-maximize.spec.d.ts +1 -0
  147. package/package.json +13 -12
  148. package/scss/_about_dialog.scss +46 -1
  149. package/scss/_bin.scss +6 -3
  150. package/scss/_checks.scss +5 -2
  151. package/scss/_icon.scss +3 -4
  152. package/scss/_labels.scss +2 -2
  153. package/scss/_overlay.scss +11 -1
  154. package/scss/_overlay_split_view.scss +10 -0
  155. package/scss/_reset.scss +1 -1
  156. package/scss/_scrolled_window.scss +15 -0
  157. package/scss/_stack.scss +8 -2
  158. package/scss/_toast.scss +13 -3
  159. package/scss/_widget.scss +5 -1
  160. package/scss/_window.scss +16 -0
  161. package/src/accessible.ts +29 -0
  162. package/src/adw-about-dialog.spec.ts +81 -12
  163. package/src/adw-action-rows.spec.ts +2 -2
  164. package/src/adw-alert-dialog.spec.ts +71 -5
  165. package/src/adw-bin.spec.ts +4 -3
  166. package/src/adw-button-content.spec.ts +1 -1
  167. package/src/adw-carousel.spec.ts +49 -1
  168. package/src/adw-header-bar.spec.ts +18 -0
  169. package/src/adw-toast-overlay.spec.ts +68 -24
  170. package/src/application.spec.ts +44 -0
  171. package/src/application.ts +13 -18
  172. package/src/capabilities.mjs +2 -3
  173. package/src/checks.spec.ts +51 -1
  174. package/src/child-slot.spec.ts +71 -0
  175. package/src/compute-expand.spec.ts +186 -0
  176. package/src/compute-expand.ts +134 -0
  177. package/src/construct-vectors.spec.ts +97 -7
  178. package/src/container-fill.spec.ts +70 -0
  179. package/src/elements/adw-about-dialog.ts +152 -9
  180. package/src/elements/adw-action-row.ts +2 -1
  181. package/src/elements/adw-alert-dialog.ts +177 -46
  182. package/src/elements/adw-application-window.ts +0 -3
  183. package/src/elements/adw-avatar.ts +2 -1
  184. package/src/elements/adw-banner.ts +2 -1
  185. package/src/elements/adw-bin.ts +2 -1
  186. package/src/elements/adw-bottom-sheet.ts +5 -4
  187. package/src/elements/adw-breakpoint-bin.ts +5 -1
  188. package/src/elements/adw-button-content.ts +2 -1
  189. package/src/elements/adw-button-row.ts +2 -1
  190. package/src/elements/adw-card.ts +2 -1
  191. package/src/elements/adw-carousel.ts +62 -3
  192. package/src/elements/adw-clamp-scrollable.ts +2 -1
  193. package/src/elements/adw-clamp.ts +2 -1
  194. package/src/elements/adw-combo-row.ts +15 -1
  195. package/src/elements/adw-data-grid.ts +2 -1
  196. package/src/elements/adw-dialog.ts +5 -2
  197. package/src/elements/adw-entry-row.ts +2 -1
  198. package/src/elements/adw-expander-row.ts +2 -1
  199. package/src/elements/adw-header-bar.ts +6 -1
  200. package/src/elements/adw-inline-view-switcher.ts +3 -2
  201. package/src/elements/adw-layout-slot.ts +2 -1
  202. package/src/elements/adw-multi-layout-view.ts +2 -1
  203. package/src/elements/adw-navigation-split-view.ts +2 -1
  204. package/src/elements/adw-navigation-view.ts +3 -2
  205. package/src/elements/adw-overlay-split-view.ts +2 -1
  206. package/src/elements/adw-preferences-dialog.ts +6 -4
  207. package/src/elements/adw-preferences-group.ts +2 -1
  208. package/src/elements/adw-preferences-row.ts +2 -1
  209. package/src/elements/adw-shortcut-label.ts +2 -1
  210. package/src/elements/adw-shortcuts-item.ts +2 -1
  211. package/src/elements/adw-shortcuts-section.ts +2 -1
  212. package/src/elements/adw-sidebar.ts +4 -3
  213. package/src/elements/adw-spin-row.ts +2 -1
  214. package/src/elements/adw-spinner.ts +2 -1
  215. package/src/elements/adw-split-button.ts +2 -1
  216. package/src/elements/adw-status-page.ts +2 -1
  217. package/src/elements/adw-switch-row.ts +10 -1
  218. package/src/elements/adw-tab-bar.ts +2 -1
  219. package/src/elements/adw-tab-button.ts +2 -1
  220. package/src/elements/adw-tab-overview.ts +2 -1
  221. package/src/elements/adw-tab-view.ts +3 -2
  222. package/src/elements/adw-toast-overlay.ts +37 -70
  223. package/src/elements/adw-toggle-group.ts +3 -2
  224. package/src/elements/adw-toolbar-view.ts +2 -1
  225. package/src/elements/adw-view-stack.ts +39 -1
  226. package/src/elements/adw-view-switcher-bar.ts +2 -1
  227. package/src/elements/adw-view-switcher-sidebar.ts +2 -1
  228. package/src/elements/adw-view-switcher.ts +3 -2
  229. package/src/elements/adw-window-features.ts +14 -2
  230. package/src/elements/adw-window-title.ts +2 -1
  231. package/src/elements/adw-wrap-box.ts +2 -1
  232. package/src/elements/checks.ts +85 -6
  233. package/src/elements/gtk-action-bar.ts +2 -1
  234. package/src/elements/gtk-application-window.ts +3 -8
  235. package/src/elements/gtk-aspect-frame.ts +2 -1
  236. package/src/elements/gtk-box.ts +56 -1
  237. package/src/elements/gtk-button.ts +10 -22
  238. package/src/elements/gtk-calendar.ts +2 -1
  239. package/src/elements/gtk-center-box.ts +2 -1
  240. package/src/elements/gtk-color-dialog-button.ts +2 -1
  241. package/src/elements/gtk-drag-icon.ts +6 -1
  242. package/src/elements/gtk-drawing-area.ts +2 -1
  243. package/src/elements/gtk-drop-down.ts +2 -1
  244. package/src/elements/gtk-editable-label.ts +2 -1
  245. package/src/elements/gtk-emoji-chooser.ts +5 -0
  246. package/src/elements/gtk-entry.ts +2 -1
  247. package/src/elements/gtk-expander.ts +2 -1
  248. package/src/elements/gtk-fixed.ts +2 -1
  249. package/src/elements/gtk-flow-box-child.ts +5 -2
  250. package/src/elements/gtk-flow-box.ts +2 -1
  251. package/src/elements/gtk-font-dialog-button.ts +2 -1
  252. package/src/elements/gtk-frame.ts +2 -1
  253. package/src/elements/gtk-gl-area.ts +2 -1
  254. package/src/elements/gtk-graphics-offload.ts +5 -2
  255. package/src/elements/gtk-grid.ts +2 -1
  256. package/src/elements/gtk-header-bar.ts +2 -1
  257. package/src/elements/gtk-image.ts +14 -15
  258. package/src/elements/gtk-inscription.ts +2 -1
  259. package/src/elements/gtk-label.ts +12 -5
  260. package/src/elements/gtk-level-bar.ts +2 -1
  261. package/src/elements/gtk-list-box-row.ts +5 -2
  262. package/src/elements/gtk-list-box.ts +2 -1
  263. package/src/elements/gtk-list-view.ts +2 -1
  264. package/src/elements/gtk-media-controls.ts +2 -1
  265. package/src/elements/gtk-menu-button.ts +2 -1
  266. package/src/elements/gtk-notebook.ts +2 -1
  267. package/src/elements/gtk-overlay.ts +7 -5
  268. package/src/elements/gtk-paned.ts +9 -2
  269. package/src/elements/gtk-picture.ts +2 -1
  270. package/src/elements/gtk-popover-bin.ts +5 -1
  271. package/src/elements/gtk-popover-menu-bar.ts +2 -1
  272. package/src/elements/gtk-popover-menu.ts +5 -0
  273. package/src/elements/gtk-popover.ts +14 -1
  274. package/src/elements/gtk-progress-bar.ts +2 -1
  275. package/src/elements/gtk-revealer.ts +2 -1
  276. package/src/elements/gtk-scale-button.ts +2 -1
  277. package/src/elements/gtk-scale.ts +2 -1
  278. package/src/elements/gtk-scrollbar.ts +2 -1
  279. package/src/elements/gtk-scrolled-window.ts +8 -5
  280. package/src/elements/gtk-search-bar.ts +7 -6
  281. package/src/elements/gtk-separator.ts +2 -1
  282. package/src/elements/gtk-spin-button.ts +2 -1
  283. package/src/elements/gtk-spinner.ts +2 -1
  284. package/src/elements/gtk-stack-page.ts +112 -0
  285. package/src/elements/gtk-stack-sidebar.ts +2 -1
  286. package/src/elements/gtk-stack-switcher.ts +2 -1
  287. package/src/elements/gtk-stack.ts +52 -6
  288. package/src/elements/gtk-switch.ts +2 -1
  289. package/src/elements/gtk-text-view.ts +2 -1
  290. package/src/elements/gtk-text.ts +2 -1
  291. package/src/elements/gtk-tree-expander.ts +5 -1
  292. package/src/elements/gtk-video.ts +2 -1
  293. package/src/elements/gtk-viewport.ts +6 -1
  294. package/src/elements/gtk-window-controls.ts +2 -1
  295. package/src/elements/gtk-window-handle.ts +6 -1
  296. package/src/elements/gtk-window.ts +57 -7
  297. package/src/gio.spec.ts +13 -3
  298. package/src/glib.spec.ts +9 -0
  299. package/src/gobject-elements.ts +44 -2
  300. package/src/gtk-label.spec.ts +39 -0
  301. package/src/gtk-scrolled-window.spec.ts +6 -6
  302. package/src/gtk-stack.spec.ts +170 -0
  303. package/src/gtk-value-doors.spec.ts +19 -0
  304. package/src/gtk-window.spec.ts +2 -2
  305. package/src/gtksource/gtk-source-view.ts +2 -1
  306. package/src/{icon-registry.spec.ts → icon-masks.spec.ts} +4 -100
  307. package/src/icon-theme.spec.ts +69 -124
  308. package/src/icon-theme.ts +29 -119
  309. package/src/index.ts +5 -9
  310. package/src/keyboard-operable.spec.ts +3 -3
  311. package/src/learn6502-window.spec.ts +113 -0
  312. package/src/namespace/adw.ts +1 -1
  313. package/src/namespace/gdk.ts +1 -0
  314. package/src/namespace/gio.ts +8 -0
  315. package/src/namespace/glib.ts +4 -0
  316. package/src/namespace/gtk.ts +2 -0
  317. package/src/shared-tree-builder.ts +131 -13
  318. package/src/shared-trees.spec.ts +15 -1
  319. package/src/signals.ts +11 -2
  320. package/src/slotted-children.spec.ts +24 -0
  321. package/src/slotted-children.ts +18 -2
  322. package/src/source-view/adw-source-view.ts +2 -1
  323. package/src/split-button.spec.ts +1 -1
  324. package/src/style-manager.spec.ts +13 -0
  325. package/src/style-manager.ts +6 -0
  326. package/src/styles.generated.ts +1 -1
  327. package/src/test.browser.mts +16 -2
  328. package/src/value-lists.spec.ts +3 -3
  329. package/src/widget-element.ts +75 -0
  330. package/src/widget-map.spec.ts +116 -0
  331. package/src/widget-mapping.ts +100 -0
  332. package/src/widget-visible.spec.ts +148 -0
  333. package/src/window-maximize.spec.ts +93 -0
  334. package/lib/types/icon-registry.d.ts +0 -37
  335. package/src/icon-registry.ts +0 -163
package/README.md CHANGED
@@ -106,24 +106,28 @@ the composition is an implementation detail.
106
106
  ### Toasts are queued, one at a time
107
107
 
108
108
  `<adw-toast-overlay>` follows `Adw.ToastOverlay`: it shows **exactly one** toast
109
- and queues the rest FIFO. Each queued toast is shown only after the visible one
110
- is dismissed — by its timeout, by its close button, by its action button, or by
111
- `dismiss()`.
109
+ and queues the rest; a `priority: Adw.ToastPriority.HIGH` toast goes ahead of the
110
+ visible one. Each queued toast is shown only after the visible one is dismissed —
111
+ by its timeout, by its close button, by its action button, or by `toast.dismiss()`.
112
112
 
113
113
  ```typescript
114
+ import { Adw } from '@gjsify/adwaita-web';
115
+
114
116
  const overlay = document.querySelector('adw-toast-overlay');
115
117
 
116
- overlay.addToast('File moved to Trash', { timeout: 3, buttonLabel: 'Undo', onAction: undo });
117
- overlay.addToast('Second file moved'); // waits its turn — not shown yet
118
+ const toast = new Adw.Toast({ title: 'File moved to Trash', timeout: 3, button_label: 'Undo' });
119
+ toast.connect('button-clicked', undo);
120
+ overlay.add_toast(toast);
121
+ overlay.add_toast(new Adw.Toast({ title: 'Second file moved' })); // waits its turn
118
122
 
119
123
  overlay.currentToast?.title; // 'File moved to Trash'
120
124
  overlay.pendingToasts; // 1
121
125
 
122
- overlay.dismiss(); // show the next queued toast now
123
- overlay.clearToasts(); // dismiss the visible one and drop the queue
126
+ toast.dismiss(); // show the next queued toast now
127
+ overlay.dismiss_all(); // dismiss the visible one and everything queued
124
128
  ```
125
129
 
126
- `addToast()`'s `timeout` is in **seconds** (mirroring `Adw.Toast:timeout`); `0`
130
+ `Adw.Toast:timeout` is in **seconds**; `0`
127
131
  keeps the toast until it is dismissed and holds the queue behind it. The
128
132
  auto-dismiss runs on the browser's timers by default; assign
129
133
  `overlay.scheduler` a custom `ToastScheduler` (the seam `@gjsify/adwaita-core`
@@ -244,16 +248,11 @@ visible: the icon has not silently disappeared, and nothing throws — an icon i
244
248
  and neither of the other two Adwaita renderers takes an application down over a glyph. Only
245
249
  an **absent or empty** name draws nothing, which is the host declining an icon.
246
250
 
247
- ### Registering your own
248
-
249
- ```typescript
250
- import { registerIcon, isIconAvailable } from '@gjsify/adwaita-web';
251
- import { dialogErrorSymbolic } from '@gjsify/adwaita-icons/status';
251
+ ### Icons outside the subset
252
252
 
253
- if (!isIconAvailable('dialog-error')) {
254
- registerIcon('dialog-error-symbolic', dialogErrorSymbolic);
255
- }
256
- ```
253
+ A glyph the subset does not compile — a symbolic of your own, or a full-colour application
254
+ icon — comes from the app's GResource, the way GNOME ships it (next section).
255
+ `isIconAvailable(name)` answers whether the compiled subset or a resource path draws a name.
257
256
 
258
257
  ```html
259
258
  <gtk-image icon-name="dialog-error"></gtk-image>
@@ -269,71 +268,6 @@ narrow surface such as an extension popup — a 96px icon, 24px margins and the
269
268
  <adw-status-page compact icon="dialog-error" title="No results"></adw-status-page>
270
269
  ```
271
270
 
272
- `registerIcon(name, svg)` takes the icon's **SVG source** — exactly what
273
- `@gjsify/adwaita-icons` exports, and equally any symbolic SVG of your own drawn on the 16px
274
- Adwaita grid with `fill="currentColor"`. It writes the same pair the build writes: a
275
- `--icon-<name>` custom property on the document element and a `.adw-icon--<name>` mask rule,
276
- so from then on the name is indistinguishable from a compiled one — in `<gtk-image>`, in a
277
- widget attribute, in a hand-written `class="adw-icon adw-icon--dialog-error"`, and in your
278
- own CSS as `var(--icon-dialog-error)`.
279
-
280
- Notes worth having:
281
-
282
- - **Register before you mount, where you can.** An icon already in the document shows the
283
- fallback until the registration lands. The CSS is live, so it corrects itself on the next
284
- style recalculation with no re-render — but there is a visible frame in between.
285
- - **`registerIcon` needs a live document.** It writes to `document.documentElement` and
286
- `document.head`, so calling it at module top level in an SSR/SSG build (an Astro component
287
- module, for instance) throws a `ReferenceError` before any page renders. Call it from
288
- client-side code — an `onMount`, a `client:load` boundary, a `DOMContentLoaded` handler.
289
- - **The name is normalized the same way the attribute is**: one optional `-symbolic` suffix
290
- comes off, and what is left has to be a single CSS token. `registerIcon` *throws* on a name
291
- that is not (`org.gnome.Builder`, `a b`), because a call that silently registers nothing is
292
- the failure this whole area exists to end — and because there is no mask class such a name
293
- could be given. `<gtk-image>` stays lenient with the same input: the name came from markup,
294
- so it draws `image-missing` rather than taking the page down.
295
- - **Re-registering replaces the glyph** rather than adding a second rule, so a runtime theme
296
- switch can call it as often as it likes.
297
- - `isIconAvailable(name)` reads the live cascade, not a generated list, so it also answers
298
- `true` for a glyph you supplied through your own stylesheet's `--icon-<name>`.
299
-
300
- ### Full-colour icons — an application icon
301
-
302
- A symbolic icon is recoloured; an application icon is not. On GNOME,
303
- `AdwAboutDialog`'s `application-icon` is the application ID, and GTK finds
304
- `hicolor/scalable/apps/<app-id>.svg` and draws it as it is. The web stand-in for that file is
305
- `registerColorIcon`:
306
-
307
- ```typescript
308
- import { registerColorIcon } from '@gjsify/adwaita-web';
309
- import appIcon from './icons/org.example.App.svg?raw';
310
-
311
- registerColorIcon('org.example.App', appIcon); // SVG source…
312
- registerColorIcon('org.example.Other', '/icons/other.png'); // …or an image URL
313
- ```
314
-
315
- ```html
316
- <adw-about-dialog application-icon="org.example.App" application-name="Example"></adw-about-dialog>
317
- ```
318
-
319
- Every `<gtk-image>` asking for a registered name draws the image unmasked and unrecoloured,
320
- which covers every widget that draws its icons through it, `<adw-about-dialog>` and
321
- `<gtk-about-dialog logo-icon-name>` among them. A name is looked up in the order GTK's own
322
- theme tries it (`g_themed_icon_update_names`, then gtkicontheme.c's theme order). A colour
323
- registration is hicolor's, so the current theme's symbolic glyph comes first either way:
324
-
325
- | Asked for | Tried, in order | Neither found |
326
- | --- | --- | --- |
327
- | `X` | symbolic `X-symbolic`, then colour `X` | `image-missing` |
328
- | `X-symbolic` | symbolic `X-symbolic`, then colour `X` | `image-missing` |
329
-
330
- So nothing changes for a name with no colour registration, and a colour `X` shows only where the
331
- theme has no `X-symbolic` — the same as on GNOME. `registerColorIcon` keys on the
332
- **exact** name, reverse-DNS IDs included, and *throws* on an empty or spaced name, on a
333
- `-symbolic` (`-ltr`/`-rtl`) name — that is `registerIcon`'s half — and on a source that is
334
- neither SVG source nor an `http(s):`, `blob:`, `file:` or `data:image/` URL. A registration
335
- redraws every mounted `<gtk-image>`, and `isIconAvailable` answers `true` for the name.
336
-
337
271
  ### Icons from the app's GResource (ADR 0116)
338
272
 
339
273
  The way GNOME takes: the app's compiled `.gresource`, registered with the GIO calls it already
@@ -352,9 +286,9 @@ the lookup follows `gtkicontheme.c`: hicolor subdirectories (`16x16/apps/`, `sca
352
286
  `symbolic/apps/`, …, without a `hicolor/` component) by size and scale, then files directly
353
287
  under the path. A compiled symbolic glyph still answers a `-symbolic` name first. A `-symbolic`
354
288
  file draws as a mask in `currentColor`, any other SVG or PNG as it is; an XPM or a compressed
355
- entry draws `image-missing` with a warning. After a colour registration, a resource is the next
356
- answer, so `registerColorIcon` still wins for its name. If the resource holds `gtk/menus.ui`
357
- or `gtk/help-overlay.ui` under the base path, startup throws: no builder here reads them yet.
289
+ entry draws `image-missing` with a warning. An application icon (`application-icon="org.example.App"`)
290
+ is a colour file such as `scalable/apps/org.example.App.svg` under the path. If the resource
291
+ holds `gtk/menus.ui` or `gtk/help-overlay.ui` under the base path, startup throws: no builder here reads them yet.
358
292
  `add_search_path` stays a record, since there is no file system to search.
359
293
 
360
294
  ### Why this is a web-only concern
@@ -366,14 +300,14 @@ knowing which one you are on:
366
300
  | --- | --- | --- |
367
301
  | GTK (`@gjsify/adwaita-app`) | `GtkIconTheme` looks it up in the **system** icon theme at runtime | draws the theme's `image-missing` |
368
302
  | NativeScript (`@gjsify/adwaita-nativescript`) | `GtkImage` is handed the **SVG source**, not a name | cannot happen — a missing icon is a missing import |
369
- | Web (this package) | a **compile-time** subset, the `Gtk.IconTheme` resource paths, plus `registerIcon` / `registerColorIcon` | draws `image-missing` |
303
+ | Web (this package) | a **compile-time** subset, then the `Gtk.IconTheme` resource paths | draws `image-missing` |
370
304
 
371
305
  All three therefore end on ONE glyph for a name they cannot draw. The web reaches it by two
372
306
  routes — no mask class for a known-shaped name, or no usable class for a name like
373
- `org.gnome.Builder` that no `registerColorIcon` call has answered either.
307
+ `org.gnome.Builder` that no resource path has answered either.
374
308
 
375
309
  Only the web renderer has a set that can be missing something at runtime, which is why only
376
- it needs a registration path. `scripts/check-adwaita-icon-masks.mjs` holds the compiled
310
+ it needs a compiled subset beside the resource paths. `scripts/check-adwaita-icon-masks.mjs` holds the compiled
377
311
  subset against every name this repository's SHIPPING surfaces emit, in both directions, and
378
312
  fails on a compiled glyph that did not come from `@gjsify/adwaita-icons`.
379
313
 
@@ -696,7 +696,7 @@
696
696
  font-size: var(--font-size-base);
697
697
  }
698
698
 
699
- adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response, adw-application-window, adw-avatar, adw-banner, adw-bin, adw-bottom-sheet, adw-bottom-sheet-bottom-bar, adw-bottom-sheet-content, adw-bottom-sheet-sheet, adw-breakpoint-bin, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, adw-clamp, adw-clamp-scrollable, adw-combo-row, adw-data-grid, adw-dialog, adw-entry-row, adw-expander-row, adw-header-bar, adw-inline-view-switcher, adw-layout-slot, adw-multi-layout-view, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, adw-preferences-row, adw-radio, adw-shortcut-label, adw-shortcuts-dialog, adw-shortcuts-item, adw-shortcuts-section, adw-sidebar, adw-sidebar-item, adw-sidebar-section, adw-source-view, adw-spin-row, adw-spinner, adw-split-button, adw-status-page, adw-switch-row, adw-tab-bar, adw-tab-button, adw-tab-overview, adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group, adw-toolbar-view, gtk-notebook, adw-view-stack, adw-view-stack-page, adw-view-switcher, adw-view-switcher-bar, adw-view-switcher-page, adw-view-switcher-sidebar, adw-window, adw-window-title, adw-wrap-box, gtk-about-dialog, gtk-action-bar, gtk-application-window, gtk-aspect-frame, gtk-box, gtk-button, gtk-center-box, gtk-calendar, gtk-check-button, gtk-color-dialog-button, gtk-column-view, gtk-drag-icon, gtk-drawing-area, gtk-drop-down, gtk-editable-label, gtk-emoji-chooser, gtk-entry, gtk-expander, gtk-fixed, gtk-flow-box, gtk-flow-box-child, gtk-font-dialog-button, gtk-frame, gtk-gl-area, gtk-graphics-offload, gtk-grid, gtk-grid-view, gtk-header-bar, gtk-image, gtk-inscription, gtk-label, gtk-level-bar, gtk-link-button, gtk-list-box, gtk-list-box-row, gtk-list-view, gtk-media-controls, gtk-menu-button, gtk-overlay, gtk-page-setup-unix-dialog, gtk-paned, gtk-password-entry, gtk-picture, gtk-popover, gtk-popover-bin, gtk-popover-menu, gtk-popover-menu-bar, gtk-print-unix-dialog, gtk-progress-bar, gtk-revealer, gtk-scale, gtk-scale-button, gtk-scrollbar, gtk-scrolled-window, gtk-search-bar, gtk-search-entry, gtk-separator, gtk-source-view, gtk-spin-button, gtk-spinner, gtk-stack, gtk-stack-sidebar, gtk-stack-switcher, gtk-switch, gtk-text, gtk-text-view, gtk-toggle-button, gtk-tree-expander, gtk-video, gtk-viewport, gtk-window, gtk-window-controls, gtk-window-handle {
699
+ adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response, adw-application-window, adw-avatar, adw-banner, adw-bin, adw-bottom-sheet, adw-bottom-sheet-bottom-bar, adw-bottom-sheet-content, adw-bottom-sheet-sheet, adw-breakpoint-bin, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, adw-clamp, adw-clamp-scrollable, adw-combo-row, adw-data-grid, adw-dialog, adw-entry-row, adw-expander-row, adw-header-bar, adw-inline-view-switcher, adw-layout-slot, adw-multi-layout-view, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, adw-preferences-row, adw-radio, adw-shortcut-label, adw-shortcuts-dialog, adw-shortcuts-item, adw-shortcuts-section, adw-sidebar, adw-sidebar-item, adw-sidebar-section, adw-source-view, adw-spin-row, adw-spinner, adw-split-button, adw-status-page, adw-switch-row, adw-tab-bar, adw-tab-button, adw-tab-overview, adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group, adw-toolbar-view, gtk-notebook, adw-view-stack, adw-view-stack-page, adw-view-switcher, adw-view-switcher-bar, adw-view-switcher-page, adw-view-switcher-sidebar, adw-window, adw-window-title, adw-wrap-box, gtk-about-dialog, gtk-action-bar, gtk-application-window, gtk-aspect-frame, gtk-box, gtk-button, gtk-center-box, gtk-calendar, gtk-check-button, gtk-color-dialog-button, gtk-column-view, gtk-drag-icon, gtk-drawing-area, gtk-drop-down, gtk-editable-label, gtk-emoji-chooser, gtk-entry, gtk-expander, gtk-fixed, gtk-flow-box, gtk-flow-box-child, gtk-font-dialog-button, gtk-frame, gtk-gl-area, gtk-graphics-offload, gtk-grid, gtk-grid-view, gtk-header-bar, gtk-image, gtk-inscription, gtk-label, gtk-level-bar, gtk-link-button, gtk-list-box, gtk-list-box-row, gtk-list-view, gtk-media-controls, gtk-menu-button, gtk-overlay, gtk-page-setup-unix-dialog, gtk-paned, gtk-password-entry, gtk-picture, gtk-popover, gtk-popover-bin, gtk-popover-menu, gtk-popover-menu-bar, gtk-print-unix-dialog, gtk-progress-bar, gtk-revealer, gtk-scale, gtk-scale-button, gtk-scrollbar, gtk-scrolled-window, gtk-search-bar, gtk-search-entry, gtk-separator, gtk-source-view, gtk-spin-button, gtk-spinner, gtk-stack, gtk-stack-page, gtk-stack-sidebar, gtk-stack-switcher, gtk-switch, gtk-text, gtk-text-view, gtk-toggle-button, gtk-tree-expander, gtk-video, gtk-viewport, gtk-window, gtk-window-controls, gtk-window-handle {
700
700
  box-sizing: border-box;
701
701
  color: var(--window-fg-color);
702
702
  font-family: var(--font-family);
@@ -713,7 +713,7 @@ adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response, adw-appl
713
713
  text-shadow: none;
714
714
  }
715
715
 
716
- :where(adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response, adw-application-window, adw-avatar, adw-banner, adw-bin, adw-bottom-sheet, adw-bottom-sheet-bottom-bar, adw-bottom-sheet-content, adw-bottom-sheet-sheet, adw-breakpoint-bin, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, adw-clamp, adw-clamp-scrollable, adw-combo-row, adw-data-grid, adw-dialog, adw-entry-row, adw-expander-row, adw-header-bar, adw-inline-view-switcher, adw-layout-slot, adw-multi-layout-view, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, adw-preferences-row, adw-radio, adw-shortcut-label, adw-shortcuts-dialog, adw-shortcuts-item, adw-shortcuts-section, adw-sidebar, adw-sidebar-item, adw-sidebar-section, adw-source-view, adw-spin-row, adw-spinner, adw-split-button, adw-status-page, adw-switch-row, adw-tab-bar, adw-tab-button, adw-tab-overview, adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group, adw-toolbar-view, gtk-notebook, adw-view-stack, adw-view-stack-page, adw-view-switcher, adw-view-switcher-bar, adw-view-switcher-page, adw-view-switcher-sidebar, adw-window, adw-window-title, adw-wrap-box, gtk-about-dialog, gtk-action-bar, gtk-application-window, gtk-aspect-frame, gtk-box, gtk-button, gtk-center-box, gtk-calendar, gtk-check-button, gtk-color-dialog-button, gtk-column-view, gtk-drag-icon, gtk-drawing-area, gtk-drop-down, gtk-editable-label, gtk-emoji-chooser, gtk-entry, gtk-expander, gtk-fixed, gtk-flow-box, gtk-flow-box-child, gtk-font-dialog-button, gtk-frame, gtk-gl-area, gtk-graphics-offload, gtk-grid, gtk-grid-view, gtk-header-bar, gtk-image, gtk-inscription, gtk-label, gtk-level-bar, gtk-link-button, gtk-list-box, gtk-list-box-row, gtk-list-view, gtk-media-controls, gtk-menu-button, gtk-overlay, gtk-page-setup-unix-dialog, gtk-paned, gtk-password-entry, gtk-picture, gtk-popover, gtk-popover-bin, gtk-popover-menu, gtk-popover-menu-bar, gtk-print-unix-dialog, gtk-progress-bar, gtk-revealer, gtk-scale, gtk-scale-button, gtk-scrollbar, gtk-scrolled-window, gtk-search-bar, gtk-search-entry, gtk-separator, gtk-source-view, gtk-spin-button, gtk-spinner, gtk-stack, gtk-stack-sidebar, gtk-stack-switcher, gtk-switch, gtk-text, gtk-text-view, gtk-toggle-button, gtk-tree-expander, gtk-video, gtk-viewport, gtk-window, gtk-window-controls, gtk-window-handle) :is(gtk-box, gtk-label, adw-button-content) {
716
+ :where(adw-about-dialog, adw-action-row, adw-alert-dialog, adw-alert-response, adw-application-window, adw-avatar, adw-banner, adw-bin, adw-bottom-sheet, adw-bottom-sheet-bottom-bar, adw-bottom-sheet-content, adw-bottom-sheet-sheet, adw-breakpoint-bin, adw-button-content, adw-button-row, adw-card, adw-carousel, adw-carousel-indicator-dots, adw-carousel-indicator-lines, adw-clamp, adw-clamp-scrollable, adw-combo-row, adw-data-grid, adw-dialog, adw-entry-row, adw-expander-row, adw-header-bar, adw-inline-view-switcher, adw-layout-slot, adw-multi-layout-view, adw-navigation-page, adw-navigation-split-view, adw-navigation-view, adw-overlay-split-view, adw-password-entry-row, adw-preferences-dialog, adw-preferences-group, adw-preferences-page, adw-preferences-row, adw-radio, adw-shortcut-label, adw-shortcuts-dialog, adw-shortcuts-item, adw-shortcuts-section, adw-sidebar, adw-sidebar-item, adw-sidebar-section, adw-source-view, adw-spin-row, adw-spinner, adw-split-button, adw-status-page, adw-switch-row, adw-tab-bar, adw-tab-button, adw-tab-overview, adw-tab-page, adw-tab-view, adw-toast-overlay, adw-toggle, adw-toggle-group, adw-toolbar-view, gtk-notebook, adw-view-stack, adw-view-stack-page, adw-view-switcher, adw-view-switcher-bar, adw-view-switcher-page, adw-view-switcher-sidebar, adw-window, adw-window-title, adw-wrap-box, gtk-about-dialog, gtk-action-bar, gtk-application-window, gtk-aspect-frame, gtk-box, gtk-button, gtk-center-box, gtk-calendar, gtk-check-button, gtk-color-dialog-button, gtk-column-view, gtk-drag-icon, gtk-drawing-area, gtk-drop-down, gtk-editable-label, gtk-emoji-chooser, gtk-entry, gtk-expander, gtk-fixed, gtk-flow-box, gtk-flow-box-child, gtk-font-dialog-button, gtk-frame, gtk-gl-area, gtk-graphics-offload, gtk-grid, gtk-grid-view, gtk-header-bar, gtk-image, gtk-inscription, gtk-label, gtk-level-bar, gtk-link-button, gtk-list-box, gtk-list-box-row, gtk-list-view, gtk-media-controls, gtk-menu-button, gtk-overlay, gtk-page-setup-unix-dialog, gtk-paned, gtk-password-entry, gtk-picture, gtk-popover, gtk-popover-bin, gtk-popover-menu, gtk-popover-menu-bar, gtk-print-unix-dialog, gtk-progress-bar, gtk-revealer, gtk-scale, gtk-scale-button, gtk-scrollbar, gtk-scrolled-window, gtk-search-bar, gtk-search-entry, gtk-separator, gtk-source-view, gtk-spin-button, gtk-spinner, gtk-stack, gtk-stack-page, gtk-stack-sidebar, gtk-stack-switcher, gtk-switch, gtk-text, gtk-text-view, gtk-toggle-button, gtk-tree-expander, gtk-video, gtk-viewport, gtk-window, gtk-window-controls, gtk-window-handle) :is(gtk-box, gtk-label, adw-button-content) {
717
717
  color: inherit;
718
718
  font-family: inherit;
719
719
  font-size: inherit;
@@ -1525,6 +1525,12 @@ gtk-stack *::after {
1525
1525
  box-sizing: border-box;
1526
1526
  }
1527
1527
 
1528
+ gtk-stack-page *,
1529
+ gtk-stack-page *::before,
1530
+ gtk-stack-page *::after {
1531
+ box-sizing: border-box;
1532
+ }
1533
+
1528
1534
  gtk-stack-sidebar *,
1529
1535
  gtk-stack-sidebar *::before,
1530
1536
  gtk-stack-sidebar *::after {
@@ -2105,6 +2111,12 @@ adw-application-window.fullscreen {
2105
2111
  outline: none;
2106
2112
  box-shadow: none;
2107
2113
  }
2114
+ adw-window[maximized]:not([maximized=false]), adw-window[fullscreened]:not([fullscreened=false]),
2115
+ adw-application-window[maximized]:not([maximized=false]),
2116
+ adw-application-window[fullscreened]:not([fullscreened=false]) {
2117
+ width: 100%;
2118
+ height: 100%;
2119
+ }
2108
2120
  adw-window[hidden],
2109
2121
  adw-application-window[hidden] {
2110
2122
  display: none;
@@ -2146,6 +2158,12 @@ gtk-application-window.fullscreen {
2146
2158
  outline: none;
2147
2159
  box-shadow: none;
2148
2160
  }
2161
+ gtk-window[maximized]:not([maximized=false]), gtk-window[fullscreened]:not([fullscreened=false]),
2162
+ gtk-application-window[maximized]:not([maximized=false]),
2163
+ gtk-application-window[fullscreened]:not([fullscreened=false]) {
2164
+ width: 100%;
2165
+ height: 100%;
2166
+ }
2149
2167
  gtk-window > .adw-gtk-window-titlebar,
2150
2168
  gtk-application-window > .adw-gtk-window-titlebar {
2151
2169
  display: flex;
@@ -3913,13 +3931,17 @@ gtk-drag-icon .adw-drag-icon-swatch {
3913
3931
  }
3914
3932
 
3915
3933
  gtk-overlay {
3916
- display: block;
3934
+ display: flex;
3935
+ flex-direction: column;
3917
3936
  position: relative;
3918
3937
  }
3919
3938
 
3920
3939
  .adw-overlay-child {
3921
3940
  display: contents;
3922
3941
  }
3942
+ .adw-overlay-child > * {
3943
+ flex: 1 1 auto;
3944
+ }
3923
3945
 
3924
3946
  .adw-overlay-layer {
3925
3947
  position: absolute;
@@ -4179,7 +4201,8 @@ gtk-check-button .adw-check-indicator {
4179
4201
  border-radius: 6px;
4180
4202
  }
4181
4203
 
4182
- adw-radio .adw-check-indicator {
4204
+ adw-radio .adw-check-indicator,
4205
+ gtk-check-button[radio] .adw-check-indicator {
4183
4206
  border-radius: 100%;
4184
4207
  }
4185
4208
 
@@ -4189,13 +4212,15 @@ gtk-check-button[checked] .adw-check-indicator::after {
4189
4212
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='m 12.599609,2.1992188 a 1,1 0 0 0 -1.40039,0.2011718 L 5.890625,9.4765625 2.7070313,6.2929687 a 1,1 0 0 0 -1.4140626,0 1,1 0 0 0 0,1.4140625 l 4,3.9999998 A 1.0001,1.0001 0 0 0 6.8007812,11.599609 L 12.800781,3.5996094 A 1,1 0 0 0 12.599609,2.1992188 Z'/%3E%3C/svg%3E");
4190
4213
  }
4191
4214
 
4192
- adw-radio[checked] .adw-check-indicator::after {
4215
+ adw-radio[checked] .adw-check-indicator::after,
4216
+ gtk-check-button[radio][checked] .adw-check-indicator::after {
4193
4217
  background-color: currentColor;
4194
4218
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 7 3 c -2.207 0 -4 1.793 -4 4 s 1.793 4 4 4 c 2.208 0 4 -1.793 4 -4 s -1.792 -4 -4 -4 z'/%3E%3C/svg%3E");
4195
4219
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 7 3 c -2.207 0 -4 1.793 -4 4 s 1.793 4 4 4 c 2.208 0 4 -1.793 4 -4 s -1.792 -4 -4 -4 z'/%3E%3C/svg%3E");
4196
4220
  }
4197
4221
 
4198
4222
  gtk-check-button[indeterminate] .adw-check-indicator::after,
4223
+ gtk-check-button[radio][indeterminate] .adw-check-indicator::after,
4199
4224
  adw-radio[indeterminate] .adw-check-indicator::after {
4200
4225
  background-color: currentColor;
4201
4226
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 3 5 A 2 2 0 0 0 1 7 A 2 2 0 0 0 3 9 L 11 9 A 2 2 0 0 0 13 7 A 2 2 0 0 0 11 5 Z'/%3E%3C/svg%3E");
@@ -5390,10 +5415,11 @@ adw-card,
5390
5415
  }
5391
5416
 
5392
5417
  adw-bin {
5393
- display: block;
5418
+ display: flex;
5419
+ flex-direction: column;
5394
5420
  }
5395
5421
  adw-bin > :only-child {
5396
- block-size: 100%;
5422
+ flex: 1 1 auto;
5397
5423
  }
5398
5424
 
5399
5425
  adw-clamp {
@@ -5423,12 +5449,12 @@ gtk-stack > .adw-stack-page.transitioning-in, gtk-stack > .adw-stack-page.transi
5423
5449
  display: flex;
5424
5450
  flex-direction: column;
5425
5451
  }
5426
- gtk-stack:not([hhomogeneous]) > .adw-stack-page {
5452
+ gtk-stack[hhomogeneous=false] > .adw-stack-page {
5427
5453
  flex: 0 1 auto;
5428
5454
  width: max-content;
5429
5455
  max-width: 100%;
5430
5456
  }
5431
- gtk-stack:not([vhomogeneous]) > .adw-stack-page {
5457
+ gtk-stack[vhomogeneous=false] > .adw-stack-page {
5432
5458
  height: max-content;
5433
5459
  max-height: 100%;
5434
5460
  }
@@ -6872,11 +6898,18 @@ adw-password-entry-row .adw-password-entry-row-toggle {
6872
6898
 
6873
6899
  adw-toast-overlay {
6874
6900
  position: relative;
6875
- display: block;
6901
+ display: flex;
6902
+ flex-direction: column;
6876
6903
  }
6877
6904
  adw-toast-overlay .adw-toast-overlay-content {
6905
+ display: flex;
6906
+ flex: 1 1 auto;
6907
+ flex-direction: column;
6908
+ min-height: 0;
6878
6909
  width: 100%;
6879
- height: 100%;
6910
+ }
6911
+ adw-toast-overlay .adw-toast-overlay-content > * {
6912
+ flex: 1 1 auto;
6880
6913
  }
6881
6914
  adw-toast-overlay .adw-toast-overlay-toasts {
6882
6915
  position: absolute;
@@ -7232,6 +7265,12 @@ gtk-scrolled-window {
7232
7265
  }
7233
7266
  gtk-scrolled-window > gtk-viewport {
7234
7267
  grid-area: 1/1;
7268
+ width: 0;
7269
+ height: 0;
7270
+ min-width: 100%;
7271
+ min-height: 100%;
7272
+ max-width: 100%;
7273
+ max-height: 100%;
7235
7274
  }
7236
7275
  gtk-scrolled-window > gtk-scrollbar.vertical {
7237
7276
  grid-row: 1/3;
@@ -7416,6 +7455,10 @@ adw-overlay-split-view .adw-osv-content {
7416
7455
  flex-direction: column;
7417
7456
  align-self: stretch;
7418
7457
  }
7458
+ adw-overlay-split-view .adw-osv-content > :only-child,
7459
+ adw-overlay-split-view .adw-osv-sidebar > :only-child {
7460
+ flex: 1 1 auto;
7461
+ }
7419
7462
  adw-overlay-split-view:not(.collapsed) .adw-osv-sidebar {
7420
7463
  position: relative;
7421
7464
  }
@@ -9894,6 +9937,7 @@ adw-about-dialog .adw-about-dialog-sheet:focus {
9894
9937
  outline: 1px solid var(--separator-color);
9895
9938
  outline-offset: -1px;
9896
9939
  }
9940
+ adw-about-dialog adw-toast-overlay,
9897
9941
  adw-about-dialog adw-navigation-view,
9898
9942
  adw-about-dialog .adw-navigation-view-pages,
9899
9943
  adw-about-dialog .adw-navigation-page {
@@ -10004,6 +10048,39 @@ adw-about-dialog .adw-about-dialog-comments {
10004
10048
  text-align: start;
10005
10049
  white-space: pre-wrap;
10006
10050
  }
10051
+ adw-about-dialog .adw-about-dialog-release-notes {
10052
+ margin: var(--spacing-s) 0 0;
10053
+ font-size: var(--font-size-base);
10054
+ line-height: 1.5;
10055
+ white-space: pre-wrap;
10056
+ }
10057
+ adw-about-dialog .adw-about-dialog-release-notes [data-tag=heading] {
10058
+ font-weight: 800;
10059
+ font-size: 1.2em;
10060
+ }
10061
+ adw-about-dialog .adw-about-dialog-release-notes [data-tag=em] {
10062
+ font-style: italic;
10063
+ }
10064
+ adw-about-dialog .adw-about-dialog-release-notes [data-tag=code] {
10065
+ font-family: var(--monospace-font-family);
10066
+ }
10067
+ adw-about-dialog .adw-about-dialog-release-notes [data-tag=bullet] {
10068
+ opacity: var(--dim-opacity);
10069
+ }
10070
+ adw-about-dialog .adw-about-dialog-debug-info {
10071
+ margin: var(--spacing-s) 0 0;
10072
+ padding: var(--spacing-s);
10073
+ font-family: var(--monospace-font-family);
10074
+ font-size: var(--font-size-small);
10075
+ white-space: pre-wrap;
10076
+ overflow-wrap: anywhere;
10077
+ border-radius: var(--card-radius);
10078
+ background-color: var(--card-bg-color);
10079
+ }
10080
+ adw-about-dialog .adw-about-dialog-copy {
10081
+ align-self: center;
10082
+ margin-top: var(--spacing-m);
10083
+ }
10007
10084
  adw-about-dialog .adw-about-dialog-copyright {
10008
10085
  margin: var(--spacing-s) 0 0;
10009
10086
  font-size: var(--font-size-small);
@@ -10542,7 +10619,9 @@ adw-shortcuts-item + adw-shortcuts-item {
10542
10619
  }
10543
10620
 
10544
10621
  gtk-box:not([orientation=vertical]) > [hexpand]:not([hexpand=false]),
10545
- gtk-box[orientation=vertical] > [vexpand]:not([vexpand=false]) {
10622
+ gtk-box[orientation=vertical] > [vexpand]:not([vexpand=false]),
10623
+ gtk-box:not([orientation=vertical]) > [data-computed-hexpand],
10624
+ gtk-box[orientation=vertical] > [data-computed-vexpand] {
10546
10625
  flex-grow: 1;
10547
10626
  }
10548
10627