@fusion.dev/helix-core 0.144.0 → 0.146.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 (262) hide show
  1. package/custom-elements.json +5724 -1404
  2. package/dist/controllers/aria-forward-controller/aria-forward-controller.d.ts +3 -2
  3. package/dist/controllers/aria-forward-controller/aria-forward-controller.js +4 -14
  4. package/dist/controllers/chart-pointer-controller/chart-pointer-controller.d.ts +65 -3
  5. package/dist/controllers/chart-pointer-controller/chart-pointer-controller.js +37 -9
  6. package/dist/controllers/chart-pointer-controller/reading-step.d.ts +7 -1
  7. package/dist/controllers/chart-pointer-controller/reading-step.js +5 -0
  8. package/dist/controllers/countdown-controller/countdown-controller.d.ts +55 -0
  9. package/dist/controllers/countdown-controller/countdown-controller.js +57 -0
  10. package/dist/controllers/keyboard-navigation-controller/keyboard-navigation-controller.d.ts +20 -57
  11. package/dist/controllers/keyboard-navigation-controller/keyboard-navigation-controller.js +11 -40
  12. package/dist/controllers/relative-clock-controller/relative-clock-controller.d.ts +44 -0
  13. package/dist/controllers/relative-clock-controller/relative-clock-controller.js +31 -0
  14. package/dist/controllers/source-controller/source-controller.d.ts +10 -3
  15. package/dist/controllers/source-controller/source-controller.js +7 -4
  16. package/dist/controllers/virtualize-controller/virtualize-controller.d.ts +116 -36
  17. package/dist/controllers/virtualize-controller/virtualize-controller.js +122 -12
  18. package/dist/events/action.d.ts +12 -0
  19. package/dist/events/action.js +6 -0
  20. package/dist/events/activate.d.ts +22 -0
  21. package/dist/events/activate.js +11 -0
  22. package/dist/events/aura-fallback.d.ts +12 -0
  23. package/dist/events/aura-fallback.js +11 -0
  24. package/dist/events/before-activate.d.ts +24 -0
  25. package/dist/events/before-activate.js +11 -0
  26. package/dist/events/before-change.d.ts +26 -0
  27. package/dist/events/before-change.js +11 -0
  28. package/dist/events/before-close.d.ts +6 -0
  29. package/dist/events/before-close.js +11 -0
  30. package/dist/events/before-collapse.d.ts +6 -0
  31. package/dist/events/before-collapse.js +11 -0
  32. package/dist/events/before-edit.d.ts +6 -0
  33. package/dist/events/before-edit.js +11 -0
  34. package/dist/events/before-move.d.ts +17 -0
  35. package/dist/events/before-move.js +11 -0
  36. package/dist/events/before-open.d.ts +17 -0
  37. package/dist/events/before-open.js +11 -0
  38. package/dist/events/before-panel-resize.d.ts +13 -0
  39. package/dist/events/before-panel-resize.js +11 -0
  40. package/dist/events/before-pin.d.ts +6 -0
  41. package/dist/events/before-pin.js +11 -0
  42. package/dist/events/before-reconnect.d.ts +14 -0
  43. package/dist/events/before-reconnect.js +11 -0
  44. package/dist/events/before-relabel.d.ts +15 -0
  45. package/dist/events/before-relabel.js +11 -0
  46. package/dist/events/before-resize.d.ts +6 -0
  47. package/dist/events/before-resize.js +11 -0
  48. package/dist/events/before-split.d.ts +12 -0
  49. package/dist/events/before-split.js +11 -0
  50. package/dist/events/before-toggle.d.ts +23 -0
  51. package/dist/events/before-toggle.js +11 -0
  52. package/dist/events/canvas-edit.d.ts +16 -0
  53. package/dist/events/canvas-edit.js +11 -0
  54. package/dist/events/canvas-pan.d.ts +13 -0
  55. package/dist/events/canvas-pan.js +11 -0
  56. package/dist/events/canvas-view.d.ts +14 -0
  57. package/dist/events/canvas-view.js +11 -0
  58. package/dist/events/canvas-zoom.d.ts +6 -0
  59. package/dist/events/canvas-zoom.js +11 -0
  60. package/dist/events/caret.d.ts +17 -0
  61. package/dist/events/caret.js +11 -0
  62. package/dist/events/clear.d.ts +11 -0
  63. package/dist/events/clear.js +6 -0
  64. package/dist/events/collapse.d.ts +12 -0
  65. package/dist/events/collapse.js +11 -0
  66. package/dist/events/complete.d.ts +26 -0
  67. package/dist/events/complete.js +11 -0
  68. package/dist/events/connect.d.ts +14 -0
  69. package/dist/events/connect.js +11 -0
  70. package/dist/events/console.d.ts +13 -0
  71. package/dist/events/console.js +11 -0
  72. package/dist/events/copy-error.d.ts +9 -0
  73. package/dist/events/copy-error.js +6 -0
  74. package/dist/events/copy.d.ts +12 -0
  75. package/dist/events/copy.js +10 -0
  76. package/dist/events/create.d.ts +18 -0
  77. package/dist/events/create.js +11 -0
  78. package/dist/events/details.d.ts +454 -0
  79. package/dist/events/details.js +1 -0
  80. package/dist/events/dismiss.d.ts +16 -0
  81. package/dist/events/dismiss.js +11 -0
  82. package/dist/events/edit.d.ts +12 -0
  83. package/dist/events/edit.js +11 -0
  84. package/dist/events/end.d.ts +9 -0
  85. package/dist/events/end.js +6 -0
  86. package/dist/events/events.d.ts +125 -1306
  87. package/dist/events/events.js +105 -739
  88. package/dist/events/expand.d.ts +10 -0
  89. package/dist/events/expand.js +11 -0
  90. package/dist/events/facet.d.ts +17 -0
  91. package/dist/events/facet.js +11 -0
  92. package/dist/events/filter.d.ts +12 -0
  93. package/dist/events/filter.js +11 -0
  94. package/dist/events/filtered.d.ts +12 -0
  95. package/dist/events/filtered.js +11 -0
  96. package/dist/events/graph-filter.d.ts +10 -0
  97. package/dist/events/graph-filter.js +11 -0
  98. package/dist/events/graph-layout.d.ts +10 -0
  99. package/dist/events/graph-layout.js +11 -0
  100. package/dist/events/graph-pan.d.ts +9 -0
  101. package/dist/events/graph-pan.js +11 -0
  102. package/dist/events/graph-part-change.d.ts +10 -0
  103. package/dist/events/graph-part-change.js +11 -0
  104. package/dist/events/graph-ready.d.ts +8 -0
  105. package/dist/events/graph-ready.js +6 -0
  106. package/dist/events/graph-signal.d.ts +11 -0
  107. package/dist/events/graph-signal.js +11 -0
  108. package/dist/events/graph-zoom.d.ts +6 -0
  109. package/dist/events/graph-zoom.js +11 -0
  110. package/dist/events/history.d.ts +16 -0
  111. package/dist/events/history.js +11 -0
  112. package/dist/events/load-more.d.ts +12 -0
  113. package/dist/events/load-more.js +6 -0
  114. package/dist/events/load.d.ts +12 -0
  115. package/dist/events/load.js +6 -0
  116. package/dist/events/map-cluster.d.ts +15 -0
  117. package/dist/events/map-cluster.js +11 -0
  118. package/dist/events/map-pan.d.ts +18 -0
  119. package/dist/events/map-pan.js +11 -0
  120. package/dist/events/map-part-change.d.ts +16 -0
  121. package/dist/events/map-part-change.js +11 -0
  122. package/dist/events/map-ready.d.ts +15 -0
  123. package/dist/events/map-ready.js +6 -0
  124. package/dist/events/map-rotate.d.ts +9 -0
  125. package/dist/events/map-rotate.js +11 -0
  126. package/dist/events/map-tilt.d.ts +9 -0
  127. package/dist/events/map-tilt.js +11 -0
  128. package/dist/events/map-zoom.d.ts +13 -0
  129. package/dist/events/map-zoom.js +11 -0
  130. package/dist/events/move.d.ts +11 -0
  131. package/dist/events/move.js +11 -0
  132. package/dist/events/names.d.ts +15 -0
  133. package/dist/events/names.js +88 -0
  134. package/dist/events/navigate.d.ts +13 -0
  135. package/dist/events/navigate.js +11 -0
  136. package/dist/events/next.d.ts +23 -0
  137. package/dist/events/next.js +11 -0
  138. package/dist/events/panel-resize.d.ts +12 -0
  139. package/dist/events/panel-resize.js +11 -0
  140. package/dist/events/pin.d.ts +12 -0
  141. package/dist/events/pin.js +11 -0
  142. package/dist/events/press.d.ts +19 -0
  143. package/dist/events/press.js +11 -0
  144. package/dist/events/preview.d.ts +14 -0
  145. package/dist/events/preview.js +11 -0
  146. package/dist/events/previous.d.ts +6 -0
  147. package/dist/events/previous.js +11 -0
  148. package/dist/events/range-change.d.ts +10 -0
  149. package/dist/events/range-change.js +11 -0
  150. package/dist/events/read.d.ts +19 -0
  151. package/dist/events/read.js +11 -0
  152. package/dist/events/reconnect.d.ts +6 -0
  153. package/dist/events/reconnect.js +11 -0
  154. package/dist/events/reject.d.ts +13 -0
  155. package/dist/events/reject.js +11 -0
  156. package/dist/events/relabel.d.ts +6 -0
  157. package/dist/events/relabel.js +11 -0
  158. package/dist/events/remove.d.ts +12 -0
  159. package/dist/events/remove.js +11 -0
  160. package/dist/events/reorder.d.ts +18 -0
  161. package/dist/events/reorder.js +11 -0
  162. package/dist/events/reordered.d.ts +12 -0
  163. package/dist/events/reordered.js +11 -0
  164. package/dist/events/resize.d.ts +19 -0
  165. package/dist/events/resize.js +11 -0
  166. package/dist/events/resized.d.ts +16 -0
  167. package/dist/events/resized.js +11 -0
  168. package/dist/events/sample-end.d.ts +5 -0
  169. package/dist/events/sample-end.js +6 -0
  170. package/dist/events/sample-start.d.ts +18 -0
  171. package/dist/events/sample-start.js +6 -0
  172. package/dist/events/scrolled.d.ts +32 -0
  173. package/dist/events/scrolled.js +11 -0
  174. package/dist/events/select.d.ts +12 -0
  175. package/dist/events/select.js +11 -0
  176. package/dist/events/selected.d.ts +12 -0
  177. package/dist/events/selected.js +11 -0
  178. package/dist/events/send.d.ts +18 -0
  179. package/dist/events/send.js +11 -0
  180. package/dist/events/shortcut.d.ts +13 -0
  181. package/dist/events/shortcut.js +11 -0
  182. package/dist/events/sort.d.ts +17 -0
  183. package/dist/events/sort.js +11 -0
  184. package/dist/events/sorted.d.ts +15 -0
  185. package/dist/events/sorted.js +11 -0
  186. package/dist/events/split.d.ts +12 -0
  187. package/dist/events/split.js +11 -0
  188. package/dist/events/toggle.d.ts +15 -0
  189. package/dist/events/toggle.js +11 -0
  190. package/dist/events/tour-ask.d.ts +16 -0
  191. package/dist/events/tour-ask.js +11 -0
  192. package/dist/events/tour-status.d.ts +14 -0
  193. package/dist/events/tour-status.js +11 -0
  194. package/dist/events/typing.d.ts +10 -0
  195. package/dist/events/typing.js +11 -0
  196. package/dist/helix-element/helix-element.js +14 -1
  197. package/dist/helix-element/react-bridge.d.ts +19 -4
  198. package/dist/helix-element/react-bridge.js +15 -2
  199. package/dist/helix-form-element/helix-form-element.d.ts +5 -20
  200. package/dist/helix-form-element/helix-form-element.js +4 -56
  201. package/dist/index.d.ts +17 -3
  202. package/dist/index.js +17 -3
  203. package/dist/mixins/mixin-chart-source/mixin-chart-source.d.ts +17 -2
  204. package/dist/mixins/mixin-chart-source/mixin-chart-source.js +22 -1
  205. package/dist/mixins/mixin-controller-active/mixin-controller-active.js +4 -3
  206. package/dist/mixins/mixin-controller-checked/mixin-controller-checked.d.ts +5 -2
  207. package/dist/mixins/mixin-controller-checked/mixin-controller-checked.js +2 -1
  208. package/dist/mixins/mixin-controller-value/mixin-controller-value.d.ts +4 -2
  209. package/dist/mixins/mixin-controller-value/mixin-controller-value.js +7 -2
  210. package/dist/mixins/mixin-dismissible/mixin-dismissible.js +20 -4
  211. package/dist/mixins/mixin-field/mixin-field.js +2 -2
  212. package/dist/mixins/mixin-picker-field/mixin-picker-field.d.ts +15 -3
  213. package/dist/mixins/mixin-picker-field/mixin-picker-field.js +11 -4
  214. package/dist/mixins/mixin-segmented-field/mixin-segmented-field.d.ts +1 -1
  215. package/dist/mixins/mixin-segmented-field/mixin-segmented-field.js +10 -4
  216. package/dist/utils/audit-name/audit-name-off.d.ts +10 -0
  217. package/dist/utils/audit-name/audit-name-off.js +1 -0
  218. package/dist/utils/audit-name/audit-name.d.ts +19 -6
  219. package/dist/utils/audit-name/audit-name.js +10 -27
  220. package/dist/utils/calendar/calendar.js +7 -7
  221. package/dist/utils/draw-icon/draw-icon.d.ts +7 -6
  222. package/dist/utils/draw-tooltip/draw-tooltip.d.ts +1 -1
  223. package/dist/utils/draw-tooltip/draw-tooltip.js +3 -1
  224. package/dist/utils/draw-tooltip/spoken-reading.d.ts +6 -2
  225. package/dist/utils/draw-tooltip/spoken-reading.js +5 -4
  226. package/dist/utils/heading-level/heading-level.d.ts +8 -0
  227. package/dist/utils/heading-level/heading-level.js +4 -0
  228. package/dist/utils/implicit-submit/implicit-submit.d.ts +25 -0
  229. package/dist/utils/implicit-submit/implicit-submit.js +52 -0
  230. package/dist/utils/name-text/name-text.d.ts +12 -0
  231. package/dist/utils/name-text/name-text.js +25 -0
  232. package/dist/utils/number-format/number-format.d.ts +2 -1
  233. package/dist/utils/number-format/number-format.js +13 -5
  234. package/dist/utils/plain-click/plain-click.d.ts +10 -0
  235. package/dist/utils/plain-click/plain-click.js +1 -0
  236. package/dist/utils/press-type/press-type.d.ts +20 -0
  237. package/dist/utils/press-type/press-type.js +15 -0
  238. package/dist/utils/range-add/range-add.d.ts +19 -0
  239. package/dist/utils/range-add/range-add.js +5 -0
  240. package/dist/utils/reflect-elements/reflect-elements.d.ts +3 -3
  241. package/dist/utils/report-runtime/report-runtime.d.ts +9 -4
  242. package/dist/utils/row-data/row-data.d.ts +15 -0
  243. package/dist/utils/row-data/row-data.js +17 -0
  244. package/dist/utils/row-order/row-order.d.ts +141 -0
  245. package/dist/utils/row-order/row-order.js +76 -0
  246. package/dist/utils/tell-disclosure/tell-disclosure.d.ts +4 -0
  247. package/dist/utils/tree-arrow/tree-arrow.d.ts +23 -0
  248. package/dist/utils/tree-arrow/tree-arrow.js +9 -0
  249. package/dist/utils/typeahead/typeahead.d.ts +67 -0
  250. package/dist/utils/typeahead/typeahead.js +36 -0
  251. package/dist/utils/value-as/value-as.d.ts +9 -0
  252. package/dist/utils/value-as/value-as.js +9 -1
  253. package/dist/utils/watch-labels/watch-labels.d.ts +16 -0
  254. package/dist/utils/watch-labels/watch-labels.js +34 -0
  255. package/dist/utils/words-converter/words-converter.d.ts +14 -0
  256. package/dist/utils/words-converter/words-converter.js +15 -0
  257. package/dist/utils/write-time/write-time.d.ts +4 -4
  258. package/dist/utils/written-list/written-list.d.ts +29 -0
  259. package/dist/utils/written-list/written-list.js +30 -0
  260. package/dist/version.d.ts +1 -1
  261. package/dist/version.js +1 -1
  262. package/package.json +18 -5
