@fusion.dev/helix-headless 0.23.0 → 0.24.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/custom-elements.json +48376 -26638
- package/dist/announcement/root/announcement-root.d.ts +19 -5
- package/dist/area-chart/index.d.ts +1 -0
- package/dist/area-chart/index.js +1 -0
- package/dist/area-chart/root/area-chart-root.d.ts +182 -0
- package/dist/area-chart/root/area-chart-root.js +205 -0
- package/dist/carousel/root/carousel-root.d.ts +1 -0
- package/dist/carousel/root/carousel-root.js +18 -2
- package/dist/chat/index.d.ts +1 -1
- package/dist/chat/message/chat-message.d.ts +7 -0
- package/dist/chat/message/chat-message.js +2 -1
- package/dist/chat/root/chat-root.d.ts +195 -4
- package/dist/chat/root/chat-root.js +316 -23
- package/dist/checkbox-group/root/checkbox-group-root.d.ts +2 -0
- package/dist/checkbox-group/root/checkbox-group-root.js +12 -2
- package/dist/code-block/index.d.ts +1 -0
- package/dist/code-block/index.js +1 -0
- package/dist/code-block/patch.d.ts +62 -0
- package/dist/code-block/patch.js +93 -0
- package/dist/code-block/root/code-block-root.d.ts +82 -17
- package/dist/code-block/root/code-block-root.js +83 -6
- package/dist/color-picker/root/color-picker-root.d.ts +4 -3
- package/dist/color-picker/root/color-picker-root.js +4 -1
- package/dist/data-table/root/data-table-root.d.ts +195 -23
- package/dist/data-table/root/data-table-root.js +308 -27
- package/dist/description-list/index.d.ts +2 -0
- package/dist/description-list/index.js +2 -0
- package/dist/description-list/item/description-list-item.d.ts +39 -0
- package/dist/description-list/item/description-list-item.js +26 -0
- package/dist/description-list/root/description-list-root.d.ts +56 -0
- package/dist/description-list/root/description-list-root.js +21 -0
- package/dist/element-events.generated.js +27 -6
- package/dist/filter-input/chip/filter-chip.d.ts +114 -0
- package/dist/filter-input/chip/filter-chip.js +61 -0
- package/dist/filter-input/field/filter-field.d.ts +128 -0
- package/dist/filter-input/field/filter-field.js +70 -0
- package/dist/filter-input/grammar.d.ts +96 -0
- package/dist/filter-input/grammar.js +133 -0
- package/dist/filter-input/index.d.ts +5 -0
- package/dist/filter-input/index.js +5 -0
- package/dist/filter-input/menu/filter-menu.d.ts +153 -0
- package/dist/filter-input/menu/filter-menu.js +164 -0
- package/dist/filter-input/operator/filter-operator.d.ts +105 -0
- package/dist/filter-input/operator/filter-operator.js +39 -0
- package/dist/filter-input/root/filter-input-root.d.ts +118 -9
- package/dist/filter-input/root/filter-input-root.js +96 -2
- package/dist/format-date/root/format-date-root.js +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/line-chart/root/line-chart-root.d.ts +9 -2
- package/dist/listbox/root/listbox-root.d.ts +8 -7
- package/dist/listbox/root/listbox-root.js +7 -2
- package/dist/menu/item/menu-item.d.ts +31 -6
- package/dist/menu/item/menu-item.js +18 -5
- package/dist/menu/root/menu-root.js +7 -2
- package/dist/notifications/group/notification-group.d.ts +129 -0
- package/dist/notifications/group/notification-group.js +106 -0
- package/dist/notifications/index.d.ts +1 -0
- package/dist/notifications/index.js +1 -0
- package/dist/notifications/notification/notification.d.ts +39 -13
- package/dist/notifications/notification/notification.js +11 -8
- package/dist/notifications/root/notifications-root.d.ts +57 -1
- package/dist/notifications/root/notifications-root.js +35 -4
- package/dist/number-input/root/number-input-root.d.ts +21 -1
- package/dist/number-input/root/number-input-root.js +18 -5
- package/dist/object-inspector/index.d.ts +1 -0
- package/dist/object-inspector/index.js +1 -0
- package/dist/object-inspector/root/object-inspector-root.d.ts +183 -0
- package/dist/object-inspector/root/object-inspector-root.js +348 -0
- package/dist/outline/root/outline-root.d.ts +16 -1
- package/dist/outline/root/outline-root.js +27 -9
- package/dist/radio/group/radio-group.d.ts +1 -0
- package/dist/scatter-chart/index.d.ts +1 -0
- package/dist/scatter-chart/index.js +1 -0
- package/dist/scatter-chart/root/scatter-chart-root.d.ts +144 -0
- package/dist/scatter-chart/root/scatter-chart-root.js +205 -0
- package/dist/skip-link/index.d.ts +1 -0
- package/dist/skip-link/index.js +1 -0
- package/dist/skip-link/root/skip-link-root.d.ts +81 -0
- package/dist/skip-link/root/skip-link-root.js +58 -0
- package/dist/speed-dial/root/speed-dial-root.d.ts +1 -0
- package/dist/speed-dial/root/speed-dial-root.js +6 -2
- package/dist/steps/root/steps-root.d.ts +1 -0
- package/dist/table/column/table-column.d.ts +79 -0
- package/dist/table/column/table-column.js +125 -5
- package/dist/table/root/table-root.d.ts +2 -0
- package/dist/table/root/table-root.js +12 -3
- package/dist/time-picker/root/time-picker-root.d.ts +9 -0
- package/dist/time-picker/root/time-picker-root.js +5 -0
- package/dist/toast/root/toast-root.d.ts +2 -0
- package/dist/tooltip/root/tooltip-root.js +1 -1
- package/dist/tour/root/tour-root.d.ts +1 -0
- package/dist/tree/item/tree-item.d.ts +7 -4
- package/dist/tree/item/tree-item.js +4 -1
- package/dist/video/root/video-root.d.ts +23 -1
- package/dist/video/root/video-root.js +42 -22
- package/dist/virtual-list/root/virtual-list-root.d.ts +10 -6
- package/dist/virtual-list/root/virtual-list-root.js +10 -4
- package/package.json +5 -5
- package/types/jsx.d.ts +4535 -346
- package/types/svelte.d.ts +11 -0
- package/types/vue.d.ts +737 -39
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { HelixElement } from '@fusion.dev/helix-core';
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
|
-
import type
|
|
3
|
+
import { type HelixHeadlessChatMessage } from '../message/chat-message.js';
|
|
4
|
+
/** One turn handed over as data, which is what `turns` holds. */
|
|
5
|
+
export interface ChatTurn {
|
|
6
|
+
/** When it was said, as anything `Date` parses. */
|
|
7
|
+
at?: string;
|
|
8
|
+
/** Who said it: `me`, `them`, or a name the consumer styles. */
|
|
9
|
+
author?: string;
|
|
10
|
+
/**
|
|
11
|
+
* What identifies it across changes to the set.
|
|
12
|
+
*
|
|
13
|
+
* Without one a turn is known by the object it is, which holds while the
|
|
14
|
+
* consumer keeps its objects and fails the moment it maps a fresh set from a
|
|
15
|
+
* response: history then loads under the reader rather than above them.
|
|
16
|
+
*/
|
|
17
|
+
key?: string;
|
|
18
|
+
/** What has happened to it, as on `helix-chat-message`. */
|
|
19
|
+
state?: 'failed' | 'sending' | 'sent' | 'streaming';
|
|
20
|
+
/** What was said, as text. */
|
|
21
|
+
text: string;
|
|
22
|
+
}
|
|
4
23
|
declare const HelixHeadlessChat_base: (new (...args: any[]) => import("@fusion.dev/helix-core").CollectionElement) & typeof HelixElement;
|
|
5
24
|
/**
|
|
6
25
|
* @summary A conversation: the turns, and where the reader is in them.
|
|
@@ -16,7 +35,29 @@ declare const HelixHeadlessChat_base: (new (...args: any[]) => import("@fusion.d
|
|
|
16
35
|
* **Scroll ownership is the behavior everything else depends on.** A transcript
|
|
17
36
|
* that grows wants to stay at the bottom, except when the reader has scrolled
|
|
18
37
|
* up to read, where pinning is hostile. The rule: pin while the reader is
|
|
19
|
-
* within `threshold` of the bottom, and let go the moment they leave it.
|
|
38
|
+
* within `threshold` of the bottom, and let go the moment they leave it. A turn
|
|
39
|
+
* growing under a pinned reader is not the reader leaving, so a streamed answer
|
|
40
|
+
* is followed to its last line.
|
|
41
|
+
*
|
|
42
|
+
* **History loads upward, under a reader who does not move.** With `history`
|
|
43
|
+
* set to `more`, reaching the top fires `helix-history`; the consumer sets
|
|
44
|
+
* `loading` while it fetches and prepends the older turns, and the turn the
|
|
45
|
+
* reader was looking at stays where it was on screen while the room above it
|
|
46
|
+
* grows.
|
|
47
|
+
*
|
|
48
|
+
* **A turn is announced once, when it settles**, and not by the log. A log
|
|
49
|
+
* that is a live region reads what enters it, which is every token of a stream
|
|
50
|
+
* where `aria-busy` is not honored, every page of history as it loads, and
|
|
51
|
+
* every window of a long transcript as the reader scrolls through it. So the
|
|
52
|
+
* log is `aria-live="off"`, and a status region of its own says each new turn
|
|
53
|
+
* when it has finished arriving: never the reader's own words unless they
|
|
54
|
+
* failed to send, never a turn loaded above the ones already there, and never
|
|
55
|
+
* what was in the transcript when it opened.
|
|
56
|
+
*
|
|
57
|
+
* **Turns are markup children or data, not both.** Children serve whole from a
|
|
58
|
+
* server and are what most conversations want. `turns` is for the transcript
|
|
59
|
+
* too long to hold as elements: it is drawn a window at a time, measured as it
|
|
60
|
+
* goes, and the log needs a block size of its own for that to mean anything.
|
|
20
61
|
*
|
|
21
62
|
* @since 0.1.0
|
|
22
63
|
* @status experimental
|
|
@@ -32,15 +73,22 @@ declare const HelixHeadlessChat_base: (new (...args: any[]) => import("@fusion.d
|
|
|
32
73
|
* @slot status - Beside the composer: somebody typing, connection lost.
|
|
33
74
|
*
|
|
34
75
|
* @event {HelixBeforePinEvent} helix-before-pin - Fired when the reader pins or unpins the transcript by scrolling. Cancelable.
|
|
76
|
+
* @event {HelixHistoryEvent} helix-history - Fired when the reader reaches the oldest turn while `history` is `more`, reporting where they are rather than asking.
|
|
77
|
+
* @event {HelixSendEvent} helix-send - A turn offered from the composer, or a failed one asked to go again, dispatched inside and heard here because the conversation is what a consumer holds. Cancelable: refusing it takes the decision and nothing is sent.
|
|
35
78
|
*
|
|
36
79
|
* @csspart actions - The controls for the conversation, at the header's trailing edge.
|
|
80
|
+
* @csspart after - The room the turns below the window would take. Data only.
|
|
81
|
+
* @csspart before - The room the turns above the window would take. Data only.
|
|
37
82
|
* @csspart composer - The region the composer sits in.
|
|
38
83
|
* @csspart empty - Shown when the conversation has no turns.
|
|
39
84
|
* @csspart header - The region above the transcript.
|
|
85
|
+
* @csspart history - Shown at the top of the transcript while older turns are on their way.
|
|
86
|
+
* @csspart live - Where each settled turn is said, for a reader who cannot see it arrive.
|
|
40
87
|
* @csspart loading - Shown while the history is still on its way.
|
|
41
88
|
* @csspart log - The transcript, which is the thing that scrolls.
|
|
42
89
|
* @csspart resume - The affordance offered while the reader is away from the bottom.
|
|
43
90
|
* @csspart status - The status region, which is not part of the log.
|
|
91
|
+
* @csspart turn - One turn fed as data, around the message drawn for it.
|
|
44
92
|
*/
|
|
45
93
|
export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
46
94
|
/**
|
|
@@ -53,10 +101,25 @@ export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
|
53
101
|
* patch up.
|
|
54
102
|
*/
|
|
55
103
|
static shadowRootOptions: ShadowRootInit;
|
|
104
|
+
/** How tall a turn is assumed to be before it has been drawn, in pixels. */
|
|
105
|
+
static readonly ESTIMATE = 72;
|
|
56
106
|
/**
|
|
57
107
|
* Whether to open pinned, where nothing declared it.
|
|
58
108
|
*/
|
|
59
109
|
defaultPinned: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* Whether there are older turns than the ones here, and whether they are coming.
|
|
112
|
+
*
|
|
113
|
+
* `more` makes reaching the top fire `helix-history`, once per arrival;
|
|
114
|
+
* `loading` draws `history-text` above the oldest turn and fires nothing; empty
|
|
115
|
+
* says this is the start of the conversation. The consumer owns it, because
|
|
116
|
+
* only the consumer knows whether the server has anything older.
|
|
117
|
+
*/
|
|
118
|
+
history: '' | 'loading' | 'more';
|
|
119
|
+
/**
|
|
120
|
+
* What to say while older turns are on their way.
|
|
121
|
+
*/
|
|
122
|
+
historyText: string;
|
|
60
123
|
/**
|
|
61
124
|
* Accessible name for the conversation.
|
|
62
125
|
*/
|
|
@@ -87,12 +150,48 @@ export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
|
87
150
|
* A hook rather than a constant, because the right number depends on how tall
|
|
88
151
|
* a turn is: a transcript of one-line replies wants a smaller threshold than
|
|
89
152
|
* one of paragraphs, and a reader who has scrolled up by half a message has
|
|
90
|
-
* not left.
|
|
153
|
+
* not left. The same distance from the top is what counts as reaching the
|
|
154
|
+
* history.
|
|
91
155
|
*/
|
|
92
156
|
threshold: number;
|
|
157
|
+
/**
|
|
158
|
+
* The turns as data, for a transcript too long to hold as elements.
|
|
159
|
+
*
|
|
160
|
+
* Drawn a window at a time, so the log needs a block size. Set it or declare
|
|
161
|
+
* children, not both: while it holds anything the children are not drawn.
|
|
162
|
+
*
|
|
163
|
+
* **Read, never written**, and replaced rather than mutated: a streamed turn
|
|
164
|
+
* is a new array with the last turn's text longer, which is what tells this
|
|
165
|
+
* element to look again.
|
|
166
|
+
*/
|
|
167
|
+
turns: readonly ChatTurn[];
|
|
93
168
|
private pinnedState;
|
|
169
|
+
/** The last thing said, and how many times something has been. */
|
|
170
|
+
private announcement;
|
|
171
|
+
private said;
|
|
94
172
|
/** Watches for turns arriving, since a manual slot hears nothing about them. */
|
|
95
173
|
private watcher;
|
|
174
|
+
/** Watches the turns' own `state`, which is when one of them settles. */
|
|
175
|
+
private settling;
|
|
176
|
+
/** Watches the turns and the log for size, which scrolling does not report. */
|
|
177
|
+
private grower;
|
|
178
|
+
/** What `grower` is watching, so a render that changed nothing re-observes nothing. */
|
|
179
|
+
private watched;
|
|
180
|
+
/** The scroll offset this element last set, which the reader has not moved from. */
|
|
181
|
+
private stuckAt;
|
|
182
|
+
/** The turn at the top of the reader's view, and how far below the top it sat. */
|
|
183
|
+
private anchor;
|
|
184
|
+
/** Whether `helix-history` has been fired for this arrival at the top. */
|
|
185
|
+
private asked;
|
|
186
|
+
/**
|
|
187
|
+
* Until the first frame, what is in the transcript is what it opened with, and
|
|
188
|
+
* its box is not yet the box it will have.
|
|
189
|
+
*/
|
|
190
|
+
private opening;
|
|
191
|
+
/** The newest turn already accounted for, and the turns still arriving. */
|
|
192
|
+
private newest;
|
|
193
|
+
private pending;
|
|
194
|
+
private readonly virtualize;
|
|
96
195
|
/**
|
|
97
196
|
* Which regions were given something, or undefined where nobody has counted.
|
|
98
197
|
*
|
|
@@ -107,19 +206,34 @@ export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
|
107
206
|
*
|
|
108
207
|
* Undefined rather than empty on the way in, for `MixinCollection`'s reason:
|
|
109
208
|
* the server has no children to count, and an unknown answer is not "empty".
|
|
110
|
-
* It serves every region and the first
|
|
209
|
+
* It serves every region and the first update on the client settles them,
|
|
111
210
|
* which is a shadow-root attribute rather than a host one and so is nothing a
|
|
112
211
|
* consumer's hydration compares.
|
|
113
212
|
*/
|
|
114
213
|
private filled;
|
|
115
214
|
/** Whether a region has something in it, taking unknown for yes. */
|
|
116
215
|
private has;
|
|
216
|
+
/** Whether the turns are data rather than children. */
|
|
217
|
+
private get fed();
|
|
117
218
|
/** The turns declared as children, in the order they are written. */
|
|
118
219
|
get messages(): HelixHeadlessChatMessage[];
|
|
119
220
|
/** The element that scrolls, once there is one. */
|
|
120
221
|
private get log();
|
|
121
222
|
/** Whether the reader is within `threshold` of the bottom right now. */
|
|
122
223
|
private get atBottom();
|
|
224
|
+
/** What identifies a turn fed as data: its key, or the object it is. */
|
|
225
|
+
private identity;
|
|
226
|
+
/**
|
|
227
|
+
* The turns fed as data that are drawn, each with its place in the whole set.
|
|
228
|
+
*
|
|
229
|
+
* Read off `data-index` rather than counted, for the reason the table gives:
|
|
230
|
+
* the controller asks before `updated`, while the previous window is drawn.
|
|
231
|
+
*/
|
|
232
|
+
private drawn;
|
|
233
|
+
/** The turns on screen, in order, each with what identifies it. */
|
|
234
|
+
private rendered;
|
|
235
|
+
/** Every turn as the announcer reads it. */
|
|
236
|
+
private heard;
|
|
123
237
|
/**
|
|
124
238
|
* Puts the transcript back at its most recent turn.
|
|
125
239
|
*
|
|
@@ -128,6 +242,8 @@ export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
|
128
242
|
* a reader asking to go to the bottom means.
|
|
129
243
|
*/
|
|
130
244
|
resume(): void;
|
|
245
|
+
/** Scrolls to the bottom, and remembers where that was. */
|
|
246
|
+
private stick;
|
|
131
247
|
/**
|
|
132
248
|
* Asks to pin or unpin, and reports whether the request stood.
|
|
133
249
|
*
|
|
@@ -138,6 +254,64 @@ export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
|
138
254
|
*/
|
|
139
255
|
private requestPinned;
|
|
140
256
|
private assign;
|
|
257
|
+
/** The children a region is assigned, by the `slot` each one names. */
|
|
258
|
+
private given;
|
|
259
|
+
/**
|
|
260
|
+
* Notes which regions were given something, before the render that hides the
|
|
261
|
+
* rest.
|
|
262
|
+
*
|
|
263
|
+
* From the children rather than the slots, so the first render has the
|
|
264
|
+
* answer: the slots exist only once a render has made them. Not on the
|
|
265
|
+
* server, where `children` is undefined, so `filled` stays unknown there, and
|
|
266
|
+
* not while hydrating what a server sent, which renders the same unknown.
|
|
267
|
+
*/
|
|
268
|
+
private countRegions;
|
|
269
|
+
/**
|
|
270
|
+
* Notes which turn is at the top of the reader's view, and where.
|
|
271
|
+
*
|
|
272
|
+
* A binary search, because the turns are in order down the log: a transcript
|
|
273
|
+
* of five hundred scrolled to its end costs nine measurements, not five
|
|
274
|
+
* hundred, and this runs on every scroll.
|
|
275
|
+
*/
|
|
276
|
+
private remember;
|
|
277
|
+
/**
|
|
278
|
+
* Puts the turn the reader was looking at back where they saw it.
|
|
279
|
+
*
|
|
280
|
+
* **By the turn, not by the offset.** History arriving above adds room the
|
|
281
|
+
* reader never scrolled through, so the offset they were at is now an older
|
|
282
|
+
* turn; what they were reading is the one fixed point. It is also idempotent,
|
|
283
|
+
* which is what lets it run beside the browser's own scroll anchoring where
|
|
284
|
+
* there is some: a turn the browser already put back has not moved.
|
|
285
|
+
*/
|
|
286
|
+
private restore;
|
|
287
|
+
/** Fires `helix-history` once for each time the reader reaches the top. */
|
|
288
|
+
private reachHistory;
|
|
289
|
+
/**
|
|
290
|
+
* Says the turns that have settled since the last time it looked.
|
|
291
|
+
*
|
|
292
|
+
* **New means after the newest turn already accounted for.** Turns loaded
|
|
293
|
+
* above it are history and are not said; if the newest turn is gone, the set
|
|
294
|
+
* was replaced rather than added to, and nothing is said either. A single turn
|
|
295
|
+
* arriving in an empty transcript is a conversation starting and is said;
|
|
296
|
+
* several at once is a transcript loading and is not.
|
|
297
|
+
*
|
|
298
|
+
* A turn still `sending` or `streaming` waits, and is said when it settles.
|
|
299
|
+
*/
|
|
300
|
+
private announce;
|
|
301
|
+
/** The turns after the newest one already accounted for, by the rules above. */
|
|
302
|
+
private arrived;
|
|
303
|
+
private phrase;
|
|
304
|
+
/** Watches what is drawn for size, re-observing only when that changed. */
|
|
305
|
+
private watchSizes;
|
|
306
|
+
/**
|
|
307
|
+
* A turn or the log changed size, which moves nothing on its own.
|
|
308
|
+
*
|
|
309
|
+
* Pinned, the bottom is followed: this is a streamed answer growing a line at
|
|
310
|
+
* a time, and it is the only notice of it, since growing content fires no
|
|
311
|
+
* scroll. Unpinned, the reader's turn is put back, which is an image loading
|
|
312
|
+
* above them in a browser without scroll anchoring.
|
|
313
|
+
*/
|
|
314
|
+
private readonly handleResize;
|
|
141
315
|
/**
|
|
142
316
|
* A press anywhere in the way back takes the reader back.
|
|
143
317
|
*
|
|
@@ -152,8 +326,18 @@ export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
|
152
326
|
connectedCallback(): void;
|
|
153
327
|
disconnectedCallback(): void;
|
|
154
328
|
protected willUpdate(changed: PropertyValues): void;
|
|
329
|
+
/**
|
|
330
|
+
* Keeps the window on the same turns when the set changes around them.
|
|
331
|
+
*
|
|
332
|
+
* Turns added before the first one are history, and the controller is told
|
|
333
|
+
* how many so every measurement moves with its turn. A first turn that is gone
|
|
334
|
+
* means the set was trimmed or replaced, and a measurement that now names a
|
|
335
|
+
* different turn is worse than the estimate.
|
|
336
|
+
*/
|
|
337
|
+
private follow;
|
|
155
338
|
protected updated(changed: PropertyValues): void;
|
|
156
339
|
private readonly handleSlotChange;
|
|
340
|
+
private readonly handleSettle;
|
|
157
341
|
/**
|
|
158
342
|
* The reader's own scrolling, which is the only thing that unpins.
|
|
159
343
|
*
|
|
@@ -172,8 +356,15 @@ export declare class HelixHeadlessChat extends HelixHeadlessChat_base {
|
|
|
172
356
|
* wheel does. Reading the position rather than counting events is what makes
|
|
173
357
|
* that harmless, since after a programmatic scroll the position is the bottom
|
|
174
358
|
* and the answer is the one that was already true.
|
|
359
|
+
*
|
|
360
|
+
* **Nor does the transcript growing under a reader who has not moved.** A
|
|
361
|
+
* pinned reader who is suddenly far from the bottom while still at the offset
|
|
362
|
+
* this element put them at has been left behind by a turn, not gone anywhere,
|
|
363
|
+
* and is followed. Leaving is moving up from there.
|
|
175
364
|
*/
|
|
176
365
|
private readonly handleScroll;
|
|
366
|
+
/** The turns fed as data, a window of them, between the room the rest would take. */
|
|
367
|
+
private renderTurns;
|
|
177
368
|
protected render(): TemplateResult;
|
|
178
369
|
}
|
|
179
370
|
declare global {
|