@gusto/embedded-react-sdk 0.37.0-rc.1 → 0.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +44 -8
  2. package/README.md +6 -0
  3. package/dist/UNSTABLE_Hooks.d.ts +1 -1
  4. package/dist/UNSTABLE_Hooks.js +50 -6
  5. package/dist/UNSTABLE_Hooks.js.map +1 -1
  6. package/dist/components/Base/Base.d.ts +2 -1
  7. package/dist/components/Base/Base.js +78 -77
  8. package/dist/components/Base/Base.js.map +1 -1
  9. package/dist/components/Common/Fields/CheckboxField/CheckboxField.d.ts +2 -0
  10. package/dist/components/Common/Fields/CheckboxField/CheckboxField.js +17 -16
  11. package/dist/components/Common/Fields/CheckboxField/CheckboxField.js.map +1 -1
  12. package/dist/components/Common/Fields/DatePickerField/DatePickerField.d.ts +5 -3
  13. package/dist/components/Common/Fields/DatePickerField/DatePickerField.js +46 -36
  14. package/dist/components/Common/Fields/DatePickerField/DatePickerField.js.map +1 -1
  15. package/dist/components/Common/Fields/NumberInputField/NumberInputField.d.ts +2 -0
  16. package/dist/components/Common/Fields/NumberInputField/NumberInputField.js +21 -20
  17. package/dist/components/Common/Fields/NumberInputField/NumberInputField.js.map +1 -1
  18. package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.d.ts +3 -1
  19. package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js +20 -19
  20. package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js.map +1 -1
  21. package/dist/components/Common/Fields/SelectField/SelectField.d.ts +3 -1
  22. package/dist/components/Common/Fields/SelectField/SelectField.js +19 -18
  23. package/dist/components/Common/Fields/SelectField/SelectField.js.map +1 -1
  24. package/dist/components/Common/Fields/SwitchField/SwitchField.d.ts +2 -0
  25. package/dist/components/Common/Fields/SwitchField/SwitchField.js +19 -18
  26. package/dist/components/Common/Fields/SwitchField/SwitchField.js.map +1 -1
  27. package/dist/components/Common/Fields/TextInputField/TextInputField.d.ts +2 -0
  28. package/dist/components/Common/Fields/TextInputField/TextInputField.js +10 -9
  29. package/dist/components/Common/Fields/TextInputField/TextInputField.js.map +1 -1
  30. package/dist/components/Common/SignatureForm/SignatureFormActions.js +1 -1
  31. package/dist/components/Common/SignatureForm/SignatureFormFields.js +1 -1
  32. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +5 -6
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  34. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +9 -6
  35. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  36. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +4 -5
  37. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  38. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +9 -6
  39. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  40. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +11 -8
  41. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  42. package/dist/components/Company/BankAccount/BankAccountForm/context.js +9 -6
  43. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  44. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +9 -6
  45. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  46. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +9 -6
  47. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  48. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +15 -12
  49. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  50. package/dist/components/Company/Industry/Context.js +12 -9
  51. package/dist/components/Company/Industry/Context.js.map +1 -1
  52. package/dist/components/Company/Locations/LocationForm/Form.js +4 -5
  53. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  54. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +9 -6
  55. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  56. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +9 -6
  57. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  58. package/dist/components/Company/OnboardingOverview/context.js +9 -6
  59. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  60. package/dist/components/Company/PaySchedule/_parts/Edit.js +9 -10
  61. package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
  62. package/dist/components/Company/PaySchedule/usePaySchedule.js +11 -8
  63. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  64. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +9 -6
  65. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  66. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +9 -6
  67. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  68. package/dist/components/Contractor/Address/Form.js +6 -7
  69. package/dist/components/Contractor/Address/Form.js.map +1 -1
  70. package/dist/components/Contractor/Address/useAddress.js +11 -8
  71. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  72. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +2 -3
  73. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  74. package/dist/components/Contractor/Profile/useContractorProfile.js +21 -16
  75. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  76. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +14 -11
  77. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  78. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +13 -10
  79. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  80. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js +6 -3
  81. package/dist/components/Employee/Deductions/DeductionsForm/GarnishmentForm.js.map +1 -1
  82. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js +2 -3
  83. package/dist/components/Employee/Deductions/IncludeDeductions/IncludeDeductions.js.map +1 -1
  84. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +9 -6
  85. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  86. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +9 -6
  87. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  88. package/dist/components/Employee/EmployeeList/useEmployeeList.js +9 -6
  89. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  90. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +9 -6
  91. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  92. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +11 -8
  93. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  94. package/dist/components/Employee/Profile/HomeAddress.d.ts +3 -3
  95. package/dist/components/Employee/Profile/HomeAddress.js +44 -43
  96. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  97. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +14 -15
  98. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  99. package/dist/components/Employee/Profile/useProfile.js +9 -6
  100. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  101. package/dist/components/Employee/StateTaxes/useStateTaxes.js +9 -6
  102. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  103. package/dist/components/Employee/Taxes/useTaxes.js +9 -6
  104. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  105. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +16 -13
  106. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  107. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +2 -3
  108. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  109. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +185 -177
  110. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  111. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +2 -3
  112. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  113. package/dist/components/Payroll/usePreparedPayrollData.js +7 -5
  114. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  115. package/dist/components/UNSTABLE_Hooks/collectErrors.d.ts +6 -0
  116. package/dist/components/UNSTABLE_Hooks/collectErrors.js +9 -0
  117. package/dist/components/UNSTABLE_Hooks/collectErrors.js.map +1 -0
  118. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.d.ts +1 -1
  119. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.js +3 -3
  120. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataContext.js.map +1 -1
  121. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.d.ts +2 -2
  122. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js +13 -0
  123. package/dist/components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js.map +1 -0
  124. package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.d.ts +11 -6
  125. package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.js +24 -0
  126. package/dist/components/UNSTABLE_Hooks/form/SDKFormProvider.js.map +1 -0
  127. package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.d.ts +26 -0
  128. package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.js +24 -0
  129. package/dist/components/UNSTABLE_Hooks/form/composeFormSchema.js.map +1 -0
  130. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.d.ts +53 -0
  131. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.js +34 -0
  132. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.js.map +1 -0
  133. package/dist/components/UNSTABLE_Hooks/form/composeSubmitHandler.test.d.ts +1 -0
  134. package/dist/components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js +14 -0
  135. package/dist/components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js.map +1 -0
  136. package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.d.ts +9 -0
  137. package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js +34 -0
  138. package/dist/components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js.map +1 -0
  139. package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.d.ts +9 -0
  140. package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js +29 -0
  141. package/dist/components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js.map +1 -0
  142. package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.d.ts +12 -0
  143. package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js +40 -0
  144. package/dist/components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js.map +1 -0
  145. package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.d.ts +10 -0
  146. package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js +40 -0
  147. package/dist/components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js.map +1 -0
  148. package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.d.ts +10 -0
  149. package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.js +40 -0
  150. package/dist/components/UNSTABLE_Hooks/form/fields/SelectHookField.js.map +1 -0
  151. package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.d.ts +9 -0
  152. package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.js +34 -0
  153. package/dist/components/UNSTABLE_Hooks/form/fields/SwitchHookField.js.map +1 -0
  154. package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.d.ts +11 -0
  155. package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.js +38 -0
  156. package/dist/components/UNSTABLE_Hooks/form/fields/TextInputHookField.js.map +1 -0
  157. package/dist/components/UNSTABLE_Hooks/form/fields/index.d.ts +15 -0
  158. package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.d.ts +2 -0
  159. package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.js +8 -0
  160. package/dist/components/UNSTABLE_Hooks/form/getFieldWithOptions.js.map +1 -0
  161. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.d.ts +18 -0
  162. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.js +10 -0
  163. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.js.map +1 -0
  164. package/dist/components/UNSTABLE_Hooks/form/getFormSubmissionValues.test.d.ts +1 -0
  165. package/dist/components/UNSTABLE_Hooks/form/index.d.ts +6 -1
  166. package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.d.ts +6 -0
  167. package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.js +14 -0
  168. package/dist/components/UNSTABLE_Hooks/form/resolveRequiredFields.js.map +1 -0
  169. package/dist/components/UNSTABLE_Hooks/form/types.d.ts +12 -0
  170. package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.d.ts +2 -1
  171. package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.js +10 -8
  172. package/dist/components/UNSTABLE_Hooks/form/useFieldErrorMessage.js.map +1 -1
  173. package/dist/components/UNSTABLE_Hooks/form/useFieldsMetadata.d.ts +2 -2
  174. package/dist/components/UNSTABLE_Hooks/form/useFieldsMetadata.js.map +1 -1
  175. package/dist/components/UNSTABLE_Hooks/form/withOptions.js +7 -0
  176. package/dist/components/UNSTABLE_Hooks/form/withOptions.js.map +1 -0
  177. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.d.ts +5 -0
  178. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js +151 -0
  179. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js.map +1 -0
  180. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.d.ts +97 -0
  181. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js +121 -0
  182. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js.map +1 -0
  183. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.d.ts +34 -0
  184. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.js +50 -0
  185. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/fields.js.map +1 -0
  186. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/index.d.ts +5 -1
  187. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.d.ts +97 -9
  188. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js +255 -3
  189. package/dist/components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js.map +1 -1
  190. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.d.ts +5 -0
  191. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js +114 -0
  192. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js.map +1 -0
  193. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.d.ts +39 -0
  194. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js +45 -0
  195. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js.map +1 -0
  196. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.d.ts +23 -0
  197. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.js +46 -0
  198. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/fields.js.map +1 -0
  199. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/index.d.ts +7 -0
  200. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.d.ts +77 -0
  201. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js +153 -0
  202. package/dist/components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -0
  203. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.d.ts +5 -0
  204. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js +71 -0
  205. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js.map +1 -0
  206. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.d.ts +10 -0
  207. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.js +14 -0
  208. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/fields.js.map +1 -0
  209. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/index.d.ts +7 -0
  210. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.d.ts +68 -0
  211. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js +129 -0
  212. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js.map +1 -0
  213. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.d.ts +25 -0
  214. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js +24 -0
  215. package/dist/components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js.map +1 -0
  216. package/dist/components/UNSTABLE_Hooks/index.d.ts +8 -4
  217. package/dist/components/UNSTABLE_Hooks/types.d.ts +9 -6
  218. package/dist/components/UNSTABLE_Hooks/useErrorHandling.d.ts +9 -0
  219. package/dist/components/UNSTABLE_Hooks/useErrorHandling.js +12 -0
  220. package/dist/components/UNSTABLE_Hooks/useErrorHandling.js.map +1 -0
  221. package/dist/components/UNSTABLE_Hooks/useErrorHandling.test.d.ts +1 -0
  222. package/dist/helpers/requiredIf.d.ts +13 -0
  223. package/dist/helpers/requiredIf.js +8 -0
  224. package/dist/helpers/requiredIf.js.map +1 -0
  225. package/dist/i18n/I18n.js +5 -5
  226. package/dist/i18n/I18n.js.map +1 -1
  227. package/dist/i18n/en/UNSTABLE.CompensationForm.json.js +58 -0
  228. package/dist/i18n/en/UNSTABLE.CompensationForm.json.js.map +1 -0
  229. package/dist/i18n/en/UNSTABLE.EmployeeDetailsForm.json.js +34 -0
  230. package/dist/i18n/en/UNSTABLE.EmployeeDetailsForm.json.js.map +1 -0
  231. package/dist/i18n/en/UNSTABLE.WorkAddressForm.json.js +24 -0
  232. package/dist/i18n/en/UNSTABLE.WorkAddressForm.json.js.map +1 -0
  233. package/dist/models/WA_RISK_CODES.d.ts +5 -2866
  234. package/dist/models/WA_RISK_CODES.js.map +1 -1
  235. package/dist/style.css +1 -1
  236. package/dist/types/i18next.d.ts +117 -1
  237. package/dist/types/sdkError.d.ts +7 -1
  238. package/dist/types/sdkError.js.map +1 -1
  239. package/docs/reference/endpoint-inventory.json +92 -0
  240. package/package.json +9 -9
