@gtkx/react 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/components/list.d.ts +35 -0
  2. package/dist/components/list.d.ts.map +1 -0
  3. package/dist/components/list.js +40 -0
  4. package/dist/components/list.js.map +1 -0
  5. package/dist/generated/internal.d.ts +5 -6
  6. package/dist/generated/internal.d.ts.map +1 -1
  7. package/dist/generated/internal.js +3473 -260
  8. package/dist/generated/internal.js.map +1 -1
  9. package/dist/generated/jsx.d.ts +0 -324
  10. package/dist/generated/jsx.d.ts.map +1 -1
  11. package/dist/generated/jsx.js +0 -324
  12. package/dist/generated/jsx.js.map +1 -1
  13. package/dist/host-config.d.ts.map +1 -1
  14. package/dist/host-config.js +2 -0
  15. package/dist/host-config.js.map +1 -1
  16. package/dist/jsx.d.ts +42 -105
  17. package/dist/jsx.d.ts.map +1 -1
  18. package/dist/jsx.js +2 -66
  19. package/dist/jsx.js.map +1 -1
  20. package/dist/metadata.d.ts.map +1 -1
  21. package/dist/metadata.js +7 -3
  22. package/dist/metadata.js.map +1 -1
  23. package/dist/node.d.ts +0 -4
  24. package/dist/node.d.ts.map +1 -1
  25. package/dist/node.js +19 -41
  26. package/dist/node.js.map +1 -1
  27. package/dist/nodes/application.d.ts.map +1 -1
  28. package/dist/nodes/application.js +4 -0
  29. package/dist/nodes/application.js.map +1 -1
  30. package/dist/nodes/column-view-column.d.ts +19 -19
  31. package/dist/nodes/column-view-column.d.ts.map +1 -1
  32. package/dist/nodes/column-view-column.js +130 -119
  33. package/dist/nodes/column-view-column.js.map +1 -1
  34. package/dist/nodes/event-controller.d.ts.map +1 -1
  35. package/dist/nodes/event-controller.js +3 -9
  36. package/dist/nodes/event-controller.js.map +1 -1
  37. package/dist/nodes/internal/accessible.d.ts.map +1 -1
  38. package/dist/nodes/internal/accessible.js.map +1 -1
  39. package/dist/nodes/internal/bound-item.d.ts +4 -0
  40. package/dist/nodes/internal/bound-item.d.ts.map +1 -0
  41. package/dist/nodes/internal/bound-item.js +2 -0
  42. package/dist/nodes/internal/bound-item.js.map +1 -0
  43. package/dist/nodes/internal/construct.d.ts +1 -8
  44. package/dist/nodes/internal/construct.d.ts.map +1 -1
  45. package/dist/nodes/internal/construct.js +30 -54
  46. package/dist/nodes/internal/construct.js.map +1 -1
  47. package/dist/nodes/internal/widget.d.ts.map +1 -1
  48. package/dist/nodes/internal/widget.js +4 -1
  49. package/dist/nodes/internal/widget.js.map +1 -1
  50. package/dist/nodes/list-item-node.d.ts +12 -0
  51. package/dist/nodes/list-item-node.d.ts.map +1 -0
  52. package/dist/nodes/list-item-node.js +23 -0
  53. package/dist/nodes/list-item-node.js.map +1 -0
  54. package/dist/nodes/list.d.ts +100 -0
  55. package/dist/nodes/list.d.ts.map +1 -0
  56. package/dist/nodes/list.js +950 -0
  57. package/dist/nodes/list.js.map +1 -0
  58. package/dist/nodes/notebook-page.d.ts.map +1 -1
  59. package/dist/nodes/notebook-page.js +4 -0
  60. package/dist/nodes/notebook-page.js.map +1 -1
  61. package/dist/nodes/widget.d.ts.map +1 -1
  62. package/dist/nodes/widget.js +9 -8
  63. package/dist/nodes/widget.js.map +1 -1
  64. package/dist/nodes/window.d.ts.map +1 -1
  65. package/dist/nodes/window.js +2 -2
  66. package/dist/nodes/window.js.map +1 -1
  67. package/dist/registry.d.ts +0 -2
  68. package/dist/registry.d.ts.map +1 -1
  69. package/dist/registry.js +4 -13
  70. package/dist/registry.js.map +1 -1
  71. package/dist/types.d.ts +2 -2
  72. package/dist/types.d.ts.map +1 -1
  73. package/package.json +5 -4
  74. package/src/components/list.tsx +83 -0
  75. package/src/generated/internal.ts +3479 -258
  76. package/src/generated/jsx.ts +0 -324
  77. package/src/host-config.ts +2 -0
  78. package/src/jsx.ts +49 -141
  79. package/src/metadata.ts +6 -3
  80. package/src/node.ts +23 -39
  81. package/src/nodes/application.ts +5 -0
  82. package/src/nodes/column-view-column.ts +125 -128
  83. package/src/nodes/event-controller.ts +3 -11
  84. package/src/nodes/internal/accessible.ts +0 -1
  85. package/src/nodes/internal/bound-item.ts +4 -0
  86. package/src/nodes/internal/construct.ts +38 -68
  87. package/src/nodes/internal/widget.ts +3 -1
  88. package/src/nodes/list-item-node.ts +29 -0
  89. package/src/nodes/list.ts +1082 -0
  90. package/src/nodes/notebook-page.ts +4 -0
  91. package/src/nodes/widget.ts +8 -13
  92. package/src/nodes/window.ts +2 -2
  93. package/src/registry.ts +11 -19
  94. package/src/types.ts +7 -2
  95. package/dist/fiber-root.d.ts +0 -4
  96. package/dist/fiber-root.d.ts.map +0 -1
  97. package/dist/fiber-root.js +0 -6
  98. package/dist/fiber-root.js.map +0 -1
  99. package/dist/nodes/column-view.d.ts +0 -37
  100. package/dist/nodes/column-view.d.ts.map +0 -1
  101. package/dist/nodes/column-view.js +0 -205
  102. package/dist/nodes/column-view.js.map +0 -1
  103. package/dist/nodes/drop-down.d.ts +0 -37
  104. package/dist/nodes/drop-down.d.ts.map +0 -1
  105. package/dist/nodes/drop-down.js +0 -231
  106. package/dist/nodes/drop-down.js.map +0 -1
  107. package/dist/nodes/grid-view.d.ts +0 -30
  108. package/dist/nodes/grid-view.d.ts.map +0 -1
  109. package/dist/nodes/grid-view.js +0 -90
  110. package/dist/nodes/grid-view.js.map +0 -1
  111. package/dist/nodes/internal/base-item-renderer.d.ts +0 -28
  112. package/dist/nodes/internal/base-item-renderer.d.ts.map +0 -1
  113. package/dist/nodes/internal/base-item-renderer.js +0 -85
  114. package/dist/nodes/internal/base-item-renderer.js.map +0 -1
  115. package/dist/nodes/internal/grid-item-renderer.d.ts +0 -20
  116. package/dist/nodes/internal/grid-item-renderer.d.ts.map +0 -1
  117. package/dist/nodes/internal/grid-item-renderer.js +0 -66
  118. package/dist/nodes/internal/grid-item-renderer.js.map +0 -1
  119. package/dist/nodes/internal/header-item-renderer.d.ts +0 -23
  120. package/dist/nodes/internal/header-item-renderer.d.ts.map +0 -1
  121. package/dist/nodes/internal/header-item-renderer.js +0 -87
  122. package/dist/nodes/internal/header-item-renderer.js.map +0 -1
  123. package/dist/nodes/internal/header-renderer-manager.d.ts +0 -13
  124. package/dist/nodes/internal/header-renderer-manager.d.ts.map +0 -1
  125. package/dist/nodes/internal/header-renderer-manager.js +0 -20
  126. package/dist/nodes/internal/header-renderer-manager.js.map +0 -1
  127. package/dist/nodes/internal/list-item-renderer.d.ts +0 -27
  128. package/dist/nodes/internal/list-item-renderer.d.ts.map +0 -1
  129. package/dist/nodes/internal/list-item-renderer.js +0 -131
  130. package/dist/nodes/internal/list-item-renderer.js.map +0 -1
  131. package/dist/nodes/internal/list-store.d.ts +0 -21
  132. package/dist/nodes/internal/list-store.d.ts.map +0 -1
  133. package/dist/nodes/internal/list-store.js +0 -90
  134. package/dist/nodes/internal/list-store.js.map +0 -1
  135. package/dist/nodes/internal/sectioned-list-store.d.ts +0 -50
  136. package/dist/nodes/internal/sectioned-list-store.d.ts.map +0 -1
  137. package/dist/nodes/internal/sectioned-list-store.js +0 -250
  138. package/dist/nodes/internal/sectioned-list-store.js.map +0 -1
  139. package/dist/nodes/internal/selection-helpers.d.ts +0 -12
  140. package/dist/nodes/internal/selection-helpers.d.ts.map +0 -1
  141. package/dist/nodes/internal/selection-helpers.js +0 -25
  142. package/dist/nodes/internal/selection-helpers.js.map +0 -1
  143. package/dist/nodes/internal/selection-model-controller.d.ts +0 -26
  144. package/dist/nodes/internal/selection-model-controller.d.ts.map +0 -1
  145. package/dist/nodes/internal/selection-model-controller.js +0 -82
  146. package/dist/nodes/internal/selection-model-controller.js.map +0 -1
  147. package/dist/nodes/internal/simple-list-store.d.ts +0 -15
  148. package/dist/nodes/internal/simple-list-store.d.ts.map +0 -1
  149. package/dist/nodes/internal/simple-list-store.js +0 -110
  150. package/dist/nodes/internal/simple-list-store.js.map +0 -1
  151. package/dist/nodes/internal/tree-store.d.ts +0 -37
  152. package/dist/nodes/internal/tree-store.d.ts.map +0 -1
  153. package/dist/nodes/internal/tree-store.js +0 -253
  154. package/dist/nodes/internal/tree-store.js.map +0 -1
  155. package/dist/nodes/list-item.d.ts +0 -24
  156. package/dist/nodes/list-item.d.ts.map +0 -1
  157. package/dist/nodes/list-item.js +0 -83
  158. package/dist/nodes/list-item.js.map +0 -1
  159. package/dist/nodes/list-section.d.ts +0 -27
  160. package/dist/nodes/list-section.d.ts.map +0 -1
  161. package/dist/nodes/list-section.js +0 -43
  162. package/dist/nodes/list-section.js.map +0 -1
  163. package/dist/nodes/list-view.d.ts +0 -32
  164. package/dist/nodes/list-view.d.ts.map +0 -1
  165. package/dist/nodes/list-view.js +0 -123
  166. package/dist/nodes/list-view.js.map +0 -1
  167. package/dist/nodes/models/list.d.ts +0 -39
  168. package/dist/nodes/models/list.d.ts.map +0 -1
  169. package/dist/nodes/models/list.js +0 -207
  170. package/dist/nodes/models/list.js.map +0 -1
  171. package/src/fiber-root.ts +0 -20
  172. package/src/nodes/column-view.ts +0 -262
  173. package/src/nodes/drop-down.ts +0 -284
  174. package/src/nodes/grid-view.ts +0 -119
  175. package/src/nodes/internal/base-item-renderer.ts +0 -107
  176. package/src/nodes/internal/grid-item-renderer.ts +0 -78
  177. package/src/nodes/internal/header-item-renderer.ts +0 -105
  178. package/src/nodes/internal/header-renderer-manager.ts +0 -33
  179. package/src/nodes/internal/list-item-renderer.ts +0 -162
  180. package/src/nodes/internal/list-store.ts +0 -107
  181. package/src/nodes/internal/sectioned-list-store.ts +0 -287
  182. package/src/nodes/internal/selection-helpers.ts +0 -35
  183. package/src/nodes/internal/selection-model-controller.ts +0 -119
  184. package/src/nodes/internal/simple-list-store.ts +0 -116
  185. package/src/nodes/internal/tree-store.ts +0 -289
  186. package/src/nodes/list-item.ts +0 -107
  187. package/src/nodes/list-section.ts +0 -64
  188. package/src/nodes/list-view.ts +0 -164
  189. package/src/nodes/models/list.ts +0 -250
