@gusto/embedded-react-sdk 0.57.1 → 0.57.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/components/Base/Base.js +2 -3
  3. package/dist/components/Base/Base.js.map +1 -1
  4. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
  5. package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
  6. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -10
  7. package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
  8. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
  9. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  10. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -8
  11. package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
  12. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
  13. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  14. package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -11
  15. package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
  16. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
  17. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  18. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +8 -9
  19. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  20. package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
  21. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  22. package/dist/components/Company/BankAccount/BankAccountList/Actions.js +10 -12
  23. package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
  24. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +11 -13
  25. package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
  26. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -7
  27. package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
  28. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
  29. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  30. package/dist/components/Company/FederalTaxes/Actions.js +7 -9
  31. package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
  32. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
  33. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  34. package/dist/components/Company/Industry/Actions.js +5 -7
  35. package/dist/components/Company/Industry/Actions.js.map +1 -1
  36. package/dist/components/Company/Industry/Context.js +6 -9
  37. package/dist/components/Company/Industry/Context.js.map +1 -1
  38. package/dist/components/Company/Industry/Edit.js +10 -12
  39. package/dist/components/Company/Industry/Edit.js.map +1 -1
  40. package/dist/components/Company/Locations/LocationForm/Actions.js +8 -10
  41. package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
  42. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
  43. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  44. package/dist/components/Company/Locations/LocationsList/Actions.js +6 -8
  45. package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
  46. package/dist/components/Company/Locations/LocationsList/List.js +11 -13
  47. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  48. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
  49. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  50. package/dist/components/Company/OnboardingOverview/context.js +3 -6
  51. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  52. package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
  53. package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
  54. package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
  55. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +80 -68
  56. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
  57. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +11 -13
  58. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
  59. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
  60. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
  61. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +5 -7
  62. package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
  63. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
  64. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  65. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -8
  66. package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
  67. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
  68. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  69. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
  70. package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
  71. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +16 -17
  72. package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
  73. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +8 -9
  74. package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  75. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +6 -8
  76. package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
  77. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +26 -27
  78. package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  79. package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
  80. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +12 -13
  81. package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
  82. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +12 -13
  83. package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
  84. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +6 -8
  85. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
  86. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
  87. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  88. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +3 -4
  89. package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
  90. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +3 -4
  91. package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
  92. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +22 -24
  93. package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
  94. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +8 -9
  95. package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
  96. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +14 -15
  97. package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
  98. package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
  99. package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
  100. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +7 -8
  101. package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
  102. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +7 -8
  103. package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
  104. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
  105. package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
  106. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +14 -16
  107. package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
  108. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +6 -8
  109. package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
  110. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +9 -11
  111. package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
  112. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +74 -88
  113. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  114. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
  115. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  116. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
  117. package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
  118. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
  119. package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
  120. package/dist/components/Payroll/helpers.js +52 -48
  121. package/dist/components/Payroll/helpers.js.map +1 -1
  122. package/dist/components/Payroll/usePreparedPayrollData.js +13 -16
  123. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  124. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
  125. package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
  126. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -4
  127. package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
  128. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +6 -8
  129. package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
  130. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -30
  131. package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
  132. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
  133. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  134. package/dist/helpers/dateFormatting.js +47 -40
  135. package/dist/helpers/dateFormatting.js.map +1 -1
  136. package/dist/i18n/en/Company.Management.PaySchedule.json.js +20 -18
  137. package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
  138. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +6 -4
  139. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
  140. package/dist/i18n/en/Payroll.PayrollHistory.json.js +5 -5
  141. package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
  142. package/dist/package.json.js +1 -1
  143. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +8 -10
  144. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  145. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +12 -14
  146. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  147. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -15
  148. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  149. package/dist/partner-hook-utils/form/fields/SelectHookField.js +10 -12
  150. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  151. package/dist/partner-hook-utils/form/fields/SwitchHookField.js +14 -16
  152. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  153. package/dist/partner-hook-utils/form/fields/TextInputHookField.js +8 -10
  154. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  155. package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
  156. package/dist/src/components/Payroll/helpers.d.ts +20 -0
  157. package/dist/src/helpers/dateFormatting.d.ts +13 -0
  158. package/dist/src/i18n/types.d.ts +14 -2
  159. package/dist/style.css +1 -1
  160. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.57.2](https://github.com/Gusto/embedded-react-sdk/compare/v0.57.1...v0.57.2) (2026-10-22)
4
+
5
+ ### Fixes
6
+
7
+ - Fix off-cycle and transition payroll dates being sent one day early for users in timezones ahead of UTC. Dates picked in `OffCycleCreation` and `TransitionCreation` are now sent exactly as picked ([#2976](https://github.com/Gusto/embedded-react-sdk/issues/2976))
8
+ - Fix the cancel payroll dialog crashing with `RangeError: timeZone is not supported` when the host app polyfills `Intl.DateTimeFormat`. The deadline in `PayrollOverview` and `PayrollHistory` now uses the SDK locale, and translations can place `{{time}}` and `{{date}}` separately. Existing `{{deadline}}` overrides keep working ([#2968](https://github.com/Gusto/embedded-react-sdk/issues/2968))
9
+ - Align the pay schedule management forms with design, including a "Run payroll by" deadline and a description for the first pay period end date ([#2947](https://github.com/Gusto/embedded-react-sdk/issues/2947))
10
+
11
+ ### Chores & Maintenance
12
+
13
+ - Bump runtime dependencies (`i18next`, `react-i18next`) ([#2971](https://github.com/Gusto/embedded-react-sdk/issues/2971), [#2972](https://github.com/Gusto/embedded-react-sdk/issues/2972))
14
+ - Bump dev dependencies (`@playwright/test`, `@commitlint/cli`, `@storybook/addon-a11y`, `smol-toml`, docs site `launch-editor`)
15
+
3
16
  ## [0.57.1](https://github.com/Gusto/embedded-react-sdk/compare/v0.57.0...v0.57.1) (2026-10-21)
4
17
 
5
18
  ### Features & Enhancements
@@ -7,13 +7,12 @@ import { FadeIn as S } from "../Common/FadeIn/FadeIn.js";
7
7
  import { BaseContext as x } from "./useBase.js";
8
8
  import { useBaseSubmit as R } from "./useBaseSubmit.js";
9
9
  import { componentEvents as F } from "../../shared/constants.js";
10
- import "classnames";
11
10
  import { InternalError as h } from "../Common/InternalError/InternalError.js";
12
11
  import { useComponentContext as L } from "../../contexts/ComponentAdapter/useComponentContext.js";
13
12
  import { useLoadingIndicator as p } from "../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
14
13
  import { useObservability as y } from "../../contexts/ObservabilityProvider/useObservability.js";
15
14
  import { normalizeToSDKError as D } from "../../types/sdkError.js";
16
- const N = ({
15
+ const $ = ({
17
16
  children: r,
18
17
  FallbackComponent: t = h,
19
18
  LoaderComponent: s,
@@ -153,7 +152,7 @@ const _ = ({
153
152
  ) });
154
153
  export {
155
154
  _ as BaseBoundaries,
156
- N as BaseComponent,
155
+ $ as BaseComponent,
157
156
  j as BaseLayout
158
157
  };
159
158
  //# sourceMappingURL=Base.js.map
@@ -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 { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\n/**\n * Signature of a loading indicator component — a React component that optionally receives `children`.\n * Supply one to `GustoProvider` or an individual component's `LoaderComponent` prop to override the\n * SDK's default loading indicator.\n *\n * @public\n * @page blocks\n */\nexport type LoaderComponentType = ({ children }: { children?: ReactNode }) => JSX.Element\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?: LoaderComponentType\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 LoaderComponent={LoaderComponent}\n >\n <BaseLayout error={error} LoaderComponent={LoaderComponent}>\n {children}\n </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 * Loading indicator rendered while `isLoading` is true and no errors are present.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\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, LoaderComponent }: BaseLayoutProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoadingIndicator = LoaderComponent ?? LoadingIndicatorFromContext\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: LoaderComponentType\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({\n componentName,\n LoaderComponent,\n}: {\n componentName?: string\n LoaderComponent?: LoaderComponentType\n}) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={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 * Loading indicator rendered as the Suspense fallback while children suspend.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\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 LoaderComponent,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense\n fallback={\n <SuspenseFallback componentName={componentName} LoaderComponent={LoaderComponent} />\n }\n >\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 { useObservability } from '@/contexts/ObservabilityProvider/useObservability'\nimport { normalizeToSDKError, type SDKError } from '@/types/sdkError'\n\n/**\n * Signature of a loading indicator component — a React component that optionally receives `children`.\n * Supply one to `GustoProvider` or an individual component's `LoaderComponent` prop to override the\n * SDK's default loading indicator.\n *\n * @public\n * @page blocks\n */\nexport type LoaderComponentType = ({ children }: { children?: ReactNode }) => JSX.Element\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?: LoaderComponentType\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 LoaderComponent={LoaderComponent}\n >\n <BaseLayout error={error} LoaderComponent={LoaderComponent}>\n {children}\n </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 * Loading indicator rendered while `isLoading` is true and no errors are present.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\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, LoaderComponent }: BaseLayoutProps) => {\n const { LoadingIndicator: LoadingIndicatorFromContext } = useLoadingIndicator()\n const LoadingIndicator = LoaderComponent ?? LoadingIndicatorFromContext\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: LoaderComponentType\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({\n componentName,\n LoaderComponent,\n}: {\n componentName?: string\n LoaderComponent?: LoaderComponentType\n}) {\n const { LoadingIndicator } = useLoadingIndicator()\n const { observability } = useObservability()\n return (\n <LoaderWithMetrics\n LoaderComponent={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 * Loading indicator rendered as the Suspense fallback while children suspend.\n * Overrides the indicator resolved from `LoadingIndicatorContext` for this instance only;\n * falls back to that context value when omitted.\n */\n LoaderComponent?: LoaderComponentType\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 LoaderComponent,\n}: BaseBoundariesProps) => {\n return (\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={onErrorBoundaryError}\n >\n <Suspense\n fallback={\n <SuspenseFallback componentName={componentName} LoaderComponent={LoaderComponent} />\n }\n >\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,14 +1,12 @@
1
1
  import { jsx as i } from "react/jsx-runtime";
2
2
  import { useTranslation as e } from "react-i18next";
3
3
  import { useAssignSignatory as s, SignatoryAssignmentMode as o } from "./useAssignSignatory.js";
4
- import r from "./AssignSignatorySelection.module.scss.js";
5
- import "classnames";
6
- import "../../../shared/constants.js";
7
- import { RadioGroupField as a } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
8
- const S = () => {
4
+ import a from "./AssignSignatorySelection.module.scss.js";
5
+ import { RadioGroupField as r } from "../../Common/Fields/RadioGroupField/RadioGroupField.js";
6
+ const c = () => {
9
7
  const { t: n } = e("Company.AssignSignatory"), { onSignatoryAssignmentModeChange: t } = s();
10
- return /* @__PURE__ */ i("section", { className: r.container, children: /* @__PURE__ */ i(
11
- a,
8
+ return /* @__PURE__ */ i("section", { className: a.container, children: /* @__PURE__ */ i(
9
+ r,
12
10
  {
13
11
  onChange: t,
14
12
  label: n("signingOptions.label"),
@@ -28,6 +26,6 @@ const S = () => {
28
26
  ) });
29
27
  };
30
28
  export {
31
- S as AssignSignatorySelection
29
+ c as AssignSignatorySelection
32
30
  };
33
31
  //# sourceMappingURL=AssignSignatorySelection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssignSignatorySelection.js","sources":["../../../../src/components/Company/AssignSignatory/AssignSignatorySelection.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { SignatoryAssignmentMode, useAssignSignatory } from './useAssignSignatory'\nimport styles from './AssignSignatorySelection.module.scss'\nimport { RadioGroupField } from '@/components/Common'\n\n/** @internal */\nexport const AssignSignatorySelection = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { onSignatoryAssignmentModeChange } = useAssignSignatory()\n\n return (\n <section className={styles.container}>\n <RadioGroupField\n onChange={onSignatoryAssignmentModeChange}\n label={t('signingOptions.label')}\n shouldVisuallyHideLabel\n name=\"signatoryAssignmentMode\"\n options={[\n {\n label: t('signingOptions.selfSign'),\n value: SignatoryAssignmentMode.createSignatory,\n },\n {\n label: t('signingOptions.appointOther'),\n value: SignatoryAssignmentMode.inviteSignatory,\n },\n ]}\n />\n </section>\n )\n}\n"],"names":["AssignSignatorySelection","t","useTranslation","onSignatoryAssignmentModeChange","useAssignSignatory","jsx","styles","RadioGroupField","SignatoryAssignmentMode"],"mappings":";;;;;;;AAMO,MAAMA,IAA2B,MAAM;AAC5C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,iCAAAC,EAAA,IAAoCC,EAAA;AAE5C,SACE,gBAAAC,EAAC,WAAA,EAAQ,WAAWC,EAAO,WACzB,UAAA,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,UAAUJ;AAAA,MACV,OAAOF,EAAE,sBAAsB;AAAA,MAC/B,yBAAuB;AAAA,MACvB,MAAK;AAAA,MACL,SAAS;AAAA,QACP;AAAA,UACE,OAAOA,EAAE,yBAAyB;AAAA,UAClC,OAAOO,EAAwB;AAAA,QAAA;AAAA,QAEjC;AAAA,UACE,OAAOP,EAAE,6BAA6B;AAAA,UACtC,OAAOO,EAAwB;AAAA,QAAA;AAAA,MACjC;AAAA,IACF;AAAA,EAAA,GAEJ;AAEJ;"}
1
+ {"version":3,"file":"AssignSignatorySelection.js","sources":["../../../../src/components/Company/AssignSignatory/AssignSignatorySelection.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { SignatoryAssignmentMode, useAssignSignatory } from './useAssignSignatory'\nimport styles from './AssignSignatorySelection.module.scss'\nimport { RadioGroupField } from '@/components/Common'\n\n/** @internal */\nexport const AssignSignatorySelection = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { onSignatoryAssignmentModeChange } = useAssignSignatory()\n\n return (\n <section className={styles.container}>\n <RadioGroupField\n onChange={onSignatoryAssignmentModeChange}\n label={t('signingOptions.label')}\n shouldVisuallyHideLabel\n name=\"signatoryAssignmentMode\"\n options={[\n {\n label: t('signingOptions.selfSign'),\n value: SignatoryAssignmentMode.createSignatory,\n },\n {\n label: t('signingOptions.appointOther'),\n value: SignatoryAssignmentMode.inviteSignatory,\n },\n ]}\n />\n </section>\n )\n}\n"],"names":["AssignSignatorySelection","t","useTranslation","onSignatoryAssignmentModeChange","useAssignSignatory","jsx","styles","RadioGroupField","SignatoryAssignmentMode"],"mappings":";;;;;AAMO,MAAMA,IAA2B,MAAM;AAC5C,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,iCAAAC,EAAA,IAAoCC,EAAA;AAE5C,SACE,gBAAAC,EAAC,WAAA,EAAQ,WAAWC,EAAO,WACzB,UAAA,gBAAAD;AAAA,IAACE;AAAA,IAAA;AAAA,MACC,UAAUJ;AAAA,MACV,OAAOF,EAAE,sBAAsB;AAAA,MAC/B,yBAAuB;AAAA,MACvB,MAAK;AAAA,MACL,SAAS;AAAA,QACP;AAAA,UACE,OAAOA,EAAE,yBAAyB;AAAA,UAClC,OAAOO,EAAwB;AAAA,QAAA;AAAA,QAEjC;AAAA,UACE,OAAOP,EAAE,6BAA6B;AAAA,UACtC,OAAOO,EAAwB;AAAA,QAAA;AAAA,MACjC;AAAA,IACF;AAAA,EAAA,GAEJ;AAEJ;"}
@@ -1,15 +1,13 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
- import { useTranslation as r } from "react-i18next";
3
- import { useCreateSignatory as s } from "./useCreateSignatory.js";
4
- import "classnames";
5
- import "../../../../shared/constants.js";
6
- import { ActionsLayout as m } from "../../../Common/ActionsLayout/ActionsLayout.js";
7
- import { useComponentContext as e } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
8
- const C = () => {
9
- const { t } = r("Company.AssignSignatory"), { isPending: n } = s(), i = e();
10
- return /* @__PURE__ */ o(m, { children: /* @__PURE__ */ o(i.Button, { type: "submit", isLoading: n, children: t("buttons.signDocuments") }) });
2
+ import { useTranslation as i } from "react-i18next";
3
+ import { useCreateSignatory as r } from "./useCreateSignatory.js";
4
+ import { ActionsLayout as e } from "../../../Common/ActionsLayout/ActionsLayout.js";
5
+ import { useComponentContext as m } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ const f = () => {
7
+ const { t } = i("Company.AssignSignatory"), { isPending: n } = r(), s = m();
8
+ return /* @__PURE__ */ o(e, { children: /* @__PURE__ */ o(s.Button, { type: "submit", isLoading: n, children: t("buttons.signDocuments") }) });
11
9
  };
12
10
  export {
13
- C as Actions
11
+ f as Actions
14
12
  };
15
13
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/AssignSignatory/CreateSignatory/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useCreateSignatory } from './useCreateSignatory'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport const Actions = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { isPending } = useCreateSignatory()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('buttons.signDocuments')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","useCreateSignatory","Components","useComponentContext","jsx","ActionsLayout"],"mappings":";;;;;;;AAMO,MAAMA,IAAU,MAAM;AAC3B,QAAM,EAAE,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,WAAAC,EAAA,IAAcC,EAAA,GAChBC,IAAaC,EAAA;AAEnB,SACE,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACF,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWF,GACzC,UAAA,EAAE,uBAAuB,GAC5B,GACF;AAEJ;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/AssignSignatory/CreateSignatory/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useCreateSignatory } from './useCreateSignatory'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport const Actions = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { isPending } = useCreateSignatory()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('buttons.signDocuments')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","useCreateSignatory","Components","useComponentContext","jsx","ActionsLayout"],"mappings":";;;;;AAMO,MAAMA,IAAU,MAAM;AAC3B,QAAM,EAAE,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,WAAAC,EAAA,IAAcC,EAAA,GAChBC,IAAaC,EAAA;AAEnB,SACE,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACF,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWF,GACzC,UAAA,EAAE,uBAAuB,GAC5B,GACF;AAEJ;"}
@@ -9,16 +9,13 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
- import "dompurify";
13
- import "../../../../contexts/LocaleProvider/useLocale.js";
14
12
  import "../../../../shared/constants.js";
15
- import "classnames";
16
13
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
17
14
  import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
18
15
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
19
- const [v, P] = t("CreateSignatoryContext");
16
+ const [s, u] = t("CreateSignatoryContext");
20
17
  export {
21
- P as CreateSignatoryProvider,
22
- v as useCreateSignatory
18
+ u as CreateSignatoryProvider,
19
+ s as useCreateSignatory
23
20
  };
24
21
  //# sourceMappingURL=useCreateSignatory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\n/**\n * Initial values for the {@link CreateSignatory} form fields. At least one field must be provided.\n *\n * @public\n */\nexport type CreateSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title' | 'phone' | 'birthday'> &\n Pick<\n NonNullable<Signatory['homeAddress']>,\n 'street1' | 'street2' | 'city' | 'state' | 'zip'\n > & {\n ssn?: string\n }\n>\ntype CreateSignatoryContextType = {\n isPending: boolean\n currentSignatory?: Signatory\n}\n\nconst [useCreateSignatory, CreateSignatoryProvider] =\n createCompoundContext<CreateSignatoryContextType>('CreateSignatoryContext')\n\nexport {\n /** @internal */\n useCreateSignatory,\n /** @internal */\n CreateSignatoryProvider,\n}\n"],"names":["useCreateSignatory","CreateSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;;AAuBA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
1
+ {"version":3,"file":"useCreateSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\n/**\n * Initial values for the {@link CreateSignatory} form fields. At least one field must be provided.\n *\n * @public\n */\nexport type CreateSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title' | 'phone' | 'birthday'> &\n Pick<\n NonNullable<Signatory['homeAddress']>,\n 'street1' | 'street2' | 'city' | 'state' | 'zip'\n > & {\n ssn?: string\n }\n>\ntype CreateSignatoryContextType = {\n isPending: boolean\n currentSignatory?: Signatory\n}\n\nconst [useCreateSignatory, CreateSignatoryProvider] =\n createCompoundContext<CreateSignatoryContextType>('CreateSignatoryContext')\n\nexport {\n /** @internal */\n useCreateSignatory,\n /** @internal */\n CreateSignatoryProvider,\n}\n"],"names":["useCreateSignatory","CreateSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAuBA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
@@ -1,15 +1,13 @@
1
1
  import { jsx as o } from "react/jsx-runtime";
2
2
  import { useTranslation as r } from "react-i18next";
3
3
  import { useInviteSignatory as s } from "./useInviteSignatory.js";
4
- import "classnames";
5
- import "../../../../shared/constants.js";
6
- import { ActionsLayout as m } from "../../../Common/ActionsLayout/ActionsLayout.js";
7
- import { useComponentContext as e } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
8
- const d = () => {
9
- const { t } = r("Company.AssignSignatory"), { isPending: n } = s(), i = e();
10
- return /* @__PURE__ */ o(m, { children: /* @__PURE__ */ o(i.Button, { type: "submit", isLoading: n, children: t("buttons.inviteSignatory") }) });
4
+ import { ActionsLayout as e } from "../../../Common/ActionsLayout/ActionsLayout.js";
5
+ import { useComponentContext as m } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ const y = () => {
7
+ const { t } = r("Company.AssignSignatory"), { isPending: n } = s(), i = m();
8
+ return /* @__PURE__ */ o(e, { children: /* @__PURE__ */ o(i.Button, { type: "submit", isLoading: n, children: t("buttons.inviteSignatory") }) });
11
9
  };
12
10
  export {
13
- d as Actions
11
+ y as Actions
14
12
  };
15
13
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/AssignSignatory/InviteSignatory/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useInviteSignatory } from './useInviteSignatory'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport const Actions = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { isPending } = useInviteSignatory()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('buttons.inviteSignatory')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","useInviteSignatory","Components","useComponentContext","jsx","ActionsLayout"],"mappings":";;;;;;;AAMO,MAAMA,IAAU,MAAM;AAC3B,QAAM,EAAE,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,WAAAC,EAAA,IAAcC,EAAA,GAChBC,IAAaC,EAAA;AAEnB,SACE,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACF,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWF,GACzC,UAAA,EAAE,yBAAyB,GAC9B,GACF;AAEJ;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/AssignSignatory/InviteSignatory/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useInviteSignatory } from './useInviteSignatory'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport const Actions = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n const { isPending } = useInviteSignatory()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button type=\"submit\" isLoading={isPending}>\n {t('buttons.inviteSignatory')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","useInviteSignatory","Components","useComponentContext","jsx","ActionsLayout"],"mappings":";;;;;AAMO,MAAMA,IAAU,MAAM;AAC3B,QAAM,EAAE,EAAA,IAAMC,EAAe,yBAAyB,GAChD,EAAE,WAAAC,EAAA,IAAcC,EAAA,GAChBC,IAAaC,EAAA;AAEnB,SACE,gBAAAC,EAACC,GAAA,EACC,UAAA,gBAAAD,EAACF,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWF,GACzC,UAAA,EAAE,yBAAyB,GAC9B,GACF;AAEJ;"}
@@ -9,16 +9,13 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
- import "dompurify";
13
- import "../../../../contexts/LocaleProvider/useLocale.js";
14
12
  import "../../../../shared/constants.js";
15
- import "classnames";
16
13
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
17
14
  import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
18
15
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
19
- const [u, f] = t("InviteSignatoryContext");
16
+ const [c, d] = t("InviteSignatoryContext");
20
17
  export {
21
- f as InviteSignatoryProvider,
22
- u as useInviteSignatory
18
+ d as InviteSignatoryProvider,
19
+ c as useInviteSignatory
23
20
  };
24
21
  //# sourceMappingURL=useInviteSignatory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInviteSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\ntype InviteSignatoryContextType = {\n isPending: boolean\n}\n\n/**\n * Default values for the invite signatory form fields: `firstName`, `lastName`, `email`,\n * `confirmEmail`, and `title`. At least one field is required.\n *\n * @public\n */\nexport type InviteSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title'> & {\n confirmEmail: string\n }\n>\n\nconst [useInviteSignatory, InviteSignatoryProvider] =\n createCompoundContext<InviteSignatoryContextType>('InviteSignatoryContext')\n\nexport { useInviteSignatory, InviteSignatoryProvider }\n"],"names":["useInviteSignatory","InviteSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;;AAoBA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
1
+ {"version":3,"file":"useInviteSignatory.js","sources":["../../../../../src/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.ts"],"sourcesContent":["import { type Signatory } from '@gusto/embedded-api/models/components/signatory'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\ntype InviteSignatoryContextType = {\n isPending: boolean\n}\n\n/**\n * Default values for the invite signatory form fields: `firstName`, `lastName`, `email`,\n * `confirmEmail`, and `title`. At least one field is required.\n *\n * @public\n */\nexport type InviteSignatoryDefaultValues = RequireAtLeastOne<\n Pick<Signatory, 'firstName' | 'lastName' | 'email' | 'title'> & {\n confirmEmail: string\n }\n>\n\nconst [useInviteSignatory, InviteSignatoryProvider] =\n createCompoundContext<InviteSignatoryContextType>('InviteSignatoryContext')\n\nexport { useInviteSignatory, InviteSignatoryProvider }\n"],"names":["useInviteSignatory","InviteSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
@@ -1,26 +1,25 @@
1
- import { jsx as l } from "react/jsx-runtime";
1
+ import { jsx as o } from "react/jsx-runtime";
2
2
  import { useTranslation as r } from "react-i18next";
3
- import "classnames";
4
3
  import { SIGNATORY_TITLES as s } from "../../../shared/constants.js";
5
4
  import { SelectField as a } from "../../Common/Fields/SelectField/SelectField.js";
6
- const g = () => {
7
- const { t } = r("Company.AssignSignatory"), e = Object.entries(s).map(([i, o]) => ({
5
+ const S = () => {
6
+ const { t: e } = r("Company.AssignSignatory"), t = Object.entries(s).map(([i, l]) => ({
8
7
  value: i,
9
- label: t(`signatoryTitles.${o}`, { ns: "common" })
8
+ label: e(`signatoryTitles.${l}`, { ns: "common" })
10
9
  }));
11
- return /* @__PURE__ */ l(
10
+ return /* @__PURE__ */ o(
12
11
  a,
13
12
  {
14
13
  name: "title",
15
- label: t("signatoryDetails.titleSelect.label"),
16
- placeholder: t("signatoryDetails.titleSelect.placeholder"),
14
+ label: e("signatoryDetails.titleSelect.label"),
15
+ placeholder: e("signatoryDetails.titleSelect.placeholder"),
17
16
  isRequired: !0,
18
- options: e,
19
- errorMessage: t("validations.title")
17
+ options: t,
18
+ errorMessage: e("validations.title")
20
19
  }
21
20
  );
22
21
  };
23
22
  export {
24
- g as TitleSelect
23
+ S as TitleSelect
25
24
  };
26
25
  //# sourceMappingURL=TitleSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TitleSelect.js","sources":["../../../../src/components/Company/AssignSignatory/TitleSelect.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { SelectField } from '@/components/Common'\nimport { SIGNATORY_TITLES } from '@/shared/constants'\n\n/** @internal */\nexport const TitleSelect = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n\n const titleOptions = Object.entries(SIGNATORY_TITLES).map(([key, value]) => ({\n value: key,\n label: t(`signatoryTitles.${value}`, { ns: 'common' }),\n }))\n\n return (\n <SelectField\n name=\"title\"\n label={t('signatoryDetails.titleSelect.label')}\n placeholder={t('signatoryDetails.titleSelect.placeholder')}\n isRequired\n options={titleOptions}\n errorMessage={t('validations.title')}\n />\n )\n}\n"],"names":["TitleSelect","useTranslation","titleOptions","SIGNATORY_TITLES","key","value","jsx","SelectField"],"mappings":";;;;;AAKO,MAAMA,IAAc,MAAM;AAC/B,QAAM,EAAE,EAAA,IAAMC,EAAe,yBAAyB,GAEhDC,IAAe,OAAO,QAAQC,CAAgB,EAAE,IAAI,CAAC,CAACC,GAAKC,CAAK,OAAO;AAAA,IAC3E,OAAOD;AAAA,IACP,OAAO,EAAE,mBAAmBC,CAAK,IAAI,EAAE,IAAI,UAAU;AAAA,EAAA,EACrD;AAEF,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAO,EAAE,oCAAoC;AAAA,MAC7C,aAAa,EAAE,0CAA0C;AAAA,MACzD,YAAU;AAAA,MACV,SAASL;AAAA,MACT,cAAc,EAAE,mBAAmB;AAAA,IAAA;AAAA,EAAA;AAGzC;"}
1
+ {"version":3,"file":"TitleSelect.js","sources":["../../../../src/components/Company/AssignSignatory/TitleSelect.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { SelectField } from '@/components/Common'\nimport { SIGNATORY_TITLES } from '@/shared/constants'\n\n/** @internal */\nexport const TitleSelect = () => {\n const { t } = useTranslation('Company.AssignSignatory')\n\n const titleOptions = Object.entries(SIGNATORY_TITLES).map(([key, value]) => ({\n value: key,\n label: t(`signatoryTitles.${value}`, { ns: 'common' }),\n }))\n\n return (\n <SelectField\n name=\"title\"\n label={t('signatoryDetails.titleSelect.label')}\n placeholder={t('signatoryDetails.titleSelect.placeholder')}\n isRequired\n options={titleOptions}\n errorMessage={t('validations.title')}\n />\n )\n}\n"],"names":["TitleSelect","t","useTranslation","titleOptions","SIGNATORY_TITLES","key","value","jsx","SelectField"],"mappings":";;;;AAKO,MAAMA,IAAc,MAAM;AAC/B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,yBAAyB,GAEhDC,IAAe,OAAO,QAAQC,CAAgB,EAAE,IAAI,CAAC,CAACC,GAAKC,CAAK,OAAO;AAAA,IAC3E,OAAOD;AAAA,IACP,OAAOJ,EAAE,mBAAmBK,CAAK,IAAI,EAAE,IAAI,UAAU;AAAA,EAAA,EACrD;AAEF,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,OAAOP,EAAE,oCAAoC;AAAA,MAC7C,aAAaA,EAAE,0CAA0C;AAAA,MACzD,YAAU;AAAA,MACV,SAASE;AAAA,MACT,cAAcF,EAAE,mBAAmB;AAAA,IAAA;AAAA,EAAA;AAGzC;"}
@@ -9,20 +9,17 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
- import "dompurify";
13
- import "../../../contexts/LocaleProvider/useLocale.js";
14
12
  import "../../../shared/constants.js";
15
- import "classnames";
16
13
  import "../../../contexts/ComponentAdapter/useComponentContext.js";
17
14
  import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
18
15
  import { createCompoundContext as t } from "../../Base/createCompoundContext.js";
19
- const u = {
16
+ const v = {
20
17
  createSignatory: "createSignatory",
21
18
  inviteSignatory: "inviteSignatory"
22
- }, [f, M] = t("AssignSignatoryContext");
19
+ }, [x, C] = t("AssignSignatoryContext");
23
20
  export {
24
- M as AssignSignatoryProvider,
25
- u as SignatoryAssignmentMode,
26
- f as useAssignSignatory
21
+ C as AssignSignatoryProvider,
22
+ v as SignatoryAssignmentMode,
23
+ x as useAssignSignatory
27
24
  };
28
25
  //# sourceMappingURL=useAssignSignatory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAssignSignatory.js","sources":["../../../../src/components/Company/AssignSignatory/useAssignSignatory.ts"],"sourcesContent":["import { type CreateSignatoryDefaultValues } from './CreateSignatory'\nimport { type InviteSignatoryDefaultValues } from './InviteSignatory'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\n/** @internal */\nexport const SignatoryAssignmentMode = {\n createSignatory: 'createSignatory',\n inviteSignatory: 'inviteSignatory',\n} as const\n\n/**\n * Default values for the create and invite forms rendered by {@link AssignSignatory}.\n *\n * @remarks\n * At least one of `create` or `invite` must be provided.\n *\n * @public\n */\nexport type AssignSignatoryDefaultValues = RequireAtLeastOne<{\n create?: CreateSignatoryDefaultValues\n invite?: InviteSignatoryDefaultValues\n}>\n\ntype AssignSignatoryContextType = {\n companyId: string\n signatoryId?: string\n defaultValues?: AssignSignatoryDefaultValues\n onSignatoryAssignmentModeChange: (mode: string) => void\n onSignatoryFormEvent: BaseComponentInterface['onEvent']\n}\n\nconst [useAssignSignatory, AssignSignatoryProvider] =\n createCompoundContext<AssignSignatoryContextType>('AssignSignatoryContext')\n\nexport { useAssignSignatory, AssignSignatoryProvider }\n"],"names":["SignatoryAssignmentMode","useAssignSignatory","AssignSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;;AAOO,MAAMA,IAA0B;AAAA,EACrC,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GAuBM,CAACC,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
1
+ {"version":3,"file":"useAssignSignatory.js","sources":["../../../../src/components/Company/AssignSignatory/useAssignSignatory.ts"],"sourcesContent":["import { type CreateSignatoryDefaultValues } from './CreateSignatory'\nimport { type InviteSignatoryDefaultValues } from './InviteSignatory'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { createCompoundContext } from '@/components/Base'\nimport type { RequireAtLeastOne } from '@/types/Helpers'\n\n/** @internal */\nexport const SignatoryAssignmentMode = {\n createSignatory: 'createSignatory',\n inviteSignatory: 'inviteSignatory',\n} as const\n\n/**\n * Default values for the create and invite forms rendered by {@link AssignSignatory}.\n *\n * @remarks\n * At least one of `create` or `invite` must be provided.\n *\n * @public\n */\nexport type AssignSignatoryDefaultValues = RequireAtLeastOne<{\n create?: CreateSignatoryDefaultValues\n invite?: InviteSignatoryDefaultValues\n}>\n\ntype AssignSignatoryContextType = {\n companyId: string\n signatoryId?: string\n defaultValues?: AssignSignatoryDefaultValues\n onSignatoryAssignmentModeChange: (mode: string) => void\n onSignatoryFormEvent: BaseComponentInterface['onEvent']\n}\n\nconst [useAssignSignatory, AssignSignatoryProvider] =\n createCompoundContext<AssignSignatoryContextType>('AssignSignatoryContext')\n\nexport { useAssignSignatory, AssignSignatoryProvider }\n"],"names":["SignatoryAssignmentMode","useAssignSignatory","AssignSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAOO,MAAMA,IAA0B;AAAA,EACrC,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GAuBM,CAACC,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
@@ -1,20 +1,19 @@
1
1
  import { jsxs as e, jsx as o } from "react/jsx-runtime";
2
2
  import { useTranslation as s } from "react-i18next";
3
3
  import { useBankAccountForm as m } from "./context.js";
4
- import "classnames";
5
- import { componentEvents as a } from "../../../../shared/constants.js";
6
- import { ActionsLayout as u } from "../../../Common/ActionsLayout/ActionsLayout.js";
7
- import { useComponentContext as p } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
8
- function b() {
9
- const { t } = s("Company.BankAccount"), { isPending: i, isEditing: r, onEvent: c } = m(), n = p();
10
- return /* @__PURE__ */ e(u, { children: [
4
+ import { ActionsLayout as a } from "../../../Common/ActionsLayout/ActionsLayout.js";
5
+ import { useComponentContext as u } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ import { componentEvents as p } from "../../../../shared/constants.js";
7
+ function B() {
8
+ const { t } = s("Company.BankAccount"), { isPending: i, isEditing: r, onEvent: c } = m(), n = u();
9
+ return /* @__PURE__ */ e(a, { children: [
11
10
  r && /* @__PURE__ */ o(
12
11
  n.Button,
13
12
  {
14
13
  type: "button",
15
14
  variant: "secondary",
16
15
  onClick: () => {
17
- c(a.COMPANY_BANK_ACCOUNT_CANCEL);
16
+ c(p.COMPANY_BANK_ACCOUNT_CANCEL);
18
17
  },
19
18
  children: t("cancelCta")
20
19
  }
@@ -23,6 +22,6 @@ function b() {
23
22
  ] });
24
23
  }
25
24
  export {
26
- b as Actions
25
+ B as Actions
27
26
  };
28
27
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountForm/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useBankAccountForm } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { componentEvents } from '@/shared/constants'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Company.BankAccount')\n const { isPending, isEditing, onEvent } = useBankAccountForm()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n {isEditing && (\n <Components.Button\n type=\"button\"\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.COMPANY_BANK_ACCOUNT_CANCEL)\n }}\n >\n {t('cancelCta')}\n </Components.Button>\n )}\n <Components.Button type=\"submit\" isLoading={isPending} data-testid=\"bank-account-submit\">\n {t('continueCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","isEditing","onEvent","useBankAccountForm","Components","useComponentContext","ActionsLayout","jsx","componentEvents"],"mappings":";;;;;;;AAOO,SAASA,IAAU;AACxB,QAAM,EAAE,EAAA,IAAMC,EAAe,qBAAqB,GAC5C,EAAE,WAAAC,GAAW,WAAAC,GAAW,SAAAC,EAAA,IAAYC,EAAA,GACpCC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACE,UAAA;AAAA,IAAAL,KACC,gBAAAM;AAAA,MAACH,EAAW;AAAA,MAAX;AAAA,QACC,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,SAAS,MAAM;AACb,UAAAF,EAAQM,EAAgB,2BAA2B;AAAA,QACrD;AAAA,QAEC,YAAE,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAGlB,gBAAAD,EAACH,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWJ,GAAW,eAAY,uBAChE,UAAA,EAAE,aAAa,EAAA,CAClB;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountForm/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useBankAccountForm } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { componentEvents } from '@/shared/constants'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Company.BankAccount')\n const { isPending, isEditing, onEvent } = useBankAccountForm()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n {isEditing && (\n <Components.Button\n type=\"button\"\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.COMPANY_BANK_ACCOUNT_CANCEL)\n }}\n >\n {t('cancelCta')}\n </Components.Button>\n )}\n <Components.Button type=\"submit\" isLoading={isPending} data-testid=\"bank-account-submit\">\n {t('continueCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","isEditing","onEvent","useBankAccountForm","Components","useComponentContext","ActionsLayout","jsx","componentEvents"],"mappings":";;;;;;AAOO,SAASA,IAAU;AACxB,QAAM,EAAE,EAAA,IAAMC,EAAe,qBAAqB,GAC5C,EAAE,WAAAC,GAAW,WAAAC,GAAW,SAAAC,EAAA,IAAYC,EAAA,GACpCC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACE,UAAA;AAAA,IAAAL,KACC,gBAAAM;AAAA,MAACH,EAAW;AAAA,MAAX;AAAA,QACC,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,SAAS,MAAM;AACb,UAAAF,EAAQM,EAAgB,2BAA2B;AAAA,QACrD;AAAA,QAEC,YAAE,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAGlB,gBAAAD,EAACH,EAAW,QAAX,EAAkB,MAAK,UAAS,WAAWJ,GAAW,eAAY,uBAChE,UAAA,EAAE,aAAa,EAAA,CAClB;AAAA,EAAA,GACF;AAEJ;"}
@@ -9,16 +9,13 @@ import "@gusto/embedded-api/models/errors/gustoembeddederror";
9
9
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
10
10
  import "@gusto/embedded-api/models/errors/unprocessableentityerror";
11
11
  import "@gusto/embedded-api/models/errors/httpclienterrors";
12
- import "dompurify";
13
- import "../../../../contexts/LocaleProvider/useLocale.js";
14
12
  import "../../../../shared/constants.js";
15
- import "classnames";
16
13
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
17
14
  import "../../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
18
15
  import { createCompoundContext as o } from "../../../Base/createCompoundContext.js";
19
- const [f, v] = o("BankAccountContext");
16
+ const [d, s] = o("BankAccountContext");
20
17
  export {
21
- v as BankAccountFormProvider,
22
- f as useBankAccountForm
18
+ s as BankAccountFormProvider,
19
+ d as useBankAccountForm
23
20
  };
24
21
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountForm/context.ts"],"sourcesContent":["import { createCompoundContext } from '@/components/Base'\nimport { type OnEventType } from '@/components/Base/useBase'\nimport { type EventType } from '@/shared/constants'\n\ntype BankAccountFormContextType = {\n isPending: boolean\n isEditing: boolean\n onEvent: OnEventType<EventType, unknown>\n}\n\nconst [useBankAccountForm, BankAccountFormProvider] =\n createCompoundContext<BankAccountFormContextType>('BankAccountContext')\n\nexport { useBankAccountForm, BankAccountFormProvider }\n"],"names":["useBankAccountForm","BankAccountFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;;AAUA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,oBAAoB;"}
1
+ {"version":3,"file":"context.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountForm/context.ts"],"sourcesContent":["import { createCompoundContext } from '@/components/Base'\nimport { type OnEventType } from '@/components/Base/useBase'\nimport { type EventType } from '@/shared/constants'\n\ntype BankAccountFormContextType = {\n isPending: boolean\n isEditing: boolean\n onEvent: OnEventType<EventType, unknown>\n}\n\nconst [useBankAccountForm, BankAccountFormProvider] =\n createCompoundContext<BankAccountFormContextType>('BankAccountContext')\n\nexport { useBankAccountForm, BankAccountFormProvider }\n"],"names":["useBankAccountForm","BankAccountFormProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;AAUA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,oBAAoB;"}
@@ -1,18 +1,16 @@
1
- import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
- import { useTranslation as e } from "react-i18next";
1
+ import { jsxs as e, jsx as t } from "react/jsx-runtime";
2
+ import { useTranslation as i } from "react-i18next";
3
3
  import { useBankAccount as a } from "./context.js";
4
- import "classnames";
5
- import "../../../../shared/constants.js";
6
- import { ActionsLayout as m } from "../../../Common/ActionsLayout/ActionsLayout.js";
7
- import { useComponentContext as s } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
8
- function k() {
9
- const { handleContinue: r, handleChange: c } = a(), { t: n } = e("Company.BankAccount"), o = s();
10
- return /* @__PURE__ */ i(m, { children: [
11
- /* @__PURE__ */ t(o.Button, { variant: "secondary", onClick: c, children: n("changeBankAccountCta") }),
12
- /* @__PURE__ */ t(o.Button, { onClick: r, children: n("continueCta") })
4
+ import { ActionsLayout as s } from "../../../Common/ActionsLayout/ActionsLayout.js";
5
+ import { useComponentContext as m } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
6
+ function d() {
7
+ const { handleContinue: c, handleChange: r } = a(), { t: n } = i("Company.BankAccount"), o = m();
8
+ return /* @__PURE__ */ e(s, { children: [
9
+ /* @__PURE__ */ t(o.Button, { variant: "secondary", onClick: r, children: n("changeBankAccountCta") }),
10
+ /* @__PURE__ */ t(o.Button, { onClick: c, children: n("continueCta") })
13
11
  ] });
14
12
  }
15
13
  export {
16
- k as Actions
14
+ d as Actions
17
15
  };
18
16
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountList/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useBankAccount } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { handleContinue, handleChange } = useBankAccount()\n const { t } = useTranslation('Company.BankAccount')\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleChange}>\n {t('changeBankAccountCta')}\n </Components.Button>\n <Components.Button onClick={handleContinue}>{t('continueCta')}</Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","handleContinue","handleChange","useBankAccount","t","useTranslation","Components","useComponentContext","ActionsLayout","jsx"],"mappings":";;;;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,gBAAAC,GAAgB,cAAAC,EAAA,IAAiBC,EAAA,GACnC,EAAE,GAAAC,EAAA,IAAMC,EAAe,qBAAqB,GAC5CC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACH,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASJ,GAC7C,UAAAE,EAAE,sBAAsB,EAAA,CAC3B;AAAA,IACA,gBAAAK,EAACH,EAAW,QAAX,EAAkB,SAASL,GAAiB,UAAAG,EAAE,aAAa,EAAA,CAAE;AAAA,EAAA,GAChE;AAEJ;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountList/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useBankAccount } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { handleContinue, handleChange } = useBankAccount()\n const { t } = useTranslation('Company.BankAccount')\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button variant=\"secondary\" onClick={handleChange}>\n {t('changeBankAccountCta')}\n </Components.Button>\n <Components.Button onClick={handleContinue}>{t('continueCta')}</Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","handleContinue","handleChange","useBankAccount","t","useTranslation","Components","useComponentContext","ActionsLayout","jsx"],"mappings":";;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,gBAAAC,GAAgB,cAAAC,EAAA,IAAiBC,EAAA,GACnC,EAAE,GAAAC,EAAA,IAAMC,EAAe,qBAAqB,GAC5CC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC,EAACH,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASJ,GAC7C,UAAAE,EAAE,sBAAsB,EAAA,CAC3B;AAAA,IACA,gBAAAK,EAACH,EAAW,QAAX,EAAkB,SAASL,GAAiB,UAAAG,EAAE,aAAa,EAAA,CAAE;AAAA,EAAA,GAChE;AAEJ;"}
@@ -1,35 +1,33 @@
1
- import { jsxs as r, jsx as i } from "react/jsx-runtime";
2
- import { useTranslation as c } from "react-i18next";
3
- import { useBankAccountVerify as e } from "./context.js";
4
- import "classnames";
5
- import "../../../../shared/constants.js";
1
+ import { jsxs as c, jsx as i } from "react/jsx-runtime";
2
+ import { useTranslation as e } from "react-i18next";
3
+ import { useBankAccountVerify as r } from "./context.js";
6
4
  import { ActionsLayout as s } from "../../../Common/ActionsLayout/ActionsLayout.js";
7
5
  import { useComponentContext as m } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
8
- function k() {
9
- const { t } = c("Company.BankAccount"), { isPending: n, handleCancel: a } = e(), o = m();
10
- return /* @__PURE__ */ r(s, { children: [
6
+ function y() {
7
+ const { t: n } = e("Company.BankAccount"), { isPending: t, handleCancel: a } = r(), o = m();
8
+ return /* @__PURE__ */ c(s, { children: [
11
9
  /* @__PURE__ */ i(
12
10
  o.Button,
13
11
  {
14
12
  variant: "secondary",
15
- isLoading: n,
13
+ isLoading: t,
16
14
  onClick: a,
17
15
  "data-testid": "bank-account-verify-cancel",
18
- children: t("cancelCta")
16
+ children: n("cancelCta")
19
17
  }
20
18
  ),
21
19
  /* @__PURE__ */ i(
22
20
  o.Button,
23
21
  {
24
22
  type: "submit",
25
- isLoading: n,
23
+ isLoading: t,
26
24
  "data-testid": "bank-account-verify-submit",
27
- children: t("verifyCta")
25
+ children: n("verifyCta")
28
26
  }
29
27
  )
30
28
  ] });
31
29
  }
32
30
  export {
33
- k as Actions
31
+ y as Actions
34
32
  };
35
33
  //# sourceMappingURL=Actions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountVerify/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useBankAccountVerify } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Company.BankAccount')\n const { isPending, handleCancel } = useBankAccountVerify()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button\n variant=\"secondary\"\n isLoading={isPending}\n onClick={handleCancel}\n data-testid=\"bank-account-verify-cancel\"\n >\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n type=\"submit\"\n isLoading={isPending}\n data-testid=\"bank-account-verify-submit\"\n >\n {t('verifyCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","useTranslation","isPending","handleCancel","useBankAccountVerify","Components","useComponentContext","ActionsLayout","jsx"],"mappings":";;;;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,EAAA,IAAMC,EAAe,qBAAqB,GAC5C,EAAE,WAAAC,GAAW,cAAAC,EAAA,IAAiBC,EAAA,GAC9BC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACH,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,WAAWH;AAAA,QACX,SAASC;AAAA,QACT,eAAY;AAAA,QAEX,YAAE,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAEhB,gBAAAK;AAAA,MAACH,EAAW;AAAA,MAAX;AAAA,QACC,MAAK;AAAA,QACL,WAAWH;AAAA,QACX,eAAY;AAAA,QAEX,YAAE,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EAChB,GACF;AAEJ;"}
1
+ {"version":3,"file":"Actions.js","sources":["../../../../../src/components/Company/BankAccount/BankAccountVerify/Actions.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useBankAccountVerify } from './context'\nimport { ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\n/** @internal */\nexport function Actions() {\n const { t } = useTranslation('Company.BankAccount')\n const { isPending, handleCancel } = useBankAccountVerify()\n const Components = useComponentContext()\n\n return (\n <ActionsLayout>\n <Components.Button\n variant=\"secondary\"\n isLoading={isPending}\n onClick={handleCancel}\n data-testid=\"bank-account-verify-cancel\"\n >\n {t('cancelCta')}\n </Components.Button>\n <Components.Button\n type=\"submit\"\n isLoading={isPending}\n data-testid=\"bank-account-verify-submit\"\n >\n {t('verifyCta')}\n </Components.Button>\n </ActionsLayout>\n )\n}\n"],"names":["Actions","t","useTranslation","isPending","handleCancel","useBankAccountVerify","Components","useComponentContext","ActionsLayout","jsx"],"mappings":";;;;;AAMO,SAASA,IAAU;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,qBAAqB,GAC5C,EAAE,WAAAC,GAAW,cAAAC,EAAA,IAAiBC,EAAA,GAC9BC,IAAaC,EAAA;AAEnB,2BACGC,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACH,EAAW;AAAA,MAAX;AAAA,QACC,SAAQ;AAAA,QACR,WAAWH;AAAA,QACX,SAASC;AAAA,QACT,eAAY;AAAA,QAEX,YAAE,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,IAEhB,gBAAAK;AAAA,MAACH,EAAW;AAAA,MAAX;AAAA,QACC,MAAK;AAAA,QACL,WAAWH;AAAA,QACX,eAAY;AAAA,QAEX,YAAE,WAAW;AAAA,MAAA;AAAA,IAAA;AAAA,EAChB,GACF;AAEJ;"}