@gjsify/adwaita-nativescript 0.51.1 → 0.52.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 (137) hide show
  1. package/lib/esm/builder/index.js +1 -0
  2. package/lib/esm/index.js +1 -1
  3. package/lib/esm/namespace/adw.js +1 -1
  4. package/lib/esm/namespace/gio.js +1 -0
  5. package/lib/esm/namespace/gtk.js +1 -1
  6. package/lib/esm/values/sidebar.js +1 -0
  7. package/lib/esm/values/tab-page.js +1 -0
  8. package/lib/esm/widgets/adw-action-row.js +1 -1
  9. package/lib/esm/widgets/adw-alert-dialog.js +1 -1
  10. package/lib/esm/widgets/adw-avatar.js +1 -1
  11. package/lib/esm/widgets/adw-bottom-sheet.js +1 -1
  12. package/lib/esm/widgets/adw-button-row.js +1 -1
  13. package/lib/esm/widgets/adw-carousel-indicator-dots.js +1 -0
  14. package/lib/esm/widgets/adw-carousel-indicator-lines.js +1 -0
  15. package/lib/esm/widgets/adw-carousel.js +1 -1
  16. package/lib/esm/widgets/adw-clamp.js +1 -1
  17. package/lib/esm/widgets/adw-combo-row.js +1 -1
  18. package/lib/esm/widgets/adw-expander-row.js +1 -1
  19. package/lib/esm/widgets/adw-header-bar.js +1 -1
  20. package/lib/esm/widgets/adw-navigation-page.js +1 -0
  21. package/lib/esm/widgets/adw-navigation-view.js +1 -1
  22. package/lib/esm/widgets/adw-preferences-group.js +1 -1
  23. package/lib/esm/widgets/adw-shortcut-label.js +1 -1
  24. package/lib/esm/widgets/adw-sidebar.js +1 -1
  25. package/lib/esm/widgets/adw-spin-row.js +1 -1
  26. package/lib/esm/widgets/adw-status-page.js +1 -1
  27. package/lib/esm/widgets/adw-tab-view.js +1 -1
  28. package/lib/esm/widgets/adw-toast-overlay.js +1 -1
  29. package/lib/esm/widgets/adw-toggle-group.js +1 -1
  30. package/lib/esm/widgets/adw-toggle.js +1 -0
  31. package/lib/esm/widgets/adw-toolbar-view.js +1 -1
  32. package/lib/esm/widgets/adw-view-stack.js +1 -1
  33. package/lib/esm/widgets/adw-view-switcher-bar.js +1 -1
  34. package/lib/esm/widgets/bottom-sheet-state.js +1 -1
  35. package/lib/esm/widgets/box-layout.js +1 -1
  36. package/lib/esm/widgets/builder-slots.js +1 -1
  37. package/lib/esm/widgets/carousel-indicator-base.js +1 -0
  38. package/lib/esm/widgets/carousel-state.js +1 -1
  39. package/lib/esm/widgets/chrome.js +1 -1
  40. package/lib/esm/widgets/gtk-action-bar.js +1 -0
  41. package/lib/esm/widgets/gtk-box.js +1 -1
  42. package/lib/esm/widgets/gtk-button.js +1 -1
  43. package/lib/esm/widgets/gtk-drop-down.js +1 -1
  44. package/lib/esm/widgets/gtk-label.js +1 -1
  45. package/lib/esm/widgets/gtk-menu-button.js +1 -1
  46. package/lib/esm/widgets/icon-theme.js +1 -1
  47. package/lib/esm/widgets/id-reference.js +1 -0
  48. package/lib/esm/widgets/index.js +1 -1
  49. package/lib/esm/widgets/signals.js +1 -1
  50. package/lib/esm/widgets/split-view-base.js +1 -1
  51. package/lib/esm/widgets/view-stack-page.js +1 -0
  52. package/lib/esm/widgets/view-switcher-base.js +1 -1
  53. package/lib/esm/widgets/widget-layout.js +1 -0
  54. package/lib/types/blueprint-markup.spec.d.ts +4 -0
  55. package/lib/types/blueprint-trees.spec.d.ts +1 -0
  56. package/lib/types/builder/index.d.ts +70 -0
  57. package/lib/types/clamp-child.spec.d.ts +2 -0
  58. package/lib/types/gallery-blueprints.spec.d.ts +1 -0
  59. package/lib/types/gtk-value-doors.spec.d.ts +1 -0
  60. package/lib/types/index.d.ts +2 -1
  61. package/lib/types/namespace/adw.d.ts +8 -0
  62. package/lib/types/namespace/gio.d.ts +1 -0
  63. package/lib/types/namespace/gtk.d.ts +3 -0
  64. package/lib/types/shared-trees.spec.d.ts +2 -0
  65. package/lib/types/testing/ns-core.d.mts +340 -0
  66. package/lib/types/value-lists.spec.d.ts +1 -0
  67. package/lib/types/values/sidebar.d.ts +46 -0
  68. package/lib/types/values/tab-page.d.ts +16 -0
  69. package/lib/types/view-switcher-stack.spec.d.ts +1 -0
  70. package/lib/types/widgets/adw-about-dialog.d.ts +12 -0
  71. package/lib/types/widgets/adw-action-row.d.ts +22 -0
  72. package/lib/types/widgets/adw-alert-dialog.d.ts +18 -1
  73. package/lib/types/widgets/adw-avatar.d.ts +12 -0
  74. package/lib/types/widgets/adw-banner.d.ts +12 -0
  75. package/lib/types/widgets/adw-bottom-sheet.d.ts +77 -6
  76. package/lib/types/widgets/adw-button-content.d.ts +12 -0
  77. package/lib/types/widgets/adw-button-row.d.ts +21 -0
  78. package/lib/types/widgets/adw-carousel-indicator-dots.d.ts +7 -0
  79. package/lib/types/widgets/adw-carousel-indicator-lines.d.ts +7 -0
  80. package/lib/types/widgets/adw-carousel.d.ts +31 -15
  81. package/lib/types/widgets/adw-clamp.d.ts +19 -0
  82. package/lib/types/widgets/adw-combo-row.d.ts +20 -1
  83. package/lib/types/widgets/adw-data-grid.d.ts +12 -0
  84. package/lib/types/widgets/adw-expander-row.d.ts +2 -0
  85. package/lib/types/widgets/adw-header-bar.d.ts +14 -0
  86. package/lib/types/widgets/adw-image-button.d.ts +12 -0
  87. package/lib/types/widgets/adw-navigation-page.d.ts +63 -0
  88. package/lib/types/widgets/adw-navigation-view.d.ts +18 -5
  89. package/lib/types/widgets/adw-preferences-dialog.d.ts +12 -0
  90. package/lib/types/widgets/adw-preferences-group.d.ts +14 -0
  91. package/lib/types/widgets/adw-preferences-page.d.ts +12 -0
  92. package/lib/types/widgets/adw-shortcut-label.d.ts +12 -0
  93. package/lib/types/widgets/adw-sidebar.d.ts +26 -0
  94. package/lib/types/widgets/adw-slider-row.d.ts +12 -0
  95. package/lib/types/widgets/adw-spin-row.d.ts +12 -1
  96. package/lib/types/widgets/adw-spinner.d.ts +12 -0
  97. package/lib/types/widgets/adw-split-button.d.ts +12 -0
  98. package/lib/types/widgets/adw-status-page.d.ts +46 -0
  99. package/lib/types/widgets/adw-tab-view.d.ts +60 -27
  100. package/lib/types/widgets/adw-toast-overlay.d.ts +20 -0
  101. package/lib/types/widgets/adw-toggle-group.d.ts +51 -3
  102. package/lib/types/widgets/adw-toggle.d.ts +41 -0
  103. package/lib/types/widgets/adw-toolbar-view.d.ts +22 -1
  104. package/lib/types/widgets/adw-view-stack.d.ts +53 -7
  105. package/lib/types/widgets/adw-view-switcher-bar.d.ts +19 -2
  106. package/lib/types/widgets/adw-window-title.d.ts +12 -0
  107. package/lib/types/widgets/adw-wrap-box.d.ts +12 -0
  108. package/lib/types/widgets/bottom-sheet-state.d.ts +40 -7
  109. package/lib/types/widgets/box-layout.d.ts +3 -17
  110. package/lib/types/widgets/builder-slots.d.ts +48 -0
  111. package/lib/types/widgets/button-content.d.ts +4 -3
  112. package/lib/types/widgets/carousel-indicator-base.d.ts +54 -0
  113. package/lib/types/widgets/carousel-state.d.ts +12 -9
  114. package/lib/types/widgets/chrome.d.ts +32 -6
  115. package/lib/types/widgets/construct-props.d.ts +46 -5
  116. package/lib/types/widgets/gtk-action-bar.d.ts +53 -0
  117. package/lib/types/widgets/gtk-box.d.ts +12 -0
  118. package/lib/types/widgets/gtk-button.d.ts +27 -0
  119. package/lib/types/widgets/gtk-drop-down.d.ts +23 -1
  120. package/lib/types/widgets/gtk-entry.d.ts +12 -0
  121. package/lib/types/widgets/gtk-image.d.ts +12 -0
  122. package/lib/types/widgets/gtk-label.d.ts +47 -1
  123. package/lib/types/widgets/gtk-menu-button.d.ts +22 -0
  124. package/lib/types/widgets/id-reference.d.ts +13 -0
  125. package/lib/types/widgets/index.d.ts +16 -5
  126. package/lib/types/widgets/signals.d.ts +14 -1
  127. package/lib/types/widgets/split-view-base.d.ts +26 -2
  128. package/lib/types/widgets/tab-view-state.d.ts +3 -3
  129. package/lib/types/widgets/view-stack-page.d.ts +98 -0
  130. package/lib/types/widgets/view-stack-state.d.ts +7 -3
  131. package/lib/types/widgets/view-switcher-base.d.ts +62 -0
  132. package/lib/types/widgets/widget-layout.d.ts +50 -0
  133. package/package.json +21 -11
  134. package/src/theme/adwaita.css +122 -1
  135. package/lib/esm/widgets/label-text.js +0 -1
  136. package/lib/types/widgets/label-text.d.ts +0 -13
  137. /package/lib/types/{label-text.spec.d.ts → gio-menu.spec.d.ts} +0 -0