@@ -81,6 +81,10 @@ export class NotebookPageNode extends VirtualNode<NotebookPageProps, WidgetNode<
81
81
  public override detachDeletedInstance(): void {
82
82
  const childWidget = this.findContentChild()?.container ?? null;
83
83
  if (childWidget && this.parent) {
84
+ const notebook = this.getParentWidget();
85
+ if (notebook.getNPages() <= 1) {
86
+ notebook.setShowTabs(false);
87
+ }
84
88
  this.detachPage(childWidget);
85
89
  }
86
90
  super.detachDeletedInstance();
@@ -11,12 +11,11 @@ import {
11
11
  typeNameFromInstance,
12
12
  } from "@gtkx/ffi/gobject";
13
13
  import * as Gtk from "@gtkx/ffi/gtk";
14
- import { CONSTRUCTOR_PROPS } from "../generated/internal.js";
15
14
  import { isConstructOnlyProp, resolvePropMeta, resolveSignal } from "../metadata.js";
16
15
  import { Node } from "../node.js";
17
16
  import type { Container, Props } from "../types.js";
18
17
  import { applyAccessibleProps, isAccessibleProp } from "./internal/accessible.js";
19
- import { createContainerWithConstructOnly } from "./internal/construct.js";
18
+ import { createContainerWithProperties } from "./internal/construct.js";
20
19
  import {
21
20
  type InsertableWidget,
22
21
  isAddable,
@@ -56,15 +55,7 @@ export class WidgetNode<
56
55
  containerClass: typeof Gtk.Widget,
57
56
  _rootContainer?: Container,
58
57
  ): Container | null {
59
- const WidgetClass = containerClass;
60
- const typeName = WidgetClass.glibTypeName;
61
- const args = (CONSTRUCTOR_PROPS[typeName] ?? []).map((name) => props[name]);
62
-
63
- return createContainerWithConstructOnly(
64
- WidgetClass,
65
- props,
66
- () => new WidgetClass(...(args as ConstructorParameters<typeof Gtk.Widget>)),
67
- );
58
+ return createContainerWithProperties(containerClass, props);
68
59
  }
69
60
 
70
61
  public override isValidChild(_child: Node): boolean {
@@ -375,7 +366,11 @@ export class WidgetNode<
375
366
 
376
367
  function detachChildFromParent(child: WidgetNode): void {
377
368
  const currentParent = child.container.getParent();
378
- if (currentParent !== null && isRemovable(currentParent)) {
379
- currentParent.remove(child.container);
369
+ if (currentParent !== null) {
370
+ if (isRemovable(currentParent)) {
371
+ currentParent.remove(child.container);
372
+ } else {
373
+ child.container.unparent();
374
+ }
380
375
  }
381
376
  }
@@ -107,6 +107,7 @@ export class WindowNode extends WidgetNode<Gtk.Window, WindowProps, WindowChild>
107
107
 
108
108
  public override removeChild(child: WindowChild): void {
109
109
  if (child instanceof WindowNode) {
110
+ child.container.setVisible(false);
110
111
  child.container.setTransientFor(null);
111
112
  super.removeChild(child);
112
113
  return;
@@ -152,9 +153,8 @@ export class WindowNode extends WidgetNode<Gtk.Window, WindowProps, WindowChild>
152
153
  }
153
154
 
154
155
  public override detachDeletedInstance(): void {
155
- this.container.setVisible(false);
156
- this.container.destroy();
157
156
  super.detachDeletedInstance();
157
+ this.container.destroy();
158
158
  }
159
159
 
160
160
  private applyOwnProps(oldProps: WindowProps | null, newProps: WindowProps): void {
package/src/registry.ts CHANGED
@@ -10,21 +10,17 @@ import { AnimationNode } from "./nodes/animation.js";
10
10
  import { ApplicationNode } from "./nodes/application.js";
11
11
  import { CalendarNode } from "./nodes/calendar.js";
12
12
  import { ColorDialogButtonNode } from "./nodes/color-dialog-button.js";
13
- import { ColumnViewNode } from "./nodes/column-view.js";
14
13
  import { ColumnViewColumnNode } from "./nodes/column-view-column.js";
15
14
  import { ContainerSlotNode } from "./nodes/container-slot.js";
16
15
  import { DialogNode } from "./nodes/dialog.js";
17
16
  import { DrawingAreaNode } from "./nodes/drawing-area.js";
18
- import { DropDownNode } from "./nodes/drop-down.js";
19
17
  import { EventControllerNode } from "./nodes/event-controller.js";
20
18
  import { FixedChildNode } from "./nodes/fixed-child.js";
21
19
  import { FontDialogButtonNode } from "./nodes/font-dialog-button.js";
22
20
  import { GridChildNode } from "./nodes/grid-child.js";
23
- import { GridViewNode } from "./nodes/grid-view.js";
24
21
  import { LevelBarNode } from "./nodes/level-bar.js";
25
- import { ListItemNode } from "./nodes/list-item.js";
26
- import { ListSectionNode } from "./nodes/list-section.js";
27
- import { ListViewNode } from "./nodes/list-view.js";
22
+ import { ListNode } from "./nodes/list.js";
23
+ import { ListItemNode } from "./nodes/list-item-node.js";
28
24
  import { MenuNode } from "./nodes/menu.js";
29
25
  import { NavigationPageNode } from "./nodes/navigation-page.js";
30
26
  import { NavigationViewNode } from "./nodes/navigation-view.js";
@@ -58,14 +54,16 @@ export type AdjustableWidget = InstanceType<(typeof AdjustableWidgets)[number]>;
58
54
  export const StackWidgets = [Gtk.Stack, Adw.ViewStack] as const;
59
55
  export type StackWidget = InstanceType<(typeof StackWidgets)[number]>;
60
56
 
61
- export const DropDownWidgets = [Gtk.DropDown, Adw.ComboRow] as const;
62
- export type DropDownWidget = InstanceType<(typeof DropDownWidgets)[number]>;
63
-
64
57
  export const PopoverMenuWidgets = [Gtk.PopoverMenu, Gtk.PopoverMenuBar, Gtk.MenuButton] as const;
65
58
  export type PopoverMenuWidget = InstanceType<(typeof PopoverMenuWidgets)[number]>;
66
59
 
67
- // biome-ignore lint/suspicious/noExplicitAny: Registry entries require flexible typing for varied node constructors
68
- export type NodeClass = (new (...args: any[]) => Node) & { createContainer(...args: any[]): unknown };
60
+ export type NodeClass = (new (
61
+ // biome-ignore lint/suspicious/noExplicitAny: Registry entries require flexible typing for varied node constructors
62
+ ...args: any[]
63
+ ) => Node) & {
64
+ // biome-ignore lint/suspicious/noExplicitAny: Registry entries require flexible typing for varied node constructors
65
+ createContainer(...args: any[]): unknown;
66
+ };
69
67
 
70
68
  // biome-ignore lint/suspicious/noExplicitAny: Class keys require flexible typing for GTK class hierarchy matching
71
69
  type ClassKey = new (...args: any[]) => any;
@@ -79,14 +77,11 @@ export const NODE_REGISTRY: NodeRegistryEntry[] = [
79
77
  ["ColumnViewColumn", ColumnViewColumnNode],
80
78
  ["FixedChild", FixedChildNode],
81
79
  ["GridChild", GridChildNode],
82
- ["ListItem", ListItemNode],
83
- ["ListSection", ListSectionNode],
84
80
  [["MenuItem", "MenuSection", "MenuSubmenu"], MenuNode],
85
81
  ["NavigationPage", NavigationPageNode],
86
82
  ["NotebookPage", NotebookPageNode],
87
83
  ["NotebookPageTab", NotebookPageTabNode],
88
84
  ["OverlayChild", OverlayChildNode],
89
-
90
85
  ["Shortcut", ShortcutNode],
91
86
  ["Slot", SlotNode],
92
87
  ["StackPage", StackPageNode],
@@ -96,7 +91,6 @@ export const NODE_REGISTRY: NodeRegistryEntry[] = [
96
91
  ["TextTag", TextTagNode],
97
92
  ["Toggle", ToggleNode],
98
93
  [Gtk.Application, ApplicationNode],
99
-
100
94
  [Gtk.EventController, EventControllerNode],
101
95
  [GtkSource.View, SourceViewNode],
102
96
  [Gtk.TextView, TextViewNode],
@@ -115,11 +109,9 @@ export const NODE_REGISTRY: NodeRegistryEntry[] = [
115
109
  [Adw.ToggleGroup, ToggleGroupNode],
116
110
  [Gtk.Notebook, NotebookNode],
117
111
  [StackWidgets, StackNode],
118
- [Gtk.ColumnView, ColumnViewNode],
119
- [Gtk.ListView, ListViewNode],
120
- [Gtk.GridView, GridViewNode],
121
- [DropDownWidgets, DropDownNode],
112
+ [[Gtk.ListView, Gtk.ColumnView, Gtk.GridView, Gtk.DropDown, Adw.ComboRow], ListNode],
122
113
  [PopoverMenuWidgets, PopoverMenuNode],
123
114
  [AdjustableWidgets, AdjustableNode],
115
+ [[Gtk.ListItem, Gtk.ListHeader], ListItemNode],
124
116
  [Gtk.Widget, WidgetNode],
125
117
  ];
package/src/types.ts CHANGED
@@ -1,7 +1,12 @@
1
1
  import type * as Gtk from "@gtkx/ffi/gtk";
2
2
 
3
- export type Container = Gtk.Widget | Gtk.Application | Gtk.EventController;
3
+ export type Container = Gtk.Widget | Gtk.Application | Gtk.EventController | Gtk.ListItem | Gtk.ListHeader;
4
4
 
5
5
  export type Props = Record<string, unknown>;
6
6
 
7
- export type ContainerClass = typeof Gtk.Widget | typeof Gtk.Application | typeof Gtk.EventController;
7
+ export type ContainerClass =
8
+ | typeof Gtk.Widget
9
+ | typeof Gtk.Application
10
+ | typeof Gtk.EventController
11
+ | typeof Gtk.ListItem
12
+ | typeof Gtk.ListHeader;
@@ -1,4 +0,0 @@
1
- import type * as Gtk from "@gtkx/ffi/gtk";
2
- import type Reconciler from "react-reconciler";
3
- export declare const createFiberRoot: (container: Gtk.Widget) => Reconciler.FiberRoot;
4
- //# sourceMappingURL=fiber-root.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fiber-root.d.ts","sourceRoot":"","sources":["../src/fiber-root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,UAAU,MAAM,kBAAkB,CAAC;AAG/C,eAAO,MAAM,eAAe,GAAI,WAAW,GAAG,CAAC,MAAM,KAAG,UAAU,CAAC,SAelE,CAAC"}
@@ -1,6 +0,0 @@
1
- import { reconciler } from "./reconciler.js";
2
- export const createFiberRoot = (container) => {
3
- const instance = reconciler.getInstance();
4
- return instance.createContainer(container, 1, null, false, null, "", (error) => console.error("Fiber root render error:", error), () => { }, () => { }, () => { });
5
- };
6
- //# sourceMappingURL=fiber-root.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fiber-root.js","sourceRoot":"","sources":["../src/fiber-root.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,SAAqB,EAAwB,EAAE;IAC3E,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,QAAQ,CAAC,eAAe,CAC3B,SAAS,EACT,CAAC,EACD,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,EAAE,EACF,CAAC,KAAY,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAClE,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,EACR,GAAG,EAAE,GAAE,CAAC,CACX,CAAC;AACN,CAAC,CAAC"}
@@ -1,37 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import type { GtkColumnViewProps } from "../jsx.js";
3
- import type { Node } from "../node.js";
4
- import type { Container } from "../types.js";
5
- import { ColumnViewColumnNode } from "./column-view-column.js";
6
- import { ContainerSlotNode } from "./container-slot.js";
7
- import { EventControllerNode } from "./event-controller.js";
8
- import { ListItemNode } from "./list-item.js";
9
- import { ListSectionNode } from "./list-section.js";
10
- import { type ListModelProps } from "./models/list.js";
11
- import { SlotNode } from "./slot.js";
12
- import { WidgetNode } from "./widget.js";
13
- declare const OWN_PROPS: readonly ["sortColumn", "sortOrder", "onSortChanged", "estimatedRowHeight", "renderHeader"];
14
- type ColumnViewProps = Pick<GtkColumnViewProps, (typeof OWN_PROPS)[number]> & ListModelProps;
15
- type ColumnViewChild = ListItemNode | ListSectionNode | ColumnViewColumnNode | EventControllerNode | SlotNode | ContainerSlotNode;
16
- export declare class ColumnViewNode extends WidgetNode<Gtk.ColumnView, ColumnViewProps, ColumnViewChild> {
17
- private list;
18
- private headerRenderer;
19
- isValidChild(child: Node): boolean;
20
- private columnNodes;
21
- private estimatedRowHeight;
22
- constructor(typeName: string, props: ColumnViewProps, container: Gtk.ColumnView, rootContainer: Container);
23
- appendChild(child: ColumnViewChild): void;
24
- insertBefore(child: ColumnViewChild, before: ColumnViewChild): void;
25
- removeChild(child: ColumnViewChild): void;
26
- finalizeInitialChildren(props: ColumnViewProps): boolean;
27
- commitUpdate(oldProps: ColumnViewProps | null, newProps: ColumnViewProps): void;
28
- commitMount(): void;
29
- detachDeletedInstance(): void;
30
- private applyOwnProps;
31
- private findColumn;
32
- private getColumn;
33
- private getColumnIndex;
34
- private findColumnInView;
35
- }
36
- export {};
37
- //# sourceMappingURL=column-view.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"column-view.d.ts","sourceRoot":"","sources":["../../src/nodes/column-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,SAAS,6FAA8F,CAAC;AAE9G,KAAK,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC;AAC7F,KAAK,eAAe,GACd,YAAY,GACZ,eAAe,GACf,oBAAoB,GACpB,mBAAmB,GACnB,QAAQ,GACR,iBAAiB,CAAC;AAExB,qBAAa,cAAe,SAAQ,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,eAAe,CAAC;IAC5F,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,cAAc,CAAmC;IAEzC,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;IAUlD,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,kBAAkB,CAAuB;gBAErC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS;IAqBzF,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IA2BzC,YAAY,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAoCnE,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAuBzC,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;IAKxD,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAa/E,WAAW,IAAI,IAAI;IAMnB,qBAAqB,IAAI,IAAI;IAM7C,OAAO,CAAC,aAAa;IAgDrB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,gBAAgB;CAI3B"}
@@ -1,205 +0,0 @@
1
- import * as Gtk from "@gtkx/ffi/gtk";
2
- import { ColumnViewColumnNode } from "./column-view-column.js";
3
- import { ContainerSlotNode } from "./container-slot.js";
4
- import { EventControllerNode } from "./event-controller.js";
5
- import { updateHeaderRenderer } from "./internal/header-renderer-manager.js";
6
- import { filterProps, hasChanged } from "./internal/props.js";
7
- import { ListItemNode } from "./list-item.js";
8
- import { ListSectionNode } from "./list-section.js";
9
- import { ListModel } from "./models/list.js";
10
- import { SlotNode } from "./slot.js";
11
- import { WidgetNode } from "./widget.js";
12
- const OWN_PROPS = ["sortColumn", "sortOrder", "onSortChanged", "estimatedRowHeight", "renderHeader"];
13
- export class ColumnViewNode extends WidgetNode {
14
- list;
15
- headerRenderer = null;
16
- isValidChild(child) {
17
- return (child instanceof ListItemNode ||
18
- child instanceof ListSectionNode ||
19
- child instanceof ColumnViewColumnNode ||
20
- child instanceof EventControllerNode ||
21
- child instanceof SlotNode ||
22
- child instanceof ContainerSlotNode);
23
- }
24
- columnNodes = new Set();
25
- estimatedRowHeight = null;
26
- constructor(typeName, props, container, rootContainer) {
27
- super(typeName, props, container, rootContainer);
28
- const flat = props.renderHeader != null;
29
- this.list = new ListModel({ owner: this, signalStore: this.signalStore }, {
30
- selectionMode: props.selectionMode,
31
- selected: props.selected,
32
- onSelectionChanged: props.onSelectionChanged,
33
- }, flat);
34
- this.list.setOnItemUpdated((id) => {
35
- for (const column of this.columnNodes) {
36
- column.rebindItem(id);
37
- }
38
- });
39
- }
40
- appendChild(child) {
41
- super.appendChild(child);
42
- if (child instanceof ListItemNode || child instanceof ListSectionNode) {
43
- this.list.appendChild(child);
44
- return;
45
- }
46
- if (!(child instanceof ColumnViewColumnNode))
47
- return;
48
- const existingColumn = this.findColumnInView(child.getColumn());
49
- if (existingColumn) {
50
- this.container.removeColumn(existingColumn);
51
- }
52
- if (this.list.isFlatMode()) {
53
- child.setFlatStore(this.list.getFlatStore());
54
- }
55
- else {
56
- child.setStore(this.list.getStore());
57
- }
58
- child.setEstimatedRowHeight(this.estimatedRowHeight);
59
- this.container.appendColumn(child.getColumn());
60
- child.attachToColumnView(this.container);
61
- this.columnNodes.add(child);
62
- }
63
- insertBefore(child, before) {
64
- super.insertBefore(child, before);
65
- if (child instanceof ListItemNode || child instanceof ListSectionNode) {
66
- if (before instanceof ListItemNode || before instanceof ListSectionNode) {
67
- this.list.insertBefore(child, before);
68
- }
69
- return;
70
- }
71
- if (!(child instanceof ColumnViewColumnNode))
72
- return;
73
- const existingColumn = this.findColumnInView(child.getColumn());
74
- if (existingColumn) {
75
- this.container.removeColumn(existingColumn);
76
- }
77
- if (this.list.isFlatMode()) {
78
- child.setFlatStore(this.list.getFlatStore());
79
- }
80
- else {
81
- child.setStore(this.list.getStore());
82
- }
83
- child.setEstimatedRowHeight(this.estimatedRowHeight);
84
- if (before instanceof ColumnViewColumnNode) {
85
- const beforeIndex = this.getColumnIndex(before.getColumn());
86
- this.container.insertColumn(beforeIndex, child.getColumn());
87
- }
88
- else {
89
- this.container.appendColumn(child.getColumn());
90
- }
91
- child.attachToColumnView(this.container);
92
- this.columnNodes.add(child);
93
- }
94
- removeChild(child) {
95
- if (child instanceof ListItemNode || child instanceof ListSectionNode) {
96
- this.list.removeChild(child);
97
- super.removeChild(child);
98
- return;
99
- }
100
- if (child instanceof ColumnViewColumnNode) {
101
- child.detachFromColumnView();
102
- const existingColumn = this.findColumnInView(child.getColumn());
103
- if (existingColumn) {
104
- this.container.removeColumn(existingColumn);
105
- }
106
- child.setStore(null);
107
- this.columnNodes.delete(child);
108
- }
109
- super.removeChild(child);
110
- }
111
- finalizeInitialChildren(props) {
112
- super.finalizeInitialChildren(props);
113
- return true;
114
- }
115
- commitUpdate(oldProps, newProps) {
116
- super.commitUpdate(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
117
- this.applyOwnProps(oldProps, newProps);
118
- const previousModel = this.list.getSelectionModel();
119
- this.list.updateProps(oldProps ? filterProps(oldProps, OWN_PROPS) : null, filterProps(newProps, OWN_PROPS));
120
- const currentModel = this.list.getSelectionModel();
121
- if (previousModel !== currentModel) {
122
- this.container.setModel(currentModel);
123
- }
124
- }
125
- commitMount() {
126
- super.commitMount();
127
- this.list.flushBatch();
128
- this.container.setModel(this.list.getSelectionModel());
129
- }
130
- detachDeletedInstance() {
131
- this.columnNodes.clear();
132
- this.headerRenderer?.dispose();
133
- super.detachDeletedInstance();
134
- }
135
- applyOwnProps(oldProps, newProps) {
136
- if (hasChanged(oldProps, newProps, "onSortChanged")) {
137
- const sorter = this.container.getSorter();
138
- const onSortChanged = newProps.onSortChanged;
139
- if (sorter instanceof Gtk.ColumnViewSorter) {
140
- const handleSortChange = onSortChanged
141
- ? () => {
142
- onSortChanged(sorter.getPrimarySortColumn()?.getId() ?? null, sorter.getPrimarySortOrder());
143
- }
144
- : undefined;
145
- this.signalStore.set(this, sorter, "changed", handleSortChange);
146
- }
147
- }
148
- if (hasChanged(oldProps, newProps, "sortColumn") || hasChanged(oldProps, newProps, "sortOrder")) {
149
- const sortColumn = newProps.sortColumn;
150
- const sortOrder = newProps.sortOrder ?? Gtk.SortType.ASCENDING;
151
- if (!sortColumn) {
152
- this.container.sortByColumn(sortOrder, undefined);
153
- }
154
- else {
155
- this.container.sortByColumn(sortOrder, this.getColumn(sortColumn));
156
- }
157
- }
158
- if (hasChanged(oldProps, newProps, "estimatedRowHeight")) {
159
- this.estimatedRowHeight = newProps.estimatedRowHeight ?? null;
160
- for (const column of this.columnNodes) {
161
- column.setEstimatedRowHeight(this.estimatedRowHeight);
162
- }
163
- }
164
- if (hasChanged(oldProps, newProps, "renderHeader")) {
165
- this.headerRenderer = updateHeaderRenderer(this.headerRenderer, {
166
- signalStore: this.signalStore,
167
- isEnabled: () => this.list.isFlatMode(),
168
- resolveItem: (id) => this.list.getFlatStore().getHeaderValue(id),
169
- setFactory: (factory) => this.container.setHeaderFactory(factory),
170
- }, newProps.renderHeader);
171
- }
172
- }
173
- findColumn(predicate) {
174
- const columns = this.container.getColumns();
175
- for (let i = 0; i < columns.getNItems(); i++) {
176
- const column = columns.getObject(i);
177
- if (!(column instanceof Gtk.ColumnViewColumn))
178
- continue;
179
- const result = predicate(column, i);
180
- if (result !== null)
181
- return result;
182
- }
183
- return null;
184
- }
185
- getColumn(columnId) {
186
- const column = this.findColumn((col) => (col.getId() === columnId ? col : null));
187
- if (!column) {
188
- throw new Error(`Unable to find column '${columnId}' in ${this.typeName}`);
189
- }
190
- return column;
191
- }
192
- getColumnIndex(column) {
193
- const targetId = column.getId();
194
- const index = this.findColumn((col, i) => (col.getId() === targetId ? i : null));
195
- if (index === null) {
196
- throw new Error(`Unable to find column '${targetId}' in ${this.typeName}`);
197
- }
198
- return index;
199
- }
200
- findColumnInView(column) {
201
- const targetId = column.getId();
202
- return this.findColumn((col) => (col.getId() === targetId ? col : null));
203
- }
204
- }
205
- //# sourceMappingURL=column-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"column-view.js","sourceRoot":"","sources":["../../src/nodes/column-view.ts"],"names":[],"mappings":"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"}
@@ -1,37 +0,0 @@
1
- import type { AdwComboRowProps, GtkDropDownProps } from "../jsx.js";
2
- import type { Node } from "../node.js";
3
- import type { DropDownWidget } from "../registry.js";
4
- import type { Container } from "../types.js";
5
- import { ContainerSlotNode } from "./container-slot.js";
6
- import { EventControllerNode } from "./event-controller.js";
7
- import { ListItemNode } from "./list-item.js";
8
- import { ListSectionNode } from "./list-section.js";
9
- import { SlotNode } from "./slot.js";
10
- import { WidgetNode } from "./widget.js";
11
- declare const OWN_PROPS: readonly ["selectedId", "onSelectionChanged", "renderItem", "renderListItem", "renderHeader"];
12
- type DropDownProps = Pick<GtkDropDownProps | AdwComboRowProps, (typeof OWN_PROPS)[number]>;
13
- type DropDownChild = ListItemNode | ListSectionNode | EventControllerNode | SlotNode | ContainerSlotNode;
14
- export declare class DropDownNode extends WidgetNode<DropDownWidget, DropDownProps, DropDownChild> {
15
- private store;
16
- private initialSelectedId;
17
- private itemState;
18
- private renderItemFn;
19
- private listItemState;
20
- private renderListItemFn;
21
- private headerRenderer;
22
- isValidChild(child: Node): boolean;
23
- constructor(typeName: string, props: DropDownProps, container: DropDownWidget, rootContainer: Container);
24
- finalizeInitialChildren(props: DropDownProps): boolean;
25
- private reapplyInitialSelectedId;
26
- appendChild(child: DropDownChild): void;
27
- insertBefore(child: DropDownChild, before: DropDownChild): void;
28
- removeChild(child: DropDownChild): void;
29
- commitUpdate(oldProps: DropDownProps | null, newProps: DropDownProps): void;
30
- detachDeletedInstance(): void;
31
- private applyOwnProps;
32
- private createFactory;
33
- private rebindAll;
34
- private disposeFactory;
35
- }
36
- export {};
37
- //# sourceMappingURL=drop-down.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drop-down.d.ts","sourceRoot":"","sources":["../../src/nodes/drop-down.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,QAAA,MAAM,SAAS,+FAAgG,CAAC;AAEhH,KAAK,aAAa,GAAG,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EAAE,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3F,KAAK,aAAa,GAAG,YAAY,GAAG,eAAe,GAAG,mBAAmB,GAAG,QAAQ,GAAG,iBAAiB,CAAC;AAWzG,qBAAa,YAAa,SAAQ,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC;IACtF,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,iBAAiB,CAA4B;IAErD,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,gBAAgB,CAA6B;IAErD,OAAO,CAAC,cAAc,CAAmC;IAEzC,YAAY,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO;gBAUtC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS;IAMvF,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAQtE,OAAO,CAAC,wBAAwB;IAShB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWvC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAc/D,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAWvC,YAAY,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAK3E,qBAAqB,IAAI,IAAI;IAS7C,OAAO,CAAC,aAAa;IA2ErB,OAAO,CAAC,aAAa;IAsDrB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,cAAc;CAezB"}