@gusto/embedded-react-sdk 0.8.0 → 0.8.1

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 (214) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +5 -3
  3. package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
  4. package/dist/components/Common/FadeIn/FadeIn.module.scss.js +4 -4
  5. package/dist/components/Common/{UI/FieldCaption → FieldCaption}/FieldCaption.js +1 -1
  6. package/dist/components/Common/FieldCaption/FieldCaption.js.map +1 -0
  7. package/dist/components/Common/{UI/FieldDescription → FieldDescription}/FieldDescription.js +1 -1
  8. package/dist/components/Common/FieldDescription/FieldDescription.js.map +1 -0
  9. package/dist/components/Common/{UI/FieldErrorMessage → FieldErrorMessage}/FieldErrorMessage.js +1 -1
  10. package/dist/components/Common/FieldErrorMessage/FieldErrorMessage.js.map +1 -0
  11. package/dist/components/Common/{UI/FieldLayout → FieldLayout}/FieldLayout.js +1 -1
  12. package/dist/components/Common/FieldLayout/FieldLayout.js.map +1 -0
  13. package/dist/components/Common/FieldLayout/FieldLayoutTypes.d.ts +52 -0
  14. package/dist/components/Common/{UI/Fieldset → Fieldset}/Fieldset.js +1 -1
  15. package/dist/components/Common/Fieldset/Fieldset.js.map +1 -0
  16. package/dist/components/Common/{UI/HorizontalFieldLayout → HorizontalFieldLayout}/HorizontalFieldLayout.js +2 -2
  17. package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayout.js.map +1 -0
  18. package/dist/components/Common/SignatureForm/SignatureForm.d.ts +12 -6
  19. package/dist/components/Common/SignatureForm/SignatureForm.js +10 -10
  20. package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
  21. package/dist/components/Common/UI/Alert/Alert.d.ts +1 -1
  22. package/dist/components/Common/UI/Alert/Alert.js +13 -12
  23. package/dist/components/Common/UI/Alert/Alert.js.map +1 -1
  24. package/dist/components/Common/UI/Alert/AlertTypes.d.ts +16 -4
  25. package/dist/components/Common/UI/Badge/BadgeTypes.d.ts +6 -0
  26. package/dist/components/Common/UI/Button/Button.js +28 -27
  27. package/dist/components/Common/UI/Button/Button.js.map +1 -1
  28. package/dist/components/Common/UI/Button/Button.module.scss.js +1 -1
  29. package/dist/components/Common/UI/Button/ButtonTypes.d.ts +29 -4
  30. package/dist/components/Common/UI/CalendarPreview/CalendarPreviewTypes.d.ts +24 -0
  31. package/dist/components/Common/UI/Card/Card.module.scss.js +1 -1
  32. package/dist/components/Common/UI/Card/CardTypes.d.ts +12 -4
  33. package/dist/components/Common/UI/Checkbox/Checkbox.js +4 -4
  34. package/dist/components/Common/UI/Checkbox/Checkbox.js.map +1 -1
  35. package/dist/components/Common/UI/Checkbox/CheckboxTypes.d.ts +16 -1
  36. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroup.js +4 -4
  37. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroup.js.map +1 -1
  38. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +33 -3
  39. package/dist/components/Common/UI/ComboBox/ComboBox.js +8 -8
  40. package/dist/components/Common/UI/ComboBox/ComboBox.js.map +1 -1
  41. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +31 -1
  42. package/dist/components/Common/UI/DatePicker/DatePicker.js +13 -13
  43. package/dist/components/Common/UI/DatePicker/DatePicker.js.map +1 -1
  44. package/dist/components/Common/UI/DatePicker/DatePickerTypes.d.ts +25 -1
  45. package/dist/components/Common/UI/Heading/HeadingTypes.d.ts +12 -0
  46. package/dist/components/Common/UI/Link/LinkTypes.d.ts +53 -1
  47. package/dist/components/Common/UI/List/ListTypes.d.ts +3 -5
  48. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +30 -0
  49. package/dist/components/Common/UI/NumberInput/NumberInput.js +4 -4
  50. package/dist/components/Common/UI/NumberInput/NumberInput.js.map +1 -1
  51. package/dist/components/Common/UI/NumberInput/NumberInputTypes.d.ts +34 -1
  52. package/dist/components/Common/UI/ProgressBar/ProgressBarTypes.d.ts +12 -0
  53. package/dist/components/Common/UI/Radio/Radio.js +1 -1
  54. package/dist/components/Common/UI/Radio/Radio.js.map +1 -1
  55. package/dist/components/Common/UI/Radio/RadioTypes.d.ts +16 -1
  56. package/dist/components/Common/UI/RadioGroup/RadioGroup.js +4 -4
  57. package/dist/components/Common/UI/RadioGroup/RadioGroup.js.map +1 -1
  58. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +33 -3
  59. package/dist/components/Common/UI/Select/Select.js +8 -8
  60. package/dist/components/Common/UI/Select/Select.js.map +1 -1
  61. package/dist/components/Common/UI/Select/SelectTypes.d.ts +34 -1
  62. package/dist/components/Common/UI/Switch/Switch.js +1 -1
  63. package/dist/components/Common/UI/Switch/Switch.js.map +1 -1
  64. package/dist/components/Common/UI/Switch/SwitchTypes.d.ts +25 -1
  65. package/dist/components/Common/UI/Table/TableTypes.d.ts +21 -0
  66. package/dist/components/Common/UI/Text/TextTypes.d.ts +18 -0
  67. package/dist/components/Common/UI/TextInput/TextInput.js +1 -1
  68. package/dist/components/Common/UI/TextInput/TextInput.js.map +1 -1
  69. package/dist/components/Common/UI/TextInput/TextInputTypes.d.ts +22 -1
  70. package/dist/components/Company/AssignSignatory/AssignSignatory.js +12 -12
  71. package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
  72. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js +7 -7
  73. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
  74. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.d.ts +2 -2
  75. package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
  76. package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.d.ts +41 -15
  77. package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.js +17 -20
  78. package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.js.map +1 -1
  79. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js +10 -10
  80. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
  81. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.d.ts +17 -11
  82. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +42 -45
  83. package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
  84. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +6 -6
  85. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
  86. package/dist/components/Company/BankAccount/BankAccountForm/Form.d.ts +12 -6
  87. package/dist/components/Company/BankAccount/BankAccountForm/Form.js +2 -2
  88. package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
  89. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js +10 -10
  90. package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
  91. package/dist/components/Company/BankAccount/BankAccountVerify/Form.d.ts +12 -6
  92. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +17 -17
  93. package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
  94. package/dist/components/Company/DocumentSignerFlow/SignatureForm/SignatureForm.js +1 -1
  95. package/dist/components/Company/DocumentSignerFlow/SignatureForm/SignatureForm.js.map +1 -1
  96. package/dist/components/Company/FederalTaxes/FederalTaxes.js +5 -5
  97. package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
  98. package/dist/components/Company/FederalTaxes/useFederalTaxes.d.ts +18 -8
  99. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +12 -16
  100. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  101. package/dist/components/Company/Industry/Industry.js +1 -1
  102. package/dist/components/Company/Industry/Industry.js.map +1 -1
  103. package/dist/components/Company/Locations/LocationForm/Form.d.ts +27 -11
  104. package/dist/components/Company/Locations/LocationForm/Form.js +24 -24
  105. package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
  106. package/dist/components/Company/Locations/LocationForm/LocationForm.js +24 -24
  107. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  108. package/dist/components/Company/PaySchedule/PaySchedule.js +7 -7
  109. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  110. package/dist/components/Company/PaySchedule/_parts/List.js +28 -31
  111. package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
  112. package/dist/components/Company/PaySchedule/_parts/List.module.scss.js +8 -0
  113. package/dist/components/Company/PaySchedule/_parts/List.module.scss.js.map +1 -0
  114. package/dist/components/Company/PaySchedule/usePaySchedule.d.ts +31 -13
  115. package/dist/components/Company/PaySchedule/usePaySchedule.js +15 -20
  116. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  117. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.d.ts +3 -3
  118. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +3 -3
  119. package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
  120. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js +66 -77
  121. package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
  122. package/dist/components/Employee/Compensation/Compensation.js +5 -5
  123. package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
  124. package/dist/components/Employee/Compensation/List.js +10 -10
  125. package/dist/components/Employee/Compensation/List.js.map +1 -1
  126. package/dist/components/Employee/Compensation/useCompensation.d.ts +90 -42
  127. package/dist/components/Employee/Compensation/useCompensation.js +45 -69
  128. package/dist/components/Employee/Compensation/useCompensation.js.map +1 -1
  129. package/dist/components/Employee/Deductions/Deductions.d.ts +9 -5
  130. package/dist/components/Employee/Deductions/Deductions.js +13 -13
  131. package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
  132. package/dist/components/Employee/Deductions/useDeductions.d.ts +34 -14
  133. package/dist/components/Employee/Deductions/useDeductions.js +14 -32
  134. package/dist/components/Employee/Deductions/useDeductions.js.map +1 -1
  135. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +1 -1
  136. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  137. package/dist/components/Employee/EmployeeList/EmployeeList.js +1 -1
  138. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  139. package/dist/components/Employee/PaymentMethod/BankAccount.d.ts +22 -10
  140. package/dist/components/Employee/PaymentMethod/BankAccount.js +9 -9
  141. package/dist/components/Employee/PaymentMethod/BankAccount.js.map +1 -1
  142. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +13 -13
  143. package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +1 -1
  144. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.d.ts +10 -6
  145. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +8 -8
  146. package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
  147. package/dist/components/Employee/PaymentMethod/usePaymentMethod.d.ts +92 -37
  148. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +35 -42
  149. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  150. package/dist/components/Employee/Profile/AdminPersonalDetails.d.ts +68 -31
  151. package/dist/components/Employee/Profile/AdminPersonalDetails.js +33 -46
  152. package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
  153. package/dist/components/Employee/Profile/HomeAddress.d.ts +33 -13
  154. package/dist/components/Employee/Profile/HomeAddress.js +39 -38
  155. package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
  156. package/dist/components/Employee/Profile/PersonalDetailsInputs.d.ts +81 -32
  157. package/dist/components/Employee/Profile/PersonalDetailsInputs.js +60 -74
  158. package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
  159. package/dist/components/Employee/Profile/Profile.js +51 -55
  160. package/dist/components/Employee/Profile/Profile.js.map +1 -1
  161. package/dist/components/Employee/Profile/SelfPersonalDetails.d.ts +44 -15
  162. package/dist/components/Employee/Profile/SelfPersonalDetails.js +18 -21
  163. package/dist/components/Employee/Profile/SelfPersonalDetails.js.map +1 -1
  164. package/dist/components/Employee/Taxes/FederalForm.d.ts +28 -12
  165. package/dist/components/Employee/Taxes/FederalForm.js +28 -28
  166. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  167. package/dist/components/Employee/Taxes/StateForm.d.ts +9 -5
  168. package/dist/components/Employee/Taxes/StateForm.js +5 -5
  169. package/dist/components/Employee/Taxes/StateForm.js.map +1 -1
  170. package/dist/components/Employee/Taxes/Taxes.js +31 -34
  171. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  172. package/dist/contexts/ApiProvider/ApiProvider.d.ts +5 -0
  173. package/dist/contexts/ApiProvider/ApiProvider.js +34 -0
  174. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -0
  175. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +1 -1
  176. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +16 -16
  177. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  178. package/dist/helpers/validations.d.ts +6 -5
  179. package/dist/helpers/validations.js +10 -17
  180. package/dist/helpers/validations.js.map +1 -1
  181. package/dist/style.css +1 -1
  182. package/package.json +7 -4
  183. package/dist/components/Common/UI/FieldCaption/FieldCaption.js.map +0 -1
  184. package/dist/components/Common/UI/FieldDescription/FieldDescription.js.map +0 -1
  185. package/dist/components/Common/UI/FieldErrorMessage/FieldErrorMessage.js.map +0 -1
  186. package/dist/components/Common/UI/FieldLayout/FieldLayout.js.map +0 -1
  187. package/dist/components/Common/UI/FieldLayout/FieldLayoutTypes.d.ts +0 -19
  188. package/dist/components/Common/UI/Fieldset/Fieldset.js.map +0 -1
  189. package/dist/components/Common/UI/HorizontalFieldLayout/HorizontalFieldLayout.js.map +0 -1
  190. /package/dist/components/Common/{UI/FieldCaption → FieldCaption}/FieldCaption.d.ts +0 -0
  191. /package/dist/components/Common/{UI/FieldCaption → FieldCaption}/FieldCaption.module.scss.js +0 -0
  192. /package/dist/components/Common/{UI/FieldCaption → FieldCaption}/FieldCaption.module.scss.js.map +0 -0
  193. /package/dist/components/Common/{UI/FieldCaption → FieldCaption}/index.d.ts +0 -0
  194. /package/dist/components/Common/{UI/FieldDescription → FieldDescription}/FieldDescription.d.ts +0 -0
  195. /package/dist/components/Common/{UI/FieldDescription → FieldDescription}/FieldDescription.module.scss.js +0 -0
  196. /package/dist/components/Common/{UI/FieldDescription → FieldDescription}/FieldDescription.module.scss.js.map +0 -0
  197. /package/dist/components/Common/{UI/FieldDescription → FieldDescription}/index.d.ts +0 -0
  198. /package/dist/components/Common/{UI/FieldErrorMessage → FieldErrorMessage}/FieldErrorMessage.d.ts +0 -0
  199. /package/dist/components/Common/{UI/FieldErrorMessage → FieldErrorMessage}/FieldErrorMessage.module.scss.js +0 -0
  200. /package/dist/components/Common/{UI/FieldErrorMessage → FieldErrorMessage}/FieldErrorMessage.module.scss.js.map +0 -0
  201. /package/dist/components/Common/{UI/FieldErrorMessage → FieldErrorMessage}/index.d.ts +0 -0
  202. /package/dist/components/Common/{UI/FieldLayout → FieldLayout}/FieldLayout.d.ts +0 -0
  203. /package/dist/components/Common/{UI/FieldLayout → FieldLayout}/FieldLayout.module.scss.js +0 -0
  204. /package/dist/components/Common/{UI/FieldLayout → FieldLayout}/FieldLayout.module.scss.js.map +0 -0
  205. /package/dist/components/Common/{UI/FieldLayout → FieldLayout}/index.d.ts +0 -0
  206. /package/dist/components/Common/{UI/Fieldset → Fieldset}/Fieldset.d.ts +0 -0
  207. /package/dist/components/Common/{UI/Fieldset → Fieldset}/Fieldset.module.scss.js +0 -0
  208. /package/dist/components/Common/{UI/Fieldset → Fieldset}/Fieldset.module.scss.js.map +0 -0
  209. /package/dist/components/Common/{UI/Fieldset → Fieldset}/index.d.ts +0 -0
  210. /package/dist/components/Common/{UI/HorizontalFieldLayout → HorizontalFieldLayout}/HorizontalFieldLayout.d.ts +0 -0
  211. /package/dist/components/Common/{UI/HorizontalFieldLayout → HorizontalFieldLayout}/HorizontalFieldLayout.module.scss.js +0 -0
  212. /package/dist/components/Common/{UI/HorizontalFieldLayout → HorizontalFieldLayout}/HorizontalFieldLayout.module.scss.js.map +0 -0
  213. /package/dist/components/Common/{UI/HorizontalFieldLayout → HorizontalFieldLayout}/HorizontalFieldLayoutTypes.d.ts +0 -0
  214. /package/dist/components/Common/{UI/HorizontalFieldLayout → HorizontalFieldLayout}/index.d.ts +0 -0
