@madojs/mado 0.12.0 → 0.13.1
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/AGENTS.md +15 -8
- package/CHANGELOG.md +66 -0
- package/README.md +25 -3
- package/dist/src/component.d.ts +3 -1
- package/dist/src/component.d.ts.map +1 -0
- package/dist/src/component.js +65 -30
- package/dist/src/component.js.map +1 -1
- package/dist/src/context.d.ts +13 -32
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +73 -48
- package/dist/src/context.js.map +1 -1
- package/dist/src/css.d.ts +1 -0
- package/dist/src/css.d.ts.map +1 -0
- package/dist/src/css.js.map +1 -1
- package/dist/src/devtools-hook.d.ts +14 -0
- package/dist/src/devtools-hook.d.ts.map +1 -0
- package/dist/src/devtools-hook.js +27 -0
- package/dist/src/devtools-hook.js.map +1 -0
- package/dist/src/devtools.d.ts +24 -22
- package/dist/src/devtools.d.ts.map +1 -0
- package/dist/src/devtools.js +230 -58
- package/dist/src/devtools.js.map +1 -1
- package/dist/src/diagnostics.d.ts +12 -0
- package/dist/src/diagnostics.d.ts.map +1 -0
- package/dist/src/diagnostics.js +68 -8
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/each.d.ts +1 -5
- package/dist/src/each.d.ts.map +1 -0
- package/dist/src/each.js +0 -8
- package/dist/src/each.js.map +1 -1
- package/dist/src/forms.d.ts +27 -96
- package/dist/src/forms.d.ts.map +1 -0
- package/dist/src/forms.js +184 -394
- package/dist/src/forms.js.map +1 -1
- package/dist/src/head.d.ts +1 -0
- package/dist/src/head.d.ts.map +1 -0
- package/dist/src/head.js +2 -1
- package/dist/src/head.js.map +1 -1
- package/dist/src/html/bindings.d.ts +1 -0
- package/dist/src/html/bindings.d.ts.map +1 -0
- package/dist/src/html/bindings.js.map +1 -1
- package/dist/src/html/parser.d.ts +3 -4
- package/dist/src/html/parser.d.ts.map +1 -0
- package/dist/src/html/parser.js +63 -14
- package/dist/src/html/parser.js.map +1 -1
- package/dist/src/html/template-types.d.ts +1 -0
- package/dist/src/html/template-types.d.ts.map +1 -0
- package/dist/src/html/template-types.js.map +1 -1
- package/dist/src/html/template.d.ts +5 -1
- package/dist/src/html/template.d.ts.map +1 -0
- package/dist/src/html/template.js +78 -3
- package/dist/src/html/template.js.map +1 -1
- package/dist/src/index.d.ts +7 -8
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +5 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/json.d.ts +3 -0
- package/dist/src/json.d.ts.map +1 -0
- package/dist/src/json.js +14 -0
- package/dist/src/json.js.map +1 -0
- package/dist/src/lifecycle.d.ts +1 -0
- package/dist/src/lifecycle.d.ts.map +1 -0
- package/dist/src/lifecycle.js +3 -2
- package/dist/src/lifecycle.js.map +1 -1
- package/dist/src/page.d.ts +1 -0
- package/dist/src/page.d.ts.map +1 -0
- package/dist/src/page.js.map +1 -1
- package/dist/src/persisted.d.ts +6 -1
- package/dist/src/persisted.d.ts.map +1 -0
- package/dist/src/persisted.js +17 -11
- package/dist/src/persisted.js.map +1 -1
- package/dist/src/resource.d.ts +2 -1
- package/dist/src/resource.d.ts.map +1 -0
- package/dist/src/resource.js +126 -49
- package/dist/src/resource.js.map +1 -1
- package/dist/src/router/base.d.ts +1 -0
- package/dist/src/router/base.d.ts.map +1 -0
- package/dist/src/router/base.js.map +1 -1
- package/dist/src/router/manifest.d.ts +1 -0
- package/dist/src/router/manifest.d.ts.map +1 -0
- package/dist/src/router/manifest.js +89 -148
- package/dist/src/router/manifest.js.map +1 -1
- package/dist/src/router/match.d.ts +1 -0
- package/dist/src/router/match.d.ts.map +1 -0
- package/dist/src/router/match.js +19 -5
- package/dist/src/router/match.js.map +1 -1
- package/dist/src/router/navigation.d.ts +1 -0
- package/dist/src/router/navigation.d.ts.map +1 -0
- package/dist/src/router/navigation.js.map +1 -1
- package/dist/src/signal.d.ts +1 -0
- package/dist/src/signal.d.ts.map +1 -0
- package/dist/src/signal.js +46 -17
- package/dist/src/signal.js.map +1 -1
- package/dist/src/static-runtime.d.ts +1 -0
- package/dist/src/static-runtime.d.ts.map +1 -0
- package/dist/src/static-runtime.js.map +1 -1
- package/dist/src/vite/index.d.ts +1 -0
- package/dist/src/vite/index.d.ts.map +1 -0
- package/dist/src/vite/index.js +4 -3
- package/dist/src/vite/index.js.map +1 -1
- package/docs/architecture/v1-roadmap.md +19 -0
- package/docs/en/10-pages-and-components.md +9 -1
- package/docs/en/13-data.md +8 -6
- package/docs/en/14-forms.md +66 -219
- package/docs/en/15-static-snapshots.md +4 -4
- package/docs/en/16-app-architecture.md +3 -2
- package/docs/en/20-deployment.md +21 -8
- package/docs/en/21-error-handling.md +9 -6
- package/docs/en/24-devtools-and-diagnostics.md +45 -0
- package/docs/en/30-api-freeze-map.md +8 -9
- package/docs/en/32-v1-stability.md +2 -2
- package/docs/en/33-migration-0.12-0.13.md +56 -0
- package/docs/en/40-llm-guide.md +7 -9
- package/docs/en/41-for-backenders.md +13 -9
- package/docs/en/42-why-mado.md +2 -2
- package/docs/en/README.md +2 -0
- package/docs/recipes/nginx/nginx.conf +2 -2
- package/llms.txt +25 -7
- package/package.json +37 -16
- package/scripts/clean.mjs +8 -0
- package/scripts/cli/generate.mjs +11 -14
- package/scripts/cli/help.mjs +2 -0
- package/scripts/cli/index.mjs +14 -6
- package/scripts/cli/init.mjs +13 -18
- package/scripts/cli/release.mjs +22 -19
- package/scripts/cli/run.mjs +5 -3
- package/scripts/logger.mjs +117 -0
- package/scripts/output-guard.mjs +128 -0
- package/scripts/preview.mjs +11 -19
- package/scripts/static/browser.mjs +58 -8
- package/scripts/static/discover.mjs +4 -1
- package/scripts/static.mjs +21 -7
- package/starters/default/package.json +4 -4
- package/starters/default/tsconfig.node.json +13 -0
- package/starters/default/vite.config.ts +0 -3
- package/starters/modular/README.md +4 -4
- package/starters/modular/package.json +4 -4
- package/starters/modular/src/layouts/app-shell.layout.ts +1 -2
- package/starters/modular/src/modules/auth/login.page.ts +5 -12
- package/starters/modular/src/modules/billing/pages/invoice-detail.page.ts +3 -4
- package/starters/modular/src/modules/billing/pages/invoices-list.page.ts +1 -1
- package/starters/modular/src/shared/styles/reset.css +21 -1
- package/starters/modular/tsconfig.json +10 -1
- package/starters/modular/tsconfig.node.json +13 -0
- package/starters/modular/vite.config.ts +6 -5
- package/dist/src/lazy.d.ts +0 -38
- package/dist/src/lazy.js +0 -73
- package/dist/src/lazy.js.map +0 -1
- package/scripts/bake.mjs +0 -5
- package/scripts/docs-lint.mjs +0 -170
- package/scripts/package-smoke.mjs +0 -135
- package/scripts/release-notes.mjs +0 -66
- package/scripts/size-budget.mjs +0 -95
- package/starters/modular/src/shared/ui/x-button.component.ts +0 -49
package/dist/src/forms.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/forms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,MAAM,EAAE,QAAQ,EAA8B,MAAM,aAAa,CAAC;AAgG3E,MAAM,UAAU,OAAO,CACrB,MAAc,EACd,UAA6B,EAAE;IAE/B,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,MAAM,GAAG,GAAe,EAAE,CAAC;QAC3B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACrB,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,GAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAI,QAAQ,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAA0B,EAAE,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,CAAa,EAAE,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,MAAM,CAA0B,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE9E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC5C,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,cAAc,GAAa,EAAE,CAAC;IAElC,MAAM,UAAU,GAAG,QAAQ,CAAa,GAAG,EAAE;QAC3C,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;QACnB,MAAM,GAAG,GAAe,EAAE,CAAC;QAE3B,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;YAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,OAAO,CAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3C,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,iBAAiB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,MAAM;gBAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,QAAQ,CAAa,GAAG,EAAE,CAAC,CAAC;QACzC,GAAG,UAAU,EAAE;QACf,GAAG,WAAW,EAAE;KACjB,CAAC,CAAC,CAAC;IAEJ,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAEnE,SAAS,iBAAiB,CACxB,GAAe,EACf,CAAc,EACd,CAAI,EACJ,IAAY;QAEZ,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,IAAI,CAAC;QAEhE,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,OAAO;YAAE,OAAO;QAEpB,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAClD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC;QAC3E,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;YAC5B,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC;iBAC/C,CAAC;gBACJ,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;gBACrE,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;YACvE,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,SAAS,aAAa,CAAC;YAClD,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,MAAM;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QACjC,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAE,OAAgB,EAAQ,EAAE;QAClE,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5B,IAAI,OAAO;gBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YAC3C,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CACrB,UAA6B,EAC7B,UAAsB,EAChB,EAAE;QACR,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,UAAU;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;YACjD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzD,IAAI,OAAO;oBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;;oBAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,MAAc,EAAQ,EAAE;QAChD,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,wEAAwE;IACxE,qEAAqE;IACrE,2EAA2E;IAC3E,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAQ,EAAE;QACpD,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/C,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpD,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAGF,MAAM,aAAa,GAAG,KAAK,EAAE,IAAY,EAAoB,EAAE;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC5C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CACtE,CAAC;QAEF,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzB,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;QAEvD,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAe,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,aAAc,CACpC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EACvB,QAAQ,EACR,IAAI,CACL,CAAC;gBACF,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;oBACrB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC;YACjC,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;gBAAS,CAAC;YACT,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBAChC,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;gBAC7B,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,IAAsB,EAAE;QAC/C,MAAM,GAAG,GAAG,EAAE,OAAO,CAAC;QACtB,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAE5D,IAAI,OAAO,CAAC,aAAa;YAAE,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEpD,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5D,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1D,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBACpB,cAAc,CAAC,cAAc,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;oBAC7C,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,OAAO,KAAK,GAAG,EAAE,CAAC;oBACpB,cAAc,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAC/D,cAAc,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC;gBACD,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;YACrD,CAAC;oBAAS,CAAC;gBACT,IAAI,OAAO,KAAK,GAAG;oBAAE,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,EAA8D,EAAE,EAAE;QACnF,IAAI,EAAE,YAAY,gBAAgB,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,EAAE,CAAC,OAAO,CAAC;YAC9C,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,GAAG,GAAe;QACtB,MAAM;QACN,MAAM;QACN,OAAO;QACP,UAAU;QACV,UAAU;QACV,gBAAgB;QAChB,OAAO;QAEP,OAAO,CAAC,CAAC;YACP,MAAM,CAAC,GAAG,CAAC,CAAC,MAA0B,CAAC;YACvC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAAE,OAAO;YACpB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,KAAK,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,CAAC,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,CAAC,MAA0B,CAAC;YACvC,IAAI,CAAC,CAAC,CAAC,IAAI;gBAAE,OAAO;YACpB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC;QAED,QAAQ,CAAC,OAAO;YACd,OAAO,CAAC,CAAQ,EAAE,EAAE;gBAClB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,gDAAgD;gBAChD,MAAM,GAAG,GAA4B,EAAE,CAAC;gBACxC,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBACtC,KAAK,MAAM,CAAC,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;gBAC1E,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEjB,KAAK,CAAC,KAAK,IAAI,EAAE;oBACf,IAAI,CAAC,CAAC,MAAM,WAAW,EAAE,CAAC;wBAAE,OAAO;oBAEnC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACrB,IAAI,CAAC;wBACH,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC/B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,sCAAsC;wBACtC,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;oBAClD,CAAC;4BAAS,CAAC;wBACT,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,CAAC,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,IAAY,EAAE,KAAgB;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAM,CAAC,CAAC;YACnD,cAAc,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,CAAC;QAED,aAAa;QAEb,QAAQ,EAAE,WAAW;QAErB,KAAK,CACH,IAAsB;YAEtB,MAAM,IAAI,GAAG,GAAQ,EAAE;gBACrB,mEAAmE;gBACnE,iEAAiE;gBACjE,6BAA6B;gBAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;gBACtC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,CAAC,KAAmB,EAAQ,EAAE;gBAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,CAAM,CAAC,CAAC;gBACxD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAClD,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,uEAAuE;gBACvE,iEAAiE;gBACjE,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC;YAEF,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE,CACtD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAEvC,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,CAAC,KAAK,EAAE,KAAK;oBACf,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC;gBAClE,CAAC;gBACD,MAAM,CAAC,KAAK;oBACV,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBACD,OAAO,CAAC,KAAK;oBACX,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC5B,CAAC;gBACD,MAAM,CAAC,KAAK,EAAE,KAAK;oBACjB,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;oBACrB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBACD,MAAM,CAAC,KAAK;oBACV,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;oBACrB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;wBAAE,OAAO;oBAC/C,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,CAAC,IAAI,EAAE,EAAE;oBACX,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;oBACrB,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM;wBAAE,OAAO;oBAC7C,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,IAAK,CAAC,CAAC;oBAC9C,KAAK,CAAC,IAAI,CAAC,CAAC;gBACd,CAAC;gBACD,OAAO,CAAC,KAAK;oBACX,KAAK,CAAC,KAAK,CAAC,CAAC;gBACf,CAAC;gBACD,GAAG,CAAC,KAAK,EAAE,KAAK;oBACd,MAAM,KAAK,GAAG,IAAI,EAAE,CAAC;oBACrB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;wBAAE,OAAO;oBAC/C,MAAM,IAAI,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;oBACpB,KAAK,CAAC,IAAI,CAAC,CAAC;gBACd,CAAC;aACF,CAAC;QACJ,CAAC;QAED,KAAK;YACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpB,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACzB,cAAc,GAAG,EAAE,CAAC;YACpB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,cAAc,CAAsB,KAAQ;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,GAAG,CAAC,cAAc,CAAM,CAAC;IAChE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAA8B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,GAAQ,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,OAAO,CAAC,KAAgB,EAAE,IAAY;IAC7C,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QACrE,OAAO,GAAI,OAAqC,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,IAAgB,EAAE,IAAY,EAAE,KAAgB;IAC/D,OAAO,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAe,CAAC;AAClE,CAAC;AAED,SAAS,YAAY,CACnB,OAAkB,EAClB,KAAwB,EACxB,KAAgB;IAEhB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAErC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACtB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACtC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QACd,CAAC,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YACtC,CAAC,CAAC,EAAE,GAAI,OAAqC,EAAE;YAC/C,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC;gBACjB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,CAAC;IAEV,SAAuC,CAAC,GAAG,CAAC,GAAG,YAAY,CACzD,SAAuC,CAAC,GAAG,CAAC,EAC7C,IAAI,EACJ,KAAK,CACN,CAAC;IACF,OAAO,SAAsB,CAAC;AAChC,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB,EAAE,OAAe;IAC3D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,WAAW,CAClB,OAAkB,EAClB,KAAwB,EACxB,MAAgB;IAEhB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAElD,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;IAC9B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QACvC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACrC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GACR,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QACpC,CAAC,CAAE,OAAqC,CAAC,IAAK,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAChB,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,MAAM,EAAE,IAAK,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAkB,EAAE,MAAc;IAC7D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe,EAAE,IAAY;IACtD,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QAClC,IAAI,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;IAClE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAyB,EACzB,MAAc;IAEd,MAAM,IAAI,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;IAC5B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"forms.js","sourceRoot":"","sources":["../../src/forms.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Typed form state over the browser's native form and constraint-validation\n * model. HTML owns required/type/min/max/pattern; Mado owns reactive state,\n * touched/dirty flags, async validation cancellation and submit state.\n */\n\nimport { computed, signal, type Computed, type Signal } from \"./signal.js\";\nimport { reportError } from \"./diagnostics.js\";\n\nexport type FormValue = unknown;\nexport type FormValues = Record<string, unknown>;\nexport type FormErrors<V extends FormValues = FormValues> = Partial<\n Record<string, string>\n>;\nexport type FormTouched<V extends FormValues = FormValues> = Partial<\n Record<string, boolean>\n>;\n\nexport interface FormValidationContext {\n signal: AbortSignal;\n form: HTMLFormElement | null;\n}\n\nexport type FormValidator<V extends FormValues> = (\n values: Readonly<V>,\n context: FormValidationContext,\n) => FormErrors<V> | null | Promise<FormErrors<V> | null>;\n\nexport interface UseFormOptions<V extends FormValues> {\n initial: V;\n validate?: FormValidator<V>;\n}\n\nexport interface FormApi<V extends FormValues> {\n values: Signal<V>;\n errors: Computed<FormErrors<V>>;\n touched: Signal<FormTouched<V>>;\n dirty: Computed<boolean>;\n submitting: Signal<boolean>;\n validating: Signal<boolean>;\n isValid: Computed<boolean>;\n onInput(event: Event): void;\n onBlur(event: Event): void;\n onSubmit(\n handler: (values: Readonly<V>, event: SubmitEvent) => void | Promise<void>,\n ): (event: SubmitEvent) => void;\n setField<K extends Extract<keyof V, string>>(name: K, value: V[K]): void;\n reset(nextInitial?: V): void;\n validate(form?: HTMLFormElement | null): Promise<boolean>;\n}\n\ntype FormControl = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\nexport function useForm<V extends FormValues>(\n options: UseFormOptions<V>,\n): FormApi<V> {\n let initial = cloneValues(options.initial);\n const values = signal<V>(cloneValues(initial));\n const nativeErrors = signal<FormErrors<V>>({});\n const customErrors = signal<FormErrors<V>>({});\n const touched = signal<FormTouched<V>>({});\n const submitting = signal(false);\n const validating = signal(false);\n const errors = computed<FormErrors<V>>(() => ({\n ...nativeErrors(),\n ...customErrors(),\n }));\n const dirty = computed(() => !sameValues(values(), initial));\n const isValid = computed(() => Object.keys(errors()).length === 0);\n\n let lastForm: HTMLFormElement | null = null;\n let validationController: AbortController | null = null;\n let validationRun = 0;\n let activeSubmits = 0;\n\n const rememberForm = (event: Event, control?: FormControl | null) => {\n const current = event.currentTarget;\n if (isForm(current)) lastForm = current;\n else if (control?.form) lastForm = control.form;\n };\n\n const setField = <K extends Extract<keyof V, string>>(\n name: K,\n value: V[K],\n ): void => {\n values.update((current) => ({ ...current, [name]: value }));\n customErrors.update((current) => withoutKey(current, name));\n };\n\n const validate = async (\n form: HTMLFormElement | null = lastForm,\n ): Promise<boolean> => {\n if (form) lastForm = form;\n validationController?.abort();\n const controller = new AbortController();\n validationController = controller;\n const run = ++validationRun;\n\n const nextNative: FormErrors<V> = {};\n for (const control of controlsOf(form)) {\n const message = nativeValidationMessage(control);\n if (message) nextNative[control.name] = message;\n }\n nativeErrors.set(nextNative);\n\n if (!options.validate) {\n if (validationController === controller) validationController = null;\n return Object.keys(nextNative).length === 0;\n }\n\n validating.set(true);\n try {\n const result = await options.validate(values.peek(), {\n signal: controller.signal,\n form,\n });\n if (controller.signal.aborted || run !== validationRun) return false;\n customErrors.set(result ?? {});\n return Object.keys({ ...nextNative, ...(result ?? {}) }).length === 0;\n } catch (error) {\n if (controller.signal.aborted || run !== validationRun) return false;\n customErrors.set({ $form: \"validation failed\" });\n reportError(\"forms\", \"validator\", \"form validator threw\", error);\n return false;\n } finally {\n if (run === validationRun) {\n validating.set(false);\n validationController = null;\n }\n }\n };\n\n const api: FormApi<V> = {\n values,\n errors,\n touched,\n dirty,\n submitting,\n validating,\n isValid,\n\n onInput(event) {\n const control = controlFromEvent(event);\n if (!control?.name) return;\n rememberForm(event, control);\n const name = control.name as Extract<keyof V, string>;\n setField(name, readControlValue(control, values.peek()[name], lastForm) as V[typeof name]);\n const message = nativeValidationMessage(control);\n nativeErrors.update((current) =>\n message ? { ...current, [name]: message } : withoutKey(current, name));\n },\n\n onBlur(event) {\n const control = controlFromEvent(event);\n if (!control?.name) return;\n rememberForm(event, control);\n touched.update((current) => ({ ...current, [control.name]: true }));\n },\n\n onSubmit(handler) {\n return (event) => {\n event.preventDefault();\n const form = isForm(event.currentTarget) ? event.currentTarget : lastForm;\n if (form) lastForm = form;\n const allTouched: FormTouched<V> = { ...touched.peek() };\n for (const control of controlsOf(form)) allTouched[control.name] = true;\n touched.set(allTouched);\n\n void (async () => {\n if (!(await validate(form))) {\n form?.reportValidity?.();\n return;\n }\n activeSubmits++;\n submitting.set(true);\n try {\n await handler(values.peek(), event);\n } catch (error) {\n reportError(\"forms\", \"submit\", \"form submit threw\", error);\n } finally {\n activeSubmits--;\n submitting.set(activeSubmits > 0);\n }\n })();\n };\n },\n\n setField,\n\n reset(nextInitial) {\n validationRun++;\n validationController?.abort();\n validationController = null;\n validating.set(false);\n if (nextInitial) initial = cloneValues(nextInitial);\n values.set(cloneValues(initial));\n nativeErrors.set({});\n customErrors.set({});\n touched.set({});\n lastForm?.reset?.();\n },\n\n validate,\n };\n\n return api;\n}\n\nfunction controlFromEvent(event: Event): FormControl | null {\n const path = event.composedPath?.() ?? [];\n for (const candidate of path) {\n if (isFormControl(candidate)) return candidate;\n }\n return isFormControl(event.target) ? event.target : null;\n}\n\nfunction isFormControl(value: unknown): value is FormControl {\n if (!value || typeof value !== \"object\") return false;\n const candidate = value as { name?: unknown; value?: unknown; tagName?: unknown };\n return typeof candidate.name === \"string\" &&\n (\"value\" in candidate || String(candidate.tagName).toLowerCase() === \"select\");\n}\n\nfunction isForm(value: unknown): value is HTMLFormElement {\n return !!value && typeof value === \"object\" &&\n String((value as { tagName?: unknown }).tagName).toLowerCase() === \"form\";\n}\n\nfunction controlsOf(form: HTMLFormElement | null): FormControl[] {\n if (!form) return [];\n const elements = form.elements ? Array.from(form.elements) :\n Array.from(form.querySelectorAll(\"input,select,textarea\"));\n return elements.filter(isFormControl);\n}\n\nfunction nativeValidationMessage(control: FormControl): string | null {\n if (typeof control.checkValidity !== \"function\") return null;\n return control.checkValidity()\n ? null\n : control.validationMessage || \"Invalid value\";\n}\n\nfunction readControlValue(\n control: FormControl,\n previous: unknown,\n form: HTMLFormElement | null,\n): unknown {\n if (isInput(control)) {\n if (control.type === \"checkbox\") {\n if (Array.isArray(previous)) {\n return controlsOf(form)\n .filter((item) => isInput(item) && item.type === \"checkbox\" &&\n item.name === control.name && item.checked)\n .map((item) => (item as HTMLInputElement).value);\n }\n return control.checked;\n }\n if (control.type === \"radio\") return control.checked ? control.value : previous;\n if (control.type === \"number\" || control.type === \"range\") {\n return control.value === \"\" ? \"\" : control.valueAsNumber;\n }\n if (control.type === \"file\") {\n const files = Array.from(control.files ?? []);\n return control.multiple ? files : files[0] ?? null;\n }\n }\n if (isSelect(control) && control.multiple) {\n return Array.from(control.selectedOptions, (option) => option.value);\n }\n return control.value;\n}\n\nfunction isInput(control: FormControl): control is HTMLInputElement {\n return String(control.tagName).toLowerCase() === \"input\";\n}\n\nfunction isSelect(control: FormControl): control is HTMLSelectElement {\n return String(control.tagName).toLowerCase() === \"select\";\n}\n\nfunction cloneValues<V extends FormValues>(value: V): V {\n return Object.fromEntries(\n Object.entries(value).map(([key, item]) => [\n key,\n Array.isArray(item) ? [...item] : item,\n ]),\n ) as V;\n}\n\nfunction sameValues(a: FormValues, b: FormValues): boolean {\n const keys = new Set([...Object.keys(a), ...Object.keys(b)]);\n for (const key of keys) {\n const left = a[key];\n const right = b[key];\n if (Array.isArray(left) && Array.isArray(right)) {\n if (left.length !== right.length || left.some((item, i) => !Object.is(item, right[i]))) {\n return false;\n }\n } else if (!Object.is(left, right)) {\n return false;\n }\n }\n return true;\n}\n\nfunction withoutKey<T extends Record<string, unknown>>(value: T, key: string): T {\n const next = { ...value };\n delete next[key];\n return next;\n}\n"]}
|
package/dist/src/head.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"head.d.ts","sourceRoot":"","sources":["../../src/head.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAK1C,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CA0D9C"}
|
package/dist/src/head.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
* For strict static HTML + SPA navigation: also mark static head tags with
|
|
16
16
|
* `data-mado-head="static"`, then the first applyHead removes and replaces them.
|
|
17
17
|
*/
|
|
18
|
+
import { serializeJsonForScript } from "./json.js";
|
|
18
19
|
const MARK = "data-mado-head";
|
|
19
20
|
export function applyHead(meta) {
|
|
20
21
|
// 1) remove our previous tags
|
|
@@ -71,7 +72,7 @@ export function applyHead(meta) {
|
|
|
71
72
|
const script = document.createElement("script");
|
|
72
73
|
script.type = "application/ld+json";
|
|
73
74
|
script.setAttribute(MARK, "");
|
|
74
|
-
script.textContent =
|
|
75
|
+
script.textContent = serializeJsonForScript(meta.jsonLd);
|
|
75
76
|
document.head.appendChild(script);
|
|
76
77
|
}
|
|
77
78
|
}
|
package/dist/src/head.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"head.js","sourceRoot":"","sources":["../../src/head.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"head.js","sourceRoot":"","sources":["../../src/head.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAE9B,MAAM,UAAU,SAAS,CAAC,IAAc;IACtC,8BAA8B;IAC9B,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QAC7D,EAAE,CAAC,MAAM,EAAE,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,CAAC,KAAK;QAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAE5C,6BAA6B;IAC7B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,UAAU,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,UAAU,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,QAAQ;IACR,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACnB,IAAI,EAAE,CAAC,KAAK;YAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,IAAI,EAAE,CAAC,WAAW;YAChB,UAAU,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACtE,IAAI,EAAE,CAAC,KAAK;YAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,IAAI,EAAE,CAAC,IAAI;YAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,EAAE,CAAC,GAAG;YAAE,UAAU,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,wCAAwC;IACxC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;QACzB,UAAU,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;QACpE,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK;YACtB,UAAU,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAM,EAAE,CAAC,CAAC;QACxE,IAAI,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW;YAClC,UAAU,CAAC;gBACT,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAY;aAC3C,CAAC,CAAC;QACL,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK;YACtB,UAAU,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,oBAAoB;IACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;QAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/C,oBAAoB;IACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;QAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE/C,0BAA0B;IAC1B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,GAAG,qBAAqB,CAAC;QACpC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9B,MAAM,CAAC,WAAW,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAInB;IACC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI;QAAE,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,KAAK,CAAC,QAAQ;QAAE,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACjE,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,UAAU,CAAC,KAAuD;IACzE,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC3C,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;IACpB,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,QAAQ;QAAE,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAClD,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC","sourcesContent":["/**\n * Applying HeadMeta to document.<head> in SPA runtime.\n *\n * Approach: we mark all tags we create with the `data-mado-head` attribute.\n * On the next `applyHead` we first remove all ours, then insert the new ones.\n * Existing meta from static HTML (without `data-mado-head`) — we don't touch,\n * but they won't interfere: duplicates in <head> are valid.\n *\n * If HTML was snapshotted, meta+ld from page.head() are already there.\n * On first takeover we either skip applyHead, or mark static tags as not ours.\n * Client-side apply will add its own data-mado-head copies, and the old static\n * ones remain for SEO caching without any negative effect\n * (canonical, jsonLd — don't depend on count).\n *\n * For strict static HTML + SPA navigation: also mark static head tags with\n * `data-mado-head=\"static\"`, then the first applyHead removes and replaces them.\n */\n\nimport type { HeadMeta } from \"./page.js\";\nimport { serializeJsonForScript } from \"./json.js\";\n\nconst MARK = \"data-mado-head\";\n\nexport function applyHead(meta: HeadMeta): void {\n // 1) remove our previous tags\n for (const el of document.head.querySelectorAll(`[${MARK}]`)) {\n el.remove();\n }\n\n // 2) title — separately\n if (meta.title) document.title = meta.title;\n\n // 3) description / canonical\n if (meta.description) {\n upsertMeta({ name: \"description\", content: meta.description });\n }\n if (meta.canonical) {\n upsertLink({ rel: \"canonical\", href: meta.canonical });\n }\n\n // 4) OG\n if (meta.og) {\n const og = meta.og;\n if (og.title) upsertMeta({ property: \"og:title\", content: og.title });\n if (og.description)\n upsertMeta({ property: \"og:description\", content: og.description });\n if (og.image) upsertMeta({ property: \"og:image\", content: og.image });\n if (og.type) upsertMeta({ property: \"og:type\", content: og.type });\n if (og.url) upsertMeta({ property: \"og:url\", content: og.url });\n }\n\n // 5) Twitter (inherits og.* if not set)\n if (meta.twitter || meta.og) {\n const tw = meta.twitter ?? {};\n const og = meta.og ?? {};\n upsertMeta({ name: \"twitter:card\", content: tw.card ?? \"summary\" });\n if (tw.title ?? og.title)\n upsertMeta({ name: \"twitter:title\", content: tw.title ?? og.title! });\n if (tw.description ?? og.description)\n upsertMeta({\n name: \"twitter:description\",\n content: tw.description ?? og.description!,\n });\n if (tw.image ?? og.image)\n upsertMeta({ name: \"twitter:image\", content: tw.image ?? og.image! });\n }\n\n // 6) Arbitrary meta\n for (const m of meta.meta ?? []) upsertMeta(m);\n\n // 7) Arbitrary link\n for (const l of meta.link ?? []) upsertLink(l);\n\n // 8) JSON-LD (Schema.org)\n if (meta.jsonLd != null) {\n const script = document.createElement(\"script\");\n script.type = \"application/ld+json\";\n script.setAttribute(MARK, \"\");\n script.textContent = serializeJsonForScript(meta.jsonLd);\n document.head.appendChild(script);\n }\n}\n\nfunction upsertMeta(attrs: {\n name?: string;\n property?: string;\n content: string;\n}) {\n const tag = document.createElement(\"meta\");\n if (attrs.name) tag.setAttribute(\"name\", attrs.name);\n if (attrs.property) tag.setAttribute(\"property\", attrs.property);\n tag.setAttribute(\"content\", attrs.content);\n tag.setAttribute(MARK, \"\");\n document.head.appendChild(tag);\n}\n\nfunction upsertLink(attrs: { rel: string; href: string; hreflang?: string }) {\n const tag = document.createElement(\"link\");\n tag.rel = attrs.rel;\n tag.href = attrs.href;\n if (attrs.hreflang) tag.hreflang = attrs.hreflang;\n tag.setAttribute(MARK, \"\");\n document.head.appendChild(tag);\n}\n"]}
|
|
@@ -117,3 +117,4 @@ export declare function bindChild(st: ChildState, value: unknown, disposers: Dis
|
|
|
117
117
|
*/
|
|
118
118
|
export declare function bindAttr(el: Element, spec: AttrBindingSpec, values: readonly unknown[], disposers: Disposer[]): void;
|
|
119
119
|
export {};
|
|
120
|
+
//# sourceMappingURL=bindings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bindings.d.ts","sourceRoot":"","sources":["../../../src/html/bindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/html/bindings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/html/bindings.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Bindings: how values end up in DOM nodes after template cloning.\n * All binding types are described in one place so that adding\n * a new one (e.g. `??=` or `style.<prop>`) is intentional and visible.\n *\n * Split into two groups:\n * - bindChild — child binding (text / node / array / TemplateResult / each)\n * - bindAttr — attribute / event / DOM property / boolean\n *\n * Reactivity: if a value is a function (signal/computed), we wrap it\n * in effect(); the returned Disposer goes into the instance's disposers list\n * so that on update()/dispose() everything is properly cleaned up.\n */\n\nimport { effect, type Disposer } from \"../signal.js\";\nimport { isEachResult, type EachKey, type EachResult } from \"../each.js\";\nimport { warnOnce } from \"../diagnostics.js\";\nimport type { AttrBindingSpec } from \"./parser.js\";\nimport {\n isTemplateResult,\n type TemplateResult,\n type InstantiatedTemplate,\n} from \"./template-types.js\";\n\n// ---------- Directives ----------\n\ntype DirectiveKind = \"unsafeHTML\" | \"ref\" | \"classMap\" | \"styleMap\";\n\ninterface DirectiveBase {\n readonly _madoDirective: DirectiveKind;\n}\n\nexport interface UnsafeHTMLDirective extends DirectiveBase {\n readonly _madoDirective: \"unsafeHTML\";\n readonly value: string;\n}\n\nexport type RefCallback<T extends Element = Element> = (\n el: T | null,\n) => void | Disposer;\n\nexport interface RefDirective<T extends Element = Element>\n extends DirectiveBase {\n readonly _madoDirective: \"ref\";\n readonly callback: RefCallback<T>;\n}\n\nexport type ClassMap = Record<string, unknown>;\n\nexport interface ClassMapDirective extends DirectiveBase {\n readonly _madoDirective: \"classMap\";\n readonly value: ClassMap;\n}\n\nexport type StyleMap = Record<string, string | number | null | undefined | false>;\n\nexport interface StyleMapDirective extends DirectiveBase {\n readonly _madoDirective: \"styleMap\";\n readonly value: StyleMap;\n}\n\nexport type HtmlDirective =\n | UnsafeHTMLDirective\n | RefDirective\n | ClassMapDirective\n | StyleMapDirective;\n\n/**\n * Render a trusted HTML string as DOM nodes in child position.\n *\n * This intentionally does not sanitize. Only pass strings you own or have\n * sanitized elsewhere.\n */\nexport function unsafeHTML(value: string): UnsafeHTMLDirective {\n return { _madoDirective: \"unsafeHTML\", value };\n}\n\n/**\n * Call `callback(element)` when the element is bound, and clean it up on\n * disposal. Use as `ref=${ref((el) => { ... })}`.\n */\nexport function ref<T extends Element = Element>(\n callback: RefCallback<T>,\n): RefDirective<T> {\n return { _madoDirective: \"ref\", callback };\n}\n\n/** Toggle CSS classes by object keys. Truthy values add, falsy values remove. */\nexport function classMap(value: ClassMap): ClassMapDirective {\n return { _madoDirective: \"classMap\", value };\n}\n\n/** Apply inline styles from an object and remove stale keys on updates. */\nexport function styleMap(value: StyleMap): StyleMapDirective {\n return { _madoDirective: \"styleMap\", value };\n}\n\nexport function isHtmlDirective(v: unknown): v is HtmlDirective {\n return (\n typeof v === \"object\" &&\n v !== null &&\n typeof (v as { _madoDirective?: unknown })._madoDirective === \"string\"\n );\n}\n\n// ---------- Child binding ----------\n\n/**\n * Entry for a node in keyed-each: reference to the template instance\n * and its top-level DOM nodes. Stored in ChildState.eachEntries\n * between updates so reconciliation can reuse DOM.\n */\ninterface EachEntry {\n inst: InstantiatedTemplate;\n /** Top-level nodes that must move during reorder. */\n nodes: Node[];\n}\n\nexport interface ChildState {\n anchor: Comment;\n /**\n * Current content. Used only by the normal branch (non-each).\n * each uses eachEntries instead.\n */\n current: Node[];\n /**\n * Nested TemplateResult instances created by the normal branch.\n * They must be disposed before replacement/removal because they can own\n * deeper child bindings that insert additional DOM nodes.\n */\n currentInsts: InstantiatedTemplate[];\n /**\n * Whether each mode is currently active. Switching between each and normal\n * mode first clears the previous content.\n */\n isEach: boolean;\n /** Current entries by key. */\n eachEntries: Map<EachKey, EachEntry>;\n /** Current key order in the DOM before the anchor. */\n eachOrder: EachKey[];\n}\n\n/**\n * Ownership invariant:\n * - ChildState owns everything inserted before its anchor for that binding.\n * - Plain nodes are tracked in current.\n * - Nested TemplateResult instances are tracked in currentInsts and must be\n * dispose()'d before removing current nodes, because they can own deeper\n * anchors/effects/nodes not visible to the parent instance.\n * - each() owns its own InstantiatedTemplate entries through eachEntries.\n */\n\nexport function createChildState(anchor: Comment): ChildState {\n return {\n anchor,\n current: [],\n currentInsts: [],\n isEach: false,\n eachEntries: new Map(),\n eachOrder: [],\n };\n}\n\nexport function disposeChildState(st: ChildState): void {\n if (st.isEach) {\n for (const entry of st.eachEntries.values()) entry.inst.dispose();\n st.eachEntries.clear();\n st.eachOrder = [];\n st.isEach = false;\n }\n clearCurrent(st);\n}\n\n/**\n * Bind a value to a child binding. If value is a function (signal),\n * subscribe via effect(); otherwise render once.\n *\n * instantiateFn is passed as a parameter to avoid circular\n * dependency bindings ↔ template.\n */\nexport function bindChild(\n st: ChildState,\n value: unknown,\n disposers: Disposer[],\n instantiateFn: (r: TemplateResult) => InstantiatedTemplate,\n): void {\n if (typeof value === \"function\") {\n const d = effect(() => {\n renderChild(st, (value as () => unknown)(), instantiateFn);\n });\n disposers.push(d);\n return;\n }\n renderChild(st, value, instantiateFn);\n}\n\nfunction renderChild(\n st: ChildState,\n value: unknown,\n instantiateFn: (r: TemplateResult) => InstantiatedTemplate,\n): void {\n // each result: apply keyed reconciliation\n if (isEachResult(value)) {\n applyEach(st, value, instantiateFn);\n return;\n }\n\n // switching from each mode to normal: remove each entries\n if (st.isEach) {\n for (const entry of st.eachEntries.values()) entry.inst.dispose();\n st.eachEntries.clear();\n st.eachOrder = [];\n st.isEach = false;\n }\n\n // Reuse fast-path: when the previous content was exactly one nested template\n // instance and the new value is a TemplateResult with the SAME strings, patch\n // it in place via update() instead of clear+instantiate. This mirrors the\n // reuse already done by each() and render(), and preserves DOM identity (and\n // therefore focus / <input> value / listeners) inside conditional blocks.\n // The length check guards against extra sibling nodes (e.g. a previous array\n // value), in which case a full rebuild is still required. (FABLE_REPORT #3)\n if (\n isTemplateResult(value) &&\n st.currentInsts.length === 1 &&\n st.current.length === st.currentInsts[0]!.nodes.length &&\n st.currentInsts[0]!._strings === value.strings\n ) {\n st.currentInsts[0]!.update(value.values);\n return;\n }\n\n // normal branch: clear + recreate\n clearCurrent(st);\n\n\n const parent = st.anchor.parentNode;\n if (!parent) return;\n\n const append = (node: Node) => {\n parent.insertBefore(node, st.anchor);\n st.current.push(node);\n };\n\n const handle = (v: unknown) => {\n if (v == null || v === false || v === true) return;\n if (v instanceof Node) {\n append(v);\n return;\n }\n if (isHtmlDirective(v)) {\n if (v._madoDirective !== \"unsafeHTML\") {\n throw new Error(\n `[mado] ${v._madoDirective} directive cannot be used in child position.`,\n );\n }\n appendUnsafeHTML(st, v.value);\n return;\n }\n if (isTemplateResult(v)) {\n const inst = instantiateFn(v);\n const inserted = [...inst.fragment.childNodes];\n parent.insertBefore(inst.fragment, st.anchor);\n st.currentInsts.push(inst);\n for (const n of inserted) st.current.push(n);\n return;\n }\n if (Array.isArray(v)) {\n for (const item of v) handle(item);\n return;\n }\n append(document.createTextNode(String(v)));\n };\n\n handle(value);\n}\n\nfunction appendUnsafeHTML(st: ChildState, value: string): void {\n const parent = st.anchor.parentNode;\n if (!parent) return;\n\n const tpl = document.createElement(\"template\");\n tpl.innerHTML = value;\n const nodes = [...tpl.content.childNodes];\n parent.insertBefore(tpl.content, st.anchor);\n st.current.push(...nodes);\n}\n\nfunction clearCurrent(st: ChildState): void {\n for (const inst of st.currentInsts.splice(0)) inst.dispose();\n for (const n of st.current) n.parentNode?.removeChild(n);\n st.current = [];\n}\n\n/**\n * Keyed reconciliation: apply an EachResult to a ChildState.\n *\n * Algorithm (simple and readable, O(n) by keys):\n * 1. If switched from \"normal\" mode — first clear old content.\n * 2. Build new Map nextEntries: for each item\n * - if key existed — reuse entry, call inst.update(values).\n * - if key is new — instantiate(template).\n * 3. Remove entries for keys no longer in the new list.\n * 4. Place nodes in the correct order via insertBefore(node, refNode).\n * refNode is determined by position: iterate from the end to start,\n * ref = top node of the next entry (or st.anchor for the last).\n */\nfunction applyEach(\n st: ChildState,\n result: EachResult,\n instantiateFn: (r: TemplateResult) => InstantiatedTemplate,\n): void {\n // Switching from the normal branch to each: clear previous content first.\n if (!st.isEach && (st.current.length > 0 || st.currentInsts.length > 0)) {\n clearCurrent(st);\n }\n st.isEach = true;\n\n const parent = st.anchor.parentNode;\n if (!parent) return;\n\n const items = result.items;\n const keyOf = result.keyOf as (item: unknown, index: number) => EachKey;\n const renderFn = result.render as (\n item: unknown,\n index: number,\n ) => TemplateResult;\n\n // 1) Build new keys and entries.\n const newEntries = new Map<EachKey, EachEntry>();\n const newOrder: EachKey[] = [];\n const seen = new Set<EachKey>();\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n let key = keyOf(item, i);\n if (seen.has(key)) {\n warnOnce(\n \"each-duplicate-key\",\n `each() received duplicate key \"${String(key)}\". Duplicate keys ` +\n \"usually mean the list data is not uniquely identifiable; Mado will \" +\n \"fall back to a positional suffix for this duplicate.\",\n );\n key = `${String(key)}__dup_${i}`;\n }\n seen.add(key);\n\n const tpl = renderFn(item, i);\n const prev = st.eachEntries.get(key);\n\n if (prev) {\n // same key → try updating the same instance.\n // If the template changed (different strings) — recreate.\n const sameTemplate = prev.inst._strings === tpl.strings;\n if (sameTemplate) {\n prev.inst.update(tpl.values);\n newEntries.set(key, prev);\n } else {\n prev.inst.dispose();\n const inst = instantiateFn(tpl);\n const nodes = [...inst.fragment.childNodes];\n // The fragment is not inserted yet; reorder below will place it.\n newEntries.set(key, { inst, nodes });\n }\n } else {\n const inst = instantiateFn(tpl);\n const nodes = [...inst.fragment.childNodes];\n newEntries.set(key, { inst, nodes });\n }\n newOrder.push(key);\n }\n\n // 2) remove entries for keys no longer present\n for (const [oldKey, oldEntry] of st.eachEntries) {\n if (!newEntries.has(oldKey)) {\n oldEntry.inst.dispose();\n }\n }\n\n // 3) place nodes in the correct order.\n // Iterate from the end: for each entry place(node, ref),\n // where ref is the first node of the next entry, or st.anchor for the last.\n //\n // Prefer Node.prototype.moveBefore (Chrome 133+) when available: it relocates\n // a connected node WITHOUT firing disconnectedCallback/connectedCallback, so\n // custom-element state is preserved for free. insertBefore is the fallback —\n // it fires a disconnect→connect pair on a move, but MadoElement defers its\n // teardown to a microtask and cancels it on the same-tick reconnect, so a\n // keyed reorder still preserves component state. (FABLE_REPORT.md finding #1)\n const moveBefore = (\n parent as unknown as {\n moveBefore?: (node: Node, ref: Node | null) => void;\n }\n ).moveBefore;\n let refNode: Node = st.anchor;\n for (let i = newOrder.length - 1; i >= 0; i--) {\n const key = newOrder[i]!;\n const entry = newEntries.get(key)!;\n // Insert entry nodes before refNode in the correct order.\n // Go from last to first so every node ends up before refNode in order.\n for (let j = entry.nodes.length - 1; j >= 0; j--) {\n const n = entry.nodes[j]!;\n if (n.parentNode !== parent || n.nextSibling !== refNode) {\n // moveBefore only applies to a node already connected under `parent`;\n // for fresh nodes (not yet in the document) it would throw, so guard on\n // current connectivity and fall back to insertBefore otherwise.\n if (moveBefore && n.parentNode === parent) {\n moveBefore.call(parent, n, refNode);\n } else {\n parent.insertBefore(n, refNode);\n }\n }\n refNode = n;\n }\n }\n\n\n st.eachEntries = newEntries;\n st.eachOrder = newOrder;\n}\n\n// ---------- Attribute binding ----------\n\n/**\n * Apply a value to an attr binding. Route by prefix:\n * @event → addEventListener\n * .prop → el[prop] = value\n * ?attr → toggleAttribute by truthy/falsy\n * otherwise → setAttribute / removeAttribute (with multi-part support)\n */\nexport function bindAttr(\n el: Element,\n spec: AttrBindingSpec,\n values: readonly unknown[],\n disposers: Disposer[],\n): void {\n const name = spec.name;\n const isMulti = spec.isMulti;\n\n // event — single only, no interpolation (meaningless)\n if (name.startsWith(\"@\")) {\n if (isMulti) {\n throw new Error(\n `[mado] event binding ${name} does not support interpolation.`,\n );\n }\n const evt = name.slice(1);\n const handler = values[spec.slots[0]!] as EventListener;\n el.addEventListener(evt, handler);\n disposers.push(() => el.removeEventListener(evt, handler));\n return;\n }\n\n // .prop — DOM property (single only)\n if (name.startsWith(\".\")) {\n if (isMulti) {\n throw new Error(\n `[mado] property binding ${name} does not support interpolation.`,\n );\n }\n const prop = name.slice(1);\n const v = values[spec.slots[0]!];\n applyReactive(v, disposers, (vv) => {\n (el as unknown as Record<string, unknown>)[prop] = vv;\n });\n return;\n }\n\n // ?attr — boolean attribute (single only)\n if (name.startsWith(\"?\")) {\n if (isMulti) {\n throw new Error(\n `[mado] boolean binding ${name} does not support interpolation.`,\n );\n }\n const attrName = name.slice(1);\n const v = values[spec.slots[0]!];\n applyReactive(v, disposers, (vv) => {\n if (vv) el.setAttribute(attrName, \"\");\n else el.removeAttribute(attrName);\n });\n return;\n }\n\n // ordinary attribute\n if (!isMulti) {\n warnBooleanAttrIfNeeded(name);\n const v = values[spec.slots[0]!];\n bindSingleAttr(el, name, v, disposers);\n return;\n }\n\n // multi-part: assemble from spec.strings + values[spec.slots[i]].\n // If at least one part is a function (signal), we need an effect.\n const hasReactive = spec.slots.some((s) => typeof values[s] === \"function\");\n const compute = (): string => {\n let out = spec.strings[0] ?? \"\";\n for (let i = 0; i < spec.slots.length; i++) {\n const v = values[spec.slots[i]!];\n const resolved = typeof v === \"function\" ? (v as () => unknown)() : v;\n if (isHtmlDirective(resolved)) {\n throw new Error(\n `[mado] ${resolved._madoDirective} directive cannot be used in a multi-part attribute.`,\n );\n }\n out += resolved == null ? \"\" : String(resolved);\n out += spec.strings[i + 1] ?? \"\";\n }\n return out;\n };\n if (hasReactive) {\n const d = effect(() => el.setAttribute(name, compute()));\n disposers.push(d);\n } else {\n el.setAttribute(name, compute());\n }\n}\n\nfunction bindSingleAttr(\n el: Element,\n name: string,\n value: unknown,\n disposers: Disposer[],\n): void {\n let cleanup: Disposer | undefined;\n let lastPlainAttr = false;\n const apply = (vv: unknown) => {\n cleanup?.();\n if (lastPlainAttr && isHtmlDirective(vv)) {\n clearPlainAttr(el, name);\n }\n cleanup = applySingleAttrValue(el, name, vv);\n lastPlainAttr = !isHtmlDirective(vv);\n };\n\n if (typeof value === \"function\") {\n const d = effect(() => apply((value as () => unknown)()));\n disposers.push(() => {\n d();\n cleanup?.();\n cleanup = undefined;\n });\n return;\n }\n\n apply(value);\n if (cleanup) {\n disposers.push(() => {\n cleanup?.();\n cleanup = undefined;\n });\n }\n}\n\nfunction clearPlainAttr(el: Element, name: string): void {\n if (name === \"class\") {\n el.classList.remove(...Array.from(el.classList));\n el.removeAttribute(name);\n return;\n }\n el.removeAttribute(name);\n}\n\nfunction applySingleAttrValue(\n el: Element,\n name: string,\n value: unknown,\n): Disposer | undefined {\n if (isHtmlDirective(value)) {\n return applyAttrDirective(el, name, value);\n }\n\n if (value == null || value === false) el.removeAttribute(name);\n else el.setAttribute(name, value === true ? \"\" : String(value));\n return undefined;\n}\n\nfunction applyAttrDirective(\n el: Element,\n name: string,\n directive: HtmlDirective,\n): Disposer | undefined {\n if (directive._madoDirective === \"ref\") {\n if (name !== \"ref\") {\n throw new Error(`[mado] ref() directive must be used as ref=\\${ref(...)}.`);\n }\n el.removeAttribute(name);\n const dispose = directive.callback(el);\n return () => {\n if (typeof dispose === \"function\") dispose();\n directive.callback(null);\n };\n }\n\n if (directive._madoDirective === \"classMap\") {\n if (name !== \"class\") {\n throw new Error(\n `[mado] classMap() directive must be used as class=\\${classMap(...)}.`,\n );\n }\n return applyClassMap(el, directive.value);\n }\n\n if (directive._madoDirective === \"styleMap\") {\n if (name !== \"style\") {\n throw new Error(\n `[mado] styleMap() directive must be used as style=\\${styleMap(...)}.`,\n );\n }\n return applyStyleMap(el, directive.value);\n }\n\n throw new Error(\n \"[mado] unsafeHTML() directive can only be used in child position.\",\n );\n}\n\nfunction applyClassMap(el: Element, value: ClassMap): Disposer {\n const applied: string[] = [];\n for (const [className, enabled] of Object.entries(value)) {\n if (!className || !enabled) continue;\n el.classList.add(...className.trim().split(/\\s+/).filter(Boolean));\n applied.push(className);\n }\n\n return () => {\n for (const className of applied) {\n el.classList.remove(...className.trim().split(/\\s+/).filter(Boolean));\n }\n };\n}\n\nfunction applyStyleMap(el: Element, value: StyleMap): Disposer {\n const style = (el as Element & { style?: CSSStyleDeclaration }).style;\n const applied: string[] = [];\n if (!style) return () => {};\n\n for (const [rawName, rawValue] of Object.entries(value)) {\n const prop = toCssPropertyName(rawName);\n if (!prop) continue;\n if (rawValue == null || rawValue === false) {\n style.removeProperty(prop);\n continue;\n }\n style.setProperty(prop, String(rawValue));\n applied.push(prop);\n }\n\n return () => {\n for (const prop of applied) style.removeProperty(prop);\n };\n}\n\nfunction toCssPropertyName(name: string): string {\n if (name.startsWith(\"--\")) return name;\n return name.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);\n}\n\nfunction warnBooleanAttrIfNeeded(name: string): void {\n if (name !== \"disabled\" && name !== \"checked\") return;\n warnOnce(\n `boolean-attr-${name}`,\n `Use ?${name}= for a boolean attribute. ${name}=\\${...} sets a string attribute and often behaves incorrectly.`,\n );\n}\n\n/** Universal wrapper: if a function — subscribe, otherwise apply once. */\nfunction applyReactive(\n value: unknown,\n disposers: Disposer[],\n apply: (v: unknown) => void,\n): void {\n if (typeof value === \"function\") {\n const d = effect(() => apply((value as () => unknown)()));\n disposers.push(d);\n } else {\n apply(value);\n }\n}\n"]}
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
* For every `${}` slot we know the current context: text, attribute,
|
|
12
12
|
* attribute value, comment, or raw text.
|
|
13
13
|
* 2. Build the final HTML string with markers:
|
|
14
|
-
* -
|
|
15
|
-
* -
|
|
14
|
+
* - opaque comments for child slots
|
|
15
|
+
* - opaque data attributes for attribute slots
|
|
16
16
|
* and keep a parallel BindingSpec list that describes each slot.
|
|
17
17
|
* 3. Parse HTML through `<template>.innerHTML`, then walk() finds markers in
|
|
18
18
|
* the DOM and fills BindingSpec.path and childIndex. Marker attributes are
|
|
@@ -20,8 +20,6 @@
|
|
|
20
20
|
* 4. Cache by strings identity. TemplateStringsArray is stable for the same
|
|
21
21
|
* tagged literal between calls.
|
|
22
22
|
*/
|
|
23
|
-
export declare const CHILD_MARKER_PREFIX = "mado$";
|
|
24
|
-
export declare const ATTR_MARKER_PREFIX = "data-mado-bind-";
|
|
25
23
|
export interface ChildBindingSpec {
|
|
26
24
|
type: "child";
|
|
27
25
|
id: number;
|
|
@@ -62,3 +60,4 @@ export declare function parseTemplate(strings: TemplateStringsArray): ParsedTemp
|
|
|
62
60
|
* a template to resolve BindingSpec.path → concrete Node in the clone.
|
|
63
61
|
*/
|
|
64
62
|
export declare function resolvePath(root: Node, path: number[]): Node;
|
|
63
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/html/parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AA6BH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,eAAe,CAAC;AAE7D,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AA6ED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc,CAkd3E;AAyED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAI5D"}
|
package/dist/src/html/parser.js
CHANGED
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
* For every `${}` slot we know the current context: text, attribute,
|
|
12
12
|
* attribute value, comment, or raw text.
|
|
13
13
|
* 2. Build the final HTML string with markers:
|
|
14
|
-
* -
|
|
15
|
-
* -
|
|
14
|
+
* - opaque comments for child slots
|
|
15
|
+
* - opaque data attributes for attribute slots
|
|
16
16
|
* and keep a parallel BindingSpec list that describes each slot.
|
|
17
17
|
* 3. Parse HTML through `<template>.innerHTML`, then walk() finds markers in
|
|
18
18
|
* the DOM and fills BindingSpec.path and childIndex. Marker attributes are
|
|
@@ -21,12 +21,32 @@
|
|
|
21
21
|
* tagged literal between calls.
|
|
22
22
|
*/
|
|
23
23
|
// ---------- Markers ----------
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Stable, template-specific marker token.
|
|
26
|
+
*
|
|
27
|
+
* The token must not be a predictable global counter because authored markup
|
|
28
|
+
* can contain similarly named attributes. It also cannot use randomness:
|
|
29
|
+
* child anchors survive static capture and must be byte-for-byte reproducible.
|
|
30
|
+
*/
|
|
31
|
+
function markerTokenFor(strings) {
|
|
32
|
+
let hash = 0x811c9dc5;
|
|
33
|
+
for (const part of strings) {
|
|
34
|
+
hash ^= part.length;
|
|
35
|
+
for (let index = 0; index < part.length; index++) {
|
|
36
|
+
hash = Math.imul(hash ^ part.charCodeAt(index), 0x01000193);
|
|
37
|
+
}
|
|
38
|
+
hash = Math.imul(hash ^ 0xffff, 0x01000193);
|
|
39
|
+
}
|
|
40
|
+
return (hash >>> 0).toString(36);
|
|
41
|
+
}
|
|
26
42
|
// ---------- Cache ----------
|
|
27
43
|
const templateCache = new WeakMap();
|
|
28
44
|
// Tags inside which HTML is not parsed.
|
|
29
45
|
const RAW_TEXT_TAGS = new Set(["script", "style", "textarea", "title"]);
|
|
46
|
+
const VOID_ELEMENTS = new Set([
|
|
47
|
+
"area", "base", "br", "col", "embed", "hr", "img", "input", "link",
|
|
48
|
+
"meta", "param", "source", "track", "wbr",
|
|
49
|
+
]);
|
|
30
50
|
// SVG-only element names. If one of these is the TOP-LEVEL element of a
|
|
31
51
|
// template, the HTML parser (`<template>.innerHTML`) places it in the HTML
|
|
32
52
|
// namespace instead of the SVG namespace → an invisible element. Mado has no
|
|
@@ -70,10 +90,13 @@ export function parseTemplate(strings) {
|
|
|
70
90
|
let rawTagName = "";
|
|
71
91
|
let firstTagName = "";
|
|
72
92
|
let nextId = 0;
|
|
93
|
+
const markerToken = markerTokenFor(strings);
|
|
94
|
+
const childMarkerPrefix = `mado$${markerToken}$`;
|
|
95
|
+
const attrMarkerPrefix = `data-mado-bind-${markerToken}-`;
|
|
73
96
|
/** Creates a child binding and adds a marker to html. */
|
|
74
97
|
const emitChildMarker = (slot) => {
|
|
75
98
|
const id = nextId++;
|
|
76
|
-
html += `<!--${
|
|
99
|
+
html += `<!--${childMarkerPrefix}${id}-->`;
|
|
77
100
|
bindings.push({
|
|
78
101
|
type: "child",
|
|
79
102
|
id,
|
|
@@ -110,7 +133,7 @@ export function parseTemplate(strings) {
|
|
|
110
133
|
const escapedName = attr.rawName
|
|
111
134
|
.replace(/&/g, "&")
|
|
112
135
|
.replace(/"/g, """);
|
|
113
|
-
html += ` ${
|
|
136
|
+
html += ` ${attrMarkerPrefix}${id}="${escapedName}"`;
|
|
114
137
|
const parts = attr.valueParts.length > 0 ? attr.valueParts : ["", ""];
|
|
115
138
|
// single-part: the attribute is entirely defined by one slot
|
|
116
139
|
// (all static fragments are empty ⇒ value = just values[slot])
|
|
@@ -380,6 +403,13 @@ export function parseTemplate(strings) {
|
|
|
380
403
|
// ---------- SELF_CLOSE ----------
|
|
381
404
|
case "SELF_CLOSE": {
|
|
382
405
|
if (c === ">") {
|
|
406
|
+
const lower = tagName.toLowerCase();
|
|
407
|
+
if (!VOID_ELEMENTS.has(lower) &&
|
|
408
|
+
lower !== "svg" &&
|
|
409
|
+
!SVG_ONLY_TAGS.has(lower)) {
|
|
410
|
+
throw new Error(`[mado] <${tagName}/> is not self-closing in HTML. ` +
|
|
411
|
+
`Write <${tagName}></${tagName}> instead.`);
|
|
412
|
+
}
|
|
383
413
|
html += "/>";
|
|
384
414
|
state = "TEXT";
|
|
385
415
|
}
|
|
@@ -502,11 +532,17 @@ export function parseTemplate(strings) {
|
|
|
502
532
|
// 2) Parse the final HTML string through <template>.
|
|
503
533
|
const tpl = document.createElement("template");
|
|
504
534
|
tpl.innerHTML = html;
|
|
535
|
+
for (const nested of tpl.content.querySelectorAll("template")) {
|
|
536
|
+
if (containsMarker(nested.content, childMarkerPrefix, attrMarkerPrefix)) {
|
|
537
|
+
throw new Error("[mado] Dynamic slots inside <template> are not supported. " +
|
|
538
|
+
"Move the dynamic value outside <template> or render it after cloning.");
|
|
539
|
+
}
|
|
540
|
+
}
|
|
505
541
|
// 3) Walk content, find markers, fill path/childIndex for bindings.
|
|
506
542
|
const byId = new Map();
|
|
507
543
|
for (const b of bindings)
|
|
508
544
|
byId.set(b.id, b);
|
|
509
|
-
walk(tpl.content, [], byId);
|
|
545
|
+
walk(tpl.content, [], byId, childMarkerPrefix, attrMarkerPrefix);
|
|
510
546
|
const parsed = { template: tpl, bindings };
|
|
511
547
|
templateCache.set(strings, parsed);
|
|
512
548
|
return parsed;
|
|
@@ -517,16 +553,16 @@ export function parseTemplate(strings) {
|
|
|
517
553
|
* reach it from root) and `childIndex` (for child bindings — position
|
|
518
554
|
* of the placeholder comment among the parent's children).
|
|
519
555
|
*
|
|
520
|
-
*
|
|
556
|
+
* Internal marker attributes are removed from elements;
|
|
521
557
|
* marker comments remain — they serve as an "anchor" for child binding.
|
|
522
558
|
*/
|
|
523
|
-
function walk(node, path, byId) {
|
|
559
|
+
function walk(node, path, byId, childMarkerPrefix, attrMarkerPrefix) {
|
|
524
560
|
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
525
561
|
const el = node;
|
|
526
562
|
const toRemove = [];
|
|
527
563
|
for (const attr of [...el.attributes]) {
|
|
528
|
-
if (attr.name.startsWith(
|
|
529
|
-
const id = Number(attr.name.slice(
|
|
564
|
+
if (attr.name.startsWith(attrMarkerPrefix)) {
|
|
565
|
+
const id = Number(attr.name.slice(attrMarkerPrefix.length));
|
|
530
566
|
const b = byId.get(id);
|
|
531
567
|
if (b && b.type === "attr") {
|
|
532
568
|
b.path = [...path];
|
|
@@ -539,8 +575,8 @@ function walk(node, path, byId) {
|
|
|
539
575
|
}
|
|
540
576
|
if (node.nodeType === Node.COMMENT_NODE) {
|
|
541
577
|
const c = node;
|
|
542
|
-
if (c.data.startsWith(
|
|
543
|
-
const id = Number(c.data.slice(
|
|
578
|
+
if (c.data.startsWith(childMarkerPrefix)) {
|
|
579
|
+
const id = Number(c.data.slice(childMarkerPrefix.length));
|
|
544
580
|
const b = byId.get(id);
|
|
545
581
|
if (b && b.type === "child") {
|
|
546
582
|
// Path points to the parent; index is the node position among children.
|
|
@@ -551,8 +587,21 @@ function walk(node, path, byId) {
|
|
|
551
587
|
}
|
|
552
588
|
const children = node.childNodes;
|
|
553
589
|
for (let i = 0; i < children.length; i++) {
|
|
554
|
-
walk(children[i], [...path, i], byId);
|
|
590
|
+
walk(children[i], [...path, i], byId, childMarkerPrefix, attrMarkerPrefix);
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
function containsMarker(node, childMarkerPrefix, attrMarkerPrefix) {
|
|
594
|
+
if (node.nodeType === Node.COMMENT_NODE &&
|
|
595
|
+
node.data.startsWith(childMarkerPrefix))
|
|
596
|
+
return true;
|
|
597
|
+
if (node.nodeType === Node.ELEMENT_NODE &&
|
|
598
|
+
[...node.attributes].some((attr) => attr.name.startsWith(attrMarkerPrefix)))
|
|
599
|
+
return true;
|
|
600
|
+
for (const child of node.childNodes) {
|
|
601
|
+
if (containsMarker(child, childMarkerPrefix, attrMarkerPrefix))
|
|
602
|
+
return true;
|
|
555
603
|
}
|
|
604
|
+
return false;
|
|
556
605
|
}
|
|
557
606
|
/**
|
|
558
607
|
* Retrieve a node by path from root. Used when instantiating
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/html/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/html/parser.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tagged-template parser: a state machine that turns strings[] into\n * { template: HTMLTemplateElement, bindings: BindingSpec[] }\n *\n * It does not depend on the reactive runtime (signal/each/effect), only on DOM\n * APIs (document.createElement and walking Node trees). That makes it possible\n * to test the parser in isolation and reuse it for future static tooling.\n *\n * Algorithm:\n * 1. Walk strings[] char-by-char through an explicit finite state machine.\n * For every `${}` slot we know the current context: text, attribute,\n * attribute value, comment, or raw text.\n * 2. Build the final HTML string with markers:\n * - opaque comments for child slots\n * - opaque data attributes for attribute slots\n * and keep a parallel BindingSpec list that describes each slot.\n * 3. Parse HTML through `<template>.innerHTML`, then walk() finds markers in\n * the DOM and fills BindingSpec.path and childIndex. Marker attributes are\n * removed from elements; marker comments remain as child binding anchors.\n * 4. Cache by strings identity. TemplateStringsArray is stable for the same\n * tagged literal between calls.\n */\n\n// ---------- Markers ----------\n\n\n/**\n * Stable, template-specific marker token.\n *\n * The token must not be a predictable global counter because authored markup\n * can contain similarly named attributes. It also cannot use randomness:\n * child anchors survive static capture and must be byte-for-byte reproducible.\n */\nfunction markerTokenFor(strings: TemplateStringsArray): string {\n let hash = 0x811c9dc5;\n\n for (const part of strings) {\n hash ^= part.length;\n for (let index = 0; index < part.length; index++) {\n hash = Math.imul(hash ^ part.charCodeAt(index), 0x01000193);\n }\n hash = Math.imul(hash ^ 0xffff, 0x01000193);\n }\n\n return (hash >>> 0).toString(36);\n}\n\n// ---------- Binding description ----------\n\n\nexport interface ChildBindingSpec {\n type: \"child\";\n id: number;\n path: number[];\n childIndex: number;\n slot: number;\n}\n\n/** Attribute / event / property / boolean — can be multi-part. */\nexport interface AttrBindingSpec {\n type: \"attr\";\n id: number;\n path: number[];\n /** Attribute name: 'class', '@click', '.value', '?disabled'. */\n name: string;\n /**\n * If the attribute is single-part (the entire value = one ${}), then\n * slots = [N], strings = ['', ''], isMulti = false.\n * If multi-part, strings and slots alternate:\n * strings[0] + values[slots[0]] + strings[1] + ... + strings[k]\n */\n strings: string[];\n slots: number[];\n /** True if the value is assembled from multiple parts (static + slots). */\n isMulti: boolean;\n}\n\nexport type BindingSpec = ChildBindingSpec | AttrBindingSpec;\n\nexport interface ParsedTemplate {\n template: HTMLTemplateElement;\n bindings: BindingSpec[];\n}\n\n// ---------- Cache ----------\n\n\nconst templateCache = new WeakMap<TemplateStringsArray, ParsedTemplate>();\n\n// ---------- State machine ----------\n\n\ntype State =\n | \"TEXT\"\n | \"TAG_OPEN\" // after '<'\n | \"TAG_NAME\"\n | \"BEFORE_ATTR\" // inside a tag, between attributes\n | \"ATTR_NAME\"\n | \"AFTER_ATTR_NAME\" // after name, before '=' or next attribute\n | \"BEFORE_ATTR_VALUE\" // after '='\n | \"ATTR_VALUE_DQ\" // inside double quotes\n | \"ATTR_VALUE_SQ\" // inside single quotes\n | \"ATTR_VALUE_UNQ\" // unquoted\n | \"SELF_CLOSE\" // inside a tag, after '/'\n | \"COMMENT\" // inside <!-- ... -->\n | \"RAW_TEXT\" // inside <script>/<style>/<textarea>/<title>\n | \"CLOSE_TAG\"; // </name>\n\n// Tags inside which HTML is not parsed.\nconst RAW_TEXT_TAGS = new Set([\"script\", \"style\", \"textarea\", \"title\"]);\nconst VOID_ELEMENTS = new Set([\n \"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"link\",\n \"meta\", \"param\", \"source\", \"track\", \"wbr\",\n]);\n\n// SVG-only element names. If one of these is the TOP-LEVEL element of a\n// template, the HTML parser (`<template>.innerHTML`) places it in the HTML\n// namespace instead of the SVG namespace → an invisible element. Mado has no\n// `svg\\`\\`` tag yet, so we detect this and throw a clear error instead of\n// rendering nothing. A self-contained `<svg>…</svg>` is fine: the parser puts\n// everything under <svg> into the SVG namespace correctly. (FABLE_REPORT #7)\nconst SVG_ONLY_TAGS = new Set([\n \"circle\",\n \"clippath\",\n \"defs\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"lineargradient\",\n \"mask\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"radialgradient\",\n \"rect\",\n \"stop\",\n \"text\",\n \"tspan\",\n \"use\",\n]);\n\n\ninterface AttrAccum {\n /** Raw name as written in the template (including @/./? prefixes). */\n rawName: string;\n /** Value fragments between slots; for attributes without value — empty array. */\n valueParts: string[];\n /** Current fragment being collected (between slots). */\n current: string;\n /** Slots that appeared in this attribute's value. */\n slots: number[];\n /** Which quote opened the value: '\"' | \"'\" | '' (unquoted). */\n quote: string;\n /** Whether there was any value (=). Attributes without value are boolean. */\n hasValue: boolean;\n}\n\n/**\n * Main export: parse a tagged-template literal into a ready-to-instantiate\n * ParsedTemplate. Idempotent (cached by strings).\n */\nexport function parseTemplate(strings: TemplateStringsArray): ParsedTemplate {\n const cached = templateCache.get(strings);\n if (cached) return cached;\n\n const bindings: BindingSpec[] = [];\n let html = \"\";\n let state: State = \"TEXT\";\n let tagName = \"\";\n let attr: AttrAccum | null = null;\n let rawTagName = \"\";\n let firstTagName = \"\";\n let nextId = 0;\n const markerToken = markerTokenFor(strings);\n const childMarkerPrefix = `mado$${markerToken}$`;\n const attrMarkerPrefix = `data-mado-bind-${markerToken}-`;\n\n\n /** Creates a child binding and adds a marker to html. */\n const emitChildMarker = (slot: number): void => {\n const id = nextId++;\n html += `<!--${childMarkerPrefix}${id}-->`;\n bindings.push({\n type: \"child\",\n id,\n path: [], // filled during walk\n childIndex: 0,\n slot,\n });\n };\n\n /** Closes the current attribute and flushes it into html. */\n const flushAttr = (): void => {\n if (!attr) return;\n // Finalize the last fragment.\n if (attr.hasValue) {\n attr.valueParts.push(attr.current);\n }\n\n if (attr.slots.length === 0) {\n // Static attribute: emit as-is.\n if (!attr.hasValue) {\n html += \" \" + attr.rawName;\n } else if (attr.quote) {\n html +=\n \" \" + attr.rawName + \"=\" + attr.quote + attr.current + attr.quote;\n } else {\n html += \" \" + attr.rawName + \"=\" + attr.current;\n }\n } else {\n // dynamic attribute — place marker, write binding\n const id = nextId++;\n // escape name for safe writing into a data attribute value\n const escapedName = attr.rawName\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\");\n html += ` ${attrMarkerPrefix}${id}=\"${escapedName}\"`;\n const parts = attr.valueParts.length > 0 ? attr.valueParts : [\"\", \"\"];\n // single-part: the attribute is entirely defined by one slot\n // (all static fragments are empty ⇒ value = just values[slot])\n const isMulti = attr.slots.length > 1 || parts.some((p) => p !== \"\");\n bindings.push({\n type: \"attr\",\n id,\n path: [], // filled during walk\n name: attr.rawName,\n strings: parts,\n slots: attr.slots,\n isMulti,\n });\n }\n attr = null;\n };\n\n /** Processes one character of a template string. */\n const processChar = (c: string, i: number, s: string): void => {\n switch (state) {\n // ---------- TEXT ----------\n case \"TEXT\": {\n if (c === \"<\") {\n // Potential tag start.\n const next = s[i + 1] ?? \"\";\n if (/[a-zA-Z]/.test(next)) {\n html += \"<\";\n tagName = \"\";\n state = \"TAG_NAME\";\n } else if (next === \"/\") {\n html += \"<\";\n state = \"CLOSE_TAG\";\n } else if (next === \"!\") {\n // Check for <!--.\n if (s[i + 2] === \"-\" && s[i + 3] === \"-\") {\n html += \"<\";\n state = \"COMMENT\";\n // Every following char is copied into html as-is.\n } else {\n // <!doctype or <![CDATA[: treat as a normal tag-like block.\n html += \"<\";\n state = \"CLOSE_TAG\"; // Reuse CLOSE_TAG as \"wait until >\".\n }\n } else {\n // '<' does not open a tag here, e.g. \"a < b\".\n html += \"<\";\n }\n } else {\n html += c;\n }\n break;\n }\n\n // ---------- TAG_NAME ----------\n case \"TAG_NAME\": {\n if (/\\s/.test(c)) {\n html += c;\n // Tag name complete — remember the first element's tag (SVG guard).\n if (firstTagName === \"\") firstTagName = tagName.toLowerCase();\n state = \"BEFORE_ATTR\";\n } else if (c === \"/\") {\n if (firstTagName === \"\") firstTagName = tagName.toLowerCase();\n state = \"SELF_CLOSE\";\n } else if (c === \">\") {\n html += c;\n if (firstTagName === \"\") firstTagName = tagName.toLowerCase();\n if (RAW_TEXT_TAGS.has(tagName.toLowerCase())) {\n rawTagName = tagName.toLowerCase();\n state = \"RAW_TEXT\";\n } else {\n state = \"TEXT\";\n }\n } else {\n tagName += c;\n html += c;\n }\n break;\n }\n\n // ---------- BEFORE_ATTR ----------\n case \"BEFORE_ATTR\": {\n\n if (/\\s/.test(c)) {\n html += c;\n } else if (c === \"/\") {\n state = \"SELF_CLOSE\";\n } else if (c === \">\") {\n html += c;\n if (RAW_TEXT_TAGS.has(tagName.toLowerCase())) {\n rawTagName = tagName.toLowerCase();\n state = \"RAW_TEXT\";\n } else {\n state = \"TEXT\";\n }\n } else {\n // Start a new attribute accumulator.\n attr = {\n rawName: c,\n valueParts: [],\n current: \"\",\n slots: [],\n quote: \"\",\n hasValue: false,\n };\n state = \"ATTR_NAME\";\n }\n break;\n }\n\n // ---------- ATTR_NAME ----------\n case \"ATTR_NAME\": {\n if (c === \"=\") {\n attr!.hasValue = true;\n state = \"BEFORE_ATTR_VALUE\";\n } else if (/\\s/.test(c)) {\n state = \"AFTER_ATTR_NAME\";\n } else if (c === \"/\") {\n flushAttr();\n state = \"SELF_CLOSE\";\n } else if (c === \">\") {\n flushAttr();\n html += c;\n if (RAW_TEXT_TAGS.has(tagName.toLowerCase())) {\n rawTagName = tagName.toLowerCase();\n state = \"RAW_TEXT\";\n } else {\n state = \"TEXT\";\n }\n } else {\n attr!.rawName += c;\n }\n break;\n }\n\n // ---------- AFTER_ATTR_NAME ----------\n case \"AFTER_ATTR_NAME\": {\n if (/\\s/.test(c)) {\n // Keep skipping whitespace.\n } else if (c === \"=\") {\n attr!.hasValue = true;\n state = \"BEFORE_ATTR_VALUE\";\n } else if (c === \"/\") {\n flushAttr();\n html += \" \";\n state = \"SELF_CLOSE\";\n } else if (c === \">\") {\n flushAttr();\n html += c;\n if (RAW_TEXT_TAGS.has(tagName.toLowerCase())) {\n rawTagName = tagName.toLowerCase();\n state = \"RAW_TEXT\";\n } else {\n state = \"TEXT\";\n }\n } else {\n // This starts a new attribute; the previous one was boolean.\n flushAttr();\n html += \" \";\n attr = {\n rawName: c,\n valueParts: [],\n current: \"\",\n slots: [],\n quote: \"\",\n hasValue: false,\n };\n state = \"ATTR_NAME\";\n }\n break;\n }\n\n // ---------- BEFORE_ATTR_VALUE ----------\n case \"BEFORE_ATTR_VALUE\": {\n if (/\\s/.test(c)) {\n // skip\n } else if (c === '\"') {\n attr!.quote = '\"';\n state = \"ATTR_VALUE_DQ\";\n } else if (c === \"'\") {\n attr!.quote = \"'\";\n state = \"ATTR_VALUE_SQ\";\n } else if (c === \">\") {\n // Empty value through =\n flushAttr();\n html += c;\n state = \"TEXT\";\n } else {\n attr!.quote = \"\";\n attr!.current = c;\n state = \"ATTR_VALUE_UNQ\";\n }\n break;\n }\n\n // ---------- ATTR_VALUE_DQ ----------\n case \"ATTR_VALUE_DQ\": {\n if (c === '\"') {\n flushAttr();\n state = \"BEFORE_ATTR\";\n } else {\n attr!.current += c;\n }\n break;\n }\n\n // ---------- ATTR_VALUE_SQ ----------\n case \"ATTR_VALUE_SQ\": {\n if (c === \"'\") {\n flushAttr();\n state = \"BEFORE_ATTR\";\n } else {\n attr!.current += c;\n }\n break;\n }\n\n // ---------- ATTR_VALUE_UNQ ----------\n case \"ATTR_VALUE_UNQ\": {\n if (/\\s/.test(c)) {\n flushAttr();\n html += c;\n state = \"BEFORE_ATTR\";\n } else if (c === \">\") {\n flushAttr();\n html += c;\n if (RAW_TEXT_TAGS.has(tagName.toLowerCase())) {\n rawTagName = tagName.toLowerCase();\n state = \"RAW_TEXT\";\n } else {\n state = \"TEXT\";\n }\n } else if (c === \"/\" && s[i + 1] === \">\") {\n // Self-closing after an unquoted value: <x-icon name=${v}/>\n flushAttr();\n state = \"SELF_CLOSE\";\n } else {\n attr!.current += c;\n }\n break;\n }\n\n // ---------- SELF_CLOSE ----------\n case \"SELF_CLOSE\": {\n if (c === \">\") {\n const lower = tagName.toLowerCase();\n if (\n !VOID_ELEMENTS.has(lower) &&\n lower !== \"svg\" &&\n !SVG_ONLY_TAGS.has(lower)\n ) {\n throw new Error(\n `[mado] <${tagName}/> is not self-closing in HTML. ` +\n `Write <${tagName}></${tagName}> instead.`,\n );\n }\n html += \"/>\";\n state = \"TEXT\";\n } else if (/\\s/.test(c)) {\n // ignore\n } else {\n // Not self-closing: roll back into a normal attribute.\n html += \"/\";\n attr = {\n rawName: c,\n valueParts: [],\n current: \"\",\n slots: [],\n quote: \"\",\n hasValue: false,\n };\n state = \"ATTR_NAME\";\n }\n break;\n }\n\n // ---------- COMMENT ----------\n case \"COMMENT\": {\n html += c;\n // Look for '-->' by checking the last three html chars.\n if (\n html.endsWith(\"-->\") &&\n // Guard: it must be at least the length of \"<!---->\".\n html.length >= 7\n ) {\n state = \"TEXT\";\n }\n break;\n }\n\n // ---------- RAW_TEXT ----------\n case \"RAW_TEXT\": {\n html += c;\n // Look for the closing </tagName>.\n const closing = \"</\" + rawTagName;\n if (c === \">\" && html.toLowerCase().endsWith(closing + \">\")) {\n rawTagName = \"\";\n state = \"TEXT\";\n }\n break;\n }\n\n // ---------- CLOSE_TAG ----------\n case \"CLOSE_TAG\": {\n html += c;\n if (c === \">\") {\n state = \"TEXT\";\n }\n break;\n }\n }\n };\n\n /** Processes the slot ${...} between strings[i] and strings[i+1]. */\n const processSlot = (slot: number): void => {\n switch (state) {\n case \"TEXT\": {\n emitChildMarker(slot);\n break;\n }\n case \"TAG_NAME\":\n case \"BEFORE_ATTR\":\n case \"ATTR_NAME\":\n case \"AFTER_ATTR_NAME\": {\n throw new Error(\n `[mado] Dynamic slot in tag/attribute name position is not supported (state=${state}).`,\n );\n }\n case \"BEFORE_ATTR_VALUE\": {\n // <attr=${v}> without quotes: the slot is the whole value.\n attr!.quote = \"\";\n attr!.slots.push(slot);\n attr!.valueParts.push(attr!.current);\n attr!.current = \"\";\n state = \"ATTR_VALUE_UNQ\";\n break;\n }\n case \"ATTR_VALUE_DQ\":\n case \"ATTR_VALUE_SQ\":\n case \"ATTR_VALUE_UNQ\": {\n attr!.slots.push(slot);\n attr!.valueParts.push(attr!.current);\n attr!.current = \"\";\n break;\n }\n case \"COMMENT\": {\n // binding inside a static comment — ignore\n break;\n }\n case \"RAW_TEXT\": {\n // A ${} slot inside <textarea>/<title>/<style>/<script> cannot become a\n // child binding — the browser parses these as raw text, so the marker\n // comment would be literal text. Throw a clear, fixable error instead\n // of silently dropping the value. (FABLE_REPORT.md finding #7)\n throw new Error(rawTextSlotError(rawTagName));\n }\n\n case \"SELF_CLOSE\":\n case \"CLOSE_TAG\":\n case \"TAG_OPEN\": {\n throw new Error(\n `[mado] Dynamic slot in position ${state} is not supported.`,\n );\n }\n }\n };\n\n for (let i = 0; i < strings.length; i++) {\n const s = strings[i]!;\n for (let j = 0; j < s.length; j++) {\n processChar(s[j]!, j, s);\n }\n if (i < strings.length - 1) {\n processSlot(i);\n }\n }\n\n // SVG-only root guard: <template>.innerHTML parses an SVG child element\n // (e.g. <circle>, <path>) in the HTML namespace, producing an invisible\n // element. Detect it and throw a clear error instead of rendering nothing.\n if (SVG_ONLY_TAGS.has(firstTagName)) {\n throw new Error(\n `[mado] <${firstTagName}> cannot be a top-level template element — it ` +\n `renders in the wrong (HTML) namespace and stays invisible. Wrap SVG ` +\n `content in a single <svg>…</svg> template instead of nesting an SVG ` +\n `child as its own html\\`\\` fragment.`,\n );\n }\n\n // 2) Parse the final HTML string through <template>.\n const tpl = document.createElement(\"template\");\n tpl.innerHTML = html;\n\n for (const nested of tpl.content.querySelectorAll(\"template\")) {\n if (containsMarker(nested.content, childMarkerPrefix, attrMarkerPrefix)) {\n throw new Error(\n \"[mado] Dynamic slots inside <template> are not supported. \" +\n \"Move the dynamic value outside <template> or render it after cloning.\",\n );\n }\n }\n\n\n // 3) Walk content, find markers, fill path/childIndex for bindings.\n const byId = new Map<number, BindingSpec>();\n for (const b of bindings) byId.set(b.id, b);\n walk(tpl.content, [], byId, childMarkerPrefix, attrMarkerPrefix);\n\n const parsed: ParsedTemplate = { template: tpl, bindings };\n templateCache.set(strings, parsed);\n return parsed;\n}\n\n/**\n * Walk the template DOM: for each marker (attribute or comment)\n * find the corresponding BindingSpec and fill its `path` (how to\n * reach it from root) and `childIndex` (for child bindings — position\n * of the placeholder comment among the parent's children).\n *\n * Internal marker attributes are removed from elements;\n * marker comments remain — they serve as an \"anchor\" for child binding.\n */\nfunction walk(\n node: Node,\n path: number[],\n byId: Map<number, BindingSpec>,\n childMarkerPrefix: string,\n attrMarkerPrefix: string,\n): void {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node as Element;\n const toRemove: string[] = [];\n for (const attr of [...el.attributes]) {\n if (attr.name.startsWith(attrMarkerPrefix)) {\n const id = Number(attr.name.slice(attrMarkerPrefix.length));\n const b = byId.get(id);\n if (b && b.type === \"attr\") {\n b.path = [...path];\n }\n toRemove.push(attr.name);\n }\n }\n for (const n of toRemove) el.removeAttribute(n);\n }\n\n if (node.nodeType === Node.COMMENT_NODE) {\n const c = node as Comment;\n if (c.data.startsWith(childMarkerPrefix)) {\n const id = Number(c.data.slice(childMarkerPrefix.length));\n const b = byId.get(id);\n if (b && b.type === \"child\") {\n // Path points to the parent; index is the node position among children.\n b.path = path.slice(0, -1);\n b.childIndex = path[path.length - 1]!;\n }\n }\n }\n\n const children = node.childNodes;\n for (let i = 0; i < children.length; i++) {\n walk(children[i]!, [...path, i], byId, childMarkerPrefix, attrMarkerPrefix);\n }\n}\n\nfunction containsMarker(\n node: Node,\n childMarkerPrefix: string,\n attrMarkerPrefix: string,\n): boolean {\n if (\n node.nodeType === Node.COMMENT_NODE &&\n (node as Comment).data.startsWith(childMarkerPrefix)\n ) return true;\n if (\n node.nodeType === Node.ELEMENT_NODE &&\n [...(node as Element).attributes].some((attr) =>\n attr.name.startsWith(attrMarkerPrefix))\n ) return true;\n for (const child of node.childNodes) {\n if (containsMarker(child, childMarkerPrefix, attrMarkerPrefix)) return true;\n }\n return false;\n}\n\n/**\n * Retrieve a node by path from root. Used when instantiating\n * a template to resolve BindingSpec.path → concrete Node in the clone.\n */\nexport function resolvePath(root: Node, path: number[]): Node {\n let n: Node = root;\n for (const i of path) n = n.childNodes[i]!;\n return n;\n}\n\n/** Build a fixable error message for a ${} slot inside a RAW_TEXT element. */\nfunction rawTextSlotError(rawTagName: string): string {\n const base = `[mado] Dynamic \\${...} inside <${rawTagName}> is not supported`;\n if (rawTagName === \"textarea\" || rawTagName === \"title\") {\n return `${base} — the browser parses it as raw text. Use .value=\\${value} on the element instead, e.g. <${rawTagName} .value=\\${value}></${rawTagName}>.`;\n }\n if (rawTagName === \"style\") {\n return `${base}. Build styles with the css\\`\\` tag (component styles) or a static <style>.`;\n }\n return `${base}. Inline <script> with dynamic content is not supported.`;\n}\n"]}
|