sx-pub: plan page, dev infrastructure, JS bundle rebuild
- Add sx-pub plan page under Applications with full protocol spec: wire format, endpoints, storage, flows, AP critique, phases - Add nav entry and page function for /sx/(applications.(sx-pub)) - Add docker-compose.dev-pub.yml (sx_docs image + DB + IPFS + Redis) - Add dev-pub.sh launch script (pub.sx-web.org via Caddy) - Rebuild sx-browser.js with var fixes for SES compatibility Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
// =========================================================================
|
||||
|
||||
var NIL = Object.freeze({ _nil: true, toString: function() { return "nil"; } });
|
||||
var SX_VERSION = "2026-03-24T22:31:01Z";
|
||||
var SX_VERSION = "2026-03-24T22:34:15Z";
|
||||
|
||||
function isNil(x) { return x === NIL || x === null || x === undefined; }
|
||||
function isSxTruthy(x) { return x !== false && !isNil(x); }
|
||||
@@ -4769,7 +4769,7 @@ PRIMITIVES["bind-sse-swap"] = bindSseSwap;
|
||||
var eventName = slice(name, 6);
|
||||
return (isSxTruthy(!isSxTruthy(isProcessed(el, (String("on:") + String(eventName))))) ? (markProcessed(el, (String("on:") + String(eventName))), (function() {
|
||||
var exprs = sxParse(body);
|
||||
return domOn(el, eventName, function(e) { return (function() {
|
||||
return domListen(el, eventName, function(e) { return (function() {
|
||||
var handlerEnv = envExtend({});
|
||||
envBind(handlerEnv, "event", e);
|
||||
envBind(handlerEnv, "this", el);
|
||||
@@ -4826,7 +4826,7 @@ PRIMITIVES["process-one"] = processOne;
|
||||
var els = domQueryAll(sxOr(root, domBody()), "[data-sx-emit]");
|
||||
return forEach(function(el) { return (isSxTruthy(!isSxTruthy(isProcessed(el, "emit"))) ? (markProcessed(el, "emit"), (function() {
|
||||
var eventName = domGetAttr(el, "data-sx-emit");
|
||||
return (isSxTruthy(eventName) ? domOn(el, "click", function(e) { return (function() {
|
||||
return (isSxTruthy(eventName) ? domListen(el, "click", function(e) { return (function() {
|
||||
var detailJson = domGetAttr(el, "data-sx-emit-detail");
|
||||
var detail = (isSxTruthy(detailJson) ? jsonParse(detailJson) : {});
|
||||
return domDispatch(el, eventName, detail);
|
||||
@@ -5973,12 +5973,12 @@ PRIMITIVES["clear-stores"] = clearStores;
|
||||
PRIMITIVES["emit-event"] = emitEvent;
|
||||
|
||||
// on-event
|
||||
var onEvent = function(el, eventName, handler) { return domOn(el, eventName, handler); };
|
||||
var onEvent = function(el, eventName, handler) { return domListen(el, eventName, handler); };
|
||||
PRIMITIVES["on-event"] = onEvent;
|
||||
|
||||
// bridge-event
|
||||
var bridgeEvent = function(el, eventName, targetSignal, transformFn) { return effect(function() { return (function() {
|
||||
var remove = domOn(el, eventName, function(e) { return (function() {
|
||||
var remove = domListen(el, eventName, function(e) { return (function() {
|
||||
var detail = eventDetail(e);
|
||||
var newVal = (isSxTruthy(transformFn) ? cekCall(transformFn, [detail]) : detail);
|
||||
return reset_b(targetSignal, newVal);
|
||||
@@ -6327,8 +6327,8 @@ PRIMITIVES["resource"] = resource;
|
||||
// If lambda takes 0 params, call without event arg (convenience for on-click handlers)
|
||||
var wrapped = isLambda(handler)
|
||||
? (lambdaParams(handler).length === 0
|
||||
? function(e) { try { cekCall(handler, NIL); } catch(err) { console.error("[sx-ref] domListen handler error:", name, err); } }
|
||||
: function(e) { try { cekCall(handler, [e]); } catch(err) { console.error("[sx-ref] domListen handler error:", name, err); } })
|
||||
? function(e) { try { cekCall(handler, NIL); } catch(err) { console.error("[sx-ref] domListen handler error:", name, err); } finally { runPostRenderHooks(); } }
|
||||
: function(e) { try { cekCall(handler, [e]); } catch(err) { console.error("[sx-ref] domListen handler error:", name, err); } finally { runPostRenderHooks(); } })
|
||||
: handler;
|
||||
if (name === "click") logInfo("domListen: click on <" + (el.tagName||"?").toLowerCase() + "> text=" + (el.textContent||"").substring(0,20) + " isLambda=" + isLambda(handler));
|
||||
var passiveEvents = { touchstart: 1, touchmove: 1, wheel: 1, scroll: 1 };
|
||||
|
||||
Reference in New Issue
Block a user