@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,97 @@
|
|
|
1
|
+
/** The four overlay glyphs, in the order `update_overlay_icon` tests them (gtkvideo.c:626-646). */
|
|
2
|
+
export type VideoOverlayIcon = 'media-eject-symbolic' | 'dialog-error-symbolic' | 'media-playlist-repeat-symbolic' | 'media-playback-start-symbolic';
|
|
3
|
+
/**
|
|
4
|
+
* The glyph a video with NO stream draws — the FIRST arm of the four-way choice
|
|
5
|
+
* (gtkvideo.c:629), because "there is nothing here to play" is the state every GtkVideo
|
|
6
|
+
* starts in.
|
|
7
|
+
*/
|
|
8
|
+
export declare const NO_STREAM_ICON = "media-eject-symbolic";
|
|
9
|
+
/** The glyph a stream that FAILED draws (gtkvideo.c:633) — tested before `ended`. */
|
|
10
|
+
export declare const ERROR_ICON = "dialog-error-symbolic";
|
|
11
|
+
/** The glyph a stream that has ENDED draws (gtkvideo.c:638-639). */
|
|
12
|
+
export declare const ENDED_ICON = "media-playlist-repeat-symbolic";
|
|
13
|
+
/** The glyph a READY stream draws (gtkvideo.c:645) — the arm everything else falls through to. */
|
|
14
|
+
export declare const READY_ICON = "media-playback-start-symbolic";
|
|
15
|
+
/** `gtk_video_reveal_controls`' timeout: 3 s (gtkvideo.c:130). */
|
|
16
|
+
export declare const CONTROLS_HIDE_MS = 3000;
|
|
17
|
+
export declare class GtkVideo extends HTMLElement {
|
|
18
|
+
private _initialized;
|
|
19
|
+
private _overlayIcon;
|
|
20
|
+
private _controlsRevealer;
|
|
21
|
+
private _media;
|
|
22
|
+
/** The listeners currently bound on `_media`, so `_detachMedia` removes the SAME ones. */
|
|
23
|
+
private mediaListeners;
|
|
24
|
+
private _hideTimer;
|
|
25
|
+
/** What the media element last told us, in the four fields the overlay choice reads. */
|
|
26
|
+
private _hasStream;
|
|
27
|
+
private _error;
|
|
28
|
+
private _ended;
|
|
29
|
+
private _playing;
|
|
30
|
+
static get observedAttributes(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* `GtkVideo:autoplay` (gtkvideo.c:407-414). Defaults to FALSE. The C plays on the
|
|
33
|
+
* stream's `prepared` notification and not on this write — see the header — so this
|
|
34
|
+
* setter records the flag and lets the media's own readiness decide.
|
|
35
|
+
*/
|
|
36
|
+
get autoplay(): boolean;
|
|
37
|
+
set autoplay(value: boolean);
|
|
38
|
+
/** `GtkVideo:loop` (gtkvideo.c:432-439). Defaults to FALSE. A plain `<video loop>`. */
|
|
39
|
+
get loop(): boolean;
|
|
40
|
+
set loop(value: boolean);
|
|
41
|
+
/**
|
|
42
|
+
* `GtkVideo:graphics-offload` (gtkvideo.c:400-406, :1010-1023). Defaults to FALSE — the
|
|
43
|
+
* template ships `<property name="enabled">disabled</property>` (ui/gtkvideo.ui), so the
|
|
44
|
+
* C starts with the offload OFF and an application has to ask for it.
|
|
45
|
+
*
|
|
46
|
+
* Stored, readable and class-flagged, and NOTHING ELSE HAPPENS: CSS has no way to move a
|
|
47
|
+
* subtree into a shared GPU texture, which is what `GtkGraphicsOffload` is. The class is
|
|
48
|
+
* `graphics-offload` so a page can still target it, and `KNOWN_GAPS` in
|
|
49
|
+
* `check-adwaita-element-properties.mjs` does not list it because the PROPERTY is
|
|
50
|
+
* observed — what it does not buy is a faster composite.
|
|
51
|
+
*/
|
|
52
|
+
get graphicsOffload(): boolean;
|
|
53
|
+
set graphicsOffload(value: boolean);
|
|
54
|
+
/** The `<video>` this element drives — the browser's answer to a `GtkMediaStream`. */
|
|
55
|
+
get media(): HTMLVideoElement | null;
|
|
56
|
+
/** Whether the media reports itself playing — `GtkVideo:playing` (`gtk_video_get_playing`). */
|
|
57
|
+
get playing(): boolean;
|
|
58
|
+
/** The current position in SECONDS — the C's `timestamp`, in microseconds × 1000. */
|
|
59
|
+
get timestamp(): number;
|
|
60
|
+
/** The media's duration in SECONDS — the C's `duration`; 0 while it is unknown. */
|
|
61
|
+
get duration(): number;
|
|
62
|
+
/** Whether the overlay controls bar is currently revealed. */
|
|
63
|
+
get controlsRevealed(): boolean;
|
|
64
|
+
private _write;
|
|
65
|
+
connectedCallback(): void;
|
|
66
|
+
/**
|
|
67
|
+
* `ui/gtkvideo.ui` keeps the author's `<video>` as the MAIN child of the overlay and adds
|
|
68
|
+
* the two overlay children around it. Wrapping in place rather than re-creating is what
|
|
69
|
+
* lets the light DOM stay the API: a page writes `<gtk-video><video src=…></video></gtk-video>`
|
|
70
|
+
* and the element never has to be told where the media is.
|
|
71
|
+
*/
|
|
72
|
+
private _wrap;
|
|
73
|
+
private _adoptMedia;
|
|
74
|
+
private _detachMedia;
|
|
75
|
+
/** `autoplay` and `loop` are declared PROPERTIES of the widget, so they are applied to
|
|
76
|
+
* the media rather than left to the author's markup — `ui/gtkvideo.ui` does the same by
|
|
77
|
+
* binding them on the template. */
|
|
78
|
+
private _syncMedia;
|
|
79
|
+
private _overlayClicked;
|
|
80
|
+
/**
|
|
81
|
+
* `gtk_video_reveal_controls` (gtkvideo.c:125-133): reveal, then arm a 3 s timeout that
|
|
82
|
+
* hides it again. Re-arming on every call is what makes it a "three seconds after the
|
|
83
|
+
* LAST movement" rather than a "three seconds after the first".
|
|
84
|
+
*/
|
|
85
|
+
revealControls(): void;
|
|
86
|
+
private _hideControls;
|
|
87
|
+
/** `gtk_video_motion` (ui/gtkvideo.ui) — the motion controller's only job. */
|
|
88
|
+
private _onPointerMove;
|
|
89
|
+
attributeChangedCallback(name: string): void;
|
|
90
|
+
/** The `notify::` detail for `name`: the PROPERTY, parsed, not the raw attribute. */
|
|
91
|
+
private _property;
|
|
92
|
+
/** `gtk_video_update_playing` (gtkvideo.c:658-666) — VISIBILITY, not an icon swap. */
|
|
93
|
+
private _updatePlaying;
|
|
94
|
+
/** `gtk_video_update_overlay_icon` (gtkvideo.c:626-646), arm by arm. */
|
|
95
|
+
private _updateOverlayIcon;
|
|
96
|
+
disconnectedCallback(): void;
|
|
97
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { type AdwAdjustment } from '@gjsify/adwaita-core';
|
|
2
|
+
/** The two axes a scrollport reports numbers for, in the order GTK declares them. */
|
|
3
|
+
declare const AXES: readonly ["horizontal", "vertical"];
|
|
4
|
+
type Axis = (typeof AXES)[number];
|
|
5
|
+
export declare class GtkViewport extends HTMLElement {
|
|
6
|
+
private _observer;
|
|
7
|
+
private _watch;
|
|
8
|
+
static get observedAttributes(): string[];
|
|
9
|
+
/**
|
|
10
|
+
* `GtkScrollable:hadjustment` — the horizontal position, as the portable value.
|
|
11
|
+
*
|
|
12
|
+
* Computed on read rather than stored: `viewport_set_adjustment_values` reconfigures both
|
|
13
|
+
* axes on every allocation, so there is no state to cache and nothing an author can write.
|
|
14
|
+
*/
|
|
15
|
+
get hadjustment(): AdwAdjustment;
|
|
16
|
+
/** `GtkScrollable:vadjustment` — the vertical position, as the portable value. */
|
|
17
|
+
get vadjustment(): AdwAdjustment;
|
|
18
|
+
/**
|
|
19
|
+
* `GtkViewport:scroll-to-focus` — whether the viewport keeps the focus widget in view.
|
|
20
|
+
* TRUE in the pspec (gtkviewport.c:338-340), and an unknown value is the DEFAULT rather
|
|
21
|
+
* than "off": only the literal `false` turns it off, which is what FALSE in a construct
|
|
22
|
+
* bag means and what a boolean attribute has to spell out to be read at all.
|
|
23
|
+
*/
|
|
24
|
+
get scrollToFocus(): boolean;
|
|
25
|
+
set scrollToFocus(value: boolean);
|
|
26
|
+
connectedCallback(): void;
|
|
27
|
+
disconnectedCallback(): void;
|
|
28
|
+
/**
|
|
29
|
+
* Announce whenever a number the adjustments are made of has changed.
|
|
30
|
+
*
|
|
31
|
+
* GTK reconfigures both axes on every allocation — `viewport_set_adjustment_values` runs
|
|
32
|
+
* out of `size_allocate`, and `gtk_adjustment_configure` compresses the notifications into
|
|
33
|
+
* one. A browser reports the same event as the scrollport's own box changing (this
|
|
34
|
+
* element) and its CONTENT changing (the children), and neither is the other's: a child
|
|
35
|
+
* that grows leaves the viewport's box exactly where it was, which is why BOTH are watched.
|
|
36
|
+
* The content watcher is what makes a scrolled window's bars appear the moment content
|
|
37
|
+
* lands in it, and it is `gtk_widget_queue_resize` on the child propagating upward.
|
|
38
|
+
*/
|
|
39
|
+
private _observe;
|
|
40
|
+
attributeChangedCallback(name: string): void;
|
|
41
|
+
/**
|
|
42
|
+
* `gtk_adjustment_set_value` on one of the viewport's OWN adjustments — the half of a
|
|
43
|
+
* scrolled window's job that moves content rather than deciding whether to.
|
|
44
|
+
*
|
|
45
|
+
* The value is clamped first, which is `set_value`'s documented behaviour ("The value is
|
|
46
|
+
* clamped to lie between lower and upper") and the reason a bar may ask for a position its
|
|
47
|
+
* own range has just outgrown.
|
|
48
|
+
*/
|
|
49
|
+
scrollAxis(axis: Axis, value: number): void;
|
|
50
|
+
/**
|
|
51
|
+
* `gtk_viewport_scroll_to` — move the position so `descendant` is inside the window.
|
|
52
|
+
* `null` asks only for the position to be CLAMPED, which is what a content that shrank
|
|
53
|
+
* needs from a value that was legal a moment ago.
|
|
54
|
+
*
|
|
55
|
+
* GTK animates the move (`gtk_adjustment_animate_to_value`, gtkviewport.c:757-758) for
|
|
56
|
+
* `ANIMATION_DURATION` unless the widget should not animate — the browser's spelling of
|
|
57
|
+
* that setting is `prefers-reduced-motion`, and `scrollIntoView`'s own `behavior` is where
|
|
58
|
+
* the choice belongs.
|
|
59
|
+
*
|
|
60
|
+
* `scrollTo` IS a platform method with an options form, so both are here and the KIND of
|
|
61
|
+
* the argument decides: a node is GTK's `scroll_to(descendant)` and anything else is the
|
|
62
|
+
* scrollport's own `scrollTo(options)`, which this element is (one element for the two
|
|
63
|
+
* GTK nodes is the port's own decision, see the header).
|
|
64
|
+
*/
|
|
65
|
+
scrollTo(descendant: Element | null): void;
|
|
66
|
+
scrollTo(options?: ScrollToOptions): void;
|
|
67
|
+
scrollTo(x: number, y: number): void;
|
|
68
|
+
/** The adjustments of both axes, as the detail of the `value-changed` event. */
|
|
69
|
+
get adjustments(): {
|
|
70
|
+
hadjustment: AdwAdjustment;
|
|
71
|
+
vadjustment: AdwAdjustment;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* One event for both adjustments: a browser scroll moves them together, and the C's
|
|
75
|
+
* `GtkAdjustment::value-changed` is a signal of the ADJUSTMENT rather than of the viewport
|
|
76
|
+
* that reads it. Bubbling, so `<gtk-scrolled-window>` hears it without holding a reference
|
|
77
|
+
* to anything in here.
|
|
78
|
+
*/
|
|
79
|
+
private _announce;
|
|
80
|
+
/** `setup_focus_change_handler` / `clear_focus_change_handler`, on one event instead of a root signal. */
|
|
81
|
+
private _bindFocus;
|
|
82
|
+
private _onFocusIn;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/** `Gtk.PackType`, spelled as the GIR's enum nicks (gtkwindowcontrols.c:68). */
|
|
2
|
+
type PackSide = 'start' | 'end';
|
|
3
|
+
/** What a press asks for: the `GtkActionable` action name minus its `window.` prefix. */
|
|
4
|
+
export type WindowAction = 'minimize' | 'toggle-maximized' | 'close';
|
|
5
|
+
export declare class GtkWindowControls extends HTMLElement {
|
|
6
|
+
private _initialized;
|
|
7
|
+
private _empty;
|
|
8
|
+
/** The frame this controls answers to, or `null` outside one (`:257-263`). */
|
|
9
|
+
private _window;
|
|
10
|
+
private _windowObserver;
|
|
11
|
+
static get observedAttributes(): string[];
|
|
12
|
+
/** `Gtk.WindowControls:side` — which half of the decoration layout to build. */
|
|
13
|
+
get side(): PackSide;
|
|
14
|
+
set side(value: PackSide);
|
|
15
|
+
/** `Gtk.WindowControls:use-native-controls` — a macOS-only branch; see KNOWN_GAPS. */
|
|
16
|
+
get useNativeControls(): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* `Gtk.WindowControls:empty` (read-only in GIR). TRUE — the GIR default (:618) — until a
|
|
19
|
+
* render finds a button, which is what happens outside a window.
|
|
20
|
+
*/
|
|
21
|
+
get empty(): boolean;
|
|
22
|
+
/** `setAttribute` for a write that changes nothing; every GObject setter here returns early. */
|
|
23
|
+
private _write;
|
|
24
|
+
connectedCallback(): void;
|
|
25
|
+
disconnectedCallback(): void;
|
|
26
|
+
attributeChangedCallback(name: string): void;
|
|
27
|
+
private _property;
|
|
28
|
+
/**
|
|
29
|
+
* Bind to the frame above, the way `gtk_window_controls_root` binds to the settings and
|
|
30
|
+
* to `notify` on the window (:443-462) — then run the build, which is that handler's
|
|
31
|
+
* first act. Re-established on every connect: a bar moved into another window has a new
|
|
32
|
+
* ancestor, which is why C does it in `root` and drops it in `unroot`.
|
|
33
|
+
*/
|
|
34
|
+
private _followWindow;
|
|
35
|
+
/** `is_sovereign_window` (gtkwindowcontrols.c:272-273): neither modal nor transient. */
|
|
36
|
+
private _isSovereign;
|
|
37
|
+
/**
|
|
38
|
+
* The window property, in ITS polarity. `resizable` and `deletable` default TRUE
|
|
39
|
+
* (gtkwindow.c:893, :1024) and `maximized` defaults FALSE (:1044), so one helper reading
|
|
40
|
+
* them alike would put a maximize button on a window that cannot be maximized — and a
|
|
41
|
+
* restore glyph on every window there is.
|
|
42
|
+
*/
|
|
43
|
+
private _windowFlag;
|
|
44
|
+
/**
|
|
45
|
+
* `get_layout` (gtkwindowcontrols.c:120-176), reduced to what a page can answer: this
|
|
46
|
+
* widget's own value, then the frame's, then GNOME's default. The first ':' splits the
|
|
47
|
+
* layout in two, and a layout with no ':' is the same half on both sides.
|
|
48
|
+
*/
|
|
49
|
+
private _layoutHalf;
|
|
50
|
+
/** `update_window_buttons` (gtkwindowcontrols.c:247-426), token for token. */
|
|
51
|
+
private _render;
|
|
52
|
+
/** Every render writes the class, whether the VALUE moved or not — see {@link _setEmpty}. */
|
|
53
|
+
private _applyEmptyClass;
|
|
54
|
+
/** The one child a token builds, or `null` for the tokens that build nothing here. */
|
|
55
|
+
private _buttonFor;
|
|
56
|
+
/**
|
|
57
|
+
* `update_window_icon` (gtkwindowcontrols.c:187-210): the icon node is `presentation` to
|
|
58
|
+
* an accessibility tree, and it is dropped when the window has no icon — which for a
|
|
59
|
+
* frame means no `icon-name`, the analogue of a window with no `GdkPaintable`.
|
|
60
|
+
*/
|
|
61
|
+
private _windowIcon;
|
|
62
|
+
/**
|
|
63
|
+
* One `GtkButton` with its `GtkImage` child. A plain `<button>` rather than
|
|
64
|
+
* `<gtk-button>`: libadwaita's own rules select `windowcontrols > button > image`
|
|
65
|
+
* (refs/libadwaita/src/stylesheet/widgets/_header-bar.scss:178-202), so the button IS
|
|
66
|
+
* the widget node here, and `<gtk-button>` would wrap a second one inside it.
|
|
67
|
+
*/
|
|
68
|
+
private _controlButton;
|
|
69
|
+
/**
|
|
70
|
+
* `set_empty` (gtkwindowcontrols.c:216-230): a style class, and a notify of its own.
|
|
71
|
+
*
|
|
72
|
+
* The early return is about the NOTIFY, and it is the whole of C's `if (empty ==
|
|
73
|
+
* self->empty) return;`. The CLASS is not part of that comparison here: `empty` starts
|
|
74
|
+
* TRUE, so the first render outside a window is a no-op against C and the widget was
|
|
75
|
+
* left wearing nothing at all — a property whose style class only appears once it has
|
|
76
|
+
* been wrong and then right again.
|
|
77
|
+
*/
|
|
78
|
+
private _setEmpty;
|
|
79
|
+
}
|
|
80
|
+
export {};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** `GtkTitlebarGesture`'s three gestures, as `perform_titlebar_action` decides them. */
|
|
2
|
+
export type GtkTitlebarGesture = 'double-click' | 'middle-click' | 'right-click';
|
|
3
|
+
/** The settings' own vocabulary, `none` included: "the compositor declined" is one. */
|
|
4
|
+
export type GtkTitlebarAction = 'toggle-maximize' | 'lower' | 'minimize' | 'menu' | 'none';
|
|
5
|
+
export declare class GtkWindowHandle extends HTMLElement {
|
|
6
|
+
/** The gesture in progress, as `priv->drag_start_x` / `_y` are in the C. */
|
|
7
|
+
private _drag;
|
|
8
|
+
/**
|
|
9
|
+
* The three gesture SETTINGS, spelled out.
|
|
10
|
+
*
|
|
11
|
+
* `GESTURES` above names the same three, and the list is written rather than computed
|
|
12
|
+
* from it because `scripts/adwaita-elements.mjs` reads `observedAttributes` as an array
|
|
13
|
+
* LITERAL: a `.map()` over a table reads as an unreadable element there, which is
|
|
14
|
+
* reported as "this reader cannot tell" rather than as the three attributes it is.
|
|
15
|
+
*/
|
|
16
|
+
static get observedAttributes(): string[];
|
|
17
|
+
/** The action one gesture is set to, as the settings are read in C. */
|
|
18
|
+
actionFor(gesture: GtkTitlebarGesture): GtkTitlebarAction;
|
|
19
|
+
connectedCallback(): void;
|
|
20
|
+
disconnectedCallback(): void;
|
|
21
|
+
/**
|
|
22
|
+
* `perform_titlebar_action_fallback`: raise the action GTK would have activated, and
|
|
23
|
+
* then the event NAMED for it.
|
|
24
|
+
*
|
|
25
|
+
* Both fire for every gesture, `none` included: the first is what a consumer reads to
|
|
26
|
+
* know a titlebar was clicked at all — the C's `retval = FALSE`, where the compositor
|
|
27
|
+
* declined, is a fact worth reporting — and the second is what a window host binds to.
|
|
28
|
+
*/
|
|
29
|
+
private _perform;
|
|
30
|
+
private _onClick;
|
|
31
|
+
private _onPointerDown;
|
|
32
|
+
/**
|
|
33
|
+
* `drag_gesture_update_cb`: past the threshold the WINDOW moves, and the sequence is
|
|
34
|
+
* reset so the gesture does not repeat. The move is a compositor operation, so what is
|
|
35
|
+
* emitted is the INTENT, with the pointer's position where GTK hands `begin_move` its
|
|
36
|
+
* own surface coordinates.
|
|
37
|
+
*/
|
|
38
|
+
private _onPointerMove;
|
|
39
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { type AdwSlot } from '../slotted-children.js';
|
|
2
|
+
import './gtk-window-controls.js';
|
|
3
|
+
export declare class GtkWindow extends HTMLElement {
|
|
4
|
+
private _initialized;
|
|
5
|
+
/** The `titlebar` strip — `protected` so a subclass can place its own strips around it. */
|
|
6
|
+
protected _titlebar: HTMLDivElement;
|
|
7
|
+
/** Every child the window has no slot name for. */
|
|
8
|
+
protected _content: HTMLDivElement;
|
|
9
|
+
/** The SSD controls the strip draws when the window has no titlebar of its own. */
|
|
10
|
+
private _startControls;
|
|
11
|
+
private _endControls;
|
|
12
|
+
/** The window's own title in the strip, or `null` when a titlebar holds it. */
|
|
13
|
+
private _titleLabel;
|
|
14
|
+
/** Watches the strip for an author's titlebar arriving after the build. */
|
|
15
|
+
private _titlebarObserver;
|
|
16
|
+
static get observedAttributes(): string[];
|
|
17
|
+
/** `Gtk.Window:title` — the window's title. */
|
|
18
|
+
get title(): string | null;
|
|
19
|
+
set title(value: string | null);
|
|
20
|
+
/** `Gtk.Window:decorated` — whether the frame and its titlebar strip are drawn at all. */
|
|
21
|
+
get decorated(): boolean;
|
|
22
|
+
set decorated(value: boolean);
|
|
23
|
+
/** `Gtk.Window:maximized` — square corners and the restore glyph. */
|
|
24
|
+
get maximized(): boolean;
|
|
25
|
+
set maximized(value: boolean);
|
|
26
|
+
/** `Gtk.Window:resizable` — whether the maximize button may appear. */
|
|
27
|
+
get resizable(): boolean;
|
|
28
|
+
set resizable(value: boolean);
|
|
29
|
+
/** `Gtk.Window:deletable` — whether the close button may appear. */
|
|
30
|
+
get deletable(): boolean;
|
|
31
|
+
set deletable(value: boolean);
|
|
32
|
+
/**
|
|
33
|
+
* `setAttribute` for a write that changes nothing. Every GObject setter here returns
|
|
34
|
+
* early when the value is already right (gtkwindow.c:1015-1017, :1045-1046, :894-895),
|
|
35
|
+
* and a boolean property whose value did not move must not notify.
|
|
36
|
+
*/
|
|
37
|
+
protected _write(name: string, value: string | null): void;
|
|
38
|
+
/**
|
|
39
|
+
* The two default polarities, because one of them is wrong for half of this widget.
|
|
40
|
+
*
|
|
41
|
+
* `decorated`, `resizable` and `deletable` default TRUE (gtkwindow.c:1014, :893, :1024)
|
|
42
|
+
* and `maximized`, `fullscreened`, `modal` and `hide-on-close` default FALSE (:1044,
|
|
43
|
+
* :1060, :903, :945). Reading them all through one helper is how a bare `<gtk-window>`
|
|
44
|
+
* ended up wearing `.maximized` and `.fullscreen` — square corners and no shadow, on a
|
|
45
|
+
* window that had never been maximized.
|
|
46
|
+
*/
|
|
47
|
+
private _onByDefault;
|
|
48
|
+
private _offByDefault;
|
|
49
|
+
connectedCallback(): void;
|
|
50
|
+
disconnectedCallback(): void;
|
|
51
|
+
/**
|
|
52
|
+
* A `slot="titlebar"` child adopted AFTER the build has to take the strip over from the
|
|
53
|
+
* server-side decoration, and `_render` is the one that notices — nothing else here runs
|
|
54
|
+
* when a child lands. Observed on `_titlebar`, which is where the adopted child goes,
|
|
55
|
+
* because `bindSlottedChildren` already watches the host for it.
|
|
56
|
+
*
|
|
57
|
+
* Re-established on every connect, so a window moved between parents keeps it.
|
|
58
|
+
*/
|
|
59
|
+
private _watchTitlebar;
|
|
60
|
+
/**
|
|
61
|
+
* The strips the frame is built from, in order. A subclass with a strip of its own —
|
|
62
|
+
* `<gtk-application-window>`'s menubar — adds it here, which is the only reason this pair
|
|
63
|
+
* exists: `install()` takes the structure and the slots at once, and the ORDER is that
|
|
64
|
+
* call's invariant (see `slotted-children.ts`).
|
|
65
|
+
*/
|
|
66
|
+
protected strips(): Node[];
|
|
67
|
+
/** The slots a subclass adds beside `titlebar`; none by default. */
|
|
68
|
+
protected extraSlots(): AdwSlot[];
|
|
69
|
+
attributeChangedCallback(name: string): void;
|
|
70
|
+
private _property;
|
|
71
|
+
private _render;
|
|
72
|
+
/**
|
|
73
|
+
* The strip, in the two shapes a window can be in. With a `titlebar` child the strip
|
|
74
|
+
* holds exactly that — GTK hands the whole titlebar to the bar, decorations and all. With
|
|
75
|
+
* none it holds the two `<gtk-window-controls>` and the window's title, which is the
|
|
76
|
+
* server-side decoration GTK would otherwise have asked the window manager to draw and
|
|
77
|
+
* which a page has to draw for itself.
|
|
78
|
+
*/
|
|
79
|
+
private _renderTitlebar;
|
|
80
|
+
/** The frame controls' `GtkActionable` names, answered here — gtkwindow.c:1274-1287. */
|
|
81
|
+
private _onWindowAction;
|
|
82
|
+
/**
|
|
83
|
+
* `gtk_window_close` (gtkwindow.c:1274-1287): emit `close-request` and, if nothing handled
|
|
84
|
+
* it, hide the window when `hide-on-close` is set and DESTROY it otherwise. "Destroy" is
|
|
85
|
+
* the one word this port cannot mean — a page has no unref — so the default detaches the
|
|
86
|
+
* frame, which is the same observable outcome for everything above it.
|
|
87
|
+
*/
|
|
88
|
+
close(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* `gtk_window_maximize`. ASYNCHRONOUS in GTK — the GIR says so at gtkwindow.c:1044 — so
|
|
91
|
+
* the property is the thing a caller watches, and this writes it directly rather than
|
|
92
|
+
* pretending to round-trip a compositor.
|
|
93
|
+
*/
|
|
94
|
+
maximize(): void;
|
|
95
|
+
/** `gtk_window_unmaximize`, with the same caveat as {@link maximize}. */
|
|
96
|
+
unmaximize(): void;
|
|
97
|
+
}
|
|
@@ -45,6 +45,24 @@ export declare class PopoverMenuView {
|
|
|
45
45
|
private _onKeyDown;
|
|
46
46
|
/** Every row of the open page, in order — including the ones no key can reach. */
|
|
47
47
|
get rows(): readonly HTMLButtonElement[];
|
|
48
|
+
/**
|
|
49
|
+
* The path of the page showing; `[]` is the root.
|
|
50
|
+
*
|
|
51
|
+
* Public because `GtkPopoverMenu:visible-submenu` IS this: GTK's value is the
|
|
52
|
+
* `GtkStack` child's name (gtkpopovermenu.c:755-757), and the stack child's identity
|
|
53
|
+
* here is the path that leads to it. Reading it is how the element answers the
|
|
54
|
+
* property without keeping a second copy of the open page beside this one.
|
|
55
|
+
*/
|
|
56
|
+
get page(): AdwMenuPath;
|
|
57
|
+
/**
|
|
58
|
+
* Point the view at `path` without rendering — {@link render} does that, and doing it
|
|
59
|
+
* here as well would rebuild the rows twice per change.
|
|
60
|
+
*
|
|
61
|
+
* Distinct from {@link reset} because it NAMES the destination: a popover menu can be
|
|
62
|
+
* opened straight into a submenu, and a caller that had to open the parent first and
|
|
63
|
+
* then click into it would be reporting the reader's journey as the widget's state.
|
|
64
|
+
*/
|
|
65
|
+
showPage(path: AdwMenuPath): void;
|
|
48
66
|
/**
|
|
49
67
|
* The rows a key can actually REACH, which is the only list worth focusing into.
|
|
50
68
|
*
|
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
/** Which axis the items are laid out along — it decides which arrow keys move. */
|
|
2
2
|
export type AdwRovingOrientation = 'horizontal' | 'vertical';
|
|
3
|
+
/**
|
|
4
|
+
* Where one key lands, given where the cursor is.
|
|
5
|
+
*
|
|
6
|
+
* The DEFAULT is the neighbouring index, which is what a single run of items means. A widget
|
|
7
|
+
* whose two axes do NOT both mean "one along" supplies its own: `Gtk.FlowBox` binds
|
|
8
|
+
* `GTK_MOVEMENT_VISUAL_POSITIONS` sideways and `GTK_MOVEMENT_DISPLAY_LINES` vertically
|
|
9
|
+
* (gtkflowbox.c:3944-3951), and against a grid those differ — from the last cell of a full
|
|
10
|
+
* line, "left" is the first cell of the next one by INDEX and one row UP by POSITION.
|
|
11
|
+
*/
|
|
12
|
+
export type AdwRovingStep = (items: readonly HTMLElement[], from: number, direction: -1 | 1) => number | null;
|
|
3
13
|
export interface AdwRovingFocusInit {
|
|
4
14
|
/**
|
|
5
15
|
* The element the listener sits on — the custom element itself, so items rebuilt at
|
|
6
16
|
* any time are still covered.
|
|
7
17
|
*/
|
|
8
18
|
host: HTMLElement;
|
|
9
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Which axis the arrows move along. A FUNCTION where the widget is a `GtkOrientable`
|
|
21
|
+
* and can be turned after the listener is installed — `<gtk-list-view>` and
|
|
22
|
+
* `<gtk-flow-box>` are, and a value read once at install time pointed its arrow keys at
|
|
23
|
+
* the axis it had at connect for the rest of its life.
|
|
24
|
+
*/
|
|
25
|
+
orientation: AdwRovingOrientation | (() => AdwRovingOrientation);
|
|
10
26
|
/**
|
|
11
27
|
* The items a key may land on, in visual order. The widget filters: a `hidden` or
|
|
12
28
|
* `disabled` item is not navigable, and leaving one in would strand the user on a
|
|
@@ -18,6 +34,18 @@ export interface AdwRovingFocusInit {
|
|
|
18
34
|
* focus travels with the key either way ({@link attachRovingFocus}).
|
|
19
35
|
*/
|
|
20
36
|
select: (item: HTMLElement) => void;
|
|
37
|
+
/** Where a previous/next key lands. Defaults to the neighbouring index. */
|
|
38
|
+
step?: AdwRovingStep;
|
|
39
|
+
/**
|
|
40
|
+
* A SECOND pair of arrows, for the one widget GTK gives both. It contributes those two
|
|
41
|
+
* keys ONLY — never `Home` and `End`, which name the two ENDS of the box and stay one
|
|
42
|
+
* answer however many axes ask.
|
|
43
|
+
*/
|
|
44
|
+
crossAxis?: {
|
|
45
|
+
orientation: AdwRovingOrientation | (() => AdwRovingOrientation);
|
|
46
|
+
/** Required here, unlike on the primary axis: a second axis is a grid, not a run. */
|
|
47
|
+
step: AdwRovingStep;
|
|
48
|
+
};
|
|
21
49
|
}
|
|
22
50
|
/**
|
|
23
51
|
* Make a roving tabindex navigable: arrows step, Home/End jump, and focus travels with
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** One emoji entry: the code points and the words the search reads. */
|
|
2
|
+
export interface EmojiEntry {
|
|
3
|
+
/** The code points, as one string — a ZWJ sequence is already spelled out. */
|
|
4
|
+
readonly text: string;
|
|
5
|
+
/** The English name — `filter_func`'s second list. */
|
|
6
|
+
readonly name: string;
|
|
7
|
+
/** Search keywords, one word each — `filter_func`'s third list. */
|
|
8
|
+
readonly keywords: readonly string[];
|
|
9
|
+
}
|
|
10
|
+
/** One `EmojiSection`, with the heading and the toolbar button's own label. */
|
|
11
|
+
export interface EmojiCategory {
|
|
12
|
+
/** The section key: `recent`, `people`, … */
|
|
13
|
+
readonly id: string;
|
|
14
|
+
/** The heading above the section, `''` for the one without (recent). */
|
|
15
|
+
readonly heading: string;
|
|
16
|
+
/** The `.ui` tooltip of the toolbar button, which for every section but recent is its heading. */
|
|
17
|
+
readonly tooltip: string;
|
|
18
|
+
/** The emoji, in the order GTK appends them. */
|
|
19
|
+
readonly entries: readonly EmojiEntry[];
|
|
20
|
+
}
|
|
21
|
+
/** `MAX_RECENT` — 7 columns by 3 rows (gtkemojichooser.c:363). */
|
|
22
|
+
export declare const EMOJI_MAX_RECENT: number;
|
|
23
|
+
/** `EMOJI_SKIN_TONES` — `1F3FB`…`1F3FF`, the five modifiers (gtkemojichooser.c:530). */
|
|
24
|
+
export declare const EMOJI_SKIN_TONES: readonly string[];
|
|
25
|
+
/** `has_variations` (gtkemojichooser.c:489-508) — whether an entry carries a skin slot. */
|
|
26
|
+
export declare function hasVariations(entry: EmojiEntry): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The nine category sections, in `setup_section`'s registration order. `recent` is NOT
|
|
29
|
+
* here: its emoji come from `GSettings` (`recently-used-emoji`), so the element owns
|
|
30
|
+
* that list and this table does not know about it.
|
|
31
|
+
*/
|
|
32
|
+
export declare const EMOJI_CATEGORIES: readonly EmojiCategory[];
|
|
33
|
+
/** The section ids in order, `recent` FIRST — the struct order of `GtkEmojiChooser`. */
|
|
34
|
+
export declare const EMOJI_SECTION_IDS: readonly string[];
|
|
35
|
+
/** The heading of a section, `''` for `recent` — the one with no heading widget at all. */
|
|
36
|
+
export declare function emojiHeading(id: string): string;
|
|
37
|
+
/** The toolbar button's tooltip for a section: its heading, or `Recent` for the first. */
|
|
38
|
+
export declare function emojiTooltip(id: string): string;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** The horizontal slant Pango spells. CSS has `italic` and `oblique`, and so does this. */
|
|
2
|
+
export type FontSlant = 'normal' | 'italic' | 'oblique';
|
|
3
|
+
/** The four widths Pango distinguishes; CSS `font-stretch` names the same three. */
|
|
4
|
+
export type FontWidth = 'normal' | 'condensed' | 'expanded';
|
|
5
|
+
/**
|
|
6
|
+
* The fields `GtkFontDialogButton` reads. `variant` and the exact family/face are
|
|
7
|
+
* deliberately absent: the C compares them in `font_description_style_equal`
|
|
8
|
+
* (gtkfontdialogbutton.c:586-592) to pick a face out of a font map, and a browser page
|
|
9
|
+
* has no font map — see `font-button`'s header for what stands in for it.
|
|
10
|
+
*/
|
|
11
|
+
export interface PangoFontDescription {
|
|
12
|
+
/** The family name, or `''` for the "unset" a fresh description carries. */
|
|
13
|
+
family: string;
|
|
14
|
+
slant: FontSlant;
|
|
15
|
+
/** Pango's numeric weight, which is also CSS's `font-weight` number. */
|
|
16
|
+
weight: number;
|
|
17
|
+
width: FontWidth;
|
|
18
|
+
/** The size as written. `unit` says what it is counted in. */
|
|
19
|
+
size: number;
|
|
20
|
+
/** `pango_font_description_set_size_is_absolute` — `true` means the size is pixels. */
|
|
21
|
+
absolute: boolean;
|
|
22
|
+
}
|
|
23
|
+
/** The description `gtk_font_dialog_button_init` builds: `pango_font_description_from_string ("Sans 12")`. */
|
|
24
|
+
export declare const PANGO_FONT_DESCRIPTION_DEFAULT: PangoFontDescription;
|
|
25
|
+
/**
|
|
26
|
+
* `pango_font_description_from_string` — family, style words and a trailing size, in any
|
|
27
|
+
* order.
|
|
28
|
+
*
|
|
29
|
+
* Total, like the C: an unrecognised word is not a style, and a family is whatever is
|
|
30
|
+
* left over once the styles and the size are gone — which is why the tokens are consumed
|
|
31
|
+
* from the END, where Pango reads the size, and a token that matches no style word stays
|
|
32
|
+
* in the family.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseFontDescription(text: string): PangoFontDescription;
|
|
35
|
+
/** `pango_font_description_to_string` — the same words, in the same order. */
|
|
36
|
+
export declare function formatFontDescription(description: PangoFontDescription): string;
|
|
37
|
+
/**
|
|
38
|
+
* `pango_font_description_equal` — every field, as Pango's own comparison is. `font-desc`
|
|
39
|
+
* is `G_PARAM_EXPLICIT_NOTIFY` (:345), so a write of the description already held must be
|
|
40
|
+
* the write that changes nothing (gtkfontdialogbutton.c:869-871).
|
|
41
|
+
*/
|
|
42
|
+
export declare function fontDescriptionEqual(a: PangoFontDescription, b: PangoFontDescription): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* `update_font_info`'s size format, `g_strdup_printf ("%2.4g%s", size / PANGO_SCALE, …)`
|
|
45
|
+
* (gtkfontdialogbutton.c:669-673) — four significant digits with the zeros stripped, and
|
|
46
|
+
* `px` when the size is absolute. `%g` is what `Number#toPrecision` computes and
|
|
47
|
+
* `Number#toString` then tidies, which is the whole of the difference between `12` and
|
|
48
|
+
* `12.00`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function formatFontSize(size: number, absolute: boolean): string;
|
|
51
|
+
/**
|
|
52
|
+
* The CSS projection of a description — `apply_use_font`'s attribute list
|
|
53
|
+
* (gtkfontdialogbutton.c:689-720), as the four LONGHANDS Pango's own attribute list sets.
|
|
54
|
+
*
|
|
55
|
+
* `use_size` is the one field `apply_use_font` may unset, and it is a parameter here for
|
|
56
|
+
* that reason: `PANGO_FONT_MASK_SIZE` goes only when the size is not wanted.
|
|
57
|
+
*
|
|
58
|
+
* The longhands rather than the `font` SHORTHAND, because the shorthand is all-or-nothing:
|
|
59
|
+
* one rejected token discards the family with it, and a description is half its fields.
|
|
60
|
+
* `cssFontShorthand` is the same projection for the one caller that needs a string —
|
|
61
|
+
* `FontFaceSet.check()`, which takes nothing else.
|
|
62
|
+
*
|
|
63
|
+
* THE SIZE CARRIES A UNIT, and Pango's own string does not — which is the one place this
|
|
64
|
+
* projection is not a rename. A bare `12` is a size in Pango (points, because
|
|
65
|
+
* `PangoFontDescription`'s size is divided by `PANGO_SCALE` and Pango's renderer reads
|
|
66
|
+
* points) and a length a CSS declaration REJECTS. `pt` is the unit Pango means — one point
|
|
67
|
+
* is 1/72 inch in both — so an absolute size keeps `px` and everything else becomes `pt`.
|
|
68
|
+
*/
|
|
69
|
+
export interface CssFontParts {
|
|
70
|
+
fontFamily: string;
|
|
71
|
+
fontWeight: string;
|
|
72
|
+
fontStyle: string;
|
|
73
|
+
fontStretch: string;
|
|
74
|
+
fontSize: string;
|
|
75
|
+
}
|
|
76
|
+
/** An unset family is "None" as a LABEL, not a font to render in — so the generic is. */
|
|
77
|
+
export declare function cssFontParts(description: PangoFontDescription, useSize: boolean): CssFontParts;
|
|
78
|
+
/** {@link cssFontParts} as one `font` shorthand, for the string-shaped caller. */
|
|
79
|
+
export declare function cssFontShorthand(description: PangoFontDescription, useSize: boolean): string;
|
|
80
|
+
/**
|
|
81
|
+
* Pango's feature list as the TAGS a CSS `font-feature-settings` value is built from — the
|
|
82
|
+
* one place this module translates rather than renames.
|
|
83
|
+
*
|
|
84
|
+
* `pango_font_features_to_string` writes a comma-separated list of bare tags with `-` for
|
|
85
|
+
* off, which is the same LIST and not the same SYNTAX: CSS wants each tag quoted (`"liga"`).
|
|
86
|
+
*
|
|
87
|
+
* The tags come back as a LIST on purpose. `font-feature-settings` is all-or-nothing, and
|
|
88
|
+
* MEASURED in Firefox: the declaration `"liga", "-kern"` is DROPPED WHOLE — an unknown tag
|
|
89
|
+
* invalidates the value, not just itself — while `"liga"` alone stands. A single joined
|
|
90
|
+
* string would therefore lose every tag the browser does not know, which is a silent
|
|
91
|
+
* difference from Pango's "keep what you recognise". The caller applies the tags one at a
|
|
92
|
+
* time so a rejection costs one feature.
|
|
93
|
+
*
|
|
94
|
+
* `tnum=1` keeps its `=1`, which is Pango's own spelling for "on with a value".
|
|
95
|
+
*/
|
|
96
|
+
export declare function cssFontFeatureTags(features: string): string[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkAboutDialogTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkActionBarTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkApplicationWindowTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkAspectFrameTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkCalendarTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkCenterBoxTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkColorDialogButtonTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkColumnViewTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkDragIconTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkDrawingAreaTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkEditableLabelTest: () => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GtkEmojiChooserTest: () => Promise<void>;
|