package/CHANGELOG.md CHANGED
@@ -4,23 +4,59 @@
4
4
 
5
5
  ### Features & Enhancements
6
6
 
7
- - Add termination, dismissal, and transition payroll flows
8
- - Add UNSTABLE_Hooks with form hook infrastructure
7
+ - Add core terminations functionality with DismissalFlow, DismissalPayPeriodSelection, and unused time off payout UI
8
+ - Add transition payroll support with TransitionCreation component, state machine, and landing page alert
9
+ - Embed DismissalFlow within TerminationFlow and add dismissal/transition states to payroll flows
10
+ - Show off-cycle payrolls in history tab and add off-cycle flow support with section dividers
9
11
  - Introduce unified SDKError type and ObservabilityError extension
10
- - Add section dividers and headings to off-cycle and transition creation
12
+ - Implement UNSTABLE_Hooks directory with uniform hook return types and form infrastructure
13
+ - Add useEmployeeDetailsForm hook with configurable required fields and NAME_REGEX validation
14
+ - Add useWorkAddressForm hook with prebuilt component
15
+ - Implement CompensationForm with useCompensationForm hook, including start date field and composeFormSchema alignment
16
+ - Add composeSubmitHandler for coordinated multi-form validation and cross-form focus management
17
+ - Add error code infrastructure, HookField reference components, and errorHandling pattern with retryQueries
18
+ - Add getFormSubmissionValues to form hooks
19
+ - Allow requiredFields to accept flat array or per-mode object
20
+ - Align hooks with stable component parity: optional employeeId with submit-time resolution, SwitchField FieldComponent support, requiredIf null coercion fix
21
+ - Add partner-facing hooks documentation
11
22
 
