sygnal 5.3.7 → 6.0.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 (438) hide show
  1. package/CHANGELOG.md +646 -0
  2. package/README.md +77 -47
  3. package/dist/astro/client.cjs.js +33 -8114
  4. package/dist/astro/client.cjs.js.map +1 -0
  5. package/dist/astro/client.mjs +33 -8114
  6. package/dist/astro/client.mjs.map +1 -0
  7. package/dist/astro/index.cjs.js +1039 -9
  8. package/dist/astro/index.cjs.js.map +1 -0
  9. package/dist/astro/index.mjs +1038 -9
  10. package/dist/astro/index.mjs.map +1 -0
  11. package/dist/astro/server.cjs.js +3400 -166
  12. package/dist/astro/server.cjs.js.map +1 -0
  13. package/dist/astro/server.mjs +3400 -166
  14. package/dist/astro/server.mjs.map +1 -0
  15. package/dist/devtools.cjs.js +1431 -0
  16. package/dist/devtools.cjs.js.map +1 -0
  17. package/dist/devtools.esm.js +1419 -0
  18. package/dist/devtools.esm.js.map +1 -0
  19. package/dist/diagnostics.cjs.js +4033 -0
  20. package/dist/diagnostics.cjs.js.map +1 -0
  21. package/dist/diagnostics.esm.js +4003 -0
  22. package/dist/diagnostics.esm.js.map +1 -0
  23. package/dist/element.cjs.js +230 -0
  24. package/dist/element.cjs.js.map +1 -0
  25. package/dist/element.esm.js +228 -0
  26. package/dist/element.esm.js.map +1 -0
  27. package/dist/guide/accessibility.md +257 -0
  28. package/dist/guide/adapters.md +221 -0
  29. package/dist/guide/behaviors.md +312 -0
  30. package/dist/guide/browser-sources.md +203 -0
  31. package/dist/guide/drag-and-drop.md +342 -0
  32. package/dist/guide/element-commands.md +306 -0
  33. package/dist/guide/error-boundaries.md +169 -0
  34. package/dist/guide/forms-reference.md +381 -0
  35. package/dist/guide/forms.md +250 -0
  36. package/dist/guide/http.md +299 -0
  37. package/dist/guide/inputs.md +173 -0
  38. package/dist/guide/persistence.md +245 -0
  39. package/dist/guide/recipes/carousel.md +155 -0
  40. package/dist/guide/recipes/charts.md +177 -0
  41. package/dist/guide/recipes/code-editor.md +135 -0
  42. package/dist/guide/recipes/data-grid.md +155 -0
  43. package/dist/guide/recipes/data-table.md +196 -0
  44. package/dist/guide/recipes/i18n.md +222 -0
  45. package/dist/guide/recipes/icons.md +115 -0
  46. package/dist/guide/recipes/overview.md +33 -0
  47. package/dist/guide/recipes/rich-text.md +154 -0
  48. package/dist/guide/resources.md +471 -0
  49. package/dist/guide/ssr.md +255 -0
  50. package/dist/guide/timers.md +178 -0
  51. package/dist/guide/ui/accordion.md +93 -0
  52. package/dist/guide/ui/combobox.md +144 -0
  53. package/dist/guide/ui/dialog.md +124 -0
  54. package/dist/guide/ui/disclosure.md +60 -0
  55. package/dist/guide/ui/menu.md +125 -0
  56. package/dist/guide/ui/overview.md +166 -0
  57. package/dist/guide/ui/popover.md +101 -0
  58. package/dist/guide/ui/select.md +114 -0
  59. package/dist/guide/ui/tabs.md +161 -0
  60. package/dist/guide/ui/toaster.md +152 -0
  61. package/dist/guide/ui/tooltip.md +103 -0
  62. package/dist/guide/undo.md +178 -0
  63. package/dist/guide/virtual-collections.md +183 -0
  64. package/dist/guide/web-components.md +179 -0
  65. package/dist/guide/widgets.md +217 -0
  66. package/dist/index.cjs.js +15283 -6279
  67. package/dist/index.cjs.js.map +1 -0
  68. package/dist/index.d.ts +3739 -370
  69. package/dist/index.esm.js +15230 -6274
  70. package/dist/index.esm.js.map +1 -0
  71. package/dist/jsx-dev-runtime.cjs.js +27 -329
  72. package/dist/jsx-dev-runtime.cjs.js.map +1 -0
  73. package/dist/jsx-dev-runtime.esm.js +20 -322
  74. package/dist/jsx-dev-runtime.esm.js.map +1 -0
  75. package/dist/jsx-runtime.cjs.js +27 -329
  76. package/dist/jsx-runtime.cjs.js.map +1 -0
  77. package/dist/jsx-runtime.esm.js +20 -322
  78. package/dist/jsx-runtime.esm.js.map +1 -0
  79. package/dist/jsx.cjs.js +11 -309
  80. package/dist/jsx.cjs.js.map +1 -0
  81. package/dist/jsx.esm.js +9 -310
  82. package/dist/jsx.esm.js.map +1 -0
  83. package/dist/react.cjs.js +117 -0
  84. package/dist/react.cjs.js.map +1 -0
  85. package/dist/react.esm.js +115 -0
  86. package/dist/react.esm.js.map +1 -0
  87. package/dist/shims/globalthis.cjs +20 -0
  88. package/dist/sygnal.min.js +2 -1
  89. package/dist/sygnal.min.js.map +1 -0
  90. package/dist/ui-combobox.cjs.js +169 -0
  91. package/dist/ui-combobox.cjs.js.map +1 -0
  92. package/dist/ui-combobox.esm.js +148 -0
  93. package/dist/ui-combobox.esm.js.map +1 -0
  94. package/dist/ui-menu.cjs.js +87 -0
  95. package/dist/ui-menu.cjs.js.map +1 -0
  96. package/dist/ui-menu.esm.js +66 -0
  97. package/dist/ui-menu.esm.js.map +1 -0
  98. package/dist/ui-select.cjs.js +104 -0
  99. package/dist/ui-select.cjs.js.map +1 -0
  100. package/dist/ui-select.esm.js +83 -0
  101. package/dist/ui-select.esm.js.map +1 -0
  102. package/dist/ui.cjs.js +738 -0
  103. package/dist/ui.cjs.js.map +1 -0
  104. package/dist/ui.esm.js +727 -0
  105. package/dist/ui.esm.js.map +1 -0
  106. package/dist/vike/ClientOnly.cjs.js +5 -14
  107. package/dist/vike/ClientOnly.cjs.js.map +1 -0
  108. package/dist/vike/ClientOnly.mjs +5 -14
  109. package/dist/vike/ClientOnly.mjs.map +1 -0
  110. package/dist/vike/{+config.js → config/+config.js} +10 -1
  111. package/dist/vike/config/+config.js.map +1 -0
  112. package/dist/vike/config/package.json +6 -0
  113. package/dist/vike/onRenderClient.cjs.js +166 -95
  114. package/dist/vike/onRenderClient.cjs.js.map +1 -0
  115. package/dist/vike/onRenderClient.mjs +166 -95
  116. package/dist/vike/onRenderClient.mjs.map +1 -0
  117. package/dist/vike/onRenderHtml.cjs.js +60 -24
  118. package/dist/vike/onRenderHtml.cjs.js.map +1 -0
  119. package/dist/vike/onRenderHtml.mjs +61 -25
  120. package/dist/vike/onRenderHtml.mjs.map +1 -0
  121. package/dist/vite/plugin.cjs.js +926 -65
  122. package/dist/vite/plugin.cjs.js.map +1 -0
  123. package/dist/vite/plugin.mjs +925 -65
  124. package/dist/vite/plugin.mjs.map +1 -0
  125. package/dist/zag.cjs.js +408 -0
  126. package/dist/zag.cjs.js.map +1 -0
  127. package/dist/zag.esm.js +405 -0
  128. package/dist/zag.esm.js.map +1 -0
  129. package/llms.txt +313 -0
  130. package/package.json +109 -16
  131. package/src/astro/client.ts +40 -18
  132. package/src/astro/index.d.ts +48 -1
  133. package/src/astro/index.ts +106 -9
  134. package/src/astro/server.ts +11 -3
  135. package/src/collection.ts +6 -90
  136. package/src/core/actions.ts +134 -0
  137. package/src/core/cell.ts +202 -0
  138. package/src/core/debug.ts +23 -0
  139. package/src/core/define.ts +242 -0
  140. package/src/core/hooks.ts +314 -0
  141. package/src/core/hosts/collection.ts +325 -0
  142. package/src/core/hosts/switchable.ts +146 -0
  143. package/src/core/instance.ts +592 -0
  144. package/src/core/markers/clientonly.ts +13 -0
  145. package/src/core/markers/lazy.ts +40 -0
  146. package/src/core/markers/portal.ts +96 -0
  147. package/src/core/markers/suspense.ts +41 -0
  148. package/src/core/markers/transition.ts +70 -0
  149. package/src/core/registry.ts +25 -0
  150. package/src/core/runtime.ts +573 -0
  151. package/src/core/statics.ts +104 -0
  152. package/src/core/teardown.ts +60 -0
  153. package/src/core/view.ts +37 -0
  154. package/src/cycle/dom/DocumentDOMSource.ts +13 -8
  155. package/src/cycle/dom/ElementFinder.ts +7 -9
  156. package/src/cycle/dom/EventDelegator.ts +174 -223
  157. package/src/cycle/dom/IsolateModule.ts +65 -35
  158. package/src/cycle/dom/MainDOMSource.ts +13 -2
  159. package/src/cycle/dom/PriorityQueue.ts +4 -2
  160. package/src/cycle/dom/SymbolTree.ts +18 -47
  161. package/src/cycle/dom/classNameModule.ts +76 -0
  162. package/src/cycle/dom/controlledInputModule.ts +50 -0
  163. package/src/cycle/dom/enrichEventStream.ts +29 -45
  164. package/src/cycle/dom/fragment.ts +7 -0
  165. package/src/cycle/dom/isolate.ts +30 -27
  166. package/src/cycle/dom/makeDOMDriver.ts +115 -57
  167. package/src/cycle/dom/mockDOMSource.ts +83 -9
  168. package/src/cycle/dom/modules.ts +21 -4
  169. package/src/cycle/dom/propsModule.ts +65 -0
  170. package/src/cycle/dom/selectModule.ts +22 -17
  171. package/src/cycle/dom/snabbdom.ts +1 -6
  172. package/src/cycle/dom/thunk.ts +3 -0
  173. package/src/cycle/dom/utils.ts +98 -0
  174. package/src/cycle/dom/viewTransition.ts +43 -0
  175. package/src/cycle/state/StateSource.ts +20 -4
  176. package/src/cycle/state/objIsEqual.ts +50 -0
  177. package/src/cycle/state/types.ts +0 -10
  178. package/src/defineComponent.ts +34 -0
  179. package/src/devtools.d.ts +151 -0
  180. package/src/devtools.ts +34 -0
  181. package/src/element.d.ts +59 -0
  182. package/src/element.ts +235 -0
  183. package/src/extra/backoff.ts +9 -0
  184. package/src/extra/behaviors.ts +169 -0
  185. package/src/extra/browserSignals.ts +23 -0
  186. package/src/extra/browserSources.ts +326 -0
  187. package/src/extra/command.ts +3 -3
  188. package/src/extra/controls.ts +47 -0
  189. package/src/extra/copyAsTest.ts +286 -0
  190. package/src/extra/devtools.ts +109 -31
  191. package/src/extra/devtoolsActions.ts +379 -0
  192. package/src/extra/devtoolsHook.ts +9 -0
  193. package/src/extra/devtoolsNext.ts +83 -0
  194. package/src/extra/diagnostics/checks/actionLog.ts +108 -0
  195. package/src/extra/diagnostics/checks/behaviors.ts +49 -0
  196. package/src/extra/diagnostics/checks/browserSources.ts +96 -0
  197. package/src/extra/diagnostics/checks/collections.ts +67 -0
  198. package/src/extra/diagnostics/checks/controls.ts +148 -0
  199. package/src/extra/diagnostics/checks/dataset.ts +57 -0
  200. package/src/extra/diagnostics/checks/dom.ts +250 -0
  201. package/src/extra/diagnostics/checks/elementCommands.ts +175 -0
  202. package/src/extra/diagnostics/checks/events.ts +83 -0
  203. package/src/extra/diagnostics/checks/fetch.ts +135 -0
  204. package/src/extra/diagnostics/checks/forms.ts +163 -0
  205. package/src/extra/diagnostics/checks/index.ts +202 -0
  206. package/src/extra/diagnostics/checks/inspect.ts +427 -0
  207. package/src/extra/diagnostics/checks/next.ts +417 -0
  208. package/src/extra/diagnostics/checks/persist.ts +54 -0
  209. package/src/extra/diagnostics/checks/props.ts +56 -0
  210. package/src/extra/diagnostics/checks/public.d.ts +302 -0
  211. package/src/extra/diagnostics/checks/replies.ts +128 -0
  212. package/src/extra/diagnostics/checks/router.ts +100 -0
  213. package/src/extra/diagnostics/checks/rxjsHints.ts +88 -0
  214. package/src/extra/diagnostics/checks/shared.ts +203 -0
  215. package/src/extra/diagnostics/checks/shorthand.ts +115 -0
  216. package/src/extra/diagnostics/checks/sortable.ts +129 -0
  217. package/src/extra/diagnostics/checks/state.ts +148 -0
  218. package/src/extra/diagnostics/checks/statics.ts +48 -0
  219. package/src/extra/diagnostics/checks/strict.ts +55 -0
  220. package/src/extra/diagnostics/checks/timers.ts +80 -0
  221. package/src/extra/diagnostics/checks/viewTransitions.ts +47 -0
  222. package/src/extra/diagnostics/checks/virtual.ts +73 -0
  223. package/src/extra/diagnostics/checks/widgets.ts +109 -0
  224. package/src/extra/diagnostics/checks/wiring.ts +121 -0
  225. package/src/extra/diagnostics/codes.ts +477 -0
  226. package/src/extra/diagnostics/index.ts +353 -0
  227. package/src/extra/diagnostics/legacy.ts +76 -0
  228. package/src/extra/driverFactories.ts +172 -60
  229. package/src/extra/elementCommands.ts +53 -0
  230. package/src/extra/eventDriver.ts +4 -0
  231. package/src/extra/fetchDriver.ts +519 -0
  232. package/src/extra/flatten.ts +75 -0
  233. package/src/extra/focusWithin.ts +27 -0
  234. package/src/extra/form.ts +268 -0
  235. package/src/extra/formHelpers.ts +139 -0
  236. package/src/extra/head.ts +106 -0
  237. package/src/extra/hmr.ts +2 -3
  238. package/src/extra/owned.ts +24 -0
  239. package/src/extra/pager.ts +50 -0
  240. package/src/extra/persist.ts +133 -0
  241. package/src/extra/pwa.ts +1 -1
  242. package/src/extra/queryCache.ts +107 -0
  243. package/src/extra/reducers.ts +13 -6
  244. package/src/extra/reduxDevtools.ts +92 -0
  245. package/src/extra/replies.ts +54 -0
  246. package/src/extra/router.ts +323 -0
  247. package/src/extra/run.ts +94 -210
  248. package/src/extra/selection.ts +76 -0
  249. package/src/extra/socketDriver.ts +265 -0
  250. package/src/extra/sortable.ts +377 -0
  251. package/src/extra/ssr.ts +427 -160
  252. package/src/extra/standardSchema.ts +27 -0
  253. package/src/extra/testing.ts +3158 -190
  254. package/src/extra/timers.ts +95 -0
  255. package/src/extra/undo.ts +261 -0
  256. package/src/extra/viewTransitions.ts +38 -0
  257. package/src/extra/virtual.ts +513 -0
  258. package/src/extra/widget.ts +201 -0
  259. package/src/extra/xstreamExtras.ts +269 -0
  260. package/src/index.d.ts +3012 -87
  261. package/src/index.ts +32 -10
  262. package/src/jsx-runtime.ts +15 -1
  263. package/src/jsx.ts +2 -1
  264. package/src/lazy.ts +50 -7
  265. package/src/portal.ts +3 -1
  266. package/src/pragma/index.ts +262 -134
  267. package/src/react-peers.d.ts +5 -0
  268. package/src/react.d.ts +43 -0
  269. package/src/react.ts +110 -0
  270. package/src/shared.ts +48 -0
  271. package/src/slot.ts +1 -1
  272. package/src/suspense.ts +3 -1
  273. package/src/switchable.ts +6 -119
  274. package/src/transition.ts +3 -1
  275. package/src/ui/accordion.ts +64 -0
  276. package/src/ui/dialog.ts +129 -0
  277. package/src/ui/disclosure.ts +35 -0
  278. package/src/ui/popover.ts +45 -0
  279. package/src/ui/shared.ts +94 -0
  280. package/src/ui/tabs.ts +82 -0
  281. package/src/ui/toaster.ts +198 -0
  282. package/src/ui/tooltip.ts +70 -0
  283. package/src/ui/zag/combobox.ts +115 -0
  284. package/src/ui/zag/menu.ts +40 -0
  285. package/src/ui/zag/select.ts +54 -0
  286. package/src/ui/zag/shared.ts +43 -0
  287. package/src/ui-combobox.d.ts +20 -0
  288. package/src/ui-combobox.ts +6 -0
  289. package/src/ui-menu.d.ts +30 -0
  290. package/src/ui-menu.ts +6 -0
  291. package/src/ui-select.d.ts +17 -0
  292. package/src/ui-select.ts +6 -0
  293. package/src/ui-zag-types.d.ts +42 -0
  294. package/src/ui.d.ts +208 -0
  295. package/src/ui.ts +15 -0
  296. package/src/vike/+config.ts +9 -1
  297. package/src/vike/ClientOnly.ts +1 -1
  298. package/src/vike/onRenderClient.ts +144 -96
  299. package/src/vike/onRenderHtml.ts +69 -26
  300. package/src/vike/types.ts +27 -4
  301. package/src/vite/globalthis-shim.ts +18 -0
  302. package/src/vite/globalthis.ts +56 -0
  303. package/src/vite/plugin.d.ts +114 -2
  304. package/src/vite/plugin.ts +920 -56
  305. package/src/zag.d.ts +64 -0
  306. package/src/zag.ts +238 -0
  307. package/dist/astro/astro/client.d.ts +0 -5
  308. package/dist/astro/astro/index.d.ts +0 -16
  309. package/dist/astro/astro/server.d.ts +0 -12
  310. package/dist/astro/client.d.ts +0 -5
  311. package/dist/astro/client.esm.js +0 -4665
  312. package/dist/astro/collection.d.ts +0 -12
  313. package/dist/astro/component.d.ts +0 -22
  314. package/dist/astro/cycle/dom/BodyDOMSource.d.ts +0 -10
  315. package/dist/astro/cycle/dom/DOMSource.d.ts +0 -11
  316. package/dist/astro/cycle/dom/DocumentDOMSource.d.ts +0 -12
  317. package/dist/astro/cycle/dom/ElementFinder.d.ts +0 -8
  318. package/dist/astro/cycle/dom/EventDelegator.d.ts +0 -34
  319. package/dist/astro/cycle/dom/IsolateModule.d.ts +0 -23
  320. package/dist/astro/cycle/dom/MainDOMSource.d.ts +0 -32
  321. package/dist/astro/cycle/dom/PriorityQueue.d.ts +0 -7
  322. package/dist/astro/cycle/dom/ScopeChecker.d.ts +0 -9
  323. package/dist/astro/cycle/dom/SymbolTree.d.ts +0 -9
  324. package/dist/astro/cycle/dom/VNodeWrapper.d.ts +0 -8
  325. package/dist/astro/cycle/dom/enrichEventStream.d.ts +0 -24
  326. package/dist/astro/cycle/dom/fromEvent.d.ts +0 -6
  327. package/dist/astro/cycle/dom/index.d.ts +0 -8
  328. package/dist/astro/cycle/dom/isolate.d.ts +0 -9
  329. package/dist/astro/cycle/dom/makeDOMDriver.d.ts +0 -11
  330. package/dist/astro/cycle/dom/mockDOMSource.d.ts +0 -17
  331. package/dist/astro/cycle/dom/modules.d.ts +0 -5
  332. package/dist/astro/cycle/dom/snabbdom.d.ts +0 -22
  333. package/dist/astro/cycle/dom/styleModule.d.ts +0 -13
  334. package/dist/astro/cycle/dom/thunk.d.ts +0 -11
  335. package/dist/astro/cycle/dom/utils.d.ts +0 -8
  336. package/dist/astro/cycle/isolate/index.d.ts +0 -42
  337. package/dist/astro/cycle/run/adapt.d.ts +0 -6
  338. package/dist/astro/cycle/run/index.d.ts +0 -36
  339. package/dist/astro/cycle/run/internals.d.ts +0 -8
  340. package/dist/astro/cycle/run/types.d.ts +0 -49
  341. package/dist/astro/cycle/state/Collection.d.ts +0 -29
  342. package/dist/astro/cycle/state/StateSource.d.ts +0 -20
  343. package/dist/astro/cycle/state/index.d.ts +0 -5
  344. package/dist/astro/cycle/state/pickCombine.d.ts +0 -3
  345. package/dist/astro/cycle/state/pickMerge.d.ts +0 -3
  346. package/dist/astro/cycle/state/types.d.ts +0 -18
  347. package/dist/astro/cycle/state/withState.d.ts +0 -17
  348. package/dist/astro/extra/classes.d.ts +0 -7
  349. package/dist/astro/extra/devtools.d.ts +0 -78
  350. package/dist/astro/extra/dragDriver.d.ts +0 -20
  351. package/dist/astro/extra/driverFactories.d.ts +0 -12
  352. package/dist/astro/extra/eventDriver.d.ts +0 -9
  353. package/dist/astro/extra/exactState.d.ts +0 -1
  354. package/dist/astro/extra/hmr.d.ts +0 -17
  355. package/dist/astro/extra/logDriver.d.ts +0 -2
  356. package/dist/astro/extra/processDrag.d.ts +0 -19
  357. package/dist/astro/extra/processForm.d.ts +0 -15
  358. package/dist/astro/extra/run.d.ts +0 -13
  359. package/dist/astro/extra/xstreamCompat.d.ts +0 -5
  360. package/dist/astro/index.d.ts +0 -19
  361. package/dist/astro/index.esm.js +0 -27
  362. package/dist/astro/jsx-dev-runtime.d.ts +0 -1
  363. package/dist/astro/jsx-runtime.d.ts +0 -4
  364. package/dist/astro/jsx.d.ts +0 -2
  365. package/dist/astro/pragma/fn.d.ts +0 -7
  366. package/dist/astro/pragma/index.d.ts +0 -7
  367. package/dist/astro/pragma/is.d.ts +0 -10
  368. package/dist/astro/server.d.ts +0 -12
  369. package/dist/astro/server.esm.js +0 -25
  370. package/dist/astro/switchable.d.ts +0 -7
  371. package/dist/collection.d.ts +0 -12
  372. package/dist/component.d.ts +0 -22
  373. package/dist/cycle/dom/BodyDOMSource.d.ts +0 -10
  374. package/dist/cycle/dom/DOMSource.d.ts +0 -11
  375. package/dist/cycle/dom/DocumentDOMSource.d.ts +0 -12
  376. package/dist/cycle/dom/ElementFinder.d.ts +0 -8
  377. package/dist/cycle/dom/EventDelegator.d.ts +0 -34
  378. package/dist/cycle/dom/IsolateModule.d.ts +0 -23
  379. package/dist/cycle/dom/MainDOMSource.d.ts +0 -32
  380. package/dist/cycle/dom/PriorityQueue.d.ts +0 -7
  381. package/dist/cycle/dom/ScopeChecker.d.ts +0 -9
  382. package/dist/cycle/dom/SymbolTree.d.ts +0 -9
  383. package/dist/cycle/dom/VNodeWrapper.d.ts +0 -8
  384. package/dist/cycle/dom/enrichEventStream.d.ts +0 -24
  385. package/dist/cycle/dom/fromEvent.d.ts +0 -6
  386. package/dist/cycle/dom/index.d.ts +0 -8
  387. package/dist/cycle/dom/isolate.d.ts +0 -9
  388. package/dist/cycle/dom/makeDOMDriver.d.ts +0 -11
  389. package/dist/cycle/dom/mockDOMSource.d.ts +0 -17
  390. package/dist/cycle/dom/modules.d.ts +0 -5
  391. package/dist/cycle/dom/snabbdom.d.ts +0 -22
  392. package/dist/cycle/dom/styleModule.d.ts +0 -13
  393. package/dist/cycle/dom/thunk.d.ts +0 -11
  394. package/dist/cycle/dom/utils.d.ts +0 -8
  395. package/dist/cycle/isolate/index.d.ts +0 -42
  396. package/dist/cycle/run/adapt.d.ts +0 -6
  397. package/dist/cycle/run/index.d.ts +0 -36
  398. package/dist/cycle/run/internals.d.ts +0 -8
  399. package/dist/cycle/run/types.d.ts +0 -49
  400. package/dist/cycle/state/Collection.d.ts +0 -29
  401. package/dist/cycle/state/StateSource.d.ts +0 -20
  402. package/dist/cycle/state/index.d.ts +0 -5
  403. package/dist/cycle/state/pickCombine.d.ts +0 -3
  404. package/dist/cycle/state/pickMerge.d.ts +0 -3
  405. package/dist/cycle/state/types.d.ts +0 -18
  406. package/dist/cycle/state/withState.d.ts +0 -17
  407. package/dist/extra/classes.d.ts +0 -7
  408. package/dist/extra/devtools.d.ts +0 -78
  409. package/dist/extra/dragDriver.d.ts +0 -20
  410. package/dist/extra/driverFactories.d.ts +0 -12
  411. package/dist/extra/eventDriver.d.ts +0 -9
  412. package/dist/extra/exactState.d.ts +0 -1
  413. package/dist/extra/hmr.d.ts +0 -17
  414. package/dist/extra/logDriver.d.ts +0 -2
  415. package/dist/extra/processDrag.d.ts +0 -19
  416. package/dist/extra/processForm.d.ts +0 -15
  417. package/dist/extra/run.d.ts +0 -13
  418. package/dist/extra/xstreamCompat.d.ts +0 -5
  419. package/dist/jsx-dev-runtime.d.ts +0 -1
  420. package/dist/jsx-dev-runtime.js +0 -224
  421. package/dist/jsx-runtime.d.ts +0 -4
  422. package/dist/jsx-runtime.js +0 -224
  423. package/dist/jsx.d.ts +0 -2
  424. package/dist/pragma/fn.d.ts +0 -7
  425. package/dist/pragma/index.d.ts +0 -7
  426. package/dist/pragma/is.d.ts +0 -10
  427. package/dist/switchable.d.ts +0 -7
  428. package/dist/vike/+config.cjs.js +0 -65
  429. package/src/component.ts +0 -2256
  430. package/src/cycle/isolate/index.ts +0 -196
  431. package/src/cycle/run/index.ts +0 -151
  432. package/src/cycle/run/internals.ts +0 -143
  433. package/src/cycle/state/Collection.ts +0 -174
  434. package/src/cycle/state/index.ts +0 -5
  435. package/src/cycle/state/pickCombine.ts +0 -167
  436. package/src/cycle/state/pickMerge.ts +0 -122
  437. package/src/cycle/state/withState.ts +0 -47
  438. package/src/pragma/fn.ts +0 -55
