@gusto/embedded-react-sdk 0.48.0 → 0.48.2

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 (451) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/components/Common/DocumentList/DocumentList.js +12 -12
  3. package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
  4. package/dist/components/Common/DocumentList/DocumentList.module.scss.js +3 -5
  5. package/dist/components/Common/DocumentList/DocumentList.module.scss.js.map +1 -1
  6. package/dist/components/Common/EmptyData/EmptyData.d.ts +1 -1
  7. package/dist/components/Common/EmptyData/EmptyData.js +10 -12
  8. package/dist/components/Common/EmptyData/EmptyData.js.map +1 -1
  9. package/dist/components/Common/EmptyData/EmptyData.module.scss.js +6 -10
  10. package/dist/components/Common/EmptyData/EmptyData.module.scss.js.map +1 -1
  11. package/dist/components/Common/Form/Form.d.ts +1 -1
  12. package/dist/components/Common/Form/Form.js +8 -7
  13. package/dist/components/Common/Form/Form.js.map +1 -1
  14. package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayoutTypes.d.ts +1 -0
  15. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +7 -3
  16. package/dist/components/Common/PayrollLoading/PayrollLoadingTypes.d.ts +1 -0
  17. package/dist/components/Common/UI/Alert/AlertTypes.d.ts +1 -0
  18. package/dist/components/Common/UI/Alert/AlertTypes.js.map +1 -1
  19. package/dist/components/Common/UI/Badge/BadgeTypes.d.ts +1 -0
  20. package/dist/components/Common/UI/Badge/BadgeTypes.js.map +1 -1
  21. package/dist/components/Common/UI/Banner/BannerTypes.d.ts +1 -0
  22. package/dist/components/Common/UI/Banner/BannerTypes.js.map +1 -1
  23. package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -0
  24. package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.d.ts +1 -0
  25. package/dist/components/Common/UI/BoxHeader/BoxHeaderTypes.js.map +1 -1
  26. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +2 -0
  27. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.js.map +1 -1
  28. package/dist/components/Common/UI/Button/ButtonTypes.d.ts +4 -2
  29. package/dist/components/Common/UI/Button/ButtonTypes.js.map +1 -1
  30. package/dist/components/Common/UI/CalendarPreview/CalendarPreviewTypes.d.ts +3 -2
  31. package/dist/components/Common/UI/Card/Card.js +8 -8
  32. package/dist/components/Common/UI/Card/Card.js.map +1 -1
  33. package/dist/components/Common/UI/Card/Card.module.scss.js +5 -3
  34. package/dist/components/Common/UI/Card/Card.module.scss.js.map +1 -1
  35. package/dist/components/Common/UI/Card/CardTypes.d.ts +1 -0
  36. package/dist/components/Common/UI/Checkbox/CheckboxTypes.d.ts +1 -0
  37. package/dist/components/Common/UI/Checkbox/CheckboxTypes.js.map +1 -1
  38. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +2 -0
  39. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
  40. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +2 -0
  41. package/dist/components/Common/UI/DatePicker/DatePickerTypes.d.ts +1 -0
  42. package/dist/components/Common/UI/DateRangePicker/DateRangePickerTypes.d.ts +2 -0
  43. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.d.ts +2 -0
  44. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.js.map +1 -1
  45. package/dist/components/Common/UI/Dialog/DialogTypes.d.ts +1 -0
  46. package/dist/components/Common/UI/Dialog/DialogTypes.js.map +1 -1
  47. package/dist/components/Common/UI/FileInput/FileInputTypes.d.ts +1 -0
  48. package/dist/components/Common/UI/FileInput/FileInputTypes.js.map +1 -1
  49. package/dist/components/Common/UI/Heading/HeadingTypes.d.ts +1 -0
  50. package/dist/components/Common/UI/Link/LinkTypes.d.ts +4 -3
  51. package/dist/components/Common/UI/List/ListTypes.d.ts +13 -4
  52. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.d.ts +1 -0
  53. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js.map +1 -1
  54. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +2 -0
  55. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  56. package/dist/components/Common/UI/Modal/ModalTypes.d.ts +1 -0
  57. package/dist/components/Common/UI/Modal/ModalTypes.js.map +1 -1
  58. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +2 -0
  59. package/dist/components/Common/UI/NumberInput/NumberInputTypes.d.ts +1 -0
  60. package/dist/components/Common/UI/ProgressBar/ProgressBarTypes.d.ts +1 -0
  61. package/dist/components/Common/UI/Radio/RadioTypes.d.ts +1 -0
  62. package/dist/components/Common/UI/Radio/RadioTypes.js.map +1 -1
  63. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +2 -0
  64. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
  65. package/dist/components/Common/UI/Select/SelectTypes.d.ts +2 -0
  66. package/dist/components/Common/UI/Switch/SwitchTypes.d.ts +1 -0
  67. package/dist/components/Common/UI/Switch/SwitchTypes.js.map +1 -1
  68. package/dist/components/Common/UI/Table/TableTypes.d.ts +3 -0
  69. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  70. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +2 -0
  71. package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -0
  72. package/dist/components/Common/UI/Text/TextTypes.js.map +1 -1
  73. package/dist/components/Common/UI/TextArea/TextAreaTypes.d.ts +1 -0
  74. package/dist/components/Common/UI/TextArea/TextAreaTypes.js.map +1 -1
  75. package/dist/components/Common/UI/TextInput/TextInputTypes.d.ts +1 -0
  76. package/dist/components/Common/UI/TextInput/TextInputTypes.js.map +1 -1
  77. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -4
  78. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  79. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -4
  80. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  81. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -6
  82. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  83. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -4
  84. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  85. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  86. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  87. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  88. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -9
  89. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  90. package/dist/components/Company/Industry/Context.js +8 -7
  91. package/dist/components/Company/Industry/Context.js.map +1 -1
  92. package/dist/components/Company/Industry/IndustrySelect.js +6 -8
  93. package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
  94. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -4
  95. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  96. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -4
  97. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  98. package/dist/components/Company/OnboardingOverview/context.js +5 -4
  99. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  100. package/dist/components/Company/PaySchedule/PayScheduleForm.js +3 -1
  101. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  102. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  103. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -4
  104. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  105. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -4
  106. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  107. package/dist/components/Contractor/Address/useAddress.js +7 -6
  108. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  109. package/dist/components/Contractor/Profile/useContractorProfile.js +26 -27
  110. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  111. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +6 -6
  112. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +10 -10
  113. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +1 -1
  114. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +2 -2
  115. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.d.ts +25 -5
  116. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  117. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/index.d.ts +3 -0
  118. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  119. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  120. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.d.ts +28 -5
  121. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -1
  122. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  123. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/index.d.ts +3 -0
  124. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.d.ts +26 -5
  125. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +3 -1
  126. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
  127. package/dist/components/Employee/Documents/shared/SignatureForm/index.d.ts +3 -0
  128. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +2 -2
  129. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +1 -1
  130. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  131. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  132. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +6 -6
  133. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  134. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  135. package/dist/components/Employee/exports/employeeOnboarding.d.ts +3 -0
  136. package/dist/components/Employee/exports/employeeOnboarding.js +28 -22
  137. package/dist/components/Employee/exports/employeeOnboarding.js.map +1 -1
  138. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.d.ts +36 -2
  139. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  140. package/dist/components/InformationRequests/InformationRequestForm/index.d.ts +1 -1
  141. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.d.ts +22 -2
  142. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  143. package/dist/components/InformationRequests/InformationRequestList/index.d.ts +1 -1
  144. package/dist/components/InformationRequests/InformationRequests.d.ts +29 -2
  145. package/dist/components/InformationRequests/InformationRequests.js.map +1 -1
  146. package/dist/components/InformationRequests/InformationRequestsComponents.d.ts +2 -0
  147. package/dist/components/InformationRequests/InformationRequestsComponents.js.map +1 -1
  148. package/dist/components/InformationRequests/index.d.ts +3 -3
  149. package/dist/components/InformationRequests/informationRequestsStateMachine.d.ts +2 -0
  150. package/dist/components/InformationRequests/informationRequestsStateMachine.js.map +1 -1
  151. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.d.ts +36 -3
  152. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js +6 -2
  153. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetails.js.map +1 -1
  154. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.d.ts +1 -0
  155. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsBanner/ConfirmWireDetailsBanner.js.map +1 -1
  156. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.d.ts +14 -0
  157. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsComponents.js.map +1 -1
  158. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.d.ts +1 -8
  159. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +1 -2
  160. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  161. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.d.ts +1 -1
  162. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js +0 -1
  163. package/dist/components/Payroll/ConfirmWireDetails/WireInstructions/WireInstructions.js.map +1 -1
  164. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.d.ts +11 -0
  165. package/dist/components/Payroll/ConfirmWireDetails/confirmWireDetailsStateMachine.js.map +1 -1
  166. package/dist/components/Payroll/ConfirmWireDetails/index.d.ts +1 -2
  167. package/dist/components/Payroll/ConfirmWireDetails/types.d.ts +23 -0
  168. package/dist/components/Payroll/Dismissal/DismissalFlow.d.ts +18 -0
  169. package/dist/components/Payroll/Dismissal/DismissalFlow.js.map +1 -1
  170. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.d.ts +15 -0
  171. package/dist/components/Payroll/Dismissal/DismissalFlowComponents.js.map +1 -1
  172. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.d.ts +24 -0
  173. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
  174. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.d.ts +7 -0
  175. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  176. package/dist/components/Payroll/Dismissal/dismissalStateMachine.d.ts +2 -0
  177. package/dist/components/Payroll/Dismissal/dismissalStateMachine.js.map +1 -1
  178. package/dist/components/Payroll/Dismissal/index.d.ts +1 -1
  179. package/dist/components/Payroll/GrossUpModal/GrossUpModal.d.ts +1 -0
  180. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
  181. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  182. package/dist/components/Payroll/GrossUpModal/GrossUpModalTypes.d.ts +5 -0
  183. package/dist/components/Payroll/GrossUpModal/index.d.ts +0 -1
  184. package/dist/components/Payroll/OffCycle/OffCycleFlow.d.ts +31 -0
  185. package/dist/components/Payroll/OffCycle/OffCycleFlow.js.map +1 -1
  186. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.d.ts +20 -0
  187. package/dist/components/Payroll/OffCycle/OffCycleFlowComponents.js.map +1 -1
  188. package/dist/components/Payroll/OffCycle/offCycleStateMachine.d.ts +2 -0
  189. package/dist/components/Payroll/OffCycle/offCycleStateMachine.js.map +1 -1
  190. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.d.ts +20 -0
  191. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  192. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.d.ts +1 -0
  193. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.js.map +1 -1
  194. package/dist/components/Payroll/OffCycleCreation/OffCycleCreationTypes.d.ts +24 -0
  195. package/dist/components/Payroll/OffCycleCreation/index.d.ts +1 -1
  196. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.d.ts +16 -0
  197. package/dist/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.js.map +1 -1
  198. package/dist/components/Payroll/OffCycleDeductionsSetting/types.d.ts +13 -0
  199. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.d.ts +1 -0
  200. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  201. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.d.ts +18 -1
  202. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.js.map +1 -1
  203. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.d.ts +1 -1
  204. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js +0 -1
  205. package/dist/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.js.map +1 -1
  206. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.d.ts +15 -0
  207. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.js.map +1 -1
  208. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.d.ts +1 -0
  209. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  210. package/dist/components/Payroll/OffCycleReasonSelection/types.d.ts +43 -0
  211. package/dist/components/Payroll/OffCycleReasonSelection/types.js.map +1 -1
  212. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.d.ts +1 -0
  213. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  214. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModalTypes.d.ts +5 -1
  215. package/dist/components/Payroll/OffCycleTaxWithholdingModal/index.d.ts +0 -1
  216. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.d.ts +1 -0
  217. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTable.js.map +1 -1
  218. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.d.ts +14 -0
  219. package/dist/components/Payroll/OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes.js.map +1 -1
  220. package/dist/components/Payroll/OffCycleTaxWithholdingTable/index.d.ts +0 -2
  221. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.d.ts +3 -0
  222. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  223. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.d.ts +19 -5
  224. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerList.js.map +1 -1
  225. package/dist/components/Payroll/PayrollBlocker/index.d.ts +0 -1
  226. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.d.ts +17 -11
  227. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +0 -2
  228. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -1
  229. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.d.ts +31 -3
  230. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +1 -2
  231. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  232. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -0
  233. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  234. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.d.ts +2 -0
  235. package/dist/components/Payroll/PayrollConfiguration/grossUpHelpers.js.map +1 -1
  236. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +2 -0
  237. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  238. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.d.ts +42 -3
  239. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +1 -2
  240. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  241. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +3 -1
  242. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +0 -1
  243. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  244. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.d.ts +8 -6
  245. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +0 -1
  246. package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
  247. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +65 -0
  248. package/dist/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
  249. package/dist/components/Payroll/PayrollExecutionFlow/index.d.ts +0 -1
  250. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +2 -0
  251. package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
  252. package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.d.ts +1 -0
  253. package/dist/components/Payroll/PayrollFlow/OffCycleFlowContextual.js.map +1 -1
  254. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.d.ts +1 -0
  255. package/dist/components/Payroll/PayrollFlow/PayrollExecutionFlowContextual.js.map +1 -1
  256. package/dist/components/Payroll/PayrollFlow/PayrollFlow.d.ts +38 -0
  257. package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
  258. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +27 -0
  259. package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
  260. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +1 -0
  261. package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +1 -1
  262. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +2 -0
  263. package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
  264. package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +25 -1
  265. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +1 -2
  266. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  267. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -0
  268. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  269. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +33 -4
  270. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +1 -2
  271. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  272. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +19 -0
  273. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -1
  274. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.d.ts +2 -0
  275. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -1
  276. package/dist/components/Payroll/PayrollList/PayrollList.d.ts +32 -13
  277. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  278. package/dist/components/Payroll/PayrollList/PayrollListPresentation.d.ts +1 -0
  279. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +65 -68
  280. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  281. package/dist/components/Payroll/PayrollList/types.d.ts +1 -0
  282. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +39 -3
  283. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +1 -2
  284. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  285. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -0
  286. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  287. package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.d.ts +1 -0
  288. package/dist/components/Payroll/PayrollOverview/PayrollOverviewTypes.js.map +1 -1
  289. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.d.ts +1 -0
  290. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  291. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.d.ts +1 -0
  292. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/GenericBlocker.js.map +1 -1
  293. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +26 -3
  294. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +2 -7
  295. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  296. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +1 -0
  297. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  298. package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.d.ts +1 -0
  299. package/dist/components/Payroll/PayrollStatusBadges/PayrollStatusBadges.js.map +1 -1
  300. package/dist/components/Payroll/PayrollStatusBadges/index.d.ts +0 -2
  301. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.d.ts +26 -0
  302. package/dist/components/Payroll/PayrollStatusBadges/payrollStatusConfig.js.map +1 -1
  303. package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.d.ts +2 -0
  304. package/dist/components/Payroll/PayrollStatusBadges/usePayrollStatusBadges.js.map +1 -1
  305. package/dist/components/Payroll/RecoveryCases/RecoveryCases.d.ts +21 -1
  306. package/dist/components/Payroll/RecoveryCases/RecoveryCases.js.map +1 -1
  307. package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.d.ts +5 -0
  308. package/dist/components/Payroll/RecoveryCases/RecoveryCasesComponents.js.map +1 -1
  309. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.d.ts +1 -0
  310. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  311. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.d.ts +1 -0
  312. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  313. package/dist/components/Payroll/RecoveryCases/index.d.ts +0 -1
  314. package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.d.ts +5 -0
  315. package/dist/components/Payroll/RecoveryCases/recoveryCasesStateMachine.js.map +1 -1
  316. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.d.ts +5 -0
  317. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  318. package/dist/components/Payroll/Transition/TransitionFlow.d.ts +21 -0
  319. package/dist/components/Payroll/Transition/TransitionFlow.js.map +1 -1
  320. package/dist/components/Payroll/Transition/TransitionFlowComponents.d.ts +23 -0
  321. package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +1 -1
  322. package/dist/components/Payroll/Transition/transitionStateMachine.d.ts +2 -0
  323. package/dist/components/Payroll/Transition/transitionStateMachine.js.map +1 -1
  324. package/dist/components/Payroll/TransitionCreation/TransitionCreation.d.ts +20 -0
  325. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  326. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +7 -0
  327. package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +1 -1
  328. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +27 -0
  329. package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +1 -1
  330. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.d.ts +1 -0
  331. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
  332. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +5 -0
  333. package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
  334. package/dist/components/Payroll/helpers.d.ts +157 -26
  335. package/dist/components/Payroll/helpers.js +0 -1
  336. package/dist/components/Payroll/helpers.js.map +1 -1
  337. package/dist/components/Payroll/index.d.ts +11 -2
  338. package/dist/components/Payroll/payrollTypes.d.ts +24 -0
  339. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  340. package/dist/components/Payroll/usePreparedPayrollData.d.ts +12 -0
  341. package/dist/components/Payroll/usePreparedPayrollData.js +4 -3
  342. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  343. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.d.ts +7 -0
  344. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  345. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.d.ts +19 -0
  346. package/dist/components/TimeOff/AddEmployeesHoliday/AddEmployeesHoliday.js.map +1 -1
  347. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.d.ts +44 -0
  348. package/dist/components/TimeOff/AddEmployeesToPolicy/AddEmployeesToPolicy.js.map +1 -1
  349. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.d.ts +4 -0
  350. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetail.js.map +1 -1
  351. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.d.ts +1 -0
  352. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  353. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailTypes.d.ts +28 -2
  354. package/dist/components/TimeOff/HolidayPolicyDetail/index.d.ts +0 -2
  355. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.d.ts +26 -0
  356. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionForm.js.map +1 -1
  357. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.d.ts +1 -0
  358. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormPresentation.js.map +1 -1
  359. package/dist/components/TimeOff/HolidaySelectionForm/HolidaySelectionFormTypes.d.ts +10 -0
  360. package/dist/components/TimeOff/PolicyList/PolicyList.d.ts +25 -0
  361. package/dist/components/TimeOff/PolicyList/PolicyList.js.map +1 -1
  362. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.d.ts +1 -0
  363. package/dist/components/TimeOff/PolicyList/PolicyListPresentation.js.map +1 -1
  364. package/dist/components/TimeOff/PolicyList/PolicyListTypes.d.ts +17 -0
  365. package/dist/components/TimeOff/PolicySettings/PolicySettings.d.ts +22 -0
  366. package/dist/components/TimeOff/PolicySettings/PolicySettings.js.map +1 -1
  367. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.d.ts +14 -0
  368. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js.map +1 -1
  369. package/dist/components/TimeOff/PolicySettings/PolicySettingsTypes.d.ts +31 -0
  370. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.d.ts +23 -0
  371. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelector.js.map +1 -1
  372. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.d.ts +1 -0
  373. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js.map +1 -1
  374. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorTypes.d.ts +10 -0
  375. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.d.ts +42 -0
  376. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlow.js.map +1 -1
  377. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.d.ts +26 -0
  378. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  379. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.d.ts +15 -2
  380. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js +1 -6
  381. package/dist/components/TimeOff/TimeOffFlow/timeOffPolicyTypes.js.map +1 -1
  382. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.d.ts +1 -0
  383. package/dist/components/TimeOff/TimeOffFlow/timeOffStateMachine.js.map +1 -1
  384. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.d.ts +29 -0
  385. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationForm.js.map +1 -1
  386. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.d.ts +1 -0
  387. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js.map +1 -1
  388. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormTypes.d.ts +59 -1
  389. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/index.d.ts +0 -3
  390. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.d.ts +1 -0
  391. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
  392. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -0
  393. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +43 -42
  394. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
  395. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +2 -0
  396. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.d.ts +1 -0
  397. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
  398. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.d.ts +3 -0
  399. package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
  400. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.d.ts +9 -0
  401. package/dist/components/TimeOff/TimeOffPolicyDetail/EditEmployeeBalanceModal.js.map +1 -1
  402. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.d.ts +25 -0
  403. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetail.js.map +1 -1
  404. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.d.ts +14 -0
  405. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
  406. package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailTypes.d.ts +97 -6
  407. package/dist/components/TimeOff/TimeOffPolicyDetail/index.d.ts +1 -5
  408. package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.d.ts +23 -0
  409. package/dist/components/TimeOff/ViewHolidayEmployees/ViewHolidayEmployees.js.map +1 -1
  410. package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.d.ts +22 -0
  411. package/dist/components/TimeOff/ViewHolidayPolicyDetails/ViewHolidayPolicyDetails.js.map +1 -1
  412. package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.d.ts +22 -0
  413. package/dist/components/TimeOff/ViewHolidaySchedule/ViewHolidaySchedule.js.map +1 -1
  414. package/dist/components/TimeOff/index.d.ts +8 -2
  415. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.d.ts +1 -0
  416. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +48 -49
  417. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  418. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTableTypes.d.ts +66 -0
  419. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.d.ts +1 -0
  420. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  421. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayoutTypes.d.ts +28 -0
  422. package/dist/components/TimeOff/shared/PolicyDetailLayout/index.d.ts +0 -1
  423. package/dist/components/TimeOff/shared/holidayHelpers.d.ts +5 -0
  424. package/dist/components/TimeOff/shared/holidayHelpers.js.map +1 -1
  425. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +4 -4
  426. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +39 -39
  427. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  428. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +42 -42
  429. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  430. package/dist/i18n/en/common.json.d.ts +0 -1
  431. package/dist/i18n/en/common.json.js +2 -2
  432. package/dist/index.d.ts +1 -1
  433. package/dist/index.js +206 -205
  434. package/dist/node_modules/react-dnd/dist/core/DndProvider.js +1 -1
  435. package/dist/node_modules/react-dnd/dist/core/DndProvider.js.map +1 -1
  436. package/dist/partner-hook-utils/composeErrorHandler.js +3 -1
  437. package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
  438. package/dist/shared/constants.d.ts +12 -1
  439. package/dist/shared/constants.js.map +1 -1
  440. package/dist/style.css +1 -1
  441. package/dist/types/i18next.d.ts +0 -1
  442. package/docs/reference/endpoint-inventory.json +55 -0
  443. package/package.json +24 -11
  444. package/dist/assets/icons/feature-icon-check.svg.js +0 -10
  445. package/dist/assets/icons/feature-icon-check.svg.js.map +0 -1
  446. package/dist/assets/icons/magnifyingGlass.png.js +0 -5
  447. package/dist/assets/icons/magnifyingGlass.png.js.map +0 -1
  448. package/dist/components/Payroll/PayrollEditEmployee/index.d.ts +0 -4
  449. package/dist/components/Payroll/PayrollFlow/index.d.ts +0 -3
  450. package/dist/components/TimeOff/TimeOffFlow/index.d.ts +0 -3
  451. package/dist/components/TimeOff/shared/EmployeeTable/index.d.ts +0 -4
