@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,108 @@
|
|
|
1
|
+
// <gtk-application-window> — a `Gtk.Window` that knows about a `GtkApplication`.
|
|
2
|
+
//
|
|
3
|
+
// The subclass has exactly ONE property of its own, `show-menubar` (gtkapplicationwindow.c:
|
|
4
|
+
// `PROP_SHOWMENUBAR`, :693), and everything else it brings is the ACTION groups and the
|
|
5
|
+
// menubar: `init` inserts a `win` action group into the window (:435) and creates the private
|
|
6
|
+
// `menubar_section` menu the bar is assembled from (:436-437).
|
|
7
|
+
//
|
|
8
|
+
// THE MENUBAR, AND WHY IT IS A SLOT HERE. `update_menubar` (:392-431) shows the bar only when
|
|
9
|
+
// `show_menubar` is set AND the section has at least one item, and it BUILDS the bar with
|
|
10
|
+
// `gtk_popover_menu_bar_new_from_model` over a combined `GMenu` — a `GMenuModel` read from the
|
|
11
|
+
// `GtkApplication`, which no attribute can carry and no markup can spell. So the bar is a
|
|
12
|
+
// `menubar` SLOT here: the application's own menubar view, placed where `update_menubar`
|
|
13
|
+
// parents it — above the content and below the titlebar, because `gtk_window_set_titlebar`
|
|
14
|
+
// puts the titlebar above the window's child. The visibility rule is the C's, both halves of
|
|
15
|
+
// it: no children, or `show-menubar="false"`, and the strip is hidden.
|
|
16
|
+
//
|
|
17
|
+
// THE `win.` / `app.` PREFIXES. `GtkApplicationWindow` exports window actions under `win.` and
|
|
18
|
+
// application-wide ones under `app.` (:48-56), and any `GtkActionable` inside the window can
|
|
19
|
+
// activate either. A page has no `GActionMap`, so nothing is exported here; what this element
|
|
20
|
+
// adds over `<gtk-window>` is the strip and the property that shows it.
|
|
21
|
+
//
|
|
22
|
+
// Reference: refs/gtk/gtk/gtkapplicationwindow.c
|
|
23
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_window.scss (GtkWindow)
|
|
24
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
25
|
+
// Modifications: Implemented as a Web Component for @gjsify/adwaita-web.
|
|
26
|
+
|
|
27
|
+
import type { AdwSlot } from '../slotted-children.js';
|
|
28
|
+
import { GtkWindow } from './gtk-window.js';
|
|
29
|
+
|
|
30
|
+
export class GtkApplicationWindow extends GtkWindow {
|
|
31
|
+
private _menubar: HTMLDivElement | null = null;
|
|
32
|
+
private _menubarObserver: MutationObserver | null = null;
|
|
33
|
+
|
|
34
|
+
static get observedAttributes(): string[] {
|
|
35
|
+
return [...GtkWindow.observedAttributes, 'show-menubar'];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** `Gtk.ApplicationWindow:show-menubar` — whether the window shows a menubar of its own. */
|
|
39
|
+
get showMenubar(): boolean {
|
|
40
|
+
return this.getAttribute('show-menubar') === 'true';
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
set showMenubar(value: boolean) {
|
|
44
|
+
this._write('show-menubar', String(value));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* The menubar strip, created once and reused: `strips()` and `extraSlots()` both ask for
|
|
49
|
+
* it, so whichever runs first builds it and the other finds it.
|
|
50
|
+
*/
|
|
51
|
+
private menubarSection(): HTMLDivElement {
|
|
52
|
+
if (this._menubar === null) {
|
|
53
|
+
const section = document.createElement('div');
|
|
54
|
+
section.className = 'adw-gtk-application-window-menubar';
|
|
55
|
+
this._menubar = section;
|
|
56
|
+
}
|
|
57
|
+
return this._menubar;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Titlebar, then menubar, then content — the order `update_menubar` parents the bar at
|
|
62
|
+
* (:418) inside a window whose titlebar sits above its own child.
|
|
63
|
+
*/
|
|
64
|
+
protected override strips(): Node[] {
|
|
65
|
+
return [this._titlebar, this.menubarSection(), this._content];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** The `menubar` slot, which is where a `GtkPopoverMenuBar` goes. */
|
|
69
|
+
protected override extraSlots(): AdwSlot[] {
|
|
70
|
+
return [{ name: 'menubar', into: this.menubarSection() }];
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
connectedCallback() {
|
|
74
|
+
super.connectedCallback();
|
|
75
|
+
this._followMenubar();
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
disconnectedCallback() {
|
|
79
|
+
this._menubarObserver?.disconnect();
|
|
80
|
+
this._menubarObserver = null;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
attributeChangedCallback(name: string) {
|
|
84
|
+
super.attributeChangedCallback(name);
|
|
85
|
+
if (name === 'show-menubar') this._renderMenubar();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* `update_menubar`'s visibility rule (gtkapplicationwindow.c:400-402), BOTH halves: the
|
|
90
|
+
* property AND at least one item in the section. This element has no `GMenuModel` to ask,
|
|
91
|
+
* so the second half is the SLOT — an empty `menubar` slot is an empty `menubar_section`.
|
|
92
|
+
* The observer is what makes the second half live: `bindSlottedChildren` adopts a
|
|
93
|
+
* `slot="menubar"` child after connect, and a bar that appeared then must appear.
|
|
94
|
+
*/
|
|
95
|
+
private _followMenubar(): void {
|
|
96
|
+
this._menubarObserver?.disconnect();
|
|
97
|
+
this._menubarObserver = new MutationObserver(() => this._renderMenubar());
|
|
98
|
+
this._menubarObserver.observe(this.menubarSection(), { childList: true });
|
|
99
|
+
this._renderMenubar();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
private _renderMenubar(): void {
|
|
103
|
+
const menubar = this.menubarSection();
|
|
104
|
+
menubar.hidden = !this.showMenubar || menubar.childElementCount === 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
customElements.define('gtk-application-window', GtkApplicationWindow);
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// <gtk-aspect-frame> — Gtk.AspectFrame: one child, given a shape and a place inside it.
|
|
2
|
+
//
|
|
3
|
+
// `ratio` is the width over the height of the CHILD, `xalign` / `yalign` say where that box
|
|
4
|
+
// sits in the space left over, and `obey-child` decides which ratio wins: TRUE — the pspec
|
|
5
|
+
// default (gtkaspectframe.c:180-183) — takes the ratio from the child's own natural size
|
|
6
|
+
// and IGNORES `ratio` (get_effective_ratio, gtkaspectframe.c:525-551). That default maps
|
|
7
|
+
// exactly, because a box with no `aspect-ratio` IS its own natural ratio; so the TRUE case
|
|
8
|
+
// writes no ratio at all rather than measuring the child and writing the answer back.
|
|
9
|
+
//
|
|
10
|
+
// THE ONE DIVERGENCE, and it is about WHICH AXIS BINDS. GTK sizes the child to
|
|
11
|
+
// `MIN (W, ratio * H)` on the inline axis and takes the block axis from that
|
|
12
|
+
// (gtkaspectframe.c:566-575). A CSS box has one definite axis and one the ratio derives, and
|
|
13
|
+
// a max constraint on the definite axis does not re-derive the other for a non-replaced
|
|
14
|
+
// element — so the child here FILLS the inline axis (`flex: 1 1 auto`, the growth
|
|
15
|
+
// `compute_child_allocation` does whether or not the child asks to expand) and its block axis
|
|
16
|
+
// follows the ratio, capped by `max-height`. That is GTK's answer whenever the WIDTH runs out
|
|
17
|
+
// first, which is every frame wider than `ratio * its height`; where the HEIGHT is the one
|
|
18
|
+
// that runs out, GTK narrows the child to `ratio * height` and this port draws a full-width
|
|
19
|
+
// box instead. Declared because it is visible, not because it is tidy.
|
|
20
|
+
//
|
|
21
|
+
// The two alignments move the child in what is left over (`x * (W - child_w)`,
|
|
22
|
+
// `y * (H - child_h)`, gtkaspectframe.c:576-577), which after the axis above is the same
|
|
23
|
+
// narrow case GTK itself has. Between the three zones they take the house's THREE-ZONE
|
|
24
|
+
// mapping (adwaita-core's `labelYalignAlignItems`, which `<gtk-label>` reads for `yalign`):
|
|
25
|
+
// CSS has three `align-items` / `justify-content` keywords and no ratio.
|
|
26
|
+
//
|
|
27
|
+
// GTK's minimum size (gtkaspectframe.c:604-630, `MAX (min_w, ceil (min_h * ratio))`) needs
|
|
28
|
+
// no rule of its own: a box with an `aspect-ratio` already derives the minimum of the other
|
|
29
|
+
// axis from it, and CSS 2.1 §10.4 settles the other end — `min-width` wins over `max-width`,
|
|
30
|
+
// so a child that declares a minimum keeps it whatever cap `max-width` writes.
|
|
31
|
+
//
|
|
32
|
+
// A11Y: `role="generic"`, GtkAspectFrame's own accessible role (gtkaspectframe.c:195).
|
|
33
|
+
//
|
|
34
|
+
// Reference: refs/gtk/gtk/gtkaspectframe.c:153-195, :525-630
|
|
35
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
36
|
+
// Modifications: Implemented as a Web Component for @gjsify/adwaita-web.
|
|
37
|
+
|
|
38
|
+
import { glibClamp, labelYalignAlignItems } from '@gjsify/adwaita-core';
|
|
39
|
+
|
|
40
|
+
import { bindSlottedChildren } from '../slotted-children.js';
|
|
41
|
+
|
|
42
|
+
/** `Gtk.AspectFrame:ratio`'s pspec range and default (gtkaspectframe.c:124-125, :172-175). */
|
|
43
|
+
const RATIO_MIN = 0.0001;
|
|
44
|
+
const RATIO_MAX = 10000;
|
|
45
|
+
const RATIO_DEFAULT = 1.0;
|
|
46
|
+
|
|
47
|
+
/** `xalign` / `yalign` are held in 0…1 with `0.5` as their default (gtkaspectframe.c:153-163). */
|
|
48
|
+
const ALIGN_DEFAULT = 0.5;
|
|
49
|
+
|
|
50
|
+
function normalizeAlign(value: string | null): number {
|
|
51
|
+
const parsed = Number.parseFloat(value ?? '');
|
|
52
|
+
return Number.isFinite(parsed) ? glibClamp(parsed, 0, 1) : ALIGN_DEFAULT;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** `Gtk.AspectFrame:ratio`, clamped to the pspec's range; unparseable is the default. */
|
|
56
|
+
function normalizeRatio(value: string | null): number {
|
|
57
|
+
const parsed = Number.parseFloat(value ?? '');
|
|
58
|
+
return Number.isFinite(parsed) ? glibClamp(parsed, RATIO_MIN, RATIO_MAX) : RATIO_DEFAULT;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export class GtkAspectFrame extends HTMLElement {
|
|
62
|
+
static get observedAttributes() {
|
|
63
|
+
return ['ratio', 'xalign', 'yalign', 'obey-child'];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** `Gtk.AspectFrame:ratio` — the width/height of the child. Ignored under `obey-child`. */
|
|
67
|
+
get ratio(): number {
|
|
68
|
+
return normalizeRatio(this.getAttribute('ratio'));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
set ratio(value: number) {
|
|
72
|
+
this.setAttribute('ratio', String(value));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** `Gtk.AspectFrame:xalign` — where the child sits horizontally. `0.5` is the centre. */
|
|
76
|
+
get xalign(): number {
|
|
77
|
+
return normalizeAlign(this.getAttribute('xalign'));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
set xalign(value: number) {
|
|
81
|
+
this.setAttribute('xalign', String(value));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** `Gtk.AspectFrame:yalign` — where the child sits vertically. `0.5` is the centre. */
|
|
85
|
+
get yalign(): number {
|
|
86
|
+
return normalizeAlign(this.getAttribute('yalign'));
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
set yalign(value: number) {
|
|
90
|
+
this.setAttribute('yalign', String(value));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* `Gtk.AspectFrame:obey-child` — TRUE (the pspec default, and therefore the ABSENCE of
|
|
95
|
+
* the attribute) takes the ratio from the child and ignores `ratio`. Spelled as
|
|
96
|
+
* `obey-child="false"` rather than as an inverted attribute, because the default is the
|
|
97
|
+
* affirmative one and every other boolean on every other element here means "present".
|
|
98
|
+
*/
|
|
99
|
+
get obeyChild(): boolean {
|
|
100
|
+
const raw = this.getAttribute('obey-child');
|
|
101
|
+
return raw === null || (raw !== 'false' && raw !== '0');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
set obeyChild(value: boolean) {
|
|
105
|
+
if (value) this.setAttribute('obey-child', 'true');
|
|
106
|
+
else this.setAttribute('obey-child', 'false');
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/** `Gtk.AspectFrame:child` — the single widget the frame shapes. */
|
|
110
|
+
get child(): HTMLElement | null {
|
|
111
|
+
return (this.firstElementChild as HTMLElement | null) ?? null;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
set child(value: HTMLElement | null) {
|
|
115
|
+
if (this.firstElementChild !== null) this.firstElementChild.remove();
|
|
116
|
+
if (value !== null) this.append(value);
|
|
117
|
+
// The new child needs the shape written onto it, which is all this widget does.
|
|
118
|
+
this._sync();
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
connectedCallback() {
|
|
122
|
+
bindSlottedChildren(this, [{ name: 'child', into: this }]);
|
|
123
|
+
this.setAttribute('role', 'generic');
|
|
124
|
+
this._sync();
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
attributeChangedCallback(name: string, old: string | null, value: string | null) {
|
|
128
|
+
this._sync();
|
|
129
|
+
if (!this.isConnected) return;
|
|
130
|
+
const next = this._normalized(name, value);
|
|
131
|
+
if (next === this._normalized(name, old)) return;
|
|
132
|
+
this.dispatchEvent(new CustomEvent(`notify::${name}`, { bubbles: true, detail: { [name]: next } }));
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
private _normalized(name: string, raw: string | null): number | boolean {
|
|
136
|
+
if (name === 'ratio') return normalizeRatio(raw);
|
|
137
|
+
if (name === 'xalign' || name === 'yalign') return normalizeAlign(raw);
|
|
138
|
+
return raw !== null && raw !== 'false' && raw !== '0';
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
private _sync(): void {
|
|
142
|
+
const child = this.child;
|
|
143
|
+
if (child === null) return;
|
|
144
|
+
const shape = child.style;
|
|
145
|
+
// The child's own box, written because GTK writes the allocation on the CHILD.
|
|
146
|
+
if (this.obeyChild) shape.removeProperty('aspect-ratio');
|
|
147
|
+
else shape.aspectRatio = String(this.ratio);
|
|
148
|
+
// `flex: 1 1 auto` is the growth `compute_child_allocation` does unconditionally:
|
|
149
|
+
// the child takes as much of the frame as the ratio lets it, whether or not it asks
|
|
150
|
+
// to expand — which is the whole point of the widget, and why the ratio rather than
|
|
151
|
+
// `hexpand` is what decides its size.
|
|
152
|
+
shape.flex = '1 1 auto';
|
|
153
|
+
shape.maxWidth = '100%';
|
|
154
|
+
shape.maxHeight = '100%';
|
|
155
|
+
this.style.justifyContent = labelYalignAlignItems(this.xalign);
|
|
156
|
+
this.style.alignItems = labelYalignAlignItems(this.yalign);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
customElements.define('gtk-aspect-frame', GtkAspectFrame);
|
|
@@ -17,12 +17,16 @@
|
|
|
17
17
|
import { buttonStyleClasses } from '@gjsify/adwaita-core';
|
|
18
18
|
|
|
19
19
|
import { bindSlottedChildren } from '../slotted-children.js';
|
|
20
|
+
import type { DispatchedSignals } from '../signals.js';
|
|
20
21
|
import { createGtkImage } from './gtk-image.js';
|
|
21
22
|
|
|
22
23
|
/** The boolean attributes that select a style class; the mapping lives in the core. */
|
|
23
24
|
const STYLE_ATTRIBUTES = ['flat', 'suggested', 'destructive', 'circular', 'pill'] as const;
|
|
24
25
|
|
|
25
26
|
export class GtkButton extends HTMLElement {
|
|
27
|
+
/** The GTK signals this element dispatches, each with the DOM event it arrives as (ADR 0093). */
|
|
28
|
+
static readonly signals: DispatchedSignals = { clicked: 'click' };
|
|
29
|
+
|
|
26
30
|
private _button!: HTMLButtonElement;
|
|
27
31
|
private _label = '';
|
|
28
32
|
private _initialized = false;
|
|
@@ -118,7 +122,15 @@ export class GtkButton extends HTMLElement {
|
|
|
118
122
|
btn.removeAttribute('aria-label');
|
|
119
123
|
}
|
|
120
124
|
btn.disabled = this.hasAttribute('disabled');
|
|
125
|
+
this.decorate(btn);
|
|
121
126
|
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Last step of every render, after the class and the content are written. A subclass
|
|
130
|
+
* adds its own state to the inner button here, because `_render` resets `className` and
|
|
131
|
+
* anything set earlier would be gone with it.
|
|
132
|
+
*/
|
|
133
|
+
protected decorate(_button: HTMLButtonElement): void {}
|
|
122
134
|
}
|
|
123
135
|
|
|
124
136
|
customElements.define('gtk-button', GtkButton);
|