@regle/core 1.27.2 → 1.28.0-beta.1

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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @regle/core v1.27.2
2
+ * @regle/core v1.28.0-beta.1
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
@@ -195,7 +195,7 @@ type DefaultValidators = {
195
195
  url: RegleRuleWithParamsDefinition<unknown, string, [options?: UrlOptions | undefined], false, boolean, unknown, string>;
196
196
  };
197
197
  interface inferRulesFn<TCustomRules extends Partial<ExtendedRulesDeclarationsOverrides>> {
198
- <TState extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules extends ReglePartialRuleTree<Unwrap<TState extends Record<string, any> ? TState : {}>, Partial<DefaultValidatorsTree> & TCustomRules>, TDecl extends RegleRuleDecl<NonNullable<TState>, Partial<DefaultValidatorsTree> & TCustomRules>>(state: Maybe<TState> | DeepReactiveState<TState>, rulesFactory: Unwrap<TState> extends MaybeInput<PrimitiveTypes> ? TDecl : Unwrap<TState> extends Record<string, any> ? TRules : {}): NonNullable<Unwrap<TState>> extends PrimitiveTypes ? TDecl : TRules;
198
+ <TState extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules extends ReglePartialRuleTreeInput<Unwrap<TState extends Record<string, any> ? TState : {}>, Partial<ExtendedRulesDeclarations> & TCustomRules>, TDecl extends RegleRuleDeclInput<NonNullable<TState>, Partial<ExtendedRulesDeclarations> & TCustomRules>>(state: Maybe<TState> | DeepReactiveState<TState>, rulesFactory: Unwrap<TState> extends MaybeInput<PrimitiveTypes> ? TDecl : Unwrap<TState> extends Record<string, any> ? TRules : {}): NonNullable<Unwrap<TState>> extends PrimitiveTypes ? TDecl : TRules;
199
199
  }
200
200
  /**
201
201
  * Type helper to provide autocomplete and type-checking for your form rules.
@@ -387,7 +387,7 @@ declare function extendRegleConfig<TRootCustomRules extends Partial<ExtendedRule
387
387
  declare function defineRegleOptions<T extends GlobalConfigOptions<Partial<ExtendedRulesDeclarationsOverrides>, RegleShortcutDefinition<any>>>(options: T): T;
388
388
  type useRegleFnOptions<TState extends Record<string, any> | MaybeInput<PrimitiveTypes>, TRules extends ReglePartialRuleTree<NonNullable<JoinDiscriminatedUnions<TState>>, CustomRulesDeclarationTree>, TAdditionalOptions extends Record<string, any>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>> = TState extends Record<string, any> ? Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<JoinDiscriminatedUnions<TState>, TRules, TValidationGroups> & TAdditionalOptions : Partial<DeepMaybeRef<RegleBehaviourOptions & FieldOnlyRegleBehaviourOptions>> & TAdditionalOptions;
389
389
  interface useRegleFn<TCustomRules extends Partial<ExtendedRulesDeclarationsOverrides>, TShortcuts extends RegleShortcutDefinition<any> = never, TAdditionalReturnProperties extends Record<string, any> = {}, TAdditionalOptions extends Record<string, any> = {}> {
390
- <TState extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules extends ReglePartialRuleTree<JoinDiscriminatedUnions<Unwrap<TState>>, Partial<ExtendedRulesDeclarations & Omit<TCustomRules, keyof DefaultValidatorsTree>>>, TDecl extends RegleRuleDecl<WidenPrimitiveLiterals<NonNullable<Unwrap<TState>>>, Partial<ExtendedRulesDeclarations & TCustomRules>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>>(...params: [state: Maybe<TState> | DeepReactiveState<TState>, rulesFactory: Unwrap<TState> extends MaybeInput<PrimitiveTypes> ? MaybeRefOrGetter<TDecl> : Unwrap<TState> extends Record<string, any> ? MaybeComputedOrGetter<TRules> : {}, ...(HaveAnyRequiredProps<useRegleFnOptions<Unwrap<TState>, TRules, TAdditionalOptions, TValidationGroups>> extends true ? [options: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>] : [options?: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>])]): NonNullable<Unwrap<TState>> extends PrimitiveTypes ? RegleSingleField<WidenPrimitiveLiterals<Unwrap<TState>>, TDecl, TShortcuts, TAdditionalReturnProperties> : Regle<Unwrap<TState> extends Record<string, any> ? Unwrap<TState> : {}, UnwrapSimple<TRules> extends Record<string, any> ? UnwrapSimple<TRules> : {}, TValidationGroups, TShortcuts, TAdditionalReturnProperties>;
390
+ <TState extends MaybeRef<Record<string, any> | MaybeInput<PrimitiveTypes>>, TRules extends ReglePartialRuleTreeInput<JoinDiscriminatedUnions<Unwrap<TState>>, Partial<ExtendedRulesDeclarations & Omit<TCustomRules, keyof DefaultValidatorsTree>>>, TDecl extends RegleRuleDeclInput<WidenPrimitiveLiterals<NonNullable<Unwrap<TState>>>, Partial<ExtendedRulesDeclarations & TCustomRules>>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>>(...params: [state: Maybe<TState> | DeepReactiveState<TState>, rulesFactory: Unwrap<TState> extends MaybeInput<PrimitiveTypes> ? MaybeRefOrGetter<TDecl> : Unwrap<TState> extends Record<string, any> ? MaybeComputedOrGetter<TRules> : {}, ...(HaveAnyRequiredProps<useRegleFnOptions<Unwrap<TState>, TRules, TAdditionalOptions, TValidationGroups>> extends true ? [options: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>] : [options?: useRegleFnOptions<Unwrap<NoInferLegacy<TState>>, TRules, TAdditionalOptions, TValidationGroups>])]): NonNullable<Unwrap<TState>> extends PrimitiveTypes ? RegleSingleField<WidenPrimitiveLiterals<Unwrap<TState>>, TDecl, TShortcuts, TAdditionalReturnProperties> : Regle<Unwrap<TState> extends Record<string, any> ? Unwrap<TState> : {}, UnwrapSimple<TRules> extends Record<string, any> ? UnwrapSimple<TRules> : {}, TValidationGroups, TShortcuts, TAdditionalReturnProperties>;
391
391
  __config?: GlobalConfigOptions<TCustomRules, TShortcuts>;
392
392
  }
393
393
  /**
@@ -573,7 +573,7 @@ declare function getErrors<TRegle extends SuperCompatibleRegleRoot | SuperCompat
573
573
  declare function getIssues<TRegle extends SuperCompatibleRegleRoot | SuperCompatibleRegleStatus, TPath extends Paths<TRegle['$issues']>>(r$: MaybeRefOrGetter<TRegle>, path: TPath | (string & {})): IsStringLiteral<TPath> extends true ? Get<TRegle['$issues'], TPath & string> : RegleFieldIssue[] | undefined;
574
574
  type useRulesFnOptions<TRules extends RegleUnknownRulesTree | RegleRuleDecl, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TState = InferInput<TRules>> = Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<JoinDiscriminatedUnions<TState extends Record<string, any> ? Unwrap<TState> : {}>, TState extends Record<string, any> ? (TRules extends Record<string, any> ? TRules : {}) : {}, TValidationGroups>;
575
575
  interface useRulesFn<TCustomRules extends Partial<ExtendedRulesDeclarationsOverrides>, TShortcuts extends RegleShortcutDefinition<any> = never> {
576
- <TRules extends RegleUnknownRulesTree | RegleRuleDecl, TDecl extends RegleRuleDecl<NonNullable<TState>, Partial<ExtendedRulesDeclarations> & TCustomRules>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TState extends Record<string, any> = InferInput<TRules>>(rulesFactory: TState extends Record<string, any> ? MaybeRef<TRules> | ((...args: any[]) => TRules) : {}, options?: useRulesFnOptions<TRules, TValidationGroups, TState>): NonNullable<TState> extends PrimitiveTypes ? Raw<RegleFieldStatus<NonNullable<TState>, TDecl, TShortcuts>> & StandardSchemaV1<TState> : Raw<RegleRoot<TState extends Record<string, any> ? Unwrap<TState> : {}, TRules extends Record<string, any> ? TRules : {}, TValidationGroups, TShortcuts>> & StandardSchemaV1<TState>;
576
+ <TRules extends RegleUnknownRulesTree | RegleRuleDecl, TDecl extends RegleRuleDeclInput<NonNullable<TState>, Partial<ExtendedRulesDeclarations> & TCustomRules>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]>, TState extends Record<string, any> = InferInput<TRules>>(rulesFactory: TState extends Record<string, any> ? MaybeRef<TRules> | ((...args: any[]) => TRules) : {}, options?: useRulesFnOptions<TRules, TValidationGroups, TState>): NonNullable<TState> extends PrimitiveTypes ? Raw<RegleFieldStatus<NonNullable<TState>, TDecl, TShortcuts>> & StandardSchemaV1<TState> : Raw<RegleRoot<TState extends Record<string, any> ? Unwrap<TState> : {}, TRules extends Record<string, any> ? TRules : {}, TValidationGroups, TShortcuts>> & StandardSchemaV1<TState>;
577
577
  __config?: GlobalConfigOptions<TCustomRules, TShortcuts>;
578
578
  }
579
579
  /**
@@ -706,6 +706,16 @@ interface RegleBehaviourOptions {
706
706
  * @default false
707
707
  */
708
708
  disabled?: boolean | undefined;
709
+ /**
710
+ * Number of milliseconds every async field should wait before executing its rules.
711
+ *
712
+ * Applies to every async field in the form. A per-field `$debounce` always takes priority over this global value.
713
+ *
714
+ * Set to `0` to disable the default debounce on async rules.
715
+ *
716
+ * @default 200 (for fields with async rules)
717
+ */
718
+ debounce?: number | undefined;
709
719
  }
710
720
  interface LocalRegleBehaviourOptions<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState>, TValidationGroups extends Record<string, RegleValidationGroupEntry[]> = {}> {
711
721
  /**
@@ -778,10 +788,6 @@ interface RegleValidationGroupOutput {
778
788
  $silentErrors: string[];
779
789
  }
780
790
  type FieldRegleBehaviourOptions<TValue extends unknown = unknown> = AddDollarToOptions<RegleBehaviourOptions> & {
781
- /**
782
- * Let you declare the number of milliseconds the rule needs to wait before executing. Useful for async or heavy computations.
783
- */
784
- $debounce?: number;
785
791
  /**
786
792
  * Override the default `$edited` handler.
787
793
  */
@@ -1290,13 +1296,14 @@ type RegleRoot<TState extends object | Record<string, unknown> = {}, TRules exte
1290
1296
  $groups: { readonly [TKey in keyof TValidationGroups]: RegleValidationGroupOutput };
1291
1297
  });
1292
1298
  type ComputeNestedFieldStatus<TState extends Record<string, any>, TRules extends Record<string, any>, TKey extends keyof TState, TShortcuts extends RegleShortcutDefinition> = TKey extends string ? IsUnion<NonNullable<TRules[TKey]>> extends true ? ExtendOnlyRealRecord<TState[TKey]> extends true ? MaybeVariantStatus<NonNullable<TState>[TKey], NonNullable<TRules[TKey]>, TShortcuts> : InferRegleStatusType<NonNullable<TRules[TKey]>, NonNullable<TState>, TKey, TShortcuts> : InferRegleStatusType<NonNullable<TRules[TKey]>, NonNullable<TState>, TKey, TShortcuts> : never;
1293
- type ProcessNestedFields<TState extends Record<string, any> | undefined, TRules extends ReglePartialRuleTree<NonNullable<TState>>, TShortcuts extends RegleShortcutDefinition = {}, TIsFields extends boolean = false> = Or<HasNamedKeys<TState>, TIsFields> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? TKey : never : never : TKey]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> } & (IsEmptyObject<TRules> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> | (isUndefinedOrNull<TState[TKey]> extends true ? undefined : never) } : { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? NonNullable<TRules[TKey]> extends MaybeRef<RegleRuleDecl> ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]-?: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> }) : {
1299
+ type $IsFieldLevelRule<TRule> = NonNullable<TRule> extends MaybeRef<RegleRuleDecl> ? true : false;
1300
+ type ProcessNestedFields<TState extends Record<string, any> | undefined, TRules extends ReglePartialRuleTree<NonNullable<TState>>, TShortcuts extends RegleShortcutDefinition = {}, TIsFields extends boolean = false> = Or<HasNamedKeys<TState>, TIsFields> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? $IsFieldLevelRule<TRules[TKey]> extends true ? IsEmptyObject<TRules[TKey]> extends true ? TKey : never : never : TKey]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> } & (IsEmptyObject<TRules> extends true ? { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? $IsFieldLevelRule<TRules[TKey]> extends true ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> | (isUndefinedOrNull<TState[TKey]> extends true ? undefined : never) } : { readonly [TKey in keyof TState as TRules[TKey] extends NonNullable<TRules[TKey]> ? $IsFieldLevelRule<TRules[TKey]> extends true ? IsEmptyObject<TRules[TKey]> extends true ? never : TKey : TKey : never]-?: ComputeNestedFieldStatus<NonNullable<TState>, TRules, TKey, TShortcuts> }) : {
1294
1301
  [x: string]: RegleCommonStatus<unknown, unknown>;
1295
1302
  };
1296
1303
  /**
1297
1304
  * @public
1298
1305
  */