@@ -1,34 +1,35 @@
1
1
  import { jsxs as o, Fragment as l, jsx as r } from "react/jsx-runtime";
2
- import { useFormContext as h } from "react-hook-form";
2
+ import { useFormContext as p } from "react-hook-form";
3
3
  import { useTranslation as u, Trans as a } from "react-i18next";
4
- import * as e from "valibot";
4
+ import { z as t } from "zod";
5
5
  import { useProfile as g } from "./useProfile.js";
6
6
  import { STATES_ABBR as f } from "../../../shared/constants.js";
7
7
  import { Grid as b } from "../../Common/Grid/Grid.js";
8
8
  import { useComponentContext as y } from "../../../contexts/ComponentAdapter/useComponentContext.js";
9
9
  import { TextInputField as n } from "../../Common/Fields/TextInputField/TextInputField.js";
10
10
  import { SelectField as T } from "../../Common/Fields/SelectField/SelectField.js";
11
- import { CheckboxField as v } from "../../Common/Fields/CheckboxField/CheckboxField.js";
12
- const S = e.variant("selfOnboarding", [
13
- e.object({
14
- street1: e.pipe(e.string(), e.nonEmpty()),
15
- street2: e.optional(e.string()),
16
- city: e.pipe(e.string(), e.nonEmpty()),
17
- state: e.pipe(e.string(), e.nonEmpty()),
18
- zip: e.pipe(
19
- e.string(),
20
- e.check((t) => /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(t))
21
- ),
22
- courtesyWithholding: e.boolean(),
23
- selfOnboarding: e.union([e.literal(!1), e.undefined()])
11
+ import { CheckboxField as x } from "../../Common/Fields/CheckboxField/CheckboxField.js";
12
+ const j = t.union([
13
+ // Case 1: selfOnboarding is false or undefined
14
+ t.object({
15
+ street1: t.string().min(1),
16
+ street2: t.string().optional(),
17
+ city: t.string().min(1),
18
+ state: t.string().min(1),
19
+ zip: t.string().refine((e) => /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(e)),
20
+ courtesyWithholding: t.boolean(),
21
+ selfOnboarding: t.union([t.literal(!1), t.undefined()])
24
22
  }),
25
- e.object({ selfOnboarding: e.literal(!0) })
26
- ]), j = () => {
27
- const { t } = u("Employee.HomeAddress"), i = y(), { isSelfOnboardingIntended: d, isAdmin: m } = g(), { watch: p } = h(), c = p("courtesyWithholding");
23
+ // Case 2: selfOnboarding is true
24
+ t.object({
25
+ selfOnboarding: t.literal(!0)
26
+ })
27
+ ]), q = () => {
28
+ const { t: e } = u("Employee.HomeAddress"), i = y(), { isSelfOnboardingIntended: d, isAdmin: m } = g(), { watch: c } = p(), h = c("courtesyWithholding");
28
29
  return m && d ? null : /* @__PURE__ */ o(l, { children: [
29
30
  /* @__PURE__ */ o("div", { children: [
30
- /* @__PURE__ */ r(i.Heading, { as: "h2", children: t("formTitle") }),
31
- /* @__PURE__ */ r(i.Text, { children: t("desc") })
31
+ /* @__PURE__ */ r(i.Heading, { as: "h2", children: e("formTitle") }),
32
+ /* @__PURE__ */ r(i.Text, { children: e("desc") })
32
33
  ] }),
33
34
  /* @__PURE__ */ o(
34
35
  b,
@@ -43,19 +44,19 @@ const S = e.variant("selfOnboarding", [
43
44
  n,
44
45
  {
45
46
  name: "street1",
46
- label: t("street1"),
47
+ label: e("street1"),
47
48
  isRequired: !0,
48
- errorMessage: t("validations.street1")
49
+ errorMessage: e("validations.street1")
49
50
  }
50
51
  ),
51
- /* @__PURE__ */ r(n, { name: "street2", label: t("street2") }),
52
+ /* @__PURE__ */ r(n, { name: "street2", label: e("street2") }),
52
53
  /* @__PURE__ */ r(
53
54
  n,
54
55
  {
55
56
  name: "city",
56
57
  isRequired: !0,
57
- label: t("city"),
58
- errorMessage: t("validations.city")
58
+ label: e("city"),
59
+ errorMessage: e("validations.city")
59
60
  }
60
61
  ),
61
62
  /* @__PURE__ */ r(
@@ -63,12 +64,12 @@ const S = e.variant("selfOnboarding", [
63
64
  {
64
65
  name: "state",
65
66
  options: f.map((s) => ({
66
- label: t(`statesHash.${s}`, { ns: "common" }),
67
+ label: e(`statesHash.${s}`, { ns: "common" }),
67
68
  value: s
68
69
  })),
69
- label: t("state"),
70
- placeholder: t("statePlaceholder"),
71
- errorMessage: t("validations.state"),
70
+ label: e("state"),
71
+ placeholder: e("statePlaceholder"),
72
+ errorMessage: e("validations.state"),
72
73
  isRequired: !0
73
74
  }
74
75
  ),
@@ -77,29 +78,29 @@ const S = e.variant("selfOnboarding", [
77
78
  {
78
79
  name: "zip",
79
80
  isRequired: !0,
80
- label: t("zip"),
81
- errorMessage: t("validations.zip")
81
+ label: e("zip"),
82
+ errorMessage: e("validations.zip")
82
83
  }
83
84
  )
84
85
  ]
85
86
  }
86
87
  ),
87
88
  /* @__PURE__ */ r(
88
- v,
89
+ x,
89
90
  {
90
91
  name: "courtesyWithholding",
91
- label: t("courtesyWithholdingLabel"),
92
+ label: e("courtesyWithholdingLabel"),
92
93
  description: /* @__PURE__ */ o(l, { children: [
93
- t("courtesyWhithholdingDescription"),
94
- /* @__PURE__ */ r(a, { t, i18nKey: "learnMoreCta", components: { learnMore: /* @__PURE__ */ r(i.Link, {}) } })
94
+ e("courtesyWhithholdingDescription"),
95
+ /* @__PURE__ */ r(a, { t: e, i18nKey: "learnMoreCta", components: { learnMore: /* @__PURE__ */ r(i.Link, {}) } })
95
96
  ] })
96
97
  }
97
98
  ),
98
- c && /* @__PURE__ */ r(i.Alert, { label: t("withholdingTitle"), status: "warning", children: /* @__PURE__ */ r(a, { t, i18nKey: "withholdingNote" }) })
99
+ h && /* @__PURE__ */ r(i.Alert, { label: e("withholdingTitle"), status: "warning", children: /* @__PURE__ */ r(a, { t: e, i18nKey: "withholdingNote" }) })
99
100
  ] });
100
101
  };
101
102
  export {
102
- j as HomeAddress,
103
- S as HomeAddressSchema
103
+ q as HomeAddress,
104
+ j as HomeAddressSchema
104
105
  };
105
106
  //# sourceMappingURL=HomeAddress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HomeAddress.js","sources":["../../../../src/components/Employee/Profile/HomeAddress.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport * as v from 'valibot'\nimport { useProfile } from './useProfile'\nimport { STATES_ABBR } from '@/shared/constants'\nimport { CheckboxField, Grid, SelectField, TextInputField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const HomeAddressSchema = v.variant('selfOnboarding', [\n v.object({\n street1: v.pipe(v.string(), v.nonEmpty()),\n street2: v.optional(v.string()),\n city: v.pipe(v.string(), v.nonEmpty()),\n state: v.pipe(v.string(), v.nonEmpty()),\n zip: v.pipe(\n v.string(),\n v.check(zip => /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/.test(zip)),\n ),\n courtesyWithholding: v.boolean(),\n selfOnboarding: v.union([v.literal(false), v.undefined()]),\n }),\n v.object({ selfOnboarding: v.literal(true) }),\n])\n\nexport type HomeAddressInputs = v.InferInput<typeof HomeAddressSchema>\n\nexport const HomeAddress = () => {\n const { t } = useTranslation('Employee.HomeAddress')\n const Components = useComponentContext()\n const { isSelfOnboardingIntended, isAdmin } = useProfile()\n\n const { watch } = useFormContext<HomeAddressInputs>()\n const watchedCourtesyWithholding = watch('courtesyWithholding')\n\n if (isAdmin && isSelfOnboardingIntended) {\n return null\n }\n\n return (\n <>\n <div>\n <Components.Heading as=\"h2\">{t('formTitle')}</Components.Heading>\n <Components.Text>{t('desc')}</Components.Text>\n </div>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <TextInputField\n name=\"street1\"\n label={t('street1')}\n isRequired\n errorMessage={t('validations.street1')}\n />\n <TextInputField name=\"street2\" label={t('street2')} />\n <TextInputField\n name=\"city\"\n isRequired\n label={t('city')}\n errorMessage={t('validations.city')}\n />\n <SelectField\n name=\"state\"\n options={STATES_ABBR.map((stateAbbr: (typeof STATES_ABBR)[number]) => ({\n label: t(`statesHash.${stateAbbr}`, { ns: 'common' }),\n value: stateAbbr,\n }))}\n label={t('state')}\n placeholder={t('statePlaceholder')}\n errorMessage={t('validations.state')}\n isRequired\n />\n <TextInputField\n name=\"zip\"\n isRequired\n label={t('zip')}\n errorMessage={t('validations.zip')}\n />\n </Grid>\n <CheckboxField\n name=\"courtesyWithholding\"\n label={t('courtesyWithholdingLabel')}\n description={\n <>\n {t('courtesyWhithholdingDescription')}\n <Trans t={t} i18nKey=\"learnMoreCta\" components={{ learnMore: <Components.Link /> }} />\n </>\n }\n />\n {watchedCourtesyWithholding && (\n <Components.Alert label={t('withholdingTitle')} status=\"warning\">\n <Trans t={t} i18nKey=\"withholdingNote\" />\n </Components.Alert>\n )}\n </>\n )\n}\n"],"names":["HomeAddressSchema","v","zip","HomeAddress","useTranslation","Components","useComponentContext","isSelfOnboardingIntended","isAdmin","useProfile","watch","useFormContext","watchedCourtesyWithholding","jsxs","Fragment","jsx","Grid","TextInputField","SelectField","STATES_ABBR","stateAbbr","CheckboxField","Trans"],"mappings":"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"}
1
+ {"version":3,"file":"HomeAddress.js","sources":["../../../../src/components/Employee/Profile/HomeAddress.tsx"],"sourcesContent":["import { useFormContext } from 'react-hook-form'\nimport { Trans, useTranslation } from 'react-i18next'\nimport { z } from 'zod'\nimport { useProfile } from './useProfile'\nimport { STATES_ABBR } from '@/shared/constants'\nimport { CheckboxField, Grid, SelectField, TextInputField } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const HomeAddressSchema = z.union([\n // Case 1: selfOnboarding is false or undefined\n z.object({\n street1: z.string().min(1),\n street2: z.string().optional(),\n city: z.string().min(1),\n state: z.string().min(1),\n zip: z.string().refine(zip => /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/.test(zip)),\n courtesyWithholding: z.boolean(),\n selfOnboarding: z.union([z.literal(false), z.undefined()]),\n }),\n // Case 2: selfOnboarding is true\n z.object({\n selfOnboarding: z.literal(true),\n }),\n])\n\nexport type HomeAddressInputs = z.infer<typeof HomeAddressSchema>\n\nexport const HomeAddress = () => {\n const { t } = useTranslation('Employee.HomeAddress')\n const Components = useComponentContext()\n const { isSelfOnboardingIntended, isAdmin } = useProfile()\n\n const { watch } = useFormContext<HomeAddressInputs>()\n const watchedCourtesyWithholding = watch('courtesyWithholding')\n\n if (isAdmin && isSelfOnboardingIntended) {\n return null\n }\n\n return (\n <>\n <div>\n <Components.Heading as=\"h2\">{t('formTitle')}</Components.Heading>\n <Components.Text>{t('desc')}</Components.Text>\n </div>\n <Grid\n gridTemplateColumns={{\n base: '1fr',\n small: ['1fr', '1fr'],\n }}\n gap={20}\n >\n <TextInputField\n name=\"street1\"\n label={t('street1')}\n isRequired\n errorMessage={t('validations.street1')}\n />\n <TextInputField name=\"street2\" label={t('street2')} />\n <TextInputField\n name=\"city\"\n isRequired\n label={t('city')}\n errorMessage={t('validations.city')}\n />\n <SelectField\n name=\"state\"\n options={STATES_ABBR.map((stateAbbr: (typeof STATES_ABBR)[number]) => ({\n label: t(`statesHash.${stateAbbr}`, { ns: 'common' }),\n value: stateAbbr,\n }))}\n label={t('state')}\n placeholder={t('statePlaceholder')}\n errorMessage={t('validations.state')}\n isRequired\n />\n <TextInputField\n name=\"zip\"\n isRequired\n label={t('zip')}\n errorMessage={t('validations.zip')}\n />\n </Grid>\n <CheckboxField\n name=\"courtesyWithholding\"\n label={t('courtesyWithholdingLabel')}\n description={\n <>\n {t('courtesyWhithholdingDescription')}\n <Trans t={t} i18nKey=\"learnMoreCta\" components={{ learnMore: <Components.Link /> }} />\n </>\n }\n />\n {watchedCourtesyWithholding && (\n <Components.Alert label={t('withholdingTitle')} status=\"warning\">\n <Trans t={t} i18nKey=\"withholdingNote\" />\n </Components.Alert>\n )}\n </>\n )\n}\n"],"names":["HomeAddressSchema","z","zip","HomeAddress","t","useTranslation","Components","useComponentContext","isSelfOnboardingIntended","isAdmin","useProfile","watch","useFormContext","watchedCourtesyWithholding","jsxs","Fragment","jsx","Grid","TextInputField","SelectField","STATES_ABBR","stateAbbr","CheckboxField","Trans"],"mappings":"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"}
@@ -1,49 +1,98 @@
1
+ import { z } from 'zod';
1
2
  import { Location } from '@gusto/embedded-api/models/components/location';
2
3
  import { Employee } from '@gusto/embedded-api/models/components/employee';
3
- import * as v from 'valibot';
4
- export declare const NameInputsSchema: v.ObjectSchema<{
5
- readonly firstName: v.SchemaWithPipe<[v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>, v.RegexAction<string, undefined>]>;
6
- readonly middleInitial: v.OptionalSchema<v.StringSchema<undefined>, never>;
7
- readonly lastName: v.SchemaWithPipe<[v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>, v.RegexAction<string, undefined>]>;
8
- }, undefined>;
4
+ export declare const NameInputsSchema: z.ZodObject<{
5
+ firstName: z.ZodString;
6
+ middleInitial: z.ZodOptional<z.ZodString>;
7
+ lastName: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ firstName: string;
10
+ lastName: string;
11
+ middleInitial?: string | undefined;
12
+ }, {
13
+ firstName: string;
14
+ lastName: string;
15
+ middleInitial?: string | undefined;
16
+ }>;
9
17
  export declare function NameInputs(): import("react/jsx-runtime").JSX.Element;
10
- export declare const AdminInputsSchema: v.ObjectSchema<{
11
- readonly workAddress: v.SchemaWithPipe<[v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>]>;
12
- readonly startDate: v.SchemaWithPipe<[v.InstanceSchema<DateConstructor, undefined>, v.TransformAction<Date, string | undefined>]>;
13
- readonly email: v.SchemaWithPipe<[v.StringSchema<undefined>, v.EmailAction<string, undefined>]>;
14
- }, undefined>;
18
+ export declare const AdminInputsSchema: z.ZodObject<{
19
+ workAddress: z.ZodString;
20
+ startDate: z.ZodEffects<z.ZodDate, string | undefined, Date>;
21
+ email: z.ZodString;
22
+ }, "strip", z.ZodTypeAny, {
23
+ email: string;
24
+ workAddress: string;
25
+ startDate?: string | undefined;
26
+ }, {
27
+ email: string;
28
+ workAddress: string;
29
+ startDate: Date;
30
+ }>;
15
31
  interface AdminInputsProps {
16
32
  companyLocations: Location[];
17
33
  }
18
34
  export declare function AdminInputs({ companyLocations }: AdminInputsProps): import("react/jsx-runtime").JSX.Element;
19
- export declare const SocialSecurityNumberSchema: v.ObjectSchema<{
20
- readonly ssn: v.SchemaWithPipe<[v.StringSchema<undefined>, v.TransformAction<string, string>, v.CheckAction<string, undefined>]>;
21
- readonly enableSsn: v.BooleanSchema<undefined>;
22
- }, undefined>;
35
+ export declare const SocialSecurityNumberSchema: z.ZodObject<{
36
+ ssn: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
37
+ enableSsn: z.ZodBoolean;
38
+ }, "strip", z.ZodTypeAny, {
39
+ ssn: string;
40
+ enableSsn: boolean;
41
+ }, {
42
+ ssn: string;
43
+ enableSsn: boolean;
44
+ }>;
23
45
  interface SocialSecurityNumberInputProps {
24
46
  employee?: Employee;
25
47
  onChange?: (updatedValue: string) => void;
26
48
  }
27
49
  export declare function SocialSecurityNumberInput({ employee, onChange }: SocialSecurityNumberInputProps): import("react/jsx-runtime").JSX.Element;
28
- export declare const DateOfBirthSchema: v.ObjectSchema<{
29
- readonly dateOfBirth: v.SchemaWithPipe<[v.InstanceSchema<DateConstructor, undefined>, v.TransformAction<Date, string | undefined>]>;
30
- }, undefined>;
50
+ export declare const DateOfBirthSchema: z.ZodObject<{
51
+ dateOfBirth: z.ZodEffects<z.ZodDate, string | undefined, Date>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ dateOfBirth?: string | undefined;
54
+ }, {
55
+ dateOfBirth: Date;
56
+ }>;
31
57
  export declare function DateOfBirthInput(): import("react/jsx-runtime").JSX.Element;
32
- declare const PersonalDetailsTotalSchema: v.ObjectSchema<{
33
- readonly selfOnboarding: v.BooleanSchema<undefined>;
34
- readonly enableSsn: v.BooleanSchema<undefined>;
35
- readonly dateOfBirth: v.SchemaWithPipe<[v.InstanceSchema<DateConstructor, undefined>, v.TransformAction<Date, string | undefined>]>;
36
- readonly ssn: v.SchemaWithPipe<[v.StringSchema<undefined>, v.TransformAction<string, string>, v.CheckAction<string, undefined>]>;
37
- readonly workAddress: v.SchemaWithPipe<[v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>]>;
38
- readonly startDate: v.SchemaWithPipe<[v.InstanceSchema<DateConstructor, undefined>, v.TransformAction<Date, string | undefined>]>;
39
- readonly email: v.SchemaWithPipe<[v.StringSchema<undefined>, v.EmailAction<string, undefined>]>;
40
- readonly firstName: v.SchemaWithPipe<[v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>, v.RegexAction<string, undefined>]>;
41
- readonly middleInitial: v.OptionalSchema<v.StringSchema<undefined>, never>;
42
- readonly lastName: v.SchemaWithPipe<[v.StringSchema<undefined>, v.NonEmptyAction<string, undefined>, v.RegexAction<string, undefined>]>;
43
- }, undefined>;
58
+ declare const PersonalDetailsTotalSchema: z.ZodObject<{
59
+ firstName: z.ZodString;
60
+ middleInitial: z.ZodOptional<z.ZodString>;
61
+ lastName: z.ZodString;
62
+ workAddress: z.ZodString;
63
+ startDate: z.ZodEffects<z.ZodDate, string | undefined, Date>;
64
+ email: z.ZodString;
65
+ ssn: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
66
+ dateOfBirth: z.ZodEffects<z.ZodDate, string | undefined, Date>;
67
+ } & {
68
+ selfOnboarding: z.ZodBoolean;
69
+ enableSsn: z.ZodBoolean;
70
+ }, "strip", z.ZodTypeAny, {
71
+ email: string;
72
+ ssn: string;
73
+ firstName: string;
74
+ lastName: string;
75
+ workAddress: string;
76
+ enableSsn: boolean;
77
+ selfOnboarding: boolean;
78
+ middleInitial?: string | undefined;
79
+ startDate?: string | undefined;
80
+ dateOfBirth?: string | undefined;
81
+ }, {
82
+ email: string;
83
+ ssn: string;
84
+ firstName: string;
85
+ lastName: string;
86
+ workAddress: string;
87
+ startDate: Date;
88
+ dateOfBirth: Date;
89
+ enableSsn: boolean;
90
+ selfOnboarding: boolean;
91
+ middleInitial?: string | undefined;
92
+ }>;
44
93
  type NullableDatesMapper<Source> = {
45
94
  [Property in keyof Source]: Source[Property] extends Date ? Source[Property] | null : Source[Property];
46
95
  };
47
- export type PersonalDetailsPayload = v.InferOutput<typeof PersonalDetailsTotalSchema>;
48
- export type PersonalDetailsInputs = NullableDatesMapper<v.InferInput<typeof PersonalDetailsTotalSchema>>;
96
+ export type PersonalDetailsPayload = z.infer<typeof PersonalDetailsTotalSchema>;
97
+ export type PersonalDetailsInputs = NullableDatesMapper<z.input<typeof PersonalDetailsTotalSchema>>;
49
98
  export {};
@@ -1,55 +1,52 @@
1
1
  import { jsxs as l, Fragment as d, jsx as a } from "react/jsx-runtime";
2
- import * as e from "valibot";
2
+ import { z as r } from "zod";
3
3
  import { useFormContext as c } from "react-hook-form";
4
- import { useTranslation as o } from "react-i18next";
4
+ import { useTranslation as i } from "react-i18next";
5
5
  import { Grid as b } from "../../Common/Grid/Grid.js";
6
6
  import { removeNonDigits as S, addressInline as g } from "../../../helpers/formattedStrings.js";
7
7
  import { usePlaceholderSSN as h, normalizeSSN as N } from "../../../helpers/ssn.js";
8
- import { SSN_REGEX as D, nameValidation as m } from "../../../helpers/validations.js";
9
- import { TextInputField as i } from "../../Common/Fields/TextInputField/TextInputField.js";
8
+ import { nameValidation as m, SSN_REGEX as D } from "../../../helpers/validations.js";
9
+ import { TextInputField as s } from "../../Common/Fields/TextInputField/TextInputField.js";
10
10
  import { SelectField as I } from "../../Common/Fields/SelectField/SelectField.js";
11
11
  import { DatePickerField as p } from "../../Common/Fields/DatePickerField/DatePickerField.js";
12
- const v = e.object({
12
+ const v = r.object({
13
13
  firstName: m,
14
- middleInitial: e.optional(e.string()),
14
+ middleInitial: r.string().optional(),
15
15
  lastName: m
16
16
  });
17
- function T() {
18
- const { t } = o("Employee.Profile");
17
+ function B() {
18
+ const { t: e } = i("Employee.Profile");
19
19
  return /* @__PURE__ */ l(d, { children: [
20
20
  /* @__PURE__ */ l(b, { gap: { base: 20, small: 8 }, gridTemplateColumns: { base: "1fr", small: ["1fr", 200] }, children: [
21
21
  /* @__PURE__ */ a(
22
- i,
22
+ s,
23
23
  {
24
24
  name: "firstName",
25
25
  isRequired: !0,
26
- label: t("firstName"),
27
- errorMessage: t("validations.firstName")
26
+ label: e("firstName"),
27
+ errorMessage: e("validations.firstName")
28
28
  }
29
29
  ),
30
- /* @__PURE__ */ a(i, { name: "middleInitial", label: t("middleInitial") })
30
+ /* @__PURE__ */ a(s, { name: "middleInitial", label: e("middleInitial") })
31
31
  ] }),
32
32
  /* @__PURE__ */ a(
33
- i,
33
+ s,
34
34
  {
35
35
  name: "lastName",
36
36
  isRequired: !0,
37
- label: t("lastName"),
38
- errorMessage: t("validations.lastName")
37
+ label: e("lastName"),
38
+ errorMessage: e("validations.lastName")
39
39
  }
40
40
  )
41
41
  ] });
42
42
  }
43
- const y = e.object({
44
- workAddress: e.pipe(e.string(), e.nonEmpty()),
45
- startDate: e.pipe(
46
- e.instance(Date),
47
- e.transform((t) => t.toISOString().split("T")[0])
48
- ),
49
- email: e.pipe(e.string(), e.email())
43
+ const O = r.object({
44
+ workAddress: r.string().min(1),
45
+ startDate: r.date().transform((e) => e.toISOString().split("T")[0]),
46
+ email: r.string().email()
50
47
  });
51
- function B({ companyLocations: t }) {
52
- const { t: r } = o("Employee.Profile"), {
48
+ function C({ companyLocations: e }) {
49
+ const { t } = i("Employee.Profile"), {
53
50
  formState: { errors: n }
54
51
  } = c();
55
52
  return /* @__PURE__ */ l(d, { children: [
@@ -57,14 +54,14 @@ function B({ companyLocations: t }) {
57
54
  I,
58
55
  {
59
56
  name: "workAddress",
60
- options: t.map((s) => ({
61
- value: s.uuid,
62
- label: g(s)
57
+ options: e.map((o) => ({
58
+ value: o.uuid,
59
+ label: g(o)
63
60
  })),
64
- label: r("workAddress"),
65
- description: r("workAddressDescription"),
66
- placeholder: r("workAddressPlaceholder"),
67
- errorMessage: r("validations.location", { ns: "common" }),
61
+ label: t("workAddress"),
62
+ description: t("workAddressDescription"),
63
+ placeholder: t("workAddressPlaceholder"),
64
+ errorMessage: t("validations.location", { ns: "common" }),
68
65
  isRequired: !0
69
66
  }
70
67
  ),
@@ -72,82 +69,71 @@ function B({ companyLocations: t }) {
72
69
  p,
73
70
  {
74
71
  name: "startDate",
75
- label: r("startDateLabel"),
76
- description: r("startDateDescription"),
77
- errorMessage: n.startDate?.type === "custom" ? r("validations.startDateOutOfRange") : r("validations.startDate")
72
+ label: t("startDateLabel"),
73
+ description: t("startDateDescription"),
74
+ errorMessage: n.startDate?.type === "custom" ? t("validations.startDateOutOfRange") : t("validations.startDate")
78
75
  }
79
76
  ),
80
77
  /* @__PURE__ */ a(
81
- i,
78
+ s,
82
79
  {
83
80
  name: "email",
84
- label: r("email"),
85
- description: r("emailDescription"),
86
- errorMessage: r("validations.email"),
81
+ label: t("email"),
82
+ description: t("emailDescription"),
83
+ errorMessage: t("validations.email"),
87
84
  isRequired: !0,
88
85
  type: "email"
89
86
  }
90
87
  )
91
88
  ] });
92
89
  }
93
- const O = e.object({
94
- ssn: e.pipe(
95
- e.string(),
96
- e.transform((t) => S(t)),
97
- e.check((t) => D.test(t))
98
- ),
99
- enableSsn: e.boolean()
90
+ const y = r.object({
91
+ ssn: r.string().transform((e) => S(e)).refine((e) => D.test(e)),
92
+ enableSsn: r.boolean()
100
93
  });
101
- function C({ employee: t, onChange: r }) {
102
- const { setValue: n } = c(), { t: s } = o("Employee.Profile"), u = h(t?.hasSsn);
94
+ function L({ employee: e, onChange: t }) {
95
+ const { setValue: n } = c(), { t: o } = i("Employee.Profile"), u = h(e?.hasSsn);
103
96
  return /* @__PURE__ */ a(
104
- i,
97
+ s,
105
98
  {
106
99
  isRequired: !0,
107
100
  name: "ssn",
108
- label: s("ssnLabel"),
109
- errorMessage: s("validations.ssn", { ns: "common" }),
101
+ label: o("ssnLabel"),
102
+ errorMessage: o("validations.ssn", { ns: "common" }),
110
103
  placeholder: u,
111
104
  transform: N,
112
105
  onChange: (f) => {
113
- n("enableSsn", !0), r?.(f);
106
+ n("enableSsn", !0), t?.(f);
114
107
  }
115
108
  }
116
109
  );
117
110
  }
118
- const j = e.object({
119
- dateOfBirth: e.pipe(
120
- e.instance(Date),
121
- e.transform((t) => t.toISOString().split("T")[0])
122
- )
111
+ const A = r.object({
112
+ dateOfBirth: r.date().transform((e) => e.toISOString().split("T")[0])
123
113
  });
124
- function L() {
125
- const { t } = o("Employee.Profile");
114
+ function z() {
115
+ const { t: e } = i("Employee.Profile");
126
116
  return /* @__PURE__ */ a(
127
117
  p,
128
118
  {
129
119
  name: "dateOfBirth",
130
- label: t("dobLabel"),
131
- errorMessage: t("validations.dob", { ns: "common" })
120
+ label: e("dobLabel"),
121
+ errorMessage: e("validations.dob", { ns: "common" })
132
122
  }
133
123
  );
134
124
  }
135
- e.object({
136
- ...v.entries,
137
- ...y.entries,
138
- ...O.entries,
139
- ...j.entries,
140
- selfOnboarding: e.boolean(),
141
- enableSsn: e.boolean()
125
+ v.merge(O).merge(y).merge(A).extend({
126
+ selfOnboarding: r.boolean(),
127
+ enableSsn: r.boolean()
142
128
  });
143
129
  export {
144
- B as AdminInputs,
145
- y as AdminInputsSchema,
146
- L as DateOfBirthInput,
147
- j as DateOfBirthSchema,
148
- T as NameInputs,
130
+ C as AdminInputs,
131
+ O as AdminInputsSchema,
132
+ z as DateOfBirthInput,
133
+ A as DateOfBirthSchema,
134
+ B as NameInputs,
149
135
  v as NameInputsSchema,
150
- C as SocialSecurityNumberInput,
151
- O as SocialSecurityNumberSchema
136
+ L as SocialSecurityNumberInput,
137
+ y as SocialSecurityNumberSchema
152
138
  };
153
139
  //# sourceMappingURL=PersonalDetailsInputs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PersonalDetailsInputs.js","sources":["../../../../src/components/Employee/Profile/PersonalDetailsInputs.tsx"],"sourcesContent":["import * as v from 'valibot'\nimport { useFormContext } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { SelectField, TextInputField, Grid, DatePickerField } from '@/components/Common'\nimport { addressInline, removeNonDigits } from '@/helpers/formattedStrings'\nimport { normalizeSSN, usePlaceholderSSN } from '@/helpers/ssn'\nimport { nameValidation, SSN_REGEX } from '@/helpers/validations'\n\nexport const NameInputsSchema = v.object({\n firstName: nameValidation,\n middleInitial: v.optional(v.string()),\n lastName: nameValidation,\n})\n\nexport function NameInputs() {\n const { t } = useTranslation('Employee.Profile')\n\n return (\n <>\n <Grid gap={{ base: 20, small: 8 }} gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}>\n <TextInputField\n name=\"firstName\"\n isRequired\n label={t('firstName')}\n errorMessage={t('validations.firstName')}\n />\n <TextInputField name=\"middleInitial\" label={t('middleInitial')} />\n </Grid>\n <TextInputField\n name=\"lastName\"\n isRequired\n label={t('lastName')}\n errorMessage={t('validations.lastName')}\n />\n </>\n )\n}\n\nexport const AdminInputsSchema = v.object({\n workAddress: v.pipe(v.string(), v.nonEmpty()),\n startDate: v.pipe(\n v.instance(Date),\n v.transform(date => date.toISOString().split('T')[0]),\n ),\n email: v.pipe(v.string(), v.email()),\n})\n\ntype AdminInputsSchemaType = v.InferInput<typeof AdminInputsSchema>\n\ninterface AdminInputsProps {\n companyLocations: Location[]\n}\n\nexport function AdminInputs({ companyLocations }: AdminInputsProps) {\n const { t } = useTranslation('Employee.Profile')\n const {\n formState: { errors },\n } = useFormContext<AdminInputsSchemaType>()\n\n return (\n <>\n <SelectField\n name=\"workAddress\"\n options={companyLocations.map(location => ({\n value: location.uuid,\n label: addressInline(location),\n }))}\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n errorMessage={t('validations.location', { ns: 'common' })}\n isRequired\n />\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n errorMessage={\n errors.startDate?.type === 'custom'\n ? t('validations.startDateOutOfRange')\n : t('validations.startDate')\n }\n />\n <TextInputField\n name=\"email\"\n label={t('email')}\n description={t('emailDescription')}\n errorMessage={t('validations.email')}\n isRequired\n type=\"email\"\n />\n </>\n )\n}\n\nexport const SocialSecurityNumberSchema = v.object({\n ssn: v.pipe(\n v.string(),\n v.transform(input => removeNonDigits(input)),\n v.check(input => {\n return SSN_REGEX.test(input)\n }),\n ),\n enableSsn: v.boolean(),\n})\n\ntype SocialSecurityNumberSchemaType = v.InferInput<typeof SocialSecurityNumberSchema>\n\ninterface SocialSecurityNumberInputProps {\n employee?: Employee\n onChange?: (updatedValue: string) => void\n}\n\nexport function SocialSecurityNumberInput({ employee, onChange }: SocialSecurityNumberInputProps) {\n const { setValue } = useFormContext<SocialSecurityNumberSchemaType>()\n const { t } = useTranslation('Employee.Profile')\n const placeholderSSN = usePlaceholderSSN(employee?.hasSsn)\n return (\n <TextInputField\n isRequired\n name=\"ssn\"\n label={t('ssnLabel')}\n errorMessage={t('validations.ssn', { ns: 'common' })}\n placeholder={placeholderSSN}\n transform={normalizeSSN}\n onChange={updatedValue => {\n setValue('enableSsn', true)\n onChange?.(updatedValue)\n }}\n />\n )\n}\n\nexport const DateOfBirthSchema = v.object({\n dateOfBirth: v.pipe(\n v.instance(Date),\n v.transform(date => date.toISOString().split('T')[0]),\n ),\n})\n\nexport function DateOfBirthInput() {\n const { t } = useTranslation('Employee.Profile')\n return (\n <DatePickerField\n name=\"dateOfBirth\"\n label={t('dobLabel')}\n errorMessage={t('validations.dob', { ns: 'common' })}\n />\n )\n}\n\n// All possible inputs for PersonalDetails forms\nconst PersonalDetailsTotalSchema = v.object({\n ...NameInputsSchema.entries,\n ...AdminInputsSchema.entries,\n ...SocialSecurityNumberSchema.entries,\n ...DateOfBirthSchema.entries,\n selfOnboarding: v.boolean(),\n enableSsn: v.boolean(),\n})\n\ntype NullableDatesMapper<Source> = {\n [Property in keyof Source]: Source[Property] extends Date\n ? Source[Property] | null\n : Source[Property]\n}\n\nexport type PersonalDetailsPayload = v.InferOutput<typeof PersonalDetailsTotalSchema>\n\n//Typescript magic to mark date fields as nullable for correct defaultvalues\nexport type PersonalDetailsInputs = NullableDatesMapper<\n v.InferInput<typeof PersonalDetailsTotalSchema>\n>\n"],"names":["NameInputsSchema","v","nameValidation","NameInputs","useTranslation","jsxs","Fragment","Grid","jsx","TextInputField","AdminInputsSchema","date","AdminInputs","companyLocations","t","errors","useFormContext","SelectField","location","addressInline","DatePickerField","SocialSecurityNumberSchema","input","removeNonDigits","SSN_REGEX","SocialSecurityNumberInput","employee","onChange","setValue","placeholderSSN","usePlaceholderSSN","normalizeSSN","updatedValue","DateOfBirthSchema","DateOfBirthInput"],"mappings":"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"}
1
+ {"version":3,"file":"PersonalDetailsInputs.js","sources":["../../../../src/components/Employee/Profile/PersonalDetailsInputs.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { useFormContext } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport { type Location } from '@gusto/embedded-api/models/components/location'\nimport { type Employee } from '@gusto/embedded-api/models/components/employee'\nimport { SelectField, TextInputField, Grid, DatePickerField } from '@/components/Common'\nimport { addressInline, removeNonDigits } from '@/helpers/formattedStrings'\nimport { normalizeSSN, usePlaceholderSSN } from '@/helpers/ssn'\nimport { nameValidation, SSN_REGEX } from '@/helpers/validations'\n\nexport const NameInputsSchema = z.object({\n firstName: nameValidation,\n middleInitial: z.string().optional(),\n lastName: nameValidation,\n})\n\nexport function NameInputs() {\n const { t } = useTranslation('Employee.Profile')\n\n return (\n <>\n <Grid gap={{ base: 20, small: 8 }} gridTemplateColumns={{ base: '1fr', small: ['1fr', 200] }}>\n <TextInputField\n name=\"firstName\"\n isRequired\n label={t('firstName')}\n errorMessage={t('validations.firstName')}\n />\n <TextInputField name=\"middleInitial\" label={t('middleInitial')} />\n </Grid>\n <TextInputField\n name=\"lastName\"\n isRequired\n label={t('lastName')}\n errorMessage={t('validations.lastName')}\n />\n </>\n )\n}\n\nexport const AdminInputsSchema = z.object({\n workAddress: z.string().min(1),\n startDate: z.date().transform(date => date.toISOString().split('T')[0]),\n email: z.string().email(),\n})\n\ntype AdminInputsSchemaType = z.infer<typeof AdminInputsSchema>\n\ninterface AdminInputsProps {\n companyLocations: Location[]\n}\n\nexport function AdminInputs({ companyLocations }: AdminInputsProps) {\n const { t } = useTranslation('Employee.Profile')\n const {\n formState: { errors },\n } = useFormContext<AdminInputsSchemaType>()\n\n return (\n <>\n <SelectField\n name=\"workAddress\"\n options={companyLocations.map(location => ({\n value: location.uuid,\n label: addressInline(location),\n }))}\n label={t('workAddress')}\n description={t('workAddressDescription')}\n placeholder={t('workAddressPlaceholder')}\n errorMessage={t('validations.location', { ns: 'common' })}\n isRequired\n />\n <DatePickerField\n name=\"startDate\"\n label={t('startDateLabel')}\n description={t('startDateDescription')}\n errorMessage={\n errors.startDate?.type === 'custom'\n ? t('validations.startDateOutOfRange')\n : t('validations.startDate')\n }\n />\n <TextInputField\n name=\"email\"\n label={t('email')}\n description={t('emailDescription')}\n errorMessage={t('validations.email')}\n isRequired\n type=\"email\"\n />\n </>\n )\n}\n\nexport const SocialSecurityNumberSchema = z.object({\n ssn: z\n .string()\n .transform(input => removeNonDigits(input))\n .refine(input => SSN_REGEX.test(input)),\n enableSsn: z.boolean(),\n})\n\ntype SocialSecurityNumberSchemaType = z.infer<typeof SocialSecurityNumberSchema>\n\ninterface SocialSecurityNumberInputProps {\n employee?: Employee\n onChange?: (updatedValue: string) => void\n}\n\nexport function SocialSecurityNumberInput({ employee, onChange }: SocialSecurityNumberInputProps) {\n const { setValue } = useFormContext<SocialSecurityNumberSchemaType>()\n const { t } = useTranslation('Employee.Profile')\n const placeholderSSN = usePlaceholderSSN(employee?.hasSsn)\n return (\n <TextInputField\n isRequired\n name=\"ssn\"\n label={t('ssnLabel')}\n errorMessage={t('validations.ssn', { ns: 'common' })}\n placeholder={placeholderSSN}\n transform={normalizeSSN}\n onChange={updatedValue => {\n setValue('enableSsn', true)\n onChange?.(updatedValue)\n }}\n />\n )\n}\n\nexport const DateOfBirthSchema = z.object({\n dateOfBirth: z.date().transform(date => date.toISOString().split('T')[0]),\n})\n\nexport function DateOfBirthInput() {\n const { t } = useTranslation('Employee.Profile')\n return (\n <DatePickerField\n name=\"dateOfBirth\"\n label={t('dobLabel')}\n errorMessage={t('validations.dob', { ns: 'common' })}\n />\n )\n}\n\n// All possible inputs for PersonalDetails forms\nconst PersonalDetailsTotalSchema = NameInputsSchema.merge(AdminInputsSchema)\n .merge(SocialSecurityNumberSchema)\n .merge(DateOfBirthSchema)\n .extend({\n selfOnboarding: z.boolean(),\n enableSsn: z.boolean(),\n })\n\ntype NullableDatesMapper<Source> = {\n [Property in keyof Source]: Source[Property] extends Date\n ? Source[Property] | null\n : Source[Property]\n}\n\nexport type PersonalDetailsPayload = z.infer<typeof PersonalDetailsTotalSchema>\n\n//Typescript magic to mark date fields as nullable for correct defaultvalues\nexport type PersonalDetailsInputs = NullableDatesMapper<z.input<typeof PersonalDetailsTotalSchema>>\n"],"names":["NameInputsSchema","z","nameValidation","NameInputs","t","useTranslation","jsxs","Fragment","Grid","jsx","TextInputField","AdminInputsSchema","date","AdminInputs","companyLocations","errors","useFormContext","SelectField","location","addressInline","DatePickerField","SocialSecurityNumberSchema","input","removeNonDigits","SSN_REGEX","SocialSecurityNumberInput","employee","onChange","setValue","placeholderSSN","usePlaceholderSSN","normalizeSSN","updatedValue","DateOfBirthSchema","DateOfBirthInput"],"mappings":"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"}