isomorfeus-preact 10.8.2 → 22.9.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (263) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +14 -3
  3. data/README.md +23 -39
  4. data/lib/browser/delegate_native.rb +94 -72
  5. data/lib/browser/document.rb +38 -0
  6. data/lib/browser/element.rb +160 -176
  7. data/lib/browser/event.rb +99 -94
  8. data/lib/browser/history.rb +40 -20
  9. data/lib/browser/location.rb +59 -0
  10. data/lib/browser/window.rb +58 -0
  11. data/lib/data_uri/open_uri.rb +18 -0
  12. data/lib/data_uri/uri.rb +61 -0
  13. data/lib/data_uri.rb +4 -0
  14. data/lib/isomorfeus/preact/config.rb +42 -54
  15. data/lib/isomorfeus/preact/imports.rb +5 -20
  16. data/lib/isomorfeus/preact/ssr.rb +34 -0
  17. data/lib/isomorfeus/preact/thread_local_component_cache.rb +9 -11
  18. data/lib/isomorfeus/preact/version.rb +5 -0
  19. data/lib/isomorfeus/preact/view_helper.rb +72 -0
  20. data/lib/isomorfeus/props/validator.rb +19 -11
  21. data/lib/isomorfeus/top_level.rb +55 -33
  22. data/lib/isomorfeus-preact.rb +78 -103
  23. data/lib/link.rb +52 -0
  24. data/lib/lucid_app.rb +117 -0
  25. data/lib/lucid_component.rb +154 -0
  26. data/lib/nano_css.rb +282 -465
  27. data/lib/preact/component.rb +222 -0
  28. data/lib/preact/component_resolution.rb +49 -83
  29. data/lib/preact/context.rb +68 -0
  30. data/lib/preact/elements.rb +2 -9
  31. data/lib/preact/module_component_resolution.rb +50 -0
  32. data/lib/preact/prop_declaration_mixin.rb +73 -0
  33. data/lib/preact.rb +1548 -257
  34. data/lib/redirect.rb +34 -0
  35. data/lib/route.rb +15 -0
  36. data/lib/router.rb +145 -0
  37. data/lib/switch.rb +70 -0
  38. metadata +42 -309
  39. data/lib/isomorfeus/preact/memcached_component_cache.rb +0 -19
  40. data/lib/isomorfeus/preact/redis_component_cache.rb +0 -19
  41. data/lib/isomorfeus/preact/ssr/history.rb +0 -23
  42. data/lib/isomorfeus/preact/ssr/render_core.rb +0 -117
  43. data/lib/isomorfeus/preact/ssr/top_level.rb +0 -37
  44. data/lib/isomorfeus/preact_view_helper.rb +0 -129
  45. data/lib/isomorfeus_preact/lucid_app/api.rb +0 -38
  46. data/lib/isomorfeus_preact/lucid_app/base.rb +0 -7
  47. data/lib/isomorfeus_preact/lucid_app/mixin.rb +0 -14
  48. data/lib/isomorfeus_preact/lucid_app/native_component_constructor.rb +0 -101
  49. data/lib/isomorfeus_preact/lucid_component/api.rb +0 -123
  50. data/lib/isomorfeus_preact/lucid_component/app_store_proxy.rb +0 -32
  51. data/lib/isomorfeus_preact/lucid_component/base.rb +0 -7
  52. data/lib/isomorfeus_preact/lucid_component/class_store_proxy.rb +0 -37
  53. data/lib/isomorfeus_preact/lucid_component/initializer.rb +0 -9
  54. data/lib/isomorfeus_preact/lucid_component/mixin.rb +0 -13
  55. data/lib/isomorfeus_preact/lucid_component/native_component_constructor.rb +0 -87
  56. data/lib/isomorfeus_preact/lucid_component/styles_wrapper.rb +0 -40
  57. data/lib/isomorfeus_preact/lucid_func/base.rb +0 -7
  58. data/lib/isomorfeus_preact/lucid_func/initializer.rb +0 -8
  59. data/lib/isomorfeus_preact/lucid_func/mixin.rb +0 -10
  60. data/lib/isomorfeus_preact/lucid_func/native_component_constructor.rb +0 -56
  61. data/lib/isomorfeus_preact/preact/function_component/api.rb +0 -140
  62. data/lib/isomorfeus_preact/preact/function_component/base.rb +0 -7
  63. data/lib/isomorfeus_preact/preact/function_component/initializer.rb +0 -6
  64. data/lib/isomorfeus_preact/preact/function_component/mixin.rb +0 -8
  65. data/lib/isomorfeus_preact/preact/function_component/native_component_constructor.rb +0 -47
  66. data/lib/lucid_app/context.rb +0 -24
  67. data/lib/lucid_prop_declaration/mixin.rb +0 -126
  68. data/lib/preact/component/api.rb +0 -137
  69. data/lib/preact/component/base.rb +0 -7
  70. data/lib/preact/component/callbacks.rb +0 -111
  71. data/lib/preact/component/initializer.rb +0 -7
  72. data/lib/preact/component/mixin.rb +0 -11
  73. data/lib/preact/component/native_component_constructor.rb +0 -77
  74. data/lib/preact/context_wrapper.rb +0 -48
  75. data/lib/preact/native_constant_wrapper.rb +0 -29
  76. data/lib/preact/option_hooks.rb +0 -98
  77. data/lib/preact/params.rb +0 -16
  78. data/lib/preact/props.rb +0 -69
  79. data/lib/preact/ref.rb +0 -17
  80. data/lib/preact/state.rb +0 -87
  81. data/lib/preact/version.rb +0 -3
  82. data/node_modules/.package-lock.json +0 -38
  83. data/node_modules/preact/LICENSE +0 -21
  84. data/node_modules/preact/README.md +0 -188
  85. data/node_modules/preact/compat/LICENSE +0 -21
  86. data/node_modules/preact/compat/client.js +0 -19
  87. data/node_modules/preact/compat/client.mjs +0 -17
  88. data/node_modules/preact/compat/dist/compat.js +0 -2
  89. data/node_modules/preact/compat/dist/compat.js.map +0 -1
  90. data/node_modules/preact/compat/dist/compat.mjs +0 -2
  91. data/node_modules/preact/compat/dist/compat.module.js +0 -2
  92. data/node_modules/preact/compat/dist/compat.module.js.map +0 -1
  93. data/node_modules/preact/compat/dist/compat.umd.js +0 -2
  94. data/node_modules/preact/compat/dist/compat.umd.js.map +0 -1
  95. data/node_modules/preact/compat/jsx-dev-runtime.js +0 -3
  96. data/node_modules/preact/compat/jsx-dev-runtime.mjs +0 -3
  97. data/node_modules/preact/compat/jsx-runtime.js +0 -3
  98. data/node_modules/preact/compat/jsx-runtime.mjs +0 -3
  99. data/node_modules/preact/compat/package.json +0 -49
  100. data/node_modules/preact/compat/scheduler.js +0 -15
  101. data/node_modules/preact/compat/scheduler.mjs +0 -23
  102. data/node_modules/preact/compat/server.browser.js +0 -4
  103. data/node_modules/preact/compat/server.js +0 -15
  104. data/node_modules/preact/compat/server.mjs +0 -4
  105. data/node_modules/preact/compat/src/Children.js +0 -21
  106. data/node_modules/preact/compat/src/PureComponent.js +0 -15
  107. data/node_modules/preact/compat/src/forwardRef.js +0 -44
  108. data/node_modules/preact/compat/src/index.d.ts +0 -155
  109. data/node_modules/preact/compat/src/index.js +0 -187
  110. data/node_modules/preact/compat/src/internal.d.ts +0 -47
  111. data/node_modules/preact/compat/src/memo.js +0 -34
  112. data/node_modules/preact/compat/src/portals.js +0 -82
  113. data/node_modules/preact/compat/src/render.js +0 -238
  114. data/node_modules/preact/compat/src/suspense-list.d.ts +0 -14
  115. data/node_modules/preact/compat/src/suspense-list.js +0 -126
  116. data/node_modules/preact/compat/src/suspense.d.ts +0 -15
  117. data/node_modules/preact/compat/src/suspense.js +0 -270
  118. data/node_modules/preact/compat/src/util.js +0 -28
  119. data/node_modules/preact/compat/test-utils.js +0 -1
  120. data/node_modules/preact/debug/LICENSE +0 -21
  121. data/node_modules/preact/debug/dist/debug.js +0 -2
  122. data/node_modules/preact/debug/dist/debug.js.map +0 -1
  123. data/node_modules/preact/debug/dist/debug.mjs +0 -2
  124. data/node_modules/preact/debug/dist/debug.module.js +0 -2
  125. data/node_modules/preact/debug/dist/debug.module.js.map +0 -1
  126. data/node_modules/preact/debug/dist/debug.umd.js +0 -2
  127. data/node_modules/preact/debug/dist/debug.umd.js.map +0 -1
  128. data/node_modules/preact/debug/package.json +0 -26
  129. data/node_modules/preact/debug/src/check-props.js +0 -54
  130. data/node_modules/preact/debug/src/component-stack.js +0 -146
  131. data/node_modules/preact/debug/src/constants.js +0 -3
  132. data/node_modules/preact/debug/src/debug.js +0 -437
  133. data/node_modules/preact/debug/src/index.js +0 -6
  134. data/node_modules/preact/debug/src/internal.d.ts +0 -82
  135. data/node_modules/preact/debug/src/util.js +0 -11
  136. data/node_modules/preact/devtools/LICENSE +0 -21
  137. data/node_modules/preact/devtools/dist/devtools.js +0 -2
  138. data/node_modules/preact/devtools/dist/devtools.js.map +0 -1
  139. data/node_modules/preact/devtools/dist/devtools.mjs +0 -2
  140. data/node_modules/preact/devtools/dist/devtools.module.js +0 -2
  141. data/node_modules/preact/devtools/dist/devtools.module.js.map +0 -1
  142. data/node_modules/preact/devtools/dist/devtools.umd.js +0 -2
  143. data/node_modules/preact/devtools/dist/devtools.umd.js.map +0 -1
  144. data/node_modules/preact/devtools/package.json +0 -25
  145. data/node_modules/preact/devtools/src/devtools.js +0 -10
  146. data/node_modules/preact/devtools/src/index.d.ts +0 -8
  147. data/node_modules/preact/devtools/src/index.js +0 -15
  148. data/node_modules/preact/dist/preact.js +0 -2
  149. data/node_modules/preact/dist/preact.js.map +0 -1
  150. data/node_modules/preact/dist/preact.min.js +0 -2
  151. data/node_modules/preact/dist/preact.min.js.map +0 -1
  152. data/node_modules/preact/dist/preact.mjs +0 -2
  153. data/node_modules/preact/dist/preact.module.js +0 -2
  154. data/node_modules/preact/dist/preact.module.js.map +0 -1
  155. data/node_modules/preact/dist/preact.umd.js +0 -2
  156. data/node_modules/preact/dist/preact.umd.js.map +0 -1
  157. data/node_modules/preact/hooks/LICENSE +0 -21
  158. data/node_modules/preact/hooks/dist/hooks.js +0 -2
  159. data/node_modules/preact/hooks/dist/hooks.js.map +0 -1
  160. data/node_modules/preact/hooks/dist/hooks.mjs +0 -2
  161. data/node_modules/preact/hooks/dist/hooks.module.js +0 -2
  162. data/node_modules/preact/hooks/dist/hooks.module.js.map +0 -1
  163. data/node_modules/preact/hooks/dist/hooks.umd.js +0 -2
  164. data/node_modules/preact/hooks/dist/hooks.umd.js.map +0 -1
  165. data/node_modules/preact/hooks/package.json +0 -35
  166. data/node_modules/preact/hooks/src/index.d.ts +0 -139
  167. data/node_modules/preact/hooks/src/index.js +0 -417
  168. data/node_modules/preact/hooks/src/internal.d.ts +0 -78
  169. data/node_modules/preact/jsx-runtime/LICENSE +0 -21
  170. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.js +0 -2
  171. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.js.map +0 -1
  172. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.mjs +0 -2
  173. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js +0 -2
  174. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js.map +0 -1
  175. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js +0 -2
  176. data/node_modules/preact/jsx-runtime/dist/jsxRuntime.umd.js.map +0 -1
  177. data/node_modules/preact/jsx-runtime/package.json +0 -28
  178. data/node_modules/preact/jsx-runtime/src/index.d.ts +0 -50
  179. data/node_modules/preact/jsx-runtime/src/index.js +0 -77
  180. data/node_modules/preact/package.json +0 -304
  181. data/node_modules/preact/src/cjs.js +0 -3
  182. data/node_modules/preact/src/clone-element.js +0 -34
  183. data/node_modules/preact/src/component.js +0 -225
  184. data/node_modules/preact/src/constants.js +0 -3
  185. data/node_modules/preact/src/create-context.js +0 -68
  186. data/node_modules/preact/src/create-element.js +0 -98
  187. data/node_modules/preact/src/diff/catch-error.js +0 -40
  188. data/node_modules/preact/src/diff/children.js +0 -335
  189. data/node_modules/preact/src/diff/index.js +0 -533
  190. data/node_modules/preact/src/diff/props.js +0 -158
  191. data/node_modules/preact/src/index.d.ts +0 -317
  192. data/node_modules/preact/src/index.js +0 -13
  193. data/node_modules/preact/src/internal.d.ts +0 -155
  194. data/node_modules/preact/src/jsx.d.ts +0 -1013
  195. data/node_modules/preact/src/options.js +0 -16
  196. data/node_modules/preact/src/render.js +0 -75
  197. data/node_modules/preact/src/util.js +0 -27
  198. data/node_modules/preact/test-utils/dist/testUtils.js +0 -2
  199. data/node_modules/preact/test-utils/dist/testUtils.js.map +0 -1
  200. data/node_modules/preact/test-utils/dist/testUtils.mjs +0 -2
  201. data/node_modules/preact/test-utils/dist/testUtils.module.js +0 -2
  202. data/node_modules/preact/test-utils/dist/testUtils.module.js.map +0 -1
  203. data/node_modules/preact/test-utils/dist/testUtils.umd.js +0 -2
  204. data/node_modules/preact/test-utils/dist/testUtils.umd.js.map +0 -1
  205. data/node_modules/preact/test-utils/package.json +0 -28
  206. data/node_modules/preact/test-utils/src/index.d.ts +0 -3
  207. data/node_modules/preact/test-utils/src/index.js +0 -118
  208. data/node_modules/preact-render-to-string/LICENSE +0 -21
  209. data/node_modules/preact-render-to-string/README.md +0 -102
  210. data/node_modules/preact-render-to-string/dist/commonjs.js +0 -2
  211. data/node_modules/preact-render-to-string/dist/commonjs.js.map +0 -1
  212. data/node_modules/preact-render-to-string/dist/index.d.ts +0 -16
  213. data/node_modules/preact-render-to-string/dist/index.js +0 -1
  214. data/node_modules/preact-render-to-string/dist/index.js.map +0 -1
  215. data/node_modules/preact-render-to-string/dist/index.mjs +0 -2
  216. data/node_modules/preact-render-to-string/dist/index.module.js +0 -2
  217. data/node_modules/preact-render-to-string/dist/index.module.js.map +0 -1
  218. data/node_modules/preact-render-to-string/dist/jsx-entry.js +0 -2
  219. data/node_modules/preact-render-to-string/dist/jsx-entry.js.map +0 -1
  220. data/node_modules/preact-render-to-string/dist/jsx.d.ts +0 -13
  221. data/node_modules/preact-render-to-string/dist/jsx.js +0 -1
  222. data/node_modules/preact-render-to-string/dist/jsx.js.map +0 -1
  223. data/node_modules/preact-render-to-string/dist/jsx.mjs +0 -2
  224. data/node_modules/preact-render-to-string/dist/jsx.modern.js +0 -2
  225. data/node_modules/preact-render-to-string/dist/jsx.modern.js.map +0 -1
  226. data/node_modules/preact-render-to-string/dist/jsx.module.js +0 -2
  227. data/node_modules/preact-render-to-string/dist/jsx.module.js.map +0 -1
  228. data/node_modules/preact-render-to-string/dist/preact-render-to-string-tests.d.ts +0 -1
  229. data/node_modules/preact-render-to-string/jsx.js +0 -1
  230. data/node_modules/preact-render-to-string/package.json +0 -142
  231. data/node_modules/preact-render-to-string/src/index.d.ts +0 -16
  232. data/node_modules/preact-render-to-string/src/index.js +0 -462
  233. data/node_modules/preact-render-to-string/src/jsx.d.ts +0 -13
  234. data/node_modules/preact-render-to-string/src/jsx.js +0 -76
  235. data/node_modules/preact-render-to-string/src/polyfills.js +0 -8
  236. data/node_modules/preact-render-to-string/src/preact-render-to-string-tests.d.ts +0 -1
  237. data/node_modules/preact-render-to-string/src/util.js +0 -78
  238. data/node_modules/preact-render-to-string/typings.json +0 -5
  239. data/node_modules/pretty-format/.npmignore +0 -3
  240. data/node_modules/pretty-format/LICENSE.md +0 -15
  241. data/node_modules/pretty-format/README.md +0 -94
  242. data/node_modules/pretty-format/index.js +0 -343
  243. data/node_modules/pretty-format/package.json +0 -26
  244. data/node_modules/pretty-format/plugins/ReactElement.js +0 -74
  245. data/node_modules/pretty-format/plugins/ReactTestComponent.js +0 -58
  246. data/node_modules/pretty-format/printString.js +0 -7
  247. data/node_modules/wouter-preact/cjs/index.js +0 -180
  248. data/node_modules/wouter-preact/cjs/matcher.js +0 -72
  249. data/node_modules/wouter-preact/cjs/package.json +0 -1
  250. data/node_modules/wouter-preact/cjs/react-deps.js +0 -75
  251. data/node_modules/wouter-preact/cjs/static-location.js +0 -21
  252. data/node_modules/wouter-preact/cjs/use-location.js +0 -94
  253. data/node_modules/wouter-preact/index.d.ts +0 -110
  254. data/node_modules/wouter-preact/index.js +0 -178
  255. data/node_modules/wouter-preact/matcher.d.ts +0 -30
  256. data/node_modules/wouter-preact/matcher.js +0 -66
  257. data/node_modules/wouter-preact/package.json +0 -33
  258. data/node_modules/wouter-preact/react-deps.js +0 -15
  259. data/node_modules/wouter-preact/static-location.d.ts +0 -16
  260. data/node_modules/wouter-preact/static-location.js +0 -17
  261. data/node_modules/wouter-preact/use-location.d.ts +0 -43
  262. data/node_modules/wouter-preact/use-location.js +0 -86
  263. data/package.json +0 -8
