@form-os/react 0.3.0 → 0.4.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.
@@ -0,0 +1,15 @@
1
+ import * as react from 'react';
2
+ import { ComponentType } from 'react';
3
+ import { FieldValues, Control, RegisterOptions } from 'react-hook-form';
4
+ import { FieldConfig } from '@form-os/core';
5
+
6
+ interface FieldProps<TFieldValues extends FieldValues = FieldValues> {
7
+ field: FieldConfig;
8
+ control: Control<TFieldValues>;
9
+ component?: ComponentType<any>;
10
+ rules?: RegisterOptions;
11
+ [key: string]: any;
12
+ }
13
+ declare function Field<TFieldValues extends FieldValues = FieldValues>({ field, control, component, rules, ...rest }: FieldProps<TFieldValues>): react.JSX.Element | null;
14
+
15
+ export { type FieldProps as F, Field as a };
@@ -0,0 +1,15 @@
1
+ import * as react from 'react';
2
+ import { ComponentType } from 'react';
3
+ import { FieldValues, Control, RegisterOptions } from 'react-hook-form';
4
+ import { FieldConfig } from '@form-os/core';
5
+
6
+ interface FieldProps<TFieldValues extends FieldValues = FieldValues> {
7
+ field: FieldConfig;
8
+ control: Control<TFieldValues>;
9
+ component?: ComponentType<any>;
10
+ rules?: RegisterOptions;
11
+ [key: string]: any;
12
+ }
13
+ declare function Field<TFieldValues extends FieldValues = FieldValues>({ field, control, component, rules, ...rest }: FieldProps<TFieldValues>): react.JSX.Element | null;
14
+
15
+ export { type FieldProps as F, Field as a };
@@ -31,7 +31,13 @@ function useFieldComponents() {
31
31
 
32
32
  // src/Field.tsx
33
33
 
34
- function Field({ field, control, component, rules, ...rest }) {
34
+ function Field({
35
+ field,
36
+ control,
37
+ component,
38
+ rules,
39
+ ...rest
40
+ }) {
35
41
  const contextComponents = useFieldComponents();
36
42
  const Component = _nullishCoalesce(_nullishCoalesce(component, () => ( contextComponents[field.type])), () => ( contextComponents["text"]));
37
43
  const { field: f, fieldState, state } = useField(field, control, { rules });
@@ -58,4 +64,4 @@ function Field({ field, control, component, rules, ...rest }) {
58
64
 
59
65
 
60
66
  exports.useField = useField; exports.FormFieldsProvider = FormFieldsProvider; exports.useFieldComponents = useFieldComponents; exports.Field = Field;
61
- //# sourceMappingURL=chunk-CYMOPAGJ.cjs.map
67
+ //# sourceMappingURL=chunk-3PMQZRSQ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/abeleko/Documents/larven/formjs/packages/react/dist/chunk-3PMQZRSQ.cjs","../src/useField.ts","../src/FormFieldsContext.tsx","../src/Field.tsx"],"names":["jsx"],"mappings":"AAAA;ACAA,8BAAwB;AACxB,gDAAwC;AAExC,qCAAgD;AAOzC,SAAS,QAAA,CACd,KAAA,EACA,OAAA,EACA,QAAA,EAA2B,CAAC,CAAA,EAC5B;AACA,EAAA,MAAM,OAAA,EAAS,qCAAA,EAAW,QAAQ,CAAC,CAAA;AAEnC,EAAA,MAAM,MAAA,EAAQ,4BAAA;AAAA,IACZ,CAAA,EAAA,GAAM,iCAAA,KAAc,mBAAO,MAAA,UAAU,CAAC,GAAC,CAAA;AAAA,IACvC,CAAC,KAAA,EAAO,MAAM;AAAA,EAChB,CAAA;AAEA,EAAA,MAAM,EAAE,KAAA,EAAO,CAAA,EAAG,WAAW,EAAA,EAAI,0CAAA;AAA4B,IAC3D,IAAA,EAAM,KAAA,CAAM,IAAA;AAAA,IACZ,OAAA;AAAA,IACA,KAAA,mBAAQ,OAAA,CAAQ,KAAA,UAAS,KAAA,CAAM,OAAA;AAAA,IAC/B,YAAA,mBAAc,OAAA,CAAQ,YAAA,UAAgB,KAAA,CAAM,cAAA;AAAA,IAC5C,QAAA,EAAU,KAAA,CAAM;AAAA,EAClB,CAAC,CAAA;AAED,EAAA,OAAO,EAAE,KAAA,EAAO,CAAA,EAAG,UAAA,EAAY,MAAM,CAAA;AACvC;ADZA;AACA;AEpBA;AAcI,+CAAA;AATJ,IAAM,kBAAA,EAAoB,kCAAA,CAA8B,CAAC,CAAA;AAOlD,SAAS,kBAAA,CAAmB,EAAE,UAAA,EAAY,SAAS,CAAA,EAA4B;AACpF,EAAA,uBACE,6BAAA,iBAAC,CAAkB,QAAA,EAAlB,EAA2B,KAAA,EAAO,UAAA,EAChC,SAAA,CACH,CAAA;AAEJ;AAEO,SAAS,kBAAA,CAAA,EAAoC;AAClD,EAAA,OAAO,+BAAA,iBAA4B,CAAA;AACrC;AFQA;AACA;AGDI;AAhBG,SAAS,KAAA,CAAsD;AAAA,EACpE,KAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6B;AAC3B,EAAA,MAAM,kBAAA,EAAoB,kBAAA,CAAmB,CAAA;AAC7C,EAAA,MAAM,UAAA,oCAAY,SAAA,UAAa,iBAAA,CAAkB,KAAA,CAAM,IAAI,GAAA,UAAK,iBAAA,CAAkB,MAAM,GAAA;AACxF,EAAA,MAAM,EAAE,KAAA,EAAO,CAAA,EAAG,UAAA,EAAY,MAAM,EAAA,EAAI,QAAA,CAAS,KAAA,EAAO,OAAA,EAAS,EAAE,MAAM,CAAC,CAAA;AAE1E,EAAA,GAAA,CAAI,CAAC,KAAA,CAAM,OAAA,EAAS;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEA,6BAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA;AAAA,MACX,WAAA,EAAa,KAAA;AAAA,MACb,UAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,UAAA,CAAW,KAAA;AAAA,MAClB,QAAA,EAAU,KAAA,CAAM,QAAA;AAAA,MAChB,QAAA,EAAU,KAAA,CAAM,QAAA;AAAA,MACf,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AHmBA;AACA;AACE;AACA;AACA;AACA;AACF,qJAAC","file":"/Users/abeleko/Documents/larven/formjs/packages/react/dist/chunk-3PMQZRSQ.cjs","sourcesContent":[null,"import { useMemo } from 'react';\nimport { useController, useWatch } from 'react-hook-form';\nimport type { Control, FieldPath, FieldValues, RegisterOptions } from 'react-hook-form';\nimport { getFieldState, type FieldConfig } from '@form-os/core';\n\nexport interface UseFieldOptions {\n rules?: RegisterOptions;\n defaultValue?: any;\n}\n\nexport function useField<TFieldValues extends FieldValues = FieldValues>(\n field: FieldConfig,\n control: Control<TFieldValues>,\n options: UseFieldOptions = {}\n) {\n const values = useWatch({ control }) as Record<string, any>;\n\n const state = useMemo(\n () => getFieldState(field, values ?? {}),\n [field, values]\n );\n\n const { field: f, fieldState } = useController<TFieldValues>({\n name: field.name as FieldPath<TFieldValues>,\n control,\n rules: (options.rules ?? field.rules) as RegisterOptions<TFieldValues> | undefined,\n defaultValue: options.defaultValue ?? field.defaultValue,\n disabled: state.disabled,\n });\n\n return { field: f, fieldState, state };\n}\n","import { createContext, useContext } from 'react';\nimport type { ComponentType, ReactNode } from 'react';\n\nexport type ComponentsMap = Record<string, ComponentType<any>>;\n\nconst FormFieldsContext = createContext<ComponentsMap>({});\n\nexport interface FormFieldsProviderProps {\n components: ComponentsMap;\n children: ReactNode;\n}\n\nexport function FormFieldsProvider({ components, children }: FormFieldsProviderProps) {\n return (\n <FormFieldsContext.Provider value={components}>\n {children}\n </FormFieldsContext.Provider>\n );\n}\n\nexport function useFieldComponents(): ComponentsMap {\n return useContext(FormFieldsContext);\n}\n","import type { ComponentType } from 'react';\nimport type { Control, FieldValues, RegisterOptions } from 'react-hook-form';\nimport type { FieldConfig } from '@form-os/core';\nimport { useField } from './useField';\nimport { useFieldComponents } from './FormFieldsContext';\n\nexport interface FieldProps<TFieldValues extends FieldValues = FieldValues> {\n field: FieldConfig;\n control: Control<TFieldValues>;\n component?: ComponentType<any>;\n rules?: RegisterOptions;\n [key: string]: any;\n}\n\nexport function Field<TFieldValues extends FieldValues = FieldValues>({\n field,\n control,\n component,\n rules,\n ...rest\n}: FieldProps<TFieldValues>) {\n const contextComponents = useFieldComponents();\n const Component = component ?? contextComponents[field.type] ?? contextComponents['text'];\n const { field: f, fieldState, state } = useField(field, control, { rules });\n\n if (!state.visible) {\n return null;\n }\n\n return (\n <Component\n formField={f}\n fieldConfig={field}\n fieldState={state}\n error={fieldState.error}\n disabled={state.disabled}\n readonly={state.readonly}\n {...rest}\n />\n );\n}\n"]}
@@ -31,7 +31,13 @@ function useFieldComponents() {
31
31
 
32
32
  // src/Field.tsx
33
33
  import { jsx as jsx2 } from "react/jsx-runtime";
34
- function Field({ field, control, component, rules, ...rest }) {
34
+ function Field({
35
+ field,
36
+ control,
37
+ component,
38
+ rules,
39
+ ...rest
40
+ }) {
35
41
  const contextComponents = useFieldComponents();
36
42
  const Component = component ?? contextComponents[field.type] ?? contextComponents["text"];
37
43
  const { field: f, fieldState, state } = useField(field, control, { rules });
@@ -58,4 +64,4 @@ export {
58
64
  useFieldComponents,
59
65
  Field
60
66
  };
61
- //# sourceMappingURL=chunk-N346U2SM.js.map
67
+ //# sourceMappingURL=chunk-IHVV2WZM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/useField.ts","../src/FormFieldsContext.tsx","../src/Field.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useController, useWatch } from 'react-hook-form';\nimport type { Control, FieldPath, FieldValues, RegisterOptions } from 'react-hook-form';\nimport { getFieldState, type FieldConfig } from '@form-os/core';\n\nexport interface UseFieldOptions {\n rules?: RegisterOptions;\n defaultValue?: any;\n}\n\nexport function useField<TFieldValues extends FieldValues = FieldValues>(\n field: FieldConfig,\n control: Control<TFieldValues>,\n options: UseFieldOptions = {}\n) {\n const values = useWatch({ control }) as Record<string, any>;\n\n const state = useMemo(\n () => getFieldState(field, values ?? {}),\n [field, values]\n );\n\n const { field: f, fieldState } = useController<TFieldValues>({\n name: field.name as FieldPath<TFieldValues>,\n control,\n rules: (options.rules ?? field.rules) as RegisterOptions<TFieldValues> | undefined,\n defaultValue: options.defaultValue ?? field.defaultValue,\n disabled: state.disabled,\n });\n\n return { field: f, fieldState, state };\n}\n","import { createContext, useContext } from 'react';\nimport type { ComponentType, ReactNode } from 'react';\n\nexport type ComponentsMap = Record<string, ComponentType<any>>;\n\nconst FormFieldsContext = createContext<ComponentsMap>({});\n\nexport interface FormFieldsProviderProps {\n components: ComponentsMap;\n children: ReactNode;\n}\n\nexport function FormFieldsProvider({ components, children }: FormFieldsProviderProps) {\n return (\n <FormFieldsContext.Provider value={components}>\n {children}\n </FormFieldsContext.Provider>\n );\n}\n\nexport function useFieldComponents(): ComponentsMap {\n return useContext(FormFieldsContext);\n}\n","import type { ComponentType } from 'react';\nimport type { Control, FieldValues, RegisterOptions } from 'react-hook-form';\nimport type { FieldConfig } from '@form-os/core';\nimport { useField } from './useField';\nimport { useFieldComponents } from './FormFieldsContext';\n\nexport interface FieldProps<TFieldValues extends FieldValues = FieldValues> {\n field: FieldConfig;\n control: Control<TFieldValues>;\n component?: ComponentType<any>;\n rules?: RegisterOptions;\n [key: string]: any;\n}\n\nexport function Field<TFieldValues extends FieldValues = FieldValues>({\n field,\n control,\n component,\n rules,\n ...rest\n}: FieldProps<TFieldValues>) {\n const contextComponents = useFieldComponents();\n const Component = component ?? contextComponents[field.type] ?? contextComponents['text'];\n const { field: f, fieldState, state } = useField(field, control, { rules });\n\n if (!state.visible) {\n return null;\n }\n\n return (\n <Component\n formField={f}\n fieldConfig={field}\n fieldState={state}\n error={fieldState.error}\n disabled={state.disabled}\n readonly={state.readonly}\n {...rest}\n />\n );\n}\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,eAAe,gBAAgB;AAExC,SAAS,qBAAuC;AAOzC,SAAS,SACd,OACA,SACA,UAA2B,CAAC,GAC5B;AACA,QAAM,SAAS,SAAS,EAAE,QAAQ,CAAC;AAEnC,QAAM,QAAQ;AAAA,IACZ,MAAM,cAAc,OAAO,UAAU,CAAC,CAAC;AAAA,IACvC,CAAC,OAAO,MAAM;AAAA,EAChB;AAEA,QAAM,EAAE,OAAO,GAAG,WAAW,IAAI,cAA4B;AAAA,IAC3D,MAAM,MAAM;AAAA,IACZ;AAAA,IACA,OAAQ,QAAQ,SAAS,MAAM;AAAA,IAC/B,cAAc,QAAQ,gBAAgB,MAAM;AAAA,IAC5C,UAAU,MAAM;AAAA,EAClB,CAAC;AAED,SAAO,EAAE,OAAO,GAAG,YAAY,MAAM;AACvC;;;AC/BA,SAAS,eAAe,kBAAkB;AActC;AATJ,IAAM,oBAAoB,cAA6B,CAAC,CAAC;AAOlD,SAAS,mBAAmB,EAAE,YAAY,SAAS,GAA4B;AACpF,SACE,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,YAChC,UACH;AAEJ;AAEO,SAAS,qBAAoC;AAClD,SAAO,WAAW,iBAAiB;AACrC;;;ACQI,gBAAAA,YAAA;AAhBG,SAAS,MAAsD;AAAA,EACpE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA6B;AAC3B,QAAM,oBAAoB,mBAAmB;AAC7C,QAAM,YAAY,aAAa,kBAAkB,MAAM,IAAI,KAAK,kBAAkB,MAAM;AACxF,QAAM,EAAE,OAAO,GAAG,YAAY,MAAM,IAAI,SAAS,OAAO,SAAS,EAAE,MAAM,CAAC;AAE1E,MAAI,CAAC,MAAM,SAAS;AAClB,WAAO;AAAA,EACT;AAEA,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,OAAO,WAAW;AAAA,MAClB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MACf,GAAG;AAAA;AAAA,EACN;AAEJ;","names":["jsx"]}
@@ -1,6 +1,6 @@
1
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; }
2
2
 
3
- var _chunkCYMOPAGJcjs = require('../chunk-CYMOPAGJ.cjs');
3
+ var _chunk3PMQZRSQcjs = require('../chunk-3PMQZRSQ.cjs');
4
4
 
5
5
  // src/fields/TextField.tsx
6
6
  var _jsxruntime = require('react/jsx-runtime');
@@ -256,7 +256,7 @@ function DefaultField({
256
256
  }) {
257
257
  const components = defaultComponents;
258
258
  const resolved = _nullishCoalesce(_nullishCoalesce(component, () => ( components[field.type])), () => ( components["text"]));
259
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkCYMOPAGJcjs.Field, { field, control, component: resolved, ...rest });
259
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk3PMQZRSQcjs.Field, { field, control, component: resolved, ...rest });
260
260
  }
261
261
 
262
262
 
@@ -1 +1 @@
1
- {"version":3,"sources":["/Users/abeleko/Documents/larven/formjs/packages/react/dist/fields/index.cjs","../../src/fields/TextField.tsx","../../src/fields/NumberField.tsx","../../src/fields/EmailField.tsx","../../src/fields/PasswordField.tsx","../../src/fields/TextAreaField.tsx","../../src/fields/DateField.tsx","../../src/fields/SelectField.tsx","../../src/fields/CheckboxField.tsx","../../src/fields/RadioField.tsx","../../src/fields/SwitchField.tsx","../../src/fields/defaultComponents.ts","../../src/fields/DefaultField.tsx"],"names":["jsx"],"mappings":"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","file":"/Users/abeleko/Documents/larven/formjs/packages/react/dist/fields/index.cjs","sourcesContent":[null,"import type { FieldComponentProps } from './types';\n\nexport function TextField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"text\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function NumberField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"number\"\n min={fieldConfig.rules?.min}\n max={fieldConfig.rules?.max}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function EmailField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"email\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function PasswordField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"password\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function TextAreaField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <textarea\n ref={ref}\n {...field}\n rows={fieldConfig.props?.rows ?? 3}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function DateField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"date\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SelectField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n const multiple = !!fieldConfig.props?.multiple;\n\n return (\n <select\n ref={ref}\n {...field}\n multiple={multiple}\n className={className}\n {...rest}\n >\n {fieldConfig.options?.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function CheckboxField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function RadioField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, onChange, onBlur, name, value } = formField;\n\n return (\n <div className={className} {...rest}>\n {fieldConfig.options?.map((opt) => (\n <label key={opt.value}>\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n onBlur={onBlur}\n ref={value === opt.value ? ref : undefined}\n />\n {opt.label}\n </label>\n ))}\n </div>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SwitchField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import { TextField } from './TextField';\nimport { NumberField } from './NumberField';\nimport { EmailField } from './EmailField';\nimport { PasswordField } from './PasswordField';\nimport { TextAreaField } from './TextAreaField';\nimport { DateField } from './DateField';\nimport { SelectField } from './SelectField';\nimport { CheckboxField } from './CheckboxField';\nimport { RadioField } from './RadioField';\nimport { SwitchField } from './SwitchField';\n\nexport const defaultComponents = {\n text: TextField,\n number: NumberField,\n email: EmailField,\n password: PasswordField,\n textarea: TextAreaField,\n date: DateField,\n select: SelectField,\n checkbox: CheckboxField,\n radio: RadioField,\n switch: SwitchField,\n};\n","import type { ComponentType } from 'react';\nimport { Field, type FieldProps } from '../Field';\nimport { defaultComponents } from './defaultComponents';\n\nexport function DefaultField({\n field,\n control,\n component,\n ...rest\n}: FieldProps) {\n const components = defaultComponents as Record<string, ComponentType<any>>;\n const resolved = component ?? components[field.type] ?? components['text'];\n return <Field field={field} control={control} component={resolved} {...rest} />;\n}\n"]}
1
+ {"version":3,"sources":["/Users/abeleko/Documents/larven/formjs/packages/react/dist/fields/index.cjs","../../src/fields/TextField.tsx","../../src/fields/NumberField.tsx","../../src/fields/EmailField.tsx","../../src/fields/PasswordField.tsx","../../src/fields/TextAreaField.tsx","../../src/fields/DateField.tsx","../../src/fields/SelectField.tsx","../../src/fields/CheckboxField.tsx","../../src/fields/RadioField.tsx","../../src/fields/SwitchField.tsx","../../src/fields/defaultComponents.ts","../../src/fields/DefaultField.tsx"],"names":["jsx"],"mappings":"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","file":"/Users/abeleko/Documents/larven/formjs/packages/react/dist/fields/index.cjs","sourcesContent":[null,"import type { FieldComponentProps } from './types';\n\nexport function TextField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"text\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function NumberField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"number\"\n min={fieldConfig.rules?.min}\n max={fieldConfig.rules?.max}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function EmailField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"email\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function PasswordField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"password\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function TextAreaField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <textarea\n ref={ref}\n {...field}\n rows={fieldConfig.props?.rows ?? 3}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function DateField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"date\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SelectField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n const multiple = !!fieldConfig.props?.multiple;\n\n return (\n <select\n ref={ref}\n {...field}\n multiple={multiple}\n className={className}\n {...rest}\n >\n {fieldConfig.options?.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function CheckboxField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function RadioField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, onChange, onBlur, name, value } = formField;\n\n return (\n <div className={className} {...rest}>\n {fieldConfig.options?.map((opt) => (\n <label key={opt.value}>\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n onBlur={onBlur}\n ref={value === opt.value ? ref : undefined}\n />\n {opt.label}\n </label>\n ))}\n </div>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SwitchField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import { TextField } from './TextField';\nimport { NumberField } from './NumberField';\nimport { EmailField } from './EmailField';\nimport { PasswordField } from './PasswordField';\nimport { TextAreaField } from './TextAreaField';\nimport { DateField } from './DateField';\nimport { SelectField } from './SelectField';\nimport { CheckboxField } from './CheckboxField';\nimport { RadioField } from './RadioField';\nimport { SwitchField } from './SwitchField';\n\nexport const defaultComponents = {\n text: TextField,\n number: NumberField,\n email: EmailField,\n password: PasswordField,\n textarea: TextAreaField,\n date: DateField,\n select: SelectField,\n checkbox: CheckboxField,\n radio: RadioField,\n switch: SwitchField,\n};\n","import type { ComponentType } from 'react';\nimport type { FieldValues } from 'react-hook-form';\nimport { Field, type FieldProps } from '../Field';\nimport { defaultComponents } from './defaultComponents';\n\nexport function DefaultField<TFieldValues extends FieldValues = FieldValues>({\n field,\n control,\n component,\n ...rest\n}: FieldProps<TFieldValues>) {\n const components = defaultComponents as Record<string, ComponentType<any>>;\n const resolved = component ?? components[field.type] ?? components['text'];\n return <Field field={field} control={control} component={resolved} {...rest} />;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { FieldConfig, FieldState } from '@form-os/core';
2
- import { ControllerRenderProps, FieldError } from 'react-hook-form';
2
+ import { ControllerRenderProps, FieldError, FieldValues } from 'react-hook-form';
3
3
  import * as react from 'react';
4
- import { F as FieldProps } from '../Field-Bq9-eB99.cjs';
4
+ import { F as FieldProps } from '../Field-BZNec30e.cjs';
5
5
 
6
6
  interface FieldComponentProps {
7
7
  formField: ControllerRenderProps;
@@ -47,6 +47,6 @@ declare const defaultComponents: {
47
47
  switch: typeof SwitchField;
48
48
  };
49
49
 
50
- declare function DefaultField({ field, control, component, ...rest }: FieldProps): react.JSX.Element;
50
+ declare function DefaultField<TFieldValues extends FieldValues = FieldValues>({ field, control, component, ...rest }: FieldProps<TFieldValues>): react.JSX.Element;
51
51
 
52
52
  export { CheckboxField, DateField, DefaultField, EmailField, type FieldComponentProps, NumberField, PasswordField, RadioField, SelectField, SwitchField, TextAreaField, TextField, defaultComponents };
@@ -1,7 +1,7 @@
1
1
  import { FieldConfig, FieldState } from '@form-os/core';
2
- import { ControllerRenderProps, FieldError } from 'react-hook-form';
2
+ import { ControllerRenderProps, FieldError, FieldValues } from 'react-hook-form';
3
3
  import * as react from 'react';
4
- import { F as FieldProps } from '../Field-Bq9-eB99.js';
4
+ import { F as FieldProps } from '../Field-BZNec30e.js';
5
5
 
6
6
  interface FieldComponentProps {
7
7
  formField: ControllerRenderProps;
@@ -47,6 +47,6 @@ declare const defaultComponents: {
47
47
  switch: typeof SwitchField;
48
48
  };
49
49
 
50
- declare function DefaultField({ field, control, component, ...rest }: FieldProps): react.JSX.Element;
50
+ declare function DefaultField<TFieldValues extends FieldValues = FieldValues>({ field, control, component, ...rest }: FieldProps<TFieldValues>): react.JSX.Element;
51
51
 
52
52
  export { CheckboxField, DateField, DefaultField, EmailField, type FieldComponentProps, NumberField, PasswordField, RadioField, SelectField, SwitchField, TextAreaField, TextField, defaultComponents };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Field
3
- } from "../chunk-N346U2SM.js";
3
+ } from "../chunk-IHVV2WZM.js";
4
4
 
5
5
  // src/fields/TextField.tsx
6
6
  import { jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fields/TextField.tsx","../../src/fields/NumberField.tsx","../../src/fields/EmailField.tsx","../../src/fields/PasswordField.tsx","../../src/fields/TextAreaField.tsx","../../src/fields/DateField.tsx","../../src/fields/SelectField.tsx","../../src/fields/CheckboxField.tsx","../../src/fields/RadioField.tsx","../../src/fields/SwitchField.tsx","../../src/fields/defaultComponents.ts","../../src/fields/DefaultField.tsx"],"sourcesContent":["import type { FieldComponentProps } from './types';\n\nexport function TextField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"text\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function NumberField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"number\"\n min={fieldConfig.rules?.min}\n max={fieldConfig.rules?.max}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function EmailField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"email\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function PasswordField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"password\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function TextAreaField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <textarea\n ref={ref}\n {...field}\n rows={fieldConfig.props?.rows ?? 3}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function DateField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"date\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SelectField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n const multiple = !!fieldConfig.props?.multiple;\n\n return (\n <select\n ref={ref}\n {...field}\n multiple={multiple}\n className={className}\n {...rest}\n >\n {fieldConfig.options?.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function CheckboxField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function RadioField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, onChange, onBlur, name, value } = formField;\n\n return (\n <div className={className} {...rest}>\n {fieldConfig.options?.map((opt) => (\n <label key={opt.value}>\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n onBlur={onBlur}\n ref={value === opt.value ? ref : undefined}\n />\n {opt.label}\n </label>\n ))}\n </div>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SwitchField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import { TextField } from './TextField';\nimport { NumberField } from './NumberField';\nimport { EmailField } from './EmailField';\nimport { PasswordField } from './PasswordField';\nimport { TextAreaField } from './TextAreaField';\nimport { DateField } from './DateField';\nimport { SelectField } from './SelectField';\nimport { CheckboxField } from './CheckboxField';\nimport { RadioField } from './RadioField';\nimport { SwitchField } from './SwitchField';\n\nexport const defaultComponents = {\n text: TextField,\n number: NumberField,\n email: EmailField,\n password: PasswordField,\n textarea: TextAreaField,\n date: DateField,\n select: SelectField,\n checkbox: CheckboxField,\n radio: RadioField,\n switch: SwitchField,\n};\n","import type { ComponentType } from 'react';\nimport { Field, type FieldProps } from '../Field';\nimport { defaultComponents } from './defaultComponents';\n\nexport function DefaultField({\n field,\n control,\n component,\n ...rest\n}: FieldProps) {\n const components = defaultComponents as Record<string, ComponentType<any>>;\n const resolved = component ?? components[field.type] ?? components['text'];\n return <Field field={field} control={control} component={resolved} {...rest} />;\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx"]}
1
+ {"version":3,"sources":["../../src/fields/TextField.tsx","../../src/fields/NumberField.tsx","../../src/fields/EmailField.tsx","../../src/fields/PasswordField.tsx","../../src/fields/TextAreaField.tsx","../../src/fields/DateField.tsx","../../src/fields/SelectField.tsx","../../src/fields/CheckboxField.tsx","../../src/fields/RadioField.tsx","../../src/fields/SwitchField.tsx","../../src/fields/defaultComponents.ts","../../src/fields/DefaultField.tsx"],"sourcesContent":["import type { FieldComponentProps } from './types';\n\nexport function TextField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"text\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function NumberField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"number\"\n min={fieldConfig.rules?.min}\n max={fieldConfig.rules?.max}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function EmailField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"email\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function PasswordField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"password\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function TextAreaField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <textarea\n ref={ref}\n {...field}\n rows={fieldConfig.props?.rows ?? 3}\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function DateField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n return (\n <input\n ref={ref}\n {...field}\n type=\"date\"\n placeholder={fieldConfig.placeholder}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SelectField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, ...field } = formField;\n const multiple = !!fieldConfig.props?.multiple;\n\n return (\n <select\n ref={ref}\n {...field}\n multiple={multiple}\n className={className}\n {...rest}\n >\n {fieldConfig.options?.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function CheckboxField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function RadioField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, onChange, onBlur, name, value } = formField;\n\n return (\n <div className={className} {...rest}>\n {fieldConfig.options?.map((opt) => (\n <label key={opt.value}>\n <input\n type=\"radio\"\n name={name}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => onChange(opt.value)}\n onBlur={onBlur}\n ref={value === opt.value ? ref : undefined}\n />\n {opt.label}\n </label>\n ))}\n </div>\n );\n}\n","import type { FieldComponentProps } from './types';\n\nexport function SwitchField({\n formField,\n fieldConfig,\n className,\n ...rest\n}: FieldComponentProps) {\n const { ref, value, ...field } = formField;\n return (\n <input\n ref={ref}\n type=\"checkbox\"\n role=\"switch\"\n checked={!!value}\n {...field}\n onChange={(e) => field.onChange(e.target.checked)}\n className={className}\n {...rest}\n />\n );\n}\n","import { TextField } from './TextField';\nimport { NumberField } from './NumberField';\nimport { EmailField } from './EmailField';\nimport { PasswordField } from './PasswordField';\nimport { TextAreaField } from './TextAreaField';\nimport { DateField } from './DateField';\nimport { SelectField } from './SelectField';\nimport { CheckboxField } from './CheckboxField';\nimport { RadioField } from './RadioField';\nimport { SwitchField } from './SwitchField';\n\nexport const defaultComponents = {\n text: TextField,\n number: NumberField,\n email: EmailField,\n password: PasswordField,\n textarea: TextAreaField,\n date: DateField,\n select: SelectField,\n checkbox: CheckboxField,\n radio: RadioField,\n switch: SwitchField,\n};\n","import type { ComponentType } from 'react';\nimport type { FieldValues } from 'react-hook-form';\nimport { Field, type FieldProps } from '../Field';\nimport { defaultComponents } from './defaultComponents';\n\nexport function DefaultField<TFieldValues extends FieldValues = FieldValues>({\n field,\n control,\n component,\n ...rest\n}: FieldProps<TFieldValues>) {\n const components = defaultComponents as Record<string, ComponentType<any>>;\n const resolved = component ?? components[field.type] ?? components['text'];\n return <Field field={field} control={control} component={resolved} {...rest} />;\n}\n"],"mappings":"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","names":["jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx","jsx"]}
package/dist/index.cjs CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkCYMOPAGJcjs = require('./chunk-CYMOPAGJ.cjs');
6
+ var _chunk3PMQZRSQcjs = require('./chunk-3PMQZRSQ.cjs');
7
7
 
8
8
  // src/useFormConfig.ts
9
9
  var _react = require('react');
@@ -38,5 +38,5 @@ function useFormConfig(config) {
38
38
 
39
39
 
40
40
 
41
- exports.Field = _chunkCYMOPAGJcjs.Field; exports.FormFieldsProvider = _chunkCYMOPAGJcjs.FormFieldsProvider; exports.FormProvider = _reacthookform.FormProvider; exports.useField = _chunkCYMOPAGJcjs.useField; exports.useFieldComponents = _chunkCYMOPAGJcjs.useFieldComponents; exports.useForm = _reacthookform.useForm; exports.useFormConfig = useFormConfig; exports.useFormContext = _reacthookform.useFormContext;
41
+ exports.Field = _chunk3PMQZRSQcjs.Field; exports.FormFieldsProvider = _chunk3PMQZRSQcjs.FormFieldsProvider; exports.FormProvider = _reacthookform.FormProvider; exports.useField = _chunk3PMQZRSQcjs.useField; exports.useFieldComponents = _chunk3PMQZRSQcjs.useFieldComponents; exports.useForm = _reacthookform.useForm; exports.useFormConfig = useFormConfig; exports.useFormContext = _reacthookform.useFormContext;
42
42
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -3,7 +3,7 @@ import { FieldValues, UseFormReturn, RegisterOptions, Control } from 'react-hook
3
3
  export { Control, FormProvider, RegisterOptions, UseFormProps, useForm, useFormContext } from 'react-hook-form';
4
4
  import * as _form_os_core from '@form-os/core';
5
5
  import { FieldConfig, FormConfig } from '@form-os/core';
6
- export { a as Field, F as FieldProps } from './Field-Bq9-eB99.cjs';
6
+ export { a as Field, F as FieldProps } from './Field-BZNec30e.cjs';
7
7
  import * as react from 'react';
8
8
  import { ComponentType, ReactNode } from 'react';
9
9
 
@@ -15,8 +15,8 @@ interface UseFieldOptions {
15
15
  rules?: RegisterOptions;
16
16
  defaultValue?: any;
17
17
  }
18
- declare function useField(field: FieldConfig, control: Control, options?: UseFieldOptions): {
19
- field: react_hook_form.ControllerRenderProps<react_hook_form.FieldValues, string>;
18
+ declare function useField<TFieldValues extends FieldValues = FieldValues>(field: FieldConfig, control: Control<TFieldValues>, options?: UseFieldOptions): {
19
+ field: react_hook_form.ControllerRenderProps<TFieldValues, react_hook_form.Path<TFieldValues>>;
20
20
  fieldState: react_hook_form.ControllerFieldState;
21
21
  state: _form_os_core.FieldState;
22
22
  };
package/dist/index.d.ts CHANGED
@@ -3,7 +3,7 @@ import { FieldValues, UseFormReturn, RegisterOptions, Control } from 'react-hook
3
3
  export { Control, FormProvider, RegisterOptions, UseFormProps, useForm, useFormContext } from 'react-hook-form';
4
4
  import * as _form_os_core from '@form-os/core';
5
5
  import { FieldConfig, FormConfig } from '@form-os/core';
6
- export { a as Field, F as FieldProps } from './Field-Bq9-eB99.js';
6
+ export { a as Field, F as FieldProps } from './Field-BZNec30e.js';
7
7
  import * as react from 'react';
8
8
  import { ComponentType, ReactNode } from 'react';
9
9
 
@@ -15,8 +15,8 @@ interface UseFieldOptions {
15
15
  rules?: RegisterOptions;
16
16
  defaultValue?: any;
17
17
  }
18
- declare function useField(field: FieldConfig, control: Control, options?: UseFieldOptions): {
19
- field: react_hook_form.ControllerRenderProps<react_hook_form.FieldValues, string>;
18
+ declare function useField<TFieldValues extends FieldValues = FieldValues>(field: FieldConfig, control: Control<TFieldValues>, options?: UseFieldOptions): {
19
+ field: react_hook_form.ControllerRenderProps<TFieldValues, react_hook_form.Path<TFieldValues>>;
20
20
  fieldState: react_hook_form.ControllerFieldState;
21
21
  state: _form_os_core.FieldState;
22
22
  };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  FormFieldsProvider,
4
4
  useField,
5
5
  useFieldComponents
6
- } from "./chunk-N346U2SM.js";
6
+ } from "./chunk-IHVV2WZM.js";
7
7
 
8
8
  // src/useFormConfig.ts
9
9
  import { useMemo } from "react";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@form-os/react",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.cjs",
@@ -30,7 +30,7 @@
30
30
  "react-hook-form": ">=7.0.0"
31
31
  },
32
32
  "dependencies": {
33
- "@form-os/core": "0.3.0"
33
+ "@form-os/core": "0.4.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/react": "^18.2.0",
@@ -1,15 +0,0 @@
1
- import * as react from 'react';
2
- import { ComponentType } from 'react';
3
- import { Control, RegisterOptions } from 'react-hook-form';
4
- import { FieldConfig } from '@form-os/core';
5
-
6
- interface FieldProps {
7
- field: FieldConfig;
8
- control: Control;
9
- component?: ComponentType<any>;
10
- rules?: RegisterOptions;
11
- [key: string]: any;
12
- }
13
- declare function Field({ field, control, component, rules, ...rest }: FieldProps): react.JSX.Element | null;
14
-
15
- export { type FieldProps as F, Field as a };
@@ -1,15 +0,0 @@
1
- import * as react from 'react';
2
- import { ComponentType } from 'react';
3
- import { Control, RegisterOptions } from 'react-hook-form';
4
- import { FieldConfig } from '@form-os/core';
5
-
6
- interface FieldProps {
7
- field: FieldConfig;
8
- control: Control;
9
- component?: ComponentType<any>;
10
- rules?: RegisterOptions;
11
- [key: string]: any;
12
- }
13
- declare function Field({ field, control, component, rules, ...rest }: FieldProps): react.JSX.Element | null;
14
-
15
- export { type FieldProps as F, Field as a };
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/abeleko/Documents/larven/formjs/packages/react/dist/chunk-CYMOPAGJ.cjs","../src/useField.ts","../src/FormFieldsContext.tsx","../src/Field.tsx"],"names":["jsx"],"mappings":"AAAA;ACAA,8BAAwB;AACxB,gDAAwC;AAExC,qCAAgD;AAOzC,SAAS,QAAA,CACd,KAAA,EACA,OAAA,EACA,QAAA,EAA2B,CAAC,CAAA,EAC5B;AACA,EAAA,MAAM,OAAA,EAAS,qCAAA,EAAW,QAAQ,CAAC,CAAA;AAEnC,EAAA,MAAM,MAAA,EAAQ,4BAAA;AAAA,IACZ,CAAA,EAAA,GAAM,iCAAA,KAAc,mBAAO,MAAA,UAAU,CAAC,GAAC,CAAA;AAAA,IACvC,CAAC,KAAA,EAAO,MAAM;AAAA,EAChB,CAAA;AAEA,EAAA,MAAM,EAAE,KAAA,EAAO,CAAA,EAAG,WAAW,EAAA,EAAI,0CAAA;AAAc,IAC7C,IAAA,EAAM,KAAA,CAAM,IAAA;AAAA,IACZ,OAAA;AAAA,IACA,KAAA,mBAAO,OAAA,CAAQ,KAAA,UAAU,KAAA,CAAM,OAAA;AAAA,IAC/B,YAAA,mBAAc,OAAA,CAAQ,YAAA,UAAgB,KAAA,CAAM,cAAA;AAAA,IAC5C,QAAA,EAAU,KAAA,CAAM;AAAA,EAClB,CAAC,CAAA;AAED,EAAA,OAAO,EAAE,KAAA,EAAO,CAAA,EAAG,UAAA,EAAY,MAAM,CAAA;AACvC;ADZA;AACA;AEpBA;AAcI,+CAAA;AATJ,IAAM,kBAAA,EAAoB,kCAAA,CAA8B,CAAC,CAAA;AAOlD,SAAS,kBAAA,CAAmB,EAAE,UAAA,EAAY,SAAS,CAAA,EAA4B;AACpF,EAAA,uBACE,6BAAA,iBAAC,CAAkB,QAAA,EAAlB,EAA2B,KAAA,EAAO,UAAA,EAChC,SAAA,CACH,CAAA;AAEJ;AAEO,SAAS,kBAAA,CAAA,EAAoC;AAClD,EAAA,OAAO,+BAAA,iBAA4B,CAAA;AACrC;AFQA;AACA;AGPI;AAVG,SAAS,KAAA,CAAM,EAAE,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,KAAA,EAAO,GAAG,KAAK,CAAA,EAAe;AAC/E,EAAA,MAAM,kBAAA,EAAoB,kBAAA,CAAmB,CAAA;AAC7C,EAAA,MAAM,UAAA,oCAAY,SAAA,UAAa,iBAAA,CAAkB,KAAA,CAAM,IAAI,GAAA,UAAK,iBAAA,CAAkB,MAAM,GAAA;AACxF,EAAA,MAAM,EAAE,KAAA,EAAO,CAAA,EAAG,UAAA,EAAY,MAAM,EAAA,EAAI,QAAA,CAAS,KAAA,EAAO,OAAA,EAAS,EAAE,MAAM,CAAC,CAAA;AAE1E,EAAA,GAAA,CAAI,CAAC,KAAA,CAAM,OAAA,EAAS;AAClB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACEA,6BAAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA;AAAA,MACX,WAAA,EAAa,KAAA;AAAA,MACb,UAAA,EAAY,KAAA;AAAA,MACZ,KAAA,EAAO,UAAA,CAAW,KAAA;AAAA,MAClB,QAAA,EAAU,KAAA,CAAM,QAAA;AAAA,MAChB,QAAA,EAAU,KAAA,CAAM,QAAA;AAAA,MACf,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AHmBA;AACA;AACE;AACA;AACA;AACA;AACF,qJAAC","file":"/Users/abeleko/Documents/larven/formjs/packages/react/dist/chunk-CYMOPAGJ.cjs","sourcesContent":[null,"import { useMemo } from 'react';\nimport { useController, useWatch } from 'react-hook-form';\nimport type { Control, RegisterOptions } from 'react-hook-form';\nimport { getFieldState, type FieldConfig } from '@form-os/core';\n\nexport interface UseFieldOptions {\n rules?: RegisterOptions;\n defaultValue?: any;\n}\n\nexport function useField(\n field: FieldConfig,\n control: Control,\n options: UseFieldOptions = {}\n) {\n const values = useWatch({ control }) as Record<string, any>;\n\n const state = useMemo(\n () => getFieldState(field, values ?? {}),\n [field, values]\n );\n\n const { field: f, fieldState } = useController({\n name: field.name,\n control,\n rules: options.rules ?? (field.rules as RegisterOptions | undefined),\n defaultValue: options.defaultValue ?? field.defaultValue,\n disabled: state.disabled,\n });\n\n return { field: f, fieldState, state };\n}\n","import { createContext, useContext } from 'react';\nimport type { ComponentType, ReactNode } from 'react';\n\nexport type ComponentsMap = Record<string, ComponentType<any>>;\n\nconst FormFieldsContext = createContext<ComponentsMap>({});\n\nexport interface FormFieldsProviderProps {\n components: ComponentsMap;\n children: ReactNode;\n}\n\nexport function FormFieldsProvider({ components, children }: FormFieldsProviderProps) {\n return (\n <FormFieldsContext.Provider value={components}>\n {children}\n </FormFieldsContext.Provider>\n );\n}\n\nexport function useFieldComponents(): ComponentsMap {\n return useContext(FormFieldsContext);\n}\n","import type { ComponentType } from 'react';\nimport type { Control, RegisterOptions } from 'react-hook-form';\nimport type { FieldConfig } from '@form-os/core';\nimport { useField } from './useField';\nimport { useFieldComponents } from './FormFieldsContext';\n\nexport interface FieldProps {\n field: FieldConfig;\n control: Control;\n component?: ComponentType<any>;\n rules?: RegisterOptions;\n [key: string]: any;\n}\n\nexport function Field({ field, control, component, rules, ...rest }: FieldProps) {\n const contextComponents = useFieldComponents();\n const Component = component ?? contextComponents[field.type] ?? contextComponents['text'];\n const { field: f, fieldState, state } = useField(field, control, { rules });\n\n if (!state.visible) {\n return null;\n }\n\n return (\n <Component\n formField={f}\n fieldConfig={field}\n fieldState={state}\n error={fieldState.error}\n disabled={state.disabled}\n readonly={state.readonly}\n {...rest}\n />\n );\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/useField.ts","../src/FormFieldsContext.tsx","../src/Field.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { useController, useWatch } from 'react-hook-form';\nimport type { Control, RegisterOptions } from 'react-hook-form';\nimport { getFieldState, type FieldConfig } from '@form-os/core';\n\nexport interface UseFieldOptions {\n rules?: RegisterOptions;\n defaultValue?: any;\n}\n\nexport function useField(\n field: FieldConfig,\n control: Control,\n options: UseFieldOptions = {}\n) {\n const values = useWatch({ control }) as Record<string, any>;\n\n const state = useMemo(\n () => getFieldState(field, values ?? {}),\n [field, values]\n );\n\n const { field: f, fieldState } = useController({\n name: field.name,\n control,\n rules: options.rules ?? (field.rules as RegisterOptions | undefined),\n defaultValue: options.defaultValue ?? field.defaultValue,\n disabled: state.disabled,\n });\n\n return { field: f, fieldState, state };\n}\n","import { createContext, useContext } from 'react';\nimport type { ComponentType, ReactNode } from 'react';\n\nexport type ComponentsMap = Record<string, ComponentType<any>>;\n\nconst FormFieldsContext = createContext<ComponentsMap>({});\n\nexport interface FormFieldsProviderProps {\n components: ComponentsMap;\n children: ReactNode;\n}\n\nexport function FormFieldsProvider({ components, children }: FormFieldsProviderProps) {\n return (\n <FormFieldsContext.Provider value={components}>\n {children}\n </FormFieldsContext.Provider>\n );\n}\n\nexport function useFieldComponents(): ComponentsMap {\n return useContext(FormFieldsContext);\n}\n","import type { ComponentType } from 'react';\nimport type { Control, RegisterOptions } from 'react-hook-form';\nimport type { FieldConfig } from '@form-os/core';\nimport { useField } from './useField';\nimport { useFieldComponents } from './FormFieldsContext';\n\nexport interface FieldProps {\n field: FieldConfig;\n control: Control;\n component?: ComponentType<any>;\n rules?: RegisterOptions;\n [key: string]: any;\n}\n\nexport function Field({ field, control, component, rules, ...rest }: FieldProps) {\n const contextComponents = useFieldComponents();\n const Component = component ?? contextComponents[field.type] ?? contextComponents['text'];\n const { field: f, fieldState, state } = useField(field, control, { rules });\n\n if (!state.visible) {\n return null;\n }\n\n return (\n <Component\n formField={f}\n fieldConfig={field}\n fieldState={state}\n error={fieldState.error}\n disabled={state.disabled}\n readonly={state.readonly}\n {...rest}\n />\n );\n}\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,eAAe,gBAAgB;AAExC,SAAS,qBAAuC;AAOzC,SAAS,SACd,OACA,SACA,UAA2B,CAAC,GAC5B;AACA,QAAM,SAAS,SAAS,EAAE,QAAQ,CAAC;AAEnC,QAAM,QAAQ;AAAA,IACZ,MAAM,cAAc,OAAO,UAAU,CAAC,CAAC;AAAA,IACvC,CAAC,OAAO,MAAM;AAAA,EAChB;AAEA,QAAM,EAAE,OAAO,GAAG,WAAW,IAAI,cAAc;AAAA,IAC7C,MAAM,MAAM;AAAA,IACZ;AAAA,IACA,OAAO,QAAQ,SAAU,MAAM;AAAA,IAC/B,cAAc,QAAQ,gBAAgB,MAAM;AAAA,IAC5C,UAAU,MAAM;AAAA,EAClB,CAAC;AAED,SAAO,EAAE,OAAO,GAAG,YAAY,MAAM;AACvC;;;AC/BA,SAAS,eAAe,kBAAkB;AActC;AATJ,IAAM,oBAAoB,cAA6B,CAAC,CAAC;AAOlD,SAAS,mBAAmB,EAAE,YAAY,SAAS,GAA4B;AACpF,SACE,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,YAChC,UACH;AAEJ;AAEO,SAAS,qBAAoC;AAClD,SAAO,WAAW,iBAAiB;AACrC;;;ACEI,gBAAAA,YAAA;AAVG,SAAS,MAAM,EAAE,OAAO,SAAS,WAAW,OAAO,GAAG,KAAK,GAAe;AAC/E,QAAM,oBAAoB,mBAAmB;AAC7C,QAAM,YAAY,aAAa,kBAAkB,MAAM,IAAI,KAAK,kBAAkB,MAAM;AACxF,QAAM,EAAE,OAAO,GAAG,YAAY,MAAM,IAAI,SAAS,OAAO,SAAS,EAAE,MAAM,CAAC;AAE1E,MAAI,CAAC,MAAM,SAAS;AAClB,WAAO;AAAA,EACT;AAEA,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,MACX,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,OAAO,WAAW;AAAA,MAClB,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MACf,GAAG;AAAA;AAAA,EACN;AAEJ;","names":["jsx"]}