@gusto/embedded-react-sdk 0.52.0 → 0.52.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 (112) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/components/Base/Base.d.ts +2 -0
  3. package/dist/components/Base/Base.js.map +1 -1
  4. package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +4 -1
  5. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.d.ts +1 -1
  6. package/dist/components/Common/UI/Breadcrumbs/BreadcrumbsTypes.js.map +1 -1
  7. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.d.ts +1 -1
  8. package/dist/components/Common/UI/CheckboxGroup/CheckboxGroupTypes.js.map +1 -1
  9. package/dist/components/Common/UI/ComboBox/ComboBoxTypes.d.ts +2 -2
  10. package/dist/components/Common/UI/DateRangePicker/DateRangePickerTypes.d.ts +3 -2
  11. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.d.ts +1 -1
  12. package/dist/components/Common/UI/DescriptionList/DescriptionListTypes.js.map +1 -1
  13. package/dist/components/Common/UI/Menu/MenuTypes.d.ts +3 -3
  14. package/dist/components/Common/UI/Menu/MenuTypes.js.map +1 -1
  15. package/dist/components/Common/UI/MultiSelectComboBox/MultiSelectComboBoxTypes.d.ts +2 -2
  16. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.d.ts +2 -2
  17. package/dist/components/Common/UI/RadioGroup/RadioGroupTypes.js.map +1 -1
  18. package/dist/components/Common/UI/Select/SelectTypes.d.ts +2 -2
  19. package/dist/components/Common/UI/Table/TableTypes.d.ts +4 -4
  20. package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
  21. package/dist/components/Common/UI/Tabs/TabsTypes.d.ts +2 -2
  22. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +5 -3
  23. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  24. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +5 -3
  25. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  26. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +7 -5
  27. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  28. package/dist/components/Company/BankAccount/BankAccountForm/context.js +5 -3
  29. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  30. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  31. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  32. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +10 -8
  33. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  34. package/dist/components/Company/Industry/Context.js +8 -6
  35. package/dist/components/Company/Industry/Context.js.map +1 -1
  36. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +5 -3
  37. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  38. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +5 -3
  39. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  40. package/dist/components/Company/OnboardingOverview/context.js +5 -3
  41. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  42. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +5 -3
  43. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  44. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +5 -3
  45. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  46. package/dist/components/Contractor/ContractorList/index.d.ts +2 -1
  47. package/dist/components/Contractor/ContractorList/index.js +121 -99
  48. package/dist/components/Contractor/ContractorList/index.js.map +1 -1
  49. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.d.ts +1 -1
  50. package/dist/components/Contractor/OnboardingFlow/OnboardingFlow.js.map +1 -1
  51. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.d.ts +2 -0
  52. package/dist/components/Contractor/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
  53. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js +150 -80
  54. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.js.map +1 -1
  55. package/dist/components/Contractor/OnboardingFlow/onboardingStateMachine.test.d.ts +1 -0
  56. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js +19 -18
  57. package/dist/components/Contractor/Profile/BusinessSelfOnboardingProfile.js.map +1 -1
  58. package/dist/components/Contractor/Profile/ContractorProfile.d.ts +1 -1
  59. package/dist/components/Contractor/Profile/ContractorProfile.js +114 -110
  60. package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
  61. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js +27 -26
  62. package/dist/components/Contractor/Profile/IndividualSelfOnboardingProfile.js.map +1 -1
  63. package/dist/components/Contractor/Submit/Submit.js +106 -63
  64. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  65. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +5 -3
  66. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  67. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.d.ts +2 -2
  68. package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fields.js.map +1 -1
  69. package/dist/components/Payroll/usePreparedPayrollData.js +10 -8
  70. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  71. package/dist/contexts/ComponentAdapter/useComponentContext.d.ts +1 -1
  72. package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
  73. package/dist/contexts/GustoProvider/GustoProvider.d.ts +1 -0
  74. package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
  75. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +1 -0
  76. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  77. package/dist/contexts/ThemeProvider/types.d.ts +2 -2
  78. package/dist/i18n/en/Contractor.ContractorList.json.js +22 -20
  79. package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
  80. package/dist/i18n/en/Contractor.Submit.json.js +11 -11
  81. package/dist/i18n/types.d.ts +7 -3
  82. package/dist/models/WA_RISK_CODES.d.ts +1 -0
  83. package/dist/models/WA_RISK_CODES.js.map +1 -1
  84. package/dist/partner-hook-utils/composeErrorHandler.d.ts +4 -0
  85. package/dist/partner-hook-utils/composeErrorHandler.js.map +1 -1
  86. package/dist/partner-hook-utils/form/SDKFormProvider.d.ts +1 -0
  87. package/dist/partner-hook-utils/form/SDKFormProvider.js.map +1 -1
  88. package/dist/partner-hook-utils/form/composeSubmitHandler.d.ts +4 -0
  89. package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
  90. package/dist/partner-hook-utils/form/fields/CheckboxHookField.d.ts +1 -0
  91. package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
  92. package/dist/partner-hook-utils/form/fields/DatePickerHookField.d.ts +1 -0
  93. package/dist/partner-hook-utils/form/fields/DatePickerHookField.js.map +1 -1
  94. package/dist/partner-hook-utils/form/fields/NumberInputHookField.d.ts +1 -0
  95. package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
  96. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.d.ts +1 -0
  97. package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
  98. package/dist/partner-hook-utils/form/fields/SelectHookField.d.ts +1 -0
  99. package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
  100. package/dist/partner-hook-utils/form/fields/SwitchHookField.d.ts +1 -0
  101. package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
  102. package/dist/partner-hook-utils/form/fields/TextInputHookField.d.ts +1 -0
  103. package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
  104. package/dist/partner-hook-utils/types.d.ts +9 -0
  105. package/dist/shared/constants.d.ts +10 -0
  106. package/dist/shared/constants.js +7 -6
  107. package/dist/shared/constants.js.map +1 -1
  108. package/dist/types/Helpers.d.ts +2 -0
  109. package/dist/types/hooks.d.ts +1 -0
  110. package/dist/types/observability.d.ts +1 -0
  111. package/docs/guides/endpoint-inventory.json +17 -1
  112. package/package.json +11 -11
@@ -6,6 +6,7 @@ import { SDKError } from '../types/sdkError';
6
6
  * {@link composeErrorHandler} reads from an additional query passed as a source.
7
7
  *
8
8
  * @public
9
+ * @childOf {@link composeErrorHandler}
9
10
  */
10
11
  export type QueryWithRefetch = Pick<UseQueryResult, 'error' | 'refetch'>;
11
12
  /**
@@ -17,6 +18,7 @@ export type QueryWithRefetch = Pick<UseQueryResult, 'error' | 'refetch'>;
17
18
  * and can be cleared together with `clearSubmitError`.
18
19
  *
19
20
  * @public
21
+ * @childOf {@link composeErrorHandler}
20
22
  */
