@gjsify/example-gtk-adwaita-storybook 0.45.0 → 0.47.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 (64) hide show
  1. package/README.md +2 -2
  2. package/dist/browser-main.js +98 -98
  3. package/dist/gjs.js +4 -4
  4. package/package.json +11 -11
  5. package/src/browser/buttons/button-content.web.ts +3 -3
  6. package/src/browser/buttons/button-styles.web.ts +3 -3
  7. package/src/browser/buttons/menu-button.web.ts +1 -1
  8. package/src/browser/controls/drop-down.web.ts +1 -1
  9. package/src/browser/controls/entry.web.ts +2 -2
  10. package/src/browser/feedback/about-dialog.web.ts +1 -1
  11. package/src/browser/feedback/alert-dialog.web.ts +1 -1
  12. package/src/browser/feedback/preferences-dialog.web.ts +1 -1
  13. package/src/browser/feedback/toast.web.ts +1 -1
  14. package/src/browser/layout/header-bar.web.ts +2 -2
  15. package/src/browser/layout/toolbar-view.web.ts +3 -3
  16. package/src/browser/layout/wrap-box.web.ts +1 -1
  17. package/src/browser/navigation/bottom-sheet.web.ts +2 -2
  18. package/src/browser/navigation/navigation-split-view.web.ts +1 -1
  19. package/src/browser/navigation/navigation-view.web.ts +1 -1
  20. package/src/browser/navigation/sidebar.web.ts +1 -1
  21. package/src/browser/presentation/status-page.web.ts +1 -1
  22. package/src/browser/rows/action-row.web.ts +2 -2
  23. package/src/browser/view-switching/view-switcher-bar.web.ts +4 -4
  24. package/src/buttons/button-content.story.ts +3 -3
  25. package/src/buttons/button-styles.story.ts +3 -3
  26. package/src/buttons/menu-button.story.ts +3 -3
  27. package/src/buttons/split-button.story.ts +3 -3
  28. package/src/buttons/toggle-group.story.ts +2 -2
  29. package/src/controls/drop-down.story.ts +2 -2
  30. package/src/controls/entry.story.ts +2 -2
  31. package/src/feedback/about-dialog.story.ts +3 -3
  32. package/src/feedback/alert-dialog.story.ts +3 -3
  33. package/src/feedback/preferences-dialog.story.ts +3 -3
  34. package/src/feedback/toast.story.ts +3 -3
  35. package/src/layout/clamp.story.ts +3 -3
  36. package/src/layout/header-bar.story.ts +4 -4
  37. package/src/layout/toolbar-view.story.ts +3 -3
  38. package/src/layout/wrap-box.story.ts +3 -3
  39. package/src/navigation/bottom-sheet.story.ts +3 -3
  40. package/src/navigation/navigation-split-view.story.ts +3 -3
  41. package/src/navigation/navigation-view.story.ts +3 -3
  42. package/src/navigation/overlay-split-view.story.ts +3 -3
  43. package/src/navigation/sidebar.story.ts +3 -3
  44. package/src/overview/widgets.story.ts +3 -3
  45. package/src/presentation/avatar.story.ts +2 -2
  46. package/src/presentation/banner.story.ts +3 -3
  47. package/src/presentation/shortcut-label.story.ts +3 -3
  48. package/src/presentation/spinner.story.ts +3 -3
  49. package/src/presentation/status-page.story.ts +3 -3
  50. package/src/presentation/window-title.story.ts +2 -2
  51. package/src/rows/action-row.story.ts +3 -3
  52. package/src/rows/button-row.story.ts +2 -2
  53. package/src/rows/combo-row.story.ts +3 -3
  54. package/src/rows/entry-row.story.ts +2 -2
  55. package/src/rows/expander-row.story.ts +2 -2
  56. package/src/rows/password-entry-row.story.ts +2 -2
  57. package/src/rows/preferences-group.story.ts +3 -3
  58. package/src/rows/spin-row.story.ts +3 -3
  59. package/src/rows/switch-row.story.ts +2 -2
  60. package/src/view-switching/carousel.story.ts +3 -3
  61. package/src/view-switching/inline-view-switcher.story.ts +3 -3
  62. package/src/view-switching/tab-view.story.ts +3 -3
  63. package/src/view-switching/view-switcher-bar.story.ts +2 -2
  64. package/src/view-switching/view-switcher.story.ts +3 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjsify/example-gtk-adwaita-storybook",
