@lehnihon/bit-form 2.2.2 → 2.2.4

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 (146) 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 +7 -6
  4. package/dist/angular/index.d.ts +7 -6
  5. package/dist/angular/index.js +1 -1
  6. package/dist/angular/index.js.map +1 -1
  7. package/dist/{types-DqeN9Kq_.d.ts → bus-BQI1FIOs.d.ts} +34 -35
  8. package/dist/{types-DqeN9Kq_.d.cts → bus-a_GA51Qw.d.cts} +34 -35
  9. package/dist/chunk-4XLU5ZCX.js +2 -0
  10. package/dist/chunk-4XLU5ZCX.js.map +1 -0
  11. package/dist/chunk-66DIO2SH.js +2 -0
  12. package/dist/chunk-66DIO2SH.js.map +1 -0
  13. package/dist/chunk-7LMNIQTT.js +2 -0
  14. package/dist/chunk-7LMNIQTT.js.map +1 -0
  15. package/dist/chunk-AE4G32HS.js +2 -0
  16. package/dist/chunk-AE4G32HS.js.map +1 -0
  17. package/dist/chunk-BMHK77NL.js +2 -0
  18. package/dist/chunk-BMHK77NL.js.map +1 -0
  19. package/dist/chunk-CFFLDMLG.cjs +2 -0
  20. package/dist/chunk-CFFLDMLG.cjs.map +1 -0
  21. package/dist/chunk-EI5L5L3R.cjs +2 -0
  22. package/dist/chunk-EI5L5L3R.cjs.map +1 -0
  23. package/dist/chunk-FQLJOSF7.js +1 -0
  24. package/dist/chunk-IV32WXCF.cjs +2 -0
  25. package/dist/chunk-IV32WXCF.cjs.map +1 -0
  26. package/dist/chunk-K5NZDYAT.js +2 -0
  27. package/dist/chunk-K5NZDYAT.js.map +1 -0
  28. package/dist/chunk-KYM7JG2G.cjs +2 -0
  29. package/dist/chunk-KYM7JG2G.cjs.map +1 -0
  30. package/dist/chunk-LOYB7TTM.cjs +2 -0
  31. package/dist/chunk-LOYB7TTM.cjs.map +1 -0
  32. package/dist/chunk-MBTLLIBM.js +2 -0
  33. package/dist/chunk-MBTLLIBM.js.map +1 -0
  34. package/dist/chunk-MFSDDSVG.cjs +1 -0
  35. package/dist/chunk-MFSDDSVG.cjs.map +1 -0
  36. package/dist/chunk-MQX4YS6D.cjs +2 -0
  37. package/dist/chunk-MQX4YS6D.cjs.map +1 -0
  38. package/dist/chunk-O5UPA33R.js +2 -0
  39. package/dist/chunk-O5UPA33R.js.map +1 -0
  40. package/dist/chunk-RFFMBY7M.cjs +2 -0
  41. package/dist/chunk-RFFMBY7M.cjs.map +1 -0
  42. package/dist/chunk-YEXRRTI3.cjs +2 -0
  43. package/dist/chunk-YEXRRTI3.cjs.map +1 -0
  44. package/dist/chunk-YGAD4ZZW.js +2 -0
  45. package/dist/chunk-YGAD4ZZW.js.map +1 -0
  46. package/dist/chunk-ZO3GXKF3.cjs +2 -0
  47. package/dist/chunk-ZO3GXKF3.cjs.map +1 -0
  48. package/dist/devtools/bridge.cjs +1 -1
  49. package/dist/devtools/bridge.cjs.map +1 -1
  50. package/dist/devtools/bridge.js +1 -1
  51. package/dist/devtools/index.cjs +2 -2
  52. package/dist/devtools/index.cjs.map +1 -1
  53. package/dist/devtools/index.js +1 -1
  54. package/dist/devtools/index.js.map +1 -1
  55. package/dist/field-binding-BXw0Ku2c.d.cts +12 -0
  56. package/dist/field-binding-BXw0Ku2c.d.ts +12 -0
  57. package/dist/index.cjs +1 -1
  58. package/dist/index.cjs.map +1 -1
  59. package/dist/index.d.cts +192 -82
  60. package/dist/index.d.ts +192 -82
  61. package/dist/index.js +1 -1
  62. package/dist/mask.cjs +2 -0
  63. package/dist/mask.cjs.map +1 -0
  64. package/dist/mask.d.cts +86 -0
  65. package/dist/mask.d.ts +86 -0
  66. package/dist/mask.js +2 -0
  67. package/dist/{public-types-CLIDR8aC.d.cts → public-types-D14VY_4o.d.cts} +5 -7
  68. package/dist/{public-types-Bl94ECPb.d.ts → public-types-D3WIiMGu.d.ts} +5 -7
  69. package/dist/react/index.cjs +1 -1
  70. package/dist/react/index.cjs.map +1 -1
  71. package/dist/react/index.d.cts +8 -7
  72. package/dist/react/index.d.ts +8 -7
  73. package/dist/react/index.js +1 -1
  74. package/dist/react/index.js.map +1 -1
  75. package/dist/react-native/index.cjs +1 -1
  76. package/dist/react-native/index.d.cts +6 -5
  77. package/dist/react-native/index.d.ts +6 -5
  78. package/dist/react-native/index.js +1 -1
  79. package/dist/resolvers/index.cjs +2 -0
  80. package/dist/resolvers/index.cjs.map +1 -0
  81. package/dist/resolvers/index.d.cts +9 -0
  82. package/dist/resolvers/index.d.ts +9 -0
  83. package/dist/resolvers/index.js +2 -0
  84. package/dist/resolvers/index.js.map +1 -0
  85. package/dist/resolvers/joi.cjs +1 -1
  86. package/dist/resolvers/joi.cjs.map +1 -1
  87. package/dist/resolvers/joi.d.cts +2 -2
  88. package/dist/resolvers/joi.d.ts +2 -2
  89. package/dist/resolvers/joi.js +1 -1
  90. package/dist/resolvers/joi.js.map +1 -1
  91. package/dist/resolvers/types.cjs +2 -1
  92. package/dist/resolvers/types.cjs.map +1 -1
  93. package/dist/resolvers/types.js +1 -0
  94. package/dist/resolvers/yup.cjs +1 -1
  95. package/dist/resolvers/yup.cjs.map +1 -1
  96. package/dist/resolvers/yup.d.cts +2 -2
  97. package/dist/resolvers/yup.d.ts +2 -2
  98. package/dist/resolvers/yup.js +1 -1
  99. package/dist/resolvers/yup.js.map +1 -1
  100. package/dist/resolvers/zod.cjs +1 -1
  101. package/dist/resolvers/zod.cjs.map +1 -1
  102. package/dist/resolvers/zod.d.cts +2 -2
  103. package/dist/resolvers/zod.d.ts +2 -2
  104. package/dist/resolvers/zod.js +1 -1
  105. package/dist/resolvers/zod.js.map +1 -1
  106. package/dist/types-D8DgIUhJ.d.cts +27 -0
  107. package/dist/types-D8DgIUhJ.d.ts +27 -0
  108. package/dist/{types-C2mpfhp1.d.cts → upload-EXnJLq8k.d.cts} +1 -1
  109. package/dist/{types-C2mpfhp1.d.ts → upload-EXnJLq8k.d.ts} +1 -1
  110. package/dist/{use-bit-persist-JtinX6Vy.d.ts → use-bit-persist-CNtQ3Gaq.d.ts} +6 -6
  111. package/dist/{use-bit-persist-BgFBg8lQ.d.cts → use-bit-persist-Dt4zIl2u.d.cts} +6 -6
  112. package/dist/vue/index.cjs +1 -1
  113. package/dist/vue/index.cjs.map +1 -1
  114. package/dist/vue/index.d.cts +4 -4
  115. package/dist/vue/index.d.ts +4 -4
  116. package/dist/vue/index.js +1 -1
  117. package/dist/vue/index.js.map +1 -1
  118. package/package.json +10 -5
  119. package/dist/bus-B1my-s_o.d.ts +0 -16
  120. package/dist/bus-BI29cKpD.d.cts +0 -16
  121. package/dist/chunk-2UVV7SU4.js +0 -2
  122. package/dist/chunk-2UVV7SU4.js.map +0 -1
  123. package/dist/chunk-676WXU4S.cjs +0 -2
  124. package/dist/chunk-676WXU4S.cjs.map +0 -1
  125. package/dist/chunk-7MBRAKBL.js +0 -2
  126. package/dist/chunk-7MBRAKBL.js.map +0 -1
  127. package/dist/chunk-AD7T42HJ.js +0 -1
  128. package/dist/chunk-C4BYXZGB.cjs +0 -1
  129. package/dist/chunk-C4BYXZGB.cjs.map +0 -1
  130. package/dist/chunk-ER2DNS7T.cjs +0 -2
  131. package/dist/chunk-ER2DNS7T.cjs.map +0 -1
  132. package/dist/chunk-NWPA4F3B.cjs +0 -2
  133. package/dist/chunk-NWPA4F3B.cjs.map +0 -1
  134. package/dist/chunk-O5RRLZR7.js +0 -2
  135. package/dist/chunk-O5RRLZR7.js.map +0 -1
  136. package/dist/chunk-TRPMTJ35.js +0 -2
  137. package/dist/chunk-TRPMTJ35.js.map +0 -1
  138. package/dist/chunk-VSWCUQAF.cjs +0 -2
  139. package/dist/chunk-VSWCUQAF.cjs.map +0 -1
  140. package/dist/core/light.cjs +0 -2
  141. package/dist/core/light.cjs.map +0 -1
  142. package/dist/core/light.d.cts +0 -29
  143. package/dist/core/light.d.ts +0 -29
  144. package/dist/core/light.js +0 -2
  145. /package/dist/{chunk-AD7T42HJ.js.map → chunk-FQLJOSF7.js.map} +0 -0
  146. /package/dist/{core/light.js.map → mask.js.map} +0 -0
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React from 'react';
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';
3
+ import { e as BitStoreApi, f as BitStoreHooksApi, d as BitHistoryMetadata, a as BitValidationOptions } from './public-types-D14VY_4o.cjs';
4
+ import { f as BitPath, g as BitPathValue, j as BitPersistMetadata, S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, H as BitTouched, h as DeepPartial, k as BitArrayPath, l as BitArrayItem } from './bus-a_GA51Qw.cjs';
5
+ import { B as BitFieldInputEvent } from './field-binding-BXw0Ku2c.cjs';
6
6
 
