@tanstack/react-form 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/build/legacy/createFormFactory.cjs +42 -0
  2. package/build/legacy/createFormFactory.cjs.map +1 -0
  3. package/build/legacy/createFormFactory.d.cts +12 -0
  4. package/build/legacy/createFormFactory.d.ts +12 -0
  5. package/build/legacy/createFormFactory.js +17 -0
  6. package/build/legacy/createFormFactory.js.map +1 -0
  7. package/build/legacy/formContext.cjs +51 -0
  8. package/build/legacy/formContext.cjs.map +1 -0
  9. package/build/legacy/formContext.d.cts +13 -0
  10. package/build/legacy/formContext.d.ts +13 -0
  11. package/build/legacy/formContext.js +15 -0
  12. package/build/legacy/formContext.js.map +1 -0
  13. package/build/legacy/index.cjs +46 -0
  14. package/build/legacy/index.cjs.map +1 -0
  15. package/build/legacy/index.d.cts +7 -0
  16. package/build/legacy/index.d.ts +7 -0
  17. package/build/legacy/index.js +15 -0
  18. package/build/legacy/index.js.map +1 -0
  19. package/build/legacy/types.cjs +19 -0
  20. package/build/legacy/types.cjs.map +1 -0
  21. package/build/legacy/types.d.cts +7 -0
  22. package/build/legacy/types.d.ts +7 -0
  23. package/build/legacy/types.js +1 -0
  24. package/build/legacy/types.js.map +1 -0
  25. package/build/legacy/useField.cjs +80 -0
  26. package/build/legacy/useField.cjs.map +1 -0
  27. package/build/legacy/useField.d.cts +27 -0
  28. package/build/{lib → legacy}/useField.d.ts +10 -9
  29. package/build/legacy/useField.js +44 -0
  30. package/build/legacy/useField.js.map +1 -0
  31. package/build/legacy/useForm.cjs +70 -0
  32. package/build/legacy/useForm.cjs.map +1 -0
  33. package/build/legacy/useForm.d.cts +23 -0
  34. package/build/{lib → legacy}/useForm.d.ts +9 -7
  35. package/build/legacy/useForm.js +35 -0
  36. package/build/legacy/useForm.js.map +1 -0
  37. package/build/modern/createFormFactory.cjs +42 -0
  38. package/build/modern/createFormFactory.cjs.map +1 -0
  39. package/build/modern/createFormFactory.d.cts +12 -0
  40. package/build/modern/createFormFactory.d.ts +12 -0
  41. package/build/modern/createFormFactory.js +17 -0
  42. package/build/modern/createFormFactory.js.map +1 -0
  43. package/build/modern/formContext.cjs +51 -0
  44. package/build/modern/formContext.cjs.map +1 -0
  45. package/build/modern/formContext.d.cts +13 -0
  46. package/build/modern/formContext.d.ts +13 -0
  47. package/build/modern/formContext.js +15 -0
  48. package/build/modern/formContext.js.map +1 -0
  49. package/build/modern/index.cjs +46 -0
  50. package/build/modern/index.cjs.map +1 -0
  51. package/build/modern/index.d.cts +7 -0
  52. package/build/modern/index.d.ts +7 -0
  53. package/build/modern/index.js +15 -0
  54. package/build/modern/index.js.map +1 -0
  55. package/build/modern/types.cjs +19 -0
  56. package/build/modern/types.cjs.map +1 -0
  57. package/build/modern/types.d.cts +7 -0
  58. package/build/modern/types.d.ts +7 -0
  59. package/build/modern/types.js +1 -0
  60. package/build/modern/types.js.map +1 -0
  61. package/build/modern/useField.cjs +80 -0
  62. package/build/modern/useField.cjs.map +1 -0
  63. package/build/modern/useField.d.cts +27 -0
  64. package/build/modern/useField.d.ts +27 -0
  65. package/build/modern/useField.js +44 -0
  66. package/build/modern/useField.js.map +1 -0
  67. package/build/modern/useForm.cjs +70 -0
  68. package/build/modern/useForm.cjs.map +1 -0
  69. package/build/modern/useForm.d.cts +23 -0
  70. package/build/modern/useForm.d.ts +23 -0
  71. package/build/modern/useForm.js +35 -0
  72. package/build/modern/useForm.js.map +1 -0
  73. package/package.json +28 -22
  74. package/build/lib/_virtual/_rollupPluginBabelHelpers.cjs +0 -19
  75. package/build/lib/_virtual/_rollupPluginBabelHelpers.cjs.map +0 -1
  76. package/build/lib/_virtual/_rollupPluginBabelHelpers.js +0 -17
  77. package/build/lib/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  78. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs +0 -19
  79. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.cjs.map +0 -1
  80. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js +0 -17
  81. package/build/lib/_virtual/_rollupPluginBabelHelpers.legacy.js.map +0 -1
  82. package/build/lib/createFormFactory.cjs +0 -18
  83. package/build/lib/createFormFactory.cjs.map +0 -1
  84. package/build/lib/createFormFactory.d.ts +0 -9
  85. package/build/lib/createFormFactory.d.ts.map +0 -1
  86. package/build/lib/createFormFactory.js +0 -16
  87. package/build/lib/createFormFactory.js.map +0 -1
  88. package/build/lib/createFormFactory.legacy.cjs +0 -18
  89. package/build/lib/createFormFactory.legacy.cjs.map +0 -1
  90. package/build/lib/createFormFactory.legacy.js +0 -16
  91. package/build/lib/createFormFactory.legacy.js.map +0 -1
  92. package/build/lib/formContext.cjs +0 -35
  93. package/build/lib/formContext.cjs.map +0 -1
  94. package/build/lib/formContext.d.ts +0 -11
  95. package/build/lib/formContext.d.ts.map +0 -1
  96. package/build/lib/formContext.js +0 -13
  97. package/build/lib/formContext.js.map +0 -1
  98. package/build/lib/formContext.legacy.cjs +0 -35
  99. package/build/lib/formContext.legacy.cjs.map +0 -1
  100. package/build/lib/formContext.legacy.js +0 -13
  101. package/build/lib/formContext.legacy.js.map +0 -1
  102. package/build/lib/index.cjs +0 -26
  103. package/build/lib/index.cjs.map +0 -1
  104. package/build/lib/index.d.ts +0 -8
  105. package/build/lib/index.d.ts.map +0 -1
  106. package/build/lib/index.js +0 -5
  107. package/build/lib/index.js.map +0 -1
  108. package/build/lib/index.legacy.cjs +0 -26
  109. package/build/lib/index.legacy.cjs.map +0 -1
  110. package/build/lib/index.legacy.js +0 -5
  111. package/build/lib/index.legacy.js.map +0 -1
  112. package/build/lib/tests/createFormFactory.test.d.ts +0 -3
  113. package/build/lib/tests/createFormFactory.test.d.ts.map +0 -1
  114. package/build/lib/tests/useField.test.d.ts +0 -3
  115. package/build/lib/tests/useField.test.d.ts.map +0 -1
  116. package/build/lib/tests/useForm.test.d.ts +0 -3
  117. package/build/lib/tests/useForm.test.d.ts.map +0 -1
  118. package/build/lib/tests/utils.d.ts +0 -2
  119. package/build/lib/tests/utils.d.ts.map +0 -1
  120. package/build/lib/types.d.ts +0 -5
  121. package/build/lib/types.d.ts.map +0 -1
  122. package/build/lib/useField.cjs +0 -83
  123. package/build/lib/useField.cjs.map +0 -1
  124. package/build/lib/useField.d.ts.map +0 -1
  125. package/build/lib/useField.js +0 -80
  126. package/build/lib/useField.js.map +0 -1
  127. package/build/lib/useField.legacy.cjs +0 -83
  128. package/build/lib/useField.legacy.cjs.map +0 -1
  129. package/build/lib/useField.legacy.js +0 -80
  130. package/build/lib/useField.legacy.js.map +0 -1
  131. package/build/lib/useForm.cjs +0 -52
  132. package/build/lib/useForm.cjs.map +0 -1
  133. package/build/lib/useForm.d.ts.map +0 -1
  134. package/build/lib/useForm.js +0 -50
  135. package/build/lib/useForm.js.map +0 -1
  136. package/build/lib/useForm.legacy.cjs +0 -52
  137. package/build/lib/useForm.legacy.cjs.map +0 -1
  138. package/build/lib/useForm.legacy.js +0 -50
  139. package/build/lib/useForm.legacy.js.map +0 -1
  140. package/build/lib/utils/isBrowser.cjs +0 -8
  141. package/build/lib/utils/isBrowser.cjs.map +0 -1
  142. package/build/lib/utils/isBrowser.d.ts +0 -2
  143. package/build/lib/utils/isBrowser.d.ts.map +0 -1
  144. package/build/lib/utils/isBrowser.js +0 -6
  145. package/build/lib/utils/isBrowser.js.map +0 -1
  146. package/build/lib/utils/isBrowser.legacy.cjs +0 -8
  147. package/build/lib/utils/isBrowser.legacy.cjs.map +0 -1
  148. package/build/lib/utils/isBrowser.legacy.js +0 -6
  149. package/build/lib/utils/isBrowser.legacy.js.map +0 -1
  150. package/build/lib/utils/useIsomorphicLayoutEffect.cjs +0 -11
  151. package/build/lib/utils/useIsomorphicLayoutEffect.cjs.map +0 -1
  152. package/build/lib/utils/useIsomorphicLayoutEffect.d.ts +0 -3
  153. package/build/lib/utils/useIsomorphicLayoutEffect.d.ts.map +0 -1
  154. package/build/lib/utils/useIsomorphicLayoutEffect.js +0 -9
  155. package/build/lib/utils/useIsomorphicLayoutEffect.js.map +0 -1
  156. package/build/lib/utils/useIsomorphicLayoutEffect.legacy.cjs +0 -11
  157. package/build/lib/utils/useIsomorphicLayoutEffect.legacy.cjs.map +0 -1
  158. package/build/lib/utils/useIsomorphicLayoutEffect.legacy.js +0 -9
  159. package/build/lib/utils/useIsomorphicLayoutEffect.legacy.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../src/useForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,EAAE,OAAO,EAAoB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD,OAAc,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAA;AACvD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAmB,MAAM,YAAY,CAAA;AAIhF,OAAO,QAAQ,qBAAqB,CAAC;IAEnC,UAAU,OAAO,CAAC,SAAS;QACzB,QAAQ,EAAE,CAAC,KAAK,EAAE;YAAE,QAAQ,EAAE,GAAG,CAAA;SAAE,KAAK,GAAG,CAAA;QAC3C,KAAK,EAAE,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC3C,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC7B,QAAQ,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAClD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,KAC3D,SAAS,CAAA;QACd,SAAS,EAAE,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE;YAC5D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,SAAS,CAAA;YAC9D,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,GAAG,SAAS,CAAA;SACjE,KAAK,GAAG,CAAA;KACV;CACF;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CA2CxE"}
