@gusto/embedded-react-sdk 0.55.7 → 0.56.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 (379) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/dist/components/Common/FadeIn/FadeIn.module.scss.js +4 -4
  3. package/dist/components/Common/FieldCaption/FieldCaption.js +22 -18
  4. package/dist/components/Common/FieldCaption/FieldCaption.js.map +1 -1
  5. package/dist/components/Common/Flex/Flex.js +17 -15
  6. package/dist/components/Common/Flex/Flex.js.map +1 -1
  7. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  8. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  9. package/dist/components/Common/UI/Heading/Heading.module.scss.js +7 -7
  10. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  11. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js +43 -42
  12. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.js.map +1 -1
  13. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  14. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -3
  15. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  16. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -3
  17. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  18. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -5
  19. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  20. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -3
  21. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  22. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  23. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  24. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +27 -27
  25. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  26. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -8
  27. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  28. package/dist/components/Company/Industry/Context.js +8 -6
  29. package/dist/components/Company/Industry/Context.js.map +1 -1
  30. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -3
  31. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  32. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -3
  33. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  34. package/dist/components/Company/OnboardingOverview/context.js +5 -3
  35. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  36. package/dist/components/Company/PaySchedule/PaySchedule.js +45 -30
  37. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  38. package/dist/components/Company/PaySchedule/PayScheduleComponents.js +12 -11
  39. package/dist/components/Company/PaySchedule/PayScheduleComponents.js.map +1 -1
  40. package/dist/components/Company/PaySchedule/PayScheduleForm.js +72 -55
  41. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  42. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +24 -20
  43. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js.map +1 -1
  44. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js +33 -29
  45. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js.map +1 -1
  46. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +131 -115
  47. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  48. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -3
  49. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  50. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -3
  51. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  52. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +5 -3
  53. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  54. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +31 -29
  55. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -1
  56. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +110 -109
  57. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
  58. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +21 -19
  59. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -1
  60. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +56 -55
  61. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -1
  62. package/dist/components/Contractor/Dashboard/Dashboard.js +34 -33
  63. package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -1
  64. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +117 -115
  65. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
  66. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +77 -75
  67. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  68. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js +44 -43
  69. package/dist/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.js.map +1 -1
  70. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js +40 -39
  71. package/dist/components/Contractor/Payments/CreatePayment/PreviewPresentation.js.map +1 -1
  72. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +35 -29
  73. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
  74. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +21 -20
  75. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  76. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js +41 -40
  77. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.js.map +1 -1
  78. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +21 -20
  79. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  80. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js +33 -32
  81. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.js.map +1 -1
  82. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js +80 -78
  83. package/dist/components/Contractor/Payments/PaymentsList/PaymentsList.js.map +1 -1
  84. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +44 -43
  85. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  86. package/dist/components/Contractor/Submit/Submit.js +113 -105
  87. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  88. package/dist/components/Contractor/Submit/SubmitDone.js +11 -11
  89. package/dist/components/Contractor/Submit/SubmitDone.js.map +1 -1
  90. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js +20 -18
  91. package/dist/components/Employee/Compensation/management/CompensationAddJobForm/CompensationAddJobForm.js.map +1 -1
  92. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js +18 -15
  93. package/dist/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.js.map +1 -1
  94. package/dist/components/Employee/Dashboard/Dashboard.js +33 -32
  95. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  96. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js +21 -19
  97. package/dist/components/Employee/Deductions/management/DeductionsEditForm/DeductionsEditForm.js.map +1 -1
  98. package/dist/components/Employee/Documents/management/DocumentManager.js +34 -26
  99. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  100. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  101. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  102. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +30 -29
  103. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
  104. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +54 -53
  105. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js.map +1 -1
  106. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +29 -28
  107. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  108. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +16 -15
  109. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
  110. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js +27 -25
  111. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeList.js.map +1 -1
  112. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js +121 -111
  113. package/dist/components/Employee/EmployeeList/management/ManagementEmployeeListView.js.map +1 -1
  114. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js +22 -20
  115. package/dist/components/Employee/EmployeeList/onboarding/EmployeeList.js.map +1 -1
  116. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js +24 -23
  117. package/dist/components/Employee/EmployeeList/onboarding/EmployeeListView.js.map +1 -1
  118. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js +52 -43
  119. package/dist/components/Employee/EmployeeList/shared/useEmployeeList.js.map +1 -1
  120. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js +29 -26
  121. package/dist/components/Employee/EmployeeListFlow/employeeListStateMachine.js.map +1 -1
  122. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
  123. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js +19 -17
  124. package/dist/components/Employee/HomeAddress/management/HomeAddressEditForm.js.map +1 -1
  125. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +79 -78
  126. package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
  127. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +4 -4
  128. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +4 -4
  129. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +40 -39
  130. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  131. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +31 -30
  132. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  133. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +43 -41
  134. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  135. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +20 -19
  136. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
  137. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js +19 -17
  138. package/dist/components/Employee/WorkAddress/management/WorkAddressEditForm.js.map +1 -1
  139. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +49 -48
  140. package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
  141. package/dist/components/Flow/Flow.js +1 -1
  142. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +28 -28
  143. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  144. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +37 -36
  145. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  146. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js +36 -35
  147. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  148. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +35 -28
  149. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  150. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +23 -22
  151. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  152. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +48 -45
  153. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  154. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +85 -77
  155. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  156. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js +63 -59
  157. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  158. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js +23 -21
  159. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js.map +1 -1
  160. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js +26 -19
  161. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -1
  162. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +14 -12
  163. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  164. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +184 -162
  165. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  166. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +67 -65
  167. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  168. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js +48 -34
  169. package/dist/components/Payroll/PayrollConfiguration/useCalculationPoll.js.map +1 -1
  170. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +43 -41
  171. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  172. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +225 -223
  173. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  174. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js +78 -75
  175. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js.map +1 -1
  176. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js +27 -27
  177. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.js.map +1 -1
  178. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.js +19 -19
  179. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.js.map +1 -1
  180. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +51 -48
  181. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
  182. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +58 -48
  183. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  184. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +58 -57
  185. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  186. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +83 -69
  187. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  188. package/dist/components/Payroll/PayrollList/PayrollList.js +62 -60
  189. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  190. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +119 -117
  191. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  192. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +187 -171
  193. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  194. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +120 -110
  195. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  196. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js +45 -34
  197. package/dist/components/Payroll/PayrollOverview/useSubmissionPoll.js.map +1 -1
  198. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +20 -14
  199. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  200. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +62 -61
  201. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  202. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.module.scss.js +14 -14
  203. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js +24 -17
  204. package/dist/components/Payroll/PrintChecks/PrintChecksBanner/PrintChecksBanner.js.map +1 -1
  205. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js +22 -22
  206. package/dist/components/Payroll/PrintChecks/PrintChecksFailure/PrintChecksFailure.js.map +1 -1
  207. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +88 -80
  208. package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
  209. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js +52 -37
  210. package/dist/components/Payroll/PrintChecks/PrintChecksForm/useGenerationPoll.js.map +1 -1
  211. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js +26 -26
  212. package/dist/components/Payroll/PrintChecks/PrintChecksSummary/PrintChecksSummary.js.map +1 -1
  213. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +32 -32
  214. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  215. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +50 -48
  216. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  217. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js +34 -33
  218. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +1 -1
  219. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +1 -1
  220. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +28 -24
  221. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  222. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +255 -228
  223. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +1 -1
  224. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js +8 -4
  225. package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +1 -1
  226. package/dist/components/Payroll/usePreparedPayrollData.js +10 -8
  227. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  228. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js +5 -5
  229. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js.map +1 -1
  230. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js +8 -7
  231. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js.map +1 -1
  232. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js +51 -50
  233. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  234. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +20 -18
  235. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  236. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js +51 -49
  237. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  238. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js +20 -20
  239. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  240. package/dist/components/TimeOff/PolicyList/PolicyList.js +50 -49
  241. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  242. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js +34 -33
  243. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  244. package/dist/components/TimeOff/PolicySettings/PolicySettings.js +46 -45
  245. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  246. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +152 -143
  247. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  248. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js +14 -13
  249. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  250. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +44 -35
  251. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  252. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js +88 -71
  253. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  254. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +164 -155
  255. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  256. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +57 -55
  257. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  258. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +25 -24
  259. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  260. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +94 -92
  261. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  262. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js +156 -155
  263. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  264. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +21 -19
  265. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  266. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -26
  267. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  268. package/dist/contexts/ApiProvider/ApiProvider.js +29 -28
  269. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  270. package/dist/contexts/ApiProvider/apiVersionMismatchHook.js +15 -0
  271. package/dist/contexts/ApiProvider/apiVersionMismatchHook.js.map +1 -0
  272. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  273. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  274. package/dist/contexts/ThemeProvider/ThemeProvider.js +32 -26
  275. package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
  276. package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
  277. package/dist/hooks/usePollingTask/usePollingTask.js +53 -41
  278. package/dist/hooks/usePollingTask/usePollingTask.js.map +1 -1
  279. package/dist/i18n/en/Company.PaySchedule.json.js +22 -20
  280. package/dist/i18n/en/Company.PaySchedule.json.js.map +1 -1
  281. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js +28 -24
  282. package/dist/i18n/en/Employee.ManagementEmployeeList.json.js.map +1 -1
  283. package/dist/i18n/en/Payroll.GrossUpModal.json.js +12 -10
  284. package/dist/i18n/en/Payroll.GrossUpModal.json.js.map +1 -1
  285. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +8 -8
  286. package/dist/i18n/en/Payroll.PayrollOverview.json.js +15 -15
  287. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js +62 -58
  288. package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +1 -1
  289. package/dist/package.json.js +1 -1
  290. package/dist/src/components/Common/FieldCaption/FieldCaption.d.ts +2 -16
  291. package/dist/src/components/Common/FieldCaption/FieldCaptionTypes.d.ts +22 -0
  292. package/dist/src/components/Common/FieldCaption/index.d.ts +1 -0
  293. package/dist/src/components/Common/Flex/Flex.d.ts +3 -1
  294. package/dist/src/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +1 -1
  295. package/dist/src/components/Common/UI/DatePicker/DatePickerTypes.d.ts +2 -1
  296. package/dist/src/components/Common/UI/Menu/MenuTypes.d.ts +1 -1
  297. package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBox.d.ts +1 -1
  298. package/dist/src/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +5 -0
  299. package/dist/src/components/Common/UI/Select/SelectTypes.d.ts +2 -1
  300. package/dist/src/components/Company/PaySchedule/PaySchedule.d.ts +10 -2
  301. package/dist/src/components/Company/PaySchedule/PayScheduleComponents.d.ts +1 -0
  302. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/fields.d.ts +9 -1
  303. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/index.d.ts +2 -2
  304. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +21 -5
  305. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +21 -3
  306. package/dist/src/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +3 -1
  307. package/dist/src/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +3 -1
  308. package/dist/src/components/Contractor/Payments/CreatePayment/CreatePaymentPresentation.d.ts +3 -1
  309. package/dist/src/components/Contractor/Payments/CreatePayment/PreviewPresentation.d.ts +3 -1
  310. package/dist/src/components/Contractor/Payments/PaymentHistory/PaymentHistoryPresentation.d.ts +3 -1
  311. package/dist/src/components/Contractor/Payments/PaymentStatement/PaymentStatementPresentation.d.ts +3 -1
  312. package/dist/src/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.d.ts +3 -1
  313. package/dist/src/components/Contractor/Submit/SubmitDone.d.ts +3 -1
  314. package/dist/src/components/Employee/Compensation/management/CompensationEditForm/CompensationEditForm.d.ts +1 -1
  315. package/dist/src/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.d.ts +3 -1
  316. package/dist/src/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.d.ts +3 -1
  317. package/dist/src/components/Employee/EmployeeList/management/ManagementEmployeeListView.d.ts +3 -1
  318. package/dist/src/components/Employee/EmployeeList/onboarding/EmployeeListView.d.ts +3 -1
  319. package/dist/src/components/Employee/EmployeeList/shared/useEmployeeList.d.ts +11 -2
  320. package/dist/src/components/Employee/EmployeeListFlow/employeeListStateMachine.test.d.ts +1 -0
  321. package/dist/src/components/Employee/HomeAddress/management/HomeAddressView.d.ts +3 -1
  322. package/dist/src/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.d.ts +3 -1
  323. package/dist/src/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.d.ts +3 -1
  324. package/dist/src/components/Employee/WorkAddress/management/WorkAddressView.d.ts +3 -1
  325. package/dist/src/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.d.ts +3 -1
  326. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -1
  327. package/dist/src/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +8 -0
  328. package/dist/src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +3 -1
  329. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +3 -1
  330. package/dist/src/components/Payroll/PayrollConfiguration/useCalculationPoll.d.ts +6 -1
  331. package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +3 -1
  332. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.d.ts +9 -9
  333. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeHelpers.d.ts +2 -2
  334. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/payrollEditEmployeeSchema.d.ts +4 -4
  335. package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +3 -1
  336. package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +3 -1
  337. package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +2 -1
  338. package/dist/src/components/Payroll/PayrollOverview/useSubmissionPoll.d.ts +10 -1
  339. package/dist/src/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +2 -1
  340. package/dist/src/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +1 -1
  341. package/dist/src/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +2 -0
  342. package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +3 -1
  343. package/dist/src/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts +1 -1
  344. package/dist/src/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.d.ts +1 -1
  345. package/dist/src/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.d.ts +1 -1
  346. package/dist/src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -1
  347. package/dist/src/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +2 -0
  348. package/dist/src/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +2 -0
  349. package/dist/src/components/TimeOff/PolicyList/PolicyListPresentation.d.ts +1 -1
  350. package/dist/src/components/TimeOff/PolicyList/PolicyListTypes.d.ts +2 -0
  351. package/dist/src/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +1 -1
  352. package/dist/src/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +2 -0
  353. package/dist/src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.d.ts +1 -1
  354. package/dist/src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorTypes.d.ts +2 -0
  355. package/dist/src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -1
  356. package/dist/src/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +2 -0
  357. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.d.ts +2 -0
  358. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
  359. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +2 -0
  360. package/dist/src/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.d.ts +2 -0
  361. package/dist/src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +1 -1
  362. package/dist/src/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +3 -0
  363. package/dist/src/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -1
  364. package/dist/src/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +2 -0
  365. package/dist/src/contexts/ApiProvider/ApiProvider.d.ts +5 -3
  366. package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.d.ts +3 -0
  367. package/dist/src/contexts/ApiProvider/apiVersionMismatchHook.test.d.ts +1 -0
  368. package/dist/src/contexts/ComponentAdapter/componentAdapterTypes.d.ts +1 -0
  369. package/dist/src/contexts/ComponentAdapter/useComponentContext.d.ts +4 -1
  370. package/dist/src/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +9 -1
  371. package/dist/src/contexts/ThemeProvider/ThemeProvider.d.ts +8 -3
  372. package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +4 -1
  373. package/dist/src/hooks/usePollingTask/usePollingTask.d.ts +55 -14
  374. package/dist/src/i18n/types.d.ts +42 -2
  375. package/dist/src/index.d.ts +1 -1
  376. package/dist/src/models/external.d.ts +1 -0
  377. package/dist/style.css +1 -1
  378. package/docs/guides/endpoint-inventory.json +5 -0
  379. package/package.json +20 -19
