@gjsify/adwaita-web 0.54.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 +8066 -3033
- 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 +1 -1
- 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/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,194 @@
|
|
|
1
|
+
// <adw-tab-button> — the page COUNTER that stands in for a tab bar: a button showing
|
|
2
|
+
// how many pages an `Adw.TabView` holds and whether one of the hidden ones wants
|
|
3
|
+
// attention (adw-tab-button.c:19-33). libadwaita pairs it with an `AdwTabOverview`
|
|
4
|
+
// action, which is why `clicked` is the signal to listen to and `activate` is the one
|
|
5
|
+
// applications must not.
|
|
6
|
+
//
|
|
7
|
+
// THREE DERIVATIONS, all of them C and all of them small enough to read in the widget:
|
|
8
|
+
//
|
|
9
|
+
// · `update_icon` (adw-tab-button.c:102-133): the LABEL is the page count while there
|
|
10
|
+
// are fewer than 100 pages, `small` from ten, and at 100 the label goes away for the
|
|
11
|
+
// overflow glyph. No view at all means the same counter plate with nothing on it.
|
|
12
|
+
// · `update_needs_attention` (adw-tab-button.c:135-161): TRUE when any page that is NOT
|
|
13
|
+
// the selected one has `needs-attention`. C walks the list and breaks on the first
|
|
14
|
+
// hit, so this is a `some` and not a count.
|
|
15
|
+
// · the template (adw-tab-button.ui): a `Gtk.Button` in the `.image-button` style
|
|
16
|
+
// holding an `AdwIndicatorBin` over a `GtkOverlay` — the glyph UNDERNEATH, the count
|
|
17
|
+
// on top.
|
|
18
|
+
//
|
|
19
|
+
// THE GLYPH IS THE PLATE, and that is what the CSS draws. `adw-tab-counter.svg` is a
|
|
20
|
+
// rounded rectangle and nothing else (a 14×14 `rx≈3` rect, `stroke-width: 2`, no fill),
|
|
21
|
+
// which is a border and a border-radius; `adw-tab-overflow.svg` is the same rectangle
|
|
22
|
+
// with one more decorative mark on it, drawn here as the ellipsis libadwaita puts
|
|
23
|
+
// between the two. Both are libadwaita-BUNDLED glyphs (refs/libadwaita/src/icons/), not
|
|
24
|
+
// theme names, so neither is in `@gjsify/adwaita-icons` and neither could be compiled
|
|
25
|
+
// into the stylesheet — the same case `adw-entry-row.ts`'s pencil is. Neither name is
|
|
26
|
+
// emitted through `<gtk-image>`, so neither reaches `check-adwaita-icon-masks.mjs`.
|
|
27
|
+
//
|
|
28
|
+
// `view` is a widget REFERENCE (`Adw.TabView`), which on this renderer is an element id
|
|
29
|
+
// the way `<adw-view-switcher-bar stack>` is one, and both are the same shape of
|
|
30
|
+
// divergence: `scripts/generate-adwaita-attribute-comments.mjs`'s `id-reference`
|
|
31
|
+
// ledger entry. The property setter takes the element directly for code.
|
|
32
|
+
//
|
|
33
|
+
// `action-name` / `action-target` are `GtkActionable`'s, forwarded to the inner button
|
|
34
|
+
// (adw-tab-button.c:344-386). A browser has no `Gio.Action` to activate, so they are not
|
|
35
|
+
// observed — an interface property, absent from `AdwTabButtonProps`' own body, which is
|
|
36
|
+
// why KNOWN_GAPS has no entry for them.
|
|
37
|
+
//
|
|
38
|
+
// A11Y: `role="button"` on the host, over a real `<button>`, so Enter and Space arrive
|
|
39
|
+
// through the platform rather than through a key handler of our own.
|
|
40
|
+
//
|
|
41
|
+
// KNOWN_GAPS: none — `AdwTabButton`'s own scalar surface is empty (`view` is a widget).
|
|
42
|
+
//
|
|
43
|
+
// Reference: refs/libadwaita/src/adw-tab-button.c (update_icon, update_needs_attention,
|
|
44
|
+
// set_view's four signal connections, class_init's `tabbutton` node + BUTTON role)
|
|
45
|
+
// Reference: refs/libadwaita/src/adw-tab-button.ui (button → indicator → overlay)
|
|
46
|
+
// Reference: refs/libadwaita/src/stylesheet/widgets/_buttons.scss:647-663 (`tabbutton`)
|
|
47
|
+
// Reference: refs/libadwaita/src/icons/adw-tab-counter.svg, adw-tab-overflow.svg
|
|
48
|
+
// Copyright (c) 2019-2022 Alice Mikhaylenko / Purism SPC. LGPLv2.1+.
|
|
49
|
+
// Modifications: Implemented as a Web Component for @gjsify/adwaita-web.
|
|
50
|
+
|
|
51
|
+
import type { AdwTabView } from './adw-tab-view.js';
|
|
52
|
+
|
|
53
|
+
/** `update_icon`: a label from ten pages up, because two digits do not fit the plate. */
|
|
54
|
+
const SMALL_LABEL_PAGES = 10;
|
|
55
|
+
/** `update_icon`: at a hundred pages the count is replaced by the overflow glyph. */
|
|
56
|
+
const OVERFLOW_PAGES = 100;
|
|
57
|
+
/** What `set_view` connects to: the page list, the selection and each page's attention. */
|
|
58
|
+
const VIEW_EVENTS = ['page-attached', 'page-detached', 'page-updated', 'notify::selected-page'] as const;
|
|
59
|
+
|
|
60
|
+
export class AdwTabButton extends HTMLElement {
|
|
61
|
+
private _button!: HTMLButtonElement;
|
|
62
|
+
private _binEl!: HTMLSpanElement;
|
|
63
|
+
private _labelEl!: HTMLSpanElement;
|
|
64
|
+
private _indicatorEl!: HTMLSpanElement;
|
|
65
|
+
private _view: AdwTabView | null = null;
|
|
66
|
+
private _initialized = false;
|
|
67
|
+
|
|
68
|
+
static get observedAttributes() {
|
|
69
|
+
return ['view'];
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** `Adw.TabButton:view` — the tab view this button counts. */
|
|
73
|
+
get view(): AdwTabView | null {
|
|
74
|
+
return this._view;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
set view(value: AdwTabView | string | null) {
|
|
78
|
+
this.setView(value === null ? null : typeof value === 'string' ? this._resolveView(value) : value);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** `adw_tab_button_set_view`: rebind, then re-derive the icon and the indicator. */
|
|
82
|
+
setView(view: AdwTabView | null): void {
|
|
83
|
+
if (this._view === view) return;
|
|
84
|
+
this._unbindView();
|
|
85
|
+
this._view = view;
|
|
86
|
+
this._bindView();
|
|
87
|
+
this._render();
|
|
88
|
+
this.dispatchEvent(new CustomEvent('notify::view', { bubbles: true, detail: { view } }));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
connectedCallback() {
|
|
92
|
+
if (this._initialized) {
|
|
93
|
+
// Re-entering a document: `disconnectedCallback` dropped the listeners, so a
|
|
94
|
+
// button that was merely MOVED has to get them back here or it stops noticing
|
|
95
|
+
// pages.
|
|
96
|
+
this._bindView();
|
|
97
|
+
this._render();
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this._initialized = true;
|
|
101
|
+
|
|
102
|
+
this._button = document.createElement('button');
|
|
103
|
+
this._button.type = 'button';
|
|
104
|
+
this._button.className = 'adw-button image-button';
|
|
105
|
+
this._button.title = 'View Open Tabs';
|
|
106
|
+
|
|
107
|
+
// adw-tab-button.ui, node for node: a button holding an `AdwIndicatorBin`, whose
|
|
108
|
+
// child is a `GtkOverlay` — the glyph UNDERNEATH and the count ON TOP — with the
|
|
109
|
+
// bin's own indicator beside it.
|
|
110
|
+
this._binEl = document.createElement('span');
|
|
111
|
+
this._binEl.className = 'adw-tab-button-indicatorbin';
|
|
112
|
+
|
|
113
|
+
const plate = document.createElement('span');
|
|
114
|
+
plate.className = 'adw-tab-button-plate';
|
|
115
|
+
|
|
116
|
+
this._labelEl = document.createElement('span');
|
|
117
|
+
this._labelEl.className = 'adw-tab-button-label numeric';
|
|
118
|
+
|
|
119
|
+
this._indicatorEl = document.createElement('span');
|
|
120
|
+
this._indicatorEl.className = 'adw-tab-button-indicator';
|
|
121
|
+
|
|
122
|
+
this._binEl.append(plate, this._labelEl);
|
|
123
|
+
this._button.append(this._binEl, this._indicatorEl);
|
|
124
|
+
this.replaceChildren(this._button);
|
|
125
|
+
this.setAttribute('role', 'button');
|
|
126
|
+
|
|
127
|
+
// `clicked_cb`: the inner button's `clicked`, re-emitted as this widget's own
|
|
128
|
+
// signal. The DOM's click already bubbles, so a listener on the host sees it;
|
|
129
|
+
// dispatching it again would double-fire one press.
|
|
130
|
+
const ref = this.getAttribute('view');
|
|
131
|
+
this.setView(ref === null ? null : this._resolveView(ref));
|
|
132
|
+
this._bindView();
|
|
133
|
+
this._render();
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
disconnectedCallback() {
|
|
137
|
+
this._unbindView();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
attributeChangedCallback(name: string, _old: string | null, value: string | null) {
|
|
141
|
+
if (!this._initialized || name !== 'view') return;
|
|
142
|
+
this.setView(value === null ? null : this._resolveView(value));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private _resolveView(ref: string): AdwTabView | null {
|
|
146
|
+
// Resolved NOW, because the view is normally earlier in the document (content
|
|
147
|
+
// above the chrome), which is the same reason `<adw-view-switcher-bar>` resolves
|
|
148
|
+
// its `stack` on connect rather than on the first attribute write.
|
|
149
|
+
return (document.getElementById(ref) as AdwTabView | null) ?? null;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
private _onViewChange = (): void => this._render();
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* `set_view`'s four connections (adw-tab-button.c:`set_view`), as the view's own events.
|
|
156
|
+
*
|
|
157
|
+
* `notify::n-pages`, `page-attached` and `page-detached` all arrive as `page-attached`
|
|
158
|
+
* / `page-detached`; `notify::selected-page` is itself; and what C reads off each PAGE
|
|
159
|
+
* (`notify::needs-attention`) reaches the view as `page-updated`, whichever page it
|
|
160
|
+
* is on and whether an attribute or `setPageNeedsAttention` changed it.
|
|
161
|
+
*/
|
|
162
|
+
private _bindView(): void {
|
|
163
|
+
this._unbindView();
|
|
164
|
+
for (const type of VIEW_EVENTS) this._view?.addEventListener(type, this._onViewChange);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
private _unbindView(): void {
|
|
168
|
+
for (const type of VIEW_EVENTS) this._view?.removeEventListener(type, this._onViewChange);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/** `update_icon` and `update_needs_attention`, in that order. */
|
|
172
|
+
private _render(): void {
|
|
173
|
+
const view = this._view;
|
|
174
|
+
const nPages = view?.nPages ?? 0;
|
|
175
|
+
const displayLabel = nPages < OVERFLOW_PAGES;
|
|
176
|
+
|
|
177
|
+
this._labelEl.textContent = displayLabel ? String(nPages) : '';
|
|
178
|
+
this._labelEl.hidden = !displayLabel;
|
|
179
|
+
// `small_label = n_pages >= 10` — the label's own class, and the stylesheet
|
|
180
|
+
// takes `font-size: 8px` off it against 10.5px without it.
|
|
181
|
+
this._labelEl.classList.toggle('small', nPages >= SMALL_LABEL_PAGES);
|
|
182
|
+
// The overflow glyph replaces the label, so the bin is what carries which of the
|
|
183
|
+
// two the plate is drawing.
|
|
184
|
+
this._binEl.classList.toggle('overflow', !displayLabel);
|
|
185
|
+
|
|
186
|
+
const selectedId = view?.selectedId ?? null;
|
|
187
|
+
const needsAttention = view?.pages.some((page) => page.needsAttention && page.id !== selectedId) ?? false;
|
|
188
|
+
this._indicatorEl.classList.toggle('needs-attention', needsAttention);
|
|
189
|
+
this._indicatorEl.hidden = !needsAttention;
|
|
190
|
+
this._button.setAttribute('aria-label', `View Open Tabs (${nPages})`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
customElements.define('adw-tab-button', AdwTabButton);
|