@gjsify/example-gtk-adwaita-storybook 0.53.0 → 0.55.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 (243) hide show
  1. package/dist/browser-main.js +8093 -3042
  2. package/dist/gjs.js +15 -10
  3. package/dist/gjs.node.mjs +10 -5
  4. package/package.json +5 -5
  5. package/src/browser/buttons/color-dialog-button.web.ts +42 -0
  6. package/src/browser/buttons/font-dialog-button.web.ts +42 -0
  7. package/src/browser/buttons/link-button.web.ts +37 -0
  8. package/src/browser/buttons/scale-button.web.ts +36 -0
  9. package/src/browser/buttons/toggle-button.web.ts +35 -0
  10. package/src/browser/controls/check-button.web.ts +38 -0
  11. package/src/browser/controls/gtk-spinner.web.ts +39 -0
  12. package/src/browser/controls/level-bar.web.ts +43 -0
  13. package/src/browser/controls/password-entry.web.ts +36 -0
  14. package/src/browser/controls/progress-bar.web.ts +39 -0
  15. package/src/browser/controls/scale.web.ts +44 -0
  16. package/src/browser/controls/search-entry.web.ts +49 -0
  17. package/src/browser/controls/spin-button.web.ts +40 -0
  18. package/src/browser/controls/switch.web.ts +38 -0
  19. package/src/browser/drawing/drag-icon.web.ts +112 -0
  20. package/src/browser/drawing/drawing-area.web.ts +66 -0
  21. package/src/browser/drawing/gl-area.web.ts +162 -0
  22. package/src/browser/drawing/graphics-offload.web.ts +74 -0
  23. package/src/browser/feedback/dialog.web.ts +76 -0
  24. package/src/browser/feedback/emoji-chooser.web.ts +93 -0
  25. package/src/browser/feedback/gtk-about-dialog.web.ts +105 -0
  26. package/src/browser/feedback/page-setup-unix-dialog.web.ts +93 -0
  27. package/src/browser/feedback/print-unix-dialog.web.ts +111 -0
  28. package/src/browser/feedback/shortcuts-dialog.web.ts +90 -0
  29. package/src/browser/layout/application-window.web.ts +94 -0
  30. package/src/browser/layout/aspect-frame.web.ts +49 -0
  31. package/src/browser/layout/bin.web.ts +41 -0
  32. package/src/browser/layout/breakpoint-bin.web.ts +61 -0
  33. package/src/browser/layout/center-box.web.ts +45 -0
  34. package/src/browser/layout/clamp-scrollable.web.ts +47 -0
  35. package/src/browser/layout/expander.web.ts +52 -0
  36. package/src/browser/layout/fixed.web.ts +51 -0
  37. package/src/browser/layout/frame.web.ts +40 -0
  38. package/src/browser/layout/grid.web.ts +46 -0
  39. package/src/browser/layout/layout-slot.web.ts +60 -0
  40. package/src/browser/layout/multi-layout-view.web.ts +94 -0
  41. package/src/browser/layout/overlay.web.ts +57 -0
  42. package/src/browser/layout/paned.web.ts +69 -0
  43. package/src/browser/layout/popover-bin.web.ts +54 -0
  44. package/src/browser/layout/popover-menu.web.ts +48 -0
  45. package/src/browser/layout/popover.web.ts +61 -0
  46. package/src/browser/layout/revealer.web.ts +53 -0
  47. package/src/browser/layout/scrollbar.web.ts +54 -0
  48. package/src/browser/layout/scrolled-window.web.ts +52 -0
  49. package/src/browser/layout/separator.web.ts +47 -0
  50. package/src/browser/layout/viewport.web.ts +51 -0
  51. package/src/browser/layout/window.web.ts +60 -0
  52. package/src/browser/media/image.web.ts +39 -0
  53. package/src/browser/media/inscription.web.ts +52 -0
  54. package/src/browser/media/media-controls.web.ts +65 -0
  55. package/src/browser/media/picture.web.ts +56 -0
  56. package/src/browser/media/video.web.ts +56 -0
  57. package/src/browser/navigation/popover-menu-bar.web.ts +40 -0
  58. package/src/browser/presentation/calendar.web.ts +49 -0
  59. package/src/browser/presentation/column-view.web.ts +45 -0
  60. package/src/browser/presentation/flow-box.web.ts +52 -0
  61. package/src/browser/presentation/grid-view.web.ts +37 -0
  62. package/src/browser/presentation/list-box.web.ts +48 -0
  63. package/src/browser/presentation/list-view.web.ts +36 -0
  64. package/src/browser/presentation/tree-expander.web.ts +68 -0
  65. package/src/browser/presentation/window-handle.web.ts +42 -0
  66. package/src/browser/rows/preferences-row.web.ts +43 -0
  67. package/src/browser/stories.ts +158 -0
  68. package/src/browser/text/editable-label.web.ts +45 -0
  69. package/src/browser/text/search-bar.web.ts +45 -0
  70. package/src/browser/text/text-view.web.ts +54 -0
  71. package/src/browser/text/text.web.ts +48 -0
  72. package/src/browser/view-switching/notebook.web.ts +67 -0
  73. package/src/browser/view-switching/stack-sidebar.web.ts +68 -0
  74. package/src/browser/view-switching/stack-switcher.web.ts +70 -0
  75. package/src/browser/view-switching/stack.web.ts +72 -0
  76. package/src/browser/view-switching/tab-bar.web.ts +105 -0
  77. package/src/browser/view-switching/tab-button.web.ts +52 -0
  78. package/src/browser/view-switching/tab-overview.web.ts +87 -0
  79. package/src/browser/view-switching/view-switcher-sidebar.web.ts +77 -0
  80. package/src/browser/windows/action-bar.web.ts +66 -0
  81. package/src/browser/windows/gtk-application-window.web.ts +67 -0
  82. package/src/browser/windows/gtk-header-bar.web.ts +61 -0
  83. package/src/browser/windows/gtk-window.web.ts +58 -0
  84. package/src/browser/windows/window-controls.web.ts +54 -0
  85. package/src/buttons/color-dialog-button.meta.ts +16 -0
  86. package/src/buttons/color-dialog-button.story.ts +49 -0
  87. package/src/buttons/font-dialog-button.meta.ts +29 -0
  88. package/src/buttons/font-dialog-button.story.ts +52 -0
  89. package/src/buttons/link-button.meta.ts +18 -0
  90. package/src/buttons/link-button.story.ts +48 -0
  91. package/src/buttons/scale-button.meta.ts +34 -0
  92. package/src/buttons/scale-button.story.ts +50 -0
  93. package/src/buttons/toggle-button.meta.ts +17 -0
  94. package/src/buttons/toggle-button.story.ts +46 -0
  95. package/src/controls/check-button.meta.ts +19 -0
  96. package/src/controls/check-button.story.ts +56 -0
  97. package/src/controls/gtk-spinner.meta.ts +24 -0
  98. package/src/controls/gtk-spinner.story.ts +53 -0
  99. package/src/controls/level-bar.meta.ts +39 -0
  100. package/src/controls/level-bar.story.ts +58 -0
  101. package/src/controls/password-entry.meta.ts +18 -0
  102. package/src/controls/password-entry.story.ts +54 -0
  103. package/src/controls/progress-bar.meta.ts +20 -0
  104. package/src/controls/progress-bar.story.ts +53 -0
  105. package/src/controls/scale.meta.ts +47 -0
  106. package/src/controls/scale.story.ts +66 -0
  107. package/src/controls/search-entry.meta.ts +18 -0
  108. package/src/controls/search-entry.story.ts +57 -0
  109. package/src/controls/spin-button.meta.ts +40 -0
  110. package/src/controls/spin-button.story.ts +55 -0
  111. package/src/controls/switch.meta.ts +18 -0
  112. package/src/controls/switch.story.ts +50 -0
  113. package/src/drawing/drag-icon.meta.ts +39 -0
  114. package/src/drawing/drag-icon.story.ts +117 -0
  115. package/src/drawing/drawing-area.meta.ts +45 -0
  116. package/src/drawing/drawing-area.story.ts +78 -0
  117. package/src/drawing/gl-area.meta.ts +30 -0
  118. package/src/drawing/gl-area.story.ts +113 -0
  119. package/src/drawing/graphics-offload.meta.ts +39 -0
  120. package/src/drawing/graphics-offload.story.ts +73 -0
  121. package/src/feedback/dialog.meta.ts +25 -0
  122. package/src/feedback/dialog.story.ts +78 -0
  123. package/src/feedback/emoji-chooser.meta.ts +10 -0
  124. package/src/feedback/emoji-chooser.story.ts +98 -0
  125. package/src/feedback/gtk-about-dialog.meta.ts +29 -0
  126. package/src/feedback/gtk-about-dialog.story.ts +90 -0
  127. package/src/feedback/page-setup-unix-dialog.meta.ts +37 -0
  128. package/src/feedback/page-setup-unix-dialog.story.ts +70 -0
  129. package/src/feedback/print-unix-dialog.meta.ts +30 -0
  130. package/src/feedback/print-unix-dialog.story.ts +93 -0
  131. package/src/feedback/shortcuts-dialog.meta.ts +12 -0
  132. package/src/feedback/shortcuts-dialog.story.ts +79 -0
  133. package/src/layout/application-window.meta.ts +16 -0
  134. package/src/layout/application-window.story.ts +97 -0
  135. package/src/layout/aspect-frame.meta.ts +19 -0
  136. package/src/layout/aspect-frame.story.ts +62 -0
  137. package/src/layout/bin.meta.ts +15 -0
  138. package/src/layout/bin.story.ts +56 -0
  139. package/src/layout/breakpoint-bin.meta.ts +38 -0
  140. package/src/layout/breakpoint-bin.story.ts +62 -0
  141. package/src/layout/center-box.meta.ts +26 -0
  142. package/src/layout/center-box.story.ts +54 -0
  143. package/src/layout/clamp-scrollable.meta.ts +30 -0
  144. package/src/layout/clamp-scrollable.story.ts +51 -0
  145. package/src/layout/expander.meta.ts +30 -0
  146. package/src/layout/expander.story.ts +62 -0
  147. package/src/layout/fixed.meta.ts +16 -0
  148. package/src/layout/fixed.story.ts +54 -0
  149. package/src/layout/frame.meta.ts +24 -0
  150. package/src/layout/frame.story.ts +51 -0
  151. package/src/layout/grid.meta.ts +45 -0
  152. package/src/layout/grid.story.ts +80 -0
  153. package/src/layout/layout-slot.meta.ts +22 -0
  154. package/src/layout/layout-slot.story.ts +68 -0
  155. package/src/layout/multi-layout-view.meta.ts +31 -0
  156. package/src/layout/multi-layout-view.story.ts +101 -0
  157. package/src/layout/overlay.meta.ts +42 -0
  158. package/src/layout/overlay.story.ts +72 -0
  159. package/src/layout/paned.meta.ts +45 -0
  160. package/src/layout/paned.story.ts +70 -0
  161. package/src/layout/popover-bin.meta.ts +29 -0
  162. package/src/layout/popover-bin.story.ts +66 -0
  163. package/src/layout/popover-menu.meta.ts +54 -0
  164. package/src/layout/popover-menu.story.ts +119 -0
  165. package/src/layout/popover.meta.ts +38 -0
  166. package/src/layout/popover.story.ts +66 -0
  167. package/src/layout/revealer.meta.ts +44 -0
  168. package/src/layout/revealer.story.ts +79 -0
  169. package/src/layout/scrollbar.meta.ts +33 -0
  170. package/src/layout/scrollbar.story.ts +61 -0
  171. package/src/layout/scrolled-window.meta.ts +57 -0
  172. package/src/layout/scrolled-window.story.ts +74 -0
  173. package/src/layout/separator.meta.ts +25 -0
  174. package/src/layout/separator.story.ts +53 -0
  175. package/src/layout/viewport.meta.ts +19 -0
  176. package/src/layout/viewport.story.ts +53 -0
  177. package/src/layout/window.meta.ts +13 -0
  178. package/src/layout/window.story.ts +66 -0
  179. package/src/media/image.meta.ts +24 -0
  180. package/src/media/image.story.ts +48 -0
  181. package/src/media/inscription.meta.ts +45 -0
  182. package/src/media/inscription.story.ts +64 -0
  183. package/src/media/media-controls.meta.ts +30 -0
  184. package/src/media/media-controls.story.ts +58 -0
  185. package/src/media/picture.meta.ts +42 -0
  186. package/src/media/picture.story.ts +81 -0
  187. package/src/media/video.meta.ts +32 -0
  188. package/src/media/video.story.ts +57 -0
  189. package/src/metas.ts +79 -0
  190. package/src/navigation/popover-menu-bar.meta.ts +51 -0
  191. package/src/navigation/popover-menu-bar.story.ts +72 -0
  192. package/src/presentation/calendar.meta.ts +28 -0
  193. package/src/presentation/calendar.story.ts +64 -0
  194. package/src/presentation/column-view.meta.ts +30 -0
  195. package/src/presentation/column-view.story.ts +73 -0
  196. package/src/presentation/flow-box.meta.ts +51 -0
  197. package/src/presentation/flow-box.story.ts +72 -0
  198. package/src/presentation/grid-view.meta.ts +28 -0
  199. package/src/presentation/grid-view.story.ts +64 -0
  200. package/src/presentation/list-box.meta.ts +55 -0
  201. package/src/presentation/list-box.story.ts +68 -0
  202. package/src/presentation/list-view.meta.ts +38 -0
  203. package/src/presentation/list-view.story.ts +73 -0
  204. package/src/presentation/tree-expander.meta.ts +24 -0
  205. package/src/presentation/tree-expander.story.ts +105 -0
  206. package/src/presentation/window-handle.meta.ts +27 -0
  207. package/src/presentation/window-handle.story.ts +53 -0
  208. package/src/rows/preferences-row.meta.ts +15 -0
  209. package/src/rows/preferences-row.story.ts +50 -0
  210. package/src/text/editable-label.meta.ts +17 -0
  211. package/src/text/editable-label.story.ts +47 -0
  212. package/src/text/search-bar.meta.ts +17 -0
  213. package/src/text/search-bar.story.ts +48 -0
  214. package/src/text/text-view.meta.ts +49 -0
  215. package/src/text/text-view.story.ts +69 -0
  216. package/src/text/text.meta.ts +21 -0
  217. package/src/text/text.story.ts +50 -0
  218. package/src/view-switching/notebook.meta.ts +44 -0
  219. package/src/view-switching/notebook.story.ts +77 -0
  220. package/src/view-switching/stack-sidebar.meta.ts +50 -0
  221. package/src/view-switching/stack-sidebar.story.ts +85 -0
  222. package/src/view-switching/stack-switcher.meta.ts +53 -0
  223. package/src/view-switching/stack-switcher.story.ts +95 -0
  224. package/src/view-switching/stack.meta.ts +53 -0
  225. package/src/view-switching/stack.story.ts +95 -0
  226. package/src/view-switching/tab-bar.meta.ts +22 -0
  227. package/src/view-switching/tab-bar.story.ts +85 -0
  228. package/src/view-switching/tab-button.meta.ts +14 -0
  229. package/src/view-switching/tab-button.story.ts +52 -0
  230. package/src/view-switching/tab-overview.meta.ts +21 -0
  231. package/src/view-switching/tab-overview.story.ts +86 -0
  232. package/src/view-switching/view-switcher-sidebar.meta.ts +42 -0
  233. package/src/view-switching/view-switcher-sidebar.story.ts +73 -0
  234. package/src/windows/action-bar.meta.ts +27 -0
  235. package/src/windows/action-bar.story.ts +65 -0
  236. package/src/windows/gtk-application-window.meta.ts +27 -0
  237. package/src/windows/gtk-application-window.story.ts +89 -0
  238. package/src/windows/gtk-header-bar.meta.ts +39 -0
  239. package/src/windows/gtk-header-bar.story.ts +76 -0
  240. package/src/windows/gtk-window.meta.ts +30 -0
  241. package/src/windows/gtk-window.story.ts +64 -0
  242. package/src/windows/window-controls.meta.ts +42 -0
  243. package/src/windows/window-controls.story.ts +61 -0
