@gjsify/adwaita-nativescript 0.64.2-next.255 → 0.64.3-next.260

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 (100) 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-preferences-dialog.js +1 -1
  14. package/lib/esm/widgets/adw-preferences-group.js +1 -1
  15. package/lib/esm/widgets/adw-preferences-page.js +1 -1
  16. package/lib/esm/widgets/adw-spinner.js +1 -1
  17. package/lib/esm/widgets/adw-switch-row.js +1 -1
  18. package/lib/esm/widgets/adw-window-title.js +1 -1
  19. package/lib/esm/widgets/gtk-check-button.js +1 -1
  20. package/lib/esm/widgets/index.js +1 -1
  21. package/lib/esm/widgets/signals.js +1 -1
  22. package/lib/esm/widgets/style-manager-host.js +1 -0
  23. package/lib/esm/widgets/style-manager.js +1 -1
  24. package/lib/esm/widgets/widget-layout.js +1 -1
  25. package/lib/esm/widgets/window-state.js +1 -1
  26. package/lib/types/about-dialog-credits.spec.d.ts +1 -0
  27. package/lib/types/about-dialog-links.spec.d.ts +1 -0
  28. package/lib/types/action-row-properties.spec.d.ts +2 -0
  29. package/lib/types/index.d.ts +1 -1
  30. package/lib/types/language-host.d.ts +3 -0
  31. package/lib/types/language-source.android.d.ts +1 -0
  32. package/lib/types/language-source.d.ts +1 -0
  33. package/lib/types/language-source.ios.d.ts +1 -0
  34. package/lib/types/namespace/adw.d.ts +1 -1
  35. package/lib/types/namespace/glib.d.ts +4 -2
  36. package/lib/types/signals-gobject.spec.d.ts +2 -0
  37. package/lib/types/signals.spec.d.ts +24 -0
  38. package/lib/types/spinner-properties.spec.d.ts +2 -0
  39. package/lib/types/switch-row-properties.spec.d.ts +2 -0
  40. package/lib/types/testing/ns-core.d.mts +6 -0
  41. package/lib/types/widgets/adw-about-dialog.d.ts +84 -16
  42. package/lib/types/widgets/adw-action-row.d.ts +50 -21
  43. package/lib/types/widgets/adw-alert-dialog.d.ts +6 -2
  44. package/lib/types/widgets/adw-avatar.d.ts +6 -2
  45. package/lib/types/widgets/adw-banner.d.ts +6 -2
  46. package/lib/types/widgets/adw-bottom-sheet.d.ts +6 -2
  47. package/lib/types/widgets/adw-button-content.d.ts +6 -2
  48. package/lib/types/widgets/adw-carousel.d.ts +6 -2
  49. package/lib/types/widgets/adw-clamp.d.ts +6 -2
  50. package/lib/types/widgets/adw-data-grid.d.ts +6 -2
  51. package/lib/types/widgets/adw-dialog.d.ts +8 -1
  52. package/lib/types/widgets/adw-header-bar.d.ts +6 -2
  53. package/lib/types/widgets/adw-image-button.d.ts +6 -2
  54. package/lib/types/widgets/adw-navigation-page.d.ts +6 -2
  55. package/lib/types/widgets/adw-navigation-view.d.ts +6 -2
  56. package/lib/types/widgets/adw-preferences-dialog.d.ts +15 -75
  57. package/lib/types/widgets/adw-preferences-group.d.ts +25 -2
  58. package/lib/types/widgets/adw-preferences-page.d.ts +26 -2
  59. package/lib/types/widgets/adw-shortcut-label.d.ts +6 -2
  60. package/lib/types/widgets/adw-sidebar.d.ts +6 -2
  61. package/lib/types/widgets/adw-slider-row.d.ts +6 -2
  62. package/lib/types/widgets/adw-spinner.d.ts +24 -16
  63. package/lib/types/widgets/adw-split-button.d.ts +6 -2
  64. package/lib/types/widgets/adw-status-page.d.ts +6 -2
  65. package/lib/types/widgets/adw-switch-row.d.ts +25 -20
  66. package/lib/types/widgets/adw-tab-view.d.ts +6 -2
  67. package/lib/types/widgets/adw-toast-overlay.d.ts +6 -2
  68. package/lib/types/widgets/adw-toggle-group.d.ts +6 -2
  69. package/lib/types/widgets/adw-toggle.d.ts +6 -2
  70. package/lib/types/widgets/adw-toolbar-view.d.ts +6 -2
  71. package/lib/types/widgets/adw-view-stack.d.ts +6 -2
  72. package/lib/types/widgets/adw-view-switcher-bar.d.ts +6 -2
  73. package/lib/types/widgets/adw-window-title.d.ts +16 -12
  74. package/lib/types/widgets/adw-wrap-box.d.ts +6 -2
  75. package/lib/types/widgets/carousel-indicator-base.d.ts +6 -2
  76. package/lib/types/widgets/gtk-action-bar.d.ts +6 -2
  77. package/lib/types/widgets/gtk-button.d.ts +6 -2
  78. package/lib/types/widgets/gtk-check-button.d.ts +10 -1
  79. package/lib/types/widgets/gtk-drop-down.d.ts +6 -2
  80. package/lib/types/widgets/gtk-entry.d.ts +6 -2
  81. package/lib/types/widgets/gtk-image.d.ts +6 -2
  82. package/lib/types/widgets/gtk-label.d.ts +6 -2
  83. package/lib/types/widgets/gtk-popover-menu.d.ts +6 -2
  84. package/lib/types/widgets/gtk-stack.d.ts +6 -2
  85. package/lib/types/widgets/gtk-text-view.d.ts +6 -2
  86. package/lib/types/widgets/index.d.ts +0 -1
  87. package/lib/types/widgets/signals.d.ts +69 -3
  88. package/lib/types/widgets/split-view-base.d.ts +6 -2
  89. package/lib/types/widgets/stack-page.d.ts +6 -2
  90. package/lib/types/widgets/style-manager-host.d.ts +2 -0
  91. package/lib/types/widgets/style-manager.d.ts +14 -1
  92. package/lib/types/widgets/styled-layout-base.d.ts +6 -2
  93. package/lib/types/widgets/view-stack-page.d.ts +6 -2
  94. package/lib/types/widgets/view-switcher-base.d.ts +6 -2
  95. package/lib/types/widgets/widget-layout.d.ts +4 -0
  96. package/lib/types/widgets/window-state.d.ts +26 -0
  97. package/lib/types/window-title-properties.spec.d.ts +2 -0
  98. package/package.json +13 -13
  99. package/src/testing/ns-core.mts +20 -0
  100. package/src/theme/adwaita.css +31 -4