21
23
  export type SubmitStateForErrorHandling = {
22
24
  /** The current submit error, or `null` when cleared. */
@@ -30,6 +32,7 @@ export type SubmitStateForErrorHandling = {
30
32
  * an `errorHandling` object.
31
33
  *
32
34
  * @public
35
+ * @childOf {@link composeErrorHandler}
33
36
  */
34
37
  export type MixedErrorSource = QueryWithRefetch | {
35
38
  errorHandling: HookErrorHandling;
@@ -56,6 +59,7 @@ export type MixedErrorSource = QueryWithRefetch | {
56
59
  * @param submitState - Optional screen-level submit state to fold into the result.
57
60
  * @returns A single `HookErrorHandling` covering every source.
58
61
  * @public
62
+ * @group Form composition
59
63
  *
60
64
  * @example
61
65
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"composeErrorHandler.js","sources":["../../src/partner-hook-utils/composeErrorHandler.ts"],"sourcesContent":["import type { UseQueryResult } from '@tanstack/react-query'\nimport { collectErrors } from './collectErrors'\nimport type { HookErrorHandling } from './types'\nimport type { SDKError } from '@/types/sdkError'\n\n/**\n * The subset of a TanStack Query result — its `error` and `refetch` — that\n * {@link composeErrorHandler} reads from an additional query passed as a source.\n *\n * @public\n */\nexport type QueryWithRefetch = Pick<UseQueryResult, 'error' | 'refetch'>\n\n/**\n * Submit-side error state to merge into a composed {@link HookErrorHandling}.\n *\n * @remarks\n * Pass to {@link composeErrorHandler} when a screen has its own submit state outside of\n * any SDK form hook, so submit errors appear in the same error surface as query errors\n * and can be cleared together with `clearSubmitError`.\n *\n * @public\n */\nexport type SubmitStateForErrorHandling = {\n /** The current submit error, or `null` when cleared. */\n submitError: SDKError | null\n /** Sets or clears the submit error. */\n setSubmitError: (error: SDKError | null) => void\n}\n\n/**\n * Accepted input shape for {@link composeErrorHandler}: either a React Query result\n * (anything with `error` and `refetch`) or another SDK hook result that exposes\n * an `errorHandling` object.\n *\n * @public\n */\nexport type MixedErrorSource = QueryWithRefetch | { errorHandling: HookErrorHandling }\n\nfunction isHookResultWithErrorHandling(\n source: MixedErrorSource,\n): source is { errorHandling: HookErrorHandling } {\n return 'errorHandling' in source\n}\n\n/**\n * Merges multiple error sources into a single {@link HookErrorHandling}.\n *\n * @remarks\n * Accepts any mix of `@gusto/embedded-api-v-2026-06-15` React Query results and SDK hook\n * results that already expose an `errorHandling` object (including the value returned by\n * {@link composeSubmitHandler}). Query errors are normalized to `SDKError`, nested hook\n * errors are flattened in, and an optional submit-state argument adds a submit error to\n * the same list.\n *\n * The returned `retryQueries` refetches every failed query and delegates into each nested\n * hook so their retries fire too. `clearSubmitError` clears the optional submit state and\n * delegates into each nested hook.\n *\n * Pairs with {@link composeSubmitHandler} by name only — this composes error state and\n * recovery, not a submit callback.\n *\n * @param sources - Error sources to merge. Each entry is either a React Query result or\n * an object with an `errorHandling` property.\n * @param submitState - Optional screen-level submit state to fold into the result.\n * @returns A single `HookErrorHandling` covering every source.\n * @public\n *\n * @example\n * ```tsx\n * import { composeErrorHandler, useEmployeeDetailsForm } from '@gusto/embedded-react-sdk'\n * import { useEmployeeFormsList } from '@gusto/embedded-api-v-2026-06-15/react-query/employeeFormsList'\n *\n * function EmployeeProfileView({ companyId, employeeId }: { companyId: string; employeeId: string }) {\n * const employeeDetails = useEmployeeDetailsForm({ companyId, employeeId })\n * const formsListQuery = useEmployeeFormsList({ employeeId })\n *\n * const errorHandling = composeErrorHandler([employeeDetails, formsListQuery])\n *\n * if (errorHandling.errors.length > 0) {\n * return (\n * <div role=\"alert\">\n * {errorHandling.errors.map((error, i) => (\n * <p key={i}>{error.message}</p>\n * ))}\n * <button onClick={errorHandling.retryQueries}>Retry</button>\n * </div>\n * )\n * }\n *\n * return null\n * }\n * ```\n */\nexport function composeErrorHandler(\n sources: MixedErrorSource[],\n submitState?: SubmitStateForErrorHandling,\n): HookErrorHandling {\n const queries: QueryWithRefetch[] = []\n const errorHandlingsFromNestedHooks: HookErrorHandling[] = []\n\n for (const source of sources) {\n if (isHookResultWithErrorHandling(source)) {\n errorHandlingsFromNestedHooks.push(source.errorHandling)\n } else {\n queries.push(source)\n }\n }\n\n const nestedErrors = errorHandlingsFromNestedHooks.flatMap(handling => handling.errors)\n\n let errors: SDKError[]\n if (errorHandlingsFromNestedHooks.length === 0) {\n errors = collectErrors(queries, submitState?.submitError ?? null)\n } else {\n const standaloneQueryErrors = collectErrors(queries, null)\n errors = [...nestedErrors, ...standaloneQueryErrors]\n if (submitState?.submitError) {\n errors.push(submitState.submitError)\n }\n }\n\n const retryQueries = () => {\n for (const handling of errorHandlingsFromNestedHooks) {\n handling.retryQueries()\n }\n queries.filter(q => q.error != null).forEach(q => void q.refetch())\n }\n\n const clearSubmitError = () => {\n for (const handling of errorHandlingsFromNestedHooks) {\n handling.clearSubmitError()\n }\n submitState?.setSubmitError(null)\n }\n\n return { errors, retryQueries, clearSubmitError }\n}\n"],"names":["isHookResultWithErrorHandling","source","composeErrorHandler","sources","submitState","queries","errorHandlingsFromNestedHooks","nestedErrors","handling","errors","collectErrors","standaloneQueryErrors","q"],"mappings":";AAuCA,SAASA,EACPC,GACgD;AAChD,SAAO,mBAAmBA;AAC5B;AAmDO,SAASC,EACdC,GACAC,GACmB;AACnB,QAAMC,IAA8B,CAAA,GAC9BC,IAAqD,CAAA;AAE3D,aAAWL,KAAUE;AACnB,IAAIH,EAA8BC,CAAM,IACtCK,EAA8B,KAAKL,EAAO,aAAa,IAEvDI,EAAQ,KAAKJ,CAAM;AAIvB,QAAMM,IAAeD,EAA8B,QAAQ,CAAAE,MAAYA,EAAS,MAAM;AAEtF,MAAIC;AACJ,MAAIH,EAA8B,WAAW;AAC3C,IAAAG,IAASC,EAAcL,GAASD,GAAa,eAAe,IAAI;AAAA,OAC3D;AACL,UAAMO,IAAwBD,EAAcL,GAAS,IAAI;AACzD,IAAAI,IAAS,CAAC,GAAGF,GAAc,GAAGI,CAAqB,GAC/CP,GAAa,eACfK,EAAO,KAAKL,EAAY,WAAW;AAAA,EAEvC;AAgBA,SAAO,EAAE,QAAAK,GAAQ,cAdI,MAAM;AACzB,eAAWD,KAAYF;AACrB,MAAAE,EAAS,aAAA;AAEX,IAAAH,EAAQ,OAAO,CAAAO,MAAKA,EAAE,SAAS,IAAI,EAAE,QAAQ,CAAAA,MAAA;AAAK,MAAKA,EAAE,QAAA;AAAA,KAAS;AAAA,EACpE,GAS+B,kBAPN,MAAM;AAC7B,eAAWJ,KAAYF;AACrB,MAAAE,EAAS,iBAAA;AAEX,IAAAJ,GAAa,eAAe,IAAI;AAAA,EAClC,EAE+B;AACjC;"}
1
+ {"version":3,"file":"composeErrorHandler.js","sources":["../../src/partner-hook-utils/composeErrorHandler.ts"],"sourcesContent":["import type { UseQueryResult } from '@tanstack/react-query'\nimport { collectErrors } from './collectErrors'\nimport type { HookErrorHandling } from './types'\nimport type { SDKError } from '@/types/sdkError'\n\n/**\n * The subset of a TanStack Query result — its `error` and `refetch` — that\n * {@link composeErrorHandler} reads from an additional query passed as a source.\n *\n * @public\n * @childOf {@link composeErrorHandler}\n */\nexport type QueryWithRefetch = Pick<UseQueryResult, 'error' | 'refetch'>\n\n/**\n * Submit-side error state to merge into a composed {@link HookErrorHandling}.\n *\n * @remarks\n * Pass to {@link composeErrorHandler} when a screen has its own submit state outside of\n * any SDK form hook, so submit errors appear in the same error surface as query errors\n * and can be cleared together with `clearSubmitError`.\n *\n * @public\n * @childOf {@link composeErrorHandler}\n */\nexport type SubmitStateForErrorHandling = {\n /** The current submit error, or `null` when cleared. */\n submitError: SDKError | null\n /** Sets or clears the submit error. */\n setSubmitError: (error: SDKError | null) => void\n}\n\n/**\n * Accepted input shape for {@link composeErrorHandler}: either a React Query result\n * (anything with `error` and `refetch`) or another SDK hook result that exposes\n * an `errorHandling` object.\n *\n * @public\n * @childOf {@link composeErrorHandler}\n */\nexport type MixedErrorSource = QueryWithRefetch | { errorHandling: HookErrorHandling }\n\nfunction isHookResultWithErrorHandling(\n source: MixedErrorSource,\n): source is { errorHandling: HookErrorHandling } {\n return 'errorHandling' in source\n}\n\n/**\n * Merges multiple error sources into a single {@link HookErrorHandling}.\n *\n * @remarks\n * Accepts any mix of `@gusto/embedded-api-v-2026-06-15` React Query results and SDK hook\n * results that already expose an `errorHandling` object (including the value returned by\n * {@link composeSubmitHandler}). Query errors are normalized to `SDKError`, nested hook\n * errors are flattened in, and an optional submit-state argument adds a submit error to\n * the same list.\n *\n * The returned `retryQueries` refetches every failed query and delegates into each nested\n * hook so their retries fire too. `clearSubmitError` clears the optional submit state and\n * delegates into each nested hook.\n *\n * Pairs with {@link composeSubmitHandler} by name only — this composes error state and\n * recovery, not a submit callback.\n *\n * @param sources - Error sources to merge. Each entry is either a React Query result or\n * an object with an `errorHandling` property.\n * @param submitState - Optional screen-level submit state to fold into the result.\n * @returns A single `HookErrorHandling` covering every source.\n * @public\n * @group Form composition\n *\n * @example\n * ```tsx\n * import { composeErrorHandler, useEmployeeDetailsForm } from '@gusto/embedded-react-sdk'\n * import { useEmployeeFormsList } from '@gusto/embedded-api-v-2026-06-15/react-query/employeeFormsList'\n *\n * function EmployeeProfileView({ companyId, employeeId }: { companyId: string; employeeId: string }) {\n * const employeeDetails = useEmployeeDetailsForm({ companyId, employeeId })\n * const formsListQuery = useEmployeeFormsList({ employeeId })\n *\n * const errorHandling = composeErrorHandler([employeeDetails, formsListQuery])\n *\n * if (errorHandling.errors.length > 0) {\n * return (\n * <div role=\"alert\">\n * {errorHandling.errors.map((error, i) => (\n * <p key={i}>{error.message}</p>\n * ))}\n * <button onClick={errorHandling.retryQueries}>Retry</button>\n * </div>\n * )\n * }\n *\n * return null\n * }\n * ```\n */\nexport function composeErrorHandler(\n sources: MixedErrorSource[],\n submitState?: SubmitStateForErrorHandling,\n): HookErrorHandling {\n const queries: QueryWithRefetch[] = []\n const errorHandlingsFromNestedHooks: HookErrorHandling[] = []\n\n for (const source of sources) {\n if (isHookResultWithErrorHandling(source)) {\n errorHandlingsFromNestedHooks.push(source.errorHandling)\n } else {\n queries.push(source)\n }\n }\n\n const nestedErrors = errorHandlingsFromNestedHooks.flatMap(handling => handling.errors)\n\n let errors: SDKError[]\n if (errorHandlingsFromNestedHooks.length === 0) {\n errors = collectErrors(queries, submitState?.submitError ?? null)\n } else {\n const standaloneQueryErrors = collectErrors(queries, null)\n errors = [...nestedErrors, ...standaloneQueryErrors]\n if (submitState?.submitError) {\n errors.push(submitState.submitError)\n }\n }\n\n const retryQueries = () => {\n for (const handling of errorHandlingsFromNestedHooks) {\n handling.retryQueries()\n }\n queries.filter(q => q.error != null).forEach(q => void q.refetch())\n }\n\n const clearSubmitError = () => {\n for (const handling of errorHandlingsFromNestedHooks) {\n handling.clearSubmitError()\n }\n submitState?.setSubmitError(null)\n }\n\n return { errors, retryQueries, clearSubmitError }\n}\n"],"names":["isHookResultWithErrorHandling","source","composeErrorHandler","sources","submitState","queries","errorHandlingsFromNestedHooks","nestedErrors","handling","errors","collectErrors","standaloneQueryErrors","q"],"mappings":";AA0CA,SAASA,EACPC,GACgD;AAChD,SAAO,mBAAmBA;AAC5B;AAoDO,SAASC,EACdC,GACAC,GACmB;AACnB,QAAMC,IAA8B,CAAA,GAC9BC,IAAqD,CAAA;AAE3D,aAAWL,KAAUE;AACnB,IAAIH,EAA8BC,CAAM,IACtCK,EAA8B,KAAKL,EAAO,aAAa,IAEvDI,EAAQ,KAAKJ,CAAM;AAIvB,QAAMM,IAAeD,EAA8B,QAAQ,CAAAE,MAAYA,EAAS,MAAM;AAEtF,MAAIC;AACJ,MAAIH,EAA8B,WAAW;AAC3C,IAAAG,IAASC,EAAcL,GAASD,GAAa,eAAe,IAAI;AAAA,OAC3D;AACL,UAAMO,IAAwBD,EAAcL,GAAS,IAAI;AACzD,IAAAI,IAAS,CAAC,GAAGF,GAAc,GAAGI,CAAqB,GAC/CP,GAAa,eACfK,EAAO,KAAKL,EAAY,WAAW;AAAA,EAEvC;AAgBA,SAAO,EAAE,QAAAK,GAAQ,cAdI,MAAM;AACzB,eAAWD,KAAYF;AACrB,MAAAE,EAAS,aAAA;AAEX,IAAAH,EAAQ,OAAO,CAAAO,MAAKA,EAAE,SAAS,IAAI,EAAE,QAAQ,CAAAA,MAAA;AAAK,MAAKA,EAAE,QAAA;AAAA,KAAS;AAAA,EACpE,GAS+B,kBAPN,MAAM;AAC7B,eAAWJ,KAAYF;AACrB,MAAAE,EAAS,iBAAA;AAEX,IAAAJ,GAAa,eAAe,IAAI;AAAA,EAClC,EAE+B;AACjC;"}
@@ -31,6 +31,7 @@ export interface SDKFormProviderProps<TFormData extends FieldValues = FieldValue
31
31
  * Server-side field errors are automatically synced onto their corresponding fields.
32
32
  *
33
33
  * @public
34
+ * @group Providers
34
35
  *
35
36
  * @example
36
37
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"SDKFormProvider.js","sources":["../../../src/partner-hook-utils/form/SDKFormProvider.tsx"],"sourcesContent":["import { type ReactNode, useEffect } from 'react'\nimport type { FieldPath, FieldValues } from 'react-hook-form'\nimport { FormProvider } from 'react-hook-form'\nimport type { FieldMetadata, FieldMetadataWithOptions, HookFormInternals } from '../types'\nimport { FormFieldsMetadataProvider } from './FormFieldsMetadataProvider'\nimport { FieldElementRegistryProvider } from '@/components/Common/Fields/hooks/FieldElementRegistryProvider'\nimport type { FieldElementRegistry } from '@/components/Common/Fields/hooks/fieldElementRegistry'\nimport { normalizeErrorKeyForForm } from '@/helpers/formattedStrings'\nimport type { SDKError, SDKFieldError } from '@/types/sdkError'\n\nfunction useSyncFieldErrors<\n TFormData extends FieldValues,\n TFieldsMetadata extends {\n [K in keyof TFieldsMetadata]: FieldMetadata | FieldMetadataWithOptions\n },\n>(\n fieldErrors: SDKFieldError[],\n form: {\n fieldsMetadata: TFieldsMetadata\n hookFormInternals: HookFormInternals<TFormData>\n },\n) {\n const { fieldsMetadata } = form\n const { setError } = form.hookFormInternals.formMethods\n\n useEffect(() => {\n if (!fieldErrors.length) return\n const knownFields = new Set(Object.keys(fieldsMetadata))\n for (const fieldError of fieldErrors) {\n const normalizedField = normalizeErrorKeyForForm(fieldError.field)\n if (knownFields.has(normalizedField)) {\n setError(normalizedField as FieldPath<TFormData>, {\n type: 'custom',\n message: fieldError.message,\n })\n }\n }\n }, [fieldErrors, setError, fieldsMetadata])\n}\n\n/**\n * Props for {@link SDKFormProvider}.\n *\n * @typeParam TFormData - Shape of the form values managed by the wrapped form hook.\n * @typeParam TFieldsMetadata - The form hook's field-metadata map.\n * @public\n */\nexport interface SDKFormProviderProps<\n TFormData extends FieldValues = FieldValues,\n TFieldsMetadata extends {\n [K in keyof TFieldsMetadata]: FieldMetadata | FieldMetadataWithOptions\n } = Record<string, FieldMetadata | FieldMetadataWithOptions>,\n> {\n /** The form hook result whose fields, metadata, and errors are shared with descendant field components. */\n formHookResult: {\n errorHandling: { errors: SDKError[] }\n form: {\n fieldsMetadata: TFieldsMetadata\n hookFormInternals: HookFormInternals<TFormData>\n }\n }\n /** Field components (or any content) that consume the provided form context. */\n children: ReactNode\n}\n\n/**\n * Provides form context to field components so they can read metadata, control,\n * and error state without an explicit `formHookResult` prop on each field.\n * Server-side field errors are automatically synced onto their corresponding fields.\n *\n * @public\n *\n * @example\n * ```tsx\n * const formHookResult = useEmployeeDetailsForm({ employeeId })\n * const { Fields } = formHookResult.form\n *\n * // SDKFormProvider supplies context only — wire up submission and render the\n * // <form> element yourself.\n * const handleSubmit = () =>\n * formHookResult.actions.onSubmit({ onEmployeeUpdated: (emp) => { ... } })\n *\n * return (\n * <SDKFormProvider formHookResult={formHookResult}>\n * <form onSubmit={handleSubmit}>\n * <Fields.FirstName label=\"First name\" />\n * <Fields.LastName label=\"Last name\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * ```\n */\nexport function SDKFormProvider<\n TFormData extends FieldValues = FieldValues,\n TFieldsMetadata extends {\n [K in keyof TFieldsMetadata]: FieldMetadata | FieldMetadataWithOptions\n } = Record<string, FieldMetadata | FieldMetadataWithOptions>,\n>({ formHookResult, children }: SDKFormProviderProps<TFormData, TFieldsMetadata>) {\n const { errorHandling, form } = formHookResult\n const allFieldErrors = errorHandling.errors.flatMap(e => e.fieldErrors)\n useSyncFieldErrors(allFieldErrors, form)\n\n return (\n <FormFieldsMetadataProvider metadata={form.fieldsMetadata} errors={errorHandling.errors}>\n <FieldElementRegistryProvider\n registry={form.hookFormInternals._fieldElementRegistry as FieldElementRegistry | undefined}\n >\n <FormProvider {...form.hookFormInternals.formMethods}>{children}</FormProvider>\n </FieldElementRegistryProvider>\n </FormFieldsMetadataProvider>\n )\n}\n"],"names":["useSyncFieldErrors","fieldErrors","form","fieldsMetadata","setError","useEffect","knownFields","fieldError","normalizedField","normalizeErrorKeyForForm","SDKFormProvider","formHookResult","children","errorHandling","allFieldErrors","e","FormFieldsMetadataProvider","jsx","FieldElementRegistryProvider","FormProvider"],"mappings":";;;;;;AAUA,SAASA,EAMPC,GACAC,GAIA;AACA,QAAM,EAAE,gBAAAC,MAAmBD,GACrB,EAAE,UAAAE,EAAA,IAAaF,EAAK,kBAAkB;AAE5C,EAAAG,EAAU,MAAM;AACd,QAAI,CAACJ,EAAY,OAAQ;AACzB,UAAMK,IAAc,IAAI,IAAI,OAAO,KAAKH,CAAc,CAAC;AACvD,eAAWI,KAAcN,GAAa;AACpC,YAAMO,IAAkBC,EAAyBF,EAAW,KAAK;AACjE,MAAID,EAAY,IAAIE,CAAe,KACjCJ,EAASI,GAAyC;AAAA,QAChD,MAAM;AAAA,QACN,SAASD,EAAW;AAAA,MAAA,CACrB;AAAA,IAEL;AAAA,EACF,GAAG,CAACN,GAAaG,GAAUD,CAAc,CAAC;AAC5C;AAuDO,SAASO,EAKd,EAAE,gBAAAC,GAAgB,UAAAC,KAA8D;AAChF,QAAM,EAAE,eAAAC,GAAe,MAAAX,EAAA,IAASS,GAC1BG,IAAiBD,EAAc,OAAO,QAAQ,CAAAE,MAAKA,EAAE,WAAW;AACtE,SAAAf,EAAmBc,GAAgBZ,CAAI,qBAGpCc,GAAA,EAA2B,UAAUd,EAAK,gBAAgB,QAAQW,EAAc,QAC/E,UAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,UAAUhB,EAAK,kBAAkB;AAAA,MAEjC,4BAACiB,GAAA,EAAc,GAAGjB,EAAK,kBAAkB,aAAc,UAAAU,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA,GAEpE;AAEJ;"}
1
+ {"version":3,"file":"SDKFormProvider.js","sources":["../../../src/partner-hook-utils/form/SDKFormProvider.tsx"],"sourcesContent":["import { type ReactNode, useEffect } from 'react'\nimport type { FieldPath, FieldValues } from 'react-hook-form'\nimport { FormProvider } from 'react-hook-form'\nimport type { FieldMetadata, FieldMetadataWithOptions, HookFormInternals } from '../types'\nimport { FormFieldsMetadataProvider } from './FormFieldsMetadataProvider'\nimport { FieldElementRegistryProvider } from '@/components/Common/Fields/hooks/FieldElementRegistryProvider'\nimport type { FieldElementRegistry } from '@/components/Common/Fields/hooks/fieldElementRegistry'\nimport { normalizeErrorKeyForForm } from '@/helpers/formattedStrings'\nimport type { SDKError, SDKFieldError } from '@/types/sdkError'\n\nfunction useSyncFieldErrors<\n TFormData extends FieldValues,\n TFieldsMetadata extends {\n [K in keyof TFieldsMetadata]: FieldMetadata | FieldMetadataWithOptions\n },\n>(\n fieldErrors: SDKFieldError[],\n form: {\n fieldsMetadata: TFieldsMetadata\n hookFormInternals: HookFormInternals<TFormData>\n },\n) {\n const { fieldsMetadata } = form\n const { setError } = form.hookFormInternals.formMethods\n\n useEffect(() => {\n if (!fieldErrors.length) return\n const knownFields = new Set(Object.keys(fieldsMetadata))\n for (const fieldError of fieldErrors) {\n const normalizedField = normalizeErrorKeyForForm(fieldError.field)\n if (knownFields.has(normalizedField)) {\n setError(normalizedField as FieldPath<TFormData>, {\n type: 'custom',\n message: fieldError.message,\n })\n }\n }\n }, [fieldErrors, setError, fieldsMetadata])\n}\n\n/**\n * Props for {@link SDKFormProvider}.\n *\n * @typeParam TFormData - Shape of the form values managed by the wrapped form hook.\n * @typeParam TFieldsMetadata - The form hook's field-metadata map.\n * @public\n */\nexport interface SDKFormProviderProps<\n TFormData extends FieldValues = FieldValues,\n TFieldsMetadata extends {\n [K in keyof TFieldsMetadata]: FieldMetadata | FieldMetadataWithOptions\n } = Record<string, FieldMetadata | FieldMetadataWithOptions>,\n> {\n /** The form hook result whose fields, metadata, and errors are shared with descendant field components. */\n formHookResult: {\n errorHandling: { errors: SDKError[] }\n form: {\n fieldsMetadata: TFieldsMetadata\n hookFormInternals: HookFormInternals<TFormData>\n }\n }\n /** Field components (or any content) that consume the provided form context. */\n children: ReactNode\n}\n\n/**\n * Provides form context to field components so they can read metadata, control,\n * and error state without an explicit `formHookResult` prop on each field.\n * Server-side field errors are automatically synced onto their corresponding fields.\n *\n * @public\n * @group Providers\n *\n * @example\n * ```tsx\n * const formHookResult = useEmployeeDetailsForm({ employeeId })\n * const { Fields } = formHookResult.form\n *\n * // SDKFormProvider supplies context only — wire up submission and render the\n * // <form> element yourself.\n * const handleSubmit = () =>\n * formHookResult.actions.onSubmit({ onEmployeeUpdated: (emp) => { ... } })\n *\n * return (\n * <SDKFormProvider formHookResult={formHookResult}>\n * <form onSubmit={handleSubmit}>\n * <Fields.FirstName label=\"First name\" />\n * <Fields.LastName label=\"Last name\" />\n * <button type=\"submit\">Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * ```\n */\nexport function SDKFormProvider<\n TFormData extends FieldValues = FieldValues,\n TFieldsMetadata extends {\n [K in keyof TFieldsMetadata]: FieldMetadata | FieldMetadataWithOptions\n } = Record<string, FieldMetadata | FieldMetadataWithOptions>,\n>({ formHookResult, children }: SDKFormProviderProps<TFormData, TFieldsMetadata>) {\n const { errorHandling, form } = formHookResult\n const allFieldErrors = errorHandling.errors.flatMap(e => e.fieldErrors)\n useSyncFieldErrors(allFieldErrors, form)\n\n return (\n <FormFieldsMetadataProvider metadata={form.fieldsMetadata} errors={errorHandling.errors}>\n <FieldElementRegistryProvider\n registry={form.hookFormInternals._fieldElementRegistry as FieldElementRegistry | undefined}\n >\n <FormProvider {...form.hookFormInternals.formMethods}>{children}</FormProvider>\n </FieldElementRegistryProvider>\n </FormFieldsMetadataProvider>\n )\n}\n"],"names":["useSyncFieldErrors","fieldErrors","form","fieldsMetadata","setError","useEffect","knownFields","fieldError","normalizedField","normalizeErrorKeyForForm","SDKFormProvider","formHookResult","children","errorHandling","allFieldErrors","e","FormFieldsMetadataProvider","jsx","FieldElementRegistryProvider","FormProvider"],"mappings":";;;;;;AAUA,SAASA,EAMPC,GACAC,GAIA;AACA,QAAM,EAAE,gBAAAC,MAAmBD,GACrB,EAAE,UAAAE,EAAA,IAAaF,EAAK,kBAAkB;AAE5C,EAAAG,EAAU,MAAM;AACd,QAAI,CAACJ,EAAY,OAAQ;AACzB,UAAMK,IAAc,IAAI,IAAI,OAAO,KAAKH,CAAc,CAAC;AACvD,eAAWI,KAAcN,GAAa;AACpC,YAAMO,IAAkBC,EAAyBF,EAAW,KAAK;AACjE,MAAID,EAAY,IAAIE,CAAe,KACjCJ,EAASI,GAAyC;AAAA,QAChD,MAAM;AAAA,QACN,SAASD,EAAW;AAAA,MAAA,CACrB;AAAA,IAEL;AAAA,EACF,GAAG,CAACN,GAAaG,GAAUD,CAAc,CAAC;AAC5C;AAwDO,SAASO,EAKd,EAAE,gBAAAC,GAAgB,UAAAC,KAA8D;AAChF,QAAM,EAAE,eAAAC,GAAe,MAAAX,EAAA,IAASS,GAC1BG,IAAiBD,EAAc,OAAO,QAAQ,CAAAE,MAAKA,EAAE,WAAW;AACtE,SAAAf,EAAmBc,GAAgBZ,CAAI,qBAGpCc,GAAA,EAA2B,UAAUd,EAAK,gBAAgB,QAAQW,EAAc,QAC/E,UAAA,gBAAAI;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,UAAUhB,EAAK,kBAAkB;AAAA,MAEjC,4BAACiB,GAAA,EAAc,GAAGjB,EAAK,kBAAkB,aAAc,UAAAU,EAAA,CAAS;AAAA,IAAA;AAAA,EAAA,GAEpE;AAEJ;"}
@@ -12,6 +12,7 @@ import { HookErrorHandling, HookFormInternals } from '../types';
12
12
  * the form's generic.
13
13
  *
14
14
  * @public
15
+ * @childOf {@link composeSubmitHandler}
15
16
  */
16
17
  export interface ComposableFormHookResult {
17
18
  /** The form surface: the react-hook-form internals used to validate and focus fields. */
@@ -40,6 +41,7 @@ export interface ComposableFormHookResult {
40
41
  *
41
42
  * @typeParam T - The shape of the form values when a raw `UseFormReturn` is passed.
42
43
  * @public
44
+ * @childOf {@link composeSubmitHandler}
43
45
  */
44
46
  export type ComposeSubmitInput<T extends FieldValues = FieldValues> = ComposableFormHookResult | UseFormReturn<T>;
45
47
  /**
@@ -47,6 +49,7 @@ export type ComposeSubmitInput<T extends FieldValues = FieldValues> = Composable
47
49
  * coordinates validation across the composed forms, and aggregated error state.
48
50
  *
49
51
  * @public
52
+ * @childOf {@link composeSubmitHandler}
50
53
  */
51
54
  export interface ComposeSubmitHandlerResult {
52
55
  /** Submit handler to pass to a form's `onSubmit`. Validates all composed forms before calling `onAllValid`. */
@@ -79,6 +82,7 @@ export interface ComposeSubmitHandlerResult {
79
82
  * @param onAllValid - Async callback invoked once every form has passed validation.
80
83
  * @returns A {@link ComposeSubmitHandlerResult} with a unified `handleSubmit` and aggregated `errorHandling`.
81
84
  * @public
85
+ * @group Form composition
82
86
  *
83
87
  * @example
84
88
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"composeSubmitHandler.js","sources":["../../../src/partner-hook-utils/form/composeSubmitHandler.ts"],"sourcesContent":["import type { SyntheticEvent } from 'react'\nimport type { FieldValues, UseFormReturn } from 'react-hook-form'\nimport { composeErrorHandler } from '../composeErrorHandler'\nimport type { HookErrorHandling, HookFormInternals } from '../types'\nimport type { FieldElementRegistry } from '@/components/Common/Fields/hooks/fieldElementRegistry'\n\n/**\n * Minimal shape required for a form hook result to participate in `composeSubmitHandler`.\n * Any hook returning `BaseFormHookReady` satisfies this interface.\n *\n * `formMethods` is declared with method-call syntax (rather than reused from\n * `HookFormInternals`) so TypeScript applies bivariant parameter checking,\n * allowing hooks with specific form data generics to be passed without casts.\n * `_fieldElementRegistry` is reused directly since its type doesn't depend on\n * the form's generic.\n *\n * @public\n */\nexport interface ComposableFormHookResult {\n /** The form surface: the react-hook-form internals used to validate and focus fields. */\n form: {\n hookFormInternals: Pick<HookFormInternals, '_fieldElementRegistry'> & {\n formMethods: {\n handleSubmit(\n onValid: () => void,\n onInvalid?: (errors: Record<string, unknown>) => void,\n ): () => Promise<void>\n setFocus(name: string): void\n formState: { errors: Record<string, unknown> }\n }\n }\n }\n /** The error-handling surface aggregated across the composed forms. */\n errorHandling: HookErrorHandling\n}\n\n/**\n * Accepted input for a single slot of `composeSubmitHandler`'s `forms` array.\n *\n * @remarks\n * - SDK form hook results (anything matching `ComposableFormHookResult`) are composed directly.\n * - A raw `react-hook-form` `UseFormReturn<T>` is supported for screen-local auxiliary forms\n * that don't warrant a dedicated SDK hook. Raw forms contribute validation/focus behavior\n * but no `errorHandling` (fields surface their own inline errors via react-hook-form).\n *\n * @typeParam T - The shape of the form values when a raw `UseFormReturn` is passed.\n * @public\n */\nexport type ComposeSubmitInput<T extends FieldValues = FieldValues> =\n ComposableFormHookResult | UseFormReturn<T>\n\ninterface FormValidationResult {\n input: ComposeSubmitInput\n formMethods: FormMethods\n valid: boolean\n errors: Record<string, unknown>\n}\n\n/**\n * Result returned by {@link composeSubmitHandler}: a single submit handler that\n * coordinates validation across the composed forms, and aggregated error state.\n *\n * @public\n */\nexport interface ComposeSubmitHandlerResult {\n /** Submit handler to pass to a form's `onSubmit`. Validates all composed forms before calling `onAllValid`. */\n handleSubmit: (e: SyntheticEvent) => Promise<void>\n /** Aggregated error state across all composed SDK form hooks. Pass to {@link composeErrorHandler} for screen-level error surfaces. */\n errorHandling: HookErrorHandling\n}\n\ntype FormMethods = ComposableFormHookResult['form']['hookFormInternals']['formMethods']\n\nfunction isRawUseForm<T extends FieldValues>(\n input: ComposeSubmitInput<T>,\n): input is UseFormReturn<T> {\n return 'handleSubmit' in input && typeof input.handleSubmit === 'function'\n}\n\nfunction extractFormMethods<T extends FieldValues>(input: ComposeSubmitInput<T>): FormMethods {\n if (isRawUseForm(input)) return input as unknown as FormMethods\n return input.form.hookFormInternals.formMethods\n}\n\n/**\n * Picks the visually first invalid field across all composed forms using live\n * `getBoundingClientRect()` positions, then focuses its DOM element. Falls back\n * to array-order (first form's first error) when no element can be resolved —\n * raw `UseFormReturn` inputs have no registry, and forms rendered without\n * `SDKFormProvider` or a HookField wrapper won't have their fields registered\n * either, so we let react-hook-form's `setFocus` attempt it instead.\n *\n * Consumes `results` (captured from each form's `onInvalid` callback) rather\n * than reading `formState.errors` — the latter is a proxy that returns `{}`\n * when accessed outside a component subscription.\n */\nfunction focusFirstInvalidAcrossForms(results: FormValidationResult[]): void {\n type Candidate = {\n formMethods: FormMethods\n name: string\n element: HTMLElement\n }\n const candidates: Candidate[] = []\n for (const { input, formMethods, errors } of results) {\n if (isRawUseForm(input)) continue\n const registry = input.form.hookFormInternals._fieldElementRegistry as\n FieldElementRegistry | undefined\n if (!registry) continue\n for (const name of Object.keys(errors)) {\n const element = registry.get(name)\n if (element) {\n candidates.push({ formMethods, name, element })\n }\n }\n }\n\n if (candidates.length > 0) {\n candidates.sort((a, b) => {\n const ar = a.element.getBoundingClientRect()\n const br = b.element.getBoundingClientRect()\n return ar.top - br.top || ar.left - br.left\n })\n const winner = candidates[0]!\n // Focus the DOM element directly. Bypasses react-hook-form's `setFocus`,\n // which depends on `_fields[name]._f.ref` and isn't reliably populated\n // when fields are rendered through libraries like react-aria-components.\n winner.element.focus()\n return\n }\n\n for (const { formMethods, errors } of results) {\n const firstErrorField = Object.keys(errors)[0]\n if (firstErrorField) {\n formMethods.setFocus(firstErrorField)\n return\n }\n }\n}\n\n/**\n * Coordinates validation and submission across multiple form hooks on the same page.\n *\n * @remarks\n * Validates all forms simultaneously via `handleSubmit()`, then focuses the visually first\n * invalid field across all forms (sorted by `getBoundingClientRect()`). Only calls\n * `onAllValid` when every form passes.\n *\n * Uses `handleSubmit` rather than `trigger` so that react-hook-form sets\n * `formState.isSubmitted = true`, which enables `reValidateMode` (default: `onChange`).\n * Without this, errors set by manual `trigger()` calls would never clear as the user types.\n *\n * Each hook passed to `forms` should be initialized with `shouldFocusError: false` so that\n * react-hook-form's built-in per-form focus is disabled and `composeSubmitHandler` can manage\n * cross-form focus instead.\n *\n * The returned `errorHandling` is the same shape every SDK hook returns, so the whole result\n * can be passed back into {@link composeErrorHandler} when you need to add extra\n * `@gusto/embedded-api-v-2026-06-15` queries or screen-level submit state.\n *\n * @typeParam TForms - Tuple of form value shapes, one per slot of `forms`.\n * @param forms - Form hook results and/or raw `UseFormReturn` instances to coordinate.\n * @param onAllValid - Async callback invoked once every form has passed validation.\n * @returns A {@link ComposeSubmitHandlerResult} with a unified `handleSubmit` and aggregated `errorHandling`.\n * @public\n *\n * @example\n * ```tsx\n * const detailsForm = useEmployeeDetailsForm({ employeeId, shouldFocusError: false })\n * const addressForm = useHomeAddressForm({ employeeId, shouldFocusError: false })\n *\n * const { handleSubmit, errorHandling } = composeSubmitHandler(\n * [detailsForm, addressForm],\n * async () => {\n * await detailsForm.actions.onSubmit()\n * await addressForm.actions.onSubmit()\n * },\n * )\n *\n * return <form onSubmit={handleSubmit}>...</form>\n * ```\n */\nexport function composeSubmitHandler<TForms extends readonly FieldValues[]>(\n forms: readonly [...{ [K in keyof TForms]: ComposeSubmitInput<TForms[K]> }],\n onAllValid: () => Promise<void>,\n): ComposeSubmitHandlerResult {\n const errorSources = forms.filter((form): form is ComposableFormHookResult => !isRawUseForm(form))\n\n const handleSubmit = async (e: SyntheticEvent) => {\n e.preventDefault()\n\n const validationResults = await Promise.all(\n forms.map(\n input =>\n new Promise<FormValidationResult>(resolve => {\n const formMethods = extractFormMethods(input)\n void formMethods.handleSubmit(\n () => {\n resolve({ input, formMethods, valid: true, errors: {} })\n },\n errors => {\n resolve({ input, formMethods, valid: false, errors })\n },\n )()\n }),\n ),\n )\n\n const allValid = validationResults.every(r => r.valid)\n\n if (!allValid) {\n focusFirstInvalidAcrossForms(validationResults)\n return\n }\n\n await onAllValid()\n }\n\n const errorHandling = composeErrorHandler(errorSources)\n\n return { handleSubmit, errorHandling }\n}\n"],"names":["isRawUseForm","input","extractFormMethods","focusFirstInvalidAcrossForms","results","candidates","formMethods","errors","registry","name","element","a","b","ar","br","firstErrorField","composeSubmitHandler","forms","onAllValid","errorSources","form","handleSubmit","e","validationResults","resolve","r","errorHandling","composeErrorHandler"],"mappings":";AAyEA,SAASA,EACPC,GAC2B;AAC3B,SAAO,kBAAkBA,KAAS,OAAOA,EAAM,gBAAiB;AAClE;AAEA,SAASC,EAA0CD,GAA2C;AAC5F,SAAID,EAAaC,CAAK,IAAUA,IACzBA,EAAM,KAAK,kBAAkB;AACtC;AAcA,SAASE,EAA6BC,GAAuC;AAM3E,QAAMC,IAA0B,CAAA;AAChC,aAAW,EAAE,OAAAJ,GAAO,aAAAK,GAAa,QAAAC,EAAA,KAAYH,GAAS;AACpD,QAAIJ,EAAaC,CAAK,EAAG;AACzB,UAAMO,IAAWP,EAAM,KAAK,kBAAkB;AAE9C,QAAKO;AACL,iBAAWC,KAAQ,OAAO,KAAKF,CAAM,GAAG;AACtC,cAAMG,IAAUF,EAAS,IAAIC,CAAI;AACjC,QAAIC,KACFL,EAAW,KAAK,EAAE,aAAAC,GAAa,MAAAG,GAAM,SAAAC,GAAS;AAAA,MAElD;AAAA,EACF;AAEA,MAAIL,EAAW,SAAS,GAAG;AACzB,IAAAA,EAAW,KAAK,CAACM,GAAGC,MAAM;AACxB,YAAMC,IAAKF,EAAE,QAAQ,sBAAA,GACfG,IAAKF,EAAE,QAAQ,sBAAA;AACrB,aAAOC,EAAG,MAAMC,EAAG,OAAOD,EAAG,OAAOC,EAAG;AAAA,IACzC,CAAC,GACcT,EAAW,CAAC,EAIpB,QAAQ,MAAA;AACf;AAAA,EACF;AAEA,aAAW,EAAE,aAAAC,GAAa,QAAAC,EAAA,KAAYH,GAAS;AAC7C,UAAMW,IAAkB,OAAO,KAAKR,CAAM,EAAE,CAAC;AAC7C,QAAIQ,GAAiB;AACnB,MAAAT,EAAY,SAASS,CAAe;AACpC;AAAA,IACF;AAAA,EACF;AACF;AA4CO,SAASC,EACdC,GACAC,GAC4B;AAC5B,QAAMC,IAAeF,EAAM,OAAO,CAACG,MAA2C,CAACpB,EAAaoB,CAAI,CAAC,GAE3FC,IAAe,OAAOC,MAAsB;AAChD,IAAAA,EAAE,eAAA;AAEF,UAAMC,IAAoB,MAAM,QAAQ;AAAA,MACtCN,EAAM;AAAA,QACJ,CAAAhB,MACE,IAAI,QAA8B,CAAAuB,MAAW;AAC3C,gBAAMlB,IAAcJ,EAAmBD,CAAK;AAC5C,UAAKK,EAAY;AAAA,YACf,MAAM;AACJ,cAAAkB,EAAQ,EAAE,OAAAvB,GAAO,aAAAK,GAAa,OAAO,IAAM,QAAQ,CAAA,GAAI;AAAA,YACzD;AAAA,YACA,CAAAC,MAAU;AACR,cAAAiB,EAAQ,EAAE,OAAAvB,GAAO,aAAAK,GAAa,OAAO,IAAO,QAAAC,GAAQ;AAAA,YACtD;AAAA,UAAA,EACF;AAAA,QACF,CAAC;AAAA,MAAA;AAAA,IACL;AAKF,QAAI,CAFagB,EAAkB,MAAM,CAAAE,MAAKA,EAAE,KAAK,GAEtC;AACb,MAAAtB,EAA6BoB,CAAiB;AAC9C;AAAA,IACF;AAEA,UAAML,EAAA;AAAA,EACR,GAEMQ,IAAgBC,EAAoBR,CAAY;AAEtD,SAAO,EAAE,cAAAE,GAAc,eAAAK,EAAA;AACzB;"}
1
+ {"version":3,"file":"composeSubmitHandler.js","sources":["../../../src/partner-hook-utils/form/composeSubmitHandler.ts"],"sourcesContent":["import type { SyntheticEvent } from 'react'\nimport type { FieldValues, UseFormReturn } from 'react-hook-form'\nimport { composeErrorHandler } from '../composeErrorHandler'\nimport type { HookErrorHandling, HookFormInternals } from '../types'\nimport type { FieldElementRegistry } from '@/components/Common/Fields/hooks/fieldElementRegistry'\n\n/**\n * Minimal shape required for a form hook result to participate in `composeSubmitHandler`.\n * Any hook returning `BaseFormHookReady` satisfies this interface.\n *\n * `formMethods` is declared with method-call syntax (rather than reused from\n * `HookFormInternals`) so TypeScript applies bivariant parameter checking,\n * allowing hooks with specific form data generics to be passed without casts.\n * `_fieldElementRegistry` is reused directly since its type doesn't depend on\n * the form's generic.\n *\n * @public\n * @childOf {@link composeSubmitHandler}\n */\nexport interface ComposableFormHookResult {\n /** The form surface: the react-hook-form internals used to validate and focus fields. */\n form: {\n hookFormInternals: Pick<HookFormInternals, '_fieldElementRegistry'> & {\n formMethods: {\n handleSubmit(\n onValid: () => void,\n onInvalid?: (errors: Record<string, unknown>) => void,\n ): () => Promise<void>\n setFocus(name: string): void\n formState: { errors: Record<string, unknown> }\n }\n }\n }\n /** The error-handling surface aggregated across the composed forms. */\n errorHandling: HookErrorHandling\n}\n\n/**\n * Accepted input for a single slot of `composeSubmitHandler`'s `forms` array.\n *\n * @remarks\n * - SDK form hook results (anything matching `ComposableFormHookResult`) are composed directly.\n * - A raw `react-hook-form` `UseFormReturn<T>` is supported for screen-local auxiliary forms\n * that don't warrant a dedicated SDK hook. Raw forms contribute validation/focus behavior\n * but no `errorHandling` (fields surface their own inline errors via react-hook-form).\n *\n * @typeParam T - The shape of the form values when a raw `UseFormReturn` is passed.\n * @public\n * @childOf {@link composeSubmitHandler}\n */\nexport type ComposeSubmitInput<T extends FieldValues = FieldValues> =\n ComposableFormHookResult | UseFormReturn<T>\n\ninterface FormValidationResult {\n input: ComposeSubmitInput\n formMethods: FormMethods\n valid: boolean\n errors: Record<string, unknown>\n}\n\n/**\n * Result returned by {@link composeSubmitHandler}: a single submit handler that\n * coordinates validation across the composed forms, and aggregated error state.\n *\n * @public\n * @childOf {@link composeSubmitHandler}\n */\nexport interface ComposeSubmitHandlerResult {\n /** Submit handler to pass to a form's `onSubmit`. Validates all composed forms before calling `onAllValid`. */\n handleSubmit: (e: SyntheticEvent) => Promise<void>\n /** Aggregated error state across all composed SDK form hooks. Pass to {@link composeErrorHandler} for screen-level error surfaces. */\n errorHandling: HookErrorHandling\n}\n\ntype FormMethods = ComposableFormHookResult['form']['hookFormInternals']['formMethods']\n\nfunction isRawUseForm<T extends FieldValues>(\n input: ComposeSubmitInput<T>,\n): input is UseFormReturn<T> {\n return 'handleSubmit' in input && typeof input.handleSubmit === 'function'\n}\n\nfunction extractFormMethods<T extends FieldValues>(input: ComposeSubmitInput<T>): FormMethods {\n if (isRawUseForm(input)) return input as unknown as FormMethods\n return input.form.hookFormInternals.formMethods\n}\n\n/**\n * Picks the visually first invalid field across all composed forms using live\n * `getBoundingClientRect()` positions, then focuses its DOM element. Falls back\n * to array-order (first form's first error) when no element can be resolved —\n * raw `UseFormReturn` inputs have no registry, and forms rendered without\n * `SDKFormProvider` or a HookField wrapper won't have their fields registered\n * either, so we let react-hook-form's `setFocus` attempt it instead.\n *\n * Consumes `results` (captured from each form's `onInvalid` callback) rather\n * than reading `formState.errors` — the latter is a proxy that returns `{}`\n * when accessed outside a component subscription.\n */\nfunction focusFirstInvalidAcrossForms(results: FormValidationResult[]): void {\n type Candidate = {\n formMethods: FormMethods\n name: string\n element: HTMLElement\n }\n const candidates: Candidate[] = []\n for (const { input, formMethods, errors } of results) {\n if (isRawUseForm(input)) continue\n const registry = input.form.hookFormInternals._fieldElementRegistry as\n FieldElementRegistry | undefined\n if (!registry) continue\n for (const name of Object.keys(errors)) {\n const element = registry.get(name)\n if (element) {\n candidates.push({ formMethods, name, element })\n }\n }\n }\n\n if (candidates.length > 0) {\n candidates.sort((a, b) => {\n const ar = a.element.getBoundingClientRect()\n const br = b.element.getBoundingClientRect()\n return ar.top - br.top || ar.left - br.left\n })\n const winner = candidates[0]!\n // Focus the DOM element directly. Bypasses react-hook-form's `setFocus`,\n // which depends on `_fields[name]._f.ref` and isn't reliably populated\n // when fields are rendered through libraries like react-aria-components.\n winner.element.focus()\n return\n }\n\n for (const { formMethods, errors } of results) {\n const firstErrorField = Object.keys(errors)[0]\n if (firstErrorField) {\n formMethods.setFocus(firstErrorField)\n return\n }\n }\n}\n\n/**\n * Coordinates validation and submission across multiple form hooks on the same page.\n *\n * @remarks\n * Validates all forms simultaneously via `handleSubmit()`, then focuses the visually first\n * invalid field across all forms (sorted by `getBoundingClientRect()`). Only calls\n * `onAllValid` when every form passes.\n *\n * Uses `handleSubmit` rather than `trigger` so that react-hook-form sets\n * `formState.isSubmitted = true`, which enables `reValidateMode` (default: `onChange`).\n * Without this, errors set by manual `trigger()` calls would never clear as the user types.\n *\n * Each hook passed to `forms` should be initialized with `shouldFocusError: false` so that\n * react-hook-form's built-in per-form focus is disabled and `composeSubmitHandler` can manage\n * cross-form focus instead.\n *\n * The returned `errorHandling` is the same shape every SDK hook returns, so the whole result\n * can be passed back into {@link composeErrorHandler} when you need to add extra\n * `@gusto/embedded-api-v-2026-06-15` queries or screen-level submit state.\n *\n * @typeParam TForms - Tuple of form value shapes, one per slot of `forms`.\n * @param forms - Form hook results and/or raw `UseFormReturn` instances to coordinate.\n * @param onAllValid - Async callback invoked once every form has passed validation.\n * @returns A {@link ComposeSubmitHandlerResult} with a unified `handleSubmit` and aggregated `errorHandling`.\n * @public\n * @group Form composition\n *\n * @example\n * ```tsx\n * const detailsForm = useEmployeeDetailsForm({ employeeId, shouldFocusError: false })\n * const addressForm = useHomeAddressForm({ employeeId, shouldFocusError: false })\n *\n * const { handleSubmit, errorHandling } = composeSubmitHandler(\n * [detailsForm, addressForm],\n * async () => {\n * await detailsForm.actions.onSubmit()\n * await addressForm.actions.onSubmit()\n * },\n * )\n *\n * return <form onSubmit={handleSubmit}>...</form>\n * ```\n */\nexport function composeSubmitHandler<TForms extends readonly FieldValues[]>(\n forms: readonly [...{ [K in keyof TForms]: ComposeSubmitInput<TForms[K]> }],\n onAllValid: () => Promise<void>,\n): ComposeSubmitHandlerResult {\n const errorSources = forms.filter((form): form is ComposableFormHookResult => !isRawUseForm(form))\n\n const handleSubmit = async (e: SyntheticEvent) => {\n e.preventDefault()\n\n const validationResults = await Promise.all(\n forms.map(\n input =>\n new Promise<FormValidationResult>(resolve => {\n const formMethods = extractFormMethods(input)\n void formMethods.handleSubmit(\n () => {\n resolve({ input, formMethods, valid: true, errors: {} })\n },\n errors => {\n resolve({ input, formMethods, valid: false, errors })\n },\n )()\n }),\n ),\n )\n\n const allValid = validationResults.every(r => r.valid)\n\n if (!allValid) {\n focusFirstInvalidAcrossForms(validationResults)\n return\n }\n\n await onAllValid()\n }\n\n const errorHandling = composeErrorHandler(errorSources)\n\n return { handleSubmit, errorHandling }\n}\n"],"names":["isRawUseForm","input","extractFormMethods","focusFirstInvalidAcrossForms","results","candidates","formMethods","errors","registry","name","element","a","b","ar","br","firstErrorField","composeSubmitHandler","forms","onAllValid","errorSources","form","handleSubmit","e","validationResults","resolve","r","errorHandling","composeErrorHandler"],"mappings":";AA4EA,SAASA,EACPC,GAC2B;AAC3B,SAAO,kBAAkBA,KAAS,OAAOA,EAAM,gBAAiB;AAClE;AAEA,SAASC,EAA0CD,GAA2C;AAC5F,SAAID,EAAaC,CAAK,IAAUA,IACzBA,EAAM,KAAK,kBAAkB;AACtC;AAcA,SAASE,EAA6BC,GAAuC;AAM3E,QAAMC,IAA0B,CAAA;AAChC,aAAW,EAAE,OAAAJ,GAAO,aAAAK,GAAa,QAAAC,EAAA,KAAYH,GAAS;AACpD,QAAIJ,EAAaC,CAAK,EAAG;AACzB,UAAMO,IAAWP,EAAM,KAAK,kBAAkB;AAE9C,QAAKO;AACL,iBAAWC,KAAQ,OAAO,KAAKF,CAAM,GAAG;AACtC,cAAMG,IAAUF,EAAS,IAAIC,CAAI;AACjC,QAAIC,KACFL,EAAW,KAAK,EAAE,aAAAC,GAAa,MAAAG,GAAM,SAAAC,GAAS;AAAA,MAElD;AAAA,EACF;AAEA,MAAIL,EAAW,SAAS,GAAG;AACzB,IAAAA,EAAW,KAAK,CAACM,GAAGC,MAAM;AACxB,YAAMC,IAAKF,EAAE,QAAQ,sBAAA,GACfG,IAAKF,EAAE,QAAQ,sBAAA;AACrB,aAAOC,EAAG,MAAMC,EAAG,OAAOD,EAAG,OAAOC,EAAG;AAAA,IACzC,CAAC,GACcT,EAAW,CAAC,EAIpB,QAAQ,MAAA;AACf;AAAA,EACF;AAEA,aAAW,EAAE,aAAAC,GAAa,QAAAC,EAAA,KAAYH,GAAS;AAC7C,UAAMW,IAAkB,OAAO,KAAKR,CAAM,EAAE,CAAC;AAC7C,QAAIQ,GAAiB;AACnB,MAAAT,EAAY,SAASS,CAAe;AACpC;AAAA,IACF;AAAA,EACF;AACF;AA6CO,SAASC,EACdC,GACAC,GAC4B;AAC5B,QAAMC,IAAeF,EAAM,OAAO,CAACG,MAA2C,CAACpB,EAAaoB,CAAI,CAAC,GAE3FC,IAAe,OAAOC,MAAsB;AAChD,IAAAA,EAAE,eAAA;AAEF,UAAMC,IAAoB,MAAM,QAAQ;AAAA,MACtCN,EAAM;AAAA,QACJ,CAAAhB,MACE,IAAI,QAA8B,CAAAuB,MAAW;AAC3C,gBAAMlB,IAAcJ,EAAmBD,CAAK;AAC5C,UAAKK,EAAY;AAAA,YACf,MAAM;AACJ,cAAAkB,EAAQ,EAAE,OAAAvB,GAAO,aAAAK,GAAa,OAAO,IAAM,QAAQ,CAAA,GAAI;AAAA,YACzD;AAAA,YACA,CAAAC,MAAU;AACR,cAAAiB,EAAQ,EAAE,OAAAvB,GAAO,aAAAK,GAAa,OAAO,IAAO,QAAAC,GAAQ;AAAA,YACtD;AAAA,UAAA,EACF;AAAA,QACF,CAAC;AAAA,MAAA;AAAA,IACL;AAKF,QAAI,CAFagB,EAAkB,MAAM,CAAAE,MAAKA,EAAE,KAAK,GAEtC;AACb,MAAAtB,EAA6BoB,CAAiB;AAC9C;AAAA,IACF;AAEA,UAAML,EAAA;AAAA,EACR,GAEMQ,IAAgBC,EAAoBR,CAAY;AAEtD,SAAO,EAAE,cAAAE,GAAc,eAAAK,EAAA;AACzB;"}
@@ -8,6 +8,7 @@ import { CheckboxProps } from '../../../components/Common/UI/Checkbox/CheckboxTy
8
8
  *
9
9
  * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.
10
10
  * @public
11
+ * @group Hook field props
11
12
  */
12
13
  export interface CheckboxHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps {
13
14
  /** The field name; must match the corresponding key in the form schema. */
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/CheckboxHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { CheckboxField } from '@/components/Common'\nimport type { CheckboxProps } from '@/components/Common/UI/Checkbox/CheckboxTypes'\n\n/**\n * Props accepted by a checkbox field surfaced through a form hook.\n * Exposes `validationMessages` for custom error text alongside the shared base\n * field attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n */\nexport interface CheckboxHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default checkbox UI component; must accept the same props as `CheckboxProps`. */\n FieldComponent?: ComponentType<CheckboxProps>\n}\n\n/**\n * Checkbox field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, and label content.\n * @returns The rendered checkbox field wrapped in the field element registry.\n * @internal\n */\nexport function CheckboxHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n FieldComponent,\n}: CheckboxHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <CheckboxField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["CheckboxHookField","name","formHookResult","label","description","validationMessages","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","CheckboxField"],"mappings":";;;;;;;AAkCO,SAASA,EAA6C;AAAA,EAC3D,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AACF,GAAuC;AACrC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEV;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIO,IAAgBL,EAASN,CAAI;AAEnC,SAAOY;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAd;AAAA,QACA,SAAAO;AAAA,QACA,OAAAL;AAAA,QACA,aAAAC;AAAA,QACA,cAAAK;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,gBAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"CheckboxHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/CheckboxHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { CheckboxField } from '@/components/Common'\nimport type { CheckboxProps } from '@/components/Common/UI/Checkbox/CheckboxTypes'\n\n/**\n * Props accepted by a checkbox field surfaced through a form hook.\n * Exposes `validationMessages` for custom error text alongside the shared base\n * field attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n * @group Hook field props\n */\nexport interface CheckboxHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default checkbox UI component; must accept the same props as `CheckboxProps`. */\n FieldComponent?: ComponentType<CheckboxProps>\n}\n\n/**\n * Checkbox field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, and label content.\n * @returns The rendered checkbox field wrapped in the field element registry.\n * @internal\n */\nexport function CheckboxHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n FieldComponent,\n}: CheckboxHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <CheckboxField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["CheckboxHookField","name","formHookResult","label","description","validationMessages","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","CheckboxField"],"mappings":";;;;;;;AAmCO,SAASA,EAA6C;AAAA,EAC3D,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AACF,GAAuC;AACrC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEV;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIO,IAAgBL,EAASN,CAAI;AAEnC,SAAOY;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAd;AAAA,QACA,SAAAO;AAAA,QACA,OAAAL;AAAA,QACA,aAAAC;AAAA,QACA,cAAAK;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,gBAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -10,6 +10,7 @@ import { DatePickerProps } from '../../../components/Common/UI/DatePicker/DatePi
10
10
  *
11
11
  * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.
12
12
  * @public
13
+ * @group Hook field props
13
14
  */
14
15
  export interface DatePickerHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps, Pick<DatePickerProps, 'portalContainer' | 'minDate' | 'maxDate'> {
15
16
  /** The field name; must match the corresponding key in the form schema. */
@@ -1 +1 @@
1
- {"version":3,"file":"DatePickerHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/DatePickerHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { DatePickerField } from '@/components/Common/Fields/DatePickerField'\nimport type { DatePickerProps } from '@/components/Common/UI/DatePicker/DatePickerTypes'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\n\n/**\n * Props accepted by a date picker field surfaced through a form hook.\n * Exposes `minDate` and `maxDate` bounds (override server-provided constraints when\n * supplied), `portalContainer` for correct stacking inside modals, and\n * `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n */\nexport interface DatePickerHookFieldProps<TErrorCode extends string = never>\n extends BaseFieldProps, Pick<DatePickerProps, 'portalContainer' | 'minDate' | 'maxDate'> {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default date picker UI component; must accept the same props as `DatePickerProps`. */\n FieldComponent?: ComponentType<DatePickerProps>\n /** When used inside a modal, pass the modal backdrop ref's element so the calendar popover stacks correctly. */\n portalContainer?: DatePickerProps['portalContainer']\n}\n\n/**\n * Date picker field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, label content, and optional date bounds.\n * @returns The rendered date picker field wrapped in the field element registry.\n * @internal\n */\nexport function DatePickerHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n FieldComponent,\n portalContainer,\n minDate,\n maxDate,\n}: DatePickerHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <DatePickerField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n FieldComponent={FieldComponent}\n portalContainer={portalContainer}\n minDate={\n minDate ??\n (fieldMetadata?.minDate ? (normalizeToDate(fieldMetadata.minDate) ?? undefined) : undefined)\n }\n maxDate={\n maxDate ??\n (fieldMetadata?.maxDate ? (normalizeToDate(fieldMetadata.maxDate) ?? undefined) : undefined)\n }\n />,\n )\n}\n"],"names":["DatePickerHookField","name","formHookResult","label","description","validationMessages","FieldComponent","portalContainer","minDate","maxDate","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","DatePickerField","normalizeToDate"],"mappings":";;;;;AAwCO,SAASA,EAA+C;AAAA,EAC7D,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AACF,GAAyC;AACvC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEb;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIU,IAAgBL,EAAST,CAAI;AAEnC,SAAOe;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAjB;AAAA,QACA,SAAAU;AAAA,QACA,OAAAR;AAAA,QACA,aAAAC;AAAA,QACA,cAAAQ;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,gBAAAT;AAAA,QACA,iBAAAC;AAAA,QACA,SACEC,MACCO,GAAe,UAAWI,EAAgBJ,EAAc,OAAO,KAAK,SAAa;AAAA,QAEpF,SACEN,MACCM,GAAe,UAAWI,EAAgBJ,EAAc,OAAO,KAAK,SAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EAEtF;AAEJ;"}
1
+ {"version":3,"file":"DatePickerHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/DatePickerHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { DatePickerField } from '@/components/Common/Fields/DatePickerField'\nimport type { DatePickerProps } from '@/components/Common/UI/DatePicker/DatePickerTypes'\nimport { normalizeToDate } from '@/helpers/dateFormatting'\n\n/**\n * Props accepted by a date picker field surfaced through a form hook.\n * Exposes `minDate` and `maxDate` bounds (override server-provided constraints when\n * supplied), `portalContainer` for correct stacking inside modals, and\n * `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n * @group Hook field props\n */\nexport interface DatePickerHookFieldProps<TErrorCode extends string = never>\n extends BaseFieldProps, Pick<DatePickerProps, 'portalContainer' | 'minDate' | 'maxDate'> {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default date picker UI component; must accept the same props as `DatePickerProps`. */\n FieldComponent?: ComponentType<DatePickerProps>\n /** When used inside a modal, pass the modal backdrop ref's element so the calendar popover stacks correctly. */\n portalContainer?: DatePickerProps['portalContainer']\n}\n\n/**\n * Date picker field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, label content, and optional date bounds.\n * @returns The rendered date picker field wrapped in the field element registry.\n * @internal\n */\nexport function DatePickerHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n FieldComponent,\n portalContainer,\n minDate,\n maxDate,\n}: DatePickerHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <DatePickerField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n FieldComponent={FieldComponent}\n portalContainer={portalContainer}\n minDate={\n minDate ??\n (fieldMetadata?.minDate ? (normalizeToDate(fieldMetadata.minDate) ?? undefined) : undefined)\n }\n maxDate={\n maxDate ??\n (fieldMetadata?.maxDate ? (normalizeToDate(fieldMetadata.maxDate) ?? undefined) : undefined)\n }\n />,\n )\n}\n"],"names":["DatePickerHookField","name","formHookResult","label","description","validationMessages","FieldComponent","portalContainer","minDate","maxDate","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","DatePickerField","normalizeToDate"],"mappings":";;;;;AAyCO,SAASA,EAA+C;AAAA,EAC7D,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AACF,GAAyC;AACvC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEb;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIU,IAAgBL,EAAST,CAAI;AAEnC,SAAOe;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAjB;AAAA,QACA,SAAAU;AAAA,QACA,OAAAR;AAAA,QACA,aAAAC;AAAA,QACA,cAAAQ;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,gBAAAT;AAAA,QACA,iBAAAC;AAAA,QACA,SACEC,MACCO,GAAe,UAAWI,EAAgBJ,EAAc,OAAO,KAAK,SAAa;AAAA,QAEpF,SACEN,MACCM,GAAe,UAAWI,EAAgBJ,EAAc,OAAO,KAAK,SAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EAEtF;AAEJ;"}
@@ -9,6 +9,7 @@ import { NumberInputProps } from '../../../components/Common/UI/NumberInput/Numb
9
9
  *
10
10
  * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.
11
11
  * @public
12
+ * @group Hook field props
12
13
  */
13
14
  export interface NumberInputHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps {
14
15
  /** The field name; must match the corresponding key in the form schema. */
@@ -1 +1 @@
1
- {"version":3,"file":"NumberInputHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/NumberInputHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { NumberInputField } from '@/components/Common'\nimport type { NumberInputProps } from '@/components/Common/UI/NumberInput/NumberInputTypes'\n\n/**\n * Props accepted by a number input field surfaced through a form hook.\n * Exposes numeric constraints (`min`, `max`), display `format`, `placeholder` text,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n */\nexport interface NumberInputHookFieldProps<\n TErrorCode extends string = never,\n> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Display format for the number value (e.g. `'currency'`). */\n format?: NumberInputProps['format']\n /** Minimum allowed numeric value. */\n min?: NumberInputProps['min']\n /** Maximum allowed numeric value. */\n max?: NumberInputProps['max']\n /** Placeholder text displayed when the field has no value. */\n placeholder?: NumberInputProps['placeholder']\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default number input UI component; must accept the same props as `NumberInputProps`. */\n FieldComponent?: ComponentType<NumberInputProps>\n}\n\n/**\n * Number input field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, formatting, and numeric bounds.\n * @returns The rendered number input field wrapped in the field element registry.\n * @internal\n */\nexport function NumberInputHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n format,\n min,\n max,\n placeholder,\n validationMessages,\n FieldComponent,\n}: NumberInputHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <NumberInputField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n format={format}\n min={min}\n max={max}\n placeholder={placeholder}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["NumberInputHookField","name","formHookResult","label","description","format","min","max","placeholder","validationMessages","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","NumberInputField"],"mappings":";;;;;;;AA6CO,SAASA,EAAgD;AAAA,EAC9D,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AACF,GAA0C;AACxC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEd;AAAA,IACAC;AAAA,IACAO;AAAA,EAAA,GAEIO,IAAgBL,EAASV,CAAI;AAEnC,SAAOgB;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAlB;AAAA,QACA,SAAAW;AAAA,QACA,OAAAT;AAAA,QACA,aAAAC;AAAA,QACA,cAAAS;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,QAAAX;AAAA,QACA,KAAAC;AAAA,QACA,KAAAC;AAAA,QACA,aAAAC;AAAA,QACA,gBAAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"NumberInputHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/NumberInputHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { NumberInputField } from '@/components/Common'\nimport type { NumberInputProps } from '@/components/Common/UI/NumberInput/NumberInputTypes'\n\n/**\n * Props accepted by a number input field surfaced through a form hook.\n * Exposes numeric constraints (`min`, `max`), display `format`, `placeholder` text,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n * @group Hook field props\n */\nexport interface NumberInputHookFieldProps<\n TErrorCode extends string = never,\n> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Display format for the number value (e.g. `'currency'`). */\n format?: NumberInputProps['format']\n /** Minimum allowed numeric value. */\n min?: NumberInputProps['min']\n /** Maximum allowed numeric value. */\n max?: NumberInputProps['max']\n /** Placeholder text displayed when the field has no value. */\n placeholder?: NumberInputProps['placeholder']\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default number input UI component; must accept the same props as `NumberInputProps`. */\n FieldComponent?: ComponentType<NumberInputProps>\n}\n\n/**\n * Number input field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, formatting, and numeric bounds.\n * @returns The rendered number input field wrapped in the field element registry.\n * @internal\n */\nexport function NumberInputHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n format,\n min,\n max,\n placeholder,\n validationMessages,\n FieldComponent,\n}: NumberInputHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <NumberInputField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n format={format}\n min={min}\n max={max}\n placeholder={placeholder}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["NumberInputHookField","name","formHookResult","label","description","format","min","max","placeholder","validationMessages","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","NumberInputField"],"mappings":";;;;;;;AA8CO,SAASA,EAAgD;AAAA,EAC9D,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,QAAAC;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AACF,GAA0C;AACxC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEd;AAAA,IACAC;AAAA,IACAO;AAAA,EAAA,GAEIO,IAAgBL,EAASV,CAAI;AAEnC,SAAOgB;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAlB;AAAA,QACA,SAAAW;AAAA,QACA,OAAAT;AAAA,QACA,aAAAC;AAAA,QACA,cAAAS;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,QAAAX;AAAA,QACA,KAAAC;AAAA,QACA,KAAAC;AAAA,QACA,aAAAC;AAAA,QACA,gBAAAE;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -10,6 +10,7 @@ import { RadioGroupProps } from '../../../components/Common/UI/RadioGroup/RadioG
10
10
  * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.
11
11
  * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.
12
12
  * @public
13
+ * @group Hook field props
13
14
  */
14
15
  export interface RadioGroupHookFieldProps<TErrorCode extends string = never, TEntry = unknown> extends BaseFieldProps {
15
16
  /** The field name; must match the corresponding key in the form schema. */
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroupHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/RadioGroupHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport { getFieldWithOptions } from '../getFieldWithOptions'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { RadioGroupField } from '@/components/Common'\nimport type { RadioGroupProps } from '@/components/Common/UI/RadioGroup/RadioGroupTypes'\n\n/**\n * Props accepted by a radio group field surfaced through a form hook.\n * Exposes `getOptionLabel` to customize how option entries are rendered as labels,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @public\n */\nexport interface RadioGroupHookFieldProps<\n TErrorCode extends string = never,\n TEntry = unknown,\n> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Maps a raw option entry to its display label; when omitted, options use the labels provided by the hook. */\n getOptionLabel?: (entry: TEntry) => string\n /** Replaces the default radio group UI component; must accept the same props as `RadioGroupProps`. */\n FieldComponent?: ComponentType<RadioGroupProps>\n}\n\n/**\n * Radio group field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @param props - Field configuration including `name`, `formHookResult`, and an optional `getOptionLabel`.\n * @returns The rendered radio group field wrapped in the field element registry.\n * @internal\n */\nexport function RadioGroupHookField<TErrorCode extends string, TEntry = unknown>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n getOptionLabel,\n FieldComponent,\n}: RadioGroupHookFieldProps<TErrorCode, TEntry>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = getFieldWithOptions<TEntry>(metadata, name)\n\n const defaultOptions = fieldMetadata?.options ?? []\n const options =\n getOptionLabel && fieldMetadata?.entries\n ? fieldMetadata.entries.map((entry, index) => ({\n value: defaultOptions[index]?.value ?? '',\n label: getOptionLabel(entry),\n }))\n : defaultOptions\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <RadioGroupField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n options={options}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["RadioGroupHookField","name","formHookResult","label","description","validationMessages","getOptionLabel","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","getFieldWithOptions","defaultOptions","options","entry","index","withFieldElementRegistry","jsx","RadioGroupField"],"mappings":";;;;;;;;AA2CO,SAASA,EAAiE;AAAA,EAC/E,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AACF,GAAiD;AAC/C,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEX;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIQ,IAAgBC,EAA4BN,GAAUP,CAAI,GAE1Dc,IAAiBF,GAAe,WAAW,CAAA,GAC3CG,IACJV,KAAkBO,GAAe,UAC7BA,EAAc,QAAQ,IAAI,CAACI,GAAOC,OAAW;AAAA,IAC3C,OAAOH,EAAeG,CAAK,GAAG,SAAS;AAAA,IACvC,OAAOZ,EAAeW,CAAK;AAAA,EAAA,EAC3B,IACFF;AAEN,SAAOI;AAAA,IACLR;AAAA,IACA,gBAAAS;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAApB;AAAA,QACA,SAAAQ;AAAA,QACA,OAAAN;AAAA,QACA,aAAAC;AAAA,QACA,cAAAM;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,SAAAG;AAAA,QACA,gBAAAT;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"RadioGroupHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/RadioGroupHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport { getFieldWithOptions } from '../getFieldWithOptions'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { RadioGroupField } from '@/components/Common'\nimport type { RadioGroupProps } from '@/components/Common/UI/RadioGroup/RadioGroupTypes'\n\n/**\n * Props accepted by a radio group field surfaced through a form hook.\n * Exposes `getOptionLabel` to customize how option entries are rendered as labels,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @public\n * @group Hook field props\n */\nexport interface RadioGroupHookFieldProps<\n TErrorCode extends string = never,\n TEntry = unknown,\n> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Maps a raw option entry to its display label; when omitted, options use the labels provided by the hook. */\n getOptionLabel?: (entry: TEntry) => string\n /** Replaces the default radio group UI component; must accept the same props as `RadioGroupProps`. */\n FieldComponent?: ComponentType<RadioGroupProps>\n}\n\n/**\n * Radio group field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @param props - Field configuration including `name`, `formHookResult`, and an optional `getOptionLabel`.\n * @returns The rendered radio group field wrapped in the field element registry.\n * @internal\n */\nexport function RadioGroupHookField<TErrorCode extends string, TEntry = unknown>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n getOptionLabel,\n FieldComponent,\n}: RadioGroupHookFieldProps<TErrorCode, TEntry>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = getFieldWithOptions<TEntry>(metadata, name)\n\n const defaultOptions = fieldMetadata?.options ?? []\n const options =\n getOptionLabel && fieldMetadata?.entries\n ? fieldMetadata.entries.map((entry, index) => ({\n value: defaultOptions[index]?.value ?? '',\n label: getOptionLabel(entry),\n }))\n : defaultOptions\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <RadioGroupField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n options={options}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["RadioGroupHookField","name","formHookResult","label","description","validationMessages","getOptionLabel","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","getFieldWithOptions","defaultOptions","options","entry","index","withFieldElementRegistry","jsx","RadioGroupField"],"mappings":";;;;;;;;AA4CO,SAASA,EAAiE;AAAA,EAC/E,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AACF,GAAiD;AAC/C,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEX;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIQ,IAAgBC,EAA4BN,GAAUP,CAAI,GAE1Dc,IAAiBF,GAAe,WAAW,CAAA,GAC3CG,IACJV,KAAkBO,GAAe,UAC7BA,EAAc,QAAQ,IAAI,CAACI,GAAOC,OAAW;AAAA,IAC3C,OAAOH,EAAeG,CAAK,GAAG,SAAS;AAAA,IACvC,OAAOZ,EAAeW,CAAK;AAAA,EAAA,EAC3B,IACFF;AAEN,SAAOI;AAAA,IACLR;AAAA,IACA,gBAAAS;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAApB;AAAA,QACA,SAAAQ;AAAA,QACA,OAAAN;AAAA,QACA,aAAAC;AAAA,QACA,cAAAM;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,SAAAG;AAAA,QACA,gBAAAT;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -11,6 +11,7 @@ import { SelectProps } from '../../../components/Common/UI/Select/SelectTypes';
11
11
  * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.
