@gusto/embedded-react-sdk 0.52.1 → 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.
- package/CHANGELOG.md +52 -0
- package/dist/components/Base/Base.d.ts +2 -2
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.d.ts +1 -2
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +42 -43
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
- package/dist/components/Common/Fields/PercentageField/PercentageField.js +44 -42
- package/dist/components/Common/Fields/PercentageField/PercentageField.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.js +6 -6
- package/dist/components/Common/UI/Box/Box.js.map +1 -1
- package/dist/components/Common/UI/Box/Box.module.scss.js +8 -8
- package/dist/components/Common/UI/Box/BoxTypes.d.ts +1 -1
- package/dist/components/Common/UI/Breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js +16 -14
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js.map +1 -1
- package/dist/components/Common/UI/Dialog/Dialog.js +29 -28
- package/dist/components/Common/UI/Dialog/Dialog.js.map +1 -1
- package/dist/components/Common/UI/FileInput/FileInput.js +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.d.ts +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.js +9 -8
- package/dist/components/Common/UI/FormBox/FormBox.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js +8 -6
- package/dist/components/Common/UI/FormBox/FormBox.module.scss.js.map +1 -1
- package/dist/components/Common/UI/FormBox/FormBoxTypes.d.ts +5 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js +4 -4
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +7 -10
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -9
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +18 -21
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +11 -12
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/Head.js +8 -9
- package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -7
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +20 -21
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -12
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +2 -3
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +9 -11
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js +2 -3
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +6 -7
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +7 -8
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +4 -6
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/stateMachine.d.ts +0 -1
- package/dist/components/Company/BankAccount/stateMachine.js +33 -35
- package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -6
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +11 -14
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +7 -8
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/stateMachine.d.ts +0 -1
- package/dist/components/Company/DocumentSigner/stateMachine.js +27 -29
- package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +6 -7
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +7 -10
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +4 -4
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -6
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -7
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +10 -12
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Industry/IndustrySelect.js +6 -8
- package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +6 -7
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +4 -6
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +11 -14
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +2 -3
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +9 -12
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +5 -6
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +9 -10
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +2 -5
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -4
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +47 -51
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.d.ts +0 -1
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.js +26 -28
- package/dist/components/Company/PaySchedule/payScheduleStateMachine.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxes.d.ts +2 -1
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.d.ts +2 -0
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js +29 -16
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +2 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +21 -32
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +67 -75
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -7
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +62 -47
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js +26 -23
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.d.ts +1 -0
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.d.ts +12 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js +36 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddRateAction.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.d.ts +10 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js +110 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/AddTaxRateDialog.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.d.ts +18 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js +55 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateHistorySection.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.d.ts +47 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js +108 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/TaxRateManagement.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.d.ts +25 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +22 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/index.d.ts +1 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.d.ts +29 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js +34 -0
- package/dist/components/Company/StateTaxes/TaxRateManagement/toHistoryRows.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.d.ts +17 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.js +24 -0
- package/dist/components/Company/StateTaxes/shared/RequirementFields.js.map +1 -0
- package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.d.ts +1 -1
- package/dist/components/Company/StateTaxes/shared/applicableIf.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/applicableIf.test.d.ts +1 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.d.ts +19 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js +38 -0
- package/dist/components/Company/StateTaxes/shared/buildRequirementSchema.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.d.ts +2 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.js +7 -0
- package/dist/components/Company/StateTaxes/shared/requirementValue.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.d.ts +23 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.js +13 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.js.map +1 -0
- package/dist/components/Company/StateTaxes/shared/rhfKey.test.d.ts +1 -0
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.d.ts +1 -1
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js +40 -20
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
- package/dist/components/Company/exports/companyOnboarding.d.ts +1 -0
- package/dist/components/Company/exports/companyOnboarding.js +12 -10
- package/dist/components/Company/exports/companyOnboarding.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +83 -76
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.d.ts +39 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js +90 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +22 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +247 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -0
- package/dist/components/Contractor/ContractorList/{index.d.ts → onboarding/ContractorList.d.ts} +3 -3
- package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js +51 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorList.js.map +1 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.d.ts +16 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js +113 -0
- package/dist/components/Contractor/ContractorList/onboarding/ContractorListView.js.map +1 -0
- package/dist/components/Contractor/ContractorList/shared/index.d.ts +1 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.d.ts +87 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js +110 -0
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -0
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.d.ts +0 -1
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js +18 -20
- package/dist/components/Contractor/Documents/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js +2 -3
- package/dist/components/Contractor/Documents/DocumentsList/DocumentsList.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js +170 -123
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.module.scss.js +12 -0
- package/dist/components/Contractor/Documents/SignatureForm/SignatureForm.module.scss.js.map +1 -0
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js +40 -39
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/fields.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js +91 -88
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/useContractorSignatureForm.js.map +1 -1
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.d.ts +0 -33
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js +77 -86
- package/dist/components/Contractor/Documents/SignatureForm/useContractorSignatureForm/w9Fields.js.map +1 -1
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js +1 -1
- package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js +9 -10
- package/dist/components/Contractor/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +2 -3
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +162 -251
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.d.ts +2 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js +2 -2
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentFormSchema.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js +45 -44
- package/dist/components/Contractor/Payments/CreatePayment/EditContractorPaymentPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js +2 -3
- package/dist/components/Contractor/Payments/CreatePayment/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js +2 -3
- package/dist/components/Contractor/Payments/PaymentsList/PaymentsListPresentation.js.map +1 -1
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.d.ts +32 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js +107 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.js.map +1 -0
- package/dist/components/Contractor/Payments/shared/usePaymentAmountsEditor.test.d.ts +1 -0
- package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js +6 -7
- package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfile.js +63 -57
- package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +18 -19
- package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +118 -102
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Contractor/exports/contractorManagement.d.ts +1 -0
- package/dist/components/Contractor/exports/contractorManagement.js +12 -10
- package/dist/components/Contractor/exports/contractorManagement.js.map +1 -1
- package/dist/components/Contractor/exports/contractorOnboarding.d.ts +1 -1
- package/dist/components/Contractor/exports/contractorOnboarding.js +1 -1
- package/dist/components/Contractor/shared/useContractorHasSignedW9.d.ts +8 -0
- package/dist/components/Contractor/shared/useContractorHasSignedW9.js +10 -0
- package/dist/components/Contractor/shared/useContractorHasSignedW9.js.map +1 -0
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +32 -33
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js +2 -3
- package/dist/components/Employee/Compensation/shared/AddCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js +6 -7
- package/dist/components/Employee/Deductions/shared/DeductionsForm/ChildSupportFormView.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js +14 -15
- package/dist/components/Employee/Deductions/shared/DeductionsForm/StandardDeductionForm.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentManager.js +6 -7
- package/dist/components/Employee/Documents/management/DocumentManager.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +6 -7
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +4 -5
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js +10 -13
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js +5 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js +8 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/List.module.scss.js.map +1 -0
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js +22 -21
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibility.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilityPresentation.js +6 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js +5 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/EmploymentEligibility/EmploymentEligibilitySchema.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js +3 -4
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/I9SignatureForm/I9SignatureForm.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js +6 -7
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocumentsPresentation.js.map +1 -1
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js +11 -12
- package/dist/components/Employee/Documents/shared/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js +15 -16
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesCard/FederalTaxesCard.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +6 -7
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +11 -12
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/shared/FederalTaxesView.js +1 -1
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js +7 -8
- package/dist/components/Employee/HomeAddress/management/HomeAddressCard/HomeAddressCard.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +4 -4
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js +29 -23
- package/dist/components/Employee/PaymentMethod/management/PaymentMethodBankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +26 -20
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js +133 -99
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js +8 -0
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.module.scss.js.map +1 -0
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +19 -20
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js +92 -86
- package/dist/components/Employee/PaymentMethod/shared/SplitPaymentsFormBody/SplitPaymentsFormBody.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +65 -64
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +7 -8
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +7 -7
- package/dist/components/Employee/Profile/onboarding/AdminProfile.js +6 -6
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +6 -6
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.d.ts +1 -0
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useCurrentHomeAddressForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.d.ts +1 -0
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useCurrentWorkAddressForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js +11 -12
- package/dist/components/Employee/StateTaxes/management/StateTaxesCard/StateTaxesCard.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +9 -10
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +6 -7
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js +44 -45
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/useEmployeeStateTaxesForm.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +23 -22
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js +27 -27
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployeePresentation.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js +9 -10
- package/dist/components/Employee/Terminations/TerminationFlow/TerminationFlowComponents.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js +2 -3
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummaryPresentation.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js +16 -17
- package/dist/components/Employee/WorkAddress/management/WorkAddressCard/WorkAddressCard.js.map +1 -1
- package/dist/components/Flow/Flow.js +1 -1
- package/dist/components/Flow/FlowHeader.js +3 -4
- package/dist/components/Flow/FlowHeader.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js +8 -9
- package/dist/components/InformationRequests/InformationRequestForm/InformationRequestForm.js.map +1 -1
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js +7 -8
- package/dist/components/InformationRequests/InformationRequestList/InformationRequestList.js.map +1 -1
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js +37 -37
- package/dist/components/Payroll/ConfirmWireDetails/ConfirmWireDetailsForm/ConfirmWireDetailsForm.js.map +1 -1
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js +8 -9
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +7 -8
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +10 -12
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +0 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js +7 -8
- package/dist/components/Payroll/PayrollBlocker/components/PayrollBlockerAlerts.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.d.ts +3 -3
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js +54 -50
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +80 -69
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +20 -18
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +138 -136
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js +10 -12
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.module.scss.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +4 -4
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js +2 -3
- package/dist/components/Payroll/PayrollOverview/SubmissionBlockers/FastAchSubmissionBlockerBanner.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js +2 -3
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesList/RecoveryCasesList.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js +1 -2
- package/dist/components/Payroll/RecoveryCases/RecoveryCasesResubmit/RecoveryCasesResubmit.js.map +1 -1
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js +2 -3
- package/dist/components/Payroll/RecoveryCases/useRecoveryCaseErrorCode.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +8 -9
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -3
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/PolicySettings/PolicySettingsPresentation.js +4 -4
- package/dist/components/TimeOff/PolicyTypeSelector/PolicyTypeSelectorPresentation.js +4 -4
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js +34 -36
- package/dist/components/TimeOff/TimeOffFlow/TimeOffFlowComponents.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/PolicyConfigurationForm/PolicyConfigurationFormPresentation.js +4 -4
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +24 -25
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/components/index.d.ts +40 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +6 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +29 -28
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/LocaleProvider/useLocale.d.ts +1 -9
- package/dist/contexts/LocaleProvider/useLocale.js +5 -15
- package/dist/contexts/LocaleProvider/useLocale.js.map +1 -1
- package/dist/contexts/NonceProvider/index.d.ts +1 -0
- package/dist/contexts/NonceProvider/useNonce.d.ts +37 -0
- package/dist/contexts/NonceProvider/useNonce.js +7 -0
- package/dist/contexts/NonceProvider/useNonce.js.map +1 -0
- package/dist/contexts/ThemeProvider/ThemeProvider.js +25 -24
- package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/contexts/index.d.ts +1 -0
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.d.ts +12 -7
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js +25 -21
- package/dist/hooks/useDateRangeFilter/useDateRangeFilter.js.map +1 -1
- package/dist/i18n/I18n.js +1 -0
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.StateTaxes.json.js +6 -4
- package/dist/i18n/en/Company.StateTaxes.json.js.map +1 -1
- package/dist/i18n/en/Contractor.Address.json.js +22 -20
- package/dist/i18n/en/Contractor.Address.json.js.map +1 -1
- package/dist/i18n/en/Contractor.ContractorList.json.js +14 -12
- package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
- package/dist/i18n/en/Contractor.ManagementContractorList.json.js +60 -0
- package/dist/i18n/en/Contractor.ManagementContractorList.json.js.map +1 -0
- package/dist/i18n/en/Contractor.Profile.json.js +13 -11
- package/dist/i18n/en/Contractor.Profile.json.js.map +1 -1
- package/dist/i18n/en/Contractor.SignatureForm.json.js +5 -5
- package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js +18 -16
- package/dist/i18n/en/Employee.Management.PaymentMethodBankForm.json.js.map +1 -1
- package/dist/i18n/en/Employee.Management.PaymentMethodSplitForm.json.js +2 -2
- package/dist/i18n/en/Employee.PaymentMethod.json.js +74 -72
- package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
- package/dist/i18n/en/Employee.SplitPaymentsFormBody.json.js +2 -2
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +8 -8
- package/dist/i18n/en/Payroll.PayrollList.json.js +23 -23
- package/dist/i18n/types.d.ts +215 -17
- package/dist/index.d.ts +6 -3
- package/dist/index.js +15 -13
- package/dist/index.js.map +1 -1
- package/dist/models/external.d.ts +4 -0
- package/dist/partner-hook-utils/form/SDKFormProvider.js +39 -24
- package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +12 -15
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +16 -19
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -16
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +12 -15
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +18 -21
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +9 -12
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/preprocessors.d.ts +2 -2
- package/dist/partner-hook-utils/form/preprocessors.js +8 -7
- package/dist/partner-hook-utils/form/preprocessors.js.map +1 -1
- package/dist/partner-hook-utils/form/preprocessors.test.d.ts +1 -0
- package/dist/shared/constants.d.ts +12 -0
- package/dist/shared/constants.js +23 -17
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/Helpers.d.ts +1 -1
- package/docs/guides/endpoint-inventory.json +61 -27
- package/package.json +19 -17
- package/dist/components/Company/StateTaxes/StateTaxesForm/applicableIf.js.map +0 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.d.ts +0 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js +0 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/rhfKey.js.map +0 -1
- package/dist/components/Contractor/ContractorList/index.js +0 -150
- package/dist/components/Contractor/ContractorList/index.js.map +0 -1
- package/dist/components/Contractor/ContractorList/useContractorList.d.ts +0 -18
- package/dist/components/Contractor/ContractorList/useContractorList.js +0 -15
- package/dist/components/Contractor/ContractorList/useContractorList.js.map +0 -1
- /package/dist/components/Company/StateTaxes/{StateTaxesForm/applicableIf.test.d.ts → TaxRateManagement/toHistoryRows.test.d.ts} +0 -0
- /package/dist/components/Company/StateTaxes/{StateTaxesForm → shared}/applicableIf.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.53.0](https://github.com/Gusto/embedded-react-sdk/compare/v0.52.2...v0.53.0) (2026-07-24)
|
|
4
|
+
|
|
5
|
+
### ⚠ Breaking Changes
|
|
6
|
+
|
|
7
|
+
- **`BoxProps.children` is now optional** ([#2427](https://github.com/Gusto/embedded-react-sdk/issues/2427)). If you have a custom `Box` adapter with `children` typed as required, update it to accept `undefined`:
|
|
8
|
+
|
|
9
|
+
```diff
|
|
10
|
+
interface BoxProps {
|
|
11
|
+
- children: ReactNode
|
|
12
|
+
+ children?: ReactNode
|
|
13
|
+
}
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Runtime behavior is unchanged — React renders nothing when `children` is `undefined`.
|
|
17
|
+
|
|
18
|
+
### Features & Enhancements
|
|
19
|
+
|
|
20
|
+
- `StateTaxes` gained a "Manage tax rates" view showing each state's effective-dated rate history (current, scheduled, and historical), with the ability to schedule a new rate for a future effective date. ([#2462](https://github.com/Gusto/embedded-react-sdk/issues/2462))
|
|
21
|
+
- `GustoProvider` and `GustoProviderCustomUIAdapter` accept a new `nonce` prop for partners with a strict `style-src 'nonce-…'` Content Security Policy, so the SDK's runtime-injected styles no longer require `unsafe-inline`. The nonce is also exposed to custom UI components via a new `useNonce` hook. ([#2191](https://github.com/Gusto/embedded-react-sdk/issues/2191))
|
|
22
|
+
- `PaymentMethod` onboarding now shows the bank account form inline when Direct Deposit is selected, instead of requiring an extra click to reveal it. ([#2420](https://github.com/Gusto/embedded-react-sdk/issues/2420))
|
|
23
|
+
- Added `ContractorManagement.ContractorList`, a tabbed (Active/Onboarding/Dismissed) contractor list for management flows with view, dismiss, rehire, and cancel-dismissal/cancel-rehire actions. ([#2443](https://github.com/Gusto/embedded-react-sdk/issues/2443))
|
|
24
|
+
|
|
25
|
+
### Fixes
|
|
26
|
+
|
|
27
|
+
- Fixed off-by-one date bugs across `DatePicker` defaults and date serialization, where dates near a timezone boundary could display or submit one day off. ([#2430](https://github.com/Gusto/embedded-react-sdk/issues/2430))
|
|
28
|
+
- Fixed an off-by-one bug in `StateTaxes`' effective date display. ([#2429](https://github.com/Gusto/embedded-react-sdk/issues/2429))
|
|
29
|
+
- The "Continue" button in `PaymentMethod` onboarding is now disabled when Direct Deposit is selected but no bank account has been added yet. ([#2419](https://github.com/Gusto/embedded-react-sdk/issues/2419))
|
|
30
|
+
- Field-level errors returned by the API are now cleared as soon as the user edits the field, instead of persisting until the next submit. ([#2415](https://github.com/Gusto/embedded-react-sdk/issues/2415))
|
|
31
|
+
- `BankAccount`, `DocumentSigner`, and `PaySchedule` no longer get stuck read-only after their "done" event fires — they remain editable, matching `StateTaxes`. ([#2428](https://github.com/Gusto/embedded-react-sdk/issues/2428))
|
|
32
|
+
- `PayrollList` filters now apply and display a sensible default date range instead of an empty one. ([#2441](https://github.com/Gusto/embedded-react-sdk/issues/2441))
|
|
33
|
+
|
|
34
|
+
### Chores & Maintenance
|
|
35
|
+
|
|
36
|
+
- Bump dev dependencies (`storybook` and its addons, `typescript-eslint`, `@typescript-eslint/rule-tester`, `@microsoft/api-extractor`, `prettier`, `markdownlint-cli2`, `eslint-plugin-storybook`, `axios`)
|
|
37
|
+
- Bump dependencies (`react-i18next`, `react-hook-form`, `js-yaml`, `shell-quote`)
|
|
38
|
+
|
|
39
|
+
## [0.52.2](https://github.com/Gusto/embedded-react-sdk/compare/v0.52.1...v0.52.2) (2026-07-17)
|
|
40
|
+
|
|
41
|
+
### Features & Enhancements
|
|
42
|
+
|
|
43
|
+
- The contractor W-9 signature form now shows an on-file SSN/EIN as a masked, disabled field with a "Change SSN"/"Change EIN" button, rather than exposing it as an editable value. ([#2406](https://github.com/Gusto/embedded-react-sdk/issues/2406))
|
|
44
|
+
- While a contractor is mid self-onboarding, the admin's contractor list menu no longer offers "Edit" — only "Cancel self-onboarding" and "Delete" — so the admin must cancel self-onboarding to regain edit access. ([#2407](https://github.com/Gusto/embedded-react-sdk/issues/2407))
|
|
45
|
+
- Admins editing a contractor's profile or address now see a warning when the contractor already has a signed W-9 on file, since the edit will require collecting an updated, signed W-9. ([#2394](https://github.com/Gusto/embedded-react-sdk/issues/2394))
|
|
46
|
+
|
|
47
|
+
### Fixes
|
|
48
|
+
|
|
49
|
+
- Fix `StateTaxes` getting stuck on the list view after clicking "Continue" — state rows are now still editable afterward instead of becoming permanently inert. ([#2416](https://github.com/Gusto/embedded-react-sdk/issues/2416))
|
|
50
|
+
|
|
51
|
+
### Chores & Maintenance
|
|
52
|
+
|
|
53
|
+
- Bump dev dependencies (`@typescript-eslint/parser`, `typescript-eslint`, `eslint-plugin-storybook`, `fuse.js`, `tsx`)
|
|
54
|
+
|
|
3
55
|
## [0.52.1](https://github.com/Gusto/embedded-react-sdk/compare/v0.52.0...v0.52.1) (2026-07-14)
|
|
4
56
|
|
|
5
57
|
### Features & Enhancements
|
|
@@ -9,7 +9,7 @@ import { SDKError } from '../../types/sdkError';
|
|
|
9
9
|
*
|
|
10
10
|
* @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.
|
|
11
11
|
* @public
|
|
12
|
-
* @page
|
|
12
|
+
* @page blocks
|
|
13
13
|
*/
|
|
14
14
|
export interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {
|
|
15
15
|
/** Optional child content rendered inside the component's layout. */
|
|
@@ -38,7 +38,7 @@ export interface CommonComponentInterface<TResourceKey extends keyof Resources =
|
|
|
38
38
|
*
|
|
39
39
|
* @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.
|
|
40
40
|
* @public
|
|
41
|
-
* @page
|
|
41
|
+
* @page blocks
|
|
42
42
|
*/
|
|
43
43
|
export interface BaseComponentInterface<TResourceKey extends keyof Resources = keyof Resources> extends CommonComponentInterface<TResourceKey> {
|
|
44
44
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\n/**\n * Props common to all SDK feature components, including children, an optional className, default form values, and an i18n resource dictionary override.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page workflows-and-blocks\n */\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n /** Optional child content rendered inside the component's layout. */\n children?: ReactNode\n /** CSS class name applied to the component's root element. */\n className?: string\n /**\n * Initial values pre-populated into the component's form fields before the user interacts.\n * The exact shape depends on the specific component — refer to each component's own props type.\n */\n defaultValues?: unknown\n /**\n * Overrides for the component's i18n strings. Supply a partial object whose keys match the\n * component's resource namespace — any omitted keys fall back to SDK defaults.\n * See the [Translation guide](https://docs.gusto.com/embedded-payroll/docs/translation) for details.\n */\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n/**\n * Props for SDK feature components that participate in the standard error/loading/observability surface.\n *\n * @remarks\n * Extends {@link CommonComponentInterface} with the `onEvent` callback that emits component events\n * and optional overrides for the error-boundary fallback and loading indicator. This is the prop\n * shape mixed into every public SDK feature component.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page workflows-and-blocks\n */\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n /**\n * Custom React component rendered in place of the component when an unhandled error is caught\n * by the component-level error boundary. Receives `error` and `resetErrorBoundary` as props.\n * Defaults to the SDK's built-in `InternalError` fallback.\n */\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n /**\n * Custom loading indicator rendered while the component's async data is fetching.\n * Overrides the indicator configured on `GustoProvider` for this component instance only.\n */\n LoaderComponent?: ({ children }: { children?: ReactNode }) => JSX.Element\n /**\n * Callback invoked each time the component emits an event — user interactions, successful API\n * responses, step transitions, or errors. Receives the event type constant and an optional\n * payload whose shape varies by event. See the [Event Handling guide](https://docs.gusto.com/embedded-payroll/docs/event-handling)\n * and each component's event table for the full list of emitted events.\n */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Keys unique to the BaseComponentInterface\n *\n * @internal\n */\nexport type BaseComponentKeys = Exclude<\n keyof BaseComponentInterface,\n keyof CommonComponentInterface\n>\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\n/**\n * Wraps SDK feature components with the standard error boundary, suspense fallback, form-submission handler, and observability wiring.\n *\n * @remarks\n * Provides a {@link BaseContext} value to descendants exposing `error`, `setError`, `onEvent`, and\n * `baseSubmitHandler`, then renders children inside {@link BaseBoundaries} and {@link BaseLayout}.\n * Errors caught by the React error boundary are normalized, emitted to observability, and re-emitted\n * via `onEvent`.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `componentEvents.ERROR` | Emitted when an unhandled rendering error is caught by the component's error boundary | The raw error value caught by the boundary |\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @param props - Component props extending {@link BaseComponentInterface}.\n * @returns A React element wrapping `children` with the SDK's standard error, loading, and event-emission surface.\n * @internal\n */\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n componentName={componentName}\n >\n <BaseLayout error={error}>{children}</BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\n/** @internal */\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\n/**\n * Renders the standard SDK layout with normalized error display, suspense-aware loading state, and the children content.\n *\n * @remarks\n * When `isLoading` is true and there are no errors, renders the configured loading indicator.\n * Otherwise renders a fade-in wrapper that displays a single error alert, an aggregated alert when\n * multiple errors are present, or no alert when errors are absent. Field-level errors are rendered\n * as a list, validation errors as preformatted Zod output, and all other errors as a generic\n * message — see {@link https://github.com/Gusto/embedded-react-sdk/blob/main/docs/integration-guide/error-handling.md | the Error Handling guide}.\n *\n * @param props - Component props matching {@link BaseLayoutProps}.\n * @returns A React element with the SDK's standard error rendering and loading behavior wrapped around `children`.\n * @internal\n */\nexport const BaseLayout = ({ children, error, isLoading }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoadingIndicatorContextProps['LoadingIndicator']\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nfunction SuspenseFallback({ componentName }: { componentName?: string }) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={LoadingIndicator}\n observability={observability}\n componentName={componentName}\n />\n )\n}\n\n/** @internal */\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n componentName?: string\n}\n\n/**\n * Composes the SDK's React error boundary, TanStack Query reset boundary, and Suspense fallback around children.\n *\n * @remarks\n * Resetting the error boundary also resets any TanStack Query errors so suspended queries refetch\n * cleanly. While children suspend, a metrics-instrumented loading indicator is rendered that emits\n * an `sdk.component.loading_duration` observability metric on unmount.\n *\n * @param props - Component props matching {@link BaseBoundariesProps}.\n * @returns A React element wrapping `children` with the SDK's error and suspense boundaries.\n * @internal\n */\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n componentName,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<SuspenseFallback componentName={componentName} />}>\n {children}\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","LoaderWithMetrics","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","SuspenseFallback","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX, ErrorInfo } from 'react'\nimport { Suspense, useEffect, useRef } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type OnEventType } from './useBase'\nimport { useBaseSubmit } from './useBaseSubmit'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\nimport { useLoadingIndicator } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport type { LoadingIndicatorContextProps } from '@/contexts/LoadingIndicatorProvider/useLoadingIndicator'\nimport { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\n/**\n * Props common to all SDK feature components, including children, an optional className, default form values, and an i18n resource dictionary override.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page blocks\n */\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n /** Optional child content rendered inside the component's layout. */\n children?: ReactNode\n /** CSS class name applied to the component's root element. */\n className?: string\n /**\n * Initial values pre-populated into the component's form fields before the user interacts.\n * The exact shape depends on the specific component — refer to each component's own props type.\n */\n defaultValues?: unknown\n /**\n * Overrides for the component's i18n strings. Supply a partial object whose keys match the\n * component's resource namespace — any omitted keys fall back to SDK defaults.\n * See the [Translation guide](https://docs.gusto.com/embedded-payroll/docs/translation) for details.\n */\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n/**\n * Props for SDK feature components that participate in the standard error/loading/observability surface.\n *\n * @remarks\n * Extends {@link CommonComponentInterface} with the `onEvent` callback that emits component events\n * and optional overrides for the error-boundary fallback and loading indicator. This is the prop\n * shape mixed into every public SDK feature component.\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @public\n * @page blocks\n */\nexport interface BaseComponentInterface<\n TResourceKey extends keyof Resources = keyof Resources,\n> extends CommonComponentInterface<TResourceKey> {\n /**\n * Custom React component rendered in place of the component when an unhandled error is caught\n * by the component-level error boundary. Receives `error` and `resetErrorBoundary` as props.\n * Defaults to the SDK's built-in `InternalError` fallback.\n */\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n /**\n * Custom loading indicator rendered while the component's async data is fetching.\n * Overrides the indicator configured on `GustoProvider` for this component instance only.\n */\n LoaderComponent?: ({ children }: { children?: ReactNode }) => JSX.Element\n /**\n * Callback invoked each time the component emits an event — user interactions, successful API\n * responses, step transitions, or errors. Receives the event type constant and an optional\n * payload whose shape varies by event. See the [Event Handling guide](https://docs.gusto.com/embedded-payroll/docs/event-handling)\n * and each component's event table for the full list of emitted events.\n */\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**\n * Keys unique to the BaseComponentInterface\n *\n * @internal\n */\nexport type BaseComponentKeys = Exclude<\n keyof BaseComponentInterface,\n keyof CommonComponentInterface\n>\n\ninterface InternalBaseComponentProps {\n componentName?: string\n}\n\n/**\n * Wraps SDK feature components with the standard error boundary, suspense fallback, form-submission handler, and observability wiring.\n *\n * @remarks\n * Provides a {@link BaseContext} value to descendants exposing `error`, `setError`, `onEvent`, and\n * `baseSubmitHandler`, then renders children inside {@link BaseBoundaries} and {@link BaseLayout}.\n * Errors caught by the React error boundary are normalized, emitted to observability, and re-emitted\n * via `onEvent`.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `componentEvents.ERROR` | Emitted when an unhandled rendering error is caught by the component's error boundary | The raw error value caught by the boundary |\n *\n * @typeParam TResourceKey - The i18n resource namespace key whose dictionary entries can be overridden.\n * @param props - Component props extending {@link BaseComponentInterface}.\n * @returns A React element wrapping `children` with the SDK's standard error, loading, and event-emission surface.\n * @internal\n */\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent: LoadingIndicatorFromProps,\n onEvent,\n componentName,\n}: BaseComponentInterface<TResourceKey> & InternalBaseComponentProps) => {\n const { error, baseSubmitHandler, setError } = useBaseSubmit(componentName)\n const { observability } = useObservability()\n\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoaderComponent = LoadingIndicatorFromProps ?? LoadingIndicatorFromContext\n\n const onErrorBoundaryError = (boundaryError: unknown, errorInfo: ErrorInfo) => {\n onEvent(componentEvents.ERROR, boundaryError)\n\n const sdkError = normalizeToSDKError(boundaryError)\n\n observability?.onError?.({\n ...sdkError,\n timestamp: Date.now(),\n componentName,\n componentStack: errorInfo.componentStack ?? undefined,\n })\n }\n\n return (\n <BaseContext.Provider\n value={{\n error,\n setError,\n onEvent,\n baseSubmitHandler,\n LoadingIndicator: LoaderComponent,\n componentName,\n }}\n >\n <BaseBoundaries\n FallbackComponent={FallbackComponent}\n onErrorBoundaryError={onErrorBoundaryError}\n componentName={componentName}\n >\n <BaseLayout error={error}>{children}</BaseLayout>\n </BaseBoundaries>\n </BaseContext.Provider>\n )\n}\n\n/** @internal */\nexport interface BaseLayoutProps {\n children?: ReactNode\n error?: SDKError | SDKError[] | null\n isLoading?: boolean\n}\n\nfunction SingleErrorContent({ error }: { error: SDKError }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n const hasFieldErrors = error.fieldErrors.length > 0\n\n return (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {hasFieldErrors && (\n <Components.UnorderedList\n items={error.fieldErrors\n .filter(fieldError => fieldError.message)\n .map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n )}\n {!hasFieldErrors && error.category === 'validation_error' && (\n <Components.Text as=\"pre\">\n {error.raw &&\n typeof error.raw === 'object' &&\n 'pretty' in error.raw &&\n typeof (error.raw as { pretty: unknown }).pretty === 'function'\n ? (error.raw as { pretty: () => string }).pretty()\n : error.message}\n </Components.Text>\n )}\n {!hasFieldErrors && error.category !== 'validation_error' && (\n <Components.Text>{error.message || t('errors.unknownError')}</Components.Text>\n )}\n </Components.Alert>\n )\n}\n\nfunction MultipleErrorsContent({ errors }: { errors: SDKError[] }) {\n const Components = useComponentContext()\n const { t } = useTranslation()\n\n return (\n <Components.Alert label={t('status.multipleErrorsEncountered')} status=\"error\">\n <Components.UnorderedList\n items={errors\n .filter(error => error.message || error.fieldErrors.length > 0)\n .map((error, index) => {\n const visibleFieldErrors = error.fieldErrors.filter(fieldError => fieldError.message)\n\n if (visibleFieldErrors.length === 0) {\n return <span key={index}>{error.message || t('errors.unknownError')}</span>\n }\n\n return (\n <span key={index}>\n {error.message || t('errors.unknownError')}\n <Components.UnorderedList\n items={visibleFieldErrors.map(fieldError => (\n <span key={fieldError.field}>{fieldError.message}</span>\n ))}\n />\n </span>\n )\n })}\n />\n </Components.Alert>\n )\n}\n\n/**\n * Renders the standard SDK layout with normalized error display, suspense-aware loading state, and the children content.\n *\n * @remarks\n * When `isLoading` is true and there are no errors, renders the configured loading indicator.\n * Otherwise renders a fade-in wrapper that displays a single error alert, an aggregated alert when\n * multiple errors are present, or no alert when errors are absent. Field-level errors are rendered\n * as a list, validation errors as preformatted Zod output, and all other errors as a generic\n * message — see {@link https://github.com/Gusto/embedded-react-sdk/blob/main/docs/integration-guide/error-handling.md | the Error Handling guide}.\n *\n * @param props - Component props matching {@link BaseLayoutProps}.\n * @returns A React element with the SDK's standard error rendering and loading behavior wrapped around `children`.\n * @internal\n */\nexport const BaseLayout = ({ children, error, isLoading }: BaseLayoutProps) => {\n const { LoadingIndicator } = useLoadingIndicator()\n\n const errors = Array.isArray(error) ? error : error ? [error] : []\n const hasErrors = errors.length > 0\n\n if (isLoading && !hasErrors) {\n return <LoadingIndicator />\n }\n\n const [firstError] = errors\n\n return (\n <FadeIn>\n {errors.length > 1 && <MultipleErrorsContent errors={errors} />}\n {errors.length === 1 && firstError && <SingleErrorContent error={firstError} />}\n {children}\n </FadeIn>\n )\n}\n\ninterface LoaderWithMetricsProps {\n LoaderComponent: LoadingIndicatorContextProps['LoadingIndicator']\n observability: ReturnType<typeof useObservability>['observability']\n componentName?: string\n}\n\nconst LoaderWithMetrics = ({\n LoaderComponent,\n observability,\n componentName,\n}: LoaderWithMetricsProps) => {\n const loadingStartTime = useRef(Date.now())\n const observabilityRef = useRef(observability)\n const componentNameRef = useRef(componentName)\n\n useEffect(() => {\n observabilityRef.current = observability\n componentNameRef.current = componentName\n }, [observability, componentName])\n\n useEffect(() => {\n return () => {\n const duration = Date.now() - loadingStartTime.current\n observabilityRef.current?.onMetric?.({\n name: 'sdk.component.loading_duration',\n value: duration,\n unit: 'ms',\n tags: componentNameRef.current ? { component: componentNameRef.current } : undefined,\n timestamp: Date.now(),\n })\n }\n }, [])\n\n return <LoaderComponent />\n}\n\nfunction SuspenseFallback({ componentName }: { componentName?: string }) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={LoadingIndicator}\n observability={observability}\n componentName={componentName}\n />\n )\n}\n\n/** @internal */\nexport interface BaseBoundariesProps {\n children?: ReactNode\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n onErrorBoundaryError?: (error: unknown, info: ErrorInfo) => void\n componentName?: string\n}\n\n/**\n * Composes the SDK's React error boundary, TanStack Query reset boundary, and Suspense fallback around children.\n *\n * @remarks\n * Resetting the error boundary also resets any TanStack Query errors so suspended queries refetch\n * cleanly. While children suspend, a metrics-instrumented loading indicator is rendered that emits\n * an `sdk.component.loading_duration` observability metric on unmount.\n *\n * @param props - Component props matching {@link BaseBoundariesProps}.\n * @returns A React element wrapping `children` with the SDK's error and suspense boundaries.\n * @internal\n */\nexport const BaseBoundaries = ({\n children,\n FallbackComponent = InternalError,\n onErrorBoundaryError,\n componentName,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense fallback={<SuspenseFallback componentName={componentName} />}>\n {children}\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n )\n}\n"],"names":["BaseComponent","children","FallbackComponent","InternalError","LoadingIndicatorFromProps","onEvent","componentName","error","baseSubmitHandler","setError","useBaseSubmit","observability","useObservability","LoadingIndicatorFromContext","useLoadingIndicator","LoaderComponent","onErrorBoundaryError","boundaryError","errorInfo","componentEvents","sdkError","normalizeToSDKError","jsx","BaseContext","BaseBoundaries","BaseLayout","SingleErrorContent","Components","useComponentContext","t","useTranslation","hasFieldErrors","jsxs","fieldError","MultipleErrorsContent","errors","index","visibleFieldErrors","isLoading","LoadingIndicator","hasErrors","firstError","FadeIn","LoaderWithMetrics","loadingStartTime","useRef","observabilityRef","componentNameRef","useEffect","duration","SuspenseFallback","QueryErrorResetBoundary","resetQueries","ErrorBoundary","Suspense"],"mappings":"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"}
|
|
@@ -11,10 +11,9 @@ interface DateRangeFilterProps {
|
|
|
11
11
|
resetLabel: string;
|
|
12
12
|
selectDatesLabel: string;
|
|
13
13
|
triggerLabel: string;
|
|
14
|
-
isFilterActive: boolean;
|
|
15
14
|
maxEndDate?: Date;
|
|
16
15
|
minStartDate?: Date;
|
|
17
16
|
}
|
|
18
17
|
/** @internal */
|
|
19
|
-
export declare const DateRangeFilter: ({ startDate, endDate, onStartDateChange, onEndDateChange, onClear, startDateLabel, endDateLabel, applyLabel, cancelLabel, resetLabel, selectDatesLabel, triggerLabel,
|
|
18
|
+
export declare const DateRangeFilter: ({ startDate, endDate, onStartDateChange, onEndDateChange, onClear, startDateLabel, endDateLabel, applyLabel, cancelLabel, resetLabel, selectDatesLabel, triggerLabel, maxEndDate, minStartDate, }: DateRangeFilterProps) => import("react").JSX.Element;
|
|
20
19
|
export {};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { jsxs as a, Fragment as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { Popover as
|
|
1
|
+
import { jsxs as a, Fragment as H, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { useState as y, useRef as I, useCallback as l, useMemo as M } from "react";
|
|
3
|
+
import { Popover as _, Dialog as q } from "react-aria-components";
|
|
4
4
|
import s from "./DateRangeFilter.module.scss.js";
|
|
5
|
-
import { Flex as
|
|
6
|
-
import { useComponentContext as
|
|
7
|
-
import { useTheme as
|
|
5
|
+
import { Flex as R } from "../Flex/Flex.js";
|
|
6
|
+
import { useComponentContext as z } from "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
7
|
+
import { useTheme as E } from "../../../contexts/ThemeProvider/useTheme.js";
|
|
8
8
|
/* empty css */
|
|
9
|
-
import
|
|
10
|
-
const
|
|
9
|
+
import G from "../../../assets/icons/filter-funnel.svg.js";
|
|
10
|
+
const x = (n) => n.toLocaleDateString("en-US", { month: "short", day: "numeric" }), ee = ({
|
|
11
11
|
startDate: n,
|
|
12
12
|
endDate: o,
|
|
13
13
|
onStartDateChange: d,
|
|
@@ -16,71 +16,70 @@ const k = (n) => n.toLocaleDateString("en-US", { month: "short", day: "numeric"
|
|
|
16
16
|
startDateLabel: c,
|
|
17
17
|
endDateLabel: m,
|
|
18
18
|
applyLabel: F,
|
|
19
|
-
cancelLabel:
|
|
20
|
-
resetLabel:
|
|
21
|
-
selectDatesLabel:
|
|
22
|
-
triggerLabel:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
minStartDate: O
|
|
19
|
+
cancelLabel: k,
|
|
20
|
+
resetLabel: $,
|
|
21
|
+
selectDatesLabel: b,
|
|
22
|
+
triggerLabel: N,
|
|
23
|
+
maxEndDate: j,
|
|
24
|
+
minStartDate: B
|
|
26
25
|
}) => {
|
|
27
|
-
const { Button: t, DateRangePicker:
|
|
26
|
+
const { Button: t, DateRangePicker: O } = z(), { container: S } = E(), [g, p] = y(!1), [r, u] = y(null), v = I(null), P = l(() => {
|
|
28
27
|
u(n && o ? { start: n, end: o } : null), p(!0);
|
|
29
|
-
}, [n, o]),
|
|
28
|
+
}, [n, o]), C = l(() => {
|
|
30
29
|
p(!1);
|
|
31
|
-
}, []),
|
|
30
|
+
}, []), U = l(() => {
|
|
32
31
|
r ? (d(r.start), f(r.end)) : h(), p(!1);
|
|
33
|
-
}, [r, d, f, h]),
|
|
32
|
+
}, [r, d, f, h]), V = l(() => {
|
|
34
33
|
u(null);
|
|
35
|
-
}, []),
|
|
34
|
+
}, []), A = l((i) => {
|
|
36
35
|
u(i);
|
|
37
|
-
}, []),
|
|
36
|
+
}, []), T = M(() => !n || !o ? null : `${x(n)} – ${x(o)}`, [n, o]), w = /* @__PURE__ */ e(
|
|
38
37
|
t,
|
|
39
38
|
{
|
|
40
39
|
buttonRef: v,
|
|
41
|
-
"aria-label":
|
|
40
|
+
"aria-label": N,
|
|
42
41
|
"aria-haspopup": "dialog",
|
|
43
|
-
"aria-expanded":
|
|
44
|
-
onClick:
|
|
42
|
+
"aria-expanded": g,
|
|
43
|
+
onClick: P,
|
|
45
44
|
variant: "secondary",
|
|
46
|
-
icon: /* @__PURE__ */ e(
|
|
45
|
+
icon: /* @__PURE__ */ e(G, {}),
|
|
47
46
|
className: s.triggerButton,
|
|
48
|
-
children:
|
|
47
|
+
children: T ?? b
|
|
49
48
|
}
|
|
50
49
|
);
|
|
51
|
-
return /* @__PURE__ */ a(
|
|
52
|
-
|
|
50
|
+
return /* @__PURE__ */ a(H, { children: [
|
|
51
|
+
w,
|
|
53
52
|
/* @__PURE__ */ e(
|
|
54
|
-
|
|
53
|
+
_,
|
|
55
54
|
{
|
|
56
|
-
UNSTABLE_portalContainer:
|
|
57
|
-
isOpen:
|
|
55
|
+
UNSTABLE_portalContainer: S.current ?? void 0,
|
|
56
|
+
isOpen: g,
|
|
58
57
|
onOpenChange: (i) => {
|
|
59
|
-
i ||
|
|
58
|
+
i || C();
|
|
60
59
|
},
|
|
61
60
|
triggerRef: v,
|
|
62
61
|
placement: "bottom end",
|
|
63
62
|
offset: 8,
|
|
64
63
|
shouldUpdatePosition: !0,
|
|
65
|
-
children: /* @__PURE__ */ a(
|
|
64
|
+
children: /* @__PURE__ */ a(q, { className: s.dialog, "aria-label": `${c} – ${m}`, children: [
|
|
66
65
|
/* @__PURE__ */ e("div", { className: s.popoverContent, children: /* @__PURE__ */ e(
|
|
67
|
-
|
|
66
|
+
O,
|
|
68
67
|
{
|
|
69
68
|
label: `${c} – ${m}`,
|
|
70
69
|
shouldVisuallyHideLabel: !0,
|
|
71
70
|
value: r,
|
|
72
|
-
onChange:
|
|
71
|
+
onChange: A,
|
|
73
72
|
startDateLabel: c,
|
|
74
73
|
endDateLabel: m,
|
|
75
|
-
minValue:
|
|
76
|
-
maxValue:
|
|
74
|
+
minValue: B,
|
|
75
|
+
maxValue: j
|
|
77
76
|
}
|
|
78
77
|
) }),
|
|
79
|
-
/* @__PURE__ */ e("div", { className: s.popoverFooter, children: /* @__PURE__ */ a(
|
|
80
|
-
/* @__PURE__ */ e(t, { variant: "tertiary", onClick:
|
|
81
|
-
/* @__PURE__ */ a(
|
|
82
|
-
/* @__PURE__ */ e(t, { variant: "secondary", onClick:
|
|
83
|
-
/* @__PURE__ */ e(t, { variant: "primary", onClick:
|
|
78
|
+
/* @__PURE__ */ e("div", { className: s.popoverFooter, children: /* @__PURE__ */ a(R, { gap: 8, justifyContent: "space-between", children: [
|
|
79
|
+
/* @__PURE__ */ e(t, { variant: "tertiary", onClick: V, children: $ }),
|
|
80
|
+
/* @__PURE__ */ a(R, { gap: 8, justifyContent: "flex-end", children: [
|
|
81
|
+
/* @__PURE__ */ e(t, { variant: "secondary", onClick: C, children: k }),
|
|
82
|
+
/* @__PURE__ */ e(t, { variant: "primary", onClick: U, children: F })
|
|
84
83
|
] })
|
|
85
84
|
] }) })
|
|
86
85
|
] })
|
|
@@ -89,6 +88,6 @@ const k = (n) => n.toLocaleDateString("en-US", { month: "short", day: "numeric"
|
|
|
89
88
|
] });
|
|
90
89
|
};
|
|
91
90
|
export {
|
|
92
|
-
|
|
91
|
+
ee as DateRangeFilter
|
|
93
92
|
};
|
|
94
93
|
//# sourceMappingURL=DateRangeFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangeFilter.js","sources":["../../../../src/components/Common/DateRangeFilter/DateRangeFilter.tsx"],"sourcesContent":["import { useState, useRef, useCallback, useMemo } from 'react'\nimport { Dialog, Popover } from 'react-aria-components'\nimport styles from './DateRangeFilter.module.scss'\nimport type { DateRange } from '@/components/Common/UI/DateRangePicker/DateRangePickerTypes'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport FilterFunnelIcon from '@/assets/icons/filter-funnel.svg?react'\n\nconst formatFilterDate = (date: Date): string =>\n date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })\n\ninterface DateRangeFilterProps {\n startDate: Date | null\n endDate: Date | null\n onStartDateChange: (date: Date | null) => void\n onEndDateChange: (date: Date | null) => void\n onClear: () => void\n startDateLabel: string\n endDateLabel: string\n applyLabel: string\n cancelLabel: string\n resetLabel: string\n selectDatesLabel: string\n triggerLabel: string\n
|
|
1
|
+
{"version":3,"file":"DateRangeFilter.js","sources":["../../../../src/components/Common/DateRangeFilter/DateRangeFilter.tsx"],"sourcesContent":["import { useState, useRef, useCallback, useMemo } from 'react'\nimport { Dialog, Popover } from 'react-aria-components'\nimport styles from './DateRangeFilter.module.scss'\nimport type { DateRange } from '@/components/Common/UI/DateRangePicker/DateRangePickerTypes'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport FilterFunnelIcon from '@/assets/icons/filter-funnel.svg?react'\n\nconst formatFilterDate = (date: Date): string =>\n date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })\n\ninterface DateRangeFilterProps {\n startDate: Date | null\n endDate: Date | null\n onStartDateChange: (date: Date | null) => void\n onEndDateChange: (date: Date | null) => void\n onClear: () => void\n startDateLabel: string\n endDateLabel: string\n applyLabel: string\n cancelLabel: string\n resetLabel: string\n selectDatesLabel: string\n triggerLabel: string\n maxEndDate?: Date\n minStartDate?: Date\n}\n\n/** @internal */\nexport const DateRangeFilter = ({\n startDate,\n endDate,\n onStartDateChange,\n onEndDateChange,\n onClear,\n startDateLabel,\n endDateLabel,\n applyLabel,\n cancelLabel,\n resetLabel,\n selectDatesLabel,\n triggerLabel,\n maxEndDate,\n minStartDate,\n}: DateRangeFilterProps) => {\n const { Button, DateRangePicker } = useComponentContext()\n const { container } = useTheme()\n\n const [isOpen, setIsOpen] = useState(false)\n const [draftRange, setDraftRange] = useState<DateRange | null>(null)\n const triggerRef = useRef<HTMLButtonElement>(null)\n\n const handleOpen = useCallback(() => {\n const range = startDate && endDate ? { start: startDate, end: endDate } : null\n setDraftRange(range)\n setIsOpen(true)\n }, [startDate, endDate])\n\n const handleClose = useCallback(() => {\n setIsOpen(false)\n }, [])\n\n const handleApply = useCallback(() => {\n if (draftRange) {\n onStartDateChange(draftRange.start)\n onEndDateChange(draftRange.end)\n } else {\n onClear()\n }\n setIsOpen(false)\n }, [draftRange, onStartDateChange, onEndDateChange, onClear])\n\n const handleReset = useCallback(() => {\n setDraftRange(null)\n }, [])\n\n const handleRangeChange = useCallback((range: DateRange | null) => {\n setDraftRange(range)\n }, [])\n\n const filterDateLabel = useMemo(() => {\n if (!startDate || !endDate) return null\n return `${formatFilterDate(startDate)} – ${formatFilterDate(endDate)}`\n }, [startDate, endDate])\n\n const triggerButton = (\n <Button\n buttonRef={triggerRef}\n aria-label={triggerLabel}\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n onClick={handleOpen}\n variant=\"secondary\"\n icon={<FilterFunnelIcon />}\n className={styles.triggerButton}\n >\n {filterDateLabel ?? selectDatesLabel}\n </Button>\n )\n\n return (\n <>\n {triggerButton}\n\n <Popover\n UNSTABLE_portalContainer={container.current ?? undefined}\n isOpen={isOpen}\n onOpenChange={open => {\n if (!open) handleClose()\n }}\n triggerRef={triggerRef}\n placement=\"bottom end\"\n offset={8}\n shouldUpdatePosition\n >\n <Dialog className={styles.dialog} aria-label={`${startDateLabel} – ${endDateLabel}`}>\n <div className={styles.popoverContent}>\n <DateRangePicker\n label={`${startDateLabel} – ${endDateLabel}`}\n shouldVisuallyHideLabel\n value={draftRange}\n onChange={handleRangeChange}\n startDateLabel={startDateLabel}\n endDateLabel={endDateLabel}\n minValue={minStartDate}\n maxValue={maxEndDate}\n />\n </div>\n\n <div className={styles.popoverFooter}>\n <Flex gap={8} justifyContent=\"space-between\">\n <Button variant=\"tertiary\" onClick={handleReset}>\n {resetLabel}\n </Button>\n <Flex gap={8} justifyContent=\"flex-end\">\n <Button variant=\"secondary\" onClick={handleClose}>\n {cancelLabel}\n </Button>\n <Button variant=\"primary\" onClick={handleApply}>\n {applyLabel}\n </Button>\n </Flex>\n </Flex>\n </div>\n </Dialog>\n </Popover>\n </>\n )\n}\n"],"names":["formatFilterDate","date","DateRangeFilter","startDate","endDate","onStartDateChange","onEndDateChange","onClear","startDateLabel","endDateLabel","applyLabel","cancelLabel","resetLabel","selectDatesLabel","triggerLabel","maxEndDate","minStartDate","Button","DateRangePicker","useComponentContext","container","useTheme","isOpen","setIsOpen","useState","draftRange","setDraftRange","triggerRef","useRef","handleOpen","useCallback","handleClose","handleApply","handleReset","handleRangeChange","range","filterDateLabel","useMemo","triggerButton","jsx","FilterFunnelIcon","styles","jsxs","Fragment","Popover","open","Dialog","Flex"],"mappings":"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"}
|
|
@@ -1,58 +1,60 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { jsx as C } from "react/jsx-runtime";
|
|
2
|
+
import { useTranslation as v } from "react-i18next";
|
|
3
|
+
import { useFormContext as x } from "react-hook-form";
|
|
4
4
|
import { useField as F } from "../hooks/useField.js";
|
|
5
|
-
import { useComponentContext as
|
|
6
|
-
import { decimalToPercent as
|
|
7
|
-
function
|
|
8
|
-
if (!(
|
|
9
|
-
return String(
|
|
5
|
+
import { useComponentContext as N } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
6
|
+
import { decimalToPercent as a, percentToDecimal as b } from "../../../../helpers/percentageConversion.js";
|
|
7
|
+
function h(e) {
|
|
8
|
+
if (!(e == null || typeof e == "boolean"))
|
|
9
|
+
return String(e);
|
|
10
10
|
}
|
|
11
|
-
function
|
|
12
|
-
decimalValue:
|
|
13
|
-
decimalMin:
|
|
14
|
-
decimalMax:
|
|
15
|
-
...
|
|
11
|
+
function j({
|
|
12
|
+
decimalValue: e,
|
|
13
|
+
decimalMin: r,
|
|
14
|
+
decimalMax: m,
|
|
15
|
+
...t
|
|
16
16
|
}) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
const c = N(), { t: i } = v("common"), { setError: s, clearErrors: u } = x(), { value: f, onChange: l, ...g } = F({
|
|
18
|
+
...t,
|
|
19
|
+
defaultValue: h(e)
|
|
20
|
+
}), d = (o) => {
|
|
21
|
+
const n = Number(o);
|
|
22
|
+
if (o === "" || Number.isNaN(n)) {
|
|
23
|
+
u(t.name);
|
|
24
|
+
return;
|
|
25
25
|
}
|
|
26
|
-
if (
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
26
|
+
if (r !== void 0 && n < parseFloat(r)) {
|
|
27
|
+
s(t.name, {
|
|
28
|
+
type: "min",
|
|
29
|
+
message: i("validations.percentageMin", { min: a(r) })
|
|
30
|
+
});
|
|
31
|
+
return;
|
|
32
32
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
if (m !== void 0 && n > parseFloat(m)) {
|
|
34
|
+
s(t.name, {
|
|
35
|
+
type: "max",
|
|
36
|
+
message: i("validations.percentageMax", { max: a(m) })
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
u(t.name);
|
|
41
|
+
}, p = (o) => {
|
|
42
|
+
const n = b(o);
|
|
43
|
+
d(n), l(n);
|
|
40
44
|
};
|
|
41
|
-
return /* @__PURE__ */
|
|
42
|
-
|
|
45
|
+
return /* @__PURE__ */ C(
|
|
46
|
+
c.NumberInput,
|
|
43
47
|
{
|
|
44
|
-
...
|
|
48
|
+
...t,
|
|
45
49
|
...g,
|
|
46
|
-
value:
|
|
47
|
-
onChange:
|
|
48
|
-
min: o ? u(o) : void 0,
|
|
49
|
-
max: n ? u(n) : void 0,
|
|
50
|
+
value: a(f),
|
|
51
|
+
onChange: p,
|
|
50
52
|
format: "percent",
|
|
51
53
|
maximumFractionDigits: 4
|
|
52
54
|
}
|
|
53
55
|
);
|
|
54
56
|
}
|
|
55
57
|
export {
|
|
56
|
-
|
|
58
|
+
j as PercentageField
|
|
57
59
|
};
|
|
58
60
|
//# sourceMappingURL=PercentageField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PercentageField.js","sources":["../../../../../src/components/Common/Fields/PercentageField/PercentageField.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"PercentageField.js","sources":["../../../../../src/components/Common/Fields/PercentageField/PercentageField.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useFormContext } from 'react-hook-form'\nimport type { NumberInputProps } from '@/components/Common/UI/NumberInput/NumberInputTypes'\nimport { useField } from '@/components/Common/Fields/hooks/useField'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { decimalToPercent, percentToDecimal } from '@/helpers/percentageConversion'\n\n/** @internal */\nexport interface PercentageFieldProps extends Pick<\n NumberInputProps,\n 'isDisabled' | 'className' | 'label' | 'isRequired' | 'description' | 'errorMessage'\n> {\n name: string\n decimalValue?: string | number | boolean | null\n decimalMin?: string\n decimalMax?: string\n}\n\nfunction toDefaultString(value?: string | number | boolean | null): string | undefined {\n if (value === null || value === undefined || typeof value === 'boolean') return undefined\n return String(value)\n}\n\n/** @internal */\nexport function PercentageField({\n decimalValue,\n decimalMin,\n decimalMax,\n ...props\n}: PercentageFieldProps) {\n const Components = useComponentContext()\n const { t } = useTranslation('common')\n const { setError, clearErrors } = useFormContext()\n\n const { value, onChange, ...fieldProps } = useField({\n ...props,\n defaultValue: toDefaultString(decimalValue),\n })\n\n // Deliberately not passed to NumberInput's `min`/`max` props: react-aria's NumberField\n // treats those as hard bounds and silently clamps out-of-range values to them on blur,\n // with no error shown. Validating here instead keeps the value the user actually typed\n // on screen, paired with a real error message.\n const validateRange = (rawDecimalValue: string) => {\n const num = Number(rawDecimalValue)\n if (rawDecimalValue === '' || Number.isNaN(num)) {\n clearErrors(props.name)\n return\n }\n if (decimalMin !== undefined && num < parseFloat(decimalMin)) {\n setError(props.name, {\n type: 'min',\n message: t('validations.percentageMin', { min: decimalToPercent(decimalMin) }),\n })\n return\n }\n if (decimalMax !== undefined && num > parseFloat(decimalMax)) {\n setError(props.name, {\n type: 'max',\n message: t('validations.percentageMax', { max: decimalToPercent(decimalMax) }),\n })\n return\n }\n clearErrors(props.name)\n }\n\n const handleChange = (percentValue: number) => {\n const decimalStr = percentToDecimal(percentValue)\n validateRange(decimalStr)\n onChange(decimalStr)\n }\n\n return (\n <Components.NumberInput\n {...props}\n {...fieldProps}\n value={decimalToPercent(value)}\n onChange={handleChange}\n format=\"percent\"\n maximumFractionDigits={4}\n />\n )\n}\n"],"names":["toDefaultString","value","PercentageField","decimalValue","decimalMin","decimalMax","props","Components","useComponentContext","t","useTranslation","setError","clearErrors","useFormContext","onChange","fieldProps","useField","validateRange","rawDecimalValue","num","decimalToPercent","handleChange","percentValue","decimalStr","percentToDecimal","jsx"],"mappings":";;;;;;AAkBA,SAASA,EAAgBC,GAA8D;AACrF,MAAI,EAAAA,KAAU,QAA+B,OAAOA,KAAU;AAC9D,WAAO,OAAOA,CAAK;AACrB;AAGO,SAASC,EAAgB;AAAA,EAC9B,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,GAAGC;AACL,GAAyB;AACvB,QAAMC,IAAaC,EAAA,GACb,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/B,EAAE,UAAAC,GAAU,aAAAC,EAAA,IAAgBC,EAAA,GAE5B,EAAE,OAAAZ,GAAO,UAAAa,GAAU,GAAGC,EAAA,IAAeC,EAAS;AAAA,IAClD,GAAGV;AAAA,IACH,cAAcN,EAAgBG,CAAY;AAAA,EAAA,CAC3C,GAMKc,IAAgB,CAACC,MAA4B;AACjD,UAAMC,IAAM,OAAOD,CAAe;AAClC,QAAIA,MAAoB,MAAM,OAAO,MAAMC,CAAG,GAAG;AAC/C,MAAAP,EAAYN,EAAM,IAAI;AACtB;AAAA,IACF;AACA,QAAIF,MAAe,UAAae,IAAM,WAAWf,CAAU,GAAG;AAC5D,MAAAO,EAASL,EAAM,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,SAASG,EAAE,6BAA6B,EAAE,KAAKW,EAAiBhB,CAAU,GAAG;AAAA,MAAA,CAC9E;AACD;AAAA,IACF;AACA,QAAIC,MAAe,UAAac,IAAM,WAAWd,CAAU,GAAG;AAC5D,MAAAM,EAASL,EAAM,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,SAASG,EAAE,6BAA6B,EAAE,KAAKW,EAAiBf,CAAU,GAAG;AAAA,MAAA,CAC9E;AACD;AAAA,IACF;AACA,IAAAO,EAAYN,EAAM,IAAI;AAAA,EACxB,GAEMe,IAAe,CAACC,MAAyB;AAC7C,UAAMC,IAAaC,EAAiBF,CAAY;AAChD,IAAAL,EAAcM,CAAU,GACxBT,EAASS,CAAU;AAAA,EACrB;AAEA,SACE,gBAAAE;AAAA,IAAClB,EAAW;AAAA,IAAX;AAAA,MACE,GAAGD;AAAA,MACH,GAAGS;AAAA,MACJ,OAAOK,EAAiBnB,CAAK;AAAA,MAC7B,UAAUoB;AAAA,MACV,QAAO;AAAA,MACP,uBAAuB;AAAA,IAAA;AAAA,EAAA;AAG7B;"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import
|
|
1
|
+
import { jsxs as m, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import c from "classnames";
|
|
3
3
|
import s from "./Box.module.scss.js";
|
|
4
|
-
function x({ children:
|
|
5
|
-
return /* @__PURE__ */
|
|
4
|
+
function x({ children: a, header: e, footer: o, withPadding: r = !0, className: i }) {
|
|
5
|
+
return /* @__PURE__ */ m("div", { className: c(s.root, i), "data-testid": "data-box", children: [
|
|
6
6
|
e && /* @__PURE__ */ t("div", { className: s.header, children: e }),
|
|
7
|
-
/* @__PURE__ */ t("div", { className: r ? s.content : s.contentFlush, children:
|
|
8
|
-
|
|
7
|
+
a && /* @__PURE__ */ t("div", { className: r ? s.content : s.contentFlush, children: a }),
|
|
8
|
+
o && /* @__PURE__ */ t("div", { className: s.footer, children: o })
|
|
9
9
|
] });
|
|
10
10
|
}
|
|
11
11
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Box.js","sources":["../../../../../src/components/Common/UI/Box/Box.tsx"],"sourcesContent":["import cn from 'classnames'\nimport styles from './Box.module.scss'\nimport type { BoxProps } from '@/components/Common/UI/Box/BoxTypes'\n\n/**\n * Renders a bordered container that groups related content, with optional header and footer slots.\n *\n * @param props - The {@link BoxProps} controlling the box contents, header, footer, and padding.\n * @returns The rendered box.\n * @internal\n */\nexport function Box({ children, header, footer, withPadding = true, className }: BoxProps) {\n return (\n <div className={cn(styles.root, className)} data-testid=\"data-box\">\n {header && <div className={styles.header}>{header}</div>}\n <div className={withPadding ? styles.content : styles.contentFlush}>{children}</div>\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n )\n}\n"],"names":["Box","children","header","footer","withPadding","className","jsxs","cn","styles","jsx"],"mappings":";;;AAWO,SAASA,EAAI,EAAE,UAAAC,GAAU,QAAAC,GAAQ,QAAAC,GAAQ,aAAAC,IAAc,IAAM,WAAAC,KAAuB;AACzF,SACE,gBAAAC,EAAC,SAAI,WAAWC,EAAGC,EAAO,MAAMH,CAAS,GAAG,eAAY,YACrD,UAAA;AAAA,IAAAH,KAAU,gBAAAO,EAAC,OAAA,EAAI,WAAWD,EAAO,QAAS,UAAAN,GAAO;AAAA,
|
|
1
|
+
{"version":3,"file":"Box.js","sources":["../../../../../src/components/Common/UI/Box/Box.tsx"],"sourcesContent":["import cn from 'classnames'\nimport styles from './Box.module.scss'\nimport type { BoxProps } from '@/components/Common/UI/Box/BoxTypes'\n\n/**\n * Renders a bordered container that groups related content, with optional header and footer slots.\n *\n * @param props - The {@link BoxProps} controlling the box contents, header, footer, and padding.\n * @returns The rendered box.\n * @internal\n */\nexport function Box({ children, header, footer, withPadding = true, className }: BoxProps) {\n return (\n <div className={cn(styles.root, className)} data-testid=\"data-box\">\n {header && <div className={styles.header}>{header}</div>}\n {children && (\n <div className={withPadding ? styles.content : styles.contentFlush}>{children}</div>\n )}\n {footer && <div className={styles.footer}>{footer}</div>}\n </div>\n )\n}\n"],"names":["Box","children","header","footer","withPadding","className","jsxs","cn","styles","jsx"],"mappings":";;;AAWO,SAASA,EAAI,EAAE,UAAAC,GAAU,QAAAC,GAAQ,QAAAC,GAAQ,aAAAC,IAAc,IAAM,WAAAC,KAAuB;AACzF,SACE,gBAAAC,EAAC,SAAI,WAAWC,EAAGC,EAAO,MAAMH,CAAS,GAAG,eAAY,YACrD,UAAA;AAAA,IAAAH,KAAU,gBAAAO,EAAC,OAAA,EAAI,WAAWD,EAAO,QAAS,UAAAN,GAAO;AAAA,IACjDD,uBACE,OAAA,EAAI,WAAWG,IAAcI,EAAO,UAAUA,EAAO,cAAe,UAAAP,EAAA,CAAS;AAAA,IAE/EE,KAAU,gBAAAM,EAAC,OAAA,EAAI,WAAWD,EAAO,QAAS,UAAAL,EAAA,CAAO;AAAA,EAAA,GACpD;AAEJ;"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
const
|
|
2
|
-
root:
|
|
3
|
-
header:
|
|
1
|
+
const o = "_root_1polg_1", t = "_header_1polg_12", e = "_content_1polg_17", n = "_contentFlush_1polg_22", _ = "_footer_1polg_27", c = {
|
|
2
|
+
root: o,
|
|
3
|
+
header: t,
|
|
4
4
|
content: e,
|
|
5
5
|
contentFlush: n,
|
|
6
|
-
footer:
|
|
6
|
+
footer: _
|
|
7
7
|
};
|
|
8
8
|
export {
|
|
9
9
|
e as content,
|
|
10
10
|
n as contentFlush,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
c as default,
|
|
12
|
+
_ as footer,
|
|
13
|
+
t as header,
|
|
14
|
+
o as root
|
|
15
15
|
};
|
|
16
16
|
//# sourceMappingURL=Box.module.scss.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as l } from "react/jsx-runtime";
|
|
2
2
|
import h from "classnames";
|
|
3
|
+
import { Flex as u } from "../../Flex/Flex.js";
|
|
3
4
|
import { BreadcrumbsDefaults as C } from "./BreadcrumbsTypes.js";
|
|
4
5
|
import i from "./Breadcrumbs.module.scss.js";
|
|
5
6
|
import { applyMissingDefaults as x } from "../../../../helpers/applyMissingDefaults.js";
|
|
6
|
-
import { Flex as u } from "../../Flex/Flex.js";
|
|
7
7
|
function P(f) {
|
|
8
8
|
const p = x(f, C), {
|
|
9
9
|
className: s,
|