@gusto/embedded-react-sdk 0.13.4 → 0.14.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 (144) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/assets/icons/spinner_large.svg.js +10 -0
  3. package/dist/assets/icons/spinner_large.svg.js.map +1 -0
  4. package/dist/components/Common/Flex/Flex.js +16 -12
  5. package/dist/components/Common/Flex/Flex.js.map +1 -1
  6. package/dist/components/Common/Loading/Loading.d.ts +5 -1
  7. package/dist/components/Common/Loading/Loading.js +9 -9
  8. package/dist/components/Common/Loading/Loading.js.map +1 -1
  9. package/dist/components/Common/Loading/Loading.module.scss.js +1 -1
  10. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.d.ts +3 -0
  11. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.js +25 -0
  12. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.js.map +1 -0
  13. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.module.scss.js +10 -0
  14. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinner.module.scss.js.map +1 -0
  15. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.d.ts +18 -0
  16. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js +8 -0
  17. package/dist/components/Common/UI/LoadingSpinner/LoadingSpinnerTypes.js.map +1 -0
  18. package/dist/components/Common/UI/LoadingSpinner/index.d.ts +4 -0
  19. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  20. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  21. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  22. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  23. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  24. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  25. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  26. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  27. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  28. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  29. package/dist/components/Company/DocumentSigner/DocumentSigner.js +0 -1
  30. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  31. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  32. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  33. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +9 -8
  34. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  35. package/dist/components/Company/Industry/Context.js +7 -6
  36. package/dist/components/Company/Industry/Context.js.map +1 -1
  37. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  38. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  39. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  40. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  41. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  42. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  43. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
  44. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  45. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  46. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  47. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  48. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  49. package/dist/components/Contractor/Address/useAddress.js +6 -5
  50. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  51. package/dist/components/Contractor/Profile/useContractorProfile.js +3 -2
  52. package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
  53. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js +3 -2
  54. package/dist/components/Employee/Deductions/DeductionsForm/ChildSupportForm.js.map +1 -1
  55. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js +25 -24
  56. package/dist/components/Employee/Deductions/DeductionsForm/CustomDeductionForm.js.map +1 -1
  57. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  58. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  59. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  60. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  61. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
  62. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  63. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js +4 -3
  64. package/dist/components/Employee/FederalTaxes/useFederalTaxes.js.map +1 -1
  65. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
  66. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  67. package/dist/components/Employee/Profile/useProfile.js +4 -3
  68. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  69. package/dist/components/Employee/StateTaxes/useStateTaxes.js +4 -3
  70. package/dist/components/Employee/StateTaxes/useStateTaxes.js.map +1 -1
  71. package/dist/components/Employee/Taxes/useTaxes.js +4 -3
  72. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  73. package/dist/components/Payroll/PayrollBlocker/PayrollBlockerAlerts.d.ts +10 -3
  74. package/dist/components/Payroll/PayrollBlocker/PayrollBlockerAlerts.js +54 -0
  75. package/dist/components/Payroll/PayrollBlocker/PayrollBlockerAlerts.js.map +1 -0
  76. package/dist/components/Payroll/PayrollBlocker/PayrollBlockerList.d.ts +14 -1
  77. package/dist/components/Payroll/PayrollBlocker/index.d.ts +1 -2
  78. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.d.ts +27 -0
  79. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js +39 -0
  80. package/dist/components/Payroll/PayrollBlocker/payrollHelpers.js.map +1 -0
  81. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js +76 -66
  82. package/dist/components/Payroll/PayrollConfiguration/PayrollConfiguration.js.map +1 -1
  83. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +4 -2
  84. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +157 -122
  85. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  86. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.module.scss.js +8 -0
  87. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.module.scss.js.map +1 -0
  88. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +39 -36
  89. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  90. package/dist/components/Payroll/PayrollLanding/PayrollLanding.d.ts +2 -1
  91. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js +28 -36
  92. package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
  93. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.d.ts +15 -0
  94. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js +62 -0
  95. package/dist/components/Payroll/PayrollLanding/PayrollLandingFlowComponents.js.map +1 -0
  96. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.d.ts +5 -0
  97. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js +93 -0
  98. package/dist/components/Payroll/PayrollLanding/payrollLandingStateMachine.js.map +1 -0
  99. package/dist/components/Payroll/PayrollOverview/PayrollOverview.d.ts +2 -1
  100. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js +49 -45
  101. package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
  102. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +2 -1
  103. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +309 -263
  104. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  105. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.d.ts +2 -1
  106. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js +26 -12
  107. package/dist/components/Payroll/PayrollReceipts/PayrollReceipts.js.map +1 -1
  108. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.d.ts +2 -1
  109. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +44 -40
  110. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  111. package/dist/components/Payroll/index.d.ts +1 -1
  112. package/dist/components/Payroll/index.js +6 -8
  113. package/dist/components/Payroll/index.js.map +1 -1
  114. package/dist/components/Payroll/usePreparedPayrollData.js +40 -24
  115. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  116. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js +28 -26
  117. package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
  118. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.d.ts +5 -0
  119. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js +28 -23
  120. package/dist/contexts/ComponentAdapter/createComponentsWithDefaults.js.map +1 -1
  121. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +2 -0
  122. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  123. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.d.ts +3 -1
  124. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js +8 -8
  125. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js.map +1 -1
  126. package/dist/hooks/useContainerBreakpoints/useContainerBreakpoints.js.map +1 -1
  127. package/dist/i18n/en/Payroll.PayrollConfiguration.json.js +19 -19
  128. package/dist/i18n/en/Payroll.PayrollOverview.json.js +50 -44
  129. package/dist/i18n/en/Payroll.PayrollOverview.json.js.map +1 -1
  130. package/dist/i18n/en/Payroll.PayrollReceipts.json.js +14 -12
  131. package/dist/i18n/en/Payroll.PayrollReceipts.json.js.map +1 -1
  132. package/dist/i18n/en/PayrollBlocker.json.js +17 -11
  133. package/dist/i18n/en/PayrollBlocker.json.js.map +1 -1
  134. package/dist/shared/constants.d.ts +1 -1
  135. package/dist/shared/constants.js +1 -1
  136. package/dist/shared/constants.js.map +1 -1
  137. package/dist/style.css +1 -1
  138. package/dist/types/i18next.d.ts +145 -3
  139. package/package.json +16 -16
  140. package/dist/components/Payroll/PayrollBlocker/PayrollBlockerTypes.d.ts +0 -101
  141. package/dist/components/Payroll/RunPayrollFlow/RunPayroll.js +0 -126
  142. package/dist/components/Payroll/RunPayrollFlow/RunPayroll.js.map +0 -1
  143. package/dist/components/Payroll/RunPayrollFlow/RunPayrollFlow.js +0 -22
  144. package/dist/components/Payroll/RunPayrollFlow/RunPayrollFlow.js.map +0 -1
