sygnal 5.3.7 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +646 -0
- package/README.md +77 -47
- package/dist/astro/client.cjs.js +33 -8114
- package/dist/astro/client.cjs.js.map +1 -0
- package/dist/astro/client.mjs +33 -8114
- package/dist/astro/client.mjs.map +1 -0
- package/dist/astro/index.cjs.js +1039 -9
- package/dist/astro/index.cjs.js.map +1 -0
- package/dist/astro/index.mjs +1038 -9
- package/dist/astro/index.mjs.map +1 -0
- package/dist/astro/server.cjs.js +3400 -166
- package/dist/astro/server.cjs.js.map +1 -0
- package/dist/astro/server.mjs +3400 -166
- package/dist/astro/server.mjs.map +1 -0
- package/dist/devtools.cjs.js +1431 -0
- package/dist/devtools.cjs.js.map +1 -0
- package/dist/devtools.esm.js +1419 -0
- package/dist/devtools.esm.js.map +1 -0
- package/dist/diagnostics.cjs.js +4033 -0
- package/dist/diagnostics.cjs.js.map +1 -0
- package/dist/diagnostics.esm.js +4003 -0
- package/dist/diagnostics.esm.js.map +1 -0
- package/dist/element.cjs.js +230 -0
- package/dist/element.cjs.js.map +1 -0
- package/dist/element.esm.js +228 -0
- package/dist/element.esm.js.map +1 -0
- package/dist/guide/accessibility.md +257 -0
- package/dist/guide/adapters.md +221 -0
- package/dist/guide/behaviors.md +312 -0
- package/dist/guide/browser-sources.md +203 -0
- package/dist/guide/drag-and-drop.md +342 -0
- package/dist/guide/element-commands.md +306 -0
- package/dist/guide/error-boundaries.md +169 -0
- package/dist/guide/forms-reference.md +381 -0
- package/dist/guide/forms.md +250 -0
- package/dist/guide/http.md +299 -0
- package/dist/guide/inputs.md +173 -0
- package/dist/guide/persistence.md +245 -0
- package/dist/guide/recipes/carousel.md +155 -0
- package/dist/guide/recipes/charts.md +177 -0
- package/dist/guide/recipes/code-editor.md +135 -0
- package/dist/guide/recipes/data-grid.md +155 -0
- package/dist/guide/recipes/data-table.md +196 -0
- package/dist/guide/recipes/i18n.md +222 -0
- package/dist/guide/recipes/icons.md +115 -0
- package/dist/guide/recipes/overview.md +33 -0
- package/dist/guide/recipes/rich-text.md +154 -0
- package/dist/guide/resources.md +471 -0
- package/dist/guide/ssr.md +255 -0
- package/dist/guide/timers.md +178 -0
- package/dist/guide/ui/accordion.md +93 -0
- package/dist/guide/ui/combobox.md +144 -0
- package/dist/guide/ui/dialog.md +124 -0
- package/dist/guide/ui/disclosure.md +60 -0
- package/dist/guide/ui/menu.md +125 -0
- package/dist/guide/ui/overview.md +166 -0
- package/dist/guide/ui/popover.md +101 -0
- package/dist/guide/ui/select.md +114 -0
- package/dist/guide/ui/tabs.md +161 -0
- package/dist/guide/ui/toaster.md +152 -0
- package/dist/guide/ui/tooltip.md +103 -0
- package/dist/guide/undo.md +178 -0
- package/dist/guide/virtual-collections.md +183 -0
- package/dist/guide/web-components.md +179 -0
- package/dist/guide/widgets.md +217 -0
- package/dist/index.cjs.js +15283 -6279
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +3739 -370
- package/dist/index.esm.js +15230 -6274
- package/dist/index.esm.js.map +1 -0
- package/dist/jsx-dev-runtime.cjs.js +27 -329
- package/dist/jsx-dev-runtime.cjs.js.map +1 -0
- package/dist/jsx-dev-runtime.esm.js +20 -322
- package/dist/jsx-dev-runtime.esm.js.map +1 -0
- package/dist/jsx-runtime.cjs.js +27 -329
- package/dist/jsx-runtime.cjs.js.map +1 -0
- package/dist/jsx-runtime.esm.js +20 -322
- package/dist/jsx-runtime.esm.js.map +1 -0
- package/dist/jsx.cjs.js +11 -309
- package/dist/jsx.cjs.js.map +1 -0
- package/dist/jsx.esm.js +9 -310
- package/dist/jsx.esm.js.map +1 -0
- package/dist/react.cjs.js +117 -0
- package/dist/react.cjs.js.map +1 -0
- package/dist/react.esm.js +115 -0
- package/dist/react.esm.js.map +1 -0
- package/dist/shims/globalthis.cjs +20 -0
- package/dist/sygnal.min.js +2 -1
- package/dist/sygnal.min.js.map +1 -0
- package/dist/ui-combobox.cjs.js +169 -0
- package/dist/ui-combobox.cjs.js.map +1 -0
- package/dist/ui-combobox.esm.js +148 -0
- package/dist/ui-combobox.esm.js.map +1 -0
- package/dist/ui-menu.cjs.js +87 -0
- package/dist/ui-menu.cjs.js.map +1 -0
- package/dist/ui-menu.esm.js +66 -0
- package/dist/ui-menu.esm.js.map +1 -0
- package/dist/ui-select.cjs.js +104 -0
- package/dist/ui-select.cjs.js.map +1 -0
- package/dist/ui-select.esm.js +83 -0
- package/dist/ui-select.esm.js.map +1 -0
- package/dist/ui.cjs.js +738 -0
- package/dist/ui.cjs.js.map +1 -0
- package/dist/ui.esm.js +727 -0
- package/dist/ui.esm.js.map +1 -0
- package/dist/vike/ClientOnly.cjs.js +5 -14
- package/dist/vike/ClientOnly.cjs.js.map +1 -0
- package/dist/vike/ClientOnly.mjs +5 -14
- package/dist/vike/ClientOnly.mjs.map +1 -0
- package/dist/vike/{+config.js → config/+config.js} +10 -1
- package/dist/vike/config/+config.js.map +1 -0
- package/dist/vike/config/package.json +6 -0
- package/dist/vike/onRenderClient.cjs.js +166 -95
- package/dist/vike/onRenderClient.cjs.js.map +1 -0
- package/dist/vike/onRenderClient.mjs +166 -95
- package/dist/vike/onRenderClient.mjs.map +1 -0
- package/dist/vike/onRenderHtml.cjs.js +60 -24
- package/dist/vike/onRenderHtml.cjs.js.map +1 -0
- package/dist/vike/onRenderHtml.mjs +61 -25
- package/dist/vike/onRenderHtml.mjs.map +1 -0
- package/dist/vite/plugin.cjs.js +926 -65
- package/dist/vite/plugin.cjs.js.map +1 -0
- package/dist/vite/plugin.mjs +925 -65
- package/dist/vite/plugin.mjs.map +1 -0
- package/dist/zag.cjs.js +408 -0
- package/dist/zag.cjs.js.map +1 -0
- package/dist/zag.esm.js +405 -0
- package/dist/zag.esm.js.map +1 -0
- package/llms.txt +313 -0
- package/package.json +109 -16
- package/src/astro/client.ts +40 -18
- package/src/astro/index.d.ts +48 -1
- package/src/astro/index.ts +106 -9
- package/src/astro/server.ts +11 -3
- package/src/collection.ts +6 -90
- package/src/core/actions.ts +134 -0
- package/src/core/cell.ts +202 -0
- package/src/core/debug.ts +23 -0
- package/src/core/define.ts +242 -0
- package/src/core/hooks.ts +314 -0
- package/src/core/hosts/collection.ts +325 -0
- package/src/core/hosts/switchable.ts +146 -0
- package/src/core/instance.ts +592 -0
- package/src/core/markers/clientonly.ts +13 -0
- package/src/core/markers/lazy.ts +40 -0
- package/src/core/markers/portal.ts +96 -0
- package/src/core/markers/suspense.ts +41 -0
- package/src/core/markers/transition.ts +70 -0
- package/src/core/registry.ts +25 -0
- package/src/core/runtime.ts +573 -0
- package/src/core/statics.ts +104 -0
- package/src/core/teardown.ts +60 -0
- package/src/core/view.ts +37 -0
- package/src/cycle/dom/DocumentDOMSource.ts +13 -8
- package/src/cycle/dom/ElementFinder.ts +7 -9
- package/src/cycle/dom/EventDelegator.ts +174 -223
- package/src/cycle/dom/IsolateModule.ts +65 -35
- package/src/cycle/dom/MainDOMSource.ts +13 -2
- package/src/cycle/dom/PriorityQueue.ts +4 -2
- package/src/cycle/dom/SymbolTree.ts +18 -47
- package/src/cycle/dom/classNameModule.ts +76 -0
- package/src/cycle/dom/controlledInputModule.ts +50 -0
- package/src/cycle/dom/enrichEventStream.ts +29 -45
- package/src/cycle/dom/fragment.ts +7 -0
- package/src/cycle/dom/isolate.ts +30 -27
- package/src/cycle/dom/makeDOMDriver.ts +115 -57
- package/src/cycle/dom/mockDOMSource.ts +83 -9
- package/src/cycle/dom/modules.ts +21 -4
- package/src/cycle/dom/propsModule.ts +65 -0
- package/src/cycle/dom/selectModule.ts +22 -17
- package/src/cycle/dom/snabbdom.ts +1 -6
- package/src/cycle/dom/thunk.ts +3 -0
- package/src/cycle/dom/utils.ts +98 -0
- package/src/cycle/dom/viewTransition.ts +43 -0
- package/src/cycle/state/StateSource.ts +20 -4
- package/src/cycle/state/objIsEqual.ts +50 -0
- package/src/cycle/state/types.ts +0 -10
- package/src/defineComponent.ts +34 -0
- package/src/devtools.d.ts +151 -0
- package/src/devtools.ts +34 -0
- package/src/element.d.ts +59 -0
- package/src/element.ts +235 -0
- package/src/extra/backoff.ts +9 -0
- package/src/extra/behaviors.ts +169 -0
- package/src/extra/browserSignals.ts +23 -0
- package/src/extra/browserSources.ts +326 -0
- package/src/extra/command.ts +3 -3
- package/src/extra/controls.ts +47 -0
- package/src/extra/copyAsTest.ts +286 -0
- package/src/extra/devtools.ts +109 -31
- package/src/extra/devtoolsActions.ts +379 -0
- package/src/extra/devtoolsHook.ts +9 -0
- package/src/extra/devtoolsNext.ts +83 -0
- package/src/extra/diagnostics/checks/actionLog.ts +108 -0
- package/src/extra/diagnostics/checks/behaviors.ts +49 -0
- package/src/extra/diagnostics/checks/browserSources.ts +96 -0
- package/src/extra/diagnostics/checks/collections.ts +67 -0
- package/src/extra/diagnostics/checks/controls.ts +148 -0
- package/src/extra/diagnostics/checks/dataset.ts +57 -0
- package/src/extra/diagnostics/checks/dom.ts +250 -0
- package/src/extra/diagnostics/checks/elementCommands.ts +175 -0
- package/src/extra/diagnostics/checks/events.ts +83 -0
- package/src/extra/diagnostics/checks/fetch.ts +135 -0
- package/src/extra/diagnostics/checks/forms.ts +163 -0
- package/src/extra/diagnostics/checks/index.ts +202 -0
- package/src/extra/diagnostics/checks/inspect.ts +427 -0
- package/src/extra/diagnostics/checks/next.ts +417 -0
- package/src/extra/diagnostics/checks/persist.ts +54 -0
- package/src/extra/diagnostics/checks/props.ts +56 -0
- package/src/extra/diagnostics/checks/public.d.ts +302 -0
- package/src/extra/diagnostics/checks/replies.ts +128 -0
- package/src/extra/diagnostics/checks/router.ts +100 -0
- package/src/extra/diagnostics/checks/rxjsHints.ts +88 -0
- package/src/extra/diagnostics/checks/shared.ts +203 -0
- package/src/extra/diagnostics/checks/shorthand.ts +115 -0
- package/src/extra/diagnostics/checks/sortable.ts +129 -0
- package/src/extra/diagnostics/checks/state.ts +148 -0
- package/src/extra/diagnostics/checks/statics.ts +48 -0
- package/src/extra/diagnostics/checks/strict.ts +55 -0
- package/src/extra/diagnostics/checks/timers.ts +80 -0
- package/src/extra/diagnostics/checks/viewTransitions.ts +47 -0
- package/src/extra/diagnostics/checks/virtual.ts +73 -0
- package/src/extra/diagnostics/checks/widgets.ts +109 -0
- package/src/extra/diagnostics/checks/wiring.ts +121 -0
- package/src/extra/diagnostics/codes.ts +477 -0
- package/src/extra/diagnostics/index.ts +353 -0
- package/src/extra/diagnostics/legacy.ts +76 -0
- package/src/extra/driverFactories.ts +172 -60
- package/src/extra/elementCommands.ts +53 -0
- package/src/extra/eventDriver.ts +4 -0
- package/src/extra/fetchDriver.ts +519 -0
- package/src/extra/flatten.ts +75 -0
- package/src/extra/focusWithin.ts +27 -0
- package/src/extra/form.ts +268 -0
- package/src/extra/formHelpers.ts +139 -0
- package/src/extra/head.ts +106 -0
- package/src/extra/hmr.ts +2 -3
- package/src/extra/owned.ts +24 -0
- package/src/extra/pager.ts +50 -0
- package/src/extra/persist.ts +133 -0
- package/src/extra/pwa.ts +1 -1
- package/src/extra/queryCache.ts +107 -0
- package/src/extra/reducers.ts +13 -6
- package/src/extra/reduxDevtools.ts +92 -0
- package/src/extra/replies.ts +54 -0
- package/src/extra/router.ts +323 -0
- package/src/extra/run.ts +94 -210
- package/src/extra/selection.ts +76 -0
- package/src/extra/socketDriver.ts +265 -0
- package/src/extra/sortable.ts +377 -0
- package/src/extra/ssr.ts +427 -160
- package/src/extra/standardSchema.ts +27 -0
- package/src/extra/testing.ts +3158 -190
- package/src/extra/timers.ts +95 -0
- package/src/extra/undo.ts +261 -0
- package/src/extra/viewTransitions.ts +38 -0
- package/src/extra/virtual.ts +513 -0
- package/src/extra/widget.ts +201 -0
- package/src/extra/xstreamExtras.ts +269 -0
- package/src/index.d.ts +3012 -87
- package/src/index.ts +32 -10
- package/src/jsx-runtime.ts +15 -1
- package/src/jsx.ts +2 -1
- package/src/lazy.ts +50 -7
- package/src/portal.ts +3 -1
- package/src/pragma/index.ts +262 -134
- package/src/react-peers.d.ts +5 -0
- package/src/react.d.ts +43 -0
- package/src/react.ts +110 -0
- package/src/shared.ts +48 -0
- package/src/slot.ts +1 -1
- package/src/suspense.ts +3 -1
- package/src/switchable.ts +6 -119
- package/src/transition.ts +3 -1
- package/src/ui/accordion.ts +64 -0
- package/src/ui/dialog.ts +129 -0
- package/src/ui/disclosure.ts +35 -0
- package/src/ui/popover.ts +45 -0
- package/src/ui/shared.ts +94 -0
- package/src/ui/tabs.ts +82 -0
- package/src/ui/toaster.ts +198 -0
- package/src/ui/tooltip.ts +70 -0
- package/src/ui/zag/combobox.ts +115 -0
- package/src/ui/zag/menu.ts +40 -0
- package/src/ui/zag/select.ts +54 -0
- package/src/ui/zag/shared.ts +43 -0
- package/src/ui-combobox.d.ts +20 -0
- package/src/ui-combobox.ts +6 -0
- package/src/ui-menu.d.ts +30 -0
- package/src/ui-menu.ts +6 -0
- package/src/ui-select.d.ts +17 -0
- package/src/ui-select.ts +6 -0
- package/src/ui-zag-types.d.ts +42 -0
- package/src/ui.d.ts +208 -0
- package/src/ui.ts +15 -0
- package/src/vike/+config.ts +9 -1
- package/src/vike/ClientOnly.ts +1 -1
- package/src/vike/onRenderClient.ts +144 -96
- package/src/vike/onRenderHtml.ts +69 -26
- package/src/vike/types.ts +27 -4
- package/src/vite/globalthis-shim.ts +18 -0
- package/src/vite/globalthis.ts +56 -0
- package/src/vite/plugin.d.ts +114 -2
- package/src/vite/plugin.ts +920 -56
- package/src/zag.d.ts +64 -0
- package/src/zag.ts +238 -0
- package/dist/astro/astro/client.d.ts +0 -5
- package/dist/astro/astro/index.d.ts +0 -16
- package/dist/astro/astro/server.d.ts +0 -12
- package/dist/astro/client.d.ts +0 -5
- package/dist/astro/client.esm.js +0 -4665
- package/dist/astro/collection.d.ts +0 -12
- package/dist/astro/component.d.ts +0 -22
- package/dist/astro/cycle/dom/BodyDOMSource.d.ts +0 -10
- package/dist/astro/cycle/dom/DOMSource.d.ts +0 -11
- package/dist/astro/cycle/dom/DocumentDOMSource.d.ts +0 -12
- package/dist/astro/cycle/dom/ElementFinder.d.ts +0 -8
- package/dist/astro/cycle/dom/EventDelegator.d.ts +0 -34
- package/dist/astro/cycle/dom/IsolateModule.d.ts +0 -23
- package/dist/astro/cycle/dom/MainDOMSource.d.ts +0 -32
- package/dist/astro/cycle/dom/PriorityQueue.d.ts +0 -7
- package/dist/astro/cycle/dom/ScopeChecker.d.ts +0 -9
- package/dist/astro/cycle/dom/SymbolTree.d.ts +0 -9
- package/dist/astro/cycle/dom/VNodeWrapper.d.ts +0 -8
- package/dist/astro/cycle/dom/enrichEventStream.d.ts +0 -24
- package/dist/astro/cycle/dom/fromEvent.d.ts +0 -6
- package/dist/astro/cycle/dom/index.d.ts +0 -8
- package/dist/astro/cycle/dom/isolate.d.ts +0 -9
- package/dist/astro/cycle/dom/makeDOMDriver.d.ts +0 -11
- package/dist/astro/cycle/dom/mockDOMSource.d.ts +0 -17
- package/dist/astro/cycle/dom/modules.d.ts +0 -5
- package/dist/astro/cycle/dom/snabbdom.d.ts +0 -22
- package/dist/astro/cycle/dom/styleModule.d.ts +0 -13
- package/dist/astro/cycle/dom/thunk.d.ts +0 -11
- package/dist/astro/cycle/dom/utils.d.ts +0 -8
- package/dist/astro/cycle/isolate/index.d.ts +0 -42
- package/dist/astro/cycle/run/adapt.d.ts +0 -6
- package/dist/astro/cycle/run/index.d.ts +0 -36
- package/dist/astro/cycle/run/internals.d.ts +0 -8
- package/dist/astro/cycle/run/types.d.ts +0 -49
- package/dist/astro/cycle/state/Collection.d.ts +0 -29
- package/dist/astro/cycle/state/StateSource.d.ts +0 -20
- package/dist/astro/cycle/state/index.d.ts +0 -5
- package/dist/astro/cycle/state/pickCombine.d.ts +0 -3
- package/dist/astro/cycle/state/pickMerge.d.ts +0 -3
- package/dist/astro/cycle/state/types.d.ts +0 -18
- package/dist/astro/cycle/state/withState.d.ts +0 -17
- package/dist/astro/extra/classes.d.ts +0 -7
- package/dist/astro/extra/devtools.d.ts +0 -78
- package/dist/astro/extra/dragDriver.d.ts +0 -20
- package/dist/astro/extra/driverFactories.d.ts +0 -12
- package/dist/astro/extra/eventDriver.d.ts +0 -9
- package/dist/astro/extra/exactState.d.ts +0 -1
- package/dist/astro/extra/hmr.d.ts +0 -17
- package/dist/astro/extra/logDriver.d.ts +0 -2
- package/dist/astro/extra/processDrag.d.ts +0 -19
- package/dist/astro/extra/processForm.d.ts +0 -15
- package/dist/astro/extra/run.d.ts +0 -13
- package/dist/astro/extra/xstreamCompat.d.ts +0 -5
- package/dist/astro/index.d.ts +0 -19
- package/dist/astro/index.esm.js +0 -27
- package/dist/astro/jsx-dev-runtime.d.ts +0 -1
- package/dist/astro/jsx-runtime.d.ts +0 -4
- package/dist/astro/jsx.d.ts +0 -2
- package/dist/astro/pragma/fn.d.ts +0 -7
- package/dist/astro/pragma/index.d.ts +0 -7
- package/dist/astro/pragma/is.d.ts +0 -10
- package/dist/astro/server.d.ts +0 -12
- package/dist/astro/server.esm.js +0 -25
- package/dist/astro/switchable.d.ts +0 -7
- package/dist/collection.d.ts +0 -12
- package/dist/component.d.ts +0 -22
- package/dist/cycle/dom/BodyDOMSource.d.ts +0 -10
- package/dist/cycle/dom/DOMSource.d.ts +0 -11
- package/dist/cycle/dom/DocumentDOMSource.d.ts +0 -12
- package/dist/cycle/dom/ElementFinder.d.ts +0 -8
- package/dist/cycle/dom/EventDelegator.d.ts +0 -34
- package/dist/cycle/dom/IsolateModule.d.ts +0 -23
- package/dist/cycle/dom/MainDOMSource.d.ts +0 -32
- package/dist/cycle/dom/PriorityQueue.d.ts +0 -7
- package/dist/cycle/dom/ScopeChecker.d.ts +0 -9
- package/dist/cycle/dom/SymbolTree.d.ts +0 -9
- package/dist/cycle/dom/VNodeWrapper.d.ts +0 -8
- package/dist/cycle/dom/enrichEventStream.d.ts +0 -24
- package/dist/cycle/dom/fromEvent.d.ts +0 -6
- package/dist/cycle/dom/index.d.ts +0 -8
- package/dist/cycle/dom/isolate.d.ts +0 -9
- package/dist/cycle/dom/makeDOMDriver.d.ts +0 -11
- package/dist/cycle/dom/mockDOMSource.d.ts +0 -17
- package/dist/cycle/dom/modules.d.ts +0 -5
- package/dist/cycle/dom/snabbdom.d.ts +0 -22
- package/dist/cycle/dom/styleModule.d.ts +0 -13
- package/dist/cycle/dom/thunk.d.ts +0 -11
- package/dist/cycle/dom/utils.d.ts +0 -8
- package/dist/cycle/isolate/index.d.ts +0 -42
- package/dist/cycle/run/adapt.d.ts +0 -6
- package/dist/cycle/run/index.d.ts +0 -36
- package/dist/cycle/run/internals.d.ts +0 -8
- package/dist/cycle/run/types.d.ts +0 -49
- package/dist/cycle/state/Collection.d.ts +0 -29
- package/dist/cycle/state/StateSource.d.ts +0 -20
- package/dist/cycle/state/index.d.ts +0 -5
- package/dist/cycle/state/pickCombine.d.ts +0 -3
- package/dist/cycle/state/pickMerge.d.ts +0 -3
- package/dist/cycle/state/types.d.ts +0 -18
- package/dist/cycle/state/withState.d.ts +0 -17
- package/dist/extra/classes.d.ts +0 -7
- package/dist/extra/devtools.d.ts +0 -78
- package/dist/extra/dragDriver.d.ts +0 -20
- package/dist/extra/driverFactories.d.ts +0 -12
- package/dist/extra/eventDriver.d.ts +0 -9
- package/dist/extra/exactState.d.ts +0 -1
- package/dist/extra/hmr.d.ts +0 -17
- package/dist/extra/logDriver.d.ts +0 -2
- package/dist/extra/processDrag.d.ts +0 -19
- package/dist/extra/processForm.d.ts +0 -15
- package/dist/extra/run.d.ts +0 -13
- package/dist/extra/xstreamCompat.d.ts +0 -5
- package/dist/jsx-dev-runtime.d.ts +0 -1
- package/dist/jsx-dev-runtime.js +0 -224
- package/dist/jsx-runtime.d.ts +0 -4
- package/dist/jsx-runtime.js +0 -224
- package/dist/jsx.d.ts +0 -2
- package/dist/pragma/fn.d.ts +0 -7
- package/dist/pragma/index.d.ts +0 -7
- package/dist/pragma/is.d.ts +0 -10
- package/dist/switchable.d.ts +0 -7
- package/dist/vike/+config.cjs.js +0 -65
- package/src/component.ts +0 -2256
- package/src/cycle/isolate/index.ts +0 -196
- package/src/cycle/run/index.ts +0 -151
- package/src/cycle/run/internals.ts +0 -143
- package/src/cycle/state/Collection.ts +0 -174
- package/src/cycle/state/index.ts +0 -5
- package/src/cycle/state/pickCombine.ts +0 -167
- package/src/cycle/state/pickMerge.ts +0 -122
- package/src/cycle/state/withState.ts +0 -47
- package/src/pragma/fn.ts +0 -55
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.cjs.js","sources":["../src/ui/shared.ts","../src/ui/dialog.ts","../src/ui/popover.ts","../src/ui/tooltip.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) => {\n const f = o.returnFocus ?? true, sel = f === true ? o.trigger : f\n if (!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-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":["sampleCombine","base","defineBehavior","xs","ABORT","dropRepeats","h","Transition","Collection"],"mappings":"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"}
|