@@ -19,9 +19,17 @@ import type { WebStoryModule } from '@gjsify/adwaita-storybook';
19
19
  import { OverviewWidgetsWebStories } from './overview/widgets.web.js';
20
20
  import { AvatarWebStories } from './presentation/avatar.web.js';
21
21
  import { BannerWebStories } from './presentation/banner.web.js';
22
+ import { CalendarWebStories } from './presentation/calendar.web.js';
23
+ import { ColumnViewWebStories } from './presentation/column-view.web.js';
24
+ import { FlowBoxWebStories } from './presentation/flow-box.web.js';
25
+ import { GridViewWebStories } from './presentation/grid-view.web.js';
26
+ import { ListBoxWebStories } from './presentation/list-box.web.js';
27
+ import { ListViewWebStories } from './presentation/list-view.web.js';
22
28
  import { ShortcutLabelWebStories } from './presentation/shortcut-label.web.js';
23
29
  import { SpinnerWebStories } from './presentation/spinner.web.js';
24
30
  import { StatusPageWebStories } from './presentation/status-page.web.js';
31
+ import { TreeExpanderWebStories } from './presentation/tree-expander.web.js';
32
+ import { WindowHandleWebStories } from './presentation/window-handle.web.js';
25
33
  import { WindowTitleWebStories } from './presentation/window-title.web.js';
