@gtkx/react 0.19.0 → 0.21.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 (289) hide show
  1. package/README.md +26 -62
  2. package/dist/components/compound.d.ts +40 -0
  3. package/dist/components/compound.d.ts.map +1 -0
  4. package/dist/components/compound.js +46 -0
  5. package/dist/components/compound.js.map +1 -0
  6. package/dist/components/list.d.ts +75 -0
  7. package/dist/components/list.d.ts.map +1 -0
  8. package/dist/components/list.js +81 -0
  9. package/dist/components/list.js.map +1 -0
  10. package/dist/components/slot-widget.d.ts +15 -0
  11. package/dist/components/slot-widget.d.ts.map +1 -0
  12. package/dist/components/slot-widget.js +37 -0
  13. package/dist/components/slot-widget.js.map +1 -0
  14. package/dist/errors.d.ts +6 -0
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +8 -6
  17. package/dist/errors.js.map +1 -1
  18. package/dist/generated/compounds.d.ts +2672 -0
  19. package/dist/generated/compounds.d.ts.map +1 -0
  20. package/dist/generated/compounds.js +2624 -0
  21. package/dist/generated/compounds.js.map +1 -0
  22. package/dist/generated/internal.d.ts +6 -7
  23. package/dist/generated/internal.d.ts.map +1 -1
  24. package/dist/generated/internal.js +3054 -1838
  25. package/dist/generated/internal.js.map +1 -1
  26. package/dist/generated/jsx.d.ts +2096 -4970
  27. package/dist/generated/jsx.d.ts.map +1 -1
  28. package/dist/generated/jsx.js +979 -3862
  29. package/dist/generated/jsx.js.map +1 -1
  30. package/dist/generated/registry.d.ts +1 -0
  31. package/dist/generated/registry.d.ts.map +1 -1
  32. package/dist/generated/registry.js +0 -1
  33. package/dist/generated/registry.js.map +1 -1
  34. package/dist/host-config.d.ts.map +1 -1
  35. package/dist/host-config.js +2 -0
  36. package/dist/host-config.js.map +1 -1
  37. package/dist/index.d.ts +2 -0
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/jsx.d.ts +157 -518
  42. package/dist/jsx.d.ts.map +1 -1
  43. package/dist/jsx.js +6 -393
  44. package/dist/jsx.js.map +1 -1
  45. package/dist/metadata.d.ts +1 -1
  46. package/dist/metadata.d.ts.map +1 -1
  47. package/dist/metadata.js +7 -3
  48. package/dist/metadata.js.map +1 -1
  49. package/dist/node.d.ts +0 -4
  50. package/dist/node.d.ts.map +1 -1
  51. package/dist/node.js +19 -41
  52. package/dist/node.js.map +1 -1
  53. package/dist/nodes/alert-dialog.d.ts +14 -0
  54. package/dist/nodes/alert-dialog.d.ts.map +1 -0
  55. package/dist/nodes/alert-dialog.js +41 -0
  56. package/dist/nodes/alert-dialog.js.map +1 -0
  57. package/dist/nodes/animation.d.ts +5 -4
  58. package/dist/nodes/animation.d.ts.map +1 -1
  59. package/dist/nodes/animation.js +65 -49
  60. package/dist/nodes/animation.js.map +1 -1
  61. package/dist/nodes/application.d.ts.map +1 -1
  62. package/dist/nodes/application.js +4 -0
  63. package/dist/nodes/application.js.map +1 -1
  64. package/dist/nodes/column-view-column.d.ts +19 -19
  65. package/dist/nodes/column-view-column.d.ts.map +1 -1
  66. package/dist/nodes/column-view-column.js +130 -119
  67. package/dist/nodes/column-view-column.js.map +1 -1
  68. package/dist/nodes/container-slot.d.ts +3 -1
  69. package/dist/nodes/container-slot.d.ts.map +1 -1
  70. package/dist/nodes/container-slot.js +28 -16
  71. package/dist/nodes/container-slot.js.map +1 -1
  72. package/dist/nodes/drawing-area.d.ts +3 -1
  73. package/dist/nodes/drawing-area.d.ts.map +1 -1
  74. package/dist/nodes/drawing-area.js +20 -22
  75. package/dist/nodes/drawing-area.js.map +1 -1
  76. package/dist/nodes/event-controller.d.ts.map +1 -1
  77. package/dist/nodes/event-controller.js +6 -16
  78. package/dist/nodes/event-controller.js.map +1 -1
  79. package/dist/nodes/fixed-child.d.ts +1 -0
  80. package/dist/nodes/fixed-child.d.ts.map +1 -1
  81. package/dist/nodes/fixed-child.js +13 -0
  82. package/dist/nodes/fixed-child.js.map +1 -1
  83. package/dist/nodes/grid-child.d.ts +1 -0
  84. package/dist/nodes/grid-child.d.ts.map +1 -1
  85. package/dist/nodes/grid-child.js +13 -0
  86. package/dist/nodes/grid-child.js.map +1 -1
  87. package/dist/nodes/internal/accessible.d.ts.map +1 -1
  88. package/dist/nodes/internal/accessible.js.map +1 -1
  89. package/dist/nodes/internal/bound-item.d.ts +4 -0
  90. package/dist/nodes/internal/bound-item.d.ts.map +1 -0
  91. package/dist/nodes/internal/bound-item.js +2 -0
  92. package/dist/nodes/internal/bound-item.js.map +1 -0
  93. package/dist/nodes/internal/construct.d.ts +1 -8
  94. package/dist/nodes/internal/construct.d.ts.map +1 -1
  95. package/dist/nodes/internal/construct.js +30 -54
  96. package/dist/nodes/internal/construct.js.map +1 -1
  97. package/dist/nodes/internal/widget.d.ts.map +1 -1
  98. package/dist/nodes/internal/widget.js +9 -10
  99. package/dist/nodes/internal/widget.js.map +1 -1
  100. package/dist/nodes/list-item-node.d.ts +12 -0
  101. package/dist/nodes/list-item-node.d.ts.map +1 -0
  102. package/dist/nodes/list-item-node.js +45 -0
  103. package/dist/nodes/list-item-node.js.map +1 -0
  104. package/dist/nodes/list.d.ts +100 -0
  105. package/dist/nodes/list.d.ts.map +1 -0
  106. package/dist/nodes/list.js +950 -0
  107. package/dist/nodes/list.js.map +1 -0
  108. package/dist/nodes/notebook-page.d.ts.map +1 -1
  109. package/dist/nodes/notebook-page.js +6 -2
  110. package/dist/nodes/notebook-page.js.map +1 -1
  111. package/dist/nodes/overlay-child.d.ts +2 -0
  112. package/dist/nodes/overlay-child.d.ts.map +1 -1
  113. package/dist/nodes/overlay-child.js +29 -8
  114. package/dist/nodes/overlay-child.js.map +1 -1
  115. package/dist/nodes/spin-row.d.ts +14 -0
  116. package/dist/nodes/spin-row.d.ts.map +1 -0
  117. package/dist/nodes/spin-row.js +46 -0
  118. package/dist/nodes/spin-row.js.map +1 -0
  119. package/dist/nodes/switch-row.d.ts +11 -0
  120. package/dist/nodes/switch-row.d.ts.map +1 -0
  121. package/dist/nodes/switch-row.js +15 -0
  122. package/dist/nodes/switch-row.js.map +1 -0
  123. package/dist/nodes/text-anchor.d.ts.map +1 -1
  124. package/dist/nodes/text-anchor.js +10 -0
  125. package/dist/nodes/text-anchor.js.map +1 -1
  126. package/dist/nodes/text-tag.d.ts.map +1 -1
  127. package/dist/nodes/text-tag.js +45 -39
  128. package/dist/nodes/text-tag.js.map +1 -1
  129. package/dist/nodes/toggle-group.d.ts +12 -6
  130. package/dist/nodes/toggle-group.d.ts.map +1 -1
  131. package/dist/nodes/toggle-group.js +53 -4
  132. package/dist/nodes/toggle-group.js.map +1 -1
  133. package/dist/nodes/widget.d.ts.map +1 -1
  134. package/dist/nodes/widget.js +16 -22
  135. package/dist/nodes/widget.js.map +1 -1
  136. package/dist/nodes/window.d.ts.map +1 -1
  137. package/dist/nodes/window.js +2 -2
  138. package/dist/nodes/window.js.map +1 -1
  139. package/dist/registry.d.ts +0 -2
  140. package/dist/registry.d.ts.map +1 -1
  141. package/dist/registry.js +11 -18
  142. package/dist/registry.js.map +1 -1
  143. package/dist/types.d.ts +3 -2
  144. package/dist/types.d.ts.map +1 -1
  145. package/dist/use-property.d.ts +29 -0
  146. package/dist/use-property.d.ts.map +1 -0
  147. package/dist/use-property.js +44 -0
  148. package/dist/use-property.js.map +1 -0
  149. package/dist/use-setting.d.ts +36 -0
  150. package/dist/use-setting.d.ts.map +1 -0
  151. package/dist/use-setting.js +68 -0
  152. package/dist/use-setting.js.map +1 -0
  153. package/package.json +5 -4
  154. package/src/components/compound.tsx +57 -0
  155. package/src/components/list.tsx +140 -0
  156. package/src/components/slot-widget.tsx +46 -0
  157. package/src/errors.ts +8 -7
  158. package/src/generated/compounds.ts +2741 -0
  159. package/src/generated/internal.ts +3059 -1840
  160. package/src/generated/jsx.ts +2509 -5350
  161. package/src/generated/registry.ts +2 -1
  162. package/src/host-config.ts +2 -0
  163. package/src/index.ts +2 -0
  164. package/src/jsx.ts +167 -581
  165. package/src/metadata.ts +7 -4
  166. package/src/node.ts +23 -39
  167. package/src/nodes/alert-dialog.ts +55 -0
  168. package/src/nodes/animation.ts +67 -60
  169. package/src/nodes/application.ts +5 -0
  170. package/src/nodes/column-view-column.ts +125 -128
  171. package/src/nodes/container-slot.ts +30 -17
  172. package/src/nodes/drawing-area.ts +23 -32
  173. package/src/nodes/event-controller.ts +6 -18
  174. package/src/nodes/fixed-child.ts +13 -0
  175. package/src/nodes/grid-child.ts +13 -0
  176. package/src/nodes/internal/accessible.ts +0 -1
  177. package/src/nodes/internal/bound-item.ts +4 -0
  178. package/src/nodes/internal/construct.ts +38 -68
  179. package/src/nodes/internal/widget.ts +9 -13
  180. package/src/nodes/list-item-node.ts +53 -0
  181. package/src/nodes/list.ts +1082 -0
  182. package/src/nodes/notebook-page.ts +6 -2
  183. package/src/nodes/overlay-child.ts +30 -9
  184. package/src/nodes/spin-row.ts +72 -0
  185. package/src/nodes/switch-row.ts +26 -0
  186. package/src/nodes/text-anchor.ts +9 -0
  187. package/src/nodes/text-tag.ts +45 -40
  188. package/src/nodes/toggle-group.ts +63 -9
  189. package/src/nodes/widget.ts +14 -26
  190. package/src/nodes/window.ts +2 -2
  191. package/src/registry.ts +18 -24
  192. package/src/types.ts +8 -2
  193. package/src/use-property.ts +58 -0
  194. package/src/use-setting.ts +96 -0
  195. package/dist/fiber-root.d.ts +0 -4
  196. package/dist/fiber-root.d.ts.map +0 -1
  197. package/dist/fiber-root.js +0 -6
  198. package/dist/fiber-root.js.map +0 -1
  199. package/dist/nodes/column-view.d.ts +0 -37
  200. package/dist/nodes/column-view.d.ts.map +0 -1
  201. package/dist/nodes/column-view.js +0 -205
  202. package/dist/nodes/column-view.js.map +0 -1
  203. package/dist/nodes/drop-down.d.ts +0 -37
  204. package/dist/nodes/drop-down.d.ts.map +0 -1
  205. package/dist/nodes/drop-down.js +0 -231
  206. package/dist/nodes/drop-down.js.map +0 -1
  207. package/dist/nodes/grid-view.d.ts +0 -30
  208. package/dist/nodes/grid-view.d.ts.map +0 -1
  209. package/dist/nodes/grid-view.js +0 -90
  210. package/dist/nodes/grid-view.js.map +0 -1
  211. package/dist/nodes/internal/base-item-renderer.d.ts +0 -28
  212. package/dist/nodes/internal/base-item-renderer.d.ts.map +0 -1
  213. package/dist/nodes/internal/base-item-renderer.js +0 -85
  214. package/dist/nodes/internal/base-item-renderer.js.map +0 -1
  215. package/dist/nodes/internal/grid-item-renderer.d.ts +0 -20
  216. package/dist/nodes/internal/grid-item-renderer.d.ts.map +0 -1
  217. package/dist/nodes/internal/grid-item-renderer.js +0 -66
  218. package/dist/nodes/internal/grid-item-renderer.js.map +0 -1
  219. package/dist/nodes/internal/header-item-renderer.d.ts +0 -23
  220. package/dist/nodes/internal/header-item-renderer.d.ts.map +0 -1
  221. package/dist/nodes/internal/header-item-renderer.js +0 -87
  222. package/dist/nodes/internal/header-item-renderer.js.map +0 -1
  223. package/dist/nodes/internal/header-renderer-manager.d.ts +0 -13
  224. package/dist/nodes/internal/header-renderer-manager.d.ts.map +0 -1
  225. package/dist/nodes/internal/header-renderer-manager.js +0 -20
  226. package/dist/nodes/internal/header-renderer-manager.js.map +0 -1
  227. package/dist/nodes/internal/list-item-renderer.d.ts +0 -27
  228. package/dist/nodes/internal/list-item-renderer.d.ts.map +0 -1
  229. package/dist/nodes/internal/list-item-renderer.js +0 -131
  230. package/dist/nodes/internal/list-item-renderer.js.map +0 -1
  231. package/dist/nodes/internal/list-store.d.ts +0 -21
  232. package/dist/nodes/internal/list-store.d.ts.map +0 -1
  233. package/dist/nodes/internal/list-store.js +0 -90
  234. package/dist/nodes/internal/list-store.js.map +0 -1
  235. package/dist/nodes/internal/sectioned-list-store.d.ts +0 -50
  236. package/dist/nodes/internal/sectioned-list-store.d.ts.map +0 -1
  237. package/dist/nodes/internal/sectioned-list-store.js +0 -250
  238. package/dist/nodes/internal/sectioned-list-store.js.map +0 -1
  239. package/dist/nodes/internal/selection-helpers.d.ts +0 -12
  240. package/dist/nodes/internal/selection-helpers.d.ts.map +0 -1
  241. package/dist/nodes/internal/selection-helpers.js +0 -25
  242. package/dist/nodes/internal/selection-helpers.js.map +0 -1
  243. package/dist/nodes/internal/selection-model-controller.d.ts +0 -26
  244. package/dist/nodes/internal/selection-model-controller.d.ts.map +0 -1
  245. package/dist/nodes/internal/selection-model-controller.js +0 -82
  246. package/dist/nodes/internal/selection-model-controller.js.map +0 -1
  247. package/dist/nodes/internal/simple-list-store.d.ts +0 -15
  248. package/dist/nodes/internal/simple-list-store.d.ts.map +0 -1
  249. package/dist/nodes/internal/simple-list-store.js +0 -110
  250. package/dist/nodes/internal/simple-list-store.js.map +0 -1
  251. package/dist/nodes/internal/tree-store.d.ts +0 -37
  252. package/dist/nodes/internal/tree-store.d.ts.map +0 -1
  253. package/dist/nodes/internal/tree-store.js +0 -253
  254. package/dist/nodes/internal/tree-store.js.map +0 -1
  255. package/dist/nodes/list-item.d.ts +0 -24
  256. package/dist/nodes/list-item.d.ts.map +0 -1
  257. package/dist/nodes/list-item.js +0 -83
  258. package/dist/nodes/list-item.js.map +0 -1
  259. package/dist/nodes/list-section.d.ts +0 -27
  260. package/dist/nodes/list-section.d.ts.map +0 -1
  261. package/dist/nodes/list-section.js +0 -43
  262. package/dist/nodes/list-section.js.map +0 -1
  263. package/dist/nodes/list-view.d.ts +0 -32
  264. package/dist/nodes/list-view.d.ts.map +0 -1
  265. package/dist/nodes/list-view.js +0 -123
  266. package/dist/nodes/list-view.js.map +0 -1
  267. package/dist/nodes/models/list.d.ts +0 -39
  268. package/dist/nodes/models/list.d.ts.map +0 -1
  269. package/dist/nodes/models/list.js +0 -207
  270. package/dist/nodes/models/list.js.map +0 -1
  271. package/src/fiber-root.ts +0 -20
  272. package/src/nodes/column-view.ts +0 -262
  273. package/src/nodes/drop-down.ts +0 -284
  274. package/src/nodes/grid-view.ts +0 -119
  275. package/src/nodes/internal/base-item-renderer.ts +0 -107
  276. package/src/nodes/internal/grid-item-renderer.ts +0 -78
  277. package/src/nodes/internal/header-item-renderer.ts +0 -105
  278. package/src/nodes/internal/header-renderer-manager.ts +0 -33
  279. package/src/nodes/internal/list-item-renderer.ts +0 -162
  280. package/src/nodes/internal/list-store.ts +0 -107
  281. package/src/nodes/internal/sectioned-list-store.ts +0 -287
  282. package/src/nodes/internal/selection-helpers.ts +0 -35
  283. package/src/nodes/internal/selection-model-controller.ts +0 -119
  284. package/src/nodes/internal/simple-list-store.ts +0 -116
  285. package/src/nodes/internal/tree-store.ts +0 -289
  286. package/src/nodes/list-item.ts +0 -107
  287. package/src/nodes/list-section.ts +0 -64
  288. package/src/nodes/list-view.ts +0 -164
  289. package/src/nodes/models/list.ts +0 -250