@@ -1 +0,0 @@
1
- {"version":3,"file":"compat.umd.js","sources":["../src/util.js","../src/PureComponent.js","../src/memo.js","../src/forwardRef.js","../src/Children.js","../src/suspense.js","../src/suspense-list.js","../src/portals.js","../src/render.js","../src/index.js"],"sourcesContent":["/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Check if two objects have a different shape\n * @param {object} a\n * @param {object} b\n * @returns {boolean}\n */\nexport function shallowDiffers(a, b) {\n\tfor (let i in a) if (i !== '__source' && !(i in b)) return true;\n\tfor (let i in b) if (i !== '__source' && a[i] !== b[i]) return true;\n\treturn false;\n}\n\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport function PureComponent(p) {\n\tthis.props = p;\n}\nPureComponent.prototype = new Component();\n// Some third-party libraries check if this property is present\nPureComponent.prototype.isPureReactComponent = true;\nPureComponent.prototype.shouldComponentUpdate = function(props, state) {\n\treturn shallowDiffers(this.props, props) || shallowDiffers(this.state, state);\n};\n","import { createElement } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, props);\n\t}\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\nexport const REACT_FORWARD_SYMBOL =\n\t(typeof Symbol != 'undefined' &&\n\t\tSymbol.for &&\n\t\tSymbol.for('react.forward_ref')) ||\n\t0xf47;\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref || null);\n\t}\n\n\t// mobx-react checks for this being present\n\tForwarded.$$typeof = REACT_FORWARD_SYMBOL;\n\t// mobx-react heavily relies on implementation details.\n\t// It expects an object here with a `render` property,\n\t// and prototype.render will fail. Without this\n\t// mobx-react throws.\n\tForwarded.render = Forwarded;\n\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (children == null) return null;\n\treturn toChildArray(toChildArray(children).map(fn));\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tconst normalized = toChildArray(children);\n\t\tif (normalized.length !== 1) throw 'Children.only';\n\t\treturn normalized[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options, Fragment } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode, errorInfo) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\tif (newVNode._dom == null) {\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t}\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode, errorInfo);\n};\n\nconst oldUnmount = options.unmount;\noptions.unmount = function(vnode) {\n\t/** @type {import('./internal').Component} */\n\tconst component = vnode._component;\n\tif (component && component._onResolve) {\n\t\tcomponent._onResolve();\n\t}\n\n\t// if the component is still hydrating\n\t// most likely it is because the component is suspended\n\t// we set the vnode.type as `null` so that it is not a typeof function\n\t// so the unmount will remove the vnode._dom\n\tif (component && vnode._hydrating === true) {\n\t\tvnode.type = null;\n\t}\n\n\tif (oldUnmount) oldUnmount(vnode);\n};\n\nfunction detachedClone(vnode, detachedParent, parentDom) {\n\tif (vnode) {\n\t\tif (vnode._component && vnode._component.__hooks) {\n\t\t\tvnode._component.__hooks._list.forEach(effect => {\n\t\t\t\tif (typeof effect._cleanup == 'function') effect._cleanup();\n\t\t\t});\n\n\t\t\tvnode._component.__hooks = null;\n\t\t}\n\n\t\tvnode = assign({}, vnode);\n\t\tif (vnode._component != null) {\n\t\t\tif (vnode._component._parentDom === parentDom) {\n\t\t\t\tvnode._component._parentDom = detachedParent;\n\t\t\t}\n\t\t\tvnode._component = null;\n\t\t}\n\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tdetachedClone(child, detachedParent, parentDom)\n\t\t\t);\n\t}\n\n\treturn vnode;\n}\n\nfunction removeOriginal(vnode, detachedParent, originalParent) {\n\tif (vnode) {\n\t\tvnode._original = null;\n\t\tvnode._children =\n\t\t\tvnode._children &&\n\t\t\tvnode._children.map(child =>\n\t\t\t\tremoveOriginal(child, detachedParent, originalParent)\n\t\t\t);\n\n\t\tif (vnode._component) {\n\t\t\tif (vnode._component._parentDom === detachedParent) {\n\t\t\t\tif (vnode._dom) {\n\t\t\t\t\toriginalParent.insertBefore(vnode._dom, vnode._nextDom);\n\t\t\t\t}\n\t\t\t\tvnode._component._force = true;\n\t\t\t\tvnode._component._parentDom = originalParent;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {Promise} promise The thrown promise\n * @param {import('./internal').VNode<any, any>} suspendingVNode The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingVNode) {\n\tconst suspendingComponent = suspendingVNode._component;\n\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\t\tsuspendingComponent._onResolve = null;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._onResolve = onResolved;\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\t// If the suspension was during hydration we don't need to restore the\n\t\t\t// suspended children into the _children array\n\t\t\tif (c.state._suspended) {\n\t\t\t\tconst suspendedVNode = c.state._suspended;\n\t\t\t\tc._vnode._children[0] = removeOriginal(\n\t\t\t\t\tsuspendedVNode,\n\t\t\t\t\tsuspendedVNode._component._parentDom,\n\t\t\t\t\tsuspendedVNode._component._originalParentDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\t/**\n\t * We do not set `suspended: true` during hydration because we want the actual markup\n\t * to remain on screen and hydrate it when the suspense actually gets resolved.\n\t * While in non-hydration cases the usual fallback -> component flow would occour.\n\t */\n\tconst wasHydrating = suspendingVNode._hydrating === true;\n\tif (!c._pendingSuspensionCount++ && !wasHydrating) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.componentWillUnmount = function() {\n\tthis._suspenders = [];\n};\n\n/**\n * @this {import('./internal').SuspenseComponent}\n * @param {import('./internal').SuspenseComponent[\"props\"]} props\n * @param {import('./internal').SuspenseState} state\n */\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\t// When the Suspense's _vnode was created by a call to createVNode\n\t\t// (i.e. due to a setState further up in the tree)\n\t\t// it's _children prop is null, in this case we \"forget\" about the parked vnodes to detach\n\t\tif (this._vnode._children) {\n\t\t\tconst detachedParent = document.createElement('div');\n\t\t\tconst detachedComponent = this._vnode._children[0]._component;\n\t\t\tthis._vnode._children[0] = detachedClone(\n\t\t\t\tthis._detachOnNextRender,\n\t\t\t\tdetachedParent,\n\t\t\t\t(detachedComponent._originalParentDom = detachedComponent._parentDom)\n\t\t\t);\n\t\t}\n\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\t// Wrap fallback tree in a VNode that prevents itself from being marked as aborting mid-hydration:\n\t/** @type {import('./internal').VNode} */\n\tconst fallback =\n\t\tstate._suspended && createElement(Fragment, null, props.fallback);\n\tif (fallback) fallback._hydrating = null;\n\n\treturn [\n\t\tcreateElement(Fragment, null, state._suspended ? null : props.children),\n\t\tfallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('./internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\t/** @type {import('./internal').Component} */\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tthis._map.forEach((node, child) => {\n\t\tresolve(this, child, node);\n\t});\n};\n","import { createElement, render } from 'preact';\n\n/**\n * @param {import('../../src/index').RenderableProps<{ context: any }>} props\n */\nfunction ContextProvider(props) {\n\tthis.getChildContext = () => props.context;\n\treturn props.children;\n}\n\n/**\n * Portal component\n * @this {import('./internal').Component}\n * @param {object | null | undefined} props\n *\n * TODO: use createRoot() instead of fake root\n */\nfunction Portal(props) {\n\tconst _this = this;\n\tlet container = props._container;\n\n\t_this.componentWillUnmount = function() {\n\t\trender(null, _this._temp);\n\t\t_this._temp = null;\n\t\t_this._container = null;\n\t};\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\t_this.componentWillUnmount();\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props._vnode) {\n\t\tif (!_this._temp) {\n\t\t\t_this._container = container;\n\n\t\t\t// Create a fake DOM parent node that manages a subset of `container`'s children:\n\t\t\t_this._temp = {\n\t\t\t\tnodeType: 1,\n\t\t\t\tparentNode: container,\n\t\t\t\tchildNodes: [],\n\t\t\t\tappendChild(child) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tinsertBefore(child, before) {\n\t\t\t\t\tthis.childNodes.push(child);\n\t\t\t\t\t_this._container.appendChild(child);\n\t\t\t\t},\n\t\t\t\tremoveChild(child) {\n\t\t\t\t\tthis.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);\n\t\t\t\t\t_this._container.removeChild(child);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\t// Render our wrapping element into temp.\n\t\trender(\n\t\t\tcreateElement(ContextProvider, { context: _this.context }, props._vnode),\n\t\t\t_this._temp\n\t\t);\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._temp) {\n\t\t_this.componentWillUnmount();\n\t}\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\tconst el = createElement(Portal, { _vnode: vnode, _container: container });\n\tel.containerInfo = container;\n\treturn el;\n}\n","import {\n\trender as preactRender,\n\thydrate as preactHydrate,\n\toptions,\n\ttoChildArray,\n\tComponent\n} from 'preact';\n\nexport const REACT_ELEMENT_TYPE =\n\t(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||\n\t0xeac7;\n\nconst CAMEL_PROPS = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|shape|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;\n\nconst IS_DOM = typeof document !== 'undefined';\n\n// Input types for which onchange should not be converted to oninput.\n// type=\"file|checkbox|radio\", plus \"range\" in IE11.\n// (IE11 doesn't support Symbol, which we use here to turn `rad` into `ra` which matches \"range\")\nconst onChangeInputType = type =>\n\t(typeof Symbol != 'undefined' && typeof Symbol() == 'symbol'\n\t\t? /fil|che|rad/i\n\t\t: /fil|che|ra/i\n\t).test(type);\n\n// Some libraries like `react-virtualized` explicitly check for this.\nComponent.prototype.isReactComponent = {};\n\n// `UNSAFE_*` lifecycle hooks\n// Preact only ever invokes the unprefixed methods.\n// Here we provide a base \"fallback\" implementation that calls any defined UNSAFE_ prefixed method.\n// - If a component defines its own `componentDidMount()` (including via defineProperty), use that.\n// - If a component defines `UNSAFE_componentDidMount()`, `componentDidMount` is the alias getter/setter.\n// - If anything assigns to an `UNSAFE_*` property, the assignment is forwarded to the unprefixed property.\n// See https://github.com/preactjs/preact/issues/1941\n[\n\t'componentWillMount',\n\t'componentWillReceiveProps',\n\t'componentWillUpdate'\n].forEach(key => {\n\tObject.defineProperty(Component.prototype, key, {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn this['UNSAFE_' + key];\n\t\t},\n\t\tset(v) {\n\t\t\tObject.defineProperty(this, key, {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: v\n\t\t\t});\n\t\t}\n\t});\n});\n\n/**\n * Proxy render() since React returns a Component reference.\n * @param {import('./internal').VNode} vnode VNode tree to render\n * @param {import('./internal').PreactElement} parent DOM node to render vnode tree into\n * @param {() => void} [callback] Optional callback that will be called after rendering\n * @returns {import('./internal').Component | null} The root component reference or null\n */\nexport function render(vnode, parent, callback) {\n\t// React destroys any existing DOM nodes, see #1727\n\t// ...but only on the first render, see #1828\n\tif (parent._children == null) {\n\t\tparent.textContent = '';\n\t}\n\n\tpreactRender(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nexport function hydrate(vnode, parent, callback) {\n\tpreactHydrate(vnode, parent);\n\tif (typeof callback == 'function') callback();\n\n\treturn vnode ? vnode._component : null;\n}\n\nlet oldEventHook = options.event;\noptions.event = e => {\n\tif (oldEventHook) e = oldEventHook(e);\n\te.persist = empty;\n\te.isPropagationStopped = isPropagationStopped;\n\te.isDefaultPrevented = isDefaultPrevented;\n\treturn (e.nativeEvent = e);\n};\n\nfunction empty() {}\n\nfunction isPropagationStopped() {\n\treturn this.cancelBubble;\n}\n\nfunction isDefaultPrevented() {\n\treturn this.defaultPrevented;\n}\n\nlet classNameDescriptor = {\n\tconfigurable: true,\n\tget() {\n\t\treturn this.class;\n\t}\n};\n\nlet oldVNodeHook = options.vnode;\noptions.vnode = vnode => {\n\tlet type = vnode.type;\n\tlet props = vnode.props;\n\tlet normalizedProps = props;\n\n\t// only normalize props on Element nodes\n\tif (typeof type === 'string') {\n\t\tconst nonCustomElement = type.indexOf('-') === -1;\n\t\tnormalizedProps = {};\n\n\t\tfor (let i in props) {\n\t\t\tlet value = props[i];\n\n\t\t\tif (IS_DOM && i === 'children' && type === 'noscript') {\n\t\t\t\t// Emulate React's behavior of not rendering the contents of noscript tags on the client.\n\t\t\t\tcontinue;\n\t\t\t} else if (i === 'value' && 'defaultValue' in props && value == null) {\n\t\t\t\t// Skip applying value if it is null/undefined and we already set\n\t\t\t\t// a default value\n\t\t\t\tcontinue;\n\t\t\t} else if (\n\t\t\t\ti === 'defaultValue' &&\n\t\t\t\t'value' in props &&\n\t\t\t\tprops.value == null\n\t\t\t) {\n\t\t\t\t// `defaultValue` is treated as a fallback `value` when a value prop is present but null/undefined.\n\t\t\t\t// `defaultValue` for Elements with no value prop is the same as the DOM defaultValue property.\n\t\t\t\ti = 'value';\n\t\t\t} else if (i === 'download' && value === true) {\n\t\t\t\t// Calling `setAttribute` with a truthy value will lead to it being\n\t\t\t\t// passed as a stringified value, e.g. `download=\"true\"`. React\n\t\t\t\t// converts it to an empty string instead, otherwise the attribute\n\t\t\t\t// value will be used as the file name and the file will be called\n\t\t\t\t// \"true\" upon downloading it.\n\t\t\t\tvalue = '';\n\t\t\t} else if (/ondoubleclick/i.test(i)) {\n\t\t\t\ti = 'ondblclick';\n\t\t\t} else if (\n\t\t\t\t/^onchange(textarea|input)/i.test(i + type) &&\n\t\t\t\t!onChangeInputType(props.type)\n\t\t\t) {\n\t\t\t\ti = 'oninput';\n\t\t\t} else if (/^onfocus$/i.test(i)) {\n\t\t\t\ti = 'onfocusin';\n\t\t\t} else if (/^onblur$/i.test(i)) {\n\t\t\t\ti = 'onfocusout';\n\t\t\t} else if (/^on(Ani|Tra|Tou|BeforeInp|Compo)/.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t} else if (nonCustomElement && CAMEL_PROPS.test(i)) {\n\t\t\t\ti = i.replace(/[A-Z0-9]/, '-$&').toLowerCase();\n\t\t\t} else if (value === null) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\n\t\t\t// Add support for onInput and onChange, see #3561\n\t\t\t// if we have an oninput prop already change it to oninputCapture\n\t\t\tif (/^oninput$/i.test(i)) {\n\t\t\t\ti = i.toLowerCase();\n\t\t\t\tif (normalizedProps[i]) {\n\t\t\t\t\ti = 'oninputCapture';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnormalizedProps[i] = value;\n\t\t}\n\n\t\t// Add support for array select values: <select multiple value={[]} />\n\t\tif (\n\t\t\ttype == 'select' &&\n\t\t\tnormalizedProps.multiple &&\n\t\t\tArray.isArray(normalizedProps.value)\n\t\t) {\n\t\t\t// forEach() always returns undefined, which we abuse here to unset the value prop.\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tchild.props.selected =\n\t\t\t\t\tnormalizedProps.value.indexOf(child.props.value) != -1;\n\t\t\t});\n\t\t}\n\n\t\t// Adding support for defaultValue in select tag\n\t\tif (type == 'select' && normalizedProps.defaultValue != null) {\n\t\t\tnormalizedProps.value = toChildArray(props.children).forEach(child => {\n\t\t\t\tif (normalizedProps.multiple) {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue.indexOf(child.props.value) != -1;\n\t\t\t\t} else {\n\t\t\t\t\tchild.props.selected =\n\t\t\t\t\t\tnormalizedProps.defaultValue == child.props.value;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tvnode.props = normalizedProps;\n\n\t\tif (props.class != props.className) {\n\t\t\tclassNameDescriptor.enumerable = 'className' in props;\n\t\t\tif (props.className != null) normalizedProps.class = props.className;\n\t\t\tObject.defineProperty(normalizedProps, 'className', classNameDescriptor);\n\t\t}\n\t}\n\n\tvnode.$$typeof = REACT_ELEMENT_TYPE;\n\n\tif (oldVNodeHook) oldVNodeHook(vnode);\n};\n\n// Only needed for react-relay\nlet currentComponent;\nconst oldBeforeRender = options._render;\noptions._render = function(vnode) {\n\tif (oldBeforeRender) {\n\t\toldBeforeRender(vnode);\n\t}\n\tcurrentComponent = vnode._component;\n};\n\n// This is a very very private internal function for React it\n// is used to sort-of do runtime dependency injection. So far\n// only `react-relay` makes use of it. It uses it to read the\n// context value.\nexport const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {\n\tReactCurrentDispatcher: {\n\t\tcurrent: {\n\t\t\treadContext(context) {\n\t\t\t\treturn currentComponent._globalContext[context._id].props.value;\n\t\t\t}\n\t\t}\n\t}\n};\n","import {\n\tcreateElement,\n\trender as preactRender,\n\tcloneElement as preactCloneElement,\n\tcreateRef,\n\tComponent,\n\tcreateContext,\n\tFragment\n} from 'preact';\nimport {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue\n} from 'preact/hooks';\nimport { PureComponent } from './PureComponent';\nimport { memo } from './memo';\nimport { forwardRef } from './forwardRef';\nimport { Children } from './Children';\nimport { Suspense, lazy } from './suspense';\nimport { SuspenseList } from './suspense-list';\nimport { createPortal } from './portals';\nimport {\n\thydrate,\n\trender,\n\tREACT_ELEMENT_TYPE,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n} from './render';\n\nconst version = '17.0.2'; // trick libraries to think we are react\n\n/**\n * Legacy version of createElement.\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component constructor\n */\nfunction createFactory(type) {\n\treturn createElement.bind(null, type);\n}\n\n/**\n * Check if the passed element is a valid (p)react node.\n * @param {*} element The element to check\n * @returns {boolean}\n */\nfunction isValidElement(element) {\n\treturn !!element && element.$$typeof === REACT_ELEMENT_TYPE;\n}\n\n/**\n * Wrap `cloneElement` to abort if the passed element is not a valid element and apply\n * all vnode normalizations.\n * @param {import('./internal').VNode} element The vnode to clone\n * @param {object} props Props to add when cloning\n * @param {Array<import('./internal').ComponentChildren>} rest Optional component children\n */\nfunction cloneElement(element) {\n\tif (!isValidElement(element)) return element;\n\treturn preactCloneElement.apply(null, arguments);\n}\n\n/**\n * Remove a component tree from the DOM, including state and event handlers.\n * @param {import('./internal').PreactElement} container\n * @returns {boolean}\n */\nfunction unmountComponentAtNode(container) {\n\tif (container._children) {\n\t\tpreactRender(null, container);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n/**\n * Get the matching DOM node for a component\n * @param {import('./internal').Component} component\n * @returns {import('./internal').PreactElement | null}\n */\nfunction findDOMNode(component) {\n\treturn (\n\t\t(component &&\n\t\t\t(component.base || (component.nodeType === 1 && component))) ||\n\t\tnull\n\t);\n}\n\n/**\n * Deprecated way to control batched rendering inside the reconciler, but we\n * already schedule in batches inside our rendering code\n * @template Arg\n * @param {(arg: Arg) => void} callback function that triggers the updated\n * @param {Arg} [arg] Optional argument that can be passed to the callback\n */\n// eslint-disable-next-line camelcase\nconst unstable_batchedUpdates = (callback, arg) => callback(arg);\n\n/**\n * In React, `flushSync` flushes the entire tree and forces a rerender. It's\n * implmented here as a no-op.\n * @template Arg\n * @template Result\n * @param {(arg: Arg) => Result} callback function that runs before the flush\n * @param {Arg} [arg] Optional arugment that can be passed to the callback\n * @returns\n */\nconst flushSync = (callback, arg) => callback(arg);\n\n/**\n * Strict Mode is not implemented in Preact, so we provide a stand-in for it\n * that just renders its children without imposing any restrictions.\n */\nconst StrictMode = Fragment;\n\nexport * from 'preact/hooks';\nexport {\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\t// eslint-disable-next-line camelcase\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n\n// React copies the named exports to the default one.\nexport default {\n\tuseState,\n\tuseReducer,\n\tuseEffect,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseImperativeHandle,\n\tuseMemo,\n\tuseCallback,\n\tuseContext,\n\tuseDebugValue,\n\tversion,\n\tChildren,\n\trender,\n\thydrate,\n\tunmountComponentAtNode,\n\tcreatePortal,\n\tcreateElement,\n\tcreateContext,\n\tcreateFactory,\n\tcloneElement,\n\tcreateRef,\n\tFragment,\n\tisValidElement,\n\tfindDOMNode,\n\tComponent,\n\tPureComponent,\n\tmemo,\n\tforwardRef,\n\tflushSync,\n\tunstable_batchedUpdates,\n\tStrictMode,\n\tSuspense,\n\tSuspenseList,\n\tlazy,\n\t__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED\n};\n"],"names":["assign","obj","props","i","shallowDiffers","a","b","PureComponent","p","memo","c","comparer","shouldUpdate","nextProps","ref","this","updateRef","call","current","Memoed","shouldComponentUpdate","createElement","displayName","name","prototype","isReactComponent","Component","isPureReactComponent","state","oldDiffHook","options","vnode","type","REACT_FORWARD_SYMBOL","Symbol","for","forwardRef","fn","Forwarded","clone","$$typeof","render","mapFn","children","toChildArray","map","Children","forEach","count","length","only","normalized","toArray","oldCatchError","error","newVNode","oldVNode","errorInfo","then","component","oldUnmount","unmount","Suspense","_suspenders","suspended","lazy","loader","prom","Lazy","exports","default","e","SuspenseList","_next","_map","promise","suspendingVNode","suspendingComponent","push","resolve","resolved","onResolved","onSuspensionComplete","suspendedVNode","removeOriginal","detachedParent","originalParent","child","insertBefore","setState","pop","forceUpdate","wasHydrating","componentWillUnmount","document","detachedComponent","detachedClone","parentDom","effect","fallback","Fragment","list","node","delete","revealOrder","size","ContextProvider","getChildContext","context","Portal","_this","container","_container","_temp","nodeType","parentNode","childNodes","appendChild","before","removeChild","splice","indexOf","createPortal","el","containerInfo","delegated","get","unsuspend","wrappedUnsuspend","Map","reverse","set","componentDidUpdate","componentDidMount","REACT_ELEMENT_TYPE","CAMEL_PROPS","IS_DOM","onChangeInputType","test","parent","callback","textContent","preactRender","hydrate","preactHydrate","key","Object","defineProperty","configurable","v","writable","value","oldEventHook","event","empty","isPropagationStopped","cancelBubble","isDefaultPrevented","defaultPrevented","persist","nativeEvent","currentComponent","classNameDescriptor","class","oldVNodeHook","normalizedProps","nonCustomElement","toLowerCase","replace","undefined","multiple","Array","isArray","selected","defaultValue","className","enumerable","oldBeforeRender","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentDispatcher","readContext","createFactory","bind","isValidElement","element","cloneElement","preactCloneElement","apply","arguments","unmountComponentAtNode","findDOMNode","base","unstable_batchedUpdates","arg","flushSync","StrictMode","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","version","createContext","createRef"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- require('preact/compat');
2
-
3
- module.exports = require('preact/jsx-runtime');
@@ -1,3 +0,0 @@
1
- import 'preact/compat';
2
-
3
- export * from 'preact/jsx-runtime';
@@ -1,3 +0,0 @@
1
- require('preact/compat');
2
-
3
- module.exports = require('preact/jsx-runtime');
@@ -1,3 +0,0 @@
1
- import 'preact/compat';
2
-
3
- export * from 'preact/jsx-runtime';
@@ -1,49 +0,0 @@
1
- {
2
- "name": "preact-compat",
3
- "amdName": "preactCompat",
4
- "version": "4.0.0",
5
- "private": true,
6
- "description": "A React compatibility layer for Preact",
7
- "main": "dist/compat.js",
8
- "module": "dist/compat.module.js",
9
- "umd:main": "dist/compat.umd.js",
10
- "source": "src/index.js",
11
- "types": "src/index.d.ts",
12
- "license": "MIT",
13
- "mangle": {
14
- "regex": "^_"
15
- },
16
- "peerDependencies": {
17
- "preact": "^10.0.0"
18
- },
19
- "exports": {
20
- ".": {
21
- "types": "./src/index.d.ts",
22
- "browser": "./dist/compat.module.js",
23
- "umd": "./dist/compat.umd.js",
24
- "import": "./dist/compat.mjs",
25
- "require": "./dist/compat.js"
26
- },
27
- "./client": {
28
- "import": "./client.mjs",
29
- "require": "./client.js"
30
- },
31
- "./server": {
32
- "browser": "./server.browser.js",
33
- "import": "./server.mjs",
34
- "require": "./server.js"
35
- },
36
- "./jsx-runtime": {
37
- "import": "./jsx-runtime.mjs",
38
- "require": "./jsx-runtime.js"
39
- },
40
- "./jsx-dev-runtime": {
41
- "import": "./jsx-dev-runtime.mjs",
42
- "require": "./jsx-dev-runtime.js"
43
- },
44
- "./scheduler": {
45
- "import": "./scheduler.mjs",
46
- "require": "./scheduler.js"
47
- }
48
- }
49
- }
@@ -1,15 +0,0 @@
1
- // see scheduler.mjs
2
-
3
- function unstable_runWithPriority(priority, callback) {
4
- return callback();
5
- }
6
-
7
- module.exports = {
8
- unstable_ImmediatePriority: 1,
9
- unstable_UserBlockingPriority: 2,
10
- unstable_NormalPriority: 3,
11
- unstable_LowPriority: 4,
12
- unstable_IdlePriority: 5,
13
- unstable_runWithPriority,
14
- unstable_now: performance.now.bind(performance)
15
- };
@@ -1,23 +0,0 @@
1
- /* eslint-disable */
2
-
3
- // This file includes experimental React APIs exported from the "scheduler"
4
- // npm package. Despite being explicitely marked as unstable some libraries
5
- // already make use of them. This file is not a full replacement for the
6
- // scheduler package, but includes the necessary shims to make those libraries
7
- // work with Preact.
8
-
9
- export var unstable_ImmediatePriority = 1;
10
- export var unstable_UserBlockingPriority = 2;
11
- export var unstable_NormalPriority = 3;
12
- export var unstable_LowPriority = 4;
13
- export var unstable_IdlePriority = 5;
14
-
15
- /**
16
- * @param {number} priority
17
- * @param {() => void} callback
18
- */
19
- export function unstable_runWithPriority(priority, callback) {
20
- return callback();
21
- }
22
-
23
- export var unstable_now = performance.now.bind(performance);
@@ -1,4 +0,0 @@
1
- export {
2
- renderToString,
3
- renderToString as renderToStaticMarkup
4
- } from 'preact-render-to-string';
@@ -1,15 +0,0 @@
1
- /* eslint-disable */
2
- var renderToString;
3
- try {
4
- const mod = require('preact-render-to-string');
5
- renderToString = mod.default || mod.renderToString || mod;
6
- } catch (e) {
7
- throw Error(
8
- 'renderToString() error: missing "preact-render-to-string" dependency.'
9
- );
10
- }
11
-
12
- module.exports = {
13
- renderToString: renderToString,
14
- renderToStaticMarkup: renderToString
15
- };
@@ -1,4 +0,0 @@
1
- export {
2
- renderToString,
3
- renderToString as renderToStaticMarkup
4
- } from 'preact-render-to-string';
@@ -1,21 +0,0 @@
1
- import { toChildArray } from 'preact';
2
-
3
- const mapFn = (children, fn) => {
4
- if (children == null) return null;
5
- return toChildArray(toChildArray(children).map(fn));
6
- };
7
-
8
- // This API is completely unnecessary for Preact, so it's basically passthrough.
9
- export const Children = {
10
- map: mapFn,
11
- forEach: mapFn,
12
- count(children) {
13
- return children ? toChildArray(children).length : 0;
14
- },
15
- only(children) {
16
- const normalized = toChildArray(children);
17
- if (normalized.length !== 1) throw 'Children.only';
18
- return normalized[0];
19
- },
20
- toArray: toChildArray
21
- };
@@ -1,15 +0,0 @@
1
- import { Component } from 'preact';
2
- import { shallowDiffers } from './util';
3
-
4
- /**
5
- * Component class with a predefined `shouldComponentUpdate` implementation
6
- */
7
- export function PureComponent(p) {
8
- this.props = p;
9
- }
10
- PureComponent.prototype = new Component();
11
- // Some third-party libraries check if this property is present
12
- PureComponent.prototype.isPureReactComponent = true;
13
- PureComponent.prototype.shouldComponentUpdate = function(props, state) {
14
- return shallowDiffers(this.props, props) || shallowDiffers(this.state, state);
15
- };
@@ -1,44 +0,0 @@
1
- import { options } from 'preact';
2
- import { assign } from './util';
3
-
4
- let oldDiffHook = options._diff;
5
- options._diff = vnode => {
6
- if (vnode.type && vnode.type._forwarded && vnode.ref) {
7
- vnode.props.ref = vnode.ref;
8
- vnode.ref = null;
9
- }
10
- if (oldDiffHook) oldDiffHook(vnode);
11
- };
12
-
13
- export const REACT_FORWARD_SYMBOL =
14
- (typeof Symbol != 'undefined' &&
15
- Symbol.for &&
16
- Symbol.for('react.forward_ref')) ||
17
- 0xf47;
18
-
19
- /**
20
- * Pass ref down to a child. This is mainly used in libraries with HOCs that
21
- * wrap components. Using `forwardRef` there is an easy way to get a reference
22
- * of the wrapped component instead of one of the wrapper itself.
23
- * @param {import('./index').ForwardFn} fn
24
- * @returns {import('./internal').FunctionComponent}
25
- */
26
- export function forwardRef(fn) {
27
- function Forwarded(props) {
28
- let clone = assign({}, props);
29
- delete clone.ref;
30
- return fn(clone, props.ref || null);
31
- }
32
-
33
- // mobx-react checks for this being present
34
- Forwarded.$$typeof = REACT_FORWARD_SYMBOL;
35
- // mobx-react heavily relies on implementation details.
36
- // It expects an object here with a `render` property,
37
- // and prototype.render will fail. Without this
38
- // mobx-react throws.
39
- Forwarded.render = Forwarded;
40
-
41
- Forwarded.prototype.isReactComponent = Forwarded._forwarded = true;
42
- Forwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';
43
- return Forwarded;
44
- }
@@ -1,155 +0,0 @@
1
- import * as _hooks from '../../hooks';
2
- import * as preact from '../../src';
3
- import { JSXInternal } from '../../src/jsx';
4
- import * as _Suspense from './suspense';
5
- import * as _SuspenseList from './suspense-list';
6
-
7
- // export default React;
8
- export = React;
9
- export as namespace React;
10
- declare namespace React {
11
- // Export JSX
12
- export import JSX = JSXInternal;
13
-
14
- // Hooks
15
- export import CreateHandle = _hooks.CreateHandle;
16
- export import EffectCallback = _hooks.EffectCallback;
17
- export import Inputs = _hooks.Inputs;
18
- export import PropRef = _hooks.PropRef;
19
- export import Reducer = _hooks.Reducer;
20
- export import Ref = _hooks.Ref;
21
- export import StateUpdater = _hooks.StateUpdater;
22
- export import useCallback = _hooks.useCallback;
23
- export import useContext = _hooks.useContext;
24
- export import useDebugValue = _hooks.useDebugValue;
25
- export import useEffect = _hooks.useEffect;
26
- export import useImperativeHandle = _hooks.useImperativeHandle;
27
- export import useLayoutEffect = _hooks.useLayoutEffect;
28
- export import useMemo = _hooks.useMemo;
29
- export import useReducer = _hooks.useReducer;
30
- export import useRef = _hooks.useRef;
31
- export import useState = _hooks.useState;
32
-
33
- // Preact Defaults
34
- export import ContextType = preact.ContextType;
35
- export import RefObject = preact.RefObject;
36
- export import Component = preact.Component;
37
- export import FunctionComponent = preact.FunctionComponent;
38
- export import FC = preact.FunctionComponent;
39
- export import createContext = preact.createContext;
40
- export import createRef = preact.createRef;
41
- export import Fragment = preact.Fragment;
42
- export import createElement = preact.createElement;
43
- export import cloneElement = preact.cloneElement;
44
- export import ComponentProps = preact.ComponentProps;
45
-
46
- // Suspense
47
- export import Suspense = _Suspense.Suspense;
48
- export import lazy = _Suspense.lazy;
49
- export import SuspenseList = _SuspenseList.SuspenseList;
50
-
51
- // Compat
52
- export import StrictMode = preact.Fragment;
53
- export const version: string;
54
-
55
- // HTML
56
- export import HTMLAttributes = JSXInternal.HTMLAttributes;
57
- export import DetailedHTMLProps = JSXInternal.DetailedHTMLProps;
58
- export import CSSProperties = JSXInternal.CSSProperties;
59
-
60
- // Events
61
- export import TargetedEvent = JSXInternal.TargetedEvent;
62
- export import ChangeEvent = JSXInternal.TargetedEvent;
63
- export import ChangeEventHandler = JSXInternal.GenericEventHandler;
64
-
65
- export function createPortal(
66
- vnode: preact.VNode,
67
- container: Element
68
- ): preact.VNode<any>;
69
-
70
- export function render(
71
- vnode: preact.VNode<any>,
72
- parent: Element,
73
- callback?: () => void
74
- ): Component | null;
75
-
76
- export function hydrate(
77
- vnode: preact.VNode<any>,
78
- parent: Element,
79
- callback?: () => void
80
- ): Component | null;
81
-
82
- export function unmountComponentAtNode(
83
- container: Element | Document | ShadowRoot | DocumentFragment
84
- ): boolean;
85
-
86
- export function createFactory(
87
- type: preact.VNode<any>['type']
88
- ): (
89
- props?: any,
90
- ...children: preact.ComponentChildren[]
91
- ) => preact.VNode<any>;
92
- export function isValidElement(element: any): boolean;
93
- export function findDOMNode(
94
- component: preact.Component | Element
95
- ): Element | null;
96
-
97
- export abstract class PureComponent<P = {}, S = {}> extends preact.Component<
98
- P,
99
- S
100
- > {
101
- isPureReactComponent: boolean;
102
- }
103
-
104
- export function memo<P = {}>(
105
- component: preact.FunctionalComponent<P>,
106
- comparer?: (prev: P, next: P) => boolean
107
- ): preact.FunctionComponent<P>;
108
- export function memo<C extends preact.FunctionalComponent<any>>(
109
- component: C,
110
- comparer?: (
111
- prev: preact.ComponentProps<C>,
112
- next: preact.ComponentProps<C>
113
- ) => boolean
114
- ): C;
115
-
116
- export interface ForwardFn<P = {}, T = any> {
117
- (props: P, ref: Ref<T>): preact.ComponentChild;
118
- displayName?: string;
119
- }
120
-
121
- export function forwardRef<R, P = {}>(
122
- fn: ForwardFn<P, R>
123
- ): preact.FunctionalComponent<Omit<P, 'ref'> & { ref?: preact.Ref<R> }>;
124
-
125
- export function unstable_batchedUpdates(
126
- callback: (arg?: any) => void,
127
- arg?: any
128
- ): void;
129
-
130
- export const Children: {
131
- map<T extends preact.ComponentChild, R>(
132
- children: T | T[],
133
- fn: (child: T, i: number) => R
134
- ): R[];
135
- forEach<T extends preact.ComponentChild>(
136
- children: T | T[],
137
- fn: (child: T, i: number) => void
138
- ): void;
139
- count: (children: preact.ComponentChildren) => number;
140
- only: (children: preact.ComponentChildren) => preact.ComponentChild;
141
- toArray: (children: preact.ComponentChildren) => preact.VNode<{}>[];
142
- };
143
-
144
- // scheduler
145
- export const unstable_ImmediatePriority: number;
146
- export const unstable_UserBlockingPriority: number;
147
- export const unstable_NormalPriority: number;
148
- export const unstable_LowPriority: number;
149
- export const unstable_IdlePriority: number;
150
- export function unstable_runWithPriority(
151
- priority: number,
152
- callback: () => void
153
- ): void;
154
- export const unstable_now: () => number;
155
- }