Skip to content

Entrypoints & subpaths

Tree-shakeable imports for @jayoncode/form-intelligence. Prefer the narrowest entry that exports what you need.

Previous: Capabilities · Next: Validation

Playground

Sandbox — explore features live; import paths below apply in app code.

Quick rule

NeedImport from
createForm, when, validators, most instance APIs@jayoncode/form-intelligence (main)
Phone/currency masks, formatSlug, trim, composeFormatters@jayoncode/form-intelligence/format
DevTools inspector@jayoncode/form-intelligence/devtools
Derived UI projection (showError, canSubmit, status, …)@jayoncode/form-intelligence/ui
CAPTCHA Security Stage (captcha, providers)@jayoncode/form-intelligence/captcha
Opt-in multipart upload (uploadTransport)@jayoncode/form-intelligence/upload
Browser-lifecycle / keyboard plugins@jayoncode/form-intelligence/plugins
Error helpers (toNormalizedErrors, …)@jayoncode/form-intelligence/validation

Main-entry phone / currency are validators (phone(), currency(opts?) — “is this valid?”).
Formatter masks use a format* prefix on /format only (formatPhone, formatCurrency, … — “mask while typing”).
trim stays trim. See Formatters and Validation.

Subpath map

ImportUse forAlso on main?
@jayoncode/form-intelligencecreateForm, when, validators, calculate, dependencies, transform/presentation/middleware helpers, createFormController, computeFieldAria
…/validationPipeline helpers, mergeValidatorsByKind, matchesField, requiredWhen, re-exported validators — Validation (HTML constraints attach via core DOM, not a subpath)Validators yes; helpers prefer this path
…/formatFormatters / parsers (formatPhone, formatSlug, formatCreditCard, …), advanced (formatForDisplay, FormatterRegistry)No (validators like phone() stay on main)
…/ruleswhen, evaluateFormRules, runDependencyRules, runCalculations, rule typeswhen also on main; prefer form rules for apps — Rules → evaluateFormRules
…/workflowLow-level autosave/draft/wizard internalsPrefer createForm({ workflow })
…/draftDraft storage primitives, createIndexedDbDraftStorageWorkflow → IndexedDB draftsPrefer workflow.draft
…/wizardWizard graph helpers (getStepGraph, listVisibleStepIds, …) — Workflow → wizard graph helpersPrefer workflow.wizard
…/submissionSubmit orchestrator / offline queue classes, evaluateSubmissionGuard, Security Stage API — SubmissionPrefer form.submit() + workflow.offlineQueue
…/offlineOffline module servicePrefer workflow config
…/historyHistory stack primitivesPrefer form.undo() / form.redo()
…/stateStore / selectors (selectValues, selectFieldValue, …) — State → selectorsPrefer form.state
…/fieldsField registry / array helpers (pushArrayItem, removeArrayItem, …) — State → array field helpersPrefer form.field() / form.pushField()
…/pluginscreateBrowserLifecyclePlugin, createKeyboardPlugin, pluginAsModule, …Plugins: this path
…/devtoolsenableFormDevTools, getFormDevToolsDevTools: this path only
…/uiDerived UI projection: ui(), createUiProjection, showError, canSubmit, status, explain()UI projection → free helpersProjection: this path
…/captchaCAPTCHA Security Stage: captcha(), turnstile(), recaptcha(), hcaptcha(), mockCaptcha()CAPTCHA: this path only
…/uploadOpt-in multipart upload transport: uploadTransport()Upload transportUpload: this path only
…/analyticsFormAnalyticsTracker, createAnalyticsPluginIntegrations → analytics module APIPrefer workflow.analytics
…/adaptersAdapter types, createFormControllerController also on main
…/dependencyDependency engine, detectDependencyCyclesdependencies also on main
…/transformInbound transform pipeline helpers (createTransformPipeline, runTransformInbound, TRANSFORM_INBOUND_ORDER)Also on main
…/presentationField UI / presentation helpersAlso on main
…/middlewareMiddleware pipeline / stages (composeMiddleware, runMiddlewareChain, MiddlewarePipeline)Also on main / plugins
…/accessibilitycomputeFieldAriaAlso on main

Instance API vs low-level import

Most apps only need:

ts
import { createForm, when, required, email } from "@jayoncode/form-intelligence";

Use subpaths when you want an explicit dependency, a slimmer entry, or symbols that are not on main (formatters, DevTools, lifecycle plugins).

An ecosystem of independent, headless TypeScript libraries engineered for modern web development. Every package includes interactive playgrounds and documentation that evolves alongside the code.