@@ -1 +1 @@
1
- {"version":3,"file":"PolicySettings.js","sources":["../../../../src/components/TimeOff/PolicySettings/PolicySettings.tsx"],"sourcesContent":["import { useTimeOffPoliciesGetSuspense } from '@gusto/embedded-api/react-query/timeOffPoliciesGet'\nimport { useTimeOffPoliciesUpdateMutation } from '@gusto/embedded-api/react-query/timeOffPoliciesUpdate'\nimport type { PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody } from '@gusto/embedded-api/models/operations/putv1timeoffpoliciestimeoffpolicyuuid'\nimport type { TimeOffPolicy } from '@gusto/embedded-api/models/components/timeoffpolicy'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useTranslation } from 'react-i18next'\nimport { PolicySettingsPresentation } from './PolicySettingsPresentation'\nimport type { PolicySettingsFormData, PolicySettingsAccrualMethod } from './PolicySettingsTypes'\nimport { API_QUERY_NAMESPACE } from '@/contexts/ApiProvider/apiVersion'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\n\n/**\n * Props for {@link PolicySettings}.\n *\n * @public\n */\nexport interface PolicySettingsProps extends BaseComponentInterface<'Company.TimeOff.CreateTimeOffPolicy'> {\n /** UUID of the time off policy being configured. */\n policyId: string\n /** Whether the form is being used to create a new policy or edit an existing one. Defaults to create. */\n mode?: 'create' | 'edit'\n}\n\n/**\n * Configures additional policy limits and rules for a sick or vacation policy. This step is skipped for policies with unlimited accrual.\n *\n * @remarks\n * Fetches the time off policy, derives the accrual method category, and submits updates to the time off policies endpoint. Emits the following events:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/policySettings/done` | Fired when policy settings are saved | The updated `TimeOffPolicy` |\n * | `timeOff/policySettings/back` | Fired when the user navigates back | — |\n *\n * @param props - {@link PolicySettingsProps}\n * @returns The rendered policy settings form.\n * @public\n */\nexport function PolicySettings(props: PolicySettingsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nconst HOURLY_ACCRUAL_METHODS = [\n 'per_hour_worked',\n 'per_hour_worked_no_overtime',\n 'per_hour_paid',\n 'per_hour_paid_no_overtime',\n]\n\nconst ALL_AT_ONCE_ACCRUAL_METHODS = ['per_anniversary_year', 'per_calendar_year']\n\nfunction deriveAccrualMethodCategory(apiAccrualMethod: string): PolicySettingsAccrualMethod {\n if (HOURLY_ACCRUAL_METHODS.includes(apiAccrualMethod)) return 'hours_worked'\n if (ALL_AT_ONCE_ACCRUAL_METHODS.includes(apiAccrualMethod)) return 'fixed_all_at_once'\n return 'fixed_per_pay_period'\n}\n\nfunction deriveDefaultValues(policy: TimeOffPolicy): Partial<PolicySettingsFormData> {\n const defaults: Partial<PolicySettingsFormData> = {}\n\n if (policy.maxAccrualHoursPerYear != null) {\n defaults.accrualMaximumEnabled = true\n defaults.accrualMaximum = Number(policy.maxAccrualHoursPerYear)\n }\n\n if (policy.maxHours != null) {\n defaults.balanceMaximumEnabled = true\n defaults.balanceMaximum = Number(policy.maxHours)\n }\n\n if (policy.carryoverLimitHours != null) {\n defaults.carryOverLimitEnabled = true\n defaults.carryOverLimit = Number(policy.carryoverLimitHours)\n }\n\n if (policy.accrualWaitingPeriodDays != null && policy.accrualWaitingPeriodDays > 0) {\n defaults.waitingPeriodEnabled = true\n defaults.waitingPeriod = policy.accrualWaitingPeriodDays\n }\n\n if (policy.paidOutOnTermination != null) {\n defaults.paidOutOnTermination = policy.paidOutOnTermination\n }\n\n return defaults\n}\n\nfunction buildUpdateRequestBody(\n data: PolicySettingsFormData,\n version: string,\n accrualCategory: PolicySettingsAccrualMethod,\n): PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody {\n const isAllAtOnce = accrualCategory === 'fixed_all_at_once'\n\n return {\n maxAccrualHoursPerYear:\n !isAllAtOnce && data.accrualMaximumEnabled && data.accrualMaximum != null\n ? String(data.accrualMaximum)\n : null,\n maxHours:\n data.balanceMaximumEnabled && data.balanceMaximum != null\n ? String(data.balanceMaximum)\n : null,\n carryoverLimitHours:\n data.carryOverLimitEnabled && data.carryOverLimit != null\n ? String(data.carryOverLimit)\n : null,\n accrualWaitingPeriodDays:\n !isAllAtOnce && data.waitingPeriodEnabled && data.waitingPeriod != null\n ? data.waitingPeriod\n : null,\n paidOutOnTermination: data.paidOutOnTermination,\n version,\n }\n}\n\nfunction Root({ policyId, mode }: PolicySettingsProps) {\n useI18n('Company.TimeOff.CreateTimeOffPolicy')\n const { t } = useTranslation('Company.TimeOff.CreateTimeOffPolicy')\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data: policyResponse } = useTimeOffPoliciesGetSuspense({\n timeOffPolicyUuid: policyId,\n })\n\n const { mutateAsync: updateTimeOffPolicy, isPending } = useTimeOffPoliciesUpdateMutation()\n\n const policy = policyResponse.timeOffPolicy\n if (!policy) throw new Error('Unexpected response: missing timeOffPolicy')\n\n const accrualCategory = deriveAccrualMethodCategory(policy.accrualMethod)\n const version = policy.version ?? ''\n\n const handleContinue = async (data: PolicySettingsFormData) => {\n await baseSubmitHandler(data, async () => {\n try {\n const { timeOffPolicy } = await updateTimeOffPolicy({\n request: {\n timeOffPolicyUuid: policyId,\n requestBody: buildUpdateRequestBody(data, version, accrualCategory),\n },\n })\n\n void queryClient.invalidateQueries({\n queryKey: [API_QUERY_NAMESPACE, 'timeOffPolicies', 'get'],\n })\n onEvent(componentEvents.TIME_OFF_POLICY_SETTINGS_DONE, timeOffPolicy)\n } catch (err) {\n if (err instanceof UnprocessableEntityError) {\n if (err.errors.some(e => e.message === 'LIMIT_VIOLATION_MAX_HOURS')) {\n throw new SDKInternalError(\n t('policySettings.errors.balanceExceedsMaximum'),\n 'api_error',\n )\n }\n const uniqueMessages = [...new Set(err.errors.map(e => e.message).filter(Boolean))]\n throw new SDKInternalError(\n t('errors.updatePolicySettingsFailed', {\n details: uniqueMessages.join('. '),\n }),\n 'api_error',\n )\n }\n throw err\n }\n })\n }\n\n const handleBack = () => {\n onEvent(componentEvents.TIME_OFF_POLICY_SETTINGS_BACK)\n }\n\n return (\n <PolicySettingsPresentation\n accrualMethod={accrualCategory}\n onContinue={handleContinue}\n onBack={handleBack}\n defaultValues={deriveDefaultValues(policy)}\n mode={mode}\n editingPolicyName={mode === 'edit' ? policy.name : undefined}\n isPending={isPending}\n />\n )\n}\n"],"names":["PolicySettings","props","jsx","BaseComponent","Root","HOURLY_ACCRUAL_METHODS","ALL_AT_ONCE_ACCRUAL_METHODS","deriveAccrualMethodCategory","apiAccrualMethod","deriveDefaultValues","policy","defaults","buildUpdateRequestBody","data","version","accrualCategory","isAllAtOnce","policyId","mode","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","policyResponse","useTimeOffPoliciesGetSuspense","updateTimeOffPolicy","isPending","useTimeOffPoliciesUpdateMutation","PolicySettingsPresentation","timeOffPolicy","API_QUERY_NAMESPACE","componentEvents","err","UnprocessableEntityError","e","SDKInternalError","uniqueMessages"],"mappings":"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"}
1
+ {"version":3,"file":"PolicySettings.js","sources":["../../../../src/components/TimeOff/PolicySettings/PolicySettings.tsx"],"sourcesContent":["import { useTimeOffPoliciesGetSuspense } from '@gusto/embedded-api/react-query/timeOffPoliciesGet'\nimport { useTimeOffPoliciesUpdateMutation } from '@gusto/embedded-api/react-query/timeOffPoliciesUpdate'\nimport type { PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody } from '@gusto/embedded-api/models/operations/putv1timeoffpoliciestimeoffpolicyuuid'\nimport type { TimeOffPolicy } from '@gusto/embedded-api/models/components/timeoffpolicy'\nimport { UnprocessableEntityError } from '@gusto/embedded-api/models/errors/unprocessableentityerror'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useTranslation } from 'react-i18next'\nimport { PolicySettingsPresentation } from './PolicySettingsPresentation'\nimport type { PolicySettingsFormData, PolicySettingsAccrualMethod } from './PolicySettingsTypes'\nimport { API_QUERY_NAMESPACE } from '@/contexts/ApiProvider/apiVersion'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { componentEvents } from '@/shared/constants'\nimport { useI18n } from '@/i18n'\n\n/**\n * Props for {@link PolicySettings}.\n *\n * @public\n */\nexport interface PolicySettingsProps extends BaseComponentInterface<'Company.TimeOff.CreateTimeOffPolicy'> {\n /** UUID of the time off policy being configured. */\n policyId: string\n /** Whether the form is being used to create a new policy or edit an existing one. Defaults to create. */\n mode?: 'create' | 'edit'\n}\n\n/**\n * Configures additional policy limits and rules for a sick or vacation policy. This step is skipped for policies with unlimited accrual.\n *\n * @remarks\n * Fetches the time off policy, derives the accrual method category, and submits updates to the time off policies endpoint. Emits the following events:\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/policySettings/done` | Fired when policy settings are saved | The updated `TimeOffPolicy` |\n * | `timeOff/policySettings/back` | Fired when the user navigates back | — |\n *\n * @param props - {@link PolicySettingsProps}\n * @returns The rendered policy settings form.\n * @public\n */\nexport function PolicySettings(props: PolicySettingsProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nconst HOURLY_ACCRUAL_METHODS = [\n 'per_hour_worked',\n 'per_hour_worked_no_overtime',\n 'per_hour_paid',\n 'per_hour_paid_no_overtime',\n]\n\nconst ALL_AT_ONCE_ACCRUAL_METHODS = ['per_anniversary_year', 'per_calendar_year']\n\nfunction deriveAccrualMethodCategory(apiAccrualMethod: string): PolicySettingsAccrualMethod {\n if (HOURLY_ACCRUAL_METHODS.includes(apiAccrualMethod)) return 'hours_worked'\n if (ALL_AT_ONCE_ACCRUAL_METHODS.includes(apiAccrualMethod)) return 'fixed_all_at_once'\n return 'fixed_per_pay_period'\n}\n\nfunction deriveDefaultValues(policy: TimeOffPolicy): Partial<PolicySettingsFormData> {\n const defaults: Partial<PolicySettingsFormData> = {}\n\n if (policy.maxAccrualHoursPerYear != null) {\n defaults.accrualMaximumEnabled = true\n defaults.accrualMaximum = Number(policy.maxAccrualHoursPerYear)\n }\n\n if (policy.maxHours != null) {\n defaults.balanceMaximumEnabled = true\n defaults.balanceMaximum = Number(policy.maxHours)\n }\n\n if (policy.carryoverLimitHours != null) {\n defaults.carryOverLimitEnabled = true\n defaults.carryOverLimit = Number(policy.carryoverLimitHours)\n }\n\n if (policy.accrualWaitingPeriodDays != null && policy.accrualWaitingPeriodDays > 0) {\n defaults.waitingPeriodEnabled = true\n defaults.waitingPeriod = policy.accrualWaitingPeriodDays\n }\n\n if (policy.paidOutOnTermination != null) {\n defaults.paidOutOnTermination = policy.paidOutOnTermination\n }\n\n return defaults\n}\n\nfunction buildUpdateRequestBody(\n data: PolicySettingsFormData,\n version: string,\n accrualCategory: PolicySettingsAccrualMethod,\n): PutV1TimeOffPoliciesTimeOffPolicyUuidRequestBody {\n const isAllAtOnce = accrualCategory === 'fixed_all_at_once'\n\n return {\n maxAccrualHoursPerYear:\n !isAllAtOnce && data.accrualMaximumEnabled && data.accrualMaximum != null\n ? String(data.accrualMaximum)\n : null,\n maxHours:\n data.balanceMaximumEnabled && data.balanceMaximum != null\n ? String(data.balanceMaximum)\n : null,\n carryoverLimitHours:\n data.carryOverLimitEnabled && data.carryOverLimit != null\n ? String(data.carryOverLimit)\n : null,\n accrualWaitingPeriodDays:\n !isAllAtOnce && data.waitingPeriodEnabled && data.waitingPeriod != null\n ? data.waitingPeriod\n : null,\n paidOutOnTermination: data.paidOutOnTermination,\n version,\n }\n}\n\nfunction Root({ policyId, mode, className }: PolicySettingsProps) {\n useI18n('Company.TimeOff.CreateTimeOffPolicy')\n const { t } = useTranslation('Company.TimeOff.CreateTimeOffPolicy')\n const { onEvent, baseSubmitHandler } = useBase()\n const queryClient = useQueryClient()\n\n const { data: policyResponse } = useTimeOffPoliciesGetSuspense({\n timeOffPolicyUuid: policyId,\n })\n\n const { mutateAsync: updateTimeOffPolicy, isPending } = useTimeOffPoliciesUpdateMutation()\n\n const policy = policyResponse.timeOffPolicy\n if (!policy) throw new Error('Unexpected response: missing timeOffPolicy')\n\n const accrualCategory = deriveAccrualMethodCategory(policy.accrualMethod)\n const version = policy.version ?? ''\n\n const handleContinue = async (data: PolicySettingsFormData) => {\n await baseSubmitHandler(data, async () => {\n try {\n const { timeOffPolicy } = await updateTimeOffPolicy({\n request: {\n timeOffPolicyUuid: policyId,\n requestBody: buildUpdateRequestBody(data, version, accrualCategory),\n },\n })\n\n void queryClient.invalidateQueries({\n queryKey: [API_QUERY_NAMESPACE, 'timeOffPolicies', 'get'],\n })\n onEvent(componentEvents.TIME_OFF_POLICY_SETTINGS_DONE, timeOffPolicy)\n } catch (err) {\n if (err instanceof UnprocessableEntityError) {\n if (err.errors.some(e => e.message === 'LIMIT_VIOLATION_MAX_HOURS')) {\n throw new SDKInternalError(\n t('policySettings.errors.balanceExceedsMaximum'),\n 'api_error',\n )\n }\n const uniqueMessages = [...new Set(err.errors.map(e => e.message).filter(Boolean))]\n throw new SDKInternalError(\n t('errors.updatePolicySettingsFailed', {\n details: uniqueMessages.join('. '),\n }),\n 'api_error',\n )\n }\n throw err\n }\n })\n }\n\n const handleBack = () => {\n onEvent(componentEvents.TIME_OFF_POLICY_SETTINGS_BACK)\n }\n\n return (\n <PolicySettingsPresentation\n accrualMethod={accrualCategory}\n onContinue={handleContinue}\n onBack={handleBack}\n defaultValues={deriveDefaultValues(policy)}\n mode={mode}\n editingPolicyName={mode === 'edit' ? policy.name : undefined}\n isPending={isPending}\n className={className}\n />\n )\n}\n"],"names":["PolicySettings","props","jsx","BaseComponent","Root","HOURLY_ACCRUAL_METHODS","ALL_AT_ONCE_ACCRUAL_METHODS","deriveAccrualMethodCategory","apiAccrualMethod","deriveDefaultValues","policy","defaults","buildUpdateRequestBody","data","version","accrualCategory","isAllAtOnce","policyId","mode","className","useI18n","t","useTranslation","onEvent","baseSubmitHandler","useBase","queryClient","useQueryClient","policyResponse","useTimeOffPoliciesGetSuspense","updateTimeOffPolicy","isPending","useTimeOffPoliciesUpdateMutation","PolicySettingsPresentation","timeOffPolicy","API_QUERY_NAMESPACE","componentEvents","err","UnprocessableEntityError","e","SDKInternalError","uniqueMessages"],"mappings":"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"}
@@ -1,18 +1,18 @@
1
1
  import { jsx as i, jsxs as l, Fragment as O } from "react/jsx-runtime";
