@faiwer/react 0.8.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/README.md +20 -14
  2. package/dist/core/Children.d.ts +11 -0
  3. package/dist/core/Children.d.ts.map +1 -0
  4. package/dist/core/Children.js +35 -0
  5. package/dist/core/Children.js.map +1 -0
  6. package/dist/core/actions/applyAction.d.ts.map +1 -1
  7. package/dist/core/actions/applyAction.js +2 -0
  8. package/dist/core/actions/applyAction.js.map +1 -1
  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 +107 -5
  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 +4 -0
  25. package/dist/core/actions/dom/attributes.d.ts.map +1 -0
  26. package/dist/core/actions/dom/attributes.js +56 -0
  27. package/dist/core/actions/dom/attributes.js.map +1 -0
  28. package/dist/core/actions/dom/css.d.ts +6 -0
  29. package/dist/core/actions/dom/css.d.ts.map +1 -0
  30. package/dist/core/actions/dom/css.js +54 -0
  31. package/dist/core/actions/dom/css.js.map +1 -0
  32. package/dist/core/actions/dom/events.d.ts +3 -0
  33. package/dist/core/actions/dom/events.d.ts.map +1 -0
  34. package/dist/core/actions/dom/events.js +45 -0
  35. package/dist/core/actions/dom/events.js.map +1 -0
  36. package/dist/core/actions/dom/svg.d.ts +7 -0
  37. package/dist/core/actions/dom/svg.d.ts.map +1 -0
  38. package/dist/core/actions/dom/svg.js +76 -0
  39. package/dist/core/actions/dom/svg.js.map +1 -0
  40. package/dist/core/actions/dom/value.d.ts +17 -0
  41. package/dist/core/actions/dom/value.d.ts.map +1 -0
  42. package/dist/core/actions/dom/value.js +204 -0
  43. package/dist/core/actions/dom/value.js.map +1 -0
  44. package/dist/core/actions/helpers.d.ts +18 -11
  45. package/dist/core/actions/helpers.d.ts.map +1 -1
  46. package/dist/core/actions/helpers.js +78 -68
  47. package/dist/core/actions/helpers.js.map +1 -1
  48. package/dist/core/actions/relayout.action.d.ts +2 -1
  49. package/dist/core/actions/relayout.action.d.ts.map +1 -1
  50. package/dist/core/actions/relayout.action.js +119 -30
  51. package/dist/core/actions/relayout.action.js.map +1 -1
  52. package/dist/core/actions/remove.action.d.ts +3 -2
  53. package/dist/core/actions/remove.action.d.ts.map +1 -1
  54. package/dist/core/actions/remove.action.js +22 -18
  55. package/dist/core/actions/remove.action.js.map +1 -1
  56. package/dist/core/actions/replace.action.d.ts +1 -1
  57. package/dist/core/actions/replace.action.d.ts.map +1 -1
  58. package/dist/core/actions/replace.action.js +36 -11
  59. package/dist/core/actions/replace.action.js.map +1 -1
  60. package/dist/core/actions/setAttr.action.d.ts +1 -1
  61. package/dist/core/actions/setAttr.action.d.ts.map +1 -1
  62. package/dist/core/actions/setAttr.action.js +55 -87
  63. package/dist/core/actions/setAttr.action.js.map +1 -1
  64. package/dist/core/actions/setProps.action.d.ts.map +1 -1
  65. package/dist/core/actions/setProps.action.js +2 -1
  66. package/dist/core/actions/setProps.action.js.map +1 -1
  67. package/dist/core/actions/setRef.action.d.ts +1 -1
  68. package/dist/core/actions/setRef.action.d.ts.map +1 -1
  69. package/dist/core/actions/setRef.action.js +5 -6
  70. package/dist/core/actions/setRef.action.js.map +1 -1
  71. package/dist/core/actions/setText.action.d.ts.map +1 -1
  72. package/dist/core/actions/setText.action.js +3 -3
  73. package/dist/core/actions/setText.action.js.map +1 -1
  74. package/dist/core/classComponent.d.ts +33 -0
  75. package/dist/core/classComponent.d.ts.map +1 -0
  76. package/dist/core/classComponent.js +127 -0
  77. package/dist/core/classComponent.js.map +1 -0
  78. package/dist/core/compact.d.ts +10 -29
  79. package/dist/core/compact.d.ts.map +1 -1
  80. package/dist/core/compact.js +12 -100
  81. package/dist/core/compact.js.map +1 -1
  82. package/dist/core/components.d.ts +2 -2
  83. package/dist/core/components.d.ts.map +1 -1
  84. package/dist/core/components.js +22 -5
  85. package/dist/core/components.js.map +1 -1
  86. package/dist/core/createElement.d.ts +9 -9
  87. package/dist/core/createElement.d.ts.map +1 -1
  88. package/dist/core/createElement.js +19 -3
  89. package/dist/core/createElement.js.map +1 -1
  90. package/dist/core/createRoot.js.map +1 -1
  91. package/dist/core/reactNodeToFiberNode.d.ts.map +1 -1
  92. package/dist/core/reactNodeToFiberNode.js +6 -1
  93. package/dist/core/reactNodeToFiberNode.js.map +1 -1
  94. package/dist/core/reconciliation/app.js +3 -3
  95. package/dist/core/reconciliation/app.js.map +1 -1
  96. package/dist/core/reconciliation/collect/fromApp.d.ts.map +1 -1
  97. package/dist/core/reconciliation/collect/fromApp.js +3 -27
  98. package/dist/core/reconciliation/collect/fromApp.js.map +1 -1
  99. package/dist/core/reconciliation/collect/fromChildrenPair.d.ts.map +1 -1
  100. package/dist/core/reconciliation/collect/fromChildrenPair.js +24 -15
  101. package/dist/core/reconciliation/collect/fromChildrenPair.js.map +1 -1
  102. package/dist/core/reconciliation/collect/fromComponent.d.ts +2 -2
  103. package/dist/core/reconciliation/collect/fromComponent.d.ts.map +1 -1
  104. package/dist/core/reconciliation/collect/fromComponent.js +4 -8
  105. package/dist/core/reconciliation/collect/fromComponent.js.map +1 -1
  106. package/dist/core/reconciliation/collect/fromFiberPair.d.ts.map +1 -1
  107. package/dist/core/reconciliation/collect/fromFiberPair.js +6 -4
  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.map +1 -1
  113. package/dist/core/reconciliation/effects.js +0 -5
  114. package/dist/core/reconciliation/effects.js.map +1 -1
  115. package/dist/core/reconciliation/errors/ReactError.d.ts +7 -0
  116. package/dist/core/reconciliation/errors/ReactError.d.ts.map +1 -0
  117. package/dist/core/reconciliation/errors/ReactError.js +26 -0
  118. package/dist/core/reconciliation/errors/ReactError.js.map +1 -0
  119. package/dist/core/reconciliation/errors/stack.d.ts +9 -0
  120. package/dist/core/reconciliation/errors/stack.d.ts.map +1 -0
  121. package/dist/core/reconciliation/errors/stack.js +80 -0
  122. package/dist/core/reconciliation/errors/stack.js.map +1 -0
  123. package/dist/core/reconciliation/fibers.d.ts +7 -0
  124. package/dist/core/reconciliation/fibers.d.ts.map +1 -1
  125. package/dist/core/reconciliation/fibers.js +9 -2
  126. package/dist/core/reconciliation/fibers.js.map +1 -1
  127. package/dist/core/reconciliation/heap.d.ts +18 -0
  128. package/dist/core/reconciliation/heap.d.ts.map +1 -0
  129. package/dist/core/reconciliation/heap.js +81 -0
  130. package/dist/core/reconciliation/heap.js.map +1 -0
  131. package/dist/core/reconciliation/invalidateFiber.d.ts.map +1 -1
  132. package/dist/core/reconciliation/invalidateFiber.js +10 -4
  133. package/dist/core/reconciliation/invalidateFiber.js.map +1 -1
  134. package/dist/core/reconciliation/mount.d.ts.map +1 -1
  135. package/dist/core/reconciliation/mount.js +17 -7
  136. package/dist/core/reconciliation/mount.js.map +1 -1
  137. package/dist/core/reconciliation/postCommit.d.ts +1 -1
  138. package/dist/core/reconciliation/postCommit.d.ts.map +1 -1
  139. package/dist/core/reconciliation/postCommit.js +19 -4
  140. package/dist/core/reconciliation/postCommit.js.map +1 -1
  141. package/dist/core/reconciliation/queue.d.ts +21 -0
  142. package/dist/core/reconciliation/queue.d.ts.map +1 -0
  143. package/dist/core/reconciliation/queue.js +55 -0
  144. package/dist/core/reconciliation/queue.js.map +1 -0
  145. package/dist/core/reconciliation/render.js +5 -5
  146. package/dist/core/reconciliation/render.js.map +1 -1
  147. package/dist/core/reconciliation/runFiberComponents.d.ts.map +1 -1
  148. package/dist/core/reconciliation/runFiberComponents.js +2 -1
  149. package/dist/core/reconciliation/runFiberComponents.js.map +1 -1
  150. package/dist/core/reconciliation/typeGuards.d.ts +9 -1
  151. package/dist/core/reconciliation/typeGuards.d.ts.map +1 -1
  152. package/dist/core/reconciliation/typeGuards.js +25 -0
  153. package/dist/core/reconciliation/typeGuards.js.map +1 -1
  154. package/dist/core/reconciliation/validateApp.d.ts +3 -0
  155. package/dist/core/reconciliation/validateApp.d.ts.map +1 -0
  156. package/dist/core/reconciliation/validateApp.js +74 -0
  157. package/dist/core/reconciliation/validateApp.js.map +1 -0
  158. package/dist/hooks/helpers.d.ts +2 -2
  159. package/dist/hooks/helpers.d.ts.map +1 -1
  160. package/dist/hooks/helpers.js +3 -2
  161. package/dist/hooks/helpers.js.map +1 -1
  162. package/dist/hooks/index.d.ts +1 -1
  163. package/dist/hooks/index.d.ts.map +1 -1
  164. package/dist/hooks/index.js +1 -1
  165. package/dist/hooks/index.js.map +1 -1
  166. package/dist/hooks/useContext.d.ts.map +1 -1
  167. package/dist/hooks/useContext.js +16 -0
  168. package/dist/hooks/useContext.js.map +1 -1
  169. package/dist/hooks/useEffect.d.ts +2 -1
  170. package/dist/hooks/useEffect.d.ts.map +1 -1
  171. package/dist/hooks/useEffect.js +1 -1
  172. package/dist/hooks/useEffect.js.map +1 -1
  173. package/dist/hooks/useRef.d.ts +8 -3
  174. package/dist/hooks/useRef.d.ts.map +1 -1
  175. package/dist/hooks/useRef.js +27 -0
  176. package/dist/hooks/useRef.js.map +1 -1
  177. package/dist/hooks/useState.d.ts +1 -1
  178. package/dist/hooks/useState.d.ts.map +1 -1
  179. package/dist/hooks/useState.js +24 -1
  180. package/dist/hooks/useState.js.map +1 -1
  181. package/dist/index.d.ts +8 -1
  182. package/dist/index.d.ts.map +1 -1
  183. package/dist/index.js +5 -0
  184. package/dist/index.js.map +1 -1
  185. package/dist/jsx-dev-runtime.d.ts +4 -4
  186. package/dist/jsx-dev-runtime.d.ts.map +1 -1
  187. package/dist/jsx-dev-runtime.js +4 -4
  188. package/dist/jsx-dev-runtime.js.map +1 -1
  189. package/dist/jsx-runtime.d.ts +3 -3
  190. package/dist/jsx-runtime.d.ts.map +1 -1
  191. package/dist/jsx-runtime.js +3 -3
  192. package/dist/jsx-runtime.js.map +1 -1
  193. package/dist/jsx.d.ts +176 -36
  194. package/dist/mocks.d.ts +21 -0
  195. package/dist/mocks.d.ts.map +1 -0
  196. package/dist/mocks.js +27 -0
  197. package/dist/mocks.js.map +1 -0
  198. package/dist/react.d.ts +46 -0
  199. package/dist/types/actions.d.ts +12 -4
  200. package/dist/types/actions.d.ts.map +1 -1
  201. package/dist/types/app.d.ts +17 -2
  202. package/dist/types/app.d.ts.map +1 -1
  203. package/dist/types/attributes.d.ts +42 -0
  204. package/dist/types/attributes.d.ts.map +1 -0
  205. package/dist/types/attributes.js +2 -0
  206. package/dist/types/attributes.js.map +1 -0
  207. package/dist/types/common.d.ts +13 -0
  208. package/dist/types/common.d.ts.map +1 -0
  209. package/dist/types/common.js +2 -0
  210. package/dist/types/common.js.map +1 -0
  211. package/dist/types/component.d.ts +5 -1
  212. package/dist/types/component.d.ts.map +1 -1
  213. package/dist/types/context.d.ts +3 -2
  214. package/dist/types/context.d.ts.map +1 -1
  215. package/dist/types/core.d.ts +17 -13
  216. package/dist/types/core.d.ts.map +1 -1
  217. package/dist/types/dom.d.ts +23 -27
  218. package/dist/types/dom.d.ts.map +1 -1
  219. package/dist/types/events.d.ts +31 -0
  220. package/dist/types/events.d.ts.map +1 -0
  221. package/dist/types/events.js +2 -0
  222. package/dist/types/events.js.map +1 -0
  223. package/dist/types/fiber.d.ts +31 -11
  224. package/dist/types/fiber.d.ts.map +1 -1
  225. package/dist/types/fiber.js +5 -1
  226. package/dist/types/fiber.js.map +1 -1
  227. package/dist/types/hooks.d.ts +8 -5
  228. package/dist/types/hooks.d.ts.map +1 -1
  229. package/dist/types/react.d.ts +35 -0
  230. package/dist/types/react.d.ts.map +1 -0
  231. package/dist/types/react.js +2 -0
  232. package/dist/types/react.js.map +1 -0
  233. package/dist/types/refs.d.ts +5 -8
  234. package/dist/types/refs.d.ts.map +1 -1
  235. package/package.json +15 -3
  236. package/dist/core/reconciliation/validateTree.d.ts +0 -6
  237. package/dist/core/reconciliation/validateTree.d.ts.map +0 -1
  238. package/dist/core/reconciliation/validateTree.js +0 -48
  239. package/dist/core/reconciliation/validateTree.js.map +0 -1