@@ -0,0 +1,2672 @@
1
+ import { type FixedChildProps, type GridChildProps, type MenuItemProps, type MenuSectionProps, type MenuSubmenuProps, type NavigationSplitViewPageProps, type NavigationViewPageProps, type NotebookPageProps, type NotebookPageTabProps, type OverlayChildProps, type ShortcutProps, type StackPageProps, type TextAnchorProps, type TextPaintableProps, type TextTagProps } from "../jsx.js";
2
+ import { type AdwActionRowProps, type AdwAlertDialogProps, type AdwApplicationWindowProps, type AdwBottomSheetProps, type AdwEntryRowProps, type AdwExpanderRowProps, type AdwFlapProps, type AdwHeaderBarProps, type AdwMessageDialogProps, type AdwNavigationSplitViewProps, type AdwNavigationViewProps, type AdwOverlaySplitViewProps, type AdwPreferencesGroupProps, type AdwPreferencesPageProps, type AdwSplitButtonProps, type AdwTabBarProps, type AdwToolbarViewProps, type AdwViewStackProps, type AdwWindowProps, type GtkActionBarProps, type GtkCenterBoxProps, type GtkExpanderProps, type GtkFixedProps, type GtkFrameProps, type GtkGridProps, type GtkHeaderBarProps, type GtkMenuButtonProps, type GtkNotebookProps, type GtkOverlayProps, type GtkPanedProps, type GtkPopoverMenuBarProps, type GtkPopoverMenuProps, type GtkShortcutControllerProps, type GtkSourceViewProps, type GtkStackProps, type GtkTextViewProps, type GtkWindowProps } from "./jsx.js";
3
+ import { type ReactNode } from "react";
4
+ /**
5
+ * A [`Gtk.ListBoxRow`](https://docs.gtk.org/gtk4/class.ListBoxRow.html) used to present actions.
6
+ *
7
+ * ![action-row](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/action-row.png)
8
+ *
9
+ * The `AdwActionRow` widget can have a title, a subtitle and an icon. The row
10
+ * can receive additional widgets at its end, or prefix widgets at its start.
11
+ *
12
+ * It is convenient to present a preference and its related actions.
13
+ *
14
+ * `AdwActionRow` is unactivatable by default, giving it an activatable widget
15
+ * will automatically make it activatable, but unsetting it won't change the
16
+ * row's activatability.
17
+ *
18
+ * ## AdwActionRow as GtkBuildable
19
+ *
20
+ * The `AdwActionRow` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface
21
+ * supports adding a child at its end by specifying “suffix” or omitting the
22
+ * “type” attribute of a `<child>` element.
23
+ *
24
+ * It also supports adding a child as a prefix widget by specifying “prefix” as
25
+ * the “type” attribute of a `<child>` element.
26
+ *
27
+ * ## CSS nodes
28
+ *
29
+ * `AdwActionRow` has a main CSS node with name `row`.
30
+ *
31
+ * It contains the subnode `box.header` for its main horizontal box, and
32
+ * `box.title` for the vertical box containing the title and subtitle labels.
33
+ *
34
+ * It contains subnodes `label.title` and `label.subtitle` representing
35
+ * respectively the title label and subtitle label.
36
+ *
37
+ * ## Style classes
38
+ *
39
+ * `AdwActionRow` can use the `.property`
40
+ * style class to emphasize the row subtitle instead of the row title, which is
41
+ * useful for displaying read-only properties.
42
+ *
43
+ * ![property-row](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property-row.png)
44
+ *
45
+ * When used together with the `.monospace` style class, only the subtitle
46
+ * becomes monospace, not the title or any extra widgets.
47
+ */
48
+ export declare const AdwActionRow: ((props: AdwActionRowProps) => ReactNode) & {
49
+ AddPrefix: (props: {
50
+ children?: ReactNode;
51
+ }) => ReactNode;
52
+ AddSuffix: (props: {
53
+ children?: ReactNode;
54
+ }) => ReactNode;
55
+ };
56
+ /**
57
+ * A dialog presenting a message or a question.
58
+ *
59
+ * ![alert-dialog](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/alert-dialog.png)
60
+ *
61
+ * Alert dialogs have a heading, a body, an optional child widget, and one or
62
+ * multiple responses, each presented as a button.
63
+ *
64
+ * Each response has a unique string ID, and a button label. Additionally, each
65
+ * response can be enabled or disabled, and can have a suggested or destructive
66
+ * appearance.
67
+ *
68
+ * When one of the responses is activated, or the dialog is closed, the
69
+ * [`AlertDialog.:response`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/signal.AlertDialog.response.html) signal will be emitted. This signal is
70
+ * detailed, and the detail, as well as the `response` parameter will be set to
71
+ * the ID of the activated response, or to the value of the
72
+ * [`AlertDialog.close-response`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.AlertDialog.close-response.html) property if the dialog had been closed
73
+ * without activating any of the responses.
74
+ *
75
+ * Response buttons can be presented horizontally or vertically depending on
76
+ * available space.
77
+ *
78
+ * When a response is activated, `AdwAlertDialog` is closed automatically.
79
+ *
80
+ * An example of using an alert dialog:
81
+ *
82
+ * ```c
83
+ * AdwDialog *dialog;
84
+ *
85
+ * dialog = adw_alert_dialog_new (_("Replace File?"), NULL);
86
+ *
87
+ * adw_alert_dialog_format_body (ADW_ALERT_DIALOG (dialog),
88
+ * _("A file named “%s” already exists. Do you want to replace it?"),
89
+ * filename);
90
+ *
91
+ * adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dialog),
92
+ * "cancel", _("_Cancel"),
93
+ * "replace", _("_Replace"),
94
+ * NULL);
95
+ *
96
+ * adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dialog),
97
+ * "replace",
98
+ * ADW_RESPONSE_DESTRUCTIVE);
99
+ *
100
+ * adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dialog), "cancel");
101
+ * adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dialog), "cancel");
102
+ *
103
+ * g_signal_connect (dialog, "response", G_CALLBACK (response_cb), self);
104
+ *
105
+ * adw_dialog_present (dialog, parent);
106
+ * ```
107
+ *
108
+ * ## Async API
109
+ *
110
+ * `AdwAlertDialog` can also be used via the [`AlertDialog.choose`](https://docs.gtk.org/alertdialog/method.choose.html) method.
111
+ * This API follows the GIO async pattern, for example:
112
+ *
113
+ * ```c
114
+ * static void
115
+ * dialog_cb (AdwAlertDialog *dialog,
116
+ * GAsyncResult *result,
117
+ * MyWindow *self)
118
+ * {
119
+ * const char *response = adw_alert_dialog_choose_finish (dialog, result);
120
+ *
121
+ * // ...
122
+ * }
123
+ *
124
+ * static void
125
+ * show_dialog (MyWindow *self)
126
+ * {
127
+ * AdwDialog *dialog;
128
+ *
129
+ * dialog = adw_alert_dialog_new (_("Replace File?"), NULL);
130
+ *
131
+ * adw_alert_dialog_format_body (ADW_ALERT_DIALOG (dialog),
132
+ * _("A file named “%s” already exists. Do you want to replace it?"),
133
+ * filename);
134
+ *
135
+ * adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dialog),
136
+ * "cancel", _("_Cancel"),
137
+ * "replace", _("_Replace"),
138
+ * NULL);
139
+ *
140
+ * adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dialog),
141
+ * "replace",
142
+ * ADW_RESPONSE_DESTRUCTIVE);
143
+ *
144
+ * adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dialog), "cancel");
145
+ * adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dialog), "cancel");
146
+ *
147
+ * adw_alert_dialog_choose (ADW_ALERT_DIALOG (dialog), GTK_WIDGET (self),
148
+ * NULL, (GAsyncReadyCallback) dialog_cb, self);
149
+ * }
150
+ * ```
151
+ *
152
+ * ## AdwAlertDialog as GtkBuildable
153
+ *
154
+ * `AdwAlertDialog` supports adding responses in UI definitions by via the
155
+ * `<responses>` element that may contain multiple `<response>` elements, each
156
+ * representing a response.
157
+ *
158
+ * Each of the `<response>` elements must have the `id` attribute specifying the
159
+ * response ID. The contents of the element are used as the response label.
160
+ *
161
+ * Response labels can be translated with the usual `translatable`, `context`
162
+ * and `comments` attributes.
163
+ *
164
+ * The `<response>` elements can also have `enabled` and/or `appearance`
165
+ * attributes. See [`AlertDialog.set_response_enabled`](https://docs.gtk.org/alertdialog/method.set_response_enabled.html) and
166
+ * [`AlertDialog.set_response_appearance`](https://docs.gtk.org/alertdialog/method.set_response_appearance.html) for details.
167
+ *
168
+ * Example of an `AdwAlertDialog` UI definition:
169
+ *
170
+ * ```xml
171
+ * <object class="AdwAlertDialog" id="dialog">
172
+ * <property name="heading" translatable="yes">Save Changes?</property>
173
+ * <property name="body" translatable="yes">Open documents contain unsaved changes. Changes which are not saved will be permanently lost.</property>
174
+ * <property name="default-response">save</property>
175
+ * <property name="close-response">cancel</property>
176
+ * <signal name="response" handler="response_cb"/>
177
+ * <responses>
178
+ * <response id="cancel" translatable="yes">_Cancel</response>
179
+ * <response id="discard" translatable="yes" appearance="destructive">_Discard</response>
180
+ * <response id="save" translatable="yes" appearance="suggested" enabled="false">_Save</response>
181
+ * </responses>
182
+ * </object>
183
+ * ```
184
+ */
185
+ export declare const AdwAlertDialog: (props: AdwAlertDialogProps) => ReactNode;
186
+ /**
187
+ * A freeform application window.
188
+ *
189
+ * ![application-window](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/application-window.png)
190
+ *
191
+ * `AdwApplicationWindow` is a [`Gtk.ApplicationWindow`](https://docs.gtk.org/gtk4/class.ApplicationWindow.html) subclass providing
192
+ * the same features as [`Window`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Window.html).
193
+ *
194
+ * See [`Window`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Window.html) for details.
195
+ *
196
+ * Example of an `AdwApplicationWindow` UI definition:
197
+ *
198
+ * ```xml
199
+ * <object class="AdwApplicationWindow">
200
+ * <property name="content">
201
+ * <object class="AdwToolbarView">
202
+ * <child type="top">
203
+ * <object class="AdwHeaderBar"/>
204
+ * </child>
205
+ * <property name="content">
206
+ * <!-- ... -->
207
+ * </property>
208
+ * </object>
209
+ * </property>
210
+ * </object>
211
+ * ```
212
+ *
213
+ * Using [`Gtk.Application.menubar`](https://docs.gtk.org/gtk4/property.Application.menubar.html) is not supported and may result in
214
+ * visual glitches.
215
+ */
216
+ export declare const AdwApplicationWindow: (props: AdwApplicationWindowProps) => ReactNode;
217
+ /**
218
+ * A bottom sheet with an optional bottom bar.
219
+ *
220
+ * ![bottom-sheet](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/bottom-sheet.png)
221
+ *
222
+ * `AdwBottomSheet` has three child widgets. [`BottomSheet.content`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.content.html) is
223
+ * shown persistently. [`BottomSheet.sheet`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.sheet.html) is displayed above it when
224
+ * it's open, and [`BottomSheet.bottom-bar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.bottom-bar.html) is displayed when it's not.
225
+ *
226
+ * Bottom sheet and bottom bar are attached to the bottom edge of the widget.
227
+ * They take the full width by default, but can only take a portion of it if
228
+ * [`BottomSheet.full-width`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.full-width.html) is set to `FALSE`. In this case,
229
+ * [`BottomSheet.align`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.align.html) determines where along the bottom edge they are
230
+ * placed.
231
+ *
232
+ * Bottom bar can be hidden using the [`BottomSheet.reveal-bottom-bar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.reveal-bottom-bar.html)
233
+ * property.
234
+ *
235
+ * `AdwBottomSheet` can be useful for applications such as music players, that
236
+ * want to have a persistent bottom bar that expands into a bottom sheet when
237
+ * clicked. It's meant for cases where a bottom sheet is tightly integrated into
238
+ * the UI. For more transient bottom sheets, see [`Dialog`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Dialog.html).
239
+ *
240
+ * To open or close the bottom sheet, use the [`BottomSheet.open`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.open.html)
241
+ * property.
242
+ *
243
+ * By default, the bottom sheet has an overlaid drag handle. It can be disabled
244
+ * by setting [`BottomSheet.show-drag-handle`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.show-drag-handle.html) to `FALSE`. Note that the
245
+ * handle also controls whether the sheet can be dragged using a pointer.
246
+ *
247
+ * Bottom sheets are modal by default, meaning that the content is dimmed and
248
+ * cannot be accessed while the sheet is open. Set [`BottomSheet.modal`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.modal.html)
249
+ * to `FALSE` if this behavior is unwanted.
250
+ *
251
+ * To disable user interactions for opening or closing the bottom sheet (such as
252
+ * swipes or clicking the bottom bar or close button), set
253
+ * [`BottomSheet.can-open`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.can-open.html) or [`BottomSheet.can-close`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.can-close.html) to
254
+ * `FALSE`.
255
+ *
256
+ * In some cases, particularly when using a full-width bottom bar, it may be
257
+ * necessary to shift [`BottomSheet.content`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.content.html) upwards. Use the
258
+ * [`BottomSheet.bottom-bar-height`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.bottom-bar-height.html) and
259
+ * [`BottomSheet.sheet-height`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.sheet-height.html) for that.
260
+ *
261
+ * `AdwBottomSheet` is not adaptive, and for larger window sizes applications
262
+ * may want to replace it with another UI, such as a sidebar. This can be done
263
+ * using [`MultiLayoutView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.MultiLayoutView.html).
264
+ *
265
+ * ## Sizing
266
+ *
267
+ * Unlike [`Dialog`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Dialog.html) presented as a bottom sheet, `AdwBottomSheet` just
268
+ * follows the content's natural size, and it's up to the applications to make
269
+ * sure their content provides one. For example, when using
270
+ * [`Gtk.ScrolledWindow`](https://docs.gtk.org/gtk4/class.ScrolledWindow.html), make sure to set
271
+ * [`Gtk.ScrolledWindow.propagate-natural-height`](https://docs.gtk.org/gtk4/property.ScrolledWindow.propagate-natural-height.html) to `TRUE`.
272
+ *
273
+ * ## Header Bar Integration
274
+ *
275
+ * When placed inside an `AdwBottomSheet`, [`HeaderBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.HeaderBar.html) will not show the
276
+ * title when [`BottomSheet.show-drag-handle`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.show-drag-handle.html) is `TRUE`, regardless of
277
+ * [`HeaderBar.show-title`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-title.html). This only applies to the default title,
278
+ * titles set with [`HeaderBar.title-widget`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.title-widget.html) will still be shown.
279
+ *
280
+ * ## `AdwBottomSheet` as `GtkBuildable`:
281
+ *
282
+ * The `AdwBottomSheet` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface
283
+ * supports setting the sheet widget by specifying “sheet” as the “type”
284
+ * attribute of a ``<child>`` element, and the bottom bar by specifying
285
+ * “bottom-bar”. Specifying “content” or omitting the child type results in
286
+ * setting the content child.
287
+ */
288
+ export declare const AdwBottomSheet: (props: AdwBottomSheetProps) => ReactNode;
289
+ /**
290
+ * A [`Gtk.ListBoxRow`](https://docs.gtk.org/gtk4/class.ListBoxRow.html) with an embedded text entry.
291
+ *
292
+ * ![entry-row](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/entry-row.png)
293
+ *
294
+ * `AdwEntryRow` has a title that doubles as placeholder text. It shows an icon
295
+ * indicating that it's editable and can receive additional widgets before or
296
+ * after the editable part.
297
+ *
298
+ * If [`EntryRow.show-apply-button`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.EntryRow.show-apply-button.html) is set to `TRUE`, `AdwEntryRow` can
299
+ * show an apply button when editing its contents. This can be useful if
300
+ * changing its contents can result in an expensive operation, such as network
301
+ * activity.
302
+ *
303
+ * `AdwEntryRow` provides only minimal API and should be used with the
304
+ * [`Gtk.Editable`](https://docs.gtk.org/gtk4/iface.Editable.html) API.
305
+ *
306
+ * See also [`PasswordEntryRow`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.PasswordEntryRow.html).
307
+ *
308
+ * ## AdwEntryRow as GtkBuildable
309
+ *
310
+ * The `AdwEntryRow` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface
311
+ * supports adding a child at its end by specifying “suffix” or omitting the
312
+ * “type” attribute of a `<child>` element.
313
+ *
314
+ * It also supports adding a child as a prefix widget by specifying “prefix” as
315
+ * the “type” attribute of a `<child>` element.
316
+ *
317
+ * ## CSS nodes
318
+ *
319
+ * `AdwEntryRow` has a single CSS node with name `row` and the `.entry` style
320
+ * class.
321
+ */
322
+ export declare const AdwEntryRow: ((props: AdwEntryRowProps) => ReactNode) & {
323
+ AddPrefix: (props: {
324
+ children?: ReactNode;
325
+ }) => ReactNode;
326
+ AddSuffix: (props: {
327
+ children?: ReactNode;
328
+ }) => ReactNode;
329
+ };
330
+ /**
331
+ * A [`Gtk.ListBoxRow`](https://docs.gtk.org/gtk4/class.ListBoxRow.html) used to reveal widgets.
332
+ *
333
+ * ![expander-row](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/expander-row.png)
334
+ *
335
+ * The `AdwExpanderRow` widget allows the user to reveal or hide widgets below
336
+ * it. It also allows the user to enable the expansion of the row, allowing to
337
+ * disable all that the row contains.
338
+ *
339
+ * ## AdwExpanderRow as GtkBuildable
340
+ *
341
+ * The `AdwExpanderRow` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface
342
+ * supports adding a child as an suffix widget by specifying “suffix” as the
343
+ * “type” attribute of a `<child>` element.
344
+ *
345
+ * It also supports adding it as a prefix widget by specifying “prefix” as the
346
+ * “type” attribute of a `<child>` element.
347
+ *
348
+ * ## CSS nodes
349
+ *
350
+ * `AdwExpanderRow` has a main CSS node with name `row` and the `.expander`
351
+ * style class. It has the `.empty` style class when it contains no children.
352
+ *
353
+ * It contains the subnodes `row.header` for its main embedded row,
354
+ * `list.nested` for the list it can expand, and `image.expander-row-arrow` for
355
+ * its arrow.
356
+ *
357
+ * ## Style classes
358
+ *
359
+ * `AdwExpanderRow` can use the `.`
360
+ * style class to emphasize the row subtitle instead of the row title, which is
361
+ * useful for displaying read-only properties.
362
+ *
363
+ * When used together with the `.monospace` style class, only the subtitle
364
+ * becomes monospace, not the title or any extra widgets.
365
+ */
366
+ export declare const AdwExpanderRow: ((props: AdwExpanderRowProps) => ReactNode) & {
367
+ AddPrefix: (props: {
368
+ children?: ReactNode;
369
+ }) => ReactNode;
370
+ AddSuffix: (props: {
371
+ children?: ReactNode;
372
+ }) => ReactNode;
373
+ AddRow: (props: {
374
+ children?: ReactNode;
375
+ }) => ReactNode;
376
+ AddAction: (props: {
377
+ children?: ReactNode;
378
+ }) => ReactNode;
379
+ };
380
+ /**
381
+ * An adaptive container acting like a box or an overlay.
382
+ *
383
+ * ![flap-wide](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/flap-wide.png)
384
+ * ![flap-narrow](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/flap-narrow.png)
385
+ *
386
+ * The `AdwFlap` widget can display its children like a [`Gtk.Box`](https://docs.gtk.org/gtk4/class.Box.html) does or
387
+ * like a [`Gtk.Overlay`](https://docs.gtk.org/gtk4/class.Overlay.html) does, according to the
388
+ * [`Flap.fold-policy`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.fold-policy.html) value.
389
+ *
390
+ * `AdwFlap` has at most three children: [`Flap.content`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.content.html),
391
+ * [`Flap.flap`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.flap.html) and [`Flap.separator`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.separator.html). Content is the primary
392
+ * child, flap is displayed next to it when unfolded, or overlays it when
393
+ * folded. Flap can be shown or hidden by changing the
394
+ * [`Flap.reveal-flap`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.reveal-flap.html) value, as well as via swipe gestures if
395
+ * [`Flap.swipe-to-open`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.swipe-to-open.html) and/or [`Flap.swipe-to-close`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.swipe-to-close.html) are set
396
+ * to `TRUE`.
397
+ *
398
+ * Optionally, a separator can be provided, which would be displayed between
399
+ * the content and the flap when there's no shadow to separate them, depending
400
+ * on the transition type.
401
+ *
402
+ * [`Flap.flap`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.flap.html) is transparent by default; add the
403
+ * `.background` style class to it if this is
404
+ * unwanted.
405
+ *
406
+ * If [`Flap.modal`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.modal.html) is set to `TRUE`, content becomes completely
407
+ * inaccessible when the flap is revealed while folded.
408
+ *
409
+ * The position of the flap and separator children relative to the content is
410
+ * determined by orientation, as well as the [`Flap.flap-position`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.flap-position.html)
411
+ * value.
412
+ *
413
+ * Folding the flap will automatically hide the flap widget, and unfolding it
414
+ * will automatically reveal it. If this behavior is not desired, the
415
+ * [`Flap.locked`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Flap.locked.html) property can be used to override it.
416
+ *
417
+ * Common use cases include sidebars, header bars that need to be able to
418
+ * overlap the window content (for example, in fullscreen mode) and bottom
419
+ * sheets.
420
+ *
421
+ * ## AdwFlap as GtkBuildable
422
+ *
423
+ * The `AdwFlap` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface supports
424
+ * setting the flap child by specifying “flap” as the “type” attribute of a
425
+ * ``<child>`` element, and separator by specifying “separator”. Specifying
426
+ * “content” child type or omitting it results in setting the content child.
427
+ *
428
+ * ## CSS nodes
429
+ *
430
+ * `AdwFlap` has a single CSS node with name `flap`. The node will get the style
431
+ * classes `.folded` when it is folded, and `.unfolded` when it's not.
432
+ */
433
+ export declare const AdwFlap: (props: AdwFlapProps) => ReactNode;
434
+ /**
435
+ * A title bar widget.
436
+ *
437
+ * ![header-bar](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/header-bar.png)
438
+ *
439
+ * `AdwHeaderBar` is similar to [`Gtk.HeaderBar`](https://docs.gtk.org/gtk4/class.HeaderBar.html), but provides additional
440
+ * features compared to it. Refer to `GtkHeaderBar` for details. It is typically
441
+ * used as a top bar within [`ToolbarView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ToolbarView.html).
442
+ *
443
+ * ## Dialog Integration
444
+ *
445
+ * When placed inside an [`Dialog`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Dialog.html), `AdwHeaderBar` will display the dialog
446
+ * title instead of window title. It will also adjust the decoration layout to
447
+ * ensure it always has a close button and nothing else. Set
448
+ * [`HeaderBar.show-start-title-buttons`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-start-title-buttons.html) and
449
+ * [`HeaderBar.show-end-title-buttons`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-end-title-buttons.html) to `FALSE` to remove it if it's
450
+ * unwanted.
451
+ *
452
+ * ## Navigation View Integration
453
+ *
454
+ * When placed inside an [`NavigationPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationPage.html), `AdwHeaderBar` will display the
455
+ * page title instead of window title.
456
+ *
457
+ * When used together with [`NavigationView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationView.html) or [`NavigationSplitView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationSplitView.html),
458
+ * it will also display a back button that can be used to go back to the previous
459
+ * page. The button also has a context menu, allowing to pop multiple pages at
460
+ * once, potentially across multiple navigation views.
461
+ *
462
+ * Set [`HeaderBar.show-back-button`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-back-button.html) to `FALSE` to disable this behavior
463
+ * in rare scenarios where it's unwanted.
464
+ *
465
+ * ## Split View Integration
466
+ *
467
+ * When placed inside [`NavigationSplitView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationSplitView.html) or [`OverlaySplitView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.OverlaySplitView.html),
468
+ * `AdwHeaderBar` will automatically hide the title buttons other than at the
469
+ * edges of the window.
470
+ *
471
+ * ## Bottom Sheet Integration
472
+ *
473
+ * When played inside [`BottomSheet`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.BottomSheet.html), `AdwHeaderBar` will not show the title
474
+ * unless [`BottomSheet.show-drag-handle`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.BottomSheet.show-drag-handle.html) is set to `FALSE`, regardless
475
+ * of [`HeaderBar.show-title`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-title.html). This only applies to the default title,
476
+ * titles set with [`HeaderBar.title-widget`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.title-widget.html) will still be shown.
477
+ *
478
+ * ## Centering Policy
479
+ *
480
+ * [`HeaderBar.centering-policy`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.centering-policy.html) allows to enforce strict centering of
481
+ * the title widget. This can be useful for entries inside [`Clamp`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Clamp.html).
482
+ *
483
+ * ## Title Buttons
484
+ *
485
+ * Unlike `GtkHeaderBar`, `AdwHeaderBar` allows to toggle title button
486
+ * visibility for each side individually, using the
487
+ * [`HeaderBar.show-start-title-buttons`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-start-title-buttons.html) and
488
+ * [`HeaderBar.show-end-title-buttons`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-end-title-buttons.html) properties.
489
+ *
490
+ * ## CSS nodes
491
+ *
492
+ * ```
493
+ * headerbar
494
+ * ╰── windowhandle
495
+ * ╰── box
496
+ * ├── widget
497
+ * │ ╰── box.start
498
+ * │ ├── windowcontrols.start
499
+ * │ ├── widget
500
+ * │ │ ╰── [button.back]
501
+ * │ ╰── [other children]
502
+ * ├── widget
503
+ * │ ╰── [Title Widget]
504
+ * ╰── widget
505
+ * ╰── box.end
506
+ * ├── [other children]
507
+ * ╰── windowcontrols.end
508
+ * ```
509
+ *
510
+ * `AdwHeaderBar`'s CSS node is called `headerbar`. It contains a `windowhandle`
511
+ * subnode, which contains a `box` subnode, which contains three `widget`
512
+ * subnodes at the start, center and end of the header bar. The start and end
513
+ * subnodes contain a `box` subnode with the `.start` and `.end` style classes
514
+ * respectively, and the center node contains a node that represents the title.
515
+ *
516
+ * Each of the boxes contains a `windowcontrols` subnode, see
517
+ * [`Gtk.WindowControls`](https://docs.gtk.org/gtk4/class.WindowControls.html) for details, as well as other children.
518
+ *
519
+ * When [`HeaderBar.show-back-button`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-back-button.html) is `TRUE`, the start box also
520
+ * contains a node with the name `widget` that contains a node with the name
521
+ * `button` and `.back` style class.
522
+ *
523
+ * ## Accessibility
524
+ *
525
+ * `AdwHeaderBar` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
526
+ */
527
+ export declare const AdwHeaderBar: ((props: AdwHeaderBarProps) => ReactNode) & {
528
+ PackStart: (props: {
529
+ children?: ReactNode;
530
+ }) => ReactNode;
531
+ PackEnd: (props: {
532
+ children?: ReactNode;
533
+ }) => ReactNode;
534
+ };
535
+ /**
536
+ * A dialog presenting a message or a question.
537
+ *
538
+ * ![message-dialog](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/message-dialog.png)
539
+ *
540
+ * Message dialogs have a heading, a body, an optional child widget, and one or
541
+ * multiple responses, each presented as a button.
542
+ *
543
+ * Each response has a unique string ID, and a button label. Additionally, each
544
+ * response can be enabled or disabled, and can have a suggested or destructive
545
+ * appearance.
546
+ *
547
+ * When one of the responses is activated, or the dialog is closed, the
548
+ * [`MessageDialog.:response`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/signal.MessageDialog.response.html) signal will be emitted. This signal is
549
+ * detailed, and the detail, as well as the `response` parameter will be set to
550
+ * the ID of the activated response, or to the value of the
551
+ * [`MessageDialog.close-response`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.MessageDialog.close-response.html) property if the dialog had been
552
+ * closed without activating any of the responses.
553
+ *
554
+ * Response buttons can be presented horizontally or vertically depending on
555
+ * available space.
556
+ *
557
+ * When a response is activated, `AdwMessageDialog` is closed automatically.
558
+ *
559
+ * An example of using a message dialog:
560
+ *
561
+ * ```c
562
+ * GtkWidget *dialog;
563
+ *
564
+ * dialog = adw_message_dialog_new (parent, _("Replace File?"), NULL);
565
+ *
566
+ * adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog),
567
+ * _("A file named “%s” already exists. Do you want to replace it?"),
568
+ * filename);
569
+ *
570
+ * adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog),
571
+ * "cancel", _("_Cancel"),
572
+ * "replace", _("_Replace"),
573
+ * NULL);
574
+ *
575
+ * adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE);
576
+ *
577
+ * adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel");
578
+ * adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel");
579
+ *
580
+ * g_signal_connect (dialog, "response", G_CALLBACK (response_cb), self);
581
+ *
582
+ * gtk_window_present (GTK_WINDOW (dialog));
583
+ * ```
584
+ *
585
+ * ## Async API
586
+ *
587
+ * `AdwMessageDialog` can also be used via the [`MessageDialog.choose`](https://docs.gtk.org/messagedialog/method.choose.html)
588
+ * method. This API follows the GIO async pattern, for example:
589
+ *
590
+ * ```c
591
+ * static void
592
+ * dialog_cb (AdwMessageDialog *dialog,
593
+ * GAsyncResult *result,
594
+ * MyWindow *self)
595
+ * {
596
+ * const char *response = adw_message_dialog_choose_finish (dialog, result);
597
+ *
598
+ * // ...
599
+ * }
600
+ *
601
+ * static void
602
+ * show_dialog (MyWindow *self)
603
+ * {
604
+ * GtkWidget *dialog;
605
+ *
606
+ * dialog = adw_message_dialog_new (GTK_WINDOW (self), _("Replace File?"), NULL);
607
+ *
608
+ * adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog),
609
+ * _("A file named “%s” already exists. Do you want to replace it?"),
610
+ * filename);
611
+ *
612
+ * adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog),
613
+ * "cancel", _("_Cancel"),
614
+ * "replace", _("_Replace"),
615
+ * NULL);
616
+ *
617
+ * adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE);
618
+ *
619
+ * adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel");
620
+ * adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel");
621
+ *
622
+ * adw_message_dialog_choose (ADW_MESSAGE_DIALOG (dialog), NULL, (GAsyncReadyCallback) dialog_cb, self);
623
+ * }
624
+ * ```
625
+ *
626
+ * ## AdwMessageDialog as GtkBuildable
627
+ *
628
+ * `AdwMessageDialog` supports adding responses in UI definitions by via the
629
+ * `<responses>` element that may contain multiple `<response>` elements, each
630
+ * representing a response.
631
+ *
632
+ * Each of the `<response>` elements must have the `id` attribute specifying the
633
+ * response ID. The contents of the element are used as the response label.
634
+ *
635
+ * Response labels can be translated with the usual `translatable`, `context`
636
+ * and `comments` attributes.
637
+ *
638
+ * The `<response>` elements can also have `enabled` and/or `appearance`
639
+ * attributes. See [`MessageDialog.set_response_enabled`](https://docs.gtk.org/messagedialog/method.set_response_enabled.html) and
640
+ * [`MessageDialog.set_response_appearance`](https://docs.gtk.org/messagedialog/method.set_response_appearance.html) for details.
641
+ *
642
+ * Example of an `AdwMessageDialog` UI definition:
643
+ *
644
+ * ```xml
645
+ * <object class="AdwMessageDialog" id="dialog">
646
+ * <property name="heading" translatable="yes">Save Changes?</property>
647
+ * <property name="body" translatable="yes">Open documents contain unsaved changes. Changes which are not saved will be permanently lost.</property>
648
+ * <property name="default-response">save</property>
649
+ * <property name="close-response">cancel</property>
650
+ * <signal name="response" handler="response_cb"/>
651
+ * <responses>
652
+ * <response id="cancel" translatable="yes">_Cancel</response>
653
+ * <response id="discard" translatable="yes" appearance="destructive">_Discard</response>
654
+ * <response id="save" translatable="yes" appearance="suggested" enabled="false">_Save</response>
655
+ * </responses>
656
+ * </object>
657
+ * ```
658
+ *
659
+ * ## Accessibility
660
+ *
661
+ * `AdwMessageDialog` uses the `GTK_ACCESSIBLE_ROLE_DIALOG` role.
662
+ */
663
+ export declare const AdwMessageDialog: (props: AdwMessageDialogProps) => ReactNode;
664
+ /**
665
+ * A widget presenting sidebar and content side by side or as a navigation view.
666
+ *
667
+ * ![navigation-split-view](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/navigation-split-view.png)
668
+ * ![navigation-split-view-collapsed](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/navigation-split-view-collapsed.png)
669
+ *
670
+ * `AdwNavigationSplitView` has two [`NavigationPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationPage.html) children: sidebar and
671
+ * content, and displays them side by side.
672
+ *
673
+ * When [`NavigationSplitView.collapsed`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.collapsed.html) is set to `TRUE`, it instead
674
+ * puts both children inside an [`NavigationView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationView.html). The
675
+ * [`NavigationSplitView.show-content`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.show-content.html) controls which child is visible
676
+ * while collapsed.
677
+ *
678
+ * See also [`OverlaySplitView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.OverlaySplitView.html).
679
+ *
680
+ * `AdwNavigationSplitView` is typically used together with an [`Breakpoint`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Breakpoint.html)
681
+ * setting the `collapsed` property to `TRUE` on small widths, as follows:
682
+ *
683
+ * ```xml
684
+ * <object class="AdwWindow">
685
+ * <property name="width-request">280</property>
686
+ * <property name="height-request">200</property>
687
+ * <property name="default-width">800</property>
688
+ * <property name="default-height">800</property>
689
+ * <child>
690
+ * <object class="AdwBreakpoint">
691
+ * <condition>max-width: 400sp</condition>
692
+ * <setter object="split_view" property="collapsed">True</setter>
693
+ * </object>
694
+ * </child>
695
+ * <property name="content">
696
+ * <object class="AdwNavigationSplitView" id="split_view">
697
+ * <property name="sidebar">
698
+ * <object class="AdwNavigationPage">
699
+ * <property name="title" translatable="yes">Sidebar</property>
700
+ * <property name="child">
701
+ * <!-- ... -->
702
+ * </property>
703
+ * </object>
704
+ * </property>
705
+ * <property name="content">
706
+ * <object class="AdwNavigationPage">
707
+ * <property name="title" translatable="yes">Content</property>
708
+ * <property name="child">
709
+ * <!-- ... -->
710
+ * </property>
711
+ * </object>
712
+ * </property>
713
+ * </object>
714
+ * </property>
715
+ * </object>
716
+ * ```
717
+ *
718
+ * ## Sizing
719
+ *
720
+ * When not collapsed, `AdwNavigationSplitView` changes the sidebar width
721
+ * depending on its own width.
722
+ *
723
+ * If possible, it tries to allocate a fraction of the total width, controlled
724
+ * with the [`NavigationSplitView.sidebar-width-fraction`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.sidebar-width-fraction.html) property.
725
+ *
726
+ * The sidebar also has minimum and maximum sizes, controlled with the
727
+ * [`NavigationSplitView.min-sidebar-width`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.min-sidebar-width.html) and
728
+ * [`NavigationSplitView.max-sidebar-width`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.max-sidebar-width.html) properties.
729
+ *
730
+ * The minimum and maximum sizes are using the length unit specified with the
731
+ * [`NavigationSplitView.sidebar-width-unit`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.sidebar-width-unit.html).
732
+ *
733
+ * By default, sidebar is using 25% of the total width, with 180sp as the
734
+ * minimum size and 280sp as the maximum size.
735
+ *
736
+ * ## Header Bar Integration
737
+ *
738
+ * When used inside `AdwNavigationSplitView`, [`HeaderBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.HeaderBar.html) will
739
+ * automatically hide the window buttons in the middle.
740
+ *
741
+ * When collapsed, it also displays a back button for the content widget, as
742
+ * well as the page titles. See [`NavigationView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationView.html) documentation for details.
743
+ *
744
+ * ## Actions
745
+ *
746
+ * `AdwNavigationSplitView` defines the same actions as `AdwNavigationView`, but
747
+ * they can be used even when the split view is not collapsed:
748
+ *
749
+ * - `navigation.push` takes a string parameter specifying the tag of the page
750
+ * to push. If it matches the tag of the content widget, it sets
751
+ * [`NavigationSplitView.show-content`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.show-content.html) to `TRUE`.
752
+ *
753
+ * - `navigation.pop` doesn't take any parameters and sets
754
+ * [`NavigationSplitView.show-content`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationSplitView.show-content.html) to `FALSE`.
755
+ *
756
+ * ## `AdwNavigationSplitView` as `GtkBuildable`
757
+ *
758
+ * The `AdwNavigationSplitView` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html)
759
+ * interface supports setting the sidebar widget by specifying “sidebar” as the
760
+ * “type” attribute of a ``<child>`` element, Specifying “content” child type or
761
+ * omitting it results in setting the content widget.
762
+ *
763
+ * ## CSS nodes
764
+ *
765
+ * `AdwNavigationSplitView` has a single CSS node with the name
766
+ * `navigation-split-view`.
767
+ *
768
+ * When collapsed, it contains a child node with the name `navigation-view`
769
+ * containing both children.
770
+ *
771
+ * ```
772
+ * navigation-split-view
773
+ * ╰── navigation-view
774
+ * ├── [sidebar child]
775
+ * ╰── [content child]
776
+ * ```
777
+ *
778
+ * When not collapsed, it contains two nodes with the name `widget`, one with
779
+ * the `.sidebar-pane` style class, the other one with `.content-view` style
780
+ * class, containing the sidebar and content children respectively.
781
+ *
782
+ * ```
783
+ * navigation-split-view
784
+ * ├── widget.sidebar-pane
785
+ * │ ╰── [sidebar child]
786
+ * ╰── widget.content-pane
787
+ * ╰── [content child]
788
+ * ```
789
+ *
790
+ * ## Accessibility
791
+ *
792
+ * `AdwNavigationSplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
793
+ */
794
+ export declare const AdwNavigationSplitView: ((props: AdwNavigationSplitViewProps) => ReactNode) & {
795
+ Page: (props: NavigationSplitViewPageProps) => ReactNode;
796
+ };
797
+ /**
798
+ * A page-based navigation container.
799
+ *
800
+ * ![navigation-view](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/navigation-view.png)
801
+ *
802
+ * `AdwNavigationView` presents one child at a time, similar to
803
+ * [`Gtk.Stack`](https://docs.gtk.org/gtk4/class.Stack.html).
804
+ *
805
+ * `AdwNavigationView` can only contain [`NavigationPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationPage.html) children.
806
+ *
807
+ * It maintains a navigation stack that can be controlled with
808
+ * [`NavigationView.push`](https://docs.gtk.org/navigationview/method.push.html) and [`NavigationView.pop`](https://docs.gtk.org/navigationview/method.pop.html). The whole
809
+ * navigation stack can also be replaced using [`NavigationView.replace`](https://docs.gtk.org/navigationview/method.replace.html).
810
+ *
811
+ * `AdwNavigationView` allows to manage pages statically or dynamically.
812
+ *
813
+ * Static pages can be added using the [`NavigationView.add`](https://docs.gtk.org/navigationview/method.add.html) method. The
814
+ * `AdwNavigationView` will keep a reference to these pages, but they aren't
815
+ * accessible to the user until [`NavigationView.push`](https://docs.gtk.org/navigationview/method.push.html) is called (except
816
+ * for the first page, which is pushed automatically). Use the
817
+ * [`NavigationView.remove`](https://docs.gtk.org/navigationview/method.remove.html) method to remove them. This is useful for
818
+ * applications that have a small number of unique pages and just need
819
+ * navigation between them.
820
+ *
821
+ * Dynamic pages are automatically destroyed once they are popped off the
822
+ * navigation stack. To add a page like this, push it using the
823
+ * [`NavigationView.push`](https://docs.gtk.org/navigationview/method.push.html) method without calling
824
+ * [`NavigationView.add`](https://docs.gtk.org/navigationview/method.add.html) first.
825
+ *
826
+ * ## Tags
827
+ *
828
+ * Static pages, as well as any pages in the navigation stack, can be accessed
829
+ * by their [`NavigationPage.tag`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationPage.tag.html). For example,
830
+ * [`NavigationView.push_by_tag`](https://docs.gtk.org/navigationview/method.push_by_tag.html) can be used to push a static page that's
831
+ * not in the navigation stack without having to keep a reference to it manually.
832
+ *
833
+ * ## Header Bar Integration
834
+ *
835
+ * When used inside `AdwNavigationView`, [`HeaderBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.HeaderBar.html) will automatically
836
+ * display a back button that can be used to go back to the previous page when
837
+ * possible. The button also has a context menu, allowing to pop multiple pages
838
+ * at once, potentially across multiple navigation views.
839
+ *
840
+ * Set [`HeaderBar.show-back-button`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.HeaderBar.show-back-button.html) to `FALSE` to disable this behavior
841
+ * in rare scenarios where it's unwanted.
842
+ *
843
+ * `AdwHeaderBar` will also display the title of the `AdwNavigationPage` it's
844
+ * placed into, so most applications shouldn't need to customize it at all.
845
+ *
846
+ * ## Shortcuts and Gestures
847
+ *
848
+ * `AdwNavigationView` supports the following shortcuts for going to the
849
+ * previous page:
850
+ *
851
+ * - `Escape` (unless [`NavigationView.pop-on-escape`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationView.pop-on-escape.html) is set to
852
+ * `FALSE`)
853
+ * - `Alt`+`←`
854
+ * - Back mouse button
855
+ *
856
+ * Additionally, it supports interactive gestures:
857
+ *
858
+ * - One-finger swipe towards the right on touchscreens
859
+ * - Scrolling towards the right on touchpads (usually two-finger swipe)
860
+ *
861
+ * These gestures have transitions enabled regardless of the
862
+ * [`NavigationView.animate-transitions`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationView.animate-transitions.html) value.
863
+ *
864
+ * Applications can also enable shortcuts for pushing another page onto the
865
+ * navigation stack via connecting to the [`NavigationView.:get-next-page`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/signal.NavigationView.get-next-page.html)
866
+ * signal, in that case the following shortcuts are supported:
867
+ *
868
+ * - `Alt`+`→`
869
+ * - Forward mouse button
870
+ * - Swipe/scrolling towards the left
871
+ *
872
+ * For right-to-left locales, the gestures and shortcuts are reversed.
873
+ *
874
+ * [`NavigationPage.can-pop`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.NavigationPage.can-pop.html) can be used to disable them, along with the
875
+ * header bar back buttons.
876
+ *
877
+ * ## Actions
878
+ *
879
+ * `AdwNavigationView` defines actions for controlling the navigation stack.
880
+ * actions for controlling the navigation stack:
881
+ *
882
+ * - `navigation.push` takes a string parameter specifying the tag of the page to
883
+ * push, and is equivalent to calling [`NavigationView.push_by_tag`](https://docs.gtk.org/navigationview/method.push_by_tag.html).
884
+ *
885
+ * - `navigation.pop` doesn't take any parameters and pops the current page from
886
+ * the navigation stack, equivalent to calling [`NavigationView.pop`](https://docs.gtk.org/navigationview/method.pop.html).
887
+ *
888
+ * ## `AdwNavigationView` as `GtkBuildable`
889
+ *
890
+ * `AdwNavigationView` allows to add pages as children, equivalent to using the
891
+ * [`NavigationView.add`](https://docs.gtk.org/navigationview/method.add.html) method.
892
+ *
893
+ * Example of an `AdwNavigationView` UI definition:
894
+ *
895
+ * ```xml
896
+ * <object class="AdwNavigationView">
897
+ * <child>
898
+ * <object class="AdwNavigationPage">
899
+ * <property name="title" translatable="yes">Page 1</property>
900
+ * <property name="child">
901
+ * <object class="AdwToolbarView">
902
+ * <child type="top">
903
+ * <object class="AdwHeaderBar"/>
904
+ * </child>
905
+ * <property name="content">
906
+ * <object class="GtkButton">
907
+ * <property name="label" translatable="yes">Open Page 2</property>
908
+ * <property name="halign">center</property>
909
+ * <property name="valign">center</property>
910
+ * <property name="action-name">navigation.push</property>
911
+ * <property name="action-target">'page-2'</property>
912
+ * <style>
913
+ * <class name="pill"/>
914
+ * </style>
915
+ * </object>
916
+ * </property>
917
+ * </object>
918
+ * </property>
919
+ * </object>
920
+ * </child>
921
+ * <child>
922
+ * <object class="AdwNavigationPage">
923
+ * <property name="title" translatable="yes">Page 2</property>
924
+ * <property name="tag">page-2</property>
925
+ * <property name="child">
926
+ * <object class="AdwToolbarView">
927
+ * <child type="top">
928
+ * <object class="AdwHeaderBar"/>
929
+ * </child>
930
+ * <property name="content">
931
+ * <!-- ... -->
932
+ * </property>
933
+ * </object>
934
+ * </property>
935
+ * </object>
936
+ * </child>
937
+ * </object>
938
+ * ```
939
+ *
940
+ * ![navigation-view-example](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/navigation-view-example.png)
941
+ *
942
+ * ## CSS nodes
943
+ *
944
+ * `AdwNavigationView` has a single CSS node with the name `navigation-view`.
945
+ *
946
+ * ## Accessibility
947
+ *
948
+ * `AdwNavigationView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
949
+ */
950
+ export declare const AdwNavigationView: ((props: AdwNavigationViewProps) => ReactNode) & {
951
+ Page: (props: NavigationViewPageProps) => ReactNode;
952
+ };
953
+ /**
954
+ * A widget presenting sidebar and content side by side or as an overlay.
955
+ *
956
+ * ![overlay-split-view](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/overlay-split-view.png)
957
+ * ![overlay-split-view-collapsed](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/overlay-split-view-collapsed.png)
958
+ *
959
+ * `AdwOverlaySplitView` has two children: sidebar and content, and displays
960
+ * them side by side.
961
+ *
962
+ * When [`OverlaySplitView.collapsed`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.collapsed.html) is set to `TRUE`, the sidebar is
963
+ * instead shown as an overlay above the content widget.
964
+ *
965
+ * The sidebar can be hidden or shown using the
966
+ * [`OverlaySplitView.show-sidebar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.show-sidebar.html) property.
967
+ *
968
+ * Sidebar can be displayed before or after the content, this can be controlled
969
+ * with the [`OverlaySplitView.sidebar-position`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.sidebar-position.html) property.
970
+ *
971
+ * Collapsing the split view automatically hides the sidebar widget, and
972
+ * uncollapsing it shows the sidebar. If this behavior is not desired, the
973
+ * [`OverlaySplitView.pin-sidebar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.pin-sidebar.html) property can be used to override it.
974
+ *
975
+ * `AdwOverlaySplitView` supports an edge swipe gesture for showing the sidebar,
976
+ * and a swipe from the sidebar for hiding it. Gestures are only supported on
977
+ * touchscreen, but not touchpad. Gestures can be controlled with the
978
+ * [`OverlaySplitView.enable-show-gesture`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.enable-show-gesture.html) and
979
+ * [`OverlaySplitView.enable-hide-gesture`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.enable-hide-gesture.html) properties.
980
+ *
981
+ * See also [`NavigationSplitView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.NavigationSplitView.html).
982
+ *
983
+ * `AdwOverlaySplitView` is typically used together with an [`Breakpoint`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Breakpoint.html)
984
+ * setting the `collapsed` property to `TRUE` on small widths, as follows:
985
+ *
986
+ * ```xml
987
+ * <object class="AdwWindow">
988
+ * <property name="default-width">800</property>
989
+ * <property name="default-height">800</property>
990
+ * <child>
991
+ * <object class="AdwBreakpoint">
992
+ * <condition>max-width: 400sp</condition>
993
+ * <setter object="split_view" property="collapsed">True</setter>
994
+ * </object>
995
+ * </child>
996
+ * <property name="content">
997
+ * <object class="AdwOverlaySplitView" id="split_view">
998
+ * <property name="sidebar">
999
+ * <!-- ... -->
1000
+ * </property>
1001
+ * <property name="content">
1002
+ * <!-- ... -->
1003
+ * </property>
1004
+ * </object>
1005
+ * </property>
1006
+ * </object>
1007
+ * ```
1008
+ *
1009
+ * `AdwOverlaySplitView` is often used for implementing the
1010
+ * utility pane
1011
+ * pattern.
1012
+ *
1013
+ * ## Sizing
1014
+ *
1015
+ * When not collapsed, `AdwOverlaySplitView` changes the sidebar width
1016
+ * depending on its own width.
1017
+ *
1018
+ * If possible, it tries to allocate a fraction of the total width, controlled
1019
+ * with the [`OverlaySplitView.sidebar-width-fraction`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.sidebar-width-fraction.html) property.
1020
+ *
1021
+ * The sidebar also has minimum and maximum sizes, controlled with the
1022
+ * [`OverlaySplitView.min-sidebar-width`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.min-sidebar-width.html) and
1023
+ * [`OverlaySplitView.max-sidebar-width`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.max-sidebar-width.html) properties.
1024
+ *
1025
+ * The minimum and maximum sizes are using the length unit specified with the
1026
+ * [`OverlaySplitView.sidebar-width-unit`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.sidebar-width-unit.html).
1027
+ *
1028
+ * By default, sidebar is using 25% of the total width, with 180sp as the
1029
+ * minimum size and 280sp as the maximum size.
1030
+ *
1031
+ * When collapsed, the preferred width fraction is ignored and the sidebar uses
1032
+ * [`OverlaySplitView.max-sidebar-width`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.OverlaySplitView.max-sidebar-width.html) when possible.
1033
+ *
1034
+ * ## Header Bar Integration
1035
+ *
1036
+ * When used inside `AdwOverlaySplitView`, [`HeaderBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.HeaderBar.html) will automatically
1037
+ * hide the window buttons in the middle.
1038
+ *
1039
+ * ## `AdwOverlaySplitView` as `GtkBuildable`
1040
+ *
1041
+ * The `AdwOverlaySplitView` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html)
1042
+ * interface supports setting the sidebar widget by specifying “sidebar” as the
1043
+ * “type” attribute of a ``<child>`` element, Specifying “content” child type or
1044
+ * omitting it results in setting the content widget.
1045
+ *
1046
+ * ## CSS nodes
1047
+ *
1048
+ * `AdwOverlaySplitView` has a single CSS node with the name
1049
+ * `overlay-split-view`.
1050
+ *
1051
+ * It contains two nodes with the name `widget`, containing the sidebar and
1052
+ * content children.
1053
+ *
1054
+ * When not collapsed, they have the `.sidebar-view` and `.content-view` style
1055
+ * classes respectively.
1056
+ *
1057
+ * ```
1058
+ * overlay-split-view
1059
+ * ├── widget.sidebar-pane
1060
+ * │ ╰── [sidebar child]
1061
+ * ╰── widget.content-pane
1062
+ * ╰── [content child]
1063
+ * ```
1064
+ *
1065
+ * When collapsed, the one containing the sidebar child has the `.background`
1066
+ * style class and the other one has no style classes.
1067
+ *
1068
+ * ```
1069
+ * overlay-split-view
1070
+ * ├── widget.background
1071
+ * │ ╰── [sidebar child]
1072
+ * ╰── widget
1073
+ * ╰── [content child]
1074
+ * ```
1075
+ *
1076
+ * ## Accessibility
1077
+ *
1078
+ * `AdwOverlaySplitView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
1079
+ */
1080
+ export declare const AdwOverlaySplitView: (props: AdwOverlaySplitViewProps) => ReactNode;
1081
+ /**
1082
+ * A group of preference rows.
1083
+ *
1084
+ * ![preferences-group](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/preferences-group.png)
1085
+ *
1086
+ * An `AdwPreferencesGroup` represents a group or tightly related preferences,
1087
+ * which in turn are represented by [`PreferencesRow`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.PreferencesRow.html).
1088
+ *
1089
+ * To summarize the role of the preferences it gathers, a group can have both a
1090
+ * title and a description. The title will be used by [`PreferencesDialog`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.PreferencesDialog.html)
1091
+ * to let the user look for a preference.
1092
+ *
1093
+ * The [`PreferencesGroup.separate-rows`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.PreferencesGroup.separate-rows.html) property can be used to
1094
+ * separate the rows within the group, same as when using the
1095
+ * `.boxed-list-separate` style class
1096
+ * instead of `.boxed-list`.
1097
+ *
1098
+ * ## AdwPreferencesGroup as GtkBuildable
1099
+ *
1100
+ * The `AdwPreferencesGroup` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface
1101
+ * supports adding [`PreferencesRow`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.PreferencesRow.html)s to the list by omitting "type". If "type"
1102
+ * is omitted and the widget isn't a [`PreferencesRow`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.PreferencesRow.html) the child is added to
1103
+ * a box below the list.
1104
+ *
1105
+ * When the "type" attribute of a child is `header-suffix`, the child
1106
+ * is set as the suffix on the end of the title and description.
1107
+ *
1108
+ * ## CSS nodes
1109
+ *
1110
+ * `AdwPreferencesGroup` has a single CSS node with name `preferencesgroup`.
1111
+ *
1112
+ * ## Accessibility
1113
+ *
1114
+ * `AdwPreferencesGroup` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
1115
+ */
1116
+ export declare const AdwPreferencesGroup: (props: AdwPreferencesGroupProps) => ReactNode;
1117
+ /**
1118
+ * A page from [`PreferencesDialog`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.PreferencesDialog.html).
1119
+ *
1120
+ * ![preferences-page](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/preferences-page.png)
1121
+ *
1122
+ * The `AdwPreferencesPage` widget gathers preferences groups into a single page
1123
+ * of a preferences window.
1124
+ *
1125
+ * ## CSS nodes
1126
+ *
1127
+ * `AdwPreferencesPage` has a single CSS node with name `preferencespage`.
1128
+ *
1129
+ * ## Accessibility
1130
+ *
1131
+ * `AdwPreferencesPage` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
1132
+ */
1133
+ export declare const AdwPreferencesPage: (props: AdwPreferencesPageProps) => ReactNode;
1134
+ /**
1135
+ * A combined button and dropdown widget.
1136
+ *
1137
+ * ![split-button](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/split-button.png)
1138
+ *
1139
+ * `AdwSplitButton` is typically used to present a set of actions in a menu,
1140
+ * but allow access to one of them with a single click.
1141
+ *
1142
+ * The API is very similar to [`Gtk.Button`](https://docs.gtk.org/gtk4/class.Button.html) and [`Gtk.MenuButton`](https://docs.gtk.org/gtk4/class.MenuButton.html), see
1143
+ * their documentation for details.
1144
+ *
1145
+ * ## CSS nodes
1146
+ *
1147
+ * ```
1148
+ * splitbutton[.image-button][.text-button]
1149
+ * ├── button
1150
+ * │ ╰── <content>
1151
+ * ├── separator
1152
+ * ╰── menubutton
1153
+ * ╰── button.toggle
1154
+ * ╰── arrow
1155
+ * ```
1156
+ *
1157
+ * `AdwSplitButton`'s CSS node is called `splitbutton`. It contains the css
1158
+ * nodes: `button`, `separator`, `menubutton`. See [`Gtk.MenuButton`](https://docs.gtk.org/gtk4/class.MenuButton.html)
1159
+ * documentation for the `menubutton` contents.
1160
+ *
1161
+ * The main CSS node will contain the `.image-button` or `.text-button` style
1162
+ * classes matching the button contents. The nested button nodes will never
1163
+ * contain them.
1164
+ *
1165
+ * ## Style classes
1166
+ *
1167
+ * `AdwSplitButton` can use some of the same style classes as [`Gtk.Button`](https://docs.gtk.org/gtk4/class.Button.html):
1168
+ *
1169
+ * - `.suggested-action`
1170
+ * - `.destructive-action`
1171
+ * - `.flat`
1172
+ * - `.raised`
1173
+ *
1174
+ * Other style classes, like `.pill`, cannot be used.
1175
+ *
1176
+ * ## Accessibility
1177
+ *
1178
+ * `AdwSplitButton` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
1179
+ */
1180
+ export declare const AdwSplitButton: (props: AdwSplitButtonProps) => ReactNode;
1181
+ /**
1182
+ * A tab bar for [`TabView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.TabView.html).
1183
+ *
1184
+ * ![tab-bar](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/tab-bar.png)
1185
+ *
1186
+ * The `AdwTabBar` widget is a tab bar that can be used with conjunction with
1187
+ * `AdwTabView`. It is typically used as a top bar within [`ToolbarView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ToolbarView.html).
1188
+ *
1189
+ * `AdwTabBar` can autohide and can optionally contain action widgets on both
1190
+ * sides of the tabs.
1191
+ *
1192
+ * When there's not enough space to show all the tabs, `AdwTabBar` will scroll
1193
+ * them. Pinned tabs always stay visible and aren't a part of the scrollable
1194
+ * area.
1195
+ *
1196
+ * ## CSS nodes
1197
+ *
1198
+ * `AdwTabBar` has a single CSS node with name `tabbar`.
1199
+ *
1200
+ * ## Style classes
1201
+ *
1202
+ * By default `AdwTabBar` look like a part of an `AdwHeaderBar` and is intended
1203
+ * to be used directly attached to one or used as a [`ToolbarView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ToolbarView.html) toolbar.
1204
+ * The `.inline` style class removes its background,
1205
+ * so that it can be used in different contexts instead.
1206
+ *
1207
+ * ![tab-bar-inline](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/tab-bar-inline.png)
1208
+ */
1209
+ export declare const AdwTabBar: (props: AdwTabBarProps) => ReactNode;
1210
+ /**
1211
+ * A widget containing a page, as well as top and/or bottom bars.
1212
+ *
1213
+ * ![toolbar-view](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/toolbar-view.png)
1214
+ *
1215
+ * `AdwToolbarView` has a single content widget and one or multiple top and
1216
+ * bottom bars, shown at the top and bottom sides respectively.
1217
+ *
1218
+ * Example of an `AdwToolbarView` UI definition:
1219
+ * ```xml
1220
+ * <object class="AdwToolbarView">
1221
+ * <child type="top">
1222
+ * <object class="AdwHeaderBar"/>
1223
+ * </child>
1224
+ * <property name="content">
1225
+ * <object class="AdwPreferencesPage">
1226
+ * <!-- ... -->
1227
+ * </object>
1228
+ * </property>
1229
+ * </object>
1230
+ * ```
1231
+ *
1232
+ * The following kinds of top and bottom bars are supported:
1233
+ *
1234
+ * - [`HeaderBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.HeaderBar.html)
1235
+ * - [`TabBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.TabBar.html)
1236
+ * - [`ViewSwitcherBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ViewSwitcherBar.html)
1237
+ * - [`Gtk.ActionBar`](https://docs.gtk.org/gtk4/class.ActionBar.html)
1238
+ * - [`Gtk.HeaderBar`](https://docs.gtk.org/gtk4/class.HeaderBar.html)
1239
+ * - [`Gtk.PopoverMenuBar`](https://docs.gtk.org/gtk4/class.PopoverMenuBar.html)
1240
+ * - [`Gtk.SearchBar`](https://docs.gtk.org/gtk4/class.SearchBar.html)
1241
+ * - Any [`Gtk.Box`](https://docs.gtk.org/gtk4/class.Box.html) or a similar widget with the
1242
+ * `.toolbar` style class
1243
+ *
1244
+ * By default, top and bottom bars are flat and scrolling content has a subtle
1245
+ * undershoot shadow, same as when using the
1246
+ * `.undershoot-top` and
1247
+ * `.undershoot-bottom` style
1248
+ * classes. This works well in most cases, e.g. with [`StatusPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.StatusPage.html) or
1249
+ * [`PreferencesPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.PreferencesPage.html), where the background at the top and bottom parts of
1250
+ * the page is uniform. Additionally, windows with sidebars should always use
1251
+ * this style.
1252
+ *
1253
+ * [`ToolbarView.top-bar-style`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ToolbarView.top-bar-style.html) and
1254
+ * [`ToolbarView.bottom-bar-style`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ToolbarView.bottom-bar-style.html) properties can be used add an opaque
1255
+ * background and a persistent shadow to top and bottom bars, this can be useful
1256
+ * for content such as utility panes,
1257
+ * where some elements are adjacent to the top/bottom bars, or [`TabView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.TabView.html),
1258
+ * where each page can have a different background.
1259
+ *
1260
+ * ![toolbar-view-flat-1](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/toolbar-view-flat-1.png)
1261
+ * ![toolbar-view-flat-2](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/toolbar-view-flat-2.png)
1262
+ * ![toolbar-view-raised](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/toolbar-view-raised.png)
1263
+ *
1264
+ * `AdwToolbarView` ensures the top and bottom bars have consistent backdrop
1265
+ * styles and vertical spacing. For comparison:
1266
+ *
1267
+ * ![toolbar-view-spacing](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/toolbar-view-spacing.png)
1268
+ * ![toolbar-view-spacing-box](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/toolbar-view-spacing-box.png)
1269
+ *
1270
+ * Any top and bottom bars can also be dragged to move the window, equivalent
1271
+ * to putting them into a [`Gtk.WindowHandle`](https://docs.gtk.org/gtk4/class.WindowHandle.html).
1272
+ *
1273
+ * Content is typically place between top and bottom bars, but can also extend
1274
+ * behind them. This is controlled with the
1275
+ * [`ToolbarView.extend-content-to-top-edge`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ToolbarView.extend-content-to-top-edge.html) and
1276
+ * [`ToolbarView.extend-content-to-bottom-edge`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ToolbarView.extend-content-to-bottom-edge.html) properties.
1277
+ *
1278
+ * Top and bottom bars can be hidden and revealed with an animation using the
1279
+ * [`ToolbarView.reveal-top-bars`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ToolbarView.reveal-top-bars.html) and
1280
+ * [`ToolbarView.reveal-bottom-bars`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ToolbarView.reveal-bottom-bars.html) properties.
1281
+ *
1282
+ * ## `AdwToolbarView` as `GtkBuildable`
1283
+ *
1284
+ * The `AdwToolbarView` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface
1285
+ * supports adding a top bar by specifying “top” as the “type” attribute of a
1286
+ * ``<child>`` element, or adding a bottom bar by specifying “bottom”.
1287
+ *
1288
+ * ## Accessibility
1289
+ *
1290
+ * `AdwToolbarView` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role.
1291
+ */
1292
+ export declare const AdwToolbarView: ((props: AdwToolbarViewProps) => ReactNode) & {
1293
+ AddTopBar: (props: {
1294
+ children?: ReactNode;
1295
+ }) => ReactNode;
1296
+ AddBottomBar: (props: {
1297
+ children?: ReactNode;
1298
+ }) => ReactNode;
1299
+ };
1300
+ /**
1301
+ * A view container for [`ViewSwitcher`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ViewSwitcher.html).
1302
+ *
1303
+ * `AdwViewStack` is a container which only shows one page at a time.
1304
+ * It is typically used to hold an application's main views.
1305
+ *
1306
+ * It doesn't provide a way to transition between pages.
1307
+ * Instead, a separate widget such as [`ViewSwitcher`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ViewSwitcher.html) can be used with
1308
+ * `AdwViewStack` to provide this functionality.
1309
+ *
1310
+ * `AdwViewStack` pages can have a title, an icon, an attention request, and a
1311
+ * numbered badge that [`ViewSwitcher`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ViewSwitcher.html) will use to let users identify which
1312
+ * page is which. Set them using the [`ViewStackPage.title`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ViewStackPage.title.html),
1313
+ * [`ViewStackPage.icon-name`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ViewStackPage.icon-name.html),
1314
+ * [`ViewStackPage.needs-attention`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ViewStackPage.needs-attention.html), and
1315
+ * [`ViewStackPage.badge-number`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ViewStackPage.badge-number.html) properties.
1316
+ *
1317
+ * Unlike [`Gtk.Stack`](https://docs.gtk.org/gtk4/class.Stack.html), transitions between views can only be animated via
1318
+ * a crossfade and size changes are always interpolated. Animations are disabled
1319
+ * by default. Use [`ViewStack.enable-transitions`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.ViewStack.enable-transitions.html) to enable them.
1320
+ *
1321
+ * `AdwViewStack` maintains a [`ViewStackPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ViewStackPage.html) object for each added child,
1322
+ * which holds additional per-child properties. You obtain the
1323
+ * [`ViewStackPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ViewStackPage.html) for a child with [`ViewStack.get_page`](https://docs.gtk.org/viewstack/method.get_page.html) and you
1324
+ * can obtain a [`Gtk.SelectionModel`](https://docs.gtk.org/gtk4/iface.SelectionModel.html) containing all the pages with
1325
+ * [`ViewStack.get_pages`](https://docs.gtk.org/viewstack/method.get_pages.html).
1326
+ *
1327
+ * ## AdwViewStack as GtkBuildable
1328
+ *
1329
+ * To set child-specific properties in a .ui file, create
1330
+ * [`ViewStackPage`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ViewStackPage.html) objects explicitly, and set the child widget as a
1331
+ * property on it:
1332
+ *
1333
+ * ```xml
1334
+ * <object class="AdwViewStack" id="stack">
1335
+ * <child>
1336
+ * <object class="AdwViewStackPage">
1337
+ * <property name="name">overview</property>
1338
+ * <property name="title">Overview</property>
1339
+ * <property name="child">
1340
+ * <object class="AdwStatusPage">
1341
+ * <property name="title">Welcome!</property>
1342
+ * </object>
1343
+ * </property>
1344
+ * </object>
1345
+ * </child>
1346
+ * </object>
1347
+ * ```
1348
+ *
1349
+ * ## CSS nodes
1350
+ *
1351
+ * `AdwViewStack` has a single CSS node named `stack`.
1352
+ *
1353
+ * ## Accessibility
1354
+ *
1355
+ * `AdwViewStack` uses the `GTK_ACCESSIBLE_ROLE_TAB_PANEL` for the stack pages
1356
+ * which are the accessible parent objects of the child widgets.
1357
+ */
1358
+ export declare const AdwViewStack: ((props: AdwViewStackProps) => ReactNode) & {
1359
+ Page: (props: StackPageProps) => ReactNode;
1360
+ };
1361
+ /**
1362
+ * A freeform window.
1363
+ *
1364
+ * ![window](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/window.png)
1365
+ *
1366
+ * The `AdwWindow` widget is a subclass of [`Gtk.Window`](https://docs.gtk.org/gtk4/class.Window.html) which has no
1367
+ * titlebar area. Instead, [`ToolbarView`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.ToolbarView.html) can be used together with
1368
+ * [`HeaderBar`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.HeaderBar.html) or [`Gtk.HeaderBar`](https://docs.gtk.org/gtk4/class.HeaderBar.html) as follows:
1369
+ *
1370
+ * ```xml
1371
+ * <object class="AdwWindow">
1372
+ * <property name="content">
1373
+ * <object class="AdwToolbarView">
1374
+ * <child type="top">
1375
+ * <object class="AdwHeaderBar"/>
1376
+ * </child>
1377
+ * <property name="content">
1378
+ * <!-- ... -->
1379
+ * </property>
1380
+ * </object>
1381
+ * </property>
1382
+ * </object>
1383
+ * ```
1384
+ *
1385
+ * Using [`Gtk.Window.titlebar`](https://docs.gtk.org/gtk4/property.Window.titlebar.html) or [`Gtk.Window.child`](https://docs.gtk.org/gtk4/property.Window.child.html)
1386
+ * is not supported and will result in a crash. Use [`Window.content`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Window.content.html)
1387
+ * instead.
1388
+ *
1389
+ * ## Dialogs
1390
+ *
1391
+ * `AdwWindow` can contain [`Dialog`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Dialog.html). Use [`Dialog.present`](https://docs.gtk.org/dialog/method.present.html) with the
1392
+ * window or a widget within a window to show a dialog.
1393
+ *
1394
+ * ## Breakpoints
1395
+ *
1396
+ * `AdwWindow` can be used with [`Breakpoint`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.Breakpoint.html) the same way as
1397
+ * [`BreakpointBin`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/class.BreakpointBin.html). Refer to that widget's documentation for details.
1398
+ *
1399
+ * Example:
1400
+ *
1401
+ * ```xml
1402
+ * <object class="AdwWindow">
1403
+ * <property name="content">
1404
+ * <object class="AdwToolbarView">
1405
+ * <child type="top">
1406
+ * <object class="AdwHeaderBar"/>
1407
+ * </child>
1408
+ * <property name="content">
1409
+ * <!-- ... -->
1410
+ * </property>
1411
+ * <child type="bottom">
1412
+ * <object class="GtkActionBar" id="bottom_bar">
1413
+ * <property name="revealed">True</property>
1414
+ * <property name="visible">False</property>
1415
+ * </object>
1416
+ * </child>
1417
+ * </object>
1418
+ * </property>
1419
+ * <child>
1420
+ * <object class="AdwBreakpoint">
1421
+ * <condition>max-width: 500px</condition>
1422
+ * <setter object="bottom_bar" property="visible">True</setter>
1423
+ * </object>
1424
+ * </child>
1425
+ * </object>
1426
+ * ```
1427
+ *
1428
+ * When breakpoints are used, the minimum size must be larger than the smallest
1429
+ * UI state. `AdwWindow` defaults to the minimum size of 360×200 px. If that's
1430
+ * too small, set the [`Gtk.Widget.width-request`](https://docs.gtk.org/gtk4/property.Widget.width-request.html) and
1431
+ * [`Gtk.Widget.height-request`](https://docs.gtk.org/gtk4/property.Widget.height-request.html) properties manually.
1432
+ *
1433
+ * ## Adaptive Preview
1434
+ *
1435
+ * `AdwWindow` has a debug tool called adaptive preview. It can be opened from
1436
+ * GTK Inspector or by pressing `Ctrl`+`Shift`+`M`,
1437
+ * and controlled via the [`Window.adaptive-preview`](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1-latest/property.Window.adaptive-preview.html) property.
1438
+ */
1439
+ export declare const AdwWindow: (props: AdwWindowProps) => ReactNode;
1440
+ /**
1441
+ * Presents contextual actions.
1442
+ *
1443
+ * ![An example GtkActionBar](https://docs.gtk.org/gtk4/action-bar.png)
1444
+ *
1445
+ * `GtkActionBar` is expected to be displayed below the content and expand
1446
+ * horizontally to fill the area.
1447
+ *
1448
+ * It allows placing children at the start or the end. In addition, it
1449
+ * contains an internal centered box which is centered with respect to
1450
+ * the full width of the box, even if the children at either side take
1451
+ * up different amounts of space.
1452
+ *
1453
+ * # GtkActionBar as GtkBuildable
1454
+ *
1455
+ * The `GtkActionBar` implementation of the `GtkBuildable` interface supports
1456
+ * adding children at the start or end sides by specifying “start” or “end” as
1457
+ * the “type” attribute of a ``<child>`` element, or setting the center widget
1458
+ * by specifying “center” value.
1459
+ *
1460
+ * # CSS nodes
1461
+ *
1462
+ * ```
1463
+ * actionbar
1464
+ * ╰── revealer
1465
+ * ╰── box
1466
+ * ├── box.start
1467
+ * │ ╰── [start children]
1468
+ * ├── [center widget]
1469
+ * ╰── box.end
1470
+ * ╰── [end children]
1471
+ * ```
1472
+ *
1473
+ * A `GtkActionBar`'s CSS node is called `actionbar`. It contains a `revealer`
1474
+ * subnode, which contains a `box` subnode, which contains two `box` subnodes at
1475
+ * the start and end of the action bar, with `start` and `end` style classes
1476
+ * respectively, as well as a center node that represents the center child.
1477
+ *
1478
+ * Each of the boxes contains children packed for that side.
1479
+ */
1480
+ export declare const GtkActionBar: ((props: GtkActionBarProps) => ReactNode) & {
1481
+ PackStart: (props: {
1482
+ children?: ReactNode;
1483
+ }) => ReactNode;
1484
+ PackEnd: (props: {
1485
+ children?: ReactNode;
1486
+ }) => ReactNode;
1487
+ };
1488
+ /**
1489
+ * Arranges three children in a row, keeping the middle child
1490
+ * centered as well as possible.
1491
+ *
1492
+ * ![An example GtkCenterBox](https://docs.gtk.org/gtk4/centerbox.png)
1493
+ *
1494
+ * To add children to `GtkCenterBox`, use [`Gtk.CenterBox.set_start_widget`](https://docs.gtk.org/gtk4/method.CenterBox.set_start_widget.html),
1495
+ * [`Gtk.CenterBox.set_center_widget`](https://docs.gtk.org/gtk4/method.CenterBox.set_center_widget.html) and
1496
+ * [`Gtk.CenterBox.set_end_widget`](https://docs.gtk.org/gtk4/method.CenterBox.set_end_widget.html).
1497
+ *
1498
+ * The sizing and positioning of children can be influenced with the
1499
+ * align and expand properties of the children.
1500
+ *
1501
+ * # GtkCenterBox as GtkBuildable
1502
+ *
1503
+ * The `GtkCenterBox` implementation of the `GtkBuildable` interface
1504
+ * supports placing children in the 3 positions by specifying “start”, “center”
1505
+ * or “end” as the “type” attribute of a ``<child>`` element.
1506
+ *
1507
+ * # CSS nodes
1508
+ *
1509
+ * `GtkCenterBox` uses a single CSS node with the name “box”,
1510
+ *
1511
+ * The first child of the `GtkCenterBox` will be allocated depending on the
1512
+ * text direction, i.e. in left-to-right layouts it will be allocated on the
1513
+ * left and in right-to-left layouts on the right.
1514
+ *
1515
+ * In vertical orientation, the nodes of the children are arranged from top to
1516
+ * bottom.
1517
+ *
1518
+ * # Accessibility
1519
+ *
1520
+ * Until GTK 4.10, `GtkCenterBox` used the [`Gtk.AccessibleRole.group`](https://docs.gtk.org/gtk4/enum.AccessibleRole.group.html) role.
1521
+ *
1522
+ * Starting from GTK 4.12, `GtkCenterBox` uses the [`Gtk.AccessibleRole.generic`](https://docs.gtk.org/gtk4/enum.AccessibleRole.generic.html)
1523
+ * role.
1524
+ */
1525
+ export declare const GtkCenterBox: (props: GtkCenterBoxProps) => ReactNode;
1526
+ /**
1527
+ * Allows the user to reveal or conceal a child widget.
1528
+ *
1529
+ * ![An example GtkExpander](https://docs.gtk.org/gtk4/expander.png)
1530
+ *
1531
+ * This is similar to the triangles used in a `GtkTreeView`.
1532
+ *
1533
+ * Normally you use an expander as you would use a frame; you create
1534
+ * the child widget and use [`Gtk.Expander.set_child`](https://docs.gtk.org/gtk4/method.Expander.set_child.html) to add it
1535
+ * to the expander. When the expander is toggled, it will take care of
1536
+ * showing and hiding the child automatically.
1537
+ *
1538
+ * # Special Usage
1539
+ *
1540
+ * There are situations in which you may prefer to show and hide the
1541
+ * expanded widget yourself, such as when you want to actually create
1542
+ * the widget at expansion time. In this case, create a `GtkExpander`
1543
+ * but do not add a child to it. The expander widget has an
1544
+ * [`Gtk.Expander.expanded`](https://docs.gtk.org/gtk4/property.Expander.expanded.html) property which can be used to
1545
+ * monitor its expansion state. You should watch this property with
1546
+ * a signal connection as follows:
1547
+ *
1548
+ * ```c
1549
+ * static void
1550
+ * expander_callback (GObject *object,
1551
+ * GParamSpec *param_spec,
1552
+ * gpointer user_data)
1553
+ * {
1554
+ * GtkExpander *expander;
1555
+ *
1556
+ * expander = GTK_EXPANDER (object);
1557
+ *
1558
+ * if (gtk_expander_get_expanded (expander))
1559
+ * {
1560
+ * // Show or create widgets
1561
+ * }
1562
+ * else
1563
+ * {
1564
+ * // Hide or destroy widgets
1565
+ * }
1566
+ * }
1567
+ *
1568
+ * static void
1569
+ * create_expander (void)
1570
+ * {
1571
+ * GtkWidget *expander = gtk_expander_new_with_mnemonic ("_More Options");
1572
+ * g_signal_connect (expander, "notify::expanded",
1573
+ * G_CALLBACK (expander_callback), NULL);
1574
+ *
1575
+ * // ...
1576
+ * }
1577
+ * ```
1578
+ *
1579
+ * # GtkExpander as GtkBuildable
1580
+ *
1581
+ * An example of a UI definition fragment with GtkExpander:
1582
+ *
1583
+ * ```xml
1584
+ * <object class="GtkExpander">
1585
+ * <property name="label-widget">
1586
+ * <object class="GtkLabel" id="expander-label"/>
1587
+ * </property>
1588
+ * <property name="child">
1589
+ * <object class="GtkEntry" id="expander-content"/>
1590
+ * </property>
1591
+ * </object>
1592
+ * ```
1593
+ *
1594
+ * # CSS nodes
1595
+ *
1596
+ * ```
1597
+ * expander-widget
1598
+ * ╰── box
1599
+ * ├── title
1600
+ * │ ├── expander
1601
+ * │ ╰── <label widget>
1602
+ * ╰── <child>
1603
+ * ```
1604
+ *
1605
+ * `GtkExpander` has a main node `expander-widget`, and subnode `box` containing
1606
+ * the title and child widget. The box subnode `title` contains node `expander`,
1607
+ * i.e. the expand/collapse arrow; then the label widget if any. The arrow of an
1608
+ * expander that is showing its child gets the `:checked` pseudoclass set on it.
1609
+ *
1610
+ * # Accessibility
1611
+ *
1612
+ * `GtkExpander` uses the [`Gtk.AccessibleRole.button`](https://docs.gtk.org/gtk4/enum.AccessibleRole.button.html) role.
1613
+ */
1614
+ export declare const GtkExpander: (props: GtkExpanderProps) => ReactNode;
1615
+ /**
1616
+ * Places its child widgets at fixed positions and with fixed sizes.
1617
+ *
1618
+ * `GtkFixed` performs no automatic layout management.
1619
+ *
1620
+ * For most applications, you should not use this container! It keeps
1621
+ * you from having to learn about the other GTK containers, but it
1622
+ * results in broken applications. With `GtkFixed`, the following
1623
+ * things will result in truncated text, overlapping widgets, and
1624
+ * other display bugs:
1625
+ *
1626
+ * - Themes, which may change widget sizes.
1627
+ *
1628
+ * - Fonts other than the one you used to write the app will of course
1629
+ * change the size of widgets containing text; keep in mind that
1630
+ * users may use a larger font because of difficulty reading the
1631
+ * default, or they may be using a different OS that provides different fonts.
1632
+ *
1633
+ * - Translation of text into other languages changes its size. Also,
1634
+ * display of non-English text will use a different font in many
1635
+ * cases.
1636
+ *
1637
+ * In addition, `GtkFixed` does not pay attention to text direction and
1638
+ * thus may produce unwanted results if your app is run under right-to-left
1639
+ * languages such as Hebrew or Arabic. That is: normally GTK will order
1640
+ * containers appropriately for the text direction, e.g. to put labels to
1641
+ * the right of the thing they label when using an RTL language, but it can’t
1642
+ * do that with `GtkFixed`. So if you need to reorder widgets depending on
1643
+ * the text direction, you would need to manually detect it and adjust child
1644
+ * positions accordingly.
1645
+ *
1646
+ * Finally, fixed positioning makes it kind of annoying to add/remove
1647
+ * UI elements, since you have to reposition all the other elements. This
1648
+ * is a long-term maintenance problem for your application.
1649
+ *
1650
+ * If you know none of these things are an issue for your application,
1651
+ * and prefer the simplicity of `GtkFixed`, by all means use the
1652
+ * widget. But you should be aware of the tradeoffs.
1653
+ */
1654
+ export declare const GtkFixed: ((props: GtkFixedProps) => ReactNode) & {
1655
+ Child: (props: FixedChildProps) => ReactNode;
1656
+ };
1657
+ /**
1658
+ * Surrounds its child with a decorative frame and an optional label.
1659
+ *
1660
+ * ![An example GtkFrame](https://docs.gtk.org/gtk4/frame.png)
1661
+ *
1662
+ * If present, the label is drawn inside the top edge of the frame.
1663
+ * The horizontal position of the label can be controlled with
1664
+ * [`Gtk.Frame.set_label_align`](https://docs.gtk.org/gtk4/method.Frame.set_label_align.html).
1665
+ *
1666
+ * `GtkFrame` clips its child. You can use this to add rounded corners
1667
+ * to widgets, but be aware that it also cuts off shadows.
1668
+ *
1669
+ * # GtkFrame as GtkBuildable
1670
+ *
1671
+ * An example of a UI definition fragment with GtkFrame:
1672
+ *
1673
+ * ```xml
1674
+ * <object class="GtkFrame">
1675
+ * <property name="label-widget">
1676
+ * <object class="GtkLabel" id="frame_label"/>
1677
+ * </property>
1678
+ * <property name="child">
1679
+ * <object class="GtkEntry" id="frame_content"/>
1680
+ * </property>
1681
+ * </object>
1682
+ * ```
1683
+ *
1684
+ * # CSS nodes
1685
+ *
1686
+ * ```
1687
+ * frame
1688
+ * ├── <label widget>
1689
+ * ╰── <child>
1690
+ * ```
1691
+ *
1692
+ * `GtkFrame` has a main CSS node with name “frame”, which is used to draw the
1693
+ * visible border. You can set the appearance of the border using CSS properties
1694
+ * like “border-style” on this node.
1695
+ *
1696
+ * # Accessibility
1697
+ *
1698
+ * `GtkFrame` uses the [`Gtk.AccessibleRole.group`](https://docs.gtk.org/gtk4/enum.AccessibleRole.group.html) role.
1699
+ */
1700
+ export declare const GtkFrame: (props: GtkFrameProps) => ReactNode;
1701
+ /**
1702
+ * Arranges its child widgets in rows and columns.
1703
+ *
1704
+ * ![An example GtkGrid](https://docs.gtk.org/gtk4/grid.png)
1705
+ *
1706
+ * It supports arbitrary positions and horizontal/vertical spans.
1707
+ *
1708
+ * Children are added using [`Gtk.Grid.attach`](https://docs.gtk.org/gtk4/method.Grid.attach.html). They can span multiple
1709
+ * rows or columns. It is also possible to add a child next to an existing
1710
+ * child, using [`Gtk.Grid.attach_next_to`](https://docs.gtk.org/gtk4/method.Grid.attach_next_to.html). To remove a child from the
1711
+ * grid, use [`Gtk.Grid.remove`](https://docs.gtk.org/gtk4/method.Grid.remove.html).
1712
+ *
1713
+ * The behaviour of `GtkGrid` when several children occupy the same grid
1714
+ * cell is undefined.
1715
+ *
1716
+ * # GtkGrid as GtkBuildable
1717
+ *
1718
+ * Every child in a `GtkGrid` has access to a custom [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html)
1719
+ * element, called `<layout>`. It can by used to specify a position in the
1720
+ * grid and optionally spans. All properties that can be used in the `<layout>`
1721
+ * element are implemented by [`Gtk.GridLayoutChild`](https://docs.gtk.org/gtk4/class.GridLayoutChild.html).
1722
+ *
1723
+ * It is implemented by `GtkWidget` using [`Gtk.LayoutManager`](https://docs.gtk.org/gtk4/class.LayoutManager.html).
1724
+ *
1725
+ * To showcase it, here is a simple example:
1726
+ *
1727
+ * ```xml
1728
+ * <object class="GtkGrid" id="my_grid">
1729
+ * <child>
1730
+ * <object class="GtkButton" id="button1">
1731
+ * <property name="label">Button 1</property>
1732
+ * <layout>
1733
+ * <property name="column">0</property>
1734
+ * <property name="row">0</property>
1735
+ * </layout>
1736
+ * </object>
1737
+ * </child>
1738
+ * <child>
1739
+ * <object class="GtkButton" id="button2">
1740
+ * <property name="label">Button 2</property>
1741
+ * <layout>
1742
+ * <property name="column">1</property>
1743
+ * <property name="row">0</property>
1744
+ * </layout>
1745
+ * </object>
1746
+ * </child>
1747
+ * <child>
1748
+ * <object class="GtkButton" id="button3">
1749
+ * <property name="label">Button 3</property>
1750
+ * <layout>
1751
+ * <property name="column">2</property>
1752
+ * <property name="row">0</property>
1753
+ * <property name="row-span">2</property>
1754
+ * </layout>
1755
+ * </object>
1756
+ * </child>
1757
+ * <child>
1758
+ * <object class="GtkButton" id="button4">
1759
+ * <property name="label">Button 4</property>
1760
+ * <layout>
1761
+ * <property name="column">0</property>
1762
+ * <property name="row">1</property>
1763
+ * <property name="column-span">2</property>
1764
+ * </layout>
1765
+ * </object>
1766
+ * </child>
1767
+ * </object>
1768
+ * ```
1769
+ *
1770
+ * It organizes the first two buttons side-by-side in one cell each.
1771
+ * The third button is in the last column but spans across two rows.
1772
+ * This is defined by the `row-span` property. The last button is
1773
+ * located in the second row and spans across two columns, which is
1774
+ * defined by the `column-span` property.
1775
+ *
1776
+ * # CSS nodes
1777
+ *
1778
+ * `GtkGrid` uses a single CSS node with name `grid`.
1779
+ *
1780
+ * # Accessibility
1781
+ *
1782
+ * Until GTK 4.10, `GtkGrid` used the [`Gtk.AccessibleRole.group`](https://docs.gtk.org/gtk4/enum.AccessibleRole.group.html) role.
1783
+ *
1784
+ * Starting from GTK 4.12, `GtkGrid` uses the [`Gtk.AccessibleRole.generic`](https://docs.gtk.org/gtk4/enum.AccessibleRole.generic.html) role.
1785
+ */
1786
+ export declare const GtkGrid: ((props: GtkGridProps) => ReactNode) & {
1787
+ Child: (props: GridChildProps) => ReactNode;
1788
+ };
1789
+ /**
1790
+ * Creates a custom titlebar for a window.
1791
+ *
1792
+ * ![An example GtkHeaderBar](https://docs.gtk.org/gtk4/headerbar.png)
1793
+ *
1794
+ * `GtkHeaderBar` is similar to a horizontal `GtkCenterBox`. It allows
1795
+ * children to be placed at the start or the end. In addition, it allows
1796
+ * the window title to be displayed. The title will be centered with respect
1797
+ * to the width of the box, even if the children at either side take up
1798
+ * different amounts of space.
1799
+ *
1800
+ * `GtkHeaderBar` can add typical window frame controls, such as minimize,
1801
+ * maximize and close buttons, or the window icon.
1802
+ *
1803
+ * For these reasons, `GtkHeaderBar` is the natural choice for use as the
1804
+ * custom titlebar widget of a `GtkWindow` (see [`Gtk.Window.set_titlebar`](https://docs.gtk.org/gtk4/method.Window.set_titlebar.html)),
1805
+ * as it gives features typical of titlebars while allowing the addition of
1806
+ * child widgets.
1807
+ *
1808
+ * ## GtkHeaderBar as GtkBuildable
1809
+ *
1810
+ * The `GtkHeaderBar` implementation of the `GtkBuildable` interface supports
1811
+ * adding children at the start or end sides by specifying “start” or “end” as
1812
+ * the “type” attribute of a ``<child>`` element, or setting the title widget by
1813
+ * specifying “title” value.
1814
+ *
1815
+ * By default the `GtkHeaderBar` uses a `GtkLabel` displaying the title of the
1816
+ * window it is contained in as the title widget, equivalent to the following
1817
+ * UI definition:
1818
+ *
1819
+ * ```xml
1820
+ * <object class="GtkHeaderBar">
1821
+ * <property name="title-widget">
1822
+ * <object class="GtkLabel">
1823
+ * <property name="label" translatable="yes">Label</property>
1824
+ * <property name="single-line-mode">True</property>
1825
+ * <property name="ellipsize">end</property>
1826
+ * <property name="width-chars">5</property>
1827
+ * <style>
1828
+ * <class name="title"/>
1829
+ * </style>
1830
+ * </object>
1831
+ * </property>
1832
+ * </object>
1833
+ * ```
1834
+ *
1835
+ * # CSS nodes
1836
+ *
1837
+ * ```
1838
+ * headerbar
1839
+ * ╰── windowhandle
1840
+ * ╰── box
1841
+ * ├── box.start
1842
+ * │ ├── windowcontrols.start
1843
+ * │ ╰── [other children]
1844
+ * ├── [Title Widget]
1845
+ * ╰── box.end
1846
+ * ├── [other children]
1847
+ * ╰── windowcontrols.end
1848
+ * ```
1849
+ *
1850
+ * A `GtkHeaderBar`'s CSS node is called `headerbar`. It contains a `windowhandle`
1851
+ * subnode, which contains a `box` subnode, which contains two `box` subnodes at
1852
+ * the start and end of the header bar, as well as a center node that represents
1853
+ * the title.
1854
+ *
1855
+ * Each of the boxes contains a `windowcontrols` subnode, see
1856
+ * [`Gtk.WindowControls`](https://docs.gtk.org/gtk4/class.WindowControls.html) for details, as well as other children.
1857
+ *
1858
+ * # Accessibility
1859
+ *
1860
+ * `GtkHeaderBar` uses the [`Gtk.AccessibleRole.group`](https://docs.gtk.org/gtk4/enum.AccessibleRole.group.html) role.
1861
+ */
1862
+ export declare const GtkHeaderBar: ((props: GtkHeaderBarProps) => ReactNode) & {
1863
+ PackStart: (props: {
1864
+ children?: ReactNode;
1865
+ }) => ReactNode;
1866
+ PackEnd: (props: {
1867
+ children?: ReactNode;
1868
+ }) => ReactNode;
1869
+ };
1870
+ /**
1871
+ * Displays a popup when clicked.
1872
+ *
1873
+ * ![An example GtkMenuButton](https://docs.gtk.org/gtk4/menu-button.png)
1874
+ *
1875
+ * This popup can be provided either as a `GtkPopover` or as an abstract
1876
+ * `GMenuModel`.
1877
+ *
1878
+ * The `GtkMenuButton` widget can show either an icon (set with the
1879
+ * [`Gtk.MenuButton.icon-name`](https://docs.gtk.org/gtk4/property.MenuButton.icon-name.html) property) or a label (set with the
1880
+ * [`Gtk.MenuButton.label`](https://docs.gtk.org/gtk4/property.MenuButton.label.html) property). If neither is explicitly set,
1881
+ * a [`Gtk.Image`](https://docs.gtk.org/gtk4/class.Image.html) is automatically created, using an arrow image oriented
1882
+ * according to [`Gtk.MenuButton.direction`](https://docs.gtk.org/gtk4/property.MenuButton.direction.html) or the generic
1883
+ * “open-menu-symbolic” icon if the direction is not set.
1884
+ *
1885
+ * The positioning of the popup is determined by the
1886
+ * [`Gtk.MenuButton.direction`](https://docs.gtk.org/gtk4/property.MenuButton.direction.html) property of the menu button.
1887
+ *
1888
+ * For menus, the [`Gtk.Widget.halign`](https://docs.gtk.org/gtk4/property.Widget.halign.html) and [`Gtk.Widget.valign`](https://docs.gtk.org/gtk4/property.Widget.valign.html)
1889
+ * properties of the menu are also taken into account. For example, when the
1890
+ * direction is %GTK_ARROW_DOWN and the horizontal alignment is %GTK_ALIGN_START,
1891
+ * the menu will be positioned below the button, with the starting edge
1892
+ * (depending on the text direction) of the menu aligned with the starting
1893
+ * edge of the button. If there is not enough space below the button, the
1894
+ * menu is popped up above the button instead. If the alignment would move
1895
+ * part of the menu offscreen, it is “pushed in”.
1896
+ *
1897
+ * | | start | center | end |
1898
+ * | - | --- | --- | --- |
1899
+ * | **down** | ![](https://docs.gtk.org/gtk4/down-start.png) | ![](https://docs.gtk.org/gtk4/down-center.png) | ![](https://docs.gtk.org/gtk4/down-end.png) |
1900
+ * | **up** | ![](https://docs.gtk.org/gtk4/up-start.png) | ![](https://docs.gtk.org/gtk4/up-center.png) | ![](https://docs.gtk.org/gtk4/up-end.png) |
1901
+ * | **left** | ![](https://docs.gtk.org/gtk4/left-start.png) | ![](https://docs.gtk.org/gtk4/left-center.png) | ![](https://docs.gtk.org/gtk4/left-end.png) |
1902
+ * | **right** | ![](https://docs.gtk.org/gtk4/right-start.png) | ![](https://docs.gtk.org/gtk4/right-center.png) | ![](https://docs.gtk.org/gtk4/right-end.png) |
1903
+ *
1904
+ * # CSS nodes
1905
+ *
1906
+ * ```
1907
+ * menubutton
1908
+ * ╰── button.toggle
1909
+ * ╰── <content>
1910
+ * ╰── [arrow]
1911
+ * ```
1912
+ *
1913
+ * `GtkMenuButton` has a single CSS node with name `menubutton`
1914
+ * which contains a `button` node with a `.toggle` style class.
1915
+ *
1916
+ * If the button contains an icon, it will have the `.image-button` style class,
1917
+ * if it contains text, it will have `.text-button` style class. If an arrow is
1918
+ * visible in addition to an icon, text or a custom child, it will also have
1919
+ * `.arrow-button` style class.
1920
+ *
1921
+ * Inside the toggle button content, there is an `arrow` node for
1922
+ * the indicator, which will carry one of the `.none`, `.up`, `.down`,
1923
+ * `.left` or `.right` style classes to indicate the direction that
1924
+ * the menu will appear in. The CSS is expected to provide a suitable
1925
+ * image for each of these cases using the `-gtk-icon-source` property.
1926
+ *
1927
+ * Optionally, the `menubutton` node can carry the `.circular` style class
1928
+ * to request a round appearance.
1929
+ *
1930
+ * # Accessibility
1931
+ *
1932
+ * `GtkMenuButton` uses the [`Gtk.AccessibleRole.button`](https://docs.gtk.org/gtk4/enum.AccessibleRole.button.html) role.
1933
+ */
1934
+ export declare const GtkMenuButton: ((props: GtkMenuButtonProps) => ReactNode) & {
1935
+ MenuItem: (props: MenuItemProps) => ReactNode;
1936
+ MenuSection: (props: MenuSectionProps) => ReactNode;
1937
+ MenuSubmenu: (props: MenuSubmenuProps) => ReactNode;
1938
+ };
1939
+ /**
1940
+ * Switches between children using tabs.
1941
+ *
1942
+ * ![An example GtkNotebook](https://docs.gtk.org/gtk4/notebook.png)
1943
+ *
1944
+ * There are many configuration options for `GtkNotebook`. Among
1945
+ * other things, you can choose on which edge the tabs appear
1946
+ * (see [`Gtk.Notebook.set_tab_pos`](https://docs.gtk.org/gtk4/method.Notebook.set_tab_pos.html)), whether, if there are
1947
+ * too many tabs to fit the notebook should be made bigger or scrolling
1948
+ * arrows added (see [`Gtk.Notebook.set_scrollable`](https://docs.gtk.org/gtk4/method.Notebook.set_scrollable.html)), and whether
1949
+ * there will be a popup menu allowing the users to switch pages.
1950
+ * (see [`Gtk.Notebook.popup_enable`](https://docs.gtk.org/gtk4/method.Notebook.popup_enable.html)).
1951
+ *
1952
+ * # GtkNotebook as GtkBuildable
1953
+ *
1954
+ * The `GtkNotebook` implementation of the `GtkBuildable` interface
1955
+ * supports placing children into tabs by specifying “tab” as the
1956
+ * “type” attribute of a ``<child>`` element. Note that the content
1957
+ * of the tab must be created before the tab can be filled.
1958
+ * A tab child can be specified without specifying a ``<child>``
1959
+ * type attribute.
1960
+ *
1961
+ * To add a child widget in the notebooks action area, specify
1962
+ * "action-start" or “action-end” as the “type” attribute of the
1963
+ * ``<child>`` element.
1964
+ *
1965
+ * An example of a UI definition fragment with `GtkNotebook`:
1966
+ *
1967
+ * ```xml
1968
+ * <object class="GtkNotebook">
1969
+ * <child>
1970
+ * <object class="GtkLabel" id="notebook-content">
1971
+ * <property name="label">Content</property>
1972
+ * </object>
1973
+ * </child>
1974
+ * <child type="tab">
1975
+ * <object class="GtkLabel" id="notebook-tab">
1976
+ * <property name="label">Tab</property>
1977
+ * </object>
1978
+ * </child>
1979
+ * </object>
1980
+ * ```
1981
+ *
1982
+ * # Shortcuts and Gestures
1983
+ *
1984
+ * `GtkNotebook` supports the following keyboard shortcuts:
1985
+ *
1986
+ * - `Shift`+`F10` or `Menu` opens the context menu.
1987
+ * - `Home` moves the focus to the first tab.
1988
+ * - `End` moves the focus to the last tab.
1989
+ *
1990
+ * Additionally, the following signals have default keybindings:
1991
+ *
1992
+ * - [`Gtk.Notebook.:change-current-page`](https://docs.gtk.org/gtk4/signal.Notebook.change-current-page.html)
1993
+ * - [`Gtk.Notebook.:focus-tab`](https://docs.gtk.org/gtk4/signal.Notebook.focus-tab.html)
1994
+ * - [`Gtk.Notebook.:move-focus-out`](https://docs.gtk.org/gtk4/signal.Notebook.move-focus-out.html)
1995
+ * - [`Gtk.Notebook.:reorder-tab`](https://docs.gtk.org/gtk4/signal.Notebook.reorder-tab.html)
1996
+ * - [`Gtk.Notebook.:select-page`](https://docs.gtk.org/gtk4/signal.Notebook.select-page.html)
1997
+ *
1998
+ * Tabs support drag-and-drop between notebooks sharing the same `group-name`,
1999
+ * or to new windows by handling the `::create-window` signal.
2000
+ *
2001
+ * # Actions
2002
+ *
2003
+ * `GtkNotebook` defines a set of built-in actions:
2004
+ *
2005
+ * - `menu.popup` opens the tabs context menu.
2006
+ *
2007
+ * # CSS nodes
2008
+ *
2009
+ * ```
2010
+ * notebook
2011
+ * ├── header.top
2012
+ * │ ├── [<action widget>]
2013
+ * │ ├── tabs
2014
+ * │ │ ├── [arrow]
2015
+ * │ │ ├── tab
2016
+ * │ │ │ ╰── <tab label>
2017
+ * ┊ ┊ ┊
2018
+ * │ │ ├── tab[.reorderable-page]
2019
+ * │ │ │ ╰── <tab label>
2020
+ * │ │ ╰── [arrow]
2021
+ * │ ╰── [<action widget>]
2022
+ * │
2023
+ * ╰── stack
2024
+ * ├── <child>
2025
+ * ┊
2026
+ * ╰── <child>
2027
+ * ```
2028
+ *
2029
+ * `GtkNotebook` has a main CSS node with name `notebook`, a subnode
2030
+ * with name `header` and below that a subnode with name `tabs` which
2031
+ * contains one subnode per tab with name `tab`.
2032
+ *
2033
+ * If action widgets are present, their CSS nodes are placed next
2034
+ * to the `tabs` node. If the notebook is scrollable, CSS nodes with
2035
+ * name `arrow` are placed as first and last child of the `tabs` node.
2036
+ *
2037
+ * The main node gets the `.frame` style class when the notebook
2038
+ * has a border (see [`Gtk.Notebook.set_show_border`](https://docs.gtk.org/gtk4/method.Notebook.set_show_border.html)).
2039
+ *
2040
+ * The header node gets one of the style class `.top`, `.bottom`,
2041
+ * `.left` or `.right`, depending on where the tabs are placed. For
2042
+ * reorderable pages, the tab node gets the `.reorderable-page` class.
2043
+ *
2044
+ * A `tab` node gets the `.dnd` style class while it is moved with drag-and-drop.
2045
+ *
2046
+ * The nodes are always arranged from left-to-right, regardless of text direction.
2047
+ *
2048
+ * # Accessibility
2049
+ *
2050
+ * `GtkNotebook` uses the following roles:
2051
+ *
2052
+ * - [`Gtk.AccessibleRole.group`](https://docs.gtk.org/gtk4/enum.AccessibleRole.group.html) for the notebook widget
2053
+ * - [`Gtk.AccessibleRole.tab_list`](https://docs.gtk.org/gtk4/enum.AccessibleRole.tab_list.html) for the list of tabs
2054
+ * - [`Gtk.AccessibleRole.tab`](https://docs.gtk.org/gtk4/enum.AccessibleRole.tab.html) role for each tab
2055
+ * - [`Gtk.AccessibleRole.tab_panel`](https://docs.gtk.org/gtk4/enum.AccessibleRole.tab_panel.html) for each page
2056
+ */
2057
+ export declare const GtkNotebook: ((props: GtkNotebookProps) => ReactNode) & {
2058
+ Page: (props: NotebookPageProps) => ReactNode;
2059
+ PageTab: (props: NotebookPageTabProps) => ReactNode;
2060
+ };
2061
+ /**
2062
+ * Places “overlay” widgets on top of a single main child.
2063
+ *
2064
+ * ![An example GtkOverlay](https://docs.gtk.org/gtk4/overlay.png)
2065
+ *
2066
+ * The position of each overlay widget is determined by its
2067
+ * [`Gtk.Widget.halign`](https://docs.gtk.org/gtk4/property.Widget.halign.html) and [`Gtk.Widget.valign`](https://docs.gtk.org/gtk4/property.Widget.valign.html)
2068
+ * properties. E.g. a widget with both alignments set to %GTK_ALIGN_START
2069
+ * will be placed at the top left corner of the `GtkOverlay` container,
2070
+ * whereas an overlay with halign set to %GTK_ALIGN_CENTER and valign set
2071
+ * to %GTK_ALIGN_END will be placed a the bottom edge of the `GtkOverlay`,
2072
+ * horizontally centered. The position can be adjusted by setting the margin
2073
+ * properties of the child to non-zero values.
2074
+ *
2075
+ * More complicated placement of overlays is possible by connecting
2076
+ * to the [`Gtk.Overlay.:get-child-position`](https://docs.gtk.org/gtk4/signal.Overlay.get-child-position.html) signal.
2077
+ *
2078
+ * An overlay’s minimum and natural sizes are those of its main child.
2079
+ * The sizes of overlay children are not considered when measuring these
2080
+ * preferred sizes.
2081
+ *
2082
+ * # GtkOverlay as GtkBuildable
2083
+ *
2084
+ * The `GtkOverlay` implementation of the `GtkBuildable` interface
2085
+ * supports placing a child as an overlay by specifying “overlay” as
2086
+ * the “type” attribute of a ``<child>`` element.
2087
+ *
2088
+ * # CSS nodes
2089
+ *
2090
+ * `GtkOverlay` has a single CSS node with the name “overlay”. Overlay children
2091
+ * whose alignments cause them to be positioned at an edge get the style classes
2092
+ * “.left”, “.right”, “.top”, and/or “.bottom” according to their position.
2093
+ */
2094
+ export declare const GtkOverlay: ((props: GtkOverlayProps) => ReactNode) & {
2095
+ Child: (props: OverlayChildProps) => ReactNode;
2096
+ };
2097
+ /**
2098
+ * Arranges its children in two panes, horizontally or vertically.
2099
+ *
2100
+ * ![An example GtkPaned](https://docs.gtk.org/gtk4/panes.png)
2101
+ *
2102
+ * The division between the two panes is adjustable by the user
2103
+ * by dragging a handle.
2104
+ *
2105
+ * Child widgets are added to the panes of the widget with
2106
+ * [`Gtk.Paned.set_start_child`](https://docs.gtk.org/gtk4/method.Paned.set_start_child.html) and [`Gtk.Paned.set_end_child`](https://docs.gtk.org/gtk4/method.Paned.set_end_child.html).
2107
+ * The division between the two children is set by default from the size
2108
+ * requests of the children, but it can be adjusted by the user.
2109
+ *
2110
+ * A paned widget draws a separator between the two child widgets and a
2111
+ * small handle that the user can drag to adjust the division. It does not
2112
+ * draw any relief around the children or around the separator. (The space
2113
+ * in which the separator is called the gutter.) Often, it is useful to put
2114
+ * each child inside a [`Gtk.Frame`](https://docs.gtk.org/gtk4/class.Frame.html) so that the gutter appears as a
2115
+ * ridge. No separator is drawn if one of the children is missing.
2116
+ *
2117
+ * Each child has two options that can be set, "resize" and "shrink". If
2118
+ * "resize" is true then, when the `GtkPaned` is resized, that child will
2119
+ * expand or shrink along with the paned widget. If "shrink" is true, then
2120
+ * that child can be made smaller than its requisition by the user.
2121
+ * Setting "shrink" to false allows the application to set a minimum size.
2122
+ * If "resize" is false for both children, then this is treated as if
2123
+ * "resize" is true for both children.
2124
+ *
2125
+ * The application can set the position of the slider as if it were set
2126
+ * by the user, by calling [`Gtk.Paned.set_position`](https://docs.gtk.org/gtk4/method.Paned.set_position.html).
2127
+ *
2128
+ * # Shortcuts and Gestures
2129
+ *
2130
+ * The following signals have default keybindings:
2131
+ *
2132
+ * - [`Gtk.Paned.:accept-position`](https://docs.gtk.org/gtk4/signal.Paned.accept-position.html)
2133
+ * - [`Gtk.Paned.:cancel-position`](https://docs.gtk.org/gtk4/signal.Paned.cancel-position.html)
2134
+ * - [`Gtk.Paned.:cycle-child-focus`](https://docs.gtk.org/gtk4/signal.Paned.cycle-child-focus.html)
2135
+ * - [`Gtk.Paned.:cycle-handle-focus`](https://docs.gtk.org/gtk4/signal.Paned.cycle-handle-focus.html)
2136
+ * - [`Gtk.Paned.:move-handle`](https://docs.gtk.org/gtk4/signal.Paned.move-handle.html)
2137
+ * - [`Gtk.Paned.:toggle-handle-focus`](https://docs.gtk.org/gtk4/signal.Paned.toggle-handle-focus.html)
2138
+ *
2139
+ * # CSS nodes
2140
+ *
2141
+ * ```
2142
+ * paned
2143
+ * ├── <child>
2144
+ * ├── separator[.wide]
2145
+ * ╰── <child>
2146
+ * ```
2147
+ *
2148
+ * `GtkPaned` has a main CSS node with name paned, and a subnode for
2149
+ * the separator with name separator. The subnode gets a .wide style
2150
+ * class when the paned is supposed to be wide.
2151
+ *
2152
+ * In horizontal orientation, the nodes are arranged based on the text
2153
+ * direction, so in left-to-right mode, :first-child will select the
2154
+ * leftmost child, while it will select the rightmost child in
2155
+ * RTL layouts.
2156
+ *
2157
+ * ## Creating a paned widget with minimum sizes.
2158
+ *
2159
+ * ```c
2160
+ * GtkWidget *hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL);
2161
+ * GtkWidget *frame1 = gtk_frame_new (NULL);
2162
+ * GtkWidget *frame2 = gtk_frame_new (NULL);
2163
+ *
2164
+ * gtk_widget_set_size_request (hpaned, 200, -1);
2165
+ *
2166
+ * gtk_paned_set_start_child (GTK_PANED (hpaned), frame1);
2167
+ * gtk_paned_set_resize_start_child (GTK_PANED (hpaned), TRUE);
2168
+ * gtk_paned_set_shrink_start_child (GTK_PANED (hpaned), FALSE);
2169
+ * gtk_widget_set_size_request (frame1, 50, -1);
2170
+ *
2171
+ * gtk_paned_set_end_child (GTK_PANED (hpaned), frame2);
2172
+ * gtk_paned_set_resize_end_child (GTK_PANED (hpaned), FALSE);
2173
+ * gtk_paned_set_shrink_end_child (GTK_PANED (hpaned), FALSE);
2174
+ * gtk_widget_set_size_request (frame2, 50, -1);
2175
+ * ```
2176
+ */
2177
+ export declare const GtkPaned: (props: GtkPanedProps) => ReactNode;
2178
+ /**
2179
+ * A subclass of `GtkPopover` that implements menu behavior.
2180
+ *
2181
+ * ![An example GtkPopoverMenu](https://docs.gtk.org/gtk4/menu.png)
2182
+ *
2183
+ * `GtkPopoverMenu` treats its children like menus and allows switching
2184
+ * between them. It can open submenus as traditional, nested submenus,
2185
+ * or in a more touch-friendly sliding fashion.
2186
+ * The property [`Gtk.PopoverMenu.flags`](https://docs.gtk.org/gtk4/property.PopoverMenu.flags.html) controls this appearance.
2187
+ *
2188
+ * `GtkPopoverMenu` is meant to be used primarily with menu models,
2189
+ * using [`Gtk.PopoverMenu.new_from_model`](https://docs.gtk.org/gtk4/ctor.PopoverMenu.new_from_model.html). If you need to put
2190
+ * other widgets such as a `GtkSpinButton` or a `GtkSwitch` into a popover,
2191
+ * you can use [`Gtk.PopoverMenu.add_child`](https://docs.gtk.org/gtk4/method.PopoverMenu.add_child.html).
2192
+ *
2193
+ * For more dialog-like behavior, use a plain `GtkPopover`.
2194
+ *
2195
+ * ## Menu models
2196
+ *
2197
+ * The XML format understood by `GtkBuilder` for `GMenuModel` consists
2198
+ * of a toplevel `<menu>` element, which contains one or more ``<item>``
2199
+ * elements. Each ``<item>`` element contains ``<attribute>`` and `<link>`
2200
+ * elements with a mandatory name attribute. `<link>` elements have the
2201
+ * same content model as `<menu>`. Instead of `<link name="submenu">`
2202
+ * or `<link name="section">`, you can use `<submenu>` or `<section>`
2203
+ * elements.
2204
+ *
2205
+ * ```xml
2206
+ * <menu id='app-menu'>
2207
+ * <section>
2208
+ * <item>
2209
+ * <attribute name='label' translatable='yes'>_New Window</attribute>
2210
+ * <attribute name='action'>app.new</attribute>
2211
+ * </item>
2212
+ * <item>
2213
+ * <attribute name='label' translatable='yes'>_About Sunny</attribute>
2214
+ * <attribute name='action'>app.about</attribute>
2215
+ * </item>
2216
+ * <item>
2217
+ * <attribute name='label' translatable='yes'>_Quit</attribute>
2218
+ * <attribute name='action'>app.quit</attribute>
2219
+ * </item>
2220
+ * </section>
2221
+ * </menu>
2222
+ * ```
2223
+ *
2224
+ * Attribute values can be translated using gettext, like other `GtkBuilder`
2225
+ * content. ``<attribute>`` elements can be marked for translation with a
2226
+ * `translatable="yes"` attribute. It is also possible to specify message
2227
+ * context and translator comments, using the context and comments attributes.
2228
+ * To make use of this, the `GtkBuilder` must have been given the gettext
2229
+ * domain to use.
2230
+ *
2231
+ * The following attributes are used when constructing menu items:
2232
+ *
2233
+ * - "label": a user-visible string to display
2234
+ * - "use-markup": whether the text in the menu item includes Pango markup
2235
+ * - "action": the prefixed name of the action to trigger
2236
+ * - "target": the parameter to use when activating the action
2237
+ * - "icon" and "verb-icon": names of icons that may be displayed
2238
+ * - "submenu-action": name of an action that may be used to track
2239
+ * whether a submenu is open
2240
+ * - "hidden-when": a string used to determine when the item will be hidden.
2241
+ * Possible values include "action-disabled", "action-missing", "macos-menubar".
2242
+ * This is mainly useful for exported menus, see [`Gtk.Application.set_menubar`](https://docs.gtk.org/gtk4/method.Application.set_menubar.html).
2243
+ * - "custom": a string used to match against the ID of a custom child added with
2244
+ * [`Gtk.PopoverMenu.add_child`](https://docs.gtk.org/gtk4/method.PopoverMenu.add_child.html), [`Gtk.PopoverMenuBar.add_child`](https://docs.gtk.org/gtk4/method.PopoverMenuBar.add_child.html),
2245
+ * or in the ui file with `<child type="ID">`.
2246
+ *
2247
+ * The following attributes are used when constructing sections:
2248
+ *
2249
+ * - "label": a user-visible string to use as section heading
2250
+ * - "display-hint": a string used to determine special formatting for the section.
2251
+ * Possible values include "horizontal-buttons", "circular-buttons" and
2252
+ * "inline-buttons". They all indicate that section should be
2253
+ * displayed as a horizontal row of buttons.
2254
+ * - "text-direction": a string used to determine the `GtkTextDirection` to use
2255
+ * when "display-hint" is set to "horizontal-buttons". Possible values
2256
+ * include "rtl", "ltr", and "none".
2257
+ *
2258
+ * The following attributes are used when constructing submenus:
2259
+ *
2260
+ * - "label": a user-visible string to display
2261
+ * - "icon": icon name to display
2262
+ * - "gtk-macos-special": (macOS only, ignored by others) Add special meaning to a menu
2263
+ * in the macOS menu bar. See Using GTK on Apple macOS.
2264
+ *
2265
+ * Menu items will also show accelerators, which are usually associated
2266
+ * with actions via [`Gtk.Application.set_accels_for_action`](https://docs.gtk.org/gtk4/method.Application.set_accels_for_action.html),
2267
+ * [`WidgetClass.add_binding_action`](https://docs.gtk.org/widgetclass/method.add_binding_action.html) or
2268
+ * [`Gtk.ShortcutController.add_shortcut`](https://docs.gtk.org/gtk4/method.ShortcutController.add_shortcut.html).
2269
+ *
2270
+ * # Shortcuts and Gestures
2271
+ *
2272
+ * `GtkPopoverMenu` supports the following keyboard shortcuts:
2273
+ *
2274
+ * - `Space` activates the default widget.
2275
+ *
2276
+ * # CSS Nodes
2277
+ *
2278
+ * `GtkPopoverMenu` is just a subclass of `GtkPopover` that adds custom content
2279
+ * to it, therefore it has the same CSS nodes. It is one of the cases that add
2280
+ * a `.menu` style class to the main `popover` node.
2281
+ *
2282
+ * Menu items have nodes with name `button` and class `.model`. If a section
2283
+ * display-hint is set, the section gets a node `box` with class `horizontal`
2284
+ * plus a class with the same text as the display hint. Note that said box may
2285
+ * not be the direct ancestor of the item `button`s. Thus, for example, to style
2286
+ * items in an `inline-buttons` section, select `.inline-buttons button.model`.
2287
+ * Other things that may be of interest to style in menus include `label` nodes.
2288
+ *
2289
+ * # Accessibility
2290
+ *
2291
+ * `GtkPopoverMenu` uses the [`Gtk.AccessibleRole.menu`](https://docs.gtk.org/gtk4/enum.AccessibleRole.menu.html) role, and its
2292
+ * items use the [`Gtk.AccessibleRole.menu_item`](https://docs.gtk.org/gtk4/enum.AccessibleRole.menu_item.html),
2293
+ * [`Gtk.AccessibleRole.checkbox`](https://docs.gtk.org/gtk4/enum.AccessibleRole.checkbox.html) or [`Gtk.AccessibleRole.menu_item_radio`](https://docs.gtk.org/gtk4/enum.AccessibleRole.menu_item_radio.html)
2294
+ * roles, depending on the action they are connected to.
2295
+ */
2296
+ export declare const GtkPopoverMenu: ((props: GtkPopoverMenuProps) => ReactNode) & {
2297
+ MenuItem: (props: MenuItemProps) => ReactNode;
2298
+ MenuSection: (props: MenuSectionProps) => ReactNode;
2299
+ MenuSubmenu: (props: MenuSubmenuProps) => ReactNode;
2300
+ };
2301
+ /**
2302
+ * Presents a horizontal bar of items that pop up menus when clicked.
2303
+ *
2304
+ * ![An example GtkPopoverMenuBar](https://docs.gtk.org/gtk4/menubar.png)
2305
+ *
2306
+ * The only way to create instances of `GtkPopoverMenuBar` is
2307
+ * from a `GMenuModel`.
2308
+ *
2309
+ * # CSS nodes
2310
+ *
2311
+ * ```
2312
+ * menubar
2313
+ * ├── item[.active]
2314
+ * ┊ ╰── popover
2315
+ * ╰── item
2316
+ * ╰── popover
2317
+ * ```
2318
+ *
2319
+ * `GtkPopoverMenuBar` has a single CSS node with name menubar, below which
2320
+ * each item has its CSS node, and below that the corresponding popover.
2321
+ *
2322
+ * The item whose popover is currently open gets the .active
2323
+ * style class.
2324
+ *
2325
+ * # Accessibility
2326
+ *
2327
+ * `GtkPopoverMenuBar` uses the [`Gtk.AccessibleRole.menu_bar`](https://docs.gtk.org/gtk4/enum.AccessibleRole.menu_bar.html) role,
2328
+ * the menu items use the [`Gtk.AccessibleRole.menu_item`](https://docs.gtk.org/gtk4/enum.AccessibleRole.menu_item.html) role and
2329
+ * the menus use the [`Gtk.AccessibleRole.menu`](https://docs.gtk.org/gtk4/enum.AccessibleRole.menu.html) role.
2330
+ */
2331
+ export declare const GtkPopoverMenuBar: ((props: GtkPopoverMenuBarProps) => ReactNode) & {
2332
+ MenuItem: (props: MenuItemProps) => ReactNode;
2333
+ MenuSection: (props: MenuSectionProps) => ReactNode;
2334
+ MenuSubmenu: (props: MenuSubmenuProps) => ReactNode;
2335
+ };
2336
+ /**
2337
+ * Manages keyboard shortcuts and their activation.
2338
+ *
2339
+ * Most common shortcuts are using this controller implicitly, e.g. by
2340
+ * adding a mnemonic underline to a [`Gtk.Label`](https://docs.gtk.org/gtk4/class.Label.html), or by installing a key
2341
+ * binding using [`Gtk.WidgetClass.add_binding`](https://docs.gtk.org/gtk4/method.WidgetClass.add_binding.html), or by adding accelerators
2342
+ * to global actions using [`Gtk.Application.set_accels_for_action`](https://docs.gtk.org/gtk4/method.Application.set_accels_for_action.html).
2343
+ *
2344
+ * But it is possible to create your own shortcut controller, and add
2345
+ * shortcuts to it.
2346
+ *
2347
+ * `GtkShortcutController` implements [`Gio.ListModel`](https://docs.gtk.org/gio/iface.ListModel.html) for querying the
2348
+ * shortcuts that have been added to it.
2349
+ *
2350
+ * # GtkShortcutController as GtkBuildable
2351
+ *
2352
+ * `GtkShortcutController`s can be created in [`Gtk.Builder`](https://docs.gtk.org/gtk4/class.Builder.html) ui files, to set up
2353
+ * shortcuts in the same place as the widgets.
2354
+ *
2355
+ * An example of a UI definition fragment with `GtkShortcutController`:
2356
+ * ```xml
2357
+ * <object class='GtkButton'>
2358
+ * <child>
2359
+ * <object class='GtkShortcutController'>
2360
+ * <property name='scope'>managed</property>
2361
+ * <child>
2362
+ * <object class='GtkShortcut'>
2363
+ * <property name='trigger'>&lt;Control&gt;k</property>
2364
+ * <property name='action'>activate</property>
2365
+ * </object>
2366
+ * </child>
2367
+ * </object>
2368
+ * </child>
2369
+ * </object>
2370
+ * ```
2371
+ *
2372
+ * This example creates a [`Gtk.ActivateAction`](https://docs.gtk.org/gtk4/class.ActivateAction.html) for triggering the
2373
+ * `activate` signal of the [`Gtk.Button`](https://docs.gtk.org/gtk4/class.Button.html). See [`Gtk.ShortcutAction.parse_string`](https://docs.gtk.org/gtk4/ctor.ShortcutAction.parse_string.html)
2374
+ * for the syntax for other kinds of [`Gtk.ShortcutAction`](https://docs.gtk.org/gtk4/class.ShortcutAction.html). See
2375
+ * [`Gtk.ShortcutTrigger.parse_string`](https://docs.gtk.org/gtk4/ctor.ShortcutTrigger.parse_string.html) to learn more about the syntax
2376
+ * for triggers.
2377
+ */
2378
+ export declare const GtkShortcutController: ((props: GtkShortcutControllerProps) => ReactNode) & {
2379
+ Shortcut: (props: ShortcutProps) => ReactNode;
2380
+ };
2381
+ /**
2382
+ * Subclass of [`Gtk.TextView`](https://docs.gtk.org/gtk4/class.TextView.html).
2383
+ *
2384
+ * `GtkSourceView` is the main class of the GtkSourceView library.
2385
+ * Use a [`Buffer`](https://docs.gtk.org/gtksource/class.Buffer.html) to display text with a `GtkSourceView`.
2386
+ *
2387
+ * This class provides:
2388
+ *
2389
+ * - Show the line numbers;
2390
+ * - Show a right margin;
2391
+ * - Highlight the current line;
2392
+ * - Indentation settings;
2393
+ * - Configuration for the Home and End keyboard keys;
2394
+ * - Configure and show line marks;
2395
+ * - And a few other things.
2396
+ *
2397
+ * An easy way to test all these features is to use the test-widget mini-program
2398
+ * provided in the GtkSourceView repository, in the tests/ directory.
2399
+ *
2400
+ * # GtkSourceView as GtkBuildable
2401
+ *
2402
+ * The GtkSourceView implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface exposes the
2403
+ * [`View.completion`](https://docs.gtk.org/gtksource/property.View.completion.html) object with the internal-child "completion".
2404
+ *
2405
+ * An example of a UI definition fragment with GtkSourceView:
2406
+ * ```xml
2407
+ * <object class="GtkSourceView" id="source_view">
2408
+ * <property name="tab-width">4</property>
2409
+ * <property name="auto-indent">True</property>
2410
+ * <child internal-child="completion">
2411
+ * <object class="GtkSourceCompletion">
2412
+ * <property name="select-on-show">False</property>
2413
+ * </object>
2414
+ * </child>
2415
+ * </object>
2416
+ * ```
2417
+ *
2418
+ * # Changing the Font
2419
+ *
2420
+ * Gtk CSS provides the best way to change the font for a `GtkSourceView` in a
2421
+ * manner that allows for components like [`Map`](https://docs.gtk.org/gtksource/class.Map.html) to scale the desired
2422
+ * font.
2423
+ *
2424
+ * ```c
2425
+ * GtkCssProvider *provider = gtk_css_provider_new ();
2426
+ * gtk_css_provider_load_from_string (provider,
2427
+ * "textview { font-family: Monospace; font-size: 8pt; }");
2428
+ * gtk_style_context_add_provider (gtk_widget_get_style_context (view),
2429
+ * GTK_STYLE_PROVIDER (provider),
2430
+ * GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
2431
+ * g_object_unref (provider);
2432
+ * ```
2433
+ * ```python
2434
+ * provider = Gtk.CssProvider()
2435
+ * provider.load_from_string("textview { font-family: Monospace; font-size: 8pt; }")
2436
+ * style_context = view.get_style_context()
2437
+ * style_context.add_provider(provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
2438
+ * ```
2439
+ *
2440
+ * If you need to adjust the font or size of font within a portion of the
2441
+ * document only, you should use a [`Gtk.TextTag`](https://docs.gtk.org/gtk4/class.TextTag.html) with the [`Gtk.TextTag.family`](https://docs.gtk.org/gtk4/property.TextTag.family.html) or
2442
+ * [`Gtk.TextTag.scale`](https://docs.gtk.org/gtk4/property.TextTag.scale.html) set so that the font size may be scaled relative to
2443
+ * the default font set in CSS.
2444
+ */
2445
+ export declare const GtkSourceView: ((props: GtkSourceViewProps) => ReactNode) & {
2446
+ Tag: (props: TextTagProps) => ReactNode;
2447
+ Anchor: (props: TextAnchorProps) => ReactNode;
2448
+ Paintable: (props: TextPaintableProps) => ReactNode;
2449
+ };
2450
+ /**
2451
+ * Shows one of its children at a time.
2452
+ *
2453
+ * ![An example GtkStack](https://docs.gtk.org/gtk4/stack.png)
2454
+ *
2455
+ * In contrast to `GtkNotebook`, `GtkStack` does not provide a means
2456
+ * for users to change the visible child. Instead, a separate widget
2457
+ * such as [`Gtk.StackSwitcher`](https://docs.gtk.org/gtk4/class.StackSwitcher.html) or [`Gtk.StackSidebar`](https://docs.gtk.org/gtk4/class.StackSidebar.html) can
2458
+ * be used with `GtkStack` to provide this functionality.
2459
+ *
2460
+ * Transitions between pages can be animated as slides or fades. This
2461
+ * can be controlled with [`Gtk.Stack.set_transition_type`](https://docs.gtk.org/gtk4/method.Stack.set_transition_type.html).
2462
+ * These animations respect the [`Gtk.Settings.gtk-enable-animations`](https://docs.gtk.org/gtk4/property.Settings.gtk-enable-animations.html)
2463
+ * setting.
2464
+ *
2465
+ * `GtkStack` maintains a [`Gtk.StackPage`](https://docs.gtk.org/gtk4/class.StackPage.html) object for each added
2466
+ * child, which holds additional per-child properties. You
2467
+ * obtain the `GtkStackPage` for a child with [`Gtk.Stack.get_page`](https://docs.gtk.org/gtk4/method.Stack.get_page.html)
2468
+ * and you can obtain a `GtkSelectionModel` containing all the pages
2469
+ * with [`Gtk.Stack.get_pages`](https://docs.gtk.org/gtk4/method.Stack.get_pages.html).
2470
+ *
2471
+ * # GtkStack as GtkBuildable
2472
+ *
2473
+ * To set child-specific properties in a .ui file, create `GtkStackPage`
2474
+ * objects explicitly, and set the child widget as a property on it:
2475
+ *
2476
+ * ```xml
2477
+ * <object class="GtkStack" id="stack">
2478
+ * <child>
2479
+ * <object class="GtkStackPage">
2480
+ * <property name="name">page1</property>
2481
+ * <property name="title">In the beginning…</property>
2482
+ * <property name="child">
2483
+ * <object class="GtkLabel">
2484
+ * <property name="label">It was dark</property>
2485
+ * </object>
2486
+ * </property>
2487
+ * </object>
2488
+ * </child>
2489
+ * ```
2490
+ *
2491
+ * # CSS nodes
2492
+ *
2493
+ * `GtkStack` has a single CSS node named stack.
2494
+ *
2495
+ * # Accessibility
2496
+ *
2497
+ * `GtkStack` uses the [`Gtk.AccessibleRole.tab_panel`](https://docs.gtk.org/gtk4/enum.AccessibleRole.tab_panel.html) role for the stack
2498
+ * pages, which are the accessible parent objects of the child widgets.
2499
+ */
2500
+ export declare const GtkStack: ((props: GtkStackProps) => ReactNode) & {
2501
+ Page: (props: StackPageProps) => ReactNode;
2502
+ };
2503
+ /**
2504
+ * Displays the contents of a [`Gtk.TextBuffer`](https://docs.gtk.org/gtk4/class.TextBuffer.html).
2505
+ *
2506
+ * ![An example GtkTextView](https://docs.gtk.org/gtk4/multiline-text.png)
2507
+ *
2508
+ * You may wish to begin by reading the conceptual overview,
2509
+ * which gives an overview of all the objects and data types related to the
2510
+ * text widget and how they work together.
2511
+ *
2512
+ * ## Shortcuts and Gestures
2513
+ *
2514
+ * `GtkTextView` supports the following keyboard shortcuts:
2515
+ *
2516
+ * - `Shift`+`F10` or `Menu` opens the context menu.
2517
+ * - `Ctrl`+`Z` undoes the last modification.
2518
+ * - `Ctrl`+`Y` or `Ctrl`+`Shift`+`Z`
2519
+ * redoes the last undone modification.
2520
+ * - `Clear` clears the content.
2521
+ *
2522
+ * Additionally, the following signals have default keybindings:
2523
+ *
2524
+ * - [`Gtk.TextView.:backspace`](https://docs.gtk.org/gtk4/signal.TextView.backspace.html)
2525
+ * - [`Gtk.TextView.:copy-clipboard`](https://docs.gtk.org/gtk4/signal.TextView.copy-clipboard.html)
2526
+ * - [`Gtk.TextView.:cut-clipboard`](https://docs.gtk.org/gtk4/signal.TextView.cut-clipboard.html)
2527
+ * - [`Gtk.TextView.:delete-from-cursor`](https://docs.gtk.org/gtk4/signal.TextView.delete-from-cursor.html)
2528
+ * - [`Gtk.TextView.:insert-emoji`](https://docs.gtk.org/gtk4/signal.TextView.insert-emoji.html)
2529
+ * - [`Gtk.TextView.:move-cursor`](https://docs.gtk.org/gtk4/signal.TextView.move-cursor.html)
2530
+ * - [`Gtk.TextView.:paste-clipboard`](https://docs.gtk.org/gtk4/signal.TextView.paste-clipboard.html)
2531
+ * - [`Gtk.TextView.:select-all`](https://docs.gtk.org/gtk4/signal.TextView.select-all.html)
2532
+ * - [`Gtk.TextView.:toggle-cursor-visible`](https://docs.gtk.org/gtk4/signal.TextView.toggle-cursor-visible.html)
2533
+ * - [`Gtk.TextView.:toggle-overwrite`](https://docs.gtk.org/gtk4/signal.TextView.toggle-overwrite.html)
2534
+ *
2535
+ * ## Actions
2536
+ *
2537
+ * `GtkTextView` defines a set of built-in actions:
2538
+ *
2539
+ * - `clipboard.copy` copies the contents to the clipboard.
2540
+ * - `clipboard.cut` copies the contents to the clipboard and deletes it from
2541
+ * the widget.
2542
+ * - `clipboard.paste` inserts the contents of the clipboard into the widget.
2543
+ * - `menu.popup` opens the context menu.
2544
+ * - `misc.insert-emoji` opens the Emoji chooser.
2545
+ * - `selection.delete` deletes the current selection.
2546
+ * - `selection.select-all` selects all of the widgets content.
2547
+ * - `text.redo` redoes the last change to the contents.
2548
+ * - `text.undo` undoes the last change to the contents.
2549
+ * - `text.clear` clears the content.
2550
+ *
2551
+ * ## CSS nodes
2552
+ *
2553
+ * ```
2554
+ * textview.view
2555
+ * ├── border.top
2556
+ * ├── border.left
2557
+ * ├── text
2558
+ * │ ╰── [selection]
2559
+ * ├── border.right
2560
+ * ├── border.bottom
2561
+ * ╰── [window.popup]
2562
+ * ```
2563
+ *
2564
+ * `GtkTextView` has a main css node with name textview and style class .view,
2565
+ * and subnodes for each of the border windows, and the main text area,
2566
+ * with names border and text, respectively. The border nodes each get
2567
+ * one of the style classes .left, .right, .top or .bottom.
2568
+ *
2569
+ * A node representing the selection will appear below the text node.
2570
+ *
2571
+ * If a context menu is opened, the window node will appear as a subnode
2572
+ * of the main node.
2573
+ *
2574
+ * ## Accessibility
2575
+ *
2576
+ * `GtkTextView` uses the [`Gtk.AccessibleRole.text_box`](https://docs.gtk.org/gtk4/enum.AccessibleRole.text_box.html) role.
2577
+ */
2578
+ export declare const GtkTextView: ((props: GtkTextViewProps) => ReactNode) & {
2579
+ Tag: (props: TextTagProps) => ReactNode;
2580
+ Anchor: (props: TextAnchorProps) => ReactNode;
2581
+ Paintable: (props: TextPaintableProps) => ReactNode;
2582
+ };
2583
+ /**
2584
+ * A toplevel window which can contain other widgets.
2585
+ *
2586
+ * ![An example GtkWindow](https://docs.gtk.org/gtk4/window.png)
2587
+ *
2588
+ * Windows normally have decorations that are under the control
2589
+ * of the windowing system and allow the user to manipulate the window
2590
+ * (resize it, move it, close it,...).
2591
+ *
2592
+ * # GtkWindow as GtkBuildable
2593
+ *
2594
+ * The `GtkWindow` implementation of the [`Gtk.Buildable`](https://docs.gtk.org/gtk4/iface.Buildable.html) interface supports
2595
+ * setting a child as the titlebar by specifying “titlebar” as the “type”
2596
+ * attribute of a ``<child>`` element.
2597
+ *
2598
+ * # Shortcuts and Gestures
2599
+ *
2600
+ * `GtkWindow` supports the following keyboard shortcuts:
2601
+ *
2602
+ * - `F10` activates the menubar, if present.
2603
+ * - `Alt` makes the mnemonics visible while pressed.
2604
+ *
2605
+ * The following signals have default keybindings:
2606
+ *
2607
+ * - [`Gtk.Window.:activate-default`](https://docs.gtk.org/gtk4/signal.Window.activate-default.html)
2608
+ * - [`Gtk.Window.:activate-focus`](https://docs.gtk.org/gtk4/signal.Window.activate-focus.html)
2609
+ * - [`Gtk.Window.:enable-debugging`](https://docs.gtk.org/gtk4/signal.Window.enable-debugging.html)
2610
+ *
2611
+ * # Actions
2612
+ *
2613
+ * `GtkWindow` defines a set of built-in actions:
2614
+ *
2615
+ * - `default.activate` activates the default widget.
2616
+ * - `window.minimize` minimizes the window.
2617
+ * - `window.toggle-maximized` maximizes or restores the window.
2618
+ * - `window.close` closes the window.
2619
+ *
2620
+ * # CSS nodes
2621
+ *
2622
+ * ```
2623
+ * window.background [.csd / .solid-csd / .ssd] [.maximized / .fullscreen / .tiled]
2624
+ * ├── <child>
2625
+ * ╰── <titlebar child>.titlebar [.default-decoration]
2626
+ * ```
2627
+ *
2628
+ * `GtkWindow` has a main CSS node with name window and style class .background.
2629
+ *
2630
+ * Style classes that are typically used with the main CSS node are .csd (when
2631
+ * client-side decorations are in use), .solid-csd (for client-side decorations
2632
+ * without invisible borders), .ssd (used by mutter when rendering server-side
2633
+ * decorations). GtkWindow also represents window states with the following
2634
+ * style classes on the main node: .maximized, .fullscreen, .tiled (when supported,
2635
+ * also .tiled-top, .tiled-left, .tiled-right, .tiled-bottom).
2636
+ *
2637
+ * `GtkWindow` subclasses often add their own discriminating style classes,
2638
+ * such as .dialog, .popup or .tooltip.
2639
+ *
2640
+ * Generally, some CSS properties don't make sense on the toplevel window node,
2641
+ * such as margins or padding. When client-side decorations without invisible
2642
+ * borders are in use (i.e. the .solid-csd style class is added to the
2643
+ * main window node), the CSS border of the toplevel window is used for
2644
+ * resize drags. In the .csd case, the shadow area outside of the window
2645
+ * can be used to resize it.
2646
+ *
2647
+ * `GtkWindow` adds the .titlebar and .default-decoration style classes to the
2648
+ * widget that is added as a titlebar child.
2649
+ *
2650
+ * # Accessibility
2651
+ *
2652
+ * `GtkWindow` uses the [`Gtk.AccessibleRole.window`](https://docs.gtk.org/gtk4/enum.AccessibleRole.window.html) role.
2653
+ *
2654
+ * From GTK 4.12 to 4.18, it used the [`Gtk.AccessibleRole.application`](https://docs.gtk.org/gtk4/enum.AccessibleRole.application.html) role.
2655
+ */
2656
+ export declare const GtkWindow: (props: GtkWindowProps) => ReactNode;
2657
+ /**
2658
+ * Type mapping widgets to their valid container slot method names.
2659
+ *
2660
+ * Each key is a JSX element name and each value is a union of method names
2661
+ * used by container slot compound components (e.g. `AdwHeaderBar.PackStart`).
2662
+ */
2663
+ export type ContainerSlotNames = {
2664
+ AdwActionRow: "addPrefix" | "addSuffix";
2665
+ AdwEntryRow: "addPrefix" | "addSuffix";
2666
+ AdwExpanderRow: "addPrefix" | "addSuffix" | "addRow" | "addAction";
2667
+ AdwHeaderBar: "packStart" | "packEnd";
2668
+ AdwToolbarView: "addTopBar" | "addBottomBar";
2669
+ GtkActionBar: "packStart" | "packEnd";
2670
+ GtkHeaderBar: "packStart" | "packEnd";
2671
+ };
2672
+ //# sourceMappingURL=compounds.d.ts.map