@faiwer/react 0.8.4 → 19.0.1

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 (234) hide show
  1. package/README.md +43 -21
  2. package/dist/core/actions/applyAction.d.ts.map +1 -1
  3. package/dist/core/actions/applyAction.js +6 -0
  4. package/dist/core/actions/applyAction.js.map +1 -1
  5. package/dist/core/actions/catchError.action.d.ts +10 -0
  6. package/dist/core/actions/catchError.action.d.ts.map +1 -0
  7. package/dist/core/actions/catchError.action.js +51 -0
  8. package/dist/core/actions/catchError.action.js.map +1 -0
  9. package/dist/core/actions/createComment.action.d.ts +2 -2
  10. package/dist/core/actions/createComment.action.d.ts.map +1 -1
  11. package/dist/core/actions/createComment.action.js +1 -8
  12. package/dist/core/actions/createComment.action.js.map +1 -1
  13. package/dist/core/actions/createContainer.action.d.ts +7 -0
  14. package/dist/core/actions/createContainer.action.d.ts.map +1 -0
  15. package/dist/core/actions/createContainer.action.js +28 -0
  16. package/dist/core/actions/createContainer.action.js.map +1 -0
  17. package/dist/core/actions/createTag.action.d.ts +2 -1
  18. package/dist/core/actions/createTag.action.d.ts.map +1 -1
  19. package/dist/core/actions/createTag.action.js +22 -4
  20. package/dist/core/actions/createTag.action.js.map +1 -1
  21. package/dist/core/actions/createText.action.d.ts.map +1 -1
  22. package/dist/core/actions/createText.action.js +2 -5
  23. package/dist/core/actions/createText.action.js.map +1 -1
  24. package/dist/core/actions/dom/attributes.d.ts.map +1 -1
  25. package/dist/core/actions/dom/attributes.js +4 -1
  26. package/dist/core/actions/dom/attributes.js.map +1 -1
  27. package/dist/core/actions/dom/css.d.ts.map +1 -1
  28. package/dist/core/actions/dom/css.js +2 -1
  29. package/dist/core/actions/dom/css.js.map +1 -1
  30. package/dist/core/actions/dom/events.d.ts.map +1 -1
  31. package/dist/core/actions/dom/events.js +15 -3
  32. package/dist/core/actions/dom/events.js.map +1 -1
  33. package/dist/core/actions/dom/value.d.ts +18 -0
  34. package/dist/core/actions/dom/value.d.ts.map +1 -0
  35. package/dist/core/actions/dom/value.js +211 -0
  36. package/dist/core/actions/dom/value.js.map +1 -0
  37. package/dist/core/actions/helpers.d.ts +17 -10
  38. package/dist/core/actions/helpers.d.ts.map +1 -1
  39. package/dist/core/actions/helpers.js +64 -70
  40. package/dist/core/actions/helpers.js.map +1 -1
  41. package/dist/core/actions/relayout.action.d.ts +2 -1
  42. package/dist/core/actions/relayout.action.d.ts.map +1 -1
  43. package/dist/core/actions/relayout.action.js +119 -30
  44. package/dist/core/actions/relayout.action.js.map +1 -1
  45. package/dist/core/actions/remove.action.d.ts +2 -2
  46. package/dist/core/actions/remove.action.d.ts.map +1 -1
  47. package/dist/core/actions/remove.action.js +20 -17
  48. package/dist/core/actions/remove.action.js.map +1 -1
  49. package/dist/core/actions/replace.action.d.ts +1 -1
  50. package/dist/core/actions/replace.action.d.ts.map +1 -1
  51. package/dist/core/actions/replace.action.js +34 -23
  52. package/dist/core/actions/replace.action.js.map +1 -1
  53. package/dist/core/actions/scheduleEffect.action.d.ts +7 -0
  54. package/dist/core/actions/scheduleEffect.action.d.ts.map +1 -0
  55. package/dist/core/actions/scheduleEffect.action.js +8 -0
  56. package/dist/core/actions/scheduleEffect.action.js.map +1 -0
  57. package/dist/core/actions/setAttr.action.d.ts +1 -1
  58. package/dist/core/actions/setAttr.action.d.ts.map +1 -1
  59. package/dist/core/actions/setAttr.action.js +47 -6
  60. package/dist/core/actions/setAttr.action.js.map +1 -1
  61. package/dist/core/actions/setProps.action.d.ts.map +1 -1
  62. package/dist/core/actions/setProps.action.js +2 -1
  63. package/dist/core/actions/setProps.action.js.map +1 -1
  64. package/dist/core/actions/setRef.action.d.ts +1 -1
  65. package/dist/core/actions/setRef.action.d.ts.map +1 -1
  66. package/dist/core/actions/setRef.action.js +5 -6
  67. package/dist/core/actions/setRef.action.js.map +1 -1
  68. package/dist/core/actions/setText.action.d.ts.map +1 -1
  69. package/dist/core/actions/setText.action.js +3 -3
  70. package/dist/core/actions/setText.action.js.map +1 -1
  71. package/dist/core/classComponent.d.ts +2 -1
  72. package/dist/core/classComponent.d.ts.map +1 -1
  73. package/dist/core/classComponent.js +20 -12
  74. package/dist/core/classComponent.js.map +1 -1
  75. package/dist/core/compact.d.ts +10 -29
  76. package/dist/core/compact.d.ts.map +1 -1
  77. package/dist/core/compact.js +12 -100
  78. package/dist/core/compact.js.map +1 -1
  79. package/dist/core/components.d.ts +6 -4
  80. package/dist/core/components.d.ts.map +1 -1
  81. package/dist/core/components.js +26 -8
  82. package/dist/core/components.js.map +1 -1
  83. package/dist/core/createElement.d.ts +2 -8
  84. package/dist/core/createElement.d.ts.map +1 -1
  85. package/dist/core/createElement.js +3 -1
  86. package/dist/core/createElement.js.map +1 -1
  87. package/dist/core/reactNodeToFiberNode.d.ts +3 -1
  88. package/dist/core/reactNodeToFiberNode.d.ts.map +1 -1
  89. package/dist/core/reactNodeToFiberNode.js +80 -17
  90. package/dist/core/reactNodeToFiberNode.js.map +1 -1
  91. package/dist/core/reconciliation/app.js +3 -3
  92. package/dist/core/reconciliation/app.js.map +1 -1
  93. package/dist/core/reconciliation/collect/fromApp.d.ts +2 -1
  94. package/dist/core/reconciliation/collect/fromApp.d.ts.map +1 -1
  95. package/dist/core/reconciliation/collect/fromApp.js +7 -26
  96. package/dist/core/reconciliation/collect/fromApp.js.map +1 -1
  97. package/dist/core/reconciliation/collect/fromChildrenPair.d.ts +2 -1
  98. package/dist/core/reconciliation/collect/fromChildrenPair.d.ts.map +1 -1
  99. package/dist/core/reconciliation/collect/fromChildrenPair.js +37 -10
  100. package/dist/core/reconciliation/collect/fromChildrenPair.js.map +1 -1
  101. package/dist/core/reconciliation/collect/fromComponent.d.ts +3 -2
  102. package/dist/core/reconciliation/collect/fromComponent.d.ts.map +1 -1
  103. package/dist/core/reconciliation/collect/fromComponent.js +27 -9
  104. package/dist/core/reconciliation/collect/fromComponent.js.map +1 -1
  105. package/dist/core/reconciliation/collect/fromFiberPair.d.ts +2 -1
  106. package/dist/core/reconciliation/collect/fromFiberPair.d.ts.map +1 -1
  107. package/dist/core/reconciliation/collect/fromFiberPair.js +8 -5
  108. package/dist/core/reconciliation/collect/fromFiberPair.js.map +1 -1
  109. package/dist/core/reconciliation/collect/fromNewFiber.d.ts.map +1 -1
  110. package/dist/core/reconciliation/collect/fromNewFiber.js +7 -15
  111. package/dist/core/reconciliation/collect/fromNewFiber.js.map +1 -1
  112. package/dist/core/reconciliation/effects.d.ts +2 -2
  113. package/dist/core/reconciliation/effects.d.ts.map +1 -1
  114. package/dist/core/reconciliation/effects.js +52 -4
  115. package/dist/core/reconciliation/effects.js.map +1 -1
  116. package/dist/core/reconciliation/errors/ReactError.d.ts +15 -0
  117. package/dist/core/reconciliation/errors/ReactError.d.ts.map +1 -0
  118. package/dist/core/reconciliation/errors/ReactError.js +56 -0
  119. package/dist/core/reconciliation/errors/ReactError.js.map +1 -0
  120. package/dist/core/reconciliation/errors/stack.d.ts +8 -2
  121. package/dist/core/reconciliation/errors/stack.d.ts.map +1 -1
  122. package/dist/core/reconciliation/errors/stack.js +65 -8
  123. package/dist/core/reconciliation/errors/stack.js.map +1 -1
  124. package/dist/core/reconciliation/fibers.d.ts +1 -0
  125. package/dist/core/reconciliation/fibers.d.ts.map +1 -1
  126. package/dist/core/reconciliation/fibers.js +3 -2
  127. package/dist/core/reconciliation/fibers.js.map +1 -1
  128. package/dist/core/reconciliation/heap.d.ts +18 -0
  129. package/dist/core/reconciliation/heap.d.ts.map +1 -0
  130. package/dist/core/reconciliation/heap.js +81 -0
  131. package/dist/core/reconciliation/heap.js.map +1 -0
  132. package/dist/core/reconciliation/invalidateFiber.d.ts.map +1 -1
  133. package/dist/core/reconciliation/invalidateFiber.js +6 -5
  134. package/dist/core/reconciliation/invalidateFiber.js.map +1 -1
  135. package/dist/core/reconciliation/mount.d.ts.map +1 -1
  136. package/dist/core/reconciliation/mount.js +24 -6
  137. package/dist/core/reconciliation/mount.js.map +1 -1
  138. package/dist/core/reconciliation/postCommit.d.ts +1 -1
  139. package/dist/core/reconciliation/postCommit.d.ts.map +1 -1
  140. package/dist/core/reconciliation/postCommit.js +17 -4
  141. package/dist/core/reconciliation/postCommit.js.map +1 -1
  142. package/dist/core/reconciliation/queue.d.ts +21 -0
  143. package/dist/core/reconciliation/queue.d.ts.map +1 -0
  144. package/dist/core/reconciliation/queue.js +55 -0
  145. package/dist/core/reconciliation/queue.js.map +1 -0
  146. package/dist/core/reconciliation/render.d.ts.map +1 -1
  147. package/dist/core/reconciliation/render.js +9 -3
  148. package/dist/core/reconciliation/render.js.map +1 -1
  149. package/dist/core/reconciliation/runFiberComponents.d.ts +3 -1
  150. package/dist/core/reconciliation/runFiberComponents.d.ts.map +1 -1
  151. package/dist/core/reconciliation/runFiberComponents.js +33 -5
  152. package/dist/core/reconciliation/runFiberComponents.js.map +1 -1
  153. package/dist/core/reconciliation/typeGuards.d.ts +3 -0
  154. package/dist/core/reconciliation/typeGuards.d.ts.map +1 -1
  155. package/dist/core/reconciliation/typeGuards.js +13 -0
  156. package/dist/core/reconciliation/typeGuards.js.map +1 -1
  157. package/dist/core/reconciliation/validateApp.d.ts +1 -1
  158. package/dist/core/reconciliation/validateApp.d.ts.map +1 -1
  159. package/dist/core/reconciliation/validateApp.js +28 -21
  160. package/dist/core/reconciliation/validateApp.js.map +1 -1
  161. package/dist/hooks/helpers.d.ts +3 -3
  162. package/dist/hooks/helpers.d.ts.map +1 -1
  163. package/dist/hooks/helpers.js +3 -2
  164. package/dist/hooks/helpers.js.map +1 -1
  165. package/dist/hooks/index.d.ts +2 -1
  166. package/dist/hooks/index.d.ts.map +1 -1
  167. package/dist/hooks/index.js +2 -1
  168. package/dist/hooks/index.js.map +1 -1
  169. package/dist/hooks/useContext.d.ts.map +1 -1
  170. package/dist/hooks/useContext.js +6 -6
  171. package/dist/hooks/useContext.js.map +1 -1
  172. package/dist/hooks/useEffect.d.ts +2 -1
  173. package/dist/hooks/useEffect.d.ts.map +1 -1
  174. package/dist/hooks/useEffect.js +21 -7
  175. package/dist/hooks/useEffect.js.map +1 -1
  176. package/dist/hooks/useError.d.ts +5 -0
  177. package/dist/hooks/useError.d.ts.map +1 -0
  178. package/dist/hooks/useError.js +19 -0
  179. package/dist/hooks/useError.js.map +1 -0
  180. package/dist/hooks/useReducer.d.ts +7 -0
  181. package/dist/hooks/useReducer.d.ts.map +1 -0
  182. package/dist/hooks/useReducer.js +10 -0
  183. package/dist/hooks/useReducer.js.map +1 -0
  184. package/dist/hooks/useRef.d.ts +8 -3
  185. package/dist/hooks/useRef.d.ts.map +1 -1
  186. package/dist/hooks/useRef.js +27 -0
  187. package/dist/hooks/useRef.js.map +1 -1
  188. package/dist/hooks/useState.d.ts +1 -1
  189. package/dist/hooks/useState.d.ts.map +1 -1
  190. package/dist/hooks/useState.js +3 -6
  191. package/dist/hooks/useState.js.map +1 -1
  192. package/dist/index.d.ts +3 -0
  193. package/dist/index.d.ts.map +1 -1
  194. package/dist/index.js +1 -0
  195. package/dist/index.js.map +1 -1
  196. package/dist/jsx.d.ts +159 -44
  197. package/dist/mocks.d.ts +0 -7
  198. package/dist/mocks.d.ts.map +1 -1
  199. package/dist/mocks.js +0 -6
  200. package/dist/mocks.js.map +1 -1
  201. package/dist/react.d.ts +46 -0
  202. package/dist/types/actions.d.ts +23 -5
  203. package/dist/types/actions.d.ts.map +1 -1
  204. package/dist/types/app.d.ts +17 -3
  205. package/dist/types/app.d.ts.map +1 -1
  206. package/dist/types/attributes.d.ts +42 -0
  207. package/dist/types/attributes.d.ts.map +1 -0
  208. package/dist/types/attributes.js +2 -0
  209. package/dist/types/attributes.js.map +1 -0
  210. package/dist/types/common.d.ts +10 -1
  211. package/dist/types/common.d.ts.map +1 -1
  212. package/dist/types/component.d.ts +11 -2
  213. package/dist/types/component.d.ts.map +1 -1
  214. package/dist/types/context.d.ts +3 -2
  215. package/dist/types/context.d.ts.map +1 -1
  216. package/dist/types/core.d.ts +17 -13
  217. package/dist/types/core.d.ts.map +1 -1
  218. package/dist/types/dom.d.ts +23 -22
  219. package/dist/types/dom.d.ts.map +1 -1
  220. package/dist/types/events.d.ts +18 -11
  221. package/dist/types/events.d.ts.map +1 -1
  222. package/dist/types/fiber.d.ts +30 -12
  223. package/dist/types/fiber.d.ts.map +1 -1
  224. package/dist/types/fiber.js +5 -1
  225. package/dist/types/fiber.js.map +1 -1
  226. package/dist/types/hooks.d.ts +16 -6
  227. package/dist/types/hooks.d.ts.map +1 -1
  228. package/dist/types/react.d.ts +31 -0
  229. package/dist/types/react.d.ts.map +1 -0
  230. package/dist/types/react.js +2 -0
  231. package/dist/types/react.js.map +1 -0
  232. package/dist/types/refs.d.ts +5 -8
  233. package/dist/types/refs.d.ts.map +1 -1
  234. package/package.json +11 -3