@@ -1,50 +0,0 @@
1
- import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';
2
- import { FormApi, functionalUpdate } from '@tanstack/form-core';
3
- import { useStore } from '@tanstack/react-store';
4
- import React__default, { useState } from 'react';
5
- import { Field, useField } from './useField.js';
6
- import { formContext } from './formContext.js';
7
- import { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect.js';
8
-
9
- function useForm(opts) {
10
- const [formApi] = useState(() => {
11
- // @ts-ignore
12
- const api = new FormApi(opts);
13
-
14
- // eslint-disable-next-line react/display-name
15
- api.Provider = props => /*#__PURE__*/React__default.createElement(formContext.Provider, _extends({}, props, {
16
- value: {
17
- formApi: api
18
- }
19
- }));
20
- api.Field = Field;
21
- api.useField = useField;
22
- api.useStore = (
23
- // @ts-ignore
24
- selector) => {
25
- // eslint-disable-next-line react-hooks/rules-of-hooks
26
- return useStore(api.store, selector);
27
- };
28
- api.Subscribe = (
29
- // @ts-ignore
30
- props) => {
31
- return functionalUpdate(props.children,
32
- // eslint-disable-next-line react-hooks/rules-of-hooks
33
- useStore(api.store, props.selector));
34
- };
35
- return api;
36
- });
37
- formApi.useStore(state => state.isSubmitting);
38
-
39
- /**
40
- * formApi.update should not have any side effects. Think of it like a `useRef`
41
- * that we need to keep updated every render with the most up-to-date information.
42
- */
43
- useIsomorphicLayoutEffect(() => {
44
- formApi.update(opts);
45
- });
46
- return formApi;
47
- }
48
-
49
- export { useForm };
50
- //# sourceMappingURL=useForm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.js","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React, { type ReactNode, useState } from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\nimport { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode\n }) => any\n }\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n // eslint-disable-next-line react/display-name\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n\n /**\n * formApi.update should not have any side effects. Think of it like a `useRef`\n * that we need to keep updated every render with the most up-to-date information.\n */\n useIsomorphicLayoutEffect(() => {\n formApi.update(opts)\n })\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","useState","api","FormApi","Provider","props","React","createElement","formContext","_extends","value","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","state","isSubmitting","useIsomorphicLayoutEffect","update"],"mappings":";;;;;;;;AAyBO,SAASA,OAAOA,CAAQC,IAAyB,EAAkB;AACxE,EAAA,MAAM,CAACC,OAAO,CAAC,GAAGC,QAAQ,CAAC,MAAM;AAC/B;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,OAAO,CAAQJ,IAAI,CAAC,CAAA;;AAEpC;AACAG,IAAAA,GAAG,CAACE,QAAQ,GAAIC,KAAK,iBACnBC,cAAA,CAAAC,aAAA,CAACC,WAAW,CAACJ,QAAQ,EAAAK,QAAA,KAAKJ,KAAK,EAAA;AAAEK,MAAAA,KAAK,EAAE;AAAEV,QAAAA,OAAO,EAAEE,GAAAA;AAAI,OAAA;AAAE,KAAA,CAAE,CAC5D,CAAA;IACDA,GAAG,CAACS,KAAK,GAAGA,KAAY,CAAA;IACxBT,GAAG,CAACU,QAAQ,GAAGA,QAAe,CAAA;IAC9BV,GAAG,CAACW,QAAQ,GAAG;AACb;AACAC,IAAAA,QAAQ,KACL;AACH;AACA,MAAA,OAAOD,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASD,QAAe,CAAC,CAAA;KACnD,CAAA;IACDZ,GAAG,CAACc,SAAS,GAAG;AACd;AACAX,IAAAA,KAAK,KACF;AACH,MAAA,OAAOY,gBAAgB,CACrBZ,KAAK,CAACa,QAAQ;AACd;MACAL,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASV,KAAK,CAACS,QAAe,CAClD,CAAC,CAAA;KACF,CAAA;AAED,IAAA,OAAOZ,GAAG,CAAA;AACZ,GAAC,CAAC,CAAA;EAEFF,OAAO,CAACa,QAAQ,CAAEM,KAAK,IAAKA,KAAK,CAACC,YAAY,CAAC,CAAA;;AAE/C;AACF;AACA;AACA;AACEC,EAAAA,yBAAyB,CAAC,MAAM;AAC9BrB,IAAAA,OAAO,CAACsB,MAAM,CAACvB,IAAI,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOC,OAAO,CAAA;AAChB;;;;"}
@@ -1,52 +0,0 @@
1
- 'use strict';
2
-
3
- var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.legacy.cjs');
4
- var formCore = require('@tanstack/form-core');
5
- var reactStore = require('@tanstack/react-store');
6
- var React = require('react');
7
- var useField = require('./useField.legacy.cjs');
8
- var formContext = require('./formContext.legacy.cjs');
9
- var useIsomorphicLayoutEffect = require('./utils/useIsomorphicLayoutEffect.legacy.cjs');
10
-
11
- function useForm(opts) {
12
- const [formApi] = React.useState(() => {
13
- // @ts-ignore
14
- const api = new formCore.FormApi(opts);
15
-
16
- // eslint-disable-next-line react/display-name
17
- api.Provider = props => /*#__PURE__*/React.createElement(formContext.formContext.Provider, _rollupPluginBabelHelpers.extends({}, props, {
18
- value: {
19
- formApi: api
20
- }
21
- }));
22
- api.Field = useField.Field;
23
- api.useField = useField.useField;
24
- api.useStore = (
25
- // @ts-ignore
26
- selector) => {
27
- // eslint-disable-next-line react-hooks/rules-of-hooks
28
- return reactStore.useStore(api.store, selector);
29
- };
30
- api.Subscribe = (
31
- // @ts-ignore
32
- props) => {
33
- return formCore.functionalUpdate(props.children,
34
- // eslint-disable-next-line react-hooks/rules-of-hooks
35
- reactStore.useStore(api.store, props.selector));
36
- };
37
- return api;
38
- });
39
- formApi.useStore(state => state.isSubmitting);
40
-
41
- /**
42
- * formApi.update should not have any side effects. Think of it like a `useRef`
43
- * that we need to keep updated every render with the most up-to-date information.
44
- */
45
- useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
46
- formApi.update(opts);
47
- });
48
- return formApi;
49
- }
50
-
51
- exports.useForm = useForm;
52
- //# sourceMappingURL=useForm.legacy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.legacy.cjs","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React, { type ReactNode, useState } from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\nimport { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode\n }) => any\n }\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n // eslint-disable-next-line react/display-name\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n\n /**\n * formApi.update should not have any side effects. Think of it like a `useRef`\n * that we need to keep updated every render with the most up-to-date information.\n */\n useIsomorphicLayoutEffect(() => {\n formApi.update(opts)\n })\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","useState","api","FormApi","Provider","props","React","createElement","formContext","_extends","value","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","state","isSubmitting","useIsomorphicLayoutEffect","update"],"mappings":";;;;;;;;;;AAyBO,SAASA,OAAOA,CAAQC,IAAyB,EAAkB;AACxE,EAAA,MAAM,CAACC,OAAO,CAAC,GAAGC,cAAQ,CAAC,MAAM;AAC/B;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,gBAAO,CAAQJ,IAAI,CAAC,CAAA;;AAEpC;AACAG,IAAAA,GAAG,CAACE,QAAQ,GAAIC,KAAK,iBACnBC,KAAA,CAAAC,aAAA,CAACC,uBAAW,CAACJ,QAAQ,EAAAK,iCAAA,KAAKJ,KAAK,EAAA;AAAEK,MAAAA,KAAK,EAAE;AAAEV,QAAAA,OAAO,EAAEE,GAAAA;AAAI,OAAA;AAAE,KAAA,CAAE,CAC5D,CAAA;IACDA,GAAG,CAACS,KAAK,GAAGA,cAAY,CAAA;IACxBT,GAAG,CAACU,QAAQ,GAAGA,iBAAe,CAAA;IAC9BV,GAAG,CAACW,QAAQ,GAAG;AACb;AACAC,IAAAA,QAAQ,KACL;AACH;AACA,MAAA,OAAOD,mBAAQ,CAACX,GAAG,CAACa,KAAK,EAASD,QAAe,CAAC,CAAA;KACnD,CAAA;IACDZ,GAAG,CAACc,SAAS,GAAG;AACd;AACAX,IAAAA,KAAK,KACF;AACH,MAAA,OAAOY,yBAAgB,CACrBZ,KAAK,CAACa,QAAQ;AACd;MACAL,mBAAQ,CAACX,GAAG,CAACa,KAAK,EAASV,KAAK,CAACS,QAAe,CAClD,CAAC,CAAA;KACF,CAAA;AAED,IAAA,OAAOZ,GAAG,CAAA;AACZ,GAAC,CAAC,CAAA;EAEFF,OAAO,CAACa,QAAQ,CAAEM,KAAK,IAAKA,KAAK,CAACC,YAAY,CAAC,CAAA;;AAE/C;AACF;AACA;AACA;AACEC,EAAAA,mDAAyB,CAAC,MAAM;AAC9BrB,IAAAA,OAAO,CAACsB,MAAM,CAACvB,IAAI,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOC,OAAO,CAAA;AAChB;;;;"}
@@ -1,50 +0,0 @@
1
- import { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.legacy.js';
2
- import { FormApi, functionalUpdate } from '@tanstack/form-core';
3
- import { useStore } from '@tanstack/react-store';
4
- import React__default, { useState } from 'react';
5
- import { Field, useField } from './useField.legacy.js';
6
- import { formContext } from './formContext.legacy.js';
7
- import { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect.legacy.js';
8
-
9
- function useForm(opts) {
10
- const [formApi] = useState(() => {
11
- // @ts-ignore
12
- const api = new FormApi(opts);
13
-
14
- // eslint-disable-next-line react/display-name
15
- api.Provider = props => /*#__PURE__*/React__default.createElement(formContext.Provider, _extends({}, props, {
16
- value: {
17
- formApi: api
18
- }
19
- }));
20
- api.Field = Field;
21
- api.useField = useField;
22
- api.useStore = (
23
- // @ts-ignore
24
- selector) => {
25
- // eslint-disable-next-line react-hooks/rules-of-hooks
26
- return useStore(api.store, selector);
27
- };
28
- api.Subscribe = (
29
- // @ts-ignore
30
- props) => {
31
- return functionalUpdate(props.children,
32
- // eslint-disable-next-line react-hooks/rules-of-hooks
33
- useStore(api.store, props.selector));
34
- };
35
- return api;
36
- });
37
- formApi.useStore(state => state.isSubmitting);
38
-
39
- /**
40
- * formApi.update should not have any side effects. Think of it like a `useRef`
41
- * that we need to keep updated every render with the most up-to-date information.
42
- */
43
- useIsomorphicLayoutEffect(() => {
44
- formApi.update(opts);
45
- });
46
- return formApi;
47
- }
48
-
49
- export { useForm };
50
- //# sourceMappingURL=useForm.legacy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useForm.legacy.js","sources":["../../src/useForm.tsx"],"sourcesContent":["import type { FormState, FormOptions } from '@tanstack/form-core'\nimport { FormApi, functionalUpdate } from '@tanstack/form-core'\nimport type { NoInfer } from '@tanstack/react-store'\nimport { useStore } from '@tanstack/react-store'\nimport React, { type ReactNode, useState } from 'react'\nimport { type UseField, type FieldComponent, Field, useField } from './useField'\nimport { formContext } from './formContext'\nimport { useIsomorphicLayoutEffect } from './utils/useIsomorphicLayoutEffect'\n\ndeclare module '@tanstack/form-core' {\n // eslint-disable-next-line no-shadow\n interface FormApi<TFormData> {\n Provider: (props: { children: any }) => any\n Field: FieldComponent<TFormData, TFormData>\n useField: UseField<TFormData>\n useStore: <TSelected = NoInfer<FormState<TFormData>>>(\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected,\n ) => TSelected\n Subscribe: <TSelected = NoInfer<FormState<TFormData>>>(props: {\n selector?: (state: NoInfer<FormState<TFormData>>) => TSelected\n children: ((state: NoInfer<TSelected>) => ReactNode) | ReactNode\n }) => any\n }\n}\n\nexport function useForm<TData>(opts?: FormOptions<TData>): FormApi<TData> {\n const [formApi] = useState(() => {\n // @ts-ignore\n const api = new FormApi<TData>(opts)\n\n // eslint-disable-next-line react/display-name\n api.Provider = (props) => (\n <formContext.Provider {...props} value={{ formApi: api }} />\n )\n api.Field = Field as any\n api.useField = useField as any\n api.useStore = (\n // @ts-ignore\n selector,\n ) => {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return useStore(api.store as any, selector as any) as any\n }\n api.Subscribe = (\n // @ts-ignore\n props,\n ) => {\n return functionalUpdate(\n props.children,\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useStore(api.store as any, props.selector as any),\n ) as any\n }\n\n return api\n })\n\n formApi.useStore((state) => state.isSubmitting)\n\n /**\n * formApi.update should not have any side effects. Think of it like a `useRef`\n * that we need to keep updated every render with the most up-to-date information.\n */\n useIsomorphicLayoutEffect(() => {\n formApi.update(opts)\n })\n\n return formApi as any\n}\n"],"names":["useForm","opts","formApi","useState","api","FormApi","Provider","props","React","createElement","formContext","_extends","value","Field","useField","useStore","selector","store","Subscribe","functionalUpdate","children","state","isSubmitting","useIsomorphicLayoutEffect","update"],"mappings":";;;;;;;;AAyBO,SAASA,OAAOA,CAAQC,IAAyB,EAAkB;AACxE,EAAA,MAAM,CAACC,OAAO,CAAC,GAAGC,QAAQ,CAAC,MAAM;AAC/B;AACA,IAAA,MAAMC,GAAG,GAAG,IAAIC,OAAO,CAAQJ,IAAI,CAAC,CAAA;;AAEpC;AACAG,IAAAA,GAAG,CAACE,QAAQ,GAAIC,KAAK,iBACnBC,cAAA,CAAAC,aAAA,CAACC,WAAW,CAACJ,QAAQ,EAAAK,QAAA,KAAKJ,KAAK,EAAA;AAAEK,MAAAA,KAAK,EAAE;AAAEV,QAAAA,OAAO,EAAEE,GAAAA;AAAI,OAAA;AAAE,KAAA,CAAE,CAC5D,CAAA;IACDA,GAAG,CAACS,KAAK,GAAGA,KAAY,CAAA;IACxBT,GAAG,CAACU,QAAQ,GAAGA,QAAe,CAAA;IAC9BV,GAAG,CAACW,QAAQ,GAAG;AACb;AACAC,IAAAA,QAAQ,KACL;AACH;AACA,MAAA,OAAOD,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASD,QAAe,CAAC,CAAA;KACnD,CAAA;IACDZ,GAAG,CAACc,SAAS,GAAG;AACd;AACAX,IAAAA,KAAK,KACF;AACH,MAAA,OAAOY,gBAAgB,CACrBZ,KAAK,CAACa,QAAQ;AACd;MACAL,QAAQ,CAACX,GAAG,CAACa,KAAK,EAASV,KAAK,CAACS,QAAe,CAClD,CAAC,CAAA;KACF,CAAA;AAED,IAAA,OAAOZ,GAAG,CAAA;AACZ,GAAC,CAAC,CAAA;EAEFF,OAAO,CAACa,QAAQ,CAAEM,KAAK,IAAKA,KAAK,CAACC,YAAY,CAAC,CAAA;;AAE/C;AACF;AACA;AACA;AACEC,EAAAA,yBAAyB,CAAC,MAAM;AAC9BrB,IAAAA,OAAO,CAACsB,MAAM,CAACvB,IAAI,CAAC,CAAA;AACtB,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOC,OAAO,CAAA;AAChB;;;;"}
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- /* c8 ignore start */
4
- const isBrowser = typeof window !== 'undefined';
5
- /* c8 ignore end */
6
-
7
- exports.isBrowser = isBrowser;
8
- //# sourceMappingURL=isBrowser.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isBrowser.cjs","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":";;AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
@@ -1,2 +0,0 @@
1
- export declare const isBrowser: boolean;
2
- //# sourceMappingURL=isBrowser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isBrowser.d.ts","sourceRoot":"","sources":["../../../src/utils/isBrowser.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,SAAgC,CAAA"}
@@ -1,6 +0,0 @@
1
- /* c8 ignore start */
2
- const isBrowser = typeof window !== 'undefined';
3
- /* c8 ignore end */
4
-
5
- export { isBrowser };
6
- //# sourceMappingURL=isBrowser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isBrowser.js","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":"AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- /* c8 ignore start */
4
- const isBrowser = typeof window !== 'undefined';
5
- /* c8 ignore end */
6
-
7
- exports.isBrowser = isBrowser;
8
- //# sourceMappingURL=isBrowser.legacy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isBrowser.legacy.cjs","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":";;AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
@@ -1,6 +0,0 @@
1
- /* c8 ignore start */
2
- const isBrowser = typeof window !== 'undefined';
3
- /* c8 ignore end */
4
-
5
- export { isBrowser };
6
- //# sourceMappingURL=isBrowser.legacy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isBrowser.legacy.js","sources":["../../../src/utils/isBrowser.ts"],"sourcesContent":["/* c8 ignore start */\nexport const isBrowser = typeof window !== 'undefined'\n/* c8 ignore end */\n"],"names":["isBrowser","window"],"mappings":"AAAA;MACaA,SAAS,GAAG,OAAOC,MAAM,KAAK,YAAW;AACtD;;;;"}
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var isBrowser = require('./isBrowser.cjs');
5
-
6
- /* c8 ignore start */
7
- const useIsomorphicLayoutEffect = isBrowser.isBrowser ? React.useLayoutEffect : React.useEffect;
8
- /* c8 ignore end */
9
-
10
- exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
11
- //# sourceMappingURL=useIsomorphicLayoutEffect.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.cjs","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;;;AAAA;MAIaA,yBAAyB,GAAGC,mBAAS,GAAGC,qBAAe,GAAGC,gBAAS;AAChF;;;;"}
@@ -1,3 +0,0 @@
1
- import { useLayoutEffect } from 'react';
2
- export declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
3
- //# sourceMappingURL=useIsomorphicLayoutEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.d.ts","sourceRoot":"","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,eAAe,EAAE,MAAM,OAAO,CAAA;AAGlD,eAAO,MAAM,yBAAyB,wBAA0C,CAAA"}
@@ -1,9 +0,0 @@
1
- import { useLayoutEffect, useEffect } from 'react';
2
- import { isBrowser } from './isBrowser.js';
3
-
4
- /* c8 ignore start */
5
- const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
6
- /* c8 ignore end */
7
-
8
- export { useIsomorphicLayoutEffect };
9
- //# sourceMappingURL=useIsomorphicLayoutEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.js","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;AAAA;MAIaA,yBAAyB,GAAGC,SAAS,GAAGC,eAAe,GAAGC,UAAS;AAChF;;;;"}
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var isBrowser = require('./isBrowser.legacy.cjs');
5
-
6
- /* c8 ignore start */
7
- const useIsomorphicLayoutEffect = isBrowser.isBrowser ? React.useLayoutEffect : React.useEffect;
8
- /* c8 ignore end */
9
-
10
- exports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;
11
- //# sourceMappingURL=useIsomorphicLayoutEffect.legacy.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.legacy.cjs","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;;;AAAA;MAIaA,yBAAyB,GAAGC,mBAAS,GAAGC,qBAAe,GAAGC,gBAAS;AAChF;;;;"}
@@ -1,9 +0,0 @@
1
- import { useLayoutEffect, useEffect } from 'react';
2
- import { isBrowser } from './isBrowser.legacy.js';
3
-
4
- /* c8 ignore start */
5
- const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
6
- /* c8 ignore end */
7
-
8
- export { useIsomorphicLayoutEffect };
9
- //# sourceMappingURL=useIsomorphicLayoutEffect.legacy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsomorphicLayoutEffect.legacy.js","sources":["../../../src/utils/useIsomorphicLayoutEffect.ts"],"sourcesContent":["/* c8 ignore start */\nimport { useEffect, useLayoutEffect } from 'react'\nimport { isBrowser } from './isBrowser'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n/* c8 ignore end */\n"],"names":["useIsomorphicLayoutEffect","isBrowser","useLayoutEffect","useEffect"],"mappings":";;;AAAA;MAIaA,yBAAyB,GAAGC,SAAS,GAAGC,eAAe,GAAGC,UAAS;AAChF;;;;"}