@@ -2,17 +2,37 @@ import { OffCycleReason } from '../OffCycleReasonSelection';
2
2
  import { FlowContextInterface } from '../../Flow/useFlow';
3
3
  import { OnEventType } from '../../Base/useBase';
4
4
  import { EventType } from '../../../shared/constants';
5
+ /**
6
+ * Flow context shared across the off-cycle payroll flow steps.
7
+ *
8
+ * @public
9
+ */
5
10
  export interface OffCycleFlowContextInterface extends FlowContextInterface {
11
+ /** The associated company identifier. */
6
12
  companyId: string;
13
+ /** Identifier of the off-cycle payroll created during the flow; set once creation completes. */
7
14
  payrollUuid?: string;
15
+ /** Pre-selected off-cycle reason (bonus or correction). */
8
16
  payrollType?: OffCycleReason;
17
+ /** Whether to show reimbursement fields throughout the execution steps. Defaults to true. */
9
18
  withReimbursements?: boolean;
10
19
  }
20
+ /**
21
+ * Props for {@link OffCycleFlow}.
22
+ *
23
+ * @public
24
+ */
11
25
  export interface OffCycleFlowProps {
26
+ /** The associated company identifier. */
12
27
  companyId: string;
28
+ /** Optional pre-selected off-cycle reason. When provided, the creation form starts with this reason selected. */
13
29
  payrollType?: OffCycleReason;
30
+ /** Callback invoked when the flow emits an event. See the events table on {@link OffCycleFlow}. */
14
31
  onEvent: OnEventType<EventType, unknown>;
32
+ /** Optional flag to show/hide reimbursement fields throughout the flow. Defaults to true. */
15
33
  withReimbursements?: boolean;
16
34
  }
35
+ /** @internal */
17
36
  export declare function OffCycleCreationContextual(): import("react").JSX.Element;
37
+ /** @internal */
18
38
  export declare function OffCycleExecutionContextual(): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleFlowComponents.js","sources":["../../../../src/components/Payroll/OffCycle/OffCycleFlowComponents.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsGet'\nimport { OffCycleCreation } from '../OffCycleCreation'\nimport {\n PayrollExecutionFlow,\n type PayrollExecutionFlowProps,\n} from '../PayrollExecutionFlow/PayrollExecutionFlow'\nimport type { OffCycleReason } from '../OffCycleReasonSelection'\nimport { isDismissalPayroll } from '../helpers'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType } from '@/shared/constants'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { BaseComponent } from '@/components/Base/Base'\n\nexport interface OffCycleFlowContextInterface extends FlowContextInterface {\n companyId: string\n payrollUuid?: string\n payrollType?: OffCycleReason\n withReimbursements?: boolean\n}\n\nexport interface OffCycleFlowProps {\n companyId: string\n payrollType?: OffCycleReason\n onEvent: OnEventType<EventType, unknown>\n withReimbursements?: boolean\n}\n\nexport function OffCycleCreationContextual() {\n const { companyId, payrollType, onEvent } = useFlow<OffCycleFlowContextInterface>()\n return (\n <OffCycleCreation\n companyId={ensureRequired(companyId)}\n payrollType={payrollType}\n onEvent={onEvent}\n />\n )\n}\n\nexport function OffCycleExecutionContextual() {\n const { companyId, payrollUuid, onEvent, withReimbursements, header } =\n useFlow<OffCycleFlowContextInterface>()\n\n const resolvedCompanyId = ensureRequired(companyId)\n const resolvedPayrollId = ensureRequired(payrollUuid)\n\n const offCycleRootBreadcrumb =\n header?.type === 'breadcrumbs' ? header.breadcrumbs?.['createOffCyclePayroll']?.[0] : undefined\n const prefixBreadcrumbs = useMemo(\n () => (offCycleRootBreadcrumb ? [offCycleRootBreadcrumb] : undefined),\n [offCycleRootBreadcrumb],\n )\n\n return (\n <BaseComponent onEvent={onEvent}>\n <OffCycleExecutionWithData\n companyId={resolvedCompanyId}\n payrollId={resolvedPayrollId}\n onEvent={onEvent}\n withReimbursements={withReimbursements}\n prefixBreadcrumbs={prefixBreadcrumbs}\n />\n </BaseComponent>\n )\n}\n\ntype OffCycleExecutionWithDataProps = Pick<\n PayrollExecutionFlowProps,\n 'companyId' | 'payrollId' | 'onEvent' | 'prefixBreadcrumbs' | 'withReimbursements'\n>\n\nfunction OffCycleExecutionWithData({\n companyId,\n payrollId,\n ...rest\n}: OffCycleExecutionWithDataProps) {\n const { data } = usePayrollsGetSuspense({ companyId, payrollId })\n const initialPayPeriod = data.payrollShow?.payPeriod\n\n return (\n <PayrollExecutionFlow\n companyId={companyId}\n payrollId={payrollId}\n initialPayPeriod={initialPayPeriod}\n isDismissalPayroll={isDismissalPayroll(data.payrollShow?.offCycleReason)}\n {...rest}\n />\n )\n}\n"],"names":["OffCycleCreationContextual","companyId","payrollType","onEvent","useFlow","jsx","OffCycleCreation","ensureRequired","OffCycleExecutionContextual","payrollUuid","withReimbursements","header","resolvedCompanyId","resolvedPayrollId","offCycleRootBreadcrumb","prefixBreadcrumbs","useMemo","BaseComponent","OffCycleExecutionWithData","payrollId","rest","data","usePayrollsGetSuspense","initialPayPeriod","PayrollExecutionFlow","isDismissalPayroll"],"mappings":";;;;;;;;;AA6BO,SAASA,IAA6B;AAC3C,QAAM,EAAE,WAAAC,GAAW,aAAAC,GAAa,SAAAC,EAAA,IAAYC,EAAA;AAC5C,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAeN,CAAS;AAAA,MACnC,aAAAC;AAAA,MACA,SAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAEO,SAASK,IAA8B;AAC5C,QAAM,EAAE,WAAAP,GAAW,aAAAQ,GAAa,SAAAN,GAAS,oBAAAO,GAAoB,QAAAC,EAAA,IAC3DP,EAAA,GAEIQ,IAAoBL,EAAeN,CAAS,GAC5CY,IAAoBN,EAAeE,CAAW,GAE9CK,IACJH,GAAQ,SAAS,gBAAgBA,EAAO,aAAc,wBAA2B,CAAC,IAAI,QAClFI,IAAoBC;AAAA,IACxB,MAAOF,IAAyB,CAACA,CAAsB,IAAI;AAAA,IAC3D,CAACA,CAAsB;AAAA,EAAA;AAGzB,SACE,gBAAAT,EAACY,KAAc,SAAAd,GACb,UAAA,gBAAAE;AAAA,IAACa;AAAA,IAAA;AAAA,MACC,WAAWN;AAAA,MACX,WAAWC;AAAA,MACX,SAAAV;AAAA,MACA,oBAAAO;AAAA,MACA,mBAAAK;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;AAOA,SAASG,EAA0B;AAAA,EACjC,WAAAjB;AAAA,EACA,WAAAkB;AAAA,EACA,GAAGC;AACL,GAAmC;AACjC,QAAM,EAAE,MAAAC,EAAA,IAASC,EAAuB,EAAE,WAAArB,GAAW,WAAAkB,GAAW,GAC1DI,IAAmBF,EAAK,aAAa;AAE3C,SACE,gBAAAhB;AAAA,IAACmB;AAAA,IAAA;AAAA,MACC,WAAAvB;AAAA,MACA,WAAAkB;AAAA,MACA,kBAAAI;AAAA,MACA,oBAAoBE,EAAmBJ,EAAK,aAAa,cAAc;AAAA,MACtE,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV;"}