1299
- type RegleStatus<TState extends object | Record<string, any> | undefined = Record<string, any>, TRules extends ReglePartialRuleTree<NonNullable<TState>, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = {}, _TFields = ProcessNestedFields<TState, TRules, TShortcuts, true>> = Omit<RegleCommonStatus<TState, TState, TRules>, '$issues' | '$errors'> & {
1306
+ type RegleStatus<TState extends object | Record<string, any> | undefined = Record<string, any>, TRules extends ReglePartialRuleTree<NonNullable<TState>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = {}, _TFields = ProcessNestedFields<TState, TRules, TShortcuts, true>> = Omit<RegleCommonStatus<TState, TState, TRules>, '$issues' | '$errors'> & {
1300
1307
  /** Represents all the children of your object. You can access any nested child at any depth to get the relevant data you need for your form. */readonly $fields: _TFields;
1301
1308
  /**
1302
1309
  * Collection of all the issues, collected for all children properties and nested forms.
@@ -1315,8 +1322,8 @@ type RegleStatus<TState extends object | Record<string, any> | undefined = Recor
1315
1322
  $setExternalIssues(issues: RegleExternalIssueTree<TState>): void; /** Will return a copy of your state with only the fields that are dirty. By default it will filter out nullish values or objects, but you can override it with the first parameter $extractDirtyFields(false). */
1316
1323
  $extractDirtyFields: (filterNullishValues?: boolean) => DeepPartial<TState>; /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
1317
1324
  $validate: (forceValues?: JoinDiscriminatedUnions<TState> extends EmptyObject ? any : HasNamedKeys<JoinDiscriminatedUnions<TState>> extends true ? IsUnknown<JoinDiscriminatedUnions<TState>> extends true ? any : JoinDiscriminatedUnions<TState> : any) => Promise<RegleResult<JoinDiscriminatedUnions<TState>, TRules>>;
1318
- } & (HasNamedKeys<TState> extends true ? _TFields : {}) & CustomNestedProperties & ([TShortcuts['nested']] extends [never] ? {} : { [K in keyof TShortcuts['nested']]: ReturnType<NonNullable<TShortcuts['nested']>[K]> }) & (TRules['$self'] extends RegleRuleDecl ? {
1319
- /** Represents the status of the parent object. Status only concern the object itself and not its children */readonly $self: RegleFieldStatus<NonNullable<TRules['$self']>, NonNullable<TRules['$self']>, TShortcuts>;
1325
+ } & (HasNamedKeys<TState> extends true ? _TFields : {}) & CustomNestedProperties & ([TShortcuts['nested']] extends [never] ? {} : { [K in keyof TShortcuts['nested']]: ReturnType<NonNullable<TShortcuts['nested']>[K]> }) & (TRules['$self'] extends RegleRuleDeclInput<any, Partial<ExtendedRulesDeclarations>> ? {
1326
+ /** Represents the status of the parent object. Status only concern the object itself and not its children */readonly $self: RegleFieldStatus<TState, NonNullable<TRules['$self']>, TShortcuts>;
1320
1327
  } : {});
1321
1328
  /**
1322
1329
  * @internal
@@ -1350,7 +1357,7 @@ type $InternalRegleStatusType = $InternalRegleCollectionStatus | $InternalRegleS
1350
1357
  /**
1351
1358
  * @public
1352
1359
  */
1353
- type RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any, Partial<ExtendedRulesDeclarations>> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState, TState, TRules>, '$value' | '$silentValue' | '$initialValue' | '$originalValue' | '$issues' | '$errors'> & {
1360
+ type RegleFieldStatus<TState extends any = any, TRules extends RegleFormPropertyType<any> = Record<string, any>, TShortcuts extends RegleShortcutDefinition = never> = Omit<RegleCommonStatus<TState, TState, TRules>, '$value' | '$silentValue' | '$initialValue' | '$originalValue' | '$issues' | '$errors'> & {
1354
1361
  /** A reference to the original validated model. It can be used to bind your form with v-model.*/$value: MaybeOutput<UnwrapNestedRefs<TState>>; /** $value variant that will not "touch" the field and update the value silently, running only the rules, so you can easily swap values without impacting user interaction. */
1355
1362
  $silentValue: MaybeOutput<UnwrapNestedRefs<TState>>;
1356
1363
  /**
@@ -1379,12 +1386,12 @@ type RegleFieldStatus<TState extends any = any, TRules extends RegleFormProperty
1379
1386
  readonly $externalIssues: RegleFieldIssue[]; /** Stores active tooltips messages of the current field */
1380
1387
  readonly $tooltips: string[]; /** Represents the inactive status. Is true when this state have empty rules */
1381
1388
  readonly $inactive: boolean; /** Adds runtime rules to the field. */
1382
- $addRules: (rules: RegleRuleDecl) => void;
1389
+ $addRules: (rules: RegleRuleDeclInput<TState>) => void;
1383
1390
  /**
1384
1391
  * Adds runtime rules to the field.
1385
1392
  * @deprecated Use `$addRules` instead. This alias will be removed in a future version.
1386
1393
  */
1387
- addRules: (rules: RegleRuleDecl) => void; /** Sets the external errors for the field. */
1394
+ addRules: (rules: RegleRuleDeclInput<TState>) => void; /** Sets the external errors for the field. */
1388
1395
  $setExternalErrors(errors: string[]): void; /** Sets the external issues for the field. */
1389
1396
  $setExternalIssues(issues: RegleFieldIssue[]): void; /** Will return a copy of your state with only the fields that are dirty. By default it will filter out nullish values or objects, but you can override it with the first parameter $extractDirtyFields(false). */
1390
1397
  $extractDirtyFields: (filterNullishValues?: boolean) => MaybeOutput<TState>; /** Sets all properties as dirty, triggering all rules. It returns a promise that will either resolve to false or a type safe copy of your form state. Values that had the required rule will be transformed into a non-nullable value (type only). */
@@ -1409,9 +1416,9 @@ interface $InternalRegleFieldStatus extends $InternalRegleCommonStatus {
1409
1416
  readonly $isDebouncing: boolean;
1410
1417
  readonly $schemaMode?: boolean;
1411
1418
  readonly '~modifiers'?: FieldRegleBehaviourOptions;
1412
- $addRules: (rules: RegleRuleDecl) => void;
1419
+ $addRules: (rules: RegleRuleDeclInput) => void;
1413
1420
  /** @deprecated Use `$addRules` instead. */
1414
- addRules: (rules: RegleRuleDecl) => void;
1421
+ addRules: (rules: RegleRuleDeclInput) => void;
1415
1422
  $extractDirtyFields: (filterNullishValues?: boolean) => any;
1416
1423
  $validate: (forceValues?: unknown) => Promise<$InternalRegleResult>;
1417
1424
  /**
@@ -1652,8 +1659,15 @@ interface $InternalRegleCollectionStatus extends Omit<$InternalRegleStatus, '$fi
1652
1659
  /**
1653
1660
  * @public
1654
1661
  */
1655
- type ReglePartialRuleTree<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = { [TKey in keyof TForm]?: RegleFormPropertyType<TForm[TKey], TCustomRules> } & SelfObjectValidationDecl<TForm, TCustomRules>;
1656
- type SelfObjectValidationDecl<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = {
1662
+ type ReglePartialRuleTree<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = {}> = { [TKey in keyof TForm]?: RegleFormPropertyType<TForm[TKey], TCustomRules> } & SelfObjectValidationDecl<TForm, TCustomRules>;
1663
+ /**
1664
+ * Rule tree type for rule *input* sites (useRegle, inferRules, satisfies RegleComputedRules).
1665
+ * Uses the full validator catalog for autocomplete and strict checking.
1666
+ *
1667
+ * @public
1668
+ */
1669
+ type ReglePartialRuleTreeInput<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = ReglePartialRuleTree<TForm, TCustomRules>;
1670
+ type SelfObjectValidationDecl<TForm extends Record<string, any> = Record<string, any>, TCustomRules extends Partial<ExtendedRulesDeclarations> = {}> = {
1657
1671
  $self?: MaybeRefOrComputedRef<RegleRuleDecl<TForm, TCustomRules>>;
1658
1672
  };
1659
1673
  /**
@@ -1682,7 +1696,13 @@ type $InternalReglePartialRuleTree = {
1682
1696
  /**
1683
1697
  * @public
1684
1698
  */
1685
- type RegleFormPropertyType<TValue = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = [NonNullable<TValue>] extends [never] ? MaybeRefOrComputedRef<RegleRuleDecl<TValue, TCustomRules>> : NonNullable<TValue> extends PrimitiveTypes ? MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue>, TCustomRules>> : NonNullable<TValue> extends Array<any> ? RegleCollectionRuleDecl<TValue, TCustomRules> : NonNullable<TValue> extends Ref<infer V> ? RegleFormPropertyType<V, TCustomRules> : NonNullable<TValue> extends Record<string, any> ? NonNullable<TValue> extends RegleStatic<infer U> ? MaybeRefOrComputedRef<RegleRuleDecl<Raw<U>, TCustomRules>> : ReglePartialRuleTree<NonNullable<TValue>, TCustomRules> : MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue>, TCustomRules>>;
1699
+ type RegleFormPropertyType<TValue = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = {}> = [NonNullable<TValue>] extends [never] ? MaybeRefOrComputedRef<RegleRuleDecl<TValue, TCustomRules>> : NonNullable<TValue> extends PrimitiveTypes ? MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue>, TCustomRules>> : NonNullable<TValue> extends Array<any> ? RegleCollectionRuleDecl<TValue, TCustomRules> : NonNullable<TValue> extends Ref<infer V> ? RegleFormPropertyType<V, TCustomRules> : NonNullable<TValue> extends Record<string, any> ? NonNullable<TValue> extends RegleStatic<infer U> ? MaybeRefOrComputedRef<RegleRuleDecl<Raw<U>, TCustomRules>> : ReglePartialRuleTree<NonNullable<TValue>, TCustomRules> : MaybeRefOrComputedRef<RegleRuleDecl<NonNullable<TValue>, TCustomRules>>;
1700
+ /**
1701
+ * Form property rules for rule *input* sites.
1702
+ *
1703
+ * @public
1704
+ */
1705
+ type RegleFormPropertyTypeInput<TValue = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = RegleFormPropertyType<TValue, TCustomRules>;
1686
1706
  /**
1687
1707
  * @internal
1688
1708
  * @reference {@link RegleFormPropertyType}
@@ -1692,9 +1712,16 @@ type $InternalFormPropertyTypes = MaybeRefOrComputedRef<$InternalRegleRuleDecl>
1692
1712
  * @public
1693
1713
  * Rule tree for a form property
1694
1714
  */
1695
- type RegleRuleDecl<TValue extends any = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<DefaultValidatorsTree>, TOptions extends Record<string, unknown> = FieldRegleBehaviourOptions<TValue>> = TOptions & { [TKey in keyof RemoveIndexSignature<TCustomRules>]?: NonNullable<TCustomRules[TKey]> extends RegleRuleDefinitionLight<infer TParams, boolean, infer TMetadata> ? RegleRuleDefinitionLight<ParamsToLooseParams<TParams>, boolean, TMetadata> | InlineRuleDeclaration<TValue, ParamsToLooseParams<TParams>, any> : TCustomRules[TKey] } & {
1715
+ type RegleRuleDecl<TValue extends any = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = {}, TOptions extends Record<string, unknown> = FieldRegleBehaviourOptions<TValue>> = TOptions & { [TKey in keyof RemoveIndexSignature<TCustomRules>]?: NonNullable<TCustomRules[TKey]> extends RegleRuleDefinitionLight<infer TParams, boolean, infer TMetadata> ? RegleRuleDefinitionLight<ParamsToLooseParams<TParams>, boolean, TMetadata> | InlineRuleDeclaration<TValue, ParamsToLooseParams<TParams>, any> : TCustomRules[TKey] } & {
1696
1716
  [x: string]: FormRuleDeclaration<TValue, any[]> | boolean | number | undefined | RegleImmediateDirtyMode;
1697
1717
  };
1718
+ /**
1719
+ * Rule declaration type for rule *input* sites (useRegle, inferRules, $addRules).
1720
+ * Uses the full validator catalog for autocomplete and strict checking.
1721
+ *
1722
+ * @public
1723
+ */
1724
+ type RegleRuleDeclInput<TValue extends any = any, TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>, TOptions extends Record<string, unknown> = FieldRegleBehaviourOptions<TValue>> = RegleRuleDecl<TValue, TCustomRules, TOptions>;
1698
1725
  /**
1699
1726
  * @internal
1700
1727
  * @reference {@link RegleRuleDecl}
@@ -1706,7 +1733,7 @@ type $InternalRegleRuleDecl = FieldRegleBehaviourOptions & CollectionRegleBehavi
1706
1733
  type RegleCollectionRuleDeclKeyProperty = {
1707
1734
  $key?: PropertyKey;
1708
1735
  };
1709
- type CollectionEachRuleDecl<TValue = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = IsAny<TValue> extends true ? {
1736
+ type CollectionEachRuleDecl<TValue = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = {}> = IsAny<TValue> extends true ? {
1710
1737
  $each?: RegleCollectionEachRules<TValue, TCustomRules>;
1711
1738
  } : MaybeNullable<TValue> extends true ? {
1712
1739
  /**
@@ -1726,9 +1753,9 @@ type CollectionEachRuleDecl<TValue = any[], TCustomRules extends Partial<Extende
1726
1753
  /**
1727
1754
  * @public
1728
1755
  */
1729
- type RegleCollectionRuleDecl<TValue = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = (CollectionEachRuleDecl<TValue, TCustomRules> & RegleRuleDecl<NonNullable<TValue>, TCustomRules, CollectionRegleBehaviourOptions>) | (CollectionEachRuleDecl<TValue, TCustomRules> & CollectionRegleBehaviourOptions);
1756
+ type RegleCollectionRuleDecl<TValue = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = {}> = (CollectionEachRuleDecl<TValue, TCustomRules> & RegleRuleDecl<NonNullable<TValue>, TCustomRules, CollectionRegleBehaviourOptions>) | (CollectionEachRuleDecl<TValue, TCustomRules> & CollectionRegleBehaviourOptions);
1730
1757
  /** @public */
1731
- type RegleCollectionEachRules<TValue = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = Partial<ExtendedRulesDeclarations>> = MaybeGetter<RegleFormPropertyType<ArrayElement<NonNullable<TValue>>, TCustomRules>, ArrayElement<TValue>, RegleCollectionRuleDeclKeyProperty, RegleFormPropertyType<ArrayElement<NonNullable<TValue>>, TCustomRules>>;
1758
+ type RegleCollectionEachRules<TValue = any[], TCustomRules extends Partial<ExtendedRulesDeclarations> = {}> = MaybeGetter<RegleFormPropertyType<ArrayElement<NonNullable<TValue>>, TCustomRules>, ArrayElement<TValue>, RegleCollectionRuleDeclKeyProperty, RegleFormPropertyType<ArrayElement<NonNullable<TValue>>, TCustomRules>>;
1732
1759
  /**
1733
1760
  * @internal
1734
1761
  * @reference {@link RegleCollectionRuleDecl}
@@ -1753,19 +1780,19 @@ type RegleErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TIssue exten
1753
1780
  type RegleIssuesTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false, TRules extends ReglePartialRuleTree<NonNullable<TState>> = Record<string, any>> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], false, true, TSchema, K extends keyof TRules ? TRules[K] extends RegleFormPropertyType<Record<string, any>> ? TRules[K] : EmptyObject : EmptyObject> } & {
1754
1781
  readonly $self?: RegleFieldIssue[];
1755
1782
  };
1756
- type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : ({ readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, TSchema> } & {
1757
- readonly $self?: RegleFieldIssue[];
1783
+ type RegleExternalErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : ({ [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, TSchema> } & {
1784
+ $self?: RegleFieldIssue[];
1758
1785
  }) | Record<Paths<TState> | (string & {}), string[]>;
1759
- type RegleExternalIssueTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : ({ readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> } & {
1760
- readonly $self?: RegleExternalFieldIssue[];
1786
+ type RegleExternalIssueTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : ({ [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> } & {
1787
+ $self?: RegleExternalFieldIssue[];
1761
1788
  }) | Partial<Record<Paths<TState> | (string & {}), RegleExternalFieldIssue[]>>;
1762
- type RegleExternalSchemaErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> };
1763
- type RegleExternalSchemaIssueTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : { readonly [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> };
1789
+ type RegleExternalSchemaErrorTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : { [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> };
1790
+ type RegleExternalSchemaIssueTree<TState = MaybeRef<Record<string, any> | any[]>, TSchema extends boolean = false> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : { [K in keyof JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>]?: RegleValidationErrors<JoinDiscriminatedUnions<UnwrapMaybeRef<TState>>[K], true, true, TSchema> };
1764
1791
  type ErrorMessageOrIssue<TIssue extends boolean, TRules extends RegleFormPropertyType<Record<string, any>> = EmptyObject> = TIssue extends true ? RegleFieldIssue<TRules>[] : string[];
1765
1792
  type ExternalErrorMessageOrIssue<TIssue extends boolean> = TIssue extends true ? RegleExternalFieldIssue[] : string[];
1766
1793
  type RegleValidationErrors<TState extends Record<string, any> | any[] | unknown = never, TExternal extends boolean = false, TIssue extends boolean = false, TSchema extends boolean = false, TRules extends RegleFormPropertyType<Record<string, any>> = EmptyObject> = IsAny<TState> extends true ? any : IsUnknown<TState> extends true ? any : HasNamedKeys<TState> extends true ? NonNullable<TState> extends Array<infer U> ? TSchema extends false ? TExternal extends false ? RegleCollectionErrors<U, TIssue, TSchema> : RegleExternalCollectionErrors<U, TIssue, TSchema> : RegleCollectionErrors<U, TIssue, TSchema> : NonNullable<TState> extends Date | File ? TExternal extends true ? ExternalErrorMessageOrIssue<TIssue> : ErrorMessageOrIssue<TIssue, TRules> : NonNullable<TState> extends Record<string, any> ? IsRegleStatic<NonNullable<TState>> extends true ? TExternal extends true ? ExternalErrorMessageOrIssue<TIssue> : ErrorMessageOrIssue<TIssue, TRules> : TExternal extends false ? RegleErrorTree<TState, TIssue, TSchema> : TIssue extends true ? RegleExternalIssueTree<TState, TSchema> : RegleExternalErrorTree<TState, TSchema> : TExternal extends true ? ExternalErrorMessageOrIssue<TIssue> : ErrorMessageOrIssue<TIssue, TRules> : any;
1767
1794
  interface RegleIssueCustomMetadata {}
1768
- type RegleFieldIssue<TRules extends RegleFormPropertyType<unknown, Partial<ExtendedRulesDeclarations>> = EmptyObject> = {
1795
+ type RegleFieldIssue<TRules extends RegleFormPropertyType<unknown> = EmptyObject> = {
1769
1796
  readonly $property: string;
1770
1797
  readonly $type?: string;
1771
1798
  readonly $message: string;
@@ -1784,7 +1811,7 @@ type RegleFieldIssue<TRules extends RegleFormPropertyType<unknown, Partial<Exten
1784
1811
  readonly $rule: string;
1785
1812
  } }[keyof ComputeFieldRules<any, TRules>]);
1786
1813
  type RegleExternalFieldIssue = Pick<RegleFieldIssue, '$message'> & Partial<Omit<RegleFieldIssue, '$message'>> & Record<string, unknown>;
1787
- type ComputeFieldRules<TState extends any, TRules extends MaybeRef<RegleFormPropertyType<unknown, Partial<ExtendedRulesDeclarations>>>> = IsEmptyObject<UnwrapRef<TRules>> extends true ? {
1814
+ type ComputeFieldRules<TState extends any, TRules extends MaybeRef<RegleFormPropertyType<unknown>>> = IsEmptyObject<UnwrapRef<TRules>> extends true ? {
1788
1815
  readonly [x: string]: RegleRuleStatus<TState, any[], any>;
1789
1816
  } : { readonly [TRuleKey in keyof UnwrapRef<TRules> as TRuleKey extends '$each' | keyof FieldRegleBehaviourOptions ? never : TRuleKey]: RegleRuleStatus<TState, UnwrapRef<TRules>[TRuleKey] extends RegleRuleDefinitionLight<infer TParams, any> ? TParams : [], UnwrapRef<TRules>[TRuleKey] extends RegleRuleDefinitionLight<any, any, infer TMetadata> ? TMetadata : UnwrapRef<TRules>[TRuleKey] extends InlineRuleDeclaration<any, any[], infer TReturn> ? TReturn extends Promise<infer P> ? P : TReturn : RegleRuleMetadataDefinition> };
1790
1817
  type RegleCollectionErrors<TState extends any, TIssue extends boolean = false, TSchema extends boolean = false> = {
@@ -2325,4 +2352,4 @@ declare function isRegleInstance(value: unknown): boolean;
2325
2352
  * @see {@link https://reglejs.dev/introduction/devtools Documentation}
2326
2353
  */
2327
2354
  declare const RegleVuePlugin: Plugin;
2328
- export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type CustomCollectionProperties, type CustomFieldProperties, type CustomNestedProperties, type CustomRules, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type DumbJoinDiscriminatedUnions, type ExtendedRulesDeclarations, type ExtendedRulesDeclarationsOverrides, type FormRuleDeclaration, type GlobalConfigOverrides, type HasNamedKeys, type HaveAnyRequiredProps, type InferInput, type InferOutput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleSettings, type InferRegleShortcuts, type InferRegleStatusType, type InferRegleValidationResult, type InferSafeOutput, type InferValidOutput, type InlineRuleDeclaration, InternalRuleType, type IsRegleStatic, type JoinDiscriminatedUnions, type LazyJoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeReadonly, type MaybeVariantStatus, type MeasurableValue, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NarrowVariantExtracts, type NarrowVariantFieldExtracts, type NoInferLegacy, type NonEmptyTuple, type ParamsToLooseParams, type Prettify, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleCustomFieldStatus, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalFieldIssue, type RegleExternalIssueTree, type RegleExternalSchemaErrorTree, type RegleExternalSchemaIssueTree, type RegleFieldIssue, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type RegleIssueCustomMetadata, type RegleIssuesTree, type RegleLike, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionLight, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleRuleWithParamsDefinitionInput, type RegleShortcutDefinition, type RegleSingleField, type RegleStatic, type RegleStaticImpl, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, RegleVuePlugin, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegle, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type TupleToPlainObj, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, type UnwrapStatic, type UrlOptions, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRegleOptions, defineRules, extendRegleConfig, flatErrors, getErrors, getIssues, inferRules, type inferRulesFn, type isEditedHandlerFn, isRegleInstance, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useRules, type useRulesFn, useScopedRegle, type useScopedRegleFn, variantToRef };
2355
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type ArrayElement, type CommonAlphaOptions, type CommonComparisonOptions, type CreateScopedUseRegleOptions, type CustomCollectionProperties, type CustomFieldProperties, type CustomNestedProperties, type CustomRules, type DeepMaybeRef, type DeepPartial, type DeepReactiveState, type DefaultValidatorsTree, type DumbJoinDiscriminatedUnions, type ExtendedRulesDeclarations, type ExtendedRulesDeclarationsOverrides, type FormRuleDeclaration, type GlobalConfigOverrides, type HasNamedKeys, type HaveAnyRequiredProps, type InferInput, type InferOutput, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleSettings, type InferRegleShortcuts, type InferRegleStatusType, type InferRegleValidationResult, type InferSafeOutput, type InferValidOutput, type InlineRuleDeclaration, InternalRuleType, type IsRegleStatic, type JoinDiscriminatedUnions, type LazyJoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type MaybeInput, type MaybeOutput, type MaybeReadonly, type MaybeVariantStatus, type MeasurableValue, type MergedRegles, type MergedScopedRegles, type NarrowVariant, type NarrowVariantExtracts, type NarrowVariantFieldExtracts, type NoInferLegacy, type NonEmptyTuple, type ParamsToLooseParams, type Prettify, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleCustomFieldStatus, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalFieldIssue, type RegleExternalIssueTree, type RegleExternalSchemaErrorTree, type RegleExternalSchemaIssueTree, type RegleFieldIssue, type RegleFieldStatus, type RegleFormPropertyType, type RegleFormPropertyTypeInput, type RegleInternalRuleDefs, type RegleIssueCustomMetadata, type RegleIssuesTree, type RegleLike, type ReglePartialRuleTree, type ReglePartialRuleTreeInput, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDeclInput, type RegleRuleDefinition, type RegleRuleDefinitionLight, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleRuleWithParamsDefinitionInput, type RegleShortcutDefinition, type RegleSingleField, type RegleStatic, type RegleStaticImpl, type RegleStatus, type RegleUniversalParams, type RegleUnknownRulesTree, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, RegleVuePlugin, type ResolvedRegleBehaviourOptions, type ScopedInstancesRecord, type ScopedInstancesRecordLike, type SuperCompatibleRegle, type SuperCompatibleRegleCollectionErrors, type SuperCompatibleRegleCollectionStatus, type SuperCompatibleRegleFieldStatus, type SuperCompatibleRegleResult, type SuperCompatibleRegleRoot, type SuperCompatibleRegleRuleStatus, type SuperCompatibleRegleStatus, type TupleToPlainObj, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, type UnwrapStatic, type UrlOptions, type UseScopedRegleOptions, createRule, createScopedUseRegle, createVariant, defineRegleConfig, defineRegleOptions, defineRules, extendRegleConfig, flatErrors, getErrors, getIssues, inferRules, type inferRulesFn, type isEditedHandlerFn, isRegleInstance, markStatic, mergeRegles, narrowVariant, refineRules, unwrapRuleParameters, useCollectScope, type useCollectScopeFn, useRegle, type useRegleFn, useRootStorage, useRules, type useRulesFn, useScopedRegle, type useScopedRegleFn, variantToRef };
@@ -1,11 +1,12 @@
1
1
  /**
2
- * @regle/core v1.27.2
2
+ * @regle/core v1.28.0-beta.1
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
6
6
 
7
7
  import { computed, effectScope, getCurrentInstance, getCurrentScope, inject, isRef, markRaw, nextTick, onMounted, onScopeDispose, reactive, readonly, ref, shallowRef, toRef, toValue, triggerRef, unref, version, watch, watchEffect } from "vue";
8
- import { setupDevtoolsPlugin } from "@vue/devtools-api";
8
+ import { onDevToolsClientConnected, setupDevtoolsPlugin } from "@vue/devtools-api";
9
+ import { DevToolsMessagingHookKeys, DevToolsV6PluginAPIHookKeys, devtoolsContext, devtoolsState, getInspector } from "@vue/devtools-kit";
9
10
  /**
10
11
  * Server side friendly way of checking for a File
11
12
  */
@@ -661,6 +662,12 @@ function mergeArrayGroupProperties(entries, property) {
661
662
  return all.concat(fetchedProperty);
662
663
  }, []);
663
664
  }
665
+ const regleSymbol = Symbol("regle");
666
+ const regleConfigSymbol = Symbol("regle-config");
667
+ const REGLE_FLAGS = { REGLE_STATIC: "__regle_static" };
668
+ function isRegleDevtoolsTestEnv() {
669
+ return Boolean(typeof globalThis !== "undefined" && ("__vitest_worker__" in globalThis || "__JEST_GLOBAL__" in globalThis || typeof window !== "undefined" && "Cypress" in window || typeof process !== "undefined" && process.env && (process.env.VITEST || process.env.JEST_WORKER_ID || process.env.NODE_ENV === "test" || process.env.PLAYWRIGHT_TEST)));
670
+ }
664
671
  const COLORS = {
665
672
  ERROR: {
666
673
  text: 16777215,
@@ -753,30 +760,78 @@ const INSPECTOR_IDS = {
753
760
  COMPONENTS: "components",
754
761
  TIMELINE: "regle-timeline"
755
762
  };
756
- const regleSymbol = Symbol("regle");
757
- const regleConfigSymbol = Symbol("regle-config");
758
- const REGLE_FLAGS = { REGLE_STATIC: "__regle_static" };
759
- function isRegleDevtoolsTestEnv() {
760
- return Boolean(typeof globalThis !== "undefined" && ("__vitest_worker__" in globalThis || "__JEST_GLOBAL__" in globalThis || typeof window !== "undefined" && "Cypress" in window || typeof process !== "undefined" && process.env && (process.env.VITEST || process.env.JEST_WORKER_ID || process.env.NODE_ENV === "test" || process.env.PLAYWRIGHT_TEST)));
763
+ /**
764
+ * Bypasses Vue Devtools high-performance mode, where `api.sendInspectorTree()` is a no-op.
765
+ */
766
+ async function syncInspectorToClient(inspectorId, app) {
767
+ const inspector = getInspector(inspectorId, app);
768
+ const treePayload = {
769
+ app,
770
+ inspectorId,
771
+ filter: inspector?.treeFilter ?? "",
772
+ rootNodes: []
773
+ };
774
+ await devtoolsContext.hooks.callHookWith(async (callbacks) => {
775
+ await Promise.all(callbacks.map((cb) => cb(treePayload)));
776
+ }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_TREE, treePayload);
777
+ await devtoolsContext.hooks.callHookWith(async (callbacks) => {
778
+ await Promise.all(callbacks.map((cb) => cb({
779
+ inspectorId,
780
+ rootNodes: treePayload.rootNodes
781
+ })));
782
+ }, DevToolsMessagingHookKeys.SEND_INSPECTOR_TREE_TO_CLIENT, {
783
+ inspectorId,
784
+ rootNodes: treePayload.rootNodes
785
+ });
786
+ const nodeId = inspector?.selectedNodeId ?? "";
787
+ const statePayload = {
788
+ app,
789
+ inspectorId,
790
+ nodeId,
791
+ state: {}
792
+ };
793
+ const stateCtx = { currentTab: `custom-inspector:${inspectorId}` };
794
+ if (nodeId) await devtoolsContext.hooks.callHookWith(async (callbacks) => {
795
+ await Promise.all(callbacks.map((cb) => cb(statePayload, stateCtx)));
796
+ }, DevToolsV6PluginAPIHookKeys.GET_INSPECTOR_STATE, statePayload);
797
+ await devtoolsContext.hooks.callHookWith(async (callbacks) => {
798
+ await Promise.all(callbacks.map((cb) => cb({
799
+ inspectorId,
800
+ nodeId,
801
+ state: statePayload.state
802
+ })));
803
+ }, DevToolsMessagingHookKeys.SEND_INSPECTOR_STATE_TO_CLIENT, {
804
+ inspectorId,
805
+ nodeId,
806
+ state: statePayload.state
807
+ });
808
+ }
809
+ async function emitInspectorState(api, app) {
810
+ const inspectorId = INSPECTOR_IDS.INSPECTOR;
811
+ if (app && (devtoolsState.clientConnected || devtoolsState.connected)) {
812
+ await syncInspectorToClient(inspectorId, app);
813
+ return;
814
+ }
815
+ api.sendInspectorTree(inspectorId);
816
+ api.sendInspectorState(inspectorId);
761
817
  }
762
- function useRegleDevtoolsRegistry() {
818
+ const REGLE_DEVTOOLS_GLOBAL_KEY = "__REGLE_DEVTOOLS_REGISTRY__";
819
+ function createRegleDevtoolsRegistry() {
763
820
  const loggedWarning = ref(false);
764
821
  const devtoolsApi = shallowRef();
822
+ const devtoolsApp = shallowRef();
765
823
  const instances = shallowRef(/* @__PURE__ */ new Map());
766
824
  const watchers = shallowRef(/* @__PURE__ */ new Map());
767
- const idCounters = shallowRef(/* @__PURE__ */ new Map());
768
- const looseIdCounter = ref(0);
825
+ const instanceIndexCounter = ref(0);
769
826
  let pendingNotifyFrame;
770
- function setApi(api) {
827
+ function setApi(api, app) {
771
828
  devtoolsApi.value = api;
829
+ if (app) devtoolsApp.value = app;
772
830
  }
773
831
  function register(r$, options) {
774
- const idPath = options?.filePath ?? "loose";
775
- const existingCounter = idCounters.value.get(idPath);
776
- const perComponentCounter = existingCounter ? existingCounter + 1 : 1;
777
- idCounters.value.set(idPath, perComponentCounter);
778
- const id = `${options?.uid?.toString() ?? "regle"}#${++looseIdCounter.value}`;
779
- const name = `r\$ #${options?.name ?? perComponentCounter}`;
832
+ const instanceIndex = ++instanceIndexCounter.value;
833
+ const id = `${options?.uid?.toString() ?? "regle"}#${instanceIndex}`;
834
+ const name = `r\$ #${options?.name ?? instanceIndex}`;
780
835
  instances.value.set(id, {
781
836
  id,
782
837
  name,
@@ -802,7 +857,7 @@ function useRegleDevtoolsRegistry() {
802
857
  return id;
803
858
  }
804
859
  function notifyDevtools() {
805
- if (devtoolsApi.value) emitInspectorState(devtoolsApi.value);
860
+ if (devtoolsApi.value) emitInspectorState(devtoolsApi.value, devtoolsApp.value);
806
861
  }
807
862
  function scheduleNotifyDevtools() {
808
863
  if (pendingNotifyFrame != null) return;
@@ -834,6 +889,7 @@ function useRegleDevtoolsRegistry() {
834
889
  }
835
890
  return {
836
891
  devtoolsApi,
892
+ devtoolsApp,
837
893
  register,
838
894
  unregister,
839
895
  getAll,
@@ -844,7 +900,13 @@ function useRegleDevtoolsRegistry() {
844
900
  loggedWarning
845
901
  };
846
902
  }
847
- const regleDevtoolsRegistry = useRegleDevtoolsRegistry();
903
+ function getRegleDevtoolsRegistry() {
904
+ if (typeof globalThis === "undefined") return createRegleDevtoolsRegistry();
905
+ const globalRegistry = globalThis;
906
+ globalRegistry[REGLE_DEVTOOLS_GLOBAL_KEY] ??= createRegleDevtoolsRegistry();
907
+ return globalRegistry[REGLE_DEVTOOLS_GLOBAL_KEY];
908
+ }
909
+ const regleDevtoolsRegistry = getRegleDevtoolsRegistry();
848
910
  /**
849
911
  * To be used by `useRegle` like composables.
850
912
  */
@@ -1142,10 +1204,6 @@ function handleEditInspectorState(payload) {
1142
1204
  }
1143
1205
  }
1144
1206
  }
1145
- async function emitInspectorState(api) {
1146
- api.sendInspectorTree(INSPECTOR_IDS.INSPECTOR);
1147
- api.sendInspectorState(INSPECTOR_IDS.INSPECTOR);
1148
- }
1149
1207
  function buildNodeTags(fieldOrR$, componentName) {
1150
1208
  const tags = [];
1151
1209
  let isDisabled = false;
@@ -1369,7 +1427,7 @@ function filterInspectorTree(nodes, filter) {
1369
1427
  }
1370
1428
  return filtered;
1371
1429
  }
1372
- var version$1 = "1.27.2";
1430
+ var version$1 = "1.28.0-beta.1";
1373
1431
  function createDevtools(app) {
1374
1432
  setupDevtoolsPlugin({
1375
1433
  id: "regle-devtools",
@@ -1380,7 +1438,29 @@ function createDevtools(app) {
1380
1438
  componentStateTypes: ["Regles"],
1381
1439
  app
1382
1440
  }, (api) => {
1383
- regleDevtoolsRegistry.setApi(api);
1441
+ regleDevtoolsRegistry.setApi(api, app);
1442
+ api.on.getInspectorTree(async (payload) => {
1443
+ if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
1444
+ const nodes = buildInspectorTree(regleDevtoolsRegistry.getAll(), payload.filter);
1445
+ if (nodes.length > 0) payload.rootNodes = nodes;
1446
+ else payload.rootNodes = [{
1447
+ id: "empty-regles",
1448
+ label: "No Regles instances found",
1449
+ children: []
1450
+ }];
1451
+ }
1452
+ });
1453
+ api.on.getInspectorState((payload) => {
1454
+ if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
1455
+ const state = buildInspectorState(payload.nodeId, (id) => regleDevtoolsRegistry.get(id));
1456
+ if (!state) api.sendInspectorTree(INSPECTOR_IDS.INSPECTOR);
1457
+ if (state) payload.state = state;
1458
+ else payload.state = {};
1459
+ }
1460
+ });
1461
+ api.on.editInspectorState((payload) => {
1462
+ if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) handleEditInspectorState(payload);
1463
+ });
1384
1464
  api.addInspector({
1385
1465
  id: INSPECTOR_IDS.INSPECTOR,
1386
1466
  label: "Regle",
@@ -1426,29 +1506,10 @@ function createDevtools(app) {
1426
1506
  }
1427
1507
  ]
1428
1508
  });
1429
- regleDevtoolsRegistry.notifyDevtools();
1430
- api.on.getInspectorTree(async (payload) => {
1431
- if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
1432
- const nodes = buildInspectorTree(regleDevtoolsRegistry.getAll(), payload.filter);
1433
- if (nodes.length > 0) payload.rootNodes = nodes;
1434
- else payload.rootNodes = [{
1435
- id: "empty-regles",
1436
- label: "No Regles instances found",
1437
- children: []
1438
- }];
1439
- }
1440
- });
1441
- api.on.getInspectorState((payload) => {
1442
- if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) {
1443
- const state = buildInspectorState(payload.nodeId, (id) => regleDevtoolsRegistry.get(id));
1444
- if (!state) api.sendInspectorTree(INSPECTOR_IDS.INSPECTOR);
1445
- if (state) payload.state = state;
1446
- else payload.state = {};
1447
- }
1448
- });
1449
- api.on.editInspectorState((payload) => {
1450
- if (payload.inspectorId === INSPECTOR_IDS.INSPECTOR) handleEditInspectorState(payload);
1509
+ onDevToolsClientConnected(() => {
1510
+ regleDevtoolsRegistry.notifyDevtools();
1451
1511
  });
1512
+ regleDevtoolsRegistry.notifyDevtools();
1452
1513
  });
1453
1514
  }
1454
1515
  /**
@@ -2037,6 +2098,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2037
2098
  });
2038
2099
  const $debounce = computed(() => {
2039
2100
  if ($localOptions.value.$debounce != null) return $localOptions.value.$debounce;
2101
+ if (toValue(options.debounce) != null) return toValue(options.debounce);
2040
2102
  if (scopeState.$haveAnyAsyncRule.value) return DEFAULT_DEBOUNCE_TIME;
2041
2103
  return 0;
2042
2104
  });
@@ -2133,8 +2195,13 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2133
2195
  const $edited = ref(false);
2134
2196
  function isEditedHandler(currentValue, initialValue) {
2135
2197
  if (initialValue instanceof Date && currentValue instanceof Date) return toDate(initialValue).getTime() !== toDate(currentValue).getTime();
2136
- else if (initialValue == null) return currentValue != null && currentValue !== "";
2137
- else if (Array.isArray(currentValue) && Array.isArray(initialValue)) return !isEqual(currentValue, initialValue, $localOptions.value.$deepCompare);
2198
+ else if (initialValue == null) {
2199
+ if (typeof currentValue === "boolean") {
2200
+ if (initialValue === void 0) return currentValue === true;
2201
+ return currentValue != null;
2202
+ }
2203
+ return currentValue != null && currentValue !== "";
2204
+ } else if (Array.isArray(currentValue) && Array.isArray(initialValue)) return !isEqual(currentValue, initialValue, $localOptions.value.$deepCompare);
2138
2205
  return initialValue !== currentValue;
2139
2206
  }
2140
2207
  watchEffect(() => {
@@ -2313,8 +2380,6 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2313
2380
  }
2314
2381
  function $reset(options, fromParent) {
2315
2382
  abortCommit();
2316
- $clearExternalErrors();
2317
- $clearExternalIssues();
2318
2383
  scopeState.$dirty.value = false;
2319
2384
  storage.setDirtyEntry(cachePath, false);
2320
2385
  if (!fromParent) if (options?.toOriginalState) {
@@ -2328,7 +2393,7 @@ function createReactiveFieldStatus({ state, rulesDef, customMessages, path, cach
2328
2393
  initialState.value = cloneDeep(newInitialState);
2329
2394
  state.value = cloneDeep(newInitialState);
2330
2395
  } else initialState.value = isObject(state.value) && !isStatic(state.value) ? cloneDeep(state.value) : Array.isArray(state.value) ? [...state.value] : state.value;
2331
- if (options?.clearExternalErrors) {
2396
+ if (options?.clearExternalErrors !== false) {
2332
2397
  $clearExternalErrors();
2333
2398
  $clearExternalIssues();
2334
2399
  }
@@ -2816,7 +2881,7 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
2816
2881
  const $modifiers = computed(() => {
2817
2882
  return {
2818
2883
  $deepCompare: $localOptions.value.$deepCompare ?? false,
2819
- $debounce: $localOptions.value.$debounce ?? 0,
2884
+ $debounce: $localOptions.value.$debounce ?? toValue(options.debounce) ?? 0,
2820
2885
  $lazy: $localOptions.value.$lazy ?? false,
2821
2886
  $rewardEarly: $rewardEarly.value,
2822
2887
  $autoDirty: $autoDirty.value,
@@ -2921,7 +2986,7 @@ function createReactiveCollectionStatus({ state, rulesDef, customMessages, path,
2921
2986
  initialState.value = cloneDeep(newInitialState);
2922
2987
  state.value = cloneDeep(newInitialState);
2923
2988
  } else initialState.value = cloneDeep(state.value);
2924
- if (options?.clearExternalErrors) {
2989
+ if (options?.clearExternalErrors !== false) {
2925
2990
  $clearExternalErrors();
2926
2991
  $clearExternalIssues();
2927
2992
  }
@@ -3493,7 +3558,7 @@ function createReactiveNestedStatus({ rulesDef, state, path = "", cachePath, roo
3493
3558
  for (const field of Object.values($fields.value)) field?.$reset(options, true);
3494
3559
  $selfStatus.value?.$reset(options, true);
3495
3560
  }
3496
- if (options?.clearExternalErrors === false) {
3561
+ if (options?.clearExternalErrors !== false) {
3497
3562
  $clearExternalErrors();
3498
3563
  $clearExternalIssues();
3499
3564
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
- * @regle/core v1.27.2
2
+ * @regle/core v1.28.0-beta.1
3
3
  * (c) 2026 Victor Garcia
4
4
  * @license MIT
5
5
  */
6
6
 
7
- import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,readonly as d,ref as f,shallowRef as p,toRef as m,toValue as h,triggerRef as g,unref as _,version as v,watch as y,watchEffect as b}from"vue";import{setupDevtoolsPlugin as x}from"@vue/devtools-api";function S(e){return e?.constructor?.name==`File`}function C(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function w(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function T(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function E(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function O(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function k(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function A(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):S(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:C(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const j=Symbol(`regle-rule`);function M(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function N(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>N(e,t+1)))),r==`Map`&&(n=new Map([...e].map(e=>[N(e[0],t+1),N(e[1],t+1)]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,M(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=N(e[r],t+1)}return n}function ee(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function P(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function F(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!F(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(C(e)&&C(t)&&s&&(r||!r&&n)&&!F(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var I=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function L(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new I)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new I):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new I):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function R(e,t,r){if(!a(e))return r?.(),u(e);let i=f(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{i.value=!0})}),u(new Proxy({},{get(n,a,o){if(r?.(),t.value&&a!==`$value`&&i.value)return Reflect.get(n,a,o);if(e.value!==void 0)return _(Reflect.get(e.value,a,o))},set(t,n,i){return r?.(),a(e.value[n])&&!a(i)?e.value[n].value=i:e.value[n]=i,!0},deleteProperty(t,n){return r?.(),Reflect.deleteProperty(e.value,n)},has(t,n){return r?.(),e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return r?.(),e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return r?.(),{enumerable:!0,configurable:!0}}}))}const te={Inline:`__inline`,Async:`__async`};function z(e){try{return e.map(e=>h(e))}catch{return[]}}function B(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function V(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function H(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===te.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...z(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:z(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:z(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:z(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...z(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:B(t),_brand:j})}function U(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=H({...e,async:n},...t);if(V(e.validator)>1){let t=function(...t){return H(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const W=Symbol.for(`regle:instance`);function ne(e){return typeof e==`object`&&!!e&&W in e}function G(e){return C(e.value)}function re(n,r,i){let a=t(),o;return o=n instanceof Function?a.run(()=>({computedEach:e(()=>n(r,i??0))})).computedEach:n,{scope:a,unwrapped:o}}const K={LessThan:-1,EqualTo:0,GreaterThan:1};function ie(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return K.GreaterThan;if(i>t)return K.LessThan;if(!isNaN(t)&&isNaN(i))return K.GreaterThan;if(isNaN(t)&&!isNaN(i))return K.LessThan}return K.EqualTo}const ae=ie(v,`3.5.0`)!==-1;function q(){return Math.floor(Math.random()*Date.now()).toString()}function oe(){return typeof window>`u`?q():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function se(e){return r()?(l(e),!0):!1}function ce(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function le(e,t){return e.some(e=>t?e?.[t]:!1)}function ue(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const de=Symbol(`regle`),J=Symbol(`regle-config`),Y={REGLE_STATIC:`__regle_static`};function fe(){return!!(typeof globalThis<`u`&&(`__vitest_worker__`in globalThis||`__JEST_GLOBAL__`in globalThis||typeof window<`u`&&`Cypress`in window||typeof process<`u`&&process.env&&(process.env.VITEST||process.env.JEST_WORKER_ID||process.env.NODE_ENV===`test`||process.env.PLAYWRIGHT_TEST)))}const X={ERROR:{text:16777215,bg:15680580},INVALID:{text:16777215,bg:16747520},CORRECT:{text:16777215,bg:1096065},VALID:{text:16777215,bg:292951},PENDING:{text:16777215,bg:16096779},DIRTY:{text:2042167,bg:16708551},COMPONENT:{text:16777215,bg:6514417},PRISTINE:{text:1120295,bg:16777215},INACTIVE:{text:0,bg:11581118},OPTIONAL:{text:0,bg:11581118},DISABLED:{text:15680580,bg:15067115}},Z={PRISTINE:`Field is not touched yet`,DIRTY:`Field have been touched`,ERROR:`Field has errors`,CORRECT:`Field is dirty and all actives rules are valid`,VALID:`Field rules are all valid`,PENDING:`Field is pending`,INACTIVE:`Field is inactive`,OPTIONAL:`Field is not required`,DISABLED:`Validation reactivity is paused by the disabled modifier`},pe={DIRTY:`All nested fields have been touched`,ERROR:`Some nested fields have errors`,CORRECT:`All nested fields are correct`,PENDING:`Some nested fields are pending`},me={INACTIVE:`The rule is not active`,INVALID:`Rule is invalid`,VALID:`Rule is valid`,PENDING:`Rule validator is pending`},he={ROOT:[`$invalid`,`$dirty`,`$error`,`$pending`,`$valid`,`$ready`],FIELD:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$errors`]},ge={INSPECTOR:`regle-inspector`,COMPONENTS:`components`,TIMELINE:`regle-timeline`};function _e(e,t){return!Se(e.value)&&(G(e)||C(t.value)&&!A(t.value)&&!Object.entries(t.value).some(([e,t])=>be(t)||typeof t==`function`))}function ve(e,t){return!!e.value&&C(e.value)&&`$each`in e.value||Array.isArray(t.value)}function ye(e){return!!e.value&&(C(e.value)||G(e.value))}function be(e){return(C(e)||typeof e==`function`)&&`_validator`in e}function xe(e){return typeof e.value==`function`?`_validator`in e.value:!0}function Se(e){return C(e)&&D(e,Y.REGLE_STATIC)&&e[Y.REGLE_STATIC]===!0}function Ce(e){return C(e)&&`$fields`in e}function Q(e){return!!e&&`$each`in e}function we(e){return!!e&&`$rules`in e}function Te(e){return typeof e==`function`}function Ee(e,t){return t.filter(t=>t in e&&!Te(e[t])).map(t=>{let n=!1;return t===`$value`&&(n=!0),{key:t,value:e[t],editable:n}})}function De(e,t){return Object.entries(e).filter(([n])=>!t.includes(n)&&n.startsWith(`$`)&&!Te(e[n])).map(([e,t])=>({key:e,value:t,editable:!1})).sort((e,t)=>e.key.localeCompare(t.key))}function Oe(e){if(!e.includes(`:field:`))return null;let[t,,n]=e.split(`:`);return{instanceId:t,fieldName:n}}function ke(e,t){return`${e}:field:${t}`}function Ae(e){if(!e.includes(`:rule:`))return null;let t=e.split(`:rule:`);if(t.length!==2)return null;let n=t[0],r=t[1],i=Oe(n);return i?{...i,ruleName:r}:null}function je(e,t,n){return`${ke(e,t)}:rule:${n}`}function Me(e){let t={},n=Ee(e,he.FIELD);n.length>0&&(t.State=n);let r=De(e,[...he.FIELD,`$rules`,`$fields`,`$modifiers`,`$deepCompare`,`$clearExternalErrorsOnValidate`,`$silent`,`$isArrayOrRegleStatic`,`$schemaMode`,`$immediateDirty`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Ne(e){let t={},n=[`$type`,`$valid`,`$active`,`$pending`,`$message`,`$tooltip`],r=Ee(e,n);r.length>0&&(t[`Rule State`]=r),e.$params&&Array.isArray(e.$params)&&e.$params.length>0&&(t.Parameters=[{key:`$params`,value:e.$params,editable:!1}]),e.$metadata!==void 0&&e.$metadata!==!0&&e.$metadata!==!1&&(t.Metadata=[{key:`$metadata`,value:e.$metadata,objectType:`reactive`,editable:!1}]);let i=De(e,[...n,`$params`,`$metadata`,`$haveAsync`,`$validating`,`$fieldDirty`,`$fieldInvalid`,`$fieldPending`,`$fieldCorrect`,`$fieldError`,`$maybePending`]);return i.length>0&&(t[`Other Properties`]=i),t}function Pe(e){let t={},n=Ee(e,he.ROOT);n.length>0&&(t.State=n);let r=De(e,[...he.ROOT,`$fields`,`$modifiers`,`$path`,`$clearExternalErrorsOnValidate`,`$silent`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Fe(e,t){if(!e||!t)return null;let n=t.match(/[^.[\]]+/g);if(!n)return null;let r=e;for(let e of n){if(!r)return null;let t=parseInt(e);if(!isNaN(t))if(Q(r)&&Array.isArray(r.$each))r=r.$each[t];else return null;else if(Q(r)&&r.$self&&r.$self)r=r.$self;else if(Ce(r)&&r.$fields&&r.$fields[e])r=r.$fields[e];else if(r[e])r=r[e];else return null}return r}function Ie(e,t){let n=Ae(e);if(n){let{instanceId:e,fieldName:r,ruleName:i}=n,a=t(e);if(!a||!a.r$.$fields)return null;let o=Fe(a.r$.$fields,r);if(!o||!(`$rules`in o))return null;let s=o.$rules[i];return s?Ne(s):null}let r=Oe(e);if(r){let{instanceId:e,fieldName:n}=r,i=t(e);if(!i||!i.r$.$fields)return null;let a=Fe(i.r$.$fields,n);return a?Me(a):null}let i=t(e);return i?Pe(i.r$):null}function Le(e){if(e.includes(`:rule:`))return;let t=Oe(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Fe(r.r$.$fields,n);e&&typeof e.$validate==`function`&&e.$validate()}}else{let t=$.get(e);t&&typeof t.r$.$validate==`function`&&t.r$.$validate()}$.notifyDevtools()}function Re(e,t=!1){let n=Oe(e);if(n){let{instanceId:e,fieldName:r}=n,i=$.get(e);if(i&&i.r$.$fields){let e=Fe(i.r$.$fields,r);e&&typeof e.$reset==`function`&&e.$reset({toOriginalState:t})}}else{let n=$.get(e);n&&typeof n.r$.$reset==`function`&&n.r$.$reset({toOriginalState:t})}$.notifyDevtools()}function ze(e){if(e.includes(`:rule:`))return;let t=Oe(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Fe(r.r$.$fields,n);e&&typeof e.$touch==`function`&&e.$touch()}}else{let t=$.get(e);t&&typeof t.r$.$touch==`function`&&t.r$.$touch()}$.notifyDevtools()}function Be(e){let{nodeId:t,path:n,state:r}=e;if(!n.includes(`$value`)||!Oe(t))return;let[i,a,o]=t?.split(`:`)??[],s=$.get(i);if(s&&s.r$.$fields){let e=Fe(s.r$.$fields,o);e&&`$value`in e&&(e.$value=r.value,$.notifyDevtools())}}async function Ve(e){e.sendInspectorTree(ge.INSPECTOR),e.sendInspectorState(ge.INSPECTOR)}function He(){let e=f(!1),t=p(),n=p(new Map),r=p(new Map),i=p(new Map),a=f(0),o;function s(e){t.value=e}function c(e,t){let o=t?.filePath??`loose`,s=i.value.get(o),c=s?s+1:1;i.value.set(o,c);let d=`${t?.uid?.toString()??`regle`}#${++a.value}`,f=`r\$ #${t?.name??c}`;n.value.set(d,{id:d,name:f,r$:e,componentName:t?.componentName,filePath:t?.filePath});let p=y([()=>e.$value,()=>e.$externalErrors,()=>e.$externalIssues,()=>e.$error,()=>e.$invalid,()=>e.$pending],()=>u(),{deep:!0,flush:`post`});return r.value.set(d,p),window.requestAnimationFrame(()=>{l()}),d}function l(){t.value&&Ve(t.value)}function u(){o??=window.requestAnimationFrame(()=>{o=void 0,l()})}function d(e){let t=r.value.get(e);t&&(t(),r.value.delete(e)),n.value.delete(e),l()}function m(){return Array.from(n.value.values())}function h(e){return n.value.get(e)}function g(){r.value.forEach(e=>e()),r.value.clear(),n.value.clear(),l()}return{devtoolsApi:t,register:c,unregister:d,getAll:m,get:h,clear:g,setApi:s,notifyDevtools:l,loggedWarning:e}}const $=He();function Ue(e,t){if(typeof window>`u`||!(typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__)||fe())return()=>{};if(!i(de,void 0)&&!$.loggedWarning.value&&$.devtoolsApi)return $.loggedWarning.value=!0,console.warn(`📏 Regle Devtools are not available. Install Regle plugin in your app to enable them. https://reglejs.dev/introduction/devtools`),()=>{};let r=n(),a=r?.type?.name||r?.type?.__name,o;r&&r.type&&typeof r.type==`object`&&`__file`in r.type&&(o=r.type.__file);let s=$.register(e,{name:t?.name,componentName:a,uid:r?.uid,filePath:o});function c(){$.unregister(s)}return se(c),c}function We(){let e=p(new Map),t=p(new Map),n=p(new Map),i=p(new Map),a=p(new Map),o=p(new Map),s=p(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=f({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=f([]);return n.value.set(e,t),t}}function d(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=z(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=z(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=f(!1),n=f(!0),r=f({}),i=f(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}function w(){e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear(),s.value.clear()}return r()&&l(w),{clearAll:w,addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:d,getAdditionalRulesEntry:m}}function Ge({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors&&Array.isArray(e.$externalErrors)&&!e.$externalIssues?.length?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=e.$error&&e.$externalIssues&&Array.isArray(e.$externalIssues)?e.$externalIssues.map(t=>({...t,$property:t.$property??e.fieldName,$rule:t.$rule??`external`})):[],a=[];return e.$schemaErrors&&e.$error&&(a=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i,...a]}function Ke({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function qe(e){return C(e)&&`$each`in e}function Je(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!C(e)))return e;if(qe(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>Ye(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>Ye(t,n,[e])).flat()}function Ye(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!C(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(qe(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>Ye(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>Ye(n,t,r?.concat(e))).flat()}function Xe({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>be(r.value)&&r.value._async),g=f(!1),_=0,{$pending:v,$valid:b,$metadata:x,$validating:S}=c.trySetRuleStatusRef(`${s}.${i}`);function C(){d=t(),p=d.run(()=>{let t=f(!1),s=f(!1),c=f(!0),l=f(!1),u=f(!1),d=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:b.value,$invalid:!b.value,$pending:v.value},$params:S.value,...x.value})),p=e(()=>{try{return xe(r)?typeof r.value.active==`function`?r.value.active(d.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(d.value):a),xe(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](d.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return A(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>xe(r)&&r.value.type?r.value.type:i),y=e(()=>xe(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:z(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:y,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=y(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&D()},{deep:ae?1:!0})}C();function w(){b.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(e){let t=!1;try{let n=p.$validator.value;if(typeof n!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let r=n(a.value,...p.$params.value),i=a.value;w();let s;if(s=r instanceof Promise?await r:r,e!==_||a.value!==i)return b.value;if(typeof s==`boolean`)t=s;else{let{$valid:e,...n}=s;t=e,x.value=n}}catch{t=!1}finally{e===_&&(v.value=!1)}return t}function E(e,t=!0){if(be(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return x.value=t,e}}return!0}async function D(){let e=++_;try{S.value=!0;let t=!1;if(g.value=!0,be(r.value)&&r.value._async)t=await T(e);else{let e=p.$validator.value;t=E(e)}return e===_?(b.value=t,t):b.value}catch{return!1}finally{e===_&&(S.value=!1,g.value=!1)}}function O(){try{return S.value=!0,E(p.$validator.value)}catch{return!1}finally{S.value=!1}}function k(){_++,b.value=!0,x.value={},v.value=!1,S.value=!1,C()}function j(){m(),d.stop(),d=t()}return u({...p,$pending:v,$valid:b,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:D,$parseSync:O,$unwatch:j,$watch:C,$reset:k})}function Ze(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:Je(i,{includePath:!0})}}}}}function Qe(e){return e===!0?`eager`:e===!1||e==null?!1:e}function $e(e){return C(e)&&!Se(e)?Object.values(e).some(e=>$e(e)):Array.isArray(e)?e.some(e=>$e(e)):!A(e)}function et(e,t,n){return e===`eager`?!0:e===`non-empty`?$e(n):e===`lazy-non-empty`?$e(t):!1}function tt(e,t,n,r=!1){return e===`eager`?!0:e===`non-empty`?r&&!A(n):e===`lazy-non-empty`?!A(t):!1}function nt({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:d,externalErrors:p,externalIssues:g,schemaErrors:_,schemaMode:v,onUnwatch:x,$isArray:S,initialState:w,rootInitialState:T,originalState:E,shortcuts:D,overrides:O,onValidate:k}){let j=t(),M,I=[],R,te,z,B,V=()=>{},H,U=()=>{},W=f(!1),ne=f(l.getAdditionalRulesEntry(o)??{});function G(e){ne.value=e??{},l.addAdditionalRulesEntry(o,e??{}),K(),V()}function re(e){G(e)}function K(){let e={...r.value,...ne.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=m(()=>s);t.push([r,Xe({modifiers:{$silent:M.$silent,$rewardEarly:M.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Y.value.$debounce})])}J.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function ie(){let e={...r.value,...ne.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Y.value=n,t}function q(){let e=ie();le(),K(),M.processShortcuts(),oe(),se(),e?.valid!=null&&(M.$dirty.value=l.getDirtyState(o),(M.$dirty.value&&!M.$silent.value||M.$rewardEarly.value&&M.$error.value)&&V()),l.addRuleDeclEntry(o,r.value)}function oe(){V=M.$debounce.value>0?P(de,M.$debounce.value,{trackDebounceRef:W}):de}function se(){U=M.$debounce.value>0?P(()=>{M.$dirty.value=!0},M.$debounce.value):()=>{M.$dirty.value=!0}}function ce(){if(J.value)for(let e of Object.values(J.value))e.$unwatch();te(),B?.(),M.$dirty.value&&l.setDirtyEntry(o,M.$dirty.value),R?.(),j.stop(),j=t();for(let e of I)e.stop();I=[],x?.(),z?.()}function le(){if(J.value)for(let e of Object.values(J.value))e.$watch();M=j.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>S||Se(n.value)),s=e(()=>Y.value.$debounce==null?M.$haveAnyAsyncRule.value?200:0:Y.value.$debounce),l=e(()=>Y.value.$deepCompare==null?!1:Y.value.$deepCompare),m=e(()=>Y.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:Y.value.$lazy),y=e(()=>Y.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:Qe(h(d.immediateDirty)):Qe(Y.value.$immediateDirty)),x=e(()=>Y.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!Y.value.$rewardEarly),C=e(()=>Y.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!E.value:h(d.clearExternalErrorsOnChange)===!0:!!Y.value.$clearExternalErrorsOnChange),T=e(()=>Y.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!Y.value.$clearExternalErrorsOnValidate),E=e(()=>x.value?!0:Y.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:Y.value.$silent),k=e(()=>Y.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:Y.value.$autoDirty),j=e(()=>{if(Y.value.$isEdited!=null)return Y.value.$isEdited;if(O?.isEdited!=null)return O.isEdited}),N=e(()=>{for(let e of Object.values(J.value))if(e.$validating)return!0;return!1}),P=e({get:()=>n.value,set(e){R(),n.value=e,ue()}}),L=e(()=>W.value?ie.value&&r.value:ie.value&&!K.value&&r.value),te=e(()=>Ge({field:{$rules:J.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:ae.value}})),z=e(()=>Ge({field:{$rules:J.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:ae.value},silent:!0})),B=e(()=>te.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=f(!1);function U(e,t){return t instanceof Date&&e instanceof Date?ee(t).getTime()!==ee(e).getTime():t==null?e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!F(e,t,Y.value.$deepCompare):t!==e}b(()=>{r.value?j.value?H.value=j.value(n.value,w.value,U):H.value=U(n.value,w.value):H.value=!1});let ne=e(()=>H.value),G=e(()=>Ke({field:{$rules:J.value}})),re=e(()=>!(ie.value||K.value)),K=e(()=>i.value||!x.value?Object.entries(J.value).some(([e,t])=>t.$pending):!1),ie=e(()=>p?.value?.length||g?.value?.length||_?.value?.length?!0:q.value?!1:Object.values(J.value).some(e=>!e.$valid||e.$maybePending)),ae=e(()=>c??d.id??`root`),q=e(()=>!v&&!Object.keys(J.value).some(e=>!e.startsWith(`$`))),oe=e(()=>{if(p?.value?.length||g?.value?.length||q.value||W.value)return!1;if(r.value&&!A(n.value)&&!N.value&&!K.value){if(v)return!_?.value?.length;{let e=Object.values(J.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),se=e(()=>Object.values(J.value).some(e=>e.$haveAsync)),ce=e(()=>({$debounce:s.value,$lazy:m.value,$rewardEarly:x.value,$autoDirty:k.value,$silent:E.value,$clearExternalErrorsOnChange:C.value,$clearExternalErrorsOnValidate:T.value,$immediateDirty:y.value,$isEdited:j.value,$disabled:h(d.disabled)??!1}));function le(){D?.fields&&Object.entries(D.fields).forEach(([e,i])=>{let o=t();de[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$externalIssues:g?.value??[],$value:n,$silentValue:P,$rules:J,$error:L,$pending:K,$invalid:ie,$correct:oe,$errors:B,$ready:re,$silentErrors:V,$anyDirty:a,$tooltips:G,$name:ae,$inactive:q,$edited:H,$anyEdited:ne}))}),e}),I.push(o)})}let de={};return{$error:L,$pending:K,$invalid:ie,$correct:oe,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:y,$ready:re,$issues:te,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:x,$autoDirty:k,$silent:E,$clearExternalErrorsOnChange:C,$clearExternalErrorsOnValidate:T,$anyDirty:a,$edited:H,$anyEdited:ne,$name:ae,$haveAnyAsyncRule:se,$shortcuts:de,$validating:N,$tooltips:G,$dirty:r,processShortcuts:le,$silentValue:P,$inactive:q,$modifiers:ce,$isArrayOrRegleStatic:o}}),ue(),te=y(M.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(J.value).forEach(t=>{t.$fieldDirty=e})}),B=y([M.$error,M.$correct,M.$invalid,M.$pending],()=>{Object.values(J.value).forEach(e=>{e.$fieldError=M.$error.value,e.$fieldInvalid=M.$invalid.value,e.$fieldPending=M.$pending.value,e.$fieldCorrect=M.$correct.value})}),z=y(M.$haveAnyAsyncRule,oe)}function ue(){R=y(n,()=>{M.$autoDirty.value&&!M.$silent.value&&(M.$dirty.value||U()),r.value instanceof Function&&q(),(!M.$silent.value||M.$rewardEarly.value&&M.$error.value)&&V(),M.$clearExternalErrorsOnChange.value&&(xe(),Q())},{deep:M.$isArrayOrRegleStatic.value?!0:ae?1:!0})}async function de(){try{let{promise:e}=pe(Promise.allSettled(Object.values(J.value).map(e=>e.$parse())));await e}catch{}}let J=f({}),Y=f({});q();function fe(){tt(M.$immediateDirty.value,w.value,T?.value??w.value,a===``)&&(M.$dirty.value=!0)}function X(e,t){if(Z(),xe(),Q(),M.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=N(E),w.value=N(E);else if(e?.toInitialState)n.value=N(w.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,w.value=N(t),n.value=N(t)}else w.value=C(n.value)&&!Se(n.value)?N(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors&&(xe(),Q()),!t&&!e?.keepValidationState)for(let e of Object.values(J.value))e.$reset();if(!M.$lazy.value&&!M.$silent.value&&!t)for(let e of Object.values(J.value))e.$parse();fe()}function Z(){`cancel`in V&&V.cancel()}function pe(e){return H&&H.abort(),H=L(e),H}function me(){Z(),H&&H.abort()}function he(e=!0,t=!1){M.$dirty.value||U(),t&&e?(!M.$silent.value||M.$rewardEarly.value&&M.$error.value)&&(Z(),V()):e&&(Z(),V())}async function ge(e){return e&&(n.value=e),await s(),_e()}async function _e(e){try{if(e&&(n.value=e),v)return k?(he(!1),k()):{valid:!1,data:n.value,errors:M.$errors.value,issues:M.$issues.value};let t=n.value;if(M.$clearExternalErrorsOnValidate.value&&(xe(),Q()),M.$autoDirty.value&&!M.$silent.value&&M.$dirty.value&&!M.$validating.value&&!M.$pending.value&&!W.value&&!A(J.value))return{valid:!M.$invalid.value,data:t,errors:M.$errors.value,issues:M.$issues.value};if(M.$dirty.value||(M.$dirty.value=!0),A(J.value))return{valid:!0,data:t,errors:M.$errors.value,issues:M.$issues.value};me();let{promise:r}=pe(Promise.allSettled(Object.values(J.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:M.$errors.value,issues:M.$issues.value}}catch{return{valid:!1,data:n.value,errors:M.$errors.value,issues:M.$issues.value}}}function ve(e){try{return e&&(n.value=e),M.$dirty.value||(M.$dirty.value=!0),v?!1:(M.$clearExternalErrorsOnValidate.value&&(xe(),Q()),Object.values(J.value).map(e=>e.$parseSync()).every(e=>!!e))}catch{return!1}}function ye(e=!0){return M.$dirty.value?n.value:e?{_null:!0}:null}function be(e){p&&(p.value=e),Q()}function xe(){p?.value?.length&&(p.value=[])}function Ce(e){g&&(g.value=e),xe()}function Q(){g?.value?.length&&(g.value=[])}!M.$lazy.value&&!M.$dirty.value&&!M.$silent.value&&de(),fe();let{$shortcuts:we,$validating:Te,$autoDirty:Ee,$rewardEarly:De,$clearExternalErrorsOnChange:Oe,$clearExternalErrorsOnValidate:ke,$haveAnyAsyncRule:Ae,$debounce:je,$lazy:Me,...Ne}=M,Pe=u({...Ne,$externalErrors:p,$externalIssues:g,$value:n,$output:n,$initialValue:w,$originalValue:E,$rules:J,...we,$path:a,$isDebouncing:W,$reset:X,$touch:he,$validate:ge,$validateSync:ve,$validateWithoutRaceconditions:_e,$unwatch:ce,$watch:le,$extractDirtyFields:ye,$clearExternalErrors:xe,$clearExternalIssues:Q,$abort:me,$addRules:G,addRules:re,$schemaMode:v,"~modifiers":M.$modifiers,$setExternalErrors:be,$setExternalIssues:Ce,...Ze(ge)});return Object.defineProperty(Pe,Symbol.for(`regle:instance`),{value:!0}),Pe}function rt({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,externalIssues:d,schemaErrors:p,initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x,currentIndexes:S}){let w=e(()=>h(l)),T=s.value?.$id??w.value.$key??oe(),E=`${r}.${String(T)}`,D=f(i),O=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:T,enumerable:!1,configurable:!1,writable:!1}}));let k=ot({index:i,state:s,rulesDef:w,nestedReactiveRules:!0,customMessages:c,path:O,cachePath:E,storage:o,options:a,externalErrors:m(u?.value??[],i),externalIssues:m(d?.value??[],i),schemaErrors:e(()=>p?.value?.[D.value]),initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x});return k&&(k.$id=s.value?.$id??String(T),S?.set(k.$id,D),o.addArrayStatus(t,k.$id,k)),s.value&&(!C(s.value)||Se(s.value))&&b&&k?.$touch(),k}function it({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,externalIssues:d,schemaErrors:p,schemaMode:g,initialState:_,originalState:v,shortcuts:x,fieldName:S,overrides:C}){let w=t(),T,E=t(),D,O=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=f(),j=f(n.value),M=f({}),ee,P,F=f({}),I=s.getCollectionsEntry(a),L=new Map;D=E.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>be(e)||typeof e==`function`):!1:!1)})),R(),V();function R(){M.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=oe(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),j.value=F.value.$value,Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)?I.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=re(r.value.$each,m(()=>t),n);u&&O.push(u);let h=m(_.value??[],n),y=m(l?.value??{},`$each`),b=m(d?.value??{},`$each`),w=e(()=>p?.value?.$each);return rt({$id:k.value,path:a,cachePath:o,customMessages:i,rules:f??{},stateValue:m(()=>t),index:n,options:c,storage:s,externalErrors:y,externalIssues:b,schemaErrors:w,initialState:h,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L})||null}).filter(e=>!!e):(I.value=[],L.clear()),F.value=nt({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:m(l?.value??{},`$self`),externalIssues:m(d?.value??{},`$self`),schemaErrors:e(()=>p?.value?.$self),$isArray:!0,initialState:_,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C})}function te(){if(Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)){let t=[...I.value],o=new Set;I.value=n.value.map((t,n)=>{let u=m(()=>t);if(t.$id&&I.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);if(e){let r=L.get(t.$id);return r&&(r.value=n),o.add(t.$id),e.$value=u,e}return null}else{let{scope:t,unwrapped:f}=re(r.value.$each,u,n);t&&O.push(t);let h=m(l?.value??{},`$each`),y=m(d?.value??{},`$each`),b=e(()=>p?.value?.$each??[]),w=rt({$id:k.value,path:a,cachePath:a,customMessages:i,rules:f??{},stateValue:u,index:n,options:c,storage:s,externalErrors:h,externalIssues:y,schemaErrors:b,initialState:m(_.value??[],n),originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L});return w?(w.$id&&o.add(w.$id),w):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else I.value=[],L.clear()}function z(){ee=y(n,()=>{P?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():te(),B()},{deep:ae?1:!0,flush:`pre`}),B()}function B(){P=y(n,()=>{T.$autoDirty.value&&!T.$silent.value&&F.value.$touch(!1,!0)},{flush:`post`})}function V(){z(),w=t(),T=w.run(()=>{let r=e({get:()=>n.value,set(e){ee?.(),P?.(),n.value=e,z()}}),i=e(()=>F.value.$dirty&&(!I.value.length||I.value.every(e=>e.$dirty))),o=e(()=>F.value.$anyDirty||I.value.some(e=>e.$anyDirty)),s=e(()=>F.value.$invalid||I.value.some(e=>e.$invalid)),l=e(()=>(g?F.value.$correct:A(F.value.$rules)?!0:F.value.$correct)&&(!I.value.length||I.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>F.value.$error||I.value.some(e=>e.$error)),p=e(()=>!(s.value||m.value)),m=e(()=>F.value.$pending||I.value.some(e=>e.$pending)),y=e(()=>!!I.value.length&&I.value.every(e=>e.$edited)),w=e(()=>F.value.$anyEdited||I.value.some(e=>e.$anyEdited)),T=e(()=>({$self:F.value.$issues,$each:I.value.map(e=>e.$issues)})),E=e(()=>({$self:F.value.$errors,$each:I.value.map(e=>e.$errors)})),D=e(()=>({$self:F.value.$silentErrors,$each:I.value.map(e=>e.$silentErrors)})),k=e(()=>M.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:M.value.$rewardEarly),j=e(()=>k.value?!0:M.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:M.value.$silent),N=e(()=>M.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:M.value.$autoDirty),L=e(()=>M.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:Qe(h(c.immediateDirty)):Qe(M.value.$immediateDirty)),R=e(()=>M.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:M.value.$clearExternalErrorsOnChange),te=e(()=>M.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:M.value.$clearExternalErrorsOnValidate),B=e(()=>{if(M.value.$isEdited!=null)return M.value.$isEdited;if(C?.isEdited!=null)return C.isEdited}),V=e(()=>S??c.id??`root`),H=e(()=>({$deepCompare:M.value.$deepCompare??!1,$debounce:M.value.$debounce??0,$lazy:M.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:N.value,$silent:j.value,$clearExternalErrorsOnChange:R.value,$clearExternalErrorsOnValidate:te.value,$immediateDirty:L.value,$isEdited:B.value,$disabled:h(c.disabled)??!1}));function U(){x?.collections&&Object.entries(x?.collections).forEach(([e,c])=>{let h=t();W[e]=h.run(()=>{let e=f();return b(()=>{e.value=c(u({$dirty:i,$error:d,$path:a,$silentValue:r,$pending:m,$invalid:s,$correct:l,$errors:E,$silentErrors:D,$initialValue:_,$originalValue:v,$ready:p,$anyDirty:o,$name:V,$each:I,$self:F,$value:n,$output:n,$edited:y,$anyEdited:w,$issues:T}))}),e}),O.push(h)})}let W={};return U(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:d,$pending:m,$errors:E,$silentErrors:D,$ready:p,$name:V,$shortcuts:W,$silentValue:r,$edited:y,$anyEdited:w,$rewardEarly:k,$silent:j,$autoDirty:N,$issues:T,$modifiers:H}}),D.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function H(){ee?.(),F.value&&F.value.$unwatch(),I.value&&I.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),w.stop(),w=t(),E.stop(),E=t(!0),O.forEach(e=>e.stop()),O=[]}function U(e=!0,t=!1){F.value.$touch(e,t),I.value.forEach(n=>{n.$touch(e,t)})}function W(e,t){if(H(),!t)if(e?.toOriginalState)n.value=N(v),_.value=N(v);else if(e?.toInitialState)n.value=N(_.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,_.value=N(t),n.value=N(t)}else _.value=N(n.value);e?.clearExternalErrors&&(se(),le()),e?.keepValidationState||(F.value.$reset(e,t),I.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function ne(){F.value.$abort(),I.value.forEach(e=>{e.$abort()})}async function G(e){return e&&(n.value=e),K()}async function K(e){e&&(n.value=e);let t=n.value;try{return ne(),{valid:(await Promise.allSettled([F.value.$validateWithoutRaceconditions(e),...I.value.map(e=>e.$validateWithoutRaceconditions())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:T.$errors.value,issues:T.$issues.value}}catch{return{valid:!1,data:t,errors:T.$errors.value,issues:T.$issues.value}}}function ie(e){e&&(n.value=e);try{return[F.value.$validateSync(e),...I.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function q(e){l&&(l.value=e),le()}function se(){F.value.$clearExternalErrors(),I.value.forEach(e=>{e.$clearExternalErrors()})}function ce(e){d&&(d.value=e),se()}function le(){F.value.$clearExternalIssues(),I.value.forEach(e=>{e.$clearExternalIssues()})}function ue(e=!0){let t=I.value.map(t=>{if(Ce(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>A(e))&&(t=[]),t}let{$shortcuts:de,...J}=T;return u({$self:F,...J,...de,$path:a,$each:I,$value:n,$output:n,$initialValue:_,$originalValue:v,$validate:G,$validateSync:ie,$validateWithoutRaceconditions:K,$unwatch:H,$watch:V,$touch:U,$reset:W,$abort:ne,$extractDirtyFields:ue,$clearExternalErrors:se,$clearExternalIssues:le,$setExternalErrors:q,$setExternalIssues:ce,"~modifiers":T.$modifiers,...Ze(G)})}function at({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,externalIssues:l,schemaErrors:p,rootInitialState:g,rootSchemaErrors:v,validationGroups:x,initialState:S,originalState:w,fieldName:T,nestedReactiveRules:E,...D}){let O=t(),k,j=[],M=null,ee=null,P=null,F=null,I=null,L=f(void 0);async function R(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),s=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let s=m(r.value??{},n),u=m(()=>o),d=m(c?.value??{},n),f=m(l?.value??{},n),h=e(()=>p?.value?.[n]),g=m(S?.value??{},n);return t.push([n,ot({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,externalIssues:f,schemaErrors:h,initialState:g,originalState:w?.[n],fieldName:n,...D})]),t},[])),u=Object.fromEntries(Array.from(new Set([...Object.keys(h(c)??{}),...Object.keys(h(l)??{})])).filter(e=>!(e in n.value)).map(t=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t),f=i?`${i}.${t}`:t,h=a?`${a}.${t}`:t;return[t,ot({state:n,rulesDef:e(()=>({})),path:f,cachePath:h,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:w?.[t],fieldName:t,...D})]})),d=Object.fromEntries(Object.entries(h(p)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=m(r.value??{},t),u=m(c?.value??{},t),d=m(l?.value??{},t),f=e(()=>p?.value?.[t]),h=m(S?.value??{},t);return[t,ot({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,externalIssues:d,schemaErrors:f,initialState:h,originalState:w?.[t],fieldName:t,...D})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t);return[t,ot({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:w?.[t],fieldName:t,...D})]}));z.value={...s,...u,...d,...f},t&&U()}function te(){n.value.$self&&(L.value=nt({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:f(void 0),externalIssues:f(void 0),schemaErrors:f(void 0),initialState:S??f(void 0),originalState:w,fieldName:`$self`,...D}))}let z=D.storage.getFieldsEntry(a);R(),te();function B(){c&&(P=y(c,()=>{W(),R()},{deep:!0}))}function V(){l&&(F=y(l,()=>{W(),R()},{deep:!0}))}function H(){I=y(r,()=>{W(),R(),k.$autoDirty.value&&!k.$silent.value&&q(!1,!0),k.$clearExternalErrorsOnChange.value&&(G(),K())},{flush:`post`})}function U(){(o||E)&&(M?.(),M=y(n,()=>{W(),R()},{deep:!0,flush:`pre`}),B(),V()),v&&(ee?.(),ee=y(()=>v.value?Object.keys(v.value).sort().join(`\0`):``,()=>{W(),R()},{flush:`post`})),H(),k=O.run(()=>{let a=e({get:()=>r.value,set(e){W(),r.value=e,R(),k.$autoDirty.value&&!k.$silent.value&&q(!1,!0),k.$clearExternalErrorsOnChange.value&&(G(),K())}}),o=d(a),s=e({get:()=>r.value,set(e){W(),r.value=e,R()}}),c=e(()=>{let e=z.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),l=e(()=>{let e=z.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(L.value?.$invalid)return!0;let e=z.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),m=e(()=>{let e=Object.entries(z.value).reduce((e,[t,n])=>((!we(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!A(n.value.$self);if(e.length||t){let t=L.value?.$correct??!0,n=!1;return n=D.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>we(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),g=e(()=>{if(L.value?.$error)return!0;let e=z.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),v=e(()=>h(D.options.rewardEarly)==null?!1:h(D.options.rewardEarly)),y=e(()=>h(D.options.silent)==null?!!v.value:h(D.options.silent)===!0),C=e(()=>h(D.options.autoDirty)==null?!0:h(D.options.autoDirty)===!0),E=e(()=>h(D.options.immediateDirty)==null?!1:Qe(h(D.options.immediateDirty))),O=e(()=>h(D.options.lazy)==null?!1:h(D.options.lazy)===!0),M=e(()=>h(D.options.clearExternalErrorsOnChange)==null?!0:h(D.options.clearExternalErrorsOnChange)===!0),N=e(()=>h(D.options.clearExternalErrorsOnValidate)==null?!1:h(D.options.clearExternalErrorsOnValidate)===!0),ee=e(()=>!(p.value||F.value)),P=f(!1),F=e(()=>{if(L.value?.$pending||P.value)return!0;let e=z.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),I=e(()=>{let e={...L.value&&{$self:L.value?.$issues??[]}};for(let t in z.value)e[t]=z.value[t]?.$issues;return e}),te=e(()=>{let e={...L.value&&{$self:L.value?.$errors??[]}};for(let t in z.value)e[t]=z.value[t]?.$errors;return e}),B=e(()=>{let e={...L.value&&{$self:L.value?.$silentErrors??[]}};for(let t in z.value)e[t]=z.value[t]?.$silentErrors;return e}),V=e(()=>{if(L.value?.$edited)return!0;if(!Object.keys(z.value).length)return!1;for(let e in z.value)if(!z.value[e]?.$edited)return!1;return!0}),H=e(()=>{if(L.value?.$anyEdited)return!0;for(let e in z.value)if(z.value[e]?.$anyEdited)return!0;return!1}),U=e(()=>T??D.options.id??`root`),ne=e(()=>({autoDirty:C.value,lazy:O.value,rewardEarly:v.value,silent:y.value,clearExternalErrorsOnChange:M.value,clearExternalErrorsOnValidate:N.value,immediateDirty:E.value,id:h(D.options.id),disabled:h(D.options.disabled)}));function re(){D.shortcuts?.nested&&Object.entries(D.shortcuts.nested).forEach(([e,n])=>{let a=t();ae[e]=a.run(()=>{let e=f();return b(()=>{e.value=n(u({$dirty:c,$path:i,$value:r,$output:r,$silentValue:s,$error:g,$originalValue:w,$pending:F,$invalid:p,$correct:m,$ready:ee,$anyDirty:l,$name:U,$silentErrors:B,$initialValue:S,$errors:te,$fields:z,$edited:V,$anyEdited:H,$issues:I,$self:L,"~modifiers":_(D.options)}))}),e}),j.push(a)})}let ie=e({get:()=>x?Object.fromEntries(Object.entries(x?.(z.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,le(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,ue(t,e)]))}]:[])):{},set(){}}),ae={};return re(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:F,$issues:I,$errors:te,$silentErrors:B,$clearExternalErrorsOnValidate:N,$clearExternalErrorsOnChange:M,$ready:ee,$name:U,$shortcuts:ae,$groups:ie,$silentValue:s,$immediateDirty:E,$edited:V,$anyEdited:H,$localPending:P,$autoDirty:C,$silent:y,$value:a,$output:o,$modifiers:ne}})}function W(){if(M?.(),P?.(),F?.(),I?.(),ee?.(),j.forEach(e=>e.stop()),j=[],k={},z.value)for(let e of Object.values(z.value))e?.$unwatch()}function ne(e){c&&(c.value=e),K()}function G(){c&&!A(c.value)&&(c.value={})}function re(e){l&&(l.value=e),G()}function K(){l&&!A(l.value)&&(l.value={})}function ie(){k&&k.$immediateDirty.value!==`lazy-non-empty`&&et(k.$immediateDirty.value,S.value,g?.value??S.value)&&q(!0,!1)}function ae(e,t){if(P?.(),W(),!t)if(e?.toOriginalState)r.value=N({...w}),S.value=N({...w});else if(e?.toInitialState)r.value=N({...S.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=N(t),r.value=N(t)}else S.value=N(r.value);if(!e?.keepValidationState){for(let t of Object.values(z.value))t?.$reset(e,!0);L.value?.$reset(e,!0)}e?.clearExternalErrors===!1&&(G(),K()),B(),V(),t||(R(),ie())}function q(e=!0,t=!1){for(let n of Object.values(z.value))n?.$touch(e,t);L.value?.$touch(e,t)}function oe(e){return e.filter(([e,t])=>C(t)&&!Se(t)?!(t&&typeof t==`object`&&`_null`in t)&&!A(t):Array.isArray(t)?t.length:!0)}function se(e=!0){let t=Object.entries(z.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=oe(t)),Object.fromEntries(t)}function ce(){for(let e of Object.values(z.value))e.$abort();L.value?.$abort()}async function de(e){return e&&(r.value=e),await s(),J()}async function J(e){try{if(e&&(r.value=e),D.schemaMode)return D.onValidate?(q(!1),k.$localPending.value=!0,D.onValidate()):{valid:!1,data:r.value,errors:k.$errors.value,issues:k.$issues.value};{let e=r.value;ce(),k.$clearExternalErrorsOnValidate.value&&(G(),K());let t=[...Object.values(z.value).map(e=>e.$validateWithoutRaceconditions()),...L.value?[L.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:k.$errors.value,issues:k.$issues.value}}}catch{return{valid:!1,data:r.value,errors:k.$errors.value,issues:k.$issues.value}}finally{k.$localPending.value=!1}}function Y(e){try{return e&&(r.value=e),k.$clearExternalErrorsOnValidate.value&&(G(),K()),[...Object.values(z.value).map(e=>e.$validateSync()),...L.value?[L.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}ie();let{$shortcuts:fe,$localPending:X,...Z}=k,pe=u({...Z,...fe,$path:i,$initialValue:S,$originalValue:w,$self:L,$externalErrors:c,$externalIssues:l,$fields:z,$reset:ae,$touch:q,$validate:de,$unwatch:W,$watch:U,$setExternalErrors:ne,$setExternalIssues:re,$clearExternalErrors:G,$clearExternalIssues:K,$extractDirtyFields:se,$abort:ce,$validateSync:Y,$validateWithoutRaceconditions:J,...o?{"~modifiers":k.$modifiers}:{},...Ze(de)});return Object.defineProperty(pe,Symbol.for(`regle:instance`),{value:!0}),b(()=>{for(let e of Object.keys(pe).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete pe[e];for(let e of Object.values(z.value))e?.$name&&Object.assign(pe,{[e.$name]:e})}),pe}function ot({rulesDef:e,...n}){if(ve(e,n.state))return it({rulesDef:e,...n});if(_e(n.state,e)){if(G(n.state))return at({rulesDef:e,...n});{let r=t().run(()=>{let e=m(n.state.value?n.state:f({}));return y(()=>n.state.value,t=>{e.value=t},{deep:!0}),y(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return at({rulesDef:e,...a,state:r.fakeState})}}else if(ye(e))return nt({rulesDef:a(e.value)?e.value:e,...n})}function st(e){return e&&C(e)&&Object.keys(e).some(e=>e.includes(`.`))?E(e):e}function ct(e){return Array.isArray(e)?e.length>0:C(e)&&Object.keys(e).length>0}function lt(e){return Array.isArray(e)?[]:{}}function ut(e){let t=f(),n=f(),r,i,a,o,s=!1;function c(){let t=lt(n.value??e.externalIssues?.value);n.value=t,e.externalIssues&&(e.externalIssues.value=t)}function l(){let n=lt(t.value??e.externalErrors?.value);t.value=n,e.externalErrors&&(e.externalErrors.value=n)}function u(n,r=!1){if(s)return;s=!0;let i=st(n);t.value=i,r&&e.externalErrors&&(e.externalErrors.value=i),ct(i)&&c(),s=!1}function d(t,r=!1){if(s)return;s=!0;let i=st(t);n.value=i,r&&e.externalIssues&&(e.externalIssues.value=i),ct(i)&&l(),s=!1}function p(){r?.(),a?.(),r=y(()=>e.externalErrors?.value,e=>u(e),{deep:!0}),a=y(()=>e.externalIssues?.value,e=>d(e),{deep:!0})}function m(){i?.(),o?.(),i=y(()=>t.value,e=>u(e,!0),{deep:!0}),o=y(()=>n.value,e=>d(e,!0),{deep:!0})}function h(){g(),u(e.externalErrors?.value),d(e.externalIssues?.value),m()}function g(){i?.(),r?.(),o?.(),a?.(),i=void 0,r=void 0,o=void 0,a=void 0}return{externalErrors:t,externalIssues:n,start:h,watchOptionRefs:p,stop:g}}function dt({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:d,schemaMode:p=!1,onValidate:m,overrides:g}){let _=We(),v=f(!1),b=new Set,x,S=f(),C=ut(i),w;function T(){w=y(()=>h(i.disabled),async e=>{e?O():(E(),C.start(),C.watchOptionRefs())})}function E(){_e(o,a)?S.value=at({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:m,overrides:g}):ye(a)&&(S.value=nt({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:d,onValidate:m,overrides:g}))}function D(){w=void 0}function O(){S.value?.$unwatch(),C.stop()}function k(){v.value||(v.value=!0,x=t(!0),x.run(()=>{C.start(),E(),h(i.disabled)?s().then(()=>{S.value?.$unwatch()}):C.watchOptionRefs(),T()}))}function A(){v.value&&(v.value=!1,O(),w?.(),D(),x?.stop(),x=void 0,S.value=void 0,_.clearAll())}function j(){let e=r();!e||b.has(e)||(v.value||k(),b.add(e),l(()=>{b.delete(e),b.size||A()}))}k(),j();function M(){typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!fe()&&S.value&&Ue(S.value,{name:h(i.id)})}return M(),{regle:S,bindToCurrentScope:j}}function ft({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),d=i(J,void 0)??{},m={...d.modifiers,...o},h=()=>({...d.rules?.(),...s?.()}),_={...d.shortcuts,...c},v={...d.overrides,...l},y={...m,...r},x,S=p(u??{});typeof n==`function`&&(x=b(()=>{S.value=n(t),g(S)}));let w=f(C(t.value)?{...N(t.value)}:N(t.value)),T=C(t.value)?{...N(t.value)}:N(t.value);se(()=>{x?.()});let{regle:E,bindToCurrentScope:D}=dt({scopeRules:S,state:t,options:y,initialState:w,originalState:T,customRules:h,shortcuts:_,overrides:v});return{regle:E,bindToCurrentScope:D}}function pt(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:f(t),u=e(()=>h(c?.disabled)??!1),{regle:d,bindToCurrentScope:p}=ft({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:R(d,u,()=>{d.value||p()})}}return s}const mt=pt();function ht(){function e(e,t){return t}return e}const gt=ht();function _t(e,t){return w(h(e).$errors,String(t))}function vt(e,t){return w(h(e).$issues,String(t))}function yt(e){let t={};if(Object.entries(e).some(([e,t])=>be(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&C(r)&&`$each`in r&&r.$each&&C(r.$each)?t[n]=[yt(r.$each)]:C(r)&&!A(r)&&!Object.entries(r).some(([e,t])=>be(t)||typeof t==`function`)?t[n]=yt(r):t[n]=null}return t}function bt(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=f(yt(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=ft({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return R(d,u,()=>{d.value||p()})}return s}const xt=bt();function St(e){if(k(e)){let t=e,n=class extends t{constructor(...e){return super(...e),Ct(this)}};return Object.defineProperty(n,"name",{value:t.name}),Ct(n)}return Ct(e)}function Ct(e){return!D(e,Y.REGLE_STATIC)&&Object.isExtensible(e)&&O(e,Y.REGLE_STATIC,!0),e}function wt({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=pt({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=bt({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:ht(),useRules:a}}function Tt(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?T(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?T(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?T(a.overrides,i):a.overrides??i,u=pt({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:ht()}}function Et(e){return e}function Dt(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),y=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(e){Object.values(t).forEach(t=>{t.$setExternalIssues(e)})}function D(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function O(){Object.values(t).forEach(e=>{e.$clearExternalIssues()})}function k(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function A(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let j=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$output:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:y,$reset:S,$touch:C,$validate:A,$validateSync:k,$extractDirtyFields:w,$clearExternalErrors:D,$clearExternalIssues:O,$setExternalErrors:T,$setExternalIssues:E});return b(()=>{if(!r){for(let e of Object.keys(j).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete j[e];for(let[e,t]of Object.entries(x.value))Object.assign(j,{[e]:t})}}),j}function Ot(t,n){function r(r){let i=e(()=>h(r)),a=u({});c();let o=f(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}y(i,c),y(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?Dt(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),Dt(a,!n.asRecord)):Dt(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function kt(t,r){let i=r??mt;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...d}=o??{};i.__config??={};let p=e(()=>u??l),m=e(()=>h(s)),g=f(`${Object.keys(t.value).length+1}-${oe()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),se(b),y(m,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??m.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){m.value?(t.value[m.value]||(t.value[m.value]={}),t.value[m.value][_.value]=v):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=v)}return{r$:v,dispose:b,register:x}})}}function At(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):ce(()=>f({"~~global":{}})))(),{useScopedRegle:n}=kt(t,e?.customUseRegle),{useCollectScope:r}=Ot(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:jt,useScopedRegle:Mt}=At(),Nt=jt,Pt=Mt;function Ft(t,n,r){let i=e(()=>h(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(be(t))return h(t._params?.[0])===i.value}})||r.find(e=>C(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function It(e,t,n){return!!e&&t in e&&C(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function Lt(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),It(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function Rt(e){return e}function zt(e,t){return n=>T({...e},t(n))}var Bt=`1.27.2`;function Vt(e,t){let n=[],r=!1;we(e)?r=e[`~modifiers`]?.$disabled??!1:Ce(e)?r=e[`~modifiers`]?.disabled??!1:Q(e)&&(r=e[`~modifiers`]?.$disabled??!1);let i=we(e)?(`required`in e.$rules&&!e.$rules.required.$active||A(e.$rules))&&!e.$schemaMode:!1,a=Ce(e)||Q(e);return e.$error?n.push({label:`error`,textColor:X.ERROR.text,backgroundColor:X.ERROR.bg,tooltip:a?pe.ERROR:Z.ERROR}):e.$correct&&n.push({label:`correct`,textColor:X.CORRECT.text,backgroundColor:X.CORRECT.bg,tooltip:a?pe.CORRECT:Z.CORRECT}),e.$pending&&n.push({label:`pending`,textColor:X.PENDING.text,backgroundColor:X.PENDING.bg,tooltip:a?pe.PENDING:Z.PENDING}),r&&n.push({label:`disabled`,textColor:X.DISABLED.text,backgroundColor:X.DISABLED.bg,tooltip:Z.DISABLED}),i&&(n.push({label:`optional`,textColor:X.OPTIONAL.text,backgroundColor:X.OPTIONAL.bg,tooltip:Z.OPTIONAL}),!e.$invalid&&e.$dirty&&n.push({label:`valid`,textColor:X.VALID.text,backgroundColor:X.VALID.bg,tooltip:Z.VALID})),e.$dirty?n.push({label:`dirty`,textColor:X.DIRTY.text,backgroundColor:X.DIRTY.bg,tooltip:a?pe.DIRTY:Z.DIRTY}):i||n.push({label:`pristine`,textColor:X.PRISTINE.text,backgroundColor:X.PRISTINE.bg,tooltip:Z.PRISTINE}),t&&n.push({label:`<${t}.vue>`,textColor:X.COMPONENT.text,backgroundColor:X.COMPONENT.bg}),n}function Ht(e){let t=[];return e.$active?e.$valid?e.$valid&&t.push({label:`valid`,textColor:X.VALID.text,backgroundColor:X.VALID.bg,tooltip:me.VALID}):t.push({label:`invalid`,textColor:X.INVALID.text,backgroundColor:X.INVALID.bg,tooltip:me.INVALID}):t.push({label:`inactive`,textColor:X.INACTIVE.text,backgroundColor:X.INACTIVE.bg,tooltip:me.INACTIVE}),e.$pending&&t.push({label:`pending`,textColor:X.PENDING.text,backgroundColor:X.PENDING.bg,tooltip:me.PENDING}),t}function Ut(e,t,n){let r=[];return!e.$rules||typeof e.$rules!=`object`||Object.entries(e.$rules).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=Ht(i);r.push({id:je(t,n,e),label:`⚙️ ${e}`,tags:a,children:[]})}}),r}function Wt(e,t,n){let r=[];if(!e.$each||!Array.isArray(e.$each))return r;if(e.$each.forEach((e,i)=>{if(e&&typeof e==`object`){let a=Vt(e),o=`${n}[${i}]`,s=[];Ce(e)?s=Gt(e.$fields,t,o):we(e)&&(s=Ut(e,t,o)),r.push({id:ke(t,o),label:`[${i}]`,tags:a,children:s})}}),e.$self&&typeof e.$self==`object`){let i=Vt(e.$self),a=`${n}[$self]`;r.unshift({id:ke(t,a),label:`$self`,tags:i,children:Ut(e.$self,t,a)})}return r}function Gt(e,t,n){let r=[];return Object.entries(e).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=n?`${n}.${e}`:e,o=Vt(i),s=!1,c=!1,l=[];Q(i)?(l=Wt(i,t,a),s=!0,l.length===0&&(c=!0)):Ce(i)?l=Gt({...i.$fields,...i.$self&&{$self:i.$self}},t,a):we(i)&&(l=Ut(i,t,a));let u=l.filter(e=>e.label!==`$self`);r.push({id:ke(t,a),label:`${s?`${e}[${u.length}]`:e}${c?` (empty)`:``}`,tags:o,children:l})}}),r}function Kt(e,t){let n=[];return we(e)?Ut(e,t,`root`):(!(`$fields`in e)||typeof e.$fields!=`object`||Object.entries(e.$fields).forEach(([e,r])=>{if(r&&typeof r==`object`){let i=Vt(r),a=[],o=!1;Q(r)?(a=Wt(r,t,e),o=!0):Ce(r)?a=Gt({...r.$fields,...r.$self&&{$self:r.$self}},t,e):we(r)&&(a=Ut(r,t,e));let s=a.filter(e=>e.label!==`$self`);n.push({id:ke(t,e),label:`${o?`${e}[${s.length}]`:e}`,tags:i,children:a})}}),n)}function qt(e,t){let n=e.map(e=>{let{r$:t,id:n,name:r,componentName:i}=e;return{id:n,label:r,tags:Vt(t,i),children:Kt(t,n)}});return!t||t.trim()===``?n:Jt(n,t)}function Jt(e,t){let n=t.toLowerCase(),r=[];for(let i of e){let e=i.label.toLowerCase().includes(n),a=i.tags?.some(e=>e.label.toLowerCase().includes(n))??!1,o=i.children?Jt(i.children,t):[];(e||a||o.length>0)&&r.push({...i,children:o.length>0?o:i.children})}return r}function Yt(e){x({id:`regle-devtools`,label:`Regle`,logo:`https://reglejs.dev/logo_main.png`,packageName:`@regle/core`,homepage:`https://reglejs.dev`,componentStateTypes:[`Regles`],app:e},e=>{$.setApi(e),e.addInspector({id:ge.INSPECTOR,label:`Regle`,noSelectionText:`No instance selected`,icon:`rule`,treeFilterPlaceholder:`Filter state`,stateFilterPlaceholder:`Filter validation status`,actions:[{icon:`confirmation_number`,tooltip:`Log Regle version`,action:()=>{console.info(`Regle version`,Bt)}}],nodeActions:[{icon:`check`,tooltip:`Validate`,action:e=>{Le(e)}},{icon:`touch_app`,action:e=>{ze(e)},tooltip:`Touch the instance with $touch`},{icon:`refresh`,tooltip:`Reset validation state`,action:e=>{Re(e)}},{icon:`restore`,tooltip:`Restore to original state`,action:e=>{Re(e,!0)}}]}),$.notifyDevtools(),e.on.getInspectorTree(async e=>{if(e.inspectorId===ge.INSPECTOR){let t=qt($.getAll(),e.filter);t.length>0?e.rootNodes=t:e.rootNodes=[{id:`empty-regles`,label:`No Regles instances found`,children:[]}]}}),e.on.getInspectorState(t=>{if(t.inspectorId===ge.INSPECTOR){let n=Ie(t.nodeId,e=>$.get(e));n||e.sendInspectorTree(ge.INSPECTOR),n?t.state=n:t.state={}}}),e.on.editInspectorState(e=>{e.inspectorId===ge.INSPECTOR&&Be(e)})})}const Xt={install(e,t){e.provide(de,Bt),t&&e.provide(J,t),typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!fe()&&Yt(e)}};export{te as InternalRuleType,Xt as RegleVuePlugin,U as createRule,At as createScopedUseRegle,Ft as createVariant,wt as defineRegleConfig,Et as defineRegleOptions,Rt as defineRules,Tt as extendRegleConfig,Je as flatErrors,_t as getErrors,vt as getIssues,gt as inferRules,ne as isRegleInstance,St as markStatic,Dt as mergeRegles,It as narrowVariant,zt as refineRules,z as unwrapRuleParameters,Nt as useCollectScope,mt as useRegle,dt as useRootStorage,xt as useRules,Pt as useScopedRegle,Lt as variantToRef};
7
+ import{computed as e,effectScope as t,getCurrentInstance as n,getCurrentScope as r,inject as i,isRef as a,markRaw as o,nextTick as s,onMounted as c,onScopeDispose as l,reactive as u,readonly as d,ref as f,shallowRef as p,toRef as m,toValue as h,triggerRef as g,unref as _,version as v,watch as y,watchEffect as b}from"vue";import{DevToolsMessagingHookKeys as x,DevToolsV6PluginAPIHookKeys as S,devtoolsContext as C,devtoolsState as w,getInspector as T}from"@vue/devtools-kit";import{onDevToolsClientConnected as E,setupDevtoolsPlugin as D}from"@vue/devtools-api";function O(e){return e?.constructor?.name==`File`}function k(e){return e&&(e instanceof Date||e.constructor.name==`File`||e.constructor.name==`FileList`)?!1:typeof e==`object`&&!!e&&!Array.isArray(e)}function A(e,t,n){if(!e)return n;var r,i;if(Array.isArray(t)&&(r=t.slice(0)),typeof t==`string`&&(r=t.split(`.`)),typeof t==`symbol`&&(r=[t]),!Array.isArray(r))throw Error(`props arg must be an array, a string or a symbol`);for(;r.length;)if(i=r.shift(),!e||!i||(e=e[i],e===void 0))return n;return e}function j(e,...t){for(var n=[].slice.call(arguments),r,i=n.length;r=n[i-1],i--;)if(!r||typeof r!=`object`&&typeof r!=`function`)throw Error(`expected object, got `+r);for(var a=n[0],o=n.slice(1),s=o.length,i=0;i<s;i++){var c=o[i];for(var l in c)a[l]=c[l]}return a}function M(e){let t={};for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n],i=n.split(`.`),a=t;for(let e=0;e<i.length;e++){let t=i[e],n=e===i.length-1,o=t.match(/^\d+$/)?Number(t):null;if(o!==null){if(Array.isArray(a))if(n)a[o]=r;else{if(typeof a[o]!=`object`||a[o]===null){let t=i[e+1];a[o]=t&&t.match(/^\d+$/)?{$each:[],$self:[]}:{}}a=`$each`in a[o]?a[o].$each:a[o]}}else if(n)if(Array.isArray(a[t])){let e=a[t].slice();a[t]={},a[t].$self=e}else typeof a[t]==`object`&&a[t]!==null&&`$each`in a[t]?a[t].$self=r:a[t]=r;else{let n=i[e+1];if(Array.isArray(a[t])){let e=a[t].slice();a[t]={$each:[]},a[t].$self=e}(typeof a[t]!=`object`||a[t]===null||Array.isArray(a[t])&&!n.match(/^\d+$/))&&(n&&n.match(/^\d+$/)?a[t]={$each:[],$self:[]}:a[t]={}),a=`$each`in a[t]?a[t].$each:a[t]}}}return t}function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function P(e,t,n,r=!1){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})}function F(e){return typeof e==`function`&&!!e.prototype&&`constructor`in e.prototype&&e.prototype.constructor===e}function I(e,t=!0,n=!0){return e==null?!0:e instanceof Date?isNaN(e.getTime()):O(e)?e.size<=0:Array.isArray(e)?t?e.length===0:!1:k(e)?e==null?!0:n?Object.keys(e).length===0:!1:!String(e).length}const L=Symbol(`regle-rule`);function R(e){let t=[];return e.global&&t.push(`g`),e.ignoreCase&&t.push(`i`),e.multiline&&t.push(`m`),e.sticky&&t.push(`y`),e.unicode&&t.push(`u`),t.join(``)}function z(e,t=0){if(t>20)return e;let n=e,r={}.toString.call(e).slice(8,-1);if(r==`Set`&&(n=new Set([...e].map(e=>z(e,t+1)))),r==`Map`&&(n=new Map([...e].map(e=>[z(e[0],t+1),z(e[1],t+1)]))),r==`Date`&&(n=new Date(e.getTime())),r==`RegExp`&&(n=RegExp(e.source,R(e))),r==`Array`||r==`Object`){n=Array.isArray(e)?[]:{};for(let r in e)n[r]=z(e[r],t+1)}return n}function ee(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e==`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`||typeof e==`string`||t===`[object String]`?new Date(e):new Date(NaN)}function B(e,t,{immediate:n=!1,trackDebounceRef:r}={}){let i,a=(...a)=>{r&&(r.value=!0);function o(){r&&(r.value=!1)}return new Promise((r,s)=>{function c(e){r(e),o()}if(clearTimeout(i),i=setTimeout(()=>{if(o(),i=void 0,!n)try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}},t),n){o();try{Promise.resolve(e.apply(this,[...a])).then(c).catch(e=>s(e)).finally(o)}catch(e){s(e)}}})};return a.cancel=()=>{clearTimeout(i),i=void 0,r&&(r.value=!1)},a}function te(e,t,n=!1,r=!0){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var i,a,o;if(Array.isArray(e)&&Array.isArray(t)){if(i=e.length,i!=t.length)return!1;if(r||!r&&n){for(a=i;a--!==0;)if(!te(e[a],t[a],n,!1))return!1}return!0}if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(o=Object.keys(e),i=o.length,i!==Object.keys(t).length)return!1;for(a=i;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;for(a=i;a--!==0;){var s=o[a];if(k(e)&&k(t)&&s&&(r||!r&&n)&&!te(e[s],t[s],n,!1))return!1}return!0}return e!==e&&t!==t}var V=class extends Error{constructor(e=`Promise was aborted`){super(e),this.name=`AbortError`}};function H(e){let t=new AbortController,{signal:n}=t,r=new Promise((t,r)=>{function i(){r(new V)}n.addEventListener(`abort`,i),e.then(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new V):t(e)}).catch(e=>{n.removeEventListener(`abort`,i),n.aborted?r(new V):r(e)})});function i(e){t.abort(e)}return{promise:r,abort:i,signal:n}}function U(e,t,r){if(!a(e))return r?.(),u(e);let i=f(!1);return n()&&c(async()=>{await s(),typeof window<`u`&&window.requestAnimationFrame(()=>{i.value=!0})}),u(new Proxy({},{get(n,a,o){if(r?.(),t.value&&a!==`$value`&&i.value)return Reflect.get(n,a,o);if(e.value!==void 0)return _(Reflect.get(e.value,a,o))},set(t,n,i){return r?.(),a(e.value[n])&&!a(i)?e.value[n].value=i:e.value[n]=i,!0},deleteProperty(t,n){return r?.(),Reflect.deleteProperty(e.value,n)},has(t,n){return r?.(),e.value===void 0?!1:Reflect.has(e.value,n)},ownKeys(){return r?.(),e.value===void 0?[]:Object.keys(e.value)},getOwnPropertyDescriptor(){return r?.(),{enumerable:!0,configurable:!0}}}))}const W={Inline:`__inline`,Async:`__async`};function G(e){try{return e.map(e=>h(e))}catch{return[]}}function K(t){return t.map(t=>t instanceof Function?e(t):a(t)?t:m(()=>t))}function ne(e){let t=e.toString().replace(/\/\/.*$/gm,``).replace(/\/\*[\s\S]*?\*\//g,``).match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return t?(t[0]||t[1]||t[2]||t[3]||t[4]||``).split(`,`).map(e=>e.trim()).filter(e=>e.length>0).length:0}function q(e,...t){let{validator:n,type:r,async:i}=e,a=i||r===W.Async||n.constructor.name===`AsyncFunction`;return o({validator(n,...r){return e.validator(n,...G(r.length?r:t))},message(n){return typeof e.message==`function`?e.message({...n,$params:G(n?.$params?.length?n.$params:t)}):e.message},active(n){return typeof e.active==`function`?e.active({...n,$params:G(n?.$params?.length?n.$params:t)}):e.active??!0},tooltip(n){return typeof e.tooltip==`function`?e.tooltip({...n,$params:G(n?.$params?.length?n.$params:t)}):e.tooltip??[]},exec(n){let r=e.validator(n,...G(t)),i;return r instanceof Promise?r.then(e=>(i=e,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)):(i=r,typeof i==`object`&&`$valid`in i?i.$valid:typeof i==`boolean`?i:!1)},type:r,_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:a,_params:K(t),_brand:L})}function re(e){if(typeof e.validator==`function`){let t=[],n=e.async??e.validator.constructor.name===`AsyncFunction`,r=q({...e,async:n},...t);if(ne(e.validator)>1){let t=function(...t){return q(e,...t)};return t.validator=r.validator,t.message=r.message,t.active=r.active,t.tooltip=r.tooltip,t.type=r.type,t.exec=r.exec,t._validator=r.validator,t._message=r.message,t._active=r.active,t._tooltip=r.tooltip,t._type=e.type,t._message_pacthed=!1,t._tooltip_pacthed=!1,t._async=n,t}else return r}throw Error(`[createRule] validator must be a function`)}const J=Symbol.for(`regle:instance`);function Y(e){return typeof e==`object`&&!!e&&J in e}function ie(e){return k(e.value)}function ae(n,r,i){let a=t(),o;return o=n instanceof Function?a.run(()=>({computedEach:e(()=>n(r,i??0))})).computedEach:n,{scope:a,unwrapped:o}}const oe={LessThan:-1,EqualTo:0,GreaterThan:1};function se(e,t){let n=String(e).split(`.`),r=String(t).split(`.`);for(let e=0;e<Math.min(n.length,r.length);e++){let t=Number(n[e]),i=Number(r[e]);if(t>i)return oe.GreaterThan;if(i>t)return oe.LessThan;if(!isNaN(t)&&isNaN(i))return oe.GreaterThan;if(isNaN(t)&&!isNaN(i))return oe.LessThan}return oe.EqualTo}const ce=se(v,`3.5.0`)!==-1;function le(){return Math.floor(Math.random()*Date.now()).toString()}function X(){return typeof window>`u`?le():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function Z(e){return r()?(l(e),!0):!1}function ue(e){let n=!1,r,i=t(!0);return((...t)=>(n||=(r=i.run(()=>e(...t)),!0),r))}function de(e,t){return e.some(e=>t?e?.[t]:!1)}function fe(e,t){return t?e.reduce((e,n)=>{let r=n?.[t]||[];return e.concat(r)},[]):[]}const pe=Symbol(`regle`),me=Symbol(`regle-config`),he={REGLE_STATIC:`__regle_static`};function ge(){return!!(typeof globalThis<`u`&&(`__vitest_worker__`in globalThis||`__JEST_GLOBAL__`in globalThis||typeof window<`u`&&`Cypress`in window||typeof process<`u`&&process.env&&(process.env.VITEST||process.env.JEST_WORKER_ID||process.env.NODE_ENV===`test`||process.env.PLAYWRIGHT_TEST)))}const Q={ERROR:{text:16777215,bg:15680580},INVALID:{text:16777215,bg:16747520},CORRECT:{text:16777215,bg:1096065},VALID:{text:16777215,bg:292951},PENDING:{text:16777215,bg:16096779},DIRTY:{text:2042167,bg:16708551},COMPONENT:{text:16777215,bg:6514417},PRISTINE:{text:1120295,bg:16777215},INACTIVE:{text:0,bg:11581118},OPTIONAL:{text:0,bg:11581118},DISABLED:{text:15680580,bg:15067115}},_e={PRISTINE:`Field is not touched yet`,DIRTY:`Field have been touched`,ERROR:`Field has errors`,CORRECT:`Field is dirty and all actives rules are valid`,VALID:`Field rules are all valid`,PENDING:`Field is pending`,INACTIVE:`Field is inactive`,OPTIONAL:`Field is not required`,DISABLED:`Validation reactivity is paused by the disabled modifier`},ve={DIRTY:`All nested fields have been touched`,ERROR:`Some nested fields have errors`,CORRECT:`All nested fields are correct`,PENDING:`Some nested fields are pending`},ye={INACTIVE:`The rule is not active`,INVALID:`Rule is invalid`,VALID:`Rule is valid`,PENDING:`Rule validator is pending`},be={ROOT:[`$invalid`,`$dirty`,`$error`,`$pending`,`$valid`,`$ready`],FIELD:[`$value`,`$invalid`,`$dirty`,`$error`,`$pending`,`$errors`]},xe={INSPECTOR:`regle-inspector`,COMPONENTS:`components`,TIMELINE:`regle-timeline`};async function Se(e,t){let n=T(e,t),r={app:t,inspectorId:e,filter:n?.treeFilter??``,rootNodes:[]};await C.hooks.callHookWith(async e=>{await Promise.all(e.map(e=>e(r)))},S.GET_INSPECTOR_TREE,r),await C.hooks.callHookWith(async t=>{await Promise.all(t.map(t=>t({inspectorId:e,rootNodes:r.rootNodes})))},x.SEND_INSPECTOR_TREE_TO_CLIENT,{inspectorId:e,rootNodes:r.rootNodes});let i=n?.selectedNodeId??``,a={app:t,inspectorId:e,nodeId:i,state:{}},o={currentTab:`custom-inspector:${e}`};i&&await C.hooks.callHookWith(async e=>{await Promise.all(e.map(e=>e(a,o)))},S.GET_INSPECTOR_STATE,a),await C.hooks.callHookWith(async t=>{await Promise.all(t.map(t=>t({inspectorId:e,nodeId:i,state:a.state})))},x.SEND_INSPECTOR_STATE_TO_CLIENT,{inspectorId:e,nodeId:i,state:a.state})}async function Ce(e,t){let n=xe.INSPECTOR;if(t&&(w.clientConnected||w.connected)){await Se(n,t);return}e.sendInspectorTree(n),e.sendInspectorState(n)}const we=`__REGLE_DEVTOOLS_REGISTRY__`;function Te(){let e=f(!1),t=p(),n=p(),r=p(new Map),i=p(new Map),a=f(0),o;function s(e,r){t.value=e,r&&(n.value=r)}function c(e,t){let n=++a.value,o=`${t?.uid?.toString()??`regle`}#${n}`,s=`r\$ #${t?.name??n}`;r.value.set(o,{id:o,name:s,r$:e,componentName:t?.componentName,filePath:t?.filePath});let c=y([()=>e.$value,()=>e.$externalErrors,()=>e.$externalIssues,()=>e.$error,()=>e.$invalid,()=>e.$pending],()=>u(),{deep:!0,flush:`post`});return i.value.set(o,c),window.requestAnimationFrame(()=>{l()}),o}function l(){t.value&&Ce(t.value,n.value)}function u(){o??=window.requestAnimationFrame(()=>{o=void 0,l()})}function d(e){let t=i.value.get(e);t&&(t(),i.value.delete(e)),r.value.delete(e),l()}function m(){return Array.from(r.value.values())}function h(e){return r.value.get(e)}function g(){i.value.forEach(e=>e()),i.value.clear(),r.value.clear(),l()}return{devtoolsApi:t,devtoolsApp:n,register:c,unregister:d,getAll:m,get:h,clear:g,setApi:s,notifyDevtools:l,loggedWarning:e}}function Ee(){if(typeof globalThis>`u`)return Te();let e=globalThis;return e[we]??=Te(),e[we]}const $=Ee();function De(e,t){if(typeof window>`u`||!(typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__)||ge())return()=>{};if(!i(pe,void 0)&&!$.loggedWarning.value&&$.devtoolsApi)return $.loggedWarning.value=!0,console.warn(`📏 Regle Devtools are not available. Install Regle plugin in your app to enable them. https://reglejs.dev/introduction/devtools`),()=>{};let r=n(),a=r?.type?.name||r?.type?.__name,o;r&&r.type&&typeof r.type==`object`&&`__file`in r.type&&(o=r.type.__file);let s=$.register(e,{name:t?.name,componentName:a,uid:r?.uid,filePath:o});function c(){$.unregister(s)}return Z(c),c}function Oe(){let e=p(new Map),t=p(new Map),n=p(new Map),i=p(new Map),a=p(new Map),o=p(new Map),s=p(new Map);function c(e){let n=t.value.get(e);if(n)return n;{let n=f({});return t.value.set(e,n),n}}function u(e){let t=n.value.get(e);if(t)return t;{let t=f([]);return n.value.set(e,t),t}}function d(e,t){o.value.set(e,t)}function m(e){return o.value.get(e)}function h(e,t,n){s.value.set(`${e}-${t}`,n)}function g(e,t){return s.value.get(`${e}-${t}`)}function _(e,t){e&&t!=null&&s.value.delete(`${e}-${t}`)}function v(e,t){i.value.set(e,t)}function y(e){return i.value.get(e)??!1}function b(t,n){e.value.set(t,n)}function x(t,n){let r=e.value.get(t);if(r)return S(n,r)?{valid:!0}:{valid:!1}}function S(e,t){let n=Object.keys(t),r=Object.keys(e);return r.length!==n.length||!r.every(e=>n.includes(e))?!1:r.every(n=>{let r=e[n],i=t[n];if(!i||!r||typeof r==`function`||typeof i==`function`||typeof r==`number`||typeof r==`boolean`||typeof r==`string`)return!1;if(`_params`in r){if(!r._params)return!0;if(Array.isArray(r._params))return r._params?.every((e,t)=>{if(typeof i==`number`||typeof i==`boolean`||typeof i==`string`)return!0;{let e=G(`_params`in i&&Array.isArray(i._params)?i._params:[]),n=G(r._params);return e?.[t]===n?.[t]}})}})}function C(e){let t=a.value.get(e);if(t)return t;{let t=f(!1),n=f(!0),r=f({}),i=f(!1);return a.value.set(e,{$pending:t,$valid:n,$metadata:r,$validating:i}),{$pending:t,$valid:n,$metadata:r,$validating:i}}}function w(){e.value.clear(),t.value.clear(),n.value.clear(),i.value.clear(),a.value.clear(),o.value.clear(),s.value.clear()}return r()&&l(w),{clearAll:w,addRuleDeclEntry:b,setDirtyEntry:v,checkRuleDeclEntry:x,getDirtyState:y,trySetRuleStatusRef:C,getFieldsEntry:c,getCollectionsEntry:u,getArrayStatus:g,addArrayStatus:h,deleteArrayStatus:_,arrayStatusStorage:s,addAdditionalRulesEntry:d,getAdditionalRulesEntry:m}}function ke(e,t){return!Pe(e.value)&&(ie(e)||k(t.value)&&!I(t.value)&&!Object.entries(t.value).some(([e,t])=>Me(t)||typeof t==`function`))}function Ae(e,t){return!!e.value&&k(e.value)&&`$each`in e.value||Array.isArray(t.value)}function je(e){return!!e.value&&(k(e.value)||ie(e.value))}function Me(e){return(k(e)||typeof e==`function`)&&`_validator`in e}function Ne(e){return typeof e.value==`function`?`_validator`in e.value:!0}function Pe(e){return k(e)&&N(e,he.REGLE_STATIC)&&e[he.REGLE_STATIC]===!0}function Fe(e){return k(e)&&`$fields`in e}function Ie(e){return!!e&&`$each`in e}function Le(e){return!!e&&`$rules`in e}function Re({field:e,silent:t=!1}){let n=Object.entries(e.$rules??{}).map(([n,r])=>{let i=``;if(t&&!r.$valid)i=r.$message;else if(!r.$valid&&e.$error&&!r.$validating)i=r.$message;else return null;return{$message:i,$property:e.fieldName,$rule:n,$type:r.$type,...typeof r.$metadata==`object`?r.$metadata:{}}}).filter(e=>!!e).reduce((e,t)=>(typeof t.$message==`string`?e.push(t):e.push(...t.$message.map(e=>({...t,$message:e}))),e),[]),r=e.$error&&e.$externalErrors&&Array.isArray(e.$externalErrors)&&!e.$externalIssues?.length?e.$externalErrors.map(t=>({$message:t,$property:e.fieldName,$rule:`external`,$type:void 0})):[],i=e.$error&&e.$externalIssues&&Array.isArray(e.$externalIssues)?e.$externalIssues.map(t=>({...t,$property:t.$property??e.fieldName,$rule:t.$rule??`external`})):[],a=[];return e.$schemaErrors&&e.$error&&(a=!Array.isArray(e.$schemaErrors)&&`$self`in e.$schemaErrors?e.$schemaErrors.$self??[]:e.$schemaErrors??[]),[...n,...r,...i,...a]}function ze({field:e}){let t=[];for(let n of Object.values(e.$rules??{})){let e=n.$tooltip;e&&(typeof e==`string`?t.push(e):t.push(...e))}return t}function Be(e){return k(e)&&`$each`in e}function Ve(e,t){let{includePath:n=!1}=t??{};if(Array.isArray(e)&&e.every(e=>!k(e)))return e;if(Be(e)){let t=n?e.$self?.map(e=>({message:e,path:[]}))??[]:e.$self??[],r=e.$each?.map(e=>He(e,n))??[];return t?.concat(r.flat())}else return Object.entries(e).map(([e,t])=>He(t,n,[e])).flat()}function He(e,t=!1,n){let r=t&&!n?[]:n;if(Array.isArray(e)&&e.every(e=>!k(e)))return t?e.map(e=>({message:e,path:r??[]})):e;if(Be(e)){let n=r?.length?e.$self?.map(e=>({message:e,path:r??[]}))??[]:e.$self??[],i=e.$each?.map((e,n)=>He(e,t,r?.concat(n)))??[];return n?.concat(i.flat())}else return Object.entries(e).map(([e,n])=>He(n,t,r?.concat(e))).flat()}function Ue({customMessages:n,rule:r,ruleKey:i,state:a,path:o,cachePath:s,storage:c,modifiers:l}){let d=t(),p={},m,h=e(()=>Me(r.value)&&r.value._async),g=f(!1),_=0,{$pending:v,$valid:b,$metadata:x,$validating:S}=c.trySetRuleStatusRef(`${s}.${i}`);function C(){d=t(),p=d.run(()=>{let t=f(!1),s=f(!1),c=f(!0),l=f(!1),u=f(!1),d=e(()=>({$value:a.value,$error:s.value,$dirty:t.value,$pending:l.value,$correct:u.value,$invalid:c.value,$rule:{$valid:b.value,$invalid:!b.value,$pending:v.value},$params:S.value,...x.value})),p=e(()=>{try{return Ne(r)?typeof r.value.active==`function`?r.value.active(d.value):!!r.value.active:!0}catch(e){return console.error(`Error in "active" function for "${o}.${i}" rule`,{cause:e}),!0}});function m(e){try{let t=``,a=n?n[i]?.[e]:void 0;if(a&&(t=typeof a==`function`?a(d.value):a),Ne(r)){let n=`_${e}_patched`;a&&!r.value[n]||(t=typeof r.value[e]==`function`?r.value[e](d.value):r.value[e]??``)}return t}catch(t){return console.error(`Error in "${e}" function for "${o}.${i}" rule`,{cause:t}),``}}let h=e(()=>{let e=m(`message`);return I(e)&&(e=`This field is not valid`),e}),g=e(()=>m(`tooltip`)),_=e(()=>Ne(r)&&r.value.type?r.value.type:i),y=e(()=>Ne(r)?r.value.validator:r.value),S=e(()=>typeof r.value==`function`?[]:G(r.value._params??[]));return{$active:p,$message:h,$type:_,$validator:y,$params:S,$path:e(()=>`${o}.${i}`),$tooltip:g,$fieldCorrect:u,$fieldError:s,$fieldDirty:t,$fieldPending:l,$fieldInvalid:c}}),m=y(p?.$params,()=>{(!l.$silent.value||l.$rewardEarly.value&&p.$fieldError.value)&&D()},{deep:ce?1:!0})}C();function w(){b.value=!0,p.$fieldDirty.value&&(v.value=!0)}async function T(e){let t=!1;try{let n=p.$validator.value;if(typeof n!=`function`)return console.error(`${o}: Incorrect rule format, it needs to be either a function or created with "createRule".`),!1;let r=n(a.value,...p.$params.value),i=a.value;w();let s;if(s=r instanceof Promise?await r:r,e!==_||a.value!==i)return b.value;if(typeof s==`boolean`)t=s;else{let{$valid:e,...n}=s;t=e,x.value=n}}catch{t=!1}finally{e===_&&(v.value=!1)}return t}function E(e,t=!0){if(Me(r.value)&&r.value._async)return!0;let n=e(a.value,...p.$params.value);if(n instanceof Promise)return!0;if(n!=null){if(typeof n==`boolean`)return n;{let{$valid:e,...t}=n;return x.value=t,e}}return!0}async function D(){let e=++_;try{S.value=!0;let t=!1;if(g.value=!0,Me(r.value)&&r.value._async)t=await T(e);else{let e=p.$validator.value;t=E(e)}return e===_?(b.value=t,t):b.value}catch{return!1}finally{e===_&&(S.value=!1,g.value=!1)}}function O(){try{return S.value=!0,E(p.$validator.value)}catch{return!1}finally{S.value=!1}}function k(){_++,b.value=!0,x.value={},v.value=!1,S.value=!1,C()}function A(){m(),d.stop(),d=t()}return u({...p,$pending:v,$valid:b,$metadata:x,$haveAsync:h,$maybePending:g,$validating:S,$parse:D,$parseSync:O,$unwatch:A,$watch:C,$reset:k})}function We(e){return{"~standard":{version:1,vendor:`regle`,validate:async t=>{let{valid:n,data:r,errors:i}=await e(t,!0);return n?{value:r,issues:[]}:{issues:Ve(i,{includePath:!0})}}}}}function Ge(e){return e===!0?`eager`:e===!1||e==null?!1:e}function Ke(e){return k(e)&&!Pe(e)?Object.values(e).some(e=>Ke(e)):Array.isArray(e)?e.some(e=>Ke(e)):!I(e)}function qe(e,t,n){return e===`eager`?!0:e===`non-empty`?Ke(n):e===`lazy-non-empty`?Ke(t):!1}function Je(e,t,n,r=!1){return e===`eager`?!0:e===`non-empty`?r&&!I(n):e===`lazy-non-empty`?!I(t):!1}function Ye({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,fieldName:c,storage:l,options:d,externalErrors:p,externalIssues:g,schemaErrors:_,schemaMode:v,onUnwatch:x,$isArray:S,initialState:C,rootInitialState:w,originalState:T,shortcuts:E,overrides:D,onValidate:O}){let A=t(),j,M=[],N,P,F,L,R=()=>{},V,U=()=>{},W=f(!1),G=f(l.getAdditionalRulesEntry(o)??{});function K(e){G.value=e??{},l.addAdditionalRulesEntry(o,e??{}),q(),R()}function ne(e){K(e)}function q(){let e={...r.value,...G.value},t=[];for(let r in e){if(r.startsWith(`$`)||r.startsWith(`~`))continue;let s=e[r];if(!s)continue;let c=m(()=>s);t.push([r,Ue({modifiers:{$silent:j.$silent,$rewardEarly:j.$rewardEarly},customMessages:i,rule:c,ruleKey:r,state:n,path:a,cachePath:o,storage:l,$debounce:Z.value.$debounce})])}X.value=Object.fromEntries(t),l.addRuleDeclEntry(o,e)}function re(){let e={...r.value,...G.value},t=l.checkRuleDeclEntry(o,e),n={};for(let t in e)t.startsWith(`$`)&&(n[t]=e[t]);return Z.value=n,t}function J(){let e=re();oe(),q(),j.processShortcuts(),Y(),ie(),e?.valid!=null&&(j.$dirty.value=l.getDirtyState(o),(j.$dirty.value&&!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&R()),l.addRuleDeclEntry(o,r.value)}function Y(){R=j.$debounce.value>0?B(le,j.$debounce.value,{trackDebounceRef:W}):le}function ie(){U=j.$debounce.value>0?B(()=>{j.$dirty.value=!0},j.$debounce.value):()=>{j.$dirty.value=!0}}function ae(){if(X.value)for(let e of Object.values(X.value))e.$unwatch();P(),L?.(),j.$dirty.value&&l.setDirtyEntry(o,j.$dirty.value),N?.(),A.stop(),A=t();for(let e of M)e.stop();M=[],x?.(),F?.()}function oe(){if(X.value)for(let e of Object.values(X.value))e.$watch();j=A.run(()=>{let r=f(!1),i=f(!1),a=e(()=>r.value),o=e(()=>S||Pe(n.value)),s=e(()=>Z.value.$debounce==null?h(d.debounce)==null?j.$haveAnyAsyncRule.value?200:0:h(d.debounce):Z.value.$debounce),l=e(()=>Z.value.$deepCompare==null?!1:Z.value.$deepCompare),m=e(()=>Z.value.$lazy==null?h(d.lazy)==null?!1:h(d.lazy)===!0:Z.value.$lazy),y=e(()=>Z.value.$immediateDirty==null?h(d.immediateDirty)==null?!1:Ge(h(d.immediateDirty)):Ge(Z.value.$immediateDirty)),x=e(()=>Z.value.$rewardEarly==null?h(d.rewardEarly)==null?!1:h(d.rewardEarly)===!0:!!Z.value.$rewardEarly),w=e(()=>Z.value.$clearExternalErrorsOnChange==null?h(d.clearExternalErrorsOnChange)==null?!O.value:h(d.clearExternalErrorsOnChange)===!0:!!Z.value.$clearExternalErrorsOnChange),T=e(()=>Z.value.$clearExternalErrorsOnValidate==null?h(d.clearExternalErrorsOnValidate)==null?!1:h(d.clearExternalErrorsOnValidate)===!0:!!Z.value.$clearExternalErrorsOnValidate),O=e(()=>x.value?!0:Z.value.$silent==null?h(d.silent)==null?!1:h(d.silent)===!0:Z.value.$silent),k=e(()=>Z.value.$autoDirty==null?h(d.autoDirty)==null?!0:h(d.autoDirty)===!0:Z.value.$autoDirty),A=e(()=>{if(Z.value.$isEdited!=null)return Z.value.$isEdited;if(D?.isEdited!=null)return D.isEdited}),P=e(()=>{for(let e of Object.values(X.value))if(e.$validating)return!0;return!1}),F=e({get:()=>n.value,set(e){N(),n.value=e,se()}}),L=e(()=>W.value?re.value&&r.value:re.value&&!q.value&&r.value),R=e(()=>Re({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:J.value}})),z=e(()=>Re({field:{$rules:X.value,$error:L.value,$externalErrors:p?.value,$externalIssues:g?.value,$schemaErrors:_?.value,fieldName:J.value},silent:!0})),B=e(()=>R.value.map(e=>e.$message)),V=e(()=>z.value.map(e=>e.$message)),H=f(!1);function U(e,t){return t instanceof Date&&e instanceof Date?ee(t).getTime()!==ee(e).getTime():t==null?typeof e==`boolean`?t===void 0?e===!0:e!=null:e!=null&&e!==``:Array.isArray(e)&&Array.isArray(t)?!te(e,t,Z.value.$deepCompare):t!==e}b(()=>{r.value?A.value?H.value=A.value(n.value,C.value,U):H.value=U(n.value,C.value):H.value=!1});let G=e(()=>H.value),K=e(()=>ze({field:{$rules:X.value}})),ne=e(()=>!(re.value||q.value)),q=e(()=>i.value||!x.value?Object.entries(X.value).some(([e,t])=>t.$pending):!1),re=e(()=>p?.value?.length||g?.value?.length||_?.value?.length?!0:Y.value?!1:Object.values(X.value).some(e=>!e.$valid||e.$maybePending)),J=e(()=>c??d.id??`root`),Y=e(()=>!v&&!Object.keys(X.value).some(e=>!e.startsWith(`$`))),ie=e(()=>{if(p?.value?.length||g?.value?.length||Y.value||W.value)return!1;if(r.value&&!I(n.value)&&!P.value&&!q.value){if(v)return!_?.value?.length;{let e=Object.values(X.value);for(let t of e)if(t.$active&&!t.$valid)return!1;return e.some(e=>e.$active)}}return!1}),ae=e(()=>Object.values(X.value).some(e=>e.$haveAsync)),oe=e(()=>({$debounce:s.value,$lazy:m.value,$rewardEarly:x.value,$autoDirty:k.value,$silent:O.value,$clearExternalErrorsOnChange:w.value,$clearExternalErrorsOnValidate:T.value,$immediateDirty:y.value,$isEdited:A.value,$disabled:h(d.disabled)??!1}));function ce(){E?.fields&&Object.entries(E.fields).forEach(([e,i])=>{let o=t();le[e]=o.run(()=>{let e=f();return b(()=>{e.value=i(u({$dirty:r,$externalErrors:p?.value??[],$externalIssues:g?.value??[],$value:n,$silentValue:F,$rules:X,$error:L,$pending:q,$invalid:re,$correct:ie,$errors:B,$ready:ne,$silentErrors:V,$anyDirty:a,$tooltips:K,$name:J,$inactive:Y,$edited:H,$anyEdited:G}))}),e}),M.push(o)})}let le={};return{$error:L,$pending:q,$invalid:re,$correct:ie,$debounce:s,$deepCompare:l,$lazy:m,$immediateDirty:y,$ready:ne,$issues:R,$silentIssues:z,$errors:B,$silentErrors:V,$rewardEarly:x,$autoDirty:k,$silent:O,$clearExternalErrorsOnChange:w,$clearExternalErrorsOnValidate:T,$anyDirty:a,$edited:H,$anyEdited:G,$name:J,$haveAnyAsyncRule:ae,$shortcuts:le,$validating:P,$tooltips:K,$dirty:r,processShortcuts:ce,$silentValue:F,$inactive:Y,$modifiers:oe,$isArrayOrRegleStatic:o}}),se(),P=y(j.$dirty,e=>{l.setDirtyEntry(o,e),Object.values(X.value).forEach(t=>{t.$fieldDirty=e})}),L=y([j.$error,j.$correct,j.$invalid,j.$pending],()=>{Object.values(X.value).forEach(e=>{e.$fieldError=j.$error.value,e.$fieldInvalid=j.$invalid.value,e.$fieldPending=j.$pending.value,e.$fieldCorrect=j.$correct.value})}),F=y(j.$haveAnyAsyncRule,Y)}function se(){N=y(n,()=>{j.$autoDirty.value&&!j.$silent.value&&(j.$dirty.value||U()),r.value instanceof Function&&J(),(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&R(),j.$clearExternalErrorsOnChange.value&&(be(),Se())},{deep:j.$isArrayOrRegleStatic.value?!0:ce?1:!0})}async function le(){try{let{promise:e}=pe(Promise.allSettled(Object.values(X.value).map(e=>e.$parse())));await e}catch{}}let X=f({}),Z=f({});J();function ue(){Je(j.$immediateDirty.value,C.value,w?.value??C.value,a===``)&&(j.$dirty.value=!0)}function de(e,t){if(fe(),j.$dirty.value=!1,l.setDirtyEntry(o,!1),!t)if(e?.toOriginalState)n.value=z(T),C.value=z(T);else if(e?.toInitialState)n.value=z(C.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,C.value=z(t),n.value=z(t)}else C.value=k(n.value)&&!Pe(n.value)?z(n.value):Array.isArray(n.value)?[...n.value]:n.value;if(e?.clearExternalErrors!==!1&&(be(),Se()),!t&&!e?.keepValidationState)for(let e of Object.values(X.value))e.$reset();if(!j.$lazy.value&&!j.$silent.value&&!t)for(let e of Object.values(X.value))e.$parse();ue()}function fe(){`cancel`in R&&R.cancel()}function pe(e){return V&&V.abort(),V=H(e),V}function me(){fe(),V&&V.abort()}function he(e=!0,t=!1){j.$dirty.value||U(),t&&e?(!j.$silent.value||j.$rewardEarly.value&&j.$error.value)&&(fe(),R()):e&&(fe(),R())}async function ge(e){return e&&(n.value=e),await s(),Q()}async function Q(e){try{if(e&&(n.value=e),v)return O?(he(!1),O()):{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value};let t=n.value;if(j.$clearExternalErrorsOnValidate.value&&(be(),Se()),j.$autoDirty.value&&!j.$silent.value&&j.$dirty.value&&!j.$validating.value&&!j.$pending.value&&!W.value&&!I(X.value))return{valid:!j.$invalid.value,data:t,errors:j.$errors.value,issues:j.$issues.value};if(j.$dirty.value||(j.$dirty.value=!0),I(X.value))return{valid:!0,data:t,errors:j.$errors.value,issues:j.$issues.value};me();let{promise:r}=pe(Promise.allSettled(Object.values(X.value).map(e=>e.$parse()))),i=await r;return await s(),{valid:i.every(e=>e.status===`fulfilled`&&e.value===!0),data:t,errors:j.$errors.value,issues:j.$issues.value}}catch{return{valid:!1,data:n.value,errors:j.$errors.value,issues:j.$issues.value}}}function _e(e){try{return e&&(n.value=e),j.$dirty.value||(j.$dirty.value=!0),v?!1:(j.$clearExternalErrorsOnValidate.value&&(be(),Se()),Object.values(X.value).map(e=>e.$parseSync()).every(e=>!!e))}catch{return!1}}function ve(e=!0){return j.$dirty.value?n.value:e?{_null:!0}:null}function ye(e){p&&(p.value=e),Se()}function be(){p?.value?.length&&(p.value=[])}function xe(e){g&&(g.value=e),be()}function Se(){g?.value?.length&&(g.value=[])}!j.$lazy.value&&!j.$dirty.value&&!j.$silent.value&&le(),ue();let{$shortcuts:Ce,$validating:we,$autoDirty:Te,$rewardEarly:Ee,$clearExternalErrorsOnChange:$,$clearExternalErrorsOnValidate:De,$haveAnyAsyncRule:Oe,$debounce:ke,$lazy:Ae,...je}=j,Me=u({...je,$externalErrors:p,$externalIssues:g,$value:n,$output:n,$initialValue:C,$originalValue:T,$rules:X,...Ce,$path:a,$isDebouncing:W,$reset:de,$touch:he,$validate:ge,$validateSync:_e,$validateWithoutRaceconditions:Q,$unwatch:ae,$watch:oe,$extractDirtyFields:ve,$clearExternalErrors:be,$clearExternalIssues:Se,$abort:me,$addRules:K,addRules:ne,$schemaMode:v,"~modifiers":j.$modifiers,$setExternalErrors:ye,$setExternalIssues:xe,...We(ge)});return Object.defineProperty(Me,Symbol.for(`regle:instance`),{value:!0}),Me}function Xe({$id:t,path:n,cachePath:r,index:i,options:a,storage:o,stateValue:s,customMessages:c,rules:l,externalErrors:u,externalIssues:d,schemaErrors:p,initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x,currentIndexes:S}){let C=e(()=>h(l)),w=s.value?.$id??C.value.$key??X(),T=`${r}.${String(w)}`,E=f(i),D=`${n}.${i}`;typeof s.value==`object`&&s.value!=null&&(s.value.$id||Object.defineProperties(s.value,{$id:{value:w,enumerable:!1,configurable:!1,writable:!1}}));let O=$e({index:i,state:s,rulesDef:C,nestedReactiveRules:!0,customMessages:c,path:D,cachePath:T,storage:o,options:a,externalErrors:m(u?.value??[],i),externalIssues:m(d?.value??[],i),schemaErrors:e(()=>p?.value?.[E.value]),initialState:g,originalState:_,shortcuts:v,fieldName:y,schemaMode:b,overrides:x});return O&&(O.$id=s.value?.$id??String(w),S?.set(O.$id,E),o.addArrayStatus(t,O.$id,O)),s.value&&(!k(s.value)||Pe(s.value))&&b&&O?.$touch(),O}function Ze({state:n,rulesDef:r,customMessages:i,path:a,cachePath:o,storage:s,options:c,externalErrors:l,externalIssues:d,schemaErrors:p,schemaMode:g,initialState:_,originalState:v,shortcuts:x,fieldName:S,overrides:C}){let w=t(),T,E=t(),D,O=[];if(!Array.isArray(n.value)&&!r.value.$each)return;let k=f(),A=f(n.value),j=f({}),M,N,P=f({}),F=s.getCollectionsEntry(a),L=new Map;D=E.run(()=>({isPrimitiveArray:e(()=>n.value?.length?Array.isArray(n.value)&&n.value.length?n.value.every(e=>typeof e!=`object`):r.value.$each&&!(r.value.$each instanceof Function)?Object.values(r.value.$each).every(e=>Me(e)||typeof e==`function`):!1:!1)})),R(),V();function R(){j.value=Object.fromEntries(Object.entries(r.value).filter(([e])=>e.startsWith(`$`))),typeof n.value==`object`&&(n.value!=null&&!n.value?.$id&&n.value!==null?(k.value=X(),Object.defineProperties(n.value,{$id:{value:k.value,enumerable:!1,configurable:!1,writable:!1}})):n.value?.$id&&(k.value=n.value.$id)),A.value=P.value.$value,Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)?F.value=n.value.map((t,n)=>{let{scope:u,unwrapped:f}=ae(r.value.$each,m(()=>t),n);u&&O.push(u);let h=m(_.value??[],n),y=m(l?.value??{},`$each`),b=m(d?.value??{},`$each`),w=e(()=>p?.value?.$each);return Xe({$id:k.value,path:a,cachePath:o,customMessages:i,rules:f??{},stateValue:m(()=>t),index:n,options:c,storage:s,externalErrors:y,externalIssues:b,schemaErrors:w,initialState:h,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L})||null}).filter(e=>!!e):(F.value=[],L.clear()),P.value=Ye({state:n,rulesDef:r,customMessages:i,path:a,cachePath:a,storage:s,options:c,externalErrors:m(l?.value??{},`$self`),externalIssues:m(d?.value??{},`$self`),schemaErrors:e(()=>p?.value?.$self),$isArray:!0,initialState:_,originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C})}function ee(){if(Array.isArray(n.value)&&(!D.isPrimitiveArray.value||g)){let t=[...F.value],o=new Set;F.value=n.value.map((t,n)=>{let u=m(()=>t);if(t.$id&&F.value.find(e=>e.$id===t.$id)){let e=s.getArrayStatus(k.value,t.$id);if(e){let r=L.get(t.$id);return r&&(r.value=n),o.add(t.$id),e.$value=u,e}return null}else{let{scope:t,unwrapped:f}=ae(r.value.$each,u,n);t&&O.push(t);let h=m(l?.value??{},`$each`),y=m(d?.value??{},`$each`),b=e(()=>p?.value?.$each??[]),w=Xe({$id:k.value,path:a,cachePath:a,customMessages:i,rules:f??{},stateValue:u,index:n,options:c,storage:s,externalErrors:h,externalIssues:y,schemaErrors:b,initialState:m(_.value??[],n),originalState:v,shortcuts:x,fieldName:S,schemaMode:g,overrides:C,currentIndexes:L});return w?(w.$id&&o.add(w.$id),w):null}}).filter(e=>!!e),t.filter(e=>!n.value?.find(t=>e.$id===t.$id)).forEach((e,t)=>{s.deleteArrayStatus(k.value,t.toString())});for(let e of L.keys())o.has(e)||L.delete(e)}else F.value=[],L.clear()}function B(){M=y(n,()=>{N?.(),n.value!=null&&!Object.hasOwn(n.value,`$id`)&&!k.value?R():ee(),te()},{deep:ce?1:!0,flush:`pre`}),te()}function te(){N=y(n,()=>{T.$autoDirty.value&&!T.$silent.value&&P.value.$touch(!1,!0)},{flush:`post`})}function V(){B(),w=t(),T=w.run(()=>{let r=e({get:()=>n.value,set(e){M?.(),N?.(),n.value=e,B()}}),i=e(()=>P.value.$dirty&&(!F.value.length||F.value.every(e=>e.$dirty))),o=e(()=>P.value.$anyDirty||F.value.some(e=>e.$anyDirty)),s=e(()=>P.value.$invalid||F.value.some(e=>e.$invalid)),l=e(()=>(g?P.value.$correct:I(P.value.$rules)?!0:P.value.$correct)&&(!F.value.length||F.value.every(e=>e.$correct||e.$anyDirty&&!e.$invalid))),d=e(()=>P.value.$error||F.value.some(e=>e.$error)),p=e(()=>!(s.value||m.value)),m=e(()=>P.value.$pending||F.value.some(e=>e.$pending)),y=e(()=>!!F.value.length&&F.value.every(e=>e.$edited)),w=e(()=>P.value.$anyEdited||F.value.some(e=>e.$anyEdited)),T=e(()=>({$self:P.value.$issues,$each:F.value.map(e=>e.$issues)})),E=e(()=>({$self:P.value.$errors,$each:F.value.map(e=>e.$errors)})),D=e(()=>({$self:P.value.$silentErrors,$each:F.value.map(e=>e.$silentErrors)})),k=e(()=>j.value.$rewardEarly==null?h(c.rewardEarly)==null?!1:h(c.rewardEarly)===!0:j.value.$rewardEarly),A=e(()=>k.value?!0:j.value.$silent==null?h(c.silent)==null?!1:h(c.silent)===!0:j.value.$silent),L=e(()=>j.value.$autoDirty==null?h(c.autoDirty)==null?!0:h(c.autoDirty)===!0:j.value.$autoDirty),R=e(()=>j.value.$immediateDirty==null?h(c.immediateDirty)==null?!1:Ge(h(c.immediateDirty)):Ge(j.value.$immediateDirty)),z=e(()=>j.value.$clearExternalErrorsOnChange==null?h(c.clearExternalErrorsOnChange)==null?!0:h(c.clearExternalErrorsOnChange)===!0:j.value.$clearExternalErrorsOnChange),ee=e(()=>j.value.$clearExternalErrorsOnValidate==null?h(c.clearExternalErrorsOnValidate)==null?!1:h(c.clearExternalErrorsOnValidate)===!0:j.value.$clearExternalErrorsOnValidate),te=e(()=>{if(j.value.$isEdited!=null)return j.value.$isEdited;if(C?.isEdited!=null)return C.isEdited}),V=e(()=>S??c.id??`root`),H=e(()=>({$deepCompare:j.value.$deepCompare??!1,$debounce:j.value.$debounce??h(c.debounce)??0,$lazy:j.value.$lazy??!1,$rewardEarly:k.value,$autoDirty:L.value,$silent:A.value,$clearExternalErrorsOnChange:z.value,$clearExternalErrorsOnValidate:ee.value,$immediateDirty:R.value,$isEdited:te.value,$disabled:h(c.disabled)??!1}));function U(){x?.collections&&Object.entries(x?.collections).forEach(([e,c])=>{let h=t();W[e]=h.run(()=>{let e=f();return b(()=>{e.value=c(u({$dirty:i,$error:d,$path:a,$silentValue:r,$pending:m,$invalid:s,$correct:l,$errors:E,$silentErrors:D,$initialValue:_,$originalValue:v,$ready:p,$anyDirty:o,$name:V,$each:F,$self:P,$value:n,$output:n,$edited:y,$anyEdited:w,$issues:T}))}),e}),O.push(h)})}let W={};return U(),{$dirty:i,$anyDirty:o,$invalid:s,$correct:l,$error:d,$pending:m,$errors:E,$silentErrors:D,$ready:p,$name:V,$shortcuts:W,$silentValue:r,$edited:y,$anyEdited:w,$rewardEarly:k,$silent:A,$autoDirty:L,$issues:T,$modifiers:H}}),D.isPrimitiveArray.value&&r.value.$each&&console.warn(`${a} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`)}function H(){M?.(),P.value&&P.value.$unwatch(),F.value&&F.value.forEach(e=>{`$dirty`in e&&e.$unwatch()}),w.stop(),w=t(),E.stop(),E=t(!0),O.forEach(e=>e.stop()),O=[]}function U(e=!0,t=!1){P.value.$touch(e,t),F.value.forEach(n=>{n.$touch(e,t)})}function W(e,t){if(H(),!t)if(e?.toOriginalState)n.value=z(v),_.value=z(v);else if(e?.toInitialState)n.value=z(_.value);else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,_.value=z(t),n.value=z(t)}else _.value=z(n.value);e?.clearExternalErrors!==!1&&(J(),ie()),e?.keepValidationState||(P.value.$reset(e,t),F.value.forEach(t=>{t.$reset(e,!0)})),t||R()}function G(){P.value.$abort(),F.value.forEach(e=>{e.$abort()})}async function K(e){return e&&(n.value=e),ne()}async function ne(e){e&&(n.value=e);let t=n.value;try{return G(),{valid:(await Promise.allSettled([P.value.$validateWithoutRaceconditions(e),...F.value.map(e=>e.$validateWithoutRaceconditions())])).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:t,errors:T.$errors.value,issues:T.$issues.value}}catch{return{valid:!1,data:t,errors:T.$errors.value,issues:T.$issues.value}}}function q(e){e&&(n.value=e);try{return[P.value.$validateSync(e),...F.value.map(e=>e.$validateSync())].every(e=>!!e)}catch{return!1}}function re(e){l&&(l.value=e),ie()}function J(){P.value.$clearExternalErrors(),F.value.forEach(e=>{e.$clearExternalErrors()})}function Y(e){d&&(d.value=e),J()}function ie(){P.value.$clearExternalIssues(),F.value.forEach(e=>{e.$clearExternalIssues()})}function oe(e=!0){let t=F.value.map(t=>{if(Fe(t))return t.$extractDirtyFields(e)});return e&&t.every(e=>I(e))&&(t=[]),t}let{$shortcuts:se,...le}=T;return u({$self:P,...le,...se,$path:a,$each:F,$value:n,$output:n,$initialValue:_,$originalValue:v,$validate:K,$validateSync:q,$validateWithoutRaceconditions:ne,$unwatch:H,$watch:V,$touch:U,$reset:W,$abort:G,$extractDirtyFields:oe,$clearExternalErrors:J,$clearExternalIssues:ie,$setExternalErrors:re,$setExternalIssues:Y,"~modifiers":T.$modifiers,...We(K)})}function Qe({rulesDef:n,state:r,path:i=``,cachePath:a,rootRules:o,externalErrors:c,externalIssues:l,schemaErrors:p,rootInitialState:g,rootSchemaErrors:v,validationGroups:x,initialState:S,originalState:C,fieldName:w,nestedReactiveRules:T,...E}){let D=t(),O,A=[],j=null,M=null,N=null,P=null,F=null,L=f(void 0);async function R(t=!0){let o=Object.entries(n.value).filter(([e])=>e!==`$self`),s=Object.fromEntries(o.reduce((t,[n,o])=>{if(!o)return t;let s=m(r.value??{},n),u=m(()=>o),d=m(c?.value??{},n),f=m(l?.value??{},n),h=e(()=>p?.value?.[n]),g=m(S?.value??{},n);return t.push([n,$e({state:s,rulesDef:u,path:i?`${i}.${n}`:n,cachePath:a?`${a}.${n}`:n,externalErrors:d,externalIssues:f,schemaErrors:h,initialState:g,originalState:C?.[n],fieldName:n,...E})]),t},[])),u=Object.fromEntries(Array.from(new Set([...Object.keys(h(c)??{}),...Object.keys(h(l)??{})])).filter(e=>!(e in n.value)).map(t=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t),f=i?`${i}.${t}`:t,h=a?`${a}.${t}`:t;return[t,$e({state:n,rulesDef:e(()=>({})),path:f,cachePath:h,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:C?.[t],fieldName:t,...E})]})),d=Object.fromEntries(Object.entries(h(p)??{}).map(([t])=>{let n=i?`${i}.${t}`:t,o=a?`${a}.${t}`:t,s=m(r.value??{},t),u=m(c?.value??{},t),d=m(l?.value??{},t),f=e(()=>p?.value?.[t]),h=m(S?.value??{},t);return[t,$e({state:s,rulesDef:e(()=>({})),path:n,cachePath:o,externalErrors:u,externalIssues:d,schemaErrors:f,initialState:h,originalState:C?.[t],fieldName:t,...E})]})),f=Object.fromEntries(Object.entries(r.value??{}).filter(([e])=>!(e in n.value)&&!(e in(u??{}))&&!(e in(d??{}))).map(([t])=>{let n=m(r.value??{},t),o=m(c?.value??{},t),s=m(l?.value??{},t),u=e(()=>p?.value?.[t]),d=m(S?.value??{},t);return[t,$e({state:n,rulesDef:e(()=>({})),path:i?`${i}.${t}`:t,cachePath:a?`${a}.${t}`:t,externalErrors:o,externalIssues:s,schemaErrors:u,initialState:d,originalState:C?.[t],fieldName:t,...E})]}));B.value={...s,...u,...d,...f},t&&U()}function ee(){n.value.$self&&(L.value=Ye({state:r,rulesDef:e(()=>n.value.$self??{}),path:i,cachePath:a,externalErrors:f(void 0),externalIssues:f(void 0),schemaErrors:f(void 0),initialState:S??f(void 0),originalState:C,fieldName:`$self`,...E}))}let B=E.storage.getFieldsEntry(a);R(),ee();function te(){c&&(N=y(c,()=>{W(),R()},{deep:!0}))}function V(){l&&(P=y(l,()=>{W(),R()},{deep:!0}))}function H(){F=y(r,()=>{W(),R(),O.$autoDirty.value&&!O.$silent.value&&Y(!1,!0),O.$clearExternalErrorsOnChange.value&&(K(),q())},{flush:`post`})}function U(){(o||T)&&(j?.(),j=y(n,()=>{W(),R()},{deep:!0,flush:`pre`}),te(),V()),v&&(M?.(),M=y(()=>v.value?Object.keys(v.value).sort().join(`\0`):``,()=>{W(),R()},{flush:`post`})),H(),O=D.run(()=>{let a=e({get:()=>r.value,set(e){W(),r.value=e,R(),O.$autoDirty.value&&!O.$silent.value&&Y(!1,!0),O.$clearExternalErrorsOnChange.value&&(K(),q())}}),o=d(a),s=e({get:()=>r.value,set(e){W(),r.value=e,R()}}),c=e(()=>{let e=B.value,t=Object.keys(e);if(!t.length)return!1;for(let n of t)if(!e[n]?.$dirty)return!1;return!0}),l=e(()=>{let e=B.value;for(let t in e)if(e[t]?.$anyDirty)return!0;return!1}),p=e(()=>{if(L.value?.$invalid)return!0;let e=B.value,t=Object.entries(e);if(!t.length)return!1;for(let[e,n]of t)if(n?.$invalid)return!0;return!1}),m=e(()=>{let e=Object.entries(B.value).reduce((e,[t,n])=>((!Le(n)||!n.$inactive)&&e.push([t,n]),e),[]),t=n.value.$self&&!I(n.value.$self);if(e.length||t){let t=L.value?.$correct??!0,n=!1;return n=E.schemaMode?e.every(([e,t])=>t.$correct):e.every(([e,t])=>Le(t)?`required`in t.$rules&&t.$rules.required.$active?t.$correct:!t.$invalid&&!t.$pending&&!t.$isDebouncing:t?.$correct),t&&n}return!1}),g=e(()=>{if(L.value?.$error)return!0;let e=B.value;if(!Object.keys(e).length)return!1;for(let t in e)if(e[t]?.$error)return!0;return!1}),v=e(()=>h(E.options.rewardEarly)==null?!1:h(E.options.rewardEarly)),y=e(()=>h(E.options.silent)==null?!!v.value:h(E.options.silent)===!0),T=e(()=>h(E.options.autoDirty)==null?!0:h(E.options.autoDirty)===!0),D=e(()=>h(E.options.immediateDirty)==null?!1:Ge(h(E.options.immediateDirty))),k=e(()=>h(E.options.lazy)==null?!1:h(E.options.lazy)===!0),j=e(()=>h(E.options.clearExternalErrorsOnChange)==null?!0:h(E.options.clearExternalErrorsOnChange)===!0),M=e(()=>h(E.options.clearExternalErrorsOnValidate)==null?!1:h(E.options.clearExternalErrorsOnValidate)===!0),N=e(()=>!(p.value||F.value)),P=f(!1),F=e(()=>{if(L.value?.$pending||P.value)return!0;let e=B.value;for(let t in e)if(e[t]?.$pending)return!0;return!1}),z=e(()=>{let e={...L.value&&{$self:L.value?.$issues??[]}};for(let t in B.value)e[t]=B.value[t]?.$issues;return e}),ee=e(()=>{let e={...L.value&&{$self:L.value?.$errors??[]}};for(let t in B.value)e[t]=B.value[t]?.$errors;return e}),te=e(()=>{let e={...L.value&&{$self:L.value?.$silentErrors??[]}};for(let t in B.value)e[t]=B.value[t]?.$silentErrors;return e}),V=e(()=>{if(L.value?.$edited)return!0;if(!Object.keys(B.value).length)return!1;for(let e in B.value)if(!B.value[e]?.$edited)return!1;return!0}),H=e(()=>{if(L.value?.$anyEdited)return!0;for(let e in B.value)if(B.value[e]?.$anyEdited)return!0;return!1}),U=e(()=>w??E.options.id??`root`),G=e(()=>({autoDirty:T.value,lazy:k.value,rewardEarly:v.value,silent:y.value,clearExternalErrorsOnChange:j.value,clearExternalErrorsOnValidate:M.value,immediateDirty:D.value,id:h(E.options.id),disabled:h(E.options.disabled)}));function ne(){E.shortcuts?.nested&&Object.entries(E.shortcuts.nested).forEach(([e,n])=>{let a=t();J[e]=a.run(()=>{let e=f();return b(()=>{e.value=n(u({$dirty:c,$path:i,$value:r,$output:r,$silentValue:s,$error:g,$originalValue:C,$pending:F,$invalid:p,$correct:m,$ready:N,$anyDirty:l,$name:U,$silentErrors:te,$initialValue:S,$errors:ee,$fields:B,$edited:V,$anyEdited:H,$issues:z,$self:L,"~modifiers":_(E.options)}))}),e}),A.push(a)})}let re=e({get:()=>x?Object.fromEntries(Object.entries(x?.(B.value)??{}).map(([e,t])=>t.length?[e,{...Object.fromEntries([`$invalid`,`$error`,`$pending`,`$dirty`,`$correct`].map(e=>[e,de(t,e)])),...Object.fromEntries([`$errors`,`$silentErrors`].map(e=>[e,fe(t,e)]))}]:[])):{},set(){}}),J={};return ne(),{$dirty:c,$anyDirty:l,$invalid:p,$correct:m,$error:g,$pending:F,$issues:z,$errors:ee,$silentErrors:te,$clearExternalErrorsOnValidate:M,$clearExternalErrorsOnChange:j,$ready:N,$name:U,$shortcuts:J,$groups:re,$silentValue:s,$immediateDirty:D,$edited:V,$anyEdited:H,$localPending:P,$autoDirty:T,$silent:y,$value:a,$output:o,$modifiers:G}})}function W(){if(j?.(),N?.(),P?.(),F?.(),M?.(),A.forEach(e=>e.stop()),A=[],O={},B.value)for(let e of Object.values(B.value))e?.$unwatch()}function G(e){c&&(c.value=e),q()}function K(){c&&!I(c.value)&&(c.value={})}function ne(e){l&&(l.value=e),K()}function q(){l&&!I(l.value)&&(l.value={})}function re(){O&&O.$immediateDirty.value!==`lazy-non-empty`&&qe(O.$immediateDirty.value,S.value,g?.value??S.value)&&Y(!0,!1)}function J(e,t){if(N?.(),W(),!t)if(e?.toOriginalState)r.value=z({...C}),S.value=z({...C});else if(e?.toInitialState)r.value=z({...S.value});else if(e?.toState){let t;t=typeof e?.toState==`function`?e?.toState():e?.toState,S.value=z(t),r.value=z(t)}else S.value=z(r.value);if(!e?.keepValidationState){for(let t of Object.values(B.value))t?.$reset(e,!0);L.value?.$reset(e,!0)}e?.clearExternalErrors!==!1&&(K(),q()),te(),V(),t||(R(),re())}function Y(e=!0,t=!1){for(let n of Object.values(B.value))n?.$touch(e,t);L.value?.$touch(e,t)}function ie(e){return e.filter(([e,t])=>k(t)&&!Pe(t)?!(t&&typeof t==`object`&&`_null`in t)&&!I(t):Array.isArray(t)?t.length:!0)}function ae(e=!0){let t=Object.entries(B.value).map(([t,n])=>[t,n.$extractDirtyFields(e)]);return e&&(t=ie(t)),Object.fromEntries(t)}function oe(){for(let e of Object.values(B.value))e.$abort();L.value?.$abort()}async function se(e){return e&&(r.value=e),await s(),ce()}async function ce(e){try{if(e&&(r.value=e),E.schemaMode)return E.onValidate?(Y(!1),O.$localPending.value=!0,E.onValidate()):{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value};{let e=r.value;oe(),O.$clearExternalErrorsOnValidate.value&&(K(),q());let t=[...Object.values(B.value).map(e=>e.$validateWithoutRaceconditions()),...L.value?[L.value?.$validateWithoutRaceconditions()]:[]];return{valid:(await Promise.allSettled(t)).every(e=>e.status===`fulfilled`&&e?.value?.valid===!0),data:e,errors:O.$errors.value,issues:O.$issues.value}}}catch{return{valid:!1,data:r.value,errors:O.$errors.value,issues:O.$issues.value}}finally{O.$localPending.value=!1}}function le(e){try{return e&&(r.value=e),O.$clearExternalErrorsOnValidate.value&&(K(),q()),[...Object.values(B.value).map(e=>e.$validateSync()),...L.value?[L.value?.$validateSync()]:[]].every(e=>!!e)}catch{return!1}}re();let{$shortcuts:X,$localPending:Z,...ue}=O,pe=u({...ue,...X,$path:i,$initialValue:S,$originalValue:C,$self:L,$externalErrors:c,$externalIssues:l,$fields:B,$reset:J,$touch:Y,$validate:se,$unwatch:W,$watch:U,$setExternalErrors:G,$setExternalIssues:ne,$clearExternalErrors:K,$clearExternalIssues:q,$extractDirtyFields:ae,$abort:oe,$validateSync:le,$validateWithoutRaceconditions:ce,...o?{"~modifiers":O.$modifiers}:{},...We(se)});return Object.defineProperty(pe,Symbol.for(`regle:instance`),{value:!0}),b(()=>{for(let e of Object.keys(pe).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete pe[e];for(let e of Object.values(B.value))e?.$name&&Object.assign(pe,{[e.$name]:e})}),pe}function $e({rulesDef:e,...n}){if(Ae(e,n.state))return Ze({rulesDef:e,...n});if(ke(n.state,e)){if(ie(n.state))return Qe({rulesDef:e,...n});{let r=t().run(()=>{let e=m(n.state.value?n.state:f({}));return y(()=>n.state.value,t=>{e.value=t},{deep:!0}),y(e,e=>{n.state.value=e},{deep:!0}),{fakeState:e}}),{state:i,...a}=n;return Qe({rulesDef:e,...a,state:r.fakeState})}}else if(je(e))return Ye({rulesDef:a(e.value)?e.value:e,...n})}function et(e){return e&&k(e)&&Object.keys(e).some(e=>e.includes(`.`))?M(e):e}function tt(e){return Array.isArray(e)?e.length>0:k(e)&&Object.keys(e).length>0}function nt(e){return Array.isArray(e)?[]:{}}function rt(e){let t=f(),n=f(),r,i,a,o,s=!1;function c(){let t=nt(n.value??e.externalIssues?.value);n.value=t,e.externalIssues&&(e.externalIssues.value=t)}function l(){let n=nt(t.value??e.externalErrors?.value);t.value=n,e.externalErrors&&(e.externalErrors.value=n)}function u(n,r=!1){if(s)return;s=!0;let i=et(n);t.value=i,r&&e.externalErrors&&(e.externalErrors.value=i),tt(i)&&c(),s=!1}function d(t,r=!1){if(s)return;s=!0;let i=et(t);n.value=i,r&&e.externalIssues&&(e.externalIssues.value=i),tt(i)&&l(),s=!1}function p(){r?.(),a?.(),r=y(()=>e.externalErrors?.value,e=>u(e),{deep:!0}),a=y(()=>e.externalIssues?.value,e=>d(e),{deep:!0})}function m(){i?.(),o?.(),i=y(()=>t.value,e=>u(e,!0),{deep:!0}),o=y(()=>n.value,e=>d(e,!0),{deep:!0})}function h(){g(),u(e.externalErrors?.value),d(e.externalIssues?.value),m()}function g(){i?.(),r?.(),o?.(),a?.(),i=void 0,r=void 0,o=void 0,a=void 0}return{externalErrors:t,externalIssues:n,start:h,watchOptionRefs:p,stop:g}}function it({initialState:e,originalState:n,options:i,scopeRules:a,state:o,customRules:c,shortcuts:u,schemaErrors:d,schemaMode:p=!1,onValidate:m,overrides:g}){let _=Oe(),v=f(!1),b=new Set,x,S=f(),C=rt(i),w;function T(){w=y(()=>h(i.disabled),async e=>{e?O():(E(),C.start(),C.watchOptionRefs())})}function E(){ke(o,a)?S.value=Qe({rootRules:a,rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,validationGroups:i.validationGroups,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaErrors:d,rootSchemaErrors:d,schemaMode:p,onValidate:m,overrides:g}):je(a)&&(S.value=Ye({rulesDef:a,state:o,customMessages:c?.(),storage:_,options:i,rootInitialState:e,externalErrors:C.externalErrors,externalIssues:C.externalIssues,initialState:e,originalState:n,shortcuts:u,fieldName:void 0,path:``,cachePath:``,schemaMode:p,schemaErrors:d,onValidate:m,overrides:g}))}function D(){w=void 0}function O(){S.value?.$unwatch(),C.stop()}function k(){v.value||(v.value=!0,x=t(!0),x.run(()=>{C.start(),E(),h(i.disabled)?s().then(()=>{S.value?.$unwatch()}):C.watchOptionRefs(),T()}))}function A(){v.value&&(v.value=!1,O(),w?.(),D(),x?.stop(),x=void 0,S.value=void 0,_.clearAll())}function j(){let e=r();!e||b.has(e)||(v.value||k(),b.add(e),l(()=>{b.delete(e),b.size||A()}))}k(),j();function M(){typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!ge()&&S.value&&De(S.value,{name:h(i.id)})}return M(),{regle:S,bindToCurrentScope:j}}function at({state:t,rulesFactory:n,options:r,globalOptions:o,customRules:s,shortcuts:c,overrides:l}){let u=a(n)?n:typeof n==`function`?void 0:e(()=>n),d=i(me,void 0)??{},m={...d.modifiers,...o},h=()=>({...d.rules?.(),...s?.()}),_={...d.shortcuts,...c},v={...d.overrides,...l},y={...m,...r},x,S=p(u??{});typeof n==`function`&&(x=b(()=>{S.value=n(t),g(S)}));let C=f(k(t.value)?{...z(t.value)}:z(t.value)),w=k(t.value)?{...z(t.value)}:z(t.value);Z(()=>{x?.()});let{regle:T,bindToCurrentScope:E}=it({scopeRules:S,state:t,options:y,initialState:C,originalState:w,customRules:h,shortcuts:_,overrides:v});return{regle:T,bindToCurrentScope:E}}function ot(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s,c){let l=a(t)?t:f(t),u=e(()=>h(c?.disabled)??!1),{regle:d,bindToCurrentScope:p}=at({state:l,rulesFactory:s,options:c,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return{r$:U(d,u,()=>{d.value||p()})}}return s}const st=ot();function ct(){function e(e,t){return t}return e}const lt=ct();function ut(e,t){return A(h(e).$errors,String(t))}function dt(e,t){return A(h(e).$issues,String(t))}function ft(e){let t={};if(Object.entries(e).some(([e,t])=>Me(t)||typeof t==`function`))return null;for(let n in e){let r=e[n];r&&k(r)&&`$each`in r&&r.$each&&k(r.$each)?t[n]=[ft(r.$each)]:k(r)&&!I(r)&&!Object.entries(r).some(([e,t])=>Me(t)||typeof t==`function`)?t[n]=ft(r):t[n]=null}return t}function pt(t){let{rules:n,modifiers:r={},shortcuts:i,overrides:o}=t??{};function s(t,s){let c=a(t)?t:typeof t==`function`?void 0:e(()=>t),l=f(ft(c?.value)),u=e(()=>h(s?.disabled)??!1),{regle:d,bindToCurrentScope:p}=at({state:l,rulesFactory:c,options:s,globalOptions:r,customRules:n,shortcuts:i,overrides:o});return U(d,u,()=>{d.value||p()})}return s}const mt=pt();function ht(e){if(F(e)){let t=e,n=class extends t{constructor(...e){return super(...e),gt(this)}};return Object.defineProperty(n,"name",{value:t.name}),gt(n)}return gt(e)}function gt(e){return!N(e,he.REGLE_STATIC)&&Object.isExtensible(e)&&P(e,he.REGLE_STATIC,!0),e}function _t({rules:e,modifiers:t,shortcuts:n,overrides:r}){let i=ot({rules:e,modifiers:t,shortcuts:n,overrides:r}),a=pt({rules:e,modifiers:t,shortcuts:n,overrides:r});return i.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},a.__config={rules:e,modifiers:t,shortcuts:n,overrides:r},{useRegle:i,inferRules:ct(),useRules:a}}function vt(e,{rules:t,modifiers:n,shortcuts:r,overrides:i}){let a=e.__config??{},o=()=>({...a.rules?.(),...t?.()}),s=a.modifiers&&n?j(a.modifiers,n):a.modifiers??n,c=a.shortcuts&&r?j(a.shortcuts,r):a.shortcuts??r,l=a.overrides&&i?j(a.overrides,i):a.overrides??i,u=ot({rules:o,modifiers:s,shortcuts:c,overrides:l});return u.__config={rules:o,modifiers:s,shortcuts:c,overrides:l},{useRegle:u,inferRules:ct()}}function yt(e){return e}function bt(t,n){let r=n??!1,i=e({get:()=>r?Object.values(t).map(e=>e.$value):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$value])),set:e=>{r||typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$value=n)}}),a=e({get:()=>Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentValue])),set:e=>{typeof e==`object`&&Object.entries(e).forEach(([e,n])=>t[e].$silentValue=n)}}),o=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$dirty)}),s=e(()=>Object.entries(t).some(([e,t])=>t?.$anyDirty)),c=e(()=>Object.entries(t).some(([e,t])=>t?.$invalid)),l=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$correct||t.$anyDirty&&!t.$invalid)}),d=e(()=>Object.entries(t).some(([e,t])=>t?.$error)),f=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$ready)}),p=e(()=>Object.entries(t).some(([e,t])=>t?.$pending)),m=e(()=>r?Object.entries(t).map(([e,t])=>t.$issues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$issues]))),h=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentIssues):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentIssues]))),g=e(()=>r?Object.entries(t).map(([e,t])=>t.$errors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$errors]))),_=e(()=>r?Object.entries(t).map(([e,t])=>t.$silentErrors):Object.fromEntries(Object.entries(t).map(([e,t])=>[e,t.$silentErrors]))),v=e(()=>{let e=Object.entries(t);return!!e.length&&e.every(([e,t])=>t?.$edited)}),y=e(()=>Object.entries(t).some(([e,t])=>t?.$anyEdited)),x=e(()=>r?Object.values(t):t);function S(e){Object.values(t).forEach(t=>{t.$reset(e)})}function C(){Object.values(t).forEach(e=>{e.$touch()})}function w(e=!0){return Object.values(t).map(t=>t.$extractDirtyFields(e))}function T(e){Object.values(t).forEach(t=>{t.$setExternalErrors(e)})}function E(e){Object.values(t).forEach(t=>{t.$setExternalIssues(e)})}function D(){Object.values(t).forEach(e=>{e.$clearExternalErrors()})}function O(){Object.values(t).forEach(e=>{e.$clearExternalIssues()})}function k(e){try{return e&&(i.value=e),Object.values(t).every(t=>t.$validateSync(e))}catch{return!1}}async function A(e){try{e&&(i.value=e);let n=i.value;return{valid:(await Promise.allSettled(Object.values(t).map(e=>e.$validate()))).every(e=>e.status===`fulfilled`?e.value.valid===!0:!1),data:n,errors:g.value,issues:m.value}}catch{return{valid:!1,data:i.value,errors:g.value,issues:m.value}}}let j=u({...!r&&{$silentValue:a},$errors:g,$issues:m,$silentIssues:h,$silentErrors:_,$instances:x,$value:i,$output:i,$dirty:o,$anyDirty:s,$invalid:c,$correct:l,$error:d,$pending:p,$ready:f,$edited:v,$anyEdited:y,$reset:S,$touch:C,$validate:A,$validateSync:k,$extractDirtyFields:w,$clearExternalErrors:D,$clearExternalIssues:O,$setExternalErrors:T,$setExternalIssues:E});return b(()=>{if(!r){for(let e of Object.keys(j).filter(e=>!e.startsWith(`$`)&&!e.startsWith(`~`)))delete j[e];for(let[e,t]of Object.entries(x.value))Object.assign(j,{[e]:t})}}),j}function xt(t,n){function r(r){let i=e(()=>h(r)),a=u({});c();let o=f(l(t.value)),s=u({r$:o});function c(){i.value&&(typeof i.value==`string`&&!t.value[i.value]?t.value[i.value]={}:Array.isArray(i.value)&&i.value.forEach(e=>{t.value[e]||(t.value[e]={})}))}y(i,c),y(t,e=>{o.value=l(e)},{deep:!0});function l(e){return i.value?typeof i.value==`string`?bt(e[i.value]??{},!n.asRecord):(Object.keys(a).forEach(e=>{delete a[e]}),i.value.forEach(t=>{Object.entries(e[t]).forEach(([e,t])=>{Object.assign(a,{[e]:t})})}),bt(a,!n.asRecord)):bt(e[`~~global`]??{},!n.asRecord)}return{r$:s.r$}}return{useCollectScope:r}}function St(t,r){let i=r??st;return{useScopedRegle:((r,a,o)=>{let{namespace:s,scopeKey:l,id:u,...d}=o??{};i.__config??={};let p=e(()=>u??l),m=e(()=>h(s)),g=f(`${Object.keys(t.value).length+1}-${X()}`),_=e(()=>p.value??`instance-${g.value}`),{r$:v}=i(r,a,{...d,id:p.value});x(),Z(b),y(m,(e,t)=>{b(t),x()}),n()&&c(()=>{let e=n();typeof window<`u`&&e?.proxy?.$el?.parentElement&&document.documentElement&&!document.documentElement.contains(e?.proxy?.$el?.parentElement)&&b()});function b(e){let n=e??m.value;n?t.value[n]&&delete t.value[n][_.value]:t.value[`~~global`][_.value]&&delete t.value[`~~global`][_.value]}function x(){m.value?(t.value[m.value]||(t.value[m.value]={}),t.value[m.value][_.value]=v):(t.value[`~~global`]||(t.value[`~~global`]={}),t.value[`~~global`][_.value]=v)}return{r$:v,dispose:b,register:x}})}}function Ct(e){let t=(e?.customStore?()=>(e.customStore&&(e.customStore?.value[`~~global`]?e.customStore?.value&&(e.customStore.value={"~~global":{}}):e.customStore.value[`~~global`]={}),e.customStore):ue(()=>f({"~~global":{}})))(),{useScopedRegle:n}=St(t,e?.customUseRegle),{useCollectScope:r}=xt(t,{asRecord:e?.asRecord});return{useScopedRegle:n,useCollectScope:r}}const{useCollectScope:wt,useScopedRegle:Tt}=Ct(),Et=wt,Dt=Tt;function Ot(t,n,r){let i=e(()=>h(t)[n]);return e(()=>r.find(e=>{if(e[n]&&`literal`in e[n]){let t=e[n].literal;if(Me(t))return h(t._params?.[0])===i.value}})||r.find(e=>k(e[n])&&!Object.keys(e[n]).some(e=>e===`literal`))||{})}function kt(e,t,n){return!!e&&t in e&&k(e[t])&&`$value`in e[t]&&e[t]?.$value===n}function At(e,t,n,r){let i=a(e)?m(e.value,`$fields`):m(e,`$fields`),o=f();return y(i,async()=>{await s(),kt(i.value,t,n)?o.value=m(e).value:o.value=void 0},{immediate:!0,flush:`pre`}),o}function jt(e){return e}function Mt(e,t){return n=>j({...e},t(n))}var Nt=`1.28.0-beta.1`;function Pt(e){return typeof e==`function`}function Ft(e,t){return t.filter(t=>t in e&&!Pt(e[t])).map(t=>{let n=!1;return t===`$value`&&(n=!0),{key:t,value:e[t],editable:n}})}function It(e,t){return Object.entries(e).filter(([n])=>!t.includes(n)&&n.startsWith(`$`)&&!Pt(e[n])).map(([e,t])=>({key:e,value:t,editable:!1})).sort((e,t)=>e.key.localeCompare(t.key))}function Lt(e){if(!e.includes(`:field:`))return null;let[t,,n]=e.split(`:`);return{instanceId:t,fieldName:n}}function Rt(e,t){return`${e}:field:${t}`}function zt(e){if(!e.includes(`:rule:`))return null;let t=e.split(`:rule:`);if(t.length!==2)return null;let n=t[0],r=t[1],i=Lt(n);return i?{...i,ruleName:r}:null}function Bt(e,t,n){return`${Rt(e,t)}:rule:${n}`}function Vt(e){let t={},n=Ft(e,be.FIELD);n.length>0&&(t.State=n);let r=It(e,[...be.FIELD,`$rules`,`$fields`,`$modifiers`,`$deepCompare`,`$clearExternalErrorsOnValidate`,`$silent`,`$isArrayOrRegleStatic`,`$schemaMode`,`$immediateDirty`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Ht(e){let t={},n=[`$type`,`$valid`,`$active`,`$pending`,`$message`,`$tooltip`],r=Ft(e,n);r.length>0&&(t[`Rule State`]=r),e.$params&&Array.isArray(e.$params)&&e.$params.length>0&&(t.Parameters=[{key:`$params`,value:e.$params,editable:!1}]),e.$metadata!==void 0&&e.$metadata!==!0&&e.$metadata!==!1&&(t.Metadata=[{key:`$metadata`,value:e.$metadata,objectType:`reactive`,editable:!1}]);let i=It(e,[...n,`$params`,`$metadata`,`$haveAsync`,`$validating`,`$fieldDirty`,`$fieldInvalid`,`$fieldPending`,`$fieldCorrect`,`$fieldError`,`$maybePending`]);return i.length>0&&(t[`Other Properties`]=i),t}function Ut(e){let t={},n=Ft(e,be.ROOT);n.length>0&&(t.State=n);let r=It(e,[...be.ROOT,`$fields`,`$modifiers`,`$path`,`$clearExternalErrorsOnValidate`,`$silent`]);return r.length>0&&(t[`Other Properties`]=r),e[`~modifiers`]&&(t.Modifiers=Object.entries(e[`~modifiers`]).map(([e,t])=>({key:e,value:t,editable:!1}))),t}function Wt(e,t){if(!e||!t)return null;let n=t.match(/[^.[\]]+/g);if(!n)return null;let r=e;for(let e of n){if(!r)return null;let t=parseInt(e);if(!isNaN(t))if(Ie(r)&&Array.isArray(r.$each))r=r.$each[t];else return null;else if(Ie(r)&&r.$self&&r.$self)r=r.$self;else if(Fe(r)&&r.$fields&&r.$fields[e])r=r.$fields[e];else if(r[e])r=r[e];else return null}return r}function Gt(e,t){let n=zt(e);if(n){let{instanceId:e,fieldName:r,ruleName:i}=n,a=t(e);if(!a||!a.r$.$fields)return null;let o=Wt(a.r$.$fields,r);if(!o||!(`$rules`in o))return null;let s=o.$rules[i];return s?Ht(s):null}let r=Lt(e);if(r){let{instanceId:e,fieldName:n}=r,i=t(e);if(!i||!i.r$.$fields)return null;let a=Wt(i.r$.$fields,n);return a?Vt(a):null}let i=t(e);return i?Ut(i.r$):null}function Kt(e){if(e.includes(`:rule:`))return;let t=Lt(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Wt(r.r$.$fields,n);e&&typeof e.$validate==`function`&&e.$validate()}}else{let t=$.get(e);t&&typeof t.r$.$validate==`function`&&t.r$.$validate()}$.notifyDevtools()}function qt(e,t=!1){let n=Lt(e);if(n){let{instanceId:e,fieldName:r}=n,i=$.get(e);if(i&&i.r$.$fields){let e=Wt(i.r$.$fields,r);e&&typeof e.$reset==`function`&&e.$reset({toOriginalState:t})}}else{let n=$.get(e);n&&typeof n.r$.$reset==`function`&&n.r$.$reset({toOriginalState:t})}$.notifyDevtools()}function Jt(e){if(e.includes(`:rule:`))return;let t=Lt(e);if(t){let{instanceId:e,fieldName:n}=t,r=$.get(e);if(r&&r.r$.$fields){let e=Wt(r.r$.$fields,n);e&&typeof e.$touch==`function`&&e.$touch()}}else{let t=$.get(e);t&&typeof t.r$.$touch==`function`&&t.r$.$touch()}$.notifyDevtools()}function Yt(e){let{nodeId:t,path:n,state:r}=e;if(!n.includes(`$value`)||!Lt(t))return;let[i,a,o]=t?.split(`:`)??[],s=$.get(i);if(s&&s.r$.$fields){let e=Wt(s.r$.$fields,o);e&&`$value`in e&&(e.$value=r.value,$.notifyDevtools())}}function Xt(e,t){let n=[],r=!1;Le(e)?r=e[`~modifiers`]?.$disabled??!1:Fe(e)?r=e[`~modifiers`]?.disabled??!1:Ie(e)&&(r=e[`~modifiers`]?.$disabled??!1);let i=Le(e)?(`required`in e.$rules&&!e.$rules.required.$active||I(e.$rules))&&!e.$schemaMode:!1,a=Fe(e)||Ie(e);return e.$error?n.push({label:`error`,textColor:Q.ERROR.text,backgroundColor:Q.ERROR.bg,tooltip:a?ve.ERROR:_e.ERROR}):e.$correct&&n.push({label:`correct`,textColor:Q.CORRECT.text,backgroundColor:Q.CORRECT.bg,tooltip:a?ve.CORRECT:_e.CORRECT}),e.$pending&&n.push({label:`pending`,textColor:Q.PENDING.text,backgroundColor:Q.PENDING.bg,tooltip:a?ve.PENDING:_e.PENDING}),r&&n.push({label:`disabled`,textColor:Q.DISABLED.text,backgroundColor:Q.DISABLED.bg,tooltip:_e.DISABLED}),i&&(n.push({label:`optional`,textColor:Q.OPTIONAL.text,backgroundColor:Q.OPTIONAL.bg,tooltip:_e.OPTIONAL}),!e.$invalid&&e.$dirty&&n.push({label:`valid`,textColor:Q.VALID.text,backgroundColor:Q.VALID.bg,tooltip:_e.VALID})),e.$dirty?n.push({label:`dirty`,textColor:Q.DIRTY.text,backgroundColor:Q.DIRTY.bg,tooltip:a?ve.DIRTY:_e.DIRTY}):i||n.push({label:`pristine`,textColor:Q.PRISTINE.text,backgroundColor:Q.PRISTINE.bg,tooltip:_e.PRISTINE}),t&&n.push({label:`<${t}.vue>`,textColor:Q.COMPONENT.text,backgroundColor:Q.COMPONENT.bg}),n}function Zt(e){let t=[];return e.$active?e.$valid?e.$valid&&t.push({label:`valid`,textColor:Q.VALID.text,backgroundColor:Q.VALID.bg,tooltip:ye.VALID}):t.push({label:`invalid`,textColor:Q.INVALID.text,backgroundColor:Q.INVALID.bg,tooltip:ye.INVALID}):t.push({label:`inactive`,textColor:Q.INACTIVE.text,backgroundColor:Q.INACTIVE.bg,tooltip:ye.INACTIVE}),e.$pending&&t.push({label:`pending`,textColor:Q.PENDING.text,backgroundColor:Q.PENDING.bg,tooltip:ye.PENDING}),t}function Qt(e,t,n){let r=[];return!e.$rules||typeof e.$rules!=`object`||Object.entries(e.$rules).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=Zt(i);r.push({id:Bt(t,n,e),label:`⚙️ ${e}`,tags:a,children:[]})}}),r}function $t(e,t,n){let r=[];if(!e.$each||!Array.isArray(e.$each))return r;if(e.$each.forEach((e,i)=>{if(e&&typeof e==`object`){let a=Xt(e),o=`${n}[${i}]`,s=[];Fe(e)?s=en(e.$fields,t,o):Le(e)&&(s=Qt(e,t,o)),r.push({id:Rt(t,o),label:`[${i}]`,tags:a,children:s})}}),e.$self&&typeof e.$self==`object`){let i=Xt(e.$self),a=`${n}[$self]`;r.unshift({id:Rt(t,a),label:`$self`,tags:i,children:Qt(e.$self,t,a)})}return r}function en(e,t,n){let r=[];return Object.entries(e).forEach(([e,i])=>{if(i&&typeof i==`object`){let a=n?`${n}.${e}`:e,o=Xt(i),s=!1,c=!1,l=[];Ie(i)?(l=$t(i,t,a),s=!0,l.length===0&&(c=!0)):Fe(i)?l=en({...i.$fields,...i.$self&&{$self:i.$self}},t,a):Le(i)&&(l=Qt(i,t,a));let u=l.filter(e=>e.label!==`$self`);r.push({id:Rt(t,a),label:`${s?`${e}[${u.length}]`:e}${c?` (empty)`:``}`,tags:o,children:l})}}),r}function tn(e,t){let n=[];return Le(e)?Qt(e,t,`root`):(!(`$fields`in e)||typeof e.$fields!=`object`||Object.entries(e.$fields).forEach(([e,r])=>{if(r&&typeof r==`object`){let i=Xt(r),a=[],o=!1;Ie(r)?(a=$t(r,t,e),o=!0):Fe(r)?a=en({...r.$fields,...r.$self&&{$self:r.$self}},t,e):Le(r)&&(a=Qt(r,t,e));let s=a.filter(e=>e.label!==`$self`);n.push({id:Rt(t,e),label:`${o?`${e}[${s.length}]`:e}`,tags:i,children:a})}}),n)}function nn(e,t){let n=e.map(e=>{let{r$:t,id:n,name:r,componentName:i}=e;return{id:n,label:r,tags:Xt(t,i),children:tn(t,n)}});return!t||t.trim()===``?n:rn(n,t)}function rn(e,t){let n=t.toLowerCase(),r=[];for(let i of e){let e=i.label.toLowerCase().includes(n),a=i.tags?.some(e=>e.label.toLowerCase().includes(n))??!1,o=i.children?rn(i.children,t):[];(e||a||o.length>0)&&r.push({...i,children:o.length>0?o:i.children})}return r}function an(e){D({id:`regle-devtools`,label:`Regle`,logo:`https://reglejs.dev/logo_main.png`,packageName:`@regle/core`,homepage:`https://reglejs.dev`,componentStateTypes:[`Regles`],app:e},t=>{$.setApi(t,e),t.on.getInspectorTree(async e=>{if(e.inspectorId===xe.INSPECTOR){let t=nn($.getAll(),e.filter);t.length>0?e.rootNodes=t:e.rootNodes=[{id:`empty-regles`,label:`No Regles instances found`,children:[]}]}}),t.on.getInspectorState(e=>{if(e.inspectorId===xe.INSPECTOR){let n=Gt(e.nodeId,e=>$.get(e));n||t.sendInspectorTree(xe.INSPECTOR),n?e.state=n:e.state={}}}),t.on.editInspectorState(e=>{e.inspectorId===xe.INSPECTOR&&Yt(e)}),t.addInspector({id:xe.INSPECTOR,label:`Regle`,noSelectionText:`No instance selected`,icon:`rule`,treeFilterPlaceholder:`Filter state`,stateFilterPlaceholder:`Filter validation status`,actions:[{icon:`confirmation_number`,tooltip:`Log Regle version`,action:()=>{console.info(`Regle version`,Nt)}}],nodeActions:[{icon:`check`,tooltip:`Validate`,action:e=>{Kt(e)}},{icon:`touch_app`,action:e=>{Jt(e)},tooltip:`Touch the instance with $touch`},{icon:`refresh`,tooltip:`Reset validation state`,action:e=>{qt(e)}},{icon:`restore`,tooltip:`Restore to original state`,action:e=>{qt(e,!0)}}]}),E(()=>{$.notifyDevtools()}),$.notifyDevtools()})}const on={install(e,t){e.provide(pe,Nt),t&&e.provide(me,t),typeof window<`u`&&typeof __VUE_PROD_DEVTOOLS__<`u`&&__VUE_PROD_DEVTOOLS__&&!ge()&&an(e)}};export{W as InternalRuleType,on as RegleVuePlugin,re as createRule,Ct as createScopedUseRegle,Ot as createVariant,_t as defineRegleConfig,yt as defineRegleOptions,jt as defineRules,vt as extendRegleConfig,Ve as flatErrors,ut as getErrors,dt as getIssues,lt as inferRules,Y as isRegleInstance,ht as markStatic,bt as mergeRegles,kt as narrowVariant,Mt as refineRules,G as unwrapRuleParameters,Et as useCollectScope,st as useRegle,it as useRootStorage,mt as useRules,Dt as useScopedRegle,At as variantToRef};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "1.27.2",
3
+ "version": "1.28.0-beta.1",
4
4
  "description": "Headless form validation library for Vue",
5
5
  "keywords": [
6
6
  "regle",
@@ -50,19 +50,19 @@
50
50
  "dependencies": {
51
51
  "@standard-schema/spec": "1.1.0",
52
52
  "@vue/devtools-api": "7.7.9",
53
+ "@vue/devtools-kit": "7.7.9",
53
54
  "type-fest": "5.7.0"
54
55
  },
55
56
  "devDependencies": {
56
57
  "@total-typescript/ts-reset": "0.6.1",
57
- "@types/node": "24.12.4",
58
- "@typescript/native-preview": "7.0.0-dev.20260603.1",
59
- "@vue/devtools-kit": "7.7.9",
60
- "@vue/test-utils": "2.4.10",
61
- "tsdown": "0.22.1",
58
+ "@types/node": "24.13.2",
59
+ "@typescript/native-preview": "7.0.0-dev.20260616.1",
60
+ "@vue/test-utils": "2.4.11",
61
+ "tsdown": "0.22.2",
62
62
  "typescript": "6.0.3",
63
63
  "vitest": "4.1.8",
64
64
  "vue": "3.5.35",
65
- "vue-tsc": "3.3.3"
65
+ "vue-tsc": "3.3.5"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "pinia": ">=2.2.5",