@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,131 @@
|
|
|
1
|
+
// _scrolled_window.scss — <gtk-scrolled-window>: the allocation GTK's
|
|
2
|
+
// `gtk_scrolled_window_allocate_child` / `allocate_scrollbar` pair performs.
|
|
3
|
+
//
|
|
4
|
+
// THE PLACEMENT IS A GRID of two cells and one corner, because that is what
|
|
5
|
+
// `gtk_scrolled_window_allocate_scrollbar` (gtkscrolledwindow.c:3227-3305) computes: the
|
|
6
|
+
// content takes what is left after each bar has taken its edge, and which edge that is comes
|
|
7
|
+
// from two booleans the C derives from `window-placement`.
|
|
8
|
+
//
|
|
9
|
+
// · `is_top` — `window-placement` is `top-left` or `top-right` — decides whether the
|
|
10
|
+
// HORIZONTAL bar is on the far (bottom) row or the near (top) one.
|
|
11
|
+
// · `is_left = ltr != is_start` — `is_start` being the same corner's left half — decides
|
|
12
|
+
// whether the VERTICAL bar is on the end edge or the start one. The direction half is
|
|
13
|
+
// `:dir(rtl)` here rather than a class, because C reads it off the widget and CSS reads it
|
|
14
|
+
// off the document.
|
|
15
|
+
//
|
|
16
|
+
// The third corner cell is `junction`, the node GTK draws where two bars meet
|
|
17
|
+
// (gtkscrolledwindow.c:134-135); libadwaita paints nothing there, and neither does this — an
|
|
18
|
+
// empty grid cell is the same absence with no node to hold it.
|
|
19
|
+
//
|
|
20
|
+
// AN OVERLAY INDICATOR IS LAID OUT INSIDE THE CONTENT, not beside it. That is
|
|
21
|
+
// `priv->use_indicators` in the same function (gtkscrolledwindow.c:3255-3300): the bar's
|
|
22
|
+
// allocation starts at the content's far edge MINUS the bar's own thickness, so it lies over
|
|
23
|
+
// the content instead of shrinking it. Hence the second template — positioned against the
|
|
24
|
+
// window, which is `position: relative` here for the reason GTK's is a child of the
|
|
25
|
+
// scrolledwindow node.
|
|
26
|
+
//
|
|
27
|
+
// `.frame` is `GtkScrolledWindow:has-frame`, which its own CSS-node documentation spells out:
|
|
28
|
+
// "It gets a .frame style class added when `has-frame` is TRUE" (gtkscrolledwindow.c:122-124).
|
|
29
|
+
// The rule behind the class is libadwaita's `_misc.scss:4-7`, which `_style_classes.scss`
|
|
30
|
+
// already carries, so no selector for it is repeated here.
|
|
31
|
+
|
|
32
|
+
gtk-scrolled-window {
|
|
33
|
+
position: relative;
|
|
34
|
+
display: grid;
|
|
35
|
+
// GTK asks its parent for as little as it can: `gtk_scrolled_window_measure` reports the
|
|
36
|
+
// child's minimum only under `POLICY_NEVER` (gtkscrolledwindow.c:1846-1895) and the bars'
|
|
37
|
+
// own thickness otherwise. `minmax(0, 1fr)` is that request — a track that may collapse to
|
|
38
|
+
// nothing rather than one that demands its content's height, which is what
|
|
39
|
+
// `gtk_widget_set_size_request` lets an author override afterwards.
|
|
40
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
41
|
+
grid-template-rows: minmax(0, 1fr) auto;
|
|
42
|
+
min-width: 0;
|
|
43
|
+
min-height: 0;
|
|
44
|
+
// GTK GIVES THIS WIDGET AN ALLOCATION from its parent and never decides its own size:
|
|
45
|
+
// `gtk_scrolled_window_measure` reports the child's MINIMUM and the bars' own thickness
|
|
46
|
+
// (gtkscrolledwindow.c:1846-1895), and `size_allocate` fills whatever it is
|
|
47
|
+
// given. A browser scrolled window needs the same from its author — a height, a
|
|
48
|
+
// `flex-basis`, a parent track — because an auto-height box grows with its content and then
|
|
49
|
+
// has nothing to scroll. `flex: 1 1 0%` is that allocation for the ordinary case of a
|
|
50
|
+
// window in a column, and it is 0 in an auto-height column, so an author who wants the
|
|
51
|
+
// natural size writes one.
|
|
52
|
+
flex: 1 1 0%;
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
|
|
55
|
+
> gtk-viewport {
|
|
56
|
+
grid-area: 1 / 1;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// The vertical bar spans BOTH rows, which is `gtk_widget_size_allocate` giving it the
|
|
60
|
+
// whole content height (gtkscrolledwindow.c:3295-3305) minus whatever the horizontal bar
|
|
61
|
+
// takes when that one is a layout neighbour rather than an overlay.
|
|
62
|
+
> gtk-scrollbar.vertical {
|
|
63
|
+
grid-row: 1 / 3;
|
|
64
|
+
grid-column: 2;
|
|
65
|
+
justify-self: end;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
> gtk-scrollbar.horizontal {
|
|
69
|
+
grid-column: 1 / 3;
|
|
70
|
+
grid-row: 2;
|
|
71
|
+
align-self: end;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// `is_top` false: the horizontal bar takes the NEAR row, and the content is what is left.
|
|
75
|
+
&.bottom-left,
|
|
76
|
+
&.bottom-right {
|
|
77
|
+
grid-template-rows: auto minmax(0, 1fr);
|
|
78
|
+
|
|
79
|
+
> gtk-scrollbar.horizontal {
|
|
80
|
+
grid-row: 1;
|
|
81
|
+
align-self: start;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// `is_left` true: the vertical bar takes the START column.
|
|
86
|
+
&.top-right,
|
|
87
|
+
&.bottom-right {
|
|
88
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
89
|
+
|
|
90
|
+
> gtk-scrollbar.vertical {
|
|
91
|
+
grid-column: 1;
|
|
92
|
+
justify-self: start;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// The direction half of `is_left = ltr != is_start`: everything the C inverts under RTL.
|
|
97
|
+
&:dir(rtl) {
|
|
98
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
99
|
+
|
|
100
|
+
> gtk-scrollbar.vertical {
|
|
101
|
+
grid-column: 1;
|
|
102
|
+
justify-self: start;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&.top-right,
|
|
106
|
+
&.bottom-right {
|
|
107
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
108
|
+
|
|
109
|
+
> gtk-scrollbar.vertical {
|
|
110
|
+
grid-column: 2;
|
|
111
|
+
justify-self: end;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// The overlay case, which is the whole of what `use_indicators` changes in the allocation:
|
|
117
|
+
// both bars leave the grid and lie over the content.
|
|
118
|
+
&.overlay-scrolling > gtk-scrollbar.overlay-indicator {
|
|
119
|
+
position: absolute;
|
|
120
|
+
|
|
121
|
+
&.vertical {
|
|
122
|
+
inset-block: 0;
|
|
123
|
+
right: 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
&.horizontal {
|
|
127
|
+
inset-inline: 0;
|
|
128
|
+
bottom: 0;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
// _search_bar.scss — `<gtk-search-bar>`, the strip that reveals a search entry.
|
|
2
|
+
//
|
|
3
|
+
// The whole of libadwaita's rule is `searchbar > revealer > box` plus a `.close` button
|
|
4
|
+
// (_toolbars.scss:113-159): the box is a HEADER BAR surface — the same `--headerbar-bg-color`
|
|
5
|
+
// pair and the same 1px shade along its bottom edge as `adw-header-bar` draws
|
|
6
|
+
// (`_header-bar.scss`) — and the strip sits at the bottom of a window, so that edge is the
|
|
7
|
+
// one that separates it from the content.
|
|
8
|
+
//
|
|
9
|
+
// THE REVEALER IS THE STATE. `search-mode-enabled` IS `reveal-child` (gtksearchbar.c:183-205,
|
|
10
|
+
// 512-517), so the strip animates its own height and the element drives nothing else. One
|
|
11
|
+
// grid row that goes `0fr` → `1fr` is the one CSS mechanism that animates to a height the
|
|
12
|
+
// CONTENT decides; `max-height` would be a guess at that height, and `display: none` would
|
|
13
|
+
// not animate at all.
|
|
14
|
+
//
|
|
15
|
+
// TWO RULES ARE DELIBERATELY ABSENT. `:backdrop` — the dimmed variant libadwaita draws when
|
|
16
|
+
// the window is unfocused (_toolbars.scss:125-133) — has no state here: this port has no
|
|
17
|
+
// toplevel whose focus it could follow. And `%toolbar`'s reset rules (_toolbars.scss:5-66)
|
|
18
|
+
// only classify the BUTTON classes inside a toolbar, which `<gtk-button>` already owns
|
|
19
|
+
// (`_button.scss`).
|
|
20
|
+
//
|
|
21
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_toolbars.scss:109-185 (searchbar)
|
|
22
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
23
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
24
|
+
|
|
25
|
+
gtk-search-bar {
|
|
26
|
+
display: grid;
|
|
27
|
+
// THE REVEALER (`reveal-child`). `0fr` clips the box to nothing without taking it out of
|
|
28
|
+
// the layout, which is what a GTK revealer does; `1fr` gives the box its own height.
|
|
29
|
+
grid-template-rows: 0fr;
|
|
30
|
+
transition: grid-template-rows 200ms ease;
|
|
31
|
+
|
|
32
|
+
&.revealed {
|
|
33
|
+
grid-template-rows: 1fr;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@media (prefers-reduced-motion: reduce) {
|
|
37
|
+
transition: none;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.adw-search-bar-box {
|
|
41
|
+
// The clip the `0fr` row needs, and the header-bar surface libadwaita puts on it
|
|
42
|
+
// (_toolbars.scss:115-122).
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
min-height: 0;
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: 6px;
|
|
48
|
+
padding: 6px 6px 7px 6px;
|
|
49
|
+
background-color: var(--headerbar-bg-color);
|
|
50
|
+
color: var(--headerbar-fg-color);
|
|
51
|
+
box-shadow: inset 0 -1px var(--headerbar-shade-color);
|
|
52
|
+
|
|
53
|
+
@media (prefers-contrast: more) {
|
|
54
|
+
box-shadow: inset 0 -1px var(--separator-color);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// The `GtkCenterBox` the C wraps the child in (gtksearchbar.c:378-386): the entry takes
|
|
59
|
+
// the free space, the close button sits at its end.
|
|
60
|
+
.adw-search-bar-center {
|
|
61
|
+
display: flex;
|
|
62
|
+
align-items: center;
|
|
63
|
+
gap: 6px;
|
|
64
|
+
flex: 1 1 auto;
|
|
65
|
+
min-width: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// `button.close` (_toolbars.scss:137-153): a 18px round flat button, with the 10px/4px
|
|
69
|
+
// ltr margins upstream writes and the 4px/10px rtl mirror.
|
|
70
|
+
.adw-search-bar-close {
|
|
71
|
+
display: inline-flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
justify-content: center;
|
|
74
|
+
min-width: 18px;
|
|
75
|
+
min-height: 18px;
|
|
76
|
+
margin-left: 10px;
|
|
77
|
+
margin-right: 4px;
|
|
78
|
+
padding: 4px;
|
|
79
|
+
border: none;
|
|
80
|
+
border-radius: 50%;
|
|
81
|
+
background-color: transparent;
|
|
82
|
+
color: inherit;
|
|
83
|
+
cursor: pointer;
|
|
84
|
+
transition: background-color 150ms ease-in-out;
|
|
85
|
+
|
|
86
|
+
&:hover {
|
|
87
|
+
background-color: var(--button-hover-color);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
&:active {
|
|
91
|
+
background-color: var(--button-active-color);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&:focus-visible {
|
|
95
|
+
outline: 2px solid var(--accent-color);
|
|
96
|
+
outline-offset: 1px;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&[hidden] {
|
|
100
|
+
display: none;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// `&:dir(rtl)` (_toolbars.scss:150-153) — the margins swap sides, not the order.
|
|
105
|
+
&:dir(rtl) .adw-search-bar-close {
|
|
106
|
+
margin-left: 4px;
|
|
107
|
+
margin-right: 10px;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// `searchbar.inline` (_toolbars.scss:156-158) drops the header-bar surface, which is what
|
|
111
|
+
// an author adds when the strip sits inside a page rather than at a window's edge.
|
|
112
|
+
&.inline .adw-search-bar-box {
|
|
113
|
+
background-color: transparent;
|
|
114
|
+
color: inherit;
|
|
115
|
+
box-shadow: none;
|
|
116
|
+
padding-bottom: 6px;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// _search_entry.scss — <gtk-search-entry>: the same `entry` box with a magnifying glass
|
|
2
|
+
// leading and a clear button trailing.
|
|
3
|
+
//
|
|
4
|
+
// libadwaita has no `entry.search` rule at all: `Gtk.SearchEntry`'s CSS node is `entry`
|
|
5
|
+
// carrying the `.search` STYLE CLASS (gtksearchentry.c:884), and every rule that reaches it
|
|
6
|
+
// is one `_entries.scss` already states for `entry` (:1-96) — the box, the focus ring, the
|
|
7
|
+
// icons at 70%, and their `&.right { margin-left: 6px }`. So this partial is those same
|
|
8
|
+
// rules applied to the two extra nodes this widget has, and it deliberately adds nothing of
|
|
9
|
+
// its own: a rule that could select `entry.search` but does not is a rule that rots, which
|
|
10
|
+
// is the reasoning `_progress_bar.scss` records for `progressbar.vertical`.
|
|
11
|
+
//
|
|
12
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_entries.scss:1-96
|
|
13
|
+
// Reference: refs/gtk/gtk/gtksearchentry.c:884 (the `.search` style class, and the CSS node name `entry`)
|
|
14
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
15
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
16
|
+
|
|
17
|
+
gtk-search-entry {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex: 1;
|
|
20
|
+
min-width: 0;
|
|
21
|
+
align-items: center;
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
min-height: 34px;
|
|
24
|
+
padding: 0 9px;
|
|
25
|
+
border-radius: var(--button-radius);
|
|
26
|
+
background-color: var(--button-bg-color);
|
|
27
|
+
background-clip: padding-box;
|
|
28
|
+
caret-color: currentColor;
|
|
29
|
+
|
|
30
|
+
@media (prefers-contrast: more) {
|
|
31
|
+
box-shadow: inset 0 0 0 1px var(--border-color);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// `@include focus-ring($focus-state: ':focus-within')` (_entries.scss:17). The host is the
|
|
35
|
+
// focusable node here rather than a wrapping box, so it is the host's own focus that
|
|
36
|
+
// paints the ring — which is the same ring `:focus-within` draws, one node further out.
|
|
37
|
+
&:focus-within {
|
|
38
|
+
outline: 2px solid var(--accent-color);
|
|
39
|
+
outline-offset: -2px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.adw-entry {
|
|
43
|
+
flex: 1;
|
|
44
|
+
min-width: 0;
|
|
45
|
+
min-height: auto;
|
|
46
|
+
padding: 0 6px;
|
|
47
|
+
background-color: transparent;
|
|
48
|
+
box-shadow: none;
|
|
49
|
+
|
|
50
|
+
&:focus,
|
|
51
|
+
&:focus-visible {
|
|
52
|
+
box-shadow: none;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
// `> image { opacity: 70%; &.left { margin-right: 6px } }` (_entries.scss:42-61)
|
|
57
|
+
.adw-search-entry-icon {
|
|
58
|
+
flex: none;
|
|
59
|
+
margin-right: 6px;
|
|
60
|
+
opacity: 70%;
|
|
61
|
+
color: inherit;
|
|
62
|
+
|
|
63
|
+
@media (prefers-contrast: more) {
|
|
64
|
+
opacity: 85%;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.adw-search-entry-clear {
|
|
69
|
+
flex: none;
|
|
70
|
+
margin-left: 6px;
|
|
71
|
+
opacity: 70%;
|
|
72
|
+
color: inherit;
|
|
73
|
+
|
|
74
|
+
@media (prefers-contrast: more) {
|
|
75
|
+
opacity: 85%;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
&:hover {
|
|
79
|
+
opacity: 100%;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
&:active {
|
|
83
|
+
opacity: 80%;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// _separator.scss — <gtk-separator>: a one-pixel rule, and the `.spacer` variant that draws
|
|
2
|
+
// nothing and only keeps its distance.
|
|
3
|
+
//
|
|
4
|
+
// libadwaita's whole rule is `separator { background: $border_color; min-width: 1px;
|
|
5
|
+
// min-height: 1px }` plus `.spacer` (_misc.scss:21-31). GTK gives the widget its extent from
|
|
6
|
+
// the orientation: a horizontal separator is 1px tall and as wide as it is given, a vertical
|
|
7
|
+
// one the reverse. A flex or block parent hands that width through `align-self: stretch`,
|
|
8
|
+
// which is why the cross-axis size is `auto` rather than a number.
|
|
9
|
+
//
|
|
10
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_misc.scss:21-31
|
|
11
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
12
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
13
|
+
|
|
14
|
+
gtk-separator {
|
|
15
|
+
display: block;
|
|
16
|
+
flex: none;
|
|
17
|
+
align-self: stretch;
|
|
18
|
+
background: var(--border-color);
|
|
19
|
+
min-width: 1px;
|
|
20
|
+
min-height: 1px;
|
|
21
|
+
|
|
22
|
+
&.horizontal {
|
|
23
|
+
height: 1px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
&.vertical {
|
|
27
|
+
width: 1px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&.spacer {
|
|
31
|
+
background: none;
|
|
32
|
+
|
|
33
|
+
&.horizontal {
|
|
34
|
+
min-width: 12px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// The generic `.spacer` in `_style_classes.scss` also floors the WIDTH at 12px for an
|
|
38
|
+
// element with no orientation; a vertical separator's width is its 1px, so say so.
|
|
39
|
+
&.vertical {
|
|
40
|
+
min-width: 1px;
|
|
41
|
+
min-height: 12px;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// _shortcuts_dialog.scss — the shortcuts dialog: sections of shortcut rows, and the
|
|
2
|
+
// rows themselves.
|
|
3
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_shortcuts-dialog.scss (16-27 the
|
|
4
|
+
// `.shortcut-row` padding and the `.title-box` subtitle; 1-14 the spacing between the
|
|
5
|
+
// groups inside the dialog's page)
|
|
6
|
+
// Copyright (c) 2025 GNOME Foundation Inc. (libadwaita). LGPLv2.1+
|
|
7
|
+
// Modifications: Implemented for @gjsify/adwaita-web Web Components.
|
|
8
|
+
|
|
9
|
+
// The class list libadwaita gives the dialog itself is `dialog.shortcuts`, and the
|
|
10
|
+
// stylesheet reaches through it into a preferences page. Here the sections are the
|
|
11
|
+
// dialog's children in the base's own content area, so the element is the same hook
|
|
12
|
+
// in one selector — and the CONTENT AREA is the box the stylesheet spaces out
|
|
13
|
+
// (`border-spacing: 18px` there, which is a `GtkBox` doing what a gap does).
|
|
14
|
+
adw-shortcuts-dialog .adw-dialog-content {
|
|
15
|
+
display: flex;
|
|
16
|
+
flex-direction: column;
|
|
17
|
+
gap: 18px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
adw-shortcuts-dialog adw-shortcuts-section {
|
|
21
|
+
flex: 0 0 auto;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
adw-shortcuts-section {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
gap: 6px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.adw-shortcuts-section-title {
|
|
31
|
+
font-weight: 700;
|
|
32
|
+
|
|
33
|
+
&[hidden] {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.adw-shortcuts-section-body {
|
|
39
|
+
display: flex;
|
|
40
|
+
flex-direction: column;
|
|
41
|
+
// The boxed-list surface the sections read as — a card with a hairline, exactly the
|
|
42
|
+
// one `adw-preferences-group` draws and the one `_shortcuts-dialog.scss` inherits.
|
|
43
|
+
border: 1px solid var(--card-shade-color);
|
|
44
|
+
border-radius: var(--card-radius);
|
|
45
|
+
background-color: var(--card-bg-color);
|
|
46
|
+
color: var(--card-fg-color);
|
|
47
|
+
overflow: hidden;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
adw-shortcuts-item {
|
|
51
|
+
display: flex;
|
|
52
|
+
align-items: center;
|
|
53
|
+
justify-content: space-between;
|
|
54
|
+
gap: var(--spacing-m);
|
|
55
|
+
// `.shortcut-row { padding: 9px 12px; min-height: 36px }` (_shortcuts-dialog.scss:16-19)
|
|
56
|
+
padding: 9px 12px;
|
|
57
|
+
min-height: 36px;
|
|
58
|
+
|
|
59
|
+
&[hidden] {
|
|
60
|
+
display: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
&:not(:first-child) {
|
|
64
|
+
border-top: 1px solid var(--card-shade-color);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
+ adw-shortcuts-item {
|
|
68
|
+
border-top: 1px solid var(--card-shade-color);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// `.title-box { border-spacing: 3px }` with the subtitle under the title: the source
|
|
73
|
+
// is a vertical box, so the title and the subtitle stack and the subtitle is dimmed
|
|
74
|
+
// and caption-sized (`@extend .caption; @extend .dimmed`).
|
|
75
|
+
.adw-shortcuts-item-title,
|
|
76
|
+
.adw-shortcuts-item-subtitle {
|
|
77
|
+
flex: 0 1 auto;
|
|
78
|
+
min-width: 0;
|
|
79
|
+
overflow: hidden;
|
|
80
|
+
text-overflow: ellipsis;
|
|
81
|
+
white-space: nowrap;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.adw-shortcuts-item-subtitle {
|
|
85
|
+
font-size: var(--font-size-small);
|
|
86
|
+
opacity: var(--dim-opacity);
|
|
87
|
+
margin-top: 3px;
|
|
88
|
+
|
|
89
|
+
&[hidden] {
|
|
90
|
+
display: none;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.adw-shortcuts-item-label {
|
|
95
|
+
flex: 0 0 auto;
|
|
96
|
+
|
|
97
|
+
&[hidden] {
|
|
98
|
+
display: none;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
// _spin_button.scss — <gtk-spin-button>: an entry-shaped box with a decrement and an
|
|
2
|
+
// increment arrow inside it.
|
|
3
|
+
//
|
|
4
|
+
// libadwaita merges this into `_entries.scss`'s shape: `spinbutton { @extend %entry }`
|
|
5
|
+
// (:1-2), so the OUTER box is an entry — `min-height: 34px`, the 9px horizontal padding,
|
|
6
|
+
// `$button_radius` and `$button_color` — and only the two ARROWS are styled here. That is
|
|
7
|
+
// why the partial below adds no background of its own and why the arrows are `.image-button`
|
|
8
|
+
// with `border-radius: 0` and a hairline of their own.
|
|
9
|
+
//
|
|
10
|
+
// THE CHILD ORDER THE `&:last-child` / `&:first-child` RULES BELOW DEPEND ON is
|
|
11
|
+
// `Gtk.SpinButton`'s, not the one a spinner usually draws: C parents its children as text,
|
|
12
|
+
// down, up (gtkspinbutton.c:1091-1126) and the box layout lays them out in that order, so
|
|
13
|
+
// the horizontal widget reads `text ▼ ▲` and the vertical one `▲ text ▼`. The element
|
|
14
|
+
// re-parents on an orientation change exactly as `gtk_spin_button_set_orientation` does
|
|
15
|
+
// (gtkspinbutton.c:1290-1299), so the selectors below select what they select on a desktop:
|
|
16
|
+
// the up arrow hugs the rounded end, whichever end that is.
|
|
17
|
+
//
|
|
18
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_spin-button.scss:1-76
|
|
19
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_entries.scss:1-19 (%entry)
|
|
20
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
21
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
22
|
+
|
|
23
|
+
// `> text { @extend .dimmed; > placeholder { @extend .dimmed } }` is the entry's own rule
|
|
24
|
+
// (_entries.scss:19-28) and this package states it on `.adw-entry` instead; the placeholder
|
|
25
|
+
// colour is the browser's.
|
|
26
|
+
@use 'labels';
|
|
27
|
+
|
|
28
|
+
gtk-spin-button {
|
|
29
|
+
// `spinbutton { @extend %entry; @extend .numeric; }` (:1-3), taken apart: this package's
|
|
30
|
+
// `_entry.scss` writes the entry shape as the `.adw-entry` CLASS on an `<input>` rather
|
|
31
|
+
// than as a placeholder every node can extend, so the eight declarations `%entry`
|
|
32
|
+
// contributes are written out here and `.numeric` is @extended on the text instead.
|
|
33
|
+
display: flex;
|
|
34
|
+
flex: 1;
|
|
35
|
+
min-width: 0;
|
|
36
|
+
align-items: center;
|
|
37
|
+
box-sizing: border-box;
|
|
38
|
+
min-height: 34px;
|
|
39
|
+
padding: 0 9px;
|
|
40
|
+
border-radius: var(--button-radius);
|
|
41
|
+
background-color: var(--button-bg-color);
|
|
42
|
+
background-clip: padding-box;
|
|
43
|
+
caret-color: currentColor;
|
|
44
|
+
|
|
45
|
+
@media (prefers-contrast: more) {
|
|
46
|
+
box-shadow: inset 0 0 0 1px var(--border-color);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// `&:disabled { filter: Opacity(var(--disabled-opacity)) }` (_entries.scss:40)
|
|
50
|
+
&[disabled] {
|
|
51
|
+
opacity: var(--disabled-opacity);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// The numeric text. `.numeric` is `spinbutton`'s own `@extend .numeric` (:3).
|
|
55
|
+
.adw-spin-button-text {
|
|
56
|
+
@extend .numeric;
|
|
57
|
+
|
|
58
|
+
flex: 1;
|
|
59
|
+
box-sizing: border-box;
|
|
60
|
+
min-width: 0;
|
|
61
|
+
padding: 6px;
|
|
62
|
+
border: none;
|
|
63
|
+
outline: none;
|
|
64
|
+
background: none;
|
|
65
|
+
color: inherit;
|
|
66
|
+
font-family: var(--font-family);
|
|
67
|
+
font-size: var(--font-size-base);
|
|
68
|
+
text-align: start;
|
|
69
|
+
|
|
70
|
+
&:focus-visible {
|
|
71
|
+
outline: none;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
&::placeholder {
|
|
75
|
+
@extend .dimmed;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// `> button.image-button.up` and `.down` (:9-24) — `:not` there upstream only to outrank
|
|
80
|
+
// the list button styling, which has no counterpart here; the flat treatment does.
|
|
81
|
+
.image-button {
|
|
82
|
+
display: inline-flex;
|
|
83
|
+
flex: none;
|
|
84
|
+
align-items: center;
|
|
85
|
+
justify-content: center;
|
|
86
|
+
margin: 0;
|
|
87
|
+
padding: 4px;
|
|
88
|
+
border: none;
|
|
89
|
+
border-radius: 0;
|
|
90
|
+
background-color: transparent;
|
|
91
|
+
color: inherit;
|
|
92
|
+
box-shadow: none;
|
|
93
|
+
border-style: solid;
|
|
94
|
+
border-width: 0;
|
|
95
|
+
border-color: color-mix(in srgb, currentColor 10%, transparent);
|
|
96
|
+
|
|
97
|
+
@media (prefers-contrast: more) {
|
|
98
|
+
border-color: color-mix(in srgb, currentColor 50%, transparent);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
&:hover {
|
|
102
|
+
background-color: var(--button-hover-color);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
&:active {
|
|
106
|
+
background-color: var(--button-active-color);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// `update_buttons_sensitivity` (gtkspinbutton.c:1214-1226) disables an arrow that has
|
|
110
|
+
// no room to move, and a disabled button has to LOOK it: libadwaita's `&:disabled`
|
|
111
|
+
// dimming is on the widget, which is here.
|
|
112
|
+
&:disabled {
|
|
113
|
+
opacity: var(--disabled-opacity);
|
|
114
|
+
cursor: default;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&:not(.vertical) {
|
|
119
|
+
.adw-spin-button-text {
|
|
120
|
+
min-width: 28px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.image-button {
|
|
124
|
+
min-height: 16px;
|
|
125
|
+
min-width: 22px;
|
|
126
|
+
padding-top: 0;
|
|
127
|
+
padding-bottom: 0;
|
|
128
|
+
border-left-width: 1px;
|
|
129
|
+
|
|
130
|
+
&:dir(rtl) {
|
|
131
|
+
border-left-width: 0;
|
|
132
|
+
border-right-width: 1px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// The up arrow is the LAST child in a horizontal box (see the file header), so it is
|
|
136
|
+
// the one that carries the rounded right end — and `:dir(rtl)` mirrors it.
|
|
137
|
+
&:dir(ltr):last-child {
|
|
138
|
+
border-radius: 0 var(--button-radius) var(--button-radius) 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
&:dir(rtl):last-child {
|
|
142
|
+
border-radius: var(--button-radius) 0 0 var(--button-radius);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
&.vertical {
|
|
148
|
+
flex-direction: column;
|
|
149
|
+
padding: 9px 0;
|
|
150
|
+
|
|
151
|
+
.adw-spin-button-text {
|
|
152
|
+
min-height: 30px;
|
|
153
|
+
min-width: 30px;
|
|
154
|
+
padding: 0;
|
|
155
|
+
text-align: center;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// The up arrow is FIRST here and the down arrow LAST, so the two rules land on the two
|
|
159
|
+
// ends the way they do vertically on a desktop.
|
|
160
|
+
.image-button {
|
|
161
|
+
&:first-child {
|
|
162
|
+
border-bottom-width: 1px;
|
|
163
|
+
border-radius: var(--button-radius) var(--button-radius) 0 0;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
&:last-child {
|
|
167
|
+
border-top-width: 1px;
|
|
168
|
+
border-radius: 0 0 var(--button-radius) var(--button-radius);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|