@gusto/embedded-react-sdk 0.10.1 → 0.10.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 (63) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/components/Base/Base.js +57 -51
  3. package/dist/components/Base/Base.js.map +1 -1
  4. package/dist/components/Common/InternalError/InternalError.js.map +1 -1
  5. package/dist/components/Common/UI/ComboBox/ComboBox.js +31 -33
  6. package/dist/components/Common/UI/ComboBox/ComboBox.js.map +1 -1
  7. package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +1 -1
  8. package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -1
  9. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  10. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  11. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  12. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  13. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  14. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  15. package/dist/components/Company/BankAccount/BankAccount.d.ts +2 -2
  16. package/dist/components/Company/BankAccount/BankAccount.js +25 -20
  17. package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
  18. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +30 -28
  19. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
  20. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  21. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  22. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  23. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  24. package/dist/components/Company/DocumentSigner/DocumentSigner.d.ts +5 -7
  25. package/dist/components/Company/DocumentSigner/DocumentSigner.js +24 -24
  26. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  27. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  28. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  29. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  30. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  31. package/dist/components/Company/Industry/Context.js +7 -6
  32. package/dist/components/Company/Industry/Context.js.map +1 -1
  33. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  34. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  35. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  36. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  37. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  38. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  39. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
  40. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  41. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  42. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  43. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  44. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  45. package/dist/components/Contractor/Address/useAddress.js +6 -5
  46. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  47. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  48. package/dist/components/Employee/Deductions/useDeductions.js +6 -5
  49. package/dist/components/Employee/Deductions/useDeductions.js.map +1 -1
  50. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  51. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  52. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  53. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  54. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
  55. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  56. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
  57. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  58. package/dist/components/Employee/Profile/useProfile.js +4 -3
  59. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  60. package/dist/components/Employee/Taxes/useTaxes.js +4 -3
  61. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  62. package/dist/style.css +1 -1
  63. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.10.2
4
+
5
+ ### Fixes
6
+
7
+ - Fix bank account not found error
8
+ - Fix ComboBox focus ring
9
+
10
+ ### Chores & Maintenance
11
+
12
+ - Add reset to InternalError and clean up error handling
13
+ - Add initial contractor onboarding documentation
14
+ - Add contractor address tests
15
+
3
16
  ## 0.10.1
4
17
 
5
18
  - Fixed work address being stale when editing an existing employee in employee onboarding
@@ -1,78 +1,84 @@
1
- import { jsx as a, jsxs as b } from "react/jsx-runtime";
2
- import { useState as u, useCallback as h, Suspense as x } from "react";
3
- import { ErrorBoundary as v } from "react-error-boundary";
4
- import { useTranslation as A } from "react-i18next";
5
- import { APIError as S } from "@gusto/embedded-api/models/errors/apierror";
6
- import { SDKValidationError as _ } from "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
- import { UnprocessableEntityErrorObject as d } from "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
- import { FadeIn as j } from "../Common/FadeIn/FadeIn.js";
9
- import { BaseContext as B } from "./useBase.js";
10
- import { componentEvents as I } from "../../shared/constants.js";
11
- import { useAsyncError as K } from "../Common/hooks/useAsyncError.js";
12
- import { Loading as P } from "../Common/Loading/Loading.js";
13
- import { InternalError as R } from "../Common/InternalError/InternalError.js";
1
+ import { jsx as r, jsxs as u } from "react/jsx-runtime";
2
+ import { useState as y, useCallback as v, Suspense as A } from "react";
3
+ import { ErrorBoundary as R } from "react-error-boundary";
4
+ import { useTranslation as S } from "react-i18next";
5
+ import { APIError as E } from "@gusto/embedded-api/models/errors/apierror";
6
+ import { SDKValidationError as g } from "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
+ import { UnprocessableEntityErrorObject as h } from "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
+ import { QueryErrorResetBoundary as B } from "@tanstack/react-query";
9
+ import { FadeIn as T } from "../Common/FadeIn/FadeIn.js";
10
+ import { BaseContext as _ } from "./useBase.js";
11
+ import { componentEvents as j } from "../../shared/constants.js";
12
+ import { useAsyncError as I } from "../Common/hooks/useAsyncError.js";
13
+ import { Loading as K } from "../Common/Loading/Loading.js";
14
+ import { InternalError as P } from "../Common/InternalError/InternalError.js";
14
15
  import { snakeCaseToCamelCase as w } from "../../helpers/formattedStrings.js";
15
16
  import { useComponentContext as M } from "../../contexts/ComponentAdapter/useComponentContext.js";