@@ -11,1304 +11,115 @@
11
11
  * for consumers writing plain HTML, who never see the React wrappers.
12
12
  * 3. The event name lives on the class as `eventName`, so a listener and a
13
13
  * dispatch cannot disagree about the string.
14
- */
15
- /** Detail carried by `helix-before-open` and `helix-before-close`. */
16
- export interface OpenDetail {
17
- /** The state the element is moving to. */
18
- open: boolean;
19
- }
20
- /**
21
- * Fired when an element is about to open.
22
- *
23
- * Cancelable: `preventDefault()` refuses the change, and the element stays
24
- * closed. Paired with `helix-before-close` rather than being one event carrying a
25
- * boolean, so a listener that only cares about one direction says so by which
26
- * event it listens for.
27
- *
28
- * Neither bubbles nor composed. A dialog inside a drawer inside a popover is
29
- * three overlays, and an inner one opening must not read as the outer one
30
- * opening.
31
- */
32
- export declare class HelixBeforeOpenEvent extends CustomEvent<OpenDetail> {
33
- static readonly eventName = "helix-before-open";
34
- constructor();
35
- }
36
- /** Fired when an element is about to close. See `HelixBeforeOpenEvent`. */
37
- export declare class HelixBeforeCloseEvent extends CustomEvent<OpenDetail> {
38
- static readonly eventName = "helix-before-close";
39
- constructor();
40
- }
41
- /**
42
- * Fired when the reader asks for the next thing in a set.
43
- *
44
- * Paired with `helix-previous` rather than being one event carrying a
45
- * direction, which is the reason `helix-before-open` gives for its own pair: a
46
- * listener that only cares about one direction says so by which event it
47
- * listens for. The detail carries the direction anyway, so a consumer who does
48
- * want one handler can have one.
49
- *
50
- * Bubbles and is composed, because the thing that answers this is usually not
51
- * the thing that asked. A video has no notion of a set: it plays one resource,
52
- * and what comes next is a playlist's business or the consumer's, so the event
53
- * has to reach a wrapper.
54
- *
55
- * Not cancelable. There is no default action to refuse: the component that
56
- * fires this does nothing on its own, and an event whose `preventDefault` means
57
- * nothing is an event that lies about what it offers.
58
- */
59
- export declare class HelixNextEvent extends CustomEvent<SkipDetail> {
60
- static readonly eventName = "helix-next";
61
- constructor();
62
- }
63
- /** Fired when the reader asks for the previous one. See `HelixNextEvent`. */
64
- export declare class HelixPreviousEvent extends CustomEvent<SkipDetail> {
65
- static readonly eventName = "helix-previous";
66
- constructor();
67
- }
68
- /** Detail carried by `helix-next` and `helix-previous`. */
69
- export interface SkipDetail {
70
- /** Which way the reader asked to go. */
71
- to: 'next' | 'previous';
72
- }
73
- /**
74
- * Detail carried by a pan request, `helix-map-pan` being the one Map sends.
75
- *
76
- * Named for the surface rather than for the map, because the surface is shared:
77
- * `MixinViewport` is what asks, and a canvas or a graph asking the same question
78
- * should not be importing a type with `Map` in its name. `MapPanDetail` stays as
79
- * an alias, that being what a consumer of Map wrote before this was split.
80
- */
81
- export interface ViewportPanDetail {
82
- /** Which way the reader asked to go, in reading order rather than compass order. */
83
- to: 'up' | 'down' | 'start' | 'end';
84
- /** How far, as a fraction of the viewport the map is drawn in. */
85
- by: number;
86
- }
87
- /** Detail carried by a zoom request, named for the surface for the same reason. */
88
- export interface ViewportZoomDetail {
89
- /** Which way, `1` in and `-1` out, so a consumer can multiply by their own step. */
90
- by: number;
91
- }
92
- /**
93
- * The board moved, which on a canvas is a fact rather than a request.
94
14
  *
95
- * **`Map` asks and `Canvas` tells, and the difference is who draws.** A map is
96
- * somebody else's, so the frame can only ask them to move it; a canvas is drawn
97
- * here from a document, so the same press moves it and this says that it did.
98
- * The detail is the same shape either way, being a direction and a distance.
99
- */
100
- export declare class HelixCanvasPanEvent extends CustomEvent<ViewportPanDetail> {
101
- static readonly eventName = "helix-canvas-pan";
102
- constructor(detail: ViewportPanDetail);
103
- }
104
- /** The board zoomed, and told, for the same reason. */
105
- export declare class HelixCanvasZoomEvent extends CustomEvent<ViewportZoomDetail> {
106
- static readonly eventName = "helix-canvas-zoom";
107
- constructor(detail: ViewportZoomDetail);
108
- }
109
- /**
110
- * Where a move or a resize puts each card it carries, in the board's own
111
- * units.
112
- *
113
- * **One contract for both**, because what a controlled page does with either
114
- * is the same: write the geometry the detail says onto the cards it renders. A
115
- * resize says `width` and `height` as well, and moves `x` and `y` too when it
116
- * is dragged from a corner other than the bottom right.
117
- */
118
- export interface MoveDetail {
119
- /**
120
- * Every card the gesture moves, the one the reader took hold of first.
121
- *
122
- * **A list, because a group carries what is inside it.** Dragging a group
123
- * moves its cards with it, which is what every board does, and a controlled
124
- * consumer who refuses the move has to write every position it would have
125
- * written, not only the one the pointer was on.
126
- */
127
- nodes: Array<{
128
- name: string;
129
- x: number;
130
- y: number;
131
- width?: number;
132
- height?: number;
133
- }>;
134
- }
135
- /**
136
- * Cards are about to move, and can be refused.
137
- *
138
- * **This is the controlled half, the way `helix-before-open` is for a
139
- * dialog.** A board moves its own cards by default, writing `x` and `y` onto
140
- * each one the way an input writes its own value. A consumer who keeps the
141
- * positions in their own state calls `preventDefault()` here, writes what the
142
- * detail says into that state, and renders the cards where it puts them.
143
- *
144
- * Sent for every step of a drag, so a controlled board follows the pointer
145
- * rather than jumping on the drop.
146
- */
147
- export declare class HelixBeforeMoveEvent extends CustomEvent<MoveDetail> {
148
- static readonly eventName = "helix-before-move";
149
- constructor(detail: MoveDetail);
150
- }
151
- /**
152
- * Cards moved, and the move is finished: a drag let go, or a key press.
153
- *
154
- * The `change` to `helix-before-move`'s `input`: what a consumer binds who
155
- * only wants to save a board once somebody has finished rearranging it.
156
- */
157
- export declare class HelixMoveEvent extends CustomEvent<MoveDetail> {
158
- static readonly eventName = "helix-move";
159
- constructor(detail: MoveDetail);
160
- }
161
- /** Which two cards a reader asked to join, by name, and the side they started from. */
162
- export interface ConnectDetail {
163
- from: string;
164
- to: string;
165
- /** The side the reader drew from, where they drew from one. */
166
- fromSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
167
- /** The side nearest where they let go, where they let go over a card. */
168
- toSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
169
- }
170
- /**
171
- * A reader asked for two cards to be joined.
172
- *
173
- * **A request with no default, which is the difference from a move.** A board
174
- * writes a card's position onto the card, because the card is already there.
175
- * A connection is a new element, and a board that added one to markup React
176
- * renders would have it put back or thrown away on the next render. So the board
177
- * asks and the page adds the `helix-canvas-edge`, the way `Map` asks to be panned.
178
- */
179
- export declare class HelixConnectEvent extends CustomEvent<ConnectDetail> {
180
- static readonly eventName = "helix-connect";
181
- constructor(detail: ConnectDetail);
182
- }
183
- /** Where a connection's ends are going, and where they were. */
184
- export interface ReconnectDetail {
185
- /** The connection's name, where it has one. */
186
- name: string;
187
- /** Its ends before, so a page that named none of its connections can find it. */
188
- was: {
189
- from: string;
190
- to: string;
191
- };
192
- from: string;
193
- to: string;
194
- fromSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
195
- toSide?: 'top' | 'right' | 'bottom' | 'left' | undefined;
196
- }
197
- /**
198
- * A connection's end is about to move to another card or another side, and can
199
- * be refused.
200
- *
201
- * **A move, not a request, and that is the difference from `helix-connect`.**
202
- * The connection is already an element on the page, so the board rewrites its
203
- * ends itself, the way it writes a card's position onto the card; a page that
204
- * holds its connections in state refuses this and writes them there.
205
- */
206
- export declare class HelixBeforeReconnectEvent extends CustomEvent<ReconnectDetail> {
207
- static readonly eventName = "helix-before-reconnect";
208
- constructor(detail: ReconnectDetail);
209
- }
210
- /** A connection's end moved, and the move is finished. */
211
- export declare class HelixReconnectEvent extends CustomEvent<ReconnectDetail> {
212
- static readonly eventName = "helix-reconnect";
213
- constructor(detail: ReconnectDetail);
214
- }
215
- /** A label a reader rewrote on a board, and what it said before. */
216
- export interface RelabelDetail {
217
- /** What was relabelled: a connection, or a group, whose name the board draws. */
218
- target: 'edge' | 'group';
219
- /** Its name on the board. */
220
- name: string;
221
- /** A connection's ends, so a page that named none of its connections can find it. */
222
- from?: string | undefined;
223
- to?: string | undefined;
224
- /** The new label, empty for none. */
225
- label: string;
226
- /** The label before. */
227
- was: string;
228
- }
229
- /**
230
- * A label the board draws is about to change, and can be refused.
231
- *
232
- * **The board edits what it draws and asks for what it does not.** A
233
- * connection's label and a group's name are drawn by the board from an
234
- * attribute, so the board edits them in place and writes the attribute back,
235
- * the way it writes a card's position; a page holding them in state refuses
236
- * this and writes them there. A card's own content is the page's, which is why
237
- * that is `helix-canvas-edit`, a request, rather than this.
238
- */
239
- export declare class HelixBeforeRelabelEvent extends CustomEvent<RelabelDetail> {
240
- static readonly eventName = "helix-before-relabel";
241
- constructor(detail: RelabelDetail);
242
- }
243
- /** A label the board draws changed. */
244
- export declare class HelixRelabelEvent extends CustomEvent<RelabelDetail> {
245
- static readonly eventName = "helix-relabel";
246
- constructor(detail: RelabelDetail);
247
- }
248
- /**
249
- * A reader asked to edit a card: a double-click, or Enter or F2 on it.
250
- *
251
- * **A request, because what a card holds is the page's.** Text, a picture, a
252
- * chart: the board cannot know what editing any of those means, so it says
253
- * which card and the page opens its own editor, in place, in a dialog, or in a
254
- * panel beside the board.
255
- */
256
- export declare class HelixCanvasEditEvent extends CustomEvent<{
257
- name: string;
258
- }> {
259
- static readonly eventName = "helix-canvas-edit";
260
- constructor(detail: {
261
- name: string;
262
- });
263
- }
264
- /** Why a file field did not take a file. */
265
- export type Refusal = 'count' | 'invalid' | 'size' | 'type';
266
- /** One file a file field did not take, and why. */
267
- export interface RefusedFile {
268
- /** The file. */
269
- readonly file: File;
270
- /** What the field's `validate` said about it, where it was the one refusing. */
271
- readonly message?: string;
272
- /** Why it was not taken. */
273
- readonly reason: Refusal;
274
- }
275
- /** The files a file field refused. */
276
- export interface RejectDetail {
277
- /** Each refused file with its reason, in the order they arrived. */
278
- files: RefusedFile[];
279
- }
280
- /**
281
- * Files arrived at a file field and some were refused: by `accept`, by
282
- * `max-file-size`, by `max-files`, or by the field's own `validate`.
283
- *
284
- * A notification and not a request, because the files are already left out;
285
- * the event is how a page tells the reader why. Bubbles and is composed, so a
286
- * form around the field hears it.
287
- */
288
- export declare class HelixRejectEvent extends CustomEvent<RejectDetail> {
289
- static readonly eventName = "helix-reject";
290
- constructor(detail: RejectDetail);
291
- }
292
- /** What a reader asked to take off the board. */
293
- export interface RemoveDetail {
294
- /** The cards, by name. */
295
- nodes: string[];
296
- /**
297
- * The connections, including every one attached to a card being removed,
298
- * since a line to nothing is not drawn but its element would stay behind.
299
- * Each carries its ends as well as its name, so a page that named none of
300
- * its connections can still find them.
301
- */
302
- edges: Array<{
303
- name: string;
304
- from: string;
305
- to: string;
306
- }>;
307
- }
308
- /**
309
- * A reader asked for cards or connections to be taken away.
310
- *
311
- * A request for the reason `helix-connect` is one: the elements are the page's,
312
- * so the page removes them. Nothing to refuse, because nothing happens unless
313
- * the page acts.
314
- */
315
- export declare class HelixRemoveEvent extends CustomEvent<RemoveDetail> {
316
- static readonly eventName = "helix-remove";
317
- constructor(detail: RemoveDetail);
318
- }
319
- /**
320
- * Where a board is looking: the point at the middle of the view, in the
321
- * document's own units, and how far it is zoomed.
322
- *
323
- * The middle rather than a corner, so a view saved in one box and restored in
324
- * a box of another size shows the same thing in the middle of it.
325
- */
326
- export interface CanvasView {
327
- x: number;
328
- y: number;
329
- zoom: number;
330
- }
331
- /**
332
- * The board's view changed, however it changed: a drag, the wheel, a press on
333
- * a control, a card brought into view, or the board fitting itself.
334
- *
335
- * **One event for all of them**, because what a consumer keeping a minimap or a
336
- * saved position in step needs is where the board is now, not which of six
337
- * gestures put it there; `helix-canvas-pan` and `helix-canvas-zoom` still say
338
- * which control was pressed. Sent for every step of a drag, the way `input` is.
339
- */
340
- export declare class HelixCanvasViewEvent extends CustomEvent<CanvasView> {
341
- static readonly eventName = "helix-canvas-view";
342
- constructor(detail: CanvasView);
343
- }
344
- /** What `ViewportPanDetail` was called when only Map had one. */
345
- export type MapPanDetail = ViewportPanDetail;
346
- /** What `ViewportZoomDetail` was called when only Map had one. */
347
- export type MapZoomDetail = ViewportZoomDetail;
348
- /** Detail carried by `helix-navigate`. */
349
- export interface NavigateDetail {
350
- /**
351
- * The page asked for, as a number, where the component pages by number.
352
- *
353
- * Beside `value` rather than in place of it, because a calendar pages by
354
- * month and its `value` is a month.
355
- */
356
- page?: number;
357
- /** Where the view is moving to, in whatever the component pages by. */
358
- value: string;
359
- }
360
- /** Detail carried by `helix-filter`. */
361
- export interface FilterDetail {
362
- /** What the list is being narrowed to. */
363
- value: string;
364
- }
365
- /**
366
- * Detail carried by `helix-facet`.
367
- *
368
- * **Everything needed to draw the chip, so nothing has to be looked up again.**
369
- * A consumer hearing this renders a `FilterChip` from it and stops: the labels
370
- * are the reader's words and the names are their own model's, and both are here
371
- * because only the thing that read the declarations knows both.
372
- */
373
- export interface FacetDetail {
374
- /**
375
- * How many values the comparison in force takes.
376
- *
377
- * **What tells an empty filter from no filter.** `values` empty usually means
378
- * the field is not being filtered any more, and a consumer drops the chip; a
379
- * comparison of arity `none`, `is empty` or `is set`, is a filter that has no
380
- * values to carry and never will. Without this the two arrive identical, and
381
- * the thing that read the declaration is the only thing that could say which.
382
- */
383
- arity: 'many' | 'none' | 'one';
384
- /** What the consumer's model calls the field. */
385
- field: string;
386
- /** What a reader is shown for the field. */
387
- label: string;
388
- /** What the consumer's model calls the comparison in force. */
389
- operator: string;
390
- /**
391
- * The comparison as a reader sees it, and **empty for the field's usual one**.
392
- *
393
- * Passed straight to a chip's `operator-label`, which draws the segment only
394
- * where there is one. Deciding it here is the point: the thing that read the
395
- * field knows which of its operators is the default, and the chip never has
396
- * to.
397
- */
398
- operatorLabel: string;
399
- /** What the field is compared to, as the consumer's own values. */
400
- values: readonly string[];
401
- }
402
- /** Detail carried by `helix-read`. */
403
- export interface ReadDetail {
404
- /**
405
- * The state being asked for, as a boolean rather than a word that reads like
406
- * one, which is `helix-before-toggle`'s rule and for the same reason: `"false"` is
407
- * truthy and a consumer who forgets that marks everything read.
408
- */
409
- read: boolean;
410
- }
411
- /** Detail carried by `helix-send`. */
412
- export interface SendDetail {
413
- /** What the reader wrote, as they left it. */
414
- value: string;
415
- }
416
- /** Detail carried by `helix-sort`. */
417
- export interface SortDetail {
418
- /**
419
- * The order being asked for, as `field:direction`.
420
- *
421
- * **One string rather than a field and a direction beside it**, because a sort
422
- * is one fact and two properties holding half of it each is the mistake
423
- * `helix-table`'s `columns` string already made in this family: the headings
424
- * and the widths were two halves of one thing kept in two places with nothing
425
- * holding them together. `name:asc` is also what a URL query carries and what
426
- * an API takes, so a consumer syncing either does no translation.
427
- *
428
- * Empty means unsorted, which is a state a reader can ask for: a third click
429
- * on a sortable heading returns the set to the order it arrived in, and that
430
- * order is information the data came with.
431
- */
432
- value: string;
433
- }
434
- /** Detail carried by `helix-dismiss`. */
435
- export interface DismissDetail {
436
- /** Text content of the element asking to go, for identifying which it was. */
437
- label: string;
438
- }
439
- /** What a stop's own controls ask the tour to do. */
440
- export interface TourAskDetail {
441
- /**
442
- * Which control was pressed.
443
- */
444
- what: 'back' | 'next' | 'skip';
445
- }
446
- /**
447
- * A stop asking the tour to move.
448
- *
449
- * Composed and bubbling, because a stop is slotted into the root and the root
450
- * has to hear it across that boundary.
451
- *
452
- * **A class rather than a hand-rolled `CustomEvent`.** A dispatch is matched as
453
- * `new HelixSomethingEvent(`, so a raw `CustomEvent` is not held to being
454
- * declared and nothing carries it into the manifest: consumers can hear it and
455
- * cannot find it.
456
- */
457
- export declare class HelixTourAskEvent extends CustomEvent<TourAskDetail> {
458
- static readonly eventName = "helix-tour-ask";
459
- constructor(detail: TourAskDetail);
460
- }
461
- /**
462
- * The eyedropper opening, and closing again.
463
- *
464
- * Two events rather than one carrying a flag, because what a consumer does with
465
- * them is not symmetrical: the surface holding the picker has to get out of the
466
- * way for the sample and come back afterwards, and those are two moments with
467
- * different work in each.
468
- *
469
- * **A class rather than a bare `Event`.** The check that holds an event to being
470
- * declared reads `new Event(` as well as `new HelixSomethingEvent(`, so a
471
- * hand-rolled one is public API a consumer can hear and cannot find.
472
- *
473
- * No detail, because there is nothing to say beyond that it happened.
474
- */
475
- export declare class HelixSampleStartEvent extends Event {
476
- static readonly eventName = "helix-sample-start";
477
- constructor();
478
- }
479
- /** The eyedropper closing, whether or not a color was taken. */
480
- export declare class HelixSampleEndEvent extends Event {
481
- static readonly eventName = "helix-sample-end";
482
- constructor();
483
- }
484
- /**
485
- * Fired when an element asks to be taken away.
486
- *
487
- * A request rather than a notification: the element does not remove itself,
488
- * because the consumer owns the markup it is in and removing the node under
489
- * them would put their state and the document out of step. Cancelable, so
490
- * `preventDefault()` is a refusal.
491
- *
492
- * One verb for both shapes. A tag leaving a list and an announcement closing
493
- * itself are the same act from the element's side.
494
- */
495
- export declare class HelixDismissEvent extends CustomEvent<DismissDetail> {
496
- static readonly eventName = "helix-dismiss";
497
- constructor(detail: DismissDetail);
498
- }
499
- /**
500
- * Detail carried by every request that proposes a value.
501
- *
502
- * **`value` is a string, and the things that are not strings are the rule
503
- * rather than the exception to it.** Pagination's page, its page size, the
504
- * splitter's position and the carousel's index all announce through `String()`.
505
- * That is deliberate: an HTML value is a string, a consumer parses one back
506
- * with `Number()`, and nothing is lost on the way.
507
- *
508
- * A boolean is the case where it *is* lost, because `"false"` is truthy, so a
509
- * consumer who forgets to compare against the word gets the opposite answer and
510
- * no error. That is why checkedness has `helix-before-toggle` and its own boolean, and
511
- * it is the line to hold: **stringify a value, never a fact.** A new control
512
- * whose state is a boolean wants an event with a typed detail, not a `String()`
513
- * call here.
514
- *
515
- * **There is no `property` field.** Every verb in this file says by itself which
516
- * property a request is about, and two families sharing a verb are told apart by
517
- * the element rather than by a field: `composedPath()[0]` survives the retarget
518
- * that `event.target` does not.
519
- */
520
- export interface ChangeDetail {
521
- /** The value after the change. */
522
- value: string;
523
- }
524
- /**
525
- * A set is about to make a different child current, and can be refused.
526
- *
527
- * **Not a generic `helix-change`.** `Tabs` moving to another tab, `Tree` marking
528
- * another row and `Steps` advancing are not a value changing, they are a set
529
- * choosing, and the platform's word for a committed value would say the wrong
530
- * thing. `active` names which child is current, so `activate` is the verb, and
531
- * unlike `change` the platform has no claim on it.
532
- *
533
- * **This fires before the state moves.** Inside a handler `currentTarget.active`
534
- * still holds the previous value, and `detail.value` is a proposal another
535
- * listener may refuse, so a consumer who only wants to know which child is
536
- * current listens for `helix-activate` instead. `helix-select` is not that
537
- * notification either: it fires when an item is *chosen*, not when `active` is
538
- * assigned.
539
- *
540
- * The shape is the one `MixinControllerOpen` already has, a cancelable request
541
- * and a plain notification after the state has moved.
542
- */
543
- export declare class HelixBeforeActivateEvent extends CustomEvent<ChangeDetail> {
544
- static readonly eventName = "helix-before-activate";
545
- constructor(detail: ChangeDetail);
546
- }
547
- /**
548
- * A set has made a different child current.
549
- *
550
- * The notification half of `helix-before-activate`, dispatched after the state
551
- * has moved, so `currentTarget.active` is the new value and the detail is a fact
552
- * rather than a proposal.
553
- *
554
- * **Not cancelable**, for the reason every notification here is not: the
555
- * decision was taken by the event before it, and a second refusable event for
556
- * one transition is two answers to one question.
557
- *
558
- * **Prefixed, and it has to be.** `activate` unprefixed is not in any
559
- * `*EventMap` in the DOM library, checked rather than assumed, but the prefix is
560
- * what stops an event dispatched inside a shadow root and retargeted to the host
561
- * being mistaken for something the host's own contents sent.
562
- */
563
- export declare class HelixActivateEvent extends CustomEvent<ChangeDetail> {
564
- static readonly eventName = "helix-activate";
565
- constructor(detail: ChangeDetail);
566
- }
567
- /**
568
- * The reader asked the map to move, which is as far as this library goes.
569
- *
570
- * **Helix draws no map and moves nobody's.** A tile renderer is a library and
571
- * the frame around it is what this adds, so panning is a request the consumer
572
- * answers against whatever they slotted: MapLibre, Leaflet, Google, or their
573
- * own. The direction is in reading order rather than compass order, because the
574
- * control that sent it is a button a reader pressed and `start` on a
575
- * right-to-left page is east.
576
- *
577
- * Not cancelable. Nothing here moves on its own, and an event whose
578
- * `preventDefault` means nothing is an event that lies about what it offers.
579
- */
580
- export declare class HelixMapPanEvent extends CustomEvent<ViewportPanDetail> {
581
- static readonly eventName = "helix-map-pan";
582
- constructor(detail: MapPanDetail);
583
- }
584
- /**
585
- * The reader asked the map to zoom, and for the same reason it is a request.
586
- *
587
- * `by` is a direction rather than a level: a scale a consumer's map understands
588
- * is the consumer's to decide, and a frame that said "go to zoom 14" would be
589
- * asserting a numbering that Leaflet, MapLibre and a static tile server do not
590
- * agree on.
591
- */
592
- export declare class HelixMapZoomEvent extends CustomEvent<ViewportZoomDetail> {
593
- static readonly eventName = "helix-map-zoom";
594
- constructor(detail: MapZoomDetail);
595
- }
596
- /**
597
- * The reader asked the graph to move. A request, as a map's is: Helix draws no
598
- * graph, and the renderer the page slotted, or `connectGraph`, answers it.
599
- */
600
- export declare class HelixGraphPanEvent extends CustomEvent<ViewportPanDetail> {
601
- static readonly eventName = "helix-graph-pan";
602
- constructor(detail: ViewportPanDetail);
603
- }
604
- /** The reader asked the graph to zoom, a direction and not a level, as a map's is. */
605
- export declare class HelixGraphZoomEvent extends CustomEvent<ViewportZoomDetail> {
606
- static readonly eventName = "helix-graph-zoom";
607
- constructor(detail: ViewportZoomDetail);
608
- }
609
- /** Where each note was laid out, by its `id`, in the renderer's own units. */
610
- export interface GraphLayoutDetail {
611
- positions: Record<string, {
612
- x: number;
613
- y: number;
614
- z?: number | undefined;
615
- }>;
616
- }
617
- /**
618
- * A layout settled, with where it put every note. Keep the positions and hand
619
- * them back as each note's `x` and `y`, and the graph opens where the reader
620
- * left it, with no layout to run.
621
- */
622
- export declare class HelixGraphLayoutEvent extends CustomEvent<GraphLayoutDetail> {
623
- static readonly eventName = "helix-graph-layout";
624
- constructor(detail: GraphLayoutDetail);
625
- }
626
- /** What changed on a graph frame that the renderer has to hear. */
627
- export interface GraphPartChangeDetail {
628
- /**
629
- * `data` for the notes or the links, which are drawn again; `focus` for the
630
- * selected note or the depth, which change what is emphasized and shown;
631
- * `gestures` for which gestures the renderer takes.
632
- */
633
- kind: 'data' | 'focus' | 'gestures';
634
- }
635
- /**
636
- * The frame's notes, links, selection, depth or gestures changed, which the
637
- * connector hears and the renderer is told. It stays on the frame, being the
638
- * family's own bookkeeping rather than news for a page.
639
- */
640
- export declare class HelixGraphPartChangeEvent extends CustomEvent<GraphPartChangeDetail> {
641
- static readonly eventName = "helix-graph-part-change";
642
- constructor(detail: GraphPartChangeDetail);
643
- }
644
- /** One signal between two notes, as the frame's `signal()` sends it. */
645
- export interface GraphSignalDetail {
646
- /** The note the signal leaves, by its `id`. */
647
- from: string;
648
- /**
649
- * What the signal means, which colors it. Where none is given, the signal
650
- * turns from the first note's color to the second's as it crosses.
651
- */
652
- tone?: 'accent' | 'danger' | 'info' | 'neutral' | 'primary' | 'success' | 'warning' | undefined;
653
- /** The note the signal reaches, by its `id`. */
654
- to: string;
655
- }
656
- /**
657
- * Something passed between two notes, which the renderer draws traveling
658
- * from one to the other. The connector hears it and the renderer draws it; it
659
- * stays on the frame, being the family's own bookkeeping rather than news for
660
- * a page.
661
- */
662
- export declare class HelixGraphSignalEvent extends CustomEvent<GraphSignalDetail> {
663
- static readonly eventName = "helix-graph-signal";
664
- constructor(detail: GraphSignalDetail);
665
- }
666
- /**
667
- * The graph has been drawn whole, laid out and settled, sent once each time it
668
- * is connected, from the frame, which then matches `:state(ready)`.
669
- */
670
- export declare class HelixGraphReadyEvent extends Event {
671
- static readonly eventName = "helix-graph-ready";
672
- constructor();
673
- }
674
- /** Detail carried by `helix-graph-filter`. */
675
- export interface GraphFilterDetail {
676
- /** The groups the graph would hide, by name: every group the reader has turned off, after this press. */
677
- hidden: readonly string[];
678
- }
679
- /**
680
- * A reader pressed a group in the graph's legend, which would show or hide
681
- * its notes, sent from the frame before it does. Cancelable: cancel it to
682
- * keep the groups as they were, or to set `hiddenGroups` yourself.
683
- */
684
- export declare class HelixGraphFilterEvent extends CustomEvent<GraphFilterDetail> {
685
- static readonly eventName = "helix-graph-filter";
686
- constructor(detail: GraphFilterDetail);
687
- }
688
- /** A rotate request: turn by some degrees, or turn to a bearing. */
689
- export interface MapRotateDetail {
690
- /** Degrees to turn the map clockwise. Negative turns it counterclockwise. */
691
- by?: number;
692
- /** The bearing to turn the map to, in degrees clockwise from north. `0` faces north. */
693
- to?: number;
694
- }
695
- /** A tilt request, in degrees. */
696
- export interface MapTiltDetail {
697
- /** Degrees to tilt the map toward the horizon. Negative tilts it back toward flat. */
698
- by?: number;
699
- /** The tilt to go to, in degrees from looking straight down. `0` is flat. */
700
- to?: number;
701
- }
702
- /**
703
- * The user asked the map to rotate, from a rotate button or key. Turn your map
704
- * in response. Not cancelable, because the frame moves nothing itself.
705
- */
706
- export declare class HelixMapRotateEvent extends CustomEvent<MapRotateDetail> {
707
- static readonly eventName = "helix-map-rotate";
708
- constructor(detail: MapRotateDetail);
709
- }
710
- /**
711
- * The user asked the map to tilt, from a tilt button or key. Tilt your map in
712
- * response. Not cancelable, because the frame moves nothing itself.
713
- */
714
- export declare class HelixMapTiltEvent extends CustomEvent<MapTiltDetail> {
715
- static readonly eventName = "helix-map-tilt";
716
- constructor(detail: MapTiltDetail);
717
- }
718
- /** What changed on a part of a map: a line or a shape, or something standing on a place. */
719
- export interface MapPartChangeDetail {
720
- /**
721
- * `layer` for a route or an area, which is redrawn; `place` for a marker or
722
- * a position, which is moved; `cluster` for a marker gathered into another
723
- * or let go, which moves the frame's tab stop; `menu` for the frame's layers
724
- * menu opening, which asks for its map-type previews; `gestures` for which
725
- * gestures the map takes, which the renderer is told.
726
- */
727
- kind: 'cluster' | 'gestures' | 'layer' | 'menu' | 'place';
728
- }
729
- /**
730
- * A marker, a position, a route or an area changed what it says: where it is,
731
- * its points, its progress, its name.
732
- *
733
- * **Said rather than reflected.** The connector and the frame follow the
734
- * parts, and heard them through their attributes until the parts reflected
735
- * nothing CSS selects on: a live position's coordinates are state, and a
736
- * route's points are a payload, neither of which belongs in the markup. It
737
- * bubbles to the frame, whose light-DOM children the parts are, and goes no
738
- * further, being the family's own bookkeeping rather than news for a page.
739
- */
740
- export declare class HelixMapPartChangeEvent extends CustomEvent<MapPartChangeDetail> {
741
- static readonly eventName = "helix-map-part-change";
742
- constructor(detail: MapPartChangeDetail);
743
- }
744
- /** What a cluster a reader pressed holds. */
745
- export interface MapClusterDetail {
746
- /**
747
- * A points layer's count, as the connector keyed it, where the cluster is
748
- * one the renderer drew rather than one of markers.
749
- */
750
- key?: string | undefined;
751
- /** The names of the places it stands for, the one it is drawn as first, where they are known. */
752
- labels: string[];
753
- }
754
- /**
755
- * A reader pressed a cluster, one marker standing for several that would have
756
- * drawn over each other.
757
- *
758
- * **Opened by zooming in**, which the connector does, framing the places the
759
- * cluster holds, as pressing one does on every map a reader has used. Told
760
- * rather than asked: a page that lists them in a panel instead connects with
761
- * `clusterZoom: false`. Sent from the marker the cluster is drawn as, and
762
- * bubbles through the frame to the page.
763
- */
764
- export declare class HelixMapClusterEvent extends CustomEvent<MapClusterDetail> {
765
- static readonly eventName = "helix-map-cluster";
766
- constructor(detail: MapClusterDetail);
767
- }
768
- /**
769
- * The map has been drawn whole: its style, every tile the view needs, and the
770
- * ground raised where it has terrain. Sent once each time a map is connected,
771
- * from the frame, which then matches `:state(ready)`.
772
- *
773
- * **What a page waits on to show a map that is finished**, where it would
774
- * otherwise watch it draw in stages: the streets, then the imagery tile by
775
- * tile, then the ground rising under the markers about half a second in. The
776
- * shapes the frame draws are left out of "whole", since a route that animates
777
- * is redrawn every frame and would never count as drawn.
778
- */
779
- export declare class HelixMapReadyEvent extends Event {
780
- static readonly eventName = "helix-map-ready";
781
- constructor();
782
- }
783
- /** A message is about to be pinned or unpinned, and can be refused. */
784
- export declare class HelixBeforePinEvent extends CustomEvent<ChangeDetail> {
785
- static readonly eventName = "helix-before-pin";
786
- constructor(detail: ChangeDetail);
787
- }
788
- /**
789
- * A transcript was pinned to the bottom, or let go of it.
790
- *
791
- * The notification half of `helix-before-pin`, sent once `pinned` has moved,
792
- * so `currentTarget.pinned` is the new state and `detail.value` says it as
793
- * `true` or `false`. Not cancelable: the decision was the request's.
794
- */
795
- export declare class HelixPinEvent extends CustomEvent<ChangeDetail> {
796
- static readonly eventName = "helix-pin";
797
- constructor(detail: ChangeDetail);
798
- }
799
- /** A divider is about to move, and can be refused. */
800
- export declare class HelixBeforeResizeEvent extends CustomEvent<ChangeDetail> {
801
- static readonly eventName = "helix-before-resize";
802
- constructor(detail: ChangeDetail);
803
- }
804
- /**
805
- * A divider settled somewhere new.
806
- *
807
- * The notification half of `helix-before-resize`, sent once `position` has
808
- * moved, with the new position. Not cancelable: the decision was the
809
- * request's.
810
- *
811
- * **Past tense, because `helix-resize` was already taken** by a measurement,
812
- * the height a sandboxed preview reports for what it drew, and one name cannot
813
- * carry both.
814
- */
815
- export declare class HelixResizedEvent extends CustomEvent<ChangeDetail> {
816
- static readonly eventName = "helix-resized";
817
- constructor(detail: ChangeDetail);
818
- }
819
- /**
820
- * The divider between a sandbox's panes is about to move, and can be refused.
821
- *
822
- * Its own verb rather than a `helix-before-resize` carrying which divider moved:
823
- * a sandbox has two, and they were told apart by a field on a detail every other
824
- * request in this file also carries.
825
- */
826
- export declare class HelixBeforeSplitEvent extends CustomEvent<ChangeDetail> {
827
- static readonly eventName = "helix-before-split";
828
- constructor(detail: ChangeDetail);
829
- }
830
- /**
831
- * A sandbox's panel is about to change height, and can be refused.
832
- *
833
- * The sibling of `helix-before-split`, and named for the divider rather than for
834
- * the axis because a reader binding one of the two is choosing which divider they
835
- * care about. `value` is pixels here and a percentage there, which is what each
836
- * property already publishes.
837
- */
838
- export declare class HelixBeforePanelResizeEvent extends CustomEvent<ChangeDetail> {
839
- static readonly eventName = "helix-before-panel-resize";
840
- constructor(detail: ChangeDetail);
841
- }
842
- /** A pane is about to collapse or reopen, and can be refused. */
843
- export declare class HelixBeforeCollapseEvent extends CustomEvent<ChangeDetail> {
844
- static readonly eventName = "helix-before-collapse";
845
- constructor(detail: ChangeDetail);
846
- }
847
- /**
848
- * A pane shut or reopened.
849
- *
850
- * The notification half of `helix-before-collapse`, sent once `collapsed` has
851
- * moved. `detail.value` is the side that is shut, or empty where both panes
852
- * are open. Not cancelable: the decision was the request's.
853
- */
854
- export declare class HelixCollapseEvent extends CustomEvent<ChangeDetail> {
855
- static readonly eventName = "helix-collapse";
856
- constructor(detail: ChangeDetail);
857
- }
858
- /** Source is about to be edited, and can be refused. */
859
- export declare class HelixBeforeEditEvent extends CustomEvent<ChangeDetail> {
860
- static readonly eventName = "helix-before-edit";
861
- constructor(detail: ChangeDetail);
862
- }
863
- /**
864
- * A value is about to change, and the change can be refused.
865
- *
866
- * **The request half of every value control.** It announces the value being
867
- * *proposed*, before anything moves, so a listener calling `preventDefault()`
868
- * refuses it and the control stays where it was. That is how a consumer takes
869
- * one decision without declaring a mode, which is what 294 settled: the element
870
- * always owns and applies its state, and refusing is the way to take it over.
871
- *
872
- * **The notification is native and separate.** Once this has gone out and the
873
- * value has moved, the control announces it again under the platform's own
874
- * name, `input` while a reader is editing and `change` when they are done, so
875
- * `onChange` in React and `onchange=` in HTML both reach it and
876
- * `currentTarget.value` is correct by the time a handler reads it. This event
877
- * carries the detail because at the moment it fires the value is not on the
878
- * element yet.
879
- *
880
- * **`announcesInput` picks which native notification fires, not which name this
881
- * carries.** Granularity is the platform's own distinction, `input` against
882
- * `change`; the request is always this one event.
883
- */
884
- export declare class HelixBeforeChangeEvent extends CustomEvent<ChangeDetail> {
885
- static readonly eventName = "helix-before-change";
886
- constructor(detail: ChangeDetail);
887
- }
888
- /**
889
- * A checked state is about to change, and the change can be refused.
890
- *
891
- * **Its own event rather than a `helix-before-change` carrying a boolean.**
892
- * Through the value event the state arrives as `String(checked)`, so a consumer
893
- * receives the string `"false"`, which is truthy, and a test asserting the value
894
- * passes on that bug. A control whose state is a boolean wants an event with a
895
- * typed boolean in it.
896
- *
897
- * The notification is native, as it is for a value: the control relays `change`
898
- * from the inner input and announces `input` beside it, so `onChange` reads
899
- * `currentTarget.checked` and gets a boolean from the platform.
900
- *
901
- * It also ends a collision: Checkbox Group listened for its boxes' change and
902
- * dispatched its own under the same name from the same host, so it needed
903
- * `stopImmediatePropagation` to keep a consumer from receiving one box's boolean
904
- * alongside the whole set. Two names, two facts.
905
- */
906
- export declare class HelixBeforeToggleEvent extends CustomEvent<ToggleDetail> {
907
- static readonly eventName = "helix-before-toggle";
908
- constructor(detail: ToggleDetail);
909
- }
910
- /** Detail carried by `helix-scrolled`. */
911
- export interface ScrolledDetail {
912
- /**
913
- * Whether the page is scrolled away from the top, as a boolean and not a word
914
- * that reads like one. Follows `helix-before-toggle`'s rule for the same reason.
915
- */
916
- scrolled: boolean;
917
- }
918
- /** Detail carried by `helix-before-toggle`. */
919
- export interface ToggleDetail {
920
- /** The state being asked for, as a boolean and not a word that reads like one. */
921
- checked: boolean;
922
- }
923
- /** Detail carried by `helix-create`. */
924
- export interface CreateDetail {
925
- /** What the reader typed, which is being offered as a new answer. */
926
- value: string;
927
- }
928
- /**
929
- * The reader asked for something the list does not hold.
930
- *
931
- * Cancelable, and announced before anything is applied, because the options are
932
- * the consumer's own light DOM and no component here writes into it. What the
933
- * control can do is say what was asked for and take the value; putting an
934
- * option in the list, or a row in a database, is the consumer's, and a consumer
935
- * who validates first refuses this and adds nothing.
936
- *
937
- * The detail carries the text as typed, not a slug of it. Trimming or lowering
938
- * it here would be this element deciding what a name means, and a consumer who
939
- * wants an identifier can make one from what they were given.
940
- */
941
- export declare class HelixCreateEvent extends CustomEvent<CreateDetail> {
942
- static readonly eventName = "helix-create";
943
- constructor(detail: CreateDetail);
944
- }
945
- /** Detail carried by `helix-copy`. */
946
- export interface CopyDetail {
947
- /** What was put on the clipboard. */
948
- value: string;
949
- }
950
- /**
951
- * Something was copied to the clipboard.
952
- *
953
- * Not cancelable, and deliberately: it is announced after the write, because a
954
- * clipboard write is a permission the platform may refuse and there is nothing
955
- * useful to report until it has either happened or not.
956
- */
957
- export declare class HelixCopyEvent extends CustomEvent<CopyDetail> {
958
- static readonly eventName = "helix-copy";
959
- constructor(detail: CopyDetail);
960
- }
961
- /** Detail carried by `helix-console`. */
962
- export interface ConsoleDetail {
963
- /** How the message was logged. */
964
- level: 'log' | 'info' | 'warn' | 'error';
965
- /** The message, already flattened to text. */
966
- text: string;
967
- }
968
- /**
969
- * Fired when something being previewed writes to the console.
970
- *
971
- * Carries text rather than the logged values. The preview is a separate
972
- * document, so what arrives has crossed `postMessage` and been through
973
- * structured clone: a DOM node or a function does not survive that, and half a
974
- * value is worse than a string of it.
975
- */
976
- export declare class HelixConsoleEvent extends CustomEvent<ConsoleDetail> {
977
- static readonly eventName = "helix-console";
978
- constructor(detail: ConsoleDetail);
979
- }
980
- /** Detail carried by `helix-resize`. */
981
- export interface ResizeDetail {
982
- /** How tall the content is, in CSS pixels. */
983
- size: number;
984
- }
985
- /**
986
- * Fired when something reports how much room its content actually needs.
987
- *
988
- * **A measurement crossing a boundary the measurer is on the far side of.** A
989
- * sandboxed preview is its own document: nothing outside it can read the height
990
- * of what it drew, because the frame is opaque and a box sized from the outside
991
- * only ever reports the box. So the document measures itself and says so, and
992
- * this is what it says it with.
993
- *
994
- * A number rather than a box, because the width is the container's to decide and
995
- * only the block size follows the content. A consumer that wants to act on it
996
- * clamps it: what arrives is what was drawn, which for an empty example is
997
- * nearly nothing and for a long one is more than a page.
998
- */
999
- export declare class HelixResizeEvent extends CustomEvent<ResizeDetail> {
1000
- static readonly eventName = "helix-resize";
1001
- constructor(detail: ResizeDetail);
1002
- }
1003
- /**
1004
- * Fired when a header crosses the threshold between resting at the top of the
1005
- * page and floating over it.
1006
- *
1007
- * **The threshold lives in a custom state, and is announced rather than
1008
- * reflected.** A `data-scrolled` on the host is an attribute nobody rendered: a
1009
- * server sends the element without it and the element adds it on upgrade, so a
1010
- * framework hydrating the page finds markup that no longer matches what it sent.
1011
- * A custom state is deliberately not in the DOM and therefore not something a
1012
- * hydration pass can disagree with.
1013
- *
1014
- * That closes the observability an attribute would accidentally provide. A
1015
- * `MutationObserver` can watch an attribute and there is no equivalent for
1016
- * `ElementInternals.states`, so a component holding a boolean nothing can read
1017
- * is a component with a private opinion its consumers demonstrably need: the
1018
- * bar's own backdrop is drawn by the page around it, and the page has to know
1019
- * when to light it.
1020
- *
1021
- * Not cancelable. It reports where the page is rather than asking permission to
1022
- * be there, and refusing it would leave the state and the announcement
1023
- * disagreeing.
1024
- *
1025
- * The hysteresis stays inside the header, which is the point of announcing at
1026
- * all: a consumer listening to `scroll` itself would be a second opinion on
1027
- * when the page counts as scrolled, and the two would part company at the eight
1028
- * pixels of travel this waits for.
1029
- */
1030
- export declare class HelixScrolledEvent extends CustomEvent<ScrolledDetail> {
1031
- static readonly eventName = "helix-scrolled";
1032
- constructor(detail: ScrolledDetail);
1033
- }
1034
- /** Detail carried by `helix-caret`. */
1035
- export interface CaretDetail {
1036
- /** One-based column, counted in characters from the start of the line. */
1037
- column: number;
1038
- /** One-based line. */
1039
- line: number;
1040
- }
1041
- /**
1042
- * Fired when the cursor moves in a text editor.
1043
- *
1044
- * Not cancelable, unlike everything else here. The others announce something
1045
- * about to happen and a listener can refuse it; this one reports where the
1046
- * caret already is, and there is nothing left to refuse.
1047
- *
1048
- * It fires on every keystroke and every arrow press, which is why the status
1049
- * bar reads it from the DOM rather than through a framework's state: routing a
1050
- * caret position through React would re-render the workbench on every cursor
1051
- * move.
1052
- */
1053
- export declare class HelixCaretEvent extends CustomEvent<CaretDetail> {
1054
- static readonly eventName = "helix-caret";
1055
- constructor(detail: CaretDetail);
1056
- }
1057
- /** Detail carried by `helix-select`. */
1058
- export interface SelectDetail {
1059
- /**
1060
- * Whether the reader took the row's second destination rather than its first.
1061
- *
1062
- * Absent everywhere but a command palette, where a row can carry two: the
1063
- * value alone would say which was taken, since the two differ, but only by
1064
- * comparing strings a consumer would have to keep in step with the markup.
1065
- * A flag says it outright.
1066
- */
1067
- alternate?: boolean;
1068
- /**
1069
- * The link of a row that is a link, which the browser follows once the event
1070
- * is done unless it is canceled. A client-side router cancels it and follows
1071
- * the link itself.
1072
- */
1073
- href?: string;
1074
- /** Value of the item the reader chose. */
1075
- value: string;
1076
- }
1077
- /**
1078
- * Fired when a component moves the view it is showing, rather than its value.
1079
- *
1080
- * A calendar paging to another month is not choosing a date, and the two have
1081
- * to be separable: a consumer driving the view needs to hear that it moved
1082
- * without being told the answer changed. `helix-change` belongs to the value,
1083
- * and giving it both jobs would make either one unusable on its own.
1084
- */
1085
- export declare class HelixNavigateEvent extends CustomEvent<NavigateDetail> {
1086
- static readonly eventName = "helix-navigate";
1087
- constructor(detail: NavigateDetail);
1088
- }
1089
- /** Detail carried by `helix-complete`. */
1090
- export interface CompleteDetail {
1091
- /** What the control now holds, in full. */
1092
- value: string;
1093
- }
1094
- /**
1095
- * Fired when a control that fills up has filled.
1096
- *
1097
- * The moment a code entry exists for: a six-character field is worth submitting
1098
- * the instant the sixth character lands, and a consumer watching `helix-change`
1099
- * has to know the length and compare it on every keystroke to find that moment
1100
- * themselves.
1101
- *
1102
- * Separate from `helix-change` rather than a flag on it, because they are
1103
- * answered by different code: one keeps a value in step and the other decides
1104
- * whether to send a form. A listener that only cares about the second says so by
1105
- * which event it listens for.
1106
- *
1107
- * `complete` is free as a verb. React's synthetic system claims `change`,
1108
- * `input`, `submit`, `reset`, `copy`, `paste`, `scroll`, `drag`, `focus` and
1109
- * `blur`, measured, and this is none of them.
1110
- *
1111
- * Not cancelable. It reports that something already happened, which is the same
1112
- * reason `helix-caret` is not: there is nothing left to refuse once the last
1113
- * character is in the box.
1114
- */
1115
- export declare class HelixCompleteEvent extends CustomEvent<CompleteDetail> {
1116
- static readonly eventName = "helix-complete";
1117
- constructor(detail: CompleteDetail);
1118
- }
1119
- /**
1120
- * Fired when the reader offers something they wrote.
1121
- *
1122
- * **Cancelable, and the composer clears only when nobody refused.** Sending is a
1123
- * round trip: a composer that empties itself and then hears the request failed
1124
- * has thrown away the only copy of what the reader typed, and a reader who has
1125
- * just written three paragraphs is exactly who cannot afford that. Refusing
1126
- * leaves the text where it is.
1127
- *
1128
- * Not `helix-create`, which is the combobox's event for a value a list does not
1129
- * hold, and not `helix-change`, because nothing about a value changed: the
1130
- * reader finished something and handed it over.
1131
- */
1132
- export declare class HelixSendEvent extends CustomEvent<SendDetail> {
1133
- static readonly eventName = "helix-send";
1134
- constructor(detail: SendDetail);
1135
- }
1136
- /**
1137
- * Fired when something a user comes back to is marked read, or unread.
1138
- *
1139
- * **Read state is reported rather than owned.** Marking a notification read is
1140
- * usually a round trip, and a component that flips the state itself and then
1141
- * hears the request failed has already told the reader something untrue. So this
1142
- * is cancelable, and refusing it leaves the item alone; the component applies
1143
- * it once nobody has refused, which is the same contract every other axis in
1144
- * the library uses.
1145
- *
1146
- * Bubbles and is composed, so a feed hears its own items: one handler on the
1147
- * list serves every notification in it, which is what a consumer syncing to a
1148
- * server actually wants.
1149
- */
1150
- export declare class HelixReadEvent extends CustomEvent<ReadDetail> {
1151
- static readonly eventName = "helix-read";
1152
- constructor(detail: ReadDetail);
1153
- }
1154
- /**
1155
- * Fired when the reader asks for a different order.
1156
- *
1157
- * Cancelable, and refusing it leaves the order alone, which is what makes a
1158
- * server-side sort expressible: the consumer refuses the local reorder, fetches,
1159
- * and hands back a new set. This is the element reporting that a heading was
1160
- * clicked, before it acts on it.
1161
- *
1162
- * Not `helix-change`: nothing about the data changed, only the order it is read
1163
- * in, and a consumer listening for changes to a value should not hear a sort.
1164
- * That is the same distinction `helix-filter` is drawn on.
1165
- */
1166
- export declare class HelixSortEvent extends CustomEvent<SortDetail> {
1167
- static readonly eventName = "helix-sort";
1168
- constructor(detail: SortDetail);
1169
- }
1170
- /**
1171
- * The rows are in a different order.
1172
- *
1173
- * The notification after `helix-sort`, sent once `sort` has moved, with the
1174
- * order now in force. Not cancelable: the decision was the request's.
1175
- *
1176
- * **Past tense, because the plain verb is the request.** `helix-sort` was
1177
- * cancelable before the library had a word for its notification, and
1178
- * consumers bind it by that name, so the notification takes the one after it.
1179
- */
1180
- export declare class HelixSortedEvent extends CustomEvent<SortDetail> {
1181
- static readonly eventName = "helix-sorted";
1182
- constructor(detail: SortDetail);
1183
- }
1184
- /**
1185
- * Fired when the reader changes which values a field is filtered by.
1186
- *
1187
- * **Not `helix-filter`, which is a different thing already taken.** That one
1188
- * says a list narrowed itself to a string, and `Data Table` and `Listbox` both
1189
- * dispatch it with exactly that meaning. This one carries a structured filter:
1190
- * a field, a comparison and a set of values, which is a shape neither of those
1191
- * has and neither should grow.
1192
- *
1193
- * Cancelable, and refusing it is how a consumer takes the decision for one
1194
- * interaction, the way `requestChange` documents for every stateful change here.
1195
- */
1196
- export declare class HelixFacetEvent extends CustomEvent<FacetDetail> {
1197
- static readonly eventName = "helix-facet";
1198
- constructor(detail: FacetDetail);
1199
- }
1200
- /**
1201
- * Fired when a component narrows what it is showing.
1202
- *
1203
- * Filtering hides rather than removes, so nothing about the value changes and
1204
- * `helix-change` would be a lie. What a consumer wants to know is that the list
1205
- * in front of the reader is no longer the whole list.
1206
- */
1207
- export declare class HelixFilterEvent extends CustomEvent<FilterDetail> {
1208
- static readonly eventName = "helix-filter";
1209
- constructor(detail: FilterDetail);
1210
- }
1211
- /**
1212
- * A component is showing a narrower or a wider set.
1213
- *
1214
- * The notification after `helix-filter`, sent once the query has moved, with
1215
- * the query now in force. Not cancelable, and past tense for the reason
1216
- * `helix-sorted` is.
1217
- */
1218
- export declare class HelixFilteredEvent extends CustomEvent<FilterDetail> {
1219
- static readonly eventName = "helix-filtered";
1220
- constructor(detail: FilterDetail);
1221
- }
1222
- /** What a shortcut reports when its chord is pressed. */
1223
- export interface ShortcutDetail {
1224
- /**
1225
- * The chord that matched, as it was written.
1226
- *
1227
- * Given back rather than left to be remembered, so one handler can serve
1228
- * several keys and answer by comparing what it was told.
1229
- */
1230
- keys: string;
1231
- }
1232
- /**
1233
- * Fired when a shortcut's chord is pressed.
1234
- *
1235
- * Cancelable, and the key event is only consumed where this is not refused: a
1236
- * consumer that decides the moment is wrong, a dialog is over the control or
1237
- * the reader is mid-composition, calls `preventDefault()` and the keystroke
1238
- * goes on to whatever would have had it.
1239
- */
1240
- export declare class HelixShortcutEvent extends CustomEvent<ShortcutDetail> {
1241
- static readonly eventName = "helix-shortcut";
1242
- constructor(detail: ShortcutDetail);
1243
- }
1244
- /**
1245
- * Fired when the reader selects an item in a set.
1246
- *
1247
- * Bubbles and is composed, because this is how a set coordinates: a tree, a
1248
- * tab list and a toggle group all learn which of their children was chosen by
1249
- * hearing it arrive.
1250
- */
1251
- export declare class HelixSelectEvent extends CustomEvent<SelectDetail> {
1252
- static readonly eventName = "helix-select";
1253
- constructor(detail: SelectDetail);
1254
- }
1255
- /**
1256
- * A set holds a different selection.
1257
- *
1258
- * The notification after a `helix-select` that asked to change what is
1259
- * selected, sent once the selection has moved, with the selection now in
1260
- * force. Not cancelable, and past tense for the reason `helix-sorted` is.
1261
- */
1262
- export declare class HelixSelectedEvent extends CustomEvent<SelectDetail> {
1263
- static readonly eventName = "helix-selected";
1264
- constructor(detail: SelectDetail);
1265
- }
1266
- /**
1267
- * Fired when the reader asks for the columns in a different order.
1268
- *
1269
- * Cancelable, and refusing it leaves the columns where they were, so a consumer
1270
- * who stores the order, in a URL or a preference, can take the decision the way
1271
- * a server-side sort takes `helix-sort`. The detail is the whole order as
1272
- * space-separated fields rather than one move, because the order is the fact a
1273
- * consumer stores, and a move is only meaningful against an order they would
1274
- * then have to keep in step.
1275
- *
1276
- * Not `helix-sort`: that reorders the rows, this reorders the columns, and a
1277
- * consumer listening for one should not hear the other.
1278
- */
1279
- export declare class HelixReorderEvent extends CustomEvent<ChangeDetail> {
1280
- static readonly eventName = "helix-reorder";
1281
- constructor(detail: ChangeDetail);
1282
- }
1283
- /**
1284
- * The columns are in a different order.
1285
- *
1286
- * The notification after `helix-reorder`, sent once the order has moved, with
1287
- * every field in the new one. Not cancelable, and past tense for the reason
1288
- * `helix-sorted` is.
1289
- */
1290
- export declare class HelixReorderedEvent extends CustomEvent<ChangeDetail> {
1291
- static readonly eventName = "helix-reordered";
1292
- constructor(detail: ChangeDetail);
1293
- }
1294
- /**
1295
- * Fired when a reader reaches the oldest turn a transcript holds, while there are
1296
- * older ones to fetch.
1297
- *
1298
- * **A report of where the reader is, not a request to be granted**, so it is not
1299
- * cancelable: there is nothing for the transcript to do if nobody refuses, and
1300
- * nothing to stop if somebody does. The consumer answers by fetching, and says
1301
- * so through the transcript's `history` while the older turns are on their way.
1302
- *
1303
- * No detail. The consumer holds the transcript and knows its oldest turn, which
1304
- * is the one thing a fetch needs.
1305
- */
1306
- export declare class HelixHistoryEvent extends CustomEvent<Record<string, never>> {
1307
- static readonly eventName = "helix-history";
1308
- constructor();
1309
- }
1310
- /**
1311
- * Every event this file publishes, and the one place a new one is added.
15
+ * **One module per class, and this file gathers them.** Each class is in a
16
+ * file of its own beside this one, named after its event (`before-open.ts`
17
+ * holds `HelixBeforeOpenEvent`), and declares its name as `static readonly
18
+ * eventName`, which is how `helix component audit` finds them. What they carry
19
+ * is in `details.ts`, types only. This file re-exports both, keeps the
20
+ * registry, and types `addEventListener`.
21
+ *
22
+ * **Apart because a bundle keeps a class it never uses.** The compiler writes
23
+ * `static readonly eventName` as a static block, and Bun and Rollup both treat
24
+ * one as a side effect, so a class in a shared module stayed in every bundle
25
+ * that imported anything from that module. With the eighty classes in one
26
+ * file, every element shipped all of them, a Badge too. A module whose exports
27
+ * nothing uses is dropped whole, since the package declares no side effects,
28
+ * so a family now ships the classes it dispatches and no others.
29
+ * `events.pure.spec.ts` holds every file to one class.
30
+ */
31
+ import { HelixActionEvent } from './action.js';
32
+ import { HelixActivateEvent } from './activate.js';
33
+ import { HelixAuraFallbackEvent } from './aura-fallback.js';
34
+ import { HelixBeforeActivateEvent } from './before-activate.js';
35
+ import { HelixBeforeChangeEvent } from './before-change.js';
36
+ import { HelixBeforeCloseEvent } from './before-close.js';
37
+ import { HelixBeforeCollapseEvent } from './before-collapse.js';
38
+ import { HelixBeforeEditEvent } from './before-edit.js';
39
+ import { HelixBeforeMoveEvent } from './before-move.js';
40
+ import { HelixBeforeOpenEvent } from './before-open.js';
41
+ import { HelixBeforePanelResizeEvent } from './before-panel-resize.js';
42
+ import { HelixBeforePinEvent } from './before-pin.js';
43
+ import { HelixBeforeReconnectEvent } from './before-reconnect.js';
44
+ import { HelixBeforeRelabelEvent } from './before-relabel.js';
45
+ import { HelixBeforeResizeEvent } from './before-resize.js';
46
+ import { HelixBeforeSplitEvent } from './before-split.js';
47
+ import { HelixBeforeToggleEvent } from './before-toggle.js';
48
+ import { HelixCanvasEditEvent } from './canvas-edit.js';
49
+ import { HelixCanvasPanEvent } from './canvas-pan.js';
50
+ import { HelixCanvasViewEvent } from './canvas-view.js';
51
+ import { HelixCanvasZoomEvent } from './canvas-zoom.js';
52
+ import { HelixCaretEvent } from './caret.js';
53
+ import { HelixClearEvent } from './clear.js';
54
+ import { HelixCollapseEvent } from './collapse.js';
55
+ import { HelixCompleteEvent } from './complete.js';
56
+ import { HelixConnectEvent } from './connect.js';
57
+ import { HelixConsoleEvent } from './console.js';
58
+ import { HelixCopyEvent } from './copy.js';
59
+ import { HelixCopyErrorEvent } from './copy-error.js';
60
+ import { HelixCreateEvent } from './create.js';
61
+ import { HelixDismissEvent } from './dismiss.js';
62
+ import { HelixEditEvent } from './edit.js';
63
+ import { HelixEndEvent } from './end.js';
64
+ import { HelixExpandEvent } from './expand.js';
65
+ import { HelixFacetEvent } from './facet.js';
66
+ import { HelixFilterEvent } from './filter.js';
67
+ import { HelixFilteredEvent } from './filtered.js';
68
+ import { HelixGraphFilterEvent } from './graph-filter.js';
69
+ import { HelixGraphLayoutEvent } from './graph-layout.js';
70
+ import { HelixGraphPanEvent } from './graph-pan.js';
71
+ import { HelixGraphPartChangeEvent } from './graph-part-change.js';
72
+ import { HelixGraphReadyEvent } from './graph-ready.js';
73
+ import { HelixGraphSignalEvent } from './graph-signal.js';
74
+ import { HelixGraphZoomEvent } from './graph-zoom.js';
75
+ import { HelixHistoryEvent } from './history.js';
76
+ import { HelixLoadEvent } from './load.js';
77
+ import { HelixLoadMoreEvent } from './load-more.js';
78
+ import { HelixMapClusterEvent } from './map-cluster.js';
79
+ import { HelixMapPanEvent } from './map-pan.js';
80
+ import { HelixMapPartChangeEvent } from './map-part-change.js';
81
+ import { HelixMapReadyEvent } from './map-ready.js';
82
+ import { HelixMapRotateEvent } from './map-rotate.js';
83
+ import { HelixMapTiltEvent } from './map-tilt.js';
84
+ import { HelixMapZoomEvent } from './map-zoom.js';
85
+ import { HelixMoveEvent } from './move.js';
86
+ import { HelixNavigateEvent } from './navigate.js';
87
+ import { HelixNextEvent } from './next.js';
88
+ import { HelixPanelResizeEvent } from './panel-resize.js';
89
+ import { HelixPinEvent } from './pin.js';
90
+ import { HelixPressEvent } from './press.js';
91
+ import { HelixPreviewEvent } from './preview.js';
92
+ import { HelixPreviousEvent } from './previous.js';
93
+ import { HelixRangeChangeEvent } from './range-change.js';
94
+ import { HelixReadEvent } from './read.js';
95
+ import { HelixReconnectEvent } from './reconnect.js';
96
+ import { HelixRejectEvent } from './reject.js';
97
+ import { HelixRelabelEvent } from './relabel.js';
98
+ import { HelixRemoveEvent } from './remove.js';
99
+ import { HelixReorderEvent } from './reorder.js';
100
+ import { HelixReorderedEvent } from './reordered.js';
101
+ import { HelixResizeEvent } from './resize.js';
102
+ import { HelixResizedEvent } from './resized.js';
103
+ import { HelixSampleEndEvent } from './sample-end.js';
104
+ import { HelixSampleStartEvent } from './sample-start.js';
105
+ import { HelixScrolledEvent } from './scrolled.js';
106
+ import { HelixSelectEvent } from './select.js';
107
+ import { HelixSelectedEvent } from './selected.js';
108
+ import { HelixSendEvent } from './send.js';
109
+ import { HelixShortcutEvent } from './shortcut.js';
110
+ import { HelixSortEvent } from './sort.js';
111
+ import { HelixSortedEvent } from './sorted.js';
112
+ import { HelixSplitEvent } from './split.js';
113
+ import { HelixToggleEvent } from './toggle.js';
114
+ import { HelixTourAskEvent } from './tour-ask.js';
115
+ import { HelixTourStatusEvent } from './tour-status.js';
116
+ import { HelixTypingEvent } from './typing.js';
117
+ export type { ActivateDetail, AuraFallbackDetail, CanvasView, CaretDetail, ChangeDetail, CompleteDetail, ConnectDetail, ConsoleDetail, CopyDetail, CreateDetail, DismissDetail, FacetDetail, FilterDetail, GraphFilterDetail, GraphLayoutDetail, GraphPartChangeDetail, GraphSignalDetail, MapClusterDetail, MapPanDetail, MapPartChangeDetail, MapRotateDetail, MapTiltDetail, MapZoomDetail, MoveDetail, NavigateDetail, OpenDetail, PressDetail, PressPointerType, RangeDetail, ReadDetail, ReconnectDetail, Refusal, RefusedFile, RejectDetail, RelabelDetail, RemoveDetail, ResizeDetail, ScrolledDetail, SelectDetail, SendDetail, ShortcutDetail, SkipDetail, SortDetail, ToggleDetail, TourAskDetail, TourStatusDetail, TypingDetail, ViewportPanDetail, ViewportZoomDetail, } from './details.js';
118
+ export { helixEventNames } from './names.js';
119
+ export { HelixActionEvent, HelixActivateEvent, HelixAuraFallbackEvent, HelixBeforeActivateEvent, HelixBeforeChangeEvent, HelixBeforeCloseEvent, HelixBeforeCollapseEvent, HelixBeforeEditEvent, HelixBeforeMoveEvent, HelixBeforeOpenEvent, HelixBeforePanelResizeEvent, HelixBeforePinEvent, HelixBeforeReconnectEvent, HelixBeforeRelabelEvent, HelixBeforeResizeEvent, HelixBeforeSplitEvent, HelixBeforeToggleEvent, HelixCanvasEditEvent, HelixCanvasPanEvent, HelixCanvasViewEvent, HelixCanvasZoomEvent, HelixCaretEvent, HelixClearEvent, HelixCollapseEvent, HelixCompleteEvent, HelixConnectEvent, HelixConsoleEvent, HelixCopyErrorEvent, HelixCopyEvent, HelixCreateEvent, 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, HelixPinEvent, HelixPressEvent, HelixPreviewEvent, HelixPreviousEvent, HelixRangeChangeEvent, HelixReadEvent, HelixReconnectEvent, HelixRejectEvent, HelixRelabelEvent, HelixRemoveEvent, HelixReorderEvent, HelixReorderedEvent, HelixResizedEvent, HelixResizeEvent, HelixSampleEndEvent, HelixSampleStartEvent, HelixScrolledEvent, HelixSelectEvent, HelixSelectedEvent, HelixSendEvent, HelixShortcutEvent, HelixSortEvent, HelixSortedEvent, HelixSplitEvent, HelixToggleEvent, HelixTourAskEvent, HelixTourStatusEvent, HelixTypingEvent, };
120
+ /**
121
+ * Every event class, and the one place a new one is registered: a class in a
122
+ * module of its own, imported above, and named here and in `names.ts`.
1312
123
  *
1313
124
  * The map below is derived from this rather than written beside it, so a class
1314
125
  * that is in here is typed and one that is not is absent from both halves at
@@ -1319,7 +130,9 @@ export declare class HelixHistoryEvent extends CustomEvent<Record<string, never>
1319
130
  * forgotten.
1320
131
  */
