@vtex/faststore 0.0.4 → 0.0.6

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 (306) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/dist/actions.json +181 -0
  3. package/dist/catalog.json +1595 -481
  4. package/dist/client.d.ts +2 -1
  5. package/dist/client.js +2 -1
  6. package/dist/components.d.ts +31 -7
  7. package/dist/components.js +35 -13
  8. package/dist/content-types.json +73 -0
  9. package/dist/docs/access-code-sign-in.md +1 -1
  10. package/dist/docs/account-access-gate.md +153 -0
  11. package/dist/docs/account-entry-point.md +1 -2
  12. package/dist/docs/account-menu.md +164 -0
  13. package/dist/docs/address-summary.md +24 -3
  14. package/dist/docs/alert-dialog.md +204 -0
  15. package/dist/docs/billing-address.md +284 -0
  16. package/dist/docs/buy-button.md +1 -1
  17. package/dist/docs/card-entry.md +250 -0
  18. package/dist/docs/cardholder-document.md +142 -0
  19. package/dist/docs/cart.md +1 -1
  20. package/dist/docs/client-preferences-fieldset.md +148 -0
  21. package/dist/docs/client-preferences.md +2 -1
  22. package/dist/docs/client-profile-fieldset.md +184 -0
  23. package/dist/docs/client-profile.md +1 -1
  24. package/dist/docs/document-field.md +58 -4
  25. package/dist/docs/field.md +317 -0
  26. package/dist/docs/form.md +307 -0
  27. package/dist/docs/identity-edit.md +6 -6
  28. package/dist/docs/identity-summary.md +5 -5
  29. package/dist/docs/installments.md +248 -0
  30. package/dist/docs/my-account-profile.md +1 -0
  31. package/dist/docs/order-placed-payment-summary.md +138 -0
  32. package/dist/docs/payment-method-badges.md +232 -0
  33. package/dist/docs/payment-methods.md +1 -0
  34. package/dist/docs/payment.md +218 -0
  35. package/dist/docs/phone-field.md +58 -4
  36. package/dist/docs/place-order.md +157 -0
  37. package/dist/docs/save-card.md +186 -0
  38. package/dist/docs/saved-cards.md +218 -0
  39. package/dist/docs/select.md +465 -0
  40. package/dist/docs/session.md +1 -1
  41. package/dist/docs/shipping-address.md +110 -258
  42. package/dist/docs/sign-in-redirect.md +1 -1
  43. package/dist/index.d.ts +4 -1
  44. package/dist/internal/client.d.ts +3 -1
  45. package/dist/internal/client.js +3 -1
  46. package/dist/matter/access-code-sign-in/access-code-sign-in.js +9 -8
  47. package/dist/matter/access-code-sign-in/access-code-sign-in.js.map +1 -1
  48. package/dist/matter/account-access-gate/account-access-gate.d.ts +86 -0
  49. package/dist/matter/account-access-gate/account-access-gate.js +283 -0
  50. package/dist/matter/account-access-gate/account-access-gate.js.map +1 -0
  51. package/dist/matter/account-access-gate/sign-out-intent.d.ts +17 -0
  52. package/dist/matter/account-access-gate/sign-out-intent.js +62 -0
  53. package/dist/matter/account-access-gate/sign-out-intent.js.map +1 -0
  54. package/dist/matter/account-entry-point/account-entry-point.js +2 -2
  55. package/dist/matter/account-entry-point/account-entry-point.js.map +1 -1
  56. package/dist/matter/account-menu/account-menu.d.ts +88 -0
  57. package/dist/matter/account-menu/account-menu.js +246 -0
  58. package/dist/matter/account-menu/account-menu.js.map +1 -0
  59. package/dist/matter/billing-address/billing-address.d.ts +165 -0
  60. package/dist/matter/billing-address/billing-address.js +408 -0
  61. package/dist/matter/billing-address/billing-address.js.map +1 -0
  62. package/dist/matter/card-entry/card-capture.d.ts +25 -0
  63. package/dist/matter/card-entry/card-capture.js +25 -0
  64. package/dist/matter/card-entry/card-capture.js.map +1 -0
  65. package/dist/matter/card-entry/card-entry.d.ts +120 -0
  66. package/dist/matter/card-entry/card-entry.js +832 -0
  67. package/dist/matter/card-entry/card-entry.js.map +1 -0
  68. package/dist/matter/cardholder-document/cardholder-document.d.ts +45 -0
  69. package/dist/matter/cardholder-document/cardholder-document.js +70 -0
  70. package/dist/matter/cardholder-document/cardholder-document.js.map +1 -0
  71. package/dist/matter/cart/cart.d.ts +1 -1
  72. package/dist/matter/cart/cart.js +2 -2
  73. package/dist/matter/cart/cart.js.map +1 -1
  74. package/dist/matter/client-preferences/client-preferences-fieldset.d.ts +77 -0
  75. package/dist/matter/client-preferences/client-preferences-fieldset.js +299 -0
  76. package/dist/matter/client-preferences/client-preferences-fieldset.js.map +1 -0
  77. package/dist/matter/client-preferences/client-preferences.d.ts +3 -5
  78. package/dist/matter/client-preferences/client-preferences.js +6 -6
  79. package/dist/matter/client-preferences/client-preferences.js.map +1 -1
  80. package/dist/matter/client-profile/client-profile.d.ts +4 -6
  81. package/dist/matter/client-profile/client-profile.js +9 -6
  82. package/dist/matter/client-profile/client-profile.js.map +1 -1
  83. package/dist/matter/client-profile-form/client-profile-fieldset.d.ts +119 -0
  84. package/dist/matter/client-profile-form/client-profile-fieldset.js +488 -0
  85. package/dist/matter/client-profile-form/client-profile-fieldset.js.map +1 -0
  86. package/dist/matter/delivery-options/delivery-options.js.map +1 -1
  87. package/dist/matter/identity-edit/identity-edit.js +2 -2
  88. package/dist/matter/identity-edit/identity-edit.js.map +1 -1
  89. package/dist/matter/identity-summary/identity-summary.js +2 -2
  90. package/dist/matter/identity-summary/identity-summary.js.map +1 -1
  91. package/dist/matter/installments/installments-select.d.ts +42 -0
  92. package/dist/matter/installments/installments-select.js +167 -0
  93. package/dist/matter/installments/installments-select.js.map +1 -0
  94. package/dist/matter/installments/installments.d.ts +58 -0
  95. package/dist/matter/installments/installments.js +176 -0
  96. package/dist/matter/installments/installments.js.map +1 -0
  97. package/dist/matter/installments/use-installments-selection.d.ts +29 -0
  98. package/dist/matter/installments/use-installments-selection.js +95 -0
  99. package/dist/matter/installments/use-installments-selection.js.map +1 -0
  100. package/dist/matter/my-account-profile/my-account-profile.js +5 -5
  101. package/dist/matter/my-account-profile/my-account-profile.js.map +1 -1
  102. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.d.ts +63 -0
  103. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js +305 -0
  104. package/dist/matter/order-placed-payment-summary/order-placed-payment-summary.js.map +1 -0
  105. package/dist/matter/payment/payment-card-capture.d.ts +19 -0
  106. package/dist/matter/payment/payment-card-capture.js +129 -0
  107. package/dist/matter/payment/payment-card-capture.js.map +1 -0
  108. package/dist/matter/payment/payment-controller.d.ts +24 -0
  109. package/dist/matter/payment/payment-controller.js +107 -0
  110. package/dist/matter/payment/payment-controller.js.map +1 -0
  111. package/dist/matter/payment/payment-method-badges.d.ts +57 -0
  112. package/dist/matter/payment/payment-method-badges.js +192 -0
  113. package/dist/matter/payment/payment-method-badges.js.map +1 -0
  114. package/dist/matter/payment/payment.d.ts +89 -0
  115. package/dist/matter/payment/payment.js +263 -0
  116. package/dist/matter/payment/payment.js.map +1 -0
  117. package/dist/matter/payment/use-payment-method-selection.d.ts +302 -0
  118. package/dist/matter/payment/use-payment-method-selection.js +458 -0
  119. package/dist/matter/payment/use-payment-method-selection.js.map +1 -0
  120. package/dist/matter/payment/use-payment-submit-gate.d.ts +111 -0
  121. package/dist/matter/payment/use-payment-submit-gate.js +144 -0
  122. package/dist/matter/payment/use-payment-submit-gate.js.map +1 -0
  123. package/dist/matter/place-order/place-order.d.ts +74 -0
  124. package/dist/matter/place-order/place-order.js +379 -0
  125. package/dist/matter/place-order/place-order.js.map +1 -0
  126. package/dist/matter/product-list/product-list.d.ts +1 -0
  127. package/dist/matter/product-list/product-list.js.map +1 -1
  128. package/dist/matter/product-shelf/product-shelf.d.ts +1 -0
  129. package/dist/matter/product-shelf/product-shelf.js +2 -0
  130. package/dist/matter/product-shelf/product-shelf.js.map +1 -1
  131. package/dist/matter/region/region.js +1 -1
  132. package/dist/matter/region/region.js.map +1 -1
  133. package/dist/matter/save-card/save-card.d.ts +49 -0
  134. package/dist/matter/save-card/save-card.js +188 -0
  135. package/dist/matter/save-card/save-card.js.map +1 -0
  136. package/dist/matter/saved-cards/saved-cards.d.ts +79 -0
  137. package/dist/matter/saved-cards/saved-cards.js +387 -0
  138. package/dist/matter/saved-cards/saved-cards.js.map +1 -0
  139. package/dist/matter/shipping-address/country-descriptors.js +20 -10
  140. package/dist/matter/shipping-address/country-descriptors.js.map +1 -1
  141. package/dist/matter/shipping-address/shipping-address.d.ts +113 -174
  142. package/dist/matter/shipping-address/shipping-address.js +481 -792
  143. package/dist/matter/shipping-address/shipping-address.js.map +1 -1
  144. package/dist/matter/shipping-simulator/shipping-simulator.js.map +1 -1
  145. package/dist/matter/variant-selector/variant-selector.js +1 -1
  146. package/dist/particles/address-summary/address-summary.d.ts +24 -0
  147. package/dist/particles/address-summary/address-summary.js +83 -2
  148. package/dist/particles/address-summary/address-summary.js.map +1 -1
  149. package/dist/particles/alert-dialog/alert-dialog.d.ts +68 -0
  150. package/dist/particles/alert-dialog/alert-dialog.js +187 -0
  151. package/dist/particles/alert-dialog/alert-dialog.js.map +1 -0
  152. package/dist/particles/checkbox/checkbox.d.ts +7 -3
  153. package/dist/particles/checkbox/checkbox.js +4 -1
  154. package/dist/particles/checkbox/checkbox.js.map +1 -1
  155. package/dist/particles/document-field/document-field.d.ts +48 -5
  156. package/dist/particles/document-field/document-field.js +189 -32
  157. package/dist/particles/document-field/document-field.js.map +1 -1
  158. package/dist/particles/field/bound-field-registry.js +52 -0
  159. package/dist/particles/field/bound-field-registry.js.map +1 -0
  160. package/dist/particles/field/field.d.ts +116 -0
  161. package/dist/particles/field/field.js +497 -6
  162. package/dist/particles/field/field.js.map +1 -1
  163. package/dist/particles/fieldset/fieldset.js +2 -2
  164. package/dist/particles/fieldset/fieldset.js.map +1 -1
  165. package/dist/particles/footer-social/footer-social.js +1 -1
  166. package/dist/particles/form/form.d.ts +104 -0
  167. package/dist/particles/form/form.js +485 -0
  168. package/dist/particles/form/form.js.map +1 -0
  169. package/dist/particles/incentives/incentives.js +1 -1
  170. package/dist/particles/phone-field/phone-field.d.ts +38 -10
  171. package/dist/particles/phone-field/phone-field.js +183 -39
  172. package/dist/particles/phone-field/phone-field.js.map +1 -1
  173. package/dist/particles/postal-code-field/postal-code-field.js +2 -2
  174. package/dist/particles/postal-code-field/postal-code-field.js.map +1 -1
  175. package/dist/particles/select/field-select.d.ts +43 -0
  176. package/dist/particles/select/field-select.js +150 -0
  177. package/dist/particles/select/field-select.js.map +1 -0
  178. package/dist/particles/select/select.d.ts +2 -0
  179. package/dist/particles/select/select.js.map +1 -1
  180. package/dist/particles/shared/compose-refs.js +21 -0
  181. package/dist/particles/shared/compose-refs.js.map +1 -0
  182. package/dist/schema.graphql +701 -2
  183. package/dist/sdk/actions/analytics-action-provider.d.ts +15 -0
  184. package/dist/sdk/actions/analytics-action-provider.js +19 -0
  185. package/dist/sdk/actions/analytics-action-provider.js.map +1 -0
  186. package/dist/sdk/actions/cart-action-provider.d.ts +1 -1
  187. package/dist/sdk/actions/cart-action-provider.js +1 -1
  188. package/dist/sdk/actions/cart-action-provider.js.map +1 -1
  189. package/dist/sdk/actions/index.d.ts +3 -1
  190. package/dist/sdk/actions/index.js +3 -1
  191. package/dist/sdk/actions/payment-action-provider.d.ts +22 -0
  192. package/dist/sdk/actions/payment-action-provider.js +26 -0
  193. package/dist/sdk/actions/payment-action-provider.js.map +1 -0
  194. package/dist/sdk/actions/session-action-provider.d.ts +1 -1
  195. package/dist/sdk/actions/session-action-provider.js +1 -1
  196. package/dist/sdk/actions/session-action-provider.js.map +1 -1
  197. package/dist/sdk/actions/shipping-action-provider.d.ts +1 -1
  198. package/dist/sdk/actions/shipping-action-provider.js +1 -1
  199. package/dist/sdk/actions/shipping-action-provider.js.map +1 -1
  200. package/dist/sdk/actions/types.d.ts +6 -2
  201. package/dist/sdk/analytics/analytics-destination.d.ts +43 -0
  202. package/dist/sdk/analytics/analytics-destination.js +90 -0
  203. package/dist/sdk/analytics/analytics-destination.js.map +1 -0
  204. package/dist/sdk/analytics/use-analytics-actions.d.ts +57 -0
  205. package/dist/sdk/analytics/use-analytics-actions.js +108 -0
  206. package/dist/sdk/analytics/use-analytics-actions.js.map +1 -0
  207. package/dist/sdk/cache/storefront-cache.js +1 -1
  208. package/dist/sdk/cache/storefront-cache.js.map +1 -1
  209. package/dist/sdk/cart/operations.d.ts +4 -4
  210. package/dist/sdk/cart/operations.js +1 -1
  211. package/dist/sdk/cart/operations.js.map +1 -1
  212. package/dist/sdk/cart/optimistic.js +1 -1
  213. package/dist/sdk/cart/optimistic.js.map +1 -1
  214. package/dist/sdk/cart/use-cart-actions.d.ts +1 -1
  215. package/dist/sdk/cart/use-cart-actions.js +4 -4
  216. package/dist/sdk/cart/use-cart-actions.js.map +1 -1
  217. package/dist/sdk/cart/use-cart-validate-on-open.js +1 -1
  218. package/dist/sdk/cart/use-cart-validate-on-open.js.map +1 -1
  219. package/dist/sdk/cart/write-gate.js +1 -1
  220. package/dist/sdk/cart/write-gate.js.map +1 -1
  221. package/dist/sdk/data/entity-resolution-context.js +31 -0
  222. package/dist/sdk/data/entity-resolution-context.js.map +1 -0
  223. package/dist/sdk/data/entity-subscriber.js +18 -8
  224. package/dist/sdk/data/entity-subscriber.js.map +1 -1
  225. package/dist/sdk/data/index.js +1 -0
  226. package/dist/sdk/data/page-reactive-data-root.d.ts +38 -2
  227. package/dist/sdk/data/page-reactive-data-root.js +4 -2
  228. package/dist/sdk/data/page-reactive-data-root.js.map +1 -1
  229. package/dist/sdk/data/reactive-data-provider.d.ts +1 -1
  230. package/dist/sdk/data/reactive-data-provider.js +8 -4
  231. package/dist/sdk/data/reactive-data-provider.js.map +1 -1
  232. package/dist/sdk/data/reactive-list-item-data-provider.d.ts +1 -1
  233. package/dist/sdk/data/reactive-list-item-data-provider.js +13 -5
  234. package/dist/sdk/data/reactive-list-item-data-provider.js.map +1 -1
  235. package/dist/sdk/data/use-reactive-data-settled.js +39 -0
  236. package/dist/sdk/data/use-reactive-data-settled.js.map +1 -0
  237. package/dist/sdk/data/use-reactive-entity.js +6 -2
  238. package/dist/sdk/data/use-reactive-entity.js.map +1 -1
  239. package/dist/sdk/generated/fragment-types.js +2 -0
  240. package/dist/sdk/generated/fragment-types.js.map +1 -1
  241. package/dist/sdk/generated/gql.js +2 -1
  242. package/dist/sdk/generated/gql.js.map +1 -1
  243. package/dist/sdk/generated/graphql.js +85 -1
  244. package/dist/sdk/generated/graphql.js.map +1 -1
  245. package/dist/sdk/i18n/messages/en-US.js +3 -0
  246. package/dist/sdk/i18n/messages/en-US.json +3 -0
  247. package/dist/sdk/i18n/messages/en-US.json.d.ts +3 -0
  248. package/dist/sdk/i18n/messages/es-ES.js +3 -0
  249. package/dist/sdk/i18n/messages/es-ES.json +3 -0
  250. package/dist/sdk/i18n/messages/pt-BR.js +3 -0
  251. package/dist/sdk/i18n/messages/pt-BR.json +3 -0
  252. package/dist/sdk/identity/operations.js.map +1 -1
  253. package/dist/sdk/identity/use-identity-actions.d.ts +1 -1
  254. package/dist/sdk/identity/use-identity-actions.js +3 -2
  255. package/dist/sdk/identity/use-identity-actions.js.map +1 -1
  256. package/dist/sdk/payment/gateway-origin.js +35 -0
  257. package/dist/sdk/payment/gateway-origin.js.map +1 -0
  258. package/dist/sdk/payment/gateway.d.ts +85 -0
  259. package/dist/sdk/payment/gateway.js +183 -0
  260. package/dist/sdk/payment/gateway.js.map +1 -0
  261. package/dist/sdk/payment/operations.d.ts +52 -0
  262. package/dist/sdk/payment/operations.js +223 -0
  263. package/dist/sdk/payment/operations.js.map +1 -0
  264. package/dist/sdk/payment/security-code-mask.js +71 -0
  265. package/dist/sdk/payment/security-code-mask.js.map +1 -0
  266. package/dist/sdk/payment/submission-registry.d.ts +33 -0
  267. package/dist/sdk/payment/submission-registry.js +58 -0
  268. package/dist/sdk/payment/submission-registry.js.map +1 -0
  269. package/dist/sdk/payment/use-payment-actions.d.ts +78 -0
  270. package/dist/sdk/payment/use-payment-actions.js +276 -0
  271. package/dist/sdk/payment/use-payment-actions.js.map +1 -0
  272. package/dist/sdk/payment/use-place-order.d.ts +65 -0
  273. package/dist/sdk/payment/use-place-order.js +640 -0
  274. package/dist/sdk/payment/use-place-order.js.map +1 -0
  275. package/dist/sdk/session/auth-operations.d.ts +1 -1
  276. package/dist/sdk/session/auth-operations.js.map +1 -1
  277. package/dist/sdk/session/use-session-actions.d.ts +1 -1
  278. package/dist/sdk/session/use-session-actions.js.map +1 -1
  279. package/dist/sdk/session/use-session-revalidation.js +65 -0
  280. package/dist/sdk/session/use-session-revalidation.js.map +1 -0
  281. package/dist/sdk/shipping/option-select-operations.d.ts +1 -1
  282. package/dist/sdk/shipping/option-select-operations.js.map +1 -1
  283. package/dist/sdk/shipping/request-timeout.js +1 -1
  284. package/dist/sdk/shipping/request-timeout.js.map +1 -1
  285. package/dist/sdk/shipping/shipping-operations.d.ts +1 -1
  286. package/dist/sdk/shipping/shipping-operations.js.map +1 -1
  287. package/dist/sdk/shipping/use-shipping-actions.d.ts +2 -2
  288. package/dist/sdk/shipping/use-shipping-actions.js +1 -1
  289. package/dist/sdk/shipping/use-shipping-actions.js.map +1 -1
  290. package/dist/sdk/state/cart.d.ts +3 -4
  291. package/dist/sdk/state/cart.js +6 -7
  292. package/dist/sdk/state/cart.js.map +1 -1
  293. package/dist/utils/loggable-error-name.js +49 -0
  294. package/dist/utils/loggable-error-name.js.map +1 -0
  295. package/dist/utils/resolve-authored-copy.js +18 -0
  296. package/dist/utils/resolve-authored-copy.js.map +1 -0
  297. package/dist/utils/safe-href.js +3 -3
  298. package/dist/utils/safe-href.js.map +1 -1
  299. package/dist/utils/substitute-template.js +33 -0
  300. package/dist/utils/substitute-template.js.map +1 -0
  301. package/package.json +2 -1
  302. package/src/styles/tailwind.css +34 -0
  303. package/dist/docs/client-profile-form.md +0 -192
  304. package/dist/matter/client-profile-form/client-profile-form.d.ts +0 -126
  305. package/dist/matter/client-profile-form/client-profile-form.js +0 -662
  306. package/dist/matter/client-profile-form/client-profile-form.js.map +0 -1
