@gjsify/adwaita-core 0.36.0 → 0.38.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/accent.js +1 -0
- package/lib/esm/conformance/accent.js +1 -0
- package/lib/esm/conformance/index.js +1 -1
- package/lib/esm/conformance/shortcut-label.js +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/shortcut-label.js +1 -0
- package/lib/types/about-dialog.d.ts +92 -98
- package/lib/types/accent.d.ts +36 -0
- package/lib/types/accent.spec.d.ts +2 -0
- package/lib/types/action-row.d.ts +95 -125
- package/lib/types/avatar.d.ts +30 -37
- package/lib/types/banner.d.ts +25 -53
- package/lib/types/breakpoint.d.ts +6 -7
- package/lib/types/button-content.d.ts +41 -80
- package/lib/types/carousel.d.ts +175 -252
- package/lib/types/checks.d.ts +13 -30
- package/lib/types/chrome.d.ts +90 -136
- package/lib/types/color-scheme.d.ts +5 -6
- package/lib/types/conformance/about-dialog.d.ts +64 -91
- package/lib/types/conformance/accent.d.ts +20 -0
- package/lib/types/conformance/action-row.d.ts +26 -46
- package/lib/types/conformance/avatar.d.ts +8 -10
- package/lib/types/conformance/banner.d.ts +17 -37
- package/lib/types/conformance/button-content.d.ts +24 -46
- package/lib/types/conformance/carousel.d.ts +35 -75
- package/lib/types/conformance/checks.d.ts +0 -4
- package/lib/types/conformance/chrome.d.ts +28 -36
- package/lib/types/conformance/data-grid.d.ts +28 -47
- package/lib/types/conformance/dialog.d.ts +4 -9
- package/lib/types/conformance/entry-row.d.ts +20 -39
- package/lib/types/conformance/index.d.ts +4 -0
- package/lib/types/conformance/navigation-view.d.ts +0 -4
- package/lib/types/conformance/popover.d.ts +4 -9
- package/lib/types/conformance/preferences.d.ts +15 -28
- package/lib/types/conformance/rows.d.ts +5 -12
- package/lib/types/conformance/shortcut-label.d.ts +34 -0
- package/lib/types/conformance/sidebar.d.ts +28 -49
- package/lib/types/conformance/spinner.d.ts +21 -27
- package/lib/types/conformance/split-button.d.ts +21 -43
- package/lib/types/conformance/split-view.d.ts +29 -36
- package/lib/types/conformance/tab-view.d.ts +32 -73
- package/lib/types/conformance/view-stack.d.ts +0 -12
- package/lib/types/conformance/view-switcher.d.ts +46 -114
- package/lib/types/conformance/wrap-box.d.ts +40 -63
- package/lib/types/data-grid.d.ts +38 -48
- package/lib/types/dialog.d.ts +39 -51
- package/lib/types/easing.d.ts +6 -12
- package/lib/types/entry-row.d.ts +94 -123
- package/lib/types/glib.d.ts +17 -25
- package/lib/types/index.d.ts +4 -0
- package/lib/types/length-unit.d.ts +7 -12
- package/lib/types/navigation-view.d.ts +62 -68
- package/lib/types/popover.d.ts +39 -66
- package/lib/types/preferences.d.ts +83 -100
- package/lib/types/rows.d.ts +45 -63
- package/lib/types/shortcut-label.d.ts +79 -0
- package/lib/types/shortcut-label.spec.d.ts +2 -0
- package/lib/types/sidebar.d.ts +95 -121
- package/lib/types/spinner.d.ts +39 -61
- package/lib/types/split-button.d.ts +78 -134
- package/lib/types/split-view.d.ts +74 -89
- package/lib/types/tab-view.d.ts +174 -256
- package/lib/types/view-stack.d.ts +87 -129
- package/lib/types/view-switcher.d.ts +126 -211
- package/lib/types/wrap-box.d.ts +62 -123
- package/package.json +3 -3
|
@@ -4,70 +4,54 @@ export interface BannerDefaultVector {
|
|
|
4
4
|
property: 'title' | 'button-label' | 'revealed' | 'use-markup' | 'button-style';
|
|
5
5
|
/** The `GParamSpec` default. */
|
|
6
6
|
value: string | boolean;
|
|
7
|
-
/** Why this row exists — the rule or edge case it pins down. */
|
|
8
7
|
rule: string;
|
|
9
8
|
}
|
|
10
9
|
/**
|
|
11
|
-
* The five `GParamSpec` defaults
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* ports. `@gjsify/adwaita-nativescript` initialised `_revealed = true` and its
|
|
15
|
-
* constructor never wrote `visibility`, so a banner showed itself on a device
|
|
16
|
-
* and stayed hidden in the browser; both ports made `use-markup` opt-in, and the
|
|
17
|
-
* browser element's comment claimed that WAS the C default.
|
|
10
|
+
* The five `GParamSpec` defaults. `revealed: false` and `use-markup: true` were wrong
|
|
11
|
+
* in both ports in opposite directions — a banner showed itself on a device and stayed
|
|
12
|
+
* hidden in the browser.
|
|
18
13
|
*/
|
|
19
14
|
export declare const BANNER_DEFAULT_VECTORS: ReadonlyArray<BannerDefaultVector>;
|
|
20
15
|
/** One button-visibility expectation. */
|
|
21
16
|
export interface BannerButtonVisibleVector {
|
|
22
17
|
/** The `button-label` value, or `null` for the `NULL` the C setter accepts. */
|
|
23
18
|
label: string | null;
|
|
24
|
-
/** Whether `gtk_widget_set_visible` is handed a true value
|
|
19
|
+
/** Whether `gtk_widget_set_visible` is handed a true value. */
|
|
25
20
|
visible: boolean;
|
|
26
|
-
/** Why this row exists. */
|
|
27
21
|
rule: string;
|
|
28
22
|
}
|
|
29
23
|
/**
|
|
30
|
-
* `adw_banner_set_button_label`
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* A FIRST-CHARACTER test. The whitespace rows are the ones that matter: a
|
|
34
|
-
* renderer that trimmed before testing would hide a button GTK draws.
|
|
24
|
+
* `adw_banner_set_button_label` — `gtk_widget_set_visible (button, label && label[0])`,
|
|
25
|
+
* a FIRST-CHARACTER test. The whitespace rows are the ones that matter: a renderer that
|
|
26
|
+
* trimmed before testing would hide a button GTK draws.
|
|
35
27
|
*/
|
|
36
28
|
export declare const BANNER_BUTTON_VISIBLE_VECTORS: ReadonlyArray<BannerButtonVisibleVector>;
|
|
37
29
|
/** One button-label text expectation. */
|
|
38
30
|
export interface BannerButtonTextVector {
|
|
39
|
-
/** The `button-label` value. */
|
|
40
31
|
label: string;
|
|
41
32
|
/** What a renderer without an accelerator layer paints. */
|
|
42
33
|
text: string;
|
|
43
|
-
/** Why this row exists. */
|
|
44
34
|
rule: string;
|
|
45
35
|
}
|
|
46
36
|
/**
|
|
47
37
|
* The banner button's text after mnemonic resolution.
|
|
48
38
|
*
|
|
49
|
-
* The template pins the BUTTON to `use-underline=True`
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* counterpart to this table. Neither port stripped anything.
|
|
39
|
+
* The template pins the BUTTON to `use-underline=True` with no property to turn it off
|
|
40
|
+
* and the TITLE label to `use-underline=False`, so the same underscore is an
|
|
41
|
+
* accelerator marker in the button and a literal in the title — hence no title
|
|
42
|
+
* counterpart to this table.
|
|
54
43
|
*/
|
|
55
44
|
export declare const BANNER_BUTTON_TEXT_VECTORS: ReadonlyArray<BannerButtonTextVector>;
|
|
56
45
|
/** One `button-style` → style-class expectation. */
|
|
57
46
|
export interface BannerButtonStyleVector {
|
|
58
47
|
/** The `AdwBannerButtonStyle` nick. */
|
|
59
48
|
style: 'default' | 'suggested';
|
|
60
|
-
/** The classes on the button node (:764-774). */
|
|
61
49
|
classes: readonly string[];
|
|
62
|
-
/** Why this row exists. */
|
|
63
50
|
rule: string;
|
|
64
51
|
}
|
|
65
52
|
/**
|
|
66
|
-
* `adw_banner_set_button_style`'s switch (
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* Present in this vendored source since 1.7 (:34) and in NEITHER renderer, so a
|
|
70
|
-
* banner asking for a suggested action button got a grey one in both.
|
|
53
|
+
* `adw_banner_set_button_style`'s switch (Since 1.7) — the property adds or removes
|
|
54
|
+
* exactly one class and touches nothing else.
|
|
71
55
|
*/
|
|
72
56
|
export declare const BANNER_BUTTON_STYLE_VECTORS: ReadonlyArray<BannerButtonStyleVector>;
|
|
73
57
|
/** One `button-style` attribute-parsing expectation. */
|
|
@@ -76,16 +60,12 @@ export interface BannerButtonStyleParseVector {
|
|
|
76
60
|
input: string | null;
|
|
77
61
|
/** The `AdwBannerButtonStyle` it resolves to. */
|
|
78
62
|
style: 'default' | 'suggested';
|
|
79
|
-
/** Why this row exists. */
|
|
80
63
|
rule: string;
|
|
81
64
|
}
|
|
82
65
|
/**
|
|
83
|
-
* Turning a renderer-supplied STRING into the enum.
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
* unrepresentable string never reaches it. Falling back to the property default
|
|
88
|
-
* is what `g_object_set` does with an invalid nick, and it is the only answer
|
|
89
|
-
* that keeps the two renderers agreeing on the same markup.
|
|
66
|
+
* Turning a renderer-supplied STRING into the enum. Not a C behaviour and cannot be:
|
|
67
|
+
* `adw_banner_set_button_style` range-guards an `AdwBannerButtonStyle` it has already
|
|
68
|
+
* been handed, so an unrepresentable string never reaches it. Falling back to the
|
|
69
|
+
* property default is what `g_object_set` does with an invalid nick.
|
|
90
70
|
*/
|
|
91
71
|
export declare const BANNER_BUTTON_STYLE_PARSE_VECTORS: ReadonlyArray<BannerButtonStyleParseVector>;
|
|
@@ -4,87 +4,69 @@ export interface ButtonContentDefaultVector {
|
|
|
4
4
|
property: 'icon-name' | 'label' | 'use-underline' | 'can-shrink';
|
|
5
5
|
/** The `GParamSpec` default. */
|
|
6
6
|
value: string | boolean;
|
|
7
|
-
/** Why this row exists. */
|
|
8
7
|
rule: string;
|
|
9
8
|
}
|
|
10
|
-
/** The four `GParamSpec` defaults
|
|
9
|
+
/** The four `GParamSpec` defaults. */
|
|
11
10
|
export declare const BUTTON_CONTENT_DEFAULT_VECTORS: ReadonlyArray<ButtonContentDefaultVector>;
|
|
12
11
|
/** One icon-name resolution expectation. */
|
|
13
12
|
export interface ButtonContentIconVector {
|
|
14
|
-
/** The `icon-name` value. */
|
|
15
13
|
iconName: string;
|
|
16
|
-
/** The name the `GtkImage` is actually set from
|
|
14
|
+
/** The name the `GtkImage` is actually set from. */
|
|
17
15
|
resolved: string;
|
|
18
16
|
/** Whether the resolved name is the empty-slot fallback rather than an app value. */
|
|
19
17
|
isFallback: boolean;
|
|
20
|
-
/** Why this row exists. */
|
|
21
18
|
rule: string;
|
|
22
19
|
}
|
|
23
20
|
/**
|
|
24
|
-
* `adw_button_content_set_icon_name
|
|
21
|
+
* `adw_button_content_set_icon_name`.
|
|
25
22
|
*
|
|
26
|
-
*
|
|
27
|
-
* comments say an empty `icon-name` means the icon "is not shown"
|
|
28
|
-
*
|
|
29
|
-
* `
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* default-constructed `AdwButtonContent` draws the broken-image glyph, and both
|
|
33
|
-
* ports — which followed the prose and hid the icon — are the ones that diverge.
|
|
34
|
-
* Encoding the prose would have pinned their guess under the word "conformance".
|
|
23
|
+
* The upstream docs and the code disagree and this table follows the CODE: both doc
|
|
24
|
+
* comments say an empty `icon-name` means the icon "is not shown", but nothing in the
|
|
25
|
+
* widget hides it — `gtk_widget_set_visible` is called on the LABEL only, `init` sets
|
|
26
|
+
* the image to `image-missing` while `icon_name` is still `""`, and the setter
|
|
27
|
+
* re-applies that fallback for every empty value. A default-constructed
|
|
28
|
+
* `AdwButtonContent` therefore draws the broken-image glyph.
|
|
35
29
|
*/
|
|
36
30
|
export declare const BUTTON_CONTENT_ICON_VECTORS: ReadonlyArray<ButtonContentIconVector>;
|
|
37
31
|
/** One label-slot expectation. */
|
|
38
32
|
export interface ButtonContentLabelVector {
|
|
39
|
-
/** The `label` value. */
|
|
40
33
|
label: string;
|
|
41
|
-
/** Whether the label node is in the tree
|
|
34
|
+
/** Whether the label node is in the tree. */
|
|
42
35
|
visible: boolean;
|
|
43
|
-
/** Whether the icon takes the box's free space
|
|
36
|
+
/** Whether the icon takes the box's free space. */
|
|
44
37
|
iconExpands: boolean;
|
|
45
|
-
/** Why this row exists. */
|
|
46
38
|
rule: string;
|
|
47
39
|
}
|
|
48
40
|
/**
|
|
49
|
-
* `adw_button_content_set_label`
|
|
41
|
+
* `adw_button_content_set_label` — the two calls it makes, both keyed
|
|
50
42
|
* on `label[0]` and therefore exact complements.
|
|
51
43
|
*/
|
|
52
44
|
export declare const BUTTON_CONTENT_LABEL_VECTORS: ReadonlyArray<ButtonContentLabelVector>;
|
|
53
45
|
/** One label-text expectation. */
|
|
54
46
|
export interface ButtonContentTextVector {
|
|
55
|
-
/** The `label` value. */
|
|
56
47
|
label: string;
|
|
57
|
-
/** The `use-underline` value. */
|
|
58
48
|
useUnderline: boolean;
|
|
59
49
|
/** What a renderer without an accelerator layer paints. */
|
|
60
50
|
text: string;
|
|
61
|
-
/** Why this row exists. */
|
|
62
51
|
rule: string;
|
|
63
52
|
}
|
|
64
53
|
/**
|
|
65
|
-
* `adw_button_content_set_use_underline`
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* default is FALSE (:253-256), so an underscore in an unconfigured button
|
|
70
|
-
* content is a LITERAL, unlike the banner's action button.
|
|
54
|
+
* `adw_button_content_set_use_underline` applied to the label — the property the class
|
|
55
|
+
* docs single out ("handles … connecting the mnemonic to the button automatically").
|
|
56
|
+
* The default is FALSE, so an underscore in an unconfigured button content is a
|
|
57
|
+
* LITERAL, unlike the banner's action button.
|
|
71
58
|
*/
|
|
72
59
|
export declare const BUTTON_CONTENT_TEXT_VECTORS: ReadonlyArray<ButtonContentTextVector>;
|
|
73
60
|
/** One `can-shrink` expectation. */
|
|
74
61
|
export interface ButtonContentEllipsizeVector {
|
|
75
|
-
/** The `can-shrink` value. */
|
|
76
62
|
canShrink: boolean;
|
|
77
|
-
/** The label's `PangoEllipsizeMode
|
|
63
|
+
/** The label's `PangoEllipsizeMode`. */
|
|
78
64
|
ellipsize: 'none' | 'end';
|
|
79
|
-
/** Why this row exists. */
|
|
80
65
|
rule: string;
|
|
81
66
|
}
|
|
82
67
|
/**
|
|
83
|
-
* `adw_button_content_set_can_shrink
|
|
84
|
-
* `ellipsize != PANGO_ELLIPSIZE_NONE
|
|
85
|
-
*
|
|
86
|
-
* The browser port had this; the NativeScript port had no such property, so the
|
|
87
|
-
* shared story's `canShrink` control did nothing there.
|
|
68
|
+
* `adw_button_content_set_can_shrink`, which the getter reads back as
|
|
69
|
+
* `ellipsize != PANGO_ELLIPSIZE_NONE`.
|
|
88
70
|
*/
|
|
89
71
|
export declare const BUTTON_CONTENT_ELLIPSIZE_VECTORS: ReadonlyArray<ButtonContentEllipsizeVector>;
|
|
90
72
|
/** One style-class targeting expectation. */
|
|
@@ -93,18 +75,14 @@ export interface ButtonContentStyleTargetVector {
|
|
|
93
75
|
ancestors: ReadonlyArray<'button' | 'menu-button' | 'split-button' | 'other'>;
|
|
94
76
|
/** Index into {@link ancestors} that receives `image-text-button`, or `null`. */
|
|
95
77
|
target: number | null;
|
|
96
|
-
/** Why this row exists. */
|
|
97
78
|
rule: string;
|
|
98
79
|
}
|
|
99
80
|
/**
|
|
100
|
-
* `adw_button_content_root`
|
|
101
|
-
*
|
|
102
|
-
* moves to the split button (:112-113).
|
|
81
|
+
* `adw_button_content_root` — nearest `GtkButton`, then ONE substitution: if that
|
|
82
|
+
* button's DIRECT parent is an `AdwSplitButton`, the class moves to the split button.
|
|
103
83
|
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* selects `splitbutton.image-text-button > button` (_buttons.scss:499-507),
|
|
108
|
-
* which is a different declaration block from the plain-button one.
|
|
84
|
+
* The split-button row is the one with a CSS consequence beyond padding: the class on
|
|
85
|
+
* the `splitbutton` node selects `splitbutton.image-text-button > button`, a different
|
|
86
|
+
* declaration block from the plain-button one.
|
|
109
87
|
*/
|
|
110
88
|
export declare const BUTTON_CONTENT_STYLE_TARGET_VECTORS: ReadonlyArray<ButtonContentStyleTargetVector>;
|
|
@@ -5,10 +5,11 @@ export interface CarouselSnapPointVector {
|
|
|
5
5
|
sizes: readonly number[];
|
|
6
6
|
/** `snapPoint[i] = (Σ_{j≤i} size[j]) − 1`. */
|
|
7
7
|
snapPoints: readonly number[];
|
|
8
|
-
/** Why this row exists. */
|
|
9
8
|
rule: string;
|
|
10
9
|
}
|
|
11
|
-
/**
|
|
10
|
+
/**
|
|
11
|
+
* `adw_carousel_size_allocate`'s accumulation.
|
|
12
|
+
*
|
|
12
13
|
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (CAROUSEL_PAGE_LIST_VECTORS)
|
|
13
14
|
*/
|
|
14
15
|
export declare const CAROUSEL_SNAP_POINT_VECTORS: ReadonlyArray<CarouselSnapPointVector>;
|
|
@@ -18,82 +19,72 @@ export interface CarouselSizesFromSnapPointsVector {
|
|
|
18
19
|
snapPoints: readonly number[];
|
|
19
20
|
/** `sizes[0] = points[0] + 1`, `sizes[i] = points[i] − points[i−1]`. */
|
|
20
21
|
sizes: readonly number[];
|
|
21
|
-
/** Why this row exists. */
|
|
22
22
|
rule: string;
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
|
-
* The inverse both indicators reconstruct sizes with
|
|
26
|
-
*
|
|
27
|
-
* which an indicator can learn per-page reveal state.
|
|
25
|
+
* The inverse both indicators reconstruct sizes with — the only channel through which an
|
|
26
|
+
* indicator can learn per-page reveal state.
|
|
28
27
|
*
|
|
29
28
|
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (CAROUSEL_PAGE_LIST_VECTORS)
|
|
30
29
|
*/
|
|
31
30
|
export declare const CAROUSEL_SIZES_FROM_SNAP_POINTS_VECTORS: ReadonlyArray<CarouselSizesFromSnapPointsVector>;
|
|
32
31
|
/** One `carouselRange` expectation. */
|
|
33
32
|
export interface CarouselRangeVector {
|
|
34
|
-
/** The snap points the range is derived from. */
|
|
35
33
|
snapPoints: readonly number[];
|
|
36
|
-
/** Pending `position_shift`, which C folds into the bound
|
|
34
|
+
/** Pending `position_shift`, which C folds into the bound. */
|
|
37
35
|
positionShift: number;
|
|
38
36
|
/** Always 0. */
|
|
39
37
|
lower: number;
|
|
40
38
|
/** `MAX (0, positionShift + last snap point)`. */
|
|
41
39
|
upper: number;
|
|
42
|
-
/** Why this row exists. */
|
|
43
40
|
rule: string;
|
|
44
41
|
}
|
|
45
|
-
/**
|
|
42
|
+
/**
|
|
43
|
+
* `get_range`.
|
|
44
|
+
*
|
|
46
45
|
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (CAROUSEL_PAGE_LIST_VECTORS)
|
|
47
46
|
*/
|
|
48
47
|
export declare const CAROUSEL_RANGE_VECTORS: ReadonlyArray<CarouselRangeVector>;
|
|
49
48
|
/** One `carouselClampPosition` expectation. */
|
|
50
49
|
export interface CarouselClampVector {
|
|
51
|
-
/** The proposed position. */
|
|
52
50
|
position: number;
|
|
53
|
-
/** The snap points defining the range. */
|
|
54
51
|
snapPoints: readonly number[];
|
|
55
52
|
/** `CLAMP (position, lower, upper)`. */
|
|
56
53
|
clamped: number;
|
|
57
|
-
/** Why this row exists. */
|
|
58
54
|
rule: string;
|
|
59
55
|
}
|
|
60
|
-
/**
|
|
56
|
+
/**
|
|
57
|
+
* `set_position`'s guard.
|
|
58
|
+
*
|
|
61
59
|
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (CAROUSEL_PAGE_LIST_VECTORS)
|
|
62
60
|
*/
|
|
63
61
|
export declare const CAROUSEL_CLAMP_VECTORS: ReadonlyArray<CarouselClampVector>;
|
|
64
62
|
/** One `carouselPageAtPosition` expectation. */
|
|
65
63
|
export interface CarouselPageAtPositionVector {
|
|
66
|
-
/** The scroll position to resolve. */
|
|
67
64
|
position: number;
|
|
68
65
|
/** The snap points of the pages that count. */
|
|
69
66
|
snapPoints: readonly number[];
|
|
70
67
|
/** The page index, `-1` when there are no pages. */
|
|
71
68
|
page: number;
|
|
72
|
-
/** Why this row exists. */
|
|
73
69
|
rule: string;
|
|
74
70
|
}
|
|
75
71
|
/**
|
|
76
|
-
* `get_page_at_position` → `get_closest_child_at`
|
|
77
|
-
* :180-205). The `.5` rows are the regression pins: C's comparison is a strict
|
|
72
|
+
* `get_page_at_position` → `get_closest_child_at` . The `.5` rows are the regression pins: C's comparison is a strict
|
|
78
73
|
* `>`, so an equidistant LATER page never replaces the earlier one, while both
|
|
79
74
|
* ports used `Math.round`, which rounds .5 up.
|
|
80
75
|
*/
|
|
81
76
|
export declare const CAROUSEL_PAGE_AT_POSITION_VECTORS: ReadonlyArray<CarouselPageAtPositionVector>;
|
|
82
77
|
/** One `carouselNavigateTarget` expectation. */
|
|
83
78
|
export interface CarouselNavigateVector {
|
|
84
|
-
/** Current scroll position. */
|
|
85
79
|
position: number;
|
|
86
|
-
/** Number of pages. */
|
|
87
80
|
nPages: number;
|
|
88
|
-
/** Which way the key moves. */
|
|
89
81
|
direction: CarouselDirection;
|
|
90
82
|
/** The target page, `null` when C returns FALSE. */
|
|
91
83
|
target: number | null;
|
|
92
|
-
/** Why this row exists. */
|
|
93
84
|
rule: string;
|
|
94
85
|
}
|
|
95
86
|
/**
|
|
96
|
-
* `navigate_to_direction
|
|
87
|
+
* `navigate_to_direction`.
|
|
97
88
|
*
|
|
98
89
|
* The rounding here is C's `round()` — half AWAY FROM ZERO — and it is
|
|
99
90
|
* deliberately not the half-down tie-break of
|
|
@@ -104,21 +95,19 @@ export interface CarouselNavigateVector {
|
|
|
104
95
|
export declare const CAROUSEL_NAVIGATE_VECTORS: ReadonlyArray<CarouselNavigateVector>;
|
|
105
96
|
/** One `carouselWheelStep` expectation. */
|
|
106
97
|
export interface CarouselWheelVector {
|
|
107
|
-
/** Horizontal delta. */
|
|
108
98
|
deltaX: number;
|
|
109
|
-
/** Vertical delta. */
|
|
110
99
|
deltaY: number;
|
|
111
|
-
/** The carousel's orientation. */
|
|
112
100
|
orientation: CarouselOrientation;
|
|
113
101
|
/** The `GdkInputSource` class of the event. */
|
|
114
102
|
source: CarouselScrollSource;
|
|
115
103
|
/** Pages to step; `0` means the event propagates. */
|
|
116
104
|
step: -1 | 0 | 1;
|
|
117
|
-
/** Why this row exists. */
|
|
118
105
|
rule: string;
|
|
119
106
|
}
|
|
120
|
-
/**
|
|
121
|
-
*
|
|
107
|
+
/**
|
|
108
|
+
* `scroll_cb`'s axis/source rules.
|
|
109
|
+
*
|
|
110
|
+
* CORE-ONLY: GAP — the browser carousel routes `wheel` through `CarouselState.handleWheel` but publishes no per-notch answer to assert, and the NativeScript one has no wheel at all. Tracked in #1072
|
|
122
111
|
*/
|
|
123
112
|
export declare const CAROUSEL_WHEEL_VECTORS: ReadonlyArray<CarouselWheelVector>;
|
|
124
113
|
/** One step of a wheel-lockout script. */
|
|
@@ -129,7 +118,6 @@ export interface CarouselWheelLockoutStep {
|
|
|
129
118
|
deltaY: number;
|
|
130
119
|
/** What `handleWheel` must return. */
|
|
131
120
|
step: -1 | 0 | 1;
|
|
132
|
-
/** The position afterwards. */
|
|
133
121
|
position: number;
|
|
134
122
|
}
|
|
135
123
|
/** One end-to-end wheel-lockout expectation. */
|
|
@@ -138,17 +126,14 @@ export interface CarouselWheelLockoutVector {
|
|
|
138
126
|
pages: number;
|
|
139
127
|
/** The events, in order, each with the clock reading it arrives at. */
|
|
140
128
|
steps: readonly CarouselWheelLockoutStep[];
|
|
141
|
-
/** Why this row exists. */
|
|
142
129
|
rule: string;
|
|
143
130
|
}
|
|
144
131
|
/**
|
|
145
|
-
* `SCROLL_TIMEOUT_DURATION`
|
|
146
|
-
*
|
|
147
|
-
* notches propagate instead of paging.
|
|
132
|
+
* `SCROLL_TIMEOUT_DURATION` and the `scroll_timeout_id` gate — a wheel notch arms a 150 ms
|
|
133
|
+
* lockout during which further notches propagate instead of paging.
|
|
148
134
|
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
151
|
-
* reached the threshold at all.
|
|
135
|
+
* A non-decaying delta accumulator is the wrong shape for this: +30 then −30 cancels out
|
|
136
|
+
* where libadwaita pages twice, and a slow wheel never reaches the threshold at all.
|
|
152
137
|
*
|
|
153
138
|
* CORE-ONLY: GAP — the lockout is a real elapsed-time rule and neither element has a clock seam to drive it with. Tracked in #1072
|
|
154
139
|
*/
|
|
@@ -157,28 +142,25 @@ export declare const CAROUSEL_WHEEL_LOCKOUT_VECTORS: ReadonlyArray<CarouselWheel
|
|
|
157
142
|
export interface CarouselReorderShiftVector {
|
|
158
143
|
/** Snap point of the page the carousel is closest to. */
|
|
159
144
|
closestPoint: number;
|
|
160
|
-
/** Snap point the moved page had. */
|
|
161
145
|
oldPoint: number;
|
|
162
|
-
/** Snap point it lands on. */
|
|
163
146
|
newPoint: number;
|
|
164
|
-
/** The moved page's reveal size. */
|
|
165
147
|
size: number;
|
|
166
148
|
/** How far `position` must move so the visible page does not jump. */
|
|
167
149
|
shift: number;
|
|
168
|
-
/** Why this row exists. */
|
|
169
150
|
rule: string;
|
|
170
151
|
}
|
|
171
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* The three branches of `adw_carousel_reorder`'s compensation.
|
|
154
|
+
*
|
|
172
155
|
* CORE-ONLY: an internal step of a pipeline whose COMPOSED result is renderer-driven — driving it separately would assert the same thing twice (CAROUSEL_PAGE_LIST_VECTORS)
|
|
173
156
|
*/
|
|
174
157
|
export declare const CAROUSEL_REORDER_SHIFT_VECTORS: ReadonlyArray<CarouselReorderShiftVector>;
|
|
175
158
|
/**
|
|
176
159
|
* One operation in a page-list script.
|
|
177
160
|
*
|
|
178
|
-
* `insert` and `remove` mean "and finish the reveal immediately", which is what
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* separately by {@link CAROUSEL_REVEAL_VECTORS}.
|
|
161
|
+
* `insert` and `remove` mean "and finish the reveal immediately", which is what a carousel
|
|
162
|
+
* with the default `reveal-duration` of 0 does and what both renderers' page APIs do. The
|
|
163
|
+
* mid-animation states are pinned separately by {@link CAROUSEL_REVEAL_VECTORS}.
|
|
182
164
|
*/
|
|
183
165
|
export type CarouselPageOp = {
|
|
184
166
|
readonly kind: 'insert';
|
|
@@ -208,9 +190,7 @@ export interface CarouselStateSnapshot {
|
|
|
208
190
|
nPages: number;
|
|
209
191
|
/** Reveal sizes of every TRACKED child, including ones being removed. */
|
|
210
192
|
sizes: readonly number[];
|
|
211
|
-
/** Snap points of every tracked child. */
|
|
212
193
|
snapPoints: readonly number[];
|
|
213
|
-
/** The clamped fractional position. */
|
|
214
194
|
position: number;
|
|
215
195
|
/** The current page index, `-1` when empty. */
|
|
216
196
|
page: number;
|
|
@@ -219,24 +199,17 @@ export interface CarouselStateSnapshot {
|
|
|
219
199
|
export interface CarouselPageListVector {
|
|
220
200
|
/** Pages the carousel starts with, all settled at size 1. */
|
|
221
201
|
pages: readonly string[];
|
|
222
|
-
/** The script, applied in order. */
|
|
223
202
|
ops: readonly CarouselPageOp[];
|
|
224
203
|
/** What each op returned (`settle` reports `true`). */
|
|
225
204
|
opResults: readonly boolean[];
|
|
226
205
|
/** The `page-changed` indices emitted while the script ran, in order. */
|
|
227
206
|
pageChanged: readonly number[];
|
|
228
|
-
/** The state afterwards. */
|
|
229
207
|
expected: CarouselStateSnapshot;
|
|
230
|
-
/** Why this row exists. */
|
|
231
208
|
rule: string;
|
|
232
209
|
}
|
|
233
210
|
/**
|
|
234
|
-
* Insert / remove / reorder ordering and the position compensation, on a
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
* The whole family is new to both ports: the web port snapshotted its children
|
|
238
|
-
* once in `connectedCallback` and never looked again, and the NS port had
|
|
239
|
-
* `addPage` and nothing else.
|
|
211
|
+
* Insert / remove / reorder ordering and the position compensation, on a carousel whose
|
|
212
|
+
* reveals complete instantly — the shape both renderers expose.
|
|
240
213
|
*/
|
|
241
214
|
export declare const CAROUSEL_PAGE_LIST_VECTORS: ReadonlyArray<CarouselPageListVector>;
|
|
242
215
|
/** One operation in a reveal script — the mid-animation half of the state machine. */
|
|
@@ -262,37 +235,24 @@ export type CarouselRevealOp = {
|
|
|
262
235
|
export interface CarouselRevealVector {
|
|
263
236
|
/** Pages the carousel starts with, all settled at size 1. */
|
|
264
237
|
pages: readonly string[];
|
|
265
|
-
/** The script, applied in order. */
|
|
266
238
|
ops: readonly CarouselRevealOp[];
|
|
267
|
-
/** The state afterwards. */
|
|
268
239
|
expected: CarouselStateSnapshot;
|
|
269
|
-
/** Why this row exists. */
|
|
270
240
|
rule: string;
|
|
271
241
|
}
|
|
272
242
|
/**
|
|
273
|
-
* The reveal lifecycle: a page enters at size 0 and grows, leaves `n-pages`
|
|
274
|
-
*
|
|
275
|
-
* before the page on screen.
|
|
276
|
-
*
|
|
277
|
-
* Neither port has any of this — both treat the page list as fixed — so every
|
|
278
|
-
* row is new behaviour rather than a regression pin.
|
|
243
|
+
* The reveal lifecycle: a page enters at size 0 and grows, leaves `n-pages` before its
|
|
244
|
+
* geometry, and drags the position along whenever it sits at or before the page on screen.
|
|
279
245
|
*/
|
|
280
246
|
export declare const CAROUSEL_REVEAL_VECTORS: ReadonlyArray<CarouselRevealVector>;
|
|
281
247
|
/** One property-default expectation. */
|
|
282
248
|
export interface CarouselPropertyDefaultVector {
|
|
283
|
-
/** The `CarouselState` accessor. */
|
|
284
249
|
property: 'orientation' | 'interactive' | 'allowScrollWheel' | 'allowLongSwipes' | 'spacing' | 'revealDuration';
|
|
285
|
-
/** What a freshly constructed carousel reports. */
|
|
286
250
|
value: string | number | boolean;
|
|
287
|
-
/** Why this row exists. */
|
|
288
251
|
rule: string;
|
|
289
252
|
}
|
|
290
253
|
/**
|
|
291
|
-
* The `AdwCarousel` property defaults. Two
|
|
292
|
-
*
|
|
293
|
-
*
|
|
294
|
-
* while its own header comment claimed the opposite), and `allow-long-swipes` is
|
|
295
|
-
* FALSE, which the web port carried as a property whose two ternary branches
|
|
296
|
-
* were identical.
|
|
254
|
+
* The `AdwCarousel` property defaults. Two are regression pins: `allow-scroll-wheel` is
|
|
255
|
+
* TRUE, which a bare attribute-presence read inverts (a plain `<adw-carousel>` then ignores
|
|
256
|
+
* the wheel entirely), and `allow-long-swipes` is FALSE.
|
|
297
257
|
*/
|
|
298
258
|
export declare const CAROUSEL_PROPERTY_DEFAULT_VECTORS: ReadonlyArray<CarouselPropertyDefaultVector>;
|
|
@@ -7,22 +7,18 @@ export interface RadioGroupStep {
|
|
|
7
7
|
op: 'select';
|
|
8
8
|
/** The group name — what `name` scopes in HTML, and what the state keys on. */
|
|
9
9
|
name: string;
|
|
10
|
-
/** The member's value. */
|
|
11
10
|
value: string;
|
|
12
11
|
}
|
|
13
12
|
/** One radio-group scenario. */
|
|
14
13
|
export interface RadioGroupVector {
|
|
15
|
-
/** Short scenario name. */
|
|
16
14
|
name: string;
|
|
17
15
|
/** The members that exist, as `[group, value]` pairs — what the renderer mounts. */
|
|
18
16
|
members: ReadonlyArray<readonly [string, string]>;
|
|
19
|
-
/** The mutations, applied in order to a fresh state. */
|
|
20
17
|
steps: readonly RadioGroupStep[];
|
|
21
18
|
/** `selected(group)` afterwards, one entry per group in {@link members}. */
|
|
22
19
|
selected: ReadonlyArray<readonly [string, string | null]>;
|
|
23
20
|
/** Every change the state emits, in order. This IS the renderer's repaint feed. */
|
|
24
21
|
emitted: ReadonlyArray<RadioGroupChange>;
|
|
25
|
-
/** Why this row exists — the rule or edge case it pins down. */
|
|
26
22
|
rule: string;
|
|
27
23
|
}
|
|
28
24
|
/** `RadioGroupState.select` and the exclusivity it publishes. */
|