3
- "version": "0.45.0",
3
+ "version": "0.47.0",
4
4
  "description": "Interactive component browser for Libadwaita widgets — a native Adwaita storybook built on @gjsify/storybook, debuggable over DBus/MCP via @gjsify/devtools",
5
5
  "type": "module",
6
6
  "main": "dist/gjs.js",
@@ -48,17 +48,17 @@
48
48
  }
49
49
  },
50
50
  "devDependencies": {
51
- "@girs/adw-1": "^4.1.0",
52
- "@girs/gio-2.0": "^4.1.0",
53
- "@girs/gjs": "^4.1.0",
54
- "@girs/glib-2.0": "^4.1.0",
55
- "@girs/gobject-2.0": "^4.1.0",
56
- "@girs/gtk-4.0": "^4.1.0",
57
- "@gjsify/adwaita-web": "^0.45.0",
58
- "@gjsify/cli": "^0.45.0",
51
+ "@girs/adw-1": "4.6.0",
52
+ "@girs/gio-2.0": "4.6.0",
53
+ "@girs/gjs": "4.6.0",
54
+ "@girs/glib-2.0": "4.6.0",
55
+ "@girs/gobject-2.0": "4.6.0",
56
+ "@girs/gtk-4.0": "4.6.0",
57
+ "@gjsify/adwaita-web": "^0.47.0",
58
+ "@gjsify/cli": "^0.47.0",
59
59
  "@gjsify/node-gi": "file:../../../packages/node-gi/node-gi",
60
- "@gjsify/storybook": "^0.45.0",
61
- "@gjsify/adwaita-storybook": "^0.45.0",
60
+ "@gjsify/storybook": "^0.47.0",
61
+ "@gjsify/adwaita-storybook": "^0.47.0",
62
62
  "@types/node": "^25.9.2",
63
63
  "typescript": "^6.0.3"
64
64
  },
@@ -1,5 +1,5 @@
1
1
  // Browser port of the Button Content story — an <adw-button-content> (icon +
2
- // label) inside a suggested-action pill <adw-button>, mirroring the GTK twin
2
+ // label) inside a suggested-action pill <gtk-button>, mirroring the GTK twin
3
3
  // (button-content.story.ts) which places an Adw.ButtonContent inside a
4
4
  // Gtk.Button with the .suggested-action + .pill style classes.
5
5
 
