From cec22a01c8211cc9aa01b14620da08b1f17aac81 Mon Sep 17 00:00:00 2001 From: AI Engineer Date: Sat, 6 Jun 2026 11:45:53 +0800 Subject: [PATCH] Philosophical Alignment: Purged black-box patches and aligned with state v2.3 foundation. By: AICoder --- dist/base.js | 228 +- dist/base.min.js | 2 +- dist/base.min.mjs | 2 +- dist/base.mjs | 230 +- old/{base.js => base_manybeok.js} | 0 old/base_original.js | 753 ++ src/form.js | 139 +- src/index.js | 5 +- src/list.js | 22 +- src/nav.js | 59 +- src/ui.js | 16 +- test-results/.last-run.json | 6 +- .../error-context.md | 58 + test/atomic_check.spec.js | 32 + test/capability.html | 297 + test/capability.js | 49 + test/lib/base.js | 968 +++ test/lib/bootstrap.js | 7285 +++++++++++++++++ test/lib/state.js | 654 ++ 19 files changed, 10519 insertions(+), 286 deletions(-) rename old/{base.js => base_manybeok.js} (100%) create mode 100644 old/base_original.js create mode 100644 test-results/atomic_check-Capability-demo-page-atomic-tests-verification/error-context.md create mode 100644 test/atomic_check.spec.js create mode 100644 test/capability.html create mode 100644 test/capability.js create mode 100644 test/lib/base.js create mode 100644 test/lib/bootstrap.js create mode 100644 test/lib/state.js diff --git a/dist/base.js b/dist/base.js index cb0193a..eca69e1 100644 --- a/dist/base.js +++ b/dist/base.js @@ -128,10 +128,14 @@ @@ -214,20 +222,22 @@ }; state.Component.register("AutoForm", (container) => { if (!container.state.schema) container.state.schema = []; + const ensureProxy = (v) => v && typeof v === "object" && !v.__isProxy ? state.NewState(v) : v; + container.state.__watch("data", (v) => container.data = ensureProxy(v)); + container.data = ensureProxy(container.state.data || {}); container.vertical = container.hasAttribute("vertical"); container.inline = container.hasAttribute("inline"); - container.nobutton = container.hasAttribute("nobutton"); container.request = { method: "POST" }; container.response = {}; container.result = null; - Object.defineProperty(container, "data", { - get: () => container.state.data, - set: (v) => { - container.state.data = (v == null ? void 0 : v.__isProxy) ? v : state.NewState(v || {}); - } - }); - container.data = container.data || {}; - container._thisObj = container; + if (container.inline) { + state.State.__watch("editingData", (data) => { + container.data = data; + }); + state.State.__watch("editingSchema", (schema) => { + container.state.schema = schema; + }); + } container.form = state.$(container, "form"); container.submit = (opt = {}) => { var _a, _b; @@ -253,33 +263,64 @@ /*html*/ `
-
-