@gusto/embedded-react-sdk 0.52.2 → 0.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/components/Common/DateRangeFilter/DateRangeFilter.d.ts +1 -2
  3. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +42 -43
  4. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
  5. package/dist/components/Common/Fields/PercentageField/PercentageField.js +44 -42
  6. package/dist/components/Common/Fields/PercentageField/PercentageField.js.map +1 -1
  7. package/dist/components/Common/UI/Box/Box.js +6 -6
  8. package/dist/components/Common/UI/Box/Box.js.map +1 -1
  9. package/dist/components/Common/UI/Box/Box.module.scss.js +8 -8
  10. package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -1
  11. package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
  12. package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +16 -14
  13. package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js.map +1 -1
  14. package/dist/components/Common/UI/Dialog/Dialog.js +29 -28
  15. package/dist/components/Common/UI/Dialog/Dialog.js.map +1 -1
  16. package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
  17. package/dist/components/Common/UI/FormBox/FormBox.d.ts +1 -1
  18. package/dist/components/Common/UI/FormBox/FormBox.js +9 -8
  19. package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -1
  20. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +8 -6
  21. package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -1
  22. package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +5 -1
  23. package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
  24. package/dist/components/Company/AssignSignatory/AssignSignatory.js +7 -10
  25. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  26. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
  27. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  28. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -9
  29. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  30. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +18 -21
  31. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  32. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +11 -12
  33. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  34. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -4
  35. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  36. package/dist/components/Company/AssignSignatory/Head.js +8 -9
  37. package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
  38. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -7
  39. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  40. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +5 -8
  41. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  42. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +20 -21
  43. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  44. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -4
  45. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  46. package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -12
  47. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  48. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -6
  49. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  50. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +2 -3
  51. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  52. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +9 -11
  53. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  54. package/dist/components/Company/BankAccount/BankAccountForm/Head.js +2 -3
  55. package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
  56. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -4
  57. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  58. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +6 -7
  59. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  60. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -8
  61. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  62. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -6
  63. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  64. package/dist/components/Company/BankAccount/stateMachine.d.ts +0 -1
  65. package/dist/components/Company/BankAccount/stateMachine.js +33 -35
  66. package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
  67. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -6
  68. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  69. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +11 -14
  70. package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  71. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  72. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  73. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +7 -8
  74. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  75. package/dist/components/Company/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
  76. package/dist/components/Company/DocumentSigner/stateMachine.d.ts +0 -1
  77. package/dist/components/Company/DocumentSigner/stateMachine.js +27 -29
  78. package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
  79. package/dist/components/Company/FederalTaxes/Actions.js +6 -7
  80. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  81. package/dist/components/Company/FederalTaxes/FederalTaxes.js +7 -10
  82. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  83. package/dist/components/Company/FederalTaxes/Form.js +4 -4
  84. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -9
  85. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  86. package/dist/components/Company/Industry/Actions.js +5 -6
  87. package/dist/components/Company/Industry/Actions.js.map +1 -1
  88. package/dist/components/Company/Industry/Context.js +8 -7
  89. package/dist/components/Company/Industry/Context.js.map +1 -1
  90. package/dist/components/Company/Industry/Edit.js +10 -12
  91. package/dist/components/Company/Industry/Edit.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/Actions.js +6 -7
  95. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  96. package/dist/components/Company/Locations/LocationForm/Form.js +4 -6
  97. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  98. package/dist/components/Company/Locations/LocationForm/LocationForm.js +11 -14
  99. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  100. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -4
  101. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  102. package/dist/components/Company/Locations/LocationsList/Actions.js +2 -3
  103. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  104. package/dist/components/Company/Locations/LocationsList/LocationsList.js +9 -12
  105. package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
  106. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -4
  107. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  108. package/dist/components/Company/OnboardingOverview/Completed.js +5 -6
  109. package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
  110. package/dist/components/Company/OnboardingOverview/MissingRequirements.js +9 -10
  111. package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
  112. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -5
  113. package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
  114. package/dist/components/Company/OnboardingOverview/context.js +5 -4
  115. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  116. package/dist/components/Company/PaySchedule/PayScheduleForm.js +47 -51
  117. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  118. package/dist/components/Company/PaySchedule/payScheduleStateMachine.d.ts +0 -1
  119. package/dist/components/Company/PaySchedule/payScheduleStateMachine.js +26 -28
  120. package/dist/components/Company/PaySchedule/payScheduleStateMachine.js.map +1 -1
  121. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/fields.js +5 -5
  122. package/dist/components/Company/StateTaxes/StateTaxes.d.ts +2 -1
  123. package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
  124. package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
  125. package/dist/components/Company/StateTaxes/StateTaxesComponents.js +29 -16
  126. package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
  127. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
  128. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  129. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -1
  130. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +21 -32
  131. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
  132. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +67 -75
  133. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  134. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -4
  135. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  136. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -7
  137. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  138. package/dist/components/Company/StateTaxes/StateTaxesList/List.js +62 -47
  139. package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
  140. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +1 -0
  141. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +26 -23
  142. package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
  143. package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -0
  144. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -4
  145. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  146. package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.d.ts +12 -0
  147. package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js +36 -0
  148. package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js.map +1 -0
  149. package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.d.ts +10 -0
  150. package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js +110 -0
  151. package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js.map +1 -0
  152. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.d.ts +18 -0
  153. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +55 -0
  154. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -0
  155. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.d.ts +47 -0
  156. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js +108 -0
  157. package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js.map +1 -0
  158. package/dist/components/Company/StateTaxes/TaxRateManagement/context.d.ts +25 -0
  159. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +22 -0
  160. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -0
  161. package/dist/components/Company/StateTaxes/TaxRateManagement/index.d.ts +1 -0
  162. package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.d.ts +29 -0
  163. package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js +34 -0
  164. package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js.map +1 -0
  165. package/dist/components/Company/StateTaxes/shared/RequirementFields.d.ts +17 -0
  166. package/dist/components/Company/StateTaxes/shared/RequirementFields.js +24 -0
  167. package/dist/components/Company/StateTaxes/shared/RequirementFields.js.map +1 -0
  168. package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.d.ts +1 -1
  169. package/dist/components/Company/StateTaxes/shared/applicableIf.js.map +1 -0
  170. package/dist/components/Company/StateTaxes/shared/applicableIf.test.d.ts +1 -0
  171. package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.d.ts +19 -0
  172. package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js +38 -0
  173. package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js.map +1 -0
  174. package/dist/components/Company/StateTaxes/shared/requirementValue.d.ts +2 -0
  175. package/dist/components/Company/StateTaxes/shared/requirementValue.js +7 -0
  176. package/dist/components/Company/StateTaxes/shared/requirementValue.js.map +1 -0
  177. package/dist/components/Company/StateTaxes/shared/rhfKey.d.ts +23 -0
  178. package/dist/components/Company/StateTaxes/shared/rhfKey.js +13 -0
  179. package/dist/components/Company/StateTaxes/shared/rhfKey.js.map +1 -0
  180. package/dist/components/Company/StateTaxes/shared/rhfKey.test.d.ts +1 -0
  181. package/dist/components/Company/StateTaxes/stateTaxesStateMachine.d.ts +1 -0
  182. package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js +33 -11
  183. package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
  184. package/dist/components/Company/exports/companyOnboarding.d.ts +1 -0
  185. package/dist/components/Company/exports/companyOnboarding.js +12 -10
  186. package/dist/components/Company/exports/companyOnboarding.js.map +1 -1
  187. package/dist/components/Contractor/Address/Address.js +11 -12
  188. package/dist/components/Contractor/Address/Address.js.map +1 -1
  189. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.d.ts +39 -0
  190. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +90 -0
  191. package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -0
  192. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +22 -0
  193. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +247 -0
  194. package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -0
  195. package/dist/components/Contractor/ContractorList/{index.d.ts → onboarding/ContractorList.d.ts} +3 -3
  196. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +51 -0
  197. package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -0
  198. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +16 -0
  199. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +113 -0
  200. package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -0
  201. package/dist/components/Contractor/ContractorList/shared/index.d.ts +1 -0
  202. package/dist/components/Contractor/ContractorList/shared/useContractorList.d.ts +87 -0
  203. package/dist/components/Contractor/ContractorList/shared/useContractorList.js +110 -0
  204. package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -0
  205. package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.d.ts +0 -1
  206. package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js +18 -20
  207. package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js.map +1 -1
  208. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +2 -3
  209. package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +1 -1
  210. package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +1 -1
  211. package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js +8 -8
  212. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js +1 -1
  213. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  214. package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js +9 -10
  215. package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js.map +1 -1
  216. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +2 -3
  217. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  218. package/dist/components/Contractor/PaymentMethod/shared/useContractorBankAccountForm/fields.js +1 -1
  219. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +162 -251
  220. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  221. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.d.ts +2 -1
  222. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js +2 -2
  223. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js.map +1 -1
  224. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +45 -44
  225. package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
  226. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +2 -3
  227. package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
  228. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +2 -3
  229. package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
  230. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.d.ts +32 -0
  231. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js +107 -0
  232. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js.map +1 -0
  233. package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.test.d.ts +1 -0
  234. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js +6 -7
  235. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +1 -1
  236. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +18 -19
  237. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
  238. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/fields.js +16 -16
  239. package/dist/components/Contractor/Submit/Submit.js +2 -3
  240. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  241. package/dist/components/Contractor/exports/contractorManagement.d.ts +1 -0
  242. package/dist/components/Contractor/exports/contractorManagement.js +12 -10
  243. package/dist/components/Contractor/exports/contractorManagement.js.map +1 -1
  244. package/dist/components/Contractor/exports/contractorOnboarding.d.ts +1 -1
  245. package/dist/components/Contractor/exports/contractorOnboarding.js +1 -1
  246. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +32 -33
  247. package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
  248. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +2 -3
  249. package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
  250. package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
  251. package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
  252. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js +6 -7
  253. package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
  254. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js +14 -15
  255. package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
  256. package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
  257. package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
  258. package/dist/components/Employee/Documents/management/DocumentManager.js +6 -7
  259. package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
  260. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +6 -7
  261. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  262. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +4 -5
  263. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
  264. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +10 -13
  265. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
  266. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js +5 -6
  267. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -1
  268. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js +8 -0
  269. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js.map +1 -0
  270. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -4
  271. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  272. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +22 -21
  273. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
  274. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +6 -6
  275. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +5 -4
  276. package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
  277. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -4
  278. package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
  279. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +6 -7
  280. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
  281. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +11 -12
  282. package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
  283. package/dist/components/Employee/Documents/shared/useSignEmployeeForm/fields.js +1 -1
  284. package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js +15 -16
  285. package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js.map +1 -1
  286. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +6 -7
  287. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  288. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +11 -12
  289. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  290. package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
  291. package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
  292. package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js +7 -8
  293. package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js.map +1 -1
  294. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +4 -4
  295. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +29 -23
  296. package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js.map +1 -1
  297. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +26 -20
  298. package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
  299. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +133 -99
  300. package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
  301. package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js +8 -0
  302. package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js.map +1 -0
  303. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
  304. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +19 -20
  305. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  306. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js +92 -86
  307. package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
  308. package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
  309. package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
  310. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +65 -64
  311. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  312. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +7 -8
  313. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  314. package/dist/components/Employee/Profile/management/ProfileEditForm.js +7 -7
  315. package/dist/components/Employee/Profile/onboarding/AdminProfile.js +6 -6
  316. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +6 -6
  317. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
  318. package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
  319. package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
  320. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js +11 -12
  321. package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
  322. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +9 -10
  323. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  324. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +6 -7
  325. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  326. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
  327. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +44 -45
  328. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
  329. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +23 -22
  330. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  331. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +27 -27
  332. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
  333. package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js +9 -10
  334. package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js.map +1 -1
  335. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +2 -3
  336. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
  337. package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js +16 -17
  338. package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map +1 -1
  339. package/dist/components/Flow/Flow.js +1 -1
  340. package/dist/components/Flow/FlowHeader.js +3 -4
  341. package/dist/components/Flow/FlowHeader.js.map +1 -1
  342. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +8 -9
  343. package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
  344. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +7 -8
  345. package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
  346. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +37 -37
  347. package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
  348. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +8 -9
  349. package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
  350. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +7 -8
  351. package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
  352. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +10 -12
  353. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  354. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +0 -1
  355. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  356. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +7 -8
  357. package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
  358. package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +3 -3
  359. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +54 -50
  360. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  361. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +80 -69
  362. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  363. package/dist/components/Payroll/PayrollList/PayrollList.js +20 -18
  364. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  365. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +138 -136
  366. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  367. package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js +10 -12
  368. package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js.map +1 -1
  369. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +4 -4
  370. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +2 -3
  371. package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
  372. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +2 -3
  373. package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
  374. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +1 -2
  375. package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
  376. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +2 -3
  377. package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
  378. package/dist/components/Payroll/usePreparedPayrollData.js +4 -3
  379. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  380. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -3
  381. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  382. package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +4 -4
  383. package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +4 -4
  384. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +34 -36
  385. package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
  386. package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +4 -4
  387. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +24 -25
  388. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  389. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +6 -0
  390. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +29 -28
  391. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  392. package/dist/contexts/LocaleProvider/useLocale.d.ts +1 -9
  393. package/dist/contexts/LocaleProvider/useLocale.js +5 -15
  394. package/dist/contexts/LocaleProvider/useLocale.js.map +1 -1
  395. package/dist/contexts/NonceProvider/index.d.ts +1 -0
  396. package/dist/contexts/NonceProvider/useNonce.d.ts +37 -0
  397. package/dist/contexts/NonceProvider/useNonce.js +7 -0
  398. package/dist/contexts/NonceProvider/useNonce.js.map +1 -0
  399. package/dist/contexts/ThemeProvider/ThemeProvider.js +25 -24
  400. package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
  401. package/dist/contexts/index.d.ts +1 -0
  402. package/dist/hooks/useDateRangeFilter/useDateRangeFilter.d.ts +12 -7
  403. package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js +25 -21
  404. package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js.map +1 -1
  405. package/dist/i18n/I18n.js +1 -0
  406. package/dist/i18n/I18n.js.map +1 -1
  407. package/dist/i18n/en/Company.StateTaxes.json.js +6 -4
  408. package/dist/i18n/en/Company.StateTaxes.json.js.map +1 -1
  409. package/dist/i18n/en/Contractor.ContractorList.json.js +14 -12
  410. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  411. package/dist/i18n/en/Contractor.ManagementContractorList.json.js +60 -0
  412. package/dist/i18n/en/Contractor.ManagementContractorList.json.js.map +1 -0
  413. package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js +18 -16
  414. package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js.map +1 -1
  415. package/dist/i18n/en/Employee.Management.PaymentMethodSplitForm.json.js +2 -2
  416. package/dist/i18n/en/Employee.PaymentMethod.json.js +74 -72
  417. package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
  418. package/dist/i18n/en/Employee.SplitPaymentsFormBody.json.js +2 -2
  419. package/dist/i18n/en/Payroll.PayrollHistory.json.js +8 -8
  420. package/dist/i18n/en/Payroll.PayrollList.json.js +23 -23
  421. package/dist/i18n/types.d.ts +193 -11
  422. package/dist/index.js +15 -13
  423. package/dist/index.js.map +1 -1
  424. package/dist/models/external.d.ts +4 -0
  425. package/dist/partner-hook-utils/form/SDKFormProvider.js +39 -24
  426. package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
  427. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +12 -15
  428. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  429. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +16 -19
  430. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  431. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -16
  432. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  433. package/dist/partner-hook-utils/form/fields/SelectHookField.js +12 -15
  434. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  435. package/dist/partner-hook-utils/form/fields/SwitchHookField.js +18 -21
  436. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  437. package/dist/partner-hook-utils/form/fields/TextInputHookField.js +9 -12
  438. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  439. package/dist/partner-hook-utils/form/preprocessors.d.ts +2 -2
  440. package/dist/partner-hook-utils/form/preprocessors.js +8 -7
  441. package/dist/partner-hook-utils/form/preprocessors.js.map +1 -1
  442. package/dist/partner-hook-utils/form/preprocessors.test.d.ts +1 -0
  443. package/dist/shared/constants.d.ts +12 -0
  444. package/dist/shared/constants.js +23 -17
  445. package/dist/shared/constants.js.map +1 -1
  446. package/dist/style.css +1 -1
  447. package/docs/guides/endpoint-inventory.json +61 -0
  448. package/package.json +16 -14
  449. package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +0 -1
  450. package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.d.ts +0 -4
  451. package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js +0 -5
  452. package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js.map +0 -1
  453. package/dist/components/Contractor/ContractorList/index.js +0 -141
  454. package/dist/components/Contractor/ContractorList/index.js.map +0 -1
  455. package/dist/components/Contractor/ContractorList/useContractorList.d.ts +0 -18
  456. package/dist/components/Contractor/ContractorList/useContractorList.js +0 -15
  457. package/dist/components/Contractor/ContractorList/useContractorList.js.map +0 -1
  458. /package/dist/components/Company/StateTaxes/{StateTaxesForm/applicableIf.test.d.ts → TaxRateManagement/toHistoryRows.test.d.ts} +0 -0
  459. /package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TimeOffFlowComponents.js","sources":["../../../../src/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { PolicyList } from '../PolicyList/PolicyList'\nimport { PolicyTypeSelector } from '../PolicyTypeSelector/PolicyTypeSelector'\nimport { PolicyConfigurationForm } from '../TimeOffManagement/PolicyConfigurationForm'\nimport { PolicySettings } from '../PolicySettings/PolicySettings'\nimport { AddEmployeesToPolicy } from '../AddEmployeesToPolicy/AddEmployeesToPolicy'\nimport { TimeOffPolicyDetail } from '../TimeOffPolicyDetail/TimeOffPolicyDetail'\nimport { HolidaySelectionForm } from '../HolidaySelectionForm/HolidaySelectionForm'\nimport { AddEmployeesHoliday } from '../AddEmployeesHoliday/AddEmployeesHoliday'\nimport { ViewHolidayEmployees } from '../ViewHolidayEmployees/ViewHolidayEmployees'\nimport { ViewHolidaySchedule } from '../ViewHolidaySchedule/ViewHolidaySchedule'\nimport { assertCreatablePolicyType, type TimeOffPolicyType } from './timeOffPolicyTypes'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { Flex } from '@/components/Common'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/**\n * Props for {@link TimeOffFlow}.\n *\n * @public\n */\nexport interface TimeOffFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/** @internal */\nexport type TimeOffFlowAlert = {\n type: 'error' | 'info' | 'success'\n title: string\n content?: ReactNode\n}\n\n/** @internal */\nexport type AddEmployeesSource =\n 'policySettings' | 'policyDetailsForm' | 'viewTimeOffPolicyDetail' | 'viewHolidayEmployees'\n\n/** @internal */\nexport interface TimeOffFlowContextInterface extends FlowContextInterface {\n /** The associated company identifier. */\n companyId: string\n /** The currently selected policy type, if any. */\n policyType?: TimeOffPolicyType\n /** The currently selected policy identifier, if any. */\n policyId?: string\n /** Alerts to render at the top of the current step. */\n alerts?: TimeOffFlowAlert[]\n /** Which step launched the add-employees screen, used to route the back transition. */\n addEmployeesSource?: AddEmployeesSource\n}\n\n/** @internal */\nexport function PolicyListContextual() {\n const { onEvent, companyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicyList onEvent={onEvent} companyId={ensureRequired(companyId)} />\n </Flex>\n )\n}\n\n/** @internal */\nexport function SelectPolicyTypeContextual() {\n const { onEvent, companyId, policyType, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n const selectorDefault =\n policyType === 'sick' || policyType === 'vacation' || policyType === 'holiday'\n ? policyType\n : undefined\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicyTypeSelector\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n defaultPolicyType={selectorDefault}\n />\n </Flex>\n )\n}\n\n/** @internal */\nexport function PolicyDetailsFormContextual() {\n const { onEvent, companyId, policyType, policyId, alerts } =\n useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n const requiredPolicyType = ensureRequired(policyType)\n assertCreatablePolicyType(requiredPolicyType)\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicyConfigurationForm\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n policyType={requiredPolicyType}\n policyId={policyId}\n />\n </Flex>\n )\n}\n\n/** @internal */\nexport function PolicySettingsContextual() {\n const { onEvent, policyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicySettings onEvent={onEvent} policyId={ensureRequired(policyId)} mode=\"create\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function EditPolicySettingsContextual() {\n const { onEvent, policyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicySettings onEvent={onEvent} policyId={ensureRequired(policyId)} mode=\"edit\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function AddEmployeesToPolicyContextual() {\n const { onEvent, companyId, policyId, policyType } = useFlow<TimeOffFlowContextInterface>()\n const requiredPolicyType = ensureRequired(policyType)\n assertCreatablePolicyType(requiredPolicyType)\n return (\n <AddEmployeesToPolicy\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n policyId={ensureRequired(policyId)}\n policyType={requiredPolicyType}\n />\n )\n}\n\n/** @internal */\nexport function TimeOffPolicyDetailContextual() {\n const { onEvent, policyId } = useFlow<TimeOffFlowContextInterface>()\n return <TimeOffPolicyDetail onEvent={onEvent} policyId={ensureRequired(policyId)} />\n}\n\n/** @internal */\nexport function HolidaySelectionFormContextual() {\n const { onEvent, companyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <HolidaySelectionForm onEvent={onEvent} companyId={ensureRequired(companyId)} mode=\"create\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function EditHolidaySelectionFormContextual() {\n const { onEvent, companyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <HolidaySelectionForm onEvent={onEvent} companyId={ensureRequired(companyId)} mode=\"edit\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function AddEmployeesHolidayContextual() {\n const { onEvent, companyId } = useFlow<TimeOffFlowContextInterface>()\n return <AddEmployeesHoliday onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n\n/** @internal */\nexport function ViewHolidayEmployeesContextual() {\n const { onEvent, companyId } = useFlow<TimeOffFlowContextInterface>()\n return <ViewHolidayEmployees onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n\n/** @internal */\nexport function ViewHolidayScheduleContextual() {\n const { onEvent, companyId } = useFlow<TimeOffFlowContextInterface>()\n return <ViewHolidaySchedule onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n"],"names":["PolicyListContextual","onEvent","companyId","alerts","useFlow","Alert","useComponentContext","jsxs","Flex","alert","index","PolicyList","ensureRequired","SelectPolicyTypeContextual","policyType","selectorDefault","jsx","PolicyTypeSelector","PolicyDetailsFormContextual","policyId","requiredPolicyType","assertCreatablePolicyType","PolicyConfigurationForm","PolicySettingsContextual","PolicySettings","EditPolicySettingsContextual","AddEmployeesToPolicyContextual","AddEmployeesToPolicy","TimeOffPolicyDetailContextual","TimeOffPolicyDetail","HolidaySelectionFormContextual","HolidaySelectionForm","EditHolidaySelectionFormContextual","AddEmployeesHolidayContextual","AddEmployeesHoliday","ViewHolidayEmployeesContextual","ViewHolidayEmployees","ViewHolidayScheduleContextual","ViewHolidaySchedule"],"mappings":"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"}