2
2
  import { useId as t } from "react";
3
- import { useForm as k, useWatch as s, FormProvider as U } from "react-hook-form";
4
- import { useTranslation as W } from "react-i18next";
3
+ import { useForm as U, useWatch as s, FormProvider as W } from "react-hook-form";
4
+ import { useTranslation as _ } from "react-i18next";
5
5
  import { z as n } from "zod";
6
- import { zodResolver as _ } from "@hookform/resolvers/zod";
6
+ import { zodResolver as j } from "@hookform/resolvers/zod";
7
7
  import a from "./PolicySettings.module.scss.js";
8
8
  import { Flex as L } from "../../Common/Flex/Flex.js";
9
- import { ActionsLayout as j } from "../../Common/ActionsLayout/ActionsLayout.js";
10
- import { Form as z } from "../../Common/Form/Form.js";
11
- import { useComponentContext as A } from "../../../contexts/ComponentAdapter/useComponentContext.js";
12
- import { useI18n as B } from "../../../i18n/I18n.js";
9
+ import { ActionsLayout as z } from "../../Common/ActionsLayout/ActionsLayout.js";
10
+ import { Form as A } from "../../Common/Form/Form.js";
11
+ import { useComponentContext as B } from "../../../contexts/ComponentAdapter/useComponentContext.js";
12
+ import { useI18n as q } from "../../../i18n/I18n.js";
13
13
  import { NumberInputField as c } from "../../Common/Fields/NumberInputField/NumberInputField.js";