26
34
  import { ActionRowWebStories } from './rows/action-row.web.js';
27
35
  import { ButtonRowWebStories } from './rows/button-row.web.js';
@@ -30,21 +38,75 @@ import { EntryRowWebStories } from './rows/entry-row.web.js';
30
38
  import { ExpanderRowWebStories } from './rows/expander-row.web.js';
31
39
  import { PasswordEntryRowWebStories } from './rows/password-entry-row.web.js';
32
40
  import { PreferencesGroupWebStories } from './rows/preferences-group.web.js';
41
+ import { PreferencesRowWebStories } from './rows/preferences-row.web.js';
33
42
  import { SpinRowWebStories } from './rows/spin-row.web.js';
34
43
  import { SwitchRowWebStories } from './rows/switch-row.web.js';
44
+ import { DragIconWebStories } from './drawing/drag-icon.web.js';
45
+ import { DrawingAreaWebStories } from './drawing/drawing-area.web.js';
46
+ import { GLAreaWebStories } from './drawing/gl-area.web.js';
47
+ import { GraphicsOffloadWebStories } from './drawing/graphics-offload.web.js';
48
+ import { CheckButtonWebStories } from './controls/check-button.web.js';
35
49
  import { DropDownWebStories } from './controls/drop-down.web.js';
