tungsten 0.5.0 → 0.5.2

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 (200) hide show
  1. package/dist/.build-complete +1 -1
  2. package/dist/Components.d.ts +14 -6
  3. package/dist/Components.d.ts.map +1 -1
  4. package/dist/Components.js +67 -23
  5. package/dist/DomPointer.js +1 -1
  6. package/dist/DomRegion.js +2 -2
  7. package/dist/Framework.d.ts.map +1 -1
  8. package/dist/Framework.js +9 -3
  9. package/dist/FrameworkConfig.d.ts +0 -1
  10. package/dist/FrameworkConfig.d.ts.map +1 -1
  11. package/dist/FunctionComponentStandIn.d.ts +4 -0
  12. package/dist/FunctionComponentStandIn.d.ts.map +1 -1
  13. package/dist/FunctionComponentStandIn.js +11 -1
  14. package/dist/Json.type.d.ts.map +1 -1
  15. package/dist/Servers/DevServer.js +1 -1
  16. package/dist/Servers/MatchedRouteInfo.d.ts +1 -1
  17. package/dist/Servers/MatchedRouteInfo.d.ts.map +1 -1
  18. package/dist/Servers/ProdServer.js +2 -3
  19. package/dist/Servers/initStores.d.ts.map +1 -1
  20. package/dist/Servers/loadEnvsDev.d.ts.map +1 -1
  21. package/dist/Servers/loadEnvsDev.js +8 -3
  22. package/dist/Store/makeStore.d.ts.map +1 -1
  23. package/dist/Store/makeStore.js +7 -3
  24. package/dist/api/ApiMethod.type.d.ts +2 -0
  25. package/dist/api/ApiMethod.type.d.ts.map +1 -0
  26. package/dist/api/ApiRoute.d.ts +2 -2
  27. package/dist/api/ApiRoute.d.ts.map +1 -1
  28. package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts +2 -2
  29. package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts.map +1 -1
  30. package/dist/babelPlugins/BabelExtractComponentStylesheet.js +1 -1
  31. package/dist/babelPlugins/BabelTransformBindDirect.d.ts.map +1 -1
  32. package/dist/babelPlugins/BabelTransformBindDirect.js +2 -4
  33. package/dist/babelPlugins/BabelTransformBindVar.js +2 -3
  34. package/dist/babelPlugins/BabelTransformDocInit.js +1 -1
  35. package/dist/babelPlugins/BabelTransformPackageImports.d.ts +1 -0
  36. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  37. package/dist/babelPlugins/BabelTransformPackageImports.js +51 -69
  38. package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
  39. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
  40. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
  41. package/dist/bin/commands/build.js +0 -1
  42. package/dist/build/babel.user.common.config.d.ts +2 -1
  43. package/dist/build/babel.user.common.config.d.ts.map +1 -1
  44. package/dist/build/babel.user.common.config.js +16 -10
  45. package/dist/build/compileJavascript.d.ts.map +1 -1
  46. package/dist/build/compileJavascript.js +3 -4
  47. package/dist/build/compileStyles.d.ts.map +1 -1
  48. package/dist/build/compileStyles.js +7 -3
  49. package/dist/build/createClientFiles.js +2 -3
  50. package/dist/build/createInstanceConfigFile.js +1 -1
  51. package/dist/build/devBundle.rollup.config.js +6 -6
  52. package/dist/build/frameworkDestLocation.d.ts.map +1 -1
  53. package/dist/build/frameworkDestLocation.js +5 -2
  54. package/dist/build/makeBabelRawConfig.js +1 -1
  55. package/dist/build/makeBabelUserProdConfig.js +2 -4
  56. package/dist/build/packageIdentifier.d.ts +6 -0
  57. package/dist/build/packageIdentifier.d.ts.map +1 -0
  58. package/dist/build/packageIdentifier.js +19 -0
  59. package/dist/build/rollup.user.prod.config.js +12 -12
  60. package/dist/build/sassImportParser.js +0 -3
  61. package/dist/clone.js +1 -3
  62. package/dist/compat/types.d.ts.map +1 -1
  63. package/dist/componentProxyHandlers.js +1 -1
  64. package/dist/components/NativeHtml.d.ts +1 -1
  65. package/dist/components/NativeHtml.d.ts.map +1 -1
  66. package/dist/components/Protected.d.ts +1 -1
  67. package/dist/components/Protected.d.ts.map +1 -1
  68. package/dist/components/Stylesheet.js +0 -1
  69. package/dist/components/bindable/BindableInputTyped.d.ts.map +1 -1
  70. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  71. package/dist/components/library/RichTextEditor/RichTextEditor.js +3 -3
  72. package/dist/createRef.d.ts +1 -1
  73. package/dist/createRef.d.ts.map +1 -1
  74. package/dist/createRef.js +1 -1
  75. package/dist/env/droppedCoreEnvKeys.d.ts +5 -0
  76. package/dist/env/droppedCoreEnvKeys.d.ts.map +1 -0
  77. package/dist/env/droppedCoreEnvKeys.js +9 -0
  78. package/dist/foreach.d.ts.map +1 -1
  79. package/dist/frameworkConfigSchema.d.ts +11 -0
  80. package/dist/frameworkConfigSchema.d.ts.map +1 -1
  81. package/dist/frameworkConfigSchema.js +15 -4
  82. package/dist/getUserConfig.d.ts.map +1 -1
  83. package/dist/getUserConfig.js +7 -2
  84. package/dist/headChildren.d.ts +2 -0
  85. package/dist/headChildren.d.ts.map +1 -0
  86. package/dist/headChildren.js +16 -0
  87. package/dist/helpers/forwardingFetch.d.ts +3 -0
  88. package/dist/helpers/forwardingFetch.d.ts.map +1 -0
  89. package/dist/helpers/forwardingFetch.js +14 -0
  90. package/dist/helpers/index.d.ts +2 -0
  91. package/dist/helpers/index.d.ts.map +1 -1
  92. package/dist/helpers/index.js +3 -1
  93. package/dist/helpers/perRequest.d.ts +3 -0
  94. package/dist/helpers/perRequest.d.ts.map +1 -0
  95. package/dist/helpers/perRequest.js +17 -0
  96. package/dist/hmr/instanceRegistry.js +2 -2
  97. package/dist/hooks/useCallback.d.ts.map +1 -1
  98. package/dist/hydrate/hydrate.d.ts +1 -2
  99. package/dist/hydrate/hydrate.d.ts.map +1 -1
  100. package/dist/hydrate/hydrate.js +13 -20
  101. package/dist/hydrate/reconcileHydratedAttributes.js +1 -1
  102. package/dist/importDevModuleWithRetry.js +1 -1
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +4 -0
  106. package/dist/indexInner.d.ts +1 -2
  107. package/dist/indexInner.d.ts.map +1 -1
  108. package/dist/logAndReturn.d.ts.map +1 -1
  109. package/dist/markOptionSelected.js +1 -1
  110. package/dist/mutatingFunctions.js +0 -3
  111. package/dist/postcssPlugins/TransformCssNames.js +2 -2
  112. package/dist/render/addImportMap.d.ts.map +1 -1
  113. package/dist/render/addImportMap.js +1 -1
  114. package/dist/render/processHead.d.ts.map +1 -1
  115. package/dist/render/processHead.js +18 -12
  116. package/dist/requests/fetch/delete.d.ts +2 -1
  117. package/dist/requests/fetch/delete.d.ts.map +1 -1
  118. package/dist/requests/fetch/delete.js +7 -7
  119. package/dist/requests/fetch/get.d.ts.map +1 -1
  120. package/dist/requests/fetch/get.js +4 -6
  121. package/dist/requests/fetch/mergeFetchInit.d.ts +2 -0
  122. package/dist/requests/fetch/mergeFetchInit.d.ts.map +1 -0
  123. package/dist/requests/fetch/mergeFetchInit.js +17 -0
  124. package/dist/requests/fetch/patch.d.ts.map +1 -1
  125. package/dist/requests/fetch/patch.js +4 -6
  126. package/dist/requests/fetch/post.d.ts.map +1 -1
  127. package/dist/requests/fetch/post.js +4 -6
  128. package/dist/requests/fetch/put.d.ts.map +1 -1
  129. package/dist/requests/fetch/put.js +4 -6
  130. package/dist/routing/ParamsFromPath.d.ts.map +1 -1
  131. package/dist/routing/RouteType.d.ts +1 -8
  132. package/dist/routing/RouteType.d.ts.map +1 -1
  133. package/dist/routing/RouteTypes.d.ts +11 -0
  134. package/dist/routing/RouteTypes.d.ts.map +1 -1
  135. package/dist/routing/Routes.d.ts +7 -8
  136. package/dist/routing/Routes.d.ts.map +1 -1
  137. package/dist/routing/__fluentRouteBuilder.d.ts +80 -0
  138. package/dist/routing/__fluentRouteBuilder.d.ts.map +1 -0
  139. package/dist/routing/__fluentRouteBuilder.js +183 -0
  140. package/dist/routing/__fluentRoutes.d.ts +2 -0
  141. package/dist/routing/__fluentRoutes.d.ts.map +1 -0
  142. package/dist/routing/__fluentRoutes.js +59 -0
  143. package/dist/staticGen/staticGen.d.ts.map +1 -1
  144. package/dist/testing/host.d.ts.map +1 -1
  145. package/dist/testing/host.js +1 -2
  146. package/dist/testing/hydrateTestApp.js +5 -9
  147. package/dist/update/guardedUpdate.d.ts +9 -0
  148. package/dist/update/guardedUpdate.d.ts.map +1 -0
  149. package/dist/update/guardedUpdate.js +20 -0
  150. package/dist/update/integrateUpdateVdom.d.ts.map +1 -1
  151. package/dist/update/integrateUpdateVdom.js +5 -3
  152. package/dist/zones/react.d.ts.map +1 -1
  153. package/dist/zones/react.js +2 -2
  154. package/package.json +7 -10
  155. package/types/env.d.ts +11 -11
  156. package/types/index.d.ts +7 -3
  157. package/types/jsx/html.d.ts +5 -5
  158. package/types/jsx/html.events.d.ts +202 -200
  159. package/types/jsx/html.global.d.ts +150 -150
  160. package/types/jsx/html.values.d.ts +29 -29
  161. package/types/jsx/jsx.d.ts +16 -5
  162. package/vendor/babel-core.js +13 -8
  163. package/vendor/babel-parser.js +5 -1
  164. package/vendor/babel-plugin-syntax-import-assertions.js +5 -1
  165. package/vendor/babel-preset-react.js +13 -8
  166. package/vendor/babel-preset-typescript.js +13 -8
  167. package/vendor/babel-types.js +5 -1
  168. package/vendor/chalk-extensions.js +6 -161
  169. package/vendor/chalk.js +4 -0
  170. package/vendor/chokidar.js +17 -13
  171. package/vendor/{chunk-B_NeooyV.js → chunk-BSJqV47f.js} +4 -0
  172. package/vendor/{chunk-1UuLTU0U.js → chunk-BYvDIO7e.js} +4 -0
  173. package/vendor/chunk-BfcfwwoF.js +15 -0
  174. package/vendor/{chunk-CPArXGxa.js → chunk-BiUcnLhT.js} +4 -0
  175. package/vendor/chunk-Bu8ZRE-c.js +179 -0
  176. package/vendor/chunk-CmnhIuzX.js +167 -0
  177. package/vendor/chunk-Cqrj-Zqr.js +8579 -0
  178. package/vendor/{chunk-1TN2rK3j.js → chunk-D2EnpcLg.js} +7 -3
  179. package/vendor/{chunk-C9FSKeSx.js → chunk-DHmjZ22y.js} +4 -0
  180. package/vendor/{chunk-C3YkUGz5.js → chunk-Hy-cCmu-.js} +4 -0
  181. package/vendor/{chunk-C12hSZn7.js → chunk-Lqa6rV_r.js} +4 -0
  182. package/vendor/{chunk-C3fcZDjl.js → chunk-OUnVY4Wm.js} +24 -191
  183. package/vendor/cjs-module-lexer.js +4 -0
  184. package/vendor/dotenv.js +10 -6
  185. package/vendor/express.js +30 -31
  186. package/vendor/import-meta-resolve.js +4 -0
  187. package/vendor/manifest.json +3 -2
  188. package/vendor/postcss.js +9 -8544
  189. package/vendor/precinct.js +326959 -0
  190. package/vendor/serialize-javascript.js +4 -0
  191. package/vendor/sxy-lib-arrays.js +4 -0
  192. package/vendor/sxy-lib-object-copy.js +5 -1
  193. package/vendor/sxy-lib-objects.js +4 -0
  194. package/vendor/sxy-lib-promises.js +4 -0
  195. package/vendor/sxy-package-investigator.js +7 -3
  196. package/vendor/valibot.js +4 -0
  197. package/dist/.tsbuildinfo +0 -1
  198. package/dist/api/Method.d.ts +0 -2
  199. package/dist/api/Method.d.ts.map +0 -1
  200. /package/dist/api/{Method.js → ApiMethod.type.js} +0 -0
