@gjsify/adwaita-web 0.54.0 → 0.56.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/README.md +8 -0
- package/dist/adwaita-web.css +8146 -3011
- 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-status-page.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/attributes.d.ts +19 -0
- package/lib/types/breakpoints.d.ts +14 -3
- package/lib/types/construct-vectors.spec.d.ts +1 -0
- package/lib/types/elements/adw-action-row.d.ts +4 -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-combo-row.d.ts +4 -0
- package/lib/types/elements/adw-dialog.d.ts +10 -0
- package/lib/types/elements/adw-entry-row.d.ts +6 -0
- package/lib/types/elements/adw-expander-row.d.ts +2 -0
- package/lib/types/elements/adw-header-bar.d.ts +6 -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-overlay-split-view.d.ts +13 -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 +8 -2
- package/lib/types/elements/adw-spin-row.d.ts +6 -0
- package/lib/types/elements/adw-switch-row.d.ts +7 -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-toggle-group.d.ts +17 -0
- 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 +129 -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 +103 -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/row-line-clamp.d.ts +20 -0
- package/lib/types/row-tooltip.d.ts +8 -0
- package/lib/types/row-tooltip.spec.d.ts +1 -0
- package/lib/types/scroll-shading.d.ts +15 -1
- package/lib/types/shared-tree-builder.d.ts +75 -17
- package/lib/types/shared-tree-mount.spec.d.ts +1 -0
- 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/lib/types/widget-size.spec.d.ts +1 -0
- package/package.json +12 -8
- package/scss/_action_row.scss +41 -17
- 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/_button_row.scss +5 -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/_expander_row.scss +36 -3
- 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 +134 -1
- 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 +60 -0
- package/scss/_print_dialogs.scss +328 -0
- package/scss/_reset.scss +21 -19
- package/scss/_revealer.scss +37 -0
- package/scss/_row.scss +36 -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/_status_page.scss +1 -1
- 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/_toggle_group.scss +28 -0
- package/scss/_tree_expander.scss +62 -0
- package/scss/_variables.scss +1 -1
- package/scss/_video.scss +146 -0
- package/scss/_view_switcher_sidebar.scss +112 -0
- package/scss/_viewport.scss +50 -0
- package/scss/_widget.scss +14 -3
- package/scss/_window.scss +131 -2
- package/scss/_window_handle.scss +20 -0
- package/scss/adwaita-skin.scss +109 -0
- package/src/adw-action-rows.spec.ts +331 -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-header-bar.spec.ts +18 -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-status-page.spec.ts +124 -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/attributes.ts +52 -0
- package/src/breakpoints.ts +25 -8
- package/src/capabilities.d.mts +3 -0
- package/src/capabilities.mjs +21 -0
- package/src/connect-lifecycle.spec.ts +12 -0
- package/src/construct-vectors.spec.ts +175 -0
- package/src/elements/adw-action-row.ts +31 -2
- package/src/elements/adw-alert-dialog.ts +4 -1
- 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-button-row.ts +7 -1
- package/src/elements/adw-clamp-scrollable.ts +207 -0
- package/src/elements/adw-combo-row.ts +26 -1
- package/src/elements/adw-dialog.ts +19 -0
- package/src/elements/adw-entry-row.ts +22 -12
- package/src/elements/adw-expander-row.ts +34 -1
- package/src/elements/adw-header-bar.ts +18 -4
- package/src/elements/adw-layout-slot.ts +95 -0
- package/src/elements/adw-multi-layout-view.ts +326 -0
- package/src/elements/adw-overlay-split-view.ts +29 -6
- package/src/elements/adw-preferences-row.ts +153 -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 +74 -7
- package/src/elements/adw-spin-row.ts +37 -2
- package/src/elements/adw-status-page.ts +10 -2
- package/src/elements/adw-switch-row.ts +53 -2
- 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 +138 -14
- 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 +190 -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 +653 -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 +372 -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 +202 -0
- package/src/index.ts +9 -1
- package/src/keyboard-operable.spec.ts +77 -9
- 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/row-line-clamp.ts +74 -0
- package/src/row-tooltip.spec.ts +313 -0
- package/src/row-tooltip.ts +52 -0
- package/src/scroll-shading.ts +18 -1
- package/src/shared-tree-builder.ts +336 -41
- package/src/shared-tree-mount.spec.ts +130 -0
- package/src/shared-trees.spec.ts +15 -0
- package/src/signals.ts +15 -0
- 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 +160 -0
- package/src/widget-size.spec.ts +117 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// _color_button.scss — `<gtk-color-dialog-button>`: the `button.color` node and the
|
|
2
|
+
// swatch it holds.
|
|
3
|
+
//
|
|
4
|
+
// THE SWATCH IS NOT LIBADWAITA'S, and saying so is the point of this partial. GTK paints
|
|
5
|
+
// the `GtkColorSwatch` from GTK's OWN theme — libadwaita's `_color-chooser.scss` styles the
|
|
6
|
+
// `colorchooser` popover, and `grep` finds no rule for the swatch or for `colorbutton` at
|
|
7
|
+
// all. So what upstream does have is this:
|
|
8
|
+
//
|
|
9
|
+
// · the node `colorbutton > button.color` and the `.color` style class
|
|
10
|
+
// (gtkcolordialogbutton.c:63-70, :163) — which is what puts the button in the
|
|
11
|
+
// `.linked` group and makes it square;
|
|
12
|
+
//
|
|
13
|
+
// and what this partial adds is the geometry `gtk_color_dialog_button_init` asks for: a
|
|
14
|
+
// swatch as wide as the word "Black" rendered at the base size and as tall as its line
|
|
15
|
+
// (:139-148). 24x18 is that box at the base font size, so the button around it is the
|
|
16
|
+
// usual 34px-tall button.
|
|
17
|
+
//
|
|
18
|
+
// THE TRANSLUCENT CLAUSE IS GTK's own drawing, keyed off the element's `data-translucent`:
|
|
19
|
+
// `GtkColorSwatch` draws a checkerboard under a colour with alpha, and `rgba_to_gdk_rgba`
|
|
20
|
+
// is how it decides. A browser has no such thing, and a translucent colour on a plain
|
|
21
|
+
// background is unreadable without one.
|
|
22
|
+
//
|
|
23
|
+
// Reference: refs/gtk/gtk/gtkcolordialogbutton.c:63-70 (the node), :139-163 (the swatch,
|
|
24
|
+
// the `.color` class), :329-347 (the accessible name's rounding)
|
|
25
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_linked.scss:6 (`colorbutton > button`)
|
|
26
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
27
|
+
// Modifications: Adapted for @gjsify/adwaita-web — the swatch is a `<span>` painted with
|
|
28
|
+
// `background-color`, and its checkerboard is this package's drawing of GtkColorSwatch.
|
|
29
|
+
|
|
30
|
+
gtk-color-dialog-button {
|
|
31
|
+
display: inline-flex;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.color-button-swatch {
|
|
35
|
+
display: block;
|
|
36
|
+
width: 24px;
|
|
37
|
+
height: 18px;
|
|
38
|
+
border-radius: 4px;
|
|
39
|
+
box-shadow: 0 0 0 1px var(--shade-color);
|
|
40
|
+
// The checkerboard, only while the colour is translucent — the element writes
|
|
41
|
+
// `data-translucent` from `rgba[3] < 1`, which is GtkColorSwatch's own test.
|
|
42
|
+
&[data-translucent='true'] {
|
|
43
|
+
background-image:
|
|
44
|
+
linear-gradient(45deg, rgb(0 0 6 / 12%) 25%, transparent 25%),
|
|
45
|
+
linear-gradient(-45deg, rgb(0 0 6 / 12%) 25%, transparent 25%),
|
|
46
|
+
linear-gradient(45deg, transparent 75%, rgb(0 0 6 / 12%) 75%),
|
|
47
|
+
linear-gradient(-45deg, transparent 75%, rgb(0 0 6 / 12%) 75%);
|
|
48
|
+
background-position:
|
|
49
|
+
0 0,
|
|
50
|
+
0 4px,
|
|
51
|
+
4px -4px,
|
|
52
|
+
-4px 0;
|
|
53
|
+
background-size: 8px 8px;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// The chooser itself: visually nothing, and reachable only from the button's click, which
|
|
58
|
+
// is why it is `aria-hidden` and out of the tab order rather than merely transparent.
|
|
59
|
+
.color-button-input {
|
|
60
|
+
position: absolute;
|
|
61
|
+
width: 1px;
|
|
62
|
+
height: 1px;
|
|
63
|
+
padding: 0;
|
|
64
|
+
border: none;
|
|
65
|
+
opacity: 0;
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
// _column_view.scss — <gtk-column-view>: a header of column buttons over the same rows a
|
|
2
|
+
// list view draws, with one cell per column.
|
|
3
|
+
//
|
|
4
|
+
// Every number here is upstream's: the header button's `3px 6px` padding and its
|
|
5
|
+
// `border-left: 1px solid transparent` (which `.column-separators` then COLOURS rather
|
|
6
|
+
// than adds, so turning separators on cannot shift the layout), the cells' `8px 6px`, and
|
|
7
|
+
// the header text at 40% of `currentColor` rising to 70% on hover
|
|
8
|
+
// (_column-view.scss:12-48).
|
|
9
|
+
//
|
|
10
|
+
// `.separators` is deliberately the SAME class a list view uses: `show-row-separators` is
|
|
11
|
+
// passed straight through to the inner list view upstream, whose node then carries
|
|
12
|
+
// `.separators` — so the rule reads `columnview.separators > row`, one hop shorter than
|
|
13
|
+
// the C's node tree and with the same meaning.
|
|
14
|
+
//
|
|
15
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_column-view.scss:1-112
|
|
16
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_labels.scss (.caption-heading)
|
|
17
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
18
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
19
|
+
|
|
20
|
+
@use 'list_view';
|
|
21
|
+
|
|
22
|
+
gtk-column-view {
|
|
23
|
+
display: block;
|
|
24
|
+
box-sizing: border-box;
|
|
25
|
+
color: var(--view-fg-color);
|
|
26
|
+
background-color: var(--view-bg-color);
|
|
27
|
+
|
|
28
|
+
.adw-column-view-header {
|
|
29
|
+
display: grid;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.adw-column-view-header-cell {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
gap: 6px;
|
|
36
|
+
// `> header > button { padding: 3px 6px; border-radius: 0; background: transparent }`.
|
|
37
|
+
padding: 3px 6px;
|
|
38
|
+
border: 0;
|
|
39
|
+
border-left: 1px solid transparent;
|
|
40
|
+
border-radius: 0;
|
|
41
|
+
background: transparent;
|
|
42
|
+
font: inherit;
|
|
43
|
+
font-size: var(--font-size-small);
|
|
44
|
+
font-weight: 700;
|
|
45
|
+
text-align: start;
|
|
46
|
+
color: color-mix(in srgb, currentColor 40%, transparent);
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
|
|
49
|
+
&:first-child {
|
|
50
|
+
border-left-width: 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&:hover {
|
|
54
|
+
color: color-mix(in srgb, currentColor 70%, transparent);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&:active {
|
|
58
|
+
color: currentColor;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// A column with no sorter is not a button in any useful sense: upstream simply never
|
|
62
|
+
// activates it, and the cursor is what says so here.
|
|
63
|
+
&:disabled {
|
|
64
|
+
cursor: default;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
&:focus-visible {
|
|
68
|
+
outline: 2px solid var(--accent-color);
|
|
69
|
+
outline-offset: -2px;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.adw-column-view-header-title {
|
|
74
|
+
overflow: hidden;
|
|
75
|
+
text-overflow: ellipsis;
|
|
76
|
+
white-space: nowrap;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// `sort-indicator { min-height: 16px; min-width: 16px }`, drawn as pan-up when
|
|
80
|
+
// ascending — here one `go-down` icon turned over, the substitution the element header
|
|
81
|
+
// records.
|
|
82
|
+
.adw-column-view-sort-indicator {
|
|
83
|
+
flex: none;
|
|
84
|
+
margin-inline-start: auto;
|
|
85
|
+
|
|
86
|
+
&.ascending {
|
|
87
|
+
transform: rotate(180deg);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.adw-list-view-rows {
|
|
92
|
+
position: relative;
|
|
93
|
+
display: flex;
|
|
94
|
+
flex-direction: column;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.adw-column-view-row {
|
|
98
|
+
@include list_view.adw-list-selectable;
|
|
99
|
+
|
|
100
|
+
// `> listview > row { padding: 0 }` — the padding moved to the cells.
|
|
101
|
+
display: grid;
|
|
102
|
+
padding: 0;
|
|
103
|
+
box-sizing: border-box;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.adw-column-view-cell {
|
|
107
|
+
padding: 8px 6px;
|
|
108
|
+
box-sizing: border-box;
|
|
109
|
+
border-left: 1px solid transparent;
|
|
110
|
+
|
|
111
|
+
&:first-child {
|
|
112
|
+
border-left-width: 0;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
&.column-separators {
|
|
117
|
+
.adw-column-view-cell,
|
|
118
|
+
.adw-column-view-header-cell {
|
|
119
|
+
border-left-color: var(--border-color);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
&.separators .adw-column-view-row:not(:last-child) {
|
|
124
|
+
border-bottom: 1px solid var(--border-color);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// _drag_icon.scss — <gtk-drag-icon>: the one widget whose CSS node libadwaita styles for
|
|
2
|
+
// the WHOLE widget rather than for one state.
|
|
3
|
+
//
|
|
4
|
+
// `gtk_widget_class_set_css_name (widget_class, "dnd")` (gtkdragicon.c:383) is the whole
|
|
5
|
+
// of the widget's styling, and libadwaita's only rule on that node is a foreground colour
|
|
6
|
+
// (`_common.scss:30-32`). The second rule naming it — `dnd tab` in `_tab-view.scss` — is a
|
|
7
|
+
// `GtkTabView` tab being dragged out of a tab view, which is that widget's node to style,
|
|
8
|
+
// not a property of this one.
|
|
9
|
+
//
|
|
10
|
+
// EVERYTHING ELSE HERE IS GEOMETRY, and each value says which part of the C it stands in
|
|
11
|
+
// for. The box is FIXED-POSITIONED because a drag icon has no parent to lay out in: it is
|
|
12
|
+
// a `GtkRoot` with its own surface (:106-108), and `gtk_drag_icon_move_resize` (:138-150)
|
|
13
|
+
// does the one thing a layout would have done — put the icon where the pointer is, at the
|
|
14
|
+
// child's preferred size (`:180-188`).
|
|
15
|
+
//
|
|
16
|
+
// Reference: refs/gtk/gtk/gtkdragicon.c:106-108,138-150,180-188,380,386-390
|
|
17
|
+
// Reference: refs/libadwaita/src/stylesheet/_common.scss:30-32
|
|
18
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
19
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
20
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
21
|
+
|
|
22
|
+
gtk-drag-icon {
|
|
23
|
+
// `dnd { color: var(--window-fg-color) }` — the whole of libadwaita's rule, and the
|
|
24
|
+
// reason a drag icon's LABEL is the window foreground rather than its own.
|
|
25
|
+
color: var(--window-fg-color);
|
|
26
|
+
// `gtk_widget_set_can_target (self, FALSE)` (:386-390) has no CSS of its own, but this
|
|
27
|
+
// is the layer it describes: an icon that is pointed at takes no pointer event.
|
|
28
|
+
pointer-events: none;
|
|
29
|
+
// The drag surface is a root of its own (:106-108), so it is placed against the
|
|
30
|
+
// VIEWPORT rather than a parent box. The element writes the position itself, on every
|
|
31
|
+
// `dragover` — which is `gtk_drag_icon_move_resize` (:138-150) on the surface.
|
|
32
|
+
position: fixed;
|
|
33
|
+
left: 0;
|
|
34
|
+
top: 0;
|
|
35
|
+
// Above the window chrome and below the toasts, which is where a drag image belongs: it
|
|
36
|
+
// is over the window it was dragged out of, and under a toast that arrived after it.
|
|
37
|
+
z-index: 5000;
|
|
38
|
+
// `surface_compute_size` (:180-188) sizes the surface to the child's PREFERRED size, so
|
|
39
|
+
// the icon is exactly as big as what it carries: `max-content` is the one CSS length that
|
|
40
|
+
// measures content rather than a box.
|
|
41
|
+
width: max-content;
|
|
42
|
+
height: max-content;
|
|
43
|
+
|
|
44
|
+
// The `GtkColorSwatch` `createWidgetForValue` builds for a `GdkRGBA`
|
|
45
|
+
// (gtkdragicon.c:544-553), which is a square of the colour it carries — nothing else,
|
|
46
|
+
// because `set_can_drag`/`set_can_drop` are FALSE and the two states are the only thing
|
|
47
|
+
// a swatch has that this one does not need. The large size is `ICON_SIZE_LARGE`, which
|
|
48
|
+
// is the 32px `.large-icons` sets (_common.scss:38-41).
|
|
49
|
+
.adw-drag-icon-swatch {
|
|
50
|
+
display: block;
|
|
51
|
+
width: 32px;
|
|
52
|
+
height: 32px;
|
|
53
|
+
border-radius: 50%;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// _drawing.scss — <gtk-drawing-area>, and the page's other hand-drawn surfaces.
|
|
2
|
+
//
|
|
3
|
+
// THERE IS NO UPSTREAM FILE TO PORT. `GtkDrawingArea` sets no CSS name of its own, so
|
|
4
|
+
// its node is the default `widget` node (gtkwidget.c:1982), and libadwaita's stylesheet
|
|
5
|
+
// has no rule for it — nor for `glarea`, which sets no name either, nor for
|
|
6
|
+
// `graphicsoffload`, whose only rule is the widget-node layout GTK gives a bin. So this
|
|
7
|
+
// partial is GEOMETRY, and every value in it is transcribed from a measure function in
|
|
8
|
+
// the C rather than from a stylesheet upstream does not have. Saying that is the point:
|
|
9
|
+
// the rules below are not a re-skin, they are the measurement written out.
|
|
10
|
+
//
|
|
11
|
+
// CONTENT-WIDTH IS A FLOOR, NOT A SIZE. `gtk_drawing_area_measure` returns
|
|
12
|
+
// `content_width` as the minimum AND the natural width (gtkdrawingarea.c:210-231), so a
|
|
13
|
+
// parent may hand the area MORE than it asked for — which is what `width: <length>`
|
|
14
|
+
// means for a block box — and cannot hand it less, which is `min-width`. The zero default
|
|
15
|
+
// is "no intrinsic size", and `auto` is the block box's own answer to that.
|
|
16
|
+
//
|
|
17
|
+
// Reference: refs/gtk/gtk/gtkdrawingarea.c:210-231,240-267
|
|
18
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
19
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
20
|
+
|
|
21
|
+
gtk-drawing-area {
|
|
22
|
+
display: block;
|
|
23
|
+
// The natural half: a parent with room to spare gives the area more, and a parent
|
|
24
|
+
// without gives it exactly the floor below.
|
|
25
|
+
width: var(--adw-drawing-width, auto);
|
|
26
|
+
height: var(--adw-drawing-height, auto);
|
|
27
|
+
// The minimum half — the same number, which is why both read one custom property.
|
|
28
|
+
min-width: var(--adw-drawing-width, 0);
|
|
29
|
+
min-height: var(--adw-drawing-height, 0);
|
|
30
|
+
|
|
31
|
+
// The cairo region GTK hands the draw function is the whole allocation
|
|
32
|
+
// (gtkdrawingarea.c:248-262), so the canvas is the whole box rather than a scaled
|
|
33
|
+
// child of it.
|
|
34
|
+
.adw-drawing-area-canvas {
|
|
35
|
+
display: block;
|
|
36
|
+
width: 100%;
|
|
37
|
+
height: 100%;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// <gtk-gl-area> — `GtkGLArea` sets no CSS name (no `gtk_widget_class_set_css_name` in
|
|
42
|
+
// gtkglarea.c), so its node is the generic `widget` node and libadwaita has no rule for
|
|
43
|
+
// it. It also has NO measure function, which is the rule that shapes what follows: the
|
|
44
|
+
// area reports no intrinsic size on either axis, so a parent gives it one.
|
|
45
|
+
gtk-gl-area {
|
|
46
|
+
display: block;
|
|
47
|
+
position: relative;
|
|
48
|
+
|
|
49
|
+
.adw-gl-area-canvas {
|
|
50
|
+
display: block;
|
|
51
|
+
width: 100%;
|
|
52
|
+
height: 100%;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// `gtk_gl_area_draw_error_screen` (:701-723): the error message laid out across the
|
|
56
|
+
// widget's width and centred vertically — `pango_layout_set_width (width *
|
|
57
|
+
// PANGO_SCALE)` and `PANGO_ALIGN_CENTER`, at `(height - layout_height) / 2`. The
|
|
58
|
+
// canvas stays behind it, as GTK's snapshot replaces a frame's contents rather than
|
|
59
|
+
// the widget's node.
|
|
60
|
+
.adw-gl-area-error {
|
|
61
|
+
position: absolute;
|
|
62
|
+
inset: 0;
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
justify-content: center;
|
|
66
|
+
text-align: center;
|
|
67
|
+
padding: 12px;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// <gtk-graphics-offload> — `GTK_TYPE_BIN_LAYOUT` (gtkgraphicsoffload.c:290) gives the
|
|
71
|
+
// child the whole allocation, and the black rectangle `black_background` paints over that
|
|
72
|
+
// allocation BEFORE the child (:222-229) is a BACKGROUND rather than a layer: what the
|
|
73
|
+
// letterbox bars need is the wrapper black exactly where the child does not cover it.
|
|
74
|
+
gtk-graphics-offload {
|
|
75
|
+
display: block;
|
|
76
|
+
position: relative;
|
|
77
|
+
// No `overflow: hidden` here: GTK's subsurface is rectangular and a rounded corner or a
|
|
78
|
+
// clip is one of the things that PROHIBITS offload (:66-68), so clipping this box would
|
|
79
|
+
// be the very condition the widget exists to avoid. It does not clip.
|
|
80
|
+
.adw-graphics-offload-child {
|
|
81
|
+
display: block;
|
|
82
|
+
width: 100%;
|
|
83
|
+
height: 100%;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
// _emoji_chooser.scss — <gtk-emoji-chooser> styling, mirroring libadwaita's
|
|
2
|
+
// `_emoji-chooser.scss` node for node.
|
|
3
|
+
//
|
|
4
|
+
// The upstream partial is short because GTK does the work: `popover.emoji-picker > contents`
|
|
5
|
+
// gets no padding, the two boxes get theirs, and the section buttons are circular flat
|
|
6
|
+
// image buttons. What it does NOT style is the list itself — GTK's `.view` scrolled
|
|
7
|
+
// window and `GtkFlowBox` do that — so the flow box, the headings and the empty page are
|
|
8
|
+
// spelled out here from the `.ui` instead (6px margins and spacing, a heading label per
|
|
9
|
+
// section, and the `edit-find` glyph at 72px over "No Results Found").
|
|
10
|
+
//
|
|
11
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_emoji-chooser.scss:1-57
|
|
12
|
+
// (`popover.emoji-picker > contents`, `.emoji-searchbar`, `.emoji-toolbar`,
|
|
13
|
+
// `button.emoji-section.image-button` as a 32px circular flat button,
|
|
14
|
+
// `popover.emoji-picker emoji` at `font-size: x-large` with 6px padding and
|
|
15
|
+
// `$button_radius` corners, hover/active fills and a high-contrast outline,
|
|
16
|
+
// `scrolledwindow.view` with undershoot shading)
|
|
17
|
+
// Reference: refs/gtk/gtk/ui/gtkemojichooser.ui (6px margins and spacing, the headings,
|
|
18
|
+
// the empty page's 72px glyph, `max-content-height: 320`)
|
|
19
|
+
// Copyright (c) 2021-2024 The GTK authors. LGPLv2.1+.
|
|
20
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
21
|
+
|
|
22
|
+
gtk-emoji-chooser {
|
|
23
|
+
// `popover.emoji-picker > contents { padding: 0 }` — the surface carries no padding
|
|
24
|
+
// of its own; the searchbar and the toolbar bring theirs.
|
|
25
|
+
padding: 0;
|
|
26
|
+
|
|
27
|
+
.emoji-picker-root {
|
|
28
|
+
display: flex;
|
|
29
|
+
flex-direction: column;
|
|
30
|
+
min-width: 260px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.emoji-searchbar {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
gap: 6px;
|
|
37
|
+
padding: 6px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.emoji-search-icon {
|
|
41
|
+
flex: 0 0 auto;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.emoji-search-entry {
|
|
45
|
+
flex: 1 1 auto;
|
|
46
|
+
min-width: 0;
|
|
47
|
+
padding: 6px 8px;
|
|
48
|
+
font: inherit;
|
|
49
|
+
color: inherit;
|
|
50
|
+
background-color: var(--entry-bg-color);
|
|
51
|
+
border: 1px solid var(--entry-border-color);
|
|
52
|
+
border-radius: 9px;
|
|
53
|
+
|
|
54
|
+
&:focus {
|
|
55
|
+
outline: none;
|
|
56
|
+
border-color: var(--accent-color);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.emoji-stack {
|
|
61
|
+
display: flex;
|
|
62
|
+
flex-direction: column;
|
|
63
|
+
min-height: 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// `scrolledwindow.view` (`max-content-height: 320`) with the undershoot shading the
|
|
67
|
+
// upstream rule draws at the two ends the scroll position is not at.
|
|
68
|
+
.emoji-list {
|
|
69
|
+
display: flex;
|
|
70
|
+
flex-direction: column;
|
|
71
|
+
gap: 6px;
|
|
72
|
+
max-height: 320px;
|
|
73
|
+
overflow-y: auto;
|
|
74
|
+
padding: 6px;
|
|
75
|
+
background-color: var(--view-bg-color);
|
|
76
|
+
color: var(--view-fg-color);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.emoji-heading {
|
|
80
|
+
font-weight: 500;
|
|
81
|
+
text-align: start;
|
|
82
|
+
padding: 2px 0;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// `GtkFlowBox` with `homogeneous: 1`: every emoji the same width, wrapping by row.
|
|
86
|
+
.emoji-flowbox {
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-wrap: wrap;
|
|
89
|
+
gap: 2px;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// `popover.emoji-picker emoji` — `font-size: x-large`, 6px padding, the button radius.
|
|
93
|
+
.emoji {
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: center;
|
|
96
|
+
justify-content: center;
|
|
97
|
+
min-width: 32px;
|
|
98
|
+
min-height: 32px;
|
|
99
|
+
padding: 6px;
|
|
100
|
+
font-size: 1.5em;
|
|
101
|
+
line-height: 1;
|
|
102
|
+
border-radius: var(--button-radius);
|
|
103
|
+
border: none;
|
|
104
|
+
background-color: transparent;
|
|
105
|
+
color: inherit;
|
|
106
|
+
|
|
107
|
+
&:focus,
|
|
108
|
+
&:hover {
|
|
109
|
+
background-color: var(--button-hover-color);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&:active {
|
|
113
|
+
background-color: var(--button-active-color);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@media (prefers-contrast: more) {
|
|
117
|
+
&:focus,
|
|
118
|
+
&:hover,
|
|
119
|
+
&:active {
|
|
120
|
+
box-shadow: inset 0 0 0 1px var(--border-color);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.emoji-recent-box {
|
|
126
|
+
margin-bottom: 2px;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// The `empty` stack page: `dim-label` throughout, the glyph at 72px.
|
|
130
|
+
.emoji-empty {
|
|
131
|
+
display: flex;
|
|
132
|
+
flex-direction: column;
|
|
133
|
+
align-items: center;
|
|
134
|
+
gap: 12px;
|
|
135
|
+
padding: 18px 12px;
|
|
136
|
+
color: var(--dim-label-color, var(--window-fg-color));
|
|
137
|
+
opacity: 0.6;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.emoji-empty-icon {
|
|
141
|
+
width: 72px;
|
|
142
|
+
height: 72px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.emoji-empty-title {
|
|
146
|
+
font-weight: bold;
|
|
147
|
+
font-size: 1.4em;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.emoji-empty-hint {
|
|
151
|
+
font-size: 0.95em;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// `emoji-toolbar`: 3px of padding, because the flow box children already carry 3px.
|
|
155
|
+
.emoji-toolbar {
|
|
156
|
+
display: flex;
|
|
157
|
+
align-items: center;
|
|
158
|
+
padding: 3px;
|
|
159
|
+
border-top: 1px solid var(--separator-color);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// `button.emoji-section.image-button` — circular, flat, 32x32, unchecked by default and
|
|
163
|
+
// checked for the section the list is scrolled into.
|
|
164
|
+
.emoji-section {
|
|
165
|
+
display: flex;
|
|
166
|
+
align-items: center;
|
|
167
|
+
justify-content: center;
|
|
168
|
+
width: 32px;
|
|
169
|
+
height: 32px;
|
|
170
|
+
padding: 0;
|
|
171
|
+
border: none;
|
|
172
|
+
border-radius: 999px;
|
|
173
|
+
background-color: transparent;
|
|
174
|
+
color: inherit;
|
|
175
|
+
|
|
176
|
+
&:hover:not(:disabled) {
|
|
177
|
+
background-color: var(--button-hover-color);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
&:checked,
|
|
181
|
+
&.checked {
|
|
182
|
+
background-color: var(--button-active-color);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
&:disabled {
|
|
186
|
+
opacity: 0.4;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.emoji-section-icon {
|
|
191
|
+
width: 16px;
|
|
192
|
+
height: 16px;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// `show_variations` (:508-548): a `view`-backed box beside the emoji holding the six
|
|
196
|
+
// variants, so the second click on an emoji with skin tones lands somewhere.
|
|
197
|
+
.emoji-variations {
|
|
198
|
+
position: absolute;
|
|
199
|
+
z-index: 1;
|
|
200
|
+
padding: 6px;
|
|
201
|
+
border-radius: var(--button-radius);
|
|
202
|
+
background-color: var(--popover-bg-color);
|
|
203
|
+
color: var(--popover-fg-color);
|
|
204
|
+
box-shadow:
|
|
205
|
+
0 1px 4px rgba(0, 0, 6, 0.2),
|
|
206
|
+
0 2px 8px rgba(0, 0, 6, 0.12);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.emoji-variations-row {
|
|
210
|
+
display: flex;
|
|
211
|
+
gap: 2px;
|
|
212
|
+
}
|
|
213
|
+
}
|
package/scss/_entry.scss
CHANGED
|
@@ -22,7 +22,12 @@ gtk-entry {
|
|
|
22
22
|
color: var(--view-fg-color);
|
|
23
23
|
font-family: var(--font-family);
|
|
24
24
|
font-size: var(--font-size-base);
|
|
25
|
-
|
|
25
|
+
// NO FRAME. `%entry_basic` (_entries.scss:1-11) draws a fill and a radius and
|
|
26
|
+
// nothing else: the one-pixel border appears ONLY under `prefers-contrast: more`
|
|
27
|
+
// (:13-15). The frame sat here unconditionally, so every entry — entry, search entry,
|
|
28
|
+
// password entry, the text view — read as an outlined box where libadwaita draws a
|
|
29
|
+
// flat grey one. Confirmed against the native reference: a focused entry carries the
|
|
30
|
+
// accent ring, an unfocused one carries no edge at all.
|
|
26
31
|
transition: box-shadow 0.1s ease;
|
|
27
32
|
|
|
28
33
|
&::placeholder {
|
|
@@ -30,10 +35,6 @@ gtk-entry {
|
|
|
30
35
|
opacity: var(--dim-opacity);
|
|
31
36
|
}
|
|
32
37
|
|
|
33
|
-
&:hover {
|
|
34
|
-
box-shadow: inset 0 0 0 1px var(--entry-border-hover-color);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
38
|
&:focus,
|
|
38
39
|
&:focus-visible {
|
|
39
40
|
outline: none;
|
|
@@ -44,6 +45,13 @@ gtk-entry {
|
|
|
44
45
|
&:disabled {
|
|
45
46
|
opacity: 0.45;
|
|
46
47
|
cursor: default;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@media (prefers-contrast: more) {
|
|
47
51
|
box-shadow: inset 0 0 0 1px var(--entry-border-color);
|
|
52
|
+
|
|
53
|
+
&:hover {
|
|
54
|
+
box-shadow: inset 0 0 0 1px var(--entry-border-hover-color);
|
|
55
|
+
}
|
|
48
56
|
}
|
|
49
57
|
}
|
package/scss/_entry_row.scss
CHANGED