tungsten 0.5.1 → 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 (182) 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.js +1 -1
  8. package/dist/FunctionComponentStandIn.d.ts +4 -0
  9. package/dist/FunctionComponentStandIn.d.ts.map +1 -1
  10. package/dist/FunctionComponentStandIn.js +11 -1
  11. package/dist/Json.type.d.ts.map +1 -1
  12. package/dist/Servers/DevServer.js +1 -1
  13. package/dist/Servers/MatchedRouteInfo.d.ts +1 -1
  14. package/dist/Servers/MatchedRouteInfo.d.ts.map +1 -1
  15. package/dist/Servers/ProdServer.js +2 -3
  16. package/dist/Servers/initStores.d.ts.map +1 -1
  17. package/dist/Servers/loadEnvsDev.js +2 -2
  18. package/dist/Store/makeStore.d.ts.map +1 -1
  19. package/dist/Store/makeStore.js +7 -3
  20. package/dist/api/ApiMethod.type.d.ts +2 -0
  21. package/dist/api/ApiMethod.type.d.ts.map +1 -0
  22. package/dist/api/ApiRoute.d.ts +2 -2
  23. package/dist/api/ApiRoute.d.ts.map +1 -1
  24. package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts +2 -2
  25. package/dist/babelPlugins/BabelExtractComponentStylesheet.d.ts.map +1 -1
  26. package/dist/babelPlugins/BabelExtractComponentStylesheet.js +1 -1
  27. package/dist/babelPlugins/BabelTransformBindDirect.d.ts.map +1 -1
  28. package/dist/babelPlugins/BabelTransformBindDirect.js +2 -4
  29. package/dist/babelPlugins/BabelTransformBindVar.js +2 -3
  30. package/dist/babelPlugins/BabelTransformDocInit.js +1 -1
  31. package/dist/babelPlugins/BabelTransformPackageImports.d.ts +1 -0
  32. package/dist/babelPlugins/BabelTransformPackageImports.d.ts.map +1 -1
  33. package/dist/babelPlugins/BabelTransformPackageImports.js +51 -69
  34. package/dist/babelPlugins/BabelTypes.d.ts.map +1 -1
  35. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsCjs.d.ts.map +1 -1
  36. package/dist/babelPlugins/transformPackageImports/BabelTransformDependencyImportsEsm.d.ts.map +1 -1
  37. package/dist/bin/commands/build.js +0 -1
  38. package/dist/build/babel.user.common.config.d.ts +2 -1
  39. package/dist/build/babel.user.common.config.d.ts.map +1 -1
  40. package/dist/build/babel.user.common.config.js +16 -10
  41. package/dist/build/compileJavascript.d.ts.map +1 -1
  42. package/dist/build/compileJavascript.js +3 -4
  43. package/dist/build/compileStyles.d.ts.map +1 -1
  44. package/dist/build/compileStyles.js +7 -3
  45. package/dist/build/createClientFiles.js +2 -3
  46. package/dist/build/createInstanceConfigFile.js +1 -1
  47. package/dist/build/devBundle.rollup.config.js +6 -6
  48. package/dist/build/frameworkDestLocation.d.ts.map +1 -1
  49. package/dist/build/frameworkDestLocation.js +5 -2
  50. package/dist/build/makeBabelRawConfig.js +1 -1
  51. package/dist/build/makeBabelUserProdConfig.js +2 -4
  52. package/dist/build/packageIdentifier.d.ts +6 -0
  53. package/dist/build/packageIdentifier.d.ts.map +1 -0
  54. package/dist/build/packageIdentifier.js +19 -0
  55. package/dist/build/rollup.user.prod.config.js +12 -12
  56. package/dist/build/sassImportParser.js +0 -3
  57. package/dist/clone.js +1 -3
  58. package/dist/compat/types.d.ts.map +1 -1
  59. package/dist/componentProxyHandlers.js +1 -1
  60. package/dist/components/NativeHtml.d.ts +1 -1
  61. package/dist/components/NativeHtml.d.ts.map +1 -1
  62. package/dist/components/Protected.d.ts +1 -1
  63. package/dist/components/Protected.d.ts.map +1 -1
  64. package/dist/components/Stylesheet.js +0 -1
  65. package/dist/components/bindable/BindableInputTyped.d.ts.map +1 -1
  66. package/dist/components/library/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  67. package/dist/components/library/RichTextEditor/RichTextEditor.js +3 -3
  68. package/dist/createRef.d.ts +1 -1
  69. package/dist/createRef.d.ts.map +1 -1
  70. package/dist/createRef.js +1 -1
  71. package/dist/foreach.d.ts.map +1 -1
  72. package/dist/frameworkConfigSchema.js +1 -3
  73. package/dist/helpers/forwardingFetch.d.ts +3 -0
  74. package/dist/helpers/forwardingFetch.d.ts.map +1 -0
  75. package/dist/helpers/forwardingFetch.js +14 -0
  76. package/dist/helpers/index.d.ts +2 -0
  77. package/dist/helpers/index.d.ts.map +1 -1
  78. package/dist/helpers/index.js +3 -1
  79. package/dist/helpers/perRequest.d.ts +3 -0
  80. package/dist/helpers/perRequest.d.ts.map +1 -0
  81. package/dist/helpers/perRequest.js +17 -0
  82. package/dist/hmr/instanceRegistry.js +2 -2
  83. package/dist/hooks/useCallback.d.ts.map +1 -1
  84. package/dist/hydrate/hydrate.d.ts +1 -2
  85. package/dist/hydrate/hydrate.d.ts.map +1 -1
  86. package/dist/hydrate/hydrate.js +1 -3
  87. package/dist/hydrate/reconcileHydratedAttributes.js +1 -1
  88. package/dist/importDevModuleWithRetry.js +1 -1
  89. package/dist/index.d.ts +1 -0
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +4 -0
  92. package/dist/indexInner.d.ts +1 -2
  93. package/dist/indexInner.d.ts.map +1 -1
  94. package/dist/logAndReturn.d.ts.map +1 -1
  95. package/dist/markOptionSelected.js +1 -1
  96. package/dist/mutatingFunctions.js +0 -3
  97. package/dist/postcssPlugins/TransformCssNames.js +2 -2
  98. package/dist/render/addImportMap.js +0 -1
  99. package/dist/requests/fetch/delete.d.ts +2 -1
  100. package/dist/requests/fetch/delete.d.ts.map +1 -1
  101. package/dist/requests/fetch/delete.js +7 -7
  102. package/dist/requests/fetch/get.d.ts.map +1 -1
  103. package/dist/requests/fetch/get.js +4 -6
  104. package/dist/requests/fetch/mergeFetchInit.d.ts +2 -0
  105. package/dist/requests/fetch/mergeFetchInit.d.ts.map +1 -0
  106. package/dist/requests/fetch/mergeFetchInit.js +17 -0
  107. package/dist/requests/fetch/patch.d.ts.map +1 -1
  108. package/dist/requests/fetch/patch.js +4 -6
  109. package/dist/requests/fetch/post.d.ts.map +1 -1
  110. package/dist/requests/fetch/post.js +4 -6
  111. package/dist/requests/fetch/put.d.ts.map +1 -1
  112. package/dist/requests/fetch/put.js +4 -6
  113. package/dist/routing/ParamsFromPath.d.ts.map +1 -1
  114. package/dist/routing/RouteType.d.ts +1 -8
  115. package/dist/routing/RouteType.d.ts.map +1 -1
  116. package/dist/routing/RouteTypes.d.ts +11 -0
  117. package/dist/routing/RouteTypes.d.ts.map +1 -1
  118. package/dist/routing/Routes.d.ts +7 -8
  119. package/dist/routing/Routes.d.ts.map +1 -1
  120. package/dist/routing/__fluentRouteBuilder.d.ts +80 -0
  121. package/dist/routing/__fluentRouteBuilder.d.ts.map +1 -0
  122. package/dist/routing/__fluentRouteBuilder.js +183 -0
  123. package/dist/routing/__fluentRoutes.d.ts +2 -0
  124. package/dist/routing/__fluentRoutes.d.ts.map +1 -0
  125. package/dist/routing/__fluentRoutes.js +59 -0
  126. package/dist/staticGen/staticGen.d.ts.map +1 -1
  127. package/dist/testing/host.d.ts.map +1 -1
  128. package/dist/testing/host.js +1 -2
  129. package/dist/testing/hydrateTestApp.js +5 -9
  130. package/dist/update/guardedUpdate.d.ts +9 -0
  131. package/dist/update/guardedUpdate.d.ts.map +1 -0
  132. package/dist/update/guardedUpdate.js +20 -0
  133. package/dist/update/integrateUpdateVdom.js +2 -2
  134. package/dist/zones/react.d.ts.map +1 -1
  135. package/dist/zones/react.js +2 -2
  136. package/package.json +7 -10
  137. package/types/env.d.ts +11 -11
  138. package/types/index.d.ts +7 -3
  139. package/types/jsx/html.d.ts +5 -5
  140. package/types/jsx/html.events.d.ts +202 -200
  141. package/types/jsx/html.global.d.ts +150 -150
  142. package/types/jsx/html.values.d.ts +29 -29
  143. package/types/jsx/jsx.d.ts +16 -5
  144. package/vendor/babel-core.js +13 -8
  145. package/vendor/babel-parser.js +5 -1
  146. package/vendor/babel-plugin-syntax-import-assertions.js +5 -1
  147. package/vendor/babel-preset-react.js +13 -8
  148. package/vendor/babel-preset-typescript.js +13 -8
  149. package/vendor/babel-types.js +5 -1
  150. package/vendor/chalk-extensions.js +6 -161
  151. package/vendor/chalk.js +4 -0
  152. package/vendor/chokidar.js +17 -13
  153. package/vendor/{chunk-B_NeooyV.js → chunk-BSJqV47f.js} +4 -0
  154. package/vendor/{chunk-1UuLTU0U.js → chunk-BYvDIO7e.js} +4 -0
  155. package/vendor/chunk-BfcfwwoF.js +15 -0
  156. package/vendor/{chunk-CPArXGxa.js → chunk-BiUcnLhT.js} +4 -0
  157. package/vendor/chunk-Bu8ZRE-c.js +179 -0
  158. package/vendor/chunk-CmnhIuzX.js +167 -0
  159. package/vendor/chunk-Cqrj-Zqr.js +8579 -0
  160. package/vendor/{chunk-1TN2rK3j.js → chunk-D2EnpcLg.js} +7 -3
  161. package/vendor/{chunk-C9FSKeSx.js → chunk-DHmjZ22y.js} +4 -0
  162. package/vendor/{chunk-C3YkUGz5.js → chunk-Hy-cCmu-.js} +4 -0
  163. package/vendor/{chunk-C12hSZn7.js → chunk-Lqa6rV_r.js} +4 -0
  164. package/vendor/{chunk-C3fcZDjl.js → chunk-OUnVY4Wm.js} +24 -191
  165. package/vendor/cjs-module-lexer.js +4 -0
  166. package/vendor/dotenv.js +10 -6
  167. package/vendor/express.js +30 -31
  168. package/vendor/import-meta-resolve.js +4 -0
  169. package/vendor/manifest.json +3 -2
  170. package/vendor/postcss.js +9 -8544
  171. package/vendor/precinct.js +326959 -0
  172. package/vendor/serialize-javascript.js +4 -0
  173. package/vendor/sxy-lib-arrays.js +4 -0
  174. package/vendor/sxy-lib-object-copy.js +5 -1
  175. package/vendor/sxy-lib-objects.js +4 -0
  176. package/vendor/sxy-lib-promises.js +4 -0
  177. package/vendor/sxy-package-investigator.js +7 -3
  178. package/vendor/valibot.js +4 -0
  179. package/dist/.tsbuildinfo +0 -1
  180. package/dist/api/Method.d.ts +0 -2
  181. package/dist/api/Method.d.ts.map +0 -1
  182. /package/dist/api/{Method.js → ApiMethod.type.js} +0 -0