1321
132
  declare const registry: {
133
+ readonly HelixActionEvent: typeof HelixActionEvent;
1322
134
  readonly HelixActivateEvent: typeof HelixActivateEvent;
135
+ readonly HelixAuraFallbackEvent: typeof HelixAuraFallbackEvent;
1323
136
  readonly HelixBeforeActivateEvent: typeof HelixBeforeActivateEvent;
1324
137
  readonly HelixBeforeChangeEvent: typeof HelixBeforeChangeEvent;
1325
138
  readonly HelixBeforeCloseEvent: typeof HelixBeforeCloseEvent;
@@ -1339,13 +152,18 @@ declare const registry: {
1339
152
  readonly HelixCanvasViewEvent: typeof HelixCanvasViewEvent;
1340
153
  readonly HelixCanvasZoomEvent: typeof HelixCanvasZoomEvent;
1341
154
  readonly HelixCaretEvent: typeof HelixCaretEvent;
155
+ readonly HelixClearEvent: typeof HelixClearEvent;
1342
156
  readonly HelixCollapseEvent: typeof HelixCollapseEvent;
1343
157
  readonly HelixCompleteEvent: typeof HelixCompleteEvent;
1344
158
  readonly HelixConnectEvent: typeof HelixConnectEvent;
1345
159
  readonly HelixConsoleEvent: typeof HelixConsoleEvent;
160
+ readonly HelixCopyErrorEvent: typeof HelixCopyErrorEvent;
1346
161
  readonly HelixCopyEvent: typeof HelixCopyEvent;
1347
162
  readonly HelixCreateEvent: typeof HelixCreateEvent;
1348
163
  readonly HelixDismissEvent: typeof HelixDismissEvent;
164
+ readonly HelixEditEvent: typeof HelixEditEvent;
165
+ readonly HelixEndEvent: typeof HelixEndEvent;
166
+ readonly HelixExpandEvent: typeof HelixExpandEvent;
1349
167
  readonly HelixFacetEvent: typeof HelixFacetEvent;
1350
168
  readonly HelixFilterEvent: typeof HelixFilterEvent;
1351
169
  readonly HelixFilteredEvent: typeof HelixFilteredEvent;
@@ -1357,6 +175,8 @@ declare const registry: {
1357
175
  readonly HelixGraphSignalEvent: typeof HelixGraphSignalEvent;
1358
176
  readonly HelixGraphZoomEvent: typeof HelixGraphZoomEvent;
1359
177
  readonly HelixHistoryEvent: typeof HelixHistoryEvent;
178
+ readonly HelixLoadEvent: typeof HelixLoadEvent;
179
+ readonly HelixLoadMoreEvent: typeof HelixLoadMoreEvent;
1360
180
  readonly HelixMapClusterEvent: typeof HelixMapClusterEvent;
1361
181
  readonly HelixMapPanEvent: typeof HelixMapPanEvent;
1362
182
  readonly HelixMapPartChangeEvent: typeof HelixMapPartChangeEvent;
@@ -1367,8 +187,12 @@ declare const registry: {
1367
187
  readonly HelixMoveEvent: typeof HelixMoveEvent;
1368
188
  readonly HelixNavigateEvent: typeof HelixNavigateEvent;
1369
189
  readonly HelixNextEvent: typeof HelixNextEvent;
190
+ readonly HelixPanelResizeEvent: typeof HelixPanelResizeEvent;
1370
191
  readonly HelixPinEvent: typeof HelixPinEvent;
192
+ readonly HelixPressEvent: typeof HelixPressEvent;
193
+ readonly HelixPreviewEvent: typeof HelixPreviewEvent;
1371
194
  readonly HelixPreviousEvent: typeof HelixPreviousEvent;
195
+ readonly HelixRangeChangeEvent: typeof HelixRangeChangeEvent;
1372
196
  readonly HelixReadEvent: typeof HelixReadEvent;
1373
197
  readonly HelixReconnectEvent: typeof HelixReconnectEvent;
1374
198
  readonly HelixRejectEvent: typeof HelixRejectEvent;
@@ -1387,16 +211,12 @@ declare const registry: {
1387
211
  readonly HelixShortcutEvent: typeof HelixShortcutEvent;
1388
212
  readonly HelixSortEvent: typeof HelixSortEvent;
1389
213
  readonly HelixSortedEvent: typeof HelixSortedEvent;
214
+ readonly HelixSplitEvent: typeof HelixSplitEvent;
215
+ readonly HelixToggleEvent: typeof HelixToggleEvent;
1390
216
  readonly HelixTourAskEvent: typeof HelixTourAskEvent;
217
+ readonly HelixTourStatusEvent: typeof HelixTourStatusEvent;
218
+ readonly HelixTypingEvent: typeof HelixTypingEvent;
1391
219
  };
1392
- /**
1393
- * Every name this library dispatches.
1394
- *
1395
- * Exported so a runtime check can ask whether a name is one of ours without
1396
- * keeping a second list of them. `HelixElement` uses it to tell a consumer that
1397
- * the handler prop they wrote is attached to nothing.
1398
- */
1399
- export declare const helixEventNames: ReadonlySet<string>;
1400
220
  type Registry = typeof registry;
1401
221
  /**
1402
222
  * The registry keyed by what each class dispatches as.
@@ -1413,4 +233,3 @@ declare global {
1413
233
  interface HTMLElementEventMap extends HelixEventMap {
1414
234
  }
1415
235
  }
1416
- export {};