Skip to content

form

form

Classes

FormState

Defined in: packages/ui/build/form/form_state.svelte.d.ts:110

Type Parameters

Type Parameter Default type
Schema extends FormSchema -
TReturn unknown

Constructors

Constructor
new FormState<Schema, TReturn>(config): FormState<Schema, TReturn>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:191

Parameters
Parameter Type
config FormStateConfig<Schema, TReturn>
Returns

FormState<Schema, TReturn>

Properties

applyDraft
applyDraft: () => boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:261

Apply draft to working copy if one exists. Returns true if draft was applied.

Returns

boolean

baseline
baseline: InferSchema<Schema>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:169

Baseline: The reference point for diff calculation. Formula: baseline = serverState ?? defaultState This is what W is compared against to compute Δ.

clearDraft
clearDraft: () => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:265

Explicitly clear the draft from storage.

Returns

void

clearErrors
clearErrors: () => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:326

Returns

void

clearFieldError
clearFieldError: (path) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:327

Parameters
Parameter Type
path string
Returns

void

delta
delta: Operation[];

Defined in: packages/ui/build/form/form_state.svelte.d.ts:175

Delta (Δ): RFC 6902 JSON Patch operations from baseline to working copy. Represents the "distance traveled" from S (or D) to W. Uses identity-aware comparison for arrays with 'id' or 'norbital_id' keys.

destroy
destroy: () => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:270

Cleanup draft storage listeners and pending tasks. Call this when the form component is destroyed.

Returns

void

disabled
disabled: boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:136

Whether the form is disabled (reactive)

errorMessage
errorMessage: string | null;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:145

Error message from last failed submission

errors
errors: object;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:149

Validation errors

fieldErrors
fieldErrors: Record<string, string[]>;
formErrors
formErrors: string[];

getArrayItemTemplate
getArrayItemTemplate: (arrayPath) => unknown;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:296

Get the item template for an array path (for ListBlock new items). Returns the first item from defaultState array, or empty object.

Parameters
Parameter Type Description
arrayPath string Dot-notation path to the array
Returns

unknown

getData
getData: () => InferSchema<Schema>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:229

Get the current working copy.

Returns

InferSchema<Schema>

getDefaultState
getDefaultState: () => InferSchema<Schema>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:289

Get the current default state (D).

Returns

InferSchema<Schema>

getDeltaForPath
getDeltaForPath: (path) => Operation[];

Defined in: packages/ui/build/form/form_state.svelte.d.ts:317

Get delta operations for a specific field path. Useful for highlighting changed fields in the UI.

Parameters
Parameter Type
path string
Returns

Operation[]

getFieldErrors
getFieldErrors: (path) => string[];

Defined in: packages/ui/build/form/form_state.svelte.d.ts:329

Parameters
Parameter Type
path string
Returns

string[]

getServerState
getServerState: () => InferSchema<Schema> | null;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:275

Get the current server state (S). Derived from the getter - parent controls this value.

Returns

InferSchema<Schema> | null

getValue
getValue: <K>(path) => Get<InferSchema<Schema>, K>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:233

Get a field value from working copy by dot-notation path.

Type Parameters
Type Parameter
K extends string
Parameters
Parameter Type
path K
Returns

Get<InferSchema<Schema>, K>

handleSubmit
handleSubmit: (event) => Promise<void>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:347

Handle form submit event.

Parameters
Parameter Type
event Event
Returns

Promise<void>

hasChangesForPath
hasChangesForPath: (path) => boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:325

Check if a specific field path has changes in delta. Useful for conditionally styling dirty fields.

NOTE: Since Δ is computed on normalized data (where arrays with IDs are objects), we need to handle both positional and identity-based paths.

Parameters
Parameter Type
path string
Returns

boolean

hasDraft
hasDraft: boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:185

hasDraft: Whether a persisted draft exists in localStorage. Only relevant when draftKey is configured.

hasServerState
hasServerState: boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:190

hasServerState: Whether we have authoritative server data. false when creating new entity, true when editing existing.

hasValidationErrors
hasValidationErrors: boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:154

Whether client-side validation failed on the last submit attempt

isDirty
isDirty: boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:180

isDirty: Whether the working copy differs from baseline. True when Δ contains any operations.

isSubmitting
isSubmitting: boolean;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:141

Whether a submission is in progress

lastResult
lastResult: Awaited<TReturn> | undefined;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:143

Result from last successful submission

loadDraft
loadDraft: () => InferSchema<Schema> | null;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:256

