@gjsify/adwaita-nativescript 0.64.2 → 0.64.3-next.262

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 (105) hide show
  1. package/lib/esm/index.js +1 -1
  2. package/lib/esm/language-host.js +1 -0
  3. package/lib/esm/language-source.android.js +1 -0
  4. package/lib/esm/language-source.ios.js +1 -0
  5. package/lib/esm/language-source.js +1 -0
  6. package/lib/esm/namespace/adw.js +1 -1
  7. package/lib/esm/namespace/glib.js +1 -1
  8. package/lib/esm/namespace/gobject.js +1 -1
  9. package/lib/esm/widgets/adw-about-dialog.js +7 -2
  10. package/lib/esm/widgets/adw-action-row.js +1 -1
  11. package/lib/esm/widgets/adw-button-row.js +1 -1
  12. package/lib/esm/widgets/adw-dialog.js +1 -1
  13. package/lib/esm/widgets/adw-entry-row.js +1 -1
  14. package/lib/esm/widgets/adw-password-entry-row.js +1 -1
  15. package/lib/esm/widgets/adw-preferences-dialog.js +1 -1
  16. package/lib/esm/widgets/adw-preferences-group.js +1 -1
  17. package/lib/esm/widgets/adw-preferences-page.js +1 -1
  18. package/lib/esm/widgets/adw-spinner.js +1 -1
  19. package/lib/esm/widgets/adw-switch-row.js +1 -1
  20. package/lib/esm/widgets/adw-window-title.js +1 -1
  21. package/lib/esm/widgets/gtk-check-button.js +1 -1
  22. package/lib/esm/widgets/index.js +1 -1
  23. package/lib/esm/widgets/signals.js +1 -1
  24. package/lib/esm/widgets/style-manager-host.js +1 -0
  25. package/lib/esm/widgets/style-manager.js +1 -1
  26. package/lib/esm/widgets/widget-layout.js +1 -1
  27. package/lib/esm/widgets/window-state.js +1 -1
  28. package/lib/types/about-dialog-credits.spec.d.ts +1 -0
  29. package/lib/types/about-dialog-links.spec.d.ts +1 -0
  30. package/lib/types/action-row-properties.spec.d.ts +2 -0
  31. package/lib/types/entry-row-properties.spec.d.ts +2 -0
  32. package/lib/types/index.d.ts +2 -2
  33. package/lib/types/language-host.d.ts +3 -0
  34. package/lib/types/language-source.android.d.ts +1 -0
  35. package/lib/types/language-source.d.ts +1 -0
  36. package/lib/types/language-source.ios.d.ts +1 -0
  37. package/lib/types/namespace/adw.d.ts +1 -1
  38. package/lib/types/namespace/glib.d.ts +4 -2
  39. package/lib/types/signals-gobject.spec.d.ts +2 -0
  40. package/lib/types/signals.spec.d.ts +24 -0
  41. package/lib/types/spinner-properties.spec.d.ts +2 -0
  42. package/lib/types/switch-row-properties.spec.d.ts +2 -0
  43. package/lib/types/testing/ns-core.d.mts +6 -0
  44. package/lib/types/widgets/adw-about-dialog.d.ts +84 -16
  45. package/lib/types/widgets/adw-action-row.d.ts +50 -21
  46. package/lib/types/widgets/adw-alert-dialog.d.ts +6 -2
  47. package/lib/types/widgets/adw-avatar.d.ts +6 -2
  48. package/lib/types/widgets/adw-banner.d.ts +6 -2
  49. package/lib/types/widgets/adw-bottom-sheet.d.ts +6 -2
  50. package/lib/types/widgets/adw-button-content.d.ts +6 -2
  51. package/lib/types/widgets/adw-carousel.d.ts +6 -2
  52. package/lib/types/widgets/adw-clamp.d.ts +6 -2
  53. package/lib/types/widgets/adw-data-grid.d.ts +6 -2
  54. package/lib/types/widgets/adw-dialog.d.ts +8 -1
  55. package/lib/types/widgets/adw-entry-row.d.ts +85 -48
  56. package/lib/types/widgets/adw-header-bar.d.ts +6 -2
  57. package/lib/types/widgets/adw-image-button.d.ts +6 -2
  58. package/lib/types/widgets/adw-navigation-page.d.ts +6 -2
  59. package/lib/types/widgets/adw-navigation-view.d.ts +6 -2
  60. package/lib/types/widgets/adw-password-entry-row.d.ts +6 -1
  61. package/lib/types/widgets/adw-preferences-dialog.d.ts +15 -82
  62. package/lib/types/widgets/adw-preferences-group.d.ts +25 -2
  63. package/lib/types/widgets/adw-preferences-page.d.ts +26 -2
  64. package/lib/types/widgets/adw-shortcut-label.d.ts +6 -2
  65. package/lib/types/widgets/adw-sidebar.d.ts +6 -2
  66. package/lib/types/widgets/adw-slider-row.d.ts +6 -2
  67. package/lib/types/widgets/adw-spinner.d.ts +24 -16
  68. package/lib/types/widgets/adw-split-button.d.ts +6 -2
  69. package/lib/types/widgets/adw-status-page.d.ts +6 -2
  70. package/lib/types/widgets/adw-switch-row.d.ts +25 -20
  71. package/lib/types/widgets/adw-tab-view.d.ts +6 -2
  72. package/lib/types/widgets/adw-toast-overlay.d.ts +6 -2
  73. package/lib/types/widgets/adw-toggle-group.d.ts +6 -2
  74. package/lib/types/widgets/adw-toggle.d.ts +6 -2
  75. package/lib/types/widgets/adw-toolbar-view.d.ts +6 -2
  76. package/lib/types/widgets/adw-view-stack.d.ts +6 -2
  77. package/lib/types/widgets/adw-view-switcher-bar.d.ts +6 -2
  78. package/lib/types/widgets/adw-window-title.d.ts +16 -12
  79. package/lib/types/widgets/adw-wrap-box.d.ts +6 -2
  80. package/lib/types/widgets/carousel-indicator-base.d.ts +6 -2
  81. package/lib/types/widgets/gtk-action-bar.d.ts +6 -2
  82. package/lib/types/widgets/gtk-button.d.ts +6 -2
  83. package/lib/types/widgets/gtk-check-button.d.ts +10 -1
  84. package/lib/types/widgets/gtk-drop-down.d.ts +6 -2
  85. package/lib/types/widgets/gtk-entry.d.ts +6 -2
  86. package/lib/types/widgets/gtk-image.d.ts +6 -2
  87. package/lib/types/widgets/gtk-label.d.ts +6 -2
  88. package/lib/types/widgets/gtk-popover-menu.d.ts +6 -2
  89. package/lib/types/widgets/gtk-stack.d.ts +6 -2
  90. package/lib/types/widgets/gtk-text-view.d.ts +6 -2
  91. package/lib/types/widgets/index.d.ts +1 -3
  92. package/lib/types/widgets/signals.d.ts +81 -3
  93. package/lib/types/widgets/split-view-base.d.ts +6 -2
  94. package/lib/types/widgets/stack-page.d.ts +6 -2
  95. package/lib/types/widgets/style-manager-host.d.ts +2 -0
  96. package/lib/types/widgets/style-manager.d.ts +14 -1
  97. package/lib/types/widgets/styled-layout-base.d.ts +6 -2
  98. package/lib/types/widgets/view-stack-page.d.ts +6 -2
  99. package/lib/types/widgets/view-switcher-base.d.ts +6 -2
  100. package/lib/types/widgets/widget-layout.d.ts +4 -0
  101. package/lib/types/widgets/window-state.d.ts +26 -0
  102. package/lib/types/window-title-properties.spec.d.ts +2 -0
  103. package/package.json +14 -13
  104. package/src/testing/ns-core.mts +20 -0
  105. package/src/theme/adwaita.css +31 -4
