@fusion.dev/helix-core 0.223.1 → 0.225.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.
Files changed (235) hide show
  1. package/custom-elements.json +1 -1
  2. package/dist/controllers/reorder-controller/reorder-controller.js +2 -3
  3. package/dist/events/before-activate.d.ts +3 -1
  4. package/dist/events/before-change.d.ts +2 -0
  5. package/dist/events/before-check.d.ts +31 -0
  6. package/dist/events/before-check.js +11 -0
  7. package/dist/events/before-close.d.ts +5 -1
  8. package/dist/events/before-filter.d.ts +17 -0
  9. package/dist/events/before-filter.js +11 -0
  10. package/dist/events/before-listen.d.ts +5 -1
  11. package/dist/events/before-navigate.d.ts +16 -0
  12. package/dist/events/before-navigate.js +11 -0
  13. package/dist/events/before-open.d.ts +2 -0
  14. package/dist/events/before-pin.d.ts +5 -1
  15. package/dist/events/before-reorder.d.ts +2 -0
  16. package/dist/events/before-resize.d.ts +5 -1
  17. package/dist/events/before-select.d.ts +19 -0
  18. package/dist/events/before-select.js +11 -0
  19. package/dist/events/before-sort.d.ts +19 -0
  20. package/dist/events/before-sort.js +11 -0
  21. package/dist/events/check.d.ts +15 -0
  22. package/dist/events/{caret.js → check.js} +3 -3
  23. package/dist/events/details.d.ts +11 -514
  24. package/dist/events/events.d.ts +27 -170
  25. package/dist/events/events.js +13 -165
  26. package/dist/events/expand.d.ts +2 -1
  27. package/dist/events/filter.d.ts +3 -4
  28. package/dist/events/filter.js +1 -1
  29. package/dist/events/found.d.ts +1 -1
  30. package/dist/events/names.d.ts +5 -16
  31. package/dist/events/names.js +11 -15
  32. package/dist/events/navigate.d.ts +3 -5
  33. package/dist/events/navigate.js +1 -1
  34. package/dist/events/reorder.d.ts +12 -13
  35. package/dist/events/reorder.js +1 -1
  36. package/dist/events/select.d.ts +4 -4
  37. package/dist/events/select.js +1 -1
  38. package/dist/events/sort.d.ts +3 -9
  39. package/dist/events/sort.js +1 -1
  40. package/dist/helix-element/helix-element.d.ts +31 -14
  41. package/dist/helix-element/helix-element.js +25 -3
  42. package/dist/helix-element/react-audit-off.d.ts +3 -1
  43. package/dist/helix-element/react-audit-off.js +1 -0
  44. package/dist/helix-element/react-audit.d.ts +22 -0
  45. package/dist/helix-element/react-audit.js +18 -0
  46. package/dist/helix-element/react-bridge.d.ts +34 -1
  47. package/dist/helix-element/react-bridge.js +33 -9
  48. package/dist/helix-element/react-root.d.ts +2 -0
  49. package/dist/helix-element/react-root.js +9 -0
  50. package/dist/helix-form-element/helix-form-element-base.js +12 -12
  51. package/dist/helix-form-element/helix-form-element.js +4 -3
  52. package/dist/index.d.ts +4 -2
  53. package/dist/index.js +4 -2
  54. package/dist/mixins/mixin-controller-checked/mixin-controller-checked.d.ts +3 -3
  55. package/dist/mixins/mixin-controller-checked/mixin-controller-checked.js +2 -2
  56. package/dist/mixins/mixin-field/mixin-field.js +9 -8
  57. package/dist/mixins/mixin-picker-feedback/mixin-picker-feedback.js +3 -2
  58. package/dist/mixins/mixin-picker-field/mixin-picker-field.js +4 -3
  59. package/dist/mixins/mixin-segmented-field/mixin-segmented-field.js +5 -4
  60. package/dist/mixins/mixin-selectable-item/mixin-selectable-item.d.ts +1 -1
  61. package/dist/mixins/mixin-selectable-item/mixin-selectable-item.js +2 -2
  62. package/dist/utils/audit-children/audit-children.d.ts +1 -1
  63. package/dist/utils/audit-name/audit-name.js +12 -1
  64. package/dist/utils/controls/controls.js +6 -1
  65. package/dist/utils/draw-icon/draw-icon.d.ts +1 -1
  66. package/dist/utils/follow-link/follow-link.d.ts +1 -1
  67. package/dist/utils/report-runtime/report-runtime.d.ts +5 -0
  68. package/dist/utils/tell-disclosure/tell-disclosure.d.ts +6 -3
  69. package/dist/utils/ticker/ticker.d.ts +5 -0
  70. package/dist/version.d.ts +4 -5
  71. package/dist/version.js +1 -1
  72. package/package.json +6 -6
  73. package/dist/events/action.d.ts +0 -12
  74. package/dist/events/action.js +0 -6
  75. package/dist/events/aura-fallback.d.ts +0 -12
  76. package/dist/events/aura-fallback.js +0 -11
  77. package/dist/events/band.d.ts +0 -13
  78. package/dist/events/band.js +0 -11
  79. package/dist/events/before-collapse.d.ts +0 -6
  80. package/dist/events/before-collapse.js +0 -11
  81. package/dist/events/before-edit.d.ts +0 -6
  82. package/dist/events/before-edit.js +0 -11
  83. package/dist/events/before-move.d.ts +0 -17
  84. package/dist/events/before-move.js +0 -11
  85. package/dist/events/before-panel-resize.d.ts +0 -13
  86. package/dist/events/before-panel-resize.js +0 -11
  87. package/dist/events/before-paste.d.ts +0 -13
  88. package/dist/events/before-paste.js +0 -11
  89. package/dist/events/before-reconnect.d.ts +0 -14
  90. package/dist/events/before-reconnect.js +0 -11
  91. package/dist/events/before-relabel.d.ts +0 -15
  92. package/dist/events/before-relabel.js +0 -11
  93. package/dist/events/before-split.d.ts +0 -12
  94. package/dist/events/before-split.js +0 -11
  95. package/dist/events/before-toggle.d.ts +0 -23
  96. package/dist/events/before-toggle.js +0 -11
  97. package/dist/events/canvas-edit.d.ts +0 -16
  98. package/dist/events/canvas-edit.js +0 -11
  99. package/dist/events/canvas-pan.d.ts +0 -13
  100. package/dist/events/canvas-pan.js +0 -11
  101. package/dist/events/canvas-view.d.ts +0 -14
  102. package/dist/events/canvas-view.js +0 -11
  103. package/dist/events/canvas-zoom.d.ts +0 -6
  104. package/dist/events/canvas-zoom.js +0 -11
  105. package/dist/events/caret.d.ts +0 -17
  106. package/dist/events/collapse.d.ts +0 -12
  107. package/dist/events/collapse.js +0 -11
  108. package/dist/events/connect.d.ts +0 -14
  109. package/dist/events/connect.js +0 -11
  110. package/dist/events/console.d.ts +0 -13
  111. package/dist/events/console.js +0 -11
  112. package/dist/events/create.d.ts +0 -18
  113. package/dist/events/create.js +0 -11
  114. package/dist/events/device-button.d.ts +0 -14
  115. package/dist/events/device-button.js +0 -11
  116. package/dist/events/device-key.d.ts +0 -16
  117. package/dist/events/device-key.js +0 -11
  118. package/dist/events/device-screenshot.d.ts +0 -13
  119. package/dist/events/device-screenshot.js +0 -10
  120. package/dist/events/device-scroll.d.ts +0 -14
  121. package/dist/events/device-scroll.js +0 -11
  122. package/dist/events/device-swipe.d.ts +0 -15
  123. package/dist/events/device-swipe.js +0 -11
  124. package/dist/events/device-tap.d.ts +0 -13
  125. package/dist/events/device-tap.js +0 -11
  126. package/dist/events/device-text.d.ts +0 -13
  127. package/dist/events/device-text.js +0 -11
  128. package/dist/events/device-touch.d.ts +0 -15
  129. package/dist/events/device-touch.js +0 -11
  130. package/dist/events/edit.d.ts +0 -12
  131. package/dist/events/edit.js +0 -11
  132. package/dist/events/end.d.ts +0 -9
  133. package/dist/events/end.js +0 -6
  134. package/dist/events/facet.d.ts +0 -17
  135. package/dist/events/facet.js +0 -11
  136. package/dist/events/filtered.d.ts +0 -12
  137. package/dist/events/filtered.js +0 -11
  138. package/dist/events/graph-filter.d.ts +0 -10
  139. package/dist/events/graph-filter.js +0 -11
  140. package/dist/events/graph-layout.d.ts +0 -10
  141. package/dist/events/graph-layout.js +0 -11
  142. package/dist/events/graph-pan.d.ts +0 -9
  143. package/dist/events/graph-pan.js +0 -11
  144. package/dist/events/graph-part-change.d.ts +0 -10
  145. package/dist/events/graph-part-change.js +0 -11
  146. package/dist/events/graph-ready.d.ts +0 -8
  147. package/dist/events/graph-ready.js +0 -6
  148. package/dist/events/graph-signal.d.ts +0 -11
  149. package/dist/events/graph-signal.js +0 -11
  150. package/dist/events/graph-zoom.d.ts +0 -6
  151. package/dist/events/graph-zoom.js +0 -11
  152. package/dist/events/history.d.ts +0 -16
  153. package/dist/events/history.js +0 -11
  154. package/dist/events/map-cluster.d.ts +0 -15
  155. package/dist/events/map-cluster.js +0 -11
  156. package/dist/events/map-pan.d.ts +0 -18
  157. package/dist/events/map-pan.js +0 -11
  158. package/dist/events/map-part-change.d.ts +0 -16
  159. package/dist/events/map-part-change.js +0 -11
  160. package/dist/events/map-ready.d.ts +0 -15
  161. package/dist/events/map-ready.js +0 -6
  162. package/dist/events/map-rotate.d.ts +0 -9
  163. package/dist/events/map-rotate.js +0 -11
  164. package/dist/events/map-tilt.d.ts +0 -9
  165. package/dist/events/map-tilt.js +0 -11
  166. package/dist/events/map-zoom.d.ts +0 -13
  167. package/dist/events/map-zoom.js +0 -11
  168. package/dist/events/move.d.ts +0 -11
  169. package/dist/events/move.js +0 -11
  170. package/dist/events/next.d.ts +0 -23
  171. package/dist/events/next.js +0 -11
  172. package/dist/events/panel-resize.d.ts +0 -12
  173. package/dist/events/panel-resize.js +0 -11
  174. package/dist/events/pasted.d.ts +0 -6
  175. package/dist/events/pasted.js +0 -11
  176. package/dist/events/press.d.ts +0 -19
  177. package/dist/events/press.js +0 -11
  178. package/dist/events/preview.d.ts +0 -14
  179. package/dist/events/preview.js +0 -11
  180. package/dist/events/previous.d.ts +0 -6
  181. package/dist/events/previous.js +0 -11
  182. package/dist/events/range-change.d.ts +0 -10
  183. package/dist/events/range-change.js +0 -11
  184. package/dist/events/read.d.ts +0 -19
  185. package/dist/events/read.js +0 -11
  186. package/dist/events/reconnect.d.ts +0 -6
  187. package/dist/events/reconnect.js +0 -11
  188. package/dist/events/reject.d.ts +0 -13
  189. package/dist/events/reject.js +0 -11
  190. package/dist/events/relabel.d.ts +0 -6
  191. package/dist/events/relabel.js +0 -11
  192. package/dist/events/remove.d.ts +0 -12
  193. package/dist/events/remove.js +0 -11
  194. package/dist/events/reordered.d.ts +0 -12
  195. package/dist/events/reordered.js +0 -11
  196. package/dist/events/sample-end.d.ts +0 -5
  197. package/dist/events/sample-end.js +0 -6
  198. package/dist/events/sample-start.d.ts +0 -18
  199. package/dist/events/sample-start.js +0 -6
  200. package/dist/events/scrolled.d.ts +0 -32
  201. package/dist/events/scrolled.js +0 -11
  202. package/dist/events/selected.d.ts +0 -12
  203. package/dist/events/selected.js +0 -11
  204. package/dist/events/send.d.ts +0 -18
  205. package/dist/events/send.js +0 -11
  206. package/dist/events/shortcut.d.ts +0 -13
  207. package/dist/events/shortcut.js +0 -11
  208. package/dist/events/sorted.d.ts +0 -15
  209. package/dist/events/sorted.js +0 -11
  210. package/dist/events/split.d.ts +0 -12
  211. package/dist/events/split.js +0 -11
  212. package/dist/events/stop.d.ts +0 -12
  213. package/dist/events/stop.js +0 -6
  214. package/dist/events/strands-fallback.d.ts +0 -13
  215. package/dist/events/strands-fallback.js +0 -11
  216. package/dist/events/terminal-bell.d.ts +0 -13
  217. package/dist/events/terminal-bell.js +0 -6
  218. package/dist/events/terminal-input.d.ts +0 -14
  219. package/dist/events/terminal-input.js +0 -11
  220. package/dist/events/terminal-link.d.ts +0 -15
  221. package/dist/events/terminal-link.js +0 -11
  222. package/dist/events/terminal-resize.d.ts +0 -13
  223. package/dist/events/terminal-resize.js +0 -11
  224. package/dist/events/terminal-restart.d.ts +0 -11
  225. package/dist/events/terminal-restart.js +0 -10
  226. package/dist/events/terminal-title.d.ts +0 -12
  227. package/dist/events/terminal-title.js +0 -11
  228. package/dist/events/toggle.d.ts +0 -15
  229. package/dist/events/toggle.js +0 -11
  230. package/dist/events/tour-ask.d.ts +0 -16
  231. package/dist/events/tour-ask.js +0 -11
  232. package/dist/events/tour-status.d.ts +0 -14
  233. package/dist/events/tour-status.js +0 -11
  234. package/dist/events/typing.d.ts +0 -10
  235. package/dist/events/typing.js +0 -11