@@ -5,6 +5,8 @@ import { type ConstructProps } from './construct-props.js';
5
5
  export { AdwToast, AdwToastQueue, DEFAULT_TOAST_TIMEOUT } from '@gjsify/adwaita-core';
6
6
  export type { AdwToastOptions, AdwToastQueueHandlers, AdwToastQueueOptions, ToastScheduler, ToastTimerHandle, } from '@gjsify/adwaita-core';
7
7
  declare const AdwToastOverlay_base: ((abstract new (...args: any[]) => {
8
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
9
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
8
10
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
9
11
  disconnect(handlerId: number): void;
10
12
  emit(eventName: string, ...args: unknown[]): void;
@@ -51,10 +53,12 @@ declare const AdwToastOverlay_base: ((abstract new (...args: any[]) => {
51
53
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
52
54
  get focusable(): boolean;
53
55
  set focusable(value: boolean | string);
56
+ get focusOnClick(): boolean;
57
+ set focusOnClick(value: boolean | string);
58
+ get_focus_on_click(): boolean;
59
+ set_focus_on_click(focusOnClick: boolean): void;
54
60
  grab_focus(): boolean;
55
61
  _emit(eventName: string): void;
56
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
57
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
58
62
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
59
63
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
60
64
  set(name: string, value: unknown): void;
@@ -22,6 +22,8 @@ export interface AdwToggleSpec {
22
22
  name?: string | null;
23
23
  }
24
24
  declare const AdwToggleGroup_base: ((abstract new (...args: any[]) => {
25
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
26
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
25
27
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
26
28
  disconnect(handlerId: number): void;
27
29
  emit(eventName: string, ...args: unknown[]): void;
@@ -68,10 +70,12 @@ declare const AdwToggleGroup_base: ((abstract new (...args: any[]) => {
68
70
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
69
71
  get focusable(): boolean;
70
72
  set focusable(value: boolean | string);
73
+ get focusOnClick(): boolean;
74
+ set focusOnClick(value: boolean | string);
75
+ get_focus_on_click(): boolean;
76
+ set_focus_on_click(focusOnClick: boolean): void;
71
77
  grab_focus(): boolean;
72
78
  _emit(eventName: string): void;
73
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
74
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
75
79
  notify<T extends EventData>(data: T): void;
76
80
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
77
81
  set(name: string, value: unknown): void;
@@ -1,6 +1,8 @@
1
1
  import { Observable } from '@nativescript/core';
2
2
  import { type ConstructProps } from './construct-props.js';
3
3
  declare const AdwToggle_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 AdwToggle_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;
@@ -4,6 +4,8 @@ import { type AdwToolbarStyle } from './chrome.js';
4
4
  import { type SystemBarEdges } from './system-bars.js';
5
5
  import { type ConstructProps } from './construct-props.js';
6
6
  declare const AdwToolbarView_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 AdwToolbarView_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;
@@ -16,6 +16,8 @@ export declare const NOTIFY_VISIBLE_CHILD_NAME = "notify::visible-child-name";
16
16
  export interface NotifyVisibleChildEventData extends EventData, ViewStackNotifyPayload {
17
17
  }
18
18
  declare const AdwViewStack_base: ((abstract new (...args: any[]) => {
19
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
20
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
19
21
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
20
22
  disconnect(handlerId: number): void;
21
23
  emit(eventName: string, ...args: unknown[]): void;
@@ -62,10 +64,12 @@ declare const AdwViewStack_base: ((abstract new (...args: any[]) => {
62
64
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
63
65
  get focusable(): boolean;
64
66
  set focusable(value: boolean | string);
67
+ get focusOnClick(): boolean;
68
+ set focusOnClick(value: boolean | string);
69
+ get_focus_on_click(): boolean;
70
+ set_focus_on_click(focusOnClick: boolean): void;
65
71
  grab_focus(): boolean;
66
72
  _emit(eventName: string): void;
67
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
68
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
69
73
  notify<T extends EventData>(data: T): void;
70
74
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
71
75
  set(name: string, value: unknown): void;
@@ -3,6 +3,8 @@ import { AdwViewStack } from './adw-view-stack.js';
3
3
  import { type ViewId } from './id-reference.js';
4
4
  import { type ConstructProps } from './construct-props.js';
5
5
  declare const AdwViewSwitcherBar_base: ((abstract new (...args: any[]) => {
6
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
7
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
6
8
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
7
9
  disconnect(handlerId: number): void;
8
10
  emit(eventName: string, ...args: unknown[]): void;
@@ -49,10 +51,12 @@ declare const AdwViewSwitcherBar_base: ((abstract new (...args: any[]) => {
49
51
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
50
52
  get focusable(): boolean;
51
53
  set focusable(value: boolean | string);
54
+ get focusOnClick(): boolean;
55
+ set focusOnClick(value: boolean | string);
56
+ get_focus_on_click(): boolean;
57
+ set_focus_on_click(focusOnClick: boolean): void;
52
58
  grab_focus(): boolean;
53
59
  _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
60
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
57
61
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
58
62
  set(name: string, value: unknown): void;
@@ -1,11 +1,14 @@
1
- import { Label, StackLayout, type EventData } from '@nativescript/core';
1
+ import { Label, StackLayout } from '@nativescript/core';
2
2
  import { type ConstructProps } from './construct-props.js';
3
+ import type { GObjectNotify } from './signals.js';
3
4
  /** Event name emitted when {@link AdwWindowTitle.title} changes. */
4
5
  export declare const NOTIFY_TITLE = "notify::title";
5
6
  /** Event name emitted when {@link AdwWindowTitle.subtitle} changes. */
6
7
  export declare const NOTIFY_SUBTITLE = "notify::subtitle";
7
8
  declare const AdwWindowTitle_base: ((abstract new (...args: any[]) => {
8
- connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
9
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
10
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
11
+ connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
9
12
  disconnect(handlerId: number): void;
10
13
  emit(eventName: string, ...args: unknown[]): void;
11
14
  get_property(name: string): unknown;
@@ -51,11 +54,13 @@ declare const AdwWindowTitle_base: ((abstract new (...args: any[]) => {
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);
57
+ get focusOnClick(): boolean;
58
+ set focusOnClick(value: boolean | string);
59
+ get_focus_on_click(): boolean;
60
+ set_focus_on_click(focusOnClick: boolean): void;
54
61
  grab_focus(): boolean;
55
62
  _emit(eventName: string): void;
56
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
57
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
58
- notify<T extends EventData>(data: T): void;
63
+ notify<T extends import("@nativescript/core").EventData>(data: T): void;
59
64
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
60
65
  set(name: string, value: unknown): void;
61
66
  get(name: string): unknown;
@@ -64,6 +69,12 @@ declare const AdwWindowTitle_base: ((abstract new (...args: any[]) => {
64
69
  }) & typeof StackLayout;
65
70
  export declare class AdwWindowTitle extends AdwWindowTitle_base {
66
71
  static readonly GTypeName: string;
72
+ /** The window title (bold, top line). Empty collapses its label. */
73
+ title: string;
74
+ /** The subtitle (dim second line). Empty collapses its label. */
75
+ subtitle: string;
76
+ /** `notify('title')` beside NativeScript's `notify({ eventName })` — see {@link GObjectNotify}. */
77
+ notify: GObjectNotify;
67
78
  /** The bold title label. */
68
79
  protected readonly _titleLabel: Label;
69
80
  /** The dim subtitle label. */
@@ -71,14 +82,7 @@ export declare class AdwWindowTitle extends AdwWindowTitle_base {
71
82
  /** The headless title/subtitle pair + change detection (ADR 0004). */
72
83
  private readonly _state;
73
84
  constructor(props?: ConstructProps<AdwWindowTitle>);
74
- /** The window title (bold, top line). Empty collapses its label. */
75
- get title(): string;
76
- set title(value: string);
77
- /** The subtitle (dim second line). Empty collapses its label. */
78
- get subtitle(): string;
79
- set subtitle(value: string);
80
85
  /** Push the derived text + visibility onto the two `Label`s. */
81
86
  private _apply;
82
- private _notify;
83
87
  }
84
88
  export {};
@@ -4,6 +4,8 @@ import { type ConstructProps } from './construct-props.js';
4
4
  /** Every `notify::` an `Adw.WrapBox` emits (adw-wrap-box.c:284-497). */
5
5
  export type AdwWrapBoxProperty = 'child-spacing' | 'child-spacing-unit' | 'pack-direction' | 'align' | 'justify' | 'justify-last-line' | 'line-spacing' | 'line-spacing-unit' | 'line-homogeneous' | 'natural-line-length' | 'natural-line-length-unit' | 'wrap-reverse' | 'wrap-policy' | 'orientation';
6
6
  declare const AdwWrapBox_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 AdwWrapBox_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;
@@ -2,6 +2,8 @@ import { GridLayout, StackLayout } from '@nativescript/core';
2
2
  import { AdwCarousel } from './adw-carousel.js';
3
3
  import { type ViewId } from './id-reference.js';
4
4
  declare const AdwCarouselIndicatorBase_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 AdwCarouselIndicatorBase_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;
@@ -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 GtkActionBar_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 GtkActionBar_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;
@@ -7,6 +7,8 @@ export declare const GTK_BUTTON_IMAGE_CLASS = "image-button";
7
7
  /** The class the button's own label carries, so the theme can give it Adwaita's type. */
8
8
  export declare const GTK_BUTTON_LABEL_CLASS = "adw-button-label";
9
9
  declare const GtkButton_base: ((abstract new (...args: any[]) => {
10
+ addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
11
+ removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
10
12
  connect(eventName: string, callback: (self: /*elided*/ any, data: import("@nativescript/core").EventData) => unknown): number;
11
13
  disconnect(handlerId: number): void;
12
14
  emit(eventName: string, ...args: unknown[]): void;
@@ -53,10 +55,12 @@ declare const GtkButton_base: ((abstract new (...args: any[]) => {
53
55
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
54
56
  get focusable(): boolean;
55
57
  set focusable(value: boolean | string);
58
+ get focusOnClick(): boolean;
59
+ set focusOnClick(value: boolean | string);
60
+ get_focus_on_click(): boolean;
61
+ set_focus_on_click(focusOnClick: boolean): void;
56
62
  grab_focus(): boolean;
57
63
  _emit(eventName: string): void;
58
- addEventListener(eventName: string, callback: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown, once?: boolean): void;
59
- removeEventListener(eventName: string, callback?: (data: import("@nativescript/core").EventData) => void, thisArg?: unknown): void;
60
64
  notify<T extends import("@nativescript/core").EventData>(data: T): void;
61
65
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
62
66
  set(name: string, value: unknown): void;
@@ -28,6 +28,8 @@ export declare class GtkCheckButton extends AdwStyledLayoutBase {
28
28
  private _child;
29
29
  /** A `group` written as an id before the button was in a loaded tree. */
30
30
  private _groupId;
31
+ /** The content column's unit, which {@link _syncContent} keeps. */
32
+ private _contentUnit;
31
33
  constructor(props?: ConstructProps<GtkCheckButton>);
32
34
  /** `Gtk.CheckButton:active` — whether the box is ticked. Defaults to `false`. */
33
35
  get active(): boolean;
@@ -57,7 +59,14 @@ export declare class GtkCheckButton extends AdwStyledLayoutBase {
57
59
  /** `gtk_check_button_set_active`. */
58
60
  set_active(active: boolean): void;
59
61
  _addChildFromBuilder(_name: string, view: View): void;
60
- /** The text shows only while there is a label and no child widget replacing it. */
62
+ /**
63
+ * The text shows only while there is a label and no child widget replacing it.
64
+ *
65
+ * The content column is `star` only while it holds content. An empty `star` column still
66
+ * takes the whole width a parent offers at most, so a bare check button in an
67
+ * `Adw.WrapBox` (a flexbox, which measures `AT_MOST`) filled its line and the swatches of
68
+ * Learn6502's colour selectors stacked one per line.
69
+ */
61
70
  private _syncContent;
62
71
  protected get _ownClass(): string;
63
72
  protected _restyle(): void;
@@ -16,6 +16,8 @@ export interface NotifyDropDownSelectedEventData extends EventData {
16
16
  label: string;
17
17
  }
18
18
  declare const GtkDropDown_base: ((abstract new (...args: any[]) => {
19
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
20
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
19
21
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
20
22
  disconnect(handlerId: number): void;
21
23
  emit(eventName: string, ...args: unknown[]): void;
@@ -62,10 +64,12 @@ declare const GtkDropDown_base: ((abstract new (...args: any[]) => {
62
64
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
63
65
  get focusable(): boolean;
64
66
  set focusable(value: boolean | string);
67
+ get focusOnClick(): boolean;
68
+ set focusOnClick(value: boolean | string);
69
+ get_focus_on_click(): boolean;
70
+ set_focus_on_click(focusOnClick: boolean): void;
65
71
  grab_focus(): boolean;
66
72
  _emit(eventName: string): void;
67
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
68
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
69
73
  notify<T extends EventData>(data: T): void;
70
74
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
71
75
  set(name: string, value: unknown): void;
@@ -14,6 +14,8 @@ export interface NotifyEntryTextEventData extends EventData {
14
14
  textLength: number;
15
15
  }
16
16
  declare const GtkEntry_base: ((abstract new (...args: any[]) => {
17
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
18
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
17
19
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
18
20
  disconnect(handlerId: number): void;
19
21
  emit(eventName: string, ...args: unknown[]): void;
@@ -60,10 +62,12 @@ declare const GtkEntry_base: ((abstract new (...args: any[]) => {
60
62
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
61
63
  get focusable(): boolean;
62
64
  set focusable(value: boolean | string);
65
+ get focusOnClick(): boolean;
66
+ set focusOnClick(value: boolean | string);
67
+ get_focus_on_click(): boolean;
68
+ set_focus_on_click(focusOnClick: boolean): void;
63
69
  grab_focus(): boolean;
64
70
  _emit(eventName: string): void;
65
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
66
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
67
71
  notify<T extends EventData>(data: T): void;
68
72
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
69
73
  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_GTK_IMAGE_SIZE: number;
14
14
  declare const GtkImage_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 GtkImage_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;
@@ -2,6 +2,8 @@ import { Label } from '@nativescript/core';
2
2
  import { type LabelEllipsizeMode, type LabelJustification } from '@gjsify/adwaita-core';
3
3
  import { type ConstructProps } from './construct-props.js';
4
4
  declare const GtkLabel_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 GtkLabel_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;
@@ -5,6 +5,8 @@ import { type ConstructProps } from './construct-props.js';
5
5
  /** `GtkPopover::closed`, emitted when the menu goes away. */
6
6
  export declare const CLOSED = "closed";
7
7
  declare const GtkPopoverMenu_base: ((abstract new (...args: any[]) => {
8
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
9
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
8
10
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
9
11
  disconnect(handlerId: number): void;
10
12
  emit(eventName: string, ...args: unknown[]): void;
@@ -51,10 +53,12 @@ declare const GtkPopoverMenu_base: ((abstract new (...args: any[]) => {
51
53
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
52
54
  get focusable(): boolean;
53
55
  set focusable(value: boolean | string);
56
+ get focusOnClick(): boolean;
57
+ set focusOnClick(value: boolean | string);
58
+ get_focus_on_click(): boolean;
59
+ set_focus_on_click(focusOnClick: boolean): void;
54
60
  grab_focus(): boolean;
55
61
  _emit(eventName: string): void;
56
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
57
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
58
62
  notify<T extends EventData>(data: T): void;
59
63
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
60
64
  set(name: string, value: unknown): void;
@@ -12,6 +12,8 @@ export declare const NOTIFY_STACK_VISIBLE_CHILD_NAME = "notify::visible-child-na
12
12
  export interface NotifyStackVisibleChildEventData extends EventData, ViewStackNotifyPayload {
13
13
  }
14
14
  declare const GtkStack_base: ((abstract new (...args: any[]) => {
15
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
16
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
15
17
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
16
18
  disconnect(handlerId: number): void;
17
19
  emit(eventName: string, ...args: unknown[]): void;
@@ -58,10 +60,12 @@ declare const GtkStack_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: EventData) => void, thisArg?: unknown, once?: boolean): void;
64
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
65
69
  notify<T extends EventData>(data: T): void;
66
70
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
67
71
  set(name: string, value: unknown): void;
@@ -14,6 +14,8 @@ export interface GtkTextBufferSubset {
14
14
  insert_at_cursor(text: string, len?: number): void;
15
15
  }
16
16
  declare const GtkTextView_base: ((abstract new (...args: any[]) => {
17
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
18
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
17
19
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
18
20
  disconnect(handlerId: number): void;
19
21
  emit(eventName: string, ...args: unknown[]): void;
@@ -60,10 +62,12 @@ declare const GtkTextView_base: ((abstract new (...args: any[]) => {
60
62
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
61
63
  get focusable(): boolean;
62
64
  set focusable(value: boolean | string);
65
+ get focusOnClick(): boolean;
66
+ set focusOnClick(value: boolean | string);
67
+ get_focus_on_click(): boolean;
68
+ set_focus_on_click(focusOnClick: boolean): void;
63
69
  grab_focus(): boolean;
64
70
  _emit(eventName: string): void;
65
- addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
66
- removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
67
71
  notify<T extends EventData>(data: T): void;
68
72
  notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
69
73
  set(name: string, value: unknown): void;
@@ -2,7 +2,6 @@ export { AdwPreferencesPage } from './adw-preferences-page.js';
2
2
  export { AdwPreferencesGroup } from './adw-preferences-group.js';
3
3
  export { AdwActionRow } from './adw-action-row.js';
4
4
  export { AdwSwitchRow, NOTIFY_ACTIVE } from './adw-switch-row.js';
5
- export type { NotifyActiveEventData } from './adw-switch-row.js';
6
5
  export { AdwEntryRow, NOTIFY_TEXT } from './adw-entry-row.js';
7
6
  export type { NotifyTextEventData } from './adw-entry-row.js';
8
7
  export { AdwPasswordEntryRow } from './adw-password-entry-row.js';
@@ -1,4 +1,37 @@
1
1
  import type { EventData, Observable } from '@nativescript/core';
2
+ import { type ForeignClassMeta, type ForeignProperty } from '@gjsify/adwaita-core';
3
+ /**
4
+ * A declared property, plus the one thing the engine's vocabulary has no room for: how a value is
5
+ * brought into the property's shape BEFORE it is stored. The engine never sees `normalize`.
6
+ */
7
+ export interface DeclaredProperty extends ForeignProperty {
8
+ /**
9
+ * Replaces the seam's own coercion for EVERY write, typed or not — a floor, a clamp, a lenient
10
+ * parse. Runs identically on both legs, ahead of the store and of the equal-write check, so a
11
+ * write the normalizer maps onto the held value is not a change.
12
+ */
13
+ readonly normalize?: (value: unknown) => unknown;
14
+ }
15
+ /** {@link ForeignClassMeta} whose properties may carry a {@link DeclaredProperty.normalize}. */
16
+ export interface DeclaredClassMeta extends Omit<ForeignClassMeta, 'Properties'> {
17
+ readonly Properties?: Readonly<Record<string, DeclaredProperty>>;
18
+ }
19
+ /**
20
+ * `notify` on a class that DECLARES properties — GJS's `notify('<prop>')` beside NativeScript's
21
+ * `notify({ eventName })`, which is how both legs install it (node-gi routes on the argument's
22
+ * type, and the pure-JS leg imitates that).
23
+ *
24
+ * A migrated widget declares it the same way it declares its properties — `declare notify:
25
+ * GObjectNotify;` — rather than the mixin typing it for every class, because a class with no
26
+ * declaration HAS no property to name and the string form would be a type that lies about 39
27
+ * widgets. One line, beside the `declare` lines the migration already brings.
28
+ */
29
+ export interface GObjectNotify {
30
+ /** `g_object_notify`: emit `notify::<propertyName>`. Throws on a name the class never declared. */
31
+ (propertyName: string): void;
32
+ /** NativeScript's own: dispatch `data` to the listeners of `data.eventName`. */
33
+ <T extends EventData>(data: T): void;
34
+ }
2
35
  /** The two methods the mixin adds. Named so a consumer can annotate with it. */
3
36
  export interface GObjectSignals {
4
37
  /**
@@ -40,9 +73,14 @@ export type ObservableConstructor = abstract new (...args: any[]) => Observable;
40
73
  *
41
74
  * Applied ONCE per class that extends a platform base — `extends withSignals(GridLayout)`
42
75
  * — and never on a class whose base is already a widget of this package, which inherits
43
- * the two methods and would otherwise carry a second, identical copy one prototype up.
76
+ * the two methods and would otherwise carry a second, identical copy one prototype up. Such a
77
+ * class adds properties with {@link withProperties} instead.
44
78
  */
45
- export declare function withSignals<TBase extends ObservableConstructor>(Base: TBase): ((abstract new (...args: any[]) => {
79
+ export declare function withSignals<TBase extends ObservableConstructor>(Base: TBase, meta?: DeclaredClassMeta): ((abstract new (...args: any[]) => {
80
+ /** Refuses a declared member's name; see the header. Covers `on` and `once` with it. */
81
+ addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
82
+ /** The other half of the refusal, and with it `off`. */
83
+ removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
46
84
  connect(eventName: string, callback: (self: /*elided*/ any, data: EventData) => unknown): number;
47
85
  disconnect(handlerId: number): void;
48
86
  emit(eventName: string, ...args: unknown[]): void;
@@ -89,7 +127,35 @@ export declare function withSignals<TBase extends ObservableConstructor>(Base: T
89
127
  insert_action_group(prefix: string, group: import("@gjsify/adwaita-core").ActionGroupLike | null): void;
90
128
  get focusable(): boolean;
91
129
  set focusable(value: boolean | string);
130
+ get focusOnClick(): boolean;
131
+ set focusOnClick(value: boolean | string);
132
+ get_focus_on_click(): boolean;
133
+ set_focus_on_click(focusOnClick: boolean): void;
92
134
  grab_focus(): boolean;
135
+ _emit(eventName: string): void;
136
+ notify<T extends EventData>(data: T): void;
137
+ notifyPropertyChange(name: string, value: unknown, oldValue?: unknown): void;
138
+ set(name: string, value: unknown): void;
139
+ get(name: string): unknown;
140
+ }) & {
141
+ /**
142
+ * What every widget emits; a class's own list adds to it (`emittedSignalsOf`). A
143
+ * declared property's `notify::` and a declared signal are emitted by the seam itself,
144
+ * so they belong here rather than in each migrated widget's own list.
145
+ */
146
+ readonly emittedSignals: readonly string[];
147
+ }) & TBase;
148
+ /**
149
+ * Declare properties and signals on a class whose base is ALREADY a widget of this package —
150
+ * `class AdwSwitchRow extends withProperties(AdwActionRow, { ... })`.
151
+ *
152
+ * The same declaration as {@link withSignals}'s second argument, and nothing else: `connect`,
153
+ * `disconnect`, `emit`, `notify` and `GtkWidget`'s layout properties come down from the base
154
+ * widget, and they already answer this class's declaration because they resolve the instance's
155
+ * whole chain (see the header). Under route D this is a GType over the base's GType; under the
156
+ * pure-JS leg it is the same accessors over the same store, one prototype down.
157
+ */
158
+ export declare function withProperties<TBase extends ObservableConstructor>(Base: TBase, meta: DeclaredClassMeta): ((abstract new (...args: any[]) => {
93
159
  _emit(eventName: string): void;
94
160
  addEventListener(eventName: string, callback: (data: EventData) => void, thisArg?: unknown, once?: boolean): void;
95
161
  removeEventListener(eventName: string, callback?: (data: EventData) => void, thisArg?: unknown): void;
@@ -98,6 +164,6 @@ export declare function withSignals<TBase extends ObservableConstructor>(Base: T
98
164
  set(name: string, value: unknown): void;
99
165
  get(name: string): unknown;
100
166
  }) & {
101
- /** What every widget emits; a class's own list adds to it (`emittedSignalsOf`). */
167
+ /** Only what this class ADDS; `emittedSignalsOf` merges it with the base's. */
102
168
  readonly emittedSignals: readonly string[];
103
169
  }) & TBase;