wcz-layout 9.4.1 → 9.4.3

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.
@@ -2,10 +2,9 @@ import { t as serverEnv } from "./env-CoveIivr.mjs";
2
2
  import { l as getAccessToken } from "./utils-2XiozDlV.mjs";
3
3
  import { t as getAppToken } from "./msalServer-CkNOOjjH.mjs";
4
4
  import { t as authenticationMiddleware } from "./authMiddleware--HdlhhZO.mjs";
5
- import { a as batchDeleteFiles, c as getFile, d as updateFileMeta, l as getFileMetas, o as deleteFile, s as downloadFile, u as getFileThumbnail } from "./file-DM1x40eJ.mjs";
5
+ import { a as batchDeleteFiles, c as getFile, d as updateFileMeta, l as getFileMetas, o as deleteFile, s as downloadFile, u as getFileThumbnail } from "./file-Be2JHq7h.mjs";
6
6
  import { createServerFn } from "@tanstack/react-start";
7
7
  import { mutationOptions, queryOptions } from "@tanstack/react-query";
8
- import { uuidv7 } from "uuidv7";
9
8
  import { Upload } from "tus-js-client";
10
9
  //#region src/server/actions/file.ts
11
10
  const getFileUploadToken = createServerFn({ method: "GET" }).middleware([authenticationMiddleware({ optional: true })]).handler(async () => {
@@ -29,8 +28,8 @@ const baseOptions = {
29
28
  gcTime: HOUR,
30
29
  refetchOnWindowFocus: false
31
30
  };
32
- async function streamToObjectUrl(stream) {
33
- const blob = await new Response(stream).blob();
31
+ async function responseToObjectUrl(response) {
32
+ const blob = await response.blob();
34
33
  return URL.createObjectURL(blob);
35
34
  }
36
35
  function saveBlob(blob, fileName) {
@@ -58,7 +57,7 @@ const fileThumbnailQueryOptions = (params) => queryOptions({
58
57
  params.appName,
59
58
  params.id
60
59
  ],
61
- queryFn: async () => streamToObjectUrl(await getFileThumbnail({ data: params })),
60
+ queryFn: async () => responseToObjectUrl(await getFileThumbnail({ data: params })),
62
61
  enabled: !!params.id,
63
62
  ...baseOptions
64
63
  });
@@ -68,18 +67,28 @@ const fileQueryOptions = (params) => queryOptions({
68
67
  params.appName,
69
68
  params.id
70
69
  ],
71
- queryFn: async () => streamToObjectUrl(await getFile({ data: params })),
70
+ queryFn: async () => responseToObjectUrl(await downloadFile({ data: params })),
72
71
  enabled: !!params.id,
73
72
  ...baseOptions
74
73
  });
75
74
  const downloadFileMutationOptions = () => mutationOptions({ mutationFn: async (data) => {
76
- const stream = await downloadFile({ data });
77
- saveBlob(await new Response(stream).blob(), `${data.fileName}.${data.fileExtension}`);
78
- } });
79
- const openFileMutationOptions = () => mutationOptions({ mutationFn: async (data) => {
80
- const stream = await getFile({ data });
81
- window.open(await streamToObjectUrl(stream));
75
+ saveBlob(await (await downloadFile({ data })).blob(), `${data.fileName}.${data.fileExtension}`);
82
76
  } });
77
+ const openFileMutationOptions = ({ target }) => mutationOptions({
78
+ mutationFn: async (data) => responseToObjectUrl(await getFile({ data })),
79
+ onSuccess: (source) => {
80
+ const popup = target.current;
81
+ target.current = null;
82
+ if (popup) {
83
+ popup.opener = null;
84
+ popup.location.href = source;
85
+ } else window.open(source, "_blank");
86
+ },
87
+ onError: () => {
88
+ target.current?.close();
89
+ target.current = null;
90
+ }
91
+ });
83
92
  const updateFileMetaMutationOptions = ({ queryClient }) => mutationOptions({
84
93
  mutationFn: (data) => updateFileMeta({ data }),
85
94
  onSettled: () => queryClient.invalidateQueries({
@@ -104,20 +113,15 @@ const batchDeleteFilesMutationOptions = ({ queryClient }) => mutationOptions({
104
113
  const uploadFileMutationOptions = ({ queryClient }) => mutationOptions({
105
114
  mutationFn: async ({ appName, subId, file, setProgress }) => {
106
115
  const { token, endpoint } = await getFileUploadToken();
107
- const id = uuidv7();
108
- const dotIndex = file.name.lastIndexOf(".");
109
- const fileExtension = dotIndex >= 0 ? file.name.slice(dotIndex + 1) : "";
110
116
  await new Promise((resolve, reject) => {
111
117
  new Upload(file, {
112
118
  endpoint,
113
119
  chunkSize: 1048576,
114
120
  metadata: {
115
- id,
116
121
  appName,
117
122
  subId,
118
- fileName: file.name,
119
- fileExtension,
120
- mimeType: file.type
123
+ filename: file.name,
124
+ filetype: file.type
121
125
  },
122
126
  headers: { Authorization: `Bearer ${token}` },
123
127
  onProgress: (bytesUploaded, bytesTotal) => setProgress?.(bytesUploaded / bytesTotal * 100),
@@ -126,7 +130,6 @@ const uploadFileMutationOptions = ({ queryClient }) => mutationOptions({
126
130
  }).start();
127
131
  });
128
132
  return {
129
- id,
130
133
  appName,
131
134
  subId,
132
135
  fileName: file.name
@@ -145,4 +148,4 @@ const uploadFileMutationOptions = ({ queryClient }) => mutationOptions({
145
148
  //#endregion
146
149
  export { fileQueryOptions as a, updateFileMetaMutationOptions as c, fileMetasQueryOptions as i, uploadFileMutationOptions as l, deleteFileMutationOptions as n, fileThumbnailQueryOptions as o, downloadFileMutationOptions as r, openFileMutationOptions as s, batchDeleteFilesMutationOptions as t };
147
150
 
148
- //# sourceMappingURL=file-C5-a_6W6.mjs.map
151
+ //# sourceMappingURL=file-bckp9fpa.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-bckp9fpa.mjs","names":["createServerFn","serverEnv","getAppToken","getAccessToken","authenticationMiddleware","getFileUploadToken","method","middleware","optional","handler","token","endpoint","FILE_BASE_URL","mutationOptions","queryOptions","Upload","z","FileSchema","GetFileMetasSchema","UpdateFileMetaSchema","UploadFileMetaSchema","UploadFileResult","batchDeleteFiles","deleteFile","downloadFile","getFile","getFileMetas","getFileThumbnail","updateFileMeta","QueryClientParam","getFileUploadToken","QUERY_KEY","HOUR","baseOptions","staleTime","gcTime","refetchOnWindowFocus","responseToObjectUrl","response","Response","Promise","blob","URL","createObjectURL","saveBlob","Blob","fileName","url","anchor","document","createElement","href","download","click","revokeObjectURL","fileMetasQueryOptions","params","input","queryKey","appName","subId","queryFn","data","fileThumbnailQueryOptions","id","enabled","fileQueryOptions","downloadFileMutationOptions","mutationFn","fileExtension","openFileMutationOptions","target","current","Window","Error","onSuccess","source","popup","opener","location","window","open","onError","close","updateFileMetaMutationOptions","queryClient","onSettled","invalidateQueries","exact","deleteFileMutationOptions","batchDeleteFilesMutationOptions","uploadFileMutationOptions","file","setProgress","progress","token","endpoint","resolve","reject","upload","chunkSize","metadata","filename","name","filetype","type","headers","Authorization","onProgress","bytesUploaded","bytesTotal","start","result"],"sources":["../src/server/actions/file.ts","../src/data/client/file.ts"],"sourcesContent":["import { createServerFn } from \"@tanstack/react-start\";\nimport { serverEnv } from \"~/env\";\nimport { getAppToken } from \"~/lib/auth/msalServer\";\nimport { getAccessToken } from \"~/lib/auth/user\";\nimport { authenticationMiddleware } from \"~/middleware/authMiddleware\";\n\nexport const getFileUploadToken = createServerFn({ method: \"GET\" })\n .middleware([authenticationMiddleware({ optional: true })])\n .handler(async () => {\n let token: string;\n try {\n token = await getAccessToken(\"file\");\n } catch {\n token = await getAppToken(\"file\");\n }\n return { token, endpoint: `${serverEnv.FILE_BASE_URL}/v1/upload` };\n });\n","import { mutationOptions, queryOptions } from \"@tanstack/react-query\";\r\nimport { Upload } from \"tus-js-client\";\r\nimport type { z } from \"zod\";\r\nimport type {\r\n FileSchema,\r\n GetFileMetasSchema,\r\n UpdateFileMetaSchema,\r\n UploadFileMetaSchema,\r\n UploadFileResult,\r\n} from \"~/data/server/file\";\r\nimport {\r\n batchDeleteFiles,\r\n deleteFile,\r\n downloadFile,\r\n getFile,\r\n getFileMetas,\r\n getFileThumbnail,\r\n updateFileMeta,\r\n} from \"~/data/server/file\";\r\nimport type { QueryClientParam } from \"~/models/QueryClientParam\";\r\nimport { getFileUploadToken } from \"~/server/actions/file\";\r\n\r\nconst QUERY_KEY = \"file\";\r\nconst HOUR = 1000 * 60 * 60;\r\n\r\nconst baseOptions = {\r\n staleTime: HOUR,\r\n gcTime: HOUR,\r\n refetchOnWindowFocus: false,\r\n};\r\n\r\nasync function responseToObjectUrl(response: Response): Promise<string> {\r\n const blob = await response.blob();\r\n return URL.createObjectURL(blob);\r\n}\r\n\r\nfunction saveBlob(blob: Blob, fileName: string): void {\r\n const url = URL.createObjectURL(blob);\r\n const anchor = document.createElement(\"a\");\r\n anchor.href = url;\r\n anchor.download = fileName;\r\n anchor.click();\r\n URL.revokeObjectURL(url);\r\n}\r\n\r\nexport const fileMetasQueryOptions = (params: z.input<typeof GetFileMetasSchema>) =>\r\n queryOptions({\r\n queryKey: [QUERY_KEY, \"meta\", params.appName, params.subId],\r\n queryFn: () => getFileMetas({ data: params }),\r\n ...baseOptions,\r\n });\r\n\r\nexport const fileThumbnailQueryOptions = (params: z.input<typeof FileSchema>) =>\r\n queryOptions({\r\n queryKey: [QUERY_KEY, \"thumbnail\", params.appName, params.id],\r\n queryFn: async () => responseToObjectUrl(await getFileThumbnail({ data: params })),\r\n enabled: !!params.id,\r\n ...baseOptions,\r\n });\r\n\r\nexport const fileQueryOptions = (params: z.input<typeof FileSchema>) =>\r\n queryOptions({\r\n queryKey: [QUERY_KEY, params.appName, params.id],\r\n queryFn: async () => responseToObjectUrl(await downloadFile({ data: params })),\r\n enabled: !!params.id,\r\n ...baseOptions,\r\n });\r\n\r\nexport const downloadFileMutationOptions = () =>\r\n mutationOptions({\r\n mutationFn: async (\r\n data: z.input<typeof FileSchema> & { fileName: string; fileExtension: string },\r\n ) => {\r\n const response = await downloadFile({ data });\r\n saveBlob(await response.blob(), `${data.fileName}.${data.fileExtension}`);\r\n },\r\n });\r\n\r\nexport const openFileMutationOptions = ({ target }: { target: { current: Window | null } }) =>\r\n mutationOptions<string, Error, z.input<typeof FileSchema>>({\r\n mutationFn: async (data) => responseToObjectUrl(await getFile({ data })),\r\n onSuccess: (source) => {\r\n const popup = target.current;\r\n target.current = null;\r\n\r\n if (popup) {\r\n popup.opener = null;\r\n popup.location.href = source;\r\n } else {\r\n window.open(source, \"_blank\");\r\n }\r\n },\r\n onError: () => {\r\n target.current?.close();\r\n target.current = null;\r\n },\r\n });\r\n\r\nexport const updateFileMetaMutationOptions = ({ queryClient }: QueryClientParam) =>\r\n mutationOptions({\r\n mutationFn: (data: z.input<typeof UpdateFileMetaSchema>) => updateFileMeta({ data }),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false }),\r\n });\r\n\r\nexport const deleteFileMutationOptions = ({ queryClient }: QueryClientParam) =>\r\n mutationOptions({\r\n mutationFn: (data: z.input<typeof FileSchema>) => deleteFile({ data }),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false }),\r\n });\r\n\r\nexport const batchDeleteFilesMutationOptions = ({ queryClient }: QueryClientParam) =>\r\n mutationOptions({\r\n mutationFn: (data: z.input<typeof GetFileMetasSchema>) => batchDeleteFiles({ data }),\r\n onSettled: () => queryClient.invalidateQueries({ queryKey: [QUERY_KEY, \"meta\"], exact: false }),\r\n });\r\n\r\nexport const uploadFileMutationOptions = ({ queryClient }: QueryClientParam) =>\r\n mutationOptions({\r\n mutationFn: async ({\r\n appName,\r\n subId,\r\n file,\r\n setProgress,\r\n }: z.input<typeof UploadFileMetaSchema> & {\r\n setProgress?: (progress: number) => void;\r\n }): Promise<UploadFileResult> => {\r\n const { token, endpoint } = await getFileUploadToken();\r\n\r\n await new Promise<void>((resolve, reject) => {\r\n const upload = new Upload(file, {\r\n endpoint,\r\n chunkSize: 1_048_576,\r\n metadata: {\r\n appName: appName,\r\n subId: subId,\r\n filename: file.name,\r\n filetype: file.type,\r\n },\r\n headers: { Authorization: `Bearer ${token}` },\r\n onProgress: (bytesUploaded, bytesTotal) =>\r\n setProgress?.((bytesUploaded / bytesTotal) * 100),\r\n onError: reject,\r\n onSuccess: () => resolve(),\r\n });\r\n upload.start();\r\n });\r\n\r\n return { appName, subId, fileName: file.name };\r\n },\r\n onSuccess: (result) =>\r\n queryClient.invalidateQueries({\r\n queryKey: [QUERY_KEY, \"meta\", result.appName, result.subId],\r\n exact: false,\r\n }),\r\n });\r\n"],"mappings":"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"}
package/dist/hooks.mjs CHANGED
@@ -827,17 +827,17 @@ const FormSlider = (t0) => {
827
827
  //#region src/components/form/FormSubmitButton.tsx
828
828
  const FormSubmitButton = (props) => {
829
829
  const $ = c(9);
830
- if ($[0] !== "0d6c6a12bdd85da06eaafbc7e088f017537616b39409d83dd1f10cc1b2284731") {
830
+ if ($[0] !== "4add800393855c4d952f96633b719e669aaecc56277e6909db9c5198dc483706") {
831
831
  for (let $i = 0; $i < 9; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
832
- $[0] = "0d6c6a12bdd85da06eaafbc7e088f017537616b39409d83dd1f10cc1b2284731";
832
+ $[0] = "4add800393855c4d952f96633b719e669aaecc56277e6909db9c5198dc483706";
833
833
  }
834
834
  const form = useFormContext();
835
835
  let t0;
836
836
  if ($[1] !== form) {
837
- t0 = (event) => {
837
+ t0 = async (event) => {
838
838
  event.preventDefault();
839
839
  event.stopPropagation();
840
- form.handleSubmit();
840
+ await form.handleSubmit();
841
841
  };
842
842
  $[1] = form;
843
843
  $[2] = t0;
@@ -1 +1 @@
1
- {"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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"}
1
+ {"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 = async (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n await 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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"}
package/dist/index.mjs CHANGED
@@ -119,9 +119,9 @@ function _temp$5() {
119
119
  const capitalize = (value) => value && value.charAt(0).toUpperCase() + value.slice(1);
120
120
  const ToolbarAccount = () => {
121
121
  const $ = c(111);
122
- if ($[0] !== "676f46e6f24c38ef4300c9dd88652ceb82b9848ccee5f2e2c9230717f4f69584") {
122
+ if ($[0] !== "20966e867228535104f9b6c05c344950dfe14addbe132ed8201b2178983345c9") {
123
123
  for (let $i = 0; $i < 111; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
124
- $[0] = "676f46e6f24c38ef4300c9dd88652ceb82b9848ccee5f2e2c9230717f4f69584";
124
+ $[0] = "20966e867228535104f9b6c05c344950dfe14addbe132ed8201b2178983345c9";
125
125
  }
126
126
  const [anchorElement, setAnchorElement] = useState();
127
127
  const [tab, setTab] = useState("settings");
@@ -1849,8 +1849,12 @@ const NotificationProvider = (t0) => {
1849
1849
  //#endregion
1850
1850
  //#region src/providers/LayoutProvider.tsx
1851
1851
  const YEAR_IN_MINUTES = 1440 * 365;
1852
+ const normalizeLocale = (locale) => locale.replace(/[^a-z]/gi, "").toLowerCase();
1853
+ const zodLocales = new Map(Object.entries(z.core.locales).map(([locale, createLocale]) => [normalizeLocale(locale), createLocale]));
1852
1854
  const setLocale = (language) => {
1853
- z.config(z.core.locales[language]());
1855
+ const baseLanguage = language.split(/[-_]/)[0];
1856
+ const createLocale = zodLocales.get(normalizeLocale(language)) ?? zodLocales.get(normalizeLocale(baseLanguage)) ?? z.core.locales.en;
1857
+ z.config(createLocale());
1854
1858
  dayjs.locale(language);
1855
1859
  };
1856
1860
  await i18n.use(LanguageDetector).use(initReactI18next).init({
@@ -1869,9 +1873,9 @@ i18n.on("languageChanged", (language) => {
1869
1873
  });
1870
1874
  const LayoutProvider = (t0) => {
1871
1875
  const $ = c(13);
1872
- if ($[0] !== "e30ffdab72c324bf6536c56b05c42629fedbc1862e79140a113dc584fb52dcdf") {
1876
+ if ($[0] !== "ba1623694fa130aeb4902a3752d41044ccfbf81f7f5e75c4c638619ddbfccaee") {
1873
1877
  for (let $i = 0; $i < 13; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1874
- $[0] = "e30ffdab72c324bf6536c56b05c42629fedbc1862e79140a113dc584fb52dcdf";
1878
+ $[0] = "ba1623694fa130aeb4902a3752d41044ccfbf81f7f5e75c4c638619ddbfccaee";
1875
1879
  }
1876
1880
  const { options, navigation, theme, children } = t0;
1877
1881
  let t1;