1
+ {"version":3,"file":"OffCycleFlowComponents.js","sources":["../../../../src/components/Payroll/OffCycle/OffCycleFlowComponents.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { usePayrollsGetSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsGet'\nimport { OffCycleCreation } from '../OffCycleCreation'\nimport {\n PayrollExecutionFlow,\n type PayrollExecutionFlowProps,\n} from '../PayrollExecutionFlow/PayrollExecutionFlow'\nimport type { OffCycleReason } from '../OffCycleReasonSelection'\nimport { isDismissalPayroll } from '../helpers'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType } from '@/shared/constants'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { BaseComponent } from '@/components/Base/Base'\n\n/**\n * Flow context shared across the off-cycle payroll flow steps.\n *\n * @public\n */\nexport interface OffCycleFlowContextInterface extends FlowContextInterface {\n /** The associated company identifier. */\n companyId: string\n /** Identifier of the off-cycle payroll created during the flow; set once creation completes. */\n payrollUuid?: string\n /** Pre-selected off-cycle reason (bonus or correction). */\n payrollType?: OffCycleReason\n /** Whether to show reimbursement fields throughout the execution steps. Defaults to true. */\n withReimbursements?: boolean\n}\n\n/**\n * Props for {@link OffCycleFlow}.\n *\n * @public\n */\nexport interface OffCycleFlowProps {\n /** The associated company identifier. */\n companyId: string\n /** Optional pre-selected off-cycle reason. When provided, the creation form starts with this reason selected. */\n payrollType?: OffCycleReason\n /** Callback invoked when the flow emits an event. See the events table on {@link OffCycleFlow}. */\n onEvent: OnEventType<EventType, unknown>\n /** Optional flag to show/hide reimbursement fields throughout the flow. Defaults to true. */\n withReimbursements?: boolean\n}\n\n/** @internal */\nexport function OffCycleCreationContextual() {\n const { companyId, payrollType, onEvent } = useFlow<OffCycleFlowContextInterface>()\n return (\n <OffCycleCreation\n companyId={ensureRequired(companyId)}\n payrollType={payrollType}\n onEvent={onEvent}\n />\n )\n}\n\n/** @internal */\nexport function OffCycleExecutionContextual() {\n const { companyId, payrollUuid, onEvent, withReimbursements, header } =\n useFlow<OffCycleFlowContextInterface>()\n\n const resolvedCompanyId = ensureRequired(companyId)\n const resolvedPayrollId = ensureRequired(payrollUuid)\n\n const offCycleRootBreadcrumb =\n header?.type === 'breadcrumbs' ? header.breadcrumbs?.['createOffCyclePayroll']?.[0] : undefined\n const prefixBreadcrumbs = useMemo(\n () => (offCycleRootBreadcrumb ? [offCycleRootBreadcrumb] : undefined),\n [offCycleRootBreadcrumb],\n )\n\n return (\n <BaseComponent onEvent={onEvent}>\n <OffCycleExecutionWithData\n companyId={resolvedCompanyId}\n payrollId={resolvedPayrollId}\n onEvent={onEvent}\n withReimbursements={withReimbursements}\n prefixBreadcrumbs={prefixBreadcrumbs}\n />\n </BaseComponent>\n )\n}\n\ntype OffCycleExecutionWithDataProps = Pick<\n PayrollExecutionFlowProps,\n 'companyId' | 'payrollId' | 'onEvent' | 'prefixBreadcrumbs' | 'withReimbursements'\n>\n\nfunction OffCycleExecutionWithData({\n companyId,\n payrollId,\n ...rest\n}: OffCycleExecutionWithDataProps) {\n const { data } = usePayrollsGetSuspense({ companyId, payrollId })\n const initialPayPeriod = data.payrollShow?.payPeriod\n\n return (\n <PayrollExecutionFlow\n companyId={companyId}\n payrollId={payrollId}\n initialPayPeriod={initialPayPeriod}\n isDismissalPayroll={isDismissalPayroll(data.payrollShow?.offCycleReason)}\n {...rest}\n />\n )\n}\n"],"names":["OffCycleCreationContextual","companyId","payrollType","onEvent","useFlow","jsx","OffCycleCreation","ensureRequired","OffCycleExecutionContextual","payrollUuid","withReimbursements","header","resolvedCompanyId","resolvedPayrollId","offCycleRootBreadcrumb","prefixBreadcrumbs","useMemo","BaseComponent","OffCycleExecutionWithData","payrollId","rest","data","usePayrollsGetSuspense","initialPayPeriod","PayrollExecutionFlow","isDismissalPayroll"],"mappings":";;;;;;;;;AAgDO,SAASA,IAA6B;AAC3C,QAAM,EAAE,WAAAC,GAAW,aAAAC,GAAa,SAAAC,EAAA,IAAYC,EAAA;AAC5C,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAeN,CAAS;AAAA,MACnC,aAAAC;AAAA,MACA,SAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AAGO,SAASK,IAA8B;AAC5C,QAAM,EAAE,WAAAP,GAAW,aAAAQ,GAAa,SAAAN,GAAS,oBAAAO,GAAoB,QAAAC,EAAA,IAC3DP,EAAA,GAEIQ,IAAoBL,EAAeN,CAAS,GAC5CY,IAAoBN,EAAeE,CAAW,GAE9CK,IACJH,GAAQ,SAAS,gBAAgBA,EAAO,aAAc,wBAA2B,CAAC,IAAI,QAClFI,IAAoBC;AAAA,IACxB,MAAOF,IAAyB,CAACA,CAAsB,IAAI;AAAA,IAC3D,CAACA,CAAsB;AAAA,EAAA;AAGzB,SACE,gBAAAT,EAACY,KAAc,SAAAd,GACb,UAAA,gBAAAE;AAAA,IAACa;AAAA,IAAA;AAAA,MACC,WAAWN;AAAA,MACX,WAAWC;AAAA,MACX,SAAAV;AAAA,MACA,oBAAAO;AAAA,MACA,mBAAAK;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;AAOA,SAASG,EAA0B;AAAA,EACjC,WAAAjB;AAAA,EACA,WAAAkB;AAAA,EACA,GAAGC;AACL,GAAmC;AACjC,QAAM,EAAE,MAAAC,EAAA,IAASC,EAAuB,EAAE,WAAArB,GAAW,WAAAkB,GAAW,GAC1DI,IAAmBF,EAAK,aAAa;AAE3C,SACE,gBAAAhB;AAAA,IAACmB;AAAA,IAAA;AAAA,MACC,WAAAvB;AAAA,MACA,WAAAkB;AAAA,MACA,kBAAAI;AAAA,MACA,oBAAoBE,EAAmBJ,EAAK,aAAa,cAAc;AAAA,MACtE,GAAGD;AAAA,IAAA;AAAA,EAAA;AAGV;"}
@@ -1,5 +1,7 @@
1
1
  import { BreadcrumbNodes } from '../../Common/FlowBreadcrumbs/FlowBreadcrumbsTypes';
2
+ /** @internal */
2
3
  export declare const offCycleBreadcrumbsNodes: BreadcrumbNodes;
4
+ /** @internal */
3
5
  export declare const offCycleMachine: {
4
6
  createOffCyclePayroll: import('robot3').MachineState<any>;
5
7
  execution: import('robot3').MachineState<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"offCycleStateMachine.js","sources":["../../../../src/components/Payroll/OffCycle/offCycleStateMachine.ts"],"sourcesContent":["import { state, transition, reduce, guard } from 'robot3'\nimport {\n OffCycleCreationContextual,\n OffCycleExecutionContextual,\n type OffCycleFlowContextInterface,\n} from './OffCycleFlowComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineTransition } from '@/types/Helpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { patchBreadcrumbsHeader } from '@/helpers/breadcrumbHelpers'\n\nexport const offCycleBreadcrumbsNodes: BreadcrumbNodes = {\n createOffCyclePayroll: {\n parent: null,\n item: {\n id: 'createOffCyclePayroll',\n label: 'createOffCyclePayroll.breadcrumbLabel',\n namespace: 'Payroll.OffCycle',\n onNavigate: ((ctx: OffCycleFlowContextInterface) => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: 'createOffCyclePayroll' }),\n component: OffCycleCreationContextual,\n payrollUuid: undefined,\n })) as (context: unknown) => unknown,\n },\n },\n}\n\nfunction toCreationReducer(ctx: OffCycleFlowContextInterface): OffCycleFlowContextInterface {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: 'createOffCyclePayroll' }),\n component: OffCycleCreationContextual,\n payrollUuid: undefined,\n }\n}\n\nconst creationBreadcrumbTransition = transition(\n componentEvents.BREADCRUMB_NAVIGATE,\n 'createOffCyclePayroll',\n guard(\n (_ctx: OffCycleFlowContextInterface, ev: { payload: { key: string } }) =>\n ev.payload.key === 'createOffCyclePayroll',\n ),\n reduce(toCreationReducer),\n)\n\nexport const offCycleMachine = {\n createOffCyclePayroll: state<MachineTransition>(\n transition(\n componentEvents.OFF_CYCLE_CREATED,\n 'execution',\n reduce(\n (\n ctx: OffCycleFlowContextInterface,\n ev: { payload?: { payrollUuid?: string } },\n ): OffCycleFlowContextInterface => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n payrollUuid: ev.payload?.payrollUuid,\n component: OffCycleExecutionContextual,\n }),\n ),\n ),\n ),\n\n execution: state<MachineTransition>(creationBreadcrumbTransition),\n}\n"],"names":["offCycleBreadcrumbsNodes","ctx","patchBreadcrumbsHeader","OffCycleCreationContextual","toCreationReducer","creationBreadcrumbTransition","transition","componentEvents","guard","_ctx","ev","reduce","offCycleMachine","state","OffCycleExecutionContextual"],"mappings":";;;;AAWO,MAAMA,IAA4C;AAAA,EACvD,uBAAuB;AAAA,IACrB,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,aAAa,CAACC,OAAuC;AAAA,QACnD,GAAGC,EAAuBD,GAAK,EAAE,qBAAqB,yBAAyB;AAAA,QAC/E,WAAWE;AAAA,QACX,aAAa;AAAA,MAAA;AAAA,IACf;AAAA,EACF;AAEJ;AAEA,SAASC,EAAkBH,GAAiE;AAC1F,SAAO;AAAA,IACL,GAAGC,EAAuBD,GAAK,EAAE,qBAAqB,yBAAyB;AAAA,IAC/E,WAAWE;AAAA,IACX,aAAa;AAAA,EAAA;AAEjB;AAEA,MAAME,IAA+BC;AAAA,EACnCC,EAAgB;AAAA,EAChB;AAAA,EACAC;AAAA,IACE,CAACC,GAAoCC,MACnCA,EAAG,QAAQ,QAAQ;AAAA,EAAA;AAAA,EAEvBC,EAAOP,CAAiB;AAC1B,GAEaQ,IAAkB;AAAA,EAC7B,uBAAuBC;AAAA,IACrBP;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAI;AAAA,QACE,CACEV,GACAS,OACkC;AAAA,UAClC,GAAGR,EAAuBD,GAAK,EAAE,qBAAqB,QAAW;AAAA,UACjE,aAAaS,EAAG,SAAS;AAAA,UACzB,WAAWI;AAAA,QAAA;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EAGF,WAAWD,EAAyBR,CAA4B;AAClE;"}
1
+ {"version":3,"file":"offCycleStateMachine.js","sources":["../../../../src/components/Payroll/OffCycle/offCycleStateMachine.ts"],"sourcesContent":["import { state, transition, reduce, guard } from 'robot3'\nimport {\n OffCycleCreationContextual,\n OffCycleExecutionContextual,\n type OffCycleFlowContextInterface,\n} from './OffCycleFlowComponents'\nimport { componentEvents } from '@/shared/constants'\nimport type { MachineTransition } from '@/types/Helpers'\nimport type { BreadcrumbNodes } from '@/components/Common/FlowBreadcrumbs/FlowBreadcrumbsTypes'\nimport { patchBreadcrumbsHeader } from '@/helpers/breadcrumbHelpers'\n\n/** @internal */\nexport const offCycleBreadcrumbsNodes: BreadcrumbNodes = {\n createOffCyclePayroll: {\n parent: null,\n item: {\n id: 'createOffCyclePayroll',\n label: 'createOffCyclePayroll.breadcrumbLabel',\n namespace: 'Payroll.OffCycle',\n onNavigate: ((ctx: OffCycleFlowContextInterface) => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: 'createOffCyclePayroll' }),\n component: OffCycleCreationContextual,\n payrollUuid: undefined,\n })) as (context: unknown) => unknown,\n },\n },\n}\n\nfunction toCreationReducer(ctx: OffCycleFlowContextInterface): OffCycleFlowContextInterface {\n return {\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: 'createOffCyclePayroll' }),\n component: OffCycleCreationContextual,\n payrollUuid: undefined,\n }\n}\n\nconst creationBreadcrumbTransition = transition(\n componentEvents.BREADCRUMB_NAVIGATE,\n 'createOffCyclePayroll',\n guard(\n (_ctx: OffCycleFlowContextInterface, ev: { payload: { key: string } }) =>\n ev.payload.key === 'createOffCyclePayroll',\n ),\n reduce(toCreationReducer),\n)\n\n/** @internal */\nexport const offCycleMachine = {\n createOffCyclePayroll: state<MachineTransition>(\n transition(\n componentEvents.OFF_CYCLE_CREATED,\n 'execution',\n reduce(\n (\n ctx: OffCycleFlowContextInterface,\n ev: { payload?: { payrollUuid?: string } },\n ): OffCycleFlowContextInterface => ({\n ...patchBreadcrumbsHeader(ctx, { currentBreadcrumbId: undefined }),\n payrollUuid: ev.payload?.payrollUuid,\n component: OffCycleExecutionContextual,\n }),\n ),\n ),\n ),\n\n execution: state<MachineTransition>(creationBreadcrumbTransition),\n}\n"],"names":["offCycleBreadcrumbsNodes","ctx","patchBreadcrumbsHeader","OffCycleCreationContextual","toCreationReducer","creationBreadcrumbTransition","transition","componentEvents","guard","_ctx","ev","reduce","offCycleMachine","state","OffCycleExecutionContextual"],"mappings":";;;;AAYO,MAAMA,IAA4C;AAAA,EACvD,uBAAuB;AAAA,IACrB,QAAQ;AAAA,IACR,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,OAAO;AAAA,MACP,WAAW;AAAA,MACX,aAAa,CAACC,OAAuC;AAAA,QACnD,GAAGC,EAAuBD,GAAK,EAAE,qBAAqB,yBAAyB;AAAA,QAC/E,WAAWE;AAAA,QACX,aAAa;AAAA,MAAA;AAAA,IACf;AAAA,EACF;AAEJ;AAEA,SAASC,EAAkBH,GAAiE;AAC1F,SAAO;AAAA,IACL,GAAGC,EAAuBD,GAAK,EAAE,qBAAqB,yBAAyB;AAAA,IAC/E,WAAWE;AAAA,IACX,aAAa;AAAA,EAAA;AAEjB;AAEA,MAAME,IAA+BC;AAAA,EACnCC,EAAgB;AAAA,EAChB;AAAA,EACAC;AAAA,IACE,CAACC,GAAoCC,MACnCA,EAAG,QAAQ,QAAQ;AAAA,EAAA;AAAA,EAEvBC,EAAOP,CAAiB;AAC1B,GAGaQ,IAAkB;AAAA,EAC7B,uBAAuBC;AAAA,IACrBP;AAAA,MACEC,EAAgB;AAAA,MAChB;AAAA,MACAI;AAAA,QACE,CACEV,GACAS,OACkC;AAAA,UAClC,GAAGR,EAAuBD,GAAK,EAAE,qBAAqB,QAAW;AAAA,UACjE,aAAaS,EAAG,SAAS;AAAA,UACzB,WAAWI;AAAA,QAAA;AAAA,MACb;AAAA,IACF;AAAA,EACF;AAAA,EAGF,WAAWD,EAAyBR,CAA4B;AAClE;"}
@@ -1,2 +1,22 @@
1
1
  import { OffCycleCreationProps } from './OffCycleCreationTypes';
