@gjsify/adwaita-core 0.31.0 → 0.33.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/lib/esm/about-dialog.js +3 -0
- package/lib/esm/action-row.js +1 -0
- package/lib/esm/avatar.js +1 -0
- package/lib/esm/banner.js +1 -0
- package/lib/esm/button-content.js +1 -0
- package/lib/esm/carousel.js +1 -0
- package/lib/esm/checks.js +1 -0
- package/lib/esm/chrome.js +1 -0
- package/lib/esm/conformance/about-dialog.js +6 -0
- package/lib/esm/conformance/action-row.js +1 -0
- package/lib/esm/conformance/avatar.js +1 -0
- package/lib/esm/conformance/banner.js +1 -0
- package/lib/esm/conformance/button-content.js +1 -0
- package/lib/esm/conformance/carousel.js +1 -0
- package/lib/esm/conformance/checks.js +1 -0
- package/lib/esm/conformance/chrome.js +1 -0
- package/lib/esm/conformance/data-grid.js +1 -0
- package/lib/esm/conformance/dialog.js +1 -0
- package/lib/esm/conformance/entry-row.js +1 -0
- package/lib/esm/conformance/index.js +1 -0
- package/lib/esm/conformance/navigation-view.js +1 -0
- package/lib/esm/conformance/popover.js +1 -0
- package/lib/esm/conformance/preferences.js +1 -0
- package/lib/esm/conformance/rows.js +1 -0
- package/lib/esm/conformance/sidebar.js +1 -0
- package/lib/esm/conformance/spinner.js +1 -0
- package/lib/esm/conformance/split-button.js +1 -0
- package/lib/esm/conformance/split-view.js +1 -0
- package/lib/esm/conformance/tab-view.js +1 -0
- package/lib/esm/conformance/view-stack.js +1 -0
- package/lib/esm/conformance/view-switcher.js +1 -0
- package/lib/esm/conformance/wrap-box.js +1 -0
- package/lib/esm/data-grid.js +1 -0
- package/lib/esm/dialog.js +1 -1
- package/lib/esm/easing.js +1 -0
- package/lib/esm/entry-row.js +1 -0
- package/lib/esm/glib.js +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/length-unit.js +1 -0
- package/lib/esm/navigation-view.js +1 -0
- package/lib/esm/popover.js +1 -0
- package/lib/esm/preferences.js +1 -0
- package/lib/esm/rows.js +1 -1
- package/lib/esm/sidebar.js +1 -0
- package/lib/esm/spinner.js +1 -0
- package/lib/esm/split-button.js +1 -0
- package/lib/esm/split-view.js +1 -0
- package/lib/esm/tab-view.js +1 -0
- package/lib/esm/view-stack.js +1 -0
- package/lib/esm/view-switcher.js +1 -0
- package/lib/esm/wrap-box.js +1 -0
- package/lib/types/about-dialog.d.ts +391 -0
- package/lib/types/about-dialog.spec.d.ts +2 -0
- package/lib/types/action-row.d.ts +270 -0
- package/lib/types/action-row.spec.d.ts +2 -0
- package/lib/types/avatar.d.ts +112 -0
- package/lib/types/avatar.spec.d.ts +2 -0
- package/lib/types/banner.d.ts +104 -0
- package/lib/types/banner.spec.d.ts +2 -0
- package/lib/types/button-content.d.ts +141 -0
- package/lib/types/button-content.spec.d.ts +2 -0
- package/lib/types/carousel.d.ts +535 -0
- package/lib/types/carousel.spec.d.ts +2 -0
- package/lib/types/checks.d.ts +63 -0
- package/lib/types/checks.spec.d.ts +2 -0
- package/lib/types/chrome.d.ts +355 -0
- package/lib/types/chrome.spec.d.ts +2 -0
- package/lib/types/conformance/about-dialog.d.ts +314 -0
- package/lib/types/conformance/action-row.d.ts +186 -0
- package/lib/types/conformance/avatar.d.ts +61 -0
- package/lib/types/conformance/banner.d.ts +91 -0
- package/lib/types/conformance/button-content.d.ts +110 -0
- package/lib/types/conformance/carousel.d.ts +298 -0
- package/lib/types/conformance/checks.d.ts +29 -0
- package/lib/types/conformance/chrome.d.ts +207 -0
- package/lib/types/conformance/data-grid.d.ts +136 -0
- package/lib/types/conformance/dialog.d.ts +97 -0
- package/lib/types/conformance/entry-row.d.ts +187 -0
- package/lib/types/conformance/index.d.ts +46 -0
- package/lib/types/conformance/navigation-view.d.ts +235 -0
- package/lib/types/conformance/popover.d.ts +58 -0
- package/lib/types/conformance/preferences.d.ts +184 -0
- package/lib/types/conformance/rows.d.ts +74 -0
- package/lib/types/conformance/sidebar.d.ts +182 -0
- package/lib/types/conformance/spinner.d.ts +66 -0
- package/lib/types/conformance/split-button.d.ts +193 -0
- package/lib/types/conformance/split-view.d.ts +301 -0
- package/lib/types/conformance/tab-view.d.ts +449 -0
- package/lib/types/conformance/view-stack.d.ts +121 -0
- package/lib/types/conformance/view-switcher.d.ts +443 -0
- package/lib/types/conformance/wrap-box.d.ts +185 -0
- package/lib/types/data-grid.d.ts +140 -0
- package/lib/types/data-grid.spec.d.ts +2 -0
- package/lib/types/dialog.d.ts +144 -0
- package/lib/types/easing.d.ts +21 -0
- package/lib/types/entry-row.d.ts +308 -0
- package/lib/types/entry-row.spec.d.ts +2 -0
- package/lib/types/glib.d.ts +49 -0
- package/lib/types/index.d.ts +50 -4
- package/lib/types/length-unit.d.ts +24 -0
- package/lib/types/navigation-view.d.ts +343 -0
- package/lib/types/navigation-view.spec.d.ts +2 -0
- package/lib/types/popover.d.ts +155 -0
- package/lib/types/popover.spec.d.ts +2 -0
- package/lib/types/preferences.d.ts +349 -0
- package/lib/types/preferences.spec.d.ts +2 -0
- package/lib/types/rows.d.ts +96 -8
- package/lib/types/sidebar.d.ts +308 -0
- package/lib/types/sidebar.spec.d.ts +2 -0
- package/lib/types/spinner.d.ts +117 -0
- package/lib/types/spinner.spec.d.ts +2 -0
- package/lib/types/split-button.d.ts +316 -0
- package/lib/types/split-button.spec.d.ts +2 -0
- package/lib/types/split-view.d.ts +703 -0
- package/lib/types/split-view.spec.d.ts +2 -0
- package/lib/types/tab-view.d.ts +616 -0
- package/lib/types/tab-view.spec.d.ts +2 -0
- package/lib/types/view-stack.d.ts +278 -0
- package/lib/types/view-stack.spec.d.ts +2 -0
- package/lib/types/view-switcher.d.ts +524 -0
- package/lib/types/view-switcher.spec.d.ts +2 -0
- package/lib/types/wrap-box.d.ts +200 -0
- package/lib/types/wrap-box.spec.d.ts +2 -0
- package/package.json +8 -4
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { AdwArrowIcon, AdwMenuEntry, SplitButtonContentMode, SplitButtonDirection, SplitButtonHalfState, SplitButtonProperty, SplitButtonStyleClass } from '../split-button.js';
|
|
2
|
+
/** One mutation in a {@link SplitButtonContentVector} sequence, with its outcome. */
|
|
3
|
+
export interface SplitButtonContentStep {
|
|
4
|
+
/** Which slot is being set. */
|
|
5
|
+
op: 'label' | 'icon-name' | 'child';
|
|
6
|
+
/**
|
|
7
|
+
* The value passed. For `label`/`icon-name` the string itself; for `child` a
|
|
8
|
+
* KEY naming one of three distinct child objects the driver supplies, or
|
|
9
|
+
* `null` to clear the content.
|
|
10
|
+
*/
|
|
11
|
+
value: string | null;
|
|
12
|
+
/** Whether the setter reports a change (and therefore notifies at all). */
|
|
13
|
+
changed: boolean;
|
|
14
|
+
/** The `notify::*` properties C emits for this one call, in emission order. */
|
|
15
|
+
notified: readonly SplitButtonProperty[];
|
|
16
|
+
/** The content mode after the step. */
|
|
17
|
+
mode: SplitButtonContentMode;
|
|
18
|
+
/** `get_label()` after the step. */
|
|
19
|
+
label: string | null;
|
|
20
|
+
/** `get_icon_name()` after the step. */
|
|
21
|
+
iconName: string | null;
|
|
22
|
+
/** The root style classes after the step. */
|
|
23
|
+
styleClasses: readonly SplitButtonStyleClass[];
|
|
24
|
+
/** Why this step exists — the rule or edge case it pins down. */
|
|
25
|
+
rule: string;
|
|
26
|
+
}
|
|
27
|
+
/** A scripted sequence of content mutations applied to a FRESH state. */
|
|
28
|
+
export interface SplitButtonContentVector {
|
|
29
|
+
/** Which upstream test (or derivation) this sequence transcribes. */
|
|
30
|
+
name: string;
|
|
31
|
+
/** The mutations, in order. */
|
|
32
|
+
steps: readonly SplitButtonContentStep[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The content machine (adw-split-button.c:661-682, :749-771, :799-824).
|
|
36
|
+
*
|
|
37
|
+
* Two things in here are easy to get wrong and are asserted explicitly. First,
|
|
38
|
+
* the `notified` ORDER: C freezes, notifies the slots it is about to CLEAR, sets
|
|
39
|
+
* the new one, notifies it, then thaws — so one `set_label()` can emit three
|
|
40
|
+
* notifications. Second, `child` is notified far more often than a reader
|
|
41
|
+
* expects, because `adw_split_button_get_child()` returns GtkButton's INTERNAL
|
|
42
|
+
* label/image widget in label/icon mode (the upstream suite states this at
|
|
43
|
+
* tests/test-split-button.c:155-157) and the C guard tests that pointer, not
|
|
44
|
+
* whether the app ever set a child.
|
|
45
|
+
*
|
|
46
|
+
* A driver that cannot express a step — a DOM element has no `child` slot —
|
|
47
|
+
* asserts the sequence up to that step and stops; every sequence is written so
|
|
48
|
+
* the interesting rows come first.
|
|
49
|
+
*/
|
|
50
|
+
export declare const SPLIT_BUTTON_CONTENT_VECTORS: ReadonlyArray<SplitButtonContentVector>;
|
|
51
|
+
/** One `update_style_classes` expectation. */
|
|
52
|
+
export interface SplitButtonStyleClassVector {
|
|
53
|
+
/** `gtk_button_get_label()`. */
|
|
54
|
+
label: string | null;
|
|
55
|
+
/** `gtk_button_get_icon_name()`. */
|
|
56
|
+
iconName: string | null;
|
|
57
|
+
/** The classes on the `splitbutton` node. */
|
|
58
|
+
classes: readonly SplitButtonStyleClass[];
|
|
59
|
+
/** Why this row exists. */
|
|
60
|
+
rule: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* `update_style_classes` (adw-split-button.c:145-165). Both branches read the
|
|
64
|
+
* FIRST CHARACTER, which is why `''` and `' '` land on opposite sides.
|
|
65
|
+
*/
|
|
66
|
+
export declare const SPLIT_BUTTON_STYLE_CLASS_VECTORS: ReadonlyArray<SplitButtonStyleClassVector>;
|
|
67
|
+
/** One `set_dropdown_tooltip` expectation. */
|
|
68
|
+
export interface SplitButtonTooltipVector {
|
|
69
|
+
/** The value passed to `adw_split_button_set_dropdown_tooltip`. */
|
|
70
|
+
tooltip: string;
|
|
71
|
+
/** What the dropdown actually shows. */
|
|
72
|
+
text: string;
|
|
73
|
+
/** Whether it is Pango MARKUP (`set_tooltip_markup`) rather than plain text. */
|
|
74
|
+
markup: boolean;
|
|
75
|
+
/** Why this row exists. */
|
|
76
|
+
rule: string;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The tooltip fallback (adw-split-button.c:1044-1051, initial value :531-532).
|
|
80
|
+
*
|
|
81
|
+
* `has_dropdown_tooltip = tooltip && *tooltip`. The empty branch is the one both
|
|
82
|
+
* renderers got wrong: the browser port hardcoded `Menu` and, because `''` is not
|
|
83
|
+
* nullish, `dropdown-tooltip=""` left the button with NO accessible name at all;
|
|
84
|
+
* the NativeScript port had neither tooltip nor accessible name.
|
|
85
|
+
*/
|
|
86
|
+
export declare const SPLIT_BUTTON_TOOLTIP_VECTORS: ReadonlyArray<SplitButtonTooltipVector>;
|
|
87
|
+
/** One direction expectation. */
|
|
88
|
+
export interface SplitButtonDirectionVector {
|
|
89
|
+
/** The `GtkArrowType`. */
|
|
90
|
+
direction: SplitButtonDirection;
|
|
91
|
+
/** The symbolic icon the arrow node draws. */
|
|
92
|
+
arrowIcon: AdwArrowIcon;
|
|
93
|
+
/** Where the popup is placed. */
|
|
94
|
+
popupDirection: SplitButtonDirection;
|
|
95
|
+
/** Why this row exists — naming the selector that WINS, not the one that loses. */
|
|
96
|
+
rule: string;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Direction → glyph for the dropdown half of a SPLIT BUTTON, and → popup
|
|
100
|
+
* placement (adw-split-button.c:415).
|
|
101
|
+
*
|
|
102
|
+
* `none` is the row that matters, and it is the row that was WRONG here until the
|
|
103
|
+
* override was found: the four shared directions come from `menubutton arrow`
|
|
104
|
+
* (_buttons.scss:457-468), but `.none` is re-declared inside `splitbutton { … }`
|
|
105
|
+
* at :621-623, and that selector wins. See the header of `./index.ts` — "cite the
|
|
106
|
+
* winning selector" — for what this table cost.
|
|
107
|
+
*/
|
|
108
|
+
export declare const SPLIT_BUTTON_DIRECTION_VECTORS: ReadonlyArray<SplitButtonDirectionVector>;
|
|
109
|
+
/**
|
|
110
|
+
* The same axis for a PLAIN `menubutton`, where nothing overrides `.none`.
|
|
111
|
+
*
|
|
112
|
+
* This table is not decoration: it is what makes the split button's row above a
|
|
113
|
+
* demonstrated OVERRIDE rather than an assertion. Holding both means a reader can
|
|
114
|
+
* see the two values and the two selectors side by side, and a renderer that
|
|
115
|
+
* reaches for the wrong one fails a test that names which widget it is drawing.
|
|
116
|
+
*
|
|
117
|
+
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (SPLIT_BUTTON_DIRECTION_VECTORS)
|
|
118
|
+
*/
|
|
119
|
+
export declare const MENU_BUTTON_DIRECTION_VECTORS: ReadonlyArray<SplitButtonDirectionVector>;
|
|
120
|
+
/** One `update_state` expectation. */
|
|
121
|
+
export interface SplitButtonRootStateVector {
|
|
122
|
+
/** State flags of the action half. */
|
|
123
|
+
action: SplitButtonHalfState;
|
|
124
|
+
/** State flags of the dropdown (arrow) half. */
|
|
125
|
+
dropdown: SplitButtonHalfState;
|
|
126
|
+
/** Whether the root reads ACTIVE. */
|
|
127
|
+
active: boolean;
|
|
128
|
+
/** Whether the root reads CHECKED. */
|
|
129
|
+
checked: boolean;
|
|
130
|
+
/** Why this row exists. */
|
|
131
|
+
rule: string;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* `update_state` (adw-split-button.c:118-143) — an OR-fold of both halves onto
|
|
135
|
+
* the root, which is what `splitbutton.flat:active/:checked` styles
|
|
136
|
+
* (_buttons.scss:542-549).
|
|
137
|
+
*
|
|
138
|
+
* CORE-ONLY: GAP — two of its three axes are hardcoded in the renderer, so there is nothing to vary. Tracked in #1072
|
|
139
|
+
*/
|
|
140
|
+
export declare const SPLIT_BUTTON_ROOT_STATE_VECTORS: ReadonlyArray<SplitButtonRootStateVector>;
|
|
141
|
+
/** One `parseMenuEntries` expectation. */
|
|
142
|
+
export interface SplitButtonMenuParseVector {
|
|
143
|
+
/** The raw `menu` attribute (or `null` when absent). */
|
|
144
|
+
json: string | null;
|
|
145
|
+
/** The entries it yields. */
|
|
146
|
+
entries: readonly AdwMenuEntry[];
|
|
147
|
+
/** Why this row exists. */
|
|
148
|
+
rule: string;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Menu-attribute parsing — the byte-identical helper both browser elements
|
|
152
|
+
* carried. Total: nothing an author can type may prevent the widget upgrading.
|
|
153
|
+
*/
|
|
154
|
+
export declare const SPLIT_BUTTON_MENU_PARSE_VECTORS: ReadonlyArray<SplitButtonMenuParseVector>;
|
|
155
|
+
/** One activate-by-position expectation. */
|
|
156
|
+
export interface SplitButtonMenuActivationVector {
|
|
157
|
+
/** The menu model. */
|
|
158
|
+
entries: readonly AdwMenuEntry[];
|
|
159
|
+
/** The position activated. */
|
|
160
|
+
index: number;
|
|
161
|
+
/** The entry that must be dispatched, or `null`. */
|
|
162
|
+
activated: AdwMenuEntry | null;
|
|
163
|
+
/** Why this row exists. */
|
|
164
|
+
rule: string;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Activation is BY POSITION, never by label lookup: a `GMenuModel` addresses its
|
|
168
|
+
* items by index and each carries its own detailed action (adw-split-button.c:385-388).
|
|
169
|
+
*/
|
|
170
|
+
export declare const SPLIT_BUTTON_MENU_ACTIVATION_VECTORS: ReadonlyArray<SplitButtonMenuActivationVector>;
|
|
171
|
+
/**
|
|
172
|
+
* One dropdown-sensitivity expectation. A driver installs the popover FIRST (when
|
|
173
|
+
* {@link SplitButtonDropdownVector.popover} is set) and the menu model second, so
|
|
174
|
+
* a row with both also exercises the dissociation.
|
|
175
|
+
*/
|
|
176
|
+
export interface SplitButtonDropdownVector {
|
|
177
|
+
/** The menu model to install (empty = none). */
|
|
178
|
+
entries: readonly AdwMenuEntry[];
|
|
179
|
+
/** Whether a popover is installed before it. */
|
|
180
|
+
popover: boolean;
|
|
181
|
+
/** Whether the dropdown half is live. */
|
|
182
|
+
enabled: boolean;
|
|
183
|
+
/** Whether the menu can be popped up at all. */
|
|
184
|
+
canOpen: boolean;
|
|
185
|
+
/** Why this row exists. */
|
|
186
|
+
rule: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* "If the menu model is `NULL`, the dropdown is disabled" (adw-split-button.c:376-378),
|
|
190
|
+
* and the same for the popover (:394-396). An empty entry list is the renderers'
|
|
191
|
+
* only spelling of "no menu", so it collapses onto the `NULL` case.
|
|
192
|
+
*/
|
|
193
|
+
export declare const SPLIT_BUTTON_DROPDOWN_VECTORS: ReadonlyArray<SplitButtonDropdownVector>;
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import type { AdwLengthUnit } from '../length-unit.js';
|
|
2
|
+
import type { AdwPackType, AdwTextDirection, NavigationActionResult, NavigationStackPlan, OverlaySplitViewLayout, SidebarWidthSpec, SplitViewPaneRect } from '../split-view.js';
|
|
3
|
+
/** One `adwLengthToPx` expectation. */
|
|
4
|
+
export interface AdwLengthUnitVector {
|
|
5
|
+
unit: AdwLengthUnit;
|
|
6
|
+
value: number;
|
|
7
|
+
/** The `gtk-xft-dpi` in play. */
|
|
8
|
+
dpi: number;
|
|
9
|
+
/** The resulting pixel length. */
|
|
10
|
+
px: number;
|
|
11
|
+
/** Why this row exists. */
|
|
12
|
+
rule: string;
|
|
13
|
+
}
|
|
14
|
+
/** `adw_length_unit_to_px` (adw-length-unit.c:72-81). *
|
|
15
|
+
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (SIDEBAR_BOUNDS_VECTORS, which both renderers drive)
|
|
16
|
+
*/
|
|
17
|
+
export declare const ADW_LENGTH_UNIT_VECTORS: ReadonlyArray<AdwLengthUnitVector>;
|
|
18
|
+
/** One `glibClamp` expectation. */
|
|
19
|
+
export interface GlibClampVector {
|
|
20
|
+
x: number;
|
|
21
|
+
low: number;
|
|
22
|
+
high: number;
|
|
23
|
+
/** What GLib's CLAMP returns. */
|
|
24
|
+
clamped: number;
|
|
25
|
+
rule: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* GLib's `CLAMP` (gmacros.h) — HIGH is tested first.
|
|
29
|
+
*
|
|
30
|
+
* The inverted rows are the point: `Math.min(high, Math.max(low, x))` returns
|
|
31
|
+
* `high` there, and `allocate_uncollapsed` reaches inverted bounds whenever the
|
|
32
|
+
* content pane's own minimum leaves less room than `min-sidebar-width`.
|
|
33
|
+
*
|
|
34
|
+
* CORE-ONLY: GLib’s CLAMP itself — a primitive with no widget surface; every widget that reaches it does so through a table that IS driven
|
|
35
|
+
*/
|
|
36
|
+
export declare const GLIB_CLAMP_VECTORS: ReadonlyArray<GlibClampVector>;
|
|
37
|
+
/** One `resolveSidebarBounds` expectation. */
|
|
38
|
+
export interface SidebarBoundsVector {
|
|
39
|
+
spec: SidebarWidthSpec;
|
|
40
|
+
/** The sidebar child's own minimum width. */
|
|
41
|
+
sidebarChildMin: number;
|
|
42
|
+
/** `true` for the allocate paths (which `ceil()`), `false` for the measure paths. */
|
|
43
|
+
ceil: boolean;
|
|
44
|
+
min: number;
|
|
45
|
+
max: number;
|
|
46
|
+
rule: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The `MAX (…, adw_length_unit_to_px (…))` pair both widgets open with —
|
|
50
|
+
* allocate flavour at adw-navigation-split-view.c:292-300 /
|
|
51
|
+
* adw-overlay-split-view.c:452-460, measure flavour at :251-256 / :545-550.
|
|
52
|
+
*/
|
|
53
|
+
export declare const SIDEBAR_BOUNDS_VECTORS: ReadonlyArray<SidebarBoundsVector>;
|
|
54
|
+
/** One allocated-sidebar-width expectation. */
|
|
55
|
+
export interface SidebarWidthVector {
|
|
56
|
+
/** Which widget's rule applies — they answer the same input differently. */
|
|
57
|
+
widget: 'navigation' | 'overlay';
|
|
58
|
+
spec: SidebarWidthSpec;
|
|
59
|
+
totalWidth: number;
|
|
60
|
+
/** The content pane's own minimum width. */
|
|
61
|
+
contentMin: number;
|
|
62
|
+
/** The sidebar child's own minimum width. */
|
|
63
|
+
sidebarChildMin: number;
|
|
64
|
+
/** Overlay only: collapsed ignores the fraction and clamps the VIEW width. */
|
|
65
|
+
collapsed: boolean;
|
|
66
|
+
/** The allocated sidebar width. */
|
|
67
|
+
width: number;
|
|
68
|
+
rule: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* `allocate_uncollapsed` (adw-navigation-split-view.c:292-304) versus
|
|
72
|
+
* `get_sidebar_width` + `allocate_uncollapsed` (adw-overlay-split-view.c:441-466, :585).
|
|
73
|
+
*
|
|
74
|
+
* The 300px pair is the reason this table keys on `widget`: identical input, 180 in
|
|
75
|
+
* the navigation split view and 100 in the overlay, because one caps the BOUND and
|
|
76
|
+
* the other caps the RESULT.
|
|
77
|
+
*/
|
|
78
|
+
export declare const SIDEBAR_WIDTH_VECTORS: ReadonlyArray<SidebarWidthVector>;
|
|
79
|
+
/** One `resolveNaturalSidebarWidth` expectation. */
|
|
80
|
+
export interface NaturalSidebarWidthVector {
|
|
81
|
+
contentNatural: number;
|
|
82
|
+
min: number;
|
|
83
|
+
max: number;
|
|
84
|
+
fraction: number;
|
|
85
|
+
natural: number;
|
|
86
|
+
rule: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* `measure_uncollapsed`'s sidebar estimate (adw-navigation-split-view.c:260-262,
|
|
90
|
+
* adw-overlay-split-view.c:554-556) — the sidebar's OWN natural width is ignored.
|
|
91
|
+
*
|
|
92
|
+
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (SIDEBAR_WIDTH_VECTORS)
|
|
93
|
+
*/
|
|
94
|
+
export declare const NATURAL_SIDEBAR_WIDTH_VECTORS: ReadonlyArray<NaturalSidebarWidthVector>;
|
|
95
|
+
/** One `measureSplitViewHorizontal` expectation. */
|
|
96
|
+
export interface SplitViewMeasureVector {
|
|
97
|
+
min: number;
|
|
98
|
+
max: number;
|
|
99
|
+
sidebarNatural: number;
|
|
100
|
+
contentMin: number;
|
|
101
|
+
contentNatural: number;
|
|
102
|
+
showProgress: number;
|
|
103
|
+
minimum: number;
|
|
104
|
+
natural: number;
|
|
105
|
+
rule: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* `measure_uncollapsed` (adw-overlay-split-view.c:558-563; the navigation variant at
|
|
109
|
+
* adw-navigation-split-view.c:264-267 is the same rule at progress 1).
|
|
110
|
+
*
|
|
111
|
+
* This is the container minimum neither renderer had — which is why in both of them
|
|
112
|
+
* the content pane shrinks to nothing instead of the window refusing to get narrower.
|
|
113
|
+
*
|
|
114
|
+
* CORE-ONLY: the container minimum lands as `min-width: min-content` on the content pane, which is CSS’s own spelling of the same rule — there is no computed number of ours to compare. Asserted in the renderer as "the pane is not crushable" instead
|
|
115
|
+
*/
|
|
116
|
+
export declare const SPLIT_VIEW_MEASURE_VECTORS: ReadonlyArray<SplitViewMeasureVector>;
|
|
117
|
+
/** One `layoutNavigationSplitView` expectation. */
|
|
118
|
+
export interface NavigationLayoutVector {
|
|
119
|
+
totalWidth: number;
|
|
120
|
+
sidebarWidth: number;
|
|
121
|
+
sidebarPosition: AdwPackType;
|
|
122
|
+
direction: AdwTextDirection;
|
|
123
|
+
sidebar: SplitViewPaneRect;
|
|
124
|
+
content: SplitViewPaneRect;
|
|
125
|
+
rule: string;
|
|
126
|
+
}
|
|
127
|
+
/** `allocate_uncollapsed` (adw-navigation-split-view.c:306-316). */
|
|
128
|
+
export declare const NAVIGATION_SPLIT_VIEW_LAYOUT_VECTORS: ReadonlyArray<NavigationLayoutVector>;
|
|
129
|
+
/** One `layoutOverlaySplitView` expectation. */
|
|
130
|
+
export interface OverlayLayoutVector {
|
|
131
|
+
totalWidth: number;
|
|
132
|
+
sidebarWidth: number;
|
|
133
|
+
showProgress: number;
|
|
134
|
+
collapsed: boolean;
|
|
135
|
+
sidebarPosition: AdwPackType;
|
|
136
|
+
direction: AdwTextDirection;
|
|
137
|
+
/** The full expected allocation, including the shield/paint/shadow state. */
|
|
138
|
+
layout: OverlaySplitViewLayout;
|
|
139
|
+
rule: string;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* `allocate_uncollapsed` (adw-overlay-split-view.c:572-610) and `allocate_collapsed`
|
|
143
|
+
* (:653-703), plus `update_shield` (:249-256) and the snapshot gate (:757).
|
|
144
|
+
*
|
|
145
|
+
* `shadowProgress` is inverted relative to the reveal — 1 means NO shadow
|
|
146
|
+
* (adw-shadow-helper.c:234-249).
|
|
147
|
+
*/
|
|
148
|
+
export declare const OVERLAY_SPLIT_VIEW_LAYOUT_VECTORS: ReadonlyArray<OverlayLayoutVector>;
|
|
149
|
+
/** One `tagsConflict` expectation. */
|
|
150
|
+
export interface TagsConflictVector {
|
|
151
|
+
sidebarTag: string | null;
|
|
152
|
+
contentTag: string | null;
|
|
153
|
+
conflict: boolean;
|
|
154
|
+
rule: string;
|
|
155
|
+
}
|
|
156
|
+
/** `tags_equal` (adw-navigation-split-view.c:413-429). *
|
|
157
|
+
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (the tag guard, driven through NAVIGATION_ACTION_VECTORS and the refusal tests in both renderer suites)
|
|
158
|
+
*/
|
|
159
|
+
export declare const TAGS_CONFLICT_VECTORS: ReadonlyArray<TagsConflictVector>;
|
|
160
|
+
/** One `resolveNavigationStack` expectation. */
|
|
161
|
+
export interface NavigationStackVector {
|
|
162
|
+
hasSidebar: boolean;
|
|
163
|
+
hasContent: boolean;
|
|
164
|
+
sidebarPosition: AdwPackType;
|
|
165
|
+
showContent: boolean;
|
|
166
|
+
/** Whether the animated (`set_show_content`) branch applies. */
|
|
167
|
+
changingPage: boolean;
|
|
168
|
+
plan: NavigationStackPlan;
|
|
169
|
+
rule: string;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* `update_navigation_stack` (adw-navigation-split-view.c:342-405).
|
|
173
|
+
*
|
|
174
|
+
* The lone-child rows are the ones both renderers fail: their CSS / `visibility`
|
|
175
|
+
* tables key on `show-content` alone, so a collapsed split view holding only a
|
|
176
|
+
* sidebar renders nothing at all.
|
|
177
|
+
*/
|
|
178
|
+
export declare const NAVIGATION_STACK_VECTORS: ReadonlyArray<NavigationStackVector>;
|
|
179
|
+
/** One `resolveNavigationAction` expectation. */
|
|
180
|
+
export interface NavigationActionVector {
|
|
181
|
+
action: 'push' | 'pop';
|
|
182
|
+
/** `push` only — the tag the action names. */
|
|
183
|
+
tag?: string;
|
|
184
|
+
sidebarTag?: string | null;
|
|
185
|
+
contentTag?: string | null;
|
|
186
|
+
/** `pop` only. */
|
|
187
|
+
hasSidebar?: boolean;
|
|
188
|
+
/** `pop` only. */
|
|
189
|
+
hasContent?: boolean;
|
|
190
|
+
showContent: boolean;
|
|
191
|
+
collapsed: boolean;
|
|
192
|
+
result: NavigationActionResult;
|
|
193
|
+
rule: string;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* `navigation_push_cb` (adw-navigation-split-view.c:644-685) and `navigation_pop_cb`
|
|
197
|
+
* (:687-702) — documented as working even when NOT collapsed (:124-132).
|
|
198
|
+
*/
|
|
199
|
+
export declare const NAVIGATION_ACTION_VECTORS: ReadonlyArray<NavigationActionVector>;
|
|
200
|
+
/** The observable state of an `OverlaySplitViewState`. */
|
|
201
|
+
export interface OverlaySplitViewSnapshot {
|
|
202
|
+
showSidebar: boolean;
|
|
203
|
+
collapsed: boolean;
|
|
204
|
+
showProgress: number;
|
|
205
|
+
shieldVisible: boolean;
|
|
206
|
+
sidebarFocusable: boolean;
|
|
207
|
+
contentFocusable: boolean;
|
|
208
|
+
}
|
|
209
|
+
/** One collapse-coupling expectation. */
|
|
210
|
+
export interface OverlayCollapseVector {
|
|
211
|
+
/** Constructor options. */
|
|
212
|
+
initial: {
|
|
213
|
+
collapsed?: boolean;
|
|
214
|
+
showSidebar?: boolean;
|
|
215
|
+
pinSidebar?: boolean;
|
|
216
|
+
};
|
|
217
|
+
/** State right after construction. */
|
|
218
|
+
before: OverlaySplitViewSnapshot;
|
|
219
|
+
/** The `collapsed` value to set. */
|
|
220
|
+
setCollapsed: boolean;
|
|
221
|
+
/** State after the change. */
|
|
222
|
+
after: OverlaySplitViewSnapshot;
|
|
223
|
+
/** Which `notify::*` properties fire, in order. */
|
|
224
|
+
notifications: ReadonlyArray<'show-sidebar' | 'collapsed'>;
|
|
225
|
+
rule: string;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* `adw_overlay_split_view_init` (:1106-1116) + `set_collapsed` (:1439-1481) +
|
|
229
|
+
* the can-focus pair (:330-331).
|
|
230
|
+
*
|
|
231
|
+
* `if (!self->pin_sidebar) set_show_sidebar (self, !self->collapsed, FALSE, 0);` is
|
|
232
|
+
* the single rule BOTH storybooks re-implemented by hand because neither widget
|
|
233
|
+
* offered it. `show-sidebar` is notified before `collapsed` because GTK freezes
|
|
234
|
+
* notifications across the whole setter and thaws them in queue order.
|
|
235
|
+
*/
|
|
236
|
+
export declare const OVERLAY_COLLAPSE_VECTORS: ReadonlyArray<OverlayCollapseVector>;
|
|
237
|
+
/** One `resolveSwipeSnapPoints` expectation. */
|
|
238
|
+
export interface SwipeSnapPointVector {
|
|
239
|
+
showProgress: number;
|
|
240
|
+
enableShowGesture: boolean;
|
|
241
|
+
enableHideGesture: boolean;
|
|
242
|
+
swipeActive: boolean;
|
|
243
|
+
snapPoints: number[];
|
|
244
|
+
rule: string;
|
|
245
|
+
}
|
|
246
|
+
/** `adw_overlay_split_view_get_snap_points` (adw-overlay-split-view.c:1214-1243). */
|
|
247
|
+
export declare const OVERLAY_SWIPE_SNAP_POINT_VECTORS: ReadonlyArray<SwipeSnapPointVector>;
|
|
248
|
+
/** One `resolveSwipeStart` expectation. */
|
|
249
|
+
export interface SwipeStartVector {
|
|
250
|
+
showProgress: number;
|
|
251
|
+
collapsed: boolean;
|
|
252
|
+
direction: 'forward' | 'back';
|
|
253
|
+
enableShowGesture: boolean;
|
|
254
|
+
enableHideGesture: boolean;
|
|
255
|
+
detected: boolean;
|
|
256
|
+
rule: string;
|
|
257
|
+
}
|
|
258
|
+
/** `prepare_cb` (adw-overlay-split-view.c:362-387). */
|
|
259
|
+
export declare const OVERLAY_SWIPE_START_VECTORS: ReadonlyArray<SwipeStartVector>;
|
|
260
|
+
/** One `resolveSwipeRelease` expectation. */
|
|
261
|
+
export interface SwipeReleaseVector {
|
|
262
|
+
to: number;
|
|
263
|
+
showSidebar: boolean;
|
|
264
|
+
/** `animate` = settle only; `set-show-sidebar` = a real property change. */
|
|
265
|
+
kind: 'animate' | 'set-show-sidebar';
|
|
266
|
+
/** The resulting `show-sidebar`, for the `set-show-sidebar` case. */
|
|
267
|
+
showSidebarAfter: boolean;
|
|
268
|
+
rule: string;
|
|
269
|
+
}
|
|
270
|
+
/** `end_swipe_cb` (adw-overlay-split-view.c:414-429). */
|
|
271
|
+
export declare const OVERLAY_SWIPE_RELEASE_VECTORS: ReadonlyArray<SwipeReleaseVector>;
|
|
272
|
+
/** One `swipeCancelProgress` expectation. */
|
|
273
|
+
export interface SwipeCancelVector {
|
|
274
|
+
showProgress: number;
|
|
275
|
+
cancelProgress: number;
|
|
276
|
+
rule: string;
|
|
277
|
+
}
|
|
278
|
+
/** `adw_overlay_split_view_get_cancel_progress` (adw-overlay-split-view.c:1253-1258). */
|
|
279
|
+
export declare const OVERLAY_SWIPE_CANCEL_VECTORS: ReadonlyArray<SwipeCancelVector>;
|
|
280
|
+
/** One `resolveSwipeArea` expectation. */
|
|
281
|
+
export interface SwipeAreaVector {
|
|
282
|
+
isDrag: boolean;
|
|
283
|
+
sidebarWidth: number;
|
|
284
|
+
showProgress: number;
|
|
285
|
+
totalWidth: number;
|
|
286
|
+
totalHeight: number;
|
|
287
|
+
sidebarPosition: AdwPackType;
|
|
288
|
+
direction: AdwTextDirection;
|
|
289
|
+
area: {
|
|
290
|
+
x: number;
|
|
291
|
+
y: number;
|
|
292
|
+
width: number;
|
|
293
|
+
height: number;
|
|
294
|
+
};
|
|
295
|
+
rule: string;
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* `adw_overlay_split_view_get_swipe_area` (adw-overlay-split-view.c:1261-1290);
|
|
299
|
+
* `ADW_SWIPE_BORDER` is 32 (adw-swipe-tracker-private.h:17).
|
|
300
|
+
*/
|
|
301
|
+
export declare const OVERLAY_SWIPE_AREA_VECTORS: ReadonlyArray<SwipeAreaVector>;
|