@@ -3,6 +3,18 @@ import { type ConstructProps } from './construct-props.js';
3
3
  declare const AdwShortcutLabel_base: (abstract new (...args: any[]) => {
4
4
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => void): number;
5
5
  disconnect(handlerId: number): void;
6
+ get halign(): string;
7
+ set halign(value: string | number);
8
+ get valign(): string;
9
+ set valign(value: string | number);
10
+ get hexpand(): boolean;
11
+ set hexpand(value: boolean | string);
12
+ get vexpand(): boolean;
13
+ set vexpand(value: boolean | string);
14
+ get marginStart(): number;
15
+ set marginStart(value: number | string);
16
+ get marginEnd(): number;
17
+ set marginEnd(value: number | string);
6
18
  _emit(eventName: string): void;
7
19
  addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
8
20
  removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
@@ -29,6 +29,18 @@ export interface SidebarActivatedEventData extends EventData {
29
29
  declare const AdwSidebar_base: (abstract new (...args: any[]) => {
30
30
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => void): number;
31
31
  disconnect(handlerId: number): void;
32
+ get halign(): string;
33
+ set halign(value: string | number);
34
+ get valign(): string;
35
+ set valign(value: string | number);
36
+ get hexpand(): boolean;
37
+ set hexpand(value: boolean | string);
38
+ get vexpand(): boolean;
39
+ set vexpand(value: boolean | string);
40
+ get marginStart(): number;
41
+ set marginStart(value: number | string);
42
+ get marginEnd(): number;
43
+ set marginEnd(value: number | string);
32
44
  _emit(eventName: string): void;
33
45
  addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
34
46
  removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
@@ -41,8 +53,22 @@ export declare class AdwSidebar extends AdwSidebar_base {
41
53
  /** The vertical list container. */
42
54
  protected readonly _list: StackLayout;
43
55
  private readonly _state;
56
+ /**
57
+ * A `selected` written before any section exists. NativeScript's XML builder assigns the
58
+ * attribute before it appends the `<adw:SidebarSection>` children, so the index was
59
+ * out of range and cleared the selection — where GtkBuilder, adding the same children,
60
+ * ends with the index the file wrote. Held until the first items arrive.
61
+ */
62
+ private _pendingSelected;
44
63
  private readonly _rows;
45
64
  constructor(props?: ConstructProps<AdwSidebar>);
65
+ /**
66
+ * XML inflation: every child is an `Adw.SidebarSection`, appended in document order as
67
+ * `adw_sidebar_append` appends it, with the items it already holds. Anything else is
68
+ * refused, as the C refuses it with a `g_warning` (adw-sidebar.c:2758) — a view here
69
+ * would be a row nobody authored.
70
+ */
71
+ _addChildFromBuilder(_name: string, child: object): void;
46
72
  /** Set the navigation item labels — one untitled section. Rebuilds the tappable rows. */
47
73
  setItems(items: string[]): void;
48
74
  /** Set the full section model (titles, subtitles, icons, per-item `visible`/`enabled`). */
@@ -11,6 +11,18 @@ export interface NotifySliderValueEventData extends EventData {
11
11
  declare const AdwSliderRow_base: (abstract new (...args: any[]) => {
12
12
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => void): number;
13
13
  disconnect(handlerId: number): void;
14
+ get halign(): string;
15
+ set halign(value: string | number);
16
+ get valign(): string;
17
+ set valign(value: string | number);
18
+ get hexpand(): boolean;
19
+ set hexpand(value: boolean | string);
20
+ get vexpand(): boolean;
21
+ set vexpand(value: boolean | string);
22
+ get marginStart(): number;
23
+ set marginStart(value: number | string);
24
+ get marginEnd(): number;
25
+ set marginEnd(value: number | string);
14
26
  _emit(eventName: string): void;
15
27
  addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
16
28
  removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
@@ -1,5 +1,5 @@
1
1
  import { Label } from '@nativescript/core';
2
- import type { EventData } from '@nativescript/core';
2
+ import type { EventData, View } from '@nativescript/core';
3
3
  import type { AdwAdjustment, AdwAdjustmentInput } from '@gjsify/adwaita-core';
4
4
  import { AdwActionRow } from './adw-action-row.js';
5
5
  import { AdwImageButton } from './adw-image-button.js';
@@ -14,6 +14,11 @@ export interface NotifyValueEventData extends EventData {
14
14
  value: number;
15
15
  }
16
16
  export declare class AdwSpinRow extends AdwActionRow {
17
+ /**
18
+ * The action row's edges, plus `adjustment`: `adjustment: Adjustment { … }` in a `.blp`
19
+ * places a `Gtk.Adjustment` at the property it sets.
20
+ */
21
+ static readonly builderSlots: readonly string[];
17
22
  /** The `−` decrement button (circular icon button, value-decrease symbolic). */
18
23
  protected readonly _minusButton: AdwImageButton;
19
24
  /** The `+` increment button (circular icon button, value-increase symbolic). */
@@ -23,6 +28,12 @@ export declare class AdwSpinRow extends AdwActionRow {
23
28
  /** The headless adjustment: clamp, step and the two signals (ADR 0004, ADR 0047). */
24
29
  private readonly _state;
25
30
  constructor(props?: ConstructProps<AdwSpinRow>);
31
+ /**
32
+ * XML inflation: a child at `adjustment` is the row's range, written through the same
33
+ * setter as the property — a `Gtk.Adjustment` is already an `AdwAdjustmentInput`.
34
+ * Everything else is a row edge, as on any action row.
35
+ */
36
+ _addChildFromBuilder(name: string, child: View): void;
26
37
  /** The current numeric value (always within the adjustment's range). */
27
38
  get value(): number;
28
39
  set value(v: number | string);
@@ -5,6 +5,18 @@ export { DEFAULT_SPINNER_SIZE };
5
5
  declare const AdwSpinner_base: (abstract new (...args: any[]) => {
6
6
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => void): number;
7
7
  disconnect(handlerId: number): void;
8
+ get halign(): string;
9
+ set halign(value: string | number);
10
+ get valign(): string;
11
+ set valign(value: string | number);
12
+ get hexpand(): boolean;
13
+ set hexpand(value: boolean | string);
14
+ get vexpand(): boolean;
15
+ set vexpand(value: boolean | string);
16
+ get marginStart(): number;
17
+ set marginStart(value: number | string);
18
+ get marginEnd(): number;
19
+ set marginEnd(value: number | string);
8
20
  _emit(eventName: string): void;
9
21
  addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
10
22
  removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
@@ -24,6 +24,18 @@ export interface MenuTappedEventData extends EventData {
24
24
  declare const AdwSplitButton_base: (abstract new (...args: any[]) => {
25
25
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => void): number;
26
26
  disconnect(handlerId: number): void;
27
+ get halign(): string;
28
+ set halign(value: string | number);
29
+ get valign(): string;
30
+ set valign(value: string | number);
31
+ get hexpand(): boolean;
32
+ set hexpand(value: boolean | string);
33
+ get vexpand(): boolean;
34
+ set vexpand(value: boolean | string);
35
+ get marginStart(): number;
36
+ set marginStart(value: number | string);
37
+ get marginEnd(): number;
38
+ set marginEnd(value: number | string);
27
39
  _emit(eventName: string): void;
28
40
  addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
29
41
  removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
@@ -5,6 +5,18 @@ import { type ConstructProps } from './construct-props.js';
5
5
  declare const AdwStatusPage_base: (abstract new (...args: any[]) => {
6
6
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => void): number;
7
7
  disconnect(handlerId: number): void;
8
+ get halign(): string;
9
+ set halign(value: string | number);
10
+ get valign(): string;
11
+ set valign(value: string | number);
12
+ get hexpand(): boolean;
13
+ set hexpand(value: boolean | string);
14
+ get vexpand(): boolean;
15
+ set vexpand(value: boolean | string);
16
+ get marginStart(): number;
17
+ set marginStart(value: number | string);
18
+ get marginEnd(): number;
19
+ set marginEnd(value: number | string);
8
20
  _emit(eventName: string): void;
9
21
  addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
10
22
  removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
@@ -14,6 +26,13 @@ declare const AdwStatusPage_base: (abstract new (...args: any[]) => {
14
26
  get(name: string): unknown;
15
27
  }) & typeof GridLayout;
16
28
  export declare class AdwStatusPage extends AdwStatusPage_base {
29
+ /**
30
+ * The names this widget's `_addChildFromBuilder` honours — see `./builder-slots.ts`.
31
+ * `Adw.StatusPage:child` is this widget's own property name, and its fallback: an
32
+ * authored `child: …` and a bare child mean the same thing, the shape
33
+ * `_addChildFromBuilder` below already has.
34
+ */
35
+ static readonly builderSlots: readonly string[];
17
36
  /** The centered vertical stack. */
18
37
  protected readonly _stack: StackLayout;
19
38
  /** The large symbolic icon (shown when an `icon` SVG is set). */
@@ -27,6 +46,7 @@ export declare class AdwStatusPage extends AdwStatusPage_base {
27
46
  /** The dim description label. */
28
47
  protected readonly _descriptionLabel: Label;
29
48
  private _child;
49
+ private _styleClasses;
30
50
  constructor(props?: ConstructProps<AdwStatusPage>);
31
51
  /**
32
52
  * The large icon shown above the title — an Adwaita icon NAME
@@ -60,6 +80,12 @@ export declare class AdwStatusPage extends AdwStatusPage_base {
60
80
  set_child(view: View | null): void;
61
81
  /** The currently-installed child, or `null`. */
62
82
  get child(): View | null;
83
+ /**
84
+ * `Adw.StatusPage:child` — {@link set_child} under the property spelling the
85
+ * counterpart declares, so the one slot a status page has can arrive in the
86
+ * construct-props bag instead of a second statement after it.
87
+ */
88
+ set child(view: View | null);
63
89
  /**
64
90
  * The one destination an XML child can have: the slot under the description,
65
91
  * where `AdwStatusPage:child` goes. The name is ignored because
@@ -67,5 +93,25 @@ export declare class AdwStatusPage extends AdwStatusPage_base {
67
93
  * `AdwClamp` already has.
68
94
  */
69
95
  _addChildFromBuilder(_name: string, view: View): void;
96
+ /**
97
+ * `GtkWidget:css-classes`, spelled `styleClasses` for the reason `style-classes.ts` gives.
98
+ * A status page has one documented style class, `.compact` (style-classes.md "Compact
99
+ * Status Page"), and a `.blp` writes it as `styles ["compact"]`; the shared-tree builder
100
+ * refuses a style class the widget has no door for, so the gallery's carousel of compact
101
+ * pages did not build here.
102
+ */
103
+ get styleClasses(): string[];
104
+ set styleClasses(value: string | null | undefined);
105
+ /** `gtk_widget_add_css_class`. A class the page already carries is a no-op. */
106
+ add_css_class(name: string): void;
107
+ /** `gtk_widget_remove_css_class`. A class it does not carry is a no-op. */
108
+ remove_css_class(name: string): void;
109
+ /** `gtk_widget_has_css_class`. */
110
+ has_css_class(name: string): boolean;
111
+ /** `gtk_widget_get_css_classes` — the list, without the page's own class. */
112
+ get_css_classes(): string[];
113
+ /** `gtk_widget_set_css_classes` — REPLACES the list, as in C. */
114
+ set_css_classes(names: readonly string[]): void;
115
+ private _setClasses;
70
116
  }
71
117
  export {};
@@ -1,9 +1,9 @@
1
1
  import { GridLayout, type EventData, type View } from '@nativescript/core';
2
2
  import type { AdwTabPageSpec, TabViewPagesChange } from '@gjsify/adwaita-core';
3
- import { type AdwTabPage, type TabViewNotifyPayload } from './tab-view-state.js';
3
+ import { type NsTabPage, type TabViewNotifyPayload } from './tab-view-state.js';
4
4
  import type { AdwViewPage } from './view-switcher-base.js';
5
5
  import { type ConstructProps } from './construct-props.js';
6
- export type { AdwTabPage };
6
+ export type { NsTabPage };
7
7
  /** Event name emitted when the selected page changes. Mirrors `notify::selected-page`. */
8
8
  export declare const NOTIFY_SELECTED_PAGE = "notify::selected-page";
9
9
  /** Event name emitted for every page-list change (attach / detach / reorder / pin / update). */
@@ -26,6 +26,18 @@ export interface ClosePageEventData extends EventData {
26
26
  declare const AdwTabView_base: (abstract new (...args: any[]) => {
27
27
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => void): number;
28
28
  disconnect(handlerId: number): void;
29
+ get halign(): string;
30
+ set halign(value: string | number);
31
+ get valign(): string;
32
+ set valign(value: string | number);
33
+ get hexpand(): boolean;
34
+ set hexpand(value: boolean | string);
35
+ get vexpand(): boolean;
36
+ set vexpand(value: boolean | string);
37
+ get marginStart(): number;
38
+ set marginStart(value: number | string);
39
+ get marginEnd(): number;
40
+ set marginEnd(value: number | string);
29
41
  _emit(eventName: string): void;
30
42
  addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
31
43
  removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
@@ -45,7 +57,7 @@ export declare class AdwTabView extends AdwTabView_base {
45
57
  private _generatedIds;
46
58
  /**
47
59
  * The `close-page` decision seam. Return `true` to confirm, `false` to deny,
48
- * `'defer'` to hold the page until {@link closePageFinish} — which is how an
60
+ * `'defer'` to hold the page until {@link close_page_finish} — which is how an
49
61
  * app shows a "save before closing?" dialog. Unset takes libadwaita's own
50
62
  * default, `!page.pinned` (adw-tab-view.c:1990-1991).
51
63
  *
@@ -53,10 +65,10 @@ export declare class AdwTabView extends AdwTabView_base {
53
65
  * carry one; {@link CLOSE_PAGE} still fires for every attempt, so observing
54
66
  * and deciding stay separable.
55
67
  */
56
- closeHandler: ((page: AdwTabPage) => boolean | 'defer') | null;
68
+ closeHandler: ((page: NsTabPage) => boolean | 'defer') | null;
57
69
  constructor(props?: ConstructProps<AdwTabView>);
58
70
  /** All pages in order. */
59
- get pages(): readonly AdwTabPage[];
71
+ get pages(): readonly NsTabPage[];
60
72
  /** Number of pages. */
61
73
  get nPages(): number;
62
74
  /** Length of the pinned prefix. */
@@ -77,11 +89,11 @@ export declare class AdwTabView extends AdwTabView_base {
77
89
  * two halves to differ, so `view.selectedPage = view.selectedPage` is a type error
78
90
  * rather than a silent one — which is the intended reading, not an oversight.
79
91
  */
80
- get selectedPage(): AdwTabPage | null;
92
+ get selectedPage(): NsTabPage | null;
81
93
  set selectedPage(id: string | null);
82
94
  isClosing(id: string): boolean;
83
95
  /** `adw_tab_view_set_selected_page`. The page, or the id this port uses as its handle. */
84
- set_selected_page(page: AdwTabPage | string | null): boolean;
96
+ set_selected_page(page: NsTabPage | string | null): boolean;
85
97
  selectNthPage(n: number): boolean;
86
98
  /** `adw_tab_view_select_previous_page`. */
87
99
  select_previous_page(): boolean;
@@ -93,29 +105,44 @@ export declare class AdwTabView extends AdwTabView_base {
93
105
  cycleNextPage(): boolean;
94
106
  /** The previous page, WRAPPING to the last (Ctrl+Shift+Tab). */
95
107
  cyclePreviousPage(): boolean;
96
- /** Add a page opened FROM `parentId`, deriving its position (Adw.TabView.add_page). */
97
- addPage(spec: AdwTabPageSpec<View>, parentId?: string | null): number;
98
- insertPage(spec: AdwTabPageSpec<View>, position: number): number;
99
- prependPage(spec: AdwTabPageSpec<View>): number;
100
- appendPage(spec: AdwTabPageSpec<View>): number;
101
- insertPinnedPage(spec: AdwTabPageSpec<View>, position: number): number;
102
- prependPinnedPage(spec: AdwTabPageSpec<View>): number;
103
- appendPinnedPage(spec: AdwTabPageSpec<View>): number;
108
+ /** Add a page opened FROM `parent`, deriving its position — `adw_tab_view_add_page`. */
109
+ add_page(spec: AdwTabPageSpec<View>, parent?: NsTabPage | string | null): number;
110
+ /** `adw_tab_view_insert`. */
111
+ insert(spec: AdwTabPageSpec<View>, position: number): number;
112
+ /** `adw_tab_view_prepend`. */
113
+ prepend(spec: AdwTabPageSpec<View>): number;
114
+ /** `adw_tab_view_append`. */
115
+ append(spec: AdwTabPageSpec<View>): number;
116
+ /** `adw_tab_view_insert_pinned`. */
117
+ insert_pinned(spec: AdwTabPageSpec<View>, position: number): number;
118
+ /** `adw_tab_view_prepend_pinned`. */
119
+ prepend_pinned(spec: AdwTabPageSpec<View>): number;
120
+ /** `adw_tab_view_append_pinned`. */
121
+ append_pinned(spec: AdwTabPageSpec<View>): number;
104
122
  /** Pin or unpin a page, re-ordering it in the same step. Returns its new position. */
105
- setPagePinned(id: string, pinned: boolean): number;
123
+ set_page_pinned(page: NsTabPage | string, pinned: boolean): number;
106
124
  /** Request a close. Fires {@link CLOSE_PAGE}, then applies {@link closeHandler}'s verdict. */
107
- closePage(id: string): boolean;
108
- closePageFinish(id: string, confirm: boolean): boolean;
109
- closeOtherPages(id: string): void;
110
- closePagesBefore(id: string): void;
111
- closePagesAfter(id: string): void;
125
+ close_page(page: NsTabPage | string): boolean;
126
+ /** Settle a close {@link closeHandler} deferred — `adw_tab_view_close_page_finish`. */
127
+ close_page_finish(page: NsTabPage | string, confirm: boolean): boolean;
128
+ /** `adw_tab_view_close_other_pages`. */
129
+ close_other_pages(page: NsTabPage | string): void;
130
+ /** `adw_tab_view_close_pages_before`. */
131
+ close_pages_before(page: NsTabPage | string): void;
132
+ /** `adw_tab_view_close_pages_after`. */
133
+ close_pages_after(page: NsTabPage | string): void;
112
134
  /** Remove a page unconditionally, running the successor rule first. */
113
- detachPage(id: string): AdwTabPage | null;
114
- reorderPage(id: string, position: number): boolean;
115
- reorderBackward(id: string): boolean;
116
- reorderForward(id: string): boolean;
117
- reorderFirst(id: string): boolean;
118
- reorderLast(id: string): boolean;
135
+ detachPage(id: string): NsTabPage | null;
136
+ /** `adw_tab_view_reorder_page`. */
137
+ reorder_page(page: NsTabPage | string, position: number): boolean;
138
+ /** `adw_tab_view_reorder_backward`. */
139
+ reorder_backward(page: NsTabPage | string): boolean;
140
+ /** `adw_tab_view_reorder_forward`. */
141
+ reorder_forward(page: NsTabPage | string): boolean;
142
+ /** `adw_tab_view_reorder_first`. */
143
+ reorder_first(page: NsTabPage | string): boolean;
144
+ /** `adw_tab_view_reorder_last`. */
145
+ reorder_last(page: NsTabPage | string): boolean;
119
146
  setPageTitle(id: string, title: string | null): boolean;
120
147
  setPageIcon(id: string, icon: string | null): boolean;
121
148
  setPageLoading(id: string, loading: boolean): boolean;
@@ -133,6 +160,12 @@ export declare class AdwTabView extends AdwTabView_base {
133
160
  /** `Adw.TabView:default-icon` — what a PINNED page with no icon of its own shows. */
134
161
  get defaultIcon(): string | null;
135
162
  set defaultIcon(value: string | null);
163
+ /**
164
+ * XML inflation: an `Adw.TabPage` becomes an appended page carrying its title, and a
165
+ * bare widget becomes an untitled page around itself — the two branches of the C's
166
+ * `add_child` (adw-tab-view.c:2884). Both take a generated id, as `setViews` does.
167
+ */
168
+ _addChildFromBuilder(_name: string, child: object): void;
136
169
  /**
137
170
  * Replace every page from a plain `{ title, content, icon? }` list.
138
171
  *
@@ -10,6 +10,18 @@ export declare const TOAST_BUTTON_CLICKED = "toastButtonClicked";
10
10
  declare const AdwToastOverlay_base: (abstract new (...args: any[]) => {
11
11
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => void): number;
12
12
  disconnect(handlerId: number): void;
13
+ get halign(): string;
14
+ set halign(value: string | number);
15
+ get valign(): string;
16
+ set valign(value: string | number);
17
+ get hexpand(): boolean;
18
+ set hexpand(value: boolean | string);
19
+ get vexpand(): boolean;
20
+ set vexpand(value: boolean | string);
21
+ get marginStart(): number;
22
+ set marginStart(value: number | string);
23
+ get marginEnd(): number;
24
+ set marginEnd(value: number | string);
13
25
  _emit(eventName: string): void;
14
26
  addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
15
27
  removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
@@ -31,6 +43,14 @@ export declare class AdwToastOverlay extends AdwToastOverlay_base {
31
43
  constructor(props?: ConstructProps<AdwToastOverlay>);
32
44
  /** Set (or replace) the always-visible content layer (under the toast) — `adw_toast_overlay_set_child`. */
33
45
  set_child(view: View | null): void;
46
+ /** The always-visible content layer, or `null` — `Adw.ToastOverlay:child`. */
47
+ get child(): View | null;
48
+ /**
49
+ * `Adw.ToastOverlay:child` — {@link set_child} under the property spelling the
50
+ * counterpart declares, so the overlay's one slot can arrive in a construct-props
51
+ * bag instead of a second statement.
52
+ */
53
+ set child(view: View | null);
34
54
  /** Enqueue a {@link AdwToast} descriptor (shows now, or after the current one) — `adw_toast_overlay_add_toast`. */
35
55
  add_toast(toast: AdwToast): void;
36
56
  /** Enqueue a transient toast with the given message and options. */
@@ -11,14 +11,31 @@ export interface NotifyToggleSelectedEventData extends EventData {
11
11
  /** The newly-selected segment's label. */
12
12
  value: string;
13
13
  }
14
- /** One toggle: a label and an optional Adwaita symbolic SVG icon. */
15
- export interface AdwToggle {
14
+ /**
15
+ * One toggle as {@link AdwToggleGroup.setToggles} takes it: a label, an optional Adwaita
16
+ * symbolic icon, and the `name` `active-name` finds it by. A `.blp` writes an
17
+ * {@link AdwToggle} instead, which the group reads into one of these.
18
+ */
19
+ export interface AdwToggleSpec {
16
20
  label: string;
17
21
  icon?: string;
22
+ name?: string | null;
18
23
  }
19
24
  declare const AdwToggleGroup_base: (abstract new (...args: any[]) => {
20
25
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => void): number;
21
26
  disconnect(handlerId: number): void;
27
+ get halign(): string;
28
+ set halign(value: string | number);
29
+ get valign(): string;
30
+ set valign(value: string | number);
31
+ get hexpand(): boolean;
32
+ set hexpand(value: boolean | string);
33
+ get vexpand(): boolean;
34
+ set vexpand(value: boolean | string);
35
+ get marginStart(): number;
36
+ set marginStart(value: number | string);
37
+ get marginEnd(): number;
38
+ set marginEnd(value: number | string);
22
39
  _emit(eventName: string): void;
23
40
  addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
24
41
  removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
@@ -29,6 +46,14 @@ declare const AdwToggleGroup_base: (abstract new (...args: any[]) => {
29
46
  }) & typeof StackLayout;
30
47
  export declare class AdwToggleGroup extends AdwToggleGroup_base {
31
48
  private _toggles;
49
+ /**
50
+ * `active` / `active-name` written before the toggle they name exists. GtkBuilder sets
51
+ * a group's properties BEFORE it adds the toggles, so the C holds both back until
52
+ * `parser_finished` (adw-toggle-group.c:1238); NativeScript has no such hook, so each
53
+ * one is applied by the first toggle list it resolves against.
54
+ */
55
+ private _pendingActive;
56
+ private _pendingActiveName;
32
57
  private readonly _segments;
33
58
  /** The headless labels + selected-index state machine (ADR 0004). */
34
59
  private readonly _state;
@@ -37,12 +62,35 @@ export declare class AdwToggleGroup extends AdwToggleGroup_base {
37
62
  get options(): string[];
38
63
  set options(value: string[]);
39
64
  /** Set the toggles (label + optional symbolic icon). Rebuilds the segments. */
40
- setToggles(toggles: AdwToggle[]): void;
65
+ setToggles(toggles: AdwToggleSpec[]): void;
66
+ private _rebuild;
67
+ /**
68
+ * XML inflation: every child is an `Adw.Toggle`, appended in document order as
69
+ * `adw_toggle_group_add` appends it. Anything else is refused, as the C refuses a
70
+ * widget child with a `g_critical` (adw-toggle-group.c:1213) — a view placed here
71
+ * would be a segment nobody asked for.
72
+ */
73
+ _addChildFromBuilder(_name: string, child: object): void;
74
+ /**
75
+ * Apply a held `active` / `active-name` once it resolves, the name after the index as
76
+ * `parser_finished` orders them. `building` keeps the name held for the next toggle;
77
+ * any other change is the end of construction, and a name that still resolves to
78
+ * nothing is dropped as the C drops it (a `g_critical`, :2001).
79
+ */
80
+ private _applyPending;
41
81
  /** Mark only the selected segment `.active` (the raised white pill). */
42
82
  private _applySelection;
43
83
  /** The selected segment index. Swaps the active pill + emits `notify::selected`. */
44
84
  get active(): number;
45
85
  set active(raw: number | string);
86
+ /**
87
+ * `Adw.ToggleGroup:active-name` — the `name` of the active toggle, or `null`.
88
+ *
89
+ * A name no toggle carries yet is held until one does (see `_pendingActiveName`); a
90
+ * name that never arrives changes nothing, which is the C's `g_critical` and return.
91
+ */
92
+ get activeName(): string | null;
93
+ set activeName(name: string | null);
46
94
  /** The selected segment's label, or `''` when out of range. */
47
95
  get selectedValue(): string;
48
96
  }
@@ -0,0 +1,41 @@
1
+ import { Observable } from '@nativescript/core';
2
+ import { type ConstructProps } from './construct-props.js';
3
+ declare const AdwToggle_base: (abstract new (...args: any[]) => {
4
+ connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => void): number;
5
+ disconnect(handlerId: number): void;
6
+ get halign(): string;
7
+ set halign(value: string | number);
8
+ get valign(): string;
9
+ set valign(value: string | number);
10
+ get hexpand(): boolean;
11
+ set hexpand(value: boolean | string);
12
+ get vexpand(): boolean;
13
+ set vexpand(value: boolean | string);
14
+ get marginStart(): number;
15
+ set marginStart(value: number | string);
16
+ get marginEnd(): number;
17
+ set marginEnd(value: number | string);
18
+ _emit(eventName: string): void;
19
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
20
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
21
+ notify<T extends import("@nativescript/core").EventData>(data: T): void;
22
+ notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
23
+ set(name: string, value: unknown): void;
24
+ get(name: string): unknown;
25
+ }) & typeof Observable;
26
+ export declare class AdwToggle extends AdwToggle_base {
27
+ private _name;
28
+ private _label;
29
+ private _iconName;
30
+ constructor(props?: ConstructProps<AdwToggle>);
31
+ /** `Adw.Toggle:name` — how `Adw.ToggleGroup:active-name` finds this toggle. */
32
+ get name(): string | null;
33
+ set name(value: string | null);
34
+ /** `Adw.Toggle:label`. */
35
+ get label(): string;
36
+ set label(value: string | null);
37
+ /** `Adw.Toggle:icon-name` — a symbolic icon drawn before the label. */
38
+ get iconName(): string | null;
39
+ set iconName(value: string | null);
40
+ }
41
+ export {};
@@ -5,6 +5,18 @@ import { type ConstructProps } from './construct-props.js';
5
5
  declare const AdwToolbarView_base: (abstract new (...args: any[]) => {
6
6
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => void): number;
7
7
  disconnect(handlerId: number): void;
8
+ get halign(): string;
9
+ set halign(value: string | number);
10
+ get valign(): string;
11
+ set valign(value: string | number);
12
+ get hexpand(): boolean;
13
+ set hexpand(value: boolean | string);
14
+ get vexpand(): boolean;
15
+ set vexpand(value: boolean | string);
16
+ get marginStart(): number;
17
+ set marginStart(value: number | string);
18
+ get marginEnd(): number;
19
+ set marginEnd(value: number | string);
8
20
  _emit(eventName: string): void;
9
21
  addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
10
22
  removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
@@ -14,6 +26,8 @@ declare const AdwToolbarView_base: (abstract new (...args: any[]) => {
14
26
  get(name: string): unknown;
15
27
  }) & typeof GridLayout;
16
28
  export declare class AdwToolbarView extends AdwToolbarView_base {
29
+ /** The names this widget's `_addChildFromBuilder` honours — see `./builder-slots.ts`. */
30
+ static readonly builderSlots: readonly string[];
17
31
  /** The top-bar slot (row 0) — stack of header bars / toolbars. */
18
32
  protected readonly _topBox: StackLayout;
19
33
  /** The bottom-bar slot (row 2) — stack of bottom toolbars. */
@@ -43,8 +57,15 @@ export declare class AdwToolbarView extends AdwToolbarView_base {
43
57
  * painted ON TOP OF EACH OTHER in the bar row while row 1 stayed empty.
44
58
  */
45
59
  _addChildFromBuilder(name: string, view: View): void;
46
- /** The currently-installed content view, or `null`. */
60
+ /**
61
+ * The currently-installed content view, or `null` — `Adw.ToolbarView:content`.
62
+ *
63
+ * The setter is {@link set_content} under the property spelling the counterpart
64
+ * declares, so a construct-props bag can carry the slot and a pane ported off GJS
65
+ * keeps `view.content = …` rather than growing a second verb.
66
+ */
47
67
  get content(): View | null;
68
+ set content(view: View | null);
48
69
  /** The top-bar slot container. */
49
70
  get topBar(): StackLayout;
50
71
  /** The bottom-bar slot container. */