36
50
  import { EntryWebStories } from './controls/entry.web.js';
51
+ import { GtkSpinnerWebStories } from './controls/gtk-spinner.web.js';
52
+ import { LevelBarWebStories } from './controls/level-bar.web.js';
53
+ import { PasswordEntryWebStories } from './controls/password-entry.web.js';
54
+ import { ProgressBarWebStories } from './controls/progress-bar.web.js';
55
+ import { ScaleWebStories } from './controls/scale.web.js';
56
+ import { SearchEntryWebStories } from './controls/search-entry.web.js';
57
+ import { SpinButtonWebStories } from './controls/spin-button.web.js';
58
+ import { SwitchWebStories } from './controls/switch.web.js';
59
+ import { ExpanderWebStories } from './layout/expander.web.js';
60
+ import { OverlayWebStories } from './layout/overlay.web.js';
61
+ import { PanedWebStories } from './layout/paned.web.js';
62
+ import { RevealerWebStories } from './layout/revealer.web.js';
63
+ import { ScrollbarWebStories } from './layout/scrollbar.web.js';
64
+ import { ScrolledWindowWebStories } from './layout/scrolled-window.web.js';
65
+ import { SeparatorWebStories } from './layout/separator.web.js';
66
+ import { BreakpointBinWebStories } from './layout/breakpoint-bin.web.js';
67
+ import { LayoutSlotWebStories } from './layout/layout-slot.web.js';
68
+ import { MultiLayoutViewWebStories } from './layout/multi-layout-view.web.js';
69
+ import { EditableLabelWebStories } from './text/editable-label.web.js';
70
+ import { SearchBarWebStories } from './text/search-bar.web.js';
71
+ import { TextViewWebStories } from './text/text-view.web.js';
72
+ import { TextWebStories } from './text/text.web.js';
73
+ import { AspectFrameWebStories } from './layout/aspect-frame.web.js';
74
+ import { CenterBoxWebStories } from './layout/center-box.web.js';
75
+ import { FixedWebStories } from './layout/fixed.web.js';
76
+ import { FrameWebStories } from './layout/frame.web.js';
77
+ import { GridWebStories } from './layout/grid.web.js';
78
+ import { ToggleButtonWebStories } from './buttons/toggle-button.web.js';
79
+ import { ColorDialogButtonWebStories } from './buttons/color-dialog-button.web.js';
80
+ import { FontDialogButtonWebStories } from './buttons/font-dialog-button.web.js';
81
+ import { LinkButtonWebStories } from './buttons/link-button.web.js';
82
+ import { ScaleButtonWebStories } from './buttons/scale-button.web.js';
37
83
  import { ButtonContentWebStories } from './buttons/button-content.web.js';
38
84
  import { ButtonStylesWebStories } from './buttons/button-styles.web.js';
39
85
  import { MenuButtonWebStories } from './buttons/menu-button.web.js';
40
86
  import { SplitButtonWebStories } from './buttons/split-button.web.js';
41
87
  import { ToggleGroupWebStories } from './buttons/toggle-group.web.js';
88
+ import { BinWebStories } from './layout/bin.web.js';
89
+ import { ClampScrollableWebStories } from './layout/clamp-scrollable.web.js';
42
90
  import { ClampWebStories } from './layout/clamp.web.js';
43
91
  import { HeaderBarWebStories } from './layout/header-bar.web.js';
92
+ import { PopoverBinWebStories } from './layout/popover-bin.web.js';
93
+ import { PopoverMenuWebStories } from './layout/popover-menu.web.js';
94
+ import { PopoverWebStories } from './layout/popover.web.js';
44
95
  import { ToolbarViewWebStories } from './layout/toolbar-view.web.js';
96
+ import { ViewportWebStories } from './layout/viewport.web.js';
97
+ import { ApplicationWindowWebStories } from './layout/application-window.web.js';
98
+ import { WindowWebStories } from './layout/window.web.js';
45
99
  import { WrapBoxWebStories } from './layout/wrap-box.web.js';
46
100
  import { CarouselWebStories } from './view-switching/carousel.web.js';
47
101
  import { InlineViewSwitcherWebStories } from './view-switching/inline-view-switcher.web.js';
102
+ import { NotebookWebStories } from './view-switching/notebook.web.js';
103
+ import { StackSidebarWebStories } from './view-switching/stack-sidebar.web.js';
104
+ import { StackSwitcherWebStories } from './view-switching/stack-switcher.web.js';
105
+ import { StackWebStories } from './view-switching/stack.web.js';
106
+ import { TabBarWebStories } from './view-switching/tab-bar.web.js';
107
+ import { TabButtonWebStories } from './view-switching/tab-button.web.js';
108
+ import { TabOverviewWebStories } from './view-switching/tab-overview.web.js';
109
+ import { ViewSwitcherSidebarWebStories } from './view-switching/view-switcher-sidebar.web.js';
48
110
  import { TabViewWebStories } from './view-switching/tab-view.web.js';
49
111
  import { ViewSwitcherWebStories } from './view-switching/view-switcher.web.js';
50
112
  import { ViewSwitcherBarWebStories } from './view-switching/view-switcher-bar.web.js';
@@ -52,19 +114,43 @@ import { BottomSheetWebStories } from './navigation/bottom-sheet.web.js';
52
114
  import { NavigationSplitViewWebStories } from './navigation/navigation-split-view.web.js';
53
115
  import { NavigationViewWebStories } from './navigation/navigation-view.web.js';
54
116
  import { OverlaySplitViewWebStories } from './navigation/overlay-split-view.web.js';
