@formitiva/core
v2.1.2
Published
Formitiva shared core — types, validation, registries and utilities (framework-agnostic)
Downloads
603
Maintainers
Readme
@formitiva/core
Framework-agnostic shared core for Formitiva — types, validation, registries, utilities, styles, and themes used by all framework adapters.
You typically don't install this package directly. It is included as a dependency of
@formitiva/react,@formitiva/vue,@formitiva/angular, and@formitiva/vanilla. Install it directly only when building a custom adapter or using the validation/utility layer standalone.
Installation
npm install @formitiva/core
# or
pnpm add @formitiva/coreWhat's Inside
Types & Model
Core TypeScript types that define the form schema:
FormitivaDefinition— the root form schema type (fields, groups, validation rules, visibility, computed values)DefinitionPropertyField— individual field definitionFormitivaInstance— saved form state with user-entered valuesFormitivaProps— common props shared by all framework adaptersFieldValidationMode—"onEdit"|"onBlur"|"onSubmission"
import type { FormitivaDefinition, FormitivaInstance } from "@formitiva/core";21 Built-in Field Types
text, string, multiline, password, email, date, time, url, phone, int, stepper, int-array, float, slider, float-array, unit, dropdown, multi-selection, color, rating, file
Each type has a built-in validator registered automatically.
Schema Utilities
import {
validateDefinitionSchema, // validate a definition object
loadJsonDefinition, // parse & validate from JSON string
createInstanceFromDefinition,
loadInstance,
upgradeInstanceToLatestDefinition,
serializeInstance,
deserializeInstance,
} from "@formitiva/core";Validation
import {
validateField,
validateFormValues,
validateFieldWithCustomHandler,
ensureBuiltinFieldTypeValidatorsRegistered,
} from "@formitiva/core";Registries
Pluggable registries for extending form behavior:
| Registry | Purpose |
|---|---|
| Validation handlers | registerFieldValidator, registerTypeValidator, registerFormValidator |
| Submission handlers | registerSubmitter, registerSubmissionHandler |
| Button handlers | registerButtonHandler, getButtonHandler |
| Visibility handlers | registerVisibilityHandler — custom show/hide logic |
| Computed value handlers | registerComputedValueHandler — derive values from other fields |
Field Visibility & Computed Values
import {
updateVisibilityMap,
updateVisibilityBasedOnSelection,
applyVisibilityRefs,
applyComputedRefs,
} from "@formitiva/core";Unit Value Mapper
Conversion utilities for unit fields across multiple dimensions:
import {
dimensionUnitsMap, // units grouped by dimension
dimensionUnitFactorsMap, // conversion factors
dimensionUnitDisplayMap, // display labels
convertTemperature,
getUnitFactors,
} from "@formitiva/core";Supported dimensions: length, mass, volume, area, speed, temperature, time, digital storage, frequency, and more.
Localization — 30 Languages
import {
supportedLanguages,
loadCommonTranslation,
createTranslationFunction,
} from "@formitiva/core";en, fr, de, es, it, pt, ja, ko, zh-cn, zh-tw, ru, uk, pl, nl, sv, da, no, fi, cs, sk, hu, ro, bg, el, tr, th, hi, id, ms, vi
Grouping Helpers
import { groupConsecutiveFields, renameDuplicatedGroups } from "@formitiva/core";Styles & CSS Classes
// Programmatic access to all CSS class names
import { CSS_CLASSES, combineClasses } from "@formitiva/core/styles";/* Base stylesheet */
@import "@formitiva/core/styles/formitiva.css";20 Built-in Themes
Import any theme CSS file directly:
@import "@formitiva/core/themes/material.css";
@import "@formitiva/core/themes/material-dark.css";Available themes: ant-design, ant-design-dark, blueprint, blueprint-dark, compact-variant, fluent, glass-morphism, high-contrast-accessible, ios-mobile, macos-native, material, material-dark, midnight-dark, modern-light, neon-cyber-dark, shadcn, soft-pastel, spacious-variant, tailwind, tailwind-dark
Or customize via CSS variables:
:root {
--formitiva-color-primary: #3b82f6;
--formitiva-color-error: #ef4444;
--formitiva-border-radius: 8px;
}Framework Adapters
| Package | Framework |
|---|---|
| @formitiva/react | React ≥17 |
| @formitiva/vue | Vue ≥3.3 |
| @formitiva/angular | Angular ≥18 |
| @formitiva/vanilla | Vanilla JS |
Links
License
MIT
