@gjsify/adwaita-core 0.51.1 → 0.52.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/box.js +1 -0
- package/lib/esm/conformance/box.js +1 -0
- package/lib/esm/conformance/dialog.js +1 -1
- package/lib/esm/conformance/index.js +1 -1
- package/lib/esm/conformance/label.js +1 -0
- package/lib/esm/conformance/rows.js +1 -1
- package/lib/esm/conformance/shared-trees.js +1 -1
- package/lib/esm/conformance/tags.js +1 -0
- package/lib/esm/conformance/value-lists.js +1 -0
- package/lib/esm/dialog.js +1 -1
- package/lib/esm/gio-menu.js +1 -0
- package/lib/esm/gtk-adjustment.js +1 -0
- package/lib/esm/gtk-string-list.js +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/label.js +1 -0
- package/lib/esm/markup.js +4 -0
- package/lib/esm/rows.js +1 -1
- package/lib/esm/source.js +1 -0
- package/lib/esm/tags.js +1 -0
- package/lib/esm/tokens.generated.js +1 -1
- package/lib/types/box.d.ts +18 -0
- package/lib/types/box.spec.d.ts +2 -0
- package/lib/types/conformance/box.d.ts +21 -0
- package/lib/types/conformance/dialog.d.ts +123 -1
- package/lib/types/conformance/index.d.ts +14 -6
- package/lib/types/conformance/label.d.ts +115 -0
- package/lib/types/conformance/rows.d.ts +29 -0
- package/lib/types/conformance/shared-trees.d.ts +155 -5
- package/lib/types/conformance/tags.d.ts +46 -0
- package/lib/types/conformance/value-lists.d.ts +19 -0
- package/lib/types/dialog.d.ts +163 -0
- package/lib/types/gio-menu.d.ts +46 -0
- package/lib/types/gtk-adjustment.d.ts +73 -0
- package/lib/types/gtk-adjustment.spec.d.ts +2 -0
- package/lib/types/gtk-string-list.d.ts +70 -0
- package/lib/types/gtk-string-list.spec.d.ts +2 -0
- package/lib/types/index.d.ts +14 -3
- package/lib/types/label.d.ts +135 -0
- package/lib/types/label.spec.d.ts +2 -0
- package/lib/types/markup.d.ts +14 -0
- package/lib/types/markup.spec.d.ts +2 -0
- package/lib/types/rows.d.ts +20 -0
- package/lib/types/source.d.ts +94 -0
- package/lib/types/source.spec.d.ts +2 -0
- package/lib/types/tags.d.ts +48 -0
- package/lib/types/tags.spec.d.ts +2 -0
- package/lib/types/tokens.generated.d.ts +1 -1
- package/package.json +12 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BottomSheetCloseOutcome, BottomSheetCloseSource, BottomSheetTeardownCallback } from '../dialog.js';
|
|
1
|
+
import type { BottomSheetChrome, BottomSheetCloseOutcome, BottomSheetCloseSource, BottomSheetOpenOutcome, BottomSheetOpenSource, BottomSheetSwipeTrackerConfig, BottomSheetSwipeTrackerState, BottomSheetTeardownCallback } from '../dialog.js';
|
|
2
2
|
/** One `resolveBottomSheetClose` expectation. */
|
|
3
3
|
export interface BottomSheetCloseVector {
|
|
4
4
|
/** Which affordance asked to close. */
|
|
@@ -90,3 +90,125 @@ export declare function runBottomSheetSteps(adapter: BottomSheetPresentationAdap
|
|
|
90
90
|
* carrying an unchanged payload.
|
|
91
91
|
*/
|
|
92
92
|
export declare const BOTTOM_SHEET_PRESENTATION_VECTORS: ReadonlyArray<BottomSheetPresentationVector>;
|
|
93
|
+
/** One `resolveBottomSheetOpen` expectation. */
|
|
94
|
+
export interface BottomSheetOpenVector {
|
|
95
|
+
/** Which affordance asked to open. */
|
|
96
|
+
source: BottomSheetOpenSource;
|
|
97
|
+
/** `AdwBottomSheet:open` at the time of the request. */
|
|
98
|
+
open: boolean;
|
|
99
|
+
/** `AdwBottomSheet:can-open` at the time of the request. */
|
|
100
|
+
canOpen: boolean;
|
|
101
|
+
/** Whether `AdwBottomSheet:bottom-bar` is set. */
|
|
102
|
+
hasBottomBar: boolean;
|
|
103
|
+
/** `AdwBottomSheet:reveal-bottom-bar`. */
|
|
104
|
+
revealBottomBar: boolean;
|
|
105
|
+
/** What the C source does with it. */
|
|
106
|
+
outcome: BottomSheetOpenOutcome;
|
|
107
|
+
rule: string;
|
|
108
|
+
derivedFrom: string;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Every distinguishable `(source, open, canOpen, hasBottomBar, revealBottomBar)` the open
|
|
112
|
+
* gate answers differently for — so a renderer cannot pass by wiring the bar to `open = true`
|
|
113
|
+
* and calling it done.
|
|
114
|
+
*/
|
|
115
|
+
export declare const BOTTOM_SHEET_OPEN_VECTORS: ReadonlyArray<BottomSheetOpenVector>;
|
|
116
|
+
/** One `resolveBottomSheetSwipeTracker` expectation. */
|
|
117
|
+
export interface BottomSheetSwipeTrackerVector {
|
|
118
|
+
/** The four properties `update_swipe_tracker` reads. */
|
|
119
|
+
state: BottomSheetSwipeTrackerState;
|
|
120
|
+
/** The three settings it writes. */
|
|
121
|
+
config: BottomSheetSwipeTrackerConfig;
|
|
122
|
+
rule: string;
|
|
123
|
+
derivedFrom: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* `update_swipe_tracker`'s three assignments, row by row.
|
|
127
|
+
*
|
|
128
|
+
* CORE-ONLY: an `AdwSwipeTracker` has no counterpart in either port — neither renderer runs a
|
|
129
|
+
* gesture tracker, so there is no object to read these settings off. Its `enabled` line is
|
|
130
|
+
* the same fact as the `'swipe'` rows of BOTTOM_SHEET_OPEN_VECTORS and BOTTOM_SHEET_CLOSE_VECTORS,
|
|
131
|
+
* which both renderers drive against their real widgets; this table is the third assignment
|
|
132
|
+
* and the conjunction written out, not a second source of truth.
|
|
133
|
+
*/
|
|
134
|
+
export declare const BOTTOM_SHEET_SWIPE_TRACKER_VECTORS: ReadonlyArray<BottomSheetSwipeTrackerVector>;
|
|
135
|
+
/** One step of a {@link BottomSheetBottomBarVector}, in the order it is applied. */
|
|
136
|
+
export type BottomSheetBottomBarStep =
|
|
137
|
+
/** `adw_bottom_sheet_set_bottom_bar` — a widget, or NULL. */
|
|
138
|
+
{
|
|
139
|
+
readonly kind: 'setBottomBar';
|
|
140
|
+
readonly present: boolean;
|
|
141
|
+
}
|
|
142
|
+
/** `adw_bottom_sheet_set_can_open`. */
|
|
143
|
+
| {
|
|
144
|
+
readonly kind: 'setCanOpen';
|
|
145
|
+
readonly canOpen: boolean;
|
|
146
|
+
}
|
|
147
|
+
/** `adw_bottom_sheet_set_reveal_bottom_bar`. */
|
|
148
|
+
| {
|
|
149
|
+
readonly kind: 'setRevealBottomBar';
|
|
150
|
+
readonly reveal: boolean;
|
|
151
|
+
}
|
|
152
|
+
/** `adw_bottom_sheet_set_modal`. */
|
|
153
|
+
| {
|
|
154
|
+
readonly kind: 'setModal';
|
|
155
|
+
readonly modal: boolean;
|
|
156
|
+
}
|
|
157
|
+
/** The programmatic path — `adw_bottom_sheet_set_open`, ignores `can-open`. */
|
|
158
|
+
| {
|
|
159
|
+
readonly kind: 'setOpen';
|
|
160
|
+
readonly open: boolean;
|
|
161
|
+
}
|
|
162
|
+
/** The interactive path — runs the {@link BOTTOM_SHEET_OPEN_VECTORS} gate. */
|
|
163
|
+
| {
|
|
164
|
+
readonly kind: 'requestOpen';
|
|
165
|
+
readonly source: BottomSheetOpenSource;
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* One end-to-end bottom-bar expectation.
|
|
169
|
+
*
|
|
170
|
+
* Every field is observable from a RENDERER: `chrome` is what it has to paint (which layer
|
|
171
|
+
* shows, whether the surface is on screen, whether the bar looks inert) and `notifications`
|
|
172
|
+
* is the `notify::open` stream. So the same row drives the core suite and both renderer
|
|
173
|
+
* suites against their real widgets.
|
|
174
|
+
*/
|
|
175
|
+
export interface BottomSheetBottomBarVector {
|
|
176
|
+
/** Applied in order, through the surface every implementation exposes. */
|
|
177
|
+
steps: readonly BottomSheetBottomBarStep[];
|
|
178
|
+
/** The outcome of each `requestOpen` step, in order. */
|
|
179
|
+
outcomes: readonly BottomSheetOpenOutcome[];
|
|
180
|
+
/** Every `notify::open` payload, in order. */
|
|
181
|
+
notifications: readonly boolean[];
|
|
182
|
+
/** `open` after the last step. */
|
|
183
|
+
open: boolean;
|
|
184
|
+
/** What the renderer must be showing after the last step. */
|
|
185
|
+
chrome: BottomSheetChrome;
|
|
186
|
+
rule: string;
|
|
187
|
+
derivedFrom: string;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* The three-plus-two-method surface a {@link BottomSheetBottomBarVector} is replayed
|
|
191
|
+
* against. Core implements it directly; each renderer implements it by driving its REAL
|
|
192
|
+
* widget (adopting a bar child, writing an attribute, clicking the bar).
|
|
193
|
+
*/
|
|
194
|
+
export interface BottomSheetBottomBarAdapter {
|
|
195
|
+
/** Give the sheet a bottom bar, or take it away (`AdwBottomSheet:bottom-bar`). */
|
|
196
|
+
setBottomBar(present: boolean): void;
|
|
197
|
+
/** `AdwBottomSheet:can-open`. */
|
|
198
|
+
setCanOpen(canOpen: boolean): void;
|
|
199
|
+
/** `AdwBottomSheet:reveal-bottom-bar`. */
|
|
200
|
+
setRevealBottomBar(reveal: boolean): void;
|
|
201
|
+
/** `AdwBottomSheet:modal`. */
|
|
202
|
+
setModal(modal: boolean): void;
|
|
203
|
+
/** The programmatic path (`AdwBottomSheet:open`). */
|
|
204
|
+
setOpen(open: boolean): void;
|
|
205
|
+
/** The interactive path — returns what the gate decided. */
|
|
206
|
+
requestOpen(source: BottomSheetOpenSource): BottomSheetOpenOutcome;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Replay a vector's steps against `adapter`, collecting the outcome of each `requestOpen`
|
|
210
|
+
* step in order. Shared by all three suites so no side can drift in HOW it replays a row.
|
|
211
|
+
*/
|
|
212
|
+
export declare function runBottomSheetBottomBarSteps(adapter: BottomSheetBottomBarAdapter, steps: readonly BottomSheetBottomBarStep[]): BottomSheetOpenOutcome[];
|
|
213
|
+
/** The bottom bar's life as scripts: adopting one, gating it, revealing it, clicking it. */
|
|
214
|
+
export declare const BOTTOM_SHEET_BOTTOM_BAR_VECTORS: ReadonlyArray<BottomSheetBottomBarVector>;
|
|
@@ -12,8 +12,8 @@ export { BUTTON_STYLE_CLASS_VECTORS } from './button.js';
|
|
|
12
12
|
export type { ButtonStyleClassVector } from './button.js';
|
|
13
13
|
export { RADIO_GROUP_VECTORS } from './checks.js';
|
|
14
14
|
export type { RadioGroupStep, RadioGroupVector } from './checks.js';
|
|
15
|
-
export { COMBO_CHOOSER_VECTORS, COMBO_SELECTION_VECTORS } from './rows.js';
|
|
16
|
-
export type { ComboChooserVector, ComboSelectionStep, ComboSelectionVector } from './rows.js';
|
|
15
|
+
export { COMBO_CHOOSER_VECTORS, COMBO_SELECTION_VECTORS, TOGGLE_ACTIVE_NAME_VECTORS } from './rows.js';
|
|
16
|
+
export type { ComboChooserVector, ComboSelectionStep, ComboSelectionVector, ToggleActiveNameVector } from './rows.js';
|
|
17
17
|
export { VIEW_STACK_ICON_NAME_VECTORS, VIEW_STACK_PAGE_VECTORS, VIEW_STACK_VECTORS } from './view-stack.js';
|
|
18
18
|
export type { ViewStackIconNameVector, ViewStackPageDescriptorVector, ViewStackVector, ViewStackVectorChange, ViewStackVectorOp, ViewStackVectorPage, } from './view-stack.js';
|
|
19
19
|
export { NAVIGATION_VIEW_VECTORS, collectNavigationState, navigationEventLog, runNavigationSteps, } from './navigation-view.js';
|
|
@@ -44,8 +44,8 @@ export { CASE_FOLD_VECTORS, MAKE_COMPARABLE_VECTORS, PREFERENCES_GROUP_HEADER_VE
|
|
|
44
44
|
export type { CaseFoldVector, MakeComparableVector, PreferencesGroupHeaderVector, PreferencesSearchExpectation, PreferencesSearchVector, RowMatchVector, SearchCorpusVector, SearchRowSubtitleVector, StripMarkupVector, StripMnemonicVector, } from './preferences.js';
|
|
45
45
|
export { CLAMP_ALLOCATE_VECTORS, CLAMP_CHILD_SIZE_VECTORS, CLAMP_PROPERTY_VECTORS, CLAMP_SIZE_FROM_CHILD_VECTORS, CLAMP_THRESHOLD_VECTORS, SPINNER_GEOMETRY_VECTORS, SPINNER_SIZE_VECTORS, TOOLBAR_VIEW_ALLOCATE_VECTORS, TOOLBAR_VIEW_CLASS_VECTORS, TOOLBAR_VIEW_CONTENT_FOR_SIZE_VECTORS, TOOLBAR_VIEW_MEASURE_VECTORS, } from './chrome.js';
|
|
46
46
|
export type { ClampAllocateVector, ClampChildSizeVector, ClampPropertyVector, ClampSizeFromChildVector, ClampThresholdsVector, SpinnerGeometryVector, SpinnerSizeVector, ToolbarViewAllocateVector, ToolbarViewClassVector, ToolbarViewContentForSizeVector, ToolbarViewMeasureVector, } from './chrome.js';
|
|
47
|
-
export { BOTTOM_SHEET_CLOSE_VECTORS, BOTTOM_SHEET_PRESENTATION_VECTORS, runBottomSheetSteps } from './dialog.js';
|
|
48
|
-
export type { BottomSheetCloseVector, BottomSheetPresentationAdapter, BottomSheetPresentationStep, BottomSheetPresentationVector, } from './dialog.js';
|
|
47
|
+
export { BOTTOM_SHEET_BOTTOM_BAR_VECTORS, BOTTOM_SHEET_CLOSE_VECTORS, BOTTOM_SHEET_OPEN_VECTORS, BOTTOM_SHEET_PRESENTATION_VECTORS, BOTTOM_SHEET_SWIPE_TRACKER_VECTORS, runBottomSheetBottomBarSteps, runBottomSheetSteps, } from './dialog.js';
|
|
48
|
+
export type { BottomSheetBottomBarAdapter, BottomSheetBottomBarStep, BottomSheetBottomBarVector, BottomSheetCloseVector, BottomSheetOpenVector, BottomSheetPresentationAdapter, BottomSheetPresentationStep, BottomSheetPresentationVector, BottomSheetSwipeTrackerVector, } from './dialog.js';
|
|
49
49
|
export { POPOVER_KEY_VECTORS, POPOVER_SURFACE_VECTORS } from './popover.js';
|
|
50
50
|
export type { PopoverKeyVector, PopoverSurfaceVariant, PopoverSurfaceVector } from './popover.js';
|
|
51
51
|
export { ACCENT_COLOR_VECTORS } from './accent.js';
|
|
@@ -54,11 +54,19 @@ export { formatShortcutLabelNodes, SHORTCUT_LABEL_VECTORS } from './shortcut-lab
|
|
|
54
54
|
export type { ShortcutLabelVector } from './shortcut-label.js';
|
|
55
55
|
export { SPINNER_ARC_ENVELOPE, SPINNER_ARC_PHASE_VECTORS, SPINNER_ARC_TOLERANCE, SPINNER_CONSTANT_VECTORS, } from './spinner.js';
|
|
56
56
|
export type { SpinnerArcShapeVector, SpinnerConstantVector } from './spinner.js';
|
|
57
|
+
export { BOX_ORIENTATION_VECTORS, BOX_SPACING_VECTORS } from './box.js';
|
|
58
|
+
export type { BoxOrientationVector, BoxSpacingVector } from './box.js';
|
|
59
|
+
export { LABEL_CHAR_COUNT_VECTORS, LABEL_DISPLAY_TEXT_VECTORS, LABEL_EFFECTIVE_LINES_VECTORS, LABEL_ELLIPSIZE_OVERFLOW_VECTORS, LABEL_ELLIPSIZE_VECTORS, LABEL_JUSTIFY_VECTORS, LABEL_WIDTH_CHARS_EXTENT_VECTORS, LABEL_WRAP_MODE_VECTORS, LABEL_XALIGN_VECTORS, LABEL_YALIGN_ALIGN_ITEMS_VECTORS, LABEL_YALIGN_VECTORS, } from './label.js';
|
|
60
|
+
export type { LabelCharCountVector, LabelDisplayTextVector, LabelEffectiveLinesVector, LabelEllipsizeOverflowVector, LabelEllipsizeVector, LabelJustifyVector, LabelWidthCharsExtentVector, LabelWrapModeVector, LabelXalignVector, LabelYalignAlignItemsVector, LabelYalignVector, } from './label.js';
|
|
57
61
|
export { WRAP_BOX_CHILD_ORDER_VECTORS, WRAP_BOX_LENGTH_VECTORS, WRAP_BOX_LINE_VECTORS, WRAP_BOX_NATURAL_LENGTH_VECTORS, WRAP_BOX_NOTIFY_PROPERTIES, WRAP_BOX_POLICY_VECTORS, WRAP_BOX_SPACING_NOTIFY_VECTORS, WRAP_BOX_SPACING_VECTORS, } from './wrap-box.js';
|
|
58
62
|
export type { WrapBoxChildOrderVector, WrapBoxLengthVector, WrapBoxLineVector, WrapBoxNaturalLengthVector, WrapBoxPolicyVector, WrapBoxSpacingNotifyVector, WrapBoxSpacingVector, } from './wrap-box.js';
|
|
59
63
|
export { BREAKPOINT_PICK_VECTORS, BREAKPOINT_TRANSITION_VECTORS } from './breakpoint-bin.js';
|
|
60
64
|
export type { BreakpointPickVector, BreakpointTransitionVector } from './breakpoint-bin.js';
|
|
61
65
|
export { HEADER_BAR_PACK_VECTORS, HEADER_BAR_TITLE_SOURCE_VECTORS, HEADER_BAR_TITLE_WIDGET_VECTORS, } from './header-bar.js';
|
|
62
66
|
export type { HeaderBarPackVector, HeaderBarTitleSourceVector, HeaderBarTitleWidgetVector } from './header-bar.js';
|
|
63
|
-
export {
|
|
64
|
-
export type {
|
|
67
|
+
export { ATTRIBUTE_OF_VECTORS, HOST_TAG_VECTORS, PROPERTY_OF_VECTORS } from './tags.js';
|
|
68
|
+
export type { AttributeOfVector, HostTagVector, PropertyOfVector } from './tags.js';
|
|
69
|
+
export { VALUE_LIST_VECTORS } from './value-lists.js';
|
|
70
|
+
export type { ValueListResponse, ValueListVector } from './value-lists.js';
|
|
71
|
+
export { SHARED_TREE_BLOCKS_WITHOUT_EXPECTATIONS, SHARED_TREE_TABLES, authoredNodes, authoredTags, reachedTables, sharedTreeExpectations, sharedTreePlacements, subjectIndexOf, withoutPlacements, } from './shared-trees.js';
|
|
72
|
+
export type { SharedTreeExpectation, SharedTreeNode, SharedTreeObservable, SharedTreePlacement, } from './shared-trees.js';
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/** One `label` + flags and the text shown. */
|
|
2
|
+
export interface LabelDisplayTextVector {
|
|
3
|
+
label: string;
|
|
4
|
+
useMarkup: boolean;
|
|
5
|
+
useUnderline: boolean;
|
|
6
|
+
text: string;
|
|
7
|
+
rule: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const LABEL_DISPLAY_TEXT_VECTORS: ReadonlyArray<LabelDisplayTextVector>;
|
|
10
|
+
/** One authored `xalign` and the value the label holds. */
|
|
11
|
+
export interface LabelXalignVector {
|
|
12
|
+
value: number | string | null;
|
|
13
|
+
xalign: number;
|
|
14
|
+
rule: string;
|
|
15
|
+
}
|
|
16
|
+
/** `gtk_label_set_xalign` CLAMPs to 0…1 itself; the pspec default is 0.5. */
|
|
17
|
+
export declare const LABEL_XALIGN_VECTORS: ReadonlyArray<LabelXalignVector>;
|
|
18
|
+
/** One authored `justify` and the `Gtk.Justification` nick the label holds. */
|
|
19
|
+
export interface LabelJustifyVector {
|
|
20
|
+
value: string | null;
|
|
21
|
+
justify: 'left' | 'right' | 'center' | 'fill';
|
|
22
|
+
rule: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const LABEL_JUSTIFY_VECTORS: ReadonlyArray<LabelJustifyVector>;
|
|
25
|
+
/** One authored `yalign` and the value the label holds. Same shape as `xalign`. */
|
|
26
|
+
export interface LabelYalignVector {
|
|
27
|
+
value: number | string | null;
|
|
28
|
+
yalign: number;
|
|
29
|
+
rule: string;
|
|
30
|
+
}
|
|
31
|
+
/** `gtk_label_set_yalign` CLAMPs to 0…1 itself; the pspec default is 0.5. */
|
|
32
|
+
export declare const LABEL_YALIGN_VECTORS: ReadonlyArray<LabelYalignVector>;
|
|
33
|
+
/** One `yalign` and the `align-items` zone it is nearest to. */
|
|
34
|
+
export interface LabelYalignAlignItemsVector {
|
|
35
|
+
yalign: number;
|
|
36
|
+
alignItems: 'flex-start' | 'center' | 'flex-end';
|
|
37
|
+
rule: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* TRUE nearest-of-three, not a strict half-split: the boundary between "nearest 0" and
|
|
41
|
+
* "nearest 0.5" is their midpoint, `0.25`, and symmetrically `0.75` on the other side —
|
|
42
|
+
* a `yalign` short of a full CSS continuum still lands on the CLOSER zone rather than
|
|
43
|
+
* whichever half of `[0, 1]` it falls in. Exact at the three values GTK's own default and
|
|
44
|
+
* both edges take (0, 0.5, 1); the four intermediate rows (`0.2`/`0.3`/`0.7`/`0.8`) are the
|
|
45
|
+
* ones a strict `< 0.5`/`> 0.5` split gets wrong — `0.3` is closer to `0.5` than to `0`,
|
|
46
|
+
* so it belongs in `center`, not `flex-start`.
|
|
47
|
+
*/
|
|
48
|
+
export declare const LABEL_YALIGN_ALIGN_ITEMS_VECTORS: ReadonlyArray<LabelYalignAlignItemsVector>;
|
|
49
|
+
/** One authored `ellipsize` and the `Pango.EllipsizeMode` nick the label holds. */
|
|
50
|
+
export interface LabelEllipsizeVector {
|
|
51
|
+
value: string | null;
|
|
52
|
+
ellipsize: 'none' | 'start' | 'middle' | 'end';
|
|
53
|
+
rule: string;
|
|
54
|
+
}
|
|
55
|
+
/** `Pango-1.0.gir`'s four `EllipsizeMode` nicks, read via `gi://Pango` under gjs 1.88.1. */
|
|
56
|
+
export declare const LABEL_ELLIPSIZE_VECTORS: ReadonlyArray<LabelEllipsizeVector>;
|
|
57
|
+
/** One `Pango.EllipsizeMode` nick and the ONE truncating value both renderers can draw. */
|
|
58
|
+
export interface LabelEllipsizeOverflowVector {
|
|
59
|
+
ellipsize: 'none' | 'start' | 'middle' | 'end';
|
|
60
|
+
overflow: 'clip' | 'ellipsis';
|
|
61
|
+
rule: string;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Neither CSS `text-overflow` nor NativeScript's `textOverflow` has a start- or
|
|
65
|
+
* middle-truncating mode — see `labelEllipsizeOverflowValue`'s own comment for why every
|
|
66
|
+
* non-`none` mode draws an end-ellipsis rather than a silent `clip`. `start` and `middle`
|
|
67
|
+
* are the DECLARED divergence these two rows pin.
|
|
68
|
+
*/
|
|
69
|
+
export declare const LABEL_ELLIPSIZE_OVERFLOW_VECTORS: ReadonlyArray<LabelEllipsizeOverflowVector>;
|
|
70
|
+
/** One authored `wrap-mode` and the `Pango.WrapMode` nick the label holds. */
|
|
71
|
+
export interface LabelWrapModeVector {
|
|
72
|
+
value: string | null;
|
|
73
|
+
wrapMode: 'word' | 'char' | 'word-char';
|
|
74
|
+
rule: string;
|
|
75
|
+
}
|
|
76
|
+
/** `Pango-1.0.gir`'s three `WrapMode` nicks, read via `gi://Pango` under gjs 1.88.1. */
|
|
77
|
+
export declare const LABEL_WRAP_MODE_VECTORS: ReadonlyArray<LabelWrapModeVector>;
|
|
78
|
+
/** One authored value and the int `width-chars` / `max-width-chars` / `lines` all hold. */
|
|
79
|
+
export interface LabelCharCountVector {
|
|
80
|
+
value: number | string | null;
|
|
81
|
+
count: number;
|
|
82
|
+
rule: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* `width-chars`, `max-width-chars` and `lines` share one pspec shape — floor `-1`, default
|
|
86
|
+
* `-1` — so one table drives all three normalizers in `label.spec.ts`. Measured through
|
|
87
|
+
* `label.set_property()`, the door an attribute-driven tree uses (`label.ts`'s header).
|
|
88
|
+
*/
|
|
89
|
+
export declare const LABEL_CHAR_COUNT_VECTORS: ReadonlyArray<LabelCharCountVector>;
|
|
90
|
+
/** One `lines` / `ellipsize` combination and the line count a renderer applies. */
|
|
91
|
+
export interface LabelEffectiveLinesVector {
|
|
92
|
+
lines: number;
|
|
93
|
+
ellipsize: 'none' | 'start' | 'middle' | 'end';
|
|
94
|
+
effective: number | null;
|
|
95
|
+
rule: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* MEASURED (a real `Gtk.Label`, allocated, gjs 1.88.1 / gtk 4.22.5) — `wrap` is
|
|
99
|
+
* deliberately not a column here, because it changes NONE of these outcomes.
|
|
100
|
+
* `wrap=TRUE, ellipsize=NONE, lines=2` laid out 15 lines (the cap ignored);
|
|
101
|
+
* `wrap=FALSE, ellipsize=END, lines=2` laid out exactly 2, ellipsized. `label.ts`'s header
|
|
102
|
+
* carries the fuller measurement, including the two prior, WRONG readings of the pspec's
|
|
103
|
+
* "has no effect if the label is not wrapping or ellipsized" this table replaced.
|
|
104
|
+
*/
|
|
105
|
+
export declare const LABEL_EFFECTIVE_LINES_VECTORS: ReadonlyArray<LabelEffectiveLinesVector>;
|
|
106
|
+
/** One `width-chars` + `max-width-chars` pair and the `ch`-unit extent it derives. */
|
|
107
|
+
export interface LabelWidthCharsExtentVector {
|
|
108
|
+
widthChars: number;
|
|
109
|
+
maxWidthChars: number;
|
|
110
|
+
minCh: number | null;
|
|
111
|
+
maxCh: number | null;
|
|
112
|
+
rule: string;
|
|
113
|
+
}
|
|
114
|
+
/** `get_default_widths` (gtklabel.c): minimum is `width-chars`, natural is their MAX. */
|
|
115
|
+
export declare const LABEL_WIDTH_CHARS_EXTENT_VECTORS: ReadonlyArray<LabelWidthCharsExtentVector>;
|
|
@@ -65,3 +65,32 @@ export interface ComboChooserVector {
|
|
|
65
65
|
* which is why this lives on the combo ROW rather than in the shared chooser.
|
|
66
66
|
*/
|
|
67
67
|
export declare const COMBO_CHOOSER_VECTORS: ReadonlyArray<ComboChooserVector>;
|
|
68
|
+
/** One authored `active-name`, over toggles carrying these names. */
|
|
69
|
+
export interface ToggleActiveNameVector {
|
|
70
|
+
/** Each authored toggle's `name`, in document order; `null` is unnamed. */
|
|
71
|
+
names: readonly (string | null)[];
|
|
72
|
+
/** The authored `Adw.ToggleGroup:active-name`. */
|
|
73
|
+
activeName: string;
|
|
74
|
+
/** How many toggles the group keeps — `keptToggles`, the buttons a built group draws. */
|
|
75
|
+
kept: number;
|
|
76
|
+
/** What `toggleIndexOfName` answers over the kept names — `-1` for none. */
|
|
77
|
+
index: number;
|
|
78
|
+
/** The button a BUILT group shows active afterwards. */
|
|
79
|
+
active: number;
|
|
80
|
+
rule: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* `adw_toggle_group_set_active_name` (adw-toggle-group.c:1989) resolves the name through
|
|
84
|
+
* the table `add_toggle` fills (:898), and a `.blp` writes it BEFORE the toggles exist —
|
|
85
|
+
* GtkBuilder sets properties first and children after, which is why the C holds the name
|
|
86
|
+
* back in `delayed_active_name` until `parser_finished` (:1247). `active` is therefore a
|
|
87
|
+
* row about the built tree, not about the lookup: a renderer that resolves the name the
|
|
88
|
+
* moment it is written finds no toggles and drops it.
|
|
89
|
+
*
|
|
90
|
+
* The first toggle is active before the name is applied, because `add_toggle` activates
|
|
91
|
+
* the first toggle it is given (:903). Every row was measured against libadwaita 1.9.3
|
|
92
|
+
* through `Gtk.Builder`, and the shared-name row is the one the source reading got wrong
|
|
93
|
+
* first: the table insert at :898 looks like "last one wins", but :849 refuses the second
|
|
94
|
+
* toggle before it is ever reached.
|
|
95
|
+
*/
|
|
96
|
+
export declare const TOGGLE_ACTIVE_NAME_VECTORS: ReadonlyArray<ToggleActiveNameVector>;
|
|
@@ -1,9 +1,124 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/**
|
|
2
|
+
* One node of an authored tree — the shape `ADWAITA_GALLERY_SHARED_TREES` is written in.
|
|
3
|
+
*
|
|
4
|
+
* THIS DECLARATION IS THE ORIGINAL. Every other spelling of the shape in this repository
|
|
5
|
+
* restates it — `scripts/adwaita-gallery-shared-trees.d.mts` for the plain-Node generators,
|
|
6
|
+
* `packages/infra/blueprint/src/shared-node.d.mts` for the projection, and more besides —
|
|
7
|
+
* each because it cannot import from here, each saying why in its own header.
|
|
8
|
+
* `scripts/check-shared-tree-shape.mjs` carries the list, holds every entry to this
|
|
9
|
+
* declaration field by field, and fails on a spelling that declares itself nowhere. So a
|
|
10
|
+
* field added here is added there too, or the gate says which field and where.
|
|
11
|
+
*/
|
|
2
12
|
export interface SharedTreeNode {
|
|
3
13
|
/** A GIR class name, e.g. `AdwPreferencesGroup`. */
|
|
4
14
|
tag: string;
|
|
15
|
+
/**
|
|
16
|
+
* The name this node is addressed by from OUTSIDE the tree.
|
|
17
|
+
*
|
|
18
|
+
* Renderer-neutral because every surface already has one — a GtkBuilder object id, a DOM
|
|
19
|
+
* `id`, a NativeScript `id` — and worth carrying although `bind` stays a refusal: measured
|
|
20
|
+
* in ADR 0066, EVERY id in this repository's shipped `.blp` is named by the sibling
|
|
21
|
+
* TypeScript through `InternalChildren` and NONE by a `bind` inside the file. A name read
|
|
22
|
+
* from outside is the component's addressing surface, not an input to a binding language.
|
|
23
|
+
*/
|
|
24
|
+
id?: string;
|
|
25
|
+
/**
|
|
26
|
+
* On the ROOT node: the composite class this tree DEFINES, where `tag` is the type it
|
|
27
|
+
* extends.
|
|
28
|
+
*
|
|
29
|
+
* `template $GalleryHeaderBar : Adw.Bin` is `{ tag: 'AdwBin', template: 'GalleryHeaderBar' }`
|
|
30
|
+
* — two facts that a single tag cannot carry, which is why the root of every shipped `.blp`
|
|
31
|
+
* projected to its PARENT type and said nothing about the class the file is about. The value
|
|
32
|
+
* is what GtkBuilder writes as `<template class="…">`, so `emitGtkBuilderXml` and the
|
|
33
|
+
* projection can be held against each other on it — and are, by stage D's addressing arm.
|
|
34
|
+
*/
|
|
35
|
+
template?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Where in the parent this child goes — the placement, spelled as the GTK side spells it.
|
|
38
|
+
*
|
|
39
|
+
* ONE FIELD FOR TWO GtkBuilder CONSTRUCTS, and the conflation is the projection's, not a
|
|
40
|
+
* choice made here: `[start]` is `<child type="start">` and `content: …` is a
|
|
41
|
+
* property-valued child, and both land on this field, so it cannot be inverted (the
|
|
42
|
+
* Blueprint corpus's `expectations.mjs` states it as finding 1). A renderer therefore has
|
|
43
|
+
* to answer to both spellings of a placement it has — `gtk-host` derives the property name
|
|
44
|
+
* from its own `set_`-prefixed slot method, `<adw-header-bar>` names `title-widget` beside
|
|
45
|
+
* its own `center`.
|
|
46
|
+
*
|
|
47
|
+
* A SHARED TREE MAY CARRY ONE ONLY WHERE EVERY RENDERER SPELLS IT THE SAME. That is the
|
|
48
|
+
* corpus's no-alias admission rule applied to a placement, and it is narrow: a row's
|
|
49
|
+
* `prefix`/`suffix` qualify, a header bar's `start`/`title`/`end` do not
|
|
50
|
+
* (`startBox`/`titleWidget`/`endBox` on the NativeScript port), which is why those blocks
|
|
51
|
+
* are ledgered as `vocabulary` divergences. A renderer handed a name it has no destination
|
|
52
|
+
* for REFUSES and says which — the alternative was measured on a shipped `.blp`, where a
|
|
53
|
+
* `[top]` header bar landed in the content and the window title was then discarded by the
|
|
54
|
+
* bar's own construction, at exit 0.
|
|
55
|
+
*/
|
|
5
56
|
slot?: string;
|
|
6
57
|
props?: Readonly<Record<string, string | number | boolean>>;
|
|
58
|
+
/**
|
|
59
|
+
* Which of this node's `props` are marked for translation, keyed by the prop name.
|
|
60
|
+
*
|
|
61
|
+
* A present key means marked; `context` carries the message context `C_("noun", …)` gives
|
|
62
|
+
* one. BESIDE `props` and not inside it, because that is what the marking is wherever a
|
|
63
|
+
* surface has one: GtkBuilder writes `translatable="yes" context="noun"` as attributes NEXT
|
|
64
|
+
* to the value, and a marked value is still the same value. Widening `props` to a union
|
|
65
|
+
* would make every reader of a value narrow past something that is not one.
|
|
66
|
+
*
|
|
67
|
+
* Worth carrying although no renderer here translates: a caption whose marking was dropped
|
|
68
|
+
* looks finished and is unreachable by `xgettext`, which is the exact defect ADR 0033 gives
|
|
69
|
+
* as its reason for preferring a declarative template. ADR 0067 measures it and says why
|
|
70
|
+
* the file-level `translation-domain` is not a node fact and stays a loss.
|
|
71
|
+
*/
|
|
72
|
+
translatable?: Readonly<Record<string, {
|
|
73
|
+
readonly context?: string;
|
|
74
|
+
}>>;
|
|
75
|
+
/**
|
|
76
|
+
* The style classes this node carries, as a list, in the order the source wrote them.
|
|
77
|
+
*
|
|
78
|
+
* ONE FIELD FOR TWO SPELLINGS, because they are one GTK property. Blueprint writes
|
|
79
|
+
* `styles ["flat", "circular"]` as a block and `css-classes: ["flat", "narrow"]` as a
|
|
80
|
+
* property value, and both set `GtkWidget:css-classes` — measured against the reference
|
|
81
|
+
* compiler, which writes the first as `<style><class name="flat"/></style>` and the second
|
|
82
|
+
* as a `<property>` whose text is NEWLINE-joined. A joined string in `props` would have to
|
|
83
|
+
* pick one of those two joins and could then not be held against the other golden, which is
|
|
84
|
+
* why the list is the field and not a string (ADR 0068 § 2).
|
|
85
|
+
*
|
|
86
|
+
* `styleClasses` and not `cssClasses`: ADR 0049 § 1 measured that name fatal on
|
|
87
|
+
* NativeScript, where `ViewBase` owns it as a live `Set` its CSS engine reads. So the field
|
|
88
|
+
* carries the name the three surfaces CAN share, and each driver maps it to its own door —
|
|
89
|
+
* the same arrangement `slot` already has, where GTK writes `<child type="start">` and the
|
|
90
|
+
* web writes `slot="start"`.
|
|
91
|
+
*/
|
|
92
|
+
styleClasses?: readonly string[];
|
|
93
|
+
/**
|
|
94
|
+
* Blueprint's value-carrying extension blocks, one key per kind (ADR 0072).
|
|
95
|
+
*
|
|
96
|
+
* `strings` is `Gtk.StringList { strings [ … ] }`: GtkBuilder writes it as `<items>` and
|
|
97
|
+
* fills it through `gtk_string_list_append`. `responses` is `Adw.AlertDialog { responses
|
|
98
|
+
* [ … ] }`: filled through `adw_alert_dialog_add_response`, with `destructive`/`suggested`
|
|
99
|
+
* as the `appearance` and `disabled` as `enabled: false`. A string keeps its `_()` marking
|
|
100
|
+
* beside it, in the same `{ context? }` that `translatable` holds for a prop.
|
|
101
|
+
*
|
|
102
|
+
* A CLOSED SET. Every other extension (`menu`, `layout`, `marks`, `items`, …) stays a named
|
|
103
|
+
* loss of the projection, so no renderer meets a kind it has no door for.
|
|
104
|
+
*/
|
|
105
|
+
extensions?: Readonly<{
|
|
106
|
+
strings?: readonly {
|
|
107
|
+
readonly value: string;
|
|
108
|
+
readonly translatable?: {
|
|
109
|
+
readonly context?: string;
|
|
110
|
+
};
|
|
111
|
+
}[];
|
|
112
|
+
responses?: readonly {
|
|
113
|
+
readonly id: string;
|
|
114
|
+
readonly label: string;
|
|
115
|
+
readonly translatable?: {
|
|
116
|
+
readonly context?: string;
|
|
117
|
+
};
|
|
118
|
+
readonly appearance?: 'suggested' | 'destructive';
|
|
119
|
+
readonly enabled?: boolean;
|
|
120
|
+
}[];
|
|
121
|
+
}>;
|
|
7
122
|
children?: readonly SharedTreeNode[];
|
|
8
123
|
}
|
|
9
124
|
/**
|
|
@@ -64,12 +179,47 @@ export declare function authoredNodes(root: SharedTreeNode): {
|
|
|
64
179
|
/**
|
|
65
180
|
* The authored classes a realised tree must carry, in authored order.
|
|
66
181
|
*
|
|
67
|
-
* `tagOf` is the renderer's own spelling of a GIR class name — `hostTagOf`
|
|
68
|
-
* GIR name itself in GTK. Both drivers filter
|
|
69
|
-
* against it, so it lives here rather than in
|
|
70
|
-
* is a second walk, free to disagree with the
|
|
182
|
+
* `tagOf` is the renderer's own spelling of a GIR class name — `hostTagOf` from the sibling
|
|
183
|
+
* `@gjsify/adwaita-core/tags` on the web, the GIR name itself in GTK. Both drivers filter
|
|
184
|
+
* their real tree down to this list and compare against it, so it lives here rather than in
|
|
185
|
+
* each of them: a driver deriving it privately is a second walk, free to disagree with the
|
|
186
|
+
* one {@link subjectIndexOf} addresses into.
|
|
71
187
|
*/
|
|
72
188
|
export declare function authoredTags(root: SharedTreeNode, tagOf?: (gtype: string) => string): string[];
|
|
189
|
+
/** One authored placement: the node's address, and the slot it named. */
|
|
190
|
+
export interface SharedTreePlacement {
|
|
191
|
+
/** The pre-order address {@link subjectIndexOf} reads, so a failure names a node. */
|
|
192
|
+
path: string;
|
|
193
|
+
/** The slot the tree authored, spelled the way every renderer admitting the block spells it. */
|
|
194
|
+
slot: string;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Every node of `root` that names a placement.
|
|
198
|
+
*
|
|
199
|
+
* WHAT THIS IS FOR. A driver comparing only the authored classes IN ORDER cannot see a
|
|
200
|
+
* slot at all: a child placed in the wrong slot of the right parent keeps every authored
|
|
201
|
+
* node in every authored position. ADR 0051 § Amendment 3 measured exactly that on the
|
|
202
|
+
* NativeScript port — two deliberate mis-placements, both GREEN — and the corpus authored
|
|
203
|
+
* no slot to catch it with until one did. This is the renderer-free half of the answer;
|
|
204
|
+
* what a driver DOES with it is its own, because "the child ended up in slot X" has no
|
|
205
|
+
* shared observable.
|
|
206
|
+
*/
|
|
207
|
+
export declare function sharedTreePlacements(root: SharedTreeNode): SharedTreePlacement[];
|
|
208
|
+
/**
|
|
209
|
+
* The same tree with every placement dropped — what a renderer that never read `slot`
|
|
210
|
+
* builds.
|
|
211
|
+
*
|
|
212
|
+
* THE CONTROL, and it is why a placement assertion can be made without a per-widget table
|
|
213
|
+
* of where each slot lands. A driver builds the tree twice and asserts the two REALISED
|
|
214
|
+
* trees differ: with the slots honoured a suffix sits in its row's header, without them it
|
|
215
|
+
* sits wherever that parent's default placement puts it. Every builder here read only
|
|
216
|
+
* `tag`, `props` and `children`, so the two builds were byte-identical — which is the
|
|
217
|
+
* regression this control turns red.
|
|
218
|
+
*
|
|
219
|
+
* Fresh nodes all the way down, never the authored ones: a driver handed the corpus's own
|
|
220
|
+
* objects could edit what the next block builds.
|
|
221
|
+
*/
|
|
222
|
+
export declare function withoutPlacements(root: SharedTreeNode): SharedTreeNode;
|
|
73
223
|
/**
|
|
74
224
|
* Where the node an expectation is about sits in that filtered walk.
|
|
75
225
|
*
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/** One `hostTagOf` expectation — a class that resolves, or a name it must refuse. */
|
|
2
|
+
export interface HostTagVector {
|
|
3
|
+
/** A GIR class name, or a string that is deliberately not one. */
|
|
4
|
+
gtype: string;
|
|
5
|
+
/** The kebab tag `hostTagOf` must return. Absent for a row that must throw instead. */
|
|
6
|
+
expected?: string;
|
|
7
|
+
/** The exact `Error#message` `hostTagOf` must throw. Absent for a row that must resolve. */
|
|
8
|
+
error?: string;
|
|
9
|
+
rule: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* `hostTagOf` — GIR class name to kebab tag, and the refusal boundary.
|
|
13
|
+
*
|
|
14
|
+
* `AdwPreferencesGroup`/`AdwSwitchRow`/`GtkBox` pin the floor: one dash per word boundary,
|
|
15
|
+
* no acronym involved. `GtkGLArea`/`GtkATContext`/`GtkIMMulticontext` pin THE rule the floor
|
|
16
|
+
* cannot show — a run of two or more capitals closes at its LAST one, so `GL` stays one word
|
|
17
|
+
* and `Area` opens a new one, rather than `g-l-area`. `GtkPad2Btn` pins what a digit does:
|
|
18
|
+
* it is not an uppercase letter, so it ends a lower run exactly like a lowercase letter
|
|
19
|
+
* would, and the capital after it still opens a new word.
|
|
20
|
+
*/
|
|
21
|
+
export declare const HOST_TAG_VECTORS: ReadonlyArray<HostTagVector>;
|
|
22
|
+
/** One `attributeOf` expectation. */
|
|
23
|
+
export interface AttributeOfVector {
|
|
24
|
+
/** The authored property name, as an `AdwXyz`/`GtkXyz` prop is spelled in a `SharedTreeNode`. */
|
|
25
|
+
prop: string;
|
|
26
|
+
/** The attribute `attributeOf` must return. */
|
|
27
|
+
expected: string;
|
|
28
|
+
rule: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* `attributeOf` — camelCase property name to kebab DOM attribute.
|
|
32
|
+
*
|
|
33
|
+
* Every capital gets its own dash, with no acronym awareness — see the header for why that
|
|
34
|
+
* boundary is out of scope for this table.
|
|
35
|
+
*/
|
|
36
|
+
export declare const ATTRIBUTE_OF_VECTORS: ReadonlyArray<AttributeOfVector>;
|
|
37
|
+
/** One `propertyOf` expectation. */
|
|
38
|
+
export interface PropertyOfVector {
|
|
39
|
+
/** A property name as a projected `.blp` spells it, or as a hand-authored tree does. */
|
|
40
|
+
name: string;
|
|
41
|
+
/** The member `propertyOf` must return. */
|
|
42
|
+
expected: string;
|
|
43
|
+
rule: string;
|
|
44
|
+
}
|
|
45
|
+
/** `propertyOf` — a GIR property name to the camel-case member a NativeScript widget declares. */
|
|
46
|
+
export declare const PROPERTY_OF_VECTORS: ReadonlyArray<PropertyOfVector>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AdwResponseAppearance } from '../dialog.js';
|
|
2
|
+
/** One registered response, as the built dialog reports it. */
|
|
3
|
+
export interface ValueListResponse {
|
|
4
|
+
readonly id: string;
|
|
5
|
+
readonly label: string;
|
|
6
|
+
readonly appearance: AdwResponseAppearance;
|
|
7
|
+
readonly enabled: boolean;
|
|
8
|
+
}
|
|
9
|
+
/** One Blueprint source and what the widget it builds hands back. */
|
|
10
|
+
export interface ValueListVector {
|
|
11
|
+
readonly rule: string;
|
|
12
|
+
/** The object, written after `using Gtk 4.0; using Adw 1;`. */
|
|
13
|
+
readonly blueprint: string;
|
|
14
|
+
/** The labels of the root's list model, in order — a combo row or a drop-down. */
|
|
15
|
+
readonly strings?: readonly string[];
|
|
16
|
+
/** The root dialog's responses, in the order they were added. */
|
|
17
|
+
readonly responses?: readonly ValueListResponse[];
|
|
18
|
+
}
|
|
19
|
+
export declare const VALUE_LIST_VECTORS: readonly ValueListVector[];
|