202 lines
4.7 KiB
TypeScript
202 lines
4.7 KiB
TypeScript
// Side-effect: register every REACT_FORMS.* error code with the
|
|
// shared `@suaveplan/error` registry at module load.
|
|
import "./errors/error-codes.js";
|
|
// Side-effect: augment ContributedTranslationKeys with the recipe-
|
|
// default keys so consumer t() / TranslationKey props type-narrow
|
|
// correctly.
|
|
import "./locales/augmentation.js";
|
|
|
|
// Core — contexts, hooks, validation engine
|
|
export type {
|
|
ApiClient,
|
|
ApiClientProviderProps,
|
|
AsyncValidatorRegistration,
|
|
AuthContextValue,
|
|
AuthCredentials,
|
|
AuthProviderProps,
|
|
CrossFieldRule,
|
|
CrossFieldRuleOptions,
|
|
CrossFieldViolation,
|
|
EngineFieldErrors,
|
|
FieldValuesMap,
|
|
FormSchema,
|
|
ServerErrorEnvelope,
|
|
ServerErrorState,
|
|
ServerFieldError,
|
|
UseDomainFormOptions,
|
|
UseDomainFormReturn,
|
|
UseFormValidationOptions,
|
|
ValidationEngineConfig,
|
|
ValidationResult,
|
|
} from "./core/index.js";
|
|
export {
|
|
ApiClientContext,
|
|
ApiClientProvider,
|
|
AuthContext,
|
|
AuthProvider,
|
|
defineCrossFieldRule,
|
|
mapServerErrors,
|
|
throwServerErrorMapped,
|
|
unsafeAssertTranslationKey,
|
|
unwrapServerEnvelope,
|
|
useApiClient,
|
|
useAuth,
|
|
useDomainForm,
|
|
useFormValidation,
|
|
ValidationEngine,
|
|
violate,
|
|
} from "./core/index.js";
|
|
// Errors
|
|
export type { ReactFormsCode } from "./errors/index.js";
|
|
export { REACT_FORMS_CODES, ReactFormsError } from "./errors/index.js";
|
|
export type {
|
|
CheckboxFieldConfig,
|
|
CreateDomainFormConfig,
|
|
CurrencyFieldConfig,
|
|
CustomFieldConfig,
|
|
DomainFormChildren,
|
|
DomainFormComponent,
|
|
DomainFormLayout,
|
|
DomainFormProps,
|
|
DomainFormStatics,
|
|
EmailFieldConfig,
|
|
FieldConfig,
|
|
FieldConfigBase,
|
|
FieldConfigMap,
|
|
LayoutRenderFn,
|
|
NumberFieldConfig,
|
|
PasswordFieldConfig,
|
|
RadioFieldConfig,
|
|
RenderFieldProps,
|
|
SupportedFieldKind,
|
|
TextareaFieldConfig,
|
|
TextFieldConfig,
|
|
ToggleFieldConfig,
|
|
} from "./factory/index.js";
|
|
// Factory
|
|
export {
|
|
createDomainForm,
|
|
FieldConfigSchema,
|
|
isSupportedFieldKind,
|
|
RenderField,
|
|
SUPPORTED_FIELD_KINDS,
|
|
validateFieldConfig,
|
|
validateFieldConfigMap,
|
|
} from "./factory/index.js";
|
|
// Locales
|
|
export type {
|
|
FormsLocaleBundle,
|
|
SupportedFormsLocale,
|
|
} from "./locales/index.js";
|
|
export { REACT_FORMS_BUNDLE_KEYS, reactFormsBundles } from "./locales/index.js";
|
|
// Translation key union (for non-React consumers)
|
|
export type { ReactFormsTranslationKey } from "./locales/translation-keys.js";
|
|
// Observability
|
|
export type {
|
|
AsyncValidatorOutcome,
|
|
ReactFormsMetricSample,
|
|
ReactFormsMetricsState,
|
|
SubmitOutcome,
|
|
ValidationErrorKind,
|
|
} from "./observability/react-forms-metrics.js";
|
|
export {
|
|
getReactFormsMetrics,
|
|
getReactFormsMetricsState,
|
|
recordAsyncValidatorDuration,
|
|
recordAsyncValidatorOutcome,
|
|
recordSubmitDuration,
|
|
recordSubmitOutcome,
|
|
recordValidationDuration,
|
|
recordValidationError,
|
|
resetReactFormsMetricsCache,
|
|
resetReactFormsMetricsState,
|
|
} from "./observability/react-forms-metrics.js";
|
|
// Primitives
|
|
export type {
|
|
FieldDescriptionProps,
|
|
FieldErrorProps,
|
|
FieldGroupProps,
|
|
FieldLabelProps,
|
|
FieldLegendProps,
|
|
FieldProps,
|
|
FieldSetProps,
|
|
MoneyInputProps,
|
|
} from "./primitives/index.js";
|
|
export {
|
|
Field,
|
|
FieldDescription,
|
|
FieldError,
|
|
FieldGroup,
|
|
FieldLabel,
|
|
FieldLegend,
|
|
FieldSet,
|
|
MoneyInput,
|
|
} from "./primitives/index.js";
|
|
export type {
|
|
AsyncSearchFormComponent,
|
|
AsyncSearchFormProps,
|
|
AsyncSearchPhase,
|
|
ConditionalFieldProps,
|
|
CreateAsyncSearchFormConfig,
|
|
CreateRepeatingFieldsetConfig,
|
|
CreateWizardFormConfig,
|
|
RepeatingChildrenContext,
|
|
RepeatingFieldsetComponent,
|
|
RepeatingFieldsetProps,
|
|
RepeatingRowContext,
|
|
WizardChildrenContext,
|
|
WizardFormComponent,
|
|
WizardFormProps,
|
|
WizardState,
|
|
WizardStep,
|
|
} from "./recipes/index.js";
|
|
// Recipes
|
|
export {
|
|
ConditionalField,
|
|
createAsyncSearchForm,
|
|
createRepeatingFieldset,
|
|
createWizardForm,
|
|
} from "./recipes/index.js";
|
|
|
|
// Validation
|
|
export type {
|
|
AsyncEmailUniqueOptions,
|
|
AsyncUsernameAvailableOptions,
|
|
AsyncValidator,
|
|
CustomPredicate,
|
|
PasswordStrengthOptions,
|
|
PasswordStrengthScore,
|
|
PhoneValidatorOptions,
|
|
PostcodeValidatorOptions,
|
|
UrlValidatorOptions,
|
|
Validator,
|
|
ValidatorFailure,
|
|
ValidatorResult,
|
|
ValidatorSuccess,
|
|
ValidatorValue,
|
|
} from "./validation/index.js";
|
|
export {
|
|
asyncEmailUnique,
|
|
asyncUsernameAvailable,
|
|
bic,
|
|
compose,
|
|
creditCard,
|
|
custom,
|
|
email,
|
|
expandLettersToDigits,
|
|
iban,
|
|
luhnValid,
|
|
maxLength,
|
|
minLength,
|
|
mod97,
|
|
or,
|
|
passwordStrength,
|
|
pattern,
|
|
phone,
|
|
postcode,
|
|
required,
|
|
SUPPORTED_POSTCODE_COUNTRIES,
|
|
sequence,
|
|
url,
|
|
} from "./validation/index.js";
|