Load draft data without applying it. Returns the raw draft for custom merging, or null if no draft.

Returns

InferSchema<Schema> | null

pushArrayItem
pushArrayItem: (arrayPath, item?) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:304

Push a new item to an array in workingCopy, using defaultState template. Triggers onDataChange hook for derived value recalculation.

Parameters
Parameter Type Description
arrayPath string Dot-notation path to the array
item? unknown Optional custom item (defaults to array item template from defaultState)
Returns

void

removeArrayItem
removeArrayItem: (arrayPath, index) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:312

Remove an item from an array in workingCopy by index. Triggers onDataChange hook for derived value recalculation.

Parameters
Parameter Type Description
arrayPath string Dot-notation path to the array
index number Index of item to remove
Returns

void

removeHook
removeHook: <K>(hookName) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:207

Remove a hook callback.

Type Parameters
Type Parameter
K extends keyof FormStateHooks<InferSchema<Schema>>
Parameters
Parameter Type
hookName K
Returns

void

reset
reset: () => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:251

Reset working copy to baseline (S or D) and clear draft. After reset: W = baseline, Δ becomes empty.

Returns

void

setData
setData: (data, options?) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:218

Update working copy with deep merge support. Pass replace: true to replace entirely instead of merging. Automatically persists to draft storage and triggers auto-submit.

Parameters
Parameter Type Description
data Partial<InferSchema<Schema>> Partial data to merge, or full data if replacing
options? { force?: boolean; replace?: boolean; triggerHooks?: boolean; } -
options.force? boolean Bypass disabled check for programmatic updates (e.g., streaming)
options.replace? boolean Whether to replace instead of merge
options.triggerHooks? boolean Whether to trigger onDataChange hook (default: true)
Returns

void

setDefaultState
setDefaultState: <K>(path, value) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:284

Update default state at a specific path. Auto-merges to workingCopy if the path has no value (null/undefined). Used by authored form runtimes to register per-field defaults (defaultValue callbacks).

Type Parameters
Type Parameter
K extends string
Parameters
Parameter Type Description
path K Dot-notation path to set
value Get<InferSchema<Schema>, K> Default value for that path
Returns

void

setDefaultValueAtPath
setDefaultValueAtPath: (path, value) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:285

Parameters
Parameter Type
path string
value unknown
Returns

void

setFieldError
setFieldError: (path, messages) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:328

Parameters
Parameter Type
path string
messages string | string[]
Returns

void

setHook
setHook: <K>(hookName, callback) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:203

Register a hook callback for lifecycle events.

Type Parameters
Type Parameter
K extends keyof FormStateHooks<InferSchema<Schema>>
Parameters
Parameter Type
hookName K
callback FormStateHooks<InferSchema<Schema>>[K]
Returns

void

setValue
setValue: <K>(path, value, options?) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:239

Set a field value in working copy by dot-notation path. Automatically persists to draft storage and triggers auto-submit. Pass triggerHooks: false to skip onDataChange (e.g. when writing derived values).

Type Parameters
Type Parameter
K extends string
Parameters
Parameter Type
path K
value Get<InferSchema<Schema>, K>
options? { force?: boolean; triggerHooks?: boolean; }
options.force? boolean
options.triggerHooks? boolean
Returns

void

setValueAtPath
setValueAtPath: <K>(path, value, options?) => void;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:243

Type Parameters
Type Parameter
K extends string
Parameters
Parameter Type
path K
value Get<InferSchema<Schema>, K>
options? { force?: boolean; triggerHooks?: boolean; }
options.force? boolean
options.triggerHooks? boolean
Returns

void

submit
submit: (options?) => Promise<Awaited<TReturn> | null>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:341

Submit the form. Validates W, calls remoteFn if provided, and handles success/error states.

On success:

  • S ← W (working copy becomes new server state)
  • Clear draft storage
  • Δ becomes empty (since S now equals W)
Parameters
Parameter Type Description
options? { silent?: boolean; } { silent?: boolean } - If true, don't show success toast
options.silent? boolean -
Returns

Promise<Awaited<TReturn> | null>

submitSuccessMessage
submitSuccessMessage: string | null;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:147

Success message text while the last submission is in the success state (before commit/reset).

validationErrorMessage
validationErrorMessage: string | null;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:156

First validation error message, when hasValidationErrors is true


SubmissionHandledExternallyError

Defined in: packages/ui/build/form/submission_handled_externally_error.d.ts:5

