@fusion.dev/helix-core 0.215.2 → 0.216.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 +1 -1
- package/dist/controllers/listed-controller/listed-controller.d.ts +20 -0
- package/dist/controllers/listed-controller/listed-controller.js +19 -0
- package/dist/controllers/virtualize-controller/virtualize-controller.d.ts +9 -2
- package/dist/controllers/virtualize-controller/virtualize-controller.js +11 -3
- package/dist/controllers/virtualize-controller/waterfall.d.ts +5 -0
- package/dist/controllers/virtualize-controller/waterfall.js +3 -0
- package/dist/events/before-listen.d.ts +5 -0
- package/dist/events/before-listen.js +10 -0
- package/dist/events/details.d.ts +5 -0
- package/dist/events/events.d.ts +6 -2
- package/dist/events/events.js +5 -1
- package/dist/events/listen.d.ts +11 -0
- package/dist/events/listen.js +10 -0
- package/dist/events/names.js +2 -2
- package/dist/helix-element/helix-element.js +2 -0
- package/dist/helix-element/mark-rules.d.ts +25 -0
- package/dist/helix-element/mark-rules.js +7 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.js +8 -2
- package/dist/mixins/mixin-chart-source/mixin-chart-source.d.ts +22 -0
- package/dist/mixins/mixin-chart-source/mixin-chart-source.js +143 -0
- package/dist/mixins/mixin-voice/mixin-voice.d.ts +40 -0
- package/dist/mixins/mixin-voice/mixin-voice.js +198 -0
- package/dist/utils/controls/controls.d.ts +64 -0
- package/dist/utils/controls/controls.js +136 -0
- package/dist/utils/report-runtime/report-runtime.d.ts +2 -0
- package/dist/utils/sonify/sonify.d.ts +62 -0
- package/dist/utils/sonify/sonify.js +130 -0
- package/dist/utils/speech/speech.d.ts +51 -0
- package/dist/utils/speech/speech.js +118 -0
- package/dist/utils/state/state.d.ts +79 -0
- package/dist/utils/state/state.js +165 -0
- package/dist/utils/ticker/ticker.d.ts +1 -6
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactiveController, ReactiveControllerHost } from 'lit';
|
|
2
|
+
import { type ControlKind } from '../../utils/controls/controls.js';
|
|
3
|
+
/**
|
|
4
|
+
* Puts a control on the page's list of controls while it is connected, which
|
|
5
|
+
* is where a command palette finds it by its name and a shortcut overlay finds
|
|
6
|
+
* its keys.
|
|
7
|
+
*
|
|
8
|
+
* Joins in `hostConnected`, which a server never calls, so a server render
|
|
9
|
+
* lists nothing. `unlisted` on the control or around it leaves it off the list
|
|
10
|
+
* without taking it out of the registry, so the attribute can be set and
|
|
11
|
+
* cleared at any time.
|
|
12
|
+
*/
|
|
13
|
+
export declare class ListedController implements ReactiveController {
|
|
14
|
+
private readonly host;
|
|
15
|
+
private readonly kind;
|
|
16
|
+
private readonly keys?;
|
|
17
|
+
constructor(host: ReactiveControllerHost & HTMLElement, kind: ControlKind | (() => ControlKind), keys?: (() => string | null | undefined) | undefined);
|
|
18
|
+
hostConnected(): void;
|
|
19
|
+
hostDisconnected(): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { registerControl, unregisterControl, } from '../../utils/controls/controls.js';
|
|
2
|
+
export class ListedController {
|
|
3
|
+
constructor(host, kind, keys) {
|
|
4
|
+
this.host = host;
|
|
5
|
+
this.kind = kind;
|
|
6
|
+
this.keys = keys;
|
|
7
|
+
host.addController(this);
|
|
8
|
+
}
|
|
9
|
+
hostConnected() {
|
|
10
|
+
registerControl({
|
|
11
|
+
element: this.host,
|
|
12
|
+
keys: this.keys,
|
|
13
|
+
kind: typeof this.kind === 'function' ? this.kind() : this.kind,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
hostDisconnected() {
|
|
17
|
+
unregisterControl(this.host);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -264,6 +264,11 @@ export declare class VirtualizeController implements ReactiveController {
|
|
|
264
264
|
* last move is out of date.
|
|
265
265
|
*/
|
|
266
266
|
scrolling(): boolean;
|
|
267
|
+
/**
|
|
268
|
+
* Whether a slotted row must stay assigned: the box is moving under a
|
|
269
|
+
* touch. Adding or taking a slotted row ends the touch on iOS.
|
|
270
|
+
*/
|
|
271
|
+
holdsSlot(): boolean;
|
|
267
272
|
/**
|
|
268
273
|
* Takes the offset as the box's own where the box moved it up only because
|
|
269
274
|
* the set below it got shorter, which the browser does to keep the offset
|
|
@@ -324,8 +329,10 @@ export declare class VirtualizeController implements ReactiveController {
|
|
|
324
329
|
* Whether the rows already drawn are kept for now: the screen is touched, the
|
|
325
330
|
* box is moving, and the rows drawn cover all of it.
|
|
326
331
|
*
|
|
327
|
-
*
|
|
328
|
-
* the
|
|
332
|
+
* A waterfall uses the same hold. Coverage is how far the drawn items reach
|
|
333
|
+
* down the set, the furthest of their ends, because an item yet to be drawn
|
|
334
|
+
* can start in a short column above the bottom of a tall one. Adding or
|
|
335
|
+
* taking a slotted row is what ends the touch.
|
|
329
336
|
*/
|
|
330
337
|
private holds;
|
|
331
338
|
/** The window with the rows `first` to `last`, and the spacers that stand in for the rest. */
|
|
@@ -132,6 +132,9 @@ export class VirtualizeController {
|
|
|
132
132
|
scrolling() {
|
|
133
133
|
return this.touching || this.resting !== undefined || this.scrolledNow() !== this.lastTop;
|
|
134
134
|
}
|
|
135
|
+
holdsSlot() {
|
|
136
|
+
return this.touched && this.scrolling();
|
|
137
|
+
}
|
|
135
138
|
noteClamp(box) {
|
|
136
139
|
const was = this.lastTop;
|
|
137
140
|
if (!this.touching &&
|
|
@@ -208,19 +211,24 @@ export class VirtualizeController {
|
|
|
208
211
|
this.host.requestUpdate();
|
|
209
212
|
}
|
|
210
213
|
holds(box, total) {
|
|
211
|
-
if (!this.touched || !this.scrolling()
|
|
214
|
+
if (!this.touched || !this.scrolling()) {
|
|
212
215
|
return false;
|
|
213
216
|
}
|
|
214
217
|
const { first, last, before } = this.window;
|
|
215
218
|
if (last <= first || last > total) {
|
|
216
219
|
return false;
|
|
217
220
|
}
|
|
221
|
+
const top = this.scrolled(box);
|
|
222
|
+
const bottom = top + this.span(box);
|
|
223
|
+
const lanes = this.laned(total);
|
|
224
|
+
if (lanes) {
|
|
225
|
+
return top >= this.startOf(first, total) && bottom <= lanes.reachThrough(last - 1);
|
|
226
|
+
}
|
|
218
227
|
const size = this.line();
|
|
219
228
|
const drawn = this.measuring()
|
|
220
229
|
? this.startOf(last, total) - this.startOf(first, total)
|
|
221
230
|
: (last - first) * size;
|
|
222
|
-
|
|
223
|
-
return top >= before && top + this.span(box) <= before + drawn;
|
|
231
|
+
return top >= before && bottom <= before + drawn;
|
|
224
232
|
}
|
|
225
233
|
frame(first, last, total, size) {
|
|
226
234
|
return this.measuring()
|
|
@@ -43,6 +43,11 @@ export declare class Waterfall {
|
|
|
43
43
|
lane(index: number): number;
|
|
44
44
|
/** How long the set is, where its longest column ends. */
|
|
45
45
|
length(): number;
|
|
46
|
+
/**
|
|
47
|
+
* How far down the set the items from the start through `index` reach: the
|
|
48
|
+
* furthest of their ends, which is the bottom of the columns they occupy.
|
|
49
|
+
*/
|
|
50
|
+
reachThrough(index: number): number;
|
|
46
51
|
/** The first item that reaches past `offset`, or the count where none does. */
|
|
47
52
|
from(offset: number): number;
|
|
48
53
|
/** The first item that starts at or past `offset`, so every item before it starts above. */
|
package/dist/events/details.d.ts
CHANGED
|
@@ -666,6 +666,11 @@ export interface CompleteDetail {
|
|
|
666
666
|
/** What the control now holds, in full. */
|
|
667
667
|
value: string;
|
|
668
668
|
}
|
|
669
|
+
/** Detail carried by `helix-listen`. */
|
|
670
|
+
export interface ListenDetail {
|
|
671
|
+
/** The phrase the field settled on, as it went into the value. */
|
|
672
|
+
text: string;
|
|
673
|
+
}
|
|
669
674
|
/** What a shortcut reports when its chord is pressed. */
|
|
670
675
|
export interface ShortcutDetail {
|
|
671
676
|
/**
|
package/dist/events/events.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ import { HelixBeforeChangeEvent } from './before-change.js';
|
|
|
37
37
|
import { HelixBeforeCloseEvent } from './before-close.js';
|
|
38
38
|
import { HelixBeforeCollapseEvent } from './before-collapse.js';
|
|
39
39
|
import { HelixBeforeEditEvent } from './before-edit.js';
|
|
40
|
+
import { HelixBeforeListenEvent } from './before-listen.js';
|
|
40
41
|
import { HelixBeforeMoveEvent } from './before-move.js';
|
|
41
42
|
import { HelixBeforeOpenEvent } from './before-open.js';
|
|
42
43
|
import { HelixBeforePanelResizeEvent } from './before-panel-resize.js';
|
|
@@ -84,6 +85,7 @@ import { HelixGraphReadyEvent } from './graph-ready.js';
|
|
|
84
85
|
import { HelixGraphSignalEvent } from './graph-signal.js';
|
|
85
86
|
import { HelixGraphZoomEvent } from './graph-zoom.js';
|
|
86
87
|
import { HelixHistoryEvent } from './history.js';
|
|
88
|
+
import { HelixListenEvent } from './listen.js';
|
|
87
89
|
import { HelixLoadEvent } from './load.js';
|
|
88
90
|
import { HelixLoadMoreEvent } from './load-more.js';
|
|
89
91
|
import { HelixMapClusterEvent } from './map-cluster.js';
|
|
@@ -137,9 +139,9 @@ import { HelixToggleEvent } from './toggle.js';
|
|
|
137
139
|
import { HelixTourAskEvent } from './tour-ask.js';
|
|
138
140
|
import { HelixTourStatusEvent } from './tour-status.js';
|
|
139
141
|
import { HelixTypingEvent } from './typing.js';
|
|
140
|
-
export type { ActivateDetail, AuraFallbackDetail, BandDetail, CanvasView, CaretDetail, ChangeDetail, CompleteDetail, ConnectDetail, ConsoleDetail, CopyDetail, CreateDetail, DeviceButton, DeviceButtonDetail, DeviceKeyDetail, DeviceScrollDetail, DeviceSwipeDetail, DeviceTapDetail, DeviceTextDetail, DeviceTouchDetail, DismissDetail, FacetDetail, FilterDetail, GraphFilterDetail, GraphLayoutDetail, GraphPartChangeDetail, GraphSignalDetail, MapClusterDetail, MapPanDetail, MapPartChangeDetail, MapRotateDetail, MapTiltDetail, MapZoomDetail, MoveDetail, NavigateDetail, OpenDetail, PasteDetail, PlotChangeDetail, PlotTurnDetail, PressDetail, PressPointerType, RangeDetail, ReadDetail, ReadingDetail, ReconnectDetail, Refusal, RefusedFile, RejectDetail, RelabelDetail, RemoveDetail, ReorderDetail, ResizeDetail, ScrolledDetail, SelectDetail, SendDetail, ShortcutDetail, SkipDetail, SortDetail, StrandsFallbackDetail, TerminalInputDetail, TerminalLinkDetail, TerminalResizeDetail, TerminalTitleDetail, ToggleDetail, TourAskDetail, TourStatusDetail, TypingDetail, ViewportPanDetail, ViewportZoomDetail, } from './details.js';
|
|
142
|
+
export type { ActivateDetail, AuraFallbackDetail, BandDetail, CanvasView, CaretDetail, ChangeDetail, CompleteDetail, ConnectDetail, ConsoleDetail, CopyDetail, CreateDetail, DeviceButton, DeviceButtonDetail, DeviceKeyDetail, DeviceScrollDetail, DeviceSwipeDetail, DeviceTapDetail, DeviceTextDetail, DeviceTouchDetail, DismissDetail, FacetDetail, FilterDetail, GraphFilterDetail, GraphLayoutDetail, GraphPartChangeDetail, GraphSignalDetail, ListenDetail, MapClusterDetail, MapPanDetail, MapPartChangeDetail, MapRotateDetail, MapTiltDetail, MapZoomDetail, MoveDetail, NavigateDetail, OpenDetail, PasteDetail, PlotChangeDetail, PlotTurnDetail, PressDetail, PressPointerType, RangeDetail, ReadDetail, ReadingDetail, ReconnectDetail, Refusal, RefusedFile, RejectDetail, RelabelDetail, RemoveDetail, ReorderDetail, ResizeDetail, ScrolledDetail, SelectDetail, SendDetail, ShortcutDetail, SkipDetail, SortDetail, StrandsFallbackDetail, TerminalInputDetail, TerminalLinkDetail, TerminalResizeDetail, TerminalTitleDetail, ToggleDetail, TourAskDetail, TourStatusDetail, TypingDetail, ViewportPanDetail, ViewportZoomDetail, } from './details.js';
|
|
141
143
|
export { helixEventNames } from './names.js';
|
|
142
|
-
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, };
|
|
144
|
+
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, };
|
|
143
145
|
/**
|
|
144
146
|
* Every event class, and the one place a new one is registered: a class in a
|
|
145
147
|
* module of its own, imported above, and named here and in `names.ts`.
|
|
@@ -162,6 +164,7 @@ declare const registry: {
|
|
|
162
164
|
readonly HelixBeforeCloseEvent: typeof HelixBeforeCloseEvent;
|
|
163
165
|
readonly HelixBeforeCollapseEvent: typeof HelixBeforeCollapseEvent;
|
|
164
166
|
readonly HelixBeforeEditEvent: typeof HelixBeforeEditEvent;
|
|
167
|
+
readonly HelixBeforeListenEvent: typeof HelixBeforeListenEvent;
|
|
165
168
|
readonly HelixBeforeMoveEvent: typeof HelixBeforeMoveEvent;
|
|
166
169
|
readonly HelixBeforeOpenEvent: typeof HelixBeforeOpenEvent;
|
|
167
170
|
readonly HelixBeforePanelResizeEvent: typeof HelixBeforePanelResizeEvent;
|
|
@@ -209,6 +212,7 @@ declare const registry: {
|
|
|
209
212
|
readonly HelixGraphSignalEvent: typeof HelixGraphSignalEvent;
|
|
210
213
|
readonly HelixGraphZoomEvent: typeof HelixGraphZoomEvent;
|
|
211
214
|
readonly HelixHistoryEvent: typeof HelixHistoryEvent;
|
|
215
|
+
readonly HelixListenEvent: typeof HelixListenEvent;
|
|
212
216
|
readonly HelixLoadEvent: typeof HelixLoadEvent;
|
|
213
217
|
readonly HelixLoadMoreEvent: typeof HelixLoadMoreEvent;
|
|
214
218
|
readonly HelixMapClusterEvent: typeof HelixMapClusterEvent;
|
package/dist/events/events.js
CHANGED
|
@@ -7,6 +7,7 @@ import { HelixBeforeChangeEvent } from './before-change.js';
|
|
|
7
7
|
import { HelixBeforeCloseEvent } from './before-close.js';
|
|
8
8
|
import { HelixBeforeCollapseEvent } from './before-collapse.js';
|
|
9
9
|
import { HelixBeforeEditEvent } from './before-edit.js';
|
|
10
|
+
import { HelixBeforeListenEvent } from './before-listen.js';
|
|
10
11
|
import { HelixBeforeMoveEvent } from './before-move.js';
|
|
11
12
|
import { HelixBeforeOpenEvent } from './before-open.js';
|
|
12
13
|
import { HelixBeforePanelResizeEvent } from './before-panel-resize.js';
|
|
@@ -54,6 +55,7 @@ import { HelixGraphReadyEvent } from './graph-ready.js';
|
|
|
54
55
|
import { HelixGraphSignalEvent } from './graph-signal.js';
|
|
55
56
|
import { HelixGraphZoomEvent } from './graph-zoom.js';
|
|
56
57
|
import { HelixHistoryEvent } from './history.js';
|
|
58
|
+
import { HelixListenEvent } from './listen.js';
|
|
57
59
|
import { HelixLoadEvent } from './load.js';
|
|
58
60
|
import { HelixLoadMoreEvent } from './load-more.js';
|
|
59
61
|
import { HelixMapClusterEvent } from './map-cluster.js';
|
|
@@ -108,7 +110,7 @@ import { HelixTourAskEvent } from './tour-ask.js';
|
|
|
108
110
|
import { HelixTourStatusEvent } from './tour-status.js';
|
|
109
111
|
import { HelixTypingEvent } from './typing.js';
|
|
110
112
|
export { helixEventNames } from './names.js';
|
|
111
|
-
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, };
|
|
113
|
+
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, };
|
|
112
114
|
const registry = {
|
|
113
115
|
HelixActionEvent,
|
|
114
116
|
HelixActivateEvent,
|
|
@@ -119,6 +121,7 @@ const registry = {
|
|
|
119
121
|
HelixBeforeCloseEvent,
|
|
120
122
|
HelixBeforeCollapseEvent,
|
|
121
123
|
HelixBeforeEditEvent,
|
|
124
|
+
HelixBeforeListenEvent,
|
|
122
125
|
HelixBeforeMoveEvent,
|
|
123
126
|
HelixBeforeOpenEvent,
|
|
124
127
|
HelixBeforePanelResizeEvent,
|
|
@@ -166,6 +169,7 @@ const registry = {
|
|
|
166
169
|
HelixGraphSignalEvent,
|
|
167
170
|
HelixGraphZoomEvent,
|
|
168
171
|
HelixHistoryEvent,
|
|
172
|
+
HelixListenEvent,
|
|
169
173
|
HelixLoadEvent,
|
|
170
174
|
HelixLoadMoreEvent,
|
|
171
175
|
HelixMapClusterEvent,
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ListenDetail } from './details.js';
|
|
2
|
+
/**
|
|
3
|
+
* A field settled on a phrase it heard and put it in its value.
|
|
4
|
+
*
|
|
5
|
+
* Sent after the field's own `input`, for a page that keeps what was said
|
|
6
|
+
* apart from what was typed.
|
|
7
|
+
*/
|
|
8
|
+
export declare class HelixListenEvent extends CustomEvent<ListenDetail> {
|
|
9
|
+
static readonly eventName = "helix-listen";
|
|
10
|
+
constructor(detail: ListenDetail);
|
|
11
|
+
}
|
package/dist/events/names.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export const helixEventNames = new Set(('action activate aura-fallback band before-activate before-change before-close ' +
|
|
2
|
-
'before-collapse before-edit before-move before-open before-panel-resize before-paste before-pin ' +
|
|
2
|
+
'before-collapse before-edit before-listen before-move before-open before-panel-resize before-paste before-pin ' +
|
|
3
3
|
'before-reconnect before-relabel before-reorder before-resize before-split before-toggle ' +
|
|
4
4
|
'canvas-edit canvas-pan canvas-view canvas-zoom caret clear collapse complete ' +
|
|
5
5
|
'connect console copy copy-error create device-button device-key device-screenshot ' +
|
|
6
6
|
'device-scroll device-swipe device-tap device-text device-touch dismiss edit end expand facet filter ' +
|
|
7
7
|
'filtered graph-filter graph-layout graph-pan graph-part-change graph-ready ' +
|
|
8
|
-
'graph-signal graph-zoom history load load-more map-cluster map-pan map-part-change ' +
|
|
8
|
+
'graph-signal graph-zoom history listen load load-more map-cluster map-pan map-part-change ' +
|
|
9
9
|
'map-ready map-rotate map-tilt map-zoom move navigate next panel-resize pasted pin plot-change ' +
|
|
10
10
|
'plot-turn press ' +
|
|
11
11
|
'preview previous range-change read reading-change reading-press reconnect reject ' +
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LitElement, unsafeCSS } from 'lit';
|
|
2
2
|
import { measuring, reportRender } from '../utils/report-render/report-render.js';
|
|
3
3
|
import { noteVersion, reportUsage } from '../utils/report-usage/report-usage.js';
|
|
4
|
+
import { exposeStateIfAsked } from '../utils/state/state.js';
|
|
4
5
|
import { applyReactProperties, bindReactHandler, lookForReact } from './react-bridge.js';
|
|
5
6
|
const BOX_SIZING = '*,::before,::after{box-sizing:border-box}';
|
|
6
7
|
const HIDDEN = ":host([hidden]:not([hidden='until-found'])){display:none}";
|
|
@@ -127,3 +128,4 @@ export const whenHydrated = (element, write) => {
|
|
|
127
128
|
}
|
|
128
129
|
};
|
|
129
130
|
noteVersion();
|
|
131
|
+
exposeStateIfAsked();
|
|
@@ -60,6 +60,31 @@ export declare const SCROLLER_RULE = "[data-scroller]{overflow:auto}";
|
|
|
60
60
|
* where they belong, so anchoring has nothing left to do here but move them.
|
|
61
61
|
*/
|
|
62
62
|
export declare const VIRTUAL_RULE = "[data-virtual]{overflow-anchor:none}";
|
|
63
|
+
/**
|
|
64
|
+
* Two layers drawn in one place, one exactly over the other, which a
|
|
65
|
+
* component marks `data-layers`: Code Input draws its highlighted text under a
|
|
66
|
+
* `<textarea>` whose own text is transparent, so the reader types in the
|
|
67
|
+
* platform's field and sees the colors.
|
|
68
|
+
*
|
|
69
|
+
* **Every layer takes the same box and the same text metrics**, or the caret
|
|
70
|
+
* drifts off the letters it sits between: one grid cell, no margin, border or
|
|
71
|
+
* padding of a layer's own, and the font, spacing and tab stops of the box
|
|
72
|
+
* around them. Lines keep their length, or wrap the way a soft-wrapped
|
|
73
|
+
* `<textarea>` does where the box is marked `data-wrap`. The box grows with
|
|
74
|
+
* the layer under the text, and the field fills it and never scrolls by
|
|
75
|
+
* itself: whatever holds the box scrolls both.
|
|
76
|
+
*
|
|
77
|
+
* **Named by the layer under the text, `aria-hidden`, and the `<textarea>`**,
|
|
78
|
+
* which outranks the `[part]` rule a field's sheet resets its control with:
|
|
79
|
+
* its `all: unset` took the textarea out of the cell and gave it the field's
|
|
80
|
+
* face, a row below the text and in another font.
|
|
81
|
+
*
|
|
82
|
+
* The placeholder keeps its own color, which a transparent fill would take.
|
|
83
|
+
* The caret takes the page's text color here, at no specificity, so a sheet
|
|
84
|
+
* names its own. Everything else is the mechanism, and a sheet that unsets
|
|
85
|
+
* the field's styles does not undo it.
|
|
86
|
+
*/
|
|
87
|
+
export declare const LAYERS_RULE: string;
|
|
63
88
|
/**
|
|
64
89
|
* Words a screen reader reads where the eye reads something else, which a
|
|
65
90
|
* component marks `data-spoken`: `⇧⌘P` in Kbd is read as `Shift Command P`.
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
export const SCROLLER_RULE = '[data-scroller]{overflow:auto}';
|
|
2
2
|
export const VIRTUAL_RULE = '[data-virtual]{overflow-anchor:none}';
|
|
3
|
+
export const LAYERS_RULE = '[data-layers]{display:grid}' +
|
|
4
|
+
'[data-layers]>[aria-hidden],[data-layers]>textarea{grid-area:1/1;box-sizing:border-box;margin:0;border:0;padding:0;min-inline-size:0;font:inherit;letter-spacing:inherit;line-height:inherit;tab-size:inherit;white-space:pre;overflow-wrap:normal}' +
|
|
5
|
+
'[data-layers][data-wrap]>[aria-hidden],[data-layers][data-wrap]>textarea{white-space:pre-wrap;overflow-wrap:break-word}' +
|
|
6
|
+
'[data-layers]>[aria-hidden]{pointer-events:none;user-select:none}' +
|
|
7
|
+
'[data-layers]>textarea{inline-size:100%;block-size:100%;overflow:hidden;resize:none;background:none;color:transparent;-webkit-text-fill-color:transparent}' +
|
|
8
|
+
'[data-layers]>textarea::placeholder{-webkit-text-fill-color:currentColor}' +
|
|
9
|
+
':where([data-layers])>textarea{caret-color:CanvasText}';
|
|
3
10
|
export const SPOKEN_RULE = '[data-spoken]{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}';
|
|
4
11
|
export const MIRROR_RULE = ':host(:dir(rtl)) [data-mirror]{scale:-1 1}';
|
|
5
12
|
export const TOUCHES_RULE = '[data-touches]{touch-action:none}';
|
package/dist/index.d.ts
CHANGED
|
@@ -22,6 +22,7 @@ export { HostClickController } from './controllers/host-click-controller/host-cl
|
|
|
22
22
|
export { IdleController } from './controllers/idle-controller/idle-controller.js';
|
|
23
23
|
export { IndicatorController, type IndicatorOptions, } from './controllers/indicator-controller/indicator-controller.js';
|
|
24
24
|
export { type FocusItemOptions, focusItemOf, KeyboardNavigationController, type KeyboardNavigationOptions, type KeyboardOrigin, type NavigableItem, } from './controllers/keyboard-navigation-controller/keyboard-navigation-controller.js';
|
|
25
|
+
export { ListedController } from './controllers/listed-controller/listed-controller.js';
|
|
25
26
|
export { MediaSessionController, type SessionHandlers, SKIP_SECONDS, } from './controllers/media-session-controller/media-session-controller.js';
|
|
26
27
|
export { animationsFinished, animationsSettled, type OpenPhase, OpenPhaseController, type OpenPhaseOptions, } from './controllers/open-phase-controller/open-phase-controller.js';
|
|
27
28
|
export { OptionWindowController, type OptionWindowOptions, } from './controllers/option-window-controller/option-window-controller.js';
|
|
@@ -40,9 +41,9 @@ export { UpgradeController, type UpgradeOptions, } from './controllers/upgrade-c
|
|
|
40
41
|
export { type Rendered, VirtualizeController, type VirtualizeOptions, type Window as VirtualizeWindow, } from './controllers/virtualize-controller/virtualize-controller.js';
|
|
41
42
|
export { Waterfall } from './controllers/virtualize-controller/waterfall.js';
|
|
42
43
|
export { eventsForTag, registerElementEvents } from './events/element-events.js';
|
|
43
|
-
export { type ActivateDetail, type AuraFallbackDetail, type BandDetail, type CanvasView, type CaretDetail, type ChangeDetail, type CompleteDetail, type ConnectDetail, type ConsoleDetail, type CopyDetail, type CreateDetail, type DeviceButton, type DeviceButtonDetail, type DeviceKeyDetail, type DeviceScrollDetail, type DeviceSwipeDetail, type DeviceTapDetail, type DeviceTextDetail, type DeviceTouchDetail, type DismissDetail, type FacetDetail, type FilterDetail, type GraphFilterDetail, type GraphLayoutDetail, type GraphPartChangeDetail, type GraphSignalDetail, HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, type MapClusterDetail, type MapPanDetail, type MapPartChangeDetail, type MapRotateDetail, type MapTiltDetail, type MapZoomDetail, type MoveDetail, type NavigateDetail, type OpenDetail, type PasteDetail, type PlotChangeDetail, type PlotTurnDetail, type PressDetail, type PressPointerType, type RangeDetail, type ReadDetail, type ReadingDetail, type ReconnectDetail, type Refusal, type RefusedFile, type RejectDetail, type RelabelDetail, type RemoveDetail, type ReorderDetail, type ResizeDetail, type ScrolledDetail, type SelectDetail, type SendDetail, type ShortcutDetail, type SkipDetail, type SortDetail, type StrandsFallbackDetail, type TerminalInputDetail, type TerminalLinkDetail, type TerminalResizeDetail, type TerminalTitleDetail, type ToggleDetail, type TourStatusDetail, type TypingDetail, type ViewportPanDetail, type ViewportZoomDetail, } from './events/events.js';
|
|
44
|
+
export { type ActivateDetail, type AuraFallbackDetail, type BandDetail, type CanvasView, type CaretDetail, type ChangeDetail, type CompleteDetail, type ConnectDetail, type ConsoleDetail, type CopyDetail, type CreateDetail, type DeviceButton, type DeviceButtonDetail, type DeviceKeyDetail, type DeviceScrollDetail, type DeviceSwipeDetail, type DeviceTapDetail, type DeviceTextDetail, type DeviceTouchDetail, type DismissDetail, type FacetDetail, type FilterDetail, type GraphFilterDetail, type GraphLayoutDetail, type GraphPartChangeDetail, type GraphSignalDetail, HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, type ListenDetail, type MapClusterDetail, type MapPanDetail, type MapPartChangeDetail, type MapRotateDetail, type MapTiltDetail, type MapZoomDetail, type MoveDetail, type NavigateDetail, type OpenDetail, type PasteDetail, type PlotChangeDetail, type PlotTurnDetail, type PressDetail, type PressPointerType, type RangeDetail, type ReadDetail, type ReadingDetail, type ReconnectDetail, type Refusal, type RefusedFile, type RejectDetail, type RelabelDetail, type RemoveDetail, type ReorderDetail, type ResizeDetail, type ScrolledDetail, type SelectDetail, type SendDetail, type ShortcutDetail, type SkipDetail, type SortDetail, type StrandsFallbackDetail, type TerminalInputDetail, type TerminalLinkDetail, type TerminalResizeDetail, type TerminalTitleDetail, type ToggleDetail, type TourStatusDetail, type TypingDetail, type ViewportPanDetail, type ViewportZoomDetail, } from './events/events.js';
|
|
44
45
|
export { HelixElement, whenHydrated } from './helix-element/helix-element.js';
|
|
45
|
-
export { MIRROR_RULE, SCROLLER_RULE, SPOKEN_RULE, TOUCHES_RULE, VIRTUAL_RULE, } from './helix-element/mark-rules.js';
|
|
46
|
+
export { LAYERS_RULE, MIRROR_RULE, SCROLLER_RULE, SPOKEN_RULE, TOUCHES_RULE, VIRTUAL_RULE, } from './helix-element/mark-rules.js';
|
|
46
47
|
export { HelixFormElement } from './helix-form-element/helix-form-element.js';
|
|
47
48
|
export { HelixFormElementBase } from './helix-form-element/helix-form-element-base.js';
|
|
48
49
|
export { MixinChartSource, type MixinChartSourceInterface, PALETTE, PLOT_HEIGHT, PLOT_WIDTH, POSITION_LABEL, READINGS_PAGE, seriesIndex, seriesNames, } from './mixins/mixin-chart-source/mixin-chart-source.js';
|
|
@@ -61,6 +62,7 @@ export { MixinSegmentedField, type MixinSegmentedFieldInterface, } from './mixin
|
|
|
61
62
|
export { MixinSelectableItem, type MixinSelectableItemInterface, } from './mixins/mixin-selectable-item/mixin-selectable-item.js';
|
|
62
63
|
export { MixinTokens, type MixinTokensInterface } from './mixins/mixin-tokens/mixin-tokens.js';
|
|
63
64
|
export { MixinViewport, type ViewportControlAxes, type ViewportControlsPlacement, type ViewportElement, type ViewportGestureLabels, type ViewportGestureMode, type ViewportGestures, type ViewportWay, } from './mixins/mixin-viewport/mixin-viewport.js';
|
|
65
|
+
export { MixinVoice, type VoiceElement } from './mixins/mixin-voice/mixin-voice.js';
|
|
64
66
|
export { anchorElement } from './utils/anchor-element/anchor-element.js';
|
|
65
67
|
export { arrowReach, sideOf } from './utils/arrow/arrow.js';
|
|
66
68
|
export { assignSlot, assignSlots } from './utils/assign-slots/assign-slots.js';
|
|
@@ -80,6 +82,7 @@ export { closestName } from './utils/closest-name/closest-name.js';
|
|
|
80
82
|
export { type ColorWords, colorName, hueName } from './utils/color-name/color-name.js';
|
|
81
83
|
export { columnStep } from './utils/column-step/column-step.js';
|
|
82
84
|
export { contextBudget, type Holder, LIVE, pageBudget, } from './utils/context-budget/context-budget.js';
|
|
85
|
+
export { type ControlEntry, type ControlKind, chordOfAria, controlName, controlReachable, type ListedControl, listControls, listShortcuts, registerControl, registerShortcut, runControl, type ShortcutEntry, unregisterControl, } from './utils/controls/controls.js';
|
|
83
86
|
export { countLabel } from './utils/count-label/count-label.js';
|
|
84
87
|
export { createSheet } from './utils/create-sheet/create-sheet.js';
|
|
85
88
|
export { type Color, type ColorFormat, formatColor, parseColor, toCss, toHsl, toOklch, toRgb, } from './utils/css-color/css-color.js';
|
|
@@ -154,7 +157,10 @@ export { lockScroll, scrollHolders, unlockScroll } from './utils/scroll-lock/scr
|
|
|
154
157
|
export { slotFilled, slotNamed } from './utils/slot-filled/slot-filled.js';
|
|
155
158
|
export { SlottedGlyph } from './utils/slotted-glyph/slotted-glyph.js';
|
|
156
159
|
export { slottedWords } from './utils/slotted-words/slotted-words.js';
|
|
160
|
+
export { ChartSound, HIGH, LOW, panOf, pitchOf, type Sound, type SoundSeries, sweepPlan, TIMBRES, } from './utils/sonify/sonify.js';
|
|
161
|
+
export { browserSpeech, pageSpeechEngine, registerSpeechEngine, type SpeechEngine, type SpeechListener, type SpeechSession, } from './utils/speech/speech.js';
|
|
157
162
|
export { splitValues } from './utils/split-values/split-values.js';
|
|
163
|
+
export { captureState, type ElementState, elementAt, exposeState, type PageState, pathOf, type RestoreReport, restoreOn, restoreState, STATE_SLOT, snapshotOf, } from './utils/state/state.js';
|
|
158
164
|
export { stopPress } from './utils/stop-press/stop-press.js';
|
|
159
165
|
export { edgeOffset, FLING, parseSnapPoints, type SwipeAxis, type SwipeEdge, type SwipeRelease, settleSwipe, snapTravel, swipeAxis, swipeEdge, swipeStep, towardEdge, } from './utils/swipe/swipe.js';
|
|
160
166
|
export { tellDisclosure } from './utils/tell-disclosure/tell-disclosure.js';
|
package/dist/index.js
CHANGED
|
@@ -22,6 +22,7 @@ export { HostClickController } from './controllers/host-click-controller/host-cl
|
|
|
22
22
|
export { IdleController } from './controllers/idle-controller/idle-controller.js';
|
|
23
23
|
export { IndicatorController, } from './controllers/indicator-controller/indicator-controller.js';
|
|
24
24
|
export { focusItemOf, KeyboardNavigationController, } from './controllers/keyboard-navigation-controller/keyboard-navigation-controller.js';
|
|
25
|
+
export { ListedController } from './controllers/listed-controller/listed-controller.js';
|
|
25
26
|
export { MediaSessionController, SKIP_SECONDS, } from './controllers/media-session-controller/media-session-controller.js';
|
|
26
27
|
export { animationsFinished, animationsSettled, OpenPhaseController, } from './controllers/open-phase-controller/open-phase-controller.js';
|
|
27
28
|
export { OptionWindowController, } from './controllers/option-window-controller/option-window-controller.js';
|
|
@@ -40,9 +41,9 @@ export { UpgradeController, } from './controllers/upgrade-controller/upgrade-con
|
|
|
40
41
|
export { VirtualizeController, } from './controllers/virtualize-controller/virtualize-controller.js';
|
|
41
42
|
export { Waterfall } from './controllers/virtualize-controller/waterfall.js';
|
|
42
43
|
export { eventsForTag, registerElementEvents } from './events/element-events.js';
|
|
43
|
-
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, } from './events/events.js';
|
|
44
|
+
export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBandEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeListenEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePasteEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeReorderEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, HelixDeviceButtonEvent, HelixDeviceKeyEvent, HelixDeviceScreenshotEvent, HelixDeviceScrollEvent, HelixDeviceSwipeEvent, HelixDeviceTapEvent, HelixDeviceTextEvent, HelixDeviceTouchEvent, HelixDismissEvent, HelixEditEvent, HelixEndEvent, HelixExpandEvent, HelixFacetEvent, HelixFilterEvent, HelixFilteredEvent, HelixGraphFilterEvent, HelixGraphLayoutEvent, HelixGraphPanEvent, HelixGraphPartChangeEvent, HelixGraphReadyEvent, HelixGraphSignalEvent, HelixGraphZoomEvent, HelixHistoryEvent, HelixListenEvent, HelixLoadEvent, HelixLoadMoreEvent, HelixMapClusterEvent, HelixMapPanEvent, HelixMapPartChangeEvent, HelixMapReadyEvent, HelixMapRotateEvent, HelixMapTiltEvent, HelixMapZoomEvent, HelixMoveEvent, HelixNavigateEvent, HelixNextEvent, HelixPanelResizeEvent, HelixPastedEvent, HelixPinEvent, HelixPlotChangeEvent, HelixPlotTurnEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReadingChangeEvent, HelixReadingPressEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixStrandsFallbackEvent, HelixTerminalBellEvent, HelixTerminalInputEvent, HelixTerminalLinkEvent, HelixTerminalResizeEvent, HelixTerminalRestartEvent, HelixTerminalTitleEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, } from './events/events.js';
|
|
44
45
|
export { HelixElement, whenHydrated } from './helix-element/helix-element.js';
|
|
45
|
-
export { MIRROR_RULE, SCROLLER_RULE, SPOKEN_RULE, TOUCHES_RULE, VIRTUAL_RULE, } from './helix-element/mark-rules.js';
|
|
46
|
+
export { LAYERS_RULE, MIRROR_RULE, SCROLLER_RULE, SPOKEN_RULE, TOUCHES_RULE, VIRTUAL_RULE, } from './helix-element/mark-rules.js';
|
|
46
47
|
export { HelixFormElement } from './helix-form-element/helix-form-element.js';
|
|
47
48
|
export { HelixFormElementBase } from './helix-form-element/helix-form-element-base.js';
|
|
48
49
|
export { MixinChartSource, PALETTE, PLOT_HEIGHT, PLOT_WIDTH, POSITION_LABEL, READINGS_PAGE, seriesIndex, seriesNames, } from './mixins/mixin-chart-source/mixin-chart-source.js';
|
|
@@ -61,6 +62,7 @@ export { MixinSegmentedField, } from './mixins/mixin-segmented-field/mixin-segme
|
|
|
61
62
|
export { MixinSelectableItem, } from './mixins/mixin-selectable-item/mixin-selectable-item.js';
|
|
62
63
|
export { MixinTokens } from './mixins/mixin-tokens/mixin-tokens.js';
|
|
63
64
|
export { MixinViewport, } from './mixins/mixin-viewport/mixin-viewport.js';
|
|
65
|
+
export { MixinVoice } from './mixins/mixin-voice/mixin-voice.js';
|
|
64
66
|
export { anchorElement } from './utils/anchor-element/anchor-element.js';
|
|
65
67
|
export { arrowReach, sideOf } from './utils/arrow/arrow.js';
|
|
66
68
|
export { assignSlot, assignSlots } from './utils/assign-slots/assign-slots.js';
|
|
@@ -80,6 +82,7 @@ export { closestName } from './utils/closest-name/closest-name.js';
|
|
|
80
82
|
export { colorName, hueName } from './utils/color-name/color-name.js';
|
|
81
83
|
export { columnStep } from './utils/column-step/column-step.js';
|
|
82
84
|
export { contextBudget, LIVE, pageBudget, } from './utils/context-budget/context-budget.js';
|
|
85
|
+
export { chordOfAria, controlName, controlReachable, listControls, listShortcuts, registerControl, registerShortcut, runControl, unregisterControl, } from './utils/controls/controls.js';
|
|
83
86
|
export { countLabel } from './utils/count-label/count-label.js';
|
|
84
87
|
export { createSheet } from './utils/create-sheet/create-sheet.js';
|
|
85
88
|
export { formatColor, parseColor, toCss, toHsl, toOklch, toRgb, } from './utils/css-color/css-color.js';
|
|
@@ -154,7 +157,10 @@ export { lockScroll, scrollHolders, unlockScroll } from './utils/scroll-lock/scr
|
|
|
154
157
|
export { slotFilled, slotNamed } from './utils/slot-filled/slot-filled.js';
|
|
155
158
|
export { SlottedGlyph } from './utils/slotted-glyph/slotted-glyph.js';
|
|
156
159
|
export { slottedWords } from './utils/slotted-words/slotted-words.js';
|
|
160
|
+
export { ChartSound, HIGH, LOW, panOf, pitchOf, sweepPlan, TIMBRES, } from './utils/sonify/sonify.js';
|
|
161
|
+
export { browserSpeech, pageSpeechEngine, registerSpeechEngine, } from './utils/speech/speech.js';
|
|
157
162
|
export { splitValues } from './utils/split-values/split-values.js';
|
|
163
|
+
export { captureState, elementAt, exposeState, pathOf, restoreOn, restoreState, STATE_SLOT, snapshotOf, } from './utils/state/state.js';
|
|
158
164
|
export { stopPress } from './utils/stop-press/stop-press.js';
|
|
159
165
|
export { edgeOffset, FLING, parseSnapPoints, settleSwipe, snapTravel, swipeAxis, swipeEdge, swipeStep, towardEdge, } from './utils/swipe/swipe.js';
|
|
160
166
|
export { tellDisclosure } from './utils/tell-disclosure/tell-disclosure.js';
|
|
@@ -224,6 +224,28 @@ export declare class MixinChartSourceInterface {
|
|
|
224
224
|
* `data`: there is then no table on the page to read. Nothing otherwise.
|
|
225
225
|
*/
|
|
226
226
|
protected renderTable(): TemplateResult | typeof nothing;
|
|
227
|
+
/**
|
|
228
|
+
* Draws a Listen button that plays the chart as sound, and plays each
|
|
229
|
+
* reading's tone as the arrow keys step to it. L plays it too while the
|
|
230
|
+
* chart has focus, and Escape stops it.
|
|
231
|
+
*/
|
|
232
|
+
sonify: boolean;
|
|
233
|
+
/** How long each series takes to play, in milliseconds or as `3s`. */
|
|
234
|
+
sonifyDuration: number;
|
|
235
|
+
/** The Listen button's words. */
|
|
236
|
+
sonifyLabel: string;
|
|
237
|
+
/** The Listen button's words while the chart plays. */
|
|
238
|
+
sonifyStopLabel: string;
|
|
239
|
+
/** Whether the chart is playing as sound now. */
|
|
240
|
+
get sounding(): boolean;
|
|
241
|
+
/** `visible` draws the chart's text summary under it, as one line, and `hidden`, as absent does, gives it to a screen reader alone. */
|
|
242
|
+
summary?: 'hidden' | 'visible';
|
|
243
|
+
/** Plays every shown series as sound, one after another, and resolves when it ends or is stopped. */
|
|
244
|
+
playReadings(): Promise<void>;
|
|
245
|
+
/** Stops the sound. */
|
|
246
|
+
stopReadings(): void;
|
|
247
|
+
/** The Listen button, under `sonify`, behind a seam a chart places. */
|
|
248
|
+
protected renderSonify(): TemplateResult | typeof nothing;
|
|
227
249
|
}
|
|
228
250
|
/**
|
|
229
251
|
* How many readings the table drawn from `data` holds at once.
|