@gjsify/adwaita-nativescript 0.64.12-next.279 → 0.64.12-next.281

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 (110) hide show
  1. package/lib/esm/builder/index.js +1 -1
  2. package/lib/esm/builder/param-values.js +1 -1
  3. package/lib/esm/gobject-siblings.d.blp.js +0 -0
  4. package/lib/esm/index.js +1 -1
  5. package/lib/esm/namespace/adw.js +1 -1
  6. package/lib/esm/namespace/gdk.js +1 -1
  7. package/lib/esm/namespace/gio.js +1 -1
  8. package/lib/esm/namespace/graphene.js +1 -0
  9. package/lib/esm/namespace/gtk.js +1 -1
  10. package/lib/esm/widgets/adw-alert-dialog.js +1 -1
  11. package/lib/esm/widgets/adw-button-content.js +1 -1
  12. package/lib/esm/widgets/adw-button-row.js +1 -1
  13. package/lib/esm/widgets/adw-combo-row.js +1 -1
  14. package/lib/esm/widgets/adw-expander-row.js +1 -1
  15. package/lib/esm/widgets/adw-overlay-split-view.js +1 -1
  16. package/lib/esm/widgets/adw-split-button.js +1 -1
  17. package/lib/esm/widgets/adw-view-stack.js +1 -1
  18. package/lib/esm/widgets/gtk-application-window.js +1 -0
  19. package/lib/esm/widgets/gtk-button.js +1 -1
  20. package/lib/esm/widgets/gtk-check-button.js +1 -1
  21. package/lib/esm/widgets/gtk-drop-down.js +1 -1
  22. package/lib/esm/widgets/gtk-list-box.js +1 -1
  23. package/lib/esm/widgets/gtk-menu-button.js +1 -1
  24. package/lib/esm/widgets/gtk-scrolled-window.js +1 -1
  25. package/lib/esm/widgets/gtk-stack.js +1 -1
  26. package/lib/esm/widgets/gtk-toggle-button.js +1 -1
  27. package/lib/esm/widgets/gtk-window.js +1 -1
  28. package/lib/esm/widgets/index.js +1 -1
  29. package/lib/esm/widgets/signals.js +1 -1
  30. package/lib/esm/widgets/split-button.js +1 -1
  31. package/lib/esm/widgets/style-manager-host.js +1 -1
  32. package/lib/esm/widgets/style-manager.js +1 -1
  33. package/lib/esm/widgets/system-accent.js +1 -0
  34. package/lib/esm/widgets/widget-layout.js +1 -1
  35. package/lib/types/builder/index.d.ts +5 -2
  36. package/lib/types/button-content-properties.spec.d.ts +1 -0
  37. package/lib/types/expander-row-properties.spec.d.ts +2 -0
  38. package/lib/types/gtk-button-clicked.spec.d.ts +1 -0
  39. package/lib/types/index.d.ts +3 -2
  40. package/lib/types/namespace/adw.d.ts +1 -1
  41. package/lib/types/namespace/gdk.d.ts +1 -0
  42. package/lib/types/namespace/gio.d.ts +1 -0
  43. package/lib/types/namespace/graphene.d.ts +1 -0
  44. package/lib/types/namespace/gtk.d.ts +2 -1
  45. package/lib/types/split-button-properties.spec.d.ts +1 -0
  46. package/lib/types/system-accent.spec.d.ts +2 -0
  47. package/lib/types/testing/ns-core.d.mts +9 -9
  48. package/lib/types/widgets/adw-about-dialog.d.ts +3 -0
  49. package/lib/types/widgets/adw-action-row.d.ts +3 -0
  50. package/lib/types/widgets/adw-alert-dialog.d.ts +3 -0
  51. package/lib/types/widgets/adw-application-window.d.ts +7 -0
  52. package/lib/types/widgets/adw-avatar.d.ts +3 -0
  53. package/lib/types/widgets/adw-banner.d.ts +3 -0
  54. package/lib/types/widgets/adw-bottom-sheet.d.ts +3 -0
  55. package/lib/types/widgets/adw-button-content.d.ts +24 -13
  56. package/lib/types/widgets/adw-carousel.d.ts +3 -0
  57. package/lib/types/widgets/adw-clamp.d.ts +3 -0
  58. package/lib/types/widgets/adw-combo-row.d.ts +1 -1
  59. package/lib/types/widgets/adw-data-grid.d.ts +3 -0
  60. package/lib/types/widgets/adw-expander-row.d.ts +93 -16
  61. package/lib/types/widgets/adw-header-bar.d.ts +3 -0
  62. package/lib/types/widgets/adw-image-button.d.ts +3 -0
  63. package/lib/types/widgets/adw-navigation-page.d.ts +3 -0
  64. package/lib/types/widgets/adw-navigation-view.d.ts +3 -0
  65. package/lib/types/widgets/adw-overlay-split-view.d.ts +5 -0
  66. package/lib/types/widgets/adw-preferences-group.d.ts +3 -0
  67. package/lib/types/widgets/adw-preferences-page.d.ts +3 -0
  68. package/lib/types/widgets/adw-shortcut-label.d.ts +3 -0
  69. package/lib/types/widgets/adw-sidebar.d.ts +3 -0
  70. package/lib/types/widgets/adw-slider-row.d.ts +3 -0
  71. package/lib/types/widgets/adw-spinner.d.ts +3 -0
  72. package/lib/types/widgets/adw-split-button.d.ts +31 -29
  73. package/lib/types/widgets/adw-status-page.d.ts +3 -0
  74. package/lib/types/widgets/adw-tab-view.d.ts +3 -0
  75. package/lib/types/widgets/adw-toast-overlay.d.ts +3 -0
  76. package/lib/types/widgets/adw-toggle-group.d.ts +3 -0
  77. package/lib/types/widgets/adw-toggle.d.ts +3 -0
  78. package/lib/types/widgets/adw-toolbar-view.d.ts +3 -0
  79. package/lib/types/widgets/adw-view-stack.d.ts +13 -0
  80. package/lib/types/widgets/adw-view-switcher-bar.d.ts +3 -0
  81. package/lib/types/widgets/adw-window-title.d.ts +3 -0
  82. package/lib/types/widgets/adw-wrap-box.d.ts +3 -0
  83. package/lib/types/widgets/carousel-indicator-base.d.ts +3 -0
  84. package/lib/types/widgets/gtk-action-bar.d.ts +3 -0
  85. package/lib/types/widgets/gtk-application-window.d.ts +13 -0
  86. package/lib/types/widgets/gtk-button.d.ts +3 -2
  87. package/lib/types/widgets/gtk-drop-down.d.ts +4 -1
  88. package/lib/types/widgets/gtk-entry.d.ts +3 -0
  89. package/lib/types/widgets/gtk-image.d.ts +3 -0
  90. package/lib/types/widgets/gtk-label.d.ts +3 -0
  91. package/lib/types/widgets/gtk-menu-button.d.ts +5 -0
  92. package/lib/types/widgets/gtk-popover-menu.d.ts +3 -0
  93. package/lib/types/widgets/gtk-scrolled-window.d.ts +11 -1
  94. package/lib/types/widgets/gtk-stack.d.ts +11 -0
  95. package/lib/types/widgets/gtk-text-view.d.ts +3 -0
  96. package/lib/types/widgets/gtk-window.d.ts +10 -2
  97. package/lib/types/widgets/index.d.ts +4 -4
  98. package/lib/types/widgets/signals.d.ts +9 -1
  99. package/lib/types/widgets/split-button.d.ts +1 -10
  100. package/lib/types/widgets/split-view-base.d.ts +3 -0
  101. package/lib/types/widgets/stack-page.d.ts +3 -0
  102. package/lib/types/widgets/style-manager.d.ts +7 -2
  103. package/lib/types/widgets/styled-layout-base.d.ts +3 -0
  104. package/lib/types/widgets/system-accent.d.ts +22 -0
  105. package/lib/types/widgets/view-stack-page.d.ts +3 -0
  106. package/lib/types/widgets/view-switcher-base.d.ts +3 -0
  107. package/lib/types/widgets/widget-layout.d.ts +7 -1
  108. package/package.json +13 -13
  109. package/src/testing/ns-core.mts +21 -15
  110. package/src/theme/adwaita.css +25 -4