14
14
  import { SwitchField as r } from "../../Common/Fields/SwitchField/SwitchField.js";
15
- const q = n.object({
15
+ const G = n.object({
16
16
  accrualMaximumEnabled: n.boolean(),
17
17
  accrualMaximum: n.number().optional(),
18
18
  balanceMaximumEnabled: n.boolean(),
@@ -23,18 +23,19 @@ const q = n.object({
23
23
  waitingPeriod: n.number().int().optional(),
24
24
  paidOutOnTermination: n.boolean()
25
25
  });
26
- function re({
26
+ function oe({
27
27
  accrualMethod: d,
28
28
  onContinue: M,
29
29
  onBack: E,
30
30
  defaultValues: P,
31
31
  mode: w,
32
32
  editingPolicyName: u,
33
- isPending: b = !1
33
+ isPending: b = !1,
34
+ className: N
34
35
  }) {
35
- B("Company.TimeOff.CreateTimeOffPolicy");
36
- const { t: e } = W("Company.TimeOff.CreateTimeOffPolicy"), { Heading: N, Button: p } = A(), g = t(), y = t(), h = t(), f = t(), x = t(), m = k({
37
- resolver: _(q),
36
+ q("Company.TimeOff.CreateTimeOffPolicy");
37
+ const { t: e } = _("Company.TimeOff.CreateTimeOffPolicy"), { Heading: H, Button: p } = B(), g = t(), y = t(), h = t(), f = t(), x = t(), m = U({
38
+ resolver: j(G),
38
39
  defaultValues: {
39
40
  accrualMaximumEnabled: !1,
40
41
  balanceMaximumEnabled: !1,
@@ -43,143 +44,151 @@ function re({
43
44
  paidOutOnTermination: !1,
44
45
  ...P
45
46
  }
46
- }), { control: o } = m, H = s({ control: o, name: "accrualMaximumEnabled" }), C = s({ control: o, name: "balanceMaximumEnabled" }), F = s({ control: o, name: "carryOverLimitEnabled" }), I = s({ control: o, name: "waitingPeriodEnabled" }), S = d === "hours_worked", v = d === "fixed_per_pay_period", T = S || v, D = S || v, R = (V) => {
47
- M(V);
47
+ }), { control: o } = m, C = s({ control: o, name: "accrualMaximumEnabled" }), F = s({ control: o, name: "balanceMaximumEnabled" }), I = s({ control: o, name: "carryOverLimitEnabled" }), T = s({ control: o, name: "waitingPeriodEnabled" }), S = d === "hours_worked", v = d === "fixed_per_pay_period", D = S || v, R = S || v, V = (k) => {
48
+ M(k);
48
49
  };
49
- return /* @__PURE__ */ i(U, { ...m, children: /* @__PURE__ */ i(z, { "aria-labelledby": g, onSubmit: m.handleSubmit(R), children: /* @__PURE__ */ i("div", { className: a.policySettings, children: /* @__PURE__ */ l(L, { flexDirection: "column", gap: 32, children: [
50
- /* @__PURE__ */ i(N, { as: "h2", id: g, children: w === "edit" && u ? e("policySettings.editTitle", { name: u }) : e("policySettings.createTitle") }),
51
- /* @__PURE__ */ l(L, { flexDirection: "column", gap: 20, children: [
52
- T && /* @__PURE__ */ l(O, { children: [
53
- /* @__PURE__ */ l("div", { className: a.settingRow, children: [
50
+ return /* @__PURE__ */ i(W, { ...m, children: /* @__PURE__ */ i(
51
+ A,
52
+ {
53
+ "aria-labelledby": g,
54
+ onSubmit: m.handleSubmit(V),
55
+ className: N,
56
+ children: /* @__PURE__ */ i("div", { className: a.policySettings, children: /* @__PURE__ */ l(L, { flexDirection: "column", gap: 32, children: [
57
+ /* @__PURE__ */ i(H, { as: "h2", id: g, children: w === "edit" && u ? e("policySettings.editTitle", { name: u }) : e("policySettings.createTitle") }),
58
+ /* @__PURE__ */ l(L, { flexDirection: "column", gap: 20, children: [
59
+ D && /* @__PURE__ */ l(O, { children: [
60
+ /* @__PURE__ */ l("div", { className: a.settingRow, children: [
61
+ /* @__PURE__ */ i(
62
+ c,
63
+ {
64
+ className: a.settingField,
65
+ id: y,
66
+ name: "accrualMaximum",
67
+ label: e("policySettings.accrualMaximumLabel"),
68
+ description: e("policySettings.accrualMaximumHint"),
69
+ adornmentEnd: e("policySettings.hoursUnit"),
70
+ placeholder: e("policySettings.numberOfHoursPlaceholder"),
71
+ isDisabled: !C,
72
+ min: 0,
73
+ max: 2e4
74
+ }
75
+ ),
76
+ /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
77
+ r,
78
+ {
79
+ name: "accrualMaximumEnabled",
80
+ label: e("policySettings.accrualMaximumLabel"),
81
+ shouldVisuallyHideLabel: !0,
82
+ "aria-controls": y
83
+ }
84
+ ) })
85
+ ] }),
86
+ /* @__PURE__ */ i("hr", { className: a.divider })
87
+ ] }),
88
+ /* @__PURE__ */ l("div", { className: a.settingRow, children: [
89
+ /* @__PURE__ */ i(
90
+ c,
91
+ {
92
+ className: a.settingField,
93
+ id: h,
94
+ name: "balanceMaximum",
95
+ label: e("policySettings.balanceMaximumLabel"),
96
+ description: e("policySettings.balanceMaximumHint"),
97
+ adornmentEnd: e("policySettings.hoursUnit"),
98
+ placeholder: e("policySettings.numberOfHoursPlaceholder"),
99
+ isDisabled: !F,
100
+ min: 0,
101
+ max: 2e4
102
+ }
103
+ ),
104
+ /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
105
+ r,
106
+ {
107
+ name: "balanceMaximumEnabled",
108
+ label: e("policySettings.balanceMaximumLabel"),
109
+ shouldVisuallyHideLabel: !0,
110
+ "aria-controls": h
111
+ }
112
+ ) })
113
+ ] }),
114
+ /* @__PURE__ */ i("hr", { className: a.divider }),
115
+ /* @__PURE__ */ l("div", { className: a.settingRow, children: [
116
+ /* @__PURE__ */ i(
117
+ c,
118
+ {
119
+ className: a.settingField,
120
+ id: f,
121
+ name: "carryOverLimit",
122
+ label: e("policySettings.carryOverLimitLabel"),
123
+ description: e("policySettings.carryOverLimitHint"),
124
+ adornmentEnd: e("policySettings.hoursUnit"),
125
+ placeholder: e("policySettings.numberOfHoursPlaceholder"),
126
+ isDisabled: !I,
127
+ min: 0,
128
+ max: 2e4
129
+ }
130
+ ),
131
+ /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
132
+ r,
133
+ {
134
+ name: "carryOverLimitEnabled",
135
+ label: e("policySettings.carryOverLimitLabel"),
136
+ shouldVisuallyHideLabel: !0,
137
+ "aria-controls": f
138
+ }
139
+ ) })
140
+ ] }),
141
+ /* @__PURE__ */ i("hr", { className: a.divider }),
142
+ R && /* @__PURE__ */ l(O, { children: [
143
+ /* @__PURE__ */ l("div", { className: a.settingRow, children: [
144
+ /* @__PURE__ */ i(
145
+ c,
146
+ {
147
+ className: a.settingField,
148
+ id: x,
149
+ name: "waitingPeriod",
150
+ label: e("policySettings.waitingPeriodLabel"),
151
+ description: e("policySettings.waitingPeriodHint"),
152
+ adornmentEnd: e("policySettings.daysUnit"),
153
+ placeholder: e("policySettings.numberOfDaysPlaceholder"),
154
+ isDisabled: !T,
155
+ min: 0,
156
+ max: 2e4,
157
+ maximumFractionDigits: 0,
158
+ errorMessage: e("policySettings.errors.waitingPeriodMustBeWholeNumber")
159
+ }
160
+ ),
161
+ /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
162
+ r,
163
+ {
164
+ name: "waitingPeriodEnabled",
165
+ label: e("policySettings.waitingPeriodLabel"),
166
+ shouldVisuallyHideLabel: !0,
167
+ "aria-controls": x
168
+ }
169
+ ) })
170
+ ] }),
171
+ /* @__PURE__ */ i("hr", { className: a.divider })
172
+ ] }),
54
173
  /* @__PURE__ */ i(
55
- c,
56
- {
57
- className: a.settingField,
58
- id: y,
59
- name: "accrualMaximum",
60
- label: e("policySettings.accrualMaximumLabel"),
61
- description: e("policySettings.accrualMaximumHint"),
62
- adornmentEnd: e("policySettings.hoursUnit"),
63
- placeholder: e("policySettings.numberOfHoursPlaceholder"),
64
- isDisabled: !H,
65
- min: 0,
66
- max: 2e4
67
- }
68
- ),
69
- /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
70
174
  r,
71
175
  {
72
- name: "accrualMaximumEnabled",
73
- label: e("policySettings.accrualMaximumLabel"),
74
- shouldVisuallyHideLabel: !0,
75
- "aria-controls": y
76
- }
77
- ) })
78
- ] }),
79
- /* @__PURE__ */ i("hr", { className: a.divider })
80
- ] }),
81
- /* @__PURE__ */ l("div", { className: a.settingRow, children: [
82
- /* @__PURE__ */ i(
83
- c,
84
- {
85
- className: a.settingField,
86
- id: h,
87
- name: "balanceMaximum",
88
- label: e("policySettings.balanceMaximumLabel"),
89
- description: e("policySettings.balanceMaximumHint"),
90
- adornmentEnd: e("policySettings.hoursUnit"),
91
- placeholder: e("policySettings.numberOfHoursPlaceholder"),
92
- isDisabled: !C,
93
- min: 0,
94
- max: 2e4
95
- }
96
- ),
97
- /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
98
- r,
99
- {
100
- name: "balanceMaximumEnabled",
101
- label: e("policySettings.balanceMaximumLabel"),
102
- shouldVisuallyHideLabel: !0,
103
- "aria-controls": h
104
- }
105
- ) })
106
- ] }),
107
- /* @__PURE__ */ i("hr", { className: a.divider }),
108
- /* @__PURE__ */ l("div", { className: a.settingRow, children: [
109
- /* @__PURE__ */ i(
110
- c,
111
- {
112
- className: a.settingField,
113
- id: f,
114
- name: "carryOverLimit",
115
- label: e("policySettings.carryOverLimitLabel"),
116
- description: e("policySettings.carryOverLimitHint"),
117
- adornmentEnd: e("policySettings.hoursUnit"),
118
- placeholder: e("policySettings.numberOfHoursPlaceholder"),
119
- isDisabled: !F,
120
- min: 0,
121
- max: 2e4
122
- }
123
- ),
124
- /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
125
- r,
126
- {
127
- name: "carryOverLimitEnabled",
128
- label: e("policySettings.carryOverLimitLabel"),
129
- shouldVisuallyHideLabel: !0,
130
- "aria-controls": f
131
- }
132
- ) })
133
- ] }),
134
- /* @__PURE__ */ i("hr", { className: a.divider }),
135
- D && /* @__PURE__ */ l(O, { children: [
136
- /* @__PURE__ */ l("div", { className: a.settingRow, children: [
137
- /* @__PURE__ */ i(
138
- c,
139
- {
140
- className: a.settingField,
141
- id: x,
142
- name: "waitingPeriod",
143
- label: e("policySettings.waitingPeriodLabel"),
144
- description: e("policySettings.waitingPeriodHint"),
145
- adornmentEnd: e("policySettings.daysUnit"),
146
- placeholder: e("policySettings.numberOfDaysPlaceholder"),
147
- isDisabled: !I,
148
- min: 0,
149
- max: 2e4,
150
- maximumFractionDigits: 0,
151
- errorMessage: e("policySettings.errors.waitingPeriodMustBeWholeNumber")
176
+ name: "paidOutOnTermination",
177
+ label: e("policySettings.paidOutOnTerminationLabel"),
178
+ description: e("policySettings.paidOutOnTerminationHint")
152
179
  }
153
180
  ),
154
- /* @__PURE__ */ i("div", { className: a.toggleCell, children: /* @__PURE__ */ i(
155
- r,
156
- {
157
- name: "waitingPeriodEnabled",
158
- label: e("policySettings.waitingPeriodLabel"),
159
- shouldVisuallyHideLabel: !0,
160
- "aria-controls": x
161
- }
162
- ) })
163
- ] }),
164
- /* @__PURE__ */ i("hr", { className: a.divider })
165
- ] }),
166
- /* @__PURE__ */ i(
167
- r,
168
- {
169
- name: "paidOutOnTermination",
170
- label: e("policySettings.paidOutOnTerminationLabel"),
171
- description: e("policySettings.paidOutOnTerminationHint")
172
- }
173
- ),
174
- /* @__PURE__ */ i("hr", { className: a.divider }),
175
- /* @__PURE__ */ l(j, { children: [
176
- /* @__PURE__ */ i(p, { variant: "secondary", onClick: E, isDisabled: b, children: e("backCta") }),
177
- /* @__PURE__ */ i(p, { variant: "primary", type: "submit", isLoading: b, children: e("policySettings.continueCta") })
178
- ] })
179
- ] })
180
- ] }) }) }) });
181
+ /* @__PURE__ */ i("hr", { className: a.divider }),
182
+ /* @__PURE__ */ l(z, { children: [
183
+ /* @__PURE__ */ i(p, { variant: "secondary", onClick: E, isDisabled: b, children: e("backCta") }),
184
+ /* @__PURE__ */ i(p, { variant: "primary", type: "submit", isLoading: b, children: e("policySettings.continueCta") })
185
+ ] })
186
+ ] })
187
+ ] }) })
188
+ }
189
+ ) });
181
190
  }