@@ -18,6 +18,8 @@ export interface PageChangedEventData extends EventData {
18
18
  index: number;
19
19
  }
20
20
  declare const AdwCarousel_base: ((abstract new (...args: any[]) => {
21
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
22
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
21
23
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
22
24
  disconnect(handlerId: number): void;
23
25
  emit(eventName: string, ...args: unknown[]): void;
@@ -64,10 +66,12 @@ declare const AdwCarousel_base: ((abstract new (...args: any[]) => {
64
66
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
65
67
  get focusable(): boolean;
66
68
  set focusable(value: boolean | string);
69
+ get focusOnClick(): boolean;
70
+ set focusOnClick(value: boolean | string);
71
+ get_focus_on_click(): boolean;
72
+ set_focus_on_click(focusOnClick: boolean): void;
67
73
  grab_focus(): boolean;
68
74
  _emit(eventName: string): void;
69
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
70
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
71
75
  notify<T extends EventData>(data: T): void;
72
76
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
73
77
  set(name: string, value: unknown): void;
@@ -4,6 +4,8 @@ import { DEFAULT_CLAMP_MAX_SIZE, DEFAULT_CLAMP_TIGHTENING_THRESHOLD } from './ch
4
4
  import { type ConstructProps } from './construct-props.js';
5
5
  export { DEFAULT_CLAMP_MAX_SIZE, DEFAULT_CLAMP_TIGHTENING_THRESHOLD };
6
6
  declare const AdwClamp_base: ((abstract new (...args: any[]) => {
7
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
8
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
7
9
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
8
10
  disconnect(handlerId: number): void;
9
11
  emit(eventName: string, ...args: unknown[]): void;
@@ -50,10 +52,12 @@ declare const AdwClamp_base: ((abstract new (...args: any[]) => {
50
52
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
51
53
  get focusable(): boolean;
52
54
  set focusable(value: boolean | string);
55
+ get focusOnClick(): boolean;
56
+ set focusOnClick(value: boolean | string);
57
+ get_focus_on_click(): boolean;
58
+ set_focus_on_click(focusOnClick: boolean): void;
53
59
  grab_focus(): boolean;
54
60
  _emit(eventName: string): void;
55
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
56
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
57
61
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
58
62
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
59
63
  set(name: string, value: unknown): void;
@@ -10,6 +10,8 @@ export interface RowActivatedEventData extends EventData {
10
10
  row: AdwDataGridRow;
11
11
  }
12
12
  declare const AdwDataGrid_base: ((abstract new (...args: any[]) => {
13
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
14
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
13
15
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
14
16
  disconnect(handlerId: number): void;
15
17
  emit(eventName: string, ...args: unknown[]): void;
@@ -56,10 +58,12 @@ declare const AdwDataGrid_base: ((abstract new (...args: any[]) => {
56
58
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
57
59
  get focusable(): boolean;
58
60
  set focusable(value: boolean | string);
61
+ get focusOnClick(): boolean;
62
+ set focusOnClick(value: boolean | string);
63
+ get_focus_on_click(): boolean;
64
+ set_focus_on_click(focusOnClick: boolean): void;
59
65
  grab_focus(): boolean;
60
66
  _emit(eventName: string): void;
61
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
62
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
63
67
  notify<T extends EventData>(data: T): void;
64
68
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
65
69
  set(name: string, value: unknown): void;
@@ -21,6 +21,8 @@ export declare class AdwDialog extends AdwSingleChildBase {
21
21
  private _presentationMode;
22
22
  /** The window `present (parent)` mounted this in, so closing can take it back out. */
23
23
  private _host;
24
+ /** The window size the card was last laid out against, in DIP; `null` before a layout. */
25
+ private _available;
24
26
  constructor(props?: ConstructProps<AdwDialog>);
25
27
  protected get _ownClass(): string;
26
28
  protected _adopt(view: View): void;
@@ -58,6 +60,11 @@ export declare class AdwDialog extends AdwSingleChildBase {
58
60
  close(): void;
59
61
  /** `adw_dialog_force_close` — closes whatever `can-close` says. */
60
62
  force_close(): void;
61
- /** The card's size and place, from `content-*` and `presentation-mode`. */
63
+ /**
64
+ * Re-read the window size after a layout pass. Guarded on a real change: re-sizing the
65
+ * card schedules another pass, which lands here again.
66
+ */
67
+ private _measureWindow;
68
+ /** The card's size and place, from `content-*`, `presentation-mode` and the window size. */
62
69
  private _layoutCard;
63
70
  }
@@ -1,44 +1,78 @@
1
- import { Label, StackLayout, TextField, type EventData, type View } from '@nativescript/core';
2
- import { EntryRowState, type EntryRowRenderState } from '@gjsify/adwaita-core';
1
+ import { Label, StackLayout, TextField, type View } from '@nativescript/core';
2
+ import { type EntryRowRenderState } from '@gjsify/adwaita-core';
3
3
  import { AdwActionRow } from './adw-action-row.js';
4
4
  import { GtkImage } from './gtk-image.js';
5
5
  import { AdwImageButton } from './adw-image-button.js';
6
6
  import { type ConstructProps } from './construct-props.js';
7
- export { EntryRowState } from '@gjsify/adwaita-core';
8
7
  export type { EntryRowRenderState, EntryRowActivation } from '@gjsify/adwaita-core';
9
8
  /** Event name emitted when {@link AdwEntryRow.text} changes. Mirrors GObject `notify::text`. */
10
9
  export declare const NOTIFY_TEXT = "notify::text";
11
10
  /** Event name emitted when the character count changes. */
12
11
  export declare const NOTIFY_TEXT_LENGTH = "notify::text-length";
12
+ /** Event name emitted when {@link AdwEntryRow.maxLength} changes. */
13
+ export declare const NOTIFY_MAX_LENGTH = "notify::max-length";
14
+ /** Event name emitted when {@link AdwEntryRow.editable} changes. */
15
+ export declare const NOTIFY_EDITABLE = "notify::editable";
16
+ /** Event name emitted when {@link AdwEntryRow.showApplyButton} changes. */
17
+ export declare const NOTIFY_SHOW_APPLY_BUTTON = "notify::show-apply-button";
18
+ /** Event name emitted when {@link AdwEntryRow.activatesDefault} changes. */
19
+ export declare const NOTIFY_ACTIVATES_DEFAULT = "notify::activates-default";
13
20
  /** `AdwEntryRow::apply` — the apply button, or the return key while it shows. */
14
21
  export declare const SIGNAL_APPLY = "apply";
15
- /** `AdwEntryRow::entry-activated` — the return key when there is nothing to apply. */
22
+ /**
23
+ * `AdwEntryRow::entry-activated` — the return key when there is nothing to apply.
24
+ *
25
+ * No parameters, as upstream declares it. The C activates the default widget itself before
26
+ * emitting and NativeScript has no default-widget concept, so that ordering is the host's
27
+ * here — and what it needs to know is the row's own `activates-default`, which a handler
28
+ * reads off the emitter: `(self) => self.activatesDefault`.
29
+ */
16
30
  export declare const SIGNAL_ENTRY_ACTIVATED = "entry-activated";
17
- /** Payload of the `notify::text` event. */
18
- export interface NotifyTextEventData extends EventData {
19
- text: string;
20
- }
21
- /** Payload of the `notify::text-length` event. */
22
- export interface NotifyTextLengthEventData extends EventData {
23
- /** The new number of CHARACTERS (not UTF-16 units). */
24
- textLength: number;
25
- }
26
- /** Payload of the `entry-activated` event. */
27
- export interface EntryActivatedEventData extends EventData {
28
- /**
29
- * Whether the host must activate its default action FIRST — C calls
30
- * `gtk_widget_activate_default` before emitting, and NS has no default-widget
31
- * concept, so the ordering becomes the host's.
32
- */
33
- activateDefault: boolean;
34
- }
35
- export declare class AdwEntryRow extends AdwActionRow {
31
+ declare const AdwEntryRow_base: ((abstract new (...args: any[]) => {
32
+ _emit(eventName: string): void;
33
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
34
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
35
+ notify<T extends import("@nativescript/core").EventData>(data: T): void;
36
+ notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
37
+ set(name: string, value: unknown): void;
38
+ get(name: string): unknown;
39
+ }) & {
40
+ readonly emittedSignals: readonly string[];
41
+ }) & typeof AdwActionRow;
42
+ export declare class AdwEntryRow extends AdwEntryRow_base {
36
43
  static readonly GTypeName: string;
37
44
  /** `AdwEntryRow` derives from `AdwPreferencesRow` in C, so the preferences search
38
45
  * must NOT read the text typed into it. */
39
46
  readonly isActionRow: boolean;
40
- /** The headless `update_empty` derivation + apply latch (ADR 0004). */
41
- protected readonly _state: EntryRowState;
47
+ /** The editable text, truncated to {@link maxLength} by the property's normalizer. */
48
+ text: string;
49
+ /**
50
+ * `Adw.EntryRow:text-length` — the number of CHARACTERS, not UTF-16 units.
51
+ *
52
+ * READ-ONLY, as upstream declares it: a write is normalized back to the count derived from
53
+ * this row's own {@link text}, so it resolves to the value already held and changes nothing
54
+ * (module header). Not `readonly` in TypeScript, because the seam installs one accessor pair
55
+ * per declared property and the row itself is what writes the derived value.
56
+ */
57
+ textLength: number;
58
+ /** `Adw.EntryRow:max-length` — maximum number of characters, `0` = unlimited. */
59
+ maxLength: number;
60
+ /** Whether the entry accepts edits (`GtkEditable:editable`). */
61
+ editable: boolean;
62
+ /** `Adw.EntryRow:show-apply-button` — typing reveals an apply button. */
63
+ showApplyButton: boolean;
64
+ /** `Adw.EntryRow:activates-default` — read by the host on `entry-activated`. */
65
+ activatesDefault: boolean;
66
+ /**
67
+ * `priv->editing` — whether the embedded entry has focus. A private field and NOT a declared
68
+ * property, because it is not one upstream either: `text_state_flags_changed_cb` keeps it,
69
+ * nothing outside the widget may set it, and the focus events below are its only writers.
70
+ */
71
+ private _editing;
72
+ /** The private `adw_entry_row_set_show_indicator` hook's state — see {@link setShowIndicator}. */
73
+ private _showIndicator;
74
+ /** `priv->text_changed` — the pending-apply latch. Private upstream too. */
75
+ private _textChanged;
42
76
  /** The TextField stacked below the title in column 0. */
43
77
  protected readonly _field: TextField;
44
78
  /** The large placeholder title (`empty_title` in adw-entry-row.ui). */
@@ -52,28 +86,11 @@ export declare class AdwEntryRow extends AdwActionRow {
52
86
  protected readonly _applyButton: AdwImageButton;
53
87
  /** The suffix installed through the inherited single-slot {@link add_suffix}. */
54
88
  private _slotSuffix;
55
- private _lastText;
56
- private _lastLength;
57
89
  constructor(props?: ConstructProps<AdwEntryRow>);
58
- /** The editable text. */
59
- get text(): string;
60
- set text(value: string);
61
- /** `Adw.EntryRow:text-length` — the number of CHARACTERS, not UTF-16 units. */
62
- get textLength(): number;
63
- /** `Adw.EntryRow:max-length` — maximum number of characters, `0` = unlimited. */
64
- get maxLength(): number;
65
- set maxLength(raw: number | string);
66
- /** Whether the entry accepts edits (`GtkEditable:editable`). */
67
- get editable(): boolean;
68
- set editable(raw: boolean | string);
69
- /** `Adw.EntryRow:show-apply-button` — typing reveals an apply button. */
70
- get showApplyButton(): boolean;
71
- set showApplyButton(raw: boolean | string);
72
- /** `Adw.EntryRow:activates-default` — reported on `entry-activated`, acted on by the host. */
73
- get activatesDefault(): boolean;
74
- set activatesDefault(raw: boolean | string);
75
- /** Whether the field currently has focus. */
90
+ /** Whether the field currently has focus — `priv->editing`, not a property upstream. */
76
91
  get editing(): boolean;
92
+ /** The pending-apply latch — `true` exactly while the apply button shows. */
93
+ get textChanged(): boolean;
77
94
  /**
78
95
  * Append a suffix — `adw_entry_row_add_suffix` appends into a BOX, so suffixes
79
96
  * COEXIST here as upstream, unlike the one-slot rule `AdwActionRow.add_suffix` states.
@@ -95,13 +112,33 @@ export declare class AdwEntryRow extends AdwActionRow {
95
112
  setShowIndicator(show: boolean): void;
96
113
  /** `adw_entry_row_set_indicator_icon_name`, as an Adwaita symbolic SVG. */
97
114
  setIndicatorIcon(svg: string): void;
98
- /** Apply the pending edit — the apply button tap. */
115
+ /** Apply the pending edit — the apply button tap (`apply_button_clicked_cb`). */
99
116
  apply(): void;
100
- /** `text_activated_cb` — exactly one of the two signals. */
117
+ /** `text_activated_cb` — exactly one of the two signals, never both. */
101
118
  private _activate;
119
+ /**
120
+ * Re-run `update_empty` over the row's current inputs and paint the result — the one place
121
+ * the derivation is read, standing in for the subscription the state object used to push.
122
+ */
123
+ protected _update(): void;
102
124
  /** Paint one render snapshot through the shared (spec-driven) painter. */
103
125
  protected _render(state: EntryRowRenderState): void;
104
126
  /** Base class list this row paints its state classes onto. */
105
127
  protected get _baseClassName(): string;
106
- private _onStateChanged;
128
+ /** Feed the focus state in — `text_state_flags_changed_cb`, guarded as the C's flag is. */
129
+ private _setEditing;
130
+ /**
131
+ * `text_changed_cb` (C:166-174) plus the derived count.
132
+ *
133
+ * `text-length` SETTLES INSIDE THIS EMISSION, so a handler of `notify::text` reads the new
134
+ * count off the emitter — and a handler of both sees `notify::text-length` first, because a
135
+ * notify emitted from within another one nests. That is what deriving a property from a
136
+ * property costs in GObject, with no `g_object_freeze_notify` in this seam to reorder it;
137
+ * the old payload-carrying events had the opposite order and no emitter to read.
138
+ */
139
+ private _onTextChanged;
140
+ /** Over-long contents are truncated the moment the limit drops — `adw_entry_row_set_max_length`. */
141
+ private _onMaxLengthChanged;
142
+ /** Turning the apply button OFF retracts a pending apply; turning it on derives nothing (C:989-992). */
143
+ private _onShowApplyButtonChanged;
107
144
  }
@@ -2,6 +2,8 @@ import type { View } from '@nativescript/core';
2
2
  import { GridLayout, StackLayout } from '@nativescript/core';
3
3
  import { type ConstructProps } from './construct-props.js';
4
4
  declare const AdwHeaderBar_base: ((abstract new (...args: any[]) => {
5
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
6
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
5
7
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
6
8
  disconnect(handlerId: number): void;
7
9
  emit(eventName: string, ...args: unknown[]): void;
@@ -48,10 +50,12 @@ declare const AdwHeaderBar_base: ((abstract new (...args: any[]) => {
48
50
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
49
51
  get focusable(): boolean;
50
52
  set focusable(value: boolean | string);
53
+ get focusOnClick(): boolean;
54
+ set focusOnClick(value: boolean | string);
55
+ get_focus_on_click(): boolean;
56
+ set_focus_on_click(focusOnClick: boolean): void;
51
57
  grab_focus(): boolean;
52
58
  _emit(eventName: string): void;
53
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
54
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
55
59
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
56
60
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
57
61
  set(name: string, value: unknown): void;
@@ -12,6 +12,8 @@ import { type ConstructProps } from './construct-props.js';
12
12
  */
13
13
  export declare const DEFAULT_ICON_BUTTON_ICON_SIZE: number;
14
14
  declare const AdwImageButton_base: ((abstract new (...args: any[]) => {
15
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
16
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
15
17
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
16
18
  disconnect(handlerId: number): void;
17
19
  emit(eventName: string, ...args: unknown[]): void;
@@ -58,10 +60,12 @@ declare const AdwImageButton_base: ((abstract new (...args: any[]) => {
58
60
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
59
61
  get focusable(): boolean;
60
62
  set focusable(value: boolean | string);
63
+ get focusOnClick(): boolean;
64
+ set focusOnClick(value: boolean | string);
65
+ get_focus_on_click(): boolean;
66
+ set_focus_on_click(focusOnClick: boolean): void;
61
67
  grab_focus(): boolean;
62
68
  _emit(eventName: string): void;
63
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
64
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
65
69
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
66
70
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
67
71
  set(name: string, value: unknown): void;
@@ -8,6 +8,8 @@ export interface NavigationPageOwner {
8
8
  setPageCanPop(view: View, canPop: boolean): boolean;
9
9
  }
10
10
  declare const AdwNavigationPage_base: ((abstract new (...args: any[]) => {
11
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
12
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
11
13
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
12
14
  disconnect(handlerId: number): void;
13
15
  emit(eventName: string, ...args: unknown[]): void;
@@ -54,10 +56,12 @@ declare const AdwNavigationPage_base: ((abstract new (...args: any[]) => {
54
56
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
55
57
  get focusable(): boolean;
56
58
  set focusable(value: boolean | string);
59
+ get focusOnClick(): boolean;
60
+ set focusOnClick(value: boolean | string);
61
+ get_focus_on_click(): boolean;
62
+ set_focus_on_click(focusOnClick: boolean): void;
57
63
  grab_focus(): boolean;
58
64
  _emit(eventName: string): void;
59
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
60
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
61
65
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
62
66
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
63
67
  set(name: string, value: unknown): void;
@@ -15,6 +15,8 @@ export interface AdwNavigationEventData extends EventData {
15
15
  /** Payload of the `notify::visible-page` event. */
16
16
  export type NotifyVisiblePageEventData = AdwNavigationEventData;
17
17
  declare const AdwNavigationView_base: ((abstract new (...args: any[]) => {
18
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
19
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
18
20
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
19
21
  disconnect(handlerId: number): void;
20
22
  emit(eventName: string, ...args: unknown[]): void;
@@ -61,10 +63,12 @@ declare const AdwNavigationView_base: ((abstract new (...args: any[]) => {
61
63
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
62
64
  get focusable(): boolean;
63
65
  set focusable(value: boolean | string);
66
+ get focusOnClick(): boolean;
67
+ set focusOnClick(value: boolean | string);
68
+ get_focus_on_click(): boolean;
69
+ set_focus_on_click(focusOnClick: boolean): void;
64
70
  grab_focus(): boolean;
65
71
  _emit(eventName: string): void;
66
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
67
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
68
72
  notify<T extends EventData>(data: T): void;
69
73
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
70
74
  set(name: string, value: unknown): void;
@@ -13,7 +13,12 @@ export interface NotifyRevealedEventData extends EventData {
13
13
  }
14
14
  export declare class AdwPasswordEntryRow extends AdwEntryRow {
15
15
  static readonly GTypeName: string;
16
- /** The headless peek + caps-lock derivation, composing the parent row's state. */
16
+ /**
17
+ * The headless peek + caps-lock derivation, composing the parent ROW — since the entry row
18
+ * became a real GObject (ADR 0105 § 2) there is no `EntryRowState` beside it to hand over,
19
+ * and the composition never wanted one: all it reaches the parent through is the private
20
+ * `setShowIndicator` hook, which the row itself answers.
21
+ */
17
22
  private readonly _password;
18
23
  /** The trailing peek (reveal/conceal) toggle button. */
19
24
  protected readonly _peekButton: AdwImageButton;
@@ -1,86 +1,27 @@
1
1
  import type { View } from '@nativescript/core';
2
- import { GridLayout, Label, StackLayout, type EventData } from '@nativescript/core';
2
+ import { GridLayout, Label } from '@nativescript/core';
3
3
  import type { SearchPreferencesOptions } from '@gjsify/adwaita-core';
4
+ import { AdwDialog } from './adw-dialog.js';
4
5
  import { type NsPreferencesSearchResult, type NsSearchablePage } from './preferences-search.js';
5
6
  import { type ConstructProps } from './construct-props.js';
6
7
  /** Event name emitted when the dialog is closed. */
7
8
  export declare const CLOSED = "closed";
8
- declare const AdwPreferencesDialog_base: ((abstract new (...args: any[]) => {
9
- connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
10
- disconnect(handlerId: number): void;
11
- emit(eventName: string, ...args: unknown[]): void;
12
- get_property(name: string): unknown;
13
- set_property(name: string, value: unknown): 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);
26
- get visible(): boolean;
27
- set visible(value: boolean | string);
28
- get sensitive(): boolean;
29
- set sensitive(value: boolean | string);
30
- get name(): string;
31
- set name(value: string | null);
32
- get tooltipText(): string;
33
- set tooltipText(value: string);
34
- get tooltip_text(): string;
35
- set tooltip_text(value: string);
36
- get widthRequest(): number;
37
- set widthRequest(value: number | string);
38
- get heightRequest(): number;
39
- set heightRequest(value: number | string);
40
- get_visible(): boolean;
41
- set_visible(visible: boolean): void;
42
- get_mapped(): boolean;
43
- get_tooltip_text(): string;
44
- set_tooltip_text(text: string): void;
45
- set_direction(direction: number): void;
46
- get_direction(): number;
47
- get_first_child(): object | null;
48
- get_last_child(): object | null;
49
- get_next_sibling(): object | null;
50
- get_prev_sibling(): object | null;
51
- get_parent(): object | null;
52
- insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
53
- get focusable(): boolean;
54
- set focusable(value: boolean | string);
55
- grab_focus(): boolean;
56
- _emit(eventName: string): void;
57
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
58
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
59
- notify<T extends EventData>(data: T): void;
60
- notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
61
- set(name: string, value: unknown): void;
62
- get(name: string): unknown;
63
- }) & {
64
- readonly emittedSignals: readonly string[];
65
- }) & typeof GridLayout;
66
- export declare class AdwPreferencesDialog extends AdwPreferencesDialog_base {
9
+ export declare class AdwPreferencesDialog extends AdwDialog {
67
10
  static readonly GTypeName: string;
68
- protected readonly _card: GridLayout;
69
11
  protected readonly _headerBox: GridLayout;
70
12
  protected readonly _titleLabel: Label;
71
- protected readonly _body: StackLayout;
72
- /** The window `present (parent)` mounted this in, so closing can take it back out. */
73
- private _host;
13
+ protected readonly _body: GridLayout;
74
14
  constructor(props?: ConstructProps<AdwPreferencesDialog>);
75
- /** The dialog title. */
15
+ protected get _ownClass(): string;
16
+ /** `AdwDialog:title`, shown in the header. */
76
17
  get title(): string;
77
- set title(value: string);
18
+ set title(value: string | null);
78
19
  /** Add an `AdwPreferencesPage` (or any view) to the dialog body. */
79
20
  add(view: View): void;
80
21
  /**
81
- * An XML child is a page in the dialog BODY, not a child of the grid the dialog
82
- * builds its header and scroller in — which is where `LayoutBase`'s inherited
83
- * `_addChildFromBuilder` would have put it, on top of the title bar.
22
+ * An XML child is a page in the dialog BODY, not the dialog's `child` — which is
23
+ * where `AdwDialog`'s inherited `_addChildFromBuilder` would have put it, in place of
24
+ * the header and the body.
84
25
  */
85
26
  _addChildFromBuilder(_name: string, view: View): void;
86
27
  /** Remove a previously-added page from the body. */
@@ -101,19 +42,11 @@ export declare class AdwPreferencesDialog extends AdwPreferencesDialog_base {
101
42
  * keeps a results list populated before the user types.
102
43
  */
103
44
  search(query: string, options?: SearchPreferencesOptions): NsPreferencesSearchResult[];
104
- /**
105
- * Reveal the preferences overlay — `adw_dialog_present`.
106
- *
107
- * With a `parent` it is hosted in that widget's window like every other AdwDialog, so the
108
- * window's back handling closes it first. Without one it must already sit in a layout.
109
- */
110
- present(parent?: View | null): void;
111
- /** Hide the preferences overlay, take it out of its window and emit `closed`. */
112
- close(): void;
113
- /** Whether the dialog is currently shown. */
45
+ /** Whether the dialog is currently shown; writing it presents or closes. */
114
46
  get open(): boolean;
115
47
  set open(value: boolean | string);
116
- /** The scrollable body that hosts the preferences pages. */
117
- get body(): StackLayout;
48
+ /** The body that hosts the preferences pages. */
49
+ get body(): GridLayout;
50
+ /** One star row per page, in add order. */
51
+ private _layoutBody;
118
52
  }
119
- export {};
@@ -2,7 +2,10 @@ import type { View } from '@nativescript/core';
2
2
  import { GridLayout, Label, StackLayout } from '@nativescript/core';
3
3
  import type { NsSearchableGroup, NsSearchableRow } from './preferences-search.js';
4
4
  import { type ConstructProps } from './construct-props.js';
5
+ import { type AdwStyleClassesInput } from './style-classes.js';
5
6
  declare const AdwPreferencesGroup_base: ((abstract new (...args: any[]) => {
7
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
8
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
6
9
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
7
10
  disconnect(handlerId: number): void;
8
11
  emit(eventName: string, ...args: unknown[]): void;
@@ -49,10 +52,12 @@ declare const AdwPreferencesGroup_base: ((abstract new (...args: any[]) => {
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);
55
+ get focusOnClick(): boolean;
56
+ set focusOnClick(value: boolean | string);
57
+ get_focus_on_click(): boolean;
58
+ set_focus_on_click(focusOnClick: boolean): void;
52
59
  grab_focus(): boolean;
53
60
  _emit(eventName: string): void;
54
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
55
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
56
61
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
57
62
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
58
63
  set(name: string, value: unknown): void;
@@ -77,6 +82,7 @@ export declare class AdwPreferencesGroup extends AdwPreferencesGroup_base implem
77
82
  private _title;
78
83
  private _description;
79
84
  private _headerSuffix;
85
+ private readonly _classList;
80
86
  constructor(props?: ConstructProps<AdwPreferencesGroup>);
81
87
  /**
82
88
  * The group title (dim, uppercase header above the boxed list).
@@ -152,5 +158,22 @@ export declare class AdwPreferencesGroup extends AdwPreferencesGroup_base implem
152
158
  private _setFlushTop;
153
159
  /** The boxed-list container (column of rows). */
154
160
  get listbox(): StackLayout;
161
+ /**
162
+ * `GtkWidget:css-classes`, spelled `styleClasses` (`style-classes.ts`). Learn6502's colour groups
163
+ * are `css-classes: ["custom-color-group"]`.
164
+ */
165
+ get styleClasses(): string[];
166
+ set styleClasses(value: AdwStyleClassesInput);
167
+ /** `gtk_widget_add_css_class`. */
168
+ add_css_class(name: string): void;
169
+ /** `gtk_widget_remove_css_class`. */
170
+ remove_css_class(name: string): void;
171
+ /** `gtk_widget_has_css_class`. */
172
+ has_css_class(name: string): boolean;
173
+ /** `gtk_widget_get_css_classes` — the list, without the widget's own class. */
174
+ get_css_classes(): string[];
175
+ /** `gtk_widget_set_css_classes` — REPLACES the list. */
176
+ set_css_classes(names: readonly string[]): void;
177
+ private _restyle;
155
178
  }
156
179
  export {};
@@ -2,7 +2,10 @@ import type { View } from '@nativescript/core';
2
2
  import { ScrollView, StackLayout } from '@nativescript/core';
3
3
  import type { NsSearchableGroup, NsSearchablePage } from './preferences-search.js';
4
4
  import { type ConstructProps } from './construct-props.js';
5
+ import { type AdwStyleClassesInput } from './style-classes.js';
5
6
  declare const AdwPreferencesPage_base: ((abstract new (...args: any[]) => {
7
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
8
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
6
9
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
7
10
  disconnect(handlerId: number): void;
8
11
  emit(eventName: string, ...args: unknown[]): void;
@@ -49,10 +52,12 @@ declare const AdwPreferencesPage_base: ((abstract new (...args: any[]) => {
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);
55
+ get focusOnClick(): boolean;
56
+ set focusOnClick(value: boolean | string);
57
+ get_focus_on_click(): boolean;
58
+ set_focus_on_click(focusOnClick: boolean): void;
52
59
  grab_focus(): boolean;
53
60
  _emit(eventName: string): void;
54
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
55
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
56
61
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
57
62
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
58
63
  set(name: string, value: unknown): void;
@@ -84,6 +89,7 @@ export declare class AdwPreferencesPage extends AdwPreferencesPage_base implemen
84
89
  private _name;
85
90
  private _iconName;
86
91
  private _useUnderline;
92
+ private readonly _classList;
87
93
  constructor(props?: ConstructProps<AdwPreferencesPage>);
88
94
  /**
89
95
  * `AdwPreferencesPage:title` — shown by a view switcher and by the search
@@ -123,5 +129,23 @@ export declare class AdwPreferencesPage extends AdwPreferencesPage_base implemen
123
129
  searchGroups(): readonly NsSearchableGroup[];
124
130
  /** The vertical content stack holding the groups. */
125
131
  get groups(): StackLayout;
132
+ /**
133
+ * `GtkWidget:css-classes`, spelled `styleClasses` (`style-classes.ts`). A `.blp` scopes a page's
134
+ * CSS with `css-classes: ["appearance-page"]`, and the shared-tree builder refuses a class
135
+ * the widget has no door for.
136
+ */
137
+ get styleClasses(): string[];
138
+ set styleClasses(value: AdwStyleClassesInput);
139
+ /** `gtk_widget_add_css_class`. */
140
+ add_css_class(name: string): void;
141
+ /** `gtk_widget_remove_css_class`. */
142
+ remove_css_class(name: string): void;
143
+ /** `gtk_widget_has_css_class`. */
144
+ has_css_class(name: string): boolean;
145
+ /** `gtk_widget_get_css_classes` — the list, without the widget's own class. */
146
+ get_css_classes(): string[];
147
+ /** `gtk_widget_set_css_classes` — REPLACES the list. */
148
+ set_css_classes(names: readonly string[]): void;
149
+ private _restyle;
126
150
  }
127
151
  export {};
@@ -1,6 +1,8 @@
1
1
  import { StackLayout } from '@nativescript/core';
2
2
  import { type ConstructProps } from './construct-props.js';
3
3
  declare const AdwShortcutLabel_base: ((abstract new (...args: any[]) => {
4
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
5
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
4
6
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
5
7
  disconnect(handlerId: number): void;
6
8
  emit(eventName: string, ...args: unknown[]): void;
@@ -47,10 +49,12 @@ declare const AdwShortcutLabel_base: ((abstract new (...args: any[]) => {
47
49
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
48
50
  get focusable(): boolean;
49
51
  set focusable(value: boolean | string);
52
+ get focusOnClick(): boolean;
53
+ set focusOnClick(value: boolean | string);
54
+ get_focus_on_click(): boolean;
55
+ set_focus_on_click(focusOnClick: boolean): void;
50
56
  grab_focus(): boolean;
51
57
  _emit(eventName: string): void;
52
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
53
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
54
58
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
55
59
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
56
60
  set(name: string, value: unknown): void;