12
12
  * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.
13
13
  * @public
14
+ * @group Hook field props
14
15
  */
15
16
  export interface SelectHookFieldProps<TErrorCode extends string = never, TEntry = unknown> extends BaseFieldProps, Pick<SelectProps, 'portalContainer'> {
16
17
  /** The field name; must match the corresponding key in the form schema. */
@@ -1 +1 @@
1
- {"version":3,"file":"SelectHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/SelectHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport { getFieldWithOptions } from '../getFieldWithOptions'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { SelectField } from '@/components/Common'\nimport type { SelectProps } from '@/components/Common/UI/Select/SelectTypes'\n\n/**\n * Props accepted by a select field surfaced through a form hook.\n * Exposes `getOptionLabel` to customize how option entries are rendered as labels,\n * `placeholder` text, `portalContainer` for correct stacking inside modals,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @public\n */\nexport interface SelectHookFieldProps<TErrorCode extends string = never, TEntry = unknown>\n extends BaseFieldProps, Pick<SelectProps, 'portalContainer'> {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Maps a raw option entry to its display label; when omitted, options use the labels provided by the hook. */\n getOptionLabel?: (entry: TEntry) => string\n /**\n * Placeholder text displayed when no option is selected.\n * Required so empty dropdowns always communicate the action — pass an empty string only when a default value is guaranteed.\n */\n placeholder: string\n /** Replaces the default select UI component; must accept the same props as `SelectProps`. */\n FieldComponent?: ComponentType<SelectProps>\n /** When used inside a modal, pass the modal backdrop ref's element so the listbox stacks correctly. */\n portalContainer?: SelectProps['portalContainer']\n}\n\n/**\n * Select field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @param props - Field configuration including `name`, `formHookResult`, and an optional `getOptionLabel`.\n * @returns The rendered select field wrapped in the field element registry.\n * @internal\n */\nexport function SelectHookField<TErrorCode extends string, TEntry = unknown>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n getOptionLabel,\n placeholder,\n FieldComponent,\n portalContainer,\n}: SelectHookFieldProps<TErrorCode, TEntry>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = getFieldWithOptions<TEntry>(metadata, name)\n\n const defaultOptions = fieldMetadata?.options ?? []\n const options =\n getOptionLabel && fieldMetadata?.entries\n ? fieldMetadata.entries.map((entry, index) => ({\n value: defaultOptions[index]?.value ?? '',\n label: getOptionLabel(entry),\n }))\n : defaultOptions\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <SelectField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n options={options}\n placeholder={placeholder}\n FieldComponent={FieldComponent}\n portalContainer={portalContainer}\n />,\n )\n}\n"],"names":["SelectHookField","name","formHookResult","label","description","validationMessages","getOptionLabel","placeholder","FieldComponent","portalContainer","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","getFieldWithOptions","defaultOptions","options","entry","index","withFieldElementRegistry","jsx","SelectField"],"mappings":";;;;;;;;AAiDO,SAASA,EAA6D;AAAA,EAC3E,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AACF,GAA6C;AAC3C,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEb;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIU,IAAgBC,EAA4BN,GAAUT,CAAI,GAE1DgB,IAAiBF,GAAe,WAAW,CAAA,GAC3CG,IACJZ,KAAkBS,GAAe,UAC7BA,EAAc,QAAQ,IAAI,CAACI,GAAOC,OAAW;AAAA,IAC3C,OAAOH,EAAeG,CAAK,GAAG,SAAS;AAAA,IACvC,OAAOd,EAAea,CAAK;AAAA,EAAA,EAC3B,IACFF;AAEN,SAAOI;AAAA,IACLR;AAAA,IACA,gBAAAS;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAtB;AAAA,QACA,SAAAU;AAAA,QACA,OAAAR;AAAA,QACA,aAAAC;AAAA,QACA,cAAAQ;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,SAAAG;AAAA,QACA,aAAAX;AAAA,QACA,gBAAAC;AAAA,QACA,iBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"SelectHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/SelectHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport { getFieldWithOptions } from '../getFieldWithOptions'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { SelectField } from '@/components/Common'\nimport type { SelectProps } from '@/components/Common/UI/Select/SelectTypes'\n\n/**\n * Props accepted by a select field surfaced through a form hook.\n * Exposes `getOptionLabel` to customize how option entries are rendered as labels,\n * `placeholder` text, `portalContainer` for correct stacking inside modals,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @public\n * @group Hook field props\n */\nexport interface SelectHookFieldProps<TErrorCode extends string = never, TEntry = unknown>\n extends BaseFieldProps, Pick<SelectProps, 'portalContainer'> {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Maps a raw option entry to its display label; when omitted, options use the labels provided by the hook. */\n getOptionLabel?: (entry: TEntry) => string\n /**\n * Placeholder text displayed when no option is selected.\n * Required so empty dropdowns always communicate the action — pass an empty string only when a default value is guaranteed.\n */\n placeholder: string\n /** Replaces the default select UI component; must accept the same props as `SelectProps`. */\n FieldComponent?: ComponentType<SelectProps>\n /** When used inside a modal, pass the modal backdrop ref's element so the listbox stacks correctly. */\n portalContainer?: SelectProps['portalContainer']\n}\n\n/**\n * Select field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @typeParam TEntry - Shape of each option entry consumed by `getOptionLabel`.\n * @param props - Field configuration including `name`, `formHookResult`, and an optional `getOptionLabel`.\n * @returns The rendered select field wrapped in the field element registry.\n * @internal\n */\nexport function SelectHookField<TErrorCode extends string, TEntry = unknown>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n getOptionLabel,\n placeholder,\n FieldComponent,\n portalContainer,\n}: SelectHookFieldProps<TErrorCode, TEntry>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = getFieldWithOptions<TEntry>(metadata, name)\n\n const defaultOptions = fieldMetadata?.options ?? []\n const options =\n getOptionLabel && fieldMetadata?.entries\n ? fieldMetadata.entries.map((entry, index) => ({\n value: defaultOptions[index]?.value ?? '',\n label: getOptionLabel(entry),\n }))\n : defaultOptions\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <SelectField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n options={options}\n placeholder={placeholder}\n FieldComponent={FieldComponent}\n portalContainer={portalContainer}\n />,\n )\n}\n"],"names":["SelectHookField","name","formHookResult","label","description","validationMessages","getOptionLabel","placeholder","FieldComponent","portalContainer","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","getFieldWithOptions","defaultOptions","options","entry","index","withFieldElementRegistry","jsx","SelectField"],"mappings":";;;;;;;;AAkDO,SAASA,EAA6D;AAAA,EAC3E,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,iBAAAC;AACF,GAA6C;AAC3C,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEb;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIU,IAAgBC,EAA4BN,GAAUT,CAAI,GAE1DgB,IAAiBF,GAAe,WAAW,CAAA,GAC3CG,IACJZ,KAAkBS,GAAe,UAC7BA,EAAc,QAAQ,IAAI,CAACI,GAAOC,OAAW;AAAA,IAC3C,OAAOH,EAAeG,CAAK,GAAG,SAAS;AAAA,IACvC,OAAOd,EAAea,CAAK;AAAA,EAAA,EAC3B,IACFF;AAEN,SAAOI;AAAA,IACLR;AAAA,IACA,gBAAAS;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAtB;AAAA,QACA,SAAAU;AAAA,QACA,OAAAR;AAAA,QACA,aAAAC;AAAA,QACA,cAAAQ;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,SAAAG;AAAA,QACA,aAAAX;AAAA,QACA,gBAAAC;AAAA,QACA,iBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -8,6 +8,7 @@ import { SwitchProps } from '../../../components/Common/UI/Switch/SwitchTypes';
8
8
  *