@@ -3,11 +3,6 @@ export interface OpenDetail {
3
3
  /** The state the element is moving to. */
4
4
  open: boolean;
5
5
  }
6
- /** Detail carried by `helix-next` and `helix-previous`. */
7
- export interface SkipDetail {
8
- /** Which way the reader asked to go. */
9
- to: 'next' | 'previous';
10
- }
11
6
  /**
12
7
  * Detail carried by a pan request, `helix-map-pan` being the one Map sends.
13
8
  *
@@ -27,157 +22,7 @@ export interface ViewportZoomDetail {
27
22
  /** Which way, `1` in and `-1` out, so a consumer can multiply by their own step. */
28
23
  by: number;
29
24
  }
30
- /**
31
- * Where a move or a resize puts each card it carries, in the board's own
32
- * units.
33
- *
34
- * **One contract for both**, because what a controlled page does with either
35
- * is the same: write the geometry the detail says onto the cards it renders. A
36
- * resize says `width` and `height` as well, and moves `x` and `y` too when it
37
- * is dragged from a corner other than the bottom right.
38
- */
39
- export interface MoveDetail {
40
- /**
41
- * Every card the gesture moves, the one the reader took hold of first.
42
- *
43
- * **A list, because a group carries what is inside it.** Dragging a group
44
- * moves its cards with it, which is what every board does, and a controlled
45
- * consumer who refuses the move has to write every position it would have
46
- * written, not only the one the pointer was on.
47
- */
48
- nodes: Array<{
49
- name: string;
50
- x: number;
51
- y: number;
52
- width?: number;
53
- height?: number;
54
- }>;
55
- }
56
- /** Which two cards a reader asked to join, by name, and the side they started from. */
57
- export interface ConnectDetail {
58
- from: string;
59
- to: string;
60
- /** The side the reader drew from, where they drew from one. */
61
- fromSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
62
- /** The side nearest where they let go, where they let go over a card. */
63
- toSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
64
- }
65
- /** A side of a card, as JSON Canvas names it. */
66
- type PasteSide = 'top' | 'right' | 'bottom' | 'left';
67
- /**
68
- * What a paste adds to a board: a JSON Canvas document whose ids the board
69
- * does not hold yet, its cards moved clear of the ones they were copied from.
70
- * The shape is the format's, which `fromJsonCanvas` reads.
71
- */
72
- export interface PasteDetail {
73
- document: {
74
- edges?: Array<{
75
- color?: string | undefined;
76
- fromEnd?: 'none' | 'arrow' | undefined;
77
- fromNode: string;
78
- fromSide?: PasteSide | undefined;
79
- id: string;
80
- label?: string | undefined;
81
- path?: 'curve' | 'straight' | 'step' | undefined;
82
- toEnd?: 'none' | 'arrow' | undefined;
83
- toNode: string;
84
- toSide?: PasteSide | undefined;
85
- }>;
86
- nodes?: Array<{
87
- background?: string | undefined;
88
- backgroundStyle?: 'cover' | 'ratio' | 'repeat' | undefined;
89
- color?: string | undefined;
90
- file?: string | undefined;
91
- height: number;
92
- id: string;
93
- label?: string | undefined;
94
- subpath?: string | undefined;
95
- text?: string | undefined;
96
- type: 'text' | 'file' | 'link' | 'group';
97
- url?: string | undefined;
98
- width: number;
99
- x: number;
100
- y: number;
101
- }>;
102
- };
103
- }
104
- /** Where a connection's ends are going, and where they were. */
105
- export interface ReconnectDetail {
106
- /** The connection's name, where it has one. */
107
- name: string;
108
- /** Its ends before, so a page that named none of its connections can find it. */
109
- was: {
110
- from: string;
111
- to: string;
112
- };
113
- from: string;
114
- to: string;
115
- fromSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
116
- toSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
117
- }
118
- /** A label a reader rewrote on a board, and what it said before. */
119
- export interface RelabelDetail {
120
- /** What was relabelled: a connection, or a group, whose name the board draws. */
121
- target: 'edge' | 'group';
122
- /** Its name on the board. */
123
- name: string;
124
- /** A connection's ends, so a page that named none of its connections can find it. */
125
- from?: string | undefined;
126
- to?: string | undefined;
127
- /** The new label, empty for none. */
128
- label: string;
129
- /** The label before. */
130
- was: string;
131
- }
132
- /** Why a file field did not take a file. */
133
- export type Refusal = 'count' | 'invalid' | 'size' | 'type';
134
- /** One file a file field did not take, and why. */
135
- export interface RefusedFile {
136
- /** The file. */
137
- readonly file: File;
138
- /** What the field's `validate` said about it, where it was the one refusing. */
139
- readonly message?: string;
140
- /** Why it was not taken. */
141
- readonly reason: Refusal;
142
- }
143
- /** The files a file field refused. */
144
- export interface RejectDetail {
145
- /** Each refused file with its reason, in the order they arrived. */
146
- files: RefusedFile[];
147
- }
148
- /** What a reader asked to take off the board. */
149
- export interface RemoveDetail {
150
- /** The cards, by name. */
151
- nodes: string[];
152
- /**
153
- * The connections, including every one attached to a card being removed,
154
- * since a line to nothing is not drawn but its element would stay behind.
155
- * Each carries its ends as well as its name, so a page that named none of
156
- * its connections can still find them.
157
- */
158
- edges: Array<{
159
- name: string;
160
- from: string;
161
- to: string;
162
- }>;
163
- }
164
- /**
165
- * Where a board is looking: the point at the middle of the view, in the
166
- * document's own units, and how far it is zoomed.
167
- *
168
- * The middle rather than a corner, so a view saved in one box and restored in
169
- * a box of another size shows the same thing in the middle of it.
170
- */
171
- export interface CanvasView {
172
- x: number;
173
- y: number;
174
- zoom: number;
175
- }
176
- /** What `ViewportPanDetail` was called when only Map had one. */
177
- export type MapPanDetail = ViewportPanDetail;
178
- /** What `ViewportZoomDetail` was called when only Map had one. */
179
- export type MapZoomDetail = ViewportZoomDetail;
180
- /** Detail carried by `helix-navigate`. */
25
+ /** Detail carried by `helix-before-navigate` and `helix-navigate`. */
181
26
  export interface NavigateDetail {
182
27
  /**
183
28
  * The page asked for, as a number, where the component pages by number.
@@ -189,7 +34,7 @@ export interface NavigateDetail {
189
34
  /** Where the view is moving to, in whatever the component pages by. */
190
35
  value: string;
191
36
  }