117
+ import { PopoverMenuBarWebStories } from './navigation/popover-menu-bar.web.js';
118
+ import { ImageWebStories } from './media/image.web.js';
119
+ import { InscriptionWebStories } from './media/inscription.web.js';
120
+ import { MediaControlsWebStories } from './media/media-controls.web.js';
121
+ import { PictureWebStories } from './media/picture.web.js';
122
+ import { VideoWebStories } from './media/video.web.js';
55
123
  import { SidebarWebStories } from './navigation/sidebar.web.js';
56
124
  import { AboutDialogWebStories } from './feedback/about-dialog.web.js';
57
125
  import { AlertDialogWebStories } from './feedback/alert-dialog.web.js';
126
+ import { DialogWebStories } from './feedback/dialog.web.js';
127
+ import { EmojiChooserWebStories } from './feedback/emoji-chooser.web.js';
128
+ import { GtkAboutDialogWebStories } from './feedback/gtk-about-dialog.web.js';
129
+ import { PageSetupUnixDialogWebStories } from './feedback/page-setup-unix-dialog.web.js';
130
+ import { PrintUnixDialogWebStories } from './feedback/print-unix-dialog.web.js';
58
131
  import { PreferencesDialogWebStories } from './feedback/preferences-dialog.web.js';
132
+ import { ShortcutsDialogWebStories } from './feedback/shortcuts-dialog.web.js';
59
133
  import { ToastWebStories } from './feedback/toast.web.js';
134
+ import { ActionBarWebStories } from './windows/action-bar.web.js';
135
+ import { GtkApplicationWindowWebStories } from './windows/gtk-application-window.web.js';
136
+ import { GtkHeaderBarWebStories } from './windows/gtk-header-bar.web.js';
137
+ import { GtkWindowWebStories } from './windows/gtk-window.web.js';
138
+ import { WindowControlsWebStories } from './windows/window-controls.web.js';
60
139
 