9
9
  * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.
10
10
  * @public
11
+ * @group Hook field props
11
12
  */
12
13
  export interface SwitchHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps {
13
14
  /** The field name; must match the corresponding key in the form schema. */
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/SwitchHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { SwitchField } from '@/components/Common'\nimport type { SwitchProps } from '@/components/Common/UI/Switch/SwitchTypes'\n\n/**\n * Props accepted by a toggle switch field surfaced through a form hook.\n * Exposes `validationMessages` for custom error text alongside the shared base\n * field attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n */\nexport interface SwitchHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default toggle switch UI component; must accept the same props as `SwitchProps`. */\n FieldComponent?: ComponentType<SwitchProps>\n}\n\n/**\n * Switch field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, and label content.\n * @returns The rendered switch field wrapped in the field element registry.\n * @internal\n */\nexport function SwitchHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n FieldComponent,\n}: SwitchHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <SwitchField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["SwitchHookField","name","formHookResult","label","description","validationMessages","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","SwitchField"],"mappings":";;;;;;;AAkCO,SAASA,EAA2C;AAAA,EACzD,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AACF,GAAqC;AACnC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEV;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIO,IAAgBL,EAASN,CAAI;AAEnC,SAAOY;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAd;AAAA,QACA,SAAAO;AAAA,QACA,OAAAL;AAAA,QACA,aAAAC;AAAA,QACA,cAAAK;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,gBAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"SwitchHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/SwitchHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { SwitchField } from '@/components/Common'\nimport type { SwitchProps } from '@/components/Common/UI/Switch/SwitchTypes'\n\n/**\n * Props accepted by a toggle switch field surfaced through a form hook.\n * Exposes `validationMessages` for custom error text alongside the shared base\n * field attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @public\n * @group Hook field props\n */\nexport interface SwitchHookFieldProps<TErrorCode extends string = never> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode>\n /** Replaces the default toggle switch UI component; must accept the same props as `SwitchProps`. */\n FieldComponent?: ComponentType<SwitchProps>\n}\n\n/**\n * Switch field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, and label content.\n * @returns The rendered switch field wrapped in the field element registry.\n * @internal\n */\nexport function SwitchHookField<TErrorCode extends string>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n FieldComponent,\n}: SwitchHookFieldProps<TErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <SwitchField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["SwitchHookField","name","formHookResult","label","description","validationMessages","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","SwitchField"],"mappings":";;;;;;;AAmCO,SAASA,EAA2C;AAAA,EACzD,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AACF,GAAqC;AACnC,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEV;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIO,IAAgBL,EAASN,CAAI;AAEnC,SAAOY;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAd;AAAA,QACA,SAAAO;AAAA,QACA,OAAAL;AAAA,QACA,aAAAC;AAAA,QACA,cAAAK;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,gBAAAN;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -10,6 +10,7 @@ import { TextInputProps } from '../../../components/Common/UI/TextInput/TextInpu
10
10
  * @typeParam TErrorCode - Required validation error code keys mapped via `validationMessages`.
