@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,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
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
// _expander.scss — <gtk-expander>: the disclosure title, its arrow, and the row beneath.
|
|
2
|
+
//
|
|
3
|
+
// libadwaita's `_expanders.scss` is TWO selectors — the `expander` node and
|
|
4
|
+
// `expander-widget` — and the element has to keep them apart, because they are different
|
|
5
|
+
// nodes: `expander` is the ARROW and `expander-widget` is the widget. So the arrow is the
|
|
6
|
+
// `.adw-expander-arrow` box and the widget is the tag.
|
|
7
|
+
//
|
|
8
|
+
// THE ARROW is upstream's whole rule, with `-gtk-icon-source` as a mask swap:
|
|
9
|
+
//
|
|
10
|
+
// min-width/min-height 16px `.adw-icon`'s own size, so this repeats it only to say the
|
|
11
|
+
// node has no intrinsic size of its own;
|
|
12
|
+
// pan-end-symbolic the closed glyph;
|
|
13
|
+
// pan-end-symbolic-rtl `:dir(rtl)`, as upstream's second `-gtk-icon-source`;
|
|
14
|
+
// pan-down-symbolic `:checked`, which this stylesheet spells `.checked` — and
|
|
15
|
+
// `gtk_expander_set_expanded` sets the pseudoclass on the
|
|
16
|
+
// arrow, not on the widget (gtkexpander.c:897-900);
|
|
17
|
+
// disabled `Opacity(var(--disabled-opacity))`.
|
|
18
|
+
//
|
|
19
|
+
// The `:disabled` line has nothing to bite on here, because a custom element is never
|
|
20
|
+
// `:disabled` — the widget is a plain GtkWidget with no insensitive state of its own, and
|
|
21
|
+
// upstream's rule exists for the `expander` node when a `Gtk.TreeView` row disables it.
|
|
22
|
+
// It is written against `[disabled]` so an author who puts the attribute there gets
|
|
23
|
+
// upstream's dimming rather than nothing.
|
|
24
|
+
//
|
|
25
|
+
// THE TITLE is `expander-widget > box > title` (`_expanders.scss:13-28`): a 6px radius, the
|
|
26
|
+
// focus ring, and the arrow at 70% until the title is hovered or pressed. The box between
|
|
27
|
+
// them is `.adw-expander-box`, so the selector chain is the node tree rather than a
|
|
28
|
+
// coincidence.
|
|
29
|
+
//
|
|
30
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_expanders.scss
|
|
31
|
+
// Reference: refs/libadwaita/src/stylesheet/_drawing.scss (the focus-ring mixin: a 2px
|
|
32
|
+
// outline at offset -2px, which is what `outline` below spells out)
|
|
33
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
34
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
35
|
+
|
|
36
|
+
gtk-expander {
|
|
37
|
+
display: block;
|
|
38
|
+
|
|
39
|
+
> .adw-expander-box {
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
> .adw-expander-box > .adw-expander-title {
|
|
45
|
+
display: flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: var(--spacing-s);
|
|
48
|
+
min-height: 30px;
|
|
49
|
+
padding: var(--spacing-xs) var(--spacing-m);
|
|
50
|
+
border-radius: 6px;
|
|
51
|
+
cursor: pointer;
|
|
52
|
+
|
|
53
|
+
&:hover {
|
|
54
|
+
background-color: var(--button-bg-color);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
&:active {
|
|
58
|
+
background-color: var(--button-active-color);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// `focus-ring ("> box > title")` with its default `$width: 2px` and `$offset: -$width`.
|
|
62
|
+
&:focus-visible {
|
|
63
|
+
outline: 2px solid var(--accent-color);
|
|
64
|
+
outline-offset: -2px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.adw-expander-arrow {
|
|
68
|
+
opacity: 0.7;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
&:hover .adw-expander-arrow,
|
|
72
|
+
&:active .adw-expander-arrow {
|
|
73
|
+
opacity: 1;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
> .adw-expander-box > .adw-expander-content {
|
|
78
|
+
display: flex;
|
|
79
|
+
flex-direction: column;
|
|
80
|
+
min-width: 0;
|
|
81
|
+
min-height: 0;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.adw-expander-arrow {
|
|
86
|
+
min-width: 16px;
|
|
87
|
+
min-height: 16px;
|
|
88
|
+
flex-shrink: 0;
|
|
89
|
+
// `expander { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic') }`. The element sets
|
|
90
|
+
// `icon-name="pan-end"`, so the `.checked` and `:dir(rtl)` rules below are the two
|
|
91
|
+
// `-gtk-icon-source` overrides — same three glyphs, same two conditions.
|
|
92
|
+
mask-image: var(--icon-pan-end);
|
|
93
|
+
-webkit-mask-image: var(--icon-pan-end);
|
|
94
|
+
|
|
95
|
+
&[disabled] {
|
|
96
|
+
opacity: var(--disabled-opacity);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// `&:checked { -gtk-icon-source: -gtk-icontheme('pan-down-symbolic') }`
|
|
100
|
+
&.checked {
|
|
101
|
+
mask-image: var(--icon-pan-down);
|
|
102
|
+
-webkit-mask-image: var(--icon-pan-down);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
:dir(rtl) .adw-expander-arrow:not(.checked) {
|
|
107
|
+
// `&:dir(rtl) { -gtk-icon-source: -gtk-icontheme('pan-end-symbolic-rtl') }` — upstream
|
|
108
|
+
// states the RTL glyph on its own line, BEFORE the `:checked` one, so `:checked` wins for
|
|
109
|
+
// an RTL expander that is open. The `:not(.checked)` keeps that order without relying on
|
|
110
|
+
// it.
|
|
111
|
+
mask-image: var(--icon-pan-end-rtl);
|
|
112
|
+
-webkit-mask-image: var(--icon-pan-end-rtl);
|
|
113
|
+
}
|
package/scss/_fixed.scss
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// _fixed.scss — <gtk-fixed>: children at pixel positions, and a box around all of them.
|
|
2
|
+
//
|
|
3
|
+
// `gtk_fixed_init` sets `GTK_OVERFLOW_HIDDEN` (gtkfixed.c:189-195), so the fixed clips a
|
|
4
|
+
// child that reaches past its own bounds — and the element sizes those bounds from the
|
|
5
|
+
// union of the children (`gtk_fixed_layout_measure`, gtkfixedlayout.c:224-300), which is
|
|
6
|
+
// what makes `overflow: hidden` a clipping rule rather than a layout one.
|
|
7
|
+
//
|
|
8
|
+
// The children are out of flow, which is what a position means: `position: absolute` against
|
|
9
|
+
// the fixed's own padding box, which `gtk_fixed_layout_allocate` does by handing each child
|
|
10
|
+
// its measured size at (x, y). `left` / `top` DEFAULT TO ZERO and not to CSS's `auto`
|
|
11
|
+
// because `gtk_fixed_buildable_add_child` puts an unpositioned child at 0, 0
|
|
12
|
+
// (gtkfixed.c:171-177), and `auto` would resolve it to its STATIC position instead.
|
|
13
|
+
//
|
|
14
|
+
// Reference: refs/gtk/gtk/gtkfixed.c:171-177, :189-195
|
|
15
|
+
// Reference: refs/gtk/gtk/gtkfixedlayout.c:224-300
|
|
16
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
17
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
18
|
+
|
|
19
|
+
gtk-fixed {
|
|
20
|
+
display: block;
|
|
21
|
+
position: relative;
|
|
22
|
+
overflow: hidden;
|
|
23
|
+
|
|
24
|
+
> * {
|
|
25
|
+
position: absolute;
|
|
26
|
+
left: 0;
|
|
27
|
+
top: 0;
|
|
28
|
+
}
|
|
29
|
+
}
|