2
+ /**
3
+ * Creation form for off-cycle (bonus or correction) payrolls.
4
+ *
5
+ * Walks the user through configuring pay period dates, selecting a reason, choosing
6
+ * employees, and setting deduction and tax withholding preferences, then submits the
7
+ * resulting payroll for execution.
8
+ *
9
+ * @remarks
10
+ * | Event | Description | Data |
11
+ * | ----- | ----------- | ---- |
12
+ * | `offCycle/created` | The off-cycle payroll has been created | `{ payrollUuid: string }` |
13
+ *
14
+ * Changing the reason updates the deduction and withholding defaults — `'bonus'` skips
15
+ * regular deductions and uses the supplemental withholding rate; `'correction'` includes
16
+ * regular deductions and uses the regular rate.
17
+ *
18
+ * @param props - {@link OffCycleCreationProps} plus base component props.
19
+ * @returns The off-cycle payroll creation form.
20
+ * @public
21
+ */
2
22
  export declare function OffCycleCreation(props: OffCycleCreationProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleCreation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreation.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type Resolver } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsCreateOffCycle'\nimport {\n OffCycleReason as ApiOffCycleReason,\n WithholdingPayPeriod,\n} from '@gusto/embedded-api-v-2025-11-15/models/operations/postv1companiescompanyidpayrolls'\nimport { RFCDate } from '@gusto/embedded-api-v-2025-11-15/types/rfcdate'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport { OFF_CYCLE_REASON_DEFAULTS, type OffCycleReason } from '../OffCycleReasonSelection'\nimport {\n createOffCyclePayPeriodDateFormSchema,\n type OffCyclePayrollDateType,\n} from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes'\nimport { useOffCyclePayPeriodDateValidation } from '../OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { OffCycleCreationFormData, OffCycleCreationProps } from './OffCycleCreationTypes'\nimport { OffCycleCreationPresentation } from './OffCycleCreationPresentation'\nimport { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { Form } from '@/components/Common/Form'\nimport type { MultiSelectComboBoxOption } from '@/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes'\n\nconst LOCAL_TO_API_REASON: Record<OffCycleReason, ApiOffCycleReason> = {\n bonus: ApiOffCycleReason.Bonus,\n correction: ApiOffCycleReason.Correction,\n}\n\nexport function OffCycleCreation(props: OffCycleCreationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, companyId, payrollType = 'bonus' }: OffCycleCreationProps) {\n useComponentDictionary('Payroll.OffCycleCreation', dictionary)\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleReasonSelection')\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n const { t: tCreation } = useTranslation('Payroll.OffCycleCreation')\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { paymentSpeedDays } = useCompanyPaymentSpeed(companyId)\n\n const { minCheckDate, today } = useOffCyclePayPeriodDateValidation(paymentSpeedDays)\n const { mutateAsync: createOffCyclePayroll, isPending } = usePayrollsCreateOffCycleMutation()\n\n const [taxWithholdingConfig, setTaxWithholdingConfig] = useState<OffCycleTaxWithholdingConfig>({\n withholdingPayPeriod: WithholdingPayPeriod.EveryOtherWeek,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[payrollType].withholdingType,\n })\n const [isTaxWithholdingModalOpen, setIsTaxWithholdingModalOpen] = useState(false)\n\n const handleTaxWithholdingEditClick = useCallback(() => {\n setIsTaxWithholdingModalOpen(true)\n }, [])\n\n const handleTaxWithholdingModalDone = useCallback((config: OffCycleTaxWithholdingConfig) => {\n setTaxWithholdingConfig(config)\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const handleTaxWithholdingModalCancel = useCallback(() => {\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n onboardedActive: true,\n })\n\n const employees: MultiSelectComboBoxOption[] = useMemo(() => {\n const employeeList = employeesData.showEmployees ?? []\n return [...employeeList]\n .sort((a, b) => {\n const lastNameComparison = a.lastName.localeCompare(b.lastName)\n if (lastNameComparison !== 0) return lastNameComparison\n return a.firstName.localeCompare(b.firstName)\n })\n .map(employee => {\n const fullName = [employee.firstName, employee.lastName].filter(Boolean).join(' ')\n return {\n label: fullName,\n value: employee.uuid,\n }\n })\n }, [employeesData])\n\n const translateValidation = (key: string, options?: Record<string, unknown>): string =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t(key as any, options as any) as string\n\n const dynamicResolver: Resolver<OffCycleCreationFormData> = (values, context, options) => {\n const reason = values.reason\n const isCheckOnly = values.isCheckOnly\n const resolvedPayrollType: OffCyclePayrollDateType =\n reason === 'correction' ? 'correction' : payrollType\n\n const dateSchema = createOffCyclePayPeriodDateFormSchema(\n translateValidation,\n resolvedPayrollType,\n isCheckOnly ? today : minCheckDate,\n paymentSpeedDays,\n )\n const schema = z\n .object({\n reason: z.enum(['bonus', 'correction']),\n skipRegularDeductions: z.boolean(),\n includeAllEmployees: z.boolean(),\n selectedEmployeeUuids: z.array(z.string()),\n })\n .and(dateSchema)\n .superRefine((data, ctx) => {\n if (!data.includeAllEmployees && data.selectedEmployeeUuids.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['selectedEmployeeUuids'],\n message: tCreation('errors.noEmployeesSelected'),\n })\n }\n })\n\n return zodResolver(schema)(values, context, options)\n }\n\n const methods = useForm<OffCycleCreationFormData>({\n resolver: dynamicResolver,\n defaultValues: {\n reason: payrollType,\n isCheckOnly: false,\n startDate: null,\n endDate: null,\n checkDate: null,\n skipRegularDeductions: OFF_CYCLE_REASON_DEFAULTS[payrollType].skipDeductions,\n includeAllEmployees: false,\n selectedEmployeeUuids: [],\n },\n })\n\n const watchedReason = methods.watch('reason')\n\n useEffect(() => {\n methods.setValue(\n 'skipRegularDeductions',\n OFF_CYCLE_REASON_DEFAULTS[watchedReason].skipDeductions,\n )\n setTaxWithholdingConfig(prev => ({\n ...prev,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[watchedReason].withholdingType,\n }))\n }, [watchedReason, methods])\n\n const onSubmit = async (data: OffCycleCreationFormData) => {\n const reason = data.reason\n const checkDate = data.checkDate!\n const startDate = data.startDate!\n const endDate = data.endDate!\n const employeeUuids = data.includeAllEmployees\n ? employees.map(e => e.value)\n : data.selectedEmployeeUuids.length > 0\n ? data.selectedEmployeeUuids\n : undefined\n\n await baseSubmitHandler(data, async () => {\n const response = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: LOCAL_TO_API_REASON[reason],\n startDate: new RFCDate(startDate),\n endDate: new RFCDate(endDate),\n checkDate: new RFCDate(checkDate),\n skipRegularDeductions: data.skipRegularDeductions,\n isCheckOnlyPayroll: data.isCheckOnly,\n employeeUuids,\n withholdingPayPeriod: taxWithholdingConfig.withholdingPayPeriod,\n fixedWithholdingRate: taxWithholdingConfig.withholdingRate === 'supplemental',\n },\n },\n })\n\n const payrollUuid =\n response.payrollUnprocessed?.payrollUuid ?? response.payrollUnprocessed?.uuid\n\n if (!payrollUuid) {\n throw new SDKInternalError(tCreation('errors.missingPayrollId'))\n }\n\n onEvent(componentEvents.OFF_CYCLE_CREATED, { payrollUuid })\n })\n }\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)}>\n <OffCycleCreationPresentation\n employees={employees}\n isPending={isPending}\n taxWithholdingConfig={taxWithholdingConfig}\n isTaxWithholdingModalOpen={isTaxWithholdingModalOpen}\n onTaxWithholdingEditClick={handleTaxWithholdingEditClick}\n onTaxWithholdingModalDone={handleTaxWithholdingModalDone}\n onTaxWithholdingModalCancel={handleTaxWithholdingModalCancel}\n />\n </Form>\n </FormProvider>\n )\n}\n"],"names":["LOCAL_TO_API_REASON","ApiOffCycleReason","OffCycleCreation","props","jsx","BaseComponent","Root","dictionary","companyId","payrollType","useComponentDictionary","useI18n","t","useTranslation","tCreation","onEvent","baseSubmitHandler","useBase","paymentSpeedDays","useCompanyPaymentSpeed","minCheckDate","today","useOffCyclePayPeriodDateValidation","createOffCyclePayroll","isPending","usePayrollsCreateOffCycleMutation","taxWithholdingConfig","setTaxWithholdingConfig","useState","WithholdingPayPeriod","OFF_CYCLE_REASON_DEFAULTS","isTaxWithholdingModalOpen","setIsTaxWithholdingModalOpen","handleTaxWithholdingEditClick","useCallback","handleTaxWithholdingModalDone","config","handleTaxWithholdingModalCancel","employeesData","useEmployeesListSuspense","employees","useMemo","a","b","lastNameComparison","employee","translateValidation","key","options","methods","useForm","values","context","reason","isCheckOnly","dateSchema","createOffCyclePayPeriodDateFormSchema","schema","z","data","ctx","zodResolver","watchedReason","useEffect","prev","onSubmit","checkDate","startDate","endDate","employeeUuids","e","response","RFCDate","payrollUuid","SDKInternalError","componentEvents","FormProvider","Form","OffCycleCreationPresentation"],"mappings":"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"}