Thrown when submit failure was handled outside FormState (e.g. approval dialog). FormState suppresses the default error toast and returns to idle without rethrowing.

Extends

  • Error

Constructors

Constructor
new SubmissionHandledExternallyError(message?): SubmissionHandledExternallyError;

Defined in: packages/ui/build/form/submission_handled_externally_error.d.ts:7

Parameters
Parameter Type
message? string
Returns

SubmissionHandledExternallyError

Overrides
Error.constructor

Properties

name
readonly name: "SubmissionHandledExternallyError" = "SubmissionHandledExternallyError";

Defined in: packages/ui/build/form/submission_handled_externally_error.d.ts:6

Overrides
Error.name

Type Aliases

AutoSubmitConfig

type AutoSubmitConfig = object;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:38

Properties

Property Type Description Defined in
debounceMs? number Debounce delay in milliseconds (default: 500) packages/ui/build/form/form_state.svelte.d.ts:42
enabled boolean Enable auto-submit on data change packages/ui/build/form/form_state.svelte.d.ts:40
silent? boolean If true, don't show success toast on auto-submit packages/ui/build/form/form_state.svelte.d.ts:44

Field

type Field<TInput, TReturn, TPath> = InstanceType<typeof Field>;

Defined in: packages/ui/build/form/field.svelte.d.ts:35

Type Parameters

Type Parameter
TInput extends FormSchema
TReturn
TPath extends string

FieldContext

type FieldContext = FieldProps<unknown>;

Defined in: packages/ui/build/form/context.d.ts:15

Field context type (untyped value for context passing)


FieldDescription

type FieldDescription = ReturnType<typeof FieldDescription>;

Defined in: packages/ui/build/form/field_description.svelte.d.ts:5


FieldErrors

type FieldErrors = ReturnType<typeof FieldErrors>;

Defined in: packages/ui/build/form/field_errors.svelte.d.ts:4


FieldProps

type FieldProps<TValue> = object;

Defined in: packages/ui/build/form/context.d.ts:2

Type Parameters

Type Parameter Default type
TValue unknown

Properties

Property Type Description Defined in
delta Operation[] RFC 6902 JSON Patch operations affecting this field packages/ui/build/form/context.d.ts:9
disabled boolean - packages/ui/build/form/context.d.ts:10
errors string[] - packages/ui/build/form/context.d.ts:7
handleBlur () => void - packages/ui/build/form/context.d.ts:6
handleChange (next) => void - packages/ui/build/form/context.d.ts:5
name string - packages/ui/build/form/context.d.ts:3
value TValue - packages/ui/build/form/context.d.ts:4

FilterNull

type FilterNull<T> = T extends null ? never : T;

Defined in: packages/ui/build/form/path.d.ts:2

Type Parameters

Type Parameter
T

FilterUndefined

type FilterUndefined<T> = T extends undefined ? never : T;

Defined in: packages/ui/build/form/path.d.ts:1

Type Parameters

Type Parameter
T

FilterUndefinedAndNull

type FilterUndefinedAndNull<T> = FilterUndefined<FilterNull<T>>;

Defined in: packages/ui/build/form/path.d.ts:3

Type Parameters

Type Parameter
T

FormSchema

type FormSchema = object;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:23

Structural constraint satisfied by any Standard Schema v1 schema (Zod 3+, Zod 4, etc.).

Properties

Property Modifier Type Defined in
~standard readonly object packages/ui/build/form/form_state.svelte.d.ts:24
~standard.validate readonly (data) => unknown packages/ui/build/form/form_state.svelte.d.ts:25

FormStateConfig

type FormStateConfig<Schema, TReturn> = object;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:49

Type Parameters

Type Parameter
Schema extends FormSchema
TReturn

Properties

