diff --git a/packages/core/src/validation.ts b/packages/core/src/validation.ts index fd9c20e8..9e699751 100644 --- a/packages/core/src/validation.ts +++ b/packages/core/src/validation.ts @@ -153,7 +153,7 @@ export const builtInValidationFunctions: Record = { */ numeric: (value: unknown) => { if (typeof value === "number") return !isNaN(value); - if (typeof value === "string") return !isNaN(parseFloat(value)); + if (typeof value === "string") return !isNaN(Number(value)) && isFinite(Number(value)); return false; }, diff --git a/packages/directives/src/truncate.ts b/packages/directives/src/truncate.ts index 822ce477..05fd7c6d 100644 --- a/packages/directives/src/truncate.ts +++ b/packages/directives/src/truncate.ts @@ -16,6 +16,6 @@ export const truncateDirective = defineDirective({ const suffix = raw.suffix ?? "..."; if (text.length <= maxLength) return text; - return text.slice(0, maxLength) + suffix; + return text.slice(0, maxLength - suffix.length) + suffix; }, });