1
+ {"version":3,"file":"OffCycleCreation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreation.tsx"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type Resolver } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { z } from 'zod'\nimport { useTranslation } from 'react-i18next'\nimport { usePayrollsCreateOffCycleMutation } from '@gusto/embedded-api-v-2025-11-15/react-query/payrollsCreateOffCycle'\nimport {\n OffCycleReason as ApiOffCycleReason,\n WithholdingPayPeriod,\n} from '@gusto/embedded-api-v-2025-11-15/models/operations/postv1companiescompanyidpayrolls'\nimport { RFCDate } from '@gusto/embedded-api-v-2025-11-15/types/rfcdate'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api-v-2025-11-15/react-query/employeesList'\nimport { OFF_CYCLE_REASON_DEFAULTS, type OffCycleReason } from '../OffCycleReasonSelection'\nimport {\n createOffCyclePayPeriodDateFormSchema,\n type OffCyclePayrollDateType,\n} from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes'\nimport { useOffCyclePayPeriodDateValidation } from '../OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation'\nimport type { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type { OffCycleCreationFormData, OffCycleCreationProps } from './OffCycleCreationTypes'\nimport { OffCycleCreationPresentation } from './OffCycleCreationPresentation'\nimport { useCompanyPaymentSpeed } from '@/hooks/useCompanyPaymentSpeed'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { Form } from '@/components/Common/Form'\nimport type { MultiSelectComboBoxOption } from '@/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes'\n\nconst LOCAL_TO_API_REASON: Record<OffCycleReason, ApiOffCycleReason> = {\n bonus: ApiOffCycleReason.Bonus,\n correction: ApiOffCycleReason.Correction,\n}\n\n/**\n * Creation form for off-cycle (bonus or correction) payrolls.\n *\n * Walks the user through configuring pay period dates, selecting a reason, choosing\n * employees, and setting deduction and tax withholding preferences, then submits the\n * resulting payroll for execution.\n *\n * @remarks\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `offCycle/created` | The off-cycle payroll has been created | `{ payrollUuid: string }` |\n *\n * Changing the reason updates the deduction and withholding defaults — `'bonus'` skips\n * regular deductions and uses the supplemental withholding rate; `'correction'` includes\n * regular deductions and uses the regular rate.\n *\n * @param props - {@link OffCycleCreationProps} plus base component props.\n * @returns The off-cycle payroll creation form.\n * @public\n */\nexport function OffCycleCreation(props: OffCycleCreationProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary, companyId, payrollType = 'bonus' }: OffCycleCreationProps) {\n useComponentDictionary('Payroll.OffCycleCreation', dictionary)\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleReasonSelection')\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n const { t: tCreation } = useTranslation('Payroll.OffCycleCreation')\n const { onEvent, baseSubmitHandler } = useBase()\n\n const { paymentSpeedDays } = useCompanyPaymentSpeed(companyId)\n\n const { minCheckDate, today } = useOffCyclePayPeriodDateValidation(paymentSpeedDays)\n const { mutateAsync: createOffCyclePayroll, isPending } = usePayrollsCreateOffCycleMutation()\n\n const [taxWithholdingConfig, setTaxWithholdingConfig] = useState<OffCycleTaxWithholdingConfig>({\n withholdingPayPeriod: WithholdingPayPeriod.EveryOtherWeek,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[payrollType].withholdingType,\n })\n const [isTaxWithholdingModalOpen, setIsTaxWithholdingModalOpen] = useState(false)\n\n const handleTaxWithholdingEditClick = useCallback(() => {\n setIsTaxWithholdingModalOpen(true)\n }, [])\n\n const handleTaxWithholdingModalDone = useCallback((config: OffCycleTaxWithholdingConfig) => {\n setTaxWithholdingConfig(config)\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const handleTaxWithholdingModalCancel = useCallback(() => {\n setIsTaxWithholdingModalOpen(false)\n }, [])\n\n const { data: employeesData } = useEmployeesListSuspense({\n companyId,\n onboardedActive: true,\n })\n\n const employees: MultiSelectComboBoxOption[] = useMemo(() => {\n const employeeList = employeesData.showEmployees ?? []\n return [...employeeList]\n .sort((a, b) => {\n const lastNameComparison = a.lastName.localeCompare(b.lastName)\n if (lastNameComparison !== 0) return lastNameComparison\n return a.firstName.localeCompare(b.firstName)\n })\n .map(employee => {\n const fullName = [employee.firstName, employee.lastName].filter(Boolean).join(' ')\n return {\n label: fullName,\n value: employee.uuid,\n }\n })\n }, [employeesData])\n\n const translateValidation = (key: string, options?: Record<string, unknown>): string =>\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n t(key as any, options as any) as string\n\n const dynamicResolver: Resolver<OffCycleCreationFormData> = (values, context, options) => {\n const reason = values.reason\n const isCheckOnly = values.isCheckOnly\n const resolvedPayrollType: OffCyclePayrollDateType =\n reason === 'correction' ? 'correction' : payrollType\n\n const dateSchema = createOffCyclePayPeriodDateFormSchema(\n translateValidation,\n resolvedPayrollType,\n isCheckOnly ? today : minCheckDate,\n paymentSpeedDays,\n )\n const schema = z\n .object({\n reason: z.enum(['bonus', 'correction']),\n skipRegularDeductions: z.boolean(),\n includeAllEmployees: z.boolean(),\n selectedEmployeeUuids: z.array(z.string()),\n })\n .and(dateSchema)\n .superRefine((data, ctx) => {\n if (!data.includeAllEmployees && data.selectedEmployeeUuids.length === 0) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['selectedEmployeeUuids'],\n message: tCreation('errors.noEmployeesSelected'),\n })\n }\n })\n\n return zodResolver(schema)(values, context, options)\n }\n\n const methods = useForm<OffCycleCreationFormData>({\n resolver: dynamicResolver,\n defaultValues: {\n reason: payrollType,\n isCheckOnly: false,\n startDate: null,\n endDate: null,\n checkDate: null,\n skipRegularDeductions: OFF_CYCLE_REASON_DEFAULTS[payrollType].skipDeductions,\n includeAllEmployees: false,\n selectedEmployeeUuids: [],\n },\n })\n\n const watchedReason = methods.watch('reason')\n\n useEffect(() => {\n methods.setValue(\n 'skipRegularDeductions',\n OFF_CYCLE_REASON_DEFAULTS[watchedReason].skipDeductions,\n )\n setTaxWithholdingConfig(prev => ({\n ...prev,\n withholdingRate: OFF_CYCLE_REASON_DEFAULTS[watchedReason].withholdingType,\n }))\n }, [watchedReason, methods])\n\n const onSubmit = async (data: OffCycleCreationFormData) => {\n const reason = data.reason\n const checkDate = data.checkDate!\n const startDate = data.startDate!\n const endDate = data.endDate!\n const employeeUuids = data.includeAllEmployees\n ? employees.map(e => e.value)\n : data.selectedEmployeeUuids.length > 0\n ? data.selectedEmployeeUuids\n : undefined\n\n await baseSubmitHandler(data, async () => {\n const response = await createOffCyclePayroll({\n request: {\n companyId,\n requestBody: {\n offCycle: true,\n offCycleReason: LOCAL_TO_API_REASON[reason],\n startDate: new RFCDate(startDate),\n endDate: new RFCDate(endDate),\n checkDate: new RFCDate(checkDate),\n skipRegularDeductions: data.skipRegularDeductions,\n isCheckOnlyPayroll: data.isCheckOnly,\n employeeUuids,\n withholdingPayPeriod: taxWithholdingConfig.withholdingPayPeriod,\n fixedWithholdingRate: taxWithholdingConfig.withholdingRate === 'supplemental',\n },\n },\n })\n\n const payrollUuid =\n response.payrollUnprocessed?.payrollUuid ?? response.payrollUnprocessed?.uuid\n\n if (!payrollUuid) {\n throw new SDKInternalError(tCreation('errors.missingPayrollId'))\n }\n\n onEvent(componentEvents.OFF_CYCLE_CREATED, { payrollUuid })\n })\n }\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)}>\n <OffCycleCreationPresentation\n employees={employees}\n isPending={isPending}\n taxWithholdingConfig={taxWithholdingConfig}\n isTaxWithholdingModalOpen={isTaxWithholdingModalOpen}\n onTaxWithholdingEditClick={handleTaxWithholdingEditClick}\n onTaxWithholdingModalDone={handleTaxWithholdingModalDone}\n onTaxWithholdingModalCancel={handleTaxWithholdingModalCancel}\n />\n </Form>\n </FormProvider>\n )\n}\n"],"names":["LOCAL_TO_API_REASON","ApiOffCycleReason","OffCycleCreation","props","jsx","BaseComponent","Root","dictionary","companyId","payrollType","useComponentDictionary","useI18n","t","useTranslation","tCreation","onEvent","baseSubmitHandler","useBase","paymentSpeedDays","useCompanyPaymentSpeed","minCheckDate","today","useOffCyclePayPeriodDateValidation","createOffCyclePayroll","isPending","usePayrollsCreateOffCycleMutation","taxWithholdingConfig","setTaxWithholdingConfig","useState","WithholdingPayPeriod","OFF_CYCLE_REASON_DEFAULTS","isTaxWithholdingModalOpen","setIsTaxWithholdingModalOpen","handleTaxWithholdingEditClick","useCallback","handleTaxWithholdingModalDone","config","handleTaxWithholdingModalCancel","employeesData","useEmployeesListSuspense","employees","useMemo","a","b","lastNameComparison","employee","translateValidation","key","options","methods","useForm","values","context","reason","isCheckOnly","dateSchema","createOffCyclePayPeriodDateFormSchema","schema","z","data","ctx","zodResolver","watchedReason","useEffect","prev","onSubmit","checkDate","startDate","endDate","employeeUuids","e","response","RFCDate","payrollUuid","SDKInternalError","componentEvents","FormProvider","Form","OffCycleCreationPresentation"],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  import { OffCycleCreationPresentationProps } from './OffCycleCreationTypes';
2
+ /** @internal */
2
3
  export declare function OffCycleCreationPresentation({ employees, isPending, taxWithholdingConfig, isTaxWithholdingModalOpen, onTaxWithholdingEditClick, onTaxWithholdingModalDone, onTaxWithholdingModalCancel, }: OffCycleCreationPresentationProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleCreationPresentation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useFormContext } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { OffCycleReasonSelectionPresentation } from '../OffCycleReasonSelection'\nimport { OffCyclePayPeriodDateFormPresentation } from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation'\nimport { OffCycleTaxWithholdingTable } from '../OffCycleTaxWithholdingTable'\nimport { OffCycleTaxWithholdingModal } from '../OffCycleTaxWithholdingModal'\nimport {\n WAGE_TYPE_CATEGORIES,\n type WageTypeGroup,\n} from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type {\n OffCycleCreationFormData,\n OffCycleCreationPresentationProps,\n} from './OffCycleCreationTypes'\nimport styles from './OffCycleCreationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, RadioGroupField, SwitchField, MultiSelectComboBoxField } from '@/components/Common'\n\nexport function OffCycleCreationPresentation({\n employees,\n isPending,\n taxWithholdingConfig,\n isTaxWithholdingModalOpen,\n onTaxWithholdingEditClick,\n onTaxWithholdingModalDone,\n onTaxWithholdingModalCancel,\n}: OffCycleCreationPresentationProps) {\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n useI18n('Payroll.OffCycleTaxWithholding')\n const { t } = useTranslation('Payroll.OffCycleCreation')\n const { t: tDeductions } = useTranslation('Payroll.OffCycleDeductionsSetting')\n const { t: tEmployees } = useTranslation('Payroll.EmployeeSelection')\n const { t: tWithholding } = useTranslation('Payroll.OffCycleTaxWithholding')\n const { Heading, Text, Button } = useComponentContext()\n\n const wageTypeGroups: WageTypeGroup[] = useMemo(\n () =>\n WAGE_TYPE_CATEGORIES.map(category => {\n const group: WageTypeGroup = {\n category,\n label: tWithholding(`wageTypeGroups.${category}.label`),\n }\n if (category === 'regular' || category === 'supplemental') {\n group.description = tWithholding(`wageTypeGroups.${category}.description`)\n }\n return group\n }),\n [tWithholding],\n )\n\n const { setValue, watch } = useFormContext<OffCycleCreationFormData>()\n const includeAllEmployees = watch('includeAllEmployees')\n\n const handleToggleIncludeAll = useCallback(\n (checked: boolean) => {\n if (checked) {\n setValue('selectedEmployeeUuids', [])\n }\n },\n [setValue],\n )\n\n const deductionsOptions = [\n {\n value: false,\n label: tDeductions('options.include.label'),\n },\n {\n value: true,\n label: tDeductions('options.skip.label'),\n },\n ]\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Text variant=\"supporting\">{t('pageDescription')}</Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={20}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h3\">{t('payPeriodSectionTitle')}</Heading>\n <Text variant=\"supporting\">{t('payPeriodSectionDescription')}</Text>\n </Flex>\n <OffCyclePayPeriodDateFormPresentation />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <OffCycleReasonSelectionPresentation name=\"reason\" />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Heading as=\"h3\">{tEmployees('sectionTitle')}</Heading>\n <SwitchField\n name=\"includeAllEmployees\"\n label={t('includeAllEmployeesLabel')}\n onChange={handleToggleIncludeAll}\n />\n {!includeAllEmployees && (\n <MultiSelectComboBoxField\n name=\"selectedEmployeeUuids\"\n label={tEmployees('sectionTitle')}\n shouldVisuallyHideLabel\n placeholder={tEmployees('searchPlaceholder')}\n options={employees}\n />\n )}\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <RadioGroupField<boolean>\n name=\"skipRegularDeductions\"\n label={tDeductions('title')}\n description={tDeductions('description')}\n options={deductionsOptions}\n convertValueToString={value => String(value)}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <OffCycleTaxWithholdingTable\n wageTypeGroups={wageTypeGroups}\n config={taxWithholdingConfig}\n onEditClick={onTaxWithholdingEditClick}\n />\n {isTaxWithholdingModalOpen && (\n <OffCycleTaxWithholdingModal\n isOpen\n defaultConfig={taxWithholdingConfig}\n onDone={onTaxWithholdingModalDone}\n onCancel={onTaxWithholdingModalCancel}\n />\n )}\n\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button type=\"submit\" isLoading={isPending} isDisabled={isPending}>\n {t('continueCta')}\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["OffCycleCreationPresentation","employees","isPending","taxWithholdingConfig","isTaxWithholdingModalOpen","onTaxWithholdingEditClick","onTaxWithholdingModalDone","onTaxWithholdingModalCancel","useI18n","t","useTranslation","tDeductions","tEmployees","tWithholding","Heading","Text","Button","useComponentContext","wageTypeGroups","useMemo","WAGE_TYPE_CATEGORIES","category","group","setValue","watch","useFormContext","includeAllEmployees","handleToggleIncludeAll","useCallback","checked","deductionsOptions","jsxs","Flex","jsx","OffCyclePayPeriodDateFormPresentation","styles","OffCycleReasonSelectionPresentation","SwitchField","MultiSelectComboBoxField","RadioGroupField","value","OffCycleTaxWithholdingTable","OffCycleTaxWithholdingModal"],"mappings":"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"}
1
+ {"version":3,"file":"OffCycleCreationPresentation.js","sources":["../../../../src/components/Payroll/OffCycleCreation/OffCycleCreationPresentation.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react'\nimport { useFormContext } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { OffCycleReasonSelectionPresentation } from '../OffCycleReasonSelection'\nimport { OffCyclePayPeriodDateFormPresentation } from '../OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation'\nimport { OffCycleTaxWithholdingTable } from '../OffCycleTaxWithholdingTable'\nimport { OffCycleTaxWithholdingModal } from '../OffCycleTaxWithholdingModal'\nimport {\n WAGE_TYPE_CATEGORIES,\n type WageTypeGroup,\n} from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes'\nimport type {\n OffCycleCreationFormData,\n OffCycleCreationPresentationProps,\n} from './OffCycleCreationTypes'\nimport styles from './OffCycleCreationPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { Flex, RadioGroupField, SwitchField, MultiSelectComboBoxField } from '@/components/Common'\n\n/** @internal */\nexport function OffCycleCreationPresentation({\n employees,\n isPending,\n taxWithholdingConfig,\n isTaxWithholdingModalOpen,\n onTaxWithholdingEditClick,\n onTaxWithholdingModalDone,\n onTaxWithholdingModalCancel,\n}: OffCycleCreationPresentationProps) {\n useI18n('Payroll.OffCycleCreation')\n useI18n('Payroll.OffCycleDeductionsSetting')\n useI18n('Payroll.EmployeeSelection')\n useI18n('Payroll.OffCycleTaxWithholding')\n const { t } = useTranslation('Payroll.OffCycleCreation')\n const { t: tDeductions } = useTranslation('Payroll.OffCycleDeductionsSetting')\n const { t: tEmployees } = useTranslation('Payroll.EmployeeSelection')\n const { t: tWithholding } = useTranslation('Payroll.OffCycleTaxWithholding')\n const { Heading, Text, Button } = useComponentContext()\n\n const wageTypeGroups: WageTypeGroup[] = useMemo(\n () =>\n WAGE_TYPE_CATEGORIES.map(category => {\n const group: WageTypeGroup = {\n category,\n label: tWithholding(`wageTypeGroups.${category}.label`),\n }\n if (category === 'regular' || category === 'supplemental') {\n group.description = tWithholding(`wageTypeGroups.${category}.description`)\n }\n return group\n }),\n [tWithholding],\n )\n\n const { setValue, watch } = useFormContext<OffCycleCreationFormData>()\n const includeAllEmployees = watch('includeAllEmployees')\n\n const handleToggleIncludeAll = useCallback(\n (checked: boolean) => {\n if (checked) {\n setValue('selectedEmployeeUuids', [])\n }\n },\n [setValue],\n )\n\n const deductionsOptions = [\n {\n value: false,\n label: tDeductions('options.include.label'),\n },\n {\n value: true,\n label: tDeductions('options.skip.label'),\n },\n ]\n\n return (\n <Flex flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h2\">{t('pageTitle')}</Heading>\n <Text variant=\"supporting\">{t('pageDescription')}</Text>\n </Flex>\n\n <Flex flexDirection=\"column\" gap={20}>\n <Flex flexDirection=\"column\" gap={4}>\n <Heading as=\"h3\">{t('payPeriodSectionTitle')}</Heading>\n <Text variant=\"supporting\">{t('payPeriodSectionDescription')}</Text>\n </Flex>\n <OffCyclePayPeriodDateFormPresentation />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <OffCycleReasonSelectionPresentation name=\"reason\" />\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={12}>\n <Heading as=\"h3\">{tEmployees('sectionTitle')}</Heading>\n <SwitchField\n name=\"includeAllEmployees\"\n label={t('includeAllEmployeesLabel')}\n onChange={handleToggleIncludeAll}\n />\n {!includeAllEmployees && (\n <MultiSelectComboBoxField\n name=\"selectedEmployeeUuids\"\n label={tEmployees('sectionTitle')}\n shouldVisuallyHideLabel\n placeholder={tEmployees('searchPlaceholder')}\n options={employees}\n />\n )}\n </Flex>\n\n <hr className={styles.divider} />\n\n <Flex flexDirection=\"column\" gap={20}>\n <RadioGroupField<boolean>\n name=\"skipRegularDeductions\"\n label={tDeductions('title')}\n description={tDeductions('description')}\n options={deductionsOptions}\n convertValueToString={value => String(value)}\n />\n </Flex>\n\n <hr className={styles.divider} />\n\n <OffCycleTaxWithholdingTable\n wageTypeGroups={wageTypeGroups}\n config={taxWithholdingConfig}\n onEditClick={onTaxWithholdingEditClick}\n />\n {isTaxWithholdingModalOpen && (\n <OffCycleTaxWithholdingModal\n isOpen\n defaultConfig={taxWithholdingConfig}\n onDone={onTaxWithholdingModalDone}\n onCancel={onTaxWithholdingModalCancel}\n />\n )}\n\n <Flex justifyContent=\"flex-end\" gap={12}>\n <Button type=\"submit\" isLoading={isPending} isDisabled={isPending}>\n {t('continueCta')}\n </Button>\n </Flex>\n </Flex>\n )\n}\n"],"names":["OffCycleCreationPresentation","employees","isPending","taxWithholdingConfig","isTaxWithholdingModalOpen","onTaxWithholdingEditClick","onTaxWithholdingModalDone","onTaxWithholdingModalCancel","useI18n","t","useTranslation","tDeductions","tEmployees","tWithholding","Heading","Text","Button","useComponentContext","wageTypeGroups","useMemo","WAGE_TYPE_CATEGORIES","category","group","setValue","watch","useFormContext","includeAllEmployees","handleToggleIncludeAll","useCallback","checked","deductionsOptions","jsxs","Flex","jsx","OffCyclePayPeriodDateFormPresentation","styles","OffCycleReasonSelectionPresentation","SwitchField","MultiSelectComboBoxField","RadioGroupField","value","OffCycleTaxWithholdingTable","OffCycleTaxWithholdingModal"],"mappings":"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"}
@@ -3,22 +3,46 @@ import { OffCyclePayPeriodDateFormData, OffCyclePayrollDateType } from '../OffCy
3
3
  import { OffCycleTaxWithholdingConfig } from '../OffCycleTaxWithholdingTable/OffCycleTaxWithholdingTableTypes';
4
4
  import { MultiSelectComboBoxOption } from '../../Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes';
5
5
  import { BaseComponentInterface } from '../../Base/Base';
6
+ /**
7
+ * Props for the {@link OffCycleCreation} component.
8
+ *
9
+ * @public
10
+ */
6
11
  export interface OffCycleCreationProps extends BaseComponentInterface<'Payroll.OffCycleCreation'> {
12
+ /** The associated company identifier. */
7
13
  companyId: string;
14
+ /** Pre-selected off-cycle reason. The creation form starts with this reason selected. Defaults to `'bonus'`. */
8
15
  payrollType?: OffCyclePayrollDateType;
9
16
  }
17
+ /**
18
+ * Form values collected by the {@link OffCycleCreation} component.
19
+ *
20
+ * @public
21
+ */
10
22
  export interface OffCycleCreationFormData extends OffCyclePayPeriodDateFormData {
23
+ /** The off-cycle reason — `'bonus'` or `'correction'`. */
11
24
  reason: OffCycleReason;
25
+ /** When `true`, regular deductions are skipped for this payroll. */
12
26
  skipRegularDeductions: boolean;
27
+ /** When `true`, every onboarded active employee is included in the payroll. */
13
28
  includeAllEmployees: boolean;
29
+ /** Employee UUIDs to include. Only consulted when `includeAllEmployees` is `false`. */
14
30
  selectedEmployeeUuids: string[];
15
31
  }
32
+ /** @internal */
16
33
  export interface OffCycleCreationPresentationProps {
34
+ /** Selectable employees rendered in the multi-select. */
17
35
  employees: MultiSelectComboBoxOption[];
36
+ /** Whether the off-cycle create mutation is in flight. */
18
37
  isPending?: boolean;
38
+ /** Current tax withholding configuration shown in the table. */
19
39
  taxWithholdingConfig: OffCycleTaxWithholdingConfig;
40
+ /** Whether the tax withholding edit modal is open. */
20
41
  isTaxWithholdingModalOpen: boolean;
42
+ /** Fires when the user clicks the edit affordance on the tax withholding table. */
21
43
  onTaxWithholdingEditClick: () => void;
44
+ /** Fires when the user confirms a new tax withholding configuration in the modal. */
22
45
  onTaxWithholdingModalDone: (config: OffCycleTaxWithholdingConfig) => void;
46
+ /** Fires when the user dismisses the tax withholding modal without saving. */
23
47
  onTaxWithholdingModalCancel: () => void;
24
48
  }
@@ -1,3 +1,3 @@
1
1
  import "./types/i18next.d.ts"
2
2
  export { OffCycleCreation } from './OffCycleCreation';
3
- export type { OffCycleCreationProps, OffCycleCreationFormData, OffCycleCreationPresentationProps, } from './OffCycleCreationTypes';
3
+ export type { OffCycleCreationProps, OffCycleCreationFormData } from './OffCycleCreationTypes';
@@ -1,2 +1,18 @@
1
1
  import { OffCycleDeductionsSettingProps } from './types';
2
+ /**
3
+ * Radio control for choosing whether an off-cycle payroll skips regular deductions and contributions.
4
+ *
5
+ * @remarks
6
+ * Taxes are always included regardless of the selection. Selecting "Skip" blocks all regular
7
+ * deductions and contributions except 401(k); selecting "Include" runs all regular deductions
8
+ * and contributions normally.
9
+ *
10
+ * | Event | Description | Data |
11
+ * | ----- | ----------- | ---- |
12
+ * | `offCycle/deductionsChange` | Fired when the deduction preference changes | {@link OffCycleDeductionsSettingChangePayload} |
13
+ *
14
+ * @param props - {@link OffCycleDeductionsSettingProps}
15
+ * @returns The rendered radio group.
16
+ * @public
17
+ */
2
18
  export declare function OffCycleDeductionsSetting({ dictionary, skipRegularDeductions, onEvent, }: OffCycleDeductionsSettingProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleDeductionsSetting.js","sources":["../../../../src/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCycleDeductionsSettingProps } from './types'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ntype DeductionsValue = 'include' | 'skip'\n\nexport function OffCycleDeductionsSetting({\n dictionary,\n skipRegularDeductions,\n onEvent,\n}: OffCycleDeductionsSettingProps) {\n useComponentDictionary('Payroll.OffCycleDeductionsSetting', dictionary)\n useI18n('Payroll.OffCycleDeductionsSetting')\n\n const { t } = useTranslation('Payroll.OffCycleDeductionsSetting')\n const { RadioGroup } = useComponentContext()\n\n const options = useMemo(\n () => [\n {\n value: 'include' as const,\n label: t('options.include.label'),\n },\n {\n value: 'skip' as const,\n label: t('options.skip.label'),\n },\n ],\n [t],\n )\n\n const handleChange = (value: string) => {\n onEvent(componentEvents.OFF_CYCLE_DEDUCTIONS_CHANGE, {\n skipRegularDeductions: value === 'skip',\n })\n }\n\n const selectedValue: DeductionsValue = skipRegularDeductions ? 'skip' : 'include'\n\n return (\n <RadioGroup\n label={t('title')}\n description={t('description')}\n options={options}\n value={selectedValue}\n onChange={handleChange}\n />\n )\n}\n"],"names":["OffCycleDeductionsSetting","dictionary","skipRegularDeductions","onEvent","useComponentDictionary","useI18n","t","useTranslation","RadioGroup","useComponentContext","options","useMemo","handleChange","value","componentEvents","selectedValue","jsx"],"mappings":";;;;;;AASO,SAASA,EAA0B;AAAA,EACxC,YAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,SAAAC;AACF,GAAmC;AACjC,EAAAC,EAAuB,qCAAqCH,CAAU,GACtEI,EAAQ,mCAAmC;AAE3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC,GAC1D,EAAE,YAAAC,EAAA,IAAeC,EAAA,GAEjBC,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,OAAOL,EAAE,uBAAuB;AAAA,MAAA;AAAA,MAElC;AAAA,QACE,OAAO;AAAA,QACP,OAAOA,EAAE,oBAAoB;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEF,CAACA,CAAC;AAAA,EAAA,GAGEM,IAAe,CAACC,MAAkB;AACtC,IAAAV,EAAQW,EAAgB,6BAA6B;AAAA,MACnD,uBAAuBD,MAAU;AAAA,IAAA,CAClC;AAAA,EACH,GAEME,IAAiCb,IAAwB,SAAS;AAExE,SACE,gBAAAc;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,OAAOF,EAAE,OAAO;AAAA,MAChB,aAAaA,EAAE,aAAa;AAAA,MAC5B,SAAAI;AAAA,MACA,OAAOK;AAAA,MACP,UAAUH;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
1
+ {"version":3,"file":"OffCycleDeductionsSetting.js","sources":["../../../../src/components/Payroll/OffCycleDeductionsSetting/OffCycleDeductionsSetting.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCycleDeductionsSettingProps } from './types'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ntype DeductionsValue = 'include' | 'skip'\n\n/**\n * Radio control for choosing whether an off-cycle payroll skips regular deductions and contributions.\n *\n * @remarks\n * Taxes are always included regardless of the selection. Selecting \"Skip\" blocks all regular\n * deductions and contributions except 401(k); selecting \"Include\" runs all regular deductions\n * and contributions normally.\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `offCycle/deductionsChange` | Fired when the deduction preference changes | {@link OffCycleDeductionsSettingChangePayload} |\n *\n * @param props - {@link OffCycleDeductionsSettingProps}\n * @returns The rendered radio group.\n * @public\n */\nexport function OffCycleDeductionsSetting({\n dictionary,\n skipRegularDeductions,\n onEvent,\n}: OffCycleDeductionsSettingProps) {\n useComponentDictionary('Payroll.OffCycleDeductionsSetting', dictionary)\n useI18n('Payroll.OffCycleDeductionsSetting')\n\n const { t } = useTranslation('Payroll.OffCycleDeductionsSetting')\n const { RadioGroup } = useComponentContext()\n\n const options = useMemo(\n () => [\n {\n value: 'include' as const,\n label: t('options.include.label'),\n },\n {\n value: 'skip' as const,\n label: t('options.skip.label'),\n },\n ],\n [t],\n )\n\n const handleChange = (value: string) => {\n onEvent(componentEvents.OFF_CYCLE_DEDUCTIONS_CHANGE, {\n skipRegularDeductions: value === 'skip',\n })\n }\n\n const selectedValue: DeductionsValue = skipRegularDeductions ? 'skip' : 'include'\n\n return (\n <RadioGroup\n label={t('title')}\n description={t('description')}\n options={options}\n value={selectedValue}\n onChange={handleChange}\n />\n )\n}\n"],"names":["OffCycleDeductionsSetting","dictionary","skipRegularDeductions","onEvent","useComponentDictionary","useI18n","t","useTranslation","RadioGroup","useComponentContext","options","useMemo","handleChange","value","componentEvents","selectedValue","jsx"],"mappings":";;;;;;AAyBO,SAASA,EAA0B;AAAA,EACxC,YAAAC;AAAA,EACA,uBAAAC;AAAA,EACA,SAAAC;AACF,GAAmC;AACjC,EAAAC,EAAuB,qCAAqCH,CAAU,GACtEI,EAAQ,mCAAmC;AAE3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC,GAC1D,EAAE,YAAAC,EAAA,IAAeC,EAAA,GAEjBC,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,OAAOL,EAAE,uBAAuB;AAAA,MAAA;AAAA,MAElC;AAAA,QACE,OAAO;AAAA,QACP,OAAOA,EAAE,oBAAoB;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEF,CAACA,CAAC;AAAA,EAAA,GAGEM,IAAe,CAACC,MAAkB;AACtC,IAAAV,EAAQW,EAAgB,6BAA6B;AAAA,MACnD,uBAAuBD,MAAU;AAAA,IAAA,CAClC;AAAA,EACH,GAEME,IAAiCb,IAAwB,SAAS;AAExE,SACE,gBAAAc;AAAA,IAACR;AAAA,IAAA;AAAA,MACC,OAAOF,EAAE,OAAO;AAAA,MAChB,aAAaA,EAAE,aAAa;AAAA,MAC5B,SAAAI;AAAA,MACA,OAAOK;AAAA,MACP,UAAUH;AAAA,IAAA;AAAA,EAAA;AAGhB;"}
@@ -1,10 +1,23 @@
1
1
  import { CommonComponentInterface } from '../../Base/Base';
2
2
  import { OnEventType } from '../../Base/useBase';
3
3
  import { EventType } from '../../../shared/constants';
4
+ /**
5
+ * Props for {@link OffCycleDeductionsSetting}.
6
+ *
7
+ * @public
8
+ */
4
9
  export interface OffCycleDeductionsSettingProps extends CommonComponentInterface<'Payroll.OffCycleDeductionsSetting'> {
10
+ /** Whether regular deductions are currently being skipped. */
5
11
  skipRegularDeductions: boolean;
12
+ /** Event handler invoked when the deduction preference changes. See the events table on {@link OffCycleDeductionsSetting}. */
6
13
  onEvent: OnEventType<EventType, unknown>;
7
14
  }
15
+ /**
16
+ * Payload emitted by {@link OffCycleDeductionsSetting} on the `offCycle/deductionsChange` event.
17
+ *
18
+ * @public
19
+ */
8
20
  export interface OffCycleDeductionsSettingChangePayload {
21
+ /** Whether the user selected to skip regular deductions. */
9
22
  skipRegularDeductions: boolean;
10
23
  }
@@ -1 +1,2 @@
1
+ /** @internal */
1
2
  export declare function OffCyclePayPeriodDateFormPresentation(): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"OffCyclePayPeriodDateFormPresentation.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport styles from './OffCyclePayPeriodDateFormPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { CheckboxField, DatePickerField } from '@/components/Common'\n\nexport function OffCyclePayPeriodDateFormPresentation() {\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n\n return (\n <div className={styles.root}>\n <div className={styles.dateFields}>\n <DatePickerField name=\"startDate\" label={t('startDateLabel')} isRequired />\n <DatePickerField name=\"endDate\" label={t('endDateLabel')} isRequired />\n </div>\n\n <div className={styles.checkDateField}>\n <DatePickerField name=\"checkDate\" label={t('checkDateLabel')} isRequired />\n </div>\n\n <CheckboxField\n name=\"isCheckOnly\"\n label={t('checkOnlyLabel')}\n description={t('checkOnlyDescription')}\n />\n </div>\n )\n}\n"],"names":["OffCyclePayPeriodDateFormPresentation","useI18n","t","useTranslation","jsxs","styles","jsx","DatePickerField","CheckboxField"],"mappings":";;;;;;;;AAKO,SAASA,IAAwC;AACtD,EAAAC,EAAQ,mCAAmC;AAC3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC;AAEhE,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAO,MACrB,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,YACrB,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAA,EAAgB,MAAK,aAAY,OAAOL,EAAE,gBAAgB,GAAG,YAAU,IAAC;AAAA,MACzE,gBAAAI,EAACC,KAAgB,MAAK,WAAU,OAAOL,EAAE,cAAc,GAAG,YAAU,GAAA,CAAC;AAAA,IAAA,GACvE;AAAA,IAEA,gBAAAI,EAAC,OAAA,EAAI,WAAWD,EAAO,gBACrB,UAAA,gBAAAC,EAACC,GAAA,EAAgB,MAAK,aAAY,OAAOL,EAAE,gBAAgB,GAAG,YAAU,IAAC,GAC3E;AAAA,IAEA,gBAAAI;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAON,EAAE,gBAAgB;AAAA,QACzB,aAAaA,EAAE,sBAAsB;AAAA,MAAA;AAAA,IAAA;AAAA,EACvC,GACF;AAEJ;"}