1
+ {"version":3,"file":"TimeOffFlowComponents.js","sources":["../../../../src/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport { PolicyList } from '../PolicyList/PolicyList'\nimport { PolicyTypeSelector } from '../PolicyTypeSelector/PolicyTypeSelector'\nimport { PolicyConfigurationForm } from '../TimeOffManagement/PolicyConfigurationForm'\nimport { PolicySettings } from '../PolicySettings/PolicySettings'\nimport { AddEmployeesToPolicy } from '../AddEmployeesToPolicy/AddEmployeesToPolicy'\nimport { TimeOffPolicyDetail } from '../TimeOffPolicyDetail/TimeOffPolicyDetail'\nimport { HolidaySelectionForm } from '../HolidaySelectionForm/HolidaySelectionForm'\nimport { AddEmployeesHoliday } from '../AddEmployeesHoliday/AddEmployeesHoliday'\nimport { ViewHolidayEmployees } from '../ViewHolidayEmployees/ViewHolidayEmployees'\nimport { ViewHolidaySchedule } from '../ViewHolidaySchedule/ViewHolidaySchedule'\nimport { assertCreatablePolicyType, type TimeOffPolicyType } from './timeOffPolicyTypes'\nimport { useFlow, type FlowContextInterface } from '@/components/Flow/useFlow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { Flex } from '@/components/Common'\nimport { ensureRequired } from '@/helpers/ensureRequired'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/**\n * Props for {@link TimeOffFlow}.\n *\n * @public\n */\nexport interface TimeOffFlowProps extends BaseComponentInterface<never> {\n /** The associated company identifier. */\n companyId: string\n}\n\n/** @internal */\nexport type TimeOffFlowAlert = {\n type: 'error' | 'info' | 'success'\n title: string\n content?: ReactNode\n}\n\n/** @internal */\nexport type AddEmployeesSource =\n 'policySettings' | 'policyDetailsForm' | 'viewTimeOffPolicyDetail' | 'viewHolidayEmployees'\n\n/** @internal */\nexport interface TimeOffFlowContextInterface extends FlowContextInterface {\n /** The associated company identifier. */\n companyId: string\n /** The currently selected policy type, if any. */\n policyType?: TimeOffPolicyType\n /** The currently selected policy identifier, if any. */\n policyId?: string\n /** Alerts to render at the top of the current step. */\n alerts?: TimeOffFlowAlert[]\n /** Which step launched the add-employees screen, used to route the back transition. */\n addEmployeesSource?: AddEmployeesSource\n}\n\n/** @internal */\nexport function PolicyListContextual() {\n const { onEvent, companyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicyList onEvent={onEvent} companyId={ensureRequired(companyId)} />\n </Flex>\n )\n}\n\n/** @internal */\nexport function SelectPolicyTypeContextual() {\n const { onEvent, companyId, policyType, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n const selectorDefault =\n policyType === 'sick' || policyType === 'vacation' || policyType === 'holiday'\n ? policyType\n : undefined\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicyTypeSelector\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n defaultPolicyType={selectorDefault}\n />\n </Flex>\n )\n}\n\n/** @internal */\nexport function PolicyDetailsFormContextual() {\n const { onEvent, companyId, policyType, policyId, alerts } =\n useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n const requiredPolicyType = ensureRequired(policyType)\n assertCreatablePolicyType(requiredPolicyType)\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicyConfigurationForm\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n policyType={requiredPolicyType}\n policyId={policyId}\n />\n </Flex>\n )\n}\n\n/** @internal */\nexport function PolicySettingsContextual() {\n const { onEvent, policyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicySettings onEvent={onEvent} policyId={ensureRequired(policyId)} mode=\"create\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function EditPolicySettingsContextual() {\n const { onEvent, policyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <PolicySettings onEvent={onEvent} policyId={ensureRequired(policyId)} mode=\"edit\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function AddEmployeesToPolicyContextual() {\n const { onEvent, companyId, policyId, policyType } = useFlow<TimeOffFlowContextInterface>()\n const requiredPolicyType = ensureRequired(policyType)\n assertCreatablePolicyType(requiredPolicyType)\n return (\n <AddEmployeesToPolicy\n onEvent={onEvent}\n companyId={ensureRequired(companyId)}\n policyId={ensureRequired(policyId)}\n policyType={requiredPolicyType}\n />\n )\n}\n\n/** @internal */\nexport function TimeOffPolicyDetailContextual() {\n const { onEvent, policyId } = useFlow<TimeOffFlowContextInterface>()\n return <TimeOffPolicyDetail onEvent={onEvent} policyId={ensureRequired(policyId)} />\n}\n\n/** @internal */\nexport function HolidaySelectionFormContextual() {\n const { onEvent, companyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <HolidaySelectionForm onEvent={onEvent} companyId={ensureRequired(companyId)} mode=\"create\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function EditHolidaySelectionFormContextual() {\n const { onEvent, companyId, alerts } = useFlow<TimeOffFlowContextInterface>()\n const { Alert } = useComponentContext()\n\n return (\n <Flex flexDirection=\"column\" gap={8}>\n {alerts?.map((alert, index) => (\n <Alert key={index} status={alert.type} label={alert.title}>\n {alert.content}\n </Alert>\n ))}\n <HolidaySelectionForm onEvent={onEvent} companyId={ensureRequired(companyId)} mode=\"edit\" />\n </Flex>\n )\n}\n\n/** @internal */\nexport function AddEmployeesHolidayContextual() {\n const { onEvent, companyId } = useFlow<TimeOffFlowContextInterface>()\n return <AddEmployeesHoliday onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n\n/** @internal */\nexport function ViewHolidayEmployeesContextual() {\n const { onEvent, companyId } = useFlow<TimeOffFlowContextInterface>()\n return <ViewHolidayEmployees onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n\n/** @internal */\nexport function ViewHolidayScheduleContextual() {\n const { onEvent, companyId } = useFlow<TimeOffFlowContextInterface>()\n return <ViewHolidaySchedule onEvent={onEvent} companyId={ensureRequired(companyId)} />\n}\n"],"names":["PolicyListContextual","onEvent","companyId","alerts","useFlow","Alert","useComponentContext","jsxs","Flex","alert","index","PolicyList","ensureRequired","SelectPolicyTypeContextual","policyType","selectorDefault","jsx","PolicyTypeSelector","PolicyDetailsFormContextual","policyId","requiredPolicyType","assertCreatablePolicyType","PolicyConfigurationForm","PolicySettingsContextual","PolicySettings","EditPolicySettingsContextual","AddEmployeesToPolicyContextual","AddEmployeesToPolicy","TimeOffPolicyDetailContextual","TimeOffPolicyDetail","HolidaySelectionFormContextual","HolidaySelectionForm","EditHolidaySelectionFormContextual","AddEmployeesHolidayContextual","AddEmployeesHoliday","ViewHolidayEmployeesContextual","ViewHolidayEmployees","ViewHolidayScheduleContextual","ViewHolidaySchedule"],"mappings":"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"}
@@ -5,8 +5,8 @@ import { useTranslation as Z } from "react-i18next";
5
5
  import o from "./PolicyConfigurationForm.module.scss.js";