@@ -1,9 +1,9 @@
1
- import type { ReactComponent } from './component';
1
+ import type { Component } from '../core/classComponent';
2
2
  import type { ReactContextProvider } from './context';
3
+ import type { JsxSource } from './fiber';
3
4
  /**
4
- * Any unique string or number that can help the React engine to identify the
5
- * given node in the reconciliation algorithm. Also can be used to forcibly
6
- * recreate the given node by purpose.
5
+ * Unique identifier for a node, used by the reconciliation algorithm to
6
+ * distinguish nodes. Changing the key will force React to recreate the node.
7
7
  */
8
8
  export type ReactKey = string | number;
9
9
  /**
@@ -12,13 +12,17 @@ export type ReactKey = string | number;
12
12
  */
13
13
  export type UnknownProps = Record<PropertyKey, unknown> & ElementCommonAttrs;
14
14
  /**
15
- * The 1st argument of `createElement` function. Basically, this type reflects
16
- * everything that can be created in "<" & "/>" brackets: tags, components,
17
- * fragments, context providers.
15
+ * All possible types that can be used as the first argument to `createElement`:
16
+ * - tag names
17
+ * - function components
18
+ * - class components
19
+ * - fragments
20
+ * - or context providers.
18
21
  */
19
- export type ElementType = string | ReactComponent;
22
+ export type ElementType = string | ((props: any) => JsxElement) | (new (props: any) => Component<any, any>);
20
23
  /**
21
- * JSX values that aren't passed to `createElement`. JSX keeps them intact.
24
+ * Primitive values in JSX that are not passed to `createElement` and are
25
+ * rendered as-is.
22
26
  */