Property Type Description Defined in
autoSubmit? MaybeGetter< | AutoSubmitConfig | undefined> Auto-submit configuration. When enabled, form auto-submits on data change. Can be a getter for reactivity. packages/ui/build/form/form_state.svelte.d.ts:97
defaultState? MaybeGetter<InferSchema<Schema>> Default State (D): Static fallback structure. packages/ui/build/form/form_state.svelte.d.ts:55
description? MaybeGetter<string> Optional description for debugging packages/ui/build/form/form_state.svelte.d.ts:78
disabled? MaybeGetter<boolean> Whether the form is disabled. Can be a getter for reactivity. packages/ui/build/form/form_state.svelte.d.ts:82
draftKey? MaybeGetter<string[]> Key parts for draft persistence. If provided, enables automatic draft save/load. The draft storage IS the Working Copy (W) - persisted to localStorage. On hydration: W = draft ?? serverState ?? defaultState Can be a getter for reactivity. Examples draftKey: ['create_form', collectionId] draftKey: () => ['unified_form', entityId] packages/ui/build/form/form_state.svelte.d.ts:92
onSuccess? (result) => Promise<void> | void Called after successful submission packages/ui/build/form/form_state.svelte.d.ts:65
remoteFn? RemoteFnGetter<Schema, TReturn> Remote function to call on submit. packages/ui/build/form/form_state.svelte.d.ts:63
schema MaybeGetter<Schema> Schema for validation packages/ui/build/form/form_state.svelte.d.ts:51
serverState? MaybeGetter<InferSchema<Schema> | null> Server State (S): Authoritative data from database. packages/ui/build/form/form_state.svelte.d.ts:59
submitSuccessBehavior? MaybeGetter<SubmitSuccessBehavior> Post-submit behavior after a successful submission. - none: keep current working copy as-is - commit: treat submitted payload as new baseline and clear dirty state - reset: reset to baseline and clear draft/errors packages/ui/build/form/form_state.svelte.d.ts:72
successMessage? MaybeGetter<string | null> Toast message on success. Set to null to disable. packages/ui/build/form/form_state.svelte.d.ts:76
transform? MaybeGetter<(data) => InferSchema<Schema>> Transform data before validation/submission packages/ui/build/form/form_state.svelte.d.ts:74

FormStateHooks

type FormStateHooks<T> = object;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:102

Hook callbacks for FormState lifecycle events

Type Parameters

Type Parameter
T

Properties

Property Type Description Defined in
onAfterSubmit? (data, result) => void Called after successful submission packages/ui/build/form/form_state.svelte.d.ts:108
onBeforeSubmit? (data) => void Called before form submission packages/ui/build/form/form_state.svelte.d.ts:106
onDataChange? (workingCopy) => void Called after working copy changes (via setData or setValue) packages/ui/build/form/form_state.svelte.d.ts:104

FormSubmitFn

type FormSubmitFn<Schema, TReturn> = (data) => TReturn | Promise<TReturn>;

Defined in: packages/ui/build/form/form_state.svelte.d.ts:36

Plain submit handler (sync or async). Framework-specific remote callables that share this shape remain compatible at runtime.

Type Parameters

Type Parameter
Schema extends FormSchema
TReturn

Parameters

Parameter Type
data InferSchema<Schema>

Returns

TReturn | Promise<TReturn>


Get

type Get<O, P> = GetWithArray<O, Path<P>>;

Defined in: packages/ui/build/form/path.d.ts:8

Type Parameters

Type Parameter
O
P

Label

type Label = ReturnType<typeof Label>;

Defined in: packages/ui/build/form/label.svelte.d.ts:10


Operation

type Operation = object;

Defined in: packages/std/build/json/index.d.ts:1

Properties

Property Type Defined in
op "add" | "remove" | "replace" packages/std/build/json/index.d.ts:2
path string packages/std/build/json/index.d.ts:3
value? unknown packages/std/build/json/index.d.ts:4

Path

type Path<T> = T extends `${infer Key}.${infer Rest}` ? [Key, ...Path<Rest>] : T extends `${infer Key}` ? [Key] : [];

Defined in: packages/ui/build/form/path.d.ts:4

Type Parameters

Type Parameter
T

SubmitSuccessBehavior

type SubmitSuccessBehavior = "none" | "commit" | "reset";

Defined in: packages/ui/build/form/form_state.svelte.d.ts:46

Variables

Field

const Field: $$IsomorphicComponent;

Defined in: packages/ui/build/form/field.svelte.d.ts:35


FieldDescription

const FieldDescription: Component;

Defined in: packages/ui/build/form/field_description.svelte.d.ts:5


FieldErrors

const FieldErrors: Component;

Defined in: packages/ui/build/form/field_errors.svelte.d.ts:4


Label

const Label: Component;

Defined in: packages/ui/build/form/label.svelte.d.ts:10

Functions

getField()

function getField(): () => FieldContext;

Defined in: packages/ui/build/form/context.d.ts:17

Returns

() => FieldContext


setField()

function setField<TValue>(getter): void;

Defined in: packages/ui/build/form/context.d.ts:16

Type Parameters

Type Parameter
TValue

Parameters

Parameter Type
getter () => FieldProps<TValue>

Returns

void