@@ -1,662 +0,0 @@
1
- "use client";
2
- import { defineComponent } from "../../core/dist/define-component.js";
3
- import "../../core/dist/index.js";
4
- import { Field } from "../../particles/field/field.js";
5
- import { useActionsOverride } from "../../sdk/actions/actions-override-context.js";
6
- import { useDataOverride } from "../../sdk/data/data-override-context.js";
7
- import { useSession } from "../session/session.js";
8
- import { Icon } from "../../particles/icon/icon.js";
9
- import { Checkbox } from "../../particles/checkbox/checkbox.js";
10
- import { PhoneField, toE164, validatePhoneNumber } from "../../particles/phone-field/phone-field.js";
11
- import { DocumentField, isSupportedDocumentType, isValidDocument } from "../../particles/document-field/document-field.js";
12
- import { Fieldset } from "../../particles/fieldset/fieldset.js";
13
- import { createContext, useContext, useRef, useState } from "react";
14
- import { jsx, jsxs } from "react/jsx-runtime";
15
- //#region src/matter/client-profile-form/client-profile-form.tsx
16
- /**
17
- * The `client-profile-form` compound (specs/fspg-863-client-profile-form.md) — the batched,
18
- * explicit-save customer-information form, decomposed into freely-composable parts. `Root` owns the
19
- * mechanics (a local draft across BOTH sibling identity entities, dirty tracking, format validation,
20
- * a single batched Save that dispatches at most one `clientProfileUpdate` and one
21
- * `clientPreferencesUpdate` per press carrying only touched fields, and the confirmation on a clean
22
- * save); it publishes no signal, so nothing outside it reacts to a completed press. The
23
- * field/fieldset/feedback leaves are thin, context-bound, and placed by the
24
- * schema author in any order/subset.
25
- *
26
- * Composability is the point: a merchant whose platform config drops a field, reorders them, or adds
27
- * a derived one just composes accordingly — nothing is hard-coded into a closed template. A part that
28
- * needs extra data declares its own `requiresContext`.
29
- *
30
- * Email is read-only (identification, not profile data — `EmailIdentificationControl`'s job). The
31
- * document field self-gates on `isSupportedDocumentType(documentType)`.
32
- */
33
- const fragment = `
34
- fragment ClientProfileFormData on Query {
35
- clientProfile {
36
- __typename
37
- id
38
- email
39
- firstName
40
- lastName
41
- phone
42
- document
43
- }
44
- clientPreferences {
45
- __typename
46
- id
47
- optinNewsLetter
48
- savePersonalData
49
- }
50
- }
51
- `;
52
- const VALIDATION_ORDER = ["phone", "document"];
53
- /** Shown when a write throws instead of resolving `userErrors`; the resolved case carries its own message. */
54
- const SAVE_FAILED_MESSAGE = "Unable to save your information. Please try again.";
55
- function stripNonDigits(value) {
56
- return value.replace(/\D/g, "");
57
- }
58
- const CLIENT_PROFILE_FORM_UNSET = Symbol("ClientProfileFormContextUnset");
59
- const ClientProfileFormContext = createContext(CLIENT_PROFILE_FORM_UNSET);
60
- function useClientProfileFormContext() {
61
- const ctx = useContext(ClientProfileFormContext);
62
- if (ctx === CLIENT_PROFILE_FORM_UNSET) throw new Error("ClientProfileForm parts must be used inside ClientProfileForm.Root.");
63
- return ctx;
64
- }
65
- const ClientProfileFormRootDefinition = defineComponent({
66
- name: "ClientProfileFormRoot",
67
- importPath: "@vtex/faststore/components",
68
- component: ClientProfileFormRoot,
69
- fragment,
70
- fetchStrategy: "reactive",
71
- requiresContext: "session",
72
- providesContext: "client-profile-form",
73
- actions: { identity: ["clientProfileUpdate", "clientPreferencesUpdate"] },
74
- editor: {
75
- label: "Client Profile Form Root",
76
- category: "action"
77
- },
78
- schema: {
79
- country: {
80
- type: "string",
81
- default: "US",
82
- label: "Phone country (US or BR)"
83
- },
84
- documentType: {
85
- type: "string",
86
- label: "Document type (e.g. CPF)"
87
- }
88
- },
89
- guideline: "Data root + form mechanics for the batched customer-information form: owns the draft across clientProfile + clientPreferences, dirty tracking, format-only validation (never requiredness), one batched Save (dispatches only touched fields), and the confirmation on a clean save. It reports nothing to anything outside itself. Requires a SessionRoot ancestor. Compose the field/fieldset/feedback parts as children in any order/subset. See client-profile-form.md."
90
- });
91
- const ClientProfileFormFieldsetDefinition = defineComponent({
92
- name: "ClientProfileFormFieldset",
93
- importPath: "@vtex/faststore/components",
94
- component: ClientProfileFormFieldset,
95
- requiresContext: "client-profile-form",
96
- editor: {
97
- label: "Client Profile Form Fieldset",
98
- category: "layout"
99
- },
100
- schema: {
101
- legend: {
102
- type: "string",
103
- label: "Legend"
104
- },
105
- section: {
106
- type: "string",
107
- label: "Section name (data-fs hook)"
108
- }
109
- },
110
- guideline: "Optional grouping wrapper: a Fieldset whose disabled state follows the form, with an optional legend and a `section` name emitted on data-fs-client-profile-form-section for scoped styling. Compose any subset of the field parts as children. Must be inside ClientProfileForm.Root."
111
- });
112
- const ClientProfileFormEmailFieldDefinition = defineComponent({
113
- name: "ClientProfileFormEmailField",
114
- importPath: "@vtex/faststore/components",
115
- component: ClientProfileFormEmailField,
116
- requiresContext: "client-profile-form",
117
- editor: {
118
- label: "Client Profile Email Field",
119
- category: "action"
120
- },
121
- schema: { label: {
122
- type: "string",
123
- default: "Email",
124
- label: "Label"
125
- } },
126
- guideline: "Read-only email display, seeded from the profile. Must be inside ClientProfileForm.Root."
127
- });
128
- const ClientProfileFormFirstNameFieldDefinition = defineComponent({
129
- name: "ClientProfileFormFirstNameField",
130
- importPath: "@vtex/faststore/components",
131
- component: ClientProfileFormFirstNameField,
132
- requiresContext: "client-profile-form",
133
- editor: {
134
- label: "Client Profile First Name Field",
135
- category: "action"
136
- },
137
- schema: { label: {
138
- type: "string",
139
- default: "First name",
140
- label: "Label"
141
- } },
142
- guideline: "First-name text field bound to the form draft. Must be inside ClientProfileForm.Root."
143
- });
144
- const ClientProfileFormLastNameFieldDefinition = defineComponent({
145
- name: "ClientProfileFormLastNameField",
146
- importPath: "@vtex/faststore/components",
147
- component: ClientProfileFormLastNameField,
148
- requiresContext: "client-profile-form",
149
- editor: {
150
- label: "Client Profile Last Name Field",
151
- category: "action"
152
- },
153
- schema: { label: {
154
- type: "string",
155
- default: "Last name",
156
- label: "Label"
157
- } },
158
- guideline: "Last-name text field bound to the form draft. Must be inside ClientProfileForm.Root."
159
- });
160
- const ClientProfileFormPhoneFieldDefinition = defineComponent({
161
- name: "ClientProfileFormPhoneField",
162
- importPath: "@vtex/faststore/components",
163
- component: ClientProfileFormPhoneField,
164
- requiresContext: "client-profile-form",
165
- editor: {
166
- label: "Client Profile Phone Field",
167
- category: "action"
168
- },
169
- schema: { label: {
170
- type: "string",
171
- default: "Phone number",
172
- label: "Label"
173
- } },
174
- guideline: "Country-masked phone field (country from Root); format-validated on Save. Must be inside ClientProfileForm.Root."
175
- });
176
- const ClientProfileFormDocumentFieldDefinition = defineComponent({
177
- name: "ClientProfileFormDocumentField",
178
- importPath: "@vtex/faststore/components",
179
- component: ClientProfileFormDocumentField,
180
- requiresContext: "client-profile-form",
181
- editor: {
182
- label: "Client Profile Document Field",
183
- category: "action"
184
- },
185
- schema: { label: {
186
- type: "string",
187
- default: "CPF",
188
- label: "Label"
189
- } },
190
- guideline: "Tax-document field; self-gates on Root.documentType and check-digit-validates on Save. Must be inside ClientProfileForm.Root."
191
- });
192
- const ClientProfileFormNewsletterCheckboxDefinition = defineComponent({
193
- name: "ClientProfileFormNewsletterCheckbox",
194
- importPath: "@vtex/faststore/components",
195
- component: ClientProfileFormNewsletterCheckbox,
196
- requiresContext: "client-profile-form",
197
- editor: {
198
- label: "Client Profile Newsletter Checkbox",
199
- category: "action"
200
- },
201
- schema: { label: {
202
- type: "string",
203
- default: "Email me with news and offers",
204
- label: "Label"
205
- } },
206
- guideline: "Newsletter opt-in checkbox bound to the form draft. Must be inside ClientProfileForm.Root."
207
- });
208
- const ClientProfileFormSavePersonalDataCheckboxDefinition = defineComponent({
209
- name: "ClientProfileFormSavePersonalDataCheckbox",
210
- importPath: "@vtex/faststore/components",
211
- component: ClientProfileFormSavePersonalDataCheckbox,
212
- requiresContext: "client-profile-form",
213
- editor: {
214
- label: "Client Profile Save-Personal-Data Checkbox",
215
- category: "action"
216
- },
217
- schema: { label: {
218
- type: "string",
219
- default: "Save my information for next time",
220
- label: "Label"
221
- } },
222
- guideline: "Save-personal-data opt-in checkbox bound to the form draft. Must be inside ClientProfileForm.Root."
223
- });
224
- const ClientProfileFormErrorDefinition = defineComponent({
225
- name: "ClientProfileFormError",
226
- importPath: "@vtex/faststore/components",
227
- component: ClientProfileFormError,
228
- requiresContext: "client-profile-form",
229
- editor: {
230
- label: "Client Profile Form Error",
231
- category: "content"
232
- },
233
- schema: {},
234
- guideline: "Renders the inline server error (role=\"alert\") from the last Save, or nothing. Must be inside ClientProfileForm.Root."
235
- });
236
- const ClientProfileFormConfirmationDefinition = defineComponent({
237
- name: "ClientProfileFormConfirmation",
238
- importPath: "@vtex/faststore/components",
239
- component: ClientProfileFormConfirmation,
240
- requiresContext: "client-profile-form",
241
- editor: {
242
- label: "Client Profile Form Confirmation",
243
- category: "content"
244
- },
245
- schema: { message: {
246
- type: "string",
247
- default: "Your information has been saved.",
248
- label: "Confirmation message"
249
- } },
250
- guideline: "Renders the success confirmation (an <output>) after a Save with no errors, cleared on the next edit. Must be inside ClientProfileForm.Root."
251
- });
252
- const ClientProfileFormSubmitButtonDefinition = defineComponent({
253
- name: "ClientProfileFormSubmitButton",
254
- importPath: "@vtex/faststore/components",
255
- component: ClientProfileFormSubmitButton,
256
- requiresContext: "client-profile-form",
257
- editor: {
258
- label: "Client Profile Form Submit Button",
259
- category: "action"
260
- },
261
- schema: { label: {
262
- type: "string",
263
- default: "Save and continue",
264
- label: "Button label"
265
- } },
266
- guideline: "The batched-Save submit button (type=submit). Disabled while a write is in flight; renders nothing when the session is read-only. Compose an Icon + text as children, or rely on `label`. Must be inside ClientProfileForm.Root."
267
- });
268
- function validateDraft(draft, country, documentType) {
269
- const errors = {};
270
- const phoneRaw = draft.phone.trim();
271
- if (phoneRaw && !validatePhoneNumber(phoneRaw, country)) errors.phone = "Invalid phone number";
272
- if (isSupportedDocumentType(documentType)) {
273
- const digits = stripNonDigits(draft.document);
274
- if (digits && !isValidDocument(digits, documentType)) errors.document = "Invalid document number";
275
- }
276
- return errors;
277
- }
278
- /**
279
- * Data root + form shell. Seeds a local draft from `$data`, tracks dirty fields (background `$data`
280
- * refreshes only re-seed untouched fields), runs format-only validation, and on Save dispatches the
281
- * batched `clientProfileUpdate` / `clientPreferencesUpdate` (touched fields only), showing the
282
- * confirmation on success. Provides everything the field leaves need via context; renders a `<form>`
283
- * around its children.
284
- *
285
- * It publishes nothing. A finished press is not announced, so no section collapses as a result and
286
- * nothing outside this form can react to it. Whether a checkout sequences on a completed form is left to
287
- * the flow-of-steps RFC (#611).
288
- */
289
- function ClientProfileFormRoot({ country = "US", documentType, className, children, $data: $dataProp, $actions: $actionsProp }) {
290
- const $data = useDataOverride($dataProp);
291
- const $actions = useActionsOverride($actionsProp);
292
- const { canEditData } = useSession();
293
- const readOnly = !canEditData;
294
- const savedEmail = $data?.clientProfile?.email ?? "";
295
- const savedFirstName = $data?.clientProfile?.firstName ?? "";
296
- const savedLastName = $data?.clientProfile?.lastName ?? "";
297
- const savedPhone = $data?.clientProfile?.phone ?? "";
298
- const savedDocument = $data?.clientProfile?.document ?? "";
299
- const savedOptinNewsLetter = Boolean($data?.clientPreferences?.optinNewsLetter ?? false);
300
- const savedSavePersonalData = Boolean($data?.clientPreferences?.savePersonalData ?? false);
301
- const [draft, setDraft] = useState(() => ({
302
- firstName: savedFirstName,
303
- lastName: savedLastName,
304
- phone: savedPhone,
305
- document: savedDocument,
306
- optinNewsLetter: savedOptinNewsLetter,
307
- savePersonalData: savedSavePersonalData
308
- }));
309
- const [dirtyFields, setDirtyFields] = useState(/* @__PURE__ */ new Set());
310
- const [fieldErrors, setFieldErrors] = useState({});
311
- const [pending, setPending] = useState(false);
312
- const [serverError, setServerError] = useState(null);
313
- const [saved, setSaved] = useState(false);
314
- const formRef = useRef(null);
315
- const prevSavedRef = useRef({
316
- firstName: savedFirstName,
317
- lastName: savedLastName,
318
- phone: savedPhone,
319
- document: savedDocument,
320
- optinNewsLetter: savedOptinNewsLetter,
321
- savePersonalData: savedSavePersonalData
322
- });
323
- const prevSaved = prevSavedRef.current;
324
- const changedKeys = [];
325
- if (prevSaved.firstName !== savedFirstName) changedKeys.push("firstName");
326
- if (prevSaved.lastName !== savedLastName) changedKeys.push("lastName");
327
- if (prevSaved.phone !== savedPhone) changedKeys.push("phone");
328
- if (prevSaved.document !== savedDocument) changedKeys.push("document");
329
- if (prevSaved.optinNewsLetter !== savedOptinNewsLetter) changedKeys.push("optinNewsLetter");
330
- if (prevSaved.savePersonalData !== savedSavePersonalData) changedKeys.push("savePersonalData");
331
- if (changedKeys.length > 0) {
332
- const nextSaved = {
333
- firstName: savedFirstName,
334
- lastName: savedLastName,
335
- phone: savedPhone,
336
- document: savedDocument,
337
- optinNewsLetter: savedOptinNewsLetter,
338
- savePersonalData: savedSavePersonalData
339
- };
340
- prevSavedRef.current = nextSaved;
341
- setDraft((prevDraft) => {
342
- let next = prevDraft;
343
- for (const key of changedKeys) {
344
- if (dirtyFields.has(key)) continue;
345
- if (next === prevDraft) next = { ...prevDraft };
346
- next[key] = nextSaved[key];
347
- }
348
- return next;
349
- });
350
- }
351
- const disabled = pending || readOnly;
352
- function markDirty(key) {
353
- setDirtyFields((prev) => {
354
- if (prev.has(key)) return prev;
355
- const next = new Set(prev);
356
- next.add(key);
357
- return next;
358
- });
359
- }
360
- function clearFeedback() {
361
- if (saved) setSaved(false);
362
- if (serverError) setServerError(null);
363
- }
364
- function clearFieldError(key) {
365
- if (fieldErrors[key]) setFieldErrors((prev) => {
366
- const next = { ...prev };
367
- delete next[key];
368
- return next;
369
- });
370
- }
371
- function setText(key, value) {
372
- setDraft((prev) => ({
373
- ...prev,
374
- [key]: value
375
- }));
376
- markDirty(key);
377
- clearFeedback();
378
- }
379
- function setPhone(value) {
380
- setDraft((prev) => ({
381
- ...prev,
382
- phone: value
383
- }));
384
- markDirty("phone");
385
- clearFeedback();
386
- clearFieldError("phone");
387
- }
388
- function setDocument(value) {
389
- setDraft((prev) => ({
390
- ...prev,
391
- document: value
392
- }));
393
- markDirty("document");
394
- clearFeedback();
395
- clearFieldError("document");
396
- }
397
- function setCheckbox(key, checked) {
398
- setDraft((prev) => ({
399
- ...prev,
400
- [key]: checked
401
- }));
402
- markDirty(key);
403
- clearFeedback();
404
- }
405
- function focusField(key) {
406
- (formRef.current?.querySelector(`[data-fs-client-profile-form-field="${key}"] input`))?.focus();
407
- }
408
- async function handleSubmit(event) {
409
- event.preventDefault();
410
- if (readOnly || pending) return;
411
- const errors = validateDraft(draft, country, documentType);
412
- if (Object.keys(errors).length > 0) {
413
- setFieldErrors(errors);
414
- const firstInvalid = VALIDATION_ORDER.find((key) => errors[key]);
415
- if (firstInvalid) focusField(firstInvalid);
416
- return;
417
- }
418
- setFieldErrors({});
419
- if (dirtyFields.size === 0) {
420
- setServerError(null);
421
- setSaved(true);
422
- return;
423
- }
424
- const identity = $actions?.identity;
425
- if (!identity) return;
426
- const profilePayload = {};
427
- if (dirtyFields.has("firstName")) profilePayload.firstName = draft.firstName.trim();
428
- if (dirtyFields.has("lastName")) profilePayload.lastName = draft.lastName.trim();
429
- if (dirtyFields.has("phone")) profilePayload.phone = draft.phone.trim() ? toE164(draft.phone, country) : "";
430
- if (dirtyFields.has("document")) profilePayload.document = stripNonDigits(draft.document);
431
- const preferencesPayload = {};
432
- if (dirtyFields.has("optinNewsLetter")) preferencesPayload.optinNewsLetter = draft.optinNewsLetter;
433
- if (dirtyFields.has("savePersonalData")) preferencesPayload.savePersonalData = draft.savePersonalData;
434
- const writes = [];
435
- if (Object.keys(profilePayload).length > 0 && identity.clientProfileUpdate) writes.push(identity.clientProfileUpdate(profilePayload));
436
- if (Object.keys(preferencesPayload).length > 0 && identity.clientPreferencesUpdate) writes.push(identity.clientPreferencesUpdate(preferencesPayload));
437
- if (writes.length === 0) return;
438
- setPending(true);
439
- setServerError(null);
440
- setSaved(false);
441
- try {
442
- const allErrors = (await Promise.all(writes)).flat();
443
- if (allErrors.length > 0) {
444
- setServerError(allErrors[0]?.message ?? null);
445
- return;
446
- }
447
- setDirtyFields(/* @__PURE__ */ new Set());
448
- setSaved(true);
449
- } catch (error) {
450
- console.error("[ClientProfileForm] profile write failed:", error);
451
- setServerError(SAVE_FAILED_MESSAGE);
452
- } finally {
453
- setPending(false);
454
- }
455
- }
456
- const contextValue = {
457
- savedEmail,
458
- draft,
459
- fieldErrors,
460
- disabled,
461
- readOnly,
462
- pending,
463
- serverError,
464
- saved,
465
- country,
466
- documentType,
467
- setText,
468
- setPhone,
469
- setDocument,
470
- setCheckbox
471
- };
472
- return /* @__PURE__ */ jsx(ClientProfileFormContext.Provider, {
473
- value: contextValue,
474
- children: /* @__PURE__ */ jsx("form", {
475
- ref: formRef,
476
- onSubmit: handleSubmit,
477
- className,
478
- "data-fs-client-profile-form": "",
479
- ...pending ? { "data-fs-client-profile-form-pending": "" } : {},
480
- ...readOnly ? { "data-fs-client-profile-form-readonly": "" } : {},
481
- ...saved ? { "data-fs-client-profile-form-saved": "" } : {},
482
- children
483
- })
484
- });
485
- }
486
- function ClientProfileFormFieldset({ legend, section, className, children }) {
487
- const { disabled } = useClientProfileFormContext();
488
- return /* @__PURE__ */ jsxs(Fieldset.Root, {
489
- disabled,
490
- className,
491
- ...section ? { "data-fs-client-profile-form-section": section } : {},
492
- children: [legend ? /* @__PURE__ */ jsx(Fieldset.Legend, { children: legend }) : null, children]
493
- });
494
- }
495
- function ClientProfileFormEmailField({ label = "Email", className }) {
496
- const { savedEmail, disabled } = useClientProfileFormContext();
497
- return /* @__PURE__ */ jsxs(Field.Root, {
498
- className,
499
- "data-fs-client-profile-form-field": "email",
500
- disabled,
501
- children: [/* @__PURE__ */ jsx(Field.Label, { children: label }), /* @__PURE__ */ jsx(Field.Control, {
502
- readOnly: true,
503
- value: savedEmail,
504
- disabled
505
- })]
506
- });
507
- }
508
- function TextField({ fieldKey, label, className }) {
509
- const { draft, disabled, setText } = useClientProfileFormContext();
510
- const attr = fieldKey === "firstName" ? "first-name" : "last-name";
511
- const autoComplete = fieldKey === "firstName" ? "given-name" : "family-name";
512
- return /* @__PURE__ */ jsxs(Field.Root, {
513
- className,
514
- "data-fs-client-profile-form-field": attr,
515
- disabled,
516
- children: [/* @__PURE__ */ jsx(Field.Label, { children: label }), /* @__PURE__ */ jsx(Field.Control, {
517
- name: fieldKey,
518
- autoComplete,
519
- value: draft[fieldKey],
520
- onChange: (event) => setText(fieldKey, event.target.value),
521
- disabled
522
- })]
523
- });
524
- }
525
- function ClientProfileFormFirstNameField({ label = "First name", className }) {
526
- return /* @__PURE__ */ jsx(TextField, {
527
- fieldKey: "firstName",
528
- label,
529
- className
530
- });
531
- }
532
- function ClientProfileFormLastNameField({ label = "Last name", className }) {
533
- return /* @__PURE__ */ jsx(TextField, {
534
- fieldKey: "lastName",
535
- label,
536
- className
537
- });
538
- }
539
- function ClientProfileFormPhoneField({ label = "Phone number", className }) {
540
- const { draft, fieldErrors, disabled, country, setPhone } = useClientProfileFormContext();
541
- return /* @__PURE__ */ jsx("div", {
542
- className,
543
- "data-fs-client-profile-form-field": "phone",
544
- children: /* @__PURE__ */ jsx(PhoneField, {
545
- label,
546
- country,
547
- value: draft.phone,
548
- onValueChange: setPhone,
549
- isDisabled: disabled,
550
- invalid: fieldErrors.phone ? true : void 0,
551
- error: fieldErrors.phone
552
- })
553
- });
554
- }
555
- function ClientProfileFormDocumentField({ label = "CPF", className }) {
556
- const { draft, fieldErrors, disabled, documentType, setDocument } = useClientProfileFormContext();
557
- if (!isSupportedDocumentType(documentType)) return null;
558
- return /* @__PURE__ */ jsx("div", {
559
- className,
560
- "data-fs-client-profile-form-field": "document",
561
- children: /* @__PURE__ */ jsx(DocumentField, {
562
- label,
563
- documentType,
564
- value: draft.document,
565
- onValueChange: setDocument,
566
- disabled,
567
- invalid: Boolean(fieldErrors.document),
568
- errorMessage: fieldErrors.document ?? "Invalid document number"
569
- })
570
- });
571
- }
572
- function CheckboxField({ fieldKey, attr, label, className }) {
573
- const { draft, disabled, setCheckbox } = useClientProfileFormContext();
574
- return /* @__PURE__ */ jsx(Field.Root, {
575
- className,
576
- "data-fs-client-profile-form-field": attr,
577
- disabled,
578
- children: /* @__PURE__ */ jsxs(Field.Label, { children: [/* @__PURE__ */ jsx(Checkbox.Root, {
579
- checked: draft[fieldKey],
580
- onCheckedChange: (checked) => setCheckbox(fieldKey, checked),
581
- disabled,
582
- children: /* @__PURE__ */ jsx(Checkbox.Indicator, { children: /* @__PURE__ */ jsx(Icon, { name: "checked" }) })
583
- }), label] })
584
- });
585
- }
586
- function ClientProfileFormNewsletterCheckbox({ label = "Email me with news and offers", className }) {
587
- return /* @__PURE__ */ jsx(CheckboxField, {
588
- fieldKey: "optinNewsLetter",
589
- attr: "newsletter",
590
- label,
591
- className
592
- });
593
- }
594
- function ClientProfileFormSavePersonalDataCheckbox({ label = "Save my information for next time", className }) {
595
- return /* @__PURE__ */ jsx(CheckboxField, {
596
- fieldKey: "savePersonalData",
597
- attr: "save-personal-data",
598
- label,
599
- className
600
- });
601
- }
602
- function ClientProfileFormError({ className }) {
603
- const { serverError } = useClientProfileFormContext();
604
- if (!serverError) return null;
605
- return /* @__PURE__ */ jsx("div", {
606
- role: "alert",
607
- className,
608
- "data-fs-client-profile-form-error": "",
609
- children: serverError
610
- });
611
- }
612
- function ClientProfileFormConfirmation({ message = "Your information has been saved.", className }) {
613
- const { saved } = useClientProfileFormContext();
614
- if (!saved) return null;
615
- return /* @__PURE__ */ jsx("output", {
616
- className,
617
- "data-fs-client-profile-form-confirmation": "",
618
- children: message
619
- });
620
- }
621
- function ClientProfileFormSubmitButton({ label = "Save and continue", className, children }) {
622
- const { pending, readOnly } = useClientProfileFormContext();
623
- if (readOnly) return null;
624
- return /* @__PURE__ */ jsx("button", {
625
- type: "submit",
626
- disabled: pending,
627
- className,
628
- "data-fs-button": "",
629
- "data-fs-client-profile-form-save": "",
630
- children: children ?? label
631
- });
632
- }
633
- const ClientProfileForm = {
634
- Root: ClientProfileFormRoot,
635
- RootDefinition: ClientProfileFormRootDefinition,
636
- Fieldset: ClientProfileFormFieldset,
637
- FieldsetDefinition: ClientProfileFormFieldsetDefinition,
638
- EmailField: ClientProfileFormEmailField,
639
- EmailFieldDefinition: ClientProfileFormEmailFieldDefinition,
640
- FirstNameField: ClientProfileFormFirstNameField,
641
- FirstNameFieldDefinition: ClientProfileFormFirstNameFieldDefinition,
642
- LastNameField: ClientProfileFormLastNameField,
643
- LastNameFieldDefinition: ClientProfileFormLastNameFieldDefinition,
644
- PhoneField: ClientProfileFormPhoneField,
645
- PhoneFieldDefinition: ClientProfileFormPhoneFieldDefinition,
646
- DocumentField: ClientProfileFormDocumentField,
647
- DocumentFieldDefinition: ClientProfileFormDocumentFieldDefinition,
648
- NewsletterCheckbox: ClientProfileFormNewsletterCheckbox,
649
- NewsletterCheckboxDefinition: ClientProfileFormNewsletterCheckboxDefinition,
650
- SavePersonalDataCheckbox: ClientProfileFormSavePersonalDataCheckbox,
651
- SavePersonalDataCheckboxDefinition: ClientProfileFormSavePersonalDataCheckboxDefinition,
652
- Error: ClientProfileFormError,
653
- ErrorDefinition: ClientProfileFormErrorDefinition,
654
- Confirmation: ClientProfileFormConfirmation,
655
- ConfirmationDefinition: ClientProfileFormConfirmationDefinition,
656
- SubmitButton: ClientProfileFormSubmitButton,
657
- SubmitButtonDefinition: ClientProfileFormSubmitButtonDefinition
658
- };
659
- //#endregion
660
- export { ClientProfileForm, ClientProfileFormConfirmation, ClientProfileFormConfirmationDefinition, ClientProfileFormDocumentField, ClientProfileFormDocumentFieldDefinition, ClientProfileFormEmailField, ClientProfileFormEmailFieldDefinition, ClientProfileFormError, ClientProfileFormErrorDefinition, ClientProfileFormFieldset, ClientProfileFormFieldsetDefinition, ClientProfileFormFirstNameField, ClientProfileFormFirstNameFieldDefinition, ClientProfileFormLastNameField, ClientProfileFormLastNameFieldDefinition, ClientProfileFormNewsletterCheckbox, ClientProfileFormNewsletterCheckboxDefinition, ClientProfileFormPhoneField, ClientProfileFormPhoneFieldDefinition, ClientProfileFormRoot, ClientProfileFormRootDefinition, ClientProfileFormSavePersonalDataCheckbox, ClientProfileFormSavePersonalDataCheckboxDefinition, ClientProfileFormSubmitButton, ClientProfileFormSubmitButtonDefinition };
661
-
662
- //# sourceMappingURL=client-profile-form.js.map