sygnal 7.0.0 → 7.2.0-preview.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 (343) hide show
  1. package/CHANGELOG.md +632 -0
  2. package/dist/agent-ui.cjs.js +592 -0
  3. package/dist/agent-ui.cjs.js.map +1 -0
  4. package/dist/agent-ui.esm.js +582 -0
  5. package/dist/agent-ui.esm.js.map +1 -0
  6. package/dist/api.cjs.js +63 -0
  7. package/dist/api.cjs.js.map +1 -0
  8. package/dist/api.esm.js +2 -0
  9. package/dist/api.esm.js.map +1 -0
  10. package/dist/astro/index.cjs.js +968 -4
  11. package/dist/astro/index.cjs.js.map +1 -1
  12. package/dist/astro/index.mjs +968 -4
  13. package/dist/astro/index.mjs.map +1 -1
  14. package/dist/astro/server.cjs.js +73 -45
  15. package/dist/astro/server.cjs.js.map +1 -1
  16. package/dist/astro/server.mjs +73 -45
  17. package/dist/astro/server.mjs.map +1 -1
  18. package/dist/canvas.cjs.js +2919 -0
  19. package/dist/canvas.cjs.js.map +1 -0
  20. package/dist/canvas.esm.js +2866 -0
  21. package/dist/canvas.esm.js.map +1 -0
  22. package/dist/devtools.cjs.js +38 -6
  23. package/dist/devtools.cjs.js.map +1 -1
  24. package/dist/devtools.esm.js +38 -6
  25. package/dist/devtools.esm.js.map +1 -1
  26. package/dist/diagnostics.cjs.js +224 -20
  27. package/dist/diagnostics.cjs.js.map +1 -1
  28. package/dist/diagnostics.esm.js +224 -20
  29. package/dist/diagnostics.esm.js.map +1 -1
  30. package/dist/guide/accessibility.md +1 -1
  31. package/dist/guide/ai-compose.md +150 -0
  32. package/dist/guide/behaviors.md +2 -1
  33. package/dist/guide/collaborative-state.md +265 -0
  34. package/dist/guide/element-commands.md +36 -2
  35. package/dist/guide/forms-reference.md +5 -5
  36. package/dist/guide/forms.md +3 -2
  37. package/dist/guide/http.md +28 -1
  38. package/dist/guide/islands.md +240 -0
  39. package/dist/guide/recipes/code-editor.md +1 -1
  40. package/dist/guide/renderers/agent-ui.md +138 -0
  41. package/dist/guide/renderers/custom-targets.md +126 -0
  42. package/dist/guide/renderers/overview.md +120 -0
  43. package/dist/guide/renderers/react-native.md +128 -0
  44. package/dist/guide/renderers/terminal.md +306 -0
  45. package/dist/guide/renderers/three.md +332 -0
  46. package/dist/guide/renderers/write-once.md +137 -0
  47. package/dist/guide/resources.md +2 -0
  48. package/dist/guide/sandboxed-components.md +223 -0
  49. package/dist/guide/timers.md +32 -5
  50. package/dist/guide/typed-apis.md +442 -0
  51. package/dist/guide/ui/accordion.md +11 -0
  52. package/dist/guide/ui/combobox.md +112 -8
  53. package/dist/guide/ui/dialog.md +96 -20
  54. package/dist/guide/ui/menu.md +57 -5
  55. package/dist/guide/ui/overview.md +8 -4
  56. package/dist/guide/ui/popover.md +69 -9
  57. package/dist/guide/ui/select.md +54 -4
  58. package/dist/guide/ui/tabs.md +1 -1
  59. package/dist/guide/ui/tooltip.md +7 -5
  60. package/dist/guide/virtual-collections.md +3 -0
  61. package/dist/guide/widgets.md +90 -1
  62. package/dist/host.cjs.js +2181 -0
  63. package/dist/host.cjs.js.map +1 -0
  64. package/dist/host.esm.js +2146 -0
  65. package/dist/host.esm.js.map +1 -0
  66. package/dist/index.cjs.js +3948 -586
  67. package/dist/index.cjs.js.map +1 -1
  68. package/dist/index.d.ts +584 -44
  69. package/dist/index.esm.js +3918 -586
  70. package/dist/index.esm.js.map +1 -1
  71. package/dist/primitives.cjs.js +143 -0
  72. package/dist/primitives.cjs.js.map +1 -0
  73. package/dist/primitives.esm.js +133 -0
  74. package/dist/primitives.esm.js.map +1 -0
  75. package/dist/react-native.cjs.js +248 -0
  76. package/dist/react-native.cjs.js.map +1 -0
  77. package/dist/react-native.esm.js +244 -0
  78. package/dist/react-native.esm.js.map +1 -0
  79. package/dist/replay.cjs.js +39 -0
  80. package/dist/replay.cjs.js.map +1 -0
  81. package/dist/replay.esm.js +2 -0
  82. package/dist/replay.esm.js.map +1 -0
  83. package/dist/sandbox-build.cjs.js +140 -0
  84. package/dist/sandbox-build.cjs.js.map +1 -0
  85. package/dist/sandbox-build.esm.js +137 -0
  86. package/dist/sandbox-build.esm.js.map +1 -0
  87. package/dist/sandbox-kernel.esm.js +212 -0
  88. package/dist/sandbox-kernel.esm.js.map +1 -0
  89. package/dist/sandbox-worker.cjs.js +857 -0
  90. package/dist/sandbox-worker.cjs.js.map +1 -0
  91. package/dist/sandbox-worker.esm.js +854 -0
  92. package/dist/sandbox-worker.esm.js.map +1 -0
  93. package/dist/sandbox.cjs.js +1425 -0
  94. package/dist/sandbox.cjs.js.map +1 -0
  95. package/dist/sandbox.esm.js +1406 -0
  96. package/dist/sandbox.esm.js.map +1 -0
  97. package/dist/sygnal.min.js +1 -1
  98. package/dist/sygnal.min.js.map +1 -1
  99. package/dist/terminal.cjs.js +1314 -0
  100. package/dist/terminal.cjs.js.map +1 -0
  101. package/dist/terminal.esm.js +1304 -0
  102. package/dist/terminal.esm.js.map +1 -0
  103. package/dist/three.cjs.js +1111 -0
  104. package/dist/three.cjs.js.map +1 -0
  105. package/dist/three.esm.js +1079 -0
  106. package/dist/three.esm.js.map +1 -0
  107. package/dist/ui-combobox.cjs.js +256 -18
  108. package/dist/ui-combobox.cjs.js.map +1 -1
  109. package/dist/ui-combobox.esm.js +256 -18
  110. package/dist/ui-combobox.esm.js.map +1 -1
  111. package/dist/ui-menu.cjs.js +150 -16
  112. package/dist/ui-menu.cjs.js.map +1 -1
  113. package/dist/ui-menu.esm.js +151 -17
  114. package/dist/ui-menu.esm.js.map +1 -1
  115. package/dist/ui-select.cjs.js +95 -9
  116. package/dist/ui-select.cjs.js.map +1 -1
  117. package/dist/ui-select.esm.js +95 -9
  118. package/dist/ui-select.esm.js.map +1 -1
  119. package/dist/ui.cjs.js +679 -173
  120. package/dist/ui.cjs.js.map +1 -1
  121. package/dist/ui.esm.js +679 -175
  122. package/dist/ui.esm.js.map +1 -1
  123. package/dist/vike/config/package.json +1 -1
  124. package/dist/vite/plugin.cjs.js +968 -4
  125. package/dist/vite/plugin.cjs.js.map +1 -1
  126. package/dist/vite/plugin.mjs +968 -4
  127. package/dist/vite/plugin.mjs.map +1 -1
  128. package/dist/worker-page.cjs.js +669 -0
  129. package/dist/worker-page.cjs.js.map +1 -0
  130. package/dist/worker-page.esm.js +665 -0
  131. package/dist/worker-page.esm.js.map +1 -0
  132. package/dist/worker.cjs.js +377 -0
  133. package/dist/worker.cjs.js.map +1 -0
  134. package/dist/worker.esm.js +374 -0
  135. package/dist/worker.esm.js.map +1 -0
  136. package/dist/yjs-testing.cjs.js +98 -0
  137. package/dist/yjs-testing.cjs.js.map +1 -0
  138. package/dist/yjs-testing.esm.js +77 -0
  139. package/dist/yjs-testing.esm.js.map +1 -0
  140. package/dist/yjs.cjs.js +923 -0
  141. package/dist/yjs.cjs.js.map +1 -0
  142. package/dist/yjs.esm.js +900 -0
  143. package/dist/yjs.esm.js.map +1 -0
  144. package/dist/zag.cjs.js +11 -1
  145. package/dist/zag.cjs.js.map +1 -1
  146. package/dist/zag.esm.js +11 -1
  147. package/dist/zag.esm.js.map +1 -1
  148. package/llms/ai.md +65 -0
  149. package/llms/collaboration.md +5 -0
  150. package/llms/graphics.md +10 -0
  151. package/llms/renderers.md +7 -0
  152. package/llms/replay.md +5 -0
  153. package/llms/sandbox.md +5 -0
  154. package/llms/typed-apis.md +5 -0
  155. package/llms/ui.md +10 -0
  156. package/llms-full.txt +444 -0
  157. package/llms.txt +37 -35
  158. package/package.json +139 -3
  159. package/src/agent-ui/mcp.ts +152 -0
  160. package/src/agent-ui/snapshot.ts +212 -0
  161. package/src/agent-ui.d.ts +106 -0
  162. package/src/agent-ui.ts +249 -0
  163. package/src/ai.d.ts +95 -2
  164. package/src/api.d.ts +303 -0
  165. package/src/api.ts +9 -0
  166. package/src/canvas/Canvas.ts +585 -0
  167. package/src/canvas/backend.ts +627 -0
  168. package/src/canvas/geometry.ts +187 -0
  169. package/src/canvas/gesture.ts +23 -0
  170. package/src/canvas/image.ts +197 -0
  171. package/src/canvas/kit.ts +130 -0
  172. package/src/canvas/paint.ts +260 -0
  173. package/src/canvas/pointer.ts +25 -0
  174. package/src/canvas/snap.ts +68 -0
  175. package/src/canvas/svg.ts +99 -0
  176. package/src/canvas.d.ts +373 -0
  177. package/src/canvas.ts +46 -0
  178. package/src/core/actions.ts +14 -3
  179. package/src/core/cell.ts +12 -4
  180. package/src/core/debug.ts +8 -3
  181. package/src/core/hooks.ts +16 -2
  182. package/src/core/hosts/collection.ts +1 -1
  183. package/src/core/hosts/switchable.ts +26 -8
  184. package/src/core/instance.ts +98 -45
  185. package/src/core/markers/portal.ts +4 -0
  186. package/src/core/registry.ts +4 -0
  187. package/src/core/runtime.ts +34 -25
  188. package/src/core/statics.ts +5 -5
  189. package/src/cycle/dom/EventDelegator.ts +37 -33
  190. package/src/cycle/dom/MainDOMSource.ts +16 -14
  191. package/src/cycle/dom/enrichEventStream.ts +13 -9
  192. package/src/cycle/dom/fromEvent.ts +6 -10
  193. package/src/cycle/dom/index.ts +11 -7
  194. package/src/cycle/dom/isolate.ts +13 -6
  195. package/src/cycle/dom/makeDOMDriver.ts +6 -2
  196. package/src/cycle/dom/utils.ts +9 -2
  197. package/src/cycle/run/adapt.ts +4 -12
  198. package/src/devtools.d.ts +9 -0
  199. package/src/devtools.ts +2 -1
  200. package/src/extra/ai/compose/catalog.ts +2 -1
  201. package/src/extra/ai/compose/decisions.ts +1 -2
  202. package/src/extra/ai/compose/generated.ts +234 -0
  203. package/src/extra/ai/compose/index.ts +6 -2
  204. package/src/extra/ai/compose/layout.ts +3 -1
  205. package/src/extra/ai/compose/llm.ts +7 -3
  206. package/src/extra/ai/compose/types.ts +2 -2
  207. package/src/extra/ai/transports/shared.ts +3 -1
  208. package/src/extra/api/contract.ts +485 -0
  209. package/src/extra/api/index.ts +26 -0
  210. package/src/extra/behaviors.ts +3 -3
  211. package/src/extra/controlled.ts +44 -0
  212. package/src/extra/copyAsTest.ts +22 -0
  213. package/src/extra/devtools.ts +5 -3
  214. package/src/extra/devtoolsActions.ts +8 -0
  215. package/src/extra/devtoolsNext.ts +1 -1
  216. package/src/extra/diagnostics/checks/actionLog.ts +8 -3
  217. package/src/extra/diagnostics/checks/behaviors.ts +25 -0
  218. package/src/extra/diagnostics/checks/elementCommands.ts +17 -5
  219. package/src/extra/diagnostics/checks/index.ts +1 -1
  220. package/src/extra/diagnostics/checks/next.ts +78 -4
  221. package/src/extra/diagnostics/checks/props.ts +6 -1
  222. package/src/extra/diagnostics/checks/replies.ts +11 -7
  223. package/src/extra/diagnostics/checks/timers.ts +8 -2
  224. package/src/extra/diagnostics/checks/virtual.ts +11 -0
  225. package/src/extra/diagnostics/codes.ts +51 -1
  226. package/src/extra/elementCommands.ts +20 -4
  227. package/src/extra/fetchDriver.ts +4 -1
  228. package/src/extra/fetchEventSource.ts +6 -2
  229. package/src/extra/field.ts +29 -0
  230. package/src/extra/form.ts +42 -16
  231. package/src/extra/frame.ts +54 -0
  232. package/src/extra/keymap.ts +41 -0
  233. package/src/extra/pager.ts +2 -0
  234. package/src/extra/persist.ts +2 -1
  235. package/src/extra/pointer.ts +262 -0
  236. package/src/extra/processForm.ts +34 -1
  237. package/src/extra/replay/address.ts +49 -0
  238. package/src/extra/replay/entropy.ts +99 -0
  239. package/src/extra/replay/format.ts +263 -0
  240. package/src/extra/replay/index.ts +8 -0
  241. package/src/extra/replay/inert.ts +22 -0
  242. package/src/extra/replay/recorder.ts +247 -0
  243. package/src/extra/replay/replayer.ts +234 -0
  244. package/src/extra/replay/report.ts +126 -0
  245. package/src/extra/replay/schema.ts +52 -0
  246. package/src/extra/replay/version.ts +3 -0
  247. package/src/extra/router.ts +7 -3
  248. package/src/extra/selection.ts +2 -0
  249. package/src/extra/socketDriver.ts +51 -6
  250. package/src/extra/ssr.ts +128 -42
  251. package/src/extra/testing.ts +295 -39
  252. package/src/extra/timers.ts +96 -7
  253. package/src/extra/undo.ts +2 -0
  254. package/src/extra/virtual.ts +25 -2
  255. package/src/extra/widget.ts +106 -17
  256. package/src/host/actions.ts +383 -0
  257. package/src/host/delegation.ts +101 -0
  258. package/src/host/dom.ts +553 -0
  259. package/src/host/driver.ts +185 -0
  260. package/src/host/selector.ts +119 -0
  261. package/src/host/style.ts +51 -0
  262. package/src/host.d.ts +298 -0
  263. package/src/host.ts +46 -0
  264. package/src/index.d.ts +302 -38
  265. package/src/index.ts +15 -3
  266. package/src/pragma/blocks.ts +211 -0
  267. package/src/pragma/index.ts +44 -10
  268. package/src/primitives.d.ts +54 -0
  269. package/src/primitives.ts +136 -0
  270. package/src/react-native.d.ts +57 -0
  271. package/src/react-native.ts +285 -0
  272. package/src/react-peers.d.ts +21 -3
  273. package/src/replay.d.ts +185 -0
  274. package/src/replay.ts +6 -0
  275. package/src/sandbox/build.ts +119 -0
  276. package/src/sandbox/create.ts +187 -0
  277. package/src/sandbox/engine.ts +267 -0
  278. package/src/sandbox/generated.ts +195 -0
  279. package/src/sandbox/kernel.ts +180 -0
  280. package/src/sandbox/mirror.ts +269 -0
  281. package/src/sandbox/protocol.ts +128 -0
  282. package/src/sandbox/quickjs.ts +74 -0
  283. package/src/sandbox/ssr.ts +41 -0
  284. package/src/sandbox/widget.ts +60 -0
  285. package/src/sandbox/worker-entry.ts +59 -0
  286. package/src/sandbox/worker.ts +137 -0
  287. package/src/sandbox-build.d.ts +12 -0
  288. package/src/sandbox-build.ts +6 -0
  289. package/src/sandbox.d.ts +299 -0
  290. package/src/sandbox.ts +25 -0
  291. package/src/shared.ts +12 -0
  292. package/src/terminal/paint.ts +712 -0
  293. package/src/terminal.d.ts +167 -0
  294. package/src/terminal.ts +530 -0
  295. package/src/three/assets.ts +170 -0
  296. package/src/three/host.ts +36 -0
  297. package/src/three/scene.ts +217 -0
  298. package/src/three/target.ts +252 -0
  299. package/src/three.d.ts +221 -0
  300. package/src/three.ts +30 -0
  301. package/src/ui/accordion.ts +21 -7
  302. package/src/ui/dialog.ts +192 -90
  303. package/src/ui/disclosure.ts +2 -0
  304. package/src/ui/dom.ts +30 -0
  305. package/src/ui/layers.ts +132 -0
  306. package/src/ui/popover.ts +120 -21
  307. package/src/ui/shared.ts +98 -12
  308. package/src/ui/stack.ts +18 -0
  309. package/src/ui/tabs.ts +2 -0
  310. package/src/ui/toaster.ts +16 -15
  311. package/src/ui/tooltip.ts +24 -8
  312. package/src/ui/tooltips.ts +26 -14
  313. package/src/ui/zag/combobox.ts +180 -13
  314. package/src/ui/zag/menu.ts +97 -17
  315. package/src/ui/zag/select.ts +15 -4
  316. package/src/ui/zag/shared.ts +60 -8
  317. package/src/ui-combobox.d.ts +16 -1
  318. package/src/ui-menu.d.ts +22 -7
  319. package/src/ui-zag-types.d.ts +13 -5
  320. package/src/ui.d.ts +62 -7
  321. package/src/ui.ts +2 -2
  322. package/src/vite/api.ts +186 -0
  323. package/src/vite/compile.ts +280 -0
  324. package/src/vite/plugin.d.ts +34 -0
  325. package/src/vite/plugin.ts +78 -4
  326. package/src/vite/sandbox.ts +16 -0
  327. package/src/worker/page.ts +396 -0
  328. package/src/worker/protocol.ts +48 -0
  329. package/src/worker/target.ts +282 -0
  330. package/src/worker-page.d.ts +42 -0
  331. package/src/worker-page.ts +12 -0
  332. package/src/worker.d.ts +65 -0
  333. package/src/worker.ts +16 -0
  334. package/src/yjs/driver.ts +253 -0
  335. package/src/yjs/mapping.ts +389 -0
  336. package/src/yjs/shared.ts +138 -0
  337. package/src/yjs/testing.ts +91 -0
  338. package/src/yjs-testing.d.ts +34 -0
  339. package/src/yjs-testing.ts +7 -0
  340. package/src/yjs.d.ts +109 -0
  341. package/src/yjs.ts +18 -0
  342. package/src/zag.d.ts +2 -0
  343. package/src/zag.ts +8 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ui.esm.js","sources":["../src/ui/shared.ts","../src/ui/dialog.ts","../src/ui/popover.ts","../src/ui/tooltip.ts","../src/ui/tooltips.ts","../src/ui/tabs.ts","../src/ui/accordion.ts","../src/ui/disclosure.ts","../src/ui/toaster.ts"],"sourcesContent":["/*\n * PLAN-5 2-U: helpers the sygnal/ui parts share. Everything from the core comes through\n * '../index', which the 'sygnal/ui' build turns into the external 'sygnal' (one core per app).\n */\nimport {sampleCombine} from '../index'\n\n/** `v` as a quoted CSS string, for an attribute selector (`.tab[data-value=\"a b\"]`) */\nexport const lit = (v: any): string => '\"' + String(v).replace(/[\"\\\\]/g, '\\\\$&') + '\"'\n\n/**\n * G-407: a part of an id: letters, digits and '-' as they are, anything else (whitespace, '_')\n * as `_<code>_` (as the core's uidPart), so two values never make the same id ('a b' / 'a_b')\n */\nconst part = (v: any): string => String(v).replace(/[^A-Za-z0-9-]/g, (c) => '_' + c.charCodeAt(0) + '_')\n\n/**\n * The ids of one part's elements: `uid('<slice id>-<kind>-<value>')`. The slice id is the part's\n * key in `uses` (keyed() below) unless an `id` option names it; uid() makes it unique per\n * component instance. The slice id and the value are escaped (part()): no whitespace (aria-controls\n * is a list of ids) and no collisions.\n */\nexport const idsOf = (s: any, uid: any, fallback: string) => (kind: string, v?: any): string => {\n const n = `${part(s?.id ?? fallback)}-${kind}${v == null ? '' : '-' + part(v)}`\n return uid ? uid(n) : n\n}\n\n/**\n * an ELEMENT target whose `m` command runs `run(element, options)` (a D102 spec command). G-425:\n * `__sel` is the selector renderComponent's `t.commands('ELEMENT')` logs in its place\n */\nexport const on = (sel: any, m: string, run: (el: any, o: any) => void): any => ({toString: () => '' + sel, __sel: sel, spec: {commands: {[m]: run}}})\n\n/**\n * G-400: SYNC's trigger for a dialog / popover behavior: `false` when its element left the page\n * while the state says open (removed while open: no close / toggle event comes), and on the\n * first look when the state says open but the element isn't (a host made again on a state that\n * was open)\n */\nexport const gone = (DOM: any, STATE: any, sel: any, isOpen: (el: any) => boolean): any => {\n let first = true\n return DOM.select(sel).elements().compose(sampleCombine(STATE.stream)).filter(([e, s]: any) => {\n const f = first\n first = false\n return !!s?.open && (!e?.length || (f && !isOpen(e[0])))\n }).mapTo(false)\n}\n\n/**\n * Writes the `uses` key into the slice's `id` (the prefix of the ids the attribute helpers make)\n * when no `id` option set it. Runs after the behavior's own merge, on the copy of the host's\n * initialState (or the sub-component default) that merge made. G-407: `id` is also a calculated\n * field, so a host reducer that replaces the slice without it gets it back (the ids stay).\n */\nexport const keyed = (b: any): any => {\n const merge = b.merge\n // G-423: renderToString gives a missing `id` the same key (extra/ssr.ts withUses)\n b.keyed = 1\n b.merge = (c: any, k: string) => {\n const id = b.options?.id ?? k\n b.calculated = {...b.calculated, id: (s: any) => s.id ?? id}\n merge(c, k)\n for (const f of ['initialState', '_idle']) {\n const o = c[f]\n if (o && o[k] && o[k].id == null) o[k] = {...o[k], id: k}\n }\n }\n return b\n}\n\nconst mod = (e: any) => e.altKey || e.ctrlKey || e.metaKey\n\n/**\n * Roving focus (WAI-ARIA APG): a keydown on one of `sel`'s elements becomes the `data-value` of\n * the element to move to: `next` / `prev` keys step through them in DOM order (wrapping unless\n * loop is false), Home / End go to the first / last. Disabled elements are skipped. The keys it\n * handles have their default prevented (no page scroll); every other key passes through.\n * Reads the elements of the host's own DOM (DOM.select(sel).elements()), so it needs a real\n * DOM: on renderComponent's mock DOM, simulate the action with a value instead.\n */\nexport const keyNav = (DOM: any, sel: any, next: string[], prev: string[], loop: any): any => {\n const keys = [...next, ...prev, 'Home', 'End'], s = DOM.select(sel)\n const ours = (e: any) => !mod(e) && keys.includes(e.key)\n return s.events('keydown', {preventDefault: ours})\n .compose(sampleCombine(s.elements()))\n .map(([e, els]: any) => {\n if (!ours(e)) return\n const list = [...(els || [])].filter((el: any) => !el.disabled), n = list.length, k = e.key\n const i = list.findIndex((el: any) => el.contains(e.target))\n const j = k == 'Home' ? 0 : k == 'End' ? n - 1 : i + (next.includes(k) ? 1 : -1)\n const to: any = loop === false ? list[j] : list[(j + n) % n]\n return to?.getAttribute('data-value')\n })\n .filter((v: any) => v != null)\n}\n","/*\n * PLAN-5 2-U (S-3, from spike 0-S3): Dialog, a behavior over a native <dialog>.\n *\n * Settings.uses = { prefs: dialog({ dialog: '.prefs', trigger: '.open-prefs', close: '.close-prefs' }) }\n *\n * The host renders the <dialog> (aria-labelledby its heading) and its buttons. OPEN calls\n * showModal() through ELEMENT: the browser traps the focus, makes the page inert, closes on\n * Escape and returns the focus. `open` / `returnValue` follow the dialog's own close event,\n * whichever way it closed (a close button, Escape, a form method=\"dialog\", closedby=\"any\"), and\n * its toggle event when it opened without the model (commandfor=\"…\" command=\"show-modal\").\n *\n * Options: `dialog` (required; 3-W G-536: it must match only this dialog, not one nested in it,\n * whose close / toggle / FAIL events it would take too), `trigger` and `close` (clicks dispatch OPEN / CLOSE), `modal`\n * (true; false opens it with show()), `cancelable` (true; false keeps Escape from closing it:\n * the cancel event is prevented, and OPEN sets closedby=\"none\" (G-405: Chromium's CloseWatcher\n * closes on a second Escape otherwise)), `returnFocus` (true: when the dialog closes and the\n * focus was lost, which WebKit does after a mouse click, the element that opened it gets it\n * (G-407: the clicked trigger, recorded by OPEN), else the trigger; a selector names another\n * element; false: leave it to the browser. G-430: the opener is focused from the close event, so\n * a dialog rendered only while open needs no command target).\n * State: { open, returnValue }. Actions: OPEN, CLOSE (data: the returnValue), CLOSED (the close\n * event's returnValue), TOGGLED (from the toggle event), CANCEL (Escape: a host entry can react;\n * the cancel event, or with cancelable: false the Escape keydown in the dialog (G-429): closedby\n * \"none\" stops the cancel event, and OPEN removes the attribute again when the dialog closes;\n * G-457: not an Escape an element inside handled (defaultPrevented) or an IME one, and not for a\n * non-modal dialog, which Escape doesn't cancel either way),\n * SYNC (G-400: the dialog left the page while open: `open: false`; G-524: or OPEN's showModal()\n * threw: no close event then).\n * G-400: OPEN / CLOSE send commands that check the dialog itself (showModal only on a closed\n * one, close only on an open one), so a state that is out of step can't block them.\n */\nimport {ABORT, defineBehavior, xs} from '../index'\nimport {gone, on} from './shared'\n\n// G-579: an open popover Escape closes before the dialog: an auto or hint one (the `popover`\n// property: an engine without hint reads it as manual; the attribute where there is none). Not a\n// manual one (a Toaster region moved into the modal, D198; a tooltip): Escape cancels the dialog\nconst first = (p: any) => { try { return /^(auto|hint|)$/i.test(p.popover ?? p.getAttribute('popover')) && p.matches(':popover-open') } catch (_) { return false } }\n// G-429: Escape in this dialog (not in a dialog nested in it, nor with a popover open inside it\n// that Escape closes first, G-579). G-457: not one an element inside handled (a Zag combobox or\n// menu closing its list prevents it: the browser sends no cancel then either), nor one that ends\n// an IME composition (Safari sends keyCode 229 with isComposing false)\nconst esc = (e: any) => e.key == 'Escape' && !e.defaultPrevented && !e.isComposing && e.keyCode != 229 &&\n e.target?.closest?.('dialog') == e.ownerTarget && ![...(e.ownerTarget?.querySelectorAll?.('[popover]') ?? [])].some(first)\n\n// the focus went nowhere: body, a detached element, or inside a dialog that just closed\nconst lost = () => {\n const a: any = document.activeElement\n return !a || a == document.body || !a.isConnected || !!a.closest?.('dialog:not([open])')\n}\n// an ELEMENT target (D102 spec command): focus `sel` only when the focus was lost\nconst refocus = (sel: any) => on(sel, 'focus', (el: any, o: any) => { lost() && el.focus(o) })\n\n// G-524: OPEN's showModal() threw (bubbles: the DOM driver listens at its root)\nconst FAIL = 'sygnaldialogfail'\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {open: false, returnValue: ''},\n intent: ({DOM, STATE}: any, {dialog: d, trigger, close, cancelable, modal}: any) => ({\n ...(trigger && {OPEN: DOM.click(trigger)}),\n ...(close && {CLOSE: DOM.click(close).mapTo('')}),\n TOGGLED: DOM.toggle(d).map((e: any) => e.newState == 'open'),\n CLOSED: DOM.close(d).map((e: any) => e.target?.returnValue ?? ''),\n // G-429: with cancelable: false the dialog has closedby=\"none\", so Escape fires no cancel\n // event: CANCEL is the Escape keydown (the cancel event, which a browser without closedby\n // still fires, is only prevented). G-457: a non-modal one (show()) gets no cancel event from\n // Escape with cancelable: true either, so no CANCEL: only its cancel event, prevented\n CANCEL: cancelable !== false\n ? DOM.select(d).events('cancel')\n : modal === false\n ? DOM.select(d).events('cancel', {preventDefault: true})\n : xs.merge(DOM.select(d).events('cancel', {preventDefault: true}).filter(() => false), DOM.select(d).events('keydown').filter(esc)),\n // G-524: SYNC also when OPEN's showModal() threw (FAIL, below; true). 3-U G-533: only this\n // behavior's dialog's own FAIL, not one bubbling from a dialog inside it (another behavior's)\n SYNC: ((f: any) => STATE ? xs.merge(gone(DOM, STATE, d, (e: any) => e.open), f) : f)(\n DOM.select(d).events(FAIL).filter((e: any) => e.target === e.ownerTarget).mapTo(true)),\n }),\n model: {\n OPEN: {\n STATE: (s: any) => (s.open ? ABORT : {...s, open: true, returnValue: ''}),\n ELEMENT: (_s: any, d: any, _n: any, _p: any, o: any) => {\n const m = o.modal === false ? 'show' : 'showModal', by = d?.ownerTarget\n return {[m]: on(o.dialog, m, (el: any) => {\n if (el.open) return\n // G-407: who opened it: the clicked trigger, else the element with the focus\n const a = document.activeElement, op: any = by?.nodeType == 1 ? by : a != document.body ? a : null\n const cb = o.cancelable === false && !el.hasAttribute('closedby')\n if (cb) el.setAttribute('closedby', 'none')\n // G-461: a showModal() that throws (a disconnected dialog, a popover open on it) leaves\n // no closedby and arms no listener (a later close would focus this opener). G-488: and\n // the state goes back to closed, so the next OPEN can open it; G-524: through SYNC (an\n // internal FAIL event), not a close event: the host's close listeners don't run for a\n // dialog that never opened, and no previous returnValue comes again. The error is the\n // command's (thrown once)\n try { el[m]() } catch (e) { cb && el.removeAttribute('closedby'); el.dispatchEvent(new Event(FAIL, {bubbles: true})); throw e }\n // on close: G-429 the closedby it set goes (it is the behavior's, not the host's); G-430\n // the element that opened it gets the focus back when it was lost, here rather than by a\n // command (a dialog the host renders only while open is gone by then), and nothing\n // keeps the opener after that. Capture: at the target it runs before the DOM driver's\n // listener, so before CLOSED (whose trigger fallback would take the focus first: a\n // browser-sent event runs the microtasks between listeners)\n el.addEventListener('close', () => {\n cb && el.removeAttribute('closedby')\n if ((o.returnFocus ?? true) === true && op?.isConnected && lost()) op.focus()\n }, {once: true, capture: true})\n })}\n },\n },\n CLOSE: {ELEMENT: (_s: any, rv: any, _n: any, _p: any, o: any) => ({close: on(o.dialog, 'close', (el: any, x: any) => { el.open && el.close(x.returnValue) }), returnValue: typeof rv == 'string' ? rv : ''})},\n TOGGLED: (s: any, open: boolean) => (open && !s.open ? {...s, open, returnValue: ''} : ABORT),\n CLOSED: {\n STATE: (s: any, returnValue: string) => (!s.open && s.returnValue === returnValue ? ABORT : {...s, open: false, returnValue}),\n ELEMENT: (s: any, _d: any, _n: any, p: any, o: any, k: string) => {\n const f = o.returnFocus ?? true, sel = f === true ? o.trigger : f\n // only a dialog that was open before this close returns the focus\n if (!(p?.previousState ? p.previousState[k] : s).open || !sel) return ABORT\n // true: the element that opened it (OPEN's close listener, G-430), else the trigger; a\n // selector: that element (each only when the focus was lost)\n return {focus: refocus(sel)}\n },\n },\n CANCEL: () => ABORT,\n // G-534: after a failed OPEN the returnValue is '' (also when OPEN's STATE aborted: the state\n // was open while the element was closed)\n SYNC: (s: any, failed: any) => (s.open ? {...s, open: false, ...(failed === true && {returnValue: ''})} : ABORT),\n },\n})\n\n/** A native <dialog> as a behavior: `uses = { help: dialog({ dialog: '.help', trigger: '.open-help', close: '.close-help' }) }`. */\nexport const dialog = (options: any = {}): any => base({...options, open: false, returnValue: ''})\n","/*\n * PLAN-5 2-U (S-3, from spike 0-S3): Popover, a behavior over the Popover API.\n *\n * Filters.uses = { filters: popover({ popover: '.filters', close: '.filters-done' }) }\n * <button popovertarget={uid('filters')}>Filters</button>\n * <div className=\"filters\" id={uid('filters')} popover=\"auto\">…</div>\n *\n * The browser does the work: a `popovertarget` button opens and closes it, sets aria-expanded,\n * light-dismisses it (a click outside, Escape) and returns the focus. The behavior mirrors\n * `open` from the popover's toggle event and adds OPEN / CLOSE / TOGGLE for the model (ELEMENT\n * showPopover / hidePopover / togglePopover). Open it from elsewhere with a host intent:\n * `'filters.OPEN': DOM.click('.edit-filters')`. (No `trigger` option: a button that toggles an\n * auto popover through the model reopens it, because the press outside light-dismisses it first;\n * `popovertarget` buttons are exempt.)\n *\n * Options: `popover` (required), `close` (a button inside; its click dispatches CLOSE).\n * State: { open }. Actions: OPEN, CLOSE, TOGGLE, TOGGLED (data: open, from the toggle event),\n * SYNC (G-400: the popover left the page while open: `open: false`).\n * G-400 / G-406: OPEN and CLOSE send commands that check the popover itself (`:popover-open`),\n * not the state, which follows the asynchronous toggle event: OPEN then CLOSE in one tick ends\n * closed, and a popover removed while open opens again.\n */\nimport {ABORT, defineBehavior} from '../index'\nimport {gone, on} from './shared'\n\nconst isOpen = (el: any) => { try { return el.matches(':popover-open') } catch (_) { return false } }\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {open: false},\n intent: ({DOM, STATE}: any, {popover: p, close}: any) => ({\n ...(close && {CLOSE: DOM.click(close)}),\n TOGGLED: DOM.toggle(p).map((e: any) => e.newState == 'open'),\n ...(STATE && {SYNC: gone(DOM, STATE, p, isOpen)}),\n }),\n model: {\n OPEN: {ELEMENT: (_s: any, _d: any, _n: any, _p: any, o: any) => ({showPopover: on(o.popover, 'showPopover', (el: any) => { isOpen(el) || el.showPopover() })})},\n CLOSE: {ELEMENT: (_s: any, _d: any, _n: any, _p: any, o: any) => ({hidePopover: on(o.popover, 'hidePopover', (el: any) => { isOpen(el) && el.hidePopover() })})},\n TOGGLE: {ELEMENT: (_s: any, _d: any, _n: any, _p: any, o: any) => ({togglePopover: o.popover})},\n TOGGLED: (s: any, open: boolean) => (s.open == open ? ABORT : {...s, open}),\n SYNC: (s: any) => (s.open ? {...s, open: false} : ABORT),\n },\n})\n\n/** A popover (Popover API) as a behavior: `uses = { filters: popover({ popover: '.filters' }) }`. */\nexport const popover = (options: any = {}): any => base({...options, open: false})\n","/*\n * PLAN-5 2-U (S-3, from spike 0-S3): Tooltip, a manual popover placed by CSS anchor positioning,\n * shown on hover / focus after a delay and hidden after a delay (D197 `timers`).\n *\n * Toolbar.uses = { saveTip: tooltip({ trigger: '.save', tip: '.save-tip' }) }\n *\n * The host renders the trigger with aria-describedby (the tip's id) and `anchor-name`, and the\n * tip with role=\"tooltip\", popover=\"manual\", `position-anchor` and `position-area` (styles; see\n * the guide). No JavaScript positioning.\n *\n * Options: `trigger`, `tip` (required), `showDelay` (500 ms), `hideDelay` (100 ms).\n * State: { open, pending: null | 'show' | 'hide', hover, focus }. Actions: ENTER / LEAVE (data\n * 'hover' | 'focus': the pointer on the trigger or the tip (it stays open while hovered, WCAG\n * 1.4.13), or the focus on the trigger), SHOW / HIDE (the timers), ESCAPE (hides it at once),\n * TOGGLED. Timers (joined to the host's `timers`): '<key>.show' / '<key>.hide'; one whose state\n * goes away is cancelled, so leaving before the delay never shows the tip. Needs\n * makeTimerDriver() (tests: fake timers).\n * G-403: the pointer and the focus are tracked apart (it hides once both have left: a mouse\n * leaving doesn't hide a tip the keyboard focus still shows); touch pointer events are ignored\n * (a tap focuses the trigger instead); the document keydown listener for Escape is there only\n * while the tip is shown or about to be, so a page of tooltips has at most the open one's.\n */\nimport {ABORT, defineBehavior, dropRepeats, xs} from '../index'\n\nconst mouse = (e: any) => e?.pointerType != 'touch'\nconst which = (k: any) => (k == 'focus' ? 'focus' : 'hover')\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {open: false, pending: null as null | string, hover: false, focus: false},\n timers: (s: any, o: any) => ({\n show: s?.pending == 'show' && {after: o.showDelay ?? 500, action: 'SHOW'},\n hide: s?.pending == 'hide' && {after: o.hideDelay ?? 100, action: 'HIDE'},\n }),\n intent: ({DOM, STATE}: any, {trigger, tip}: any) => ({\n ENTER: xs.merge(xs.merge(DOM.pointerenter(trigger), DOM.pointerenter(tip)).filter(mouse).mapTo('hover'), DOM.focus(trigger).mapTo('focus')),\n LEAVE: xs.merge(xs.merge(DOM.pointerleave(trigger), DOM.pointerleave(tip)).filter(mouse).mapTo('hover'), DOM.blur(trigger).mapTo('focus')),\n ESCAPE: (STATE ? STATE.stream.map((s: any) => !!(s?.open || s?.pending)).compose(dropRepeats()) : xs.of(true))\n .map((on: boolean) => (on ? DOM.keydown('document').key().filter((k: string) => k == 'Escape') : xs.never()))\n .flatten(),\n TOGGLED: DOM.toggle(tip).map((e: any) => e.newState == 'open'),\n }),\n model: {\n ENTER: (s: any, k: any) => {\n const n = {...s, [which(k)]: true}, pending = s.open ? null : 'show'\n return s[which(k)] && s.pending == pending ? ABORT : {...n, pending}\n },\n LEAVE: (s: any, k: any) => {\n const n = {...s, [which(k)]: false}\n // still hovered or focused: as it was\n const pending = n.hover || n.focus ? s.pending : s.open ? 'hide' : null\n return !s[which(k)] && s.pending == pending ? ABORT : {...n, pending}\n },\n SHOW: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? ABORT : {showPopover: o.tip}),\n },\n HIDE: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? {hidePopover: o.tip} : ABORT),\n },\n ESCAPE: {\n STATE: (s: any) => (s.open || s.pending ? {...s, pending: null} : ABORT),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? {hidePopover: o.tip} : ABORT),\n },\n TOGGLED: (s: any, open: boolean) => (s.open == open ? ABORT : {...s, open}),\n },\n})\n\n/** A tooltip as a behavior: `uses = { tip: tooltip({ trigger: '.save', tip: '.save-tip', showDelay: 500 }) }`. */\nexport const tooltip = (options: any = {}): any => base({...options, open: false, pending: null, hover: false, focus: false})\n","/*\n * PLAN-11 T-1: Tooltips, one behavior for every tooltip of a component (glossary terms in a\n * paragraph, icon buttons in a toolbar): one state slice and two timers however many triggers\n * there are, instead of a tooltip() per trigger.\n *\n * Article.uses = { tips: tooltips({ trigger: '.term', tip: '.term-tip' }) }\n *\n * Each trigger names its tip with aria-describedby (the tip's id); the tips are `role=\"tooltip\"\n * popover=\"manual\"` elements placed by CSS anchor positioning, as for tooltip(). One tip shows at\n * a time. Moving from one trigger to another while a tip is shown switches at once (no second\n * show delay), as tooltip groups do.\n *\n * Options: `trigger`, `tip` (required selectors matching every trigger / every tip),\n * `showDelay` (500 ms), `hideDelay` (100 ms).\n * State: { id (the tip of the trigger or tip last entered), open (the id of the tip shown),\n * pending: null | 'show' | 'hide', hover, focus }. Actions: ENTER / LEAVE ({ via: 'hover' |\n * 'focus', id }), SHOW / HIDE (the timers), ESCAPE, TOGGLED ({ id, open }). Timers\n * '<key>.show' / '<key>.hide' as tooltip()'s. Needs makeTimerDriver() (tests: fake timers).\n * Same rules as tooltip(): pointer and focus tracked apart, touch ignored, hovering the tip keeps\n * it open (WCAG 1.4.13), Escape listened for only while a tip is shown or about to be.\n */\nimport {ABORT, defineBehavior, dropRepeats, xs} from '../index'\n\nconst mouse = (e: any) => e?.pointerType != 'touch'\nconst el = (e: any) => e?.ownerTarget || e?.currentTarget || e?.target\n// the trigger's tip id (its aria-describedby: the first id when it lists several), or the tip's own\nconst tipOf = (e: any) => String(el(e)?.getAttribute?.('aria-describedby') || '').trim().split(/\\s+/)[0] || null\nconst idOf = (e: any) => el(e)?.id || null\nconst at = (id: string) => `[id=\"${id.replace(/[\"\\\\]/g, '\\\\$&')}\"]`\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, open: null as null | string, pending: null as null | string, hover: false, focus: false},\n timers: (s: any, o: any) => ({\n show: s?.pending == 'show' && {after: o.showDelay ?? 500, action: 'SHOW'},\n hide: s?.pending == 'hide' && {after: o.hideDelay ?? 100, action: 'HIDE'},\n }),\n intent: ({DOM, STATE}: any, {trigger, tip}: any) => ({\n ENTER: xs.merge(\n DOM.pointerenter(trigger).filter(mouse).map((e: any) => ({via: 'hover', id: tipOf(e)})),\n DOM.pointerenter(tip).filter(mouse).map((e: any) => ({via: 'hover', id: idOf(e)})),\n DOM.focus(trigger).map((e: any) => ({via: 'focus', id: tipOf(e)})),\n ).filter((x: any) => !!x.id),\n LEAVE: xs.merge(\n DOM.pointerleave(trigger).filter(mouse).map((e: any) => ({via: 'hover', id: tipOf(e)})),\n DOM.pointerleave(tip).filter(mouse).map((e: any) => ({via: 'hover', id: idOf(e)})),\n DOM.blur(trigger).map((e: any) => ({via: 'focus', id: tipOf(e)})),\n ).filter((x: any) => !!x.id),\n ESCAPE: (STATE ? STATE.stream.map((s: any) => !!(s?.open || s?.pending)).compose(dropRepeats()) : xs.of(true))\n .map((on: boolean) => (on ? DOM.keydown('document').key().filter((k: string) => k == 'Escape') : xs.never()))\n .flatten(),\n TOGGLED: DOM.toggle(tip).map((e: any) => ({id: idOf(e), open: e.newState == 'open'})).filter((x: any) => !!x.id),\n }),\n model: {\n ENTER: {\n STATE: (s: any, {via, id}: any) => {\n const k = via == 'focus' ? 'focus' : 'hover'\n // another trigger: it takes over (a tip already shown switches at once, in ELEMENT)\n if (id != s.id) return {...s, id, hover: k == 'hover', focus: k == 'focus', pending: s.open ? null : 'show'}\n const pending = s.open == id ? null : 'show'\n return s[k] && s.pending == pending ? ABORT : {...s, [k]: true, pending}\n },\n // 7.0: outputs get the updated slice; \"another trigger than before\" reads the previous one\n ELEMENT: (s: any, {id}: any, _n: any, p: any, _o: any, k: string) => {\n const w = p?.previousState ? p.previousState[k] : s\n return id != w.id && w.open && w.open != id ? [{hidePopover: at(w.open)}, {showPopover: at(id)}] : ABORT\n },\n },\n LEAVE: (s: any, {via, id}: any) => {\n if (id != s.id) return ABORT\n const k = via == 'focus' ? 'focus' : 'hover'\n const n = {...s, [k]: false}\n const pending = n.hover || n.focus ? s.pending : s.open ? 'hide' : null\n return !s[k] && s.pending == pending ? ABORT : {...n, pending}\n },\n SHOW: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any) => (!s.id || s.open == s.id ? ABORT : s.open ? [{hidePopover: at(s.open)}, {showPopover: at(s.id)}] : {showPopover: at(s.id)}),\n },\n HIDE: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any) => (s.open ? {hidePopover: at(s.open)} : ABORT),\n },\n ESCAPE: {\n STATE: (s: any) => (s.open || s.pending ? {...s, pending: null} : ABORT),\n ELEMENT: (s: any) => (s.open ? {hidePopover: at(s.open)} : ABORT),\n },\n TOGGLED: (s: any, {id, open}: any) => (open ? (s.open == id ? ABORT : {...s, open: id}) : s.open == id ? {...s, open: null} : ABORT),\n },\n})\n\n/** Every tooltip of a component as one behavior: `uses = { tips: tooltips({ trigger: '.term', tip: '.term-tip' }) }`. */\nexport const tooltips = (options: any = {}): any => base({...options, id: null, open: null, pending: null, hover: false, focus: false})\n","/*\n * PLAN-5 2-U (S-4): Tabs, a behavior that wires the host's own markup (WAI-ARIA APG tabs).\n *\n * Settings.uses = { tabs: tabs({ tab: '.tab', selected: 'general' }) }\n * const a = tabsAttrs(state.tabs, uid)\n * <div {...a.list} aria-label=\"Settings\">\n * <button className=\"tab\" {...a.tab('general')}>General</button> …\n * </div>\n * <section {...a.panel('general')}>…</section> …\n *\n * The host renders the tabs and panels; `tabsAttrs` gives each its attributes from the slice:\n * roles, ids (from `uid`, so every instance has its own), aria-selected / aria-controls /\n * aria-labelledby, the roving tabindex, `hidden` on the other panels, and the hooks\n * `data-value` / `data-state` ('active' | 'inactive'). A click on a tab selects it; the arrow\n * keys move the focus between the tabs (and select, unless `activation: 'manual'`), Home / End\n * go to the first / last; disabled tabs are skipped.\n *\n * Options: `tab` (required: the tabs' selector), `selected` (the start; none: the first tab\n * rendered), `orientation` ('horizontal' | 'vertical': which arrow keys), `activation`\n * ('automatic' | 'manual'), `loop` (true), `id` (the ids' prefix; default: the key in `uses`).\n * State: { id, selected, orientation }. Actions: SELECT (a value, or a click), MOVE (a value:\n * focus it, and select it unless manual).\n * G-397: `tabsAttrs(slice, uid, values)` with the tabs' values shows the first one selected when\n * `selected` isn't among them (a removed tab); a host that removes tabs re-selects a neighbour\n * and moves the focus to it in its own reducer (the guide's closable tabs).\n */\nimport {ABORT, defineBehavior} from '../index'\nimport {idsOf, keyNav, keyed, lit} from './shared'\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, selected: null as null | string, orientation: 'horizontal'},\n intent: ({DOM}: any, {tab, orientation, loop}: any) => {\n const v = orientation == 'vertical'\n return {\n SELECT: DOM.click(tab).data('value'),\n MOVE: keyNav(DOM, tab, [v ? 'ArrowDown' : 'ArrowRight'], [v ? 'ArrowUp' : 'ArrowLeft'], loop),\n }\n },\n model: {\n SELECT: (s: any, v: any) => (v == null || String(v) === s.selected ? ABORT : {...s, selected: String(v)}),\n MOVE: {\n STATE: (s: any, v: string, _n: any, _p: any, o: any) => (o.activation == 'manual' || v === s.selected ? ABORT : {...s, selected: v}),\n ELEMENT: (_s: any, v: string, _n: any, _p: any, o: any) => ({focus: o.tab + '[data-value=' + lit(v) + ']'}),\n },\n },\n})\n\n/** Tabs as a behavior over the host's markup: `uses = { tabs: tabs({ tab: '.tab', selected: 'general' }) }`; render with `tabsAttrs`. */\nexport const tabs = (options: any = {}): any =>\n keyed(base({...options, ...(options.selected != null && {selected: String(options.selected)})}))\n\n/**\n * The attributes of a tab set, from its slice: `list` (the tablist), `tab(value)` and\n * `panel(value)`. Spread them on the host's elements: `<button className=\"tab\" {...a.tab('general')}>`.\n * `values` (optional): the tabs' values in order (leave disabled ones out). With it, a `selected`\n * that isn't one of them (its tab was removed) shows the first one selected (G-397); without it,\n * the first tab rendered is selected only while nothing is.\n */\nexport const tabsAttrs = (s: any, uid: any, values?: any[]): any => {\n const id = idsOf(s, uid, 'tabs'), state = (b: boolean) => (b ? 'active' : 'inactive')\n const vs = values && values.map(String)\n let first: any = vs?.[0], sel = s?.selected == null ? null : String(s.selected)\n if (vs && sel != null && !vs.includes(sel)) sel = null\n // no selection (or a removed one): the first value, or the first tab (or panel) rendered\n const on = (v: any) => {\n v = String(v)\n if (sel != null) return v === sel\n first ??= v\n return v === first\n }\n return {\n list: {role: 'tablist', 'aria-orientation': s?.orientation || 'horizontal'},\n tab: (v: any) => {\n const b = on(v)\n return {type: 'button', id: id('tab', v), role: 'tab', 'aria-selected': b, 'aria-controls': id('panel', v), tabindex: b ? '0' : '-1', 'data-value': String(v), 'data-state': state(b)}\n },\n panel: (v: any) => {\n const b = on(v)\n return {id: id('panel', v), role: 'tabpanel', 'aria-labelledby': id('tab', v), tabindex: '0', hidden: !b, 'data-state': state(b)}\n },\n }\n}\n","/*\n * PLAN-5 2-U (S-4): Accordion, a behavior that wires the host's own markup (WAI-ARIA APG\n * accordion).\n *\n * Faq.uses = { faq: accordion({ trigger: '.faq-trigger' }) }\n * const a = accordionAttrs(state.faq, uid)\n * <h3><button className=\"faq-trigger\" {...a.trigger('ship')}>Shipping</button></h3>\n * <div {...a.panel('ship')}>…</div>\n *\n * `accordionAttrs` gives the triggers aria-expanded / aria-controls (and aria-disabled on the one\n * open panel when it can't be collapsed), the panels role=\"region\" / aria-labelledby / hidden,\n * ids from `uid`, and the hooks `data-value` / `data-state` ('open' | 'closed'). A click on a\n * trigger toggles its panel; Up / Down / Home / End move the focus between the triggers.\n *\n * Options: `trigger` (required), `multiple` (false: opening one closes the others),\n * `collapsible` (true; false: the last open panel stays open), `expanded` (the start: a value or\n * an array), `loop` (true), `id` (the ids' prefix; default: the key in `uses`).\n * State: { id, expanded: string[], collapsible }. Actions: TOGGLE, EXPAND, COLLAPSE (a value, or\n * a click), MOVE (a value: focus that trigger).\n */\nimport {ABORT, defineBehavior} from '../index'\nimport {idsOf, keyNav, keyed, lit} from './shared'\n\nconst expand = (s: any, v: any, o: any) => {\n v = String(v)\n return s.expanded.includes(v) ? ABORT : {...s, expanded: o.multiple ? [...s.expanded, v] : [v]}\n}\nconst collapse = (s: any, v: any) => {\n v = String(v)\n return !s.expanded.includes(v) || (s.collapsible === false && s.expanded.length == 1) ? ABORT\n : {...s, expanded: s.expanded.filter((x: string) => x !== v)}\n}\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, expanded: [] as string[], collapsible: true},\n intent: ({DOM}: any, {trigger, loop}: any) => ({\n TOGGLE: DOM.click(trigger).data('value'),\n MOVE: keyNav(DOM, trigger, ['ArrowDown'], ['ArrowUp'], loop),\n }),\n model: {\n TOGGLE: (s: any, v: any, _n: any, _p: any, o: any) => (v == null ? ABORT : s.expanded.includes(String(v)) ? collapse(s, v) : expand(s, v, o)),\n EXPAND: (s: any, v: any, _n: any, _p: any, o: any) => (v == null ? ABORT : expand(s, v, o)),\n COLLAPSE: (s: any, v: any) => (v == null ? ABORT : collapse(s, v)),\n MOVE: {ELEMENT: (_s: any, v: string, _n: any, _p: any, o: any) => ({focus: o.trigger + '[data-value=' + lit(v) + ']'})},\n },\n})\n\n/** An accordion as a behavior over the host's markup: `uses = { faq: accordion({ trigger: '.faq-trigger' }) }`; render with `accordionAttrs`. */\nexport const accordion = (options: any = {}): any =>\n keyed(base({...options, ...(options.expanded != null && {expanded: ([] as any[]).concat(options.expanded).map(String)})}))\n\n/** The attributes of an accordion, from its slice: `trigger(value)` and `panel(value)`. */\nexport const accordionAttrs = (s: any, uid: any): any => {\n const id = idsOf(s, uid, 'accordion'), ex: string[] = s?.expanded || []\n const on = (v: any) => ex.includes(String(v)), state = (v: any) => (on(v) ? 'open' : 'closed')\n const only = s?.collapsible === false && ex.length == 1\n return {\n trigger: (v: any) => ({\n type: 'button', id: id('trigger', v), 'aria-expanded': on(v), 'aria-controls': id('panel', v),\n 'aria-disabled': only && on(v) ? true : undefined, 'data-value': String(v), 'data-state': state(v),\n }),\n panel: (v: any) => ({id: id('panel', v), role: 'region', 'aria-labelledby': id('trigger', v), hidden: !on(v), 'data-state': state(v)}),\n }\n}\n","/*\n * PLAN-5 2-U (S-4): Disclosure, a button that shows and hides a panel (WAI-ARIA APG disclosure).\n *\n * Card.uses = { more: disclosure({ trigger: '.more-toggle' }) }\n * const a = disclosureAttrs(state.more, uid)\n * <button className=\"more-toggle\" {...a.trigger}>Details</button>\n * <div {...a.panel}>…</div>\n *\n * Options: `trigger` (required), `open` (the start, false), `id` (the ids' prefix; default: the\n * key in `uses`). State: { id, open }. Actions: TOGGLE (a click), OPEN, CLOSE.\n */\nimport {ABORT, defineBehavior} from '../index'\nimport {idsOf, keyed} from './shared'\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, open: false},\n intent: ({DOM}: any, {trigger}: any) => ({TOGGLE: DOM.click(trigger)}),\n model: {\n TOGGLE: (s: any) => ({...s, open: !s.open}),\n OPEN: (s: any) => (s.open ? ABORT : {...s, open: true}),\n CLOSE: (s: any) => (s.open ? {...s, open: false} : ABORT),\n },\n})\n\n/** A disclosure as a behavior over the host's markup: `uses = { more: disclosure({ trigger: '.more-toggle' }) }`; render with `disclosureAttrs`. */\nexport const disclosure = (options: any = {}): any => keyed(base(options))\n\n/** The attributes of a disclosure, from its slice: `trigger` and `panel`. */\nexport const disclosureAttrs = (s: any, uid: any): any => {\n const id = idsOf(s, uid, 'disclosure'), open = !!s?.open, state = open ? 'open' : 'closed'\n return {\n trigger: {type: 'button', 'aria-expanded': open, 'aria-controls': id('panel'), 'data-state': state},\n panel: {id: id('panel'), hidden: !open, 'data-state': state},\n }\n}\n","/*\n * PLAN-5 2-U (T-1, D198, from spike 0-S4): the Toaster component.\n *\n * anywhere: SAVE: { EVENTS: event('TOAST', { text: 'Saved', kind: 'success' }) }\n * once: <Toaster /> (main.js: run(App, { TIMER: makeTimerDriver() }))\n *\n * - TOAST adds { id, text, kind ('info' | 'success' | 'warning' | 'error'; default 'info'),\n * timeoutMs (default 5000; 0 = until dismissed) }. A string is the text. A TOAST with the `id`\n * of a shown toast replaces it in place and restarts its timer ('Saving…' → 'Saved').\n * TOAST_DISMISS removes the toast with that id (no id: all of them). G-398: ids compare as\n * strings (the Collection's keys); an automatic id is 't<n>', never one a shown toast has.\n * - Each toast is a Collection item: its `timers` static auto-dismisses it (GS-7; fake-timer\n * testable), its Dismiss button removes it, Transition animates it (`transition` names the\n * classes, `duration` is how long a leaving toast stays: the leave animation's length).\n * - Two persistent live regions: role=\"status\" (polite) for every kind but errors, role=\"alert\"\n * for errors. They are rendered while empty, so a toast added later is announced.\n * - While the pointer or the focus is in the region, the timers stop (and start over when both\n * have left; G-399: `hover` and `focus` are tracked apart): `pauseOnHover={false}` turns this\n * off. A focused Dismiss button moves the focus to the next toast's (else the previous one's,\n * else where the focus came from) before its toast goes; a focused element removed any other\n * way gets a focusout sent (Chromium sends none), so the region never stays paused.\n * - The region is a `popover=\"manual\"` element (top layer, above the page), re-parented into the\n * topmost open modal <dialog> while one is open and back when it closes or is removed (a\n * MutationObserver in the region's hooks, D198): outside the modal it would be drawn but inert\n * (spike 0-S4). `__sygnalHome` keeps its events in this component (G-356). The region is the\n * only child of a wrapper (`.toaster-home`), so the moved element has no siblings to patch.\n * G-404: the dialogs of the region's own root (a shadow root) are looked at and observed too.\n * G-426: the focus is that root's activeElement (in a shadow root the document's is the host).\n *\n * Class hooks: .toaster-home, .toaster (+ `className`), .toaster-status, .toaster-alert,\n * .toaster-list, .toast, .toast-text, .toast-dismiss. Data attributes: data-kind on .toast,\n * data-paused on .toaster.\n */\nimport {ABORT, Collection, Transition, createElement as h, xs} from '../index'\n\n// ── the region's placement (D198) ────────────────────────────────────\n// the open modal dialogs, in the order they became modal (the last one is on top)\nconst order: any[] = []\nconst modal = (d: any) => { try { return d.matches(':modal') } catch (_) { return false } }\n// G-404: the dialogs of the document and of the region's own root (a shadow root: sygnal/element)\nconst topModal = (root: any) => {\n const all = [...document.querySelectorAll('dialog')]\n if (root !== document && root?.querySelectorAll) all.push(...root.querySelectorAll('dialog'))\n const open = all.filter(modal)\n for (let i = order.length; i--;) if (!open.includes(order[i])) order.splice(i, 1)\n for (const d of open) if (!order.includes(d)) order.push(d)\n return order[order.length - 1]\n}\nconst show = (el: any) => { try { el.matches(':popover-open') || el.showPopover() } catch (_) {} }\n// the element with the focus in `el`'s root\nconst act = (el: any) => (el.getRootNode?.() || document).activeElement\n// G-428: a focusout that leaves `t`: not to an element inside it, and with no relatedTarget not\n// while the focus is still inside (the window lost the focus: it comes back to the same element)\nconst left = (t: any, e: any) => !(t && t.contains?.(e.relatedTarget || act(t)))\n// a toast on its way out (its Transition's leave classes)\nconst leaving = (b: any) => /-leave-/.test(b.closest?.('.toast')?.className || '')\n\nconst placement = {\n insert: (v: any) => {\n const el = v.elm, home = el.parentNode, root = el.getRootNode?.() || document\n el.__sygnalHome = home\n show(el)\n // G-399: the focus in the region, and where it came from (where it goes back to). G-432: a\n // focus from nowhere (the region's own refocus after a move, the browser's after a modal\n // closed, the window focused again) keeps the last element it came from. G-458: but not one\n // a press in the region gave: the user comes back from nowhere after a click on the page took\n // the focus, and a mouse Dismiss would focus (and scroll to) an element left long ago. (A focus\n // that comes back from another element names that one; a focus that left to a modal comes\n // back from nowhere when it closes and keeps it: G-432)\n // G-499: the press is its time, and counts for a focus within a second (a press released\n // outside, a right-click or a touch scroll gets no focusin or click to clear it); a cancelled\n // one (the browser took it for a scroll) at once\n el.addEventListener('pointerdown', (e: any) => { el._p = e.timeStamp })\n el.addEventListener('pointercancel', () => { el._p = 0 })\n el.addEventListener('focusin', (e: any) => {\n if (!el.contains(e.relatedTarget)) { el._f = 1; el._from = e.relatedTarget || (el._p && e.timeStamp - el._p < 1e3 ? null : el._from) }\n el._p = 0\n })\n el.addEventListener('focusout', (e: any) => { if (left(el, e)) el._f = 0 })\n // a Dismiss button with the focus (keyboard; a click that focused it): the focus moves to the\n // next toast's Dismiss button, else the previous one's, else back where it came from, before\n // the button goes (a removed focused element gets no focusout in Chromium)\n el.addEventListener('click', (e: any) => {\n el._p = 0\n const b = e.target?.closest?.('.toast-dismiss')\n // G-426: the root's activeElement (in a shadow root, the document's is the host)\n if (!b || !b.contains(act(el))) return\n const bs = [...el.querySelectorAll('.toast-dismiss')].filter((x: any) => x === b || !leaving(x)), i = bs.indexOf(b)\n const to: any = bs[i + 1] || bs[i - 1] || (el._from?.isConnected && !el.contains(el._from) && el._from)\n to ? to.focus() : b.blur()\n })\n if (typeof MutationObserver == 'undefined') return\n const place = () => {\n const to = topModal(root) || home\n if (el.parentNode !== to) {\n // a move blurs a focused Dismiss button: give the focus back\n const a = act(el), f: any = el.contains(a) && a\n to.appendChild(el)\n f && f.focus()\n }\n // a moved popover is closed: show it again (on top of the dialog it is in)\n show(el)\n }\n // `open` flips on showModal / close; a dialog removed while open takes the region with it\n const mo = el._mo = new MutationObserver((rs) => {\n // G-399: the focused element was removed (a toast dismissed some other way): no focusout\n // in Chromium, so the region would stay paused; send one\n if (el._f && !el.contains(act(el))) { el._f = 0; el.dispatchEvent(new FocusEvent('focusout', {bubbles: true})) }\n if (home.isConnected && (!el.isConnected || (el.parentNode !== home && !modal(el.parentNode)) || rs.some((r) => r.type == 'attributes'))) place()\n })\n const opts = {subtree: true, childList: true, attributes: true, attributeFilter: ['open']}\n mo.observe(document.body, opts)\n // G-404: a region in a shadow root sees that root's dialogs open and close too\n if (root !== document && root.nodeType == 11) mo.observe(root, opts)\n place()\n },\n // removed with its wrapper while in a dialog: take it out of the dialog too\n destroy: (v: any) => {\n const el = v.elm\n el._mo?.disconnect()\n el.parentNode !== el.__sygnalHome && el.remove()\n },\n}\n\n// ── one toast ──────────────────────────────────────────────────────\n// (statics through a /*#__PURE__*/ Object.assign, so every bundler drops an unused Toaster; a\n// componentName, so diagnostics and DevTools name them in minified builds too)\nconst ToastItem = /*#__PURE__*/ Object.assign(function ToastItem({state, dismissLabel, transition, duration}: any) {\n return h(Transition, {name: transition, duration},\n h('div', {className: 'toast', 'data-kind': state.kind},\n h('span', {className: 'toast-text'}, state.text),\n h('button', {type: 'button', className: 'toast-dismiss', 'aria-label': dismissLabel + ': ' + state.text}, dismissLabel)))\n}, {\n componentName: 'ToastItem',\n intent: ({DOM}: any) => ({DISMISS: DOM.click('.toast-dismiss')}),\n // a replaced toast (rev) gets a new timer name, so its timer starts over\n timers: (s: any) => ({['expire' + (s?.rev || '')]: s?.timeoutMs > 0 && !s.paused && {after: s.timeoutMs, action: 'EXPIRE'}}),\n model: {DISMISS: () => undefined, EXPIRE: () => undefined},\n})\n\n// ── the toaster ──────────────────────────────────────────────────────\nconst polite = (t: any) => t.kind != 'error'\nconst urgent = (t: any) => t.kind == 'error'\n// entering or leaving the region (not moving between its children)\nconst crossing = (e: any) => !e.ownerTarget?.contains?.(e.relatedTarget)\nconst paused = (s: any, p: boolean) => ({...s, paused: p, toasts: s.toasts.map((t: any) => ({...t, paused: p}))})\n// the pointer or the focus came in or left: paused while either is in (unless pauseOnHover={false})\nconst pause = (s: any, k: string, on: boolean, p: any) => {\n if (s[k] === on) return ABORT\n const n = {...s, [k]: on}, z = p.pauseOnHover !== false && !!(n.hover || n.focus)\n return z === s.paused ? n : paused(n, z)\n}\n// ids compare as strings (the Collection's keys do: 7 and '7' are one toast)\nconst same = (a: any, b: any) => '' + a === '' + b\n\n/** Renders the toasts that `event('TOAST', { text, kind, timeoutMs })` sends from anywhere. Render it once: `<Toaster />`. */\nexport const Toaster = /*#__PURE__*/ Object.assign(function Toaster({state, label = 'Notifications', dismissLabel = 'Dismiss', transition = 'toast', duration = 200, className}: any) {\n const list = (filter: any) => h('div', {className: 'toaster-list'}, h(Collection, {of: ToastItem, from: 'toasts', filter, dismissLabel, transition, duration}))\n return h('div', {className: 'toaster-home'},\n h('section', {\n className: className ? 'toaster ' + className : 'toaster', 'aria-label': label, attrs: {popover: 'manual'},\n 'data-paused': state.paused ? '' : undefined, hook: placement,\n },\n h('div', {className: 'toaster-status', role: 'status', 'aria-live': 'polite'}, list(polite)),\n h('div', {className: 'toaster-alert', role: 'alert'}, list(urgent))))\n}, {\n componentName: 'Toaster',\n isolatedState: true,\n initialState: {toasts: [] as any[], next: 1, paused: false, hover: false, focus: false},\n intent: ({EVENTS, DOM}: any) => ({\n TOAST: EVENTS.select('TOAST'),\n DISMISS: EVENTS.select('TOAST_DISMISS'),\n // G-399: the pointer and the focus apart (the timers stop while either is in the region)\n HOVER: xs.merge(DOM.pointerover('.toaster').filter(crossing).mapTo(true), DOM.pointerout('.toaster').filter(crossing).mapTo(false)),\n FOCUS: xs.merge(DOM.focusin('.toaster').filter(crossing).mapTo(true), DOM.focusout('.toaster').filter((e: any) => left(e.ownerTarget, e)).mapTo(false)),\n }),\n model: {\n TOAST: (s: any, d: any) => {\n const t = typeof d == 'string' ? {text: d} : d || {}\n // G-398: an automatic id is 't<n>', one no shown toast has (a user's 2 or '2' never meets it)\n const i = t.id == null ? -1 : s.toasts.findIndex((x: any) => same(x.id, t.id))\n let n = s.next, id = t.id\n if (id == null) { while (s.toasts.some((x: any) => same(x.id, 't' + n))) n++; id = 't' + n++ }\n const toast = {...t, id, kind: t.kind || 'info', timeoutMs: t.timeoutMs ?? 5000, paused: s.paused, rev: i < 0 ? 0 : s.toasts[i].rev + 1}\n return {\n ...s,\n next: n,\n toasts: i < 0 ? [...s.toasts, toast] : s.toasts.map((x: any, j: number) => (j == i ? toast : x)),\n }\n },\n DISMISS: (s: any, id: any) => {\n const toasts = id == null ? [] : s.toasts.filter((x: any) => !same(x.id, id))\n return toasts.length == s.toasts.length ? ABORT : {...s, toasts}\n },\n HOVER: (s: any, on: boolean, _n: any, p: any) => pause(s, 'hover', on, p),\n FOCUS: (s: any, on: boolean, _n: any, p: any) => pause(s, 'focus', on, p),\n },\n})\n"],"names":["base","mouse","h"],"mappings":"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"}
