add Block + Component, add TextComponent with min, max and regex validators and early NumberComponent

This commit is contained in:
2026-02-12 15:47:52 +00:00
parent 4f77702125
commit 6099538fa8
16 changed files with 488 additions and 0 deletions

View File

@@ -0,0 +1,24 @@
package text_component_validators
import (
"blocky/internal/block/text_component"
"fmt"
"regexp"
)
func Regex(pattern string) text_component.TextComponentOption {
re := regexp.MustCompile(pattern)
return func(c *text_component.TextComponentConfig) {
c.Validators = append(c.Validators, func(value any) error {
s, ok := value.(string)
if !ok {
return fmt.Errorf("provided value bust be a string: %v", value)
}
if !re.MatchString(s) {
return fmt.Errorf("must match pattern %s", pattern)
}
return nil
})
}
}