11
11
  * @typeParam TOptionalErrorCode - Optional validation error code keys mapped via `validationMessages`.
12
12
  * @public
13
+ * @group Hook field props
13
14
  */
14
15
  export interface TextInputHookFieldProps<TErrorCode extends string = never, TOptionalErrorCode extends string = never> extends BaseFieldProps {
15
16
  /** The field name; must match the corresponding key in the form schema. */
@@ -1 +1 @@
1
- {"version":3,"file":"TextInputHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/TextInputHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { TextInputField } from '@/components/Common'\nimport type { TextInputProps } from '@/components/Common/UI/TextInput/TextInputTypes'\n\n/**\n * Props accepted by a text input field surfaced through a form hook.\n * Exposes a `transform` function for preprocessing raw input, `placeholder` text,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Required validation error code keys mapped via `validationMessages`.\n * @typeParam TOptionalErrorCode - Optional validation error code keys mapped via `validationMessages`.\n * @public\n */\nexport interface TextInputHookFieldProps<\n TErrorCode extends string = never,\n TOptionalErrorCode extends string = never,\n> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode, TOptionalErrorCode>\n /** Transforms the raw string value on every change before storing it; use for normalization such as trimming or changing case. */\n transform?: (value: string) => string\n /** Placeholder text displayed when the field has no value. */\n placeholder?: string\n /** Replaces the default text input UI component; must accept the same props as `TextInputProps`. */\n FieldComponent?: ComponentType<TextInputProps>\n}\n\n/**\n * Text input field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Required validation error code keys mapped via `validationMessages`.\n * @typeParam TOptionalErrorCode - Optional validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, `transform`, `placeholder`, and label content.\n * @returns The rendered text input field wrapped in the field element registry.\n * @internal\n */\nexport function TextInputHookField<\n TErrorCode extends string,\n TOptionalErrorCode extends string = never,\n>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n transform,\n placeholder,\n FieldComponent,\n}: TextInputHookFieldProps<TErrorCode, TOptionalErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <TextInputField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n transform={transform}\n placeholder={placeholder}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["TextInputHookField","name","formHookResult","label","description","validationMessages","transform","placeholder","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","TextInputField"],"mappings":";;;;;;;AA4CO,SAASA,EAGd;AAAA,EACA,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AACF,GAA4D;AAC1D,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEZ;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIS,IAAgBL,EAASR,CAAI;AAEnC,SAAOc;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAhB;AAAA,QACA,SAAAS;AAAA,QACA,OAAAP;AAAA,QACA,aAAAC;AAAA,QACA,cAAAO;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,WAAAR;AAAA,QACA,aAAAC;AAAA,QACA,gBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"TextInputHookField.js","sources":["../../../../src/partner-hook-utils/form/fields/TextInputHookField.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useHookFieldResolution } from '../useHookFieldResolution'\nimport type { BaseFieldProps, ValidationMessages, FormHookResult } from '../../types'\nimport { withFieldElementRegistry } from './withFieldElementRegistry'\nimport { TextInputField } from '@/components/Common'\nimport type { TextInputProps } from '@/components/Common/UI/TextInput/TextInputTypes'\n\n/**\n * Props accepted by a text input field surfaced through a form hook.\n * Exposes a `transform` function for preprocessing raw input, `placeholder` text,\n * and `validationMessages` for custom error text alongside the shared base field\n * attributes (`label`, `description`).\n *\n * @typeParam TErrorCode - Required validation error code keys mapped via `validationMessages`.\n * @typeParam TOptionalErrorCode - Optional validation error code keys mapped via `validationMessages`.\n * @public\n * @group Hook field props\n */\nexport interface TextInputHookFieldProps<\n TErrorCode extends string = never,\n TOptionalErrorCode extends string = never,\n> extends BaseFieldProps {\n /** The field name; must match the corresponding key in the form schema. */\n name: string\n /** Form hook result to connect to; falls back to the nearest `SDKFormProvider` when omitted. */\n formHookResult?: FormHookResult\n /** Custom error text keyed by validation error code. */\n validationMessages?: ValidationMessages<TErrorCode, TOptionalErrorCode>\n /** Transforms the raw string value on every change before storing it; use for normalization such as trimming or changing case. */\n transform?: (value: string) => string\n /** Placeholder text displayed when the field has no value. */\n placeholder?: string\n /** Replaces the default text input UI component; must accept the same props as `TextInputProps`. */\n FieldComponent?: ComponentType<TextInputProps>\n}\n\n/**\n * Text input field connected to a partner form hook result via `useHookFieldResolution`.\n *\n * @typeParam TErrorCode - Required validation error code keys mapped via `validationMessages`.\n * @typeParam TOptionalErrorCode - Optional validation error code keys mapped via `validationMessages`.\n * @param props - Field configuration including `name`, `formHookResult`, `transform`, `placeholder`, and label content.\n * @returns The rendered text input field wrapped in the field element registry.\n * @internal\n */\nexport function TextInputHookField<\n TErrorCode extends string,\n TOptionalErrorCode extends string = never,\n>({\n name,\n formHookResult,\n label,\n description,\n validationMessages,\n transform,\n placeholder,\n FieldComponent,\n}: TextInputHookFieldProps<TErrorCode, TOptionalErrorCode>) {\n const { metadata, control, errorMessage, fieldElementRegistry } = useHookFieldResolution(\n name,\n formHookResult,\n validationMessages,\n )\n const fieldMetadata = metadata[name]\n\n return withFieldElementRegistry(\n fieldElementRegistry,\n <TextInputField\n name={name}\n control={control}\n label={label}\n description={description}\n errorMessage={errorMessage}\n isRequired={fieldMetadata?.isRequired}\n isDisabled={fieldMetadata?.isDisabled}\n transform={transform}\n placeholder={placeholder}\n FieldComponent={FieldComponent}\n />,\n )\n}\n"],"names":["TextInputHookField","name","formHookResult","label","description","validationMessages","transform","placeholder","FieldComponent","metadata","control","errorMessage","fieldElementRegistry","useHookFieldResolution","fieldMetadata","withFieldElementRegistry","jsx","TextInputField"],"mappings":";;;;;;;AA6CO,SAASA,EAGd;AAAA,EACA,MAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,gBAAAC;AACF,GAA4D;AAC1D,QAAM,EAAE,UAAAC,GAAU,SAAAC,GAAS,cAAAC,GAAc,sBAAAC,MAAyBC;AAAA,IAChEZ;AAAA,IACAC;AAAA,IACAG;AAAA,EAAA,GAEIS,IAAgBL,EAASR,CAAI;AAEnC,SAAOc;AAAA,IACLH;AAAA,IACA,gBAAAI;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,MAAAhB;AAAA,QACA,SAAAS;AAAA,QACA,OAAAP;AAAA,QACA,aAAAC;AAAA,QACA,cAAAO;AAAA,QACA,YAAYG,GAAe;AAAA,QAC3B,YAAYA,GAAe;AAAA,QAC3B,WAAAR;AAAA,QACA,aAAAC;AAAA,QACA,gBAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -77,6 +77,7 @@ export type ValidationMessages<TErrorCode extends string, TOptionalErrorCode ext
77
77
  * Common presentation props accepted by every hook field component.
78
78
  *
79
79
  * @public
80
+ * @group Hook field props
80
81
  */
81
82
  export interface BaseFieldProps {
82
83
  /** Visible label rendered above the field. */
@@ -90,6 +91,7 @@ export interface BaseFieldProps {
90
91
  *
91
92
  * @typeParam TProps - Original hook field props type that includes a `name` property.
92
93
  * @public
94
+ * @group Hook field props
93
95
  */
94
96
  export type HookFieldProps<TProps extends {
95
97
  name: string;
@@ -107,6 +109,7 @@ export type HookFieldProps<TProps extends {
107
109
  *
108
110
  * @typeParam TFormData - Shape of the form values managed by react-hook-form.
109
111
  * @public
112
+ * @group Form hook results
110
113
  */
111
114
  export interface HookFormInternals<TFormData extends FieldValues = FieldValues> {
112
115
  /** The full react-hook-form return value; use for watching fields, setting values, or triggering validation. */
@@ -138,6 +141,7 @@ export interface HookFormInternals<TFormData extends FieldValues = FieldValues>
138
141
  * ready-state shape (data, form, actions, status) becomes available.
139
142
  *
140
143
  * @public
144
+ * @group Common hook results
141
145
  */
142
146
  export interface HookLoadingResult {
143
147
  /** Always `true` in this branch; narrows to `false` once the hook's ready-state shape is available. */
@@ -156,6 +160,7 @@ export interface HookLoadingResult {
156
160
  *
157
161
  * @typeParam T - Type of the saved entity returned by the underlying mutation.
158
162
  * @public
163
+ * @group Form hook results
159
164
  */
160
165
  export interface HookSubmitResult<T> {
161
166
  /** Whether the submission created a new entity or updated an existing one. */
@@ -175,6 +180,7 @@ export interface HookSubmitResult<T> {
175
180
  * the supported way to discriminate fetch vs submit failures today.
176
181
  *
177
182
  * @public
183
+ * @group Common hook results
178
184
  */
179
185
  export interface HookErrorHandling {
180
186
  /** Aggregated fetch and submit errors as normalized {@link SDKError} values. */
@@ -196,6 +202,7 @@ export interface HookErrorHandling {
196
202
  * @typeParam TData - Shape of the data the hook exposes once loaded.
197
203
  * @typeParam TStatus - Shape of the status flags the hook exposes.
198
204
  * @public
205
+ * @group Common hook results
199
206
  */
200
207
  export interface BaseHookReady<TData extends Record<string, unknown> = Record<string, unknown>, TStatus extends Record<string, unknown> = Record<string, unknown>> {
201
208
  /** Always `false` in this branch; discriminates from {@link HookLoadingResult}. */
@@ -225,6 +232,7 @@ export interface BaseHookReady<TData extends Record<string, unknown> = Record<st
225
232
  * @typeParam TFields - Shape of the pre-bound `Fields` component map.
226
233
  * @typeParam TFormOutputs - Shape of the values produced once the schema parses on submit (the resolver output / `TTransformedValues`). Defaults to `TFormData`, which holds whenever the form's input and parsed-output shapes coincide; pass it explicitly when a schema transform makes them diverge.
227
234
  * @public
235
+ * @group Form hook results
228
236
  */
229
237
  export interface BaseFormHookReady<TFieldsMetadata extends FieldsMetadata = FieldsMetadata, TFormData extends FieldValues = FieldValues, TFields extends object = Record<string, unknown>, TFormOutputs = TFormData> {
230
238
  /** Always `false` in this branch; discriminates from {@link HookLoadingResult}. */
@@ -259,6 +267,7 @@ export interface BaseFormHookReady<TFieldsMetadata extends FieldsMetadata = Fiel
259
267
  * under an `SDKFormProvider`.
260
268
  *
261
269
  * @public
270
+ * @group Form hook results
262
271
  * @privateRemarks
263
272
  * `_fieldElementRegistry` is forwarded from {@link HookFormInternals} so HookFields
264
273
  * can self-publish the registry for descendant `useField` calls when partners
@@ -185,6 +185,7 @@ export declare const companyEvents: {
185
185
  export declare const contractorEvents: {
186
186
  readonly CONTRACTOR_SELF_ONBOARDING_START: "contractor/selfOnboarding/start";
187
187
  readonly CONTRACTOR_SELF_ONBOARDING_DONE: "contractor/selfOnboarding/done";
188
+ readonly CONTRACTOR_SELF_ONBOARDING_CANCELLED: "contractor/selfOnboarding/cancelled";
188
189
  readonly CONTRACTOR_ADDRESS_UPDATED: "contractor/address/updated";
189
190
  readonly CONTRACTOR_ADDRESS_DONE: "contractor/address/done";
190
191
  readonly CONTRACTOR_PAYMENT_METHOD_UPDATED: "contractor/paymentMethod/updated";
@@ -553,6 +554,7 @@ export declare const componentEvents: {
553
554
  readonly RUN_PAYROLL_GROSS_UP_CALCULATED: "runPayroll/grossUp/calculated";
554
555
  readonly CONTRACTOR_SELF_ONBOARDING_START: "contractor/selfOnboarding/start";
555
556
  readonly CONTRACTOR_SELF_ONBOARDING_DONE: "contractor/selfOnboarding/done";
557
+ readonly CONTRACTOR_SELF_ONBOARDING_CANCELLED: "contractor/selfOnboarding/cancelled";
556
558
  readonly CONTRACTOR_ADDRESS_UPDATED: "contractor/address/updated";
557
559
  readonly CONTRACTOR_ADDRESS_DONE: "contractor/address/done";
558
560
  readonly CONTRACTOR_PAYMENT_METHOD_UPDATED: "contractor/paymentMethod/updated";
@@ -765,6 +767,7 @@ export type EventType = (typeof componentEvents)[keyof typeof componentEvents];
765
767
  * record. The values mirror the strings returned by the API.
766
768
  *
767
769
  * @public
770
+ * @page employee/types
768
771
  */
769
772
  export declare const EmployeeOnboardingStatus: {
770
773
  readonly ADMIN_ONBOARDING_INCOMPLETE: "admin_onboarding_incomplete";
@@ -785,6 +788,7 @@ export declare const EmployeeOnboardingStatus: {
785
788
  * flow (invited, started, or overdue) versus an admin-driven onboarding flow.
786
789
  *
787
790
  * @public
791
+ * @page employee/types
788
792
  */
789
793
  export declare const EmployeeSelfOnboardingStatuses: Set<string>;
790
794
  /**
@@ -795,6 +799,7 @@ export declare const EmployeeSelfOnboardingStatuses: Set<string>;
795
799
  * record. The values mirror the strings returned by the API.
796
800
  *
797
801
  * @public
802
+ * @page contractor/types
798
803
  */
799
804
  export declare const ContractorOnboardingStatus: {
800
805
  readonly ADMIN_ONBOARDING_INCOMPLETE: "admin_onboarding_incomplete";
@@ -815,6 +820,7 @@ export declare const ContractorOnboardingStatus: {
815
820
  * onboarding flow.
816
821
  *
817
822
  * @public
823
+ * @page contractor/types
818
824
  */
819
825
  export declare const ContractorSelfOnboardingStatuses: Set<ContractorOnboardingStatus1>;
820
826
  /**
@@ -862,6 +868,7 @@ export declare const HOURS_PER_PAY_PERIOD_ANNUALLY = 2080;
862
868
  * `SignatureForm`.
863
869
  *
864
870
  * @public
871
+ * @page employee/types
865
872
  */
866
873
  export declare const I9_FORM_NAME = "US_I-9";
867
874
  /**
@@ -869,6 +876,7 @@ export declare const I9_FORM_NAME = "US_I-9";
869
876
  * in state selection controls.
870
877
  *
871
878
  * @public
879
+ * @page employee/types
872
880
  */
873
881
  export declare const STATES_ABBR: readonly ["AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY"];
874
882
  /**
@@ -876,6 +884,7 @@ export declare const STATES_ABBR: readonly ["AL", "AK", "AZ", "AR", "CA", "CO",
876
884
  * {@link STATES_ABBR}.
877
885
  *
878
886
  * @public
887
+ * @page employee/types
879
888
  */
880
889
  export type StateAbbreviation = (typeof STATES_ABBR)[number];
881
890
  /** @internal */
@@ -892,6 +901,7 @@ export declare const SIGNATORY_TITLES: {
892
901
  * Pay period unit values for the `paymentUnit` field on a compensation, describing the unit a pay rate is expressed against.
893
902
  *
894
903
  * @public
904
+ * @page employee/types
895
905
  */
896
906
  export declare const PAY_PERIODS: {
897
907
  readonly HOUR: "Hour";