@@ -7,7 +7,7 @@ import type { TrustedHTML } from './html.global.js'
7
7
  import type { Booleanish } from './html.values.js'
8
8
  import type {
9
9
  AnimationEventHandler, ButtonMouseEvent, ChangeEventHandler, ClipboardEventHandler, CompositionEventHandler,
10
- DragEventHandler, ExtendedKeyboardEvent, ExtendedMouseEvent, ExtendedUIEvent, FocusEventHandler, FormEventHandler, InputKeyboardEvent, KeyboardEventHandler, MouseEventHandler,
10
+ DragEventHandler, FocusEventHandler, FormEventHandler, KeyboardEventHandler, MouseEventHandler,
11
11
  PointerEventHandler, TungstenEventHandler, SyntheticEvent, TextareaKeyboardEvent, TouchEventHandler, TransitionEventHandler, UIEventHandler,
12
12
  WheelEventHandler
13
13
  } from './html.events.js'
@@ -524,7 +524,7 @@ type AriaRole =
524
524
  | 'treeitem'
525
525
  | (string & {})
526
526
 
527
- type ClassNameType = string | undefined | (string | undefined)[];
527
+ type ClassNameType = string | undefined | (string | undefined)[]
528
528
 
529
529
  export interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
530
530
  __zoneHtml?: string | undefined;
