Commit graph

12 commits

Author SHA1 Message Date
Virgil
f543f02cc1 feat(html): add layout variant validation helper
Some checks are pending
Security Scan / security (push) Waiting to run
Test / test (push) Waiting to run
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-03 16:19:30 +00:00
Virgil
4a3a69e8b7 fix(html): preserve switch wrapper paths
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 59s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 20:07:35 +00:00
Virgil
1f98026d04 feat(html): add layout variant validation sentinel
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 55s
Expose VariantError() on Layout and ErrInvalidLayoutVariant for invalid variant strings while preserving current render behaviour.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 20:01:28 +00:00
Virgil
8386c7e57d fix(html): preserve block paths through conditional wrappers
All checks were successful
Security Scan / security (push) Successful in 8s
Test / test (push) Successful in 56s
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-31 19:58:38 +00:00
Virgil
11f18a24d2 fix(tests): complete ax naming compliance
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-27 04:55:58 +00:00
Virgil
3616ad3a76 chore: polish ax v0.8.0 conventions
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 18:12:06 +00:00
Virgil
b8d06460d6 refactor(core): upgrade to v0.8.0-alpha.1
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 15:24:16 +00:00
Virgil
8a3f28aff3 fix(conventions): isolate banned imports and clarify tests
Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-26 11:15:24 +00:00
Snider
c525437ed6 refactor(module): migrate module path from forge.lthn.ai to dappco.re
Some checks failed
Security Scan / security (pull_request) Successful in 9s
Test / test (pull_request) Failing after 20s
Update module path from forge.lthn.ai/core/go-html to dappco.re/go/core/html.
Migrate all .go import paths, update dependency versions (core v0.5.0,
log v0.1.0, io v0.2.0), and add replace directives for local development.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-22 01:28:30 +00:00
Snider
473fda5894 security: use html.EscapeString for XSS protection in rendering
All checks were successful
Security Scan / security (push) Successful in 9s
Test / test (push) Successful in 46s
Replace manual string-replace escaping with stdlib html.EscapeString.
Escape tag names and attribute keys in elNode and Layout rendering.
Improve Attr() to traverse wrapper nodes (If, Unless, Entitled).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 08:29:54 +00:00
Snider
a905850b0b refactor: apply go fix modernizers for Go 1.26
Automated fixes: interface{} → any, range-over-int, t.Context(),
wg.Go(), strings.SplitSeq, strings.Builder, slices.Contains,
maps helpers, min/max builtins.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-22 21:00:16 +00:00
Snider
7efd2ab93a test: add benchmarks, Unicode edge cases, and stress tests
Performance benchmarks across all major APIs:
- BenchmarkRender (depth 1/3/5/7 tree, full page)
- BenchmarkImprint (small/large pipeline)
- BenchmarkCompareVariants (2/3 variants)
- BenchmarkLayout (C, HCF, HLCRF, nested, many children)
- BenchmarkEach (10/100/1000 items)
- BenchmarkResponsive, BenchmarkStripTags
- Codegen: GenerateClass, TagToClassName, GenerateBundle, GenerateRegistration

Edge case tests:
- Unicode: emoji, RTL (Arabic/Hebrew), zero-width chars, mixed scripts
- Deep nesting: 10/20 levels, mixed slot types
- Large Each iterations: 1000/5000 items, nested Each
- Layout variant validation: invalid chars, lowercase, duplicates, empty
- Nil context handling for Render, Imprint, CompareVariants
- Switch no-match, Entitled nil context, empty tag El

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 05:33:15 +00:00