182
191
  export {
183
- re as PolicySettingsPresentation
192
+ oe as PolicySettingsPresentation
184
193
  };
185
194
  //# sourceMappingURL=PolicySettingsPresentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolicySettingsPresentation.js","sources":["../../../../src/components/TimeOff/PolicySettings/PolicySettingsPresentation.tsx"],"sourcesContent":["import { useId } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { PolicySettingsFormData, PolicySettingsPresentationProps } from './PolicySettingsTypes'\nimport styles from './PolicySettings.module.scss'\nimport { Flex, ActionsLayout, NumberInputField, SwitchField } from '@/components/Common'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\nconst PolicySettingsSchema = z.object({\n accrualMaximumEnabled: z.boolean(),\n accrualMaximum: z.number().optional(),\n balanceMaximumEnabled: z.boolean(),\n balanceMaximum: z.number().optional(),\n carryOverLimitEnabled: z.boolean(),\n carryOverLimit: z.number().optional(),\n waitingPeriodEnabled: z.boolean(),\n waitingPeriod: z.number().int().optional(),\n paidOutOnTermination: z.boolean(),\n})\n\n/**\n * Presentation-only form for configuring time off policy limits and rules.\n *\n * @remarks\n * Use this component when you need to render the policy settings form without the data-fetching container — provide the `accrualMethod` and handle submission yourself. For the data-connected version, use {@link PolicySettings}.\n *\n * The fields shown depend on `accrualMethod`:\n * - Accrual maximum and waiting period are shown for `'hours_worked'` and `'fixed_per_pay_period'`\n * - Balance maximum, carry-over limit, and paid-out-on-termination are always shown\n *\n * @param props - {@link PolicySettingsPresentationProps}\n * @returns The rendered policy settings form.\n * @public\n */\nexport function PolicySettingsPresentation({\n accrualMethod,\n onContinue,\n onBack,\n defaultValues,\n mode,\n editingPolicyName,\n isPending = false,\n}: PolicySettingsPresentationProps) {\n useI18n('Company.TimeOff.CreateTimeOffPolicy')\n const { t } = useTranslation('Company.TimeOff.CreateTimeOffPolicy')\n const { Heading, Button } = useComponentContext()\n const headingId = useId()\n\n const accrualMaxInputId = useId()\n const balanceMaxInputId = useId()\n const carryOverInputId = useId()\n const waitingPeriodInputId = useId()\n\n const formMethods = useForm<PolicySettingsFormData>({\n resolver: zodResolver(PolicySettingsSchema),\n defaultValues: {\n accrualMaximumEnabled: false,\n balanceMaximumEnabled: false,\n carryOverLimitEnabled: false,\n waitingPeriodEnabled: false,\n paidOutOnTermination: false,\n ...defaultValues,\n },\n })\n\n const { control } = formMethods\n const accrualMaximumEnabled = useWatch({ control, name: 'accrualMaximumEnabled' })\n const balanceMaximumEnabled = useWatch({ control, name: 'balanceMaximumEnabled' })\n const carryOverLimitEnabled = useWatch({ control, name: 'carryOverLimitEnabled' })\n const waitingPeriodEnabled = useWatch({ control, name: 'waitingPeriodEnabled' })\n\n const isHoursWorked = accrualMethod === 'hours_worked'\n const isFixedPerPayPeriod = accrualMethod === 'fixed_per_pay_period'\n const showAccrualMaximum = isHoursWorked || isFixedPerPayPeriod\n const showWaitingPeriod = isHoursWorked || isFixedPerPayPeriod\n\n const handleSubmit = (data: PolicySettingsFormData) => {\n onContinue(data)\n }\n\n return (\n <FormProvider {...formMethods}>\n <HtmlForm aria-labelledby={headingId} onSubmit={formMethods.handleSubmit(handleSubmit)}>\n <div className={styles.policySettings}>\n <Flex flexDirection=\"column\" gap={32}>\n <Heading as=\"h2\" id={headingId}>\n {mode === 'edit' && editingPolicyName\n ? t('policySettings.editTitle', { name: editingPolicyName })\n : t('policySettings.createTitle')}\n </Heading>\n\n <Flex flexDirection=\"column\" gap={20}>\n {showAccrualMaximum && (\n <>\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={accrualMaxInputId}\n name=\"accrualMaximum\"\n label={t('policySettings.accrualMaximumLabel')}\n description={t('policySettings.accrualMaximumHint')}\n adornmentEnd={t('policySettings.hoursUnit')}\n placeholder={t('policySettings.numberOfHoursPlaceholder')}\n isDisabled={!accrualMaximumEnabled}\n min={0}\n max={20000}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"accrualMaximumEnabled\"\n label={t('policySettings.accrualMaximumLabel')}\n shouldVisuallyHideLabel\n aria-controls={accrualMaxInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n </>\n )}\n\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={balanceMaxInputId}\n name=\"balanceMaximum\"\n label={t('policySettings.balanceMaximumLabel')}\n description={t('policySettings.balanceMaximumHint')}\n adornmentEnd={t('policySettings.hoursUnit')}\n placeholder={t('policySettings.numberOfHoursPlaceholder')}\n isDisabled={!balanceMaximumEnabled}\n min={0}\n max={20000}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"balanceMaximumEnabled\"\n label={t('policySettings.balanceMaximumLabel')}\n shouldVisuallyHideLabel\n aria-controls={balanceMaxInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={carryOverInputId}\n name=\"carryOverLimit\"\n label={t('policySettings.carryOverLimitLabel')}\n description={t('policySettings.carryOverLimitHint')}\n adornmentEnd={t('policySettings.hoursUnit')}\n placeholder={t('policySettings.numberOfHoursPlaceholder')}\n isDisabled={!carryOverLimitEnabled}\n min={0}\n max={20000}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"carryOverLimitEnabled\"\n label={t('policySettings.carryOverLimitLabel')}\n shouldVisuallyHideLabel\n aria-controls={carryOverInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n\n {showWaitingPeriod && (\n <>\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={waitingPeriodInputId}\n name=\"waitingPeriod\"\n label={t('policySettings.waitingPeriodLabel')}\n description={t('policySettings.waitingPeriodHint')}\n adornmentEnd={t('policySettings.daysUnit')}\n placeholder={t('policySettings.numberOfDaysPlaceholder')}\n isDisabled={!waitingPeriodEnabled}\n min={0}\n max={20000}\n maximumFractionDigits={0}\n errorMessage={t('policySettings.errors.waitingPeriodMustBeWholeNumber')}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"waitingPeriodEnabled\"\n label={t('policySettings.waitingPeriodLabel')}\n shouldVisuallyHideLabel\n aria-controls={waitingPeriodInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n </>\n )}\n\n <SwitchField\n name=\"paidOutOnTermination\"\n label={t('policySettings.paidOutOnTerminationLabel')}\n description={t('policySettings.paidOutOnTerminationHint')}\n />\n\n <hr className={styles.divider} />\n\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={onBack} isDisabled={isPending}>\n {t('backCta')}\n </Button>\n <Button variant=\"primary\" type=\"submit\" isLoading={isPending}>\n {t('policySettings.continueCta')}\n </Button>\n </ActionsLayout>\n </Flex>\n </Flex>\n </div>\n </HtmlForm>\n </FormProvider>\n )\n}\n"],"names":["PolicySettingsSchema","z","PolicySettingsPresentation","accrualMethod","onContinue","onBack","defaultValues","mode","editingPolicyName","isPending","useI18n","t","useTranslation","Heading","Button","useComponentContext","headingId","useId","accrualMaxInputId","balanceMaxInputId","carryOverInputId","waitingPeriodInputId","formMethods","useForm","zodResolver","control","accrualMaximumEnabled","useWatch","balanceMaximumEnabled","carryOverLimitEnabled","waitingPeriodEnabled","isHoursWorked","isFixedPerPayPeriod","showAccrualMaximum","showWaitingPeriod","handleSubmit","data","jsx","FormProvider","HtmlForm","styles","Flex","jsxs","Fragment","NumberInputField","SwitchField","ActionsLayout"],"mappings":"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"}