23
27
  export type ScalarNode = string | number | boolean | null | undefined;
24
28
  /**
@@ -30,6 +34,7 @@ export type ElementNode = {
30
34
  props: UnknownProps;
31
35
  key: ReactKey | null | undefined;
32
36
  children: JsxElement[];
37
+ source: null | JsxSource;
33
38
  };
34
39
  /**
35
40
  * Common props for <tag/>s and <Component/>s.
@@ -38,14 +43,13 @@ export type ElementCommonAttrs = {
38
43
  key?: ReactKey | null;
39
44
  };
40
45
  /**
41
- * An implementation for `JSX.Element`. For some reason in real React it's
42
- * called `ReactNode` and it's a little different from `JSX.Element`. It creates
43
- * type-issues, so I didn't repeat the same.
46
+ * Implementation of `JSX.Element` for this React version. Unlike React's
47
+ * `ReactNode`, this type avoids type issues.
44
48
  */
45
49
  export type JsxElement = ElementNode | ScalarNode | JsxElement[];
46
50
  /**
47
51
  * Available !--comment types.
48
52
  * E.g. <!--r:null:14-->
49
53
  */
50
- export type CommentMode = 'null' | 'begin' | 'end' | 'portal' | 'empty';
54
+ export type CommentMode = 'null' | 'portal' | 'empty';
51
55
  //# sourceMappingURL=core.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC;AAE7E;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAkB,cAAc,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,WAAW,GAAG,oBAAoB,GAAG,WAAW,CAAC;IACvD,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAElB,WAAW,GAEX,UAAU,GAEV,UAAU,EAAE,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,WAAW,GAEnB,MAAM,GAEN,OAAO,GACP,KAAK,GAEL,QAAQ,GAER,OAAO,CAAC"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,GAAG,kBAAkB,CAAC;AAE7E;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GAEnB,MAAM,GAEN,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,CAAC,GAE5B,CAAC,KAAK,KAAK,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAE9C;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAEtE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,WAAW,GAAG,oBAAoB,GAAG,WAAW,CAAC;IACvD,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,MAAM,EAAE,IAAI,GAAG,SAAS,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAAE,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;CAAE,CAAC;AAE3D;;;GAGG;AACH,MAAM,MAAM,UAAU,GAElB,WAAW,GAEX,UAAU,GAEV,UAAU,EAAE,CAAC;AAEjB;;;GAGG;AACH,MAAM,MAAM,WAAW,GAEnB,MAAM,GAEN,QAAQ,GAER,OAAO,CAAC"}