@@ -80,7 +80,7 @@ function debug(...texts) {
80
80
  //console.log(...texts)
81
81
  //console.log(getStackTrace().split('\n')[2])
82
82
  }
83
- const timing = false; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion
83
+ const timing = false;
84
84
  // need to be adapted to work for func components?
85
85
  export async function integrateElementUpdateVdom(element, newContent) {
86
86
  let startTime = 0;
@@ -585,7 +585,7 @@ function moveDomNode(domNode, domPointer) {
585
585
  // is not a child at all (indexOf -1), or index is past the end (undefined).
586
586
  // one live-NodeList read, reused as the insertBefore reference below -- see
587
587
  // DomPointer.insert() for why these reads are worth counting
588
- const reference = domPointer.parent.childNodes[domPointer.index]; // eslint-disable-line @typescript-eslint/no-unsafe-type-assertion -- indexing past the end gives undefined, which the DOM types do not model
588
+ const reference = domPointer.parent.childNodes[domPointer.index];
589
589
  if (reference !== domNode) {
590
590
  //console.log('document.activeElement', document.activeElement, domNode == document.activeElement, domNode === document.activeElement)
591
591
  const ownerDocument = domNode.ownerDocument;
@@ -1 +1 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/zones/react.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,MAAM,IAC7C,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAC3B,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAA;AAEvC,KAAK,aAAa,GAAG;IACjB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/B,OAAO,IAAI,IAAI,CAAA;CAClB,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE;QACH,SAAS,EAAE,GAAG,CAAA;QACd,aAAa,EAAE,kBAAkB,CAAA;KACpC,CAAA;IACD,MAAM,EAAE;QACJ,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAAA;QACxC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,aAAa,CAAA;KAC/D,CAAA;IACD,MAAM,EAAE;QACJ,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;KAC5C,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,IAAI;IAC/C,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACpC,KAAK,EAAE,KAAK,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,gBAAgB,CAAA;CAC5B,CAAA;AAED,qBAAa,SAAS,CAAC,KAAK,SAAS,MAAM,CAAE,SAAQ,uBAAuB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/F,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAqC;IAChF,SAAS,EAAE,aAAa,GAAG,SAAS,CAAA;IACpC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAClD,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,SAAS,UAAQ;IAEjB,OAAO,QAAa,OAAO,CAAC,WAAW,CAAC,CAsBvC;IAED,iBAAiB,QAAO,IAAI,CAG3B;IAED,kBAAkB,QAAO,IAAI,CAE5B;IAED,oBAAoB,QAAO,IAAI,CAM9B;IAED,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,WAAW;CAOtB"}
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/zones/react.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAGpD,MAAM,MAAM,kBAAkB,CAAC,KAAK,SAAS,MAAM,IAC7C,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,GAC3B,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,CAAA;AAEvC,KAAK,aAAa,GAAG;IACjB,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;IAC/B,OAAO,IAAI,IAAI,CAAA;CAClB,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC3B,KAAK,EAAE;QACH,SAAS,EAAE,GAAG,CAAA;QACd,aAAa,EAAE,kBAAkB,CAAA;KACpC,CAAA;IACD,MAAM,EAAE;QACJ,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAAA;QACxC,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,GAAG,aAAa,CAAA;KAC/D,CAAA;IACD,MAAM,EAAE;QACJ,cAAc,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAA;KAC5C,CAAA;CACJ,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,MAAM,IAAI;IAC/C,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACpC,KAAK,EAAE,KAAK,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,gBAAgB,CAAA;CAC5B,CAAA;AAED,qBAAa,SAAS,CAAC,KAAK,SAAS,MAAM,CAAE,SAAQ,uBAAuB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/F,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAyC;IACpF,SAAS,EAAE,aAAa,GAAG,SAAS,CAAA;IACpC,kBAAkB,EAAE,kBAAkB,GAAG,SAAS,CAAA;IAClD,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,SAAS,UAAQ;IAEjB,OAAO,QAAa,OAAO,CAAC,WAAW,CAAC,CAsBvC;IAED,iBAAiB,QAAO,IAAI,CAG3B;IAED,kBAAkB,QAAO,IAAI,CAE5B;IAED,oBAAoB,QAAO,IAAI,CAM9B;IAED,OAAO,CAAC,UAAU;IAyBlB,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,WAAW;CAOtB"}
@@ -2,13 +2,13 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
2
2
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
3
3
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
4
4
  import { TungstenSimpleComponent } from "../Components.js";
5
- import { createElementRef } from '../createRef.js';
5
+ import { createHtmlElementRef } from '../createRef.js';
6
6
  import { isServer } from '../isServer.js';
7
7
  import { jsx as _jsx } from "tungsten/jsx-runtime";
8
8
  export class ReactZone extends TungstenSimpleComponent {
9
9
  constructor(...args) {
10
10
  super(...args);
11
- _defineProperty(this, "hostRef", createElementRef());
11
+ _defineProperty(this, "hostRef", createHtmlElementRef());
12
12
  _defineProperty(this, "reactRoot", void 0);
13
13
  _defineProperty(this, "reactCreateElement", void 0);
14
14
  _defineProperty(this, "errorBoundary", void 0);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tungsten",
3
- "version": "0.5.1",
3
+ "version": "0.5.2",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "bin": {
@@ -72,7 +72,8 @@
72
72
  "devDependencies": {
73
73
  "@babel/cli": "^7.29.7",
74
74
  "@babel/generator": "^7.29.1",
75
- "@stylistic/eslint-plugin": "^3.1.0",
75
+ "@eslint/js": "^10.0.1",
76
+ "@stylistic/eslint-plugin": "^5.10.0",
76
77
  "@types/babel-types": "^7.0.16",
77
78
  "@types/babel__generator": "^7.27.0",
78
79
  "@types/chai": "^4.3.20",
@@ -80,24 +81,20 @@
80
81
  "@types/react": "19.1.9",
81
82
  "@types/react-dom": "19.1.7",
82
83
  "@types/serialize-javascript": "^5.0.4",
83
- "@typescript-eslint/eslint-plugin": "^8.69.0",
84
- "@typescript-eslint/parser": "^8.69.0",
85
84
  "babel-plugin-replace-import-extension": "^1.1.5",
86
85
  "babel-plugin-sxy-transform-import-extensions": "^1.0.5",
87
86
  "babel-plugin-transform-import-extension": "^1.0.3",
88
87
  "chai": "^4.5.0",
89
88
  "cross-env": "^7.0.3",
90
- "eslint": "^8.57.1",
91
- "eslint-import-resolver-typescript": "^2.7.1",
92
- "eslint-plugin-import": "^2.32.0",
93
- "eslint-plugin-no-type-assertion": "^1.3.0",
94
- "eslint-plugin-unused-imports": "^3.2.0",
89
+ "eslint": "^10.10.0",
90
+ "eslint-plugin-unused-imports": "^4.4.1",
95
91
  "happy-dom": "^20.11.1",
96
92
  "npm-run-all": "^4.1.5",
97
93
  "rimraf": "^5.0.10",
98
94
  "rollup-plugin-visualizer": "^5.14.0",
99
95
  "sxy-test-runner": "^2.4.9",
100
- "typescript": "^6.0.3"
96
+ "typescript": "^6.0.3",
97
+ "typescript-eslint": "^8.70.0"
101
98
  },
102
99
  "peerDependencies": {
103
100
  "react": "^18.2.0 || ^19.0.0",
package/types/env.d.ts CHANGED
@@ -1,11 +1,11 @@
1
-
2
- /* eslint-disable no-var */
3
-
4
-
5
-
6
- // declare global {
7
- // var tungstenPrivateEnv: TungstenPrivateEnv | undefined
8
- // var tungstenPublicEnv: TungstenPublicEnv | undefined
9
- // }
10
-
11
- export {}
1
+
2
+
3
+
4
+
5
+
6
+ // declare global {
7
+ // var tungstenPrivateEnv: TungstenPrivateEnv | undefined
8
+ // var tungstenPublicEnv: TungstenPublicEnv | undefined
9
+ // }
10
+
11
+ export {}
package/types/index.d.ts CHANGED
@@ -1,11 +1,15 @@
1
1
 
2
- /* eslint-disable no-var */
2
+
3
3
 
4
4
  // the stylesheet module declarations live in a script file: this one is a module, and a
5
5
  // `declare module '*.css'` here would augment the app's own '*.css' declaration, which cannot add exports.
6
6
  // A reference, as an import of a script file is refused
7
7
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference
8
8
  /// <reference path="./assets.d.ts" />
9
+ // The global JSX namespace, declared on purpose: it otherwise reached apps only through the
10
+ // Bindable components' declaration files happening to import from jsx.d.ts
11
+ // eslint-disable-next-line @typescript-eslint/triple-slash-reference
12
+ /// <reference path="./jsx/jsx.d.ts" />
9
13
  // Disposable and Symbol.dispose appear in the shipped types (component using(), browser storage), and in
10
14
  // TS 6 that lib comes only with ESNext - so bring it in here rather than require it of every app's lib list
11
15
  /// <reference lib="esnext.disposable" />
@@ -34,14 +38,14 @@ declare global {
34
38
  //// Apps fill these by declaration merging in their env module: `interface TungstenPrivateEnv extends PrivateEnv {}`.
35
39
  //// Empty here on purpose: a base that extended the core env types would collide with an app whose schema
36
40
  //// makes a core field required (TS2320). Tungsten's own reads of the core fields come from src/env/Interfaces.ts
37
- /* eslint-disable @typescript-eslint/no-empty-object-type */
41
+
38
42
  declare global {
39
43
  interface TungstenPrivateEnv {}
40
44
  interface TungstenPublicEnv {}
41
45
  var tungstenPrivateEnv: TungstenPrivateEnv
42
46
  var tungstenPublicEnv: TungstenPublicEnv
43
47
  }
44
- /* eslint-enable @typescript-eslint/no-empty-object-type */
48
+
45
49
 
46
50
  //// In dev, cjsHelpers.ts installs a partial `process` on the browser global so that converted
47
51
  //// CommonJS packages can read process.env.NODE_ENV. It flags itself with __tungstenCjsShim so
@@ -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>>