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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zag.cjs.js","sources":["../src/cycle/dom/styleModule.ts","../src/zag.ts"],"sourcesContent":["/**\n * Local copy of snabbdom's styleModule with a fixed `window` guard.\n *\n * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment\n * evaluates `window` directly (via `window === null || window === void 0`)\n * before the `typeof` check, causing a ReferenceError in Node.js environments.\n *\n * This copy restores the safe `typeof window !== \"undefined\"` guard while\n * keeping all other 3.6.x improvements (arrow functions, `in` operator for\n * style removal checks, etc.).\n */\n\nimport {Module} from './snabbdom';\n\ntype VNode = { elm?: any; data?: any };\n\n// Safe guard: `typeof window` never throws, even if `window` is undeclared.\nconst raf =\n (typeof window !== 'undefined' &&\n typeof window.requestAnimationFrame === 'function' &&\n window.requestAnimationFrame.bind(window)) ||\n setTimeout;\n\nconst nextFrame = (fn: () => void) => {\n raf(() => {\n raf(fn);\n });\n};\n\nlet reflowForced = false;\n\nfunction setNextFrame(obj: any, prop: string, val: string) {\n nextFrame(() => {\n obj[prop] = val;\n });\n}\n\nfunction updateStyle(oldVnode: VNode, vnode: VNode) {\n let cur: any;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let oldStyle = (oldVnode.data as any).style as Record<string, any> | undefined;\n let style = (vnode.data as any).style as Record<string, any> | undefined;\n if (!oldStyle && !style) return;\n if (oldStyle === style) return;\n oldStyle = oldStyle || {};\n style = style || {};\n const oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!(name in style)) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n } else {\n (elm.style as any)[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (const name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== (oldStyle as any).delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n } else if (name !== 'remove' && cur !== (oldStyle as any)[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n } else {\n (elm.style as any)[name] = cur;\n }\n }\n }\n}\n\nfunction applyDestroyStyle(vnode: VNode) {\n let style: Record<string, string>;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n const s = (vnode.data as any).style;\n if (!s || !(style = s.destroy)) return;\n for (name in style) {\n (elm.style as any)[name] = style[name];\n }\n}\n\nfunction applyRemoveStyle(vnode: VNode, rm: () => void) {\n const s = (vnode.data as any).style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n if (!reflowForced) {\n // Force reflow so transition styles apply immediately\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (vnode.elm as HTMLElement).offsetLeft;\n reflowForced = true;\n }\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let i = 0;\n const style = s.remove;\n let amount = 0;\n const applied: string[] = [];\n for (name in style) {\n applied.push(name);\n (elm.style as any)[name] = style[name];\n }\n const compStyle = getComputedStyle(elm);\n const props = (compStyle as any)['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1) amount++;\n }\n elm.addEventListener('transitionend', (ev: TransitionEvent) => {\n if (ev.target === elm) --amount;\n if (amount === 0) rm();\n });\n}\n\nfunction forceReflow() {\n reflowForced = false;\n}\n\nexport const styleModule: Module = {\n pre: forceReflow,\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle,\n};\n","/*\n * 'sygnal/zag' (PLAN-5 W-2, D203): `fromZag(zag, render, options)`, a Zag.js machine as a widget\n * tag (defineWidget). Generalises experiment E3.\n *\n * import * as menu from '@zag-js/menu'\n * export const Actions = fromZag(menu, (api, props) => (\n * <div>\n * <button {...api.getTriggerProps()}>{props.label}</button>\n * <div {...api.getPositionerProps()}>\n * <div {...api.getContentProps()}>\n * {props.items.map((i) => <div {...api.getItemProps({ value: i.value })}>{i.label}</div>)}\n * </div>\n * </div>\n * </div>\n * ), { events: { select: ['onSelect', (d) => d.value] }, commands: { open: (api) => api.setOpen(true) } })\n * // view: <Actions className=\"actions\" label=\"Actions\" items={ITEMS} />\n * // intent: PICK: DOM.select('.actions').events('select').detail()\n *\n * - The machine runs on @zag-js/vanilla's VanillaMachine (an optional peer, pinned ~1.45.0 with\n * the machine packages: Zag's packages depend on each other's exact versions). One per host.\n * - Props: the machine's props are a getter over the newest widget props (`options.props(p, x)`\n * maps them; by default they pass as they are), memoised per render and per `x.refresh()`. A\n * render with other props sets them and notifies the machine, so its watchers see controlled\n * props (`open`, `value`) change. No props are captured at mount (E3's stale-props bug).\n * VanillaMachine.updateProps is not used: it merges into the previous props (a removed prop\n * stays) and wraps the previous getter on every call.\n * - Zag's prop getters are normalised for snabbdom (`zagProps`): `{ attrs, on, props, style }`,\n * which a JSX spread routes to those modules. `render(api, props, x)` returns one vnode (an\n * array is wrapped in a `display: contents` div), patched into the host by a private snabbdom\n * patch (the host is opaque to the app's patch). It re-runs when the machine notifies and when\n * the props change.\n * - Machine callbacks become dispatched DOM events on the host: `events: { name: 'onX' }` (detail:\n * Zag's details object) or `{ name: ['onX', (details, x) => detail] }`; `{ name: null }` only\n * declares it (a callback from the props mapping dispatches it with `x.dispatch`). A callback\n * the props mapping also returns runs first.\n * - Commands: `commands: { open: (api, options, x) => api.setOpen(true) }` (D102 element commands).\n * - The instance (`t.widget(sel).instance` with `dom: 'real'`) is `x`: `{ el, api(), machine,\n * refresh() }` plus whatever the part keeps on it.\n * - Errors (G-409): a render that throws while the widget mounts stops the machine and is SYG660;\n * on a later, machine-driven redraw it stops the machine and goes to the widget's error path\n * (mount's `error`): SYG661 and the owner's onError fallback in its place. Either way the\n * rendered content is released (refs nulled, destroy hooks, listeners off; G-438).\n * - The render is plain elements only (G-410): it is patched outside the component tree, so a\n * Sygnal component, a widget tag or special JSX inside it can't run (SYG669 in dev).\n * - Wrong arguments throw SYG667 when the widget is defined.\n *\n * Separate entry: rollup turns './index' into the external 'sygnal' and keeps snabbdom and\n * @zag-js/* external (D209), so importing 'sygnal' or 'sygnal/ui' never needs Zag.\n */\nimport {VanillaMachine} from '@zag-js/vanilla'\nimport {init} from 'snabbdom/build/init.js'\nimport {h} from 'snabbdom/build/h.js'\nimport {classModule} from 'snabbdom/build/modules/class.js'\nimport {propsModule} from 'snabbdom/build/modules/props.js'\nimport {attributesModule} from 'snabbdom/build/modules/attributes.js'\nimport {datasetModule} from 'snabbdom/build/modules/dataset.js'\nimport {eventListenersModule} from 'snabbdom/build/modules/eventlisteners.js'\nimport {styleModule} from './cycle/dom/styleModule'\nimport {defineWidget} from './index'\n\nconst patch = init([classModule, propsModule, attributesModule, datasetModule, styleModule, eventListenersModule])\n\n// React-style event props whose DOM event has another name (as @zag-js/vanilla's normalizeProps)\nconst EV: any = {Focus: 'focusin', Blur: 'focusout', Change: 'input', DoubleClick: 'dblclick'}\nconst NAME: any = {htmlFor: 'for', className: 'class'}\n// enumerated attributes whose false must be written, not removed\nconst STR = /^(aria-|spellcheck$|draggable$|contenteditable$)/i\n\n/**\n * One Zag prop bag (`api.getTriggerProps()` with any normaliser, or raw) as snabbdom data\n * `{ attrs, on, props, style }`: `onX` handlers to `on` (onChange → input, onFocus → focusin, …),\n * `value` / `checked` (and their `default…`) to `props`, `style`, and the rest to `attrs` (names\n * lowercased, htmlFor → for; an ARIA boolean as \"true\" / \"false\"; false removes the attribute).\n */\nexport const zagProps = (bag: any): any => {\n const attrs: any = {}, on: any = {}, props: any = {}, style: any = {}\n for (const k in bag) {\n const v = bag[k]\n if (v === undefined) continue\n if (typeof v == 'function' && /^on[A-Z]/.test(k)) on[EV[k.slice(2)] || k.slice(2).toLowerCase()] = v\n else if (k == 'style') Object.assign(style, v)\n else if (/^(default)?(value|checked|Value|Checked)$/.test(k)) props[k.replace(/^default(.)/, (_, c) => c.toLowerCase())] = v\n else attrs[NAME[k] || (/^(viewBox|preserveAspectRatio)$/.test(k) ? k : k.toLowerCase())] = typeof v == 'boolean' && STR.test(k) ? '' + v : v\n }\n return {attrs, on, props, style}\n}\n\n// Zag's normaliser shape (@zag-js/types createNormalizer): every element kind maps through zagProps\nconst normalize: any = new Proxy({}, {get: (_, k) => (k == 'style' ? (s: any) => ({...s}) : zagProps)})\n\nconst fail = (m: string): never => {\n throw new Error(`[Sygnal SYG667] ${m}. https://sygnal.js.org/reference/errors#syg667`)\n}\n\nlet ids = 0\n\n// snabbdom's destroy pass over a rendered tree, without removing it from the DOM (G-412)\nconst release = (v: any) => {\n const d = v?.data\n if (d) { d.hook?.destroy?.(v); (eventListenersModule.destroy as any)(v) }\n v?.children?.forEach(release)\n}\n\n// G-410 (dev only): what a render must not contain: a component (data.c), a widget tag, special JSX.\n// G-439 / G-470: a marker is a vnode the pragma made from a marker function (`data.m`), with or\n// without props (`<Suspense>`, `h(Transition, null)`, `<Slot>`); a plain <slot> element is not,\n// whatever its children\nconst SPECIAL: any = {transition: 'Transition', portal: 'Portal', collection: 'Collection', switchable: 'Switchable',\n suspense: 'Suspense', clientonly: 'ClientOnly', 'virtual-collection': 'VirtualCollection', slot: 'Slot'}\nconst foreign = (v: any, out: string[]): string[] => {\n if (!v || typeof v != 'object') return out\n if (Array.isArray(v)) { v.forEach(c => foreign(c, out)); return out }\n const d = v.data\n let t = d?.c ? v.sel : v.sel == 'widget' && d?.ww ? d.ww.def.name || 'widget' : d?.m && SPECIAL[v.sel]\n if (t) out.includes(t = '<' + t + '>') || out.push(t)\n return foreign(v.children, out)\n}\n\nfunction start(zag: any, render: any, o: any, el: any, p0: any, dispatch: any, error: any, w: any): any {\n // live: 0 while start() runs (a throwing draw throws: SYG660), then 1 (it goes to error: SYG661)\n // f669: this instance's render had foreign content (G-470: per instance, not on the widget tag,\n // so another app or test, or diagnostics turned on later, still gets its report)\n let props = p0, memo: any, on = 1, busy = 0, again = 0, live = 0, f669 = 0\n let vn: any = el.appendChild(document.createElement('div'))\n const id = p0.id ?? 'sygnal-zag-' + ++ids\n // the instance (the part's per-instance fields too); the props mapping gets it from the start\n const x: any = {el, dispatch}\n // the events' callbacks: dispatch on the host\n const cbs: any = {}\n for (const name in o.events) {\n const [cb, map] = ([] as any[]).concat(o.events[name])\n // null: declared only (the part dispatches it with x.dispatch)\n if (!cb) continue\n const prev = cbs[cb]\n cbs[cb] = (d: any) => { prev?.(d); dispatch(name, map ? map(d, x) : d) }\n }\n // the machine's props: the newest widget props, mapped (memoised until the next render or refresh)\n const machineProps = () => {\n if (memo) return memo\n const mp = o.props ? o.props(props, x) : props\n const out: any = {...mp, id, getRootNode: () => (el.isConnected ? el.getRootNode() : document)}\n for (const cb in cbs) {\n const u = mp[cb]\n out[cb] = u ? (d: any) => { u(d); cbs[cb](d) } : cbs[cb]\n }\n return (memo = out)\n }\n // notify(): a public field of VanillaMachine (typed private), the one way to re-run its watchers\n // without updateProps (Zag pinned ~1.45.0; the tests cover it)\n const m: any = new VanillaMachine(zag.machine, machineProps)\n const api = () => zag.connect(m.service, normalize)\n const draw = () => {\n if (!on) return\n if (busy) return void (again = 1)\n busy = 1\n try {\n do {\n again = 0\n const out = render(api(), props, x)\n // G-439: once found, this instance's render isn't walked again (the report is once per\n // widget tag: checks/widgets.ts)\n const dev = (globalThis as any).__SYGNAL_DIAGNOSTICS__?.widget\n if (dev && !f669) { const f = foreign(out, []); f.length && (f669 = 1, dev(669, w(), undefined, f)) }\n vn = patch(vn, Array.isArray(out) ? h('div', {style: {display: 'contents'}}, out) : out || h('!', ''))\n } while (again && on)\n } catch (e) {\n // G-409: the machine stops; a machine-driven redraw (an event handler, a watcher) hands the\n // error to the widget (SYG661 + the owner's onError fallback) instead of throwing into Zag\n halt()\n // G-438: a failed mount has no unmount: its content is released here\n if (!live) { free(); throw e }\n error(e)\n } finally { busy = 0 }\n }\n const halt = () => {\n if (!on) return\n on = 0\n try { m.stop() } catch (_) {}\n }\n // G-412: the content stays (a <Transition> leave animates the host with it); its destroy hooks\n // run (refs in the render) and its listeners come off, as a patch to nothing would do. Once,\n // and only for a rendered vnode (before the first draw, vn is the placeholder element). G-472:\n // vn is cleared first, so a destroy hook that stops the widget (or throws) doesn't release twice\n const free = () => {\n const v = vn\n vn = 0\n if (v?.sel !== undefined) release(v)\n }\n Object.assign(x, {\n machine: m,\n api,\n refresh: () => { memo = 0; m.notify() },\n set: (p: any) => { props = p; x.refresh() },\n // G-438: after a halt (G-409) the machine is already stopped, and the content is still released\n stop: () => {\n const was = on\n on = 0\n try { was && m.stop() } finally { free() }\n },\n })\n m.subscribe(draw)\n draw()\n // G-409: a start() or second draw that throws leaves no running machine (then SYG660)\n try { m.start() } catch (e) { halt(); free(); throw e }\n draw()\n live = 1\n return x\n}\n\n/**\n * A Zag machine as a widget tag: `fromZag(zag, render, options)` where `zag` is a machine package\n * (`import * as menu from '@zag-js/menu'`: its `machine` and `connect`), `render(api, props, x)`\n * renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).\n * Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`\n * ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's\n * `tag`, `name`, `fallback`, `hostProps`, `ownProps`.\n */\nexport function fromZag(zag: any, render: any, options: any = {}): any {\n if (!zag || !zag.machine || typeof zag.connect != 'function') fail('fromZag(zag, render): the first argument is not a Zag machine package (import * as menu from \\'@zag-js/menu\\')')\n if (typeof render != 'function') fail('fromZag(zag, render): render must be a function (api, props) => vnode')\n const o = options, commands: any = {}\n let tag: any\n for (const c in o.commands) commands[c] = (x: any, opt: any) => o.commands[c](x.api(), opt, x)\n return tag = defineWidget({\n tag: o.tag,\n name: o.name,\n fallback: o.fallback,\n hostProps: o.hostProps,\n ownProps: o.ownProps,\n // D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144\n $own: o.$own,\n events: Object.keys(o.events || {}),\n commands,\n mount: (el: any, p: any, dispatch: any, error: any) => start(zag, render, o, el, p, dispatch, error, () => tag),\n update: (x: any, p: any) => x.set(p),\n unmount: (x: any) => x.stop(),\n })\n}\n"],"names":["init","classModule","propsModule","attributesModule","datasetModule","eventListenersModule","VanillaMachine","h","defineWidget"],"mappings":"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"}
@@ -0,0 +1,405 @@
1
+ import { VanillaMachine } from '@zag-js/vanilla';
2
+ import { init } from 'snabbdom/build/init.js';
3
+ import { h } from 'snabbdom/build/h.js';
4
+ import { classModule } from 'snabbdom/build/modules/class.js';
5
+ import { propsModule } from 'snabbdom/build/modules/props.js';
6
+ import { attributesModule } from 'snabbdom/build/modules/attributes.js';
7
+ import { datasetModule } from 'snabbdom/build/modules/dataset.js';
8
+ import { eventListenersModule } from 'snabbdom/build/modules/eventlisteners.js';
9
+ import { defineWidget } from 'sygnal';
10
+
11
+ /**
12
+ * Local copy of snabbdom's styleModule with a fixed `window` guard.
13
+ *
14
+ * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment
15
+ * evaluates `window` directly (via `window === null || window === void 0`)
16
+ * before the `typeof` check, causing a ReferenceError in Node.js environments.
17
+ *
18
+ * This copy restores the safe `typeof window !== "undefined"` guard while
19
+ * keeping all other 3.6.x improvements (arrow functions, `in` operator for
20
+ * style removal checks, etc.).
21
+ */
22
+ // Safe guard: `typeof window` never throws, even if `window` is undeclared.
23
+ const raf = (typeof window !== 'undefined' &&
24
+ typeof window.requestAnimationFrame === 'function' &&
25
+ window.requestAnimationFrame.bind(window)) ||
26
+ setTimeout;
27
+ const nextFrame = (fn) => {
28
+ raf(() => {
29
+ raf(fn);
30
+ });
31
+ };
32
+ let reflowForced = false;
33
+ function setNextFrame(obj, prop, val) {
34
+ nextFrame(() => {
35
+ obj[prop] = val;
36
+ });
37
+ }
38
+ function updateStyle(oldVnode, vnode) {
39
+ let cur;
40
+ let name;
41
+ const elm = vnode.elm;
42
+ let oldStyle = oldVnode.data.style;
43
+ let style = vnode.data.style;
44
+ if (!oldStyle && !style)
45
+ return;
46
+ if (oldStyle === style)
47
+ return;
48
+ oldStyle = oldStyle || {};
49
+ style = style || {};
50
+ const oldHasDel = 'delayed' in oldStyle;
51
+ for (name in oldStyle) {
52
+ if (!(name in style)) {
53
+ if (name[0] === '-' && name[1] === '-') {
54
+ elm.style.removeProperty(name);
55
+ }
56
+ else {
57
+ elm.style[name] = '';
58
+ }
59
+ }
60
+ }
61
+ for (name in style) {
62
+ cur = style[name];
63
+ if (name === 'delayed' && style.delayed) {
64
+ for (const name2 in style.delayed) {
65
+ cur = style.delayed[name2];
66
+ if (!oldHasDel || cur !== oldStyle.delayed[name2]) {
67
+ setNextFrame(elm.style, name2, cur);
68
+ }
69
+ }
70
+ }
71
+ else if (name !== 'remove' && cur !== oldStyle[name]) {
72
+ if (name[0] === '-' && name[1] === '-') {
73
+ elm.style.setProperty(name, cur);
74
+ }
75
+ else {
76
+ elm.style[name] = cur;
77
+ }
78
+ }
79
+ }
80
+ }
81
+ function applyDestroyStyle(vnode) {
82
+ let style;
83
+ let name;
84
+ const elm = vnode.elm;
85
+ const s = vnode.data.style;
86
+ if (!s || !(style = s.destroy))
87
+ return;
88
+ for (name in style) {
89
+ elm.style[name] = style[name];
90
+ }
91
+ }
92
+ function applyRemoveStyle(vnode, rm) {
93
+ const s = vnode.data.style;
94
+ if (!s || !s.remove) {
95
+ rm();
96
+ return;
97
+ }
98
+ if (!reflowForced) {
99
+ // Force reflow so transition styles apply immediately
100
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
101
+ vnode.elm.offsetLeft;
102
+ reflowForced = true;
103
+ }
104
+ let name;
105
+ const elm = vnode.elm;
106
+ let i = 0;
107
+ const style = s.remove;
108
+ let amount = 0;
109
+ const applied = [];
110
+ for (name in style) {
111
+ applied.push(name);
112
+ elm.style[name] = style[name];
113
+ }
114
+ const compStyle = getComputedStyle(elm);
115
+ const props = compStyle['transition-property'].split(', ');
116
+ for (; i < props.length; ++i) {
117
+ if (applied.indexOf(props[i]) !== -1)
118
+ amount++;
119
+ }
120
+ elm.addEventListener('transitionend', (ev) => {
121
+ if (ev.target === elm)
122
+ --amount;
123
+ if (amount === 0)
124
+ rm();
125
+ });
126
+ }
127
+ function forceReflow() {
128
+ reflowForced = false;
129
+ }
130
+ const styleModule = {
131
+ pre: forceReflow,
132
+ create: updateStyle,
133
+ update: updateStyle,
134
+ destroy: applyDestroyStyle,
135
+ remove: applyRemoveStyle,
136
+ };
137
+
138
+ /*
139
+ * 'sygnal/zag' (PLAN-5 W-2, D203): `fromZag(zag, render, options)`, a Zag.js machine as a widget
140
+ * tag (defineWidget). Generalises experiment E3.
141
+ *
142
+ * import * as menu from '@zag-js/menu'
143
+ * export const Actions = fromZag(menu, (api, props) => (
144
+ * <div>
145
+ * <button {...api.getTriggerProps()}>{props.label}</button>
146
+ * <div {...api.getPositionerProps()}>
147
+ * <div {...api.getContentProps()}>
148
+ * {props.items.map((i) => <div {...api.getItemProps({ value: i.value })}>{i.label}</div>)}
149
+ * </div>
150
+ * </div>
151
+ * </div>
152
+ * ), { events: { select: ['onSelect', (d) => d.value] }, commands: { open: (api) => api.setOpen(true) } })
153
+ * // view: <Actions className="actions" label="Actions" items={ITEMS} />
154
+ * // intent: PICK: DOM.select('.actions').events('select').detail()
155
+ *
156
+ * - The machine runs on @zag-js/vanilla's VanillaMachine (an optional peer, pinned ~1.45.0 with
157
+ * the machine packages: Zag's packages depend on each other's exact versions). One per host.
158
+ * - Props: the machine's props are a getter over the newest widget props (`options.props(p, x)`
159
+ * maps them; by default they pass as they are), memoised per render and per `x.refresh()`. A
160
+ * render with other props sets them and notifies the machine, so its watchers see controlled
161
+ * props (`open`, `value`) change. No props are captured at mount (E3's stale-props bug).
162
+ * VanillaMachine.updateProps is not used: it merges into the previous props (a removed prop
163
+ * stays) and wraps the previous getter on every call.
164
+ * - Zag's prop getters are normalised for snabbdom (`zagProps`): `{ attrs, on, props, style }`,
165
+ * which a JSX spread routes to those modules. `render(api, props, x)` returns one vnode (an
166
+ * array is wrapped in a `display: contents` div), patched into the host by a private snabbdom
167
+ * patch (the host is opaque to the app's patch). It re-runs when the machine notifies and when
168
+ * the props change.
169
+ * - Machine callbacks become dispatched DOM events on the host: `events: { name: 'onX' }` (detail:
170
+ * Zag's details object) or `{ name: ['onX', (details, x) => detail] }`; `{ name: null }` only
171
+ * declares it (a callback from the props mapping dispatches it with `x.dispatch`). A callback
172
+ * the props mapping also returns runs first.
173
+ * - Commands: `commands: { open: (api, options, x) => api.setOpen(true) }` (D102 element commands).
174
+ * - The instance (`t.widget(sel).instance` with `dom: 'real'`) is `x`: `{ el, api(), machine,
175
+ * refresh() }` plus whatever the part keeps on it.
176
+ * - Errors (G-409): a render that throws while the widget mounts stops the machine and is SYG660;
177
+ * on a later, machine-driven redraw it stops the machine and goes to the widget's error path
178
+ * (mount's `error`): SYG661 and the owner's onError fallback in its place. Either way the
179
+ * rendered content is released (refs nulled, destroy hooks, listeners off; G-438).
180
+ * - The render is plain elements only (G-410): it is patched outside the component tree, so a
181
+ * Sygnal component, a widget tag or special JSX inside it can't run (SYG669 in dev).
182
+ * - Wrong arguments throw SYG667 when the widget is defined.
183
+ *
184
+ * Separate entry: rollup turns './index' into the external 'sygnal' and keeps snabbdom and
185
+ * @zag-js/* external (D209), so importing 'sygnal' or 'sygnal/ui' never needs Zag.
186
+ */
187
+ const patch = init([classModule, propsModule, attributesModule, datasetModule, styleModule, eventListenersModule]);
188
+ // React-style event props whose DOM event has another name (as @zag-js/vanilla's normalizeProps)
189
+ const EV = { Focus: 'focusin', Blur: 'focusout', Change: 'input', DoubleClick: 'dblclick' };
190
+ const NAME = { htmlFor: 'for', className: 'class' };
191
+ // enumerated attributes whose false must be written, not removed
192
+ const STR = /^(aria-|spellcheck$|draggable$|contenteditable$)/i;
193
+ /**
194
+ * One Zag prop bag (`api.getTriggerProps()` with any normaliser, or raw) as snabbdom data
195
+ * `{ attrs, on, props, style }`: `onX` handlers to `on` (onChange → input, onFocus → focusin, …),
196
+ * `value` / `checked` (and their `default…`) to `props`, `style`, and the rest to `attrs` (names
197
+ * lowercased, htmlFor → for; an ARIA boolean as "true" / "false"; false removes the attribute).
198
+ */
199
+ const zagProps = (bag) => {
200
+ const attrs = {}, on = {}, props = {}, style = {};
201
+ for (const k in bag) {
202
+ const v = bag[k];
203
+ if (v === undefined)
204
+ continue;
205
+ if (typeof v == 'function' && /^on[A-Z]/.test(k))
206
+ on[EV[k.slice(2)] || k.slice(2).toLowerCase()] = v;
207
+ else if (k == 'style')
208
+ Object.assign(style, v);
209
+ else if (/^(default)?(value|checked|Value|Checked)$/.test(k))
210
+ props[k.replace(/^default(.)/, (_, c) => c.toLowerCase())] = v;
211
+ else
212
+ attrs[NAME[k] || (/^(viewBox|preserveAspectRatio)$/.test(k) ? k : k.toLowerCase())] = typeof v == 'boolean' && STR.test(k) ? '' + v : v;
213
+ }
214
+ return { attrs, on, props, style };
215
+ };
216
+ // Zag's normaliser shape (@zag-js/types createNormalizer): every element kind maps through zagProps
217
+ const normalize = new Proxy({}, { get: (_, k) => (k == 'style' ? (s) => ({ ...s }) : zagProps) });
218
+ const fail = (m) => {
219
+ throw new Error(`[Sygnal SYG667] ${m}. https://sygnal.js.org/reference/errors#syg667`);
220
+ };
221
+ let ids = 0;
222
+ // snabbdom's destroy pass over a rendered tree, without removing it from the DOM (G-412)
223
+ const release = (v) => {
224
+ const d = v?.data;
225
+ if (d) {
226
+ d.hook?.destroy?.(v);
227
+ eventListenersModule.destroy(v);
228
+ }
229
+ v?.children?.forEach(release);
230
+ };
231
+ // G-410 (dev only): what a render must not contain: a component (data.c), a widget tag, special JSX.
232
+ // G-439 / G-470: a marker is a vnode the pragma made from a marker function (`data.m`), with or
233
+ // without props (`<Suspense>`, `h(Transition, null)`, `<Slot>`); a plain <slot> element is not,
234
+ // whatever its children
235
+ const SPECIAL = { transition: 'Transition', portal: 'Portal', collection: 'Collection', switchable: 'Switchable',
236
+ suspense: 'Suspense', clientonly: 'ClientOnly', 'virtual-collection': 'VirtualCollection', slot: 'Slot' };
237
+ const foreign = (v, out) => {
238
+ if (!v || typeof v != 'object')
239
+ return out;
240
+ if (Array.isArray(v)) {
241
+ v.forEach(c => foreign(c, out));
242
+ return out;
243
+ }
244
+ const d = v.data;
245
+ let t = d?.c ? v.sel : v.sel == 'widget' && d?.ww ? d.ww.def.name || 'widget' : d?.m && SPECIAL[v.sel];
246
+ if (t)
247
+ out.includes(t = '<' + t + '>') || out.push(t);
248
+ return foreign(v.children, out);
249
+ };
250
+ function start(zag, render, o, el, p0, dispatch, error, w) {
251
+ // live: 0 while start() runs (a throwing draw throws: SYG660), then 1 (it goes to error: SYG661)
252
+ // f669: this instance's render had foreign content (G-470: per instance, not on the widget tag,
253
+ // so another app or test, or diagnostics turned on later, still gets its report)
254
+ let props = p0, memo, on = 1, busy = 0, again = 0, live = 0, f669 = 0;
255
+ let vn = el.appendChild(document.createElement('div'));
256
+ const id = p0.id ?? 'sygnal-zag-' + ++ids;
257
+ // the instance (the part's per-instance fields too); the props mapping gets it from the start
258
+ const x = { el, dispatch };
259
+ // the events' callbacks: dispatch on the host
260
+ const cbs = {};
261
+ for (const name in o.events) {
262
+ const [cb, map] = [].concat(o.events[name]);
263
+ // null: declared only (the part dispatches it with x.dispatch)
264
+ if (!cb)
265
+ continue;
266
+ const prev = cbs[cb];
267
+ cbs[cb] = (d) => { prev?.(d); dispatch(name, map ? map(d, x) : d); };
268
+ }
269
+ // the machine's props: the newest widget props, mapped (memoised until the next render or refresh)
270
+ const machineProps = () => {
271
+ if (memo)
272
+ return memo;
273
+ const mp = o.props ? o.props(props, x) : props;
274
+ const out = { ...mp, id, getRootNode: () => (el.isConnected ? el.getRootNode() : document) };
275
+ for (const cb in cbs) {
276
+ const u = mp[cb];
277
+ out[cb] = u ? (d) => { u(d); cbs[cb](d); } : cbs[cb];
278
+ }
279
+ return (memo = out);
280
+ };
281
+ // notify(): a public field of VanillaMachine (typed private), the one way to re-run its watchers
282
+ // without updateProps (Zag pinned ~1.45.0; the tests cover it)
283
+ const m = new VanillaMachine(zag.machine, machineProps);
284
+ const api = () => zag.connect(m.service, normalize);
285
+ const draw = () => {
286
+ if (!on)
287
+ return;
288
+ if (busy)
289
+ return void (again = 1);
290
+ busy = 1;
291
+ try {
292
+ do {
293
+ again = 0;
294
+ const out = render(api(), props, x);
295
+ // G-439: once found, this instance's render isn't walked again (the report is once per
296
+ // widget tag: checks/widgets.ts)
297
+ const dev = globalThis.__SYGNAL_DIAGNOSTICS__?.widget;
298
+ if (dev && !f669) {
299
+ const f = foreign(out, []);
300
+ f.length && (f669 = 1, dev(669, w(), undefined, f));
301
+ }
302
+ vn = patch(vn, Array.isArray(out) ? h('div', { style: { display: 'contents' } }, out) : out || h('!', ''));
303
+ } while (again && on);
304
+ }
305
+ catch (e) {
306
+ // G-409: the machine stops; a machine-driven redraw (an event handler, a watcher) hands the
307
+ // error to the widget (SYG661 + the owner's onError fallback) instead of throwing into Zag
308
+ halt();
309
+ // G-438: a failed mount has no unmount: its content is released here
310
+ if (!live) {
311
+ free();
312
+ throw e;
313
+ }
314
+ error(e);
315
+ }
316
+ finally {
317
+ busy = 0;
318
+ }
319
+ };
320
+ const halt = () => {
321
+ if (!on)
322
+ return;
323
+ on = 0;
324
+ try {
325
+ m.stop();
326
+ }
327
+ catch (_) { }
328
+ };
329
+ // G-412: the content stays (a <Transition> leave animates the host with it); its destroy hooks
330
+ // run (refs in the render) and its listeners come off, as a patch to nothing would do. Once,
331
+ // and only for a rendered vnode (before the first draw, vn is the placeholder element). G-472:
332
+ // vn is cleared first, so a destroy hook that stops the widget (or throws) doesn't release twice
333
+ const free = () => {
334
+ const v = vn;
335
+ vn = 0;
336
+ if (v?.sel !== undefined)
337
+ release(v);
338
+ };
339
+ Object.assign(x, {
340
+ machine: m,
341
+ api,
342
+ refresh: () => { memo = 0; m.notify(); },
343
+ set: (p) => { props = p; x.refresh(); },
344
+ // G-438: after a halt (G-409) the machine is already stopped, and the content is still released
345
+ stop: () => {
346
+ const was = on;
347
+ on = 0;
348
+ try {
349
+ was && m.stop();
350
+ }
351
+ finally {
352
+ free();
353
+ }
354
+ },
355
+ });
356
+ m.subscribe(draw);
357
+ draw();
358
+ // G-409: a start() or second draw that throws leaves no running machine (then SYG660)
359
+ try {
360
+ m.start();
361
+ }
362
+ catch (e) {
363
+ halt();
364
+ free();
365
+ throw e;
366
+ }
367
+ draw();
368
+ live = 1;
369
+ return x;
370
+ }
371
+ /**
372
+ * A Zag machine as a widget tag: `fromZag(zag, render, options)` where `zag` is a machine package
373
+ * (`import * as menu from '@zag-js/menu'`: its `machine` and `connect`), `render(api, props, x)`
374
+ * renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).
375
+ * Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`
376
+ * ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's
377
+ * `tag`, `name`, `fallback`, `hostProps`, `ownProps`.
378
+ */
379
+ function fromZag(zag, render, options = {}) {
380
+ if (!zag || !zag.machine || typeof zag.connect != 'function')
381
+ fail('fromZag(zag, render): the first argument is not a Zag machine package (import * as menu from \'@zag-js/menu\')');
382
+ if (typeof render != 'function')
383
+ fail('fromZag(zag, render): render must be a function (api, props) => vnode');
384
+ const o = options, commands = {};
385
+ let tag;
386
+ for (const c in o.commands)
387
+ commands[c] = (x, opt) => o.commands[c](x.api(), opt, x);
388
+ return tag = defineWidget({
389
+ tag: o.tag,
390
+ name: o.name,
391
+ fallback: o.fallback,
392
+ hostProps: o.hostProps,
393
+ ownProps: o.ownProps,
394
+ // D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144
395
+ $own: o.$own,
396
+ events: Object.keys(o.events || {}),
397
+ commands,
398
+ mount: (el, p, dispatch, error) => start(zag, render, o, el, p, dispatch, error, () => tag),
399
+ update: (x, p) => x.set(p),
400
+ unmount: (x) => x.stop(),
401
+ });
402
+ }
403
+
404
+ export { fromZag, zagProps };
405
+ //# sourceMappingURL=zag.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zag.esm.js","sources":["../src/cycle/dom/styleModule.ts","../src/zag.ts"],"sourcesContent":["/**\n * Local copy of snabbdom's styleModule with a fixed `window` guard.\n *\n * snabbdom 3.6.3 introduced a regression where the top-level `raf` assignment\n * evaluates `window` directly (via `window === null || window === void 0`)\n * before the `typeof` check, causing a ReferenceError in Node.js environments.\n *\n * This copy restores the safe `typeof window !== \"undefined\"` guard while\n * keeping all other 3.6.x improvements (arrow functions, `in` operator for\n * style removal checks, etc.).\n */\n\nimport {Module} from './snabbdom';\n\ntype VNode = { elm?: any; data?: any };\n\n// Safe guard: `typeof window` never throws, even if `window` is undeclared.\nconst raf =\n (typeof window !== 'undefined' &&\n typeof window.requestAnimationFrame === 'function' &&\n window.requestAnimationFrame.bind(window)) ||\n setTimeout;\n\nconst nextFrame = (fn: () => void) => {\n raf(() => {\n raf(fn);\n });\n};\n\nlet reflowForced = false;\n\nfunction setNextFrame(obj: any, prop: string, val: string) {\n nextFrame(() => {\n obj[prop] = val;\n });\n}\n\nfunction updateStyle(oldVnode: VNode, vnode: VNode) {\n let cur: any;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let oldStyle = (oldVnode.data as any).style as Record<string, any> | undefined;\n let style = (vnode.data as any).style as Record<string, any> | undefined;\n if (!oldStyle && !style) return;\n if (oldStyle === style) return;\n oldStyle = oldStyle || {};\n style = style || {};\n const oldHasDel = 'delayed' in oldStyle;\n for (name in oldStyle) {\n if (!(name in style)) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.removeProperty(name);\n } else {\n (elm.style as any)[name] = '';\n }\n }\n }\n for (name in style) {\n cur = style[name];\n if (name === 'delayed' && style.delayed) {\n for (const name2 in style.delayed) {\n cur = style.delayed[name2];\n if (!oldHasDel || cur !== (oldStyle as any).delayed[name2]) {\n setNextFrame(elm.style, name2, cur);\n }\n }\n } else if (name !== 'remove' && cur !== (oldStyle as any)[name]) {\n if (name[0] === '-' && name[1] === '-') {\n elm.style.setProperty(name, cur);\n } else {\n (elm.style as any)[name] = cur;\n }\n }\n }\n}\n\nfunction applyDestroyStyle(vnode: VNode) {\n let style: Record<string, string>;\n let name: string;\n const elm = vnode.elm as HTMLElement;\n const s = (vnode.data as any).style;\n if (!s || !(style = s.destroy)) return;\n for (name in style) {\n (elm.style as any)[name] = style[name];\n }\n}\n\nfunction applyRemoveStyle(vnode: VNode, rm: () => void) {\n const s = (vnode.data as any).style;\n if (!s || !s.remove) {\n rm();\n return;\n }\n if (!reflowForced) {\n // Force reflow so transition styles apply immediately\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n (vnode.elm as HTMLElement).offsetLeft;\n reflowForced = true;\n }\n let name: string;\n const elm = vnode.elm as HTMLElement;\n let i = 0;\n const style = s.remove;\n let amount = 0;\n const applied: string[] = [];\n for (name in style) {\n applied.push(name);\n (elm.style as any)[name] = style[name];\n }\n const compStyle = getComputedStyle(elm);\n const props = (compStyle as any)['transition-property'].split(', ');\n for (; i < props.length; ++i) {\n if (applied.indexOf(props[i]) !== -1) amount++;\n }\n elm.addEventListener('transitionend', (ev: TransitionEvent) => {\n if (ev.target === elm) --amount;\n if (amount === 0) rm();\n });\n}\n\nfunction forceReflow() {\n reflowForced = false;\n}\n\nexport const styleModule: Module = {\n pre: forceReflow,\n create: updateStyle,\n update: updateStyle,\n destroy: applyDestroyStyle,\n remove: applyRemoveStyle,\n};\n","/*\n * 'sygnal/zag' (PLAN-5 W-2, D203): `fromZag(zag, render, options)`, a Zag.js machine as a widget\n * tag (defineWidget). Generalises experiment E3.\n *\n * import * as menu from '@zag-js/menu'\n * export const Actions = fromZag(menu, (api, props) => (\n * <div>\n * <button {...api.getTriggerProps()}>{props.label}</button>\n * <div {...api.getPositionerProps()}>\n * <div {...api.getContentProps()}>\n * {props.items.map((i) => <div {...api.getItemProps({ value: i.value })}>{i.label}</div>)}\n * </div>\n * </div>\n * </div>\n * ), { events: { select: ['onSelect', (d) => d.value] }, commands: { open: (api) => api.setOpen(true) } })\n * // view: <Actions className=\"actions\" label=\"Actions\" items={ITEMS} />\n * // intent: PICK: DOM.select('.actions').events('select').detail()\n *\n * - The machine runs on @zag-js/vanilla's VanillaMachine (an optional peer, pinned ~1.45.0 with\n * the machine packages: Zag's packages depend on each other's exact versions). One per host.\n * - Props: the machine's props are a getter over the newest widget props (`options.props(p, x)`\n * maps them; by default they pass as they are), memoised per render and per `x.refresh()`. A\n * render with other props sets them and notifies the machine, so its watchers see controlled\n * props (`open`, `value`) change. No props are captured at mount (E3's stale-props bug).\n * VanillaMachine.updateProps is not used: it merges into the previous props (a removed prop\n * stays) and wraps the previous getter on every call.\n * - Zag's prop getters are normalised for snabbdom (`zagProps`): `{ attrs, on, props, style }`,\n * which a JSX spread routes to those modules. `render(api, props, x)` returns one vnode (an\n * array is wrapped in a `display: contents` div), patched into the host by a private snabbdom\n * patch (the host is opaque to the app's patch). It re-runs when the machine notifies and when\n * the props change.\n * - Machine callbacks become dispatched DOM events on the host: `events: { name: 'onX' }` (detail:\n * Zag's details object) or `{ name: ['onX', (details, x) => detail] }`; `{ name: null }` only\n * declares it (a callback from the props mapping dispatches it with `x.dispatch`). A callback\n * the props mapping also returns runs first.\n * - Commands: `commands: { open: (api, options, x) => api.setOpen(true) }` (D102 element commands).\n * - The instance (`t.widget(sel).instance` with `dom: 'real'`) is `x`: `{ el, api(), machine,\n * refresh() }` plus whatever the part keeps on it.\n * - Errors (G-409): a render that throws while the widget mounts stops the machine and is SYG660;\n * on a later, machine-driven redraw it stops the machine and goes to the widget's error path\n * (mount's `error`): SYG661 and the owner's onError fallback in its place. Either way the\n * rendered content is released (refs nulled, destroy hooks, listeners off; G-438).\n * - The render is plain elements only (G-410): it is patched outside the component tree, so a\n * Sygnal component, a widget tag or special JSX inside it can't run (SYG669 in dev).\n * - Wrong arguments throw SYG667 when the widget is defined.\n *\n * Separate entry: rollup turns './index' into the external 'sygnal' and keeps snabbdom and\n * @zag-js/* external (D209), so importing 'sygnal' or 'sygnal/ui' never needs Zag.\n */\nimport {VanillaMachine} from '@zag-js/vanilla'\nimport {init} from 'snabbdom/build/init.js'\nimport {h} from 'snabbdom/build/h.js'\nimport {classModule} from 'snabbdom/build/modules/class.js'\nimport {propsModule} from 'snabbdom/build/modules/props.js'\nimport {attributesModule} from 'snabbdom/build/modules/attributes.js'\nimport {datasetModule} from 'snabbdom/build/modules/dataset.js'\nimport {eventListenersModule} from 'snabbdom/build/modules/eventlisteners.js'\nimport {styleModule} from './cycle/dom/styleModule'\nimport {defineWidget} from './index'\n\nconst patch = init([classModule, propsModule, attributesModule, datasetModule, styleModule, eventListenersModule])\n\n// React-style event props whose DOM event has another name (as @zag-js/vanilla's normalizeProps)\nconst EV: any = {Focus: 'focusin', Blur: 'focusout', Change: 'input', DoubleClick: 'dblclick'}\nconst NAME: any = {htmlFor: 'for', className: 'class'}\n// enumerated attributes whose false must be written, not removed\nconst STR = /^(aria-|spellcheck$|draggable$|contenteditable$)/i\n\n/**\n * One Zag prop bag (`api.getTriggerProps()` with any normaliser, or raw) as snabbdom data\n * `{ attrs, on, props, style }`: `onX` handlers to `on` (onChange → input, onFocus → focusin, …),\n * `value` / `checked` (and their `default…`) to `props`, `style`, and the rest to `attrs` (names\n * lowercased, htmlFor → for; an ARIA boolean as \"true\" / \"false\"; false removes the attribute).\n */\nexport const zagProps = (bag: any): any => {\n const attrs: any = {}, on: any = {}, props: any = {}, style: any = {}\n for (const k in bag) {\n const v = bag[k]\n if (v === undefined) continue\n if (typeof v == 'function' && /^on[A-Z]/.test(k)) on[EV[k.slice(2)] || k.slice(2).toLowerCase()] = v\n else if (k == 'style') Object.assign(style, v)\n else if (/^(default)?(value|checked|Value|Checked)$/.test(k)) props[k.replace(/^default(.)/, (_, c) => c.toLowerCase())] = v\n else attrs[NAME[k] || (/^(viewBox|preserveAspectRatio)$/.test(k) ? k : k.toLowerCase())] = typeof v == 'boolean' && STR.test(k) ? '' + v : v\n }\n return {attrs, on, props, style}\n}\n\n// Zag's normaliser shape (@zag-js/types createNormalizer): every element kind maps through zagProps\nconst normalize: any = new Proxy({}, {get: (_, k) => (k == 'style' ? (s: any) => ({...s}) : zagProps)})\n\nconst fail = (m: string): never => {\n throw new Error(`[Sygnal SYG667] ${m}. https://sygnal.js.org/reference/errors#syg667`)\n}\n\nlet ids = 0\n\n// snabbdom's destroy pass over a rendered tree, without removing it from the DOM (G-412)\nconst release = (v: any) => {\n const d = v?.data\n if (d) { d.hook?.destroy?.(v); (eventListenersModule.destroy as any)(v) }\n v?.children?.forEach(release)\n}\n\n// G-410 (dev only): what a render must not contain: a component (data.c), a widget tag, special JSX.\n// G-439 / G-470: a marker is a vnode the pragma made from a marker function (`data.m`), with or\n// without props (`<Suspense>`, `h(Transition, null)`, `<Slot>`); a plain <slot> element is not,\n// whatever its children\nconst SPECIAL: any = {transition: 'Transition', portal: 'Portal', collection: 'Collection', switchable: 'Switchable',\n suspense: 'Suspense', clientonly: 'ClientOnly', 'virtual-collection': 'VirtualCollection', slot: 'Slot'}\nconst foreign = (v: any, out: string[]): string[] => {\n if (!v || typeof v != 'object') return out\n if (Array.isArray(v)) { v.forEach(c => foreign(c, out)); return out }\n const d = v.data\n let t = d?.c ? v.sel : v.sel == 'widget' && d?.ww ? d.ww.def.name || 'widget' : d?.m && SPECIAL[v.sel]\n if (t) out.includes(t = '<' + t + '>') || out.push(t)\n return foreign(v.children, out)\n}\n\nfunction start(zag: any, render: any, o: any, el: any, p0: any, dispatch: any, error: any, w: any): any {\n // live: 0 while start() runs (a throwing draw throws: SYG660), then 1 (it goes to error: SYG661)\n // f669: this instance's render had foreign content (G-470: per instance, not on the widget tag,\n // so another app or test, or diagnostics turned on later, still gets its report)\n let props = p0, memo: any, on = 1, busy = 0, again = 0, live = 0, f669 = 0\n let vn: any = el.appendChild(document.createElement('div'))\n const id = p0.id ?? 'sygnal-zag-' + ++ids\n // the instance (the part's per-instance fields too); the props mapping gets it from the start\n const x: any = {el, dispatch}\n // the events' callbacks: dispatch on the host\n const cbs: any = {}\n for (const name in o.events) {\n const [cb, map] = ([] as any[]).concat(o.events[name])\n // null: declared only (the part dispatches it with x.dispatch)\n if (!cb) continue\n const prev = cbs[cb]\n cbs[cb] = (d: any) => { prev?.(d); dispatch(name, map ? map(d, x) : d) }\n }\n // the machine's props: the newest widget props, mapped (memoised until the next render or refresh)\n const machineProps = () => {\n if (memo) return memo\n const mp = o.props ? o.props(props, x) : props\n const out: any = {...mp, id, getRootNode: () => (el.isConnected ? el.getRootNode() : document)}\n for (const cb in cbs) {\n const u = mp[cb]\n out[cb] = u ? (d: any) => { u(d); cbs[cb](d) } : cbs[cb]\n }\n return (memo = out)\n }\n // notify(): a public field of VanillaMachine (typed private), the one way to re-run its watchers\n // without updateProps (Zag pinned ~1.45.0; the tests cover it)\n const m: any = new VanillaMachine(zag.machine, machineProps)\n const api = () => zag.connect(m.service, normalize)\n const draw = () => {\n if (!on) return\n if (busy) return void (again = 1)\n busy = 1\n try {\n do {\n again = 0\n const out = render(api(), props, x)\n // G-439: once found, this instance's render isn't walked again (the report is once per\n // widget tag: checks/widgets.ts)\n const dev = (globalThis as any).__SYGNAL_DIAGNOSTICS__?.widget\n if (dev && !f669) { const f = foreign(out, []); f.length && (f669 = 1, dev(669, w(), undefined, f)) }\n vn = patch(vn, Array.isArray(out) ? h('div', {style: {display: 'contents'}}, out) : out || h('!', ''))\n } while (again && on)\n } catch (e) {\n // G-409: the machine stops; a machine-driven redraw (an event handler, a watcher) hands the\n // error to the widget (SYG661 + the owner's onError fallback) instead of throwing into Zag\n halt()\n // G-438: a failed mount has no unmount: its content is released here\n if (!live) { free(); throw e }\n error(e)\n } finally { busy = 0 }\n }\n const halt = () => {\n if (!on) return\n on = 0\n try { m.stop() } catch (_) {}\n }\n // G-412: the content stays (a <Transition> leave animates the host with it); its destroy hooks\n // run (refs in the render) and its listeners come off, as a patch to nothing would do. Once,\n // and only for a rendered vnode (before the first draw, vn is the placeholder element). G-472:\n // vn is cleared first, so a destroy hook that stops the widget (or throws) doesn't release twice\n const free = () => {\n const v = vn\n vn = 0\n if (v?.sel !== undefined) release(v)\n }\n Object.assign(x, {\n machine: m,\n api,\n refresh: () => { memo = 0; m.notify() },\n set: (p: any) => { props = p; x.refresh() },\n // G-438: after a halt (G-409) the machine is already stopped, and the content is still released\n stop: () => {\n const was = on\n on = 0\n try { was && m.stop() } finally { free() }\n },\n })\n m.subscribe(draw)\n draw()\n // G-409: a start() or second draw that throws leaves no running machine (then SYG660)\n try { m.start() } catch (e) { halt(); free(); throw e }\n draw()\n live = 1\n return x\n}\n\n/**\n * A Zag machine as a widget tag: `fromZag(zag, render, options)` where `zag` is a machine package\n * (`import * as menu from '@zag-js/menu'`: its `machine` and `connect`), `render(api, props, x)`\n * renders its parts with the prop getters spread (`<button {...api.getTriggerProps()}>`).\n * Options: `events` (dispatched name → Zag callback, or [callback, details → detail]), `props`\n * ((widgetProps, x) → machine props), `commands` ((api, options, x) → …), and defineWidget's\n * `tag`, `name`, `fallback`, `hostProps`, `ownProps`.\n */\nexport function fromZag(zag: any, render: any, options: any = {}): any {\n if (!zag || !zag.machine || typeof zag.connect != 'function') fail('fromZag(zag, render): the first argument is not a Zag machine package (import * as menu from \\'@zag-js/menu\\')')\n if (typeof render != 'function') fail('fromZag(zag, render): render must be a function (api, props) => vnode')\n const o = options, commands: any = {}\n let tag: any\n for (const c in o.commands) commands[c] = (x: any, opt: any) => o.commands[c](x.api(), opt, x)\n return tag = defineWidget({\n tag: o.tag,\n name: o.name,\n fallback: o.fallback,\n hostProps: o.hostProps,\n ownProps: o.ownProps,\n // D211: a first-party part (sygnal/ui/menu…): its event names are documented, no SYG144\n $own: o.$own,\n events: Object.keys(o.events || {}),\n commands,\n mount: (el: any, p: any, dispatch: any, error: any) => start(zag, render, o, el, p, dispatch, error, () => tag),\n update: (x: any, p: any) => x.set(p),\n unmount: (x: any) => x.stop(),\n })\n}\n"],"names":[],"mappings":"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"}