@@ -955,7 +955,7 @@ export interface EmployeeTaxes{
955
955
  };
956
956
  export interface PayrollPayrollConfiguration{
957
957
  "pageTitle":string;
958
- "regularPayroll":string;
958
+ "description":string;
959
959
  "calculatePayroll":string;
960
960
  "calculatePayrollTitle":string;
961
961
  "hoursAndEarningsTitle":string;
@@ -973,8 +973,6 @@ export interface PayrollPayrollConfiguration{
973
973
  "editMenu":{
974
974
  "edit":string;
975
975
  };
976
- "backButton":string;
977
- "backButtonTitle":string;
978
976
  "alerts":{
979
977
  "progressSaved":string;
980
978
  "payrollDeadline":{
@@ -989,6 +987,8 @@ export interface PayrollPayrollConfiguration{
989
987
  "label":string;
990
988
  };
991
989
  };
990
+ "loadingTitle":string;
991
+ "loadingDescription":string;
992
992
  };
993
993
  export interface PayrollPayrollEditEmployee{
994
994
  "pageTitle":string;
@@ -1100,6 +1100,7 @@ export interface PayrollPayrollList{
1100
1100
  };
1101
1101
  };
1102
1102
  export interface PayrollPayrollOverview{
1103
+ "backButton":string;
1103
1104
  "overviewTitle":string;
1104
1105
  "summaryTitle":string;
1105
1106
  "pageSubtitle":string;
@@ -1113,10 +1114,15 @@ export interface PayrollPayrollOverview{
1113
1114
  "declineCancelCta":string;
1114
1115
  "payrollReceiptCta":string;
1115
1116
  "downloadPaystubLabel":string;
1117
+ "loadingTitle":string;
1118
+ "loadingDescription":string;
1116
1119
  "alerts":{
1117
1120
  "payrollNotCalculated":string;
1118
1121
  "directDepositDeadline":string;
1119
1122
  "paystubPdfError":string;
1123
+ "checkPaymentWarning_one":string;
1124
+ "checkPaymentWarning_other":string;
1125
+ "checkPaymentWarningDescription":string;
1120
1126
  };
1121
1127
  "payrollSummaryTitle":string;
1122
1128
  "payrollSummaryLabel":string;
@@ -1161,6 +1167,8 @@ export interface PayrollPayrollOverview{
1161
1167
  "debitedByGusto":string;
1162
1168
  "taxesTotal":string;
1163
1169
  "paystub":string;
1170
+ "footerTotalsLabel":string;
1171
+ "footerTotalsDescription":string;
1164
1172
  };
1165
1173
  "totalsLabel":string;
1166
1174
  "directDepositLabel":string;
@@ -1173,6 +1181,7 @@ export interface PayrollPayrollOverview{
1173
1181
  };
1174
1182
  };
1175
1183
  export interface PayrollPayrollReceipts{
1184
+ "backButton":string;
1176
1185
  "receipt":{
1177
1186
  "totalLabel":string;
1178
1187
  "detailsLabel":string;
@@ -1249,6 +1258,139 @@ export interface PayrollBlocker{
1249
1258
  "blockerSectionLabel":string;
1250
1259
  "blockersListDescription":string;
1251
1260
  "estimatedTime":string;
1261
+ "defaultBlockerDescription":string;
1262
+ "defaultBlockerHelpText":string;
1263
+ "blockers":{
1264
+ "geocode_error":{
1265
+ "title":string;
1266
+ "description":string;
1267
+ "helpText":string;
1268
+ };
1269
+ "geocode_needed":{
1270
+ "title":string;
1271
+ "description":string;
1272
+ "helpText":string;
1273
+ };
1274
+ "missing_signatory":{
1275
+ "title":string;
1276
+ "description":string;
1277
+ "helpText":string;
1278
+ "defaultAction":string;
1279
+ };
1280
+ "invalid_signatory":{
1281
+ "title":string;
1282
+ "description":string;
1283
+ "helpText":string;
1284
+ };
1285
+ "suspended":{
1286
+ "title":string;
1287
+ "description":string;
1288
+ "helpText":string;
1289
+ "defaultAction":string;
1290
+ };
1291
+ "needs_onboarding":{
1292
+ "title":string;
1293
+ "description":string;
1294
+ "helpText":string;
1295
+ "defaultAction":string;
1296
+ };
1297
+ "missing_bank_info":{
1298
+ "title":string;
1299
+ "description":string;
1300
+ "helpText":string;
1301
+ "defaultAction":string;
1302
+ };
1303
+ "missing_bank_verification":{
1304
+ "title":string;
1305
+ "description":string;
1306
+ "helpText":string;
1307
+ "defaultAction":string;
1308
+ };
1309
+ "missing_employee_setup":{
1310
+ "title":string;
1311
+ "description":string;
1312
+ "helpText":string;
1313
+ };
1314
+ "missing_pay_schedule":{
1315
+ "title":string;
1316
+ "description":string;
1317
+ "helpText":string;
1318
+ };
1319
+ "pay_schedule_setup_not_complete":{
1320
+ "title":string;
1321
+ "description":string;
1322
+ "helpText":string;
1323
+ };
1324
+ "missing_forms":{
1325
+ "title":string;
1326
+ "description":string;
1327
+ "helpText":string;
1328
+ };
1329
+ "needs_approval":{
1330
+ "title":string;
1331
+ "description":string;
1332
+ "helpText":string;
1333
+ };
1334
+ "pending_payroll_review":{
1335
+ "title":string;
1336
+ "description":string;
1337
+ "helpText":string;
1338
+ "defaultAction":string;
1339
+ };
1340
+ "contractor_only_company":{
1341
+ "title":string;
1342
+ "description":string;
1343
+ "helpText":string;
1344
+ };
1345
+ "eftps_ic_error":{
1346
+ "title":string;
1347
+ "description":string;
1348
+ "helpText":string;
1349
+ "defaultAction":string;
1350
+ };
1351
+ "wc_pending_approval":{
1352
+ "title":string;
1353
+ "description":string;
1354
+ "helpText":string;
1355
+ "defaultAction":string;
1356
+ };
1357
+ "pending_recovery_case":{
1358
+ "title":string;
1359
+ "description":string;
1360
+ "helpText":string;
1361
+ "defaultAction":string;
1362
+ };
1363
+ "pending_information_request":{
1364
+ "title":string;
1365
+ "description":string;
1366
+ "helpText":string;
1367
+ "defaultAction":string;
1368
+ };
1369
+ "missing_addresses":{
1370
+ "title":string;
1371
+ "description":string;
1372
+ "helpText":string;
1373
+ "defaultAction":string;
1374
+ };
1375
+ "missing_federal_tax_setup":{
1376
+ "title":string;
1377
+ "description":string;
1378
+ "helpText":string;
1379
+ "defaultAction":string;
1380
+ };
1381
+ "missing_industry_selection":{
1382
+ "title":string;
1383
+ "description":string;
1384
+ "helpText":string;
1385
+ "defaultAction":string;
1386
+ };
1387
+ "missing_state_tax_setup":{
1388
+ "title":string;
1389
+ "description":string;
1390
+ "helpText":string;
1391
+ "defaultAction":string;
1392
+ };
1393
+ };
1252
1394
  };
1253
1395
  export interface common{
1254
1396
  "status":{
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gusto/embedded-react-sdk",
3
- "version": "0.13.4",
3
+ "version": "0.14.0",
4
4
  "homepage": "https://github.com/Gusto/embedded-react-sdk",
5
5
  "bugs": {
6
6
  "url": "https://github.com/Gusto/embedded-react-sdk/issues"
@@ -63,25 +63,25 @@
63
63
  "@commitlint/cli": "^20.1.0",
64
64
  "@commitlint/config-conventional": "^20.0.0",
65
65
  "@eslint/js": "^9.36.0",
66
- "@ladle/react": "^5.0.2",
67
- "@testing-library/jest-dom": "^6.8.0",
66
+ "@ladle/react": "^5.1.0",
67
+ "@testing-library/jest-dom": "^6.9.1",
68
68
  "@testing-library/react": "^16.3.0",
69
69
  "@testing-library/user-event": "^14.6.1",
70
70
  "@types/dompurify": "^3.2.0",
71
71
  "@types/jest": "^30.0.0",
72
72
  "@types/jest-axe": "^3.5.9",
73
73
  "@types/js-yaml": "^4.0.9",
74
- "@types/react": "^19.1.15",
74
+ "@types/react": "^19.2.2",
75
75
  "@vitejs/plugin-react-swc": "^3.9.0",
76
76
  "@vitest/coverage-v8": "^3.2.4",
77
77
  "axe-core": "^4.10.2",
78
- "dotenv": "^17.2.2",
79
- "eslint": "^9.36.0",
78
+ "dotenv": "^17.2.3",
79
+ "eslint": "^9.37.0",
80
80
  "eslint-plugin-import": "^2.31.0",
81
81
  "eslint-plugin-jsx-a11y": "^6.10.2",
82
82
  "eslint-plugin-react": "^7.37.5",
83
- "eslint-plugin-react-hooks": "^5.2.0",
84
- "eslint-plugin-react-refresh": "^0.4.21",
83
+ "eslint-plugin-react-hooks": "^6.1.1",
84
+ "eslint-plugin-react-refresh": "^0.4.23",
85
85
  "globals": "^16.4.0",
86
86
  "husky": "^9.1.7",
87
87
  "jest-axe": "^9.0.0",
@@ -89,7 +89,7 @@
89
89
  "jsdom": "^26.1.0",
90
90
  "jsdom-testing-mocks": "^1.16.0",
91
91
  "lint-staged": "^16.2.3",
92
- "msw": "^2.11.3",
92
+ "msw": "^2.11.4",
93
93
  "npm-run-all": "^4.1.5",
94
94
  "prettier": "^3.5.3",
95
95
  "react-dnd": "^16.0.1",
@@ -97,7 +97,7 @@
97
97
  "sass-embedded": "^1.93.2",
98
98
  "ts-morph": "^27.0.0",
99
99
  "tsx": "^4.20.6",
100
- "typescript-eslint": "^8.45.0",
100
+ "typescript-eslint": "^8.46.0",
101
101
  "vite": "^6.2.7",
102
102
  "vite-plugin-checker": "^0.11.0",
103
103
  "vite-plugin-circular-dependency": "^0.5.0",
@@ -114,19 +114,19 @@
114
114
  "typescript": "^5.8.3"
115
115
  },
116
116
  "dependencies": {
117
- "@gusto/embedded-api": "^0.7.0",
117
+ "@gusto/embedded-api": "^0.7.1",
118
118
  "@hookform/error-message": "^2.0.1",
119
119
  "@hookform/resolvers": "^5.2.2",
120
- "@internationalized/date": "^3.9.0",
120
+ "@internationalized/date": "^3.10.0",
121
121
  "@internationalized/number": "^3.6.5",
122
122
  "classnames": "^2.5.1",
123
123
  "deepmerge": "^4.3.1",
124
124
  "dompurify": "^3.2.7",
125
- "i18next": "^25.5.2",
126
- "react-aria": "^3.43.1",
127
- "react-aria-components": "1.12.1",
125
+ "i18next": "^25.5.3",
126
+ "react-aria": "^3.44.0",
127
+ "react-aria-components": "1.13.0",
128
128
  "react-error-boundary": "^6.0.0",
129
- "react-hook-form": "^7.63.0",
129
+ "react-hook-form": "^7.64.0",
130
130
  "react-i18next": "^16.0.0",
131
131
  "react-robot": "^1.2.0",
132
132
  "robot3": "^1.2.0",
@@ -1,101 +0,0 @@
1
- /**
2
- * Status of a payroll blocker
3
- */
4
- export type PayrollBlockerStatus = 'unresolved' | 'in_progress' | 'resolved' | 'skipped';
5
- /**
6
- * Individual step in the resolution process
7
- */
8
- export interface PayrollBlockerResolutionStep {
9
- id: string;
10
- title: string;
11
- description: string;
12
- /**
13
- * Optional action button for this step
14
- */
15
- action?: {
16
- label: string;
17
- variant?: 'primary' | 'secondary' | 'tertiary';
18
- onClick: () => void;
19
- };
20
- /**
21
- * External link if resolution requires navigation
22
- */
23
- externalLink?: {
24
- url: string;
25
- label: string;
26
- opensInNewTab?: boolean;
27
- };
28
- /**
29
- * Whether this step has been completed
30
- */
31
- completed?: boolean;
32
- /**
33
- * Whether this step is currently active/in progress
34
- */
35
- active?: boolean;
36
- }
37
- /**
38
- * Complete information about a payroll blocker including resolution steps
39
- */
40
- export interface PayrollBlocker {
41
- id: string;
42
- title: string;
43
- description: string;
44
- /**
45
- * Additional context or help text
46
- */
47
- helpText?: string;
48
- /**
49
- * Current resolution status (defaults to 'unresolved' for backward compatibility)
50
- */
51
- status?: PayrollBlockerStatus;
52
- /**
53
- * Estimated time to resolve (for user planning)
54
- */
55
- estimatedResolutionTime?: string;
56
- /**
57
- * Category for grouping blockers
58
- */
59
- category?: string;
60
- /**
61
- * Sequential steps to resolve this blocker (defaults to empty array for backward compatibility)
62
- */
63
- resolutionSteps?: PayrollBlockerResolutionStep[];
64
- /**
65
- * Quick action for simple one-click resolutions (used in alert view)
66
- */
67
- quickAction?: {
68
- label: string;
69
- onClick: () => void;
70
- };
71
- /**
72
- * Legacy action format for backward compatibility
73
- */
74
- action?: {
75
- label: string;
76
- onClick: () => void;
77
- };
78
- /**
79
- * Contact information if user needs help
80
- */
81
- supportContact?: {
82
- label: string;
83
- url: string;
84
- type: 'email' | 'phone' | 'chat' | 'help_center';
85
- };
86
- }
87
- export interface PayrollBlockerProps {
88
- blockers: PayrollBlocker[];
89
- /**
90
- * Handler for viewing all blockers when multiple exist.
91
- * Should be provided when there are multiple blockers to give users a way to address them.
92
- */
93
- onMultipleViewClick?: () => void;
94
- multipleViewLabel?: string;
95
- className?: string;
96
- }
97
- export interface PayrollBlockerListProps {
98
- blockers: PayrollBlocker[];
99
- onBack?: () => void;
100
- className?: string;
101
- }
@@ -1,126 +0,0 @@
1
- import { jsx as o } from "react/jsx-runtime";
2
- import { useReducer as A, useState as N } from "react";
3
- import { useTranslation as w } from "react-i18next";
4
- import { PayrollReceipts as h } from "../PayrollReceipts/PayrollReceipts.js";
5
- import { componentEvents as d } from "../../../shared/constants.js";
6
- import { useComponentContext as S } from "../../../contexts/ComponentAdapter/useComponentContext.js";
7
- import { firstLastName as O } from "../../../helpers/formattedStrings.js";
8
- import { useI18n as b } from "../../../i18n/I18n.js";
9
- const D = () => ({
10
- currentPayrollId: void 0,
11
- isCalculated: !1,
12
- editedEmployeeId: void 0,
13
- showReceipt: !1
14
- }), U = (e, r) => {
15
- switch (r.type) {
16
- case "runPayroll/back":
17
- return {
18
- ...e,
19
- currentPayrollId: void 0
20
- };
21
- case "runPayroll/edit":
22
- return {
23
- ...e,
24
- isCalculated: !1
25
- };
26
- case "runPayroll/calculated":
27
- return {
28
- ...e,
29
- isCalculated: !0
30
- };
31
- case "runPayroll/selected":
32
- return {
33
- ...e,
34
- currentPayrollId: r.payload.payrollId
35
- };
36
- case "runPayroll/submitted":
37
- return {
38
- ...e,
39
- isCalculated: !1,
40
- currentPayrollId: void 0
41
- };
42
- case "runPayroll/employee/edit":
43
- return {
44
- ...e,
45
- editedEmployeeId: r.payload.employeeId
46
- };
47
- case "runPayroll/employee/saved":
48
- case "runPayroll/employee/cancelled":
49
- return {
50
- ...e,
51
- editedEmployeeId: void 0
52
- };
53
- case d.RUN_PAYROLL_CANCELLED:
54
- return {
55
- ...e,
56
- isCalculated: !1,
57
- currentPayrollId: void 0
58
- };
59
- case d.RUN_PAYROLL_RECEIPT_GET:
60
- return {
61
- ...e,
62
- isCalculated: !0,
63
- showReceipt: !0,
64
- currentPayrollId: r.payload.payrollId
65
- };
66
- default:
67
- return e;
68
- }
69
- }, V = ({
70
- companyId: e,
71
- Configuration: r,
72
- Landing: y,
73
- onEvent: m,
74
- Overview: p,
75
- EditEmployee: P
76
- }) => {
77
- b("Payroll.RunPayroll");
78
- const { t: E } = w("Payroll.RunPayroll"), [{ isCalculated: f, currentPayrollId: l, editedEmployeeId: u, showReceipt: I }, v] = A(
79
- U,
80
- D()
81
- ), [c, i] = N(
82
- null
83
- ), R = S(), C = () => {
84
- i(null);
85
- }, t = (a, n) => {
86
- if (a === d.RUN_PAYROLL_EMPLOYEE_SAVED) {
87
- const s = n.employee;
88
- if (s) {
89
- const _ = O({
90
- first_name: s.firstName,
91
- last_name: s.lastName
92
- });
93
- i({ employeeName: _ });
94
- }
95
- }
96
- v({ type: a, payload: n }), m(a, n);
97
- }, L = c ? /* @__PURE__ */ o(
98
- R.Alert,
99
- {
100
- status: "success",
101
- label: E("alerts.employeeUpdated.label", { name: c.employeeName }),
102
- onDismiss: C
103
- }
104
- ) : void 0;
105
- return u && l ? /* @__PURE__ */ o(
106
- P,
107
- {
108
- onEvent: t,
109
- employeeId: u,
110
- companyId: e,
111
- payrollId: l
112
- }
113
- ) : I && l ? /* @__PURE__ */ o(h, { onEvent: t, payrollId: l }) : l ? f ? /* @__PURE__ */ o(p, { companyId: e, onEvent: t, payrollId: l }) : /* @__PURE__ */ o(
114
- r,
115
- {
116
- onEvent: t,
117
- payrollId: l,
118
- companyId: e,
119
- alerts: L
120
- }
121
- ) : /* @__PURE__ */ o(y, { companyId: e, onEvent: t });
122
- };
123
- export {
124
- V as RunPayroll
125
- };
126
- //# sourceMappingURL=RunPayroll.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RunPayroll.js","sources":["../../../../src/components/Payroll/RunPayrollFlow/RunPayroll.tsx"],"sourcesContent":["import { useReducer, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport { PayrollReceipts } from '../PayrollReceipts/PayrollReceipts'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { EventType, runPayrollEvents } from '@/shared/constants'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { firstLastName } from '@/helpers/formattedStrings'\nimport { useI18n } from '@/i18n'\ntype PayrollFlowEvent = (typeof runPayrollEvents)[keyof typeof runPayrollEvents]\ntype PayrollFlowAction =\n | {\n type: Extract<\n PayrollFlowEvent,\n 'runPayroll/back' | 'runPayroll/edit' | 'runPayroll/calculated' | 'runPayroll/submitted'\n >\n }\n | {\n type: Extract<PayrollFlowEvent, 'runPayroll/selected'>\n payload: { payrollId: string }\n }\n | {\n type: Extract<PayrollFlowEvent, 'runPayroll/employee/edit'>\n payload: { employeeId: string }\n }\n | {\n type: Extract<PayrollFlowEvent, 'runPayroll/employee/saved' | 'runPayroll/employee/cancelled'>\n }\n | {\n type: Extract<PayrollFlowEvent, 'runPayroll/cancelled'>\n }\n | {\n type: Extract<PayrollFlowEvent, 'runPayroll/receipt/get'>\n payload: { payrollId: string }\n }\n\ninterface PayrollFlowState {\n currentPayrollId?: string\n isCalculated: boolean\n editedEmployeeId?: string\n showReceipt: boolean\n}\nconst createInitialPayrollFlowState: () => PayrollFlowState = () => ({\n currentPayrollId: undefined,\n isCalculated: false,\n editedEmployeeId: undefined,\n showReceipt: false,\n})\n\nconst runPayrollFlowReducer: (\n state: PayrollFlowState,\n action: PayrollFlowAction,\n) => PayrollFlowState = (state, action) => {\n switch (action.type) {\n case 'runPayroll/back':\n return {\n ...state,\n currentPayrollId: undefined,\n }\n case 'runPayroll/edit':\n return {\n ...state,\n isCalculated: false,\n }\n case 'runPayroll/calculated':\n return {\n ...state,\n isCalculated: true,\n }\n case 'runPayroll/selected': {\n return {\n ...state,\n currentPayrollId: action.payload.payrollId,\n }\n }\n case 'runPayroll/submitted': {\n return {\n ...state,\n isCalculated: false,\n currentPayrollId: undefined,\n }\n }\n case 'runPayroll/employee/edit': {\n return {\n ...state,\n editedEmployeeId: action.payload.employeeId,\n }\n }\n case 'runPayroll/employee/saved':\n case 'runPayroll/employee/cancelled': {\n return {\n ...state,\n editedEmployeeId: undefined,\n }\n }\n case componentEvents.RUN_PAYROLL_CANCELLED: {\n return {\n ...state,\n isCalculated: false,\n currentPayrollId: undefined,\n }\n }\n case componentEvents.RUN_PAYROLL_RECEIPT_GET: {\n return {\n ...state,\n isCalculated: true,\n showReceipt: true,\n currentPayrollId: action.payload.payrollId,\n }\n }\n default:\n return state\n }\n}\n\ninterface RunPayrollProps extends Pick<BaseComponentInterface, 'onEvent'> {\n companyId: string\n Configuration: ({\n onEvent,\n payrollId,\n companyId,\n alerts,\n }: Pick<BaseComponentInterface, 'onEvent'> & {\n payrollId: string\n companyId: string\n alerts?: React.ReactNode\n }) => React.JSX.Element\n Landing: ({\n companyId,\n onEvent,\n }: Pick<BaseComponentInterface, 'onEvent'> & { companyId: string }) => React.JSX.Element\n Overview: ({\n companyId,\n onEvent,\n payrollId,\n }: Pick<BaseComponentInterface, 'onEvent'> & {\n companyId: string\n payrollId: string\n }) => React.JSX.Element\n EditEmployee: ({\n onEvent,\n employeeId,\n companyId,\n payrollId,\n }: Pick<BaseComponentInterface, 'onEvent'> & {\n employeeId: string\n companyId: string\n payrollId: string\n }) => React.JSX.Element\n}\n\nexport const RunPayroll = ({\n companyId,\n Configuration,\n Landing,\n onEvent,\n Overview,\n EditEmployee,\n}: RunPayrollProps) => {\n useI18n('Payroll.RunPayroll')\n const { t } = useTranslation('Payroll.RunPayroll')\n\n const [{ isCalculated, currentPayrollId, editedEmployeeId, showReceipt }, dispatch] = useReducer(\n runPayrollFlowReducer,\n createInitialPayrollFlowState(),\n )\n const [employeeSavedAlert, setEmployeeSavedAlert] = useState<{ employeeName: string } | null>(\n null,\n )\n\n const Components = useComponentContext()\n\n const handleDismissEmployeeSavedAlert = () => {\n setEmployeeSavedAlert(null)\n }\n\n const wrappedOnEvent: OnEventType<string, unknown> = (event, payload) => {\n if (event === componentEvents.RUN_PAYROLL_EMPLOYEE_SAVED) {\n const employee = (payload as { employee?: Employee }).employee\n if (employee) {\n const employeeName = firstLastName({\n first_name: employee.firstName,\n last_name: employee.lastName,\n })\n setEmployeeSavedAlert({ employeeName })\n }\n }\n\n dispatch({ type: event, payload } as PayrollFlowAction)\n onEvent(event as EventType, payload)\n }\n\n const alerts = employeeSavedAlert ? (\n <Components.Alert\n status=\"success\"\n label={t('alerts.employeeUpdated.label', { name: employeeSavedAlert.employeeName })}\n onDismiss={handleDismissEmployeeSavedAlert}\n />\n ) : undefined\n\n if (editedEmployeeId && currentPayrollId) {\n return (\n <EditEmployee\n onEvent={wrappedOnEvent}\n employeeId={editedEmployeeId}\n companyId={companyId}\n payrollId={currentPayrollId}\n />\n )\n }\n\n if (showReceipt && currentPayrollId) {\n return <PayrollReceipts onEvent={wrappedOnEvent} payrollId={currentPayrollId} />\n }\n\n return currentPayrollId ? (\n isCalculated ? (\n <Overview companyId={companyId} onEvent={wrappedOnEvent} payrollId={currentPayrollId} />\n ) : (\n <Configuration\n onEvent={wrappedOnEvent}\n payrollId={currentPayrollId}\n companyId={companyId}\n alerts={alerts}\n />\n )\n ) : (\n <Landing companyId={companyId} onEvent={wrappedOnEvent} />\n )\n}\n"],"names":["createInitialPayrollFlowState","runPayrollFlowReducer","state","action","componentEvents","RunPayroll","companyId","Configuration","Landing","onEvent","Overview","EditEmployee","useI18n","t","useTranslation","isCalculated","currentPayrollId","editedEmployeeId","showReceipt","dispatch","useReducer","employeeSavedAlert","setEmployeeSavedAlert","useState","Components","useComponentContext","handleDismissEmployeeSavedAlert","wrappedOnEvent","event","payload","employee","employeeName","firstLastName","alerts","jsx","PayrollReceipts"],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { PayrollLanding as l } from "../PayrollLanding/PayrollLanding.js";
3
- import { PayrollConfiguration as t } from "../PayrollConfiguration/PayrollConfiguration.js";
4
- import { PayrollOverview as n } from "../PayrollOverview/PayrollOverview.js";
5
- import { PayrollEditEmployee as e } from "../PayrollEditEmployee/PayrollEditEmployee.js";
6
- import { RunPayroll as a } from "./RunPayroll.js";
7
- import { BaseComponent as p } from "../../Base/Base.js";
8
- const v = ({ companyId: i, onEvent: o, ...m }) => /* @__PURE__ */ r(p, { ...m, onEvent: o, children: /* @__PURE__ */ r(
9
- a,
10
- {
11
- companyId: i,
12
- Configuration: t,
13
- Landing: l,
14
- Overview: n,
15
- EditEmployee: e,
16
- onEvent: o
17
- }
18
- ) });
19
- export {
20
- v as RunPayrollFlow
21
- };
22
- //# sourceMappingURL=RunPayrollFlow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RunPayrollFlow.js","sources":["../../../../src/components/Payroll/RunPayrollFlow/RunPayrollFlow.tsx"],"sourcesContent":["import { PayrollLanding } from '../PayrollLanding/PayrollLanding'\nimport { PayrollConfiguration } from '../PayrollConfiguration/PayrollConfiguration'\nimport { PayrollOverview } from '../PayrollOverview/PayrollOverview'\nimport { PayrollEditEmployee } from '../PayrollEditEmployee/PayrollEditEmployee'\nimport { RunPayroll } from './RunPayroll'\nimport type { BaseComponentInterface } from '@/components/Base/Base'\nimport { BaseComponent } from '@/components/Base/Base'\n\ninterface RunPayrollFlowProps extends BaseComponentInterface {\n companyId: string\n}\n\nexport const RunPayrollFlow = ({ companyId, onEvent, ...baseProps }: RunPayrollFlowProps) => {\n return (\n <BaseComponent {...baseProps} onEvent={onEvent}>\n <RunPayroll\n companyId={companyId}\n Configuration={PayrollConfiguration}\n Landing={PayrollLanding}\n Overview={PayrollOverview}\n EditEmployee={PayrollEditEmployee}\n onEvent={onEvent}\n />\n </BaseComponent>\n )\n}\n"],"names":["RunPayrollFlow","companyId","onEvent","baseProps","jsx","BaseComponent","RunPayroll","PayrollConfiguration","PayrollLanding","PayrollOverview","PayrollEditEmployee"],"mappings":";;;;;;;AAYO,MAAMA,IAAiB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,QAEpD,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GAAW,SAAAD,GAC5B,UAAA,gBAAAE;AAAA,EAACE;AAAA,EAAA;AAAA,IACC,WAAAL;AAAA,IACA,eAAeM;AAAA,IACf,SAASC;AAAA,IACT,UAAUC;AAAA,IACV,cAAcC;AAAA,IACd,SAAAR;AAAA,EAAA;AAAA,GAEJ;"}