61
140
  export const stories: WebStoryModule[] = [
62
141
  OverviewWidgetsWebStories,
63
142
  AvatarWebStories,
64
143
  BannerWebStories,
144
+ CalendarWebStories,
145
+ ColumnViewWebStories,
146
+ FlowBoxWebStories,
147
+ GridViewWebStories,
148
+ ListBoxWebStories,
149
+ ListViewWebStories,
65
150
  ShortcutLabelWebStories,
66
151
  SpinnerWebStories,
67
152
  StatusPageWebStories,
153
+ TreeExpanderWebStories,
68
154
  WindowTitleWebStories,
69
155
  ActionRowWebStories,
70
156
  ButtonRowWebStories,
@@ -73,21 +159,75 @@ export const stories: WebStoryModule[] = [
73
159
  ExpanderRowWebStories,
74
160
  PasswordEntryRowWebStories,
75
161
  PreferencesGroupWebStories,
162
+ PreferencesRowWebStories,
76
163
  SpinRowWebStories,
77
164
  SwitchRowWebStories,
78
165
  EntryWebStories,
79
166
  DropDownWebStories,
167
+ ScaleWebStories,
168
+ SpinButtonWebStories,
169
+ PasswordEntryWebStories,
170
+ SearchEntryWebStories,
171
+ CheckButtonWebStories,
172
+ SwitchWebStories,
173
+ ProgressBarWebStories,
174
+ LevelBarWebStories,
175
+ GtkSpinnerWebStories,
176
+ DragIconWebStories,
177
+ DrawingAreaWebStories,
178
+ GLAreaWebStories,
179
+ GraphicsOffloadWebStories,
80
180
  ButtonContentWebStories,
81
181
  ButtonStylesWebStories,
82
182
  MenuButtonWebStories,
83
183
  SplitButtonWebStories,
184
+ ToggleButtonWebStories,
185
+ ColorDialogButtonWebStories,
186
+ FontDialogButtonWebStories,
187
+ LinkButtonWebStories,
188
+ ScaleButtonWebStories,
84
189
  ToggleGroupWebStories,
190
+ BinWebStories,
191
+ ClampScrollableWebStories,
85
192
  ClampWebStories,
86
193
  HeaderBarWebStories,
194
+ ExpanderWebStories,
195
+ OverlayWebStories,
196
+ PanedWebStories,
197
+ PopoverWebStories,
198
+ PopoverMenuWebStories,
199
+ PopoverBinWebStories,
200
+ RevealerWebStories,
201
+ ScrollbarWebStories,
202
+ ScrolledWindowWebStories,
203
+ SeparatorWebStories,
204
+ BreakpointBinWebStories,
205
+ LayoutSlotWebStories,
206
+ MultiLayoutViewWebStories,
207
+ EditableLabelWebStories,
208
+ TextWebStories,
209
+ TextViewWebStories,
210
+ SearchBarWebStories,
211
+ FrameWebStories,
212
+ AspectFrameWebStories,
213
+ CenterBoxWebStories,
214
+ GridWebStories,
215
+ FixedWebStories,
87
216
  ToolbarViewWebStories,
217
+ ViewportWebStories,
218
+ ApplicationWindowWebStories,
219
+ WindowWebStories,
88
220
  WrapBoxWebStories,
89
221
  CarouselWebStories,
90
222
  InlineViewSwitcherWebStories,
223
+ StackWebStories,
224
+ StackSwitcherWebStories,
225
+ StackSidebarWebStories,
226
+ NotebookWebStories,
227
+ TabBarWebStories,
228
+ TabButtonWebStories,
229
+ TabOverviewWebStories,
230
+ ViewSwitcherSidebarWebStories,
91
231
  TabViewWebStories,
92
232
  ViewSwitcherWebStories,
93
233
  ViewSwitcherBarWebStories,
@@ -95,9 +235,27 @@ export const stories: WebStoryModule[] = [
95
235
  NavigationSplitViewWebStories,
96
236
  NavigationViewWebStories,
97
237
  OverlaySplitViewWebStories,
238
+ PopoverMenuBarWebStories,
98
239
  SidebarWebStories,
240
+ ImageWebStories,
241
+ InscriptionWebStories,
242
+ PictureWebStories,
243
+ VideoWebStories,
244
+ MediaControlsWebStories,
99
245
  AboutDialogWebStories,
100
246
  AlertDialogWebStories,
247
+ DialogWebStories,
248
+ EmojiChooserWebStories,
249
+ GtkAboutDialogWebStories,
250
+ PageSetupUnixDialogWebStories,
101
251
  PreferencesDialogWebStories,
252
+ PrintUnixDialogWebStories,
253
+ ShortcutsDialogWebStories,
102
254
  ToastWebStories,
255
+ GtkHeaderBarWebStories,
256
+ WindowControlsWebStories,
257
+ ActionBarWebStories,
258
+ GtkWindowWebStories,
259
+ GtkApplicationWindowWebStories,
260
+ WindowHandleWebStories,
103
261
  ];
@@ -0,0 +1,45 @@
1
+ // Browser port of the Editable Label story. Shares metadata with editable-label.story.ts.
2
+
3
+ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
4
+ import { editableLabelMeta } from '../../text/editable-label.meta.js';
5
+
6
+ /** The properties the story drives, as `<gtk-editable-label>` spells them. */
7
+ interface EditableLabelControls {
8
+ text: string;
9
+ editable: boolean;
10
+ editing: boolean;
11
+ }
12
+
13
+ export class EditableLabelWebStory extends StoryElement {
14
+ private _label: (HTMLElement & EditableLabelControls) | null = null;
15
+
16
+ constructor() {
17
+ super(EditableLabelWebStory.getMetadata(), 'Default');
18
+ }
19
+
20
+ static getMetadata(): StoryMeta {
21
+ return editableLabelMeta;
22
+ }
23
+
24
+ initialize(): void {
25
+ this._label = document.createElement('gtk-editable-label') as HTMLElement & EditableLabelControls;
26
+ this._label.text = this.args.text as string;
27
+ this._apply();
28
+ this.addContent(this._label);
29
+ }
30
+
31
+ updateArgs(_args: StoryArgs): void {
32
+ this._apply();
33
+ }
34
+
35
+ private _apply(): void {
36
+ if (!this._label) return;
37
+ // The draft lives in the entry, so `text` is written only while nothing is being
38
+ // edited — the order the C keeps them in (gtkeditablelabel.c:237-248).
39
+ if (!this._label.editing) this._label.text = this.args.text as string;
40
+ this._label.editable = this.args.editable as boolean;
41
+ this._label.editing = this.args.editing as boolean;
42
+ }
43
+ }
44
+
45
+ export const EditableLabelWebStories: WebStoryModule = { stories: [EditableLabelWebStory] };
@@ -0,0 +1,45 @@
1
+ // Browser port of the Search Bar story. Shares metadata with search-bar.story.ts.
2
+
3
+ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
4
+ import { searchBarMeta } from '../../text/search-bar.meta.js';
5
+
6
+ /** The properties the story drives, as `<gtk-search-bar>` spells them. */
7
+ interface SearchBarControls {
8
+ searchModeEnabled: boolean;
9
+ showCloseButton: boolean;
10
+ }
11
+
12
+ export class SearchBarWebStory extends StoryElement {
13
+ private _bar: (HTMLElement & SearchBarControls) | null = null;
14
+
15
+ constructor() {
16
+ super(SearchBarWebStory.getMetadata(), 'Default');
17
+ }
18
+
19
+ static getMetadata(): StoryMeta {
20
+ return searchBarMeta;
21
+ }
22
+
23
+ initialize(): void {
24
+ this._bar = document.createElement('gtk-search-bar') as HTMLElement & SearchBarControls;
25
+ // Any `GtkEditable` is a legal child (gtksearchbar.c:611-625), and a plain entry is
26
+ // the case `reveal_child_changed_cb` has a branch of its own for (:186-191).
27
+ const field = document.createElement('gtk-entry');
28
+ field.setAttribute('placeholder-text', 'Search');
29
+ this._bar.appendChild(field);
30
+ this._apply();
31
+ this.addContent(this._bar);
32
+ }
33
+
34
+ updateArgs(_args: StoryArgs): void {
35
+ this._apply();
36
+ }
37
+
38
+ private _apply(): void {
39
+ if (!this._bar) return;
40
+ this._bar.searchModeEnabled = this.args.searchModeEnabled as boolean;
41
+ this._bar.showCloseButton = this.args.showCloseButton as boolean;
42
+ }
43
+ }
44
+
45
+ export const SearchBarWebStories: WebStoryModule = { stories: [SearchBarWebStory] };
@@ -0,0 +1,54 @@
1
+ // Browser port of the Text View story. Shares metadata with text-view.story.ts.
2
+
3
+ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
4
+ import { textViewMeta } from '../../text/text-view.meta.js';
5
+
6
+ /** The properties the story drives, as `<gtk-text-view>` spells them. */
7
+ interface TextViewControls {
8
+ text: string;
9
+ wrapMode: string;
10
+ justification: string;
11
+ monospace: boolean;
12
+ acceptsTab: boolean;
13
+ cursorVisible: boolean;
14
+ topMargin: number;
15
+ }
16
+
17
+ export class TextViewWebStory extends StoryElement {
18
+ private _view: (HTMLElement & TextViewControls) | null = null;
19
+
20
+ constructor() {
21
+ super(TextViewWebStory.getMetadata(), 'Default');
22
+ }
23
+
24
+ static getMetadata(): StoryMeta {
25
+ return textViewMeta;
26
+ }
27
+
28
+ initialize(): void {
29
+ this._view = document.createElement('gtk-text-view') as HTMLElement & TextViewControls;
30
+ // The text is set BEFORE the element is connected, so it arrives as the attribute the
31
+ // element's light-DOM seed reads — the same door the GTK story's buffer text takes.
32
+ this._view.text = this.args.text as string;
33
+ this._apply();
34
+ this.addContent(this._view);
35
+ }
36
+
37
+ updateArgs(_args: StoryArgs): void {
38
+ this._apply();
39
+ }
40
+
41
+ private _apply(): void {
42
+ if (!this._view) return;
43
+ this._view.wrapMode = this.args.wrapMode as string;
44
+ this._view.justification = this.args.justification as string;
45
+ this._view.monospace = this.args.monospace as boolean;
46
+ // `accepts-tab` and `cursor-visible` both default TRUE, so the element reads a VALUE
47
+ // and the property is what writes it.
48
+ this._view.acceptsTab = this.args.acceptsTab as boolean;
49
+ this._view.cursorVisible = this.args.cursorVisible as boolean;
50
+ this._view.topMargin = Number(this.args.topMargin ?? 0);
51
+ }
52
+ }
53
+
54
+ export const TextViewWebStories: WebStoryModule = { stories: [TextViewWebStory] };
@@ -0,0 +1,48 @@
1
+ // Browser port of the Text story. Shares metadata with text.story.ts.
2
+
3
+ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
4
+ import { textMeta } from '../../text/text.meta.js';
5
+
6
+ export class TextWebStory extends StoryElement {
7
+ private _text: HTMLElement | null = null;
8
+
9
+ constructor() {
10
+ super(TextWebStory.getMetadata(), 'Default');
11
+ }
12
+
13
+ static getMetadata(): StoryMeta {
14
+ return textMeta;
15
+ }
16
+
17
+ initialize(): void {
18
+ this._text = document.createElement('gtk-text');
19
+ this._apply();
20
+ this.addContent(this._text);
21
+ }
22
+
23
+ updateArgs(_args: StoryArgs): void {
24
+ this._apply();
25
+ }
26
+
27
+ private _apply(): void {
28
+ if (!this._text) return;
29
+ const text = this._text as HTMLElement & {
30
+ text: string;
31
+ placeholderText: string;
32
+ editable: boolean;
33
+ visibility: boolean;
34
+ maxLength: number;
35
+ propagateTextWidth: boolean;
36
+ };
37
+ text.text = this.args.text as string;
38
+ text.placeholderText = this.args.placeholderText as string;
39
+ // `editable` and `visibility` default TRUE in GTK, so the element reads them from a
40
+ // VALUE — written here through the property so the story never has to spell `false`.
41
+ text.editable = this.args.editable as boolean;
42
+ text.visibility = this.args.visibility as boolean;
43
+ text.maxLength = Number(this.args.maxLength ?? 0);
44
+ text.propagateTextWidth = this.args.propagateTextWidth as boolean;
45
+ }
46
+ }
47
+
48
+ export const TextWebStories: WebStoryModule = { stories: [TextWebStory] };
@@ -0,0 +1,67 @@
1
+ // Browser port of the Notebook story. Shares metadata with notebook.story.ts.
2
+
3
+ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
4
+ // TYPE-ONLY: the pages are declared in markup and driven through attributes, so nothing
5
+ // here needs the element's own API surface — and a hand-written structural type would be a
6
+ // second copy of it that nothing keeps in step. The import erases.
7
+ import type { Gtk } from '@gjsify/adwaita-web';
8
+ import { NOTEBOOK_PAGES, notebookMeta } from '../../view-switching/notebook.meta.js';
9
+
10
+ export class NotebookWebStory extends StoryElement {
11
+ private _notebook: Gtk.Notebook | null = null;
12
+
13
+ constructor() {
14
+ super(NotebookWebStory.getMetadata(), 'Default');
15
+ }
16
+
17
+ static getMetadata(): StoryMeta {
18
+ return notebookMeta;
19
+ }
20
+
21
+ initialize(): void {
22
+ const notebook = document.createElement('gtk-notebook') as Gtk.Notebook;
23
+ notebook.style.cssText = 'width:480px;height:320px;';
24
+
25
+ // A GtkNotebookPage is a GObject, not a widget: its properties are ATTRIBUTES on
26
+ // the page element. The third page carries no tab-label on purpose — that is the
27
+ // page the element labels "Page 3" from `gtk_notebook_update_labels`
28
+ // (gtknotebook.c:4353-4373).
29
+ for (const page of NOTEBOOK_PAGES) {
30
+ const child = document.createElement('div');
31
+ if (page.label) child.setAttribute('tab-label', page.label);
32
+ child.setAttribute('menu-label', page.label || page.name);
33
+ child.style.cssText =
34
+ 'display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;';
35
+ const heading = document.createElement('div');
36
+ heading.setAttribute('data-gtk-notebook-story', 'heading');
37
+ heading.textContent = page.label || page.name;
38
+ const body = document.createElement('div');
39
+ body.setAttribute('data-gtk-notebook-story', 'body');
40
+ body.textContent = page.body;
41
+ child.append(heading, body);
42
+ notebook.appendChild(child);
43
+ }
44
+
45
+ this.addContent(notebook);
46
+ this._notebook = notebook;
47
+ this._apply();
48
+ }
49
+
50
+ updateArgs(_args: StoryArgs): void {
51
+ this._apply();
52
+ }
53
+
54
+ private _apply(): void {
55
+ if (!this._notebook) return;
56
+ // The ORDER is the element's own: `tab-pos` decides the edge the layout is read at,
57
+ // so it goes first, and `show-border` — the `.frame` class in C — last.
58
+ this._notebook.setAttribute('tab-pos', this.args.tabPos as string);
59
+ // `show-tabs` and `show-border` both default TRUE (gtknotebook.c:1124, :1134), so
60
+ // the false case has to be spelled: an absent attribute already reads as true.
61
+ this._notebook.setAttribute('show-tabs', (this.args.showTabs as boolean) ? '' : 'false');
62
+ this._notebook.setAttribute('show-border', (this.args.showBorder as boolean) ? '' : 'false');
63
+ this._notebook.toggleAttribute('enable-popup', this.args.enablePopup as boolean);
64
+ }
65
+ }
66
+
67
+ export const NotebookWebStories: WebStoryModule = { stories: [NotebookWebStory] };
@@ -0,0 +1,68 @@
1
+ // Browser port of the Stack Sidebar story. Shares metadata with stack-sidebar.story.ts.
2
+
3
+ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
4
+ // TYPE-ONLY: the sidebar is bound by id attribute and the pages are declared in
5
+ // markup, so nothing here needs the element's API — and a hand-written structural type
6
+ // would be a second copy of it that nothing keeps in step. The import erases.
7
+ import type { Gtk } from '@gjsify/adwaita-web';
8
+ import { STACK_SIDEBAR_PAGES, stackSidebarMeta } from '../../view-switching/stack-sidebar.meta.js';
9
+
10
+ export class StackSidebarWebStory extends StoryElement {
11
+ private _stack: Gtk.Stack | null = null;
12
+
13
+ constructor() {
14
+ super(StackSidebarWebStory.getMetadata(), 'Default');
15
+ }
16
+
17
+ static getMetadata(): StoryMeta {
18
+ return stackSidebarMeta;
19
+ }
20
+
21
+ initialize(): void {
22
+ const stack = document.createElement('gtk-stack') as Gtk.Stack;
23
+ stack.id = 'stack-sidebar-demo';
24
+ stack.style.flex = '1';
25
+
26
+ // A GtkStackPage is a GObject, not a widget: its properties are ATTRIBUTES on the
27
+ // page element. The last page here has an icon and NO title on purpose — that is
28
+ // the page a sidebar row cannot represent (gtkstacksidebar.c:186).
29
+ for (const page of STACK_SIDEBAR_PAGES) {
30
+ const child = document.createElement('div');
31
+ child.setAttribute('name', page.name);
32
+ if (page.title) child.setAttribute('title', page.title);
33
+ if (page.icon) child.setAttribute('icon-name', page.icon);
34
+ if (page.attn) child.setAttribute('needs-attention', '');
35
+ child.style.cssText =
36
+ 'display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;';
37
+ const body = document.createElement('div');
38
+ body.textContent = page.body;
39
+ child.appendChild(body);
40
+ stack.appendChild(child);
41
+ }
42
+
43
+ const sidebar = document.createElement('gtk-stack-sidebar') as Gtk.StackSidebar;
44
+ // The `stack` property takes a Gtk.Widget, which no attribute can carry, so it is
45
+ // spelled as an id reference — the same convention `<adw-view-switcher-bar>` uses.
46
+ sidebar.setAttribute('stack', stack.id);
47
+ sidebar.style.width = '180px';
48
+
49
+ const root = document.createElement('div');
50
+ root.style.cssText = 'display:flex;flex-direction:row;gap:12px;width:480px;height:320px;';
51
+ root.append(sidebar, stack);
52
+ this.addContent(root);
53
+
54
+ this._stack = stack;
55
+ this._apply();
56
+ }
57
+
58
+ updateArgs(_args: StoryArgs): void {
59
+ this._apply();
60
+ }
61
+
62
+ private _apply(): void {
63
+ if (!this._stack) return;
64
+ this._stack.setAttribute('transition-type', this.args.transitionType as string);
65
+ }
66
+ }
67
+
68
+ export const StackSidebarWebStories: WebStoryModule = { stories: [StackSidebarWebStory] };
@@ -0,0 +1,70 @@
1
+ // Browser port of the Stack Switcher story. Shares metadata with stack-switcher.story.ts.
2
+
3
+ import { StoryElement, type StoryArgs, type StoryMeta, type WebStoryModule } from '@gjsify/adwaita-storybook';
4
+ // TYPE-ONLY: the switcher is bound by id attribute and the pages are declared in
5
+ // markup, so nothing here needs the element's API — and a hand-written structural type
6
+ // would be a second copy of it that nothing keeps in step. The import erases.
7
+ import type { Gtk } from '@gjsify/adwaita-web';
8
+ import { STACK_SWITCHER_PAGES, stackSwitcherMeta } from '../../view-switching/stack-switcher.meta.js';
9
+
10
+ export class StackSwitcherWebStory extends StoryElement {
11
+ private _switcher: Gtk.StackSwitcher | null = null;
12
+
13
+ constructor() {
14
+ super(StackSwitcherWebStory.getMetadata(), 'Default');
15
+ }
16
+
17
+ static getMetadata(): StoryMeta {
18
+ return stackSwitcherMeta;
19
+ }
20
+
21
+ initialize(): void {
22
+ const stack = document.createElement('gtk-stack') as Gtk.Stack;
23
+ stack.id = 'stack-switcher-demo';
24
+ stack.style.flex = '1';
25
+
26
+ // A GtkStackPage is a GObject, not a widget: its properties are ATTRIBUTES on the
27
+ // page element. An absent title stays ABSENT, because `rebuild_child` builds no
28
+ // label for a page with neither title nor icon (gtkstackswitcher.c:158-176).
29
+ for (const page of STACK_SWITCHER_PAGES) {
30
+ const child = document.createElement('div');
31
+ child.setAttribute('name', page.name);
32
+ if (page.title) child.setAttribute('title', page.title);
33
+ if (page.icon) child.setAttribute('icon-name', page.icon);
34
+ child.setAttribute('use-underline', '');
35
+ if (page.attn) child.setAttribute('needs-attention', '');
36
+ child.style.cssText =
37
+ 'display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;';
38
+ const body = document.createElement('div');
39
+ body.textContent = page.body;
40
+ child.appendChild(body);
41
+ stack.appendChild(child);
42
+ }
43
+
44
+ const switcher = document.createElement('gtk-stack-switcher') as Gtk.StackSwitcher;
45
+ // The `stack` property takes a Gtk.Widget, which no attribute can carry, so it is
46
+ // spelled as an id reference — the same convention `<adw-view-switcher-bar>` uses.
47
+ switcher.setAttribute('stack', stack.id);
48
+
49
+ const root = document.createElement('div');
50
+ root.style.cssText = 'display:flex;flex-direction:column;gap:12px;width:480px;height:320px;';
51
+ root.append(switcher, stack);
52
+ this.addContent(root);
53
+
54
+ this._switcher = switcher;
55
+ this._apply();
56
+ }
57
+
58
+ updateArgs(_args: StoryArgs): void {
59
+ this._apply();
60
+ }
61
+
62
+ private _apply(): void {
63
+ if (!this._switcher) return;
64
+ this._switcher.setAttribute('orientation', this.args.orientation as string);
65
+ const stack = document.getElementById('stack-switcher-demo');
66
+ if (stack) stack.setAttribute('transition-type', this.args.transitionType as string);
67
+ }
68
+ }
69
+
70
+ export const StackSwitcherWebStories: WebStoryModule = { stories: [StackSwitcherWebStory] };