@@ -27,8 +27,8 @@ export class ButtonContentWebStory extends StoryElement {
27
27
  this._syncContent();
28
28
 
29
29
  // The native story wraps the content in a suggested-action pill button.
30
- // Use a plain button carrying the adw-button style classes (the
31
- // <adw-button> custom element rebuilds its subtree from attributes and
30
+ // Use a plain button carrying the .adw-button style classes (the
31
+ // <gtk-button> custom element rebuilds its subtree from attributes and
32
32
  // would discard the nested <adw-button-content>).
33
33
  const button = document.createElement('button');
34
34
  button.className = 'adw-button suggested-action pill';
@@ -1,4 +1,4 @@
1
- // Browser port of the Button Styles story — adw-button with Adwaita style
1
+ // Browser port of the Button Styles story — gtk-button with Adwaita style
2
2
  // variants. Shares its metadata/controls with the GTK twin (button-styles.story.ts).
3
3
 
4
4
  import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
@@ -6,7 +6,7 @@ import { buttonStylesMeta } from '../../buttons/button-styles.meta.js';
6
6
 
7
7
  const VARIANT_ATTRS = ['pill', 'circular', 'suggested', 'destructive', 'flat'] as const;
8
8
 
9
- /** Map the storybook `style` value to an <adw-button> variant attribute. */
9
+ /** Map the storybook `style` value to a <gtk-button> variant attribute. */
10
10
  const VARIANT_BY_STYLE: Record<string, (typeof VARIANT_ATTRS)[number]> = {
11
11
  pill: 'pill',
12
12
  circular: 'circular',
@@ -16,7 +16,7 @@ const VARIANT_BY_STYLE: Record<string, (typeof VARIANT_ATTRS)[number]> = {
16
16
  };
17
17
 
18
18
  function button(opts: { label?: string; icon?: string; variant?: (typeof VARIANT_ATTRS)[number] }): HTMLElement {
19
- const btn = document.createElement('adw-button');
19
+ const btn = document.createElement('gtk-button');
20
20
  if (opts.label) btn.setAttribute('label', opts.label);
21
21
  if (opts.icon) btn.setAttribute('icon', opts.icon);
22
22
  if (opts.variant) btn.setAttribute(opts.variant, '');
@@ -15,7 +15,7 @@ export class MenuButtonWebStory extends StoryElement {
15
15
  }
16
16
 
17
17
  initialize(): void {
18
- this._widget = document.createElement('adw-menu-button');
18
+ this._widget = document.createElement('gtk-menu-button');
19
19
  this._widget.setAttribute('menu', JSON.stringify(MENU_BUTTON_ITEMS.map((label) => ({ label }))));
20
20
  this._apply();
21
21
  this.addContent(this._widget);
@@ -15,7 +15,7 @@ export class DropDownWebStory extends StoryElement {
15
15
  }
16
16
 
17
17
  initialize(): void {
18
- this._dropDown = document.createElement('adw-drop-down');
18
+ this._dropDown = document.createElement('gtk-drop-down');
19
19
  this._dropDown.setAttribute('options', JSON.stringify(DROP_DOWN_OPTIONS));
20
20
  this._apply();
21
21
  this.addContent(this._dropDown);
@@ -15,7 +15,7 @@ export class EntryWebStory extends StoryElement {
15
15
  }
16
16
 
17
17
  initialize(): void {
18
- this._entry = document.createElement('adw-entry');
18
+ this._entry = document.createElement('gtk-entry');
19
19
  this._entry.style.minWidth = '280px';
20
20
  this._apply();
21
21
  this.addContent(this._entry);
@@ -29,7 +29,7 @@ export class EntryWebStory extends StoryElement {
29
29
  if (!this._entry) return;
30
30
  this._entry.setAttribute('value', this.args.text as string);
31
31
  this._entry.setAttribute('placeholder', this.args.placeholder as string);
32
- // `<adw-entry>` has no `editable`: the browser spelling of a field you may
32
+ // `<gtk-entry>` has no `editable`: the browser spelling of a field you may
33
33
  // read but not change is `disabled`, which also greys it — the one place
34
34
  // this rendering cannot match GtkEditable:editable exactly.
35
35
  if (this.args.editable as boolean) this._entry.removeAttribute('disabled');
@@ -30,7 +30,7 @@ export class AboutDialogWebStory extends StoryElement {
30
30
  center.style.justifyContent = 'center';
31
31
  center.style.minHeight = '160px';
32
32
 
33
- const button = document.createElement('adw-button');
33
+ const button = document.createElement('gtk-button');
34
34
  button.textContent = 'Show dialog';
35
35
  button.setAttribute('pill', '');
36
36
  button.setAttribute('suggested', '');
@@ -17,7 +17,7 @@ export class AlertDialogWebStory extends StoryElement {
17
17
  }
18
18
 
19
19
  initialize(): void {
20
- const button = document.createElement('adw-button');
20
+ const button = document.createElement('gtk-button');
21
21
  button.textContent = 'Show dialog';
22
22
  button.setAttribute('pill', '');
23
23
  button.setAttribute('suggested', '');
@@ -68,7 +68,7 @@ export class PreferencesDialogWebStory extends StoryElement {
68
68
  center.style.height = '100%';
69
69
  center.style.minHeight = '200px';
70
70
 
71
- const button = document.createElement('adw-button');
71
+ const button = document.createElement('gtk-button');
72
72
  button.textContent = 'Show dialog';
73
73
  button.setAttribute('pill', '');
74
74
  button.setAttribute('suggested', '');
@@ -34,7 +34,7 @@ export class ToastWebStory extends StoryElement {
34
34
  center.style.width = '100%';
35
35
  center.style.height = '100%';
36
36
 
37
- const button = document.createElement('adw-button');
37
+ const button = document.createElement('gtk-button');
38
38
  button.textContent = 'Show toast';
39
39
  button.setAttribute('pill', '');
40
40
  button.setAttribute('suggested', '');
@@ -21,13 +21,13 @@ export class HeaderBarWebStory extends StoryElement {
21
21
  this._title.setAttribute('slot', 'center');
22
22
 
23
23
  // Start control — a flat back button.
24
- const backButton = document.createElement('adw-button');
24
+ const backButton = document.createElement('gtk-button');
25
25
  backButton.setAttribute('slot', 'start');
26
26
  backButton.setAttribute('icon', 'go-previous');
27
27
  backButton.setAttribute('flat', '');
28
28
 
29
29
  // End control — a flat menu button.
30
- const menuButton = document.createElement('adw-button');
30
+ const menuButton = document.createElement('gtk-button');
31
31
  menuButton.setAttribute('slot', 'end');
32
32
  menuButton.setAttribute('icon', 'open-menu');
33
33
  menuButton.setAttribute('flat', '');
@@ -49,12 +49,12 @@ export class ToolbarViewWebStory extends StoryElement {
49
49
  bottomBar.style.padding = 'var(--spacing-xs, 6px)';
50
50
  bottomBar.style.borderTop = '1px solid var(--separator-color, rgba(0, 0, 0, 0.15))';
51
51
 
52
- const addButton = document.createElement('adw-button');
52
+ const addButton = document.createElement('gtk-button');
53
53
  addButton.setAttribute('icon', 'list-add');
54
54
  addButton.setAttribute('flat', '');
55
55
  addButton.setAttribute('tooltip', 'Add');
56
56
 
57
- const removeButton = document.createElement('adw-button');
57
+ const removeButton = document.createElement('gtk-button');
58
58
  removeButton.setAttribute('icon', 'list-remove');
59
59
  removeButton.setAttribute('flat', '');
60
60
  removeButton.setAttribute('tooltip', 'Remove');
@@ -64,7 +64,7 @@ export class ToolbarViewWebStory extends StoryElement {
64
64
  selectionLabel.style.flex = '1 1 auto';
65
65
  selectionLabel.style.textAlign = 'center';
66
66
 
67
- const shareButton = document.createElement('adw-button');
67
+ const shareButton = document.createElement('gtk-button');
68
68
  shareButton.setAttribute('icon', 'send-to');
69
69
  shareButton.setAttribute('flat', '');
70
70
  shareButton.setAttribute('tooltip', 'Share');
@@ -21,7 +21,7 @@ export class WrapBoxWebStory extends StoryElement {
21
21
  this._wrap.style.width = '460px';
22
22
 
23
23
  for (const tag of TAGS) {
24
- const chip = document.createElement('adw-button');
24
+ const chip = document.createElement('gtk-button');
25
25
  chip.setAttribute('label', tag);
26
26
  chip.setAttribute('pill', '');
27
27
  this._wrap.append(chip);
@@ -5,7 +5,7 @@ import { bottomSheetMeta } from '../../navigation/bottom-sheet.meta.js';
5
5
 
6
6
  /** GTK symbolic name (e.g. "list-add-symbolic") → adwaita-web icon class. */
7
7
  function iconClass(gtkName: string): string {
8
- return `adw-icon adw-icon--${gtkName.replace(/-symbolic$/, '')}`;
8
+ return `gtk-image adw-icon--${gtkName.replace(/-symbolic$/, '')}`;
9
9
  }
10
10
 
11
11
  export class BottomSheetWebStory extends StoryElement {
@@ -30,7 +30,7 @@ export class BottomSheetWebStory extends StoryElement {
30
30
  center.style.width = '100%';
31
31
  center.style.height = '100%';
32
32
 
33
- const toggle = document.createElement('adw-button');
33
+ const toggle = document.createElement('gtk-button');
34
34
  toggle.textContent = 'Toggle sheet';
35
35
  toggle.setAttribute('pill', '');
36
36
  toggle.setAttribute('suggested', '');
@@ -6,7 +6,7 @@ import { navigationSplitViewMeta } from '../../navigation/navigation-split-view.
6
6
 
7
7
  /** GTK symbolic name (e.g. "folder-symbolic") → adwaita-web icon class. */
8
8
  function iconClass(gtkName: string): string {
9
- return `adw-icon adw-icon--${gtkName.replace(/-symbolic$/, '')}`;
9
+ return `gtk-image adw-icon--${gtkName.replace(/-symbolic$/, '')}`;
10
10
  }
11
11
 
12
12
  export class NavigationSplitViewWebStory extends StoryElement {
@@ -56,7 +56,7 @@ export class NavigationViewWebStory extends StoryElement {
56
56
  this._rootTitle.setAttribute('title', this.args.rootTitle as string);
57
57
  this._rootTitle.setAttribute('slot', 'center');
58
58
 
59
- const openButton = document.createElement('adw-button');
59
+ const openButton = document.createElement('gtk-button');
60
60
  openButton.setAttribute('label', 'Open contact');
61
61
  openButton.setAttribute('pill', '');
62
62
  openButton.setAttribute('suggested', '');
@@ -75,7 +75,7 @@ export class SidebarWebStory extends StoryElement {
75
75
  const item = this.items[selected] ?? this.items[0];
76
76
  this._status.setAttribute('title', item.title);
77
77
  // adw-status-page's `icon` attribute is a plain symbolic name (it strips
78
- // -symbolic and builds the adw-icon class itself).
78
+ // -symbolic and builds the gtk-image class itself).
79
79
  this._status.setAttribute('icon', item.icon.replace(/-symbolic$/, ''));
80
80
  this._status.setAttribute('description', item.subtitle);
81
81
  }
@@ -18,7 +18,7 @@ export class StatusPageWebStory extends StoryElement {
18
18
  this._page = document.createElement('adw-status-page');
19
19
 
20
20
  // Suggested-action pill button, matching the native story's child.
21
- const button = document.createElement('adw-button');
21
+ const button = document.createElement('gtk-button');
22
22
  button.setAttribute('label', 'New Document');
23
23
  button.setAttribute('pill', '');
24
24
  button.setAttribute('suggested', '');
@@ -5,7 +5,7 @@ import { actionRowMeta } from '../../rows/action-row.meta.js';
5
5
 
6
6
  /** GTK symbolic name (e.g. "folder-symbolic") → adwaita-web icon class. */
7
7
  function iconClass(gtkName: string): string {
8
- return `adw-icon adw-icon--${gtkName.replace(/-symbolic$/, '')}`;
8
+ return `gtk-image adw-icon--${gtkName.replace(/-symbolic$/, '')}`;
9
9
  }
10
10
 
11
11
  export class ActionRowWebStory extends StoryElement {
@@ -27,7 +27,7 @@ export class ActionRowWebStory extends StoryElement {
27
27
  this._icon.setAttribute('slot', 'prefix');
28
28
  this._icon.className = iconClass(this.args.iconName as string);
29
29
 
30
- const button = document.createElement('adw-button');
30
+ const button = document.createElement('gtk-button');
31
31
  button.setAttribute('slot', 'suffix');
32
32
  button.setAttribute('icon', 'go-next');
33
33
  button.setAttribute('flat', '');
@@ -5,11 +5,11 @@ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } fro
5
5
  // TYPE-ONLY: the bar is driven through `setStack()`/`reveal`, not attributes, and a
6
6
  // hand-written structural interface here would be a second copy of that API that
7
7
  // nothing keeps in step. The import erases, so the bundle keeps no edge to the package.
8
- import type { AdwViewStack, AdwViewSwitcherBar } from '@gjsify/adwaita-web';
8
+ import type { Adw } from '@gjsify/adwaita-web';
9
9
  import { VIEW_SWITCHER_BAR_PAGES, viewSwitcherBarMeta } from '../../view-switching/view-switcher-bar.meta.js';
10
10
 
11
11
  export class ViewSwitcherBarWebStory extends StoryElement {
12
- private _bar: AdwViewSwitcherBar | null = null;
12
+ private _bar: Adw.ViewSwitcherBar | null = null;
13
13
 
14
14
  constructor() {
15
15
  super(ViewSwitcherBarWebStory.getMetadata(), 'Default');
@@ -20,7 +20,7 @@ export class ViewSwitcherBarWebStory extends StoryElement {
20
20
  }
21
21
 
22
22
  initialize(): void {
23
- const stack = document.createElement('adw-view-stack') as AdwViewStack;
23
+ const stack = document.createElement('adw-view-stack') as Adw.ViewStack;
24
24
  stack.style.flex = '1';
25
25
  for (const page of VIEW_SWITCHER_BAR_PAGES) {
26
26
  const status = document.createElement('adw-status-page');
@@ -35,7 +35,7 @@ export class ViewSwitcherBarWebStory extends StoryElement {
35
35
  stack.appendChild(child);
36
36
  }
37
37
 
38
- const bar = document.createElement('adw-view-switcher-bar') as AdwViewSwitcherBar;
38
+ const bar = document.createElement('adw-view-switcher-bar') as Adw.ViewSwitcherBar;
39
39
  bar.setAttribute('slot', 'bottom');
40
40
 
41
41
  // A toolbar view, so the bar sits where libadwaita puts it — at the bottom
@@ -1,9 +1,9 @@
1
1
  // Adw.ButtonContent — an icon-plus-label child for a Gtk.Button, with optional
2
2
  // shrinking. original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { buttonContentMeta } from './button-content.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Gtk.Button style classes — .pill, .circular, .suggested-action,
2
2
  // .destructive-action, .flat. original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { buttonStylesMeta } from './button-styles.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Gtk.MenuButton — a button whose only job is to open a menu.
2
2
  // original implementation.
3
3
 
4
- import Gio from '@girs/gio-2.0';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Gio from 'gi://Gio?version=2.0';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { MENU_BUTTON_ITEMS, menuButtonMeta } from './menu-button.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.SplitButton — a button with a main action plus an attached dropdown menu.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gio from '@girs/gio-2.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gio from 'gi://Gio?version=2.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { splitButtonFlatMeta, splitButtonMeta } from './split-button.meta.js';
9
9
 
@@ -1,8 +1,8 @@
1
1
  // Adw.ToggleGroup — a linked set of Adw.Toggle buttons with a single active item.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import GObject from 'gi://GObject?version=2.0';
6
6
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
7
7
  import { toggleGroupMeta } from './toggle-group.meta.js';
8
8
 
@@ -1,8 +1,8 @@
1
1
  // Gtk.DropDown — pick one value from a list, shown in a popover.
2
2
  // original implementation.
3
3
 
4
- import Gtk from '@girs/gtk-4.0';
5
- import GObject from '@girs/gobject-2.0';
4
+ import Gtk from 'gi://Gtk?version=4.0';
5
+ import GObject from 'gi://GObject?version=2.0';
6
6
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
7
7
  import { DROP_DOWN_OPTIONS, dropDownMeta } from './drop-down.meta.js';
8
8
 
@@ -1,8 +1,8 @@
1
1
  // Gtk.Entry — the single-line text field the Adwaita stylesheet dresses.
2
2
  // original implementation.
3
3
 
4
- import Gtk from '@girs/gtk-4.0';
5
- import GObject from '@girs/gobject-2.0';
4
+ import Gtk from 'gi://Gtk?version=4.0';
5
+ import GObject from 'gi://GObject?version=2.0';
6
6
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
7
7
  import { entryMeta } from './entry.meta.js';
8
8
 
@@ -1,9 +1,9 @@
1
1
  // Adw.AboutDialog — the standard Adwaita "About" window for an application.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { aboutDialogMeta } from './about-dialog.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.AlertDialog — a modal dialog with a heading, body and a row of responses.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { alertDialogMeta } from './alert-dialog.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.PreferencesDialog — a multi-page preferences window built from pages,
2
2
  // groups and rows. original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { preferencesDialogMeta } from './preferences-dialog.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.Toast — a transient notification shown over content via Adw.ToastOverlay.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { toastMeta } from './toast.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.Clamp — constrains its child to a maximum size, centring it within wider space.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { clampMeta } from './clamp.meta.js';
9
9
 
@@ -1,10 +1,10 @@
1
1
  // Adw.HeaderBar — a window header bar with a custom title widget and packed buttons.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import Gio from '@girs/gio-2.0';
7
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import Gio from 'gi://Gio?version=2.0';
7
+ import GObject from 'gi://GObject?version=2.0';
8
8
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
9
9
  import { headerBarMeta } from './header-bar.meta.js';
10
10
 
@@ -1,9 +1,9 @@
1
1
  // Adw.ToolbarView — wraps content between revealable top and bottom toolbars.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { toolbarViewMeta } from './toolbar-view.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.WrapBox — a box that lays children out in a line, wrapping onto new lines as needed.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { wrapBoxMeta } from './wrap-box.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.BottomSheet — a content area with a sheet that slides up from the bottom.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { bottomSheetMeta } from './bottom-sheet.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.NavigationSplitView — a two-pane sidebar/content split that collapses
2
2
  // into a single navigation stack. original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { navigationSplitViewMeta } from './navigation-split-view.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.NavigationView — a stack of navigation pages with push/pop and an
2
2
  // automatic back button. original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { navigationViewMeta } from './navigation-view.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.OverlaySplitView — a sidebar that sits beside the content, or overlays it
2
2
  // when collapsed. original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { overlaySplitViewMeta } from './overlay-split-view.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // Adw.Sidebar — a selectable navigation sidebar built from sections of items.
2
2
  // original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import { sidebarMeta } from './sidebar.meta.js';
9
9
 
@@ -1,9 +1,9 @@
1
1
  // The Overview story on GTK — the widget gallery that used to be
2
2
  // `examples/gtk/adwaita-reference`. original implementation.
3
3
 
4
- import Adw from '@girs/adw-1';
5
- import Gtk from '@girs/gtk-4.0';
6
- import GObject from '@girs/gobject-2.0';
4
+ import Adw from 'gi://Adw?version=1';
5
+ import Gtk from 'gi://Gtk?version=4.0';
6
+ import GObject from 'gi://GObject?version=2.0';
7
7
  import { type StoryArgs, type StoryMeta, type StoryModule, StoryWidget } from '@gjsify/storybook';
8
8
  import {
9
9
  OVERVIEW_ACCENT_OPTIONS,