@saas-ui/forms 2.0.0-next.7 → 2.0.0-next.9

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.
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import * as React12 from 'react';
2
- import React12__default, { createContext, useState, useContext } from 'react';
1
+ import * as React13 from 'react';
2
+ import React13__default, { useState } from 'react';
3
3
  import { useFormContext as useFormContext$1, useForm, FormProvider as FormProvider$1, useFieldArray, useWatch, get, Controller } from 'react-hook-form';
4
4
  export { Controller, appendErrors, useController, useFieldArray, useForm, useFormState, useWatch } from 'react-hook-form';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -7,12 +7,12 @@ import { forwardRef, NumberInput as NumberInput$1, NumberInputField, NumberInput
7
7
  import { StepperProvider, ChevronUpIcon, ChevronDownIcon, useStepper, useStep, useStepperContext, StepperStep, StepperContainer, StepperSteps } from '@saas-ui/core';
8
8
  import { ViewIcon, ViewOffIcon, MinusIcon, PlusIcon } from '@saas-ui/core/icons';
9
9
  import { dataAttr, cx, isFunction, runIfFn, callAllHandlers, get as get$1 } from '@chakra-ui/utils';
10
- import { createContext as createContext$1 } from '@chakra-ui/react-utils';
10
+ import { createContext } from '@chakra-ui/react-utils';
11
11
 
12
12
  // src/form-context.tsx
13
- var FormContext = createContext(null);
13
+ var FormContext = React13.createContext(null);
14
14
  var useFormContext = () => {
15
- const context = useContext(FormContext);
15
+ const context = React13.useContext(FormContext);
16
16
  const hookContext = useFormContext$1();
17
17
  if (!context) {
18
18
  throw new Error("FormProvider must be used within a Form component");
@@ -127,15 +127,15 @@ var PasswordInput = forwardRef(
127
127
  );
128
128
  PasswordInput.displayName = "PasswordInput";
129
129
  var mapNestedFields = (name, children) => {
130
- return React12.Children.map(children, (child) => {
131
- if (React12.isValidElement(child) && child.props.name) {
130
+ return React13.Children.map(children, (child) => {
131
+ if (React13.isValidElement(child) && child.props.name) {
132
132
  let childName = child.props.name;
133
133
  if (childName.includes(".")) {
134
134
  childName = childName.replace(/^.*\.(.*)/, "$1");
135
135
  } else if (childName.includes(".$")) {
136
136
  childName = childName.replace(/^.*\.\$(.*)/, "$1");
137
137
  }
138
- return React12.cloneElement(child, {
138
+ return React13.cloneElement(child, {
139
139
  ...child.props,
140
140
  name: `${name}.${childName}`
141
141
  });
@@ -174,7 +174,7 @@ var RadioInput = forwardRef(
174
174
  }
175
175
  );
176
176
  RadioInput.displayName = "RadioInput";
177
- var [SelectProvider, useSelectContext] = createContext$1({
177
+ var [SelectProvider, useSelectContext] = createContext({
178
178
  strict: true
179
179
  });
180
180
  var useSelect = (props) => {
@@ -195,14 +195,14 @@ var useSelect = (props) => {
195
195
  onChange
196
196
  });
197
197
  const controlProps = useFormControl({ name });
198
- const options = React12__default.useMemo(
198
+ const options = React13__default.useMemo(
199
199
  () => optionsProp && mapOptions(optionsProp),
200
200
  [optionsProp]
201
201
  );
202
202
  const handleChange = (value2) => {
203
203
  setCurrentValue(value2);
204
204
  };
205
- const getDisplayValue = React12__default.useCallback(
205
+ const getDisplayValue = React13__default.useCallback(
206
206
  (value2) => {
207
207
  if (!options) {
208
208
  return value2;
@@ -216,7 +216,7 @@ var useSelect = (props) => {
216
216
  },
217
217
  [options]
218
218
  );
219
- const displayValue = React12__default.useMemo(
219
+ const displayValue = React13__default.useMemo(
220
220
  () => currentValue ? (Array.isArray(currentValue) ? currentValue : [currentValue]).map(
221
221
  getDisplayValue
222
222
  ) : [],
@@ -280,7 +280,7 @@ var SelectButton = forwardRef(
280
280
  MenuButton,
281
281
  {
282
282
  as: Button,
283
- id: id || React12.useId(),
283
+ id: id || React13.useId(),
284
284
  ...rest,
285
285
  onFocus,
286
286
  onBlur,
@@ -553,7 +553,7 @@ var defaultFieldTypes = {
553
553
  pin: PinField,
554
554
  "native-select": NativeSelectField
555
555
  };
556
- var FieldsContext = React12__default.createContext(
556
+ var FieldsContext = React13__default.createContext(
557
557
  null
558
558
  );
559
559
  var FieldsProvider = (props) => {
@@ -561,11 +561,11 @@ var FieldsProvider = (props) => {
561
561
  return /* @__PURE__ */ jsx(FieldsContext.Provider, { value: fields, children: props.children });
562
562
  };
563
563
  var useField = (type) => {
564
- const context = React12__default.useContext(FieldsContext);
564
+ const context = React13__default.useContext(FieldsContext);
565
565
  return (context == null ? void 0 : context[type]) || InputField;
566
566
  };
567
567
  var defaultInputType = "text";
568
- var Field = React12.forwardRef(
568
+ var Field = React13.forwardRef(
569
569
  (props, ref) => {
570
570
  const { type = defaultInputType, name } = props;
571
571
  const overrides = useFieldProps(name);
@@ -592,8 +592,8 @@ var FormLayout = ({ children, ...props }) => {
592
592
  {
593
593
  ...gridProps,
594
594
  className: cx("sui-form__layout", props.className),
595
- children: React12.Children.map(children, (child) => {
596
- if (React12.isValidElement(child)) {
595
+ children: React13.Children.map(children, (child) => {
596
+ if (React13.isValidElement(child)) {
597
597
  return /* @__PURE__ */ jsx(FormLayoutItem, { children: child });
598
598
  }
599
599
  return child;
@@ -602,10 +602,10 @@ var FormLayout = ({ children, ...props }) => {
602
602
  );
603
603
  };
604
604
  FormLayout.displayName = "FormLayout";
605
- var [ArrayFieldProvider, useArrayFieldContext] = createContext$1({
605
+ var [ArrayFieldProvider, useArrayFieldContext] = createContext({
606
606
  name: "ArrayFieldContext"
607
607
  });
608
- var [ArrayFieldRowProvider, useArrayFieldRowContext] = createContext$1({
608
+ var [ArrayFieldRowProvider, useArrayFieldRowContext] = createContext({
609
609
  name: "ArrayFieldRowContext"
610
610
  });
611
611
  var useArrayField = ({
@@ -632,7 +632,7 @@ var useArrayField = ({
632
632
  var useArrayFieldRow = ({ index }) => {
633
633
  const { clearErrors } = useFormContext();
634
634
  const { name, remove, fields } = useArrayFieldContext();
635
- React12.useEffect(() => {
635
+ React13.useEffect(() => {
636
636
  clearErrors(name);
637
637
  }, []);
638
638
  return {
@@ -640,7 +640,7 @@ var useArrayFieldRow = ({ index }) => {
640
640
  isFirst: index === 0,
641
641
  isLast: index === fields.length - 1,
642
642
  name: `${name}.${index}`,
643
- remove: React12.useCallback(() => {
643
+ remove: React13.useCallback(() => {
644
644
  clearErrors(name);
645
645
  remove(index);
646
646
  }, [index])
@@ -735,7 +735,7 @@ var ArrayFieldRows = ({
735
735
  return children(fields);
736
736
  };
737
737
  ArrayFieldRows.displayName = "ArrayFieldRows";
738
- var ArrayFieldContainer = React12.forwardRef(
738
+ var ArrayFieldContainer = React13.forwardRef(
739
739
  ({
740
740
  name,
741
741
  defaultValue,
@@ -752,7 +752,7 @@ var ArrayFieldContainer = React12.forwardRef(
752
752
  min,
753
753
  max
754
754
  });
755
- React12.useImperativeHandle(ref, () => context, [ref, context]);
755
+ React13.useImperativeHandle(ref, () => context, [ref, context]);
756
756
  return /* @__PURE__ */ jsx(ArrayFieldProvider, { value: context, children: /* @__PURE__ */ jsx(BaseField, { name, ...fieldProps, children }) });
757
757
  }
758
758
  );
@@ -792,10 +792,10 @@ var AutoFields = ({
792
792
  const context = useFormContext();
793
793
  const schema = schemaProp || context.schema;
794
794
  const fieldResolver = fieldResolverProp || context.fieldResolver;
795
- const resolver = React12.useMemo(() => fieldResolver, [schema, fieldResolver]);
796
- const fields = React12.useMemo(() => resolver == null ? void 0 : resolver.getFields(), [resolver]);
795
+ const resolver = React13.useMemo(() => fieldResolver, [schema, fieldResolver]);
796
+ const fields = React13.useMemo(() => resolver == null ? void 0 : resolver.getFields(), [resolver]);
797
797
  const form = useFormContext();
798
- React12.useEffect(() => {
798
+ React13.useEffect(() => {
799
799
  var _a;
800
800
  if (focusFirstField && ((_a = fields == null ? void 0 : fields[0]) == null ? void 0 : _a.name)) {
801
801
  form.setFocus(fields[0].name);
@@ -911,8 +911,8 @@ var Form = forwardRef(
911
911
  };
912
912
  const methods = useForm(form);
913
913
  const { handleSubmit } = methods;
914
- React12.useImperativeHandle(formRef, () => methods, [formRef, methods]);
915
- React12.useEffect(() => {
914
+ React13.useImperativeHandle(formRef, () => methods, [formRef, methods]);
915
+ React13.useEffect(() => {
916
916
  let subscription;
917
917
  if (onChange) {
918
918
  subscription = methods.watch(onChange);
@@ -954,7 +954,7 @@ var Form = forwardRef(
954
954
  }
955
955
  );
956
956
  Form.displayName = "Form";
957
- var [StepFormProvider, useStepFormContext] = createContext$1({
957
+ var [StepFormProvider, useStepFormContext] = createContext({
958
958
  name: "StepFormContext",
959
959
  errorMessage: "useStepFormContext: `context` is undefined. Seems you forgot to wrap step form components in `<StepForm />`"
960
960
  });
@@ -962,8 +962,8 @@ function useStepForm(props) {
962
962
  const { onChange, ...rest } = props;
963
963
  const stepper = useStepper(rest);
964
964
  const { activeStep, isLastStep, nextStep } = stepper;
965
- const [steps, updateSteps] = React12.useState({});
966
- const onSubmitStep = React12.useCallback(
965
+ const [steps, updateSteps] = React13.useState({});
966
+ const onSubmitStep = React13.useCallback(
967
967
  async (data) => {
968
968
  var _a, _b;
969
969
  try {
@@ -984,7 +984,7 @@ function useStepForm(props) {
984
984
  },
985
985
  [steps, activeStep, isLastStep]
986
986
  );
987
- const getFormProps = React12.useCallback(() => {
987
+ const getFormProps = React13.useCallback(() => {
988
988
  const step = steps[activeStep];
989
989
  return {
990
990
  onSubmit: onSubmitStep,
@@ -992,7 +992,7 @@ function useStepForm(props) {
992
992
  resolver: step == null ? void 0 : step.resolver
993
993
  };
994
994
  }, [steps, onSubmitStep, activeStep]);
995
- const updateStep = React12.useCallback(
995
+ const updateStep = React13.useCallback(
996
996
  (step) => {
997
997
  updateSteps((steps2) => {
998
998
  return {
@@ -1014,7 +1014,7 @@ function useFormStep(props) {
1014
1014
  const { name, schema, resolver, onSubmit } = props;
1015
1015
  const step = useStep({ name });
1016
1016
  const { steps, updateStep } = useStepFormContext();
1017
- React12.useEffect(() => {
1017
+ React13.useEffect(() => {
1018
1018
  updateStep({ name, schema, resolver, onSubmit });
1019
1019
  }, [name, schema]);
1020
1020
  return {
@@ -1022,20 +1022,20 @@ function useFormStep(props) {
1022
1022
  ...steps[name] || { name, schema }
1023
1023
  };
1024
1024
  }
1025
- var StepForm = React12.forwardRef(
1025
+ var StepForm = React13.forwardRef(
1026
1026
  (props, ref) => {
1027
1027
  const { children, ...rest } = props;
1028
1028
  const stepper = useStepForm(props);
1029
1029
  const { getFormProps, ...ctx } = stepper;
1030
- const context = React12.useMemo(() => ctx, [ctx]);
1030
+ const context = React13.useMemo(() => ctx, [ctx]);
1031
1031
  return /* @__PURE__ */ jsx(StepperProvider, { value: context, children: /* @__PURE__ */ jsx(StepFormProvider, { value: context, children: /* @__PURE__ */ jsx(Form, { ref, ...rest, ...getFormProps(), children: runIfFn(children, stepper) }) }) });
1032
1032
  }
1033
1033
  );
1034
1034
  var FormStepper = (props) => {
1035
1035
  const { activeIndex, setIndex } = useStepperContext();
1036
1036
  const { children, orientation, variant, colorScheme, size, ...rest } = props;
1037
- const elements = React12.Children.map(children, (child) => {
1038
- if (React12.isValidElement(child) && (child == null ? void 0 : child.type) === FormStep) {
1037
+ const elements = React13.Children.map(children, (child) => {
1038
+ if (React13.isValidElement(child) && (child == null ? void 0 : child.type) === FormStep) {
1039
1039
  const { isCompleted } = useFormStep(child.props);
1040
1040
  return /* @__PURE__ */ jsx(
1041
1041
  StepperStep,
@@ -1050,7 +1050,7 @@ var FormStepper = (props) => {
1050
1050
  }
1051
1051
  return child;
1052
1052
  });
1053
- const onChange = React12.useCallback((i) => {
1053
+ const onChange = React13.useCallback((i) => {
1054
1054
  setIndex(i);
1055
1055
  }, []);
1056
1056
  return /* @__PURE__ */ jsx(