@@ -1,332 +1,29 @@
1
- import _extend from 'extend';
1
+ import { createElement } from 'sygnal';
2
+ import { Fragment as Fragment$1 } from 'snabbdom/build/jsx.js';
2
3
 
3
- const undefinedv = (v) => v === undefined;
4
- const number = (v) => typeof v === 'number';
5
- const string = (v) => typeof v === 'string';
6
- const text = (v) => string(v) || number(v);
7
- const array = (v) => Array.isArray(v);
8
- const object = (v) => typeof v === 'object' && v !== null;
9
- const fun = (v) => typeof v === 'function';
10
- const vnode$1 = (v) => object(v) && 'sel' in v && 'data' in v && 'children' in v && 'text' in v;
11
- const svgPropsMap = {
12
- // Container / structural
13
- svg: 1, g: 1, defs: 1, symbol: 1, use: 1,
14
- // Shape
15
- circle: 1, ellipse: 1, line: 1, path: 1, polygon: 1, polyline: 1, rect: 1,
16
- // Text (no HTML collision: HTML has no <text>, <tspan>, or <textPath>)
17
- text: 1, tspan: 1, textPath: 1,
18
- // Gradient / paint
19
- linearGradient: 1, radialGradient: 1, stop: 1, pattern: 1,
20
- // Clipping / masking
21
- clipPath: 1, mask: 1,
22
- // Marker
23
- marker: 1,
24
- // Filter primitives
25
- filter: 1, feBlend: 1, feColorMatrix: 1, feComponentTransfer: 1,
26
- feComposite: 1, feConvolveMatrix: 1, feDiffuseLighting: 1,
27
- feDisplacementMap: 1, feDropShadow: 1, feFlood: 1, feGaussianBlur: 1,
28
- feImage: 1, feMerge: 1, feMergeNode: 1, feMorphology: 1, feOffset: 1,
29
- fePointLight: 1, feSpecularLighting: 1, feSpotLight: 1, feTile: 1,
30
- feTurbulence: 1, feFuncR: 1, feFuncG: 1, feFuncB: 1, feFuncA: 1,
31
- // Descriptive (excluding 'title' — collides with HTML <title>)
32
- desc: 1, metadata: 1,
33
- // Other (excluding 'a', 'image', 'style', 'script' — collide with HTML)
34
- foreignObject: 1, switch: 1,
35
- // Animation
36
- animate: 1, animateMotion: 1, animateTransform: 1, set: 1, mpath: 1,
37
- };
38
- const svg = (v) => v.sel in svgPropsMap;
39
-
40
- // TODO: stop using extend here
41
- // @ts-ignore — no type declarations for 'extend'
42
- const extend = (...objs) => _extend(true, ...objs);
43
- const assign = (...objs) => _extend(false, ...objs);
44
- const reduceDeep = (arr, fn, initial) => {
45
- let result = initial;
46
- for (let i = 0; i < arr.length; i++) {
47
- const value = arr[i];
48
- if (array(value)) {
49
- result = reduceDeep(value, fn, result);
50
- }
51
- else {
52
- result = fn(result, value);
53
- }
54
- }
55
- return result;
56
- };
57
- const mapObject = (obj, fn) => Object.keys(obj).map((key) => fn(key, obj[key])).reduce((acc, curr) => extend(acc, curr), {});
58
- const deepifyKeys = (obj, modules) => mapObject(obj, (key, val) => {
59
- const dashIndex = key.indexOf('-');
60
- if (dashIndex > -1 && modules[key.slice(0, dashIndex)] !== undefined) {
61
- const moduleData = {
62
- [key.slice(dashIndex + 1)]: val
63
- };
64
- return {
65
- [key.slice(0, dashIndex)]: moduleData
66
- };
67
- }
68
- return { [key]: val };
69
- });
70
- const omit = (key, obj) => mapObject(obj, (mod, data) => mod !== key ? ({ [mod]: data }) : {});
71
-
72
- const createTextElement = (text$1) => !text(text$1) ? undefined : {
73
- text: text$1,
74
- sel: undefined,
75
- data: undefined,
76
- children: undefined,
77
- elm: undefined,
78
- key: undefined
79
- };
80
- const applySvg = (vnode) => {
81
- // Skip text vnodes (sel is undefined) and nullish values
82
- if (!vnode || undefinedv(vnode.sel))
83
- return vnode;
84
- const data = vnode.data || {};
85
- const props = data.props || {};
86
- const propsWithoutClassName = omit('className', props);
87
- const classAttr = props.className !== undefined ? { class: props.className } : {};
88
- const mergedAttrs = assign({}, propsWithoutClassName, classAttr, data.attrs || {});
89
- return assign(vnode, { data: omit('props', assign({}, data, { ns: 'http://www.w3.org/2000/svg', attrs: mergedAttrs })) },
90
- // foreignObject contains HTML, not SVG — do not recurse into its children
91
- { children: (!Array.isArray(vnode.children) || vnode.sel === 'foreignObject')
92
- ? vnode.children
93
- : vnode.children.map((child) => applySvg(child))
94
- });
95
- };
96
- const considerSvg = (vnode) => !svg(vnode) ? vnode : applySvg(vnode);
97
- const rewrites = {
98
- for: 'attrs',
99
- role: 'attrs',
100
- tabindex: 'attrs',
101
- 'aria-*': 'attrs',
102
- key: null
103
- };
104
- const rewriteModules = (data, modules) => mapObject(data, (key, val) => {
105
- const inner = { [key]: val };
106
- if (rewrites[key] && modules[rewrites[key]] !== undefined) {
107
- return { [rewrites[key]]: inner };
108
- }
109
- if (rewrites[key] === null) {
110
- return {};
111
- }
112
- const keys = Object.keys(rewrites);
113
- for (let i = 0; i < keys.length; i++) {
114
- const k = keys[i];
115
- if (k.charAt(k.length - 1) === '*' && key.indexOf(k.slice(0, -1)) === 0 && modules[rewrites[k]] !== undefined) {
116
- return { [rewrites[k]]: inner };
117
- }
118
- }
119
- if (modules[key] !== undefined) {
120
- return { [modules[key] ? modules[key] : key]: val };
121
- }
122
- if (modules.props !== undefined) {
123
- return { props: inner };
124
- }
125
- return inner;
126
- });
127
- const applyFocusProps = (data) => {
128
- if (!data.props)
129
- return data;
130
- const { autoFocus, autoSelect, ...rest } = data.props;
131
- if (!autoFocus && !autoSelect)
132
- return data;
133
- data.props = rest;
134
- data._autoFocus = !!autoFocus;
135
- data._autoSelect = !!autoSelect;
136
- const doFocus = (elm) => {
137
- if (elm && typeof elm.focus === 'function') {
138
- requestAnimationFrame(() => {
139
- elm.focus();
140
- if (autoSelect && typeof elm.select === 'function') {
141
- elm.select();
142
- }
143
- });
144
- }
145
- };
146
- const existingInsert = data.hook?.insert;
147
- const existingPostpatch = data.hook?.postpatch;
148
- data.hook = {
149
- ...data.hook,
150
- insert: (vnode) => {
151
- if (existingInsert)
152
- existingInsert(vnode);
153
- if (autoFocus || autoSelect)
154
- doFocus(vnode.elm);
155
- },
156
- postpatch: (oldVnode, vnode) => {
157
- if (existingPostpatch)
158
- existingPostpatch(oldVnode, vnode);
159
- const wasFocused = oldVnode.data?._autoFocus;
160
- const isFocused = vnode.data?._autoFocus;
161
- if (!wasFocused && isFocused)
162
- doFocus(vnode.elm);
163
- },
164
- };
165
- return data;
166
- };
167
- const applyRefProps = (data, ref) => {
168
- if (!ref)
169
- return data;
170
- const setRef = (elm) => {
171
- if (typeof ref === 'function') {
172
- ref(elm);
173
- }
174
- else if (ref && typeof ref === 'object' && 'current' in ref) {
175
- ref.current = elm;
176
- }
177
- };
178
- const existingInsert = data.hook?.insert;
179
- const existingDestroy = data.hook?.destroy;
180
- const existingPostpatch = data.hook?.postpatch;
181
- data.hook = {
182
- ...data.hook,
183
- insert: (vnode) => {
184
- if (existingInsert)
185
- existingInsert(vnode);
186
- setRef(vnode.elm);
187
- },
188
- postpatch: (_oldVnode, vnode) => {
189
- if (existingPostpatch)
190
- existingPostpatch(_oldVnode, vnode);
191
- setRef(vnode.elm);
192
- },
193
- destroy: (vnode) => {
194
- if (existingDestroy)
195
- existingDestroy(vnode);
196
- setRef(null);
197
- },
198
- };
199
- return data;
200
- };
201
- const sanitizeData = (data, modules) => {
202
- const { ref, ...rest } = data;
203
- const sanitized = applyFocusProps(rewriteModules(deepifyKeys(rest, modules), modules));
204
- return applyRefProps(sanitized, ref);
205
- };
206
- const sanitizeText = (children) => children.length > 1 || !text(children[0]) ? undefined : children[0].toString();
207
- const sanitizeChildren = (children) => reduceDeep(children, (acc, child) => {
208
- const vnode = vnode$1(child) ? child : createTextElement(child);
209
- acc.push(vnode);
210
- return acc;
211
- }, []);
212
- const defaultModules = {
213
- attrs: '',
214
- props: '',
215
- class: '',
216
- data: 'dataset',
217
- style: '',
218
- hook: '',
219
- on: ''
220
- };
221
- const createElementWithModules = (modules) => {
222
- return (sel, data, ...children) => {
223
- if (typeof sel === 'undefined') {
224
- sel = 'UNDEFINED';
225
- console.error('JSX Error: Capitalized HTML element without corresponding factory function. Components with names where the first letter is capital MUST be defined or included at the parent component\'s file scope.');
226
- }
227
- if (fun(sel)) {
228
- if (sel.__sygnalFragment || sel.name === 'Fragment') {
229
- return sel(data || {}, children);
230
- }
231
- data || (data = {});
232
- if (!sel.isSygnalComponent) {
233
- const name = sel.componentName || sel.label || sel.name || 'FUNCTION_COMPONENT';
234
- const view = sel;
235
- const { model, intent, hmrActions, context, peers, components, initialState, isolatedState, calculated, storeCalculatedInState, DOMSourceName, stateSourceName, onError, debug, preventInstantiation } = sel;
236
- if (preventInstantiation) {
237
- const text = sanitizeText(children);
238
- const sanitized = data ? sanitizeData(data, modules) : {};
239
- return considerSvg({
240
- sel: name,
241
- data: sanitized,
242
- children: typeof text !== 'undefined' ? createTextElement(text) : sanitizeChildren(children),
243
- text,
244
- elm: undefined,
245
- key: data ? data.key : undefined
246
- });
247
- }
248
- const options = { name, view, model, intent, hmrActions, context, peers, components, initialState, isolatedState, calculated, storeCalculatedInState, DOMSourceName, stateSourceName, onError, debug };
249
- data.sygnalOptions = options;
250
- sel = name;
251
- }
252
- else {
253
- const factory = sel;
254
- sel = sel.componentName || sel.label || sel.name || 'sygnal-factory';
255
- data.sygnalFactory = factory;
256
- }
257
- }
258
- const text = sanitizeText(children);
259
- return considerSvg({
260
- sel,
261
- data: data ? sanitizeData(data, modules) : {},
262
- children: typeof text !== 'undefined' ? createTextElement(text) : sanitizeChildren(children),
263
- text,
264
- elm: undefined,
265
- key: data ? data.key : undefined
266
- });
267
- };
268
- };
269
- const createElement = createElementWithModules(defaultModules);
270
-
271
- function vnode(sel, data, children, text, elm) {
272
- const key = data === undefined ? undefined : data.key;
273
- return { sel, data, children, text, elm, key };
274
- }
275
-
276
- /* eslint-disable @typescript-eslint/no-namespace, import/export */
277
- function Fragment$1(data, ...children) {
278
- const flatChildren = flattenAndFilter(children, []);
279
- if (flatChildren.length === 1 &&
280
- !flatChildren[0].sel &&
281
- flatChildren[0].text) {
282
- // only child is a simple text node, pass as text for a simpler vtree
283
- return vnode(undefined, undefined, undefined, flatChildren[0].text, undefined);
284
- }
285
- else {
286
- return vnode(undefined, data !== null && data !== void 0 ? data : {}, flatChildren, undefined, undefined);
287
- }
288
- }
289
- function flattenAndFilter(children, flattened) {
290
- for (const child of children) {
291
- // filter out falsey children, except 0 since zero can be a valid value e.g inside a chart
292
- if (child !== undefined &&
293
- child !== null &&
294
- child !== false &&
295
- child !== "") {
296
- if (Array.isArray(child)) {
297
- flattenAndFilter(child, flattened);
298
- }
299
- else if (typeof child === "string" ||
300
- typeof child === "number" ||
301
- typeof child === "boolean") {
302
- flattened.push(vnode(undefined, undefined, undefined, String(child), undefined));
303
- }
304
- else {
305
- flattened.push(child);
306
- }
307
- }
308
- }
309
- return flattened;
310
- }
311
-
312
- /**
313
- * Local snabbdom re-export barrel.
314
- *
315
- * Imports from specific snabbdom subpaths instead of the main barrel to avoid
316
- * triggering the broken `styleModule` top-level `window` reference in
317
- * snabbdom 3.6.3 (which causes ReferenceError in Node.js environments).
318
- *
319
- * The styleModule is provided separately by ./styleModule.ts with a fixed
320
- * window guard.
321
- */
322
- // Core
323
- // Tag Fragment so we can identify it even after minification mangles Function.name
4
+ // Tag Fragment so we can identify it even after minification mangles Function.name.
5
+ // Its own module so the JSX runtime entries (which keep snabbdom external, D188) take it
6
+ // without the rest of the snabbdom barrel
324
7
  Fragment$1.__sygnalFragment = true;
