@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,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/_expander_row.scss
CHANGED
|
@@ -32,12 +32,45 @@ adw-expander-row {
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
// Title/subtitle WRAP BY DEFAULT, matching libadwaita's GtkLabel wrap=true,
|
|
36
|
+
// lines=0 — stated HERE, at this row's own specificity, because `_row.scss` carries
|
|
37
|
+
// a `white-space: nowrap` default for `.adw-row-subtitle` and an inherited one reaches
|
|
38
|
+
// the title. A rule that only turns `white-space` on inside the clamp selector cannot
|
|
39
|
+
// make a row wrap by DEFAULT: the clamp is the minority state.
|
|
35
40
|
.adw-row-title {
|
|
36
41
|
font-size: var(--font-size-base);
|
|
37
42
|
color: var(--card-fg-color);
|
|
38
|
-
white-space:
|
|
39
|
-
overflow:
|
|
40
|
-
|
|
43
|
+
white-space: normal;
|
|
44
|
+
overflow-wrap: break-word;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.adw-row-subtitle {
|
|
48
|
+
font-size: var(--font-size-small);
|
|
49
|
+
opacity: var(--dim-opacity);
|
|
50
|
+
color: var(--card-fg-color);
|
|
51
|
+
white-space: normal;
|
|
52
|
+
overflow-wrap: break-word;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Clamped state — JS toggles `.adw-row-clamp` on the TEXT COLUMN, the same node and
|
|
56
|
+
// the same class `_action_row.scss` keys off; reading it off the header instead never
|
|
57
|
+
// matched anything.
|
|
58
|
+
.adw-row-text.adw-row-clamp {
|
|
59
|
+
.adw-row-title,
|
|
60
|
+
.adw-row-subtitle {
|
|
61
|
+
display: -webkit-box;
|
|
62
|
+
-webkit-box-orient: vertical;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
text-overflow: var(--adw-row-ellipsize-overflow, ellipsis);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.adw-row-title {
|
|
68
|
+
-webkit-line-clamp: var(--adw-row-title-lines, 1);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.adw-row-subtitle {
|
|
72
|
+
-webkit-line-clamp: var(--adw-row-subtitle-lines, 1);
|
|
73
|
+
}
|
|
41
74
|
}
|
|
42
75
|
|
|
43
76
|
// The text column takes the free space so prefix/suffix widgets, the enable
|
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
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// _flow_box.scss — <gtk-flow-box> and its cells, the elements GTK names `flowbox` and
|
|
2
|
+
// `flowboxchild`.
|
|
3
|
+
//
|
|
4
|
+
// Upstream writes `flowbox > flowboxchild, gridview > child` as ONE rule (_views.scss:52-91):
|
|
5
|
+
// the same 3px padding, the same `$button_radius` corner, the same focus ring and the same four
|
|
6
|
+
// state colours — and `<gtk-grid-view>` already wears the grid half in `_grid_view.scss`, which
|
|
7
|
+
// `@include`s `adw-list-selectable` from `_list_view.scss` for exactly that reason. The cell
|
|
8
|
+
// here therefore includes the same mixin rather than restating four colours, because a drifted
|
|
9
|
+
// copy is four wrong ones and the hover-over-selected pair is the pair nobody checks by eye.
|
|
10
|
+
//
|
|
11
|
+
// `flex-flow: row wrap` IS the allocation. GTK hands each child a slot on a running line in
|
|
12
|
+
// the given orientation and starts a new one when the next would not fit
|
|
13
|
+
// (gtkflowbox.c:1640-1900), and a wrapping flex line with a per-child size share is that rule
|
|
14
|
+
// expressed in the browser's own layout language: `max-width: 100% / max-children-per-line`
|
|
15
|
+
// caps how many can share a line, and `min-width: 100% / min-children-per-line` is
|
|
16
|
+
// `min-children-per-line`, whose own documented job is that "a reasonably small height will be
|
|
17
|
+
// requested for the overall minimum width of the box" (gtkflowbox.c:3747-3755).
|
|
18
|
+
//
|
|
19
|
+
// `homogeneous` is `flex: 1 1 0` — GTK's "all children should be allocated the same size"
|
|
20
|
+
// (:3736-3739), which in a wrapping line is exactly equal growth from a zero basis.
|
|
21
|
+
//
|
|
22
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_views.scss:1-16 (.view), :52-91
|
|
23
|
+
// (flowbox > flowboxchild), :88-91 (flowbox, gridview disabled)
|
|
24
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
25
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
26
|
+
|
|
27
|
+
@use 'list_view';
|
|
28
|
+
|
|
29
|
+
gtk-flow-box {
|
|
30
|
+
display: block;
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
color: var(--view-fg-color);
|
|
33
|
+
background-color: var(--view-bg-color);
|
|
34
|
+
|
|
35
|
+
// The line container. `--adw-flow-box-*` are written by `gtk-flow-box.ts` from the
|
|
36
|
+
// properties, so the stylesheet stays declarative and a `homogeneous` write is one class.
|
|
37
|
+
display: flex;
|
|
38
|
+
flex-flow: row wrap;
|
|
39
|
+
gap: var(--adw-flow-box-row-spacing, 0px) var(--adw-flow-box-column-spacing, 0px);
|
|
40
|
+
|
|
41
|
+
&.vertical {
|
|
42
|
+
flex-flow: column wrap;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&.view:disabled {
|
|
46
|
+
color: var(--view-fg-color);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
gtk-flow-box-child {
|
|
51
|
+
@include list_view.adw-list-selectable;
|
|
52
|
+
|
|
53
|
+
display: block;
|
|
54
|
+
box-sizing: border-box;
|
|
55
|
+
// `flowbox > flowboxchild { padding: 3px; border-radius: $button_radius }`
|
|
56
|
+
// (_views.scss:52-56).
|
|
57
|
+
padding: 3px;
|
|
58
|
+
border-radius: var(--button-radius);
|
|
59
|
+
// The line share. A browser lays the children out, so this is where GTK's
|
|
60
|
+
// `min`/`max-children-per-line` and `homogeneous` are honoured — and the share has to
|
|
61
|
+
// LEAVE ROOM FOR THE SPACING. `100% / N` alone does not: N children then need N shares
|
|
62
|
+
// PLUS the (N-1) gaps between them, so the row overflows by the gaps and the browser
|
|
63
|
+
// breaks it one child early. Measured on the gallery's flow box — `min-children-per-line`
|
|
64
|
+
// 2, `max` 4, a 6px spacing in a 320px box — the share came out at 50% (160px), two
|
|
65
|
+
// children plus one gap came to 326px, and the box showed ONE child per line where
|
|
66
|
+
// libadwaita packs four. The share is therefore (100% - (N-1) × spacing) / N.
|
|
67
|
+
max-width: calc(
|
|
68
|
+
(100% - (var(--adw-flow-box-max-children-per-line, 7) - 1) *
|
|
69
|
+
var(--adw-flow-box-column-spacing, 0px)) / var(--adw-flow-box-max-children-per-line, 7)
|
|
70
|
+
);
|
|
71
|
+
min-width: calc(
|
|
72
|
+
(100% - (var(--adw-flow-box-min-children-per-line, 1) - 1) *
|
|
73
|
+
var(--adw-flow-box-column-spacing, 0px)) / var(--adw-flow-box-min-children-per-line, 1)
|
|
74
|
+
);
|
|
75
|
+
cursor: pointer;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
gtk-flow-box.vertical > gtk-flow-box-child {
|
|
79
|
+
// The same arithmetic down the other axis, against the ROW spacing.
|
|
80
|
+
max-height: calc(
|
|
81
|
+
(100% - (var(--adw-flow-box-max-children-per-line, 7) - 1) *
|
|
82
|
+
var(--adw-flow-box-row-spacing, 0px)) / var(--adw-flow-box-max-children-per-line, 7)
|
|
83
|
+
);
|
|
84
|
+
max-width: none;
|
|
85
|
+
min-height: calc(
|
|
86
|
+
(100% - (var(--adw-flow-box-min-children-per-line, 1) - 1) *
|
|
87
|
+
var(--adw-flow-box-row-spacing, 0px)) / var(--adw-flow-box-min-children-per-line, 1)
|
|
88
|
+
);
|
|
89
|
+
min-width: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
gtk-flow-box.homogeneous > gtk-flow-box-child {
|
|
93
|
+
flex: 1 1 0;
|
|
94
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
// _font_button.scss — `<gtk-font-dialog-button>`: the `button.font` node and the two
|
|
2
|
+
// labels it holds.
|
|
3
|
+
//
|
|
4
|
+
// libadwaita has no rule for it either: `_linked.scss:7` is the only place upstream names
|
|
5
|
+
// `fontbutton`, and it is there because the node is a button that participates in a linked
|
|
6
|
+
// group. So this partial is the node's layout and nothing else — and the node's layout IS
|
|
7
|
+
// the C's, which builds a horizontal box of the family label (hexpand, so it takes the
|
|
8
|
+
// room) and the size box, the latter a vertical separator followed by the size label
|
|
9
|
+
// (gtkfontdialogbutton.c:121-140).
|
|
10
|
+
//
|
|
11
|
+
// The element hides the size box itself when the level is below FONT, because
|
|
12
|
+
// `update_font_info` ends with `gtk_widget_set_visible (self->font_size_box, self->level >=
|
|
13
|
+
// GTK_FONT_LEVEL_FONT)` (:685) — a family chooser shows one word where a font chooser shows
|
|
14
|
+
// two, and the separator with it.
|
|
15
|
+
//
|
|
16
|
+
// Reference: refs/gtk/gtk/gtkfontdialogbutton.c:52-60 (the node), :118-152 (init, the box,
|
|
17
|
+
// the labels), :649-687 (update_font_info, and the size box's visibility)
|
|
18
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_linked.scss:7 (`fontbutton > button`)
|
|
19
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
20
|
+
// Modifications: Adapted for @gjsify/adwaita-web — the labels are `<span>`s inside an
|
|
21
|
+
// ordinary `<button>`, and `use-font` sets their inline `font` (apply_use_font).
|
|
22
|
+
|
|
23
|
+
gtk-font-dialog-button {
|
|
24
|
+
display: inline-flex;
|
|
25
|
+
position: relative;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.font-button-label {
|
|
29
|
+
flex: 1;
|
|
30
|
+
text-align: start;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// The size box: a separator and the size, in a row of their own — which is why the element
|
|
34
|
+
// wraps them in a span rather than appending both to the button.
|
|
35
|
+
.font-button-size {
|
|
36
|
+
display: inline-flex;
|
|
37
|
+
align-items: center;
|
|
38
|
+
gap: 6px;
|
|
39
|
+
margin-inline-start: 6px;
|
|
40
|
+
color: color-mix(in srgb, currentColor var(--dim-opacity), transparent);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.font-button-size-label {
|
|
44
|
+
min-width: 2ch;
|
|
45
|
+
font-variant-numeric: tabular-nums;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// The chooser: one row of families. A popover rather than a `<select>` on the button
|
|
49
|
+
// itself, because `gtk_font_dialog_button_new()` is given a dialog and shows nothing until
|
|
50
|
+
// it is pressed.
|
|
51
|
+
.font-button-popover {
|
|
52
|
+
.font-button-chooser {
|
|
53
|
+
min-width: 180px;
|
|
54
|
+
max-width: 320px;
|
|
55
|
+
padding: 4px;
|
|
56
|
+
border: none;
|
|
57
|
+
border-radius: 6px;
|
|
58
|
+
background-color: var(--popover-bg-color);
|
|
59
|
+
color: var(--popover-fg-color);
|
|
60
|
+
font-family: var(--font-family);
|
|
61
|
+
font-size: var(--font-size-base);
|
|
62
|
+
}
|
|
63
|
+
}
|
package/scss/_frame.scss
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// _frame.scss — <gtk-frame>: the 1px border, and the label that sits inside its top edge.
|
|
2
|
+
//
|
|
3
|
+
// libadwaita writes this rule TWICE, once for the widget node and once for the style
|
|
4
|
+
// class (`widgets/_misc.scss:4-7`); the widget half is here and the class half stays in
|
|
5
|
+
// `_style_classes.scss`, where every other `.frame` consumer already is. The label's
|
|
6
|
+
// `margin: 4px` (`_misc.scss:12-14`) is the inset it gets inside the border, keyed on the
|
|
7
|
+
// class the element puts on whatever stands in for GtkFrame's label widget — the internal
|
|
8
|
+
// `<gtk-label>` `label` builds, or an author's `label-widget`.
|
|
9
|
+
//
|
|
10
|
+
// The BOX is GtkFrame's, not libadwaita's: the label widget takes the top line and the
|
|
11
|
+
// child the rest (`gtk_frame_real_compute_child_allocation`, gtkframe.c:554-580), so the
|
|
12
|
+
// host is a flex column whose children grow into whatever the pinned label leaves.
|
|
13
|
+
// `overflow: hidden` is `GTK_OVERFLOW_HIDDEN` (gtkframe.c:246) — the GIR doc calls the
|
|
14
|
+
// clipping out as the way to round a child's corners, at the price of its shadows.
|
|
15
|
+
//
|
|
16
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_misc.scss:4-15
|
|
17
|
+
// Reference: refs/gtk/gtk/gtkframe.c:246, :519-580
|
|
18
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
19
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
20
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
21
|
+
|
|
22
|
+
gtk-frame {
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-direction: column;
|
|
25
|
+
align-items: stretch;
|
|
26
|
+
border: 1px solid var(--border-color);
|
|
27
|
+
border-radius: var(--card-radius);
|
|
28
|
+
overflow: hidden;
|
|
29
|
+
|
|
30
|
+
// GTK sizes the label widget itself and never grows it, so it is pinned at its own size
|
|
31
|
+
// (`flex: none`) and its `align-self` is the element's, written from `label-xalign`.
|
|
32
|
+
> .adw-frame-label {
|
|
33
|
+
flex: none;
|
|
34
|
+
margin: 4px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Everything else is the child, and it takes the height the label leaves.
|
|
38
|
+
> * {
|
|
39
|
+
flex: 1 1 auto;
|
|
40
|
+
}
|
|
41
|
+
}
|
package/scss/_grid.scss
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// _grid.scss — <gtk-grid>: a table of cells, sized by what is in them.
|
|
2
|
+
//
|
|
3
|
+
// libadwaita styles the `grid` node nowhere — the grid has no node of its own beyond what
|
|
4
|
+
// GtkGridLayout builds — so this partial is `display: grid` and the one default worth
|
|
5
|
+
// stating: a child written without a position is attached along the columns, which is
|
|
6
|
+
// `grid-auto-flow: row` (`gtk_grid_buildable_add_child`, gtkgrid.c:493-507).
|
|
7
|
+
//
|
|
8
|
+
// Everything else is per-instance and inline, because a selector cannot key on a number:
|
|
9
|
+
// the two spacings, the two `homogeneous` flags and the orientation all go on the element
|
|
10
|
+
// as `row-gap` / `column-gap` / `grid-auto-rows` / `grid-auto-columns` / `grid-auto-flow`.
|
|
11
|
+
//
|
|
12
|
+
// Reference: refs/gtk/gtk/gtkgrid.c:493-507
|
|
13
|
+
// Copyright (c) The GTK Team. LGPLv2.1+.
|
|
14
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
15
|
+
|
|
16
|
+
gtk-grid {
|
|
17
|
+
display: grid;
|
|
18
|
+
grid-auto-flow: row;
|
|
19
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// _grid_view.scss — <gtk-grid-view>: the same selectable items as a list view, reflowed
|
|
2
|
+
// into equal columns.
|
|
3
|
+
//
|
|
4
|
+
// Upstream writes `flowbox > flowboxchild, gridview > child` as ONE rule — the same
|
|
5
|
+
// padding, the same `$button_radius` corner and the same four state colours a list row
|
|
6
|
+
// has — so this partial includes `adw-list-selectable` from `_list_view.scss` and adds
|
|
7
|
+
// only the two things a grid has: the track container and the cell floor the column
|
|
8
|
+
// count is computed against.
|
|
9
|
+
//
|
|
10
|
+
// THE `min-width` IS LOAD-BEARING, not cosmetic. `gtk-grid-view.ts` reads it as the item
|
|
11
|
+
// size for `gridViewColumns` — GTK's `GTK_SCROLL_MINIMUM` branch — because the rendered
|
|
12
|
+
// width is `1fr`, i.e. the answer the count already produced. An author who wants wider
|
|
13
|
+
// cells sets `min-width` on `.adw-grid-view-child` and the count follows.
|
|
14
|
+
//
|
|
15
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_views.scss:52-91 (gridview > child)
|
|
16
|
+
// Copyright (c) GNOME contributors (libadwaita). LGPLv2.1+.
|
|
17
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
18
|
+
|
|
19
|
+
@use 'list_view';
|
|
20
|
+
|
|
21
|
+
gtk-grid-view {
|
|
22
|
+
display: block;
|
|
23
|
+
box-sizing: border-box;
|
|
24
|
+
color: var(--view-fg-color);
|
|
25
|
+
background-color: var(--view-bg-color);
|
|
26
|
+
|
|
27
|
+
.adw-list-view-rows {
|
|
28
|
+
position: relative;
|
|
29
|
+
display: grid;
|
|
30
|
+
// Replaced per measurement by `_applyColumns`; one column is what a view with
|
|
31
|
+
// nothing to measure shows.
|
|
32
|
+
grid-template-columns: repeat(1, 1fr);
|
|
33
|
+
gap: 6px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.adw-grid-view-child {
|
|
37
|
+
@include list_view.adw-list-selectable;
|
|
38
|
+
|
|
39
|
+
// `gridview > child { padding: 3px; border-radius: $button_radius }`.
|
|
40
|
+
padding: 3px;
|
|
41
|
+
border-radius: var(--button-radius);
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
min-width: 120px;
|
|
44
|
+
text-align: center;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
// _gtk_about_dialog.scss — <gtk-about-dialog> styling: the GTK about window's own
|
|
2
|
+
// layout, which is NOT libadwaita's `<adw-about-dialog>` (a navigation view of
|
|
3
|
+
// preference rows) but a bold name over a 128px logo and a four-page stack, with a
|
|
4
|
+
// stack switcher where the headerbar's title widget goes.
|
|
5
|
+
//
|
|
6
|
+
// The DIALOG itself (scrim, sheet, header, close button) is not restated here: it is
|
|
7
|
+
// `<adw-dialog>`'s chrome, which this element inherits, so the rules below only cover
|
|
8
|
+
// the parts `gtkaboutdialog.ui` declares and nothing styles upstream either.
|
|
9
|
+
//
|
|
10
|
+
// Reference: refs/gtk/gtk/ui/gtkaboutdialog.ui (the tree: 12px inner spacing, 5px
|
|
11
|
+
// outer margins, 8px page spacing, the 400x100 stack, the framed scrolled pages)
|
|
12
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_dialogs.scss:46-56
|
|
13
|
+
// (`window.aboutdialog:not(.ssd-frame)`: a FLAT titlebar, and `image.large-icons`
|
|
14
|
+
// at 128px — which is `icon-size: 2`, GTK's DIALOG size)
|
|
15
|
+
// Reference: refs/gtk/gtk/gtkaboutdialog.c:1066-1082 (the bold name label, the
|
|
16
|
+
// centre justification, the version label's own markup)
|
|
17
|
+
// Copyright (c) 2008-2024 Red Hat, Inc. / The GTK authors. LGPLv2.1+.
|
|
18
|
+
// Modifications: Adapted for @gjsify/adwaita-web Web Components.
|
|
19
|
+
|
|
20
|
+
gtk-about-dialog {
|
|
21
|
+
// The `.ui` spacing, verbatim: the outer box is 5px all round with 2px between the
|
|
22
|
+
// two children (the head), and the head is 5px all round with 12px between the logo,
|
|
23
|
+
// the name and the stack.
|
|
24
|
+
.adw-gtk-about-dialog-box {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
gap: 2px;
|
|
28
|
+
padding: 5px;
|
|
29
|
+
min-width: 320px;
|
|
30
|
+
min-height: 220px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.adw-gtk-about-dialog-head {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
align-items: center;
|
|
37
|
+
gap: 12px;
|
|
38
|
+
padding: 5px;
|
|
39
|
+
flex: 1 1 auto;
|
|
40
|
+
min-height: 0;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// `image.large-icons` → 128px. The slot exists so the logo can be absent entirely
|
|
44
|
+
// without the name moving up a line: `GtkImage` is a template child and is always
|
|
45
|
+
// there in GTK, so the space above the name is always reserved.
|
|
46
|
+
.adw-gtk-about-dialog-logo-slot {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
50
|
+
min-height: 128px;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.adw-gtk-about-dialog-logo {
|
|
54
|
+
width: 128px;
|
|
55
|
+
height: 128px;
|
|
56
|
+
// `icon-dropshadow` on the `.ui`'s logo image.
|
|
57
|
+
filter: drop-shadow(0 1px 2px rgba(0, 0, 6, 0.25));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// `<span weight="bold">` from `update_name_version`, centred like every label in the
|
|
61
|
+
// box (`justify: 2`).
|
|
62
|
+
.adw-gtk-about-dialog-name {
|
|
63
|
+
font-weight: bold;
|
|
64
|
+
font-size: 1.1em;
|
|
65
|
+
text-align: center;
|
|
66
|
+
user-select: text;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// `GtkStack` with `width-request: 400`, `height-request: 100`, and the crossfade
|
|
70
|
+
// transition (16) at 600ms.
|
|
71
|
+
.adw-gtk-about-dialog-stack {
|
|
72
|
+
position: relative;
|
|
73
|
+
display: flex;
|
|
74
|
+
width: 100%;
|
|
75
|
+
min-width: 300px;
|
|
76
|
+
min-height: 100px;
|
|
77
|
+
flex: 1 1 auto;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.adw-gtk-about-dialog-page {
|
|
81
|
+
display: flex;
|
|
82
|
+
flex-direction: column;
|
|
83
|
+
gap: 8px;
|
|
84
|
+
flex: 1 1 auto;
|
|
85
|
+
justify-content: center;
|
|
86
|
+
text-align: center;
|
|
87
|
+
padding: 6px 12px;
|
|
88
|
+
// The crossfade between pages: 600ms is the `.ui`'s `transition-duration`.
|
|
89
|
+
animation: adw-gtk-about-dialog-page-in 600ms ease;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.adw-gtk-about-dialog-version,
|
|
93
|
+
.adw-gtk-about-dialog-comments,
|
|
94
|
+
.adw-gtk-about-dialog-copyright {
|
|
95
|
+
// `wrap: 1` with `max-width-chars: 60` on the comments and copyright labels.
|
|
96
|
+
max-width: 60ch;
|
|
97
|
+
margin: 0 auto;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.adw-gtk-about-dialog-website,
|
|
101
|
+
.adw-gtk-about-dialog-license,
|
|
102
|
+
.adw-gtk-about-dialog-license-link {
|
|
103
|
+
max-width: 60ch;
|
|
104
|
+
margin: 0 auto;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// `GtkStackSwitcher` in the titlebar: a row of flat buttons, the visible page's
|
|
108
|
+
// checked. No title text beside them, because the `.ui` declares none.
|
|
109
|
+
.adw-gtk-about-dialog-switcher {
|
|
110
|
+
display: flex;
|
|
111
|
+
align-items: center;
|
|
112
|
+
gap: 2px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.adw-gtk-about-dialog-switcher-item {
|
|
116
|
+
padding: 6px 12px;
|
|
117
|
+
border-radius: 999px;
|
|
118
|
+
font-weight: 500;
|
|
119
|
+
color: var(--window-fg-color);
|
|
120
|
+
background-color: transparent;
|
|
121
|
+
border: none;
|
|
122
|
+
|
|
123
|
+
&:hover {
|
|
124
|
+
background-color: var(--button-hover-color);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
&:checked,
|
|
128
|
+
&.checked {
|
|
129
|
+
background-color: var(--button-active-color);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// The three framed pages: a scrolled window with `has-frame` around a `.view`
|
|
134
|
+
// viewport, and the credits grid inside it.
|
|
135
|
+
.adw-gtk-about-dialog-scrolled {
|
|
136
|
+
flex: 1 1 auto;
|
|
137
|
+
min-height: 0;
|
|
138
|
+
overflow: auto;
|
|
139
|
+
border: 1px solid var(--border-color);
|
|
140
|
+
border-radius: 9px;
|
|
141
|
+
background-color: var(--view-bg-color);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.adw-gtk-about-dialog-text {
|
|
145
|
+
margin: 5px;
|
|
146
|
+
// `GTK_WRAP_NONE` unless `wrap-license` asked for `GTK_WRAP_WORD`.
|
|
147
|
+
white-space: pre;
|
|
148
|
+
font-size: 0.9em;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.adw-gtk-about-dialog-text-view.wrap .adw-gtk-about-dialog-text {
|
|
152
|
+
white-space: pre-wrap;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// `add_credits_section`: a two-column grid, headings right-aligned in column 0 and
|
|
156
|
+
// people left-aligned in column 1, with 2px between rows and 8px between columns.
|
|
157
|
+
.adw-gtk-about-dialog-credits-grid {
|
|
158
|
+
display: grid;
|
|
159
|
+
grid-template-columns: max-content 1fr;
|
|
160
|
+
gap: 2px 8px;
|
|
161
|
+
padding: 5px;
|
|
162
|
+
align-items: center;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.adw-gtk-about-dialog-credits-heading {
|
|
166
|
+
text-align: right;
|
|
167
|
+
font-size: 0.9em;
|
|
168
|
+
font-weight: 500;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.adw-gtk-about-dialog-credits-person {
|
|
172
|
+
text-align: left;
|
|
173
|
+
font-size: 0.9em;
|
|
174
|
+
user-select: text;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@keyframes adw-gtk-about-dialog-page-in {
|
|
179
|
+
from {
|
|
180
|
+
opacity: 0;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
to {
|
|
184
|
+
opacity: 1;
|
|
185
|
+
}
|
|
186
|
+
}
|