跳到主要内容

ui/build/form/form\_state.svelte

ui/build/form/form_state.svelte

Classes

FormState

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:121

Type Parameters

Type Parameter Default type
Schema extends FormSchema -
TReturn unknown

Constructors

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:207

Parameters
Parameter Type
config FormStateConfig<Schema, TReturn>
Returns

FormState<Schema, TReturn>

Properties

applyDraft
applyDraft: () => boolean;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:277

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

Returns

boolean

baseline
baseline: InferSchema<Schema>;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:181

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:281

Explicitly clear the draft from storage.

Returns

void

clearErrors
clearErrors: () => void;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:342

Returns

void

clearFieldError
clearFieldError: (path) => void;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:343

Parameters
Parameter Type
path string
Returns

void

delta
delta: object[];

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:187

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 'id' keys.

op
readonly op: "replace" | "add" | "remove";
path
readonly path: string;
value?
readonly optional value?: unknown;

destroy
destroy: () => void;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:286

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

Returns

void

disabled
disabled: boolean;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:148

Whether the form is disabled (reactive)

errorMessage
errorMessage: string | null;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:157

Error message from last failed submission

errors
errors: object;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:161

Validation errors

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

getArrayItemTemplate
getArrayItemTemplate: (arrayPath) => unknown;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:312

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:245

Get the current working copy.

Returns

InferSchema<Schema>

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:305

Get the current default state (D).

Returns

InferSchema<Schema>

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:333

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

Parameters
Parameter Type
path string
Returns

object[]

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:345

Parameters
Parameter Type
path string
Returns

string[]

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:291

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:249

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) => void;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:363

Handle form submit event.

Parameters
Parameter Type
event Event
Returns

void

hasChangesForPath
hasChangesForPath: (path) => boolean;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:341

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:201

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

hasServerState
hasServerState: boolean;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:206

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

hasValidationErrors
hasValidationErrors: boolean;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:166

Whether client-side validation failed on the last submit attempt

isDirty
isDirty: boolean;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:196

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

isSubmitting
isSubmitting: boolean;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:153

Whether a submission is in progress

lastResult
lastResult: TReturn | undefined;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:155

Result from last successful submission

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:272

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:320

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:328

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:223

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:267

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:234

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:300

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:301

Parameters
Parameter Type
path string
value unknown
Returns

void

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:344

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

void

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:219

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:255

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: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:259

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?) => Effect<TReturn | null, unknown>;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:357

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

Effect<TReturn | null, unknown>

submitSuccessMessage
submitSuccessMessage: string | null;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:159

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

validationErrorMessage
validationErrorMessage: string | null;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:168

First validation error message, when hasValidationErrors is true

Type Aliases

AutoSubmitConfig

type AutoSubmitConfig = object;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:42

Properties

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

FormSchema

type FormSchema = object;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:27

Structural constraint satisfied by any Standard Schema v1 schema, read through ~standard.

Properties

Property Modifier Type Defined in
~standard readonly object apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:28
~standard.validate readonly (data) => unknown apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:29

FormStateConfig

type FormStateConfig<Schema, TReturn> = object;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:53

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. apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:106
defaultState? MaybeGetter<InferSchema<Schema>> Default State (D): Static fallback structure. apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:59
description? MaybeGetter<string> Optional description for debugging apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:87
disabled? MaybeGetter<boolean> Whether the form is disabled. Can be a getter for reactivity. apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:91
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] apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:101
onSuccess? (result) => Effect.Effect<void, unknown> | void Called after successful submission apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:69
remoteFn? RemoteFnGetter<Schema, TReturn> Remote function to call on submit. apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:67
schema MaybeGetter<Schema> Schema for validation apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:55
serverState? MaybeGetter< | InferSchema<Schema> | null> Server State (S): Authoritative data from database. apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:63
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 apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:76
successMessage? MaybeGetter<string | null> Toast message on success. Set to null to disable. apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:80
transform? MaybeGetter<(data) => InferSchema<Schema>> Transform data before validation/submission apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:78
translate? TranslateFn Catalog-backed translate handle for built-in copy (success toast, validation summary, generic failure). When omitted, English fallbacks are used. apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:85

FormStateHooks

type FormStateHooks<T> = object;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:111

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 apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:117
onBeforeSubmit? (data) => void Called before form submission apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:115
onDataChange? (workingCopy) => void Called after working copy changes (via setData or setValue) apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:113

FormSubmitFn

type FormSubmitFn<Schema, TReturn> = (data) => Effect.Effect<TReturn, unknown>;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:40

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

Effect.Effect<TReturn, unknown>


InferSchema

type InferSchema<S> = S extends object ? T : object;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:33

Extract the output type from a Standard Schema v1-compatible schema.

Type Parameters

Type Parameter
S extends FormSchema

SubmitSuccessBehavior

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

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:50


TranslateFn

type TranslateFn = (key, vars?) => string;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:23

Catalog-backed translation handle, threaded in so this state class never renders hardcoded copy.

Parameters

Parameter Type
key string
vars? MessageVars

Returns

string

Functions

maybeAsync()

function maybeAsync<A>(evaluate): Effect<Awaited<A>, UnknownError>;

Defined in: apps/website/.api-docs-entry/ui/build/form/form_state.svelte.d.ts:120

Run a possibly-synchronous callback and await its result through Effect.

Type Parameters

Type Parameter
A

Parameters

Parameter Type
evaluate () => A

Returns

Effect<Awaited<A>, UnknownError>