325
8
  const Fragment = Fragment$1;
326
9
 
10
+ // P46-Q (D188): the pragma is the core's. The build makes './pragma/index' the external 'sygnal'
11
+ // (the core entry) and keeps snabbdom external, so an app ships one copy of each; the element
12
+ // fast path is the core createElement's `.a` (the children as one array)
13
+ // G-351: a 'sygnal' without `.a` (an older core next to this runtime): createElement itself
14
+ const createTag = createElement.a || ((t, p, c, k) => {
15
+ const { children, ...rest } = p;
16
+ if (k !== undefined)
17
+ rest.key = k;
18
+ return createElement(t, rest, ...c);
19
+ });
327
20
  function jsx(type, props, key) {
328
21
  if (props == null)
329
22
  return createElement(type, null);
23
+ if (typeof type == 'string') {
24
+ const c = props.children;
25
+ return createTag(type, props, c === undefined ? [] : Array.isArray(c) ? c : [c], key);
26
+ }
330
27
  const { children, ...rest } = props;
331
28
  if (key !== undefined)
332
29
  rest.key = key;
@@ -338,3 +35,4 @@ function jsx(type, props, key) {
338
35
  }
339
36
 
340
37
  export { Fragment, jsx, jsx as jsxDEV, jsx as jsxs };
38
+ //# sourceMappingURL=jsx-runtime.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsx-runtime.esm.js","sources":["../src/cycle/dom/fragment.ts","../src/jsx-runtime.ts"],"sourcesContent":["import {Fragment as _Fragment} from 'snabbdom/build/jsx.js';\n\n// Tag Fragment so we can identify it even after minification mangles Function.name.\n// Its own module so the JSX runtime entries (which keep snabbdom external, D188) take it\n// without the rest of the snabbdom barrel\n(_Fragment as any).__sygnalFragment = true;\nexport const Fragment = _Fragment;\n","// P46-Q (D188): the pragma is the core's. The build makes './pragma/index' the external 'sygnal'\n// (the core entry) and keeps snabbdom external, so an app ships one copy of each; the element\n// fast path is the core createElement's `.a` (the children as one array)\nimport { createElement } from './pragma/index'\nexport { Fragment } from './cycle/dom/fragment'\n\n// G-351: a 'sygnal' without `.a` (an older core next to this runtime): createElement itself\nconst createTag = (createElement as any).a || ((t: any, p: any, c: any[], k: any) => {\n const { children, ...rest } = p\n if (k !== undefined) rest.key = k\n return createElement(t, rest, ...c)\n})\n\nexport function jsx(type: any, props: any, key?: any): any {\n if (props == null) return createElement(type, null)\n if (typeof type == 'string') {\n const c = props.children\n return createTag(type, props, c === undefined ? [] : Array.isArray(c) ? c : [c], key)\n }\n const { children, ...rest } = props\n if (key !== undefined) rest.key = key\n if (children === undefined) return createElement(type, rest)\n if (Array.isArray(children)) return createElement(type, rest, ...children)\n return createElement(type, rest, children)\n}\n\nexport { jsx as jsxs }\nexport { jsx as jsxDEV }\n"],"names":["_Fragment"],"mappings":";;;AAEA;AACA;AACA;AACCA,UAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACpC,MAAM,QAAQ,GAAGA;;ACNxB;AACA;AACA;AAIA;AACA,MAAM,SAAS,GAAI,aAAqB,CAAC,CAAC,KAAK,CAAC,CAAM,EAAE,CAAM,EAAE,CAAQ,EAAE,CAAM,KAAI;IAClF,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,CAAA;IAC/B,IAAI,CAAC,KAAK,SAAS;AAAE,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;IACjC,OAAO,aAAa,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;AACrC,CAAC,CAAC,CAAA;SAEc,GAAG,CAAC,IAAS,EAAE,KAAU,EAAE,GAAS,EAAA;IAClD,IAAI,KAAK,IAAI,IAAI;AAAE,QAAA,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACnD,IAAA,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;AAC3B,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAA;AACxB,QAAA,OAAO,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,SAAS,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;KACtF;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IACnC,IAAI,GAAG,KAAK,SAAS;AAAE,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IACrC,IAAI,QAAQ,KAAK,SAAS;AAAE,QAAA,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAC5D,IAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAA;IAC1E,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;AAC5C;;;;"}
package/dist/jsx.cjs.js CHANGED
@@ -1,315 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var _extend = require('extend');
3
+ var sygnal = require('sygnal');
4
+ var jsx_js = require('snabbdom/build/jsx.js');
4
5
 
5
- const undefinedv = (v) => v === undefined;
6
- const number = (v) => typeof v === 'number';
7
- const string = (v) => typeof v === 'string';
8
- const text = (v) => string(v) || number(v);
9
- const array = (v) => Array.isArray(v);
10
- const object = (v) => typeof v === 'object' && v !== null;
11
- const fun = (v) => typeof v === 'function';
12
- const vnode$1 = (v) => object(v) && 'sel' in v && 'data' in v && 'children' in v && 'text' in v;
13
- const svgPropsMap = {
14
- // Container / structural
15
- svg: 1, g: 1, defs: 1, symbol: 1, use: 1,
16
- // Shape
17
- circle: 1, ellipse: 1, line: 1, path: 1, polygon: 1, polyline: 1, rect: 1,
18
- // Text (no HTML collision: HTML has no <text>, <tspan>, or <textPath>)
19
- text: 1, tspan: 1, textPath: 1,
20
- // Gradient / paint
21
- linearGradient: 1, radialGradient: 1, stop: 1, pattern: 1,
22
- // Clipping / masking
23
- clipPath: 1, mask: 1,
24
- // Marker
25
- marker: 1,
26
- // Filter primitives
27
- filter: 1, feBlend: 1, feColorMatrix: 1, feComponentTransfer: 1,
28
- feComposite: 1, feConvolveMatrix: 1, feDiffuseLighting: 1,
29
- feDisplacementMap: 1, feDropShadow: 1, feFlood: 1, feGaussianBlur: 1,
30
- feImage: 1, feMerge: 1, feMergeNode: 1, feMorphology: 1, feOffset: 1,
31
- fePointLight: 1, feSpecularLighting: 1, feSpotLight: 1, feTile: 1,
32
- feTurbulence: 1, feFuncR: 1, feFuncG: 1, feFuncB: 1, feFuncA: 1,
33
- // Descriptive (excluding 'title' — collides with HTML <title>)
34
- desc: 1, metadata: 1,
35
- // Other (excluding 'a', 'image', 'style', 'script' — collide with HTML)
36
- foreignObject: 1, switch: 1,
37
- // Animation
38
- animate: 1, animateMotion: 1, animateTransform: 1, set: 1, mpath: 1,
39
- };
40
- const svg = (v) => v.sel in svgPropsMap;
6
+ // Tag Fragment so we can identify it even after minification mangles Function.name.
7
+ // Its own module so the JSX runtime entries (which keep snabbdom external, D188) take it
8
+ // without the rest of the snabbdom barrel
9
+ jsx_js.Fragment.__sygnalFragment = true;
10
+ const Fragment = jsx_js.Fragment;
41
11
 
42
- // TODO: stop using extend here
43
- // @ts-ignore — no type declarations for 'extend'
44
- const extend = (...objs) => _extend(true, ...objs);
45
- const assign = (...objs) => _extend(false, ...objs);
46
- const reduceDeep = (arr, fn, initial) => {
47
- let result = initial;
48
- for (let i = 0; i < arr.length; i++) {
49
- const value = arr[i];
50
- if (array(value)) {
51
- result = reduceDeep(value, fn, result);
52
- }
53
- else {
54
- result = fn(result, value);
55
- }
56
- }
57
- return result;
58
- };
59
- const mapObject = (obj, fn) => Object.keys(obj).map((key) => fn(key, obj[key])).reduce((acc, curr) => extend(acc, curr), {});
60
- const deepifyKeys = (obj, modules) => mapObject(obj, (key, val) => {
61
- const dashIndex = key.indexOf('-');
62
- if (dashIndex > -1 && modules[key.slice(0, dashIndex)] !== undefined) {
63
- const moduleData = {
64
- [key.slice(dashIndex + 1)]: val
65
- };
66
- return {
67
- [key.slice(0, dashIndex)]: moduleData
68
- };
69
- }
70
- return { [key]: val };
12
+ Object.defineProperty(exports, 'jsx', {
13
+ enumerable: true,
14
+ get: function () { return sygnal.createElement; }
71
15
  });
72
- const omit = (key, obj) => mapObject(obj, (mod, data) => mod !== key ? ({ [mod]: data }) : {});
73
-
74
- const createTextElement = (text$1) => !text(text$1) ? undefined : {
75
- text: text$1,
76
- sel: undefined,
77
- data: undefined,
78
- children: undefined,
79
- elm: undefined,
80
- key: undefined
81
- };
82
- const applySvg = (vnode) => {
83
- // Skip text vnodes (sel is undefined) and nullish values
84
- if (!vnode || undefinedv(vnode.sel))
85
- return vnode;
86
- const data = vnode.data || {};
87
- const props = data.props || {};
88
- const propsWithoutClassName = omit('className', props);
89
- const classAttr = props.className !== undefined ? { class: props.className } : {};
90
- const mergedAttrs = assign({}, propsWithoutClassName, classAttr, data.attrs || {});
91
- return assign(vnode, { data: omit('props', assign({}, data, { ns: 'http://www.w3.org/2000/svg', attrs: mergedAttrs })) },
92
- // foreignObject contains HTML, not SVG — do not recurse into its children
93
- { children: (!Array.isArray(vnode.children) || vnode.sel === 'foreignObject')
94
- ? vnode.children
95
- : vnode.children.map((child) => applySvg(child))
96
- });
97
- };
98
- const considerSvg = (vnode) => !svg(vnode) ? vnode : applySvg(vnode);
99
- const rewrites = {
100
- for: 'attrs',
101
- role: 'attrs',
102
- tabindex: 'attrs',
103
- 'aria-*': 'attrs',
104
- key: null
105
- };
106
- const rewriteModules = (data, modules) => mapObject(data, (key, val) => {
107
- const inner = { [key]: val };
108
- if (rewrites[key] && modules[rewrites[key]] !== undefined) {
109
- return { [rewrites[key]]: inner };
110
- }
111
- if (rewrites[key] === null) {
112
- return {};
113
- }
114
- const keys = Object.keys(rewrites);
115
- for (let i = 0; i < keys.length; i++) {
116
- const k = keys[i];
117
- if (k.charAt(k.length - 1) === '*' && key.indexOf(k.slice(0, -1)) === 0 && modules[rewrites[k]] !== undefined) {
118
- return { [rewrites[k]]: inner };
119
- }
120
- }
121
- if (modules[key] !== undefined) {
122
- return { [modules[key] ? modules[key] : key]: val };
123
- }
124
- if (modules.props !== undefined) {
125
- return { props: inner };
126
- }
127
- return inner;
128
- });
129
- const applyFocusProps = (data) => {
130
- if (!data.props)
131
- return data;
132
- const { autoFocus, autoSelect, ...rest } = data.props;
133
- if (!autoFocus && !autoSelect)
134
- return data;
135
- data.props = rest;
136
- data._autoFocus = !!autoFocus;
137
- data._autoSelect = !!autoSelect;
138
- const doFocus = (elm) => {
139
- if (elm && typeof elm.focus === 'function') {
140
- requestAnimationFrame(() => {
141
- elm.focus();
142
- if (autoSelect && typeof elm.select === 'function') {
143
- elm.select();
144
- }
145
- });
146
- }
147
- };
148
- const existingInsert = data.hook?.insert;
149
- const existingPostpatch = data.hook?.postpatch;
150
- data.hook = {
151
- ...data.hook,
152
- insert: (vnode) => {
153
- if (existingInsert)
154
- existingInsert(vnode);
155
- if (autoFocus || autoSelect)
156
- doFocus(vnode.elm);
157
- },
158
- postpatch: (oldVnode, vnode) => {
159
- if (existingPostpatch)
160
- existingPostpatch(oldVnode, vnode);
161
- const wasFocused = oldVnode.data?._autoFocus;
162
- const isFocused = vnode.data?._autoFocus;
163
- if (!wasFocused && isFocused)
164
- doFocus(vnode.elm);
165
- },
166
- };
167
- return data;
168
- };
169
- const applyRefProps = (data, ref) => {
170
- if (!ref)
171
- return data;
172
- const setRef = (elm) => {
173
- if (typeof ref === 'function') {
174
- ref(elm);
175
- }
176
- else if (ref && typeof ref === 'object' && 'current' in ref) {
177
- ref.current = elm;
178
- }
179
- };
180
- const existingInsert = data.hook?.insert;
181
- const existingDestroy = data.hook?.destroy;
182
- const existingPostpatch = data.hook?.postpatch;
183
- data.hook = {
184
- ...data.hook,
185
- insert: (vnode) => {
186
- if (existingInsert)
187
- existingInsert(vnode);
188
- setRef(vnode.elm);
189
- },
190
- postpatch: (_oldVnode, vnode) => {
191
- if (existingPostpatch)
192
- existingPostpatch(_oldVnode, vnode);
193
- setRef(vnode.elm);
194
- },
195
- destroy: (vnode) => {
196
- if (existingDestroy)
197
- existingDestroy(vnode);
198
- setRef(null);
199
- },
200
- };
201
- return data;
202
- };
203
- const sanitizeData = (data, modules) => {
204
- const { ref, ...rest } = data;
205
- const sanitized = applyFocusProps(rewriteModules(deepifyKeys(rest, modules), modules));
206
- return applyRefProps(sanitized, ref);
207
- };
208
- const sanitizeText = (children) => children.length > 1 || !text(children[0]) ? undefined : children[0].toString();
209
- const sanitizeChildren = (children) => reduceDeep(children, (acc, child) => {
210
- const vnode = vnode$1(child) ? child : createTextElement(child);
211
- acc.push(vnode);
212
- return acc;
213
- }, []);
214
- const defaultModules = {
215
- attrs: '',
216
- props: '',
217
- class: '',
218
- data: 'dataset',
219
- style: '',
220
- hook: '',
221
- on: ''
222
- };
223
- const createElementWithModules = (modules) => {
224
- return (sel, data, ...children) => {
225
- if (typeof sel === 'undefined') {
226
- sel = 'UNDEFINED';
227
- console.error('JSX Error: Capitalized HTML element without corresponding factory function. Components with names where the first letter is capital MUST be defined or included at the parent component\'s file scope.');
228
- }
229
- if (fun(sel)) {
230
- if (sel.__sygnalFragment || sel.name === 'Fragment') {
231
- return sel(data || {}, children);
232
- }
233
- data || (data = {});
234
- if (!sel.isSygnalComponent) {
235
- const name = sel.componentName || sel.label || sel.name || 'FUNCTION_COMPONENT';
236
- const view = sel;
237
- const { model, intent, hmrActions, context, peers, components, initialState, isolatedState, calculated, storeCalculatedInState, DOMSourceName, stateSourceName, onError, debug, preventInstantiation } = sel;
238
- if (preventInstantiation) {
239
- const text = sanitizeText(children);
240
- const sanitized = data ? sanitizeData(data, modules) : {};
241
- return considerSvg({
242
- sel: name,
243
- data: sanitized,
244
- children: typeof text !== 'undefined' ? createTextElement(text) : sanitizeChildren(children),
245
- text,
246
- elm: undefined,
247
- key: data ? data.key : undefined
248
- });
249
- }
250
- const options = { name, view, model, intent, hmrActions, context, peers, components, initialState, isolatedState, calculated, storeCalculatedInState, DOMSourceName, stateSourceName, onError, debug };
251
- data.sygnalOptions = options;
252
- sel = name;
253
- }
254
- else {
255
- const factory = sel;
256
- sel = sel.componentName || sel.label || sel.name || 'sygnal-factory';
257
- data.sygnalFactory = factory;
258
- }
259
- }
260
- const text = sanitizeText(children);
261
- return considerSvg({
262
- sel,
263
- data: data ? sanitizeData(data, modules) : {},
264
- children: typeof text !== 'undefined' ? createTextElement(text) : sanitizeChildren(children),
265
- text,
266
- elm: undefined,
267
- key: data ? data.key : undefined
268
- });
269
- };
270
- };
271
- const createElement = createElementWithModules(defaultModules);
272
-
273
- function vnode(sel, data, children, text, elm) {
274
- const key = data === undefined ? undefined : data.key;
275
- return { sel, data, children, text, elm, key };
276
- }
277
-
278
- /* eslint-disable @typescript-eslint/no-namespace, import/export */
279
- function Fragment(data, ...children) {
280
- const flatChildren = flattenAndFilter(children, []);
281
- if (flatChildren.length === 1 &&
282
- !flatChildren[0].sel &&
283
- flatChildren[0].text) {
284
- // only child is a simple text node, pass as text for a simpler vtree
285
- return vnode(undefined, undefined, undefined, flatChildren[0].text, undefined);
286
- }
287
- else {
288
- return vnode(undefined, data !== null && data !== void 0 ? data : {}, flatChildren, undefined, undefined);
289
- }
290
- }
291
- function flattenAndFilter(children, flattened) {
292
- for (const child of children) {
293
- // filter out falsey children, except 0 since zero can be a valid value e.g inside a chart
294
- if (child !== undefined &&
295
- child !== null &&
296
- child !== false &&
297
- child !== "") {
298
- if (Array.isArray(child)) {
299
- flattenAndFilter(child, flattened);
300
- }
301
- else if (typeof child === "string" ||
302
- typeof child === "number" ||
303
- typeof child === "boolean") {
304
- flattened.push(vnode(undefined, undefined, undefined, String(child), undefined));
305
- }
306
- else {
307
- flattened.push(child);
308
- }
309
- }
310
- }
311
- return flattened;
312
- }
313
-
314
16
  exports.Fragment = Fragment;
315
- exports.jsx = createElement;
17
+ //# sourceMappingURL=jsx.cjs.js.map