16
- const O = (t) => t.map((e) => e.message ? /* @__PURE__ */ a("li", { children: e.message }, e.key) : null), y = (t, e) => {
17
- const n = e ? e + "." : "";
18
- if (t.category === "invalid_attribute_value" || t.category === "invalid_operation")
17
+ const O = (e) => e.map((o) => o.message ? /* @__PURE__ */ r("li", { children: o.message }, o.key) : null), k = (e, o) => {
18
+ const m = o ? o + "." : "";
19
+ if (e.category === "invalid_attribute_value" || e.category === "invalid_operation")
19
20
  return [
20
21
  {
21
- key: w(n + t.errorKey),
22
- message: t.message ?? ""
22
+ key: w(m + e.errorKey),
23
+ message: e.message ?? ""
23
24
  }
24
25
  ];
25
- if (t.category === "nested_errors" && t.errors !== void 0) {
26
- let o = "";
27
- return t.metadata?.key && typeof t.metadata.key == "string" ? o = t.metadata.key : t.metadata?.state && typeof t.metadata.state == "string" ? o = t.metadata.state : t.errorKey && (o = t.errorKey), t.errors.flatMap((l) => y(l, n + o));
26
+ if (e.category === "nested_errors" && e.errors !== void 0) {
27
+ let n = "";
28
+ return e.metadata?.key && typeof e.metadata.key == "string" ? n = e.metadata.key : e.metadata?.state && typeof e.metadata.state == "string" ? n = e.metadata.state : e.errorKey && (n = e.errorKey), e.errors.flatMap((t) => k(t, m + n));
28
29
  }
29
30
  return [];
30
- }, Y = ({
31
- children: t,
32
- FallbackComponent: e = R,
33
- LoaderComponent: n = P,
34
- onEvent: o
31
+ }, $ = ({
32
+ children: e,
33
+ FallbackComponent: o = P,
34
+ LoaderComponent: m = K,
35
+ onEvent: n
35
36
  }) => {
36
- const [l, i] = u(null), [m, p] = u(null), f = K(), { t: E } = A(), g = M(), k = (r) => {
37
- i(r), r instanceof d && Array.isArray(r.errors) && p(r.errors.flatMap((c) => y(c)));
38
- }, C = h(
39
- async (r, c) => {
40
- i(null), p(null);
37
+ const [t, l] = y(null), [c, p] = y(null), d = I(), { t: x } = S(), f = M(), C = (s) => {
38
+ l(s), s instanceof h && Array.isArray(s.errors) && p(s.errors.flatMap((a) => k(a)));
39
+ }, b = v(
40
+ async (s, a) => {
41
+ l(null), p(null);
41
42
  try {
42
- await c(r);
43
- } catch (s) {
44
- s instanceof S || s instanceof _ || s instanceof d ? k(s) : f(s);
43
+ await a(s);
44
+ } catch (i) {
45
+ i instanceof E || i instanceof g || i instanceof h ? C(i) : d(i);
45
46
  }
46
47
  },
47
- [i, f]
48
+ [l, d]
48
49
  );
49
- return /* @__PURE__ */ a(
50
- B.Provider,
50
+ return /* @__PURE__ */ r(
51
+ _.Provider,
51
52
  {
52
53
  value: {
53
- fieldErrors: m,
54
- setError: i,
55
- onEvent: o,
56
- throwError: f,
57
- baseSubmitHandler: C
54
+ fieldErrors: c,
55
+ setError: l,
56
+ onEvent: n,
57
+ throwError: d,
58
+ baseSubmitHandler: b
58
59
  },
59
- children: /* @__PURE__ */ b(
60
- v,
60
+ children: /* @__PURE__ */ r(B, { children: ({ reset: s }) => /* @__PURE__ */ u(
61
+ R,
61
62
  {
62
- FallbackComponent: e,
63
- onError: (r) => {
64
- o(I.ERROR, r);
63
+ FallbackComponent: o,
64
+ onReset: s,
65
+ onError: (a) => {
66
+ n(j.ERROR, a);
65
67
  },
66
68
  children: [
67
- (l || m) && /* @__PURE__ */ a(g.Alert, { label: E("status.errorEncountered"), status: "error", children: m && /* @__PURE__ */ a("ul", { children: O(m) }) }),
68
- /* @__PURE__ */ a(x, { fallback: /* @__PURE__ */ a(n, {}), children: /* @__PURE__ */ a(j, { children: t }) })
69
+ (t || c) && /* @__PURE__ */ u(f.Alert, { label: x("status.errorEncountered"), status: "error", children: [
70
+ c && /* @__PURE__ */ r(f.UnorderedList, { items: O(c) }),
71
+ t && t instanceof E && /* @__PURE__ */ r(f.Text, { children: t.message }),
72
+ t && t instanceof g && /* @__PURE__ */ r(f.Text, { as: "pre", children: t.pretty() })
73
+ ] }),
74
+ /* @__PURE__ */ r(A, { fallback: /* @__PURE__ */ r(m, {}), children: /* @__PURE__ */ r(T, { children: e }) })
69
75
  ]
70
76
  }
71
- )
77
+ ) })
72
78
  }
73
79
  );
74
80
  };
75
81
  export {
76
- Y as BaseComponent
82
+ $ as BaseComponent
77
83
  };
78
84
  //# sourceMappingURL=Base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX } from 'react'\nimport { Suspense, useState, useCallback } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { UnprocessableEntityErrorObject } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type FieldError, type KnownErrors, type OnEventType } from './useBase'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError, Loading, useAsyncError } from '@/components/Common'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<TResourceKey extends keyof Resources = keyof Resources>\n extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: () => JSX.Element\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**Traverses errorList and finds items with message properties */\nconst renderErrorList = (errorList: FieldError[]): React.ReactNode => {\n return errorList.map(errorFromList => {\n if (errorFromList.message) {\n return <li key={errorFromList.key}>{errorFromList.message}</li>\n }\n return null\n })\n}\n/**Recuresively parses error list and constructs an array of objects containing attribute value error messages associated with form fields. Nested errors construct '.' separated keys\n * metadata.state is a special case for state taxes validation errors\n */\nconst getFieldErrors = (\n error: EntityErrorObject,\n parentKey?: string,\n): { key: string; message: string }[] => {\n const keyPrefix = parentKey ? parentKey + '.' : ''\n if (error.category === 'invalid_attribute_value' || error.category === 'invalid_operation') {\n return [\n {\n key: snakeCaseToCamelCase(keyPrefix + error.errorKey),\n message: error.message ?? '',\n },\n ]\n }\n if (error.category === 'nested_errors' && error.errors !== undefined) {\n //TODO: clean this up once Metadata type is fixed in openapi spec\n let keySuffix = ''\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n if (error.metadata?.key && typeof error.metadata.key === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.key as string\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n } else if (error.metadata?.state && typeof error.metadata.state === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.state as string\n } else if (error.errorKey) {\n keySuffix = error.errorKey\n }\n return error.errors.flatMap(err => getFieldErrors(err, keyPrefix + keySuffix))\n }\n return []\n}\n\ntype SubmitHandler<T> = (data: T) => Promise<void>\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent = Loading,\n onEvent,\n}: BaseComponentInterface<TResourceKey>) => {\n const [error, setError] = useState<KnownErrors | null>(null)\n const [fieldErrors, setFieldErrors] = useState<FieldError[] | null>(null)\n const throwError = useAsyncError()\n const { t } = useTranslation()\n const Components = useComponentContext()\n\n const processError = (error: KnownErrors) => {\n setError(error)\n //422\tapplication/json - content relaited error\n if (error instanceof UnprocessableEntityErrorObject && Array.isArray(error.errors)) {\n setFieldErrors(error.errors.flatMap(err => getFieldErrors(err)))\n }\n }\n\n const baseSubmitHandler = useCallback(\n async <T,>(data: T, componentHandler: SubmitHandler<T>) => {\n setError(null)\n setFieldErrors(null)\n try {\n await componentHandler(data)\n } catch (err) {\n if (\n err instanceof APIError ||\n err instanceof SDKValidationError ||\n err instanceof UnprocessableEntityErrorObject\n ) {\n processError(err)\n } else throwError(err)\n }\n },\n [setError, throwError],\n )\n\n return (\n <BaseContext.Provider\n value={{\n fieldErrors,\n setError,\n onEvent,\n throwError,\n baseSubmitHandler,\n }}\n >\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onError={err => {\n onEvent(componentEvents.ERROR, err)\n }}\n >\n {(error || fieldErrors) && (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {fieldErrors && <ul>{renderErrorList(fieldErrors)}</ul>}\n </Components.Alert>\n )}\n <Suspense fallback={<LoaderComponent />}>\n <FadeIn>{children}</FadeIn>\n </Suspense>\n </ErrorBoundary>\n </BaseContext.Provider>\n )\n}\n"],"names":["renderErrorList","errorList","errorFromList","jsx","getFieldErrors","error","parentKey","keyPrefix","snakeCaseToCamelCase","keySuffix","err","BaseComponent","children","FallbackComponent","InternalError","LoaderComponent","Loading","onEvent","setError","useState","fieldErrors","setFieldErrors","throwError","useAsyncError","t","useTranslation","Components","useComponentContext","processError","UnprocessableEntityErrorObject","baseSubmitHandler","useCallback","data","componentHandler","APIError","SDKValidationError","BaseContext","jsxs","ErrorBoundary","componentEvents","Suspense","FadeIn"],"mappings":";;;;;;;;;;;;;;;AAiCA,MAAMA,IAAkB,CAACC,MAChBA,EAAU,IAAI,CAAiBC,MAChCA,EAAc,UACR,gBAAAC,EAAA,MAAA,EAA4B,UAAcD,EAAA,QAAA,GAAlCA,EAAc,GAA4B,IAErD,IACR,GAKGE,IAAiB,CACrBC,GACAC,MACuC;AACjC,QAAAC,IAAYD,IAAYA,IAAY,MAAM;AAChD,MAAID,EAAM,aAAa,6BAA6BA,EAAM,aAAa;AAC9D,WAAA;AAAA,MACL;AAAA,QACE,KAAKG,EAAqBD,IAAYF,EAAM,QAAQ;AAAA,QACpD,SAASA,EAAM,WAAW;AAAA,MAAA;AAAA,IAE9B;AAEF,MAAIA,EAAM,aAAa,mBAAmBA,EAAM,WAAW,QAAW;AAEpE,QAAII,IAAY;AAEhB,WAAIJ,EAAM,UAAU,OAAO,OAAOA,EAAM,SAAS,OAAQ,WAEvDI,IAAYJ,EAAM,SAAS,MAElBA,EAAM,UAAU,SAAS,OAAOA,EAAM,SAAS,SAAU,WAElEI,IAAYJ,EAAM,SAAS,QAClBA,EAAM,aACfI,IAAYJ,EAAM,WAEbA,EAAM,OAAO,QAAQ,CAAAK,MAAON,EAAeM,GAAKH,IAAYE,CAAS,CAAC;AAAA,EAAA;AAE/E,SAAO,CAAC;AACV,GAIaE,IAAgB,CAAyD;AAAA,EACpF,UAAAC;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAAC,IAAkBC;AAAA,EAClB,SAAAC;AACF,MAA4C;AAC1C,QAAM,CAACZ,GAAOa,CAAQ,IAAIC,EAA6B,IAAI,GACrD,CAACC,GAAaC,CAAc,IAAIF,EAA8B,IAAI,GAClEG,IAAaC,EAAc,GAC3B,EAAE,GAAAC,EAAE,IAAIC,EAAe,GACvBC,IAAaC,EAAoB,GAEjCC,IAAe,CAACvB,MAAuB;AAC3C,IAAAa,EAASb,CAAK,GAEVA,aAAiBwB,KAAkC,MAAM,QAAQxB,EAAM,MAAM,KAC/EgB,EAAehB,EAAM,OAAO,QAAQ,OAAOD,EAAeM,CAAG,CAAC,CAAC;AAAA,EAEnE,GAEMoB,IAAoBC;AAAA,IACxB,OAAWC,GAASC,MAAuC;AACzD,MAAAf,EAAS,IAAI,GACbG,EAAe,IAAI;AACf,UAAA;AACF,cAAMY,EAAiBD,CAAI;AAAA,eACpBtB,GAAK;AACZ,QACEA,aAAewB,KACfxB,aAAeyB,KACfzB,aAAemB,IAEfD,EAAalB,CAAG,MACAA,CAAG;AAAA,MAAA;AAAA,IAEzB;AAAA,IACA,CAACQ,GAAUI,CAAU;AAAA,EACvB;AAGE,SAAA,gBAAAnB;AAAA,IAACiC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,aAAAhB;AAAA,QACA,UAAAF;AAAA,QACA,SAAAD;AAAA,QACA,YAAAK;AAAA,QACA,mBAAAQ;AAAA,MACF;AAAA,MAEA,UAAA,gBAAAO;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,mBAAAzB;AAAA,UACA,SAAS,CAAOH,MAAA;AACN,YAAAO,EAAAsB,EAAgB,OAAO7B,CAAG;AAAA,UACpC;AAAA,UAEE,UAAA;AAAA,aAAAL,KAASe,MACR,gBAAAjB,EAAAuB,EAAW,OAAX,EAAiB,OAAOF,EAAE,yBAAyB,GAAG,QAAO,SAC3D,UAAeJ,KAAA,gBAAAjB,EAAC,QAAI,UAAgBH,EAAAoB,CAAW,EAAE,CAAA,GACpD;AAAA,YAEF,gBAAAjB,EAACqC,KAAS,UAAU,gBAAArC,EAACY,KAAgB,GACnC,UAAA,gBAAAZ,EAACsC,GAAQ,EAAA,UAAA7B,EAAS,CAAA,EACpB,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"Base.js","sources":["../../../src/components/Base/Base.tsx"],"sourcesContent":["import type { ReactNode, JSX } from 'react'\nimport { Suspense, useState, useCallback } from 'react'\nimport type { FallbackProps } from 'react-error-boundary'\nimport { ErrorBoundary } from 'react-error-boundary'\nimport { useTranslation } from 'react-i18next'\nimport { APIError } from '@gusto/embedded-api/models/errors/apierror'\nimport { SDKValidationError } from '@gusto/embedded-api/models/errors/sdkvalidationerror'\nimport { UnprocessableEntityErrorObject } from '@gusto/embedded-api/models/errors/unprocessableentityerrorobject'\nimport type { EntityErrorObject } from '@gusto/embedded-api/models/components/entityerrorobject'\nimport { QueryErrorResetBoundary } from '@tanstack/react-query'\nimport { FadeIn } from '../Common/FadeIn/FadeIn'\nimport { BaseContext, type FieldError, type KnownErrors, type OnEventType } from './useBase'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport { InternalError, Loading, useAsyncError } from '@/components/Common'\nimport { snakeCaseToCamelCase } from '@/helpers/formattedStrings'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport type { ResourceDictionary, Resources } from '@/types/Helpers'\n\nexport interface CommonComponentInterface<TResourceKey extends keyof Resources = keyof Resources> {\n children?: ReactNode\n className?: string\n defaultValues?: unknown\n dictionary?: ResourceDictionary<TResourceKey>\n}\n\n// Base component wrapper with error and suspense handling\nexport interface BaseComponentInterface<TResourceKey extends keyof Resources = keyof Resources>\n extends CommonComponentInterface<TResourceKey> {\n FallbackComponent?: (props: FallbackProps) => JSX.Element\n LoaderComponent?: () => JSX.Element\n onEvent: OnEventType<EventType, unknown>\n}\n\n/**Traverses errorList and finds items with message properties */\nconst renderErrorList = (errorList: FieldError[]): React.ReactNode[] => {\n return errorList.map(errorFromList => {\n if (errorFromList.message) {\n return <li key={errorFromList.key}>{errorFromList.message}</li>\n }\n return null\n })\n}\n/**Recuresively parses error list and constructs an array of objects containing attribute value error messages associated with form fields. Nested errors construct '.' separated keys\n * metadata.state is a special case for state taxes validation errors\n */\nconst getFieldErrors = (\n error: EntityErrorObject,\n parentKey?: string,\n): { key: string; message: string }[] => {\n const keyPrefix = parentKey ? parentKey + '.' : ''\n if (error.category === 'invalid_attribute_value' || error.category === 'invalid_operation') {\n return [\n {\n key: snakeCaseToCamelCase(keyPrefix + error.errorKey),\n message: error.message ?? '',\n },\n ]\n }\n if (error.category === 'nested_errors' && error.errors !== undefined) {\n //TODO: clean this up once Metadata type is fixed in openapi spec\n let keySuffix = ''\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n if (error.metadata?.key && typeof error.metadata.key === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.key as string\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n } else if (error.metadata?.state && typeof error.metadata.state === 'string') {\n //@ts-expect-error: Metadata in speakeasy is incorrectly typed\n keySuffix = error.metadata.state as string\n } else if (error.errorKey) {\n keySuffix = error.errorKey\n }\n return error.errors.flatMap(err => getFieldErrors(err, keyPrefix + keySuffix))\n }\n return []\n}\n\ntype SubmitHandler<T> = (data: T) => Promise<void>\n\nexport const BaseComponent = <TResourceKey extends keyof Resources = keyof Resources>({\n children,\n FallbackComponent = InternalError,\n LoaderComponent = Loading,\n onEvent,\n}: BaseComponentInterface<TResourceKey>) => {\n const [error, setError] = useState<KnownErrors | null>(null)\n const [fieldErrors, setFieldErrors] = useState<FieldError[] | null>(null)\n const throwError = useAsyncError()\n const { t } = useTranslation()\n const Components = useComponentContext()\n\n const processError = (error: KnownErrors) => {\n setError(error)\n //422\tapplication/json - content relaited error\n if (error instanceof UnprocessableEntityErrorObject && Array.isArray(error.errors)) {\n setFieldErrors(error.errors.flatMap(err => getFieldErrors(err)))\n }\n }\n\n const baseSubmitHandler = useCallback(\n async <T,>(data: T, componentHandler: SubmitHandler<T>) => {\n setError(null)\n setFieldErrors(null)\n try {\n await componentHandler(data)\n } catch (err) {\n if (\n err instanceof APIError ||\n err instanceof SDKValidationError ||\n err instanceof UnprocessableEntityErrorObject\n ) {\n processError(err)\n } else throwError(err)\n }\n },\n [setError, throwError],\n )\n\n return (\n <BaseContext.Provider\n value={{\n fieldErrors,\n setError,\n onEvent,\n throwError,\n baseSubmitHandler,\n }}\n >\n <QueryErrorResetBoundary>\n {({ reset: resetQueries }) => (\n <ErrorBoundary\n FallbackComponent={FallbackComponent}\n onReset={resetQueries}\n onError={err => {\n onEvent(componentEvents.ERROR, err)\n }}\n >\n {(error || fieldErrors) && (\n <Components.Alert label={t('status.errorEncountered')} status=\"error\">\n {fieldErrors && <Components.UnorderedList items={renderErrorList(fieldErrors)} />}\n {error && error instanceof APIError && (\n <Components.Text>{error.message}</Components.Text>\n )}\n {error && error instanceof SDKValidationError && (\n <Components.Text as=\"pre\">{error.pretty()}</Components.Text>\n )}\n </Components.Alert>\n )}\n <Suspense fallback={<LoaderComponent />}>\n <FadeIn>{children}</FadeIn>\n </Suspense>\n </ErrorBoundary>\n )}\n </QueryErrorResetBoundary>\n </BaseContext.Provider>\n )\n}\n"],"names":["renderErrorList","errorList","errorFromList","jsx","getFieldErrors","error","parentKey","keyPrefix","snakeCaseToCamelCase","keySuffix","err","BaseComponent","children","FallbackComponent","InternalError","LoaderComponent","Loading","onEvent","setError","useState","fieldErrors","setFieldErrors","throwError","useAsyncError","t","useTranslation","Components","useComponentContext","processError","UnprocessableEntityErrorObject","baseSubmitHandler","useCallback","data","componentHandler","APIError","SDKValidationError","BaseContext","QueryErrorResetBoundary","resetQueries","jsxs","ErrorBoundary","componentEvents","Suspense","FadeIn"],"mappings":";;;;;;;;;;;;;;;;AAkCA,MAAMA,IAAkB,CAACC,MAChBA,EAAU,IAAI,CAAiBC,MAChCA,EAAc,UACR,gBAAAC,EAAA,MAAA,EAA4B,UAAcD,EAAA,QAAA,GAAlCA,EAAc,GAA4B,IAErD,IACR,GAKGE,IAAiB,CACrBC,GACAC,MACuC;AACjC,QAAAC,IAAYD,IAAYA,IAAY,MAAM;AAChD,MAAID,EAAM,aAAa,6BAA6BA,EAAM,aAAa;AAC9D,WAAA;AAAA,MACL;AAAA,QACE,KAAKG,EAAqBD,IAAYF,EAAM,QAAQ;AAAA,QACpD,SAASA,EAAM,WAAW;AAAA,MAAA;AAAA,IAE9B;AAEF,MAAIA,EAAM,aAAa,mBAAmBA,EAAM,WAAW,QAAW;AAEpE,QAAII,IAAY;AAEhB,WAAIJ,EAAM,UAAU,OAAO,OAAOA,EAAM,SAAS,OAAQ,WAEvDI,IAAYJ,EAAM,SAAS,MAElBA,EAAM,UAAU,SAAS,OAAOA,EAAM,SAAS,SAAU,WAElEI,IAAYJ,EAAM,SAAS,QAClBA,EAAM,aACfI,IAAYJ,EAAM,WAEbA,EAAM,OAAO,QAAQ,CAAAK,MAAON,EAAeM,GAAKH,IAAYE,CAAS,CAAC;AAAA,EAAA;AAE/E,SAAO,CAAC;AACV,GAIaE,IAAgB,CAAyD;AAAA,EACpF,UAAAC;AAAA,EACA,mBAAAC,IAAoBC;AAAA,EACpB,iBAAAC,IAAkBC;AAAA,EAClB,SAAAC;AACF,MAA4C;AAC1C,QAAM,CAACZ,GAAOa,CAAQ,IAAIC,EAA6B,IAAI,GACrD,CAACC,GAAaC,CAAc,IAAIF,EAA8B,IAAI,GAClEG,IAAaC,EAAc,GAC3B,EAAE,GAAAC,EAAE,IAAIC,EAAe,GACvBC,IAAaC,EAAoB,GAEjCC,IAAe,CAACvB,MAAuB;AAC3C,IAAAa,EAASb,CAAK,GAEVA,aAAiBwB,KAAkC,MAAM,QAAQxB,EAAM,MAAM,KAC/EgB,EAAehB,EAAM,OAAO,QAAQ,OAAOD,EAAeM,CAAG,CAAC,CAAC;AAAA,EAEnE,GAEMoB,IAAoBC;AAAA,IACxB,OAAWC,GAASC,MAAuC;AACzD,MAAAf,EAAS,IAAI,GACbG,EAAe,IAAI;AACf,UAAA;AACF,cAAMY,EAAiBD,CAAI;AAAA,eACpBtB,GAAK;AACZ,QACEA,aAAewB,KACfxB,aAAeyB,KACfzB,aAAemB,IAEfD,EAAalB,CAAG,MACAA,CAAG;AAAA,MAAA;AAAA,IAEzB;AAAA,IACA,CAACQ,GAAUI,CAAU;AAAA,EACvB;AAGE,SAAA,gBAAAnB;AAAA,IAACiC,EAAY;AAAA,IAAZ;AAAA,MACC,OAAO;AAAA,QACL,aAAAhB;AAAA,QACA,UAAAF;AAAA,QACA,SAAAD;AAAA,QACA,YAAAK;AAAA,QACA,mBAAAQ;AAAA,MACF;AAAA,MAEA,4BAACO,GACE,EAAA,UAAA,CAAC,EAAE,OAAOC,QACT,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,mBAAA3B;AAAA,UACA,SAASyB;AAAA,UACT,SAAS,CAAO5B,MAAA;AACN,YAAAO,EAAAwB,EAAgB,OAAO/B,CAAG;AAAA,UACpC;AAAA,UAEE,UAAA;AAAA,aAASL,KAAAe,MACR,gBAAAmB,EAAAb,EAAW,OAAX,EAAiB,OAAOF,EAAE,yBAAyB,GAAG,QAAO,SAC3D,UAAA;AAAA,cAAAJ,uBAAgBM,EAAW,eAAX,EAAyB,OAAO1B,EAAgBoB,CAAW,GAAG;AAAA,cAC9Ef,KAASA,aAAiB6B,KACzB,gBAAA/B,EAACuB,EAAW,MAAX,EAAiB,YAAM,SAAQ;AAAA,cAEjCrB,KAASA,aAAiB8B,KACxB,gBAAAhC,EAAAuB,EAAW,MAAX,EAAgB,IAAG,OAAO,UAAMrB,EAAA,OAAA,EAAS,CAAA;AAAA,YAAA,GAE9C;AAAA,YAEF,gBAAAF,EAACuC,KAAS,UAAU,gBAAAvC,EAACY,KAAgB,GACnC,UAAA,gBAAAZ,EAACwC,GAAQ,EAAA,UAAA/B,EAAS,CAAA,EACpB,CAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,EAGN,CAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"InternalError.js","sources":["../../../../src/components/Common/InternalError/InternalError.tsx"],"sourcesContent":["import type { FallbackProps } from 'react-error-boundary'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './InternalError.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const InternalError = ({ error, resetErrorBoundary }: FallbackProps) => {\n //TODO: Need to integrate useQueryErrorResetBoundary from tanstac to reset query cach on \"try again\" - GWS-3926\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const errorMessage =\n typeof error === 'string'\n ? error\n : error instanceof Error\n ? error.message\n : t('errors.unknownError')\n\n return (\n <div className={styles.internalErrorCard} role=\"alert\" data-testid=\"internal-error-card\">\n <div>\n <Components.Heading className={styles.internalErrorCardTitle} as=\"h1\" styledAs=\"h3\">\n {t('errors.errorHeading')}\n </Components.Heading>\n <Components.Text className={styles.errorMessage}>\n <Trans\n t={t}\n i18nKey=\"errors.globalReactError\"\n values={{ error: errorMessage }}\n shouldUnescape={true}\n />\n </Components.Text>\n </div>\n <div>\n <Components.Button variant=\"secondary\" onClick={resetErrorBoundary}>\n {t('errors.resetGlobalError')}\n </Components.Button>\n </div>\n </div>\n )\n}\n"],"names":["InternalError","error","resetErrorBoundary","t","useTranslation","Components","useComponentContext","errorMessage","jsxs","styles","jsx","Trans"],"mappings":";;;;AAKO,MAAMA,IAAgB,CAAC,EAAE,OAAAC,GAAO,oBAAAC,QAAwC;AAE7E,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAoB,GACjCC,IACJ,OAAON,KAAU,WACbA,IACAA,aAAiB,QACfA,EAAM,UACNE,EAAE,qBAAqB;AAG7B,SAAA,gBAAAK,EAAC,SAAI,WAAWC,EAAO,mBAAmB,MAAK,SAAQ,eAAY,uBACjE,UAAA;AAAA,IAAA,gBAAAD,EAAC,OACC,EAAA,UAAA;AAAA,MAAA,gBAAAE,EAACL,EAAW,SAAX,EAAmB,WAAWI,EAAO,wBAAwB,IAAG,MAAK,UAAS,MAC5E,UAAEN,EAAA,qBAAqB,EAC1B,CAAA;AAAA,wBACCE,EAAW,MAAX,EAAgB,WAAWI,EAAO,cACjC,UAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,GAAAR;AAAA,UACA,SAAQ;AAAA,UACR,QAAQ,EAAE,OAAOI,EAAa;AAAA,UAC9B,gBAAgB;AAAA,QAAA;AAAA,MAAA,EAEpB,CAAA;AAAA,IAAA,GACF;AAAA,IACC,gBAAAG,EAAA,OAAA,EACC,UAAC,gBAAAA,EAAAL,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASH,GAC7C,UAAEC,EAAA,yBAAyB,GAC9B,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"InternalError.js","sources":["../../../../src/components/Common/InternalError/InternalError.tsx"],"sourcesContent":["import type { FallbackProps } from 'react-error-boundary'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './InternalError.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const InternalError = ({ error, resetErrorBoundary }: FallbackProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const errorMessage =\n typeof error === 'string'\n ? error\n : error instanceof Error\n ? error.message\n : t('errors.unknownError')\n return (\n <div className={styles.internalErrorCard} role=\"alert\" data-testid=\"internal-error-card\">\n <div>\n <Components.Heading className={styles.internalErrorCardTitle} as=\"h1\" styledAs=\"h3\">\n {t('errors.errorHeading')}\n </Components.Heading>\n <Components.Text className={styles.errorMessage}>\n <Trans\n t={t}\n i18nKey=\"errors.globalReactError\"\n values={{ error: errorMessage }}\n shouldUnescape={true}\n />\n </Components.Text>\n </div>\n <div>\n <Components.Button variant=\"secondary\" onClick={resetErrorBoundary}>\n {t('errors.resetGlobalError')}\n </Components.Button>\n </div>\n </div>\n )\n}\n"],"names":["InternalError","error","resetErrorBoundary","t","useTranslation","Components","useComponentContext","errorMessage","jsxs","styles","jsx","Trans"],"mappings":";;;;AAKO,MAAMA,IAAgB,CAAC,EAAE,OAAAC,GAAO,oBAAAC,QAAwC;AAC7E,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAoB,GACjCC,IACJ,OAAON,KAAU,WACbA,IACAA,aAAiB,QACfA,EAAM,UACNE,EAAE,qBAAqB;AAE7B,SAAA,gBAAAK,EAAC,SAAI,WAAWC,EAAO,mBAAmB,MAAK,SAAQ,eAAY,uBACjE,UAAA;AAAA,IAAA,gBAAAD,EAAC,OACC,EAAA,UAAA;AAAA,MAAA,gBAAAE,EAACL,EAAW,SAAX,EAAmB,WAAWI,EAAO,wBAAwB,IAAG,MAAK,UAAS,MAC5E,UAAEN,EAAA,qBAAqB,EAC1B,CAAA;AAAA,wBACCE,EAAW,MAAX,EAAgB,WAAWI,EAAO,cACjC,UAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,GAAAR;AAAA,UACA,SAAQ;AAAA,UACR,QAAQ,EAAE,OAAOI,EAAa;AAAA,UAC9B,gBAAgB;AAAA,QAAA;AAAA,MAAA,EAEpB,CAAA;AAAA,IAAA,GACF;AAAA,IACC,gBAAAG,EAAA,OAAA,EACC,UAAC,gBAAAA,EAAAL,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASH,GAC7C,UAAEC,EAAA,yBAAyB,GAC9B,EACF,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,10 +1,10 @@
1
- import { jsx as o, jsxs as e } from "react/jsx-runtime";
1
+ import { jsx as o, jsxs as l } from "react/jsx-runtime";
2
2
  import { ComboBox as A, Input as F, Button as j, Popover as D, ListBox as E, ListBoxItem as P } from "react-aria-components";
3
3
  import { useTranslation as z } from "react-i18next";
4
4
  import { useMemo as H } from "react";
5
5
  import d from "classnames";
6
6
  import { useFieldIds as K } from "../hooks/useFieldIds.js";
7
- import t from "./ComboBox.module.scss.js";
7
+ import e from "./ComboBox.module.scss.js";
8
8
  import { FieldLayout as M } from "../../FieldLayout/FieldLayout.js";
9
9
  import { useTheme as U } from "../../../../contexts/ThemeProvider/useTheme.js";
10
10
  /* empty css */
@@ -12,68 +12,66 @@ import _ from "../../../../assets/icons/alert-circle.svg.js";
12
12
  import $ from "../../../../assets/icons/caret-down.svg.js";
13
13
  const rr = ({
14
14
  className: p,
15
- description: i,
16
- errorMessage: m,
15
+ description: t,
16
+ errorMessage: i,
17
17
  id: f,
18
18
  isDisabled: u,
19
- isInvalid: a,
19
+ isInvalid: m,
20
20
  isRequired: h,
21
- label: s,
21
+ label: a,
22
22
  onChange: x,
23
23
  onBlur: B,
24
- options: n,
24
+ options: s,
25
25
  placeholder: b,
26
- value: c,
26
+ value: n,
27
27
  inputRef: C,
28
28
  shouldVisuallyHideLabel: g,
29
- name: v,
30
- ...I
29
+ name: I,
30
+ ...v
31
31
  }) => {
32
- const { t: N } = z(), { inputId: l, errorMessageId: S, descriptionId: y, ariaDescribedBy: L } = K({
32
+ const { t: N } = z(), { inputId: c, errorMessageId: S, descriptionId: y, ariaDescribedBy: L } = K({
33
33
  inputId: f,
34
- errorMessage: m,
35
- description: i
36
- }), { container: T } = U(), w = H(() => n.map((r) => ({ name: r.label, id: r.value })), [n]);
34
+ errorMessage: i,
35
+ description: t
36
+ }), { container: T } = U(), w = H(() => s.map((r) => ({ name: r.label, id: r.value })), [s]);
37
37
  return /* @__PURE__ */ o(
38
38
  M,
39
39
  {
40
- label: s,
41
- htmlFor: l,
42
- errorMessage: m,
40
+ label: a,
41
+ htmlFor: c,
42
+ errorMessage: i,
43
43
  errorMessageId: S,
44
44
  descriptionId: y,
45
45
  isRequired: h,
46
- description: i,
46
+ description: t,
47
47
  shouldVisuallyHideLabel: g,
48
- className: d(t.root, p),
48
+ className: d(e.root, p),
49
49
  withErrorIcon: !1,
50
- children: /* @__PURE__ */ e(
50
+ children: /* @__PURE__ */ l(
51
51
  A,
52
52
  {
53
- "aria-label": s,
53
+ "aria-label": a,
54
54
  "aria-describedby": L,
55
55
  className: "react-aria-ComboBox-root",
56
56
  isDisabled: u,
57
- isInvalid: a,
57
+ isInvalid: m,
58
58
  menuTrigger: "focus",
59
59
  onSelectionChange: (r) => {
60
60
  r && x?.(r.toString());
61
61
  },
62
- id: l,
63
- selectedKey: c || void 0,
64
- name: v,
62
+ id: c,
63
+ selectedKey: n || void 0,
64
+ name: I,
65
65
  children: [
66
- /* @__PURE__ */ e("div", { children: [
67
- /* @__PURE__ */ o(F, { ref: C, placeholder: b, onBlur: B, ...I }),
68
- /* @__PURE__ */ o(j, { children: /* @__PURE__ */ e("div", { "aria-hidden": "true", className: t.icons, children: [
69
- a && /* @__PURE__ */ o(_, { fontSize: 16 }),
70
- /* @__PURE__ */ o($, { title: N("icons.selectArrow") })
71
- ] }) })
72
- ] }),
66
+ /* @__PURE__ */ o(F, { ref: C, placeholder: b, onBlur: B, ...v }),
67
+ /* @__PURE__ */ o(j, { children: /* @__PURE__ */ l("div", { "aria-hidden": "true", className: e.icons, children: [
68
+ m && /* @__PURE__ */ o(_, { fontSize: 16 }),
69
+ /* @__PURE__ */ o($, { title: N("icons.selectArrow") })
70
+ ] }) }),
73
71
  /* @__PURE__ */ o(
74
72
  D,
75
73
  {
76
- className: d(t.popover, "react-aria-Popover"),
74
+ className: d(e.popover, "react-aria-Popover"),
77
75
  UNSTABLE_portalContainer: T.current,
78
76
  maxHeight: 320,
79
77
  children: /* @__PURE__ */ o(E, { items: w, children: (r) => /* @__PURE__ */ o(P, { children: r.name }, r.id) })
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","sources":["../../../../../src/components/Common/UI/ComboBox/ComboBox.tsx"],"sourcesContent":["import type { Key } from 'react-aria-components'\nimport {\n ComboBox as AriaComboBox,\n Button,\n Input,\n ListBox,\n ListBoxItem,\n Popover,\n} from 'react-aria-components'\nimport { useTranslation } from 'react-i18next'\nimport { useMemo } from 'react'\nimport classNames from 'classnames'\nimport { useFieldIds } from '../hooks/useFieldIds'\nimport styles from './ComboBox.module.scss'\nimport type { ComboBoxProps } from './ComboBoxTypes'\nimport { FieldLayout } from '@/components/Common/FieldLayout'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport AlertCircle from '@/assets/icons/alert-circle.svg?react'\nimport CaretDown from '@/assets/icons/caret-down.svg?react'\n\nexport const ComboBox = ({\n className,\n description,\n errorMessage,\n id,\n isDisabled,\n isInvalid,\n isRequired,\n label,\n onChange,\n onBlur,\n options,\n placeholder,\n value,\n inputRef,\n shouldVisuallyHideLabel,\n name,\n ...props\n}: ComboBoxProps) => {\n const { t } = useTranslation()\n const { inputId, errorMessageId, descriptionId, ariaDescribedBy } = useFieldIds({\n inputId: id,\n errorMessage,\n description,\n })\n const { container } = useTheme()\n\n const items = useMemo(() => {\n return options.map(option => ({ name: option.label, id: option.value }))\n }, [options])\n\n return (\n <FieldLayout\n label={label}\n htmlFor={inputId}\n errorMessage={errorMessage}\n errorMessageId={errorMessageId}\n descriptionId={descriptionId}\n isRequired={isRequired}\n description={description}\n shouldVisuallyHideLabel={shouldVisuallyHideLabel}\n className={classNames(styles.root, className)}\n withErrorIcon={false}\n >\n <AriaComboBox\n aria-label={label}\n aria-describedby={ariaDescribedBy}\n className={'react-aria-ComboBox-root'}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n menuTrigger=\"focus\"\n onSelectionChange={key => {\n if (key) {\n onChange?.(key.toString())\n }\n }}\n id={inputId}\n selectedKey={value ? (value as Key) : undefined}\n name={name}\n >\n <div>\n <Input ref={inputRef} placeholder={placeholder} onBlur={onBlur} {...props} />\n <Button>\n <div aria-hidden=\"true\" className={styles.icons}>\n {isInvalid && <AlertCircle fontSize={16} />}\n <CaretDown title={t('icons.selectArrow')} />\n </div>\n </Button>\n </div>\n\n <Popover\n className={classNames(styles.popover, 'react-aria-Popover')}\n UNSTABLE_portalContainer={container.current}\n maxHeight={320}\n >\n <ListBox items={items}>\n {item => <ListBoxItem key={item.id}>{item.name}</ListBoxItem>}\n </ListBox>\n </Popover>\n </AriaComboBox>\n </FieldLayout>\n )\n}\n"],"names":["ComboBox","className","description","errorMessage","id","isDisabled","isInvalid","isRequired","label","onChange","onBlur","options","placeholder","value","inputRef","shouldVisuallyHideLabel","name","props","t","useTranslation","inputId","errorMessageId","descriptionId","ariaDescribedBy","useFieldIds","container","useTheme","items","useMemo","option","jsx","FieldLayout","classNames","styles","jsxs","AriaComboBox","key","Input","Button","AlertCircle","CaretDown","Popover","ListBox","item","ListBoxItem"],"mappings":";;;;;;;;;;;;AAoBO,MAAMA,KAAW,CAAC;AAAA,EACvB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,IAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,MAAqB;AACb,QAAA,EAAE,GAAAC,EAAE,IAAIC,EAAe,GACvB,EAAE,SAAAC,GAAS,gBAAAC,GAAgB,eAAAC,GAAe,iBAAAC,EAAA,IAAoBC,EAAY;AAAA,IAC9E,SAASpB;AAAA,IACT,cAAAD;AAAA,IACA,aAAAD;AAAA,EAAA,CACD,GACK,EAAE,WAAAuB,EAAU,IAAIC,EAAS,GAEzBC,IAAQC,EAAQ,MACbjB,EAAQ,IAAI,CAAAkB,OAAW,EAAE,MAAMA,EAAO,OAAO,IAAIA,EAAO,MAAQ,EAAA,GACtE,CAAClB,CAAO,CAAC;AAGV,SAAA,gBAAAmB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAvB;AAAA,MACA,SAASY;AAAA,MACT,cAAAjB;AAAA,MACA,gBAAAkB;AAAA,MACA,eAAAC;AAAA,MACA,YAAAf;AAAA,MACA,aAAAL;AAAA,MACA,yBAAAa;AAAA,MACA,WAAWiB,EAAWC,EAAO,MAAMhC,CAAS;AAAA,MAC5C,eAAe;AAAA,MAEf,UAAA,gBAAAiC;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,cAAY3B;AAAA,UACZ,oBAAkBe;AAAA,UAClB,WAAW;AAAA,UACX,YAAAlB;AAAA,UACA,WAAAC;AAAA,UACA,aAAY;AAAA,UACZ,mBAAmB,CAAO8B,MAAA;AACxB,YAAIA,KACS3B,IAAA2B,EAAI,UAAU;AAAA,UAE7B;AAAA,UACA,IAAIhB;AAAA,UACJ,aAAaP,KAAyB;AAAA,UACtC,MAAAG;AAAA,UAEA,UAAA;AAAA,YAAA,gBAAAkB,EAAC,OACC,EAAA,UAAA;AAAA,cAAA,gBAAAJ,EAACO,KAAM,KAAKvB,GAAU,aAAAF,GAA0B,QAAAF,GAAiB,GAAGO,GAAO;AAAA,cAC3E,gBAAAa,EAACQ,KACC,UAAC,gBAAAJ,EAAA,OAAA,EAAI,eAAY,QAAO,WAAWD,EAAO,OACvC,UAAA;AAAA,gBAAa3B,KAAA,gBAAAwB,EAACS,GAAY,EAAA,UAAU,GAAI,CAAA;AAAA,gBACxC,gBAAAT,EAAAU,GAAA,EAAU,OAAOtB,EAAE,mBAAmB,EAAG,CAAA;AAAA,cAAA,EAAA,CAC5C,EACF,CAAA;AAAA,YAAA,GACF;AAAA,YAEA,gBAAAY;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,WAAWT,EAAWC,EAAO,SAAS,oBAAoB;AAAA,gBAC1D,0BAA0BR,EAAU;AAAA,gBACpC,WAAW;AAAA,gBAEX,UAAA,gBAAAK,EAACY,GAAQ,EAAA,OAAAf,GACN,UAAQ,CAAAgB,MAAA,gBAAAb,EAACc,KAA2B,UAAKD,EAAA,KAAA,GAAfA,EAAK,EAAe,EACjD,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"ComboBox.js","sources":["../../../../../src/components/Common/UI/ComboBox/ComboBox.tsx"],"sourcesContent":["import type { Key } from 'react-aria-components'\nimport {\n ComboBox as AriaComboBox,\n Button,\n Input,\n ListBox,\n ListBoxItem,\n Popover,\n} from 'react-aria-components'\nimport { useTranslation } from 'react-i18next'\nimport { useMemo } from 'react'\nimport classNames from 'classnames'\nimport { useFieldIds } from '../hooks/useFieldIds'\nimport styles from './ComboBox.module.scss'\nimport type { ComboBoxProps } from './ComboBoxTypes'\nimport { FieldLayout } from '@/components/Common/FieldLayout'\nimport { useTheme } from '@/contexts/ThemeProvider'\nimport AlertCircle from '@/assets/icons/alert-circle.svg?react'\nimport CaretDown from '@/assets/icons/caret-down.svg?react'\n\nexport const ComboBox = ({\n className,\n description,\n errorMessage,\n id,\n isDisabled,\n isInvalid,\n isRequired,\n label,\n onChange,\n onBlur,\n options,\n placeholder,\n value,\n inputRef,\n shouldVisuallyHideLabel,\n name,\n ...props\n}: ComboBoxProps) => {\n const { t } = useTranslation()\n const { inputId, errorMessageId, descriptionId, ariaDescribedBy } = useFieldIds({\n inputId: id,\n errorMessage,\n description,\n })\n const { container } = useTheme()\n\n const items = useMemo(() => {\n return options.map(option => ({ name: option.label, id: option.value }))\n }, [options])\n\n return (\n <FieldLayout\n label={label}\n htmlFor={inputId}\n errorMessage={errorMessage}\n errorMessageId={errorMessageId}\n descriptionId={descriptionId}\n isRequired={isRequired}\n description={description}\n shouldVisuallyHideLabel={shouldVisuallyHideLabel}\n className={classNames(styles.root, className)}\n withErrorIcon={false}\n >\n <AriaComboBox\n aria-label={label}\n aria-describedby={ariaDescribedBy}\n className={'react-aria-ComboBox-root'}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n menuTrigger=\"focus\"\n onSelectionChange={key => {\n if (key) {\n onChange?.(key.toString())\n }\n }}\n id={inputId}\n selectedKey={value ? (value as Key) : undefined}\n name={name}\n >\n <Input ref={inputRef} placeholder={placeholder} onBlur={onBlur} {...props} />\n <Button>\n <div aria-hidden=\"true\" className={styles.icons}>\n {isInvalid && <AlertCircle fontSize={16} />}\n <CaretDown title={t('icons.selectArrow')} />\n </div>\n </Button>\n\n <Popover\n className={classNames(styles.popover, 'react-aria-Popover')}\n UNSTABLE_portalContainer={container.current}\n maxHeight={320}\n >\n <ListBox items={items}>\n {item => <ListBoxItem key={item.id}>{item.name}</ListBoxItem>}\n </ListBox>\n </Popover>\n </AriaComboBox>\n </FieldLayout>\n )\n}\n"],"names":["ComboBox","className","description","errorMessage","id","isDisabled","isInvalid","isRequired","label","onChange","onBlur","options","placeholder","value","inputRef","shouldVisuallyHideLabel","name","props","t","useTranslation","inputId","errorMessageId","descriptionId","ariaDescribedBy","useFieldIds","container","useTheme","items","useMemo","option","jsx","FieldLayout","classNames","styles","jsxs","AriaComboBox","key","Input","Button","AlertCircle","CaretDown","Popover","ListBox","item","ListBoxItem"],"mappings":";;;;;;;;;;;;AAoBO,MAAMA,KAAW,CAAC;AAAA,EACvB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,IAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAAC;AAAA,EACA,YAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,MAAqB;AACb,QAAA,EAAE,GAAAC,EAAE,IAAIC,EAAe,GACvB,EAAE,SAAAC,GAAS,gBAAAC,GAAgB,eAAAC,GAAe,iBAAAC,EAAA,IAAoBC,EAAY;AAAA,IAC9E,SAASpB;AAAA,IACT,cAAAD;AAAA,IACA,aAAAD;AAAA,EAAA,CACD,GACK,EAAE,WAAAuB,EAAU,IAAIC,EAAS,GAEzBC,IAAQC,EAAQ,MACbjB,EAAQ,IAAI,CAAAkB,OAAW,EAAE,MAAMA,EAAO,OAAO,IAAIA,EAAO,MAAQ,EAAA,GACtE,CAAClB,CAAO,CAAC;AAGV,SAAA,gBAAAmB;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAAvB;AAAA,MACA,SAASY;AAAA,MACT,cAAAjB;AAAA,MACA,gBAAAkB;AAAA,MACA,eAAAC;AAAA,MACA,YAAAf;AAAA,MACA,aAAAL;AAAA,MACA,yBAAAa;AAAA,MACA,WAAWiB,EAAWC,EAAO,MAAMhC,CAAS;AAAA,MAC5C,eAAe;AAAA,MAEf,UAAA,gBAAAiC;AAAA,QAACC;AAAAA,QAAA;AAAA,UACC,cAAY3B;AAAA,UACZ,oBAAkBe;AAAA,UAClB,WAAW;AAAA,UACX,YAAAlB;AAAA,UACA,WAAAC;AAAA,UACA,aAAY;AAAA,UACZ,mBAAmB,CAAO8B,MAAA;AACxB,YAAIA,KACS3B,IAAA2B,EAAI,UAAU;AAAA,UAE7B;AAAA,UACA,IAAIhB;AAAA,UACJ,aAAaP,KAAyB;AAAA,UACtC,MAAAG;AAAA,UAEA,UAAA;AAAA,YAAA,gBAAAc,EAACO,KAAM,KAAKvB,GAAU,aAAAF,GAA0B,QAAAF,GAAiB,GAAGO,GAAO;AAAA,YAC3E,gBAAAa,EAACQ,KACC,UAAC,gBAAAJ,EAAA,OAAA,EAAI,eAAY,QAAO,WAAWD,EAAO,OACvC,UAAA;AAAA,cAAa3B,KAAA,gBAAAwB,EAACS,GAAY,EAAA,UAAU,GAAI,CAAA;AAAA,cACxC,gBAAAT,EAAAU,GAAA,EAAU,OAAOtB,EAAE,mBAAmB,EAAG,CAAA;AAAA,YAAA,EAAA,CAC5C,EACF,CAAA;AAAA,YAEA,gBAAAY;AAAA,cAACW;AAAA,cAAA;AAAA,gBACC,WAAWT,EAAWC,EAAO,SAAS,oBAAoB;AAAA,gBAC1D,0BAA0BR,EAAU;AAAA,gBACpC,WAAW;AAAA,gBAEX,UAAA,gBAAAK,EAACY,GAAQ,EAAA,OAAAf,GACN,UAAQ,CAAAgB,MAAA,gBAAAb,EAACc,KAA2B,UAAKD,EAAA,KAAA,GAAfA,EAAK,EAAe,EACjD,CAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF;AAEJ;"}
@@ -1,4 +1,4 @@
1
- const o = "_root_b0bgq_1", s = "_icons_b0bgq_70", t = "_popover_b0bgq_81", _ = {
1
+ const o = "_root_dw0go_1", s = "_icons_dw0go_68", t = "_popover_dw0go_79", _ = {
2
2
  root: o,
3
3
  icons: s,
4
4
  popover: t
@@ -3,7 +3,7 @@ export interface TextProps extends Pick<HTMLAttributes<HTMLParagraphElement>, 'c
3
3
  /**
4
4
  * HTML element to render the text as
5
5
  */
6
- as?: 'p' | 'span' | 'div';
6
+ as?: 'p' | 'span' | 'div' | 'pre';
7
7
  /**
8
8
  * Size variant of the text
9
9
  */
@@ -5,14 +5,15 @@ import "react-i18next";
5
5
  import "@gusto/embedded-api/models/errors/apierror";
6
6
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
7
  import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
+ import "@tanstack/react-query";
8
9
  import "../../../Base/useBase.js";
9
10
  import "../../../../shared/constants.js";
10
11
  import "dompurify";
11
12
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
12
13
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
13
- const [S, c] = t("CreateSignatoryContext");
14
+ const [c, d] = t("CreateSignatoryContext");
14
15
  export {
15
- c as CreateSignatoryProvider,
16
- S as useCreateSignatory
16
+ d as CreateSignatoryProvider,
17
+ c as useCreateSignatory
17
18
  };
18
19
  //# 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\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 { useCreateSignatory, CreateSignatoryProvider }\n"],"names":["useCreateSignatory","CreateSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;AAkBA,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\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 { useCreateSignatory, CreateSignatoryProvider }\n"],"names":["useCreateSignatory","CreateSignatoryProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
@@ -5,14 +5,15 @@ import "react-i18next";
5
5
  import "@gusto/embedded-api/models/errors/apierror";
6
6
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
7
  import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
+ import "@tanstack/react-query";
8
9
  import "../../../Base/useBase.js";
9
10
  import "../../../../shared/constants.js";
10
11
  import "dompurify";
11
12
  import "../../../../contexts/ComponentAdapter/useComponentContext.js";
12
13
  import { createCompoundContext as t } from "../../../Base/createCompoundContext.js";
13
- const [C, I] = t("InviteSignatoryContext");
14
+ const [I, S] = t("InviteSignatoryContext");
14
15
  export {
15
- I as InviteSignatoryProvider,
16
- C as useInviteSignatory
16
+ S as InviteSignatoryProvider,
17
+ I as useInviteSignatory
17
18
  };
18
19
  //# 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\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":";;;;;;;;;;;;AAcA,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\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":";;;;;;;;;;;;;AAcA,MAAM,CAACA,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
@@ -5,18 +5,19 @@ import "react-i18next";
5
5
  import "@gusto/embedded-api/models/errors/apierror";
6
6
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
7
  import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
+ import "@tanstack/react-query";
8
9
  import "../../Base/useBase.js";
9
10
  import "../../../shared/constants.js";
10
11
  import "dompurify";
11
12
  import "../../../contexts/ComponentAdapter/useComponentContext.js";
12
13
  import { createCompoundContext as t } from "../../Base/createCompoundContext.js";
13
- const c = {
14
+ const A = {
14
15
  createSignatory: "createSignatory",
15
16
  inviteSignatory: "inviteSignatory"
16
- }, [A, d] = t("AssignSignatoryContext");
17
+ }, [d, v] = t("AssignSignatoryContext");
17
18
  export {
18
- d as AssignSignatoryProvider,
19
- c as SignatoryAssignmentMode,
20
- A as useAssignSignatory
19
+ v as AssignSignatoryProvider,
20
+ A as SignatoryAssignmentMode,
21
+ d as useAssignSignatory
21
22
  };
22
23
  //# 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\nexport const SignatoryAssignmentMode = {\n createSignatory: 'createSignatory',\n inviteSignatory: 'inviteSignatory',\n} as const\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":";;;;;;;;;;;;AAMO,MAAMA,IAA0B;AAAA,EACrC,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GAeM,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\nexport const SignatoryAssignmentMode = {\n createSignatory: 'createSignatory',\n inviteSignatory: 'inviteSignatory',\n} as const\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":";;;;;;;;;;;;;AAMO,MAAMA,IAA0B;AAAA,EACrC,iBAAiB;AAAA,EACjB,iBAAiB;AACnB,GAeM,CAACC,GAAoBC,CAAuB,IAChDC,EAAkD,wBAAwB;"}
@@ -1,8 +1,8 @@
1
1
  import { BaseComponentInterface } from '../../Base';
2
- export interface LocationsProps extends BaseComponentInterface<'Company.BankAccount'> {
2
+ export interface BankAccountProps extends BaseComponentInterface<'Company.BankAccount'> {
3
3
  companyId: string;
4
4
  }
5
- export declare function BankAccount({ companyId, onEvent, dictionary }: LocationsProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function BankAccount(props: BankAccountProps): import("react/jsx-runtime").JSX.Element;
6
6
  export declare namespace BankAccount {
7
7
  var BankAccountList: typeof import("./BankAccountList/BankAccountList").BankAccountList;
8
8
  var BankAccountForm: typeof import("./BankAccountForm/BankAccountForm").BankAccountForm;
@@ -1,32 +1,37 @@
1
- import { jsx as u } from "react/jsx-runtime";
2
- import { createMachine as s } from "robot3";
3
- import { useBankAccountsGetSuspense as k } from "@gusto/embedded-api/react-query/bankAccountsGet";
4
- import { BankAccountListContextual as A, BankAccountFormContextual as p } from "./BankAccountComponents.js";
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { createMachine as k } from "robot3";
3
+ import { useBankAccountsGetSuspense as s } from "@gusto/embedded-api/react-query/bankAccountsGet";
4
+ import { BankAccountListContextual as A, BankAccountFormContextual as B } from "./BankAccountComponents.js";
5
5
  import { bankAccountStateMachine as f } from "./stateMachine.js";
6
- import { BankAccountList as B } from "./BankAccountList/BankAccountList.js";
6
+ import { BankAccountList as p } from "./BankAccountList/BankAccountList.js";
7
7
  import { BankAccountForm as l } from "./BankAccountForm/BankAccountForm.js";
8
- import { BankAccountVerify as L } from "./BankAccountVerify/BankAccountVerify.js";
9
- import { Flow as h } from "../../Flow/Flow.js";
10
- import { useComponentDictionary as y } from "../../../i18n/I18n.js";
11
- function n({ companyId: t, onEvent: a, dictionary: r }) {
12
- y("Company.BankAccount", r);
13
- const { data: m } = k({ companyId: t }), c = m.companyBankAccountList, o = c.length > 0 ? c[0] : null, e = s(
8
+ import { BankAccountVerify as h } from "./BankAccountVerify/BankAccountVerify.js";
9
+ import { Flow as y } from "../../Flow/Flow.js";
10
+ import { BaseComponent as C } from "../../Base/Base.js";
11
+ import "../../Base/useBase.js";
12
+ import { useComponentDictionary as F } from "../../../i18n/I18n.js";
13
+ function L({ companyId: n, onEvent: r, dictionary: m }) {
14
+ F("Company.BankAccount", m);
15
+ const { data: e } = s({ companyId: n }), a = e.companyBankAccountList, o = a.length > 0 ? a[0] : null, i = k(
14
16
  o ? "viewBankAccount" : "addBankAccount",
15
17
  f,
16
- (i) => ({
17
- ...i,
18
- component: o ? A : p,
19
- companyId: t,
18
+ (u) => ({
19
+ ...u,
20
+ component: o ? A : B,
21
+ companyId: n,
20
22
  bankAccount: o,
21
23
  showVerifiedMessage: !1
22
24
  })
23
25
  );
24
- return /* @__PURE__ */ u(h, { machine: e, onEvent: a });
26
+ return /* @__PURE__ */ t(y, { machine: i, onEvent: r });
25
27
  }
26
- n.BankAccountList = B;
27
- n.BankAccountForm = l;
28
- n.BankAccountVerify = L;
28
+ function c(n) {
29
+ return /* @__PURE__ */ t(C, { ...n, children: /* @__PURE__ */ t(L, { ...n }) });
30
+ }
31
+ c.BankAccountList = p;
32
+ c.BankAccountForm = l;
33
+ c.BankAccountVerify = h;
29
34
  export {
30
- n as BankAccount
35
+ c as BankAccount
31
36
  };
32
37
  //# sourceMappingURL=BankAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BankAccount.js","sources":["../../../../src/components/Company/BankAccount/BankAccount.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport {\n BankAccountFormContextual,\n type BankAccountContextInterface,\n} from './BankAccountComponents'\nimport { bankAccountStateMachine } from './stateMachine'\nimport { BankAccountListContextual } from './BankAccountComponents'\nimport { BankAccountList } from './BankAccountList/BankAccountList'\nimport { BankAccountForm } from './BankAccountForm/BankAccountForm'\nimport { BankAccountVerify } from './BankAccountVerify/BankAccountVerify'\nimport { Flow } from '@/components/Flow/Flow'\nimport type { BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nexport interface LocationsProps extends BaseComponentInterface<'Company.BankAccount'> {\n companyId: string\n}\n\nexport function BankAccount({ companyId, onEvent, dictionary }: LocationsProps) {\n useComponentDictionary('Company.BankAccount', dictionary)\n const { data } = useBankAccountsGetSuspense({ companyId })\n const companyBankAccountList = data.companyBankAccountList!\n //Currently, we only support a single default bank account per company.\n const bankAccount = companyBankAccountList.length > 0 ? companyBankAccountList[0]! : null\n\n const manageLocations = createMachine(\n bankAccount ? 'viewBankAccount' : 'addBankAccount',\n bankAccountStateMachine,\n (initialContext: BankAccountContextInterface) => ({\n ...initialContext,\n component: bankAccount ? BankAccountListContextual : BankAccountFormContextual,\n companyId,\n bankAccount,\n showVerifiedMessage: false,\n }),\n )\n return <Flow machine={manageLocations} onEvent={onEvent} />\n}\n\nBankAccount.BankAccountList = BankAccountList\nBankAccount.BankAccountForm = BankAccountForm\nBankAccount.BankAccountVerify = BankAccountVerify\n"],"names":["BankAccount","companyId","onEvent","dictionary","useComponentDictionary","data","useBankAccountsGetSuspense","companyBankAccountList","bankAccount","manageLocations","createMachine","bankAccountStateMachine","initialContext","BankAccountListContextual","BankAccountFormContextual","jsx","Flow","BankAccountList","BankAccountForm","BankAccountVerify"],"mappings":";;;;;;;;;;AAmBO,SAASA,EAAY,EAAE,WAAAC,GAAW,SAAAC,GAAS,YAAAC,KAA8B;AAC9E,EAAAC,EAAuB,uBAAuBD,CAAU;AACxD,QAAM,EAAE,MAAAE,EAAK,IAAIC,EAA2B,EAAE,WAAAL,GAAW,GACnDM,IAAyBF,EAAK,wBAE9BG,IAAcD,EAAuB,SAAS,IAAIA,EAAuB,CAAC,IAAK,MAE/EE,IAAkBC;AAAA,IACtBF,IAAc,oBAAoB;AAAA,IAClCG;AAAA,IACA,CAACC,OAAiD;AAAA,MAChD,GAAGA;AAAA,MACH,WAAWJ,IAAcK,IAA4BC;AAAA,MACrD,WAAAb;AAAA,MACA,aAAAO;AAAA,MACA,qBAAqB;AAAA,IACvB;AAAA,EACF;AACA,SAAQ,gBAAAO,EAAAC,GAAA,EAAK,SAASP,GAAiB,SAAAP,EAAkB,CAAA;AAC3D;AAEAF,EAAY,kBAAkBiB;AAC9BjB,EAAY,kBAAkBkB;AAC9BlB,EAAY,oBAAoBmB;"}
1
+ {"version":3,"file":"BankAccount.js","sources":["../../../../src/components/Company/BankAccount/BankAccount.tsx"],"sourcesContent":["import { createMachine } from 'robot3'\nimport { useBankAccountsGetSuspense } from '@gusto/embedded-api/react-query/bankAccountsGet'\nimport {\n BankAccountFormContextual,\n type BankAccountContextInterface,\n} from './BankAccountComponents'\nimport { bankAccountStateMachine } from './stateMachine'\nimport { BankAccountListContextual } from './BankAccountComponents'\nimport { BankAccountList } from './BankAccountList/BankAccountList'\nimport { BankAccountForm } from './BankAccountForm/BankAccountForm'\nimport { BankAccountVerify } from './BankAccountVerify/BankAccountVerify'\nimport { Flow } from '@/components/Flow/Flow'\nimport { BaseComponent, type BaseComponentInterface } from '@/components/Base'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\nexport interface BankAccountProps extends BaseComponentInterface<'Company.BankAccount'> {\n companyId: string\n}\n\nfunction BankAccountFlow({ companyId, onEvent, dictionary }: BankAccountProps) {\n useComponentDictionary('Company.BankAccount', dictionary)\n const { data } = useBankAccountsGetSuspense({ companyId })\n const companyBankAccountList = data.companyBankAccountList!\n //Currently, we only support a single default bank account per company.\n const bankAccount = companyBankAccountList.length > 0 ? companyBankAccountList[0]! : null\n\n const manageBankAccount = createMachine(\n bankAccount ? 'viewBankAccount' : 'addBankAccount',\n bankAccountStateMachine,\n (initialContext: BankAccountContextInterface) => ({\n ...initialContext,\n component: bankAccount ? BankAccountListContextual : BankAccountFormContextual,\n companyId,\n bankAccount,\n showVerifiedMessage: false,\n }),\n )\n return <Flow machine={manageBankAccount} onEvent={onEvent} />\n}\n\nexport function BankAccount(props: BankAccountProps) {\n return (\n <BaseComponent {...props}>\n <BankAccountFlow {...props} />\n </BaseComponent>\n )\n}\n\nBankAccount.BankAccountList = BankAccountList\nBankAccount.BankAccountForm = BankAccountForm\nBankAccount.BankAccountVerify = BankAccountVerify\n"],"names":["BankAccountFlow","companyId","onEvent","dictionary","useComponentDictionary","data","useBankAccountsGetSuspense","companyBankAccountList","bankAccount","manageBankAccount","createMachine","bankAccountStateMachine","initialContext","BankAccountListContextual","BankAccountFormContextual","jsx","Flow","BankAccount","props","BaseComponent","BankAccountList","BankAccountForm","BankAccountVerify"],"mappings":";;;;;;;;;;;;AAmBA,SAASA,EAAgB,EAAE,WAAAC,GAAW,SAAAC,GAAS,YAAAC,KAAgC;AAC7E,EAAAC,EAAuB,uBAAuBD,CAAU;AACxD,QAAM,EAAE,MAAAE,EAAK,IAAIC,EAA2B,EAAE,WAAAL,GAAW,GACnDM,IAAyBF,EAAK,wBAE9BG,IAAcD,EAAuB,SAAS,IAAIA,EAAuB,CAAC,IAAK,MAE/EE,IAAoBC;AAAA,IACxBF,IAAc,oBAAoB;AAAA,IAClCG;AAAA,IACA,CAACC,OAAiD;AAAA,MAChD,GAAGA;AAAA,MACH,WAAWJ,IAAcK,IAA4BC;AAAA,MACrD,WAAAb;AAAA,MACA,aAAAO;AAAA,MACA,qBAAqB;AAAA,IACvB;AAAA,EACF;AACA,SAAQ,gBAAAO,EAAAC,GAAA,EAAK,SAASP,GAAmB,SAAAP,EAAkB,CAAA;AAC7D;AAEO,SAASe,EAAYC,GAAyB;AAEjD,SAAA,gBAAAH,EAACI,KAAe,GAAGD,GACjB,4BAAClB,GAAiB,EAAA,GAAGkB,GAAO,EAC9B,CAAA;AAEJ;AAEAD,EAAY,kBAAkBG;AAC9BH,EAAY,kBAAkBI;AAC9BJ,EAAY,oBAAoBK;"}