@gjsify/adwaita-web 0.64.2-next.252 → 0.64.2-next.254
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 +10 -80
- package/dist/adwaita-web.css +52 -3
- package/dist/adwaita-web.css.map +1 -1
- package/lib/types/accessible.d.ts +8 -0
- package/lib/types/compute-expand.d.ts +5 -0
- package/lib/types/compute-expand.spec.d.ts +1 -0
- package/lib/types/elements/adw-about-dialog.d.ts +28 -1
- package/lib/types/elements/adw-action-row.d.ts +2 -1
- package/lib/types/elements/adw-alert-dialog.d.ts +3 -2
- package/lib/types/elements/adw-avatar.d.ts +2 -1
- package/lib/types/elements/adw-banner.d.ts +2 -1
- package/lib/types/elements/adw-bin.d.ts +2 -1
- package/lib/types/elements/adw-bottom-sheet.d.ts +5 -4
- package/lib/types/elements/adw-breakpoint-bin.d.ts +2 -1
- package/lib/types/elements/adw-button-content.d.ts +2 -1
- package/lib/types/elements/adw-button-row.d.ts +2 -1
- package/lib/types/elements/adw-card.d.ts +2 -1
- package/lib/types/elements/adw-carousel.d.ts +20 -3
- package/lib/types/elements/adw-clamp-scrollable.d.ts +2 -1
- package/lib/types/elements/adw-clamp.d.ts +2 -1
- package/lib/types/elements/adw-combo-row.d.ts +6 -1
- package/lib/types/elements/adw-data-grid.d.ts +2 -1
- package/lib/types/elements/adw-dialog.d.ts +2 -1
- package/lib/types/elements/adw-entry-row.d.ts +2 -1
- package/lib/types/elements/adw-expander-row.d.ts +2 -1
- package/lib/types/elements/adw-header-bar.d.ts +2 -1
- package/lib/types/elements/adw-inline-view-switcher.d.ts +3 -2
- package/lib/types/elements/adw-layout-slot.d.ts +2 -1
- package/lib/types/elements/adw-multi-layout-view.d.ts +2 -1
- package/lib/types/elements/adw-navigation-split-view.d.ts +2 -1
- package/lib/types/elements/adw-navigation-view.d.ts +3 -2
- package/lib/types/elements/adw-overlay-split-view.d.ts +2 -1
- package/lib/types/elements/adw-preferences-dialog.d.ts +5 -4
- package/lib/types/elements/adw-preferences-group.d.ts +2 -1
- package/lib/types/elements/adw-preferences-row.d.ts +2 -1
- package/lib/types/elements/adw-shortcut-label.d.ts +2 -1
- package/lib/types/elements/adw-shortcuts-item.d.ts +2 -1
- package/lib/types/elements/adw-shortcuts-section.d.ts +2 -1
- package/lib/types/elements/adw-sidebar.d.ts +4 -3
- package/lib/types/elements/adw-spin-row.d.ts +2 -1
- package/lib/types/elements/adw-spinner.d.ts +2 -1
- package/lib/types/elements/adw-split-button.d.ts +2 -1
- package/lib/types/elements/adw-status-page.d.ts +2 -1
- package/lib/types/elements/adw-switch-row.d.ts +4 -1
- package/lib/types/elements/adw-tab-bar.d.ts +2 -1
- package/lib/types/elements/adw-tab-button.d.ts +2 -1
- package/lib/types/elements/adw-tab-overview.d.ts +2 -1
- package/lib/types/elements/adw-tab-view.d.ts +3 -2
- package/lib/types/elements/adw-toast-overlay.d.ts +2 -1
- package/lib/types/elements/adw-toggle-group.d.ts +3 -2
- package/lib/types/elements/adw-toolbar-view.d.ts +2 -1
- package/lib/types/elements/adw-view-stack.d.ts +3 -1
- package/lib/types/elements/adw-view-switcher-bar.d.ts +2 -1
- package/lib/types/elements/adw-view-switcher-sidebar.d.ts +2 -1
- package/lib/types/elements/adw-view-switcher.d.ts +3 -2
- package/lib/types/elements/adw-window-title.d.ts +2 -1
- package/lib/types/elements/adw-wrap-box.d.ts +2 -1
- package/lib/types/elements/checks.d.ts +16 -1
- package/lib/types/elements/gtk-action-bar.d.ts +2 -1
- package/lib/types/elements/gtk-aspect-frame.d.ts +2 -1
- package/lib/types/elements/gtk-box.d.ts +5 -1
- package/lib/types/elements/gtk-button.d.ts +5 -7
- package/lib/types/elements/gtk-calendar.d.ts +2 -1
- package/lib/types/elements/gtk-center-box.d.ts +2 -1
- package/lib/types/elements/gtk-color-dialog-button.d.ts +2 -1
- package/lib/types/elements/gtk-drag-icon.d.ts +2 -1
- package/lib/types/elements/gtk-drawing-area.d.ts +2 -1
- package/lib/types/elements/gtk-drop-down.d.ts +2 -1
- package/lib/types/elements/gtk-editable-label.d.ts +2 -1
- package/lib/types/elements/gtk-entry.d.ts +2 -1
- package/lib/types/elements/gtk-expander.d.ts +2 -1
- package/lib/types/elements/gtk-fixed.d.ts +2 -1
- package/lib/types/elements/gtk-flow-box-child.d.ts +2 -1
- package/lib/types/elements/gtk-flow-box.d.ts +2 -1
- package/lib/types/elements/gtk-font-dialog-button.d.ts +2 -1
- package/lib/types/elements/gtk-frame.d.ts +2 -1
- package/lib/types/elements/gtk-gl-area.d.ts +2 -1
- package/lib/types/elements/gtk-graphics-offload.d.ts +2 -1
- package/lib/types/elements/gtk-grid.d.ts +2 -1
- package/lib/types/elements/gtk-header-bar.d.ts +2 -1
- package/lib/types/elements/gtk-image.d.ts +5 -6
- package/lib/types/elements/gtk-inscription.d.ts +2 -1
- package/lib/types/elements/gtk-label.d.ts +10 -3
- package/lib/types/elements/gtk-level-bar.d.ts +2 -1
- package/lib/types/elements/gtk-list-box-row.d.ts +2 -1
- package/lib/types/elements/gtk-list-box.d.ts +2 -1
- package/lib/types/elements/gtk-list-view.d.ts +2 -1
- package/lib/types/elements/gtk-media-controls.d.ts +2 -1
- package/lib/types/elements/gtk-menu-button.d.ts +2 -1
- package/lib/types/elements/gtk-notebook.d.ts +2 -1
- package/lib/types/elements/gtk-overlay.d.ts +2 -1
- package/lib/types/elements/gtk-paned.d.ts +2 -1
- package/lib/types/elements/gtk-picture.d.ts +2 -1
- package/lib/types/elements/gtk-popover-bin.d.ts +2 -1
- package/lib/types/elements/gtk-popover-menu-bar.d.ts +2 -1
- package/lib/types/elements/gtk-popover.d.ts +2 -1
- package/lib/types/elements/gtk-progress-bar.d.ts +2 -1
- package/lib/types/elements/gtk-revealer.d.ts +2 -1
- package/lib/types/elements/gtk-scale-button.d.ts +2 -1
- package/lib/types/elements/gtk-scale.d.ts +2 -1
- package/lib/types/elements/gtk-scrollbar.d.ts +2 -1
- package/lib/types/elements/gtk-scrolled-window.d.ts +2 -1
- package/lib/types/elements/gtk-search-bar.d.ts +2 -1
- package/lib/types/elements/gtk-separator.d.ts +2 -1
- package/lib/types/elements/gtk-spin-button.d.ts +2 -1
- package/lib/types/elements/gtk-spinner.d.ts +2 -1
- package/lib/types/elements/gtk-stack-page.d.ts +2 -1
- package/lib/types/elements/gtk-stack-sidebar.d.ts +2 -1
- package/lib/types/elements/gtk-stack-switcher.d.ts +2 -1
- package/lib/types/elements/gtk-stack.d.ts +2 -1
- package/lib/types/elements/gtk-switch.d.ts +2 -1
- package/lib/types/elements/gtk-text-view.d.ts +2 -1
- package/lib/types/elements/gtk-text.d.ts +2 -1
- package/lib/types/elements/gtk-tree-expander.d.ts +2 -1
- package/lib/types/elements/gtk-video.d.ts +2 -1
- package/lib/types/elements/gtk-viewport.d.ts +2 -1
- package/lib/types/elements/gtk-window-controls.d.ts +2 -1
- package/lib/types/elements/gtk-window-handle.d.ts +2 -1
- package/lib/types/elements/gtk-window.d.ts +2 -1
- package/lib/types/gobject-elements.d.ts +7 -1
- package/lib/types/gtksource/gtk-source-view.d.ts +2 -1
- package/lib/types/{icon-registry.spec.d.ts → icon-masks.spec.d.ts} +1 -1
- package/lib/types/icon-theme.d.ts +15 -35
- package/lib/types/index.d.ts +1 -2
- package/lib/types/namespace/gdk.d.ts +1 -0
- package/lib/types/namespace/gio.d.ts +1 -0
- package/lib/types/namespace/glib.d.ts +2 -1
- package/lib/types/signals.d.ts +5 -1
- package/lib/types/source-view/adw-source-view.d.ts +2 -1
- package/lib/types/styles.generated.d.ts +1 -1
- package/lib/types/widget-element.d.ts +25 -0
- package/lib/types/widget-map.spec.d.ts +1 -0
- package/lib/types/widget-mapping.d.ts +7 -0
- package/package.json +12 -12
- package/scss/_about_dialog.scss +46 -1
- package/scss/_checks.scss +5 -2
- package/scss/_icon.scss +3 -4
- package/scss/_labels.scss +2 -2
- package/scss/_overlay_split_view.scss +10 -0
- package/scss/_scrolled_window.scss +15 -0
- package/scss/_widget.scss +5 -1
- package/src/accessible.ts +29 -0
- package/src/adw-about-dialog.spec.ts +81 -12
- package/src/adw-action-rows.spec.ts +2 -2
- package/src/adw-button-content.spec.ts +1 -1
- package/src/adw-carousel.spec.ts +49 -1
- package/src/capabilities.mjs +1 -0
- package/src/checks.spec.ts +51 -1
- package/src/compute-expand.spec.ts +186 -0
- package/src/compute-expand.ts +134 -0
- package/src/construct-vectors.spec.ts +46 -1
- package/src/elements/adw-about-dialog.ts +152 -9
- package/src/elements/adw-action-row.ts +2 -1
- package/src/elements/adw-alert-dialog.ts +3 -2
- package/src/elements/adw-avatar.ts +2 -1
- package/src/elements/adw-banner.ts +2 -1
- package/src/elements/adw-bin.ts +2 -1
- package/src/elements/adw-bottom-sheet.ts +5 -4
- package/src/elements/adw-breakpoint-bin.ts +2 -1
- package/src/elements/adw-button-content.ts +2 -1
- package/src/elements/adw-button-row.ts +2 -1
- package/src/elements/adw-card.ts +2 -1
- package/src/elements/adw-carousel.ts +62 -3
- package/src/elements/adw-clamp-scrollable.ts +2 -1
- package/src/elements/adw-clamp.ts +2 -1
- package/src/elements/adw-combo-row.ts +15 -1
- package/src/elements/adw-data-grid.ts +2 -1
- package/src/elements/adw-dialog.ts +2 -1
- package/src/elements/adw-entry-row.ts +2 -1
- package/src/elements/adw-expander-row.ts +2 -1
- package/src/elements/adw-header-bar.ts +2 -1
- package/src/elements/adw-inline-view-switcher.ts +3 -2
- package/src/elements/adw-layout-slot.ts +2 -1
- package/src/elements/adw-multi-layout-view.ts +2 -1
- package/src/elements/adw-navigation-split-view.ts +2 -1
- package/src/elements/adw-navigation-view.ts +3 -2
- package/src/elements/adw-overlay-split-view.ts +2 -1
- package/src/elements/adw-preferences-dialog.ts +6 -4
- package/src/elements/adw-preferences-group.ts +2 -1
- package/src/elements/adw-preferences-row.ts +2 -1
- package/src/elements/adw-shortcut-label.ts +2 -1
- package/src/elements/adw-shortcuts-item.ts +2 -1
- package/src/elements/adw-shortcuts-section.ts +2 -1
- package/src/elements/adw-sidebar.ts +4 -3
- package/src/elements/adw-spin-row.ts +2 -1
- package/src/elements/adw-spinner.ts +2 -1
- package/src/elements/adw-split-button.ts +2 -1
- package/src/elements/adw-status-page.ts +2 -1
- package/src/elements/adw-switch-row.ts +10 -1
- package/src/elements/adw-tab-bar.ts +2 -1
- package/src/elements/adw-tab-button.ts +2 -1
- package/src/elements/adw-tab-overview.ts +2 -1
- package/src/elements/adw-tab-view.ts +3 -2
- package/src/elements/adw-toast-overlay.ts +2 -1
- package/src/elements/adw-toggle-group.ts +3 -2
- package/src/elements/adw-toolbar-view.ts +2 -1
- package/src/elements/adw-view-stack.ts +39 -1
- package/src/elements/adw-view-switcher-bar.ts +2 -1
- package/src/elements/adw-view-switcher-sidebar.ts +2 -1
- package/src/elements/adw-view-switcher.ts +3 -2
- package/src/elements/adw-window-title.ts +2 -1
- package/src/elements/adw-wrap-box.ts +2 -1
- package/src/elements/checks.ts +85 -6
- package/src/elements/gtk-action-bar.ts +2 -1
- package/src/elements/gtk-aspect-frame.ts +2 -1
- package/src/elements/gtk-box.ts +56 -1
- package/src/elements/gtk-button.ts +10 -22
- package/src/elements/gtk-calendar.ts +2 -1
- package/src/elements/gtk-center-box.ts +2 -1
- package/src/elements/gtk-color-dialog-button.ts +2 -1
- package/src/elements/gtk-drag-icon.ts +2 -1
- package/src/elements/gtk-drawing-area.ts +2 -1
- package/src/elements/gtk-drop-down.ts +2 -1
- package/src/elements/gtk-editable-label.ts +2 -1
- package/src/elements/gtk-entry.ts +2 -1
- package/src/elements/gtk-expander.ts +2 -1
- package/src/elements/gtk-fixed.ts +2 -1
- package/src/elements/gtk-flow-box-child.ts +2 -1
- package/src/elements/gtk-flow-box.ts +2 -1
- package/src/elements/gtk-font-dialog-button.ts +2 -1
- package/src/elements/gtk-frame.ts +2 -1
- package/src/elements/gtk-gl-area.ts +2 -1
- package/src/elements/gtk-graphics-offload.ts +2 -1
- package/src/elements/gtk-grid.ts +2 -1
- package/src/elements/gtk-header-bar.ts +2 -1
- package/src/elements/gtk-image.ts +14 -15
- package/src/elements/gtk-inscription.ts +2 -1
- package/src/elements/gtk-label.ts +12 -5
- package/src/elements/gtk-level-bar.ts +2 -1
- package/src/elements/gtk-list-box-row.ts +2 -1
- package/src/elements/gtk-list-box.ts +2 -1
- package/src/elements/gtk-list-view.ts +2 -1
- package/src/elements/gtk-media-controls.ts +2 -1
- package/src/elements/gtk-menu-button.ts +2 -1
- package/src/elements/gtk-notebook.ts +2 -1
- package/src/elements/gtk-overlay.ts +2 -1
- package/src/elements/gtk-paned.ts +2 -1
- package/src/elements/gtk-picture.ts +2 -1
- package/src/elements/gtk-popover-bin.ts +2 -1
- package/src/elements/gtk-popover-menu-bar.ts +2 -1
- package/src/elements/gtk-popover.ts +2 -1
- package/src/elements/gtk-progress-bar.ts +2 -1
- package/src/elements/gtk-revealer.ts +2 -1
- package/src/elements/gtk-scale-button.ts +2 -1
- package/src/elements/gtk-scale.ts +2 -1
- package/src/elements/gtk-scrollbar.ts +2 -1
- package/src/elements/gtk-scrolled-window.ts +8 -5
- package/src/elements/gtk-search-bar.ts +2 -1
- package/src/elements/gtk-separator.ts +2 -1
- package/src/elements/gtk-spin-button.ts +2 -1
- package/src/elements/gtk-spinner.ts +2 -1
- package/src/elements/gtk-stack-page.ts +2 -1
- package/src/elements/gtk-stack-sidebar.ts +2 -1
- package/src/elements/gtk-stack-switcher.ts +2 -1
- package/src/elements/gtk-stack.ts +2 -1
- package/src/elements/gtk-switch.ts +2 -1
- package/src/elements/gtk-text-view.ts +2 -1
- package/src/elements/gtk-text.ts +2 -1
- package/src/elements/gtk-tree-expander.ts +2 -1
- package/src/elements/gtk-video.ts +2 -1
- package/src/elements/gtk-viewport.ts +2 -1
- package/src/elements/gtk-window-controls.ts +2 -1
- package/src/elements/gtk-window-handle.ts +2 -1
- package/src/elements/gtk-window.ts +2 -1
- package/src/gio.spec.ts +13 -3
- package/src/glib.spec.ts +9 -0
- package/src/gobject-elements.ts +18 -4
- package/src/gtk-label.spec.ts +39 -0
- package/src/gtk-scrolled-window.spec.ts +6 -6
- package/src/gtk-value-doors.spec.ts +19 -0
- package/src/gtk-window.spec.ts +2 -2
- package/src/gtksource/gtk-source-view.ts +2 -1
- package/src/{icon-registry.spec.ts → icon-masks.spec.ts} +4 -100
- package/src/icon-theme.spec.ts +69 -124
- package/src/icon-theme.ts +29 -119
- package/src/index.ts +3 -7
- package/src/namespace/gdk.ts +1 -0
- package/src/namespace/gio.ts +8 -0
- package/src/namespace/glib.ts +4 -0
- package/src/shared-tree-builder.ts +26 -3
- package/src/signals.ts +11 -2
- package/src/source-view/adw-source-view.ts +2 -1
- package/src/split-button.spec.ts +1 -1
- package/src/style-manager.spec.ts +13 -0
- package/src/style-manager.ts +6 -0
- package/src/styles.generated.ts +1 -1
- package/src/test.browser.mts +6 -2
- package/src/widget-element.ts +75 -0
- package/src/widget-map.spec.ts +116 -0
- package/src/widget-mapping.ts +100 -0
- package/src/widget-visible.spec.ts +44 -0
- package/lib/types/icon-registry.d.ts +0 -37
- package/src/icon-registry.ts +0 -163
package/README.md
CHANGED
|
@@ -248,16 +248,11 @@ visible: the icon has not silently disappeared, and nothing throws — an icon i
|
|
|
248
248
|
and neither of the other two Adwaita renderers takes an application down over a glyph. Only
|
|
249
249
|
an **absent or empty** name draws nothing, which is the host declining an icon.
|
|
250
250
|
|
|
251
|
-
###
|
|
251
|
+
### Icons outside the subset
|
|
252
252
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
if (!isIconAvailable('dialog-error')) {
|
|
258
|
-
registerIcon('dialog-error-symbolic', dialogErrorSymbolic);
|
|
259
|
-
}
|
|
260
|
-
```
|
|
253
|
+
A glyph the subset does not compile — a symbolic of your own, or a full-colour application
|
|
254
|
+
icon — comes from the app's GResource, the way GNOME ships it (next section).
|
|
255
|
+
`isIconAvailable(name)` answers whether the compiled subset or a resource path draws a name.
|
|
261
256
|
|
|
262
257
|
```html
|
|
263
258
|
<gtk-image icon-name="dialog-error"></gtk-image>
|
|
@@ -273,71 +268,6 @@ narrow surface such as an extension popup — a 96px icon, 24px margins and the
|
|
|
273
268
|
<adw-status-page compact icon="dialog-error" title="No results"></adw-status-page>
|
|
274
269
|
```
|
|
275
270
|
|
|
276
|
-
`registerIcon(name, svg)` takes the icon's **SVG source** — exactly what
|
|
277
|
-
`@gjsify/adwaita-icons` exports, and equally any symbolic SVG of your own drawn on the 16px
|
|
278
|
-
Adwaita grid with `fill="currentColor"`. It writes the same pair the build writes: a
|
|
279
|
-
`--icon-<name>` custom property on the document element and a `.adw-icon--<name>` mask rule,
|
|
280
|
-
so from then on the name is indistinguishable from a compiled one — in `<gtk-image>`, in a
|
|
281
|
-
widget attribute, in a hand-written `class="adw-icon adw-icon--dialog-error"`, and in your
|
|
282
|
-
own CSS as `var(--icon-dialog-error)`.
|
|
283
|
-
|
|
284
|
-
Notes worth having:
|
|
285
|
-
|
|
286
|
-
- **Register before you mount, where you can.** An icon already in the document shows the
|
|
287
|
-
fallback until the registration lands. The CSS is live, so it corrects itself on the next
|
|
288
|
-
style recalculation with no re-render — but there is a visible frame in between.
|
|
289
|
-
- **`registerIcon` needs a live document.** It writes to `document.documentElement` and
|
|
290
|
-
`document.head`, so calling it at module top level in an SSR/SSG build (an Astro component
|
|
291
|
-
module, for instance) throws a `ReferenceError` before any page renders. Call it from
|
|
292
|
-
client-side code — an `onMount`, a `client:load` boundary, a `DOMContentLoaded` handler.
|
|
293
|
-
- **The name is normalized the same way the attribute is**: one optional `-symbolic` suffix
|
|
294
|
-
comes off, and what is left has to be a single CSS token. `registerIcon` *throws* on a name
|
|
295
|
-
that is not (`org.gnome.Builder`, `a b`), because a call that silently registers nothing is
|
|
296
|
-
the failure this whole area exists to end — and because there is no mask class such a name
|
|
297
|
-
could be given. `<gtk-image>` stays lenient with the same input: the name came from markup,
|
|
298
|
-
so it draws `image-missing` rather than taking the page down.
|
|
299
|
-
- **Re-registering replaces the glyph** rather than adding a second rule, so a runtime theme
|
|
300
|
-
switch can call it as often as it likes.
|
|
301
|
-
- `isIconAvailable(name)` reads the live cascade, not a generated list, so it also answers
|
|
302
|
-
`true` for a glyph you supplied through your own stylesheet's `--icon-<name>`.
|
|
303
|
-
|
|
304
|
-
### Full-colour icons — an application icon
|
|
305
|
-
|
|
306
|
-
A symbolic icon is recoloured; an application icon is not. On GNOME,
|
|
307
|
-
`AdwAboutDialog`'s `application-icon` is the application ID, and GTK finds
|
|
308
|
-
`hicolor/scalable/apps/<app-id>.svg` and draws it as it is. The web stand-in for that file is
|
|
309
|
-
`registerColorIcon`:
|
|
310
|
-
|
|
311
|
-
```typescript
|
|
312
|
-
import { registerColorIcon } from '@gjsify/adwaita-web';
|
|
313
|
-
import appIcon from './icons/org.example.App.svg?raw';
|
|
314
|
-
|
|
315
|
-
registerColorIcon('org.example.App', appIcon); // SVG source…
|
|
316
|
-
registerColorIcon('org.example.Other', '/icons/other.png'); // …or an image URL
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
```html
|
|
320
|
-
<adw-about-dialog application-icon="org.example.App" application-name="Example"></adw-about-dialog>
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
Every `<gtk-image>` asking for a registered name draws the image unmasked and unrecoloured,
|
|
324
|
-
which covers every widget that draws its icons through it, `<adw-about-dialog>` and
|
|
325
|
-
`<gtk-about-dialog logo-icon-name>` among them. A name is looked up in the order GTK's own
|
|
326
|
-
theme tries it (`g_themed_icon_update_names`, then gtkicontheme.c's theme order). A colour
|
|
327
|
-
registration is hicolor's, so the current theme's symbolic glyph comes first either way:
|
|
328
|
-
|
|
329
|
-
| Asked for | Tried, in order | Neither found |
|
|
330
|
-
| --- | --- | --- |
|
|
331
|
-
| `X` | symbolic `X-symbolic`, then colour `X` | `image-missing` |
|
|
332
|
-
| `X-symbolic` | symbolic `X-symbolic`, then colour `X` | `image-missing` |
|
|
333
|
-
|
|
334
|
-
So nothing changes for a name with no colour registration, and a colour `X` shows only where the
|
|
335
|
-
theme has no `X-symbolic` — the same as on GNOME. `registerColorIcon` keys on the
|
|
336
|
-
**exact** name, reverse-DNS IDs included, and *throws* on an empty or spaced name, on a
|
|
337
|
-
`-symbolic` (`-ltr`/`-rtl`) name — that is `registerIcon`'s half — and on a source that is
|
|
338
|
-
neither SVG source nor an `http(s):`, `blob:`, `file:` or `data:image/` URL. A registration
|
|
339
|
-
redraws every mounted `<gtk-image>`, and `isIconAvailable` answers `true` for the name.
|
|
340
|
-
|
|
341
271
|
### Icons from the app's GResource (ADR 0116)
|
|
342
272
|
|
|
343
273
|
The way GNOME takes: the app's compiled `.gresource`, registered with the GIO calls it already
|
|
@@ -356,9 +286,9 @@ the lookup follows `gtkicontheme.c`: hicolor subdirectories (`16x16/apps/`, `sca
|
|
|
356
286
|
`symbolic/apps/`, …, without a `hicolor/` component) by size and scale, then files directly
|
|
357
287
|
under the path. A compiled symbolic glyph still answers a `-symbolic` name first. A `-symbolic`
|
|
358
288
|
file draws as a mask in `currentColor`, any other SVG or PNG as it is; an XPM or a compressed
|
|
359
|
-
entry draws `image-missing` with a warning.
|
|
360
|
-
|
|
361
|
-
or `gtk/help-overlay.ui` under the base path, startup throws: no builder here reads them yet.
|
|
289
|
+
entry draws `image-missing` with a warning. An application icon (`application-icon="org.example.App"`)
|
|
290
|
+
is a colour file such as `scalable/apps/org.example.App.svg` under the path. If the resource
|
|
291
|
+
holds `gtk/menus.ui` or `gtk/help-overlay.ui` under the base path, startup throws: no builder here reads them yet.
|
|
362
292
|
`add_search_path` stays a record, since there is no file system to search.
|
|
363
293
|
|
|
364
294
|
### Why this is a web-only concern
|
|
@@ -370,14 +300,14 @@ knowing which one you are on:
|
|
|
370
300
|
| --- | --- | --- |
|
|
371
301
|
| GTK (`@gjsify/adwaita-app`) | `GtkIconTheme` looks it up in the **system** icon theme at runtime | draws the theme's `image-missing` |
|
|
372
302
|
| NativeScript (`@gjsify/adwaita-nativescript`) | `GtkImage` is handed the **SVG source**, not a name | cannot happen — a missing icon is a missing import |
|
|
373
|
-
| Web (this package) | a **compile-time** subset, the `Gtk.IconTheme` resource paths
|
|
303
|
+
| Web (this package) | a **compile-time** subset, then the `Gtk.IconTheme` resource paths | draws `image-missing` |
|
|
374
304
|
|
|
375
305
|
All three therefore end on ONE glyph for a name they cannot draw. The web reaches it by two
|
|
376
306
|
routes — no mask class for a known-shaped name, or no usable class for a name like
|
|
377
|
-
`org.gnome.Builder` that no
|
|
307
|
+
`org.gnome.Builder` that no resource path has answered either.
|
|
378
308
|
|
|
379
309
|
Only the web renderer has a set that can be missing something at runtime, which is why only
|
|
380
|
-
it needs a
|
|
310
|
+
it needs a compiled subset beside the resource paths. `scripts/check-adwaita-icon-masks.mjs` holds the compiled
|
|
381
311
|
subset against every name this repository's SHIPPING surfaces emit, in both directions, and
|
|
382
312
|
fails on a compiled glyph that did not come from `@gjsify/adwaita-icons`.
|
|
383
313
|
|
package/dist/adwaita-web.css
CHANGED
|
@@ -4201,7 +4201,8 @@ gtk-check-button .adw-check-indicator {
|
|
|
4201
4201
|
border-radius: 6px;
|
|
4202
4202
|
}
|
|
4203
4203
|
|
|
4204
|
-
adw-radio .adw-check-indicator
|
|
4204
|
+
adw-radio .adw-check-indicator,
|
|
4205
|
+
gtk-check-button[radio] .adw-check-indicator {
|
|
4205
4206
|
border-radius: 100%;
|
|
4206
4207
|
}
|
|
4207
4208
|
|
|
@@ -4211,13 +4212,15 @@ gtk-check-button[checked] .adw-check-indicator::after {
|
|
|
4211
4212
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='m 12.599609,2.1992188 a 1,1 0 0 0 -1.40039,0.2011718 L 5.890625,9.4765625 2.7070313,6.2929687 a 1,1 0 0 0 -1.4140626,0 1,1 0 0 0 0,1.4140625 l 4,3.9999998 A 1.0001,1.0001 0 0 0 6.8007812,11.599609 L 12.800781,3.5996094 A 1,1 0 0 0 12.599609,2.1992188 Z'/%3E%3C/svg%3E");
|
|
4212
4213
|
}
|
|
4213
4214
|
|
|
4214
|
-
adw-radio[checked] .adw-check-indicator::after
|
|
4215
|
+
adw-radio[checked] .adw-check-indicator::after,
|
|
4216
|
+
gtk-check-button[radio][checked] .adw-check-indicator::after {
|
|
4215
4217
|
background-color: currentColor;
|
|
4216
4218
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 7 3 c -2.207 0 -4 1.793 -4 4 s 1.793 4 4 4 c 2.208 0 4 -1.793 4 -4 s -1.792 -4 -4 -4 z'/%3E%3C/svg%3E");
|
|
4217
4219
|
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 7 3 c -2.207 0 -4 1.793 -4 4 s 1.793 4 4 4 c 2.208 0 4 -1.793 4 -4 s -1.792 -4 -4 -4 z'/%3E%3C/svg%3E");
|
|
4218
4220
|
}
|
|
4219
4221
|
|
|
4220
4222
|
gtk-check-button[indeterminate] .adw-check-indicator::after,
|
|
4223
|
+
gtk-check-button[radio][indeterminate] .adw-check-indicator::after,
|
|
4221
4224
|
adw-radio[indeterminate] .adw-check-indicator::after {
|
|
4222
4225
|
background-color: currentColor;
|
|
4223
4226
|
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14'%3E%3Cpath fill='black' d='M 3 5 A 2 2 0 0 0 1 7 A 2 2 0 0 0 3 9 L 11 9 A 2 2 0 0 0 13 7 A 2 2 0 0 0 11 5 Z'/%3E%3C/svg%3E");
|
|
@@ -7262,6 +7265,12 @@ gtk-scrolled-window {
|
|
|
7262
7265
|
}
|
|
7263
7266
|
gtk-scrolled-window > gtk-viewport {
|
|
7264
7267
|
grid-area: 1/1;
|
|
7268
|
+
width: 0;
|
|
7269
|
+
height: 0;
|
|
7270
|
+
min-width: 100%;
|
|
7271
|
+
min-height: 100%;
|
|
7272
|
+
max-width: 100%;
|
|
7273
|
+
max-height: 100%;
|
|
7265
7274
|
}
|
|
7266
7275
|
gtk-scrolled-window > gtk-scrollbar.vertical {
|
|
7267
7276
|
grid-row: 1/3;
|
|
@@ -7446,6 +7455,10 @@ adw-overlay-split-view .adw-osv-content {
|
|
|
7446
7455
|
flex-direction: column;
|
|
7447
7456
|
align-self: stretch;
|
|
7448
7457
|
}
|
|
7458
|
+
adw-overlay-split-view .adw-osv-content > :only-child,
|
|
7459
|
+
adw-overlay-split-view .adw-osv-sidebar > :only-child {
|
|
7460
|
+
flex: 1 1 auto;
|
|
7461
|
+
}
|
|
7449
7462
|
adw-overlay-split-view:not(.collapsed) .adw-osv-sidebar {
|
|
7450
7463
|
position: relative;
|
|
7451
7464
|
}
|
|
@@ -9924,6 +9937,7 @@ adw-about-dialog .adw-about-dialog-sheet:focus {
|
|
|
9924
9937
|
outline: 1px solid var(--separator-color);
|
|
9925
9938
|
outline-offset: -1px;
|
|
9926
9939
|
}
|
|
9940
|
+
adw-about-dialog adw-toast-overlay,
|
|
9927
9941
|
adw-about-dialog adw-navigation-view,
|
|
9928
9942
|
adw-about-dialog .adw-navigation-view-pages,
|
|
9929
9943
|
adw-about-dialog .adw-navigation-page {
|
|
@@ -10034,6 +10048,39 @@ adw-about-dialog .adw-about-dialog-comments {
|
|
|
10034
10048
|
text-align: start;
|
|
10035
10049
|
white-space: pre-wrap;
|
|
10036
10050
|
}
|
|
10051
|
+
adw-about-dialog .adw-about-dialog-release-notes {
|
|
10052
|
+
margin: var(--spacing-s) 0 0;
|
|
10053
|
+
font-size: var(--font-size-base);
|
|
10054
|
+
line-height: 1.5;
|
|
10055
|
+
white-space: pre-wrap;
|
|
10056
|
+
}
|
|
10057
|
+
adw-about-dialog .adw-about-dialog-release-notes [data-tag=heading] {
|
|
10058
|
+
font-weight: 800;
|
|
10059
|
+
font-size: 1.2em;
|
|
10060
|
+
}
|
|
10061
|
+
adw-about-dialog .adw-about-dialog-release-notes [data-tag=em] {
|
|
10062
|
+
font-style: italic;
|
|
10063
|
+
}
|
|
10064
|
+
adw-about-dialog .adw-about-dialog-release-notes [data-tag=code] {
|
|
10065
|
+
font-family: var(--monospace-font-family);
|
|
10066
|
+
}
|
|
10067
|
+
adw-about-dialog .adw-about-dialog-release-notes [data-tag=bullet] {
|
|
10068
|
+
opacity: var(--dim-opacity);
|
|
10069
|
+
}
|
|
10070
|
+
adw-about-dialog .adw-about-dialog-debug-info {
|
|
10071
|
+
margin: var(--spacing-s) 0 0;
|
|
10072
|
+
padding: var(--spacing-s);
|
|
10073
|
+
font-family: var(--monospace-font-family);
|
|
10074
|
+
font-size: var(--font-size-small);
|
|
10075
|
+
white-space: pre-wrap;
|
|
10076
|
+
overflow-wrap: anywhere;
|
|
10077
|
+
border-radius: var(--card-radius);
|
|
10078
|
+
background-color: var(--card-bg-color);
|
|
10079
|
+
}
|
|
10080
|
+
adw-about-dialog .adw-about-dialog-copy {
|
|
10081
|
+
align-self: center;
|
|
10082
|
+
margin-top: var(--spacing-m);
|
|
10083
|
+
}
|
|
10037
10084
|
adw-about-dialog .adw-about-dialog-copyright {
|
|
10038
10085
|
margin: var(--spacing-s) 0 0;
|
|
10039
10086
|
font-size: var(--font-size-small);
|
|
@@ -10572,7 +10619,9 @@ adw-shortcuts-item + adw-shortcuts-item {
|
|
|
10572
10619
|
}
|
|
10573
10620
|
|
|
10574
10621
|
gtk-box:not([orientation=vertical]) > [hexpand]:not([hexpand=false]),
|
|
10575
|
-
gtk-box[orientation=vertical] > [vexpand]:not([vexpand=false])
|
|
10622
|
+
gtk-box[orientation=vertical] > [vexpand]:not([vexpand=false]),
|
|
10623
|
+
gtk-box:not([orientation=vertical]) > [data-computed-hexpand],
|
|
10624
|
+
gtk-box[orientation=vertical] > [data-computed-vexpand] {
|
|
10576
10625
|
flex-grow: 1;
|
|
10577
10626
|
}
|
|
10578
10627
|
|