1
+ {"version":3,"file":"PolicySettingsPresentation.js","sources":["../../../../src/components/TimeOff/PolicySettings/PolicySettingsPresentation.tsx"],"sourcesContent":["import { useId } from 'react'\nimport { FormProvider, useForm, useWatch } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { PolicySettingsFormData, PolicySettingsPresentationProps } from './PolicySettingsTypes'\nimport styles from './PolicySettings.module.scss'\nimport { Flex, ActionsLayout, NumberInputField, SwitchField } from '@/components/Common'\nimport { Form as HtmlForm } from '@/components/Common/Form'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\n\nconst PolicySettingsSchema = z.object({\n accrualMaximumEnabled: z.boolean(),\n accrualMaximum: z.number().optional(),\n balanceMaximumEnabled: z.boolean(),\n balanceMaximum: z.number().optional(),\n carryOverLimitEnabled: z.boolean(),\n carryOverLimit: z.number().optional(),\n waitingPeriodEnabled: z.boolean(),\n waitingPeriod: z.number().int().optional(),\n paidOutOnTermination: z.boolean(),\n})\n\n/**\n * Presentation-only form for configuring time off policy limits and rules.\n *\n * @remarks\n * Use this component when you need to render the policy settings form without the data-fetching container — provide the `accrualMethod` and handle submission yourself. For the data-connected version, use {@link PolicySettings}.\n *\n * The fields shown depend on `accrualMethod`:\n * - Accrual maximum and waiting period are shown for `'hours_worked'` and `'fixed_per_pay_period'`\n * - Balance maximum, carry-over limit, and paid-out-on-termination are always shown\n *\n * @param props - {@link PolicySettingsPresentationProps}\n * @returns The rendered policy settings form.\n * @public\n */\nexport function PolicySettingsPresentation({\n accrualMethod,\n onContinue,\n onBack,\n defaultValues,\n mode,\n editingPolicyName,\n isPending = false,\n className,\n}: PolicySettingsPresentationProps) {\n useI18n('Company.TimeOff.CreateTimeOffPolicy')\n const { t } = useTranslation('Company.TimeOff.CreateTimeOffPolicy')\n const { Heading, Button } = useComponentContext()\n const headingId = useId()\n\n const accrualMaxInputId = useId()\n const balanceMaxInputId = useId()\n const carryOverInputId = useId()\n const waitingPeriodInputId = useId()\n\n const formMethods = useForm<PolicySettingsFormData>({\n resolver: zodResolver(PolicySettingsSchema),\n defaultValues: {\n accrualMaximumEnabled: false,\n balanceMaximumEnabled: false,\n carryOverLimitEnabled: false,\n waitingPeriodEnabled: false,\n paidOutOnTermination: false,\n ...defaultValues,\n },\n })\n\n const { control } = formMethods\n const accrualMaximumEnabled = useWatch({ control, name: 'accrualMaximumEnabled' })\n const balanceMaximumEnabled = useWatch({ control, name: 'balanceMaximumEnabled' })\n const carryOverLimitEnabled = useWatch({ control, name: 'carryOverLimitEnabled' })\n const waitingPeriodEnabled = useWatch({ control, name: 'waitingPeriodEnabled' })\n\n const isHoursWorked = accrualMethod === 'hours_worked'\n const isFixedPerPayPeriod = accrualMethod === 'fixed_per_pay_period'\n const showAccrualMaximum = isHoursWorked || isFixedPerPayPeriod\n const showWaitingPeriod = isHoursWorked || isFixedPerPayPeriod\n\n const handleSubmit = (data: PolicySettingsFormData) => {\n onContinue(data)\n }\n\n return (\n <FormProvider {...formMethods}>\n <HtmlForm\n aria-labelledby={headingId}\n onSubmit={formMethods.handleSubmit(handleSubmit)}\n className={className}\n >\n <div className={styles.policySettings}>\n <Flex flexDirection=\"column\" gap={32}>\n <Heading as=\"h2\" id={headingId}>\n {mode === 'edit' && editingPolicyName\n ? t('policySettings.editTitle', { name: editingPolicyName })\n : t('policySettings.createTitle')}\n </Heading>\n\n <Flex flexDirection=\"column\" gap={20}>\n {showAccrualMaximum && (\n <>\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={accrualMaxInputId}\n name=\"accrualMaximum\"\n label={t('policySettings.accrualMaximumLabel')}\n description={t('policySettings.accrualMaximumHint')}\n adornmentEnd={t('policySettings.hoursUnit')}\n placeholder={t('policySettings.numberOfHoursPlaceholder')}\n isDisabled={!accrualMaximumEnabled}\n min={0}\n max={20000}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"accrualMaximumEnabled\"\n label={t('policySettings.accrualMaximumLabel')}\n shouldVisuallyHideLabel\n aria-controls={accrualMaxInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n </>\n )}\n\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={balanceMaxInputId}\n name=\"balanceMaximum\"\n label={t('policySettings.balanceMaximumLabel')}\n description={t('policySettings.balanceMaximumHint')}\n adornmentEnd={t('policySettings.hoursUnit')}\n placeholder={t('policySettings.numberOfHoursPlaceholder')}\n isDisabled={!balanceMaximumEnabled}\n min={0}\n max={20000}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"balanceMaximumEnabled\"\n label={t('policySettings.balanceMaximumLabel')}\n shouldVisuallyHideLabel\n aria-controls={balanceMaxInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={carryOverInputId}\n name=\"carryOverLimit\"\n label={t('policySettings.carryOverLimitLabel')}\n description={t('policySettings.carryOverLimitHint')}\n adornmentEnd={t('policySettings.hoursUnit')}\n placeholder={t('policySettings.numberOfHoursPlaceholder')}\n isDisabled={!carryOverLimitEnabled}\n min={0}\n max={20000}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"carryOverLimitEnabled\"\n label={t('policySettings.carryOverLimitLabel')}\n shouldVisuallyHideLabel\n aria-controls={carryOverInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n\n {showWaitingPeriod && (\n <>\n <div className={styles.settingRow}>\n <NumberInputField\n className={styles.settingField}\n id={waitingPeriodInputId}\n name=\"waitingPeriod\"\n label={t('policySettings.waitingPeriodLabel')}\n description={t('policySettings.waitingPeriodHint')}\n adornmentEnd={t('policySettings.daysUnit')}\n placeholder={t('policySettings.numberOfDaysPlaceholder')}\n isDisabled={!waitingPeriodEnabled}\n min={0}\n max={20000}\n maximumFractionDigits={0}\n errorMessage={t('policySettings.errors.waitingPeriodMustBeWholeNumber')}\n />\n <div className={styles.toggleCell}>\n <SwitchField\n name=\"waitingPeriodEnabled\"\n label={t('policySettings.waitingPeriodLabel')}\n shouldVisuallyHideLabel\n aria-controls={waitingPeriodInputId}\n />\n </div>\n </div>\n\n <hr className={styles.divider} />\n </>\n )}\n\n <SwitchField\n name=\"paidOutOnTermination\"\n label={t('policySettings.paidOutOnTerminationLabel')}\n description={t('policySettings.paidOutOnTerminationHint')}\n />\n\n <hr className={styles.divider} />\n\n <ActionsLayout>\n <Button variant=\"secondary\" onClick={onBack} isDisabled={isPending}>\n {t('backCta')}\n </Button>\n <Button variant=\"primary\" type=\"submit\" isLoading={isPending}>\n {t('policySettings.continueCta')}\n </Button>\n </ActionsLayout>\n </Flex>\n </Flex>\n </div>\n </HtmlForm>\n </FormProvider>\n )\n}\n"],"names":["PolicySettingsSchema","z","PolicySettingsPresentation","accrualMethod","onContinue","onBack","defaultValues","mode","editingPolicyName","isPending","className","useI18n","t","useTranslation","Heading","Button","useComponentContext","headingId","useId","accrualMaxInputId","balanceMaxInputId","carryOverInputId","waitingPeriodInputId","formMethods","useForm","zodResolver","control","accrualMaximumEnabled","useWatch","balanceMaximumEnabled","carryOverLimitEnabled","waitingPeriodEnabled","isHoursWorked","isFixedPerPayPeriod","showAccrualMaximum","showWaitingPeriod","handleSubmit","data","jsx","FormProvider","HtmlForm","styles","Flex","jsxs","Fragment","NumberInputField","SwitchField","ActionsLayout"],"mappings":"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"}
@@ -1,31 +1,32 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import { useHolidayPayPoliciesGet as l } from "@gusto/embedded-api/react-query/holidayPayPoliciesGet";
3
- import { PolicyTypeSelectorPresentation as c } from "./PolicyTypeSelectorPresentation.js";
4
- import { BaseComponent as y } from "../../Base/Base.js";
5
- import { useBase as m } from "../../Base/useBase.js";
2
+ import { useHolidayPayPoliciesGet as c } from "@gusto/embedded-api/react-query/holidayPayPoliciesGet";
3
+ import { PolicyTypeSelectorPresentation as y } from "./PolicyTypeSelectorPresentation.js";
4
+ import { BaseComponent as m } from "../../Base/Base.js";
5
+ import { useBase as s } from "../../Base/useBase.js";
6
6
  import { componentEvents as t } from "../../../shared/constants.js";