1
+ {"version":3,"file":"ui.esm.js","sources":["../src/ui/dom.ts","../src/ui/stack.ts","../src/ui/layers.ts","../src/ui/shared.ts","../src/ui/dialog.ts","../src/ui/popover.ts","../src/ui/tooltip.ts","../src/ui/tooltips.ts","../src/ui/tabs.ts","../src/ui/accordion.ts","../src/ui/disclosure.ts","../src/ui/toaster.ts"],"sourcesContent":["/*\n * ui-sweep round 6: the document an element is in. The parts read it instead of the global\n * `document` / `Event`, so they run on a host tree (sygnal/host: the terminal, a Web Worker's\n * tree), in an iframe and in a shadow root.\n */\nconst G: any = globalThis\n\n/** `n`'s document (a host tree's, an iframe's); `n` itself when it is one; else the global one */\nexport const docOf = (n: any): any => n?.ownerDocument || (n?.nodeType == 9 ? n : G.document)\n\n/** the element with the focus where `n` is: its root's (a shadow root's), else its document's */\nexport const focused = (n: any): any => {\n const d = docOf(n), r = n?.getRootNode?.()\n return (r && r !== d && r.activeElement) || d?.activeElement\n}\n\n/** an event from `n`'s window (`C`: its constructor's name; a window without it: Event) */\nexport const evt = (n: any, type: string, init: any, C = 'Event'): any => {\n const w = docOf(n)?.defaultView || G\n return new (w[C] || w.Event)(type, init)\n}\n\n/** the elements matching `sel` in `n`'s document and in its own root (a shadow root) */\nexport const all = (n: any, sel: string): any[] => {\n const d = docOf(n), r = n?.getRootNode?.()\n return [...(d?.querySelectorAll(sel) || []), ...(r && r !== d && r.querySelectorAll ? r.querySelectorAll(sel) : [])]\n}\n\n/** `n`'s window's MutationObserver (none for a host tree, whose nodes a browser's can't observe) */\nexport const observer = (n: any): any => docOf(n)?.defaultView?.MutationObserver\n","/*\n * UI sweep round 4: the layer stack's entries alone (layers.ts adds the listeners that dismiss).\n * One stack per page on a global, shared by sygnal/ui and the Zag parts' bundles, which each have\n * their own copy of this file: a Zag part only adds and removes its layer (Zag dismisses it), so it\n * doesn't carry the listeners, which only controlled layers (sygnal/ui's, installing them) need.\n */\nconst G: any = globalThis\nexport const S: any = (G[Symbol.for('sygnal.layers')] ||= {stack: []})\n/** `el` closed */\nexport const pull = (el: any) => {\n const i = S.stack.findIndex((l: any) => l.el === el)\n i < 0 || S.stack.splice(i, 1)\n}\n/** `el` opened: on top of the stack (again) */\nexport const add = (el: any, l: any) => {\n pull(el)\n S.stack.push({el, ...l})\n}\n","/*\n * ui-sweep round 3: dismissable layers, as Radix's DismissableLayer. A controlled dialog or\n * popover (its `open` option given) doesn't let the browser dismiss it: it is a manual popover /\n * a dialog with closedby=\"none\", and the layer stack here turns an Escape, a pointerdown outside\n * and a focus moving outside into a `sygnaldismiss` event on its element (detail: that event),\n * which the behavior's intent makes its close request (popover DISMISS, dialog CANCEL). The\n * element closes only when the state says so: a host entry that keeps it open keeps it open, with\n * no frame where it is hidden.\n *\n * - Escape: only the top layer (and not while an auto / hint popover inside it is open: the\n * browser closes that one first, G-579), and not one an element handled (defaultPrevented)\n * - pointerdown outside (touch: at the click after it, as Radix): every layer the target is outside of, top first; a target inside a layer\n * opened in it (in its DOM, or in a <Portal> rendered in it) is inside. Layers under a modal\n * dialog get none (the page under it is inert); a press on a layer's own popovertarget /\n * commandfor button is not outside (its click opens or closes it through the model)\n * - focus outside: as pointerdown, without the modal floor (Radix's onFocusOutside); round 4: not\n * the focus a press moves (one dismissal per interaction: the pointerdown's)\n * - round 4: an open Zag part (Menu, Select, Combobox: zag/shared.ts layered()) is a layer the\n * stack doesn't dismiss (Zag does), anchored at its widget's host: a press in it is inside the\n * layers its host is in, and Escape is its own while it is on top\n *\n * Every dialog a dialog behavior opens is a layer too (uncontrolled: `ctl` false), so Escape and\n * pointers know what is on top; an uncontrolled dialog keeps its own Escape (covered() below).\n */\nimport {all, docOf, evt} from './dom'\nimport {add, pull, S} from './stack'\n\nexport {pull}\nexport const DISMISS = 'sygnaldismiss'\n\n// a layer: its element, whether the stack dismisses it (ctl), on Escape (esc), on a press or a\n// focus outside (out), whether it is modal, the selector of a trigger whose press isn't outside,\n// and (round 4) its anchor: the element that places it in the page when its element is elsewhere\n// (a Zag part's content: the widget's host), so it is inside the layers its anchor is inside\ntype Layer = {el: any; ctl?: boolean; esc?: boolean; out?: boolean; modal?: boolean; trigger?: any; anchor?: any}\n\n// (one stack per page: stack.ts; the listeners are installed once per document, by the first\n// sygnal/ui copy that opens a layer in it, and stay)\nconst stack: Layer[] = S.stack\n\n// G-579: an open popover Escape closes before the layer it is in: an auto or hint one (the\n// `popover` property: an engine without hint reads it as manual; the attribute where there is\n// none). Not a manual one (a Toaster region moved into a modal, D198; a tooltip)\nexport const first = (p: any) => { try { return /^(auto|hint|)$/i.test(p.popover ?? p.getAttribute('popover')) && p.matches(':popover-open') } catch (_) { return false } }\n\n// a <Portal>'s content → its placeholder (core/markers/portal.ts names the content `__portal`),\n// in `n`'s document and root (round 6)\nconst owners = (n: any) => {\n const m = new Map()\n for (const p of all(n, '[data-sygnal-portal]')) p.__portal && m.set(p.__portal, p)\n return m\n}\n/** `n` is in `a`: in its DOM, in a shadow root in it, or in a <Portal> rendered in it */\nexport const within = (a: any, n: any, m = owners(a)): boolean => {\n for (; n; n = m.get(n) || n.parentElement || n.parentNode?.host) if (n === a) return true\n return false\n}\n// `n` is in the layer at `i`: in its element, or in a layer above it whose anchor is in it (Radix:\n// a nested layer is inside its parent wherever it renders)\nconst inside = (i: number, n: any, m: any): boolean => {\n if (within(stack[i].el, n, m)) return true\n for (let j = i + 1; j < stack.length; j++) { const l = stack[j]; if (l.anchor && within(l.el, n, m) && inside(i, l.anchor, m)) return true }\n return false\n}\n\n// (a layer the page no longer has is dropped; its close event never came)\nconst prune = () => { for (let i = stack.length; i--;) stack[i].el.isConnected || stack.splice(i, 1) }\n/** `el` opened: on top of the stack (again) */\nexport const push = (el: any, l: Omit<Layer, 'el'>) => {\n add(el, l)\n // (round 6: once per document: the element's own, a host tree's or an iframe's)\n const d = docOf(el), on = S.docs ||= new WeakSet()\n if (!d?.addEventListener || on.has(d)) return\n on.add(d)\n const end = () => { S.press = 0 }\n d.addEventListener('pointerdown', down, true)\n d.addEventListener('focusin', focus, true)\n d.addEventListener('keydown', key)\n // the end of a press (round 4: the focus a press moves is that press's, not a second dismissal)\n for (const t of ['click', 'pointercancel', 'keydown']) d.addEventListener(t, end, true)\n}\n\n/** a layer opened over `el` and inside it is open (its Escape is that layer's) */\nexport const covered = (el: any) => {\n prune()\n const m = owners(el), i = stack.findIndex((l) => l.el === el)\n return stack.slice(i + 1).some((l) => l.el !== el && (within(el, l.el, m) || (l.anchor && within(el, l.anchor, m))))\n}\n\nconst fire = (l: Layer, e: Event) => l.el.dispatchEvent(evt(l.el, DISMISS, {detail: e, bubbles: true}, 'CustomEvent'))\n\n// the target is outside the layer at `i`: not in it, nor its own trigger; a modal dialog's\n// ::backdrop (a press on the dialog outside its box) is outside\nconst outside = (i: number, t: any, e: any, m: any) => {\n const l = stack[i], b = t?.closest?.('[popovertarget],[commandfor]'), id = b && (b.getAttribute('popovertarget') || b.getAttribute('commandfor'))\n if ((id && id === l.el.id) || (l.trigger && t?.closest?.('' + l.trigger))) return false\n // (a host tree has no boxes: a press on the dialog itself is inside it)\n if (t === l.el && l.el.localName == 'dialog' && t.getBoundingClientRect) {\n const r = t.getBoundingClientRect()\n return e.clientX < r.left || e.clientX > r.right || e.clientY < r.top || e.clientY > r.bottom\n }\n return !inside(i, t, m)\n}\nconst away = (e: any, floor: number) => {\n prune()\n const t = e.composedPath?.()[0] ?? e.target, m = owners(t), out: Layer[] = []\n // (decided for every layer before any is dismissed: a dismissal may change the stack)\n for (let i = stack.length; i-- > floor;) stack[i].ctl && stack[i].out && outside(i, t, e, m) && out.push(stack[i])\n out.forEach((l) => fire(l, e))\n}\n// (Radix: a touch press dismisses on the click that follows it, so a scroll gesture that starts\n// outside doesn't; the next press drops a click that never came)\nfunction down(e: any) {\n let f = 0\n stack.forEach((l, i) => { l.modal && (f = i) })\n S.press = 1\n const d = docOf(e.target)\n d.removeEventListener('click', S.tap, true)\n S.tap = () => away(e, f)\n e.pointerType == 'touch' ? d.addEventListener('click', S.tap, {capture: true, once: true}) : S.tap()\n}\n// a focus outside, not one a press moved (round 4: one dismissal per interaction, the press's,\n// as Radix reports pointerdownoutside first)\nfunction focus(e: any) { S.press || away(e, 0) }\nfunction key(e: any) {\n if (e.key != 'Escape' || e.defaultPrevented || e.isComposing || e.keyCode == 229) return\n prune()\n // (the top layer only: a Zag part's, which Zag closes itself, or an uncontrolled dialog's, which\n // has its own Escape, takes it)\n const l = stack[stack.length - 1], m = l && owners(l.el)\n l?.ctl && l.esc && !all(l.el, '[popover]').some((p) => first(p) && within(l.el, p, m)) && fire(l, e)\n}\n","/*\n * PLAN-5 2-U: helpers the sygnal/ui parts share. Everything from the core comes through\n * '../index', which the 'sygnal/ui' build turns into the external 'sygnal' (one core per app).\n */\nimport {sampleCombine, xs} from '../index'\n\n/** `v` as a quoted CSS string, for an attribute selector (`.tab[data-value=\"a b\"]`) */\nexport const lit = (v: any): string => '\"' + String(v).replace(/[\"\\\\]/g, '\\\\$&') + '\"'\n\n/**\n * G-407: a part of an id: letters, digits and '-' as they are, anything else (whitespace, '_')\n * as `_<code>_` (as the core's uidPart), so two values never make the same id ('a b' / 'a_b')\n */\nconst part = (v: any): string => String(v).replace(/[^A-Za-z0-9-]/g, (c) => '_' + c.charCodeAt(0) + '_')\n\n/**\n * The ids of one part's elements: `uid('<slice id>-<kind>-<value>')`. The slice id is the part's\n * key in `uses` (keyed() below) unless an `id` option names it; uid() makes it unique per\n * component instance. The slice id and the value are escaped (part()): no whitespace (aria-controls\n * is a list of ids) and no collisions.\n */\nexport const idsOf = (s: any, uid: any, fallback: string) => (kind: string, v?: any): string => {\n const n = `${part(s?.id ?? fallback)}-${kind}${v == null ? '' : '-' + part(v)}`\n return uid ? uid(n) : n\n}\n\n/**\n * an ELEMENT target whose `m` command runs `run(element, options)` (a D102 spec command). G-425:\n * `__sel` is the selector renderComponent's `t.commands('ELEMENT')` logs in its place. R2:\n * `optional`: no SYG640 when nothing matches (closing an element the host no longer renders)\n */\nexport const on = (sel: any, m: string, run: (el: any, o: any) => void, optional?: boolean): any => ({toString: () => '' + sel, __sel: sel, spec: {commands: {[m]: run}, optional}})\n\n// ── ui-sweep R4: a part's elements in a <Portal> ─────────────────────\n// A <Portal> patches its content into its target, outside the component's own DOM; its\n// placeholder (in the component's DOM) names that content as `__portal` (core/markers/portal.ts).\n// The component's own roots come from `DOM.elements()` (no select(): the dev selector checks\n// don't see it); the mock DOM has none, and the parts then read their own DOM only.\nconst boxes = (roots: any): any[] => {\n const b: any[] = []\n for (const r of roots || []) for (const p of r.querySelectorAll?.('[data-sygnal-portal]') || []) p.__portal && b.push(p.__portal)\n return b\n}\nconst real = (DOM: any) => typeof DOM.elements == 'function'\n\n/** the elements `sel` matches: in the component's own DOM, else in the content of its portals */\nexport const find = (DOM: any, sel: any): any => {\n const own = DOM.select(sel).elements()\n return real(DOM) ? xs.combine(own, DOM.elements()).map(([o, rs]: any) => (o?.length ? o : boxes(rs).flatMap((b) => [...b.querySelectorAll('' + sel)]))) : own\n}\n\n/**\n * `type` events on `sel`'s elements (and, for a type that bubbles, from inside them), in the\n * component's own DOM and in its portals: there a capture listener on the document, with\n * `ownerTarget` set as the DOM driver sets it and `preventDefault` (true or a predicate) applied\n */\nexport const ev = (DOM: any, sel: any, type: string, o: any = {}, bubbles?: boolean): any => {\n const own = DOM.select(sel).events(type, o, bubbles)\n if (!real(DOM)) return own\n const pd = o.preventDefault\n return xs.merge(own, DOM.select('document').events(type, {useCapture: true}).compose(sampleCombine(DOM.elements())).map(([e, rs]: any) => {\n const t = e.target, m = e.bubbles ? t?.closest?.('' + sel) : t?.matches?.('' + sel) && t\n // not in its own DOM (the DOM driver delivers those), in one of its portals\n if (!m || rs.some((r: any) => r.contains(m)) || !boxes(rs).some((b) => b.contains(m))) return\n Object.defineProperty(e, 'ownerTarget', {value: m, configurable: true})\n if (pd === true || (typeof pd == 'function' && pd(e))) e.preventDefault()\n return e\n }).filter(Boolean))\n}\n\n/**\n * G-400: SYNC's trigger for a dialog / popover behavior: `false` when its element left the page\n * while the state says open (removed while open: no close / toggle event comes). R4: the element\n * may be in a portal (`els` from find()). R2: a host made again on a state that was open opens it\n * (APPLY), so the first look no longer closes the state.\n */\nexport const gone = (els: any, STATE: any): any => {\n // R2: only an element that was there (the first look may come before the first render)\n let had = false\n return els.compose(sampleCombine(STATE.stream)).filter(([e, s]: any) => {\n const left = had && !e?.length\n had = !!e?.length\n return left && !!s?.open\n }).mapTo(false)\n}\n\n/**\n * ui-sweep R2: APPLY's trigger: `state.open` is the source of truth (a controlled `open`, as\n * Radix's `open` / `onOpenChange`). When the slice's `open` changes, or its element is new (a\n * first render, a host rendered again), and the element still doesn't match once the commands of\n * that change have run (two microtasks after the next patch, or 20 ms when none comes), the\n * slice's value goes out: APPLY makes the element match. A host reducer that writes `open` opens\n * or closes the part this way; the behavior's own actions send their commands themselves, so\n * they match by then. A change of the element alone (a native close before its close event)\n * sends nothing.\n */\nexport const watch = (els: any, STATE: any, isOpen: (el: any) => boolean): any => {\n let cur: any, lastEl: any, lastOpen = false, due = 0, t: any, sub: any, q = 0\n const check = (l: any) => {\n clearTimeout(t)\n if (!due) return\n due = 0\n const [es, s] = cur, el = es?.[0], open = !!s?.open\n if (el && isOpen(el) !== open) l.next(open)\n }\n return xs.create({\n start: (l: any) => {\n sub = xs.combine(els, STATE.stream).subscribe({next: (x: any) => {\n const prev = cur\n cur = x\n const el = x[0]?.[0], open = !!x[1]?.open\n // (no timer while they match: a dialog that stays closed costs none)\n if ((el !== lastEl || open !== lastOpen) && el && isOpen(el) !== open) { due = 1; clearTimeout(t); t = setTimeout(() => check(l), 20) }\n lastEl = el\n lastOpen = open\n // a patch (the elements again): the change's commands run in a microtask after it\n if (due && prev && x[0] !== prev[0] && !q++) queueMicrotask(() => queueMicrotask(() => { q = 0; check(l) }))\n }})\n },\n stop: () => { sub?.unsubscribe(); clearTimeout(t) },\n })\n}\n\n/**\n * Writes the `uses` key into the slice's `id` (the prefix of the ids the attribute helpers make)\n * when no `id` option set it. Runs after the behavior's own merge, on the copy of the host's\n * initialState (or the sub-component default) that merge made. G-407: `id` is also a calculated\n * field, so a host reducer that replaces the slice without it gets it back (the ids stay).\n */\nexport const keyed = (b: any): any => {\n const merge = b.merge\n // G-423: renderToString gives a missing `id` the same key (extra/ssr.ts withUses)\n b.keyed = 1\n b.merge = (c: any, k: string) => {\n const id = b.options?.id ?? k\n b.calculated = {...b.calculated, id: (s: any) => s.id ?? id}\n merge(c, k)\n for (const f of ['initialState', '_idle']) {\n const o = c[f]\n if (o && o[k] && o[k].id == null) o[k] = {...o[k], id: k}\n }\n }\n return b\n}\n\n/**\n * ui-sweep: a focus a tooltip shows for: `:focus-visible` (the keyboard; a focus returned after a\n * keyboard close). Not a mouse click's (Chromium and Firefox focus a clicked button: the tip\n * stayed shown after the pointer left, until the focus moved). A focus event on an element\n * that doesn't have the focus (a test's simulated one), or without `matches` (the mock DOM), counts\n */\nexport const visible = (e: any): boolean => {\n try { const el = e.target; return el.getRootNode().activeElement !== el || el.matches(':focus-visible') } catch (_) { return true }\n}\n\nconst mod = (e: any) => e.altKey || e.ctrlKey || e.metaKey\n\n/**\n * Roving focus (WAI-ARIA APG): a keydown on one of `sel`'s elements becomes the `data-value` of\n * the element to move to: `next` / `prev` keys step through them in DOM order (wrapping unless\n * loop is false), Home / End go to the first / last. Disabled elements are skipped. The keys it\n * handles have their default prevented (no page scroll); every other key passes through.\n * Reads the elements of the host's own DOM (DOM.select(sel).elements()), so it needs a real\n * DOM: on renderComponent's mock DOM, simulate the action with a value instead.\n */\nexport const keyNav = (DOM: any, sel: any, next: string[], prev: string[], loop: any): any => {\n const keys = [...next, ...prev, 'Home', 'End'], s = DOM.select(sel)\n const ours = (e: any) => !mod(e) && keys.includes(e.key)\n return s.events('keydown', {preventDefault: ours})\n .compose(sampleCombine(s.elements()))\n .map(([e, els]: any) => {\n if (!ours(e)) return\n const list = [...(els || [])].filter((el: any) => !el.disabled), n = list.length, k = e.key\n const i = list.findIndex((el: any) => el.contains(e.target))\n const j = k == 'Home' ? 0 : k == 'End' ? n - 1 : i + (next.includes(k) ? 1 : -1)\n const to: any = loop === false ? list[j] : list[(j + n) % n]\n return to?.getAttribute('data-value')\n })\n .filter((v: any) => v != null)\n}\n","/*\n * PLAN-5 2-U (S-3, from spike 0-S3): Dialog, a behavior over a native <dialog>.\n *\n * Settings.uses = { prefs: dialog({ dialog: '.prefs', trigger: '.open-prefs', close: '.close-prefs' }) }\n *\n * The host renders the <dialog> (aria-labelledby its heading) and its buttons. OPEN calls\n * showModal() through ELEMENT: the browser traps the focus, makes the page inert and returns the\n * focus. ui-sweep R2: `open` is the source of truth (Radix's controlled `open` / `onOpenChange`):\n * a host reducer that writes it opens or closes the dialog (APPLY), and everything that would\n * close it asks the model first, prevented: Escape (closedby=\"none\" + the keydown) and a light\n * dismiss as CANCEL, the close button, a method=\"dialog\" form and commandfor \"close\" as CLOSE, so\n * a host entry that keeps `open: true` keeps it open without it ever closing. A close the browser\n * makes on its own comes as CLOSED (a host entry keeping it open opens it again); an open\n * without the model as TOGGLED. R4: the dialog may be in a <Portal> the host renders. Round 3:\n * with the `open` option given (controlled) the browser never dismisses it (closedby=\"none\" while\n * open, whatever the host set): the layer stack (layers.ts) does, by what the host's closedby\n * names (Escape; \"any\": a press or a focus outside too), as CANCEL, top layer first.\n *\n * Options: `dialog` (required; 3-W G-536: it must match only this dialog, not one nested in it,\n * whose close / toggle / FAIL events it would take too), `trigger` and `close` (clicks dispatch OPEN / CLOSE), `modal`\n * (true; false opens it with show()), `cancelable` (true; false: CANCEL leaves the state open),\n * `open` (R2: the start, false), `returnFocus` (true: when the dialog closes and the\n * focus was lost, which WebKit does after a mouse click, the element that opened it gets it\n * (G-407: the clicked trigger, recorded by OPEN), else the trigger; a selector names another\n * element; false: leave it to the browser. G-430: the opener is focused from the close event, or\n * (R2) when the host stops rendering the open dialog, so it needs no command target).\n * `id` (round 5: the prefix of dialogAttrs' ids; default: the key in `uses`).\n * State: { id, open, returnValue }. Actions: OPEN, CLOSE (data: the returnValue), CANCEL (Escape: the\n * keydown in the dialog while it has the closedby=\"none\" OPEN set (G-405 / G-429: no CloseWatcher\n * close; the attribute goes when it closes); the prevented cancel event of a dialog with the\n * host's own closedby; G-457: not an Escape an element inside handled (defaultPrevented) or an\n * IME one, and not for a non-modal dialog, which Escape doesn't cancel either way), CLOSED (the\n * close event's returnValue), TOGGLED (from the toggle event), SYNC (G-400: the dialog left the\n * page while open: `open: false`; G-524: or OPEN's showModal() threw: no close event then), APPLY\n * (R2: `open` changed outside these: make the dialog match).\n * G-400: the commands check the dialog itself (showModal only on a closed one, close only on an\n * open one), so a state that is out of step can't block them.\n * Round 5: `dialogAttrs(state, uid)` gives the trigger, the dialog, its title and description the\n * ARIA and ids of Radix's Dialog.Trigger / Content / Title / Description / Close.\n */\nimport {ABORT, defineBehavior, xs} from '../index'\nimport {docOf, evt, focused, observer} from './dom'\nimport {covered, DISMISS, first, pull, push} from './layers'\nimport {ev, find, gone, idsOf, keyed, on, watch} from './shared'\n\n// G-429: Escape in this dialog (not in a dialog nested in it, nor with a popover open inside it\n// that Escape closes first, G-579 (layers.ts first()), nor with a controlled layer open inside it,\n// round 3: Escape is that layer's). G-457: not one an element inside handled (a Zag combobox or\n// menu closing its list prevents it: the browser sends no cancel then either), nor one that ends\n// an IME composition (Safari sends keyCode 229 with isComposing false). R2: only while the dialog\n// has closedby=\"none\" (OPEN sets it; with the host's own closedby the cancel event comes instead)\n// (the attribute, not the closedBy property: one that only an engine with closedby reflects)\nconst none = (d: any) => /^none$/i.test(d?.getAttribute?.('closedby') || '')\nconst esc = (e: any) => e.key == 'Escape' && !e.defaultPrevented && !e.isComposing && e.keyCode != 229 &&\n e.target?.closest?.('dialog') == e.ownerTarget && none(e.ownerTarget) &&\n ![...(e.ownerTarget?.querySelectorAll?.('[popover]') ?? [])].some(first) && !covered(e.ownerTarget)\n\n// the focus went nowhere where `el` is: body, a detached element, or inside a dialog that just\n// closed (round 6: `el`'s document and root, so a host tree, an iframe, a shadow root)\nconst lost = (el: any) => {\n const a: any = focused(el)\n return !a || a == docOf(el)?.body || !a.isConnected || !!a.closest?.('dialog:not([open])')\n}\n// an ELEMENT target (D102 spec command): focus `sel` only when the focus was lost\nconst refocus = (sel: any) => on(sel, 'focus', (el: any, o: any) => { lost(el) && el.focus(o) })\n\n// G-524: OPEN's showModal() threw (bubbles: the DOM driver listens at its root)\nconst FAIL = 'sygnaldialogfail'\n\nconst method = (o: any) => (o.modal === false ? 'show' : 'showModal')\n// R2: a method=\"dialog\" form of this dialog (the submitter's formmethod wins), not a nested dialog's\nconst ownForm = (e: any) => (e.submitter?.getAttribute?.('formmethod') || e.target?.getAttribute?.('method') || '').toLowerCase() == 'dialog' &&\n e.target?.closest?.('dialog') == e.ownerTarget\n// R2: an invoker command (commandfor) this behavior handles itself: on this dialog, not a custom one\nconst ownCommand = (e: any) => e.target === e.ownerTarget && /^(show-modal|close|request-close)$/.test(e.command)\n\n/**\n * Opens the dialog (when closed): showModal() unless modal: false. `by` is what opened it: the\n * clicked trigger (OPEN's click event, G-407), a commandfor button (`source`), else the element\n * with the focus; the focus goes back to it on close (G-430).\n */\nconst show = (el: any, o: any, by?: any) => {\n if (el.open) return\n const m = method(o)\n // ui-sweep: the element keeps the last close's returnValue, and an Escape (no new value) would\n // report it again: an earlier 'ok' would read as this close's\n el.returnValue = ''\n const a = focused(el), op: any = by?.nodeType == 1 ? by : a != docOf(el)?.body ? a : null\n // R2: a modal dialog gets closedby=\"none\" (unless the host set closedby): Escape reaches the\n // model as CANCEL (a keydown), which closes it through the state, so a host entry can keep it\n // open (G-405: Chromium's CloseWatcher would close on a second Escape otherwise). Round 3: a\n // controlled one always (the host's closedby says what the layer stack dismisses it on: \"any\"\n // a press or a focus outside too, \"none\" nothing; none given: Escape when modal), back on close\n const hc = el.getAttribute('closedby'), cb = o.controlled ? hc != 'none' : m == 'showModal' && hc == null\n const back = () => { hc == null ? el.removeAttribute('closedby') : el.setAttribute('closedby', hc) }\n if (cb) el.setAttribute('closedby', 'none')\n // G-461: a showModal() that throws (a disconnected dialog, a popover open on it) leaves no\n // closedby and arms no listener (a later close would focus this opener). G-488: and the state\n // goes back to closed, so the next OPEN can open it; G-524: through SYNC (an internal FAIL\n // event), not a close event: the host's close listeners don't run for a dialog that never\n // opened, and no previous returnValue comes again. The error is the command's (thrown once)\n try { el[m]() } catch (e) { cb && back(); el.dispatchEvent(evt(el, FAIL, {bubbles: true})); throw e }\n // round 3: a layer (layers.ts): on top for Escape and presses outside; dismissed by the stack\n // when controlled (by what the host's closedby names)\n const c = (hc || (m == 'showModal' ? 'closerequest' : 'none')).toLowerCase()\n push(el, {ctl: !!o.controlled, esc: c != 'none', out: c == 'any', modal: m == 'showModal', trigger: o.trigger})\n // on close: G-429 the closedby it set goes (it is the behavior's: the host's comes back), it\n // leaves the layer stack (round 3); G-430 the\n // element that opened it gets the focus back when it was lost, here rather than by a command (a\n // dialog the host renders only while open is gone by then), and nothing keeps the opener after\n // that. Capture: at the target it runs before the DOM driver's listener, so before CLOSED (whose\n // trigger fallback would take the focus first)\n const done = () => {\n mo?.disconnect()\n pull(el)\n cb && back()\n if ((o.returnFocus ?? true) === true && op?.isConnected && lost(el)) op.focus()\n }\n el.addEventListener('close', done, {once: true, capture: true})\n // R2: a host that renders the dialog only while open removes it when `open` goes false, before\n // any close event: the opener gets the focus back then too (Radix's focus scope on unmount)\n // (round 6: the element's window's MutationObserver: a host tree has none)\n const root = el.getRootNode(), MO = observer(el), mo = MO ? new MO(() => {\n if (!el.isConnected) el.removeEventListener('close', done, {capture: true}), done()\n }) : null\n mo?.observe(root.nodeType == 9 ? root.body : root, {childList: true, subtree: true})\n}\n// the commands that make the dialog match an open / closed slice (each checks the dialog itself,\n// G-400, so one that is already as asked does nothing)\nconst opening = (o: any, by?: any) => ({[method(o)]: on(o.dialog, method(o), (el: any) => show(el, o, by))})\n// (optional: a host that renders the dialog only while open has removed it by then, G-430)\nconst closing = (o: any, rv: any) => ({close: on(o.dialog, 'close', (el: any, x: any) => { el.open && el.close(x.returnValue) }, true), returnValue: typeof rv == 'string' ? rv : ''})\nconst closed = (s: any, rv: any) => (!s.open && s.returnValue === rv ? ABORT : {...s, open: false, returnValue: rv})\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null, open: false, returnValue: ''},\n // SYG118 (dev): the option each action's trigger is built from (a host intent of that name replaces it)\n triggers: {OPEN: 'trigger', CLOSE: 'close'},\n intent: ({DOM, STATE}: any, {dialog: d, trigger, close, modal, controlled}: any) => {\n const cmd = ev(DOM, d, 'command', {preventDefault: ownCommand}, false).filter(ownCommand)\n const els = find(DOM, d)\n return {\n OPEN: xs.merge(trigger ? ev(DOM, trigger, 'click') : xs.never(), cmd.filter((e: any) => e.command == 'show-modal')),\n // R2: everything that would close it asks the model first: the close button, a\n // method=\"dialog\" form's submit (prevented; the submitter's value), commandfor \"close\"\n CLOSE: xs.merge(\n close ? ev(DOM, close, 'click').mapTo('') : xs.never(),\n ev(DOM, d, 'submit', {preventDefault: ownForm}, true).filter(ownForm).map((e: any) => e.submitter?.value ?? ''),\n cmd.filter((e: any) => e.command == 'close').map((e: any) => e.source?.value ?? ''),\n ),\n // (R2: an event the dialog has moved on from since is dropped: a close event that comes after\n // the model opened it again, a toggle that no longer says what it is)\n TOGGLED: ev(DOM, d, 'toggle', {}, false).filter((e: any) => e.target?.open !== (e.newState != 'open')).map((e: any) => e.newState == 'open'),\n CLOSED: ev(DOM, d, 'close', {}, false).filter((e: any) => !e.target?.open).map((e: any) => e.target?.returnValue ?? ''),\n // R2: Escape (closedby=\"none\": the keydown), the cancel event of a dialog with the host's own\n // closedby (light dismiss) or of a non-modal one, commandfor \"request-close\": prevented, so\n // the state decides. G-457: a non-modal dialog gets no keydown CANCEL (Escape doesn't close one)\n CANCEL: xs.merge(\n // (round 3: a controlled one's Escape, press and focus outside come from the layer stack)\n controlled ? ev(DOM, d, DISMISS, {}, false).filter((e: any) => e.target === e.ownerTarget).map((e: any) => e.detail)\n : modal === false ? xs.never() : ev(DOM, d, 'keydown').filter(esc),\n ev(DOM, d, 'cancel', {preventDefault: true}, false).filter((e: any) => e.target === e.ownerTarget && !none(e.ownerTarget)),\n cmd.filter((e: any) => e.command == 'request-close'),\n ),\n // G-524: SYNC also when OPEN's showModal() threw (FAIL, below; true). 3-U G-533: only this\n // behavior's dialog's own FAIL, not one bubbling from a dialog inside it (another behavior's)\n SYNC: ((f: any) => STATE ? xs.merge(gone(els, STATE), f) : f)(\n ev(DOM, d, FAIL).filter((e: any) => e.target === e.ownerTarget).mapTo(true)),\n ...(STATE && {APPLY: watch(els, STATE, (e: any) => !!e.open)}),\n }\n },\n // every entry that can change `open` sends the commands for the slice it ends with, the host's\n // entries for the same action included (7.0: outputs get the committed slice): a host entry\n // that keeps `open: true` keeps the dialog open\n model: {\n OPEN: {\n STATE: (s: any) => (s.open ? ABORT : {...s, open: true, returnValue: ''}),\n // G-407: who opened it: the clicked trigger, or the commandfor button\n ELEMENT: (s: any, d: any, _n: any, _p: any, o: any) => (s.open ? opening(o, d?.source || d?.ownerTarget) : ABORT),\n },\n CLOSE: {\n STATE: (s: any, rv: any) => (s.open ? {...s, open: false, returnValue: typeof rv == 'string' ? rv : ''} : ABORT),\n // (on a closed dialog too: the command checks the dialog, G-400)\n ELEMENT: (s: any, rv: any, _n: any, _p: any, o: any) => (s.open ? ABORT : closing(o, rv)),\n },\n TOGGLED: {\n STATE: (s: any, open: boolean) => (open && !s.open ? {...s, open, returnValue: ''} : ABORT),\n // opened without the model and the host kept it closed: close it again\n ELEMENT: (s: any, open: boolean, _n: any, _p: any, o: any) => (open && !s.open ? closing(o, s.returnValue) : ABORT),\n },\n CLOSED: {\n STATE: (s: any, rv: string) => closed(s, rv),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => {\n // closed by the browser and the host kept it open (R2): open it again\n if (s.open) return opening(o)\n // returnFocus true: the element that opened it (show()'s close listener, G-430), else the\n // trigger; a selector: that element (each only when the focus was lost)\n const f = o.returnFocus ?? true, sel = f === true ? o.trigger : f\n return sel ? {focus: refocus(sel)} : ABORT\n },\n },\n CANCEL: {\n STATE: (s: any, _e: any, _n: any, _p: any, o: any) => (o.cancelable === false ? ABORT : closed(s, '')),\n ELEMENT: (s: any, _e: any, _n: any, _p: any, o: any) => (s.open ? ABORT : closing(o, s.returnValue)),\n },\n // G-534: after a failed OPEN the returnValue is '' (also when OPEN's STATE aborted: the state\n // was open while the element was closed)\n SYNC: (s: any, failed: any) => (s.open ? {...s, open: false, ...(failed === true && {returnValue: ''})} : ABORT),\n // R2: the slice's `open` changed outside these entries (a host reducer): make the dialog match\n APPLY: {ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? opening(o) : closing(o, s.returnValue))},\n },\n})\n\n/** A native <dialog> as a behavior: `uses = { help: dialog({ dialog: '.help', trigger: '.open-help', close: '.close-help' }) }`. */\nexport const dialog = (options: any = {}): any => keyed(base({...options, open: !!options.open, returnValue: '', controlled: options.open !== undefined}))\n\n/**\n * Round 5: the attributes of a dialog's elements, from its slice, as Radix's Dialog parts: the\n * trigger's aria-haspopup / aria-expanded / aria-controls, the dialog's id and its name and\n * description (aria-labelledby / aria-describedby: the `title` and `description` ids), data-state.\n * (No role: a <dialog> has it; an alert dialog writes role=\"alertdialog\" on it.)\n */\nexport const dialogAttrs = (s: any, uid: any): any => {\n const id = idsOf(s, uid, 'dialog'), open = !!s?.open, state = open ? 'open' : 'closed'\n return {\n trigger: {type: 'button', 'aria-haspopup': 'dialog', 'aria-expanded': open, 'aria-controls': id('dialog'), 'data-state': state},\n dialog: {id: id('dialog'), 'aria-labelledby': id('title'), 'aria-describedby': id('description'), 'data-state': state},\n title: {id: id('title')},\n description: {id: id('description')},\n close: {type: 'button'},\n }\n}\n","/*\n * PLAN-5 2-U (S-3, from spike 0-S3): Popover, a behavior over the Popover API.\n *\n * Filters.uses = { filters: popover({ popover: '.filters', close: '.filters-done' }) }\n * <button popovertarget={uid('filters')}>Filters</button>\n * <div className=\"filters\" id={uid('filters')} popover=\"auto\">…</div>\n *\n * The browser does the work: a `popovertarget` button opens and closes it, sets aria-expanded,\n * light-dismisses it (a click outside, Escape) and returns the focus. ui-sweep R2: `open` is the\n * source of truth (Radix's controlled `open`): OPEN / CLOSE / TOGGLE and a host reducer that writes\n * it show or hide the popover (ELEMENT showPopover / hidePopover; APPLY for a host write), and the\n * toggle event writes it back (TOGGLED; a host entry that keeps the other value shows or hides it\n * again). R4: the popover may be in a <Portal> the host renders. Open it from elsewhere with a host intent:\n * `'filters.OPEN': DOM.click('.edit-filters')`.\n *\n * Round 4: `trigger` (Radix's Popover.Trigger): its clicks dispatch TOGGLE with the value to go to,\n * read from the popover as it was at the press (an auto popover's light dismiss closes it between\n * the press and the click: a plain flip would open it again), and a press on it isn't outside a\n * controlled one. `popoverAttrs(state, uid)` gives it aria-haspopup / aria-expanded /\n * aria-controls and the popover its id.\n *\n * Round 3: with the `open` option given it is controlled (Radix's open / onOpenChange): a manual\n * popover the browser never dismisses; the layer stack (layers.ts) turns Escape, a press and a\n * focus outside into DISMISS (top layer first), and its popovertarget buttons / commandfor\n * commands are prevented and dispatched as TOGGLE / OPEN / CLOSE, so a host entry that keeps\n * `open: true` keeps it shown with no frame hidden. Uncontrolled ones keep the light dismiss.\n *\n * Options: `popover` (required), `trigger` (round 4), `close` (a button inside; its click\n * dispatches CLOSE), `open`, `id` (the ids' prefix for popoverAttrs; default: the key in `uses`).\n * State: { id, open }. Actions: OPEN, CLOSE, TOGGLE, DISMISS (controlled), TOGGLED (data: open, from the toggle event),\n * SYNC (G-400: the popover left the page while open: `open: false`).\n * G-400 / G-406: OPEN and CLOSE send commands that check the popover itself (`:popover-open`),\n * not the state, which follows the asynchronous toggle event: OPEN then CLOSE in one tick ends\n * closed, and a popover removed while open opens again.\n */\nimport {ABORT, defineBehavior, sampleCombine, xs} from '../index'\nimport {docOf} from './dom'\nimport {DISMISS, pull, push} from './layers'\nimport {ev, find, gone, idsOf, keyed, on, watch} from './shared'\n\n// a popovertarget button's popover\n// (round 6: in the button's root, a shadow root's or a host tree's, else its document)\nconst tgt = (b: any) => {\n if (b?.popoverTargetElement !== undefined) return b.popoverTargetElement\n const r = b?.getRootNode?.(), id = b?.getAttribute?.('popovertarget')\n return id && (r?.getElementById ? r : docOf(b))?.getElementById(id)\n}\nconst isOpen = (el: any) => { try { return el.matches(':popover-open') } catch (_) { return false } }\n// round 3: a controlled popover (its `open` option given) is a manual one on the layer stack: the\n// browser never dismisses it, an Escape / a press or a focus outside comes as DISMISS (layers.ts)\nconst layer = (el: any, o: any) => {\n push(el, {ctl: true, esc: true, out: true, trigger: o.trigger})\n const end = (e: any) => { e.newState == 'closed' && (pull(el), el.removeEventListener('toggle', end)) }\n el.addEventListener('toggle', end)\n}\n// the commands that make the popover match an open / closed slice (each checks the popover\n// itself, G-400 / G-406)\nconst showing = (o: any) => ({showPopover: on(o.popover, 'showPopover', (el: any) => {\n if (isOpen(el)) return\n // (set while closed: changing it hides an open one)\n o.controlled && el.getAttribute('popover') != 'manual' && el.setAttribute('popover', 'manual')\n el.showPopover()\n o.controlled && layer(el, o)\n})})\n// (off the layer stack at once: its toggle event comes after)\nconst hiding = (o: any) => ({hidePopover: on(o.popover, 'hidePopover', (el: any) => { pull(el); isOpen(el) && el.hidePopover() }, true)})\nconst sync = (s: any, o: any) => (s.open ? showing(o) : hiding(o))\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, open: false},\n // SYG118 (dev): the option each action's trigger is built from (a host intent of that name replaces it)\n triggers: {CLOSE: 'close', TOGGLE: 'trigger'},\n intent: ({DOM, STATE}: any, {popover: p, trigger, close, controlled}: any) => {\n const els = find(DOM, p)\n // round 4: the trigger's clicks (prevented) as TOGGLE to the value away from the one the state\n // had at the press (keyboard clicks: at the click). An auto popover's light dismiss comes at\n // the pointerup, between the press and the click: a plain flip would open it again\n let press: any\n const st = () => (STATE ? STATE.stream : xs.of({}))\n const toggles = trigger ? xs.merge(\n ev(DOM, trigger, 'pointerdown').compose(sampleCombine(st())).map(([e, s]: any) => { press = {t: e.timeStamp, open: !!s?.open} }).filter(() => false),\n ev(DOM, trigger, 'click', {preventDefault: true}).compose(sampleCombine(st())).map(([e, s]: any) => {\n // (a press dragged off the trigger sends no click: its reading goes stale)\n const was = press && e.timeStamp - press.t < 5000 ? press.open : !!s?.open\n press = null\n return !was\n }),\n ) : xs.never()\n // round 3, controlled: its popovertarget buttons and commandfor commands go through the model\n // (prevented: the browser would show / hide it itself), as OPEN / CLOSE / TOGGLE\n const ours = (e: any) => !!tgt(e.ownerTarget)?.matches?.('' + p)\n const cmd = (e: any) => e.target === e.ownerTarget && /^(show|hide|toggle)-popover$/.test(e.command)\n const asks = controlled ? xs.merge(\n ev(DOM, '[popovertarget]', 'click', {preventDefault: ours}).filter(ours).map((e: any) => e.ownerTarget.getAttribute('popovertargetaction') || 'toggle'),\n ev(DOM, p, 'command', {preventDefault: cmd}, false).filter(cmd).map((e: any) => e.command.split('-')[0]),\n ) : xs.never()\n const ask = (a: string) => asks.filter((x: string) => x == a)\n return {\n ...((trigger || controlled) && {TOGGLE: xs.merge(toggles, ask('toggle'))}),\n ...(controlled && {\n OPEN: ask('show'),\n DISMISS: ev(DOM, p, DISMISS, {}, false).filter((e: any) => e.target === e.ownerTarget).map((e: any) => e.detail),\n }),\n ...((close || controlled) && {CLOSE: xs.merge(close ? ev(DOM, close, 'click') : xs.never(), ask('hide'))}),\n // (R2: a toggle the popover has moved on from since is dropped)\n TOGGLED: ev(DOM, p, 'toggle', {}, false).filter((e: any) => !(typeof Element != 'undefined' && e.target instanceof Element) || isOpen(e.target) == (e.newState == 'open')).map((e: any) => e.newState == 'open'),\n ...(STATE && {SYNC: gone(els, STATE), APPLY: watch(els, STATE, isOpen)}),\n }\n },\n // R2: `open` is the source of truth; every entry that can change it sends the commands for the\n // slice it ends with (the host's entries for the same action included)\n model: {\n OPEN: {STATE: (s: any) => (s.open ? ABORT : {...s, open: true}), ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? showing(o) : ABORT)},\n CLOSE: {STATE: (s: any) => (s.open ? {...s, open: false} : ABORT), ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? ABORT : hiding(o))},\n // round 3: a controlled popover's Escape / press outside / focus outside (data: that event);\n // a host entry that keeps `open: true` keeps it shown (it was never hidden)\n DISMISS: {STATE: (s: any) => (s.open ? {...s, open: false} : ABORT), ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? ABORT : hiding(o))},\n // (round 4: data true / false: go to that value, the trigger's)\n TOGGLE: {\n STATE: (s: any, d: any) => (typeof d == 'boolean' ? (d == s.open ? ABORT : {...s, open: d}) : {...s, open: !s.open}),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => sync(s, o),\n },\n // the browser opened or closed it (popovertarget, light dismiss, Escape); a host entry that\n // keeps the other value opens or closes it again (a light dismiss can't be prevented)\n TOGGLED: {\n STATE: (s: any, open: boolean) => (s.open == open ? ABORT : {...s, open}),\n ELEMENT: (s: any, open: boolean, _n: any, _p: any, o: any) => (s.open == open ? ABORT : sync(s, o)),\n },\n SYNC: (s: any) => (s.open ? {...s, open: false} : ABORT),\n APPLY: {ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => sync(s, o)},\n },\n})\n\n/** A popover (Popover API) as a behavior: `uses = { filters: popover({ popover: '.filters' }) }`. */\nexport const popover = (options: any = {}): any => keyed(base({...options, open: !!options.open, controlled: options.open !== undefined}))\n\n/** Round 4: the attributes of a popover with a `trigger`, from its slice: `trigger` and `popover` (Radix's Popover.Trigger / Content). */\nexport const popoverAttrs = (s: any, uid: any): any => {\n const id = idsOf(s, uid, 'popover'), open = !!s?.open, state = open ? 'open' : 'closed'\n return {\n trigger: {type: 'button', 'aria-haspopup': 'dialog', 'aria-expanded': open, 'aria-controls': id('popover'), 'data-state': state},\n popover: {id: id('popover'), 'data-state': state},\n }\n}\n","/*\n * PLAN-5 2-U (S-3, from spike 0-S3): Tooltip, a manual popover placed by CSS anchor positioning,\n * shown on hover / focus after a delay and hidden after a delay (D197 `timers`).\n *\n * Toolbar.uses = { saveTip: tooltip({ trigger: '.save', tip: '.save-tip' }) }\n *\n * The host renders the trigger with aria-describedby (the tip's id) and `anchor-name`, and the\n * tip with role=\"tooltip\", popover=\"manual\", `position-anchor` and `position-area` (styles; see\n * the guide). No JavaScript positioning.\n *\n * Options: `trigger`, `tip` (required), `showDelay` (500 ms), `hideDelay` (100 ms).\n * State: { open, pending: null | 'show' | 'hide', hover, focus }. Actions: ENTER / LEAVE (data\n * 'hover' | 'focus': the pointer on the trigger or the tip (it stays open while hovered, WCAG\n * 1.4.13), or the keyboard focus on the trigger: ui-sweep, a :focus-visible one, not the focus a\n * mouse click gives), SHOW / HIDE (the timers), ESCAPE (hides it at once),\n * TOGGLED. Timers (joined to the host's `timers`): '<key>.show' / '<key>.hide'; one whose state\n * goes away is cancelled, so leaving before the delay never shows the tip. Needs\n * makeTimerDriver() (tests: fake timers).\n * R3 (ui-sweep): a pointerdown on the trigger hides the tip at once (PRESS; `pressed`), and the\n * pointer shows it again only after leaving and coming back, as Radix does: a click on a button\n * doesn't leave its tip up (also WebKit's, under a modal the click opened).\n * G-403: the pointer and the focus are tracked apart (it hides once both have left: a mouse\n * leaving doesn't hide a tip the keyboard focus still shows); touch pointer events are ignored\n * (a tap focuses the trigger instead); the document keydown listener for Escape is there only\n * while the tip is shown or about to be, so a page of tooltips has at most the open one's.\n */\nimport {ABORT, defineBehavior, dropRepeats, xs} from '../index'\nimport {ev, visible} from './shared'\n\nconst mouse = (e: any) => e?.pointerType != 'touch'\nconst which = (k: any) => (k == 'focus' ? 'focus' : 'hover')\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {open: false, pending: null as null | string, hover: false, focus: false, pressed: false},\n // SYG118 (dev): the option each action's trigger is built from (a host intent of that name replaces it)\n triggers: {ENTER: 'trigger', LEAVE: 'trigger', PRESS: 'trigger'},\n timers: (s: any, o: any) => ({\n show: s?.pending == 'show' && {after: o.showDelay ?? 500, action: 'SHOW'},\n hide: s?.pending == 'hide' && {after: o.hideDelay ?? 100, action: 'HIDE'},\n }),\n intent: ({DOM, STATE}: any, {trigger, tip}: any) => ({\n // (R4: ev(): the trigger and the tip may be in a <Portal>)\n ENTER: xs.merge(xs.merge(ev(DOM, trigger, 'pointerenter'), ev(DOM, tip, 'pointerenter')).filter(mouse).mapTo('hover'), ev(DOM, trigger, 'focus').filter(visible).mapTo('focus')),\n LEAVE: xs.merge(xs.merge(ev(DOM, trigger, 'pointerleave'), ev(DOM, tip, 'pointerleave')).filter(mouse).mapTo('hover'), ev(DOM, trigger, 'blur').mapTo('focus')),\n // R3: a press on the trigger hides the tip (Radix)\n PRESS: ev(DOM, trigger, 'pointerdown'),\n ESCAPE: (STATE ? STATE.stream.map((s: any) => !!(s?.open || s?.pending)).compose(dropRepeats()) : xs.of(true))\n .map((on: boolean) => (on ? DOM.keydown('document').key().filter((k: string) => k == 'Escape') : xs.never()))\n .flatten(),\n TOGGLED: ev(DOM, tip, 'toggle', {}, false).map((e: any) => e.newState == 'open'),\n }),\n model: {\n ENTER: (s: any, k: any) => {\n // R3: after a press the pointer shows it again only once it has left and come back\n if (s.pressed && k != 'focus') return s.hover ? ABORT : {...s, hover: true}\n const n = {...s, [which(k)]: true}, pending = s.open ? null : 'show'\n return s[which(k)] && s.pending == pending ? ABORT : {...n, pending}\n },\n PRESS: {\n STATE: (s: any) => (s.pressed && !s.pending ? ABORT : {...s, pending: null, pressed: true}),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? {hidePopover: o.tip} : ABORT),\n },\n LEAVE: (s: any, k: any) => {\n const n = {...s, [which(k)]: false, ...(k != 'focus' && {pressed: false})}\n // still hovered or focused: as it was\n const pending = n.hover || n.focus ? s.pending : s.open ? 'hide' : null\n return !s[which(k)] && s.pending == pending && n.pressed == s.pressed ? ABORT : {...n, pending}\n },\n SHOW: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? ABORT : {showPopover: o.tip}),\n },\n HIDE: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? {hidePopover: o.tip} : ABORT),\n },\n ESCAPE: {\n STATE: (s: any) => (s.open || s.pending ? {...s, pending: null} : ABORT),\n ELEMENT: (s: any, _d: any, _n: any, _p: any, o: any) => (s.open ? {hidePopover: o.tip} : ABORT),\n },\n TOGGLED: (s: any, open: boolean) => (s.open == open ? ABORT : {...s, open}),\n },\n})\n\n/** A tooltip as a behavior: `uses = { tip: tooltip({ trigger: '.save', tip: '.save-tip', showDelay: 500 }) }`. */\nexport const tooltip = (options: any = {}): any => base({...options, open: false, pending: null, hover: false, focus: false, pressed: false})\n","/*\n * PLAN-11 T-1: Tooltips, one behavior for every tooltip of a component (glossary terms in a\n * paragraph, icon buttons in a toolbar): one state slice and two timers however many triggers\n * there are, instead of a tooltip() per trigger.\n *\n * Article.uses = { tips: tooltips({ trigger: '.term', tip: '.term-tip' }) }\n *\n * Each trigger names its tip with aria-describedby (the tip's id); the tips are `role=\"tooltip\"\n * popover=\"manual\"` elements placed by CSS anchor positioning, as for tooltip(). One tip shows at\n * a time. Moving from one trigger to another while a tip is shown switches at once (no second\n * show delay), as tooltip groups do.\n *\n * Options: `trigger`, `tip` (required selectors matching every trigger / every tip),\n * `showDelay` (500 ms), `hideDelay` (100 ms).\n * State: { id (the tip of the trigger or tip last entered), open (the id of the tip shown),\n * pending: null | 'show' | 'hide', hover, focus }. Actions: ENTER / LEAVE ({ via: 'hover' |\n * 'focus', id }), SHOW / HIDE (the timers), ESCAPE, TOGGLED ({ id, open }). Timers\n * '<key>.show' / '<key>.hide' as tooltip()'s. Needs makeTimerDriver() (tests: fake timers).\n * Same rules as tooltip(): pointer and focus tracked apart (keyboard focus only), touch ignored, hovering the tip keeps\n * it open (WCAG 1.4.13), Escape listened for only while a tip is shown or about to be; R3: a press\n * on a trigger hides its tip until the pointer leaves and comes back.\n */\nimport {ABORT, defineBehavior, dropRepeats, xs} from '../index'\nimport {ev, visible} from './shared'\n\nconst mouse = (e: any) => e?.pointerType != 'touch'\nconst el = (e: any) => e?.ownerTarget || e?.currentTarget || e?.target\n// the trigger's tip id (its aria-describedby: the first id when it lists several), or the tip's own\nconst tipOf = (e: any) => String(el(e)?.getAttribute?.('aria-describedby') || '').trim().split(/\\s+/)[0] || null\nconst idOf = (e: any) => el(e)?.id || null\nconst at = (id: string) => `[id=\"${id.replace(/[\"\\\\]/g, '\\\\$&')}\"]`\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, open: null as null | string, pending: null as null | string, hover: false, focus: false, pressed: false},\n // SYG118 (dev): the option each action's trigger is built from (a host intent of that name replaces it)\n triggers: {ENTER: 'trigger', LEAVE: 'trigger', PRESS: 'trigger'},\n timers: (s: any, o: any) => ({\n show: s?.pending == 'show' && {after: o.showDelay ?? 500, action: 'SHOW'},\n hide: s?.pending == 'hide' && {after: o.hideDelay ?? 100, action: 'HIDE'},\n }),\n intent: ({DOM, STATE}: any, {trigger, tip}: any) => ({\n ENTER: xs.merge(\n ev(DOM, trigger, 'pointerenter').filter(mouse).map((e: any) => ({via: 'hover', id: tipOf(e)})),\n ev(DOM, tip, 'pointerenter').filter(mouse).map((e: any) => ({via: 'hover', id: idOf(e)})),\n ev(DOM, trigger, 'focus').filter(visible).map((e: any) => ({via: 'focus', id: tipOf(e)})),\n ).filter((x: any) => !!x.id),\n LEAVE: xs.merge(\n ev(DOM, trigger, 'pointerleave').filter(mouse).map((e: any) => ({via: 'hover', id: tipOf(e)})),\n ev(DOM, tip, 'pointerleave').filter(mouse).map((e: any) => ({via: 'hover', id: idOf(e)})),\n ev(DOM, trigger, 'blur').map((e: any) => ({via: 'focus', id: tipOf(e)})),\n ).filter((x: any) => !!x.id),\n // R3: a press on a trigger hides the tip (Radix)\n PRESS: ev(DOM, trigger, 'pointerdown').map((e: any) => ({id: tipOf(e)})),\n ESCAPE: (STATE ? STATE.stream.map((s: any) => !!(s?.open || s?.pending)).compose(dropRepeats()) : xs.of(true))\n .map((on: boolean) => (on ? DOM.keydown('document').key().filter((k: string) => k == 'Escape') : xs.never()))\n .flatten(),\n TOGGLED: ev(DOM, tip, 'toggle', {}, false).map((e: any) => ({id: idOf(e), open: e.newState == 'open'})).filter((x: any) => !!x.id),\n }),\n model: {\n ENTER: {\n STATE: (s: any, {via, id}: any) => {\n const k = via == 'focus' ? 'focus' : 'hover'\n // another trigger: it takes over (a tip already shown switches at once, in ELEMENT)\n if (id != s.id) return {...s, id, hover: k == 'hover', focus: k == 'focus', pressed: false, pending: s.open ? null : 'show'}\n // R3: after a press the pointer shows it again only once it has left and come back\n if (s.pressed && k == 'hover') return s.hover ? ABORT : {...s, hover: true}\n const pending = s.open == id ? null : 'show'\n return s[k] && s.pending == pending ? ABORT : {...s, [k]: true, pending}\n },\n // 7.0: outputs get the updated slice; \"another trigger than before\" reads the previous one\n ELEMENT: (s: any, {id}: any, _n: any, p: any, _o: any, k: string) => {\n const w = p?.previousState ? p.previousState[k] : s\n return id != w.id && w.open && w.open != id ? [{hidePopover: at(w.open)}, {showPopover: at(id)}] : ABORT\n },\n },\n PRESS: {\n STATE: (s: any, {id}: any) => (s.pressed && s.id == id && !s.pending ? ABORT : {...s, id, pending: null, pressed: true}),\n ELEMENT: (s: any) => (s.open ? {hidePopover: at(s.open)} : ABORT),\n },\n LEAVE: (s: any, {via, id}: any) => {\n if (id != s.id) return ABORT\n const k = via == 'focus' ? 'focus' : 'hover'\n const n = {...s, [k]: false, ...(k == 'hover' && {pressed: false})}\n const pending = n.hover || n.focus ? s.pending : s.open ? 'hide' : null\n return !s[k] && s.pending == pending && n.pressed == s.pressed ? ABORT : {...n, pending}\n },\n SHOW: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any) => (!s.id || s.open == s.id ? ABORT : s.open ? [{hidePopover: at(s.open)}, {showPopover: at(s.id)}] : {showPopover: at(s.id)}),\n },\n HIDE: {\n STATE: (s: any) => ({...s, pending: null}),\n ELEMENT: (s: any) => (s.open ? {hidePopover: at(s.open)} : ABORT),\n },\n ESCAPE: {\n STATE: (s: any) => (s.open || s.pending ? {...s, pending: null} : ABORT),\n ELEMENT: (s: any) => (s.open ? {hidePopover: at(s.open)} : ABORT),\n },\n TOGGLED: (s: any, {id, open}: any) => (open ? (s.open == id ? ABORT : {...s, open: id}) : s.open == id ? {...s, open: null} : ABORT),\n },\n})\n\n/** Every tooltip of a component as one behavior: `uses = { tips: tooltips({ trigger: '.term', tip: '.term-tip' }) }`. */\nexport const tooltips = (options: any = {}): any => base({...options, id: null, open: null, pending: null, hover: false, focus: false, pressed: false})\n","/*\n * PLAN-5 2-U (S-4): Tabs, a behavior that wires the host's own markup (WAI-ARIA APG tabs).\n *\n * Settings.uses = { tabs: tabs({ tab: '.tab', selected: 'general' }) }\n * const a = tabsAttrs(state.tabs, uid)\n * <div {...a.list} aria-label=\"Settings\">\n * <button className=\"tab\" {...a.tab('general')}>General</button> …\n * </div>\n * <section {...a.panel('general')}>…</section> …\n *\n * The host renders the tabs and panels; `tabsAttrs` gives each its attributes from the slice:\n * roles, ids (from `uid`, so every instance has its own), aria-selected / aria-controls /\n * aria-labelledby, the roving tabindex, `hidden` on the other panels, and the hooks\n * `data-value` / `data-state` ('active' | 'inactive'). A click on a tab selects it; the arrow\n * keys move the focus between the tabs (and select, unless `activation: 'manual'`), Home / End\n * go to the first / last; disabled tabs are skipped.\n *\n * Options: `tab` (required: the tabs' selector), `selected` (the start; none: the first tab\n * rendered), `orientation` ('horizontal' | 'vertical': which arrow keys), `activation`\n * ('automatic' | 'manual'), `loop` (true), `id` (the ids' prefix; default: the key in `uses`).\n * State: { id, selected, orientation }. Actions: SELECT (a value, or a click), MOVE (a value:\n * focus it, and select it unless manual).\n * G-397: `tabsAttrs(slice, uid, values)` with the tabs' values shows the first one selected when\n * `selected` isn't among them (a removed tab); a host that removes tabs re-selects a neighbour\n * and moves the focus to it in its own reducer (the guide's closable tabs).\n */\nimport {ABORT, defineBehavior} from '../index'\nimport {idsOf, keyNav, keyed, lit} from './shared'\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, selected: null as null | string, orientation: 'horizontal'},\n // SYG118 (dev): the option each action's trigger is built from (a host intent of that name replaces it)\n triggers: {SELECT: 'tab', MOVE: 'tab'},\n intent: ({DOM}: any, {tab, orientation, loop}: any) => {\n const v = orientation == 'vertical'\n return {\n SELECT: DOM.click(tab).data('value'),\n MOVE: keyNav(DOM, tab, [v ? 'ArrowDown' : 'ArrowRight'], [v ? 'ArrowUp' : 'ArrowLeft'], loop),\n }\n },\n model: {\n SELECT: (s: any, v: any) => (v == null || String(v) === s.selected ? ABORT : {...s, selected: String(v)}),\n MOVE: {\n STATE: (s: any, v: string, _n: any, _p: any, o: any) => (o.activation == 'manual' || v === s.selected ? ABORT : {...s, selected: v}),\n ELEMENT: (_s: any, v: string, _n: any, _p: any, o: any) => ({focus: o.tab + '[data-value=' + lit(v) + ']'}),\n },\n },\n})\n\n/** Tabs as a behavior over the host's markup: `uses = { tabs: tabs({ tab: '.tab', selected: 'general' }) }`; render with `tabsAttrs`. */\nexport const tabs = (options: any = {}): any =>\n keyed(base({...options, ...(options.selected != null && {selected: String(options.selected)})}))\n\n/**\n * The attributes of a tab set, from its slice: `list` (the tablist), `tab(value)` and\n * `panel(value)`. Spread them on the host's elements: `<button className=\"tab\" {...a.tab('general')}>`.\n * `values` (optional): the tabs' values in order (leave disabled ones out). With it, a `selected`\n * that isn't one of them (its tab was removed) shows the first one selected (G-397); without it,\n * the first tab rendered is selected only while nothing is.\n */\nexport const tabsAttrs = (s: any, uid: any, values?: any[]): any => {\n const id = idsOf(s, uid, 'tabs'), state = (b: boolean) => (b ? 'active' : 'inactive')\n const vs = values && values.map(String)\n let first: any = vs?.[0], sel = s?.selected == null ? null : String(s.selected)\n if (vs && sel != null && !vs.includes(sel)) sel = null\n // no selection (or a removed one): the first value, or the first tab (or panel) rendered\n const on = (v: any) => {\n v = String(v)\n if (sel != null) return v === sel\n first ??= v\n return v === first\n }\n return {\n list: {role: 'tablist', 'aria-orientation': s?.orientation || 'horizontal'},\n tab: (v: any) => {\n const b = on(v)\n return {type: 'button', id: id('tab', v), role: 'tab', 'aria-selected': b, 'aria-controls': id('panel', v), tabindex: b ? '0' : '-1', 'data-value': String(v), 'data-state': state(b)}\n },\n panel: (v: any) => {\n const b = on(v)\n return {id: id('panel', v), role: 'tabpanel', 'aria-labelledby': id('tab', v), tabindex: '0', hidden: !b, 'data-state': state(b)}\n },\n }\n}\n","/*\n * PLAN-5 2-U (S-4): Accordion, a behavior that wires the host's own markup (WAI-ARIA APG\n * accordion).\n *\n * Faq.uses = { faq: accordion({ trigger: '.faq-trigger' }) }\n * const a = accordionAttrs(state.faq, uid)\n * <h3><button className=\"faq-trigger\" {...a.trigger('ship')}>Shipping</button></h3>\n * <div {...a.panel('ship')}>…</div>\n *\n * `accordionAttrs` gives the triggers aria-expanded / aria-controls (and aria-disabled on the one\n * open panel when it can't be collapsed), the panels role=\"region\" / aria-labelledby / hidden,\n * ids from `uid`, and the hooks `data-value` / `data-state` ('open' | 'closed'). A click on a\n * trigger toggles its panel; Up / Down / Home / End move the focus between the triggers.\n *\n * Options: `trigger` (required), `multiple` (false: opening one closes the others),\n * `collapsible` (true; false: the last open panel stays open), `expanded` (the start: a value or\n * an array), `loop` (true), `id` (the ids' prefix; default: the key in `uses`).\n * State: { id, expanded: string[], collapsible }. Actions: TOGGLE, EXPAND, COLLAPSE (a value, or\n * a click), MOVE (a value: focus that trigger).\n * ui-sweep: values compare as strings, also in an `expanded` a host reducer wrote (numbers, or one\n * value instead of an array); `collapsible` is a calculated field like `id`, so a host reducer\n * that replaces the slice without it keeps the option's value.\n */\nimport {ABORT, defineBehavior} from '../index'\nimport {idsOf, keyNav, keyed, lit} from './shared'\n\n// ui-sweep: the open values as strings, however a host reducer wrote them (numbers, one value)\nconst open = (s: any): string[] => (s?.expanded == null ? [] : [].concat(s.expanded).map(String))\nconst expand = (s: any, v: any, o: any) => {\n const ex = open(s)\n v = String(v)\n return ex.includes(v) ? ABORT : {...s, expanded: o.multiple ? [...ex, v] : [v]}\n}\nconst collapse = (s: any, v: any) => {\n const ex = open(s)\n v = String(v)\n return !ex.includes(v) || (s.collapsible === false && ex.length == 1) ? ABORT\n : {...s, expanded: ex.filter((x: string) => x !== v)}\n}\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, expanded: [] as string[], collapsible: true},\n // SYG118 (dev): the option each action's trigger is built from (a host intent of that name replaces it)\n triggers: {TOGGLE: 'trigger', MOVE: 'trigger'},\n intent: ({DOM}: any, {trigger, loop}: any) => ({\n TOGGLE: DOM.click(trigger).data('value'),\n MOVE: keyNav(DOM, trigger, ['ArrowDown'], ['ArrowUp'], loop),\n }),\n model: {\n TOGGLE: (s: any, v: any, _n: any, _p: any, o: any) => (v == null ? ABORT : open(s).includes(String(v)) ? collapse(s, v) : expand(s, v, o)),\n EXPAND: (s: any, v: any, _n: any, _p: any, o: any) => (v == null ? ABORT : expand(s, v, o)),\n COLLAPSE: (s: any, v: any) => (v == null ? ABORT : collapse(s, v)),\n MOVE: {ELEMENT: (_s: any, v: string, _n: any, _p: any, o: any) => ({focus: o.trigger + '[data-value=' + lit(v) + ']'})},\n },\n})\n\n/** An accordion as a behavior over the host's markup: `uses = { faq: accordion({ trigger: '.faq-trigger' }) }`; render with `accordionAttrs`. */\nexport const accordion = (options: any = {}): any => {\n const b = keyed(base({...options, ...(options.expanded != null && {expanded: ([] as any[]).concat(options.expanded).map(String)})}))\n // ui-sweep: like `id`, `collapsible` comes back when a host reducer replaces the slice without it\n const c = options.collapsible !== false\n b.calculated = {...b.calculated, collapsible: (s: any) => s.collapsible ?? c}\n return b\n}\n\n/** The attributes of an accordion, from its slice: `trigger(value)` and `panel(value)`. */\nexport const accordionAttrs = (s: any, uid: any): any => {\n const id = idsOf(s, uid, 'accordion'), ex = open(s)\n const on = (v: any) => ex.includes(String(v)), state = (v: any) => (on(v) ? 'open' : 'closed')\n const only = s?.collapsible === false && ex.length == 1\n return {\n trigger: (v: any) => ({\n type: 'button', id: id('trigger', v), 'aria-expanded': on(v), 'aria-controls': id('panel', v),\n 'aria-disabled': only && on(v) ? true : undefined, 'data-value': String(v), 'data-state': state(v),\n }),\n panel: (v: any) => ({id: id('panel', v), role: 'region', 'aria-labelledby': id('trigger', v), hidden: !on(v), 'data-state': state(v)}),\n }\n}\n","/*\n * PLAN-5 2-U (S-4): Disclosure, a button that shows and hides a panel (WAI-ARIA APG disclosure).\n *\n * Card.uses = { more: disclosure({ trigger: '.more-toggle' }) }\n * const a = disclosureAttrs(state.more, uid)\n * <button className=\"more-toggle\" {...a.trigger}>Details</button>\n * <div {...a.panel}>…</div>\n *\n * Options: `trigger` (required), `open` (the start, false), `id` (the ids' prefix; default: the\n * key in `uses`). State: { id, open }. Actions: TOGGLE (a click), OPEN, CLOSE.\n */\nimport {ABORT, defineBehavior} from '../index'\nimport {idsOf, keyed} from './shared'\n\nconst base = /*#__PURE__*/ defineBehavior({\n initialState: {id: null as null | string, open: false},\n // SYG118 (dev): the option each action's trigger is built from (a host intent of that name replaces it)\n triggers: {TOGGLE: 'trigger'},\n intent: ({DOM}: any, {trigger}: any) => ({TOGGLE: DOM.click(trigger)}),\n model: {\n TOGGLE: (s: any) => ({...s, open: !s.open}),\n OPEN: (s: any) => (s.open ? ABORT : {...s, open: true}),\n CLOSE: (s: any) => (s.open ? {...s, open: false} : ABORT),\n },\n})\n\n/** A disclosure as a behavior over the host's markup: `uses = { more: disclosure({ trigger: '.more-toggle' }) }`; render with `disclosureAttrs`. */\nexport const disclosure = (options: any = {}): any => keyed(base(options))\n\n/** The attributes of a disclosure, from its slice: `trigger` and `panel`. */\nexport const disclosureAttrs = (s: any, uid: any): any => {\n const id = idsOf(s, uid, 'disclosure'), open = !!s?.open, state = open ? 'open' : 'closed'\n return {\n trigger: {type: 'button', 'aria-expanded': open, 'aria-controls': id('panel'), 'data-state': state},\n panel: {id: id('panel'), hidden: !open, 'data-state': state},\n }\n}\n","/*\n * PLAN-5 2-U (T-1, D198, from spike 0-S4): the Toaster component.\n *\n * anywhere: SAVE: { EVENTS: event('TOAST', { text: 'Saved', kind: 'success' }) }\n * once: <Toaster /> (main.js: run(App, { TIMER: makeTimerDriver() }))\n *\n * - TOAST adds { id, text, kind ('info' | 'success' | 'warning' | 'error'; default 'info'),\n * timeoutMs (default 5000; 0 = until dismissed) }. A string is the text. A TOAST with the `id`\n * of a shown toast replaces it in place and restarts its timer ('Saving…' → 'Saved').\n * TOAST_DISMISS removes the toast with that id (no id: all of them). G-398: ids compare as\n * strings (the Collection's keys); an automatic id is 't<n>', never one a shown toast has.\n * - Each toast is a Collection item: its `timers` static auto-dismisses it (GS-7; fake-timer\n * testable), its Dismiss button removes it, Transition animates it (`transition` names the\n * classes, `duration` is how long a leaving toast stays: the leave animation's length).\n * - Two persistent live regions: role=\"status\" (polite) for every kind but errors, role=\"alert\"\n * for errors. They are rendered while empty, so a toast added later is announced.\n * - While the pointer or the focus is in the region, the timers stop (and start over when both\n * have left; G-399: `hover` and `focus` are tracked apart): `pauseOnHover={false}` turns this\n * off. A focused Dismiss button moves the focus to the next toast's (else the previous one's,\n * else where the focus came from) before its toast goes; a focused element removed any other\n * way gets a focusout sent (Chromium sends none), so the region never stays paused.\n * - The region is a `popover=\"manual\"` element (top layer, above the page), re-parented into the\n * topmost open modal <dialog> while one is open and back when it closes or is removed (a\n * MutationObserver in the region's hooks, D198): outside the modal it would be drawn but inert\n * (spike 0-S4). `__sygnalHome` keeps its events in this component (G-356). The region is the\n * only child of a wrapper (`.toaster-home`), so the moved element has no siblings to patch.\n * G-404: the dialogs of the region's own root (a shadow root) are looked at and observed too.\n * G-426: the focus is that root's activeElement (in a shadow root the document's is the host).\n *\n * Class hooks: .toaster-home, .toaster (+ `className`), .toaster-status, .toaster-alert,\n * .toaster-list, .toast, .toast-text, .toast-dismiss. Data attributes: data-kind on .toast,\n * data-paused on .toaster.\n */\nimport {ABORT, Collection, Transition, createElement as h, xs} from '../index'\nimport {all, docOf, evt, focused, observer} from './dom'\n\n// ── the region's placement (D198) ────────────────────────────────────\n// the open modal dialogs, in the order they became modal (the last one is on top)\nconst order: any[] = []\nconst modal = (d: any) => { try { return d.matches(':modal') } catch (_) { return false } }\n// G-404: the dialogs of the region's document and of its own root (a shadow root: sygnal/element)\nconst topModal = (el: any) => {\n const open = all(el, 'dialog').filter(modal)\n for (let i = order.length; i--;) if (!open.includes(order[i])) order.splice(i, 1)\n for (const d of open) if (!order.includes(d)) order.push(d)\n return order[order.length - 1]\n}\nconst show = (el: any) => { try { el.matches(':popover-open') || el.showPopover() } catch (_) {} }\n// the element with the focus in `el`'s root (G-426; round 6: else its document's)\nconst act = focused\n// G-428: a focusout that leaves `t`: not to an element inside it, and with no relatedTarget not\n// while the focus is still inside (the window lost the focus: it comes back to the same element)\nconst left = (t: any, e: any) => !(t && t.contains?.(e.relatedTarget || act(t)))\n// a toast on its way out (its Transition's leave classes)\nconst leaving = (b: any) => /-leave-/.test(b.closest?.('.toast')?.className || '')\n\nconst placement = {\n insert: (v: any) => {\n const el = v.elm, home = el.parentNode, doc = docOf(el), root = el.getRootNode?.() || doc\n el.__sygnalHome = home\n show(el)\n // G-399: the focus in the region, and where it came from (where it goes back to). G-432: a\n // focus from nowhere (the region's own refocus after a move, the browser's after a modal\n // closed, the window focused again) keeps the last element it came from. G-458: but not one\n // a press in the region gave: the user comes back from nowhere after a click on the page took\n // the focus, and a mouse Dismiss would focus (and scroll to) an element left long ago. (A focus\n // that comes back from another element names that one; a focus that left to a modal comes\n // back from nowhere when it closes and keeps it: G-432)\n // G-499: the press is its time, and counts for a focus within a second (a press released\n // outside, a right-click or a touch scroll gets no focusin or click to clear it); a cancelled\n // one (the browser took it for a scroll) at once\n el.addEventListener('pointerdown', (e: any) => { el._p = e.timeStamp })\n el.addEventListener('pointercancel', () => { el._p = 0 })\n el.addEventListener('focusin', (e: any) => {\n if (!el.contains(e.relatedTarget)) { el._f = 1; el._from = e.relatedTarget || (el._p && e.timeStamp - el._p < 1e3 ? null : el._from) }\n el._p = 0\n })\n el.addEventListener('focusout', (e: any) => { if (left(el, e)) el._f = 0 })\n // a Dismiss button with the focus (keyboard; a click that focused it): the focus moves to the\n // next toast's Dismiss button, else the previous one's, else back where it came from, before\n // the button goes (a removed focused element gets no focusout in Chromium)\n el.addEventListener('click', (e: any) => {\n el._p = 0\n const b = e.target?.closest?.('.toast-dismiss')\n // G-426: the root's activeElement (in a shadow root, the document's is the host)\n if (!b || !b.contains(act(el))) return\n const bs = [...el.querySelectorAll('.toast-dismiss')].filter((x: any) => x === b || !leaving(x)), i = bs.indexOf(b)\n const to: any = bs[i + 1] || bs[i - 1] || (el._from?.isConnected && !el.contains(el._from) && el._from)\n to ? to.focus() : b.blur()\n })\n // (round 6: the region's window's MutationObserver: a host tree has none, and stays put)\n const MO = observer(el)\n if (!MO) return\n const place = () => {\n const to = topModal(el.isConnected ? el : home) || home\n if (el.parentNode !== to) {\n // a move blurs a focused Dismiss button: give the focus back\n const a = act(el), f: any = el.contains(a) && a\n to.appendChild(el)\n f && f.focus()\n }\n // a moved popover is closed: show it again (on top of the dialog it is in)\n show(el)\n }\n // `open` flips on showModal / close; a dialog removed while open takes the region with it\n const mo = el._mo = new MO((rs: any) => {\n // G-399: the focused element was removed (a toast dismissed some other way): no focusout\n // in Chromium, so the region would stay paused; send one\n if (el._f && !el.contains(act(el))) { el._f = 0; el.dispatchEvent(evt(el, 'focusout', {bubbles: true}, 'FocusEvent')) }\n if (home.isConnected && (!el.isConnected || (el.parentNode !== home && !modal(el.parentNode)) || rs.some((r: any) => r.type == 'attributes'))) place()\n })\n const opts = {subtree: true, childList: true, attributes: true, attributeFilter: ['open']}\n mo.observe(doc.body, opts)\n // G-404: a region in a shadow root sees that root's dialogs open and close too\n if (root !== doc && root.nodeType == 11) mo.observe(root, opts)\n place()\n },\n // removed with its wrapper while in a dialog: take it out of the dialog too\n destroy: (v: any) => {\n const el = v.elm\n el._mo?.disconnect()\n el.parentNode !== el.__sygnalHome && el.remove()\n },\n}\n\n// ── one toast ──────────────────────────────────────────────────────\n// (statics through a /*#__PURE__*/ Object.assign, so every bundler drops an unused Toaster; a\n// componentName, so diagnostics and DevTools name them in minified builds too)\nconst ToastItem = /*#__PURE__*/ Object.assign(function ToastItem({state, dismissLabel, transition, duration}: any) {\n return h(Transition, {name: transition, duration},\n h('div', {className: 'toast', 'data-kind': state.kind},\n h('span', {className: 'toast-text'}, state.text),\n h('button', {type: 'button', className: 'toast-dismiss', 'aria-label': dismissLabel + ': ' + state.text}, dismissLabel)))\n}, {\n componentName: 'ToastItem',\n intent: ({DOM}: any) => ({DISMISS: DOM.click('.toast-dismiss')}),\n // a replaced toast (rev) gets a new timer name, so its timer starts over\n timers: (s: any) => ({['expire' + (s?.rev || '')]: s?.timeoutMs > 0 && !s.paused && {after: s.timeoutMs, action: 'EXPIRE'}}),\n model: {DISMISS: () => undefined, EXPIRE: () => undefined},\n})\n\n// ── the toaster ──────────────────────────────────────────────────────\nconst polite = (t: any) => t.kind != 'error'\nconst urgent = (t: any) => t.kind == 'error'\n// entering or leaving the region (not moving between its children)\nconst crossing = (e: any) => !e.ownerTarget?.contains?.(e.relatedTarget)\nconst paused = (s: any, p: boolean) => ({...s, paused: p, toasts: s.toasts.map((t: any) => ({...t, paused: p}))})\n// the pointer or the focus came in or left: paused while either is in (unless pauseOnHover={false})\nconst pause = (s: any, k: string, on: boolean, p: any) => {\n if (s[k] === on) return ABORT\n const n = {...s, [k]: on}, z = p.pauseOnHover !== false && !!(n.hover || n.focus)\n return z === s.paused ? n : paused(n, z)\n}\n// ids compare as strings (the Collection's keys do: 7 and '7' are one toast)\nconst same = (a: any, b: any) => '' + a === '' + b\n\n/** Renders the toasts that `event('TOAST', { text, kind, timeoutMs })` sends from anywhere. Render it once: `<Toaster />`. */\nexport const Toaster = /*#__PURE__*/ Object.assign(function Toaster({state, label = 'Notifications', dismissLabel = 'Dismiss', transition = 'toast', duration = 200, className}: any) {\n const list = (filter: any) => h('div', {className: 'toaster-list'}, h(Collection, {of: ToastItem, from: 'toasts', filter, dismissLabel, transition, duration}))\n return h('div', {className: 'toaster-home'},\n h('section', {\n className: className ? 'toaster ' + className : 'toaster', 'aria-label': label, attrs: {popover: 'manual'},\n 'data-paused': state.paused ? '' : undefined, hook: placement,\n },\n h('div', {className: 'toaster-status', role: 'status', 'aria-live': 'polite'}, list(polite)),\n h('div', {className: 'toaster-alert', role: 'alert'}, list(urgent))))\n}, {\n componentName: 'Toaster',\n isolatedState: true,\n initialState: {toasts: [] as any[], next: 1, paused: false, hover: false, focus: false},\n intent: ({EVENTS, DOM}: any) => ({\n TOAST: EVENTS.select('TOAST'),\n DISMISS: EVENTS.select('TOAST_DISMISS'),\n // G-399: the pointer and the focus apart (the timers stop while either is in the region)\n HOVER: xs.merge(DOM.pointerover('.toaster').filter(crossing).mapTo(true), DOM.pointerout('.toaster').filter(crossing).mapTo(false)),\n FOCUS: xs.merge(DOM.focusin('.toaster').filter(crossing).mapTo(true), DOM.focusout('.toaster').filter((e: any) => left(e.ownerTarget, e)).mapTo(false)),\n }),\n model: {\n TOAST: (s: any, d: any) => {\n const t = typeof d == 'string' ? {text: d} : d || {}\n // G-398: an automatic id is 't<n>', one no shown toast has (a user's 2 or '2' never meets it)\n const i = t.id == null ? -1 : s.toasts.findIndex((x: any) => same(x.id, t.id))\n let n = s.next, id = t.id\n if (id == null) { while (s.toasts.some((x: any) => same(x.id, 't' + n))) n++; id = 't' + n++ }\n const toast = {...t, id, kind: t.kind || 'info', timeoutMs: t.timeoutMs ?? 5000, paused: s.paused, rev: i < 0 ? 0 : s.toasts[i].rev + 1}\n return {\n ...s,\n next: n,\n toasts: i < 0 ? [...s.toasts, toast] : s.toasts.map((x: any, j: number) => (j == i ? toast : x)),\n }\n },\n DISMISS: (s: any, id: any) => {\n const toasts = id == null ? [] : s.toasts.filter((x: any) => !same(x.id, id))\n return toasts.length == s.toasts.length ? ABORT : {...s, toasts}\n },\n HOVER: (s: any, on: boolean, _n: any, p: any) => pause(s, 'hover', on, p),\n FOCUS: (s: any, on: boolean, _n: any, p: any) => pause(s, 'focus', on, p),\n },\n})\n"],"names":["G","show","base","mouse","h"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sygnal",
3
- "version": "7.0.0",
3
+ "version": "7.2.0-preview.0",
4
4
  "private": true,
5
5
  "type": "module"
6
6
  }