@gjsify/adwaita-web 0.47.0 → 0.48.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 +3 -3
- package/dist/adwaita-web.css +62 -0
- package/dist/adwaita-web.css.map +1 -1
- package/lib/types/elements/adw-combo-row.d.ts +56 -0
- package/lib/types/elements/adw-spin-row.d.ts +11 -1
- package/lib/types/elements/adw-split-button.d.ts +43 -3
- package/lib/types/elements/gtk-drop-down.d.ts +22 -7
- package/lib/types/elements/gtk-menu-button.d.ts +43 -26
- package/lib/types/elements/gtk-popover.d.ts +14 -1
- package/lib/types/elements/popover-menu.d.ts +99 -0
- package/lib/types/index.d.ts +1 -1
- package/lib/types/styles.generated.d.ts +1 -1
- package/package.json +6 -6
- package/scss/_popover.scss +99 -0
- package/src/adw-row-state.spec.ts +335 -17
- package/src/elements/adw-combo-row.ts +161 -22
- package/src/elements/adw-spin-row.ts +49 -28
- package/src/elements/adw-split-button.ts +117 -39
- package/src/elements/gtk-drop-down.ts +109 -66
- package/src/elements/gtk-menu-button.ts +112 -88
- package/src/elements/gtk-popover.ts +17 -2
- package/src/elements/popover-menu.ts +366 -0
- package/src/gtk-drop-down.spec.ts +117 -25
- package/src/gtk-image.spec.ts +3 -3
- package/src/gtk-menu-button.spec.ts +165 -11
- package/src/index.ts +14 -1
- package/src/keyboard-operable.spec.ts +170 -1
- package/src/split-button.spec.ts +36 -22
- package/src/styles.generated.ts +1 -1
- package/src/tab-view.spec.ts +14 -0
package/README.md
CHANGED
|
@@ -93,8 +93,8 @@ same state machines, so a behaviour fix lands once and both ports pick it up.
|
|
|
93
93
|
| Element | Core state machine | What core owns |
|
|
94
94
|
| --- | --- | --- |
|
|
95
95
|
| `<adw-toast-overlay>` | `AdwToastQueue` + `AdwToast` | one toast at a time, FIFO ordering, auto-dismiss lifecycle |
|
|
96
|
-
| `<adw-combo-row>` | `ComboState` |
|
|
97
|
-
| `<adw-spin-row>` | `SpinState` | value
|
|
96
|
+
| `<adw-combo-row>` | `ComboState` | the list model + its `items-changed` splice, index↔value mapping, out-of-range guards, programmatic-vs-user split |
|
|
97
|
+
| `<adw-spin-row>` | `SpinState` | one `adjustment` (`Gtk.Adjustment`'s six numbers, ADR 0047) plus `value`, clamping on every mutation |
|
|
98
98
|
| `<adw-toggle-group>` | `ToggleGroupState` | segment list, guarded active index |
|
|
99
99
|
| `<adw-expander-row>` | `ExpanderState` | expanded/collapsed disclosure |
|
|
100
100
|
| `<adw-alert-dialog>` | `AdwAlertResponses` | response registry, default/close response, resolve-to-chosen-id |
|
|
@@ -221,7 +221,7 @@ knowing which one you are on:
|
|
|
221
221
|
| Renderer | How a name resolves | An unknown name |
|
|
222
222
|
| --- | --- | --- |
|
|
223
223
|
| GTK (`@gjsify/adwaita-app`) | `GtkIconTheme` looks it up in the **system** icon theme at runtime | draws the theme's `image-missing` |
|
|
224
|
-
| NativeScript (`@gjsify/adwaita-nativescript`) | `
|
|
224
|
+
| NativeScript (`@gjsify/adwaita-nativescript`) | `GtkImage` is handed the **SVG source**, not a name | cannot happen — a missing icon is a missing import |
|
|
225
225
|
| Web (this package) | a **compile-time** subset, plus `registerIcon` | draws `image-missing` |
|
|
226
226
|
|
|
227
227
|
All three therefore end on ONE glyph for a name they cannot draw. The web reaches it by two
|
package/dist/adwaita-web.css
CHANGED
|
@@ -1636,6 +1636,68 @@ gtk-popover[data-position=bottom][data-align=end], gtk-popover[data-position=top
|
|
|
1636
1636
|
opacity: var(--dim-opacity);
|
|
1637
1637
|
}
|
|
1638
1638
|
|
|
1639
|
+
.adw-popover-separator {
|
|
1640
|
+
height: 1px;
|
|
1641
|
+
margin: 6px 0;
|
|
1642
|
+
background-color: var(--separator-color, rgba(0, 0, 0, 0.15));
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
.adw-popover-section-title {
|
|
1646
|
+
padding-top: 2px;
|
|
1647
|
+
}
|
|
1648
|
+
|
|
1649
|
+
.adw-popover-item-accel {
|
|
1650
|
+
margin-inline-start: auto;
|
|
1651
|
+
padding-inline-start: 12px;
|
|
1652
|
+
opacity: var(--dim-opacity);
|
|
1653
|
+
font-size: 0.9em;
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
.adw-popover-item-check {
|
|
1657
|
+
position: relative;
|
|
1658
|
+
box-sizing: border-box;
|
|
1659
|
+
flex: none;
|
|
1660
|
+
width: 14px;
|
|
1661
|
+
height: 14px;
|
|
1662
|
+
padding: 2px;
|
|
1663
|
+
}
|
|
1664
|
+
[aria-checked=true] > .adw-popover-item-check::after {
|
|
1665
|
+
content: "";
|
|
1666
|
+
position: absolute;
|
|
1667
|
+
inset-inline-start: 4px;
|
|
1668
|
+
top: 1px;
|
|
1669
|
+
width: 4px;
|
|
1670
|
+
height: 8px;
|
|
1671
|
+
border: solid currentcolor;
|
|
1672
|
+
border-width: 0 2px 2px 0;
|
|
1673
|
+
transform: rotate(45deg);
|
|
1674
|
+
}
|
|
1675
|
+
.adw-popover-item-check.radio {
|
|
1676
|
+
border-radius: 9999px;
|
|
1677
|
+
}
|
|
1678
|
+
[aria-checked=true] > .adw-popover-item-check.radio::after {
|
|
1679
|
+
inset-inline-start: 4px;
|
|
1680
|
+
top: 4px;
|
|
1681
|
+
width: 6px;
|
|
1682
|
+
height: 6px;
|
|
1683
|
+
border: none;
|
|
1684
|
+
border-radius: 9999px;
|
|
1685
|
+
background-color: currentcolor;
|
|
1686
|
+
transform: none;
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
.adw-popover-item-arrow {
|
|
1690
|
+
margin-inline-start: auto;
|
|
1691
|
+
width: 16px;
|
|
1692
|
+
height: 16px;
|
|
1693
|
+
flex: none;
|
|
1694
|
+
opacity: var(--dim-opacity);
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1697
|
+
.adw-popover-back {
|
|
1698
|
+
font-weight: 700;
|
|
1699
|
+
}
|
|
1700
|
+
|
|
1639
1701
|
.adw-split-button {
|
|
1640
1702
|
position: relative;
|
|
1641
1703
|
box-sizing: border-box;
|