attaform 0.18.2 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/chunks/devtools.cjs +1 -1
- package/dist/chunks/devtools.mjs +1 -1
- package/dist/chunks/indexeddb.cjs +1 -1
- package/dist/chunks/indexeddb.mjs +1 -1
- package/dist/chunks/local-storage.cjs +1 -1
- package/dist/chunks/local-storage.mjs +1 -1
- package/dist/chunks/session-storage.cjs +1 -1
- package/dist/chunks/session-storage.mjs +1 -1
- package/dist/index.cjs +4 -4
- package/dist/index.d.cts +68 -75
- package/dist/index.d.mts +68 -75
- package/dist/index.d.ts +68 -75
- package/dist/index.mjs +5 -5
- package/dist/nuxt.d.cts +1 -1
- package/dist/nuxt.d.mts +1 -1
- package/dist/nuxt.d.ts +1 -1
- package/dist/runtime/plugins/attaform.cjs +2 -2
- package/dist/runtime/plugins/attaform.mjs +2 -2
- package/dist/shared/{attaform.CZ-XtZt_.mjs → attaform.BTi-PsHr.mjs} +544 -134
- package/dist/shared/attaform.BTi-PsHr.mjs.map +1 -0
- package/dist/shared/{attaform.CuN7ZhBy.d.cts → attaform.BTpuvGec.d.ts} +44 -11
- package/dist/shared/{attaform.BqK_L4gK.cjs → attaform.BqEfHpVB.cjs} +119 -1
- package/dist/shared/attaform.BqEfHpVB.cjs.map +1 -0
- package/dist/shared/{attaform.D1gzu2GL.d.mts → attaform.BtBmfLQN.d.mts} +44 -11
- package/dist/shared/{attaform.Ca5_6Ky-.d.cts → attaform.C0uGZQ4M.d.cts} +365 -86
- package/dist/shared/{attaform.Ca5_6Ky-.d.mts → attaform.C0uGZQ4M.d.mts} +365 -86
- package/dist/shared/{attaform.Ca5_6Ky-.d.ts → attaform.C0uGZQ4M.d.ts} +365 -86
- package/dist/shared/{attaform.II89Pcf4.cjs → attaform.C1msmO2v.cjs} +544 -134
- package/dist/shared/attaform.C1msmO2v.cjs.map +1 -0
- package/dist/shared/{attaform.CRmmNAYp.d.cts → attaform.CBjmobqk.d.cts} +1 -1
- package/dist/shared/{attaform.B957T6NU.d.ts → attaform.CJ-e9gYI.d.ts} +1 -1
- package/dist/shared/{attaform.XDjA7sRz.d.cts → attaform.CRNA0vrd.d.mts} +1 -1
- package/dist/shared/{attaform.Dl161U6E.mjs → attaform.Cghpuav8.mjs} +2 -2
- package/dist/shared/{attaform.Dl161U6E.mjs.map → attaform.Cghpuav8.mjs.map} +1 -1
- package/dist/shared/{attaform.Df0tU0Ut.mjs → attaform.CiMqJHDm.mjs} +3 -3
- package/dist/shared/{attaform.Df0tU0Ut.mjs.map → attaform.CiMqJHDm.mjs.map} +1 -1
- package/dist/shared/{attaform.5UhpSVFI.cjs → attaform.CoxJ8Qm8.cjs} +2 -2
- package/dist/shared/{attaform.5UhpSVFI.cjs.map → attaform.CoxJ8Qm8.cjs.map} +1 -1
- package/dist/shared/{attaform.CDmaxrt2.mjs → attaform.CrpjyXdO.mjs} +119 -1
- package/dist/shared/attaform.CrpjyXdO.mjs.map +1 -0
- package/dist/shared/{attaform.FnEwjhvX.d.ts → attaform.D4I63aBV.d.ts} +1 -1
- package/dist/shared/{attaform.D9wuTGu9.d.mts → attaform.DXYHL99q.d.mts} +1 -1
- package/dist/shared/{attaform.Dlk1jMuv.cjs → attaform.JBx8cfMA.cjs} +3 -3
- package/dist/shared/{attaform.Dlk1jMuv.cjs.map → attaform.JBx8cfMA.cjs.map} +1 -1
- package/dist/shared/{attaform.DUHru0OF.cjs → attaform.OznWyOPy.cjs} +3 -3
- package/dist/shared/{attaform.DUHru0OF.cjs.map → attaform.OznWyOPy.cjs.map} +1 -1
- package/dist/shared/{attaform.M-RanbyV.d.mts → attaform.QvygsFGh.d.cts} +1 -1
- package/dist/shared/{attaform.-1GQTX2T.mjs → attaform.a3uBo-gw.mjs} +3 -3
- package/dist/shared/{attaform.-1GQTX2T.mjs.map → attaform.a3uBo-gw.mjs.map} +1 -1
- package/dist/shared/{attaform.CGX1CNpz.d.ts → attaform.ePUcKxId.d.cts} +44 -11
- package/dist/zod-v3.cjs +3 -3
- package/dist/zod-v3.d.cts +4 -4
- package/dist/zod-v3.d.mts +4 -4
- package/dist/zod-v3.d.ts +4 -4
- package/dist/zod-v3.mjs +3 -3
- package/dist/zod-v4.cjs +3 -3
- package/dist/zod-v4.d.cts +4 -4
- package/dist/zod-v4.d.mts +4 -4
- package/dist/zod-v4.d.ts +4 -4
- package/dist/zod-v4.mjs +3 -3
- package/dist/zod.cjs +4 -4
- package/dist/zod.d.cts +6 -6
- package/dist/zod.d.mts +6 -6
- package/dist/zod.d.ts +6 -6
- package/dist/zod.mjs +5 -5
- package/package.json +2 -2
- package/dist/shared/attaform.BqK_L4gK.cjs.map +0 -1
- package/dist/shared/attaform.CDmaxrt2.mjs.map +0 -1
- package/dist/shared/attaform.CZ-XtZt_.mjs.map +0 -1
- package/dist/shared/attaform.II89Pcf4.cjs.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Plugin, App } from 'vue';
|
|
2
|
-
import { S as SSRDetectOptions, d as SerializedFormData, c as AttaformRegistry } from './shared/attaform.
|
|
3
|
-
export { A as AggregateError, a as AnyForm, b as AttaformErrorCode, C as CompiledStep, F as FormStatus, I as InjectWizardInput, L as LazyMarker, e as StepSlot, U as UseRegisterReturn, f as UseWizardReturnType, W as WizardCtx, g as WizardCtxForm, h as WizardOnError, i as WizardOnSubmit, j as WizardOptions, k as WizardPersistFn, l as WizardRestoreFn, m as WizardRestoreState, n as WizardStatusesProxy, o as WizardSubmitContext, p as createRegistry, q as defaultCoercionRules, r as defineCoercion, s as getRegistryFromApp, t as injectForm, u as injectWizard, v as kAttaformRegistry, w as lazy, x as useRegister, y as useRegistry, z as useWizard } from './shared/attaform.
|
|
4
|
-
import { f as AttaformDefaults,
|
|
5
|
-
export { b as ApiErrorEntry, d as ArrayItem, e as ArrayPath, C as CoercionEntry, g as CoercionRegistry, h as CoercionResult, i as CustomDirectiveRegisterAssignerFn, D as DeepPartial, k as DefaultValuesResponse, l as DefaultValuesShape, E as ErrorsProxyShape, F as FieldMetaPayload,
|
|
2
|
+
import { S as SSRDetectOptions, d as SerializedFormData, c as AttaformRegistry } from './shared/attaform.BTpuvGec.js';
|
|
3
|
+
export { A as AggregateError, a as AnyForm, b as AttaformErrorCode, C as CompiledStep, F as FormStatus, I as InjectWizardInput, L as LazyMarker, e as StepSlot, U as UseRegisterReturn, f as UseWizardReturnType, W as WizardCtx, g as WizardCtxForm, h as WizardOnError, i as WizardOnSubmit, j as WizardOptions, k as WizardPersistFn, l as WizardRestoreFn, m as WizardRestoreState, n as WizardStatusesProxy, o as WizardSubmitContext, p as createRegistry, q as defaultCoercionRules, r as defineCoercion, s as getRegistryFromApp, t as injectForm, u as injectWizard, v as kAttaformRegistry, w as lazy, x as useRegister, y as useRegistry, z as useWizard } from './shared/attaform.BTpuvGec.js';
|
|
4
|
+
import { f as AttaformDefaults, t as FormKey, G as GenericForm, ai as UseFormConfiguration, A as AbstractSchema, j as DefaultValuesInput, aj as UseFormReturnType, a8 as RegisterValue, a3 as RegisterModelDynamicCustomDirective, aa as Segment, x as GetDisplayState, am as ValidationError, c as ApiErrorEnvelope, a as ApiErrorDetails } from './shared/attaform.C0uGZQ4M.js';
|
|
5
|
+
export { b as ApiErrorEntry, d as ArrayItem, e as ArrayPath, C as CoercionEntry, g as CoercionRegistry, h as CoercionResult, i as CustomDirectiveRegisterAssignerFn, D as DeepPartial, k as DefaultValuesResponse, l as DefaultValuesShape, m as DisplayState, E as ErrorsProxyShape, F as FieldMetaPayload, n as FieldState, o as FieldStateMap, p as FieldStateMapEntry, q as FlatPath, r as FormErrorRecord, s as FormErrorsSurface, u as FormMeta, v as FormStorage, w as FormStorageKind, H as HandleSubmit, y as HistoryConfig, I as IsTuple, z as IsUnion, J as JoinSegments, K as KeyofUnion, L as LiftedValueShape, M as MetaTrackerValue, N as NestedReadType, B as NestedType, O as OnError, P as OnInvalidSubmitPolicy, Q as OnSubmit, R as PartialFlatPath, S as Path, T as PathKey, U as PendingValidationStatus, V as PersistConfig, W as PersistConfigOptions, X as PersistIncludeMode, Z as Primitive, _ as ROOT_PATH, $ as ROOT_PATH_KEY, a0 as ReactiveValidationStatus, a1 as RegisterDirective, a2 as RegisterFlatPath, a4 as RegisterOptions, a5 as RegisterSelectModifier, a6 as RegisterTextModifier, a7 as RegisterTransform, ab as SetValueCallback, ac as SetValuePayload, ad as SettledValidationStatus, ae as SlimPrimitiveKind, af as SlimRuntimeOf, ag as SubmitHandler, ah as Unset, ak as ValidateOn, al as ValidateOnConfig, an as ValidationResponse, ao as ValidationResponseWithoutValue, ap as ValueOfUnion, aq as WriteMeta, ar as WriteShape, as as canonicalizePath, at as isPathPrefix, au as isUnset, av as parseDottedPath, aw as unset } from './shared/attaform.C0uGZQ4M.js';
|
|
6
6
|
export { A as AnonPersistError, a as AttaformError, I as InvalidPathError, b as InvalidUseFormConfigError, O as OutsideSetupError, R as RegistryNotInstalledError, c as ReservedFormKeyError, S as SensitivePersistFieldError, d as SubmitErrorHandlerError } from './shared/attaform.B7rzpK1U.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -287,86 +287,79 @@ declare global {
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
/**
|
|
290
|
-
* Library-default heuristic
|
|
291
|
-
* `field.
|
|
292
|
-
* has not configured an override at
|
|
293
|
-
* level.
|
|
294
|
-
*
|
|
295
|
-
*
|
|
296
|
-
*
|
|
297
|
-
* the
|
|
298
|
-
*
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
*
|
|
306
|
-
*
|
|
307
|
-
*
|
|
308
|
-
*
|
|
309
|
-
*
|
|
310
|
-
*
|
|
311
|
-
*
|
|
312
|
-
*
|
|
313
|
-
*
|
|
314
|
-
*
|
|
315
|
-
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
*
|
|
335
|
-
*
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
*
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
* the field; they reappear when the user blurs (or focuses a
|
|
345
|
-
* sibling). This deliberately includes blur-without-typing on a
|
|
346
|
-
* required field (touched flips on blur regardless of `dirty`), so
|
|
347
|
-
* a user who visits an empty required field and moves on sees the
|
|
348
|
-
* error.
|
|
349
|
-
*
|
|
350
|
-
* The framework already gates on `errors.length > 0` before invoking
|
|
351
|
-
* the predicate, so the body only decides *when* to surface existing
|
|
352
|
-
* errors, not whether errors exist.
|
|
290
|
+
* Library-default `getDisplayState` heuristic. Resolves every path's
|
|
291
|
+
* `field.displayState` — and thus `field.show*` and the `form.meta`
|
|
292
|
+
* rollups — whenever the consumer has not configured an override at the
|
|
293
|
+
* per-form or plugin level.
|
|
294
|
+
*
|
|
295
|
+
* One timing gate, then precedence:
|
|
296
|
+
*
|
|
297
|
+
* 1. **Timing gate.** `gateOpen` once the form has been submitted
|
|
298
|
+
* (`submissionAttempts > 0`) OR the field has been edited and then
|
|
299
|
+
* left (`blurredAfterInteraction === true`). Before the gate opens
|
|
300
|
+
* the verdict is `'idle'` regardless of errors. This is the "reward
|
|
301
|
+
* early, punish late" rule:
|
|
302
|
+
* - A clean tab-through never engages. `blurredAfterInteraction`
|
|
303
|
+
* only flips on a blur that follows an edit, so visiting a field
|
|
304
|
+
* and moving on without editing it stays quiet until a submit
|
|
305
|
+
* forces the issue, even if the field was tabbed through before.
|
|
306
|
+
* - The first pass stays quiet. Editing alone (`interacted`) does
|
|
307
|
+
* not open the gate; the error reveals only once the user
|
|
308
|
+
* finishes that pass and leaves the field, never mid-entry.
|
|
309
|
+
* - Recovery is live. The bit is sticky and carries no not-focused
|
|
310
|
+
* term, so once a field has been revealed it stays open through a
|
|
311
|
+
* re-focus: a shown error clears (or greens) the instant the
|
|
312
|
+
* value becomes valid, without forcing another blur.
|
|
313
|
+
*
|
|
314
|
+
* The submit arm covers `form.handleSubmit` directly and
|
|
315
|
+
* `wizard.handleSubmit` (which bumps `submissionAttempts` on the
|
|
316
|
+
* active form at intermediate steps and on every form at the final
|
|
317
|
+
* step, lighting up the whole flow at once).
|
|
318
|
+
*
|
|
319
|
+
* 2. **Pending.** With the gate open, a per-field run in flight
|
|
320
|
+
* (`validating === true`) wins: the verdict in `errors` is stale by
|
|
321
|
+
* definition, so surface `'pending'` (a spinner) rather than a
|
|
322
|
+
* possibly-wrong error or success. Containers roll `validating` up as
|
|
323
|
+
* a disjunction, so any descendant under revalidation reads
|
|
324
|
+
* `'pending'` at the container too.
|
|
325
|
+
*
|
|
326
|
+
* 3. **Error.** An own-path error (one whose path equals the field's own
|
|
327
|
+
* path) resolves to `'error'`. The own-path filter means a container
|
|
328
|
+
* never duplicates an error a more-specific descendant already
|
|
329
|
+
* renders; aggregate banners bind to `form.meta.errorCount` instead.
|
|
330
|
+
*
|
|
331
|
+
* 4. **Success.** No error, `valid === true`, and the green check is
|
|
332
|
+
* earned: the field is non-blank and `dirty` (its value diverges from
|
|
333
|
+
* the hydration original). Gating success on `dirty && !blank` keeps
|
|
334
|
+
* the check meaningful — an empty field that happens to pass, a
|
|
335
|
+
* pre-filled field merely tabbed through, and the post-submit flood of
|
|
336
|
+
* every valid field all stay `'idle'` rather than greening for free.
|
|
337
|
+
* `valid` already gates async schemas on the form-wide first
|
|
338
|
+
* validation pass, so success never fires before the first verdict
|
|
339
|
+
* lands.
|
|
340
|
+
*
|
|
341
|
+
* 5. **Idle.** Anything else — gate open but not validating, no own-path
|
|
342
|
+
* error, and either not yet `valid` or valid-but-unearned (blank or
|
|
343
|
+
* unchanged) — stays `'idle'`.
|
|
353
344
|
*
|
|
354
345
|
* Public re-export so adopters can compose with this without
|
|
355
|
-
* copy-pasting the rule body
|
|
356
|
-
*
|
|
357
|
-
*
|
|
346
|
+
* copy-pasting the rule body — a layered predicate that special-cases a
|
|
347
|
+
* subtree but otherwise defers picks up future refinements
|
|
348
|
+
* automatically:
|
|
358
349
|
*
|
|
359
350
|
* ```ts
|
|
360
|
-
* import {
|
|
351
|
+
* import { defaultDisplayState } from 'attaform'
|
|
361
352
|
*
|
|
362
353
|
* useForm({
|
|
363
354
|
* schema,
|
|
364
|
-
*
|
|
365
|
-
*
|
|
355
|
+
* getDisplayState: (field, formMeta) => {
|
|
356
|
+
* const state = defaultDisplayState(field, formMeta)
|
|
357
|
+
* return field.path[0] === 'username' && state === 'success' ? 'idle' : state
|
|
358
|
+
* },
|
|
366
359
|
* })
|
|
367
360
|
* ```
|
|
368
361
|
*/
|
|
369
|
-
declare const
|
|
362
|
+
declare const defaultDisplayState: GetDisplayState;
|
|
370
363
|
|
|
371
364
|
/**
|
|
372
365
|
* The library's built-in conservative set of identifier name stems that
|
|
@@ -529,5 +522,5 @@ declare const PARSE_API_ERRORS_DEFAULTS: {
|
|
|
529
522
|
*/
|
|
530
523
|
declare function parseApiErrors(payload: ApiErrorEnvelope | ApiErrorDetails | null | undefined | unknown, options: ParseApiErrorsOptions): ParseApiErrorsResult;
|
|
531
524
|
|
|
532
|
-
export { AbstractSchema, ApiErrorDetails, ApiErrorEnvelope, AttaformDefaults, AttaformRegistry, DEFAULT_SENSITIVE_NAMES, DEVTOOLS_WINDOW_KEY, DefaultValuesInput, FormKey, GenericForm, PARSE_API_ERRORS_DEFAULTS, REDACTED, RegisterValue, Segment, SerializedFormData,
|
|
525
|
+
export { AbstractSchema, ApiErrorDetails, ApiErrorEnvelope, AttaformDefaults, AttaformRegistry, DEFAULT_SENSITIVE_NAMES, DEVTOOLS_WINDOW_KEY, DefaultValuesInput, FormKey, GenericForm, GetDisplayState, PARSE_API_ERRORS_DEFAULTS, REDACTED, RegisterValue, Segment, SerializedFormData, UseFormConfiguration, UseFormReturnType, ValidationError, assignKey, createAttaform, defaultDisplayState, escapeForInlineScript, hydrateAttaformState, isRegisterValue, parseApiErrors, redactSensitiveLeaves, renderAttaformState, useAbstractForm as useForm, vRegister };
|
|
533
526
|
export type { AttaformDevtoolsBridge, AttaformPluginOptions, ParseApiErrorsOptions, ParseApiErrorsResult, SerializedAttaformState };
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as canonicalizePath, I as InvalidPathError } from './shared/attaform.
|
|
2
|
-
export { A as AnonPersistError, a as AttaformError, D as DEFAULT_SENSITIVE_NAMES, c as InvalidUseFormConfigError, O as OutsideSetupError, R as ROOT_PATH, d as ROOT_PATH_KEY, e as RegistryNotInstalledError, f as ReservedFormKeyError, S as SensitivePersistFieldError, g as SubmitErrorHandlerError, h as assignKey, l as createAttaform, o as createRegistry, s as getRegistryFromApp, t as isPathPrefix, u as isRegisterValue, x as kAttaformRegistry, C as parseDottedPath, J as useRegister, K as useRegistry, L as vRegister } from './shared/attaform.
|
|
3
|
-
export { D as DEVTOOLS_WINDOW_KEY, R as REDACTED, h as hydrateAttaformState, r as redactSensitiveLeaves, a as renderAttaformState } from './shared/attaform.
|
|
4
|
-
import { n as normalizeNumericOption } from './shared/attaform.
|
|
5
|
-
export { A as AttaformErrorCode, d as defaultCoercionRules, a as
|
|
1
|
+
import { i as canonicalizePath, I as InvalidPathError } from './shared/attaform.CrpjyXdO.mjs';
|
|
2
|
+
export { A as AnonPersistError, a as AttaformError, D as DEFAULT_SENSITIVE_NAMES, c as InvalidUseFormConfigError, O as OutsideSetupError, R as ROOT_PATH, d as ROOT_PATH_KEY, e as RegistryNotInstalledError, f as ReservedFormKeyError, S as SensitivePersistFieldError, g as SubmitErrorHandlerError, h as assignKey, l as createAttaform, o as createRegistry, s as getRegistryFromApp, t as isPathPrefix, u as isRegisterValue, x as kAttaformRegistry, C as parseDottedPath, J as useRegister, K as useRegistry, L as vRegister } from './shared/attaform.CrpjyXdO.mjs';
|
|
3
|
+
export { D as DEVTOOLS_WINDOW_KEY, R as REDACTED, h as hydrateAttaformState, r as redactSensitiveLeaves, a as renderAttaformState } from './shared/attaform.Cghpuav8.mjs';
|
|
4
|
+
import { n as normalizeNumericOption } from './shared/attaform.BTi-PsHr.mjs';
|
|
5
|
+
export { A as AttaformErrorCode, d as defaultCoercionRules, a as defaultDisplayState, b as defineCoercion, i as injectForm, c as injectWizard, f as isUnset, l as lazy, u as unset, k as useForm, m as useWizard } from './shared/attaform.BTi-PsHr.mjs';
|
|
6
6
|
|
|
7
7
|
function escapeForInlineScript(json) {
|
|
8
8
|
return json.replace(/[<>&\u2028\u2029]/g, (char) => {
|
package/dist/nuxt.d.cts
CHANGED
package/dist/nuxt.d.mts
CHANGED
package/dist/nuxt.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const app = require('nuxt/app');
|
|
4
|
-
const devtoolsShared = require('../../shared/attaform.
|
|
5
|
-
const paths = require('../../shared/attaform.
|
|
4
|
+
const devtoolsShared = require('../../shared/attaform.CoxJ8Qm8.cjs');
|
|
5
|
+
const paths = require('../../shared/attaform.BqEfHpVB.cjs');
|
|
6
6
|
|
|
7
7
|
var attaform_default = app.defineNuxtPlugin({
|
|
8
8
|
// `enforce: 'pre'` makes the "we run before any component's setup" claim
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineNuxtPlugin, useRuntimeConfig, useRoute } from 'nuxt/app';
|
|
2
|
-
import { a as renderAttaformState, h as hydrateAttaformState, D as DEVTOOLS_WINDOW_KEY } from '../../shared/attaform.
|
|
3
|
-
import { l as createAttaform, y as kAttaformWizardActiveStepResolver, s as getRegistryFromApp } from '../../shared/attaform.
|
|
2
|
+
import { a as renderAttaformState, h as hydrateAttaformState, D as DEVTOOLS_WINDOW_KEY } from '../../shared/attaform.Cghpuav8.mjs';
|
|
3
|
+
import { l as createAttaform, y as kAttaformWizardActiveStepResolver, s as getRegistryFromApp } from '../../shared/attaform.CrpjyXdO.mjs';
|
|
4
4
|
|
|
5
5
|
var attaform_default = defineNuxtPlugin({
|
|
6
6
|
// `enforce: 'pre'` makes the "we run before any component's setup" claim
|