@@ -1,31 +1,73 @@
1
1
  import type { View } from '@nativescript/core';
2
- import { StackLayout, type EventData } from '@nativescript/core';
2
+ import { StackLayout, Switch } from '@nativescript/core';
3
3
  import { AdwActionRow } from './adw-action-row.js';
4
4
  import { GtkImage } from './gtk-image.js';
5
5
  import { type ConstructProps } from './construct-props.js';
6
- export { ExpanderState } from '@gjsify/adwaita-core';
7
- export type { ExpanderStateListener } from '@gjsify/adwaita-core';
8
6
  /** Event name emitted when {@link AdwExpanderRow.expanded} changes. Mirrors GObject `notify::expanded`. */
9
7
  export declare const NOTIFY_EXPANDED = "notify::expanded";
10
- /** Payload of the `notify::expanded` event. */
11
- export interface NotifyExpandedEventData extends EventData {
12
- /** The new expanded state. */
13
- expanded: boolean;
14
- }
15
- export declare class AdwExpanderRow extends AdwActionRow {
8
+ /** Event name emitted when {@link AdwExpanderRow.enableExpansion} changes. */
9
+ export declare const NOTIFY_ENABLE_EXPANSION = "notify::enable-expansion";
10
+ /** Event name emitted when {@link AdwExpanderRow.showEnableSwitch} changes. */
11
+ export declare const NOTIFY_SHOW_ENABLE_SWITCH = "notify::show-enable-switch";
12
+ /**
13
+ * Opacity of the chevron while expansion is disabled.
14
+ *
15
+ * `.expander-row-arrow:disabled` is not expressible here: the NS CSS subset has no widget
16
+ * states, so the insensitive look the `.ui`'s `sensitive` binding produces (bound to
17
+ * `enable-expansion`, adw-expander-row.ui:60) has to be an opacity the row assigns.
18
+ *
19
+ * 0.5 is `--disabled-opacity`, which `_expanders.scss:7` takes and which has no dark-scheme
20
+ * override (`tokens.generated.ts:255`) — so one number covers both schemes. NOT shared with
21
+ * `NS_INSENSITIVE_OPACITY` (0.3, `entry-row-view.ts`): that is libadwaita's stronger
22
+ * `$strong_disabled_opacity`, which only the entry row's pencil takes.
23
+ */
24
+ export declare const NS_EXPANDER_ARROW_DISABLED_OPACITY = 0.5;
25
+ declare const AdwExpanderRow_base: ((abstract new (...args: any[]) => {
26
+ _emit(eventName: string): void;
27
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
28
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
29
+ notify<T extends import("@nativescript/core").EventData>(data: T): void;
30
+ notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
31
+ set(name: string, value: unknown): void;
32
+ get(name: string): unknown;
33
+ }) & {
34
+ readonly emittedSignals: readonly string[];
35
+ }) & typeof AdwActionRow;
36
+ export declare class AdwExpanderRow extends AdwExpanderRow_base {
16
37
  static readonly GTypeName: string;
17
38
  /** The names this widget's `_addChildFromBuilder` honours — see `./builder-slots.ts`. */
18
39
  static readonly builderSlots: readonly string[];
19
40
  /** `AdwExpanderRow` derives from `AdwPreferencesRow` in C
20
41
  * (adw-expander-row.c:72), so the search does not consult a subtitle here. */
21
42
  readonly isActionRow: boolean;
22
- /** The disclosure chevron (suffix) — a plain symbolic icon, like Adw.ExpanderRow. */
43
+ /** Whether the disclosure is revealed. Coerced to `false` while {@link enableExpansion} is off. */
44
+ expanded: boolean;
45
+ /** `Adw.ExpanderRow:enable-expansion` — whether the row can be expanded at all. */
46
+ enableExpansion: boolean;
47
+ /** `Adw.ExpanderRow:show-enable-switch` — whether the enable switch is visible. */
48
+ showEnableSwitch: boolean;
49
+ /** The disclosure chevron — a plain symbolic icon, like Adw.ExpanderRow's arrow. */
23
50
  protected readonly _toggle: GtkImage;
51
+ /** The switch that writes {@link enableExpansion} (`enable_switch` in the .ui). */
52
+ protected readonly _enableSwitch: Switch;
53
+ /** The consumer suffix BOX — `priv->suffixes`, not a slot. */
54
+ protected readonly _suffixes: StackLayout;
24
55
  /** The container of revealed child rows (second grid row). */
25
56
  protected readonly _disclosure: StackLayout;
26
- /** The headless expanded/collapsed disclosure state machine (ADR 0004). */
27
- private readonly _state;
57
+ /**
58
+ * See {@link ExpanderRowValues._expansionGate}. A field and not a declared property because
59
+ * it is not state at all — it is one write's argument, visible for the length of that write.
60
+ */
61
+ private _expansionGate;
62
+ /** The newest suffix installed through {@link add_suffix} — what `suffix` answers. */
63
+ private _slotSuffix;
28
64
  constructor(props?: ConstructProps<AdwExpanderRow>);
65
+ get_expanded(): boolean;
66
+ set_expanded(expanded: boolean): void;
67
+ get_enable_expansion(): boolean;
68
+ set_enable_expansion(enableExpansion: boolean): void;
69
+ get_show_enable_switch(): boolean;
70
+ set_show_enable_switch(showEnableSwitch: boolean): void;
29
71
  /**
30
72
  * Append a child row (or any view) to the disclosure container —
31
73
  * `adw_expander_row_add_row`.
@@ -37,8 +79,28 @@ export declare class AdwExpanderRow extends AdwActionRow {
37
79
  * the grid's track setup and the row's child list no longer share a name.
38
80
  */
39
81
  add_row(view: View): void;
40
- /** Remove a previously-added child row from the disclosure container — `adw_expander_row_remove`. */
82
+ /**
83
+ * Install a suffix — `adw_expander_row_add_suffix`, which PREPENDS into `priv->suffixes`
84
+ * (`gtk_box_prepend`, C:449) and makes that box visible.
85
+ *
86
+ * The suffixes box COEXISTS with the enable switch and the arrow, as upstream's does: it
87
+ * is the first child of the trailing cluster the constructor installed once through the
88
+ * inherited single-slot `add_suffix`, so a consumer suffix no longer has to evict an
89
+ * affordance to be placed. That is what retired this class's old refusal of an authored
90
+ * `slot: "suffix"` — the refusal existed because the one slot held the chevron, and the
91
+ * cluster is why it no longer does.
92
+ */
93
+ add_suffix(view: View): void;
94
+ /**
95
+ * Remove a prefix, a suffix or a disclosure row — `adw_expander_row_remove`, which
96
+ * dispatches on where the child actually is (C:466-477).
97
+ *
98
+ * The box going invisible again when it empties is upstream's own line:
99
+ * `gtk_widget_set_visible (parent, gtk_widget_get_first_child (parent) != NULL)`.
100
+ */
41
101
  remove(view: View): void;
102
+ /** The suffix most recently installed through {@link add_suffix}, or `null`. */
103
+ get suffix(): View | null;
42
104
  /**
43
105
  * An XML child is a ROW inside the disclosure — the one placement an expander row
44
106
  * adds over its base, and the reason this overrides `AdwActionRow`'s prefix/suffix
@@ -48,6 +110,9 @@ export declare class AdwExpanderRow extends AdwActionRow {
48
110
  /**
49
111
  * The rows inside the disclosure, in order — the read-back for `add_row`.
50
112
  *
113
+ * Answers the same list whether the row is expanded or collapsed: the reveal is a
114
+ * `visibility` toggle, never a structural change (see the module header).
115
+ *
51
116
  * NOT `rows`, which is what it was called first. `GridLayoutBase` declares `rows`
52
117
  * as a SETTER-ONLY accessor (its getter is `rowsInternal`), so a getter of that
53
118
  * name on a subclass shadows it: `expanderRow.rows = 'auto,*'` then throws
@@ -59,7 +124,19 @@ export declare class AdwExpanderRow extends AdwActionRow {
59
124
  * `scripts/nativescript-xml-doors.mjs:116`).
60
125
  */
61
126
  get disclosureRows(): readonly View[];
62
- /** Whether the disclosure is revealed. */
63
- get expanded(): boolean;
64
- set expanded(value: boolean | string);
127
+ /** The suffix box's newest remaining child — what `suffix` falls back to after a removal. */
128
+ private _lastSuffix;
129
+ /** Reveal or collapse the disclosure and turn the chevron. Run from `notify::expanded`. */
130
+ private _applyExpanded;
131
+ /**
132
+ * Mirror `enable-expansion` onto the switch and the arrow's sensitivity.
133
+ *
134
+ * The COLLAPSE half is not here: it happens inside the write itself, in the property's
135
+ * normalizer, because libadwaita emits `notify::expanded` before `notify::enable-expansion`
136
+ * and a handler cannot run earlier than the write that invoked it.
137
+ */
138
+ private _applyEnableExpansion;
139
+ /** Show or hide the enable switch. Run from `notify::show-enable-switch`. */
140
+ private _applyShowEnableSwitch;
65
141
  }
142
+ export {};
@@ -47,6 +47,9 @@ declare const AdwHeaderBar_base: ((abstract new (...args: any[]) => {
47
47
  get_next_sibling(): object | null;
48
48
  get_prev_sibling(): object | null;
49
49
  get_parent(): object | null;
50
+ get_width(): number;
51
+ get_height(): number;
52
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
50
53
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
51
54
  get focusable(): boolean;
52
55
  set focusable(value: boolean | string);
@@ -57,6 +57,9 @@ declare const AdwImageButton_base: ((abstract new (...args: any[]) => {
57
57
  get_next_sibling(): object | null;
58
58
  get_prev_sibling(): object | null;
59
59
  get_parent(): object | null;
60
+ get_width(): number;
61
+ get_height(): number;
62
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
60
63
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
61
64
  get focusable(): boolean;
62
65
  set focusable(value: boolean | string);
@@ -53,6 +53,9 @@ declare const AdwNavigationPage_base: ((abstract new (...args: any[]) => {
53
53
  get_next_sibling(): object | null;
54
54
  get_prev_sibling(): object | null;
55
55
  get_parent(): object | null;
56
+ get_width(): number;
57
+ get_height(): number;
58
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
56
59
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
57
60
  get focusable(): boolean;
58
61
  set focusable(value: boolean | string);
@@ -60,6 +60,9 @@ declare const AdwNavigationView_base: ((abstract new (...args: any[]) => {
60
60
  get_next_sibling(): object | null;
61
61
  get_prev_sibling(): object | null;
62
62
  get_parent(): object | null;
63
+ get_width(): number;
64
+ get_height(): number;
65
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
63
66
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
64
67
  get focusable(): boolean;
65
68
  set focusable(value: boolean | string);
@@ -7,6 +7,11 @@ export declare class AdwOverlaySplitView extends AdwSplitViewBase<NsOverlaySplit
7
7
  * closes the sidebar (Adwaita's click-outside-to-dismiss). Created lazily. */
8
8
  private _scrim;
9
9
  constructor(props?: ConstructProps<AdwOverlaySplitView>);
10
+ /** `Adw.OverlaySplitView:show-sidebar` — the GIR spelling of {@link showSidebar}. */
11
+ get show_sidebar(): boolean;
12
+ set show_sidebar(raw: boolean | string);
13
+ get_show_sidebar(): boolean;
14
+ set_show_sidebar(v: boolean): void;
10
15
  /**
11
16
  * `Adw.OverlaySplitView:pin-sidebar` (adw-overlay-split-view.c:990-992,
12
17
  * default FALSE) — whether collapsing leaves the sidebar's visibility alone.
@@ -49,6 +49,9 @@ declare const AdwPreferencesGroup_base: ((abstract new (...args: any[]) => {
49
49
  get_next_sibling(): object | null;
50
50
  get_prev_sibling(): object | null;
51
51
  get_parent(): object | null;
52
+ get_width(): number;
53
+ get_height(): number;
54
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
52
55
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
53
56
  get focusable(): boolean;
54
57
  set focusable(value: boolean | string);
@@ -49,6 +49,9 @@ declare const AdwPreferencesPage_base: ((abstract new (...args: any[]) => {
49
49
  get_next_sibling(): object | null;
50
50
  get_prev_sibling(): object | null;
51
51
  get_parent(): object | null;
52
+ get_width(): number;
53
+ get_height(): number;
54
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
52
55
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
53
56
  get focusable(): boolean;
54
57
  set focusable(value: boolean | string);
@@ -46,6 +46,9 @@ declare const AdwShortcutLabel_base: ((abstract new (...args: any[]) => {
46
46
  get_next_sibling(): object | null;
47
47
  get_prev_sibling(): object | null;
48
48
  get_parent(): object | null;
49
+ get_width(): number;
50
+ get_height(): number;
51
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
49
52
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
50
53
  get focusable(): boolean;
51
54
  set focusable(value: boolean | string);
@@ -72,6 +72,9 @@ declare const AdwSidebar_base: ((abstract new (...args: any[]) => {
72
72
  get_next_sibling(): object | null;
73
73
  get_prev_sibling(): object | null;
74
74
  get_parent(): object | null;
75
+ get_width(): number;
76
+ get_height(): number;
77
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
75
78
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
76
79
  get focusable(): boolean;
77
80
  set focusable(value: boolean | string);
@@ -54,6 +54,9 @@ declare const AdwSliderRow_base: ((abstract new (...args: any[]) => {
54
54
  get_next_sibling(): object | null;
55
55
  get_prev_sibling(): object | null;
56
56
  get_parent(): object | null;
57
+ get_width(): number;
58
+ get_height(): number;
59
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
57
60
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
58
61
  get focusable(): boolean;
59
62
  set focusable(value: boolean | string);
@@ -53,6 +53,9 @@ declare const AdwSpinner_base: ((abstract new (...args: any[]) => {
53
53
  get_next_sibling(): object | null;
54
54
  get_prev_sibling(): object | null;
55
55
  get_parent(): object | null;
56
+ get_width(): number;
57
+ get_height(): number;
58
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
56
59
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
57
60
  get focusable(): boolean;
58
61
  set focusable(value: boolean | string);
@@ -2,8 +2,7 @@ import { GridLayout, Label, StackLayout, type EventData } from '@nativescript/co
2
2
  import type { AdwMenuActions, AdwMenuInput, AdwMenuModel, SplitButtonDirection } from '@gjsify/adwaita-core';
3
3
  import { GtkImage } from './gtk-image.js';
4
4
  import { type ConstructProps } from './construct-props.js';
5
- /** Event name emitted when the main action part is tapped. Mirrors `Adw.SplitButton::clicked`. */
6
- export declare const CLICKED = "clicked";
5
+ import { type GObjectNotify } from './signals.js';
7
6
  /** Emitted when {@link AdwSplitButton.set_direction} moves the arrow. */
8
7
  export declare const NOTIFY_DIRECTION = "notify::direction";
9
8
  /** Event name emitted when a dropdown menu item is chosen. */
@@ -69,6 +68,9 @@ declare const AdwSplitButton_base: ((abstract new (...args: any[]) => {
69
68
  get_next_sibling(): object | null;
70
69
  get_prev_sibling(): object | null;
71
70
  get_parent(): object | null;
71
+ get_width(): number;
72
+ get_height(): number;
73
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
72
74
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
73
75
  get focusable(): boolean;
74
76
  set focusable(value: boolean | string);
@@ -88,6 +90,26 @@ declare const AdwSplitButton_base: ((abstract new (...args: any[]) => {
88
90
  export declare class AdwSplitButton extends AdwSplitButton_base {
89
91
  static readonly GTypeName: string;
90
92
  static readonly emittedSignals: readonly string[];
93
+ notify: GObjectNotify;
94
+ /** The main button's text, or `null` while an icon fills the action half. */
95
+ label: string | null;
96
+ /**
97
+ * The action half's icon — an icon theme NAME or a symbolic SVG source, which `GtkImage`
98
+ * resolves alike. Setting one clears {@link label}; `''` reads back `null`.
99
+ */
100
+ iconName: string | null;
101
+ /** Whether an underline in {@link label} marks a mnemonic. */
102
+ useUnderline: boolean;
103
+ /**
104
+ * Whether the label can be smaller than its natural size. FIDELITY GAP: GTK ellipsizes, and the
105
+ * NS CSS subset has no ellipsize, so it is held and reflected as a `can-shrink` class only.
106
+ */
107
+ canShrink: boolean;
108
+ /**
109
+ * The dropdown tooltip as set — `''` while unset. Resolve it through `resolveDropdownTooltip()`
110
+ * for what should be shown; a PopupMenu has no tooltip surface, so this is carried for parity.
111
+ */
112
+ dropdownTooltip: string;
91
113
  /** The main action part (column 0). */
92
114
  protected readonly _actionPart: StackLayout;
93
115
  /** The action label (shown in label mode). */
@@ -112,6 +134,8 @@ export declare class AdwSplitButton extends AdwSplitButton_base {
112
134
  * state to contradict it. One polarity, so there is nothing to forget.
113
135
  */
114
136
  private _sensitive;
137
+ /** See {@link SplitButtonContent._contentGate}. One write's argument, not state. */
138
+ private _contentGate;
115
139
  constructor(props?: ConstructProps<AdwSplitButton, {
116
140
  direction: number | SplitButtonDirection;
117
141
  }>);
@@ -122,24 +146,12 @@ export declare class AdwSplitButton extends AdwSplitButton_base {
122
146
  * is disabled" (adw-split-button.c:376-378).
123
147
  */
124
148
  private _openMenu;
125
- /** Repaint both halves from the state machine. */
149
+ /** A click on the action half: nothing while insensitive, else one `clicked`. */
150
+ private _click;
151
+ /** Repaint the action half from the declared content properties. */
152
+ private _renderContent;
153
+ /** Repaint the dropdown half and the dimming from the state machine. */
126
154
  private _render;
127
- /**
128
- * The main action button's text label, or `''` when the action half shows an
129
- * icon or nothing — never the stale value behind a swapped-out view.
130
- */
131
- get label(): string;
132
- set label(value: string);
133
- /**
134
- * A symbolic SVG for the action part (e.g. `documentSaveSymbolic`). Setting
135
- * one replaces the label, clearing it returns the action half to its label —
136
- * the mutual exclusion `Adw.SplitButton` enforces (adw-split-button.c:749-771).
137
- *
138
- * The SVG string IS the icon identity here, so it is what the state machine
139
- * stores as the icon name; NS resolves no icon theme.
140
- */
141
- get iconName(): string;
142
- set iconName(svg: string);
143
155
  /**
144
156
  * The dropdown menu, normalised (ADR 0042) — opened as a `PopupMenu` on an
145
157
  * arrow tap.
@@ -187,16 +199,6 @@ export declare class AdwSplitButton extends AdwSplitButton_base {
187
199
  * Emits `notify::direction` when the arrow moves.
188
200
  */
189
201
  set_direction(direction: number): void;
190
- /**
191
- * The dropdown tooltip as set — `''` while unset. Resolve it through
192
- * `resolveDropdownTooltip()` for what should be shown; a PopupMenu has no
193
- * tooltip surface, so this is carried for parity and for host bindings.
194
- */
195
- get dropdownTooltip(): string;
196
- set dropdownTooltip(value: string);
197
- /** Whether an underline in the label marks a mnemonic. */
198
- get useUnderline(): boolean;
199
- set useUnderline(raw: boolean | string);
200
202
  /**
201
203
  * Whether the control is sensitive — `GtkWidget:sensitive`, so `false` is the
202
204
  * insensitive state: dimmed, and emitting neither signal.
@@ -48,6 +48,9 @@ declare const AdwStatusPage_base: ((abstract new (...args: any[]) => {
48
48
  get_next_sibling(): object | null;
49
49
  get_prev_sibling(): object | null;
50
50
  get_parent(): object | null;
51
+ get_width(): number;
52
+ get_height(): number;
53
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
51
54
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
52
55
  get focusable(): boolean;
53
56
  set focusable(value: boolean | string);
@@ -69,6 +69,9 @@ declare const AdwTabView_base: ((abstract new (...args: any[]) => {
69
69
  get_next_sibling(): object | null;
70
70
  get_prev_sibling(): object | null;
71
71
  get_parent(): object | null;
72
+ get_width(): number;
73
+ get_height(): number;
74
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
72
75
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
73
76
  get focusable(): boolean;
74
77
  set focusable(value: boolean | string);
@@ -50,6 +50,9 @@ declare const AdwToastOverlay_base: ((abstract new (...args: any[]) => {
50
50
  get_next_sibling(): object | null;
51
51
  get_prev_sibling(): object | null;
52
52
  get_parent(): object | null;
53
+ get_width(): number;
54
+ get_height(): number;
55
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
53
56
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
54
57
  get focusable(): boolean;
55
58
  set focusable(value: boolean | string);
@@ -67,6 +67,9 @@ declare const AdwToggleGroup_base: ((abstract new (...args: any[]) => {
67
67
  get_next_sibling(): object | null;
68
68
  get_prev_sibling(): object | null;
69
69
  get_parent(): object | null;
70
+ get_width(): number;
71
+ get_height(): number;
72
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
70
73
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
71
74
  get focusable(): boolean;
72
75
  set focusable(value: boolean | string);
@@ -46,6 +46,9 @@ declare const AdwToggle_base: ((abstract new (...args: any[]) => {
46
46
  get_next_sibling(): object | null;
47
47
  get_prev_sibling(): object | null;
48
48
  get_parent(): object | null;
49
+ get_width(): number;
50
+ get_height(): number;
51
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
49
52
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
50
53
  get focusable(): boolean;
51
54
  set focusable(value: boolean | string);
@@ -49,6 +49,9 @@ declare const AdwToolbarView_base: ((abstract new (...args: any[]) => {
49
49
  get_next_sibling(): object | null;
50
50
  get_prev_sibling(): object | null;
51
51
  get_parent(): object | null;
52
+ get_width(): number;
53
+ get_height(): number;
54
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
52
55
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
53
56
  get focusable(): boolean;
54
57
  set focusable(value: boolean | string);
@@ -61,6 +61,9 @@ declare const AdwViewStack_base: ((abstract new (...args: any[]) => {
61
61
  get_next_sibling(): object | null;
62
62
  get_prev_sibling(): object | null;
63
63
  get_parent(): object | null;
64
+ get_width(): number;
65
+ get_height(): number;
66
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
64
67
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
65
68
  get focusable(): boolean;
66
69
  set focusable(value: boolean | string);
@@ -183,4 +186,14 @@ export declare class AdwViewStack extends AdwViewStack_base {
183
186
  set visibleChildName(name: string | null | undefined);
184
187
  /** The visible page content view, or `null`. */
185
188
  get visibleChild(): View | null;
189
+ /** `adw_view_stack_add_named`. */
190
+ add_named(content: View, name: string | null): AdwViewStackPageInfo;
191
+ /** `adw_view_stack_get_visible_child_name` — `null` when nothing is selected. */
192
+ get_visible_child_name(): string | null;
193
+ /** `adw_view_stack_set_visible_child_name`. */
194
+ set_visible_child_name(name: string): void;
195
+ /** `adw_view_stack_get_visible_child`. */
196
+ get_visible_child(): View | null;
197
+ /** `adw_view_stack_set_visible_child`; a view that is not a page of this stack selects nothing. */
198
+ set_visible_child(child: View): void;
186
199
  }
@@ -48,6 +48,9 @@ declare const AdwViewSwitcherBar_base: ((abstract new (...args: any[]) => {
48
48
  get_next_sibling(): object | null;
49
49
  get_prev_sibling(): object | null;
50
50
  get_parent(): object | null;
51
+ get_width(): number;
52
+ get_height(): number;
53
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
51
54
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
52
55
  get focusable(): boolean;
53
56
  set focusable(value: boolean | string);
@@ -51,6 +51,9 @@ declare const AdwWindowTitle_base: ((abstract new (...args: any[]) => {
51
51
  get_next_sibling(): object | null;
52
52
  get_prev_sibling(): object | null;
53
53
  get_parent(): object | null;
54
+ get_width(): number;
55
+ get_height(): number;
56
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
54
57
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
55
58
  get focusable(): boolean;
56
59
  set focusable(value: boolean | string);
@@ -49,6 +49,9 @@ declare const AdwWrapBox_base: ((abstract new (...args: any[]) => {
49
49
  get_next_sibling(): object | null;
50
50
  get_prev_sibling(): object | null;
51
51
  get_parent(): object | null;
52
+ get_width(): number;
53
+ get_height(): number;
54
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
52
55
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
53
56
  get focusable(): boolean;
54
57
  set focusable(value: boolean | string);
@@ -47,6 +47,9 @@ declare const AdwCarouselIndicatorBase_base: ((abstract new (...args: any[]) =>
47
47
  get_next_sibling(): object | null;
48
48
  get_prev_sibling(): object | null;
49
49
  get_parent(): object | null;
50
+ get_width(): number;
51
+ get_height(): number;
52
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
50
53
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
51
54
  get focusable(): boolean;
52
55
  set focusable(value: boolean | string);
@@ -47,6 +47,9 @@ declare const GtkActionBar_base: ((abstract new (...args: any[]) => {
47
47
  get_next_sibling(): object | null;
48
48
  get_prev_sibling(): object | null;
49
49
  get_parent(): object | null;
50
+ get_width(): number;
51
+ get_height(): number;
52
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
50
53
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
51
54
  get focusable(): boolean;
52
55
  set focusable(value: boolean | string);
@@ -0,0 +1,13 @@
1
+ import { type ActionLike } from '@gjsify/adwaita-core';
2
+ import { type ConstructProps } from './construct-props.js';
3
+ import { GtkWindow } from './gtk-window.js';
4
+ export declare class GtkApplicationWindow extends GtkWindow {
5
+ /** `Gio.ActionMap.add_action`: installed by `installActionMap`; reachable as `win.<name>`. */
6
+ add_action: (action: ActionLike) => void;
7
+ /** `Gio.ActionMap.lookup_action`: the window's own action, or `null`. */
8
+ lookup_action: (action_name: string) => ActionLike | null;
9
+ /** `Gio.ActionMap.remove_action`: an unknown name does nothing. */
10
+ remove_action: (action_name: string) => void;
11
+ static readonly GTypeName: string;
12
+ constructor(props?: ConstructProps<GtkApplicationWindow>);
13
+ }
@@ -52,6 +52,9 @@ declare const GtkButton_base: ((abstract new (...args: any[]) => {
52
52
  get_next_sibling(): object | null;
53
53
  get_prev_sibling(): object | null;
54
54
  get_parent(): object | null;
55
+ get_width(): number;
56
+ get_height(): number;
57
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
55
58
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
56
59
  get focusable(): boolean;
57
60
  set focusable(value: boolean | string);
@@ -70,8 +73,6 @@ declare const GtkButton_base: ((abstract new (...args: any[]) => {
70
73
  }) & typeof GridLayout;
71
74
  export declare class GtkButton extends GtkButton_base {
72
75
  static readonly GTypeName: string;
73
- /** The GTK signals this widget emits through `connect` — read by the shared-tree builder (ADR 0093). */
74
- static readonly emittedSignals: readonly string[];
75
76
  /**
76
77
  * The names this widget's `_addChildFromBuilder` honours — see `./builder-slots.ts`.
77
78
  * `Gtk.Button:child` is the property a `.blp` writes as `child: Adw.ButtonContent { … }`,
@@ -61,6 +61,9 @@ declare const GtkDropDown_base: ((abstract new (...args: any[]) => {
61
61
  get_next_sibling(): object | null;
62
62
  get_prev_sibling(): object | null;
63
63
  get_parent(): object | null;
64
+ get_width(): number;
65
+ get_height(): number;
66
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
64
67
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
65
68
  get focusable(): boolean;
66
69
  set focusable(value: boolean | string);
@@ -99,7 +102,7 @@ export declare class GtkDropDown extends GtkDropDown_base {
99
102
  private _openChooser;
100
103
  /** The list model (`Gtk.DropDown:model`). Updates the button label. */
101
104
  get model(): AdwComboOption[];
102
- set model(value: AdwListModelInput);
105
+ set model(value: AdwListModelInput | string);
103
106
  /**
104
107
  * XML inflation: a child at `model` is the list, written through the property's setter.
105
108
  * Anything else is refused, as GTK refuses a child widget on a `GtkDropDown`.
@@ -59,6 +59,9 @@ declare const GtkEntry_base: ((abstract new (...args: any[]) => {
59
59
  get_next_sibling(): object | null;
60
60
  get_prev_sibling(): object | null;
61
61
  get_parent(): object | null;
62
+ get_width(): number;
63
+ get_height(): number;
64
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
62
65
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
63
66
  get focusable(): boolean;
64
67
  set focusable(value: boolean | string);
@@ -57,6 +57,9 @@ declare const GtkImage_base: ((abstract new (...args: any[]) => {
57
57
  get_next_sibling(): object | null;
58
58
  get_prev_sibling(): object | null;
59
59
  get_parent(): object | null;
60
+ get_width(): number;
61
+ get_height(): number;
62
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
60
63
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
61
64
  get focusable(): boolean;
62
65
  set focusable(value: boolean | string);
@@ -47,6 +47,9 @@ declare const GtkLabel_base: ((abstract new (...args: any[]) => {
47
47
  get_next_sibling(): object | null;
48
48
  get_prev_sibling(): object | null;
49
49
  get_parent(): object | null;
50
+ get_width(): number;
51
+ get_height(): number;
52
+ compute_point(target: object, point: import("@gjsify/adwaita-core").Point): [boolean, import("@gjsify/adwaita-core").Point];
50
53
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
51
54
  get focusable(): boolean;
52
55
  set focusable(value: boolean | string);
@@ -38,6 +38,11 @@ export declare class GtkMenuButton extends AdwImageButton {
38
38
  */
39
39
  get menuModel(): AdwMenuModel;
40
40
  set menuModel(value: AdwMenuInput);
41
+ /** `Gtk.MenuButton:menu-model` — the GIR spelling of {@link menuModel}. */
42
+ get menu_model(): AdwMenuModel;
43
+ set menu_model(value: AdwMenuInput);
44
+ get_menu_model(): AdwMenuModel;
45
+ set_menu_model(value: AdwMenuInput): void;
41
46
  /**
42
47
  * What the action group publishes about the actions this menu names — the portable
43
48
  * stand-in for a `GActionGroup`. Left `null`, the registry above the button answers