12
23
  ### Fixes
13
24
 
14
- - Fix off-cycle, dismissal, and transition payroll bugs
15
- - Fix PayrollConfiguration calculate/polling flow
16
- - Fix hourly inputs visibility and payroll cache invalidation
25
+ - Hide courtesy withholding checkbox from employee view
26
+ - Strip finalPayoutUnusedHoursInput from PTO on non-dismissal payrolls
17
27
  - Include off-cycle and external payrolls in list and history views
28
+ - Only show hourly inputs for primary jobs with hourly compensations
29
+ - Fix off-cycle, dismissal, and transition payroll bugs
30
+ - Invalidate payroll-prepare cache after editing employee hours
31
+ - Improve PayrollConfiguration calculate/polling flow
32
+ - Mark dismissal pay period select as required
33
+ - Default employee selection to select-employees mode
34
+ - Convert throw sites in new components to SDKInternalError
18
35
 
19
36
  ### Chores & Maintenance
20
37
 
21
- - Add E2E tests for dismissal and transition payroll flows
38
+ - Refactor Base infrastructure for hooks compatibility
39
+ - Payroll test infrastructure and label cleanup
40
+ - Add E2E tests for DismissalFlow and transition payroll
41
+ - Add Storybook stories for offcycle components
42
+ - Add workflow_dispatch trigger and CI badge to README
43
+ - Disable e2e tests in GitHub Actions
22
44
  - Fix minimatch ReDoS vulnerability (CVE-2026-27903)
23
- - Dependency bumps (storybook 10.3.1, i18next, react-i18next, msw, and more)
45
+ - Upgrade react-robot from 1.2.0 to 1.2.1
46
+ - Bump react-hook-form from 7.71.2 to 7.72.0
47
+ - Bump react-i18next from 16.5.8 to 16.6.6
48
+ - Bump i18next from 25.8.18 to 25.10.4
49
+ - Bump @storybook/react-vite from 10.2.19 to 10.3.1
50
+ - Bump @storybook/addon-docs from 10.2.19 to 10.3.3
51
+ - Bump @storybook/addon-a11y from 10.2.19 to 10.3.3
52
+ - Bump @storybook/addon-onboarding from 10.2.19 to 10.3.3
53
+ - Bump storybook from 10.3.0 to 10.3.1
54
+ - Bump eslint-plugin-storybook from 10.2.19 to 10.3.3
55
+ - Bump @storybook/test-runner from 0.24.2 to 0.24.3
56
+ - Bump @vitest/coverage-v8 from 4.1.0 to 4.1.1
57
+ - Bump vite-plugin-stylelint from 6.0.4 to 6.1.0
58
+ - Bump msw from 2.12.12 to 2.12.14
59
+ - Bump flatted from 3.3.3 to 3.4.2
24
60
 
25
61
  ## 0.36.0
26
62
 
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # 🦎 Gusto Embedded React SDK
2
2
 
