@form-os/react 0.5.0 → 0.6.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.
@@ -26,6 +26,12 @@ function TextField({
26
26
 
27
27
  // src/fields/NumberField.tsx
28
28
 
29
+ function getRuleValue(rule) {
30
+ if (rule && typeof rule === "object" && "value" in rule) {
31
+ return rule.value;
32
+ }
33
+ return rule;
34
+ }
29
35
  function NumberField({
30
36
  formField,
31
37
  fieldConfig,
@@ -39,8 +45,8 @@ function NumberField({
39
45
  ref,
40
46
  ...field,
41
47
  type: "number",
42
- min: _optionalChain([fieldConfig, 'access', _ => _.rules, 'optionalAccess', _2 => _2.min]),
43
- max: _optionalChain([fieldConfig, 'access', _3 => _3.rules, 'optionalAccess', _4 => _4.max]),
48
+ min: getRuleValue(_optionalChain([fieldConfig, 'access', _ => _.rules, 'optionalAccess', _2 => _2.min])),
49
+ max: getRuleValue(_optionalChain([fieldConfig, 'access', _3 => _3.rules, 'optionalAccess', _4 => _4.max])),
44
50
  placeholder: fieldConfig.placeholder,
45
51
  className,
46
52
  ...rest
@@ -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 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
+ {"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":"AAAA;AACE;AACF,yDAA8B;AAC9B;AACA;ACMI,+CAAA;AARG,SAAS,SAAA,CAAU;AAAA,EACxB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,MAAM,EAAA,EAAI,SAAA;AAC1B,EAAA,uBACE,6BAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,IAAA,EAAK,MAAA;AAAA,MACL,WAAA,EAAa,WAAA,CAAY,WAAA;AAAA,MACzB,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;ADMA;AACA;AEPI;AAjBJ,SAAS,YAAA,CACP,IAAA,EAC6B;AAC7B,EAAA,GAAA,CAAI,KAAA,GAAQ,OAAO,KAAA,IAAS,SAAA,GAAY,QAAA,GAAW,IAAA,EAAM;AACvD,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,MAAM,EAAA,EAAI,SAAA;AAC1B,EAAA,uBACEA,6BAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,IAAA,EAAK,QAAA;AAAA,MACL,GAAA,EAAK,YAAA,iBAAa,WAAA,mBAAY,KAAA,6BAAO,KAAG,CAAA;AAAA,MACxC,GAAA,EAAK,YAAA,iBAAa,WAAA,qBAAY,KAAA,6BAAO,KAAG,CAAA;AAAA,MACxC,WAAA,EAAa,WAAA,CAAY,WAAA;AAAA,MACzB,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AFyBA;AACA;AG9CI;AARG,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,MAAM,EAAA,EAAI,SAAA;AAC1B,EAAA,uBACEA,6BAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,IAAA,EAAK,OAAA;AAAA,MACL,WAAA,EAAa,WAAA,CAAY,WAAA;AAAA,MACzB,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AH0DA;AACA;AIpEI;AARG,SAAS,aAAA,CAAc;AAAA,EAC5B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,MAAM,EAAA,EAAI,SAAA;AAC1B,EAAA,uBACEA,6BAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,IAAA,EAAK,UAAA;AAAA,MACL,WAAA,EAAa,WAAA,CAAY,WAAA;AAAA,MACzB,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AJgFA;AACA;AK1FI;AARG,SAAS,aAAA,CAAc;AAAA,EAC5B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,MAAM,EAAA,EAAI,SAAA;AAC1B,EAAA,uBACEA,6BAAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,IAAA,mCAAM,WAAA,qBAAY,KAAA,6BAAO,MAAA,UAAQ,GAAA;AAAA,MACjC,WAAA,EAAa,WAAA,CAAY,WAAA;AAAA,MACzB,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;ALsGA;AACA;AMhHI;AARG,SAAS,SAAA,CAAU;AAAA,EACxB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,MAAM,EAAA,EAAI,SAAA;AAC1B,EAAA,uBACEA,6BAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,IAAA,EAAK,MAAA;AAAA,MACL,WAAA,EAAa,WAAA,CAAY,WAAA;AAAA,MACzB,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AN4HA;AACA;AO5HQ;AAlBD,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,GAAG,MAAM,EAAA,EAAI,SAAA;AAC1B,EAAA,MAAM,SAAA,EAAW,CAAC,iBAAC,WAAA,qBAAY,KAAA,6BAAO,UAAA;AAEtC,EAAA,uBACEA,6BAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACC,GAAG,KAAA;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACC,GAAG,IAAA;AAAA,MAEH,QAAA,kBAAA,WAAA,qBAAY,OAAA,+BAAS,GAAA,qBAAI,CAAC,GAAA,EAAA,mBACzBA,6BAAAA,QAAC,EAAA,EAAuB,KAAA,EAAO,GAAA,CAAI,KAAA,EAChC,QAAA,EAAA,GAAA,CAAI,MAAA,CAAA,EADM,GAAA,CAAI,KAEjB,CACD;AAAA,IAAA;AAAA,EACH,CAAA;AAEJ;AP4IA;AACA;AQ7JI;AARG,SAAS,aAAA,CAAc;AAAA,EAC5B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAO,GAAG,MAAM,EAAA,EAAI,SAAA;AACjC,EAAA,uBACEA,6BAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,UAAA;AAAA,MACL,OAAA,EAAS,CAAC,CAAC,KAAA;AAAA,MACV,GAAG,KAAA;AAAA,MACJ,QAAA,EAAU,CAAC,CAAA,EAAA,GAAM,KAAA,CAAM,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AAAA,MAChD,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;ARyKA;AACA;ASjLQ;AAXD,SAAS,UAAA,CAAW;AAAA,EACzB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,QAAA,EAAU,MAAA,EAAQ,IAAA,EAAM,MAAM,EAAA,EAAI,SAAA;AAE/C,EAAA,uBACEA,6BAAAA,KAAC,EAAA,EAAI,SAAA,EAAuB,GAAG,IAAA,EAC5B,QAAA,kBAAA,WAAA,uBAAY,OAAA,+BAAS,GAAA,qBAAI,CAAC,GAAA,EAAA,mBACzB,8BAAA,OAAC,EAAA,EACC,QAAA,EAAA;AAAA,oBAAAA,6BAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,IAAA;AAAA,QACA,KAAA,EAAO,GAAA,CAAI,KAAA;AAAA,QACX,OAAA,EAAS,MAAA,IAAU,GAAA,CAAI,KAAA;AAAA,QACvB,QAAA,EAAU,CAAA,EAAA,GAAM,QAAA,CAAS,GAAA,CAAI,KAAK,CAAA;AAAA,QAClC,MAAA;AAAA,QACA,GAAA,EAAK,MAAA,IAAU,GAAA,CAAI,MAAA,EAAQ,IAAA,EAAM,KAAA;AAAA,MAAA;AAAA,IACnC,CAAA;AAAA,IACC,GAAA,CAAI;AAAA,EAAA,EAAA,CAAA,EAVK,GAAA,CAAI,KAWhB,CACD,IAAA,CACH,CAAA;AAEJ;AT2LA;AACA;AU9MI;AARG,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAO,GAAG,MAAM,EAAA,EAAI,SAAA;AACjC,EAAA,uBACEA,6BAAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,IAAA,EAAK,UAAA;AAAA,MACL,IAAA,EAAK,QAAA;AAAA,MACL,OAAA,EAAS,CAAC,CAAC,KAAA;AAAA,MACV,GAAG,KAAA;AAAA,MACJ,QAAA,EAAU,CAAC,CAAA,EAAA,GAAM,KAAA,CAAM,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AAAA,MAChD,SAAA;AAAA,MACC,GAAG;AAAA,IAAA;AAAA,EACN,CAAA;AAEJ;AV0NA;AACA;AWrOO,IAAM,kBAAA,EAAoB;AAAA,EAC/B,IAAA,EAAM,SAAA;AAAA,EACN,MAAA,EAAQ,WAAA;AAAA,EACR,KAAA,EAAO,UAAA;AAAA,EACP,QAAA,EAAU,aAAA;AAAA,EACV,QAAA,EAAU,aAAA;AAAA,EACV,IAAA,EAAM,SAAA;AAAA,EACN,MAAA,EAAQ,WAAA;AAAA,EACR,QAAA,EAAU,aAAA;AAAA,EACV,KAAA,EAAO,UAAA;AAAA,EACP,MAAA,EAAQ;AACV,CAAA;AXuOA;AACA;AYjPS;AARF,SAAS,YAAA,CAA6D;AAAA,EAC3E,KAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6B;AAC3B,EAAA,MAAM,WAAA,EAAa,iBAAA;AACnB,EAAA,MAAM,SAAA,oCAAW,SAAA,UAAa,UAAA,CAAW,KAAA,CAAM,IAAI,GAAA,UAAK,UAAA,CAAW,MAAM,GAAA;AACzE,EAAA,uBAAOA,6BAAAA,uBAAC,EAAA,EAAM,KAAA,EAAc,OAAA,EAAkB,SAAA,EAAW,QAAA,EAAW,GAAG,KAAA,CAAM,CAAA;AAC/E;AZ4PA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,ibAAC","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\nfunction getRuleValue(\n rule: number | string | { value: number | string; message: string } | undefined\n): number | string | undefined {\n if (rule && typeof rule === 'object' && 'value' in rule) {\n return rule.value;\n }\n return rule;\n}\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={getRuleValue(fieldConfig.rules?.min)}\n max={getRuleValue(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"]}
@@ -26,6 +26,12 @@ function TextField({
26
26
 
27
27
  // src/fields/NumberField.tsx
28
28
  import { jsx as jsx2 } from "react/jsx-runtime";
29
+ function getRuleValue(rule) {
30
+ if (rule && typeof rule === "object" && "value" in rule) {
31
+ return rule.value;
32
+ }
33
+ return rule;
34
+ }
29
35
  function NumberField({
30
36
  formField,
31
37
  fieldConfig,
@@ -39,8 +45,8 @@ function NumberField({
39
45
  ref,
40
46
  ...field,
41
47
  type: "number",
42
- min: fieldConfig.rules?.min,
43
- max: fieldConfig.rules?.max,
48
+ min: getRuleValue(fieldConfig.rules?.min),
49
+ max: getRuleValue(fieldConfig.rules?.max),
44
50
  placeholder: fieldConfig.placeholder,
45
51
  className,
46
52
  ...rest
@@ -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 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"]}
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\nfunction getRuleValue(\n rule: number | string | { value: number | string; message: string } | undefined\n): number | string | undefined {\n if (rule && typeof rule === 'object' && 'value' in rule) {\n return rule.value;\n }\n return rule;\n}\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={getRuleValue(fieldConfig.rules?.min)}\n max={getRuleValue(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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@form-os/react",
3
- "version": "0.5.0",
3
+ "version": "0.6.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.5.0"
33
+ "@form-os/core": "0.6.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/react": "^18.2.0",