1
+ {"version":3,"file":"OffCyclePayPeriodDateFormPresentation.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport styles from './OffCyclePayPeriodDateFormPresentation.module.scss'\nimport { useI18n } from '@/i18n'\nimport { CheckboxField, DatePickerField } from '@/components/Common'\n\n/** @internal */\nexport function OffCyclePayPeriodDateFormPresentation() {\n useI18n('Payroll.OffCyclePayPeriodDateForm')\n const { t } = useTranslation('Payroll.OffCyclePayPeriodDateForm')\n\n return (\n <div className={styles.root}>\n <div className={styles.dateFields}>\n <DatePickerField name=\"startDate\" label={t('startDateLabel')} isRequired />\n <DatePickerField name=\"endDate\" label={t('endDateLabel')} isRequired />\n </div>\n\n <div className={styles.checkDateField}>\n <DatePickerField name=\"checkDate\" label={t('checkDateLabel')} isRequired />\n </div>\n\n <CheckboxField\n name=\"isCheckOnly\"\n label={t('checkOnlyLabel')}\n description={t('checkOnlyDescription')}\n />\n </div>\n )\n}\n"],"names":["OffCyclePayPeriodDateFormPresentation","useI18n","t","useTranslation","jsxs","styles","jsx","DatePickerField","CheckboxField"],"mappings":";;;;;;;;AAMO,SAASA,IAAwC;AACtD,EAAAC,EAAQ,mCAAmC;AAC3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,mCAAmC;AAEhE,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAO,MACrB,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,YACrB,UAAA;AAAA,MAAA,gBAAAC,EAACC,GAAA,EAAgB,MAAK,aAAY,OAAOL,EAAE,gBAAgB,GAAG,YAAU,IAAC;AAAA,MACzE,gBAAAI,EAACC,KAAgB,MAAK,WAAU,OAAOL,EAAE,cAAc,GAAG,YAAU,GAAA,CAAC;AAAA,IAAA,GACvE;AAAA,IAEA,gBAAAI,EAAC,OAAA,EAAI,WAAWD,EAAO,gBACrB,UAAA,gBAAAC,EAACC,GAAA,EAAgB,MAAK,aAAY,OAAOL,EAAE,gBAAgB,GAAG,YAAU,IAAC,GAC3E;AAAA,IAEA,gBAAAI;AAAA,MAACE;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAON,EAAE,gBAAgB;AAAA,QACzB,aAAaA,EAAE,sBAAsB;AAAA,MAAA;AAAA,IAAA;AAAA,EACvC,GACF;AAEJ;"}
@@ -1,15 +1,32 @@
1
1
  import { z } from 'zod';
2
+ /**
3
+ * Off-cycle payroll reason that drives pay-period date validation rules.
4
+ *
5
+ * @remarks
6
+ * `'bonus'` is used for paying a bonus, gift, or commission. `'correction'` is used for running a correction payment and constrains the start date to today or earlier.
7
+ *
8
+ * @public
9
+ */
2
10
  export type OffCyclePayrollDateType = 'bonus' | 'correction';
