{"version":3,"file":"hooks.mjs","names":["Autocomplete","TextField","AutocompleteProps","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormAutocompleteProps","Omit","textFieldProps","FormAutocomplete","t0","$","_c","$i","Symbol","for","autocompleteProps","field","t1","isTouched","hasError","helperText","t2","t3","freeSolo","_","value","handleChange","__0","value_0","reason","t4","name","parameters","t5","handleBlur","state","Checkbox","FormControl","FormControlLabel","FormHelperText","CheckboxProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormCheckboxProps","Omit","label","FormCheckbox","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","name","t2","Boolean","state","value","t3","event","handleChange","target","checked","t4","handleBlur","t5","t6","t7","t8","DatePicker","Dayjs","PickersTextFieldProps","DatePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDatePickerProps","Omit","textFieldProps","Partial","FormDatePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","DateRangePicker","PickersTextFieldProps","DateRangePickerProps","Dayjs","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDateRangePickerProps","Omit","textFieldProps","Partial","FormDateRangePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","TimePicker","PickersTextFieldProps","TimePickerProps","Dayjs","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTimePickerProps","Omit","textFieldProps","Partial","FormTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","TimeRangePicker","PickersTextFieldProps","TimeRangePickerProps","Dayjs","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTimeRangePickerProps","Omit","textFieldProps","Partial","FormTimeRangePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","DateTimePicker","Dayjs","PickersTextFieldProps","DateTimePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDateTimePickerProps","Omit","textFieldProps","Partial","FormDateTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","DateTimeRangePicker","PickersTextFieldProps","DateTimeRangePickerProps","Dayjs","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDateTimeRangePickerProps","Omit","textFieldProps","Partial","FormDateTimeRangePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","TextField","NumericFormat","InputAttributes","NumericFormatProps","FC","TextFieldProps","FormOmittedProps","useFieldContext","getFieldStatus","FormNumberFieldProps","Omit","defaultValue","options","FormNumberField","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","state","value","t3","t4","floatValue","handleChange","t5","t6","handleBlur","name","FormControl","FormControlLabel","FormHelperText","FormLabel","Radio","RadioGroup","RadioGroupProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","Option","label","value","FormRadioGroupProps","Omit","options","Array","FormRadioGroup","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","t3","name","t4","state","t5","event","handleChange","target","t6","handleBlur","t7","t8","map","_temp","t9","t10","t11","option","FormControl","FormHelperText","FormLabel","Slider","SliderProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormSliderProps","Omit","label","FormSlider","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","t3","state","value","t4","_","handleChange","Array","isArray","t5","handleBlur","name","t6","t7","Button","ButtonProps","FC","useFormContext","FormSubmitButtonProps","Omit","FormSubmitButton","props","$","_c","$i","Symbol","for","form","t0","event","preventDefault","stopPropagation","handleSubmit","handleClick","t1","t2","canSubmit","isSubmitting","Subscribe","_temp","state","FormControl","FormControlLabel","FormHelperText","Switch","SwitchProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormSwitchProps","Omit","label","FormSwitch","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","name","t2","Boolean","state","value","t3","event","handleChange","target","checked","t4","handleBlur","t5","t6","t7","t8","TextField","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTextFieldProps","Omit","type","FormTextField","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","state","value","t2","event","handleChange","target","t3","t4","t5","handleBlur","name","createFormHook","createFormHookContexts","FormAutocomplete","Autocomplete","FormCheckbox","Checkbox","FormDatePicker","DatePicker","FormDateRangePicker","DateRangePicker","FormTimePicker","TimePicker","FormTimeRangePicker","TimeRangePicker","FormDateTimePicker","DateTimePicker","FormDateTimeRangePicker","DateTimeRangePicker","FormNumberField","NumberField","FormRadioGroup","RadioGroup","FormSlider","Slider","FormSubmitButton","SubmitButton","FormSwitch","Switch","FormTextField","TextField","fieldContext","useFieldContext","formContext","useFormContext","useAppForm","useLayoutForm","withForm","withLayoutForm","fieldComponents","formComponents","useContext","NotificationContext","useNotification","$","_c","$i","Symbol","for","context","Error","useEffect","useRef","BufferCharacter","time","char","Buffer","current","Array","Config","timeToEvaluate","averageWaitTime","startCharacter","endCharacter","onComplete","code","onError","error","minLength","ignoreIfFocusOn","Node","stopPropagation","preventDefault","container","enabled","useScanDetection","buffer","timeout","ReturnType","setTimeout","undefined","clearBuffer","evaluateBuffer","clearTimeout","sum","map","k","arr","slice","reduce","total","delta","avg","length","filter","join","onKeyDown","event","KeyboardEvent","currentTarget","includes","key","push","performance","now","onKeyDownRef","target","document","listener","Event","addEventListener","removeEventListener"],"sources":["../src/components/form/FormAutocomplete.tsx","../src/components/form/FormCheckbox.tsx","../src/components/form/FormDatePicker.tsx","../src/components/form/FormDateRangePicker.tsx","../src/components/form/FormTimePicker.tsx","../src/components/form/FormTimeRangePicker.tsx","../src/components/form/FormDateTimePicker.tsx","../src/components/form/FormDateTimeRangePicker.tsx","../src/components/form/FormNumberField.tsx","../src/components/form/FormRadioGroup.tsx","../src/components/form/FormSlider.tsx","../src/components/form/FormSubmitButton.tsx","../src/components/form/FormSwitch.tsx","../src/components/form/FormTextField.tsx","../src/hooks/useForm.ts","../src/hooks/useNotification.ts","../src/hooks/useScanDetection.ts"],"sourcesContent":["import { Autocomplete, TextField } from \"@mui/material\";\nimport type { AutocompleteProps, TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormAutocompleteProps extends Omit<\n  AutocompleteProps<any, boolean, boolean, boolean>,\n  FormOmittedProps\n> {\n  textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\n}\n\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({\n  textFieldProps,\n  ...autocompleteProps\n}) => {\n  const field = useFieldContext();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <Autocomplete\n      value={field.state.value}\n      onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\n      onInputChange={(_, value, reason) =>\n        reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)\n      }\n      onBlur={field.handleBlur}\n      aria-label={field.name}\n      {...autocompleteProps}\n      renderInput={(parameters) => (\n        <TextField\n          {...parameters}\n          name={field.name}\n          error={isTouched && hasError}\n          helperText={isTouched && helperText}\n          {...textFieldProps}\n        />\n      )}\n    />\n  );\n};\n","import { Checkbox, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\nimport type { CheckboxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\n  label?: string;\n}\n\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\n  const field = useFieldContext<boolean | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      <FormControlLabel\n        control={\n          <Checkbox\n            name={field.name}\n            checked={Boolean(field.state.value)}\n            onChange={(event) => field.handleChange(event.target.checked)}\n            onBlur={field.handleBlur}\n            aria-label={field.name}\n            {...props}\n          />\n        }\n        label={props.label ?? \"\"}\n      />\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { DatePicker } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DatePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\n  const field = useFieldContext<Dayjs | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <DatePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { DateRangePicker } from \"@mui/x-date-pickers-pro\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DateRangePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateRangePickerProps extends Omit<DateRangePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDateRangePicker: FC<FormDateRangePickerProps> = (props) => {\n  const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <DateRangePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { TimePicker } from \"@mui/x-date-pickers-pro\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { TimePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormTimePicker: FC<FormTimePickerProps> = (props) => {\n  const field = useFieldContext<Dayjs | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <TimePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { TimeRangePicker } from \"@mui/x-date-pickers-pro\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { TimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTimeRangePickerProps extends Omit<TimeRangePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormTimeRangePicker: FC<FormTimeRangePickerProps> = (props) => {\n  const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <TimeRangePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { DateTimePicker } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DateTimePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\n  const field = useFieldContext<Dayjs | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <DateTimePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { DateTimeRangePicker } from \"@mui/x-date-pickers-pro\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DateTimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateTimeRangePickerProps extends Omit<\n  DateTimeRangePickerProps,\n  FormOmittedProps\n> {\n  textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDateTimeRangePicker: FC<FormDateTimeRangePickerProps> = (props) => {\n  const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <DateTimeRangePicker\n      name={field.name}\n      value={field.state.value}\n      onChange={(value) => field.handleChange(value)}\n      slotProps={{\n        textField: {\n          onBlur: field.handleBlur,\n          error: isTouched && hasError,\n          helperText: isTouched && helperText,\n          ...props.textFieldProps,\n        },\n        ...props.slotProps,\n      }}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { TextField } from \"@mui/material\";\nimport { NumericFormat } from \"react-number-format\";\nimport type { InputAttributes, NumericFormatProps } from \"react-number-format/types/types\";\nimport type { FC } from \"react\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n  defaultValue?: number | null;\n  options?: Omit<\n    NumericFormatProps<InputAttributes>,\n    \"customInput\" | \"onValueChange\" | keyof InputAttributes\n  >;\n}\n\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\n  const field = useFieldContext<number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <NumericFormat\n      customInput={TextField}\n      name={field.name}\n      value={field.state.value ?? \"\"}\n      onValueChange={({ floatValue }) => field.handleChange(floatValue)}\n      onBlur={field.handleBlur}\n      error={isTouched && hasError}\n      helperText={isTouched && helperText}\n      aria-label={field.name}\n      {...props}\n      {...options}\n    />\n  );\n};\n","import {\n  FormControl,\n  FormControlLabel,\n  FormHelperText,\n  FormLabel,\n  Radio,\n  RadioGroup,\n} from \"@mui/material\";\nimport type { RadioGroupProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\ninterface Option {\n  label: string;\n  value: string | number;\n}\n\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\n  label?: string;\n  options: Array<Option>;\n}\n\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\n  const field = useFieldContext<string | number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      {label && <FormLabel component=\"legend\">{label}</FormLabel>}\n      <RadioGroup\n        name={field.name}\n        value={field.state.value ?? \"\"}\n        onChange={(event) => field.handleChange(event.target.value)}\n        onBlur={field.handleBlur}\n        aria-label={field.name}\n        {...props}\n      >\n        {options.map((option) => (\n          <FormControlLabel\n            key={option.value}\n            value={option.value}\n            control={<Radio />}\n            label={option.label}\n          />\n        ))}\n      </RadioGroup>\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { FormControl, FormHelperText, FormLabel, Slider } from \"@mui/material\";\nimport type { SliderProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\n  label?: string;\n}\n\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\n  const field = useFieldContext<number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      {label && <FormLabel>{label}</FormLabel>}\n      <Slider\n        name={field.name}\n        value={field.state.value ?? 0}\n        onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\n        onBlur={field.handleBlur}\n        aria-label={field.name}\n        {...props}\n      />\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { Button } from \"@mui/material\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useFormContext } from \"~/hooks/useForm\";\n\nexport type FormSubmitButtonProps = Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\" | \"type\">;\n\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\n  const form = useFormContext();\n\n  const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n    event.preventDefault();\n    event.stopPropagation();\n    form.handleSubmit();\n  };\n\n  return (\n    <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\n      {([canSubmit, isSubmitting]) => (\n        <Button\n          loading={isSubmitting}\n          disabled={!canSubmit}\n          onClick={handleClick}\n          type=\"submit\"\n          aria-label=\"submit\"\n          {...props}\n        />\n      )}\n    </form.Subscribe>\n  );\n};\n","import { FormControl, FormControlLabel, FormHelperText, Switch } from \"@mui/material\";\nimport type { SwitchProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\n  label?: string;\n}\n\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\n  const field = useFieldContext<boolean | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <FormControl component=\"fieldset\">\n      <FormControlLabel\n        control={\n          <Switch\n            name={field.name}\n            checked={Boolean(field.state.value)}\n            onChange={(event) => field.handleChange(event.target.checked)}\n            onBlur={field.handleBlur}\n            aria-label={field.name}\n            {...props}\n          />\n        }\n        label={props.label ?? \"\"}\n      />\n      {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n    </FormControl>\n  );\n};\n","import { TextField } from \"@mui/material\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n  type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\";\n}\n\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\n  const field = useFieldContext<string | number | null | undefined>();\n  const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n  return (\n    <TextField\n      name={field.name}\n      value={field.state.value ?? \"\"}\n      onChange={(event) => field.handleChange(event.target.value)}\n      onBlur={field.handleBlur}\n      error={isTouched && hasError}\n      helperText={isTouched && helperText}\n      aria-label={field.name}\n      {...props}\n    />\n  );\n};\n","import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\nimport { FormDateRangePicker as DateRangePicker } from \"~/components/form/FormDateRangePicker\";\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\nimport { FormTimeRangePicker as TimeRangePicker } from \"~/components/form/FormTimeRangePicker\";\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\nimport { FormDateTimeRangePicker as DateTimeRangePicker } from \"~/components/form/FormDateTimeRangePicker\";\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } =\n  createFormHookContexts();\n\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } = createFormHook({\n  fieldComponents: {\n    TextField,\n    NumberField,\n    Autocomplete,\n    Checkbox,\n    Switch,\n    RadioGroup,\n    Slider,\n    DatePicker,\n    DateRangePicker,\n    TimePicker,\n    TimeRangePicker,\n    DateTimePicker,\n    DateTimeRangePicker,\n  },\n  formComponents: {\n    SubmitButton,\n  },\n  fieldContext,\n  formContext,\n});\n","import { useContext } from \"react\";\nimport { NotificationContext } from \"~/contexts/NotificationContext\";\n\nexport function useNotification() {\n  const context = useContext(NotificationContext);\n  if (!context) throw new Error(\"useNotification must be used within a NotificationProvider\");\n  return context;\n}\n","import { useEffect, useRef } from \"react\";\n\ninterface BufferCharacter {\n  time: number;\n  char: string;\n}\n\ninterface Buffer {\n  current: Array<BufferCharacter>;\n}\n\ninterface Config {\n  /** Time to wait from last character to then trigger an evaluation of the buffer. */\n  timeToEvaluate?: number;\n  /** Average time between characters in milliseconds. Used to determine if input is from keyboard or a scanner. Defaults to 50ms.*/\n  averageWaitTime?: number;\n  /** Character that barcode scanner prefixes input with.*/\n  startCharacter?: Array<string>;\n  /** Character that barcode scanner suffixes input with. Defaults to line return.*/\n  endCharacter?: Array<string>;\n  /** Callback to use on complete scan input.*/\n  onComplete: (code: string) => void;\n  /** Callback to use on error. */\n  onError?: (error: string) => void;\n  /** Minimum length a scanned code should be. Defaults to 0.*/\n  minLength?: number;\n  /** Ignore scan input if this node is focused.*/\n  ignoreIfFocusOn?: Node;\n  /** Stop propagation on keydown event. Defaults to false.*/\n  stopPropagation?: boolean;\n  /** Prevent default on keydown event. Defaults to false.*/\n  preventDefault?: boolean;\n  /** Bind keydown event to this node. Defaults to document (resolved on the client only, so the hook is SSR-safe).*/\n  container?: Node;\n  /** Indicates if the scanning is enabled. */\n  enabled?: boolean;\n}\n\nexport const useScanDetection = ({\n  timeToEvaluate = 100,\n  averageWaitTime = 50,\n  startCharacter = [],\n  endCharacter = [\"Enter\", \"Escape\"],\n  onComplete,\n  onError,\n  minLength = 1,\n  ignoreIfFocusOn,\n  stopPropagation = false,\n  preventDefault = false,\n  container,\n  enabled = true,\n}: Config) => {\n  const buffer: Buffer = useRef([]);\n  const timeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n  const clearBuffer = () => {\n    buffer.current = [];\n  };\n  const evaluateBuffer = () => {\n    clearTimeout(timeout.current);\n    const sum = buffer.current\n      .map(({ time }, k, arr) => (k > 0 ? time - arr[k - 1].time : 0))\n      .slice(1)\n      .reduce((total, delta) => total + delta, 0);\n    const avg = sum / (buffer.current.length - 1);\n\n    const code = buffer.current\n      .slice(startCharacter.length > 0 ? 1 : 0)\n      .filter(({ char }) => char !== \"Shift\" && char !== \"Tab\")\n      .map(({ char }) => char)\n      .join(\"\");\n\n    if (\n      avg <= averageWaitTime &&\n      buffer.current.slice(startCharacter.length > 0 ? 1 : 0).length >= minLength\n    ) {\n      onComplete(code);\n    } else if (avg <= averageWaitTime) {\n      onError?.(code);\n    }\n    clearBuffer();\n  };\n\n  const onKeyDown = (event: KeyboardEvent) => {\n    if (!enabled) return;\n\n    if (event.currentTarget !== ignoreIfFocusOn) {\n      if (endCharacter.includes(event.key)) {\n        evaluateBuffer();\n      }\n      if (\n        buffer.current.length > 0 ||\n        startCharacter.includes(event.key) ||\n        startCharacter.length === 0\n      ) {\n        clearTimeout(timeout.current);\n        timeout.current = setTimeout(evaluateBuffer, timeToEvaluate);\n        buffer.current.push({ time: performance.now(), char: event.key });\n      }\n    }\n    if (stopPropagation) {\n      event.stopPropagation();\n    }\n    if (preventDefault) {\n      event.preventDefault();\n    }\n  };\n\n  const onKeyDownRef = useRef(onKeyDown);\n  onKeyDownRef.current = onKeyDown;\n\n  useEffect(() => {\n    return () => {\n      clearTimeout(timeout.current);\n    };\n  }, []);\n\n  useEffect(() => {\n    const target = container ?? document;\n    const listener = (event: Event) => onKeyDownRef.current(event as KeyboardEvent);\n    target.addEventListener(\"keydown\", listener);\n    return () => {\n      target.removeEventListener(\"keydown\", listener);\n    };\n  }, [container]);\n};\n"],"mappings":"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"}