@@ -610,7 +610,7 @@ export type HTMLAttributeAnchorTarget =
610
610
  | '_blank'
611
611
  | '_parent'
612
612
  | '_top'
613
- | (string & {});
613
+ | (string & {})
614
614
 
615
615
  type HTMLAttributeReferrerPolicy =
616
616
  | ''
@@ -621,7 +621,7 @@ type HTMLAttributeReferrerPolicy =
621
621
  | 'same-origin'
622
622
  | 'strict-origin'
623
623
  | 'strict-origin-when-cross-origin'
624
- | 'unsafe-url';
624
+ | 'unsafe-url'
625
625
 
626
626
  export interface AnchorHTMLAttributes<T> extends HTMLAttributes<T> {
627
627
  download?: any;
@@ -812,7 +812,7 @@ export type HTMLInputTypeAttribute =
812
812
  | 'time'
813
813
  | 'url'
814
814
  | 'week'
815
- | (string & {});
815
+ | (string & {})
816
816
 
817
817
  // interface InputCheckboxHTMLAttributes<T, BO extends object> extends HTMLAttributes<T> {
818
818
  // accept?: string | undefined;
@@ -1,200 +1,202 @@
1
-
2
-
3
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4
- // Events might be wrong! We are using vanilla events, but type system is used extended/synthetic events from React perhaps?
5
-
6
-
7
-
8
- //
9
- // Event System
10
- // ----------------------------------------------------------------------
11
-
12
- import { AbstractView } from './html.values.js'
13
-
14
- // TODO: change any to unknown when moving to TS v3
15
- export interface BaseSyntheticEvent<E = object, C = any, T = any> {
16
- nativeEvent: E;
17
- currentTarget: C;
18
- target: T;
19
- bubbles: boolean;
20
- cancelable: boolean;
21
- defaultPrevented: boolean;
22
- eventPhase: number;
23
- isTrusted: boolean;
24
- preventDefault(): void;
25
- isDefaultPrevented(): boolean;
26
- stopPropagation(): void;
27
- isPropagationStopped(): boolean;
28
- persist(): void;
29
- timeStamp: number;
30
- type: string;
31
- }
32
-
33
- /**
34
- * currentTarget - a reference to the element on which the event listener is registered.
35
- *
36
- * target - a reference to the element from which the event was originally dispatched.
37
- * This might be a child element to the element on which the event listener is registered.
38
- * If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682
39
- */
40
- export interface SyntheticEvent<T = Element, E = Event> extends BaseSyntheticEvent<E, EventTarget & T, EventTarget> {}
41
-
42
- export interface ExtendedUIEvent<T = Element, E = UIEvent> extends SyntheticEvent<T, E> {
43
- detail: number
44
- view: AbstractView
45
- }
46
-
47
- export interface ExtendedMouseEvent<T = Element, E = MouseEvent> extends ExtendedUIEvent<T, E> {
48
- target: T & EventTarget
49
- altKey: boolean
50
- button: number
51
- buttons: number
52
- clientX: number
53
- clientY: number
54
- ctrlKey: boolean
55
- /**
56
- * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method.
57
- */
58
- getModifierState(key: ModifierKey): boolean
59
- metaKey: boolean
60
- movementX: number
61
- movementY: number
62
- pageX: number
63
- pageY: number
64
- relatedTarget: EventTarget | null
65
- screenX: number
66
- screenY: number
67
- shiftKey: boolean
68
- }
69
-
70
- export interface ExtendedClipboardEvent<T = Element> extends SyntheticEvent<T, ClipboardEvent> {
71
- clipboardData: DataTransfer
72
- }
73
-
74
- export interface ExtendedCompositionEvent<T = Element> extends SyntheticEvent<T, CompositionEvent> {
75
- data: string
76
- }
77
-
78
- export interface ExtendedDragEvent<T = Element> extends ExtendedMouseEvent<T, DragEvent> {
79
- dataTransfer: DataTransfer;
80
- }
81
-
82
- export interface ExtendedPointerEvent<T = Element> extends ExtendedMouseEvent<T, PointerEvent> {
83
- pointerId: number
84
- pressure: number
85
- tangentialPressure: number
86
- tiltX: number
87
- tiltY: number
88
- twist: number
89
- width: number
90
- height: number
91
- pointerType: 'mouse' | 'pen' | 'touch';
92
- isPrimary: boolean
93
- }
94
-
95
- export interface ExtendedFocusEvent<Target = Element, RelatedTarget = Element> extends SyntheticEvent<Target, FocusEvent> {
96
- relatedTarget: (EventTarget & RelatedTarget) | null
97
- target: EventTarget & Target;
98
- }
99
-
100
- export interface ExtendedFormEvent<T = Element> extends SyntheticEvent<T> {
101
- }
102
-
103
- // export interface ExtendedInvalidEvent<T = Element> extends SyntheticEvent<T> {
104
- // target: EventTarget & T
105
- // }
106
-
107
- export interface ExtendedChangeEvent<T = Element> extends SyntheticEvent<T> {
108
- target: EventTarget & T
109
- }
110
-
111
- export type ModifierKey = 'Alt' | 'AltGraph' | 'CapsLock' | 'Control' | 'Fn' | 'FnLock' | 'Hyper' | 'Meta' | 'NumLock' | 'ScrollLock' | 'Shift' | 'Super' | 'Symbol' | 'SymbolLock';
112
-
113
- export interface ExtendedKeyboardEvent<T = Element> extends ExtendedUIEvent<T, KeyboardEvent> {
114
- target: T & EventTarget
115
- altKey: boolean
116
- /** @deprecated */
117
- charCode: number
118
- ctrlKey: boolean
119
- code: string
120
- /**
121
- * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method.
122
- */
123
- getModifierState(key: ModifierKey): boolean
124
- /**
125
- * See the [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values). for possible values
126
- */
127
- key: string
128
- /** @deprecated */
129
- keyCode: number
130
- locale: string
131
- location: number
132
- metaKey: boolean
133
- repeat: boolean
134
- shiftKey: boolean
135
- /** @deprecated */
136
- which: number
137
- }
138
-
139
- export interface ExtendedTouchEvent<T = Element> extends ExtendedUIEvent<T, TouchEvent> {
140
- altKey: boolean
141
- changedTouches: TouchList
142
- ctrlKey: boolean
143
- /**
144
- * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method.
145
- */
146
- getModifierState(key: ModifierKey): boolean
147
- metaKey: boolean
148
- shiftKey: boolean
149
- targetTouches: TouchList
150
- touches: TouchList
151
- }
152
-
153
- export interface ExtendedWheelEvent<T = Element> extends ExtendedMouseEvent<T, WheelEvent> {
154
- deltaMode: number
155
- deltaX: number
156
- deltaY: number
157
- deltaZ: number
158
- }
159
-
160
- export interface ExtendedAnimationEvent<T = Element> extends SyntheticEvent<T, AnimationEvent> {
161
- animationName: string
162
- elapsedTime: number
163
- pseudoElement: string
164
- }
165
-
166
- export interface ExtendedTransitionEvent<T = Element> extends SyntheticEvent<T, TransitionEvent> {
167
- elapsedTime: number
168
- propertyName: string
169
- pseudoElement: string
170
- }
171
-
172
-
173
-
174
- export type EventHandler<E extends SyntheticEvent<any>> = { bivarianceHack(event: E): void }['bivarianceHack']
175
-
176
- //type ReactEventHandler<T = Element> = EventHandler<SyntheticEvent<T>>;
177
-
178
- export type ClipboardEventHandler<T = Element> = EventHandler<ExtendedClipboardEvent<T>>
179
- export type CompositionEventHandler<T = Element> = EventHandler<ExtendedCompositionEvent<T>>
180
- export type DragEventHandler<T = Element> = EventHandler<ExtendedDragEvent<T>>
181
- export type FocusEventHandler<T = Element> = EventHandler<ExtendedFocusEvent<T>>
182
- export type FormEventHandler<T = Element> = EventHandler<ExtendedFormEvent<T>>
183
- export type ChangeEventHandler<T = Element> = EventHandler<ExtendedChangeEvent<T>>
184
- export type KeyboardEventHandler<T = Element> = EventHandler<ExtendedKeyboardEvent<T>>
185
- export type MouseEventHandler<T = Element> = EventHandler<ExtendedMouseEvent<T>>
186
- export type TouchEventHandler<T = Element> = EventHandler<ExtendedTouchEvent<T>>
187
- export type PointerEventHandler<T = Element> = EventHandler<ExtendedPointerEvent<T>>
188
- export type UIEventHandler<T = Element> = EventHandler<ExtendedUIEvent<T>>
189
- export type WheelEventHandler<T = Element> = EventHandler<ExtendedWheelEvent<T>>
190
- export type AnimationEventHandler<T = Element> = EventHandler<ExtendedAnimationEvent<T>>
191
- export type TransitionEventHandler<T = Element> = EventHandler<ExtendedTransitionEvent<T>>
192
-
193
- export type FormEvent = ExtendedFormEvent<HTMLFormElement>
194
- export type ButtonMouseEvent = ExtendedMouseEvent<HTMLButtonElement>
195
- export type AnchorMouseEvent = ExtendedMouseEvent<HTMLAnchorElement>
196
- export type InputKeyboardEvent = ExtendedKeyboardEvent<HTMLInputElement>
197
- export type TextareaKeyboardEvent = ExtendedKeyboardEvent<HTMLTextAreaElement>
198
-
199
- // WHAT IS IT?
200
- export type TungstenEventHandler<T = Element> = EventHandler<SyntheticEvent<T>>;
1
+
2
+
3
+ // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4
+ // Events might be wrong! We are using vanilla events, but type system is used extended/synthetic events from React perhaps?
5
+
6
+
7
+
8
+ //
9
+ // Event System
10
+ // ----------------------------------------------------------------------
11
+
12
+ import { AbstractView } from './html.values.js'
13
+
14
+ // TODO: change any to unknown when moving to TS v3
15
+ export interface BaseSyntheticEvent<E = object, C = any, T = any> {
16
+ nativeEvent: E;
17
+ currentTarget: C;
18
+ target: T;
19
+ bubbles: boolean;
20
+ cancelable: boolean;
21
+ defaultPrevented: boolean;
22
+ eventPhase: number;
23
+ isTrusted: boolean;
24
+ preventDefault(): void;
25
+ isDefaultPrevented(): boolean;
26
+ stopPropagation(): void;
27
+ isPropagationStopped(): boolean;
28
+ persist(): void;
29
+ timeStamp: number;
30
+ type: string;
31
+ }
32
+
33
+ /**
34
+ * currentTarget - a reference to the element on which the event listener is registered.
35
+ *
36
+ * target - a reference to the element from which the event was originally dispatched.
37
+ * This might be a child element to the element on which the event listener is registered.
38
+ * If you thought this should be `EventTarget & T`, see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11508#issuecomment-256045682
39
+ */
40
+ export interface SyntheticEvent<T = Element, E = Event> extends BaseSyntheticEvent<E, EventTarget & T, EventTarget> {}
41
+
42
+ export interface ExtendedUIEvent<T = Element, E = UIEvent> extends SyntheticEvent<T, E> {
43
+ detail: number
44
+ view: AbstractView
45
+ }
46
+
47
+ export interface ExtendedMouseEvent<T = Element, E = MouseEvent> extends ExtendedUIEvent<T, E> {
48
+ target: T & EventTarget
49
+ altKey: boolean
50
+ button: number
51
+ buttons: number
52
+ clientX: number
53
+ clientY: number
54
+ ctrlKey: boolean
55
+ /**
56
+ * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method.
57
+ */
58
+ getModifierState(key: ModifierKey): boolean
59
+ metaKey: boolean
60
+ movementX: number
61
+ movementY: number
62
+ pageX: number
63
+ pageY: number
64
+ relatedTarget: EventTarget | null
65
+ screenX: number
66
+ screenY: number
67
+ shiftKey: boolean
68
+ }
69
+
70
+ export interface ExtendedClipboardEvent<T = Element> extends SyntheticEvent<T, ClipboardEvent> {
71
+ clipboardData: DataTransfer
72
+ }
73
+
74
+ export interface ExtendedCompositionEvent<T = Element> extends SyntheticEvent<T, CompositionEvent> {
75
+ data: string
76
+ }
77
+
78
+ export interface ExtendedDragEvent<T = Element> extends ExtendedMouseEvent<T, DragEvent> {
79
+ dataTransfer: DataTransfer;
80
+ }
81
+
82
+ export interface ExtendedPointerEvent<T = Element> extends ExtendedMouseEvent<T, PointerEvent> {
83
+ pointerId: number
84
+ pressure: number
85
+ tangentialPressure: number
86
+ tiltX: number
87
+ tiltY: number
88
+ twist: number
89
+ width: number
90
+ height: number
91
+ pointerType: 'mouse' | 'pen' | 'touch';
92
+ isPrimary: boolean
93
+ }
94
+
95
+ export interface ExtendedFocusEvent<Target = Element, RelatedTarget = Element>
96
+ extends SyntheticEvent<Target, FocusEvent> {
97
+ relatedTarget: (EventTarget & RelatedTarget) | null
98
+ target: EventTarget & Target;
99
+ }
100
+
101
+ export interface ExtendedFormEvent<T = Element> extends SyntheticEvent<T> {
102
+ }
103
+
104
+ // export interface ExtendedInvalidEvent<T = Element> extends SyntheticEvent<T> {
105
+ // target: EventTarget & T
106
+ // }
107
+
108
+ export interface ExtendedChangeEvent<T = Element> extends SyntheticEvent<T> {
109
+ target: EventTarget & T
110
+ }
111
+
112
+ export type ModifierKey = 'Alt' | 'AltGraph' | 'CapsLock' | 'Control' | 'Fn' | 'FnLock'
113
+ | 'Hyper' | 'Meta' | 'NumLock' | 'ScrollLock' | 'Shift' | 'Super' | 'Symbol' | 'SymbolLock'
114
+
115
+ export interface ExtendedKeyboardEvent<T = Element> extends ExtendedUIEvent<T, KeyboardEvent> {
116
+ target: T & EventTarget
117
+ altKey: boolean
118
+ /** @deprecated */
119
+ charCode: number
120
+ ctrlKey: boolean
121
+ code: string
122
+ /**
123
+ * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method.
124
+ */
125
+ getModifierState(key: ModifierKey): boolean
126
+ /**
127
+ * See the [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#named-key-attribute-values). for possible values
128
+ */
129
+ key: string
130
+ /** @deprecated */
131
+ keyCode: number
132
+ locale: string
133
+ location: number
134
+ metaKey: boolean
135
+ repeat: boolean
136
+ shiftKey: boolean
137
+ /** @deprecated */
138
+ which: number
139
+ }
140
+
141
+ export interface ExtendedTouchEvent<T = Element> extends ExtendedUIEvent<T, TouchEvent> {
142
+ altKey: boolean
143
+ changedTouches: TouchList
144
+ ctrlKey: boolean
145
+ /**
146
+ * See [DOM Level 3 Events spec](https://www.w3.org/TR/uievents-key/#keys-modifier). for a list of valid (case-sensitive) arguments to this method.
147
+ */
148
+ getModifierState(key: ModifierKey): boolean
149
+ metaKey: boolean
150
+ shiftKey: boolean
151
+ targetTouches: TouchList
152
+ touches: TouchList
153
+ }
154
+
155
+ export interface ExtendedWheelEvent<T = Element> extends ExtendedMouseEvent<T, WheelEvent> {
156
+ deltaMode: number
157
+ deltaX: number
158
+ deltaY: number
159
+ deltaZ: number
160
+ }
161
+
162
+ export interface ExtendedAnimationEvent<T = Element> extends SyntheticEvent<T, AnimationEvent> {
163
+ animationName: string
164
+ elapsedTime: number
165
+ pseudoElement: string
166
+ }
167
+
168
+ export interface ExtendedTransitionEvent<T = Element> extends SyntheticEvent<T, TransitionEvent> {
169
+ elapsedTime: number
170
+ propertyName: string
171
+ pseudoElement: string
172
+ }
173
+
174
+
175
+
176
+ export type EventHandler<E extends SyntheticEvent<any>> = { bivarianceHack(event: E): void }['bivarianceHack']
177
+
178
+ //type ReactEventHandler<T = Element> = EventHandler<SyntheticEvent<T>>;
179
+
180
+ export type ClipboardEventHandler<T = Element> = EventHandler<ExtendedClipboardEvent<T>>
181
+ export type CompositionEventHandler<T = Element> = EventHandler<ExtendedCompositionEvent<T>>
182
+ export type DragEventHandler<T = Element> = EventHandler<ExtendedDragEvent<T>>
183
+ export type FocusEventHandler<T = Element> = EventHandler<ExtendedFocusEvent<T>>
184
+ export type FormEventHandler<T = Element> = EventHandler<ExtendedFormEvent<T>>
185
+ export type ChangeEventHandler<T = Element> = EventHandler<ExtendedChangeEvent<T>>
186
+ export type KeyboardEventHandler<T = Element> = EventHandler<ExtendedKeyboardEvent<T>>
187
+ export type MouseEventHandler<T = Element> = EventHandler<ExtendedMouseEvent<T>>
188
+ export type TouchEventHandler<T = Element> = EventHandler<ExtendedTouchEvent<T>>
189
+ export type PointerEventHandler<T = Element> = EventHandler<ExtendedPointerEvent<T>>
190
+ export type UIEventHandler<T = Element> = EventHandler<ExtendedUIEvent<T>>
191
+ export type WheelEventHandler<T = Element> = EventHandler<ExtendedWheelEvent<T>>
192
+ export type AnimationEventHandler<T = Element> = EventHandler<ExtendedAnimationEvent<T>>
193
+ export type TransitionEventHandler<T = Element> = EventHandler<ExtendedTransitionEvent<T>>
194
+
195
+ export type FormEvent = ExtendedFormEvent<HTMLFormElement>
196
+ export type ButtonMouseEvent = ExtendedMouseEvent<HTMLButtonElement>
197
+ export type AnchorMouseEvent = ExtendedMouseEvent<HTMLAnchorElement>
198
+ export type InputKeyboardEvent = ExtendedKeyboardEvent<HTMLInputElement>
199
+ export type TextareaKeyboardEvent = ExtendedKeyboardEvent<HTMLTextAreaElement>
200
+
201
+ // WHAT IS IT?
202
+ export type TungstenEventHandler<T = Element> = EventHandler<SyntheticEvent<T>>