6
6
  import { Flex as d } from "../../../Common/Flex/Flex.js";
7
7
  import { ActionsLayout as $ } from "../../../Common/ActionsLayout/ActionsLayout.js";
8
- import { useComponentContext as ee } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
9
- import { Form as ae } from "../../../Common/Form/Form.js";
8
+ import { Form as ee } from "../../../Common/Form/Form.js";
9
+ import { useComponentContext as ae } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
10
10
  import { useLocale as ie } from "../../../../contexts/LocaleProvider/useLocale.js";
11
11
  import { useI18n as le } from "../../../../i18n/I18n.js";
12
12
  import { getDaysInMonth as C } from "../../../../helpers/dateFormatting.js";
@@ -24,7 +24,7 @@ function ge({
24
24
  lockedAccrualCategory: y
25
25
  }) {
26
26
  le("Company.TimeOff.CreateTimeOffPolicy");
27
- const { t: e } = Z("Company.TimeOff.CreateTimeOffPolicy"), { Heading: A, Text: h, Button: L } = ee(), { locale: R } = ie(), F = J(), S = c(() => {
27
+ const { t: e } = Z("Company.TimeOff.CreateTimeOffPolicy"), { Heading: A, Text: h, Button: L } = ae(), { locale: R } = ie(), F = J(), S = c(() => {
28
28
  const i = new Intl.DateTimeFormat(R, { month: "long" });
29
29
  return Array.from({ length: 12 }, (r, s) => ({
30
30
  value: s + 1,
@@ -103,7 +103,7 @@ function ge({
103
103
  ), B = (i) => {
104
104
  N(i);
105
105
  }, f = n === "per_hour_paid", H = n === "per_calendar_year", G = f || H, z = E === "per_calendar_year";
106
- return /* @__PURE__ */ a(X, { ...D, children: /* @__PURE__ */ a(ae, { "aria-labelledby": F, onSubmit: D.handleSubmit(B), children: /* @__PURE__ */ t(d, { flexDirection: "column", gap: 32, children: [
106
+ return /* @__PURE__ */ a(X, { ...D, children: /* @__PURE__ */ a(ee, { "aria-labelledby": F, onSubmit: D.handleSubmit(B), children: /* @__PURE__ */ t(d, { flexDirection: "column", gap: 32, children: [
107
107
  /* @__PURE__ */ a(A, { as: "h2", id: F, children: g ? e("policyDetails.editTitle", { name: g }) : e("policyDetails.createTitle") }),
108
108
  /* @__PURE__ */ t(d, { flexDirection: "column", gap: 20, children: [
109
109
  /* @__PURE__ */ a(
@@ -3,34 +3,33 @@ import { useTranslation as S } from "react-i18next";
3
3
  import { EmployeeTable as D } from "../EmployeeTable/EmployeeTable.js";
4
4
  import { EmptyData as L } from "../../../Common/EmptyData/EmptyData.js";
5
5
  import { useComponentContext as O } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
- import "react";
7
6
  import { useI18n as T } from "../../../../i18n/I18n.js";
8
7
  import x from "../../../../assets/icons/plus-circle.svg.js";
9
8
  import { DetailViewLayout as A } from "../../../Common/DetailViewLayout/DetailViewLayout.js";
10
9
  const v = "employees";
11
- function _({
10
+ function N({
12
11
  title: r,
13
- subtitle: m,
14
- onBack: c,
12
+ subtitle: c,
13
+ onBack: m,
15
14
  backLabel: s,
16
15
  actions: p,
17
16
  firstTab: a,
18
17
  selectedTabId: d,
19
18
  onTabChange: h,
20
- employees: t,
19
+ employees: e,
21
20
  onAddEmployee: n,
22
21
  removeDialog: o,
23
22
  successAlert: l,
24
23
  onDismissAlert: u
25
24
  }) {
26
25
  T("Company.TimeOff.PolicyDetail");
27
- const { t: e } = S("Company.TimeOff.PolicyDetail"), { Alert: y, Dialog: C, Button: f } = O(), E = t.emptyState ?? (n ? () => /* @__PURE__ */ i(L, { title: e("emptyEmployees.title"), children: /* @__PURE__ */ i(
26
+ const { t } = S("Company.TimeOff.PolicyDetail"), { Alert: y, Dialog: C, Button: f } = O(), E = e.emptyState ?? (n ? () => /* @__PURE__ */ i(L, { title: t("emptyEmployees.title"), children: /* @__PURE__ */ i(
28
27
  f,
29
28
  {
30
29
  variant: "secondary",
31
30
  icon: /* @__PURE__ */ i(x, { "aria-hidden": !0 }),
32
31
  onClick: n,
33
- children: e("emptyEmployees.addEmployeeCta")
32
+ children: t("emptyEmployees.addEmployeeCta")
34
33
  }
35
34
  ) }) : void 0), g = [
36
35
  {
@@ -40,21 +39,21 @@ function _({
40
39
  },
41
40
  {
42
41
  id: v,
43
- label: e("tabs.employees"),
42
+ label: t("tabs.employees"),
44
43
  content: /* @__PURE__ */ i(
45
44
  D,
46
45
  {
47
- data: t.data,
48
- searchValue: t.searchValue,
49
- onSearchChange: t.onSearchChange,
50
- onSearchClear: t.onSearchClear,
51
- searchPlaceholder: t.searchPlaceholder,
52
- itemMenu: t.itemMenu,
53
- pagination: t.pagination,
54
- isFetching: t.isFetching,
46
+ data: e.data,
47
+ searchValue: e.searchValue,
48
+ onSearchChange: e.onSearchChange,
49
+ onSearchClear: e.onSearchClear,
50
+ searchPlaceholder: e.searchPlaceholder,
51
+ itemMenu: e.itemMenu,
52
+ pagination: e.pagination,
53
+ isFetching: e.isFetching,
55
54
  emptyState: E,
56
- additionalColumns: t.additionalColumns,
57
- hideJobTitle: t.hideJobTitle
55
+ additionalColumns: e.additionalColumns,
56
+ hideJobTitle: e.hideJobTitle
58
57
  }
59
58
  )
60
59
  }
@@ -65,8 +64,8 @@ function _({
65
64
  A,
66
65
  {
67
66
  title: r,
68
- subtitle: m,
69
- onBack: c,
67
+ subtitle: c,
68
+ onBack: m,
70
69
  backLabel: s,
71
70
  actions: p,
72
71
  tabs: g,
@@ -82,15 +81,15 @@ function _({
82
81
  onPrimaryActionClick: o.onConfirm,
83
82
  isPrimaryActionLoading: o.isPending,
84
83
  isDestructive: !0,
85
- title: e("removeEmployeeDialog.title", { name: o.employeeName }),
86
- primaryActionLabel: e("removeEmployeeDialog.confirmCta"),
87
- closeActionLabel: e("removeEmployeeDialog.cancelCta"),
88
- children: e("removeEmployeeDialog.description", { name: o.employeeName })
84
+ title: t("removeEmployeeDialog.title", { name: o.employeeName }),
85
+ primaryActionLabel: t("removeEmployeeDialog.confirmCta"),
86
+ closeActionLabel: t("removeEmployeeDialog.cancelCta"),
87
+ children: t("removeEmployeeDialog.description", { name: o.employeeName })
89
88
  }
90
89
  )
91
90
  ] });
92
91
  }
93
92
  export {
94
- _ as PolicyDetailLayout
93
+ N as PolicyDetailLayout
95
94
  };
96
95
  //# sourceMappingURL=PolicyDetailLayout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyDetailLayout.js","sources":["../../../../../src/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { EmployeeTableItem } from '../EmployeeTable/EmployeeTableTypes'\nimport { EmployeeTable } from '../EmployeeTable/EmployeeTable'\nimport type { PolicyDetailLayoutProps } from './PolicyDetailLayoutTypes'\nimport { DetailViewLayout, EmptyData } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\n\nconst EMPLOYEES_TAB_ID = 'employees'\n\n/** @internal */\nexport function PolicyDetailLayout<T extends EmployeeTableItem>({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n firstTab,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: PolicyDetailLayoutProps<T>) {\n useI18n('Company.TimeOff.PolicyDetail')\n const { t } = useTranslation('Company.TimeOff.PolicyDetail')\n const { Alert, Dialog, Button } = useComponentContext()\n\n const emptyEmployeesState =\n employees.emptyState ??\n (onAddEmployee\n ? () => (\n <EmptyData title={t('emptyEmployees.title')}>\n <Button\n variant=\"secondary\"\n icon={<PlusCircleIcon aria-hidden />}\n onClick={onAddEmployee}\n >\n {t('emptyEmployees.addEmployeeCta')}\n </Button>\n </EmptyData>\n )\n : undefined)\n\n const tabs = [\n {\n id: firstTab.id,\n label: firstTab.label,\n content: firstTab.content,\n },\n {\n id: EMPLOYEES_TAB_ID,\n label: t('tabs.employees'),\n content: (\n <EmployeeTable<T>\n data={employees.data}\n searchValue={employees.searchValue}\n onSearchChange={employees.onSearchChange}\n onSearchClear={employees.onSearchClear}\n searchPlaceholder={employees.searchPlaceholder}\n itemMenu={employees.itemMenu}\n pagination={employees.pagination}\n isFetching={employees.isFetching}\n emptyState={emptyEmployeesState}\n additionalColumns={employees.additionalColumns}\n hideJobTitle={employees.hideJobTitle}\n />\n ),\n },\n ]\n\n return (\n <>\n {successAlert && <Alert status=\"success\" label={successAlert} onDismiss={onDismissAlert} />}\n\n <DetailViewLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n tabs={tabs}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n />\n\n <Dialog\n isOpen={removeDialog.isOpen}\n onClose={removeDialog.onClose}\n onPrimaryActionClick={removeDialog.onConfirm}\n isPrimaryActionLoading={removeDialog.isPending}\n isDestructive\n title={t('removeEmployeeDialog.title', { name: removeDialog.employeeName })}\n primaryActionLabel={t('removeEmployeeDialog.confirmCta')}\n closeActionLabel={t('removeEmployeeDialog.cancelCta')}\n >\n {t('removeEmployeeDialog.description', { name: removeDialog.employeeName })}\n </Dialog>\n </>\n )\n}\n"],"names":["EMPLOYEES_TAB_ID","PolicyDetailLayout","title","subtitle","onBack","backLabel","actions","firstTab","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","t","useTranslation","Alert","Dialog","Button","useComponentContext","emptyEmployeesState","EmptyData","jsx","PlusCircleIcon","tabs","EmployeeTable","jsxs","Fragment","DetailViewLayout"],"mappings":";;;;;;;;;AASA,MAAMA,IAAmB;AAGlB,SAASC,EAAgD;AAAA,EAC9D,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AACF,GAA+B;AAC7B,EAAAC,EAAQ,8BAA8B;AACtC,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,8BAA8B,GACrD,EAAE,OAAAC,GAAO,QAAAC,GAAQ,QAAAC,EAAA,IAAWC,EAAA,GAE5BC,IACJZ,EAAU,eACTC,IACG,wBACGY,GAAA,EAAU,OAAOP,EAAE,sBAAsB,GACxC,UAAA,gBAAAQ;AAAA,IAACJ;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAM,gBAAAI,EAACC,GAAA,EAAe,eAAW,GAAA,CAAC;AAAA,MAClC,SAASd;AAAA,MAER,YAAE,+BAA+B;AAAA,IAAA;AAAA,EAAA,GAEtC,IAEF,SAEAe,IAAO;AAAA,IACX;AAAA,MACE,IAAInB,EAAS;AAAA,MACb,OAAOA,EAAS;AAAA,MAChB,SAASA,EAAS;AAAA,IAAA;AAAA,IAEpB;AAAA,MACE,IAAIP;AAAA,MACJ,OAAOgB,EAAE,gBAAgB;AAAA,MACzB,SACE,gBAAAQ;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,MAAMjB,EAAU;AAAA,UAChB,aAAaA,EAAU;AAAA,UACvB,gBAAgBA,EAAU;AAAA,UAC1B,eAAeA,EAAU;AAAA,UACzB,mBAAmBA,EAAU;AAAA,UAC7B,UAAUA,EAAU;AAAA,UACpB,YAAYA,EAAU;AAAA,UACtB,YAAYA,EAAU;AAAA,UACtB,YAAYY;AAAA,UACZ,mBAAmBZ,EAAU;AAAA,UAC7B,cAAcA,EAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1B;AAAA,EAEJ;AAGF,SACE,gBAAAkB,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAhB,uBAAiBK,GAAA,EAAM,QAAO,WAAU,OAAOL,GAAc,WAAWC,GAAgB;AAAA,IAEzF,gBAAAU;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,OAAA5B;AAAA,QACA,UAAAC;AAAA,QACA,QAAAC;AAAA,QACA,WAAAC;AAAA,QACA,SAAAC;AAAA,QACA,MAAAoB;AAAA,QACA,eAAAlB;AAAA,QACA,aAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGF,gBAAAe;AAAA,MAACL;AAAA,MAAA;AAAA,QACC,QAAQP,EAAa;AAAA,QACrB,SAASA,EAAa;AAAA,QACtB,sBAAsBA,EAAa;AAAA,QACnC,wBAAwBA,EAAa;AAAA,QACrC,eAAa;AAAA,QACb,OAAOI,EAAE,8BAA8B,EAAE,MAAMJ,EAAa,cAAc;AAAA,QAC1E,oBAAoBI,EAAE,iCAAiC;AAAA,QACvD,kBAAkBA,EAAE,gCAAgC;AAAA,QAEnD,YAAE,oCAAoC,EAAE,MAAMJ,EAAa,cAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAC5E,GACF;AAEJ;"}
1
+ {"version":3,"file":"PolicyDetailLayout.js","sources":["../../../../../src/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport type { EmployeeTableItem } from '../EmployeeTable/EmployeeTableTypes'\nimport { EmployeeTable } from '../EmployeeTable/EmployeeTable'\nimport type { PolicyDetailLayoutProps } from './PolicyDetailLayoutTypes'\nimport { DetailViewLayout, EmptyData } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport PlusCircleIcon from '@/assets/icons/plus-circle.svg?react'\n\nconst EMPLOYEES_TAB_ID = 'employees'\n\n/** @internal */\nexport function PolicyDetailLayout<T extends EmployeeTableItem>({\n title,\n subtitle,\n onBack,\n backLabel,\n actions,\n firstTab,\n selectedTabId,\n onTabChange,\n employees,\n onAddEmployee,\n removeDialog,\n successAlert,\n onDismissAlert,\n}: PolicyDetailLayoutProps<T>) {\n useI18n('Company.TimeOff.PolicyDetail')\n const { t } = useTranslation('Company.TimeOff.PolicyDetail')\n const { Alert, Dialog, Button } = useComponentContext()\n\n const emptyEmployeesState =\n employees.emptyState ??\n (onAddEmployee\n ? () => (\n <EmptyData title={t('emptyEmployees.title')}>\n <Button\n variant=\"secondary\"\n icon={<PlusCircleIcon aria-hidden />}\n onClick={onAddEmployee}\n >\n {t('emptyEmployees.addEmployeeCta')}\n </Button>\n </EmptyData>\n )\n : undefined)\n\n const tabs = [\n {\n id: firstTab.id,\n label: firstTab.label,\n content: firstTab.content,\n },\n {\n id: EMPLOYEES_TAB_ID,\n label: t('tabs.employees'),\n content: (\n <EmployeeTable<T>\n data={employees.data}\n searchValue={employees.searchValue}\n onSearchChange={employees.onSearchChange}\n onSearchClear={employees.onSearchClear}\n searchPlaceholder={employees.searchPlaceholder}\n itemMenu={employees.itemMenu}\n pagination={employees.pagination}\n isFetching={employees.isFetching}\n emptyState={emptyEmployeesState}\n additionalColumns={employees.additionalColumns}\n hideJobTitle={employees.hideJobTitle}\n />\n ),\n },\n ]\n\n return (\n <>\n {successAlert && <Alert status=\"success\" label={successAlert} onDismiss={onDismissAlert} />}\n\n <DetailViewLayout\n title={title}\n subtitle={subtitle}\n onBack={onBack}\n backLabel={backLabel}\n actions={actions}\n tabs={tabs}\n selectedTabId={selectedTabId}\n onTabChange={onTabChange}\n />\n\n <Dialog\n isOpen={removeDialog.isOpen}\n onClose={removeDialog.onClose}\n onPrimaryActionClick={removeDialog.onConfirm}\n isPrimaryActionLoading={removeDialog.isPending}\n isDestructive\n title={t('removeEmployeeDialog.title', { name: removeDialog.employeeName })}\n primaryActionLabel={t('removeEmployeeDialog.confirmCta')}\n closeActionLabel={t('removeEmployeeDialog.cancelCta')}\n >\n {t('removeEmployeeDialog.description', { name: removeDialog.employeeName })}\n </Dialog>\n </>\n )\n}\n"],"names":["EMPLOYEES_TAB_ID","PolicyDetailLayout","title","subtitle","onBack","backLabel","actions","firstTab","selectedTabId","onTabChange","employees","onAddEmployee","removeDialog","successAlert","onDismissAlert","useI18n","useTranslation","Alert","Dialog","Button","useComponentContext","emptyEmployeesState","EmptyData","jsx","PlusCircleIcon","tabs","EmployeeTable","jsxs","Fragment","DetailViewLayout"],"mappings":";;;;;;;;AASA,MAAMA,IAAmB;AAGlB,SAASC,EAAgD;AAAA,EAC9D,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AACF,GAA+B;AAC7B,EAAAC,EAAQ,8BAA8B;AACtC,QAAM,EAAE,EAAA,IAAMC,EAAe,8BAA8B,GACrD,EAAE,OAAAC,GAAO,QAAAC,GAAQ,QAAAC,EAAA,IAAWC,EAAA,GAE5BC,IACJX,EAAU,eACTC,IACG,wBACGW,GAAA,EAAU,OAAO,EAAE,sBAAsB,GACxC,UAAA,gBAAAC;AAAA,IAACJ;AAAA,IAAA;AAAA,MACC,SAAQ;AAAA,MACR,MAAM,gBAAAI,EAACC,GAAA,EAAe,eAAW,GAAA,CAAC;AAAA,MAClC,SAASb;AAAA,MAER,YAAE,+BAA+B;AAAA,IAAA;AAAA,EAAA,GAEtC,IAEF,SAEAc,IAAO;AAAA,IACX;AAAA,MACE,IAAIlB,EAAS;AAAA,MACb,OAAOA,EAAS;AAAA,MAChB,SAASA,EAAS;AAAA,IAAA;AAAA,IAEpB;AAAA,MACE,IAAIP;AAAA,MACJ,OAAO,EAAE,gBAAgB;AAAA,MACzB,SACE,gBAAAuB;AAAA,QAACG;AAAA,QAAA;AAAA,UACC,MAAMhB,EAAU;AAAA,UAChB,aAAaA,EAAU;AAAA,UACvB,gBAAgBA,EAAU;AAAA,UAC1B,eAAeA,EAAU;AAAA,UACzB,mBAAmBA,EAAU;AAAA,UAC7B,UAAUA,EAAU;AAAA,UACpB,YAAYA,EAAU;AAAA,UACtB,YAAYA,EAAU;AAAA,UACtB,YAAYW;AAAA,UACZ,mBAAmBX,EAAU;AAAA,UAC7B,cAAcA,EAAU;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1B;AAAA,EAEJ;AAGF,SACE,gBAAAiB,EAAAC,GAAA,EACG,UAAA;AAAA,IAAAf,uBAAiBI,GAAA,EAAM,QAAO,WAAU,OAAOJ,GAAc,WAAWC,GAAgB;AAAA,IAEzF,gBAAAS;AAAA,MAACM;AAAA,MAAA;AAAA,QACC,OAAA3B;AAAA,QACA,UAAAC;AAAA,QACA,QAAAC;AAAA,QACA,WAAAC;AAAA,QACA,SAAAC;AAAA,QACA,MAAAmB;AAAA,QACA,eAAAjB;AAAA,QACA,aAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGF,gBAAAc;AAAA,MAACL;AAAA,MAAA;AAAA,QACC,QAAQN,EAAa;AAAA,QACrB,SAASA,EAAa;AAAA,QACtB,sBAAsBA,EAAa;AAAA,QACnC,wBAAwBA,EAAa;AAAA,QACrC,eAAa;AAAA,QACb,OAAO,EAAE,8BAA8B,EAAE,MAAMA,EAAa,cAAc;AAAA,QAC1E,oBAAoB,EAAE,iCAAiC;AAAA,QACvD,kBAAkB,EAAE,gCAAgC;AAAA,QAEnD,YAAE,oCAAoC,EAAE,MAAMA,EAAa,cAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAC5E,GACF;AAEJ;"}
@@ -38,6 +38,12 @@ export interface GustoBaseProviderProps {
38
38
  currency?: string;
39
39
  /** Theme overrides applied to SDK components. See {@link GustoSDKTheme}. */
40
40
  theme?: Partial<GustoSDKTheme>;
41
+ /**
42
+ * CSP nonce to apply to runtime-injected `<style>` elements (theming, PDF download window).
43
+ * Pass the same per-request nonce your app uses in its `style-src 'nonce-…'` directive.
44
+ * Also exposed to custom UI components via `useNonce`.
45
+ */
46
+ nonce?: string;
41
47
  /** Element to use as the portal container for SDK popovers and dropdowns. Useful when rendering inside a modal or shadow root. */
42
48
  portalContainer?: HTMLElement;
43
49
  /** Optional TanStack Query `QueryClient`. When omitted, the SDK creates its own client configured for Gusto's API. */
@@ -1,33 +1,34 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { ErrorBoundary as g } from "react-error-boundary";
3
- import { I18nextProvider as P } from "react-i18next";
4
- import { useEffect as k, useMemo as C } from "react";
5
- import { ComponentsProvider as S } from "../ComponentAdapter/ComponentsProvider.js";
2
+ import { ErrorBoundary as P } from "react-error-boundary";
3
+ import { I18nextProvider as k } from "react-i18next";
4
+ import { useEffect as C, useMemo as S } from "react";
5
+ import { ComponentsProvider as x } from "../ComponentAdapter/ComponentsProvider.js";
6
6
  import { ApiProvider as I } from "../ApiProvider/ApiProvider.js";
7
7
  import { LoadingIndicatorProvider as L } from "../LoadingIndicatorProvider/LoadingIndicatorProvider.js";
8
- import { sanitizeError as x } from "../ObservabilityProvider/sanitization.js";
8
+ import { sanitizeError as z } from "../ObservabilityProvider/sanitization.js";
9
9
  import { SDKI18next as m } from "./SDKI18next.js";
10
- import { InternalError as z } from "../../components/Common/InternalError/InternalError.js";
11
- import "../ComponentAdapter/useComponentContext.js";
12
- import { LocaleProvider as D } from "../LocaleProvider/LocaleProvider.js";
10
+ import { InternalError as D } from "../../components/Common/InternalError/InternalError.js";
11
+ import { LocaleProvider as U } from "../LocaleProvider/LocaleProvider.js";
13
12
  import "../LocaleProvider/useLocale.js";
14
- import { ThemeProvider as U } from "../ThemeProvider/ThemeProvider.js";
15
- import { normalizeToSDKError as T } from "../../types/sdkError.js";
16
- import { ObservabilityProvider as w } from "../ObservabilityProvider/ObservabilityProvider.js";
17
- function X(s) {
13
+ import { ThemeProvider as T } from "../ThemeProvider/ThemeProvider.js";
14
+ import { normalizeToSDKError as w } from "../../types/sdkError.js";
15
+ import { NonceContext as A } from "../NonceProvider/useNonce.js";
16
+ import { ObservabilityProvider as B } from "../ObservabilityProvider/ObservabilityProvider.js";
17
+ function Z(l) {
18
18
  const {
19
- children: l,
19
+ children: s,
20
20
  config: r,
21
21
  dictionary: i,
22
22
  lng: n = "en",
23
23
  locale: c = "en-US",
24
24
  currency: d = "USD",
25
25
  theme: p,
26
+ nonce: v,
26
27
  portalContainer: f,
27
- components: v,
28
- LoaderComponent: u,
29
- queryClient: b
30
- } = s;
28
+ components: u,
29
+ LoaderComponent: b,
30
+ queryClient: h
31
+ } = l;
31
32
  if (i)
32
33
  for (const t in i) {
33
34
  const e = t;
@@ -40,33 +41,33 @@ function X(s) {
40
41
  !0
41
42
  );
42
43
  }
43
- k(() => {
44
+ C(() => {
44
45
  (async () => await m.changeLanguage(n))();
45
46
  }, [n]);
46
- const h = C(() => {
47
+ const y = S(() => {
47
48
  if (r.observability?.onError)
48
49
  return (t, e) => {
49
50
  if (!r.observability?.onError) return;
50
- const y = {
51
- ...T(t),
51
+ const E = {
52
+ ...w(t),
52
53
  timestamp: Date.now(),
53
54
  componentStack: e.componentStack ?? void 0
54
- }, E = x(y, r.observability.sanitization);
55
- r.observability.onError(E);
55
+ }, g = z(E, r.observability.sanitization);
56
+ r.observability.onError(g);
56
57
  };
57
58
  }, [r.observability]);
58
- return /* @__PURE__ */ o(S, { value: v, children: /* @__PURE__ */ o(L, { value: u, children: /* @__PURE__ */ o(w, { observability: r.observability, children: /* @__PURE__ */ o(g, { FallbackComponent: z, onError: h, children: /* @__PURE__ */ o(U, { theme: p, portalContainer: f, children: /* @__PURE__ */ o(D, { locale: c, currency: d, children: /* @__PURE__ */ o(P, { i18n: m, children: /* @__PURE__ */ o(
59
+ return /* @__PURE__ */ o(A.Provider, { value: v, children: /* @__PURE__ */ o(x, { value: u, children: /* @__PURE__ */ o(L, { value: b, children: /* @__PURE__ */ o(B, { observability: r.observability, children: /* @__PURE__ */ o(P, { FallbackComponent: D, onError: y, children: /* @__PURE__ */ o(T, { theme: p, portalContainer: f, children: /* @__PURE__ */ o(U, { locale: c, currency: d, children: /* @__PURE__ */ o(k, { i18n: m, children: /* @__PURE__ */ o(
59
60
  I,
60
61
  {
61
62
  url: r.baseUrl,
62
63
  headers: r.headers,
63
64
  hooks: r.hooks,
64
- queryClient: b,
65
- children: l
65
+ queryClient: h,
66
+ children: s
66
67
  }
67
- ) }, n) }) }) }) }) }) });
68
+ ) }, n) }) }) }) }) }) }) });
68
69
  }
69
70
  export {
70
- X as GustoProviderCustomUIAdapter
71
+ Z as GustoProviderCustomUIAdapter
71
72
  };
72
73
  //# sourceMappingURL=GustoProviderCustomUIAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GustoProviderCustomUIAdapter.js","sources":["../../../src/contexts/GustoProvider/GustoProviderCustomUIAdapter.tsx"],"sourcesContent":["import type React from 'react'\nimport type { ErrorInfo, JSX, ReactNode } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { I18nextProvider } from 'react-i18next'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useEffect, useMemo } from 'react'\nimport { ComponentsProvider } from '../ComponentAdapter/ComponentsProvider'\nimport type { ComponentsContextType } from '../ComponentAdapter/useComponentContext'\nimport { ApiProvider } from '../ApiProvider/ApiProvider'\nimport { LoadingIndicatorProvider } from '../LoadingIndicatorProvider/LoadingIndicatorProvider'\nimport { ObservabilityProvider } from '../ObservabilityProvider'\nimport { sanitizeError } from '../ObservabilityProvider/sanitization'\nimport { SDKI18next } from './SDKI18next'\nimport { InternalError } from '@/components/Common'\nimport { LocaleProvider } from '@/contexts/LocaleProvider'\nimport { ThemeProvider } from '@/contexts/ThemeProvider'\nimport type { GustoSDKTheme } from '@/contexts/ThemeProvider/theme'\nimport type { GlobalResourceDictionary, SupportedLanguages } from '@/types/Helpers'\nimport type { SDKHooks } from '@/types/hooks'\nimport type { ObservabilityHook } from '@/types/observability'\nimport { normalizeToSDKError } from '@/types/sdkError'\n\n/**\n * API client configuration passed to {@link GustoProvider} (and {@link GustoProviderCustomUIAdapter}).\n *\n * @public\n */\nexport interface APIConfig {\n /** URL of your backend proxy that forwards SDK requests to the Gusto Embedded API. SDK components never call Gusto directly. */\n baseUrl: string\n /** Extra headers applied to every API request. Combined with any headers your proxy adds. */\n headers?: HeadersInit\n /** Request interceptor hooks. Use these to inspect, modify, or react to requests and responses. See {@link SDKHooks}. */\n hooks?: SDKHooks\n /** Observability hook for surfacing errors and metrics from the SDK to your monitoring stack. See {@link ObservabilityHook}. */\n observability?: ObservabilityHook\n}\n\n/**\n * Shared configuration props accepted by {@link GustoProvider} and {@link GustoProviderCustomUIAdapter}.\n *\n * @public\n */\nexport interface GustoBaseProviderProps {\n /** API client configuration, including the proxy `baseUrl`, request hooks, and observability. See {@link APIConfig}. */\n config: APIConfig\n /** Translation overrides keyed by language and i18next namespace. Strings supplied here replace the SDK defaults for the matching keys. */\n dictionary?: GlobalResourceDictionary\n /** Active i18next language. Defaults to `'en'`. */\n lng?: string\n /** BCP 47 locale used for number, date, and currency formatting throughout the SDK. Defaults to `'en-US'`. */\n locale?: string\n /** ISO 4217 currency code used for monetary formatting. Defaults to `'USD'`. */\n currency?: string\n /** Theme overrides applied to SDK components. See {@link GustoSDKTheme}. */\n theme?: Partial<GustoSDKTheme>\n /** Element to use as the portal container for SDK popovers and dropdowns. Useful when rendering inside a modal or shadow root. */\n portalContainer?: HTMLElement\n /** Optional TanStack Query `QueryClient`. When omitted, the SDK creates its own client configured for Gusto's API. */\n queryClient?: QueryClient\n /** Complete map of UI components the SDK renders. Required because this adapter ships no defaults. */\n components: ComponentsContextType\n /** Loading indicator rendered while SDK queries are pending. Overrides the SDK default spinner. */\n LoaderComponent?: ({ children }: { children?: ReactNode }) => JSX.Element\n}\n\n/**\n * Props for {@link GustoProviderCustomUIAdapter}.\n *\n * @public\n */\nexport interface GustoProviderCustomUIAdapterProps extends GustoBaseProviderProps {\n /** The application tree that should have access to the SDK. */\n children?: React.ReactNode\n}\n\n/**\n * Top-level provider that requires a complete component map and ships no UI defaults.\n *\n * @remarks\n * Use this adapter when you want full control over every UI primitive the SDK renders, or when\n * you want to avoid the React Aria dependency for tree-shaking. Unlike {@link GustoProvider}, the\n * `components` prop on {@link GustoProviderProps} is required and must supply every component the\n * SDK renders.\n *\n * @param props - See {@link GustoProviderCustomUIAdapterProps}.\n * @returns The configured provider tree wrapping `children`.\n * @public\n * @group Providers\n */\nexport function GustoProviderCustomUIAdapter(props: GustoProviderCustomUIAdapterProps) {\n const {\n children,\n config,\n dictionary,\n lng = 'en',\n locale = 'en-US',\n currency = 'USD',\n theme,\n portalContainer,\n components,\n LoaderComponent,\n queryClient,\n } = props\n\n if (dictionary) {\n for (const language in dictionary) {\n const lang = language as SupportedLanguages\n for (const ns in dictionary[lang]) {\n SDKI18next.addResourceBundle(\n lang,\n ns,\n (dictionary[lang] as Record<string, unknown>)[ns],\n true,\n true,\n )\n }\n }\n }\n\n useEffect(() => {\n void (async () => {\n await SDKI18next.changeLanguage(lng)\n })()\n }, [lng])\n\n const handleTopLevelError = useMemo(() => {\n if (!config.observability?.onError) return undefined\n\n return (error: unknown, errorInfo: ErrorInfo) => {\n if (!config.observability?.onError) return\n\n const sdkError = normalizeToSDKError(error)\n\n const observabilityError = {\n ...sdkError,\n timestamp: Date.now(),\n componentStack: errorInfo.componentStack ?? undefined,\n }\n\n const sanitizedError = sanitizeError(observabilityError, config.observability.sanitization)\n\n config.observability.onError(sanitizedError)\n }\n }, [config.observability])\n return (\n <ComponentsProvider value={components}>\n <LoadingIndicatorProvider value={LoaderComponent}>\n <ObservabilityProvider observability={config.observability}>\n <ErrorBoundary FallbackComponent={InternalError} onError={handleTopLevelError}>\n <ThemeProvider theme={theme} portalContainer={portalContainer}>\n <LocaleProvider locale={locale} currency={currency}>\n <I18nextProvider i18n={SDKI18next} key={lng}>\n <ApiProvider\n url={config.baseUrl}\n headers={config.headers}\n hooks={config.hooks}\n queryClient={queryClient}\n >\n {children}\n </ApiProvider>\n </I18nextProvider>\n </LocaleProvider>\n </ThemeProvider>\n </ErrorBoundary>\n </ObservabilityProvider>\n </LoadingIndicatorProvider>\n </ComponentsProvider>\n )\n}\n"],"names":["GustoProviderCustomUIAdapter","props","children","config","dictionary","lng","locale","currency","theme","portalContainer","components","LoaderComponent","queryClient","language","lang","ns","SDKI18next","useEffect","handleTopLevelError","useMemo","error","errorInfo","observabilityError","normalizeToSDKError","sanitizedError","sanitizeError","jsx","ComponentsProvider","LoadingIndicatorProvider","ObservabilityProvider","ErrorBoundary","InternalError","ThemeProvider","LocaleProvider","I18nextProvider","ApiProvider"],"mappings":";;;;;;;;;;;;;;;;AA0FO,SAASA,EAA6BC,GAA0C;AACrF,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,KAAAC,IAAM;AAAA,IACN,QAAAC,IAAS;AAAA,IACT,UAAAC,IAAW;AAAA,IACX,OAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,IACEX;AAEJ,MAAIG;AACF,eAAWS,KAAYT,GAAY;AACjC,YAAMU,IAAOD;AACb,iBAAWE,KAAMX,EAAWU,CAAI;AAC9B,QAAAE,EAAW;AAAA,UACTF;AAAA,UACAC;AAAA,UACCX,EAAWU,CAAI,EAA8BC,CAAE;AAAA,UAChD;AAAA,UACA;AAAA,QAAA;AAAA,IAGN;AAGF,EAAAE,EAAU,MAAM;AACd,KAAM,YACJ,MAAMD,EAAW,eAAeX,CAAG;AAAA,EAEvC,GAAG,CAACA,CAAG,CAAC;AAER,QAAMa,IAAsBC,EAAQ,MAAM;AACxC,QAAKhB,EAAO,eAAe;AAE3B,aAAO,CAACiB,GAAgBC,MAAyB;AAC/C,YAAI,CAAClB,EAAO,eAAe,QAAS;AAIpC,cAAMmB,IAAqB;AAAA,UACzB,GAHeC,EAAoBH,CAAK;AAAA,UAIxC,WAAW,KAAK,IAAA;AAAA,UAChB,gBAAgBC,EAAU,kBAAkB;AAAA,QAAA,GAGxCG,IAAiBC,EAAcH,GAAoBnB,EAAO,cAAc,YAAY;AAE1F,QAAAA,EAAO,cAAc,QAAQqB,CAAc;AAAA,MAC7C;AAAA,EACF,GAAG,CAACrB,EAAO,aAAa,CAAC;AACzB,SACE,gBAAAuB,EAACC,GAAA,EAAmB,OAAOjB,GACzB,UAAA,gBAAAgB,EAACE,GAAA,EAAyB,OAAOjB,GAC/B,UAAA,gBAAAe,EAACG,GAAA,EAAsB,eAAe1B,EAAO,eAC3C,UAAA,gBAAAuB,EAACI,GAAA,EAAc,mBAAmBC,GAAe,SAASb,GACxD,UAAA,gBAAAQ,EAACM,GAAA,EAAc,OAAAxB,GAAc,iBAAAC,GAC3B,UAAA,gBAAAiB,EAACO,GAAA,EAAe,QAAA3B,GAAgB,UAAAC,GAC9B,UAAA,gBAAAmB,EAACQ,GAAA,EAAgB,MAAMlB,GACrB,UAAA,gBAAAU;AAAA,IAACS;AAAA,IAAA;AAAA,MACC,KAAKhC,EAAO;AAAA,MACZ,SAASA,EAAO;AAAA,MAChB,OAAOA,EAAO;AAAA,MACd,aAAAS;AAAA,MAEC,UAAAV;AAAA,IAAA;AAAA,EAAA,KAPmCG,CASxC,GACF,GACF,EAAA,CACF,EAAA,CACF,GACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"GustoProviderCustomUIAdapter.js","sources":["../../../src/contexts/GustoProvider/GustoProviderCustomUIAdapter.tsx"],"sourcesContent":["import type React from 'react'\nimport type { ErrorInfo, JSX, ReactNode } from 'react'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { I18nextProvider } from 'react-i18next'\nimport type { QueryClient } from '@tanstack/react-query'\nimport { useEffect, useMemo } from 'react'\nimport { ComponentsProvider } from '../ComponentAdapter/ComponentsProvider'\nimport type { ComponentsContextType } from '../ComponentAdapter/useComponentContext'\nimport { ApiProvider } from '../ApiProvider/ApiProvider'\nimport { LoadingIndicatorProvider } from '../LoadingIndicatorProvider/LoadingIndicatorProvider'\nimport { ObservabilityProvider } from '../ObservabilityProvider'\nimport { sanitizeError } from '../ObservabilityProvider/sanitization'\nimport { SDKI18next } from './SDKI18next'\nimport { InternalError } from '@/components/Common'\nimport { LocaleProvider } from '@/contexts/LocaleProvider'\nimport { NonceContext } from '@/contexts/NonceProvider'\nimport { ThemeProvider } from '@/contexts/ThemeProvider'\nimport type { GustoSDKTheme } from '@/contexts/ThemeProvider/theme'\nimport type { GlobalResourceDictionary, SupportedLanguages } from '@/types/Helpers'\nimport type { SDKHooks } from '@/types/hooks'\nimport type { ObservabilityHook } from '@/types/observability'\nimport { normalizeToSDKError } from '@/types/sdkError'\n\n/**\n * API client configuration passed to {@link GustoProvider} (and {@link GustoProviderCustomUIAdapter}).\n *\n * @public\n */\nexport interface APIConfig {\n /** URL of your backend proxy that forwards SDK requests to the Gusto Embedded API. SDK components never call Gusto directly. */\n baseUrl: string\n /** Extra headers applied to every API request. Combined with any headers your proxy adds. */\n headers?: HeadersInit\n /** Request interceptor hooks. Use these to inspect, modify, or react to requests and responses. See {@link SDKHooks}. */\n hooks?: SDKHooks\n /** Observability hook for surfacing errors and metrics from the SDK to your monitoring stack. See {@link ObservabilityHook}. */\n observability?: ObservabilityHook\n}\n\n/**\n * Shared configuration props accepted by {@link GustoProvider} and {@link GustoProviderCustomUIAdapter}.\n *\n * @public\n */\nexport interface GustoBaseProviderProps {\n /** API client configuration, including the proxy `baseUrl`, request hooks, and observability. See {@link APIConfig}. */\n config: APIConfig\n /** Translation overrides keyed by language and i18next namespace. Strings supplied here replace the SDK defaults for the matching keys. */\n dictionary?: GlobalResourceDictionary\n /** Active i18next language. Defaults to `'en'`. */\n lng?: string\n /** BCP 47 locale used for number, date, and currency formatting throughout the SDK. Defaults to `'en-US'`. */\n locale?: string\n /** ISO 4217 currency code used for monetary formatting. Defaults to `'USD'`. */\n currency?: string\n /** Theme overrides applied to SDK components. See {@link GustoSDKTheme}. */\n theme?: Partial<GustoSDKTheme>\n /**\n * CSP nonce to apply to runtime-injected `<style>` elements (theming, PDF download window).\n * Pass the same per-request nonce your app uses in its `style-src 'nonce-…'` directive.\n * Also exposed to custom UI components via `useNonce`.\n */\n nonce?: string\n /** Element to use as the portal container for SDK popovers and dropdowns. Useful when rendering inside a modal or shadow root. */\n portalContainer?: HTMLElement\n /** Optional TanStack Query `QueryClient`. When omitted, the SDK creates its own client configured for Gusto's API. */\n queryClient?: QueryClient\n /** Complete map of UI components the SDK renders. Required because this adapter ships no defaults. */\n components: ComponentsContextType\n /** Loading indicator rendered while SDK queries are pending. Overrides the SDK default spinner. */\n LoaderComponent?: ({ children }: { children?: ReactNode }) => JSX.Element\n}\n\n/**\n * Props for {@link GustoProviderCustomUIAdapter}.\n *\n * @public\n */\nexport interface GustoProviderCustomUIAdapterProps extends GustoBaseProviderProps {\n /** The application tree that should have access to the SDK. */\n children?: React.ReactNode\n}\n\n/**\n * Top-level provider that requires a complete component map and ships no UI defaults.\n *\n * @remarks\n * Use this adapter when you want full control over every UI primitive the SDK renders, or when\n * you want to avoid the React Aria dependency for tree-shaking. Unlike {@link GustoProvider}, the\n * `components` prop on {@link GustoProviderProps} is required and must supply every component the\n * SDK renders.\n *\n * @param props - See {@link GustoProviderCustomUIAdapterProps}.\n * @returns The configured provider tree wrapping `children`.\n * @public\n * @group Providers\n */\nexport function GustoProviderCustomUIAdapter(props: GustoProviderCustomUIAdapterProps) {\n const {\n children,\n config,\n dictionary,\n lng = 'en',\n locale = 'en-US',\n currency = 'USD',\n theme,\n nonce,\n portalContainer,\n components,\n LoaderComponent,\n queryClient,\n } = props\n\n if (dictionary) {\n for (const language in dictionary) {\n const lang = language as SupportedLanguages\n for (const ns in dictionary[lang]) {\n SDKI18next.addResourceBundle(\n lang,\n ns,\n (dictionary[lang] as Record<string, unknown>)[ns],\n true,\n true,\n )\n }\n }\n }\n\n useEffect(() => {\n void (async () => {\n await SDKI18next.changeLanguage(lng)\n })()\n }, [lng])\n\n const handleTopLevelError = useMemo(() => {\n if (!config.observability?.onError) return undefined\n\n return (error: unknown, errorInfo: ErrorInfo) => {\n if (!config.observability?.onError) return\n\n const sdkError = normalizeToSDKError(error)\n\n const observabilityError = {\n ...sdkError,\n timestamp: Date.now(),\n componentStack: errorInfo.componentStack ?? undefined,\n }\n\n const sanitizedError = sanitizeError(observabilityError, config.observability.sanitization)\n\n config.observability.onError(sanitizedError)\n }\n }, [config.observability])\n return (\n <NonceContext.Provider value={nonce}>\n <ComponentsProvider value={components}>\n <LoadingIndicatorProvider value={LoaderComponent}>\n <ObservabilityProvider observability={config.observability}>\n <ErrorBoundary FallbackComponent={InternalError} onError={handleTopLevelError}>\n <ThemeProvider theme={theme} portalContainer={portalContainer}>\n <LocaleProvider locale={locale} currency={currency}>\n <I18nextProvider i18n={SDKI18next} key={lng}>\n <ApiProvider\n url={config.baseUrl}\n headers={config.headers}\n hooks={config.hooks}\n queryClient={queryClient}\n >\n {children}\n </ApiProvider>\n </I18nextProvider>\n </LocaleProvider>\n </ThemeProvider>\n </ErrorBoundary>\n </ObservabilityProvider>\n </LoadingIndicatorProvider>\n </ComponentsProvider>\n </NonceContext.Provider>\n )\n}\n"],"names":["GustoProviderCustomUIAdapter","props","children","config","dictionary","lng","locale","currency","theme","nonce","portalContainer","components","LoaderComponent","queryClient","language","lang","ns","SDKI18next","useEffect","handleTopLevelError","useMemo","error","errorInfo","observabilityError","normalizeToSDKError","sanitizedError","sanitizeError","NonceContext","jsx","ComponentsProvider","LoadingIndicatorProvider","ObservabilityProvider","ErrorBoundary","InternalError","ThemeProvider","LocaleProvider","I18nextProvider","ApiProvider"],"mappings":";;;;;;;;;;;;;;;;AAiGO,SAASA,EAA6BC,GAA0C;AACrF,QAAM;AAAA,IACJ,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,YAAAC;AAAA,IACA,KAAAC,IAAM;AAAA,IACN,QAAAC,IAAS;AAAA,IACT,UAAAC,IAAW;AAAA,IACX,OAAAC;AAAA,IACA,OAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,EAAA,IACEZ;AAEJ,MAAIG;AACF,eAAWU,KAAYV,GAAY;AACjC,YAAMW,IAAOD;AACb,iBAAWE,KAAMZ,EAAWW,CAAI;AAC9B,QAAAE,EAAW;AAAA,UACTF;AAAA,UACAC;AAAA,UACCZ,EAAWW,CAAI,EAA8BC,CAAE;AAAA,UAChD;AAAA,UACA;AAAA,QAAA;AAAA,IAGN;AAGF,EAAAE,EAAU,MAAM;AACd,KAAM,YACJ,MAAMD,EAAW,eAAeZ,CAAG;AAAA,EAEvC,GAAG,CAACA,CAAG,CAAC;AAER,QAAMc,IAAsBC,EAAQ,MAAM;AACxC,QAAKjB,EAAO,eAAe;AAE3B,aAAO,CAACkB,GAAgBC,MAAyB;AAC/C,YAAI,CAACnB,EAAO,eAAe,QAAS;AAIpC,cAAMoB,IAAqB;AAAA,UACzB,GAHeC,EAAoBH,CAAK;AAAA,UAIxC,WAAW,KAAK,IAAA;AAAA,UAChB,gBAAgBC,EAAU,kBAAkB;AAAA,QAAA,GAGxCG,IAAiBC,EAAcH,GAAoBpB,EAAO,cAAc,YAAY;AAE1F,QAAAA,EAAO,cAAc,QAAQsB,CAAc;AAAA,MAC7C;AAAA,EACF,GAAG,CAACtB,EAAO,aAAa,CAAC;AACzB,2BACGwB,EAAa,UAAb,EAAsB,OAAOlB,GAC5B,UAAA,gBAAAmB,EAACC,GAAA,EAAmB,OAAOlB,GACzB,4BAACmB,GAAA,EAAyB,OAAOlB,GAC/B,UAAA,gBAAAgB,EAACG,KAAsB,eAAe5B,EAAO,eAC3C,UAAA,gBAAAyB,EAACI,KAAc,mBAAmBC,GAAe,SAASd,GACxD,4BAACe,GAAA,EAAc,OAAA1B,GAAc,iBAAAE,GAC3B,UAAA,gBAAAkB,EAACO,KAAe,QAAA7B,GAAgB,UAAAC,GAC9B,UAAA,gBAAAqB,EAACQ,GAAA,EAAgB,MAAMnB,GACrB,UAAA,gBAAAW;AAAA,IAACS;AAAA,IAAA;AAAA,MACC,KAAKlC,EAAO;AAAA,MACZ,SAASA,EAAO;AAAA,MAChB,OAAOA,EAAO;AAAA,MACd,aAAAU;AAAA,MAEC,UAAAX;AAAA,IAAA;AAAA,EAAA,KAPmCG,CASxC,EAAA,CACF,EAAA,CACF,GACF,GACF,EAAA,CACF,GACF,GACF;AAEJ;"}
@@ -13,7 +13,7 @@ export interface LocaleProps {
13
13
  currency?: string;
14
14
  }
15
15
  /**
16
- * React context backing {@link useLocale} and {@link useLocaleDateFormatter}.
16
+ * React context backing {@link useLocale}.
17
17
  *
18
18
  * @internal
19
19
  */
@@ -39,11 +39,3 @@ export declare const useLocale: () => {
39
39
  locale: string;
40
40
  currency: string;
41
41
  };
42
- /**
43
- * Returns an `Intl.DateTimeFormat` configured with the active locale and a long-month, numeric-year, two-digit-day style.
44
- *
45
- * @returns An `Intl.DateTimeFormat` instance bound to the provider's locale (or `en-US` if unset).
46
- * @throws An `Error` when called outside a {@link LocaleProvider}.
47
- * @internal
48
- */
49
- export declare const useLocaleDateFormatter: () => Intl.DateTimeFormat;
@@ -1,25 +1,15 @@
1
- import { createContext as t, useContext as o } from "react";
2
- const r = t(null), a = () => {
3
- const e = o(r);
1
+ import { createContext as o, useContext as r } from "react";
2
+ const t = o(null), n = () => {
3
+ const e = r(t);
4
4
  if (!e)
5
5
  throw new Error("useLocal used outside provider");
6
6
  return {
7
7
  locale: e.locale ?? "en-US",
8
8
  currency: e.currency ?? "USD"
9
9
  };
10
- }, c = () => {
11
- const e = o(r);
12
- if (!e)
13
- throw new Error("useLocaleDateFormatter used outside provider");
14
- return new Intl.DateTimeFormat(e.locale ?? "en-US", {
15
- year: "numeric",
16
- month: "long",
17
- day: "2-digit"
18
- });
19
10
  };
20
11
  export {
21
- r as LocaleContext,
22
- a as useLocale,
23
- c as useLocaleDateFormatter
12
+ t as LocaleContext,
13
+ n as useLocale
24
14
  };
25
15
  //# sourceMappingURL=useLocale.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocale.js","sources":["../../../src/contexts/LocaleProvider/useLocale.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\n/**\n * Locale and currency settings supplied to {@link LocaleProvider}.\n *\n * @remarks\n * `locale` is a BCP 47 language tag (defaults to `en-US`) used for `Intl` formatting and the\n * rendered wrapper's `lang` attribute. `currency` is an ISO 4217 currency code (defaults to\n * `USD`) consumed by currency-aware inputs.\n *\n * @internal\n */\nexport interface LocaleProps {\n locale?: string\n currency?: string\n}\n\n/**\n * React context backing {@link useLocale} and {@link useLocaleDateFormatter}.\n *\n * @internal\n */\nexport const LocaleContext = createContext<LocaleProps | null>(null)\n\n/**\n * Returns the active locale and currency from the surrounding {@link LocaleProvider}.\n *\n * @returns An object with `locale` (defaulting to `en-US`) and `currency` (defaulting to `USD`).\n * @throws An `Error` when called outside a {@link LocaleProvider}.\n * @internal\n *\n * @example\n * ```tsx\n * import { useLocale } from '@gusto/embedded-react-sdk'\n *\n * function Amount({ value }: { value: number }) {\n * const { locale, currency } = useLocale()\n * return <span>{new Intl.NumberFormat(locale, { style: 'currency', currency }).format(value)}</span>\n * }\n * ```\n */\nexport const useLocale = () => {\n const values = useContext(LocaleContext)\n if (!values) {\n throw new Error('useLocal used outside provider')\n }\n return {\n locale: values.locale ?? 'en-US',\n currency: values.currency ?? 'USD',\n }\n}\n/**\n * Returns an `Intl.DateTimeFormat` configured with the active locale and a long-month, numeric-year, two-digit-day style.\n *\n * @returns An `Intl.DateTimeFormat` instance bound to the provider's locale (or `en-US` if unset).\n * @throws An `Error` when called outside a {@link LocaleProvider}.\n * @internal\n */\nexport const useLocaleDateFormatter = () => {\n const values = useContext(LocaleContext)\n if (!values) {\n throw new Error('useLocaleDateFormatter used outside provider')\n }\n return new Intl.DateTimeFormat(values.locale ?? 'en-US', {\n year: 'numeric',\n month: 'long',\n day: '2-digit',\n })\n}\n"],"names":["LocaleContext","createContext","useLocale","values","useContext","useLocaleDateFormatter"],"mappings":";AAsBO,MAAMA,IAAgBC,EAAkC,IAAI,GAmBtDC,IAAY,MAAM;AAC7B,QAAMC,IAASC,EAAWJ,CAAa;AACvC,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,gCAAgC;AAElD,SAAO;AAAA,IACL,QAAQA,EAAO,UAAU;AAAA,IACzB,UAAUA,EAAO,YAAY;AAAA,EAAA;AAEjC,GAQaE,IAAyB,MAAM;AAC1C,QAAMF,IAASC,EAAWJ,CAAa;AACvC,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,8CAA8C;AAEhE,SAAO,IAAI,KAAK,eAAeA,EAAO,UAAU,SAAS;AAAA,IACvD,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EAAA,CACN;AACH;"}
1
+ {"version":3,"file":"useLocale.js","sources":["../../../src/contexts/LocaleProvider/useLocale.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\n/**\n * Locale and currency settings supplied to {@link LocaleProvider}.\n *\n * @remarks\n * `locale` is a BCP 47 language tag (defaults to `en-US`) used for `Intl` formatting and the\n * rendered wrapper's `lang` attribute. `currency` is an ISO 4217 currency code (defaults to\n * `USD`) consumed by currency-aware inputs.\n *\n * @internal\n */\nexport interface LocaleProps {\n locale?: string\n currency?: string\n}\n\n/**\n * React context backing {@link useLocale}.\n *\n * @internal\n */\nexport const LocaleContext = createContext<LocaleProps | null>(null)\n\n/**\n * Returns the active locale and currency from the surrounding {@link LocaleProvider}.\n *\n * @returns An object with `locale` (defaulting to `en-US`) and `currency` (defaulting to `USD`).\n * @throws An `Error` when called outside a {@link LocaleProvider}.\n * @internal\n *\n * @example\n * ```tsx\n * import { useLocale } from '@gusto/embedded-react-sdk'\n *\n * function Amount({ value }: { value: number }) {\n * const { locale, currency } = useLocale()\n * return <span>{new Intl.NumberFormat(locale, { style: 'currency', currency }).format(value)}</span>\n * }\n * ```\n */\nexport const useLocale = () => {\n const values = useContext(LocaleContext)\n if (!values) {\n throw new Error('useLocal used outside provider')\n }\n return {\n locale: values.locale ?? 'en-US',\n currency: values.currency ?? 'USD',\n }\n}\n"],"names":["LocaleContext","createContext","useLocale","values","useContext"],"mappings":";AAsBO,MAAMA,IAAgBC,EAAkC,IAAI,GAmBtDC,IAAY,MAAM;AAC7B,QAAMC,IAASC,EAAWJ,CAAa;AACvC,MAAI,CAACG;AACH,UAAM,IAAI,MAAM,gCAAgC;AAElD,SAAO;AAAA,IACL,QAAQA,EAAO,UAAU;AAAA,IACzB,UAAUA,EAAO,YAAY;AAAA,EAAA;AAEjC;"}
@@ -0,0 +1 @@
1
+ export { NonceContext, useNonce } from './useNonce';
@@ -0,0 +1,37 @@
1
+ /**
2
+ * React context backing {@link useNonce}.
3
+ *
4
+ * @internal
5
+ */
6
+ export declare const NonceContext: import('react').Context<string | undefined>;
7
+ /**
8
+ * Returns the CSP nonce supplied to {@link GustoProvider}, or `undefined` when none was provided.
9
+ *
10
+ * @remarks
11
+ * Use this when a custom UI component or partner-provided code injects a runtime `<style>` or
12
+ * `<script>` element and the integrating app serves a nonce-based Content Security Policy.
13
+ * Apply the returned value as the `nonce` property on the created element (e.g.
14
+ * `el.nonce = useNonce()`) before appending it to the document.
15
+ *
16
+ * @returns The active nonce, or `undefined` when {@link GustoProvider} was not given a `nonce`.
17
+ * @public
18
+ * @page providers
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * import { useNonce } from '@gusto/embedded-react-sdk'
23
+ *
24
+ * function InjectThemeStyles({ css }: { css: string }) {
25
+ * const nonce = useNonce()
26
+ * useEffect(() => {
27
+ * const el = document.createElement('style')
28
+ * if (nonce) el.nonce = nonce
29
+ * el.textContent = css
30
+ * document.head.appendChild(el)
31
+ * return () => el.remove()
32
+ * }, [css, nonce])
33
+ * return null
34
+ * }
35
+ * ```
36
+ */
37
+ export declare const useNonce: () => string | undefined;
@@ -0,0 +1,7 @@
1
+ import { useContext as o, createContext as t } from "react";
2
+ const e = t(void 0), c = () => o(e);
3
+ export {
4
+ e as NonceContext,
5
+ c as useNonce
6
+ };
7
+ //# sourceMappingURL=useNonce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNonce.js","sources":["../../../src/contexts/NonceProvider/useNonce.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\n/**\n * React context backing {@link useNonce}.\n *\n * @internal\n */\nexport const NonceContext = createContext<string | undefined>(undefined)\n\n/**\n * Returns the CSP nonce supplied to {@link GustoProvider}, or `undefined` when none was provided.\n *\n * @remarks\n * Use this when a custom UI component or partner-provided code injects a runtime `<style>` or\n * `<script>` element and the integrating app serves a nonce-based Content Security Policy.\n * Apply the returned value as the `nonce` property on the created element (e.g.\n * `el.nonce = useNonce()`) before appending it to the document.\n *\n * @returns The active nonce, or `undefined` when {@link GustoProvider} was not given a `nonce`.\n * @public\n * @page providers\n *\n * @example\n * ```tsx\n * import { useNonce } from '@gusto/embedded-react-sdk'\n *\n * function InjectThemeStyles({ css }: { css: string }) {\n * const nonce = useNonce()\n * useEffect(() => {\n * const el = document.createElement('style')\n * if (nonce) el.nonce = nonce\n * el.textContent = css\n * document.head.appendChild(el)\n * return () => el.remove()\n * }, [css, nonce])\n * return null\n * }\n * ```\n */\nexport const useNonce = (): string | undefined => useContext(NonceContext)\n"],"names":["NonceContext","createContext","useNonce","useContext"],"mappings":";AAOO,MAAMA,IAAeC,EAAkC,MAAS,GAgC1DC,IAAW,MAA0BC,EAAWH,CAAY;"}
@@ -1,38 +1,39 @@
1
- import { jsx as m } from "react/jsx-runtime";
2
- import { useRef as u, useCallback as f, useMemo as a, useEffect as h } from "react";
3
- import { ThemeContext as p } from "./useTheme.js";
4
- import { mergePartnerTheme as C } from "./theme.js";
1
+ import { jsx as u } from "react/jsx-runtime";
2
+ import { useRef as a, useCallback as h, useMemo as i, useEffect as p } from "react";
3
+ import { ThemeContext as C } from "./useTheme.js";
4
+ import { mergePartnerTheme as S } from "./theme.js";
5
5
  /* empty css */
6
- const D = ({
7
- theme: n = {},
8
- portalContainer: t,
9
- children: o
6
+ import { useNonce as T } from "../NonceProvider/useNonce.js";
7
+ const g = ({
8
+ theme: o = {},
9
+ portalContainer: r,
10
+ children: n
10
11
  }) => {
11
- const e = u(null), r = u(null), i = f(
12
+ const t = T(), e = a(null), c = a(null), f = h(
12
13
  (d) => {
13
- r.current = t ?? d;
14
+ c.current = r ?? d;
14
15
  },
15
- [t]
16
- ), s = a(
17
- () => C(n),
18
- [n]
19
- ), c = a(
16
+ [r]
17
+ ), s = i(
18
+ () => S(o),
19
+ [o]
20
+ ), m = i(
20
21
  () => `.GSDK{
21
22
  ${l(s).join(`
22
23
  `)}
23
24
  }`,
24
25
  [s]
25
26
  );
26
- return h(() => {
27
- e.current || (e.current = document.createElement("style"), e.current.setAttribute("data-testid", "GSDK"), document.head.appendChild(e.current)), e.current.textContent = c;
28
- }, [c]), /* @__PURE__ */ m(p.Provider, { value: { container: r }, children: /* @__PURE__ */ m("article", { className: "GSDK", "data-testid": "GSDK", ref: i, children: o }) });
29
- }, l = (n, t) => {
30
- const o = [];
31
- for (const [e, r] of Object.entries(n))
32
- typeof r == "object" ? o.push(...l(r, t ? t + "-" + e : e)) : o.push(`--g-${t ? t + "-" + e : e}: ${r};`);
33
- return o;
27
+ return p(() => {
28
+ e.current || (e.current = document.createElement("style"), e.current.setAttribute("data-testid", "GSDK"), t && (e.current.nonce = t), document.head.appendChild(e.current)), e.current.textContent = m;
29
+ }, [m, t]), /* @__PURE__ */ u(C.Provider, { value: { container: c }, children: /* @__PURE__ */ u("article", { className: "GSDK", "data-testid": "GSDK", ref: f, children: n }) });
30
+ }, l = (o, r) => {
31
+ const n = [];
32
+ for (const [t, e] of Object.entries(o))
33
+ typeof e == "object" ? n.push(...l(e, r ? r + "-" + t : t)) : n.push(`--g-${r ? r + "-" + t : t}: ${e};`);
34
+ return n;
34
35
  };
35
36
  export {
36
- D as ThemeProvider
37
+ g as ThemeProvider
37
38
  };
38
39
  //# sourceMappingURL=ThemeProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","sources":["../../../src/contexts/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import type React from 'react'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { ThemeContext } from './useTheme'\nimport { mergePartnerTheme, type GustoSDKTheme } from './theme'\nimport '@/styles/sdk.scss'\n\n/** @internal */\nexport interface ThemeProviderProps {\n /** Partial set of theme tokens that override the SDK defaults. */\n theme?: Partial<GustoSDKTheme>\n /**\n * Element to use as the portal container for all SDK overlays (Select, ComboBox,\n * DatePicker, Menu, etc.). Defaults to the SDK's root article element.\n *\n * Pass `document.body` (or another stable element outside the SDK's container)\n * when your app's scroll or clipping context interferes with overlay positioning.\n */\n portalContainer?: HTMLElement\n /** Subtree rendered inside the SDK's themed root element. */\n children?: React.ReactNode\n}\n\n/** @internal */\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme: partnerThemeOverrides = {},\n portalContainer,\n children,\n}) => {\n const GThemeVariables = useRef<HTMLStyleElement | null>(null)\n const portalContainerRef = useRef<HTMLElement | null>(null)\n\n const articleRef = useCallback(\n (el: HTMLElement | null) => {\n portalContainerRef.current = portalContainer ?? el\n },\n [portalContainer],\n )\n\n const mergedTheme = useMemo(\n () => mergePartnerTheme(partnerThemeOverrides),\n [partnerThemeOverrides],\n )\n\n const cssContent = useMemo(\n () => `.GSDK{\\n${parseThemeToCSS(mergedTheme).join('\\n')}\\n}`,\n [mergedTheme],\n )\n\n useEffect(() => {\n if (!GThemeVariables.current) {\n GThemeVariables.current = document.createElement('style')\n GThemeVariables.current.setAttribute('data-testid', 'GSDK')\n document.head.appendChild(GThemeVariables.current)\n }\n\n GThemeVariables.current.textContent = cssContent\n }, [cssContent])\n\n return (\n <ThemeContext.Provider value={{ container: portalContainerRef }}>\n <article className=\"GSDK\" data-testid=\"GSDK\" ref={articleRef}>\n {children}\n </article>\n </ThemeContext.Provider>\n )\n}\n\n/**\n * Recursive flattening of the theme object into css variable format\n */\nconst parseThemeToCSS = (theme: Partial<GustoSDKTheme>, prefix?: string): string[] => {\n const cssProps: string[] = []\n for (const [key, value] of Object.entries(theme)) {\n if (typeof value === 'object') {\n cssProps.push(...parseThemeToCSS(value, prefix ? prefix + '-' + key : key))\n } else {\n cssProps.push(`--g-${prefix ? prefix + '-' + key : key}: ${value};`)\n }\n }\n return cssProps\n}\n"],"names":["ThemeProvider","partnerThemeOverrides","portalContainer","children","GThemeVariables","useRef","portalContainerRef","articleRef","useCallback","el","mergedTheme","useMemo","mergePartnerTheme","cssContent","parseThemeToCSS","useEffect","ThemeContext","jsx","theme","prefix","cssProps","key","value"],"mappings":";;;;;AAuBO,MAAMA,IAA8C,CAAC;AAAA,EAC1D,OAAOC,IAAwB,CAAA;AAAA,EAC/B,iBAAAC;AAAA,EACA,UAAAC;AACF,MAAM;AACJ,QAAMC,IAAkBC,EAAgC,IAAI,GACtDC,IAAqBD,EAA2B,IAAI,GAEpDE,IAAaC;AAAA,IACjB,CAACC,MAA2B;AAC1B,MAAAH,EAAmB,UAAUJ,KAAmBO;AAAA,IAClD;AAAA,IACA,CAACP,CAAe;AAAA,EAAA,GAGZQ,IAAcC;AAAA,IAClB,MAAMC,EAAkBX,CAAqB;AAAA,IAC7C,CAACA,CAAqB;AAAA,EAAA,GAGlBY,IAAaF;AAAA,IACjB,MAAM;AAAA,EAAWG,EAAgBJ,CAAW,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA;AAAA,IACxD,CAACA,CAAW;AAAA,EAAA;AAGd,SAAAK,EAAU,MAAM;AACd,IAAKX,EAAgB,YACnBA,EAAgB,UAAU,SAAS,cAAc,OAAO,GACxDA,EAAgB,QAAQ,aAAa,eAAe,MAAM,GAC1D,SAAS,KAAK,YAAYA,EAAgB,OAAO,IAGnDA,EAAgB,QAAQ,cAAcS;AAAA,EACxC,GAAG,CAACA,CAAU,CAAC,qBAGZG,EAAa,UAAb,EAAsB,OAAO,EAAE,WAAWV,EAAA,GACzC,UAAA,gBAAAW,EAAC,WAAA,EAAQ,WAAU,QAAO,eAAY,QAAO,KAAKV,GAC/C,UAAAJ,GACH,GACF;AAEJ,GAKMW,IAAkB,CAACI,GAA+BC,MAA8B;AACpF,QAAMC,IAAqB,CAAA;AAC3B,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAK;AAC7C,IAAI,OAAOI,KAAU,WACnBF,EAAS,KAAK,GAAGN,EAAgBQ,GAAOH,IAASA,IAAS,MAAME,IAAMA,CAAG,CAAC,IAE1ED,EAAS,KAAK,OAAOD,IAASA,IAAS,MAAME,IAAMA,CAAG,KAAKC,CAAK,GAAG;AAGvE,SAAOF;AACT;"}
1
+ {"version":3,"file":"ThemeProvider.js","sources":["../../../src/contexts/ThemeProvider/ThemeProvider.tsx"],"sourcesContent":["import type React from 'react'\nimport { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { ThemeContext } from './useTheme'\nimport { mergePartnerTheme, type GustoSDKTheme } from './theme'\nimport { useNonce } from '@/contexts/NonceProvider'\nimport '@/styles/sdk.scss'\n\n/** @internal */\nexport interface ThemeProviderProps {\n /** Partial set of theme tokens that override the SDK defaults. */\n theme?: Partial<GustoSDKTheme>\n /**\n * Element to use as the portal container for all SDK overlays (Select, ComboBox,\n * DatePicker, Menu, etc.). Defaults to the SDK's root article element.\n *\n * Pass `document.body` (or another stable element outside the SDK's container)\n * when your app's scroll or clipping context interferes with overlay positioning.\n */\n portalContainer?: HTMLElement\n /** Subtree rendered inside the SDK's themed root element. */\n children?: React.ReactNode\n}\n\n/** @internal */\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n theme: partnerThemeOverrides = {},\n portalContainer,\n children,\n}) => {\n const nonce = useNonce()\n const GThemeVariables = useRef<HTMLStyleElement | null>(null)\n const portalContainerRef = useRef<HTMLElement | null>(null)\n\n const articleRef = useCallback(\n (el: HTMLElement | null) => {\n portalContainerRef.current = portalContainer ?? el\n },\n [portalContainer],\n )\n\n const mergedTheme = useMemo(\n () => mergePartnerTheme(partnerThemeOverrides),\n [partnerThemeOverrides],\n )\n\n const cssContent = useMemo(\n () => `.GSDK{\\n${parseThemeToCSS(mergedTheme).join('\\n')}\\n}`,\n [mergedTheme],\n )\n\n useEffect(() => {\n if (!GThemeVariables.current) {\n GThemeVariables.current = document.createElement('style')\n GThemeVariables.current.setAttribute('data-testid', 'GSDK')\n if (nonce) GThemeVariables.current.nonce = nonce\n document.head.appendChild(GThemeVariables.current)\n }\n\n GThemeVariables.current.textContent = cssContent\n }, [cssContent, nonce])\n\n return (\n <ThemeContext.Provider value={{ container: portalContainerRef }}>\n <article className=\"GSDK\" data-testid=\"GSDK\" ref={articleRef}>\n {children}\n </article>\n </ThemeContext.Provider>\n )\n}\n\n/**\n * Recursive flattening of the theme object into css variable format\n */\nconst parseThemeToCSS = (theme: Partial<GustoSDKTheme>, prefix?: string): string[] => {\n const cssProps: string[] = []\n for (const [key, value] of Object.entries(theme)) {\n if (typeof value === 'object') {\n cssProps.push(...parseThemeToCSS(value, prefix ? prefix + '-' + key : key))\n } else {\n cssProps.push(`--g-${prefix ? prefix + '-' + key : key}: ${value};`)\n }\n }\n return cssProps\n}\n"],"names":["ThemeProvider","partnerThemeOverrides","portalContainer","children","nonce","useNonce","GThemeVariables","useRef","portalContainerRef","articleRef","useCallback","el","mergedTheme","useMemo","mergePartnerTheme","cssContent","parseThemeToCSS","useEffect","ThemeContext","jsx","theme","prefix","cssProps","key","value"],"mappings":";;;;;;AAwBO,MAAMA,IAA8C,CAAC;AAAA,EAC1D,OAAOC,IAAwB,CAAA;AAAA,EAC/B,iBAAAC;AAAA,EACA,UAAAC;AACF,MAAM;AACJ,QAAMC,IAAQC,EAAA,GACRC,IAAkBC,EAAgC,IAAI,GACtDC,IAAqBD,EAA2B,IAAI,GAEpDE,IAAaC;AAAA,IACjB,CAACC,MAA2B;AAC1B,MAAAH,EAAmB,UAAUN,KAAmBS;AAAA,IAClD;AAAA,IACA,CAACT,CAAe;AAAA,EAAA,GAGZU,IAAcC;AAAA,IAClB,MAAMC,EAAkBb,CAAqB;AAAA,IAC7C,CAACA,CAAqB;AAAA,EAAA,GAGlBc,IAAaF;AAAA,IACjB,MAAM;AAAA,EAAWG,EAAgBJ,CAAW,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA;AAAA,IACxD,CAACA,CAAW;AAAA,EAAA;AAGd,SAAAK,EAAU,MAAM;AACd,IAAKX,EAAgB,YACnBA,EAAgB,UAAU,SAAS,cAAc,OAAO,GACxDA,EAAgB,QAAQ,aAAa,eAAe,MAAM,GACtDF,MAAOE,EAAgB,QAAQ,QAAQF,IAC3C,SAAS,KAAK,YAAYE,EAAgB,OAAO,IAGnDA,EAAgB,QAAQ,cAAcS;AAAA,EACxC,GAAG,CAACA,GAAYX,CAAK,CAAC,qBAGnBc,EAAa,UAAb,EAAsB,OAAO,EAAE,WAAWV,EAAA,GACzC,UAAA,gBAAAW,EAAC,WAAA,EAAQ,WAAU,QAAO,eAAY,QAAO,KAAKV,GAC/C,UAAAN,GACH,GACF;AAEJ,GAKMa,IAAkB,CAACI,GAA+BC,MAA8B;AACpF,QAAMC,IAAqB,CAAA;AAC3B,aAAW,CAACC,GAAKC,CAAK,KAAK,OAAO,QAAQJ,CAAK;AAC7C,IAAI,OAAOI,KAAU,WACnBF,EAAS,KAAK,GAAGN,EAAgBQ,GAAOH,IAASA,IAAS,MAAME,IAAMA,CAAG,CAAC,IAE1ED,EAAS,KAAK,OAAOD,IAASA,IAAS,MAAME,IAAMA,CAAG,KAAKC,CAAK,GAAG;AAGvE,SAAOF;AACT;"}