11
+ /**
12
+ * Pay-period date selections collected for an off-cycle payroll.
13
+ *
14
+ * @public
15
+ */
3
16
  export interface OffCyclePayPeriodDateFormData {
17
+ /** When true, all employees are paid by check rather than direct deposit; start and end dates become optional and the check date may be today or any future date. */
4
18
  isCheckOnly: boolean;
19
+ /** Beginning of the pay period; required unless `isCheckOnly` is true, and cannot be in the future when the payroll type is `'correction'`. */
5
20
  startDate: Date | null;
21
+ /** End of the pay period; required unless `isCheckOnly` is true, and must be on or after `startDate`. */
6
22
  endDate: Date | null;
23
+ /** Date employees will be paid; must be at least the company's ACH lead time of business days from today for direct deposit, unless `isCheckOnly` is true. */
7
24
  checkDate: Date | null;
8
25
  }
26
+ /** @internal */
9
27
  export declare const createOffCyclePayPeriodDateFormSchema: (t: (key: string, options?: Record<string, unknown>) => string, payrollType: OffCyclePayrollDateType, minCheckDate: Date, paymentSpeedDays?: number) => z.ZodObject<{
10
28
  isCheckOnly: z.ZodBoolean;
11
29
  startDate: z.ZodNullable<z.ZodDate>;
12
30
  endDate: z.ZodNullable<z.ZodDate>;
13
31
  checkDate: z.ZodNullable<z.ZodDate>;
14
32
  }, z.core.$strip>;
15
- export type OffCyclePayPeriodDateFormSchema = ReturnType<typeof createOffCyclePayPeriodDateFormSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"OffCyclePayPeriodDateFormTypes.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport type OffCyclePayrollDateType = 'bonus' | 'correction'\n\nexport interface OffCyclePayPeriodDateFormData {\n isCheckOnly: boolean\n startDate: Date | null\n endDate: Date | null\n checkDate: Date | null\n}\n\nexport const createOffCyclePayPeriodDateFormSchema = (\n t: (key: string, options?: Record<string, unknown>) => string,\n payrollType: OffCyclePayrollDateType,\n minCheckDate: Date,\n paymentSpeedDays?: number,\n) => {\n return z\n .object({\n isCheckOnly: z.boolean(),\n startDate: z.date().nullable(),\n endDate: z.date().nullable(),\n checkDate: z.date().nullable(),\n })\n .superRefine((data, ctx) => {\n if (!data.startDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['startDate'],\n message: t('validations.startDateRequired'),\n })\n }\n\n if (!data.endDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['endDate'],\n message: t('validations.endDateRequired'),\n })\n }\n\n if (data.startDate && data.endDate && data.endDate < data.startDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['endDate'],\n message: t('validations.endDateAfterStart'),\n })\n }\n\n if (payrollType === 'correction' && data.startDate) {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n if (data.startDate > today) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['startDate'],\n message: t('validations.startDateNotFuture'),\n })\n }\n }\n\n if (!data.checkDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['checkDate'],\n message: t('validations.checkDateRequired'),\n })\n } else {\n const checkDateNormalized = new Date(data.checkDate)\n checkDateNormalized.setHours(0, 0, 0, 0)\n const minCheckDateNormalized = new Date(minCheckDate)\n minCheckDateNormalized.setHours(0, 0, 0, 0)\n\n if (checkDateNormalized < minCheckDateNormalized) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['checkDate'],\n message: data.isCheckOnly\n ? t('validations.checkDateNotPast')\n : t('validations.checkDateAchLeadTime', { count: paymentSpeedDays ?? 2 }),\n })\n }\n }\n })\n}\n\nexport type OffCyclePayPeriodDateFormSchema = ReturnType<\n typeof createOffCyclePayPeriodDateFormSchema\n>\n"],"names":["createOffCyclePayPeriodDateFormSchema","t","payrollType","minCheckDate","paymentSpeedDays","z","data","ctx","today","checkDateNormalized","minCheckDateNormalized"],"mappings":";AAWO,MAAMA,IAAwC,CACnDC,GACAC,GACAC,GACAC,MAEOC,EACJ,OAAO;AAAA,EACN,aAAaA,EAAE,QAAA;AAAA,EACf,WAAWA,EAAE,KAAA,EAAO,SAAA;AAAA,EACpB,SAASA,EAAE,KAAA,EAAO,SAAA;AAAA,EAClB,WAAWA,EAAE,KAAA,EAAO,SAAA;AAAS,CAC9B,EACA,YAAY,CAACC,GAAMC,MAAQ;AAyB1B,MAxBKD,EAAK,aACRC,EAAI,SAAS;AAAA,IACX,MAAMF,EAAE,aAAa;AAAA,IACrB,MAAM,CAAC,WAAW;AAAA,IAClB,SAASJ,EAAE,+BAA+B;AAAA,EAAA,CAC3C,GAGEK,EAAK,WACRC,EAAI,SAAS;AAAA,IACX,MAAMF,EAAE,aAAa;AAAA,IACrB,MAAM,CAAC,SAAS;AAAA,IAChB,SAASJ,EAAE,6BAA6B;AAAA,EAAA,CACzC,GAGCK,EAAK,aAAaA,EAAK,WAAWA,EAAK,UAAUA,EAAK,aACxDC,EAAI,SAAS;AAAA,IACX,MAAMF,EAAE,aAAa;AAAA,IACrB,MAAM,CAAC,SAAS;AAAA,IAChB,SAASJ,EAAE,+BAA+B;AAAA,EAAA,CAC3C,GAGCC,MAAgB,gBAAgBI,EAAK,WAAW;AAClD,UAAME,wBAAY,KAAA;AAClB,IAAAA,EAAM,SAAS,GAAG,GAAG,GAAG,CAAC,GACrBF,EAAK,YAAYE,KACnBD,EAAI,SAAS;AAAA,MACX,MAAMF,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,WAAW;AAAA,MAClB,SAASJ,EAAE,gCAAgC;AAAA,IAAA,CAC5C;AAAA,EAEL;AAEA,MAAI,CAACK,EAAK;AACR,IAAAC,EAAI,SAAS;AAAA,MACX,MAAMF,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,WAAW;AAAA,MAClB,SAASJ,EAAE,+BAA+B;AAAA,IAAA,CAC3C;AAAA,OACI;AACL,UAAMQ,IAAsB,IAAI,KAAKH,EAAK,SAAS;AACnD,IAAAG,EAAoB,SAAS,GAAG,GAAG,GAAG,CAAC;AACvC,UAAMC,IAAyB,IAAI,KAAKP,CAAY;AACpD,IAAAO,EAAuB,SAAS,GAAG,GAAG,GAAG,CAAC,GAEtCD,IAAsBC,KACxBH,EAAI,SAAS;AAAA,MACX,MAAMF,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,WAAW;AAAA,MAClB,SAASC,EAAK,cACVL,EAAE,8BAA8B,IAChCA,EAAE,oCAAoC,EAAE,OAAOG,KAAoB,EAAA,CAAG;AAAA,IAAA,CAC3E;AAAA,EAEL;AACF,CAAC;"}
1
+ {"version":3,"file":"OffCyclePayPeriodDateFormTypes.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormTypes.ts"],"sourcesContent":["import { z } from 'zod'\n\n/**\n * Off-cycle payroll reason that drives pay-period date validation rules.\n *\n * @remarks\n * `'bonus'` is used for paying a bonus, gift, or commission. `'correction'` is used for running a correction payment and constrains the start date to today or earlier.\n *\n * @public\n */\nexport type OffCyclePayrollDateType = 'bonus' | 'correction'\n\n/**\n * Pay-period date selections collected for an off-cycle payroll.\n *\n * @public\n */\nexport interface OffCyclePayPeriodDateFormData {\n /** When true, all employees are paid by check rather than direct deposit; start and end dates become optional and the check date may be today or any future date. */\n isCheckOnly: boolean\n /** Beginning of the pay period; required unless `isCheckOnly` is true, and cannot be in the future when the payroll type is `'correction'`. */\n startDate: Date | null\n /** End of the pay period; required unless `isCheckOnly` is true, and must be on or after `startDate`. */\n endDate: Date | null\n /** Date employees will be paid; must be at least the company's ACH lead time of business days from today for direct deposit, unless `isCheckOnly` is true. */\n checkDate: Date | null\n}\n\n/** @internal */\nexport const createOffCyclePayPeriodDateFormSchema = (\n t: (key: string, options?: Record<string, unknown>) => string,\n payrollType: OffCyclePayrollDateType,\n minCheckDate: Date,\n paymentSpeedDays?: number,\n) => {\n return z\n .object({\n isCheckOnly: z.boolean(),\n startDate: z.date().nullable(),\n endDate: z.date().nullable(),\n checkDate: z.date().nullable(),\n })\n .superRefine((data, ctx) => {\n if (!data.startDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['startDate'],\n message: t('validations.startDateRequired'),\n })\n }\n\n if (!data.endDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['endDate'],\n message: t('validations.endDateRequired'),\n })\n }\n\n if (data.startDate && data.endDate && data.endDate < data.startDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['endDate'],\n message: t('validations.endDateAfterStart'),\n })\n }\n\n if (payrollType === 'correction' && data.startDate) {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n if (data.startDate > today) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['startDate'],\n message: t('validations.startDateNotFuture'),\n })\n }\n }\n\n if (!data.checkDate) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['checkDate'],\n message: t('validations.checkDateRequired'),\n })\n } else {\n const checkDateNormalized = new Date(data.checkDate)\n checkDateNormalized.setHours(0, 0, 0, 0)\n const minCheckDateNormalized = new Date(minCheckDate)\n minCheckDateNormalized.setHours(0, 0, 0, 0)\n\n if (checkDateNormalized < minCheckDateNormalized) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['checkDate'],\n message: data.isCheckOnly\n ? t('validations.checkDateNotPast')\n : t('validations.checkDateAchLeadTime', { count: paymentSpeedDays ?? 2 }),\n })\n }\n }\n })\n}\n"],"names":["createOffCyclePayPeriodDateFormSchema","t","payrollType","minCheckDate","paymentSpeedDays","z","data","ctx","today","checkDateNormalized","minCheckDateNormalized"],"mappings":";AA6BO,MAAMA,IAAwC,CACnDC,GACAC,GACAC,GACAC,MAEOC,EACJ,OAAO;AAAA,EACN,aAAaA,EAAE,QAAA;AAAA,EACf,WAAWA,EAAE,KAAA,EAAO,SAAA;AAAA,EACpB,SAASA,EAAE,KAAA,EAAO,SAAA;AAAA,EAClB,WAAWA,EAAE,KAAA,EAAO,SAAA;AAAS,CAC9B,EACA,YAAY,CAACC,GAAMC,MAAQ;AAyB1B,MAxBKD,EAAK,aACRC,EAAI,SAAS;AAAA,IACX,MAAMF,EAAE,aAAa;AAAA,IACrB,MAAM,CAAC,WAAW;AAAA,IAClB,SAASJ,EAAE,+BAA+B;AAAA,EAAA,CAC3C,GAGEK,EAAK,WACRC,EAAI,SAAS;AAAA,IACX,MAAMF,EAAE,aAAa;AAAA,IACrB,MAAM,CAAC,SAAS;AAAA,IAChB,SAASJ,EAAE,6BAA6B;AAAA,EAAA,CACzC,GAGCK,EAAK,aAAaA,EAAK,WAAWA,EAAK,UAAUA,EAAK,aACxDC,EAAI,SAAS;AAAA,IACX,MAAMF,EAAE,aAAa;AAAA,IACrB,MAAM,CAAC,SAAS;AAAA,IAChB,SAASJ,EAAE,+BAA+B;AAAA,EAAA,CAC3C,GAGCC,MAAgB,gBAAgBI,EAAK,WAAW;AAClD,UAAME,wBAAY,KAAA;AAClB,IAAAA,EAAM,SAAS,GAAG,GAAG,GAAG,CAAC,GACrBF,EAAK,YAAYE,KACnBD,EAAI,SAAS;AAAA,MACX,MAAMF,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,WAAW;AAAA,MAClB,SAASJ,EAAE,gCAAgC;AAAA,IAAA,CAC5C;AAAA,EAEL;AAEA,MAAI,CAACK,EAAK;AACR,IAAAC,EAAI,SAAS;AAAA,MACX,MAAMF,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,WAAW;AAAA,MAClB,SAASJ,EAAE,+BAA+B;AAAA,IAAA,CAC3C;AAAA,OACI;AACL,UAAMQ,IAAsB,IAAI,KAAKH,EAAK,SAAS;AACnD,IAAAG,EAAoB,SAAS,GAAG,GAAG,GAAG,CAAC;AACvC,UAAMC,IAAyB,IAAI,KAAKP,CAAY;AACpD,IAAAO,EAAuB,SAAS,GAAG,GAAG,GAAG,CAAC,GAEtCD,IAAsBC,KACxBH,EAAI,SAAS;AAAA,MACX,MAAMF,EAAE,aAAa;AAAA,MACrB,MAAM,CAAC,WAAW;AAAA,MAClB,SAASC,EAAK,cACVL,EAAE,8BAA8B,IAChCA,EAAE,oCAAoC,EAAE,OAAOG,KAAoB,EAAA,CAAG;AAAA,IAAA,CAC3E;AAAA,EAEL;AACF,CAAC;"}
@@ -1,4 +1,4 @@
1
- export declare const DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS = 2;
1
+ /** @internal */
2
2
  export declare function useOffCyclePayPeriodDateValidation(paymentSpeedDays?: number): {
3
3
  today: Date;
4
4
  minCheckDate: Date;
@@ -13,7 +13,6 @@ function a(o = i) {
13
13
  };
14
14
  }
15
15
  export {
16
- i as DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS,
17
16
  a as useOffCyclePayPeriodDateValidation
18
17
  };
19
18
  //# sourceMappingURL=useOffCyclePayPeriodDateValidation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useOffCyclePayPeriodDateValidation.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { addBusinessDays } from '@/helpers/dateFormatting'\n\nexport const DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS = 2\n\nexport function useOffCyclePayPeriodDateValidation(\n paymentSpeedDays = DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS,\n) {\n const today = useMemo(() => {\n const now = new Date()\n now.setHours(0, 0, 0, 0)\n return now\n }, [])\n\n const minCheckDate = useMemo(() => {\n return addBusinessDays(today, paymentSpeedDays)\n }, [today, paymentSpeedDays])\n\n return {\n today,\n minCheckDate,\n paymentSpeedDays,\n }\n}\n"],"names":["DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS","useOffCyclePayPeriodDateValidation","paymentSpeedDays","today","useMemo","now","minCheckDate","addBusinessDays"],"mappings":";;AAGO,MAAMA,IAAsC;AAE5C,SAASC,EACdC,IAAmBF,GACnB;AACA,QAAMG,IAAQC,EAAQ,MAAM;AAC1B,UAAMC,wBAAU,KAAA;AAChB,WAAAA,EAAI,SAAS,GAAG,GAAG,GAAG,CAAC,GAChBA;AAAA,EACT,GAAG,CAAA,CAAE,GAECC,IAAeF,EAAQ,MACpBG,EAAgBJ,GAAOD,CAAgB,GAC7C,CAACC,GAAOD,CAAgB,CAAC;AAE5B,SAAO;AAAA,IACL,OAAAC;AAAA,IACA,cAAAG;AAAA,IACA,kBAAAJ;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useOffCyclePayPeriodDateValidation.js","sources":["../../../../src/components/Payroll/OffCyclePayPeriodDateForm/useOffCyclePayPeriodDateValidation.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { addBusinessDays } from '@/helpers/dateFormatting'\n\nconst DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS = 2\n\n/** @internal */\nexport function useOffCyclePayPeriodDateValidation(\n paymentSpeedDays = DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS,\n) {\n const today = useMemo(() => {\n const now = new Date()\n now.setHours(0, 0, 0, 0)\n return now\n }, [])\n\n const minCheckDate = useMemo(() => {\n return addBusinessDays(today, paymentSpeedDays)\n }, [today, paymentSpeedDays])\n\n return {\n today,\n minCheckDate,\n paymentSpeedDays,\n }\n}\n"],"names":["DEFAULT_ACH_LEAD_TIME_BUSINESS_DAYS","useOffCyclePayPeriodDateValidation","paymentSpeedDays","today","useMemo","now","minCheckDate","addBusinessDays"],"mappings":";;AAGA,MAAMA,IAAsC;AAGrC,SAASC,EACdC,IAAmBF,GACnB;AACA,QAAMG,IAAQC,EAAQ,MAAM;AAC1B,UAAMC,wBAAU,KAAA;AAChB,WAAAA,EAAI,SAAS,GAAG,GAAG,GAAG,CAAC,GAChBA;AAAA,EACT,GAAG,CAAA,CAAE,GAECC,IAAeF,EAAQ,MACpBG,EAAgBJ,GAAOD,CAAgB,GAC7C,CAACC,GAAOD,CAAgB,CAAC;AAE5B,SAAO;AAAA,IACL,OAAAC;AAAA,IACA,cAAAG;AAAA,IACA,kBAAAJ;AAAA,EAAA;AAEJ;"}