7
- function _(o) {
8
- return /* @__PURE__ */ n(y, { ...o, children: /* @__PURE__ */ n(s, { ...o }) });
7
+ function x(o) {
8
+ return /* @__PURE__ */ n(m, { ...o, children: /* @__PURE__ */ n(d, { ...o }) });
9
9
  }
10
- function s({ companyId: o, defaultPolicyType: i }) {
11
- const { onEvent: e } = m(), r = !!l({ companyUuid: o }).data?.holidayPayPolicy;
10
+ function d({ companyId: o, defaultPolicyType: i, className: r }) {
11
+ const { onEvent: e } = s(), a = !!c({ companyUuid: o }).data?.holidayPayPolicy;
12
12
  return /* @__PURE__ */ n(
13
- c,
13
+ y,
14
14
  {
15
- onContinue: (a) => {
15
+ onContinue: (l) => {
16
16
  e(t.TIME_OFF_POLICY_TYPE_SELECTED, {
17
- policyType: a
17
+ policyType: l
18
18
  });
19
19
  },
20
20
  onCancel: () => {
21
21
  e(t.CANCEL);
22
22
  },
23
23
  defaultPolicyType: i,
24
- holidayPolicyExists: r
24
+ holidayPolicyExists: a,
25
+ className: r
25
26
  }
26
27
  );
27
28
  }
28
29
  export {
29
- _ as PolicyTypeSelector
30
+ x as PolicyTypeSelector
30
31
  };
31
32
  //# sourceMappingURL=PolicyTypeSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyTypeSelector.js","sources":["../../../../src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.tsx"],"sourcesContent":["import { useHolidayPayPoliciesGet } from '@gusto/embedded-api/react-query/holidayPayPoliciesGet'\nimport { PolicyTypeSelectorPresentation } from './PolicyTypeSelectorPresentation'\nimport type { PolicyType } from './PolicyTypeSelectorTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\n\n/**\n * Props for {@link PolicyTypeSelector}.\n *\n * @public\n */\nexport interface PolicyTypeSelectorProps extends BaseComponentInterface<'Company.TimeOff.SelectPolicyType'> {\n /** The associated company identifier. */\n companyId: string\n /** Pre-selected policy type rendered when the form mounts. */\n defaultPolicyType?: PolicyType\n}\n\n/**\n * Selection screen for choosing which kind of time-off policy to create — sick, vacation, or holiday.\n *\n * @remarks\n * The holiday option is omitted when the company already has a holiday pay policy, since a company\n * can only have one.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/policyTypeSelected` | The user confirms a selection | `{ policyType: {@link PolicyType} }` |\n * | `CANCEL` | The user cancels | — |\n *\n * @param props - See {@link PolicyTypeSelectorProps}.\n * @returns The rendered policy type selection screen.\n * @public\n */\nexport function PolicyTypeSelector(props: PolicyTypeSelectorProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, defaultPolicyType }: PolicyTypeSelectorProps) {\n const { onEvent } = useBase()\n\n const holidayQuery = useHolidayPayPoliciesGet({ companyUuid: companyId })\n const holidayPolicyExists = Boolean(holidayQuery.data?.holidayPayPolicy)\n\n const handleContinue = (policyType: PolicyType) => {\n onEvent(componentEvents.TIME_OFF_POLICY_TYPE_SELECTED, {\n policyType,\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n return (\n <PolicyTypeSelectorPresentation\n onContinue={handleContinue}\n onCancel={handleCancel}\n defaultPolicyType={defaultPolicyType}\n holidayPolicyExists={holidayPolicyExists}\n />\n )\n}\n"],"names":["PolicyTypeSelector","props","jsx","BaseComponent","Root","companyId","defaultPolicyType","onEvent","useBase","holidayPolicyExists","useHolidayPayPoliciesGet","PolicyTypeSelectorPresentation","policyType","componentEvents"],"mappings":";;;;;;AAoCO,SAASA,EAAmBC,GAAgC;AACjE,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,mBAAAC,KAA8C;AACvE,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA,GAGdC,IAAsB,EADPC,EAAyB,EAAE,aAAaL,GAAW,EACvB,MAAM;AAYvD,SACE,gBAAAH;AAAA,IAACS;AAAA,IAAA;AAAA,MACC,YAZmB,CAACC,MAA2B;AACjD,QAAAL,EAAQM,EAAgB,+BAA+B;AAAA,UACrD,YAAAD;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MASI,UAPiB,MAAM;AACzB,QAAAL,EAAQM,EAAgB,MAAM;AAAA,MAChC;AAAA,MAMI,mBAAAP;AAAA,MACA,qBAAAG;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"PolicyTypeSelector.js","sources":["../../../../src/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.tsx"],"sourcesContent":["import { useHolidayPayPoliciesGet } from '@gusto/embedded-api/react-query/holidayPayPoliciesGet'\nimport { PolicyTypeSelectorPresentation } from './PolicyTypeSelectorPresentation'\nimport type { PolicyType } from './PolicyTypeSelectorTypes'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { componentEvents } from '@/shared/constants'\n\n/**\n * Props for {@link PolicyTypeSelector}.\n *\n * @public\n */\nexport interface PolicyTypeSelectorProps extends BaseComponentInterface<'Company.TimeOff.SelectPolicyType'> {\n /** The associated company identifier. */\n companyId: string\n /** Pre-selected policy type rendered when the form mounts. */\n defaultPolicyType?: PolicyType\n}\n\n/**\n * Selection screen for choosing which kind of time-off policy to create — sick, vacation, or holiday.\n *\n * @remarks\n * The holiday option is omitted when the company already has a holiday pay policy, since a company\n * can only have one.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `timeOff/policyTypeSelected` | The user confirms a selection | `{ policyType: {@link PolicyType} }` |\n * | `CANCEL` | The user cancels | — |\n *\n * @param props - See {@link PolicyTypeSelectorProps}.\n * @returns The rendered policy type selection screen.\n * @public\n */\nexport function PolicyTypeSelector(props: PolicyTypeSelectorProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ companyId, defaultPolicyType, className }: PolicyTypeSelectorProps) {\n const { onEvent } = useBase()\n\n const holidayQuery = useHolidayPayPoliciesGet({ companyUuid: companyId })\n const holidayPolicyExists = Boolean(holidayQuery.data?.holidayPayPolicy)\n\n const handleContinue = (policyType: PolicyType) => {\n onEvent(componentEvents.TIME_OFF_POLICY_TYPE_SELECTED, {\n policyType,\n })\n }\n\n const handleCancel = () => {\n onEvent(componentEvents.CANCEL)\n }\n\n return (\n <PolicyTypeSelectorPresentation\n onContinue={handleContinue}\n onCancel={handleCancel}\n defaultPolicyType={defaultPolicyType}\n holidayPolicyExists={holidayPolicyExists}\n className={className}\n />\n )\n}\n"],"names":["PolicyTypeSelector","props","jsx","BaseComponent","Root","companyId","defaultPolicyType","className","onEvent","useBase","holidayPolicyExists","useHolidayPayPoliciesGet","PolicyTypeSelectorPresentation","policyType","componentEvents"],"mappings":";;;;;;AAoCO,SAASA,EAAmBC,GAAgC;AACjE,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,WAAAC,GAAW,mBAAAC,GAAmB,WAAAC,KAAsC;AAClF,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA,GAGdC,IAAsB,EADPC,EAAyB,EAAE,aAAaN,GAAW,EACvB,MAAM;AAYvD,SACE,gBAAAH;AAAA,IAACU;AAAA,IAAA;AAAA,MACC,YAZmB,CAACC,MAA2B;AACjD,QAAAL,EAAQM,EAAgB,+BAA+B;AAAA,UACrD,YAAAD;AAAA,QAAA,CACD;AAAA,MACH;AAAA,MASI,UAPiB,MAAM;AACzB,QAAAL,EAAQM,EAAgB,MAAM;AAAA,MAChC;AAAA,MAMI,mBAAAR;AAAA,MACA,qBAAAI;AAAA,MACA,WAAAH;AAAA,IAAA;AAAA,EAAA;AAGN;"}