@gjsify/adwaita-web 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.
- package/dist/adwaita-web.css +8070 -3037
- package/dist/adwaita-web.css.map +1 -1
- package/lib/types/adw-application-window.spec.d.ts +1 -0
- package/lib/types/adw-bin.spec.d.ts +1 -0
- package/lib/types/adw-breakpoint-bin.spec.d.ts +1 -0
- package/lib/types/adw-clamp-scrollable.spec.d.ts +1 -0
- package/lib/types/adw-multi-layout-view.spec.d.ts +1 -0
- package/lib/types/adw-preferences-row.spec.d.ts +1 -0
- package/lib/types/adw-shortcuts.spec.d.ts +1 -0
- package/lib/types/adw-tab-bar.spec.d.ts +1 -0
- package/lib/types/adw-tab-button.spec.d.ts +1 -0
- package/lib/types/adw-tab-overview.spec.d.ts +1 -0
- package/lib/types/adw-view-switcher-sidebar.spec.d.ts +1 -0
- package/lib/types/adw-window.spec.d.ts +1 -0
- package/lib/types/breakpoints.d.ts +14 -3
- package/lib/types/construct-vectors.spec.d.ts +1 -0
- package/lib/types/elements/adw-application-window.d.ts +27 -0
- package/lib/types/elements/adw-bin.d.ts +17 -0
- package/lib/types/elements/adw-breakpoint-bin.d.ts +67 -0
- package/lib/types/elements/adw-clamp-scrollable.d.ts +38 -0
- package/lib/types/elements/adw-dialog.d.ts +10 -0
- package/lib/types/elements/adw-layout-slot.d.ts +19 -0
- package/lib/types/elements/adw-multi-layout-view.d.ts +101 -0
- package/lib/types/elements/adw-preferences-row.d.ts +31 -0
- package/lib/types/elements/adw-shortcuts-dialog.d.ts +13 -0
- package/lib/types/elements/adw-shortcuts-item.d.ts +36 -0
- package/lib/types/elements/adw-shortcuts-section.d.ts +14 -0
- package/lib/types/elements/adw-sidebar.d.ts +5 -0
- package/lib/types/elements/adw-switch-row.d.ts +3 -0
- package/lib/types/elements/adw-tab-bar.d.ts +108 -0
- package/lib/types/elements/adw-tab-button.d.ts +32 -0
- package/lib/types/elements/adw-tab-overview.d.ts +199 -0
- package/lib/types/elements/adw-tab-view.d.ts +19 -23
- package/lib/types/elements/adw-view-switcher-sidebar.d.ts +84 -0
- package/lib/types/elements/adw-window.d.ts +40 -0
- package/lib/types/elements/gtk-about-dialog.d.ts +146 -0
- package/lib/types/elements/gtk-application-window.d.ts +34 -0
- package/lib/types/elements/gtk-aspect-frame.d.ts +27 -0
- package/lib/types/elements/gtk-button.d.ts +9 -0
- package/lib/types/elements/gtk-calendar.d.ts +159 -0
- package/lib/types/elements/gtk-center-box.d.ts +39 -0
- package/lib/types/elements/gtk-color-dialog-button.d.ts +69 -0
- package/lib/types/elements/gtk-column-view.d.ts +50 -0
- package/lib/types/elements/gtk-drag-icon.d.ts +78 -0
- package/lib/types/elements/gtk-drawing-area.d.ts +95 -0
- package/lib/types/elements/gtk-editable-label.d.ts +33 -0
- package/lib/types/elements/gtk-emoji-chooser.d.ts +84 -0
- package/lib/types/elements/gtk-entry.d.ts +20 -1
- package/lib/types/elements/gtk-expander.d.ts +49 -0
- package/lib/types/elements/gtk-fixed.d.ts +13 -0
- package/lib/types/elements/gtk-flow-box-child.d.ts +14 -0
- package/lib/types/elements/gtk-flow-box.d.ts +87 -0
- package/lib/types/elements/gtk-font-dialog-button.d.ts +83 -0
- package/lib/types/elements/gtk-frame.d.ts +24 -0
- package/lib/types/elements/gtk-gl-area.d.ts +136 -0
- package/lib/types/elements/gtk-graphics-offload.d.ts +24 -0
- package/lib/types/elements/gtk-grid-view.d.ts +39 -0
- package/lib/types/elements/gtk-grid.d.ts +27 -0
- package/lib/types/elements/gtk-header-bar.d.ts +60 -0
- package/lib/types/elements/gtk-inscription.d.ts +64 -0
- package/lib/types/elements/gtk-label.d.ts +3 -0
- package/lib/types/elements/gtk-level-bar.d.ts +59 -0
- package/lib/types/elements/gtk-link-button.d.ts +29 -0
- package/lib/types/elements/gtk-list-box-row.d.ts +54 -0
- package/lib/types/elements/gtk-list-box.d.ts +100 -0
- package/lib/types/elements/gtk-list-view.d.ts +73 -0
- package/lib/types/elements/gtk-media-controls.d.ts +142 -0
- package/lib/types/elements/gtk-notebook.d.ts +148 -0
- package/lib/types/elements/gtk-overlay.d.ts +22 -0
- package/lib/types/elements/gtk-page-setup-unix-dialog.d.ts +87 -0
- package/lib/types/elements/gtk-paned.d.ts +121 -0
- package/lib/types/elements/gtk-password-entry.d.ts +27 -0
- package/lib/types/elements/gtk-picture.d.ts +66 -0
- package/lib/types/elements/gtk-popover-bin.d.ts +82 -0
- package/lib/types/elements/gtk-popover-menu-bar.d.ts +66 -0
- package/lib/types/elements/gtk-popover-menu.d.ts +83 -0
- package/lib/types/elements/gtk-popover.d.ts +28 -3
- package/lib/types/elements/gtk-print-unix-dialog.d.ts +167 -0
- package/lib/types/elements/gtk-revealer.d.ts +55 -0
- package/lib/types/elements/gtk-scale-button.d.ts +59 -0
- package/lib/types/elements/gtk-scale.d.ts +98 -0
- package/lib/types/elements/gtk-scrollbar.d.ts +124 -0
- package/lib/types/elements/gtk-scrolled-window.d.ts +121 -0
- package/lib/types/elements/gtk-search-bar.d.ts +39 -0
- package/lib/types/elements/gtk-search-entry.d.ts +27 -0
- package/lib/types/elements/gtk-separator.d.ts +10 -0
- package/lib/types/elements/gtk-spin-button.d.ts +94 -0
- package/lib/types/elements/gtk-spinner.d.ts +14 -0
- package/lib/types/elements/gtk-stack-sidebar.d.ts +43 -0
- package/lib/types/elements/gtk-stack-switcher.d.ts +58 -0
- package/lib/types/elements/gtk-stack.d.ts +154 -0
- package/lib/types/elements/gtk-switch.d.ts +4 -1
- package/lib/types/elements/gtk-text-view.d.ts +62 -0
- package/lib/types/elements/gtk-text.d.ts +45 -0
- package/lib/types/elements/gtk-toggle-button.d.ts +45 -0
- package/lib/types/elements/gtk-tree-expander.d.ts +38 -0
- package/lib/types/elements/gtk-video.d.ts +97 -0
- package/lib/types/elements/gtk-viewport.d.ts +84 -0
- package/lib/types/elements/gtk-window-controls.d.ts +80 -0
- package/lib/types/elements/gtk-window-handle.d.ts +39 -0
- package/lib/types/elements/gtk-window.d.ts +97 -0
- package/lib/types/elements/justification.d.ts +2 -0
- package/lib/types/elements/popover-menu.d.ts +18 -0
- package/lib/types/elements/roving-focus.d.ts +29 -1
- package/lib/types/emoji-data.d.ts +38 -0
- package/lib/types/font-description.d.ts +96 -0
- package/lib/types/gtk-about-dialog.spec.d.ts +1 -0
- package/lib/types/gtk-action-bar.spec.d.ts +1 -0
- package/lib/types/gtk-application-window.spec.d.ts +1 -0
- package/lib/types/gtk-aspect-frame.spec.d.ts +1 -0
- package/lib/types/gtk-calendar.spec.d.ts +1 -0
- package/lib/types/gtk-center-box.spec.d.ts +1 -0
- package/lib/types/gtk-color-dialog-button.spec.d.ts +1 -0
- package/lib/types/gtk-column-view.spec.d.ts +1 -0
- package/lib/types/gtk-drag-icon.spec.d.ts +1 -0
- package/lib/types/gtk-drawing-area.spec.d.ts +1 -0
- package/lib/types/gtk-editable-label.spec.d.ts +1 -0
- package/lib/types/gtk-emoji-chooser.spec.d.ts +1 -0
- package/lib/types/gtk-expander.spec.d.ts +1 -0
- package/lib/types/gtk-fixed.spec.d.ts +1 -0
- package/lib/types/gtk-flow-box.spec.d.ts +1 -0
- package/lib/types/gtk-font-dialog-button.spec.d.ts +1 -0
- package/lib/types/gtk-frame.spec.d.ts +1 -0
- package/lib/types/gtk-gl-area.spec.d.ts +1 -0
- package/lib/types/gtk-graphics-offload.spec.d.ts +1 -0
- package/lib/types/gtk-grid-view.spec.d.ts +1 -0
- package/lib/types/gtk-grid.spec.d.ts +1 -0
- package/lib/types/gtk-header-bar.spec.d.ts +1 -0
- package/lib/types/gtk-inscription.spec.d.ts +1 -0
- package/lib/types/gtk-level-bar.spec.d.ts +1 -0
- package/lib/types/gtk-link-button.spec.d.ts +1 -0
- package/lib/types/gtk-list-box.spec.d.ts +1 -0
- package/lib/types/gtk-list-view.spec.d.ts +1 -0
- package/lib/types/gtk-media-controls.spec.d.ts +1 -0
- package/lib/types/gtk-notebook.spec.d.ts +1 -0
- package/lib/types/gtk-overlay.spec.d.ts +1 -0
- package/lib/types/gtk-paned.spec.d.ts +1 -0
- package/lib/types/gtk-password-entry.spec.d.ts +1 -0
- package/lib/types/gtk-picture.spec.d.ts +1 -0
- package/lib/types/gtk-popover-bin.spec.d.ts +1 -0
- package/lib/types/gtk-popover-menu-bar.spec.d.ts +1 -0
- package/lib/types/gtk-popover-menu.spec.d.ts +1 -0
- package/lib/types/gtk-popover-role.spec.d.ts +1 -0
- package/lib/types/gtk-popover.spec.d.ts +1 -0
- package/lib/types/gtk-print-dialogs.spec.d.ts +1 -0
- package/lib/types/gtk-revealer.spec.d.ts +1 -0
- package/lib/types/gtk-scale-button.spec.d.ts +1 -0
- package/lib/types/gtk-scale.spec.d.ts +1 -0
- package/lib/types/gtk-scrollbar.spec.d.ts +1 -0
- package/lib/types/gtk-scrolled-window.spec.d.ts +1 -0
- package/lib/types/gtk-search-bar.spec.d.ts +1 -0
- package/lib/types/gtk-search-entry.spec.d.ts +1 -0
- package/lib/types/gtk-separator.spec.d.ts +1 -0
- package/lib/types/gtk-spin-button.spec.d.ts +1 -0
- package/lib/types/gtk-spinner.spec.d.ts +1 -0
- package/lib/types/gtk-stack-sidebar.spec.d.ts +1 -0
- package/lib/types/gtk-stack-switcher.spec.d.ts +1 -0
- package/lib/types/gtk-stack.spec.d.ts +1 -0
- package/lib/types/gtk-text-view.spec.d.ts +1 -0
- package/lib/types/gtk-text.spec.d.ts +1 -0
- package/lib/types/gtk-toggle-button.spec.d.ts +1 -0
- package/lib/types/gtk-tree-expander.spec.d.ts +1 -0
- package/lib/types/gtk-video.spec.d.ts +1 -0
- package/lib/types/gtk-viewport.spec.d.ts +1 -0
- package/lib/types/gtk-window-controls.spec.d.ts +1 -0
- package/lib/types/gtk-window-handle.spec.d.ts +1 -0
- package/lib/types/gtk-window.spec.d.ts +1 -0
- package/lib/types/index.d.ts +4 -1
- package/lib/types/list-view-dom.d.ts +44 -0
- package/lib/types/namespace/adw.d.ts +12 -0
- package/lib/types/namespace/gtk.d.ts +61 -0
- package/lib/types/page-setup.d.ts +100 -0
- package/lib/types/scroll-shading.d.ts +15 -1
- package/lib/types/shared-tree-builder.d.ts +30 -2
- package/lib/types/signals.d.ts +4 -0
- package/lib/types/styles.generated.d.ts +1 -1
- package/lib/types/tab-chip.d.ts +73 -0
- package/lib/types/template-classes.d.ts +11 -0
- package/package.json +12 -8
- package/scss/_action_row.scss +2 -2
- package/scss/_application_window.scss +26 -0
- package/scss/_aspect_frame.scss +25 -0
- package/scss/_bin.scss +26 -0
- package/scss/_button.scss +45 -0
- package/scss/_calendar.scss +176 -0
- package/scss/_center_box.scss +25 -0
- package/scss/_checks.scss +6 -1
- package/scss/_clamp_scrollable.scss +28 -0
- package/scss/_color_button.scss +67 -0
- package/scss/_column_view.scss +126 -0
- package/scss/_drag_icon.scss +55 -0
- package/scss/_drawing.scss +85 -0
- package/scss/_emoji_chooser.scss +213 -0
- package/scss/_entry.scss +13 -5
- package/scss/_entry_row.scss +1 -1
- package/scss/_expander.scss +113 -0
- package/scss/_fixed.scss +29 -0
- package/scss/_flow_box.scss +94 -0
- package/scss/_font_button.scss +63 -0
- package/scss/_frame.scss +41 -0
- package/scss/_grid.scss +19 -0
- package/scss/_grid_view.scss +46 -0
- package/scss/_gtk_about_dialog.scss +186 -0
- package/scss/_headerbar.scss +132 -0
- package/scss/_icons.generated.scss +186 -0
- package/scss/_inscription.scss +125 -0
- package/scss/_level_bar.scss +190 -0
- package/scss/_link.scss +82 -0
- package/scss/_list_box.scss +88 -0
- package/scss/_list_view.scss +96 -0
- package/scss/_media_controls.scss +139 -0
- package/scss/_overlay.scss +68 -0
- package/scss/_paned.scss +130 -0
- package/scss/_password_entry.scss +83 -0
- package/scss/_picture.scss +80 -0
- package/scss/_popover_bin.scss +53 -0
- package/scss/_popover_menu_bar.scss +104 -0
- package/scss/_preferences_row.scss +51 -0
- package/scss/_print_dialogs.scss +328 -0
- package/scss/_reset.scss +21 -19
- package/scss/_revealer.scss +37 -0
- package/scss/_row.scss +20 -5
- package/scss/_scale.scss +298 -0
- package/scss/_scale_button.scss +167 -0
- package/scss/_scrollbar.scss +230 -0
- package/scss/_scrolled_window.scss +131 -0
- package/scss/_search_bar.scss +118 -0
- package/scss/_search_entry.scss +86 -0
- package/scss/_separator.scss +44 -0
- package/scss/_shortcuts_dialog.scss +100 -0
- package/scss/_spin_button.scss +172 -0
- package/scss/_spin_row.scss +56 -8
- package/scss/_spinner.scss +85 -4
- package/scss/_stack.scss +729 -0
- package/scss/_switch.scss +13 -5
- package/scss/_switch_row.scss +10 -0
- package/scss/_tab_bar.scss +317 -0
- package/scss/_tab_button.scss +98 -0
- package/scss/_tab_overview.scss +483 -0
- package/scss/_text.scss +182 -0
- package/scss/_theme.scss +1 -1
- package/scss/_tree_expander.scss +62 -0
- package/scss/_variables.scss +43 -21
- package/scss/_video.scss +146 -0
- package/scss/_view_switcher_sidebar.scss +112 -0
- package/scss/_viewport.scss +50 -0
- package/scss/_window.scss +118 -1
- package/scss/_window_handle.scss +20 -0
- package/scss/adwaita-skin.scss +109 -0
- package/src/adw-action-rows.spec.ts +76 -0
- package/src/adw-application-window.spec.ts +118 -0
- package/src/adw-bin.spec.ts +75 -0
- package/src/adw-breakpoint-bin.spec.ts +324 -0
- package/src/adw-clamp-scrollable.spec.ts +189 -0
- package/src/adw-multi-layout-view.spec.ts +243 -0
- package/src/adw-preferences-row.spec.ts +164 -0
- package/src/adw-row-state.spec.ts +142 -0
- package/src/adw-shortcuts.spec.ts +155 -0
- package/src/adw-tab-bar.spec.ts +287 -0
- package/src/adw-tab-button.spec.ts +101 -0
- package/src/adw-tab-overview.spec.ts +443 -0
- package/src/adw-view-switcher-sidebar.spec.ts +281 -0
- package/src/adw-window.spec.ts +129 -0
- package/src/breakpoints.ts +25 -8
- package/src/capabilities.d.mts +3 -0
- package/src/capabilities.mjs +18 -0
- package/src/connect-lifecycle.spec.ts +12 -0
- package/src/construct-vectors.spec.ts +175 -0
- package/src/elements/adw-application-window.ts +154 -0
- package/src/elements/adw-bin.ts +101 -0
- package/src/elements/adw-breakpoint-bin.ts +287 -0
- package/src/elements/adw-clamp-scrollable.ts +207 -0
- package/src/elements/adw-dialog.ts +19 -0
- package/src/elements/adw-layout-slot.ts +95 -0
- package/src/elements/adw-multi-layout-view.ts +326 -0
- package/src/elements/adw-preferences-row.ts +150 -0
- package/src/elements/adw-shortcuts-dialog.ts +52 -0
- package/src/elements/adw-shortcuts-item.ts +171 -0
- package/src/elements/adw-shortcuts-section.ts +86 -0
- package/src/elements/adw-sidebar.ts +42 -3
- package/src/elements/adw-switch-row.ts +28 -1
- package/src/elements/adw-tab-bar.ts +529 -0
- package/src/elements/adw-tab-button.ts +194 -0
- package/src/elements/adw-tab-overview.ts +1011 -0
- package/src/elements/adw-tab-view.ts +66 -145
- package/src/elements/adw-toggle-group.ts +20 -5
- package/src/elements/adw-view-stack.ts +18 -0
- package/src/elements/adw-view-switcher-sidebar.ts +332 -0
- package/src/elements/adw-window.ts +185 -11
- package/src/elements/checks.ts +35 -8
- package/src/elements/gtk-about-dialog.ts +811 -0
- package/src/elements/gtk-application-window.ts +108 -0
- package/src/elements/gtk-aspect-frame.ts +160 -0
- package/src/elements/gtk-button.ts +12 -0
- package/src/elements/gtk-calendar.ts +757 -0
- package/src/elements/gtk-center-box.ts +184 -0
- package/src/elements/gtk-color-dialog-button.ts +278 -0
- package/src/elements/gtk-column-view.ts +320 -0
- package/src/elements/gtk-drag-icon.ts +257 -0
- package/src/elements/gtk-drawing-area.ts +303 -0
- package/src/elements/gtk-editable-label.ts +204 -0
- package/src/elements/gtk-emoji-chooser.ts +542 -0
- package/src/elements/gtk-entry.ts +39 -5
- package/src/elements/gtk-expander.ts +301 -0
- package/src/elements/gtk-fixed.ts +99 -0
- package/src/elements/gtk-flow-box-child.ts +68 -0
- package/src/elements/gtk-flow-box.ts +480 -0
- package/src/elements/gtk-font-dialog-button.ts +432 -0
- package/src/elements/gtk-frame.ts +174 -0
- package/src/elements/gtk-gl-area.ts +476 -0
- package/src/elements/gtk-graphics-offload.ts +130 -0
- package/src/elements/gtk-grid-view.ts +168 -0
- package/src/elements/gtk-grid.ts +127 -0
- package/src/elements/gtk-header-bar.ts +273 -0
- package/src/elements/gtk-inscription.ts +387 -0
- package/src/elements/gtk-label.ts +19 -11
- package/src/elements/gtk-level-bar.ts +323 -0
- package/src/elements/gtk-link-button.ts +138 -0
- package/src/elements/gtk-list-box-row.ts +195 -0
- package/src/elements/gtk-list-box.ts +413 -0
- package/src/elements/gtk-list-view.ts +370 -0
- package/src/elements/gtk-media-controls.ts +509 -0
- package/src/elements/gtk-notebook.ts +664 -0
- package/src/elements/gtk-overlay.ts +149 -0
- package/src/elements/gtk-page-setup-unix-dialog.ts +420 -0
- package/src/elements/gtk-paned.ts +597 -0
- package/src/elements/gtk-password-entry.ts +170 -0
- package/src/elements/gtk-picture.ts +254 -0
- package/src/elements/gtk-popover-bin.ts +332 -0
- package/src/elements/gtk-popover-menu-bar.ts +355 -0
- package/src/elements/gtk-popover-menu.ts +339 -0
- package/src/elements/gtk-popover.ts +92 -10
- package/src/elements/gtk-print-unix-dialog.ts +989 -0
- package/src/elements/gtk-progress-bar.ts +24 -11
- package/src/elements/gtk-revealer.ts +406 -0
- package/src/elements/gtk-scale-button.ts +358 -0
- package/src/elements/gtk-scale.ts +492 -0
- package/src/elements/gtk-scrollbar.ts +528 -0
- package/src/elements/gtk-scrolled-window.ts +642 -0
- package/src/elements/gtk-search-bar.ts +200 -0
- package/src/elements/gtk-search-entry.ts +172 -0
- package/src/elements/gtk-separator.ts +52 -0
- package/src/elements/gtk-spin-button.ts +475 -0
- package/src/elements/gtk-spinner.ts +126 -0
- package/src/elements/gtk-stack-sidebar.ts +212 -0
- package/src/elements/gtk-stack-switcher.ts +279 -0
- package/src/elements/gtk-stack.ts +748 -0
- package/src/elements/gtk-switch.ts +52 -19
- package/src/elements/gtk-text-view.ts +290 -0
- package/src/elements/gtk-text.ts +219 -0
- package/src/elements/gtk-toggle-button.ts +239 -0
- package/src/elements/gtk-tree-expander.ts +243 -0
- package/src/elements/gtk-video.ts +423 -0
- package/src/elements/gtk-viewport.ts +277 -0
- package/src/elements/gtk-window-controls.ts +341 -0
- package/src/elements/gtk-window-handle.ts +221 -0
- package/src/elements/gtk-window.ts +366 -0
- package/src/elements/justification.ts +24 -0
- package/src/elements/popover-menu.ts +24 -0
- package/src/elements/roving-focus.ts +53 -21
- package/src/emoji-data.ts +577 -0
- package/src/entry-rows.spec.ts +31 -0
- package/src/font-description.ts +238 -0
- package/src/gtk-about-dialog.spec.ts +250 -0
- package/src/gtk-action-bar.spec.ts +89 -0
- package/src/gtk-application-window.spec.ts +107 -0
- package/src/gtk-aspect-frame.spec.ts +114 -0
- package/src/gtk-calendar.spec.ts +589 -0
- package/src/gtk-center-box.spec.ts +125 -0
- package/src/gtk-color-dialog-button.spec.ts +141 -0
- package/src/gtk-column-view.spec.ts +154 -0
- package/src/gtk-drag-icon.spec.ts +190 -0
- package/src/gtk-drawing-area.spec.ts +211 -0
- package/src/gtk-editable-label.spec.ts +190 -0
- package/src/gtk-emoji-chooser.spec.ts +173 -0
- package/src/gtk-entry.spec.ts +23 -0
- package/src/gtk-expander.spec.ts +170 -0
- package/src/gtk-fixed.spec.ts +97 -0
- package/src/gtk-flow-box.spec.ts +289 -0
- package/src/gtk-font-dialog-button.spec.ts +166 -0
- package/src/gtk-frame.spec.ts +119 -0
- package/src/gtk-gl-area.spec.ts +361 -0
- package/src/gtk-graphics-offload.spec.ts +119 -0
- package/src/gtk-grid-view.spec.ts +106 -0
- package/src/gtk-grid.spec.ts +122 -0
- package/src/gtk-header-bar.spec.ts +202 -0
- package/src/gtk-inscription.spec.ts +235 -0
- package/src/gtk-level-bar.spec.ts +199 -0
- package/src/gtk-link-button.spec.ts +117 -0
- package/src/gtk-list-box.spec.ts +422 -0
- package/src/gtk-list-view.spec.ts +203 -0
- package/src/gtk-media-controls.spec.ts +295 -0
- package/src/gtk-notebook.spec.ts +546 -0
- package/src/gtk-overlay.spec.ts +141 -0
- package/src/gtk-paned.spec.ts +267 -0
- package/src/gtk-password-entry.spec.ts +150 -0
- package/src/gtk-picture.spec.ts +172 -0
- package/src/gtk-popover-bin.spec.ts +229 -0
- package/src/gtk-popover-menu-bar.spec.ts +296 -0
- package/src/gtk-popover-menu.spec.ts +261 -0
- package/src/gtk-popover-role.spec.ts +138 -0
- package/src/gtk-popover.spec.ts +264 -0
- package/src/gtk-print-dialogs.spec.ts +251 -0
- package/src/gtk-revealer.spec.ts +164 -0
- package/src/gtk-scale-button.spec.ts +218 -0
- package/src/gtk-scale.spec.ts +213 -0
- package/src/gtk-scrollbar.spec.ts +244 -0
- package/src/gtk-scrolled-window.spec.ts +262 -0
- package/src/gtk-search-bar.spec.ts +179 -0
- package/src/gtk-search-entry.spec.ts +142 -0
- package/src/gtk-separator.spec.ts +74 -0
- package/src/gtk-spin-button.spec.ts +186 -0
- package/src/gtk-spinner.spec.ts +130 -0
- package/src/gtk-stack-sidebar.spec.ts +217 -0
- package/src/gtk-stack-switcher.spec.ts +249 -0
- package/src/gtk-stack.spec.ts +432 -0
- package/src/gtk-text-view.spec.ts +189 -0
- package/src/gtk-text.spec.ts +163 -0
- package/src/gtk-toggle-button.spec.ts +186 -0
- package/src/gtk-tree-expander.spec.ts +201 -0
- package/src/gtk-video.spec.ts +240 -0
- package/src/gtk-viewport.spec.ts +140 -0
- package/src/gtk-window-controls.spec.ts +232 -0
- package/src/gtk-window-handle.spec.ts +158 -0
- package/src/gtk-window.spec.ts +190 -0
- package/src/index.ts +9 -1
- package/src/keyboard-operable.spec.ts +33 -1
- package/src/list-view-dom.ts +121 -0
- package/src/namespace/adw.ts +12 -0
- package/src/namespace/gtk.ts +61 -0
- package/src/page-setup.ts +222 -0
- package/src/scroll-shading.ts +18 -1
- package/src/shared-tree-builder.ts +263 -21
- package/src/signals.ts +15 -0
- package/src/source-view/theme.ts +11 -5
- package/src/style-classes.spec.ts +9 -8
- package/src/styles.generated.ts +1 -1
- package/src/tab-chip.ts +200 -0
- package/src/template-classes.ts +45 -0
- package/src/test.browser.mts +152 -0
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { type AdwMenuInput, type AdwMenuModel } from '@gjsify/adwaita-core';
|
|
2
|
+
import type { AdwTabView } from './adw-tab-view.js';
|
|
3
|
+
export declare class AdwTabOverview extends HTMLElement {
|
|
4
|
+
private _childEl;
|
|
5
|
+
private _overviewEl;
|
|
6
|
+
private _headerEl;
|
|
7
|
+
private _startButtonsEl;
|
|
8
|
+
private _endButtonsEl;
|
|
9
|
+
private _titleEl;
|
|
10
|
+
private _searchBtn;
|
|
11
|
+
private _searchEntry;
|
|
12
|
+
private _searchClamp;
|
|
13
|
+
private _searchBar;
|
|
14
|
+
private _menuBtn;
|
|
15
|
+
private _gridEl;
|
|
16
|
+
private _pinnedGridEl;
|
|
17
|
+
private _emptyState;
|
|
18
|
+
private _searchEmptyState;
|
|
19
|
+
private _newTabBtn;
|
|
20
|
+
private readonly _thumbs;
|
|
21
|
+
private _view;
|
|
22
|
+
private _model;
|
|
23
|
+
private _searchActive;
|
|
24
|
+
private _initialized;
|
|
25
|
+
/** The last visibility actually painted, so `notify::open` fires on a real change. */
|
|
26
|
+
private _appliedOpen;
|
|
27
|
+
/** Guards the `open` attribute we write ourselves from re-entering `setOpen`. */
|
|
28
|
+
private _reflecting;
|
|
29
|
+
static get observedAttributes(): string[];
|
|
30
|
+
/** `Adw.TabOverview:view` — the tab view the overview controls. */
|
|
31
|
+
get view(): AdwTabView | null;
|
|
32
|
+
set view(value: AdwTabView | string | null);
|
|
33
|
+
/**
|
|
34
|
+
* `adw_tab_overview_set_view`: rebind the view's five signals, then repopulate.
|
|
35
|
+
* The view must be INSIDE the overview (adw-tab-overview.c:1090-1093 refuses
|
|
36
|
+
* otherwise), which the element enforces by looking the view up among its own
|
|
37
|
+
* children when the reference is not a live element.
|
|
38
|
+
*/
|
|
39
|
+
setView(view: AdwTabView | null): void;
|
|
40
|
+
/**
|
|
41
|
+
* `Adw.TabOverview:child` — the widget the overview covers. Declared children are
|
|
42
|
+
* it: there is one slot in the template and it holds whatever the author wrote.
|
|
43
|
+
*/
|
|
44
|
+
get child(): HTMLElement | null;
|
|
45
|
+
/** `Adw.TabOverview:open` — whether the overview is showing. */
|
|
46
|
+
get open(): boolean;
|
|
47
|
+
set open(value: boolean);
|
|
48
|
+
/**
|
|
49
|
+
* Whether the thumbnails use the INVERTED layout: the close/unpin button at the
|
|
50
|
+
* START and the indicator at the END, rather than the other way round
|
|
51
|
+
* (adw-tab-overview.c:1626-1634).
|
|
52
|
+
*/
|
|
53
|
+
get inverted(): boolean;
|
|
54
|
+
set inverted(value: boolean);
|
|
55
|
+
/**
|
|
56
|
+
* `Adw.TabOverview:enable-search`, TRUE upstream — and so `="false"` is the off
|
|
57
|
+
* switch, absent meaning on. The same MODIFICATION `<adw-carousel>` makes for
|
|
58
|
+
* `allow-scroll-wheel`: an HTML boolean attribute can only mean TRUE.
|
|
59
|
+
*/
|
|
60
|
+
get enableSearch(): boolean;
|
|
61
|
+
set enableSearch(value: boolean);
|
|
62
|
+
/** `Adw.TabOverview:search-active` — read-only upstream, and read-only here. */
|
|
63
|
+
get searchActive(): boolean;
|
|
64
|
+
/** `Adw.TabOverview:enable-new-tab`. */
|
|
65
|
+
get enableNewTab(): boolean;
|
|
66
|
+
set enableNewTab(value: boolean);
|
|
67
|
+
/** `Adw.TabOverview:secondary-menu` — the portal menu of extra actions. */
|
|
68
|
+
get secondaryMenu(): AdwMenuModel;
|
|
69
|
+
set secondaryMenu(value: AdwMenuInput);
|
|
70
|
+
/** `Adw.TabOverview:show-start-title-buttons`, TRUE upstream, so `="false"` turns it off. */
|
|
71
|
+
get showStartTitleButtons(): boolean;
|
|
72
|
+
set showStartTitleButtons(value: boolean);
|
|
73
|
+
/** `Adw.TabOverview:show-end-title-buttons`, TRUE upstream, so `="false"` turns it off. */
|
|
74
|
+
get showEndTitleButtons(): boolean;
|
|
75
|
+
set showEndTitleButtons(value: boolean);
|
|
76
|
+
/**
|
|
77
|
+
* `Adw.TabOverview:extra-drag-preload`. Stored and reported; it gates the GDK drag
|
|
78
|
+
* protocol this port does not have (see the header).
|
|
79
|
+
*/
|
|
80
|
+
get extraDragPreload(): boolean;
|
|
81
|
+
set extraDragPreload(value: boolean);
|
|
82
|
+
/** `Adw.TabOverview:extra-drag-preferred-action` — always 0 here, for the same reason. */
|
|
83
|
+
get extraDragPreferredAction(): number;
|
|
84
|
+
/**
|
|
85
|
+
* The `overview.open` action (`overview_open_cb`, adw-tab-overview.c:1517-1521),
|
|
86
|
+
* with `update_actions`' enabled rule: closed AND holding a view (:816-826).
|
|
87
|
+
*/
|
|
88
|
+
activateOverviewOpen(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* The `overview.close` action (`overview_close_cb`, :1523-1527): open, holding a
|
|
91
|
+
* view, and holding at least one page — an empty overview has nothing to close to.
|
|
92
|
+
*/
|
|
93
|
+
activateOverviewClose(): boolean;
|
|
94
|
+
connectedCallback(): void;
|
|
95
|
+
disconnectedCallback(): void;
|
|
96
|
+
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
97
|
+
private _resolveView;
|
|
98
|
+
/** The `AdwTabView` among our own children — the only place the C allows one. */
|
|
99
|
+
private _findView;
|
|
100
|
+
/**
|
|
101
|
+
* `set_view`'s five connections (adw-tab-overview.c:1140-1209), read off the view's
|
|
102
|
+
* own events: the page list's attach/detach/reorder, each page's `pinned` change,
|
|
103
|
+
* the selection, and the page COUNT (which the title and the actions are derived
|
|
104
|
+
* from). The pinned page change arrives as `page-updated` / `page-pinned`.
|
|
105
|
+
*/
|
|
106
|
+
private _bindView;
|
|
107
|
+
private _unbindView;
|
|
108
|
+
private _onViewChange;
|
|
109
|
+
private _syncAll;
|
|
110
|
+
/**
|
|
111
|
+
* `notify_n_pages_cb`: `dngettext ("%u Tab", "%u Tabs", n_pages)` — the count is
|
|
112
|
+
* the number of pages, and the singular is only for exactly one. No view means an
|
|
113
|
+
* EMPTY title, which is the C's own branch before the format string (:955-958).
|
|
114
|
+
*/
|
|
115
|
+
private _applyTitle;
|
|
116
|
+
/**
|
|
117
|
+
* The two grids, split the way `populate_sidebar`-shaped code splits them: pinned
|
|
118
|
+
* pages in `pinned_grid` in view order, the rest in `grid`, each filtered by the
|
|
119
|
+
* current search terms. Thumbnails are edited in place; a page that left either
|
|
120
|
+
* grid loses its node.
|
|
121
|
+
*/
|
|
122
|
+
private _syncGrids;
|
|
123
|
+
/**
|
|
124
|
+
* `empty_changed_cb`: EMPTY is BOTH grids empty, and which of the two status pages
|
|
125
|
+
* shows is the search — `empty_state` when it is off, `search_empty_state` when on.
|
|
126
|
+
*/
|
|
127
|
+
private _applyEmptyStates;
|
|
128
|
+
/** `update_new_tab_button`: the button hides while the search is running. */
|
|
129
|
+
private _applyNewTabButton;
|
|
130
|
+
/**
|
|
131
|
+
* `update_header_bar`: the bar shows when search is on, or a secondary menu is set,
|
|
132
|
+
* or either side wants its title buttons. The two sides are drawn as the slots C
|
|
133
|
+
* puts the window buttons in — this renderer has no window chrome to move, so the
|
|
134
|
+
* slot is where an application puts its own controls.
|
|
135
|
+
*/
|
|
136
|
+
private _applyHeaderBar;
|
|
137
|
+
private _applyMenu;
|
|
138
|
+
/** `set_open` + `set_overview_visible` (:916-939): one visibility, two surfaces. */
|
|
139
|
+
private _applyOpen;
|
|
140
|
+
/** `adw_tab_overview_set_open`, the setter the actions and the grid both call. */
|
|
141
|
+
setOpen(open: boolean): void;
|
|
142
|
+
private _searchMode;
|
|
143
|
+
/** The template's `search-mode-enabled` binding: the search BUTTON's own state. */
|
|
144
|
+
private _toggleSearchMode;
|
|
145
|
+
/**
|
|
146
|
+
* `search_changed_cb`: the terms go to BOTH grids and `search-active` is just
|
|
147
|
+
* "the entry is non-empty" — there is no separate mode to keep in step, which is why
|
|
148
|
+
* `stop_search_cb` has to clear the entry itself before reporting FALSE.
|
|
149
|
+
*/
|
|
150
|
+
private _onSearchChanged;
|
|
151
|
+
private _stopSearch;
|
|
152
|
+
/** `set_search_active` (:838-852): assign, re-derive, and notify only on a change. */
|
|
153
|
+
private _setSearchActive;
|
|
154
|
+
/**
|
|
155
|
+
* `search_activated_cb` (:884-893): Enter in the entry moves into the grid, and it
|
|
156
|
+
* is the PINNED grid first, because it sits above `grid` in the scrolled window.
|
|
157
|
+
*/
|
|
158
|
+
private _onSearchKeyDown;
|
|
159
|
+
/**
|
|
160
|
+
* `adw_tab_overview_focus` (:1343-1405), the parts the DOM can honour: the search
|
|
161
|
+
* button and the entry go DOWN into the first row, the secondary-menu button goes
|
|
162
|
+
* down to the LAST row, and the new-tab button goes UP to the last row of `grid`
|
|
163
|
+
* first. GTK's focus is a widget returning TRUE for a direction; a browser moves the
|
|
164
|
+
* focus itself, so this only names the destination.
|
|
165
|
+
*/
|
|
166
|
+
private _onKeyDown;
|
|
167
|
+
/**
|
|
168
|
+
* The thumbnail grids are `GtkGridView`s: arrows move a cursor in two dimensions over
|
|
169
|
+
* a column count the layout decides (the grid reflows), Home/End jump, and nothing
|
|
170
|
+
* wraps. Selection follows focus; Enter and Space activate like a click, because a
|
|
171
|
+
* thumbnail is a `div` with no activation of its own. A move that would leave the
|
|
172
|
+
* grid is not claimed for Up/Down, so `_onKeyDown` can still hand focus to the
|
|
173
|
+
* new-tab button.
|
|
174
|
+
*/
|
|
175
|
+
private _onGridKey;
|
|
176
|
+
private _focusFirstRow;
|
|
177
|
+
private _focusLastRow;
|
|
178
|
+
/**
|
|
179
|
+
* `create_tab` (:895-909) and `new_tab_clicked_cb` (:911-926).
|
|
180
|
+
*
|
|
181
|
+
* `create-tab`'s handler RETURNS a page, which a DOM event cannot do: `detail.page`
|
|
182
|
+
* is the return slot, and a listener fills it (usually by appending to the view).
|
|
183
|
+
* Nothing filled is C's `g_critical ("AdwTabOverview::create-tab handler must not
|
|
184
|
+
* return NULL")`, reported on `console.error` because the click cannot be abandoned.
|
|
185
|
+
*/
|
|
186
|
+
private _requestCreateTab;
|
|
187
|
+
private _createGrid;
|
|
188
|
+
/**
|
|
189
|
+
* adw-tab-thumbnail.ui, node for node: the `.thumbnail` overlay over a `.card`
|
|
190
|
+
* overlay holding the PICTURE, the close button, the unpin icon and the indicator
|
|
191
|
+
* button, with the attention dot over that and the icon/title box underneath.
|
|
192
|
+
*/
|
|
193
|
+
private _thumbFor;
|
|
194
|
+
/**
|
|
195
|
+
* `update_tooltip`, `update_icon`, `update_indicator`, `update_loading` and the
|
|
196
|
+
* needs-attention revealer, in that order (adw-tab-thumbnail.c:82-152).
|
|
197
|
+
*/
|
|
198
|
+
private _refreshThumb;
|
|
199
|
+
}
|
|
@@ -19,6 +19,8 @@ export declare class AdwTabView extends HTMLElement {
|
|
|
19
19
|
private readonly _pagesEl;
|
|
20
20
|
/** Tab chips keyed by page id — the bar is edited in place, never rebuilt. */
|
|
21
21
|
private readonly _tabs;
|
|
22
|
+
/** The same chips as {@link _tabs}, held as the shared builder's parts for a refresh. */
|
|
23
|
+
private readonly _chips;
|
|
22
24
|
/** Page panels keyed by page id; kept so a DETACHED page's node is still reachable. */
|
|
23
25
|
private readonly _panels;
|
|
24
26
|
private readonly _hovered;
|
|
@@ -103,7 +105,16 @@ export declare class AdwTabView extends HTMLElement {
|
|
|
103
105
|
reorderLast(id: string): boolean;
|
|
104
106
|
setPageTitle(id: string, title: string | null): boolean;
|
|
105
107
|
setPageTooltip(id: string, tooltip: string | null): boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Set a page's search keyword (`AdwTabPage:keyword`) — the string the tab overview's
|
|
110
|
+
* search matches on beside the title and the tooltip ("Use keywords to search in
|
|
111
|
+
* e.g. page URLs in a web browser", adw-tab-overview.c:1646-1648).
|
|
112
|
+
*/
|
|
113
|
+
setPageKeyword(id: string, keyword: string | null): boolean;
|
|
114
|
+
/** Set a page's icon name (`adw_tab_page_set_icon`). */
|
|
106
115
|
setPageIcon(id: string, icon: string | null): boolean;
|
|
116
|
+
/** Set a page's indicator icon (`adw_tab_page_set_indicator_icon`). */
|
|
117
|
+
setPageIndicatorIcon(id: string, indicatorIcon: string | null): boolean;
|
|
107
118
|
setPageLoading(id: string, loading: boolean): boolean;
|
|
108
119
|
setPageNeedsAttention(id: string, needsAttention: boolean): boolean;
|
|
109
120
|
/** Every precondition the model refused, as C would have warned about it. */
|
|
@@ -117,35 +128,20 @@ export declare class AdwTabView extends HTMLElement {
|
|
|
117
128
|
private _moveTab;
|
|
118
129
|
private _refreshTab;
|
|
119
130
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* merely sits indented then measured every chip against the wrong origin and
|
|
127
|
-
* reported all of them clipped.
|
|
128
|
-
*/
|
|
129
|
-
private _tabPosition;
|
|
130
|
-
/**
|
|
131
|
-
* `tabCloseVisible`, with its pinned gate. `dragging` is constantly false — tab
|
|
132
|
-
* drag-and-drop is compositor work and is not modelled — and `fullyVisible` is
|
|
133
|
-
* measured against the bar's scroll window, which is what the C term means for a
|
|
134
|
-
* horizontally scrolled bar.
|
|
131
|
+
* The close affordance's visibility, and both halves of it now live in `../tab-chip.js`
|
|
132
|
+
* — `tabCloseVisible` and the geometry it is measured with, in the BAR's own scroll
|
|
133
|
+
* space. The incident that moved them there is recorded beside `chipPosition`: the
|
|
134
|
+
* measurement once used `offsetLeft`, which is relative to whichever positioned ancestor
|
|
135
|
+
* the HOST page happens to have, so a tab view that merely sat indented reported every
|
|
136
|
+
* chip clipped and swallowed the close button on hover.
|
|
135
137
|
*/
|
|
136
138
|
private _refreshCloseVisibility;
|
|
137
139
|
private _onSelectionChange;
|
|
138
140
|
private _applyActiveState;
|
|
139
141
|
/**
|
|
140
142
|
* `scroll_to_tab_full` (adw-tab-box.c:928-961), called on every selection the way
|
|
141
|
-
* `select_page` calls it (:1728)
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
* The bar is the only thing C ever scrolls for a tab: `scroll_to_tab_full` writes
|
|
145
|
-
* `self->adjustment`, the strip's own adjustment, and nothing else. The DOM has no
|
|
146
|
-
* such narrow API: `focus()` and `scrollIntoView()` both walk EVERY scrollable
|
|
147
|
-
* ancestor up to the window. So this moves `scrollLeft` by hand, and the focus call
|
|
148
|
-
* below passes `preventScroll`.
|
|
143
|
+
* `select_page` calls it (:1728) — `scrollChipIntoBar` in `../tab-chip.js`, with the
|
|
144
|
+
* reasoning and the SPACING slack that is deliberately not transplanted.
|
|
149
145
|
*/
|
|
150
146
|
private _scrollSelectedTabIntoBar;
|
|
151
147
|
private _applyBarVisibility;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { SidebarItemFilter } from '@gjsify/adwaita-core';
|
|
2
|
+
import type { AdwViewStack } from './adw-view-stack.js';
|
|
3
|
+
export declare class AdwViewSwitcherSidebar extends HTMLElement {
|
|
4
|
+
private _sidebar;
|
|
5
|
+
private _placeholderEl;
|
|
6
|
+
private _prefixEl;
|
|
7
|
+
private _suffixEl;
|
|
8
|
+
private _stack;
|
|
9
|
+
private _filter;
|
|
10
|
+
private _initialized;
|
|
11
|
+
static get observedAttributes(): string[];
|
|
12
|
+
/** `AdwViewSwitcherSidebar:stack` — the stack the sidebar controls. */
|
|
13
|
+
get stack(): AdwViewStack | null;
|
|
14
|
+
set stack(value: AdwViewStack | string | null);
|
|
15
|
+
/**
|
|
16
|
+
* `adw_view_switcher_sidebar_set_stack`: unbind the old stack's four connections, bind
|
|
17
|
+
* the new one's, and populate. A NULL stack is refused, exactly as C is
|
|
18
|
+
* (`g_return_if_fail (!stack)`, :284) — an overview-less sidebar is not a state the C
|
|
19
|
+
* has, and inventing one here would give a reader a widget libadwaita cannot build.
|
|
20
|
+
*/
|
|
21
|
+
setStack(stack: AdwViewStack | null): void;
|
|
22
|
+
/** `AdwViewSwitcherSidebar:mode` — `sidebar` (default) or `page`. */
|
|
23
|
+
get mode(): 'sidebar' | 'page';
|
|
24
|
+
set mode(value: 'sidebar' | 'page');
|
|
25
|
+
/**
|
|
26
|
+
* `AdwViewSwitcherSidebar:filter` — a `GtkFilter`, which on this renderer is the
|
|
27
|
+
* sidebar's own predicate. A property and not an attribute: it is a FUNCTION, and
|
|
28
|
+
* markup cannot carry one.
|
|
29
|
+
*/
|
|
30
|
+
get filter(): SidebarItemFilter | null;
|
|
31
|
+
set filter(value: SidebarItemFilter | null);
|
|
32
|
+
/** `AdwViewSwitcherSidebar:placeholder` — shown when no item survives. */
|
|
33
|
+
get placeholder(): HTMLElement | null;
|
|
34
|
+
set placeholder(value: HTMLElement | null);
|
|
35
|
+
/**
|
|
36
|
+
* `AdwViewSwitcherSidebar:prefix` (1.10) — shown above the items.
|
|
37
|
+
*
|
|
38
|
+
* NOT `prefix`. `HTMLElement.prefix` is the RDFa attribute and a STRING, and a
|
|
39
|
+
* property of a different type cannot shadow it (TS2416). The GIR name is kept in the
|
|
40
|
+
* SLOT (`slot="prefix"`, what a `.blp`'s `prefix: …` authors) and here in the header.
|
|
41
|
+
*/
|
|
42
|
+
get prefixWidget(): HTMLElement | null;
|
|
43
|
+
set prefixWidget(value: HTMLElement | null);
|
|
44
|
+
/** `AdwViewSwitcherSidebar:suffix` (1.10) — shown below the items. `suffixWidget`, as `prefixWidget`. */
|
|
45
|
+
get suffixWidget(): HTMLElement | null;
|
|
46
|
+
set suffixWidget(value: HTMLElement | null);
|
|
47
|
+
connectedCallback(): void;
|
|
48
|
+
disconnectedCallback(): void;
|
|
49
|
+
attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
|
|
50
|
+
private _resolveStack;
|
|
51
|
+
/** The stack this sidebar is next to, when the author named no id. */
|
|
52
|
+
private _findStack;
|
|
53
|
+
/** `set_stack`'s four connections (:270-282), read off the stack's own events. */
|
|
54
|
+
private _bindStack;
|
|
55
|
+
private _unbindStack;
|
|
56
|
+
private _onStackChange;
|
|
57
|
+
/**
|
|
58
|
+
* `activated_cb` (:104-112) — the row's index is the stack's index, so the two lists
|
|
59
|
+
* are kept one for one. The selection moves FIRST: `activated` is the signal a split
|
|
60
|
+
* view reveals its content pane on, and a handler that read the stack in that callback
|
|
61
|
+
* would otherwise see the page the user was leaving.
|
|
62
|
+
*/
|
|
63
|
+
private _onSidebarActivated;
|
|
64
|
+
/**
|
|
65
|
+
* `populate_sidebar` (:225-249) — one `AdwSidebarSection` per group of pages, each
|
|
66
|
+
* holding one `AdwSidebarItem` per page. The grouping is core's, so the browser and
|
|
67
|
+
* any second renderer derive the sections from the same table.
|
|
68
|
+
*/
|
|
69
|
+
private _populate;
|
|
70
|
+
private _toSectionSpec;
|
|
71
|
+
/**
|
|
72
|
+
* `selection_changed_cb` (:258-271) — the row follows the stack's visible page. Read as
|
|
73
|
+
* the INDEX, because the sidebar's flat index space is the unfiltered one (ADR 0004),
|
|
74
|
+
* so page position and row position are the same number.
|
|
75
|
+
*/
|
|
76
|
+
private _syncSelection;
|
|
77
|
+
private _applyMode;
|
|
78
|
+
/**
|
|
79
|
+
* `placeholder` (:449-460) — shown when the sidebar has no items, or when the filter
|
|
80
|
+
* took them all. The `<adw-sidebar>` knows the filtered list (`visibleItems` is empty),
|
|
81
|
+
* which is the C condition in `AdwSidebar`'s own words.
|
|
82
|
+
*/
|
|
83
|
+
private _applyEmptyState;
|
|
84
|
+
}
|
|
@@ -1,3 +1,43 @@
|
|
|
1
|
+
import { AdwBreakpoint } from '@gjsify/adwaita-core';
|
|
1
2
|
export declare class AdwWindow extends HTMLElement {
|
|
3
|
+
private _initialized;
|
|
4
|
+
private _contentEl;
|
|
5
|
+
private _breakpoints;
|
|
6
|
+
private _disposeBreakpoints;
|
|
7
|
+
private _openDialogs;
|
|
8
|
+
static get observedAttributes(): string[];
|
|
9
|
+
/** The content area — the Adw.Window:content property. */
|
|
10
|
+
get contentArea(): HTMLDivElement;
|
|
11
|
+
/** The content widget — the first child of the content area. */
|
|
12
|
+
get content(): HTMLElement | null;
|
|
13
|
+
set content(value: HTMLElement | null);
|
|
14
|
+
/** The breakpoints added to this window. */
|
|
15
|
+
get breakpoints(): readonly AdwBreakpoint[];
|
|
16
|
+
/** The currently applied breakpoint, or null when none is. */
|
|
17
|
+
get currentBreakpoint(): AdwBreakpoint | null;
|
|
18
|
+
/** The open dialogs presented inside this window (Adw.Window:dialogs). */
|
|
19
|
+
get dialogs(): readonly HTMLElement[];
|
|
20
|
+
/** The currently visible dialog, or null when none is (Adw.Window:visible-dialog). */
|
|
21
|
+
get visibleDialog(): HTMLElement | null;
|
|
22
|
+
/**
|
|
23
|
+
* Add a breakpoint to this window (adw_window_add_breakpoint).
|
|
24
|
+
* The breakpoint evaluates against the window's own box and sets a
|
|
25
|
+
* `data-breakpoint` attribute when applied.
|
|
26
|
+
*/
|
|
27
|
+
addBreakpoint(condition: string): AdwBreakpoint;
|
|
2
28
|
connectedCallback(): void;
|
|
29
|
+
disconnectedCallback(): void;
|
|
30
|
+
attributeChangedCallback(name: string): void;
|
|
31
|
+
private _buildOnce;
|
|
32
|
+
/**
|
|
33
|
+
* Bind the breakpoints to THIS box.
|
|
34
|
+
*
|
|
35
|
+
* NOT once per lifetime: `disconnectedCallback` releases the disposer, so a
|
|
36
|
+
* window moved between parents would come back deaf — and a window is exactly
|
|
37
|
+
* the thing a client-side route change re-parents. Re-binding is cheap and
|
|
38
|
+
* idempotent, and it re-measures the new box on the way.
|
|
39
|
+
*/
|
|
40
|
+
private _bindBreakpoints;
|
|
41
|
+
/** The window's size request — GTK's, not CSS's, so an absent attribute means the default. */
|
|
42
|
+
private _applySizeRequest;
|
|
3
43
|
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { AdwDialog } from './adw-dialog.js';
|
|
2
|
+
/**
|
|
3
|
+
* GTK's licence preamble (`gtk_about_dialog_set_license_type`, :2301) — NOT
|
|
4
|
+
* libadwaita's `ADW_LICENSE_WARRANTY_TEMPLATE`, which says "This application" and has no
|
|
5
|
+
* newline. Both strings are translatable and they are not translations of each other.
|
|
6
|
+
* The C template is `'This program comes with absolutely no warranty.\nSee the
|
|
7
|
+
* <a href="%s">%s</a> for details.'`; `_licenseMarkup` composes the same three runs —
|
|
8
|
+
* text, link, text — as DOM, because the scan it uses for plain licence text would read
|
|
9
|
+
* the `<a href>` as an email address.
|
|
10
|
+
*/
|
|
11
|
+
export declare class GtkAboutDialog extends AdwDialog {
|
|
12
|
+
private _built;
|
|
13
|
+
private _logo;
|
|
14
|
+
private _switcherEl;
|
|
15
|
+
private _stackEl;
|
|
16
|
+
private _pages;
|
|
17
|
+
private _populated;
|
|
18
|
+
private _authors;
|
|
19
|
+
private _documenters;
|
|
20
|
+
private _artists;
|
|
21
|
+
private _creditSections;
|
|
22
|
+
static get observedAttributes(): string[];
|
|
23
|
+
/** The program name; unset falls back to the document's own title (`g_get_application_name`). */
|
|
24
|
+
get programName(): string;
|
|
25
|
+
set programName(value: string);
|
|
26
|
+
get version(): string;
|
|
27
|
+
set version(value: string);
|
|
28
|
+
get copyright(): string;
|
|
29
|
+
set copyright(value: string);
|
|
30
|
+
get comments(): string;
|
|
31
|
+
set comments(value: string);
|
|
32
|
+
get license(): string;
|
|
33
|
+
set license(value: string);
|
|
34
|
+
/** The `GtkLicense` nick — `unknown`, `custom`, `mit-x11`, … */
|
|
35
|
+
get licenseType(): string;
|
|
36
|
+
set licenseType(value: string);
|
|
37
|
+
get systemInformation(): string;
|
|
38
|
+
set systemInformation(value: string);
|
|
39
|
+
get website(): string;
|
|
40
|
+
set website(value: string);
|
|
41
|
+
get websiteLabel(): string;
|
|
42
|
+
set websiteLabel(value: string);
|
|
43
|
+
get translatorCredits(): string;
|
|
44
|
+
set translatorCredits(value: string);
|
|
45
|
+
/** The named-icon logo; overrides {@link logo}, as in the C. */
|
|
46
|
+
get logoIconName(): string;
|
|
47
|
+
set logoIconName(value: string);
|
|
48
|
+
/** Whether the License page's text view WRAPS (`populate_license_page`, :2157). */
|
|
49
|
+
get wrapLicense(): boolean;
|
|
50
|
+
set wrapLicense(value: boolean);
|
|
51
|
+
/**
|
|
52
|
+
* A logo URL, drawn as an `<img>`.
|
|
53
|
+
*
|
|
54
|
+
* `GtkAboutDialog:logo` is a `GdkPaintable`, which is the one GObject property here
|
|
55
|
+
* an attribute could have carried and cannot: there is no paintable in a document.
|
|
56
|
+
* A URL is the honest browser stand-in and the override order is the C's.
|
|
57
|
+
*/
|
|
58
|
+
get logo(): string;
|
|
59
|
+
set logo(value: string);
|
|
60
|
+
/** The people whose names the Credits page shows — `GtkAboutDialog:authors`. */
|
|
61
|
+
get authors(): string[];
|
|
62
|
+
set authors(value: readonly string[]);
|
|
63
|
+
get documenters(): string[];
|
|
64
|
+
set documenters(value: readonly string[]);
|
|
65
|
+
get artists(): string[];
|
|
66
|
+
set artists(value: readonly string[]);
|
|
67
|
+
/** `gtk_about_dialog_add_credit_section` — an extra titled group on the Credits page. */
|
|
68
|
+
addCreditSection(name: string, people: readonly string[]): void;
|
|
69
|
+
private _creditsChanged;
|
|
70
|
+
connectedCallback(): void;
|
|
71
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
72
|
+
/**
|
|
73
|
+
* The headerbar carries the stack switcher and nothing else, exactly as
|
|
74
|
+
* `gtkaboutdialog.ui` declares it (`title-widget` → the switcher, no title).
|
|
75
|
+
*/
|
|
76
|
+
protected decorateHeader(header: HTMLElement): void;
|
|
77
|
+
/** Which stack page is showing — `gtk_stack_get_visible_child_name`. */
|
|
78
|
+
get visiblePage(): string;
|
|
79
|
+
/**
|
|
80
|
+
* Show a page of the stack — `gtk_stack_set_visible_child_name`. The switcher buttons
|
|
81
|
+
* call it, and it is the one way the stack's lazy population (`stack_visible_child_notify`)
|
|
82
|
+
* runs: a page is built the first time it is shown, not before.
|
|
83
|
+
*/
|
|
84
|
+
showPage(name: string): void;
|
|
85
|
+
private _build;
|
|
86
|
+
private _renderAbout;
|
|
87
|
+
/** The three visibility rules, one predicate each, as in the C. */
|
|
88
|
+
private _pageVisible;
|
|
89
|
+
/** `add_credits_section`'s input, in `populate_credits_page`'s order. */
|
|
90
|
+
private _creditsPeople;
|
|
91
|
+
/** Whether the stack switcher has anything to show (`update_stack_switcher_visibility`). */
|
|
92
|
+
private _visiblePages;
|
|
93
|
+
private _renderSwitcher;
|
|
94
|
+
private _renderLogo;
|
|
95
|
+
/** The main page: version, comments, website, copyright, licence — in `.ui` order. */
|
|
96
|
+
private _renderMain;
|
|
97
|
+
/**
|
|
98
|
+
* The licence label: the text `license` holds, with its `<…>` and bare-URL links
|
|
99
|
+
* turned into spans — or, for a known type, the warranty preamble `set_license_type`
|
|
100
|
+
* composes. The preamble keeps its `<a href>` markup and is read with
|
|
101
|
+
* `gtk_label_set_markup` (:2354), a REAL link: it never goes through the
|
|
102
|
+
* `text_buffer_new` scan below, which would read `<a href="…">` as an email
|
|
103
|
+
* address. Same split here.
|
|
104
|
+
*/
|
|
105
|
+
private _licenseMarkup;
|
|
106
|
+
/** The License page — a text view whose wrap mode is `wrap-license`. */
|
|
107
|
+
private _populateLicense;
|
|
108
|
+
/** The System page — a text view with no wrap mode of its own. */
|
|
109
|
+
private _populateSystem;
|
|
110
|
+
/** The Credits page — the scrolled, framed grid `populate_credits_page` fills. */
|
|
111
|
+
private _populateCredits;
|
|
112
|
+
/**
|
|
113
|
+
* `stack_visible_child_notify` (:297-333): each of the three pages is built the first
|
|
114
|
+
* time the stack SHOWS it, and never rebuilt after. A credits grid for three hundred
|
|
115
|
+
* authors is not work a dialog nobody opened it for.
|
|
116
|
+
*/
|
|
117
|
+
private _populatePage;
|
|
118
|
+
/** The framed scrolled window the three extra pages sit in (`has-frame`). */
|
|
119
|
+
private _frame;
|
|
120
|
+
private _link;
|
|
121
|
+
/**
|
|
122
|
+
* `text_buffer_new` (:1903-2028 of `gtkaboutdialog.c`) for the plain-DOM case: split
|
|
123
|
+
* the string into literal runs and links. A `<…>` run is an email when it carries no
|
|
124
|
+
* scheme and a URL when it does; a bare `http://` or `https://` run ends at the first
|
|
125
|
+
* of space, newline, tab or `>`, which is `strpbrk (r1, " \n\t>")`.
|
|
126
|
+
*/
|
|
127
|
+
private _fillWithLinks;
|
|
128
|
+
/**
|
|
129
|
+
* `emit_activate_link` (:646-655): the `BOOLEAN__STRING` accumulator. A handler that
|
|
130
|
+
* returns TRUE says it took over, which is `preventDefault()` here — and only then
|
|
131
|
+
* does the default `Gtk.UriLauncher` navigation not happen.
|
|
132
|
+
*/
|
|
133
|
+
private _activateLink;
|
|
134
|
+
}
|
|
135
|
+
/** One run of `text_buffer_new`'s output: literal text, or a link with its URI. */
|
|
136
|
+
interface LinkPart {
|
|
137
|
+
readonly text: string;
|
|
138
|
+
readonly uri: string | null;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* `text_buffer_new`'s scan, in order: the first `<` and the first `>` after it, the
|
|
142
|
+
* earliest bare `http://` or `https://` and where it ends, and the C's own precedence —
|
|
143
|
+
* a URL that starts AT or just after the `<` wins, which leaves the bracket in the text.
|
|
144
|
+
*/
|
|
145
|
+
export declare function splitLinks(text: string): LinkPart[];
|
|
146
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AdwSlot } from '../slotted-children.js';
|
|
2
|
+
import { GtkWindow } from './gtk-window.js';
|
|
3
|
+
export declare class GtkApplicationWindow extends GtkWindow {
|
|
4
|
+
private _menubar;
|
|
5
|
+
private _menubarObserver;
|
|
6
|
+
static get observedAttributes(): string[];
|
|
7
|
+
/** `Gtk.ApplicationWindow:show-menubar` — whether the window shows a menubar of its own. */
|
|
8
|
+
get showMenubar(): boolean;
|
|
9
|
+
set showMenubar(value: boolean);
|
|
10
|
+
/**
|
|
11
|
+
* The menubar strip, created once and reused: `strips()` and `extraSlots()` both ask for
|
|
12
|
+
* it, so whichever runs first builds it and the other finds it.
|
|
13
|
+
*/
|
|
14
|
+
private menubarSection;
|
|
15
|
+
/**
|
|
16
|
+
* Titlebar, then menubar, then content — the order `update_menubar` parents the bar at
|
|
17
|
+
* (:418) inside a window whose titlebar sits above its own child.
|
|
18
|
+
*/
|
|
19
|
+
protected strips(): Node[];
|
|
20
|
+
/** The `menubar` slot, which is where a `GtkPopoverMenuBar` goes. */
|
|
21
|
+
protected extraSlots(): AdwSlot[];
|
|
22
|
+
connectedCallback(): void;
|
|
23
|
+
disconnectedCallback(): void;
|
|
24
|
+
attributeChangedCallback(name: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* `update_menubar`'s visibility rule (gtkapplicationwindow.c:400-402), BOTH halves: the
|
|
27
|
+
* property AND at least one item in the section. This element has no `GMenuModel` to ask,
|
|
28
|
+
* so the second half is the SLOT — an empty `menubar` slot is an empty `menubar_section`.
|
|
29
|
+
* The observer is what makes the second half live: `bindSlottedChildren` adopts a
|
|
30
|
+
* `slot="menubar"` child after connect, and a bar that appeared then must appear.
|
|
31
|
+
*/
|
|
32
|
+
private _followMenubar;
|
|
33
|
+
private _renderMenubar;
|
|
34
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export declare class GtkAspectFrame extends HTMLElement {
|
|
2
|
+
static get observedAttributes(): string[];
|
|
3
|
+
/** `Gtk.AspectFrame:ratio` — the width/height of the child. Ignored under `obey-child`. */
|
|
4
|
+
get ratio(): number;
|
|
5
|
+
set ratio(value: number);
|
|
6
|
+
/** `Gtk.AspectFrame:xalign` — where the child sits horizontally. `0.5` is the centre. */
|
|
7
|
+
get xalign(): number;
|
|
8
|
+
set xalign(value: number);
|
|
9
|
+
/** `Gtk.AspectFrame:yalign` — where the child sits vertically. `0.5` is the centre. */
|
|
10
|
+
get yalign(): number;
|
|
11
|
+
set yalign(value: number);
|
|
12
|
+
/**
|
|
13
|
+
* `Gtk.AspectFrame:obey-child` — TRUE (the pspec default, and therefore the ABSENCE of
|
|
14
|
+
* the attribute) takes the ratio from the child and ignores `ratio`. Spelled as
|
|
15
|
+
* `obey-child="false"` rather than as an inverted attribute, because the default is the
|
|
16
|
+
* affirmative one and every other boolean on every other element here means "present".
|
|
17
|
+
*/
|
|
18
|
+
get obeyChild(): boolean;
|
|
19
|
+
set obeyChild(value: boolean);
|
|
20
|
+
/** `Gtk.AspectFrame:child` — the single widget the frame shapes. */
|
|
21
|
+
get child(): HTMLElement | null;
|
|
22
|
+
set child(value: HTMLElement | null);
|
|
23
|
+
connectedCallback(): void;
|
|
24
|
+
attributeChangedCallback(name: string, old: string | null, value: string | null): void;
|
|
25
|
+
private _normalized;
|
|
26
|
+
private _sync;
|
|
27
|
+
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import type { DispatchedSignals } from '../signals.js';
|
|
1
2
|
export declare class GtkButton extends HTMLElement {
|
|
3
|
+
/** The GTK signals this element dispatches, each with the DOM event it arrives as (ADR 0093). */
|
|
4
|
+
static readonly signals: DispatchedSignals;
|
|
2
5
|
private _button;
|
|
3
6
|
private _label;
|
|
4
7
|
private _initialized;
|
|
@@ -10,4 +13,10 @@ export declare class GtkButton extends HTMLElement {
|
|
|
10
13
|
connectedCallback(): void;
|
|
11
14
|
attributeChangedCallback(): void;
|
|
12
15
|
private _render;
|
|
16
|
+
/**
|
|
17
|
+
* Last step of every render, after the class and the content are written. A subclass
|
|
18
|
+
* adds its own state to the inner button here, because `_render` resets `className` and
|
|
19
|
+
* anything set earlier would be gone with it.
|
|
20
|
+
*/
|
|
21
|
+
protected decorate(_button: HTMLButtonElement): void;
|
|
13
22
|
}
|