@@ -1,2 +1,17 @@
1
1
  import { OffCycleReasonSelectionProps } from './types';
2
+ /**
3
+ * Presents the reason selection UI for choosing between a bonus and correction off-cycle payment.
4
+ *
5
+ * @remarks
6
+ * Selecting a reason emits the recommended deduction and withholding defaults alongside the chosen value
7
+ * so a surrounding form can update its state to match.
8
+ *
9
+ * | Event | Description | Data |
10
+ * | ----- | ----------- | ---- |
11
+ * | `offCycle/selectReason` | Fired when the user selects a reason | {@link SelectReasonPayload} |
12
+ *
13
+ * @param props - Component props including `companyId` and standard `onEvent`/`dictionary` handlers.
14
+ * @returns The rendered reason selection UI.
15
+ * @public
16
+ */
2
17
  export declare function OffCycleReasonSelection(props: OffCycleReasonSelectionProps): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleReasonSelection.js","sources":["../../../../src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { OffCycleReasonSelectionPresentation } from './OffCycleReasonSelectionPresentation'\nimport {\n OFF_CYCLE_REASON_DEFAULTS,\n type OffCycleReason,\n type OffCycleReasonSelectionProps,\n} from './types'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\n\nexport function OffCycleReasonSelection(props: OffCycleReasonSelectionProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary }: OffCycleReasonSelectionProps) {\n useComponentDictionary('Payroll.OffCycleReasonSelection', dictionary)\n useI18n('Payroll.OffCycleReasonSelection')\n\n const { onEvent } = useBase()\n const methods = useForm<{ reason: OffCycleReason | '' }>({\n defaultValues: { reason: '' },\n })\n\n const handleReasonChange = useCallback(\n (reason: OffCycleReason) => {\n const defaults = OFF_CYCLE_REASON_DEFAULTS[reason]\n onEvent(componentEvents.OFF_CYCLE_SELECT_REASON, {\n reason,\n defaults,\n })\n },\n [onEvent],\n )\n\n return (\n <FormProvider {...methods}>\n <OffCycleReasonSelectionPresentation name=\"reason\" onChange={handleReasonChange} />\n </FormProvider>\n )\n}\n"],"names":["OffCycleReasonSelection","props","jsx","BaseComponent","Root","dictionary","useComponentDictionary","useI18n","onEvent","useBase","methods","useForm","handleReasonChange","useCallback","reason","defaults","OFF_CYCLE_REASON_DEFAULTS","componentEvents","FormProvider","OffCycleReasonSelectionPresentation"],"mappings":";;;;;;;;;AAaO,SAASA,EAAwBC,GAAqC;AAC3E,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,KAA4C;AAC1D,EAAAC,EAAuB,mCAAmCD,CAAU,GACpEE,EAAQ,iCAAiC;AAEzC,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA,GACdC,IAAUC,EAAyC;AAAA,IACvD,eAAe,EAAE,QAAQ,GAAA;AAAA,EAAG,CAC7B,GAEKC,IAAqBC;AAAA,IACzB,CAACC,MAA2B;AAC1B,YAAMC,IAAWC,EAA0BF,CAAM;AACjD,MAAAN,EAAQS,EAAgB,yBAAyB;AAAA,QAC/C,QAAAH;AAAA,QACA,UAAAC;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACP,CAAO;AAAA,EAAA;AAGV,SACE,gBAAAN,EAACgB,GAAA,EAAc,GAAGR,GAChB,UAAA,gBAAAR,EAACiB,KAAoC,MAAK,UAAS,UAAUP,EAAA,CAAoB,EAAA,CACnF;AAEJ;"}
1
+ {"version":3,"file":"OffCycleReasonSelection.js","sources":["../../../../src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelection.tsx"],"sourcesContent":["import { useCallback } from 'react'\nimport { FormProvider, useForm } from 'react-hook-form'\nimport { OffCycleReasonSelectionPresentation } from './OffCycleReasonSelectionPresentation'\nimport {\n OFF_CYCLE_REASON_DEFAULTS,\n type OffCycleReason,\n type OffCycleReasonSelectionProps,\n} from './types'\nimport { BaseComponent } from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\n\n/**\n * Presents the reason selection UI for choosing between a bonus and correction off-cycle payment.\n *\n * @remarks\n * Selecting a reason emits the recommended deduction and withholding defaults alongside the chosen value\n * so a surrounding form can update its state to match.\n *\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `offCycle/selectReason` | Fired when the user selects a reason | {@link SelectReasonPayload} |\n *\n * @param props - Component props including `companyId` and standard `onEvent`/`dictionary` handlers.\n * @returns The rendered reason selection UI.\n * @public\n */\nexport function OffCycleReasonSelection(props: OffCycleReasonSelectionProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props} />\n </BaseComponent>\n )\n}\n\nfunction Root({ dictionary }: OffCycleReasonSelectionProps) {\n useComponentDictionary('Payroll.OffCycleReasonSelection', dictionary)\n useI18n('Payroll.OffCycleReasonSelection')\n\n const { onEvent } = useBase()\n const methods = useForm<{ reason: OffCycleReason | '' }>({\n defaultValues: { reason: '' },\n })\n\n const handleReasonChange = useCallback(\n (reason: OffCycleReason) => {\n const defaults = OFF_CYCLE_REASON_DEFAULTS[reason]\n onEvent(componentEvents.OFF_CYCLE_SELECT_REASON, {\n reason,\n defaults,\n })\n },\n [onEvent],\n )\n\n return (\n <FormProvider {...methods}>\n <OffCycleReasonSelectionPresentation name=\"reason\" onChange={handleReasonChange} />\n </FormProvider>\n )\n}\n"],"names":["OffCycleReasonSelection","props","jsx","BaseComponent","Root","dictionary","useComponentDictionary","useI18n","onEvent","useBase","methods","useForm","handleReasonChange","useCallback","reason","defaults","OFF_CYCLE_REASON_DEFAULTS","componentEvents","FormProvider","OffCycleReasonSelectionPresentation"],"mappings":";;;;;;;;;AA4BO,SAASA,EAAwBC,GAAqC;AAC3E,SACE,gBAAAC,EAACC,KAAe,GAAGF,GACjB,4BAACG,GAAA,EAAM,GAAGH,GAAO,EAAA,CACnB;AAEJ;AAEA,SAASG,EAAK,EAAE,YAAAC,KAA4C;AAC1D,EAAAC,EAAuB,mCAAmCD,CAAU,GACpEE,EAAQ,iCAAiC;AAEzC,QAAM,EAAE,SAAAC,EAAA,IAAYC,EAAA,GACdC,IAAUC,EAAyC;AAAA,IACvD,eAAe,EAAE,QAAQ,GAAA;AAAA,EAAG,CAC7B,GAEKC,IAAqBC;AAAA,IACzB,CAACC,MAA2B;AAC1B,YAAMC,IAAWC,EAA0BF,CAAM;AACjD,MAAAN,EAAQS,EAAgB,yBAAyB;AAAA,QAC/C,QAAAH;AAAA,QACA,UAAAC;AAAA,MAAA,CACD;AAAA,IACH;AAAA,IACA,CAACP,CAAO;AAAA,EAAA;AAGV,SACE,gBAAAN,EAACgB,GAAA,EAAc,GAAGR,GAChB,UAAA,gBAAAR,EAACiB,KAAoC,MAAK,UAAS,UAAUP,EAAA,CAAoB,EAAA,CACnF;AAEJ;"}
@@ -3,5 +3,6 @@ interface OffCycleReasonSelectionPresentationProps {
3
3
  name: string;
4
4
  onChange?: (value: OffCycleReason) => void;
5
5
  }
6
+ /** @internal */
6
7
  export declare function OffCycleReasonSelectionPresentation({ name, onChange, }: OffCycleReasonSelectionPresentationProps): import("react").JSX.Element;
7
8
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"OffCycleReasonSelectionPresentation.js","sources":["../../../../src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCycleReason } from './types'\nimport { RadioGroupField } from '@/components/Common'\n\ninterface OffCycleReasonSelectionPresentationProps {\n name: string\n onChange?: (value: OffCycleReason) => void\n}\n\nexport function OffCycleReasonSelectionPresentation({\n name,\n onChange,\n}: OffCycleReasonSelectionPresentationProps) {\n const { t } = useTranslation('Payroll.OffCycleReasonSelection')\n\n const options = useMemo(\n () => [\n {\n value: 'correction' as OffCycleReason,\n label: t('options.correction.label'),\n description: t('options.correction.description'),\n },\n {\n value: 'bonus' as OffCycleReason,\n label: t('options.bonus.label'),\n description: t('options.bonus.description'),\n },\n ],\n [t],\n )\n\n return (\n <RadioGroupField<OffCycleReason>\n name={name}\n label={t('title')}\n options={options}\n isRequired\n onChange={onChange}\n />\n )\n}\n"],"names":["OffCycleReasonSelectionPresentation","name","onChange","t","useTranslation","options","useMemo","jsx","RadioGroupField"],"mappings":";;;;;AAUO,SAASA,EAAoC;AAAA,EAClD,MAAAC;AAAA,EACA,UAAAC;AACF,GAA6C;AAC3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,iCAAiC,GAExDC,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,OAAOH,EAAE,0BAA0B;AAAA,QACnC,aAAaA,EAAE,gCAAgC;AAAA,MAAA;AAAA,MAEjD;AAAA,QACE,OAAO;AAAA,QACP,OAAOA,EAAE,qBAAqB;AAAA,QAC9B,aAAaA,EAAE,2BAA2B;AAAA,MAAA;AAAA,IAC5C;AAAA,IAEF,CAACA,CAAC;AAAA,EAAA;AAGJ,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAP;AAAA,MACA,OAAOE,EAAE,OAAO;AAAA,MAChB,SAAAE;AAAA,MACA,YAAU;AAAA,MACV,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"OffCycleReasonSelectionPresentation.js","sources":["../../../../src/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { OffCycleReason } from './types'\nimport { RadioGroupField } from '@/components/Common'\n\ninterface OffCycleReasonSelectionPresentationProps {\n name: string\n onChange?: (value: OffCycleReason) => void\n}\n\n/** @internal */\nexport function OffCycleReasonSelectionPresentation({\n name,\n onChange,\n}: OffCycleReasonSelectionPresentationProps) {\n const { t } = useTranslation('Payroll.OffCycleReasonSelection')\n\n const options = useMemo(\n () => [\n {\n value: 'correction' as OffCycleReason,\n label: t('options.correction.label'),\n description: t('options.correction.description'),\n },\n {\n value: 'bonus' as OffCycleReason,\n label: t('options.bonus.label'),\n description: t('options.bonus.description'),\n },\n ],\n [t],\n )\n\n return (\n <RadioGroupField<OffCycleReason>\n name={name}\n label={t('title')}\n options={options}\n isRequired\n onChange={onChange}\n />\n )\n}\n"],"names":["OffCycleReasonSelectionPresentation","name","onChange","t","useTranslation","options","useMemo","jsx","RadioGroupField"],"mappings":";;;;;AAWO,SAASA,EAAoC;AAAA,EAClD,MAAAC;AAAA,EACA,UAAAC;AACF,GAA6C;AAC3C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,iCAAiC,GAExDC,IAAUC;AAAA,IACd,MAAM;AAAA,MACJ;AAAA,QACE,OAAO;AAAA,QACP,OAAOH,EAAE,0BAA0B;AAAA,QACnC,aAAaA,EAAE,gCAAgC;AAAA,MAAA;AAAA,MAEjD;AAAA,QACE,OAAO;AAAA,QACP,OAAOA,EAAE,qBAAqB;AAAA,QAC9B,aAAaA,EAAE,2BAA2B;AAAA,MAAA;AAAA,IAC5C;AAAA,IAEF,CAACA,CAAC;AAAA,EAAA;AAGJ,SACE,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAAP;AAAA,MACA,OAAOE,EAAE,OAAO;AAAA,MAChB,SAAAE;AAAA,MACA,YAAU;AAAA,MACV,UAAAH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,15 +1,58 @@
1
1
  import { BaseComponentInterface } from '../../Base/Base';
2
+ /**
3
+ * Reason for running an off-cycle payroll.
4
+ *
5
+ * `bonus` covers bonuses, gifts, or commissions; `correction` covers any payroll run outside the regular pay schedule.
6
+ *
7
+ * @public
8
+ */
2
9
  export type OffCycleReason = 'bonus' | 'correction';
10
+ /**
11
+ * Tax withholding rate applied to an off-cycle payroll.
12
+ *
13
+ * `supplemental` applies the IRS supplemental withholding rate; `regular` applies the employee's regular withholding rate.
14
+ *
15
+ * @public
16
+ */
3
17
  export type WithholdingType = 'supplemental' | 'regular';
18
+ /**
19
+ * Recommended deduction and withholding defaults paired with an off-cycle reason.
20
+ *
21
+ * @public
22
+ */
4
23
  export interface OffCycleReasonDefaults {
24
+ /** Whether regular deductions and contributions should be skipped for this payroll. */
5
25
  skipDeductions: boolean;
26
+ /** Withholding rate to apply for this payroll. */
6
27
  withholdingType: WithholdingType;
7
28
  }
29
+ /**
30
+ * Default deduction and withholding settings keyed by off-cycle reason.
31
+ *
32
+ * @remarks
33
+ * `bonus` defaults to skipping regular deductions and using the supplemental withholding rate.
34
+ * `correction` defaults to including regular deductions and using the regular withholding rate.
35
+ *
36
+ * @public
37
+ */
8
38
  export declare const OFF_CYCLE_REASON_DEFAULTS: Record<OffCycleReason, OffCycleReasonDefaults>;
39
+ /**
40
+ * Payload emitted with the `offCycle/selectReason` event when a reason is chosen.
41
+ *
42
+ * @public
43
+ */
9
44
  export interface SelectReasonPayload {
45
+ /** The reason the user selected. */
10
46
  reason: OffCycleReason;
47
+ /** Recommended deduction and withholding defaults for the selected reason. */
11
48
  defaults: OffCycleReasonDefaults;
12
49
  }
50
+ /**
51
+ * Props for the {@link OffCycleReasonSelection} component.
52
+ *
53
+ * @public
54
+ */
13
55
  export interface OffCycleReasonSelectionProps extends BaseComponentInterface<'Payroll.OffCycleReasonSelection'> {
56
+ /** The associated company identifier. */
14
57
  companyId: string;
15
58
  }