7
7
  declare const BitFormProvider: ({ store, children, }: {
8
8
  store: BitStoreApi<any>;
@@ -28,7 +28,7 @@ interface UseBitFieldMeta {
28
28
  */
29
29
  interface UseBitFieldBindProps {
30
30
  value: string;
31
- onChange: (e: any) => void;
31
+ onChange: (e: BitFieldInputEvent) => void;
32
32
  onBlur: () => void;
33
33
  }
34
34
  /**
@@ -38,9 +38,9 @@ interface UseBitFieldBindProps {
38
38
  interface UseBitFieldResult<TForm extends object = any, P extends BitPath<TForm> = BitPath<TForm>> {
39
39
  value: BitPathValue<TForm, P>;
40
40
  displayValue: string;
41
- setValue: (val: any) => void;
41
+ setValue: (val: BitPathValue<TForm, P> | string | number | null | undefined) => void;
42
42
  setBlur: () => void;
43
- onChange: (e: any) => void;
43
+ onChange: (e: BitFieldInputEvent) => void;
44
44
  onBlur: () => void;
45
45
  props: UseBitFieldBindProps;
46
46
  meta: UseBitFieldMeta;
@@ -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 _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;
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 _chunkIV32WXCFcjs = require('../chunk-IV32WXCF.cjs');var _chunkRFFMBY7Mcjs = require('../chunk-RFFMBY7M.cjs');var _chunkLOYB7TTMcjs = require('../chunk-LOYB7TTM.cjs');require('../chunk-EI5L5L3R.cjs');var _vue = require('vue');var C=Symbol("BIT_STORE");function Y(e){_vue.provide.call(void 0, C,_chunkLOYB7TTMcjs.k.call(void 0, e))}function m(){let e=_vue.inject.call(void 0, C);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}function Q(){let e=m(),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),i=_vue.ref.call(void 0, null),o=e.subscribeSelector(a=>({isValid:a.isValid,isSubmitting:a.isSubmitting,isDirty:a.isDirty}),a=>{t.value=a});_vue.onUnmounted.call(void 0, o);let l=_chunkRFFMBY7Mcjs.a.call(void 0, e,{clearSubmissionState:()=>{s.value=null,i.value=null},setSubmissionResult:a=>{i.value=a},setSubmissionError:a=>{s.value=a}}),n=_vue.computed.call(void 0, ()=>t.value.isValid),p=_vue.computed.call(void 0, ()=>t.value.isSubmitting),f=_vue.computed.call(void 0, ()=>t.value.isDirty),c=l.onSubmit,r=l.reset;return{meta:{isValid:n,isDirty:f,isSubmitting:p,submitError:s,lastResponse:i},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:c,reset:r,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=m(),s=t.resolveMask(e),i=_chunkRFFMBY7Mcjs.c.call(void 0, t,e,s),o=_vue.shallowRef.call(void 0, t.getFieldState(e)),l=_chunkRFFMBY7Mcjs.b.call(void 0, t,e,y=>{o.value=y});_vue.onUnmounted.call(void 0, ()=>{l(),t.unregisterField&&t.unregisterField(e)});let n=_vue.computed.call(void 0, ()=>o.value.value),p=_vue.computed.call(void 0, ()=>i.displayValue(n.value)),f=_vue.computed.call(void 0, {get:()=>p.value,set:y=>{i.setValue(y)}}),c=_vue.computed.call(void 0, ()=>o.value.error),r=_vue.computed.call(void 0, ()=>o.value.touched?o.value.error:void 0),u=_vue.computed.call(void 0, ()=>o.value.touched),a=_vue.computed.call(void 0, ()=>!!(u.value&&r.value)),B=_vue.computed.call(void 0, ()=>o.value.isValidating),b=_vue.computed.call(void 0, ()=>o.value.isDirty),P=_vue.computed.call(void 0, ()=>o.value.isHidden),h=_vue.computed.call(void 0, ()=>o.value.isRequired),x=_vue.computed.call(void 0, ()=>!!c.value),d=y=>{i.setValue(y)},g=()=>i.setBlur();return{value:n,displayValue:p,modelValue:f,setValue:d,setBlur:g,onInput:y=>{d(y)},onBlur:()=>{g()},meta:{error:r,touched:u,invalid:a,isValidating:B,isDirty:b,isHidden:P,isRequired:h,hasError:x}}}function ee(e){let t=m(),s=r=>t.config.idFactory({scope:"array",path:e,index:r}),o=(()=>{let r=_chunkLOYB7TTMcjs.e.call(void 0, t.getState().values,e);return Array.isArray(r)?r:[]})(),l=_vue.ref.call(void 0, o),n=_vue.ref.call(void 0, o.map((r,u)=>s(u))),p=t.subscribePath(e,r=>{let u=Array.isArray(r)?r:[];if(l.value=[...u],u.length!==n.value.length){let a=[...n.value];if(u.length>a.length){let B=u.length-a.length,b=Array.from({length:B},(P,h)=>s(a.length+h));n.value=[...a,...b]}else n.value=a.slice(0,u.length)}});_vue.onUnmounted.call(void 0, ()=>{p(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let f=_vue.computed.call(void 0, ()=>l.value.map((r,u)=>({key:n.value[u]||`temp-${u}`,value:r,index:u}))),c=_vue.computed.call(void 0, ()=>l.value.length);return{fields:f,length:c,append:r=>{n.value.push(s(n.value.length)),t.pushItem(e,r)},prepend:r=>{n.value.unshift(s(0)),t.prependItem(e,r)},insert:(r,u)=>{n.value.splice(r,0,s(r)),t.insertItem(e,r,u)},remove:r=>{n.value.splice(r,1),t.removeItem(e,r)},move:(r,u)=>{let a=[...n.value],[B]=a.splice(r,1);a.splice(u,0,B),n.value=a,t.moveItem(e,r,u)},swap:(r,u)=>{let a=[...n.value];[a[r],a[u]]=[a[u],a[r]],n.value=a,t.swapItems(e,r,u)},replace:r=>{n.value=r.map((u,a)=>s(a)),t.setField(e,r)},clear:()=>{n.value=[],t.setField(e,[])}}}function se(){let e=m(),t=_vue.shallowRef.call(void 0, e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});_vue.onUnmounted.call(void 0, s);let i=()=>e.undo(),o=()=>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:i,redo:o}}function ae(e,t){let s=Object.keys(e),i=Object.keys(t);return s.length!==i.length?!1:s.every(o=>e[o]===t[o])}function ue(e){let t=m(),s=_vue.ref.call(void 0, t.getStepStatus(e)),i;_vue.onMounted.call(void 0, ()=>{i=t.subscribeSelector(c=>({errors:c.errors,isDirty:c.isDirty}),()=>{let c=t.getStepStatus(e);(c.hasErrors!==s.value.hasErrors||c.isDirty!==s.value.isDirty||!ae(c.errors,s.value.errors))&&(s.value=c)})}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([i, 'optionalCall', _2 => _2()])});let o=async()=>{let c=await t.validate({scope:e}),r=t.getStepErrors(e);return{valid:c,errors:r}},l=()=>t.getStepErrors(e),n=_vue.computed.call(void 0, ()=>!s.value.hasErrors),p=_vue.computed.call(void 0, ()=>s.value.isDirty),f=_vue.computed.call(void 0, ()=>s.value.errors);return{scopeName:e,status:s,errors:f,validate:o,getErrors:l,isValid:n,isDirty:p}}function de(e,t){let s=Object.keys(e),i=Object.keys(t);return s.length!==i.length?!1:s.every(o=>e[o]===t[o])}function pe(e){let t=m(),s=_vue.ref.call(void 0, 0),i=_vue.computed.call(void 0, ()=>_nullishCoalesce(e[s.value], () => (""))),o=_vue.ref.call(void 0, t.getStepStatus(i.value)),l;_vue.watch.call(void 0, i,d=>{o.value=t.getStepStatus(d)});let n=()=>{let d=i.value,g=t.getStepStatus(d);(g.hasErrors!==o.value.hasErrors||g.isDirty!==o.value.isDirty||!de(g.errors,o.value.errors))&&(o.value=g)};_vue.onMounted.call(void 0, ()=>{l=t.subscribeSelector(d=>({errors:d.errors,isDirty:d.isDirty}),n)}),_vue.onUnmounted.call(void 0, ()=>{_optionalChain([l, 'optionalCall', _3 => _3()])});let p=async()=>{let d=i.value,g=await t.validate({scope:d}),F=t.getStepErrors(d);return{valid:g,errors:F}},f=()=>t.getStepErrors(i.value),c=async()=>{let d=i.value,g=t.getScopeFields(d);if(t.hasValidationsInProgress(g))return!1;let F=await t.validate({scope:d});if(F)s.value=Math.min(s.value+1,e.length-1);else{let D=t.getStepErrors(d),y=Object.keys(D);y.length>0&&t.markFieldsTouched(y)}return F},r=()=>{s.value=Math.max(s.value-1,0)},u=d=>{s.value=Math.max(0,Math.min(d-1,e.length-1))},a=_vue.computed.call(void 0, ()=>s.value+1),B=_vue.computed.call(void 0, ()=>s.value===0),b=_vue.computed.call(void 0, ()=>s.value>=e.length-1),P=_vue.computed.call(void 0, ()=>!o.value.hasErrors),h=_vue.computed.call(void 0, ()=>o.value.isDirty),x=_vue.computed.call(void 0, ()=>o.value.errors);return{step:a,stepIndex:s,scope:i,next:c,prev:r,goTo:u,isFirst:B,isLast:b,status:o,errors:x,isValid:P,isDirty:h,validate:p,getErrors:f}}function ye(e){let t=m(),s=_chunkLOYB7TTMcjs.e.call(void 0, t.getState().values,e),i=_vue.ref.call(void 0, s),o=t.watch(e,l=>{_chunkLOYB7TTMcjs.d.call(void 0, i.value,l)||(i.value=l)});return _vue.onUnmounted.call(void 0, o),_vue.readonly.call(void 0, i)}function Se(e,t,s){let i=m(),o=U(e),l=null,n=_vue.ref.call(void 0, !1),p={setLoading:r=>{n.value=r},setError:(r,u)=>i.setError(r,u),setValue:r=>o.setValue(r),getUploadKey:()=>l,setUploadKey:r=>{l=r}},f=_chunkIV32WXCFcjs.a.call(void 0, e,t,p),c=_chunkIV32WXCFcjs.b.call(void 0, e,s,p);return{value:o.value,setValue:o.setValue,error:_vue.computed.call(void 0, ()=>o.meta.error.value),isValidating:_vue.computed.call(void 0, ()=>!!o.meta.isValidating.value||n.value),upload:f,remove:c}}function Fe(){let e=m(),t=_vue.ref.call(void 0, e.getPersistMetadata()),s=e.subscribeSelector(n=>n.persist,n=>{t.value=n});return _vue.onUnmounted.call(void 0, ()=>s()),{restore:async()=>e.restorePersisted(),save:async()=>{await e.forceSave()},clear:async()=>{await e.clearPersisted()},meta:{isSaving:_vue.computed.call(void 0, ()=>t.value.isSaving),isRestoring:_vue.computed.call(void 0, ()=>t.value.isRestoring),error:_vue.computed.call(void 0, ()=>t.value.error)}}}exports.provideBitStore = Y; exports.useBitArray = ee; exports.useBitField = U; exports.useBitForm = Q; exports.useBitHistory = se; exports.useBitPersist = Fe; exports.useBitScope = ue; exports.useBitSteps = pe; exports.useBitStore = m; exports.useBitUpload = Se; exports.useBitWatch = ye;
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","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
+ {"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","useBitArray","createId","index","initialValues","getDeepValue","values","ids","_","newValues","nextValues","currentIds","diff","newIds","i"],"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, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\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\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 const createId = (index?: number) =>\n store.config.idFactory({\n scope: \"array\",\n path: path as string,\n index,\n });\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((_, index) => createId(index)));\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 }, (_, i) =>\n createId(currentIds.length + i),\n );\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(createId(ids.value.length));\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(createId(0));\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, createId(index));\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((_, index) => createId(index));\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,11 +1,11 @@
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';
1
+ import { e as BitStoreApi, f as BitStoreHooksApi, d as BitHistoryMetadata, a as BitValidationOptions } from '../public-types-D14VY_4o.cjs';
2
+ import { j as BitPersistMetadata, S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, H as BitTouched, h as DeepPartial, f as BitPath, g as BitPathValue, k as BitArrayPath, l as BitArrayItem } from '../bus-a_GA51Qw.cjs';
4
3
  import * as vue from 'vue';
5
4
  import { ComputedRef, Ref } from 'vue';
6
5
  import * as _vue_reactivity from '@vue/reactivity';
7
6
  import * as _vue_shared from '@vue/shared';
8
- import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.cjs';
7
+ import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.cjs';
8
+ import '../types-D8DgIUhJ.cjs';
9
9
 
10
10
  declare function provideBitStore<T extends object>(store: BitStoreApi<T>): void;
11
11
  declare function useBitStore<T extends object>(): BitStoreHooksApi<T>;
@@ -1,11 +1,11 @@
1
- import { f as BitStoreApi, g as BitStoreHooksApi, b as BitHistoryMetadata, c as BitPersistMetadata, h as BitValidationOptions } from '../public-types-Bl94ECPb.js';
2
- import '../bus-B1my-s_o.js';
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_.js';
1
+ import { e as BitStoreApi, f as BitStoreHooksApi, d as BitHistoryMetadata, a as BitValidationOptions } from '../public-types-D3WIiMGu.js';
2
+ import { j as BitPersistMetadata, S as ScopeStatus, n as ValidateScopeResult, i as BitErrors, H as BitTouched, h as DeepPartial, f as BitPath, g as BitPathValue, k as BitArrayPath, l as BitArrayItem } from '../bus-BQI1FIOs.js';
4
3
  import * as vue from 'vue';
5
4
  import { ComputedRef, Ref } from 'vue';
6
5
  import * as _vue_reactivity from '@vue/reactivity';
7
6
  import * as _vue_shared from '@vue/shared';
8
- import { a as BitUploadFn, B as BitDeleteUploadFn } from '../types-C2mpfhp1.js';
7
+ import { B as BitUploadFn, a as BitDeleteUploadFn } from '../upload-EXnJLq8k.js';
8
+ import '../types-D8DgIUhJ.js';
9
9
 
10
10
  declare function provideBitStore<T extends object>(store: BitStoreApi<T>): void;
11
11
  declare function useBitStore<T extends object>(): BitStoreHooksApi<T>;
package/dist/vue/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{a as H,b as M,c as O}from"../chunk-O5RRLZR7.js";import"../chunk-AD7T42HJ.js";import{Y as j,e as A,f as F}from"../chunk-2UVV7SU4.js";import{inject as $,provide as L}from"vue";var q=Symbol("BIT_STORE");function Y(e){L(q,j(e))}function c(){let e=$(q);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as R,onUnmounted as G,shallowRef as J,ref as C}from"vue";function Q(){let e=c(),t=J({isValid:e.getState().isValid,isSubmitting:e.getState().isSubmitting,isDirty:e.getState().isDirty}),i=C(null),r=C(null),s=e.subscribeSelector(m=>({isValid:m.isValid,isSubmitting:m.isSubmitting,isDirty:m.isDirty}),m=>{t.value=m});G(s);let n=H(e,{clearSubmissionState:()=>{i.value=null,r.value=null},setSubmissionResult:m=>{r.value=m},setSubmissionError:m=>{i.value=m}}),d=R(()=>t.value.isValid),u=R(()=>t.value.isSubmitting),f=R(()=>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)}}import{computed as v,onUnmounted as X,shallowRef as Z}from"vue";function U(e){let t=c(),i=t.resolveMask(e),r=O(t,e,i),s=Z(t.getFieldState(e)),n=M(t,e,g=>{s.value=g});X(()=>{n(),t.unregisterField&&t.unregisterField(e)});let d=v(()=>s.value.value),u=v(()=>r.displayValue(d.value)),f=v({get:()=>u.value,set:g=>{r.setValue(g)}}),o=v(()=>s.value.error),a=v(()=>s.value.touched?s.value.error:void 0),l=v(()=>s.value.touched),m=v(()=>!!(l.value&&a.value)),b=v(()=>s.value.isValidating),P=v(()=>s.value.isDirty),E=v(()=>s.value.isHidden),T=v(()=>s.value.isRequired),x=v(()=>!!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}}}import{ref as K,computed as W,onUnmounted as N}from"vue";var S=()=>Math.random().toString(36).substring(2,9);function ee(e){let t=c(),r=(()=>{let o=F(t.getState().values,e);return Array.isArray(o)?o:[]})(),s=K(r),n=K(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)}});N(()=>{d(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let u=W(()=>s.value.map((o,a)=>({key:n.value[a]||`temp-${a}`,value:o,index:a}))),f=W(()=>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,[])}}}import{computed as V,onUnmounted as te,shallowRef as re}from"vue";function se(){let e=c(),t=re(e.getHistoryMetadata()),i=e.subscribe(()=>{t.value=e.getHistoryMetadata()});te(i);let r=()=>e.undo(),s=()=>e.redo();return{canUndo:V(()=>t.value.canUndo),canRedo:V(()=>t.value.canRedo),historyIndex:V(()=>t.value.historyIndex),historySize:V(()=>t.value.historySize),undo:r,redo:s}}import{ref as oe,computed as I,onMounted as ie,onUnmounted as ne}from"vue";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=oe(t.getStepStatus(e)),r;ie(()=>{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)})}),ne(()=>{r?.()});let s=async()=>{let o=await t.validate({scope:e}),a=t.getStepErrors(e);return{valid:o,errors:a}},n=()=>t.getStepErrors(e),d=I(()=>!i.value.hasErrors),u=I(()=>i.value.isDirty),f=I(()=>i.value.errors);return{scopeName:e,status:i,errors:f,validate:s,getErrors:n,isValid:d,isDirty:u}}import{ref as _,computed as B,watch as le,onMounted as ce,onUnmounted as me}from"vue";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=_(0),r=B(()=>e[i.value]??""),s=_(t.getStepStatus(r.value)),n;le(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)};ce(()=>{n=t.subscribe(d)}),me(()=>{n?.()});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=B(()=>i.value+1),b=B(()=>i.value===0),P=B(()=>i.value>=e.length-1),E=B(()=>!s.value.hasErrors),T=B(()=>s.value.isDirty),x=B(()=>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}}import{ref as ve,onUnmounted as fe,readonly as ye}from"vue";function ge(e){let t=c(),i=F(t.getState().values,e),r=ve(i),s=t.watch(e,n=>{A(r.value,n)||(r.value=n)});return fe(s),ye(r)}import{computed as z,ref as Be}from"vue";function Se(e,t,i){let r=c(),s=U(e),n=null,d=Be(!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:z(()=>s.meta.error.value),isValidating:z(()=>!!s.meta.isValidating.value||d.value),upload:u,remove:f}}import{ref as w,readonly as k}from"vue";function be(){let e=c(),t=w(!1),i=w(!1),r=w(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:k(t),isRestoring:k(i),error:k(r)}}}export{Y as provideBitStore,ee as useBitArray,U as useBitField,Q as useBitForm,se as useBitHistory,be as useBitPersist,ue as useBitScope,pe as useBitSteps,c as useBitStore,Se as useBitUpload,ge as useBitWatch};
1
+ import{a as M,b as O}from"../chunk-O5UPA33R.js";import{a as A,b as j,c as H}from"../chunk-YGAD4ZZW.js";import{d as k,e as V,k as w}from"../chunk-AE4G32HS.js";import"../chunk-7LMNIQTT.js";import{inject as L,provide as $}from"vue";var C=Symbol("BIT_STORE");function Y(e){$(C,w(e))}function m(){let e=L(C);if(!e)throw new Error("BitForm Vue hooks devem ser usados sob um provideBitStore");return e}import{computed as R,onUnmounted as G,shallowRef as J,ref as K}from"vue";function Q(){let e=m(),t=J({isValid:e.getState().isValid,isSubmitting:e.getState().isSubmitting,isDirty:e.getState().isDirty}),s=K(null),i=K(null),o=e.subscribeSelector(a=>({isValid:a.isValid,isSubmitting:a.isSubmitting,isDirty:a.isDirty}),a=>{t.value=a});G(o);let l=A(e,{clearSubmissionState:()=>{s.value=null,i.value=null},setSubmissionResult:a=>{i.value=a},setSubmissionError:a=>{s.value=a}}),n=R(()=>t.value.isValid),p=R(()=>t.value.isSubmitting),f=R(()=>t.value.isDirty),c=l.onSubmit,r=l.reset;return{meta:{isValid:n,isDirty:f,isSubmitting:p,submitError:s,lastResponse:i},getValues:l.getValues,getErrors:l.getErrors,getTouched:l.getTouched,getDirtyValues:l.getDirtyValues,submit:l.submit,onSubmit:c,reset:r,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)}}import{computed as v,onUnmounted as X,shallowRef as Z}from"vue";function U(e){let t=m(),s=t.resolveMask(e),i=H(t,e,s),o=Z(t.getFieldState(e)),l=j(t,e,y=>{o.value=y});X(()=>{l(),t.unregisterField&&t.unregisterField(e)});let n=v(()=>o.value.value),p=v(()=>i.displayValue(n.value)),f=v({get:()=>p.value,set:y=>{i.setValue(y)}}),c=v(()=>o.value.error),r=v(()=>o.value.touched?o.value.error:void 0),u=v(()=>o.value.touched),a=v(()=>!!(u.value&&r.value)),B=v(()=>o.value.isValidating),b=v(()=>o.value.isDirty),P=v(()=>o.value.isHidden),h=v(()=>o.value.isRequired),x=v(()=>!!c.value),d=y=>{i.setValue(y)},g=()=>i.setBlur();return{value:n,displayValue:p,modelValue:f,setValue:d,setBlur:g,onInput:y=>{d(y)},onBlur:()=>{g()},meta:{error:r,touched:u,invalid:a,isValidating:B,isDirty:b,isHidden:P,isRequired:h,hasError:x}}}import{ref as _,computed as q,onUnmounted as N}from"vue";function ee(e){let t=m(),s=r=>t.config.idFactory({scope:"array",path:e,index:r}),o=(()=>{let r=V(t.getState().values,e);return Array.isArray(r)?r:[]})(),l=_(o),n=_(o.map((r,u)=>s(u))),p=t.subscribePath(e,r=>{let u=Array.isArray(r)?r:[];if(l.value=[...u],u.length!==n.value.length){let a=[...n.value];if(u.length>a.length){let B=u.length-a.length,b=Array.from({length:B},(P,h)=>s(a.length+h));n.value=[...a,...b]}else n.value=a.slice(0,u.length)}});N(()=>{p(),t.unregisterPrefix&&t.unregisterPrefix(`${e}.`)});let f=q(()=>l.value.map((r,u)=>({key:n.value[u]||`temp-${u}`,value:r,index:u}))),c=q(()=>l.value.length);return{fields:f,length:c,append:r=>{n.value.push(s(n.value.length)),t.pushItem(e,r)},prepend:r=>{n.value.unshift(s(0)),t.prependItem(e,r)},insert:(r,u)=>{n.value.splice(r,0,s(r)),t.insertItem(e,r,u)},remove:r=>{n.value.splice(r,1),t.removeItem(e,r)},move:(r,u)=>{let a=[...n.value],[B]=a.splice(r,1);a.splice(u,0,B),n.value=a,t.moveItem(e,r,u)},swap:(r,u)=>{let a=[...n.value];[a[r],a[u]]=[a[u],a[r]],n.value=a,t.swapItems(e,r,u)},replace:r=>{n.value=r.map((u,a)=>s(a)),t.setField(e,r)},clear:()=>{n.value=[],t.setField(e,[])}}}import{computed as T,onUnmounted as te,shallowRef as re}from"vue";function se(){let e=m(),t=re(e.getHistoryMetadata()),s=e.subscribe(()=>{t.value=e.getHistoryMetadata()});te(s);let i=()=>e.undo(),o=()=>e.redo();return{canUndo:T(()=>t.value.canUndo),canRedo:T(()=>t.value.canRedo),historyIndex:T(()=>t.value.historyIndex),historySize:T(()=>t.value.historySize),undo:i,redo:o}}import{ref as oe,computed as E,onMounted as ie,onUnmounted as ne}from"vue";function ae(e,t){let s=Object.keys(e),i=Object.keys(t);return s.length!==i.length?!1:s.every(o=>e[o]===t[o])}function ue(e){let t=m(),s=oe(t.getStepStatus(e)),i;ie(()=>{i=t.subscribeSelector(c=>({errors:c.errors,isDirty:c.isDirty}),()=>{let c=t.getStepStatus(e);(c.hasErrors!==s.value.hasErrors||c.isDirty!==s.value.isDirty||!ae(c.errors,s.value.errors))&&(s.value=c)})}),ne(()=>{i?.()});let o=async()=>{let c=await t.validate({scope:e}),r=t.getStepErrors(e);return{valid:c,errors:r}},l=()=>t.getStepErrors(e),n=E(()=>!s.value.hasErrors),p=E(()=>s.value.isDirty),f=E(()=>s.value.errors);return{scopeName:e,status:s,errors:f,validate:o,getErrors:l,isValid:n,isDirty:p}}import{ref as W,computed as S,watch as le,onMounted as ce,onUnmounted as me}from"vue";function de(e,t){let s=Object.keys(e),i=Object.keys(t);return s.length!==i.length?!1:s.every(o=>e[o]===t[o])}function pe(e){let t=m(),s=W(0),i=S(()=>e[s.value]??""),o=W(t.getStepStatus(i.value)),l;le(i,d=>{o.value=t.getStepStatus(d)});let n=()=>{let d=i.value,g=t.getStepStatus(d);(g.hasErrors!==o.value.hasErrors||g.isDirty!==o.value.isDirty||!de(g.errors,o.value.errors))&&(o.value=g)};ce(()=>{l=t.subscribeSelector(d=>({errors:d.errors,isDirty:d.isDirty}),n)}),me(()=>{l?.()});let p=async()=>{let d=i.value,g=await t.validate({scope:d}),F=t.getStepErrors(d);return{valid:g,errors:F}},f=()=>t.getStepErrors(i.value),c=async()=>{let d=i.value,g=t.getScopeFields(d);if(t.hasValidationsInProgress(g))return!1;let F=await t.validate({scope:d});if(F)s.value=Math.min(s.value+1,e.length-1);else{let D=t.getStepErrors(d),y=Object.keys(D);y.length>0&&t.markFieldsTouched(y)}return F},r=()=>{s.value=Math.max(s.value-1,0)},u=d=>{s.value=Math.max(0,Math.min(d-1,e.length-1))},a=S(()=>s.value+1),B=S(()=>s.value===0),b=S(()=>s.value>=e.length-1),P=S(()=>!o.value.hasErrors),h=S(()=>o.value.isDirty),x=S(()=>o.value.errors);return{step:a,stepIndex:s,scope:i,next:c,prev:r,goTo:u,isFirst:B,isLast:b,status:o,errors:x,isValid:P,isDirty:h,validate:p,getErrors:f}}import{ref as ve,onUnmounted as fe,readonly as ge}from"vue";function ye(e){let t=m(),s=V(t.getState().values,e),i=ve(s),o=t.watch(e,l=>{k(i.value,l)||(i.value=l)});return fe(o),ge(i)}import{computed as z,ref as Be}from"vue";function Se(e,t,s){let i=m(),o=U(e),l=null,n=Be(!1),p={setLoading:r=>{n.value=r},setError:(r,u)=>i.setError(r,u),setValue:r=>o.setValue(r),getUploadKey:()=>l,setUploadKey:r=>{l=r}},f=M(e,t,p),c=O(e,s,p);return{value:o.value,setValue:o.setValue,error:z(()=>o.meta.error.value),isValidating:z(()=>!!o.meta.isValidating.value||n.value),upload:f,remove:c}}import{computed as I,onUnmounted as be,ref as he}from"vue";function Fe(){let e=m(),t=he(e.getPersistMetadata()),s=e.subscribeSelector(n=>n.persist,n=>{t.value=n});return be(()=>s()),{restore:async()=>e.restorePersisted(),save:async()=>{await e.forceSave()},clear:async()=>{await e.clearPersisted()},meta:{isSaving:I(()=>t.value.isSaving),isRestoring:I(()=>t.value.isRestoring),error:I(()=>t.value.error)}}}export{Y as provideBitStore,ee as useBitArray,U as useBitField,Q as useBitForm,se as useBitHistory,Fe as useBitPersist,ue as useBitScope,pe as useBitSteps,m as useBitStore,Se as useBitUpload,ye as useBitWatch};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts","../../src/vue/use-bit-history.ts","../../src/vue/use-bit-scope.ts","../../src/vue/use-bit-steps.ts","../../src/vue/use-bit-watch.ts","../../src/vue/use-bit-upload.ts","../../src/vue/use-bit-persist.ts"],"sourcesContent":["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","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n\n const meta = shallowRef(store.getHistoryMetadata());\n\n const unsubscribe = store.subscribe(() => {\n meta.value = store.getHistoryMetadata();\n });\n\n onUnmounted(unsubscribe);\n\n const undo = () => store.undo();\n const redo = () => store.redo();\n\n return {\n canUndo: computed(() => meta.value.canUndo),\n canRedo: computed(() => meta.value.canRedo),\n historyIndex: computed(() => meta.value.historyIndex),\n historySize: computed(() => meta.value.historySize),\n undo,\n redo,\n };\n}\n","import { ref, computed, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n const status = ref<ScopeStatus>(store.getStepStatus(scopeName));\n let unsubscribe: () => void;\n\n onMounted(() => {\n unsubscribe = store.subscribe(() => {\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n });\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scopeName);\n\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n };\n}\n","import { ref, computed, watch, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const stepIndex = ref(0);\n\n const scope = computed(() => scopeNames[stepIndex.value] ?? \"\");\n const status = ref<ScopeStatus>(store.getStepStatus(scope.value));\n let unsubscribe: () => void;\n\n watch(scope, (newScope) => {\n status.value = store.getStepStatus(newScope);\n });\n\n const updateStatus = () => {\n const scopeName = scope.value;\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n };\n\n onMounted(() => {\n unsubscribe = store.subscribe(updateStatus);\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = scope.value;\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scope.value);\n\n const next = async (): Promise<boolean> => {\n const scopeName = scope.value;\n\n const scopeFields = store.getScopeFields(scopeName);\n if (store.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.validate({ scope: scopeName });\n if (valid) {\n stepIndex.value = Math.min(stepIndex.value + 1, scopeNames.length - 1);\n } else {\n const errors = store.getStepErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n };\n\n const prev = () => {\n stepIndex.value = Math.max(stepIndex.value - 1, 0);\n };\n\n const goTo = (targetStep: number) => {\n stepIndex.value = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n };\n\n const step = computed(() => stepIndex.value + 1);\n const isFirst = computed(() => stepIndex.value === 0);\n const isLast = computed(() => stepIndex.value >= scopeNames.length - 1);\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n step,\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n errors,\n isValid,\n isDirty,\n validate,\n getErrors,\n };\n}\n","import { ref, onUnmounted, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n deepEqual,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const initialValue = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n const value = ref<BitPathValue<TForm, P>>(initialValue);\n\n const unsubscribe = store.watch(path, (newValue) => {\n if (!deepEqual(value.value, newValue)) {\n value.value = newValue as BitPathValue<TForm, P>;\n }\n });\n\n onUnmounted(unsubscribe);\n\n return readonly(value);\n}\n","/**\n * Vue Composition API for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, ComputedRef, ref } from \"vue\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n let uploadKey: string | null = null;\n const isUploading = ref(false);\n\n const upload = async (file: File | null | undefined) => {\n if (!file) return;\n\n isUploading.value = true;\n store.setError(fieldPath, undefined);\n\n try {\n const result = await uploadFn(file);\n\n field.setValue(result.url);\n uploadKey = result.key;\n store.setError(fieldPath, undefined);\n } catch (error) {\n const message = error instanceof Error ? error.message : \"Upload failed\";\n store.setError(fieldPath, message);\n } finally {\n isUploading.value = false;\n }\n };\n\n const remove = async () => {\n if (uploadKey && deleteFile) {\n try {\n await deleteFile(uploadKey);\n } catch (error) {\n const message =\n error instanceof Error ? error.message : \"Delete failed\";\n store.setError(fieldPath, message);\n return;\n }\n }\n\n field.setValue(null);\n uploadKey = null;\n store.setError(fieldPath, undefined);\n };\n\n return {\n value: field.value as ComputedRef<string | File | null>,\n setValue: field.setValue,\n error: computed(() => field.meta.error.value),\n isValidating: computed(\n () => !!field.meta.isValidating.value || isUploading.value,\n ),\n upload,\n remove,\n };\n}\n","import { ref, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitPersistResult } from \"./types\";\n\nexport function useBitPersist<T extends object = any>(): UseBitPersistResult {\n const store = useBitStore<T>();\n const isSaving = ref(false);\n const isRestoring = ref(false);\n const error = ref<Error | null>(null);\n\n const restore = async (): Promise<boolean> => {\n isRestoring.value = true;\n error.value = null;\n\n try {\n return await store.restorePersisted();\n } catch (err) {\n error.value = err instanceof Error ? err : new Error(String(err));\n return false;\n } finally {\n isRestoring.value = false;\n }\n };\n\n const save = async (): Promise<void> => {\n isSaving.value = true;\n error.value = null;\n\n try {\n await store.forceSave();\n } catch (err) {\n error.value = err instanceof Error ? err : new Error(String(err));\n } finally {\n isSaving.value = false;\n }\n };\n\n const clear = async (): Promise<void> => {\n error.value = null;\n\n try {\n await store.clearPersisted();\n } catch (err) {\n error.value = err instanceof Error ? err : new Error(String(err));\n }\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: readonly(isSaving),\n isRestoring: readonly(isRestoring),\n error: readonly(error),\n },\n };\n}\n"],"mappings":"2IAAA,OAAS,UAAAA,EAAQ,WAAAC,MAA6B,MAMvC,IAAMC,EACX,OAAO,WAAW,EAEb,SAASC,EAAkCC,EAAuB,CACvEC,EAAQH,EAAeI,EAAwBF,CAAK,CAAC,CACvD,CAEO,SAASG,GAAgC,CAC9C,IAAMH,EAAQI,EAAON,CAAa,EAClC,GAAI,CAACE,EACH,MAAM,IAAI,MACR,2DACF,EACF,OAAOA,CACT,CCpBA,OAAS,YAAAK,EAAU,eAAAC,EAAa,cAAAC,EAAY,OAAAC,MAAW,MAKhD,SAASC,GAAoD,CAClE,IAAMC,EAAQC,EAAe,EACvBC,EAAQC,EAAW,CACvB,QAASH,EAAM,SAAS,EAAE,QAC1B,aAAcA,EAAM,SAAS,EAAE,aAC/B,QAASA,EAAM,SAAS,EAAE,OAC5B,CAAC,EACKI,EAAcC,EAAkB,IAAI,EACpCC,EAAeD,EAAa,IAAI,EAEhCE,EAAcP,EAAM,kBACvBQ,IAAc,CACb,QAASA,EAAS,QAClB,aAAcA,EAAS,aACvB,QAASA,EAAS,OACpB,GACCC,GAAc,CACbP,EAAM,MAAQO,CAChB,CACF,EAEAC,EAAYH,CAAW,EAEvB,IAAMI,EAAaC,EAAqBZ,EAAO,CAC7C,qBAAsB,IAAM,CAC1BI,EAAY,MAAQ,KACpBE,EAAa,MAAQ,IACvB,EACA,oBAAsBO,GAAW,CAC/BP,EAAa,MAAQO,CACvB,EACA,mBAAqBC,GAAU,CAC7BV,EAAY,MAAQU,CACtB,CACF,CAAC,EAEKC,EAAUC,EAAS,IAAMd,EAAM,MAAM,OAAO,EAC5Ce,EAAeD,EAAS,IAAMd,EAAM,MAAM,YAAY,EACtDgB,EAAUF,EAAS,IAAMd,EAAM,MAAM,OAAO,EAE5CiB,EAAWR,EAAW,SACtBS,EAAQT,EAAW,MAUzB,MAAO,CAEL,KAVW,CACX,QAAAI,EACA,QAAAG,EACA,aAAAD,EACA,YAAAb,EACA,aAAAE,CACF,EAME,UAAWK,EAAW,UACtB,UAAWA,EAAW,UACtB,WAAYA,EAAW,WACvB,eAAgBA,EAAW,eAE3B,OAAQA,EAAW,OACnB,SAAAQ,EACA,MAAAC,EACA,cAAepB,EAAM,cAAc,KAAKA,CAAK,EAC7C,QAASA,EAAM,QAAQ,KAAKA,CAAK,EACjC,OAAQA,EAAM,OAAO,KAAKA,CAAK,EAC/B,SAAUA,EAAM,SAAS,KAAKA,CAAK,EACnC,UAAWA,EAAM,UAAU,KAAKA,CAAK,EACrC,gBAAiBA,EAAM,gBAAgB,KAAKA,CAAK,EACjD,SAAUA,EAAM,SAAS,KAAKA,CAAK,EACnC,UAAWA,EAAM,UAAU,KAAKA,CAAK,EACrC,SAAUA,EAAM,SAAS,KAAKA,CAAK,CACrC,CACF,CC9EA,OAAS,YAAAqB,EAAU,eAAAC,EAAa,cAAAC,MAAkB,MAS3C,SAASC,EAGdC,EAAuD,CACvD,IAAMC,EAAQC,EAAmB,EAE3BC,EAAeF,EAAM,YAAYD,CAAI,EACrCI,EAAkBC,EACtBJ,EACAD,EACAG,CACF,EAEMG,EAAQC,EAAWN,EAAM,cAAcD,CAAI,CAAC,EAE5CQ,EAAcC,EAAoBR,EAAOD,EAAOU,GAAc,CAClEJ,EAAM,MAAQI,CAChB,CAAC,EAEDC,EAAY,IAAM,CAChBH,EAAY,EACRP,EAAM,iBACRA,EAAM,gBAAgBD,CAAI,CAE9B,CAAC,EAED,IAAMY,EAAWC,EAAS,IAAMP,EAAM,MAAM,KAA+B,EAErEQ,EAAeD,EAAS,IAC5BT,EAAgB,aAAaQ,EAAS,KAAK,CAC7C,EAEMG,EAAaF,EAAS,CAC1B,IAAK,IAAMC,EAAa,MACxB,IAAME,GAAgB,CACpBZ,EAAgB,SAASY,CAAG,CAC9B,CACF,CAAC,EAEKC,EAAWJ,EAAS,IAAMP,EAAM,MAAM,KAAK,EAC3CY,EAAQL,EAAS,IACrBP,EAAM,MAAM,QAAUA,EAAM,MAAM,MAAQ,MAC5C,EACMa,EAAUN,EAAS,IAAMP,EAAM,MAAM,OAAO,EAC5Cc,EAAUP,EAAS,IAAM,CAAC,EAAEM,EAAQ,OAASD,EAAM,MAAM,EAEzDG,EAAeR,EAAS,IAAMP,EAAM,MAAM,YAAY,EAEtDgB,EAAUT,EAAS,IAAMP,EAAM,MAAM,OAAO,EAE5CiB,EAAWV,EAAS,IAAMP,EAAM,MAAM,QAAQ,EAE9CkB,EAAaX,EAAS,IAAMP,EAAM,MAAM,UAAU,EAElDmB,EAAWZ,EAAS,IAAM,CAAC,CAACI,EAAS,KAAK,EAE1CS,EACJV,GACG,CACHZ,EAAgB,SAASY,CAAG,CAC9B,EAEMW,EAAU,IAAMvB,EAAgB,QAAQ,EAY9C,MAAO,CAEL,MAAOQ,EACP,aAAAE,EACA,WAAAC,EACA,SAAAW,EACA,QAAAC,EACA,QAhBAX,GACG,CACHU,EAASV,CAAG,CACd,EAcE,OAZa,IAAM,CACnBW,EAAQ,CACV,EAYE,KAAM,CACJ,MAAAT,EACA,QAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,SAAAC,CACF,CACF,CACF,CCxGA,OAAS,OAAAG,EAAK,YAAAC,EAAU,eAAAC,MAAmB,MAU3C,IAAMC,EAAa,IAAM,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAG,CAAC,EAE3D,SAASC,GAGdC,EAAS,CACT,IAAMC,EAAQC,EAAmB,EAW3BC,GAPc,IAAc,CAChC,IAAMC,EAAMC,EAAaJ,EAAM,SAAS,EAAE,OAAQD,CAAc,EAGhE,OAAO,MAAM,QAAQI,CAAG,EAAKA,EAAiB,CAAC,CACjD,GAEkC,EAC5BE,EAASC,EAAYJ,CAAa,EAClCK,EAAMD,EAAcJ,EAAc,IAAIL,CAAU,CAAC,EAEjDW,EAAcR,EAAM,cAAcD,EAAOU,GAAc,CAC3D,IAAMC,EAAc,MAAM,QAAQD,CAAS,EAAIA,EAAY,CAAC,EAI5D,GAFAJ,EAAO,MAAQ,CAAC,GAAGK,CAAU,EAEzBA,EAAW,SAAWH,EAAI,MAAM,OAAQ,CAC1C,IAAMI,EAAa,CAAC,GAAGJ,EAAI,KAAK,EAChC,GAAIG,EAAW,OAASC,EAAW,OAAQ,CACzC,IAAMC,EAAOF,EAAW,OAASC,EAAW,OACtCE,EAAS,MAAM,KAAK,CAAE,OAAQD,CAAK,EAAGf,CAAU,EACtDU,EAAI,MAAQ,CAAC,GAAGI,EAAY,GAAGE,CAAM,CACvC,MACEN,EAAI,MAAQI,EAAW,MAAM,EAAGD,EAAW,MAAM,CAErD,CACF,CAAC,EAEDI,EAAY,IAAM,CAChBN,EAAY,EACRR,EAAM,kBACRA,EAAM,iBAAiB,GAAGD,CAAc,GAAG,CAE/C,CAAC,EAED,IAAMgB,EAASC,EAAS,IACtBX,EAAO,MAAM,IAAI,CAACY,EAAGC,KAAO,CAC1B,IAAKX,EAAI,MAAMW,CAAC,GAAK,QAAQA,CAAC,GAC9B,MAAOD,EACP,MAAOC,CACT,EAAE,CACJ,EAEMC,EAASH,EAAS,IAAMX,EAAO,MAAM,MAAM,EAEjD,MAAO,CACL,OAAAU,EACA,OAAAI,EACA,OAAShB,GAAc,CACrBI,EAAI,MAAM,KAAKV,EAAW,CAAC,EAC3BG,EAAM,SAASD,EAAMI,CAAG,CAC1B,EACA,QAAUA,GAAc,CACtBI,EAAI,MAAM,QAAQV,EAAW,CAAC,EAC9BG,EAAM,YAAYD,EAAMI,CAAG,CAC7B,EACA,OAAQ,CAACiB,EAAejB,IAAc,CACpCI,EAAI,MAAM,OAAOa,EAAO,EAAGvB,EAAW,CAAC,EACvCG,EAAM,WAAWD,EAAMqB,EAAOjB,CAAG,CACnC,EACA,OAASiB,GAAkB,CACzBb,EAAI,MAAM,OAAOa,EAAO,CAAC,EACzBpB,EAAM,WAAWD,EAAMqB,CAAK,CAC9B,EACA,KAAM,CAACC,EAAcC,IAAe,CAClC,IAAMX,EAAa,CAAC,GAAGJ,EAAI,KAAK,EAC1B,CAACgB,CAAE,EAAIZ,EAAW,OAAOU,EAAM,CAAC,EACtCV,EAAW,OAAOW,EAAI,EAAGC,CAAE,EAC3BhB,EAAI,MAAQI,EACZX,EAAM,SAASD,EAAMsB,EAAMC,CAAE,CAC/B,EACA,KAAM,CAACE,EAAWC,IAAc,CAC9B,IAAMd,EAAa,CAAC,GAAGJ,EAAI,KAAK,EAChC,CAACI,EAAWa,CAAC,EAAGb,EAAWc,CAAC,CAAC,EAAI,CAACd,EAAWc,CAAC,EAAGd,EAAWa,CAAC,CAAC,EAC9DjB,EAAI,MAAQI,EACZX,EAAM,UAAUD,EAAMyB,EAAGC,CAAC,CAC5B,EACA,QAAUC,GAAkB,CAC1BnB,EAAI,MAAQmB,EAAM,IAAI7B,CAAU,EAChCG,EAAM,SACJD,EACA2B,CACF,CACF,EACA,MAAO,IAAM,CACXnB,EAAI,MAAQ,CAAC,EACbP,EAAM,SACJD,EACA,CAAC,CACH,CACF,CACF,CACF,CChHA,OAAS,YAAA4B,EAAU,eAAAC,GAAa,cAAAC,OAAkB,MAI3C,SAASC,IAA6D,CAC3E,IAAMC,EAAQC,EAAe,EAEvBC,EAAOC,GAAWH,EAAM,mBAAmB,CAAC,EAE5CI,EAAcJ,EAAM,UAAU,IAAM,CACxCE,EAAK,MAAQF,EAAM,mBAAmB,CACxC,CAAC,EAEDK,GAAYD,CAAW,EAEvB,IAAME,EAAO,IAAMN,EAAM,KAAK,EACxBO,EAAO,IAAMP,EAAM,KAAK,EAE9B,MAAO,CACL,QAASQ,EAAS,IAAMN,EAAK,MAAM,OAAO,EAC1C,QAASM,EAAS,IAAMN,EAAK,MAAM,OAAO,EAC1C,aAAcM,EAAS,IAAMN,EAAK,MAAM,YAAY,EACpD,YAAaM,EAAS,IAAMN,EAAK,MAAM,WAAW,EAClD,KAAAI,EACA,KAAAC,CACF,CACF,CC1BA,OAAS,OAAAE,GAAK,YAAAC,EAAU,aAAAC,GAAW,eAAAC,OAAmB,MAMtD,SAASC,GACPC,EACAC,EACS,CACT,IAAMC,EAAQ,OAAO,KAAKF,CAAC,EACrBG,EAAQ,OAAO,KAAKF,CAAC,EAC3B,OAAIC,EAAM,SAAWC,EAAM,OAAe,GACnCD,EAAM,MAAOE,GAAMJ,EAAEI,CAAC,IAAMH,EAAEG,CAAC,CAAC,CACzC,CAEO,SAASC,GAAYC,EAAmB,CAC7C,IAAMC,EAAQC,EAAY,EACpBC,EAASC,GAAiBH,EAAM,cAAcD,CAAS,CAAC,EAC1DK,EAEJC,GAAU,IAAM,CACdD,EAAcJ,EAAM,UAAU,IAAM,CAClC,IAAMM,EAAYN,EAAM,cAAcD,CAAS,GAE7CO,EAAU,YAAcJ,EAAO,MAAM,WACrCI,EAAU,UAAYJ,EAAO,MAAM,SACnC,CAACV,GAAYc,EAAU,OAAQJ,EAAO,MAAM,MAAM,KAElDA,EAAO,MAAQI,EAEnB,CAAC,CACH,CAAC,EAEDC,GAAY,IAAM,CAChBH,IAAc,CAChB,CAAC,EAED,IAAMI,EAAW,SAA0C,CACzD,IAAMC,EAAQ,MAAMT,EAAM,SAAS,CAAE,MAAOD,CAAU,CAAC,EACjDW,EAASV,EAAM,cAAcD,CAAS,EAC5C,MAAO,CAAE,MAAAU,EAAO,OAAAC,CAAO,CACzB,EAEMC,EAAY,IAAMX,EAAM,cAAcD,CAAS,EAE/Ca,EAAUC,EAAS,IAAM,CAACX,EAAO,MAAM,SAAS,EAChDY,EAAUD,EAAS,IAAMX,EAAO,MAAM,OAAO,EAC7CQ,EAASG,EAAS,IAAMX,EAAO,MAAM,MAAM,EAEjD,MAAO,CACL,UAAAH,EACA,OAAAG,EACA,OAAAQ,EACA,SAAAF,EACA,UAAAG,EACA,QAAAC,EACA,QAAAE,CACF,CACF,CC3DA,OAAS,OAAAC,EAAK,YAAAC,EAAU,SAAAC,GAAO,aAAAC,GAAW,eAAAC,OAAmB,MAK7D,SAASC,GACPC,EACAC,EACS,CACT,IAAMC,EAAQ,OAAO,KAAKF,CAAC,EACrBG,EAAQ,OAAO,KAAKF,CAAC,EAC3B,OAAIC,EAAM,SAAWC,EAAM,OAAe,GACnCD,EAAM,MAAOE,GAAMJ,EAAEI,CAAC,IAAMH,EAAEG,CAAC,CAAC,CACzC,CAEO,SAASC,GAAYC,EAAyC,CACnE,IAAMC,EAAQC,EAAY,EACpBC,EAAYC,EAAI,CAAC,EAEjBC,EAAQC,EAAS,IAAMN,EAAWG,EAAU,KAAK,GAAK,EAAE,EACxDI,EAASH,EAAiBH,EAAM,cAAcI,EAAM,KAAK,CAAC,EAC5DG,EAEJC,GAAMJ,EAAQK,GAAa,CACzBH,EAAO,MAAQN,EAAM,cAAcS,CAAQ,CAC7C,CAAC,EAED,IAAMC,EAAe,IAAM,CACzB,IAAMC,EAAYP,EAAM,MAClBQ,EAAYZ,EAAM,cAAcW,CAAS,GAE7CC,EAAU,YAAcN,EAAO,MAAM,WACrCM,EAAU,UAAYN,EAAO,MAAM,SACnC,CAACd,GAAYoB,EAAU,OAAQN,EAAO,MAAM,MAAM,KAElDA,EAAO,MAAQM,EAEnB,EAEAC,GAAU,IAAM,CACdN,EAAcP,EAAM,UAAUU,CAAY,CAC5C,CAAC,EAEDI,GAAY,IAAM,CAChBP,IAAc,CAChB,CAAC,EAED,IAAMQ,EAAW,SAA0C,CACzD,IAAMJ,EAAYP,EAAM,MAClBY,EAAQ,MAAMhB,EAAM,SAAS,CAAE,MAAOW,CAAU,CAAC,EACjDM,EAASjB,EAAM,cAAcW,CAAS,EAC5C,MAAO,CAAE,MAAAK,EAAO,OAAAC,CAAO,CACzB,EAEMC,EAAY,IAAMlB,EAAM,cAAcI,EAAM,KAAK,EAEjDe,EAAO,SAA8B,CACzC,IAAMR,EAAYP,EAAM,MAElBgB,EAAcpB,EAAM,eAAeW,CAAS,EAClD,GAAIX,EAAM,yBAAyBoB,CAAW,EAC5C,MAAO,GAGT,IAAMJ,EAAQ,MAAMhB,EAAM,SAAS,CAAE,MAAOW,CAAU,CAAC,EACvD,GAAIK,EACFd,EAAU,MAAQ,KAAK,IAAIA,EAAU,MAAQ,EAAGH,EAAW,OAAS,CAAC,MAChE,CACL,IAAMkB,EAASjB,EAAM,cAAcW,CAAS,EACtCU,EAAkB,OAAO,KAAKJ,CAAM,EACtCI,EAAgB,OAAS,GAC3BrB,EAAM,kBAAkBqB,CAAe,CAE3C,CACA,OAAOL,CACT,EAEMM,EAAO,IAAM,CACjBpB,EAAU,MAAQ,KAAK,IAAIA,EAAU,MAAQ,EAAG,CAAC,CACnD,EAEMqB,EAAQC,GAAuB,CACnCtB,EAAU,MAAQ,KAAK,IACrB,EACA,KAAK,IAAIsB,EAAa,EAAGzB,EAAW,OAAS,CAAC,CAChD,CACF,EAEM0B,EAAOpB,EAAS,IAAMH,EAAU,MAAQ,CAAC,EACzCwB,EAAUrB,EAAS,IAAMH,EAAU,QAAU,CAAC,EAC9CyB,EAAStB,EAAS,IAAMH,EAAU,OAASH,EAAW,OAAS,CAAC,EAChE6B,EAAUvB,EAAS,IAAM,CAACC,EAAO,MAAM,SAAS,EAChDuB,EAAUxB,EAAS,IAAMC,EAAO,MAAM,OAAO,EAC7CW,EAASZ,EAAS,IAAMC,EAAO,MAAM,MAAM,EAEjD,MAAO,CACL,KAAAmB,EACA,UAAAvB,EACA,MAAAE,EACA,KAAAe,EACA,KAAAG,EACA,KAAAC,EACA,QAAAG,EACA,OAAAC,EACA,OAAArB,EACA,OAAAW,EACA,QAAAW,EACA,QAAAC,EACA,SAAAd,EACA,UAAAG,CACF,CACF,CC/GA,OAAS,OAAAY,GAAK,eAAAC,GAAa,YAAAC,OAAgB,MASpC,SAASC,GAGdC,EAAS,CACT,IAAMC,EAAQC,EAAmB,EAC3BC,EAAeC,EACnBH,EAAM,SAAS,EAAE,OACjBD,CACF,EACMK,EAAQC,GAA4BH,CAAY,EAEhDI,EAAcN,EAAM,MAAMD,EAAOQ,GAAa,CAC7CC,EAAUJ,EAAM,MAAOG,CAAQ,IAClCH,EAAM,MAAQG,EAElB,CAAC,EAED,OAAAE,GAAYH,CAAW,EAEhBI,GAASN,CAAK,CACvB,CCvBA,OAAS,YAAAO,EAAuB,OAAAC,OAAW,MAMpC,SAASC,GACdC,EACAC,EACAC,EACoB,CACpB,IAAMC,EAAQC,EAAiB,EACzBC,EAAQC,EAAYN,CAAS,EAC/BO,EAA2B,KACzBC,EAAcC,GAAI,EAAK,EAEvBC,EAAS,MAAOC,GAAkC,CACtD,GAAKA,EAEL,CAAAH,EAAY,MAAQ,GACpBL,EAAM,SAASH,EAAW,MAAS,EAEnC,GAAI,CACF,IAAMY,EAAS,MAAMX,EAASU,CAAI,EAElCN,EAAM,SAASO,EAAO,GAAG,EACzBL,EAAYK,EAAO,IACnBT,EAAM,SAASH,EAAW,MAAS,CACrC,OAASa,EAAO,CACd,IAAMC,EAAUD,aAAiB,MAAQA,EAAM,QAAU,gBACzDV,EAAM,SAASH,EAAWc,CAAO,CACnC,QAAE,CACAN,EAAY,MAAQ,EACtB,EACF,EAEMO,EAAS,SAAY,CACzB,GAAIR,GAAaL,EACf,GAAI,CACF,MAAMA,EAAWK,CAAS,CAC5B,OAASM,EAAO,CACd,IAAMC,EACJD,aAAiB,MAAQA,EAAM,QAAU,gBAC3CV,EAAM,SAASH,EAAWc,CAAO,EACjC,MACF,CAGFT,EAAM,SAAS,IAAI,EACnBE,EAAY,KACZJ,EAAM,SAASH,EAAW,MAAS,CACrC,EAEA,MAAO,CACL,MAAOK,EAAM,MACb,SAAUA,EAAM,SAChB,MAAOW,EAAS,IAAMX,EAAM,KAAK,MAAM,KAAK,EAC5C,aAAcW,EACZ,IAAM,CAAC,CAACX,EAAM,KAAK,aAAa,OAASG,EAAY,KACvD,EACA,OAAAE,EACA,OAAAK,CACF,CACF,CCrEA,OAAS,OAAAE,EAAK,YAAAC,MAAgB,MAIvB,SAASC,IAA6D,CAC3E,IAAMC,EAAQC,EAAe,EACvBC,EAAWC,EAAI,EAAK,EACpBC,EAAcD,EAAI,EAAK,EACvBE,EAAQF,EAAkB,IAAI,EAuCpC,MAAO,CACL,QAtCc,SAA8B,CAC5CC,EAAY,MAAQ,GACpBC,EAAM,MAAQ,KAEd,GAAI,CACF,OAAO,MAAML,EAAM,iBAAiB,CACtC,OAASM,EAAK,CACZ,OAAAD,EAAM,MAAQC,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,EACzD,EACT,QAAE,CACAF,EAAY,MAAQ,EACtB,CACF,EA2BE,KAzBW,SAA2B,CACtCF,EAAS,MAAQ,GACjBG,EAAM,MAAQ,KAEd,GAAI,CACF,MAAML,EAAM,UAAU,CACxB,OAASM,EAAK,CACZD,EAAM,MAAQC,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CAClE,QAAE,CACAJ,EAAS,MAAQ,EACnB,CACF,EAeE,MAbY,SAA2B,CACvCG,EAAM,MAAQ,KAEd,GAAI,CACF,MAAML,EAAM,eAAe,CAC7B,OAASM,EAAK,CACZD,EAAM,MAAQC,aAAe,MAAQA,EAAM,IAAI,MAAM,OAAOA,CAAG,CAAC,CAClE,CACF,EAME,KAAM,CACJ,SAAUC,EAASL,CAAQ,EAC3B,YAAaK,EAASH,CAAW,EACjC,MAAOG,EAASF,CAAK,CACvB,CACF,CACF","names":["inject","provide","BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","computed","onUnmounted","shallowRef","ref","useBitForm","store","useBitStore","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","controller","createFormController","result","error","isValid","computed","isSubmitting","isDirty","onSubmit","reset","computed","onUnmounted","shallowRef","useBitField","path","store","useBitStore","resolvedMask","fieldController","createMaskedFieldController","state","shallowRef","unsubscribe","subscribeFieldState","nextState","onUnmounted","rawValue","computed","displayValue","modelValue","val","rawError","error","touched","invalid","isValidating","isDirty","isHidden","isRequired","hasError","setValue","setBlur","ref","computed","onUnmounted","generateId","useBitArray","path","store","useBitStore","initialValues","val","getDeepValue","values","ref","ids","unsubscribe","newValues","nextValues","currentIds","diff","newIds","onUnmounted","fields","computed","v","i","length","index","from","to","id","a","b","items","computed","onUnmounted","shallowRef","useBitHistory","store","useBitStore","meta","shallowRef","unsubscribe","onUnmounted","undo","redo","computed","ref","computed","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitScope","scopeName","store","useBitStore","status","ref","unsubscribe","onMounted","newStatus","onUnmounted","validate","valid","errors","getErrors","isValid","computed","isDirty","ref","computed","watch","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitSteps","scopeNames","store","useBitStore","stepIndex","ref","scope","computed","status","unsubscribe","watch","newScope","updateStatus","scopeName","newStatus","onMounted","onUnmounted","validate","valid","errors","getErrors","next","scopeFields","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","ref","onUnmounted","readonly","useBitWatch","path","store","useBitStore","initialValue","getDeepValue","value","ref","unsubscribe","newValue","deepEqual","onUnmounted","readonly","computed","ref","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKey","isUploading","ref","upload","file","result","error","message","remove","computed","ref","readonly","useBitPersist","store","useBitStore","isSaving","ref","isRestoring","error","err","readonly"]}
1
+ {"version":3,"sources":["../../src/vue/context.ts","../../src/vue/use-bit-form.ts","../../src/vue/use-bit-field.ts","../../src/vue/use-bit-array.ts","../../src/vue/use-bit-history.ts","../../src/vue/use-bit-scope.ts","../../src/vue/use-bit-steps.ts","../../src/vue/use-bit-watch.ts","../../src/vue/use-bit-upload.ts","../../src/vue/use-bit-persist.ts"],"sourcesContent":["import { inject, provide, InjectionKey } from \"vue\";\nimport type { BitStoreApi, BitStoreHooksApi } from \"../core\";\nimport { resolveBitStoreForHooks } from \"../core\";\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\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 const createId = (index?: number) =>\n store.config.idFactory({\n scope: \"array\",\n path: path as string,\n index,\n });\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((_, index) => createId(index)));\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 }, (_, i) =>\n createId(currentIds.length + i),\n );\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(createId(ids.value.length));\n store.pushItem(path, val);\n },\n prepend: (val: Item) => {\n ids.value.unshift(createId(0));\n store.prependItem(path, val);\n },\n insert: (index: number, val: Item) => {\n ids.value.splice(index, 0, createId(index));\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((_, index) => createId(index));\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","import { computed, onUnmounted, shallowRef } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitHistoryResult } from \"./types\";\n\nexport function useBitHistory<T extends object = any>(): UseBitHistoryResult {\n const store = useBitStore<T>();\n\n const meta = shallowRef(store.getHistoryMetadata());\n\n const unsubscribe = store.subscribe(() => {\n meta.value = store.getHistoryMetadata();\n });\n\n onUnmounted(unsubscribe);\n\n const undo = () => store.undo();\n const redo = () => store.redo();\n\n return {\n canUndo: computed(() => meta.value.canUndo),\n canRedo: computed(() => meta.value.canRedo),\n historyIndex: computed(() => meta.value.historyIndex),\n historySize: computed(() => meta.value.historySize),\n undo,\n redo,\n };\n}\n","import { ref, computed, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\n\nexport type { ScopeStatus, ValidateScopeResult };\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitScope(scopeName: string) {\n const store = useBitStore();\n const status = ref<ScopeStatus>(store.getStepStatus(scopeName));\n let unsubscribe: () => void;\n\n onMounted(() => {\n unsubscribe = store.subscribeSelector(\n (state) => ({ errors: state.errors, isDirty: state.isDirty }),\n () => {\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n },\n );\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scopeName);\n\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n scopeName,\n status,\n errors,\n validate,\n getErrors,\n isValid,\n isDirty,\n };\n}\n","import { ref, computed, watch, onMounted, onUnmounted } from \"vue\";\nimport type { ScopeStatus, ValidateScopeResult } from \"../core\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitStepsResult } from \"./types\";\n\nfunction errorsEqual(\n a: Record<string, string>,\n b: Record<string, string>,\n): boolean {\n const keysA = Object.keys(a);\n const keysB = Object.keys(b);\n if (keysA.length !== keysB.length) return false;\n return keysA.every((k) => a[k] === b[k]);\n}\n\nexport function useBitSteps(scopeNames: string[]): UseBitStepsResult {\n const store = useBitStore();\n const stepIndex = ref(0);\n\n const scope = computed(() => scopeNames[stepIndex.value] ?? \"\");\n const status = ref<ScopeStatus>(store.getStepStatus(scope.value));\n let unsubscribe: () => void;\n\n watch(scope, (newScope) => {\n status.value = store.getStepStatus(newScope);\n });\n\n const updateStatus = () => {\n const scopeName = scope.value;\n const newStatus = store.getStepStatus(scopeName);\n if (\n newStatus.hasErrors !== status.value.hasErrors ||\n newStatus.isDirty !== status.value.isDirty ||\n !errorsEqual(newStatus.errors, status.value.errors)\n ) {\n status.value = newStatus;\n }\n };\n\n onMounted(() => {\n unsubscribe = store.subscribeSelector(\n (state) => ({ errors: state.errors, isDirty: state.isDirty }),\n updateStatus,\n );\n });\n\n onUnmounted(() => {\n unsubscribe?.();\n });\n\n const validate = async (): Promise<ValidateScopeResult> => {\n const scopeName = scope.value;\n const valid = await store.validate({ scope: scopeName });\n const errors = store.getStepErrors(scopeName);\n return { valid, errors };\n };\n\n const getErrors = () => store.getStepErrors(scope.value);\n\n const next = async (): Promise<boolean> => {\n const scopeName = scope.value;\n\n const scopeFields = store.getScopeFields(scopeName);\n if (store.hasValidationsInProgress(scopeFields)) {\n return false;\n }\n\n const valid = await store.validate({ scope: scopeName });\n if (valid) {\n stepIndex.value = Math.min(stepIndex.value + 1, scopeNames.length - 1);\n } else {\n const errors = store.getStepErrors(scopeName);\n const pathsWithErrors = Object.keys(errors);\n if (pathsWithErrors.length > 0) {\n store.markFieldsTouched(pathsWithErrors);\n }\n }\n return valid;\n };\n\n const prev = () => {\n stepIndex.value = Math.max(stepIndex.value - 1, 0);\n };\n\n const goTo = (targetStep: number) => {\n stepIndex.value = Math.max(\n 0,\n Math.min(targetStep - 1, scopeNames.length - 1),\n );\n };\n\n const step = computed(() => stepIndex.value + 1);\n const isFirst = computed(() => stepIndex.value === 0);\n const isLast = computed(() => stepIndex.value >= scopeNames.length - 1);\n const isValid = computed(() => !status.value.hasErrors);\n const isDirty = computed(() => status.value.isDirty);\n const errors = computed(() => status.value.errors);\n\n return {\n step,\n stepIndex,\n scope,\n next,\n prev,\n goTo,\n isFirst,\n isLast,\n status,\n errors,\n isValid,\n isDirty,\n validate,\n getErrors,\n };\n}\n","import { ref, onUnmounted, readonly } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport {\n getDeepValue,\n deepEqual,\n BitPath,\n BitPathValue,\n} from \"../core\";\n\nexport function useBitWatch<\n TForm extends object = any,\n P extends BitPath<TForm> = BitPath<TForm>,\n>(path: P) {\n const store = useBitStore<TForm>();\n const initialValue = getDeepValue(\n store.getState().values,\n path as string,\n ) as BitPathValue<TForm, P>;\n const value = ref<BitPathValue<TForm, P>>(initialValue);\n\n const unsubscribe = store.watch(path, (newValue) => {\n if (!deepEqual(value.value, newValue)) {\n value.value = newValue as BitPathValue<TForm, P>;\n }\n });\n\n onUnmounted(unsubscribe);\n\n return readonly(value);\n}\n","/**\n * Vue Composition API for File Upload\n *\n * Minimal upload API integrated with global field validation lifecycle.\n */\n\nimport { computed, ComputedRef, ref } from \"vue\";\nimport { useBitField } from \"./use-bit-field\";\nimport { useBitStore } from \"./context\";\nimport { BitUploadFn, BitDeleteUploadFn } from \"../core\";\nimport { createUploadHandler, createRemoveHandler } from \"../core/adapters\";\nimport type { UseBitUploadResult } from \"./types\";\n\nexport function useBitUpload(\n fieldPath: string,\n uploadFn: BitUploadFn,\n deleteFile?: BitDeleteUploadFn,\n): UseBitUploadResult {\n const store = useBitStore<any>();\n const field = useBitField(fieldPath);\n let uploadKey: string | null = null;\n const isUploading = ref(false);\n\n const kernelCallbacks = {\n setLoading: (val: boolean) => {\n isUploading.value = val;\n },\n setError: (path: string, msg: string | undefined) =>\n store.setError(path, msg),\n setValue: (val: string | null) => field.setValue(val),\n getUploadKey: () => uploadKey,\n setUploadKey: (key: string | null) => {\n uploadKey = key;\n },\n };\n\n const upload = createUploadHandler(fieldPath, uploadFn, kernelCallbacks);\n const remove = createRemoveHandler(fieldPath, deleteFile, kernelCallbacks);\n\n return {\n value: field.value as ComputedRef<string | File | null>,\n setValue: field.setValue,\n error: computed(() => field.meta.error.value),\n isValidating: computed(\n () => !!field.meta.isValidating.value || isUploading.value,\n ),\n upload,\n remove,\n };\n}\n","import { computed, onUnmounted, ref } from \"vue\";\nimport { useBitStore } from \"./context\";\nimport type { UseBitPersistResult } from \"./types\";\n\nexport function useBitPersist<T extends object = any>(): UseBitPersistResult {\n const store = useBitStore<T>();\n const meta = ref(store.getPersistMetadata());\n\n const unsubscribe = store.subscribeSelector(\n (state) => state.persist,\n (nextMeta) => {\n meta.value = nextMeta;\n },\n );\n\n onUnmounted(() => unsubscribe());\n\n const restore = async (): Promise<boolean> => {\n return store.restorePersisted();\n };\n\n const save = async (): Promise<void> => {\n await store.forceSave();\n };\n\n const clear = async (): Promise<void> => {\n await store.clearPersisted();\n };\n\n return {\n restore,\n save,\n clear,\n meta: {\n isSaving: computed(() => meta.value.isSaving),\n isRestoring: computed(() => meta.value.isRestoring),\n error: computed(() => meta.value.error),\n },\n };\n}\n"],"mappings":"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","names":["inject","provide","BIT_STORE_KEY","provideBitStore","store","provide","resolveBitStoreForHooks","useBitStore","inject","computed","onUnmounted","shallowRef","ref","useBitForm","store","useBitStore","state","shallowRef","submitError","ref","lastResponse","unsubscribe","snapshot","nextState","onUnmounted","controller","createFormController","result","error","isValid","computed","isSubmitting","isDirty","onSubmit","reset","computed","onUnmounted","shallowRef","useBitField","path","store","useBitStore","resolvedMask","fieldController","createMaskedFieldController","state","shallowRef","unsubscribe","subscribeFieldState","nextState","onUnmounted","rawValue","computed","displayValue","modelValue","val","rawError","error","touched","invalid","isValidating","isDirty","isHidden","isRequired","hasError","setValue","setBlur","ref","computed","onUnmounted","useBitArray","path","store","useBitStore","createId","index","initialValues","val","getDeepValue","values","ref","ids","_","unsubscribe","newValues","nextValues","currentIds","diff","newIds","i","onUnmounted","fields","computed","v","length","from","to","id","a","b","items","computed","onUnmounted","shallowRef","useBitHistory","store","useBitStore","meta","shallowRef","unsubscribe","onUnmounted","undo","redo","computed","ref","computed","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitScope","scopeName","store","useBitStore","status","ref","unsubscribe","onMounted","state","newStatus","onUnmounted","validate","valid","errors","getErrors","isValid","computed","isDirty","ref","computed","watch","onMounted","onUnmounted","errorsEqual","a","b","keysA","keysB","k","useBitSteps","scopeNames","store","useBitStore","stepIndex","ref","scope","computed","status","unsubscribe","watch","newScope","updateStatus","scopeName","newStatus","onMounted","state","onUnmounted","validate","valid","errors","getErrors","next","scopeFields","pathsWithErrors","prev","goTo","targetStep","step","isFirst","isLast","isValid","isDirty","ref","onUnmounted","readonly","useBitWatch","path","store","useBitStore","initialValue","getDeepValue","value","ref","unsubscribe","newValue","deepEqual","onUnmounted","readonly","computed","ref","useBitUpload","fieldPath","uploadFn","deleteFile","store","useBitStore","field","useBitField","uploadKey","isUploading","ref","kernelCallbacks","val","path","msg","key","upload","createUploadHandler","remove","createRemoveHandler","computed","computed","onUnmounted","ref","useBitPersist","store","useBitStore","meta","ref","unsubscribe","state","nextMeta","onUnmounted","computed"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lehnihon/bit-form",
3
- "version": "2.2.2",
3
+ "version": "2.2.4",
4
4
  "description": "Gerenciamento de estado de formulários agnóstico e performático",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -60,16 +60,21 @@
60
60
  "import": "./dist/angular/index.js",
61
61
  "require": "./dist/angular/index.cjs"
62
62
  },
63
- "./core/light": {
64
- "types": "./dist/core/light.d.ts",
65
- "import": "./dist/core/light.js",
66
- "require": "./dist/core/light.cjs"
63
+ "./mask": {
64
+ "types": "./dist/mask.d.ts",
65
+ "import": "./dist/mask.js",
66
+ "require": "./dist/mask.cjs"
67
67
  },
68
68
  "./resolvers/*": {
69
69
  "types": "./dist/resolvers/*.d.ts",
70
70
  "import": "./dist/resolvers/*.js",
71
71
  "require": "./dist/resolvers/*.cjs"
72
72
  },
73
+ "./resolvers": {
74
+ "types": "./dist/resolvers/index.d.ts",
75
+ "import": "./dist/resolvers/index.js",
76
+ "require": "./dist/resolvers/index.cjs"
77
+ },
73
78
  "./devtools": {
74
79
  "types": "./dist/devtools/index.d.ts",
75
80
  "import": "./dist/devtools/index.js",
@@ -1,16 +0,0 @@
1
- import { e as BitState } from './types-DqeN9Kq_.js';
2
-
3
- type BitBusListener<T extends object = any> = (storeId: string, newState: BitState<T>) => void;
4
- interface BitFormGlobal {
5
- stores: Record<string, unknown>;
6
- listeners: Set<BitBusListener>;
7
- dispatch: (storeId: string, state: BitState<any>) => void;
8
- subscribe: (fn: BitBusListener) => () => void;
9
- }
10
-
11
- declare global {
12
- var __BIT_FORM__: BitFormGlobal | undefined;
13
- }
14
- declare const bitBus: BitFormGlobal;
15
-
16
- export { bitBus as b };
@@ -1,16 +0,0 @@
1
- import { e as BitState } from './types-DqeN9Kq_.cjs';
2
-
3
- type BitBusListener<T extends object = any> = (storeId: string, newState: BitState<T>) => void;
4
- interface BitFormGlobal {
5
- stores: Record<string, unknown>;
6
- listeners: Set<BitBusListener>;
7
- dispatch: (storeId: string, state: BitState<any>) => void;
8
- subscribe: (fn: BitBusListener) => () => void;
9
- }
10
-
11
- declare global {
12
- var __BIT_FORM__: BitFormGlobal | undefined;
13
- }
14
- declare const bitBus: BitFormGlobal;
15
-
16
- export { bitBus as b };