@lehnihon/bit-form 2.2.1 → 2.2.2

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.
Files changed (105) hide show
  1. package/dist/angular/index.cjs +1 -1
  2. package/dist/angular/index.cjs.map +1 -1
  3. package/dist/angular/index.d.cts +31 -38
  4. package/dist/angular/index.d.ts +31 -38
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/bus-B1my-s_o.d.ts +16 -0
  8. package/dist/bus-BI29cKpD.d.cts +16 -0
  9. package/dist/chunk-2UVV7SU4.js +2 -0
  10. package/dist/chunk-2UVV7SU4.js.map +1 -0
  11. package/dist/chunk-676WXU4S.cjs +2 -0
  12. package/dist/chunk-676WXU4S.cjs.map +1 -0
  13. package/dist/chunk-7MBRAKBL.js +2 -0
  14. package/dist/chunk-7MBRAKBL.js.map +1 -0
  15. package/dist/chunk-AD7T42HJ.js +1 -0
  16. package/dist/chunk-AD7T42HJ.js.map +1 -0
  17. package/dist/chunk-C4BYXZGB.cjs +1 -0
  18. package/dist/chunk-C4BYXZGB.cjs.map +1 -0
  19. package/dist/chunk-ER2DNS7T.cjs +2 -0
  20. package/dist/chunk-ER2DNS7T.cjs.map +1 -0
  21. package/dist/chunk-NWPA4F3B.cjs +2 -0
  22. package/dist/chunk-NWPA4F3B.cjs.map +1 -0
  23. package/dist/chunk-O5RRLZR7.js +2 -0
  24. package/dist/chunk-O5RRLZR7.js.map +1 -0
  25. package/dist/chunk-TRPMTJ35.js +2 -0
  26. package/dist/chunk-TRPMTJ35.js.map +1 -0
  27. package/dist/chunk-VSWCUQAF.cjs +2 -0
  28. package/dist/chunk-VSWCUQAF.cjs.map +1 -0
  29. package/dist/cli/index.cjs +3 -3
  30. package/dist/core/light.cjs +2 -0
  31. package/dist/core/light.cjs.map +1 -0
  32. package/dist/core/light.d.cts +29 -0
  33. package/dist/core/light.d.ts +29 -0
  34. package/dist/core/light.js +2 -0
  35. package/dist/core/light.js.map +1 -0
  36. package/dist/devtools/bridge.cjs +1 -1
  37. package/dist/devtools/bridge.cjs.map +1 -1
  38. package/dist/devtools/bridge.js +1 -1
  39. package/dist/devtools/bridge.js.map +1 -1
  40. package/dist/devtools/index.cjs +132 -1
  41. package/dist/devtools/index.cjs.map +1 -1
  42. package/dist/devtools/index.js +132 -1
  43. package/dist/devtools/index.js.map +1 -1
  44. package/dist/index.cjs +1 -1
  45. package/dist/index.cjs.map +1 -1
  46. package/dist/index.d.cts +19 -53
  47. package/dist/index.d.ts +19 -53
  48. package/dist/index.js +1 -1
  49. package/dist/{public-types-Lq3eLstW.d.ts → public-types-Bl94ECPb.d.ts} +11 -19
  50. package/dist/{public-types-CtYuIAMP.d.cts → public-types-CLIDR8aC.d.cts} +11 -19
  51. package/dist/react/index.cjs +1 -1
  52. package/dist/react/index.cjs.map +1 -1
  53. package/dist/react/index.d.cts +6 -5
  54. package/dist/react/index.d.ts +6 -5
  55. package/dist/react/index.js +1 -1
  56. package/dist/react/index.js.map +1 -1
  57. package/dist/react-native/index.cjs +1 -1
  58. package/dist/react-native/index.cjs.map +1 -1
  59. package/dist/react-native/index.d.cts +5 -4
  60. package/dist/react-native/index.d.ts +5 -4
  61. package/dist/react-native/index.js +1 -1
  62. package/dist/react-native/index.js.map +1 -1
  63. package/dist/resolvers/joi.cjs +1 -1
  64. package/dist/resolvers/joi.cjs.map +1 -1
  65. package/dist/resolvers/joi.d.cts +4 -4
  66. package/dist/resolvers/joi.d.ts +4 -4
  67. package/dist/resolvers/joi.js +1 -1
  68. package/dist/resolvers/joi.js.map +1 -1
  69. package/dist/resolvers/types.cjs +1 -0
  70. package/dist/resolvers/types.cjs.map +1 -0
  71. package/dist/resolvers/types.d.cts +16 -0
  72. package/dist/resolvers/types.d.ts +16 -0
  73. package/dist/resolvers/types.js +1 -0
  74. package/dist/resolvers/types.js.map +1 -0
  75. package/dist/resolvers/yup.cjs +1 -1
  76. package/dist/resolvers/yup.cjs.map +1 -1
  77. package/dist/resolvers/yup.d.cts +4 -4
  78. package/dist/resolvers/yup.d.ts +4 -4
  79. package/dist/resolvers/yup.js +1 -1
  80. package/dist/resolvers/yup.js.map +1 -1
  81. package/dist/resolvers/zod.cjs +1 -1
  82. package/dist/resolvers/zod.cjs.map +1 -1
  83. package/dist/resolvers/zod.d.cts +4 -4
  84. package/dist/resolvers/zod.d.ts +4 -4
  85. package/dist/resolvers/zod.js +1 -1
  86. package/dist/resolvers/zod.js.map +1 -1
  87. package/dist/{bus-B3pGaiFZ.d.cts → types-DqeN9Kq_.d.cts} +6 -16
  88. package/dist/{bus-B3pGaiFZ.d.ts → types-DqeN9Kq_.d.ts} +6 -16
  89. package/dist/{use-bit-persist-hxJaKG2S.d.ts → use-bit-persist-BgFBg8lQ.d.cts} +37 -43
  90. package/dist/{use-bit-persist-CWzGfovL.d.cts → use-bit-persist-JtinX6Vy.d.ts} +37 -43
  91. package/dist/vue/index.cjs +1 -1
  92. package/dist/vue/index.cjs.map +1 -1
  93. package/dist/vue/index.d.cts +31 -38
  94. package/dist/vue/index.d.ts +31 -38
  95. package/dist/vue/index.js +1 -1
  96. package/dist/vue/index.js.map +1 -1
  97. package/package.json +7 -1
  98. package/dist/chunk-442A4FTZ.cjs +0 -2
  99. package/dist/chunk-442A4FTZ.cjs.map +0 -1
  100. package/dist/chunk-6FJEE6O3.js +0 -133
  101. package/dist/chunk-6FJEE6O3.js.map +0 -1
  102. package/dist/chunk-FOV24ACZ.js +0 -2
  103. package/dist/chunk-FOV24ACZ.js.map +0 -1
  104. package/dist/chunk-YWXX6XRV.cjs +0 -133
  105. package/dist/chunk-YWXX6XRV.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/resolvers/zod.ts"],"names":["zodResolver","schema","values","options","err","errors","issue","path","scopeSet","filtered","key","msg"],"mappings":"AAGO,ilBAAMA,CAAAA,CAAiCC,CAAAA,EACrC,KAAA,CACLC,CAAAA,CACAC,CAAAA,CAAAA,EAC0B,CAC1B,GAAI,CACF,OAAA,MAAMF,CAAAA,CAAO,UAAA,CAAWC,CAAM,CAAA,CACvB,CAAC,CACV,CAAA,KAAA,CAASE,CAAAA,CAAU,CACjB,IAAMC,CAAAA,CAAuB,CAAC,CAAA,CAW9B,EAAA,CATID,CAAAA,CAAI,MAAA,EACNA,CAAAA,CAAI,MAAA,CAAO,OAAA,CAASE,CAAAA,EAAe,CACjC,IAAMC,CAAAA,CAAOD,CAAAA,CAAM,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,CAC5BC,CAAAA,EAAQ,CAACF,CAAAA,CAAOE,CAAI,CAAA,EAAA,CACtBF,CAAAA,CAAOE,CAAI,CAAA,CAAID,CAAAA,CAAM,OAAA,CAEzB,CAAC,CAAA,iBAGCH,CAAAA,2BAAS,aAAA,EAAeA,CAAAA,CAAQ,WAAA,CAAY,MAAA,CAAS,CAAA,CAAG,CAC1D,IAAMK,CAAAA,CAAW,IAAI,GAAA,CAAIL,CAAAA,CAAQ,WAAW,CAAA,CACtCM,CAAAA,CAAyB,CAAC,CAAA,CAChC,GAAA,CAAA,GAAW,CAACC,CAAAA,CAAKC,CAAG,CAAA,GAAK,MAAA,CAAO,OAAA,CAAQN,CAAM,CAAA,CACxCG,CAAAA,CAAS,GAAA,CAAIE,CAAG,CAAA,EAAKC,CAAAA,EAAAA,CAAKF,CAAAA,CAASC,CAAyB,CAAA,CAAIC,CAAAA,CAAAA,CAEtE,OAAOF,CACT,CAEA,OAAOJ,CACT,CACF,CAAA,CAAA,wBAAA","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/zod.cjs","sourcesContent":["import { ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\n\nexport const zodResolver = <T extends object>(schema: ZodSchema<T>) => {\n return async (\n values: T,\n options?: { scopeFields?: string[] },\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (err: any) {\n const errors: BitErrors<T> = {};\n\n if (err.issues) {\n err.issues.forEach((issue: any) => {\n const path = issue.path.join(\".\");\n if (path && !errors[path]) {\n errors[path] = issue.message;\n }\n });\n }\n\n if (options?.scopeFields && options.scopeFields.length > 0) {\n const scopeSet = new Set(options.scopeFields);\n const filtered: BitErrors<T> = {};\n for (const [key, msg] of Object.entries(errors)) {\n if (scopeSet.has(key) && msg) filtered[key as keyof BitErrors<T>] = msg;\n }\n return filtered;\n }\n\n return errors;\n }\n };\n};\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/resolvers/zod.cjs","../../src/resolvers/zod.ts"],"names":["zodResolver","schema","_config","values","options","error","errors","ZodError","issue","path","setFirstError","filterErrorsByScope"],"mappings":"AAAA,soBAAgD,0BCAZ,IAKvBA,CAAAA,CAAc,CACzBC,CAAAA,CACAC,CAAAA,CAAAA,EAEO,KAAA,CACLC,CAAAA,CACAC,CAAAA,CAAAA,EAC0B,CAC1B,GAAI,CACF,OAAA,MAAMH,CAAAA,CAAO,UAAA,CAAWE,CAAM,CAAA,CACvB,CAAC,CACV,CAAA,KAAA,CAASE,CAAAA,CAAgB,CACvB,IAAMC,CAAAA,CAAuB,CAAC,CAAA,CAE9B,EAAA,CAAID,EAAAA,WAAiBE,aAAAA,CACnB,GAAA,CAAA,IAAWC,EAAAA,GAASH,CAAAA,CAAM,MAAA,CAAQ,CAChC,IAAMI,CAAAA,CAAOD,CAAAA,CAAM,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,CAChCE,iCAAAA,CAAcJ,CAAQG,CAAAA,CAAMD,CAAAA,CAAM,OAAO,CAC3C,CAGF,OAAOG,iCAAAA,CAAoBL,iBAAQF,CAAAA,2BAAS,aAAW,CACzD,CACF,CAAA,CAAA,wBAAA","file":"/home/runner/work/bit-form/bit-form/dist/resolvers/zod.cjs","sourcesContent":[null,"import { ZodError, ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\nimport { filterErrorsByScope, setFirstError } from \"./utils\";\nimport { BitResolverScopeOptions, BitZodResolverConfig } from \"./types\";\n\nexport const zodResolver = <T extends object>(\n schema: ZodSchema<T>,\n _config?: BitZodResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (error: unknown) {\n const errors: BitErrors<T> = {};\n\n if (error instanceof ZodError) {\n for (const issue of error.issues) {\n const path = issue.path.join(\".\");\n setFirstError(errors, path, issue.message);\n }\n }\n\n return filterErrorsByScope(errors, options?.scopeFields);\n }\n };\n};\n"]}
@@ -1,8 +1,8 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { i as BitErrors } from '../bus-B3pGaiFZ.cjs';
2
+ import { i as BitErrors } from '../types-DqeN9Kq_.cjs';
3
+ import '../bus-BI29cKpD.cjs';
4
+ import { BitZodResolverConfig, BitResolverScopeOptions } from './types.cjs';
3
5
 
4
- declare const zodResolver: <T extends object>(schema: ZodSchema<T>) => (values: T, options?: {
5
- scopeFields?: string[];
6
- }) => Promise<BitErrors<T>>;
6
+ declare const zodResolver: <T extends object>(schema: ZodSchema<T>, _config?: BitZodResolverConfig) => (values: T, options?: BitResolverScopeOptions) => Promise<BitErrors<T>>;
7
7
 
8
8
  export { zodResolver };
@@ -1,8 +1,8 @@
1
1
  import { ZodSchema } from 'zod';
2
- import { i as BitErrors } from '../bus-B3pGaiFZ.js';
2
+ import { i as BitErrors } from '../types-DqeN9Kq_.js';
3
+ import '../bus-B1my-s_o.js';
4
+ import { BitZodResolverConfig, BitResolverScopeOptions } from './types.js';
3
5
 
4
- declare const zodResolver: <T extends object>(schema: ZodSchema<T>) => (values: T, options?: {
5
- scopeFields?: string[];
6
- }) => Promise<BitErrors<T>>;
6
+ declare const zodResolver: <T extends object>(schema: ZodSchema<T>, _config?: BitZodResolverConfig) => (values: T, options?: BitResolverScopeOptions) => Promise<BitErrors<T>>;
7
7
 
8
8
  export { zodResolver };
@@ -1,2 +1,2 @@
1
- var f=n=>async(a,t)=>{try{return await n.parseAsync(a),{}}catch(o){let e={};if(o.issues&&o.issues.forEach(s=>{let r=s.path.join(".");r&&!e[r]&&(e[r]=s.message)}),t?.scopeFields&&t.scopeFields.length>0){let s=new Set(t.scopeFields),r={};for(let[c,i]of Object.entries(e))s.has(c)&&i&&(r[c]=i);return r}return e}};export{f as zodResolver};
1
+ import{b as s,c as t}from"../chunk-7MBRAKBL.js";import{ZodError as f}from"zod";var l=(i,m)=>async(n,c)=>{try{return await i.parseAsync(n),{}}catch(r){let o={};if(r instanceof f)for(let e of r.issues){let p=e.path.join(".");s(o,p,e.message)}return t(o,c?.scopeFields)}};export{l as zodResolver};
2
2
  //# sourceMappingURL=zod.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/resolvers/zod.ts"],"sourcesContent":["import { ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\n\nexport const zodResolver = <T extends object>(schema: ZodSchema<T>) => {\n return async (\n values: T,\n options?: { scopeFields?: string[] },\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (err: any) {\n const errors: BitErrors<T> = {};\n\n if (err.issues) {\n err.issues.forEach((issue: any) => {\n const path = issue.path.join(\".\");\n if (path && !errors[path]) {\n errors[path] = issue.message;\n }\n });\n }\n\n if (options?.scopeFields && options.scopeFields.length > 0) {\n const scopeSet = new Set(options.scopeFields);\n const filtered: BitErrors<T> = {};\n for (const [key, msg] of Object.entries(errors)) {\n if (scopeSet.has(key) && msg) filtered[key as keyof BitErrors<T>] = msg;\n }\n return filtered;\n }\n\n return errors;\n }\n };\n};\n"],"mappings":"AAGO,IAAMA,EAAiCC,GACrC,MACLC,EACAC,IAC0B,CAC1B,GAAI,CACF,aAAMF,EAAO,WAAWC,CAAM,EACvB,CAAC,CACV,OAASE,EAAU,CACjB,IAAMC,EAAuB,CAAC,EAW9B,GATID,EAAI,QACNA,EAAI,OAAO,QAASE,GAAe,CACjC,IAAMC,EAAOD,EAAM,KAAK,KAAK,GAAG,EAC5BC,GAAQ,CAACF,EAAOE,CAAI,IACtBF,EAAOE,CAAI,EAAID,EAAM,QAEzB,CAAC,EAGCH,GAAS,aAAeA,EAAQ,YAAY,OAAS,EAAG,CAC1D,IAAMK,EAAW,IAAI,IAAIL,EAAQ,WAAW,EACtCM,EAAyB,CAAC,EAChC,OAAW,CAACC,EAAKC,CAAG,IAAK,OAAO,QAAQN,CAAM,EACxCG,EAAS,IAAIE,CAAG,GAAKC,IAAKF,EAASC,CAAyB,EAAIC,GAEtE,OAAOF,CACT,CAEA,OAAOJ,CACT,CACF","names":["zodResolver","schema","values","options","err","errors","issue","path","scopeSet","filtered","key","msg"]}
1
+ {"version":3,"sources":["../../src/resolvers/zod.ts"],"sourcesContent":["import { ZodError, ZodSchema } from \"zod\";\nimport { BitErrors } from \"../core\";\nimport { filterErrorsByScope, setFirstError } from \"./utils\";\nimport { BitResolverScopeOptions, BitZodResolverConfig } from \"./types\";\n\nexport const zodResolver = <T extends object>(\n schema: ZodSchema<T>,\n _config?: BitZodResolverConfig,\n) => {\n return async (\n values: T,\n options?: BitResolverScopeOptions,\n ): Promise<BitErrors<T>> => {\n try {\n await schema.parseAsync(values);\n return {};\n } catch (error: unknown) {\n const errors: BitErrors<T> = {};\n\n if (error instanceof ZodError) {\n for (const issue of error.issues) {\n const path = issue.path.join(\".\");\n setFirstError(errors, path, issue.message);\n }\n }\n\n return filterErrorsByScope(errors, options?.scopeFields);\n }\n };\n};\n"],"mappings":"gDAAA,OAAS,YAAAA,MAA2B,MAK7B,IAAMC,EAAc,CACzBC,EACAC,IAEO,MACLC,EACAC,IAC0B,CAC1B,GAAI,CACF,aAAMH,EAAO,WAAWE,CAAM,EACvB,CAAC,CACV,OAASE,EAAgB,CACvB,IAAMC,EAAuB,CAAC,EAE9B,GAAID,aAAiBE,EACnB,QAAWC,KAASH,EAAM,OAAQ,CAChC,IAAMI,EAAOD,EAAM,KAAK,KAAK,GAAG,EAChCE,EAAcJ,EAAQG,EAAMD,EAAM,OAAO,CAC3C,CAGF,OAAOG,EAAoBL,EAAQF,GAAS,WAAW,CACzD,CACF","names":["ZodError","zodResolver","schema","_config","values","options","error","errors","ZodError","issue","path","setFirstError","filterErrorsByScope"]}
@@ -2,6 +2,8 @@ interface BitMask {
2
2
  format: (value: any) => string;
3
3
  parse: (value: string) => any;
4
4
  }
5
+ type BitBuiltInMaskName = "brl" | "usd" | "eur" | "gbp" | "jpy" | "percent" | "decimal" | "int" | "integer" | "cpf" | "cnpj" | "cpfCnpj" | "rg" | "cep" | "cnh" | "plate" | "phone" | "landline" | "date" | "time" | "usPhone" | "zipCode" | "dateUS" | "ssn" | "cc" | "cvv" | "dateISO" | "ip" | "ipv6" | "mac" | "color" | "iban";
6
+ type BitMaskName = BitBuiltInMaskName | (string & {});
5
7
  interface PatternMaskOptions {
6
8
  allowChars?: string;
7
9
  customParse?: (value: string) => any;
@@ -73,8 +75,8 @@ interface BitFieldDefinition<T extends object = any> {
73
75
  validation?: BitFieldValidation<T>;
74
76
  transform?: BitTransformFn<T>;
75
77
  computed?: BitComputedFn<T>;
76
- /** Mask name (from registry) or BitMask instance. */
77
- mask?: BitMask | string;
78
+ /** Mask name (built-in or custom registry key) or BitMask instance. */
79
+ mask?: BitMask | BitMaskName;
78
80
  /** Scope name (e.g. wizard step). */
79
81
  scope?: string;
80
82
  }
@@ -201,6 +203,7 @@ interface BitHistoryConfig {
201
203
  interface BitConfig<T extends object = any> {
202
204
  /** Core */
203
205
  name?: string;
206
+ storeId?: string;
204
207
  initialValues?: T;
205
208
  /** Central field config: conditional, validation, transform, computed, mask, scope. */
206
209
  fields?: Record<string, BitFieldDefinition<T>>;
@@ -239,17 +242,4 @@ type BitPathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ?
239
242
  type BitArrayPath<T> = BitPath<T> extends infer P ? P extends string ? BitPathValue<T, P> extends readonly any[] ? P : never : never : never;
240
243
  type BitArrayItem<A> = A extends readonly (infer U)[] ? U : A extends (infer U)[] ? U : never;
241
244
 
242
- type BitBusListener<T extends object = any> = (storeId: string, newState: BitState<T>) => void;
243
- interface BitFormGlobal {
244
- stores: Record<string, unknown>;
245
- listeners: Set<BitBusListener>;
246
- dispatch: (storeId: string, state: BitState<any>) => void;
247
- subscribe: (fn: BitBusListener) => () => void;
248
- }
249
-
250
- declare global {
251
- var __BIT_FORM__: BitFormGlobal | undefined;
252
- }
253
- declare const bitBus: BitFormGlobal;
254
-
255
- export { type BitTouched as A, type BitConfig as B, type CurrencyMaskConfig as C, type DateMaskConfig as D, type BitTransformFn as E, type BitValidationConfig as F, type DeepPartial as G, type ValidatorFn as H, bitBus as I, type DevToolsOptions as J, type BitPersistResolvedConfig as K, type PatternMaskOptions as P, type ScopeStatus as S, type ValidateScopeResult as V, type BitMask as a, type BitAfterSubmitEvent as b, type BitAfterValidateEvent as c, type BitArrayItem as d, type BitArrayPath as e, type BitBeforeSubmitEvent as f, type BitBeforeValidateEvent as g, type BitComputedFn as h, type BitErrors as i, type BitFieldChangeEvent as j, type BitFieldChangeMeta as k, type BitFieldConditional as l, type BitFieldDefinition as m, type BitFieldState as n, type BitFieldValidation as o, type BitHistoryConfig as p, type BitPath as q, type BitPathValue as r, type BitPersistConfig as s, type BitPersistMode as t, type BitPersistStorageAdapter as u, type BitPlugin as v, type BitPluginContext as w, type BitPluginErrorEvent as x, type BitPluginHooks as y, type BitState as z };
245
+ export type { BitPersistConfig as A, BitConfig as B, CurrencyMaskConfig as C, DevToolsOptions as D, BitPersistMode as E, BitPersistStorageAdapter as F, BitPluginContext as G, BitPluginErrorEvent as H, BitPluginHooks as I, BitTouched as J, BitTransformFn as K, BitValidationConfig as L, PatternMaskOptions as P, ScopeStatus as S, ValidatorFn as V, BitMask as a, BitFieldDefinition as b, BitPersistResolvedConfig as c, BitPlugin as d, BitState as e, BitPath as f, BitPathValue as g, DeepPartial as h, BitErrors as i, BitMaskName as j, BitArrayPath as k, BitArrayItem as l, BitFieldState as m, ValidateScopeResult as n, DateMaskConfig as o, BitBuiltInMaskName as p, BitAfterSubmitEvent as q, BitAfterValidateEvent as r, BitBeforeSubmitEvent as s, BitBeforeValidateEvent as t, BitComputedFn as u, BitFieldChangeEvent as v, BitFieldChangeMeta as w, BitFieldConditional as x, BitFieldValidation as y, BitHistoryConfig as z };
@@ -2,6 +2,8 @@ interface BitMask {
2
2
  format: (value: any) => string;
3
3
  parse: (value: string) => any;
4
4
  }
5
+ type BitBuiltInMaskName = "brl" | "usd" | "eur" | "gbp" | "jpy" | "percent" | "decimal" | "int" | "integer" | "cpf" | "cnpj" | "cpfCnpj" | "rg" | "cep" | "cnh" | "plate" | "phone" | "landline" | "date" | "time" | "usPhone" | "zipCode" | "dateUS" | "ssn" | "cc" | "cvv" | "dateISO" | "ip" | "ipv6" | "mac" | "color" | "iban";
6
+ type BitMaskName = BitBuiltInMaskName | (string & {});
5
7
  interface PatternMaskOptions {
6
8
  allowChars?: string;
7
9
  customParse?: (value: string) => any;
@@ -73,8 +75,8 @@ interface BitFieldDefinition<T extends object = any> {
73
75
  validation?: BitFieldValidation<T>;
74
76
  transform?: BitTransformFn<T>;
75
77
  computed?: BitComputedFn<T>;
76
- /** Mask name (from registry) or BitMask instance. */
77
- mask?: BitMask | string;
78
+ /** Mask name (built-in or custom registry key) or BitMask instance. */
79
+ mask?: BitMask | BitMaskName;
78
80
  /** Scope name (e.g. wizard step). */
79
81
  scope?: string;
80
82
  }
@@ -201,6 +203,7 @@ interface BitHistoryConfig {
201
203
  interface BitConfig<T extends object = any> {
202
204
  /** Core */
203
205
  name?: string;
206
+ storeId?: string;
204
207
  initialValues?: T;
205
208
  /** Central field config: conditional, validation, transform, computed, mask, scope. */
206
209
  fields?: Record<string, BitFieldDefinition<T>>;
@@ -239,17 +242,4 @@ type BitPathValue<T, P extends string> = P extends `${infer K}.${infer Rest}` ?
239
242
  type BitArrayPath<T> = BitPath<T> extends infer P ? P extends string ? BitPathValue<T, P> extends readonly any[] ? P : never : never : never;
240
243
  type BitArrayItem<A> = A extends readonly (infer U)[] ? U : A extends (infer U)[] ? U : never;
241
244
 
242
- type BitBusListener<T extends object = any> = (storeId: string, newState: BitState<T>) => void;
243
- interface BitFormGlobal {
244
- stores: Record<string, unknown>;
245
- listeners: Set<BitBusListener>;
246
- dispatch: (storeId: string, state: BitState<any>) => void;
247
- subscribe: (fn: BitBusListener) => () => void;
248
- }
249
-
250
- declare global {
251
- var __BIT_FORM__: BitFormGlobal | undefined;
252
- }
253
- declare const bitBus: BitFormGlobal;
254
-
255
- export { type BitTouched as A, type BitConfig as B, type CurrencyMaskConfig as C, type DateMaskConfig as D, type BitTransformFn as E, type BitValidationConfig as F, type DeepPartial as G, type ValidatorFn as H, bitBus as I, type DevToolsOptions as J, type BitPersistResolvedConfig as K, type PatternMaskOptions as P, type ScopeStatus as S, type ValidateScopeResult as V, type BitMask as a, type BitAfterSubmitEvent as b, type BitAfterValidateEvent as c, type BitArrayItem as d, type BitArrayPath as e, type BitBeforeSubmitEvent as f, type BitBeforeValidateEvent as g, type BitComputedFn as h, type BitErrors as i, type BitFieldChangeEvent as j, type BitFieldChangeMeta as k, type BitFieldConditional as l, type BitFieldDefinition as m, type BitFieldState as n, type BitFieldValidation as o, type BitHistoryConfig as p, type BitPath as q, type BitPathValue as r, type BitPersistConfig as s, type BitPersistMode as t, type BitPersistStorageAdapter as u, type BitPlugin as v, type BitPluginContext as w, type BitPluginErrorEvent as x, type BitPluginHooks as y, type BitState as z };
245
+ export type { BitPersistConfig as A, BitConfig as B, CurrencyMaskConfig as C, DevToolsOptions as D, BitPersistMode as E, BitPersistStorageAdapter as F, BitPluginContext as G, BitPluginErrorEvent as H, BitPluginHooks as I, BitTouched as J, BitTransformFn as K, BitValidationConfig as L, PatternMaskOptions as P, ScopeStatus as S, ValidatorFn as V, BitMask as a, BitFieldDefinition as b, BitPersistResolvedConfig as c, BitPlugin as d, BitState as e, BitPath as f, BitPathValue as g, DeepPartial as h, BitErrors as i, BitMaskName as j, BitArrayPath as k, BitArrayItem as l, BitFieldState as m, ValidateScopeResult as n, DateMaskConfig as o, BitBuiltInMaskName as p, BitAfterSubmitEvent as q, BitAfterValidateEvent as r, BitBeforeSubmitEvent as s, BitBeforeValidateEvent as t, BitComputedFn as u, BitFieldChangeEvent as v, BitFieldChangeMeta as w, BitFieldConditional as x, BitFieldValidation as y, BitHistoryConfig as z };
@@ -1,52 +1,14 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { B as BitStoreApi, i as BitValidationOptions, d as BitHistoryMetadata, e as BitPersistMetadata } from './public-types-Lq3eLstW.js';
4
- import { i as BitErrors, A as BitTouched, q as BitPath, r as BitPathValue, G as DeepPartial, e as BitArrayPath, d as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-B3pGaiFZ.js';
3
+ import { f as BitStoreApi, g as BitStoreHooksApi, b as BitHistoryMetadata, c as BitPersistMetadata, h as BitValidationOptions } from './public-types-CLIDR8aC.cjs';
4
+ import './bus-BI29cKpD.cjs';
5
+ import { f as BitPath, g as BitPathValue, S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, J as BitTouched, h as DeepPartial, k as BitArrayPath, l as BitArrayItem } from './types-DqeN9Kq_.cjs';
5
6
 
6
7
  declare const BitFormProvider: ({ store, children, }: {
7
8
  store: BitStoreApi<any>;
8
9
  children: React.ReactNode;
9
10
  }) => react_jsx_runtime.JSX.Element;
10
- declare const useBitStore: <T extends object>() => BitStoreApi<T>;
11
-
12
- declare function useBitForm<T extends object>(): {
13
- meta: {
14
- submitError: Error | null;
15
- lastResponse: unknown;
16
- isValid: boolean;
17
- isDirty: boolean;
18
- isSubmitting: boolean;
19
- };
20
- getValues: () => T;
21
- getErrors: () => BitErrors<T>;
22
- getTouched: () => BitTouched<T>;
23
- getDirtyValues: () => Partial<T>;
24
- submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: {
25
- preventDefault: () => void;
26
- }) => Promise<void>;
27
- onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: {
28
- preventDefault: () => void;
29
- }) => Promise<void>;
30
- reset: () => void;
31
- setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, P>) => void;
32
- blurField: <P extends BitPath<T, "">>(path: P) => void;
33
- replaceValues: (values: T) => void;
34
- hydrate: (values: DeepPartial<T>) => void;
35
- rebase: (values: T) => void;
36
- setValues: (values: T) => void;
37
- setError: (path: string, message: string | undefined) => void;
38
- setErrors: (errors: BitErrors<T>) => void;
39
- setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
40
- validate: (options?: BitValidationOptions) => Promise<boolean>;
41
- mutations: {
42
- pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
43
- removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
44
- prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
45
- insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
46
- moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
47
- swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
48
- };
49
- };
11
+ declare const useBitStore: <T extends object>() => BitStoreHooksApi<T>;
50
12
 
51
13
  /**
52
14
  * Metadata describing the current state of a form field.
@@ -133,6 +95,38 @@ interface UseBitPersistResult {
133
95
  clear: () => Promise<void>;
134
96
  meta: BitPersistMetadata;
135
97
  }
98
+ interface UseBitFormMeta {
99
+ isValid: boolean;
100
+ isDirty: boolean;
101
+ isSubmitting: boolean;
102
+ submitError: Error | null;
103
+ lastResponse: unknown;
104
+ }
105
+ interface UseBitFormResult<T extends object = any> {
106
+ meta: UseBitFormMeta;
107
+ getValues: () => T;
108
+ getErrors: () => BitErrors<T>;
109
+ getTouched: () => BitTouched<T>;
110
+ getDirtyValues: () => Partial<T>;
111
+ submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: {
112
+ preventDefault: () => void;
113
+ }) => Promise<void>;
114
+ onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: {
115
+ preventDefault: () => void;
116
+ }) => Promise<void>;
117
+ reset: () => void;
118
+ setField: <P extends BitPath<T>>(path: P, value: BitPathValue<T, P>) => void;
119
+ blurField: <P extends BitPath<T>>(path: P) => void;
120
+ replaceValues: (values: T) => void;
121
+ hydrate: (values: DeepPartial<T>) => void;
122
+ rebase: (values: T) => void;
123
+ setError: (path: string, message: string | undefined) => void;
124
+ setErrors: (errors: BitErrors<T>) => void;
125
+ setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
126
+ validate: (options?: BitValidationOptions) => Promise<boolean>;
127
+ }
128
+
129
+ declare function useBitForm<T extends object>(): UseBitFormResult<T>;
136
130
 
137
131
  declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
138
132
  append: (value: BitArrayItem<BitPathValue<TForm, P>>) => void;
@@ -167,4 +161,4 @@ declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm
167
161
 
168
162
  declare function useBitPersist(): UseBitPersistResult;
169
163
 
170
- export { BitFormProvider as B, type UseBitFieldResult as U, type UseBitHistoryResult as a, type UseBitUploadResult as b, type UseBitFieldBindProps as c, type UseBitFieldMeta as d, type UseBitPersistResult as e, type UseBitStepsResult as f, useBitForm as g, useBitPersist as h, useBitScope as i, useBitSteps as j, useBitStore as k, useBitWatch as l, useBitArray as u };
164
+ export { BitFormProvider as B, type UseBitPersistResult as U, useBitForm as a, useBitPersist as b, useBitScope as c, useBitSteps as d, useBitStore as e, useBitWatch as f, type UseBitFieldResult as g, type UseBitHistoryResult as h, type UseBitUploadResult as i, type UseBitFieldBindProps as j, type UseBitFieldMeta as k, type UseBitStepsResult as l, useBitArray as u };
@@ -1,52 +1,14 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
3
- import { B as BitStoreApi, i as BitValidationOptions, d as BitHistoryMetadata, e as BitPersistMetadata } from './public-types-CtYuIAMP.cjs';
4
- import { i as BitErrors, A as BitTouched, q as BitPath, r as BitPathValue, G as DeepPartial, e as BitArrayPath, d as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from './bus-B3pGaiFZ.cjs';
3
+ import { f as BitStoreApi, g as BitStoreHooksApi, b as BitHistoryMetadata, c as BitPersistMetadata, h as BitValidationOptions } from './public-types-Bl94ECPb.js';
4
+ import './bus-B1my-s_o.js';
5
+ import { f as BitPath, g as BitPathValue, S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, J as BitTouched, h as DeepPartial, k as BitArrayPath, l as BitArrayItem } from './types-DqeN9Kq_.js';
5
6
 
6
7
  declare const BitFormProvider: ({ store, children, }: {
7
8
  store: BitStoreApi<any>;
8
9
  children: React.ReactNode;
9
10
  }) => react_jsx_runtime.JSX.Element;
10
- declare const useBitStore: <T extends object>() => BitStoreApi<T>;
11
-
12
- declare function useBitForm<T extends object>(): {
13
- meta: {
14
- submitError: Error | null;
15
- lastResponse: unknown;
16
- isValid: boolean;
17
- isDirty: boolean;
18
- isSubmitting: boolean;
19
- };
20
- getValues: () => T;
21
- getErrors: () => BitErrors<T>;
22
- getTouched: () => BitTouched<T>;
23
- getDirtyValues: () => Partial<T>;
24
- submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: {
25
- preventDefault: () => void;
26
- }) => Promise<void>;
27
- onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: {
28
- preventDefault: () => void;
29
- }) => Promise<void>;
30
- reset: () => void;
31
- setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, P>) => void;
32
- blurField: <P extends BitPath<T, "">>(path: P) => void;
33
- replaceValues: (values: T) => void;
34
- hydrate: (values: DeepPartial<T>) => void;
35
- rebase: (values: T) => void;
36
- setValues: (values: T) => void;
37
- setError: (path: string, message: string | undefined) => void;
38
- setErrors: (errors: BitErrors<T>) => void;
39
- setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
40
- validate: (options?: BitValidationOptions) => Promise<boolean>;
41
- mutations: {
42
- pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
43
- removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
44
- prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
45
- insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
46
- moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
47
- swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
48
- };
49
- };
11
+ declare const useBitStore: <T extends object>() => BitStoreHooksApi<T>;
50
12
 
51
13
  /**
52
14
  * Metadata describing the current state of a form field.
@@ -133,6 +95,38 @@ interface UseBitPersistResult {
133
95
  clear: () => Promise<void>;
134
96
  meta: BitPersistMetadata;
135
97
  }
98
+ interface UseBitFormMeta {
99
+ isValid: boolean;
100
+ isDirty: boolean;
101
+ isSubmitting: boolean;
102
+ submitError: Error | null;
103
+ lastResponse: unknown;
104
+ }
105
+ interface UseBitFormResult<T extends object = any> {
106
+ meta: UseBitFormMeta;
107
+ getValues: () => T;
108
+ getErrors: () => BitErrors<T>;
109
+ getTouched: () => BitTouched<T>;
110
+ getDirtyValues: () => Partial<T>;
111
+ submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: {
112
+ preventDefault: () => void;
113
+ }) => Promise<void>;
114
+ onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: {
115
+ preventDefault: () => void;
116
+ }) => Promise<void>;
117
+ reset: () => void;
118
+ setField: <P extends BitPath<T>>(path: P, value: BitPathValue<T, P>) => void;
119
+ blurField: <P extends BitPath<T>>(path: P) => void;
120
+ replaceValues: (values: T) => void;
121
+ hydrate: (values: DeepPartial<T>) => void;
122
+ rebase: (values: T) => void;
123
+ setError: (path: string, message: string | undefined) => void;
124
+ setErrors: (errors: BitErrors<T>) => void;
125
+ setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
126
+ validate: (options?: BitValidationOptions) => Promise<boolean>;
127
+ }
128
+
129
+ declare function useBitForm<T extends object>(): UseBitFormResult<T>;
136
130
 
137
131
  declare function useBitArray<TForm extends object = any, P extends BitArrayPath<TForm> = BitArrayPath<TForm>>(path: P): {
138
132
  append: (value: BitArrayItem<BitPathValue<TForm, P>>) => void;
@@ -167,4 +161,4 @@ declare function useBitWatch<TForm extends object = any, P extends BitPath<TForm
167
161
 
168
162
  declare function useBitPersist(): UseBitPersistResult;
169
163
 
170
- export { BitFormProvider as B, type UseBitFieldResult as U, type UseBitHistoryResult as a, type UseBitUploadResult as b, type UseBitFieldBindProps as c, type UseBitFieldMeta as d, type UseBitPersistResult as e, type UseBitStepsResult as f, useBitForm as g, useBitPersist as h, useBitScope as i, useBitSteps as j, useBitStore as k, useBitWatch as l, useBitArray as u };
164
+ export { BitFormProvider as B, type UseBitPersistResult as U, useBitForm as a, useBitPersist as b, useBitScope as c, useBitSteps as d, useBitStore as e, useBitWatch as f, type UseBitFieldResult as g, type UseBitHistoryResult as h, type UseBitUploadResult as i, type UseBitFieldBindProps as j, type UseBitFieldMeta as k, type UseBitStepsResult as l, useBitArray as u };
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkYWXX6XRVcjs = require('../chunk-YWXX6XRV.cjs');var _vue = require('vue');var H=Symbol("BIT_STORE");function $(e){_vue.provide.call(void 0, H,e)}function c(){let e=_vue.inject.call(void 0, H);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function G(){let e=c(),t=_vue.shallowRef.call(void 0, {isValid:e.getState().isValid,isSubmitting:e.getState().isSubmitting,isDirty:e.getState().isDirty}),s=_vue.ref.call(void 0, null),r=_vue.ref.call(void 0, null),i=e.subscribeSelector(y=>({isValid:y.isValid,isSubmitting:y.isSubmitting,isDirty:y.isDirty}),y=>{t.value=y});_vue.onUnmounted.call(void 0, i);let n=()=>e.getState().values,f=()=>e.getState().errors,u=()=>e.getState().touched,v=()=>e.getDirtyValues(),o=_vue.computed.call(void 0, ()=>t.value.isValid),a=_vue.computed.call(void 0, ()=>t.value.isSubmitting),l=_vue.computed.call(void 0, ()=>t.value.isDirty);return{meta:{isValid:o,isDirty:l,isSubmitting:a,submitError:s,lastResponse:r},getValues:n,getErrors:f,getTouched:u,getDirtyValues:v,submit:y=>B=>(_optionalChain([B, 'optionalAccess', _2 => _2.preventDefault, 'optionalCall', _3 => _3()]),e.submit(y)),onSubmit:y=>B=>(_optionalChain([B, 'optionalAccess', _4 => _4.preventDefault, 'optionalCall', _5 => _5()]),s.value=null,e.submit(async(F,m)=>{try{let d=await y(F,m);r.value=d,s.value=null}catch(d){_chunkYWXX6XRVcjs.i.call(void 0, d)?e.setServerErrors(_chunkYWXX6XRVcjs.j.call(void 0, d)):s.value=d instanceof Error?d:new Error(String(d))}})),reset:()=>{e.reset(),s.value=null,r.value=null},replaceValues:e.replaceValues.bind(e),hydrate:e.hydrate.bind(e),rebase:e.rebase.bind(e),setValues:e.setValues.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),validate:e.validate.bind(e),mutations:{pushItem:e.pushItem.bind(e),prependItem:e.prependItem.bind(e),removeItem:e.removeItem.bind(e),insertItem:e.insertItem.bind(e),moveItem:e.moveItem.bind(e),swapItems:e.swapItems.bind(e)}}}function R(e){let t=c(),s=t.resolveMask(e),r=_vue.shallowRef.call(void 0, t.getFieldState(e)),i=t.subscribeSelector(()=>t.getFieldState(e),p=>{r.value=p});_vue.onUnmounted.call(void 0, ()=>{i(),t.unregisterField&&t.unregisterField(e)});let n=_vue.computed.call(void 0, ()=>r.value.value),f=_vue.computed.call(void 0, ()=>{let p=n.value;return p==null||p===""?"":s?s.format(p):String(p)}),u=_vue.computed.call(void 0, {get:()=>f.value,set:p=>{if(!s){t.setField(e,p);return}t.setField(e,s.parse(String(_nullishCoalesce(p, () => ("")))))}}),v=_vue.computed.call(void 0, ()=>r.value.error),o=_vue.computed.call(void 0, ()=>r.value.touched?r.value.error:void 0),a=_vue.computed.call(void 0, ()=>r.value.touched),l=_vue.computed.call(void 0, ()=>!!(a.value&&o.value)),S=_vue.computed.call(void 0, ()=>r.value.isValidating),h=_vue.computed.call(void 0, ()=>r.value.isDirty),E=_vue.computed.call(void 0, ()=>r.value.isHidden),y=_vue.computed.call(void 0, ()=>r.value.isRequired),B=_vue.computed.call(void 0, ()=>!!v.value),F=p=>{if(!s){t.setField(e,p);return}u.value=String(_nullishCoalesce(p, () => ("")))},m=()=>t.blurField(e);return{value:n,displayValue:f,modelValue:u,setValue:F,setBlur:m,onInput:p=>{F(p)},onBlur:()=>{m()},meta:{error:o,touched:a,invalid:l,isValidating:S,isDirty:h,isHidden:E,isRequired:y,hasError:B}}}var V=()=>Math.random().toString(36).substring(2,9);function Z(e){let t=c(),r=(()=>{let o=_chunkYWXX6XRVcjs.f.call(void 0, t.getState().values,e);return Array.isArray(o)?o:[]})(),i=_vue.ref.call(void 0, r),n=_vue.ref.call(void 0, r.map(V)),f=t.subscribePath(e,o=>{let a=Array.isArray(o)?o:[];if(i.value=[...a],a.length!==n.value.length){let l=[...n.value];if(a.length>l.length){let S=a.length-l.length,h=Array.from({length:S},V);n.value=[...l,...h]}else n.value=l.slice(0,a.length)}});_vue.onUnmounted.call(void 0, ()=>{f(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=_vue.computed.call(void 0, ()=>i.value.map((o,a)=>({key:n.value[a]||`temp-${a}`,value:o,index:a}))),v=_vue.computed.call(void 0, ()=>i.value.length);return{fields:u,length:v,append:o=>{n.value.push(V()),t.pushItem(e,o)},prepend:o=>{n.value.unshift(V()),t.prependItem(e,o)},insert:(o,a)=>{n.value.splice(o,0,V()),t.insertItem(e,o,a)},remove:o=>{n.value.splice(o,1),t.removeItem(e,o)},move:(o,a)=>{let l=[...n.value],[S]=l.splice(o,1);l.splice(a,0,S),n.value=l,t.moveItem(e,o,a)},swap:(o,a)=>{let l=[...n.value];[l[o],l[a]]=[l[a],l[o]],n.value=l,t.swapItems(e,o,a)},replace:o=>{n.value=o.map(V),t.setField(e,o)},clear:()=>{n.value=[],t.setField(e,[])}}}function te(){let e=c(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, s);let r=()=>e.undo(),i=()=>e.redo();return{canUndo:_vue.computed.call(void 0, ()=>t.value.canUndo),canRedo:_vue.computed.call(void 0, ()=>t.value.canRedo),historyIndex:_vue.computed.call(void 0, ()=>t.value.historyIndex),historySize:_vue.computed.call(void 0, ()=>t.value.historySize),undo:r,redo:i}}function ie(e,t){let s=Object.keys(e),r=Object.keys(t);return s.length!==r.length?!1:s.every(i=>e[i]===t[i])}function ne(e){let t=c(),s=_vue.ref.call(void 0, t.getStepStatus(e)),r;_vue.onMounted.call(void 0, ()=>{r=t.subscribe(()=>{let o=t.getStepStatus(e);(o.hasErrors!==s.value.hasErrors||o.isDirty!==s.value.isDirty||!ie(o.errors,s.value.errors))&&(s.value=o)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([r, 'optionalCall', _6 => _6()])});let i=async()=>{let o=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:o,errors:a}},n=()=>t.getStepErrors(e),f=_vue.computed.call(void 0, ()=>!s.value.hasErrors),u=_vue.computed.call(void 0, ()=>s.value.isDirty),v=_vue.computed.call(void 0, ()=>s.value.errors);return{scopeName:e,status:s,errors:v,validate:i,getErrors:n,isValid:f,isDirty:u}}function ce(e,t){let s=Object.keys(e),r=Object.keys(t);return s.length!==r.length?!1:s.every(i=>e[i]===t[i])}function me(e){let t=c(),s=_vue.ref.call(void 0, 0),r=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[s.value], () => (""))),i=_vue.ref.call(void 0, t.getStepStatus(r.value)),n;_vue.watch.call(void 0, r,m=>{i.value=t.getStepStatus(m)});let f=()=>{let m=r.value,d=t.getStepStatus(m);(d.hasErrors!==i.value.hasErrors||d.isDirty!==i.value.isDirty||!ce(d.errors,i.value.errors))&&(i.value=d)};_vue.onMounted.call(void 0, ()=>{n=t.subscribe(f)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([n, 'optionalCall', _7 => _7()])});let u=async()=>{let m=r.value,d=await t.validate({scope:m}),P=t.getStepErrors(m);return{valid:d,errors:P}},v=()=>t.getStepErrors(r.value),o=async()=>{let m=r.value,d=t.getScopeFields(m);if(t.hasValidationsInProgress(d))return!1;let P=await t.validate({scope:m});if(P)s.value=Math.min(s.value+1,e.length-1);else{let p=t.getStepErrors(m),A=Object.keys(p);A.length>0&&t.markFieldsTouched(A)}return P},a=()=>{s.value=Math.max(s.value-1,0)},l=m=>{s.value=Math.max(0,Math.min(m-1,e.length-1))},S=_vue.computed.call(void 0, ()=>s.value+1),h=_vue.computed.call(void 0, ()=>s.value===0),E=_vue.computed.call(void 0, ()=>s.value>=e.length-1),y=_vue.computed.call(void 0, ()=>!i.value.hasErrors),B=_vue.computed.call(void 0, ()=>i.value.isDirty),F=_vue.computed.call(void 0, ()=>i.value.errors);return{step:S,stepIndex:s,scope:r,next:o,prev:a,goTo:l,isFirst:h,isLast:E,status:i,errors:F,isValid:y,isDirty:B,validate:u,getErrors:v}}function fe(e){let t=c(),s=_chunkYWXX6XRVcjs.f.call(void 0, t.getState().values,e),r=_vue.ref.call(void 0, s),i=t.watch(e,n=>{_chunkYWXX6XRVcjs.e.call(void 0, r.value,n)||(r.value=n)});return _vue.onUnmounted.call(void 0, i),_vue.readonly.call(void 0, r)}function ye(e,t,s){let r=c(),i=R(e),n=null,f=async v=>{if(v){r.beginFieldValidation(e),await r.clearFieldAsyncError(e);try{let o=await t(v);i.setValue(o.url),n=o.key,await r.clearFieldAsyncError(e)}catch(o){let a=o instanceof Error?o.message:"Upload failed";await r.setFieldAsyncError(e,a)}finally{r.endFieldValidation(e)}}},u=async()=>{if(n&&s)try{await s(n)}catch(v){let o=v instanceof Error?v.message:"Delete failed";await r.setFieldAsyncError(e,o);return}i.setValue(null),n=null,await r.clearFieldAsyncError(e)};return{value:i.value,setValue:i.setValue,error:_vue.computed.call(void 0, ()=>i.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>i.meta.isValidating.value||!1),upload:f,remove:u}}function ge(){let e=c(),t=_vue.ref.call(void 0, !1),s=_vue.ref.call(void 0, !1),r=_vue.ref.call(void 0, null);return{restore:async()=>{s.value=!0,r.value=null;try{return await e.restorePersisted()}catch(u){return r.value=u instanceof Error?u:new Error(String(u)),!1}finally{s.value=!1}},save:async()=>{t.value=!0,r.value=null;try{await e.forceSave()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}finally{t.value=!1}},clear:async()=>{r.value=null;try{await e.clearPersisted()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}},meta:{isSaving:_vue.readonly.call(void 0, t),isRestoring:_vue.readonly.call(void 0, s),error:_vue.readonly.call(void 0, r)}}}exports.provideBitStore = $; exports.useBitArray = Z; exports.useBitField = R; exports.useBitForm = G; exports.useBitHistory = te; exports.useBitPersist = ge; exports.useBitScope = ne; exports.useBitSteps = me; exports.useBitStore = c; exports.useBitUpload = ye; exports.useBitWatch = fe;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkNWPA4F3Bcjs = require('../chunk-NWPA4F3B.cjs');require('../chunk-C4BYXZGB.cjs');var _chunk676WXU4Scjs = require('../chunk-676WXU4S.cjs');var _vue = require('vue');var q=Symbol("BIT_STORE");function Y(e){_vue.provide.call(void 0, q,_chunk676WXU4Scjs.Y.call(void 0, e))}function c(){let e=_vue.inject.call(void 0, q);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function Q(){let e=c(),t=_vue.shallowRef.call(void 0, {isValid:e.getState().isValid,isSubmitting:e.getState().isSubmitting,isDirty:e.getState().isDirty}),i=_vue.ref.call(void 0, null),r=_vue.ref.call(void 0, null),s=e.subscribeSelector(m=>({isValid:m.isValid,isSubmitting:m.isSubmitting,isDirty:m.isDirty}),m=>{t.value=m});_vue.onUnmounted.call(void 0, s);let n=_chunkNWPA4F3Bcjs.a.call(void 0, e,{clearSubmissionState:()=>{i.value=null,r.value=null},setSubmissionResult:m=>{r.value=m},setSubmissionError:m=>{i.value=m}}),d=_vue.computed.call(void 0, ()=>t.value.isValid),u=_vue.computed.call(void 0, ()=>t.value.isSubmitting),f=_vue.computed.call(void 0, ()=>t.value.isDirty),o=n.onSubmit,a=n.reset;return{meta:{isValid:d,isDirty:f,isSubmitting:u,submitError:i,lastResponse:r},getValues:n.getValues,getErrors:n.getErrors,getTouched:n.getTouched,getDirtyValues:n.getDirtyValues,submit:n.submit,onSubmit:o,reset:a,replaceValues:e.replaceValues.bind(e),hydrate:e.hydrate.bind(e),rebase:e.rebase.bind(e),setError:e.setError.bind(e),setErrors:e.setErrors.bind(e),setServerErrors:e.setServerErrors.bind(e),setField:e.setField.bind(e),blurField:e.blurField.bind(e),validate:e.validate.bind(e)}}function U(e){let t=c(),i=t.resolveMask(e),r=_chunkNWPA4F3Bcjs.c.call(void 0, t,e,i),s=_vue.shallowRef.call(void 0, t.getFieldState(e)),n=_chunkNWPA4F3Bcjs.b.call(void 0, t,e,g=>{s.value=g});_vue.onUnmounted.call(void 0, ()=>{n(),t.unregisterField&&t.unregisterField(e)});let d=_vue.computed.call(void 0, ()=>s.value.value),u=_vue.computed.call(void 0, ()=>r.displayValue(d.value)),f=_vue.computed.call(void 0, {get:()=>u.value,set:g=>{r.setValue(g)}}),o=_vue.computed.call(void 0, ()=>s.value.error),a=_vue.computed.call(void 0, ()=>s.value.touched?s.value.error:void 0),l=_vue.computed.call(void 0, ()=>s.value.touched),m=_vue.computed.call(void 0, ()=>!!(l.value&&a.value)),b=_vue.computed.call(void 0, ()=>s.value.isValidating),P=_vue.computed.call(void 0, ()=>s.value.isDirty),E=_vue.computed.call(void 0, ()=>s.value.isHidden),T=_vue.computed.call(void 0, ()=>s.value.isRequired),x=_vue.computed.call(void 0, ()=>!!o.value),p=g=>{r.setValue(g)},y=()=>r.setBlur();return{value:d,displayValue:u,modelValue:f,setValue:p,setBlur:y,onInput:g=>{p(g)},onBlur:()=>{y()},meta:{error:a,touched:l,invalid:m,isValidating:b,isDirty:P,isHidden:E,isRequired:T,hasError:x}}}var S=()=>Math.random().toString(36).substring(2,9);function ee(e){let t=c(),r=(()=>{let o=_chunk676WXU4Scjs.f.call(void 0, t.getState().values,e);return Array.isArray(o)?o:[]})(),s=_vue.ref.call(void 0, r),n=_vue.ref.call(void 0, r.map(S)),d=t.subscribePath(e,o=>{let a=Array.isArray(o)?o:[];if(s.value=[...a],a.length!==n.value.length){let l=[...n.value];if(a.length>l.length){let m=a.length-l.length,b=Array.from({length:m},S);n.value=[...l,...b]}else n.value=l.slice(0,a.length)}});_vue.onUnmounted.call(void 0, ()=>{d(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=_vue.computed.call(void 0, ()=>s.value.map((o,a)=>({key:n.value[a]||`temp-${a}`,value:o,index:a}))),f=_vue.computed.call(void 0, ()=>s.value.length);return{fields:u,length:f,append:o=>{n.value.push(S()),t.pushItem(e,o)},prepend:o=>{n.value.unshift(S()),t.prependItem(e,o)},insert:(o,a)=>{n.value.splice(o,0,S()),t.insertItem(e,o,a)},remove:o=>{n.value.splice(o,1),t.removeItem(e,o)},move:(o,a)=>{let l=[...n.value],[m]=l.splice(o,1);l.splice(a,0,m),n.value=l,t.moveItem(e,o,a)},swap:(o,a)=>{let l=[...n.value];[l[o],l[a]]=[l[a],l[o]],n.value=l,t.swapItems(e,o,a)},replace:o=>{n.value=o.map(S),t.setField(e,o)},clear:()=>{n.value=[],t.setField(e,[])}}}function se(){let e=c(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),i=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, i);let r=()=>e.undo(),s=()=>e.redo();return{canUndo:_vue.computed.call(void 0, ()=>t.value.canUndo),canRedo:_vue.computed.call(void 0, ()=>t.value.canRedo),historyIndex:_vue.computed.call(void 0, ()=>t.value.historyIndex),historySize:_vue.computed.call(void 0, ()=>t.value.historySize),undo:r,redo:s}}function ae(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length!==r.length?!1:i.every(s=>e[s]===t[s])}function ue(e){let t=c(),i=_vue.ref.call(void 0, t.getStepStatus(e)),r;_vue.onMounted.call(void 0, ()=>{r=t.subscribe(()=>{let o=t.getStepStatus(e);(o.hasErrors!==i.value.hasErrors||o.isDirty!==i.value.isDirty||!ae(o.errors,i.value.errors))&&(i.value=o)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([r, 'optionalCall', _2 => _2()])});let s=async()=>{let o=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:o,errors:a}},n=()=>t.getStepErrors(e),d=_vue.computed.call(void 0, ()=>!i.value.hasErrors),u=_vue.computed.call(void 0, ()=>i.value.isDirty),f=_vue.computed.call(void 0, ()=>i.value.errors);return{scopeName:e,status:i,errors:f,validate:s,getErrors:n,isValid:d,isDirty:u}}function de(e,t){let i=Object.keys(e),r=Object.keys(t);return i.length!==r.length?!1:i.every(s=>e[s]===t[s])}function pe(e){let t=c(),i=_vue.ref.call(void 0, 0),r=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[i.value], () => (""))),s=_vue.ref.call(void 0, t.getStepStatus(r.value)),n;_vue.watch.call(void 0, r,p=>{s.value=t.getStepStatus(p)});let d=()=>{let p=r.value,y=t.getStepStatus(p);(y.hasErrors!==s.value.hasErrors||y.isDirty!==s.value.isDirty||!de(y.errors,s.value.errors))&&(s.value=y)};_vue.onMounted.call(void 0, ()=>{n=t.subscribe(d)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([n, 'optionalCall', _3 => _3()])});let u=async()=>{let p=r.value,y=await t.validate({scope:p}),h=t.getStepErrors(p);return{valid:y,errors:h}},f=()=>t.getStepErrors(r.value),o=async()=>{let p=r.value,y=t.getScopeFields(p);if(t.hasValidationsInProgress(y))return!1;let h=await t.validate({scope:p});if(h)i.value=Math.min(i.value+1,e.length-1);else{let D=t.getStepErrors(p),g=Object.keys(D);g.length>0&&t.markFieldsTouched(g)}return h},a=()=>{i.value=Math.max(i.value-1,0)},l=p=>{i.value=Math.max(0,Math.min(p-1,e.length-1))},m=_vue.computed.call(void 0, ()=>i.value+1),b=_vue.computed.call(void 0, ()=>i.value===0),P=_vue.computed.call(void 0, ()=>i.value>=e.length-1),E=_vue.computed.call(void 0, ()=>!s.value.hasErrors),T=_vue.computed.call(void 0, ()=>s.value.isDirty),x=_vue.computed.call(void 0, ()=>s.value.errors);return{step:m,stepIndex:i,scope:r,next:o,prev:a,goTo:l,isFirst:b,isLast:P,status:s,errors:x,isValid:E,isDirty:T,validate:u,getErrors:f}}function ge(e){let t=c(),i=_chunk676WXU4Scjs.f.call(void 0, t.getState().values,e),r=_vue.ref.call(void 0, i),s=t.watch(e,n=>{_chunk676WXU4Scjs.e.call(void 0, r.value,n)||(r.value=n)});return _vue.onUnmounted.call(void 0, s),_vue.readonly.call(void 0, r)}function Se(e,t,i){let r=c(),s=U(e),n=null,d=_vue.ref.call(void 0, !1),u=async o=>{if(o){d.value=!0,r.setError(e,void 0);try{let a=await t(o);s.setValue(a.url),n=a.key,r.setError(e,void 0)}catch(a){let l=a instanceof Error?a.message:"Upload failed";r.setError(e,l)}finally{d.value=!1}}},f=async()=>{if(n&&i)try{await i(n)}catch(o){let a=o instanceof Error?o.message:"Delete failed";r.setError(e,a);return}s.setValue(null),n=null,r.setError(e,void 0)};return{value:s.value,setValue:s.setValue,error:_vue.computed.call(void 0, ()=>s.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>!!s.meta.isValidating.value||d.value),upload:u,remove:f}}function be(){let e=c(),t=_vue.ref.call(void 0, !1),i=_vue.ref.call(void 0, !1),r=_vue.ref.call(void 0, null);return{restore:async()=>{i.value=!0,r.value=null;try{return await e.restorePersisted()}catch(u){return r.value=u instanceof Error?u:new Error(String(u)),!1}finally{i.value=!1}},save:async()=>{t.value=!0,r.value=null;try{await e.forceSave()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}finally{t.value=!1}},clear:async()=>{r.value=null;try{await e.clearPersisted()}catch(u){r.value=u instanceof Error?u:new Error(String(u))}},meta:{isSaving:_vue.readonly.call(void 0, t),isRestoring:_vue.readonly.call(void 0, i),error:_vue.readonly.call(void 0, r)}}}exports.provideBitStore = Y; exports.useBitArray = ee; exports.useBitField = U; exports.useBitForm = Q; exports.useBitHistory = se; exports.useBitPersist = be; exports.useBitScope = ue; exports.useBitSteps = pe; exports.useBitStore = c; exports.useBitUpload = Se; exports.useBitWatch = ge;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","getValues","getErrors","getTouched","getDirtyValues","isValid","computed","isSubmitting","isDirty","onSuccess","e","handler","values","dirtyValues","result","err","isValidationErrorShape","extractServerErrors","useBitField","path","resolvedMask","rawValue","displayValue","val","modelValue","rawError","error","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","generateId","useBitArray","initialValues","getDeepValue","ids","newValues","nextValues","currentIds","diff","newIds"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitStoreApi } from \"../core\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStoreApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreApi<T>) {\n provide(BIT_STORE_KEY, store);\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStoreApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { isValidationErrorShape, extractServerErrors } from \"../core/utils\";\n\nexport function useBitForm<T extends object>() {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribeSelector(\n (snapshot) => ({\n isValid: snapshot.isValid,\n isSubmitting: snapshot.isSubmitting,\n isDirty: snapshot.isDirty,\n }),\n (nextState) => {\n state.value = nextState;\n },\n );\n\n onUnmounted(unsubscribe);\n\n const getValues = () => store.getState().values;\n const getErrors = () => store.getState().errors;\n const getTouched = () => store.getState().touched;\n const getDirtyValues = () => store.getDirtyValues();\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = (\n handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>,\n ) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n submitError.value = null;\n return store.submit(async (values, dirtyValues) => {\n try {\n const result = await handler(values, dirtyValues);\n lastResponse.value = result;\n submitError.value = null;\n } catch (err) {\n if (isValidationErrorShape(err)) {\n store.setServerErrors(extractServerErrors(err));\n } else {\n submitError.value =\n err instanceof Error ? err : new Error(String(err));\n }\n }\n });\n };\n };\n\n const reset = () => {\n store.reset();\n submitError.value = null;\n lastResponse.value = null;\n };\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues,\n getErrors,\n getTouched,\n getDirtyValues,\n // Main actions (frequent use - flat)\n submit: (\n onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>,\n ) => {\n return (e?: Event) => {\n e?.preventDefault?.();\n return store.submit(onSuccess);\n };\n },\n onSubmit,\n reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.bind(store),\n setValues: store.setValues.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n // Array mutations (grouped)\n mutations: {\n pushItem: store.pushItem.bind(store),\n prependItem: store.prependItem.bind(store),\n removeItem: store.removeItem.bind(store),\n insertItem: store.insertItem.bind(store),\n moveItem: store.moveItem.bind(store),\n swapItems: store.swapItems.bind(store),\n },\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const resolvedMask = store.resolveMask(path);\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = store.subscribeSelector(\n () => store.getFieldState(path),\n (nextState) => {\n state.value = nextState;\n },\n );\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() => {\n const val = rawValue.value;\n if (val === undefined || val === null || val === \"\") return \"\";\n\n return resolvedMask ? resolvedMask.format(val) : String(val);\n });\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n if (!resolvedMask) {\n store.setField(path, val as BitPathValue<TForm, P>);\n return;\n }\n\n store.setField(path, resolvedMask.parse(String(val ?? \"\")));\n },\n });\n\n const rawError = computed(() => state.value.error);\n const error = computed(() =>\n state.value.touched ? state.value.error : undefined,\n );\n const touched = computed(() => state.value.touched);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => state.value.isValidating);\n\n const isDirty = computed(() => state.value.isDirty);\n\n const isHidden = computed(() => state.value.isHidden);\n\n const isRequired = computed(() => state.value.isRequired);\n\n const hasError = computed(() => !!rawError.value);\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n if (!resolvedMask) {\n store.setField(path, val as BitPathValue<TForm, P>);\n return;\n }\n\n modelValue.value = String(val ?? \"\");\n };\n\n const setBlur = () => store.blurField(path);\n\n const onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = (): Item[] => {\n const val = getDeepValue(store.getState().values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map(generateId));\n\n const unsubscribe = store.subscribePath(path, (newValues) => {\n const nextValues = (Array.isArray(newValues) ? newValues : []) as Item[];\n\n values.value = [...nextValues];\n\n if (nextValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (nextValues.length > currentIds.length) {\n const diff = nextValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, generateId);\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, nextValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(generateId());\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(generateId());\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, generateId());\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map(generateId);\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n ids.value = [];\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts"],"names":["BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","useBitForm","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","controller","createFormController","result","error","isValid","computed","isSubmitting","isDirty","onSubmit","reset","useBitField","path","resolvedMask","fieldController","createMaskedFieldController","subscribeFieldState","rawValue","displayValue","modelValue","val","rawError","touched","invalid","isValidating","isHidden","isRequired","hasError","setValue","setBlur","generateId","useBitArray","initialValues","getDeepValue","values","ids","newValues","nextValues","currentIds","diff","newIds"],"mappings":"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","file":"/home/runner/work/bit-form/bit-form/dist/vue/index.cjs","sourcesContent":[null,"import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitStoreApi } from \"../core\";\nimport type { BitStoreHooksApi } from \"../core/store/public-types\";\nimport { resolveBitStoreForHooks } from \"../core/store/create-store\";\n\n// Chave única para evitar colisões\nexport const BIT_STORE_KEY: InjectionKey<BitStoreHooksApi<any>> =\n Symbol(\"BIT_STORE\");\n\nexport function provideBitStore<T extends object>(store: BitStoreApi<T>) {\n provide(BIT_STORE_KEY, resolveBitStoreForHooks(store));\n}\n\nexport function useBitStore<T extends object>() {\n const store = inject(BIT_STORE_KEY);\n if (!store)\n throw new Error(\n \"BitForm Vue hooks devem ser usados sob um provideBitStore\",\n );\n return store as BitStoreHooksApi<T>;\n}\n","import { computed, onUnmounted, shallowRef, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport { createFormController } from \"../core/form-controller\";\nimport type { UseBitFormResult } from \"./types\";\n\nexport function useBitForm<T extends object>(): UseBitFormResult<T> {\n const store = useBitStore<T>();\n const state = shallowRef({\n isValid: store.getState().isValid,\n isSubmitting: store.getState().isSubmitting,\n isDirty: store.getState().isDirty,\n });\n const submitError = ref<Error | null>(null);\n const lastResponse = ref<unknown>(null);\n\n const unsubscribe = store.subscribeSelector(\n (snapshot) => ({\n isValid: snapshot.isValid,\n isSubmitting: snapshot.isSubmitting,\n isDirty: snapshot.isDirty,\n }),\n (nextState) => {\n state.value = nextState;\n },\n );\n\n onUnmounted(unsubscribe);\n\n const controller = createFormController(store, {\n clearSubmissionState: () => {\n submitError.value = null;\n lastResponse.value = null;\n },\n setSubmissionResult: (result) => {\n lastResponse.value = result;\n },\n setSubmissionError: (error) => {\n submitError.value = error;\n },\n });\n\n const isValid = computed(() => state.value.isValid);\n const isSubmitting = computed(() => state.value.isSubmitting);\n const isDirty = computed(() => state.value.isDirty);\n\n const onSubmit = controller.onSubmit;\n const reset = controller.reset;\n\n const meta = {\n isValid,\n isDirty,\n isSubmitting,\n submitError,\n lastResponse,\n };\n\n return {\n // Metadata (grouped)\n meta,\n // Getters\n getValues: controller.getValues,\n getErrors: controller.getErrors,\n getTouched: controller.getTouched,\n getDirtyValues: controller.getDirtyValues,\n // Main actions (frequent use - flat)\n submit: controller.submit,\n onSubmit,\n reset,\n replaceValues: store.replaceValues.bind(store),\n hydrate: store.hydrate.bind(store),\n rebase: store.rebase.bind(store),\n setError: store.setError.bind(store),\n setErrors: store.setErrors.bind(store),\n setServerErrors: store.setServerErrors.bind(store),\n setField: store.setField.bind(store),\n blurField: store.blurField.bind(store),\n validate: store.validate.bind(store),\n };\n}\n","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitFieldVueResult } from \"./types\";\nimport type { BitPath, BitPathValue } from \"../core\";\nimport {\n createMaskedFieldController,\n subscribeFieldState,\n} from \"../core/field-controller\";\n\nexport function useBitField<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>> {\n const store = useBitStore<TForm>();\n\n const resolvedMask = store.resolveMask(path);\n const fieldController = createMaskedFieldController(\n store,\n path,\n resolvedMask,\n );\n\n const state = shallowRef(store.getFieldState(path));\n\n const unsubscribe = subscribeFieldState(store, path, (nextState) => {\n state.value = nextState;\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterField) {\n store.unregisterField(path);\n }\n });\n\n const rawValue = computed(() => state.value.value as BitPathValue<TForm, P>);\n\n const displayValue = computed(() =>\n fieldController.displayValue(rawValue.value),\n );\n\n const modelValue = computed({\n get: () => displayValue.value,\n set: (val: string) => {\n fieldController.setValue(val);\n },\n });\n\n const rawError = computed(() => state.value.error);\n const error = computed(() =>\n state.value.touched ? state.value.error : undefined,\n );\n const touched = computed(() => state.value.touched);\n const invalid = computed(() => !!(touched.value && error.value));\n\n const isValidating = computed(() => state.value.isValidating);\n\n const isDirty = computed(() => state.value.isDirty);\n\n const isHidden = computed(() => state.value.isHidden);\n\n const isRequired = computed(() => state.value.isRequired);\n\n const hasError = computed(() => !!rawError.value);\n\n const setValue = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n fieldController.setValue(val);\n };\n\n const setBlur = () => fieldController.setBlur();\n\n const onInput = (\n val: BitPathValue<TForm, P> | string | number | null | undefined,\n ) => {\n setValue(val);\n };\n\n const onBlur = () => {\n setBlur();\n };\n\n return {\n // Main handlers and values (flat)\n value: rawValue,\n displayValue,\n modelValue,\n setValue,\n setBlur,\n onInput,\n onBlur,\n // Metadata (grouped)\n meta: {\n error,\n touched,\n invalid,\n isValidating,\n isDirty,\n isHidden,\n isRequired,\n hasError,\n },\n };\n}\n","import { ref, computed, onUnmounted } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n BitArrayPath,\n BitPathValue,\n BitArrayItem,\n BitPath,\n} from \"../core\";\n\nconst generateId = () => Math.random().toString(36).substring(2, 9);\n\nexport function useBitArray<\n TForm extends object = any,\n P extends BitArrayPath<TForm> = BitArrayPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n\n type Item = BitArrayItem<BitPathValue<TForm, P>>;\n\n const getSnapshot = (): Item[] => {\n const val = getDeepValue(store.getState().values, path as string) as\n | BitPathValue<TForm, P>\n | undefined;\n return Array.isArray(val) ? (val as Item[]) : [];\n };\n\n const initialValues = getSnapshot();\n const values = ref<Item[]>(initialValues);\n const ids = ref<string[]>(initialValues.map(generateId));\n\n const unsubscribe = store.subscribePath(path, (newValues) => {\n const nextValues = (Array.isArray(newValues) ? newValues : []) as Item[];\n\n values.value = [...nextValues];\n\n if (nextValues.length !== ids.value.length) {\n const currentIds = [...ids.value];\n if (nextValues.length > currentIds.length) {\n const diff = nextValues.length - currentIds.length;\n const newIds = Array.from({ length: diff }, generateId);\n ids.value = [...currentIds, ...newIds];\n } else {\n ids.value = currentIds.slice(0, nextValues.length);\n }\n }\n });\n\n onUnmounted(() => {\n unsubscribe();\n if (store.unregisterPrefix) {\n store.unregisterPrefix(`${path as string}.`);\n }\n });\n\n const fields = computed(() =>\n values.value.map((v, i) => ({\n key: ids.value[i] || `temp-${i}`,\n value: v,\n index: i,\n })),\n );\n\n const length = computed(() => values.value.length);\n\n return {\n fields,\n length,\n append: (val: Item) => {\n ids.value.push(generateId());\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(generateId());\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, generateId());\n store.insertItem(path, index, val);\n },\n remove: (index: number) => {\n ids.value.splice(index, 1);\n store.removeItem(path, index);\n },\n move: (from: number, to: number) => {\n const currentIds = [...ids.value];\n const [id] = currentIds.splice(from, 1);\n currentIds.splice(to, 0, id);\n ids.value = currentIds;\n store.moveItem(path, from, to);\n },\n swap: (a: number, b: number) => {\n const currentIds = [...ids.value];\n [currentIds[a], currentIds[b]] = [currentIds[b], currentIds[a]];\n ids.value = currentIds;\n store.swapItems(path, a, b);\n },\n replace: (items: Item[]) => {\n ids.value = items.map(generateId);\n store.setField(\n path as unknown as BitPath<TForm>,\n items as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n clear: () => {\n ids.value = [];\n store.setField(\n path as unknown as BitPath<TForm>,\n [] as unknown as BitPathValue<TForm, BitPath<TForm>>,\n );\n },\n };\n}\n"]}
@@ -1,5 +1,6 @@
1
- import { B as BitStoreApi, i as BitValidationOptions, d as BitHistoryMetadata, e as BitPersistMetadata } from '../public-types-CtYuIAMP.cjs';
2
- import { i as BitErrors, A as BitTouched, G as DeepPartial, q as BitPath, r as BitPathValue, e as BitArrayPath, d as BitArrayItem, S as ScopeStatus, V as ValidateScopeResult } from '../bus-B3pGaiFZ.cjs';
1
+ import { f as BitStoreApi, g as BitStoreHooksApi, b as BitHistoryMetadata, c as BitPersistMetadata, h as BitValidationOptions } from '../public-types-CLIDR8aC.cjs';
2
+ import '../bus-BI29cKpD.cjs';
3
+ import { S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, J as BitTouched, h as DeepPartial, f as BitPath, g as BitPathValue, k as BitArrayPath, l as BitArrayItem } from '../types-DqeN9Kq_.cjs';
3
4
  import * as vue from 'vue';
4
5
  import { ComputedRef, Ref } from 'vue';
5
6
  import * as _vue_reactivity from '@vue/reactivity';
@@ -7,42 +8,7 @@ import * as _vue_shared from '@vue/shared';
7
8
  import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
8
9
 
9
10
  declare function provideBitStore<T extends object>(store: BitStoreApi<T>): void;
10
- declare function useBitStore<T extends object>(): BitStoreApi<T>;
11
-
12
- declare function useBitForm<T extends object>(): {
13
- meta: {
14
- isValid: vue.ComputedRef<boolean>;
15
- isDirty: vue.ComputedRef<boolean>;
16
- isSubmitting: vue.ComputedRef<boolean>;
17
- submitError: vue.Ref<Error | null, Error | null>;
18
- lastResponse: vue.Ref<unknown, unknown>;
19
- };
20
- getValues: () => T;
21
- getErrors: () => BitErrors<T>;
22
- getTouched: () => BitTouched<T>;
23
- getDirtyValues: () => Partial<T>;
24
- submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: Event) => Promise<void>;
25
- onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
26
- reset: () => void;
27
- replaceValues: (values: T) => void;
28
- hydrate: (values: DeepPartial<T>) => void;
29
- rebase: (values: T) => void;
30
- setValues: (values: T) => void;
31
- setError: (path: string, message: string | undefined) => void;
32
- setErrors: (errors: BitErrors<T>) => void;
33
- setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
34
- setField: <P extends BitPath<T, "">>(path: P, value: BitPathValue<T, P>) => void;
35
- blurField: <P extends BitPath<T, "">>(path: P) => void;
36
- validate: (options?: BitValidationOptions) => Promise<boolean>;
37
- mutations: {
38
- pushItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
39
- prependItem: <P extends BitArrayPath<T>>(path: P, value: BitArrayItem<BitPathValue<T, P>>) => void;
40
- removeItem: <P extends BitArrayPath<T>>(path: P, index: number) => void;
41
- insertItem: <P extends BitArrayPath<T>>(path: P, index: number, value: BitArrayItem<BitPathValue<T, P>>) => void;
42
- moveItem: <P extends BitArrayPath<T>>(path: P, from: number, to: number) => void;
43
- swapItems: <P extends BitArrayPath<T>>(path: P, indexA: number, indexB: number) => void;
44
- };
45
- };
11
+ declare function useBitStore<T extends object>(): BitStoreHooksApi<T>;
46
12
 
47
13
  /**
48
14
  * Metadata describing the current state of a form field (Vue reactive).
@@ -125,6 +91,33 @@ interface UseBitPersistResult {
125
91
  error: Ref<BitPersistMetadata["error"]>;
126
92
  };
127
93
  }
94
+ interface UseBitFormResult<T extends object = any> {
95
+ meta: {
96
+ isValid: ComputedRef<boolean>;
97
+ isDirty: ComputedRef<boolean>;
98
+ isSubmitting: ComputedRef<boolean>;
99
+ submitError: Ref<Error | null>;
100
+ lastResponse: Ref<unknown>;
101
+ };
102
+ getValues: () => T;
103
+ getErrors: () => BitErrors<T>;
104
+ getTouched: () => BitTouched<T>;
105
+ getDirtyValues: () => Partial<T>;
106
+ submit: (onSuccess: (values: T, dirtyValues?: Partial<T>) => void | Promise<void>) => (e?: Event) => Promise<void>;
107
+ onSubmit: (handler: (values: T, dirtyValues?: Partial<T>) => Promise<unknown>) => (e?: Event) => Promise<void>;
108
+ reset: () => void;
109
+ replaceValues: (values: T) => void;
110
+ hydrate: (values: DeepPartial<T>) => void;
111
+ rebase: (values: T) => void;
112
+ setError: (path: string, message: string | undefined) => void;
113
+ setErrors: (errors: BitErrors<T>) => void;
114
+ setServerErrors: (serverErrors: Record<string, string[] | string>) => void;
115
+ setField: <P extends BitPath<T>>(path: P, value: BitPathValue<T, P>) => void;
116
+ blurField: <P extends BitPath<T>>(path: P) => void;
117
+ validate: (options?: BitValidationOptions) => Promise<boolean>;
118
+ }
119
+
120
+ declare function useBitForm<T extends object>(): UseBitFormResult<T>;
128
121
 
129
122
  declare function useBitField<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>>(path: P): UseBitFieldVueResult<BitPathValue<TForm, P>>;
130
123