@@ -1,34 +1,35 @@
1
- import type { RemoveIndexSignature } from './common';
1
+ import type { TagNativeProps } from './attributes';
2
+ import type { ReplaceIn } from './common';
2
3
  import type { ElementCommonAttrs, ScalarNode } from './core';
3
- import type { TagEventHandlers } from './events';
4
- import type { HtmlRef, RefSetter } from './refs';
4
+ import type { Ref } from './refs';
5
5
  /** The list of possible DOM tree node types. */
6
6
  export type DomNode = Element | Text | Comment;
7
7
  export type TagAttrValue = string | number | boolean | null | undefined | Function | TagStyles;
8
- /**
9
- * Each HTMLElement contains a ton of properties. Most of them shouldn't be used
10
- * in JSX tag nodes. This type matches most inapplicable generic properties.
11
- */
12
- type GeneralRemove = `DOCUMENT_${string}` | `${string}_NODE` | `client${string}` | `offset${string}` | `node${string}` | `inner${string}` | `scroll${string}` | `set${string}` | `outer${string}` | 'children' | 'attributes' | 'childNodes' | 'classList' | 'tagName' | 'style' | `key` | `dataset` | 'textContent' | 'shadowRoot';
13
- /**
14
- * Returns a list of tag-based properties that can probably be set via a JSX tag
15
- * node.
16
- **/
17
- type PropertiesOnly<T extends HTMLElement> = {
18
- [K in keyof RemoveIndexSignature<T>]: K extends `on${string}` ? never : ChildNode extends T[K] ? never : Element extends T[K] ? never : HTMLElement extends T[K] ? never : K;
19
- }[keyof RemoveIndexSignature<T>];
20
- type TagNativeProps<T extends HTMLElement> = Partial<Omit<Pick<T, PropertiesOnly<T>>, GeneralRemove>> & TagEventHandlers<T>;
21
- export type TagProps<T extends HTMLElement = HTMLElement> = TagNativeProps<T> & ElementCommonAttrs & {
22
- ref?: HtmlRef<T> | RefSetter<T | null>;
8
+ type Overrides<T extends Element, O> = T extends HTMLInputElement | HTMLTextAreaElement ? ReplaceIn<O, {
9
+ value?: string | number;
10
+ } & {
11
+ defaultValue?: string | number;
12
+ defaultChecked?: boolean;
13
+ }> : T extends HTMLSelectElement ? ReplaceIn<O, {
14
+ value?: string | number | Array<number | string>;
15
+ }> & {
16
+ defaultValue?: string | number | Array<string | number>;
17
+ } : T extends HTMLOptionElement ? ReplaceIn<O, {
18
+ value?: string | number;
19
+ }> : O;
20
+ export type TagProps<T extends Element = HTMLElement> = Overrides<T, TagNativeProps<T> & ElementCommonAttrs & {
21
+ ref?: Ref<T>;
23
22
  style?: string | null | undefined | TagStyles;
24
- } & Record<`data-${string}`, ScalarNode> & {
25
23
  children?: JSX.Element;
26
- };
24
+ dangerouslySetInnerHTML?: {
25
+ __html: string;
26
+ };
27
+ } & Record<`data-${string}`, ScalarNode>>;
27
28
  /** A map like { fontSize: '12px' }. */
28
29
  export type TagStyles = {
29
30
  [K in keyof CSSStyleDeclaration]?: string | number;
30
31
  } & {
31
- [K in `--${string}`]: string | number;
32
+ [K in `--${string}`]: string | number | null;
32
33
  };