3
+ [![CI](https://github.com/Gusto/embedded-react-sdk/actions/workflows/ci.yaml/badge.svg)](https://github.com/Gusto/embedded-react-sdk/actions/workflows/ci.yaml)
4
+
3
5
  To install:
4
6
 
5
7
  ```
@@ -46,3 +48,7 @@ Live documentation is available at: https://docs.gusto.com/embedded-payroll/docs
46
48
  - [Employee Onboarding](docs/workflows-overview/employee-onboarding/employee-onboarding.md)
47
49
  - [Employee Self-Onboarding](docs/workflows-overview/employee-onboarding/employee-self-onboarding.md)
48
50
  - [Run Payroll](docs/workflows-overview/run-payroll.md)
51
+ - [Hooks (Experimental)](docs/hooks/hooks.md)
52
+ - [useEmployeeDetailsForm](docs/hooks/useEmployeeDetailsForm.md)
53
+ - [useCompensationForm](docs/hooks/useCompensationForm.md)
54
+ - [useWorkAddressForm](docs/hooks/useWorkAddressForm.md)
@@ -1 +1 @@
1
- export { useCompensationForm, type UseCompensationFormProps, type UseCompensationFormResult, type UseCompensationFormReady, type HookLoadingResult, type HookErrors, type FieldMetadata, type FieldMetadataWithOptions, useFieldsMetadata, useFieldErrorMessage, } from './components/UNSTABLE_Hooks';
1
+ export { useCompensationForm, CompensationForm, CompensationErrorCodes, type CompensationFormProps, type CompensationSubmitCallbacks, type CompensationSubmitOptions, type CompensationRequiredFields, type UseCompensationFormProps, type UseCompensationFormResult, type UseCompensationFormReady, type CompensationFieldsMetadata, type CompensationFormFields, type CompensationErrorCode, type CompensationField, type CompensationFormData, type CompensationFormOutputs, type RequiredValidation, type RateValidation, type StartDateFieldProps, type JobTitleFieldProps, type FlsaStatusFieldProps, type RateFieldProps, type PaymentUnitFieldProps, type AdjustForMinimumWageFieldProps, type MinimumWageIdFieldProps, type TwoPercentShareholderFieldProps, type StateWcCoveredFieldProps, type StateWcClassCodeFieldProps, SDKFormProvider, FormFieldsMetadataProvider, composeSubmitHandler, useFieldsMetadata, useFieldErrorMessage, withOptions, deriveFieldsMetadata, collectErrors, TextInputHookField, SelectHookField, CheckboxHookField, NumberInputHookField, DatePickerHookField, RadioGroupHookField, useErrorHandling, type HookFormInternals, type HookLoadingResult, type HookSubmitResult, type HookErrorHandling, type BaseHookReady, type BaseFormHookReady, type FieldMetadata, type FieldMetadataWithOptions, type FieldsMetadata, type FormFieldsMetadataContextValue, type ValidationMessages, type BaseFieldProps, type TextInputHookFieldProps, type SelectHookFieldProps, type CheckboxHookFieldProps, type NumberInputHookFieldProps, type DatePickerHookFieldProps, type RadioGroupHookFieldProps, type TextInputProps, type SelectProps, type SelectOption, type CheckboxProps, type NumberInputProps, type DatePickerProps, type RadioGroupProps, type RadioGroupOption, SwitchHookField, type SwitchHookFieldProps, type SwitchProps, useEmployeeDetailsForm, EmployeeDetailsForm, EmployeeDetailsErrorCodes, type EmployeeDetailsFormProps, type EmployeeDetailsSubmitCallbacks, type EmployeeDetailsRequiredFields, type UseEmployeeDetailsFormProps, type UseEmployeeDetailsFormResult, type UseEmployeeDetailsFormReady, type EmployeeDetailsFieldsMetadata, type EmployeeDetailsFormFields, type EmployeeDetailsErrorCode, type EmployeeDetailsFormData, type EmployeeDetailsFormOutputs, type EmployeeDetailsField, type EmployeeDetailsRequiredValidation, type NameValidation, type EmailValidation, type SsnValidation, type FirstNameFieldProps, type MiddleInitialFieldProps, type LastNameFieldProps, type EmailFieldProps, type DateOfBirthFieldProps, type SsnFieldProps, type SelfOnboardingFieldProps, useWorkAddressForm, WorkAddressForm, WorkAddressErrorCodes, type WorkAddressFormProps, type WorkAddressSubmitCallbacks, type WorkAddressSubmitOptions, type WorkAddressRequiredFields, type UseWorkAddressFormProps, type UseWorkAddressFormResult, type UseWorkAddressFormReady, type WorkAddressFieldsMetadata, type WorkAddressFormFields, type WorkAddressErrorCode, type WorkAddressFormData, type WorkAddressFormOutputs, type WorkAddressField, type WorkAddressRequiredValidation, type LocationFieldProps, type EffectiveDateFieldProps, } from './components/UNSTABLE_Hooks';
@@ -1,9 +1,53 @@
1
- import { useCompensationForm as r } from "./components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js";
2
- import { useFieldErrorMessage as t } from "./components/UNSTABLE_Hooks/form/useFieldErrorMessage.js";
3
- import { useFieldsMetadata as m } from "./components/UNSTABLE_Hooks/form/useFieldsMetadata.js";
1
+ import { useErrorHandling as e } from "./components/UNSTABLE_Hooks/useErrorHandling.js";
2
+ import { collectErrors as m } from "./components/UNSTABLE_Hooks/collectErrors.js";
3
+ import { CheckboxHookField as d } from "./components/UNSTABLE_Hooks/form/fields/CheckboxHookField.js";
4
+ import { CompensationErrorCodes as i } from "./components/UNSTABLE_Hooks/hooks/useCompensationForm/compensationSchema.js";
5
+ import { CompensationForm as f } from "./components/UNSTABLE_Hooks/hooks/useCompensationForm/CompensationForm.js";
6
+ import { DatePickerHookField as a } from "./components/UNSTABLE_Hooks/form/fields/DatePickerHookField.js";
7
+ import { EmployeeDetailsErrorCodes as k } from "./components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/employeeDetailsSchema.js";
8
+ import { EmployeeDetailsForm as u } from "./components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/EmployeeDetailsForm.js";
9
+ import { FormFieldsMetadataProvider as H } from "./components/UNSTABLE_Hooks/form/FormFieldsMetadataProvider.js";
10
+ import { NumberInputHookField as C } from "./components/UNSTABLE_Hooks/form/fields/NumberInputHookField.js";
11
+ import { RadioGroupHookField as M } from "./components/UNSTABLE_Hooks/form/fields/RadioGroupHookField.js";
12
+ import { SDKFormProvider as b } from "./components/UNSTABLE_Hooks/form/SDKFormProvider.js";
13
+ import { SelectHookField as v } from "./components/UNSTABLE_Hooks/form/fields/SelectHookField.js";
14
+ import { SwitchHookField as A } from "./components/UNSTABLE_Hooks/form/fields/SwitchHookField.js";
15
+ import { TextInputHookField as W } from "./components/UNSTABLE_Hooks/form/fields/TextInputHookField.js";
16
+ import { WorkAddressErrorCodes as w } from "./components/UNSTABLE_Hooks/hooks/useWorkAddressForm/workAddressSchema.js";
17
+ import { WorkAddressForm as G } from "./components/UNSTABLE_Hooks/hooks/useWorkAddressForm/WorkAddressForm.js";
18
+ import { composeSubmitHandler as N } from "./components/UNSTABLE_Hooks/form/composeSubmitHandler.js";
19
+ import { deriveFieldsMetadata as R } from "./components/UNSTABLE_Hooks/form/deriveFieldsMetadata.js";
20
+ import { useCompensationForm as j } from "./components/UNSTABLE_Hooks/hooks/useCompensationForm/useCompensationForm.js";
21
+ import { useEmployeeDetailsForm as z } from "./components/UNSTABLE_Hooks/hooks/useEmployeeDetailsForm/useEmployeeDetailsForm.js";
22
+ import { useFieldErrorMessage as J } from "./components/UNSTABLE_Hooks/form/useFieldErrorMessage.js";
23
+ import { useFieldsMetadata as Q } from "./components/UNSTABLE_Hooks/form/useFieldsMetadata.js";
24
+ import { useWorkAddressForm as V } from "./components/UNSTABLE_Hooks/hooks/useWorkAddressForm/useWorkAddressForm.js";
25
+ import { withOptions as Y } from "./components/UNSTABLE_Hooks/form/withOptions.js";
4
26
  export {
5
- r as useCompensationForm,
6
- t as useFieldErrorMessage,
7
- m as useFieldsMetadata
27
+ d as CheckboxHookField,
28
+ i as CompensationErrorCodes,
29
+ f as CompensationForm,
30
+ a as DatePickerHookField,
31
+ k as EmployeeDetailsErrorCodes,
32
+ u as EmployeeDetailsForm,
33
+ H as FormFieldsMetadataProvider,
34
+ C as NumberInputHookField,
35
+ M as RadioGroupHookField,
36
+ b as SDKFormProvider,
37
+ v as SelectHookField,
38
+ A as SwitchHookField,
39
+ W as TextInputHookField,
40
+ w as WorkAddressErrorCodes,
41
+ G as WorkAddressForm,
42
+ m as collectErrors,
43
+ N as composeSubmitHandler,
44
+ R as deriveFieldsMetadata,
45
+ j as useCompensationForm,
46
+ z as useEmployeeDetailsForm,
47
+ e as useErrorHandling,
48
+ J as useFieldErrorMessage,
49
+ Q as useFieldsMetadata,
50
+ V as useWorkAddressForm,
51
+ Y as withOptions
8
52
  };
9
53
  //# sourceMappingURL=UNSTABLE_Hooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UNSTABLE_Hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"UNSTABLE_Hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -30,6 +30,7 @@ export interface BaseBoundariesProps {
30
30
  children?: ReactNode;
31
31
  FallbackComponent?: (props: FallbackProps) => JSX.Element;
32
32
  onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void;
33
+ componentName?: string;
33
34
  }
34
- export declare const BaseBoundaries: ({ children, FallbackComponent, onErrorBoundaryError, }: BaseBoundariesProps) => import("react/jsx-runtime").JSX.Element;
35
+ export declare const BaseBoundaries: ({ children, FallbackComponent, onErrorBoundaryError, componentName, }: BaseBoundariesProps) => import("react/jsx-runtime").JSX.Element;
35
36
  export {};
@@ -1,111 +1,99 @@
1
- import { jsx as n, jsxs as m } from "react/jsx-runtime";
2
- import { Suspense as v, useRef as c, useEffect as p } from "react";
1
+ import { jsx as e, jsxs as m } from "react/jsx-runtime";
2
+ import { Suspense as k, useRef as c, useEffect as u } from "react";
3
3
  import { ErrorBoundary as B } from "react-error-boundary";
4
- import { useTranslation as f } from "react-i18next";
5
- import { QueryErrorResetBoundary as k } from "@tanstack/react-query";
6
- import { FadeIn as R } from "../Common/FadeIn/FadeIn.js";
7
- import { BaseContext as S } from "./useBase.js";
4
+ import { useTranslation as p } from "react-i18next";
5
+ import { QueryErrorResetBoundary as S } from "@tanstack/react-query";
6
+ import { FadeIn as I } from "../Common/FadeIn/FadeIn.js";
7
+ import { BaseContext as R } from "./useBase.js";
8
8
  import { useBaseSubmit as x } from "./useBaseSubmit.js";
9
- import { componentEvents as I } from "../../shared/constants.js";
9
+ import { componentEvents as D } from "../../shared/constants.js";
10
10
  import "classnames";
11
- import { InternalError as g } from "../Common/InternalError/InternalError.js";
12
- import { useComponentContext as E } from "../../contexts/ComponentAdapter/useComponentContext.js";
13
- import { useLoadingIndicator as h } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
14
- import { useObservability as D } from "../../contexts/ObservabilityProvider/useObservability.js";
15
- import { normalizeToSDKError as T } from "../../types/sdkError.js";
16
- const $ = ({
11
+ import { InternalError as f } from "../Common/InternalError/InternalError.js";
12
+ import { useComponentContext as g } from "../../contexts/ComponentAdapter/useComponentContext.js";
13
+ import { useLoadingIndicator as d } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
14
+ import { useObservability as E } from "../../contexts/ObservabilityProvider/useObservability.js";
15
+ import { normalizeToSDKError as F } from "../../types/sdkError.js";
16
+ const N = ({
17
17
  children: r,
18
- FallbackComponent: t = g,
18
+ FallbackComponent: t = f,
19
19
  LoaderComponent: s,
20
20
  onEvent: o,
21
- componentName: e
21
+ componentName: n
22
22
  }) => {
23
- const { error: i, baseSubmitHandler: a, setError: y } = x(e), { observability: d } = D(), { LoadingIndicator: w } = h(), l = s ?? w, L = (u, C) => {
24
- o(I.ERROR, u);
25
- const b = T(u);
26
- d?.onError?.({
27
- ...b,
23
+ const { error: i, baseSubmitHandler: a, setError: h } = x(n), { observability: y } = E(), { LoadingIndicator: L } = d(), b = s ?? L, w = (l, C) => {
24
+ o(D.ERROR, l);
25
+ const v = F(l);
26
+ y?.onError?.({
27
+ ...v,
28
28
  timestamp: Date.now(),
29
- componentName: e,
29
+ componentName: n,
30
30
  componentStack: C.componentStack ?? void 0
31
31
  });
32
32
  };
33
- return /* @__PURE__ */ n(
34
- S.Provider,
33
+ return /* @__PURE__ */ e(
34
+ R.Provider,
35
35
  {
36
36
  value: {
37
37
  error: i,
38
- setError: y,
38
+ setError: h,
39
39
  onEvent: o,
40
40
  baseSubmitHandler: a,
41
- LoadingIndicator: l,
42
- componentName: e
41
+ LoadingIndicator: b,
42
+ componentName: n
43
43
  },
44
- children: /* @__PURE__ */ n(
45
- U,
44
+ children: /* @__PURE__ */ e(
45
+ _,
46
46
  {
47
47
  FallbackComponent: t,
48
- onErrorBoundaryError: L,
49
- children: /* @__PURE__ */ n(
50
- v,
51
- {
52
- fallback: /* @__PURE__ */ n(
53
- M,
54
- {
55
- LoaderComponent: l,
56
- observability: d,
57
- componentName: e
58
- }
59
- ),
60
- children: /* @__PURE__ */ n(j, { error: i, children: r })
61
- }
62
- )
48
+ onErrorBoundaryError: w,
49
+ componentName: n,
50
+ children: /* @__PURE__ */ e(j, { error: i, children: r })
63
51
  }
64
52
  )
65
53
  }
66
54
  );
67
55
  };
68
- function A({ error: r }) {
69
- const t = E(), { t: s } = f(), o = r.fieldErrors.length > 0;
56
+ function T({ error: r }) {
57
+ const t = g(), { t: s } = p(), o = r.fieldErrors.length > 0;
70
58
  return /* @__PURE__ */ m(t.Alert, { label: s("status.errorEncountered"), status: "error", children: [
71
- o && /* @__PURE__ */ n(
59
+ o && /* @__PURE__ */ e(
72
60
  t.UnorderedList,
73
61
  {
74
- items: r.fieldErrors.filter((e) => e.message).map((e) => /* @__PURE__ */ n("span", { children: e.message }, e.field))
62
+ items: r.fieldErrors.filter((n) => n.message).map((n) => /* @__PURE__ */ e("span", { children: n.message }, n.field))
75
63
  }
76
64
  ),
77
- !o && r.category === "validation_error" && /* @__PURE__ */ n(t.Text, { as: "pre", children: r.raw && typeof r.raw == "object" && "pretty" in r.raw && typeof r.raw.pretty == "function" ? r.raw.pretty() : r.message }),
78
- !o && r.category !== "validation_error" && /* @__PURE__ */ n(t.Text, { children: r.message || s("errors.unknownError") })
65
+ !o && r.category === "validation_error" && /* @__PURE__ */ e(t.Text, { as: "pre", children: r.raw && typeof r.raw == "object" && "pretty" in r.raw && typeof r.raw.pretty == "function" ? r.raw.pretty() : r.message }),
66
+ !o && r.category !== "validation_error" && /* @__PURE__ */ e(t.Text, { children: r.message || s("errors.unknownError") })
79
67
  ] });
80
68
  }
81
- function F({ errors: r }) {
82
- const t = E(), { t: s } = f();
83
- return /* @__PURE__ */ n(t.Alert, { label: s("status.multipleErrorsEncountered"), status: "error", children: /* @__PURE__ */ n(
69
+ function A({ errors: r }) {
70
+ const t = g(), { t: s } = p();
71
+ return /* @__PURE__ */ e(t.Alert, { label: s("status.multipleErrorsEncountered"), status: "error", children: /* @__PURE__ */ e(
84
72
  t.UnorderedList,
85
73
  {
86
- items: r.filter((o) => o.message || o.fieldErrors.length > 0).map((o, e) => {
74
+ items: r.filter((o) => o.message || o.fieldErrors.length > 0).map((o, n) => {
87
75
  const i = o.fieldErrors.filter((a) => a.message);
88
- return i.length === 0 ? /* @__PURE__ */ n("span", { children: o.message || s("errors.unknownError") }, e) : /* @__PURE__ */ m("span", { children: [
76
+ return i.length === 0 ? /* @__PURE__ */ e("span", { children: o.message || s("errors.unknownError") }, n) : /* @__PURE__ */ m("span", { children: [
89
77
  o.message || s("errors.unknownError"),
90
- /* @__PURE__ */ n(
78
+ /* @__PURE__ */ e(
91
79
  t.UnorderedList,
92
80
  {
93
- items: i.map((a) => /* @__PURE__ */ n("span", { children: a.message }, a.field))
81
+ items: i.map((a) => /* @__PURE__ */ e("span", { children: a.message }, a.field))
94
82
  }
95
83
  )
96
- ] }, e);
84
+ ] }, n);
97
85
  })
98
86
  }
99
87
  ) });
100
88
  }
101
89
  const j = ({ children: r, error: t, isLoading: s }) => {
102
- const { LoadingIndicator: o } = h(), e = Array.isArray(t) ? t : t ? [t] : [], i = e.length > 0;
90
+ const { LoadingIndicator: o } = d(), n = Array.isArray(t) ? t : t ? [t] : [], i = n.length > 0;
103
91
  if (s && !i)
104
- return /* @__PURE__ */ n(o, {});
105
- const [a] = e;
106
- return /* @__PURE__ */ m(R, { children: [
107
- e.length > 1 && /* @__PURE__ */ n(F, { errors: e }),
108
- e.length === 1 && a && /* @__PURE__ */ n(A, { error: a }),
92
+ return /* @__PURE__ */ e(o, {});
93
+ const [a] = n;
94
+ return /* @__PURE__ */ m(I, { children: [
95
+ n.length > 1 && /* @__PURE__ */ e(A, { errors: n }),
96
+ n.length === 1 && a && /* @__PURE__ */ e(T, { error: a }),
109
97
  r
110
98
  ] });
111
99
  }, M = ({
@@ -113,35 +101,48 @@ const j = ({ children: r, error: t, isLoading: s }) => {
113
101
  observability: t,
114
102
  componentName: s
115
103
  }) => {
116
- const o = c(Date.now()), e = c(t), i = c(s);
117
- return p(() => {
118
- e.current = t, i.current = s;
119
- }, [t, s]), p(() => () => {
104
+ const o = c(Date.now()), n = c(t), i = c(s);
105
+ return u(() => {
106
+ n.current = t, i.current = s;
107
+ }, [t, s]), u(() => () => {
120
108
  const a = Date.now() - o.current;
121
- e.current?.onMetric?.({
109
+ n.current?.onMetric?.({
122
110
  name: "sdk.component.loading_duration",
123
111
  value: a,
124
112
  unit: "ms",
125
113
  tags: i.current ? { component: i.current } : void 0,
126
114
  timestamp: Date.now()
127
115
  });
128
- }, []), /* @__PURE__ */ n(r, {});
129
- }, U = ({
116
+ }, []), /* @__PURE__ */ e(r, {});
117
+ };
118
+ function U({ componentName: r }) {
119
+ const { LoadingIndicator: t } = d(), { observability: s } = E();
120
+ return /* @__PURE__ */ e(
121
+ M,
122
+ {
123
+ LoaderComponent: t,
124
+ observability: s,
125
+ componentName: r
126
+ }
127
+ );
128
+ }
129
+ const _ = ({
130
130
  children: r,
131
- FallbackComponent: t = g,
132
- onErrorBoundaryError: s
133
- }) => /* @__PURE__ */ n(k, { children: ({ reset: o }) => /* @__PURE__ */ n(
131
+ FallbackComponent: t = f,
132
+ onErrorBoundaryError: s,
133
+ componentName: o
134
+ }) => /* @__PURE__ */ e(S, { children: ({ reset: n }) => /* @__PURE__ */ e(
134
135
  B,
135
136
  {
136
137
  FallbackComponent: t,
137
- onReset: o,
138
+ onReset: n,
138
139
  onError: s,
139
- children: r
140
+ children: /* @__PURE__ */ e(k, { fallback: /* @__PURE__ */ e(U, { componentName: o }), children: r })
140
141
  }
141
142
  ) });
142
143
  export {
143
- U as BaseBoundaries,
144
- $ as BaseComponent,
144
+ _ as BaseBoundaries,
145
+ N as BaseComponent,
145
146
  j as BaseLayout
146
147
  };
147
148
  //# sourceMappingURL=Base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onEvent: OnEventType<EventType, unknown>\n}\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n >\n <Suspense\n fallback={\n <LoaderWithMetrics\n LoaderComponent={LoaderComponent}\n observability={observability}\n componentName={componentName}\n />\n }\n >\n <BaseLayout error={error}>{children}</BaseLayout>\n </Suspense>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\nexport const BaseLayout = ({ children, error, isLoading }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoadingIndicatorContextProps['LoadingIndicator']\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n {children}\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","Suspense","LoaderWithMetrics","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","QueryErrorResetBoundary","resetQueries","ErrorBoundary"],"mappings":"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"}
1
+ {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: BaseBoundariesProps['FallbackComponent']\n LoaderComponent?: LoadingIndicatorContextProps['LoadingIndicator']\n onEvent: OnEventType<EventType, unknown>\n}\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n componentName={componentName}\n >\n <BaseLayout error={error}>{children}</BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\nexport const BaseLayout = ({ children, error, isLoading }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoadingIndicatorContextProps['LoadingIndicator']\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nfunction SuspenseFallback({ componentName }: { componentName?: string }) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={LoadingIndicator}\n observability={observability}\n componentName={componentName}\n />\n )\n}\n\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n componentName?: string\n}\n\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n componentName,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<SuspenseFallback componentName={componentName} />}>\n {children}\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","LoaderWithMetrics","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","SuspenseFallback","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import { ComponentType } from 'react';
1
2
  import { UseFieldProps } from '../hooks/useField';
2
3
  import { CheckboxProps } from '../../UI/Checkbox/CheckboxTypes';
3
4
  export interface CheckboxFieldProps extends Omit<CheckboxProps, 'name' | 'value' | 'isInvalid'>, UseFieldProps<boolean> {
5
+ FieldComponent?: ComponentType<CheckboxProps>;
4
6
  }
5
7
  export declare const CheckboxField: React.FC<CheckboxFieldProps>;
@@ -1,34 +1,35 @@
1
- import { jsx as d } from "react/jsx-runtime";
2
- import { useField as l } from "../hooks/useField.js";
3
- import { useComponentContext as u } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
4
- const F = ({
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { useField as b } from "../hooks/useField.js";
3
+ import { useComponentContext as h } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
4
+ const P = ({
5
5
  rules: o,
6
6
  defaultValue: e,
7
7
  name: t,
8
- errorMessage: r,
9
- isRequired: n,
8
+ errorMessage: n,
9
+ isRequired: r,
10
10
  onChange: m,
11
11
  transform: s,
12
12
  description: p,
13
- onBlur: i,
14
- inputRef: c,
13
+ onBlur: c,
14
+ inputRef: i,
15
+ FieldComponent: C,
15
16
  ...x
16
17
  }) => {
17
- const C = u(), f = l({
18
+ const d = h(), f = b({
18
19
  name: t,
19
20
  rules: o,
20
21
  defaultValue: e,
21
- errorMessage: r,
22
- isRequired: n,
22
+ errorMessage: n,
23
+ isRequired: r,
23
24
  onChange: m,
24
25
  transform: s,
25
26
  description: p,
26
- onBlur: i,
27
- inputRef: c
28
- });
29
- return /* @__PURE__ */ d(C.Checkbox, { ...x, ...f });
27
+ onBlur: c,
28
+ inputRef: i
29
+ }), l = C ?? d.Checkbox;
30
+ return /* @__PURE__ */ u(l, { ...x, ...f });
30
31
  };
31
32
  export {
32
- F as CheckboxField
33
+ P as CheckboxField
33
34
  };
34
35
  //# sourceMappingURL=CheckboxField.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxField.js","sources":["../../../../../src/components/Common/Fields/CheckboxField/CheckboxField.tsx"],"sourcesContent":["import { useField, type UseFieldProps } from '@/components/Common/Fields/hooks/useField'\nimport type { CheckboxProps } from '@/components/Common/UI/Checkbox/CheckboxTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport interface CheckboxFieldProps\n extends Omit<CheckboxProps, 'name' | 'value' | 'isInvalid'>, UseFieldProps<boolean> {}\n\nexport const CheckboxField: React.FC<CheckboxFieldProps> = ({\n rules,\n defaultValue,\n name,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n ...checkboxProps\n}: CheckboxFieldProps) => {\n const Components = useComponentContext()\n const fieldProps = useField({\n name,\n rules,\n defaultValue,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n })\n\n return <Components.Checkbox {...checkboxProps} {...fieldProps} />\n}\n"],"names":["CheckboxField","rules","defaultValue","name","errorMessage","isRequired","onChange","transform","description","onBlur","inputRef","checkboxProps","Components","useComponentContext","fieldProps","useField"],"mappings":";;;AAOO,MAAMA,IAA8C,CAAC;AAAA,EAC1D,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,MAA0B;AACxB,QAAMC,IAAaC,EAAA,GACbC,IAAaC,EAAS;AAAA,IAC1B,MAAAZ;AAAA,IACA,OAAAF;AAAA,IACA,cAAAC;AAAA,IACA,cAAAE;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,CACD;AAED,2BAAQE,EAAW,UAAX,EAAqB,GAAGD,GAAgB,GAAGG,GAAY;AACjE;"}
1
+ {"version":3,"file":"CheckboxField.js","sources":["../../../../../src/components/Common/Fields/CheckboxField/CheckboxField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useField, type UseFieldProps } from '@/components/Common/Fields/hooks/useField'\nimport type { CheckboxProps } from '@/components/Common/UI/Checkbox/CheckboxTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport interface CheckboxFieldProps\n extends Omit<CheckboxProps, 'name' | 'value' | 'isInvalid'>, UseFieldProps<boolean> {\n FieldComponent?: ComponentType<CheckboxProps>\n}\n\nexport const CheckboxField: React.FC<CheckboxFieldProps> = ({\n rules,\n defaultValue,\n name,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n FieldComponent,\n ...checkboxProps\n}: CheckboxFieldProps) => {\n const Components = useComponentContext()\n const fieldProps = useField({\n name,\n rules,\n defaultValue,\n errorMessage,\n isRequired,\n onChange,\n transform,\n description,\n onBlur,\n inputRef,\n })\n\n const RenderComponent = FieldComponent ?? Components.Checkbox\n return <RenderComponent {...checkboxProps} {...fieldProps} />\n}\n"],"names":["CheckboxField","rules","defaultValue","name","errorMessage","isRequired","onChange","transform","description","onBlur","inputRef","FieldComponent","checkboxProps","Components","useComponentContext","fieldProps","useField","RenderComponent","jsx"],"mappings":";;;AAUO,MAAMA,IAA8C,CAAC;AAAA,EAC1D,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,GAAGC;AACL,MAA0B;AACxB,QAAMC,IAAaC,EAAA,GACbC,IAAaC,EAAS;AAAA,IAC1B,MAAAb;AAAA,IACA,OAAAF;AAAA,IACA,cAAAC;AAAA,IACA,cAAAE;AAAA,IACA,YAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,CACD,GAEKO,IAAkBN,KAAkBE,EAAW;AACrD,SAAO,gBAAAK,EAACD,GAAA,EAAiB,GAAGL,GAAgB,GAAGG,EAAA,CAAY;AAC7D;"}
@@ -1,7 +1,9 @@
1
- import { default as React } from 'react';
1
+ import { ComponentType } from 'react';
2
2
  import { UseFieldProps } from '../hooks/useField';
3
3
  import { DatePickerProps } from '../../UI/DatePicker/DatePickerTypes';
4
- interface DatePickerFieldProps extends Omit<DatePickerProps, 'name' | 'onChange' | 'isInvalid'>, UseFieldProps<Date | null> {
4
+ type DateFieldValue = string | Date | null;
5
+ export interface DatePickerFieldProps<TValue extends DateFieldValue = Date | null> extends Omit<DatePickerProps, 'name' | 'onChange' | 'isInvalid'>, UseFieldProps<TValue> {
6
+ FieldComponent?: ComponentType<DatePickerProps>;
5
7
  }
6
- export declare const DatePickerField: React.FC<DatePickerFieldProps>;
8
+ export declare const DatePickerField: <TValue extends DateFieldValue = Date | null>({ rules, defaultValue, name, errorMessage, isRequired, onChange, transform, description, onBlur, inputRef, FieldComponent, ...datePickerProps }: DatePickerFieldProps<TValue>) => import("react/jsx-runtime").JSX.Element;
7
9
  export {};