192
- /** Detail carried by `helix-filter`. */
37
+ /** Detail carried by `helix-before-filter` and `helix-filter`. */
193
38
  export interface FilterDetail {
194
39
  /** What the list is being narrowed to. */
195
40
  value: string;
@@ -201,58 +46,7 @@ export interface FoundDetail {
201
46
  /** Which match is current, counting from 0, or -1 for none. */
202
47
  index: number;
203
48
  }
204
- /**
205
- * Detail carried by `helix-facet`.
206
- *
207
- * **Everything needed to draw the chip, so nothing has to be looked up again.**
208
- * A consumer hearing this renders a `FilterChip` from it and stops: the labels
209
- * are the reader's words and the names are their own model's, and both are here
210
- * because only the thing that read the declarations knows both.
211
- */
212
- export interface FacetDetail {
213
- /**
214
- * How many values the comparison in force takes.
215
- *
216
- * **What tells an empty filter from no filter.** `values` empty usually means
217
- * the field is not being filtered any more, and a consumer drops the chip; a
218
- * comparison of arity `none`, `is empty` or `is set`, is a filter that has no
219
- * values to carry and never will. Without this the two arrive identical, and
220
- * the thing that read the declaration is the only thing that could say which.
221
- */
222
- arity: 'many' | 'none' | 'one';
223
- /** What the consumer's model calls the field. */
224
- field: string;
225
- /** What a reader is shown for the field. */
226
- label: string;
227
- /** What the consumer's model calls the comparison in force. */
228
- operator: string;
229
- /**
230
- * The comparison as a reader sees it, and **empty for the field's usual one**.
231
- *
232
- * Passed straight to a chip's `operator-label`, which draws the segment only
233
- * where there is one. Deciding it here is the point: the thing that read the
234
- * field knows which of its operators is the default, and the chip never has
235
- * to.
236
- */
237
- operatorLabel: string;
238
- /** What the field is compared to, as the consumer's own values. */
239
- values: readonly string[];
240
- }
241
- /** Detail carried by `helix-read`. */
242
- export interface ReadDetail {
243
- /**
244
- * The state being asked for, as a boolean rather than a word that reads like
245
- * one, which is `helix-before-toggle`'s rule and for the same reason: `"false"` is
246
- * truthy and a consumer who forgets that marks everything read.
247
- */
248
- read: boolean;
249
- }
250
- /** Detail carried by `helix-send`. */
251
- export interface SendDetail {
252
- /** What the reader wrote, as they left it. */
253
- value: string;
254
- }
255
- /** Detail carried by `helix-sort`. */
49
+ /** Detail carried by `helix-before-sort` and `helix-sort`. */
256
50
  export interface SortDetail {
257
51
  /**
258
52
  * The order being asked for, as `field:direction`.
@@ -270,121 +64,11 @@ export interface SortDetail {
270
64
  */
271
65
  value: string;
272
66
  }
273
- /** A hardware button Device Screen draws, named for what it does on the device. */
274
- export type DeviceButton = 'back' | 'home' | 'power' | 'recents' | 'rotate-left' | 'rotate-right' | 'volume-down' | 'volume-up';
275
- /** Detail carried by `helix-device-button`. */
276
- export interface DeviceButtonDetail {
277
- /** Which button was pressed. */
278
- button: DeviceButton;
279
- /**
280
- * How long the button was held, in milliseconds. `0` for a press from a key
281
- * or a script, which has no length.
282
- */
283
- duration: number;
284
- }
285
- /** Detail carried by `helix-device-key`. */
286
- export interface DeviceKeyDetail {
287
- /** Whether Alt, or Option on a Mac, was held. */
288
- altKey: boolean;
289
- /** The physical key, as `KeyboardEvent.code` names it: `KeyA`, `Enter`, `ArrowLeft`. */
290
- code: string;
291
- /** Whether Control was held. */
292
- ctrlKey: boolean;
293
- /** What the press produced, as `KeyboardEvent.key` names it: `a`, `A`, `Enter`. */
294
- key: string;
295
- /** Whether Command on a Mac, or the Windows key, was held. */
296
- metaKey: boolean;
297
- /** Whether the key went down or came up. */
298
- phase: 'down' | 'up';
299
- /** Whether the press is the key repeating while it is held. */
300
- repeat: boolean;
301
- /** Whether Shift was held. */
302
- shiftKey: boolean;
303
- }
304
- /** Detail carried by `helix-device-scroll`. */
305
- export interface DeviceScrollDetail {
306
- /** How far across, in device units, in the wheel's sense: positive scrolls toward the right. */
307
- deltaX: number;
308
- /** How far down, in device units, in the wheel's sense: positive scrolls toward the bottom. */
309
- deltaY: number;
310
- /** The screen's height in the units the point is measured in. */
311
- height: number;
312
- /** The screen's width in the units the point is measured in. */
313
- width: number;
314
- /** Where the pointer is, across from the screen's left edge. */
315
- x: number;
316
- /** Where the pointer is, down from the screen's top edge. */
317
- y: number;
318
- }
319
- /** Detail carried by `helix-device-swipe`. */
320
- export interface DeviceSwipeDetail {
321
- /** How long the finger was down, in milliseconds. */
322
- duration: number;
323
- /** Where the touch began, across from the screen's left edge. */
324
- fromX: number;
325
- /** Where the touch began, down from the screen's top edge. */
326
- fromY: number;
327
- /** The screen's height in the units the points are measured in. */
328
- height: number;
329
- /** Where the touch ended, across from the screen's left edge. */
330
- toX: number;
331
- /** Where the touch ended, down from the screen's top edge. */
332
- toY: number;
333
- /** The screen's width in the units the points are measured in. */
334
- width: number;
335
- }
336
- /** Detail carried by `helix-device-tap`. */
337
- export interface DeviceTapDetail {
338
- /** How long the finger was down, in milliseconds. A long press is a long tap. */
339
- duration: number;
340
- /** The screen's height in the units the point is measured in. */
341
- height: number;
342
- /** The screen's width in the units the point is measured in. */
343
- width: number;
344
- /** Where the tap was, across from the screen's left edge. */
345
- x: number;
346
- /** Where the tap was, down from the screen's top edge. */
347
- y: number;
348
- }
349
- /** Detail carried by `helix-device-text`. */
350
- export interface DeviceTextDetail {
351
- /** The text, as plain text. */
352
- text: string;
353
- }
354
- /** Detail carried by `helix-device-touch`. */
355
- export interface DeviceTouchDetail {
356
- /** The screen's height in the units the point is measured in. */
357
- height: number;
358
- /**
359
- * Which finger, counting from `0`. A finger keeps its number until it lifts,
360
- * and the lowest free number goes to the next finger down.
361
- */
362
- id: number;
363
- /**
364
- * Where the touch is in its life: `down` as the finger lands, `move` as it
365
- * moves, `up` as it lifts, and `cancel` when the browser takes the touch
366
- * away, which ends it without a lift.
367
- */
368
- phase: 'cancel' | 'down' | 'move' | 'up';
369
- /** The screen's width in the units the point is measured in. */
370
- width: number;
371
- /** Where the finger is, across from the screen's left edge. */
372
- x: number;
373
- /** Where the finger is, down from the screen's top edge. */
374
- y: number;
375
- }
376
67
  /** Detail carried by `helix-dismiss`. */
377
68
  export interface DismissDetail {
378
69
  /** Text content of the element asking to go, for identifying which it was. */
379
70
  label: string;
380
71
  }
381
- /** What a stop's own controls ask the tour to do. */
382
- export interface TourAskDetail {
383
- /**
384
- * Which control was pressed.
385
- */
386
- what: 'back' | 'next' | 'skip';
387
- }
388
72
  /**
389
73
  * Detail carried by every request that proposes a value.
390
74
  *
@@ -396,7 +80,7 @@ export interface TourAskDetail {
396
80
  *
397
81
  * A boolean is the case where it *is* lost, because `"false"` is truthy, so a
398
82
  * consumer who forgets to compare against the word gets the opposite answer and
399
- * no error. That is why checkedness has `helix-before-toggle` and its own boolean, and
83
+ * no error. That is why checkedness has `helix-before-check` and its own boolean, and
400
84
  * it is the line to hold: **stringify a value, never a fact.** A new control
401
85
  * whose state is a boolean wants an event with a typed detail, not a `String()`
402
86
  * call here.
@@ -417,15 +101,16 @@ export interface ChangeDetail {
417
101
  value: string;
418
102
  }
419
103
  /**
420
- * Detail carried by `helix-before-reorder`, `helix-reorder`, and
421
- * `helix-reordered`: one row, item, or column moved to a new place.
104
+ * Detail carried by `helix-before-reorder` and `helix-reorder`: one row,
105
+ * item, or column moved to a new place.
422
106
  *
423
107
  * `from` and `to` count from 0 in the old order and in `keys`. Where your
424
108
  * array holds every key in the same order, `rows.splice(to, 0,
425
109
  * ...rows.splice(from, 1))` makes the same move.
426
110
  *
427
111
  * **`kind` is a field because one element sends both.** A data table moves its
428
- * rows and its columns, and both are `helix-reorder` from the same host.
112
+ * rows and its columns, and both are `helix-before-reorder` and `helix-reorder`
113
+ * from the same host.
429
114
  */
430
115
  export interface ReorderDetail extends ChangeDetail {
431
116
  /** Where the key was before the move, counting from 0 in the old order. */
@@ -456,23 +141,6 @@ export interface ActivateDetail extends ChangeDetail {
456
141
  /** The value that was current before the move, where the set knows it. */
457
142
  previous?: string;
458
143
  }
459
- /** Where each note was laid out, by its `id`, in the renderer's own units. */
460
- export interface GraphLayoutDetail {
461
- positions: Record<string, {
462
- x: number;
463
- y: number;
464
- z?: number | undefined;
465
- }>;
466
- }
467
- /** What changed on a graph frame that the renderer has to hear. */
468
- export interface GraphPartChangeDetail {
469
- /**
470
- * `data` for the notes or the links, which are drawn again; `focus` for the
471
- * selected note or the depth, which change what is emphasized and shown;
472
- * `gestures` for which gestures the renderer takes.
473
- */
474
- kind: 'data' | 'focus' | 'gestures';
475
- }
476
144
  /** Detail carried by `helix-plot-change`. */
477
145
  export interface PlotChangeDetail {
478
146
  /** `data` for the points or the axes, which are drawn again; `focus` for the point the keys rest on. */
@@ -485,77 +153,12 @@ export interface PlotTurnDetail {
485
153
  /** Steps to tilt, positive to look from higher. */
486
154
  up: number;
487
155
  }
488
- /** One signal between two notes, as the frame's `signal()` sends it. */
489
- export interface GraphSignalDetail {
490
- /** The note the signal leaves, by its `id`. */
491
- from: string;
492
- /**
493
- * What the signal means, which colors it. Where none is given, the signal
494
- * turns from the first note's color to the second's as it crosses.
495
- */
496
- tone?: 'accent' | 'danger' | 'info' | 'neutral' | 'primary' | 'success' | 'warning' | undefined;
497
- /** The note the signal reaches, by its `id`. */
498
- to: string;
499
- }
500
- /** Detail carried by `helix-graph-filter`. */
501
- export interface GraphFilterDetail {
502
- /** The groups the graph would hide, by name: every group the reader has turned off, after this press. */
503
- hidden: readonly string[];
504
- }
505
- /** A rotate request: turn by some degrees, or turn to a bearing. */
506
- export interface MapRotateDetail {
507
- /** Degrees to turn the map clockwise. Negative turns it counterclockwise. */
508
- by?: number;
509
- /** The bearing to turn the map to, in degrees clockwise from north. `0` faces north. */
510
- to?: number;
511
- }
512
- /** A tilt request, in degrees. */
513
- export interface MapTiltDetail {
514
- /** Degrees to tilt the map toward the horizon. Negative tilts it back toward flat. */
515
- by?: number;
516
- /** The tilt to go to, in degrees from looking straight down. `0` is flat. */
517
- to?: number;
518
- }
519
- /** What changed on a part of a map: a line or a shape, or something standing on a place. */
520
- export interface MapPartChangeDetail {
521
- /**
522
- * `layer` for a route or an area, which is redrawn; `place` for a marker or
523
- * a position, which is moved; `cluster` for a marker gathered into another
524
- * or let go, which moves the frame's tab stop; `menu` for the frame's layers
525
- * menu opening, which asks for its map-type previews; `gestures` for which
526
- * gestures the map takes, which the renderer is told.
527
- */
528
- kind: 'cluster' | 'gestures' | 'layer' | 'menu' | 'place';
529
- }
530
- /** What a cluster a reader pressed holds. */
531
- export interface MapClusterDetail {
532
- /**
533
- * A points layer's count, as the connector keyed it, where the cluster is
534
- * one the renderer drew rather than one of markers.
535
- */
536
- key?: string | undefined;
537
- /** The names of the places it stands for, the one it is drawn as first, where they are known. */
538
- labels: string[];
539
- }
540
- /** Detail carried by `helix-scrolled`. */
541
- export interface ScrolledDetail {
542
- /**
543
- * Whether the page is scrolled away from the top, as a boolean and not a word
544
- * that reads like one. Follows `helix-before-toggle`'s rule for the same reason.
545
- */
546
- scrolled: boolean;
547
- }
548
156
  /**
549
157
  * What a press came from, React Aria's `PointerType`: a pointer by its kind, a
550
158
  * key, or `virtual` for a press with neither behind it, which is how a screen
551
159
  * reader's press and a script's `click()` arrive.
552
160
  */
553
161
  export type PressPointerType = 'keyboard' | 'mouse' | 'pen' | 'touch' | 'virtual';
554
- /** Detail carried by `helix-press`. */
555
- export interface PressDetail {
556
- /** What the press came from. */
557
- pointerType: PressPointerType;
558
- }
559
162
  /** Detail carried by `helix-reading-change` and `helix-reading-press`. */
560
163
  export interface ReadingDetail {
561
164
  /** The reading's place among the table's rows, counting from 0, or `-1` once no reading is shown. */
@@ -570,85 +173,22 @@ export interface ReadingDetail {
570
173
  */
571
174
  series: string;
572
175
  }
573
- /** Detail carried by `helix-band`. */
574
- export interface BandDetail {
575
- /** The band the reading is in now, or `''` where it is in none. */
576
- band: '' | 'fair' | 'good' | 'poor';
577
- }
578
- /** Detail carried by `helix-tour-status`. */
579
- export interface TourStatusDetail {
580
- /** The stop it happened at, counting from 0. */
581
- index: number;
582
- /** Waiting at a `wait` stop for its target, skipped, or completed. */
583
- status: 'completed' | 'skipped' | 'waiting';
584
- }
585
- /** Detail carried by `helix-before-toggle`. */
586
- export interface ToggleDetail {
176
+ /** Detail carried by `helix-before-check` and `helix-check`. */
177
+ export interface CheckDetail {
587
178
  /** The state being asked for, as a boolean and not a word that reads like one. */
588
179
  checked: boolean;
589
180
  }
590
- /** Detail carried by `helix-create`. */
591
- export interface CreateDetail {
592
- /** What the reader typed, which is being offered as a new answer. */
593
- value: string;
594
- }
595
- /** Detail carried by `helix-aura-fallback`. */
596
- export interface AuraFallbackDetail {
597
- /**
598
- * Why the gradient shows: `software` for a renderer that draws on the CPU,
599
- * `unavailable` for no WebGL or a shader the browser refused, and `lost` for
600
- * a context the browser took back, on a GPU reset or past its limit of about
601
- * sixteen.
602
- */
603
- reason: 'lost' | 'software' | 'unavailable';
604
- }
605
- /** Detail carried by `helix-strands-fallback`. */
606
- export interface StrandsFallbackDetail {
607
- /**
608
- * Why the gradient shows: `software` for a renderer that draws on the CPU,
609
- * `unavailable` for no WebGL or a program the browser refused, and `lost`
610
- * for a context the browser took back, on a GPU reset or past its limit of
611
- * about sixteen.
612
- */
613
- reason: 'lost' | 'software' | 'unavailable';
614
- }
615
- /** Detail carried by `helix-range-change`. */
616
- export interface RangeDetail {
617
- /** The index of the first item on screen. */
618
- first: number;
619
- /** One past the index of the last item on screen. */
620
- last: number;
621
- }
622
- /** Detail carried by `helix-typing`. */
623
- export interface TypingDetail {
624
- /** Whether the user is writing now, as a boolean and not a word that reads like one. */
625
- typing: boolean;
626
- }
627
181
  /** Detail carried by `helix-copy`. */
628
182
  export interface CopyDetail {
629
183
  /** What was put on the clipboard. */
630
184
  value: string;
631
185
  }
632
- /** Detail carried by `helix-console`. */
633
- export interface ConsoleDetail {
634
- /** How the message was logged. */
635
- level: 'log' | 'info' | 'warn' | 'error';
636
- /** The message, already flattened to text. */
637
- text: string;
638
- }
639
186
  /** Detail carried by `helix-resize`. */
640
187
  export interface ResizeDetail {
641
188
  /** How tall the content is, in CSS pixels. */
642
189
  size: number;
643
190
  }
644
- /** Detail carried by `helix-caret`. */
645
- export interface CaretDetail {
646
- /** One-based column, counted in characters from the start of the line. */
647
- column: number;
648
- /** One-based line. */
649
- line: number;
650
- }
651
- /** Detail carried by `helix-select`. */
191
+ /** Detail carried by `helix-before-select` and `helix-select`. */
652
192
  export interface SelectDetail {
653
193
  /**
654
194
  * Whether the reader took the row's second destination rather than its first.
@@ -678,46 +218,3 @@ export interface ListenDetail {
678
218
  /** The phrase the field settled on, as it went into the value. */
679
219
  text: string;
680
220
  }
681
- /** What a shortcut reports when its chord is pressed. */
682
- export interface ShortcutDetail {
683
- /**
684
- * The chord that matched, as it was written.
685
- *
686
- * Given back rather than left to be remembered, so one handler can serve
687
- * several keys and answer by comparing what it was told.
688
- */
689
- keys: string;
690
- }
691
- /** Detail carried by `helix-terminal-input`. */
692
- export interface TerminalInputDetail {
693
- /**
694
- * Whether `data` holds one byte per character, which some mouse reports
695
- * do, where the rest of input is text. Write it to the process as those
696
- * bytes, such as with `Uint8Array.from(data, (character) => character.charCodeAt(0))`.
697
- */
698
- binary: boolean;
699
- /** What to write to the process, encoded as the program reads keys and pastes. */
700
- data: string;
701
- }
702
- /** Detail carried by `helix-terminal-link`. */
703
- export interface TerminalLinkDetail {
704
- /** The address, as the program wrote it. */
705
- href: string;
706
- }
707
- /** Detail carried by `helix-terminal-resize`. */
708
- export interface TerminalResizeDetail {
709
- /** How many character cells fit across the grid. */
710
- columns: number;
711
- /** How tall the grid is, in CSS pixels, which a pseudo-terminal's size also takes. */
712
- height: number;
713
- /** How many lines of cells fit down the grid. */
714
- rows: number;
715
- /** How wide the grid is, in CSS pixels. */
716
- width: number;
717
- }
718
- /** Detail carried by `helix-terminal-title`. */
719
- export interface TerminalTitleDetail {
720
- /** The title, as the program set it. Empty where it cleared its title. */
721
- title: string;
722
- }
723
- export {};