33
34
  export type SvgRootProps = TagProps<HTMLElement> & {
34
35
  xmlns?: string;
@@ -41,7 +42,7 @@ export type SvgRootProps = TagProps<HTMLElement> & {
41
42
  * way to get it from the default DOM types, so I left a fallback that at least
42
43
  * doesn't block SVG tags.
43
44
  */
44
- export type SvgTagProps = {
45
+ export type SvgTagProps<T extends SVGElement = SVGElement> = {
45
46
  [K in string]?: unknown;
46
47
  } & {
47
48
  children?: JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/types/dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/types/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,gDAAgD;AAChD,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;AAE/C,MAAM,MAAM,YAAY,GAEpB,MAAM,GACN,MAAM,GACN,OAAO,GAEP,IAAI,GACJ,SAAS,GAET,QAAQ,GACR,SAAS,CAAC;AAEd,KAAK,SAAS,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,IAAI,CAAC,SACpC,gBAAgB,GAChB,mBAAmB,GACnB,SAAS,CACP,CAAC,EACD;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAAG;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CACF,GACD,CAAC,SAAS,iBAAiB,GACzB,SAAS,CAAC,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;CAAE,CAAC,GAAG;IACnE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;CACzD,GACD,CAAC,SAAS,iBAAiB,GACzB,SAAS,CAAC,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,GACzC,CAAC,CAAC;AAGV,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,IAClD,SAAS,CAAC,CAAC,EACP,cAAc,CAAC,CAAC,CAAC,GACjB,kBAAkB,GAClB;IACA,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,uBAAuB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C,GACC,MAAM,CAAC,QAAQ,MAAM,EAAE,EAAE,UAAU,CAAC,CACvC,CAAA;AAEH,uCAAuC;AACvC,MAAM,MAAM,SAAS,GACjB;KAAG,CAAC,IAAI,MAAM,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;CAAG,GACvD;KAAG,CAAC,IAAI,KAAK,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI;CAAE,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AAEH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI;KAC1D,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,OAAO;CACxB,GAAG;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,CAAC"}
@@ -1,24 +1,31 @@
1
- import type { RemoveIndexSignature } from './common';
2
- type RemapKeys<T, KeyMap extends Record<keyof any, keyof any>> = {
3
- [K in keyof T as K extends keyof KeyMap ? KeyMap[K] : K]?: T[K];
1
+ import type { Ensure, RemapKeys, RemoveIndexSignature } from './common';
2
+ export type PatchEvent<T extends Element, E extends Event = Event> = E & {
3
+ target: T;
4
+ currentTarget: Element;
5
+ nativeEvent: E;
4
6
  };
5
- type EventHandler<E extends Event> = (event: E) => void;
6
- type DomEventHandlerX<E extends string> = E extends `ondrag${string}` ? EventHandler<DragEvent> : E extends `onmouse${string}` ? EventHandler<MouseEvent> : E extends `onkey${string}` ? EventHandler<KeyboardEvent> : E extends `onfocus` | `onblur` ? EventHandler<FocusEvent> : E extends `onwheel` ? EventHandler<WheelEvent> : E extends 'onclick' | `onpointer${string}` ? EventHandler<PointerEvent> : E extends `ontouch${string}` ? EventHandler<TouchEvent> : E extends `onanimation${string}` ? EventHandler<AnimationEvent> : E extends `ontransition${string}` ? EventHandler<TransitionEvent> : E extends `onload` | `onerror` | `onabort` ? EventHandler<ProgressEvent> : EventHandler<Event>;
7
- type ToCamelCase<T extends string> = T extends `onmouse${infer Rest}` ? `onMouse${Capitalize<Rest>}` : T extends `onfullscreen${infer Rest}` ? `onFullscreen${Capitalize<Rest>}` : T extends `onkey${infer Rest}` ? `onKey${Capitalize<Rest>}` : T extends `ondrag${infer Rest}` ? `onDrag${Capitalize<Rest>}` : T extends `ontouch${infer Rest}` ? `onTouch${Capitalize<Rest>}` : T extends `onpointer${infer Rest}` ? `onPointer${Capitalize<Rest>}` : T extends `onanimation${infer Rest}` ? `onAnimation${Capitalize<Rest>}` : T extends `ontransition${infer Rest}` ? `onTransition${Capitalize<Rest>}` : T extends `on${infer Rest}` ? `on${Capitalize<Rest>}` : T;
8
- type EventKeys<T extends HTMLElement> = {
7
+ export type EventHandler<T extends Element, E extends Event> = (event: PatchEvent<T, E>) => void;
8
+ type EventByName<E extends string> = E extends `onpaste` | 'oncopy' | 'oncut' ? Ensure<ClipboardEvent, 'clipboardData'> : E extends `ondrag${string}` ? DragEvent : E extends `mouse${string}` ? MouseEvent : E extends `onkey${string}` ? KeyboardEvent : E extends `ontouch${string}` ? TouchEvent : E extends `onwheel` ? WheelEvent : Event;
9
+ type DomEventHandlerX<T extends Element, E extends string> = E extends `ondrag${string}` ? EventHandler<T, DragEvent> : E extends `onmouse${string}` ? EventHandler<T, MouseEvent> : E extends `onkey${string}` ? EventHandler<T, KeyboardEvent> : E extends `onfocus` | `onblur` ? EventHandler<T, FocusEvent> : E extends `onwheel` ? EventHandler<T, WheelEvent> : E extends 'onclick' | `onpointer${string}` ? EventHandler<T, PointerEvent> : E extends `ontouch${string}` ? EventHandler<T, TouchEvent> : E extends `onanimation${string}` ? EventHandler<T, AnimationEvent> : E extends `ontransition${string}` ? EventHandler<T, TransitionEvent> : E extends `onload` | `onerror` | `onabort` ? EventHandler<T, ProgressEvent> : EventHandler<T, EventByName<E>>;
10
+ type ToCamelCase<T extends string> = T extends `onmouse${infer Rest}` ? `onMouse${Capitalize<Rest>}` : T extends `onfullscreen${infer Rest}` ? `onFullscreen${Capitalize<Rest>}` : T extends `onkey${infer Rest}` ? `onKey${Capitalize<Rest>}` : T extends `ondrag${infer Rest}` ? `onDrag${Capitalize<Rest>}` : T extends `ontouch${infer Rest}` ? `onTouch${Capitalize<Rest>}` : T extends `onpointer${infer Rest}` ? `onPointer${Capitalize<Rest>}` : T extends `onanimation${infer Rest}` ? `onAnimation${Capitalize<Rest>}` : T extends `ontransition${infer Rest}` ? `onTransition${Capitalize<Rest>}` : T extends `oncanplay${infer Rest}` ? `onCanPlay${Capitalize<Rest>}` : T extends `on${infer Rest}` ? `on${Capitalize<Rest>}` : T;
11
+ type EventKeys<T extends Element> = {
9
12
  [K in keyof RemoveIndexSignature<T>]: K extends `on${string}` ? K : never;
10
13
  }[keyof RemoveIndexSignature<T>];
11
- type EventHandlers<T extends HTMLElement> = {
12
- [K in EventKeys<T>]: DomEventHandlerX<K>;
14
+ type EventHandlers<T extends Element> = {
15
+ [K in EventKeys<T>]: DomEventHandlerX<T, K>;
13
16
  };
14
- type mapLowerCaseToCamelCase<T extends HTMLElement> = {
17
+ type MapLowerCaseToCamelCase<T extends Element> = {
15
18
  [K in EventKeys<T>]: ToCamelCase<K>;
16
19
  };
20
+ type CaptureEvents<T> = {
21
+ [K in keyof T as `${string & K}Capture`]: T[K];
22
+ };
23
+ type WithCapture<T> = T & CaptureEvents<T>;
17
24
  /**
18
25
  * A map of events for the given HTMLElement-based type
19
26
  * @example
20
27
  * { onClick: (evt: PointerEvents) => void }
21
28
  */
22
- export type TagEventHandlers<T extends HTMLElement> = RemapKeys<EventHandlers<T>, mapLowerCaseToCamelCase<RemoveIndexSignature<T>>>;
29
+ export type TagEventHandlers<T extends Element> = WithCapture<RemapKeys<EventHandlers<T>, MapLowerCaseToCamelCase<RemoveIndexSignature<T>>>>;
23
30
  export {};
24
31
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,20 @@ import type { ComponentState, ReactComponent } from './component';
2
2
  import type { ContextState } from './context';
3
3
  import type { UnknownProps, ReactKey } from './core';
4
4
  import type { DomNode, TagStyles } from './dom';
5
- import type { Ref, RefSetter } from './refs';
5
+ import type { RefObject, RefSetter } from './refs';
6
6
  /**
7
7
  * A single node in the Fiber tree.
8
8
  */
9
9
  export type FiberNode = NullFiberNode | FragmentFiberNode | TextFiberNode | TagFiberNode | ComponentFiberNode | ContextFiberNode | PortalFiberNode;
10
+ /**
11
+ * A source in the dev's file system of the given JSX node. Available only in
12
+ * some dev-builds.
13
+ */
14
+ export type JsxSource = {
15
+ columnNumber: number;
16
+ lineNumber: number;
17
+ fileName: string;
18
+ };
10
19
  type CommonFiber = {
11
20
  /** Unique (within the given app) ID of the fiber. */
12
21
  id: number;
@@ -30,6 +39,8 @@ type CommonFiber = {
30
39
  * tree. Not the fiber props.
31
40
  */
32
41
  children: FiberNode[];
42
+ /** The source in the user's file system where the given JSX node was defined. */
43
+ source: null | JsxSource;
33
44
  };
34
45
  /**
35
46
  * false, null, undefined.
@@ -46,6 +57,12 @@ export type NullFiberNode = CommonFiber & {
46
57
  tag: null;
47
58
  ref: null;
48
59
  };
60
+ /**
61
+ * When `fiber.element` is `containerSym` it means it's a fragment or a
62
+ * component with more than 1 children.
63
+ */
64
+ export declare const containerSym: unique symbol;
65
+ export type Container = typeof containerSym;
49
66
  /**
50
67
  * <Component/>
51
68
  */
@@ -55,16 +72,16 @@ export type ComponentFiberNode = CommonFiber & {
55
72
  data: ComponentState;
56
73
  props: UnknownProps;
57
74
  /**
58
- * Since components can render everything we never know the element.
59
- *
60
- * Note: when component is rendered in the compact mode `element` refers to
61
- * the only rendered DOM node of one of its child fiber nodes.
75
+ * Since components can render everything we never know the element. Each
76
+ * component might be in on of the following modes:
62
77
  *
63
- * Note: when `element` refers to <!--r:end:id--> it means it renders a
64
- * fragment-like content (2+ DOM nodes) that is clamped between
65
- * <!--r:begin:id--> and <!--r:end:id--> HTML-comment nodes.
78
+ * - empty: it has no children, so that we render an !--empty comment.
79
+ * - single-child: it has exact one direct DOM-child. .element refers to that
80
+ * child.
81
+ * - auto-container: it has more than one direct DOM children. These children
82
+ * are inlined into the parent's DOM container. .element === containerSym.
66
83
  */
67
- element: DomNode | null;
84
+ element: Container | DomNode | null;
68
85
  key: ReactKey | null;
69
86
  role: null;
70
87
  tag: null;
@@ -97,7 +114,7 @@ export type PortalFiberNode = CommonFiber & {
97
114
  data: HTMLElement;
98
115
  key: ReactKey | null;
99
116
  role: 'portal';
100
- element: HTMLElement | null;
117
+ element: Comment | null;
101
118
  tag: string;
102
119
  props: null;
103
120
  component: null;
@@ -113,7 +130,7 @@ export type FragmentFiberNode = CommonFiber & {
113
130
  type: 'fragment';
114
131
  key: ReactKey | null;
115
132
  /** The same as in ComponentFiberNode. */
116
- element: Comment | null;
133
+ element: Comment | Container | null;
117
134
  role: null;
118
135
  props: null;
119
136
  data: null;
@@ -142,6 +159,7 @@ export type TagState = {
142
159
  name: string;
143
160
  wrapper: EventListener;
144
161
  handler: Function | null;
162
+ capture: boolean;
145
163
  }>>;
146
164
  styles: TagStyles | null;
147
165
  };
@@ -154,7 +172,7 @@ export type TagFiberNode<T = Element> = CommonFiber & {
154
172
  key: ReactKey | null;
155
173
  element: T | null;
156
174
  data: TagState;
157
- ref: RefSetter<T | null> | Ref<T | null> | null;
175
+ ref: RefSetter<T> | RefObject<T | null> | null;
158
176
  props: Record<PropertyKey, unknown>;
159
177
  role: null;
160
178
  component: null;
@@ -1 +1 @@
1
- {"version":3,"file":"fiber.d.ts","sourceRoot":"","sources":["../../src/types/fiber.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,iBAAiB,GACjB,aAAa,GACb,YAAY,GACZ,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,CAAC;AAEpB,KAAK,WAAW,GAAG;IACjB,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX;+BAC2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,SAAS,CAAC;IAClB,wDAAwD;IACxD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;;;;OAQG;IACH,QAAQ,EAAE,SAAS,EAAE,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IAErB,SAAS,EAAE,IAAI,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,IAAI,CAAC;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG;IAC7C,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;;;;;OASG;IACH,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IAErB,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,IAAI,CAAC;CACX,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IAErB,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,IAAI,CAAC;IACV,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG;IAC1C,IAAI,EAAE,KAAK,CAAC;IACZ,yBAAyB;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,KAAK,EAAE,IAAI,CAAC;IACZ,SAAS,EAAE,IAAI,CAAC;IAChB,GAAG,EAAE,IAAI,CAAC;CACX,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAC5C,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrB,yCAAyC;IACzC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAExB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,IAAI,CAAC;IACV,SAAS,EAAE,IAAI,CAAC;IAChB,GAAG,EAAE,IAAI,CAAC;CACX,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAC9C,iBAAiB,EACjB,MAAM,GAAG,OAAO,GAAG,MAAM,CAC1B,GAAG;IACF,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE;QAAE,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB;;;;OAIG;IACH,MAAM,EAAE,OAAO,CACb,MAAM,CACJ,MAAM,EACN;QACE,gFAAgF;QAChF,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,aAAa,CAAC;QACvB,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAC;KAC1B,CACF,CACF,CAAC;IACF,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI,WAAW,GAAG;IACpD,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChD,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEpC,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;CACjB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI;IACtD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,CAAC,CAAC;CACV,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"fiber.d.ts","sourceRoot":"","sources":["../../src/types/fiber.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- export {};
1
+ /**
2
+ * When `fiber.element` is `containerSym` it means it's a fragment or a
3
+ * component with more than 1 children.
4
+ */
5
+ export const containerSym = Symbol.for(`r:auto`);
2
6
  //# sourceMappingURL=fiber.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fiber.js","sourceRoot":"","sources":["../../src/types/fiber.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"fiber.js","sourceRoot":"","sources":["../../src/types/fiber.ts"],"names":[],"mappings":"AAwEA;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { ReactContext } from './context';
2
- import type { ContextFiberNode, FiberNode } from './fiber';
3
- import type { Ref } from './refs';
2
+ import type { ContextFiberNode, FiberNode, TagState } from './fiber';
3
+ import type { RefObject } from './refs';
4
4
  export type UseStateItem<T = unknown> = {
5
5
  type: 'state';
6
6
  state: T;
@@ -15,7 +15,7 @@ export type UseMemoItem = {
15
15
  };
16
16
  export type UseRefItem<T = unknown> = {
17
17
  type: 'ref';
18
- value: Ref<T>;
18
+ value: RefObject<T>;
19
19
  };
20
20
  export type UseEffectItem = {
21
21
  type: 'effect';
@@ -31,7 +31,15 @@ export type UseContextItem<T = unknown> = {
31
31
  move: (newFiber: FiberNode) => void;
32
32
  providerFiber: ContextFiberNode | null;
33
33
  };
34
- export type HookStateItem = UseStateItem | UseMemoItem | UseRefItem | UseEffectItem | UseContextItem;
34
+ export type ErrorInfo = {
35
+ componentStack: string;
36
+ };
37
+ export type ErrorHandler = (error: unknown, info: ErrorInfo) => void;
38
+ export type UseErrorItem = {
39
+ type: 'error';
40
+ fn: ErrorHandler;
41
+ };
42
+ export type HookStateItem = UseStateItem | UseMemoItem | UseRefItem | UseEffectItem | UseContextItem | UseErrorItem;
35
43
  export type HookStore = HookStateItem[];
36
44
  /**
37
45
  * Deps used to invalidate the hook.
@@ -39,12 +47,14 @@ export type HookStore = HookStateItem[];
39
47
  */
40
48
  export type HookDeps = unknown[];
41
49
  /** const [, setter] = useState(...) */
42
- export type StateSetter<T> = (valueOrFn: (T extends Function ? (prev: T) => T : T) | ((prev: T) => T)) => void;
50
+ export type StateSetter<T> = (valueOrFn: T | ((prev: T) => T)) => void;
43
51
  /**
44
52
  * In this library useEffect & useLayoutEffect are a little more complex. They
45
53
  * support async functions and abort signals. But they are still back-compatible
46
54
  * with the original React ones.
47
55
  */
48
56
  export type EffectHandler = (signal: AbortSignal) => void | Promise<void> | (() => void);
49
- export type EffectMode = 'refs' | 'layout' | 'normal';
57
+ export type EffectMode = 'afterActions' | 'refsUnmount' | 'refsMount' | 'layout' | 'normal';
58
+ export type Reducer<TState, TAction> = (state: TState, action: TAction) => TagState;
59
+ export type Dispatch<A> = (action: A) => void;
50
60
  //# sourceMappingURL=hooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI;IACpC,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,aAAa,CAAC;IAClB,UAAU,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;AAEjC,uCAAuC;AACvC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAC3B,SAAS,EACP,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GACvC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KACjB,IAAI,CAAC;AAEV;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,WAAW,KAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AAEzC,MAAM,MAAM,UAAU,GAElB,MAAM,GAEN,QAAQ,GAER,QAAQ,CAAC"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,UAAU,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAAI;IACpC,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,aAAa,CAAC;IAClB,UAAU,EAAE,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;IAChC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI;IACxC,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,KAAK,IAAI,CAAC;IACpC,aAAa,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;AACrE,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,YAAY,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAEjB,MAAM,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;AAExC;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;AAEjC,uCAAuC;AACvC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;AAEvE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,CAC1B,MAAM,EAAE,WAAW,KAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AAEzC,MAAM,MAAM,UAAU,GAElB,cAAc,GAEd,aAAa,GACb,WAAW,GAEX,QAAQ,GAER,QAAQ,CAAC;AAEb,MAAM,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,IAAI,CACrC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,OAAO,KACZ,QAAQ,CAAC;AAEd,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,CAAC"}
@@ -0,0 +1,31 @@
1
+ import type { ReactContext } from './context';
2
+ import { type ReactComponent } from './component';
3
+ import type { ElementCommonAttrs, UnknownProps } from './core';
4
+ import type { EventHandler, PatchEvent } from './events';
5
+ import type { TagNativeProps } from './attributes';
6
+ import type { TagProps, TagStyles } from './dom';
7
+ import type { Ref } from './refs';
8
+ export type FC<Props extends UnknownProps = UnknownProps> = ReactComponent<Props>;
9
+ export type ReactNode = JSX.Element;
10
+ export type Context<T> = ReactContext<T>;
11
+ export type CSSProperties = TagStyles;
12
+ export type ComponentType<Props extends UnknownProps = UnknownProps> = ReactComponent<Props>;
13
+ export type ForwardRefExoticComponent<Props extends UnknownProps = UnknownProps> = FC<Props>;
14
+ export type SyntheticEvent<T extends Element = Element, E extends Event = Event> = PatchEvent<T, E>;
15
+ export type ClipboardEvent<T extends Element = Element> = SyntheticEvent<T> & {
16
+ clipboardData: DataTransfer;
17
+ };
18
+ export type FormEvent<T extends Element = Element> = SyntheticEvent<T>;
19
+ export type ChangeEvent<T extends Element = Element> = Omit<SyntheticEvent<T>, 'target'> & {
20
+ target: EventTarget & T;
21
+ };
22
+ export type ChangeEventHandler<T extends Element = Element> = EventHandler<T, Event>;
23
+ export type KeyboardEvent<T extends Element = Element> = PatchEvent<T, globalThis.KeyboardEvent>;
24
+ export type ReactEventHandler<T extends Element = Element> = EventHandler<T, Event>;
25
+ export type HTMLAttributes<T extends Element> = TagNativeProps<T>;
26
+ export type TextareaHTMLAttributes<T extends Element = HTMLTextAreaElement> = TagProps<T>;
27
+ export type InputHTMLAttributes<T extends Element = HTMLInputElement> = TagProps<T>;
28
+ export type RefAttributes<T extends Element> = {
29
+ ref?: Ref<T>;
30
+ } & ElementCommonAttrs;
31
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/types/react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAKlC,MAAM,MAAM,EAAE,CAAC,KAAK,SAAS,YAAY,GAAG,YAAY,IACtD,cAAc,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;AACpC,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AACzC,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC;AACtC,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,YAAY,GAAG,YAAY,IACjE,cAAc,CAAC,KAAK,CAAC,CAAC;AACxB,MAAM,MAAM,yBAAyB,CACnC,KAAK,SAAS,YAAY,GAAG,YAAY,IACvC,EAAE,CAAC,KAAK,CAAC,CAAC;AAKd,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,CAAC,SAAS,KAAK,GAAG,KAAK,IACrB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrB,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAClD,cAAc,CAAC,CAAC,CAAC,GACjB;IAAE,aAAa,EAAE,YAAY,CAAC;CAAE,CAAC;AACrC,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AACvE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IAC/C,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GACjC;IAAE,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC;CAAE,CAAC;AACjC,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IACxD,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzB,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IACnD,UAAU,CAAC,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;AAC1C,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,IACvD,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAMzB,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,OAAO,GAAG,mBAAmB,IACxE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,OAAO,GAAG,gBAAgB,IAClE,QAAQ,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,OAAO,IACvC;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,GACjB,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/types/react.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
1
  /** A ref produced in `useRef(default)` */
2
- export type Ref<T> = {
2
+ export type RefObject<T> = {
3
3
  current: T;
4
4
  };
5
5
  /**
@@ -8,12 +8,9 @@ export type Ref<T> = {
8
8
  * <div ref={(node: HTMLDivElement | null) => …}
9
9
  * // ^ RefSetter<HTMLDivElement | null>
10
10
  **/
11
- export type RefSetter<T> = (v: T) => void;
11
+ export type RefSetter<T> = (v: T | null) => void;
12
12
  /**
13
- * HTML Tag refs:
14
- * @example
15
- * const ref = useRef<HTMLDivElement>()
16
- * <div ref={ref}/>
17
- **/
18
- export type HtmlRef<T extends HTMLElement | SVGElement> = Ref<T | null | undefined>;
13
+ * Both `RefSetter` or `RefObject`.
14
+ */
15
+ export type Ref<T> = RefObject<T | null> | RefSetter<T>;
19
16
  //# sourceMappingURL=refs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/types/refs.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAEpC;;;;;IAKI;AACJ,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;AAE1C;;;;;IAKI;AACJ,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,UAAU,IAAI,GAAG,CACzD,CAAC,GACD,IAAI,GACJ,SAAS,CACZ,CAAC"}
1
+ {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/types/refs.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC;AAE1C;;;;;IAKI;AACJ,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,15 @@
1
1
  {
2
2
  "name": "@faiwer/react",
3
- "version": "0.8.4",
3
+ "version": "19.0.1",
4
4
  "description": "A hobby project. A naive and simplified React implementation",
5
- "keywords": ["react", "jsx", "hooks", "virtual-dom", "frontend", "ui-library"],
5
+ "keywords": [
6
+ "react",
7
+ "jsx",
8
+ "hooks",
9
+ "virtual-dom",
10
+ "frontend",
11
+ "ui-library"
12
+ ],
6
13
  "repository": {
7
14
  "type": "git",
8
15
  "url": "https://github.com/faiwer/faiwer-react.git"
@@ -39,7 +46,8 @@
39
46
  }
40
47
  },
41
48
  "scripts": {
42
- "build": "npm run clean && npx tsgo -p tsconfig.build.json && npx tsc-alias -p tsconfig.build.json && cp src/jsx.d.ts dist/jsx.d.ts",
49
+ "build": "npm run clean && npx tsgo -p tsconfig.build.json && npx tsc-alias -p tsconfig.build.json && cp src/jsx.d.ts dist/jsx.d.ts && npm run prepend-dts",
50
+ "prepend-dts": "cp ./src/react.d.ts ./dist && printf '/// <reference path=\"./jsx.d.ts\" />\n/// <reference path=\"./react.d.ts\" />\n' | cat - ./dist/index.d.ts > temp && mv temp ./dist/index.d.ts",
43
51
  "clean": "rm -rf dist",
44
52
  "prepublishOnly": "npm run build",
45
53
  "test": "jest",