@@ -1,12 +1,14 @@
1
1
  import type { CommentMode, UnknownProps } from './core';
2
2
  import type { TagAttrValue } from './dom';
3
3
  import type { FiberMap, FiberNode } from './fiber';
4
- import type { Ref, RefSetter } from './refs';
4
+ import type { RefObject, RefSetter } from './refs';
5
5
  type CommonAction = {
6
6
  fiber: FiberNode;
7
7
  };
8
- type CreateTagAction = CommonAction & {
8
+ export type CreateTagAction = CommonAction & {
9
9
  type: 'CreateTag';
10
+ attrs: null | Record<string, TagAttrValue>;
11
+ ref: SetRefAction['ref'];
10
12
  };
11
13
  type CreateTextAction = CommonAction & {
12
14
  type: 'CreateText';
@@ -15,7 +17,10 @@ export type CreateCommentAction = CommonAction & {
15
17
  type: 'CreateComment';
16
18
  mode: CommentMode;
17
19
  };
18
- type CreateAction = CreateTagAction | CreateTextAction | CreateCommentAction;
20
+ export type CreateContainer = CommonAction & {
21
+ type: 'CreateContainer';
22
+ };
23
+ type CreateAction = CreateTagAction | CreateTextAction | CreateCommentAction | CreateContainer;
19
24
  export type SetTextAction = CommonAction & {
20
25
  type: 'SetText';
21
26
  text: string;
@@ -24,10 +29,11 @@ export type SetAttrAction = CommonAction & {
24
29
  type: 'SetAttr';
25
30
  name: string;
26
31
  value: TagAttrValue;
32
+ creation?: boolean;
27
33
  };
28
34
  export type SetRefAction = CommonAction & {
29
35
  type: 'SetRef';
30
- ref: Ref<unknown> | RefSetter<unknown> | null;
36
+ ref: RefObject<unknown> | RefSetter<unknown> | null;
31
37
  dontUnsetRef?: boolean;
32
38
  };
33
39
  export type SetPropsAction = CommonAction & {
@@ -37,6 +43,8 @@ export type SetPropsAction = CommonAction & {
37
43
  type UpdateAction = SetTextAction | SetAttrAction | SetPropsAction | SetRefAction;
38
44
  export type RemoveAction = CommonAction & {
39
45
  type: 'Remove';
46
+ immediate?: boolean;
47
+ last?: boolean;
40
48
  };
41
49
  export type RelayoutAction = CommonAction & {
42
50
  type: 'Relayout';
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/types/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAE7C,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAGF,KAAK,eAAe,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAC5D,KAAK,gBAAgB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG;IAC/C,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AACF,KAAK,YAAY,GAAG,eAAe,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAG7E,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAE9C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AACF,KAAK,YAAY,GACb,aAAa,GACb,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAGjB,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AACF,KAAK,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/types/actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnD,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,SAAS,CAAC;CAClB,CAAC;AAGF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3C,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;CAC1B,CAAC;AACF,KAAK,gBAAgB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,YAAY,CAAA;CAAE,CAAC;AAC9D,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG;IAC/C,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,WAAW,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AACzE,KAAK,YAAY,GACb,eAAe,GACf,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,CAAC;AAGpB,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAEpD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;CACrB,CAAC;AACF,KAAK,YAAY,GACb,aAAa,GACb,aAAa,GACb,cAAc,GACd,YAAY,CAAC;AAGjB,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG;IACxC,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,QAAQ,CAAC;CACjB,CAAC;AACF,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AACF,KAAK,YAAY,GAAG,YAAY,GAAG,cAAc,GAAG,aAAa,CAAC;AAElE,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC"}
@@ -1,5 +1,6 @@
1
- import type { FiberNode } from './fiber';
1
+ import type { FiberNode, JsxSource } from './fiber';
2
2
  import type { EffectMode } from './hooks';
3
+ import type { Queue } from '../core/reconciliation/queue';
3
4
  export type AppState =
4
5
  /** Waiting for updates */
5
6
  'idle'
@@ -23,6 +24,11 @@ export type AppState =
23
24
  * tree. Some of the actions may schedule extra effects.
24
25
  */
25
26
  | 'commit'
27
+ /**
28
+ * The same as `refEffects`, but is executed one step earlier. It contains
29
+ * calls to ref handlers.
30
+ */
31
+ | 'refEffects'
26
32
  /**
27
33
  * Runs scheduled normal effects. It's guaranteed that the browser didn't
28
34
  * update the UI since the render started. Effect handlers may update
@@ -49,9 +55,12 @@ export type App = {
49
55
  /** The lists of pending effect handlers. */
50
56
  effects: Record<EffectMode, Array<() => void>>;
51
57
  /** The list of components to rerender. */
52
- invalidatedComponents: Set<FiberNode>;
58
+ invalidatedComponents: Queue;
53
59
  /** If `true`, extra validators are applied. */
54
60
  testMode: boolean;
61
+ /** If given used to adjust JSX source to something else before adding them to
62
+ * a ReactError instance. */
63
+ transformSource?: (source: JsxSource) => JsxSource;
55
64
  /**
56
65
  * A special storage that contains invalidated context values. We need it to
57
66
  * keep the "render" phase pure (so we don't update the existing fibers) and
@@ -66,6 +75,12 @@ export type AppOptions = {
66
75
  * Warning: It slows down the app.
67
76
  **/
68
77
  testMode?: boolean;
78
+ /**
79
+ * Provide a converter that accounts for nuances of your development
80
+ * build. The purpose of this converter is to convert the file path from
81
+ * JSX into something that browser dev tools can properly handle.
82
+ */
83
+ transformSource?: (source: JsxSource) => JsxSource;
69
84
  };
70
85
  export type AppRoot = {
71
86
  render: (element: JSX.Element) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/types/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,MAAM,QAAQ;AAClB,0BAA0B;AACxB,MAAM;AACR;;;IAGI;GACF,WAAW;AACb;;;;;;;;GAQG;GACD,QAAQ;AACV;;;GAGG;GACD,QAAQ;AACV;;;;;GAKG;GACD,eAAe;AACjB;;;GAGG;GACD,SAAS;AACX;;GAEG;GACD,QAAQ,CAAC;AAEb,MAAM,MAAM,GAAG,GAAG;IAChB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,IAAI,EAAE,SAAS,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,QAAQ,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC/C,0CAA0C;IAC1C,qBAAqB,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB;;;QAGI;IACJ,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/types/app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wCAAwC,CAAC;AAEpE,MAAM,MAAM,QAAQ;AAClB,0BAA0B;AACxB,MAAM;AACR;;;IAGI;GACF,WAAW;AACb;;;;;;;;GAQG;GACD,QAAQ;AACV;;;GAGG;GACD,QAAQ;AACV;;;GAGG;GACD,YAAY;AACd;;;;;GAKG;GACD,eAAe;AACjB;;;GAGG;GACD,SAAS;AACX;;GAEG;GACD,QAAQ,CAAC;AAEb,MAAM,MAAM,GAAG,GAAG;IAChB,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,IAAI,EAAE,SAAS,CAAC;IAChB,oDAAoD;IACpD,KAAK,EAAE,QAAQ,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC/C,0CAA0C;IAC1C,qBAAqB,EAAE,KAAK,CAAC;IAC7B,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB;gCAC4B;IAC5B,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC;IACnD;;;;;OAKG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB;;;QAGI;IACJ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { RemapKeys, RemoveIndexSignature } from './common';
2
+ import type { TagEventHandlers } from './events';
3
+ type ToCamel = {
4
+ autofocus: 'autoFocus';
5
+ autoplay: 'autoPlay';
6
+ autocomplete: 'autoComplete';
7
+ readonly: 'readOnly';
8
+ maxlength: 'maxLength';
9
+ minlength: 'minLength';
10
+ contenteditable: 'contentEditable';
11
+ spellcheck: 'spellCheck';
12
+ crossorigin: 'crossOrigin';
13
+ colspan: 'colSpan';
14
+ rowspan: 'rowSpan';
15
+ tabindex: 'tabIndex';
16
+ formaction: 'formAction';
17
+ formenctype: 'formEncType';
18
+ formmethod: 'formMethod';
19
+ formnovalidate: 'formNoValidate';
20
+ formtarget: 'formTarget';
21
+ inputmode: 'inputMode';
22
+ novalidate: 'noValidate';
23
+ fetchpriority: 'fetchPriority';
24
+ };
25
+ /**
26
+ * Each HTMLElement contains a ton of properties. Most of them shouldn't be used
27
+ * in JSX tag nodes. This type matches most inapplicable generic properties.
28
+ */
29
+ 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';
30
+ type RemapAttrs<T> = RemapKeys<T, ToCamel>;
31
+ /**
32
+ * Returns a list of tag-based properties that can probably be set via a JSX tag
33
+ * node.
34
+ **/
35
+ type PropertiesOnly<T extends Element> = {
36
+ [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;
37
+ }[keyof RemoveIndexSignature<T>];
38
+ export type TagNativeProps<T extends Element> = {
39
+ className?: string;
40
+ } & RemapAttrs<Partial<Omit<Pick<T, PropertiesOnly<T>>, GeneralRemove>>> & TagEventHandlers<T>;
41
+ export {};
42
+ //# sourceMappingURL=attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/types/attributes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjD,KAAK,OAAO,GAAG;IACb,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,UAAU,CAAC;IACrB,YAAY,EAAE,cAAc,CAAC;IAE7B,QAAQ,EAAE,UAAU,CAAC;IACrB,SAAS,EAAE,WAAW,CAAC;IACvB,SAAS,EAAE,WAAW,CAAC;IAEvB,eAAe,EAAE,iBAAiB,CAAC;IACnC,UAAU,EAAE,YAAY,CAAC;IAEzB,WAAW,EAAE,aAAa,CAAC;IAE3B,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,SAAS,CAAC;IAEnB,QAAQ,EAAE,UAAU,CAAC;IAErB,UAAU,EAAE,YAAY,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,UAAU,EAAE,YAAY,CAAC;IACzB,cAAc,EAAE,gBAAgB,CAAC;IACjC,UAAU,EAAE,YAAY,CAAC;IAEzB,SAAS,EAAE,WAAW,CAAC;IAEvB,UAAU,EAAE,YAAY,CAAC;IAEzB,aAAa,EAAE,eAAe,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,KAAK,aAAa,GACd,YAAY,MAAM,EAAE,GACpB,GAAG,MAAM,OAAO,GAChB,SAAS,MAAM,EAAE,GACjB,SAAS,MAAM,EAAE,GACjB,OAAO,MAAM,EAAE,GACf,QAAQ,MAAM,EAAE,GAChB,SAAS,MAAM,EAAE,GACjB,MAAM,MAAM,EAAE,GACd,QAAQ,MAAM,EAAE,GAChB,UAAU,GACV,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,SAAS,GACT,OAAO,GACP,KAAK,GACL,SAAS,GACT,aAAa,GACb,YAAY,CAAC;AAEjB,KAAK,UAAU,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAE3C;;;IAGI;AACJ,KAAK,cAAc,CAAC,CAAC,SAAS,OAAO,IAAI;KACtC,CAAC,IAAI,MAAM,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM,EAAE,GACzD,KAAK,GACL,SAAS,SAAS,CAAC,CAAC,CAAC,CAAC,GACpB,KAAK,GACL,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAClB,KAAK,GACL,WAAW,SAAS,CAAC,CAAC,CAAC,CAAC,GACtB,KAAK,GACL,CAAC;CACZ,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAGjC,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,OAAO,IACxC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACtB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GACpE,gBAAgB,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attributes.js","sourceRoot":"","sources":["../../src/types/attributes.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export type RemoveIndexSignature<T> = {
2
+ [K in keyof T as string extends K ? never : number extends K ? never : typeof Symbol.iterator extends K ? never : K]: T[K];
3
+ };
4
+ export type RemapKeys<T, KeyMap extends Record<keyof any, keyof any>> = {
5
+ [K in keyof T as K extends keyof KeyMap ? KeyMap[K] : K]?: T[K];
6
+ };
7
+ export type Ensure<T, K extends keyof T> = Exclude<T, K> & {
8
+ [Key in K]: NonNullable<T[K]>;
9
+ };
10
+ export type ReplaceIn<T, M> = {
11
+ [K in keyof T]: K extends keyof M ? M[K] : T[K];
12
+ };
13
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;KACnC,CAAC,IAAI,MAAM,CAAC,IAAI,MAAM,SAAS,CAAC,GAC7B,KAAK,GACL,MAAM,SAAS,CAAC,GACd,KAAK,GACL,OAAO,MAAM,CAAC,QAAQ,SAAS,CAAC,GAC9B,KAAK,GACL,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,GAAG,EAAE,MAAM,GAAG,CAAC,IAAI;KACrE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAEF,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IACnC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GACb;KAAG,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEtC,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":""}
@@ -3,9 +3,13 @@ import type { HookStore } from './hooks';
3
3
  export type ComponentState = {
4
4
  hooks: HookStore | null;
5
5
  };
6
- export type ReactComponent<TProps extends UnknownProps = UnknownProps> = (props: TProps & ElementCommonAttrs) => JSX.Element;
6
+ export type ReactComponent<TProps extends UnknownProps = UnknownProps> = {
7
+ (props: TProps & ElementCommonAttrs): JSX.Element;
8
+ displayName?: string;
9
+ };
7
10
  export type PropsWithChildren<TProps extends UnknownProps = UnknownProps> = TProps & {
8
11
  children?: JSX.Element;
9
12
  };
10
13
  export type ReactComponentWithChildren<TProps extends UnknownProps = UnknownProps> = ReactComponent<PropsWithChildren<TProps>>;
14
+ export type ComponentProps<T> = T extends (props: infer Props) => JSX.Element ? Props : never;
11
15
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,GAAG,IAAI,CAA4B;CACpD,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY,IAAI,CACvE,KAAK,EAAE,MAAM,GAAG,kBAAkB,KAC/B,GAAG,CAAC,OAAO,CAAC;AAEjB,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY,IACtE,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,0BAA0B,CACpC,MAAM,SAAS,YAAY,GAAG,YAAY,IACxC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,SAAS,GAAG,IAAI,CAA4B;CACpD,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY,IAAI;IACvE,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,YAAY,GAAG,YAAY,IACtE,MAAM,GAAG;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,0BAA0B,CACpC,MAAM,SAAS,YAAY,GAAG,YAAY,IACxC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAE9C,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,GAAG,CAAC,OAAO,GACzE,KAAK,GACL,KAAK,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ReactComponent } from './component';
2
- import type { FiberNode } from './fiber';
2
+ import type { ComponentFiberNode } from './fiber';
3
3
  export type ReactContextProvider<T = unknown> = ReactComponent<{
4
4
  children: JSX.Element;
5
5
  value: T;
@@ -19,10 +19,11 @@ export type ReactContext<T = unknown> = {
19
19
  */
20
20
  __id: number;
21
21
  __default: T;
22
+ displayName?: string;
22
23
  };
23
24
  /** `.data` of the `ContextFiberNode` */
24
25
  export type ContextState<T = unknown> = {
25
26
  ctx: ReactContext<T>;
26
- consumers: Set<FiberNode>;
27
+ consumers: Set<ComponentFiberNode>;
27
28
  };
28
29
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAIxC,cAAc,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,GACnD;IAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAE/B,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,cAAc,CAAC;IAC7D,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAClC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,CAAC;CACd,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/types/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAIxC,cAAc,CAAC;IAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,GACnD;IAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAE/B,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,cAAc,CAAC;IAC7D,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAClC,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAClC;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wCAAwC;AACxC,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IACtC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;CACpC,CAAC"}
@@ -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,39 +1,35 @@
1
+ import type { TagNativeProps } from './attributes';
2
+ import type { ReplaceIn } from './common';
1
3
  import type { ElementCommonAttrs, ScalarNode } from './core';
2
- import type { HtmlRef, RefSetter } from './refs';
4
+ import type { Ref } from './refs';
3
5
  /** The list of possible DOM tree node types. */
4
6
  export type DomNode = Element | Text | Comment;
5
7
  export type TagAttrValue = string | number | boolean | null | undefined | Function | TagStyles;
6
- type EventKeys<T extends HTMLElement> = {
7
- [K in keyof T]: K extends `on${string}` ? K : never;
8
- }[keyof T];
9
- /**
10
- * Each HTMLElement contains a ton of properties. Most of them shouldn't be used
11
- * in JSX tag nodes. This type matches most inapplicable generic properties.
12
- */
13
- 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';
14
- /**
15
- * Returns a list of tag-based properties that can probably be set via a JSX tag
16
- * node.
17
- **/
18
- type PropertiesOnly<T extends HTMLElement> = {
19
- [K in keyof T]: T[K] extends (...args: any[]) => any ? never : ChildNode extends T[K] ? never : Element extends T[K] ? never : HTMLElement extends T[K] ? never : K;
20
- }[keyof T];
21
- type TagNativeProps<T extends HTMLElement> = Partial<Omit<Pick<T, PropertiesOnly<T>>, GeneralRemove>> & {
22
- [K in EventKeys<T>]?: DomEventHandlerX<K>;
23
- };
24
- type EventHandler<E extends Event> = (event: E) => boolean | void;
25
- 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 `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> : E extends `oninput` | `onchange` | `onsubmit` | `onreset` ? EventHandler<Event> : EventHandler<Event>;
26
- export type TagProps<T extends HTMLElement = HTMLElement> = TagNativeProps<T> & ElementCommonAttrs & {
27
- 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>;
28
22
  style?: string | null | undefined | TagStyles;
29
- } & Record<`data-${string}`, ScalarNode> & {
30
23
  children?: JSX.Element;
31
- };
24
+ dangerouslySetInnerHTML?: {
25
+ __html: string;
26
+ };
27
+ } & Record<`data-${string}`, ScalarNode>>;
32
28
  /** A map like { fontSize: '12px' }. */
33
29
  export type TagStyles = {
34
30
  [K in keyof CSSStyleDeclaration]?: string | number;
35
31
  } & {
36
- [K in `--${string}`]: string | number;
32
+ [K in `--${string}`]: string | number | null;
37
33
  };
38
34
  export type SvgRootProps = TagProps<HTMLElement> & {
39
35
  xmlns?: string;
@@ -46,7 +42,7 @@ export type SvgRootProps = TagProps<HTMLElement> & {
46
42
  * way to get it from the default DOM types, so I left a fallback that at least
47
43
  * doesn't block SVG tags.
48
44
  */
49
- export type SvgTagProps = {
45
+ export type SvgTagProps<T extends SVGElement = SVGElement> = {
50
46
  [K in string]?: unknown;
51
47
  } & {
52
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"}
@@ -0,0 +1,31 @@
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;
6
+ };
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> = {
12
+ [K in keyof RemoveIndexSignature<T>]: K extends `on${string}` ? K : never;
13
+ }[keyof RemoveIndexSignature<T>];
14
+ type EventHandlers<T extends Element> = {
15
+ [K in EventKeys<T>]: DomEventHandlerX<T, K>;
16
+ };
17
+ type MapLowerCaseToCamelCase<T extends Element> = {
18
+ [K in EventKeys<T>]: ToCamelCase<K>;
19
+ };
20
+ type CaptureEvents<T> = {
21
+ [K in keyof T as `${string & K}Capture`]: T[K];
22
+ };
23
+ type WithCapture<T> = T & CaptureEvents<T>;
24
+ /**
25
+ * A map of events for the given HTMLElement-based type
26
+ * @example
27
+ * { onClick: (evt: PointerEvents) => void }
28
+ */
29
+ export type TagEventHandlers<T extends Element> = WithCapture<RemapKeys<EventHandlers<T>, MapLowerCaseToCamelCase<RemoveIndexSignature<T>>>>;
30
+ export {};
31
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":""}
@@ -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;
@@ -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;
@@ -138,8 +155,11 @@ export type TagState = {
138
155
  * render, when the event handler is not yet set up but is presented in JSX.
139
156
  */
140
157
  events: Partial<Record<string, {
158
+ /** Adapted event name. The value that is passed to .add|removeEventListener. */
159
+ name: string;
141
160
  wrapper: EventListener;
142
161
  handler: Function | null;
162
+ capture: boolean;
143
163
  }>>;
144
164
  styles: TagStyles | null;
145
165
  };
@@ -152,7 +172,7 @@ export type TagFiberNode<T = Element> = CommonFiber & {
152
172
  key: ReactKey | null;
153
173
  element: T | null;
154
174
  data: TagState;
155
- ref: RefSetter<T | null> | Ref<T | null> | null;
175
+ ref: RefSetter<T> | RefObject<T | null> | null;
156
176
  props: Record<PropertyKey, unknown>;
157
177
  role: null;
158
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,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,CAAC,CACrE,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"}